命令字典
Slash 命令、CLI 子命令、Hook 事件、启动参数的字典与演进史。
Slash 命令、CLI 子命令、Hook 事件、启动参数的字典与演进史。
恢复特定会话或显示交互式会话选择器
--resume <session-id-or-name>claude --resume auth-refactor--resume(别名 -r)用于恢复一个已保存的会话。官方定义是:按 ID 或名称恢复指定会话,或显示交互式 picker 让你选择。
它接受三种值,也可以不带参数:
| 传入的值 | 行为 |
|---|---|
| 无参数 | 打开交互式 session picker |
<name> | 按名称直接恢复。名称不唯一时,打开 picker 并把该名称预填为搜索词 |
<session-id> | 按 ID 恢复 |
<transcript-path> | 恢复该绝对路径下 .jsonl transcript 文件里的会话 |
会话是绑定到项目目录的已保存对话。Claude Code 在你工作时把它持续写入本地 transcript 文件,所以退出或执行 /clear 之后仍然可以恢复。
# 打开 picker
claude --resume
# 按名称恢复(官方示例)
claude --resume auth-refactor
# 按 session ID 恢复
claude -r "session_id_here"
# 按 transcript 文件路径恢复
claude --resume /path/to/transcript.jsonl
# 恢复的同时 fork 出新会话
claude --resume auth-refactor --fork-session
# 非交互模式下向已有会话追问,并取出结构化结果
claude -p --resume <session-id> --output-format json "summarize what we changed" | jq -r '.result'
会话名可以这样设置:
| 时机 | 方式 |
|---|---|
| 启动时 | claude -n auth-refactor(--name / -n) |
| 会话中 | /rename auth-refactor |
| picker 中 | 高亮会话后按 Ctrl+R |
会话内也可以用 /resume 切换到另一个对话。/resume <name> 精确匹配时直接恢复,名称有歧义时报错,此时不带参数运行 /resume 打开 picker。
| 快捷键 | 动作 |
|---|---|
↑ / ↓ | 在会话间移动 |
→ / ← | 展开 / 折叠分组的会话 |
Enter | 恢复高亮的会话 |
Space | 预览会话内容 |
Ctrl+R | 重命名高亮的会话 |
/ 或任意可打印字符 | 进入搜索模式。粘贴 GitHub、GitHub Enterprise、GitLab 或 Bitbucket 的 PR / MR URL,可找到创建它的会话 |
Ctrl+A | 显示本机所有项目的会话,再按一次返回 |
Ctrl+W | 显示当前仓库所有 worktree 的会话(仅多 worktree 仓库显示) |
Ctrl+B | 只看当前 git 分支的会话 |
Esc | 退出 picker 或搜索模式 |
每行显示会话名(若已设置,否则为 AI 生成的标题、摘要或首条 prompt)、距上次活动的时间、git 分支和文件大小。
| 组合 | 说明 |
|---|---|
--resume ... --fork-session | 恢复时新建 session ID,原会话保持不变。--fork-session 与 --resume 或 --continue 配合使用 |
-p --resume <id> | 非交互模式向已有会话发送后续 prompt |
--permission-mode / --dangerously-skip-permissions | 覆盖恢复时还原的 permission mode |
--agent | 恢复时指定另一个 agent,覆盖原会话的 agent |
--name / -n | 设置会话显示名,之后可用 --resume <name> 恢复 |
--from-pr <number> | 相关但不同:打开按 PR 过滤的 picker。接受 PR 号,或 GitHub / GitLab / Bitbucket 的 PR / MR URL |
--continue / -c | 相关但不同:直接加载当前目录最近一次对话,不弹 picker |
--no-session-persistence | 仅 print 模式可用。会话不落盘,因此之后无法用 --resume 恢复 |
claude -p --resume 或 claude -p --continue,仅当会话结束时处于 plan mode,且同时满足以下四个条件,才会以 plan mode 恢复(官方文档要求 v2.1.246 或更高版本):
--permission-prompt-tool--permission-mode 或 --dangerously-skip-permissions--fork-session官方文档列出的、影响"能不能恢复"的相关配置如下:
| 目的 | env | settings.json | flag |
|---|---|---|---|
改变 transcript 存放位置(默认 ~/.claude) | CLAUDE_CONFIG_DIR | — | — |
自定义 <project> 目录名(需同时设置 CLAUDE_CONFIG_DIR,需 Claude Code v2.1.234 或更高版本) | CLAUDE_CODE_PROJECT_DIR_NAME | — | — |
| 修改默认 30 天保留期 | — | cleanupPeriodDays | — |
| 任何模式下都不写 transcript | CLAUDE_CODE_SKIP_PROMPT_HISTORY | — | — |
| 单次非交互运行不写 transcript | — | — | --no-session-persistence(配合 -p) |
transcript 默认以 JSONL 存放在 ~/.claude/projects/<project>/<session-id>.jsonl。官方文档说明该条目格式是内部格式,随版本变化,脚本不宜直接解析。
| 约束 | 原因 |
|---|---|
picker 和 --continue 不显示 claude -p 或 Agent SDK 创建的会话 | 官方设计。仍可用 claude --resume <session-id> 恢复 |
首条 prompt 是 /loop 的会话不出现在 picker 中 | 官方设计(--continue 同样跳过)。之后才在对话里运行 /loop 不会隐藏会话 |
| 按 ID 恢复时的跨项目查找:仅当恰好一个其他项目持有该 ID 的 transcript 时才解析成功 | 手工复制出的副本会让 Claude Code 报 not-found,而不是随意恢复其中一份。官方标注该跨项目查找自 v2.1.223 起提供,此前只查当前项目目录及其 git worktree |
找不到匹配会话时报 No conversation found with session ID: <session-id> | — |
从 picker 选中不相关项目的会话时,复制 cd + 恢复命令到剪贴板,而不是直接恢复 | 会话绑定到各自的项目目录。若该项目目录已不存在,则在当前目录恢复 |
默认 transcript 保留 30 天(cleanupPeriodDays 可改) | transcript 会按保留清理规则过期(age out) |
无法通过 --resume 使用"默认显示名"(形如 my-app-3f) | 默认显示名不是 resume handle。AI 生成的标题和你设置的名称可以 |
picker 加载失败时,claude --resume 打印 Failed to resume the conversation 并以 exit code 1 退出 | 会话内的 /resume picker 失败则只报错,当前对话继续 |
会还原:
--agent 或 agent 设置启动时的 agent不会还原:
availableModels 禁止、启动时用 --model 或 ANTHROPIC_MODEL 系列环境变量指定了 model、或在使用 provider 专属部署 ID 的平台(Bedrock、Google Cloud Agent Platform、Microsoft Foundry)上时,model 不会被还原--mcp-config、--settings、--plugin-dir、--fallback-model、--add-dir 传入的配置:恢复时需重新传入/add-dir 加入的目录:不会还原,但 picker 仍会用它们来定位会话settings.json、settings.local.json 等标准 settings 文件每次启动都会重新读取,不需要重新传。
| 恢复方式 | permission mode |
|---|---|
终端 claude --continue、claude --resume <session-id>,或名称只匹配一个会话的 claude --resume <name>(不带 -p) | 还原会话结束时的 mode,以下情况除外 |
上一行中会话结束于 bypassPermissions 或 plan | 不还原,使用新会话本会使用的 mode |
上一行中会话结束于 auto | 仅当你的账号仍满足 auto mode 要求时才还原 |
| 会话结束于 Manual mode | 若新会话本会由内置默认值以 auto mode 启动,则仍为 Manual;若某个 settings 文件里生效的 defaultMode 覆盖了该默认值,则改用该 mode |
从 picker 选择(claude --resume 无参数、--from-pr、名称匹配多个) | 不还原,使用同一命令行下新会话会使用的 mode |
会话内 /resume | 不还原,沿用当前会话的 mode |
claude --resume 打开 picker,选择会话继续。claude -n <name> 或 /rename 给会话命名,之后 claude --resume <name> 直达。官方文档指出这在同时做多个任务时最有价值。claude --resume <session-id> 可以在任意目录运行;想在 picker 里跨范围找,用 Ctrl+W 或 Ctrl+A。claude --resume <name> --fork-session,原会话保持不变。claude -p --resume <session-id> --output-format json "...",读取 JSON 结果。claude --from-pr 123,或在 picker 搜索框粘贴 PR URL。--fork-session。--fork-session 不继承"Allow for this session"的权限授予:官方文档说明,用 --fork-session 分叉到独立进程后,新进程没有这些授权,需要重新批准。会话内的 /branch 则会保留这些授权。auth-refactor-graceful-unicorn)并提示。官方标注 v2.1.232 之前两个会话都保留原名。claude --resume <name> 遇到多个同名匹配会打开 picker 并预填搜索词,脚本里不要指望它直接恢复。--mcp-config / --add-dir 等:这些不会被还原。/compact)、"Resume full session as-is"、"Don't ask me again" 三个选项。此时 prompt cache 已过期,无论选哪项,下一次请求都要完整处理一遍历史。claude --continue 与后台会话:如果最近的对话仍在后台运行,Claude Code 会退出并提示 Your most recent conversation is running in the background 及其 session ID。可从 claude agents 附着,或用 claude --resume 选别的会话。恢复已结束的后台会话需要 v2.1.257 或更高版本。docs.claude.com/en/docs/claude-code/cli-reference 会 301 重定向到此)修复恢复会话时丢失文件和其他上下文的问题
修复了在并行工具调用后会话崩溃或被杀死时丢失后续轮次的问题
改进了 claude --resume 支持在后台会话上打开,并支持发送 prompt 作为下一个 turn
修复了 `--resume` 参数在恢复会话时导致之前消息以变更形式重新发送的问题
修复了 headless 会话恢复时成本和使用统计重置为零的问题。
修复 resume 已紧凑会话时活跃 `/goal` 丢失的问题
改进使对话立即出现而不是等待 SessionStart 钩子
改进 `--resume` 对包含许多 Bash 工具调用的会话的首次渲染时间
修复了 claude -p --resume 采用记录在副本中的格式错误会话 ID 的问题
修复启动参数在会话包含某些附件条目时失败的问题
改变 `claude --resume <session-id> --bg` 行为,在无会话运行时继续该会话
从 claude --resume 选择器恢复会话时现在会保留活跃的 /goal
修复了工具调用参数类型不符导致的崩溃和启动问题
修复了--resume后Remote Control无声重新连接的问题
修复 transcript 包含格式错误的 attachment 条目时失败的 TypeError 问题
修复了恢复会话时 ExitWorktree 失败的问题
修复了启动和 agents view 中的键盘输入问题
修复了当原始 `-p` 运行未产生模型轮次时的失败问题
修复了在 VS Code 集成终端或继承 Claude Code 环境变量的 shell 中启动时 sessions 不保存 transcripts 导致不能出现在 --resume 中的 bug
stdio MCP servers 现在在 --resume 时接收 CLAUDE_CODE_SESSION_ID
修复当前目录非 git worktree 时选择器不显示会话的问题
修复 `--resume` 无法报告之前 Claude Code 进程退出时正在运行的后台 subagents 的问题
修复 `--resume` session picker 在全屏模式下退出时在终端留下内容的问题
修复路径包含下划线时无法找到会话
修复多个并发会话在刷新令牌竞速后全部返回 401 错误
修复外部 SIGINT 未运行优雅关闭,终端模式未恢复
修复在大型会话中因损坏的转录行导致启动失败的问题
现在支持查找通过 /add-dir 添加当前目录的会话
支持恢复未过期的计划任务
修复会话截断和标题显示的问题
改进 `--resume` 接受通过 `/rename` 或 `--name` 设置的会话标题
修复 `--resume` 在大型会话上丢失对话上下文的问题
修复 `--resume` 链恢复错误连接到无关子代理对话的问题
修复 `--resume` 时持久化的 Edit/Write 工具结果缺少 `file_path` 导致崩溃的问题
修复 `--resume` 时超过 10KB 的文件编辑 diffs 从 UI 消失的问题
修复 `--resume` 时超过 10KB 的文件编辑 diffs 消失的问题
修复 `--resume` 缓存未命中和附件消息的中途输入未被保存的问题
改进 `--resume` 以直接恢复同一仓库其他 worktrees 的会话,而不是打印 `cd` 命令
修复 `--resume` 时由于异步成绩单写入失败导致的链断裂问题
修复首次请求时因延迟工具、MCP 服务或自定义代理导致的完整提示缓存丢失
修改选择器不再显示由 claude -p 或 SDK 调用创建的会话
修复当延迟工具输入超过 64KB 时的挂起问题
修复来自较旧 CLI 版本的工具结果导致的 tool_use 丢失错误
改进内存使用和大型会话启动延迟
修复了parallel tool results丢失导致显示[Tool result missing]占位符的问题
修复了silently truncating大型会话(>5 MB)的会话历史的问题
修复了由memory-extraction写入和主transcript竞态导致silently truncating最近会话历史的问题
修复了forked或continued session后session names丢失的问题
修复了 `--resume` 在 skill listing 重新注入时导致存储大小过大的浪费问题。
修复 `--resume` session picker 显示原始 XML 标签的问题
改进参数默认重新使用上一会话指定的 --agent 值
改进会话恢复的内存使用性能
修复了使用 --resume 恢复会话时的失败问题
从终端恢复已命名的会话
当 db 不可用时禁用该标志
新增 flag 用于恢复之前的对话