← All tools

PromptWake for Claude Code

Claude Code deletes transcripts older than 30 days by default, and the setting that controls it is absent from a normal install. PromptWake keeps them — locally, automatically, across every project.

How Claude Code loses history

Transcripts older than 30 days are deleted by default, and nothing tells you it is happening.

~/.claude/projects/<project>/<session>.jsonl
Retention default
30 days
Setting
cleanupPeriodDays in ~/.claude/settings.json
Present on a fresh install
No — the default applies silently
Format
JSONL, one file per session
What PromptWake captures
  • Every prompt and response, per session, per project
  • The file diff each turn produced — added and removed lines
  • Token usage per message, deduplicated by message id
  • Which model answered, so cost stays correct as prices change

Run this before anything else. It tells you whether the deletion has already run on your machine:

find ~/.claude/projects -name '*.jsonl' -mtime +30 | wc -l

If that returns 0 and you have been using Claude Code for more than a month, everything past the thirty-day mark is already gone. There is no trash folder and no undo.

Fix the deletion first — you do not need us for that

Set the retention period explicitly. This is worth doing whether or not you install anything else:

// ~/.claude/settings.json
{ "cleanupPeriodDays": 3650 }

That stops the clock on this machine, for this user, from today. What it does not do is bring back what is already gone, cover the other machines your team works on, or make the record readable by anyone but you.

What PromptWake does with Claude Code specifically

A local daemon reads the JSONL transcripts Claude Code already writes — it does not wrap the CLI, intercept traffic, or need an API key. Each user turn becomes one record: the prompt, the response, and the diff of every file the assistant edited in that turn, with token usage attached.

Two details matter for accuracy, and both took real work. Claude Code writes one JSONL line per content block, all carrying the same message id and the same usage figures — summing per line inflates token counts by more than double, so we deduplicate by message id. And subagent transcripts are excluded from session counts, which otherwise report several times more sessions than you actually have.

Start capturing

# see what is at risk right now — no account, writes nothing
npx promptwake doctor

# start capturing a project
npx promptwake init .

The local tier is free and works offline; nothing leaves the machine unless you sign in. Cloud sync and a shared team timeline are the paid tiers, and they are what turns a per-laptop archive into something a team can search.

When it matters

Deeper on where Claude Code keeps its history, and how to back it up without PromptWake: read the guide.