先说结论:如果你只是拿 Claude Code 问两句、写完就忘,30 天这个默认值对你没有任何影响。会话记录过期,最多是没法回头翻旧账,不翻也不损失什么。
但如果你把它当生产工具,代码、数据处理、研究笔记、微调语料都从会话里出,这条默认值就是隐性损失。你以为存着的东西,到日子就没了,而且没有人提醒你。
Ian Johnson(Latent Space 联创)就中过招。据他发在 X 上的说法,他本来打算把 7 月以来研究 latent basemap 的会话转录开源出来,结果一部分已经过期,只剩一部分在 Codex 里还有留存。


这个机制本身很朴素:本地明文,按天数删
机制不复杂。Claude Code 会把整段会话写成本地明文:每条消息、每次工具调用、每个工具的返回值,一个项目一份 jsonl,放在 ~/.claude/projects/ 下面。
官方文档里的配置项叫 cleanupPeriodDays,意思是按最后一次活动时间算,本地会话记录保留多少天,默认 30 天。数据使用说明里也写了同一件事:会话本地最多存 30 天,方便你随时恢复。
它不是慢慢过期,是在你开一次会话之后几秒内扫一遍,把超过期限的文件清掉。所以它经常在你最忙的那天悄悄发生,连个弹窗都没有。
顺带说一句:凡是工具读过的内容都会进转录,包括它替你打开的文件正文。这也解释了后面为什么要脱敏,不是吓唬人。
怎么改:一行配置,别放错文件
改法简单到有点反讽:在 ~/.claude/settings.json 里加一行。文件不存在就新建,里面本来就是一个 JSON 对象,别的键别动。
{"cleanupPeriodDays": 36500}
36500 天差不多一百年,够用了。没有「永不删除」这种值,只能给个特别大的数。必须是整数,最小是 1;填 0 会被判为非法,早年那种「填 0 就不保存」的老行为已经改掉了。
两个容易踩的坑:这个键要放进 settings.json,不是 Claude Code 自己维护的 ~/.claude.json;你要是用 CLAUDE_CONFIG_DIR 另开了一套工作配置,那套目录有自己的 settings.json 和自己的 30 天默认值,得单独改一遍。

改完怎么验证:让它扫一次,再翻目录
改完别马上放心。最土也最靠谱的验证,是走一遍真实的清理:先确认目录里那份旧会话还在,开一次新会话,让扫描跑完,再回目录看那份文件还在不在。
还在,说明生效;不见了,多半是文件放错层,或者被更高优先级的配置盖掉——托管设置、命令行的 --settings、项目里的 settings.local.json,都排在用户配置前面。
顺手在会话里跑一下 /status。某个 settings 文件读不出来或者解析失败时,它会挂个警告,清理也会暂停。看到警告别关掉,那通常是你多写了一个逗号。
我给自己的验证周期是一周:改完当天让扫描跑一遍,第七天再翻一次目录。一次没撞上不代表配置对,只说明那天目录里没有超过 30 天的文件。
三个我真用得上的复盘场景
为什么值得留?说三个我自己的场景:上周那版脚本跑崩了,翻回会话能看到当时的报错和改过哪几行;调了三天的提示词,只有转录里存着每一次措辞的变化。
还有交接:把项目交给同事,一份它自己跑出来的会话,比十页我手写的文档诚实得多。前者有失败记录,后者只有我的结论。
这些场景的共同点是,价值不在写下的那一刻,在三个月后。默认 30 天的期限刚好卡在你开始需要它之前,到点就干净利落地消失。
顺带校准一下预期:留十年不等于十年后还读得懂。当时省掉的上下文、为什么放弃某个方案,都得靠归档时补一句备注,否则转录只是一堆没人解密的日志。

记录留下了,麻烦才刚开始
反过来讲清楚:留得久不等于留得对。会话转录是明文,工具读过的 .env、终端打印出来的 token、客户发来的表格、内部路径,全都原样躺在文件里。
我的做法分两层:正在做的项目单独归档、按月份切;准备公开或者给团队看的那份,先过一遍正则,把 key、token、内网地址、真实人名换掉,再通读上下文确认没漏。
归档顺手把日期写进目录名,半年后翻起来会感谢自己。文件名乱堆,等于留了一堆自己都不敢点开的压缩包。
有件事别干:把带密钥的转录丢进公开仓库。有人为了「透明」把会话打包上传,等于把自家仓库的钥匙挂在门口,事后删不干净,Git 历史记着。
各家默认值不一样,别赌「云上都有」
留个判断:各家 CLI 工具的会话留存策略并不统一。有的本地留很久,有的只留摘要,有的默认几分钟就清。别默认你用过的东西云端都有备份。
Ian Johnson 那份转录能从 Codex 里捞回一部分,属于运气。多数时候,工具替你做的清理是静默的,你只在需要取证、复盘、想拿记录做微调的那天,才发现缺了一块。
顺手提一遍 Codex:它那边确实还有留存,Ian 才捞得回来。工具之间并不互通,别把一处当全部备份,多留一手成本很低。
花一分钟改配置,比事后花一天找记录便宜。今晚顺手加那一行就行。