{/* TRANSLATED — 已翻译为中文 */}

> ## 文档索引
> 在此获取完整文档索引：https://code.claude.com/docs/llms.txt
> 使用此文件发现所有可用页面，然后再进一步探索。

# 管理会话

> 命名、恢复、分支和切换 Claude Code 对话。涵盖 `--continue`、`--resume`、`--from-pr`、`/resume` 选择器、会话命名以及会话记录的存储位置。

会话是绑定到项目目录的已保存对话。Claude Code 在您工作时将其本地存储，因此您可以从中断处恢复、分支以尝试不同的方法，或在任务之间切换。

[桌面应用](/en/desktop#work-in-parallel-with-sessions)、[网页版 Claude Code](/en/claude-code-on-the-web) 和 [VS Code 扩展](/en/vs-code#resume-past-conversations) 各自维护自己的会话历史。本页涵盖 CLI：

* [恢复](#resume-a-session)之前的对话，通过标志、名称或 PR
* [命名](#name-your-sessions)会话以便稍后查找
* [浏览](#use-the-session-picker)会话，使用 `/resume` 选择器
* [分支](#branch-a-session)对话以尝试不同的方法
* [导出](#export-and-locate-session-data)会话记录并在磁盘上找到它们

## 恢复会话

会话在您工作时持续保存到[本地会话记录文件](#export-and-locate-session-data)，因此您可以在退出或运行 `/clear` 后返回。使用这些入口点：

| 命令                        | 功能                                                             |
| :-------------------------- | :--------------------------------------------------------------- |
| `claude --continue`         | 恢复当前目录中最近的会话                                         |
| `claude --resume`           | 打开[会话选择器](#use-the-session-picker)                        |
| `claude --resume <name>`    | 直接恢复命名会话                                                 |
| `claude --from-pr <number>` | 恢复链接到该 pull request 的会话                                 |
| `/resume`                   | 从活跃会话内切换到不同的对话                                     |

使用 [`claude -p`](/en/headless) 或 [Agent SDK](/en/agent-sdk/overview) 创建的会话不会出现在会话选择器中，但您仍然可以通过将会话 ID 传递给 `claude --resume <session-id>` 来恢复。

### 会话选择器的查找范围

会话按项目目录存储。默认情况下，会话选择器显示来自当前工作树的交互式会话，以及在其他位置启动但使用 `/add-dir` 添加了当前目录的会话。使用 `Ctrl+W` 扩展到存储库的所有工作树，或使用 `Ctrl+A` 扩展到此机器上的所有项目。

从同一存储库的另一个工作树中选择会话会在原处恢复它。从不相关的项目中选择会话会将 `cd` 和恢复命令复制到剪贴板。

按名称恢复会在当前存储库及其工作树中解析。两种形式都查找精确匹配并直接恢复，即使它位于不同的工作树中：

| 命令                       | 精确匹配       | 名称歧义                                                                   |
| :------------------------- | :------------- | :------------------------------------------------------------------------- |
| `claude --resume <name>`   | 直接恢复       | 打开会话选择器，名称预填为搜索词                                           |
| `/resume <name>`           | 直接恢复       | 报告错误；不带参数运行 `/resume` 打开会话选择器                            |

## 命名会话

为会话提供描述性名称，以便在会话选择器中可查找并可按名称恢复。当您并行处理多个任务时，这一点尤为重要。

| 时机                | 如何设置名称                                                                                                                                                                                 |
| :------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 启动时              | `claude -n auth-refactor`                                                                                                                                                                    |
| 会话期间            | `/rename auth-refactor`。名称也会显示在提示栏中                                                                                                                                              |
| 从会话选择器        | 高亮会话并按 `Ctrl+R`                                                                                                                                                                        |
| 计划接受时          | 在[计划模式](/en/permission-modes#analyze-before-you-edit-with-plan-mode)中接受计划会根据计划内容命名会话，除非您已经设置了名称                                                               |

一旦会话被命名，使用 `claude --resume <name>` 或 `/resume <name>` 返回。请参阅[恢复会话](#resume-a-session)了解名称解析在工作树之间的行为。

## 使用会话选择器

在会话中运行 `/resume`，或不带参数运行 `claude --resume`，以打开交互式会话选择器。使用以下键盘快捷键导航、搜索和扩展列表：

| 快捷键                                              | 操作                                                                                                                                                           |
| :-------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `↑` / `↓`                                          | 在会话之间导航                                                                                                                                                 |
| `→` / `←`                                          | 展开或折叠分组的会话                                                                                                                                           |
| `Enter`                                            | 恢复高亮的会话                                                                                                                                                 |
| `Space`                                            | 预览会话内容。在不将其捕获为粘贴的终端上，`Ctrl+V` 也可用                                                                                                      |
| `Ctrl+R`                                           | 重命名高亮的会话                                                                                                                                               |
| `/` 或除 `Space` 外的任何可打印字符                | 进入搜索模式并过滤会话。粘贴 GitHub、GitHub Enterprise、GitLab 或 Bitbucket pull 或 merge request URL 以找到创建它的会话                                       |
| `Ctrl+A`                                           | 显示此机器上所有项目的会话。再次按下返回当前存储库                                                                                                             |
| `Ctrl+W`                                           | 显示当前存储库所有工作树的会话。再次按下返回当前工作树。仅在多工作树存储库中显示                                                                               |
| `Ctrl+B`                                           | 过滤为当前 git 分支的会话。再次按下显示所有分支                                                                                                                |
| `Esc`                                              | 退出会话选择器或搜索模式                                                                                                                                       |

每行显示会话名称（如果已设置），否则显示对话摘要或第一个提示，以及自上次活动以来的时间、消息计数和 git 分支。使用 `Ctrl+A` 扩展到所有项目后，项目路径会出现。

使用 `/branch`、`/rewind` 或 `--fork-session` 创建的分叉会话在其根会话下分组。按 `→` 展开组。

## 分支会话

分支会创建到目前为止对话的副本并将您切换到其中，保持原始对话不变。使用它来尝试不同的方法而不丢失您之前的路径。

在会话内部，运行 `/branch` 并可选地指定名称：

```text theme={null}
/branch try-streaming-approach
```

从命令行，将 `--continue` 或 `--resume` 与 `--fork-session` 结合使用：

```bash theme={null}
claude --continue --fork-session
```

原始会话保持不变，并在会话选择器中可用。`/branch` 确认会打印两个会话 ID：您当前所在的新分支和原始分支。要返回原始分支，将其 ID 传递给 `/resume`，使用会话选择器，或运行 `/resume <original-name>`。您以"允许此会话"批准的权限不会延续到新分支。如果您在两个终端中恢复同一会话而不进行分叉，来自两者的会话将交错到一个会话记录中。

有关单个会话中基于检查点的回退，请参阅[检查点](/en/checkpointing)。

## 管理会话内的上下文

这些命令控制上下文窗口中的内容而不离开会话：

* **`/clear`**：从空上下文重新开始。之前的对话会被保存并可恢复
* **`/compact [instructions]`**：用摘要替换历史记录，可选择性地专注于您指定的内容
* **`/context`**：显示当前消耗上下文的内容

有关压缩如何与 CLAUDE.md、技能和规则交互，请参阅[上下文窗口指南](/en/context-window)。有关何时清除与压缩的策略，请参阅[最佳实践](/en/best-practices#manage-your-session)。

## 导出和定位会话数据

运行 `/export` 将当前对话复制到剪贴板或保存为纯文本文件，消息和工具输出呈现为可读文本。传递文件名以直接写入该文件。

会话记录以 JSONL 格式存储在 `~/.claude/projects/<project>/<session-id>.jsonl`，其中 `<project>` 源自您的工作目录路径。每行是消息、工具使用或元数据条目的 JSON 对象。要将会话存储在 `~/.claude` 之外的位置，请设置 [`CLAUDE_CONFIG_DIR`](/en/env-vars)。这些本地文件默认在 30 天后删除；使用 [`cleanupPeriodDays`](/en/settings#available-settings) 更改此设置。

要完全禁止会话记录写入，请设置 [`CLAUDE_CODE_SKIP_PROMPT_HISTORY`](/en/env-vars)，或在非交互模式下使用 `--no-session-persistence`。

## 另请参阅

这些页面涵盖相关的会话和并行机制：

* [工作树](/en/worktrees)：在单独的分支上运行隔离的并行会话
* [检查点](/en/checkpointing)：将代码和对话回退到更早的时间点
* [上下文窗口](/en/context-window)：什么填充上下文以及什么在压缩后保留
* [非交互模式](/en/headless)：`claude -p` 下的会话行为
