本页目录15
- 用 `claude --continue` 恢复最近会话;`--resume` 打开选择器;`--resume <name>` 直接定位命名会话;`--from-pr <number>` 关联 PR 恢复
- 转录文件默认存于 `~/.claude/projects/<project>/<session-id>.jsonl`,30 天后自动清理;可通过 `cleanupPeriodDays` 调整周期
- 选择器支持三级范围切换:`Ctrl+W` 当前仓库所有 worktree,`Ctrl+A` 本机所有项目,`Ctrl+B` 仅当前分支
- `/branch [name]` 或命令行加 `--fork-session` 创建分支会话;「仅本次会话允许」的权限不随分支携带
- 环境变量 `CLAUDE_CODE_SKIP_PROMPT_HISTORY` 可禁止写入转录文件;非交互模式可加 `--no-session-persistence`
- `/clear` 清空上下文但保留已保存对话;`/compact [instructions]` 以摘要替换历史;`/context` 查看当前占用情况
本文是对官方参考页 Manage sessions 的中文整理,完整与最新内容以原文为准。
概述
会话(Session)是与项目目录绑定的已保存对话。Claude Code 在本地持续保存会话,支持恢复、命名、分支以及在多个任务间切换。CLI、桌面 App、Web 版和 VS Code 扩展各维护独立的会话历史,本页面仅覆盖 CLI 行为。
恢复会话
入口命令
| 命令 | 说明 |
|---|---|
claude --continue | 恢复当前目录中最近一次会话 |
claude --resume | 打开交互式会话选择器 |
claude --resume <name> | 直接恢复指定名称的会话 |
claude --from-pr <number> | 恢复与该 Pull Request 关联的会话 |
/resume | 在活跃会话内切换到其他对话 |
通过 claude -p 或 Agent SDK 创建的非交互会话不出现在选择器中,但可通过 claude --resume <session-id> 恢复,需在该会话所在目录下运行(Session ID 查找作用域限于当前项目目录及其 git worktree)。
名称解析规则
| 命令 | 精确匹配 | 模糊/重名 |
|---|---|---|
claude --resume <name> | 直接恢复 | 打开选择器并以该名称预填搜索词 |
/resume <name> | 直接恢复 | 报错;需无参运行 /resume 打开选择器 |
名称解析范围覆盖当前仓库及其所有 worktree,支持跨 worktree 直接恢复。
选择器的查找范围
默认显示当前 worktree 的交互式会话,以及通过 /add-dir 添加了当前目录的其他会话。
- v2.1.169 起:在会话内执行
/cd后,会话会迁移到新目录的项目存储,并出现在新目录的选择器中。 - 选中同仓库其他 worktree 的会话:在原地恢复。
- 选中无关项目的会话:将
cd+ resume 命令复制到剪贴板。
命名会话
| 时机 | 方式 |
|---|---|
| 启动时 | claude -n <会话名>(示例:claude -n auth-refactor) |
| 会话进行中 | /rename <会话名>,名称同时显示在提示栏 |
| 在选择器中 | 高亮目标会话后按 Ctrl+R |
| 接受计划时 | 在计划模式(Plan Mode)下接受计划,若尚未命名则自动从计划内容生成 |
命名后可通过 claude --resume <name> 或 /resume <name> 直接返回该会话。
会话选择器键盘快捷键
运行 /resume(会话内)或 claude --resume(无参数)打开选择器。
| 快捷键 | 操作 |
|---|---|
↑ / ↓ | 上下导航会话列表 |
→ / ← | 展开或折叠分支/分组会话 |
Enter | 恢复高亮会话 |
Space | 预览会话内容(Ctrl+V 在不支持 Space 预览的终端同效) |
Ctrl+R | 重命名高亮会话 |
/ 或任意可打印字符(非 Space) | 进入搜索模式过滤列表;支持粘贴 GitHub / GitHub Enterprise / GitLab / Bitbucket PR/MR URL 查找关联会话 |
Ctrl+A | 显示本机所有项目的会话(再按一次返回当前仓库) |
Ctrl+W | 显示当前仓库所有 worktree 的会话(仅多 worktree 仓库显示;再按返回当前 worktree) |
Ctrl+B | 仅显示当前 Git 分支的会话(再按显示所有分支) |
Esc | 退出选择器或搜索模式 |
每行显示:会话名(若已设置)或对话摘要/首条提示、最后活跃时间、消息数、Git 分支。使用 Ctrl+A 展宽后额外显示项目路径。
通过 /branch、/rewind 或 --fork-session 创建的分支会话归组在根会话下,按 → 展开查看。
分支会话
分支将当前对话完整复制为新会话并切入,原会话保持不变,可用于在不丢失原路径的情况下尝试不同方案。
分支方式
| 方式 | 命令 |
|---|---|
| 会话内分支(可选指定名称) | /branch [name](示例:/branch try-streaming-approach) |
| 命令行:基于最近会话分支 | claude --continue --fork-session |
| 命令行:基于指定会话分支 | claude --resume <name> --fork-session |
注意事项
/branch确认提示会打印两个 Session ID:新分支 ID 和原会话 ID。- 返回原会话:将原 ID 传给
/resume、在选择器中选择,或运行/resume <original-name>。 - 「仅本次会话允许」的权限不随分支携带到新会话。
- 若在两个终端中恢复同一会话而不分支,两侧消息会交叉写入同一转录文件。
- 基于检查点的回退请参见 Checkpointing 文档。
会话内上下文管理
| 命令 | 说明 |
|---|---|
/clear | 清空上下文窗口;对话已保存,可通过 --resume 恢复 |
/compact [instructions] | 以摘要替换当前历史;可附加 instructions 指定摘要聚焦方向 |
/context | 显示当前上下文窗口的占用情况 |
导出与存储
导出命令
| 用法 | 效果 |
|---|---|
/export | 将当前对话复制到剪贴板 |
/export <filename> | 直接写入指定文件(消息和工具输出渲染为可读纯文本) |
存储配置
| 项目 | 值 / 说明 |
|---|---|
| 默认存储路径 | ~/.claude/projects/<project>/<session-id>.jsonl |
| 文件格式 | JSONL,每行为一个 JSON 对象(消息、工具调用或元数据) |
| 自定义存储目录 | 设置环境变量 CLAUDE_CONFIG_DIR |
| 默认自动清理周期 | 30 天 |
| 修改清理周期 | 在 settings 中设置 cleanupPeriodDays |
| 禁止写入转录文件 | 设置环境变量 CLAUDE_CODE_SKIP_PROMPT_HISTORY |
| 非交互模式禁止持久化 | 启动时传入 --no-session-persistence |
相关页面
| 页面 | 内容摘要 |
|---|---|
| Worktrees | 在独立分支上运行隔离的并行会话 |
| Checkpointing | 将代码和对话回退到某个更早的检查点 |
| Context window | 上下文窗口的填充方式及压缩后保留内容 |
| Non-interactive mode | claude -p 下的会话行为说明 |