Skip to main content
Glama
grooverLab

fable MCP server

fable Recall

Your Claude already has a memory. fable unlocks it.

Quickstart · Why fable · Benchmarks · Roadmap · Discussions

MIT stdlib only tests local first

Every conversation you've ever had with Claude Code is already saved on your machine — every decision, every debugging hunt, every 2 AM breakthrough, word for word. Claude just isn't allowed to use it.

Mid-session, compaction builds a wall: everything behind it is locked away to save tokens, and Claude carries on with a thin summary. /clear wipes the slate. And after 30 days, Claude Code quietly deletes the files themselves. Your project's real memory — locked, then destroyed, by design.

Everyone else sells you a replacement memory: summaries, extracted facts, vector stores. fable does something different — it unlocks the real one.

fable demo

pipx install git+https://github.com/grooverLab/fable
fable install       # one command: register the MCP, install hooks, index your history
fable serve         # browse your memory in a dashboard

100% local · no API keys · no cloud · no daemons. Your conversations never leave your machine.

pipx install git+https://github.com/grooverLab/fable   # install the CLI
fable install        # one-shot: claude mcp add + Claude Code hooks +
                     # ~/.fable home + index every transcript
fable serve          # dashboard at http://127.0.0.1:8765
pipx upgrade fable-recall   # update later (pulls latest from GitHub)

fable install is idempotent — safe to re-run; it skips anything already wired. To do it by hand: fable setup (home) · claude mcp add fable -- fable mcp (MCP) · fable discover (index).

command

what it does

fable search <q>

rank threads by relevance (--project, --kind, -n)

fable context <q>

assemble a budgeted context pack

fable thread <id>

a thread's raw turns, byte-identical

fable file <path>

a file's full edit history across sessions

fable cards run

generate AI summary cards (background)

fable discover

(re)scan + index all Claude Code projects

fable prune · fable export · fable stats

slim a session · export · index stats

fable serve

the dashboard

  • Ask about past conversations with Claude — get the real answer. "What did we decide about auth last month?" Claude searches its own history mid-session (via MCP) and quotes the actual transcript — not a summary, not an extracted "fact." The conversation itself.

  • The wall stops costing you. fable catalogs everything before compaction walls it off, and hands back exactly what Claude lost — on demand, under a token budget you set.

  • The 30-day deletion becomes irrelevant. Sealed into a local vault, byte-identical, for as long as you decide.

Related MCP server: acheron-mcp-server

First of its kind — five things no other tool does

🧵 Composed Sessions. Hand-pick conversations from any project, any month — put them in your order — and fable builds a brand-new session that Claude resumes as its own lived history. A workspace with curated memory. (Empirically verified: restitched sessions resume cleanly, signatures intact.)

🕰️ File time-travel. Your transcripts accidentally versioned everything. fable reconstructs every file's edit history — every Edit and Write Claude ever made, across every session — with side-by-side comparison between any two moments of a file's life, and a jump back to the conversation that made each change. (fable file src/loader.py)

✂️ Transcript Surgery. Your 80 MB session is paying rent on dead threads. Remove whole conversations — fable re-stitches the timeline, shows you the simulation first, and keeps every removed byte recallable forever. Reversible by construction.

🪶 Pruning that loses nothing. Slim every message (tool noise, images, bloat) before resuming a heavy session — with an itemized preview of the savings, and the original sealed in the vault first.

🔍 Memory Diff. See exactly what any prune or cleanup cost any conversation — generation by generation, byte by byte. Nobody else can even show you what was lost.

How it works (the short version)

fable indexes your transcripts into a local SQLite archive: an immutable vault (every byte, forever) plus a search map (keyword + semantic, optional local embeddings via Ollama). Hooks run before Claude Code's compaction and cleanup; an MCP server gives Claude search / recall / remember tools. Measured on a real archive — 191,000 records, 6,000 conversations:

recall@1

recall@5

search (p50)

full re-index

76.7%

90.0%

135 ms

6.6 s

Reproduce it: python3 scripts/benchmark.py. No competitor publishes retrieval numbers.

Why fable — and not another memory layer

fable

claude-mem

mem0 / Letta

native Claude Code

Memory = your actual conversations

❌ summaries

❌ fact snippets

⚠️ locked behind the wall

Survives the 30-day deletion & /clear

⚠️ its summaries do

Claude searches its own history (MCP)

Composed sessions / file time-travel / surgery / diff

✅ first of its kind

Zero API keys, fully offline

Footprint

one SQLite file

Node + Chroma daemon

cloud / Docker

(Fair is fair: mem0 fits multi-LLM production agents; ccusage goes deeper on billing analytics. Different jobs, both compatible with fable.)

Trusted the hard way

fable's first user is the session that built it: mid-build, that session was pruned by fable (7.8 MB → 3.0 MB), kept working through compaction via its own hook, and is now searchable through its own MCP server — and fable file fable/recall.py replays its own source code being written, 18 versions deep. The build history eats its own dogfood — all $83k of API-equivalent work in the author's archive included.

What people use it for

  • "Why did we choose X?" — architecture archaeology, weeks later

  • "When did this function break?" — file time-travel to the exact edit and the conversation around it

  • Picking up a debugging hunt exactly where the wall cut it off

  • A composed "workspace" session: threads from three projects, one memory

  • Slimming a heavy session before --resume, reversibly

  • fable remember "we deploy Fridays only" — standing rules, every session

Try it on a fictional sample first: python3 demo/seed_demo.py && fable --db demo/demo.db serve


MIT · local-first forever (non-goals) · built with Claude Code, for Claude Code · @claude answers issues here — the butler is Claude · architecture deep-dive · Star History Chart

Install Server
A
license - permissive license
A
quality
C
maintenance

Maintenance

Maintainers
3hResponse time
Release cycle
Releases (12mo)

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/grooverLab/fable'

If you have feedback or need assistance with the MCP directory API, please join our Discord server