sessions
管理会话
命名、恢复、分支和在 Claude Code 对话之间切换。涵盖
--continue、--resume、--from-pr、/resume选择器、会话命名和文本记录存储位置。
会话是与项目目录关联的已保存对话。Claude Code 在您工作时将其本地存储,因此您可以从中断处恢复、分支以尝试不同的方法,或在任务之间切换。
桌面应用、网页版 Claude Code 和 VS Code 扩展各自维护自己的会话历史记录。本页涵盖 CLI:
恢复会话
会话在您工作时持续保存到本地文本记录文件,因此您可以在退出或运行 /clear 后返回到一个会话。使用这些入口点:
| 命令 | 功能 |
|---|---|
claude --continue |
恢复当前目录中最近的会话 |
claude --resume |
打开会话选择器 |
claude --resume <name> |
直接恢复命名的会话 |
claude --from-pr <number> |
恢复链接到该拉取请求的会话 |
/resume |
从活跃会话内切换到不同的对话 |
使用 claude -p 或 Agent SDK 创建的会话不会出现在会话选择器中,但您仍然可以通过将其会话 ID 传递给 claude --resume <session-id> 来恢复它。
会话选择器查看的位置
会话按项目目录存储。默认情况下,会话选择器显示来自当前 worktree 的交互式会话,以及在其他地方启动但使用 /add-dir 添加了当前目录的会话。使用 Ctrl+W 扩展到存储库的所有 worktree,或使用 Ctrl+A 扩展到此计算机上的每个项目。
从同一存储库的另一个 worktree 选择会话会在原地恢复它。从不相关项目选择会话会将 cd 和恢复命令复制到您的剪贴板。
按名称恢复会跨当前存储库及其 worktree 解析。两种形式都查找精确匹配并直接恢复它,即使它位于不同的 worktree 中:
| 命令 | 精确匹配 | 模糊名称 |
|---|---|---|
claude --resume <name> |
直接恢复 | 打开会话选择器,名称预填充为搜索词 |
/resume <name> |
直接恢复 | 报告错误;运行不带参数的 /resume 打开会话选择器 |
命名您的会话
为会话提供描述性名称,以便在会话选择器中可以找到它们,并可以按名称恢复。当您并行处理多个任务时,这一点最重要。
| 时间 | 如何设置名称 |
|---|---|
| 启动时 | claude -n auth-refactor |
| 在会话期间 | /rename auth-refactor。名称也会出现在提示栏上 |
| 从会话选择器 | 突出显示会话并按 Ctrl+R |
| 在计划接受时 | 在 Plan Mode 中接受计划会从计划内容命名会话,除非您已经设置了一个 |
会话命名后,使用 claude --resume <name> 或 /resume <name> 返回到它。有关名称解析如何跨 worktree 工作的信息,请参阅恢复会话。
使用会话选择器
在会话内运行 /resume,或不带参数运行 claude --resume,以打开交互式会话选择器。使用这些快捷键导航、搜索和扩展列表:
| 快捷键 | 操作 |
|---|---|
↑ / ↓ |
在会话之间导航 |
→ / ← |
展开或折叠分组的会话 |
Enter |
恢复突出显示的会话 |
Space |
预览会话内容。在不将其捕获为粘贴的终端上也可以使用 Ctrl+V |
Ctrl+R |
重命名突出显示的会话 |
/ 或除 Space 外的任何可打印字符 |
进入搜索模式并过滤会话。粘贴 GitHub、GitHub Enterprise、GitLab 或 Bitbucket 拉取或合并请求 URL 以查找创建它的会话 |
Ctrl+A |
显示此计算机上所有项目的会话。再次按下以返回到当前存储库 |
Ctrl+W |
显示当前存储库所有 worktree 的会话。再次按下以返回到当前 worktree。仅在多 worktree 存储库中显示 |
Ctrl+B |
过滤到当前 git 分支的会话。再次按下以显示所有分支 |
Esc |
退出会话选择器或搜索模式 |
每行显示会话名称(如果已设置),否则显示对话摘要或第一个提示,以及自上次活动以来的时间、消息计数和 git 分支。使用 Ctrl+A 扩展到所有项目后,项目路径会出现。
使用 /branch、/rewind 或 --fork-session 创建的分叉会话会分组在其根会话下。按 → 展开一个组。
分支会话
分支创建迄今为止对话的副本并将您切换到其中,保持原始对话完整。使用它来尝试不同的方法而不会丢失您所在的路径。
从会话内,运行带有可选名称的 /branch:
1 | /branch try-streaming-approach |
从命令行,将 --continue 或 --resume 与 --fork-session 结合:
1 | claude --continue --fork-session |
原始会话保持不变,并在会话选择器中保持可用。/branch 确认打印两个会话 ID:您现在所在的新分支和原始分支。要返回到原始分支,将其 ID 传递给 /resume、使用会话选择器或运行 /resume <original-name>。您使用”允许此会话”批准的权限不会转移到新分支。如果您在两个终端中恢复同一会话而不分叉,来自两者的消息会交错到一个文本记录中。
对于单个会话内基于检查点的回退,请参阅 Checkpointing。
管理会话内的上下文
这些命令控制上下文窗口中的内容而不离开会话:
/clear:以空上下文重新开始。之前的对话已保存并可恢复/compact [instructions]:用摘要替换历史记录,可选地专注于您指定的内容/context:显示当前消耗的上下文
有关压缩如何与 CLAUDE.md、skills 和规则交互的信息,请参阅上下文窗口指南。有关何时清除与压缩的策略,请参阅最佳实践。
导出和定位会话数据
运行 /export 将当前对话复制到您的剪贴板或将其保存为纯文本文件,消息和工具输出呈现为可读文本。传递文件名以直接写入该文件。
文本记录存储为 JSONL,位置为 ~/.claude/projects/<project>/<session-id>.jsonl,其中 <project> 从您的工作目录路径派生。每行是消息、工具使用或元数据条目的 JSON 对象。要将会话存储在 ~/.claude 以外的位置,请设置 CLAUDE_CONFIG_DIR。这些本地文件默认在 30 天后被删除;使用 cleanupPeriodDays 更改此设置。
要完全禁止文本记录写入,请设置 CLAUDE_CODE_SKIP_PROMPT_HISTORY,或在非交互模式下使用 --no-session-persistence。
另请参阅
这些页面涵盖相关的会话和并行性机制:
- Worktrees:在单独的分支上运行隔离的并行会话
- Checkpointing:将代码和对话回退到较早的点
- Context window:什么填充上下文以及什么在压缩中保留
- Non-interactive mode:
claude -p下的会话行为