MaximeRivest/riddle — write on reMarkable Paper Pro, ink fades, vision LLM reads handwriting, Dancing Script reply animates on e-ink. OpenAI or pi oracle, Rust+WASM.
A GitHub repo titled "Fable turned remarkable into Tom Riddle's diary from Harry Potter" sounds like a meme — until you watch the demo: you write on reMarkable Paper Pro e-ink, your ink fades, the page thinks, and an answer writes itself back in a flowing script, stroke by stroke, then fades away. No chat box. No keyboard. No glow.
Riddle by Maxime Rivest is real — MIT licensed, ~450 GitHub stars in days, and one of the clearest examples of vision LLMs leaving the browser for slow, deliberate hardware. The HN title riffs on Claude Fable 5 mystique; the stack is OpenAI-compatible vision or pi RPC — not an Anthropic API. Here's how it works, what it costs, and why e-ink + LLM beats another chat tab.
"Write on the page with your pen. After a pause, the diary drinks your ink — your words fade into the paper — the page thinks for a moment, and an answer writes itself back in a flowing hand, stroke by stroke, then fades away."
No screen glow, no keyboard, no chat UI. Just ink appearing on paper.
That is the opposite of Fable's consumer chat — thousands of lines of XML, artifacts, memory — and closer to embodied AI: one surface, one ritual, one persona ("Tom") embedded in the oracle prompt (riddle/src/oracle.rs).
HN reactions split:
Delight — "sick in the 90's Tony Hawk sense"; bang projects into existence era
Skepticism — Harry Potter horcrux comparisons and wellbeing debates
UX — README needs video above fold (demo on X/Twitter linked from repo)
explainx.ai treats it as a form-factor experiment — where multimodal meets calm technology.
Oracle process manager — keeps LLM warm, streams tokens
Handwriting replay — not a font blit; skeletonized single-pixel pen paths animated like real ink
quill/ — takeover display (C/C++)
Interposes on vendor libqsgepaper.so waveform engine
quill_init / quill_buffer / quill_swap C ABI
scribble — minimal pen-to-glass latency demo
Built with reMarkable SDK (~/rm-sdk-3.26) — proprietary libs from your device, not redistributed
Takeover mode is what the viral demo uses: lowest e-ink latency because xochitl is stopped and the engine is driven directly. Trade-off: runs as root, vendor UI gone until exit.
Gestures and safety exits
Gesture
Action
Write, rest pen
Diary drinks ink; Tom replies
Flip marker
Erase
Large ?
Built-in guide
Five-finger tap
Leave diary
Power button
"The diary sleeps." → suspend; wake resumes
SSH escape hatch:ssh [email protected] 'systemctl start xochitl' if wedged.
README is explicit: not affiliated with reMarkable AS; you use at your own risk.
The oracle — two backends
Option A: OpenAI-compatible vision API (easiest)
bash
export RIDDLE_OPENAI_KEY="sk-..."export RIDDLE_OPENAI_BASE="https://api.openai.com/v1"# optionalexport RIDDLE_OPENAI_MODEL="gpt-4o-mini"# must see images
Works with OpenRouter, Groq, local OpenAI-compatible servers. Pure-Rust HTTPS — no extra tablet deps.
Single multimodal call — aligns with GPT-4o-class routing
Trade-off: PNG payload size and API cost per page — fine for diary sessions, not for millisecond typing loops.
Compare to Fable inner voice: consumer models hide reasoning; Riddle shows the medium (ink) as the interface — no leaked CoT, just visible strokes.
Fable branding vs Riddle reality
Claude Fable 5 (Anthropic)
Riddle (open source)
Surface
claude.ai chat, artifacts
e-ink paper
Input
Keyboard, files, voice
Pen pressure only
Model
Anthropic stack
Your choice (OpenAI-compat / pi)
Persona
Operator prompt + classifiers
oracle.rs Tom diary
Safety
Wellbeing XML, reminders
Your API policy
Point
Frontier intelligence
Ritual + hardware
The HN joke maps Fable mystique onto enchanted paper — useful marketing, not technical dependency. Enterprises evaluating Fable export rules still deploy Riddle with their own API keys and data boundaries.
Who should build on this pattern
Good fits:
Journal / therapy apps — slow, private, no notification UI
Field notes + LLM — inspectors, archaeologists, scientists
Education — handwriting practice with Socratic replies
Art installations — e-ink as performance medium
Poor fits:
Real-time collaboration
Compliance workflows needing audit logs in vendor SaaS
Users without tolerance for developer mode friction
Adjacent stack: Same author ships Ternlight for browser semantic search — together they sketch on-device ML without chat chrome.
API dependency — offline diary needs local vision model (not shipped)
Persona prompt — Tom Riddle framing is playful; customize oracle.rs for production tone
Wellbeing — any diary LLM can over-engage vulnerable users; Anthropic's wellbeing blocks exist because chat products need them — roll your own for hardware hacks
Developer mode — what "drop riddle in" actually means
Riddle is not a sideloaded APK — it targets reMarkable Paper Pro developer mode:
remagic or manual xovi + AppLoad setup (launcher ecosystem on tablet)
Build-from-source path needs aarch64-unknown-linux-gnu cross-compile and, for takeover, reMarkable SDK 3.26 plus libqsgepaper.so pulled from your device — proprietary blob not in repo.
Handwriting pipeline — why Zhang-Suen matters
The "magic" is not GPT writing cursive — it is riddle converting model text to animated pen strokes:
Rasterize Dancing Script (SIL OFL font in repo)
Zhang-Suen thinning → single-pixel skeleton
Trace skeleton into pen paths
Replay paths on e-ink at hardware event rate
That is why replies feel written rather than typed — and why e-ink latency dominates UX more than token latency. First ink at ~0.9–1.1s with API oracle; streaming sentences hides the rest.
What people are asking (from HN)
Question
Answer
Is this Claude Fable?
No — OpenAI-compatible vision or pi; title is meme
Horcrux / safety jokes?
Persona is playful; customize oracle.rs for production
Where is the video?
Linked from README / creator X post — not inline on GitHub
Same author as Ternlight?
Ecosystem overlap (soycaporal / Maxime Rivest) — different stacks
Will reMarkable sue?
Not affiliated; developer mode hacks are user-risk
Unlike chat sessions with hundreds of turns, Riddle bills roughly one vision call per idle commit:
Variable
Typical impact
Page PNG size
Full e-ink frame — larger than a screenshot crop
Model
gpt-4o-mini class — cents per image at volume
Session length
Journal users may trigger 10–30 commits/hour
pi path
Subscription flat rate if already paying for pi
explainx.ai tip: cap daily commits in settings for demo tablets; use cheaper vision models for drafts and upgrade model for "serious" pages only — pattern similar to effort parameters in API products.
Privacy trade-off: PNG leaves device to API unless you self-host a vision model — Riddle does not ship local VLM weights in July 2026 release.
Preservation angle: Unlike always-online AAA games, a diary on e-ink with exported PNGs + your oracle logs is archivable — ironic given Tom Riddle lore.
Star trajectory: ~450 GitHub stars within days suggests appetite for non-chat LLM UX — watch forks for Kindle, Boox, or Supernote ports (none official yet).
What builders should do with this pattern
Fork the oracle prompt — replace Tom persona with field-note or Socratic tutor tone in oracle.rs
Stay windowed until takeover is tested on your firmware pin
Budget vision API — one PNG per page turn; cache nothing you cannot redact
Pair with Ternlight if you later index handwritten archives on desktop
Device compatibility, oracle latency, and star counts reflect July 2026 public releases. reMarkable firmware updates can break takeover mode — pin OS version in production experiments.