Claude Code的会话恢复与多窗口使用指南(2026年)
一勺菠萝丶
很多人刚开始用 Claude Code,最容易遇到几个问题:
- 关掉 iTerm2 / 终端后,上次聊天还能不能找回来?
--continue和--resume到底有什么区别?- 一个项目里开了多个 Claude 窗口,怎么切换不混乱?
- 同一个会话能不能在两个终端里同时打开?
- 怎样才能做到尽量像 Codex 那样“随时回来继续聊”?
这篇就把这些问题一次讲清楚。Claude Code 官方文档明确说明:会话会保存在本地磁盘上,之后可以通过 --continue、--resume 等方式恢复,不需要每次都重新解释上下文。
一、先理解:Claude Code 的“会话”到底是什么
在 Claude Code 里,session(会话) 可以理解成一段完整的对话历史。它不只是你发过的话,还包括:
- 你的 prompt
- Claude 调用过的工具
- 工具返回的结果
- Claude 的回复内容
官方文档写得很明确:Claude Code 会把这些会话内容自动写入磁盘,这样你之后就可以回到之前的会话,继续追问、继续修改、继续分析。
但这里有一个很重要的点:
会话保存的是“对话历史”,不是“文件系统快照”。也就是说,Claude 记得之前聊过什么、看过哪些文件、分析过什么,但如果你要恢复某个时刻的代码状态,那是另外一回事,需要靠版本控制或 checkpoint 之类的能力,不是单靠 session 本身。
二、关闭终端后,会话还在吗?
一般还在。
只要你没有使用禁用持久化的模式,Claude Code 会把会话保存到本地,所以即使你关掉了 iTerm2、Terminal 或 VS Code 终端,之后仍然可以恢复。官方最佳实践文档也明确说了:Claude Code 会本地保存对话,任务跨多次使用时,可以直接恢复,无需重讲上下文。
但有一个例外:
如果你用了类似下面这种参数:
claude -p --no-session-persistence "你的问题"
那这个会话不会保存到磁盘,也就不能恢复。官方 CLI 文档明确写了:--no-session-persistence 会禁用会话持久化,因此这些会话不会被保存、也无法被 resume。
三、最常用的两个命令:--continue和--resume
这是新手最容易搞混的地方。
claude --continue
作用是:
继续当前目录最近一次会话。
官方文档把它定义为:恢复最近一次 conversation,是最省事的恢复方式。
示例:
claude --continue
适合场景:
- 你这个项目通常只开一个 Claude 会话
- 你刚刚关掉终端,想最快回到上一次对话
- 你不想选列表,不想记名字
claude --resume
作用是:
恢复某个指定会话,或者打开会话选择器让你自己选。
官方文档说明,--resume 可以让你选择最近会话,也可以按会话名恢复,还能按 session ID 恢复。
示例:
claude --resume
这通常会打开一个会话选择界面,让你手动选。
如果你知道会话名,也可以这样:
claude --resume auth-refactor
适合场景:
- 一个项目里开了多个 Claude 会话
- 你要恢复某个特定任务
- 你不确定“最近一次”是不是你要的那一个
四、什么时候用--continue,什么时候用--resume?
这是最简单的记法:
用--continue的时候
你只有一个主要任务,或者默认就想回到“刚才那个”。
比如:
- 刚刚在修登录 bug
- 关掉了终端
- 现在回来继续修
这时直接:
claude --continue
就够了。
用--resume的时候
你有多个任务并行,或者你想明确指定某一个会话。
比如:
- 同时在做 crawler、后台管理、前端重构
- 一个项目里开过很多 Claude 窗口
- 你只想恢复“壁纸爬虫”那个,不想进错
这时就用:
claude --resume
或者:
claude --resume wallpaper-crawler
官方也明确建议:当你处理多个 feature 或多个任务时,给会话起描述性名字,后续更容易 resume。
五、给会话命名:多窗口不乱的核心
如果你一个项目经常开多个 Claude,会话命名几乎是必做项。
Claude Code 官方支持在启动时直接给 session 起名字:
claude -n auth-refactor
也支持在会话进行中改名:
/rename auth-refactor
官方文档说明:
--name/-n:给当前会话设置显示名- 这个名字会显示在
/resume列表里 - 也会显示在终端标题栏里
- 后面可以用
claude --resume <name>直接恢复。
六、多个窗口怎么区分最省事?
推荐做法:一个任务,一个名字
比如同一个项目里,你可以这样开:
claude -n crawler-task claude -n admin-api-task claude -n frontend-task
以后恢复时就很清楚:
claude --resume crawler-task claude --resume admin-api-task claude --resume frontend-task
这是官方推荐方向:给 session 起描述性的名字,方便后续查找和恢复。
推荐命名规则
为了让小白更不容易乱,我建议你用固定格式:
项目名-模块名-任务名
例如:
xhsite-crawler-login xhsite-admin-fileconfig xhsite-frontend-home
或者再简单一点:
crawler-task admin-task frontend-task
只要能做到一眼区分就行。
七、claude --resume 你的会话名是启动前还是启动后用?
是启动前用。
也就是说,你是在终端里直接敲下面这条命令:
claude --resume auth-refactor
它的意思就是:启动 Claude,并恢复这个名字对应的会话。 官方 CLI 参考就是这么定义的。
八、已经进入 Claude 以后,还能切换会话吗?
可以。
Claude Code 支持 slash command:
/resume
它可以打开会话选择器。
也可以写成:
/resume auth-refactor
官方 commands 文档说明,/resume [session] 可以按 ID 或名称恢复会话,也可以不带参数直接打开选择器;它的别名就是 /continue。
九、名字重复了怎么办?
这一点官方也提到了。
如果你执行:
claude --resume auth
而叫 auth 的会话不止一个,官方文档说明:CLI 会把这个名字当成搜索词,带你进入 picker 选择,而不是盲目跳进某一个。
但如果你已经在会话里执行:
/resume auth
当名字有歧义时,官方说明它会直接报错;这时候更适合只敲:
/resume
然后从列表里选。
所以最好的做法还是:
尽量不要起重复名。
十、同一个会话能不能在两个终端同时打开?
可以打开,但不建议。
Claude Code 官方文档明确提醒:
如果你在多个终端里恢复了同一个 session,两个终端都会往同一个 session 文件里写内容,消息会交错,就像两个人同时往同一本笔记本上写字一样。内容不会损坏,但会变得很乱。
这意味着什么?
例如你在终端 A 和终端 B 都执行了:
claude --resume crawler-task
接下来:
- A 发一条消息
- B 再发一条消息
- Claude 两边都会继续写入同一个会话历史
最后这个 session 会变成“交叉聊天记录”,你回头看时很容易懵。
正确做法
做法 1:不同任务开不同会话
这是最推荐的。
claude -n crawler-task claude -n admin-task claude -n frontend-task
做法 2:如果想基于已有会话分叉思路,用 fork
Claude Code 官方支持在恢复时 fork 出一个新 session,这样可以保留原会话不变,同时创建一个新的分支会话。CLI 参考里明确有 --fork-session,可配合 --resume 或 --continue 使用。
例如:
claude --resume auth-refactor --fork-session
这适合:
- 你想保留原始会话
- 你要尝试另一条思路
- 你不想把新尝试混进旧会话里
十一、恢复会话后,权限会不会也一起恢复?
不会全部恢复。
官方文档说明:当你用 claude --continue 或 claude --resume 恢复会话时,会话历史会恢复,但session-scoped permissions 不会继承,需要你重新批准。
这对新手很重要,因为很多人会以为:
“我都恢复到上次聊天了,为什么它还要重新确认权限?”
这不是异常,是正常行为。
十二、什么时候最适合恢复会话?
下面这些情况,特别适合用恢复会话。
场景 1:昨天做到一半,今天继续
比如你昨天已经让 Claude:
- 看完项目结构
- 找到 bug 位置
- 给出修改方案
今天继续问:
- “接着改这个 bug”
- “继续补测试”
- “把刚才方案整理成文档”
这时直接恢复最省事,因为 Claude 之前的分析历史都还在。官方文档明确说明:恢复会话后,Claude 会保留之前读过的文件、做过的分析和形成的判断。
场景 2:终端意外关闭
比如:
- iTerm2 崩了
- SSH 断开了
- 电脑重启了
这时你通常可以直接:
claude --continue
快速续上最近一次本地会话。
场景 3:同一项目多任务并行
比如你在同一个仓库里同时处理:
- 登录逻辑
- 爬虫模块
- 文件上传配置
这时应该给每个任务单独起会话名,然后用 --resume 名称 精准恢复。
场景 4:你不想每次都重新解释需求
官方最佳实践明确提到,任务跨会话时,不需要每次都重新讲背景,因为 Claude Code 本地保存了会话。
这对长任务特别有用,比如:
- 重构一个模块
- 写一篇方案文档
- 排查复杂 bug
- 做多轮代码 review
十三、什么时候不建议强行恢复旧会话?
虽然恢复很方便,但也不是所有时候都该恢复。
情况 1:任务已经完全换了
比如你之前在修登录,现在要开始写爬虫设计方案。这时硬接着旧会话聊,可能会让上下文混杂。
更合适的方式是:
claude -n crawler-design
新开一个会话。
情况 2:旧会话已经太长、太杂
如果那个会话里已经混进了很多无关内容,比如:
- 一会儿修 bug
- 一会儿改文档
- 一会儿问命令
- 一会儿聊部署
这时候继续在旧会话上叠加,长期看会更乱。
更好的方式是:
- 新开一个命名清晰的 session
- 或者 fork 一个新分支会话。
十四、最适合小白的一套使用习惯
如果你是刚开始用 Claude Code,我建议直接用这套:
单任务项目
平时只有一个主要任务,就这么用:
claude
下次回来:
claude --continue
多任务项目
一开始就命名:
claude -n login-bug claude -n wallpaper-crawler claude -n admin-ui
下次恢复:
claude --resume login-bug claude --resume wallpaper-crawler claude --resume admin-ui
不确定名字时
直接打开选择器:
claude --resume
或者在 Claude 里:
/resume
这样最不容易输错。
想改会话名时
在会话里直接:
/rename 新名字
官方命令文档确认支持 /rename [name],不带名字时还可以自动生成名字。
十五、和 Codex 的体验差别
很多人会觉得 Codex 更像“一个一直存在的窗口”,而 Claude Code 更像“保存了历史,但需要主动恢复”。
这个感觉是正常的。
Claude Code 官方支持:
- 会话持久化到本地
--continue--resume- 命名恢复
- fork 分支恢复
所以它可以很好地续会话。但它的典型使用方式确实更偏向:
“关闭后,回来 resume/continue”,而不是“永远自动挂着同一个窗口”。相关能力在 CLI reference、best practices 和 sessions 文档里都写得很明确。
十六、一个最实用的命令速查表
启动普通会话
claude
启动时给会话命名
claude -n wallpaper-crawler
恢复最近一次会话
claude --continue
打开会话列表自己选
claude --resume
按名字恢复某个会话
claude --resume wallpaper-crawler
在当前会话里改名
/rename wallpaper-crawler
在当前会话里打开恢复列表
/resume
基于旧会话分叉一个新会话
claude --resume wallpaper-crawler --fork-session
这些命令都能在官方 CLI / commands / sessions 文档里找到对应说明。
十七、结尾总结
最后帮你总结成最简单的话:
1. Claude Code 会自动保存本地会话
所以关掉终端后,通常还能恢复。
2.--continue是恢复最近一次
适合一个项目只开一个主要会话的人。
3.--resume是恢复指定会话或打开列表选择
适合多任务并行。
4. 多窗口一定要给会话命名
不然你后面很容易找不回来。
5. 不要在两个终端同时写同一个 session
会话虽然不会坏,但内容会交错,很乱。
6. 恢复的是对话历史,不是代码快照
恢复后 Claude 记得你们聊过什么,但代码状态是否一致,还要结合 Git / checkpoint 自己管理。
到此这篇关于Claude Code的会话恢复与多窗口使用指南(2026年)的文章就介绍到这了,更多相关Claude Code会话恢复与多窗口使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章,希望大家以后多多支持脚本之家!
