如何查看一个 Claude Code session 的完整历史?
Claude Code 会把你的每次会话(session)完整记录在本地磁盘上,因此查看历史有三种主流方式,按「易用性」排序如下。
方法一:用 CCViewer 在浏览器里图形化回放(推荐)
CCViewer 是一个免费开源的 Claude Code 会话查看器:打开网页,把会话文件拖进去(也支持直接选择整个 ~/.claude/projects/ 文件夹批量导入),即可像聊天记录一样回放整个 session:
- Markdown 完整渲染 —— 代码块、表格、列表、链接原样呈现,不再是一行行 JSON;
- 思考块(thinking) —— 折叠展示模型的扩展思考过程,可一键展开;
- 工具调用 —— Read / Edit / Bash 等每次调用的参数与返回结果,可逐个展开核对;
- 用量与费用统计 —— 输入/输出/缓存 Token、会话耗时、代码行数增减、总费用一目了然;
- 导出 Markdown —— 把任意会话一键导出为可分享的
.md文档。
最关键的是它 100% 在浏览器本地解析渲染,不上传任何数据 —— 会话文件里含有你的源码、文件路径甚至密钥,这一点很重要。
方法二:在终端里恢复会话
Claude Code 自带会话恢复功能,在原项目目录下执行:
# 列出本项目的历史会话,交互式选择恢复
claude --resume # 简写 claude -r
# 直接恢复最近一次会话
claude --continue # 简写 claude -c
# 按 sessionId 恢复指定会话
claude --resume <sessionId>
适合「继续干活」,但用来阅读/检索历史并不方便:长会话里翻找某次工具调用或某段回复很费劲,也看不到费用统计。
方法三:直接阅读原始 JSONL 文件
会话以 JSONL 格式存储在 ~/.claude/projects/<项目>/<sessionId>.jsonl,每行一个 JSON 对象。可以用任意编辑器或命令行查看:
# 用 jq 提取所有用户提问
cat ~/.claude/projects/-Users-you-myproject/<sessionId>.jsonl \
| jq -r 'select(.type=="user") | .message.content'
原始文件信息最全(包括 token 用量、git 分支、时间戳等元数据),但可读性差 —— 这正是图形化查看器存在的理由。
三种方式对比
| CCViewer | claude --resume | 手翻 JSONL | |
|---|---|---|---|
| 图形化阅读 | ✅ | 部分(继续对话) | ❌ |
| Markdown 渲染 | ✅ | ✅ | ❌ |
| 思考块 / 工具调用 | ✅ 可折叠展开 | 折叠摘要 | 原始 JSON |
| Token / 费用统计 | ✅ | ❌ | 手动 jq |
| 多会话批量管理 | ✅ 文件夹导入 | 仅当前项目 | ❌ |
用 CCViewer 图形化回放你的 Claude Code 会话
打开网页,把
打开网页,把
.jsonl 文件或整个 ~/.claude/projects/ 文件夹拖进去即可 —— Markdown 渲染、思考块、工具调用、Token 与费用统计,全程在你的浏览器本地完成,不上传任何数据。
常见问题
查看历史会上传我的代码吗?
CCViewer 不会。解析和渲染全部在你的浏览器里完成,没有任何网络请求发送会话内容,你也可以打开浏览器开发者工具的 Network 面板自行验证。
历史会话里被压缩(compact)过的内容还能看到吗?
能。压缩摘要与后续消息都记录在同一个 JSONL 文件里,查看器会把摘要作为系统注入内容展示,可在「系统/注入」开关中查看。
可以在手机上看吗?
可以,CCViewer 是响应式网页;但会话文件在电脑上,需要先把 .jsonl 文件传到手机(如通过网盘/iCloud),再用浏览器打开。