- Ghostwriter एक experimental project है जो reMarkable पर यूज़र की handwritten सामग्री को मॉनिटर करता है, और gesture या स्क्रीन कंटेंट से trigger होने पर उसे Vision-LLM को भेजता है, फिर नतीजे को वापस स्क्रीन पर लिखावट या ड्रॉइंग के रूप में आउटपुट करता है
- इसे चलाने के लिए
OPENAI_API_KEY,ANTHROPIC_API_KEY,GOOGLE_API_KEYजैसी API keys चाहिए, और reMarkable2 तथा reMarkable Paper Pro के लिए binaries डाउनलोड करके डिवाइस पर कॉपी करने के बाद SSH में चलाया जाता है - डिफ़ॉल्ट मॉडल
claude-sonnet-4-0है, और--model gpt-4o-mini,--engine openai,--engine anthropic,--engine google,--engine-base-urlआदि से मॉडल और इंजन बदले जा सकते हैं - आउटपुट के लिए SVG ड्रॉइंग और virtual keyboard-आधारित text input दोनों समर्थित हैं, और
--no-svg,--no-keyboard,--thinking,--web-search,--apply-segmentationजैसे options से व्यवहार को समायोजित किया जा सकता है - प्रोजेक्ट स्क्रीन capture, Vision-LLM कॉल, tool use, image segments, evaluation scripts, और reMarkable Paper Pro के
uinputमॉड्यूल support तक विस्तृत हो चुका है, लेकिन कुछ फीचर्स स्पष्ट रूप से experimental या WIP स्थिति में हैं
Ghostwriter क्या करता है
- Ghostwriter reMarkable पर चलने वाला एक experimental interface है
- यूज़र स्क्रीन पर handwriting या drawing बनाता है
- उंगली से किसी खास कोने को छूकर या स्क्रीन कंटेंट से trigger करता है
- मौजूदा स्क्रीन को Vision-LLM को भेजता है, और मॉडल का response फिर स्क्रीन पर आउटपुट करता है
- उदाहरण के तौर पर, यूज़र ने हाथ से prompt लिखा और GPT-4o ने chihuahua की ड्रॉइंग बनाई — ऐसा एक case शामिल है
- प्रोजेक्ट का उद्देश्य handwriting और screen के मिले-जुले माध्यम में अलग-अलग interaction तरीकों को explore करना है
इंस्टॉलेशन और रन करने का तरीका
- चलाने से पहले reMarkable environment में API keys सेट करनी होती हैं
OPENAI_API_KEYANTHROPIC_API_KEYGOOGLE_API_KEY
- इंस्टॉलेशन लोकल कंप्यूटर से डिवाइस-विशिष्ट binaries डाउनलोड करके reMarkable में कॉपी करने के तरीके से होता है
- reMarkable2:
ghostwriter-rm2 - reMarkable Paper Pro:
ghostwriter-rmpp
- reMarkable2:
- डिवाइस पर SSH से कनेक्ट करके execute permission दी जाती है और
./ghostwriterचलाया जाता है - डिफ़ॉल्ट रन
claude-sonnet-4-0इस्तेमाल करता है./ghostwriter./ghostwriter --model gpt-4o-mini
- background run का उदाहरण
nohup ./ghostwriter --model gpt-4o-mini &है - boot पर auto-start अभी TODO के रूप में बाकी है
उपयोग प्रवाह और CLI options
- यूज़र पहले reMarkable पर
ghostwriterचलाता है, फिर स्क्रीन पर सामग्री बनाता है, और ऊपरी-दाएँ कोने को उंगली से tap करके assistant को trigger करता है - प्रोसेसिंग के दौरान SSH session में touch detection और processing logs दिखते हैं, और स्क्रीन पर progress के लिए dots बनते हैं, फिर typed response या drawn response दिखाई देता है
- मॉडल और इंजन से जुड़े options
--model MODEL: इस्तेमाल होने वाला मॉडल, डिफ़ॉल्टclaude-sonnet-4-0--engine ENGINE:openai,anthropic,googleमें से चुनें; मॉडल से auto-detect भी हो सकता है--engine-api-key KEY: API key सीधे निर्दिष्ट करें--engine-base-url URL: custom API base URL निर्दिष्ट करें
- व्यवहार से जुड़े options
--prompt PROMPT: prompt file निर्दिष्ट करें, डिफ़ॉल्टgeneral.json--trigger-corner CORNER: touch trigger corner निर्दिष्ट करें, डिफ़ॉल्टURहै,UL,LR,LLभी समर्थित हैं
- tools से जुड़े options
--no-svg: SVG drawing tool निष्क्रिय करें--no-keyboard: text output निष्क्रिय करें--thinking: Anthropic का thinking सक्रिय करें--web-search: Anthropic का web search सक्रिय करें
- टेस्ट और debugging से जुड़े options
--log-level LEVEL:info,debug,traceसेट करें--no-loop: एक बार चलाकर समाप्त करें--input-png FILE: screenshot की जगह PNG file इस्तेमाल करें--output-file FILE: output सहेजें--save-screenshot FILE: screenshot सहेजें--save-bitmap FILE: rendering result सहेजें--no-submit: मॉडल को submit न करें--no-draw: output draw न करें--no-trigger: touch trigger निष्क्रिय करें--apply-segmentation: spatial recognition के लिए image segments जोड़ें
इम्प्लीमेंटेशन और डेवलपमेंट वर्कफ़्लो
- डेवलपमेंट मुख्यतः Ubuntu पर हुआ, और OSX पर भी चलता है
- डेवलपमेंट flow में dependencies install करना, reMarkable target के लिए cross-compile करना,
scpसे डिवाइस पर भेजना, और डिवाइस पर फिर से चलाना शामिल है - cross-compilation के लिए Docker, Rust,
cross-rs, और ARM targets इस्तेमाल होते हैं- reMarkable2 target:
armv7-unknown-linux-gnueabihf - reMarkable Paper Pro target:
aarch64-unknown-linux-gnu
- reMarkable2 target:
- build के बाद transfer प्रक्रिया
build.shमें wrap की गई है./build.sh: reMarkable2 के लिए build और transfer./build.sh rmpp: reMarkable Paper Pro के लिए build और transfer
- release build में
v2026.09.21-01जैसे tag को main पर लगाने से GitHub Action latest release बनाता है
फीचर बदलाव और प्रयोग रिकॉर्ड
- 2024-10-06 को बुनियादी proof of concept काम करने लगा
- गणित सवाल
3 + 7 =का उत्तर भरने वाला उदाहरण काम करता है - “Draw a picture of a chihuahua. Use simple line-art” उदाहरण काम करता है
- SVG output को rasterize करके बहुत सारे dots बनाने का तरीका कभी-कभी reMarkable पर ठीक से काम नहीं करता था
- गणित सवाल
- 2024-10-07 को ऊपरी-दाएँ touch trigger और status indicator जोड़े गए
- touch करने पर स्क्रीन पर
Xबनता है, और processing के दौरान X पर अतिरिक्त रेखाएँ खींची जाती हैं - इसे यूज़र को खुद मिटाना पड़ता है
- touch करने पर स्क्रीन पर
- 2024-10-10 से virtual keyboard-आधारित text input का प्रयोग शुरू हुआ
- reMarkable के हर page में एक बड़ा text area होता है और formatting बुनियादी स्तर की होती है
rM-input-devicesके जरिए virtual keyboard बनाकर text layer में output देने के तरीके को verify किया गया
- 2024-11-02 को
draw_textऔरdraw_svgtools उपलब्ध होने लगे- एक single overall assistant तय करता है कि keyboard text से जवाब देना है या SVG drawing से
- 2024-11-07 को Claude/Anthropic support जोड़ा गया
- OpenAI की लगभग वही tool-use configuration इस्तेमाल की जा सकती है
- यह drawing को थोड़ा ज़्यादा पसंद करता दिखा, लेकिन drawing और spatial recognition अच्छे नहीं थे — ऐसा दर्ज है
- 2024-12-02 को बुनियादी image segmentation step जोड़ा गया
- segment coordinates Vision-LLM को भेजे जाते हैं ताकि वह उन्हें ध्यान में रखे
- उस समय यह सिर्फ Claude से जुड़ा था
- box के अंदर X रखने और math answer की position तय करने में सुधार के उदाहरण दर्ज हैं
- इसे
--apply-segmentationसे स्पष्ट रूप से enable करना पड़ता है, और--input-pngया--save-screenshotके आधार पर PNG को फिर से parse किया जाता है
- 2024-12-15 को OpenAI और Anthropic backends के लिए polymorphic engine layer अलग की गई
- engine और model को arguments के रूप में दिया जा सकता है
- prompts और tool definitions को
prompts/directory में externalize करके एकीकृत किया गया
- 2024-12-25 को CLI को सरल और विस्तृत किया गया
- सिर्फ
-m gpt-4o-miniदेने पर engine कोopenaiमाना जाता है - Groq उपयोग उदाहरण जोड़ा गया
gemini-2.0-flash-expऔरGOOGLE_API_KEYके साथ Google Gemini support जोड़ा गया
- सिर्फ
- 2025-05-10 को Anthropic का
thinkingऔरweb_searchजोड़ा गया- thinking responses प्रोसेस किए जाते हैं, लेकिन स्क्रीन पर नहीं भेजे जाते
- web search Anthropic के server-side feature के रूप में काम करता है
- यह डिफ़ॉल्ट रूप से enabled नहीं है;
./ghostwriter --thinking --web-searchसे चलाया जाता है
- 2025-09-21 को reMarkable Paper Pro से जुड़े fixes और options जोड़े गए
- 3.20 में स्क्रीन resolution बदलने से screenshot ठीक से नहीं आने की समस्या ठीक की गई
- यूज़र अनुरोध पर
--no-svgजोड़ा गया --trigger-corner LRजैसे trigger corner selection जोड़े गए
reMarkable Paper Pro और uinput
- 2025-03-03 को Ghostwriter reMarkable Paper Pro पर भी चलने लगा
- स्क्रीन और input तरीकों में कुछ अंतर अपेक्षित थे
- अप्रत्याशित समस्या यह थी कि reMarkable Paper Pro में
uinputkernel module शामिल नहीं था - reMarkable/linux-imx-rm का उपयोग करके
uinputmodule build करके bundle किया गया - अगर
uinputmodule लोड नहीं होता, तो Ghostwriter उसे लोड करने की कोशिश करता है - क्योंकि हर reMarkable release अक्सर नया Linux version इस्तेमाल करता है, इसलिए यह हिस्सा परस्पर compatible न होने के कारण बड़ा बोझ माना गया है
- 2025-04-26 तक 3.16, 3.17, 3.18 के लिए modules तैयार थे
- 2025-12-06 के रिकॉर्ड में लिखा है कि update के बाद rmpp Linux पहले से public था, और
uinputmodule भी पहले से मौजूद था, लेकिन उसे load करना अभी भी ज़रूरी था
मूल्यांकन और आगे के विचार
- बुनियादी evaluation system को completed items के रूप में व्यवस्थित किया गया है
- input के लिए screenshot sets बनाना
- अलग-अलग use cases को व्यक्त करना
- text, SVG, action रूपों में output examples बनाना
- कुछ मामलों में human या अलग Vision-LLM judge के जरिए evaluation की संभावना शामिल है
- 2024-12-22 को run_eval.sh सहित evaluation system का विस्तार शुरू हुआ
- उस समय parameters hardcoded थे, जैसे segmentation का उपयोग करना है या नहीं, और Claude 3.5 Sonnet या ChatGPT 4o-mini चुनना
- प्रारंभिक evaluation report शामिल है
- final report में 48 runs थे और लागत लगभग $1 दर्ज की गई
- WIP items में prompt library शामिल है
prompts/में शुरुआती ढांचा मौजूद है- tools को prompt से configure करने की योजना है
- TODO management prompt example में
todoढूँढकर निकालना औरadd-todo.shजैसे बाहरी command चलाना शामिल है
- आगे के ideas में शुरुआती config file बनाना, API key input, auto-start और auto-recovery, PlantUML या Mermaid-आधारित diagram generation, external lookup, और email या Slack भेजना शामिल है
- conversation mode की भी योजना है
- एक ही स्क्रीन पर turn-by-turn screen versions को track करना
- मूल input, model response, और नए input को रंगों से अलग दिखाने का प्रस्ताव है
- “नया prompt” और “जारी रखें” को अलग-अलग triggers में बाँटने का तरीका भी शामिल है
- local network Vision-LLM experiments भी हैं
- Ollama का OpenAI API-compatible mode
llama3.2-visionमें tools support न होने से विफल हुआ - Groq का
llama-3.2-visiontools support करता है, लेकिन रिकॉर्ड के अनुसार यह ChatGPT, Claude, Gemini जितना अच्छा नहीं है
- Ollama का OpenAI API-compatible mode
- अतिरिक्त ideas में streaming LLM services और interruption, async processing, OpenAI responses API, MCP(Model Context Protocol), और integrated web interface शामिल हैं
संदर्भ संसाधन
- Awesome reMarkable: reMarkable से जुड़े resources
- reSnap: screen capture आधारित
- rmkit lamp: screen drawing techniques के संदर्भ में
- resvg: SVG-to-PNG processing
- rM-input-devices: keyboard के बिना virtual input devices बनाना
- reMarkableAI: OCR→OpenAI→PDF→Device workflow वाला संबंधित project
- rMAI: अलग app रूप का reMarkable-LLM interface
- Crazy Cow: reMarkable1 के लिए text को pen strokes में बदलने वाला tool
1 टिप्पणियां
Hacker News की राय
मैं इस प्रोजेक्ट का निर्माता हूँ। यह अभी भी जारी काम है, और सबसे बड़ी सीख vision models की spatial reasoning limits रही है
लगभग मूल्यांकन के उदाहरण यहाँ हैं: https://github.com/awwaiid/ghostwriter/blob/main/evaluation_...
आगे मैं yaml+shell script आधारित agent framework/tool के रूप में build और extraction पर काम जारी रखने, pre-segmentation जैसी spatial reasoning methods को और explore करने, और बहुत सारे dots की जगह असली pen strokes भेजने वाला reSvg backend लिखने की योजना बना रहा हूँ
उदाहरण के लिए, अगर मैं ऐसे notes लिख रहा हूँ जिनमें शब्द, सरल गणित और diagrams मिले हुए हों, और किसी मुख्य वाक्यांश के नीचे लाइन खींच दूँ, तो “device” margin में उस वाक्यांश को expand कर सकता है
अगर device diagram बना रहा हो और मैं बीच में दखल देकर उसका कुछ हिस्सा मिटाकर ठीक कर दूँ, तो वह उसे समझकर बदलाव भी कर सकता है
handwriting recognition से मिला text, stroke gestures, एक छोटी icon language, और LLM मिलकर शायद नए user interaction paradigms खोल सकते हैं, जिन्हें हम अपनी पुरानी आदतों में फँसे होने की वजह से तुरंत सोच भी नहीं पाते
ऐसा लगता है कि इससे जल्द ही “mother of all demos” जैसा कोई पल आ सकता है, लेकिन मैं UX designer नहीं हूँ इसलिए इसे साफ़ तौर पर imagine करना मुश्किल है, और शायद इसे बनाने वाला ही यह कर पाए
product नज़रिए से देखें तो ऐसा होना चाहिए कि हर बार stylus रुकते ही यह जवाब लिखना शुरू न कर दे, इसलिए LLM से response माँगने वाला mode आसानी से on/off किया जा सके
हो सकता है कि कोई कुछ देर sketching और सोचने के बाद बातचीत फिर से शुरू करना चाहे, या सिर्फ कुछ pages पर LLM चालू रखना चाहे और बाकी पर बंद
यह भी जानना चाहूँगा कि device पर SSH access पाने के लिए किस तरह का jailbreak चाहिए
reMarkable tablet के लिए apps को hack करके बनते देखना मुझे बहुत अच्छा लगता है
मैंने पहले एक छोटा reMarkable app बनाया था और यहाँ share किया था: https://digest.ferrucc.io/
मुझे official developer site मिली: https://developer.remarkable.com/documentation
मैंने app देखा, और जानना चाहता हूँ कि reMarkable के लिए develop करते समय सबसे कठिन हिस्सा क्या था
काश reMarkable tablets थोड़े कम locked down होते
यह मेरे पसंदीदा hardware में से एक है, इसलिए मैं चाहता हूँ कि और apps हों
मैं कुछ महीनों से इसे implement करना चाहता था, आपने इसे बहुत अच्छी तरह बनाया है
इसमें थोड़ा Rust भी है, device constraints से जूझना पड़ा, कई LLM API normalizations, spatial vision LLM training जैसी चीज़ें भी शामिल हैं
मैं screen तो ला पाया था, लेकिन “hacking” के बिना response वापस लिखकर डाल नहीं सकता था
मैं इस weekend इसे try करने वाला हूँ
मेरे पास एक idea था कि to-do list लिखूँ, उसे PDF के रूप में email करूँ और LLM को भेजकर tasks auto-generate कराऊँ, लेकिन यह उस लक्ष्य को real-time में कहीं बेहतर तरीके से हासिल करने का रास्ता खोलता है
उसने vague scheduling भी संभाल ली थी, जैसे “कभी करना है लेकिन कोई तय समय नहीं है, तो ऐसा समय चुनो जो मेरे actual schedule से न टकराए”
prompt की भी लगभग ज़रूरत नहीं पड़ी, लेकिन workflow अच्छा नहीं था, इसलिए अंत में PDF को email करने वाला तरीका ही था
शायद मुझे फिर देखना चाहिए, लेकिन वैसे भी मैं जो tasks बनाता हूँ उन्हें ignore कर देता हूँ, इसलिए motivation नहीं हुआ
मैं reMarkable Discord server https://discord.gg/u3P9sDW पर हूँ। इसका link https://github.com/reHackable/awesome-reMarkable में भी है
यह Rust binary है, इसलिए installation आसान होना चाहिए। कम से कम सिद्धांत में :)
सोच रहा हूँ कि क्या यह Android आधारित Onyx Boox e-reader पर भी संभव होगा
Android पर सही permissions हों तो apps के बीच screenshot लेना शायद संभव होगा, लेकिन drawing event injection के बारे में पक्का नहीं हूँ
दूसरा तरीका है dedicated app बनाना। मैंने अभी Apple Pencil खरीदी है, और सोच रहा हूँ कि इस concept को web app में ले जाऊँ; अभी तक यह हैरानी की बात है कि यह काफ़ी अच्छा काम कर रहा है
फिर भी, अगर proper solution चाहिए तो बेहतर होगा कि यह agent मौजूदा apps के साथ interact करे
handwriting input और LLM को जोड़ना कहीं ज़्यादा natural workflow बनाने का शानदार use case है
जानना चाहूँगा कि messy handwriting को यह कितना अच्छी तरह संभालता है, और क्या personal notes पर fine-tuning करने से समय के साथ recognition बेहतर हो सकता है
मेरी handwriting काफ़ी खराब है, फिर भी अगर मैं करने वाले काम और मोटा-मोटी या specific time लिख दूँ, तो यह calendar में डालने लायक ical बना देता था
असली समस्या spatial reasoning के ज़्यादा करीब है। किसी box के अंदर X को reliably बनाना भी मुश्किल है, और tic-tac-toe या dot-connecting games तो और भी कठिन हैं
अच्छा है। कुछ vector diffusion models भी हैं; अगर model को लगे कि कुछ draw करना है, तो क्या उसे tool call के ज़रिए ऐसे model को सौंपा जा सकता है?
तब coordinates की range और prompt specify किए जा सकते हैं
अगर कोई recommend करने लायक model हो, और बेहतर हो कि hosted API भी हो, तो जानना चाहूँगा
सोच रहा हूँ कि PDFs में papers पढ़ने के लिए reMarkable का 11-inch size काफ़ी है या नहीं
मैं 13-inch Sony DPT 2nd gen इस्तेमाल कर रहा हूँ और viewing के लिए वह perfect है। फिर भी ऐसे projects की वजह से reMarkable products बार-बार आकर्षित करते हैं
मैं active reading करता हूँ, इसलिए color highlighting न होना भी खलता है। annotation features शानदार हैं
अब मैं iPad के Zotero app में papers review करना जारी रखता हूँ
reMarkable 2 hacking potential की वजह से अच्छा था, लेकिन Pro का screen size और color features इसे शानदार replacement बनाते हैं
मैं Boox tablet इस्तेमाल कर रहा हूँ, और वह मूल रूप से e-ink screen वाला एक पूरा Android tablet है, इसलिए यह ऐसे features के लिए बिल्कुल सही लगता है
सोचता हूँ कि 5 साल बाद mobile hardware शायद ऐसी चीज़ों को local execution के साथ support कर सके