SpyBara
Go Premium

Documentation 2026-10-10 23:01 UTC to 2026-10-11 21:57 UTC

19 files changed +214 −49. View all changes and history on the product overview
2026
Sun 11 21:57 Sat 10 23:01 Fri 9 23:02 Thu 8 22:58 Wed 7 23:59 Tue 6 23:59 Mon 5 23:58 Sun 4 23:58 Sat 3 23:57 Fri 2 22:59 Thu 1 23:59
Details

4077 工具输出类型4077 工具输出类型

4078</h2>4078</h2>

4079 4079 

4080所有内置 Claude Code 工具的输出 schema 文档。这些类型从 `@anthropic-ai/claude-agent-sdk/sdk-tools` 导出,代表每个工具返回的实际响应数据。4080内置 Claude Code 工具的输出 schema 文档。这些类型从 `@anthropic-ai/claude-agent-sdk/sdk-tools` 导出,代表每个工具返回的实际响应数据。

4081 4081 

4082<h3 id="tooloutputschemas">4082<h3 id="tooloutputschemas">

4083 `ToolOutputSchemas`4083 `ToolOutputSchemas`

agent-view.md +5 −3

Details

290 290 

291在您用方向键或鼠标移动选择后,您按下 `←` 时所在的行仍会保持粗体、不暗淡的名称,便于您辨认自己来自哪个会话。291在您用方向键或鼠标移动选择后,您按下 `←` 时所在的行仍会保持粗体、不暗淡的名称,便于您辨认自己来自哪个会话。

292 292 

293如果按 `←` 时有工具正在运行,Claude Code 会等待其完成后再转入后台,Claude 会在后台会话中继续回复。再按一次 `←` 可立即转入后台而不等待。当进行中的工作无法转移到后台会话时,Claude Code 会先显示 `Background this session?` 对话框,与 [`/background`](#from-inside-a-session) 相同。293如果按 `←` 时有工具正在运行,Claude Code 会等待其完成后再转入后台,Claude 会在后台会话中继续回复。再按一次 `←` 可立即转入后台而不等待。当进行中的后台工作无法转移到后台会话时,Claude Code 会先显示 `Background this session?` 对话框,与 [`/background`](#from-inside-a-session) 相同。

294 294 

295大约十秒后,Claude Code 会不再等待,直接将会话转入后台,但以下情况等除外:295大约十秒后,Claude Code 会不再等待,直接将会话转入后台,但以下情况等除外:

296 296 


300* **您停止了当前轮次**:Claude Code 会取消切换并显示 `Backgrounding cancelled — the turn was stopped.` 例如,当您[用 `Esc` 中断 Claude](/docs/zh-CN/interactive-mode#general-controls),在主对话的权限提示上[不添加评论](/docs/zh-CN/permissions#add-a-comment-when-you-answer-a-permission-prompt)而选择 **No**,或在主对话中 Claude 提出的问题上按 `Esc` 时,当前轮次会停止。再按一次 `←` 即可将会话转入后台。300* **您停止了当前轮次**:Claude Code 会取消切换并显示 `Backgrounding cancelled — the turn was stopped.` 例如,当您[用 `Esc` 中断 Claude](/docs/zh-CN/interactive-mode#general-controls),在主对话的权限提示上[不添加评论](/docs/zh-CN/permissions#add-a-comment-when-you-answer-a-permission-prompt)而选择 **No**,或在主对话中 Claude 提出的问题上按 `Esc` 时,当前轮次会停止。再按一次 `←` 即可将会话转入后台。

301* **排队的消息无法移动**:您[在 Claude 工作时排队的消息](/docs/zh-CN/interactive-mode#queue-messages-while-claude-works)会随对话移到后台会话。当其中某条消息无法移动时,会话会留在前台,Claude Code 会显示类似 `Cannot open agents — 1 queued message can't move to the background. Press ← again once Claude has read it.` 的通知。301* **排队的消息无法移动**:您[在 Claude 工作时排队的消息](/docs/zh-CN/interactive-mode#queue-messages-while-claude-works)会随对话移到后台会话。当其中某条消息无法移动时,会话会留在前台,Claude Code 会显示类似 `Cannot open agents — 1 queued message can't move to the background. Press ← again once Claude has read it.` 的通知。

302 302 

303当 Claude Code 将会话转入后台时(无论是大约十秒后,还是在您再按一次 `←` 之后),它会停止 Claude 仍在前台运行的 shell 命令。Claude Code 不会针对该命令显示 `Background this session?` 对话框。在后台会话中,Claude 没有该命令已启动的记录,因此 Claude 可能会再次运行该命令。要在会话移动时让该命令继续运行,请在 Claude Code 仍在等待时按 `Ctrl+B` [将其转为后台命令](/docs/zh-CN/interactive-mode#background-bash-commands)。

304 

303即使对话还没有任何消息,按 `←` 也会创建该会话的行,因此 `→` 仍可返回该会话。305即使对话还没有任何消息,按 `←` 也会创建该会话的行,因此 `→` 仍可返回该会话。

304 306 

305您可以在 `/config` 中通过 [`leftArrowOpensAgents`](/docs/zh-CN/settings-reference#leftarrowopensagents) 设置为前台会话关闭此快捷键。307您可以在 `/config` 中通过 [`leftArrowOpensAgents`](/docs/zh-CN/settings-reference#leftarrowopensagents) 设置为前台会话关闭此快捷键。


498 后台处理时的继承内容500 后台处理时的继承内容

499</h4>501</h4>

500 502 

501后台处理会启动一个从已保存对话恢复的新进程,进行中的工作会移到该进程:正在运行的后台 shell 命令、已转入后台的子代理、动态工作流、您使用 [`/loop`](/docs/zh-CN/scheduled-tasks) 创建的定时任务,以及 Claude 对 [Artifact 评论的自动回复](/docs/zh-CN/artifacts#let-claude-reply-to-comments-on-its-own) 都会继承过去并在那里继续运行。子代理会与其启动的所有内容一起移动,因此只有当所有这些工作也都能移动时它才会被继承。要停止进行中的工作而不是继承它,请设置 [`CLAUDE_DISABLE_ADOPT=1`](/docs/zh-CN/env-vars#variables) 环境变量;Claude Code 随后会在后台处理前要求您确认。503后台处理会启动一个从已保存对话恢复的新进程,进行中的后台工作会移到该进程:正在运行的后台 shell 命令、已转入后台的子代理、动态工作流、您使用 [`/loop`](/docs/zh-CN/scheduled-tasks) 创建的定时任务,以及 Claude 对 [Artifact 评论的自动回复](/docs/zh-CN/artifacts#let-claude-reply-to-comments-on-its-own) 都会继承过去并在那里继续运行。子代理会与其启动的所有内容一起移动,因此只有当所有这些工作也都能移动时它才会被继承。要停止进行中的后台工作而不是继承它,请设置 [`CLAUDE_DISABLE_ADOPT=1`](/docs/zh-CN/env-vars#variables) 环境变量;Claude Code 随后会在后台处理前要求您确认。

502 504 

503当 [动态工作流](/docs/zh-CN/workflows) 仍有子代理在运行时,Claude Code 会在后台处理前通过 `Background this session?` 对话框询问,其中会说明有多少子代理将重新启动。选择 `Stay` 可让它们先完成。如果您确认,Claude Code 会在后台会话中重放该运行:仍在运行的子代理会从头开始,因此它们目前已使用的 token 会再次消耗。请参阅 [暂停后恢复](/docs/zh-CN/workflows#resume-after-a-pause) 了解哪些已完成的子代理会返回其保存的结果、哪些会再次运行。505当 [动态工作流](/docs/zh-CN/workflows) 仍有子代理在运行时,Claude Code 会在后台处理前通过 `Background this session?` 对话框询问,其中会说明有多少子代理将重新启动。选择 `Stay` 可让它们先完成。如果您确认,Claude Code 会在后台会话中重放该运行:仍在运行的子代理会从头开始,因此它们目前已使用的 token 会再次消耗。请参阅 [暂停后恢复](/docs/zh-CN/workflows#resume-after-a-pause) 了解哪些已完成的子代理会返回其保存的结果、哪些会再次运行。

504 506 

505Claude Code 会停止无法继承的工作,例如正在运行的 [monitor](/docs/zh-CN/tools-reference#monitor-tool),并一并停止拥有 monitor 的后台子代理。当有任何此类工作正在运行时,Claude Code 会显示 `Background this session?` 对话框,以便您在它停止工作前确认。507Claude Code 会停止无法继承的后台工作,例如正在运行的 [monitor](/docs/zh-CN/tools-reference#monitor-tool),并一并停止拥有 monitor 的后台子代理。当有任何此类工作正在运行时,Claude Code 会显示 `Background this session?` 对话框,以便您在它停止工作前确认。

506 508 

507进入后台后,会话可以启动新的子代理、monitor 和后台命令,这些在之后的分离和重新附加过程中会持续运行。509进入后台后,会话可以启动新的子代理、monitor 和后台命令,这些在之后的分离和重新附加过程中会持续运行。

508 510 

costs.md +13 −0

Details

90 90 

91当您的计划限制请求失败时(通常是因为使用情况端点受到速率限制),`/usage` 会显示它在过去 60 分钟内在此机器上加载的最后一个使用情况条,以及一个 `Showing last-known usage` 注释,说明该数据是多久前获取的。按 `r` 重试;成功重试会用新数据替换最后已知的条。如果没有过去 60 分钟内的快照,`/usage` 会报告使用情况端点受到速率限制,并提供相同的重试快捷方式。在 v2.1.208 之前,在尚未加载使用情况的会话中受速率限制的请求始终显示错误,没有条。91当您的计划限制请求失败时(通常是因为使用情况端点受到速率限制),`/usage` 会显示它在过去 60 分钟内在此机器上加载的最后一个使用情况条,以及一个 `Showing last-known usage` 注释,说明该数据是多久前获取的。按 `r` 重试;成功重试会用新数据替换最后已知的条。如果没有过去 60 分钟内的快照,`/usage` 会报告使用情况端点受到速率限制,并提供相同的重试快捷方式。在 v2.1.208 之前,在尚未加载使用情况的会话中受速率限制的请求始终显示错误,没有条。

92 92 

93<h3 id="read-the-token-count-beside-the-spinner">

94 读取加载指示器旁的 token 计数

95</h3>

96 

97当 Claude 在主对话中工作时,加载指示器旁的行末尾可能显示已用时间和 token 计数,例如 `Deciphering… (10m 27s · ↓ 5.5k tokens)`。这是当前轮次迄今为止所产生输出的实时近似计数。在输出到达或工具运行时,计数旁的箭头指向下方。

98 

99* **涵盖的内容**:该轮次生成的输出,例如 Claude 流式返回的文本和工具调用、其思考,以及在[前台](/docs/zh-CN/sub-agents#run-subagents-in-foreground-or-background)运行的子代理的输出

100* **不包括的内容**:Claude Code 发送给模型的内容,因此您的提示词、对话历史记录以及上下文的其余部分不会使其变化

101* **何时重置**:在每个轮次开始时,以及 Claude Code [压缩对话](/docs/zh-CN/prompt-caching#compacting-the-conversation)时

102* **何时保持隐藏**:在输出开始到达之前、该行过窄无法容纳时,以及在[屏幕阅读器模式](/docs/zh-CN/accessibility)中

103 

104它不会与 `/usage` Session 块中 `Usage by model` 的输出数字一致,后者累加的是整个会话而非单个轮次。它也不同于[详细模式添加](/docs/zh-CN/statusline#notifications-share-the-status-line-row)的 token 计数,因为后者衡量的是您上下文的大小,而非单个轮次的输出。

105 

93<h3 id="analyze-your-usage-patterns">106<h3 id="analyze-your-usage-patterns">

94 分析您的使用情况模式107 分析您的使用情况模式

95</h3>108</h3>

Details

98 98 

99安全模式仍然应用来自您组织的托管 hook 和设置策略。托管插件、skill、`CLAUDE.md` 和 MCP 服务器会被关闭。99安全模式仍然应用来自您组织的托管 hook 和设置策略。托管插件、skill、`CLAUDE.md` 和 MCP 服务器会被关闭。

100 100 

101如果问题在安全模式下仍然存在,或你的设置本身可疑,请与从你的常规设置中不加载任何内容的会话进行比较。将 [`CLAUDE_CONFIG_DIR`](/docs/zh-CN/env-vars) 指向一个空目录以绕过 `~/.claude` 下的所有内容,并从没有 `.claude` 文件夹、`.mcp.json` 或 `CLAUDE.md` 的目录启动,以便也跳过项目配置。101如果问题在安全模式下仍然存在,或您的设置本身可疑,请启动一个不包含您任何自有配置的会话,检查问题是否仍然出现。

102 102 

103```bash theme={null}103<Steps>

104cd /tmp && CLAUDE_CONFIG_DIR=/tmp/claude-clean claude104 <Step title="创建一个空目录并切换到该目录">

105```105 在没有运行 Claude Code 会话的 shell 中,创建该目录并进入其中:

106 106 

107干净会话没有用户或项目设置、hooks、MCP 服务器、plugins 或内存。在首次启动时,预期会看到首次运行设置屏幕,从主题选择开始。如果你看到它们,说明干净配置目录已生效。后续使用同一目录的启动会跳过这些屏幕,因为 Claude Code 会在那里保存入门状态。107 <Tabs>

108 108 <Tab title="Bash or Zsh">

109* 如果你的组织部署了托管设置,它们仍然适用。Claude Code 读取 MDM 配置文件、注册表策略和来自配置目录外部位置的 `managed-settings.json`,并在干净会话获得凭证后[再次获取服务器管理的设置](/docs/zh-CN/server-managed-settings#fetch-and-caching-behavior)109 ```bash theme={null}

110* 你将被提示再次登录110 mkdir -p ~/claude-clean/empty && cd ~/claude-clean/empty

111 111 ```

112如果问题在这里消失,原因在你的真实 `~/.claude` 或项目 `.claude` 文件中的某处。一次重新引入一个,通过将文件复制到临时目录或从你的项目启动,来找到哪一个。如果它在干净会话中持续存在,原因在你的用户和项目配置之外。运行 `/status` 来检查是否启用了托管设置,查找影响 Claude Code 的[环境变量](/docs/zh-CN/env-vars),然后参阅[故障排除](/docs/zh-CN/troubleshooting)。112 </Tab>

113 

114 <Tab title="PowerShell">

115 ```powershell theme={null}

116 New-Item -ItemType Directory -Force "$HOME/claude-clean/empty" | Out-Null

117 Set-Location "$HOME/claude-clean/empty"

118 ```

119 </Tab>

120 </Tabs>

121 </Step>

122 

123 <Step title="使用干净的配置目录启动 Claude Code">

124 在同一个 shell 中,将 [`CLAUDE_CONFIG_DIR`](/docs/zh-CN/env-vars) 设置为一个新目录以替代 `~/.claude`,并传入 [`--setting-sources user`](/docs/zh-CN/cli-reference#cli-flags) 以关闭项目配置,例如 `.claude/settings.json`、`CLAUDE.md` 和 `.mcp.json`:

125 

126 <Tabs>

127 <Tab title="Bash or Zsh">

128 该变量仅对本次启动生效。

129 

130 ```bash theme={null}

131 CLAUDE_CONFIG_DIR=~/claude-clean/config claude --setting-sources user

132 ```

133 </Tab>

134 

135 <Tab title="PowerShell">

136 该变量在此 PowerShell 会话的剩余时间内保持设置,因此之后在同一窗口中启动的 `claude` 会继续使用这个干净目录。要恢复使用您的常用目录,请在下次启动前运行 `Remove-Item Env:CLAUDE_CONFIG_DIR`。

137 

138 ```powershell theme={null}

139 $env:CLAUDE_CONFIG_DIR = "$HOME/claude-clean/config"

140 claude --setting-sources user

141 ```

142 </Tab>

143 </Tabs>

144 

145 首次启动时,您会再次经历首次运行设置屏幕,这表明干净配置目录已生效。托管设置仍然适用;如果您使用 claude.ai 账户登录,[连接器](/docs/zh-CN/mcp#use-mcp-servers-from-claude-ai)仍会加载。

146 </Step>

147 

148 <Step title="重现问题">

149 在干净会话中重复触发问题的操作:

150 

151 * **问题消失**:原因在您的用户或项目配置中。将 `~/.claude.json` 和 `~/.claude` 中的文件逐个复制到 `~/claude-clean/config`。如果没有任何文件使问题重新出现,请在同一个 shell 中进入您的项目目录,并在不带 `--setting-sources user` 的情况下启动 Claude Code。在 Bash 或 Zsh 中,运行 `CLAUDE_CONFIG_DIR=~/claude-clean/config claude`。在 PowerShell 中,该变量仍处于设置状态,因此运行 `claude` 即可。

152 * **问题仍然存在**:原因在您的用户和项目配置之外。在会话中运行 `/status` 以检查托管设置,检查您的 shell 中的[环境变量](/docs/zh-CN/env-vars),然后参阅[故障排除](/docs/zh-CN/troubleshooting)。

153 </Step>

154</Steps>

113 155 

114<h2 id="check-common-causes">156<h2 id="check-common-causes">

115 检查常见原因157 检查常见原因


127| `settings.json` 值似乎被忽略 | 相同的键在 `settings.local.json` 中设置 | `settings.local.json` 覆盖 `settings.json`,两者都覆盖 `~/.claude/settings.json`。请参阅[设置优先级](/docs/zh-CN/settings#settings-precedence)。 |169| `settings.json` 值似乎被忽略 | 相同的键在 `settings.local.json` 中设置 | `settings.local.json` 覆盖 `settings.json`,两者都覆盖 `~/.claude/settings.json`。请参阅[设置优先级](/docs/zh-CN/settings#settings-precedence)。 |

128| Skill 没有出现在 `/skills` 中 | Skill 文件在 `.claude/skills/name.md` 而不是在文件夹中 | 使用包含 `SKILL.md` 的文件夹:`.claude/skills/name/SKILL.md`。 |170| Skill 没有出现在 `/skills` 中 | Skill 文件在 `.claude/skills/name.md` 而不是在文件夹中 | 使用包含 `SKILL.md` 的文件夹:`.claude/skills/name/SKILL.md`。 |

129| Skill 出现在 `/skills` 中但 Claude 从不调用它 | Skill 在其 frontmatter 中有 `disable-model-invocation: true`,或其描述与你表述请求的方式不匹配 | 检查 `/skills` 中的徽章:一个"user-only"标签意味着 Claude 不会自动触发它。请参阅[skill 调用](/docs/zh-CN/skills)。 |171| Skill 出现在 `/skills` 中但 Claude 从不调用它 | Skill 在其 frontmatter 中有 `disable-model-invocation: true`,或其描述与你表述请求的方式不匹配 | 检查 `/skills` 中的徽章:一个"user-only"标签意味着 Claude 不会自动触发它。请参阅[skill 调用](/docs/zh-CN/skills)。 |

130| 子目录 `CLAUDE.md` 指令似乎被忽略 | 子目录文件按需加载,而不是在会话开始时加载 | 请参阅[子目录文件何时加载](/docs/zh-CN/memory#how-claude-md-files-load)。在 v2.1.288 之前,只有 Read 工具会加载它们。 |172| 子目录 `CLAUDE.md` 指令似乎被忽略 | 子目录文件按需加载,而不是在会话开始时加载 | 要加载子目录的 `CLAUDE.md`,请让 Claude 读取该子目录中的另一个文件。请参阅[子目录文件何时加载](/docs/zh-CN/memory#how-claude-md-files-load)。 |

131| 子代理忽略 `CLAUDE.md` 指令 | 内置的 Explore 和 Plan 代理跳过 `CLAUDE.md`。自定义子代理以与主对话相同的方式加载它,除非其定义设置了 [`omitClaudeMd`](/docs/zh-CN/sub-agents#supported-frontmatter-fields) | 对于 Explore 或 Plan,在你的委派提示中重新陈述指令。对于设置 `omitClaudeMd` 的子代理,删除该字段。对于任何其他自定义子代理,将关键指令放在代理文件体中,它成为代理的系统提示。请参阅[启动时加载的内容](/docs/zh-CN/sub-agents#what-loads-at-startup)。 |173| 子代理忽略 `CLAUDE.md` 指令 | 内置的 Explore 和 Plan 代理跳过 `CLAUDE.md`。自定义子代理以与主对话相同的方式加载它,除非其定义设置了 [`omitClaudeMd`](/docs/zh-CN/sub-agents#supported-frontmatter-fields) | 对于 Explore 或 Plan,在你的委派提示中重新陈述指令。对于设置 `omitClaudeMd` 的子代理,删除该字段。对于任何其他自定义子代理,将关键指令放在代理文件体中,它成为代理的系统提示。请参阅[启动时加载的内容](/docs/zh-CN/sub-agents#what-loads-at-startup)。 |

132| 清理逻辑在会话结束时永远不运行 | 没有配置 `SessionEnd` hook | 在 `settings.json` 中添加 `SessionEnd` hook。请参阅[hook 事件列表](/docs/zh-CN/hooks#hook-events)。 |174| 清理逻辑在会话结束时永远不运行 | 没有配置 `SessionEnd` hook | 在 `settings.json` 中添加 `SessionEnd` hook。请参阅[hook 事件列表](/docs/zh-CN/hooks#hook-events)。 |

133| `.mcp.json` 中的 MCP 服务器永远不加载 | 文件在 `.claude/` 下,或其服务器位于顶级 `servers` 键下,如 VS Code 的 `mcp.json` 中那样,而不是 `mcpServers` | 项目 MCP 配置在存储库根目录下作为 `.mcp.json`,而不是在 `.claude/` 内,服务器位于 `mcpServers` 键下。请参阅[MCP 配置](/docs/zh-CN/mcp)。 |175| `.mcp.json` 中的 MCP 服务器永远不加载 | 文件在 `.claude/` 下,或其服务器位于顶级 `servers` 键下,如 VS Code 的 `mcp.json` 中那样,而不是 `mcpServers` | 项目 MCP 配置在存储库根目录下作为 `.mcp.json`,而不是在 `.claude/` 内,服务器位于 `mcpServers` 键下。请参阅[MCP 配置](/docs/zh-CN/mcp)。 |

desktop.md +53 −0

Details

913 913 

914每个条目需要 `id`、`name` 和 `sshHost`。`sshPort` 和 `sshIdentityFile` 字段是可选的。用户也可以将 `sshConfigs` 添加到他们自己的 `~/.claude/settings.json`。914每个条目需要 `id`、`name` 和 `sshHost`。`sshPort` 和 `sshIdentityFile` 字段是可选的。用户也可以将 `sshConfigs` 添加到他们自己的 `~/.claude/settings.json`。

915 915 

916如果您在 `sshHost` 中省略 `user@`,Desktop 会以每位开发者的 `~/.ssh/config` 为该主机设置的 `User` 身份连接,否则以他们在自己计算机上的用户名连接。

917 

916<h4 id="restrict-which-ssh-hosts-users-can-connect-to">918<h4 id="restrict-which-ssh-hosts-users-can-connect-to">

917 限制用户可以连接的 SSH 主机919 限制用户可以连接的 SSH 主机

918</h4>920</h4>


937 939 

938`sshHostAllowlist` 仅从托管设置中读取;用户或项目设置中的值被忽略。只有 Claude Desktop 应用遵守此设置;Claude Code CLI 和 IDE 扩展不读取它,它也不限制通过 Bash 工具运行的 `ssh` 命令。它管理 Desktop 应用连接到的主机,而不是网络出口,因此如果你需要硬边界,请将其与你的组织的网络或零信任控制配对。940`sshHostAllowlist` 仅从托管设置中读取;用户或项目设置中的值被忽略。只有 Claude Desktop 应用遵守此设置;Claude Code CLI 和 IDE 扩展不读取它,它也不限制通过 Bash 工具运行的 `ssh` 命令。它管理 Desktop 应用连接到的主机,而不是网络出口,因此如果你需要硬边界,请将其与你的组织的网络或零信任控制配对。

939 941 

942<h4 id="turn-off-local-sessions-and-distribute-ssh-connections">

943 关闭本地会话并分发 SSH 连接

944</h4>

945 

946要关闭本地会话并将 SSH 会话限制为您选择的主机,请同时部署 [`disableDesktopLocalSessions`](/docs/zh-CN/settings-reference#disabledesktoplocalsessions)、[`sshConfigs`](#pre-configure-ssh-connections-for-your-team) 和 [`sshHostAllowlist`](#restrict-which-ssh-hosts-users-can-connect-to)。

947 

948<Note>

949 此设置适用于使用 Claude 账户登录的用户。使用[第三方提供商](/docs/zh-CN/third-party-integrations)时,SSH 会话默认关闭,而设置 `sshHostAllowlist` 可能会将其打开。在部署这些键之前,请阅读 [SSH remote sessions in Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/ssh-remote-sessions)。

950</Note>

951 

952以下示例关闭本地会话、添加一个连接,并将 SSH 会话限制为该连接的主机:

953 

954```json managed-settings.json theme={null}

955{

956 "disableDesktopLocalSessions": true,

957 "sshConfigs": [

958 {

959 "id": "shared-dev-vm",

960 "name": "Shared Dev VM",

961 "sshHost": "dev.example.com"

962 }

963 ],

964 "sshHostAllowlist": ["dev.example.com"]

965}

966```

967 

968这些键适用于桌面应用。它们不会改变运行 Claude Code 的其他方式,例如 CLI、Cowork 和云端会话:

969 

970* **CLI**:这些键都不会阻止开发者在自己的计算机上运行 Claude Code CLI

971* **Cowork**:这些键都不适用于 [Cowork](https://claude.com/docs/cowork/overview) 会话或 Cowork 定时任务

972* **云端会话**:这些键都不会改变[云端会话](#cloud-sessions)是否可用。要关闭云端会话,请使用 [Admin console 控制](#admin-console-controls)下的 **Cloud sessions** 设置。

973 

974在调整示例时,请检查主机名和 Desktop 版本:

975 

976* **主机名**:确保 `sshHostAllowlist` 中的某个模式与每个 `sshConfigs` 条目的主机名(不含 `user@`)匹配,否则开发者无法连接到该主机。有关 Desktop 如何匹配主机名,请参阅[限制用户可以连接的 SSH 主机](#restrict-which-ssh-hosts-users-can-connect-to)。

977* **版本**:`disableDesktopLocalSessions` 需要 Claude Desktop v1.37937.0 或更高版本

978 

979将这三个键放在一个[托管来源](/docs/zh-CN/managed-settings#how-claude-code-combines-managed-sources)中,即您提供的最高优先级来源。如果您提供[服务器托管设置](/docs/zh-CN/server-managed-settings),还请在每台计算机上最高优先级的 MDM 策略或托管设置文件中保留这三个键的副本。Desktop 在启动时获取服务器托管设置,在获取成功之前,适用的是计算机上的副本。

980 

981要确认设置已生效,请检查开发者的计算机:

982 

983<Steps>

984 <Step title="检查环境下拉菜单">

985 退出并重新打开 Desktop,然后在输入框中打开环境下拉菜单。**Local** 呈灰显状态,**Shared Dev VM** 出现在 **SSH** 下。如果 **Local** 仍然可用,请检查 Desktop 版本、文件是否为有效的 JSON,以及计算机读取的是哪个托管来源。

986 </Step>

987 

988 <Step title="添加一个不在允许列表中的主机">

989 使用不在允许列表中的主机名(例如 `other.example.com`)[添加 SSH 连接](#ssh-sessions)。Desktop 会保存该连接但拒绝连接,并提示您的组织设置不允许该连接。

990 </Step>

991</Steps>

992 

940<h2 id="enterprise-configuration">993<h2 id="enterprise-configuration">

941 企业配置994 企业配置

942</h2>995</h2>

env-vars.md +1 −1

Details

256| `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` | 设置为 `1` 可禁用所有后台任务功能,包括 Bash 和子代理工具上的 `run_in_background` 参数、自动后台化以及 Ctrl+B 快捷键 |256| `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` | 设置为 `1` 可禁用所有后台任务功能,包括 Bash 和子代理工具上的 `run_in_background` 参数、自动后台化以及 Ctrl+B 快捷键 |

257| `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_DEFAULT` | 设置为 `1` 可阻止 Claude Code 将缺少 `Content-Type` 标头或该标头为空的 [Amazon Bedrock](/docs/zh-CN/amazon-bedrock) 流式响应视为 Amazon Bedrock 的二进制事件流。默认情况下,Claude Code 假定网关从一个未经其他修改的响应中丢弃了该标头,因此会解码响应体,流式传输得以继续工作。仅当网关还会将流重新作为服务器发送事件输出时才设置此变量;Claude Code 随后会将没有该标头的响应体作为服务器发送事件读取。需要 Claude Code v2.1.239 或更高版本 |257| `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_DEFAULT` | 设置为 `1` 可阻止 Claude Code 将缺少 `Content-Type` 标头或该标头为空的 [Amazon Bedrock](/docs/zh-CN/amazon-bedrock) 流式响应视为 Amazon Bedrock 的二进制事件流。默认情况下,Claude Code 假定网关从一个未经其他修改的响应中丢弃了该标头,因此会解码响应体,流式传输得以继续工作。仅当网关还会将流重新作为服务器发送事件输出时才设置此变量;Claude Code 随后会将没有该标头的响应体作为服务器发送事件读取。需要 Claude Code v2.1.239 或更高版本 |

258| `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_GUARD` | 设置为 `1` 可跳过对 [Amazon Bedrock](/docs/zh-CN/amazon-bedrock) 流式响应是否带有 `application/vnd.amazon.eventstream` content-type 的检查。未设置此变量时,如果响应带有不同的 content-type,Claude Code 会使请求失败,并显示指明该类型的错误,这表示[网关或代理正在转换响应](/docs/zh-CN/amazon-bedrock#streaming-errors-behind-a-gateway-or-proxy)。请配置网关以原样转发 `Content-Type` 标头和响应体,而不是设置此变量。需要 Claude Code v2.1.208 或更高版本 |258| `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_GUARD` | 设置为 `1` 可跳过对 [Amazon Bedrock](/docs/zh-CN/amazon-bedrock) 流式响应是否带有 `application/vnd.amazon.eventstream` content-type 的检查。未设置此变量时,如果响应带有不同的 content-type,Claude Code 会使请求失败,并显示指明该类型的错误,这表示[网关或代理正在转换响应](/docs/zh-CN/amazon-bedrock#streaming-errors-behind-a-gateway-or-proxy)。请配置网关以原样转发 `Content-Type` 标头和响应体,而不是设置此变量。需要 Claude Code v2.1.208 或更高版本 |

259| `CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF` | 设置为 `1` 可在 [supervisor](/docs/zh-CN/agent-view#the-supervisor-process) 停止、重启或更新该会话的进程时,停止[后台会话](/docs/zh-CN/agent-view)正在运行的后台 shell 命令、动态工作流以及(自 v2.1.198 起)后台子代理,而不是将它们移交给该会话的下一个进程。仅影响该移交:使用 `←` 或 [`/background`](/docs/zh-CN/agent-view#from-inside-a-session) 将会话转入后台时,仍会转移进行中的工作,而 `CLAUDE_DISABLE_ADOPT` 会同时关闭这两者。需要 Claude Code v2.1.196 或更高版本 |259| `CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF` | 设置为 `1` 后,当 [supervisor](/docs/zh-CN/agent-view#the-supervisor-process) 停止、重启或更新[后台会话](/docs/zh-CN/agent-view)的进程时,该会话正在运行的后台 shell 命令、动态工作流以及(从 v2.1.198 起)后台子代理会被停止,而不是移交给该会话的下一个进程。仅影响该移交:使用 `←` 或 [`/background`](/docs/zh-CN/agent-view#from-inside-a-session) 将会话转入后台时,仍会保留正在进行的后台工作,而 `CLAUDE_DISABLE_ADOPT` 会同时关闭这两者。需要 Claude Code v2.1.196 或更高版本 |

260| `CLAUDE_CODE_DISABLE_BG_SHELL_PRESSURE_REAP` | 设置为 `1` 可阻止 Claude Code 在内存压力下终止[后台 shell 命令](/docs/zh-CN/interactive-mode#background-bash-commands)。默认情况下,在 macOS 和 Linux 上,当操作系统报告严重内存压力,且会话已空闲 30 分钟、没有轮次或子代理在运行时,Claude Code 会终止后台 shell。Windows 没有内存压力信号,因此此变量在 Windows 上不起作用。需要 Claude Code v2.1.193 或更高版本 |260| `CLAUDE_CODE_DISABLE_BG_SHELL_PRESSURE_REAP` | 设置为 `1` 可阻止 Claude Code 在内存压力下终止[后台 shell 命令](/docs/zh-CN/interactive-mode#background-bash-commands)。默认情况下,在 macOS 和 Linux 上,当操作系统报告严重内存压力,且会话已空闲 30 分钟、没有轮次或子代理在运行时,Claude Code 会终止后台 shell。Windows 没有内存压力信号,因此此变量在 Windows 上不起作用。需要 Claude Code v2.1.193 或更高版本 |

261| `CLAUDE_CODE_DISABLE_BUNDLED_SKILLS` | 设置为 `1` 可禁用 Claude Code 随附的 [skill](/docs/zh-CN/skills) 和工作流:随附 skill 和工作流会被完全移除,而 `/init` 等内置命令仍可输入,但会对模型隐藏。`/doctor` 与内置命令一样仍可输入;请改用 `DISABLE_DOCTOR_COMMAND` 将其隐藏。来自插件、`.claude/skills/` 和 `.claude/commands/` 的 skill 不受影响。等同于 [`disableBundledSkills`](/docs/zh-CN/settings-reference#disablebundledskills) 设置 |261| `CLAUDE_CODE_DISABLE_BUNDLED_SKILLS` | 设置为 `1` 可禁用 Claude Code 随附的 [skill](/docs/zh-CN/skills) 和工作流:随附 skill 和工作流会被完全移除,而 `/init` 等内置命令仍可输入,但会对模型隐藏。`/doctor` 与内置命令一样仍可输入;请改用 `DISABLE_DOCTOR_COMMAND` 将其隐藏。来自插件、`.claude/skills/` 和 `.claude/commands/` 的 skill 不受影响。等同于 [`disableBundledSkills`](/docs/zh-CN/settings-reference#disablebundledskills) 设置 |

262| `CLAUDE_CODE_DISABLE_CFC_PROMPT` | 设置为 `1` 可保留 [Claude in Chrome](/docs/zh-CN/chrome) 浏览器工具可用,同时省略系统提示词中的 Chrome 部分以及 `/claude-in-chrome` [随附 skill](/docs/zh-CN/skills#bundled-skills)。适用于嵌入 Claude Code 并提供自己的浏览器指导的宿主。需要 Claude Code v2.1.257 或更高版本 |262| `CLAUDE_CODE_DISABLE_CFC_PROMPT` | 设置为 `1` 可保留 [Claude in Chrome](/docs/zh-CN/chrome) 浏览器工具可用,同时省略系统提示词中的 Chrome 部分以及 `/claude-in-chrome` [随附 skill](/docs/zh-CN/skills#bundled-skills)。适用于嵌入 Claude Code 并提供自己的浏览器指导的宿主。需要 Claude Code v2.1.257 或更高版本 |

errors.md +6 −2

Details

4039 4039 

4040**要做什么:**4040**要做什么:**

4041 4041 

4042* 运行`claude plugin marketplace remove <name>`。这也会卸载从 marketplace 安装的插件并删除其保存的数据4042* 要保留某个设置文件通过`"source": "settings"`内联声明的市场,请在删除旧名称之前先重命名它,因为删除市场也会从您的设置文件中删除其条目。Claude Code v2.1.292 或更高版本会在消息中列出以下步骤:

4043* 要保留 marketplace,请等待其维护者重命名它,然后运行`claude plugin marketplace update <name>`4043 1. 在每个于`extraKnownMarketplaces`下列出该市场的设置文件中,为该条目的键及其`source.name`指定同一个新的纯 ASCII 名称,且该名称看起来不像官方名称。如果管理员通过您组织的托管设置添加该市场,则由管理员执行此步骤

4044 2. 运行`claude plugin marketplace remove <old-name>`,或在`/plugin`的**Marketplaces**选项卡中删除旧名称。这也会卸载其插件并删除其数据、选项和机密

4045 3. 再次启动 Claude Code;如果该文件是项目的设置文件,请在项目文件夹中启动。然后从重命名后的市场安装插件

4046* 要保留任何其他市场,请等待其维护者重命名它,然后运行`claude plugin marketplace update <name>`

4047* 要删除该市场,运行`claude plugin marketplace remove <name>`。这也会卸载从该市场安装的插件并删除其数据、选项和机密

4044* 如果您发布 marketplace,在您的`marketplace.json`中重命名它;用户随后更新 marketplace 而不是删除它4048* 如果您发布 marketplace,在您的`marketplace.json`中重命名它;用户随后更新 marketplace 而不是删除它

4045 4049 

4046<h3 id="marketplace-is-already-added-from-a-different-source">4050<h3 id="marketplace-is-already-added-from-a-different-source">

hooks.md +27 −5

Details

3320 WorktreeCreate3320 WorktreeCreate

3321</h3>3321</h3>

3322 3322 

3323在创建 worktree 时运行,无论是通过 `claude --worktree`、通过[使用 `isolation: "worktree"` 的子代理](/docs/zh-CN/sub-agents#choose-the-subagent-scope),还是为 Claude Code 隔离在其自身 worktree 中的[后台会话](/docs/zh-CN/agent-view#how-file-edits-are-isolated)创建。默认情况下,Claude Code 使用 `git worktree` 创建隔离的工作副本。配置 WorktreeCreate hook 会替换此默认的 git 行为,让您可以使用其他版本控制系统,例如 SVN、Perforce 或 Mercurial。3323在 Claude Code 于以下等情况下创建 worktree 时运行:

3324 

3325* 您使用 `claude --worktree` 启动会话

3326* Claude 在会话期间创建 worktree,并通过 [`EnterWorktree`](/docs/zh-CN/tools-reference) 工具切换进去

3327* [子代理使用 `isolation: "worktree"`](/docs/zh-CN/sub-agents#choose-the-subagent-scope)

3328* [工作流](/docs/zh-CN/workflows#migrate-many-files-in-parallel)在其自己的 worktree 中运行 Agent

3329* Claude Code 将[后台会话](/docs/zh-CN/agent-view#how-file-edits-are-isolated)隔离在其自己的 worktree 中

3330* `worktree` 模式下的 [`claude remote-control`](/docs/zh-CN/remote-control#start-a-remote-control-session) 在其自己的 worktree 中启动会话

3331 

3332当 Claude 通过 Bash 工具运行 `git worktree add` 而不是调用 `EnterWorktree` 时,您的 WorktreeCreate hook 不会运行。要检查或阻止该命令,请添加一个使用 `Bash` 匹配器的 [`PreToolUse`](#pretooluse) hook。

3333 

3334默认情况下,Claude Code 使用 `git worktree` 创建隔离的工作副本。配置 WorktreeCreate hook 会替换这种默认的 git 行为,让您可以使用其他版本控制系统,例如 SVN、Perforce 或 Mercurial。

3324 3335 

3325由于该 hook 完全替换了默认行为,因此不会处理 [`.worktreeinclude`](/docs/zh-CN/worktrees#copy-gitignored-files-into-worktrees)。如果需要将 `.env` 等本地配置文件复制到新的 worktree 中,请在 hook 脚本中完成。3336由于该 hook 完全替换了默认行为,因此不会处理 [`.worktreeinclude`](/docs/zh-CN/worktrees#copy-gitignored-files-into-worktrees)。如果需要将 `.env` 等本地配置文件复制到新的 worktree 中,请在 hook 脚本中完成。

3326 3337 


3389* 您退出交互式 [worktree 会话](/docs/zh-CN/worktrees#start-claude-in-a-worktree),并在 Claude Code 提示时选择删除该 worktree3400* 您退出交互式 [worktree 会话](/docs/zh-CN/worktrees#start-claude-in-a-worktree),并在 Claude Code 提示时选择删除该 worktree

3390* 您退出一个尚未[命名](/docs/zh-CN/sessions#name-your-sessions)的交互式 worktree 会话,Claude Code 未发现已更改或未跟踪的文件,并在不提示的情况下删除该 worktree3401* 您退出一个尚未[命名](/docs/zh-CN/sessions#name-your-sessions)的交互式 worktree 会话,Claude Code 未发现已更改或未跟踪的文件,并在不提示的情况下删除该 worktree

3391* 您删除一个在该 worktree 中运行的[后台会话](/docs/zh-CN/agent-view#what-deleting-a-session-removes)3402* 您删除一个在该 worktree 中运行的[后台会话](/docs/zh-CN/agent-view#what-deleting-a-session-removes)

3403* 您在会话期间要求 Claude 退出并删除 worktree,Claude 使用 [`ExitWorktree`](/docs/zh-CN/tools-reference) 工具将其删除

3404* 由 [`claude remote-control`](/docs/zh-CN/remote-control#start-a-remote-control-session) 以 `worktree` 模式启动的会话在未崩溃的情况下结束,且 Claude Code 在其 worktree 中未发现任何已更改或未跟踪的文件,也没有新的提交

3405* 您停止 `claude remote-control` 时,它以 `worktree` 模式启动的会话仍在运行,且 Claude Code 在这些会话的 worktree 中未发现任何已更改或未跟踪的文件,也没有新的提交

3406 

3407当子代理或工作流 Agent 完成时,Claude Code 会保留您的 WorktreeCreate hook 为其创建的 worktree,并且不会运行您的 WorktreeRemove hook。工作完成后,请自行删除这些 worktree。

3408 

3409对于 `ExitWorktree` 调用或 `claude remote-control` 清理,Claude Code 在运行您的 hook 之前不会提示您。除非调用传入 [`discard_changes: true`](/docs/zh-CN/agent-sdk/typescript#exitworktree),否则 `ExitWorktree` 会拒绝删除由 hook 创建的 worktree,这使您的 hook 成为该路径上的最后一道检查。

3392 3410 

3393Claude Code 使用 git 查找已更改或未跟踪的文件,因此对于不是 git 检出或不位于 git 检出内的 worktree,即使目录中有未提交的工作,它也找不到任何内容。请在 WorktreeRemove hook 删除任何内容之前检查此类工作。3411Claude Code 使用 git 查找已更改或未跟踪的文件,因此对于不是 git 检出或不位于 git 检出内的 worktree,即使目录中有未提交的工作,它也找不到任何内容。请在 WorktreeRemove hook 删除任何内容之前检查此类工作。

3394 3412 

3395对于基于 git 的 worktree,Claude Code 会使用 `git worktree remove` 自动处理清理。如果您配置了 WorktreeCreate hook,请将其与 WorktreeRemove hook 配对使用,以控制对其所创建 worktree 的清理:3413对于基于 git 的 worktree,Claude Code 会使用 `git worktree remove` 自动处理清理。如果您配置了 WorktreeCreate hook,请将其与 WorktreeRemove hook 配对使用以控制清理:

3396 3414 

3397* **没有 WorktreeRemove hook**:当您退出 worktree 会话、Claude Code 删除该 worktree 时,它会回退为对您的 WorktreeCreate hook 返回的路径执行 `git worktree remove --force`,因此 git 能识别的 worktree 会被删除。git 无法识别的 worktree(例如您的 hook 使用非 git 版本控制系统创建的 worktree)会保留在磁盘上。有关删除[后台会话](/docs/zh-CN/agent-view#what-deleting-a-session-removes)时如何处理由 hook 创建的 worktree,请参阅 agent view 的删除规则。3415* **没有 WorktreeRemove hook**:对于退出时或通过 `ExitWorktree` 进行的删除,Claude Code 会回退到 git;当 `claude remote-control` 执行清理时,则保留 worktree:

3416 * **您退出 worktree 会话,或 Claude 调用 `ExitWorktree`**:Claude Code 会像 `git worktree remove --force` 那样删除您的 WorktreeCreate hook 返回的路径,因此 git 能识别的 worktree 会被删除。git 无法识别的 worktree(例如您的 hook 使用非 git 版本控制系统创建的 worktree)会保留在磁盘上。

3417 * **`claude remote-control` 清理会话的 worktree**:worktree 保留在磁盘上,运行 `claude remote-control` 的终端会显示 `worktree removal failed, kept: <path>`。

3418 * **您删除后台会话**:请参阅[删除会话会移除哪些内容](/docs/zh-CN/agent-view#what-deleting-a-session-removes)。

3398* **Hook 以 0 退出**:该 worktree 被视为已删除。Claude Code 不会从 hook 读取其他任何内容,因此请确保您的 hook 已删除该目录。3419* **Hook 以 0 退出**:该 worktree 被视为已删除。Claude Code 不会从 hook 读取其他任何内容,因此请确保您的 hook 已删除该目录。

3399* **Hook 以非零值退出**:如果之后 `worktree_path` 处的目录仍然存在,则删除失败,worktree 保留在磁盘上,且不会回退到 git。在以非零值退出之前已删除目录的 hook 被视为已删除。有关如何报告失败,请参阅 [WorktreeRemove 输入](#worktreeremove-input)。3420* **Hook 以非零值退出**:如果之后 `worktree_path` 处的目录仍然存在,则删除失败,worktree 保留在磁盘上,且不会回退到 git。在以非零值退出之前已删除目录的 hook 被视为已删除。有关如何报告失败,请参阅 [WorktreeRemove 输入](#worktreeremove-input)。

3400 3421 


3402 3423 

3403Claude Code 会丢弃 WorktreeRemove hook 的 [JSON 输出字段](#json-output),例如 `systemMessage` 和 `continue`。3424Claude Code 会丢弃 WorktreeRemove hook 的 [JSON 输出字段](#json-output),例如 `systemMessage` 和 `continue`。

3404 3425 

3405对于后台会话删除,Claude Code 会在运行 hook 之前验证存储的 worktree 路径,并拒绝本身是符号链接或经过仓库根目录下符号链接的路径。对于仍包含文件的 worktree,只有当您在 [agent view](/docs/zh-CN/agent-view#what-deleting-a-session-removes) 中确认删除时,hook 才会运行;对于此类 worktree,[`claude rm`](/docs/zh-CN/agent-view#manage-sessions-from-the-shell) 会保留会话和 worktree。在 v2.1.216 之前,hook 会在未经这些检查的情况下对存储的路径运行。3426对于后台会话删除,Claude Code 会在运行 hook 之前验证存储的 worktree 路径,并拒绝本身是符号链接或经过仓库根目录下符号链接的路径。在这条路径上,只有当您在 [agent view](/docs/zh-CN/agent-view#what-deleting-a-session-removes) 中确认删除时,hook 才会针对仍包含文件的 worktree 运行;对于这样的 worktree,[`claude rm`](/docs/zh-CN/agent-view#manage-sessions-from-the-shell) 会改为保留会话和 worktree。在 v2.1.216 之前,hook 会在不进行这些检查的情况下针对存储的路径运行。

3406 3427 

3407Claude Code 会将 WorktreeCreate 返回的路径作为 hook 输入中的 `worktree_path` 传递。此示例读取该路径并删除目录:3428Claude Code 会将 WorktreeCreate 返回的路径作为 hook 输入中的 `worktree_path` 传递。此示例读取该路径并删除目录:

3408 3429 


3443 3464 

3444* worktree 保留在磁盘上,hook 的命令和 stderr 会写入[调试日志](#debug-hooks)。3465* worktree 保留在磁盘上,hook 的命令和 stderr 会写入[调试日志](#debug-hooks)。

3445* 如果您正在删除后台会话,该会话也会保留。[agent view](/docs/zh-CN/agent-view#what-deleting-a-session-removes) 中的拒绝消息会报告 hook 的结束方式(例如 `exited 1`),引用其 stderr 的开头部分,并说明再次删除该会话是否仍会删除该目录。3466* 如果您正在删除后台会话,该会话也会保留。[agent view](/docs/zh-CN/agent-view#what-deleting-a-session-removes) 中的拒绝消息会报告 hook 的结束方式(例如 `exited 1`),引用其 stderr 的开头部分,并说明再次删除该会话是否仍会删除该目录。

3467* 如果当时 `claude remote-control` 正在清理会话的 worktree,运行它的终端会显示 `worktree removal failed, kept: <path>`。

3446 3468 

3447<h3 id="precompact">3469<h3 id="precompact">

3448 PreCompact3470 PreCompact


4049 4071 

4050您的 `content` 会替换用户的整个 `content` 对象,因此请包含您未更改的字段。请同时返回 `action`,因为 Claude Code 会忽略没有 `action` 的 `hookSpecificOutput`。4072您的 `content` 会替换用户的整个 `content` 对象,因此请包含您未更改的字段。请同时返回 `action`,因为 Claude Code 会忽略没有 `action` 的 `hookSpecificOutput`。

4051 4073 

4052当用户拒绝或取消时,ElicitationResult hook 也会运行,并且您的 `action` 会替换用户的 `action`。在返回 `accept` 之前,请检查输入的 `action` 是否为 `accept`,否则您的 hook 会将已拒绝的请求变为已接受的请求。此脚本在用户接受时进行相同的更改,保留其他字段,否则不打印任何内容:4074当用户拒绝或取消时,ElicitationResult hook 也会运行,并且您的 `action` 会替换用户的。在返回 `accept` 之前,请检查输入中的 `action` 是否为 `accept`,否则您的 hook 会将被拒绝的请求变成被接受的请求。此脚本在用户接受时进行相同的更改,保留其他字段,否则不输出任何内容:

4053 4075 

4054```bash theme={null}4076```bash theme={null}

4055#!/bin/bash4077#!/bin/bash

Details

50 常见设置50 常见设置

51</h2>51</h2>

52 52 

53权限模式决定 Claude 是否在操作前询问,[Bash 沙箱](/docs/zh-CN/sandboxing)和外部[隔离边界](/docs/zh-CN/sandbox-environments)决定操作运行后可以到达什么。下表将目标与获得该目标的标志或设置以及所需的隔离配对,作为起点。[可用模式](#available-modes)列出了在每种模式下无需提示即可运行的内容。53权限模式决定 Claude 在执行操作之前是否询问,而 [Bash 沙箱](/docs/zh-CN/sandboxing)和外层[隔离边界](/docs/zh-CN/sandbox-environments)决定操作运行后能够访问哪些内容。下表每一行都将一个目标与实现该目标的标志或设置以及所需的隔离配对,可作为起点。[可用模式](#available-modes)列出了每种模式下无需提示即可运行的操作。

54 54 

55| 您想要 | 从以下开始 | 需要的隔离 | 注意 |55| 您想要 | 起步方式 | 所需隔离 | 说明 |

56| :- | :- | :- | :- |56| :- | :- | :- | :- |

57| 自己审查每个操作 | Manual 模式:`claude --permission-mode default` | 无 | 敏感工作、不熟悉的代码 |57| 亲自审查每个操作 | 手动模式:`claude --permission-mode default` | 无 | 敏感工作、不熟悉的代码 |

58| 在本地迭代,更少提示,无分类器 | Manual 模式加上 Bash 沙箱在[自动允许模式](/docs/zh-CN/sandboxing#sandbox-modes):`claude --permission-mode default`,然后运行 `/sandbox` 并选择自动允许 | 内置 Bash 沙箱,在 macOS、Linux 和 WSL2 上 | 拒绝规则仍然适用,询问规则命名命令(如 `Bash(git push *)`)仍然会提示。要从设置文件启用沙箱,请改为将 [`sandbox.enabled`](/docs/zh-CN/settings-reference#sandbox-enabled) 设置为 `true` |58| 在本地迭代,减少提示,且不使用分类器 | 手动模式加上处于[自动允许模式](/docs/zh-CN/sandboxing#sandbox-modes)的 Bash 沙箱:`claude --permission-mode default`,然后运行 `/sandbox` 并选择自动允许 | 内置 Bash 沙箱,适用于 macOS、Linux 和 WSL2 | 拒绝规则仍然适用,指定了命令的询问规则(例如 `Bash(git push *)`)仍会提示。[自动允许模式](/docs/zh-CN/sandboxing#auto-allow-mode)介绍了其他可能触发提示的命令。若要改为通过设置文件启用沙箱,请将 [`sandbox.enabled`](/docs/zh-CN/settings-reference#sandbox-enabled) 设为 `true` |

59| 在更改任何内容前探索 | `claude --permission-mode plan` | 无 | Claude Code 阻止编辑,直到您[批准计划](#review-and-approve-a-plan) |59| 在进行任何更改之前先探索 | `claude --permission-mode plan` | 无 | 在您[批准计划](#review-and-approve-a-plan)之前,Claude Code 会阻止编辑 |

60| 在自动模式下无需干预工作 | `claude --permission-mode auto`,v2.1.283 或更高版本的[内置起始权限模式](#which-mode-a-session-starts-in) | 无;沙箱或容器增加深度防御 | 需要[支持的模型](#eliminate-prompts-with-auto-mode),您的组织可以[关闭自动模式](#eliminate-prompts-with-auto-mode) |60| 在自动模式下免干预工作 | `claude --permission-mode auto`,即 v2.1.283 或更高版本的[内置起始权限模式](#which-mode-a-session-starts-in) | 无;沙箱或容器可提供纵深防御 | 需要[受支持的模型](#eliminate-prompts-with-auto-mode),并且您的组织可以[关闭自动模式](#eliminate-prompts-with-auto-mode) |

61| 在 CI 中使用精确允许列表运行 | `claude -p "run the test suite" --permission-mode dontAsk --allowedTools "Bash(npm test)" "Read"` | 无,超出您的 CI 运行器提供的 | [云会话](/docs/zh-CN/claude-code-on-the-web)忽略设置文件中的 `dontAsk` |61| 在 CI 中使用精确的允许列表运行 | `claude -p "run the test suite" --permission-mode dontAsk --allowedTools "Bash(npm test)" "Read"` | 除 CI 运行器所提供的隔离外无需其他隔离 | [云端会话](/docs/zh-CN/claude-code-on-the-web)会忽略来自设置文件的 `dontAsk` |

62| 在容器内完全无人值守运行 | `claude -p "<prompt>" --dangerously-skip-permissions` | 必需:容器、虚拟机或[沙箱运行时](/docs/zh-CN/sandbox-environments#sandbox-runtime);在 Linux 和 macOS 上,以[非 root 用户](#skip-all-checks-with-bypasspermissions-mode)身份运行 | 云会话忽略设置文件中的此模式。在此 `-p` 运行中,[仍会提示的少数调用](#skip-all-checks-with-bypasspermissions-mode)被拒绝 |62| 在容器内完全无人值守地运行 | `claude -p "<prompt>" --dangerously-skip-permissions` | 必需:容器、虚拟机或[沙箱运行时](/docs/zh-CN/sandbox-environments#sandbox-runtime);在 Linux 和 macOS 上,请以[非 root 用户](#skip-all-checks-with-bypasspermissions-mode)身份运行 | 云端会话会忽略来自设置文件的此模式。在此 `-p` 运行中,[本来仍会触发提示的少数调用](#skip-all-checks-with-bypasspermissions-mode)会改为直接被拒绝,而不会提示 |

63 63 

64Bash 沙箱和自动模式独立工作并结合,除了在[沙箱模式](/docs/zh-CN/sandboxing#sandbox-modes)下列出的例外。有关完整交互,请参阅[沙箱化如何与权限和权限模式相关](/docs/zh-CN/sandboxing#how-sandboxing-relates-to-permissions-and-permission-modes)和[隔离如何与权限模式相关](/docs/zh-CN/sandbox-environments#how-isolation-relates-to-permission-modes)。64Bash 沙箱和自动模式彼此独立运作,也可以组合使用,例外情况列于[沙箱模式](/docs/zh-CN/sandboxing#sandbox-modes)中。有关完整的交互方式,请参阅[沙箱隔离与权限及权限模式的关系](/docs/zh-CN/sandboxing#how-sandboxing-relates-to-permissions-and-permission-modes)和[隔离与权限模式的关系](/docs/zh-CN/sandbox-environments#how-isolation-relates-to-permission-modes)。

65 65 

66<h2 id="which-mode-a-session-starts-in">66<h2 id="which-mode-a-session-starts-in">

67 会话在哪个模式下启动67 会话在哪个模式下启动

permissions.md +1 −0

Details

744* 内容范围的 ask 规则(如 `Bash(git push *)`)仍然强制提示744* 内容范围的 ask 规则(如 `Bash(git push *)`)仍然强制提示

745* 显式 deny 规则仍然适用745* 显式 deny 规则仍然适用

746* 针对[关键路径](/docs/zh-CN/permission-modes#critical-paths)的 `rm` 或 `rmdir` 命令仍然通过常规权限流程746* 针对[关键路径](/docs/zh-CN/permission-modes#critical-paths)的 `rm` 或 `rmdir` 命令仍然通过常规权限流程

747* 其他沙箱化的命令也可能通过常规权限流程,如[自动允许模式](/docs/zh-CN/sandboxing#auto-allow-mode)中所述

747 748 

748不会在沙箱中运行的命令(如排除的命令)按照通常的方式遵守裸 `Bash` ask 规则。请参见[沙箱模式](/docs/zh-CN/sandboxing#sandbox-modes)以更改此行为。749不会在沙箱中运行的命令(如排除的命令)按照通常的方式遵守裸 `Bash` ask 规则。请参见[沙箱模式](/docs/zh-CN/sandboxing#sandbox-modes)以更改此行为。

749 750 

Details

55* **以 `claudeai-` 开头的名称**:为托管在 claude.ai 上的 marketplace 保留。`claude plugin marketplace add` 拒绝任何其他使用一个的 marketplace,错误为 `Cannot add marketplace "<name>": names starting with "claudeai-" are reserved for marketplaces hosted on claude.ai`。55* **以 `claudeai-` 开头的名称**:为托管在 claude.ai 上的 marketplace 保留。`claude plugin marketplace add` 拒绝任何其他使用一个的 marketplace,错误为 `Cannot add marketplace "<name>": names starting with "claudeai-" are reserved for marketplaces hosted on claude.ai`。

56* **已注册 GitHub 市场的下载文件夹名称 `<owner>-<repo>`**:对于从 `github` 源(例如 `acme/x-tools`)添加的市场,无论该市场自身的 `name` 是什么,Claude Code 都会通过名为 `acme-x-tools` 的文件夹下载它。当该市场以 `acme-x-tools` 以外的名称注册时,`claude plugin marketplace add` 会在下载另一个名为 `acme-x-tools` 的市场后拒绝它,并报告 `Can't use the marketplace name "acme-x-tools"`。此检查需要 Claude Code v2.1.290 或更高版本。56* **已注册 GitHub 市场的下载文件夹名称 `<owner>-<repo>`**:对于从 `github` 源(例如 `acme/x-tools`)添加的市场,无论该市场自身的 `name` 是什么,Claude Code 都会通过名为 `acme-x-tools` 的文件夹下载它。当该市场以 `acme-x-tools` 以外的名称注册时,`claude plugin marketplace add` 会在下载另一个名为 `acme-x-tools` 的市场后拒绝它,并报告 `Can't use the marketplace name "acme-x-tools"`。此检查需要 Claude Code v2.1.290 或更高版本。

57 57 

58当已注册的 marketplace 因其名称模仿官方名称而停止加载时,`claude plugin list` 和 `/plugin` 报告 `Claude Code refuses the marketplace name "<name>"`。该消息告诉你删除该 marketplace。删除它也会卸载其插件并删除其保存的数据。此命名拒绝消息需要 Claude Code v2.1.282 或更高版本。58当已注册的市场因其名称模仿官方市场而停止加载时,`claude plugin list` 和 `/plugin` 会报告 `Claude Code refuses the marketplace name "<name>"`。该消息会提示您删除该市场。删除它也会卸载其插件,并删除这些插件的数据、选项和密钥。此命名拒绝消息需要 Claude Code v2.1.282 或更高版本。

59 

60如果某个设置文件以内联方式声明了该市场,该消息会提示您在删除旧名称之前先重命名其条目。有关步骤,请参阅 [Claude Code refuses the marketplace name](/docs/zh-CN/errors#claude-code-refuses-the-marketplace-name)。该消息在 Claude Code v2.1.292 或更高版本中会列出这些步骤。

59 61 

60<h2 id="top-level-fields">62<h2 id="top-level-fields">

61 顶级字段63 顶级字段

Details

88| [`prompt.submit`](/docs/zh-CN/plugins/mods/events#rewrite-or-add-to-a-prompt) | 提交提示词时 | `next({ ...e, text })`、`next({ ...e, context })` 或 `{ drop: reason }` |88| [`prompt.submit`](/docs/zh-CN/plugins/mods/events#rewrite-or-add-to-a-prompt) | 提交提示词时 | `next({ ...e, text })`、`next({ ...e, context })` 或 `{ drop: reason }` |

89| `prompt.fill`, `prompt.suggest` | 文本即将作为草稿或暗色建议进入输入框 | 更改了文本的 `next(e)` |89| `prompt.fill`, `prompt.suggest` | 文本即将作为草稿或暗色建议进入输入框 | 更改了文本的 `next(e)` |

90| `prompt.edit` | 用户编辑输入框 | `next(e)` |90| `prompt.edit` | 用户编辑输入框 | `next(e)` |

91| `prompt.autocomplete` | 用户在输入框中输入内容,且光标处有一个词结束。`e.token` 即该词。Claude Code 不会等待该 hook:其自身的自动补全行会先显示。 | `{ suggestions }`,一个由 `{ text, label, description }` 行组成的列表,显示在 Claude Code 自身的行下方。选择某一行会用其 `text` 覆盖该词。 |

91| `prompt.compose` | Claude Code 渲染系统提示词 | `{ sections }`,一个按发送顺序排列的 `{ id, text, scope }` 列表 |92| `prompt.compose` | Claude Code 渲染系统提示词 | `{ sections }`,一个按发送顺序排列的 `{ id, text, scope }` 列表 |

92| [`prompt.section`](/docs/zh-CN/plugins/mods/events#rewrite-or-add-to-a-prompt) | 系统提示词的每个命名部分一次。`e.name` 是该部分在 `prompt.compose` 中的 `id`。 | `{ text }`,或 `{ text: null }` 以省略该部分 |93| [`prompt.section`](/docs/zh-CN/plugins/mods/events#rewrite-or-add-to-a-prompt) | 系统提示词的每个命名部分一次。`e.name` 是该部分在 `prompt.compose` 中的 `id`。 | `{ text }`,或 `{ text: null }` 以省略该部分 |

93| [`prompt.context`](/docs/zh-CN/plugins/mods/events#rewrite-or-add-to-a-prompt) | 每个对话一次,用于随第一条消息发送的上下文 | `{ blocks }` |94| [`prompt.context`](/docs/zh-CN/plugins/mods/events#rewrite-or-add-to-a-prompt) | 每个对话一次,用于随第一条消息发送的上下文 | `{ blocks }` |

Details

64 | `--remote-control-session-name-prefix <prefix>` | 当未设置显式名称时,自动生成的会话名称的前缀。默认为您机器的主机名,生成类似 `myhost-graceful-unicorn` 的名称。设置 `CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX` 可获得相同效果。 |64 | `--remote-control-session-name-prefix <prefix>` | 当未设置显式名称时,自动生成的会话名称的前缀。默认为您机器的主机名,生成类似 `myhost-graceful-unicorn` 的名称。设置 `CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX` 可获得相同效果。 |

65 | `-c`, `--continue` | 恢复此目录中最后一个服务器启动的会话,而不是创建新会话。请参阅[停止服务器后恢复会话](#resume-sessions-after-stopping-the-server)。不能与 `--session-id`、`--spawn`、`--capacity` 或 `--create-session-in-dir` 结合使用。需要 Claude Code v2.1.200 或更高版本。 |65 | `-c`, `--continue` | 恢复此目录中最后一个服务器启动的会话,而不是创建新会话。请参阅[停止服务器后恢复会话](#resume-sessions-after-stopping-the-server)。不能与 `--session-id`、`--spawn`、`--capacity` 或 `--create-session-in-dir` 结合使用。需要 Claude Code v2.1.200 或更高版本。 |

66 | `--session-id <id>` | 按其 ID 恢复一个会话。请参阅[停止服务器后恢复会话](#resume-sessions-after-stopping-the-server)。不能与 `--continue`、`--spawn`、`--capacity` 或 `--create-session-in-dir` 结合使用。需要 Claude Code v2.1.200 或更高版本。 |66 | `--session-id <id>` | 按其 ID 恢复一个会话。请参阅[停止服务器后恢复会话](#resume-sessions-after-stopping-the-server)。不能与 `--continue`、`--spawn`、`--capacity` 或 `--create-session-in-dir` 结合使用。需要 Claude Code v2.1.200 或更高版本。 |

67 | `--spawn <mode>` | 服务器创建会话的方式。<br />• `same-dir`(默认):所有会话共享当前工作目录,因此如果编辑相同文件可能会冲突。<br />• `worktree`:每个按需会话获得自己的 [git worktree](/docs/zh-CN/worktrees)。需要 git 存储库。<br />• `session`:单会话模式。恰好服务一个会话并拒绝其他连接。仅在启动时设置。<br />在运行时按 `w` 在 `same-dir` 和 `worktree` 之间切换。 |67 | `--spawn <mode>` | 服务器创建会话的方式。<br />• `same-dir`(默认):所有会话共享当前工作目录,因此如果编辑相同文件可能会冲突。<br />• `worktree`:每个按需会话获得自己的 [git worktree](/docs/zh-CN/worktrees)。需要 git 仓库或 [`WorktreeCreate` hook](/docs/zh-CN/hooks#worktreecreate)。<br />• `session`:单会话模式。恰好服务一个会话并拒绝其他连接。仅在启动时设置。<br />在运行时按 `w` 在 `same-dir` 和 `worktree` 之间切换。 |

68 | `--capacity <N>` | 最大并发会话数。默认为 32。不能与 `--spawn=session` 一起使用。 |68 | `--capacity <N>` | 最大并发会话数。默认为 32。不能与 `--spawn=session` 一起使用。 |

69 | `--[no-]create-session-in-dir` | 服务器启动时在当前目录中预创建一个会话,以便您有地方立即输入。在 `worktree` 模式下,此会话保留在当前目录中,而按需会话获得隔离的 worktree。默认启用。如果您传递 `--no-create-session-in-dir` 以不创建任何会话启动,Claude Code 会在您停止服务器时存档服务器的会话,因此没有任何内容可[恢复](#resume-sessions-after-stopping-the-server)。 |69 | `--[no-]create-session-in-dir` | 服务器启动时在当前目录中预创建一个会话,以便您有地方立即输入。在 `worktree` 模式下,此会话保留在当前目录中,而按需会话获得隔离的 worktree。默认启用。如果您传递 `--no-create-session-in-dir` 以不创建任何会话启动,Claude Code 会在您停止服务器时存档服务器的会话,因此没有任何内容可[恢复](#resume-sessions-after-stopping-the-server)。 |

70 | `--permission-mode <mode>` | 为服务器的会话设置起始[权限模式](/docs/zh-CN/permission-modes),例如 `acceptEdits`。接受 `manual` 作为 `default` 的别名;无法识别的模式会在启动时停止服务器并列出有效模式。 |70 | `--permission-mode <mode>` | 为服务器的会话设置起始[权限模式](/docs/zh-CN/permission-modes),例如 `acceptEdits`。接受 `manual` 作为 `default` 的别名;无法识别的模式会在启动时停止服务器并列出有效模式。 |

sandboxing.md +11 −1

Details

202* 始终遵守明确的[拒绝规则](/docs/zh-CN/permissions)202* 始终遵守明确的[拒绝规则](/docs/zh-CN/permissions)

203* 针对[关键路径](/docs/zh-CN/permission-modes#critical-paths)的 `rm` 或 `rmdir` 命令仍会经过常规权限流程203* 针对[关键路径](/docs/zh-CN/permission-modes#critical-paths)的 `rm` 或 `rmdir` 命令仍会经过常规权限流程

204* 限定内容范围的[询问规则](/docs/zh-CN/permissions)(如 `Bash(git push *)`)即使对沙箱命令也仍会强制提示204* 限定内容范围的[询问规则](/docs/zh-CN/permissions)(如 `Bash(git push *)`)即使对沙箱命令也仍会强制提示

205* 单独的 `Bash` 询问规则或等效的 `Bash(*)` 形式,对于在沙箱中运行的命令会被跳过;对于回退到常规权限流程的命令仍然适用。在[计划模式](/docs/zh-CN/permission-modes#analyze-before-you-edit-with-plan-mode)下,该规则不会被跳过:它同样会对沙箱命令进行提示,包括只读命令205* 单独的 `Bash` 询问规则或等效的 `Bash(*)` 形式,对于在沙箱中运行的命令会被跳过;对于在沙箱外运行的命令仍然适用。在[计划模式](/docs/zh-CN/permission-modes#analyze-before-you-edit-with-plan-mode)下,该规则不会被跳过:它同样会对沙箱命令进行提示,包括只读命令

206* [Monitor 工具](/docs/zh-CN/tools-reference#monitor-tool)的命令不会被自动批准,但仍会在沙箱中运行。要跳过提示,请添加与该命令匹配的[允许规则](/docs/zh-CN/permissions#bash),例如 `Bash(npm run *)`206* [Monitor 工具](/docs/zh-CN/tools-reference#monitor-tool)的命令不会被自动批准,但仍会在沙箱中运行。要跳过提示,请添加与该命令匹配的[允许规则](/docs/zh-CN/permissions#bash),例如 `Bash(npm run *)`

207 207 

208某些沙箱命令也会经过常规的[权限流程](/docs/zh-CN/permissions),而不是被自动批准。这种情况会出现在诸如 `FOO=bar npm test` 之类的命令上(在命令前设置的变量可能会改变实际运行的程序),以及 `make CC=clang` 或 `eval "ls"` 上。此时由您的允许规则和权限模式决定是否显示提示,而命令仍在沙箱内运行。

209 

210对于这三个命令,与命令匹配的[允许规则](/docs/zh-CN/permissions#bash)可以避免反复出现提示。以下规则展示了这种模式:

211 

212* `Bash(make *)` 会批准 `make CC=clang`

213* `Bash(FOO=bar npm *)` 会批准 `FOO=bar npm test`。当命令以变量赋值开头时,请在规则中包含该赋值

214* `Bash(eval "ls")` 会批准 `eval "ls"`。诸如 `Bash(eval *)` 之类的通配符规则无法避免此提示,因此请编写与整个命令匹配的规则

215 

216与命令匹配的允许规则也会批准该命令的[沙箱外重试](#the-unsandboxed-retry-escape-hatch),因此该命令可以在沙箱外运行且不提示。

217 

208<Info>218<Info>

209 自动允许模式独立于您的权限模式设置运行,但有三个例外:[计划模式](/docs/zh-CN/permission-modes#analyze-before-you-edit-with-plan-mode)、带有[每命令允许域名](#per-command-allowed-domains-in-auto-mode)的自动模式命令,以及自动模式下对沙箱命令的[服务器端分类器审查](/docs/zh-CN/permission-modes#how-the-classifier-evaluates-actions)。即使您未处于"接受编辑"模式,启用自动允许后,沙箱 Bash 命令也会自动运行。这意味着,即使在 Manual 模式下(此时文件编辑工具会提示),在沙箱边界内修改文件的 Bash 命令也会在不提示的情况下执行。219 自动允许模式独立于您的权限模式设置运行,但有三个例外:[计划模式](/docs/zh-CN/permission-modes#analyze-before-you-edit-with-plan-mode)、带有[每命令允许域名](#per-command-allowed-domains-in-auto-mode)的自动模式命令,以及自动模式下对沙箱命令的[服务器端分类器审查](/docs/zh-CN/permission-modes#how-the-classifier-evaluates-actions)。即使您未处于"接受编辑"模式,启用自动允许后,沙箱 Bash 命令也会自动运行。这意味着,即使在 Manual 模式下(此时文件编辑工具会提示),在沙箱边界内修改文件的 Bash 命令也会在不提示的情况下执行。

210 220 

Details

191 抖动191 抖动

192</h3>192</h3>

193 193 

194定时任务的实际运行时间可能与其计划时间不同。如果每个会话的任务都严格按计划运行,许多任务会在同一时刻调用 API,因此 Claude Code 会调整每个任务的运行时间。重复任务会延后运行,而安排在整点或半点的一次性任务会稍微提前运行。194定时任务的实际运行时间可能与其计划时间不同。如果每个会话的任务都严格按计划运行,许多任务会在同一时刻调用 API,因此 Claude Code 会调整每个任务的运行时间。重复任务会延后运行,但每五分钟运行一次的任务(写作 `*/5 * * * *`)除外。安排在整点或半点的一次性任务会稍微提前运行。

195 195 

196<h4 id="how-late-a-recurring-task-runs">196<h4 id="how-late-a-recurring-task-runs">

197 重复任务会延后多久运行197 重复任务会延后多久运行

198</h4>198</h4>

199 199 

200当您创建重复任务时,Claude Code 会为其分配一个固定的延迟,并将该延迟添加到每次运行中。该延迟是根据任务 ID 计算得出的,因此同一任务每次都会延后相同的分钟数运行,包括在会话空闲且没有其他任何内容运行时。200除非每五分钟运行一次,否则重复任务的每次运行都会延后开始,延后时长最多为距下一次运行间隔的一半,且最多不超过 30 分钟。您的任务属于以下三种情况之一:

201 201 

202运行越频繁的任务获得的延迟越短,任务可获得的最长延迟为 30 分钟。以下是一些常见计划的延迟范围:202* **运行间隔均匀**:间隔相等的任务(例如每小时、每天或每 10 分钟运行一次)每次都会延后相同的分钟数运行,包括在会话空闲时。

203* **运行间隔不均匀**:间隔不等的任务(例如安排在每小时 `:00` 和 `:15` 运行的任务)每次运行延后的分钟数可能不同。

204* **每五分钟**:写作 `*/5 * * * *` 的任务不会被延迟。恰好在上一次运行五分钟后开始的运行,会在五分钟的[提示缓存](/docs/zh-CN/prompt-caching#which-ttl-each-request-gets)过期后才开始,因此每次运行都会提前 15 秒开始。

203 205 

204| 任务运行频率 | 延迟范围 |206在此表的第一列中找到您的计划,即可查看其每次运行的开始时间。

207 

208| 计划 | 每次运行的开始时间 |

205| :- | :- |209| :- | :- |

206| 每 10 分钟 | 0 到 5 分钟 |210| 每 5 分钟,写作 `*/5 * * * *`,即 `/loop 5m` 所创建的计划 | 上一次运行后 4 分 45 秒 |

207| 每 30 分钟 | 0 到 15 分钟 |211| 每 10 分钟 | 延后 0 到 5 分钟 |

208| 每小时,或频率更低(例如每天) | 0 到 30 分钟 |212| 每 30 分钟 | 延后 0 到 15 分钟 |

213| 每小时,或频率更低(例如每天) | 延后 0 到 30 分钟 |

209 214 

210例如,`7,37 * * * *` 将任务安排在 `:07` 和 `:37` 运行,两者相隔 30 分钟,因此其延迟介于 0 到 15 分钟之间。如果该任务的延迟为 14 分钟,它会在每小时的 `:21` 和 `:51` 运行。将计划更改为其他分钟会改变运行时间,但仍会在其基础上添加延迟。215例如,`7,37 * * * *` 将任务安排在 `:07` 和 `:37` 运行,两者相隔 30 分钟,因此其延迟介于 0 到 15 分钟之间。如果该任务的延迟为 14 分钟,它会在每小时的 `:21` 和 `:51` 运行。将计划更改为其他分钟会改变运行时间,但仍会在其基础上添加延迟。

211 216 

Details

1931 1931 

1932* **Scope**: [`Any file`](#scopes)1932* **Scope**: [`Any file`](#scopes)

1933* **Type**: 布尔值1933* **Type**: 布尔值

1934 * `true`: Claude Code 运行沙箱化的 Bash 命令而无需权限提示,受 `deny` 规则和内容范围的 `ask` 规则约束;`CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` 关闭自动允许1934 * `true`: Claude Code 运行沙箱化的 Bash 命令而无需权限提示,[Auto-allow mode](/docs/zh-CN/sandboxing#auto-allow-mode) 所述的情况除外;`CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` 关闭自动允许

1935 * `false`: 沙箱化命令通过常规权限流程,因此您的允许规则和权限模式决定。`/sandbox` **Mode** 选项卡称之为常规权限模式1935 * `false`: 沙箱化命令通过常规权限流程,因此您的允许规则和权限模式决定。`/sandbox` **Mode** 选项卡称之为常规权限模式

1936* **Default**: `true`1936* **Default**: `true`

1937 1937 


1946}1946}

1947```1947```

1948 1948 

1949请参阅 [Sandbox modes](/docs/zh-CN/sandboxing#sandbox-modes) 了解自动允许模式仍会提示什么以及它在计划模式中的行为。1949请参阅 [Auto-allow mode](/docs/zh-CN/sandboxing#auto-allow-mode) 了解自动允许模式仍会提示什么以及它在计划模式中的行为。

1950 1950 

1951<h3 id="sandbox-excludedcommands">1951<h3 id="sandbox-excludedcommands">

1952 `sandbox.excludedCommands`1952 `sandbox.excludedCommands`

statusline.md +1 −1

Details

1308在[全屏渲染](/docs/zh-CN/fullscreen)之外,Claude Code 在与您的状态栏相同的行上显示通知。在全屏渲染中,Claude Code 会为通知提供单独的一行。1308在[全屏渲染](/docs/zh-CN/fullscreen)之外,Claude Code 在与您的状态栏相同的行上显示通知。在全屏渲染中,Claude Code 会为通知提供单独的一行。

1309 1309 

1310* 系统通知,如 MCP 服务器错误和自动更新,显示在该行的右侧。临时通知,如上下文不足警告,也会在此区域轮流显示。1310* 系统通知,如 MCP 服务器错误和自动更新,显示在该行的右侧。临时通知,如上下文不足警告,也会在此区域轮流显示。

1311* 启用详细模式会向此区域添加 token 计数器1311* 启用详细模式会向此区域添加 token 计数器,显示的是最后一次 API 响应所报告的上下文大小,而不是[旋转指示器旁边的每轮计数](/docs/zh-CN/costs#read-the-token-count-beside-the-spinner)

1312* 在窄终端上,这些通知可能会截断您的状态栏输出1312* 在窄终端上,这些通知可能会截断您的状态栏输出

workflows.md +10 −0

Details

431 431 

432从 `/workflows` 恢复暂停的运行,选择它并按 `p`。对于您停止的运行,要求 Claude 使用相同脚本重新启动工作流。如果来自已停止运行的代理尚未退出,Claude Code 会拒绝重新启动,直到它们退出,这样这些代理的第二个副本就不会与它们并行运行。432从 `/workflows` 恢复暂停的运行,选择它并按 `p`。对于您停止的运行,要求 Claude 使用相同脚本重新启动工作流。如果来自已停止运行的代理尚未退出,Claude Code 会拒绝重新启动,直到它们退出,这样这些代理的第二个副本就不会与它们并行运行。

433 433 

434<h4 id="which-agents-run-again">

435 哪些 Agent 会再次运行

436</h4>

437 

434Claude Code 按代理启动的顺序重放运行,每个代理要么返回其保存的结果,要么再次运行:438Claude Code 按代理启动的顺序重放运行,每个代理要么返回其保存的结果,要么再次运行:

435 439 

436* **已完成**:返回其保存的结果。第一个提示与之前运行不同的代理(因为您编辑了脚本或较早的代理返回了不同的内容)会再次运行,之后的每个代理也会再次运行,即使是已完成的代理。440* **已完成**:返回其保存的结果。第一个提示与之前运行不同的代理(因为您编辑了脚本或较早的代理返回了不同的内容)会再次运行,之后的每个代理也会再次运行,即使是已完成的代理。


439 443 

440最后一种情况意味着在扇出中间的失败会重新运行已经完成的工作。如果脚本按该顺序启动 A、B、C 和 D,并且 B 失败,重新启动会从缓存返回 A 并再次运行 B、C 和 D。444最后一种情况意味着在扇出中间的失败会重新运行已经完成的工作。如果脚本按该顺序启动 A、B、C 和 D,并且 B 失败,重新启动会从缓存返回 A 并再次运行 B、C 和 D。

441 445 

446如果您将一个按 A、B、C、D 顺序启动的脚本编辑为按 A、C、B、D 顺序启动,那么第二个启动的 Agent 现在是 C,而之前的运行在这个位置启动的是 B。重新启动会从缓存返回 A,并再次运行 C、B 和 D。

447 

448<h4 id="resume-after-you-leave-the-session">

449 离开会话后恢复

450</h4>

451 

442您可以在同一 Claude Code 会话中恢复运行。当您离开会话时,运行中的工作流会发生什么取决于您如何离开:452您可以在同一 Claude Code 会话中恢复运行。当您离开会话时,运行中的工作流会发生什么取决于您如何离开:

443 453 

444* 如果您[后台运行会话](/docs/zh-CN/agent-view#what-carries-over-when-you-background),Claude Code 会在后台会话中以相同方式重放运行并继续它。454* 如果您[后台运行会话](/docs/zh-CN/agent-view#what-carries-over-when-you-background),Claude Code 会在后台会话中以相同方式重放运行并继续它。

worktrees.md +1 −1

Details

129and report the results.129and report the results.

130```130```

131 131 

132每个子代理都会获得一个临时 worktree,当子代理完成且没有更改时 Claude Code 会自动删除;带有更改的 worktree 会保留在磁盘上,直到下面的[定期扫描](#clean-up-subagent-and-background-session-worktrees)可以删除它而不会丢失工作。132每个子代理都会获得一个临时 worktree,当子代理完成且没有更改时 Claude Code 会自动删除;带有更改的 worktree 会保留在磁盘上,直到下面的[定期扫描](#clean-up-subagent-and-background-session-worktrees)可以删除它而不会丢失工作。对于由您的 [WorktreeCreate hook](/docs/zh-CN/hooks#worktreecreate) 创建的 worktree,请改为参阅 [WorktreeRemove](/docs/zh-CN/hooks#worktreeremove)。

133 133 

134子代理 worktrees 使用与 `--worktree` 相同的[基础分支](#choose-the-base-branch),因此它们从您的存储库的默认分支分支,除非 `worktree.baseRef` 设置为 `"head"`。134子代理 worktrees 使用与 `--worktree` 相同的[基础分支](#choose-the-base-branch),因此它们从您的存储库的默认分支分支,除非 `worktree.baseRef` 设置为 `"head"`。

135 135