命令字典
Slash 命令、CLI 子命令、Hook 事件、启动参数的字典与演进史。
Slash 命令、CLI 子命令、Hook 事件、启动参数的字典与演进史。
派生一个继承完整对话的后台 forked subagent 处理你的指令,你可继续手头工作,其结果完成后回传当前会话。需 v2.1.161+;早于该版本 /fork 仅是 /branch 的别名。
/fork <directive>/fork 把 src/routes 下所有端点审一遍缺失的鉴权检查/fork <directive> 是 Claude Code CLI 中的会话内 slash 命令,用来派生一个 forked subagent:它继承到此刻为止的完整对话(同样的 system prompt、工具、模型、消息历史),在后台按你给的指令干活,而你在主会话里继续手头的事;它完成后,只把最终结果作为一条消息送回你的主会话。
fork 丢掉了普通 subagent 的输入隔离(后者从全新上下文起步),所以你不用再向它复述背景;但它自己的工具调用仍留在它的上下文里、不污染你的主会话。适合"命名 subagent 需要太多背景才有用"或"想从同一起点并行试几种方案"的场景。
版本门槛 / 与历史别名的区别:
/fork现为独立命令,需 Claude Code v2.1.161+(该版本起/fork默认启用)。forked subagent 能力本身需 v2.1.117+。早于 v2.1.161 时/fork只是/branch的别名(等价分支当前会话),并需把环境变量CLAUDE_CODE_FORK_SUBAGENT设为1才有 fork 语义。让 Claude 自行派生 fork 仍是实验性能力。
/fork vs /branch:别再混为一谈这是本命令最大的认知坑——两者不是别名、做的事相反:
| 维度 | /fork <directive> | /branch [name] |
|---|---|---|
| 你去哪 | 留在主会话继续干 | 切入对话的一个副本 |
| 谁干活 | 后台 forked subagent 干指令 | 你自己在新分支里干 |
| 起点 | 继承完整对话(到此刻) | 在当前点为对话打分支快照 |
| 结果 | 完成后回传主会话 | 不回传;原会话用 /resume 切回 |
| 用途 | 把侧任务甩给后台,自己不切走 | 自己切进副本试不同方向 |
一句话:想"把活交给后台、自己不动"用 /fork;想"自己换条线试"用 /branch。
在会话内,消息开头输入 /fork 再跟一段指令:
/fork draft unit tests for the parser changes so far
Claude Code 用指令开头的词给 fork 命名。fork 出现在 prompt 下方的面板里、在后台跑,你继续在主会话工作;它完成时结果作为消息抵达主会话。
无论是否设了环境变量,你都能用 /fork 手动派生。要不受分阶段 rollout 影响地控制 fork 模式:设 CLAUDE_CODE_FORK_SUBAGENT=1 显式启用、=0 显式禁用(交互模式、headless、Agent SDK 均生效)。
运行中的 fork 显示在 prompt 输入框下方的面板里,主会话一行、每个 fork 各一行:
| 键 | 动作 |
|---|---|
↑ / ↓ | 在行间移动 |
Enter | 打开选中 fork 的 transcript,并向它追加后续消息 |
x | 关掉已完成的 fork 或停掉正在跑的 |
Esc | 焦点回到 prompt 输入框 |
CLAUDE_CODE_FORK_SUBAGENT=1 会让 Claude Code 发生两点变化:
fork subagent 类型来自行派生 fork(不带 subagent type 的派生仍用 general-purpose;Explore 等命名 subagent 照旧)。CLAUDE_CODE_DISABLE_BACKGROUND_TASKS=1。| 约束 | 说明 |
|---|---|
| 版本 | 独立 /fork 命令需 v2.1.161+;fork 能力需 v2.1.117+ |
| fork 不能再 fork | 一个 fork 不能派生另一个 fork;它可派生其他 subagent 类型,且计入深度上限 |
| prompt cache | fork 与主会话共享缓存,首个请求复用父会话 prompt cache,比新起 subagent 便宜 |
| 权限 | fork 的权限提示出现在你的终端 |
| worktree | Claude 经 Agent 工具派生 fork 时可传 isolation: "worktree",把文件改动写进独立 git worktree |
| 环境变量作用域 | CLAUDE_CODE_FORK_SUBAGENT 在交互、非交互、Agent SDK 全局生效;=0 会关掉包括服务端 rollout 在内的一切 fork |
| Fork | 命名 subagent | |
|---|---|---|
| Context | 完整对话历史 | 全新上下文 + 你传的 prompt |
| system prompt / 工具 | 同主会话 | 来自 subagent 定义文件 |
| 模型 | 同主会话 | 来自 subagent 的 model 字段 |
| prompt cache | 与主会话共享 | 独立缓存 |
把活并行化或引入「更强的第二个脑子」有多条路,容易混淆,这里一表理清(选型时对照):
| 机制 | 干什么 | 谁/什么在跑 | 上下文 | 结果去向 | 何时选 |
|---|---|---|---|---|---|
/fork | 派生后台 fork 干一个侧任务 | 继承完整对话的 forked subagent | 同主会话(共享 prompt cache) | 完成后回传主会话 | 想甩侧任务给后台、自己不切走 |
/branch | 把当前会话切出一个副本 | 你自己在新分支里干 | 当前点的对话快照 | 不回传,/resume 切回 | 想自己换条线试不同方向 |
/agents 命名 subagent | 委派专门化子任务 | 命名 subagent(独立定义) | 全新上下文 + 你传的 prompt | 只回传摘要 | 侧任务背景少、想隔离上下文/限工具/降模型省钱 |
/advisor | 关键决策点咨询更强顾问模型 | 顾问模型(server tool) | 读完整对话,不接管 | 指导吸收后主模型继续 | 方案/失败/完成校验处要第二意见 |
opusplan | plan 用 Opus、执行回 Sonnet | 主模型按阶段切档 | 同会话 | 直接产出 | 规划要强、执行要省 |
/deep-research | 并行搜证 + 交叉核验 | 后台 workflow 调度多 subagent | 中间结果不进上下文 | 带引用报告回传 | 需多源佐证的调研 |
一句话区分:并行干活选 fork(留主线)/branch(切副本)/命名 subagent(隔离);第二意见选 advisor(中途咨询)/opusplan(分阶段升级)。
/fork draft unit tests ... 让后台起草测试,你继续在主会话写实现。/fork 当 /branch(头号坑):/fork 让后台 subagent 干活、你不切走、结果回传;/branch 是你自己切进对话副本。早于 v2.1.161 时 /fork 才等价于 /branch。CLAUDE_CODE_FORK_SUBAGENT=1 后连命名 subagent 也跑后台,需要同步就设 CLAUDE_CODE_DISABLE_BACKGROUND_TASKS=1。/fork:得设 CLAUDE_CODE_FORK_SUBAGENT=1 才有 fork 语义,否则 /fork 仍是 /branch 别名。x——已完成的关掉、运行中的停掉。CLAUDE_CODE_FORK_SUBAGENT=0(关掉交互 / headless / SDK / 服务端 rollout 的一切 fork)。/fork 是一次性派生,不需要"退出";再派生别的直接再 /fork。/fork 升级为独立命令:派生一个继承完整对话的后台 forked subagent 处理指令,完成后将结果回传当前会话(此前 /fork 仅为 /branch 的别名)
修复写入完整父会话到磁盘的问题,现在写入指针并在读取时水合
已重命名为/branch,但仍可用作别名
修复了 forked conversations 错误地共享同一 plan file 的问题。
修复在使用过 web search 的会话上使用 `/fork` 命令时发生崩溃的问题