explainx.ainewsletter3.5k
TrendingNewsPathwaysSkills
Pricing
explainx.ai

Upskill in AI — 16 free pathways, live workshops & bootcamps, and 50+ courses from practitioners. Plus the skills, tools, and MCP servers to practice on.

follow us

corporate training

support@explainx.ai

get started

Find your pathTake Free Evaluation

learn

pathways — start freeworkshopsbootcampscoursescertificationsmock testsexplainx universitycorporate traininglearn skills & mcp

discover

skillsmcp serversexplainx mcptoolsagentsllmsdesignsdictionaryagi trackerranks

company

aboutvisionmissionteaminstructorscommunityhackathonscareers

content

daily AI newsstate of AI — live resultsblogreleasespromptsgeneratorsresource libraryfor LLMsexplainx.ai kids

solutions

all solutionsdeveloper upskillingmarketing upskillingproduct manager upskillingleadership upskilling

newsletter · weekly

Get AI news, tools, and insights in your inbox.

supportprivacytermsdata rightshow we create contentsubmission guidelines

© 2026 AISOLO Technologies Pvt Ltd

On this page

  • TL;DR — Riddle at a glance
  • The experience — why "Tom Riddle" landed
  • Architecture — pen, oracle, quill
  • Gestures and safety exits
  • The oracle — two backends
  • Install paths
  • Why vision-on-PNG beats OCR pipelines
  • Fable branding vs Riddle reality
  • Who should build on this pattern
  • Risks and limitations
  • Developer mode — what "drop riddle in" actually means
  • Handwriting pipeline — why Zhang-Suen matters
  • What people are asking (from HN)
  • Comparison — chat UI vs embodied ink
  • Cost model — vision API per page turn
  • What builders should do with this pattern
  • Related on explainx.ai
← Back to blog

explainx / blog

reMarkable Riddle: Fable-Style Vision LLM Diary on E-Ink (Tom Riddle's Diary)

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.

Jul 7, 2026·9 min read·Yash Thakker
reMarkableE-InkVision LLMClaude Fable 5Open Source
go deep
reMarkable Riddle: Fable-Style Vision LLM Diary on E-Ink (Tom Riddle's Diary)

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.

Weekly digest3.5k readers

Catch up on AI

Curated AI updates on agents, skills, and MCP — delivered to your inbox. Unsubscribe anytime.


TL;DR — Riddle at a glance

table · 2 cols
QuestionAnswer
Repogithub.com/MaximeRivest/riddle
DevicereMarkable Paper Pro (ferrari, aarch64, OS 3.26–3.27)
PrereqsDeveloper mode, xovi + AppLoad (or remagic setup path)
InputPen via raw evdev, 4096 pressure levels
Trigger~2.8s pen idle → commit page → PNG → vision LLM
OutputDancing Script handwriting animated on e-ink
Oracle AAny OpenAI-compatible vision API (RIDDLE_OPENAI_KEY)
Oracle BResident pi --mode rpc (if no OpenAI key)
Latency~0.9–1.1s to first ink (API path, on-device measured)
ModesWindowed (qtfb inside xochitl) or takeover (quill — demo mode)
LicenseMIT (vendor libs from your device only)
Same author energyTernlight embeddings

The experience — why "Tom Riddle" landed

From the README:

"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.


Architecture — pen, oracle, quill

text
 pen (evdev, 4096 pressure)
   │ strokes
   ▼
 riddle (Rust) ── idle 2.8s → page PNG ──► oracle (resident LLM)
   │                                          streams sentences
   ▼
 handwriting synthesis
   Dancing Script → rasterize → Zhang-Suen thin → stroke paths
   ▼
 display backend
   ├── qtfb     — windowed inside xochitl (AppLoad)
   └── quill    — takeover: stop xochitl, vendor e-ink direct

riddle/ — the Rust app

  • Ink surface + gesture handling
  • 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

table · 2 cols
GestureAction
Write, rest penDiary drinks ink; Tom replies
Flip markerErase
Large ?Built-in guide
Five-finger tapLeave diary
Power button"The diary sleeps." → suspend; wake resumes

SSH escape hatch: ssh root@10.11.99.1 '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"   # optional
export RIDDLE_OPENAI_MODEL="gpt-4o-mini"                # must see images

Works with OpenRouter, Groq, local OpenAI-compatible servers. Pure-Rust HTTPS — no extra tablet deps.

Test before launch:

bash
riddle --oracle-test path/to/handwriting.png

OpenRouter example:

bash
export RIDDLE_OPENAI_KEY="$OPENROUTER_API_KEY"
export RIDDLE_OPENAI_BASE="https://openrouter.ai/api/v1"
export RIDDLE_OPENAI_MODEL="openai/gpt-4o-mini"

Option B: pi RPC (power path)

If RIDDLE_OPENAI_KEY unset, riddle spawns resident pi --mode rpc — Node + subscription auth loaded once; each turn pays model latency only.

Both backends stream sentence-by-sentence so the quill starts before the model finishes — critical for perceived magic on slow e-ink.


Install paths

Prebuilt bundle (recommended)

  1. Download riddle-appload-aarch64.zip from releases
  2. scp -O -r riddle root@10.11.99.1:/home/root/xovi/exthome/appload/
  3. cp oracle.env.example oracle.env → add RIDDLE_OPENAI_KEY
  4. AppLoad → Reload → The Diary

Build windowed (AppLoad/qtfb)

bash
cd riddle
cargo build --release --target aarch64-unknown-linux-gnu

Deploy binary + external.manifest.json + appload-launch.sh to appload folder.

Build takeover (demo-grade)

bash
cd quill && ./build.sh    # pulls libqsgepaper.so from device via ssh
cd ../riddle && ./build-takeover.sh

Launch via AppLoad script → transient systemd unit, stops xochitl, restores on exit.


Why vision-on-PNG beats OCR pipelines

Naive approach: OCR handwriting → text → LLM → text → render.

Riddle sends the page image to a vision-capable model. Benefits:

  • Layout context — diagrams, arrows, marginalia survive
  • No OCR error cascade on messy pen strokes
  • 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

table · 3 cols
Claude Fable 5 (Anthropic)Riddle (open source)
Surfaceclaude.ai chat, artifactse-ink paper
InputKeyboard, files, voicePen pressure only
ModelAnthropic stackYour choice (OpenAI-compat / pi)
PersonaOperator prompt + classifiersoracle.rs Tom diary
SafetyWellbeing XML, remindersYour API policy
PointFrontier intelligenceRitual + 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.


Risks and limitations

  • Root + takeover — bricking risk if SSH lost; keep escape paths
  • OS lock-in — Paper Pro 3.26–3.27 only per README
  • 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:

  1. remagic or manual xovi + AppLoad setup (launcher ecosystem on tablet)
  2. SSH to root@10.11.99.1 over USB — your escape hatch
  3. Copy riddle-appload-aarch64.zip to /home/root/xovi/exthome/appload/
  4. Configure oracle.env with vision API key
  5. AppLoad → Reload → launch The Diary

Windowed mode keeps xochitl (vendor UI) running — safer for daily carry.Takeover mode (demo video) stops xochitl, runs quill shim over libqsgepaper.so — lowest latency, highest brick risk if SSH breaks.

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:

  1. Rasterize Dancing Script (SIL OFL font in repo)
  2. Zhang-Suen thinning → single-pixel skeleton
  3. Trace skeleton into pen paths
  4. 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)

table · 2 cols
QuestionAnswer
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

Comparison — chat UI vs embodied ink

table · 3 cols
DimensionChatGPT / Claude appRiddle on Paper Pro
Input bandwidthKeyboard, paste, filesPen only
OutputMarkdown streamAnimated ink
AttentionNotifications, tabsSingle page
PrivacyCloud defaultYour API + local page PNG
Latency feelTokens/secStroke animation + e-ink refresh
Best forWork, code, researchJournaling, ritual, focus

This is calm technology in the spirit of screenless fitness trackers — AI without feed scroll.


Cost model — vision API per page turn

Unlike chat sessions with hundreds of turns, Riddle bills roughly one vision call per idle commit:

table · 2 cols
VariableTypical impact
Page PNG sizeFull e-ink frame — larger than a screenshot crop
Modelgpt-4o-mini class — cents per image at volume
Session lengthJournal users may trigger 10–30 commits/hour
pi pathSubscription 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

Related on explainx.ai

  • Claude Fable 5 launch guide
  • Fable 5 system prompt leak analysis
  • Fable inner voice — leaked reasoning
  • Multimodal AI complete guide
  • Ternlight — browser embeddings (same author)
  • Build a personal local AI system

External: riddle GitHub · Release 0.2.0 · Demo video (X)


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.

Spotted something out of date? Let us know.
Yash Thakker

Written by

Yash Thakker

Yash is an AI expert with over 300K learners. Join his workshops →

Related posts

Aug 16, 2026

World of ClaudeCraft: The MMO Claude Fable 5 Built in a Weekend

A Wellington studio pointed Claude Fable 5 at a browser MMO for two days, posted the result to Reddit, and a stranger-built community turned it into a real, free, open-source game — three zones, nine classes, a $WOC memecoin, and a genuine argument about what "AI-built" means.

Jul 22, 2026

Kimi K3 + Fable 5 Routing Beats Either Model Alone, Fireworks Study Finds

Fireworks AI's benchmark makes the case that picking one frontier model is already the wrong question — the real gains come from routing tasks to whichever model is cheapest for that specific job. Here's what the 1,030-task study actually measured, and why "oracle routing" isn't the same as a real router.

Jul 7, 2026

Will Claude Fable 5 Run Locally by 2028? r/LocalLLaMA's 24.8-Month Lag Projection Explained

Polymarket and @kimmonismus amplified an r/LocalLLaMA projection: frontier models like Claude Fable reach laptop-runnable open-weight parity in ~24.8 months. explainx.ai unpacks the historical lag math, why you will not run Fable weights locally, and what builders should plan for by mid-2028.