reMarkable 2’yi Vision-LLM arayüzü olarak kullanan Ghostwriter
(github.com/awwaiid)- Ghostwriter, reMarkable üzerinde kullanıcının el yazısıyla yazdıklarını izleyen; bir jest ya da ekran içeriğiyle tetiklendiğinde bunları Vision-LLM’e gönderen ve sonucu yeniden ekrana yazı veya çizim olarak çıkaran deneysel bir projedir
- Çalıştırmak için
OPENAI_API_KEY,ANTHROPIC_API_KEY,GOOGLE_API_KEYgibi API anahtarları gerekir; reMarkable2 ve reMarkable Paper Pro için ikili dosyalar indirilip cihaza kopyalandıktan sonra SSH üzerinden çalıştırılır - Varsayılan model
claude-sonnet-4-0dır;--model gpt-4o-mini,--engine openai,--engine anthropic,--engine google,--engine-base-urlgibi seçeneklerle model ve engine değiştirilebilir - Çıktı yöntemi hem SVG çizimini hem de sanal klavye tabanlı metin girişini destekler;
--no-svg,--no-keyboard,--thinking,--web-search,--apply-segmentationgibi seçeneklerle davranış ayarlanır - Proje ekran yakalama, Vision-LLM çağrısı, araç kullanımı, görüntü segmentleri, değerlendirme betikleri ve reMarkable Paper Pro’nun
uinputmodülüne uyum gibi alanlara genişletilmiş olsa da bazı özellikler açıkça deneysel veya WIP durumundadır
Ghostwriter ne yapıyor
- Ghostwriter, reMarkable üzerinde çalışan deneysel bir arayüzdür
- Kullanıcı ekrana el yazısı veya çizim yazar/çizer
- Parmağıyla belirli bir köşeye dokunarak ya da ekran içeriğiyle tetikler
- Mevcut ekranı Vision-LLM’e gönderir ve model yanıtını tekrar ekrana çıkarır
- Örnek olarak, kullanıcının el yazısıyla bir prompt girdiği ve GPT-4o’nun bir Chihuahua çizimi yaptığı bir vaka yer alır
- Projenin amacı, el yazısı ile ekranın birleştiği bir ortamda çeşitli etkileşim biçimlerini keşfetmektir
Kurulum ve çalıştırma yöntemi
- Çalıştırmadan önce reMarkable ortamında API anahtarlarının ayarlanması gerekir
OPENAI_API_KEYANTHROPIC_API_KEYGOOGLE_API_KEY
- Kurulum, yerel bilgisayarda cihaza özel ikili dosyayı indirip reMarkable’a kopyalama şeklindedir
- reMarkable2:
ghostwriter-rm2 - reMarkable Paper Pro:
ghostwriter-rmpp
- reMarkable2:
- Cihazda SSH ile bağlanıp çalıştırma izni verilir ve
./ghostwriterçalıştırılır - Varsayılan çalıştırma
claude-sonnet-4-0kullanır./ghostwriter./ghostwriter --model gpt-4o-mini
- Arka planda çalıştırma örneği
nohup ./ghostwriter --model gpt-4o-mini &şeklindedir - Açılışta otomatik çalıştırma TODO olarak bırakılmıştır
Kullanım akışı ve CLI seçenekleri
- Kullanıcı önce reMarkable’da
ghostwriterı çalıştırır, ardından ekrana içerik çizer ve asistanı tetiklemek için sağ üst köşeye parmağıyla dokunur - İşleme sırasında SSH oturumunda dokunma algılama ve işlem günlükleri gösterilir; ekranda ilerleme göstergesi olarak noktalar çizildikten sonra yazılmış yanıt veya çizilmiş yanıt görünür
- Model ve engine ile ilgili seçenekler
--model MODEL: Kullanılacak model; varsayılanclaude-sonnet-4-0--engine ENGINE:openai,anthropic,googlearasından seçilir; modelden otomatik algılanabilir--engine-api-key KEY: API anahtarını doğrudan belirtir--engine-base-url URL: Özel API temel URL’sini belirtir
- Davranışla ilgili seçenekler
--prompt PROMPT: Prompt dosyasını belirtir; varsayılangeneral.json--trigger-corner CORNER: Dokunma tetikleme köşesini belirtir; varsayılanURdir veUL,LR,LLde desteklenir
- Araçlarla ilgili seçenekler
--no-svg: SVG çizim aracını devre dışı bırakır--no-keyboard: Metin çıktısını devre dışı bırakır--thinking: Anthropic’in thinking özelliğini etkinleştirir--web-search: Anthropic’in web aramasını etkinleştirir
- Test ve hata ayıklamayla ilgili seçenekler
--log-level LEVEL:info,debug,traceolarak ayarlanır--no-loop: Bir kez çalıştırıp çıkar--input-png FILE: Ekran görüntüsü yerine PNG dosyası kullanır--output-file FILE: Çıktıyı kaydeder--save-screenshot FILE: Ekran görüntüsünü kaydeder--save-bitmap FILE: Render sonucunu kaydeder--no-submit: Modele göndermez--no-draw: Çıktıyı çizmez--no-trigger: Dokunma tetiklemesini devre dışı bırakır--apply-segmentation: Mekânsal algı için görüntü segmentleri ekler
Uygulama ve geliştirme iş akışı
- Geliştirme ağırlıklı olarak Ubuntu üzerinde yapılmış, OSX’te de çalışmaktadır
- Geliştirme akışı bağımlılıkların kurulması, reMarkable hedefi için cross-compile yapılması,
scpile cihaza aktarılması ve cihazda yeniden çalıştırılmasından oluşur - Cross-compile için Docker, Rust,
cross-rsve ARM target’ları kullanılır- reMarkable2 target’ı:
armv7-unknown-linux-gnueabihf - reMarkable Paper Pro target’ı:
aarch64-unknown-linux-gnu
- reMarkable2 target’ı:
- Build sonrası aktarım süreci
build.shile sarmalanmıştır./build.sh: reMarkable2 için build ve aktarım./build.sh rmpp: reMarkable Paper Pro için build ve aktarım
- Release build’i,
v2026.09.21-01gibi bir tag main’e eklendiğinde GitHub Action’ın en yeni release’i oluşturması şeklindedir
Özellik değişiklikleri ve deney kayıtları
- 2024-10-06’da temel kavram kanıtı çalışır hale geldi
- Matematik problemi
3 + 7 =için cevabı dolduran örnek çalıştı - “Draw a picture of a chihuahua. Use simple line-art” örneği çalıştı
- SVG çıktısını rasterize edip çok sayıda nokta çizme yaklaşımı bazı durumlarda reMarkable’da iyi çalışmadı
- Matematik problemi
- 2024-10-07’de sağ üst dokunma tetikleyicisi ve durum göstergesi eklendi
- Dokunulduğunda ekrana
Xçizilir, işleme sırasında X’e ek çizgiler çekilir - Kullanıcının bunu kendisinin silmesi gerekir
- Dokunulduğunda ekrana
- 2024-10-10’dan itibaren sanal klavye tabanlı metin girişi denemeleri başladı
- reMarkable’ın her sayfasında büyük bir metin alanı bulunur ve biçimlendirme temel düzeydedir
rM-input-devicesüzerinden sanal klavye oluşturup metin katmanına çıktı verme yöntemi doğrulandı
- 2024-11-02’de
draw_textvedraw_svgaraçları sunulmaya başlandı- Tek bir genel asistan, klavye metniyle mi yoksa SVG çizimiyle mi yanıt vereceğine karar verir
- 2024-11-07’de Claude/Anthropic desteği eklendi
- OpenAI ile neredeyse aynı araç kullanımı ayarları kullanılabilir
- Çizmeyi daha çok tercih ediyor gibi görünse de çizim ve mekânsal algının iyi olmadığı kaydedilmiştir
- 2024-12-02’de temel görüntü segmenti adımı eklendi
- Segment koordinatları Vision-LLM’e iletilerek dikkate alması sağlanır
- O dönemde yalnızca Claude’a bağlıydı
- Bir kutunun içine X koyma işi ve matematik cevabının konumlandırılmasında iyileşme örnekleri kaydedilmiştir
--apply-segmentationile açıkça etkinleştirilmesi gerekir;--input-pngveya--save-screenshotvarsayımıyla PNG yeniden ayrıştırılır
- 2024-12-15’te OpenAI ve Anthropic backend’leri için polimorfik engine katmanı ayrıldı
- Engine ve model argüman olarak geçirilebilir hale geldi
- Prompt ve araç tanımları
prompts/dizinine dışsallaştırılıp birleştirildi
- 2024-12-25’te CLI sadeleştirildi ve genişletildi
- Yalnızca
-m gpt-4o-miniverildiğinde engine’inopenaiolduğu varsayılır - Groq kullanım örneği eklendi
gemini-2.0-flash-expveGOOGLE_API_KEYüzerinden Google Gemini desteği eklendi
- Yalnızca
- 2025-05-10’da Anthropic’in
thinkingveweb_searchözellikleri eklendi- Thinking yanıtı işlenir ancak ekrana gönderilmez
- Web araması Anthropic’in sunucu tarafı özelliği olarak çalışır
- Varsayılan olarak etkin değildir;
./ghostwriter --thinking --web-searchile çalıştırılır
- 2025-09-21’de reMarkable Paper Pro ile ilgili düzeltmeler ve seçenek eklemeleri yapıldı
- 3.20’de ekran çözünürlüğünün değişmesi nedeniyle ekran görüntüsünün düzgün alınmaması sorunu düzeltildi
- Kullanıcı isteğiyle
--no-svgeklendi --trigger-corner LRgibi tetikleme köşesi belirtme özelliği eklendi
reMarkable Paper Pro ve uinput
- 2025-03-03’te Ghostwriter reMarkable Paper Pro üzerinde de çalışır hale geldi
- Ekran ve giriş yönteminin biraz farklı olması beklenen bir farktı
- Beklenmedik sorun, reMarkable Paper Pro’da
uinputkernel modülünün bulunmamasıydı uinputmodülü reMarkable/linux-imx-rm kullanılarak build edilip bundle’a eklendi- Ghostwriter,
uinputmodülü yüklü değilse yüklemeyi dener - Her reMarkable release’i genellikle yeni bir Linux sürümü kullandığı ve birbiriyle uyumlu olmayabileceği için bu bölüm büyük bir yük olarak kaydedilmiştir
- 2025-04-26’da 3.16, 3.17, 3.18 için modüller hazırlandı
- 2025-12-06 kaydında, güncelleme sonrasında rmpp Linux’un zaten yayımlanmış olduğu ve
uinputmodülünün de zaten mevcut olduğu, ancak yüklemenin yine de gerektiği belirtilmiştir
Değerlendirme ve gelecek fikirleri
- Temel değerlendirme sistemi tamamlanmış maddeler olarak düzenlenmiştir
- Girdi için ekran görüntüsü seti oluşturma
- Çeşitli kullanım senaryolarını temsil etme
- Metin, SVG ve aksiyon biçiminde çıktı örnekleri oluşturma
- Bazıları için insan veya ayrı bir Vision-LLM hakemiyle değerlendirme olasılığı da içerir
- 2024-12-22’de run_eval.sh dahil olmak üzere değerlendirme sistemi genişletilmeye başlandı
- O dönemde parametreler segment kullanımı ve Claude 3.5 Sonnet ya da ChatGPT 4o-mini seçimini hard-code eden yapıdaydı
- İlk değerlendirme raporu dahil edildi
- Nihai raporda 48 çalıştırma vardı ve maliyet yaklaşık $1 olarak kaydedildi
- WIP maddeleri arasında prompt kütüphanesi bulunur
prompts/içinde bir başlangıç noktası vardır- Araçların prompt üzerinden ayarlanabilir hale getirilmesi planlanır
- TODO yönetimi için prompt örneğinde
todoları bulup çıkarma veadd-todo.shgibi dış komutları çalıştırma yöntemi yer alır
- Gelecek fikirleri arasında ilk yapılandırma dosyası oluşturma, API anahtarı girme, otomatik başlatma ve otomatik kurtarma, PlantUML veya Mermaid tabanlı diyagram oluşturma, harici sorgulama, e-posta ya da Slack’e gönderme bulunur
- Konuşma modu fikri de vardır
- Tek ekranda tur bazlı ekran sürümleri izlenir
- Orijinal girdi, model yanıtı ve yeni girdinin renklerle ayrılması önerilir
- “Yeni prompt” ile “devam”ın farklı tetikleyicilere ayrılması yöntemi de dahil edilir
- Yerel ağ Vision-LLM denemeleri de vardır
- Ollama’nın OpenAI API uyumlu modu,
llama3.2-visionaraçları desteklemediği için başarısız oldu - Groq’un
llama-3.2-visionmodeli araçları destekler ancak ChatGPT, Claude ve Gemini kadar iyi olmadığı kaydedilmiştir
- Ollama’nın OpenAI API uyumlu modu,
- Ek fikirler arasında streaming LLM hizmeti ve kesinti, asenkron işleme, OpenAI responses API, MCP(Model Context Protocol) ve entegre web arayüzü bulunur
Başvurulan kaynaklar
- Awesome reMarkable: reMarkable ile ilgili kaynaklar
- reSnap: Ekran yakalama tabanlı
- rmkit lamp: Ekrana çizim teknikleri için referans
- resvg: SVG-to-PNG işleme
- rM-input-devices: Klavye olmadan sanal giriş aygıtı oluşturma
- reMarkableAI: OCR→OpenAI→PDF→Device yöntemiyle ilgili proje
- rMAI: Ayrı uygulama biçiminde reMarkable-LLM arayüzü
- Crazy Cow: reMarkable1 için metni kalem vuruşlarına dönüştüren araç
1 yorum
Hacker News yorumları
Projeyi yapan kişiyim. Hâlâ devam eden bir çalışma; en büyük farkındalığım, görsel modellerin uzamsal algı sınırları oldu
Kabaca bir değerlendirme örneği https://github.com/awwaiid/ghostwriter/blob/main/evaluation_... adresinde var
Sırada yaml+shell script tabanlı bir ajan framework'ü/aracıyla geliştirmeye ve çıkarmaya devam etmek, önceden bölümlere ayırma gibi uzamsal algı yöntemlerini daha fazla araştırmak ve çok sayıda nokta yerine gerçek kalem vuruşları gönderen bir reSvg backend'i yazmak var
Örneğin sözcükler, basit matematik ve diyagramların karıştığı notlar yazarken önemli bir ifadenin altını çizerseniz “cihaz” kenar boşluğunda o ifadeyi genişletebilir
Cihaz bir diyagram çizerken ben araya girip bir kısmını silip düzelttiğimde, bunu anlayıp değişiklik yapması da mümkün görünüyor
El yazısı tanımadan elde edilen metin, kalem vuruşu jestleri, küçük bir ikon dili ve LLM birleştiğinde, mevcut alışkanlıklara sıkışmış bizlerin hemen aklına getirmekte zorlanacağı yeni kullanıcı etkileşimi paradigmaları açılacak gibi
Böyle bir şeyden yakında “tüm demoların anası” türünde bir an çıkabilir gibi görünüyor; ama UX tasarımcısı olmadığım için bunu net hayal etmek zor, belki de bunu yapan kişi başarabilir
Ürün açısından, stylus'ı her durdurduğunda sürekli yanıt yazmaya çalışmaması için LLM'den yanıt isteme modunu kolayca açıp kapatabilmek gerekecek gibi
Bir süre eskiz çizip düşündükten sonra sohbeti yeniden başlatmak isteyebilirsin; belirli sayfalarda LLM'i açıp diğer sayfalarda kapatmak da isteyebilirsin
Cihaza SSH erişimi için ne tür bir jailbreak gerektiğini de merak ediyorum
reMarkable tabletler için uygulamaların hack'lenerek yapıldığını görmek gerçekten güzel
Daha önce küçük bir reMarkable uygulaması yapıp burada paylaşmıştım: https://digest.ferrucc.io/
Resmî geliştirici sitesini buldum: https://developer.remarkable.com/documentation
Uygulamaya baktım; reMarkable için geliştirirken en zorlandığın şeyin ne olduğunu merak ediyorum
Keşke reMarkable tabletler biraz daha az kapalı olsaydı
En sevdiğim donanımlardan biri, bu yüzden daha fazla uygulama olmasını isterdim
Bunu birkaç aydır hayata geçirmek istiyordum; gerçekten çok iyi yapılmış
Biraz Rust da var; cihaz kısıtlarıyla boğuşma, çeşitli LLM API normalizasyonları, uzamsal görsel LLM eğitimi gibi şeyler de işin içinde
Ekranı alabiliyordum ama “hack” olmadan yanıtı geri yazamıyordum
Bu hafta sonu denemeyi düşünüyorum
Yapılacaklar listesi yazınca PDF'i e-postayla gönderip LLM'e vererek görevleri otomatik oluşturma fikrim vardı; bu, o hedefe gerçek zamanlı olarak çok daha iyi ulaşmanın yolunu açıyor
“Bir gün yapmak istiyorum ama belirli bir zamanı yok; gerçek takvimle çakışmayacak bir zaman seç” gibi muğlak zamanlama isteklerini de işledi
Neredeyse hiç prompt gerekmiyordu ama workflow pek iyi değildi; sonunda PDF'i e-postayla gönderme yöntemine kalmıştı
Tekrar bakmam gerekecek gibi, ama zaten oluşturulan görevleri görmezden geldiğim için motivasyonum kalmamıştı
reMarkable Discord sunucusundayım: https://discord.gg/u3P9sDW. https://github.com/reHackable/awesome-reMarkable içinde de bağlantısı var
Rust binary'si olduğu için kurulum kolay olmalı. Teoride :)
Android tabanlı Onyx Boox e-kitap okuyucularda da mümkün olur mu merak ediyorum
Android'de uygun izinler varsa uygulamalar arası ekran görüntüsü mümkün olabilir gibi, ama çizim olayı enjekte etmeyi bilmiyorum
Başka bir yol özel bir uygulama yapmak. Az önce bir Apple Pencil aldım ve bu konsepti web uygulamasına taşımayı düşünüyorum; şu ana kadar şaşırtıcı derecede iyi çalışıyor
Yine de düzgün bir çözüm olacaksa bu ajanın mevcut uygulamalarla etkileşmesi daha iyi olur gibi
El yazısı girişi LLM ile birleştirmek, çok daha doğal bir workflow sağlayan harika bir kullanım örneği
Dağınık el yazısını ne kadar iyi işlediğini ve kişisel notlarla ince ayar yapılırsa tanımanın zamanla iyileşip iyileşmeyeceğini merak ediyorum
El yazım oldukça berbat olmasına rağmen, yapmak istediğim işi ve kabaca ya da belirli zamanı yazınca takvime eklenebilecek bir ical oluşturdu
Asıl sorun daha çok uzamsal algı. Bir kutunun içine güvenilir biçimde X çizmek bile zor; tic-tac-toe ya da noktaları birleştirme oyunları daha da zor
Güzel. Birkaç vektör difüzyon modeli de var; model bir şey çizmeye karar verirse bunu araç çağrısıyla böyle bir modele bırakmak nasıl olur diye düşünüyorum
O zaman koordinat aralığını ve prompt'u belirleyebilirsin
Önerebileceğin, mümkünse barındırılan API'si olan bir model var mı merak ediyorum
PDF makaleleri okumak için reMarkable'ın 11 inç boyutunun yeterli olup olmadığını merak ediyorum
13 inç Sony DPT 2. nesil kullanıyorum ve görüntüleme için mükemmel. Yine de bu tür projeler yüzünden reMarkable ürünleri beni çekmeye devam ediyor
Aktif okuma yaptığım için renkli vurgulama olmaması da eksik geldi. Not ekleme özellikleri harika
Şu anda makale incelemeye iPad'deki Zotero uygulamasında devam ediyorum
reMarkable 2, hack'lenebilirliği iyi olduğu için fena değildi; ama Pro'nun ekran boyutu ve renk özellikleri onu harika bir alternatif yaptı
Boox tablet kullanıyorum; aslında e-ink ekranlı tam bir Android tablet olduğu için böyle bir özellik için biçilmiş kaftan gibi
5 yıl kadar sonra mobil donanımın böyle şeyleri yerel çalıştırma olarak destekleyip destekleyemeyeceğini de merak ediyorum