恢复 Claude Code 会话:--continue、--resume 和 /resume
要恢复最近一次 Claude Code 会话,请在同一个项目文件夹中运行 claude --continue。要选择更早的会话,运行 claude --resume 并从列表中选择,或者在正在运行的会话中输入 /resume。会话按项目文件夹和配置目录分别保存,大多数“找不到会话”的情况都与此有关。
其他语言版本: English · Español · Deutsch · Français · 日本語 · Português (Brasil) · 한국어 · Italiano · Nederlands · 繁體中文
本指南由 Switch 提供。Switch 是一款独立的 Claude Desktop 配置文件管理工具,目前在正式发布前开放抢先体验。
从命令行恢复
Anthropic 的会话文档列出了以下命令:
claude --continue # most recent session in this folder
claude --resume # open the session picker
claude --resume auth-fix # resume a named session
claude --from-pr 123 # sessions linked to a pull request-c 和 -r 分别是 --continue 和 --resume 的简写。你也可以给 --resume 传入会话 ID;Claude Code 会先在当前项目及其 git worktree 中查找,然后再查找这台 Mac 上的其他项目(CLI 参考)。
加上 --fork-session,可以以新的会话 ID 恢复一份副本,原会话保持不变。
在 Claude Code 内切换会话
在提示符下输入 /resume(或它的别名 /continue),无需离开 Claude Code 就能打开同一个会话选择器。/resume 后面加上名称或 ID,可以直接跳到该会话(命令参考)。
选择器中常用的快捷键:
- Space:预览会话。
- Ctrl+A:显示这台 Mac 上所有项目的会话。
- Ctrl+W:扩大到该仓库的所有 worktree。
- Ctrl+B:只显示当前 git 分支的会话。
- Ctrl+R:重命名选中的会话。
为会话命名,方便查找
未命名的会话会显示自动生成的标题或第一条提示,浏览起来不太方便。重要的会话可以在启动时用 claude -n auth-fix 命名,或在会话中用 /rename auth-fix 命名。之后运行 claude --resume auth-fix 就能直接回到这个会话。
如果想尝试另一种做法,又不想丢掉当前进度,可以运行 /branch。它会复制到目前为止的对话,并把你切换到副本中。不要在两个终端中恢复同一个会话而不分叉:Anthropic 指出,两边的消息会交错写入同一份记录。
为什么某个会话没有出现
Claude Code 把会话记录保存在 ~/.claude/projects/<project>/<session-id>.jsonl,按项目文件夹分组。会话找不到的常见原因:
- 文件夹不同。选择器默认只显示当前项目。按 Ctrl+A 可以查看全部。
- 配置目录不同。设置了
CLAUDE_CONFIG_DIR后,会话记录会保存在该目录下,所以每个账号都有自己的会话列表。 - 脚本运行。来自
claude -p或 Agent SDK 的会话,以及以/loop开始的会话,不会出现在选择器和--continue中。-p或 SDK 的会话可以用 ID 恢复。 - 时间太久。截至 2026 年 10 月,早于
cleanupPeriodDays的会话记录会被删除,默认是 30 天(.claude 目录文档)。
在 Claude Desktop 应用中开始的会话,要在桌面应用中恢复。
会话属于它所在的账号
因为历史保存在配置目录中,所以会话属于创建它的那套账号配置。如果你的工作账号用 claude-work,个人账号用普通的 claude,那么每个选择器只会显示各自的会话。原因请参阅 CLAUDE_CONFIG_DIR 的作用。在同一个目录中退出登录、再用别人的账号登录则是另一回事:请参阅切换 Claude Code 账号。
什么时候本地检查点更合适
恢复会话会重新加载整段对话。如果你要在同一个账号中接着之前的进度继续,这样做很合适。但如果要在另一个账号中继续这项工作,或者对话已经很长,就不太适合了:Anthropic 指出,隔一段时间后恢复一段很长的对话时,可能会弹出一个对话框,估算仅这段已保存的对话就会占用你多少用量限制。
简短的本地检查点往往更好。记录任务、改了什么、检查过什么以及下一步,然后在同一个项目文件夹中开始新的对话,并让它读取这个检查点。Switch 把这作为手动交接来支持,不会自动转移会话记录。用本地检查点继续 Claude Code 项目。