- Ghostwriter adalah proyek eksperimental yang memantau konten tulisan tangan pengguna di reMarkable, lalu ketika dipicu oleh gestur atau konten layar, mengirimkannya ke Vision-LLM dan menampilkan hasilnya kembali di layar sebagai tulisan atau gambar
- Untuk menjalankannya diperlukan API key seperti
OPENAI_API_KEY,ANTHROPIC_API_KEY,GOOGLE_API_KEY; unduh binary untuk reMarkable2 dan reMarkable Paper Pro, salin ke perangkat, lalu jalankan lewat SSH - Model default adalah
claude-sonnet-4-0, dan model serta engine dapat diganti dengan--model gpt-4o-mini,--engine openai,--engine anthropic,--engine google,--engine-base-url, dan sebagainya - Metode output mendukung baik gambar SVG maupun input teks berbasis keyboard virtual, dan perilakunya dapat disesuaikan dengan opsi seperti
--no-svg,--no-keyboard,--thinking,--web-search,--apply-segmentation - Proyek ini telah diperluas hingga mencakup tangkapan layar, pemanggilan Vision-LLM, penggunaan tool, segmentasi gambar, skrip evaluasi, serta dukungan modul
uinputuntuk reMarkable Paper Pro, tetapi beberapa fungsi secara eksplisit masih eksperimental atau berstatus WIP
Apa yang dilakukan Ghostwriter
- Ghostwriter adalah antarmuka eksperimental yang berjalan di atas reMarkable
- Pengguna menulis tangan atau menggambar di layar
- Memicunya dengan menyentuh sudut tertentu menggunakan jari atau melalui konten layar
- Mengirim layar saat ini ke Vision-LLM, lalu menampilkan kembali respons model di layar
- Contohnya mencakup kasus pengguna memasukkan prompt tulisan tangan, lalu GPT-4o menggambar seekor chihuahua
- Tujuan proyek ini adalah mengeksplorasi berbagai cara interaksi pada medium yang menggabungkan tulisan tangan dan layar
Cara instalasi dan menjalankan
- Sebelum menjalankan, API key harus disetel di lingkungan reMarkable
OPENAI_API_KEYANTHROPIC_API_KEYGOOGLE_API_KEY
- Instalasi dilakukan dengan mengunduh binary sesuai perangkat dari komputer lokal, lalu menyalinnya ke reMarkable
- reMarkable2:
ghostwriter-rm2 - reMarkable Paper Pro:
ghostwriter-rmpp
- reMarkable2:
- Di perangkat, akses lewat SSH, berikan izin eksekusi, lalu jalankan
./ghostwriter - Eksekusi default menggunakan
claude-sonnet-4-0./ghostwriter./ghostwriter --model gpt-4o-mini
- Contoh menjalankan di background adalah
nohup ./ghostwriter --model gpt-4o-mini & - Menjalankan otomatis saat boot masih tersisa sebagai TODO
Alur penggunaan dan opsi CLI
- Pengguna terlebih dahulu menjalankan
ghostwriterdi reMarkable, menggambar konten di layar, lalu mengetuk sudut kanan atas dengan jari untuk memicu asisten - Selama pemrosesan, sesi SSH menampilkan deteksi sentuhan dan log pemrosesan; di layar akan digambar titik sebagai indikator progres, lalu muncul respons yang diketik atau digambar
- Opsi terkait model dan engine
--model MODEL: model yang akan digunakan, defaultclaude-sonnet-4-0--engine ENGINE: memilih antaraopenai,anthropic,google, dan dapat dideteksi otomatis dari model--engine-api-key KEY: menentukan API key secara langsung--engine-base-url URL: menentukan URL dasar API kustom
- Opsi terkait perilaku
--prompt PROMPT: menentukan file prompt, defaultgeneral.json--trigger-corner CORNER: menentukan sudut pemicu sentuhan, defaultUR, juga mendukungUL,LR,LL
- Opsi terkait tool
--no-svg: menonaktifkan tool menggambar SVG--no-keyboard: menonaktifkan output teks--thinking: mengaktifkan thinking milik Anthropic--web-search: mengaktifkan pencarian web milik Anthropic
- Opsi terkait pengujian dan debugging
--log-level LEVEL: mengaturinfo,debug,trace--no-loop: keluar setelah berjalan sekali--input-png FILE: menggunakan file PNG alih-alih screenshot--output-file FILE: menyimpan output--save-screenshot FILE: menyimpan screenshot--save-bitmap FILE: menyimpan hasil rendering--no-submit: tidak mengirim ke model--no-draw: tidak menggambar output--no-trigger: menonaktifkan pemicu sentuhan--apply-segmentation: menambahkan segmentasi gambar untuk pemahaman spasial
Implementasi dan workflow pengembangan
- Pengembangan terutama dilakukan di Ubuntu dan juga berjalan di OSX
- Alur pengembangan terdiri dari instalasi dependensi, cross-compile untuk target reMarkable, transfer ke perangkat dengan
scp, lalu menjalankan ulang di perangkat - Untuk cross-compile digunakan Docker, Rust,
cross-rs, dan target ARM- Target reMarkable2:
armv7-unknown-linux-gnueabihf - Target reMarkable Paper Pro:
aarch64-unknown-linux-gnu
- Target reMarkable2:
- Proses build lalu transfer dibungkus dalam
build.sh./build.sh: build dan transfer untuk reMarkable2./build.sh rmpp: build dan transfer untuk reMarkable Paper Pro
- Build untuk rilis dilakukan dengan menempelkan tag seperti
v2026.09.21-01ke main, lalu GitHub Action membuat rilis terbaru
Perubahan fitur dan catatan eksperimen
- Pada 2024-10-06, proof of concept dasar sudah berjalan
- Contoh mengisi jawaban untuk soal matematika
3 + 7 =berjalan - Contoh “Draw a picture of a chihuahua. Use simple line-art” berjalan
- Cara meraster output SVG lalu menggambar banyak titik terkadang tidak berjalan baik di reMarkable
- Contoh mengisi jawaban untuk soal matematika
- Pada 2024-10-07, pemicu sentuhan kanan atas dan indikator status ditambahkan
- Saat disentuh,
Xdigambar di layar, dan selama pemrosesan garis tambahan digambar pada X - Pengguna harus menghapusnya sendiri
- Saat disentuh,
- Mulai 2024-10-10, eksperimen input teks berbasis keyboard virtual dimulai
- Setiap halaman reMarkable memiliki satu area teks besar, dengan pemformatan tingkat dasar
- Melalui
rM-input-devices, dibuat keyboard virtual dan divalidasi cara menampilkan output ke layer teks
- Pada 2024-11-02, tool
draw_textdandraw_svgmulai disediakan- Satu asisten utuh menentukan apakah akan menjawab dengan teks keyboard atau gambar SVG
- Pada 2024-11-07, dukungan Claude/Anthropic ditambahkan
- Dapat memakai konfigurasi penggunaan tool yang hampir sama dengan OpenAI
- Tercatat bahwa model tampak lebih menyukai menggambar, tetapi menggambar dan pemahaman spasialnya kurang baik
- Pada 2024-12-02, tahap segmentasi gambar dasar ditambahkan
- Koordinat segmen diteruskan ke Vision-LLM agar dipertimbangkan
- Saat itu hanya terhubung ke Claude
- Tercatat ada peningkatan pada tugas memasukkan X di dalam kotak dan menempatkan jawaban matematika di posisi yang tepat
- Harus diaktifkan secara eksplisit dengan
--apply-segmentation, dan mem-parsing ulang PNG dengan prasyarat--input-pngatau--save-screenshot
- Pada 2024-12-15, layer engine polimorfik untuk backend OpenAI dan Anthropic dipisahkan
- Engine dan model bisa diteruskan sebagai argumen
- Definisi prompt dan tool dieksternalkan serta disatukan ke direktori
prompts/
- Pada 2024-12-25, CLI disederhanakan dan diperluas
- Jika hanya memberikan
-m gpt-4o-mini, engine diasumsikan sebagaiopenai - Contoh penggunaan Groq ditambahkan
- Dukungan Google Gemini melalui
gemini-2.0-flash-expdanGOOGLE_API_KEYditambahkan
- Jika hanya memberikan
- Pada 2025-05-10,
thinkingdanweb_searchmilik Anthropic ditambahkan- Respons thinking diproses tetapi tidak dikirim ke layar
- Pencarian web berjalan sebagai fitur sisi server Anthropic
- Tidak aktif secara default dan dijalankan dengan
./ghostwriter --thinking --web-search
- Pada 2025-09-21, dilakukan perbaikan terkait reMarkable Paper Pro dan penambahan opsi
- Memperbaiki masalah screenshot yang tidak masuk dengan benar karena resolusi layar berubah di 3.20
--no-svgditambahkan atas permintaan pengguna- Penentuan sudut pemicu seperti
--trigger-corner LRditambahkan
reMarkable Paper Pro dan uinput
- Pada 2025-03-03, Ghostwriter juga dapat berjalan di reMarkable Paper Pro
- Perbedaan pada layar dan metode input merupakan perbedaan yang sudah diperkirakan
- Masalah yang tidak diduga adalah reMarkable Paper Pro tidak menyertakan modul kernel
uinput - Modul
uinputdibangun dan dibundel menggunakan reMarkable/linux-imx-rm - Ghostwriter mencoba memuat modul
uinputjika belum termuat - Karena setiap rilis reMarkable biasanya memakai versi Linux baru dan bisa tidak kompatibel satu sama lain, bagian ini dicatat sebagai beban besar
- Pada 2025-04-26, modul untuk 3.16, 3.17, 3.18 sudah disiapkan
- Catatan 2025-12-06 menyebutkan bahwa setelah update, Linux rmpp sudah dipublikasikan dan modul
uinputjuga sudah ada, tetapi tetap perlu dimuat
Evaluasi dan ide ke depan
- Sistem evaluasi dasar dirangkum sebagai item yang sudah selesai
- Membuat set screenshot untuk input
- Merepresentasikan berbagai use case
- Membuat contoh output dalam bentuk teks, SVG, dan aksi
- Sebagian mencakup kemungkinan evaluasi oleh manusia atau penilai Vision-LLM terpisah
- Pada 2024-12-22, sistem evaluasi mulai diperluas, termasuk run_eval.sh
- Saat itu parameternya di-hardcode untuk memilih apakah memakai segmen dan memilih Claude 3.5 Sonnet atau ChatGPT 4o-mini
- Laporan evaluasi awal disertakan
- Laporan akhir mencatat 48 kali eksekusi dengan biaya sekitar $1
- Sebagai item WIP, ada library prompt
- Titik awalnya ada di
prompts/ - Gagasannya adalah membuat tool dapat dikonfigurasi dari prompt
- Contoh prompt untuk manajemen TODO mencakup cara mencari dan mengekstrak
todo, lalu menjalankan perintah eksternal sepertiadd-todo.sh
- Titik awalnya ada di
- Ide ke depan mencakup pembuatan file konfigurasi awal, input API key, auto-start dan auto-recovery, pembuatan diagram berbasis PlantUML atau Mermaid, lookup eksternal, serta pengiriman email atau Slack
- Ada juga gagasan mode percakapan
- Melacak versi layar per giliran pada satu layar
- Diusulkan cara membedakan input asli, respons model, dan input baru dengan warna
- Juga mencakup cara memisahkan “prompt baru” dan “lanjutkan” dengan pemicu berbeda
- Ada eksperimen Vision-LLM jaringan lokal
- Mode kompatibel OpenAI API milik Ollama gagal karena
llama3.2-visiontidak mendukung tool llama-3.2-visionmilik Groq mendukung tool, tetapi dicatat tidak sebaik ChatGPT, Claude, dan Gemini
- Mode kompatibel OpenAI API milik Ollama gagal karena
- Ide tambahan mencakup layanan LLM streaming dan interupsi, pemrosesan asinkron, OpenAI responses API, MCP(Model Context Protocol), serta antarmuka web terpadu
Sumber rujukan
- Awesome reMarkable: sumber daya terkait reMarkable
- reSnap: berbasis tangkapan layar
- rmkit lamp: rujukan teknik menggambar di layar
- resvg: pemrosesan SVG-to-PNG
- rM-input-devices: membuat perangkat input virtual tanpa keyboard
- reMarkableAI: proyek terkait dengan alur OCR→OpenAI→PDF→Device
- rMAI: antarmuka reMarkable-LLM dalam bentuk aplikasi terpisah
- Crazy Cow: tool untuk reMarkable1 yang mengubah teks menjadi goresan pena
1 komentar
Komentar Hacker News
Saya pembuat proyek ini. Ini masih terus dikerjakan, dan pelajaran terbesar sejauh ini adalah keterbatasan persepsi spasial pada model visi
Contoh evaluasi kasarnya ada di https://github.com/awwaiid/ghostwriter/blob/main/evaluation_...
Berikutnya saya berencana terus membangun dan mengekstrak dengan framework/alat agen berbasis yaml+skrip shell, lebih mengeksplorasi metode persepsi spasial seperti pra-pemisahan, serta menulis backend reSvg yang mengirimkan goresan pena sebenarnya alih-alih banyak titik
Misalnya, saat menulis catatan yang mencampur kata, matematika sederhana, dan diagram, lalu menggarisbawahi frasa kunci, “perangkat” bisa memperluas frasa itu di margin
Saat perangkat sedang menggambar diagram, saya bisa menyela, menghapus dan memperbaiki sebagian, lalu perangkat memahaminya dan melakukan perubahan
Perpaduan teks dari pengenalan tulisan tangan, gestur goresan, bahasa ikon kecil, dan LLM sepertinya akan membuka paradigma interaksi pengguna baru yang sulit langsung kita bayangkan karena masih terjebak kebiasaan lama
Rasanya momen seperti “ibu dari semua demo” bisa segera muncul dari hal semacam ini, tetapi karena saya bukan desainer UX, sulit membayangkannya dengan jelas; mungkin pembuatnya yang bisa mewujudkannya
Dari sudut pandang produk, sepertinya harus mudah menyalakan dan mematikan mode meminta respons dari LLM, agar LLM tidak terus-menerus mencoba menulis jawaban setiap kali stylus berhenti
Mungkin seseorang ingin menggambar dan berpikir sebentar lalu memulai kembali percakapan, atau ingin menyalakan LLM hanya di halaman tertentu dan mematikannya di halaman lain
Saya juga penasaran jenis jailbreak apa yang diperlukan untuk mendapatkan akses SSH ke perangkat
Senang sekali melihat orang meretas dan membuat aplikasi untuk tablet reMarkable
Dulu saya pernah membuat aplikasi kecil untuk reMarkable dan membagikannya di sini: https://digest.ferrucc.io/
Saya menemukan situs developer resminya: https://developer.remarkable.com/documentation
Saya sudah melihat aplikasinya, dan penasaran apa bagian tersulit saat mengembangkan untuk reMarkable
Saya berharap tablet reMarkable sedikit lebih tidak terkunci
Ini salah satu hardware favorit saya, jadi saya ingin lebih banyak aplikasi tersedia
Saya sudah ingin mencoba mengimplementasikan ini sejak beberapa bulan lalu, dan ini dibuat dengan sangat baik
Ada sedikit Rust di dalamnya, bergulat dengan keterbatasan perangkat, beberapa normalisasi API LLM, pelatihan LLM visi spasial, dan lain-lain
Saya bisa mengambil layar, tetapi tanpa “peretasan” saya tidak bisa menuliskan respons kembali
Saya berencana mencobanya akhir pekan ini
Saya punya ide menulis daftar tugas, lalu mengirim PDF via email dan meneruskannya ke LLM untuk membuat tugas secara otomatis; ini membuka cara yang jauh lebih baik untuk mencapai tujuan itu secara real-time
Bahkan penjadwalan ambigu seperti “saya ingin melakukannya suatu saat, tapi tidak ada waktu tertentu, jadi pilih waktu yang tidak bentrok dengan jadwal sebenarnya” bisa ditangani
Hampir tidak butuh prompt, tetapi workflow-nya kurang bagus karena akhirnya tetap harus mengirim PDF via email
Sepertinya perlu saya lihat lagi, meski saya tidak terlalu termotivasi karena toh saya mengabaikan tugas-tugas yang dibuatnya
Saya ada di server Discord reMarkable https://discord.gg/u3P9sDW. Itu juga ditautkan dari https://github.com/reHackable/awesome-reMarkable
Karena berupa binary Rust, instalasinya semestinya mudah. Secara teori :)
Saya penasaran apakah ini juga bisa dilakukan di e-reader Onyx Boox berbasis Android
Di Android, dengan izin yang tepat, screenshot antar-aplikasi sepertinya mungkin, tetapi saya kurang tahu soal penyuntikan event menggambar
Cara lain adalah membuat aplikasi khusus. Saya baru saja membeli Apple Pencil dan sedang mempertimbangkan memindahkan konsep ini ke aplikasi web; sejauh ini ternyata bekerja cukup baik
Meski begitu, untuk solusi yang benar-benar baik, menurut saya lebih bagus jika agen ini berinteraksi dengan aplikasi yang sudah ada
Menggabungkan input tulisan tangan dan LLM adalah use case bagus yang memungkinkan workflow yang jauh lebih natural
Saya penasaran seberapa baik ia menangani tulisan tangan yang berantakan, dan apakah fine-tuning dengan catatan pribadi bisa membuat pengenalannya membaik seiring waktu
Meski tulisan tangan saya cukup kacau, ia bisa membuat ical yang bisa dimasukkan ke kalender dari hal-hal yang ingin saya lakukan serta waktu yang kira-kira atau spesifik
Masalah sebenarnya lebih pada persepsi spasial. Menggambar X dengan andal di dalam kotak saja sulit, apalagi tic-tac-toe atau permainan menghubungkan titik
Bagus. Ada juga beberapa model difusi vektor; kalau model memutuskan perlu menggambar sesuatu, bagaimana kalau menyerahkannya ke model seperti itu lewat tool calling?
Dengan begitu, koordinat area dan prompt bisa ditentukan
Saya penasaran apakah ada model yang bisa direkomendasikan, kalau bisa yang punya API hosted
Saya penasaran apakah ukuran 11 inci reMarkable cukup untuk membaca makalah PDF
Saya memakai Sony DPT generasi ke-2 berukuran 13 inci, dan untuk membaca itu sempurna. Namun proyek seperti ini terus membuat saya tertarik pada produk reMarkable
Karena saya tipe pembaca aktif, tidak adanya highlight warna juga terasa kurang. Fitur anotasinya luar biasa
Saat ini saya tetap meninjau makalah di aplikasi Zotero di iPad
reMarkable 2 cukup bagus karena mudah diretas, tetapi ukuran layar dan fitur warna pada Pro menjadikannya pengganti yang sangat baik
Saya memakai tablet Boox, dan karena pada dasarnya itu tablet Android penuh dengan layar e-ink, rasanya sangat cocok untuk fitur seperti ini
Saya juga penasaran apakah sekitar 5 tahun lagi hardware mobile bisa mendukung hal seperti ini untuk dijalankan secara lokal