Your AI history is being
deleted right now.

Claude Code deletes session files older than cleanupPeriodDays — default 30, minimum 1 — at startup. It is documented, not a bug. Don't take our word for it. Run this:

$find ~/.claude/projects -name '*.jsonl' -exec stat -f '%Sm %N' -t '%Y-%m-%d' {} + | sort | head -3

The oldest date you see is your cliff edge.

Everything before that date is already gone. Not archived, not compressed — deleted, on a timer you probably never set.

Here is what it returned on the author's machine.

One machine, one user, one settings file. These are his numbers, not a claim about yours — that is what the command above is for.

MEASURED2026-08-20 · regenerated by scripts/regen-stamps.sh (0 days ago)
INSTRUMENTfind ~/.claude/projects -name '*.jsonl' -exec stat -f '%Sm' -t '%Y-%m-%d' {} + | sort | head -1
oldest surviving transcript 2026-07-10 (41 days old) transcript files 1,375
UNMEASUREDOne machine, one operating system, one settings.json, one point in time. Says nothing about your retention, your cleanupPeriodDays, or any machine but this one.

Every number on this page comes from a committed data file written by a script that ran the real command — the site cannot invent a fresher truth than its stamps.

Forty-one days. Not because anything broke — because the default did exactly what the docs say it does. The work is gone and nothing announced it.

Other agents are not on the same clock.

On the same machine, ~/.codex/sessions was observed still holding transcripts from September 2025 — about eleven months. That is an observation on one machine, not a retention guarantee from anybody. The point is not that Codex is safer. The point is that you do not control either policy, and neither one told you what it was.

brain-mcp is the recorder.

It sits under your agents and writes their conversations down before anything gets a chance to delete them. Raw bytes, on your disk, append-only.

It does not parse and discard. It keeps the file.

Hook

Where the agent offers hooks

Claude Code exposes Stop and SessionEnd. The recorder registers there and the agent hands the transcript over itself — no polling, no guessing when a session ended.

Watch

Where it doesn't

Codex and Pi have no hook surface, so the recorder polls their session directories on a 60-second scan and picks up whatever has grown since the last offset.

Two intake mechanisms, one spool, one floor. The format is the contract →

Sources

Claude CodehookCodexwatchPiwatchCursorreserved

“Reserved” means the lane is named and not built. It captures nothing today.

It has eaten a real corpus.

On release day, the published wheel — installed the way a stranger would — backfilled the author's machine in one brain-mcp record:

MEASURED2026-08-20 · brain-mcp 2.0.0b3 from PyPI
INSTRUMENTduckdb over $BRAIN_HOME/brain.duckdb: raw_lines by lane + derived.messages count
cc_transcript 399 sessions 352,802 lines codex_rollout 360 sessions 107,413 lines pi_session 4 sessions 118 lines ---------- raw lines total 460,333 searchable 48,422 messages, FTS built
UNMEASUREDOne corpus, one machine. Throughput of a first backfill, not steady-state; steady state is one changed file per 60-second tick.

Then one search, verified by hand.

Searching that floor for the phrase “eat 100% of the jsonl data” returned the author's own prompt from 2026-08-09, cited to its exact file and line — and the citation checks without the database in the loop:

$ brain_search("eat 100% of the jsonl data")
→ lake/cc_transcript/<session>.jsonl · lines [L, L] · sha256 <hash>
$ sed -n 'Lp' lake/cc_transcript/<session>.jsonl | shasum -a 256
→ <hash>
verified: True

That is the whole contract: a claim, its bytes, and a hash anyone can recompute. When there is no match, the tool says so and names what it searched — it never fills the silence.

The shelf

Not a docs site — a shelf. Six things you can take right now, each with the command that takes it and a line saying where its bytes come from. The SQL below is extracted from the installed package at stamp time, so this page structurally cannot drift from the code.

The recorder

Capture + floor + 7 cited-or-abstain MCP tools. One package, two commands.

pypi · brain-mcp 2.0.0b3

The Claude Code plugin

Hooks + MCP server in one install, from inside Claude Code itself.

github · brain-marketplace

The floor schema

The DuckDB schema for a byte-preserving conversation floor — files, witnesses, raw lines, ingest state. Paste it, own it.

floor-schema.sql (62 lines)
extracted from brain-mcp 2.0.0b3 at stamp time

The dialect maps

Where Claude Code, Codex and Pi keep transcripts on disk, and the SQL views that read each dialect over raw lines.

dialect-views.sql (83 lines)
extracted from brain-mcp 2.0.0b3 at stamp time

The honesty contract

The For-AI-Assistants block: cite or abstain, abstention carries coverage, unknown is never fine. Paste it into any project's instructions.

the contract, annotated
ships in the brain-mcp README

The discipline plugins

prove-it, preflight, build-gate — the epistemic harness the recorder was built under, rewritten for anyone. MIT.

github · brain-marketplace

Install

pipx

copy
$pipx install brain-mcp --pre
$brain-mcp install cc

The second command writes the Claude Code hooks.

Claude Code plugin

copy
$/plugin marketplace add mordechaipotash/brain-marketplace
$/plugin install brain

Run these inside Claude Code itself.

Why it got built

The author was diagnosed with ADHD at 44 and cannot reliably reconstruct what he decided last Tuesday, so a deletion timer he never set was not a minor annoyance — it removed the only record of his own reasoning. That is the origin story, and it is the whole of the origin story. The tool is a recorder. It is useful for the same reason a flight recorder is useful, whatever your memory is like.

It stays on your machine.

No cloud. No accounts. No sync. The floor is a directory in your home folder, created mode 0700.

100% local. MIT licensed.

What the product sends, and what this website sends →

Start recording.

The transcripts you already have are the ones you can still save.

copy
$pipx install brain-mcp --pre
$brain-mcp install cc