命令字典
Slash 命令、CLI 子命令、Hook 事件、启动参数的字典与演进史。
Slash 命令、CLI 子命令、Hook 事件、启动参数的字典与演进史。
通过 ID 或名称恢复会话或打开选择器
/resume [session]/resume 是一条会话内 slash 命令,用于在不退出当前终端的情况下切换到另一个历史会话。它会打开交互式会话选择器(session picker),或者直接按名称/ID 恢复指定会话。
与之对应的是 CLI 启动标志 --resume(和 --continue),两者作用于会话外(即启动 claude 时)。官方文档未将 /continue 列为 /resume 的会话内别名;--continue 仅作为 CLI 启动标志存在。
/resume
/resume <session-name>
/resume <session-id>
| 用法 | 行为 |
|---|---|
/resume(无参数) | 打开交互式会话选择器 |
/resume auth-refactor | 精确匹配名称 → 直接恢复;模糊匹配 → 报错(需无参数重新打开选择器) |
/resume <session-id> | 按会话 ID 直接恢复 |
claude --continue # 恢复当前目录最近一次会话
claude --resume # 打开会话选择器
claude --resume auth-refactor # 按名称恢复(精确匹配直接恢复;模糊匹配打开选择器并预填搜索词)
claude --resume <session-id> # 按 ID 恢复
claude --from-pr <number> # 恢复与某个 Pull Request 关联的会话
注意:
/resume与claude --resume在模糊名称处理上行为不同。/resume <name>模糊时直接报错;claude --resume <name>模糊时打开选择器并预填搜索词。
打开会话选择器后,可用以下快捷键操作:
| 快捷键 | 动作 |
|---|---|
↑ / ↓ | 在会话列表中移动 |
→ / ← | 展开或折叠分支会话组 |
Enter | 恢复高亮会话 |
Space | 预览会话内容(在不把 Ctrl+V 当作粘贴拦截的终端上,Ctrl+V 也能触发预览) |
Ctrl+R | 重命名高亮会话 |
/ 或任意可打印字符(非 Space) | 进入搜索模式;也可粘贴 GitHub / GitHub Enterprise / GitLab / Bitbucket 的 pull 或 merge request URL 查找关联会话 |
Ctrl+A | 扩展到本机所有项目的会话;再按一次返回当前仓库 |
Ctrl+W | 扩展到当前仓库所有 worktree 的会话(仅多 worktree 仓库显示) |
Ctrl+B | 只显示当前 git 分支的会话;再按一次显示全部 |
Esc | 退出选择器或搜索模式 |
每行显示:会话名称(若已命名;否则显示对话摘要或首条 prompt)、最后活跃时间、消息数、git 分支。用 Ctrl+A 扩展到全项目后额外显示项目路径。
会话存储路径
~/.claude/projects/<project>/<session-id>.jsonl
每行是一个 JSON 对象(消息、tool use 或 metadata)。<project> 由工作目录路径派生。
相关配置
| 配置项 | 说明 |
|---|---|
CLAUDE_CONFIG_DIR | 修改 ~/.claude 默认存储位置 |
CLAUDE_CODE_SKIP_PROMPT_HISTORY | 设置后不写入 transcript 文件 |
cleanupPeriodDays(settings) | 本地 transcript 保留天数,默认 30 天 |
--no-session-persistence | 非交互模式(claude -p)下禁用会话持久化 |
命名会话(方便日后 /resume <name> 恢复)
claude -n auth-refactor # 启动时命名
# 会话中:
/rename auth-refactor # 动态重命名
也可在会话选择器中高亮会话后按 Ctrl+R 重命名。
claude -p(headless / Agent SDK)产生的会话不进选择器,崩溃后只能凭 session ID 用 claude --resume <id> 找回。但如果当时没记下 ID,可以直接在磁盘上的 transcript 里 grep——每个会话就是 ~/.claude/projects/<project>/<session-id>.jsonl 一个文件,文件名即 session ID:
# 列出当前项目最近修改的会话文件(文件名去掉 .jsonl 即 session-id)
ls -t ~/.claude/projects/*/*.jsonl | head
# 按内容定位:找出提到某关键字(如某次崩溃任务的特征字符串)的会话
grep -l "refactor the auth middleware" ~/.claude/projects/*/*.jsonl
# 从命中的文件路径取出 session-id 再恢复
sid=$(basename "$(grep -l 'auth middleware' ~/.claude/projects/*/*.jsonl | head -1)" .jsonl)
claude --resume "$sid"
注意:ID 恢复按目录隔离——
--resume <id>要在该会话所属项目目录下执行(即~/.claude/projects/<这个 project>对应的工作目录),否则报No conversation found with session ID。<project>段是工作目录路径派生而来,可据此反推该去哪个目录cd。
/resume × /rewind 组合恢复流两者解决的是不同维度的"回到过去",常配合使用:
/resume:换哪一个会话(在多条历史会话之间切换 / 找回)。/rewind:在当前这条会话内把时间线回滚到更早的检查点(撤销最近若干轮的代码改动 + 对话状态)。典型组合流:先 /resume(或 claude --resume <name>)把昨天那条跑偏的会话切回来,进去后发现最后几轮改崩了,再 Esc Esc(输入框为空时)或运行 /rewind 打开检查点菜单,回滚到改崩之前的那个检查点继续。即"先选对会话,再在会话内退到对的时间点"。注意 /rewind 只回滚被追踪的 Edit/Write 类改动,详见 /rewind 指南。
| 约束 | 说明 |
|---|---|
| 会话查找按目录隔离 | ID 查找仅限当前项目目录及其 git worktree;跨无关项目的会话不会直接恢复,而是将 cd + resume 命令复制到剪贴板 |
| headless 会话不进选择器 | 用 claude -p(Agent SDK / 非交互模式)创建的会话不出现在选择器中,但可通过 claude --resume <session-id> 按 ID 恢复 |
/resume <name> 模糊匹配直接报错 | 不同于 CLI 的 --resume <name>(模糊时打开选择器),命令行内使用时需无参数重新调用选择器 |
| 同一会话在两个终端中恢复(不 fork) | 消息会交织进同一 transcript,推荐用 /branch 或 --fork-session 产生分支而不是并发恢复 |
v2.1.169 起 /cd 会迁移会话 | 在会话内执行 /cd 将该会话重新归属到新目录的项目存储,之后在新目录选择器中可见 |
/resume | claude --continue | /branch | |
|---|---|---|---|
| 入口 | 会话内 slash 命令 | CLI 启动标志 | 会话内 slash 命令 |
| 选择方式 | 交互选择器 / 名称 / ID | 自动选最近会话 | 以当前会话为基础 fork |
| 是否修改原会话 | 否,切换到目标 | 否,直接继续 | 否,原会话保留 |
| 典型场景 | 多任务并行时手动切换 | 快速接续上一次工作 | 试验不同方案 |
auth-refactor、fix-bug-123),用 /resume 在不同会话间来回切换,保留各自上下文。claude --resume 选择器找回昨天的会话,接着未完成的任务。claude --from-pr <number> 恢复与某个 Pull Request 绑定的会话,继续相关的讨论和代码生成历史。claude --resume <session-id> 必须在会话创建时所在的目录执行,否则报 No conversation found with session ID: <session-id>。解决:cd 到对应项目目录后再执行。claude -p 产生的会话不进选择器列表,只能凭 session ID 用 --resume 恢复。/resume <name> 不做模糊补全:会话名称有歧义时,/resume name 直接报错,需不带参数运行 /resume 打开选择器手动选择。cleanupPeriodDays。新增 background session 支持,允许恢复通过 claude --bg 或 agent view 启动的后台会话
修复 picker 不显示从 background session fork 的会话的问题
修复 Esc 无法关闭对话
搜索框现在支持粘贴 PR URL 来查找对应的会话
现在提供在重新读取前总结陈旧的大型会话
在大型会话上明显加快(40MB+ 会话上最多 67%),更有效地处理许多死 fork 条目
修复 tab 补全会立即恢复任意会话的问题
改进会话选择器,优先显示当前目录的会话
修复多个 `/resume` 选择器问题,包括窄默认视图、Windows Terminal 预览无法访问等
修复多个 `/resume` 选择器问题,包括选择器过滤、缓存和显示等
修复多个 `/resume` 选择器问题,包括可编辑性、搜索状态和显示等
修复了forked或continued session后session names丢失的问题
修复了在picker中显示current session的问题
改进了 `/resume` 选择器显示最近的提示而非第一个。
修复 `/resume <session-id>` 命令无法找到首条消息超过 16KB 的会话的问题
修复 `/resume` 命令显示中断消息作为会话标题的问题
修复会话预览显示原始 XML 标签而不是可读命令名称
修复会话选择器显示原始 XML 标记而不是干净标题
用于恢复已命名的会话,支持在 REPL 和终端中使用,含改进的 UI
修复了恢复时已创建的文件需要重新读取后才能写入的 bug
/resume 摘要现在避免提及 hooks
新增 /resume 斜杠命令用于在对话间切换