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

custom AI agents

[email protected]

get started

Find your pathTake Free Evaluation

learn

pathways — start freeworkshopsbootcampscoursescertificationsmock testsexplainx universitycorporate traininglearn skills & mcp

discover

skillsmcp serversexplainx mcptoolsagentsllmsdesignsagi trackerranks

company

aboutvisionmissionteaminstructorscommunityhackathonscareers

content

daily AI newsstate of AI — live resultsblogreleasespromptsgeneratorsresource librarydemofor LLMs

solutions

all solutionsdeveloper upskillingmarketing upskillingproduct manager upskillingleadership upskilling

More from us

InfloqInfluencer marketingBgBlurPrivacy-first blurOlly SocialSocial AI copilotCeptoryVideo intelligenceBgRemoverBackground removal

newsletter · weekly

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

contactsupportprivacytermsdata rightssubmission 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

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

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 [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"   # 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 [email protected]:/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

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 [email protected] 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)

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

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:

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.

Yash Thakker

Written by

Yash Thakker

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

Related posts

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.

Jul 7, 2026

system_prompts_leaks on GitHub: How to Read Leaked AI System Prompts (Claude, GPT, Gemini, Copilot)

The system_prompts_leaks repo archives extracted instructions for Claude Fable 5, GPT-5.5 Codex, Gemini 3.5 Flash, Cursor, Copilot, and dozens more. Here's how to use the corpus responsibly — and what it means for your product prompts.