Skip to content

Commit d95a242

Browse files
committed
Update README
1 parent 36047aa commit d95a242

1 file changed

Lines changed: 40 additions & 29 deletions

File tree

README.md

Lines changed: 40 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,40 @@ nohup ./ghostwriter --model gpt-4o-mini &
6363

6464
(TODO: figure out how to run it on boot!)
6565

66+
## Development
67+
68+
I've been developing in Ubuntu, but did get it working in OSX. Generally it goes (1) install dependencies, (2) build locally but cross-compile for the reMarkable, (3) scp it over and try it out.
69+
70+
* [Install docker](https://docs.docker.com/engine/install/) for cross-compiling
71+
* Install Rust
72+
* You can also follow [instructions for rustup](https://www.rust-lang.org/tools/install)
73+
* Or if you want to be fancy, I prefer getting it from [asdf](https://asdf-vm.com/)
74+
* Or maybe apt or brew will work?
75+
* Ubuntu
76+
* `sudo apt-get install gcc-arm-linux-gnueabihf`
77+
* OSX
78+
* `brew install arm-linux-gnueabihf-binutils`
79+
* Set up [cross-rs](https://github.com/cross-rs/cross) and targets
80+
* Get it from the current git version, especially for OSX
81+
* `cargo install cross --git https://github.com/cross-rs/cross`
82+
* `rustup target add armv7-unknown-linux-gnueabihf aarch64-unknown-linux-gnu`
83+
* Then to build and scp it to your remarkable
84+
* rm2
85+
* `cross build --release --target=armv7-unknown-linux-gnueabihf`
86+
* `scp target/armv7-unknown-linux-gnueabihf/release/ghostwriter root@remarkable:`
87+
* rmpp
88+
* `cross build --release --target=aarch64-unknown-linux-gnu`
89+
* `scp target/aarch64-unknown-linux-gnu/release/ghostwriter root@remarkable:`
90+
* I wrapped up that last bit into `build.sh`
91+
* So I do either `./build.sh` to build and send to my rm2
92+
* Or I do `./build.sh rmpp` to build and send to my rmpp
93+
94+
Meanwhile I have another terminal where I have ssh'd to the remarkable. I ctrl-C the current running ghostwriter there, then on my host laptop I run my build script, and then back on the remarkable shell I run ghostwriter again.
95+
96+
When I want to do a build for others, I tag main with like `v2026.09.21-01` and that kicks off a github action that creates the latest release.
97+
6698
## Status / Journal
99+
67100
* **2024-10-06** - Bootstrapping
68101
* Basic proof of concept works!!!
69102
* Drawing back on the screen doesn't work super well; it takes the SVG output from ChatGPT and rasterizes it and then tries to draw lots of individual dots on the screen. The Remarkable flips out a bit ... and when the whole screen is a giant black square it really freaks out and doesn't complete
@@ -102,7 +135,7 @@ nohup ./ghostwriter --model gpt-4o-mini &
102135
* Then I use that to record a sample input and output on the device
103136
* Then I added support to run ghostwriter on my laptop using the pre-captured input (build with `./build.sh local`)
104137
* Next I will build some tooling around iterating on examples given different prompts or pre-processing
105-
* And then if I can get enough examples maye I'll have to make an AI judge to scale :)
138+
* And then if I can get enough examples maybe I'll have to make an AI judge to scale :)
106139
* To help with that ... on idea is to make overlay the original input with the output but make the output a different color to make it differentiable by the judge
107140
* So far this technique is looking good for SVG output, but it'd be nice to somehow render keyboard output locally too. That is tricker since the keyboard input rendering is done by the reMarkable app
108141
* **2024-12-02** - Initial segmenter
@@ -178,6 +211,11 @@ nohup ./ghostwriter --model gpt-4o-mini &
178211
* Not turned on by default quite yet, but you can run `./ghostwriter --thinking --web-search` to get it all
179212
* **2025-05-17** -- Fix rm2
180213
* Thanks to [YOUSY0US3F](https://github.com/YOUSY0US3F) for fixing the rm2 screen capture!
214+
* 2025-09-21 -- Fix rmpp
215+
* Updating after a while, I was getting some weird responses. Debugging the internal dialog showed that it wasn't getting a good screenshot
216+
* Turns out that in 3.20 the screen resolution changed?! The [PR over on goRemarkableStream](https://github.com/owulveryck/goMarkableStream/issues/134) describes it and it was an easy fix
217+
* Also at a user requested I added `--no-svg` to fully disable svg tool, though you can also do that in a custom prompt
218+
* Thinking about custom prompts and how annoying it is to set up, I'm now contemplating a web-interface that would let you enter API keys, manage prompts, and maybe do some debugging
181219

182220
## Ideas
183221
* [DONE] Matt showed me his iOS super calc that just came out, take inspiration from that!
@@ -234,6 +272,7 @@ nohup ./ghostwriter --model gpt-4o-mini &
234272
* See if we can incorporate MCP (Model Context Protocol)
235273
* Maybe a proxy to a cloud hosted thing?
236274
* Allow non-tool-use responses to either be ignored or for regular text to be turned into keyboard (draw_text) tool
275+
* Integrated web interface to set up and manage configuration, maybe do some debugging
237276

238277
## References
239278
* Generally pulled resources from [Awesome reMarkable](https://github.com/reHackable/awesome-reMarkable)
@@ -245,34 +284,6 @@ nohup ./ghostwriter --model gpt-4o-mini &
245284
* Another reMarkable-LLM interface is [rMAI](https://github.com/StarNumber12046/rMAI). This one is a separate app (not trying to integrate in with simulated pen/keyboard input) and uses [replicate](https://replicate.com) as the model API service
246285
* I haven't adopted anything from it yet, but [Crazy Cow](https://github.com/machinelevel/sp425-crazy-cow) is a cool/crazy tool that turns text into pen strokes for the reMarkable1
247286

248-
## Development
249-
250-
* [Install docker](https://docs.docker.com/engine/install/) for cross-compiling
251-
* Install Rust
252-
* You can also follow [instructions for rustup](https://www.rust-lang.org/tools/install)
253-
* Or if you want to be fancy, I prefer getting it from [asdf](https://asdf-vm.com/)
254-
* Or maybe apt or brew will work?
255-
* Ubuntu
256-
* `sudo apt-get install gcc-arm-linux-gnueabihf`
257-
* OSX
258-
* `brew install arm-linux-gnueabihf-binutils`
259-
* Set up [cross-rs](https://github.com/cross-rs/cross) and targets
260-
* Get it from the current git version, especially for OSX
261-
* `cargo install cross --git https://github.com/cross-rs/cross`
262-
* `rustup target add armv7-unknown-linux-gnueabihf aarch64-unknown-linux-gnu`
263-
* Then to build and scp it to your remarkable
264-
* rm2
265-
* `cross build --release --target=armv7-unknown-linux-gnueabihf`
266-
* `scp target/armv7-unknown-linux-gnueabihf/release/ghostwriter root@remarkable:`
267-
* rmpp
268-
* `cross build --release --target=aarch64-unknown-linux-gnu`
269-
* `scp target/aarch64-unknown-linux-gnu/release/ghostwriter root@remarkable:`
270-
* I wrapped up that last bit into `build.sh`
271-
* So I do either `./build.sh` to build and send to my rm2
272-
* Or I do `./build.sh rmpp` to build and send to my rmpp
273-
274-
Meanwhile I have another terminal where I have ssh'd to the remarkable. I ctrl-C the current running ghostwriter there, then on my host laptop I run my build script, and then back on the remarkable shell I run ghostwriter again.
275-
276287
## Scratch Notes
277288

278289
```

0 commit comments

Comments
 (0)