# 会话与上下文管理

> 目录访问、上下文压缩、分支与回滚、导出与恢复

- 作者：David（道雾轩）
- 专栏：Claude Code 中文手册（https://daiw.org/manual/claude-code.md）
- 最后更新：2026-09-28
- 原文：https://daiw.org/manual/claude-code/commands-session
- 转载与引用：请注明出处并附原文链接（https://daiw.org/about/copyright）

`/` 只有出现在消息**开头**才会被识别为命令，后面的文字会作为该命令的参数。输入 `/` 可以看到当前可用的全部命令，输入 `/` 加字母可以过滤。

## 目录与工作区

| 命令 | 作用 |
| --- | --- |
| `/add-dir <path>` | 为当前会话额外授权一个工作目录的文件读写权限。注意：这只授予文件访问，不会自动发现该目录下的 `.claude/` 配置（`.claude/skills/` 除外）。v2.1.257 起传入当前工作目录内的子目录也行，会像 `--add-dir` 一样加载其技能、命令与 agent；网络路径（UNC 共享、`/net/<host>`）一律拒绝 |
| `/cd <path>` | 把当前会话切换到新的工作目录，同时保留 prompt 缓存——新目录的 `CLAUDE.md` 会作为一条消息追加，而不是重建整个系统提示词（v2.1.169+）。⚠️ v2.1.246 起新目录的项目设置、hooks、`.mcp.json` 服务器（照常需审批）、技能与 agent 切过去立即生效，不必再 `--resume` |

## 上下文管理

| 命令 | 作用 |
| --- | --- |
| `/compact [instructions]` | 总结当前对话以释放上下文空间，可传入聚焦说明，例如 `/compact 只保留和认证模块相关的内容` |
| `/context [all]` | 用彩色网格可视化当前上下文占用情况，给出优化建议；传 `all` 展开每一项明细。v2.1.283 起 MCP 服务器说明（server instructions）单列一行并计入总量；v2.1.281 起总量也算上上次回复之后新增的消息，因此可能比状态栏显示的高 |
| `/clear [name]` | 开启一个全新对话（项目记忆仍保留），之前的对话仍可通过 `/resume` 找回；可传名称标注旧对话。别名 `/reset`、`/new` |

<Callout type="info">
  `/compact` 是“总结当前对话、继续同一个任务”；`/clear` 是“另起一个任务”。上下文快满时优先用前者，任务已经完成、准备做别的事情时用后者。
</Callout>

## 分支、检查点与回滚

| 命令 | 作用 |
| --- | --- |
| `/branch [name]` | 在当前节点创建一个对话分支，尝试不同方向而不丢失原对话；原对话仍可通过 `/resume` 找回 |
| `/rewind` | 把对话和/或代码回滚到之前的某个检查点，或者从某条消息开始重新总结。别名 `/checkpoint`、`/undo` |

## 恢复与导出

| 命令 | 作用 |
| --- | --- |
| `/resume [session]` | 按 ID/名称恢复对话，或打开会话选择器；后台会话会标记 `bg`。别名 `/continue` |
| `/rename [name]` | 重命名当前会话，显示在 prompt bar 上；不传名称则根据对话内容自动生成 |
| `/export [filename]` | 把当前对话导出为纯文本；不传文件名则弹出选择“复制到剪贴板”或“保存文件” |
| `/copy [N]` | 复制最近一条（或倒数第 N 条）assistant 回复；含代码块时会弹出选择器 |

## 其它

| 命令 | 作用 |
| --- | --- |
| `/btw <question>` | 问一个不计入对话历史的旁支问题；v2.1.257 起用 `Shift+←` / `Shift+→`（或 `[` / `]`）翻看最近问过的旁支问题 |
| `/recap` | 手动生成当前会话的一句话摘要 |
| `/exit` | 退出 CLI；如果当前是 attach 到后台会话，则只是 detach，会话继续在后台跑。别名 `/quit` |

## 典型时序

```text
claude                     # 进入项目，开始一次会话
...(工作一段时间，上下文变长)
/context                   # 看看上下文都花在哪了
/compact 聚焦在登录模块的改动
...(继续工作)
/clear 完成登录模块重构      # 任务切换，给旧对话留个名字
...(第二天)
claude --resume "完成登录模块重构"   # 或交互式 /resume 选择器
```
