我们今天正在整理的主题是 Claude Code 里的 Work with sessions。这个主题看起来很小,只有本地保存会话、恢复会话、分叉会话、快照回滚这几个关键词,但它其实卡在 Claude Code 最核心的位置。因为 Claude Code 不是一个只会回答文本的聊天窗口,它会读代码、改文件、跑命令、看测试结果,再根据结果继续行动。这样的工具一旦进入真实工程,最怕两件事,一件是上下文丢了,另一件是代码改乱了回不去。session 机制正是在这两个地方兜底。按照官方文档,Claude Code 默认会把 transcript 存成 JSONL 文件,路径在~/.claude/projects/project/session-id.jsonl,其中project由当前工作目录转换而来,每一行都是一个 JSON 对象,可能代表消息、工具调用或元数据。官方也明确提醒,这个内部格式会随版本变化,直接写脚本硬解析可能会在某次升级后失效,构建自动化时更稳妥的方式是使用/export或脚本接口。(Claude)把这件事放回 Claude Code 的架构图里看,会更容易理解。用户输入 prompt 后,Claude Code 进入一个循环,先收集上下文,再采取行动,再验证结果。每一次工具调用的输入和输出,都会成为下一次推理的材料。session transcript 就像这个循环