fable is a high-fidelity transcript memory tool for Claude Code. Its starting point is: every conversation between Claude Code and you is actually already saved locally, but Claude itself cannot use this history—mid-session compaction builds a wall out of summaries, /clear wipes the record, and after 30 days Claude Code automatically deletes these files. fable's positioning is not to build another summary- or fact-extraction-style "replacement memory," but to unlock these real transcripts.
Main capabilities
- Byte-identical recall: retrieve real conversations exactly as they were, rather than summaries or extracted "facts."
- Full-text and semantic search: indexed keyword search; semantic retrieval is optional and relies on local Ollama to generate embeddings.
- Local SQLite archive: includes an immutable vault (preserving every byte) and a search map.
- Composed Sessions: pick conversations from any project, any month, compose them in your order, and generate a brand-new session that Claude can continue as its own experience.
- File time travel: reconstruct each file's edit history produced by Edit and Write from the transcript, support side-by-side comparison of any two points in time, and jump back to the conversation that produced each change (fable file src/loader.py).
- Transcript Surgery: delete an entire conversation and then stitch the timeline back together, showing a simulation first; the deleted bytes remain permanently recallable and the operation is reversible.
- Lossless trimming: before restoring a heavy session, slim down each message (tool noise, images, redundant content), first give an item-by-item savings preview, and seal the originals into the vault first.
- Memory Diff: view, generation by generation and byte by byte, the impact of any trimming or cleanup on a conversation.
- Cold-start runs: use fable mute on, FABLE_MUTE=1 claude, or a toggle in settings to let a session or a group of subagents work without any prior context (no memory injected, no recall tools provided), while capture still continues; after unmuting, this muted work remains retrievable verbatim—useful for getting an unbiased second opinion that is not anchored by yesterday's conclusions.
How it works
fable indexes transcripts into a local SQLite archive: an immutable vault (which forever preserves everybytes) plus a search map (keywords, and optional local embedding semantic search provided via Ollama). The hook runs before Claude Code's compression and cleanup; an MCP server provides Claude with search, recall, and memory tools. Officially stated performance measured on real archives with 191,000 records and 6,000 sessions, reproducible with python3 scripts/benchmark.py, while also stating that no competitor publishes retrieval data.
Usage
Install command (officially stated to be idempotent, safe to re-run, and automatically skips parts already connected): fable install Manual step-by-step: fable setup (home) · claude mcp add fable -- fable mcp (MCP) · fable discover (indexing). During a session, you can directly ask Claude about past conversations, for example "What did we decide about auth last month?", and Claude will search its own history via MCP and cite real transcripts. Common usage: fable remember "we deploy Fridays only" records a long-term rule across sessions; fable file fable/recall.py views file history; fable --db demo/demo.db serve tries it out on sample data (you can first run python3 demo/seed_demo.py to generate fictional samples).
Applicable scenarios
- Architecture archaeology: asking "Why did we choose X back then?" weeks later.
- Locating when a function went wrong: use file time travel to find the exact edit and related conversation.
- Continuing a debugging thread where compression built a wall.
- Assembling a "workspace" session: merge threads from three projects into one memory.
- Reversibly trim heavy sessions before --resume.
- Save long-term agreements, such as "deploy only on Fridays".
Limitations and notes
fable is local-first, uses only the standard library, is based on MCP, and is MIT licensed. Its officially stated non-goals indicate that local-first is a long-term direction. Semantic retrieval depends on optional local Ollama embeddings; whether semantic capabilities are available when embeddings are not used is not explicitly stated in the materials. Details such as pricing and platform support scope are not yet provided. The official explanation says mem0 is better suited for production-grade intelligence with multiple LLMsagents, and ccusage is deeper for billing analysis; the tasks differ and both are compatible with fable.