Keeping every Claude transcript
By default, Claude Code throws away your conversation history after thirty
days. Not the account, not the code — the transcripts: the full record of every
session, every message, every tool call and its result, sitting on your disk as
JSONL under ~/.claude/projects/. A background sweep runs shortly after a
session starts and deletes anything older than the cutoff. Nothing announces
it. The sessions simply stop appearing in the /resume picker, and you find out
the next time you go looking for one.
The cutoff is a setting, and it takes one line in ~/.claude/settings.json:
{
"cleanupPeriodDays": 99999
}
The documented default is 30, the type is a whole number of days, and the
minimum is 1 — 0 fails validation rather than meaning forever, which is
why the number has to be absurd instead of zero.