SpyBara
Go Premium

Documentation 2026-10-20 23:00 UTC to 2026-10-21 23:02 UTC

84 files changed +2,283 −1,354. View all changes and history on the product overview
2026
Fri 30 23:01 Thu 29 23:57 Wed 28 23:57 Tue 27 22:59 Mon 26 22:57 Sun 25 23:58 Sat 24 22:59 Fri 23 22:59 Thu 22 22:58 Wed 21 23:02 Tue 20 23:00 Mon 19 23:58 Sat 17 23:57 Fri 16 22:59 Thu 15 23:58 Wed 14 22:58 Tue 13 23:57 Sun 11 23: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

admin-setup.md +1 −1

Details

91| [Permission lockdown](/docs/zh-CN/permissions#managed-only-settings) | 使托管设置成为[权限规则的唯一设置源](/docs/zh-CN/settings-reference#allowmanagedpermissionrulesonly)。禁用 `--dangerously-skip-permissions` | `allowManagedPermissionRulesOnly`、`permissions.disableBypassPermissionsMode` |91| [Permission lockdown](/docs/zh-CN/permissions#managed-only-settings) | 使托管设置成为[权限规则的唯一设置源](/docs/zh-CN/settings-reference#allowmanagedpermissionrulesonly)。禁用 `--dangerously-skip-permissions` | `allowManagedPermissionRulesOnly`、`permissions.disableBypassPermissionsMode` |

92| [Starting permission mode](/docs/zh-CN/permission-modes#which-mode-a-session-starts-in) | 选择开发人员终端会话启动时的权限模式,而不是内置的启动权限模式,或删除自动模式。[Switch permission modes](/docs/zh-CN/permission-modes#switch-permission-modes) 列出 VS Code 扩展何时读取您设置的 `defaultMode` | `permissions.defaultMode`、`permissions.disableAutoMode` |92| [Starting permission mode](/docs/zh-CN/permission-modes#which-mode-a-session-starts-in) | 选择开发人员终端会话启动时的权限模式,而不是内置的启动权限模式,或删除自动模式。[Switch permission modes](/docs/zh-CN/permission-modes#switch-permission-modes) 列出 VS Code 扩展何时读取您设置的 `defaultMode` | `permissions.defaultMode`、`permissions.disableAutoMode` |

93| [Sandboxing](/docs/zh-CN/sandboxing) | 具有域允许列表的操作系统级文件系统和网络隔离 | `sandbox.enabled`、`sandbox.network.allowedDomains` |93| [Sandboxing](/docs/zh-CN/sandboxing) | 具有域允许列表的操作系统级文件系统和网络隔离 | `sandbox.enabled`、`sandbox.network.allowedDomains` |

94| [Managed policy CLAUDE.md](/docs/zh-CN/memory#deploy-organization-wide-claude-md) | 在每个会话中加载的组织范围指令,无法排除 | 托管策略路径处的文件 |94| [Managed policy CLAUDE.md](/docs/zh-CN/memory#deploy-organization-wide-claude-md) | 面向 Claude 的组织范围行为指导,而非由客户端强制执行的规则 | 托管策略路径处的文件 |

95| [MCP server control](/docs/zh-CN/managed-mcp) | 限制用户可以添加或连接的 MCP 服务器、部署固定集合,或为每个用户提供远程服务器以及他们自己的服务器 | `allowedMcpServers`、`deniedMcpServers`、`allowManagedMcpServersOnly`、`managedMcpServers` 或已部署的 `managed-mcp.json` 文件 |95| [MCP server control](/docs/zh-CN/managed-mcp) | 限制用户可以添加或连接的 MCP 服务器、部署固定集合,或为每个用户提供远程服务器以及他们自己的服务器 | `allowedMcpServers`、`deniedMcpServers`、`allowManagedMcpServersOnly`、`managedMcpServers` 或已部署的 `managed-mcp.json` 文件 |

96| [Plugin marketplace control](/docs/zh-CN/plugins/org#restrict-what-users-can-install) | 限制用户可以添加和安装的市场来源,拒绝为单次运行侧加载插件、agents 和 MCP 服务器的 CLI 标志,阻止[`command` 插件源](/docs/zh-CN/plugins/marketplace-reference#command-plugin-source),并允许列出哪些市场的插件可以被建议 | `strictKnownMarketplaces`、`blockedMarketplaces`、`disableSideloadFlags`、`disableCommandPluginSources`、`pluginSuggestionMarketplaces` |96| [Plugin marketplace control](/docs/zh-CN/plugins/org#restrict-what-users-can-install) | 限制用户可以添加和安装的市场来源,拒绝为单次运行侧加载插件、agents 和 MCP 服务器的 CLI 标志,阻止[`command` 插件源](/docs/zh-CN/plugins/marketplace-reference#command-plugin-source),并允许列出哪些市场的插件可以被建议 | `strictKnownMarketplaces`、`blockedMarketplaces`、`disableSideloadFlags`、`disableCommandPluginSources`、`pluginSuggestionMarketplaces` |

97| [Customization lockdown](/docs/zh-CN/settings-reference#strictpluginonlycustomization) | 阻止 skills、agents、hooks 和 MCP 服务器来自用户和项目源,使它们只能来自插件或托管设置。锁定 skills 也会停止[您的开发人员在 claude.ai 上启用的 skills](/docs/zh-CN/skills#where-synced-skills-load) 的同步 | `strictPluginOnlyCustomization` |97| [Customization lockdown](/docs/zh-CN/settings-reference#strictpluginonlycustomization) | 阻止 skills、agents、hooks 和 MCP 服务器来自用户和项目源,使它们只能来自插件或托管设置。锁定 skills 也会停止[您的开发人员在 claude.ai 上启用的 skills](/docs/zh-CN/skills#where-synced-skills-load) 的同步 | `strictPluginOnlyCustomization` |

advisor.md +1 −1

Details

83 83 

84如果您使用 `--advisor` 启动[后台会话](/docs/zh-CN/agent-view),并且上述任何情况成立,Claude Code 会在没有顾问的情况下启动会话,而不是退出。84如果您使用 `--advisor` 启动[后台会话](/docs/zh-CN/agent-view),并且上述任何情况成立,Claude Code 会在没有顾问的情况下启动会话,而不是退出。

85 85 

86如果请求的模型可以充当顾问,但[排名低于](#choose-an-advisor-model)会话的主模型,Claude Code 仍会启动会话。在后台会话之外,它还会在启动时警告该模型 `cannot advise` 主模型。86如果您传递的模型可以充当顾问,但[排名低于您的主模型](#choose-an-advisor-model),则无论是否为后台会话,会话都会启动。随后您的主模型将在没有顾问的情况下运行。

87 87 

88## 选择顾问模型88## 选择顾问模型

89 89 

Details

372 372 

373### 配置允许的工具373### 配置允许的工具

374 374 

375`tools`选项和允许/禁止列表影响两个层级:可用性(控制工具是否出现在Claude的上下文中)和权限(控制Claude尝试调用后是否批准该调用)。`tools`和裸名称`disallowedTools`条目改变可用性。`allowedTools`和作用域`disallowedTools`规则改变权限。如果您在`allowedTools`中命名其中一个[任务跟踪工具](/docs/zh-CN/agent-sdk/todo-tracking#model-availability),Claude Code也会选择加入该会话。375`tools`选项和允许/禁止列表影响两个层级:可用性(控制工具是否出现在Claude的上下文中)和权限(控制Claude尝试调用后是否批准该调用)。`tools`和裸名称`disallowedTools`条目改变可用性。`allowedTools`和作用域`disallowedTools`规则改变权限。如果您在`allowedTools`中命名其中一个[任务跟踪工具](/docs/zh-CN/agent-sdk/todo-tracking#model-availability),Claude Code也会为该会话启用这些工具。

376 376 

377| 选项 | 层级 | 效果 |377| 选项 | 层级 | 效果 |

378| :- | :- | :- |378| :- | :- | :- |

Details

20 20 

21[`claude-agent-sdk-demos`](https://github.com/anthropics/claude-agent-sdk-demos) 中的应用程序是本地开发的演示,从电子邮件客户端到多 agent 研究系统。克隆其形状与您正在构建的内容相匹配的演示。21[`claude-agent-sdk-demos`](https://github.com/anthropics/claude-agent-sdk-demos) 中的应用程序是本地开发的演示,从电子邮件客户端到多 agent 研究系统。克隆其形状与您正在构建的内容相匹配的演示。

22 22 

23## Fork 完整项目

24 

25要使用 Python SDK 构建购物 Agent 或商家 Agent,请从 [Claude for commerce 参考实现](https://platform.claude.com/docs/en/about-claude/use-case-guides/commerce-agents)开始。

26 

23## 完成 Python 食谱27## 完成 Python 食谱

24 28 

25Claude Cookbook 的 Agent SDK 系列是一系列食谱,每个都是一个 Python 笔记本,从简单的研究 agent 逐步发展到复杂的多 agent 系统。每个笔记本都建立在前一个的基础上,引入新的概念和功能。从[单行研究 agent](https://platform.claude.com/cookbook/claude-agent-sdk-00-the-one-liner-research-agent) 开始并向前进行。29Claude Cookbook 的 Agent SDK 系列是一系列食谱,每个都是一个 Python 笔记本,从简单的研究 agent 逐步发展到复杂的多 agent 系统。每个笔记本都建立在前一个的基础上,引入新的概念和功能。从[单行研究 agent](https://platform.claude.com/cookbook/claude-agent-sdk-00-the-one-liner-research-agent) 开始并向前进行。

Details

638 638 

639* [`permission_prompt`](/docs/zh-CN/hooks#notification) 一旦权限请求在您的 [`canUseTool` 回调](/docs/zh-CN/agent-sdk/user-input) 上等待约六秒。需要 TypeScript Agent SDK v0.3.233 或更高版本,或 Python Agent SDK v0.2.139 或更高版本639* [`permission_prompt`](/docs/zh-CN/hooks#notification) 一旦权限请求在您的 [`canUseTool` 回调](/docs/zh-CN/agent-sdk/user-input) 上等待约六秒。需要 TypeScript Agent SDK v0.3.233 或更高版本,或 Python Agent SDK v0.2.139 或更高版本

640* `elicitation_complete` 和 `elicitation_response` 用于用户提示引导流程640* `elicitation_complete` 和 `elicitation_response` 用于用户提示引导流程

641* `plugin_notification`,当 [mod](/docs/zh-CN/plugins/mods/api#show-something-without-starting-a-turn) 调用 `$.ui.notify` 时

641 642 

642Claude Code 从 SDK 会话不运行的交互式 UI 发出其他类型,例如 `idle_prompt`、`auth_success` 和 `elicitation_dialog`。643Claude Code 从 SDK 会话不运行的交互式 UI 发出其他类型,例如 `idle_prompt`、`auth_success` 和 `elicitation_dialog`。

643 644 

agent-sdk/mcp.md +29 −11

Details

142 142 

143## 连接时序143## 连接时序

144 144 

145Claude Code 在启动时注册你在 `options.mcpServers` 中传递的服务器,并在第一轮等待(如果有的话)解决后发出 [init 消息](#error-handling)。每个 `options.mcpServers` 服务器是否延迟第一轮,以及何时连接,取决于其类型:145Claude Code 在会话启动时开始连接您的 MCP 服务器,并在第一轮等待(如果有的话)结束后发送 [init 消息](#error-handling)。第一轮等待某个服务器的时长取决于您在何处配置它。如果您设置了 `permissionPromptToolName`,无论您在何处配置该工具的服务器,第一轮始终会等待该服务器,最多等待 `MCP_TIMEOUT`。

146 

147对于 `options.mcpServers` 中的服务器,请在第一列中找到其类型,以查看第一轮等待它的时长。

146 148 

147| 服务器类型 | 延迟第一轮? | 第一轮等待超时 |149| 服务器类型 | 延迟第一轮? | 第一轮等待超时 |

148| :- | :- | :- |150| :- | :- | :- |


150| 具有缓存工具列表的远程服务器,由 Claude Code 从之前的连接保存 | 否;缓存的工具从第一轮开始可用 | 无;在其第一次工具调用时连接,该延迟连接有其自己的超时 |152| 具有缓存工具列表的远程服务器,由 Claude Code 从之前的连接保存 | 否;缓存的工具从第一轮开始可用 | 无;在其第一次工具调用时连接,该延迟连接有其自己的超时 |

151| 进程内 [SDK 服务器](#sdk-mcp-servers) | 是,直到连接并列出其工具 | [`MCP_TIMEOUT`](/docs/zh-CN/env-vars),默认 30 秒,每次连接尝试;连接在该截止时间失败 |153| 进程内 [SDK 服务器](#sdk-mcp-servers) | 是,直到连接并列出其工具 | [`MCP_TIMEOUT`](/docs/zh-CN/env-vars),默认 30 秒,每次连接尝试;连接在该截止时间失败 |

152 154 

153从 [settings 文件](#from-a-config-file)(如 `.mcp.json`)或从插件加载的服务器通常在 init 消息中显示 `pending`。当 `options.mcpServers` 包含 stdio、HTTP 或 SSE 服务器时,第一轮等待这些待处理的服务器,最多等待 `MCP_TIMEOUT`。当 `options.mcpServers` 为空或仅包含 SDK 服务器时,第一轮改为最多等待 2 秒:155只有在启用 [MCP 发现缓存](/docs/zh-CN/mcp#server-status-detail)时,服务器才会有缓存的工具列表。

156 

157来自 [设置文件](#from-a-config-file)(如 `.mcp.json`)或插件的服务器通常在 init 消息中仍显示 `pending`。第一轮等待它们的时长取决于 `options.mcpServers` 和 tool search:

158 

159* **`options.mcpServers` 包含 stdio、HTTP 或 SSE 服务器**:第一轮也会等待待处理的设置文件服务器和插件服务器,最多等待 `MCP_TIMEOUT`。

160* **否则,当 `ANTHROPIC_BASE_URL` 指向[网关](/docs/zh-CN/mcp#tool-search-through-a-gateway)且未设置 [`ENABLE_TOOL_SEARCH`](/docs/zh-CN/mcp#configure-tool-search) 时**:第一轮最多等待 2 秒,等待每个待处理的设置文件服务器和插件服务器。

161* **否则,在启用 [tool search](/docs/zh-CN/agent-sdk/tool-search)(默认启用)时**:第一轮最多等待 2 秒,且仅等待设置了 [`alwaysLoad: true`](/docs/zh-CN/mcp#exempt-a-server-from-deferral) 或您已[指名](#named-servers)的待处理服务器。其余服务器继续在后台连接,Claude 会在它们连接后[访问其工具](/docs/zh-CN/mcp#tool-availability)。

162* **否则,在关闭 tool search 时**:第一轮最多等待 2 秒,等待每个待处理的设置文件服务器和插件服务器。当您的 [`ENABLE_TOOL_SEARCH` 值或模型](/docs/zh-CN/agent-sdk/tool-search#configure-tool-search)将其关闭,或当您排除 `ToolSearch` 工具(例如通过 `disallowedTools`)时,tool search 处于关闭状态。

163 

164### 指名服务器

165 

166您可以通过在 [`allowedTools`](#allow-mcp-tools) 中或在 `settings` 选项的 `permissions.allow` 规则中列出服务器的任意工具(例如 `mcp__github__list_issues` 或 `mcp__github__*`)来指名该服务器。当您在提示提交、工具使用、权限、子代理、任务、elicitation 或 worktree 事件上配置 [`mcp_tool` hook](/docs/zh-CN/hooks#mcp-tool-hook-fields) 时,它也会指名其调用的服务器。在 v2.1.284 之前,指名服务器不会影响第一轮等待。

167 

168### 自行设置第一轮等待

169 

170要自行选择第一轮等待时长,请在 [`env` 选项](/docs/zh-CN/agent-sdk/configuration#set-environment-variables)中设置 `CLAUDE_CODE_MCP_STARTUP_WAIT_MS`,例如 `CLAUDE_CODE_MCP_STARTUP_WAIT_MS: "5000"`。此后第一轮会最多等待该毫秒数,以等待待处理的设置文件服务器和插件服务器,无论 tool search 是否启用。同一上限也会替代 `options.mcpServers` 中 stdio、HTTP 和 SSE 服务器的 `MCP_TIMEOUT` 等待。

154 171 

155* **使用 [tool search](/docs/zh-CN/agent-sdk/tool-search)(默认)**:等待涵盖仍待处理的服务器,这些服务器配置了 [`alwaysLoad: true`](/docs/zh-CN/mcp#exempt-a-server-from-deferral),不包括其余的。其余的继续在后台连接。[Tool availability](/docs/zh-CN/mcp#tool-availability) 描述了 Claude 在它们连接后如何访问它们的工具。172无论您设置什么值(包括 `0`),以下三种等待都适用:

156* **不使用 tool search**:等待涵盖每个待处理的服务器。[Configure tool search](/docs/zh-CN/agent-sdk/tool-search#configure-tool-search) 涵盖了关闭 tool search 的内容。例如,如果你通过 `disallowedTools` 从会话中排除 `ToolSearch` 工具,会话也会在没有 tool search 的情况下运行。

157 173 

158如果你设置了 `permissionPromptToolName`,第一轮也会在所有情况下等待该工具的服务器,最多等待 `MCP_TIMEOUT`。174* **`permissionPromptToolName` 服务器**:最多等待 `MCP_TIMEOUT`。

175* **进程内 [SDK 服务器](#sdk-mcp-servers)**:每次连接尝试最多等待 `MCP_TIMEOUT`。

176* **仍在连接中的[指名服务器](#named-servers)**:等待上限至少为 2 秒,因此低于 `2000` 的值不会缩短其等待时间。

159 177 

160要自己设置第一轮等待,请将 `CLAUDE_CODE_MCP_STARTUP_WAIT_MS` 添加到 [`env` 选项](/docs/zh-CN/agent-sdk/configuration#set-environment-variables),例如 `CLAUDE_CODE_MCP_STARTUP_WAIT_MS: "5000"`。第一轮然后等待最多那么多毫秒以等待每个待处理的服务器,无论 tool search 是否可用。此截止时间也替代了 `options.mcpServers` 中 stdio、HTTP 和 SSE 服务器的 `MCP_TIMEOUT` 第一轮等待。`CLAUDE_CODE_MCP_STARTUP_WAIT_MS` 需要 Claude Code v2.1.274 或更高版本。178将该变量设置为 `0` 可跳过对其他所有服务器的等待。等待结束时仍处于待处理状态的服务器会继续在后台连接。`CLAUDE_CODE_MCP_STARTUP_WAIT_MS` 需要 Claude Code v2.1.274 或更高版本。

161 179 

162当等待结束时仍待处理的服务器继续在后台连接。将变量设置为 `0` 以跳过等待。`permissionPromptToolName` 服务器无论该值如何都保持其自己的 `MCP_TIMEOUT` 等待。180### 让启动等待服务器

163 181 

164要在发送 init 消息之前的单独的、更早的阶段阻止启动本身:182有两项设置会让启动本身在 Claude Code 发送 init 消息之前进行等待:

165 183 

166* 将 [`MCP_CONNECTION_NONBLOCKING`](/docs/zh-CN/env-vars) 设置为 `0` 以阻止整个连接批次。Claude Code 默认将该等待上限设为 5 秒。使用 [`MCP_CONNECT_TIMEOUT_MS`](/docs/zh-CN/env-vars) 环境变量调整上限,单位为毫秒。在该截止时间仍待处理的服务器继续在后台连接。184* **将 [`MCP_CONNECTION_NONBLOCKING`](/docs/zh-CN/env-vars) 设置为 `0`**:启动会等待整个连接批次,默认最多 5 秒。设置 [`MCP_CONNECT_TIMEOUT_MS`](/docs/zh-CN/env-vars)(单位为毫秒)可更改该上限。达到上限时仍处于待处理状态的服务器会继续在后台连接。

167* 在服务器的配置上设置 `alwaysLoad: true` 以使其工具在第一轮时以完整架构可用,[豁免于工具搜索延迟](/docs/zh-CN/mcp#exempt-a-server-from-deferral)。Claude Code 在启动时等待该服务器的工具,上限为相同的截止时间,而其他服务器继续在后台连接;具有缓存工具列表的远程服务器根据上表提供它们而无需连接。185* **在服务器的配置上设置 `alwaysLoad: true`**:启动会在相同上限内等待该服务器的工具,使第一轮能以完整 schema 获得这些工具,[豁免于 tool search 延迟加载](/docs/zh-CN/mcp#exempt-a-server-from-deferral)。具有缓存工具列表的远程服务器无需连接或阻塞启动即可提供这些工具。

168 186 

169具有 `init` 子类型的 `system` 消息在发出时报告每个服务器的状态;请参阅 [错误处理](#error-handling) 以读取这些状态。187init 消息报告的是 Claude Code 发送该消息时每个服务器的状态。

170 188 

171## 允许 MCP 工具189## 允许 MCP 工具

172 190 

Details

69 69 

70## 允许和拒绝规则70## 允许和拒绝规则

71 71 

72`allowed_tools` 和 `disallowed_tools`(TypeScript:`allowedTools` / `disallowedTools`)在上述评估流程中向允许和拒绝规则列表添加条目。如果你在 `allowed_tools` 中命名了某个[任务跟踪工具](/docs/zh-CN/agent-sdk/todo-tracking#model-availability),Claude Code 也会选择加入该会话。任何其他未在 `allowed_tools` 中列出的工具仍然可供 Claude 使用,对其的调用如果需要批准,则会进入权限模式。拒绝规则的行为取决于它们是命名工具还是在工具内限定模式。72`allowed_tools` 和 `disallowed_tools`(TypeScript:`allowedTools` / `disallowedTools`)在上述评估流程中向允许和拒绝规则列表添加条目。如果你在 `allowed_tools` 中命名了某个[任务跟踪工具](/docs/zh-CN/agent-sdk/todo-tracking#model-availability),Claude Code 也会为该会话启用这些工具。任何其他未在 `allowed_tools` 中列出的工具仍然可供 Claude 使用,对其的调用如果需要批准,则会进入权限模式。拒绝规则的行为取决于它们是命名工具还是在工具内限定模式。

73 73 

74| 选项 | 效果 |74| 选项 | 效果 |

75| :- | :- |75| :- | :- |


78| `disallowed_tools=["Bash(rm *)"]` | `Bash` 保持可用。匹配 `rm *` [如所写](/docs/zh-CN/permissions#bash-rule-limits) 的调用在每种权限模式中都被拒绝,包括 `bypassPermissions`。其他 `Bash` 调用(包括 `/bin/rm`)会进入权限模式。 |78| `disallowed_tools=["Bash(rm *)"]` | `Bash` 保持可用。匹配 `rm *` [如所写](/docs/zh-CN/permissions#bash-rule-limits) 的调用在每种权限模式中都被拒绝,包括 `bypassPermissions`。其他 `Bash` 调用(包括 `/bin/rm`)会进入权限模式。 |

79| `disallowed_tools=["*"]` | 每个工具定义都从请求中移除。拒绝规则中支持工具名称通配符:`"*"` 匹配每个工具,`"mcp__*"` 匹配所有服务器中的每个 MCP 工具。 |79| `disallowed_tools=["*"]` | 每个工具定义都从请求中移除。拒绝规则中支持工具名称通配符:`"*"` 匹配每个工具,`"mcp__*"` 匹配所有服务器中的每个 MCP 工具。 |

80 80 

81允许规则仅在字面 `mcp__<server>__` 前缀之后接受工具名称通配符。服务器段必须无通配符,以便规则命名你配置的特定服务器:`mcp__puppeteer__*` 匹配来自 `puppeteer` 服务器的每个工具,`mcp__github__get_*` 匹配其 `get_` 工具。未锚定的条目(如 `allowed_tools=["*"]` 或 `allowed_tools=["mcp__*"]`)会被忽略并显示启动警告,不会自动批准任何内容。81允许规则仅在字面 `mcp__<server>__` 前缀之后接受工具名称通配符。服务器段必须无通配符,以便规则命名您配置的特定服务器:`mcp__puppeteer__*` 匹配来自 `puppeteer` 服务器的每个工具,`mcp__github__get_*` 匹配其 `get_` 工具。未锚定的条目(如 `allowed_tools=["*"]` 或 `allowed_tools=["mcp__*"]`)会被忽略,不会自动批准任何内容。

82 82 

83`Read` 和 `Edit` 的限定规则采用路径模式。`Edit(path)` 规则管理所有写入文件的内置工具,包括 `Write` 和 `NotebookEdit`;`Write(path)` 规则永远不会被文件权限检查匹配。83`Read` 和 `Edit` 的限定规则采用路径模式。`Edit(path)` 规则管理所有写入文件的内置工具,包括 `Write` 和 `NotebookEdit`;`Write(path)` 规则永远不会被文件权限检查匹配。

84 84 

Details

535| `set_model(model)` | 更改当前会话的模型。传递 `None` 以重置为 [Claude Code 的默认模型](/docs/zh-CN/model-config)。如果新模型不支持自动模式,处于 `auto` 模式的会话将[切换到 `default` 模式](/docs/zh-CN/agent-sdk/permissions#auto-mode-auto) |535| `set_model(model)` | 更改当前会话的模型。传递 `None` 以重置为 [Claude Code 的默认模型](/docs/zh-CN/model-config)。如果新模型不支持自动模式,处于 `auto` 模式的会话将[切换到 `default` 模式](/docs/zh-CN/agent-sdk/permissions#auto-mode-auto) |

536| `rewind_files(user_message_id)` | 将文件恢复到指定用户消息时的状态。需要 `enable_file_checkpointing=True`。见 [文件检查点](/docs/zh-CN/agent-sdk/file-checkpointing) |536| `rewind_files(user_message_id)` | 将文件恢复到指定用户消息时的状态。需要 `enable_file_checkpointing=True`。见 [文件检查点](/docs/zh-CN/agent-sdk/file-checkpointing) |

537| `get_mcp_status()` | 获取所有配置的 MCP 服务器的状态。返回 [`McpStatusResponse`](#mcpstatusresponse) |537| `get_mcp_status()` | 获取所有配置的 MCP 服务器的状态。返回 [`McpStatusResponse`](#mcpstatusresponse) |

538| `get_context_usage()` | 获取按类别、技能和工具分类的上下文窗口使用情况的详细信息。这与 `/context` 在交互式会话中显示的数据相同。返回 [`ContextUsageResponse`](#contextusageresponse)。为了计算详细信息,Claude Code 会发出几个不出现在消息流中的令牌计数 API 请求;见[这些请求如何处理](#contextusageresponse) |538| `get_context_usage()` | 获取按类别、skill 和工具划分的上下文窗口使用情况明细。其中包含 `/context` 在交互式会话中显示的数据。返回 [`ContextUsageResponse`](#contextusageresponse)。为了计算明细,Claude Code 会发出几个不出现在消息流中的令牌计数 API 请求;见[这些请求如何处理](#contextusageresponse) |

539| `reconnect_mcp_server(server_name)` | 重试连接到失败或断开连接的 MCP 服务器 |539| `reconnect_mcp_server(server_name)` | 重试连接到失败或断开连接的 MCP 服务器 |

540| `toggle_mcp_server(server_name, enabled)` | 在会话中启用或禁用 MCP 服务器。禁用会移除其工具 |540| `toggle_mcp_server(server_name, enabled)` | 在会话中启用或禁用 MCP 服务器。禁用会移除其工具 |

541| `stop_task(task_id)` | 停止运行的后台任务。一个状态为 `"stopped"` 的 [`TaskNotificationMessage`](#tasknotificationmessage) 随后在消息流中出现 |541| `stop_task(task_id)` | 停止运行的后台任务。一个状态为 `"stopped"` 的 [`TaskNotificationMessage`](#tasknotificationmessage) 随后在消息流中出现 |


1524 1524 

1525### `ContextUsageResponse`1525### `ContextUsageResponse`

1526 1526 

1527来自 [`ClaudeSDKClient.get_context_usage()`](#methods) 的响应。这是 Claude Code 在交互式会话中为 `/context` 命令呈现的相同负载,因此除了 token 计数外,它还携带显示字段,如 `color` 和 `gridRows`,Claude Code 使用这些字段来绘制 `/context` 使用网格。1527来自 [`ClaudeSDKClient.get_context_usage()`](#methods) 的响应。该响应包含 Claude Code 在交互式会话中为 `/context` 命令呈现的负载。除了 token 计数外,该负载还携带显示字段,如 `color` 和 `gridRows`,Claude Code 使用这些字段来绘制 `/context` 使用网格。

1528 1528 

1529Claude Code 通过向 [token 计数](https://platform.claude.com/docs/en/build-with-claude/token-counting) API 发送多个请求来构建此负载。这些请求不会出现在消息流中,因此读取流的成本跟踪不会看到它们。在 Anthropic API 上,token 计数不计费。1529Claude Code 通过向 [token 计数](https://platform.claude.com/docs/en/build-with-claude/token-counting) API 发送多个请求来构建此负载。这些请求不会出现在消息流中,因此读取流的成本跟踪不会看到它们。在 Anthropic API 上,token 计数不计费。

1530 1530 


1715 1715 

1716多个字段携带有关对话如何结束的诊断详情:1716多个字段携带有关对话如何结束的诊断详情:

1717 1717 

1718* `is_error`:当对话以错误状态结束时为 `True`。在 `error_*` 子类型上始终为 `True`。在 `subtype="success"` 上,当最终模型请求失败时为 `True`,这意味着 Agent 循环完成但最后一个 API 调用返回了错误。1718* `is_error`:当对话以错误状态结束时为 `True`。在 `error_*` 子类型上始终为 `True`。在 `subtype="success"` 上,有三种情况为 `True`。请检查 `stop_reason` 以区分它们:

1719 * `"refusal"`:模型拒绝回复。请在 `result` 中读取拒绝文本;当 `result` 为空时,在前面的 `AssistantMessage` 中读取。

1720 * `"tool_deferred_unavailable"`:恢复会话时,[延迟的工具](/docs/zh-CN/hooks#defer-a-tool-call-for-later)已不再可用,例如因为其 MCP 服务器未连接。在以下两种情况中,恢复后发送的提示词与随恢复一起传递的提示词效果相同:

1721 * 无提示词:该调用仍处于挂起状态。使该工具可用后,再次不带提示词地恢复,该调用会首先运行。

1722 * 有提示词:Claude Code 会在没有该工具结果的情况下回答它,延迟的调用将不复存在。如果仍需要调用该工具,请发送新的提示词。

1723 * 任何其他值:轮次因 Claude Code 报告的错误(代替模型回复)而结束,例如 API 错误。读取 `terminal_reason` 了解原因,读取 `result` 获取消息,当 API 返回 HTTP 状态时读取 `api_error_status` 获取该状态。

1719* `api_error_status`:终止 API 错误的 HTTP 状态代码。当轮次结束时没有错误时为 `None`。仅在 `subtype="success"` 上填充。1724* `api_error_status`:终止 API 错误的 HTTP 状态代码。当轮次结束时没有错误时为 `None`。仅在 `subtype="success"` 上填充。

1720* `result`:在 `subtype="success"` 上为最终助手消息的文本,或在 `error_*` 子类型上为 `None`。当 `subtype="success"` 且 `is_error=True` 时,如果可用,此字段保存 API 错误字符串,但可能为空,因此请检查 `api_error_status` 和前面的 `AssistantMessage` 内容以获取详情。1725* `result`:在 `subtype="success"` 上为最终助手消息的文本,或在 `error_*` 子类型上为 `None`。当 `subtype="success"` 且 `is_error=True` 时,如果可用,此字段保存 API 错误字符串,但可能为空,因此请检查 `api_error_status` 和前面的 `AssistantMessage` 内容以获取详情。

1721* `errors`:循环级别的错误字符串,例如最大轮次消息。仅在 `error_*` 子类型上填充。1726* `errors`:循环级别的错误字符串,例如最大轮次消息。仅在 `error_*` 子类型上填充。


2062 errors: list[str] # an empty list when the result message reported none2067 errors: list[str] # an empty list when the result message reported none

2063 result: str | None2068 result: str | None

2064 api_error_status: int | None2069 api_error_status: int | None

2065 terminal_reason: str | None # "max_turns", "api_error", ...; check this before subtype2070 terminal_reason: str | None # "max_turns", "api_error", ...; check after data["stop_reason"], before subtype

2066 session_id: str | None2071 session_id: str | None

2067 data: dict[str, Any] # the raw result message payload2072 data: dict[str, Any] # the raw result message payload

2068```2073```

2069 2074 

2070要区分失败,请在检查 `subtype` 之前先检查 `terminal_reason`。当最终请求失败时,例如 API 错误,Claude Code 会报告 `subtype` 为 `"success"`,原因在 `terminal_reason` 中,例如 `"api_error"`;当您设置的限制结束运行时,例如 `max_turns` 或 `max_budget_usd`,它会报告 `error_*` 子类型。2075要区分失败,请先检查 `data["stop_reason"]`,然后检查 `terminal_reason`,最后检查 `subtype`。拒绝回答的回复的 `stop_reason` 为 `"refusal"`,`subtype` 通常为 `"success"`;其 `terminal_reason` 无法单独识别这种情况,可能为 `"completed"` 或 `"api_error"`。失败的最终请求的 `subtype` 为 `"success"`,原因在 `terminal_reason` 中,例如 API 错误对应 `"api_error"`。当运行达到您设置的限制(例如 `max_turns` 或 `max_budget_usd`)时,您会得到 `error_*` 子类型。

2071 2076 

2072### `CLIJSONDecodeError`2077### `CLIJSONDecodeError`

2073 2078 


2574 "subagent_type": str | None, # 要使用的专用 Agent 类型2579 "subagent_type": str | None, # 要使用的专用 Agent 类型

2575 "model": "sonnet" | "opus" | "haiku" | "fable" | None, # 此 Agent 的模型覆盖2580 "model": "sonnet" | "opus" | "haiku" | "fable" | None, # 此 Agent 的模型覆盖

2576 "effort": "low" | "medium" | "high" | "xhigh" | "max" | None, # 此 Agent 的推理强度2581 "effort": "low" | "medium" | "high" | "xhigh" | "max" | None, # 此 Agent 的推理强度

2577 "run_in_background": bool | None, # Agent 默认在后台运行;设置为 False 可同步运行2582 "run_in_background": bool | None, # 省略时的默认行为:主 Agent 的调用会在后台运行新 Agent,子代理的调用则会等待它完成

2578 "name": str | None, # 所生成 Agent 的名称2583 "name": str | None, # 所生成 Agent 的名称

2579 "team_name": str | None, # 已弃用;会被忽略2584 "team_name": str | None, # 已弃用;会被忽略

2580 "mode": "acceptEdits" | "auto" | "bypassPermissions" | "default" | "dontAsk" | "plan" | None, # 已弃用;会被忽略。子代理的权限模式由子代理继承规则决定2585 "mode": "acceptEdits" | "auto" | "bypassPermissions" | "default" | "dontAsk" | "plan" | None, # 已弃用;会被忽略。子代理的权限模式由子代理继承规则决定


2584 2589 

2585启动一个新的 Agent 来自主处理复杂的多步骤任务。2590启动一个新的 Agent 来自主处理复杂的多步骤任务。

2586 2591 

2592当 Claude 在 `Agent` 调用中省略 `run_in_background` 时,默认情况下,您的主 Agent 不会等待新 Agent,而子代理会等待:

2593 

2594* **从您的主 Agent 调用**:新 Agent 在后台运行,结果带有 `status: "async_launched"`。如需让主 Agent 改为等待新 Agent,请参阅[选择 Claude 是否等待子代理](/docs/zh-CN/agent-sdk/subagents#choose-whether-claude-waits-for-subagents)。

2595* **从您的某个子代理调用**:发起调用的子代理会[等待新 Agent](/docs/zh-CN/sub-agents#let-subagents-spawn-their-own-subagents)。当新 Agent 的定义将 [`background`](#agentdefinition) 设置为 `True`,或者您通过将 `CLAUDE_CODE_FORK_SUBAGENT` 设置为 `0` 来[关闭 fork 模式](/docs/zh-CN/sub-agents#turn-fork-mode-on-or-off)时,新 Agent 会改为在后台运行。

2596 

2597在 Python SDK v0.2.169 之前,由您的子代理启动的 Agent 默认也在后台运行。该版本是首个捆绑 Claude Code v2.1.302 或更高版本的版本。

2598 

2587**输出(status:`"completed"`):**2599**输出(status:`"completed"`):**

2588 2600 

2589```python theme={null}2601```python theme={null}


3519 "Claude Code CLI not found. Try reinstalling: pip install --force-reinstall claude-agent-sdk"3531 "Claude Code CLI not found. Try reinstalling: pip install --force-reinstall claude-agent-sdk"

3520 )3532 )

3521 # Catch ResultError before ProcessError, which it subclasses. Its message3533 # Catch ResultError before ProcessError, which it subclasses. Its message

3522 # carries the error text. A failed final request, such as an API error,3534 # carries the error text. A refusal and a failed final request both usually

3523 # arrives with subtype "success", so branch on terminal_reason first.3535 # arrive with subtype "success", so check stop_reason, then terminal_reason.

3524 except ResultError as e:3536 except ResultError as e:

3525 if e.terminal_reason == "api_error":3537 if e.data.get("stop_reason") == "refusal":

3538 print(f"Model declined to respond: {e}")

3539 elif e.terminal_reason == "api_error":

3526 print(f"API request failed: {e}")3540 print(f"API request failed: {e}")

3527 else:3541 else:

3528 print(f"Query ended with an error result ({e.terminal_reason or e.subtype}): {e}")3542 print(f"Query ended with an error result ({e.terminal_reason or e.subtype}): {e}")

Details

318 318 

319## 已知限制319## 已知限制

320 320 

321* **结构化输出**:启用部分消息时,JSON 作为工具调用的未验证 `input_json_delta` 块进行流式传输,只有验证后的结果才会到达最终的 `ResultMessage.structured_output`。有关详细信息,请参阅[结构化输出](/docs/zh-CN/agent-sdk/structured-outputs)。321* **结构化输出**:启用部分消息时,JSON 作为工具调用的未验证 `input_json_delta` 块进行流式传输,只有验证后的结果才会到达最终的 `ResultMessage.structured_output`。[识别 StructuredOutput 工具调用](/docs/zh-CN/agent-sdk/structured-outputs#recognize-the-structuredoutput-tool-call)介绍了该调用在您的流中如何呈现。

322 322 

323## 后续步骤323## 后续步骤

324 324 

Details

368asyncio.run(main())368asyncio.run(main())

369```369```

370 370 

371## 识别 StructuredOutput 工具调用

372 

373当您在 TypeScript 中设置 `outputFormat` 或在 Python 中设置 `output_format` 时,消息流中会出现一个名为 `StructuredOutput` 的工具调用,而您从未定义过该工具。Claude Code 会将此工具添加到会话中,Agent 通过调用它来返回答案。[系统 init 消息](/docs/zh-CN/agent-sdk/typescript#sdksystemmessage)会在 `tools` 数组中列出该工具,每次调用都以两个块的形式出现:

374 

375* 一个名为 `StructuredOutput` 的 `tool_use` 块,其输入是 Agent 根据您的 schema 生成的对象

376* 一个内容为 `Structured output provided successfully` 的 `tool_result` 块

377 

378当该对象与您的 schema 不匹配时,`tool_result` 会改为带有 `is_error: true`,Agent 会再次调用 `StructuredOutput`,因此一次查询的消息流中可能包含多次调用。请从结果消息的 `structured_output` 中读取经过验证的数据,而不是从 `tool_use` 块中读取;关于所有尝试均未成功时得到的结果,请参阅[错误处理](#error-handling)。

379 

380如果您的应用程序会显示工具调用或将其记录到日志中,请跳过名为 `StructuredOutput` 的调用,以免这一机制显示为 Agent 自行选择的步骤。`tool_result` 块不包含工具名称,只包含其所响应调用的 `tool_use_id`,因此请将其与您跳过的每个调用的 `id` 进行匹配。

381 

371## 错误处理382## 错误处理

372 383 

373结构化输出生成可能会失败,当 Agent 无法生成与您的 schema 匹配的有效 JSON 时。这通常发生在 schema 对于任务来说太复杂、任务本身不明确或 Agent 在尝试修复验证错误时达到重试限制时。它也可能在没有任何验证失败的情况下发生:[模型回退](/docs/zh-CN/model-config#automatic-model-fallback)可以在流中途收回已完成的输出,如果没有重试替换它,运行将以相同的错误结束。在调试您的 schema 之前,检查错误结果消息上的 `errors` 列表以区分这两个原因。384结构化输出生成可能会失败,当 Agent 无法生成与您的 schema 匹配的有效 JSON 时。这通常发生在 schema 对于任务来说太复杂、任务本身不明确或 Agent 在尝试修复验证错误时达到重试限制时。它也可能在没有任何验证失败的情况下发生:[模型回退](/docs/zh-CN/model-config#automatic-model-fallback)可以在流中途收回已完成的输出,如果没有重试替换它,运行将以相同的错误结束。在调试您的 schema 之前,检查错误结果消息上的 `errors` 列表以区分这两个原因。

Details

147| `tools` | `string[]` | 否 | 允许的工具名称数组。如果省略,继承[子代理可用的每个工具](/docs/zh-CN/sub-agents#available-tools) |147| `tools` | `string[]` | 否 | 允许的工具名称数组。如果省略,继承[子代理可用的每个工具](/docs/zh-CN/sub-agents#available-tools) |

148| `disallowedTools` | `string[]` | 否 | 要从代理工具集中移除的工具名称数组。也接受 MCP 服务器级别的模式:`mcp__server` 或 `mcp__server__*` 移除该服务器的每个工具,`mcp__*` 移除任何服务器的每个 MCP 工具 |148| `disallowedTools` | `string[]` | 否 | 要从代理工具集中移除的工具名称数组。也接受 MCP 服务器级别的模式:`mcp__server` 或 `mcp__server__*` 移除该服务器的每个工具,`mcp__*` 移除任何服务器的每个 MCP 工具 |

149| `model` | `string` | 否 | 此代理的模型覆盖。接受别名如 `'fable'`、`'opus'`、`'sonnet'`、`'haiku'`、`'inherit'` 或完整模型 ID。`'inherit'` 使用主模型。省略时,Claude Code 选择[子代理模型顺序](/docs/zh-CN/sub-agents#choose-a-model)中的模型 |149| `model` | `string` | 否 | 此代理的模型覆盖。接受别名如 `'fable'`、`'opus'`、`'sonnet'`、`'haiku'`、`'inherit'` 或完整模型 ID。`'inherit'` 使用主模型。省略时,Claude Code 选择[子代理模型顺序](/docs/zh-CN/sub-agents#choose-a-model)中的模型 |

150| `skills` | `string[]` | 否 | 启动时预加载到代理上下文中的技能名称列表。未列出的技能仍可通过 Skill 工具调用 |150| `skills` | `string[]` | 否 | 启动时预加载到 Agent 上下文中的 skill 名称列表。最多预加载列表中的[前 32 个不同名称](/docs/zh-CN/sub-agents#preload-skills-into-subagents)。未列出的 skill 仍可通过 Skill 工具调用 |

151| `memory` | `'user' \| 'project' \| 'local'` | 否 | 此代理的内存源 |151| `memory` | `'user' \| 'project' \| 'local'` | 否 | 此代理的内存源 |

152| `mcpServers` | `(string \| object)[]` | 否 | 此代理可用的 MCP 服务器,按名称或内联配置 |152| `mcpServers` | `(string \| object)[]` | 否 | 此代理可用的 MCP 服务器,按名称或内联配置 |

153| `initialPrompt` | `string` | 否 | 当此代理作为主线程代理运行时自动提交为第一个用户轮次。当代理作为子代理调用时忽略 |153| `initialPrompt` | `string` | 否 | 当此代理作为主线程代理运行时自动提交为第一个用户轮次。当代理作为子代理调用时忽略 |


323 323 

324Claude 通过 Agent 工具调用子代理。要检测何时调用子代理,请检查 `tool_use` 块,其中 `name` 为 `"Agent"`。324Claude 通过 Agent 工具调用子代理。要检测何时调用子代理,请检查 `tool_use` 块,其中 `name` 为 `"Agent"`。

325 325 

326来自子代理上下文内的消息包含 `parent_tool_use_id` 字段。在 TypeScript 中,子代理生成的每条 assistant 消息和 user 消息还带有 [`agent_id`](/docs/zh-CN/agent-sdk/typescript#sdkassistantmessage):即该子代理的[任务事件](/docs/zh-CN/agent-sdk/typescript#sdktaskstartedmessage)中的 `task_id`。`agent_id` 需要 TypeScript Agent SDK v0.3.292 或更高版本。326来自子代理上下文内的消息包含 `parent_tool_use_id` 字段。在 TypeScript 中,子代理生成的每条 assistant 消息和 user 消息还带有 [`agent_id`](/docs/zh-CN/agent-sdk/typescript#sdkassistantmessage):即该子代理的[任务事件](/docs/zh-CN/agent-sdk/typescript#sdktaskstartedmessage)中的 `task_id`。当您[恢复子代理](#resume-subagents)时,`agent_id` 保持不变。`agent_id` 需要 TypeScript Agent SDK v0.3.292 或更高版本。

327 327 

328> [!NOTE]328> [!NOTE]

329>329>

Details

660| `supportedModels()` | 返回可用的模型及其显示信息 |660| `supportedModels()` | 返回可用的模型及其显示信息 |

661| `supportedAgents()` | 以 [`AgentInfo`](#agentinfo)`[]` 形式返回可用的子代理 |661| `supportedAgents()` | 以 [`AgentInfo`](#agentinfo)`[]` 形式返回可用的子代理 |

662| `mcpServerStatus()` | 以 [`McpServerStatus`](#mcpserverstatus)`[]` 形式返回已连接 MCP 服务器的状态 |662| `mcpServerStatus()` | 以 [`McpServerStatus`](#mcpserverstatus)`[]` 形式返回已连接 MCP 服务器的状态 |

663| `getContextUsage(opts?)` | 返回一个 [`SDKControlGetContextUsageResponse`](#sdkcontrolgetcontextusageresponse),按类别、skill 和工具细分会话的上下文窗口使用情况。使用默认的 `detail` 时,其数据与交互式会话中 `/context` 显示的相同,通过不会出现在消息流中的 token 计数 API 请求计算得出;请参阅[这些请求的处理方式](#sdkcontrolgetcontextusageresponse)。[`detail` 选项](#sdkcontrolgetcontextusageresponse)需要 Agent SDK v0.3.257 或更高版本 |663| `getContextUsage(opts?)` | 返回一个 [`SDKControlGetContextUsageResponse`](#sdkcontrolgetcontextusageresponse),按类别、skill 和工具细分会话的上下文窗口使用情况。使用默认的 `detail` 时,它包含 `/context` 在交互式会话中显示的数据,这些数据通过不会出现在消息流中的 token 计数 API 请求计算得出;请参阅[这些请求的处理方式](#sdkcontrolgetcontextusageresponse)。[`detail` 选项](#sdkcontrolgetcontextusageresponse)需要 Agent SDK v0.3.257 或更高版本 |

664| `readFile(path, options?)` | 从会话的文件系统中读取文件。Claude Code 会相对于 `cwd` 解析路径;[`readFile()` 可以读取的内容](#what-readfile-can-read)列出了它可提供的文件。传递 `{ maxBytes }` 可更改读取上限(默认 1 MB,最大 10 MB),对于图像等二进制文件传递 `{ encoding: 'base64' }`。以 [`SDKControlReadFileResponse`](#sdkcontrolreadfileresponse) 完成;在权限被拒绝、文件不存在或传输错误时以 `null` 完成。需要 TypeScript SDK v0.2.121 或更高版本 |664| `readFile(path, options?)` | 从会话的文件系统中读取文件。Claude Code 会相对于 `cwd` 解析路径;[`readFile()` 可以读取的内容](#what-readfile-can-read)列出了它可提供的文件。传递 `{ maxBytes }` 可更改读取上限(默认 1 MB,最大 10 MB),对于图像等二进制文件传递 `{ encoding: 'base64' }`。以 [`SDKControlReadFileResponse`](#sdkcontrolreadfileresponse) 完成;在权限被拒绝、文件不存在或传输错误时以 `null` 完成。需要 TypeScript SDK v0.2.121 或更高版本 |

665| `reloadPlugins(options?)` | 从磁盘重新加载插件,使您在会话中途安装或编辑的插件作用于正在运行的会话。以 [`SDKControlReloadPluginsResponse`](#sdkcontrolreloadpluginsresponse) 完成,其中列出会话的命令、子代理、插件和 MCP 服务器状态。需要 Agent SDK v0.2.85 或更高版本。[`holdOnCacheImpact` 选项](#sdkcontrolreloadpluginsresponse)需要 Agent SDK v0.3.268 或更高版本 |665| `reloadPlugins(options?)` | 从磁盘重新加载插件,使您在会话中途安装或编辑的插件作用于正在运行的会话。以 [`SDKControlReloadPluginsResponse`](#sdkcontrolreloadpluginsresponse) 完成,其中列出会话的命令、子代理、插件和 MCP 服务器状态。需要 Agent SDK v0.2.85 或更高版本。[`holdOnCacheImpact` 选项](#sdkcontrolreloadpluginsresponse)需要 Agent SDK v0.3.268 或更高版本 |

666| `reloadSkills()` | 从磁盘重新加载 skill,使您在会话中途添加或编辑的 skill 可供正在运行的会话使用。以 [`SDKControlReloadSkillsResponse`](#sdkcontrolreloadskillsresponse) 完成,其中列出重新加载后可用的 skill。需要 Agent SDK v0.3.163 或更高版本 |666| `reloadSkills()` | 从磁盘重新加载 skill,使您在会话中途添加或编辑的 skill 可供正在运行的会话使用。以 [`SDKControlReloadSkillsResponse`](#sdkcontrolreloadskillsresponse) 完成,其中列出重新加载后可用的 skill。需要 Agent SDK v0.3.163 或更高版本 |


863 863 

864### `SDKControlGetContextUsageResponse`864### `SDKControlGetContextUsageResponse`

865 865 

866[`getContextUsage()`](#query-object) 的返回类型。使用默认的 `detail` 时,这与 Claude Code 在交互式会话中为 `/context` 命令渲染的负载相同,因此除 token 计数外,它还携带 `color` 和 `gridRows` 等显示字段,Claude Code 使用这些字段绘制 `/context` 用量网格。866[`getContextUsage()`](#query-object) 的返回类型。使用默认的 `detail` 时,响应包含 Claude Code 在交互式会话中为 `/context` 命令渲染的负载。除 token 计数外,该负载还携带 `color` 和 `gridRows` 等显示字段,Claude Code 用它们绘制 `/context` 用量网格。

867 867 

868该方法的可选 `detail` 参数决定 Claude Code 如何统计每个类别。`detail` 参数需要 Agent SDK v0.3.257 或更高版本。868该方法的可选 `detail` 参数决定 Claude Code 如何统计每个类别。`detail` 参数需要 Agent SDK v0.3.257 或更高版本。

869 869 


872 872 

873当您将 `/context` 作为提示词发送而不是调用该方法时,Claude Code 会将一个 [`SDKContextUsage`](#sdkcontextusage) 负载附加到传递结果的 assistant 消息的 `context_usage` 字段。该字段需要 Agent SDK v0.3.232 或更高版本。873当您将 `/context` 作为提示词发送而不是调用该方法时,Claude Code 会将一个 [`SDKContextUsage`](#sdkcontextusage) 负载附加到传递结果的 assistant 消息的 `context_usage` 字段。该字段需要 Agent SDK v0.3.232 或更高版本。

874 874 

875在 `SDKControlGetContextUsageResponse` 中,`categories[].id`、`mcpInstructions`,以及 `agents` 和 `skills.skillFrontmatter` 条目的 `pluginId` 和 `path` 字段需要 Agent SDK v0.3.304 或更高版本。

876 

875```typescript theme={null}877```typescript theme={null}

876type SDKControlGetContextUsageResponse = {878type SDKControlGetContextUsageResponse = {

877 categories: {879 categories: {

880 id?:

881 | "system_prompt"

882 | "system_tools"

883 | "mcp_tools"

884 | "mcp_instructions"

885 | "mcp_tools_deferred"

886 | "system_tools_deferred"

887 | "custom_agents"

888 | "memory_files"

889 | "skills"

890 | "messages"

891 | "autocompact_buffer"

892 | "compact_buffer"

893 | "free_space";

878 name: string;894 name: string;

879 tokens: number;895 tokens: number;

880 color: string;896 color: string;


905 tokens: number;921 tokens: number;

906 isLoaded?: boolean;922 isLoaded?: boolean;

907 }[];923 }[];

924 mcpInstructions?: {

925 serverName: string;

926 tokens: number;

927 }[];

908 deferredBuiltinTools?: {928 deferredBuiltinTools?: {

909 name: string;929 name: string;

910 tokens: number;930 tokens: number;


921 agents: {941 agents: {

922 agentType: string;942 agentType: string;

923 source: string;943 source: string;

944 pluginId?: string;

945 path?: string;

924 tokens: number;946 tokens: number;

925 }[];947 }[];

926 slashCommands?: {948 slashCommands?: {


935 skillFrontmatter: {957 skillFrontmatter: {

936 name: string;958 name: string;

937 source: string;959 source: string;

960 pluginName?: string;

961 pluginId?: string;

962 path?: string;

938 tokens: number;963 tokens: number;

939 }[];964 }[];

940 };965 };


978 1003 

979Claude Code 不会设置可选的 `deferredBuiltinTools`、`systemTools` 和 `systemPromptSections` 诊断字段,因此即使类型中声明了它们,也应预期它们不存在。1004Claude Code 不会设置可选的 `deferredBuiltinTools`、`systemTools` 和 `systemPromptSections` 诊断字段,因此即使类型中声明了它们,也应预期它们不存在。

980 1005 

1006#### 按 ID 查找行、服务器的指令 token 或条目的插件和文件

1007 

1008MCP 服务器指令是已连接服务器提供、由 Claude Code 添加到上下文中的使用说明,`categories` 中的 `mcp_instructions` 行统计它们的 token。使用以下 [`getContextUsage()`](#query-object) 字段,可以按 `id` 挑出某一 `categories` 行、按服务器拆分 `mcp_instructions` 的 token,或查找某个 Agent 或 skill 条目背后的插件和文件:

1009 

1010| 字段 | 所在位置 | 包含内容 |

1011| :- | :- | :- |

1012| `id` | 每个 `categories` 行 | 该行的标识符,为[响应类型](#sdkcontrolgetcontextusageresponse)所列值之一,例如 `mcp_instructions`。按 `id` 匹配可挑出某一行,按 `kind` 匹配可对行进行分组。较新的 Claude Code 版本可能会发送您已安装的类型中未列出的值,因此请将无法识别的 `id` 视为不存在 |

1013| `mcpInstructions` | 响应 | 每个提供指令的已连接 MCP 服务器对应一个 `{ serverName, tokens }` 条目;若没有服务器提供指令则为空数组。`tokens` 值是估算值,其总和等于 `mcp_instructions` 行的 `tokens`。`serverName` 是 [`mcpServerStatus()`](#query-object) 为该服务器报告的 `name` |

1014| `pluginId` | `agents` 和 `skills.skillFrontmatter` 条目 | 以 `name@marketplace` 形式的 ID 指明条目来自的插件;对于不来自插件的条目则不存在。当插件并非来自市场时,`@` 之后的部分会改为指明[其来源](/docs/zh-CN/plugins/loading#find-where-a-plugin-came-from),例如对于您通过 [`plugins`](#options) 选项加载的插件为 `inline` |

1015| `path` | `agents` 和 `skills.skillFrontmatter` 条目 | 定义该 Agent 或 skill 的文件在运行 Claude Code 的机器上的绝对路径。当没有文件定义该条目时,该字段不存在,例如来自 [`agents`](#options) 选项的 Agent 或 Claude Code 内置的 skill |

1016 

1017作为按 `id` 匹配的示例,以下代码查找 `mcp_instructions` 行:

1018 

1019```typescript theme={null}

1020// q is the Query object that query() returned

1021const usage = await q.getContextUsage();

1022// undefined if no connected server supplies instructions

1023const row = usage.categories.find((c) => c.id === "mcp_instructions");

1024```

1025 

981### `SDKControlReadFileResponse`1026### `SDKControlReadFileResponse`

982 1027 

983[`readFile()`](#query-object) 的返回类型。1028[`readFile()`](#query-object) 的返回类型。


2989 3034 

2990内置 Claude Code 工具的输入 schema 文档。这些类型从 `@anthropic-ai/claude-agent-sdk/sdk-tools` 导出,可用于类型安全的工具交互。3035内置 Claude Code 工具的输入 schema 文档。这些类型从 `@anthropic-ai/claude-agent-sdk/sdk-tools` 导出,可用于类型安全的工具交互。

2991 3036 

3037`StructuredOutput` 工具在此处没有类型:Claude Code 根据您传递给 `outputFormat` 的 schema 构建其输入 schema,因此没有固定的内容可以导出。请参阅[识别 StructuredOutput 工具调用](/docs/zh-CN/agent-sdk/structured-outputs#recognize-the-structuredoutput-tool-call),了解该调用在您的消息流中的样子。

3038 

2992### `ToolInputSchemas`3039### `ToolInputSchemas`

2993 3040 

2994从 `@anthropic-ai/claude-agent-sdk/sdk-tools` 导出的工具输入类型的联合;成员包括:3041从 `@anthropic-ai/claude-agent-sdk/sdk-tools` 导出的工具输入类型的联合;成员包括:


5204* **调用未指定的服务器**:在[云端会话](/docs/zh-CN/claude-code-on-the-web)之外,Claude Code 会断开先前 `setMcpServers()` 调用添加的服务器以及进程内 SDK 服务器的连接,并在 `removed` 中列出它们。其他服务器会继续运行,且不会列在 `removed` 中,其中包括来自 [`mcpServers`](#options) 选项的 stdio、HTTP 和 SSE 服务器、来自设置文件的服务器以及插件提供的服务器。5251* **调用未指定的服务器**:在[云端会话](/docs/zh-CN/claude-code-on-the-web)之外,Claude Code 会断开先前 `setMcpServers()` 调用添加的服务器以及进程内 SDK 服务器的连接,并在 `removed` 中列出它们。其他服务器会继续运行,且不会列在 `removed` 中,其中包括来自 [`mcpServers`](#options) 选项的 stdio、HTTP 和 SSE 服务器、来自设置文件的服务器以及插件提供的服务器。

5205* **调用指定的服务器**:对于先前 `setMcpServers()` 调用添加的 stdio、HTTP 或 SSE 服务器,只有当其配置与您传入的配置不同时,Claude Code 才会替换它。已以该名称注册的进程内 SDK 服务器会保持原样,因此要替换它,请在一次调用中将其省略,然后在下一次调用中添加它。5252* **调用指定的服务器**:对于先前 `setMcpServers()` 调用添加的 stdio、HTTP 或 SSE 服务器,只有当其配置与您传入的配置不同时,Claude Code 才会替换它。已以该名称注册的进程内 SDK 服务器会保持原样,因此要替换它,请在一次调用中将其省略,然后在下一次调用中添加它。

5206* **CLI 在启动时启动的内置服务器**:如果调用指定了其中之一,Claude Code 会丢弃该条目并在 `errors` 中报告它。5253* **CLI 在启动时启动的内置服务器**:如果调用指定了其中之一,Claude Code 会丢弃该条目并在 `errors` 中报告它。

5254* **与 MCP 安装作用域(例如 `.mcp.json`)中的服务器同名的 stdio、HTTP 或 SSE 服务器**:在该名称下,会话使用您的服务器的工具,而不是[安装作用域服务器](/docs/zh-CN/mcp#mcp-installation-scopes)的工具。在 Claude Code v2.1.305 之前,当您的应用[重新加载插件](#query-object)时,Claude Code 可能会断开您的服务器的连接并改为连接安装作用域服务器。

5207 5255 

5208Promise 会在新添加的 stdio、HTTP 和 SSE 服务器连接成功或失败后 resolve,因此已连接服务器的工具在下一轮次即可使用。5256Promise 会在新添加的 stdio、HTTP 和 SSE 服务器连接成功或失败后 resolve,因此已连接服务器的工具在下一轮次即可使用。

5209 5257 

agent-teams.md +52 −50

Details

34| | Subagents | Agent teams |34| | Subagents | Agent teams |

35| :- | :- | :- |35| :- | :- | :- |

36| **Context** | 自己的 context window;结果返回给调用者 | 自己的 context window;完全独立 |36| **Context** | 自己的 context window;结果返回给调用者 | 自己的 context window;完全独立 |

37| **通信** | 向调用者返回结果。Claude 在生成 subagents 时命名的 Subagents 也可以 [相互发送消息](/docs/zh-CN/sub-agents#what-loads-at-startup) | 队友直接相互发送消息 |37| **通信** | 向调用者返回结果。Claude 在生成子代理时为其[命名](/docs/zh-CN/sub-agents#subagent-names)的子代理也可以 [相互发送消息](/docs/zh-CN/sub-agents#what-loads-at-startup) | 队友直接相互发送消息 |

38| **协调** | 主代理管理所有工作 | 通过消息进行自我协调,加上具有 [Task tools 的代理](/docs/zh-CN/tools-reference#task-tool-availability) 的共享任务列表 |38| **协调** | 主代理管理所有工作 | 通过消息进行自我协调,加上具有 [Task tools 的代理](/docs/zh-CN/tools-reference#task-tool-availability) 的共享任务列表 |

39| **最适合** | 只有结果重要的专注任务 | 需要讨论和协作的复杂工作 |39| **最适合** | 只有结果重要的专注任务 | 需要讨论和协作的复杂工作 |

40| **令牌成本** | 较低:结果汇总回主 context | 较高:每个队友是一个独立的 Claude 实例 |40| **令牌成本** | 较低:结果汇总回主 context | 较高:每个队友是一个独立的 Claude 实例 |


85 85 

86如果你想让每个队友在自己的分割窗格中,请参阅 [选择显示模式](#choose-a-display-mode)。86如果你想让每个队友在自己的分割窗格中,请参阅 [选择显示模式](#choose-a-display-mode)。

87 87 

88## 控制你的 agent team88## 控制您的 agent team

89 89 

90用自然语言告诉负责人你想要什么。它根据你的指示处理团队协调、任务分配和委派。90用自然语言告诉负责人(lead)您想要什么。它会根据您的指示处理团队协调、任务分配和委派。

91 91 

92### 选择显示模式92### 选择显示模式

93 93 

94Agent teams 支持两种显示模式:94Agent team 支持两种显示模式:

95 95 

96* **In-process**:所有队友在你的主终端内运行。在 agent 面板中使用上下箭头键选择队友,然后按 Enter 查看它并输入以直接向它发送消息。在任何终端中工作,无需额外设置。96* **进程内**:所有队友都在您的主终端内运行。在 Agent 面板中使用上下方向键选择一个队友,然后按 Enter 查看它,并直接输入内容向其发送消息。适用于任何终端,无需额外设置。

97* **Split panes**:每个队友获得自己的窗格。你可以同时看到每个人的输出,并点击窗格直接交互。需要 tmux 或 iTerm2。97* **分屏窗格**:每个队友拥有自己的窗格。您可以同时看到所有人的输出,并点击进入某个窗格直接与之交互。需要 tmux 或 iTerm2。

98 98 

99> [!NOTE]99> [!NOTE]

100>100>

101> `tmux` 在某些操作系统上有已知限制,传统上在 macOS 上效果最好。在 iTerm2 中使用 `tmux -CC` 是进入 `tmux` 的建议入口点。101> `tmux` 在某些操作系统上存在已知限制,传统上在 macOS 上效果最佳。建议在 iTerm2 中使用 `tmux -CC` 作为进入 `tmux` 的方式。

102 102 

103默认值是 `"in-process"`。设置 `"auto"` 以在你已经在 tmux 会话中运行,或你的终端是安装了 `it2` CLI 的 iTerm2 时启用分割窗格,否则回退到 in-process。`"tmux"` 设置启用分割窗格模式,并根据你的终端自动检测是使用 tmux 还是 iTerm2。103默认值为 `"in-process"`。设置为 `"auto"` 时,如果您已在 tmux 会话中运行,或者您的终端是已安装 `it2` CLI 的 iTerm2,则启用分屏窗格,否则回退到进程内模式。`"tmux"` 设置会启用分屏窗格模式,并根据您的终端自动检测使用 tmux 还是 iTerm2。

104 104 

105设置 `"iterm2"` 以显式使用 iTerm2 原生分割窗格。此模式需要 [`it2` CLI](https://github.com/mkusaka/it2),如果 `it2` 缺失,会显示带有安装命令的错误。当你的终端是 iTerm2 且 tmux 可用作备选方案时,在 `"auto"` 或 `"tmux"` 下会出现提供安装 `it2` 或切换到 tmux 的设置提示。105设置为 `"iterm2"` 可显式使用 iTerm2 原生分屏窗格。此模式需要 [`it2` CLI](https://github.com/mkusaka/it2),如果缺少 `it2`,会显示错误并附带安装命令。当您的终端是 iTerm2 且 tmux 可作为回退选项时,在 `"auto"` 或 `"tmux"` 下会出现设置提示,询问是安装 `it2` 还是切换到 tmux。

106 106 

107要覆盖默认值,在 `~/.claude/settings.json` 中设置 [`teammateMode`](/docs/zh-CN/settings-reference#teammatemode):107要覆盖默认值,请在 `~/.claude/settings.json` 中设置 [`teammateMode`](/docs/zh-CN/settings-reference#teammatemode):

108 108 

109```json theme={null}109```json theme={null}

110{110{


112}112}

113```113```

114 114 

115要为单个会话设置模式,将其作为标志传递:115要为单个会话设置模式,请将其作为标志传入:

116 116 

117```bash theme={null}117```bash theme={null}

118claude --teammate-mode auto118claude --teammate-mode auto


120 120 

121`--teammate-mode` 标志是实验性的,不会出现在 `claude --help` 中。121`--teammate-mode` 标志是实验性的,不会出现在 `claude --help` 中。

122 122 

123分割窗格模式需要 [tmux](https://github.com/tmux/tmux/wiki) 或 iTerm2 与 [`it2` CLI](https://github.com/mkusaka/it2)。手动安装:123分屏窗格模式需要 [tmux](https://github.com/tmux/tmux/wiki),或者安装了 [`it2` CLI](https://github.com/mkusaka/it2) 的 iTerm2。手动安装方法:

124 124 

125* **tmux**:通过你的系统包管理器安装。有关特定于平台的说明,请参阅 [tmux wiki](https://github.com/tmux/tmux/wiki/Installing)。125* **tmux**:通过系统的包管理器安装。有关特定平台的说明,请参阅 [tmux wiki](https://github.com/tmux/tmux/wiki/Installing)。

126* **iTerm2**:安装 [`it2` CLI](https://github.com/mkusaka/it2),然后在 **iTerm2 → Settings → General → Magic → Enable Python API** 中启用 Python API。126* **iTerm2**:安装 [`it2` CLI](https://github.com/mkusaka/it2),然后在 **iTerm2 → Settings → General → Magic → Enable Python API** 中启用 Python API。

127 127 

128### 指定队友和模型128### 指定队友和模型

129 129 

130Claude 根据你的任务决定要生成的队友数量,或者你可以指定你想要的确切内容:130Claude 会根据您的任务决定生成的队友数量,您也可以准确指定您想要的内容:

131 131 

132```text wrap theme={null}132```text wrap theme={null}

133Spawn 4 teammates to refactor these modules in parallel. Use Sonnet for133Spawn 4 teammates to refactor these modules in parallel. Use Sonnet for

134each teammate.134each teammate.

135```135```

136 136 

137Claude Code 从以下第一个适用的来源为每个队友选择模型:137Claude Code 按以下顺序,取第一个适用的来源作为每个队友的模型:

138 138 

1391. 你的生成提示为该队友命名的模型。1391. 您的生成提示词中为该队友指定的模型。

1402. 对于从[子 agent 定义](#use-subagent-definitions-for-teammates)生成的队友,定义的 `model`,其中 `inherit` 选择负责人的模型。1402. 对于从[子代理定义](#use-subagent-definitions-for-teammates)生成的队友,使用该定义的 `model`,其中 `inherit` 表示选择负责人的模型。

1413. [`CLAUDE_CODE_SUBAGENT_MODEL`](/docs/zh-CN/model-config#environment-variables),当它设置为除 `inherit` 之外的任何值时。1413. [`CLAUDE_CODE_SUBAGENT_MODEL`](/docs/zh-CN/model-config#environment-variables),当其设置为 `inherit` 以外的任何值时。

1424. 负责人的当前模型。1424. 负责人的当前模型。

143 143 

144如果已安装的 [mod](/docs/zh-CN/plugins/mods/overview) 在其 [`agent.spawn`](/docs/zh-CN/plugins/mods/reference#subagents) hook 中设置了模型,Claude Code 会使用该模型代替第一个来源。144如果已安装的 [mod](/docs/zh-CN/plugins/mods/overview) 在其 [`agent.spawn`](/docs/zh-CN/plugins/mods/reference#subagents) hook 中设置了模型,Claude Code 会使用该模型代替第一个来源。

145 145 

146如果你设置 [`CLAUDE_CODE_SUBAGENT_MODEL_FORCE=1`](/docs/zh-CN/sub-agents#run-every-subagent-on-one-model),前两个来源不适用。当 Claude Code 设置为除 `inherit` 之外的任何值时,Claude Code 从 `CLAUDE_CODE_SUBAGENT_MODEL` 为每个队友选择模型,否则从负责人的当前模型选择。需要 Claude Code v2.1.257 或更高版本。146如果您设置了 [`CLAUDE_CODE_SUBAGENT_MODEL_FORCE=1`](/docs/zh-CN/sub-agents#run-every-subagent-on-one-model),则前两个来源不适用。当 `CLAUDE_CODE_SUBAGENT_MODEL` 这个环境变量设置为 `inherit` 以外的任何值时,Claude Code 从该变量中选取每个队友的模型;否则从负责人的当前模型中选取。需要 Claude Code v2.1.257 或更高版本。

147 147 

148在 v2.1.251 之前,`CLAUDE_CODE_SUBAGENT_MODEL` 在此顺序中排在第一位。148在 v2.1.251 之前,`CLAUDE_CODE_SUBAGENT_MODEL` 在此顺序中排在首位。

149 149 

150> [!NOTE]150> [!NOTE]

151>151>

152> `teammateDefaultModel` 在 v2.1.234 中被移除;Claude Code 忽略任何剩余值。在你的提示中命名模型。152> `teammateDefaultModel` 已在 v2.1.234 中移除;Claude Code 会忽略残留的值。请改为在提示词中指定模型。

153 153 

154Claude Code 检查为队友选择的模型是否符合你的组织的 [`availableModels`](/docs/zh-CN/model-config#restrict-model-selection) 允许列表。当允许列表阻止一个值时,Claude Code 替换另一个模型:154Claude Code 会根据您组织的 [`availableModels`](/docs/zh-CN/model-config#restrict-model-selection) 允许列表检查它为队友选择的模型。当允许列表阻止某个值时,Claude Code 会替换为另一个模型:

155 155 

156* **系列别名如 `opus`**:在 Anthropic API 和 AWS 上的 Claude Platform 上,Claude Code 在允许列表允许的该系列的最新版本上运行队友。在具有特定于提供商的模型 ID 的提供商上,其中[替换不起作用](/docs/zh-CN/model-config#restrict-model-selection),被阻止的别名会根据下一个项目符号回退,如同任何其他被阻止的值一样156* **系列别名,例如 `opus`**:在 Anthropic API 和 Claude Platform on AWS 上,Claude Code 会在允许列表允许的该系列最新版本上运行队友。在使用提供商特定模型 ID 的提供商上,[替换机制不起作用](/docs/zh-CN/model-config#restrict-model-selection),被阻止的别名会像其他被阻止的值一样,按照下一条规则回退

157* **任何其他被阻止的值,包括在替换不起作用的提供商上的系列别名,或其系列没有允许版本的别名**:Claude Code 在负责人的模型上运行队友。如果你设置 `CLAUDE_CODE_SUBAGENT_MODEL`,Claude Code 首先尝试该模型,遵循相同的规则157* **任何其他被阻止的值,包括在替换机制不起作用的提供商上的系列别名,或其系列没有允许版本的别名**:Claude Code 会改为在负责人的模型上运行队友。如果您设置了 `CLAUDE_CODE_SUBAGENT_MODEL`,Claude Code 会先尝试该模型,并遵循同样的规则

158 158 

159默认情况下,队友继承负责人的 [effort 级别](/docs/zh-CN/model-config#adjust-effort-level)。在分割窗格模式中,这从 v2.1.186 开始适用;较早的版本不会将负责人会话的 effort 传递给分割窗格队友。159默认情况下,队友继承负责人的 [effort 级别](/docs/zh-CN/model-config#adjust-effort-level)。在分屏窗格模式下,此行为从 v2.1.186 起适用;早期版本不会将负责人的会话 effort 传递给分屏窗格队友。

160 160 

161### 让队友在实施前进行规划161### 让队友在实施前先制定计划

162 162 

163对于复杂或有风险的任务,你可以让队友在实施前进行规划。当负责人处于 [plan mode](/docs/zh-CN/permission-modes#analyze-before-you-edit-with-plan-mode) 时,Claude 生成的队友在只读计划模式下工作,直到其计划准备好。首先将负责人切换到计划模式,然后要求队友:163对于复杂或有风险的任务,您可以让队友在实施前先制定计划。当负责人处于[计划模式](/docs/zh-CN/permission-modes#analyze-before-you-edit-with-plan-mode)时由 Claude 生成的队友,会在只读的计划模式下工作,直到其计划准备就绪。先将负责人切换到计划模式,然后请求生成队友:

164 164 

165```text wrap theme={null}165```text wrap theme={null}

166Spawn an architect teammate to refactor the authentication module.166Spawn an architect teammate to refactor the authentication module.

167```167```

168 168 

169当队友完成规划时,它向负责人发送计划批准请求。Claude Code 在请求到达时立即在负责人的会话中批准计划,无需负责人审查。队友的编辑和命令仍然会通过[权限](#permissions)中描述的权限提示。一旦批准,队友退出计划模式并开始实施。169当该队友完成计划后,它会向负责人发送计划批准请求。如果自该队友生成以来您未更改其权限模式,Claude Code 会在请求到达后立即批准该计划,无需负责人审查。队友的编辑和命令仍需经过[权限](#permissions)中所述的权限提示。获得批准后,队友退出计划模式并开始实施。

170 170 

171### 直接与队友交谈171如果您在查看某个正在运行的进程内队友的会话时按 [`Shift+Tab`](/docs/zh-CN/permission-modes#switch-permission-modes) 将其置于计划模式,则该次运行的计划将由负责人审查,而不是由 Claude Code 批准。系统不会要求您批准;负责人会批准该计划或将其退回修改。

172 172 

173每个队友都是一个完整的、独立的 Claude Code 会话。你可以直接向任何队友发送消息,以提供额外的指示、提出后续问题或改变他们的方法。173### 直接与队友对话

174 174 

175* **In-process 模式**:在 agent 面板中使用上下箭头键选择队友,然后按 Enter 查看其会话并输入以向其发送消息。在选定的队友上按 `x` 以停止它。按 Ctrl+T 切换任务列表。175每个队友都是一个完整、独立的 Claude Code 会话。您可以直接向任何队友发送消息,以提供额外指示、询问后续问题或调整其方法。

176* **Split-pane 模式**:点击队友的窗格以直接与他们的会话交互。每个队友都有自己终端的完整视图。

177 176 

178在查看 in-process 队友时,纯文本和 [skill](/docs/zh-CN/skills) 会发送给该队友,而内置命令会发送到负责人的会话,并有以下保护措施:177* **进程内模式**:在 Agent 面板中使用上下方向键选择一个队友,然后按 Enter 查看其会话,并输入内容向其发送消息。在选中的队友上按 `x` 可将其停止。按 Ctrl+T 可切换任务列表。

178* **分屏窗格模式**:点击进入队友的窗格,直接与其会话交互。每个队友都拥有其自身终端的完整视图。

179 179 

180* `/compact`、`/clear` 和 `/rewind` 作用于负责人的对话,因此在此视图中运行其中任一命令之前,Claude Code 会请您确认。180当您查看进程内队友时,纯文本和 [skill](/docs/zh-CN/skills) 会发送给该队友,而内置命令会发送到负责人的会话,并带有以下保护措施:

181* `/model` 和 `/fast` 设置的是负责人的模型和快速模式,而不是队友的,因此它们不会在此视图中运行。系统会显示一条通知说明原因。181 

182* `/compact`、`/clear` 和 `/rewind` 作用于负责人的对话,因此在此视图中运行其中任何一个之前,Claude Code 会要求您确认。

183* `/model` 和 `/fast` 设置的是负责人的模型和快速模式,而不是队友的,因此它们不会在此视图中运行。系统会显示通知告知原因。

182 184 

183队友的模型和快速模式在其生成时即已固定。185队友的模型和快速模式在其生成时即已固定。

184 186 

185### 分配和认领任务187### 分配和认领任务

186 188 

187共享任务列表协调整个团队的工作。负责人创建任务,队友完成它们。任务有三种状态:待处理、进行中和已完成。任务也可以依赖其他任务:具有未解决依赖关系的待处理任务在这些依赖关系完成之前无法被认领。189共享任务列表用于协调整个团队的工作。负责人创建任务,队友逐一完成。任务有三种状态:待处理、进行中和已完成。任务还可以依赖其他任务:具有未解决依赖的待处理任务,在这些依赖完成之前无法被认领。

188 190 

189[没有 Task 工具](/docs/zh-CN/tools-reference#task-tool-availability)的 Agents 通过消息而不是共享任务列表进行协调。191[没有 Task 工具](/docs/zh-CN/tools-reference#task-tool-availability)的 Agent 改为通过消息进行协调,而不是通过共享任务列表。

190 192 

191负责人可以显式分配任务,或队友可以自我认领:193负责人可以显式分配任务,队友也可以自行认领:

192 194 

193* **负责人分配**:告诉负责人将哪个任务分配给哪个队友195* **负责人分配**:告诉负责人将哪个任务交给哪个队友

194* **自我认领**:完成任务后,队友自己选择下一个未分配、未阻止的任务196* **自行认领**:完成一个任务后,队友会自行领取下一个未分配、未被阻塞的任务

195 197 

196任务认领使用文件锁定来防止多个队友同时尝试认领同一任务时的竞态条件。198任务认领使用文件锁定,以防止多个队友同时尝试认领同一任务时出现竞争条件。

197 199 

198### 关闭队友200### 关闭队友

199 201 

200要优雅地结束队友的会话,按名称引用它。例如,对于一个名为 researcher 的队友:202要正常结束某个队友的会话,请按名称指代它。例如,对于名为 researcher 的队友:

201 203 

202```text wrap theme={null}204```text wrap theme={null}

203Ask the researcher teammate to shut down205Ask the researcher teammate to shut down

204```206```

205 207 

206负责人发送关闭请求。队友可以批准,优雅地退出,或拒绝并提供解释。208负责人会发送关闭请求。队友可以批准并正常退出,也可以拒绝并给出解释。

207 209 

208团队的共享目录在会话结束时自动清理,因此没有单独的清理步骤。请参阅[架构](#architecture)了解哪些目录会被删除,以及哪些目录会保留在磁盘上。210团队的共享目录会在会话结束时自动清理,因此无需单独的清理步骤。有关哪些目录会被删除、哪些会保留在磁盘上,请参阅[架构](#architecture)。

209 211 

210### 使用 hooks 强制质量门212### 使用 hook 强制执行质量关卡

211 213 

212使用 [hooks](/docs/zh-CN/hooks) 在队友完成工作或任务创建或完成时强制执行规则:214使用 [hook](/docs/zh-CN/hooks) 在队友完成工作或任务被创建或完成时强制执行规则:

213 215 

214* [`TeammateIdle`](/docs/zh-CN/hooks#teammateidle):当队友即将空闲时运行。以代码 2 退出以发送反馈并保持队友工作。216* [`TeammateIdle`](/docs/zh-CN/hooks#teammateidle):在队友即将进入空闲状态时运行。以代码 2 退出可发送反馈并让队友继续工作。

215* [`TaskCreated`](/docs/zh-CN/hooks#taskcreated):当任务被创建时运行。以代码 2 退出以防止创建并发送反馈。217* [`TaskCreated`](/docs/zh-CN/hooks#taskcreated):在任务正在创建时运行。以代码 2 退出可阻止创建并发送反馈。

216* [`TaskCompleted`](/docs/zh-CN/hooks#taskcompleted):当任务被标记为完成时运行。以代码 2 退出以防止完成并发送反馈。218* [`TaskCompleted`](/docs/zh-CN/hooks#taskcompleted):在任务正被标记为完成时运行。以代码 2 退出可阻止完成并发送反馈。

217 219 

218## Agent teams 如何工作220## Agent teams 如何工作

219 221 


286 288 

287队友从负责人的权限模式开始,除了 [`dontAsk` 模式](/docs/zh-CN/permission-modes#allow-only-pre-approved-tools-with-dontask-mode),他们不继承该模式。如果负责人使用 `--dangerously-skip-permissions` 运行,所有队友也会这样做。生成后,你可以更改个别队友的权限模式,但在生成时无法设置每个队友的权限模式。289队友从负责人的权限模式开始,除了 [`dontAsk` 模式](/docs/zh-CN/permission-modes#allow-only-pre-approved-tools-with-dontask-mode),他们不继承该模式。如果负责人使用 `--dangerously-skip-permissions` 运行,所有队友也会这样做。生成后,你可以更改个别队友的权限模式,但在生成时无法设置每个队友的权限模式。

288 290 

289队友权限提示出现在负责人会话中,所以请在那里自己批准它们。[Plan approval](#have-teammates-plan-before-implementing) 是设计的例外:负责人会话授予队友计划批准,无需向你单独提示。291队友权限提示出现在负责人会话中,所以请在那里亲自批准它们。您无需批准 [队友的计划](#have-teammates-plan-before-implementing)。

290 292 

291#### 代理之间的消息293#### 代理之间的消息

292 294 

agent-view.md +93 −35

Details

276 276 

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

278 278 

279* **前台子代理仍在运行**:Claude Code 会继续等待,以便 Claude 启动的[前台子代理](/docs/zh-CN/sub-agents#run-subagents-in-foreground-or-background)的工作能够转移,并显示 `Still backgrounding after the current tool`。再按一次 `←` 可不等待直接转入后台,这会从头重新启动这些子代理。279* **前台子代理仍在运行**:Claude Code 会继续等待,以便 Claude 启动的[前台子代理](/docs/zh-CN/sub-agents#run-subagents-in-foreground-or-background)的工作得以延续,并显示 `Still backgrounding after the current tool`。再次按 `←` 可不等待直接转入后台,这会使这些子代理从头重新开始。

280* **有权限提示或问题在等待您的回答**:当权限提示或 Claude 提出的问题处于等待状态时,Claude Code 会继续等待并显示 `Still backgrounding after the current tool — a question is waiting for your answer.` 如果您的回答让当前轮次得以继续,例如在权限提示上选择 **Yes**,Claude Code 会在当前工具完成时将会话转入后台。280* **有权限提示或问题在等待您的回答**:当权限提示或 Claude 提出的问题处于等待状态时,Claude Code 会继续等待并显示 `Still backgrounding after the current tool — a question is waiting for your answer.` 如果您的回答让当前轮次得以继续,例如在权限提示上选择 **Yes**,Claude Code 会在当前工具完成时将会话转入后台。

281* **您在提示输入框中输入内容**:Claude Code 会取消切换,因为未发送的文本会留在终端的输入框中,不会移到后台会话。它会显示 `Backgrounding cancelled — you have unsent text in the input. Send it or clear it, then press ← again.`281* **您在提示输入框中输入内容**:Claude Code 会取消切换,因为未发送的文本会留在终端的输入框中,不会移到后台会话。它会显示 `Backgrounding cancelled — you have unsent text in the input. Send it or clear it, then press ← again.` Claude 会继续在前台工作。

282* **您停止了当前轮次**: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` 时,当前轮次会停止。再按一次 `←` 即可将会话转入后台。282* **您停止了当前轮次**: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` 时,当前轮次会停止。再按一次 `←` 即可将会话转入后台。

283* **排队的消息无法移动**:您[在 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.` 的通知。283* **排队的消息无法移动**:您[在 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.` 的通知。

284 284 


288 288 

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

290 290 

291##### 会话移到后台时发送的提示词

292 

293如果您在会话移到后台的那一刻输入提示词或 `!` shell 命令,它会被停止或保持未发送状态:

294 

295* **在对话关闭时发送**:回复或命令会在对话关闭、agent view 打开时停止

296* **此时仍在等待 [hook](/docs/zh-CN/hooks)**:提示词不会被发送,屏幕上也不会有任何说明。这包括在 [`SessionStart` hook](/docs/zh-CN/hooks#sessionstart) 仍在运行时输入的提示词

297 

298在这两种情况下,您输入的文本都会保留在[提示历史](/docs/zh-CN/interactive-mode#command-history)中。要再次发送,请打开已转入后台的会话,在其提示符处按 `↑` 找回该文本。

299 

291### 组织列表300### 组织列表

292 301 

293agent view 对会话进行分组,使需要输入的会话位于顶部,`Ready for review` 和 `Needs input` 位于 `Working` 和 `Completed` 之上。这些组名与上面的[状态](#read-session-state)并非一一对应:会话有需要审查或检查失败的打开拉取请求时会移到 `Ready for review`,而 `Completed` 会同时收纳已完成、失败和已停止的会话。302agent view 对会话进行分组,使需要输入的会话位于顶部,`Ready for review` 和 `Needs input` 位于 `Working` 和 `Completed` 之上。这些组名与上面的[状态](#read-session-state)并非一一对应:会话有需要审查或检查失败的打开拉取请求时会移到 `Ready for review`,而 `Completed` 会同时收纳已完成、失败和已停止的会话。


300* 按 `Shift+↑` 或 `Shift+↓` 重新排序会话309* 按 `Shift+↑` 或 `Shift+↓` 重新排序会话

301* 按 `Ctrl+R` 重命名会话310* 按 `Ctrl+R` 重命名会话

302* 在组标题上按 `Enter` 将其折叠,但[过滤器](#filter-sessions)处于活动状态时除外,此时所有组都保持展开311* 在组标题上按 `Enter` 将其折叠,但[过滤器](#filter-sessions)处于活动状态时除外,此时所有组都保持展开

312* 按 `Ctrl+X` 停止会话,并在两秒内再按一次 `Ctrl+X` 将其从列表中删除,或按 `Esc` 关闭确认而不删除。即使停止尝试失败(例如因为[后台服务没有响应](#agent-view-says-the-background-service-did-not-respond)),第二次按下也会删除会话。在这种情况下,确认状态会再保持两秒,删除操作会自行结束会话的进程

303 313 

304要从列表中移除会话,按 `Ctrl+X` 停止它,并在两秒内再按一次 `Ctrl+X` 删除它。在组标题上按 `Ctrl+X` 会在确认后删除该组中的所有会话。314在组标题上按 `Ctrl+X` 会在确认后删除该组中的所有会话。除了[删除会话会移除什么](#what-deleting-a-session-removes)中所述的保留情况外,删除会将会话从列表中移除。Claude 为其创建的 worktree 会被移除、保留或留在原处,具体取决于您的删除方式以及 worktree 中的内容。对话会话记录保留在您的本地机器上,可通过 `claude --resume` 访问。

305 315 

306即使停止尝试失败(例如因为[后台服务没有响应](#agent-view-says-the-background-service-did-not-respond)),第二次按下也会删除会话:确认状态会再保持两秒,删除操作会自行结束会话的进程。按 `Esc` 可关闭确认而不删除。316屏幕容纳不下的已完成会话会折叠成一行 `… N more`。`Completed` 组会填满活跃组之后剩余的垂直空间。在较矮的终端上,标题会压缩为单行摘要,以便正在工作或需要输入的会话保持可见。

307 317 

308除了[删除会话会移除什么](#what-deleting-a-session-removes)中所述的保留情况外,删除会将会话从列表中移除,而 Claude 为其创建的 worktree 会被移除、保留或留在原处,具体取决于您的删除方式以及 worktree 中的内容。对话会话记录保留在您的本地机器上,可通过 `claude --resume` 访问。318#### 恢复过往会话

309 319 

310在 Claude Code v2.1.212 或更高版本上,要恢复会话,请在分派输入框中输入 `/resume`。此时会打开一个选择器,按从新到旧的顺序列出您打开 agent view 所在仓库的过往会话,包括您从列表中删除的会话;已有行的会话不会列出。`↑`/`↓` 移动选择,`Enter` 将选中的会话作为后台会话恢复,使其以行的形式重新加入列表,`Esc` 关闭选择器。320在 Claude Code v2.1.212 或更高版本上,要恢复会话,请在[分派输入框](#dispatch-an-agent-from-agent-view)中输入 `/resume`。此时会打开一个选择器,按从新到旧的顺序列出您打开 agent view 所在仓库的过往会话,包括您从列表中删除的会话。已有行的会话不会列出。按 `Enter` 将选中的会话作为后台会话恢复,使其以行的形式重新加入列表。

311 321 

312选择器仅在输入不带参数的 `/resume` 时打开。指定目标、限定范围或受限制的恢复无法通过选择器完成,因此在以下情况下,agent view 会改为显示 `attach to a session to run it` 提示:322在以下情况下,`/resume` 会失败并显示 `isn't available in agent view`:

313 323 

314* `/resume` 指定了 id 或搜索词324* `/resume` 指定了 id 或搜索词

315* 视图通过 `--cwd` 限定了范围325* 视图通过 `--cwd` 限定了范围

316* 视图以 [`--safe-mode`](/docs/zh-CN/cli-reference#cli-flags) 启动326* 视图以 [`--safe-mode`](/docs/zh-CN/cli-reference#cli-flags) 启动

317* 视图以 `--permission-mode` 或 `--settings` 等标志打开327* 视图以 `--permission-mode` 或 `--settings` 等标志打开

318 328 

319屏幕容纳不下的已完成会话会折叠成一行 `… N more`。`Completed` 组会填满活跃组之后剩余的垂直空间;在较矮的终端上,标题会压缩为单行摘要,以便正在工作或需要输入的会话保持可见。329如果您在 `/resume` 后输入了任何内容,请去掉这些内容后重新输入。如果您使用了上述某个标志,请在 shell 中不带该标志运行 `claude agents`,然后单独输入 `/resume`。

320 330 

321### 过滤会话331### 过滤会话

322 332 


361| `Ctrl+X` | 停止会话;在两秒内再按一次即可删除 |371| `Ctrl+X` | 停止会话;在两秒内再按一次即可删除 |

362| `Shift+↑` / `Shift+↓` | 重新排序选定的会话 |372| `Shift+↑` / `Shift+↓` | 重新排序选定的会话 |

363| `Esc` | 关闭窥视面板、清空输入框或退出。当您通过用 `←` 将会话转入后台而打开 agent view 时,最后一次 `Esc` 会返回该对话而不是退出。启用 [vim 编辑器模式](/docs/zh-CN/interactive-mode#vim-editor-mode)时,在输入框中按 `Esc` 会从 INSERT 模式切换到 NORMAL 模式并保留您的文本,与主提示输入框相同 |373| `Esc` | 关闭窥视面板、清空输入框或退出。当您通过用 `←` 将会话转入后台而打开 agent view 时,最后一次 `Esc` 会返回该对话而不是退出。启用 [vim 编辑器模式](/docs/zh-CN/interactive-mode#vim-editor-mode)时,在输入框中按 `Esc` 会从 INSERT 模式切换到 NORMAL 模式并保留您的文本,与主提示输入框相同 |

364| `Ctrl+C` | 清空输入框;按两次退出 |374| `Ctrl+C` | 清空输入框;按两次退出。当屏幕上有选中的文本时,按下该键会改为清除选区;除非[选中时已自动复制](/docs/zh-CN/settings-reference#copyonselect),否则会先复制选区 |

365| `?` | 显示快捷键 |375| `?` | 显示快捷键 |

366 376 

367在 [`Agents` 上下文](/docs/zh-CN/keybindings#agents-actions)中有对应操作的快捷键遵循您的 [`keybindings.json`](/docs/zh-CN/keybindings)。`Ctrl+G` 也是如此,它通过 `Chat` 上下文的 `chat:externalEditor` 绑定进行配置。377在 [`Agents` 上下文](/docs/zh-CN/keybindings#agents-actions)中有对应操作的快捷键遵循您的 [`keybindings.json`](/docs/zh-CN/keybindings)。`Ctrl+G` 也是如此,它通过 `Chat` 上下文的 `chat:externalEditor` 绑定进行配置。


395 405 

396* `/exit` 和 `/quit` 关闭 Agent 视图406* `/exit` 和 `/quit` 关闭 Agent 视图

397* `/logout` 将您注销407* `/logout` 将您注销

398* `/model` 设置 [分派模型](#set-the-model)408* `/model`、`/effort` 和 `/fast` 设置 [您接下来分派的会话启动时使用的配置](#set-the-model-effort-and-fast-mode)。`/effort` 和 `/fast` 需要 Claude Code v2.1.299 或更高版本。

399* `/login` 打开登录对话框,以便您无需附加到会话即可重新登录409* `/login` 打开登录对话框,以便您无需附加到会话即可重新登录

400* 不带参数的 `/resume` 或其别名 `/continue` 会打开该仓库过去会话的选择器,以将其中一个作为后台会话 [恢复](#organize-the-list)。需要 Claude Code v2.1.212 或更高版本410* 不带参数的 `/resume` 或其别名 `/continue` 会打开该仓库过去会话的选择器,以将其中一个作为后台会话 [恢复](#bring-back-a-past-session)。需要 Claude Code v2.1.212 或更高版本

401 411 

402Skill、您自己的命令以及会展开为提示词的内置命令(如 `/init`)会作为第一条提示词发送到新的后台会话。其他内置命令则显示 `attach to a session to run it` 提示。您输入的所有内容都会保留在该提示旁边的输入框中,以便您进行编辑。412Skill、您自己的命令以及会展开为提示词的内置命令(如 `/init`)会作为第一条提示词发送到新的后台会话。`isn't available in agent view` 提示表示您输入的内置命令没有运行。要运行它,请 [附加到会话](#attach-to-a-session) 并在其中输入。您输入的所有内容都会保留在该提示旁边的输入框中,以便您进行编辑。

403 413 

404将重复任务打包为 [skill](/docs/zh-CN/skills),即可从 Agent 视图反复启动相同的工作流,而无需重新输入提示词。414将重复任务打包为 [skill](/docs/zh-CN/skills),即可从 Agent 视图反复启动相同的工作流,而无需重新输入提示词。

405 415 


458 468 

459#### 后台处理时的继承内容469#### 后台处理时的继承内容

460 470 

461后台处理会启动一个从已保存对话恢复的新进程,进行中的后台工作会移到该进程:正在运行的后台 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 随后会在后台处理前要求您确认。471后台处理会启动一个从已保存对话恢复的新进程,进行中的后台工作会移到该进程。正在运行的后台 shell 命令、已转入后台的子代理、动态工作流、您使用 [`/loop`](/docs/zh-CN/scheduled-tasks) 创建的定时任务,以及 Claude 对 [Artifact 评论的自动回复](/docs/zh-CN/artifacts#let-claude-reply-to-comments-on-its-own) 都会继承过去并在那里继续运行。子代理会与其启动的所有内容一起移动,因此只有当所有这些工作也都能移动时它才会被继承。

462 472 

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

464 474 


526 claude stop 7c5dcf5d stop this session536 claude stop 7c5dcf5d stop this session

527```537```

528 538 

539#### 包含 `--bg` 的提示词

540 

541提及 `--bg` 或 `--background` 的提示词会按输入原样传递,您发送给后台会话的 `--bg` 回复也是如此。例如,以下命令会启动一个后台会话,第二个 `--bg` 是其提示词的一部分:

542 

543```bash theme={null}

544claude --bg "find out why --bg sessions are slow to start on this machine"

545```

546 

547Claude Code 仅在可以出现标志的位置将整个参数读取为该标志:位于任何单独的 `--` 分隔符之前,且不在另一个标志期望其值的位置。请将该标志放在最前面,如 `claude --bg "<prompt>"`。

548 

549在位置存在歧义的情况下(例如在一串组合的短标志之后),Claude Code 不会启动任何内容,而是以 [`Couldn't tell whether --bg is a flag or text here`](/docs/zh-CN/errors#couldnt-tell-whether-bg-is-a-flag-or-text) 错误退出。

550 

529#### 运行 shell 命令551#### 运行 shell 命令

530 552 

531要将 shell 命令作为后台作业而不是 Claude 会话运行,请传递 `--exec`。以下示例将 `pytest -x` 作为后台作业运行:553要将 shell 命令作为后台作业而不是 Claude 会话运行,请传递 `--exec`。以下示例将 `pytest -x` 作为后台作业运行:


626 648 

627两种方式都会保留另一个已完成会话的记录所指向的目录。649两种方式都会保留另一个已完成会话的记录所指向的目录。

628 650 

629### 设置模型651### 设置模型、effort 和快速模式

630 652 

631Agent 视图标题中显示的模型名称是分派默认值。您从输入框启动的新会话会使用此模型,它来自您用户设置中的 [`model` 设置](/docs/zh-CN/settings-reference#model)。您可以在 [`/model` 选择器](/docs/zh-CN/model-config) 中选择模型来设置它,也可以直接编辑该设置。653在 Agent 视图中,在 [分派输入框](#dispatch-an-agent-from-agent-view) 中输入 `/model`、`/effort` 或 `/fast` 并按 `Enter`,之后您分派的会话就会以您设置的内容启动。您的选择仅保留在该 Agent 视图窗口中,不会保存到设置文件。`/effort` 和 `/fast` 需要 Claude Code v2.1.299 或更高版本,不带任何内容输入的 `/model` 也是如此。

632 654 

633要为整个 Agent 视图会话覆盖分派默认值,请在打开 Agent 视图时传递 `--model`。请参阅 [权限模式、模型和 effort](#permission-mode-model-and-effort)。655在命令后给出值,或仅输入命令以从列表中选择:

634 656 

635要在 Agent 视图内更改分派默认值,请在分派输入框中输入 `/model` 后跟模型名称,然后按 `Enter`。标题会更新以显示该模型并带有 `(session)` 标记,之后您分派的会话都会使用它。输入 `/model default` 可清除覆盖并恢复分派默认值。此覆盖在当前 `claude agents` 运行的剩余时间内有效,不会写入您的设置文件。以下示例在 Opus 上分派一个会话,在 Sonnet 上分派下一个:657* **模型**:`/model <name>`,例如 `/model opus`

658* **[Effort 级别](/docs/zh-CN/model-config#adjust-effort-level)**:`/effort` 加 `low`、`medium`、`high`、`xhigh` 或 `max`,例如 `/effort high`。要以 [ultracode](/docs/zh-CN/workflows#let-claude-decide-with-ultracode) 启动会话,请改为从 shell 使用 [`claude agents --effort ultracode`](#dispatch-defaults) 打开 Agent 视图;分派输入框不接受 `/effort ultracode`

659* **快速模式**:`/fast on` 或 `/fast off`。只有当快速模式 [对您可用](/docs/zh-CN/fast-mode#requirements) 且会话的模型支持快速模式时,会话才会以快速模式启动。在不支持快速模式的模型上,会话会以关闭快速模式的状态启动,因此请先使用 `/model` 选择一个 [支持快速模式的模型](/docs/zh-CN/fast-mode)。新会话是否启用快速模式,以输入框下方的提示为准,而不是标题栏。

660 

661要撤销某个选择,请将 `default` 作为值,例如 `/effort default`。

662 

663以下示例在 Opus 上分派一个会话,在 Sonnet 上分派下一个:

636 664 

637```text theme={null}665```text theme={null}

638/model opus666/model opus


644每个后台会话可以在不同的模型上运行。要为单个会话覆盖模型:672每个后台会话可以在不同的模型上运行。要为单个会话覆盖模型:

645 673 

646* 从 shell 中使用 `claude --bg` 时传递 `--model`。674* 从 shell 中使用 `claude --bg` 时传递 `--model`。

647* 附加到正在运行的会话并运行 `/model` 进行切换:在选择器中选择,或输入 `/model <name>`,都会保存为新会话的默认值,除非您在选择器中按 `s` 进行仅限当前会话的切换。仅限当前会话的切换在会话重新生成后依然有效。675* 附加到正在运行的会话并运行 `/model` 进行切换。在选择器中选择,或输入 `/model <name>`,都会保存为新会话的默认值,除非您在选择器中按 `s` 进行仅限当前会话的切换。仅限当前会话的切换在会话重新生成后依然有效。

648* 分派一个在 frontmatter 中设置了 `model` 字段的 [子代理](/docs/zh-CN/sub-agents)。676* 通过以子代理名称开头或提及 `@name`,分派一个在 frontmatter 中设置了 `model` 的 [子代理](/docs/zh-CN/sub-agents)。当分派输入框中的 `/model` 选择生效时,不会使用该子代理的 `model`,因此请在那里输入 `/model default`。如果您使用 [`claude agents --model`](#dispatch-defaults) 启动,同样不会使用该子代理的模型,因此请在 shell 中不带 `--model` 运行 `claude agents`。

649 677 

650### 权限模式、模型和 effort678### 权限模式、模型和 effort

651 679 


666* 您使用 `←` 或 `/background` 将自己的会话转入后台694* 您使用 `←` 或 `/background` 将自己的会话转入后台

667* 您将会话分派到您当前所在的目录695* 您将会话分派到您当前所在的目录

668* 您通过附加或回复来唤醒当前所在目录中已停止的会话696* 您通过附加或回复来唤醒当前所在目录中已停止的会话

697* 您使用 [`claude respawn`](#manage-sessions-from-the-shell) 重新启动当前所在目录中的会话

669 698 

670Claude Code 会转发位于云提供商前面的网关。如果您分派时所在的 shell 选择了该提供商,并导出了其网关端点及其身份验证绕过标志,Claude Code 会在适用于 `ANTHROPIC_BASE_URL` 的条件下,将该端点与标志组合连同 `ANTHROPIC_CUSTOM_HEADERS` 一起转发给会话。例如,导出 `CLAUDE_CODE_USE_VERTEX=1` 以及 `ANTHROPIC_VERTEX_BASE_URL` 和 `CLAUDE_CODE_SKIP_VERTEX_AUTH=1`,Claude Code 就会转发该端点和标志。699Claude Code 会转发位于云提供商前面的网关。如果您分派时所在的 shell 选择了该提供商,并导出了其网关端点及其身份验证绕过标志,Claude Code 会在适用于 `ANTHROPIC_BASE_URL` 的条件下,将该端点与标志组合连同 `ANTHROPIC_CUSTOM_HEADERS` 一起转发给会话。例如,导出 `CLAUDE_CODE_USE_VERTEX=1` 以及 `ANTHROPIC_VERTEX_BASE_URL` 和 `CLAUDE_CODE_SKIP_VERTEX_AUTH=1`,Claude Code 就会转发该端点和标志。

671 700 


673 702 

674#### 权限模式703#### 权限模式

675 704 

676[权限模式](/docs/zh-CN/permissions) 取决于您启动会话的方式:705* **使用 `/bg` 或 `←` 转入后台**:Claude Code 保留会话原有的 [权限模式](/docs/zh-CN/permissions),因此您已切换到 `acceptEdits` 或 `auto` 的会话在分离后仍保持该模式

677 

678* **使用 `/bg` 或 `←` 转入后台**:Claude Code 保留会话原有的权限模式,因此您已切换到 `acceptEdits` 或 `auto` 的会话在分离后仍保持该模式

679* **从使用 `←` 打开的 Agent 视图分派**:Claude Code 首先从目标目录的配置获取新会话的权限模式,然后从您来源的会话获取

680* **从在 shell 中启动的 `claude agents` 分派,或使用 `claude --bg` 分派**:新会话的启动方式与在该目录中启动新的 `claude` 会话相同,除非您是从使用 [分派默认值](#dispatch-defaults) 打开的 Agent 视图分派的。[会话以哪种权限模式启动](/docs/zh-CN/permission-modes#which-mode-a-session-starts-in) 列出了优先顺序706* **从在 shell 中启动的 `claude agents` 分派,或使用 `claude --bg` 分派**:新会话的启动方式与在该目录中启动新的 `claude` 会话相同,除非您是从使用 [分派默认值](#dispatch-defaults) 打开的 Agent 视图分派的。[会话以哪种权限模式启动](/docs/zh-CN/permission-modes#which-mode-a-session-starts-in) 列出了优先顺序

681 707 

682对于您从使用 `←` 打开的 Agent 视图分派的会话,Claude Code 会从以下第一个适用的来源获取权限模式:708对于您从使用 `←` 打开的 Agent 视图分派的会话,Claude Code 会从以下第一个适用的来源获取权限模式:

683 709 

6841. 目标目录的 [`permissions.defaultMode`](/docs/zh-CN/settings-reference#permissions-defaultmode)。适用两条来源规则:7101. 目标目录的 [`permissions.defaultMode`](/docs/zh-CN/settings-reference#permissions-defaultmode)。`auto` 和 `bypassPermissions` [仅在来自托管设置、`--settings` 文件或 `~/.claude/settings.json` 时生效](/docs/zh-CN/settings-reference#permissions-defaultmode)。如果项目的 `.claude/settings.json` 或 `.claude/settings.local.json` 中的 `defaultMode` 选择了比您来源会话更宽松的模式,Claude Code 会拒绝它。

685 * `auto` 和 `bypassPermissions` [仅在来自托管设置、`--settings` 文件或 `~/.claude/settings.json` 时生效](/docs/zh-CN/settings-reference#permissions-defaultmode)。7112. 您来源会话的权限模式。

686 * 如果项目的 `.claude/settings.json` 或 `.claude/settings.local.json` 中的 `defaultMode` 选择了比您来源会话更宽松的模式,Claude Code 会拒绝它。712 

6872. 您来源会话的权限模式。如果该会话处于 `bypassPermissions` 模式,新会话可能会改为以手动模式启动,并显示通知 `Bypass permissions was requested at launch and ignored`。当您对绕过免责声明的接受记录仅存在于 `.claude/settings.local.json` 或 `--settings` 文件中时,就会发生这种情况。您可以继续使用手动模式,或 [将该接受记录添加到 `~/.claude/settings.json`](/docs/zh-CN/permission-modes#bypass-permissions-acceptance)。713 如果该会话处于 `bypassPermissions` 模式,新会话可能会改为以手动模式启动,并显示通知 `Bypass permissions was requested at launch and ignored`。当您对绕过免责声明的接受记录仅存在于 `.claude/settings.local.json` 或 `--settings` 文件中时,就会发生这种情况。您可以继续使用手动模式,或 [将该接受记录添加到 `~/.claude/settings.json`](/docs/zh-CN/permission-modes#bypass-permissions-ignored-in-a-background-session)。

688 714 

689当 Claude Code 因某个来源的模式过于宽松而拒绝它时,由列表中的下一个来源决定。例如,如果您从计划模式会话分派到一个其已签入设置要求 `acceptEdits` 的目录,新会话会以计划模式启动。如果您将该 `defaultMode` 移到 `~/.claude/settings.json`,则无论您来源会话的权限模式如何,它都会生效。715当 Claude Code 因某个来源的模式过于宽松而拒绝它时,由列表中的下一个来源决定。例如,如果您从计划模式会话分派到一个其已签入设置要求 `acceptEdits` 的目录,新会话会以计划模式启动。如果您将该 `defaultMode` 移到 `~/.claude/settings.json`,则无论您来源会话的权限模式如何,它都会生效。

690 716 


816* **已完成或等待您的下一条消息,且未连接约一小时**:监督进程停止该进程以释放资源。以向您提问结束其轮次的会话计为等待您的下一条消息。对话保存在磁盘上,下次您连接或回复时,会话从中断处恢复。使用 `Ctrl+T` 固定会话以保持其进程运行。842* **已完成或等待您的下一条消息,且未连接约一小时**:监督进程停止该进程以释放资源。以向您提问结束其轮次的会话计为等待您的下一条消息。对话保存在磁盘上,下次您连接或回复时,会话从中断处恢复。使用 `Ctrl+T` 固定会话以保持其进程运行。

817* **在监督进程运行时意外退出**:监督进程重新启动该进程。如果通过 `kill` 等方式结束您自己使用 `←` 或 `/background` 后台化的会话,该会话会被标记为已停止,而不是重新启动。对于以关闭结束的会话,请参阅[会话在关闭后显示为失败或已停止](#sessions-show-as-failed-after-shutdown)。843* **在监督进程运行时意外退出**:监督进程重新启动该进程。如果通过 `kill` 等方式结束您自己使用 `←` 或 `/background` 后台化的会话,该会话会被标记为已停止,而不是重新启动。对于以关闭结束的会话,请参阅[会话在关闭后显示为失败或已停止](#sessions-show-as-failed-after-shutdown)。

818* **自动更新后**:监督进程重新启动自身到新版本,并在后台移动空闲会话。工作中、等待您或已连接的会话不会被中断。844* **自动更新后**:监督进程重新启动自身到新版本,并在后台移动空闲会话。工作中、等待您或已连接的会话不会被中断。

819* **监督进程本身停止**,例如因为其进程被 Claude Code 外部结束:在 macOS 和 Linux 上,每个会话的进程会等待约一分钟,等待新的监督进程重新连接到它,如果没有重新连接则停止。在这一分钟内于 shell 中运行 `claude agents`,即可启动新的监督进程并保持会话运行。如果这一分钟先过去,会话会停止,但其保存的对话仍保留在磁盘上:连接或回复某个会话,它就会从保存的对话重新启动,如[会话在关闭后显示为失败或已停止](#sessions-show-as-failed-after-shutdown)中所述。845* **监督进程本身停止**,例如因为其进程被 Claude Code 外部结束:在 macOS 和 Linux 上,除非新的监督进程在约一分钟内连接,否则您的会话会停止。要启动新的监督进程,请在 shell 中运行 `claude agents`。超过这一分钟后,请参阅[在监督进程停止后保持会话运行](#keep-sessions-running-after-the-supervisor-stops)。

820 846 

821当会话的进程停止或重新启动时,Claude 在其中启动的后台 shell 命令、动态工作流和后台子代理会转移到其下一个进程;运行中的监视器和子代理启动的 shell 命令会随进程停止。删除会话会停止它转移的所有内容。要改为让所有内容随进程停止而不是转移,请将 [`CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF`](/docs/zh-CN/env-vars#variables) 设置为 `1`。847当会话的进程停止或重新启动时,Claude 在其中启动的后台 shell 命令、动态工作流和后台子代理会转移到其下一个进程;运行中的监视器和子代理启动的 shell 命令会随进程停止。删除会话会停止它转移的所有内容。要改为让所有内容随进程停止而不是转移,请将 [`CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF`](/docs/zh-CN/env-vars#variables) 设置为 `1`。

822 848 

823监督进程及其会话使用与您的交互式会话相同的存储凭据进行身份验证。关于哪些设置和 shell 变量到达会话(包括 `PATH`),请参阅[设置和提供商](#settings-and-provider)。关于网关端点,请参阅 [LLM 网关](#llm-gateway)。849监督进程及其会话使用与您的交互式会话相同的存储凭据进行身份验证。关于哪些设置和 shell 变量到达会话(包括 `PATH`),请参阅[设置和提供商](#settings-and-provider)。关于网关端点,请参阅 [LLM 网关](#llm-gateway)。

824 850 

851#### 在监督进程停止后保持会话运行

852 

853如果 agent view 在退出时打印以下通知,说明没有[监督进程](#the-supervisor-process)在运行:

854 

855```text theme={null}

856Background sessions still running will stop in about a minute. Run 'claude agents' to keep them.

857```

858 

859在这一分钟内于 shell 中运行 `claude agents`,即可启动新的监督进程并保持会话运行。

860 

861如果这一分钟先过去,会话会停止,但其保存的对话仍保留在磁盘上。要从保存的对话重新启动某个会话,请[连接](#attach-to-a-session)或[回复](#peek-and-reply)该会话,如[会话在关闭后显示为失败或已停止](#sessions-show-as-failed-after-shutdown)中所述。

862 

825### 状态存储位置863### 状态存储位置

826 864 

827会话状态存储在您的 Claude Code 配置目录下。如果您设置了 [`CLAUDE_CONFIG_DIR`](/docs/zh-CN/env-vars),监督进程使用该目录而不是 `~/.claude`,并作为单独的实例运行,具有其自己的会话。865会话状态存储在您的 Claude Code 配置目录下。如果您设置了 [`CLAUDE_CONFIG_DIR`](/docs/zh-CN/env-vars),监督进程使用该目录而不是 `~/.claude`,并作为单独的实例运行,具有其自己的会话。


930claude daemon stop --any --keep-workers968claude daemon stop --any --keep-workers

931```969```

932 970 

933然后在 shell 中运行 `claude agents` 来启动新的主管。如果您在停止后[大约一分钟](#the-supervisor-process)内执行此操作,它会重新连接到仍在运行的会话,这些会话的工作会不间断地继续。如果您花费的时间更长,在 macOS 和 Linux 上,这些会话届时已自行停止,附加或回复其中一个会话会从其保存的对话重新启动它。没有 `--keep-workers`,该命令也会结束后台会话。`--any` 标志使该命令停止由 Claude Code 按需启动的主管。971然后在 shell 中运行 `claude agents` 来启动新的主管。在 macOS 和 Linux 上,请在旧主管结束后大约一分钟内执行此操作,否则这些会话会[在没有主管的情况下停止](#the-supervisor-process)。如果您看到了 `stopped`,但同样的错误再次出现,并且您在 macOS 或 Linux 上使用的 Claude Code 版本早于 v2.1.300,请运行 `claude update`,然后再次运行这两个命令。

934 

935启动但无法接受连接的主管会自行退出并释放其锁,所以下一个 `claude agents` 会启动新的,无需此手动停止。上述步骤适用于运行的主管停滞的情况。

936 972 

937如果该命令改为退出,说记录的进程无法验证为主管,请检查报告的进程 ID:如果它是您拥有的主管,自己停止它,然后删除 `~/.claude/daemon.lock`,以便下一个 `claude agents` 启动新的。973如果停止命令改为打印了以下四条消息之一,说明旧进程没有被停止。请在 shell 中执行对应行所述的操作,然后运行 `claude agents`:

938 974 

939在 Windows 上,如果主管不响应停止请求,该命令会打印其进程 ID。使用 `taskkill /PID <pid>` 结束该进程以完成恢复。当您传递 `--keep-workers` 时,后台会话仍然被保留。975| 消息包含 | 平台 | 操作 |

976| :- | :- | :- |

977| `could not be verified as the daemon, so it was not signalled` | 全部 | 查明哪个程序拥有该进程 ID。如果它是您自己的主管,请停止它;不要动任何其他程序。然后删除 `~/.claude/daemon.lock`。 |

978| `is still running after SIGKILL` | macOS、Linux | 等待该进程退出。如果它一直不退出,请重新启动计算机。 |

979| `was not sent SIGKILL` | macOS、Linux | 再次运行停止命令。如果该进程仍然存在,请使用 `ps -ww -o args= -p <pid>` 检查它:以 `daemon` 启动的 Claude Code 是主管,因此请运行 `kill -9 <pid>`。不要动其他任何进程;如果 `claude agents` 随后无法启动主管,请删除 `~/.claude/daemon.lock`。 |

980| `supervisor (pid=<pid>) is still running` | Windows | 使用 `taskkill /PID <pid>` 结束该进程 |

940 981 

941### 分派失败,显示 `Could not resolve authentication method`982### 分派失败,显示 `Could not resolve authentication method`

942 983 


950 991 

951有关原因和修复的完整列表,请参阅[错误参考](/docs/zh-CN/errors#could-not-resolve-authentication-method)。992有关原因和修复的完整列表,请参阅[错误参考](/docs/zh-CN/errors#could-not-resolve-authentication-method)。

952 993 

994### 后台会话显示 `No LLM gateway`

995 

996如果后台会话显示 [`No LLM gateway`](/docs/zh-CN/errors#no-llm-gateway-opened-from-another-folder),说明它没有获得您的网关 `ANTHROPIC_BASE_URL`,因此其请求会失败。Claude Code 之所以没有提供它,是因为您是从消息中指明的文件夹以外的目录分派、唤醒或重新启动该会话的。

997 

998例如,当您使用 [`@<repo>`](#dispatch-to-a-specific-directory) 分派到某个仓库,或从另一个目录运行 `claude attach` 唤醒已停止的会话后,就会看到此消息。要让会话获得您的网关,请根据网关的设置位置选择相应的修复方法:

999 

1000* **您在终端中导出了网关**:在已导出网关变量的终端中,`cd` 到消息中指明的文件夹,然后运行消息中的 [`claude respawn <id>`](#manage-sessions-from-the-shell) 命令。

1001 * 只有当[主管](#the-supervisor-process)本身是从导出了相同网关的 shell 启动时,网关才会传递到会话。如果主管不是这样启动的,请按照[分派失败,显示 `Could not resolve authentication method`](#dispatch-fails-with-could-not-resolve-authentication-method) 中的说明,从您运行 respawn 命令的终端重新启动主管,然后再次运行该命令。

1002* **您在一个通过设置配置了网关的项目中使用了 Agent 视图**:将 `ANTHROPIC_BASE_URL` 及其凭据放入[设置文件的 `env` 块](/docs/zh-CN/llm-gateway-connect#set-in-a-settings-file)中。请使用 `~/.claude/settings.json`,或会话所在项目中的 `.claude/settings.local.json`,重新启动的会话会读取这两个文件。然后在 shell 中从任意目录运行 [`claude respawn <id>`](#manage-sessions-from-the-shell),以在网关上重新启动此会话。

1003 

953### 后台会话无法在 macOS 上读取 Desktop、Documents 或 Downloads1004### 后台会话无法在 macOS 上读取 Desktop、Documents 或 Downloads

954 1005 

955在 macOS 上,后台会话主机作为其自己的进程运行,并与您的终端分别请求对受保护文件夹的访问。如果后台会话在读取 `~/Desktop`、`~/Documents`、`~/Downloads` 或其他受保护位置时报告 `Operation not permitted`,请在系统设置中的隐私和安全 > 文件和文件夹下授予访问权限,或为该条目启用完全磁盘访问。1006在 macOS 上,后台会话主机作为其自己的进程运行,并与您的终端分别请求对受保护文件夹的访问。如果后台会话在读取 `~/Desktop`、`~/Documents`、`~/Downloads` 或其他受保护位置时报告 `Operation not permitted`,请在系统设置中的隐私和安全 > 文件和文件夹下授予访问权限,或为该条目启用完全磁盘访问。


996 1047 

997| 版本 | 更改 |1048| 版本 | 更改 |

998| - | - |1049| - | - |

1050| v2.1.299 | [调度输入框中的 `/effort` 和 `/fast`](#set-the-model-effort-and-fast-mode) 会为您接下来调度的会话设置 effort 级别和快速模式。键入不带值的 `/model`、`/effort` 或 `/fast` 会打开选择器。 |

1051| v2.1.299 | Claude Code 仅在任何单独的 `--` 分隔符之前、且不在其他标志的值中时,才[将 `--bg` 和 `--background` 识别为该标志](#from-your-shell),对于位置有歧义的情况会拒绝而不是猜测。在此版本之前,发送给后台会话的内容为 `--bg` 或 `--background` 的提示词或回复可能会被当作该标志。这可能会反复启动新的后台会话,而不是投递该文本。 |

1052| v2.1.296 | 您[在会话移到后台时](#switch-sessions-without-leaving-the-terminal)输入的提示词或 `!` shell 命令会被停止或保持未发送状态,其文本会保留在提示词历史中。在此版本之前,回复或命令会在您看不到的地方继续运行,并且在 `←` 之后立即发送的提示词可能会在您看不到的情况下运行第二次。在 `SessionStart` hook 仍在运行时键入的提示词会丢失:既不会发送,也不会出现在提示词历史中。 |

1053| v2.1.295 | 在[附加的后台会话](#attach-to-a-session)的空闲输入框中按 `Ctrl+C` 不会影响[自定节奏的 `/loop`](/docs/zh-CN/scheduled-tasks#let-claude-choose-the-interval) 的待处理唤醒,因此按两次会分离,而循环会继续运行。在该输入框中按 `Esc` 会[停止自定节奏的循环](/docs/zh-CN/scheduled-tasks#stop-a-loop)并显示 `Pending wakeup cancelled` 通知。在此版本之前,第一次按 `Ctrl+C` 可能会在不提示的情况下结束自定节奏的循环,而 `Esc` 无法停止已随会话移到后台的循环。 |

1054| v2.1.295 | 在 macOS 和 Linux 上,当 `claude agents` 在没有[监督进程](#keep-sessions-running-after-the-supervisor-stops)运行时退出,它不会自行启动新的监督进程。此后正在运行的会话会在大约一分钟后停止,除非您再次运行 `claude agents`,agent view 在退出时可能会打印一条说明此情况的通知。在此版本之前,退出的 `claude agents` 会启动新的监督进程。 |

1055| v2.1.295 | 在使用原生安装程序的 macOS 上,更新后一起重启的后台会话会在持有您所授予的[受保护文件夹访问权限](#background-sessions-can’t-read-desktop-documents-or-downloads-on-macos)的同一 Claude Code 条目下运行。在此版本之前,这些会话可能会改为在二进制文件自身的路径下运行。macOS 会将该路径列为单独的条目,因此更新后可能会再次出现文件夹访问提示。 |

999| v2.1.290 | [`claude attach` 和 `claude logs`](#manage-sessions-from-the-shell) 可以使用会话名称的一部分来代替 ID。 |1056| v2.1.290 | [`claude attach` 和 `claude logs`](#manage-sessions-from-the-shell) 可以使用会话名称的一部分来代替 ID。 |

1000| v2.1.290 | `/model`、`/effort`、`/rename` 和 `/usage` 作为[窥视回复](#peek-and-reply)发送给正在工作的会话时会立即运行。 |1057| v2.1.290 | `/model`、`/effort`、`/rename` 和 `/usage` 作为[窥视回复](#peek-and-reply)发送给正在工作的会话时会立即运行。 |

1001| v2.1.290 | 无法投递的[窥视回复](#peek-and-reply)如果以 `/` 开头,或者在会话进程运行期间回答的是带有预定义选项的问题,则不再被保存以待下次重启时发送。 |1058| v2.1.290 | 无法投递的[窥视回复](#peek-and-reply)如果以 `/` 开头,或者在会话进程运行期间回答的是带有预定义选项的问题,则不再被保存以待下次重启时发送。 |


1048| v2.1.216 | `/fork`:[确认信息](#from-inside-a-session)只有一行,显示副本的状态、其 agent view 行的名称以及用于 `claude attach` 的会话 ID,仅当副本在主工作树中运行或编辑您打开的检出时,才以 `runs in the origin tree` 或 `edits this checkout` 结尾。点击该名称会将此会话移到后台,并在副本的会话中打开 agent view。确认信息不再重复说明副本继承的权限模式;早期版本会打印多行确认信息,且名称不可点击。 需要输入:在没有人附加时运行的 `/install-github-app` 和 `/mcp` 设置列表,会将会话显示在 `Needs input` 下,并有一行指明该命令,附加后重新运行该命令即可继续;从 v2.1.208 到 v2.1.215,它们在该状态下会被直接拒绝。 `--agent` 恢复:当工作区受信任时,恢复或重启[移到后台的 `--agent` 会话](#from-your-shell)会恢复该 Agent 的系统提示词和工具限制,并优先在会话自己的目录中查找该 Agent;如果会话的 Agent 已不存在,会话会使用默认工具和系统提示词继续运行,并在打开时显示可见警告,而不是在不提示的情况下恢复为默认 Agent。 `Ctrl+X`:即使停止尝试失败,按两次也会删除会话,而不是因停止失败而取消待处理的删除;工作进程已终止的已删除会话不再在下次刷新时重新出现。 Worktree 删除:worktree 目录不属于任何 git 仓库的会话现在可以删除;在此版本之前,删除此类会话的每次尝试都会被拒绝。已不存在的目录会立即清除。agent view 中的双击删除会删除仍有文件的目录,对于由 hook 创建的目录会运行您的 `WorktreeRemove` hook,除非另一个会话的记录也指向该目录。只要仍有文件,`claude rm` 就会保留此类目录。 |1105| v2.1.216 | `/fork`:[确认信息](#from-inside-a-session)只有一行,显示副本的状态、其 agent view 行的名称以及用于 `claude attach` 的会话 ID,仅当副本在主工作树中运行或编辑您打开的检出时,才以 `runs in the origin tree` 或 `edits this checkout` 结尾。点击该名称会将此会话移到后台,并在副本的会话中打开 agent view。确认信息不再重复说明副本继承的权限模式;早期版本会打印多行确认信息,且名称不可点击。 需要输入:在没有人附加时运行的 `/install-github-app` 和 `/mcp` 设置列表,会将会话显示在 `Needs input` 下,并有一行指明该命令,附加后重新运行该命令即可继续;从 v2.1.208 到 v2.1.215,它们在该状态下会被直接拒绝。 `--agent` 恢复:当工作区受信任时,恢复或重启[移到后台的 `--agent` 会话](#from-your-shell)会恢复该 Agent 的系统提示词和工具限制,并优先在会话自己的目录中查找该 Agent;如果会话的 Agent 已不存在,会话会使用默认工具和系统提示词继续运行,并在打开时显示可见警告,而不是在不提示的情况下恢复为默认 Agent。 `Ctrl+X`:即使停止尝试失败,按两次也会删除会话,而不是因停止失败而取消待处理的删除;工作进程已终止的已删除会话不再在下次刷新时重新出现。 Worktree 删除:worktree 目录不属于任何 git 仓库的会话现在可以删除;在此版本之前,删除此类会话的每次尝试都会被拒绝。已不存在的目录会立即清除。agent view 中的双击删除会删除仍有文件的目录,对于由 hook 创建的目录会运行您的 `WorktreeRemove` hook,除非另一个会话的记录也指向该目录。只要仍有文件,`claude rm` 就会保留此类目录。 |

1049| v2.1.214 | 使用 `←` 或 `/background` 移到后台、且处于空闲状态没有任何运行内容的会话,其进程会像任何其他空闲会话一样被停止,而不是无限期地保持其进程和后台服务运行。后台服务空闲后,可以使用 `claude rm` 或从 agent view 删除已完成的会话;从非 git 仓库的目录(例如多仓库工作区文件夹)调度后又进入 worktree 的会话,当 worktree 本身属于 git 仓库时,可以从 agent view 删除,因为清理操作是根据 worktree 而不是会话调度时所在的目录来解析的;在此之前,这两种删除的每次尝试都会被拒绝。重新打开已停止的会话会恢复其保存的对话,即使会话记录存储中的某个文件夹无法读取。 |1106| v2.1.214 | 使用 `←` 或 `/background` 移到后台、且处于空闲状态没有任何运行内容的会话,其进程会像任何其他空闲会话一样被停止,而不是无限期地保持其进程和后台服务运行。后台服务空闲后,可以使用 `claude rm` 或从 agent view 删除已完成的会话;从非 git 仓库的目录(例如多仓库工作区文件夹)调度后又进入 worktree 的会话,当 worktree 本身属于 git 仓库时,可以从 agent view 删除,因为清理操作是根据 worktree 而不是会话调度时所在的目录来解析的;在此之前,这两种删除的每次尝试都会被拒绝。重新打开已停止的会话会恢复其保存的对话,即使会话记录存储中的某个文件夹无法读取。 |

1050| v2.1.213 | `/install-github-app`、[`/mcp`](/docs/zh-CN/mcp) 设置列表和 MCP 身份验证操作在附加了终端的后台会话中可以使用,仅在没有人附加时才会被拒绝,并显示提示您附加后再次运行该命令的消息;从 v2.1.208 到 v2.1.212,即使附加了终端它们也会被拒绝。 |1107| v2.1.213 | `/install-github-app`、[`/mcp`](/docs/zh-CN/mcp) 设置列表和 MCP 身份验证操作在附加了终端的后台会话中可以使用,仅在没有人附加时才会被拒绝,并显示提示您附加后再次运行该命令的消息;从 v2.1.208 到 v2.1.212,即使附加了终端它们也会被拒绝。 |

1051| v2.1.212 | [交互式会话中的 `/fork`](#from-inside-a-session) 会将对话复制到一个新的后台会话中,该会话显示为独立的一行,以其来源会话命名,对于未命名会话的带提示词 fork,则以 fork 提示词命名,同时原始会话继续运行;`/fork` 早期的 forked-subagent 行为已移至 `/subtask`。在[关闭 agent view](#turn-off-agent-view) 的情况下,`/fork` 保留 forked-subagent 行为。正在等待第一个提示词的聚焦行会显示 `space to send it a prompt`。在支持扩展按键报告的终端上,`Ctrl+J` 会在调度输入框中插入换行符(此前该按键会被忽略),`?` 覆盖层会列出该快捷键。当有后台会话完成且没有会话需要您输入时,交互式会话中的 `←` 页脚提示会短暂显示 `N done`。在 agent view 中键入不带参数的 `/resume` 会打开一个选择器,列出您打开 agent view 时所在仓库的过去会话,包括已从列表中删除的会话,选择其中一个会将其恢复为后台会话;在此版本之前,`/resume` 在 agent view 中不可用,已删除的会话只能通过 `claude --resume` 或交互式会话中的 `/resume` 访问。指定目标、限定作用域和受限的形式会保留 `attach to a session to run it` 提示,早期版本对所有形式都显示该提示。等待沙箱网络主机提示、MCP 输入请求或托管设置提示的会话,在 agent view 和 `claude agents --json` 中都会显示为 `Needs input` 而不是 `Working`,来自 Claude 的问题会报告 `waitingFor: input needed` 而不是 `permission prompt`。附加到进程已停止的会话时,其会话记录会以实时会话的呈现方式格式化显示,而不是原始文本。会话记录位于意外位置的已停止会话,会通过对您保存的会话记录进行最后手段的扫描来恢复;打开没有保存会话记录的行会显示 `Press enter again to restart this session fresh`,并在第二次按键时全新重启;v2.1.211 会显示拒绝信息,且无法从 agent view 重启。 |1108| v2.1.212 | [交互式会话中的 `/fork`](#from-inside-a-session) 会将对话复制到一个新的后台会话中,同时原始会话继续运行;`/fork` 早期的 forked-subagent 行为已移至 `/subtask`。在[关闭 agent view](#turn-off-agent-view) 的情况下,`/fork` 保留 forked-subagent 行为。 |

1109| v2.1.212 | [在 agent view 中键入不带参数的 `/resume`](#bring-back-a-past-session) 会打开一个选择器,列出您打开 agent view 时所在仓库的过去会话。 |

1052| v2.1.211 | 通过附加或从其运行目录回复来唤醒已停止的会话时,会再次转发您 shell 中的网关 `ANTHROPIC_BASE_URL`,条件与全新调度相同,因此通过网关 `ANTHROPIC_AUTH_TOKEN` 进行身份验证的会话会在网关上恢复,而不是报告 `Not logged in`。附加到在第一个回复完成前就从另一个对话中移到后台的已停止会话时,会被拒绝并显示 `This session has no saved transcript`,而不是在不提示的情况下以相同会话 ID 启动空白对话;从 agent view 打开同一行时,会在页脚中显示该拒绝信息。从 Claude Code 外部结束 `←` 或 `/background` 会话的进程会将其标记为已停止,而不是由监督进程重启它;已记录在磁盘上的停止会被遵守,除非您发送的回复仍在等待投递;崩溃后重启的会话会被告知它已被重启;重启的 `←` 或 `/background` 会话不会恢复超过约一小时的中断回复。会话命名回复如果回答或拒绝了提示词而不是为其加标签(例如针对主要内容是链接的提示词),会被丢弃,该行会保留从提示词文本中提取的名称。删除 git 已无法识别其 worktree 的会话会成功,worktree 目录会保留在磁盘上并指明其路径,而不是每次尝试都被拒绝。被拒绝的删除会在会话行上显示原因,包括 worktree 无法删除时底层的 git 错误,而不是该行在不提示的情况下重新出现。 |1110| v2.1.211 | 通过附加或从其运行目录回复来唤醒已停止的会话时,会再次转发您 shell 中的网关 `ANTHROPIC_BASE_URL`,条件与全新调度相同,因此通过网关 `ANTHROPIC_AUTH_TOKEN` 进行身份验证的会话会在网关上恢复,而不是报告 `Not logged in`。附加到在第一个回复完成前就从另一个对话中移到后台的已停止会话时,会被拒绝并显示 `This session has no saved transcript`,而不是在不提示的情况下以相同会话 ID 启动空白对话;从 agent view 打开同一行时,会在页脚中显示该拒绝信息。从 Claude Code 外部结束 `←` 或 `/background` 会话的进程会将其标记为已停止,而不是由监督进程重启它;已记录在磁盘上的停止会被遵守,除非您发送的回复仍在等待投递;崩溃后重启的会话会被告知它已被重启;重启的 `←` 或 `/background` 会话不会恢复超过约一小时的中断回复。会话命名回复如果回答或拒绝了提示词而不是为其加标签(例如针对主要内容是链接的提示词),会被丢弃,该行会保留从提示词文本中提取的名称。删除 git 已无法识别其 worktree 的会话会成功,worktree 目录会保留在磁盘上并指明其路径,而不是每次尝试都被拒绝。被拒绝的删除会在会话行上显示原因,包括 worktree 无法删除时底层的 git 错误,而不是该行在不提示的情况下重新出现。 |

1053| v2.1.210 | `claude attach` 在后台服务启动或重新连接期间会等待,而不是因 `job not found` 或 `still starting` 错误而失败;它会将在附加过程中完成的会话报告为已退出,并在附加完成时应用在缓慢附加期间发生的终端尺寸调整。输入框页脚的 `←` 需要输入计数会在所有提供商上显示,包括此前显示普通 `← for agents` 形式的第三方提供商。使用 `←` 将会话移到后台时,会将 Claude 的任务列表带到后台会话,而不是将其丢弃。您按 `←` 时所在的行在选择移动后仍保留加粗、未变暗的名称。`claude agents --effort` 接受 `ultracode`,而不是在不提示的情况下将其丢弃。 |1111| v2.1.210 | `claude attach` 在后台服务启动或重新连接期间会等待,而不是因 `job not found` 或 `still starting` 错误而失败;它会将在附加过程中完成的会话报告为已退出,并在附加完成时应用在缓慢附加期间发生的终端尺寸调整。输入框页脚的 `←` 需要输入计数会在所有提供商上显示,包括此前显示普通 `← for agents` 形式的第三方提供商。使用 `←` 将会话移到后台时,会将 Claude 的任务列表带到后台会话,而不是将其丢弃。您按 `←` 时所在的行在选择移动后仍保留加粗、未变暗的名称。`claude agents --effort` 接受 `ultracode`,而不是在不提示的情况下将其丢弃。 |

1054| v2.1.208 | 附加到进程已停止的会话时,会在进程启动期间显示其会话记录的最后一屏内容,而不是仅显示 `Session is starting` 说明。因后台服务无法访问或发送失败而无法投递的回复会被保存,并在会话进程再次启动时作为其下一个提示词发送;在此版本之前,后台服务无法访问时丢失的回复会被丢弃。自身二进制文件已被更新替换的进程仍然可以从已安装的 `claude` 启动器或磁盘上的最新版本启动监督进程,而不是在 Claude Code 重启之前一直失败。运行较旧版本的监督进程永远不会将由较新版本启动的空闲会话重启到其自身的较旧二进制文件上。即使会话已将 worktree 切换到不同的分支,删除会话也会删除其 worktree;当 worktree 有未推送到任何地方的提交或被另一个会话占用时,会将 worktree 与会话行一起保留,而不是销毁提交或让 worktree 成为孤立项。`/install-github-app` 以及 `/mcp` 设置列表及其身份验证操作在后台会话中会被拒绝,并显示指明替代方法的消息;仅在 v2.1.208 中,`/model` 选择器也以相同方式被拒绝,而键入的 `/model <name>` 仅切换该会话,而不会同时保存您的默认模型。 |1112| v2.1.208 | 附加到进程已停止的会话时,会在进程启动期间显示其会话记录的最后一屏内容,而不是仅显示 `Session is starting` 说明。因后台服务无法访问或发送失败而无法投递的回复会被保存,并在会话进程再次启动时作为其下一个提示词发送;在此版本之前,后台服务无法访问时丢失的回复会被丢弃。自身二进制文件已被更新替换的进程仍然可以从已安装的 `claude` 启动器或磁盘上的最新版本启动监督进程,而不是在 Claude Code 重启之前一直失败。运行较旧版本的监督进程永远不会将由较新版本启动的空闲会话重启到其自身的较旧二进制文件上。即使会话已将 worktree 切换到不同的分支,删除会话也会删除其 worktree;当 worktree 有未推送到任何地方的提交或被另一个会话占用时,会将 worktree 与会话行一起保留,而不是销毁提交或让 worktree 成为孤立项。`/install-github-app` 以及 `/mcp` 设置列表及其身份验证操作在后台会话中会被拒绝,并显示指明替代方法的消息;仅在 v2.1.208 中,`/model` 选择器也以相同方式被拒绝,而键入的 `/model <name>` 仅切换该会话,而不会同时保存您的默认模型。 |


1061| v2.1.199 | 在低内存主机上,后台会话的进程在完成启动前退出时,其行状态会显示 `possibly low memory — free some up and retry`,而不仅仅是简单的退出原因。使用 `←` 或 `/background` 将会话移到后台时,会将其 `/color` 带到新行。 |1119| v2.1.199 | 在低内存主机上,后台会话的进程在完成启动前退出时,其行状态会显示 `possibly low memory — free some up and retry`,而不仅仅是简单的退出原因。使用 `←` 或 `/background` 将会话移到后台时,会将其 `/color` 带到新行。 |

1062| v2.1.198 | 当后台会话需要输入、完成或失败时,Agent view 会通过 `preferredNotifChannel` 发送通知,并以 `agent_needs_input` 或 `agent_completed` 类型触发 `Notification` hook。在 `claude attach <id>` 中,`←` 和 `/exit` 会返回 agent view,而不是退出到 shell;`Ctrl+Z` 会返回 shell。在 worktree 中隔离其工作的后台会话完成时,会提交、推送其自己的隔离分支(绝不会推送 `main` 或 `master`),并打开一个草稿 Pull Request,而不是先询问。`/login` 可在 agent view 中运行并打开登录对话框。`Background work is running` 退出对话框提供 `Move to background and exit`。退出交接也涵盖后台子代理,它们会在下次唤醒时从其会话记录恢复,而不是被报告为失败。`claude --bg` 与 `-p` 或 `--print` 组合使用时会被拒绝并报错。后台会话主机会在首次访问局域网时请求 macOS 本地网络权限,而不是以 `connect: no route to host` 失败。 |1120| v2.1.198 | 当后台会话需要输入、完成或失败时,Agent view 会通过 `preferredNotifChannel` 发送通知,并以 `agent_needs_input` 或 `agent_completed` 类型触发 `Notification` hook。在 `claude attach <id>` 中,`←` 和 `/exit` 会返回 agent view,而不是退出到 shell;`Ctrl+Z` 会返回 shell。在 worktree 中隔离其工作的后台会话完成时,会提交、推送其自己的隔离分支(绝不会推送 `main` 或 `master`),并打开一个草稿 Pull Request,而不是先询问。`/login` 可在 agent view 中运行并打开登录对话框。`Background work is running` 退出对话框提供 `Move to background and exit`。退出交接也涵盖后台子代理,它们会在下次唤醒时从其会话记录恢复,而不是被报告为失败。`claude --bg` 与 `-p` 或 `--print` 组合使用时会被拒绝并报错。后台会话主机会在首次访问局域网时请求 macOS 本地网络权限,而不是以 `connect: no route to host` 失败。 |

1063| v2.1.196 | 按一次 `←` 即可将前台会话移到后台;早期版本需要按两次,并带有页脚提示和确认。传递给 `claude agents` 的 `--dangerously-skip-permissions` 会显示绕过免责声明,而不是在不提示的情况下被丢弃。您从未命名的交互式会话在会话列表和 `claude agents --json` 中会带有默认名称,例如 `my-app-3f`。后台 shell 命令和动态工作流在会话进程被停止、重启或更新时仍能继续存在,包括在 Windows 上;设置 `CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF=1` 可关闭此交接。在重启时被误读为空的会话记录会被重命名并加上 `.orphaned-` 后缀,而不是被删除。 |1121| v2.1.196 | 按一次 `←` 即可将前台会话移到后台;早期版本需要按两次,并带有页脚提示和确认。传递给 `claude agents` 的 `--dangerously-skip-permissions` 会显示绕过免责声明,而不是在不提示的情况下被丢弃。您从未命名的交互式会话在会话列表和 `claude agents --json` 中会带有默认名称,例如 `my-app-3f`。后台 shell 命令和动态工作流在会话进程被停止、重启或更新时仍能继续存在,包括在 Windows 上;设置 `CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF=1` 可关闭此交接。在重启时被误读为空的会话记录会被重命名并加上 `.orphaned-` 后缀,而不是被删除。 |

1064| v2.1.195 | 在 Windows 上将会话移到后台时,进行中的后台工作也会转移;设置 `CLAUDE_DISABLE_ADOPT=1` 可改为停止它。`Completed` 组会填满剩余的垂直空间,标题在较矮的终端上会压缩显示。较旧的 Claude Code 版本不再丢弃较新会话的 `state.json` 字段,也不再在 `claude agents` 中隐藏这些会话。附加到已停止的会话会立即切换,而不是显示最多五秒的空白屏幕。无法接受连接的监督进程会自行退出并释放其锁。 |1122| v2.1.195 | 在 Windows 上将会话移到后台时,进行中的后台工作也会转移。`Completed` 组会填满剩余的垂直空间,标题在较矮的终端上会压缩显示。较旧的 Claude Code 版本不再丢弃较新会话的 `state.json` 字段,也不再在 `claude agents` 中隐藏这些会话。附加到已停止的会话会立即切换,而不是显示最多五秒的空白屏幕。无法接受连接的监督进程会自行退出并释放其锁。 |

1065| v2.1.191 | 如果 `claude --bg` 使用的 `--agent` 名称与您的任何子代理都不匹配,启动会失败:会话会立即退出并显示 `--agent '<name>' not found` 错误,而不是使用默认 Agent 运行。 |1123| v2.1.191 | 如果 `claude --bg` 使用的 `--agent` 名称与您的任何子代理都不匹配,启动会失败:会话会立即退出并显示 `--agent '<name>' not found` 错误,而不是使用默认 Agent 运行。 |

1066| v2.1.174 | 后台会话不再从监督进程的启动 shell 继承 `ANTHROPIC_BASE_URL` 等网关端点变量;监督进程会向预热的工作进程提供新的凭据快照,修复了虚假的 `Could not resolve authentication method` 错误。 |1124| v2.1.174 | 后台会话不再从监督进程的启动 shell 继承 `ANTHROPIC_BASE_URL` 等网关端点变量;监督进程会向预热的工作进程提供新的凭据快照,修复了虚假的 `Could not resolve authentication method` 错误。 |

1067| v2.1.172 | 调度输入框中的 `/model` 会设置仅限当前会话的调度模型覆盖。 |1125| v2.1.172 | 调度输入框中的 `/model` 会设置仅限当前会话的调度模型覆盖。 |

artifacts.md +32 −21

Details

98* **`Enter`**:如果它已附加到当前会话,则在浏览器中打开它;如果尚未附加,则将其附加到当前会话。在v2.1.216之前,`Enter`会在浏览器中打开它98* **`Enter`**:如果它已附加到当前会话,则在浏览器中打开它;如果尚未附加,则将其附加到当前会话。在v2.1.216之前,`Enter`会在浏览器中打开它

99* **`o`**:在浏览器中打开它99* **`o`**:在浏览器中打开它

100* **`c`**:复制其链接100* **`c`**:复制其链接

101* **`d`**:在[云端会话](/docs/zh-CN/claude-code-on-the-web)之外,经您确认后永久删除您拥有的Artifact。其链接将对所有人失效,包括您自己

101 102 

102Claude Code从您的claude.ai账户读取列表,因此它在新会话中以及在`/clear`之后都能工作,即使链接已从终端滚出也能使用。103Claude Code从您的claude.ai账户读取列表,因此当Artifact的链接已从终端滚出时,`/artifacts`在新会话中以及在`/clear`之后都能使用。

103 104 

104## 分享一个artifact105## 分享一个artifact

105 106 

106新创建的artifact只有你能看到。要分享它,请在浏览器中打开该artifact,并使用页面标题中的**分享**控件。标题还链接到你的库,位置在[claude.ai/code/artifacts](https://claude.ai/code/artifacts),其中列出了你创建的每个artifact。107新创建的artifact只有你能看到。要分享它,请在浏览器中打开该artifact,并使用页面标题中的**分享**控件。标题还链接到你的库,位置在[claude.ai/code/artifacts](https://claude.ai/code/artifacts),其中列出了你创建的每个artifact。

107 108 

108你组织中的查看者可以看到谁发布了该页面:在组织内共享的artifact上,你的名字在标题菜单中;在公开artifact上,对于组织内已登录的查看者,你的名字在页面标题中。打开公开链接但未登录的查看者,或来自组织外的查看者,会看到标签`内容由用户生成且未经验证。`而不是你的名字。109您组织中的查看者可以看到谁发布了该页面:在组织内共享的Artifact上,您的名字在标题菜单中;在公开Artifact上,对于组织内已登录的查看者,您的名字在页面标题中。打开公开链接但未登录的查看者,或来自组织外的查看者,会看到标签`Content is user-generated and unverified.`而不是您的名字。

109 110 

110你可以与谁分享取决于你的计划:111你可以与谁分享取决于你的计划:

111 112 

112* **在你的组织内**:在Team和Enterprise计划上,向组织中的特定人员或所有人授予访问权限。查看者以组织成员身份登录claude.ai以查看该页面。113* **在你的组织内**:在Team和Enterprise计划上,向组织中的特定人员或所有人授予访问权限。查看者以组织成员身份登录claude.ai以查看该页面。

113* **公开**:分享一个链接,互联网上的任何人都可以打开,无需claude.ai登录。在Team和Enterprise计划上,公开分享处于关闭状态,直到所有者[为组织启用它](#control-public-sharing)。114* **公开**:分享一个链接,互联网上的任何人都可以打开,无需claude.ai登录。在Team和Enterprise计划上,公开分享处于关闭状态,直到所有者[为组织启用它](#control-public-sharing)。

114 115 

116### 链接到特定视图

117 

118如果一个页面有多个视图,例如标签页或章节,您可以直接链接到其中某一个。请让Claude提供这些链接:

119 

120```text wrap theme={null}

121Give me a link to each tab of the deploy failures dashboard.

122```

123 

124每个链接都是该Artifact的链接末尾加上一个锚点,例如`#overview`。

125 

115### 让某人与你一起编辑126### 让某人与你一起编辑

116 127 

117与你分享的人默认是查看者:他们可以看到你发布的每个版本,但无法更改页面。在Team和Enterprise计划上,你也可以让某人成为编辑者。在分享对话框中,添加一个人并将其角色从**查看者**切换到**编辑者**。128与你分享的人默认是查看者:他们可以看到你发布的每个版本,但无法更改页面。在Team和Enterprise计划上,你也可以让某人成为编辑者。在分享对话框中,添加一个人并将其角色从**查看者**切换到**编辑者**。


386 397 

387如果您添加了没有 `domain:` 部分的 `WebFetch` deny 或 ask 规则,它不会关闭 artifacts 或阻止 artifact 读取。[`permissions` 中 `deny` 或 `ask` 中的 `WebFetch(domain:claude.ai)` 规则确实适用于 artifact 读取](/docs/zh-CN/permissions#allow-or-deny-every-fetch)。398如果您添加了没有 `domain:` 部分的 `WebFetch` deny 或 ask 规则,它不会关闭 artifacts 或阻止 artifact 读取。[`permissions` 中 `deny` 或 `ask` 中的 `WebFetch(domain:claude.ai)` 规则确实适用于 artifact 读取](/docs/zh-CN/permissions#allow-or-deny-every-fetch)。

388 399 

389## 为您的组织管理 artifacts400## 管理组织的 Artifact

390 401 

391Team 和 Enterprise 计划上的所有者从 [claude.ai 管理设置](https://claude.ai/admin-settings/artifacts) 控制 artifacts。Artifact 内容存储在 Anthropic 运营的基础设施上,仅对发布组织的经过身份验证的成员可见,除非该 artifact 是[公开共享](#control-public-sharing)的。402Team 和 Enterprise 计划的所有者可以在 [claude.ai 管理设置](https://claude.ai/admin-settings/artifacts)中管理 Artifact。Artifact 内容存储在 Anthropic 运营的基础设施上,仅对发布该 Artifact 的组织中经过身份验证的成员以及这些成员与之共享的人员可见,除非该 Artifact 已被[公开共享](#control-public-sharing)。

392 403 

393### 启用或禁用 artifacts404### 启用或禁用 Artifact

394 405 

395要为整个组织启用或禁用 artifacts,请转到 [**Organization settings > Artifacts**](https://claude.ai/admin-settings/artifacts) 并使用 **Artifacts** 切换。在具有基于角色的访问控制的 Enterprise 计划上,您还可以将 artifacts 限制到特定角色:转到 [**Organization settings > Roles**](https://claude.ai/admin-settings/roles),编辑角色,并设置 **Artifacts** 权限。406要为整个组织启用或禁用 Artifact,请前往 [**Organization settings > Artifacts**](https://claude.ai/admin-settings/artifacts),然后使用 **Artifacts** 开关。在具有基于角色的访问控制的 Enterprise 计划中,您还可以将 Artifact 限定到特定角色:前往 [**Organization settings > Roles**](https://claude.ai/admin-settings/roles),编辑某个角色,然后设置 **Artifacts** 权限。

396 407 

397### 控制来自 artifacts 的连接器调用408### 控制来自 Artifact 的连接器调用

398 409 

399[来自 artifacts 的连接器调用](#pull-live-data-with-mcp-connectors)有自己的切换,与打开或关闭 artifacts 的 **Artifacts** 切换分开。转到 [**Organization settings > Capabilities**](https://claude.ai/admin-settings/capabilities) 并使用 **Enable artifact connectors** 切换。同一切换控制在 claude.ai 对话中创建的 artifacts 的连接器调用。410[来自 Artifact 的连接器调用](#pull-live-data-with-mcp-connectors)有其独立的开关,与用于启用或关闭 Artifact 的 **Artifacts** 开关相互独立。请前往 [**Organization settings > Capabilities**](https://claude.ai/admin-settings/capabilities),然后使用 **Enable artifact connectors** 开关。该开关同样控制在 claude.ai 对话中创建的 Artifact 所发起的连接器调用。

400 411 

401### 控制公开共享412### 控制公开共享

402 413 

403在 Team 和 Enterprise 计划上,公开共享默认处于关闭状态。要让成员将 artifacts 发布到任何人都可以查看而无需登录的公开链接,请转到 [**Organization settings > Artifacts**](https://claude.ai/admin-settings/artifacts) 并在 **Artifacts** 切换下打开 **External sharing**。将其关闭会阻止通过现有公开链接的访问,而不会更改每个 artifact 的受众;如果您重新启用它,访问将恢复。414在 Team 和 Enterprise 计划中,公开共享默认处于关闭状态。要允许成员将 Artifact 发布到任何人无需登录即可查看的公开链接,请前往 [**Organization settings > Artifacts**](https://claude.ai/admin-settings/artifacts),然后打开 **Artifacts** 开关下方的 **External sharing**。重新关闭该选项会阻止通过现有公开链接进行访问,但不会更改各个 Artifact 的受众;如果您重新启用该选项,访问将恢复。

404 415 

405### 设置保留策略416### 设置保留策略

406 417 

407要设置在自动删除之前保留 artifacts 的时间长度,请转到 [**Organization settings > Data and privacy**](https://claude.ai/admin-settings/data-privacy-controls)。您可以为仍然对其作者私有的 artifacts 和已共享的 artifacts 设置单独的保留期。418要设置 Artifact 在被自动删除之前的保留时长,请前往 [**Organization settings > Data and privacy**](https://claude.ai/admin-settings/data-privacy-controls)。您可以分别为仍仅对作者私有的 Artifact 和已被共享的 Artifact 设置不同的保留期限。

408 419 

409### 查看审计日志420### 查看审计日志

410 421 

411发布、共享和删除 artifact 各自出现在您组织的审计日志中,位于 `claude_artifact_*` 事件类型下,这是用于在 claude.ai 对话中创建的 artifacts 的同一系列。422发布、共享和删除 Artifact 的操作都会以 `claude_artifact_*` 事件类型出现在组织的审计日志中,这与在 claude.ai 对话中创建的 Artifact 所使用的事件类型系列相同。

412 423 

413### 将查看器域列入允许列表424### 将查看器域名加入允许列表

414 425 

415claude.ai 上的查看器从沙箱 `*.claudeusercontent.com` 源加载每个 artifact。如果您的组织限制出站网络访问,请将该域添加到您的允许列表中,与 `claude.ai` 一起。有关完整列表,请参阅 [网络访问要求](/docs/zh-CN/network-config#network-access-requirements)。426claude.ai 上的查看器会从沙盒化的 `*.claudeusercontent.com` 源加载每个 Artifact。如果您的组织限制出站网络访问,请将该域名与 `claude.ai` 一起添加到允许列表中。有关完整列表,请参阅[网络访问要求](/docs/zh-CN/network-config#network-access-requirements)。

416 427 

417从 [Google Fonts](#improve-the-visual-design) 加载字体的 artifact 也会请求 `fonts.googleapis.com` 和 `fonts.gstatic.com`。两个主机都是可选的。如果您阻止它们,artifacts 将以备用字体呈现。使用快速拒绝而不是静默丢弃来阻止,以便字体请求立即失败,而不是延迟页面的首次呈现。428从 [Google Fonts](#improve-the-visual-design) 加载字体的 Artifact 还会请求 `fonts.googleapis.com` 和 `fonts.gstatic.com`。这两个主机都是可选的。如果您阻止它们,Artifact 将使用备用字体进行渲染。请采用快速拒绝而非静默丢弃的方式进行阻止,以便字体请求立即失败,而不会延迟页面的首次渲染。

418 429 

419Artifacts 还可以从 `cdnjs.cloudflare.com`、`cdn.jsdelivr.net`、`cdn.tailwindcss.com`、`code.jquery.com` 和 `unpkg.com` 加载 JavaScript 库(如 React 或图表包),而不能从任何其他外部主机加载。如果您阻止这些主机,artifact 中依赖库的部分将无法工作,与被阻止的字体不同,被阻止的库没有备用方案。在这里也使用快速拒绝,以便被阻止的库请求立即失败,而不是挂起直到超时。430Artifact 还可以从 `cdnjs.cloudflare.com`、`cdn.jsdelivr.net`、`cdn.tailwindcss.com`、`code.jquery.com` 和 `unpkg.com` 加载 JavaScript 库(例如 React 或图表库),且不会从其他任何外部主机加载。如果您阻止这些主机,Artifact 中依赖库的部分将无法正常工作;与被阻止的字体不同,被阻止的库没有备用方案。此处同样请采用快速拒绝的方式进行阻止,以便被阻止的库请求立即失败,而不会一直挂起直至超时。

420 431 

421### 使用 Compliance API 列出和删除 artifacts432### 使用 Compliance API 列出和删除 Artifact

422 433 

423[Compliance API](https://docs.claude.com/en/api/compliance) 提供端点来列出组织的 artifacts、检索特定版本的内容和删除 artifact:434[Compliance API](https://docs.claude.com/en/api/compliance) 提供了用于列出组织的 Artifact、检索特定版本的内容以及删除 Artifact 的端点:

424 435 

425| 方法 | 端点 |436| 方法 | 端点 |

426| :- | :- |437| :- | :- |

427| `GET` | `/v1/compliance/code/artifacts` |438| `GET` | `/v1/compliance/apps/code/artifacts` |

428| `GET` | `/v1/compliance/code/artifacts/{artifact_id}/versions/{version_id}` |439| `GET` | `/v1/compliance/apps/code/artifacts/{artifact_id}/versions/{version_id}` |

429| `DELETE` | `/v1/compliance/code/artifacts/{artifact_id}` |440| `DELETE` | `/v1/compliance/apps/code/artifacts/{artifact_id}` |

430 441 

431有关请求和响应架构,请参阅 [Compliance API 参考](https://docs.claude.com/en/api/compliance/code/artifacts)。442有关请求和响应的 schema,请参阅 [Compliance API 参考](https://platform.claude.com/docs/en/api/compliance/apps/code/artifacts)。

432 443 

433## 相关资源444## 相关资源

434 445 

Details

161 161 

162> [!NOTE]162> [!NOTE]

163>163>

164> `/auto-mode-setup` 需要 Pro、Max 或 Team 计划,以及 Claude Code v2.1.228 或更高版本。在原生 Windows 上需要 v2.1.233 或更高版本。你无法在[网页版 Claude Code](/docs/zh-CN/claude-code-on-the-web) 中运行它。它还需要[功能标志获取](/docs/zh-CN/env-vars#features-that-need-feature-flag-fetching),所以你无法在已关闭标志获取的会话中运行它。164> `/auto-mode-setup` 适用于 Pro、Max、Team 和 Enterprise 计划,以及使用 Claude Console API 密钥的情况。在 Pro、Max 或 Team 计划中,需要 v2.1.228 或更高版本;在原生 Windows 上需要 v2.1.233 或更高版本。在 Enterprise 计划中或使用 Claude Console API 密钥时,需要 v2.1.283 或更高版本。如果您的会话中缺少该命令,请参阅 [`/auto-mode-setup` 返回 "Unknown command"](#auto-mode-setup-returns-unknown-command)。

165 165 

166### `/auto-mode-setup` 读取的内容166### `/auto-mode-setup` 读取的内容

167 167 


202 202 

203`/auto-mode-setup` 是一个内置命令而不是[捆绑技能](/docs/zh-CN/skills#bundled-skills),所以这个 `skillOverrides` 条目仍然适用于它,但 [`disableBundledSkills`](/docs/zh-CN/settings-reference#disablebundledskills) 不会将其关闭。203`/auto-mode-setup` 是一个内置命令而不是[捆绑技能](/docs/zh-CN/skills#bundled-skills),所以这个 `skillOverrides` 条目仍然适用于它,但 [`disableBundledSkills`](/docs/zh-CN/settings-reference#disablebundledskills) 不会将其关闭。

204 204 

205### `/auto-mode-setup` 返回 "Unknown command"

206 

207如果在 Claude Code 输入框中输入 `/auto-mode-setup` 后显示 `Unknown command: /auto-mode-setup`,请检查以下原因:

208 

209* **安装或升级后的首个会话**:启动一个新会话。如果该命令在新会话中仍然缺失,请参阅[后续会话同样缺少该命令的设置情况](/docs/zh-CN/env-vars#first-session-after-an-install-or-upgrade)。

210* **版本过旧**:在 shell 中运行 `claude --version`。如果版本低于[您的计划所需的最低版本](#generate-environment-entries),请[更新 Claude Code](/docs/zh-CN/setup#update-claude-code)。

211* **遥测已关闭、第三方提供商或 Claude apps 网关**:在 v2.1.304 之前,该命令在[已关闭功能标志获取的会话](/docs/zh-CN/env-vars#features-that-need-feature-flag-fetching)中不可用。如果您的会话属于这种情况,请将 Claude Code [更新](/docs/zh-CN/setup#update-claude-code)到 v2.1.304 或更高版本。

212 

213在[云端会话](/docs/zh-CN/claude-code-on-the-web)中,该命令会显示 `/auto-mode-setup isn't available in this environment.`。请改为在终端的交互式会话中运行它。

214 

205## 覆盖阻止和允许规则215## 覆盖阻止和允许规则

206 216 

207三个额外的字段让您替换分类器的内置规则列表:217三个额外的字段让您替换分类器的内置规则列表:

Details

44 44 

45选择"到此处总结"会让您留在对话末尾,输入字段为空。使用任一总结选项,**总结的对话** 标记会出现在对话中压缩消息的位置。45选择"到此处总结"会让您留在对话末尾,输入字段为空。使用任一总结选项,**总结的对话** 标记会出现在对话中压缩消息的位置。

46 46 

47#### 如果您在发送下一个提示词之前退出,已回溯的消息可能会重新出现

48 

49要再次移除重新出现的消息,请在该会话中运行 `/rewind` 并选择相同的提示词,然后选择 **恢复对话**。在退出之前,请向 Claude 发送一个提示词,因为 Claude Code 会将回溯后的对话与该提示词一起保存。您已恢复的文件会保持回溯后的状态。

50 

47#### 回溯过去已清除的对话51#### 回溯过去已清除的对话

48 52 

49如果您在同一 Claude Code 进程中较早运行了 `/clear`,回溯菜单会在列表顶部显示一个额外的条目,标记为 `/resume <session-id> (previous session)`。选择它可以恢复在 `/clear` 运行前活跃的对话。该条目在您退出 Claude Code 或恢复不同会话之前可用。53如果您在同一 Claude Code 进程中较早运行了 `/clear`,回溯菜单会在列表顶部显示一个额外的条目,标记为 `/resume <session-id> (previous session)`。选择它可以恢复在 `/clear` 运行前活跃的对话。该条目在您退出 Claude Code 或恢复不同会话之前可用。

Details

689 689 

690### `admin`690### `admin`

691 691 

692可选。启用 `/v1/organizations/spend_limits`,它镜像 Anthropic 的公共 Admin API,以及在 `/v1/messages` 上的每个开发者支出强制执行。请参阅[支出限制](/docs/zh-CN/claude-apps-gateway-spend-limits)了解如何设置和强制执行上限;本部分涵盖启用该功能并调整它的 `gateway.yaml` 键。692可选。启用 `/v1/organizations/spend_limits`(它与 Anthropic 的公开 Admin API 一致),并在 `/v1/messages` 上按开发者执行支出限制。有关上限的设置和执行方式,请参阅[支出限制](/docs/zh-CN/claude-apps-gateway-spend-limits);本节介绍用于启用和调整该功能的 `gateway.yaml` 键。

693 693 

694```yaml theme={null}694```yaml theme={null}

695admin:695admin:

696 # 用于管理端点的命名静态 API 密钥,作为 x-api-key 发送。696 # Named static API keys for the admin endpoints, sent as x-api-key.

697 # id 在审计日志中显示为 admin-key:<id>,因此每个密钥都是697 # The id appears in the audit log as admin-key:<id> so each key is

698 # 可追踪的。数组用于轮换:添加新密钥,滚动客户端,698 # attributable. Array for rotation: add the new key, roll clients,

699 # 删除旧密钥。699 # remove the old.

700 write_keys:700 write_keys:

701 - { id: terraform, key: "${GATEWAY_ADMIN_WRITE_KEY_TF}" }701 - { id: terraform, key: "${GATEWAY_ADMIN_WRITE_KEY_TF}" }

702 - { id: ci, key: "${GATEWAY_ADMIN_WRITE_KEY_CI}" }702 - { id: ci, key: "${GATEWAY_ADMIN_WRITE_KEY_CI}" }

703 read_keys:703 read_keys:

704 - { id: reporting, key: "${GATEWAY_ADMIN_READ_KEY}" }704 - { id: reporting, key: "${GATEWAY_ADMIN_READ_KEY}" }

705 # 通过普通网关 JWT(无 API 密钥)授予完全管理员权限的 IdP 组。705 # IdP groups granted full admin via the normal gateway JWT (no API key).

706 admin_groups: [platform-finops]706 admin_groups: [platform-finops]

707 blocked_message: request an increase at https://go.example.com/claude-limits707 blocked_message: request an increase at https://go.example.com/claude-limits

708```708```

709 709 

710| 字段 | 必需 | 描述 |710| 字段 | 必需 | 描述 |

711| - | - | - |711| - | - | - |

712| `write_keys` | 否 | `{id, key}` 数组。与其中一个匹配的 `x-api-key` 可以列出、设置和删除支出限制。密钥值必须至少 32 个字符;`id` 必须在 `read_keys` 和 `write_keys` 中唯一。 |712| `write_keys` | 否 | `{id, key}` 数组。与其中之一匹配的 `x-api-key` 可以列出、设置和删除支出限制。密钥值长度至少为 32 个字符;`id` 在 `read_keys` 和 `write_keys` 中必须唯一。 |

713| `read_keys` | 否 | `{id, key}` 数组。只读:每个 `GET` 端点,包括列出上限、按 ID 获取一个,以及读取 [`/effective`](/docs/zh-CN/claude-apps-gateway-spend-limits#%2Feffective) 和 [`/audit`](/docs/zh-CN/claude-apps-gateway-spend-limits#%2Faudit)。 |713| `read_keys` | 否 | `{id, key}` 数组。只读:可访问所有 `GET` 端点,包括列出上限、按 ID 获取单个上限,以及读取 [`/effective`](/docs/zh-CN/claude-apps-gateway-spend-limits#%2Feffective) 和 [`/audit`](/docs/zh-CN/claude-apps-gateway-spend-limits#%2Faudit)。 |

714| `admin_groups` | 否 | IdP 组名称。网关 JWT 的 `groups` 声明包含其中一个的具有完全管理员访问权限(读和写),并审计为 `oidc:<sub>`。将此用于人类管理员;为机器使用 API 密钥。此列表中的空条目会在启动时停止网关。请参阅[在启动时停止网关的匹配器值](#matcher-values-that-stop-the-gateway-at-boot)。 |714| `admin_groups` | 否 | IdP 组名。`groups` 声明包含其中之一的网关 JWT 拥有完整的管理员访问权限(读和写),并以 `oidc:<sub>` 记入审计。人工管理员使用此方式;机器使用 API 密钥。此列表中的空条目会导致网关在启动时停止。请参阅[会导致网关在启动时停止的匹配器值](#matcher-values-that-stop-the-gateway-at-boot)。 |

715| `blocked_message` | 否 | 逐字附加到被阻止的开发者看到的 `429 billing_error`。编写完整的说明,例如 URL 或 Slack 频道。未设置时,网关仅发送默认消息。请参阅[强制执行如何工作](/docs/zh-CN/claude-apps-gateway-spend-limits#how-enforcement-works)。 |715| `blocked_message` | 否 | 原样附加到被阻止的开发者看到的 `429 billing_error` 中。请写出完整的说明,例如 URL 或 Slack 频道。未设置时,网关仅发送默认消息。请参阅[执行方式](/docs/zh-CN/claude-apps-gateway-spend-limits#how-enforcement-works)。 |

716| `audit_retention_days` | 否 | 默认 `365`。较旧的 `admin_audit` 行被清除。 |716| `audit_retention_days` | 否 | 默认值 `365`。更早的 `admin_audit` 行会被清除。 |

717| `spend_retention_months` | 否 | 默认 `13`。早于此的 `spend` 计数器行被清除。默认值保留整整一年加当前部分月份,用于年度对比报告。 |717| `spend_retention_months` | 否 | 默认值 `13`。早于此时间的 `spend` 计数器行会被清除。默认值保留完整一年加上当前未满的月份,以便进行同比报告。 |

718| `identity_retention_days` | 否 | 默认 `90`。`principal_emails` 行的最后一次看到 TTL,其中包含每个开发者的电子邮件、显示名称和组(PII)。意图上比支出保留期短,以便已取消配置的身份在其匿名支出计数器保留时过期。 |718| `identity_retention_days` | 否 | 默认值 `90`。`principal_emails` 行的最后活跃 TTL,这些行保存每位开发者的电子邮件、显示名称和组(PII)。有意设置得比支出保留期短,以便已取消配置的身份过期,而其匿名支出计数器仍然保留。 |

719| `group_limit_mode` | 否 | `min`(默认)或 `max`。当开发者在多个具有上限的组中时,`min` 强制执行最严格的,`max` 强制执行最宽松的。由强制执行和 `/effective` 使用。 |719| `group_limit_mode` | 否 | `min`(默认)或 `max`。当开发者属于多个设有上限的组时,`min` 执行最严格的上限,`max` 执行最宽松的上限。执行和 `/effective` 都使用此设置。 |

720 720 

721### `enforcement`721### `enforcement`

722 722 

723`enforcement` 块控制当存储不可用时支出限制检查的行为。723`enforcement` 块控制存储不可用时支出限制检查的行为。

724 724 

725| 字段 | 必需 | 描述 |725| 字段 | 必需 | 描述 |

726| - | - | - |726| - | - | - |

727| `fail_closed_on_error` | 否 | 默认值 `false`。Postgres 中断时,支出强制执行会失败开放,因此推理服务保持可用。设置为 `true` 则失败关闭:超出上限的开发者会被阻止,但如果存储无法访问,其他所有人也会被阻止。需要 [`admin:`](#admin) 块:支出强制执行仅在配置了 `admin` 时运行,如果在没有该块的情况下将此项设置为 `true`,网关将拒绝启动。 |727| `fail_closed_on_error` | 否 | 默认值 `false`。Postgres 中断时,支出执行以失败开放方式处理,因此推理保持可用。设置为 `true` 可改为失败关闭:超出上限的开发者会被阻止,但如果存储不可达,其他所有人也会被阻止。需要 [`admin:`](#admin) 块:支出执行仅在配置了 `admin` 时运行,如果您在没有该块的情况下将此项设为 `true`,网关将拒绝启动。 |

728 728 

729### `pricing`729### `pricing`

730 730 

731`pricing` 块告诉支出计量器收费而不是美元列表价格,因此上限和 [`/effective`](/docs/zh-CN/claude-apps-gateway-spend-limits#%2Feffective) 反映您的合同费率。金额保持为美元,并保持为估计值,而不是发票。两个前提条件:731`pricing` 块告诉支出计量器按什么价格计费,而不是使用美元标价,因此上限和 [`/effective`](/docs/zh-CN/claude-apps-gateway-spend-limits#%2Feffective) 会反映您的合同价格。金额仍以美元计,并且仍然是估算值,而不是发票。两个前提条件:

732 732 

733* 网关服务器上的 Claude Code v2.1.227 或更高版本。早期版本在启动时拒绝未知密钥。733* 网关服务器上的 Claude Code 为 v2.1.227 或更高版本。更早的版本会在启动时拒绝这个未知键。

734* [`admin:`](#admin) 块或在 v2.1.268 或更高版本中,至少有一个策略的 [`managed:`](#managed) 块。网关拒绝在设置 `pricing` 且两个块都不存在的情况下启动,因为没有任何东西会读取它。734* 存在 [`admin:`](#admin) 块,或者在 v2.1.268 或更高版本中,存在至少包含一个策略的 [`managed:`](#managed) 块。如果设置了 `pricing` 但两个块都不存在,网关将拒绝启动,因为没有任何内容会读取它。

735 735 

736```yaml theme={null}736```yaml theme={null}

737pricing:737pricing:


747 747 

748| 字段 | 必需 | 描述 |748| 字段 | 必需 | 描述 |

749| - | - | - |749| - | - | - |

750| `multiplier` | 否 | 默认 `1`。计量器将每个计量金额乘以此值,无论是列表价格还是覆盖,因此 `0.85` 按价格的 85% 计费。必须大于 0 且最多 10,值大于 1 是[标记价格上升](#mark-prices-up)。 |750| `multiplier` | 否 | 默认值 `1`。计量器将每笔计量金额(无论是标价还是覆盖价格)乘以此值,因此 `0.85` 按价格的 85% 计费。必须大于 0 且不超过 10,大于 1 的值表示[加价](#mark-prices-up)。 |

751| `overrides` | 否 | `{upstream, model, input, output, cache_read, cache_write}` 行,单位为每百万 token 的美元。所有四个费率都是必需的。每个必须大于 0 且最多 10000。 |751| `overrides` | 否 | `{upstream, model, input, output, cache_read, cache_write}` 行,单位为每百万 token 的美元价格。四个费率都是必需的。每个费率必须大于 0 且不超过 10000。 |

752 752 

753计量器如何匹配覆盖行:753计量器匹配覆盖行的方式:

754 754 

755* 一行替换 `upstream`(一个 [`upstreams[].name`](#upstreams))为 `model` 提供的请求的列表价格。这包括更高的[快速模式](/docs/zh-CN/fast-mode#understand-the-cost-tradeoff)费率,因此快速和标准请求以相同的四个费率计量。755* 对于 `upstream`(一个 [`upstreams[].name`](#upstreams))为 `model` 提供服务的请求,该行会替换标价。这包括较高的[快速模式](/docs/zh-CN/fast-mode#understand-the-cost-tradeoff)费率,因此快速请求和标准请求按相同的四个费率计量。

756* 内置 ID(如 `claude-sonnet-4-6`)匹配方式类似 [`models[].id`](#models),涵盖计量器定价为该模型的每个日期形式、区域 Amazon Bedrock 形式或 Google Cloud 的 Agent Platform 形式。任何其他字符串(如别名或推理配置文件 ARN)匹配客户端发送的 ID 或上游发送的字符串,不区分大小写。756* 内置 ID(例如 `claude-sonnet-4-6`)的匹配方式与 [`models[].id`](#models) 相同,涵盖计量器按该模型计价的所有带日期形式、区域性 Amazon Bedrock 形式或 Google Cloud Agent Platform 形式。其他任何字符串(例如别名或推理配置文件 ARN)会不区分大小写地匹配客户端发送的 ID 或发送到上游的字符串。

757* 当行重叠时,计量器选择最具体的行而不是第一行:一行其 `model` 是上游发送的确切模型字符串,然后是匹配客户端发送的确切 ID 的行,然后是命名内置模型的行。757* 当多行重叠时,计量器选择最具体的行,而不是第一行:首先是 `model` 为发送到上游的确切模型字符串的行,其次是与客户端发送的确切 ID 匹配的行,最后是指定内置模型的行。

758* 未知的上游名称会导致启动失败,两行针对一个上游命名相同模型也会导致启动失败,包括一个内置模型的两种拼写。网关在启动时警告没有可请求模型可以使用的行。758* 未知的上游名称会导致启动失败,同一上游的两行指定相同模型(包括同一内置模型的两种写法)也会导致启动失败。对于任何可请求模型都无法使用的行,网关会在启动时发出警告。

759* Web 搜索请求保持在 \$0.01 列表价格;乘数仍然适用于它们。759* 网页搜索请求保持 \$0.01 的标价;乘数仍然适用于它们。

760 760 

761对于按地区费率,为每个地区提供自己的命名上游和每个上游一行。761要使用按区域的费率,请为每个区域提供各自的命名上游,并为每个上游提供一行。

762 762 

763#### 标记价格上升763#### 加价

764 764 

765使用网关服务器上的 v2.1.271 或更高版本,您可以将 `multiplier` 设置为 1 以上,最多 10,以计量超过提供商收费的金额,例如内部退款费率。此示例以价格的 120% 计量每个请求:765在网关服务器上使用 v2.1.271 或更高版本时,您可以将 `multiplier` 设置为大于 1(最高 10),以高于提供商收费的价格进行计量,例如用于内部成本分摊费率。此示例将每个请求按价格的 120% 计量:

766 766 

767```yaml theme={null}767```yaml theme={null}

768pricing:768pricing:

769 multiplier: 1.2769 multiplier: 1.2

770```770```

771 771 

772使用 [`admin:`](#admin) 块,标记也适用于支出限制。计量器计算价格的 120%,因此开发者更快达到其上限。网关在启动时记录一条警告,说明这一点。772存在 [`admin:`](#admin) 块时,加价也适用于支出限制。计量器按价格的 120% 计数,因此开发者会更早达到上限。网关会在启动时记录一条说明此情况的警告。

773 773 

774乘数不会改变上游提供商对请求的收费。774乘数不会改变上游提供商对这些请求的收费。

775 775 

776如果网关还[将费率发送给已登录的客户端](#send-the-rates-to-signed-in-clients),开发者需要 Claude Code v2.1.271 或更高版本才能看到标记。早期客户端忽略 `multiplier` 大于 1 的值,并显示不带它的成本。776如果网关还[将费率发送到已登录的客户端](#send-the-rates-to-signed-in-clients),开发者需要 Claude Code v2.1.271 或更高版本才能看到加价。更早的客户端会忽略大于 1 的 `multiplier`,并显示不含加价的成本。

777 777 

778早于 v2.1.271 的网关服务器如果您设置 `multiplier` 大于 1,拒绝启动。778如果您将 `multiplier` 设置为大于 1,早于 v2.1.271 的网关服务器将拒绝启动。

779 779 

780#### 将费率发送给已登录的客户端780#### 将费率发送到已登录的客户端

781 781 

782使用网关服务器上的 v2.1.268 或更高版本,网关还将 `pricing` 中的费率放入它提供的 [`managed`](#managed) 策略中,作为 [`modelPricing`](/docs/zh-CN/settings-reference#modelpricing) 托管设置。由策略匹配的开发者然后在 `/usage`、状态栏和 OpenTelemetry 中看到第一个为每个模型 ID 提供服务的上游的 `pricing` 费率。与任何策略不匹配的开发者不接收托管设置,因此他们的数字保持在列表价格。客户端在 Claude Code v2.1.242 或更高版本中应用该设置。782在网关服务器上使用 v2.1.268 或更高版本时,网关还会将 `pricing` 中的费率作为 [`modelPricing`](/docs/zh-CN/settings-reference#modelpricing) 托管设置放入其提供的 [`managed`](#managed) 策略中。随后,被策略匹配的开发者会在 `/usage`、状态栏和 OpenTelemetry 中看到为每个模型 ID 提供服务的第一个上游的 `pricing` 费率。未匹配任何策略的开发者不会收到托管设置,因此其数据保持标价。客户端在 Claude Code v2.1.242 或更高版本中应用该设置。

783 783 

784* 网关添加的内容:除非策略的 `cli` 块已经设置 `modelPricing`,网关添加 `multiplier` 和,对于客户端可以请求的每个模型 ID,第一个为该 ID 提供服务的上游的覆盖行。仅故障转移上游收费的费率保留在网关上。784* 网关添加的内容:除非策略的 `cli` 块已设置 `modelPricing`,否则网关会添加 `multiplier`,并针对客户端可以请求的每个模型 ID,添加为该 ID 提供服务的第一个上游的覆盖行。仅由故障转移上游收取的费率保留在网关上。

785* 选择一个策略退出:在该策略的 `cli` 块中将 `modelPricing` 设置为 `{}`,其开发者保持在列表价格。785* 让某个策略退出:在该策略的 `cli` 块中将 `modelPricing` 设置为 `{}`,其开发者将保持标价。

786* 保留策略自己的费率:策略的 `cli` 块使用其自己的 `multiplier` 或 `overrides` 设置 `modelPricing` 保留该 `modelPricing` 完整,网关不向其添加自己的费率。786* 保留策略自身的费率:如果策略的 `cli` 块使用自己的 `multiplier` 或 `overrides` 设置了 `modelPricing`,则该 `modelPricing` 会完整保留,网关不会向其中添加自己的任何费率。

787 787 

788### `models`788### `models`

789 789 

790`models` 块是可选的管理员策划的模型列表,在 `/v1/models` 提供,用于按上游翻译模型 ID。对于非美国 Amazon Bedrock 地区、Amazon Bedrock 预配置吞吐量 ARN 和 Microsoft Foundry 部署名称是必需的。790`models` 块是一个可选的、由管理员维护的模型列表,在 `/v1/models` 提供,并用于按上游转换模型 ID。对于非美国 Amazon Bedrock 区域、Amazon Bedrock 预置吞吐量 ARN 和 Microsoft Foundry 部署名称,此块是必需的。

791 791 

792```yaml theme={null}792```yaml theme={null}

793auto_include_builtin_models: true # false: expose only the list below793auto_include_builtin_models: true # false: expose only the list below


801 foundry: your-opus-deployment-name801 foundry: your-opus-deployment-name

802```802```

803 803 

804`upstream_model` 下的每个键必须匹配配置的上游的 `name`,默认为提供商名称。与任何上游不匹配的键会导致启动失败,因此省略您不使用的提供商的行。804`upstream_model` 下的每个键必须与已配置上游的 `name` 匹配,该名称默认为提供商名称。不匹配任何上游的键会导致启动失败,因此请省略您不使用的提供商对应的行。

805 805 

806### `managed`806### `managed`

807 807 

808`managed` 块定义基于 IdP 组或电子邮件域的基于角色的访问策略。策略按顺序评估;选择第一个匹配,然后合并到 `match: {}` 全部捕获基础。它们按用户在 `GET /managed/settings` 提供,带有 ETag/304 缓存。808`managed` 块定义基于 IdP 组或电子邮件域的基于角色的访问策略。策略按顺序评估;选中第一个匹配项,然后将其合并到 `match: {}` 兜底基础层上。这些策略按用户在 `GET /managed/settings` 提供,并使用 ETag/304 缓存。

809 809 

810```yaml theme={null}810```yaml theme={null}

811managed:811managed:

812 policies:812 policies:

813 # 首先是特定组。813 # Specific groups first.

814 - match: { groups: [eng-contractors] }814 - match: { groups: [eng-contractors] }

815 cli:815 cli:

816 availableModels: [claude-sonnet-4-6]816 availableModels: [claude-sonnet-4-6]

817 permissions: { deny: ["WebFetch", "WebSearch"] }817 permissions: { deny: ["WebFetch", "WebSearch"] }

818 # 默认全部捕获最后:匹配每个已认证的用户。818 # Default catch-all last: matches everyone who authenticated.

819 - match: {}819 - match: {}

820 cli:820 cli:

821 availableModels: [claude-opus-4-8, claude-sonnet-4-6, claude-haiku-4-5]821 availableModels: [claude-opus-4-8, claude-sonnet-4-6, claude-haiku-4-5]

822 # 使 /model 中的 Default 选项在每个策略的822 # Make the Default option in /model resolve inside each policy's

823 # 列表内解析。eng-contractors 策略继承 enforceAvailableModels。823 # list. The eng-contractors policy inherits enforceAvailableModels.

824 enforceAvailableModels: true824 enforceAvailableModels: true

825```825```

826 826 

827`match: {}` 全部捕获,按惯例列在最后,被视为基础层。每个其他策略从全部捕获继承它不设置的任何键,因此每个角色条目只需列出与组织默认值不同的内容。合并规则取决于键类型:827`match: {}` 兜底策略按惯例放在最后,被视为基础层。其他每个策略都会从兜底策略继承自己未设置的任何键,因此按角色的条目只需列出与组织默认值不同的内容。合并规则取决于键的类型:

828 828 

829* **允许列表**:`availableModels` 和 `permissions.allow`。特定策略的列表完全替换基础的。829* **允许列表**:`availableModels` 和 `permissions.allow`。特定策略的列表会完全替换基础层的列表。

830* **拒绝列表和 hook 数组**:`permissions.deny`、`permissions.ask`、`disabledMcpjsonServers`、`deniedMcpServers`、`blockedMarketplaces` 和每个 `hooks` 事件类型数组。这些取基础和策略的并集,因此组织范围的拒绝或审计 hook 不能被每个角色覆盖意外删除。830* **拒绝列表和 hook 数组**:`permissions.deny`、`permissions.ask`、`disabledMcpjsonServers`、`deniedMcpServers`、`blockedMarketplaces`、`deniedModels` 以及每个 `hooks` 事件类型数组。这些取基础层与策略的并集,因此组织范围的拒绝规则或审计 hook 不会被按角色的覆盖意外丢弃。

831* **记录类型键**:`env`、`modelOverrides` 和 `skillOverrides`。这些浅合并,因此每个角色 `env` 块覆盖它设置的键并从基础继承其余的。831* **记录类型的键**:`env`、`modelOverrides` 和 `skillOverrides`。这些进行浅合并,因此按角色的 `env` 块会覆盖它设置的键,并从基础层继承其余的键。

832 832 

833`availableModels` 也在 `/v1/messages` 服务器端强制执行,因此被拒绝的模型返回 `400`,无论客户端发送什么。空列表会拒绝所有模型。该检查还涵盖开发者选择模型之前会话开始时使用的模型,因此请[让会话从策略允许的模型开始](#start-sessions-on-a-model-the-policy-allows)。833`availableModels` 还会在 `/v1/messages` 的服务器端执行,因此无论客户端发送什么,被拒绝的模型都会返回 `400`。空列表会拒绝所有模型。该检查还涵盖开发者选择模型之前会话启动时使用的模型,因此请[让会话在策略允许的模型上启动](#start-sessions-on-a-model-the-policy-allows)。

834 834 

835网关在中继请求之前验证 `model` 值本身,因此格式错误的值永远不会到达上游。它在两种情况下以 `400` 拒绝请求:835网关在转发请求之前会自行验证 `model` 值,因此格式错误的值永远不会到达上游。在以下两种情况下,它会以 `400` 拒绝请求:

836 836 

837* 当值缺失或为空时,网关以消息 `model is required` 拒绝请求。该检查需要运行 Claude Code v2.1.228 或更高版本的网关。837* 当该值缺失或为空时,网关会以消息 `model is required` 拒绝请求。该检查要求网关运行 Claude Code v2.1.228 或更高版本。

838* 当值存在但不是字符串时,网关以消息 `model must be a string` 拒绝请求。需要运行 Claude Code v2.1.221 或更高版本的网关。838* 当该值存在但不是字符串时,网关会以消息 `model must be a string` 拒绝请求。要求网关运行 Claude Code v2.1.221 或更高版本。

839 839 

840| 匹配器 | 行为 |840| 匹配器 | 行为 |

841| - | - |841| - | - |

842| `match: {}` | 匹配每个已认证的用户。从其中一个开始,稍后在其上方添加组范围的策略。 |842| `match: {}` | 匹配每个已通过身份验证的用户。先从这样一个策略开始,之后再在其上方添加按组范围的策略。 |

843| `match: { groups: [a, b] }` | 如果 JWT 的 `groups` 声明包含任何列出的组,则匹配。区分大小写:组必须匹配 IdP 的确切大小写。 |843| `match: { groups: [a, b] }` | 如果 JWT 的 `groups` 声明包含所列的任一组,则匹配。区分大小写:组名必须与 IdP 中的确切大小写一致。 |

844| `match: { email_domain: example.com }` | 匹配 JWT 的 `email` 声明中最后一个 `@` 之后的部分,不区分大小写。每个策略接受一个域。 |844| `match: { email_domain: example.com }` | 匹配 JWT 的 `email` 声明中最后一个 `@` 之后的部分,不区分大小写。每个策略只接受一个域。 |

845| `match: { groups: [a], email_domain: example.com }` | 两个条件都必须匹配 |845| `match: { groups: [a], email_domain: example.com }` | 两个条件都必须匹配 |

846 846 

847与任何策略不匹配的已认证用户获得网关的默认值,这意味着目录中的每个模型和没有托管设置。如果您想要保证的默认策略,请在最后添加 `match: {}` 全部捕获。847未匹配任何策略的已通过身份验证的用户将获得网关的默认值,即目录中的所有模型且没有托管设置。如果您希望有一个确定的默认策略,请在最后添加一个 `match: {}` 兜底策略。

848 848 

849> [!NOTE]849> [!NOTE]

850>850>

851> 网关不保留自己的用户目录。它从用户的 IdP 令牌授权每个请求,从令牌的 `groups` 声明读取组成员身份,并根据它评估策略。没有名册可以枚举,没有账户需要预先创建,因此没有 SCIM 端点,因为没有东西可以让 SCIM 同步到。851> 网关本身不保存用户目录。它根据用户的 IdP 令牌对每个请求进行授权,从令牌的 `groups` 声明中读取组成员身份,并据此评估策略。没有可枚举的名单,也没有需要预先创建的账户,因此也没有 SCIM 端点,因为没有任何内容可供 SCIM 同步。

852>852>

853> 在真实来源处运行用户和组生命周期管理,这是您的 IdP 的本地 SCIM 配置或专用身份治理平台。在那里管理的成员身份和取消配置通过令牌自动流入网关。如果您想要 Claude 账户本身的 SCIM 配置,这是[Claude for Enterprise](/docs/zh-CN/admin-setup) 功能。853> 请在事实来源处进行用户和组的生命周期管理,即您的 IdP 的原生 SCIM 预配或专用的身份治理平台。在那里管理的成员身份和取消预配会通过令牌自动传递到网关。如果您希望对 Claude 账户本身进行 SCIM 预配,那是 [Claude for Enterprise](/docs/zh-CN/admin-setup) 的功能。

854>854>

855> 两个传播时钟适用:855> 有两个传播时钟:

856>856>

857> * **策略内容**:编辑策略并重新部署在连接的 Claude Code 客户端的下一个托管设置轮询中到达,在一小时内,除了[仅在下一次启动时应用的更改](/docs/zh-CN/server-managed-settings#fetch-and-caching-behavior)857> * **策略内容**:编辑策略并重新部署后,已连接的 Claude Code 客户端会在下一次托管设置轮询时(一小时内)收到更改,但[仅在下次启动时生效的更改](/docs/zh-CN/server-managed-settings#fetch-and-caching-behavior)除外

858> * **组成员身份**:更改用户的组成员身份更改哪个策略匹配他们。这在下一个会话重新铸造时生效,意味着下一个静默刷新,受 `session.ttl_hours` 限制。858> * **组成员身份**:更改用户的组成员身份会改变与其匹配的策略。这在下一次会话重新签发时生效,即下一次静默刷新,最长不超过 `session.ttl_hours`。

859>859>

860> Claude Desktop 遵循[其自己的时间表](#when-a-policy-change-reaches-claude-desktop)。860> Claude Desktop 遵循[其自身的时间安排](#when-a-policy-change-reaches-claude-desktop)。

861 861 

862#### 让会话从策略允许的模型开始862#### 让会话在策略允许的模型上启动

863 863 

864如果 `availableModels` 未包含 Claude Code 的默认模型,会话会收到 `400` 响应,直到开发者选择一个已列出的模型,例如通过 `/model`。在网关会话中,默认模型是 `opus` 别名解析到的 Opus 模型,仅设置 `availableModels` 不会改变它。864如果 `availableModels` 未包含 Claude Code 的默认模型,会话将收到 `400` 响应,直到开发者选择一个列出的模型(例如使用 `/model`)。在网关会话中,默认模型是 `opus` 别名解析到的 Opus 模型,而单独使用 `availableModels` 不会改变它。

865 865 

866要解决此问题,请在同一 `cli` 块中设置 [`enforceAvailableModels: true`](/docs/zh-CN/model-config#enforce-the-allowlist-for-the-default-model),然后检查列表中包含哪种条目:866要解决此问题,请在同一 `cli` 块中设置 [`enforceAvailableModels: true`](/docs/zh-CN/model-config#enforce-the-allowlist-for-the-default-model),然后检查列表中包含哪种条目:

867 867 

868* **别名(如 `sonnet`)或内置 ID(如 `claude-sonnet-4-6`)**:会话从其中一个模型开始,`/model` 中的 Default 选项解析为该模型868* **别名(例如 `sonnet`)或内置 ID(例如 `claude-sonnet-4-6`)**:会话会在其中一个模型上启动,`/model` 中的 Default 选项会解析为该模型

869* **列表中没有别名或内置 ID**:会话可能仍从内置默认模型开始,因此还要在该策略的 `cli` 块中将 [`model`](/docs/zh-CN/model-config#control-the-model-users-run-on) 设置为已列出的 ID 之一869* **列表中没有别名或内置 ID**:会话可能仍在内置默认模型上启动,因此还需在该策略的 `cli` 块中将 [`model`](/docs/zh-CN/model-config#control-the-model-users-run-on) 设置为列出的 ID 之一

870 870 

871此策略列出一个由 [`models`](#models) 定义的自定义 ID,并让会话从该 ID 开始:871此策略列出了一个由 [`models`](#models) 定义的自定义 ID,并让会话在该 ID 上启动:

872 872 

873```yaml theme={null}873```yaml theme={null}

874managed:874managed:


880 model: claude-opus-restricted880 model: claude-opus-restricted

881```881```

882 882 

883#### 在启动时停止网关的匹配器值883#### 会导致网关在启动时停止的匹配器值

884 884 

885在启动时,网关检查每个策略的 `match` 块和 [`admin_groups`](#admin) 列表。这些值中的任何一个都会停止网关,出现命名该字段的错误:885启动时,网关会检查每个策略的 `match` 块以及 [`admin_groups`](#admin) 列表。以下任一值都会使网关停止,并显示一条指明该字段的错误:

886 886 

887* 空 `groups` 列表887* 空的 `groups` 列表

888* `groups` 或 `admin_groups` 中的空条目888* `groups` 或 `admin_groups` 中的空条目

889* 空 `email_domain`889* 空的 `email_domain`

890* 包含 `@`、空格或逗号的 `email_domain`。网关修剪值并在此检查之前删除一个前导 `@`。编写一个裸域,例如 `example.com`。890* 包含 `@`、空白或逗号的 `email_domain`。网关在此检查之前会修剪该值并去除一个前导 `@`。请写一个不带修饰的域,例如 `example.com`。

891 891 

892在 v2.1.232 之前,网关以这些值启动。每个值有这个效果:892在 v2.1.232 之前,网关会带着这些值启动。每个值的影响如下:

893 893 

894* 空 `email_domain`:网关跳过域检查,因此具有空 `email_domain` 和没有 `groups` 列表的策略匹配每个已认证的用户894* 空的 `email_domain`:网关跳过域检查,因此 `email_domain` 为空且没有 `groups` 列表的策略会匹配每个已通过身份验证的用户

895* 空 `groups` 列表:策略与任何人都不匹配895* 空的 `groups` 列表:该策略不匹配任何人

896* 包含 `@`、空格或逗号的 `email_domain`:策略与任何人都不匹配896* 包含 `@`、空白或逗号的 `email_domain`:该策略不匹配任何人

897* `groups` 或 `admin_groups` 中的空条目:条目仅当该用户的 IdP `groups` 声明也包含空条目时才匹配用户。在 `admin_groups` 中,该匹配授予管理员访问权限。如果您的 `admin_groups` 列表从不包含空条目,没有人以这种方式获得管理员访问权限。897* `groups` 或 `admin_groups` 中的空条目:仅当用户的 IdP `groups` 声明也包含空条目时,该条目才会匹配该用户。在 `admin_groups` 中,这种匹配会授予管理员访问权限。如果您的 `admin_groups` 列表从未包含空条目,则没有人会通过这种方式获得管理员访问权限。

898 898 

899#### 选择 `cli` 或 `code`899#### 选择 `cli` 或 `code`

900 900 

901> [!WARNING]901> [!WARNING]

902>902>

903> 当策略使用 `code` 键时,以下每种情况都会使网关无法启动:903> 当策略使用 `code` 键时,以下每种情况都会阻止网关启动:

904>904>

905> * **网关版本**:`code` 要求网关服务器上运行 Claude Code v2.1.296 或更高版本。较早的网关在发现该键时会拒绝启动。请在添加该键之前升级所有副本,并在回滚到较早版本之前将 `code` 改回 `cli`。905> * **网关版本**:`code` 要求网关服务器上的 Claude Code 为 v2.1.296 或更高版本。更早的网关发现该键时会拒绝启动。请在添加该键之前升级每个副本,并在回滚到更早版本之前将 `code` 改回 `cli`。

906> * **混合键**:同时包含 `code` 和 `cli`(或其早期写法 `settings`)的文件会使网关在启动时停止。请在一次编辑中将所有块放在同一个键下。906> * **混用键**:同时包含 `code` 和 `cli`(或其早期写法 `settings`)的文件会导致网关在启动时停止。请在一次编辑中将所有块放在同一个键下。

907 907 

908策略的 Claude Code 设置(例如拒绝读取 `.env` 文件的规则)放在 `cli` 或 `code` 键下的块中。`code` 是推荐的键,`cli` 是旧版键。两个键接受相同的内容。键决定了设置在何处强制执行:908策略的 Claude Code 设置(例如拒绝读取 `.env` 文件的规则)放在 `cli` 或 `code` 键下的块中。`code` 是推荐的键,`cli` 是旧版键。两个键接受相同的内容。键决定了设置在何处执行:

909 909 

910* **`cli`**:终端、VS Code 和 JetBrains 扩展以及 Agent SDK。在 `cli` 下,Claude Desktop 的 Code 标签页获得的是[派生设置](#claude-desktop-overlay),因此诸如 `Read(./.env)` 之类的限定规则在那里不会阻止用户。910* **`cli`**:终端、VS Code 和 JetBrains 扩展以及 Agent SDK。在 `cli` 下,Claude Desktop 的 Code 选项卡获得的是[派生设置](#claude-desktop-overlay),因此像 `Read(./.env)` 这样的限定范围规则不会在那里阻止用户。

911* **`code`**:相同的位置,并且也可以覆盖 Claude Desktop 的 Code 标签页。911* **`code`**:相同的位置,并且也可以覆盖 Claude Desktop 的 Code 选项卡。

912 912 

913使用 `cli` 的文件照常工作;如果网关在带有 [`desktop`](#claude-desktop-overlay) 键的策略中发现 `cli`,会在启动时发出警告,但仍会启动。请切换到 `code`,以便设置也能涵盖 Code 标签页。913使用 `cli` 的文件照常工作;如果网关在带有 [`desktop`](#claude-desktop-overlay) 键的策略中发现 `cli`,会在启动时发出警告,但仍会启动。请切换到 `code`,以便设置也能覆盖 Code 选项卡。

914 914 

915切换之前,请阅读[在 Code 标签页中应用 `code` 设置](#apply-code-settings-in-the-code-tab)。策略需要 `desktop` 键,用户的机器也需要进行设置后这些设置才会在那里生效,并且 Claude Desktop 中的网页搜索会被关闭。915切换之前,请阅读[在 Code 选项卡中应用 `code` 设置](#apply-code-settings-in-the-code-tab)。策略需要 `desktop` 键,并且用户的机器需要完成设置后这些设置才会在那里生效,此外 Claude Desktop 中的网页搜索会被关闭。

916 916 

917此策略将拒绝规则放在 `code` 下,并带有一个空的 `desktop` 键:917此策略将拒绝规则放在 `code` 下,并带有一个空的 `desktop` 键:

918 918 


925 desktop: {}925 desktop: {}

926```926```

927 927 

928切换时,请在重命名块的同一次编辑中删除所有 `serve_to_desktop` 行。凡是说明中提到 `cli` 块的地方,请使用您的 `code` 块。928切换时,请在重命名块的同一次编辑中删除所有 `serve_to_desktop` 行。在说明中提到 `cli` 块的地方,请使用您的 `code` 块。

929 929 

930#### `cli` 中的内容930#### `cli` 中包含什么

931 931 

932每个 `code` 或 `cli` 值都是一个完整的 Claude Code `managed-settings.json` 文档,其 schema 与您通过 MDM 或 `/etc/claude-code/managed-settings.json` 部署的相同,只是在此处以 YAML 表示。CLI 在托管层级(高于用户和项目设置)应用所传递的文档,取代服务器托管设置。因此,它会忽略[仅限操作系统级策略来源的设置](/docs/zh-CN/server-managed-settings#current-limitations),例如 `policyHelper` 和 `wslInheritsWindowsSettings`。932每个 `code` 或 `cli` 值都是一个完整的 Claude Code `managed-settings.json` 文档,与您通过 MDM 或 `/etc/claude-code/managed-settings.json` 部署的 schema 相同,只是此处以 YAML 表示。CLI 在托管层级(高于用户和项目设置)应用所交付的文档,以取代服务器托管设置。因此,它会忽略[仅限于操作系统级策略来源](/docs/zh-CN/server-managed-settings#current-limitations)的设置,例如 `policyHelper` 和 `wslInheritsWindowsSettings`。

933 933 

934网关在启动时根据 CLI 的设置 schema 验证每个文档,因此无法识别的顶级键会导致启动失败,出现命名每个违规键的错误。schema 的故意开放部分仍然接受任意值,因为较新的客户端可能识别网关的 schema 不识别的条目。这些开放键包括 `env`、`pluginConfigs` 和 `permissions` 下嵌套的键。934网关在启动时根据 CLI 的设置 schema 验证每个文档,因此无法识别的顶层键会导致启动失败,并显示指明每个违规键的错误。schema 中有意开放的部分仍接受任意值,因为较新的客户端可能识别网关 schema 无法识别的条目。这些开放的键包括 `env`、`pluginConfigs` 以及嵌套在 `permissions` 下的键。

935 935 

936因为验证使用与网关的已安装版本捆绑的 schema,将较新 Claude Code 版本引入的顶级设置键放入托管配置需要首先升级网关。在一个客户端上烟雾测试新策略,然后再推出。936由于验证使用的是网关已安装版本中捆绑的 schema,要在托管配置中放入较新 Claude Code 版本引入的顶层设置键,需要先升级网关。在推广新策略之前,请先在一个客户端上进行冒烟测试。

937 937 

938完整的键参考在[Claude Code 设置](/docs/zh-CN/settings-reference#all-settings)中。操作员首先寻求的最常见的键:938完整的键参考请参阅 [Claude Code 设置](/docs/zh-CN/settings-reference#all-settings)。运维人员最常首先使用的键:

939 939 

940```yaml theme={null}940```yaml theme={null}

941managed:941managed:


970 - { type: command, command: /usr/local/bin/audit-edit.sh }970 - { type: command, command: /usr/local/bin/audit-edit.sh }

971```971```

972 972 

973| 键 | 由以下强制执行 | 效果 |973| 键 | 执行方 | 效果 |

974| - | - | - |974| - | - | - |

975| `availableModels` | 网关 + CLI | 模型允许列表。也在 `/v1/messages` 检查,因此修补的客户端无法绕过它。 |975| `availableModels` | 网关 + CLI | 模型允许列表。还会在 `/v1/messages` 进行检查,因此打过补丁的客户端无法绕过它。 |

976| [`deniedModels`](/docs/zh-CN/settings-reference#deniedmodels)、[`availableModelsMatch`](/docs/zh-CN/settings-reference#availablemodelsmatch) | 网关 + CLI | [阻止特定模型或版本](/docs/zh-CN/model-config#block-specific-models-or-versions),即使 `availableModels` 原本会允许它们。被阻止的模型会在 `/v1/messages` 以 `400` 被拒绝,并且不会出现在 `/v1/models` 中。网关自身的检查要求网关服务器上的 Claude Code 为 v2.1.299 或更高版本。CLI 的检查要求客户端为 v2.1.283 或更高版本,更早的客户端会忽略这两个键。 |

976| `permissions.allow` / `.deny` | CLI | 工具和命令规则。请参阅[权限](/docs/zh-CN/permissions)。 |977| `permissions.allow` / `.deny` | CLI | 工具和命令规则。请参阅[权限](/docs/zh-CN/permissions)。 |

977| `permissions.disableBypassPermissionsMode` | CLI | 设置为 `disable` 以阻止 [`bypassPermissions`](/docs/zh-CN/permission-modes#skip-all-checks-with-bypasspermissions-mode),跳过权限提示的模式,以及 `--dangerously-skip-permissions` 标志 |978| `permissions.disableBypassPermissionsMode` | CLI | 设置为 `disable` 可阻止 [`bypassPermissions`](/docs/zh-CN/permission-modes#skip-all-checks-with-bypasspermissions-mode)(跳过权限提示的模式)以及 `--dangerously-skip-permissions` 标志 |

978| `allowManagedPermissionRulesOnly` | CLI | 当 `true` 时,托管设置成为权限规则的唯一设置来源。[`allowManagedPermissionRulesOnly`](/docs/zh-CN/settings-reference#allowmanagedpermissionrulesonly) 条目列出 Claude Code 然后忽略的每个来源。 |979| `allowManagedPermissionRulesOnly` | CLI | 为 `true` 时,托管设置成为权限规则的唯一设置来源。[`allowManagedPermissionRulesOnly`](/docs/zh-CN/settings-reference#allowmanagedpermissionrulesonly) 条目列出了 Claude Code 随后会忽略的每个来源。 |

979| `env` | CLI | 合并到 CLI 进程的环境变量。用于遥测、自动更新和模型名称覆盖。 |980| `env` | CLI | 合并到 CLI 进程中的环境变量。用于遥测、自动更新和模型名称覆盖。 |

980| `hooks` | CLI | 组织范围的 [hook](/docs/zh-CN/hooks) |981| `hooks` | CLI | 组织范围的 [hook](/docs/zh-CN/hooks) |

981| `managedMcpServers` | CLI | 远程 MCP 服务器[提供给每个匹配的开发者](/docs/zh-CN/managed-mcp#provide-servers-through-managed-settings)以及他们自己添加的服务器,仅 `http` 和 `sse`。请参阅[策略中的 MCP 服务器](#mcp-servers-in-a-policy)。需要网关服务器和客户端上的 Claude Code v2.1.259 或更高版本。早期客户端忽略该键。 |982| `managedMcpServers` | CLI | [提供给每位匹配开发者](/docs/zh-CN/managed-mcp#provide-servers-through-managed-settings)的远程 MCP 服务器,与开发者自行添加的服务器并存,仅限 `http` 和 `sse`。请参阅[策略中的 MCP 服务器](#mcp-servers-in-a-policy)。要求网关服务器和客户端上的 Claude Code 为 v2.1.259 或更高版本。更早的客户端会忽略该键。 |

982 983 

983因为这些设置通过网络到达,CLI 在应用下面列出的设置之前向每个开发者显示安全批准对话框:984由于这些设置通过网络到达,CLI 在应用以下设置之前会向每位开发者显示安全批准对话框:

984 985 

985* `hooks`986* `hooks`

986* 需要开发者批准的 `env` 变量,例如代理和基础 URL 变量987* 需要开发者批准的 `env` 变量,例如代理和基础 URL 变量

987* shell 执行设置,例如 `apiKeyHelper` 和 `statusLine`988* shell 执行设置,例如 `apiKeyHelper` 和 `statusLine`

988* 沙箱二进制设置 `sandbox.bwrapPath`、`sandbox.socatPath` 和 `sandbox.ripgrep`989* 沙箱二进制设置 `sandbox.bwrapPath`、`sandbox.socatPath` 和 `sandbox.ripgrep`

989* 拦截流量、注入凭据或削弱隔离的沙箱设置,例如 `sandbox.network.tlsTerminate` 和代理端口设置。[安全批准对话框](/docs/zh-CN/server-managed-settings#security-approval-dialogs)列出所有这些。990* 拦截流量、注入凭据或削弱隔离的沙箱设置,例如 `sandbox.network.tlsTerminate` 和代理端口设置。[安全批准对话框](/docs/zh-CN/server-managed-settings#security-approval-dialogs)列出了全部此类设置。

990 991 

991[批准记忆](/docs/zh-CN/server-managed-settings#approval-memory)涵盖批准持续多长时间以及对话框何时再次出现。992[批准记忆](/docs/zh-CN/server-managed-settings#approval-memory)介绍了批准的有效期以及对话框何时会再次出现。

992 993 

993Claude Code 应用一些交付的 `env` 变量而不显示开发者批准对话框,例如模型选择设置和数值限制。其他交付的变量可能需要开发者的批准才能生效;非空代理、基础 URL 或 `OTEL_EXPORTER_OTLP_ENDPOINT` 值总是这样。当交付的变量需要批准时,对话框命名它。994Claude Code 会应用某些交付的 `env` 变量而不向开发者显示批准对话框,例如模型选择设置和数值限制。其他交付的变量可能需要开发者批准后才能生效;非空的代理、基础 URL 或 `OTEL_EXPORTER_OTLP_ENDPOINT` 值始终需要批准。当交付的变量需要批准时,对话框会指明它。

994 995 

995[环境变量和批准对话框](/docs/zh-CN/server-managed-settings#environment-variables-and-the-approval-dialog)有详细信息,包括四个隐私切换,其交付值决定是否需要批准。在 v2.1.218 之前,Claude Code 应用更少的变量而不询问开发者,因此更多交付的变量触发对话框。996[环境变量和批准对话框](/docs/zh-CN/server-managed-settings#environment-variables-and-the-approval-dialog)提供了详细信息,包括四个隐私开关,其交付值决定了它们是否需要批准。在 v2.1.218 之前,Claude Code 不询问开发者就应用的变量较少,因此更多交付的变量会触发对话框。

996 997 

997网关的[遥测](#telemetry)配置推送 `OTEL_EXPORTER_OTLP_ENDPOINT`,因此设置 `telemetry.forward_to` 在每个交互式客户端上触发对话框。对话框保护开发者的机器免受受损或敌对网关的影响,而不是保护组织免受开发者的影响。998网关的[遥测](#telemetry)配置会推送 `OTEL_EXPORTER_OTLP_ENDPOINT`,因此设置 `telemetry.forward_to` 会在每个交互式客户端上触发对话框。该对话框保护的是开发者的机器免受被入侵或恶意网关的影响,而不是保护组织免受开发者的影响。

998 999 

999[非交互式运行](/docs/zh-CN/server-managed-settings#security-approval-dialogs)(例如 `claude -p`、Agent SDK 会话或 Claude Desktop 的 Code 标签页中的会话)无法显示对话框。它仅在该次运行中应用推送的设置,不会将其记录为已批准,因此开发者的下一个交互式会话仍会显示对话框。1000[非交互式运行](/docs/zh-CN/server-managed-settings#security-approval-dialogs)(例如 `claude -p`、Agent SDK 会话或 Claude Desktop 的 Code 选项卡中的会话)无法显示对话框。它仅在该次运行中应用推送的设置,并且不会将其记录为已批准,因此开发者的下一个交互式会话仍会显示对话框。

1000 1001 

1001如果开发者拒绝,Claude Code 退出该会话而不是应用策略。当您推送新 hook 或任何触发对话框的 env 变量到广泛策略时,每个匹配的开发者因此在其交互式会话中看到对话框。运行的交互式会话在下一个每小时轮询时显示它,否则它在开发者的下一个交互式启动时出现。1002如果开发者拒绝,Claude Code 会退出该会话,而不是应用策略。因此,当您向一个广泛的策略推送新的 hook 或任何会触发对话框的环境变量时,每位匹配的开发者都会在其交互式会话中看到该对话框。正在运行的交互式会话会在下一次每小时轮询时显示它,否则它会在开发者下次交互式启动时出现。

1002 1003 

1003`cli` 键在早期版本中名为 `settings`,网关仍接受该写法作为别名。对于新部署,请使用 [`code`](#choose-cli-or-code)。1004`cli` 键在早期版本中名为 `settings`,网关仍接受该写法作为别名。对于新部署,请使用 [`code`](#choose-cli-or-code)。

1004 1005 

1005#### 终端会话中的上下文窗口1006#### 终端会话中的上下文窗口

1006 1007 

1007通过 `/login` 登录的终端会话对 Opus 4.7 及更高版本、Sonnet 5 及更高版本以及 Fable 模型使用 1M 上下文窗口。模型 ID 无需 `[1m]` 后缀,会话在约 967K token 时压缩。在开发者机器上的 Claude Code v2.1.287 之前,除非模型 ID 以 `[1m]` 结尾,Claude Code 会将 Opus 和 Fable 模型视为具有 200K 窗口。1008通过 `/login` 登录的终端会话对 Opus 4.7 及更高版本、Sonnet 5 及更高版本以及 Fable 模型使用 1M 上下文窗口。模型 ID 不需要 `[1m]` 后缀,会话在约 967K token 时压缩。在开发者机器上的 Claude Code v2.1.287 之前,除非模型 ID 以 `[1m]` 结尾,否则 Claude Code 将 Opus 和 Fable 模型视为具有 200K 窗口。

1008 1009 

1009若要让终端会话改为在 200K 边界处压缩,请在策略的 `env` 中设置[自动压缩窗口](/docs/zh-CN/model-config#set-the-auto-compact-window):1010要让终端会话改为在 200K 边界处压缩,请在策略的 `env` 中设置[自动压缩窗口](/docs/zh-CN/model-config#set-the-auto-compact-window):

1010 1011 

1011```yaml theme={null}1012```yaml theme={null}

1012managed:1013managed:


1017 CLAUDE_CODE_AUTO_COMPACT_WINDOW: "200000"1018 CLAUDE_CODE_AUTO_COMPACT_WINDOW: "200000"

1018```1019```

1019 1020 

1020Claude Code 应用此变量时不会向开发者显示批准对话框。该变量适用于每个模型,包括以 `[1m]` 结尾的模型 ID。1021Claude Code 应用此变量时不会向开发者显示批准对话框。该变量适用于所有模型,包括以 `[1m]` 结尾的模型 ID。

1021 1022 

1022若要改为关闭 1M 上下文,请在同一 `env` 块中设置 [`CLAUDE_CODE_DISABLE_1M_CONTEXT: "1"`](/docs/zh-CN/model-config#extended-context)。Claude Code 随后会将每个模型视为具有 200K 窗口。在交互式会话中,每个开发者需要在[批准对话框](#what-goes-in-cli)中批准此变量后,它才会生效。1023要改为关闭 1M 上下文,请在同一 `env` 块中设置 [`CLAUDE_CODE_DISABLE_1M_CONTEXT: "1"`](/docs/zh-CN/model-config#extended-context)。Claude Code 随后将每个模型视为具有 200K 窗口。在交互式会话中,每位开发者需要在[批准对话框](#what-goes-in-cli)中批准此变量后它才会生效。

1023 1024 

1024#### 策略中的 MCP 服务器1025#### 策略中的 MCP 服务器

1025 1026 

1026要向策略匹配的 Claude Code 客户端提供 MCP 服务器,在该策略的 `cli` 块中设置 [`managedMcpServers`](/docs/zh-CN/managed-mcp#provide-servers-through-managed-settings)。您需要网关服务器和客户端上的 Claude Code v2.1.259 或更高版本。1027要向策略匹配的 Claude Code 客户端提供 MCP 服务器,请在该策略的 `cli` 块中设置 [`managedMcpServers`](/docs/zh-CN/managed-mcp#provide-servers-through-managed-settings)。网关服务器和客户端上需要 Claude Code v2.1.259 或更高版本。

1027 1028 

1028网关在启动时使用[Claude Code 在客户端应用的相同规则](/docs/zh-CN/managed-mcp#what-an-entry-can-contain)检查每个条目,如果条目未通过检查,网关拒绝启动并命名该条目。1029网关在启动时使用[与 Claude Code 在客户端上应用的相同规则](/docs/zh-CN/managed-mcp#what-an-entry-can-contain)检查每个条目;如果某个条目未通过检查,网关将拒绝启动并指明该条目。

1029 1030 

1030如果您在 `gateway.yaml` 中编写 `${VAR}` 引用,网关在启动时通过[秘密扩展](#secret-expansion)从其环境解析它,然后运行条目检查,因此每个匹配的客户端接收文字值并可以读取它。[为提供的服务器的标头指导](/docs/zh-CN/managed-mcp#provide-servers-through-managed-settings)适用于扩展值。1031如果您在 `gateway.yaml` 中写入 `${VAR}` 引用,网关会在运行条目检查之前,在启动时通过[密钥展开](#secret-expansion)从其环境中解析它,因此每个匹配的客户端都会收到字面值并可以读取它。[提供服务器的标头指南](/docs/zh-CN/managed-mcp#provide-servers-through-managed-settings)适用于展开后的值。

1031 1032 

1032网关拒绝 `cli` 块中的 `.mcp.json` 拼写 `mcpServers`,其启动错误命名 `managedMcpServers` 作为要使用的键。在 v2.1.259 之前,网关拒绝 `cli` 块中的任何 MCP 服务器定义。1033网关会拒绝 `cli` 块中的 `.mcp.json` 写法 `mcpServers`,其启动错误会指明应使用的键为 `managedMcpServers`。在 v2.1.259 之前,网关会拒绝 `cli` 块中的任何 MCP 服务器定义。

1033 1034 

1034#### Claude Desktop 覆盖1035#### Claude Desktop 叠加层

1035 1036 

1036如果您的组织也部署[Claude Desktop](/docs/zh-CN/desktop),相同的网关为两个客户端提供服务。在 Claude Desktop 的[托管配置](https://claude.com/docs/third-party/claude-desktop/configuration)中指向 `bootstrapUrl` 到 `<listen.public_url>/user/bootstrap`。Claude Desktop 从该 URL 派生 OAuth 发行者,针对此网关运行相同的设备代码登录,并从响应中获取其配置。1037如果您的组织还部署了 [Claude Desktop](/docs/zh-CN/desktop),同一个网关可以同时为两个客户端提供服务。在 Claude Desktop 的[托管配置](https://claude.com/docs/third-party/claude-desktop/configuration)中,将 `bootstrapUrl` 指向 `<listen.public_url>/user/bootstrap`。Claude Desktop 从该 URL 派生 OAuth 颁发者,针对此网关运行相同的设备代码登录,并从响应中获取其配置。

1037 1038 

1038> [!NOTE]1039> [!NOTE]

1039>1040>

1040> 需要网关服务器上的 Claude Code v2.1.203 或更高版本,以及显式选择加入:`/user/bootstrap` 返回 404,除非与用户匹配的策略携带 `desktop` 键。空 `desktop: {}` 选择一个策略,`match: {}` 基础层上的 `desktop` 键选择继承它的每个策略。审计日志将每个请求记录为 `desktop_bootstrap.serve` 或 `desktop_bootstrap.denied`。1041> 要求网关服务器上的 Claude Code 为 v2.1.203 或更高版本,并且需要显式选择加入:除非与用户匹配的策略带有 `desktop` 键,否则 `/user/bootstrap` 返回 404。空的 `desktop: {}` 即可让策略选择加入,而 `match: {}` 基础层上的 `desktop` 键会让所有继承它的策略选择加入。审计日志会将每个请求记录为 `desktop_bootstrap.serve` 或 `desktop_bootstrap.denied`。

1041 1042 

1042如果您不部署 Claude Desktop,请完全从您的策略中省略 `desktop`;网关然后从每个用户的 `/user/bootstrap` 返回 404。1043如果您不部署 Claude Desktop,请在策略中完全省略 `desktop`;此时网关会对每个用户从 `/user/bootstrap` 返回 404。

1043 1044 

1044##### 网关为 Claude Desktop 派生的设置1045##### 网关为 Claude Desktop 派生的设置

1045 1046 

1046网关从匹配策略的 `cli` 或 `code` 块以及顶层网关配置中派生 bootstrap 响应的大部分内容:1047网关从匹配策略的 `cli` 或 `code` 块以及顶层网关配置派生出 bootstrap 响应的大部分内容:

1047 1048 

1048* 模型列表,来自 `availableModels`。[Claude Desktop 中的扩展上下文](#extended-context-in-claude-desktop)介绍每个模型的 1M 上下文选项1049* 模型列表,来自 `availableModels`。该列表不包含策略通过 [`deniedModels` 或 `availableModelsMatch: exact`](#what-goes-in-cli) 阻止的模型。此筛选要求网关服务器上的 Claude Code 为 v2.1.299 或更高版本。[Claude Desktop 中的扩展上下文](#extended-context-in-claude-desktop)介绍了每个模型的 1M 上下文选项

1049* 禁用的工具,来自裸工具名称 `permissions.deny` 条目。如果您在策略的 `desktop` 块中设置 `disabledBuiltinTools`,网关提供您的值和派生列表的并集,因此您可以通过这种方式禁用更多工具,但无法重新启用您通过 `permissions.deny` 禁用的工具1050* 禁用的工具,来自仅包含工具名称的 `permissions.deny` 条目。如果您在策略的 `desktop` 块中设置了 `disabledBuiltinTools`,网关会提供您的值与派生列表的并集,因此您可以通过这种方式禁用更多工具,但无法重新启用通过 `permissions.deny` 禁用的工具

1050* 出站允许列表,来自 `sandbox.network.allowedDomains`。如果您在策略的 `desktop` 块中设置了 `coworkEgressAllowedHosts`,网关会使用该值而不是派生列表。如果网关提供的允许列表包含 `*`,且网关未同时提供 Claude Desktop 的 [`allowedWorkspaceFolders`](https://claude.com/docs/third-party/claude-desktop/code#applied-as-managed-policy),则 Claude Desktop 不会在 Code 标签页中启用 [Bash 沙箱](/docs/zh-CN/sandboxing)1051* 出站允许列表,来自 `sandbox.network.allowedDomains`。如果您在策略的 `desktop` 块中设置了 `coworkEgressAllowedHosts`,网关会使用该值代替派生列表。如果网关提供的允许列表包含 `*`,且网关未同时提供 Claude Desktop 的 [`allowedWorkspaceFolders`](https://claude.com/docs/third-party/claude-desktop/code#applied-as-managed-policy),Claude Desktop 不会在 Code 选项卡中启用 [Bash 沙箱](/docs/zh-CN/sandboxing)

1051* 指向网关本身的 OTLP 端点,以及已登录用户的身份属性。网关将它在该端点接收的导出中继到您的 `forward_to` 目的地。当您同时设置 [`telemetry.forward_to`](#telemetry) 和 `listen.public_url` 时,它包括端点和属性。1052* 一个指向网关自身的 OTLP 端点,以及已登录用户的身份属性。网关会将其在该端点收到的导出数据转发到您的 `forward_to` 目标。当您同时设置 [`telemetry.forward_to`](#telemetry) 和 `listen.public_url` 时,网关会包含该端点和这些属性。

1052 1053 

1053 Claude Desktop 以一种编码导出每个信号:`http/protobuf`,或当您在策略的 `env` 中将 `OTEL_EXPORTER_OTLP_PROTOCOL` 或其每个信号变体设置为 `http/json` 时为 `http/json`。在网关服务器上的 Claude Code v2.1.261 之前,响应设置 `http/json` 无论如何,因此仅接受 protobuf 的收集器拒绝了 Claude Desktop 的导出1054 Claude Desktop 使用一种编码导出所有信号:`http/protobuf`;如果您在策略的 `env` 中将 `OTEL_EXPORTER_OTLP_PROTOCOL` 或其按信号的变体之一设置为 `http/json`,则使用 `http/json`。在网关服务器上的 Claude Code v2.1.261 之前,响应始终设置为 `http/json`,因此仅接受 protobuf 的收集器会拒绝 Claude Desktop 的导出

1054 1055 

1055要在策略的 `desktop` 块中设置 `disabledBuiltinTools`、`coworkEgressAllowedHosts` 或 Claude Desktop 自己的 `managedMcpServers` 设置,您需要网关服务器上的 Claude Code v2.1.232 或更高版本。Claude Desktop 的 `managedMcpServers` 采用数组值而不是对象。1056要在策略的 `desktop` 块中设置 `disabledBuiltinTools`、`coworkEgressAllowedHosts` 或 Claude Desktop 自己的 `managedMcpServers` 设置,网关服务器上需要 Claude Code v2.1.232 或更高版本。Claude Desktop 的 `managedMcpServers` 接受数组值而不是对象。

1056 1057 

1057网关省略没有 Claude Desktop 等效项的键,例如 `hooks` 和范围权限规则,如 `Bash(npm *)`,来自引导响应。1058网关会从 bootstrap 响应中省略没有 Claude Desktop 对应项的键,例如 `hooks` 以及像 `Bash(npm *)` 这样的限定范围权限规则。

1058 1059 

1059##### 在 Code 标签页中应用 `code` 设置1060##### 在 Code 选项卡中应用 `code` 设置

1060 1061 

1061当以下条件全部满足时,策略在其 [`code`](#choose-cli-or-code) 键下的 Claude Code 设置会在 Claude Desktop 的 Code 标签页中生效:1062当以下所有条件都满足时,策略在其 [`code`](#choose-cli-or-code) 键下保存的 Claude Code 设置会在 Claude Desktop 的 Code 选项卡中生效:

1062 1063 

1063* 策略同时具有 `desktop` 键,空的 `desktop: {}` 也算1064* 策略还带有 `desktop` 键,空的 `desktop: {}` 也算

1064* Claude Desktop 为 2.9939.2 或更高版本1065* Claude Desktop 为 2.9939.2 或更高版本

1065* 机器上的 Claude Code 托管设置[指定了此网关](#client-side-managed-settings)1066* 机器上的 Claude Code 托管设置[指定了此网关](#client-side-managed-settings)

1066* 该机器通过私有网络上的 HTTPS 访问网关1067* 该机器通过私有网络上的 HTTPS 访问网关

1067 1068 

1068后两个条件适用于为会话运行 Claude Code 的那台机器。对于本地会话,就是用户自己的计算机。对于通过 SSH 的 Code 标签页会话,则是远程主机。1069后两个条件适用于为会话运行 Claude Code 的那台机器。对于本地会话,那是用户自己的计算机。对于通过 SSH 的 Code 选项卡会话,那是远程主机。

1069 1070 

1070在将 `cli` 重命名为 `code` 之前,请先将[客户端托管设置](#client-side-managed-settings)部署到这些机器。当前两个条件满足而后两个条件中任一不满足时,策略匹配的用户会得到以下结果之一:1071在将 `cli` 重命名为 `code` 之前,请先将[客户端托管设置](#client-side-managed-settings)部署到这些机器。当前两个条件满足而后两个条件之一不满足时,策略匹配的用户会得到以下结果之一:

1071 1072 

1072* **通过 HTTPS,且 Claude Desktop 捆绑 Claude Code v2.1.296 或更高版本**:Code 标签页不会启动,对用户提示词的回复会说明原因1073* **通过 HTTPS,且 Claude Desktop 捆绑了 Claude Code v2.1.296 或更高版本**:Code 选项卡不会启动,对用户提示词的回复会说明原因

1073* **通过 HTTPS,且 Claude Desktop 捆绑较早版本**:Code 标签页在没有您的 `code` 设置的情况下启动,会话中没有任何提示1074* **通过 HTTPS,且 Claude Desktop 捆绑了更早的版本**:Code 选项卡启动但不带您的 `code` 设置,会话中也没有任何提示

1074* **通过纯 HTTP**:无论 Claude Desktop 捆绑哪个版本,Code 标签页都会在没有您的 `code` 设置的情况下启动1075* **通过普通 HTTP**:无论 Claude Desktop 捆绑哪个版本,Code 选项卡都会启动但不带您的 `code` 设置

1075 1076 

1076当网关前面的代理以其自身的 404 响应 `/managed/settings` 时,Code 标签页同样会在没有您的 `code` 设置的情况下启动,即使机器满足全部四个条件也是如此。1077当网关前面的代理用自己的 404 响应 `/managed/settings` 时,Code 选项卡同样会启动但不带您的 `code` 设置,即使在满足全部四个条件的机器上也是如此。

1077 1078 

1078在带有 `desktop` 键的策略中,包含设置的 `code` 块会在 Cowork、Chat 和 Code 标签页中关闭 WebSearch 工具。有关 MCP 服务器,请参阅 [`managedMcpServers` 的适用范围](/docs/zh-CN/managed-mcp#where-managedmcpservers-applies)。1079在带有 `desktop` 键的策略中,包含设置的 `code` 块会在 Cowork、Chat 和 Code 选项卡中关闭 WebSearch 工具。关于 MCP 服务器,请参阅 [`managedMcpServers` 的适用范围](/docs/zh-CN/managed-mcp#where-managedmcpservers-applies)。

1079 1080 

1080##### 直接设置 Claude Desktop 设置1081##### 直接设置 Claude Desktop 设置

1081 1082 

1082添加可选的 `desktop` 块与 `cli` 一起直接设置 Claude Desktop 设置。从 Claude Desktop 的[托管配置参考](https://claude.com/docs/third-party/claude-desktop/configuration)编写设置为平面键名。省略 Claude Desktop 仅从 MDM 或本地文件读取的键,例如 `bootstrapUrl`;网关在启动时拒绝它们。1083在 `cli` 旁边添加可选的 `desktop` 块,即可直接设置 Claude Desktop 设置。以扁平键名写入 Claude Desktop [托管配置参考](https://claude.com/docs/third-party/claude-desktop/configuration)中的设置。请省略 Claude Desktop 仅从 MDM 或本地文件读取的键,例如 `bootstrapUrl`;网关会在启动时拒绝它们。

1083 1084 

1084此示例为 `eng-contractors` 组在其 `cli` 设置之外设置三个 Claude Desktop 键:1085此示例为 `eng-contractors` 组在其 `cli` 设置旁设置了三个 Claude Desktop 键:

1085 1086 

1086```yaml theme={null}1087```yaml theme={null}

1087managed:1088managed:


1096 banner: { text: "Contractor build: internal use only" }1097 banner: { text: "Contractor build: internal use only" }

1097```1098```

1098 1099 

1099每个键都是可选的;Claude Desktop 为您省略的任何键应用其自己的默认值。1100每个键都是可选的;对于您省略的任何键,Claude Desktop 会应用自己的默认值。

1100 1101 

1101##### 网关在启动时拒绝的内容1102##### 网关在启动时拒绝的内容

1102 1103 

1103网关在启动时根据 Claude Desktop 本身使用的配置 schema 验证每个 `desktop` 块,因此错误在网关启动时显示为命名该键的错误,而不是到达每个连接的桌面。网关在块包含以下内容时在启动时失败:1104网关在启动时根据 Claude Desktop 自身使用的配置 schema 验证每个 `desktop` 块,因此错误会在网关启动时以指明该键的错误形式暴露出来,而不会传递到每个已连接的桌面客户端。当块中包含以下内容时,网关会在启动时失败:

1104 1105 

1105* 未知键1106* 未知的键

1106* 识别的键,其值 Claude Desktop 会拒绝或静默删除,例如空值或嵌套条目内的拼写错误的子键。在 v2.1.260 之前,网关静默删除 `managedMcpServers` 或 `orgPluginSettings` 条目的嵌套对象内的拼写错误字段,而不是在启动时失败。1107* 已识别的键,但其值会被 Claude Desktop 拒绝或静默丢弃,例如空值或嵌套条目中拼写错误的子键。在 v2.1.260 之前,对于 `managedMcpServers` 或 `orgPluginSettings` 条目的嵌套对象中拼写错误的字段,网关会静默丢弃,而不是在启动时失败。

1107* 网关自己计算的键:推理连接、模型列表和 OTLP 中继。通过 [`upstreams`](#upstreams)、[`models`](#models) 和 [`telemetry`](#telemetry) 部分的 `forward_to` 配置这些。1108* 由网关自行计算的键:推理连接、模型列表和 OTLP 中继。请通过 [`upstreams`](#upstreams)、[`models`](#models) 以及 [`telemetry`](#telemetry) 部分的 `forward_to` 配置这些内容。

1108* 当前键的遗留别名。在启动错误中,网关命名规范键来编写。1109* 当前键的旧版别名。在启动错误中,网关会指明应写入的规范键。

1109 1110 

1110如果您使用已弃用的值或条目形状,例如没有 `transport` 的 `managedMcpServers` 条目,网关启动并记录命名替换的警告。1111如果您使用已弃用的值或条目形式,例如不带 `transport` 的 `managedMcpServers` 条目,网关会启动并记录一条指明替代项的警告。

1111 1112 

1112在 v2.1.232 之前,网关接受 11 个固定的功能门键的列表,例如 `chatTabEnabled` 和 `disableAutoUpdates`,并在启动时拒绝每个其他键。在 v2.1.227 之前,网关也在启动时拒绝 `chatTabEnabled` 和 `chatAdvancedFileAnalysisEnabled`。1113在 v2.1.232 之前,网关只接受由 11 个功能开关键组成的固定列表(例如 `chatTabEnabled` 和 `disableAutoUpdates`),并在启动时拒绝其他所有键。在 v2.1.227 之前,网关还会在启动时拒绝 `chatTabEnabled` 和 `chatAdvancedFileAnalysisEnabled`。

1113 1114 

1114##### 需要更高版本网关或 Claude Desktop 的键1115##### 需要更新的网关或 Claude Desktop 版本的键

1115 1116 

1116网关根据与其已安装版本捆绑的 schema 验证 `desktop` 块,就像它对 `cli` 块所做的那样。要交付由较新 Claude Desktop 版本引入的设置,首先升级网关。例如,`userPluginMarketplacesEnabled` 和 `userPluginUploadsEnabled` 需要网关服务器上的 Claude Code v2.1.260 或更高版本以及成员机器上的 Claude Desktop 1.37937.0 或更高版本。1117网关根据其已安装版本捆绑的 schema 验证 `desktop` 块,与验证 `cli` 块的方式相同。要交付由较新 Claude Desktop 版本引入的设置,请先升级网关。例如,`userPluginMarketplacesEnabled` 和 `userPluginUploadsEnabled` 需要网关服务器上的 Claude Code v2.1.260 或更高版本,以及成员机器上的 Claude Desktop 1.37937.0 或更高版本。

1117 1118 

1118`blockReadsOutsideWorkingDirectories`、`disableBypassPermissionsMode`、`configRecheckIntervalMinutes` 和 `sshClientPath` 需要网关服务器上的 Claude Code v2.1.281 或更高版本。`microsoftAuthBroker` 的 `required` 值和 Microsoft 365 `managedMcpServers` 条目的 `continuousAccessEvaluation` 字段也是如此。早于 `required` 值的 Claude Desktop 版本将其读取为 `disabled`,因此仅在每个成员的 Claude Desktop 支持它后才设置 `required`。Claude Desktop 的[托管配置参考](https://claude.com/docs/third-party/claude-desktop/configuration)列出首次读取每个键的版本。1119`blockReadsOutsideWorkingDirectories`、`disableBypassPermissionsMode`、`configRecheckIntervalMinutes` 和 `sshClientPath` 需要网关服务器上的 Claude Code v2.1.281 或更高版本。`microsoftAuthBroker` 的 `required` 值以及 Microsoft 365 `managedMcpServers` 条目的 `continuousAccessEvaluation` 字段也是如此。早于 `required` 值的 Claude Desktop 版本会将其读取为 `disabled`,因此请仅在每位成员的 Claude Desktop 都支持后再设置 `required`。Claude Desktop 的[托管配置参考](https://claude.com/docs/third-party/claude-desktop/configuration)列出了首次读取每个键的版本。

1119 1120 

1120如果您在策略的 `desktop` 块中设置 `orgPluginSettings`,网关以 Claude Desktop 1.15200.0 及更高版本读取的数组形式提供它。较旧的桌面忽略数组并强制执行没有插件工具策略,因此在您依赖它之前将成员更新到 1.15200.0 或更高版本。1121如果您在策略的 `desktop` 块中设置了 `orgPluginSettings`,网关会以 Claude Desktop 1.15200.0 及更高版本读取的数组形式提供它。较旧的桌面客户端会忽略该数组且不执行任何插件工具策略,因此在依赖它之前,请将成员更新到 1.15200.0 或更高版本。

1121 1122 

1122##### 角色策略如何继承基础 `desktop` 块1123##### 角色策略如何继承基础 `desktop` 块

1123 1124 

1124网关从策略的 `desktop` 块不设置的 `match: {}` 全部捕获的 `desktop` 块填充键,与它填充策略的 `cli` 块的方式相同。如果您在基础和角色策略中都设置 `disabledBuiltinTools` 或 `builtinToolPolicy`,网关保留基础的限制:1125对于策略的 `desktop` 块未设置的键,网关会从 `match: {}` 兜底策略的 `desktop` 块中补充,方式与从基础层补充策略的 `cli` 块相同。如果您在基础层和角色策略中都设置了 `disabledBuiltinTools` 或 `builtinToolPolicy`,网关会保留基础层的限制:

1125 1126 

1126* `disabledBuiltinTools`:网关使用基础列表和策略列表的并集1127* `disabledBuiltinTools`:网关使用基础层列表与策略列表的并集

1127* `builtinToolPolicy`:如果您在基础中将工具设置为 `allow` 以外的值,网关保留该值,即使您在角色策略中为同一工具设置 `allow`1128* `builtinToolPolicy`:如果您在基础层中将某个工具设置为 `allow` 以外的值,即使您在角色策略中为同一工具设置了 `allow`,网关也会保留该值

1128 1129 

1129对于每个其他键,如果您在角色策略中设置它,网关使用角色策略的值。网关替换数组或嵌套对象(如 `banner`)整体,因此如果您在角色策略中设置 `banner.text`,网关删除基础的 `banner.backgroundColor`。1130对于其他所有键,如果您在角色策略中设置了它,网关会使用角色策略的值。网关会整体替换数组或嵌套对象(例如 `banner`),因此如果您在角色策略中设置了 `banner.text`,网关会丢弃基础层的 `banner.backgroundColor`。

1130 1131 

1131##### 策略更改何时到达 Claude Desktop1132##### 策略更改何时到达 Claude Desktop

1132 1133 

1133在您使用更改后的策略重新部署网关后,Claude Desktop 仅在下次启动时应用大多数设置:1134使用更改后的策略重新部署网关后,Claude Desktop 大多数设置仅在下次启动时应用:

1134 1135 

1135* **已关闭**:Claude Desktop 在启动时获取引导响应,因此更改从下次启动起生效1136* **已关闭**:Claude Desktop 在启动时获取 bootstrap 响应,因此更改从下次启动开始生效

1136* **已打开**:Claude Desktop 默认每 10 分钟检查一次响应是否有更改,并在不重启的情况下应用少数设置。对于其余设置,例如 [`skillCreationEnabled`](https://claude.com/docs/third-party/claude-desktop/configuration#skillcreationenabled),用户会在侧边栏中看到 **Relaunch Claude Desktop** 卡片,并在重启应用之前保留先前的配置。默认在 24 小时后,Claude Desktop 会显示重启对话框,并在 2 分钟无活动后自行重启1137* **已打开**:Claude Desktop 默认每 10 分钟检查一次响应是否有更改,并在无需重启的情况下应用少数设置。对于其余设置,例如 [`skillCreationEnabled`](https://claude.com/docs/third-party/claude-desktop/configuration#skillcreationenabled),用户会在侧边栏中看到 **Relaunch Claude Desktop** 卡片,并在重启应用之前保留之前的配置。默认 24 小时后,Claude Desktop 会显示重启对话框,并在 2 分钟无操作后自行重启

1137 1138 

1138要缩短这 24 小时,请在策略的 `desktop` 块中设置 [`relaunchEnforcementHours`](https://claude.com/docs/third-party/claude-desktop/configuration#relaunchenforcementhours)。您需要网关服务器上的 Claude Code v2.1.260 或更高版本,以及成员机器上的 Claude Desktop 1.40609.0 或更高版本。设置为 `0` 时,Claude Desktop 一发现更改就会显示该对话框。1139要缩短这 24 小时,请在策略的 `desktop` 块中设置 [`relaunchEnforcementHours`](https://claude.com/docs/third-party/claude-desktop/configuration#relaunchenforcementhours)。网关服务器上需要 Claude Code v2.1.260 或更高版本,成员机器上需要 Claude Desktop 1.40609.0 或更高版本。设置为 `0` 时,Claude Desktop 一发现更改就会显示对话框。

1139 1140 

1140#### Claude Desktop 中的扩展上下文1141#### Claude Desktop 中的扩展上下文

1141 1142 

1142如果您从网关为 [Claude Desktop](#claude-desktop-overlay) 提供服务,其模型选择器会为每个可以使用 1M 上下文窗口运行的已列出模型提供 1M 上下文选项。这些模型包括 Claude Opus 4.6 及更高版本、Claude Sonnet 4.6 及更高版本,以及 Fable 模型。该选项是模型的 `[1m]` 变体,[扩展上下文](/docs/zh-CN/model-config#extended-context)对此有介绍。您需要网关服务器上的 Claude Code v2.1.284 或更高版本。1143如果您通过网关提供 [Claude Desktop](#claude-desktop-overlay),其模型选择器会为每个可以使用 1M 上下文窗口运行的已列出模型提供 1M 上下文选项。这些模型包括 Claude Opus 4.6 及更高版本、Claude Sonnet 4.6 及更高版本以及 Fable 模型。该选项即模型的 `[1m]` 变体,[扩展上下文](/docs/zh-CN/model-config#extended-context)对此有介绍。网关服务器上需要 Claude Code v2.1.284 或更高版本。

1143 1144 

1144在以下情况下,[`models`](#models) 条目不会获得 1M 选项:1145在以下情况下,[`models`](#models) 条目不会获得 1M 选项:

1145 1146 

1146* 可以为该条目提供服务的某个上游将其映射到不支持 1M 的模型,包括网关仅在故障转移时才访问的上游1147* 可以为该条目提供服务的某个上游将其映射到不支持 1M 的模型,包括网关仅在故障转移时才访问的上游

1147* 其 `id` 和任何 `upstream_model` 值都没有命名 Claude 模型,例如路由到应用推理配置文件 ARN 的自定义别名1148* 其 `id` 和任何 `upstream_model` 值都没有指定 Claude 模型,例如路由到应用程序推理配置文件 ARN 的自定义别名

1148 1149 

1149要更改选择器提供的内容,请使用以下方法之一:1150要更改选择器提供的内容,请使用以下方式之一:

1150 1151 

1151* **让用户从 1M 选项开始**:在策略的 `desktop` 块中设置 `modelPrefer1mContext: true`。尚未选择模型的用户,在第一个已列出模型具有 1M 选项时,会从该选项开始。已经选择模型的用户保留其选择。1152* **让用户从 1M 选项开始**:在策略的 `desktop` 块中设置 `modelPrefer1mContext: true`。当第一个列出的模型具有 1M 选项时,尚未选择模型的用户会从该 1M 选项开始。已经选择模型的用户保留其选择。

1152* **手动提供该选项**:如果您的网关服务器运行的版本早于 v2.1.284,或某个条目未命名 Claude 模型,请这样做。在 `models` 中列出该模型两次,一次使用其普通 ID,一次附加 `[1m]`,两者使用相同的 `upstream_model` 映射。Claude Desktop 将这一对显示为一个带有 1M 选项的模型。网关提供 `[1m]` 条目时不会对其进行检查,因此仅为您的上游以 1M 提供服务的模型添加此类条目。1153* **手动提供该选项**:如果您的网关服务器运行的版本早于 v2.1.284,或某个条目未指定 Claude 模型,请使用此方式。在 `models` 中将该模型列出两次,一次使用其普通 ID,一次附加 `[1m]`,两者使用相同的 `upstream_model` 映射。Claude Desktop 会将这一对显示为一个带有 1M 选项的模型。网关提供 `[1m]` 条目时不会对其进行检查,因此请仅为上游以 1M 提供服务的模型添加此类条目。

1153 1154 

1154此示例为路由到应用推理配置文件的自定义别名手动提供该选项,并让新用户从该选项开始:1155此示例为路由到应用程序推理配置文件的自定义别名手动提供该选项,并让新用户从该选项开始:

1155 1156 

1156```yaml theme={null}1157```yaml theme={null}

1157models:1158models:


1171 1172 

1172##### 移除 1M 选项1173##### 移除 1M 选项

1173 1174 

1174要从选择器中移除该选项,请在策略 `cli` 键下的 `env` 块中设置 `CLAUDE_CODE_DISABLE_1M_CONTEXT: "1"`。如果您还列出了 `id` 以 `[1m]` 结尾的条目,网关仍会提供该条目,因此也请删除该条目。1175要从选择器中移除该选项,请在策略 `cli` 键下的 `env` 块中设置 `CLAUDE_CODE_DISABLE_1M_CONTEXT: "1"`。如果您还列出了 `id` 以 `[1m]` 结尾的条目,网关仍会提供它,因此也请删除该条目。

1175 1176 

1176该变量也会传递到策略匹配的开发者的终端会话。有关它在那里的作用,请参阅[扩展上下文](/docs/zh-CN/model-config#extended-context)。1177该变量也会传递到策略匹配的开发者的终端会话。有关它在那里的作用,请参阅[扩展上下文](/docs/zh-CN/model-config#extended-context)。

1177 1178 

1178#### 与其他托管来源的优先级1179#### 与其他托管来源的优先级

1179 1180 

1180如果设备也有 MDM 交付的策略或本地 `managed-settings.json`,网关交付的设置排名第一。[托管层内的优先级](/docs/zh-CN/managed-settings#precedence-within-the-managed-tier)在托管设置页面上说明本地来源何时应用,并有[Claude Code 从每个管理来源读取的键](/docs/zh-CN/managed-settings#keys-read-from-every-admin-source),无论它选择哪个来源,例如沙箱锁键、`forceRemoteSettingsRefresh` 和每个变量 `env` 合并。在 MDM 配置文件或托管设置文件中配置的 [`policyHelper`](/docs/zh-CN/settings-reference#policyhelper) 仅在网关不交付设置时运行;条目说明其输出替换什么。1181如果设备还有通过 MDM 交付的策略或本地 `managed-settings.json`,则网关交付的设置优先级最高。托管设置页面上的[托管层级内的优先级](/docs/zh-CN/managed-settings#precedence-within-the-managed-tier)说明了本地来源何时生效,并列出了 [Claude Code 从每个管理员来源读取的键](/docs/zh-CN/managed-settings#keys-read-from-every-admin-source)(无论它选择了哪个来源),例如沙箱锁定键、`forceRemoteSettingsRefresh` 以及按变量的 `env` 合并。在 MDM 配置文件或托管设置文件中配置的 [`policyHelper`](/docs/zh-CN/settings-reference#policyhelper) 仅在网关未交付任何设置时运行;该条目说明了其输出会替换哪些内容。

1181 1182 

1182嵌入主机,例如[Claude Desktop](/docs/zh-CN/desktop),可以通过 SDK `managedSettings` 选项提供策略。[来自嵌入主机的父设置](/docs/zh-CN/managed-settings#parent-settings-from-embedding-hosts)说明 Claude Code 何时应用它,以及[限制父设置](/docs/zh-CN/claude-apps-gateway#restrict-parent-settings)列出哪些允许方向设置仍然适用而不需要 `allowManaged*Only` 锁。1183[Claude Desktop](/docs/zh-CN/desktop) 等嵌入宿主可以通过 SDK 的 `managedSettings` 选项提供策略。[来自嵌入宿主的父级设置](/docs/zh-CN/managed-settings#parent-settings-from-embedding-hosts)说明了 Claude Code 何时应用它,[限制父级设置](/docs/zh-CN/claude-apps-gateway#restrict-parent-settings)列出了在没有 `allowManaged*Only` 锁定时仍然适用的放宽方向设置。

1183 1184 

1184网关策略适用于机器上的每个 Claude Code 调用,包括非交互式 `claude -p` 运行和由 Agent SDK 生成的会话。如果网关在启动时无法访问,已登录的会话退出并出现错误,而不是在没有其策略的情况下运行。1185网关策略适用于机器上的每次 Claude Code 调用,包括非交互式 `claude -p` 运行以及由 Agent SDK 生成的会话。如果启动时网关不可达,已登录的会话会以错误退出,而不是在没有其策略的情况下运行。

1185 1186 

1186### `telemetry`1187### `telemetry`

1187 1188 

1188CLI 将指标、日志和(启用时)跟踪发送到网关,网关将它们逐字中继到每个配置的目的地。导出使用 OpenTelemetry Protocol (OTLP) over HTTP。要跳过中继并让会话直接导出到您的收集器,[在策略中命名收集器](#export-directly-to-your-collector)。请参阅[监控使用](/docs/zh-CN/monitoring-usage)了解 CLI 发出的指标和事件。1189CLI 将指标、日志以及(启用时的)追踪发送到网关,网关将它们原样转发到每个已配置的目标。导出使用基于 HTTP 的 OpenTelemetry Protocol(OTLP)。要跳过中继并让会话直接导出到您的收集器,请[在策略中指定收集器](#export-directly-to-your-collector)。有关 CLI 发出的指标和事件,请参阅[监控使用情况](/docs/zh-CN/monitoring-usage)。

1189 1190 

1190在通过 `/login` 登录的会话中,CLI 会为每次导出加上已通过身份验证用户的身份信息,这些信息从网关签发的 JWT 中读取:`user.id`、`user.email` 和 `user.groups` 属性。因此,按开发者的成本和使用量归因无需开发者端进行任何配置。Claude Code 在开发者登录之前记录的事件[不带有此身份信息](/docs/zh-CN/monitoring-usage#standard-attributes)。要了解开发者所属组发生变化时哪个属性会随之更新,请参阅[会话打开期间的组变更](#group-changes-during-an-open-session)。1191在通过 `/login` 登录的会话中,CLI 会在每次导出中标注已通过身份验证的用户身份,该身份从网关签发的 JWT 中读取:`user.id`、`user.email` 和 `user.groups` 属性。因此,按开发者的成本和使用情况归因无需开发者端进行任何配置。Claude Code 在开发者登录之前记录的事件[不带有此身份](/docs/zh-CN/monitoring-usage#standard-attributes)。要了解开发者的组发生变化时哪个属性会随之变化,请参阅[会话打开期间的组变化](#group-changes-during-an-open-session)。

1191 1192 

1192[Claude Desktop](#claude-desktop-overlay) 和通过网关登录的 Cowork 会话使用 `user.email` 和 `user.groups` 以及 `enduser.id` 为其遥测加盖时间戳,因此您可以使用一个关于 `user.email` 或 `user.groups` 的查询覆盖终端、Desktop 和 Cowork 使用。`user.groups` 是逗号分隔的 IdP 组列表。1193通过网关登录的 [Claude Desktop](#claude-desktop-overlay) 和 Cowork 会话会在其遥测中同时标注 `user.email`、`user.groups` 和 `enduser.id`,因此您可以通过对 `user.email` 或 `user.groups` 进行一次查询来涵盖终端、Desktop 和 Cowork 的使用情况。`user.groups` 是以逗号分隔的 IdP 组列表。

1193 1194 

1194Desktop 和 Cowork 遥测也携带 `enduser.sub`,您的身份提供商为用户颁发的 `sub` 声明,当用户的电子邮件更改时保持不变。终端会话在 `user.id` 下加盖相同的值,因此与终端 `user.id` 匹配 `enduser.sub` 的查询覆盖一个用户的终端、Desktop 和 Cowork 使用。在 Desktop 和 Cowork 导出上,`user.id` 是匿名标识符,而不是主题。1195Desktop 和 Cowork 遥测还带有 `enduser.sub`,即您的身份提供商为该用户签发的 `sub` 声明,它在用户电子邮件更改时保持不变。终端会话在 `user.id` 下标注相同的值,因此将 `enduser.sub` 与终端 `user.id` 匹配的查询可以同时涵盖一个用户的终端、Desktop 和 Cowork 使用情况。在 Desktop 和 Cowork 导出中,`user.id` 是一个匿名标识符,而不是主体。

1195 1196 

1196与来自 Claude Code 的所有 OpenTelemetry 数据一样,这些属性仅转到您的组织配置的目的地,从不转到 Anthropic。1197与 Claude Code 的所有 OpenTelemetry 数据一样,这些属性只会发送到您的组织配置的目标,绝不会发送给 Anthropic。

1197 1198 

1198如果用户的组列表在百分比编码后长于 255 个字符,或组名包含逗号或等号,网关将 `user.groups` 从该用户的 Desktop 和 Cowork 遥测中删除,而不是截断它。该用户的终端会话仍然携带完整列表。1199如果用户的组列表经百分比编码后超过 255 个字符,或者某个组名包含逗号或等号,网关会在该用户的 Desktop 和 Cowork 遥测中省略 `user.groups`,而不是将其截断。该用户的终端会话仍带有完整列表。

1199 1200 

1200当主题在百分比编码后长于 255 个字符,或包含空格、可打印 ASCII 外的字符或 `,` `;` `=` `\` `"` `%` 之一时,网关将 `enduser.sub` 删除。该用户的 Desktop 和 Cowork 遥测保留其他属性。1201当主体经百分比编码后超过 255 个字符,或者包含空格、可打印 ASCII 之外的字符,或 `,` `;` `=` `\` `"` `%` 之一时,网关会省略 `enduser.sub`。该用户的 Desktop 和 Cowork 遥测会保留其其他属性。

1201 1202 

1202您需要网关服务器上的 Claude Code v2.1.265 或更高版本才能在 Desktop 和 Cowork 遥测上获得 `user.email` 和 `user.groups`,以及每个开发者机器上的 Claude Desktop 1.24012 或更高版本才能获得 `user.groups`。1203要在 Desktop 和 Cowork 遥测中包含 `user.email` 和 `user.groups`,网关服务器上需要 Claude Code v2.1.265 或更高版本;要包含 `user.groups`,每位开发者的机器上还需要 Claude Desktop 1.24012 或更高版本。

1203 1204 

1204您需要网关服务器上的 Claude Code v2.1.274 或更高版本才能获得 `enduser.sub`。1205要包含 `enduser.sub`,网关服务器上需要 Claude Code v2.1.274 或更高版本。

1205 1206 

1206```yaml theme={null}1207```yaml theme={null}

1207telemetry:1208telemetry:


1209 - url: https://otel-collector.internal.example.com1210 - url: https://otel-collector.internal.example.com

1210 headers:1211 headers:

1211 Authorization: ${OTLP_TOKEN}1212 Authorization: ${OTLP_TOKEN}

1212 # 每个信号选择加入。默认:仅指标。1213 # Per-signal opt-in. Default: metrics only.

1213 metrics: true1214 metrics: true

1214 logs: false1215 logs: false

1215 traces: false1216 traces: false


1220 1221 

1221> [!WARNING]1222> [!WARNING]

1222>1223>

1223> 每个目的地独立选择加入 `metrics`、`logs` 和 `traces`,默认仅为指标。信号的敏感性不同:1224> 每个目标独立选择加入 `metrics`、`logs` 和 `traces`,默认仅为指标。这些信号的敏感程度不同:

1224>1225>

1225> * **指标**:聚合计数器,例如 token 计数、请求计数和延迟1226> * **指标**:聚合计数器,例如 token 计数、请求计数和延迟

1226> * **日志和跟踪**:可以携带完整的 Bash 命令、工具输入和文件路径,涵盖 Claude Code 在开发者机器上所做的任何事情1227> * **日志和追踪**:可能包含完整的 Bash 命令、工具输入和文件路径,涵盖 Claude Code 在开发者机器上所做的任何事情

1227>1228>

1228> 仅在具有该数据保证的访问控制和保留策略的目的地上启用日志和跟踪。1229> 请仅在具备与这些数据相称的访问控制和保留策略的目标上启用日志和追踪。

1229 1230 

1230每个 `forward_to` URL 必须使用 `https://`,有一个例外,用于网关自己的环回接口上的收集器:1231每个 `forward_to` URL 必须使用 `https://`,但位于网关自身回环接口上的收集器是一个例外:

1231 1232 

1232* `http://localhost:<port>` 通过配置验证,但[SSRF 防护](/docs/zh-CN/claude-apps-gateway-deploy#threat-model-summary)阻止每个导出,出现 `ECONNREFUSED_SSRF`,除非您在网关的环境中设置 `CLAUDE_GATEWAY_ALLOW_LOOPBACK=1`1233* `http://localhost:<port>` 可以通过配置验证,但除非您在网关的环境中设置了 `CLAUDE_GATEWAY_ALLOW_LOOPBACK=1`,否则 [SSRF 防护](/docs/zh-CN/claude-apps-gateway-deploy#threat-model-summary)会以 `ECONNREFUSED_SSRF` 阻止每次导出

1233* `http://127.0.0.1:<port>` 或 `http://[::1]:<port>` 失败启动,除非设置了该变量1234* 除非设置了该变量,否则 `http://127.0.0.1:<port>` 或 `http://[::1]:<port>` 会导致启动失败

1234 1235 

1235对于集群内收集器,在其自己的内部地址上公开它通过 HTTPS,或将其作为边车运行,设置变量。1236对于集群内的收集器,请在其自己的内部地址上通过 HTTPS 公开它,或者将其作为 sidecar 运行并设置该变量。

1236 1237 

1237当设置 `HTTPS_PROXY` 时,网关通过该代理发送导出。1238设置了 `HTTPS_PROXY` 时,网关会通过该代理发送导出数据。

1238 1239 

1239要直接到达内部收集器,通过主机名或带有前导点的域(如 `.internal.example.com`)将其添加到 `NO_PROXY`,这需要网关服务器上的 Claude Code v2.1.277 或更高版本。确保网关可以在没有代理的情况下到达收集器。没有前导点的条目仅匹配该确切名称,不匹配其下的名称。CIDR 范围不匹配。1240要直接访问内部收集器,请将其按主机名或以带前导点的域(例如 `.internal.example.com`)添加到 `NO_PROXY`,这要求网关服务器上的 Claude Code 为 v2.1.277 或更高版本。请确保网关可以不经代理访问该收集器。不带前导点的条目只匹配该确切名称,不匹配其下级名称。CIDR 范围不会匹配。

1240 1241 

1241启用[仅代理出口](#proxy-only-egress)后,在代理中允许收集器,因为任何 `NO_PROXY` 条目都会关闭仅代理出口。1242启用[仅代理出站](#proxy-only-egress)时,请改为在代理中允许该收集器,因为任何 `NO_PROXY` 条目都会使仅代理出站保持关闭。

1242 1243 

1243遥测在 CLI 中默认关闭。当您同时设置 `telemetry.forward_to` 和 `listen.public_url` 时,网关通过 `/managed/settings` 为连接的客户端打开它,推送六个环境变量:1244CLI 中的遥测默认处于关闭状态。当您同时设置 `telemetry.forward_to` 和 `listen.public_url` 时,网关会通过 `/managed/settings` 推送六个环境变量,为已连接的客户端启用遥测:

1244 1245 

1245* `CLAUDE_CODE_ENABLE_TELEMETRY=1`1246* `CLAUDE_CODE_ENABLE_TELEMETRY=1`

1246* `OTEL_METRICS_EXPORTER`、`OTEL_LOGS_EXPORTER` 和 `OTEL_TRACES_EXPORTER`,如果至少一个 `forward_to` 目的地启用该信号,则每个设置为 `otlp`,否则设置为 `none`1247* `OTEL_METRICS_EXPORTER`、`OTEL_LOGS_EXPORTER` 和 `OTEL_TRACES_EXPORTER`,如果至少一个 `forward_to` 目标启用了该信号,则各自设置为 `otlp`,否则设置为 `none`

1247* `OTEL_EXPORTER_OTLP_ENDPOINT=<public_url>`1248* `OTEL_EXPORTER_OTLP_ENDPOINT=<public_url>`

1248* `OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf`1249* `OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf`

1249 1250 

1250当您[添加自己的标签](#add-your-own-labels)时,网关也推送 `OTEL_RESOURCE_ATTRIBUTES`。1251当您[添加自己的标签](#add-your-own-labels)时,网关还会推送 `OTEL_RESOURCE_ATTRIBUTES`。

1251 1252 

1252在网关服务器上的 Claude Code v2.1.265 之前,网关推送所有三个导出器选择器为 `otlp`,包括没有目的地选择加入的信号。1253在网关服务器上的 Claude Code v2.1.265 之前,网关会将全部三个导出器选择器都推送为 `otlp`,包括没有任何目标选择加入的信号。

1253 1254 

1254推送的端点从公共 URL 构建,因此指标和日志不需要来自开发者或策略的 OTEL 配置。1255推送的端点由公共 URL 构建,因此指标和日志不需要开发者或策略进行任何 OTEL 配置。

1255 1256 

1256通过 `/login` 登录的开发者无法使用自己的 OTEL 配置重定向导出:1257通过 `/login` 登录的开发者无法使用自己的 OTEL 配置重定向导出:

1257 1258 

1258* **本地设置的变量**:Claude Code 在托管层应用推送的变量,因此每个变量覆盖开发者为其本地设置的值。1259* **本地设置的变量**:Claude Code 在托管层级应用推送的变量,因此每个变量都会覆盖开发者在本地为其设置的值。

1259* **本地配置的端点**:启用 OTLP/HTTP 导出后,CLI 忽略任何本地配置的端点,无论网关是否推送了遥测变量。其导出转到网关,除非策略[将您的收集器命名为端点](#export-directly-to-your-collector)。1260* **本地配置的端点**:启用 OTLP/HTTP 导出后,无论网关是否推送了遥测变量,CLI 都会忽略任何本地配置的端点。除非策略[将您的收集器指定为端点](#export-directly-to-your-collector),否则其导出会发送到网关。

1260 1261 

1261没有信号的 `forward_to` 目的地,网关接受并丢弃它。如果开发者已经将 Claude Code 遥测导出到您的一个收集器,将其添加为 `forward_to` 目的地,如果他们导出这些,启用日志或跟踪,因此在他们登录后它继续接收他们的数据。要跳过中继,请改为[在策略中命名收集器](#export-directly-to-your-collector)。1262如果某个信号没有 `forward_to` 目标,网关会接受并丢弃它。如果开发者已经将 Claude Code 遥测导出到您的某个收集器,请将其添加为 `forward_to` 目标(如果他们导出日志或追踪,则启用相应信号),以便在他们登录后该收集器继续接收其数据。要改为跳过中继,请[在策略中指定收集器](#export-directly-to-your-collector)。

1262 1263 

1263[跟踪](/docs/zh-CN/monitoring-usage#traces-beta)也需要每个客户端上的 `CLAUDE_CODE_ENHANCED_TELEMETRY_BETA=1`。在托管策略的 `env` 块中设置它,因为网关不推送它。开发者在已经触发的相同[安全批准对话框](#managed)中批准它,推送的端点。1264[追踪](/docs/zh-CN/monitoring-usage#traces-beta)还要求每个客户端上设置 `CLAUDE_CODE_ENHANCED_TELEMETRY_BETA=1`。请在托管策略的 `env` 块中设置它,因为网关不会推送它。开发者会在推送的端点已触发的同一[安全批准对话框](#managed)中批准它。

1264 1265 

1265仅在您想要跟踪的组的策略中将其设置为 `1`。不设置它的策略从您的 `match: {}` 全部捕获策略继承值,如果该策略设置一个,根据[合并规则](#managed)。要防止组的客户端发送跟踪,即使开发者本地设置变量,在该组的策略中将其设置为 `0`。1266请仅在您希望追踪其组的策略中将其设置为 `1`。根据[合并规则](#managed),未设置它的策略会从您的 `match: {}` 兜底策略继承该值(如果兜底策略设置了它)。要让某个组的客户端即使在开发者本地设置了该变量时也不发送追踪,请在该组的策略中将其设置为 `0`。

1266 1267 

1267protobuf 和 JSON OTLP 编码都被中继,任何 OpenTelemetry 兼容的后端都可以作为目的地。1268protobuf 和 JSON 两种 OTLP 编码都会被转发,任何兼容 OpenTelemetry 的后端都可以用作目标。

1268 1269 

1269#### 发送累积指标1270#### 发送累积指标

1270 1271 

1271如果您的收集器仅接受累积指标,请将 [`OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE`](/docs/zh-CN/monitoring-usage#common-configuration-variables) 设置为 `cumulative`。Claude Code 默认发送增量指标,网关在转发时不会对其进行转换。请在每种会话读取该变量的位置进行设置:1272如果您的收集器只接受累积指标,请将 [`OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE`](/docs/zh-CN/monitoring-usage#common-configuration-variables) 设置为 `cumulative`。Claude Code 默认发送增量指标,网关转发它们时不会进行转换。请在每种会话读取该变量的位置设置它:

1272 1273 

1273* **终端会话**:在策略 [`cli` 或 `code` 键](#choose-cli-or-code)下的 `env` 块中1274* **终端会话**:在策略的 [`cli` 或 `code` 键](#choose-cli-or-code)下的 `env` 块中

1274* **[在用户机器上运行](/docs/zh-CN/managed-settings#where-and-when-a-policy-applies)的 Cowork 会话**:在该机器上[客户端托管设置](#client-side-managed-settings)的 `env` 块中1275* **[在用户机器上运行](/docs/zh-CN/managed-settings#where-and-when-a-policy-applies)的 Cowork 会话**:在该机器上[客户端托管设置](#client-side-managed-settings)的 `env` 块中

1275* **`code` 策略下的 Code 标签页会话**:在满足[`code` 设置生效的条件](#apply-code-settings-in-the-code-tab)后,在策略的 `env` 块中1276* **`code` 策略下的 Code 选项卡会话**:在满足[`code` 设置生效的条件](#apply-code-settings-in-the-code-tab)后,在策略的 `env` 块中

1276* **`cli` 策略下的 Code 标签页会话**:在运行该会话的机器上客户端托管设置的 `env` 块中。通过 SSH 时,即远程主机。1277* **`cli` 策略下的 Code 选项卡会话**:在运行该会话的机器上客户端托管设置的 `env` 块中。通过 SSH 时,那是远程主机。

1277 1278 

1278如果您将该变量添加到机器的托管设置中,还需在该机器上优先级最高的来源中设置 [`parentSettingsBehavior: "merge"`](/docs/zh-CN/claude-apps-gateway#set-the-opt-in)。否则,Cowork 会话和 `cli` 策略下的 Code 标签页会话将在没有出站允许列表以及 Claude Desktop 作为父级设置传递给它们的其他策略的情况下运行。1279如果您将该变量添加到机器的托管设置中,还需在该机器上优先级最高的来源中设置 [`parentSettingsBehavior: "merge"`](/docs/zh-CN/claude-apps-gateway#set-the-opt-in)。否则,Cowork 会话和 `cli` 策略下的 Code 选项卡会话在运行时将不带有 Claude Desktop 作为父级设置传递给它们的出站允许列表和其他策略。

1279 1280 

1280#### 添加您自己的标签1281#### 添加自己的标签

1281 1282 

1282要在通过网关登录的会话的遥测上放置固定标签,例如 `service.namespace` 或 `deployment.environment.name`,设置 `telemetry.resource_attributes`。每个标签是一个 OpenTelemetry 资源属性,每个目的地接收相同的标签。1283要在通过网关登录的会话的遥测上添加固定标签,例如 `service.namespace` 或 `deployment.environment.name`,请设置 `telemetry.resource_attributes`。每个标签都是一个 OpenTelemetry 资源属性,每个目标都会收到相同的标签。

1283 1284 

1284会话仅在您也设置 `telemetry.forward_to` 和 `listen.public_url` 时获得标签。此示例添加两个标签:1285仅当您同时设置 `telemetry.forward_to` 和 `listen.public_url` 时,会话才会获得这些标签。此示例添加了两个标签:

1285 1286 

1286```yaml theme={null}1287```yaml theme={null}

1287telemetry:1288telemetry:


1292 deployment.environment.name: prod1293 deployment.environment.name: prod

1293```1294```

1294 1295 

1295当标签违反这些规则之一时,网关拒绝启动,启动错误命名标签:1296当标签违反以下规则之一时,网关会拒绝启动,启动错误会指明该标签:

1296 1297 

1297* 名称仅使用字母、数字、`.`、`_` 和 `-`1298* 名称只能使用字母、数字、`.`、`_` 和 `-`

1298* 名称不是保留的。以任何字母大小写比较,保留名称是以 `user.`、`enduser.` 或 `identity.` 开头的所有内容,加上 `service.name`、`service.version`、`claude.deployment_mode`、`host.arch`、`os.type`、`os.version` 和 `wsl.version`1299* 名称不能是保留名称。保留名称不区分大小写进行比较,包括所有以 `user.`、`enduser.` 或 `identity.` 开头的名称,以及 `service.name`、`service.version`、`claude.deployment_mode`、`host.arch`、`os.type`、`os.version` 和 `wsl.version`

1299* 值是非空可打印 ASCII,没有空格和 `, ; = \ " %` 中的任何一个1300* 值为非空的可打印 ASCII,不含空格,也不含 `, ; = \ " %` 中的任何字符

1300* 值在百分比编码后最多 255 个字符,如网关计算的那样,因此 `/`、`:` 和 `@` 各计为三个1301* 值在网关按百分比编码后计数时最多 255 个字符,因此 `/`、`:` 和 `@` 各计为三个字符

1301* 值是文本,因此引用数字、`true` 或 `false`1302* 值为文本,因此请为数字、`true` 或 `false` 加引号

1302 1303 

1303您需要网关服务器上的 Claude Code v2.1.281 或更高版本才能设置 `telemetry.resource_attributes`。早期网关在找到键时拒绝启动。在添加键之前升级每个副本,并在回滚到早期版本之前删除键。1304要设置 `telemetry.resource_attributes`,网关服务器上需要 Claude Code v2.1.281 或更高版本。更早的网关发现该键时会拒绝启动。请在添加该键之前升级每个副本,并在回滚到更早版本之前移除该键。

1304 1305 

1305通过 `/login` 登录的终端会话接收标签作为 `OTEL_RESOURCE_ATTRIBUTES`,与其他[遥测变量](#telemetry)一起推送。如果您在策略的 `env` 块中设置 `OTEL_RESOURCE_ATTRIBUTES`,该策略匹配的终端会话获得该值而不是标签。Claude Desktop 从网关接收标签以及 `user.email` 和其他身份属性。1306通过 `/login` 登录的终端会话会以 `OTEL_RESOURCE_ATTRIBUTES` 的形式接收标签,与其他[遥测变量](#telemetry)一起推送。如果您在策略的 `env` 块中设置了 `OTEL_RESOURCE_ATTRIBUTES`,该策略匹配的终端会话会获得该值而不是这些标签。Claude Desktop 从网关接收标签,同时接收 `user.email` 和其他身份属性。

1306 1307 

1307Claude Code 也将每个标签复制到每个指标数据点,因此您可以在不索引资源属性的后端中按它过滤指标。要关闭该复制,请参阅[指标基数控制](/docs/zh-CN/monitoring-usage#metrics-cardinality-control)。1308Claude Code 还会将每个标签复制到每个指标数据点上,因此您可以在不索引资源属性的后端中按标签筛选指标。要关闭此复制,请参阅[指标基数控制](/docs/zh-CN/monitoring-usage#metrics-cardinality-control)。

1308 1309 

1309#### 会话打开期间的组变更1310#### 会话打开期间的组变化

1310 1311 

1311终端会话将 `user.groups` 放在 OTLP 资源上,并再次放在每个指标数据点和事件上。如果开发者的组在会话打开期间发生变化,下一次[静默刷新](#session)之后的使用情况对应的数据点和事件会带有新的组。资源会保留旧的组,直到开发者重启 Claude Code,因此请按数据点或事件上的属性进行分组。1312终端会话将 `user.groups` 放在 OTLP 资源上,并再次放在每个指标数据点和事件上。如果开发者的组在会话打开期间发生变化,下一次[静默刷新](#session)之后的使用情况所对应的数据点和事件会带有新的组。资源会保留旧的组,直到开发者重启 Claude Code,因此请按数据点或事件上的属性进行分组。

1312 1313 

1313如果您在 OpenTelemetry Collector 的 Prometheus remote write 导出器中开启了 `resource_to_telemetry_conversion`,该导出器会用资源的 `user.groups` 替换每个数据点的 `user.groups`,因此每个数据点都显示旧的组。要保留数据点的值,请在该导出器之前从资源中删除 `user.groups`。1314如果您在 OpenTelemetry Collector 的 Prometheus remote write 导出器中启用了 `resource_to_telemetry_conversion`,该导出器会用资源的 `user.groups` 替换每个数据点的 `user.groups`,因此每个数据点都会显示旧的组。要保留数据点的值,请在该导出器之前从资源中删除 `user.groups`。

1314 1315 

1315此 OpenTelemetry Collector `resource` 处理器会在列出它的管道中删除该属性:1316此 OpenTelemetry Collector `resource` 处理器会在列出它的管道中删除该属性:

1316 1317 


1326 1327 

1327#### 直接导出到您的收集器1328#### 直接导出到您的收集器

1328 1329 

1329要让通过 `/login` 登录的会话直接将遥测发送到您的收集器而不是通过中继,在[托管策略](#managed)的 `env` 块中将 `OTEL_EXPORTER_OTLP_ENDPOINT` 设置为收集器的 `https://` 基础 URL。Claude Code 将 `/v1/metrics`、`/v1/logs` 或 `/v1/traces` 附加到您设置的 URL,例如 `https://otel-collector.example.com:4318`,并通过 OTLP/HTTP 在那里导出每个信号。需要每个开发者机器上的 Claude Code v2.1.265 或更高版本。早期客户端通过中继导出。1330要让通过 `/login` 登录的会话将遥测直接发送到您的收集器而不经过中继,请在[托管策略](#managed)的 `env` 块中将 `OTEL_EXPORTER_OTLP_ENDPOINT` 设置为收集器的 `https://` 基础 URL。Claude Code 会在您设置的 URL(例如 `https://otel-collector.example.com:4318`)后附加 `/v1/metrics`、`/v1/logs` 或 `/v1/traces`,并通过 OTLP/HTTP 将每个信号导出到那里。要求每位开发者机器上的 Claude Code 为 v2.1.265 或更高版本。更早的客户端通过中继导出。

1330 1331 

1331要向收集器进行身份验证,在同一 `env` 块中设置 `OTEL_EXPORTER_OTLP_HEADERS`。会话从不将开发者的网关会话令牌发送到以这种方式命名的收集器。1332要向收集器进行身份验证,请在同一 `env` 块中设置 `OTEL_EXPORTER_OTLP_HEADERS`。会话永远不会将开发者的网关会话令牌发送到以这种方式指定的收集器。

1332 1333 

1333当您在策略中添加或更改此端点时,Claude Code 在应用它于交互式会话之前要求每个开发者在[安全批准对话框](#managed)中批准它。1334当您在策略中添加或更改此端点时,Claude Code 会在交互式会话中应用它之前,要求每位开发者在[安全批准对话框](#managed)中批准它。

1334 1335 

1335Claude Code 在直接导出信号之前检查端点,并在检查失败时将该信号保留在中继上。检查包括:1336Claude Code 在直接导出信号之前会检查端点,检查失败时该信号会保留在中继上。检查包括:

1336 1337 

1337* 端点来自网关本身。如果您在 MDM 配置文件或本地 `managed-settings.json` 中设置相同变量,导出保留在中继上。1338* 端点来自网关本身。如果您在 MDM 配置文件或本地 `managed-settings.json` 中设置了同一变量,导出会保留在中继上。

1338* URL 使用 `https://`,或 `http://` 到环回地址1339* URL 使用 `https://`,或使用指向回环地址的 `http://`

1339* URL 解析为以 `/v1/<signal>` 结尾的路径,没有查询或片段。Claude Code 从通用变量本身构建该路径。它使用每个信号变量,例如 `OTEL_EXPORTER_OTLP_METRICS_ENDPOINT`,如写入的那样,因此在那里包括完整路径。1340* URL 解析为以 `/v1/<signal>` 结尾的路径,且不带查询或片段。Claude Code 会根据通用变量自行构建该路径。对于按信号的变量(例如 `OTEL_EXPORTER_OTLP_METRICS_ENDPOINT`),它会按原样使用,因此请在其中包含完整路径。

1340* URL 不是网关自己的主机。寻址到网关的端点保留中继路径和其会话令牌。1341* URL 不是网关自己的主机。指向网关的端点会保留中继路径及其会话令牌。

1341* 您和开发者都没有在任何设置来源中配置 [`otelHeadersHelper`](/docs/zh-CN/settings-reference#otelheadershelper)。配置了助手,每个信号保留在中继上。1342* 您和开发者都未在任何设置来源中配置 [`otelHeadersHelper`](/docs/zh-CN/settings-reference#otelheadershelper)。配置了该辅助程序时,每个信号都会保留在中继上。

1342 1343 

1343您命名的端点仅改变导出的去向。您仍然选择哪些信号导出,使用 `OTEL_*_EXPORTER` 选择器。1344您指定的端点只改变导出的去向。您仍然需要通过 `OTEL_*_EXPORTER` 选择器决定哪些信号要导出。

1344 1345 

1345端点本身不打开导出,因此也设置执行此操作的变量,除非网关已经推送它们:1346仅设置端点并不会启用导出,因此还需设置启用导出的变量,除非网关已经推送了它们:

1346 1347 

1347* 如果网关已经[推送遥测变量](#telemetry),它们覆盖启用、选择器和协议,您的显式端点覆盖推送的 `<public_url>` 值。仅为没有 `forward_to` 目的地启用的信号自己设置 `OTEL_*_EXPORTER` 选择器为 `otlp`。1348* 如果网关已经[推送了遥测变量](#telemetry),它们涵盖启用、选择器和协议,您显式设置的端点会覆盖推送的 `<public_url>` 值。仅对没有任何 `forward_to` 目标启用的信号,才需要您自行将 `OTEL_*_EXPORTER` 选择器设置为 `otlp`。

1348* 如果它没有,也设置 `CLAUDE_CODE_ENABLE_TELEMETRY=1`、`OTEL_*_EXPORTER` 选择器和 `OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf`。1349* 如果网关没有推送,还需设置 `CLAUDE_CODE_ENABLE_TELEMETRY=1`、`OTEL_*_EXPORTER` 选择器和 `OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf`。

1349 1350 

1350当开发者登出或登入不同的网关时,对收集器的导出停止,Claude Code 删除每个剩余批次而不是发送它。1351当开发者注销或登录到其他网关时,到收集器的导出会停止,Claude Code 会丢弃每个剩余批次而不是发送它们。

1351 1352 

1352#### 当目的地失败时1353#### 目标失败时

1353 1354 

1354网关不缓冲、重试或存储遥测,因此它删除未到达目的地的导出,而不是晚期交付它。每个目的地独立成功或失败,导出客户端无论如何都接收成功响应,因此失败的交付仅在网关的日志中出现。1355网关不会缓冲、重试或存储遥测,因此对于未能到达目标的导出,它会将其丢弃,而不是延迟交付。每个目标独立成功或失败,并且无论哪种情况,导出的客户端都会收到成功响应,因此交付失败只会出现在网关的日志中。

1355 1356 

1356在对目的地的五次连续失败交付后,网关在 30 秒的拉伸中暂停转发到它,记录每个暂停,直到交付成功。任何错误响应、超时或连接错误都计为失败的交付,除了 `400`、`413`、`415`、`422` 和 `431`,这意味着收集器拒绝了该导出的负载为格式错误或太大。1357向某个目标连续五次交付失败后,网关会以 30 秒为间隔暂停向其转发,并记录每次暂停,直到某次交付成功。任何错误响应、超时或连接错误都计为交付失败,但 `400`、`413`、`415`、`422` 和 `431` 除外,这些表示收集器因负载格式错误或过大而拒绝了该次导出。

1357 1358 

1358被拒绝的负载既不推进也不重置失败计数:网关继续转发到目的地并记录警告,命名它和状态,在目的地的第一次拒绝和之后每一百次。1359被拒绝的负载既不会增加也不会重置失败计数:网关会继续向该目标转发,并在该目标第一次拒绝时以及此后每第一百次拒绝时,记录一条指明该目标和状态的警告。

1359 1360 

1360### HTTP 调整1361### HTTP 调优

1361 1362 

1362四个可选的顶级块,`access_control`、`limits`、`timeouts` 和 `rate_limits`,调整 HTTP 表面。默认值适合大多数部署。1363四个可选的顶层块 `access_control`、`limits`、`timeouts` 和 `rate_limits` 用于调优 HTTP 层面的行为。默认值适用于大多数部署。

1363 1364 

1364| 块 | 键 | 默认 | 描述 |1365| 块 | 键 | 默认值 | 说明 |

1365| - | - | - | - |1366| - | - | - | - |

1366| `access_control` | `allow_cidrs` / `deny_cidrs` | 空 | 入站 IP 允许/拒绝,按客户端地址,在 `trusted_proxies` 解析后。`deny_cidrs` 首先检查;与它匹配的客户端被拒绝,即使 `allow_cidrs` 也匹配。如果 `allow_cidrs` 非空,网关是默认拒绝。`/healthz` 和 `/readyz` 免除 `allow_cidrs`。当受信任的代理发送不是 IP 地址的 `X-Forwarded-For` 条目时,真实客户端未知,网关记录一次警告,命名要检查的内容。其中任一列表适用于请求的地方,它以 `403` 和审计原因 `xff_unparseable` 拒绝它。其中都不适用的地方,它提供请求并使用代理自己的地址作为客户端 IP,用于每个 IP 速率限制和审计。 |1367| `access_control` | `allow_cidrs` / `deny_cidrs` | 空 | 在完成 `trusted_proxies` 解析后,按客户端地址对入站 IP 进行允许/拒绝。会先检查 `deny_cidrs`;与其匹配的客户端会被拒绝,即使 `allow_cidrs` 也匹配。如果 `allow_cidrs` 非空,网关默认拒绝。`/healthz` 和 `/readyz` 不受 `allow_cidrs` 约束。当受信任的代理发送的 `X-Forwarded-For` 条目不是 IP 地址时,真实客户端未知,网关会记录一次警告,指明需要检查的内容。如果任一列表适用于该请求,网关将以 `403` 拒绝该请求,审计原因为 `xff_unparseable`。如果两个列表都不适用,网关会处理该请求,并使用代理自身的地址作为客户端 IP,用于按 IP 的速率限制和审计。 |

1367| `limits` | `max_request_bytes` | 32 MiB | 最大入站请求体;超大请求在缓冲体之前获得 `413`。为大文件或图像请求提高。 |1368| `limits` | `max_request_bytes` | 32 MiB | 入站请求体的最大大小;超出大小的请求会在缓冲请求体之前收到 `413`。对于大型文件或图片请求,请调高此值。 |

1368| `limits` | `max_request_header_bytes` | 未设置 | 降低网关对请求标头总大小的 256 KiB 限制。超过限制的请求返回 `431`,大于 256 KiB 的值不起作用。如果开发者在登录后收到 `431`,请参阅[登录后请求标头过大](/docs/zh-CN/claude-apps-gateway-deploy#request-headers-too-large-after-sign-in)。 |1369| `limits` | `max_request_header_bytes` | 未设置 | 降低网关对请求头总大小的 256 KiB 限制。超出限制的请求返回 `431`,大于 256 KiB 的值不起作用。如果开发者在登录后收到 `431`,请参阅[登录后请求头过大](/docs/zh-CN/claude-apps-gateway-deploy#request-headers-too-large-after-sign-in)。 |

1369| `limits` | `max_url_length` | 未设置 | 设置时,过长 URL 返回 `414` |1370| `limits` | `max_url_length` | 未设置 | 设置后,过长的 URL 返回 `414` |

1370| `timeouts` | `upstream_ttfb_ms` | 120000 | 等待上游响应标头的最大时间(首字节时间)。响应体然后流,没有墙钟上限。适用于直接 Anthropic 上游路径;在每个其他提供商上,网关等待最多一小时以响应开始。 |1371| `timeouts` | `upstream_ttfb_ms` | 120000 | 等待上游响应头的最长时间(首字节时间)。之后响应体以流式传输,不设总时长上限。适用于直连 Anthropic 的上游路径;对于其他所有提供商,网关最多等待一小时让响应开始。 |

1371| `rate_limits` | `device_authorization.max` / `.window_seconds` | 30 / 600 | 未认证设备授权端点上的每个 IP 速率限制。为共享出口 IP 或 NAT 后面的大型组织提高。[大型推出](/docs/zh-CN/claude-apps-gateway-deploy#large-rollouts)显示如何调整大小。这些限制仅适用于设备授予登录流,不适用于 `/v1/messages` 推理。请参阅[用户代码暴力破解抵抗](/docs/zh-CN/claude-apps-gateway-deploy#user-code-brute-force-resistance)。 |1372| `rate_limits` | `device_authorization.max` / `.window_seconds` | 30 / 600 | 对未经身份验证的设备授权端点按 IP 施加的速率限制。对于位于共享出口 IP 或 NAT 之后的大型组织,请调高此值。[大规模推广](/docs/zh-CN/claude-apps-gateway-deploy#large-rollouts)说明了如何确定其大小。这些限制仅适用于设备授权登录流程,不适用于 `/v1/messages` 推理。请参阅[用户码暴力破解防护](/docs/zh-CN/claude-apps-gateway-deploy#user-code-brute-force-resistance)。 |

1372| `rate_limits` | `device_verify.max` / `.window_seconds` | 10 / 600 | `/device` 上 `user_code` 提交的每个 IP 速率限制。这是阻止某人猜测另一个开发者代码的原因。[大型推出](/docs/zh-CN/claude-apps-gateway-deploy#large-rollouts)显示提高多远。 |1373| `rate_limits` | `device_verify.max` / `.window_seconds` | 10 / 600 | 对 `/device` 处 `user_code` 提交按 IP 施加的速率限制。它用于阻止他人猜测其他开发者的码。[大规模推广](/docs/zh-CN/claude-apps-gateway-deploy#large-rollouts)说明了可以将其调高到什么程度。 |

1373 1374 

1374如果您将两个 `access_control` 列表都留空,这是默认值,网关为任何客户端地址提供服务,因此仅您的网络限制谁可以到达它。这很重要,因为网关可以推送[托管设置](#managed),在开发者机器上运行命令。1375如果两个 `access_control` 列表都留空(即默认情况),网关会为任何客户端地址提供服务,因此只有您的网络能限制谁可以访问它。这一点很重要,因为网关可以推送在开发者机器上运行命令的[托管设置](#managed)。

1375 1376 

1376当 `allow_cidrs` 为空时,网关在两个地方警告,不改变它如何回答任何请求:1377当 `allow_cidrs` 为空时,网关会在两个地方发出警告,但不会改变其响应任何请求的方式:

1377 1378 

1378* **启动时**:操作日志中的警告建议仅允许私有范围 `10.0.0.0/8`、`172.16.0.0/12`、`192.168.0.0/16`、`100.64.0.0/10`、`127.0.0.0/8`、`::1/128` 和 `fc00::/7`,加上开发者连接的任何其他内部范围。如果您将网关绑定到环回地址,并且不设置 `trusted_proxies` 或 `public_url`,如在本地开发中,警告不出现。1379* **启动时**:运行日志中的一条警告建议仅允许私有地址段 `10.0.0.0/8`、`172.16.0.0/12`、`192.168.0.0/16`、`100.64.0.0/10`、`127.0.0.0/8`、`::1/128` 和 `fc00::/7`,以及开发者连接所用的其他内部地址段。如果将网关绑定到环回地址,并且既未设置 `trusted_proxies` 也未设置 `public_url`(如本地开发时),则不会出现该警告。

1379* **运行时**:第一次请求从地址外的地址到达这些私有范围时,网关记录警告并发出 [`access.public_client` 审计事件](/docs/zh-CN/claude-apps-gateway-deploy#logs),携带客户端 IP。两者每个进程触发一次。链路本地地址、`169.254.0.0/16` 和 `fe80::/10` 不计为公共。网关在此检查运行之前回答 `/healthz` 和 `/readyz`,因此来自公共范围的健康探针不触发它。1380* **运行时**:当首次有请求来自这些私有地址段之外的地址时,网关会记录一条警告,并发出一个携带客户端 IP 的 [`access.public_client` 审计事件](/docs/zh-CN/claude-apps-gateway-deploy#logs)。两者在每个进程中各触发一次。链路本地地址 `169.254.0.0/16` 和 `fe80::/10` 不算作公网地址。网关会在此检查运行之前响应 `/healthz` 和 `/readyz`,因此来自公网地址段的健康探测不会触发它。

1380 1381 

1381两个信号都使用网关解析的客户端地址。如果负载均衡器、端口转发或隧道中继流量,并且未在 `listen.trusted_proxies` 中列出,网关看到中继的地址,通常是私有的,因此既不是运行时警告也不是私有允许列表捕获通过它中继的流量。1382这两种信号都使用网关解析得到的客户端地址。如果负载均衡器、端口转发或隧道中继了流量,但未列在 `listen.trusted_proxies` 中,网关看到的将是中继的地址(通常是私有地址),因此运行时警告和私有允许列表都无法捕获经由它中继的流量。

1382 1383 

1383在这样的前端后面,首先设置 [`listen.trusted_proxies`](#listen),以便网关看到真实客户端地址,并无论如何保持网关和它前面的所有东西从公共互联网无法访问。1384在此类前端之后,请先设置 [`listen.trusted_proxies`](#listen),使网关能看到真实的客户端地址,并且无论如何都要确保网关及其前面的所有组件无法从公网访问。

1384 1385 

1385### `load_test_mode`1386### `load_test_mode`

1386 1387 

1387`load_test_mode` 块让您负载测试网关而不调用模型提供商。启用时,网关像往常一样构建和签署每个提供商请求,丢弃它而不是发送它,并通过其正常响应路径流回罐装回复。回复是填充文本,以说它是罐装的句子开头。1388`load_test_mode` 块可让您在不调用模型提供商的情况下对网关进行负载测试。启用后,网关会照常构建并签名每个提供商请求,但将其丢弃而不发送,并通过其正常的响应路径以流式方式返回一条预设回复。该回复是填充文本,开头有一句话说明它是预设的。

1388 1389 

1389需要网关服务器上的 Claude Code v2.1.282 或更高版本。早期网关在找到键时拒绝启动。在添加块之前升级每个副本,并在回滚之前删除块。1390要求网关服务器上运行 Claude Code v2.1.282 或更高版本。更早版本的网关在发现该键时会拒绝启动。请在添加该块之前升级每个副本,并在回滚之前移除该块。

1390 1391 

1391下面的示例以默认值打开模式,大约 750 个 token 的文本的回复,在大约 10 秒内流:1392以下示例使用默认值启用该模式,即约 750 个 token 的文本回复,在约 10 秒内以流式传输:

1392 1393 

1393```yaml theme={null}1394```yaml theme={null}

1394load_test_mode:1395load_test_mode:


1397 reply_seconds: 9.5 # how long a streamed reply takes1398 reply_seconds: 9.5 # how long a streamed reply takes

1398```1399```

1399 1400 

1400| 字段 | 必需 | 描述 |1401| 字段 | 必需 | 说明 |

1401| - | - | - |1402| - | - | - |

1402| `enabled` | 是 | `true` 打开模式。`false` 在模式关闭的情况下将您的数字保留在文件中。如果块存在而没有它,网关拒绝启动。 |1403| `enabled` | 是 | `true` 启用该模式。`false` 会在关闭该模式的同时将您的数值保留在文件中。如果存在该块但缺少此字段,网关会拒绝启动。 |

1403| `reply_tokens` | 否 | 默认 `750`。大约每个罐装回复携带多少 token 的文本,从 1 到 100000 的整数。 |1404| `reply_tokens` | 否 | 默认 `750`。每条预设回复大约包含多少个 token 的文本,取值为 1 到 100000 之间的整数。 |

1404| `reply_seconds` | 否 | 默认 `9.5`。流回复需要多长时间,从 0 到 600。`0` 一次发送整个回复。对非流请求的回复总是一次回来。 |1405| `reply_seconds` | 否 | 默认 `9.5`。一条流式回复所需的时间,取值为 0 到 600。`0` 会一次性发送整条回复。对非流式请求的回复始终一次性返回。 |

1405 1406 

1406此模式中的负载测试涵盖网关、您的 Postgres 和网关前面的所有东西。它不涵盖提供商的限制、速度或网络路径。1407此模式下的负载测试涵盖网关、您的 Postgres 以及网关前面的所有组件。它不涵盖提供商的限制、速度或网络路径。

1407 1408 

1408没有模型请求发送到提供商,因此副本的每个请求的 CPU 是估计值,读取低于生产,这也加密其到提供商的流量。使用小试点确认副本计数对真实提供商。在 v2.1.283 之前,估计读取低得多。1409由于不会向提供商发送模型请求,副本每个请求的 CPU 用量只是估算值,且读数低于生产环境,因为生产环境还需要加密发往提供商的流量。请针对真实提供商进行小规模试点,以确认副本数量。在 v2.1.283 之前,该估算值读数会低得多。

1409 1410 

1410启用模式时,请求可以携带 `x-load-test-user` 标头,保留最多七位数的整数。网关将每个数字计为单独的开发者,具有其令牌随请求而来的开发者的电子邮件和组。1411启用该模式时,请求可以携带一个 `x-load-test-user` 请求头,其值为最多七位数的整数。网关会将每个数字计为一名独立的开发者,并使用随请求附带的令牌所属开发者的电子邮件和组。

1411 1412 

1412为负载测试部署提供其自己的空数据库,因为网关拒绝以任何开发者已经花费任何东西的数据库启动模式。1413请为负载测试部署提供单独的空数据库,因为如果数据库中已有任何开发者产生过花费,网关在启用该模式时会拒绝启动。

1413 1414 

1414> [!WARNING]1415> [!WARNING]

1415>1416>

1416> 永远不要为开发者使用的网关打开此功能。每个请求获得罐装回复,没有模型被调用。网关在启动时记录 `load_test_mode is on` 警告,并在模式启用时使用 `load_test: true` 标记每个 `inference` [审计事件](/docs/zh-CN/claude-apps-gateway-deploy#logs)。1417> 切勿在开发者使用的网关上启用此模式。每个请求都会收到预设回复,不会调用任何模型。启用该模式时,网关会在启动时记录一条 `load_test_mode is on` 警告,并在每个 `inference` [审计事件](/docs/zh-CN/claude-apps-gateway-deploy#logs)上标记 `load_test: true`。

1417 1418 

1418## 完整示例1419## 完整示例

1419 1420 

Details

8 8 

9> [!NOTE]9> [!NOTE]

10>10>

11> 云会话在 Pro、Max 和 Team 计划上可用,以及拥有高级席位或 Chat + Claude Code 席位的 Enterprise 用户。11> 云端会话在 Pro、Max 和 Team 计划上可用,以及拥有高级席位或 Chat + Claude Code 席位的 Enterprise 用户。如果您的 Enterprise 组织通过[自定义角色](https://support.claude.com/en/articles/13930452)管理您的访问权限,您还需要一个包含云端会话权限的角色。如果缺少该权限,请让 Owner 检查您的角色,并在 [**Organization settings > Roles**](https://claude.ai/admin-settings/roles) 中添加。

12 12 

13云端会话是在云基础设施上运行的 Claude Code 会话,而不是在您的机器上运行。默认情况下,它在 Anthropic 管理的基础设施上运行,或在路由到您的组织的[自托管环境](/docs/zh-CN/self-hosted-environments)时在那里运行。即使关闭笔记本电脑后,会话也会继续运行,您可以从任何设备检查或控制它。它会与您的其他 Claude 和 Claude Code 使用量一起计入您计划的用量限制,云端 VM 不会单独收费。13云端会话是在云基础设施上运行的 Claude Code 会话,而不是在您的机器上运行。默认情况下,它在 Anthropic 管理的基础设施上运行,或在路由到您的组织的[自托管环境](/docs/zh-CN/self-hosted-environments)时在那里运行。即使关闭笔记本电脑后,会话也会继续运行,您可以从任何设备检查或控制它。它会与您的其他 Claude 和 Claude Code 使用量一起计入您计划的用量限制,云端 VM 不会单独收费。

14 14 


264 264 

265* **`/model`、`/effort`、`/color` 和 `/rename`**:将值作为参数传递,例如 `/model sonnet`,而不是打开终端选择器或滑块。参数形式遵循每个命令的[可用性说明](/docs/zh-CN/commands#all-commands)。265* **`/model`、`/effort`、`/color` 和 `/rename`**:将值作为参数传递,例如 `/model sonnet`,而不是打开终端选择器或滑块。参数形式遵循每个命令的[可用性说明](/docs/zh-CN/commands#all-commands)。

266* **`/fast`**:当快速模式在[你的账户上可用](/docs/zh-CN/fast-mode#requirements)时,为会话切换[快速模式](/docs/zh-CN/fast-mode#use-fast-mode-in-cloud-sessions)。需要会话环境中的 Claude Code v2.1.271 或更高版本。266* **`/fast`**:当快速模式在[你的账户上可用](/docs/zh-CN/fast-mode#requirements)时,为会话切换[快速模式](/docs/zh-CN/fast-mode#use-fast-mode-in-cloud-sessions)。需要会话环境中的 Claude Code v2.1.271 或更高版本。

267* **`/config`**:在你的浏览器中的 claude.ai/code 上,打开你的设置的 Claude Code 部分,而不是设置值,命令后的文本(包括 `key=value`)被忽略。要更改云会话的设置,请在环境上设置[环境变量](/docs/zh-CN/cloud-environments#set-environment-variables),或在具有一个存储库的会话中,将该设置键提交到该存储库的 `.claude/settings.json`。[云会话中的设置](/docs/zh-CN/settings#settings-in-cloud-sessions)列出了每个会话读取的内容。267* **`/config`**:在浏览器中的 claude.ai/code 上,打开您设置中的 Claude Code 部分,而不是设置值,命令后的文本(包括 `key=value`)会被忽略。要更改云端会话的设置,请在环境上设置[环境变量](/docs/zh-CN/cloud-environments#set-environment-variables)。在[项目](/docs/zh-CN/claude-projects)之外、只有一个仓库的会话中,则改为将该设置项提交到该仓库的 `.claude/settings.json`。[云端会话中的设置](/docs/zh-CN/settings#settings-in-cloud-sessions)列出了每个会话读取的内容。

268 268 

269对于上下文管理特别是:269对于上下文管理特别是:

270 270 


278 278 

279要改为更改自动压缩窗口,请在你的环境变量中设置 [`CLAUDE_CODE_AUTO_COMPACT_WINDOW`](/docs/zh-CN/env-vars),或在变量未设置的会话中运行带有令牌计数的 [`/autocompact`](/docs/zh-CN/commands#all-commands)。279要改为更改自动压缩窗口,请在你的环境变量中设置 [`CLAUDE_CODE_AUTO_COMPACT_WINDOW`](/docs/zh-CN/env-vars),或在变量未设置的会话中运行带有令牌计数的 [`/autocompact`](/docs/zh-CN/commands#all-commands)。

280 280 

281[Subagents](/docs/zh-CN/sub-agents) 的工作方式与本地相同。Claude 可以使用 Agent 工具生成它们,以将研究或并行工作卸载到单独的上下文窗口中,保持主对话更轻。在你的存储库的 `.claude/agents/` 中定义的 Subagents 会自动被拾取。281[子代理](/docs/zh-CN/sub-agents)的工作方式与本地相同。Claude 可以使用 Agent 工具生成子代理,将研究或并行工作分流到单独的上下文窗口中,使主对话更轻量。在[项目](/docs/zh-CN/claude-projects#what-threads-pick-up-from-your-repositories)的线程之外,仓库 `.claude/agents/` 中定义的子代理会自动加载。

282 282 

283[Agent teams](/docs/zh-CN/agent-teams) 默认关闭,但可以通过将 `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` 添加到你的[环境变量](/docs/zh-CN/cloud-environments#set-environment-variables)来启用。283[Agent teams](/docs/zh-CN/agent-teams) 默认关闭,但可以通过将 `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` 添加到你的[环境变量](/docs/zh-CN/cloud-environments#set-environment-variables)来启用。

284 284 


428从 [claude.ai/code](https://claude.ai/code) 重新打开会话以预配新的 VM:428从 [claude.ai/code](https://claude.ai/code) 重新打开会话以预配新的 VM:

429 429 

430* **会恢复**:您的对话历史430* **会恢复**:您的对话历史

431* **不会恢复**:VM 被回收时仍在运行的后台工作,例如子代理和 shell 命令,以及[自定节奏的 `/loop`](/docs/zh-CN/scheduled-tasks#let-claude-choose-the-interval) 中待执行的唤醒。要重新启动该循环,请再次运行 `/loop`。431* **不会恢复**:VM 被回收时仍在运行或待处理的后台工作,包括:

432 * **Shell 命令**:Claude Code 会告知 Claude 哪些命令已停止。请让 Claude 重新运行您仍需要的命令。

433 * **子代理**:Claude Code 会告知 Claude 哪些子代理已停止,以及其中哪些可以[恢复](/docs/zh-CN/sub-agents#resume-subagents)而无需从头开始。请让 Claude 继续它们的工作。

434 * **会话范围的定时任务**:您[在会话中安排的任务](/docs/zh-CN/scheduled-tasks)以及正在等待下一次迭代的 `/loop` 不会延续到重新打开的会话中。请让 Claude 重新安排这些任务,或再次运行 `/loop` 以重新启动循环。

432 435 

433## 限制436## 限制

434 437 

Details

175 175 

176| `~/.claude/` 下的路径 | 内容 |176| `~/.claude/` 下的路径 | 内容 |

177| - | - |177| - | - |

178| `history.jsonl` | 您输入的每个提示词,带有时间戳和项目路径。用于向上箭头回忆、`Ctrl+R` 历史搜索和 `!` shell 命令补全。当 [HIPAA 配置适用于您的会话](/docs/zh-CN/hipaa-setup#check-how-developers-sign-in-and-connect)时,每次扫描都会删除早于 `cleanupPeriodDays` 的条目。 |178| `history.jsonl` | 您输入过的提示词,附带时间戳和项目路径。用于上箭头调取历史、`Ctrl+R` 历史搜索以及 `!` shell 命令补全。当 [HIPAA 配置适用于您的会话](/docs/zh-CN/hipaa-setup#check-how-developers-sign-in-and-connect)时,每次清理都会删除早于 `cleanupPeriodDays` 的条目。 |

179| `stats-cache.json` | 由 `/usage` 显示的聚合令牌和成本计数 |179| `stats-cache.json` | 由 `/usage` 显示的聚合令牌和成本计数 |

180| `remote-settings.json` | [server-managed settings](/docs/zh-CN/server-managed-settings) 的缓存副本,用于您的组织,或当您的组织未配置任何设置时为 `{}`。仅在会话 [获取它们](/docs/zh-CN/server-managed-settings#platform-availability) 时存在。Claude Code 在启动时和会话期间每小时检查更新。Claude Code 在您注销时删除它。 |180| `remote-settings.json` | [server-managed settings](/docs/zh-CN/server-managed-settings) 的缓存副本,用于您的组织,或当您的组织未配置任何设置时为 `{}`。仅在会话 [获取它们](/docs/zh-CN/server-managed-settings#platform-availability) 时存在。Claude Code 在启动时和会话期间每小时检查更新。Claude Code 在您注销时删除它。 |

181| `cache/changelog.md` | Claude Code changelog 的缓存副本,由 `/release-notes` 显示。在后台刷新。 |181| `cache/changelog.md` | Claude Code changelog 的缓存副本,由 `/release-notes` 显示。在后台刷新。 |

claude-projects.md +18 −22

Details

52* **线程**:工作者。每个都是一个单独的会话,有自己的上下文窗口,完成一项工作并在完成时报告回对话。云线程在自己的分支上工作,当工作需要时打开拉取请求。52* **线程**:工作者。每个都是一个单独的会话,有自己的上下文窗口,完成一项工作并在完成时报告回对话。云线程在自己的分支上工作,当工作需要时打开拉取请求。

53* **每个云线程开始时的内容**:53* **每个云线程开始时的内容**:

54 * 项目的仓库和文件,加上其[说明和记忆](#give-a-project-standing-context)54 * 项目的仓库和文件,加上其[说明和记忆](#give-a-project-standing-context)

55 * `CLAUDE.md` 和[项目每个仓库](#what-threads-pick-up-from-your-repositories)中的 skill,以及在只有一个仓库的项目中,该仓库的权限规则和 hook55 * [项目每个仓库](#what-threads-pick-up-from-your-repositories)中的 `CLAUDE.md`,但不包括这些仓库的 skill、`.claude/settings.json` 或 `.mcp.json`

56 * 您 claude.ai 账户上的[连接器](#get-skills-plugins-connectors-and-tools-into-threads)56 * 您 claude.ai 账户上的[连接器](#get-skills-plugins-connectors-and-tools-into-threads)

57 * 一个[云环境](#choose-an-environment-for-threads),设置其网络访问、环境变量、网络密钥和已安装的工具57 * 一个[云环境](#choose-an-environment-for-threads),设置其网络访问、环境变量、网络密钥和已安装的工具

58* **Overview 窗格**:您在其中[一次看到所有线程](#see-what-needs-you-in-overview)以及哪些需要您。其他标签页是 **Library**(用于您添加的文件和线程生成的文件)、**Pull requests**(用于线程打开的拉取请求)和 **Scheduled tasks**(用于项目中的定时工作)。58* **Overview 窗格**:您在其中[一次看到所有线程](#see-what-needs-you-in-overview)以及哪些需要您。其他标签页是 **Library**(用于您添加的文件和线程生成的文件)、**Pull requests**(用于线程打开的拉取请求)和 **Scheduled tasks**(用于项目中的定时工作)。


239 239 

240当线程的模型支持时,线程在[自动模式](/docs/zh-CN/permission-modes#eliminate-prompts-with-auto-mode)中运行,因此大多数工具调用无需询问你即可运行。当线程需要你的批准时,提示在该线程内,线程等待你在那里回答。在项目对话中告诉 Claude 继续不会到达它。240当线程的模型支持时,线程在[自动模式](/docs/zh-CN/permission-modes#eliminate-prompts-with-auto-mode)中运行,因此大多数工具调用无需询问你即可运行。当线程需要你的批准时,提示在该线程内,线程等待你在那里回答。在项目对话中告诉 Claude 继续不会到达它。

241 241 

242每次批准仅涵盖该提示,或者如果您选择更广泛的选项,则涵盖该线程的其余部分。242每次批准仅涵盖该提示,或者如果您选择更广泛的选项,则涵盖该线程的其余部分。云端线程不会读取仓库 `.claude/settings.json` 中的[权限规则](/docs/zh-CN/permissions),因此您需要依赖自动模式以及您在每个线程内给出的批准。

243 

244要让每个线程无需询问即可运行某些命令,或阻止某些命令,请将[权限规则](/docs/zh-CN/permissions)添加到仓库的 `.claude/settings.json` 中。请确认项目中的云线程是否会应用这些规则:

245 

246* **一个仓库**:云线程会应用这些规则。请参阅[线程从您的仓库中获取哪些内容](#what-threads-pick-up-from-your-repositories)。

247* **多个仓库,Anthropic 托管的环境**:任何仓库的权限规则都不会传达到云线程,因此您需要依赖自动模式以及您在每个线程内给出的批准。

248* **多个仓库,自托管环境**:请参阅[哪个仓库的设置适用](/docs/zh-CN/self-hosted-environments-configuration#repository-settings-in-sessions-with-several-repositories)。

249 243 

250### 在你自己的计算机上运行线程244### 在你自己的计算机上运行线程

251 245 


313 307 

314### 决定要添加哪些仓库308### 决定要添加哪些仓库

315 309 

316您添加到项目的仓库会连同其中的所有内容(代码、`CLAUDE.md` 和 skill)出现在每个云线程中。您未添加的仓库仍在可及范围内:当任务需要时,云线程可以将其添加到自身。大多数项目两者兼用:310您添加到项目的仓库会连同其代码和 `CLAUDE.md` 出现在每个云线程中,但[不包括其 skill、`.claude/settings.json` 或 `.mcp.json`](#what-threads-pick-up-from-your-repositories)。您未添加的仓库仍在可及范围内:当任务需要时,云线程可以将其添加到自身。大多数项目两者兼用:

317 311 

318* **将其添加到项目**,可在 **New project** 对话框中、**Project settings > Environment** 中,或在对话中要求 Claude 将其添加到项目。从那时起,每个云线程都会克隆它,并在启动时加载其 `CLAUDE.md` 和 skill,无论任务是否涉及它。从一个仓库增加到多个仓库也会改变线程从每个仓库的 `.claude/settings.json` 中获取的内容;请参阅[线程从您的仓库中获取什么](#what-threads-pick-up-from-your-repositories)。312* **将其添加到项目**,可在 **New project** 对话框中、**Project settings > Environment** 中,或在对话中要求 Claude 将其添加到项目。从那时起,每个云线程都会克隆它,并在启动时加载其 `CLAUDE.md`,无论任务是否涉及它。

319* **不添加,让线程在需要时自行添加。** 如果云线程的任务需要项目中没有的仓库,它可以将其添加到自身,线程中会有一条说明,表明该仓库仅被添加到此线程。克隆发生在任务中途,因此线程启动时该仓库的 `CLAUDE.md` 和 skill 并不存在。下一个线程启动时不会有它。以这种方式添加的仓库需要与项目仓库相同的[前提条件](#check-the-prerequisites):在其上安装 Claude GitHub App,并且您的 GitHub 账户具有推送权限。313* **不添加,让线程在需要时自行添加。** 如果云线程的任务需要项目中没有的仓库,它可以将其添加到自身,线程中会有一条说明,表明该仓库仅被添加到此线程。克隆发生在任务中途,因此线程启动时该仓库的 `CLAUDE.md` 并不存在。下一个线程启动时不会有它。以这种方式添加的仓库需要与项目仓库相同的[前提条件](#check-the-prerequisites):在其上安装 Claude GitHub App,并且您的 GitHub 账户具有推送权限。

320 314 

321项目完全可以不包含仓库。其云线程仍然可以进行研究、编写文档,以及在自己的沙箱中编写和运行代码,并将文件交付到 **Library** 标签页。当任务需要时,它的任何云线程仍然可以将仓库添加到自身。315项目完全可以不包含仓库。其云线程仍然可以进行研究、编写文档,以及在自己的沙箱中编写和运行代码,并将文件交付到 **Library** 标签页。当任务需要时,它的任何云线程仍然可以将仓库添加到自身。

322 316 


335 329 

336### 线程从您的仓库中获取什么330### 线程从您的仓库中获取什么

337 331 

338每个云线程会克隆项目中的每个仓库,并从所有仓库加载 `CLAUDE.md` 和 skill。权限规则、hook 和 `env` 仅来自线程启动目录中的 `.claude/settings.json`。332无论项目有一个仓库还是多个仓库,云线程都会加载每个仓库的 `CLAUDE.md` 说明,但不会加载其 skill、`.mcp.json` 服务器或 `.claude/settings.json`。

339 333 

340| 在每个仓库中 | 一个仓库 | 多个仓库 |334| 在每个仓库中 | 在云线程中 |

341| :- | :- | :- |335| :- | :- |

342| `CLAUDE.md` | 在线程启动时加载 | 在线程启动时从每个仓库加载 |336| 仓库根目录下的 `CLAUDE.md`、`.claude/CLAUDE.md` 和 `.claude/rules/` | 在线程启动时从每个仓库加载。子目录中的 `CLAUDE.md` 文件和[特定路径规则](/docs/zh-CN/memory#path-specific-rules)不会加载 |

343| `.claude/` 下的 skill、Agent 和命令 | 加载 | 从每个仓库加载 |337| `.claude/skills/` 下的 skill | 不加载。请改为为您的 claude.ai 账户启用该 skill,如[将 skill、插件、连接器和工具引入线程](#get-skills-plugins-connectors-and-tools-into-threads)所述 |

344| 在 `.claude/settings.json` 中启用的插件 | 不加载。请改为在 **Project settings > Plugins** 中添加该插件 | 不加载。请改为在 **Project settings > Plugins** 中添加该插件 |338| `.claude/` 下的 Agent 和命令 | 不加载。要使用它们,请[在您自己的计算机上运行线程](#run-a-thread-on-your-own-computer) |

345| 在 `.claude/settings.json` 中定义的权限规则、hook 和 `env` | 适用于线程,但[任何云端会话都不遵循](/docs/zh-CN/cloud-environments#what-carries-over-from-your-setup)的 `env` 键除外 | 在 Anthropic 托管环境中不适用。对于自托管环境,请参阅[哪个仓库的设置适用](/docs/zh-CN/self-hosted-environments-configuration#repository-settings-in-sessions-with-several-repositories) |339| `.mcp.json` 中的 MCP 服务器 | 不加载。请改为使用您 claude.ai 账户上的连接器,如[将 skill、插件、连接器和工具引入线程](#get-skills-plugins-connectors-and-tools-into-threads)所述 |

346 340| 在 `.claude/settings.json` 中启用的插件 | 不加载。请改为在 **Project settings > Plugins** 中添加该插件 |

347在有多个仓库的项目中,请将常规规则放在项目说明中,并通过[云环境](#choose-an-environment-for-threads)为线程提供环境变量。341| `.claude/settings.json` 中的权限规则 | 不适用。请在线程内批准工具调用,如[解除等待批准的线程的阻塞](#unblock-a-thread-waiting-on-approval)所述,或[在您自己的计算机上运行线程](#run-a-thread-on-your-own-computer) |

342| `.claude/settings.json` 中的 hook | 不运行。要使用您的 hook,请[在您自己的计算机上运行线程](#run-a-thread-on-your-own-computer) |

343| `.claude/settings.json` 中的 `env` | 不适用。请在[云环境](#choose-an-environment-for-threads)中设置环境变量 |

348 344 

349### 为线程选择环境345### 为线程选择环境

350 346 


356 352 

357云线程不具备仅安装在您机器上的 skill、MCP 服务器、插件和工具。Claude 通过 [Remote Control](/docs/zh-CN/remote-control) 在您机器上运行的线程会使用那里安装的内容。要让这些内容对云线程可用:353云线程不具备仅安装在您机器上的 skill、MCP 服务器、插件和工具。Claude 通过 [Remote Control](/docs/zh-CN/remote-control) 在您机器上运行的线程会使用那里安装的内容。要让这些内容对云线程可用:

358 354 

359* skill、子代理和命令:将它们提交到您已添加到项目的仓库,例如位于 `.claude/skills/<skill-name>/SKILL.md` 的 skill。每个云线程会克隆项目中的每个仓库,并从每个仓库加载 `.claude/skills/`、`.claude/agents/` 和 `.claude/commands/`,因此提交到一个仓库的 skill 在每个云线程中都可用。云线程还会加载[您为 claude.ai 账户启用的 skill](/docs/zh-CN/skills#skills-in-cowork-and-cloud-sessions)。355* skill:为您的 claude.ai 账户启用它们,云线程会加载[您在那里启用的 skill](/docs/zh-CN/skills#skills-in-cowork-and-cloud-sessions),但[自托管环境中的某些线程](/docs/zh-CN/self-hosted-environments-configuration#how-each-session’s-config-is-assembled)除外。提交到仓库 `.claude/skills/` 中的 skill 不会在云线程中加载。

360* 插件:在 **Project settings > Plugins** 中添加它们;它们会加载到每个新云线程中。仓库在其 `.claude/settings.json` 中声明的插件[不会在云线程中加载](/docs/zh-CN/cloud-environments#what-carries-over-from-your-setup)。356* 插件:在 **Project settings > Plugins** 中添加它们;它们会加载到每个新云线程中。仓库在其 `.claude/settings.json` 中声明的插件[不会在云线程中加载](/docs/zh-CN/cloud-environments#what-carries-over-from-your-setup)。

361* MCP 服务器:云线程从您 claude.ai 账户上的连接器获取 MCP 工具,这些连接器是您在 [claude.ai/customize/connectors](https://claude.ai/customize/connectors) 一次性连接的 MCP 服务器。每个云线程都可以使用所有这些连接器,无需按项目设置。项目对话本身没有连接器,因此请将需要连接器的工作作为任务发送给云线程。在只有一个仓库的项目中,云线程还会从该仓库的 [`.mcp.json`](/docs/zh-CN/cloud-environments#what-carries-over-from-your-setup) 加载 MCP 服务器。[连接器如何到达 Claude Code](/docs/zh-CN/mcp#how-connectors-reach-claude-code) 列出了云端会话的规则以及关闭连接器的设置。357* MCP 服务器:云线程从您 claude.ai 账户上的连接器获取 MCP 工具,这些连接器是您在 [claude.ai/customize/connectors](https://claude.ai/customize/connectors) 一次性连接的 MCP 服务器。每个云线程都可以使用所有这些连接器,无需按项目设置。项目对话本身没有连接器,因此请将需要连接器的工作作为任务发送给云线程。[连接器如何到达 Claude Code](/docs/zh-CN/mcp#how-connectors-reach-claude-code) 列出了云端会话的规则以及关闭连接器的设置。

362* 命令行工具和包:在环境的[设置脚本](/docs/zh-CN/cloud-environments#setup-scripts)中安装它们。358* 命令行工具和包:在环境的[设置脚本](/docs/zh-CN/cloud-environments#setup-scripts)中安装它们。

363 359 

364要在 claude.ai/code 查看正在运行的云线程拥有哪些连接器,请打开该线程,并从其消息框旁的 **+** 菜单中选择 **Connectors**。在那里关闭某个连接器会将其从该线程中移除,并将此保存为您的账户默认值,因此在您重新打开它之前,新线程和 claude.ai 聊天启动时都不会带有它。在您向云线程发送下一条消息后,它才会获取您新添加或重新连接的连接器。360要在 claude.ai/code 查看正在运行的云线程拥有哪些连接器,请打开该线程,并从其消息框旁的 **+** 菜单中选择 **Connectors**。在那里关闭某个连接器会将其从该线程中移除,并将此保存为您的账户默认值,因此在您重新打开它之前,新线程和 claude.ai 聊天启动时都不会带有它。在您向云线程发送下一条消息后,它才会获取您新添加或重新连接的连接器。

Details

8 8 

9Claude Security plugin 在 Claude Code 会话中对您的代码库运行多代理漏洞扫描。一个 Claude 代理团队映射您的架构、构建威胁模型、搜寻漏洞,并在编写报告前独立审查每个发现。使用该插件扫描整个存储库或[仅扫描一组更改](#scan-only-your-changes),例如分支的差异、拉取请求的差异或单个提交,然后将您选择的发现转化为您自己审查和应用的补丁。9Claude Security plugin 在 Claude Code 会话中对您的代码库运行多代理漏洞扫描。一个 Claude 代理团队映射您的架构、构建威胁模型、搜寻漏洞,并在编写报告前独立审查每个发现。使用该插件扫描整个存储库或[仅扫描一组更改](#scan-only-your-changes),例如分支的差异、拉取请求的差异或单个提交,然后将您选择的发现转化为您自己审查和应用的补丁。

10 10 

11该插件在您的会话中本地运行,使用[您在 Claude Code 中可以访问的任何模型](#models-and-providers),每次扫描都计入您的[使用量](/docs/zh-CN/costs)。如果您想要一个监控您的存储库的托管服务,或想要在 [Claude Mythos](https://platform.claude.com/docs/en/about-claude/models/introducing-claude-fable-5-and-claude-mythos-5) 上运行扫描,请参阅 [Claude Security](https://claude.com/product/claude-security) 产品,该产品在企业计划中提供。该插件可以访问托管产品无法访问的代码,例如托管在 GitLab 或 Bitbucket 上的存储库,或在不允许入站连接的网络上的存储库。11该插件在您的会话中本地运行,使用[您在 Claude Code 中可以访问的任何模型](#models-and-providers),每次扫描都计入您的[使用量](/docs/zh-CN/costs)。如果您想要一个监控您的仓库的托管服务,或想要在 [Claude Mythos](https://platform.claude.com/docs/en/about-claude/models/introducing-claude-fable-5-and-claude-mythos-5) 上运行扫描,请参阅 [Claude Security](https://claude.com/product/claude-security) 产品,该产品在企业计划中提供。

12 12 

13该插件也不同于 Claude Code 中已有的审查工具:[security guidance plugin](/docs/zh-CN/security-guidance) 在 Claude 编写代码时审查代码,[`/security-review`](/docs/zh-CN/commands#all-commands) 对您的分支运行单次扫描,[Code Review](/docs/zh-CN/code-review) 审查拉取请求。有关这些层如何堆叠的信息,请参阅[插件如何与其他安全工具配合](#how-the-plugin-fits-with-other-security-tools)。13该插件也不同于 Claude Code 中已有的审查工具:[security guidance plugin](/docs/zh-CN/security-guidance) 在 Claude 编写代码时审查代码,[`/security-review`](/docs/zh-CN/commands#all-commands) 对您的分支运行单次扫描,[Code Review](/docs/zh-CN/code-review) 审查拉取请求。有关这些层如何堆叠的信息,请参阅[插件如何与其他安全工具配合](#how-the-plugin-fits-with-other-security-tools)。

14 14 

Details

164 164 

165### 归档环境165### 归档环境

166 166 

167要归档您自己的某个环境,请打开它进行编辑,选择 **Archive environment** 并确认。如果该环境已[与您的组织共享](#organization-shared-environments),则改由所有者从[管理设置](https://claude.ai/admin-settings)中的 **Cloud environments** 页面将其归档,因此除非您本身就是所有者,否则请联系所有者。您无法删除环境,只能归档它。167要归档您自己的某个环境,请打开它进行编辑,选择 **Archive environment** 并确认。如果该环境已[与您的组织共享](#organization-shared-environments),则改由所有者从[管理设置](https://claude.ai/admin-settings)中的 **Cloud environments** 页面将其归档,因此除非您本身就是所有者,否则请联系所有者。

168 168 

169归档影响新会话,不影响运行中的会话:169归档影响新会话,不影响运行中的会话:

170 170 


175 * **保存的 CLI 默认值**:如果该环境是您保存的 [CLI 默认值](#select-an-environment-from-the-cli),当您的列表中有 Anthropic 托管的环境时,Claude Code 会在该环境中启动 CLI 云端会话。否则,会在列表中第一个不是 [Remote Control bridge 环境](#the-default-environment)的环境中启动。175 * **保存的 CLI 默认值**:如果该环境是您保存的 [CLI 默认值](#select-an-environment-from-the-cli),当您的列表中有 Anthropic 托管的环境时,Claude Code 会在该环境中启动 CLI 云端会话。否则,会在列表中第一个不是 [Remote Control bridge 环境](#the-default-environment)的环境中启动。

176 * **显式配置**:任何显式配置了该环境的内容,例如[云端定时任务](/docs/zh-CN/routines#environments-and-network-access),都无法在其中启动新会话。请将其指向另一个环境。176 * **显式配置**:任何显式配置了该环境的内容,例如[云端定时任务](/docs/zh-CN/routines#environments-and-network-access),都无法在其中启动新会话。请将其指向另一个环境。

177 177 

178当您不再需要某个 Anthropic 托管的环境时,请将其归档。环境对话框和 **Cloud environments** 管理页面都没有删除 Anthropic 托管环境的选项。如果该环境是[自托管](/docs/zh-CN/self-hosted-environments)的,所有者可以从管理设置中的 **Cloud environments** 页面将其删除。如果您不是所有者,请联系所有者将其删除。

179 

178### 组织共享环境180### 组织共享环境

179 181 

180在 Team 和 Enterprise 计划上,所有者可以创建与组织每个成员共享的云环境。同一角色管理 **Cloud environments** 管理页面上的其他所有内容,包括[自托管环境](/docs/zh-CN/self-hosted-environments);管理员(Admin)角色无法打开该页面。可以打开该页面的完整角色列表与[管理服务器托管设置](/docs/zh-CN/server-managed-settings#access-control)的角色列表相同。182在 Team 和 Enterprise 计划上,所有者可以创建与组织每个成员共享的云环境。同一角色管理 **Cloud environments** 管理页面上的其他所有内容,包括[自托管环境](/docs/zh-CN/self-hosted-environments);管理员(Admin)角色无法打开该页面。可以打开该页面的完整角色列表与[管理服务器托管设置](/docs/zh-CN/server-managed-settings#access-control)的角色列表相同。


275 277 

276### 您的设置中会保留的内容278### 您的设置中会保留的内容

277 279 

280> [!NOTE]

281>

282> 在此表列出的仓库配置中,[项目](/docs/zh-CN/claude-projects)中的云端线程仅加载仓库根目录的 `CLAUDE.md`、`.claude/CLAUDE.md`,以及不[特定于路径](/docs/zh-CN/memory#path-specific-rules)的 `.claude/rules/` 文件。请参阅[线程从您的仓库中获取的内容](/docs/zh-CN/claude-projects#what-threads-pick-up-from-your-repositories)。

283 

278云端会话从您仓库的全新克隆开始。您提交到仓库的任何内容都可用。您只在自己机器上安装或配置的任何内容在会话中都不可用。您组织的策略通过[服务器托管设置](/docs/zh-CN/server-managed-settings)单独到达。284云端会话从您仓库的全新克隆开始。您提交到仓库的任何内容都可用。您只在自己机器上安装或配置的任何内容在会话中都不可用。您组织的策略通过[服务器托管设置](/docs/zh-CN/server-managed-settings)单独到达。

279 285 

280| | 在云端会话中可用 | 原因 |286| | 在云端会话中可用 | 原因 |


465 471 

466如果您在用户级 `~/.claude/settings.json` 中有 SessionStart hooks,不要期望它们在云端生效。用户级设置保留在您的机器上。其他 hooks 运行的位置取决于会话运行的位置:472如果您在用户级 `~/.claude/settings.json` 中有 SessionStart hooks,不要期望它们在云端生效。用户级设置保留在您的机器上。其他 hooks 运行的位置取决于会话运行的位置:

467 473 

468* **Anthropic 托管环境**:Claude Code 运行来自存储库和您组织的[服务器管理的设置](/docs/zh-CN/server-managed-settings)的 hooks。[Claude Tag](https://claude.com/docs/claude-tag/overview) 会话不会接收服务器管理的设置,因此来自服务器管理的设置的 hooks 不会在那里运行。474* **Anthropic 托管环境**:Claude Code 运行来自您组织的[服务器管理的设置](/docs/zh-CN/server-managed-settings)的 hook,并且在[项目](/docs/zh-CN/claude-projects#what-threads-pick-up-from-your-repositories)线程之外,还运行来自仓库的 hook。[Claude Tag](https://claude.com/docs/claude-tag/overview) 会话不会接收服务器管理的设置,因此来自服务器管理的设置的 hook 不会在那里运行。

469* **[自托管环境](/docs/zh-CN/self-hosted-environments-configuration#permissions-and-tool-approval)**:Claude Code 还运行运行程序主机的 `~/.claude/` 中的运行程序操作员播种的 hooks,以及运行程序镜像的托管设置文件中的 hooks,当该文件是 [Claude Code 应用的托管源](/docs/zh-CN/managed-settings#how-claude-code-combines-managed-sources)之一时。475* **[自托管环境](/docs/zh-CN/self-hosted-environments-configuration#permissions-and-tool-approval)**:Claude Code 还运行运行程序主机的 `~/.claude/` 中的运行程序操作员播种的 hooks,以及运行程序镜像的托管设置文件中的 hooks,当该文件是 [Claude Code 应用的托管源](/docs/zh-CN/managed-settings#how-claude-code-combines-managed-sources)之一时。

470 476 

471### 使用 SessionStart hook 安装依赖项477### 使用 SessionStart hook 安装依赖项

472 478 

473要仅在云会话中安装依赖项,请将 SessionStart hook 与检查其运行位置的脚本配对。479要仅在[项目](/docs/zh-CN/claude-projects#what-threads-pick-up-from-your-repositories)之外的云端会话中安装依赖项,请将 SessionStart hook 与检查其运行位置的脚本配对。

474 480 

475首先,将 SessionStart hook 添加到您的存储库的 `.claude/settings.json`。此配置告诉 Claude Code 在会话启动或恢复时运行存储库中的 `scripts/install_pkgs.sh`:481首先,将 SessionStart hook 添加到您的存储库的 `.claude/settings.json`。此配置告诉 Claude Code 在会话启动或恢复时运行存储库中的 `scripts/install_pkgs.sh`:

476 482 


532SessionStart hooks 在云端的行为与本地相同,但有以下注意事项:538SessionStart hooks 在云端的行为与本地相同,但有以下注意事项:

533 539 

534* **每个会话一个仓库**:在 Anthropic 托管环境中,具有多个仓库的会话不会从任何仓库的 `.claude/settings.json` 加载 hook,因此您在那里定义的 SessionStart hook 不会运行。请改为使用[设置脚本](#setup-scripts)为这些会话安装依赖项。对于自托管环境,请参阅[适用哪个仓库的设置](/docs/zh-CN/self-hosted-environments-configuration#repository-settings-in-sessions-with-several-repositories)。540* **每个会话一个仓库**:在 Anthropic 托管环境中,具有多个仓库的会话不会从任何仓库的 `.claude/settings.json` 加载 hook,因此您在那里定义的 SessionStart hook 不会运行。请改为使用[设置脚本](#setup-scripts)为这些会话安装依赖项。对于自托管环境,请参阅[适用哪个仓库的设置](/docs/zh-CN/self-hosted-environments-configuration#repository-settings-in-sessions-with-several-repositories)。

541* **不适用于项目的云端线程**:[项目](/docs/zh-CN/claude-projects#what-threads-pick-up-from-your-repositories)中的云端线程不会运行来自仓库 `.claude/settings.json` 的 hook,无论仓库数量多少。在 Anthropic 托管环境中,请使用[设置脚本](#setup-scripts)为线程安装依赖项。在自托管环境中,请改为使用[运行程序主机设置](/docs/zh-CN/self-hosted-environments-configuration#repository-settings-in-sessions-with-several-repositories)中的 hook。

535* **没有仅云端的范围**:hooks 在本地和云会话中都运行。要跳过本地运行,请在 `CLAUDE_CODE_REMOTE` 环境变量不为 `true` 时提前退出,就像[依赖项安装脚本](#install-dependencies-with-a-sessionstart-hook)所做的那样。542* **没有仅云端的范围**:hooks 在本地和云会话中都运行。要跳过本地运行,请在 `CLAUDE_CODE_REMOTE` 环境变量不为 `true` 时提前退出,就像[依赖项安装脚本](#install-dependencies-with-a-sessionstart-hook)所做的那样。

536* **需要网络访问**:安装命令需要连接到包注册表。如果您的环境使用 **None** 网络访问,这些 hooks 会失败。**Trusted** 下的[默认允许列表](#default-allowed-domains)涵盖 npm、PyPI、RubyGems 和 crates.io。543* **需要网络访问**:安装命令需要连接到包注册表。如果您的环境使用 **None** 网络访问,这些 hooks 会失败。**Trusted** 下的[默认允许列表](#default-allowed-domains)涵盖 npm、PyPI、RubyGems 和 crates.io。

537* **代理兼容性**:在 Anthropic 托管环境中,所有出站流量都经过[安全代理](#security-proxy),某些包管理器无法与此代理正确配合工作;Bun 是一个已知的例子。在[自托管环境](/docs/zh-CN/self-hosted-environments-deploy#default-deny-egress)中,出站流量改为经过您自己的网络边界。544* **代理兼容性**:在 Anthropic 托管环境中,所有出站流量都经过[安全代理](#security-proxy),某些包管理器无法与此代理正确配合工作;Bun 是一个已知的例子。在[自托管环境](/docs/zh-CN/self-hosted-environments-deploy#default-deny-egress)中,出站流量改为经过您自己的网络边界。

Details

92 92 

93`REVIEW.md` 中只保留会改变审查行为的指令,并将一般项目上下文留在 `CLAUDE.md` 中。93`REVIEW.md` 中只保留会改变审查行为的指令,并将一般项目上下文留在 `CLAUDE.md` 中。

94 94 

95### 在 REVIEW\.md 中包含其他文件

96 

97您可以将审查指令拆分到多个文件中,再将它们引入根目录的 `REVIEW.md`。当 `REVIEW.md` 变得很长,或者您已经在其他文件中维护审查规则时,可以使用此方法。

98 

99要包含某个文件,请在根目录的 `REVIEW.md` 中添加一行,该行仅包含 `@` 和文件名。Code Review 会用该文件的内容替换这一行,使其作为 `REVIEW.md` 的一部分生效。在此示例中,根文件给出了一条自己的指令,然后包含了两个规则文件:

100 

101```markdown theme={null}

102# Review instructions

103 

104Report at most five Nits per review.

105 

106@review-security.md

107@review-api.md

108```

109 

110将被包含的文件保存在仓库根目录,与 `REVIEW.md` 放在一起:

111 

112```text theme={null}

113your-repo/

114├── REVIEW.md

115├── review-security.md

116└── review-api.md

117```

118 

119Code Review 仅在从受保护分支读取 `REVIEW.md` 时才会包含这些文件,因此请查看[针对您的仓库,审查会读取哪个分支](#what-a-review-reads-for-each-branch-setup):

120 

121* **受保护分支**:Code Review 会用被包含的文件替换其 `@` 行

122* **未受保护的默认分支**:`@` 行会作为纯文本保留在 `REVIEW.md` 中。如果 Pull Request 更改了该行所指定的文件,则该行会被省略。

123 

124当审查未应用被包含的文件时,请逐项检查以下内容:

125 

126* **位置**:将文件移至仓库根目录。指向子目录的路径(例如 `@docs/review-rules.md`)不会被包含。

127* **名称**:文件名须完全匹配(包括大小写),并使用不含空格的名称。如果某行中的名称与 `REVIEW.md` 同级的任何文件都不匹配,该行会作为纯文本保留在 `REVIEW.md` 中,且检查运行不会将其报告为被跳过的包含项。

128* **仅限一层**:在根目录的 `REVIEW.md` 中列出所有文件。被包含文件或子目录 `REVIEW.md` 中的 `@` 行会保留为纯文本,而指向其他文件的 Markdown 链接不属于包含项。

129* **限制**:最多包含八个不同的文件,并使 `REVIEW.md` 及其包含的文件合计小于 150,000 字节。会达到字节上限的文件将被整体跳过,而不会被截断。检查运行会报告因任一限制而跳过了多少个包含行。

130* **链接**:`REVIEW.md` 及其包含的文件中的 Markdown 链接总数应不超过 64 个。指向 `http`、`https` 或 `mailto` 地址以及 `#` 锚点的链接不计入。超过该上限时,审查会跳过您的整个根目录 `REVIEW.md`,而不仅仅是被包含的文件。此时检查运行会[说明指令未被应用](/docs/zh-CN/code-review-troubleshooting#the-check-run-mentions-review-md)。

131* **已合并的副本**:将被包含的文件合并到[读取 `REVIEW.md` 的分支](#which-branch-review-md-is-read-from)中。审查会从同一个提交中读取两者,从不从 Pull Request 自身的更改中读取。

132 

95### 从哪个分支读取 REVIEW\.md133### 从哪个分支读取 REVIEW\.md

96 134 

97Code Review 从 Pull Request 的基础分支或默认分支读取 `REVIEW.md`,从不从 Pull Request 自身的更改中读取。如需更改审查行为,请先合并对 `REVIEW.md` 的更改。135Code Review 从 Pull Request 的基础分支或默认分支读取 `REVIEW.md`,从不从 Pull Request 自身的更改中读取。如需更改审查行为,请先合并对 `REVIEW.md` 的更改。


117 155 

118| 分支保护 | 读取的副本 | 读取的文件 |156| 分支保护 | 读取的副本 | 读取的文件 |

119| :- | :- | :- |157| :- | :- | :- |

120| 默认分支受保护,且 Pull Request 以其为目标,或以未受任何规则集保护的分支为目标 | 默认分支 | 根文件和子目录文件 |158| 默认分支受保护,且 Pull Request 以其为目标,或以未受任何规则集保护的分支为目标 | 默认分支 | 根文件、其包含的文件和子目录文件 |

121| Pull Request 以另一个受规则集保护的分支为目标 | 该基础分支 | 根文件和子目录文件 |159| Pull Request 以另一个受规则集保护的分支为目标 | 该基础分支 | 根文件、其包含的文件和子目录文件 |

122| 默认分支未受保护,且基础分支没有任何一种保护规则 | 默认分支 | 根文件 |160| 默认分支未受保护,且基础分支没有任何一种保护规则 | 默认分支 | 根文件 |

123| Code Review 无法确认保护设置。这包括默认分支未受保护、而基础分支仅有经典规则的情况 | 无 | 无 |161| Code Review 无法确认保护设置。这包括默认分支未受保护、而基础分支仅有经典规则的情况 | 无 | 无 |

124 162 

Details

55 55 

56### 通过脚本读取结果56### 通过脚本读取结果

57 57 

58要在您自己的 CI 中控制合并或发布摘要,请使用 `gh` 和 jq 解析 Details 文本的最后一行。该行是一条机器可读的注释。58要在您自己的 CI 中控制合并或发布摘要,请使用 `gh` 和 jq 解析 Details 文本的最后一行。该行是一条 HTML 注释,以 JSON 形式保存各严重程度的计数:

59 

60```text theme={null}

61<!-- bughunter-severity: {"nit":1,"normal":2,"pre_existing":0} -->

62```

63 

64其上方的行可能包含 Pull Request 中的文件名。如果您以自己的方式解析文本,请仅从最后一行获取计数,就像以下步骤中的命令所做的那样。

59 65 

60**1. 查找检查运行 ID**66**1. 查找检查运行 ID**

61 67 


67 73 

68**2. 读取严重程度计数**74**2. 读取严重程度计数**

69 75 

70从该检查运行中读取计数,将 `CHECK_RUN_ID` 替换为该 ID:76从检查运行的 `output.text` 字段中读取计数,该字段保存 Details 文本。将 `CHECK_RUN_ID` 替换为该 ID:

71 77 

72```bash theme={null}78```bash theme={null}

73gh api repos/OWNER/REPO/check-runs/CHECK_RUN_ID \79gh api repos/OWNER/REPO/check-runs/CHECK_RUN_ID --jq '

74 --jq '.output.text | split("bughunter-severity: ")[1] | split(" -->")[0] | fromjson'80 (.output.text | split("\n") | last

81 | scan("^<!-- bughunter-severity: (.*) -->$")[0] | fromjson)?

82 // error("no severity line")'

75```83```

76 84 

77这会输出一个 JSON 对象,其中包含每种严重程度的计数,键按字母顺序排列,例如 `{"nit": 1, "normal": 2, "pre_existing": 0}`。计数包括该 Pull Request 早期审查中讨论串仍处于打开状态的发现。85这会输出一个 JSON 对象,其中包含每种严重程度的计数,键按字母顺序排列,例如 `{"nit": 1, "normal": 2, "pre_existing": 0}`。计数包括该 Pull Request 早期审查中讨论串仍处于打开状态的发现。


80 88 

81让您的脚本处理以下情况:89让您的脚本处理以下情况:

82 90 

83* **`normal` 大于零**:如果您希望控制合并,请让作业失败。`normal` 键保存的是 Important 发现的数量,这意味着 Claude 至少发现了一个值得在合并前修复的 bug。91* **`normal` 大于零**:如果您希望控制合并,请让作业失败。`normal` 键保存的是 Important 发现的数量,这意味着 Claude 至少发现了一个值得在合并前修复的 bug。如果只想输出该计数,请在结尾的单引号之前添加 `| .normal`。

84* **该行缺失**:将其视为没有结论,而不是零个发现。对于失败、超时、被取消或被更新审查取代的审查,其检查运行中没有此行,某些已完成的审查也没有此行。92* **该行缺失**:命令会输出包含 `no severity line` 的错误而不是计数,并以非零状态退出。将其视为没有结论,而不是零个发现。对于失败、超时、被取消或被更新审查取代的审查,其检查运行中没有此行,某些已完成的审查也没有此行。

85 93 

86## 请求审查94## 请求审查

87 95 


99 107 

100| 命令 | 作用 | 使用时机 |108| 命令 | 作用 | 使用时机 |

101| :- | :- | :- |109| :- | :- | :- |

102| `@claude review` | 启动一次审查,但不为 PR 订阅后续推送 | 您现在需要一次审查,例如在设置为 Manual 的仓库中的 Pull Request 上,或在其他模式下立即再进行一次审查 |110| `@claude review` | 启动一次审查,但不为 PR 订阅后续推送 | 您现在需要一次审查,例如在设置为 **Manual** 的仓库中的 Pull Request 上,或在其他模式下立即再进行一次审查 |

103| `@claude review always` | 启动审查,并为 PR 订阅此后由推送触发的审查 | 您希望之后的每次推送都启动新的审查,例如在设置为 Manual 的仓库中的高优先级 PR 上 |111| `@claude review always` | 启动审查,并为 PR 订阅此后由推送触发的审查 | 您希望之后的每次推送都启动新的审查,例如在设置为 **Manual** 的仓库中的高优先级 PR 上 |

104| `@claude review once` | 与 `@claude review` 相同:启动一次审查而不订阅 | 与 `@claude review` 的情况相同 |112| `@claude review once` | 与 `@claude review` 相同:启动一次审查而不订阅 | 与 `@claude review` 的情况相同 |

113| `@claude review stop` | 结束 PR 对由推送触发的审查的订阅,既不启动审查,也不取消已在排队或正在运行的审查。Claude 会以评论而非检查运行进行回复。 | 您在设置为 **Manual** 或 **Once after PR creation** 的仓库中使用 `@claude review always` 订阅了某个 PR,但不再希望每次推送都启动审查 |

114| `@claude review off` 或 `@claude review pause` | 与 `@claude review stop` 相同 | 与 `@claude review stop` 的情况相同 |

115 

116在设置为 **After every push** 的仓库中,您无法通过评论停止审查,因为在那里无论是否有订阅,推送都会启动审查。要在此类仓库中阻止推送为某个 Pull Request 启动审查,请将其转换为[草稿](#review-drafts-and-pull-requests-from-forks)。当您再次将其标记为可供审查时,会启动一次审查。

105 117 

106要让这些命令中的任何一个启动审查,必须满足以下所有条件:118要让任何评论命令生效,必须满足以下所有条件:

107 119 

108* 将其作为新的顶层 Pull Request 评论发布,而不是 diff 行上的内联评论,也不是审查的正文。编辑之前的评论不算数。120* 将其作为新的顶层 Pull Request 评论发布,而不是 diff 行上的内联评论,也不是审查的正文。编辑之前的评论不算数。

109* 将命令放在评论开头,并且 `always` 需与命令的其余部分位于同一行。大小写无关紧要。121* 将整个命令放在评论开头的同一行中。命令之后可以跟其他文本。如果 `always` 或 `stop` 拼写错误或位于后面的行中,Claude 会将该评论视为普通的 `@claude review` 并启动一次审查。大小写无关紧要。

110* 您需要拥有该仓库的 write、maintain 或 admin 权限。Claude 会向 GitHub 核实每位评论者的权限,来自 bot 的评论不会启动审查。122* 您需要拥有该仓库的 write、maintain 或 admin 权限。Claude 会向 GitHub 核实每位评论者的权限,来自 bot 的评论不会启动审查。

111* Pull Request 必须处于打开状态。123* Pull Request 必须处于打开状态。

112 124 

113命令被接受后,Pull Request 上会出现一个标题为 **Code review queued...** 的 **Claude Code Review** 检查运行。审查开始时,标题会变为 **Code review in progress...**。Claude 也可能会用 👀 回应您的评论,但即使没有启动审查,该回应也可能出现,因此请以检查运行为准。125启动审查的命令被接受后,Pull Request 上会出现一个标题为 **Code review queued...** 的 **Claude Code Review** 检查运行。审查开始时,标题会变为 **Code review in progress...**。Claude 也可能会用 👀 回应您的评论,但即使没有启动审查,该回应也可能出现,因此请以检查运行为准。

114 126 

115如果 Pull Request 的最新提交上已有审查正在运行,新的请求不会启动第二次审查。127如果 Pull Request 的最新提交上已有审查正在运行,新的请求不会启动第二次审查。

116 128 

Details

66 66 

67## 检查运行提到 REVIEW\.md67## 检查运行提到 REVIEW\.md

68 68 

69检查运行可能携带的关于 `REVIEW.md` 的消息中,有两条与分支保护有关:69检查运行可能携带的关于 `REVIEW.md` 的消息中,有以下三条:

70 70 

71* **"This review applied the repository's review instructions (REVIEW\.md) from its default branch, which is not protected against direct pushes."**:该审查仅读取了根目录下的文件。请参阅[从哪个分支读取 REVIEW.md](/docs/zh-CN/code-review-customize#which-branch-review-md-is-read-from),了解保护该分支会带来哪些变化。71* **"This review applied the repository's review instructions (REVIEW\.md) from its default branch, which is not protected against direct pushes."**:该审查仅读取了根目录下的文件。请参阅[从哪个分支读取 REVIEW.md](/docs/zh-CN/code-review-customize#which-branch-review-md-is-read-from),了解保护该分支会带来哪些变化。

72* **"were not applied to this review: branch protection could not be confirmed"**:该审查没有读取任何 `REVIEW.md`。72* **"were not applied to this review: branch protection could not be confirmed"**:该审查没有读取任何 `REVIEW.md`。

73* **"they link to a file this pull request modifies, or carry more links than the review checks"**:该审查跳过了根目录下的 `REVIEW.md`,或跳过了消息中给出数量的子目录 `REVIEW.md` 文件。请针对以下每种原因检查被跳过的文件。对于根目录下的 `REVIEW.md`,还需检查[它所包含的文件](/docs/zh-CN/code-review-customize#include-other-files-in-review-md):

74 * **链接过多**:文件包含超过 64 个 Markdown 链接。请将链接削减至 [64 个或更少](/docs/zh-CN/code-review-customize#include-other-files-in-review-md)。

75 * **审查无法解析的链接**:文件中有格式错误的 Markdown 链接。请修复或删除该链接。

76 * **指向已更改文件的链接**:文件链接到此 Pull Request 更改的文件或文件夹,且审查无法仅排除包含该链接的行。请直接在 `REVIEW.md` 中编写该规则。

73 77 

74## 设置问题78## 设置问题

75 79 

commands.md +5 −5

Details

26 26 

27**在你发布之前。** `/diff` 显示更改的内容。`/code-review` 检查当前 diff 是否存在正确性错误和清理,并可以使用 `--fix` 应用发现的问题;传递 PR 号码,例如 `/code-review high 1234`,以改为审查拉取请求。`/review` 是一个别名。`/code-review ultra` 在云中运行多代理审查。`/security-review` 检查 diff 是否存在安全漏洞。27**在你发布之前。** `/diff` 显示更改的内容。`/code-review` 检查当前 diff 是否存在正确性错误和清理,并可以使用 `--fix` 应用发现的问题;传递 PR 号码,例如 `/code-review high 1234`,以改为审查拉取请求。`/review` 是一个别名。`/code-review ultra` 在云中运行多代理审查。`/security-review` 检查 diff 是否存在安全漏洞。

28 28 

29**会话之间。** `/clear` 在保持项目内存的同时开始新任务。`/resume` 返回到较早的对话,`/branch` 分支当前对话以尝试不同的方向,`/fork` 将其复制到新的 [background session](/docs/zh-CN/agent-view)。`/teleport` 将网络会话拉入此终端,`/remote-control` 让你从另一台设备继续此本地会话。29**会话之间。** `/clear` 在保持项目记忆的同时开始新任务。`/resume` 返回到较早的对话,`/branch` 分支当前对话以尝试不同的方向,`/fork` 将其复制到新的 [后台会话](/docs/zh-CN/agent-view)。`/teleport` 将云端会话拉入此终端,`/remote-control` 让你从另一台设备继续此本地会话。

30 30 

31**当出现问题时。** `/rewind` 将代码和对话回滚到检查点,或总结对话的一部分。`/doctor` 运行设置检查以诊断安装和配置问题并可以修复它们,`/debug` 诊断运行时问题,`/feedback` 报告附加会话上下文的错误。31**当出现问题时。** `/rewind` 将代码和对话回滚到检查点,或总结对话的一部分。`/doctor` 运行设置检查以诊断安装和配置问题并可以修复它们,`/debug` 诊断运行时问题,`/feedback` 报告附加会话上下文的错误。

32 32 


55| `/artifact-capabilities` | **[Skill](/docs/zh-CN/skills#bundled-skills)。** 加载已发布的 [Artifact](/docs/zh-CN/artifacts) 可使用的运行时功能参考,例如[调用您的连接器](/docs/zh-CN/artifacts#pull-live-data-with-mcp-connectors)或[提供文件下载](/docs/zh-CN/artifacts#offer-a-file-download),包括您的账户拥有哪些功能。Claude 通常会在构建使用其中某项功能的页面之前自行加载它。在 [Artifact 可用](/docs/zh-CN/artifacts#availability)的地方可用 |55| `/artifact-capabilities` | **[Skill](/docs/zh-CN/skills#bundled-skills)。** 加载已发布的 [Artifact](/docs/zh-CN/artifacts) 可使用的运行时功能参考,例如[调用您的连接器](/docs/zh-CN/artifacts#pull-live-data-with-mcp-connectors)或[提供文件下载](/docs/zh-CN/artifacts#offer-a-file-download),包括您的账户拥有哪些功能。Claude 通常会在构建使用其中某项功能的页面之前自行加载它。在 [Artifact 可用](/docs/zh-CN/artifacts#availability)的地方可用 |

56| `/artifact-diagramming` | **[Skill](/docs/zh-CN/skills#bundled-skills)。** 加载供 Claude 在 [Artifact](/docs/zh-CN/artifacts) 中遵循的绘图指导:何时使用图表有帮助、绘制什么,以及如何编写在浅色和深色主题下都清晰可读的内联 SVG。需要 Claude Code v2.1.221 或更高版本 |56| `/artifact-diagramming` | **[Skill](/docs/zh-CN/skills#bundled-skills)。** 加载供 Claude 在 [Artifact](/docs/zh-CN/artifacts) 中遵循的绘图指导:何时使用图表有帮助、绘制什么,以及如何编写在浅色和深色主题下都清晰可读的内联 SVG。需要 Claude Code v2.1.221 或更高版本 |

57| `/artifacts` | 列出您拥有的或与您共享的 [Artifact](/docs/zh-CN/artifacts#find-an-artifact-again),然后将其中一个附加到会话、在浏览器中打开,或复制其链接。在 [Artifact 可用](/docs/zh-CN/artifacts#availability)的地方可用。需要 Claude Code v2.1.208 或更高版本;使用 `Enter` 附加需要 v2.1.216 |57| `/artifacts` | 列出您拥有的或与您共享的 [Artifact](/docs/zh-CN/artifacts#find-an-artifact-again),然后将其中一个附加到会话、在浏览器中打开,或复制其链接。在 [Artifact 可用](/docs/zh-CN/artifacts#availability)的地方可用。需要 Claude Code v2.1.208 或更高版本;使用 `Enter` 附加需要 v2.1.216 |

58| `/auto-mode-setup` | 根据您的项目和最近的会话[起草 `autoMode.environment` 条目](/docs/zh-CN/auto-mode-config#generate-environment-entries),然后审阅草稿并将其保存到您的用户设置中。需要 Pro、Max 或 Team 套餐以及 Claude Code v2.1.228 或更高版本。在原生 Windows 上,需要 v2.1.233 或更高版本 |58| `/auto-mode-setup` | 根据您的项目和最近的会话[起草 `autoMode.environment` 条目](/docs/zh-CN/auto-mode-config#generate-environment-entries),然后审阅草稿并将其保存到您的用户设置中。在 Pro、Max 或 Team 套餐上,需要 Claude Code v2.1.228 或更高版本,在原生 Windows 上则需要 v2.1.233 或更高版本。在 Enterprise 套餐上或使用 Claude Console API 密钥时,需要 v2.1.283 或更高版本。如果该命令不存在,请参阅 [`/auto-mode-setup` 返回 "Unknown command"](/docs/zh-CN/auto-mode-config#auto-mode-setup-returns-unknown-command) |

59| `/autocompact [auto\|<tokens>]` | 设置自动压缩窗口:即上下文窗口填充到多满时 Claude Code 会自动压缩。传递大小(例如 `500k`),或传递 `auto` 以恢复为针对您的模型调整的窗口。Claude Code 会将该值保存到用户设置并应用于当前会话。有关接受的值以及哪些设置会覆盖它,请参阅[设置自动压缩窗口](/docs/zh-CN/model-config#set-the-auto-compact-window)。不带参数时,打开显示当前窗口的对话框。需要 Claude Code v2.1.221 或更高版本 |59| `/autocompact [auto\|<tokens>]` | 设置自动压缩窗口:即上下文窗口填充到多满时 Claude Code 会自动压缩。传递大小(例如 `500k`),或传递 `auto` 以恢复为针对您的模型调整的窗口。Claude Code 会将该值保存到用户设置并应用于当前会话。有关接受的值以及哪些设置会覆盖它,请参阅[设置自动压缩窗口](/docs/zh-CN/model-config#set-the-auto-compact-window)。不带参数时,打开显示当前窗口的对话框。需要 Claude Code v2.1.221 或更高版本 |

60| `/autofix-pr [prompt]` | 生成一个[云端会话](/docs/zh-CN/claude-code-on-the-web#auto-fix-pull-requests),监视当前分支的 PR,并在 CI 失败或审阅者留下评论时推送修复。通过 `gh pr view` 从您检出的分支检测打开的 PR;要监视其他 PR,请先检出其分支。默认情况下,云端会话会被指示修复每个 CI 失败和审阅评论;传递提示词可给出不同的指令,例如 `/autofix-pr only fix lint and type errors`。需要 `gh` CLI 以及[云端会话](/docs/zh-CN/claude-code-on-the-web)访问权限 |60| `/autofix-pr [prompt]` | 生成一个[云端会话](/docs/zh-CN/claude-code-on-the-web#auto-fix-pull-requests),监视当前分支的 PR,并在 CI 失败或审阅者留下评论时推送修复。通过 `gh pr view` 从您检出的分支检测打开的 PR;要监视其他 PR,请先检出其分支。默认情况下,云端会话会被指示修复每个 CI 失败和审阅评论;传递提示词可给出不同的指令,例如 `/autofix-pr only fix lint and type errors`。需要 `gh` CLI 以及[云端会话](/docs/zh-CN/claude-code-on-the-web)访问权限 |

61| `/background [prompt]` | 将当前会话分离,作为[后台 Agent](/docs/zh-CN/agent-view) 运行,并释放此终端。传递提示词可在分离前再发送一条指令。使用 `claude agents` 监视该会话。要将对话复制到新的后台会话中,同时让当前会话继续运行,请使用 `/fork`。别名:`/bg` |61| `/background [prompt]` | 将当前会话分离,作为[后台 Agent](/docs/zh-CN/agent-view) 运行,并释放此终端。传递提示词可在分离前再发送一条指令。使用 `claude agents` 监视该会话。要将对话复制到新的后台会话中,同时让当前会话继续运行,请使用 `/fork`。别名:`/bg` |


65| `/bug [report]` | 报告 bug 或分享您的对话。您可以选择包含多少会话历史,并在发送任何内容之前在同意屏幕上确认。当您通过第一方连接登录 Anthropic 时,报告会发送给 Anthropic;在第三方提供商上,或没有 Anthropic 凭据时,Claude Code 会将报告写入[位于 `~/.claude/feedback-bundles/` 下的本地归档](/docs/zh-CN/data-usage#telemetry-services),由您自行转发。在 [VS Code 扩展](/docs/zh-CN/vs-code#use-the-prompt-box)中,`/bug` 会改为打开扩展自己的反馈对话框;需要 Claude Code v2.1.229 或更高版本。如果在 Claude 回复时运行此命令,Claude Code 会立即打开对话框。在 v2.1.232 之前,Claude Code 会将该命令排队,直到该轮次结束。别名:`/share`。在 v2.1.212 之前,`/bug` 和 `/share` 是 `/feedback` 的别名 |65| `/bug [report]` | 报告 bug 或分享您的对话。您可以选择包含多少会话历史,并在发送任何内容之前在同意屏幕上确认。当您通过第一方连接登录 Anthropic 时,报告会发送给 Anthropic;在第三方提供商上,或没有 Anthropic 凭据时,Claude Code 会将报告写入[位于 `~/.claude/feedback-bundles/` 下的本地归档](/docs/zh-CN/data-usage#telemetry-services),由您自行转发。在 [VS Code 扩展](/docs/zh-CN/vs-code#use-the-prompt-box)中,`/bug` 会改为打开扩展自己的反馈对话框;需要 Claude Code v2.1.229 或更高版本。如果在 Claude 回复时运行此命令,Claude Code 会立即打开对话框。在 v2.1.232 之前,Claude Code 会将该命令排队,直到该轮次结束。别名:`/share`。在 v2.1.212 之前,`/bug` 和 `/share` 是 `/feedback` 的别名 |

66| `/cd <path>` | 将此会话移动到新的工作目录,同时保留对话。输入部分路径可查看匹配的目录建议;按 `Tab` 接受其中一个。有关移动后 Claude Code 会立即从新目录应用哪些内容,以及 `/cd` 与 `/add-dir` 的区别,请参阅[将会话移动到另一个目录](/docs/zh-CN/permissions#move-the-session-to-another-directory) |66| `/cd <path>` | 将此会话移动到新的工作目录,同时保留对话。输入部分路径可查看匹配的目录建议;按 `Tab` 接受其中一个。有关移动后 Claude Code 会立即从新目录应用哪些内容,以及 `/cd` 与 `/add-dir` 的区别,请参阅[将会话移动到另一个目录](/docs/zh-CN/permissions#move-the-session-to-another-directory) |

67| `/chrome` | 配置 [Claude in Chrome](/docs/zh-CN/chrome) 设置 |67| `/chrome` | 配置 [Claude in Chrome](/docs/zh-CN/chrome) 设置 |

68| `/claude-api [migrate\|upgrade\|managed-agents-onboard\|managed-agents-secure\|prompt-audit\|cost-optimize\|build-eval\|hillclimb\|preserved-thinking-migration]` | **[Skill](/docs/zh-CN/skills#bundled-skills)。** 加载适用于您项目语言的 [Claude API](https://platform.claude.com/docs/en/api/overview) 和 [Managed Agents](https://platform.claude.com/docs/en/managed-agents/overview) 参考资料。当您的代码导入 `anthropic` 或 `@anthropic-ai/sdk` 时也会自动激活。有关每个子命令的作用及其所需版本,请参阅[处理 Claude API 项目](/docs/zh-CN/skills#work-on-claude-api-projects) |68| `/claude-api [migrate\|upgrade\|api-version\|managed-agents-onboard\|managed-agents-secure\|prompt-audit\|cost-optimize\|build-eval\|hillclimb\|preserved-thinking-migration]` | **[Skill](/docs/zh-CN/skills#bundled-skills)。** 加载适用于您项目语言的 [Claude API](https://platform.claude.com/docs/en/api/overview) 和 [Managed Agents](https://platform.claude.com/docs/en/managed-agents/overview) 参考资料。当您的代码导入 `anthropic` 或 `@anthropic-ai/sdk` 时也会自动激活。有关每个子命令的作用及其所需版本,请参阅[处理 Claude API 项目](/docs/zh-CN/skills#work-on-claude-api-projects) |

69| `/claude-in-chrome [task]` | **[Skill](/docs/zh-CN/skills#bundled-skills)。** 让 Claude 通过 [Claude in Chrome](/docs/zh-CN/chrome) 在您的浏览器中执行任务,例如测试页面、填写表单或读取控制台日志。当会话启用了 Chrome 集成时可用(例如使用 `claude --chrome`),或者当 Claude Code 可以提议[安装扩展](/docs/zh-CN/chrome#install-the-extension-when-claude-asks)时可用 |69| `/claude-in-chrome [task]` | **[Skill](/docs/zh-CN/skills#bundled-skills)。** 让 Claude 通过 [Claude in Chrome](/docs/zh-CN/chrome) 在您的浏览器中执行任务,例如测试页面、填写表单或读取控制台日志。当会话启用了 Chrome 集成时可用(例如使用 `claude --chrome`),或者当 Claude Code 可以提议[安装扩展](/docs/zh-CN/chrome#install-the-extension-when-claude-asks)时可用 |

70| `/clear [name]` | 使用空上下文开始新对话。传递名称可在 `/resume` 选择器中为之前的对话添加标签。要在继续同一对话的同时释放上下文,请改用 `/compact`。使用 `/resume` 恢复之前的对话,或者在同一 Claude Code 进程中,从[回退菜单的上一个会话条目](/docs/zh-CN/checkpointing#rewind-past-a-cleared-conversation)恢复。别名:`/reset`、`/new` |70| `/clear [name]` | 使用空上下文开始新对话。传递名称可在 `/resume` 选择器中为之前的对话添加标签。要在继续同一对话的同时释放上下文,请改用 `/compact`。使用 `/resume` 恢复之前的对话,或者在同一 Claude Code 进程中,从[回退菜单的上一个会话条目](/docs/zh-CN/checkpointing#rewind-past-a-cleared-conversation)恢复。别名:`/reset`、`/new` |

71| `/code-review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [--max-findings n\|all\|default] [pr#\|branch\|path]` | **[Skill](/docs/zh-CN/skills#bundled-skills)。** 审查当前 diff,或您传递的 PR 编号、分支或路径,查找正确性 bug。根据您的模型和 effort 级别,审查还会涵盖清理机会。传递 `--fix` 可让 Claude 应用发现的问题,传递 `--comment` 可将其发布到 GitHub PR 或 GitLab Merge Request 上,传递 `ultra` 可运行深度[云端审查](/docs/zh-CN/ultrareview)。发布到 GitLab Merge Request 需要 Claude Code v2.1.257 或更高版本。在以 `github.com` PR 为目标使用 `ultra` 时,传递 `--post` 可在启动对话框中预先选择[将完成的发现发布到 PR](/docs/zh-CN/ultrareview#post-findings-to-the-pull-request);`--post` 需要 Claude Code v2.1.227 或更高版本。有关 effort 级别、目标指定方式以及它与 `/simplify` 的关系,请参阅[使用 `/code-review` 在本地审查](/docs/zh-CN/code-review-local)。别名:`/review` |71| `/code-review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [--max-findings n\|all\|default] [pr#\|branch\|path]` | **[Skill](/docs/zh-CN/skills#bundled-skills)。** 审查当前 diff,或您传递的 PR 编号、分支或路径,查找正确性 bug。根据您的模型和 effort 级别,审查还会涵盖清理机会。传递 `--fix` 可让 Claude 应用发现的问题,传递 `--comment` 可将其发布到 GitHub PR 或 GitLab Merge Request 上,传递 `ultra` 可运行深度[云端审查](/docs/zh-CN/ultrareview)。发布到 GitLab Merge Request 需要 Claude Code v2.1.257 或更高版本。在以 `github.com` PR 为目标使用 `ultra` 时,传递 `--post` 可在启动对话框中预先选择[将完成的发现发布到 PR](/docs/zh-CN/ultrareview#post-findings-to-the-pull-request);`--post` 需要 Claude Code v2.1.227 或更高版本。有关 effort 级别、目标指定方式以及它与 `/simplify` 的关系,请参阅[使用 `/code-review` 在本地审查](/docs/zh-CN/code-review-local)。别名:`/review` |


80| `/deep-research <question>` | **[工作流](/docs/zh-CN/workflows#bundled-workflows)。** 针对一个问题分散进行网络搜索,获取并交叉核对来源,并综合生成带引用的报告 |80| `/deep-research <question>` | **[工作流](/docs/zh-CN/workflows#bundled-workflows)。** 针对一个问题分散进行网络搜索,获取并交叉核对来源,并综合生成带引用的报告 |

81| `/design [brief]` | **[Skill](/docs/zh-CN/skills#bundled-skills)。** 在一个画布上以画板形式起草 UI 模型、屏幕流程、着陆页或海报,并发布为 Claude Design [Artifact](/docs/zh-CN/artifacts#draft-a-design-canvas),例如 `/design a settings screen for a mobile banking app`。您可以在桌面浏览器中编辑画板,编辑内容会自动保存。您可以将每个画板导出为 PNG 或 PDF。需要 Claude Code v2.1.265 或更高版本、[Artifact 可用](/docs/zh-CN/artifacts#availability)的会话,以及 [Design 模板可用](/docs/zh-CN/artifacts#start-from-a-slides-design-or-docs-template)的账户;如果您的组织已关闭该模板,`/design` 不会起草设计。可在 Anthropic API 上使用。在 Amazon Bedrock、Google Cloud's Agent Platform、Microsoft Foundry 和 Claude Platform on AWS 上,Artifact 不可用,因此该命令在这些平台上不可用 |81| `/design [brief]` | **[Skill](/docs/zh-CN/skills#bundled-skills)。** 在一个画布上以画板形式起草 UI 模型、屏幕流程、着陆页或海报,并发布为 Claude Design [Artifact](/docs/zh-CN/artifacts#draft-a-design-canvas),例如 `/design a settings screen for a mobile banking app`。您可以在桌面浏览器中编辑画板,编辑内容会自动保存。您可以将每个画板导出为 PNG 或 PDF。需要 Claude Code v2.1.265 或更高版本、[Artifact 可用](/docs/zh-CN/artifacts#availability)的会话,以及 [Design 模板可用](/docs/zh-CN/artifacts#start-from-a-slides-design-or-docs-template)的账户;如果您的组织已关闭该模板,`/design` 不会起草设计。可在 Anthropic API 上使用。在 Amazon Bedrock、Google Cloud's Agent Platform、Microsoft Foundry 和 Claude Platform on AWS 上,Artifact 不可用,因此该命令在这些平台上不可用 |

82| `/design consent`, `/design revoke` | 授予 Claude 访问 [Claude Design](https://claude.ai/design) 的权限,或撤销该权限。当 Claude 的回复要求您运行 `/design consent` 时,请自行在 Claude Code 输入框中输入该命令 |82| `/design consent`, `/design revoke` | 授予 Claude 访问 [Claude Design](https://claude.ai/design) 的权限,或撤销该权限。当 Claude 的回复要求您运行 `/design consent` 时,请自行在 Claude Code 输入框中输入该命令 |

83| `/design-login` | 使用您的 claude.ai 账户为 `/design-sync` 授权设计系统访问。每当 `/design-sync` 或 `/design consent` 提示您登录时,请使用 `/design-login` 登录 |83| `/design-login` | 使用您的 claude.ai 账户为 `/design-sync` 授权设计系统访问。每当 `/design-sync` 或 `/design consent` 提示您登录时,请使用 `/design-login` 登录。此登录用于位于 claude.ai/design 的独立 Claude Design 站点,该站点将于 2026 年 12 月 14 日前关闭;请参阅[从独立 Claude Design 迁移到 Claude](https://support.claude.com/en/articles/17440474-migrate-from-standalone-claude-design-to-claude) |

84| `/design-sync [hint]` | **[Skill](/docs/zh-CN/skills#bundled-skills)。** 转换您仓库中的 React 设计系统并将其上传到 [Claude Design](https://claude.ai/design),使其生成的设计使用您的真实组件。可选择为设计系统命名,例如 `/design-sync Acme DS`。首次同步会验证每个组件,在大型仓库上可能需要几个小时。可在 Anthropic API 上使用。它需要 claude.ai,而 CLI 在 Amazon Bedrock、Google Cloud's Agent Platform、Microsoft Foundry 或 Claude Platform on AWS 上,或通过 [Claude apps gateway](/docs/zh-CN/claude-apps-gateway#availability-and-limitations) 使用时不会连接 claude.ai,因此该命令在这些情况下不可用 |84| `/design-sync [hint]` | **[Skill](/docs/zh-CN/skills#bundled-skills)。** 转换您仓库中的 React 设计系统并将其上传到 [Claude Design](https://claude.ai/design),使其生成的设计使用您的真实组件。可选择为设计系统命名,例如 `/design-sync Acme DS`。首次同步会验证每个组件,在大型仓库上可能需要几个小时。可在 Anthropic API 上使用。它需要 claude.ai,而 CLI 在 Amazon Bedrock、Google Cloud's Agent Platform、Microsoft Foundry 或 Claude Platform on AWS 上,或通过 [Claude apps gateway](/docs/zh-CN/claude-apps-gateway#availability-and-limitations) 使用时不会连接 claude.ai。该命令在这些情况下不可用。此命令会上传到独立的 claude.ai/design 站点,该站点将于 2026 年 12 月 14 日前关闭;请参阅[从独立 Claude Design 迁移到 Claude](https://support.claude.com/en/articles/17440474-migrate-from-standalone-claude-design-to-claude) |

85| `/desktop` | 在 Claude Code Desktop 应用中继续当前会话。需要 macOS 或 x64 Windows 以及 Claude 订阅。别名:`/app` |85| `/desktop` | 在 Claude Code Desktop 应用中继续当前会话。需要 macOS 或 x64 Windows 以及 Claude 订阅。别名:`/app` |

86| `/diff` | 审查工作树中的更改,包括 Claude 到目前为止所做的编辑。请参阅[使用 /diff 审查更改](/docs/zh-CN/interactive-mode#review-changes-with-%2Fdiff) |86| `/diff` | 审查工作树中的更改,包括 Claude 到目前为止所做的编辑。请参阅[使用 /diff 审查更改](/docs/zh-CN/interactive-mode#review-changes-with-%2Fdiff) |

87| `/doctor [prompt-audit [path]]` | **[Skill](/docs/zh-CN/skills#bundled-skills)。** 运行设置检查,诊断安装、设置、扩展和 `CLAUDE.md` 方面的问题,并提出修复建议,Claude 会在您确认后应用这些修复。有关检查涵盖的内容,或要改用 `prompt-audit` 审计您的指令,请参阅[使用 `/doctor` 检查您的设置](/docs/zh-CN/skills#check-your-setup-with-/doctor)。`prompt-audit` 子命令需要 Claude Code v2.1.283 或更高版本。别名:`/checkup` |87| `/doctor [prompt-audit [path]]` | **[Skill](/docs/zh-CN/skills#bundled-skills)。** 运行设置检查,诊断安装、设置、扩展和 `CLAUDE.md` 方面的问题,并提出修复建议,Claude 会在您确认后应用这些修复。有关检查涵盖的内容,或要改用 `prompt-audit` 审计您的指令,请参阅[使用 `/doctor` 检查您的设置](/docs/zh-CN/skills#check-your-setup-with-/doctor)。`prompt-audit` 子命令需要 Claude Code v2.1.283 或更高版本。别名:`/checkup` |

Details

379 379 

380若要阻止 `@` 引用在消息中包含文件内容和目录列表,请在 shell 或用户设置中设置 [`CLAUDE_CODE_DISABLE_FILE_MENTIONS=1`](/docs/zh-CN/env-vars#variables)。随后 Claude 会收到您引用的路径,并附带一条说明,提示它使用其文件工具读取这些路径。该变量需要 Claude Code v2.1.299 或更高版本,并且 Claude Code 会在项目设置和本地设置中忽略它。380若要阻止 `@` 引用在消息中包含文件内容和目录列表,请在 shell 或用户设置中设置 [`CLAUDE_CODE_DISABLE_FILE_MENTIONS=1`](/docs/zh-CN/env-vars#variables)。随后 Claude 会收到您引用的路径,并附带一条说明,提示它使用其文件工具读取这些路径。该变量需要 Claude Code v2.1.299 或更高版本,并且 Claude Code 会在项目设置和本地设置中忽略它。

381 381 

382当 Claude Code 包含您使用 `@` 引用的文件时,您的 [`PreToolUse` hook](/docs/zh-CN/hooks#pretooluse) 不会运行,因为此过程不涉及工具调用。如果您依赖这些 hook 来控制 Claude 读取的内容,请阻止特定路径,或阻止 `@` 引用包含文件:

383 

384* **阻止特定路径**:为这些路径添加 [`Read` 拒绝规则](/docs/zh-CN/permissions#read-and-edit)。Claude Code 不会包含与该规则匹配的文件。

385* **阻止 `@` 引用包含文件**:设置 `CLAUDE_CODE_DISABLE_FILE_MENTIONS=1`,这会阻止消息中的 `@` 文件和目录引用包含内容,即使是您的 hook 不检查的路径也是如此。随后,在 Claude 使用 `Read` 等工具打开被引用的路径之前,您的匹配 hook 会运行。

386 

382***387***

383 388 

384### 按计划运行 Claude389### 按计划运行 Claude

costs.md +24 −5

Details

55 55 

56#### 计划使用情况明细56#### 计划使用情况明细

57 57 

58在 Pro、Max、Team 或 Enterprise 计划上,`/usage` 还显示计入您的计划限制的内容明细:58在 Pro、Max、Team 或 Enterprise 套餐上,`/usage` 还显示计入您的套餐限制的内容明细,并附带建议:

59 59 

60* **Attribution(归属)**:最近使用情况归属于 skills、subagents、plugins 和各个 MCP 服务器,每个都显示为总数的百分比。MCP 服务器的份额仅计算消耗其工具结果之一的请求。在 v2.1.222 之前,在调用 MCP 服务器一次后,Claude Code 将每个后续请求归属于该服务器,高估了其份额。60* **Attribution(归属)**:最近使用情况归属于 skills、subagents、plugins 和各个 MCP 服务器,每个都显示为总数的百分比。MCP 服务器的份额仅计算消耗其工具结果之一的请求。在 v2.1.222 之前,在调用 MCP 服务器一次后,Claude Code 将每个后续请求归属于该服务器,高估了其份额。

61* **Behavior flags(行为标志)**:行为,例如长上下文或缓存未命中,当其占最近使用情况的 10% 或更多时标记。61* **Recommendations(建议)**:可降低用量的更改,每行一项。每行开头是该建议所针对的最近使用情况份额(至少 10%),例如 `25% Trim ~/code/api/CLAUDE.md · 49k tokens per request`。要让 Claude Code 应用其能够应用的建议,请参阅[使用 fix 快捷键应用建议](#apply-recommendations-with-the-fix-shortcut)。

62* **Loops(循环)**:最近运行的每个最重的 [`/loop` 或其他会话范围的定时任务](/docs/zh-CN/scheduled-tasks)各占一行,按总 token 排序,其余的显示计数。需要 Claude Code v2.1.242 或更高版本。62* **Loops(循环)**:最近运行的每个最重的 [`/loop` 或其他会话范围的定时任务](/docs/zh-CN/scheduled-tasks)各占一行,按总 token 排序,其余的显示计数。需要 Claude Code v2.1.242 或更高版本。

63 * **每行报告的内容**:任务触发的频率、运行次数、其总 token 和每次运行 token,以及最后一次运行的时间63 * **每行报告的内容**:任务触发的频率、运行次数、其总 token 和每次运行 token,以及最后一次运行的时间

64 * **停止并重新创建的循环**:Claude Code 以任务的提示词作为行的键,因此您停止并重新创建的循环保持为一行64 * **停止并重新创建的循环**:Claude Code 以任务的提示词作为行的键,因此您停止并重新创建的循环保持为一行

65 65 

66按 `d` 或 `w` 在过去 24 小时和过去 7 天之间切换。这些数据是近似值,从此机器上的本地会话历史记录计算,因此不包括来自其他设备或 claude.ai 的使用情况。66按 `d` 或 `w` 在过去 24 小时和过去 7 天之间切换。这些数据是近似值,从此机器上的本地会话历史记录计算,因此不包括来自其他设备或 claude.ai 的使用情况。

67 67 

68在 [VS Code 扩展](/docs/zh-CN/vs-code#check-account-and-usage)中,归属份额和行为标志显示在"账户和使用情况"对话框中,带有"日"和"周"切换,不包括"循环"行。68在 [VS Code 扩展](/docs/zh-CN/vs-code#check-account-and-usage)中,归属份额和建议显示在"账户和使用情况"对话框中,带有"日"和"周"切换,不包括"循环"行。

69 

70#### 使用 fix 快捷键应用建议

71 

72当 `/usage` 页脚显示 `f to fix 2 of 3` 之类的提示时,按 `f` 可让 Claude Code 处理其能够处理的建议。`f` 快捷键需要 Claude Code v2.1.305 或更高版本。

73 

741. 在任何进行中的轮次结束后,Claude Code 会运行各行中显示的、前面不带 `run` 的每条 [`/effort`](/docs/zh-CN/model-config#adjust-effort-level) 命令。

752. 然后 Claude 会收到一条提示词,其中为它能够处理的其他每一行各包含一个步骤。该提示词要求 Claude 在做出每项更改之前先向您展示该更改。

76 

77要了解按 `f` 会如何处理您的每一行,请在第一列中找到该行的形式:

78 

79| 行的形式 | 示例行 | 按 `f` 时 |

80| :- | :- | :- |

81| 以前面不带 `run` 的 `/effort` 命令结尾 | `40% Switch from max to high effort · /effort high` | Claude Code 运行该命令 |

82| 以 `run` 加一条命令结尾 | `30% Compact before you step away · run /compact` | 此行不会有任何操作。请您自己在 Claude Code 提示符处运行该命令 |

83| 以其他任何内容结尾 | `25% Trim ~/code/api/CLAUDE.md · 49k tokens per request` | 对于其中部分行,Claude 会在提示词中获得一个步骤,其余行则不会有任何操作。如果 Claude 没有针对某一行向您展示任何更改,请您自己按照该建议操作 |

84 

85在 `f to fix 2 of 3` 中,第一个数字表示按 `f` 时 Claude Code 会处理的行数,第二个数字表示显示的行数。不含 `of` 的提示(例如 `f to fix both`)表示 Claude Code 会处理显示的每一行。

86 

87当 [Remote Control](/docs/zh-CN/remote-control) 已连接时,页脚不显示 `f` 提示。如果按 `f` 后 `/usage` 关闭并显示 `Nothing was sent. Turn off Remote Control to use fixes.`,说明在 `/usage` 打开期间 Remote Control 建立了连接。要再次使用 `f`,请[断开 Remote Control](/docs/zh-CN/remote-control#check-connection-status),然后在 Claude Code 提示符处运行 `/usage` 并再次按 `f`。

69 88 

70#### 检查您的使用额度支出89#### 检查您的使用额度支出

71 90 


367一个已经打开数小时的会话可能会使用远超你的活动量所暗示的计划限额,通常是由于以下原因之一:386一个已经打开数小时的会话可能会使用远超你的活动量所暗示的计划限额,通常是由于以下原因之一:

368 387 

369* **长上下文**:Claude Code 在每个请求中发送你与它的完整对话,每当 Claude 使用工具时,它会发送另一个请求,其中包含该批工具结果。使用 [prompt caching](/docs/zh-CN/prompt-caching),Claude Code 以 [缓存令牌速率](https://platform.claude.com/docs/en/about-claude/pricing) 重新读取该历史记录,因此即使在已打开一整天的会话中提出一行问题,仍然会为整个对话消耗使用量。请参阅 [主动管理上下文](#manage-context-proactively) 了解保持上下文较小的方法388* **长上下文**:Claude Code 在每个请求中发送你与它的完整对话,每当 Claude 使用工具时,它会发送另一个请求,其中包含该批工具结果。使用 [prompt caching](/docs/zh-CN/prompt-caching),Claude Code 以 [缓存令牌速率](https://platform.claude.com/docs/en/about-claude/pricing) 重新读取该历史记录,因此即使在已打开一整天的会话中提出一行问题,仍然会为整个对话消耗使用量。请参阅 [主动管理上下文](#manage-context-proactively) 了解保持上下文较小的方法

370* **缓存未命中**:在超过 [缓存生命周期](/docs/zh-CN/prompt-caching#cache-lifetime) 的中断后,您的第一条消息会错过缓存并重新处理您的完整上下文。在订阅上生命周期为一小时,一旦您开始使用 [使用额度](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans),生命周期会降至五分钟;在 API 密钥或云提供商上,默认为五分钟。要在使用使用额度时保持一小时的生命周期,请[自行选择 TTL](/docs/zh-CN/prompt-caching#choose-the-ttl-yourself)389* **缓存未命中**:在超过 [缓存生命周期](/docs/zh-CN/prompt-caching#cache-lifetime) 的中断后,您的第一条消息会错过缓存并重新处理您的完整上下文。请参阅 [您的请求使用哪种生命周期](/docs/zh-CN/prompt-caching#which-ttl-each-request-gets) 以及 [设置生命周期的控制方式](/docs/zh-CN/prompt-caching#choose-the-ttl-yourself)

371* **定时任务**:[会话范围的定时任务](/docs/zh-CN/scheduled-tasks)即使在会话处于空闲状态时也会按其间隔触发,每次都发送您的完整上下文390* **定时任务**:[会话范围的定时任务](/docs/zh-CN/scheduled-tasks)即使在会话处于空闲状态时也会按其间隔触发,每次都发送您的完整上下文

372* **跨会话消息**:当此会话处于空闲状态时,Claude Code 将 [来自你另一个会话的消息](/docs/zh-CN/cross-session-messaging) 作为新轮次传递,每次都发送你的完整上下文。要保留入站消息而不是传递它们,请将 [`crossSessionInbound`](/docs/zh-CN/settings-reference#crosssessioninbound) 设置为 `hold`391* **跨会话消息**:当此会话处于空闲状态时,Claude Code 将 [来自你另一个会话的消息](/docs/zh-CN/cross-session-messaging) 作为新轮次传递,每次都发送你的完整上下文。要保留入站消息而不是传递它们,请将 [`crossSessionInbound`](/docs/zh-CN/settings-reference#crosssessioninbound) 设置为 `hold`

373* **目标检查**:当后台工作使活跃的 [目标](/docs/zh-CN/goal) 保持等待时,Claude Code [要求 Claude 检查该工作](/docs/zh-CN/goal#background-work-defers-evaluation),即使会话处于空闲状态,启动发送你完整上下文的新轮次。Claude Code 在你的提示之间每个目标最多启动三个空闲检查。在 v2.1.246 之前,空闲检查是无限制的。要关闭检查,请将 [`CLAUDE_CODE_GOAL_CHECKIN_MINUTES`](/docs/zh-CN/env-vars) 设置为 `0`。空闲检查需要 Claude Code v2.1.236 或更高版本392* **目标检查**:当后台工作使活跃的 [目标](/docs/zh-CN/goal) 保持等待时,Claude Code [要求 Claude 检查该工作](/docs/zh-CN/goal#background-work-defers-evaluation),即使会话处于空闲状态,启动发送你完整上下文的新轮次。Claude Code 在你的提示之间每个目标最多启动三个空闲检查。在 v2.1.246 之前,空闲检查是无限制的。要关闭检查,请将 [`CLAUDE_CODE_GOAL_CHECKIN_MINUTES`](/docs/zh-CN/env-vars) 设置为 `0`。空闲检查需要 Claude Code v2.1.236 或更高版本


375* **代理队友**:每个活跃的 [队友](#agent-team-token-costs) 会继续消耗令牌,直到它退出394* **代理队友**:每个活跃的 [队友](#agent-team-token-costs) 会继续消耗令牌,直到它退出

376* **压缩**:`/compact` 读取它总结的对话,因此 [压缩大型上下文](/docs/zh-CN/prompt-caching#compacting-the-conversation) 本身就是一个大型请求。当你想要全新开始而不是连续性时,`/clear` 不消耗任何成本395* **压缩**:`/compact` 读取它总结的对话,因此 [压缩大型上下文](/docs/zh-CN/prompt-caching#compacting-the-conversation) 本身就是一个大型请求。当你想要全新开始而不是连续性时,`/clear` 不消耗任何成本

377 396 

378在 Pro、Max、Team 或 Enterprise 计划上,`/usage` 分解会标记占你最近使用量 10% 或更多的行为,例如长上下文或缓存未命中,每个都附带减少它的提示。397在 Pro、Max、Team 或 Enterprise 计划上,[`/usage` 分解](#plan-usage-breakdown)会针对占您最近使用量 10% 或更多的行为(例如长上下文或缓存未命中)建议相应的调整。

379 398 

380## 了解 Claude Code 行为的变化399## 了解 Claude Code 行为的变化

381 400 

Details

228* **截止时间之前**:如果模式或设置的更改允许该消息,Claude Code 会传递它。228* **截止时间之前**:如果模式或设置的更改允许该消息,Claude Code 会传递它。

229* **截止时间之后**:Claude Code 会丢弃该消息,并向其能够联系到的发送者报告该消息已过期。229* **截止时间之后**:Claude Code 会丢弃该消息,并向其能够联系到的发送者报告该消息已过期。

230 230 

231将 `dialogExpiry` 设置为 `"never"` 可将默认保留的消息保留到会话结束。由显式 `hold` 设置保留的消息不会过期;仅当之后适用 `accept` 时,Claude Code 才会传递它。231将 `dialogExpiry` 设置为 `"never"`,可将默认暂挂的消息保留到会话结束。由显式 `hold` 设置暂挂的消息不会过期;当之后有 `accept` 生效时,Claude Code 会投递该消息。

232 232 

233要让 `-p` 工作进程在无人值守的情况下接收消息,请在其 `--settings` 值中将 `crossSessionInbound` 设置为 `accept` 来启动它。在您的用户设置中设置 `accept` 也有效,但会应用于您运行的每个会话。233要让 `-p` 工作进程在无人值守的情况下接收消息,请在其 `--settings` 值中将 `crossSessionInbound` 设置为 `accept` 来启动它。在您的用户设置中设置 `accept` 也有效,但会应用于您运行的每个会话。

234 234 

desktop.md +15 −8

Details

6 6 

7> 充分利用 Claude Code Desktop:使用 Git 隔离的并行会话、拖放窗格布局、集成终端和文件编辑器、侧边聊天、计算机使用、从手机 Dispatch 会话、可视化 diff 审查、应用预览、PR 监控、连接器和企业配置。7> 充分利用 Claude Code Desktop:使用 Git 隔离的并行会话、拖放窗格布局、集成终端和文件编辑器、侧边聊天、计算机使用、从手机 Dispatch 会话、可视化 diff 审查、应用预览、PR 监控、连接器和企业配置。

8 8 

9Claude Desktop 应用有三个选项卡:**Chat** 用于对话,**Cowork** 用于 [Dispatch 和更长的代理工作](https://claude.com/product/cowork),**Code** 用于软件开发。本页是 Code 选项卡的参考。9在 Claude Desktop 应用中,Claude Code 就是 **Code** 选项卡。该应用还包含聊天和 [Cowork](https://claude.com/product/cowork),后者负责 Dispatch 和更长的代理工作。本页是 Code 选项卡的参考。

10 10 

11> **[下载 macOS 版本](https://claude.ai/api/desktop/darwin/universal/dmg/latest/redirect?utm_source=claude_code\&utm_medium=docs)**11> **[下载 macOS 版本](https://claude.ai/api/desktop/darwin/universal/dmg/latest/redirect?utm_source=claude_code\&utm_medium=docs)**

12>12>


214 214 

215### 查看会话详细信息215### 查看会话详细信息

216 216 

217会话详细信息面板是聊天旁的一组卡片,显示会话在何处运行、它更改了什么以及它正在运行什么。该面板在您启动会话后出现,前提是聊天区域足够宽。217会话详细信息面板是聊天旁的一组卡片,显示会话在何处运行、它更改了什么、它正在运行什么以及其上下文使用情况。该面板在您启动会话后出现,前提是聊天区域足够宽。

218 218 

219#### 隐藏或显示会话详细信息面板219#### 隐藏或显示会话详细信息面板

220 220 


298 298 

299### 检查使用情况299### 检查使用情况

300 300 

301点击模型选择器旁的使用环形图来查看您当前的上下文窗口使用情况和您的计划在该期间的使用情况。上下文使用是按会话的;计划使用在所有 Claude Code 使用入口上共享。301要查看此会话的上下文窗口已使用了多少,请先确定您的 Code 选项卡布局:

302 

303* **当前布局**:[会话详细信息面板](#see-session-details)中 **Context** 卡片的标题以百分比形式显示该值。打开该卡片可按类别查看占用上下文窗口的内容。

304* **[早期布局](#check-which-layout-you-have)**:点击模型选择器旁的使用环形图。其弹出窗口会显示您的上下文窗口使用情况。

305 

306在任一布局中,在输入框中输入 `/context`,即可在聊天中打印此会话上下文窗口的按类别细分。

307 

308两种布局的模型选择器旁都有使用环形图。点击它可查看您的计划使用情况,该使用情况在您所有的 Claude Code 使用入口之间共享。

302 309 

303## 让 Claude 使用你的计算机310## 让 Claude 使用你的计算机

304 311 


398 405 

399> [!NOTE]406> [!NOTE]

400>407>

401> 会话隔离需要 [Git](https://git-scm.com/downloads)。大多数 Mac 默认已包含 Git。在终端中运行 `git --version` 进行检查;如果输出了版本号,则说明 Git 已安装。如果遇到 Git 错误,请在 [Cowork 选项卡](https://claude.com/product/cowork)中请 Claude 帮助排查您的设置。408> 会话隔离需要 [Git](https://git-scm.com/downloads)。大多数 Mac 默认已包含 Git。在终端中运行 `git --version` 进行检查;如果输出了版本号,则说明 Git 已安装。如果遇到 Git 错误,请在 [Cowork](https://claude.com/product/cowork) 中请 Claude 帮助排查您的设置。

402 409 

403### 向会话添加文件夹410### 向会话添加文件夹

404 411 


462 469 

463当 Claude 通过此使用入口向另一个会话发送消息时,Claude Code 会在对方会话中将其显示为一张卡片,卡片标有发送会话的标题和返回链接,因此您始终可以知道消息来自何处。如果接收会话正在执行任务,Claude Code 会暂存该消息,Claude 会在当前工作完成后读取它。接收方的 Claude 可以回复,Claude Code 会通过此使用入口将回复传回。Claude 无法向已存档的会话发送消息,并会在消息未送达时告知您。470当 Claude 通过此使用入口向另一个会话发送消息时,Claude Code 会在对方会话中将其显示为一张卡片,卡片标有发送会话的标题和返回链接,因此您始终可以知道消息来自何处。如果接收会话正在执行任务,Claude Code 会暂存该消息,Claude 会在当前工作完成后读取它。接收方的 Claude 可以回复,Claude Code 会通过此使用入口将回复传回。Claude 无法向已存档的会话发送消息,并会在消息未送达时告知您。

464 471 

465Claude Code 在跨会话时应用四项安全行为:472Claude Code 在跨会话时应用三项安全行为:

466 473 

467* 在 Claude 存档会话之前,您会看到一张批准卡片,但自动模式和 Bypass permissions 模式除外,在这两种模式下 Claude 可以在没有批准卡片的情况下存档会话。如需在存档前被询问,请切换到 Manual。474* 在 Claude 存档会话之前,您会看到一张批准卡片,但自动模式和 Bypass permissions 模式除外,在这两种模式下 Claude 可以在没有批准卡片的情况下存档会话。如需在存档前被询问,请切换到 Manual。

468* 通过此使用入口,Claude 无法从无人查看的会话(例如定时任务运行)发送跨会话消息,也无法向此类会话发送消息。

469* Claude Code 会根据接收会话的[入站控制](/docs/zh-CN/cross-session-messaging#control-inbound-messages)检查来自此使用入口的每条消息,即使接收会话本身未启用[跨会话消息传递](/docs/zh-CN/cross-session-messaging#availability)。如果您在接收会话中将 [`crossSessionInbound`](/docs/zh-CN/settings-reference#crosssessioninbound) 设置为 `refuse`,Claude Code 会丢弃来自此使用入口的消息。Claude Code 会向 Claude 桌面应用报告该拒绝。在 v2.1.234 之前,对于未启用跨会话消息传递的接收会话,Claude Code 会丢弃来自此使用入口的所有消息。475* Claude Code 会根据接收会话的[入站控制](/docs/zh-CN/cross-session-messaging#control-inbound-messages)检查来自此使用入口的每条消息,即使接收会话本身未启用[跨会话消息传递](/docs/zh-CN/cross-session-messaging#availability)。如果您在接收会话中将 [`crossSessionInbound`](/docs/zh-CN/settings-reference#crosssessioninbound) 设置为 `refuse`,Claude Code 会丢弃来自此使用入口的消息。Claude Code 会向 Claude 桌面应用报告该拒绝。在 v2.1.234 之前,对于未启用跨会话消息传递的接收会话,Claude Code 会丢弃来自此使用入口的所有消息。

470* Claude Code 会引用每条传入消息并注明其来自哪个发送会话,且 Claude 在据此执行操作时仍遵循接收会话自身的权限设置。476* Claude Code 会引用每条传入消息并注明其来自哪个发送会话,且 Claude 在据此执行操作时仍遵循接收会话自身的权限设置。

471 477 


514 520 

515### 来自 Dispatch 的会话521### 来自 Dispatch 的会话

516 522 

517[Dispatch](https://support.claude.com/en/articles/13947068) 是一个与 Claude 的持久对话,位于 [Cowork](https://claude.com/product/cowork) 选项卡中。您向 Dispatch 发送任务消息,由它决定如何处理。523[Dispatch](https://support.claude.com/en/articles/13947068) 是一个与 Claude 的持久对话,位于 [Cowork](https://claude.com/product/cowork) 中。您向 Dispatch 发送任务消息,由它决定如何处理。

518 524 

519任务可以通过两种方式成为 Code 会话:您直接提出要求,例如"打开一个 Claude Code 会话并修复登录错误";或者 Dispatch 判断该任务属于开发工作,并自行创建一个会话。通常会路由到 Code 的任务包括修复错误、更新依赖、运行测试或创建 Pull Request。研究、文档编辑和电子表格工作则保留在 Cowork 中。525任务可以通过两种方式成为 Code 会话:您直接提出要求,例如"打开一个 Claude Code 会话并修复登录错误";或者 Dispatch 判断该任务属于开发工作,并自行创建一个会话。通常会路由到 Code 的任务包括修复错误、更新依赖、运行测试或创建 Pull Request。研究、文档编辑和电子表格工作则保留在 Cowork 中。

520 526 


528 534 

529## 扩展 Claude Code535## 扩展 Claude Code

530 536 

531连接外部服务、添加可重用工作流、自定义 Claude 的行为并配置预览服务器。要在一个地方管理连接器、skills 和插件,请点击侧边栏中的**自定义**。[Cowork](https://claude.com/product/cowork) 标签页在桌面应用中从此自定义配置获取其 skills、插件和连接器,该配置通过你的 claude.ai 账户同步,而不是从 CLI 的 `~/.claude` 目录。537连接外部服务、添加可重用工作流、自定义 Claude 的行为并配置预览服务器。要在一个地方管理连接器、skill 和插件,请点击侧边栏中的**自定义**。桌面应用中的 [Cowork](https://claude.com/product/cowork) 从此自定义配置获取其 skill、插件和连接器,该配置通过您的 claude.ai 账户同步,而不是从 CLI 的 `~/.claude` 目录获取。

532 538 

533Claude Code 还会在你使用同一账户登录的终端会话中加载为你的 claude.ai 账户启用的 skills 和插件。请参阅[从 claude.ai 同步的 Skills](/docs/zh-CN/skills#how-synced-skills-behave) 和[从 claude.ai 同步的插件](/docs/zh-CN/plugins/loading#synced-plugins)。539Claude Code 还会在你使用同一账户登录的终端会话中加载为你的 claude.ai 账户启用的 skills 和插件。请参阅[从 claude.ai 同步的 Skills](/docs/zh-CN/skills#how-synced-skills-behave) 和[从 claude.ai 同步的插件](/docs/zh-CN/plugins/loading#synced-plugins)。

534 540 


1659*.livepreview.claude.ai1665*.livepreview.claude.ai

1660claude.com1666claude.com

1661platform.claude.com1667platform.claude.com

1668sso.claude.com

1662*.livepreview.claude.app1669*.livepreview.claude.app

1663*.claudeusercontent.com1670*.claudeusercontent.com

1664*.claudemcpcontent.com1671*.claudemcpcontent.com

Details

21 21 

22### Cowork 要求22### Cowork 要求

23 23 

24Cowork 是 [Dispatch 和更长的代理工作](https://claude.com/docs/cowork/overview) 的桌面选项卡。在 Linux 上,Cowork 在桌面应用程序使用 QEMU 和 KVM 托管的虚拟机中运行这些任务。要使用 Cowork,您的机器需要:24Cowork 是桌面应用程序中用于 [Dispatch 和更长的代理工作](https://claude.com/docs/cowork/overview) 的部分。在 Linux 上,Cowork 在桌面应用程序使用 QEMU 和 KVM 托管的虚拟机中运行这些任务。要使用 Cowork,您的机器需要:

25 25 

26* **硬件虚拟化**:在您的固件设置中启用。没有它,Cowork 选项卡会报告"Cowork requires hardware virtualization (KVM)"。26* **硬件虚拟化**:在您的固件设置中启用。没有它,Cowork 会报告"Cowork requires hardware virtualization (KVM)"。

27* **QEMU 和 UEFI 固件**:在 x86\_64 上为 `qemu-system-x86`、`ovmf` 和 `virtiofsd`,或在 arm64 上为 `qemu-system-arm`、`qemu-efi-aarch64` 和 `virtiofsd`。`apt install claude-desktop` 默认将它们作为推荐包安装。如果您使用 `--no-install-recommends` 安装,或您的系统是跳过推荐包的最小镜像,Cowork 选项卡会报告"Cowork requires QEMU"并显示要运行的 `apt install` 命令。Ubuntu 22.04 没有 `virtiofsd` 包;应用程序在那里使用捆绑的副本。27* **QEMU 和 UEFI 固件**:在 x86\_64 上为 `qemu-system-x86`、`ovmf` 和 `virtiofsd`,或在 arm64 上为 `qemu-system-arm`、`qemu-efi-aarch64` 和 `virtiofsd`。`apt install claude-desktop` 默认将它们作为推荐包安装。如果您使用 `--no-install-recommends` 安装,或您的系统是跳过推荐包的最小镜像,Cowork 会报告"Cowork requires QEMU"并显示要运行的 `apt install` 命令。Ubuntu 22.04 没有 `virtiofsd` 包;应用程序在那里使用捆绑的副本。

28* **访问 `/dev/kvm`**:使用 `sudo usermod -aG kvm $USER` 将您的用户添加到 `kvm` 组,然后注销并重新登录。某些桌面环境会向已登录的用户授予对 `/dev/kvm` 的访问权限而无需该组,但 Cowork 还需要 `/dev/vhost-vsock`,只有 `kvm` 组成员才能打开。即使 `/dev/kvm` 已经对您有效,也要加入该组。28* **访问 `/dev/kvm`**:使用 `sudo usermod -aG kvm $USER` 将您的用户添加到 `kvm` 组,然后注销并重新登录。某些桌面环境会向已登录的用户授予对 `/dev/kvm` 的访问权限而无需该组,但 Cowork 还需要 `/dev/vhost-vsock`,只有 `kvm` 组成员才能打开。即使 `/dev/kvm` 已经对您有效,也要加入该组。

29 29 

30应用程序在启动时检查这些要求一次:安装包后重新启动它,加入组后注销并重新登录。如果 `/dev/vhost-vsock` 缺失且您运行的内核在 `/lib/modules` 下没有模块目录,Cowork 选项卡会报告内核不包含 Cowork 需要的虚拟化支持,并且无法手动添加。这种组合在 ChromeOS 和基于容器的 Linux 环境中很常见。30应用程序在启动时检查这些要求一次:安装包后重新启动它,加入组后注销并重新登录。如果 `/dev/vhost-vsock` 缺失且您运行的内核在 `/lib/modules` 下没有模块目录,Cowork 会报告内核不包含 Cowork 需要的虚拟化支持,并且无法手动添加。这种组合在 ChromeOS 和基于容器的 Linux 环境中很常见。

31 31 

32## 安装32## 安装

33 33 


71 71 

72从应用启动器启动 **Claude**,或从终端运行 `claude-desktop`,然后使用您的 Anthropic 账户登录。72从应用启动器启动 **Claude**,或从终端运行 `claude-desktop`,然后使用您的 Anthropic 账户登录。

73 73 

74Linux 应用的登录方式与 macOS 和 Windows 上相同:使用 claude.ai 订阅或通过您组织的 SSO。Desktop 不直接接受 Claude Console API 密钥;请使用 [CLI](/docs/zh-CN/quickstart) 进行 API 密钥身份验证。对于路由 Desktop 到 Google Cloud 的 Agent Platform 或 LLM 网关的企业部署,请参阅 [Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/overview) 和 [网络配置](/docs/zh-CN/network-config)。74Linux 应用的登录方式与 macOS 和 Windows 上相同:使用 claude.ai 订阅或通过您组织的 SSO。如需使用 API 密钥身份验证,请使用 [CLI](/docs/zh-CN/quickstart)。如果要改为将 Desktop 与 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 或 LLM 网关配合使用,请参阅 [Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/overview)。有关这些部署中的代理服务器和自定义证书颁发机构,请参阅 [网络配置](/docs/zh-CN/network-config)。

75 75 

76### 从下载的文件安装76### 从下载的文件安装

77 77 


153 153 

154### Cowork 不可用154### Cowork 不可用

155 155 

156如果 Cowork 选项卡显示以下消息之一,请修复它命名的要求,然后重新启动应用:156如果 Cowork 显示以下消息之一,请修复它指出的要求,然后重新启动应用:

157 157 

158* **Cowork 需要 QEMU**:安装消息列出的 [QEMU 和 UEFI 固件软件包](#cowork-requirements)。158* **Cowork 需要 QEMU**:安装消息列出的 [QEMU 和 UEFI 固件软件包](#cowork-requirements)。

159* **Cowork 需要硬件虚拟化 (KVM)**:在您的固件设置中打开[硬件虚拟化](#cowork-requirements)。159* **Cowork 需要硬件虚拟化 (KVM)**:在您的固件设置中打开[硬件虚拟化](#cowork-requirements)。

Details

6 6 

7> 安装 Claude 桌面应用,打开 Code 选项卡,并在您计算机上的项目文件夹中开始您的第一个 Claude Code 会话。7> 安装 Claude 桌面应用,打开 Code 选项卡,并在您计算机上的项目文件夹中开始您的第一个 Claude Code 会话。

8 8 

9桌面应用为您提供具有图形界面的 Claude Code,因此您可以要求 Claude 处理计算机上文件夹中的代码,并查看其更改,而无需使用终端。本页面将指导您安装应用并在 **Code** 选项卡中开始您的第一个会话。Claude Code 需要 [Pro、Max、Team 或 Enterprise 订阅](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=desktop_quickstart_pricing)。9桌面应用为您提供具有图形界面的 Claude Code。您可以要求 Claude 处理计算机上文件夹中的代码,并查看其更改,而无需使用终端。

10 

11Claude Code 位于应用侧边栏顶部的 **Code** 选项卡中。本页面将指导您安装应用并在其中开始您的第一个会话。Claude Code 需要 [Pro、Max、Team 或 Enterprise 订阅](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=desktop_quickstart_pricing)。

10 12 

11> **[下载 macOS 版本](https://claude.ai/api/desktop/darwin/universal/dmg/latest/redirect?utm_source=claude_code\&utm_medium=docs)**13> **[下载 macOS 版本](https://claude.ai/api/desktop/darwin/universal/dmg/latest/redirect?utm_source=claude_code\&utm_medium=docs)**

12>14>


28>30>

29> * **已经设置完成**:请参阅[使用 Claude Code Desktop](/docs/zh-CN/desktop)了解 Code 选项卡可以执行的所有操作31> * **已经设置完成**:请参阅[使用 Claude Code Desktop](/docs/zh-CN/desktop)了解 Code 选项卡可以执行的所有操作

30> * **想在您的终端中使用 `claude`**:[单独安装 CLI](/docs/zh-CN/quickstart)32> * **想在您的终端中使用 `claude`**:[单独安装 CLI](/docs/zh-CN/quickstart)

31 33> * **使用 Chat 或 Cowork**:请参阅 [Claude 帮助中心](https://support.claude.com/)

32桌面应用有三个选项卡:34> * **需要了解有关安装或部署桌面应用的更多信息**:请参阅 [Claude Desktop 支持文章](https://support.claude.com/en/collections/16163169-claude-desktop)

33 

34* **Chat**:无文件访问权限的常规对话,类似于 claude.ai。

35* **Cowork**:一个自主后台代理,在您进行其他工作时独立处理任务。

36* **Code**:一个交互式编码助手,可直接访问您的本地文件。根据权限模式,您可以在 Claude 提出更改时批准每项更改,或在 Claude 进行更改后审查这些更改。

37 

38Chat 和 Cowork 在 [Claude 帮助中心](https://support.claude.com/)中有介绍;安装和部署桌面应用在 [Claude Desktop 支持文章](https://support.claude.com/en/collections/16163169-claude-desktop)中有介绍。本页面重点关注 **Code** 选项卡。

39 35 

40## 安装36## 安装

41 37 


45 41 

46**2. 打开 Code 选项卡**42**2. 打开 Code 选项卡**

47 43 

48点击顶部中心的 **Code** 选项卡。如果点击 Code 提示您升级,您需要先[订阅付费计划](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=desktop_quickstart_upgrade)。如果提示您在线登录,请完成登录并重启应用。如果您看到 403 错误,请参阅[身份验证故障排除](/docs/zh-CN/desktop#403-or-authentication-errors-in-the-code-tab)。44点击侧边栏顶部的 **Code** 选项卡。如果选项卡仅显示图标,将鼠标悬停在图标上即可查看其名称。如果点击 **Code** 后出现提示或错误,请按照对应的解决方法操作:

45 

46* **提示升级**:您需要先[订阅付费计划](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=desktop_quickstart_upgrade)

47* **提示在线登录**:完成登录并重启应用

48* **403 错误**:请参阅[身份验证故障排除](/docs/zh-CN/desktop#403-or-authentication-errors-in-the-code-tab)

49 49 

50桌面应用包含 Claude Code,因此您无需安装 Node.js 或 CLI 即可使用 Code 选项卡。50桌面应用包含 Claude Code,因此您无需安装 Node.js 或 CLI 即可使用 Code 选项卡。

51 51 


87 87 

88查看输入框下方一行中的[权限模式](/docs/zh-CN/desktop#choose-a-permission-mode),了解 Claude 是否会等待您的批准:88查看输入框下方一行中的[权限模式](/docs/zh-CN/desktop#choose-a-permission-mode),了解 Claude 是否会等待您的批准:

89 89 

90* **自动或接受编辑**:Claude 应用其文件更改,并显示一个指示器(如 `+12 -1`),以便您可以在差异视图中审查它们90* **自动或接受编辑**:Claude 应用其文件更改,并显示一个指示器(如 `+12 -1`),以便您可以在 [diff 视图](/docs/zh-CN/desktop#review-changes-with-diff-view)中审查它们

91* **手动**:Claude 提议每项更改,并在应用前等待您的批准91* **手动**:Claude 提议每项更改,并在应用前等待您的批准

92 92 

93在手动模式下,您将看到:93在手动模式下,您将看到:

94 94 

951. 一个 [差异视图](/docs/zh-CN/desktop#review-changes-with-diff-view),显示每个文件中将发生的确切更改951. 一个 diff,准确显示将要发生的更改

962. 接受/拒绝按钮以批准或拒绝每项更改962. 用于批准或拒绝每项更改的按钮

973. Claude 处理您的请求时的实时更新973. Claude 处理您的请求时的实时更新

98 98 

99## 接下来呢?99## 接下来呢?

Details

28| 访问本地文件 | 否(新克隆) | 是 | 是 |28| 访问本地文件 | 否(新克隆) | 是 | 是 |

29| MCP servers | 每个任务配置的连接器 | [配置文件](/docs/zh-CN/mcp)和连接器 | 从会话继承 |29| MCP servers | 每个任务配置的连接器 | [配置文件](/docs/zh-CN/mcp)和连接器 | 从会话继承 |

30| 权限提示 | 否(自主运行) | 每个任务可配置 | 从会话继承 |30| 权限提示 | 否(自主运行) | 每个任务可配置 | 从会话继承 |

31| 可自定义的计划 | 通过 CLI 中的 `/schedule` | 是 | 是 |31| 可自定义的计划 | 是 | 是 | 是 |

32| 最小间隔 | 1 小时 | 1 分钟 | 1 分钟 |32| 最小间隔 | 1 小时 | 由 Claude 设置时为 1 分钟,[在表单中为 1 小时](/docs/zh-CN/desktop-scheduled-tasks#schedule-options) | 1 分钟 |

33 33 

34> [!TIP]34> [!TIP]

35>35>


61 61 

62**5. 启用 Only on this computer**62**5. 启用 Only on this computer**

63 63 

64暂时跳过 **Trigger** 卡片,展开其下方的 **Advanced settings**。在 **General** 选项卡上,启用 **Only on this computer**。启用后,任务会在您的计算机上的本地文件夹中运行,并且 **Trigger** 卡片会提供[计划选项](#schedule-options)中列出的预设。64暂时跳过 **Trigger** 卡片,展开其下方的 **Advanced settings**。在 **General** 选项卡上,启用 **Only on this computer**。启用后,任务会在您的计算机上的本地文件夹中运行。

65 65 

66如果该开关不可用,请清除仓库或 GitHub 事件或 API 触发器,因为这些设置会使该任务成为[云端定时任务](/docs/zh-CN/routines)。66如果该开关不可用,请清除仓库或 GitHub 事件或 API 触发器,因为这些设置会使该任务成为[云端定时任务](/docs/zh-CN/routines)。

67 67 


81 81 

82单击 **Create**。如果您尚未信任该文件夹,Desktop 会在此时要求您信任它。随后将打开该任务的详情页面。82单击 **Create**。如果您尚未信任该文件夹,Desktop 会在此时要求您信任它。随后将打开该任务的详情页面。

83 83 

84在详情页面上,单击铅笔图标以打开 [**Edit** 表单](#manage-scheduled-tasks)。在该表单中,您可以更改 Desktop 根据您的指令填写的 **Description**、选择 **Worktree**,或将计划切换为 **Manual**。84在详情页面上,单击铅笔图标以打开 [**Edit** 表单](#manage-scheduled-tasks)。在该表单中,您可以更改 Desktop 根据您的指令填写的 **Description**、选择 **Worktree**,或将计划切换为 **Manual** 或 **Custom**。

85 85 

86您也可以通过在任何会话中描述您想要的内容来创建任务。例如,"设置一个每天早上 9 点运行的日常代码审查"会创建一个周期性任务。像"提醒我明天下午 3 点检查部署"这样的请求会创建一个一次性任务,该任务在触发后会自行禁用。86您也可以通过在任何会话中描述您想要的内容来创建任务。例如,"设置一个每天早上 9 点运行的日常代码审查"会创建一个周期性任务。像"提醒我明天下午 3 点检查部署"这样的请求会创建一个一次性任务,该任务在触发后会自行禁用。

87 87 


95* **Description**:输入描述。在您输入描述之前,**Create** 将保持不可用。95* **Description**:输入描述。在您输入描述之前,**Create** 将保持不可用。

96* **指令输入框**:输入任务运行时 Claude 应该执行的操作。从输入框中的菜单选择权限模式和模型。96* **指令输入框**:输入任务运行时 Claude 应该执行的操作。从输入框中的菜单选择权限模式和模型。

97* **Working folder**:选择任务运行所在的文件夹。在您选择文件夹之前,**Create** 将保持不可用。97* **Working folder**:选择任务运行所在的文件夹。在您选择文件夹之前,**Create** 将保持不可用。

98* **Trigger**:选择计划。**Custom** 接受 cron 表达式。有关其他预设,请参阅[计划选项](#schedule-options)。98* **Trigger**:选择计划。有关预设,请参阅[计划选项](#schedule-options)。

99 99 

100单击 **Create**。随后将打开该任务的详情页面。100单击 **Create**。随后将打开该任务的详情页面。

101 101 

102## 调度选项102## 调度选项

103 103 

104当您在 **Advanced settings** 下启用 **Only on this computer** 时,**Trigger** 卡片提供 Hourly、Daily、Weekdays 和 Weekly 选项。任务的 [**Edit** 表单](#manage-scheduled-tasks)还提供 **Manual** 选项。104当您在 **Advanced settings** 下启用 **Only on this computer** 时,**Trigger** 卡片提供 Hourly、Daily、Weekdays 和 Weekly 选项。若要为此类任务使用 **Manual** 或 **Custom**,请在创建任务后打开其 [**Edit** 表单](#manage-scheduled-tasks)。该表单以及[顶部带有 **Only on this computer** 的对话框](#dialog-with-only-on-this-computer-at-the-top)提供以下六个选项:

105 105 

106* **Hourly**:每小时运行一次106* **Hourly**:每小时运行一次

107* **Daily**:每天在您选择的本地时间运行107* **Daily**:每天在您选择的本地时间运行

108* **Weekdays**:与 Daily 相同,但跳过星期六和星期日108* **Weekdays**:与 Daily 相同,但跳过星期六和星期日

109* **Weekly**:显示时间选择器和日期选择器109* **Weekly**:显示时间选择器和日期选择器

110* **Manual**:无调度,仅在您单击 **Run now** 时运行。适用于保存您按需触发的提示词110* **Manual**:无调度,仅在您单击 **Run now** 时运行。适用于保存您按需触发的提示词

111* **Custom**:按照您输入的 cron 表达式运行,该表达式以您的本地时间计算,例如 `0 9 * * *` 表示每天上午 9:00。星期和月份请使用数字表示,因为不接受其名称。星期日为 `0`,而不是 `7`。表单会拒绝运行频率高于每小时一次的表达式。

111 112 

112对于选择器不提供的间隔,例如每 15 分钟、每月的第一天或在特定未来时间的单次运行,请在任何 Desktop 会话中询问 Claude 来设置调度。使用纯语言;例如,"安排一个任务每 6 小时运行一次所有测试。"113您也可以在任何 Desktop 会话中请 Claude 设置调度。Claude 不受每小时一次的限制,并且可以设置在未来某个时间的单次运行。例如,可以要求"每 30 分钟运行一次测试套件"或"下周一上午 9 点,总结自周五以来合并的 Pull Request"。

113 114 

114## 定期任务如何运行115## 定期任务如何运行

115 116 


121>122>

122> 对于需要在计算机关闭时运行或应该通过 API 调用或 GitHub 事件触发的任务,请改为创建[云端定时任务](/docs/zh-CN/routines)。123> 对于需要在计算机关闭时运行或应该通过 API 调用或 GitHub 事件触发的任务,请改为创建[云端定时任务](/docs/zh-CN/routines)。

123 124 

124当本地任务触发时,新会话会在侧边栏的 **Scheduled** 部分下出现。打开它以查看 Claude 做了什么、审查更改或响应权限提示。Claude 可以编辑文件、运行命令、创建提交和打开 Pull Request,与您自己启动的会话相同。125### 查找某次运行的会话

126 

127要打开某次运行所启动的会话,请前往该任务的[详情页面](#manage-scheduled-tasks),然后在 **History** 列表中点击该次运行所在的行。

128 

129侧边栏的会话列表中也可以显示 **Scheduled** 分组,每个任务对应一行。要打开某个任务最近一次运行的会话,请在该分组中点击该任务所在的行。要显示该分组,请先[确认您使用的是哪种布局](/docs/zh-CN/desktop#check-which-layout-you-have):

130 

131* **当前布局**:打开[**Group and sort** 菜单](/docs/zh-CN/desktop#organize-and-find-sessions),选择 **Show**,然后选择 **Scheduled**。该分组默认处于折叠状态,因此请点击其标题将其展开。当您至少有一个任务处于 **Active** 状态(即任务详情页面所显示的 **Status**)时,**Show** 中才会列出 **Scheduled**。如果未列出,请使用 **History** 列表,无论该分组是否显示,它都可以使用。

132* **早期布局**:该分组直接显示在会话列表中,无需启用任何选项

133 

134无论通过哪种方式进入某次运行的会话,您都可以查看 Claude 做了什么、审查更改并响应权限提示。Claude 可以编辑文件、运行命令、创建提交和打开 Pull Request,与您自己启动的会话相同。

125 135 

126## 错过的运行136## 错过的运行

127 137 


131 141 

132## 定期任务的权限142## 定期任务的权限

133 143 

134每个任务都有自己的权限模式,您在创建或编辑任务时设置。来自 `~/.claude/settings.json` 的允许规则也适用于定期任务会话。如果任务在 [Manual 模式](/docs/zh-CN/desktop#choose-a-permission-mode)下运行并需要运行它没有权限的工具,运行将停滞,直到您批准它。会话保持在侧边栏中打开,以便您稍后可以回答。144每个任务都有自己的权限模式,您在创建或编辑任务时设置。来自 `~/.claude/settings.json` 的允许规则也适用于定时任务会话。如果任务在 [Manual 模式](/docs/zh-CN/desktop#choose-a-permission-mode)下运行并需要运行它没有权限的工具,运行将停滞,直到您批准它。要批准它,请[找到该运行的会话](#find-a-runs-session)并在其中回答权限提示。

135 145 

136为了避免停滞,在创建任务后单击 **Run now**,查看权限提示,并为每个提示选择"always allow"。该任务的未来运行会自动批准相同的工具,无需提示。您可以从任务的详细信息页面查看和撤销这些批准。146为了避免停滞,在创建任务后单击 **Run now**,查看权限提示,并为每个提示选择"always allow"。该任务的未来运行会自动批准相同的工具,无需提示。您可以从任务的详细信息页面查看和撤销这些批准。

137 147 


146* **Edit**:更改 instructions、schedule、folder 或其他设置156* **Edit**:更改 instructions、schedule、folder 或其他设置

147* **Review history**:查看每次过去的运行,包括跳过的运行。将鼠标悬停在跳过的条目上以查看原因:您的计算机处于睡眠状态、前一次运行仍在进行中,或其他定期任务已在运行。单击 **Show more** 以加载较早的条目。157* **Review history**:查看每次过去的运行,包括跳过的运行。将鼠标悬停在跳过的条目上以查看原因:您的计算机处于睡眠状态、前一次运行仍在进行中,或其他定期任务已在运行。单击 **Show more** 以加载较早的条目。

148* **Review allowed permissions**:从 **Always allowed** 面板查看和撤销此任务的已保存工具批准158* **Review allowed permissions**:从 **Always allowed** 面板查看和撤销此任务的已保存工具批准

149* **Delete**:删除任务并存档它创建的所有会话。确认对话框中会出现 **Also delete files on disk** 复选框;选中它以同时删除任务的 `SKILL.md` 文件和 `~/.claude/scheduled-tasks/` 中的关联数据。159* **Delete**:删除任务。该任务创建的会话会被[存档](/docs/zh-CN/desktop#organize-and-find-sessions),而不是被删除。存放任务 `SKILL.md` 文件的文件夹会保留在磁盘上的 `~/.claude/scheduled-tasks/<task-name>/` 中;如果您设置了 [`CLAUDE_CONFIG_DIR`](/docs/zh-CN/env-vars) 变量,则保留在其下的 `scheduled-tasks/<task-name>/` 中。要删除该文件夹,请您自行删除。

150 160 

151您也可以通过在任何 Desktop 会话中询问 Claude 来列出、创建、编辑和暂停任务。例如,"pause my dependency-audit task"或"show me my scheduled tasks"。要删除任务,请使用其详细信息页面上的 **Delete** 按钮。161您也可以通过在任何 Desktop 会话中询问 Claude 来列出、创建、编辑和暂停任务。例如,"pause my dependency-audit task"或"show me my scheduled tasks"。要删除任务,请使用其详细信息页面上的 **Delete** 按钮。

152 162 

env-vars.md +10 −19

Details

124> * `DISABLE_TELEMETRY`124> * `DISABLE_TELEMETRY`

125> * `DISABLE_ERROR_REPORTING`125> * `DISABLE_ERROR_REPORTING`

126> * `CLAUDE_CODE_TMUX_TRUECOLOR`126> * `CLAUDE_CODE_TMUX_TRUECOLOR`

127> * `FALLBACK_FOR_ALL_PRIMARY_MODELS`

128> * `IS_DEMO`127> * `IS_DEMO`

129>128>

130> 另有一个变量有其自己的规则:`FORCE_HYPERLINK` 读取一个数字,因此只有 `0` 会将其关闭。每个变量所在行也会说明其自身的规则。129> 另有一个变量有其自己的规则:`FORCE_HYPERLINK` 读取一个数字,因此只有 `0` 会将其关闭。每个变量所在行也会说明其自身的规则。


136| `ANTHROPIC_AWS_API_KEY` | 用于 [Claude Platform on AWS](/docs/zh-CN/claude-platform-on-aws) 的工作区 API 密钥,在 AWS Console 中生成。作为 `x-api-key` 发送,优先于 AWS SigV4 |135| `ANTHROPIC_AWS_API_KEY` | 用于 [Claude Platform on AWS](/docs/zh-CN/claude-platform-on-aws) 的工作区 API 密钥,在 AWS Console 中生成。作为 `x-api-key` 发送,优先于 AWS SigV4 |

137| `ANTHROPIC_AWS_BASE_URL` | 覆盖 [Claude Platform on AWS](/docs/zh-CN/claude-platform-on-aws) 端点 URL。用于自定义区域或通过 [LLM 网关](/docs/zh-CN/llm-gateway)路由时。默认为 `https://aws-external-anthropic.{region}.api.aws`。Claude Code 按照[与 Amazon Bedrock 相同的优先级](/docs/zh-CN/amazon-bedrock#3-configure-claude-code)解析区域 |136| `ANTHROPIC_AWS_BASE_URL` | 覆盖 [Claude Platform on AWS](/docs/zh-CN/claude-platform-on-aws) 端点 URL。用于自定义区域或通过 [LLM 网关](/docs/zh-CN/llm-gateway)路由时。默认为 `https://aws-external-anthropic.{region}.api.aws`。Claude Code 按照[与 Amazon Bedrock 相同的优先级](/docs/zh-CN/amazon-bedrock#3-configure-claude-code)解析区域 |

138| `ANTHROPIC_AWS_WORKSPACE_ID` | [Claude Platform on AWS](/docs/zh-CN/claude-platform-on-aws) 必需。在每个请求中作为 `anthropic-workspace-id` 标头发送 |137| `ANTHROPIC_AWS_WORKSPACE_ID` | [Claude Platform on AWS](/docs/zh-CN/claude-platform-on-aws) 必需。在每个请求中作为 `anthropic-workspace-id` 标头发送 |

139| `ANTHROPIC_BASE_URL` | 覆盖 API 端点,以通过代理或网关路由请求。当设置为非第一方主机时,[MCP 工具搜索](/docs/zh-CN/mcp#scale-with-mcp-tool-search)默认禁用。如果您的代理会转发 `tool_reference` 块,请设置 `ENABLE_TOOL_SEARCH=true`。自 v2.1.196 起,当此变量指向 `api.anthropic.com` 以外的主机时,[Remote Control](/docs/zh-CN/remote-control#requirements) 会被禁用,与其在 Amazon Bedrock、Google Cloud's Agent Platform 和 Microsoft Foundry 上的行为一致 |138| `ANTHROPIC_BASE_URL` | 覆盖 API 端点,以通过代理或网关路由请求。关于该网关拒绝 MCP 工具搜索时会发生什么,请参阅[通过 LLM 网关进行工具搜索](/docs/zh-CN/mcp#tool-search-through-a-gateway)。自 v2.1.196 起,当此变量指向 `api.anthropic.com` 以外的主机时,[Remote Control](/docs/zh-CN/remote-control#requirements) 会被禁用,与其在 Amazon Bedrock、Google Cloud's Agent Platform 和 Microsoft Foundry 上的行为一致 |

140| `ANTHROPIC_BEDROCK_BASE_URL` | 覆盖 Amazon Bedrock 端点 URL。用于自定义 Amazon Bedrock 端点或通过 [LLM 网关](/docs/zh-CN/llm-gateway)路由时。请参阅 [Amazon Bedrock](/docs/zh-CN/amazon-bedrock) |139| `ANTHROPIC_BEDROCK_BASE_URL` | 覆盖 Amazon Bedrock 端点 URL。用于自定义 Amazon Bedrock 端点或通过 [LLM 网关](/docs/zh-CN/llm-gateway)路由时。请参阅 [Amazon Bedrock](/docs/zh-CN/amazon-bedrock) |

141| `ANTHROPIC_BEDROCK_MANTLE_BASE_URL` | 覆盖 Amazon Bedrock Mantle 端点 URL。请参阅 [Mantle 端点](/docs/zh-CN/amazon-bedrock#use-the-mantle-endpoint) |140| `ANTHROPIC_BEDROCK_MANTLE_BASE_URL` | 覆盖 Amazon Bedrock Mantle 端点 URL。请参阅 [Mantle 端点](/docs/zh-CN/amazon-bedrock#use-the-mantle-endpoint) |

142| `ANTHROPIC_BEDROCK_REGION_PREFIX` | Claude Code 优先尝试的跨区域推理配置文件前缀(`us`、`eu`、`apac`、`jp`、`au` 或 `global`),而不是根据 AWS 区域推导出的前缀。在 AWS GovCloud 区域中会被忽略。需要 Claude Code v2.1.224 或更高版本。请参阅 [Amazon Bedrock](/docs/zh-CN/amazon-bedrock#cross-region-inference-profile-prefixes) |141| `ANTHROPIC_BEDROCK_REGION_PREFIX` | Claude Code 优先尝试的跨区域推理配置文件前缀(`us`、`eu`、`apac`、`jp`、`au` 或 `global`),而不是根据 AWS 区域推导出的前缀。在 AWS GovCloud 区域中会被忽略。需要 Claude Code v2.1.224 或更高版本。请参阅 [Amazon Bedrock](/docs/zh-CN/amazon-bedrock#cross-region-inference-profile-prefixes) |


178| `ANTHROPIC_VERTEX_PROJECT_ID` | Google Cloud's Agent Platform 请求所指向的 GCP 项目 ID。请参阅[配置 GCP 凭据](/docs/zh-CN/google-vertex-ai#3-configure-gcp-credentials) |177| `ANTHROPIC_VERTEX_PROJECT_ID` | Google Cloud's Agent Platform 请求所指向的 GCP 项目 ID。请参阅[配置 GCP 凭据](/docs/zh-CN/google-vertex-ai#3-configure-gcp-credentials) |

179| `ANTHROPIC_WORKSPACE_ID` | [工作负载身份联合](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation)的工作区 ID。当您的联合规则的范围涵盖多个工作区时设置此变量,以便令牌交换知道要定位哪个工作区 |178| `ANTHROPIC_WORKSPACE_ID` | [工作负载身份联合](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation)的工作区 ID。当您的联合规则的范围涵盖多个工作区时设置此变量,以便令牌交换知道要定位哪个工作区 |

180| `API_FORCE_IDLE_TIMEOUT` | 覆盖 5 分钟的响应体空闲超时,该超时会在没有字节到达时中止流式模型响应。设置为 `0` 可关闭该超时,例如当缓慢的[网关](/docs/zh-CN/llm-gateway)或本地模型在数据块之间暂停超过 5 分钟时;设置为 `1` 可对所有提供商保持启用。未设置时,该超时在直接 Anthropic API、[Claude Platform on AWS](/docs/zh-CN/claude-platform-on-aws) 以及设置了 `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1` 的 Amazon Bedrock 以外的提供商上处于启用状态。[流式看门狗](/docs/zh-CN/network-config#streaming-idle-watchdogs)独立于它运行,即使您在此处设置 `0`,也会中止长时间的静默暂停 |179| `API_FORCE_IDLE_TIMEOUT` | 覆盖 5 分钟的响应体空闲超时,该超时会在没有字节到达时中止流式模型响应。设置为 `0` 可关闭该超时,例如当缓慢的[网关](/docs/zh-CN/llm-gateway)或本地模型在数据块之间暂停超过 5 分钟时;设置为 `1` 可对所有提供商保持启用。未设置时,该超时在直接 Anthropic API、[Claude Platform on AWS](/docs/zh-CN/claude-platform-on-aws) 以及设置了 `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1` 的 Amazon Bedrock 以外的提供商上处于启用状态。[流式看门狗](/docs/zh-CN/network-config#streaming-idle-watchdogs)独立于它运行,即使您在此处设置 `0`,也会中止长时间的静默暂停 |

181| `API_TIMEOUT_MS` | 每次 API 请求尝试接收其响应标头的时间,以毫秒为单位(默认值:600000,即 10 分钟;最大值:2147483647)。它不限制此后流式响应的持续时间。当您设置一个正值时,每次[非流式请求](/docs/zh-CN/errors#streaming-response-ended-before-any-complete-data-was-received)尝试都必须在该时间内完成。当请求在慢速网络上超时或通过代理路由时,请增大此值 |180| `API_TIMEOUT_MS` | 每次 API 请求尝试接收响应标头的时间,以毫秒为单位。它不限制流式响应在此之后运行的时长。默认值为 600000(即 10 分钟),最大值为 2147483647。当您设置正值时,每次[非流式请求](/docs/zh-CN/errors#streaming-response-ended-before-any-complete-data-was-received)尝试都必须在此时间内完成。当请求在慢速网络上或通过代理路由时超时,请增大此值。设置为 `0` 可移除此限制,这需要 Claude Code v2.1.305 或更高版本。设置为 `0` 时,在本地会话中非流式尝试仍会在 300 秒后超时 |

182| `AWS_BEARER_TOKEN_BEDROCK` | 用于身份验证的 Amazon Bedrock API 密钥(请参阅 [Amazon Bedrock API 密钥](https://aws.amazon.com/blogs/machine-learning/accelerate-ai-development-with-amazon-bedrock-api-keys/)) |181| `AWS_BEARER_TOKEN_BEDROCK` | 用于身份验证的 Amazon Bedrock API 密钥(请参阅 [Amazon Bedrock API 密钥](https://aws.amazon.com/blogs/machine-learning/accelerate-ai-development-with-amazon-bedrock-api-keys/)) |

183| `BASH_DEFAULT_TIMEOUT_MS` | 前台 Bash 或 PowerShell 工具命令的默认超时时间,以毫秒为单位(默认值:120000,即 2 分钟)。高于[后台命令默认时间限制](/docs/zh-CN/tools-reference#time-limit-for-background-commands)的值会在无人值守会话中替换该默认值。后台时间限制需要 Claude Code v2.1.285 或更高版本 |182| `BASH_DEFAULT_TIMEOUT_MS` | 前台 Bash 或 PowerShell 工具命令的默认超时时间,以毫秒为单位(默认值:120000,即 2 分钟)。高于[后台命令默认时间限制](/docs/zh-CN/tools-reference#time-limit-for-background-commands)的值会在无人值守会话中替换该默认值。后台时间限制需要 Claude Code v2.1.285 或更高版本 |

184| `BASH_MAX_OUTPUT_LENGTH` | Claude Code 读回到命令结果中的 bash 输出的最大字符数(默认值:30000;最大值:150000)。如果您设置了 [`bashOutputMaxChars`](/docs/zh-CN/settings-reference#bashoutputmaxchars) 设置,Claude Code 会忽略此变量。请参阅[输出限制](/docs/zh-CN/tools-reference#output-limits) |183| `BASH_MAX_OUTPUT_LENGTH` | Claude Code 读回到命令结果中的 bash 输出的最大字符数(默认值:30000;最大值:150000)。如果您设置了 [`bashOutputMaxChars`](/docs/zh-CN/settings-reference#bashoutputmaxchars) 设置,Claude Code 会忽略此变量。请参阅[输出限制](/docs/zh-CN/tools-reference#output-limits) |


186| `BETA_TRACING_ENDPOINT` | 用于[详细 beta 追踪](/docs/zh-CN/monitoring-usage#traces-beta)的 OTLP/HTTP 端点:设置 `ENABLE_BETA_TRACING_DETAILED=1` 时,日志和追踪会发送到该端点,而不是已配置的导出器。请在 shell、用户设置或托管设置中设置它。在[项目和本地设置](/docs/zh-CN/settings-reference#variables-claude-code-ignores-in-env)中会被忽略 |185| `BETA_TRACING_ENDPOINT` | 用于[详细 beta 追踪](/docs/zh-CN/monitoring-usage#traces-beta)的 OTLP/HTTP 端点:设置 `ENABLE_BETA_TRACING_DETAILED=1` 时,日志和追踪会发送到该端点,而不是已配置的导出器。请在 shell、用户设置或托管设置中设置它。在[项目和本地设置](/docs/zh-CN/settings-reference#variables-claude-code-ignores-in-env)中会被忽略 |

187| `CCR_FORCE_BUNDLE` | 设置为 `1` 可强制 [`claude --cloud`](/docs/zh-CN/claude-code-on-the-web#send-local-repositories-without-github) 打包并上传您的本地仓库,而不是从其远程克隆 |186| `CCR_FORCE_BUNDLE` | 设置为 `1` 可强制 [`claude --cloud`](/docs/zh-CN/claude-code-on-the-web#send-local-repositories-without-github) 打包并上传您的本地仓库,而不是从其远程克隆 |

188| `CLAUDECODE` | 在 Claude Code 生成的子进程(Bash 和 PowerShell 工具、tmux 会话、[hook](/docs/zh-CN/hooks) 命令、[状态栏](/docs/zh-CN/statusline)命令、stdio [MCP 服务器](/docs/zh-CN/mcp)子进程)中设置为 `1`。IDE 扩展也会在其集成终端中设置此变量。用于检测脚本是否在 Claude Code 生成的子进程中运行。若要检查当前进程是否由工具调用或 hook 直接生成,而不是在 Claude Code 启动的 stdio MCP 服务器内部,请改用 `CLAUDE_CODE_CHILD_SESSION` |187| `CLAUDECODE` | 在 Claude Code 生成的子进程(Bash 和 PowerShell 工具、tmux 会话、[hook](/docs/zh-CN/hooks) 命令、[状态栏](/docs/zh-CN/statusline)命令、stdio [MCP 服务器](/docs/zh-CN/mcp)子进程)中设置为 `1`。IDE 扩展也会在其集成终端中设置此变量。用于检测脚本是否在 Claude Code 生成的子进程中运行。若要检查当前进程是否由工具调用或 hook 直接生成,而不是在 Claude Code 启动的 stdio MCP 服务器内部,请改用 `CLAUDE_CODE_CHILD_SESSION` |

189| `CLAUDE_AFK_COUNTDOWN_MS` | 未回答的 [`AskUserQuestion`](/docs/zh-CN/tools-reference) 对话框在自动继续前多少毫秒显示屏幕倒计时。默认 `20000`(20 秒),上限为自动继续超时时间。除非启用了自动继续,否则不起作用;请参阅 [`askUserQuestionTimeout`](/docs/zh-CN/settings-reference#askuserquestiontimeout) 设置和 `CLAUDE_AFK_TIMEOUT_MS`。在[项目和本地设置](/docs/zh-CN/settings-reference#variables-claude-code-ignores-in-env)中会被忽略。需要 Claude Code v2.1.198 或更高版本 |

190| `CLAUDE_AFK_TIMEOUT_MS` | 未回答的 [`AskUserQuestion`](/docs/zh-CN/tools-reference) 对话框在空闲多少毫秒后无需您参与即自动继续。自动继续默认关闭;可通过 [`askUserQuestionTimeout`](/docs/zh-CN/settings-reference#askuserquestiontimeout) 设置选择启用。此变量是用于演示和自动化测试的覆盖项:设置后,它优先于该设置,即使该设置未设置或为 `never`,也会启用自动继续。设置 `0` 不会关闭超时,而是会立即关闭对话框。在[项目和本地设置](/docs/zh-CN/settings-reference#variables-claude-code-ignores-in-env)中会被忽略。在 v2.1.200 之前,自动继续默认启用,超时时间为 `60000`(60 秒)。需要 Claude Code v2.1.198 或更高版本 |

191| `CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS` | 设置为 `1` 可禁用所有内置[子代理](/docs/zh-CN/sub-agents)类型,例如 Explore 和 Plan。仅适用于非交互模式(`-p` 标志)。适用于希望从空白状态开始的 SDK 用户。这也会移除 `general-purpose`,即当 Agent 工具调用省略 `subagent_type` 时 Claude Code 运行的子代理。此类调用随后会失败并显示 [`subagent_type is required`](/docs/zh-CN/errors#subagent-type-is-required) |188| `CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS` | 设置为 `1` 可禁用所有内置[子代理](/docs/zh-CN/sub-agents)类型,例如 Explore 和 Plan。仅适用于非交互模式(`-p` 标志)。适用于希望从空白状态开始的 SDK 用户。这也会移除 `general-purpose`,即当 Agent 工具调用省略 `subagent_type` 时 Claude Code 运行的子代理。此类调用随后会失败并显示 [`subagent_type is required`](/docs/zh-CN/errors#subagent-type-is-required) |

192| `CLAUDE_AGENT_SDK_MCP_NO_PREFIX` | 设置为 `1` 可跳过 SDK 创建的 MCP 服务器中工具名称的 `mcp__<server>__` 前缀。工具使用其原始名称。仅限 SDK 使用 |189| `CLAUDE_AGENT_SDK_MCP_NO_PREFIX` | 设置为 `1` 可跳过 SDK 创建的 MCP 服务器中工具名称的 `mcp__<server>__` 前缀。工具使用其原始名称。仅限 SDK 使用 |

193| `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS` | 子代理的停滞超时时间,以毫秒为单位。在 Claude Code v2.1.286 或更高版本上也涵盖[工作流 Agent](/docs/zh-CN/workflows#when-an-agent-stalls-and-restarts)。默认 `600000`(10 分钟);如果您在流式看门狗开启时提高 `CLAUDE_STREAM_IDLE_TIMEOUT_MS`,默认值会随之提高,如[处理缓慢或停滞的 API 响应](/docs/zh-CN/agent-sdk/typescript#handle-slow-or-stalled-api-responses)所述 |190| `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS` | 子代理的停滞超时时间,以毫秒为单位。在 Claude Code v2.1.286 或更高版本上也涵盖[工作流 Agent](/docs/zh-CN/workflows#when-an-agent-stalls-and-restarts)。默认 `600000`(10 分钟);如果您在流式看门狗开启时提高 `CLAUDE_STREAM_IDLE_TIMEOUT_MS`,默认值会随之提高,如[处理缓慢或停滞的 API 响应](/docs/zh-CN/agent-sdk/typescript#handle-slow-or-stalled-api-responses)所述 |


229| `CLAUDE_CODE_DEBUG_LOG_LEVEL` | 写入调试日志文件的最低日志级别。取值:`verbose`、`debug`(默认)、`info`、`warn`、`error`。设置为 `verbose` 可包含大量诊断信息,例如完整的状态栏命令输出;或提高到 `error` 以减少干扰信息 |226| `CLAUDE_CODE_DEBUG_LOG_LEVEL` | 写入调试日志文件的最低日志级别。取值:`verbose`、`debug`(默认)、`info`、`warn`、`error`。设置为 `verbose` 可包含大量诊断信息,例如完整的状态栏命令输出;或提高到 `error` 以减少干扰信息 |

230| `CLAUDE_CODE_DISABLE_1M_CONTEXT` | 设置为 `1` 可关闭 [1M 上下文窗口](/docs/zh-CN/model-config#extended-context)支持。Claude Code 会从模型选择器中移除 `[1m]` 模型变体,并将默认使用 1M 窗口运行的模型限制为 200K 窗口。请参阅[关闭 1M 上下文](/docs/zh-CN/model-config#turn-off-1m-context)。适用于有合规要求的企业环境。有关其在纠正无法识别的 `[1m]` 模型 ID 的窗口方面的作用,请参阅[纠正网关或自定义模型 ID 的窗口](/docs/zh-CN/model-config#correct-the-window-for-a-gateway-or-custom-model-id) |227| `CLAUDE_CODE_DISABLE_1M_CONTEXT` | 设置为 `1` 可关闭 [1M 上下文窗口](/docs/zh-CN/model-config#extended-context)支持。Claude Code 会从模型选择器中移除 `[1m]` 模型变体,并将默认使用 1M 窗口运行的模型限制为 200K 窗口。请参阅[关闭 1M 上下文](/docs/zh-CN/model-config#turn-off-1m-context)。适用于有合规要求的企业环境。有关其在纠正无法识别的 `[1m]` 模型 ID 的窗口方面的作用,请参阅[纠正网关或自定义模型 ID 的窗口](/docs/zh-CN/model-config#correct-the-window-for-a-gateway-or-custom-model-id) |

231| `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` | 设置为 `1` 可在 Opus 4.6 和 Sonnet 4.6 上禁用[自适应推理](/docs/zh-CN/model-config#adjust-effort-level),并回退到由 `MAX_THINKING_TOKENS` 控制的固定思考预算。对 [Fable 模型](/docs/zh-CN/model-config#extended-thinking)、Sonnet 5 及更高版本、Haiku 5.5 或 Opus 4.7 及更高版本不起作用,这些模型始终使用自适应推理 |228| `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` | 设置为 `1` 可在 Opus 4.6 和 Sonnet 4.6 上禁用[自适应推理](/docs/zh-CN/model-config#adjust-effort-level),并回退到由 `MAX_THINKING_TOKENS` 控制的固定思考预算。对 [Fable 模型](/docs/zh-CN/model-config#extended-thinking)、Sonnet 5 及更高版本、Haiku 5.5 或 Opus 4.7 及更高版本不起作用,这些模型始终使用自适应推理 |

232| `CLAUDE_CODE_DISABLE_ADMIN_ENV_UNION` | 设置为 `1` 可阻止 Claude Code 跨管理员来源按键合并[托管设置](/docs/zh-CN/managed-settings#precedence-within-the-managed-tier) `env` 块,从而仅应用最高优先级来源的整个 `env` 块,与 v2.1.223 之前相同。请在启动 Claude Code 的环境中设置它,因为 Claude Code 会忽略通过设置 `env` 块传递的副本。需要 Claude Code v2.1.223 或更高版本 |

233| `CLAUDE_CODE_DISABLE_ADVISOR_TOOL` | 设置为 `1` 可禁用 [advisor 工具](/docs/zh-CN/advisor)。`/advisor` 命令将不可用,任何已配置的 `advisorModel` 都会被忽略,`--advisor` 标志会被接受但不起作用,因此传递该标志的现有脚本可以继续运行而不会出错 |229| `CLAUDE_CODE_DISABLE_ADVISOR_TOOL` | 设置为 `1` 可禁用 [advisor 工具](/docs/zh-CN/advisor)。`/advisor` 命令将不可用,任何已配置的 `advisorModel` 都会被忽略,`--advisor` 标志会被接受但不起作用,因此传递该标志的现有脚本可以继续运行而不会出错 |

234| `CLAUDE_CODE_DISABLE_AGENT_VIEW` | 设置为 `1` 可关闭[后台 Agent 和 Agent 视图](/docs/zh-CN/agent-view):`claude agents`、`--bg`、`/background` 以及按需启动的 supervisor。等同于 [`disableAgentView`](/docs/zh-CN/settings-reference#disableagentview) 设置 |230| `CLAUDE_CODE_DISABLE_AGENT_VIEW` | 设置为 `1` 可关闭[后台 Agent 和 Agent 视图](/docs/zh-CN/agent-view):`claude agents`、`--bg`、`/background` 以及按需启动的 supervisor。等同于 [`disableAgentView`](/docs/zh-CN/settings-reference#disableagentview) 设置 |

235| `CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN` | 设置为 `1` 可禁用[全屏渲染](/docs/zh-CN/fullscreen)并使用经典的主屏幕渲染器。对话保留在终端的原生回滚缓冲区中,因此 `Cmd+f` 和 tmux 复制模式可照常工作。优先于 `CLAUDE_CODE_NO_FLICKER` 和 [`tui`](/docs/zh-CN/settings-reference#tui) 设置。您也可以使用 `/tui default` 进行切换。不适用于从 [Agent 视图](/docs/zh-CN/agent-view)打开的后台会话,这些会话始终使用全屏渲染 |231| `CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN` | 设置为 `1` 可禁用[全屏渲染](/docs/zh-CN/fullscreen)并使用经典的主屏幕渲染器。对话保留在终端的原生回滚缓冲区中,因此 `Cmd+f` 和 tmux 复制模式可照常工作。优先于 `CLAUDE_CODE_NO_FLICKER` 和 [`tui`](/docs/zh-CN/settings-reference#tui) 设置。您也可以使用 `/tui default` 进行切换。不适用于从 [Agent 视图](/docs/zh-CN/agent-view)打开的后台会话,这些会话始终使用全屏渲染 |


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

241| `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 或更高版本 |237| `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 或更高版本 |

242| `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 或更高版本 |238| `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 或更高版本 |

243| `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 或更高版本 |239| `CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF` | 设置为 `1` 可在[监督进程](/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 Code v2.1.196 或更高版本 |

244| `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 或更高版本 |240| `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 或更高版本 |

245| `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) 设置 |241| `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) 设置 |

246| `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 或更高版本 |242| `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 或更高版本 |


299| `CLAUDE_CODE_FORCE_SESSION_PERSISTENCE` | 设置为 `1` 可强制持久化会话记录、提示词历史并注册到 `claude agents`,即使此 `claude` 是从另一个 Claude Code 会话内部启动的。当继承的 `CLAUDE_CODE_CHILD_SESSION` 值(例如来自 `screen` 会话,或最初由 Claude Code 的 Bash 工具启动的后台启动器)导致真正的顶层会话被误判为嵌套会话时使用。从 v2.1.178 起,Claude Code 会自动检测 tmux 的情况并忽略继承的标记,因此 tmux 不再需要此变量。在 v2.1.169 及更早版本中同样有效;在 v2.1.170 和 v2.1.171 中不起作用,因为这两个版本移除了它所覆盖的嵌套会话检测 |295| `CLAUDE_CODE_FORCE_SESSION_PERSISTENCE` | 设置为 `1` 可强制持久化会话记录、提示词历史并注册到 `claude agents`,即使此 `claude` 是从另一个 Claude Code 会话内部启动的。当继承的 `CLAUDE_CODE_CHILD_SESSION` 值(例如来自 `screen` 会话,或最初由 Claude Code 的 Bash 工具启动的后台启动器)导致真正的顶层会话被误判为嵌套会话时使用。从 v2.1.178 起,Claude Code 会自动检测 tmux 的情况并忽略继承的标记,因此 tmux 不再需要此变量。在 v2.1.169 及更早版本中同样有效;在 v2.1.170 和 v2.1.171 中不起作用,因为这两个版本移除了它所覆盖的嵌套会话检测 |

300| `CLAUDE_CODE_FORCE_STRIKETHROUGH` | 当终端支持删除线但未被自动检测到时(例如通过 SSH 连接且未转发 `TERM_PROGRAM`),设置为 `1` 可强制将 Claude 回复中的 `~~text~~` 渲染为删除线。如果不设置,未被检测到的终端会显示字面的 `~~` 标记,而不是将文本渲染为删除线。需要 Claude Code v2.1.186 或更高版本 |296| `CLAUDE_CODE_FORCE_STRIKETHROUGH` | 当终端支持删除线但未被自动检测到时(例如通过 SSH 连接且未转发 `TERM_PROGRAM`),设置为 `1` 可强制将 Claude 回复中的 `~~text~~` 渲染为删除线。如果不设置,未被检测到的终端会显示字面的 `~~` 标记,而不是将文本渲染为删除线。需要 Claude Code v2.1.186 或更高版本 |

301| `CLAUDE_CODE_FORCE_SYNC_OUTPUT` | 当终端支持但未被自动检测到时,设置为 `1` 可强制启用 DEC 私有模式 2026 [同步输出](https://gist.github.com/christianparpart/d8a62cc1ab659194337d73e399004036)。适用于实现了 BSU/ESU 但不响应能力探测的模拟器,例如 Emacs `eat`。在 tmux 下无效。与切换到[全屏渲染](/docs/zh-CN/fullscreen)的 `CLAUDE_CODE_NO_FLICKER` 不同,此变量不会更改渲染器 |297| `CLAUDE_CODE_FORCE_SYNC_OUTPUT` | 当终端支持但未被自动检测到时,设置为 `1` 可强制启用 DEC 私有模式 2026 [同步输出](https://gist.github.com/christianparpart/d8a62cc1ab659194337d73e399004036)。适用于实现了 BSU/ESU 但不响应能力探测的模拟器,例如 Emacs `eat`。在 tmux 下无效。与切换到[全屏渲染](/docs/zh-CN/fullscreen)的 `CLAUDE_CODE_NO_FLICKER` 不同,此变量不会更改渲染器 |

302| `CLAUDE_CODE_FORCE_TERMINAL_IMAGES` | 当终端使用 Unicode 占位符绘制 kitty 图形协议图像但未被自动检测到时,设置为 `1` 可将 [mod `Image` 元素](/docs/zh-CN/plugins/mods/reference#elements)绘制为图片。请参阅 [Claude Code 会检测哪些终端](/docs/zh-CN/plugins/mods/gallery#image-and-client),以及为什么它在 tmux 或 screen 中无济于事 |298| `CLAUDE_CODE_FORCE_TERMINAL_IMAGES` | 当您的终端使用 Unicode 占位符绘制 kitty 图形协议图像,但您仍看到 `Image` 的灰显 `alt` 文本时,设置为 `1` 可将 [mod `Image` 元素](/docs/zh-CN/plugins/mods/reference#elements)绘制为图片。请参阅[哪些终端会绘制 `Image`](/docs/zh-CN/plugins/mods/gallery#image-and-client),以及为什么此变量在 tmux 或 screen 中无效 |

303| `CLAUDE_CODE_FORK_SUBAGENT` | 控制 fork 模式,该模式默认开启,允许 Claude 自行启动 [fork](/docs/zh-CN/sub-agents#fork-the-current-conversation)。在 fork 模式开启时,Claude 在您机器上的交互式终端、VS Code 或桌面会话中也无法[等待子代理](/docs/zh-CN/sub-agents#run-subagents-in-foreground-or-background)。设置为 `0` 可关闭 fork 模式。有关版本信息,请参阅[关闭 fork 模式](/docs/zh-CN/sub-agents#turn-fork-mode-on-or-off) |299| `CLAUDE_CODE_FORK_SUBAGENT` | 控制 fork 模式,该模式默认开启,允许 Claude 自行启动 [fork](/docs/zh-CN/sub-agents#fork-the-current-conversation)。在 fork 模式开启时,Claude 在您机器上的交互式终端、VS Code 或桌面会话中也无法[等待子代理](/docs/zh-CN/sub-agents#run-subagents-in-foreground-or-background)。设置为 `0` 可关闭 fork 模式。有关版本信息,请参阅[关闭 fork 模式](/docs/zh-CN/sub-agents#turn-fork-mode-on-or-off) |

304| `CLAUDE_CODE_FORWARD_SUBAGENT_TEXT` | 设置为 `1` 可在 `claude -p --output-format stream-json` 输出中发出[子代理](/docs/zh-CN/sub-agents)的文本和思考块,行为与 [`--forward-subagent-text`](/docs/zh-CN/cli-reference#cli-flags) 标志相同。当调用 `claude` 的外部框架无法自行传递该标志时,请使用此变量。该标志在"使用 stream-json 输出的非交互模式"之外会报错退出,而此变量在这些情况下会被忽略,因此在进程范围内设置时,嵌套调用仍能正常工作。需要 Claude Code v2.1.211 或更高版本 |300| `CLAUDE_CODE_FORWARD_SUBAGENT_TEXT` | 设置为 `1` 可在 `claude -p --output-format stream-json` 输出中发出[子代理](/docs/zh-CN/sub-agents)的文本和思考块,行为与 [`--forward-subagent-text`](/docs/zh-CN/cli-reference#cli-flags) 标志相同。当调用 `claude` 的外部框架无法自行传递该标志时,请使用此变量。该标志在"使用 stream-json 输出的非交互模式"之外会报错退出,而此变量在这些情况下会被忽略,因此在进程范围内设置时,嵌套调用仍能正常工作。需要 Claude Code v2.1.211 或更高版本 |

305| `CLAUDE_CODE_GATEWAY_HINT_HEADERS` | 设置为 `1` 可在自定义代理或第三方提供商(例如 Amazon Bedrock 或 Claude Platform on AWS)上发送[网关提示标头](/docs/zh-CN/llm-gateway-protocol#gateway-hint-headers),例如 `x-claude-code-request-class` 和 `x-claude-code-compaction`。设置为 `0` 可在所有连接上停止发送这些标头,包括直接连接到 Anthropic API 的情况(Claude Code 默认会在此类连接上发送这些标头)。需要 Claude Code v2.1.273 或更高版本 |301| `CLAUDE_CODE_GATEWAY_HINT_HEADERS` | 设置为 `1` 可在自定义代理或第三方提供商(例如 Amazon Bedrock 或 Claude Platform on AWS)上发送[网关提示标头](/docs/zh-CN/llm-gateway-protocol#gateway-hint-headers),例如 `x-claude-code-request-class` 和 `x-claude-code-compaction`。设置为 `0` 可在所有连接上停止发送这些标头,包括直接连接到 Anthropic API 的情况(Claude Code 默认会在此类连接上发送这些标头)。需要 Claude Code v2.1.273 或更高版本 |


319| `CLAUDE_CODE_MAX_CONTEXT_TOKENS` | 覆盖 Claude Code 为当前模型假定的上下文窗口大小。从 v2.1.193 起,其应用方式取决于 Claude Code 如何解析模型 ID;请参阅[为网关或自定义模型 ID 更正窗口大小](/docs/zh-CN/model-config#correct-the-window-for-a-gateway-or-custom-model-id)。当通过 `ANTHROPIC_BASE_URL` 路由到某个模型,而其上下文窗口与其名称对应的内置大小不匹配时使用 |315| `CLAUDE_CODE_MAX_CONTEXT_TOKENS` | 覆盖 Claude Code 为当前模型假定的上下文窗口大小。从 v2.1.193 起,其应用方式取决于 Claude Code 如何解析模型 ID;请参阅[为网关或自定义模型 ID 更正窗口大小](/docs/zh-CN/model-config#correct-the-window-for-a-gateway-or-custom-model-id)。当通过 `ANTHROPIC_BASE_URL` 路由到某个模型,而其上下文窗口与其名称对应的内置大小不匹配时使用 |

320| `CLAUDE_CODE_MAX_MCP_DESCRIPTION_LENGTH` | Claude Code 发送给模型的 MCP 工具描述和 MCP 服务器说明的最大长度(字符)。您设置的值会替换两个[默认限制](/docs/zh-CN/mcp#for-mcp-server-authors):4096,以及 Claude 通过工具搜索加载的工具描述的 16384。接受纯数字形式的正整数。其他任何值都会被忽略并应用默认值。需要 Claude Code v2.1.280 或更高版本 |316| `CLAUDE_CODE_MAX_MCP_DESCRIPTION_LENGTH` | Claude Code 发送给模型的 MCP 工具描述和 MCP 服务器说明的最大长度(字符)。您设置的值会替换两个[默认限制](/docs/zh-CN/mcp#for-mcp-server-authors):4096,以及 Claude 通过工具搜索加载的工具描述的 16384。接受纯数字形式的正整数。其他任何值都会被忽略并应用默认值。需要 Claude Code v2.1.280 或更高版本 |

321| `CLAUDE_CODE_MAX_OUTPUT_TOKENS` | 设置大多数请求的最大输出 token 数。默认值和上限因模型而异;请参阅[最大输出 token](https://platform.claude.com/docs/en/about-claude/models/overview#latest-models-comparison)。如果设置的值超过模型上限,Claude Code 会将其降至上限。对于 Claude Code 无法解析为已知模型的模型 ID,默认值为 32000,上限为 128000。增大此值会减少触发[自动压缩](/docs/zh-CN/costs#reduce-token-usage)之前可用的有效上下文窗口 |317| `CLAUDE_CODE_MAX_OUTPUT_TOKENS` | 设置大多数请求的最大输出 token 数。默认值和上限因模型而异;请参阅[最大输出 token](https://platform.claude.com/docs/en/about-claude/models/overview#latest-models-comparison)。如果设置的值超过模型上限,Claude Code 会将其降至上限。对于 Claude Code 无法解析为已知模型的模型 ID,默认值为 32000,上限为 128000。增大此值会减少触发[自动压缩](/docs/zh-CN/costs#reduce-token-usage)之前可用的有效上下文窗口 |

322| `CLAUDE_CODE_MAX_RETRIES` | 覆盖失败 API 请求的重试次数(默认:10)。从 v2.1.186 起上限为 15;从 v2.1.199 起,`CLAUDE_CODE_RETRY_WATCHDOG` 会提高默认值并取消上限。对于需要等待更长时间服务中断的无人值守会话,请改为设置 `CLAUDE_CODE_RETRY_WATCHDOG` |318| `CLAUDE_CODE_MAX_RETRIES` | 覆盖失败 API 请求的重试次数(默认:10)。遇到 `529` 过载错误时,重试可能会更早停止。例如,在 Opus 模型上使用 API 密钥时,会在第三次 `529` 时停止并显示 [Repeated 529 Overloaded errors](/docs/zh-CN/errors#api-error-repeated-529-overloaded-errors)。如果您设置了[备用模型](/docs/zh-CN/settings-reference#fallbackmodel),Claude Code 会切换到该模型,而不是显示错误。从 v2.1.186 起上限为 15;从 v2.1.199 起,`CLAUDE_CODE_RETRY_WATCHDOG` 会提高默认值并取消上限。对于需要等待较长中断的无人值守会话,请改为设置 `CLAUDE_CODE_RETRY_WATCHDOG` |

323| `CLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION` | 已在 v2.1.224 中移除,现在不起作用。此前用于限制 Claude 在一个会话中可通过 Agent 工具生成的[子代理](/docs/zh-CN/sub-agents)总数(默认:200);超过上限时生成会失败并显示 `Subagent spawn limit reached`。[并发子代理限制](/docs/zh-CN/sub-agents#concurrent-subagent-limit)和[深度限制](/docs/zh-CN/sub-agents#let-subagents-spawn-their-own-subagents)仍然适用 |319| `CLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION` | 已在 v2.1.224 中移除,现在不起作用。此前用于限制 Claude 在一个会话中可通过 Agent 工具生成的[子代理](/docs/zh-CN/sub-agents)总数(默认:200);超过上限时生成会失败并显示 `Subagent spawn limit reached`。[并发子代理限制](/docs/zh-CN/sub-agents#concurrent-subagent-limit)和[深度限制](/docs/zh-CN/sub-agents#let-subagents-spawn-their-own-subagents)仍然适用 |

324| `CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH` | 主对话之下允许的[子代理层数](/docs/zh-CN/sub-agents#let-subagents-spawn-their-own-subagents)(默认:3)。在默认值下,子代理可以生成自己的子代理,而位于第三层的子代理不能再继续生成;设置为 `1` 可关闭嵌套。在 v2.1.217 至 v2.1.218 中,默认值为 1,因此除非您提高限制,否则子代理无法生成自己的子代理;v2.1.219 将默认值提高到 3。接受以纯数字表示的正整数;其他值会被忽略,因此该限制可以调整,但不能移除。需要 Claude Code v2.1.217 或更高版本 |320| `CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH` | 主对话之下允许的[子代理层数](/docs/zh-CN/sub-agents#let-subagents-spawn-their-own-subagents)(默认:3)。在默认值下,子代理可以生成自己的子代理,而位于第三层的子代理不能再继续生成;设置为 `1` 可关闭嵌套。在 v2.1.217 至 v2.1.218 中,默认值为 1,因此除非您提高限制,否则子代理无法生成自己的子代理;v2.1.219 将默认值提高到 3。接受以纯数字表示的正整数;其他值会被忽略,因此该限制可以调整,但不能移除。需要 Claude Code v2.1.217 或更高版本 |

325| `CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCY` | 可并行执行的只读工具和子代理的最大数量(默认:10)。值越高,并行度越高,但消耗的资源也越多 |

326| `CLAUDE_CODE_MAX_TURNS` | 在未传递显式限制时,限制 agentic 轮次的数量。等同于传递 [`--max-turns`](/docs/zh-CN/cli-reference#cli-flags),两者都设置时后者优先。非正整数的值会在启动时被拒绝并报错,而不是被视为无上限 |321| `CLAUDE_CODE_MAX_TURNS` | 在未传递显式限制时,限制 agentic 轮次的数量。等同于传递 [`--max-turns`](/docs/zh-CN/cli-reference#cli-flags),两者都设置时后者优先。非正整数的值会在启动时被拒绝并报错,而不是被视为无上限 |

327| `CLAUDE_CODE_MAX_WEB_SEARCHES_PER_SESSION` | [WebSearch](/docs/zh-CN/tools-reference#session-search-limit) 调用次数上限(默认值:200)。当 Claude 达到上限时,后续的 WebSearch 调用会返回一条通知,告诉它使用已收集的信息继续,并在回答中说明这一点。接受无上限的正整数。其他任何值都会被忽略并应用默认值,因此上限可以提高但不能关闭。需要 Claude Code v2.1.212 或更高版本 |322| `CLAUDE_CODE_MAX_WEB_SEARCHES_PER_SESSION` | [WebSearch](/docs/zh-CN/tools-reference#session-search-limit) 调用次数上限(默认值:200)。当 Claude 达到上限时,后续的 WebSearch 调用会返回一条通知,告诉它使用已收集的信息继续,并在回答中说明这一点。接受无上限的正整数。其他任何值都会被忽略并应用默认值,因此上限可以提高但不能关闭。需要 Claude Code v2.1.212 或更高版本 |

328| `CLAUDE_CODE_MCP_ALLOWLIST_ENV` | 设置为 `1` 可在启动 stdio MCP 服务器时仅提供安全的基线环境加上服务器配置的 `env`,而不是继承您的 shell 环境 |323| `CLAUDE_CODE_MCP_ALLOWLIST_ENV` | 设置为 `1` 可在启动 stdio MCP 服务器时仅提供安全的基线环境加上服务器配置的 `env`,而不是继承您的 shell 环境 |

329| `CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS` | 仍在运行的 MCP 工具调用在经过多长时间(毫秒)后[转为后台任务](/docs/zh-CN/mcp#automatic-backgrounding-of-long-tool-calls)(默认:120000,即 2 分钟)。设置为 `0` 可关闭自动转入后台。需要 Claude Code v2.1.212 或更高版本 |324| `CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS` | 仍在运行的 MCP 工具调用在经过多长时间(毫秒)后[转为后台任务](/docs/zh-CN/mcp#automatic-backgrounding-of-long-tool-calls)(默认:120000,即 2 分钟)。设置为 `0` 可关闭自动转入后台。需要 Claude Code v2.1.212 或更高版本 |

330| `CLAUDE_CODE_MCP_STARTUP_WAIT_MS` | [非交互](/docs/zh-CN/headless)会话的第一轮等待仍在连接的 MCP 服务器的时长(毫秒),用于替代默认的[首轮等待](/docs/zh-CN/agent-sdk/mcp#connection-timing)。设置后,等待会涵盖所有待连接的服务器;在[自托管环境](/docs/zh-CN/self-hosted-environments-configuration#connection-timing)中,它只改变等待持续的时长。设置为 `0` 可跳过等待。无论该值如何,[`--permission-prompt-tool`](/docs/zh-CN/cli-reference#cli-flags) 服务器都会保持其自身的 `MCP_TIMEOUT` 等待。需要 Claude Code v2.1.274 或更高版本 |325| `CLAUDE_CODE_MCP_STARTUP_WAIT_MS` | [非交互](/docs/zh-CN/headless)会话的第一个轮次等待仍在连接中的 MCP 服务器的时长(毫秒),用以替代默认的[首轮等待](/docs/zh-CN/agent-sdk/mcp#connection-timing)。在[自托管环境](/docs/zh-CN/self-hosted-environments-configuration#connection-timing)中,它只改变等待持续的时长。某些服务器无论该值如何都会保留自己的等待;[连接时机](/docs/zh-CN/agent-sdk/mcp#connection-timing)列出了这些服务器。设置为 `0` 可跳过对其他所有服务器的等待。需要 Claude Code v2.1.274 或更高版本 |

331| `CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT` | MCP 工具调用的空闲超时时间(毫秒)。当 stdio、HTTP、SSE、WebSocket 或 [claude.ai 连接器](/docs/zh-CN/mcp#use-mcp-servers-from-claude-ai) MCP 服务器在这段时间内既没有发送响应也没有发送进度通知时,工具调用会报错中止,而不是等待整体的 `MCP_TOOL_TIMEOUT`。覆盖各传输方式的默认值:网络服务器为 300000(5 分钟),stdio 服务器为 1800000(30 分钟)。设置为 `0` 可禁用空闲检查。低于 1000 的值会被提高到一秒,且该值的上限为生效的 `MCP_TOOL_TIMEOUT`。`.mcp.json` 中至少为 1000 的单服务器 `timeout` 会将该服务器的空闲窗口提高到至少等于 `timeout` 值。不适用于 IDE 服务器或 SDK 进程内服务器。需要 Claude Code v2.1.187 或更高版本。在 v2.1.203 之前,stdio 服务器不受空闲超时限制 |326| `CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT` | MCP 工具调用的空闲超时时间(毫秒)。当 stdio、HTTP、SSE、WebSocket 或 [claude.ai 连接器](/docs/zh-CN/mcp#use-mcp-servers-from-claude-ai) MCP 服务器在这段时间内既没有发送响应也没有发送进度通知时,工具调用会报错中止,而不是等待整体的 `MCP_TOOL_TIMEOUT`。覆盖各传输方式的默认值:网络服务器为 300000(5 分钟),stdio 服务器为 1800000(30 分钟)。设置为 `0` 可禁用空闲检查。低于 1000 的值会被提高到一秒,且该值的上限为生效的 `MCP_TOOL_TIMEOUT`。`.mcp.json` 中至少为 1000 的单服务器 `timeout` 会将该服务器的空闲窗口提高到至少等于 `timeout` 值。不适用于 IDE 服务器或 SDK 进程内服务器。需要 Claude Code v2.1.187 或更高版本。在 v2.1.203 之前,stdio 服务器不受空闲超时限制 |

332| `CLAUDE_CODE_MESSAGING_SOCKET` | 由 Claude Code 设置,而非由您设置:在绑定了[收件箱套接字](/docs/zh-CN/cross-session-messaging#the-sessions-inbox-socket)的会话中,Claude Code 在绑定套接字时会将该套接字的路径导出给 hook 和 Bash 命令。在启动时即开启消息功能的会话中,Claude Code 会在任何 hook 运行之前绑定套接字。本机上的其他会话会将消息投递到此路径。每个会话导出自己的套接字,而不是从父会话继承的套接字,到达该套接字的消息会经过该会话的[入站控制](/docs/zh-CN/cross-session-messaging#control-inbound-messages)。设置中的 `env` 块无法设置此变量。需要 Claude Code v2.1.224 或更高版本 |327| `CLAUDE_CODE_MESSAGING_SOCKET` | 由 Claude Code 设置,而非由您设置:在绑定了[收件箱套接字](/docs/zh-CN/cross-session-messaging#the-sessions-inbox-socket)的会话中,Claude Code 在绑定套接字时会将该套接字的路径导出给 hook 和 Bash 命令。在启动时即开启消息功能的会话中,Claude Code 会在任何 hook 运行之前绑定套接字。本机上的其他会话会将消息投递到此路径。每个会话导出自己的套接字,而不是从父会话继承的套接字,到达该套接字的消息会经过该会话的[入站控制](/docs/zh-CN/cross-session-messaging#control-inbound-messages)。设置中的 `env` 块无法设置此变量。需要 Claude Code v2.1.224 或更高版本 |

333| `CLAUDE_CODE_MESSAGING_TOKEN` | 由 Claude Code 设置,而非由您设置:在绑定了[收件箱套接字](/docs/zh-CN/cross-session-messaging#the-sessions-inbox-socket)的会话中,Claude Code 会将此会话专属令牌与 `CLAUDE_CODE_MESSAGING_SOCKET` 一起导出给 hook 和 Bash 命令。向该套接字发送消息的脚本可以将 `{"type":"auth","token":"<token>"}` 作为第一行发送,以证明它属于该会话。在原生 Windows 上,Claude Code 要求发送此行,并会关闭任何未以有效认证行开头的连接。[自有子进程规则](/docs/zh-CN/cross-session-messaging#the-sessions-inbox-socket)说明了 Claude Code 何时会检查该令牌。每个会话导出自己的令牌,绝不会使用从父会话继承的令牌。设置中的 `env` 块无法设置此变量。需要 Claude Code v2.1.228 或更高版本 |328| `CLAUDE_CODE_MESSAGING_TOKEN` | 由 Claude Code 设置,而非由您设置:在绑定了[收件箱套接字](/docs/zh-CN/cross-session-messaging#the-sessions-inbox-socket)的会话中,Claude Code 会将此会话专属令牌与 `CLAUDE_CODE_MESSAGING_SOCKET` 一起导出给 hook 和 Bash 命令。向该套接字发送消息的脚本可以将 `{"type":"auth","token":"<token>"}` 作为第一行发送,以证明它属于该会话。在原生 Windows 上,Claude Code 要求发送此行,并会关闭任何未以有效认证行开头的连接。[自有子进程规则](/docs/zh-CN/cross-session-messaging#the-sessions-inbox-socket)说明了 Claude Code 何时会检查该令牌。每个会话导出自己的令牌,绝不会使用从父会话继承的令牌。设置中的 `env` 块无法设置此变量。需要 Claude Code v2.1.228 或更高版本 |


372| `CLAUDE_CODE_RESUME_PROMPT` | 覆盖 Claude Code 发送给 Claude 的继续消息:当 `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` 继续被中断的轮次而非重新发送其提示词时,或当您使用 `-p` 恢复[延迟的工具调用](/docs/zh-CN/hooks#defer-a-tool-call-for-later)时,都会发送此消息。默认为 `Continue from where you left off.`。空字符串将使用默认值 |367| `CLAUDE_CODE_RESUME_PROMPT` | 覆盖 Claude Code 发送给 Claude 的继续消息:当 `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` 继续被中断的轮次而非重新发送其提示词时,或当您使用 `-p` 恢复[延迟的工具调用](/docs/zh-CN/hooks#defer-a-tool-call-for-later)时,都会发送此消息。默认为 `Continue from where you left off.`。空字符串将使用默认值 |

373| `CLAUDE_CODE_RETRY_WATCHDOG` | 对于评估测试框架、CI 作业或远程工作进程等无人值守会话,请设置为 `1`。会无限期重试 `429` 和 `529` 容量错误,而不是在尝试 `CLAUDE_CODE_MAX_RETRIES` 次后失败。当标准速度请求收到报告支出限额或使用额度耗尽的 `429` 时,Claude Code 会立即失败,即使该错误来自按计划重置的[网关支出上限](/docs/zh-CN/errors#spend-limit-reached)也是如此。在 v2.1.239 之前,看门狗会无限期重试这些错误。对于快速模式请求,请参阅[处理速率限制](/docs/zh-CN/fast-mode#handle-rate-limits)。看门狗在两次尝试之间最多退避 5 分钟;当响应带有速率限制重置时间时,则会一直等到限制重置,因此达到用量限制的会话会等待剩余的时间窗口结束。在 v2.1.199 或更高版本中,它还会将其他临时性错误(例如服务器错误、超时和连接中断)的默认重试次数提高到 300(大约三小时的退避),并且如果您显式设置了 `CLAUDE_CODE_MAX_RETRIES`,还会取消该变量 15 次的上限。需要 Claude Code v2.1.186 或更高版本 |368| `CLAUDE_CODE_RETRY_WATCHDOG` | 对于评估测试框架、CI 作业或远程工作进程等无人值守会话,请设置为 `1`。会无限期重试 `429` 和 `529` 容量错误,而不是在尝试 `CLAUDE_CODE_MAX_RETRIES` 次后失败。当标准速度请求收到报告支出限额或使用额度耗尽的 `429` 时,Claude Code 会立即失败,即使该错误来自按计划重置的[网关支出上限](/docs/zh-CN/errors#spend-limit-reached)也是如此。在 v2.1.239 之前,看门狗会无限期重试这些错误。对于快速模式请求,请参阅[处理速率限制](/docs/zh-CN/fast-mode#handle-rate-limits)。看门狗在两次尝试之间最多退避 5 分钟;当响应带有速率限制重置时间时,则会一直等到限制重置,因此达到用量限制的会话会等待剩余的时间窗口结束。在 v2.1.199 或更高版本中,它还会将其他临时性错误(例如服务器错误、超时和连接中断)的默认重试次数提高到 300(大约三小时的退避),并且如果您显式设置了 `CLAUDE_CODE_MAX_RETRIES`,还会取消该变量 15 次的上限。需要 Claude Code v2.1.186 或更高版本 |

374| `CLAUDE_CODE_RETRY_WATCHDOG_MAX_WAIT_MS` | 设置 `CLAUDE_CODE_RETRY_WATCHDOG` 时,每个 API 请求在等待 `429` 和 `529` 错误上所花费的最长时间(毫秒)。这段时间用完后,下一个此类错误将结束该请求。请以纯数字给出正整数,例如 `1800000` 表示 30 分钟。未设置时,等待没有限制。需要 Claude Code v2.1.295 或更高版本 |369| `CLAUDE_CODE_RETRY_WATCHDOG_MAX_WAIT_MS` | 设置 `CLAUDE_CODE_RETRY_WATCHDOG` 时,每个 API 请求在等待 `429` 和 `529` 错误上所花费的最长时间(毫秒)。这段时间用完后,下一个此类错误将结束该请求。请以纯数字给出正整数,例如 `1800000` 表示 30 分钟。未设置时,等待没有限制。需要 Claude Code v2.1.295 或更高版本 |

370| `CLAUDE_CODE_RETRY_WATCHDOG_USAGE_LIMIT_RECHECK_MS` | 在设置了 `CLAUDE_CODE_RETRY_WATCHDOG` 且请求正在等待[用量限制](/docs/zh-CN/errors#youve-hit-your-session-limit)重置期间,检查该限制是否已提前解除的最小间隔(毫秒)。当检查发现限制已解除时,请求会立即发出。以纯数字给出从 `60000`(一分钟)到 `10800000`(三小时)之间的整数。仅在未使用使用额度时针对 claude.ai 订阅的会话限制或每周限制进行检查,并且在设置了 `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` 时不进行检查。当此变量未设置或其值超出该范围时,不进行任何检查。需要 Claude Code v2.1.305 或更高版本 |

375| `CLAUDE_CODE_SAFE_MODE` | 设置为 `1` 可在安全模式下启动:CLAUDE.md、skill、插件、hook、MCP 服务器、自定义命令和 Agent、输出样式、工作流、自定义主题、自定义快捷键、状态栏和文件建议命令、LSP 服务器以及自动记忆都不会加载,用于排查损坏的配置。托管设置策略仍然适用,包括策略配置的 hook、状态栏和文件建议命令;托管插件、托管 skill、托管 CLAUDE.md 和策略配置的 MCP 服务器则不会加载。等同于传递 [`--safe-mode`](/docs/zh-CN/cli-reference#cli-flags)。直接生成的子进程会继承此变量 |371| `CLAUDE_CODE_SAFE_MODE` | 设置为 `1` 可在安全模式下启动:CLAUDE.md、skill、插件、hook、MCP 服务器、自定义命令和 Agent、输出样式、工作流、自定义主题、自定义快捷键、状态栏和文件建议命令、LSP 服务器以及自动记忆都不会加载,用于排查损坏的配置。托管设置策略仍然适用,包括策略配置的 hook、状态栏和文件建议命令;托管插件、托管 skill、托管 CLAUDE.md 和策略配置的 MCP 服务器则不会加载。等同于传递 [`--safe-mode`](/docs/zh-CN/cli-reference#cli-flags)。直接生成的子进程会继承此变量 |

376| `CLAUDE_CODE_SCRIPT_CAPS` | 设置 `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` 时,用于限制每个会话中特定脚本可被调用次数的 JSON 对象。键是与命令文本进行匹配的子字符串;值是整数调用限制。例如,`{"deploy.sh": 2}` 允许 `deploy.sh` 最多被调用两次。匹配基于子字符串,因此像 `./scripts/deploy.sh $(evil)` 这样的 shell 扩展技巧仍会计入上限。无法检测通过 `xargs` 或 `find -exec` 进行的运行时扇出;这是一项纵深防御控制措施 |372| `CLAUDE_CODE_SCRIPT_CAPS` | 设置 `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` 时,用于限制每个会话中特定脚本可被调用次数的 JSON 对象。键是与命令文本进行匹配的子字符串;值是整数调用限制。例如,`{"deploy.sh": 2}` 允许 `deploy.sh` 最多被调用两次。匹配基于子字符串,因此像 `./scripts/deploy.sh $(evil)` 这样的 shell 扩展技巧仍会计入上限。无法检测通过 `xargs` 或 `find -exec` 进行的运行时扇出;这是一项纵深防御控制措施 |

377| `CLAUDE_CODE_SCROLL_SPEED` | 设置[全屏渲染](/docs/zh-CN/fullscreen#mouse-wheel-scrolling)中的鼠标滚轮滚动倍数。接受最大为 20 的任意正值,包括小于 1 的小数值(例如 `0.5`),以便在已经放大滚轮事件的终端中减慢加速的触控板和滚轮滚动。如果您的终端每个刻度发送一个滚轮事件且不放大,设置为 `3` 可与 `vim` 保持一致。在 JetBrains IDE 终端中会被忽略,因为 Claude Code 在其中使用自己的滚动处理 |373| `CLAUDE_CODE_SCROLL_SPEED` | 设置[全屏渲染](/docs/zh-CN/fullscreen#mouse-wheel-scrolling)中的鼠标滚轮滚动倍数。接受最大为 20 的任意正值,包括小于 1 的小数值(例如 `0.5`),以便在已经放大滚轮事件的终端中减慢加速的触控板和滚轮滚动。如果您的终端每个刻度发送一个滚轮事件且不放大,设置为 `3` 可与 `vim` 保持一致。在 JetBrains IDE 终端中会被忽略,因为 Claude Code 在其中使用自己的滚动处理 |


405| `CLAUDE_CODE_SYNC_SKILLS_WAIT_TIMEOUT_MS` | 设置 `CLAUDE_CODE_SYNC_SKILLS` 时,第一次查询等待初始 skill 列表的超时时间(毫秒,默认:5000)。超时后,第一次查询会使用已到达的 skill 运行。无论哪种情况,下载都会在后台完成,并且 Claude 在调用某个 skill 时会等待该 skill 下载完成 |401| `CLAUDE_CODE_SYNC_SKILLS_WAIT_TIMEOUT_MS` | 设置 `CLAUDE_CODE_SYNC_SKILLS` 时,第一次查询等待初始 skill 列表的超时时间(毫秒,默认:5000)。超时后,第一次查询会使用已到达的 skill 运行。无论哪种情况,下载都会在后台完成,并且 Claude 在调用某个 skill 时会等待该 skill 下载完成 |

406| `CLAUDE_CODE_SYNTAX_HIGHLIGHT` | 设置为 `false` 可禁用 diff 输出中的语法高亮。适用于颜色干扰终端设置的情况。要同时禁用代码块和文件预览中的高亮,请使用 [`syntaxHighlightingDisabled`](/docs/zh-CN/settings-reference#syntaxhighlightingdisabled) 设置 |402| `CLAUDE_CODE_SYNTAX_HIGHLIGHT` | 设置为 `false` 可禁用 diff 输出中的语法高亮。适用于颜色干扰终端设置的情况。要同时禁用代码块和文件预览中的高亮,请使用 [`syntaxHighlightingDisabled`](/docs/zh-CN/settings-reference#syntaxhighlightingdisabled) 设置 |

407| `CLAUDE_CODE_TASK_LIST_ID` | 在多个会话之间共享任务列表。在[具备 Task 工具的会话](/docs/zh-CN/tools-reference#task-tool-availability)中,在多个 Claude Code 实例中设置相同的 ID,即可围绕共享任务列表进行协调。请参阅[任务列表](/docs/zh-CN/interactive-mode#task-list) |403| `CLAUDE_CODE_TASK_LIST_ID` | 在多个会话之间共享任务列表。在[具备 Task 工具的会话](/docs/zh-CN/tools-reference#task-tool-availability)中,在多个 Claude Code 实例中设置相同的 ID,即可围绕共享任务列表进行协调。请参阅[任务列表](/docs/zh-CN/interactive-mode#task-list) |

408| `CLAUDE_CODE_TEAM_TEARDOWN_PARK_TIMEOUT_MS` | 覆盖非交互式会话在退出时等待其 [agent team](/docs/zh-CN/agent-teams) 完成拆除的时长(毫秒)。接受 1000 到 60000;超出范围的值会被忽略并应用默认值 10000。需要 Claude Code v2.1.206 或更高版本 |

409| `CLAUDE_CODE_TMPDIR` | 覆盖用于内部临时文件的临时目录。Claude Code 在 Unix 上会向此路径追加 `/claude-{uid}/`,在 Windows 上追加 `/claude/`。默认:macOS 上为 `/tmp`,Linux 和 Windows 上为 `os.tmpdir()`。在 macOS 和 Linux 上,当您的覆盖值是较长的路径时,[沙箱化](/docs/zh-CN/sandboxing)的 Bash 子进程会收到位于系统默认目录下的较短备用 `$TMPDIR`,因为某些工具在临时路径过长时会失败。未沙箱化的 Bash 命令会在您的 shell 设置了 `$TMPDIR` 时继承它。在原生 Windows 上,当您的 shell 未设置 `$TMPDIR` 时,引用 `$TMPDIR` 的 Bash 命令会收到您的覆盖值;如果您未设置覆盖值,则收到 `%TEMP%`。Claude Code 自身的临时文件始终使用您的覆盖值。请在 shell、用户设置或托管设置中设置。在[项目设置和本地设置](/docs/zh-CN/settings-reference#variables-claude-code-ignores-in-env)中会被忽略 |404| `CLAUDE_CODE_TMPDIR` | 覆盖用于内部临时文件的临时目录。Claude Code 在 Unix 上会向此路径追加 `/claude-{uid}/`,在 Windows 上追加 `/claude/`。默认:macOS 上为 `/tmp`,Linux 和 Windows 上为 `os.tmpdir()`。在 macOS 和 Linux 上,当您的覆盖值是较长的路径时,[沙箱化](/docs/zh-CN/sandboxing)的 Bash 子进程会收到位于系统默认目录下的较短备用 `$TMPDIR`,因为某些工具在临时路径过长时会失败。未沙箱化的 Bash 命令会在您的 shell 设置了 `$TMPDIR` 时继承它。在原生 Windows 上,当您的 shell 未设置 `$TMPDIR` 时,引用 `$TMPDIR` 的 Bash 命令会收到您的覆盖值;如果您未设置覆盖值,则收到 `%TEMP%`。Claude Code 自身的临时文件始终使用您的覆盖值。请在 shell、用户设置或托管设置中设置。在[项目设置和本地设置](/docs/zh-CN/settings-reference#variables-claude-code-ignores-in-env)中会被忽略 |

410| `CLAUDE_CODE_TMUX_TRUECOLOR` | 设置为任意非空值(例如 `1`)可在 tmux 中允许 24 位真彩色输出。**设置为 `0` 或 `false` 仍会允许真彩色**,这与大多数开/关变量不同;取消设置该变量可恢复 256 色限制。默认情况下,当设置了 `$TMUX` 时,Claude Code 会限制为 256 色,因为除非经过配置,否则 tmux 不会透传真彩色转义序列。请在 `~/.tmux.conf` 中添加 `set -ga terminal-overrides ',*:Tc'` 之后再设置此变量。有关其他 tmux 设置,请参阅[终端配置](/docs/zh-CN/terminal-config) |405| `CLAUDE_CODE_TMUX_TRUECOLOR` | 设置为任意非空值(例如 `1`)可在 tmux 中允许 24 位真彩色输出。**设置为 `0` 或 `false` 仍会允许真彩色**,这与大多数开/关变量不同;取消设置该变量可恢复 256 色限制。默认情况下,当设置了 `$TMUX` 时,Claude Code 会限制为 256 色,因为除非经过配置,否则 tmux 不会透传真彩色转义序列。请在 `~/.tmux.conf` 中添加 `set -ga terminal-overrides ',*:Tc'` 之后再设置此变量。有关其他 tmux 设置,请参阅[终端配置](/docs/zh-CN/terminal-config) |

411| `CLAUDE_CODE_TOOL_MEMORY_CGROUP_EXCLUDE` | 在 Linux 和 WSL 上,设置为以逗号分隔的进程类型列表,例如 `mcp` 或 `lsp`,Claude Code 会将这些类型的进程[排除在工具内存上限之外](/docs/zh-CN/tools-reference#memory-limit-on-linux-and-wsl)。设置为 `none` 可对所有类型施加上限,设置为 `all-new` 则仅对 Bash、PowerShell 和 Monitor 工具命令施加上限。无论您列出什么,Claude Code 都会让 Bash、PowerShell 和 Monitor 工具命令受上限约束。需要 Claude Code v2.1.246 或更高版本 |406| `CLAUDE_CODE_TOOL_MEMORY_CGROUP_EXCLUDE` | 在 Linux 和 WSL 上,设置为以逗号分隔的进程类型列表,例如 `mcp` 或 `lsp`,Claude Code 会将这些类型的进程[排除在工具内存上限之外](/docs/zh-CN/tools-reference#memory-limit-on-linux-and-wsl)。设置为 `none` 可对所有类型施加上限,设置为 `all-new` 则仅对 Bash、PowerShell 和 Monitor 工具命令施加上限。无论您列出什么,Claude Code 都会让 Bash、PowerShell 和 Monitor 工具命令受上限约束。需要 Claude Code v2.1.246 或更高版本 |

412| `CLAUDE_CODE_TOOL_MEMORY_LIMIT` | 在 Linux 和 WSL 上,设置为 `4G` 等大小可[限制 Bash 和 PowerShell 工具命令可使用的内存](/docs/zh-CN/tools-reference#memory-limit-on-linux-and-wsl),在 v2.1.246 或更高版本中还包括 Monitor 工具命令。请以纯数字书写大小,单独使用表示字节数,或带上 `K`、`M`、`G` 或 `T` 后缀。设置为 `0` 或 `off` 可关闭上限。一旦 Claude Code 启动的第一个进程开启或关闭了上限,更改后的值将在您下次启动 `claude` 时生效。需要 Claude Code v2.1.233 或更高版本 |407| `CLAUDE_CODE_TOOL_MEMORY_LIMIT` | 在 Linux 和 WSL 上,设置为 `4G` 等大小可[限制 Bash 和 PowerShell 工具命令可使用的内存](/docs/zh-CN/tools-reference#memory-limit-on-linux-and-wsl),在 v2.1.246 或更高版本中还包括 Monitor 工具命令。请以纯数字书写大小,单独使用表示字节数,或带上 `K`、`M`、`G` 或 `T` 后缀。设置为 `0` 或 `off` 可关闭上限。一旦 Claude Code 启动的第一个进程开启或关闭了上限,更改后的值将在您下次启动 `claude` 时生效。需要 Claude Code v2.1.233 或更高版本 |

413| `CLAUDE_CODE_TRANSCRIPT_LOCAL_GC` | 设置为 `1` 可限制长时间运行的 `-p` 或 Agent SDK 会话的[会话记录文件](/docs/zh-CN/sessions#where-transcripts-are-stored)的增长大小。每次压缩后,一旦文件大于 5 MB,Claude Code 就会删除该次压缩之前的历史记录。无论文件是否被裁剪,恢复会话都会还原相同的对话。请在启动 Claude Code 的环境中设置此变量,因为设置中的 `env` 块无法开启它。需要 Claude Code v2.1.287 或更高版本 |408| `CLAUDE_CODE_TRANSCRIPT_LOCAL_GC` | 设置为 `1` 可限制长时间运行的 `-p` 或 Agent SDK 会话的[会话记录文件](/docs/zh-CN/sessions#where-transcripts-are-stored)的增长大小。每次压缩后,一旦文件大于 5 MB,Claude Code 会删除该次压缩之前的历史记录。在 v2.1.296 或更高版本中,如果删除这些历史记录只能让文件缩小不到 10%,则文件保持不变。无论文件是否被裁剪,恢复会话都会还原相同的对话。请在启动 Claude Code 的环境中设置此变量,因为设置中的 `env` 块无法启用它。需要 Claude Code v2.1.287 或更高版本 |

414| `CLAUDE_CODE_USER_DIALOG_TIMEOUT_MS` | Claude Code 取消其转发给远程客户端(例如 [Remote Control](/docs/zh-CN/remote-control) 或 SDK 主机)的对话框,或取消[被暂扣的跨会话消息](/docs/zh-CN/cross-session-messaging#control-inbound-messages)的批准对话框之前的截止时间(毫秒);权限提示和 `AskUserQuestion` 问题使用各自的流程,不受此变量控制。在 Claude Code v2.1.236 或更高版本中,它还会限制可能处于无人值守运行状态的会话中途出现的 [Fable 使用额度同意提示](/docs/zh-CN/model-config#fable-and-usage-credits)。[控制入站消息](/docs/zh-CN/cross-session-messaging#control-inbound-messages)和[非交互会话](/docs/zh-CN/cross-session-messaging#non-interactive-sessions)介绍了完整的暂扣消息过期规则,包括截止时间不适用的情况。覆盖 [`dialogExpiry`](/docs/zh-CN/settings-reference#dialogexpiry) 设置。`0` 或负值会禁用截止时间。在[项目和本地设置](/docs/zh-CN/settings-reference#variables-claude-code-ignores-in-env)中被忽略 |409| `CLAUDE_CODE_USER_DIALOG_TIMEOUT_MS` | Claude Code 取消其转发给远程客户端(例如 [Remote Control](/docs/zh-CN/remote-control) 或 SDK 主机)的对话框,或取消[被暂扣的跨会话消息](/docs/zh-CN/cross-session-messaging#control-inbound-messages)的批准对话框之前的截止时间(毫秒);权限提示和 `AskUserQuestion` 问题使用各自的流程,不受此变量控制。在 Claude Code v2.1.236 或更高版本中,它还会限制可能处于无人值守运行状态的会话中途出现的 [Fable 使用额度同意提示](/docs/zh-CN/model-config#fable-and-usage-credits)。[控制入站消息](/docs/zh-CN/cross-session-messaging#control-inbound-messages)和[非交互会话](/docs/zh-CN/cross-session-messaging#non-interactive-sessions)介绍了完整的暂扣消息过期规则,包括截止时间不适用的情况。覆盖 [`dialogExpiry`](/docs/zh-CN/settings-reference#dialogexpiry) 设置。`0` 或负值会禁用截止时间。在[项目和本地设置](/docs/zh-CN/settings-reference#variables-claude-code-ignores-in-env)中被忽略 |

415| `CLAUDE_CODE_USE_ANTHROPIC_AWS` | 使用 [Claude Platform on AWS](/docs/zh-CN/claude-platform-on-aws) |410| `CLAUDE_CODE_USE_ANTHROPIC_AWS` | 使用 [Claude Platform on AWS](/docs/zh-CN/claude-platform-on-aws) |

416| `CLAUDE_CODE_USE_BEDROCK` | 使用 [Amazon Bedrock](/docs/zh-CN/amazon-bedrock) |411| `CLAUDE_CODE_USE_BEDROCK` | 使用 [Amazon Bedrock](/docs/zh-CN/amazon-bedrock) |

417| `CLAUDE_CODE_USE_FOUNDRY` | 使用 [Microsoft Foundry](/docs/zh-CN/microsoft-foundry) |412| `CLAUDE_CODE_USE_FOUNDRY` | 使用 [Microsoft Foundry](/docs/zh-CN/microsoft-foundry) |

418| `CLAUDE_CODE_USE_MANTLE` | 使用 Amazon Bedrock [Mantle 端点](/docs/zh-CN/amazon-bedrock#use-the-mantle-endpoint) |413| `CLAUDE_CODE_USE_MANTLE` | 使用 Amazon Bedrock [Mantle 端点](/docs/zh-CN/amazon-bedrock#use-the-mantle-endpoint) |

419| `CLAUDE_CODE_USE_NATIVE_FILE_SEARCH` | 设置为 `1` 可使用 Node.js 文件 API 而非 ripgrep 来发现自定义命令、子代理和输出样式。如果捆绑的 ripgrep 二进制文件在您的环境中不可用或被阻止,请设置此变量。不影响 Grep 或文件搜索工具 |

420| `CLAUDE_CODE_USE_POWERSHELL_TOOL` | 控制 PowerShell 工具。在未安装 Git Bash 的 Windows 上,该工具会自动启用;设置为 `0` 可将其禁用。在安装了 Git Bash 的 Windows 上,该工具对 claude.ai 和 Console 账户默认开启;设置为 `1` 可在 Amazon Bedrock、Google Cloud's Agent Platform 和 Microsoft Foundry 会话中启用它,设置为 `0` 可将其关闭。在 Linux、macOS 和 WSL 上,设置为 `1` 可启用它,这要求 `PATH` 中有 `pwsh`。在 Windows 上启用后,Claude 可以原生运行 PowerShell 命令,而无需通过 Git Bash 转发。请参阅 [PowerShell 工具](/docs/zh-CN/tools-reference#powershell-tool) |414| `CLAUDE_CODE_USE_POWERSHELL_TOOL` | 控制 PowerShell 工具。在未安装 Git Bash 的 Windows 上,该工具会自动启用;设置为 `0` 可将其禁用。在安装了 Git Bash 的 Windows 上,该工具对 claude.ai 和 Console 账户默认开启;设置为 `1` 可在 Amazon Bedrock、Google Cloud's Agent Platform 和 Microsoft Foundry 会话中启用它,设置为 `0` 可将其关闭。在 Linux、macOS 和 WSL 上,设置为 `1` 可启用它,这要求 `PATH` 中有 `pwsh`。在 Windows 上启用后,Claude 可以原生运行 PowerShell 命令,而无需通过 Git Bash 转发。请参阅 [PowerShell 工具](/docs/zh-CN/tools-reference#powershell-tool) |

421| `CLAUDE_CODE_USE_VERTEX` | 使用 [Google Cloud's Agent Platform](/docs/zh-CN/google-vertex-ai) |415| `CLAUDE_CODE_USE_VERTEX` | 使用 [Google Cloud's Agent Platform](/docs/zh-CN/google-vertex-ai) |

422| `CLAUDE_CODE_WEBFETCH_CACHE_TTL_MS` | 设置为 [WebFetch](/docs/zh-CN/tools-reference#webfetch-tool-behavior) 缓存每个已获取 URL 响应的毫秒数。默认值为 `900000`,即 15 分钟。仅接受纯数字;`0`、小数或任何其他写法都会保持默认值。Claude Code 每次启动时读取一次该值,因此在设置的 `env` 块中所做的更改会在您下次启动 `claude` 时生效。需要 Claude Code v2.1.233 或更高版本 |416| `CLAUDE_CODE_WEBFETCH_CACHE_TTL_MS` | 设置为 [WebFetch](/docs/zh-CN/tools-reference#webfetch-tool-behavior) 缓存每个已获取 URL 响应的毫秒数。默认值为 `900000`,即 15 分钟。仅接受纯数字;`0`、小数或任何其他写法都会保持默认值。Claude Code 每次启动时读取一次该值,因此在设置的 `env` 块中所做的更改会在您下次启动 `claude` 时生效。需要 Claude Code v2.1.233 或更高版本 |


427| `CLAUDE_CODE_WORKFLOW_PREFIX_STAGGER_MS` | [工作流](/docs/zh-CN/workflows) Agent 在发送自己的第一个请求之前,等待具有相同前缀的同级 Agent 的第一个响应开始的时间上限(毫秒)。当扇出启动多个共享同一[提示缓存前缀](/docs/zh-CN/workflows#prompt-caching-in-a-fan-out)的 Agent 时,Claude Code 会让除第一个 Agent 之外的所有 Agent 最多等待这么长时间,以便其余 Agent 读取已缓存的前缀,而不是各自在未缓存的情况下处理它。默认值为 `5000`。设置为 `0` 可禁用等待。设置了 `DISABLE_PROMPT_CACHING` 时,Agent 从不等待。需要 Claude Code v2.1.229 或更高版本 |421| `CLAUDE_CODE_WORKFLOW_PREFIX_STAGGER_MS` | [工作流](/docs/zh-CN/workflows) Agent 在发送自己的第一个请求之前,等待具有相同前缀的同级 Agent 的第一个响应开始的时间上限(毫秒)。当扇出启动多个共享同一[提示缓存前缀](/docs/zh-CN/workflows#prompt-caching-in-a-fan-out)的 Agent 时,Claude Code 会让除第一个 Agent 之外的所有 Agent 最多等待这么长时间,以便其余 Agent 读取已缓存的前缀,而不是各自在未缓存的情况下处理它。默认值为 `5000`。设置为 `0` 可禁用等待。设置了 `DISABLE_PROMPT_CACHING` 时,Agent 从不等待。需要 Claude Code v2.1.229 或更高版本 |

428| `CLAUDE_CODE_YOU_SHOULD_KNOW_DEBUG` | 设置为 `1` 可在输入框上方为 [You should know mod](/docs/zh-CN/interactive-mode#you-should-know-suggestions) 在本会话中进行的最近三次检查各显示一行。用于在没有出现任何备注时确认该 mod 正在进行检查。需要 Claude Code v2.1.287 或更高版本 |422| `CLAUDE_CODE_YOU_SHOULD_KNOW_DEBUG` | 设置为 `1` 可在输入框上方为 [You should know mod](/docs/zh-CN/interactive-mode#you-should-know-suggestions) 在本会话中进行的最近三次检查各显示一行。用于在没有出现任何备注时确认该 mod 正在进行检查。需要 Claude Code v2.1.287 或更高版本 |

429| `CLAUDE_CONFIG_DIR` | 覆盖配置目录(默认:`~/.claude`)。所有设置、会话历史和插件都存储在此路径下。关于凭据,请参阅 [Claude Code 存储凭据的位置](/docs/zh-CN/authentication#credential-management)。适用于同时运行多个账户:例如 `alias claude-work='CLAUDE_CONFIG_DIR=~/.claude-work claude'`。请在 shell、用户设置或托管设置中设置它。在设置文件中,请写入[绝对路径](#in-settings-files)。在[项目和本地设置](/docs/zh-CN/settings-reference#variables-claude-code-ignores-in-env)中被忽略 |423| `CLAUDE_CONFIG_DIR` | 覆盖配置目录(默认:`~/.claude`)。所有设置、会话历史和插件都存储在此路径下。关于凭据,请参阅 [Claude Code 存储凭据的位置](/docs/zh-CN/authentication#credential-management)。适用于同时运行多个账户:例如 `alias claude-work='CLAUDE_CONFIG_DIR=~/.claude-work claude'`。请在 shell、用户设置或托管设置中设置它。在设置文件中,请写入[绝对路径](#in-settings-files)。在[项目和本地设置](/docs/zh-CN/settings-reference#variables-claude-code-ignores-in-env)中被忽略 |

430| `CLAUDE_DISABLE_ADOPT` | 设置为 `1` 后,当您按 `←` 或使用 [`/background`](/docs/zh-CN/agent-view#from-inside-a-session) 将会话转入后台时,会停止进行中的后台工作,而不是将其延续。Claude Code 会在转入后台之前请您确认,然后停止原本会被延续的任务。需要 Claude Code v2.1.195 或更高版本 |

431| `CLAUDE_EFFORT` | 在 Bash 工具子进程和 hook 命令中自动设置为子进程启动时生效的 [effort 级别](/docs/zh-CN/model-config#adjust-effort-level):`low`、`medium`、`high`、`xhigh` 或 `max`。与传递给 [hook](/docs/zh-CN/hooks) 的 `effort.level` 字段一致。仅在当前模型支持 effort 参数时设置 |424| `CLAUDE_EFFORT` | 在 Bash 工具子进程和 hook 命令中自动设置为子进程启动时生效的 [effort 级别](/docs/zh-CN/model-config#adjust-effort-level):`low`、`medium`、`high`、`xhigh` 或 `max`。与传递给 [hook](/docs/zh-CN/hooks) 的 `effort.level` 字段一致。仅在当前模型支持 effort 参数时设置 |

432| `CLAUDE_ENABLE_BYTE_WATCHDOG` | 设置为 `1` 可强制启用字节级流式空闲看门狗,设置为 `0` 可强制禁用它。`0` 还会在运行[首字节截止时间](/docs/zh-CN/network-config#streaming-idle-watchdogs)的连接上关闭该截止时间。未设置时,该看门狗默认在直连 Anthropic API 和 [Claude Platform on AWS](/docs/zh-CN/claude-platform-on-aws) 的连接上启用,并对通过 `ANTHROPIC_BASE_URL` 或 `ANTHROPIC_AWS_BASE_URL` 访问的[网关](/docs/zh-CN/gateways)连接上的流式响应启用;在 v2.1.222 之前,它不会在这些网关连接上运行,因此即使 keep-alive ping 持续到达,事件级看门狗也可能在那里报告停滞。关于超时时间以及各计时器如何相互作用,请参阅[流式空闲看门狗](/docs/zh-CN/network-config#streaming-idle-watchdogs) |425| `CLAUDE_ENABLE_BYTE_WATCHDOG` | 设置为 `1` 可强制启用字节级流式空闲看门狗,设置为 `0` 可强制禁用它。`0` 还会在运行[首字节截止时间](/docs/zh-CN/network-config#streaming-idle-watchdogs)的连接上关闭该截止时间。未设置时,该看门狗默认在直连 Anthropic API 和 [Claude Platform on AWS](/docs/zh-CN/claude-platform-on-aws) 的连接上启用,并对通过 `ANTHROPIC_BASE_URL` 或 `ANTHROPIC_AWS_BASE_URL` 访问的[网关](/docs/zh-CN/gateways)连接上的流式响应启用;在 v2.1.222 之前,它不会在这些网关连接上运行,因此即使 keep-alive ping 持续到达,事件级看门狗也可能在那里报告停滞。关于超时时间以及各计时器如何相互作用,请参阅[流式空闲看门狗](/docs/zh-CN/network-config#streaming-idle-watchdogs) |

433| `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK` | 设置为 `1` 可在 Amazon Bedrock `vnd.amazon.eventstream` 响应上启用字节级流式空闲看门狗,这也会在 Bedrock 流式请求上启用[首字节截止时间](/docs/zh-CN/network-config#streaming-idle-watchdogs)。默认关闭。使用 `CLAUDE_STREAM_IDLE_TIMEOUT_MS` 配置超时时间 |426| `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK` | 设置为 `1` 可在 Amazon Bedrock `vnd.amazon.eventstream` 响应上启用字节级流式空闲看门狗,这也会在 Bedrock 流式请求上启用[首字节截止时间](/docs/zh-CN/network-config#streaming-idle-watchdogs)。默认关闭。使用 `CLAUDE_STREAM_IDLE_TIMEOUT_MS` 配置超时时间 |


465| `DO_NOT_TRACK` | 设置为 `1` 可选择退出遥测,效果与 `DISABLE_TELEMETRY` 相同,包括对[功能标志获取](#features-that-need-feature-flag-fetching)的影响。Claude Code 将此变量作为标准布尔值读取,因此 `0` 会保持遥测开启;Claude Code 遵循它,是因为它是许多开发者 CLI 认可的跨工具约定 |458| `DO_NOT_TRACK` | 设置为 `1` 可选择退出遥测,效果与 `DISABLE_TELEMETRY` 相同,包括对[功能标志获取](#features-that-need-feature-flag-fetching)的影响。Claude Code 将此变量作为标准布尔值读取,因此 `0` 会保持遥测开启;Claude Code 遵循它,是因为它是许多开发者 CLI 认可的跨工具约定 |

466| `ENABLE_BETA_TRACING_DETAILED` | 设置为 `1`,并将 `BETA_TRACING_ENDPOINT` 设置为您的 OTLP/HTTP 收集器端点,即可开启[详细 beta 追踪](/docs/zh-CN/monitoring-usage#traces-beta),它会添加包含内容的 span 属性以及 `claude_code.hook` span。交互式 CLI 会话还要求您的组织已被列入该 beta 的允许名单。这两个变量在[项目和本地设置](/docs/zh-CN/settings-reference#variables-claude-code-ignores-in-env)中都会被忽略 |459| `ENABLE_BETA_TRACING_DETAILED` | 设置为 `1`,并将 `BETA_TRACING_ENDPOINT` 设置为您的 OTLP/HTTP 收集器端点,即可开启[详细 beta 追踪](/docs/zh-CN/monitoring-usage#traces-beta),它会添加包含内容的 span 属性以及 `claude_code.hook` span。交互式 CLI 会话还要求您的组织已被列入该 beta 的允许名单。这两个变量在[项目和本地设置](/docs/zh-CN/settings-reference#variables-claude-code-ignores-in-env)中都会被忽略 |

467| `ENABLE_CLAUDEAI_MCP_SERVERS` | 设置为 `false` 可阻止 Claude Code 获取 [claude.ai MCP 服务器](/docs/zh-CN/mcp#use-mcp-servers-from-claude-ai)。对已登录用户默认启用。如需按项目或按组织禁用,请改为在设置中设置 [`disableClaudeAiConnectors`](/docs/zh-CN/settings-reference#disableclaudeaiconnectors) |460| `ENABLE_CLAUDEAI_MCP_SERVERS` | 设置为 `false` 可阻止 Claude Code 获取 [claude.ai MCP 服务器](/docs/zh-CN/mcp#use-mcp-servers-from-claude-ai)。对已登录用户默认启用。如需按项目或按组织禁用,请改为在设置中设置 [`disableClaudeAiConnectors`](/docs/zh-CN/settings-reference#disableclaudeaiconnectors) |

468| `ENABLE_PROMPT_CACHING_1H` | 设置为 `1` 可请求 1 小时的[提示缓存 TTL](/docs/zh-CN/prompt-caching#cache-lifetime),而不是默认的 5 分钟。适用于 API 密钥、[Amazon Bedrock](/docs/zh-CN/amazon-bedrock)、[Google Cloud's Agent Platform](/docs/zh-CN/google-vertex-ai)、[Microsoft Foundry](/docs/zh-CN/microsoft-foundry) 和 [Claude Platform on AWS](/docs/zh-CN/claude-platform-on-aws) 用户。在包含用量范围内的订阅用户会在[主对话](/docs/zh-CN/prompt-caching#which-ttl-each-request-gets)上自动获得 1 小时 TTL。正在使用[使用额度](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans)的订阅用户可以设置此变量以保留 1 小时 TTL。1 小时缓存写入按更高费率计费。如需改为按请求类别选择 TTL,请使用 `CLAUDE_CODE_PROMPT_CACHE_TTL` 和 `CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL`,它们优先于此变量 |461| `ENABLE_PROMPT_CACHING_1H` | 设置为 `1` 可请求 1 小时的[提示缓存 TTL](/docs/zh-CN/prompt-caching#cache-lifetime),而不是默认的 5 分钟。适用于 API 密钥、[Amazon Bedrock](/docs/zh-CN/amazon-bedrock)、[Google Cloud's Agent Platform](/docs/zh-CN/google-vertex-ai)、[Microsoft Foundry](/docs/zh-CN/microsoft-foundry) 和 [Claude Platform on AWS](/docs/zh-CN/claude-platform-on-aws) 用户。对于在所含用量范围内的订阅用户,Claude Code 会在[主对话](/docs/zh-CN/prompt-caching#which-ttl-each-request-gets)上自动请求 1 小时 TTL。正在消耗[使用额度](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans)的订阅用户可以设置此变量以保持 1 小时 TTL。1 小时缓存写入按更高费率计费。若要分别为主对话和主对话之外的请求选择 TTL,请使用 `CLAUDE_CODE_PROMPT_CACHE_TTL` 和 `CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL`,它们优先于此变量 |

469| `ENABLE_PROMPT_CACHING_1H_BEDROCK` | 已弃用。请改用 `ENABLE_PROMPT_CACHING_1H` |462| `ENABLE_PROMPT_CACHING_1H_BEDROCK` | 已弃用。请改用 `ENABLE_PROMPT_CACHING_1H` |

470| `ENABLE_TOOL_SEARCH` | 控制 [MCP 工具搜索](/docs/zh-CN/mcp#scale-with-mcp-tool-search)。未设置时,Claude Code 默认延迟加载所有 MCP 工具,而当 `ANTHROPIC_BASE_URL` 指向非第一方主机时则改为预先加载。`true` 会使它们在此类主机上也保持延迟加载。`auto` 在工具定义所占上下文不超过 10% 时预先加载。`auto:N` 设置自定义阈值,例如 `auto:5` 表示 5%。`false` 会预先加载所有工具。有关无论此值如何都会预先加载所有工具的模型和部署,请参阅[配置工具搜索](/docs/zh-CN/mcp#configure-tool-search) |463| `ENABLE_TOOL_SEARCH` | 控制 [MCP 工具搜索](/docs/zh-CN/mcp#scale-with-mcp-tool-search)。未设置或为 `true` 时会延迟加载 MCP 工具,但[保持工具搜索关闭的情况](/docs/zh-CN/mcp#configure-tool-search)除外。`auto` 会在工具定义达到上下文窗口的 10% 时开启工具搜索。`auto:N` 设置自定义阈值,例如 `auto:5` 表示 5%。`false` 会预先加载所有工具。如果网关拒绝工具搜索,请参阅[通过 LLM 网关使用工具搜索](/docs/zh-CN/mcp#tool-search-through-a-gateway) |

471| `FALLBACK_FOR_ALL_PRIMARY_MODELS` | 设置为任意非空值(例如 `1`),可在未配置备用模型时,让 Claude Code 对所有模型在重复出现过载错误时停止重试。与大多数开/关变量不同,**将其设置为 `0` 或 `false` 仍会启用此行为**;取消设置该变量即可恢复默认的重试行为。如果不设置此变量,当您使用 API 密钥或[第三方提供商](/docs/zh-CN/third-party-integrations)而非 Claude 订阅进行身份验证时,Claude Code 仅在其识别为 Opus、Fable 或 Mythos 的模型上以这种方式停止重试。在 Claude Code v2.1.160 或更高版本中,对于任何主模型,Claude Code 都会在重复出现过载错误时切换到您配置的[备用模型链](/docs/zh-CN/model-config#fallback-model-chains),因此此变量不影响切换到备用模型 |

472| `FORCE_AUTOUPDATE_PLUGINS` | 设置为 `1` 可在主自动更新程序已通过 `DISABLE_AUTOUPDATER` 禁用时仍强制插件自动更新 |464| `FORCE_AUTOUPDATE_PLUGINS` | 设置为 `1` 可在主自动更新程序已通过 `DISABLE_AUTOUPDATER` 禁用时仍强制插件自动更新 |

473| `FORCE_HYPERLINK` | 设置为 `1` 可在您的终端支持可点击的 OSC 8 超链接但未被自动检测到时启用它们,设置为 `0` 可禁用它们。未设置时,Claude Code 仅在检测到终端支持时启用超链接。Claude Code 将此值解析为数字而非布尔值,因此 `false`、`no` 或 `off` 之类的值会启用超链接,而不是禁用它们。即使 Claude Code 无法检测到终端支持(例如通过 SSH 时),页脚的 [PR 或合并请求徽章](/docs/zh-CN/interactive-mode#pr-review-status)也会渲染为超链接。设置为 `0` 可将该徽章渲染为纯文本 |465| `FORCE_HYPERLINK` | 设置为 `1` 可在您的终端支持可点击的 OSC 8 超链接但未被自动检测到时启用它们,设置为 `0` 可禁用它们。未设置时,Claude Code 仅在检测到终端支持时启用超链接。Claude Code 将此值解析为数字而非布尔值,因此 `false`、`no` 或 `off` 之类的值会启用超链接,而不是禁用它们。即使 Claude Code 无法检测到终端支持(例如通过 SSH 时),页脚的 [PR 或合并请求徽章](/docs/zh-CN/interactive-mode#pr-review-status)也会渲染为超链接。设置为 `0` 可将该徽章渲染为纯文本 |

474| `FORCE_PROMPT_CACHING_5M` | 设置为 `1` 可强制使用 5 分钟的提示缓存 TTL,即使原本会应用 1 小时 TTL。覆盖 `CLAUDE_CODE_PROMPT_CACHE_TTL`、`CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL`、`ENABLE_PROMPT_CACHING_1H` 以及 `promptCacheTtl` 和 `subagentPromptCacheTtl` 设置 |466| `FORCE_PROMPT_CACHING_5M` | 设置为 `1` 可强制使用 5 分钟的提示缓存 TTL,即使原本会应用 1 小时 TTL。覆盖 `CLAUDE_CODE_PROMPT_CACHE_TTL`、`CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL`、`ENABLE_PROMPT_CACHING_1H` 以及 `promptCacheTtl` 和 `subagentPromptCacheTtl` 设置 |


572 564 

573关闭获取后,您将无法:565关闭获取后,您将无法:

574 566 

575* 运行 [`/auto-mode-setup`](/docs/zh-CN/auto-mode-config#generate-environment-entries) 来起草 `autoMode.environment` 条目

576* 在设置了 `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` 或 `DISABLE_GROWTHBOOK` 的情况下使用 [Remote Control](/docs/zh-CN/remote-control)。关于 `DISABLE_TELEMETRY` 和 `DO_NOT_TRACK`,请参阅 [Remote Control 要求](/docs/zh-CN/remote-control#requirements)567* 在设置了 `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` 或 `DISABLE_GROWTHBOOK` 的情况下使用 [Remote Control](/docs/zh-CN/remote-control)。关于 `DISABLE_TELEMETRY` 和 `DO_NOT_TRACK`,请参阅 [Remote Control 要求](/docs/zh-CN/remote-control#requirements)

577* 在 [Remote Control](/docs/zh-CN/remote-control#requirements) 不可用时[向本机以外的会话发送消息](/docs/zh-CN/cross-session-messaging#message-sessions-on-other-machines)。关闭获取后,本机上会话之间的消息传递仍可正常工作568* 在 [Remote Control](/docs/zh-CN/remote-control#requirements) 不可用时[向本机以外的会话发送消息](/docs/zh-CN/cross-session-messaging#message-sessions-on-other-machines)。关闭获取后,本机上会话之间的消息传递仍可正常工作

578* 运行 [`claude import` 或 `/import` 命令](/docs/zh-CN/cli-reference#cli-commands)569* 运行 [`claude import` 或 `/import` 命令](/docs/zh-CN/cli-reference#cli-commands)

errors.md +589 −342

Details

83| `Your account does not have access to Claude. Please login again or contact your administrator.` | [身份验证](#oauth-token-revoked-or-expired) |83| `Your account does not have access to Claude. Please login again or contact your administrator.` | [身份验证](#oauth-token-revoked-or-expired) |

84| `API Error: 401 Invalid authentication credentials` | [身份验证](#api-error-401-invalid-authentication-credentials) |84| `API Error: 401 Invalid authentication credentials` | [身份验证](#api-error-401-invalid-authentication-credentials) |

85| `Login expired · Please run /login` | [身份验证](#login-expired) |85| `Login expired · Please run /login` | [身份验证](#login-expired) |

86| `The browser can't return the sign-in to Claude Code automatically` | [身份验证](#couldnt-start-the-local-sign-in-listener) |

87| `Couldn't start the local listener that receives the browser sign-in. Try again.` | [身份验证](#couldnt-start-the-local-sign-in-listener) |

86| `Failed to start OAuth callback server` | [身份验证](#failed-to-start-oauth-callback-server) |88| `Failed to start OAuth callback server` | [身份验证](#failed-to-start-oauth-callback-server) |

87| `Claude login not accepted · Run /login, then try again` | [身份验证](#claude-login-not-accepted) |89| `Claude login not accepted · Run /login, then try again` | [身份验证](#claude-login-not-accepted) |

88| `Artifacts need a claude.ai login` | [身份验证](#artifacts-need-a-claude-ai-login) |90| `Artifacts need a claude.ai login` | [身份验证](#artifacts-need-a-claude-ai-login) |


100| `claude.ai rejected the session token` / `session token rejected` | [身份验证](#claude-ai-rejected-the-session-token) |102| `claude.ai rejected the session token` / `session token rejected` | [身份验证](#claude-ai-rejected-the-session-token) |

101| `MCP server "<name>" needs you to sign in again (run /mcp to re-authenticate)` | [身份验证](#mcp-server-needs-you-to-sign-in-again) |103| `MCP server "<name>" needs you to sign in again (run /mcp to re-authenticate)` | [身份验证](#mcp-server-needs-you-to-sign-in-again) |

102| `rejected the credential from its headersHelper` / `rejected the Authorization header in its config` | [身份验证](#mcp-server-needs-you-to-sign-in-again) |104| `rejected the credential from its headersHelper` / `rejected the Authorization header in its config` | [身份验证](#mcp-server-needs-you-to-sign-in-again) |

105| `(check the helper, then start a new task or chat)` / `(update it, then start a new task or chat)` | [身份验证](#mcp-credential-rejected-in-cowork) |

103| `MCP server "<name>" needs additional permissions (scope: "<scope>") — run /mcp to re-authenticate` | [身份验证](#mcp-server-needs-you-to-sign-in-again) |106| `MCP server "<name>" needs additional permissions (scope: "<scope>") — run /mcp to re-authenticate` | [身份验证](#mcp-server-needs-you-to-sign-in-again) |

104| `MCP server "<name>" requires re-authorization (token expired)` | [身份验证](#mcp-server-needs-you-to-sign-in-again) |107| `MCP server "<name>" requires re-authorization (token expired)` | [身份验证](#mcp-server-needs-you-to-sign-in-again) |

105| `This server's URL is missing or not a valid URL, so sign-in can't start` | [身份验证](#mcp-server-url-is-missing-or-not-a-valid-url) |108| `This server's URL is missing or not a valid URL, so sign-in can't start` | [身份验证](#mcp-server-url-is-missing-or-not-a-valid-url) |


200| `Installation was killed before it could finish (exit code 137)` | [安装和登录故障排除](/docs/zh-CN/troubleshoot-install#installation-was-killed-before-it-could-finish) |203| `Installation was killed before it could finish (exit code 137)` | [安装和登录故障排除](/docs/zh-CN/troubleshoot-install#installation-was-killed-before-it-could-finish) |

201| `The connection dropped while downloading the update` | [安装和登录故障排除](/docs/zh-CN/troubleshoot-install#the-connection-dropped-while-downloading-the-update) |204| `The connection dropped while downloading the update` | [安装和登录故障排除](/docs/zh-CN/troubleshoot-install#the-connection-dropped-while-downloading-the-update) |

202| `Download timed out: exceeded the total deadline` | [安装和登录故障排除](/docs/zh-CN/troubleshoot-install#the-connection-dropped-while-downloading-the-update) |205| `Download timed out: exceeded the total deadline` | [安装和登录故障排除](/docs/zh-CN/troubleshoot-install#the-connection-dropped-while-downloading-the-update) |

206| `Release verification failed for Claude Code <version> (<reason>). The update was not installed.` | [安装和登录故障排除](/docs/zh-CN/troubleshoot-install#release-verification-failed) |

207| `Auto-update failed · Run claude doctor` | [安装和登录故障排除](/docs/zh-CN/troubleshoot-install#auto-update-failed) |

203| `--bg and --print conflict` | [命令行错误](#conflict-between-bg-and-print) |208| `--bg and --print conflict` | [命令行错误](#conflict-between-bg-and-print) |

204| `Couldn't tell whether --bg is a flag or text here, so nothing was started` | [命令行错误](#couldnt-tell-whether-bg-is-a-flag-or-text) |209| `Couldn't tell whether --bg is a flag or text here, so nothing was started` | [命令行错误](#couldnt-tell-whether-bg-is-a-flag-or-text) |

205| `Error: Cannot use both --append-subagent-system-prompt and --append-subagent-system-prompt-file. Please use only one.` | [命令行错误](#conflict-between-a-system-prompt-flag-and-its-file-form) |210| `Error: Cannot use both --append-subagent-system-prompt and --append-subagent-system-prompt-file. Please use only one.` | [命令行错误](#conflict-between-a-system-prompt-flag-and-its-file-form) |


270| `Custom output styles can't be selected over Remote Control or from a relayed message` | [命令行错误](#custom-output-styles-cant-be-selected-over-remote-control) |275| `Custom output styles can't be selected over Remote Control or from a relayed message` | [命令行错误](#custom-output-styles-cant-be-selected-over-remote-control) |

271| `Output styles are saved to local settings (.claude/settings.local.json), which this session doesn't load` | [命令行错误](#output-styles-are-saved-to-local-settings-which-this-session-doesnt-load) |276| `Output styles are saved to local settings (.claude/settings.local.json), which this session doesn't load` | [命令行错误](#output-styles-are-saved-to-local-settings-which-this-session-doesnt-load) |

272| `/recap only runs when you ask for it yourself in this session` | [命令行错误](#recap-only-runs-when-you-ask-for-it-yourself) |277| `/recap only runs when you ask for it yourself in this session` | [命令行错误](#recap-only-runs-when-you-ask-for-it-yourself) |

278| `/feedback is disabled by your organization's policy`,或 `/bug` 或 `/share` 的相同消息 | [命令行错误](#feedback-is-disabled-by-your-organizations-policy) |

273| `` `plugin eval` is currently in early access `` / `` `plugin eval` is currently unavailable `` | [Plugin 错误](#plugin-eval-is-currently-in-early-access) |279| `` `plugin eval` is currently in early access `` / `` `plugin eval` is currently unavailable `` | [Plugin 错误](#plugin-eval-is-currently-in-early-access) |

274| `cannot be evaluated where sessions load it` | [使用 evals 测试插件](/docs/zh-CN/plugin-evals#cannot-be-evaluated-where-sessions-load-it) |280| `cannot be evaluated where sessions load it` | [使用 evals 测试插件](/docs/zh-CN/plugin-evals#cannot-be-evaluated-where-sessions-load-it) |

275| `Marketplace "<name>" is registered from an untrusted source` | [Plugin 错误](#marketplace-is-registered-from-an-untrusted-source) |281| `Marketplace "<name>" is registered from an untrusted source` | [Plugin 错误](#marketplace-is-registered-from-an-untrusted-source) |


289| `The packages it lists are not installed` / `The packages it lists were not installed, because` | [Plugin 故障排除](/docs/zh-CN/plugins/troubleshooting#the-packages-it-lists-are-not-installed) |295| `The packages it lists are not installed` / `The packages it lists were not installed, because` | [Plugin 故障排除](/docs/zh-CN/plugins/troubleshooting#the-packages-it-lists-are-not-installed) |

290| `does not load (...), so Claude Code ignores the whole file` | [Plugin 故障排除](/docs/zh-CN/plugins/troubleshooting#does-not-load-so-claude-code-ignores-the-whole-file) |296| `does not load (...), so Claude Code ignores the whole file` | [Plugin 故障排除](/docs/zh-CN/plugins/troubleshooting#does-not-load-so-claude-code-ignores-the-whole-file) |

291| `path escapes plugin directory` | [Plugin 错误](#path-escapes-plugin-directory) |297| `path escapes plugin directory` | [Plugin 错误](#path-escapes-plugin-directory) |

298| `Plugin not loaded: its manifest <path> was not read` | [Plugin 错误](#plugin-not-loaded-its-manifest-was-not-read) |

292| `path could not be checked` | [Plugin 错误](#path-could-not-be-checked) |299| `path could not be checked` | [Plugin 错误](#path-could-not-be-checked) |

293| `its marketplace entry path does not stay inside the marketplace directory` | [Plugin 错误](#marketplace-entry-path-does-not-stay-inside-the-marketplace-directory) |300| `its marketplace entry path does not stay inside the marketplace directory` | [Plugin 错误](#marketplace-entry-path-does-not-stay-inside-the-marketplace-directory) |

294| `Plugin source path refused` | [Plugin 错误](#marketplace-entry-path-does-not-stay-inside-the-marketplace-directory) |301| `Plugin source path refused` | [Plugin 错误](#marketplace-entry-path-does-not-stay-inside-the-marketplace-directory) |


304| `File is covered by a Read deny rule in your permission settings` | [工具错误](#file-is-covered-by-a-read-deny-rule) |311| `File is covered by a Read deny rule in your permission settings` | [工具错误](#file-is-covered-by-a-read-deny-rule) |

305| `cannot contain null bytes (\0)` | [工具错误](#path-cannot-contain-null-bytes) |312| `cannot contain null bytes (\0)` | [工具错误](#path-cannot-contain-null-bytes) |

306| `Path contains null bytes` | [工具错误](#path-cannot-contain-null-bytes) |313| `Path contains null bytes` | [工具错误](#path-cannot-contain-null-bytes) |

314| `File is too large to read as an image (the limit is 128MB)` | [工具错误](#file-is-too-large-to-read-as-an-image) |

315| `Cannot read this as an image: <path> is a pipe or a device` | [工具错误](#file-is-too-large-to-read-as-an-image) |

307| `subagent_type is required: the general-purpose agent is not available in this session` | [工具错误](#subagent-type-is-required) |316| `subagent_type is required: the general-purpose agent is not available in this session` | [工具错误](#subagent-type-is-required) |

308| `Error: this write left the memory index at MEMORY.md at ..., over its ... read limit` | [工具错误](#memory-index-is-over-its-read-limit) |317| `Error: this write left the memory index at MEMORY.md at ..., over its ... read limit` | [工具错误](#memory-index-is-over-its-read-limit) |

309| `pkill: refusing to run` | [工具错误](#pkill-pattern-matches-the-claude-code-process) |318| `pkill: refusing to run` | [工具错误](#pkill-pattern-matches-the-claude-code-process) |

310| `Failed to write to <name>'s inbox — nothing was sent` | [工具错误](#failed-to-write-to-a-teammate-inbox) |319| `Failed to write to <name>'s inbox — nothing was sent` | [工具错误](#failed-to-write-to-a-teammate-inbox) |

311| `Failed to write the plan approval request to the lead's inbox — plan not submitted` | [工具错误](#failed-to-write-to-a-teammate-inbox) |320| `Failed to write the plan approval request to the lead's inbox — plan not submitted` | [工具错误](#failed-to-write-to-a-teammate-inbox) |

312| `Its agent definition was not restored: the folder its definition file came from is not trusted` | [工具错误](#teammate-agent-definition-not-restored) |321| `Its agent definition was not restored: the folder its definition file came from is not trusted` | [工具错误](#teammate-agent-definition-not-restored) |

322| `Only a teammate can approve a shutdown request` | [工具错误](#only-a-teammate-can-approve-a-shutdown-request) |

313| `Message too large for cross-session delivery` | [工具错误](#message-too-large-for-cross-session-delivery) |323| `Message too large for cross-session delivery` | [工具错误](#message-too-large-for-cross-session-delivery) |

314| `Too many messages to this session just now` | [工具错误](#too-many-messages-to-this-session-just-now) |324| `Too many messages to this session just now` | [工具错误](#too-many-messages-to-this-session-just-now) |

315| `Cross-session message was dropped at the recipient session's inbox` | [工具错误](#cross-session-message-dropped-at-the-inbox) |325| `Cross-session message was dropped at the recipient session's inbox` | [工具错误](#cross-session-message-dropped-at-the-inbox) |


325| `Your disk quota is full on the filesystem with Claude Code's temp directory <dir> (EDQUOT)` | [工具错误](#disk-quota-or-temp-filesystem-is-full) |335| `Your disk quota is full on the filesystem with Claude Code's temp directory <dir> (EDQUOT)` | [工具错误](#disk-quota-or-temp-filesystem-is-full) |

326| `The filesystem with Claude Code's temp directory <dir>, or your disk quota on it, is full (ENOSPC)` | [工具错误](#disk-quota-or-temp-filesystem-is-full) |336| `The filesystem with Claude Code's temp directory <dir>, or your disk quota on it, is full (ENOSPC)` | [工具错误](#disk-quota-or-temp-filesystem-is-full) |

327| `Command output was lost: the temp filesystem at <dir> is full` / `is out of inodes` | [工具错误](#disk-quota-or-temp-filesystem-is-full) |337| `Command output was lost: the temp filesystem at <dir> is full` / `is out of inodes` | [工具错误](#disk-quota-or-temp-filesystem-is-full) |

338| `The command was not started: this computer's disk is full (ENOSPC)` / `(EDQUOT)` | [工具错误](#disk-quota-or-temp-filesystem-is-full) |

328| `File is not valid UTF-8. It may use a legacy encoding such as Windows-1252, Shift-JIS or GBK, or be binary` | [工具错误](#file-is-not-valid-utf-8) |339| `File is not valid UTF-8. It may use a legacy encoding such as Windows-1252, Shift-JIS or GBK, or be binary` | [工具错误](#file-is-not-valid-utf-8) |

329| `the source file is not valid UTF-8 text` / `the source file is not valid UTF-16 text` | [工具错误](#the-source-file-is-not-valid-utf-8-text) |340| `the source file is not valid UTF-8 text` / `the source file is not valid UTF-16 text` | [工具错误](#the-source-file-is-not-valid-utf-8-text) |

330| `the source file has the replacement character U+FFFD` | [工具错误](#the-source-file-is-not-valid-utf-8-text) |341| `the source file has the replacement character U+FFFD` | [工具错误](#the-source-file-is-not-valid-utf-8-text) |

331| `Not published: that file is on a network share` | [工具错误](#not-published-that-file-is-on-a-network-share) |342| `Not published: that file is on a network share` | [工具错误](#not-published-that-file-is-on-a-network-share) |

343| `Not published: Claude sent the same content again after a newer version of the artifact turned it away` / `Not published: Claude sent its changes again over the same file after a newer version of the artifact turned them away` | [工具错误](#not-published-a-newer-version-of-the-artifact-turned-it-away) |

332| `Reading a local file from outside this session's connected folders, or through a link, needs the approval card` | [工具错误](#reading-a-local-file-from-outside-the-connected-folders) |344| `Reading a local file from outside this session's connected folders, or through a link, needs the approval card` | [工具错误](#reading-a-local-file-from-outside-the-connected-folders) |

333| `cannot read file_path (...) — the file could not be examined, and no one can answer the approval card` | [工具错误](#reading-a-local-file-from-outside-the-connected-folders) |345| `cannot read file_path (...) — the file could not be examined, and no one can answer the approval card` | [工具错误](#reading-a-local-file-from-outside-the-connected-folders) |

334| `WebFetch cannot fetch localhost or other hostnames without a dot` | [工具错误](#webfetch-cannot-fetch-localhost) |346| `WebFetch cannot fetch localhost or other hostnames without a dot` | [工具错误](#webfetch-cannot-fetch-localhost) |


345| `Can't open — this session is running in another terminal` | [后台会话错误](#this-session-is-running-in-another-terminal) |357| `Can't open — this session is running in another terminal` | [后台会话错误](#this-session-is-running-in-another-terminal) |

346| `This conversation is already open in another running Claude session` | [后台会话错误](#this-session-is-running-in-another-terminal) |358| `This conversation is already open in another running Claude session` | [后台会话错误](#this-session-is-running-in-another-terminal) |

347| `This session's saved conversation is no longer on disk` | [后台会话错误](#this-sessions-saved-conversation-is-no-longer-on-disk) |359| `This session's saved conversation is no longer on disk` | [后台会话错误](#this-sessions-saved-conversation-is-no-longer-on-disk) |

348| `Bypass permissions was requested at launch and ignored` | [使用 bypassPermissions 模式跳过所有检查](/docs/zh-CN/permission-modes#bypass-permissions-acceptance) |360| `Bypass permissions was requested at launch and ignored` | [后台会话中忽略了 Bypass permissions](/docs/zh-CN/permission-modes#bypass-permissions-ignored-in-a-background-session) |

349| `kept <id> — its worktree is still at <path>` | [后台会话错误](#worktree-has-commits-that-are-not-pushed-anywhere) |361| `kept <id> — its worktree is still at <path>` | [后台会话错误](#worktree-has-commits-that-are-not-pushed-anywhere) |

350| `kept <id> — <n> unpushed commits on <branch>` | [后台会话错误](#worktree-has-commits-that-are-not-pushed-anywhere) |362| `kept <id> — <n> unpushed commits on <branch>` | [后台会话错误](#worktree-has-commits-that-are-not-pushed-anywhere) |

351| `kept <id> — worktree has commits that are not pushed anywhere` | [后台会话错误](#worktree-has-commits-that-are-not-pushed-anywhere) |363| `kept <id> — worktree has commits that are not pushed anywhere` | [后台会话错误](#worktree-has-commits-that-are-not-pushed-anywhere) |


354| `Session <id> was stopped while the respawn was in flight` | [后台会话错误](#session-was-stopped-while-the-respawn-was-in-flight) |366| `Session <id> was stopped while the respawn was in flight` | [后台会话错误](#session-was-stopped-while-the-respawn-was-in-flight) |

355| `This session was running agent '<name>', which is no longer available` | [后台会话错误](#session-agent-no-longer-available) |367| `This session was running agent '<name>', which is no longer available` | [后台会话错误](#session-agent-no-longer-available) |

356| `This session restarted <time> after its next /loop wakeup was due, so that wakeup will not fire` | [后台会话错误](#restarted-after-its-next-loop-wakeup-was-due) |368| `This session restarted <time> after its next /loop wakeup was due, so that wakeup will not fire` | [后台会话错误](#restarted-after-its-next-loop-wakeup-was-due) |

369| `No LLM gateway: a gateway set in your shell isn't passed to a session opened from another folder` | [后台会话错误](#no-llm-gateway-opened-from-another-folder) |

370| `No LLM gateway: opened from another folder · respawn from <folder>` | [后台会话错误](#no-llm-gateway-opened-from-another-folder) |

357| `CLAUDE_CODE_PROCESS_WRAPPER: launcher ...` | [后台会话错误](#claude_code_process_wrapper-launcher-errors) |371| `CLAUDE_CODE_PROCESS_WRAPPER: launcher ...` | [后台会话错误](#claude_code_process_wrapper-launcher-errors) |

358| `EUNKNOWN: unknown error, uv_spawn` | [后台会话错误](#eunknown-when-starting-a-background-session) |372| `EUNKNOWN: unknown error, uv_spawn` | [后台会话错误](#eunknown-when-starting-a-background-session) |

359| `EACCES: permission denied, posix_spawn` | [后台会话错误](#eacces-when-starting-a-background-session) |373| `EACCES: permission denied, posix_spawn` | [后台会话错误](#eacces-when-starting-a-background-session) |


394| `API Error: ANTHROPIC_FOUNDRY_RESOURCE must be a Foundry resource name` | [配置警告](#anthropic-foundry-resource-must-be-a-foundry-resource-name) |408| `API Error: ANTHROPIC_FOUNDRY_RESOURCE must be a Foundry resource name` | [配置警告](#anthropic-foundry-resource-must-be-a-foundry-resource-name) |

395| `headersHelper not run — this workspace has no persisted trust` | [配置警告](#headershelper-not-run) |409| `headersHelper not run — this workspace has no persisted trust` | [配置警告](#headershelper-not-run) |

396| `Invalid permission rule "..." was skipped: Malformed Tool(content) rule` | [配置警告](#malformed-tool-content-rule) |410| `Invalid permission rule "..." was skipped: Malformed Tool(content) rule` | [配置警告](#malformed-tool-content-rule) |

411| `matches no tool · check for typos` / `matches no known tool — check for typos` | [配置警告](#matches-no-tool) |

397| `... is not matched by file permission checks` | [配置警告](#is-not-matched-by-file-permission-checks) |412| `... is not matched by file permission checks` | [配置警告](#is-not-matched-by-file-permission-checks) |

413| `Write(<path>) never matches · use Edit(<path>)` / `Glob(<path>) never matches · use Read(<path>)` | [配置警告](#is-not-matched-by-file-permission-checks) |

398| `... has a wildcard before the rest of the command` | [配置警告](#has-a-wildcard-before-the-rest-of-the-command) |414| `... has a wildcard before the rest of the command` | [配置警告](#has-a-wildcard-before-the-rest-of-the-command) |

415| `allows any option at its * · use an exact value` | [配置警告](#has-a-wildcard-before-the-rest-of-the-command) |

399| `Denying Bash also turns off the PowerShell tool, so Claude has neither` | [配置警告](#denying-bash-also-turns-off-the-powershell-tool) |416| `Denying Bash also turns off the PowerShell tool, so Claude has neither` | [配置警告](#denying-bash-also-turns-off-the-powershell-tool) |

400| `CLAUDE_CODE_DISABLE_1M_CONTEXT is set, but the 200K limit isn't enforced` | [配置警告](#the-200k-limit-isnt-enforced) |417| `CLAUDE_CODE_DISABLE_1M_CONTEXT is set, but the 200K limit isn't enforced` | [配置警告](#the-200k-limit-isnt-enforced) |

418| `CLAUDE_CODE_AUTO_COMPACT_WINDOW="<value>" reads as <N> tokens, so Claude Code treats it as the 100k minimum` | [`CLAUDE_CODE_AUTO_COMPACT_WINDOW` 的值和警告](/docs/zh-CN/model-config#claude_code_auto_compact_window-values) |

419| `CLAUDE_CODE_AUTO_COMPACT_WINDOW="<value>" is too large, so Claude Code treats it as the 1M maximum` | [`CLAUDE_CODE_AUTO_COMPACT_WINDOW` 的值和警告](/docs/zh-CN/model-config#claude_code_auto_compact_window-values) |

420| `CLAUDE_CODE_AUTO_COMPACT_WINDOW="<value>" isn't a usable size, so Claude Code ignores it` | [`CLAUDE_CODE_AUTO_COMPACT_WINDOW` 的值和警告](/docs/zh-CN/model-config#claude_code_auto_compact_window-values) |

401| `Model "<model>" isn't recognized · context assumed to be 200k tokens` | [更正网关或自定义模型 ID 的窗口](/docs/zh-CN/model-config#correct-the-window-for-a-gateway-or-custom-model-id) |421| `Model "<model>" isn't recognized · context assumed to be 200k tokens` | [更正网关或自定义模型 ID 的窗口](/docs/zh-CN/model-config#correct-the-window-for-a-gateway-or-custom-model-id) |

402| `Claude Code doesn't recognize the model "<model>", so it assumes a context window of 200k tokens` | [更正网关或自定义模型 ID 的窗口](/docs/zh-CN/model-config#correct-the-window-for-a-gateway-or-custom-model-id) |422| `Claude Code doesn't recognize the model "<model>", so it assumes a context window of 200k tokens` | [更正网关或自定义模型 ID 的窗口](/docs/zh-CN/model-config#correct-the-window-for-a-gateway-or-custom-model-id) |

403| `[claude-code:unrecognized_model]` | [配置警告](#unrecognized-model-id-on-a-request) |423| `[claude-code:unrecognized_model]` | [配置警告](#unrecognized-model-id-on-a-request) |


462| [`CLAUDE_CODE_MAX_RETRIES`](/docs/zh-CN/env-vars) | 10 | 重试尝试次数。从 v2.1.186 开始上限为 15;从 v2.1.199 开始 `CLAUDE_CODE_RETRY_WATCHDOG` 提高默认值并移除上限。降低它以在脚本中更快地显示故障。 |482| [`CLAUDE_CODE_MAX_RETRIES`](/docs/zh-CN/env-vars) | 10 | 重试尝试次数。从 v2.1.186 开始上限为 15;从 v2.1.199 开始 `CLAUDE_CODE_RETRY_WATCHDOG` 提高默认值并移除上限。降低它以在脚本中更快地显示故障。 |

463| [`CLAUDE_CODE_RETRY_WATCHDOG`](/docs/zh-CN/env-vars) | 未设置 | 在 CI 作业等无人值守会话中设置为 `1`,以无限期重试 `429` 和 `529` 容量错误,而不是在 `CLAUDE_CODE_MAX_RETRIES` 尝试后失败。当标准速度请求获得报告支出限制或耗尽使用额度的 `429` 时,Claude Code 立即失败,即使来自 [gateway spend cap](#spend-limit-reached) 的也是如此,该上限按计划重置。在 v2.1.239 之前,看门狗无限期重试这些。对于快速模式请求,请参阅 [Handle rate limits](/docs/zh-CN/fast-mode#handle-rate-limits)。在 v2.1.199 或更高版本上,它还为其他瞬时错误(例如服务器错误、超时和断开连接)提高默认重试计数至 300,大约三小时的退避,如果您明确设置该变量,则移除 `CLAUDE_CODE_MAX_RETRIES` 的 15 上限。 |483| [`CLAUDE_CODE_RETRY_WATCHDOG`](/docs/zh-CN/env-vars) | 未设置 | 在 CI 作业等无人值守会话中设置为 `1`,以无限期重试 `429` 和 `529` 容量错误,而不是在 `CLAUDE_CODE_MAX_RETRIES` 尝试后失败。当标准速度请求获得报告支出限制或耗尽使用额度的 `429` 时,Claude Code 立即失败,即使来自 [gateway spend cap](#spend-limit-reached) 的也是如此,该上限按计划重置。在 v2.1.239 之前,看门狗无限期重试这些。对于快速模式请求,请参阅 [Handle rate limits](/docs/zh-CN/fast-mode#handle-rate-limits)。在 v2.1.199 或更高版本上,它还为其他瞬时错误(例如服务器错误、超时和断开连接)提高默认重试计数至 300,大约三小时的退避,如果您明确设置该变量,则移除 `CLAUDE_CODE_MAX_RETRIES` 的 15 上限。 |

464| [`CLAUDE_CODE_RETRY_WATCHDOG_MAX_WAIT_MS`](/docs/zh-CN/env-vars) | 未设置 | 设置 `CLAUDE_CODE_RETRY_WATCHDOG` 时,每个 API 请求在等待 `429` 和 `529` 错误上所花费的最长时间(毫秒)。未设置时,等待时间没有限制。需要 Claude Code v2.1.295 或更高版本。 |484| [`CLAUDE_CODE_RETRY_WATCHDOG_MAX_WAIT_MS`](/docs/zh-CN/env-vars) | 未设置 | 设置 `CLAUDE_CODE_RETRY_WATCHDOG` 时,每个 API 请求在等待 `429` 和 `529` 错误上所花费的最长时间(毫秒)。未设置时,等待时间没有限制。需要 Claude Code v2.1.295 或更高版本。 |

485| [`CLAUDE_CODE_RETRY_WATCHDOG_USAGE_LIMIT_RECHECK_MS`](/docs/zh-CN/env-vars) | 未设置 | 设置 `CLAUDE_CODE_RETRY_WATCHDOG` 后,当请求等待[用量限制](#youve-hit-your-session-limit)重置时,检查该限制是否已提前解除的最短间隔(毫秒)。当检查发现限制已解除时,请求会立即发出。请提供 `60000` 到 `10800000` 之间的纯数字。未设置或超出该范围时,不进行检查。关于 Claude Code 何时跳过这些检查,请参阅[环境变量参考](/docs/zh-CN/env-vars)。需要 Claude Code v2.1.305 或更高版本。 |

465| [`CLAUDE_CODE_OVERLOADED_RETRY_BASE_DELAY_MS`](/docs/zh-CN/env-vars) | 500 | 当 API 以 `529` 过载错误拒绝请求时,该请求各次重试之间退避的起始延迟(毫秒)。当 API 容量已满时,可将其提高(最高 32000),以便在更长的时间窗口内分散重试。当 `CLAUDE_CODE_RETRY_WATCHDOG` 设置为 `1`,或被拒绝的请求是在[快速模式](/docs/zh-CN/fast-mode#handle-rate-limits)下发送时,此变量无效。需要 Claude Code v2.1.292 或更高版本。 |486| [`CLAUDE_CODE_OVERLOADED_RETRY_BASE_DELAY_MS`](/docs/zh-CN/env-vars) | 500 | 当 API 以 `529` 过载错误拒绝请求时,该请求各次重试之间退避的起始延迟(毫秒)。当 API 容量已满时,可将其提高(最高 32000),以便在更长的时间窗口内分散重试。当 `CLAUDE_CODE_RETRY_WATCHDOG` 设置为 `1`,或被拒绝的请求是在[快速模式](/docs/zh-CN/fast-mode#handle-rate-limits)下发送时,此变量无效。需要 Claude Code v2.1.292 或更高版本。 |

466| [`CLAUDE_CODE_OVERLOADED_RETRY_MAX_DELAY_MS`](/docs/zh-CN/env-vars) | 32000 | 当 API 以 `529` 过载错误拒绝请求时,该请求各次重试之间退避的上限(毫秒)。当 API 容量已满时,可将其提高(最高 64000),使后续重试之间的间隔持续拉大。当 `CLAUDE_CODE_RETRY_WATCHDOG` 设置为 `1`,或被拒绝的请求是在[快速模式](/docs/zh-CN/fast-mode#handle-rate-limits)下发送时,此变量无效。需要 Claude Code v2.1.296 或更高版本。 |487| [`CLAUDE_CODE_OVERLOADED_RETRY_MAX_DELAY_MS`](/docs/zh-CN/env-vars) | 32000 | 当 API 以 `529` 过载错误拒绝请求时,该请求各次重试之间退避的上限(毫秒)。当 API 容量已满时,可将其提高(最高 64000),使后续重试之间的间隔持续拉大。当 `CLAUDE_CODE_RETRY_WATCHDOG` 设置为 `1`,或被拒绝的请求是在[快速模式](/docs/zh-CN/fast-mode#handle-rate-limits)下发送时,此变量无效。需要 Claude Code v2.1.296 或更高版本。 |

467| [`API_TIMEOUT_MS`](/docs/zh-CN/env-vars) | 600000 | 每次请求尝试接收其响应头的时限(毫秒)。它不限制流式响应在此之后持续的时长。为慢速网络或代理提高它。关于它如何限制首字节截止时间,请参阅 [No response from API](#no-response-from-api)。 |488| [`API_TIMEOUT_MS`](/docs/zh-CN/env-vars) | 600000 | 每次请求尝试接收其响应头的时限(毫秒)。它不限制流式响应在此之后持续的时长。为慢速网络或代理提高它。关于它如何限制首字节截止时间,请参阅 [No response from API](#no-response-from-api)。 |


490 511 

491* 检查 [status.claude.com](https://status.claude.com) 或消息中指出的提供商状态页面,查看是否有活跃事件512* 检查 [status.claude.com](https://status.claude.com) 或消息中指出的提供商状态页面,查看是否有活跃事件

492* 等待一分钟,然后再次发送您的消息。您的原始消息仍在对话中,因此对于较长的提示词,您可以输入 `try again` 而不是粘贴整个内容。513* 等待一分钟,然后再次发送您的消息。您的原始消息仍在对话中,因此对于较长的提示词,您可以输入 `try again` 而不是粘贴整个内容。

514* 如果 [`ANTHROPIC_BASE_URL`](/docs/zh-CN/env-vars) 指向 [LLM 网关](/docs/zh-CN/llm-gateway),并且每个请求都以这种方式失败,请检查您的网关是否拒绝了 Claude Code 默认发送的工具搜索字段。要进行检查,请按照[通过 LLM 网关使用工具搜索](/docs/zh-CN/mcp#tool-search-through-a-gateway)中的说明设置 `ENABLE_TOOL_SEARCH=false`,然后重试。在 v2.1.304 之前,除非您使用 `ENABLE_TOOL_SEARCH` 启用工具搜索,否则在网关后面工具搜索处于关闭状态。

493* 如果错误持续存在且没有发布事件,请运行 `/feedback` 以便 Anthropic 可以使用您的请求详情进行调查。如果您的环境中 `/feedback` 不可用,请参阅[报告错误](#report-an-error)。515* 如果错误持续存在且没有发布事件,请运行 `/feedback` 以便 Anthropic 可以使用您的请求详情进行调查。如果您的环境中 `/feedback` 不可用,请参阅[报告错误](#report-an-error)。

494 516 

495### API Error: Repeated 529 Overloaded errors517### API Error: Repeated 529 Overloaded errors


520Request timed out542Request timed out

521```543```

522 544 

523默认请求超时时间为 10 分钟。545默认请求超时时间为 10 分钟。如果您将 [`API_TIMEOUT_MS`](/docs/zh-CN/env-vars) 设置为 `0`,此请求超时将关闭。设置 `0` 时,[首字节截止时间](#no-response-from-api)和响应体空闲超时不会关闭,因此流式请求仍受[适用于您连接的那些超时](/docs/zh-CN/network-config#streaming-idle-watchdogs)约束。在本地会话中,非流式尝试保留其 300 秒的限制,仍可能以此消息结束。

524 546 

525**应该做什么:**547**应该做什么:**

526 548 

549* 如果每个请求都以此消息失败,且您将 `API_TIMEOUT_MS` 设置为了 `0`,请检查 `claude --version`。如果版本早于 v2.1.305,请更新 Claude Code 或设置一个正值。

527* 重试请求550* 重试请求

528* 如果是缓慢的网络或代理导致,请按照[自动重试](#automatic-retries)中的说明提高 `API_TIMEOUT_MS`551* 如果是缓慢的网络或代理导致,请按照[自动重试](#automatic-retries)中的说明提高 `API_TIMEOUT_MS`

529* 如果超时频繁且您的网络状况良好,请参阅下面的[网络和连接错误](#network-and-connection-errors)552* 如果超时频繁且您的网络状况良好,请参阅下面的[网络和连接错误](#network-and-connection-errors)


541* **第一次尝试**:当您将其设置为 1 或更多时使用 [`CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS`](/docs/zh-CN/env-vars),限制在 10 秒到 30 分钟之间。否则 Claude Code 使用[流式空闲监视程序](/docs/zh-CN/network-config#streaming-idle-watchdogs)中列出的字节级监视程序超时时间,因此改变该超时时间的变量也会改变此等待。无论哪种方式,Claude Code 为请求体的每 32KB 添加一秒。564* **第一次尝试**:当您将其设置为 1 或更多时使用 [`CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS`](/docs/zh-CN/env-vars),限制在 10 秒到 30 分钟之间。否则 Claude Code 使用[流式空闲监视程序](/docs/zh-CN/network-config#streaming-idle-watchdogs)中列出的字节级监视程序超时时间,因此改变该超时时间的变量也会改变此等待。无论哪种方式,Claude Code 为请求体的每 32KB 添加一秒。

542* **重试**:比 `API_TIMEOUT_MS` 少一秒,默认略低于 10 分钟,以便重试可以超过保持响应直到生成完成的代理或网关。在 Amazon Bedrock 上,重试使用与第一次尝试相同的截止时间,消息显示一个持续时间而不是两个。565* **重试**:比 `API_TIMEOUT_MS` 少一秒,默认略低于 10 分钟,以便重试可以超过保持响应直到生成完成的代理或网关。在 Amazon Bedrock 上,重试使用与第一次尝试相同的截止时间,消息显示一个持续时间而不是两个。

543 566 

567 除 Amazon Bedrock 外,如果您将 `API_TIMEOUT_MS` 设置为 `0`,重试将等待 10 分钟再加上每 32KB 一秒;如果第一次尝试的等待时间更长,则等待与第一次尝试相同的时长。

568 

544两个等待都不超过正 `API_TIMEOUT_MS` 少一秒,正 `API_TIMEOUT_MS` 低于 11 秒会关闭截止时间。字节级监视程序仅在响应头到达后才开始,因此在此之后停止发送字节的响应遵循[停滞流规则](#automatic-retries)而不是此截止时间。569两个等待都不超过正 `API_TIMEOUT_MS` 少一秒,正 `API_TIMEOUT_MS` 低于 11 秒会关闭截止时间。字节级监视程序仅在响应头到达后才开始,因此在此之后停止发送字节的响应遵循[停滞流规则](#automatic-retries)而不是此截止时间。

545 570 

546**应该做什么:**571**应该做什么:**


845* 运行 `/status` 并确认活跃凭据是您期望的。环境中残留的 `ANTHROPIC_API_KEY` 可能会通过低层级密钥而不是您的订阅路由请求。870* 运行 `/status` 并确认活跃凭据是您期望的。环境中残留的 `ANTHROPIC_API_KEY` 可能会通过低层级密钥而不是您的订阅路由请求。

846* 检查您的提供商控制台以了解活跃限制,如果需要请求更高的层级871* 检查您的提供商控制台以了解活跃限制,如果需要请求更高的层级

847* 对于 Anthropic API 密钥,请参阅 [rate limits reference](https://platform.claude.com/docs/en/api/rate-limits) 了解层级如何工作以及如何设置每个工作区的上限872* 对于 Anthropic API 密钥,请参阅 [rate limits reference](https://platform.claude.com/docs/en/api/rate-limits) 了解层级如何工作以及如何设置每个工作区的上限

848* 降低并发:降低 [`CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCY`](/docs/zh-CN/env-vars),避免运行许多并行子代理,或使用 `/model` 为高容量脚本运行切换到更小的模型873* 降低并发:避免运行许多并行子代理,或使用 `/model` 为高容量脚本运行切换到更小的模型

849 874 

850### You've hit your monthly spend limit875### You've hit your monthly spend limit

851 876 


1267* 如果 `/status` 只显示您的登录,请运行一次 `/login`。如果凭据已被撤销,新的登录会替换它。1292* 如果 `/status` 只显示您的登录,请运行一次 `/login`。如果凭据已被撤销,新的登录会替换它。

1268* 如果同一登录账户再次出现相同消息,说明该账户或组织已不再活跃。请检查 `/status` 报告的账户和组织,并请您的组织管理员恢复访问权限。1293* 如果同一登录账户再次出现相同消息,说明该账户或组织已不再活跃。请检查 `/status` 报告的账户和组织,并请您的组织管理员恢复访问权限。

1269* 如果 [`ANTHROPIC_BASE_URL`](/docs/zh-CN/env-vars) 指向 [LLM 网关](/docs/zh-CN/llm-gateway),`401` 之后的文本是您网关的消息而不是 Anthropic 的消息,`/login` 不会改变它。请改为修正网关所需的凭据。1294* 如果 [`ANTHROPIC_BASE_URL`](/docs/zh-CN/env-vars) 指向 [LLM 网关](/docs/zh-CN/llm-gateway),`401` 之后的文本是您网关的消息而不是 Anthropic 的消息,`/login` 不会改变它。请改为修正网关所需的凭据。

1295* 如果在网关已获得所需凭据后,每个请求仍以 `401` 失败,请检查网关是否拒绝了 Claude Code 默认发送的工具搜索字段。要进行检查,请按照[通过 LLM 网关进行工具搜索](/docs/zh-CN/mcp#tool-search-through-a-gateway)中的说明设置 `ENABLE_TOOL_SEARCH=false`,然后重试。在 v2.1.304 之前,除非您使用 `ENABLE_TOOL_SEARCH` 启用,否则在网关后工具搜索处于关闭状态。

1270 1296 

1271### 登录已过期1297### 登录已过期

1272 1298 


1338* 在其他平台上,再次运行 `/login`1364* 在其他平台上,再次运行 `/login`

1339* 如果登录仍然无法保存,请参阅[未登录或令牌已过期](/docs/zh-CN/troubleshoot-install#not-logged-in-or-token-expired),了解钥匙串解锁命令和其他凭据存储恢复步骤1365* 如果登录仍然无法保存,请参阅[未登录或令牌已过期](/docs/zh-CN/troubleshoot-install#not-logged-in-or-token-expired),了解钥匙串解锁命令和其他凭据存储恢复步骤

1340 1366 

1341### 无法启动 OAuth 回调服务器1367### Couldn't start the local listener that receives the browser sign-in

1342 1368 

1343当 `/login`、`claude auth login` 或 `claude setup-token` 通过浏览器为您登录时,Claude Code 会在 `127.0.0.1` 上打开一个监听端口,以便浏览器将登录结果返回给它。此消息表示 Claude Code 无法打开该端口,登录会在浏览器窗口或登录 URL 出现之前停止:1369来自 `/login`、`claude auth login` 或 `claude setup-token` 的以下每条消息都表示 Claude Code 无法在 `127.0.0.1` 上打开供浏览器返回登录结果的端口。

1344 1370 

1345```text theme={null}1371如果出现以 `The browser can't return the sign-in to Claude Code automatically` 开头的通知,登录会在不使用该端口的情况下继续进行。不会打开浏览器,该通知会显示在一个 URL 上方,您需要在该 URL 处登录:

1346Failed to start OAuth callback server: Failed to start server. Is port 0 in use?1372 

1373```text wrap theme={null}

1374The browser can't return the sign-in to Claude Code automatically. After you sign in, paste the code shown.

1347```1375```

1348 1376 

1349如果您的消息以 `Is port 0 in use?` 结尾,说明在 IPv4 回环地址 `127.0.0.1` 上监听的尝试直接失败了。由于失败发生在登录 URL 生成之前,`Paste code here if prompted` 流程无法作为变通方案使用。1377如果出现包含 `Couldn't start the local listener` 的消息,则登录已停止。例如,当您通过管道向 `claude auth login` 输入内容时就会发生这种情况:

1378 

1379```text theme={null}

1380Couldn't start the local listener that receives the browser sign-in. Try again.

1381```

1350 1382 

1351**解决方法:**1383**解决方法:**

1352 1384 

1353* 如需不使用本地监听器立即登录:如果您使用 claude.ai 订阅,请在可以正常登录的机器上运行 [`claude setup-token`](/docs/zh-CN/authentication#generate-a-long-lived-token),并在这台机器上将它输出的令牌设置为 `CLAUDE_CODE_OAUTH_TOKEN`。否则,请将 `ANTHROPIC_API_KEY` 设置为来自 [Claude Console](https://platform.claude.com/settings/keys) 的密钥。[身份验证优先级](/docs/zh-CN/authentication#authentication-precedence)解释了 Claude Code 如何在多个凭据之间进行选择。1385* **`The browser can't return the sign-in to Claude Code automatically`**:您无需先修复任何问题。在浏览器中打开通知下方显示的 URL 并登录。浏览器随后会显示一个代码:将其粘贴到 Claude Code 的 `Paste code here >` 提示处,登录即可从那里继续。

1354* 如果要改为在这台机器上使用浏览器登录,Claude Code 必须能够在 `127.0.0.1` 上监听。如果它在沙箱中运行,请检查沙箱策略是否允许监听本地端口,然后再次运行 `/login`。如果它本应能够监听却仍然失败,请运行 `/feedback`,以便报告中包含您的环境详细信息。1386* **`Couldn't start the local listener that receives the browser sign-in`**:再次运行相同的命令。如果它以同样的方式停止,请改用令牌或 API 密钥登录,而不是浏览器。或者,如果您是通过管道向 `claude auth login` 输入内容,请在终端中运行它,以便它能接收粘贴的代码。

1387* **改用令牌或 API 密钥而不是浏览器登录**:如果您使用 claude.ai 订阅,请在可以正常登录的计算机上运行 [`claude setup-token`](/docs/zh-CN/authentication#generate-a-long-lived-token),然后在此计算机上将其输出的令牌设置为 [`CLAUDE_CODE_OAUTH_TOKEN`](/docs/zh-CN/env-vars) 环境变量。否则,请将 `ANTHROPIC_API_KEY` 环境变量设置为来自 [Claude Console](https://platform.claude.com/settings/keys) 的密钥。[身份验证优先级](/docs/zh-CN/authentication#authentication-precedence)说明了 Claude Code 如何在多个凭据之间进行选择。

1388* **恢复浏览器自动返回**:Claude Code 必须能够在 `127.0.0.1` 上监听。如果它在沙箱中运行,请检查沙箱的策略是否允许监听本地端口,然后重新登录。如果在该环境中监听本应可行但通知仍然出现,请运行 `/feedback`,以便报告中包含您的环境详细信息。

1389 

1390在 v2.1.305 之前,一旦无法打开端口,登录就会立即停止,并且不会显示可用于登录的 URL。例如,消息显示为 `Failed to start OAuth callback server: Failed to start server. Is port 0 in use?`。在这些版本上,请更新 Claude Code 并重新登录,或者改用令牌或 API 密钥而不是浏览器登录。

1355 1391 

1356### Claude 登录未被接受1392### Claude 登录未被接受

1357 1393 


1513 1549 

1514在配置该服务器的位置更新标头值,然后从 `/mcp` 重新连接。1550在配置该服务器的位置更新标头值,然后从 `/mcp` 重新连接。

1515 1551 

1516在 v2.1.273 之前,登录过期、`headersHelper` 和 `Authorization` 标头这几种情况都显示 `MCP server "<name>" requires re-authorization (token expired)`。1552在 Claude Desktop 应用中您机器上的 [Cowork](https://claude.com/docs/cowork/overview) 会话中,这些消息表示 MCP 服务器拒绝了提供给它的凭据。请修复消息中指出的凭据,然后在 Cowork 中启动新的任务或聊天:

1553 

1554```text theme={null}

1555MCP server "<name>" rejected the credential from its headersHelper (check the helper, then start a new task or chat)

1556MCP server "<name>" rejected the Authorization header in its config (update it, then start a new task or chat)

1557```

1558 

1559* **`headersHelper` 凭据被拒绝**:检查辅助脚本返回的凭据是否能被服务器接受,然后在 Cowork 中启动新的任务或聊天

1560* **`Authorization` 标头被拒绝**:更新该服务器配置中 `headers` 下的 `Authorization` 值,然后在 Cowork 中启动新的任务或聊天

1561 

1562在 v2.1.302 之前,Cowork 会话显示的是 `run /mcp to reconnect` 结尾,尽管 `/mcp` 在那里不可用。如果您在 Cowork 中看到这样的结尾,仍然请检查辅助脚本或更新标头,然后启动新的任务或聊天。在 v2.1.273 之前,登录过期、`headersHelper` 和 `Authorization` 标头这几种情况都显示 `MCP server "<name>" requires re-authorization (token expired)`。

1517 1563 

1518服务器也可能以 HTTP 403 `insufficient_scope` 拒绝工具调用,要求您授权某个作用域,有时该作用域甚至已列在您的令牌中。消息会指出该作用域:1564服务器也可能以 HTTP 403 `insufficient_scope` 拒绝工具调用,要求您授权某个作用域,有时该作用域甚至已列在您的令牌中。消息会指出该作用域:

1519 1565 


1812* 在同一个 shell 中运行 `curl -I https://api.anthropic.com`,确认可以访问 API 主机。在 Windows PowerShell 中请使用 `curl.exe -I https://api.anthropic.com`,以避免使用内置的 `Invoke-WebRequest` 别名。1858* 在同一个 shell 中运行 `curl -I https://api.anthropic.com`,确认可以访问 API 主机。在 Windows PowerShell 中请使用 `curl.exe -I https://api.anthropic.com`,以避免使用内置的 `Invoke-WebRequest` 别名。

1813* 如果您位于企业代理之后,请在启动 Claude Code 之前设置 `HTTPS_PROXY`,并参阅[网络配置](/docs/zh-CN/network-config)1859* 如果您位于企业代理之后,请在启动 Claude Code 之前设置 `HTTPS_PROXY`,并参阅[网络配置](/docs/zh-CN/network-config)

1814* 如果您通过 LLM 网关或中继进行路由,请将 [`ANTHROPIC_BASE_URL`](/docs/zh-CN/env-vars) 设置为其地址。有关设置方法,请参阅[将 Claude Code 连接到 LLM 网关](/docs/zh-CN/llm-gateway-connect)。1860* 如果您通过 LLM 网关或中继进行路由,请将 [`ANTHROPIC_BASE_URL`](/docs/zh-CN/env-vars) 设置为其地址。有关设置方法,请参阅[将 Claude Code 连接到 LLM 网关](/docs/zh-CN/llm-gateway-connect)。

1861* 如果 `ANTHROPIC_BASE_URL` 已指向您的网关,而每个请求都以 `Connection dropped` 结束,请检查您的网关是否拒绝了 Claude Code 默认发送的工具搜索字段。要进行检查,请按照[通过 LLM 网关使用工具搜索](/docs/zh-CN/mcp#tool-search-through-a-gateway)中的说明设置 `ENABLE_TOOL_SEARCH=false`,然后重试。在 v2.1.304 之前,在网关之后工具搜索默认处于关闭状态,除非您通过 `ENABLE_TOOL_SEARCH` 将其启用。

1815* 确保您的防火墙允许[网络访问要求](/docs/zh-CN/network-config#network-access-requirements)中列出的主机1862* 确保您的防火墙允许[网络访问要求](/docs/zh-CN/network-config#network-access-requirements)中列出的主机

1816* 间歇性失败会[自动重试](#automatic-retries);持续失败则表明存在本地网络问题1863* 间歇性失败会[自动重试](#automatic-retries)

1817 1864 

1818如果 `curl` 成功但 Claude Code 仍然失败,原因通常在于运行时与网络之间的某个环节,而非网络本身:1865如果 `curl` 成功但 Claude Code 仍然失败,原因通常在于运行时与网络之间的某个环节,而非网络本身:

1819 1866 


2166* 修剪大型 `CLAUDE.md` 记忆文件,或将说明移到仅在相关时加载的[路径范围规则](/docs/zh-CN/memory#path-specific-rules)中2213* 修剪大型 `CLAUDE.md` 记忆文件,或将说明移到仅在相关时加载的[路径范围规则](/docs/zh-CN/memory#path-specific-rules)中

2167* 自动压缩默认开启,通常可防止此错误。如果您在 `/config` 中或使用 [`DISABLE_AUTO_COMPACT`](/docs/zh-CN/env-vars) 关闭了它,请将其重新打开。如果您保持关闭,请在窗口填满之前自己运行 `/compact`。2214* 自动压缩默认开启,通常可防止此错误。如果您在 `/config` 中或使用 [`DISABLE_AUTO_COMPACT`](/docs/zh-CN/env-vars) 关闭了它,请将其重新打开。如果您保持关闭,请在窗口填满之前自己运行 `/compact`。

2168* 如果在支持更大窗口的模型上于接近 200K token 时出现此错误,一个原因是 Claude Code 无法识别该模型 ID。Claude Code 会为此类 ID 假定 200K 的窗口,因此若要在超过该点后继续工作,请[为其提供模型的实际上下文窗口](/docs/zh-CN/model-config#correct-the-window-for-a-gateway-or-custom-model-id)。2215* 如果在支持更大窗口的模型上于接近 200K token 时出现此错误,一个原因是 Claude Code 无法识别该模型 ID。Claude Code 会为此类 ID 假定 200K 的窗口,因此若要在超过该点后继续工作,请[为其提供模型的实际上下文窗口](/docs/zh-CN/model-config#correct-the-window-for-a-gateway-or-custom-model-id)。

2216* 如果错误在您于 Claude 压缩对话时将其停止后立即出现,您的对话并未改变,仍然大到需要压缩。请运行 `/compact` 并重新发送您的消息。要避免此错误再次出现,请[更新 Claude Code](/docs/zh-CN/setup#update-claude-code) 至 v2.1.304 或更高版本。在 v2.1.304 之前,在该时刻停止可能导致本轮以此错误结束。

2169 2217 

2170有关上下文如何填满的交互式视图,请参阅[探索上下文窗口](/docs/zh-CN/context-window)。2218有关上下文如何填满的交互式视图,请参阅[探索上下文窗口](/docs/zh-CN/context-window)。

2171 2219 


2298 2346 

2299### 不允许额外输入2347### 不允许额外输入

2300 2348 

2301Claude Code 和 API 之间的代理或 LLM 网关删除了 `anthropic-beta` 请求头,因此 API 拒绝了依赖它的字段。2349接收请求的端点将请求中的某个字段视为其不接受的输入而拒绝,端点的消息会指出该字段。

2302 2350 

2303```text theme={null}2351```text theme={null}

2304API Error: 400 ... Extra inputs are not permitted ... context_management2352API Error: 400 ... context_management: Extra inputs are not permitted

2305```2353```

2306 2354 

2307Claude Code 发送 `context_management` 等仅限测试版的字段,以及启用它们的 `anthropic-beta` 头。当网关转发正文但删除头时,API 会看到它不识别的字段。2355Claude Code 会发送仅限 beta 的字段(例如 `context_management` 和工具搜索的 `defer_loading`),同时附带启用它们的 `anthropic-beta` 标头。当网关转发请求体但丢弃了该标头时,API 会看到它无法识别的字段。当网关将 Anthropic 格式的请求体转发到具有不同 schema 的上游时,该上游会拒绝此类字段。[Beta 标头与请求体字段对](/docs/zh-CN/llm-gateway-protocol#beta-header-and-body-field-pairs)涵盖了这两种情况。

2308 2356 

2309**要做什么:**2357**要做什么:**

2310 2358 

2311* 配置您的网关以转发 `anthropic-beta` 头。有关网关必须转发的内容,请参阅[功能传递](/docs/zh-CN/llm-gateway-protocol#feature-pass-through)。2359* 如果消息包含 `context_management: Extra inputs are not permitted`,请将 [Claude Code 更新](/docs/zh-CN/setup#update-claude-code)到 v2.1.304 或更高版本。更新后,Claude Code 会在遇到此拒绝时,不带该字段再发送一次请求。在 v2.1.304 之前,Claude Code 不会针对此拒绝进行重试。

2360* 如果消息指出 `defer_loading` 或 `tool_reference`,请更新 Claude Code 或关闭[工具搜索](/docs/zh-CN/mcp#tool-search-through-a-gateway):

2361 * 将 [Claude Code 更新](/docs/zh-CN/setup#update-claude-code)到 v2.1.305 或更高版本。之后 Claude Code 会在遇到此拒绝时,不带工具搜索字段再发送一次请求。

2362 * 如果您无法更新,或更新后消息仍然出现,请在 shell 中或您的[设置 `env`](/docs/zh-CN/settings-reference#env) 中设置 `ENABLE_TOOL_SEARCH=false`。如果某个设置文件已设置了该变量,请在那里修改,因为该值[可能覆盖 shell 中的 export](/docs/zh-CN/settings-reference#how-env-values-interact-with-your-shell)。之后 Claude Code 会预先加载 MCP 工具。

2363* 如果您的网关丢弃了该标头,请将其配置为转发 `anthropic-beta` 标头。有关网关必须转发的内容,请参阅[功能透传](/docs/zh-CN/llm-gateway-protocol#feature-pass-through)。

2312* 作为回退方案,在启动前设置 [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](/docs/zh-CN/env-vars)。[禁用预发布功能](/docs/zh-CN/llm-gateway-protocol#disable-pre-release-capabilities)涵盖确切范围。2364* 作为回退方案,在启动前设置 [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](/docs/zh-CN/env-vars)。[禁用预发布功能](/docs/zh-CN/llm-gateway-protocol#disable-pre-release-capabilities)涵盖确切范围。

2313 2365 

2366在 v2.1.302 之前,即使不涉及网关,此错误也可能列出字段 `diagnostics`。当已经使用过 Anthropic API 的会话在未重启的情况下转到 Amazon Bedrock 或 Google Cloud's Agent Platform 时,就会出现此错误。例如,当您在另一个 Claude Code 窗口中运行 [`/setup-bedrock`](/docs/zh-CN/commands) 时,您保持打开的会话会转到 Bedrock。在这些版本中,请在该会话中运行 `/clear` 或重启会话。

2367 

2314### 工具输入 schema 无效2368### 工具输入 schema 无效

2315 2369 

2316请求中的工具声明了 `input_schema`,该 schema 未通过 API 的 JSON Schema 验证,因此 API 拒绝了整个请求。`tools.` 后的数字是失败工具在请求的工具列表中的位置,而不是您可以查找的名称。2370请求中的工具声明了 `input_schema`,该 schema 未通过 API 的 JSON Schema 验证,因此 API 拒绝了整个请求。`tools.` 后的数字是失败工具在请求的工具列表中的位置,而不是您可以查找的名称。


2384* 使用别名(如 `sonnet` 或 `opus`)而不是完整的版本化 ID。别名解析为维护的默认值,因此它们不会过时。请参阅[模型配置](/docs/zh-CN/model-config)。2438* 使用别名(如 `sonnet` 或 `opus`)而不是完整的版本化 ID。别名解析为维护的默认值,因此它们不会过时。请参阅[模型配置](/docs/zh-CN/model-config)。

2385* 如果错误的模型在 CLI 中不断返回,则某处设置了过时的 ID。按[优先级顺序](/docs/zh-CN/model-config#setting-your-model)检查您可以设置模型的位置,并删除过时的值。2439* 如果错误的模型在 CLI 中不断返回,则某处设置了过时的 ID。按[优先级顺序](/docs/zh-CN/model-config#setting-your-model)检查您可以设置模型的位置,并删除过时的值。

2386* Claude Code 将过期的 claude.ai 登录报告为[登录过期](#login-expired),而不是此错误。在 v2.1.206 之前,无法再刷新的过期登录对每个模型都失败,显示此错误;如果您在较旧版本上看到这种情况,请运行 `/login`。2440* Claude Code 将过期的 claude.ai 登录报告为[登录过期](#login-expired),而不是此错误。在 v2.1.206 之前,无法再刷新的过期登录对每个模型都失败,显示此错误;如果您在较旧版本上看到这种情况,请运行 `/login`。

2441* 如果 [`ANTHROPIC_BASE_URL`](/docs/zh-CN/env-vars) 指向 [LLM 网关](/docs/zh-CN/llm-gateway),且所有模型都以这种方式失败,请检查您的网关是否拒绝了 Claude Code 默认发送的工具搜索字段。要进行检查,请按照[通过 LLM 网关使用工具搜索](/docs/zh-CN/mcp#tool-search-through-a-gateway)中的说明设置 `ENABLE_TOOL_SEARCH=false`,然后重试。在 v2.1.304 之前,在网关后面工具搜索默认关闭,除非您使用 `ENABLE_TOOL_SEARCH` 将其启用。

2387* 对于 Google Cloud 的 Agent Platform 部署,请参阅 [Google Cloud 的 Agent Platform 故障排除](/docs/zh-CN/google-vertex-ai#troubleshooting)。2442* 对于 Google Cloud 的 Agent Platform 部署,请参阅 [Google Cloud 的 Agent Platform 故障排除](/docs/zh-CN/google-vertex-ai#troubleshooting)。

2388 2443 

2389### 模型不是公认的模型 ID2444### 模型不是公认的模型 ID


2590其他消息报告相同的情况:2645其他消息报告相同的情况:

2591 2646 

2592* 在交互式会话中,通知显示 `Advisor will not activate on the main model (advisor is less capable); subagents may still use it and may use more tokens · /advisor`。2647* 在交互式会话中,通知显示 `Advisor will not activate on the main model (advisor is less capable); subagents may still use it and may use more tokens · /advisor`。

2593* 使用 `--advisor` 标志启动时,警告显示 `"<advisor>" cannot advise "<main model>" (the advisor must be at least as capable as the main model). The advisor will not be used for the main model.`,会话仍会启动。2648* 当您在[非交互模式](/docs/zh-CN/headless)下使用 `--advisor` 标志启动,且该运行不是[后台会话](/docs/zh-CN/agent-view)时,会向 stderr 输出一条警告,运行仍会开始。警告为 `"<advisor>" cannot advise "<main model>" (the advisor must be at least as capable as the main model). The advisor will not be used for the main model.`。交互式会话只会将该警告写入[调试日志](#configuration-warnings)。

2594 2649 

2595**要做什么:**2650**要做什么:**

2596 2651 


3361 3416 

3362以下相关消息会在命令运行之前就出现:3417以下相关消息会在命令运行之前就出现:

3363 3418 

3364* `Shell command permission check failed for pattern "..."`:该命令的权限检查未允许它运行。[注入命令的权限检查](/docs/zh-CN/skills#permission-checks-on-injected-commands)介绍了在每种权限模式下哪些结果会导致中止,以及如何使用 `allowed-tools` 预先批准命令3419* `Shell command permission check failed for pattern "..."`:该命令的权限检查不允许其运行。[注入命令的权限检查](/docs/zh-CN/skills#permission-checks-on-injected-commands)介绍了在每种权限模式下哪些结果会导致中止,以及如何使用 `allowed-tools` 预先批准命令

3365* ``Skill <name> requires bash (`shell: bash` in frontmatter) but Git Bash was not found``:该 skill 的 frontmatter 要求使用 bash,但机器上没有 bash。请安装 Git for Windows,或将 frontmatter 改为 `shell: powershell`。请参阅[注入命令的运行方式](/docs/zh-CN/skills#how-injected-commands-run)3420* ``Skill <name> requires bash (`shell: bash` in frontmatter) but Git Bash was not found``:该 skill 的 frontmatter 要求使用 bash,而机器上没有 bash。请安装 Git for Windows,或将 frontmatter 改为 `shell: powershell`。请参阅[注入命令的运行方式](/docs/zh-CN/skills#how-injected-commands-run)

3366* `No shell command in <name> was run`:文件中的某个 `!` 命令包含除制表符或换行符以外的原始控制字符,因此所有命令都不会运行。请参阅[如何查找并删除该字符](#no-shell-command-was-run)3421* `No shell command in <name> was run`:文件中的某个 `!` 命令包含除制表符或换行符以外的原始控制字符,因此所有命令都不会运行。请参阅[如何查找并删除该字符](#no-shell-command-was-run)

3367 3422 

3368**解决方法:**3423**解决方法:**


3464Claude Code 会建议菜单在此会话中列出的最接近的命令名称或别名。如果没有接近的名称,消息会在该名称之后结束。原因通常是以下之一:3519Claude Code 会建议菜单在此会话中列出的最接近的命令名称或别名。如果没有接近的名称,消息会在该名称之后结束。原因通常是以下之一:

3465 3520 

3466* 拼写错误,例如将 `/help` 输成 `/hepl`。[命令菜单如何匹配您输入的内容](/docs/zh-CN/commands#how-the-command-menu-matches-what-you-type)介绍了如何在提交前选择一个接近的匹配项3521* 拼写错误,例如将 `/help` 输成 `/hepl`。[命令菜单如何匹配您输入的内容](/docs/zh-CN/commands#how-the-command-menu-matches-what-you-type)介绍了如何在提交前选择一个接近的匹配项

3467* 命令存在,但由于未满足某项要求(例如您的平台、套餐或身份验证方式)而在此会话中不可用。[`/web-setup`](/docs/zh-CN/web-quickstart#web-setup-shows-no-commands-match-or-unknown-command) 和 [`/schedule`](/docs/zh-CN/routines#schedule-returns-unknown-command) 的故障排除条目介绍了两种常见情况。某些命令在被您组织的策略禁用时会以自己的消息回复,例如 [`Cloud sessions are disabled by your organization's policy`](#cloud-sessions-are-disabled-by-your-organizations-policy)3522* 命令存在,但由于未满足某项要求(例如您的平台、套餐或身份验证方式)而在此会话中不可用。请参阅 [`/web-setup`](/docs/zh-CN/web-quickstart#web-setup-shows-no-commands-match-or-unknown-command)、[`/schedule`](/docs/zh-CN/routines#schedule-returns-unknown-command) 或 [`/auto-mode-setup`](/docs/zh-CN/auto-mode-config#auto-mode-setup-returns-unknown-command) 的相关条目。某些命令在被您组织的策略禁用时会返回其自身的消息,例如 [`Cloud sessions are disabled by your organization's policy`](#cloud-sessions-are-disabled-by-your-organizations-policy)

3468* 来自[插件](/docs/zh-CN/plugins/overview)或 [MCP 服务器](/docs/zh-CN/mcp#use-mcp-prompts-as-commands)的命令,而该插件或服务器在此会话中未安装或未连接3523* 来自[插件](/docs/zh-CN/plugins/overview)或 [MCP 服务器](/docs/zh-CN/mcp#use-mcp-prompts-as-commands)的命令,而该插件或服务器在此会话中未安装或未连接

3469 3524 

3470只有在交互式终端会话中,Claude Code 才会以这种方式回复未匹配的 `/` 名称。在其他所有会话中,它会将该提示词作为普通消息发送给 Claude,并附上一条说明,指出该命令未运行,以及 Claude 在此会话中可以运行的命令列表。这些会话包括:3525只有在交互式终端会话中,Claude Code 才会以这种方式回复未匹配的 `/` 名称。在其他所有会话中,它会将该提示词作为普通消息发送给 Claude,并附上一条说明,指出该命令未运行,以及 Claude 在此会话中可以运行的命令列表。这些会话包括:


3513 3568 

3514* **您没有传入基础分支**:Claude Code 与仓库的默认分支进行了比较,并建议您显式传入基础分支,如上例所示3569* **您没有传入基础分支**:Claude Code 与仓库的默认分支进行了比较,并建议您显式传入基础分支,如上例所示

3515* **您传入的基础分支已存在于您的克隆中**:提示为 ``Make sure <branch> exists locally or on origin (try `git fetch origin <branch>`)``3570* **您传入的基础分支已存在于您的克隆中**:提示为 ``Make sure <branch> exists locally or on origin (try `git fetch origin <branch>`)``

3516* **您传入的基础分支不在您的克隆中**:Claude Code 在比较之前从 origin fetch 了该分支。提示为 ``<branch> was fetched from origin but shares no history with HEAD. If another branch is your real base, pass it explicitly (`/code-review ultra <branch>`)``;当 Claude Code 无法判断您的克隆是否为浅克隆时,它会改为建议 `git fetch --unshallow origin`。在 v2.1.221 之前,对于每个被 fetch 的基础分支,提示都会建议 `git fetch --unshallow origin`,而在完整克隆上该命令会以 `fatal: --unshallow on a complete repository does not make sense` 失败。3571* **您传递的基础分支不在您的克隆中**:Claude Code 在比较之前从 origin fetch 了该分支。提示为 ``<branch> was fetched from origin but shares no history with HEAD. If another branch is your real base, pass it explicitly (`/code-review ultra <branch>`)``;当 Claude Code 无法判断您的克隆是否为浅克隆时,它会改为建议 `git fetch --unshallow origin`。在 v2.1.221 之前,对于每个被 fetch 的基础分支,提示都会建议 `git fetch --unshallow origin`,而在完整克隆上,该命令会以 `fatal: --unshallow on a complete repository does not make sense` 失败。

3517 3572 

3518**解决方法:**3573**解决方法:**

3519 3574 


3856* 亲自打开该会话并在其中运行 `/recap`:在其终端中、在 [Desktop 应用](/docs/zh-CN/desktop)或[移动应用](/docs/zh-CN/mobile)中、在 [claude.ai/code](https://claude.ai/code) 上,或通过 [Remote Control](/docs/zh-CN/remote-control)3911* 亲自打开该会话并在其中运行 `/recap`:在其终端中、在 [Desktop 应用](/docs/zh-CN/desktop)或[移动应用](/docs/zh-CN/mobile)中、在 [claude.ai/code](https://claude.ai/code) 上,或通过 [Remote Control](/docs/zh-CN/remote-control)

3857* 如果是云端定时任务或其他程序发送的,请从该提示词中删除 `/recap`3912* 如果是云端定时任务或其他程序发送的,请从该提示词中删除 `/recap`

3858 3913 

3914### /feedback is disabled by your organization's policy

3915 

3916此消息表示您组织的策略不允许从 Claude Code 提交产品反馈,因此 `/feedback`、`/bug` 和 `/share` 不会打开反馈对话框。该消息会指明您在 Claude Code 提示符处输入的命令:

3917 

3918```text wrap theme={null}

3919/feedback is disabled by your organization's policy. To report a bug, open an issue at https://github.com/anthropics/claude-code/issues. Issues are public, so leave out anything confidential.

3920```

3921 

3922该消息也可能只有第一句。

3923 

3924**解决方法:**

3925 

3926* 如需报告 bug,请在 [github.com/anthropics/claude-code/issues](https://github.com/anthropics/claude-code/issues) 提交 issue。那里的 issue 任何人都可以阅读,因此请勿包含代码、会话记录以及任何其他机密内容。

3927 

3928在 v2.1.302 之前,完整消息为 `/feedback is disabled by your organization's policy. Contact your organization admin to enable it.`

3929 

3859## 插件错误3930## 插件错误

3860 3931 

3861这些错误来自[插件](/docs/zh-CN/plugins/overview)和[marketplace](/docs/zh-CN/plugins/overview)配置。对于不会产生此页面上的消息之一的插件问题,例如无法加载的 marketplace URL 或已安装但未显示的插件,请参阅[插件故障排除](/docs/zh-CN/plugins/troubleshooting)。3932这些错误来自[插件](/docs/zh-CN/plugins/overview)和[市场](/docs/zh-CN/plugins/overview)的配置。对于不会产生本页所列消息的插件问题,例如市场 URL 无法加载,或插件安装后没有出现,请参阅[插件故障排除](/docs/zh-CN/plugins/troubleshooting)。

3862 3933 

3863### plugin eval 目前处于早期访问阶段3934### plugin eval is currently in early access

3864 3935 

3865您运行了[`claude plugin eval`](/docs/zh-CN/plugin-evals)或`claude plugin eval init`,它在执行任何操作之前以退出代码 1 和以下消息之一退出:3936您运行了 [`claude plugin eval`](/docs/zh-CN/plugin-evals) 或 `claude plugin eval init`,它在执行任何操作之前就以退出码 1 退出,并显示以下消息之一:

3866 3937 

3867```text theme={null}3938```text theme={null}

3868`plugin eval` is currently in early access3939`plugin eval` is currently in early access


3872`plugin eval` is currently unavailable3943`plugin eval` is currently unavailable

3873```3944```

3874 3945 

3875第一条消息表示您的构建版本早于 v2.1.269,这是该命令正式发布的第一个版本。第二条消息表示 Anthropic 已在服务器端关闭了该命令;您的机器上没有任何东西可以将其重新打开。3946第一条消息表示您的版本早于 v2.1.269,即该命令正式可用的第一个版本。第二条消息表示 Anthropic 已在服务器端关闭了该命令;您本机上的任何操作都无法重新启用它。

3876 3947 

3877**要做什么:**3948**解决方法:**

3878 3949 

3879* 运行`claude --version`,然后运行`claude update`,并在新会话中再次运行该命令。请参阅[插件 evals 的要求](/docs/zh-CN/plugin-evals#requirements)3950* 运行 `claude --version`,然后运行 `claude update`,并在新会话中再次运行该命令。请参阅[插件评估的要求](/docs/zh-CN/plugin-evals#requirements)

3880* 如果您在当前构建上看到第二条消息,请在另一次`claude update`后稍后重试3951* 如果您在最新版本上看到第二条消息,请稍后再次运行 `claude update` 后重试

3881 3952 

3882### Marketplace 从不受信任的来源注册3953### Marketplace is registered from an untrusted source

3883 3954 

3884marketplace 注册在一个名称下,该名称是[为官方 Anthropic marketplaces 保留的](/docs/zh-CN/plugins/marketplace-reference#marketplace-file),但其注册来源不是`anthropics` GitHub 存储库。Claude Code 每次加载或刷新 marketplace 时都会重新检查保留的名称,因此 marketplace 及从中安装的插件停止加载。在 v2.1.205 之前,在其名称被保留之前注册的条目继续加载。3955该市场以一个[保留给 Anthropic 官方市场](/docs/zh-CN/plugins/marketplace-reference#marketplace-file)的名称注册,但其注册来源并不是 `anthropics` 的 GitHub 仓库。Claude Code 每次加载或刷新市场时都会重新检查保留名称,因此该市场以及从中安装的插件将停止加载。在 v2.1.205 之前,在其名称成为保留名称之前注册的条目仍会继续加载。

3885 3956 

3886```text theme={null}3957```text theme={null}

3887Marketplace "claude-community" is registered from an untrusted source: The name 'claude-community' is reserved for official Anthropic marketplaces. Only repositories from 'github.com/anthropics/' can use this name. To fix it, remove the marketplace and re-add it from the official source.3958Marketplace "claude-community" is registered from an untrusted source: The name 'claude-community' is reserved for official Anthropic marketplaces. Only repositories from 'github.com/anthropics/' can use this name. To fix it, remove the marketplace and re-add it from the official source.

3888```3959```

3889 3960 

3890对于来源不是 GitHub 存储库或 Git URL 的 marketplace,例如本地目录,中间句子改为`can only be used with GitHub sources from the 'anthropics' organization`。`claude plugin marketplace add`运行相同的检查,并拒绝保留的名称,返回`Failed to add marketplace:`后跟相同的保留名称句子。3961对于来源不是 GitHub 仓库或 Git URL 的市场(例如本地目录),中间那句话会改为 `can only be used with GitHub sources from the 'anthropics' organization`。`claude plugin marketplace add` 会执行相同的检查,并以 `Failed to add marketplace:` 加上同样的保留名称说明来拒绝保留名称。

3891 3962 

3892**要做什么:**3963**解决方法:**

3893 3964 

3894* 如果 marketplace 已注册,运行`claude plugin marketplace remove <name>`,然后从官方`github.com/anthropics`存储库重新添加它3965* 如果该市场已经注册,请运行 `claude plugin marketplace remove <name>`,然后从官方的 `github.com/anthropics` 仓库重新添加

3895* 如果您发布了在名称被保留之前使用该名称的第三方 marketplace,请重命名它并要求用户从您的来源重新添加它3966* 如果您发布的第三方市场在该名称成为保留名称之前就已使用它,请为市场重命名,并请用户从您的来源重新添加

3896* 请参阅[Marketplace schema](/docs/zh-CN/plugins/marketplace-reference#marketplace-file)下的保留名称列表3967* 请参阅[市场 schema](/docs/zh-CN/plugins/marketplace-reference#marketplace-file) 下的保留名称列表

3897 3968 

3898### Marketplace 名称是保留名称的另一种拼写3969### 市场名称是某个保留名称的另一种拼写

3899 3970 

3900marketplace 的名称本身不是保留名称,但 Claude Code 将其视为保留名称的另一种拼写。[保留名称](/docs/zh-CN/plugins/marketplace-reference#reserved-name-spellings)列出了哪些拼写算作保留名称。当您添加 marketplace 时,Claude Code 拒绝这样的名称:3971该市场的名称本身并不是保留名称,但 Claude Code 将其视为某个保留名称的另一种拼写。[保留名称](/docs/zh-CN/plugins/marketplace-reference#reserved-name-spellings)列出了哪些拼写会被视为保留名称。添加市场时,Claude Code 会拒绝此类名称:

3901 3972 

3902```text theme={null}3973```text theme={null}

3903Failed to add marketplace: "claude.code.plugins" is another spelling of "claude-code-plugins", a reserved marketplace name.3974Failed to add marketplace: "claude.code.plugins" is another spelling of "claude-code-plugins", a reserved marketplace name.

3904```3975```

3905 3976 

3906当 marketplace 已在这样的名称下注册时,其条目停止加载,`/plugin`、`claude plugin install`和`claude plugin update`警告:3977如果某个市场已经以此类名称注册,其条目将停止加载,并且 `/plugin`、`claude plugin install` 和 `claude plugin update` 会发出警告:

3907 3978 

3908```text wrap theme={null}3979```text wrap theme={null}

3909known_marketplaces.json has an entry named "claude.code.plugins", another spelling of the reserved marketplace name "claude-code-plugins", so it is ignored. Remove it with: claude plugin marketplace remove claude.code.plugins3980known_marketplaces.json has an entry named "claude.code.plugins", another spelling of the reserved marketplace name "claude-code-plugins", so it is ignored. Remove it with: claude plugin marketplace remove claude.code.plugins

3910```3981```

3911 3982 

3912当名称需要 shell 引用时,添加时的拒绝读作`This marketplace's name is another spelling of "<reserved>", a reserved marketplace name. It is not exactly the reserved name it appears to be.`3983当该名称需要 shell 引号时,添加时的拒绝消息为 `This marketplace's name is another spelling of "<reserved>", a reserved marketplace name. It is not exactly the reserved name it appears to be.`

3913 3984 

3914**要做什么:**3985**解决方法:**

3915 3986 

3916* 将 marketplace 重命名为不拼写保留名称的名称,然后重新添加它3987* 将市场重命名为一个不会拼写成保留名称的名称,然后重新添加

3917* 对于忽略的条目警告,运行它给出的`claude plugin marketplace remove`命令,或从`~/.claude/plugins/known_marketplaces.json`中删除该条目3988* 对于条目被忽略的警告,请运行其中给出的 `claude plugin marketplace remove` 命令,或从 `~/.claude/plugins/known_marketplaces.json` 中删除该条目

3918 3989 

3919### Claude Code 拒绝 marketplace 名称3990### Claude Code refuses the marketplace name

3920 3991 

3921已注册的 marketplace 的名称[冒充官方 Anthropic marketplace](/docs/zh-CN/plugins/marketplace-reference#reserved-names),违反了该部分列出的规则。3992某个已注册市场的名称按照该部分所列规则[冒充了 Anthropic 官方市场](/docs/zh-CN/plugins/marketplace-reference#reserved-names)。

3922 3993 

3923如果 marketplace 在这样的名称下注册时检查阻止了它,marketplace 及从中安装的插件停止加载,因为 Claude Code 每次读取 marketplace 的目录时都会检查名称。当名称模仿官方名称时,`claude plugin list`和`/plugin`**Errors**选项卡报告每个受影响的插件,消息开头为:3994如果某个市场在此检查开始拦截此类名称之前就已以该名称注册,那么该市场以及从中安装的插件将停止加载,因为 Claude Code 每次读取市场目录时都会检查名称。当名称模仿官方名称时,`claude plugin list` 和 `/plugin` 的 **Errors** 选项卡会为每个受影响的插件报告一条以如下内容开头的消息:

3924 3995 

3925```text theme={null}3996```text theme={null}

3926Claude Code refuses the marketplace name "anthropic-plugins-v2"3997Claude Code refuses the marketplace name "anthropic-plugins-v2"

3927```3998```

3928 3999 

3929对于模仿名称,marketplace 自己的错误读作`Claude Code refuses this marketplace's name: it looks like one of Anthropic's own`。`claude plugin marketplace add`拒绝任何冒充名称,返回`Marketplace name impersonates an official Anthropic/Claude marketplace`。4000对于模仿性名称,市场本身的错误会改为 `Claude Code refuses this marketplace's name: it looks like one of Anthropic's own`。`claude plugin marketplace add` 会以 `Marketplace name impersonates an official Anthropic/Claude marketplace` 拒绝任何冒充性名称。

3930 4001 

3931在 v2.1.282 之前,`claude plugin list`和`/plugin`报告模仿名称的插件加载失败,但没有将 marketplace 的名称命名为原因。4002在 v2.1.282 之前,`claude plugin list` 和 `/plugin` 同样会将模仿性名称下的插件报告为加载失败,但不会指出市场名称是原因。

3932 4003 

3933**要做什么:**4004**解决方法:**

3934 4005 

3935* 要保留某个设置文件通过`"source": "settings"`内联声明的市场,请在删除旧名称之前先重命名它,因为删除市场也会从您的设置文件中删除其条目。Claude Code v2.1.292 或更高版本会在消息中列出以下步骤:4006* 如果要保留某个设置文件中以 `"source": "settings"` 内联声明的市场,请在删除旧名称之前先为其重命名,因为删除市场时也会从您的设置文件中删除其条目。Claude Code v2.1.292 或更高版本会在消息中列出以下步骤:

3936 1. 在每个于`extraKnownMarketplaces`下列出该市场的设置文件中,为该条目的键及其`source.name`指定同一个新的纯 ASCII 名称,且该名称看起来不像官方名称。如果管理员通过您组织的托管设置添加该市场,则由管理员执行此步骤4007 1. 在每个于 `extraKnownMarketplaces` 下列出该市场的设置文件中,为该条目的键及其 `source.name` 设置同一个新的纯 ASCII 名称,且该名称看起来不像官方名称。如果管理员通过您组织的托管设置添加了该市场,则由管理员执行此步骤

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

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

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

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

3941* 如果您发布 marketplace,在您的`marketplace.json`中重命名它;用户随后更新 marketplace 而不是删除它4012* 如果您是该市场的发布者,请在 `marketplace.json` 中为其重命名;之后用户只需更新该市场,而无需删除它

3942 4013 

3943### Marketplace 已从不同的来源添加4014### Marketplace is already added from a different source

3944 4015 

3945您在会话中或从 shell 中,通过[安装命令上的`--marketplace <source>`](/docs/zh-CN/plugins/install#add-a-marketplace-and-install-in-one-command)指定了一个新的市场来源。Claude Code 从该来源获取的目录与您已从不同来源添加的市场同名。Claude Code 保留现有的市场而不是替换它,插件未安装。4016您在会话中或从 shell 中,通过[安装命令上的 `--marketplace <source>`](/docs/zh-CN/plugins/install#add-a-marketplace-and-install-in-one-command) 指定了一个新的市场来源。Claude Code 从该来源获取的目录与您已从其他来源添加的某个市场同名。Claude Code 会保留现有市场而不是替换它,并且插件不会被安装。

3946 4017 

3947```text theme={null}4018```text theme={null}

3948Marketplace "acme-tools" is already added from a different source (github:acme/plugins). To use this source instead, remove that marketplace first with /plugin marketplace remove acme-tools.4019Marketplace "acme-tools" is already added from a different source (github:acme/plugins). To use this source instead, remove that marketplace first with /plugin marketplace remove acme-tools.

3949```4020```

3950 4021 

3951**要做什么:**4022**解决方法:**

3952 4023 

3953* 如果您已添加的 marketplace 是您想要的,按名称从中安装:`/plugin install <plugin>@<name>`4024* 如果您已添加的市场正是您想要的,请按名称从中安装:`/plugin install <plugin>@<name>`

3954* 要切换到新来源,运行`/plugin marketplace remove <name>`,然后重试安装4025* 如果要切换到新来源,请运行 `/plugin marketplace remove <name>`,然后重试安装

3955 4026 

3956### 插件命令在 shell 命令中引用 user\_config4027### 插件命令在 shell 命令中引用了 user\_config

3957 4028 

3958插件 hook、[monitor](/docs/zh-CN/plugins/components#monitors)或 MCP [`headersHelper`](/docs/zh-CN/mcp#use-dynamic-headers-for-custom-authentication)命令引用`${user_config.KEY}` [插件选项](/docs/zh-CN/plugins/manifest-reference#user-configuration),替换后的字符串将被传递到 shell。配置的值包含`$(...)` 、反引号或`;`会在那里作为代码运行,因此 Claude Code 拒绝启动该组件而不是替换该值。检查在命令模板上运行,因此即使尚未配置任何值,错误也会出现。在 v2.1.207 之前,该值被替换到 shell 命令中。4029某个插件 hook、[monitor](/docs/zh-CN/plugins/components#monitors) 或 MCP [`headersHelper`](/docs/zh-CN/mcp#use-dynamic-headers-for-custom-authentication) 命令引用了 `${user_config.KEY}` [插件选项](/docs/zh-CN/plugins/manifest-reference#user-configuration),而替换后的字符串会被传递给 shell。配置值中若包含 `$(...)`、反引号或 `;`,就会在那里作为代码运行,因此 Claude Code 会拒绝启动该组件,而不是替换该值。此检查针对命令模板执行,因此即使尚未配置任何值,也会出现该错误。在 v2.1.207 之前,该值会被替换到 shell 命令中。

3959 4030 

3960措辞取决于哪个界面引用了该选项。shell 形式的 hook 报告:4031消息的措辞取决于引用该选项的组件类型。shell 形式的 hook 会报告:

3961 4032 

3962```text theme={null}4033```text theme={null}

3963Hook from plugin formatter@acme-tools references ${user_config.*} in a shell-form command. The substituted value would be re-parsed by the shell. Use exec form instead — {"command": "<executable>", "args": ["${user_config.KEY}", ...]} — or read $CLAUDE_PLUGIN_OPTION_<KEY> from the hook's environment. Command: ./scripts/notify.sh ${user_config.webhook_url}4034Hook from plugin formatter@acme-tools references ${user_config.*} in a shell-form command. The substituted value would be re-parsed by the shell. Use exec form instead — {"command": "<executable>", "args": ["${user_config.KEY}", ...]} — or read $CLAUDE_PLUGIN_OPTION_<KEY> from the hook's environment. Command: ./scripts/notify.sh ${user_config.webhook_url}

3964```4035```

3965 4036 

3966monitor 报告:4037monitor 会报告:

3967 4038 

3968```text theme={null}4039```text theme={null}

3969Monitor "deploy-status" from plugin deploy-tools references ${user_config.*} in its command. The substituted value would be passed to a shell. Monitor commands cannot safely reference ${user_config.*}; have the monitor script read the value from a config file or prompt instead.4040Monitor "deploy-status" from plugin deploy-tools references ${user_config.*} in its command. The substituted value would be passed to a shell. Monitor commands cannot safely reference ${user_config.*}; have the monitor script read the value from a config file or prompt instead.

3970```4041```

3971 4042 

3972MCP `headersHelper`报告:4043MCP `headersHelper` 会报告:

3973 4044 

3974```text theme={null}4045```text theme={null}

3975headersHelper for MCP server 'internal-api' references ${user_config.*}. The substituted value would be passed to a shell; read the value inside the helper script instead (e.g. from an env var set in the server's "env" block).4046headersHelper for MCP server 'internal-api' references ${user_config.*}. The substituted value would be passed to a shell; read the value inside the helper script instead (e.g. from an env var set in the server's "env" block).

3976```4047```

3977 4048 

3978**要做什么:**4049**解决方法:**

3979 4050 

3980* 对于 hook,添加`args`数组使其以[exec 形式](/docs/zh-CN/hooks#exec-form-and-shell-form)运行,其中每个`${user_config.KEY}`成为一个参数,中间没有 shell。或删除引用并读取脚本内的`$CLAUDE_PLUGIN_OPTION_<KEY>`环境变量4051* 对于 hook,添加一个 `args` 数组,使其以 [exec 形式](/docs/zh-CN/hooks#exec-form-and-shell-form)运行,此时每个 `${user_config.KEY}` 都会成为一个参数,中间不经过 shell。或者删除该引用,改为在脚本中读取 `$CLAUDE_PLUGIN_OPTION_<KEY>` 环境变量

3981* 对于 monitor,删除引用并让 monitor 脚本从配置文件读取该值4052* 对于 monitor,删除该引用,并让 monitor 脚本从配置文件中读取该值

3982* 对于`headersHelper`,将`${user_config.KEY}`移到服务器的`headers`字段中,该字段不被 shell 解析,或在 helper 脚本内读取该值4053* 对于 `headersHelper`,将 `${user_config.KEY}` 移到服务器的 `headers` 字段中(该字段不会经过 shell 解析),或在辅助脚本中读取该值

3983 4054 

3984### 插件存档完整性检查失败4055### Plugin archive integrity check failed

3985 4056 

3986插件的 marketplace 条目使用带有`sha256`引脚的[`archive`源](/docs/zh-CN/plugins/marketplace-reference#archive-plugin-source),下载文件的摘要与引脚不匹配。Claude Code 拒绝安装,因此插件缓存中没有任何更改。不匹配有三个可能的原因:4057该插件的市场条目使用了带 `sha256` 固定值的 [`archive` 来源](/docs/zh-CN/plugins/marketplace-reference#archive-plugin-source),而下载文件的摘要与该固定值不匹配。Claude Code 会拒绝安装,因此插件缓存中不会有任何更改。不匹配可能有三个原因:

3987 4058 

3988* 作者计算引脚后 URL 处的文件已更改4059* 作者计算固定值之后,URL 上的文件发生了变化

3989* 作者在 marketplace 条目中输入了错误的摘要4060* 作者在市场条目中输入了错误的摘要

3990* URL 提供的文件与作者引脚的文件不同4061* 该 URL 提供的文件与作者固定的文件不同

3991 4062 

3992```text theme={null}4063```text theme={null}

3993Plugin archive integrity check failed for https://artifacts.example.com/claude-plugins/my-plugin.zip: expected sha256 6bfa50e3d2e00c052b46abe51fff89346ac803e45771f76dcf6df1ab74cca5e1, got ac52220c0914ef8ca6a602e4a7362f88d30fb021110f72a6d15b68c3fe7df2b7. The archive was not installed. Verify the sha256 in the marketplace entry, or that the URL serves the intended file.4064Plugin archive integrity check failed for https://artifacts.example.com/claude-plugins/my-plugin.zip: expected sha256 6bfa50e3d2e00c052b46abe51fff89346ac803e45771f76dcf6df1ab74cca5e1, got ac52220c0914ef8ca6a602e4a7362f88d30fb021110f72a6d15b68c3fe7df2b7. The archive was not installed. Verify the sha256 in the marketplace entry, or that the URL serves the intended file.

3994```4065```

3995 4066 

3996**要做什么:**4067**解决方法:**

3997 4068 

3998* 如果您发布插件,重新计算 URL 提供的确切文件的摘要,例如使用`shasum -a 256 my-plugin.zip`或在 PowerShell 中使用`Get-FileHash -Algorithm SHA256 my-plugin.zip`,并更新 marketplace 条目中的`sha256`4069* 如果您是该插件的发布者,请重新计算该 URL 所提供的确切文件的摘要,例如使用 `shasum -a 256 my-plugin.zip`,或在 PowerShell 中使用 `Get-FileHash -Algorithm SHA256 my-plugin.zip`,然后更新市场条目中的 `sha256`

3999* 如果您安装插件,运行`/plugin marketplace update <name>`以刷新目录以防条目已更正,然后重试安装4070* 如果您是安装该插件的用户,请运行 `/plugin marketplace update <name>` 刷新目录,以防该条目已被更正,然后重试安装

4000* 如果刷新后摘要仍然不一致,请在安装前询问 marketplace 所有者他们引脚的是哪个文件4071* 如果刷新后摘要仍不一致,请在安装前询问市场所有者他们固定的是哪个文件

4001 4072 

4002### 路径逃逸插件目录4073### Path escapes plugin directory

4003 4074 

4004插件组件路径在插件的`plugin.json`或其[marketplace 条目](/docs/zh-CN/plugins/marketplace-reference#plugin-entries)中声明,解析到插件自己目录之外。Claude Code 删除该路径并加载插件的其余部分。消息中的组件名称(例如`commands`或`hooks`)命名声明路径的字段。4075插件的某个组件路径指向插件目录之外,或无法确认其位于插件目录之内,因此 Claude Code 会丢弃该路径并加载插件的其余部分。对于插件在 `plugin.json` 或其[市场条目](/docs/zh-CN/plugins/marketplace-reference#plugin-entries)中声明的路径,消息中的组件名称(例如 `commands` 或 `hooks`)指明了声明该路径的字段。

4005 4076 

4006```text theme={null}4077```text theme={null}

4007commands path escapes plugin directory: ./../shared.md4078commands path escapes plugin directory: ./../shared.md

4008```4079```

4009 4080 

4010在`claude plugin`命令输出中,相同的错误读作`Path escapes plugin directory: ./../shared.md (commands)`。4081在 `claude plugin` 命令的输出中,同一错误显示为 `Path escapes plugin directory: ./../shared.md (commands)`。

4011 4082 

4012Claude Code 拒绝指向插件外部的路径(如`../shared-utils`)和导致插件外部的符号链接,[marketplace 符号链接规则](/docs/zh-CN/plugins/host-marketplace#share-files-within-a-marketplace-with-symlinks)不允许的符号链接。对于符号链接,消息还说明路径解析的位置:4083Claude Code 既会拒绝按字面写法就指向插件之外的路径(例如 `../shared-utils`),也会拒绝指向插件之外且不在[市场符号链接规则](/docs/zh-CN/plugins/host-marketplace#share-files-within-a-marketplace-with-symlinks)允许范围内的符号链接。对于符号链接,消息还会说明该路径解析到的位置:

4013 4084 

4014```text theme={null}4085```text theme={null}

4015commands path escapes plugin directory: ./commands/deploy.md — it resolves to /home/user/shared/deploy.md, outside the plugin directory4086commands path escapes plugin directory: ./commands/deploy.md — it resolves to /home/user/shared/deploy.md, outside the plugin directory

4016```4087```

4017 4088 

4018在 macOS 和 Linux 上,Claude Code 也拒绝包含反斜杠的组件路径,即使路径保留在插件内。使用 Windows 风格分隔符的组件路径的插件在 Windows 上加载并在其他平台上触发此拒绝:4089如果消息给出的是市场插件自身某个文件(例如 `hooks/hooks.json`)的完整路径,则表示 Claude Code 跳过了该文件。当 Claude Code 无法确认该文件位于插件之内,或者对于[本地市场](/docs/zh-CN/plugins/loading#in-place-and-copied-plugins)中的插件,无法确认其位于该市场之内时,就会出现这种情况。消息会在以下所示的组件名称下报告这些文件:

4090 

4091* `hooks/hooks.json`:`hooks`

4092* `monitors/monitors.json`:`monitors`

4093* `settings.json`:`settings`

4094* 插件根目录下的 `SKILL.md`:`skills`

4095 

4096例如,以下消息针对的是一个解析到插件及其本地市场之外的 `hooks/hooks.json`:

4097 

4098```text theme={null}

4099hooks path escapes plugin directory: /home/user/my-marketplace/my-plugin/hooks/hooks.json — it resolves to /home/user/dotfiles/hooks.json, outside the plugin directory and its marketplace directory

4100```

4101 

4102在 macOS 和 Linux 上,Claude Code 还会拒绝任何位置包含反斜杠的组件路径,即使该路径仍在插件之内。组件路径使用 Windows 风格分隔符的插件在 Windows 上可以加载,但在其他平台上会触发此拒绝:

4019 4103 

4020```text theme={null}4104```text theme={null}

4021commands path escapes plugin directory: ./commands\deploy.md — its path contains a backslash, which is not resolved reliably on this platform4105commands path escapes plugin directory: ./commands\deploy.md — its path contains a backslash, which is not resolved reliably on this platform

4022```4106```

4023 4107 

4024在 v2.1.251 之前,Claude Code 加载在 marketplace 条目中声明的`commands`路径,即使它指向插件目录之外。4108在 v2.1.251 之前,即使市场条目中声明的 `commands` 路径指向插件目录之外,Claude Code 也会加载它。

4025 4109 

4026在 v2.1.257 之前,检查仅查看路径的拼写,而不是符号链接导向的位置。4110在 v2.1.257 之前,对插件所声明路径的检查只看路径的写法,而不看符号链接指向的位置。

4027 4111 

4028**要做什么:**4112**解决方法:**

4113 

4114* 如果您只是安装了该插件而不负责维护它,请将该消息报告给插件作者

4115* 对于插件声明的路径,请将被引用的文件移到插件目录内,并使用 `./` 相对路径指向它

4116* 如果该路径或其在插件内的某个上级文件夹是指向插件之外的符号链接,请用其指向内容的副本替换该符号链接

4117* 如果消息指出插件声明的路径包含反斜杠,请使用正斜杠编写该路径,例如 `./commands/deploy.md`

4118* 如果消息以 `EACCES` 结尾,请恢复您对通往该路径所指文件或文件夹的每个目录的执行权限。检查该路径上方的各个目录,然后跟随遇到的每个符号链接,并检查通往其指向位置的各个目录。对于任何其他错误代码,请在[无法检查路径的原因和处理步骤](#path-could-not-be-checked)中查找。

4119* 如果要与同一市场中的其他插件共享文件,请按照[符号链接规则](/docs/zh-CN/plugins/host-marketplace#share-files-within-a-marketplace-with-symlinks),在插件目录内使用符号链接链接这些文件

4120 

4121### Plugin not loaded: its manifest was not read

4122 

4123Claude Code 无法确认某个市场插件位于 `.claude-plugin/plugin.json` 的[清单](/docs/zh-CN/plugins/manifest-reference)是否在插件之内,因此不会从该插件加载任何内容。对于[本地市场](/docs/zh-CN/plugins/loading#in-place-and-copied-plugins)中的插件,Claude Code 同样无法确认该清单位于该市场之内。该消息出现在 `/plugin` 的 **Errors** 选项卡中,消息末尾的原因说明了 Claude Code 发现的情况。

4124 

4125例如,以下消息针对的是本地市场中的一个插件,其 `.claude-plugin` 文件夹是指向市场之外的符号链接:

4126 

4127```text theme={null}

4128Plugin not loaded: its manifest /home/user/my-marketplace/my-plugin/.claude-plugin/plugin.json was not read, because it resolves to /home/user/dotfiles/my-plugin/.claude-plugin/plugin.json, outside the plugin directory and its marketplace directory

4129```

4029 4130 

4030* 将引用的文件移到插件目录内,并使用`./`相对路径指向它4131**解决方法:**

4031* 如果路径是指向插件外部文件的符号链接,用文件副本替换符号链接

4032* 如果消息说路径包含反斜杠,用正斜杠写路径,例如`./commands/deploy.md`

4033* 要与同一 marketplace 中的其他插件共享文件,使用插件目录内的符号链接链接它们,遵循[符号链接规则](/docs/zh-CN/plugins/host-marketplace#share-files-within-a-marketplace-with-symlinks)

4034 4132 

4035### 路径无法检查4133* 如果原因以 `EACCES` 结尾,请恢复您对通往该清单的每个目录的执行权限。检查清单上方的各个目录,然后跟随遇到的每个符号链接,并检查通往其指向位置的各个目录。对于任何其他错误代码,请在[无法检查路径的原因和处理步骤](#path-could-not-be-checked)中查找。

4134* 如果您是该插件的维护者,且原因中说明了清单解析到的位置,则说明 `.claude-plugin` 文件夹或 `plugin.json` 本身是指向该位置的符号链接。请用其指向内容的副本替换该链接。

4135* 如果您只是安装了该插件而不负责维护它,请将该消息报告给插件作者

4036 4136 

4037Claude Code 询问操作系统插件路径是否存在,并收到"未找到"以外的错误,因此它不加载路径命名的内容。插件加载多少取决于哪个路径失败:4137### Path could not be checked

4038 4138 

4039* 插件的[默认组件位置](/docs/zh-CN/plugins/manifest-reference#standard-layout)之一,例如`skills/`文件夹、`monitors/monitors.json`文件或[插件根目录的`SKILL.md`](/docs/zh-CN/plugins/components#skills):插件的其他组件仍然加载4139Claude Code 向操作系统询问某个插件路径是否存在时,收到了“未找到”以外的错误,因此不会加载该路径所指的内容。插件能加载多少取决于哪个路径失败:

4040* 插件自己的目录:该插件中没有任何内容加载

4041 4140 

4042对于根本不存在的路径,您看不到此错误。在`/plugin`中,错误出现在插件下方,并命名路径和操作系统返回的代码:4141* 插件的某个[默认组件位置](/docs/zh-CN/plugins/manifest-reference#standard-layout),例如 `skills/` 文件夹、`monitors/monitors.json` 文件或[插件根目录下的 `SKILL.md`](/docs/zh-CN/plugins/components#skills):插件的其他组件仍会加载

4142* 插件自身的目录:不会加载该插件的任何内容

4143 

4144对于根本不存在的路径,您不会看到此错误。在 `/plugin` 中,该错误显示在插件下方,并指明路径以及操作系统返回的代码:

4043 4145 

4044```text theme={null}4146```text theme={null}

4045skills path could not be checked: /home/user/my-plugin/skills (ELOOP)4147skills path could not be checked: /home/user/my-plugin/skills (ELOOP)

4046```4148```

4047 4149 

4048在`claude plugin list`中,相同的错误读作`Path not found: /home/user/my-plugin/skills (skills, ELOOP)`。4150在 `claude plugin list` 中,同一错误显示为 `Path not found: /home/user/my-plugin/skills (skills, ELOOP)`。

4049 4151 

4050产生此错误的原因包括:4152产生此错误的原因包括:

4051 4153 

4052* `ELOOP`:路径中的符号链接指向自己或形成循环4154* `ELOOP`:路径中的某个符号链接指向自身或形成了循环

4053* `EIO`或`ESTALE`:路径在损坏或陈旧的网络挂载上4155* `EIO` 或 `ESTALE`:该路径位于已损坏或已失效的网络挂载上

4054* `EACCES`:路径上方的目录之一拒绝您遍历它的权限4156* `EACCES`:路径上方的某个目录拒绝了您的遍历权限

4055 4157 

4056**要做什么:**4158**解决方法:**

4057 4159 

4058* 用真实文件夹替换指向自己的符号链接,或删除它4160* 用真实文件夹替换指向自身的符号链接,或将其删除

4059* 如果路径在网络挂载上,重新挂载共享4161* 如果该路径位于网络挂载上,请重新挂载该共享

4060* 如果代码是`EACCES`,恢复您对路径上方目录的执行权限4162* 如果代码为 `EACCES`,请恢复您对该路径上方各目录的执行权限

4061* 修复路径后运行`/reload-plugins`,或重启 Claude Code,以加载插件或组件4163* 修复路径后,运行 `/reload-plugins` 或重启 Claude Code,以加载该插件或组件

4062 4164 

4063在 v2.1.265 之前,Claude Code 将无法检查的默认组件文件夹视为不存在,并加载没有该组件的插件,没有错误。4165在 v2.1.265 之前,Claude Code 会将无法检查的默认组件文件夹视为不存在,并在不报任何错误的情况下加载缺少该组件的插件。

4064 4166 

4065### Marketplace 条目路径不保留在 marketplace 目录内4167### Marketplace entry path does not stay inside the marketplace directory

4066 4168 

4067插件的[marketplace 条目](/docs/zh-CN/plugins/marketplace-reference#plugin-entries)声明了一个源路径,Claude Code 无法将其解析到 marketplace 自己目录内的位置,因此插件不安装或加载。拒绝涵盖:4169插件的[市场条目](/docs/zh-CN/plugins/marketplace-reference#plugin-entries)声明的来源路径,Claude Code 无法将其解析到市场自身目录内的某个位置,因此该插件不会被安装或加载。此拒绝涵盖以下情况:

4068 4170 

4069* 绝对的条目路径、使用`..`爬出 marketplace 的路径或拼写为网络路径的路径4171* 条目路径为绝对路径、通过 `..` 跳出市场,或写成网络路径的形式

4070* 在 macOS 和 Linux 上,在前导`./`之后任何地方包含反斜杠的条目路径4172* 在 macOS 和 Linux 上,条目路径在开头的 `./` 之后的任何位置包含反斜杠

4071* 从远程来源(例如 git 或 URL)获取的 marketplace 中的条目,通过解析到 marketplace 目录外的符号链接到达其目标4173* 从远程来源(例如 git 或 URL)获取的市场中的条目,通过解析到市场目录之外的符号链接到达其目标

4072* 从直接 URL 添加到其`marketplace.json`的 marketplace 中的相对条目:Claude Code 仅下载该文件,因此不存在本地插件文件供路径命名。请参阅[相对路径的插件在基于 URL 的 marketplace 中失败](/docs/zh-CN/plugins/troubleshooting#plugins-with-relative-paths-fail-in-url-based-marketplaces)4174* 通过指向 `marketplace.json` 的直接 URL 添加的市场中的相对条目:Claude Code 只下载该文件,因此不存在可供该路径指向的本地插件文件。请参阅[在基于 URL 的市场中使用相对路径的插件会失败](/docs/zh-CN/plugins/troubleshooting#plugins-with-relative-paths-fail-in-url-based-marketplaces)

4073 4175 

4074`claude plugin install`报告拒绝如下:4176`claude plugin install` 会像这样报告此拒绝:

4075 4177 

4076```text theme={null}4178```text theme={null}

4077Cannot install my-plugin@my-marketplace: its marketplace entry path does not stay inside the marketplace directory (an absolute, climbing, network-shaped, backslash-containing or link-traversing entry, an entry of a fetched marketplace that resolves or opens outside its tree — or a relative entry in a url-catalog marketplace, which has no local directory)4179Cannot install my-plugin@my-marketplace: its marketplace entry path does not stay inside the marketplace directory (an absolute, climbing, network-shaped, backslash-containing or link-traversing entry, an entry of a fetched marketplace that resolves or opens outside its tree — or a relative entry in a url-catalog marketplace, which has no local directory)

4078```4180```

4079 4181 

4080当已安装的插件的条目失败相同的检查时,`claude plugin list`显示插件为`failed to load`,带有:4182当某个已安装插件的条目未通过同一检查时,`claude plugin list` 会将该插件显示为 `failed to load`,并附带:

4081 4183 

4082```text theme={null}4184```text theme={null}

4083Plugin source path refused: ./my-plugin does not stay inside its marketplace directory. Check that the marketplace entry has a plain relative path.4185Plugin source path refused: ./my-plugin does not stay inside its marketplace directory. Check that the marketplace entry has a plain relative path.

4084```4186```

4085 4187 

4086**要做什么:**4188**解决方法:**

4087 4189 

4088* 如果您维护 marketplace,将条目的`source`写为带正斜杠的纯相对路径,例如`./plugins/my-plugin`,并保持它跨越的任何符号链接指向 marketplace 目录内4190* 如果您是该市场的维护者,请将条目的 `source` 写成使用正斜杠的普通相对路径,例如 `./plugins/my-plugin`,并确保其经过的任何符号链接都指向市场目录之内

4089* 如果您从直接 URL 添加了 marketplace,相对条目无法解析。要求 marketplace 作者使用[另一个插件源](/docs/zh-CN/plugins/marketplace-reference#plugin-sources),或从其 git 存储库添加 marketplace4191* 如果您通过直接 URL 添加了该市场,相对条目将无法解析。请要求市场作者使用[其他插件来源](/docs/zh-CN/plugins/marketplace-reference#plugin-sources),或改为从其 git 仓库添加该市场

4090 4192 

4091### 无法加载 marketplace 配置4193### Failed to load marketplace configuration

4092 4194 

4093Claude Code 将您添加的插件 marketplace 保存在`~/.claude/plugins/known_marketplaces.json`的注册表文件中。当 Claude Code 无法使用该文件时,需要注册表的插件命令(例如`claude plugin install`)失败,返回两条消息之一:4195Claude Code 将您添加的插件市场保存在位于 `~/.claude/plugins/known_marketplaces.json` 的注册表文件中。当 Claude Code 无法使用该文件时,需要该注册表的插件命令(例如 `claude plugin install`)会失败,并显示以下两条消息之一:

4094 4196 

4095* `Failed to load marketplace configuration`:文件存在但不是有效的 JSON 或无法读取。空文件也会以这种方式失败。4197* `Failed to load marketplace configuration`:文件存在,但不是有效的 JSON 或无法读取。空文件也会以这种方式失败。

4096* `Marketplace configuration file is corrupted`:文件是有效的 JSON,但其内容与注册表架构不匹配。4198* `Marketplace configuration file is corrupted`:文件是有效的 JSON,但其内容与注册表 schema 不匹配。

4097 4199 

4098对于空文件,`claude plugin install`报告:4200对于空文件,`claude plugin install` 会报告:

4099 4201 

4100```text theme={null}4202```text theme={null}

4101✘ Failed to install plugin "my-plugin": Failed to load marketplace configuration: JSON Parse error: Unexpected EOF4203✘ Failed to install plugin "my-plugin": Failed to load marketplace configuration: JSON Parse error: Unexpected EOF

4102```4204```

4103 4205 

4104在 v2.1.246 之前,`claude plugin install`没有报告此失败。4206在 v2.1.246 之前,`claude plugin install` 不会报告此失败。

4105 4207 

4106**要做什么:**4208**解决方法:**

4107 4209 

4108* 打开`~/.claude/plugins/known_marketplaces.json`并修复 JSON,或修复消息命名为与注册表架构不匹配的条目4210* 打开 `~/.claude/plugins/known_marketplaces.json` 并修复其中的 JSON,或修正消息中指出的与注册表 schema 不匹配的条目

4109* 如果您无法修复它,删除文件或用`{}`替换其内容,然后使用`claude plugin marketplace add <source>`重新添加每个 marketplace。Claude Code 在您下次在您信任的文件夹中启动它时重新注册您的用户或托管设置在[`extraKnownMarketplaces`](/docs/zh-CN/settings-reference#extraknownmarketplaces)中声明的 marketplace。4211* 如果无法修复,请删除该文件或将其内容替换为 `{}`,然后使用 `claude plugin marketplace add <source>` 重新添加每个市场。下次您在已信任的文件夹中启动 Claude Code 时,它会重新注册您的用户设置或托管设置在 [`extraKnownMarketplaces`](/docs/zh-CN/settings-reference#extraknownmarketplaces) 中声明的市场。

4110 4212 

4111### 插件由您的组织要求4213### Plugin is required by your organization

4112 4214 

4113您运行了`claude plugin disable`,或使用`/plugin`**Installed**选项卡关闭了从 claude.ai 同步的[插件](/docs/zh-CN/plugins/loading#synced-plugins),您的组织将其标记为必需:4215您运行了 `claude plugin disable`,或使用 `/plugin` 的 **Installed** 选项卡,尝试关闭一个被您的组织标记为必需的[从 claude.ai 同步的插件](/docs/zh-CN/plugins/loading#synced-plugins):

4114 4216 

4115```text theme={null}4217```text theme={null}

4116Plugin "<name>@synced" is required by your organization and can't be disabled here. Contact your admin to change it.4218Plugin "<name>@synced" is required by your organization and can't be disabled here. Contact your admin to change it.

4117```4219```

4118 4220 

4119Claude Code 不保存任何内容,插件保持启用。4221Claude Code 不会保存任何内容,插件保持启用状态。

4120 4222 

4121当您尝试禁用必需插件依赖的插件时,Claude Code 以相同的方式拒绝,消息命名需要它的必需插件。4223当您尝试禁用某个必需插件所依赖的插件时,Claude Code 会以同样的方式拒绝,并在消息中指出需要它的那个必需插件。

4122 4224 

4123**要做什么:**4225**解决方法:**

4124 4226 

4125* 要求您的 claude.ai 组织的管理员在 claude.ai 上更改插件的必需状态4227* 请您的 claude.ai 组织的管理员在 claude.ai 上更改该插件的必需状态

4126 4228 

4127### 插件未卸载4229### Plugin was not uninstalled

4128 4230 

4129您运行了[`claude plugin uninstall`](/docs/zh-CN/plugins/cli-reference#plugin-uninstall),或在`/plugin`**Installed**选项卡中选择了**Uninstall**,卸载停止,消息开头为`"<plugin>" was not uninstalled:`。如果该冒号后的文本以`installed_plugins.json`开头而不是命名设置文件,原因是`installed_plugins.json`中的内容,此版本的 Claude Code 无法读取。对于该形式,请参阅[`installed_plugins.json`保存此版本无法读取的记录](/docs/zh-CN/plugins/troubleshooting#installed-plugins-json-holds-a-record-this-version-cannot-read)。4231您运行了 [`claude plugin uninstall`](/docs/zh-CN/plugins/cli-reference#plugin-uninstall),或在 `/plugin` 的 **Installed** 选项卡中选择了 **Uninstall**,而卸载停止并显示一条以 `"<plugin>" was not uninstalled:` 开头的消息。如果冒号后的文本以 `installed_plugins.json` 开头,而不是指出某个设置文件,则原因是 `installed_plugins.json` 中包含当前版本的 Claude Code 无法读取的内容。对于这种形式,请参阅[`installed_plugins.json` 包含当前版本无法读取的记录](/docs/zh-CN/plugins/troubleshooting#installed-plugins-json-holds-a-record-this-version-cannot-read)。

4130 4232 

4131当 Claude Code 从`enabledPlugins`中删除插件的条目并读回该范围的设置文件时,要么插件仍在那里打开,要么可以打开它的文件无法读取或检查。删除插件保存的选项、机密和数据,同时设置条目可以将其打开,会丢失它们,因此卸载停止:插件保持安装,它保存的任何内容都不会被删除。4233Claude Code 从 `enabledPlugins` 中移除插件条目并重新读取该作用域的设置文件时,发现插件在其中仍处于启用状态,或者某个可能启用它的文件无法读取或检查。如果在某个设置条目仍可能重新启用插件的情况下删除插件已保存的选项、密钥和数据,这些内容就会丢失,因此卸载会停止:插件保持已安装状态,其保存的任何内容都不会被删除。

4132 4234 

4133```text theme={null}4235```text theme={null}

4134✘ Failed to uninstall plugin "formatter": "formatter" was not uninstalled: it is still switched on in /home/user/project/.claude/settings.local.json, although the settings change reported no error. It is still installed. Take it out of "enabledPlugins" in that file yourself, then uninstall it again.4236✘ Failed to uninstall plugin "formatter": "formatter" was not uninstalled: it is still switched on in /home/user/project/.claude/settings.local.json, although the settings change reported no error. It is still installed. Take it out of "enabledPlugins" in that file yourself, then uninstall it again.

4135```4237```

4136 4238 

4137消息的中间部分命名文件和原因:4239消息的中间部分指出了文件和原因:

4138 4240 

4139* `it is still switched on in <file>, although the settings change reported no error`:设置写报告成功,但读回文件时条目仍在那里4241* `it is still switched on in <file>, although the settings change reported no error`:设置写入报告成功,但重新读取文件时该条目仍然存在

4140* `it is still switched on in <file>, and the settings change failed (<error>)`:文件无法保存,原因在括号中4242* `it is still switched on in <file>, and the settings change failed (<error>)`:文件无法保存,原因见括号内

4141* `<file> is there and could not be read`:文件存在但无法作为设置读取,例如因为它不是有效的 JSON,所以它可能仍然启用插件4243* `<file> is there and could not be read`:文件存在,但无法作为设置读取,例如因为它不是有效的 JSON,因此它可能仍会启用该插件

4142* `<file> (not read: it is on a network path or is a link to one, or could not be checked)`:Claude Code 没有读取项目或本地设置文件,因为文件或保存它的`.claude`文件夹是指向网络位置的链接,或因为它无法检查该路径4244* `<file> (not read: it is on a network path or is a link to one, or could not be checked)`:Claude Code 没有读取项目或本地设置文件,因为该文件或包含它的 `.claude` 文件夹是指向网络位置的链接,或者因为它无法检查该路径

4143 4245 

4144`claude plugin uninstall`退出 1,使用`--json`时结果带有`failureCode: "settings_still_on"`。`/plugin`显示相同的消息。4246`claude plugin uninstall` 以退出码 1 退出,使用 `--json` 时,结果中包含 `failureCode: "settings_still_on"`。`/plugin` 会显示相同的消息。

4145 4247 

4146**要做什么:**4248**解决方法:**

4147 4249 

4148* 遵循消息的最后一句:修复或替换它命名的设置文件,或自己从该文件中的`enabledPlugins`中删除插件的条目,然后再次运行卸载4250* 按照消息最后一句操作:修复或替换其中指出的设置文件,或自行从该文件的 `enabledPlugins` 中移除该插件的条目,然后再次运行卸载

4149 4251 

4150## 工具错误4252## 工具错误

4151 4253 

4152这些错误来自 Claude 的工具调用。Claude 通常会自动纠正大多数工具错误。当需要您进行更改时,该错误的**应该做什么**列表会说明需要更改的内容。4254这些错误来自 Claude 的工具调用。大多数工具错误 Claude 会自行纠正。如果某个错误需要您进行更改,该错误的**处理方法**列表会说明需要更改的内容。

4153 4255 

4154### 没有此类工具可用4256### No such tool available

4155 4257 

4156Claude 按名称调用了一个不在会话工具列表中的工具。Claude Code 将该错误作为工具调用的结果返回给 Claude,轮次继续。当 Claude Code 能够判断工具缺失的原因时,它会在工具名称后添加一句话,说明原因或指出应改为调用的工具,如第二行所示:4258Claude 调用的工具名称不在会话的工具列表中。Claude Code 会将该错误作为工具调用的结果返回给 Claude,轮次继续进行。当 Claude Code 能判断工具缺失的原因时,会在工具名称后追加一句话,说明原因或给出应改为调用的工具,如第二行所示:

4157 4259 

4158```text theme={null}4260```text theme={null}

4159Error: No such tool available: <tool name>4261Error: No such tool available: <tool name>


4162 4264 

4163在您恢复会话后不久,当 Claude 调用某个 MCP 服务器的工具时,该服务器可能仍在进行首次连接尝试。此时 Claude Code 会[等待该服务器](/docs/zh-CN/mcp#tool-availability),如果等待结束时该工具仍不可用,则返回此错误。在 v2.1.284 之前,此类调用会立即失败,而不会等待。4265在您恢复会话后不久,当 Claude 调用某个 MCP 服务器的工具时,该服务器可能仍在进行首次连接尝试。此时 Claude Code 会[等待该服务器](/docs/zh-CN/mcp#tool-availability),如果等待结束时该工具仍不可用,则返回此错误。在 v2.1.284 之前,此类调用会立即失败,而不会等待。

4164 4266 

4165工具名称被 Claude Code [截断为 200 个字符](#tool-use-name-over-200-characters)的调用也会以此错误失败。4267工具名称被 Claude Code [截断为 200 个字符](#tool-use-name-over-200-characters)的调用也会因此错误而失败。

4166 4268 

4167**应该做什么:**4269**处理方法:**

4168 4270 

4169* 如果只出现一次,无需执行任何操作。Claude 会读取该错误,轮次继续。4271* 如果只出现一次,无需任何操作。Claude 会读取该错误,轮次继续进行。

4170* 如果对某个 MCP 服务器工具的调用持续以此错误失败,请在会话中运行 `/mcp` 或在 shell 中运行 `claude mcp list` 来检查该服务器的[状态](/docs/zh-CN/mcp#server-status),并从 `/mcp` 重新连接失败的服务器。在 Agent SDK 中,请参阅[错误处理](/docs/zh-CN/agent-sdk/mcp#error-handling)。4272* 如果对某个 MCP 服务器工具的调用持续因此错误失败,请在会话中运行 `/mcp`,或在 shell 中运行 `claude mcp list` 来检查该服务器的[状态](/docs/zh-CN/mcp#server-status),并从 `/mcp` 中重新连接失败的服务器。在 Agent SDK 中,请参阅[错误处理](/docs/zh-CN/agent-sdk/mcp#error-handling)。

4171 4273 

4172### Agent 将以零个工具生成4274### Agent would be spawned with zero tools

4173 4275 

4174子代理的 [`tools` 列表](/docs/zh-CN/sub-agents#supported-frontmatter-fields)中的每个条目都无法匹配可用工具,因此 Claude Code 拒绝启动子代理:没有工具,它无法行动。该消息按出错原因对您的条目进行分组:4276子代理 [`tools` 列表](/docs/zh-CN/sub-agents#supported-frontmatter-fields)中的每个条目都未能匹配到可用工具,因此 Claude Code 拒绝启动该子代理:没有任何工具,它无法执行操作。该消息按问题类型对您的条目进行分组:

4175 4277 

4176* **无法识别**:该条目与任何工具名称都不匹配,通常是拼写错误,例如 `Grpe` 代替 `Grep`。4278* **Unrecognized**:该条目不匹配任何工具名称,通常是拼写错误,例如将 `Grep` 写成 `Grpe`。

4177* **子代理不可用**:该条目命名了一个真实工具,但[子代理无法使用](/docs/zh-CN/sub-agents#available-tools)。后台子代理保持较小的内置工具集,因此当子代理在后台运行时(这是默认设置),只有前台子代理才能使用的条目会出现在这里。如果您列出 `Agent`,该消息会改为在下一组中报告它。4279* **Not available to subagents**:该条目指定的是一个真实存在但[子代理无法使用](/docs/zh-CN/sub-agents#available-tools)的工具。后台子代理保留的内置工具集较小,因此当子代理将在后台运行(这是默认行为)时,只有前台子代理才能使用的条目会归入此组。如果您列出了 `Agent`,消息会将其归入下一组。

4178* **在此会话中未匹配任何工具**:该条目有效,但当前会话中没有工具与其匹配,例如没有连接 GitHub MCP 服务器的 `mcp__github__*`,或子代理处于[深度限制](/docs/zh-CN/sub-agents#let-subagents-spawn-their-own-subagents)的 `Agent`。4280* **Matched no tools in this session**:该条目有效,但当前会话中目前没有与之匹配的工具,例如未连接 GitHub MCP 服务器时的 `mcp__github__*`,或处于[深度限制](/docs/zh-CN/sub-agents#let-subagents-spawn-their-own-subagents)的子代理的 `Agent`。

4179 4281 

4180省略 `tools` 字段永远不会触发此拒绝。如果您将 `tools` 列表留空,或 `disallowedTools` 删除其中的每个条目,Claude Code 也会跳过拒绝并启动没有工具的子代理。4282省略 `tools` 字段永远不会触发此拒绝。如果您将 `tools` 列表留空,或 `disallowedTools` 移除了其中的每个条目,Claude Code 同样会跳过拒绝,并在没有工具的情况下启动子代理。

4181 4283 

4182在 v2.1.208 之前,子代理以零个工具启动,可能返回空结果或令人困惑的结果。4284在 v2.1.208 之前,子代理会在没有工具的情况下启动,并可能返回空的或令人困惑的结果。

4183 4285 

4184```text theme={null}4286```text theme={null}

4185Agent 'code-reviewer' would be spawned with zero tools — refusing. Its tools list resolved to nothing: unrecognized [Grpe]. Fix the agent's tools frontmatter or pass a different subagent_type.4287Agent 'code-reviewer' would be spawned with zero tools — refusing. Its tools list resolved to nothing: unrecognized [Grpe]. Fix the agent's tools frontmatter or pass a different subagent_type.

4186```4288```

4187 4289 

4188**应该做什么:**4290**处理方法:**

4189 4291 

4190* 根据[子代理可用的工具](/docs/zh-CN/sub-agents#available-tools)纠正错误命名的每个条目4292* 对照[子代理可用的工具](/docs/zh-CN/sub-agents#available-tools)更正错误中指出的每个条目

4191* 删除会话没有的工具条目,例如来自未连接的服务器的 MCP 工具4293* 移除会话中不存在的工具条目,例如来自未连接服务器的 MCP 工具

4192* 如果该条目指向一个已连接的 MCP 服务器,请将该条目与该服务器的名称进行比较,以该服务器[工具名称](/docs/zh-CN/permissions#mcp)中的拼写为准,例如 `mcp__reports__v2__get_totals` 中的 `reports__v2`。对于该服务器,请写 `mcp__reports__v2__*`,即 `mcp__` 后跟完整名称和 `__*`。如果使用较短的 `mcp__reports`(它指向名为 `reports` 的服务器),子代理将得不到任何 `reports__v2` 工具4294* 如果条目指定的是已连接的 MCP 服务器,请将该条目与该服务器[工具名称](/docs/zh-CN/permissions#mcp)中拼写的服务器名称进行比较,例如 `mcp__reports__v2__get_totals` 中的 `reports__v2`。对于该服务器,请写成 `mcp__reports__v2__*`,即 `mcp__` 后接完整名称和 `__*`。如果使用较短的 `mcp__reports`(它指定的是名为 `reports` 的服务器),子代理将得不到任何 `reports__v2` 工具

4193* 对于[后台子代理删除](/docs/zh-CN/sub-agents#available-tools)的工具(例如 `CronCreate`),删除该条目4295* 对于[后台子代理会丢弃](/docs/zh-CN/sub-agents#available-tools)的工具(例如 `CronCreate`),请移除该条目

4194* 如果想改为保留 `CronCreate` 之类的工具,请[让 Claude 等待子代理](/docs/zh-CN/sub-agents#let-claude-wait-for-a-subagent),因为 Claude 等待的子代理会在前台运行并保留该工具。如果定义中设置了 `background: true`,请先删除该字段,因为它会使子代理保持在后台4296* 如果要保留 `CronCreate` 之类的工具,请[让 Claude 等待该子代理](/docs/zh-CN/sub-agents#let-claude-wait-for-a-subagent),因为 Claude 等待的子代理会在前台运行并保留该工具。如果定义中设置了 `background: true`,请先移除该字段,因为它会让子代理保持在后台运行

4195* 删除 `tools` 字段而不是列出工具,以给子代理每个[子代理可用的工具](/docs/zh-CN/sub-agents#available-tools)4297* 删除 `tools` 字段而不是列出工具,即可让子代理获得所有[子代理可用的工具](/docs/zh-CN/sub-agents#available-tools)

4196* 对于仅包含 `Agent` 的 `tools` 列表,提高[深度限制](/docs/zh-CN/sub-agents#let-subagents-spawn-their-own-subagents)或给该 Agent 至少一个其他工具:Claude Code 在该限制处保留 `Agent`,因此列表中没有其他内容会解析为零个工具4298* 对于只包含 `Agent` 的 `tools` 列表,请提高[深度限制](/docs/zh-CN/sub-agents#let-subagents-spawn-their-own-subagents),或为该 Agent 至少提供一个其他工具:达到该限制时 Claude Code 不会提供 `Agent`,因此不含其他任何内容的列表将解析为没有工具

4197 4299 

4198### 文件被 Read 拒绝规则覆盖4300### File is covered by a Read deny rule

4199 4301 

4200Edit 或 Write 工具在与 [`Read` 拒绝规则](/docs/zh-CN/permissions#read-and-edit)匹配的路径上被调用,包括在该路径创建新文件。两个工具都会更改 Claude 必须能够读回的内容,因此 Claude Code 在任何文件访问之前拒绝该调用。NotebookEdit 不受 `Read` 拒绝规则覆盖。在 v2.1.228 之前,该规则仅阻止 Edit 工具,在 v2.1.208 之前,仅 `Edit` 拒绝规则阻止编辑。4302Edit 或 Write 工具被调用于一个匹配 [`Read` 拒绝规则](/docs/zh-CN/permissions#read-and-edit)的路径,包括在该路径下创建新文件。这两个工具都会更改 Claude 必须能够回读的内容,因此 Claude Code 会在访问任何文件之前拒绝该调用。NotebookEdit 不受 `Read` 拒绝规则约束。在 v2.1.228 之前,该规则只阻止 Edit 工具;在 v2.1.208 之前,只有 `Edit` 拒绝规则会阻止编辑。

4201 4303 

4202```text theme={null}4304```text theme={null}

4203File is covered by a Read deny rule in your permission settings and cannot be edited.4305File is covered by a Read deny rule in your permission settings and cannot be edited.

4204```4306```

4205 4307 

4206当 Claude Code 拒绝 Write 工具时,消息以 `and cannot be written` 结尾。4308当 Claude Code 拒绝 Write 工具时,消息的结尾改为 `and cannot be written`。

4207 4309 

4208**应该做什么:**4310**处理方法:**

4209 4311 

4210* 如果 Claude 应该能够更改文件,请在 `/permissions` 或[设置](/docs/zh-CN/settings-reference#permission-settings)中删除或缩小 `Read` 拒绝规则4312* 如果 Claude 应该能够更改该文件,请在 `/permissions` 或[设置](/docs/zh-CN/settings-reference#permission-settings)中移除或缩小该 `Read` 拒绝规则

4211* 如果文件必须保持不变,请保留该规则并为相同路径添加 `Edit` 拒绝规则以同时阻止 NotebookEdit 工具4313* 如果该文件必须保持不变,请保留该规则,并为同一路径添加 `Edit` 拒绝规则,以同时阻止 NotebookEdit 工具

4212 4314 

4213### 路径不能包含空字节4315### Path cannot contain null bytes

4214 4316 

4215文件工具调用的路径或模式参数包含空字节,文件系统和搜索工具无法接受。Read、Write、Edit、NotebookEdit、Glob 和 Grep 检查此项,消息命名工具和参数:4317文件工具调用的路径或模式参数包含空字节,而文件系统和搜索工具无法接受空字节。Read、Write、Edit、NotebookEdit、Glob 和 Grep 会检查这一点,消息会指出工具和参数:

4216 4318 

4217```text theme={null}4319```text theme={null}

4218Read file_path cannot contain null bytes (\0). Remove the null byte and try again.4320Read file_path cannot contain null bytes (\0). Remove the null byte and try again.

4219```4321```

4220 4322 

4221工具调用失败,Claude 看到错误,轮次继续。4323该工具调用失败,Claude 会看到该错误,轮次继续进行。

4222 4324 

4223**应该做什么:**4325**处理方法:**

4326 

4327* 您无需任何操作:该错误会作为工具结果返回给 Claude,且消息本身会告诉 Claude 移除空字节后重试

4328 

4329在 v2.1.281 之前,Read、Write、Edit 或 NotebookEdit 路径中的空字节会以指出 `Path contains null bytes` 的错误结束整个轮次,且工具根本不会运行。

4224 4330 

4225* 您这边不需要做任何事:错误作为工具的结果返回给 Claude,消息本身告诉 Claude 删除空字节并重试4331### File is too large to read as an image

4226 4332 

4227在 v2.1.281 之前,Read、Write、Edit 或 NotebookEdit 路径中的空字节会以命名 `Path contains null bytes` 的错误结束整个轮次,工具从不运行。4333Claude 尝试使用 [Read 工具](/docs/zh-CN/tools-reference#read-tool-behavior)将文件作为图像读取,但该文件大于 128 MB,这是 Read 从图像文件加载的上限。未读取任何内容,Claude 会收到以下错误作为工具结果:

4228 4334 

4229### subagent\_type 是必需的4335```text wrap theme={null}

4336File is too large to read as an image (the limit is 128MB): <path>. If it is an image, resize it or export a smaller copy, then read that.

4337```

4338 

4339当路径是管道或设备而非常规文件时,Read 会在接收到超过 128 MB 后停止,并返回以下错误:

4340 

4341```text wrap theme={null}

4342Cannot read this as an image: <path> is a pipe or a device, not a regular file, and it sent more than 128MB without ending.

4343```

4344 

4345**处理方法:**

4346 

4347* 如果 Claude 按照 `File is too large` 消息继续调整了图像大小或读取了较小的副本,则无需任何操作

4348* 如果 Claude 在该错误处停止,请自行导出一个小于 128 MB 的副本(例如降低分辨率),并让 Claude 读取该文件

4349* 如果路径是管道或设备,请改为让 Claude 读取常规图像文件

4350 

4351### subagent\_type is required

4230 4352 

4231```text theme={null}4353```text theme={null}

4232subagent_type is required: the general-purpose agent is not available in this session. Available agents: ...4354subagent_type is required: the general-purpose agent is not available in this session. Available agents: ...

4233```4355```

4234 4356 

4235Claude 调用了 [Agent 工具](/docs/zh-CN/tools-reference#agent-tool-behavior)而没有 `subagent_type`,此会话没有[通用子代理](/docs/zh-CN/sub-agents#built-in-subagents)可回退。这种情况出现在两种设置中:4357Claude 调用 [Agent 工具](/docs/zh-CN/tools-reference#agent-tool-behavior)时未提供 `subagent_type`,而此会话中没有可供回退的[通用子代理](/docs/zh-CN/sub-agents#built-in-subagents)。这种情况出现在以下两种配置中:

4236 4358 

4237* [`CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS=1`](/docs/zh-CN/env-vars)在非交互模式下设置,这会删除每个内置子代理4359* 在非交互模式下设置了 [`CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS=1`](/docs/zh-CN/env-vars),这会移除所有内置子代理

4238* 会话的主线程 Agent 有一个 [`tools: Agent(...)` 允许列表](/docs/zh-CN/sub-agents#restrict-which-subagents-can-be-spawned),其中不包括 `general-purpose`4360* 会话的主线程 Agent 具有一个不包含 `general-purpose` 的 [`tools: Agent(...)` 允许列表](/docs/zh-CN/sub-agents#restrict-which-subagents-can-be-spawned)

4239 4361 

4240**应该做什么:**4362**处理方法:**

4241 4363 

4242* 通常不需要做任何事:该消息列出了会话确实拥有的子代理,因此 Claude 可以使用其中一个重试4364* 通常无需任何操作:消息会列出会话中实际可用的子代理,因此 Claude 可以使用其中之一重试

4243* 如果 Claude 继续失败,请将 `general-purpose` 添加到 `tools: Agent(...)` 允许列表,或取消设置 `CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS`4365* 如果 Claude 持续失败,请将 `general-purpose` 添加到 `tools: Agent(...)` 允许列表中,或取消设置 `CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS`

4244 4366 

4245在 v2.1.235 之前,相同的调用失败并显示 `Agent type 'general-purpose' not found`。4367在 v2.1.235 之前,相同的调用会以 `Agent type 'general-purpose' not found` 失败。

4246 4368 

4247### 记忆索引超过其读取限制4369### Memory index is over its read limit

4248 4370 

4249Claude 写入了[自动记忆](/docs/zh-CN/memory#auto-memory)索引 `MEMORY.md`,并使其超过了读取限制之一:200 行或 25KB。写入成功,但会话开始时仅加载前 200 行或 25KB(以先到者为准),因此每次读取索引时,超过限制的所有内容都会被丢弃。在 v2.1.210 之前,超限索引在下次加载时被静默截断,没有写入时信号。4371Claude 写入了[自动记忆](/docs/zh-CN/memory#auto-memory)索引 `MEMORY.md`,导致其超出了某项读取限制:200 行或 25KB。写入已成功,但会话开始时只会加载前 200 行或前 25KB(以先达到者为准),因此每次读取索引时,超出限制的所有内容都会被丢弃。在 v2.1.210 之前,超出限制的索引会在下次加载时被静默截断,写入时不会发出任何提示。

4250 4372 

4251```text theme={null}4373```text theme={null}

4252Error: this write left the memory index at MEMORY.md at 214 lines, over its 200-line read limit. The write succeeded, but everything past the limit is silently dropped each time the index is loaded — entries at the end are already invisible to readers. Rewrite it to under 140 lines now: keep one line per entry, move detail into topic files, and merge or drop stale entries.4374Error: this write left the memory index at MEMORY.md at 214 lines, over its 200-line read limit. The write succeeded, but everything past the limit is silently dropped each time the index is loaded — entries at the end are already invisible to readers. Rewrite it to under 140 lines now: keep one line per entry, move detail into topic files, and merge or drop stale entries.

4253```4375```

4254 4376 

4255仅加载的内容计入限制。YAML frontmatter 和块级 HTML 注释在加载索引前被删除,因此它们被排除在测量之外。在 v2.1.211 之前,Claude Code 测量原始文件,frontmatter 或注释即使在加载的内容符合时也可能触发此错误。4377只有会被加载的内容才计入限制。YAML frontmatter 和块级 HTML 注释会在加载索引之前被剥离,因此不计入测量。在 v2.1.211 之前,Claude Code 测量的是原始文件,即使加载的内容在限制之内,frontmatter 或注释也可能触发此错误。

4256 4378 

4257Claude Code 在写入后将错误传递给 Claude,而不是在您的终端中打印为横幅,因此您可能仅在会话记录中注意到它。4379Claude Code 会在写入后将该错误传递给 Claude,而不是在您的终端中以横幅形式显示,因此您可能只会在会话记录中注意到它。

4258 4380 

4259当 Claude 的写入使文件接近限制但未超过时,Claude Code 返回更温和的提醒以压缩索引,而不是此错误。4381当 Claude 的写入使文件接近但未超过限制时,Claude Code 会返回一条较温和的提醒,要求压缩索引,而不是此错误。

4260 4382 

4261**应该做什么:**4383**处理方法:**

4262 4384 

4263* 让 Claude 重写 `MEMORY.md`,或要求它:每个条目保留一行,将详细信息移到主题文件中,并合并或删除过时条目4385* 让 Claude 重写 `MEMORY.md`,或要求它这样做:每个条目保留一行,将详细内容移到主题文件中,并合并或删除过时的条目

4264* 要自己修剪索引,请参阅[审计和编辑您的记忆](/docs/zh-CN/memory#audit-and-edit-your-memory)4386* 如需自行精简索引,请参阅[审核和编辑您的记忆](/docs/zh-CN/memory#audit-and-edit-your-memory)

4265 4387 

4266### pkill 模式匹配 Claude Code 进程4388### pkill pattern matches the Claude Code process

4267 4389 

4268Bash 工具调用中的 `pkill` 命令使用了一个模式(通常带有 `-f`),该模式与 Claude Code 进程本身匹配,因此 Claude Code 拒绝该命令而不是让它结束会话。Claude Code 在运行 `pkill` 之前使用 `pgrep` 测试该模式,并在其自己的进程 ID 在结果中时拒绝。该检查仅在 Linux 上运行;在 macOS 上,`pkill` 不经修改地运行。在 v2.1.214 之前,该命令运行,匹配的模式在轮次中途杀死了 Claude Code 会话。4390Bash 工具调用中的 `pkill` 命令使用了一个匹配 Claude Code 进程自身的模式(通常带有 `-f`),因此 Claude Code 拒绝执行该命令,而不是让它结束会话。Claude Code 会在运行 `pkill` 之前使用 `pgrep` 测试该模式,如果结果中包含其自身的进程 ID,则拒绝执行。此检查仅在 Linux 上运行;在 macOS 上,`pkill` 会原样运行。在 v2.1.214 之前,该命令会运行,匹配的模式会在轮次进行中终止 Claude Code 会话。

4269 4391 

4270```text theme={null}4392```text theme={null}

4271pkill: refusing to run — this pattern matches the Claude CLI process (PID 12345). Narrow the pattern, or target your own children with `pkill -P $$ ...`.4393pkill: refusing to run — this pattern matches the Claude CLI process (PID 12345). Narrow the pattern, or target your own children with `pkill -P $$ ...`.

4272```4394```

4273 4395 

4274拒绝出现在 Bash 工具结果中,而不是作为您终端中的横幅,Claude 通常会自动调整该命令。4396该拒绝会出现在 Bash 工具结果中,而不是在您的终端中以横幅形式显示,Claude 通常会自行调整命令。

4275 4397 

4276**应该做什么:**4398**处理方法:**

4277 4399 

4278* 缩小模式,使其仅匹配预期的进程,例如目标二进制文件的完整路径而不是短子字符串4400* 缩小模式范围,使其仅匹配目标进程,例如使用目标二进制文件的完整路径,而不是较短的子字符串

4279* 要停止由当前 shell 启动的进程,请使用 `pkill -P $$` 和该模式,这将匹配限制为 shell 自己的子进程4401* 如需停止当前 shell 启动的进程,请将 `pkill -P $$` 与模式一起使用,这会将匹配范围限制在该 shell 自身的子进程内

4280 4402 

4281### 无法写入队友的收件箱4403### Failed to write to a teammate's inbox

4282 4404 

4283Claude Code 无法将消息写入 `~/.claude/teams/{team-name}/inboxes/` 下的队友邮箱文件,因此收件人没有收到任何内容。当 Claude Code 无法创建或更新文件时写入失败,例如因为磁盘已满、目录不可写或另一个 Agent 长时间持有收件箱锁。在 v2.1.224 之前,Claude Code 即使在写入失败时也报告消息已发送。4405Claude Code 无法将消息写入 `~/.claude/teams/{team-name}/inboxes/` 下队友的邮箱文件,因此接收方什么也没收到。当 Claude Code 无法创建或更新该文件时,写入就会失败,例如磁盘已满、目录不可写,或其他 Agent 持有收件箱锁的时间过长。在 v2.1.224 之前,即使写入失败,Claude Code 也会报告消息已发送。

4284 4406 

4285该错误出现在发送方 Agent 的工具结果中,而不是作为您终端中的横幅,其文本告诉 Claude 重试:4407该错误会出现在发送方 Agent 的工具结果中,而不是在您的终端中以横幅形式显示,其文本会告诉 Claude 重试:

4286 4408 

4287```text theme={null}4409```text theme={null}

4288Failed to write to researcher's inbox — nothing was sent. Try again, or message the lead.4410Failed to write to researcher's inbox — nothing was sent. Try again, or message the lead.

4289```4411```

4290 4412 

4291结构化 [agent team](/docs/zh-CN/agent-teams) 协议消息以相同方式失败,错误命名未送达的消息:当 Claude Code 无法写入计划批准、计划拒绝、关闭请求或关闭拒绝时,错误读取 `Failed to write the <message> to <name>'s inbox — nothing was sent`。该列表中的 `plan approval` 是领导批准队友计划的决定;队友的计划提交是单独的 `plan approval request` 消息。该消息和另外两个协议消息携带自己的消息文本和后果:4413结构化的 [agent team](/docs/zh-CN/agent-teams) 协议消息也会以同样的方式失败,错误会指出未送达的消息:当 Claude Code 无法写入计划批准、计划拒绝、关闭请求或关闭拒绝时,错误内容为 `Failed to write the <message> to <name>'s inbox — nothing was sent`。该列表中的 `plan approval` 是负责人批准队友计划的决定;队友提交计划则是单独的 `plan approval request` 消息。该消息以及另外两条协议消息有各自的消息文本和后果:

4292 4414 

4293* `Failed to write the plan approval request to the lead's inbox — plan not submitted; try again`:队友的计划从未到达领导,队友保持计划模式直到重新提交成功4415* `Failed to write the plan approval request to the lead's inbox — plan not submitted; try again`:队友的计划从未送达负责人,队友会一直处于计划模式,直到重新提交成功

4294* `The permission request could not be delivered to the team lead (mailbox write failed)`:队友的权限请求从未到达领导,因此没有人批准工具调用4416* `The permission request could not be delivered to the team lead (mailbox write failed)`:队友的权限请求从未送达负责人,因此没有人批准该工具调用

4295* `The confirmation could not be written to team-lead's inbox.`:关闭批准本身生效,队友退出;仅缺少对领导的确认4417* `The confirmation could not be written to team-lead's inbox.`:关闭批准本身已生效,队友会退出;只是发给负责人的确认缺失

4296 4418 

4297当您自己给队友发消息时,在领导会话中输入 `@name` 后跟消息,相同的失败显示为通知 `Couldn't write to @name's inbox — message not sent. Try again.`,Claude Code 将您的文本保留在输入框中,以便您可以再次发送。4419当您自己在负责人会话中输入 `@name` 并在其后输入消息来给队友发消息时,同样的失败会以通知形式出现:`Couldn't write to @name's inbox — message not sent. Try again.`,并且 Claude Code 会将您的文本保留在输入框中,以便您再次发送。

4298 4420 

4299**应该做什么:**4421**处理方法:**

4300 4422 

4301* 要求发送者重新发送消息;收件箱锁的争用是暂时的,重试时会清除4423* 请发送方重新发送消息;收件箱锁的争用是暂时的,重试即可解决

4302* 检查可用磁盘空间,并检查 `~/.claude/teams` 及其下的文件是否可由您的用户写入4424* 检查可用磁盘空间,并检查 `~/.claude/teams` 及其下的文件是否可由您的用户写入

4303 4425 

4304### 队友的 Agent 定义未被恢复4426### Teammate's agent definition was not restored

4305 4427 

4306Claude 给已停止的 [agent team](/docs/zh-CN/agent-teams) 队友发消息,Claude Code 将其恢复,但没有重新应用它生成时所依据的[子代理定义](/docs/zh-CN/agent-teams#use-subagent-definitions-for-teammates)。该通知跟随发送方 Agent 的工具结果中的恢复报告,并说明原因。当定义文件来自没有保存信任的文件夹时,内容如下:4428Claude 给一个已停止的 [agent team](/docs/zh-CN/agent-teams) 队友发送了消息,Claude Code 将其恢复,但没有重新应用该队友生成时所依据的[子代理定义](/docs/zh-CN/agent-teams#use-subagent-definitions-for-teammates)。该通知紧跟在发送方 Agent 工具结果中的恢复报告之后,并说明原因。当定义文件来自一个没有已保存信任的文件夹时,内容如下:

4307 4429 

4308```text wrap theme={null}4430```text wrap theme={null}

4309Its agent definition was not restored: the folder its definition file came from is not trusted (source: projectSettings), so the teammate is running with the team-essential tools and no custom instructions. To restore it, the user needs to run Claude Code in that folder once and accept the trust dialog (the --debug log names the folder); do not change trust settings on the user's behalf.4431Its agent definition was not restored: the folder its definition file came from is not trusted (source: projectSettings), so the teammate is running with the team-essential tools and no custom instructions. To restore it, the user needs to run Claude Code in that folder once and accept the trust dialog (the --debug log names the folder); do not change trust settings on the user's behalf.

4310```4432```

4311 4433 

4312该检查适用于项目的 `.claude/agents/` 目录或 `--add-dir` 目录中的定义,接受父文件夹的信任对话框并不能满足它。4434此检查适用于项目或 `--add-dir` 目录的 `.claude/agents/` 目录中的定义,对父文件夹接受信任对话框并不能满足此检查。

4313 4435 

4314**应该做什么:**4436**处理方法:**

4437 

4438* 在[调试日志](/docs/zh-CN/debug-your-config)指出的文件夹中运行 `claude` 并接受信任对话框。下次 Claude Code 恢复该队友时会重新应用该定义;您无需重新启动负责人会话

4439* 或者在 `~/.claude.json` 中将 `hasTrustDialogAccepted` 条目设置为 `true`,使用调试日志打印的确切 `projects["<path>"]` 键

4440 

4441### Only a teammate can approve a shutdown request

4442 

4443Claude Code 拒绝了一次 [agent team](/docs/zh-CN/agent-teams) 关闭批准,因为发送它的会话并未作为队友运行。没有发送任何内容,也没有任何会话被关闭。该拒绝出现在发送会话的工具结果中:

4444 

4445```text wrap theme={null}

4446Only a teammate can approve a shutdown request, and this session is not running as one. Nothing was sent. To shut down a teammate, send that teammate a shutdown_request message. The teammate is the one that approves it.

4447```

4448 

4449**处理方法:**

4315 4450 

4316* 在[调试日志](/docs/zh-CN/debug-your-config)命名的文件夹中运行 `claude` 并接受信任对话框。下次 Claude Code 恢复队友时重新应用定义;您不需要重启领导会话4451* 如果该拒绝出现在您的负责人会话中,请先检查该队友此后是否已经关闭。该拒绝会连同改为发送 `shutdown_request` 的指示一起返回给 Claude,轮次继续进行。在交互式负责人会话中,当队友批准关闭请求时,会出现 `<name> has shut down.`。

4317* 或在 `~/.claude.json` 中将 `hasTrustDialogAccepted` 条目设置为 `true`,使用调试日志打印的确切 `projects["<path>"]` 键4452* 如果该队友仍在运行,请在负责人的输入框中要求它关闭该队友,例如 `Ask the researcher teammate to shut down`。请参阅[关闭队友](/docs/zh-CN/agent-teams#shut-down-teammates)。

4453* 如果您自己使用 `claude --resume` 恢复的前队友收到了此拒绝,则没有发送任何内容。如需结束该会话,请在其输入框中运行 `/exit`。

4318 4454 

4319### 跨会话传递消息过大4455### Message too large for cross-session delivery

4320 4456 

4321Claude 发往此机器上您的另一个会话的[跨会话消息](/docs/zh-CN/cross-session-messaging)太长而无法发送。Claude Code 拒绝了它,接收会话什么都没有收到。拒绝出现在发送会话的工具结果中,而不是作为您终端中的横幅。它命名两个大小以及如何使消息符合:4457Claude 发给您在这台机器上另一个会话的[跨会话消息](/docs/zh-CN/cross-session-messaging)太长,无法发送。Claude Code 拒绝了它,接收会话什么也没收到。该拒绝出现在发送会话的工具结果中,而不是在您的终端中以横幅形式显示。它会给出两个大小,以及如何让消息符合限制:

4322 4458 

4323```text wrap theme={null}4459```text wrap theme={null}

4324Failed to send to api-worker: Message too large for cross-session delivery: the serialized message is 1,203,844 characters and the limit is 1,048,576. Shorten the message text — put bulk content in a file the recipient can read rather than in the message — or split it into smaller messages.4460Failed to send to api-worker: Message too large for cross-session delivery: the serialized message is 1,203,844 characters and the limit is 1,048,576. Shorten the message text — put bulk content in a file the recipient can read rather than in the message — or split it into smaller messages.

4325```4461```

4326 4462 

4327重新发送相同的文本以相同方式失败。4463重新发送相同的文本也会以同样的方式失败。

4328 4464 

4329**应该做什么:**4465**处理方法:**

4330 4466 

4331* 要求 Claude 总结消息,或将大量内容放入文件并发送该文件的路径4467* 请 Claude 总结该消息,或将大量内容放入文件中并发送该文件的路径

4332* 要求 Claude 将内容分成几条较短的消息4468* 请 Claude 将内容拆分为多条较短的消息

4333 4469 

4334在 v2.1.235 之前,Claude Code 报告超大消息已发送。接收会话未读地丢弃了它。4470在 v2.1.235 之前,Claude Code 会将过大的消息报告为已发送。接收会话会将其丢弃而不读取。

4335 4471 

4336### 此会话刚刚收到太多消息4472### Too many messages to this session just now

4337 4473 

4338Claude 向此机器上您的一个会话快速连续发送了大量[跨会话消息](/docs/zh-CN/cross-session-messaging),达到了该会话收件箱所能接受的上限。Claude Code 拒绝了下一次发送,接收会话什么都没有收到。拒绝出现在发送会话的工具结果中,而不是作为您终端中的横幅:4474Claude 向您在这台机器上的某个会话快速连续发送了大量[跨会话消息](/docs/zh-CN/cross-session-messaging),达到了该会话收件箱的接收上限。Claude Code 拒绝了下一次发送,接收会话没有收到该消息。该拒绝出现在发送会话的工具结果中,而不是在您的终端中以横幅形式显示:

4339 4475 

4340```text wrap theme={null}4476```text wrap theme={null}

4341Failed to send to api-worker: Too many messages to this session just now: 30 were sent recently and more would be dropped by its rate limit, so this one was not sent. Batch what remains into one message, or wait a little before sending more.4477Failed to send to api-worker: Too many messages to this session just now: 30 were sent recently and more would be dropped by its rate limit, so this one was not sent. Batch what remains into one message, or wait a little before sending more.

4342```4478```

4343 4479 

4344**应该做什么:**4480**处理方法:**

4345 4481 

4346* 通常不需要做任何事:Claude 将剩余内容批处理为一条消息,或在发送更多内容前等待4482* 通常无需任何操作:Claude 会将剩余内容合并为一条消息,或等待一段时间后再发送

4347* 如果是您自己的提示词引发了这次突发,请要求 Claude 将剩余内容合并为单条消息4483* 如果是您自己的提示词引发了这批发送,请让 Claude 将剩余内容合并为一条消息

4348 4484 

4349在 v2.1.236 之前,Claude Code 报告这些消息已发送。接收会话未读地丢弃了它们。4485在 v2.1.236 之前,Claude Code 会将这些发送报告为已发送。接收会话会将其丢弃而不读取。

4350 4486 

4351### 跨会话消息在收件人会话的收件箱处被丢弃4487### Cross-session message was dropped at the recipient session's inbox

4352 4488 

4353Claude 发送了[跨会话消息](/docs/zh-CN/cross-session-messaging)到此机器上您的另一个会话,该会话的收件箱在该会话中的 Claude 读取之前丢弃了它。该行命名收件人的地址,当收件人给出原因时,在破折号后添加原因:4489Claude 向您在这台机器上的另一个会话发送了一条[跨会话消息](/docs/zh-CN/cross-session-messaging),而该会话的收件箱在该会话中的 Claude 读取之前将其丢弃了。该行会指出接收方,如果接收方给出了原因,还会在破折号后附上原因:

4354 4490 

4355```text wrap theme={null}4491```text wrap theme={null}

4356Cross-session message was dropped at the recipient session's inbox (recipient: uds:/tmp/cc-socks/13605.sock) and not delivered — its queue of undelivered peer messages was full. Claude was told not to resend right away.4492Cross-session message was dropped at the recipient session's inbox (recipient: uds:/tmp/cc-socks/13605.sock) and not delivered — its queue of undelivered peer messages was full. Claude was told not to resend right away.

4357```4493```

4358 4494 

4359一行可以覆盖多条丢弃的消息。然后它以复数形式开始,例如 `Cross-session messages (12) were dropped`。要找到地址属于哪个会话,请将其与 `/status` 在每个会话中显示的 [`Peer address` 行](/docs/zh-CN/cross-session-messaging#the-sessions-inbox-socket)进行比较。4495一行可以涵盖多条被丢弃的消息,此时会以复数形式开头,例如 `Cross-session messages (12) were dropped`。如需查找某个地址属于哪个会话,请将其与每个会话中 `/status` 显示的 [`Peer address` 行](/docs/zh-CN/cross-session-messaging#the-sessions-inbox-socket)进行比较。

4360 4496 

4361在破折号后,该行给出以下一个或多个原因:4497破折号之后,该行会给出以下一个或多个原因:

4362 4498 

4363* `its queue of undelivered peer messages was full`:收件人持有的来自其他会话的未送达消息已达到其队列允许的上限4499* `its queue of undelivered peer messages was full`:接收方已持有其队列所允许的最大数量的来自其他会话的未送达消息

4364* `you sent faster than that session accepts`:发送会话的消息到达速度比收件人从一个发送者接受的速度快4500* `you sent faster than that session accepts`:发送会话的消息到达速度超过了接收方对单个发送方的接收速度

4365* `it repeated your previous message`:该消息与发送会话不久前发送给该收件人的消息相同4501* `it repeated your previous message`:该消息与发送会话不久前发给此接收方的某条消息完全相同

4366* `a relay loop between sessions was cut`:该消息延续了会话之间相互发送消息的链,且该链经过收件人的次数过多或增长过长4502* `a relay loop between sessions was cut`:该消息延续了一条会话之间相互发送消息的链条,而该链条经过接收方的次数过多或变得过长

4367 4503 

4368**应该做什么:**4504**处理方法:**

4369 4505 

4370* 假设收件人从未看到丢弃的消息。Claude Code 也会这样告诉 Claude,并告诉它在稍后的一条消息中包含仍然重要的任何内容,而不是立即重新发送4506* 假定接收方从未看到被丢弃的消息。Claude Code 也会告诉 Claude 这一点,并告诉它将仍然重要的内容包含在之后的一条消息中,而不是立即重新发送

4371* 如果您的会话相互发送频繁更新,请要求 Claude 发送更少、更大的消息,例如在会话完成其工作时发送一份报告4507* 如果您的会话之间频繁互发更新,请让 Claude 发送更少、更大的消息,例如在会话完成工作时发送一份报告

4372* 对于 `a relay loop between sessions was cut`,请在其中一个会话中自己输入下一条指令。Claude 为响应您自己的提示词而发送的消息会开始一条新链4508* 对于 `a relay loop between sessions was cut`,请自己在其中一个会话中输入下一条指令。Claude 响应您自己的提示词而发送的消息会开始一条新的链条

4373 4509 

4374在 v2.1.238 之前,当收件人的收件箱丢弃消息时,发送会话没有收到报告。4510在 v2.1.238 之前,当接收方的收件箱丢弃消息时,发送会话不会收到任何报告。

4375 4511 

4376### 拒绝发送跨会话消息4512### Refusing to send a cross-session message

4377 4513 

4378在 Claude Code 将[跨会话消息](/docs/zh-CN/cross-session-messaging)写入此机器上您的另一个会话之前,它检查目标会话的收件箱套接字是否为消息寻址到的端点。当检查失败时,Claude Code 在发送会话中拒绝发送,目标会话什么都没有收到。对于 Claude 发送的消息,拒绝出现在发送会话的工具结果中:4514在 Claude Code 将[跨会话消息](/docs/zh-CN/cross-session-messaging)写入您在这台机器上的另一个会话之前,它会检查目标会话的收件箱套接字是否就是该消息所寻址的端点。如果检查失败,Claude Code 会在发送会话中拒绝发送,目标会话什么也不会收到。对于 Claude 发送的消息,该拒绝会出现在发送会话的工具结果中:

4379 4515 

4380```text theme={null}4516```text theme={null}

4381Failed to send to api-worker: Refusing to send: reply target is a symlink4517Failed to send to api-worker: Refusing to send: reply target is a symlink

4382```4518```

4383 4519 

4384`Refusing to send:` 后的文本命名失败的检查:4520`Refusing to send:` 后面的文本指出了失败的检查:

4385 4521 

4386* `reply target is a symlink`:符号链接位于目标会话的套接字路径。Claude Code 不通过它传递,因为那里的链接可能会将消息重定向到目标会话未创建的端点。4522* `reply target is a symlink`:目标会话的套接字路径上有一个符号链接。Claude Code 不会通过它投递,因为该位置的链接可能会将消息重定向到目标会话未创建的端点。

4387* `cannot vet reply target`:Claude Code 根本无法检查目标路径,例如因为读取失败并出现权限错误。4523* `cannot vet reply target`:Claude Code 根本无法检查目标路径,例如因为读取时出现权限错误。

4388 4524 

4389**应该做什么:**4525**处理方法:**

4390 4526 

4391* 通常不需要做任何事:这些检查防止消息到达其寻址会话之外的端点,且没有发送任何内容4527* 通常无需任何操作:这些检查可防止消息到达其寻址会话以外的端点,且没有发送任何内容

4392* 如果 `reply target is a symlink` 对某个会话重复出现,请检查是什么在该会话的套接字路径处创建了链接,该路径显示在其 `/status` 的 `Peer address` 下4528* 如果某个会话反复出现 `reply target is a symlink`,请检查是什么在该会话的套接字路径上创建了链接,该路径显示在该会话 `/status` 的 `Peer address` 下

4393 4529 

4394### 拒绝读取、写入或搜索路径4530### Refusing to read, write, or search a path

4395 4531 

4396Claude Code 检查文件路径的[权限规则](/docs/zh-CN/permissions#read-and-edit),然后在工具打开文件或启动搜索时再次确认该解析。当它无法确认路径仍然导向检查批准的位置时,Claude Code 拒绝操作而不是跟随它。拒绝出现在工具结果中:4532Claude Code 会检查文件路径的[权限规则](/docs/zh-CN/permissions#read-and-edit),然后在工具打开文件或开始搜索时再次确认该路径的解析结果。如果无法确认该路径仍然指向检查时批准的位置,Claude Code 会拒绝该操作,而不是继续执行。该拒绝出现在工具结果中:

4397 4533 

4398```text wrap theme={null}4534```text wrap theme={null}

4399Refusing to read /path/to/file: its symlink resolution changed after permission was checked (a link on the way now leads somewhere the check did not see). If a link in the working directory is being rewritten concurrently, stop that and retry.4535Refusing to read /path/to/file: its symlink resolution changed after permission was checked (a link on the way now leads somewhere the check did not see). If a link in the working directory is being rewritten concurrently, stop that and retry.

4400```4536```

4401 4537 

4402每个拒绝命名其原因:4538每次拒绝都会说明其原因:

4403 4539 

4404* `its symlink resolution changed after permission was checked`:路径上的符号链接或 Grep 或 Glob 搜索根在权限检查和操作之间被替换。在读取拒绝中,括号中的短语命名哪个比较失败。4540* `its symlink resolution changed after permission was checked`:路径上的某个符号链接,或 Grep 或 Glob 搜索根目录处的符号链接,在权限检查和操作之间被替换。在读取拒绝中,括号内的短语指出了哪项比较失败。

4405* `its parent-directory symlink resolution changed after permission was checked`:写入路径经过的目录不再解析到批准的位置4541* `its parent-directory symlink resolution changed after permission was checked`:写入路径所经过的某个目录不再解析到已批准的位置

4406* `where it leads on disk could not be determined (a link on the way could not be examined, or the links do not resolve)`:Claude Code 无法跟随路径到磁盘上的最终位置,例如因为其上的符号链接形成循环4542* `where it leads on disk could not be determined (a link on the way could not be examined, or the links do not resolve)`:Claude Code 无法沿该路径找到磁盘上的最终位置,例如因为路径上的符号链接形成了循环

4407* `it is a symbolic link. Write to the link's target path instead`:符号链接位于请求的写入位置本身,例如 `CLAUDE.md` 是 `AGENTS.md` 的符号链接;消息指导 Claude 转向链接的目标4543* `it is a symbolic link. Write to the link's target path instead`:请求写入的位置本身就是一个符号链接,例如 `CLAUDE.md` 是指向 `AGENTS.md` 的符号链接;该消息会引导 Claude 写入链接的目标

4408* `Refusing to write through symlink: <path>. Resolve the symlink and pass the real target path explicitly.`:当另一个写入器打开文件时捕获的相同条件,例如写入符号链接的 `.mcp.json`4544* `Refusing to write through symlink: <path>. Resolve the symlink and pass the real target path explicitly.`:在其他写入程序打开文件时捕获到的相同情况,例如写入作为符号链接的 `.mcp.json`

4409* `Refusing to write into symlinked directory: <path>`:持有文件的目录本身是符号链接,例如项目的 `.claude/` 目录链接到另一个位置4545* `Refusing to write into symlinked directory: <path>`:存放该文件的目录本身是一个符号链接,例如项目的 `.claude/` 目录链接到了其他位置

4410* `a path one of its Read deny rules is written through changed while the search was being prepared. Retry.`:搜索的 `Read` 拒绝规则命名了经过符号链接的路径,该链接在 Claude Code 准备搜索时发生更改4546* `a path one of its Read deny rules is written through changed while the search was being prepared. Retry.`:该搜索的某条 `Read` 拒绝规则所指定的路径经过一个符号链接,而该链接在 Claude Code 准备搜索时发生了变化

4411* `it could not be opened (EACCES) — it is unreadable, or is being replaced concurrently.`:搜索根存在但无法打开;括号中的代码是操作系统错误4547* `it could not be opened (EACCES) — it is unreadable, or is being replaced concurrently.`:搜索根目录存在但无法打开;括号内的代码是操作系统错误

4412* `its permission check expired before it ran (too many concurrent file operations). Retry.`:在大量同时进行的文件操作下,Claude Code 在工具使用批准记录之前将其逐出;重试会运行新的权限检查4548* `its permission check expired before it ran (too many concurrent file operations). Retry.`:在大量同时进行的文件操作下,Claude Code 在工具使用批准记录之前就将其逐出;重试会执行一次新的权限检查

4413* `ripgrep was found only by name on PATH, and a search outside the working directory cannot apply your Read deny rules in that configuration`:Claude Code 无法将 `rg` 二进制文件解析为绝对路径,因此它拒绝工作目录外的搜索,而不是运行您的拒绝规则无法覆盖的搜索4549* `ripgrep was found only by name on PATH, and a search outside the working directory cannot apply your Read deny rules in that configuration`:Claude Code 无法将 `rg` 二进制文件解析为绝对路径,因此拒绝在工作目录之外进行搜索,而不是运行一个您的拒绝规则无法覆盖的搜索

4414 4550 

4415**应该做什么:**4551**处理方法:**

4416 4552 

4417* 通常不需要做任何事:拒绝作为工具结果到达 Claude,被拒绝的操作不会运行4553* 通常无需任何操作:该拒绝会作为工具结果传递给 Claude,被拒绝的操作不会运行

4418* 如果符号链接拒绝在某个路径上重复出现,请找出是什么在不断重写那里的链接,例如构建工具或文件监视程序,或要求 Claude 使用文件的解析路径而不是链接路径4554* 如果某个路径上反复出现符号链接拒绝,请找出是什么在不断重写该处的链接,例如构建工具或文件监视器,或者让 Claude 使用文件的解析路径,而不是链接路径

4419* 如果 Claude Code 在 Windows 上的 AppContainer 或受限令牌沙箱内运行时,每个文件都出现此拒绝,请升级到 v2.1.265 或更高版本4555* 如果 Claude Code 在 Windows 上于 AppContainer 或受限令牌沙箱中运行时,每个文件都出现此拒绝,请升级到 v2.1.265 或更高版本

4420* 如果在 macOS 上,对没有任何东西在重写的文件(例如拖入提示词的屏幕截图)出现读取拒绝,请升级到 v2.1.273 或更高版本4556* 如果在 macOS 上,对于没有任何程序在重写的文件(例如拖入输入框的截图)出现读取拒绝,请升级到 v2.1.273 或更高版本

4421* 对于 ripgrep 拒绝,使用您的包管理器安装 ripgrep,以便 `rg` 在 `PATH` 上解析为绝对路径,或将搜索保持在工作目录下4557* 对于 ripgrep 拒绝,请使用包管理器安装 ripgrep,使 `rg` 在 `PATH` 上解析为绝对路径,或者将搜索保持在工作目录之内

4422 4558 

4423在 v2.1.251 之前,Claude Code 仅对文件写入重新检查路径的解析,因此在权限检查后替换的链接可能会将读取或搜索重定向到不同的位置而没有消息。其中,仅父目录、通过符号链接和符号链接目录写入拒绝会出现在早期版本上。4559在 v2.1.251 之前,Claude Code 仅对文件写入重新检查路径的解析结果,因此在权限检查之后被替换的链接可能会在没有任何消息的情况下将读取或搜索重定向到其他位置。在这些拒绝中,只有父目录、通过符号链接写入和符号链接目录这几种写入拒绝会出现在早期版本中。

4424 4560 

4425在 v2.1.280 之前,`where it leads on disk could not be determined` 拒绝没有出现。4561在 v2.1.280 之前,不会出现 `where it leads on disk could not be determined` 拒绝。

4426 4562 

4427### 任务输出交换被拒绝4563### Task output swap refused

4428 4564 

4429Claude Code 将每个 Bash 命令的输出保存到其临时目录下的文件。每次打开其中一个文件时,它检查路径仍然导向它创建的文件,没有符号链接、额外硬链接或移动目录重定向它。此消息意味着该检查失败,因此 Claude Code 拒绝操作而不是通过该路径写入或读取输出。消息出现在 Bash 工具结果中:4565Claude Code 会将每个 Bash 命令的输出保存到其临时目录下的一个文件中。每次打开这些文件之一时,它都会检查该路径是否仍然指向它创建的文件,没有符号链接、额外的硬链接或被移动的目录将其重定向。此消息表示该检查失败,因此 Claude Code 拒绝了该操作,而不是通过该路径写入或读取输出。该消息出现在 Bash 工具结果中:

4430 4566 

4431```text wrap theme={null}4567```text wrap theme={null}

4432task output swap refused (tasks dir moved or linked): /private/tmp/claude-501/-Users-you-my-project/1f0e62dc-4b0a-4f5e-9c2d-8a7b6c5d4e3f/tasks/b7k2f9m3q.output. To recover: restart Claude Code with CLAUDE_CODE_TMPDIR set to a fresh directory; or, if /private/tmp/claude-501/-Users-you-my-project is a stray directory or a symbolic link that should not be there, remove that entry itself (not what it points to) and restart.4568task output swap refused (tasks dir moved or linked): /private/tmp/claude-501/-Users-you-my-project/1f0e62dc-4b0a-4f5e-9c2d-8a7b6c5d4e3f/tasks/b7k2f9m3q.output. To recover: restart Claude Code with CLAUDE_CODE_TMPDIR set to a fresh directory; or, if /private/tmp/claude-501/-Users-you-my-project is a stray directory or a symbolic link that should not be there, remove that entry itself (not what it points to) and restart.

4433```4569```

4434 4570 

4435括号中的文本命名失败的检查。诸如 `output symlink was re-pointed`、`output file identity changed` 和 `not a regular file` 之类的原因都报告相同的条件:输出路径上或沿途的某些东西不再是 Claude Code 创建的文件。仅某些原因携带 `To recover:` 句子。4571括号内的文本指出了失败的检查。诸如 `output symlink was re-pointed`、`output file identity changed` 和 `not a regular file` 之类的原因都报告同一种情况:输出路径上或沿途的某个东西不再是 Claude Code 创建的文件。只有部分原因带有 `To recover:` 句子。

4436 4572 

4437如果在命令仍在运行时检查失败,Claude Code 停止该命令,其结果报告:4573如果检查在命令仍在运行时失败,Claude Code 会停止该命令,其结果会报告:

4438 4574 

4439```text theme={null}4575```text theme={null}

4440Command killed: its output file was replaced or could no longer be verified4576Command killed: its output file was replaced or could no longer be verified

4441```4577```

4442 4578 

4443**应该做什么:**4579**处理方法:**

4580 

4581* 升级到 v2.1.260 或更高版本。早期版本有时会在不存在链接或被移动目录的情况下显示此消息

4582* 将 [`CLAUDE_CODE_TMPDIR`](/docs/zh-CN/env-vars) 设置为一个新目录后重新启动 Claude Code

4583* 或者检查 Claude Code 临时目录下您项目的目录,即示例消息中的 `/private/tmp/claude-501/-Users-you-my-project`。如果该路径是一个符号链接,或是一个不应该存在的目录,请删除该链接或目录本身,而不是链接的目标,然后重新启动 Claude Code

4584* 如果该拒绝反复出现,说明有某个进程在会话运行期间替换、链接或删除 Claude Code 临时目录下的条目。请将 [`CLAUDE_CODE_TMPDIR`](/docs/zh-CN/env-vars) 设置为一个没有其他程序管理的目录,然后重新启动

4444 4585 

4445* 升级到 v2.1.260 或更高版本。早期版本有时在没有链接或移动目录存在时显示此消息4586### Disk quota or temp filesystem is full

4446* 使用设置为新目录的 [`CLAUDE_CODE_TMPDIR`](/docs/zh-CN/env-vars)重启 Claude Code

4447* 或检查您的项目在 Claude Code 临时目录下的目录,示例消息中的 `/private/tmp/claude-501/-Users-you-my-project`。如果该路径是符号链接或不应该存在的目录,删除链接或目录本身而不是链接的目标,然后重启 Claude Code

4448* 如果拒绝重复出现,说明有进程在会话运行时替换、链接或删除 Claude Code 临时目录下的条目。将 [`CLAUDE_CODE_TMPDIR`](/docs/zh-CN/env-vars) 设置为没有其他东西管理的目录并重启

4449 4587 

4450### 磁盘配额或临时文件系统已满4588Claude Code 会将每个 Bash 和 PowerShell 命令的输出保存到其临时目录下的一个文件中。命令结果中出现以下消息,表示存放该目录的文件系统或您在其上的磁盘配额已满。

4451 4589 

4452Claude Code 将每个 Bash 和 PowerShell 命令的输出保存到其临时目录下的文件。当命令以非零代码退出且完全没有输出时,Claude Code 检查持有该文件的文件系统是否空间不足或 inode 不足,或您在其上的磁盘配额是否已用完。如果是这样,诊断出现在命令的结果中,代替空输出:4590如果由于文件系统或您在其上的配额已满,Claude Code 无法创建该文件,您的命令将不会启动,结果内容为:

4591 

4592```text wrap theme={null}

4593The command was not started: this computer's disk is full (ENOSPC), so the file that captures command output could not be created. Nothing ran. If this is the user's own computer, tell them before deleting anything to make room.

4594```

4595 

4596当命令以非零代码退出且完全没有输出时,Claude Code 会检查存放输出文件的文件系统。如果该文件系统已耗尽空间或 inode,或者您在该文件系统上的磁盘配额已用完,命令结果中会显示一条诊断信息,替代空输出:

4453 4597 

4454```text wrap theme={null}4598```text wrap theme={null}

4455Your disk quota is full on the filesystem with Claude Code's temp directory /private/tmp/claude-501/-Users-you-my-project/1f0e62dc-4b0a-4f5e-9c2d-8a7b6c5d4e3f/tasks (EDQUOT), so any output this command printed was lost, and it may have failed because it could not write. Delete files you no longer need there, or restart Claude Code with CLAUDE_CODE_TMPDIR set to a directory on another filesystem.4599Your disk quota is full on the filesystem with Claude Code's temp directory /private/tmp/claude-501/-Users-you-my-project/1f0e62dc-4b0a-4f5e-9c2d-8a7b6c5d4e3f/tasks (EDQUOT), so any output this command printed was lost, and it may have failed because it could not write. Delete files you no longer need there, or restart Claude Code with CLAUDE_CODE_TMPDIR set to a directory on another filesystem.

4456```4600```

4457 4601 

4458该消息命名什么用完了:4602该消息会指出耗尽的资源:

4459 4603 

4460* `Your disk quota is full ... (EDQUOT)`:您在该文件系统上的配额已用完。配额可以在文件系统仍显示可用空间时已满4604* `Your disk quota is full ... (EDQUOT)`:您在该文件系统上的配额已用完。即使文件系统仍显示有可用空间,配额也可能已满

4461* `The filesystem with Claude Code's temp directory ..., or your disk quota on it, is full (ENOSPC)`:文件系统或您在其上的配额没有剩余空间4605* `The filesystem with Claude Code's temp directory ..., or your disk quota on it, is full (ENOSPC)`:该文件系统或您在其上的配额已没有剩余空间

4462* `Command output was lost: the temp filesystem at ... is full` 或 `... is out of inodes`:文件系统几乎没有剩余空间,或 inode 即将用完4606* `Command output was lost: the temp filesystem at ... is full` 或 `... is out of inodes`:该文件系统几乎没有剩余可用空间,或 inode 即将耗尽

4607* `The command was not started: this computer's disk is full (ENOSPC)` 或 `... (EDQUOT)`:该文件系统已没有空间容纳输出文件,或者在 `EDQUOT` 的情况下,您在其上的配额已用完

4463 4608 

4464**应该做什么:**4609**处理方法:**

4610 

4611* 删除存放 Claude Code 临时目录的文件系统上不再需要的文件。如果您的消息没有指出该目录,请在 [`CLAUDE_CODE_TMPDIR`](/docs/zh-CN/env-vars) 参考中查找其默认位置。对于 `EDQUOT`,请删除计入您自己配额的文件。对于 `out of inodes`,请删除大量文件,而不是几个大文件,因为无论大小,每个文件都占用一个 inode

4612* 或者将 [`CLAUDE_CODE_TMPDIR`](/docs/zh-CN/env-vars) 设置为有空间的文件系统上的目录,然后重新启动 Claude Code

4613* 然后让 Claude 再次运行该命令

4465 4614 

4466* 删除您在持有 Claude Code 临时目录的文件系统上不再需要的文件。对于 `EDQUOT`,删除计入您自己配额的文件。对于 `out of inodes`,删除许多文件而不是几个大文件,因为每个文件占用一个 inode,无论其大小如何4615在 v2.1.305 之前,因磁盘已满而无法由 Claude Code 启动的命令只会返回操作系统的错误文本。该文本例如为 `ENOSPC: no space left on device, open <path>.output`。

4467* 或使用设置为具有空间的文件系统上的目录的 [`CLAUDE_CODE_TMPDIR`](/docs/zh-CN/env-vars)重启 Claude Code

4468* 然后让 Claude 再次运行该命令。它打印的输出已丢失,未被截断

4469 4616 

4470### File is not valid UTF-84617### File is not valid UTF-8

4471 4618 

4472Claude 对一个字节无法解码为 UTF-8 的文件使用了 Edit 或 NotebookEdit 工具,Claude Code 拒绝了该更改。没有写入任何内容,因此文件保持原样。这些工具会将整个文件以 UTF-8 保存回去,这会将它们无法解码的每个字节都变成替换字符 `U+FFFD`。消息出现在工具结果中:4619Claude 对一个字节无法按 UTF-8 解码的文件使用了 Edit 或 NotebookEdit 工具,Claude Code 拒绝了该更改。没有写入任何内容,因此文件保持原样。这些工具会将整个文件以 UTF-8 保存回去,这会把它们无法解码的每个字节都变成替换字符 `U+FFFD`。该消息出现在工具结果中:

4473 4620 

4474```text wrap theme={null}4621```text wrap theme={null}

4475File is not valid UTF-8. It may use a legacy encoding such as Windows-1252, Shift-JIS or GBK, or be binary. This tool saves the whole file as UTF-8, which would replace every byte it cannot decode with U+FFFD. Nothing was written. Make the change with a shell command that reads and writes the file in its own encoding, or ask the user whether to convert the file to UTF-8 first.4622File is not valid UTF-8. It may use a legacy encoding such as Windows-1252, Shift-JIS or GBK, or be binary. This tool saves the whole file as UTF-8, which would replace every byte it cannot decode with U+FFFD. Nothing was written. Make the change with a shell command that reads and writes the file in its own encoding, or ask the user whether to convert the file to UTF-8 first.

4476```4623```

4477 4624 

4478本应为 UTF-8 的文件只要包含哪怕一个无效字节序列,也会收到此消息,因为该检查针对的是文件的全部字节。4625本应是 UTF-8 的文件,只要包含哪怕一个无效字节序列,也会收到此消息,因为该检查针对的是文件的全部字节。

4479 4626 

4480**应该做什么:**4627**处理方法:**

4481 4628 

4482* 要保持文件当前的编码,请让 Claude 按照消息的指示,使用以该编码读写文件的 shell 命令进行更改4629* 如需保持文件的当前编码,请按照消息的指示,让 Claude 使用以该编码读写文件的 shell 命令进行更改

4483* 要继续使用 Edit 工具编辑该文件,请将其转换为 UTF-8,或修复本应为 UTF-8 的文件中的无效字节,然后要求 Claude 再次进行编辑4630* 如需继续使用 Edit 工具编辑该文件,请将其转换为 UTF-8,或修复本应是 UTF-8 的文件中的无效字节,然后让 Claude 再次进行编辑

4484 4631 

4485在 v2.1.296 之前,Edit 和 NotebookEdit 会应用此类编辑,并将无法解码的每个字节保存为 `U+FFFD`。如果您使用的是这些版本,请更新 Claude Code。4632在 v2.1.296 之前,Edit 和 NotebookEdit 会应用此类编辑,并将它们无法解码的每个字节保存为 `U+FFFD`。在这些版本上,请更新 Claude Code。

4486 4633 

4487### 源文件不是有效的 UTF-8 文本4634### The source file is not valid UTF-8 text

4488 4635 

4489Claude 尝试从一个字节无法解码为文本、或其文本已包含替换字符 `U+FFFD` 的文件发布 [Artifact](/docs/zh-CN/artifacts),因此 Claude Code 在上传任何内容之前拒绝了发布。消息出现在 Artifact 工具结果中并命名第一个要修复的位置:4636Claude 尝试从一个字节无法解码为文本、或其文本已包含替换字符 `U+FFFD` 的文件发布 [Artifact](/docs/zh-CN/artifacts),因此 Claude Code 在上传任何内容之前拒绝了该发布。该消息出现在 Artifact 工具结果中,并指出需要修复的第一个位置:

4490 4637 

4491```text wrap theme={null}4638```text wrap theme={null}

4492file_path: the source file is not valid UTF-8 text (first invalid byte at line 12, column 40). It may be saved in another encoding or contain binary data. Rewrite it as UTF-8, then publish again. Nothing was published.4639file_path: the source file is not valid UTF-8 text (first invalid byte at line 12, column 40). It may be saved in another encoding or contain binary data. Rewrite it as UTF-8, then publish again. Nothing was published.


4494file_path: the source file has the replacement character U+FFFD at line 12, column 40, usually left where an earlier edit or paste lost a character. Replace it with the intended text (in HTML, write an intended U+FFFD as &#xFFFD;), then publish again. Nothing was published.4641file_path: the source file has the replacement character U+FFFD at line 12, column 40, usually left where an earlier edit or paste lost a character. Replace it with the intended text (in HTML, write an intended U+FFFD as &#xFFFD;), then publish again. Nothing was published.

4495```4642```

4496 4643 

4497Claude Code 将文件解码为 UTF-8,或当它以小端 UTF-16 字节顺序标记开始时解码为 UTF-16。当这样的 UTF-16 文件无法解码时,第一条消息命名 `UTF-16` 并仍然告诉您将文件重写为 UTF-8。当命名的位置之后还有更多位置时,消息在位置后添加计数,例如 `(+2 more)`。4644Claude Code 会按 UTF-8 解码该文件;如果文件以小端序 UTF-16 字节顺序标记开头,则按 UTF-16 解码。当此类 UTF-16 文件无法解码时,第一条消息会指出 `UTF-16`,但仍会告诉您将文件重写为 UTF-8。当指出的位置之后还有更多位置时,消息会在该位置后附加一个计数,例如 `(+2 more)`。

4498 4645 

4499**应该做什么:**4646**处理方法:**

4500 4647 

4501* 通常不需要做任何事:Claude 重写文件并再次发布4648* 通常无需任何操作:Claude 会重写该文件并再次发布

4502* 如果文件是您编写或导出的,请再次将其保存为 UTF-8,并将每个 `U+FFFD` 替换为早期编辑、粘贴或转换丢失的字符4649* 如果该文件是您编写或导出的,请将其重新保存为 UTF-8,并将每个 `U+FFFD` 替换为先前编辑、粘贴或转换中丢失的字符

4503* 要在页面上显示有意的 `U+FFFD`,在 HTML 中将其写为 `&#xFFFD;` 而不是字面字符4650* 如需在页面上显示有意使用的 `U+FFFD`,请在 HTML 中将其写为 `&#xFFFD;`,而不是使用字面字符

4504 4651 

4505在 v2.1.267 之前,Claude Code 不加检查地上传这样的文件,而由服务器拒绝发布。4652在 v2.1.267 之前,Claude Code 会不经检查地上传此类文件,改由服务器拒绝发布。

4506 4653 

4507### 未发布:该文件位于网络共享上4654### Not published: that file is on a network share

4508 4655 

4509Claude 尝试从一个路径指向网络主机的文件发布 [Artifact](/docs/zh-CN/artifacts):4656Claude 尝试从一个指定了网络主机的路径上的文件发布 [Artifact](/docs/zh-CN/artifacts):

4510 4657 

4511* 在 Windows 上,不在您启动时通过 [`--add-dir`](/docs/zh-CN/cli-reference#cli-flags) 传入的映射网络驱动器下的 `\\server\share` 路径4658* 在 Windows 上,是一个不在您启动时通过 [`--add-dir`](/docs/zh-CN/cli-reference#cli-flags) 传入的映射网络驱动器下的 `\\server\share` 路径

4512* 在 macOS 或 Linux 上,自动挂载路径,例如 `/net/<host>/page.html`4659* 在 macOS 或 Linux 上,是一个自动挂载路径,例如 `/net/<host>/page.html`

4513 4660 

4514查找此类路径会联系其指向的主机,而在 Windows 上,这种联系可能会将您的凭据发送给该主机。Claude Code 拒绝发布该文件,也不会读取它。拒绝出现在 Artifact 工具结果中:4661查找此类路径会联系它所指定的主机,而在 Windows 上,这种联系可能会将您的凭据发送给该主机。Claude Code 拒绝发布该文件,也不会读取它。该拒绝出现在 Artifact 工具结果中:

4515 4662 

4516```text theme={null}4663```text theme={null}

4517Not published: that file is on a network share. Publish a file from this session's folders instead.4664Not published: that file is on a network share. Publish a file from this session's folders instead.

4518```4665```

4519 4666 

4520**应该做什么:**4667**处理方法:**

4668 

4669* 如果您不需要那个确切的文件,则无需任何操作:消息会告诉 Claude 改为从会话自己的文件夹中发布文件

4670* 如需发布那个确切的文件,请将其复制到本地磁盘上的文件夹中,然后再次请求

4671* 在 Windows 上,如需让 Claude 直接从共享发布,请将其映射到一个驱动器号,并在启动 Claude Code 时传入该驱动器。例如在 PowerShell 中,运行 `net use Z: \\server\share`,然后运行 `claude --add-dir Z:\`。之后 Claude 就可以从该驱动器发布文件。在会话中途使用 `/add-dir` 添加该驱动器是不够的。

4672* 在 macOS 或 Linux 上,请将共享挂载到某个目录(例如 `/mnt` 或 `/Volumes` 下的目录),并从该路径而不是自动挂载路径发布

4673 

4674### Not published: Claude sent the same content again after a newer version of the artifact turned it away

4675 

4676Artifact 调用下方的这行红色文字表示 Claude Code 阻止了一次重复发布:[Artifact](/docs/zh-CN/artifacts) 没有更新,Claude 用于发布的文件也没有写入任何内容。除非 Claude 在未发布的情况下停止,否则您无需任何操作。

4677 

4678在会话早些时候,由于该 Artifact 有了更新的版本,例如由某位[编辑者](/docs/zh-CN/artifacts#let-someone-edit-with-you)或您的另一个会话发布的版本,Claude Code 拒绝了一次发布。该行的结尾说明了 Claude 接下来需要做什么:

4521 4679 

4522* 如果您不需要该特定文件,则无需执行任何操作:消息会告诉 Claude 改为从会话自己的文件夹发布文件4680```text wrap theme={null}

4523* 要发布该特定文件,请将其复制到本地磁盘上的文件夹中,然后再次请求4681Not published: Claude sent the same content again after a newer version of the artifact turned it away. Claude needs to work from that newer version first.

4524* 在 Windows 上,要让 Claude 直接从共享发布,请将其映射到驱动器号,并在启动 Claude Code 时传入该驱动器。例如,在 PowerShell 中运行 `net use Z: \\server\share`,然后运行 `claude --add-dir Z:\`。之后 Claude 就可以从该驱动器发布文件。在会话中途使用 `/add-dir` 添加驱动器是不够的。4682Not published: Claude sent the same content again after a newer version of the artifact turned it away. The artifact hasn't changed since, so publishing it once more should go through.

4525* 在 macOS 或 Linux 上,将共享挂载到某个目录(例如 `/mnt` 或 `/Volumes` 下的目录),并从该路径而不是自动挂载路径发布4683Not published: Claude sent its changes again over the same file after a newer version of the artifact turned them away. Claude needs to work from that newer version first.

4684Not published: Claude sent its changes again over the same file after a newer version of the artifact turned them away. The artifact hasn't changed since, so publishing once more should go through.

4685```

4686 

4687**处理方法:**

4526 4688 

4527### 在 Cowork 会话中从连接的文件夹外读取本地文件4689* **以 `Claude needs to work from that newer version first` 结尾**:如果 Claude 在此处停止,请让它获取该 Artifact 的当前版本,将其更改合并进去,然后再次发布

4690* **以 `should go through` 结尾**:如果 Claude 在此处停止,请让它再次发布

4528 4691 

4529在 Claude Desktop 应用中于您的机器上运行的 [Cowork](https://claude.com/docs/cowork/overview) 会话中,Claude 为 [Artifact](/docs/zh-CN/artifacts) 指定了一个本地文件。Claude Code 无法确认该文件是会话连接的文件夹内的普通文件:路径位于这些文件夹之外、经过符号链接,或者其写法可能指向与表面不同的文件。读取这样的文件需要您的批准,而在无法向您显示批准卡片的会话中(例如设置为跳过所有批准的会话),Claude Code 会拒绝读取。4692### Reading a local file from outside the connected folders in a Cowork session

4530 4693 

4531拒绝出现在 Artifact 工具结果中;当文件根本无法检查时,它改为命名该失败:4694在 Claude Desktop 应用中于您的机器上运行的 [Cowork](https://claude.com/docs/cowork/overview) 会话里,Claude 为一个 [Artifact](/docs/zh-CN/artifacts) 指定了一个本地文件。Claude Code 无法确认该文件是会话已连接文件夹内的普通文件:该路径位于这些文件夹之外、经过了符号链接,或者其写法可能指向与表面上不同的文件。读取此类文件需要您的批准,而在无法向您显示批准卡片的会话中(例如设置为跳过所有批准的会话),Claude Code 会拒绝该读取。

4695 

4696该拒绝出现在 Artifact 工具结果中;当文件根本无法检查时,则会改为指出该失败:

4532 4697 

4533```text wrap theme={null}4698```text wrap theme={null}

4534Reading a local file from outside this session's connected folders, or through a link, needs the approval card, and no one can answer it in this Cowork session. Use a plain file inside the connected folders; do not retry this file in this session.4699Reading a local file from outside this session's connected folders, or through a link, needs the approval card, and no one can answer it in this Cowork session. Use a plain file inside the connected folders; do not retry this file in this session.


4536cannot read file_path (ENOENT) — the file could not be examined, and no one can answer the approval card in this Cowork session. Check that the file exists as a plain file inside the connected folders, then retry with that path.4701cannot read file_path (ENOENT) — the file could not be examined, and no one can answer the approval card in this Cowork session. Check that the file exists as a plain file inside the connected folders, then retry with that path.

4537```4702```

4538 4703 

4539**应该做什么:**4704**处理方法:**

4540 4705 

4541* 通常不需要做任何事:消息告诉 Claude 改为使用连接的文件夹内的普通文件4706* 通常无需任何操作:消息会告诉 Claude 改为使用已连接文件夹内的普通文件

4542* 要将该特定文件放入 Artifact,请将其作为常规文件(而非符号链接)复制到会话的某个连接文件夹中,然后再次请求4707* 如需将那个确切的文件放入 Artifact,请将其作为常规文件(而不是符号链接)复制到会话的某个已连接文件夹中,然后再次请求

4543 4708 

4544### WebFetch 无法获取 localhost4709### WebFetch cannot fetch localhost

4545 4710 

4546Claude 调用了 [WebFetch](/docs/zh-CN/tools-reference#webfetch-tool-behavior),其 URL 的主机名中没有点,例如 `http://localhost:3000` 或类似 `http://wiki/` 的纯内网名称。WebFetch 在发出任何请求之前拒绝这些 URL:4711Claude 调用 [WebFetch](/docs/zh-CN/tools-reference#webfetch-tool-behavior) 时使用的 URL 的主机名不含点,例如 `http://localhost:3000`,或类似 `http://wiki/` 的纯内网名称。WebFetch 会在发出任何请求之前拒绝这些 URL:

4547 4712 

4548```text wrap theme={null}4713```text wrap theme={null}

4549WebFetch cannot fetch localhost or other hostnames without a dot. To reach a local server, use Bash with curl instead.4714WebFetch cannot fetch localhost or other hostnames without a dot. To reach a local server, use Bash with curl instead.

4550```4715```

4551 4716 

4552**应该做什么:**4717**处理方法:**

4553 4718 

4554* 通常不需要做任何事:消息引导 Claude 通过 Bash 工具使用 `curl`,它可以访问本地和内网服务器4719* 通常无需任何操作:该消息会引导 Claude 通过 Bash 工具使用 `curl`,它可以访问本地和内网服务器

4555 4720 

4556在 v2.1.268 之前,WebFetch 用通用的 `Invalid URL` 错误报告这些 URL。4721在 v2.1.268 之前,WebFetch 会以通用的 `Invalid URL` 错误报告这些 URL。

4557 4722 

4558### WebFetch 域名安全检查失败4723### WebFetch domain safety check failed

4559 4724 

4560在获取 URL 之前,WebFetch 将 URL 的主机名发送到 `api.anthropic.com`,以根据 Anthropic 的[域名安全阻止列表](/docs/zh-CN/data-usage#webfetch-domain-safety-check)检查它。如果检查无法完成,WebFetch 无法确认域名是安全的,因此它不获取页面,工具结果改为携带以下消息之一:4725在获取 URL 之前,WebFetch 会将该 URL 的主机名发送到 `api.anthropic.com`,以对照 Anthropic 的[域名安全阻止列表](/docs/zh-CN/data-usage#webfetch-domain-safety-check)进行检查。如果检查无法完成,WebFetch 就无法确认该域名是安全的,因此不会获取该页面,工具结果会改为包含以下消息之一:

4561 4726 

4562```text wrap theme={null}4727```text wrap theme={null}

4563The safety check for domain example.com is rate-limited (too many domain checks from this network; the limit is shared and can stay exhausted for minutes). Do not retry WebFetch in a loop or sleep to wait it out; continue without this page and report that its safety check was rate-limited. A single later attempt is fine; if that is rate-limited too, stop.4728The safety check for domain example.com is rate-limited (too many domain checks from this network; the limit is shared and can stay exhausted for minutes). Do not retry WebFetch in a loop or sleep to wait it out; continue without this page and report that its safety check was rate-limited. A single later attempt is fine; if that is rate-limited too, stop.


4565Unable to verify if domain example.com is safe to fetch. This may be due to network restrictions or enterprise security policies blocking claude.ai.4730Unable to verify if domain example.com is safe to fetch. This may be due to network restrictions or enterprise security policies blocking claude.ai.

4566```4731```

4567 4732 

4568* `rate-limited`:检查端点以 HTTP `429` 响应。消息告诉 Claude 在没有该页面的情况下继续,并且稍后最多再尝试一次。Claude Code 不缓存失败的检查,因此稍后获取该域名时会再次运行检查。如果您网络上的会话经常遇到这种情况,您可以在设置中使用 [`skipWebFetchPreflight: true`](/docs/zh-CN/settings-reference#skipwebfetchpreflight) 跳过检查。4733* `rate-limited`:检查端点以 HTTP `429` 响应。该消息会告诉 Claude 在没有该页面的情况下继续,并且之后最多再尝试一次。Claude Code 不会缓存失败的检查,因此之后对该域名的获取会再次运行检查。如果您网络上的会话经常遇到这种情况,可以在设置中使用 [`skipWebFetchPreflight: true`](/docs/zh-CN/settings-reference#skipwebfetchpreflight) 跳过该检查。

4569* `Unable to verify`:检查请求失败、超时或收到其他错误状态。如果您的网络阻止 `api.anthropic.com`,请将该域名加入允许列表,或在设置中使用 [`skipWebFetchPreflight: true`](/docs/zh-CN/settings-reference#skipwebfetchpreflight) 跳过检查。4734* `Unable to verify`:检查请求失败、超时或收到其他错误状态。如果您的网络阻止了 `api.anthropic.com`,请将该域名加入允许列表,或在设置中使用 [`skipWebFetchPreflight: true`](/docs/zh-CN/settings-reference#skipwebfetchpreflight) 跳过该检查。

4570 4735 

4571在 v2.1.286 之前,速率限制消息为 `The safety check for domain example.com is temporarily rate-limited (too many domain checks from this network). Retry after about a minute; retrying sooner will fail the same way.`。4736在 v2.1.286 之前,速率限制消息的内容为 `The safety check for domain example.com is temporarily rate-limited (too many domain checks from this network). Retry after about a minute; retrying sooner will fail the same way.`。

4572在 v2.1.285 之前,被限流的检查改为用 `Unable to verify` 消息报告。4737在 v2.1.285 之前,被速率限制的检查会改为以 `Unable to verify` 消息报告。

4573 4738 

4574## 后台会话错误4739## 后台会话错误

4575 4740 


4816* 要继续循环,请[回复该会话](/docs/zh-CN/agent-view#peek-and-reply)并说明这一点,例如 `keep the loop running`。Claude 会连同您的回复一起读取通知,并可以安排下一次唤醒4981* 要继续循环,请[回复该会话](/docs/zh-CN/agent-view#peek-and-reply)并说明这一点,例如 `keep the loop running`。Claude 会连同您的回复一起读取通知,并可以安排下一次唤醒

4817* 如果您已不再需要该循环,则无需任何操作。它已经停止4982* 如果您已不再需要该循环,则无需任何操作。它已经停止

4818 4983 

4984### No LLM gateway: a gateway set in your shell isn't passed to a session opened from another folder

4985 

4986显示此消息的[后台会话](/docs/zh-CN/agent-view)没有使用您的 [LLM 网关](/docs/zh-CN/llm-gateway):它没有获得网关的地址,因此其请求会失败。该消息出现在对话中原本 Claude 回复的位置,并填入您的会话 ID 和文件夹:

4987 

4988```text wrap theme={null}

4989No LLM gateway: a gateway set in your shell isn't passed to a session opened from another folder. To fix, run `claude respawn abc12345` from ~/project in another terminal where your gateway is set, or set ANTHROPIC_BASE_URL and its API key or token in a settings file's env block.

4990```

4991 

4992当您附加到该会话时,其输入框下方的通知会显示简短形式 `No LLM gateway: opened from another folder · respawn from ~/project`。

4993 

4994您在 `ANTHROPIC_BASE_URL` 设置为您的网关时,从消息所指文件夹以外的文件夹分派、唤醒或重启了该会话。有关在 shell 中导出的网关确实能到达后台会话的情况,请参阅 [LLM 网关](/docs/zh-CN/agent-view#llm-gateway)。

4995 

4996**要做什么:**

4997 

4998* **您在一个由其设置指定网关的项目中使用了 Agent 视图**:将 `ANTHROPIC_BASE_URL` 及其 API 密钥或令牌放入[设置文件的 `env` 块](/docs/zh-CN/llm-gateway-connect#set-in-a-settings-file)。请使用 `~/.claude/settings.json`,或会话自身项目中的 `.claude/settings.local.json`,重新启动的会话会读取这两者。然后在 shell 中从任意文件夹运行 `claude respawn <id>`。

4999* **您在终端中导出了网关**:在已导出网关变量的终端中,`cd` 到消息所指的文件夹,然后运行消息中的 `claude respawn <id>` 命令。会话会从其保存的对话重新启动。

5000 * 只有当 [supervisor](/docs/zh-CN/agent-view#the-supervisor-process) 本身是从导出了相同网关的 shell 启动时,网关才会到达该会话。如果不是,请按照 [Dispatch fails with `Could not resolve authentication method`](/docs/zh-CN/agent-view#dispatch-fails-with-could-not-resolve-authentication-method) 中的说明从该终端重启 supervisor,然后再次运行 respawn 命令。

5001 

5002在 v2.1.302 之前,处于这种情况的后台会话会改为显示登录错误,例如 [`Not logged in · Please run /login`](#not-logged-in),且不会指出文件夹。

5003 

4819### CLAUDE\_CODE\_PROCESS\_WRAPPER 启动器错误5004### CLAUDE\_CODE\_PROCESS\_WRAPPER 启动器错误

4820 5005 

4821[`CLAUDE_CODE_PROCESS_WRAPPER`](/docs/zh-CN/corporate-launcher) 已设置,其值无法使用,因此 Claude Code 拒绝启动受影响的进程,而不是在没有启动器的情况下运行它。配置问题报告为以变量名开头并说明原因的消息,例如:5006[`CLAUDE_CODE_PROCESS_WRAPPER`](/docs/zh-CN/corporate-launcher) 已设置,其值无法使用,因此 Claude Code 拒绝启动受影响的进程,而不是在没有启动器的情况下运行它。配置问题报告为以变量名开头并说明原因的消息,例如:


5094 5279 

5095## 配置警告5280## 配置警告

5096 5281 

5097Claude Code 将大多数这些消息写入 stderr,而不是写入对话中,并在启动时写入大多数消息。当消息出现在其他地方(例如在调试日志中或作为对话视图中的启动通知)或在其他时间(例如[请求时的无法识别的模型诊断行](#unrecognized-model-id-on-a-request))时,条目会说明这一点。5282要查找 Claude Code 在交互式会话启动时给出的警告,请先查看启动横幅下方,然后查看调试日志:

5283 

5284* **启动横幅下方的行**:某些有关[权限规则](/docs/zh-CN/permissions)的警告,例如 [`⚠ Deny rule Bsh matches no tool · check for typos`](#matches-no-tool)

5285* **调试日志**:Claude Code 仅在调试模式下保留此日志。要读取其中的警告,请从 shell 使用 `claude --debug-file <path>` 启动 Claude Code,然后打开该路径下的文件。

5286 

5287在使用文本输出的[非交互模式](/docs/zh-CN/headless)中([后台会话](/docs/zh-CN/agent-view)之外),请在 stderr 上查找启动警告。

5288 

5289在 v2.1.305 之前,在交互式会话中也请查看 stderr,包括现在显示为横幅下方行的权限规则警告。

5098 5290 

5099### Claude Code 因无法恢复的界面错误而退出5291### Claude Code 因无法恢复的界面错误而退出

5100 5292 


5214 5406 

5215### 工作目录是网络路径5407### 工作目录是网络路径

5216 5408 

5217Claude Code 不将网络路径添加为工作目录。查找网络路径可能会联系它命名的主机,在 Windows 上该联系可能会向主机发送您的凭据,因此 Claude Code 拒绝该路径而不查找它。当您使用此类路径运行 `/add-dir` 时,或作为启动时的警告,您会看到此消息。当它在启动时出现时,Claude Code 启动时不包含该目录。5409Claude Code 不将网络路径添加为工作目录。查找网络路径可能会联系它命名的主机,在 Windows 上该联系可能会向主机发送您的凭据。因此 Claude Code 拒绝该路径而不查找它。

5410 

5411当您使用网络路径运行 `/add-dir` 时,您会看到此消息:

5218 5412 

5219```text theme={null}5413```text theme={null}

5220\\server\share is a network path, which cannot be added as a working directory. On Windows, map the share to a drive letter and pass it at launch with --add-dir (a drive letter added mid-session does not yet carry remote-read trust).5414\\server\share is a network path, which cannot be added as a working directory. On Windows, map the share to a drive letter and pass it at launch with --add-dir (a drive letter added mid-session does not yet carry remote-read trust).

5221```5415```

5222 5416 

5417当您改为在启动时通过 `--add-dir` 或 `permissions.additionalDirectories` 传递网络路径时,Claude Code 启动时不包含该目录。在交互式会话中,您在启动时看不到该消息,因为它与其他[启动警告](#configuration-warnings)一起写入调试日志。

5418 

5223Claude Code 以这种方式拒绝的路径包括:5419Claude Code 以这种方式拒绝的路径包括:

5224 5420 

5225* UNC 共享,例如 `\\server\share`5421* UNC 共享,例如 `\\server\share`


5465 5661 

5466在 v2.1.260 之前,Claude Code 将具有不匹配括号的规则报告为 `Mismatched parentheses`。5662在 v2.1.260 之前,Claude Code 将具有不匹配括号的规则报告为 `Mismatched parentheses`。

5467 5663 

5468### 不匹配文件权限检查5664### Matches no tool · check for typos

5665 

5666启动横幅下方的这一行命名了一条拒绝或询问[权限规则](/docs/zh-CN/permissions),Claude Code 无法识别其工具名称,因此该规则不适用于您想要的工具。写成 `Bsh` 的拒绝规则不会应用于 Bash,使用工具在会话记录中显示的标签而非其规范名称的规则也不会。该行按您书写的原样重复该规则:

5667 

5668```text theme={null}

5669⚠ Deny rule Bsh matches no tool · check for typos

5670```

5469 5671 

5470Claude Code 在您的某个[设置文件](/docs/zh-CN/settings#where-settings-live)、[托管设置](/docs/zh-CN/managed-settings)或 `--allowedTools`、`--disallowedTools` 或 `--settings` 标志值中找到了带有路径的 `Write`、`NotebookEdit`、`MultiEdit` 或 `Glob` [权限规则](/docs/zh-CN/permissions#read-and-edit)。它仅针对 `Edit` 和 `Read` 规则检查文件权限,因此从不查询命名其他文件工具之一的路径规则。它保留该规则且不改变其他任何内容;警告命名该规则、括号中的来源以及要写入的替换内容:5672在使用文本输出的[非交互模式](/docs/zh-CN/headless)中,Claude Code 改为在 stderr 上打印较长形式的警告:

5471 5673 

5472```text theme={null}5674```text theme={null}

5473Permission deny rule (.claude/settings.json): Write(docs/**) is not matched by file permission checks — only Edit(path) rules are. Use Edit(docs/**) instead (Edit rules cover all file-editing tools).5675Permission deny rule "Bsh" matches no known tool — check for typos.

5474```5676```

5475 5677 

5476**要做什么:**5678**要做什么:**

5477 5679 

5680* 更正规则中的工具名称,例如用 `Bash` 代替 `Bsh`。在[工具参考](/docs/zh-CN/tools-reference)中查找规范名称。

5681* 要查找规则的定义位置,请在会话中运行 `/permissions` 并选择该规则。其详情会说明规则的来源,例如 `From project local settings`,或对于 `--disallowedTools` 值显示 `From CLI argument`。

5682* 如果详情显示 `From enterprise managed settings`,请将该行转发给维护您的[托管设置](/docs/zh-CN/managed-settings)的人,因为您无法自己更改该规则。

5683 

5684在[后台会话](/docs/zh-CN/agent-view)中或使用 `--output-format json` 或 `stream-json` 时,Claude Code 将警告写入调试日志而不是 stderr。使用 `--debug` 运行以在 `~/.claude/debug/<session-id>.txt` 处捕获它。

5685 

5686在 v2.1.305 之前,交互式会话在启动时在 stderr 上打印较长形式,而不是显示该行。

5687 

5688### 不匹配文件权限检查

5689 

5690Claude Code 在您的某个[设置文件](/docs/zh-CN/settings#where-settings-live)、[托管设置](/docs/zh-CN/managed-settings)或 `--allowedTools`、`--disallowedTools` 或 `--settings` 标志值中找到了带有路径的 `Write`、`NotebookEdit`、`MultiEdit` 或 `Glob` [权限规则](/docs/zh-CN/permissions#read-and-edit)。它仅针对 `Edit` 和 `Read` 规则检查文件权限,因此从不查询命名其他文件工具之一的路径规则。它保留该规则且不改变其他任何内容。

5691 

5692* **交互式会话**:完整警告写入[调试日志](#configuration-warnings),此形式的拒绝或询问规则还会在启动横幅下方显示为以下行:

5693 

5694 ```text theme={null}

5695 ⚠ Deny rule Write(docs/**) never matches · use Edit(docs/**)

5696 ```

5697 

5698 此形式的允许规则不会显示行。要查找规则的定义位置,请在会话中运行 `/permissions` 并选择该规则。

5699* **使用文本输出的[非交互模式](/docs/zh-CN/headless)**:stderr 上的完整警告命名该规则、括号中的来源以及要写入的替换内容:

5700 

5701 ```text theme={null}

5702 Permission deny rule (.claude/settings.json): Write(docs/**) is not matched by file permission checks — only Edit(path) rules are. Use Edit(docs/**) instead (Edit rules cover all file-editing tools).

5703 ```

5704* **[后台会话](/docs/zh-CN/agent-view),或使用 `--output-format json` 或 `stream-json`**:完整警告写入调试日志而不是 stderr,以保持机器读取的输出干净。使用 `--debug` 运行以在 `~/.claude/debug/<session-id>.txt` 处捕获它。

5705 

5706**要做什么:**

5707 

5478* 将 `Write(path)`、`NotebookEdit(path)` 和旧版 `MultiEdit(path)` 规则替换为 `Edit(path)`。`Edit` 规则涵盖所有文件编辑工具。5708* 将 `Write(path)`、`NotebookEdit(path)` 和旧版 `MultiEdit(path)` 规则替换为 `Edit(path)`。`Edit` 规则涵盖所有文件编辑工具。

5479* 除了在 `--allowedTools` 中(Claude Code 接受 `Glob` 规则而不警告),将 `Glob(path)` 规则替换为 `Read(path)`。5709* 除了在 `--allowedTools` 中(Claude Code 接受 `Glob` 规则而不警告),将 `Glob(path)` 规则替换为 `Read(path)`。

5480* 在警告括号中命名的来源处修复规则:设置文件路径,或对于 `--allowed-tools` 和 `--disallowed-tools` 则是标志本身。磁盘上不存在的 `claude-settings-<hash>.json` 路径代表内联 `--settings` 值。请修复您传递给该标志的 JSON。5710* 在完整警告括号中命名的来源处修复规则:设置文件路径,或对于 `--allowed-tools` 和 `--disallowed-tools` 则是标志本身。磁盘上不存在的 `claude-settings-<hash>.json` 路径代表内联 `--settings` 值。请修复您传递给该标志的 JSON。

5481* 将诸如 `Write` 或 `Glob` 的裸工具名称规则保留原样。Claude Code 在[工具级别](/docs/zh-CN/permissions#match-all-uses-of-a-tool)匹配它们,不对它们发出警告。5711* 将诸如 `Write` 或 `Glob` 的裸工具名称规则保留原样。Claude Code 在[工具级别](/docs/zh-CN/permissions#match-all-uses-of-a-tool)匹配它们,不对它们发出警告。

5482* 如果来源显示为 `managed policy settings`,请将警告转发给维护您的托管设置的人,因为您无法自己清除它。5712* 对于来自托管设置的规则,完整警告的括号显示 `managed policy settings`,该规则在 `/permissions` 中的详情显示 `From enterprise managed settings`。请将该警告转发给维护您的托管设置的人,因为您无法自己清除它。

5483 5713 

5484在[后台会话](/docs/zh-CN/agent-view)中或使用 `--output-format json` 或 `stream-json` 时,Claude Code 将警告写入调试日志而不是 stderr,以保持机器读取的输出干净。使用 `--debug` 运行以在 `~/.claude/debug/<session-id>.txt` 处捕获它。在 v2.1.210 之前,Claude Code 接受这些规则而不警告。5714在 v2.1.210 之前,Claude Code 接受这些规则而不警告。在 v2.1.305 之前,交互式会话在 stderr 上打印完整警告。

5485 5715 

5486### 在命令的其余部分之前有通配符5716### 在命令的其余部分之前有通配符

5487 5717 

5488Claude Code 在您的某个[设置文件](/docs/zh-CN/settings#where-settings-live)、[托管设置](/docs/zh-CN/managed-settings)或 `--allowedTools` 或 `--settings` 标志值中找到了一个 `Bash` 允许规则,其 `*` 出现在决定命令类型的后续单词之前,例如 `Bash(git * main)` 或 `Bash(git -C * status *)`。`*` 匹配任何文本,包括在该位置插入的选项:`Bash(git * main)` 也会批准 `git -c core.fsmonitor=<script> diff main`,其中 `-c` 会使 git 运行命令所命名的程序。[通配符模式](/docs/zh-CN/permissions#wildcard-patterns)显示匹配规则。5718Claude Code 在您的某个[设置文件](/docs/zh-CN/settings#where-settings-live)、[托管设置](/docs/zh-CN/managed-settings)或 `--allowedTools` 或 `--settings` 标志值中找到了一个 `Bash` 允许规则,其 `*` 出现在决定命令类型的后续单词之前,例如 `Bash(git * main)` 或 `Bash(git -C * status *)`。`*` 匹配任何文本,包括在该位置插入的选项:`Bash(git * main)` 也会批准 `git -c core.fsmonitor=<script> diff main`,其中 `-c` 会使 git 运行命令所命名的程序。[通配符模式](/docs/zh-CN/permissions#wildcard-patterns)显示匹配规则。

5489 5719 

5490此警告的目的是让您缩小通配符范围超出预期的规则。Claude Code 保留该规则且不改变其匹配方式;警告命名该规则及括号中的来源:5720此警告的目的是让您缩小通配符范围超出预期的规则。Claude Code 保留该规则且不改变其匹配方式。在使用文本输出的[非交互模式](/docs/zh-CN/headless)中,stderr 上的警告命名该规则及括号中的来源:

5491 5721 

5492```text theme={null}5722```text theme={null}

5493Permission allow rule (.claude/settings.json): Bash(git -C * status *) has a wildcard before the rest of the command, so it also matches any options inserted at that position and approves them without a prompt. For git, options such as -c and --exec-path can run arbitrary commands. Replace that * with the exact value you mean, or only use * after the subcommand (for example Bash(git status *)).5723Permission allow rule (.claude/settings.json): Bash(git -C * status *) has a wildcard before the rest of the command, so it also matches any options inserted at that position and approves them without a prompt. For git, options such as -c and --exec-path can run arbitrary commands. Replace that * with the exact value you mean, or only use * after the subcommand (for example Bash(git status *)).

5494```5724```

5495 5725 

5726在交互式会话中,完整警告写入[调试日志](#configuration-warnings),该规则在启动横幅下方显示为以下行:

5727 

5728```text theme={null}

5729⚠ Allow rule Bash(git -C * status *) allows any option at its * · use an exact value

5730```

5731 

5732要查找规则的定义位置,请在会话中运行 `/permissions` 并选择该规则。

5733 

5496**要做什么:**5734**要做什么:**

5497 5735 

5498* 将子命令前的 `*` 替换为您想要的确切值:用 `Bash(git checkout main)` 代替 `Bash(git * main)`。5736* 将子命令前的 `*` 替换为您想要的确切值:用 `Bash(git checkout main)` 代替 `Bash(git * main)`。

5499* 将每个 `*` 移到子命令后:用 `Bash(git status *)` 代替 `Bash(git -C * status *)`。为您想允许的每个子命令写一条规则。5737* 将每个 `*` 移到子命令后:用 `Bash(git status *)` 代替 `Bash(git -C * status *)`。为您想允许的每个子命令写一条规则。

5500* 在警告括号中命名的来源处修复规则:设置文件路径,或 `--allowed-tools` 标志本身。磁盘上不存在的 `claude-settings-<hash>.json` 路径代表内联 `--settings` 值。请修复您传递给该标志的 JSON。5738* 在完整警告括号中命名的来源处修复规则:设置文件路径,或 `--allowed-tools` 标志本身。磁盘上不存在的 `claude-settings-<hash>.json` 路径代表内联 `--settings` 值。请修复您传递给该标志的 JSON。

5501* 如果来源显示为 `managed policy settings`,请将警告转发给维护您的托管设置的人,因为您无法自己清除它。5739* 对于来自托管设置的规则,完整警告的括号显示 `managed policy settings`,该规则在 `/permissions` 中的详情显示 `From enterprise managed settings`。请将该警告转发给维护您的托管设置的人,因为您无法自己清除它。

5502 5740 

5503在[后台会话](/docs/zh-CN/agent-view)中或使用 `--output-format json` 或 `stream-json` 时,Claude Code 将警告写入调试日志而不是 stderr,以保持机器读取的输出干净。使用 `--debug` 运行以在 `~/.claude/debug/<session-id>.txt` 处捕获它。在 v2.1.246 之前,Claude Code 接受这些规则而不警告。5741在[后台会话](/docs/zh-CN/agent-view)中或使用 `--output-format json` 或 `stream-json` 时,Claude Code 将警告写入调试日志而不是 stderr,以保持机器读取的输出干净。使用 `--debug` 运行以在 `~/.claude/debug/<session-id>.txt` 处捕获它。在 v2.1.246 之前,Claude Code 接受这些规则而不警告。

5504 5742 

5743在 v2.1.305 之前,交互式会话在 stderr 上打印完整警告,而不是显示一行。

5744 

5505### 拒绝 Bash 也会关闭 PowerShell 工具5745### 拒绝 Bash 也会关闭 PowerShell 工具

5506 5746 

5507您移除了整个 Bash 工具,例如使用 `--disallowedTools Bash`,或在您的某个设置文件中使用裸 `Bash` 或 `Bash(*)` [拒绝规则](/docs/zh-CN/permissions#match-all-uses-of-a-tool)。在安装了 Git Bash 的 Windows 上,[拒绝 Bash 也会关闭 PowerShell 工具](/docs/zh-CN/tools-reference#bash-deny-rules-also-turn-off-the-powershell-tool),因此会话启动时没有任何 shell 工具。Claude Code 在启动时打印此警告:5747您移除了整个 Bash 工具,例如使用 `--disallowedTools Bash`,或在您的某个设置文件中使用裸 `Bash` 或 `Bash(*)` [拒绝规则](/docs/zh-CN/permissions#match-all-uses-of-a-tool)。在安装了 Git Bash 的 Windows 上,[拒绝 Bash 也会关闭 PowerShell 工具](/docs/zh-CN/tools-reference#bash-deny-rules-also-turn-off-the-powershell-tool),因此会话启动时没有任何 shell 工具。

5748 

5749在使用文本输出的[非交互模式](/docs/zh-CN/headless)中,Claude Code 在启动时在 stderr 上打印此警告,而交互式会话仅将其写入[调试日志](#configuration-warnings):

5508 5750 

5509```text theme={null}5751```text theme={null}

5510Denying Bash also turns off the PowerShell tool, so Claude has neither. To use PowerShell, set CLAUDE_CODE_USE_POWERSHELL_TOOL=1.5752Denying Bash also turns off the PowerShell tool, so Claude has neither. To use PowerShell, set CLAUDE_CODE_USE_POWERSHELL_TOOL=1.


5517 5759 

5518在[后台会话](/docs/zh-CN/agent-view)中或使用 `--output-format json` 或 `stream-json` 时,Claude Code 将警告写入调试日志而不是 stderr。使用 `--debug` 运行以在 `~/.claude/debug/<session-id>.txt` 处捕获它。在 v2.1.287 之前,Claude Code 以同样的方式关闭 PowerShell 工具,但不打印警告。5760在[后台会话](/docs/zh-CN/agent-view)中或使用 `--output-format json` 或 `stream-json` 时,Claude Code 将警告写入调试日志而不是 stderr。使用 `--debug` 运行以在 `~/.claude/debug/<session-id>.txt` 处捕获它。在 v2.1.287 之前,Claude Code 以同样的方式关闭 PowerShell 工具,但不打印警告。

5519 5761 

5762在 v2.1.305 之前,交互式会话也会在启动时在 stderr 上打印该警告。

5763 

5520### crossSessionInbound 必须是 accept、hold 或 refuse 之一5764### crossSessionInbound 必须是 accept、hold 或 refuse 之一

5521 5765 

5522某个设置文件将 [`crossSessionInbound`](/docs/zh-CN/settings-reference#crosssessioninbound) 设置为 Claude Code 无法识别的值,例如拼写错误 `"reject"`。警告的第二句取决于哪个文件包含该值;在用户、项目、本地或 `--settings` 文件中,它显示为:5766某个设置文件将 [`crossSessionInbound`](/docs/zh-CN/settings-reference#crosssessioninbound) 设置为 Claude Code 无法识别的值,例如拼写错误 `"reject"`。警告的第二句取决于哪个文件包含该值;在用户、项目、本地或 `--settings` 文件中,它显示为:


5566* 如果消息命名了此版本无法识别的模型 ID,请运行 `claude update`。能够将该 ID 识别为 1M 上下文模型的版本会强制执行该限制,无需进一步配置。5810* 如果消息命名了此版本无法识别的模型 ID,请运行 `claude update`。能够将该 ID 识别为 1M 上下文模型的版本会强制执行该限制,无需进一步配置。

5567* 如果您希望会话改为使用模型的完整窗口,请取消设置 `CLAUDE_CODE_DISABLE_1M_CONTEXT`;该警告仅报告 200K 限制未被强制执行5811* 如果您希望会话改为使用模型的完整窗口,请取消设置 `CLAUDE_CODE_DISABLE_1M_CONTEXT`;该警告仅报告 200K 限制未被强制执行

5568 5812 

5569在[后台会话](/docs/zh-CN/agent-view)中或使用 `--output-format json` 或 `stream-json` 时,Claude Code 将警告写入调试日志而不是 stderr。5813在使用文本输出的[非交互模式](/docs/zh-CN/headless)中,此警告出现在 stderr 上。在交互式会话、[后台会话](/docs/zh-CN/agent-view)中或使用 `--output-format json` 或 `stream-json` 时,它改为写入调试日志。使用 `--debug` 运行以在 `~/.claude/debug/<session-id>.txt` 处捕获它。

5814 

5815在 v2.1.305 之前,交互式会话在启动时在 stderr 上打印该警告。

5570 5816 

5571### 请求上无法识别的模型 ID5817### 请求上无法识别的模型 ID

5572 5818 


5678如果此处未列出错误或建议的修复方法无法帮助:5924如果此处未列出错误或建议的修复方法无法帮助:

5679 5925 

5680* 在 Claude Code 中运行 `/feedback` 将记录和描述发送给 Anthropic。该命令还提供打开预填充的 GitHub issue 的选项。发送到 Anthropic 需要[身份验证](/docs/zh-CN/authentication)。在 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 和其他第三方提供商上,或者当未配置 Anthropic 凭证时,`/feedback` 会保存一个本地存档,您可以将其发送给您的 Anthropic 账户代表。5926* 在 Claude Code 中运行 `/feedback` 将记录和描述发送给 Anthropic。该命令还提供打开预填充的 GitHub issue 的选项。发送到 Anthropic 需要[身份验证](/docs/zh-CN/authentication)。在 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 和其他第三方提供商上,或者当未配置 Anthropic 凭证时,`/feedback` 会保存一个本地存档,您可以将其发送给您的 Anthropic 账户代表。

5927* 如果 `/feedback` 提示它已被您组织的策略禁用,请参阅[该消息的条目](#feedback-is-disabled-by-your-organizations-policy)

5681* 从您的 shell 中运行 `claude doctor` 以获取安装的只读诊断,或在 Claude Code 中运行 `/doctor` 检查以查找和修复设置问题5928* 从您的 shell 中运行 `claude doctor` 以获取安装的只读诊断,或在 Claude Code 中运行 `/doctor` 检查以查找和修复设置问题

5682* 检查 [status.claude.com](https://status.claude.com) 以了解活跃的事件5929* 检查 [status.claude.com](https://status.claude.com) 以了解活跃的事件

5683* 在 GitHub 上搜索[现有问题](https://github.com/anthropics/claude-code/issues)5930* 在 GitHub 上搜索[现有问题](https://github.com/anthropics/claude-code/issues)

Details

34 34 

35这些有提供商特定的差异:35这些有提供商特定的差异:

36 36 

37* **MCP 服务器**:[来自 claude.ai 的连接器](/docs/zh-CN/mcp#use-mcp-servers-from-claude-ai)仅在您的 claude.ai 订阅是活跃身份验证方法时加载。[工具搜索](/docs/zh-CN/mcp#configure-tool-search)在 `ANTHROPIC_BASE_URL` 指向非第一方主机时默认关闭,在 Google Cloud's Agent Platform 上早于 Claude Opus 4.5、Claude Sonnet 4.5 和 Claude Haiku 4.5 的模型或在 Microsoft Foundry [部署在 Azure 上](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options)时不受支持37* **MCP 服务器**:[来自 claude.ai 的连接器](/docs/zh-CN/mcp#use-mcp-servers-from-claude-ai)仅在您的 claude.ai 订阅是活跃身份验证方法时加载。[工具搜索](/docs/zh-CN/mcp#configure-tool-search)在 Microsoft Foundry [部署在 Azure 上](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options)时不受支持。在 Google Cloud's Agent Platform 上,早于 Claude Opus 4.5、Claude Sonnet 4.5 和 Claude Haiku 4.5 的模型不支持工具搜索

38* **Subagents**:当主对话运行 Fable 时,如果使用 Claude 订阅、Anthropic Console 账户或通过 `ANTHROPIC_BASE_URL` 访问的 [LLM gateway](/docs/zh-CN/llm-gateway),内置的 [Explore subagent](/docs/zh-CN/sub-agents#built-in-subagents) 会在 Opus 上运行。在其他提供商(包括 Claude Platform on AWS)上,它在 Fable 上运行38* **Subagents**:当主对话运行 Fable 时,如果使用 Claude 订阅、Anthropic Console 账户或通过 `ANTHROPIC_BASE_URL` 访问的 [LLM gateway](/docs/zh-CN/llm-gateway),内置的 [Explore subagent](/docs/zh-CN/sub-agents#built-in-subagents) 会在 Opus 上运行。在其他提供商(包括 Claude Platform on AWS)上,它在 Fable 上运行

39* **[Commands](/docs/zh-CN/commands#all-commands)**:39* **[Commands](/docs/zh-CN/commands#all-commands)**:

40 * `/design-sync` 和 `/import` 及其 `claude import` 子命令形式在 Amazon Bedrock、Google Cloud's Agent Platform、Microsoft Foundry 和 Claude Platform on AWS 上不可用,以及通过 [Claude apps gateway](/docs/zh-CN/claude-apps-gateway#availability-and-limitations)40 * `/design-sync` 和 `/import` 及其 `claude import` 子命令形式在 Amazon Bedrock、Google Cloud's Agent Platform、Microsoft Foundry 和 Claude Platform on AWS 上不可用,以及通过 [Claude apps gateway](/docs/zh-CN/claude-apps-gateway#availability-and-limitations)


57* [Artifacts](/docs/zh-CN/artifacts):Pro、Max、Team 和 Enterprise 计划57* [Artifacts](/docs/zh-CN/artifacts):Pro、Max、Team 和 Enterprise 计划

58* [Voice dictation](/docs/zh-CN/voice-dictation)58* [Voice dictation](/docs/zh-CN/voice-dictation)

59 59 

60Desktop 是部分例外:[网关路由可以在应用中或由管理员配置](/docs/zh-CN/llm-gateway-connect#desktop-app),Enterprise 部署可以通过[托管设置](https://claude.com/docs/third-party/claude-desktop/configuration)将 Desktop 路由到 Google Cloud's Agent Platform 或网关提供商,[Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/overview) 在 Amazon Bedrock、Google Cloud's Agent Platform、Microsoft Foundry 或自托管 LLM 网关上运行 Code 选项卡。有关这些功能的按计划可用性,请参阅[按订阅计划的可用性](#availability-by-subscription-plan)。60Desktop 是部分例外:[网关路由可以在应用中或由管理员配置](/docs/zh-CN/llm-gateway-connect#desktop-app)。[Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/overview) 还可以在 Amazon Bedrock、Google Cloud's Agent Platform、Microsoft Foundry 或自托管 LLM 网关上运行 Code 选项卡。它还可以使用 Anthropic Console API 密钥在 [Claude API](https://claude.com/docs/third-party/claude-desktop/claude-api) 上运行 Code 选项卡。有关这些功能的按计划可用性,请参阅[按订阅计划的可用性](#availability-by-subscription-plan)。

61 61 

62### 按提供商变化的 CLI 功能62### 按提供商变化的 CLI 功能

63 63 


287 287 

288[按提供商变化的 CLI 功能](#cli-capabilities-that-vary-by-provider)中的所有内容都可用,除了 [fast mode](/docs/zh-CN/fast-mode) 需要[预配置访问](/docs/zh-CN/fast-mode#enable-fast-mode-for-your-organization)。在 claude.ai Team 或 Enterprise 组织中配置的 [Server-managed settings](/docs/zh-CN/server-managed-settings) 不会作用于使用 Console API 密钥进行身份验证的会话。有关如何覆盖这些会话,请参阅[平台可用性](/docs/zh-CN/server-managed-settings#platform-availability)。288[按提供商变化的 CLI 功能](#cli-capabilities-that-vary-by-provider)中的所有内容都可用,除了 [fast mode](/docs/zh-CN/fast-mode) 需要[预配置访问](/docs/zh-CN/fast-mode#enable-fast-mode-for-your-organization)。在 claude.ai Team 或 Enterprise 组织中配置的 [Server-managed settings](/docs/zh-CN/server-managed-settings) 不会作用于使用 Console API 密钥进行身份验证的会话。有关如何覆盖这些会话,请参阅[平台可用性](/docs/zh-CN/server-managed-settings#platform-availability)。

289 289 

290**部分支持:**

291 

292* [Desktop](/docs/zh-CN/desktop):通过[结合 Claude API 使用的 Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/claude-api)

293 

290## 按订阅计划的可用性294## 按订阅计划的可用性

291 295 

292如果您通过 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 或 Anthropic Console API 密钥进行身份验证,本部分不适用于您。当您使用 claude.ai 账户登录时,您的计划决定了以下哪些功能可用。296如果您通过 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 或 Anthropic Console API 密钥进行身份验证,本部分不适用于您。当您使用 claude.ai 账户登录时,您的计划决定了以下哪些功能可用。

Details

148* **Subagents** 是 Claude 生成的工作者,每个都向生成它的对话返回摘要148* **Subagents** 是 Claude 生成的工作者,每个都向生成它的对话返回摘要

149* **[Dynamic workflows](/docs/zh-CN/workflows)** 是 Claude 编写的脚本,在后台运行许多 subagents 并返回一个结果149* **[Dynamic workflows](/docs/zh-CN/workflows)** 是 Claude 编写的脚本,在后台运行许多 subagents 并返回一个结果

150 150 

151**当您需要一个快速、专注的工作者时,使用 subagent**:研究一个问题、验证一个声明、审查一个文件。Subagent 完成工作并返回摘要,所以您的主对话保持清洁。Claude 在生成时命名的 subagents 也可以 [相互发送消息](/docs/zh-CN/sub-agents#what-loads-at-startup)。151**当您需要一个快速、专注的工作者时,使用子代理**:研究一个问题、验证一个声明、审查一个文件。子代理完成工作并返回摘要,所以您的主对话保持清洁。Claude 在生成时[命名](/docs/zh-CN/sub-agents#subagent-names)的子代理也可以 [相互发送消息](/docs/zh-CN/sub-agents#what-loads-at-startup)。

152 152 

153当一个工作[超出少数 subagents 的范围](/docs/zh-CN/workflows#when-to-use-a-workflow)时,或当您想在看到发现之前交叉检查它们时,**使用 dynamic workflow**,例如代码库范围的审计、大型迁移或从多个角度起草的计划。要启动一个,[在您的提示中要求一个工作流](/docs/zh-CN/workflows#ask-for-a-workflow-in-your-prompt)。153当一个工作[超出少数 subagents 的范围](/docs/zh-CN/workflows#when-to-use-a-workflow)时,或当您想在看到发现之前交叉检查它们时,**使用 dynamic workflow**,例如代码库范围的审计、大型迁移或从多个角度起草的计划。要启动一个,[在您的提示中要求一个工作流](/docs/zh-CN/workflows#ask-for-a-workflow-in-your-prompt)。

154 154 

fullscreen.md +1 −0

Details

32* 您的[权限模式](/docs/zh-CN/permission-modes)和[努力级别](/docs/zh-CN/model-config#adjust-effort-level)32* 您的[权限模式](/docs/zh-CN/permission-modes)和[努力级别](/docs/zh-CN/model-config#adjust-effort-level)

33* 您最后用 [`/model`](/docs/zh-CN/model-config#setting-your-model) 选择的模型33* 您最后用 [`/model`](/docs/zh-CN/model-config#setting-your-model) 选择的模型

34* 您用 [`--allowed-tools` 或 `--disallowed-tools`](/docs/zh-CN/cli-reference#cli-flags) 传递的规则,以及您的 `--agent`、`--agents`、`--append-system-prompt` 和 `--system-prompt-snapshot` 标志34* 您用 [`--allowed-tools` 或 `--disallowed-tools`](/docs/zh-CN/cli-reference#cli-flags) 传递的规则,以及您的 `--agent`、`--agents`、`--append-system-prompt` 和 `--system-prompt-snapshot` 标志

35* 您启动时使用的 `--chrome` 或 `--no-chrome` 标志,以便 [Chrome 集成](/docs/zh-CN/chrome)在此会话中按您的选择保持开启或关闭

35 36 

36如果会话有一个限制条件无法传递到重新启动的进程,Claude Code 会拒绝重新启动。无法传递的限制条件包括:37如果会话有一个限制条件无法传递到重新启动的进程,Claude Code 会拒绝重新启动。无法传递的限制条件包括:

37 38 

hipaa-setup.md +1 −0

Details

93| :- | :- |93| :- | :- |

94| `api.anthropic.com` | Claude API 请求、遥测,以及告知 Claude Code HIPAA 配置已开启的组织策略 |94| `api.anthropic.com` | Claude API 请求、遥测,以及告知 Claude Code HIPAA 配置已开启的组织策略 |

95| `claude.ai`、`claude.com`、`platform.claude.com` | 登录和令牌刷新 |95| `claude.ai`、`claude.com`、`platform.claude.com` | 登录和令牌刷新 |

96| `sso.claude.com` | 登录(当您的组织使用单点登录时) |

96| `downloads.claude.ai` | 原生安装程序及其更新 |97| `downloads.claude.ai` | 原生安装程序及其更新 |

97| `mcp-proxy.anthropic.com` | [来自 claude.ai 的连接器](/docs/zh-CN/mcp#use-mcp-servers-from-claude-ai) |98| `mcp-proxy.anthropic.com` | [来自 claude.ai 的连接器](/docs/zh-CN/mcp#use-mcp-servers-from-claude-ai) |

98 99 

hooks.md +12 −6

Details

294| `SessionStart` | 会话如何启动 | `startup`、`resume`、`clear`、`compact`、`fork` |294| `SessionStart` | 会话如何启动 | `startup`、`resume`、`clear`、`compact`、`fork` |

295| `Setup` | 哪个 CLI 标志触发了设置 | `init`、`maintenance` |295| `Setup` | 哪个 CLI 标志触发了设置 | `init`、`maintenance` |

296| `SessionEnd` | 会话为何结束 | `clear`、`resume`、`logout`、`prompt_input_exit`、`other` |296| `SessionEnd` | 会话为何结束 | `clear`、`resume`、`logout`、`prompt_input_exit`、`other` |

297| `Notification` | 通知类型 | `permission_prompt`、`idle_prompt`、`auth_success`、`elicitation_dialog`、`elicitation_url_dialog`、`elicitation_complete`、`elicitation_response`、`agent_needs_input`、`agent_completed`、`quota_auto_resume_fired`、`quota_auto_resume_stale`、`quota_auto_resume_disabled` |297| `Notification` | 通知类型 | `permission_prompt`、`idle_prompt`、`auth_success`、`elicitation_dialog`、`elicitation_url_dialog`、`elicitation_complete`、`elicitation_response`、`agent_needs_input`、`agent_completed`、`quota_auto_resume_fired`、`quota_auto_resume_stale`、`quota_auto_resume_disabled`、`plugin_notification` |

298| `SubagentStart` | 代理类型 | `general-purpose`、`Explore`、`Plan`、自定义代理名称或插件范围的名称如 `^my-plugin:reviewer$` |298| `SubagentStart` | 代理类型 | `general-purpose`、`Explore`、`Plan`、自定义代理名称或插件范围的名称如 `^my-plugin:reviewer$` |

299| `PreCompact`、`PostCompact` | 什么触发了压缩 | `manual`、`auto` |299| `PreCompact`、`PostCompact` | 什么触发了压缩 | `manual`、`auto` |

300| `PreModelSwitch`、`PostModelSwitch` | 会话切换到的模型的规范名称,如 [PreModelSwitch](#premodelswitch) 下所述 | `claude-opus-5`、`claude-opus-4-6\|claude-opus-5`、`.*opus.*` |300| `PreModelSwitch`、`PostModelSwitch` | 会话切换到的模型的规范名称,如 [PreModelSwitch](#premodelswitch) 下所述 | `claude-opus-5`、`claude-opus-4-6\|claude-opus-5`、`.*opus.*` |


1923 1923 

1924| 字段 | 说明 |1924| 字段 | 说明 |

1925| :- | :- |1925| :- | :- |

1926| `permissionDecision` | `"allow"` 会跳过权限提示,但[任何模式都不会自动批准的操作](/docs/zh-CN/permission-modes#actions-no-mode-auto-approves)和[从网络路径读取](/docs/zh-CN/permissions#network-paths)除外。`AskUserQuestion` 和 `ExitPlanMode` 需要[将 `updatedInput` 与 `"allow"` 配合使用](#allow-with-updatedinput)。关于计划模式,请参阅[计划模式中的 hook 批准](/docs/zh-CN/permissions#hook-approvals-in-plan-mode)。`"deny"` 会阻止工具调用。`"ask"` 会提示用户确认。`"defer"` 会正常退出,以便稍后恢复该工具。无论 hook 返回什么,[拒绝和询问规则](/docs/zh-CN/permissions#manage-permissions)仍会被评估 |1926| `permissionDecision` | `"allow"` 会跳过权限提示,但[任何模式都不会自动批准的操作](/docs/zh-CN/permission-modes#actions-no-mode-auto-approves)和[从网络路径读取](/docs/zh-CN/permissions#network-paths)除外。`AskUserQuestion` 和 `ExitPlanMode` 需要[与 `"allow"` 配对的 `updatedInput`](#allow-with-updatedinput)。关于计划模式,请参阅[计划模式中的 hook 批准](/docs/zh-CN/permissions#hook-approvals-in-plan-mode)。`"deny"` 会阻止工具调用。`"ask"` 会提示用户确认。`"defer"` 会结束当前轮次,以便稍后恢复该工具,并且需要使用 `-p` 标志的[非交互模式](#defer-a-tool-call-for-later)。无论 hook 返回什么,[拒绝和询问规则](/docs/zh-CN/permissions#manage-permissions)仍会被评估 |

1927| `permissionDecisionReason` | 对于 `"ask"`,在权限提示中显示给用户。当 Claude Code 在无人能回应该提示的 `-p` 运行中[拒绝该调用](/docs/zh-CN/headless#turn-off-permission-prompts-in-unattended-runs)时,Claude 会在工具结果中读取该原因。对于 `"deny"`,显示给 Claude。对于 `"allow"` 和 `"defer"`,仅写入[调试日志](#debug-hooks) |1927| `permissionDecisionReason` | 对于 `"ask"`,在权限提示中显示给用户。当 Claude Code 在无人能回应该提示的 `-p` 运行中[拒绝该调用](/docs/zh-CN/headless#turn-off-permission-prompts-in-unattended-runs)时,Claude 会在工具结果中读取该原因。对于 `"deny"`,显示给 Claude。对于 `"allow"` 和 `"defer"`,仅写入[调试日志](#debug-hooks) |

1928| `updatedInput` | 在执行前修改工具的输入参数。会替换整个输入对象,因此请将未更改的字段与修改后的字段一起包含。Claude Code 会针对您的 hook 返回的输入(而非 Claude 发送的输入)评估权限规则以及 Bash 命令的[自动转入后台资格](/docs/zh-CN/tools-reference#foreground-commands-that-move-to-the-background)。与 `"allow"` 结合可自动批准,与 `"ask"` 结合可向用户显示修改后的输入。对于 `"defer"`,会被忽略 |1928| `updatedInput` | 在执行前修改工具的输入参数。会替换整个输入对象,因此请将未更改的字段与修改后的字段一起包含。Claude Code 会针对您的 hook 返回的输入(而非 Claude 发送的输入)评估权限规则以及 Bash 命令的[自动转入后台资格](/docs/zh-CN/tools-reference#foreground-commands-that-move-to-the-background)。与 `"allow"` 结合可自动批准,与 `"ask"` 结合可向用户显示修改后的输入。对于 `"defer"`,会被忽略 |

1929| `additionalContext` | 与工具结果一起添加到 Claude 上下文中的字符串。当 `permissionDecision` 为 `"defer"` 时会被忽略。请参阅[为 Claude 添加上下文](#add-context-for-claude) |1929| `additionalContext` | 与工具结果一起添加到 Claude 上下文中的字符串。当 `permissionDecision` 为 `"defer"` 时会被忽略。请参阅[为 Claude 添加上下文](#add-context-for-claude) |


1997`AskUserQuestion` 工具是典型场景:Claude 想向用户提问,但没有可供作答的终端。`-p` 运行只有在具有[权限宿主](/docs/zh-CN/headless#turn-off-permission-prompts-in-unattended-runs)(例如您通过 `--permission-prompt-tool` 传入的 MCP 工具)时才会提供 `AskUserQuestion`,因此请在启动运行时提供一个。完整的往返流程如下:1997`AskUserQuestion` 工具是典型场景:Claude 想向用户提问,但没有可供作答的终端。`-p` 运行只有在具有[权限宿主](/docs/zh-CN/headless#turn-off-permission-prompts-in-unattended-runs)(例如您通过 `--permission-prompt-tool` 传入的 MCP 工具)时才会提供 `AskUserQuestion`,因此请在启动运行时提供一个。完整的往返流程如下:

1998 1998 

19991. Claude 调用 `AskUserQuestion`。`PreToolUse` hook 触发。19991. Claude 调用 `AskUserQuestion`。`PreToolUse` hook 触发。

20002. hook 返回 `permissionDecision: "defer"`。工具不执行。进程以 `stop_reason: "tool_deferred"` 退出,待处理的工具调用保存在会话记录中。20002. hook 返回 `permissionDecision: "defer"`。工具不会执行。该轮次以一个携带 `stop_reason: "tool_deferred"` 的结果结束,待处理的工具调用保留在会话记录中。

20013. 调用进程从 SDK 结果中读取 `deferred_tool_use`,在其自己的 UI 中呈现问题,并等待答案。20013. 调用进程从 SDK 结果中读取 `deferred_tool_use`,在其自己的 UI 中呈现问题,并等待答案。

20024. 调用进程使用相同的权限宿主运行 `claude -p --resume <session-id>`。同一工具调用会再次触发 `PreToolUse`。20024. 调用进程使用相同的权限宿主运行 `claude -p --resume <session-id>`。同一工具调用会再次触发 `PreToolUse`。

20035. hook 返回 `permissionDecision: "allow"`,并在 `updatedInput` 中附带答案。工具执行,Claude 继续。20035. hook 返回 `permissionDecision: "allow"`,并在 `updatedInput` 中附带答案。工具执行,Claude 继续。


2018}2018}

2019```2019```

2020 2020 

2021没有超时或重试限制。会话会保留在磁盘上直到您恢复它,但受 [`cleanupPeriodDays`](/docs/zh-CN/settings-reference#cleanupperioddays) 保留清理的约束,该清理默认在 30 天后删除会话文件,遵循[保留清理规则](/docs/zh-CN/claude-directory#cleaned-up-automatically)。如果恢复时答案尚未准备好,hook 可以再次返回 `"defer"`,进程会以同样的方式退出。调用进程通过最终从 hook 返回 `"allow"` 或 `"deny"` 来控制何时结束循环。2021没有超时或重试次数限制。会话会保留在磁盘上,直到您恢复它,但会受 [`cleanupPeriodDays`](/docs/zh-CN/settings-reference#cleanupperioddays) 保留期清理的影响:该清理默认在 30 天后删除会话文件,并遵循[保留期清理规则](/docs/zh-CN/claude-directory#cleaned-up-automatically)。

2022 2022 

2023`"defer"` 仅在 Claude 在该轮次中进行单个工具调用时有效。如果 Claude 同时进行多个工具调用,`"defer"` 会被忽略并给出警告,工具将通过正常的权限流程继续。存在此限制是因为恢复只能重新运行一个工具:无法在不让其他调用悬而未决的情况下,从一批调用中延迟其中一个。2023如果在您恢复时被延迟的工具已不可用,恢复后的第一个结果会带有 `stop_reason: "tool_deferred_unavailable"` 和 `is_error: true`,且 hook 不会触发。当提供该工具的 MCP 服务器未在恢复的会话中连接时,就会发生这种情况。`deferred_tool_use` 数据仍会包含在内,以便您确定缺失的是哪个工具。

2024 

2025* **如果您在恢复时或恢复之后没有发送提示词**,该调用仍处于待处理状态。在工具可用时再次恢复,它会首先运行。

2026* **如果您在恢复时或恢复之后发送了提示词**,Claude Code 会在没有该工具结果的情况下回答它,并丢弃被延迟的调用。如果您仍需调用该工具,请在工具可用后发送新的提示词。

2024 2027 

2025如果恢复时延迟的工具已不再可用,进程会在 hook 触发之前以 `stop_reason: "tool_deferred_unavailable"` 和 `is_error: true` 退出。当提供该工具的 MCP 服务器未在恢复的会话中连接时,就会发生这种情况。`deferred_tool_use` 数据仍会包含在内,以便您识别缺失的是哪个工具。2028如果在您不带提示词恢复时,您等待的答案尚未就绪,hook 可以再次返回 `"defer"`。如果您发送了提示词而 hook 再次延迟,Claude Code 会以同样的方式处理该提示词:在没有工具结果的情况下回答,并丢弃该调用。请不带提示词地恢复,直到 hook 返回 `"allow"` 或 `"deny"`,调用进程正是以此跳出循环。

2029 

2030`"defer"` 仅在 Claude 在该轮次中进行单个工具调用时有效。如果 Claude 同时进行多个工具调用,`"defer"` 会被忽略并给出警告,工具将通过正常的权限流程继续。存在此限制是因为恢复只能重新运行一个工具:无法在不让其他调用悬而未决的情况下,从一批调用中延迟其中一个。

2026 2031 

2027> [!NOTE]2032> [!NOTE]

2028>2033>


2424| `quota_auto_resume_fired` | 在 claude.ai 用量限制暂停您的任务后,Claude Code 继续执行该任务:在限制重置时,或在等待期间您在 Claude Code 中的某些操作(例如添加使用额度、升级套餐或切换模型)使用量重新可用时提前继续,但存在[模型设置例外](/docs/zh-CN/interactive-mode#wait-for-a-usage-limit-to-reset) |2429| `quota_auto_resume_fired` | 在 claude.ai 用量限制暂停您的任务后,Claude Code 继续执行该任务:在限制重置时,或在等待期间您在 Claude Code 中的某些操作(例如添加使用额度、升级套餐或切换模型)使用量重新可用时提前继续,但存在[模型设置例外](/docs/zh-CN/interactive-mode#wait-for-a-usage-limit-to-reset) |

2425| `quota_auto_resume_stale` | claude.ai 用量限制在您的计算机休眠超过约 30 分钟期间重置。Claude Code 会等待您按下 `Enter`,而不是继续执行。如果休眠时间较短,它会继续执行并改为触发 `quota_auto_resume_fired` |2430| `quota_auto_resume_stale` | claude.ai 用量限制在您的计算机休眠超过约 30 分钟期间重置。Claude Code 会等待您按下 `Enter`,而不是继续执行。如果休眠时间较短,它会继续执行并改为触发 `quota_auto_resume_fired` |

2426| `quota_auto_resume_disabled` | Claude Code 结束对 claude.ai 用量限制的等待,但未继续您的任务:在 Claude Code 自行开始的等待期间,[`autoContinueAtUsageLimit`](/docs/zh-CN/settings-reference#autocontinueatusagelimit) 被关闭或重置时间推迟到 24 小时以后;继续执行的任务不断触及限制;或继续执行在到达模型之前被阻止。当您按下 `Esc` 或 `Ctrl+C`,或选择 **Don't continue automatically** 时不会触发 |2431| `quota_auto_resume_disabled` | Claude Code 结束对 claude.ai 用量限制的等待,但未继续您的任务:在 Claude Code 自行开始的等待期间,[`autoContinueAtUsageLimit`](/docs/zh-CN/settings-reference#autocontinueatusagelimit) 被关闭或重置时间推迟到 24 小时以后;继续执行的任务不断触及限制;或继续执行在到达模型之前被阻止。当您按下 `Esc` 或 `Ctrl+C`,或选择 **Don't continue automatically** 时不会触发 |

2432| `plugin_notification` | 某个 [mod](/docs/zh-CN/plugins/mods/api#show-something-without-starting-a-turn) 通过 `$.ui.notify` 发出通知。hook 的 `title` 为该 mod 的名称,除非 mod 自行设置了标题 |

2427 2433 

2428`quota_auto_resume_fired`、`quota_auto_resume_stale` 和 `quota_auto_resume_disabled` 类型需要 Claude Code v2.1.234 或更高版本。2434`quota_auto_resume_fired`、`quota_auto_resume_stale` 和 `quota_auto_resume_disabled` 类型需要 Claude Code v2.1.234 或更高版本。

2429 2435 

hooks-guide.md +3 −2

Details

193| `quota_auto_resume_fired` | Claude Code 在 claude.ai 使用限制暂停后继续你的任务:在重置时,或更早当你在等待期间在 Claude Code 中做的某些事情(如添加使用额度、升级你的计划或切换模型)使使用量再次可用时,但有[模型设置例外](/docs/zh-CN/interactive-mode#wait-for-a-usage-limit-to-reset) |193| `quota_auto_resume_fired` | Claude Code 在 claude.ai 使用限制暂停后继续你的任务:在重置时,或更早当你在等待期间在 Claude Code 中做的某些事情(如添加使用额度、升级你的计划或切换模型)使使用量再次可用时,但有[模型设置例外](/docs/zh-CN/interactive-mode#wait-for-a-usage-limit-to-reset) |

194| `quota_auto_resume_stale` | claude.ai 使用限制在你的计算机睡眠超过约 30 分钟时重置。Claude Code 等待你按 `Enter` 而不是继续。在较短的睡眠后它继续并改为触发 `quota_auto_resume_fired` |194| `quota_auto_resume_stale` | claude.ai 使用限制在你的计算机睡眠超过约 30 分钟时重置。Claude Code 等待你按 `Enter` 而不是继续。在较短的睡眠后它继续并改为触发 `quota_auto_resume_fired` |

195| `quota_auto_resume_disabled` | Claude Code 结束其对 claude.ai 使用限制的等待而不继续你的任务:[`autoContinueAtUsageLimit`](/docs/zh-CN/settings-reference#autocontinueatusagelimit) 关闭或重置在 Claude Code 自己启动的等待期间移动超过 24 小时,继续的任务继续命中限制,或继续在到达模型前被阻止。当你按 `Esc` 或 `Ctrl+C` 或选择**不自动继续**时不触发 |195| `quota_auto_resume_disabled` | Claude Code 结束其对 claude.ai 使用限制的等待而不继续你的任务:[`autoContinueAtUsageLimit`](/docs/zh-CN/settings-reference#autocontinueatusagelimit) 关闭或重置在 Claude Code 自己启动的等待期间移动超过 24 小时,继续的任务继续命中限制,或继续在到达模型前被阻止。当你按 `Esc` 或 `Ctrl+C` 或选择**不自动继续**时不触发 |

196| `plugin_notification` | [mod](/docs/zh-CN/plugins/mods/api#show-something-without-starting-a-turn) 使用 `$.ui.notify` 发出通知。除非 mod 自行设置了 `title`,否则 hook 的 `title` 为该 mod 的名称 |

196 197 

197Claude Code 在终端和通过 Agent SDK 回答权限请求的 Claude Desktop、VS Code 扩展和其他主机中对 `permission_prompt` 的时间不同。请参阅[每个通知类型何时触发](/docs/zh-CN/hooks#notification)以了解两种时间。198Claude Code 在终端和通过 Agent SDK 回答权限请求的 Claude Desktop、VS Code 扩展和其他主机中对 `permission_prompt` 的时间不同。请参阅[每个通知类型何时触发](/docs/zh-CN/hooks#notification)以了解两种时间。

198 199 


632 633 

633 有关 `"allow"` 在计划模式下的作用,请参阅 [计划模式下的 hook 批准](/docs/zh-CN/permissions#hook-approvals-in-plan-mode)。634 有关 `"allow"` 在计划模式下的作用,请参阅 [计划模式下的 hook 批准](/docs/zh-CN/permissions#hook-approvals-in-plan-mode)。

634 635 

635第四个值 `"defer"` 在 [非交互模式](/docs/zh-CN/headless) 中使用 `-p` 标志时可用。它以保留的工具调用退出进程,以便 Agent SDK 包装器可以收集输入并恢复。请参阅参考中的 [延迟工具调用以供稍后使用](/docs/zh-CN/hooks#defer-a-tool-call-for-later)。636第四个值 `"defer"` 在 [非交互模式](/docs/zh-CN/headless) 中使用 `-p` 标志时可用。返回该值会结束当前轮次并保留工具调用,以便 Agent SDK 包装器可以收集输入并恢复。请参阅参考中的 [延迟工具调用以供稍后使用](/docs/zh-CN/hooks#defer-a-tool-call-for-later)。

636 637 

637`PreModelSwitch` hook 返回相同的 `permissionDecision` 字段:`"allow"` 让模型切换进行,`"deny"` 取消它。`"ask"` 在你在交互式会话中运行 `/model` 时让你确认切换;在其他地方,Claude Code 将 `"ask"` 视为拒绝。请参阅 [PreModelSwitch 决策控制](/docs/zh-CN/hooks#premodelswitch-decision-control)。638`PreModelSwitch` hook 返回相同的 `permissionDecision` 字段:`"allow"` 让模型切换进行,`"deny"` 取消它。`"ask"` 在你在交互式会话中运行 `/model` 时让你确认切换;在其他地方,Claude Code 将 `"ask"` 视为拒绝。请参阅 [PreModelSwitch 决策控制](/docs/zh-CN/hooks#premodelswitch-decision-control)。

638 639 


686| `SessionStart` | 会话如何启动 | `startup`、`resume`、`clear`、`compact`、`fork` |687| `SessionStart` | 会话如何启动 | `startup`、`resume`、`clear`、`compact`、`fork` |

687| `Setup` | 哪个 CLI 标志触发了设置 | `init`、`maintenance` |688| `Setup` | 哪个 CLI 标志触发了设置 | `init`、`maintenance` |

688| `SessionEnd` | 会话为什么结束 | `clear`、`resume`、`logout`、`prompt_input_exit`、`other` |689| `SessionEnd` | 会话为什么结束 | `clear`、`resume`、`logout`、`prompt_input_exit`、`other` |

689| `Notification` | 通知类型 | `permission_prompt`、`idle_prompt`、`auth_success`、`elicitation_dialog`、`elicitation_url_dialog`、`elicitation_complete`、`elicitation_response`、`agent_needs_input`、`agent_completed`、`quota_auto_resume_fired`、`quota_auto_resume_stale`、`quota_auto_resume_disabled` |690| `Notification` | 通知类型 | `permission_prompt`、`idle_prompt`、`auth_success`、`elicitation_dialog`、`elicitation_url_dialog`、`elicitation_complete`、`elicitation_response`、`agent_needs_input`、`agent_completed`、`quota_auto_resume_fired`、`quota_auto_resume_stale`、`quota_auto_resume_disabled`、`plugin_notification` |

690| `SubagentStart` | 代理类型 | `general-purpose`、`Explore`、`Plan` 或自定义代理名称 |691| `SubagentStart` | 代理类型 | `general-purpose`、`Explore`、`Plan` 或自定义代理名称 |

691| `PreCompact`、`PostCompact` | 什么触发了压缩 | `manual`、`auto` |692| `PreCompact`、`PostCompact` | 什么触发了压缩 | `manual`、`auto` |

692| `PreModelSwitch`、`PostModelSwitch` | 会话切换到的模型的规范名称,如 [PreModelSwitch](/docs/zh-CN/hooks#premodelswitch) 下所述 | `claude-opus-5`、`claude-opus-4-6\|claude-opus-5`、`.*opus.*` |693| `PreModelSwitch`、`PostModelSwitch` | 会话切换到的模型的规范名称,如 [PreModelSwitch](/docs/zh-CN/hooks#premodelswitch) 下所述 | `claude-opus-5`、`claude-opus-4-6\|claude-opus-5`、`.*opus.*` |

Details

18 18 

19| 快捷键 | 描述 | 上下文 |19| 快捷键 | 描述 | 上下文 |

20| :- | :- | :- |20| :- | :- | :- |

21| `Ctrl+C` | 中断或清除输入 | 中断正在运行的操作。如果没有任何操作在运行,第一次按下会清除提示输入,第二次按下会退出 Claude Code。在提示输入仍为空时按 `Up` 可找回被清除的草稿,这需要 Claude Code v2.1.288 或更高版本 |21| `Ctrl+C` | 中断或清除输入 | 中断正在运行的操作。如果没有任何操作在运行,第一次按下会清除提示输入,第二次按下会退出 Claude Code。要找回被清除的草稿,请参阅[找回被清除的草稿](#bring-back-a-cleared-draft) |

22| `Ctrl+X Ctrl+K` | 停止此会话中所有正在运行的[后台子代理](/docs/zh-CN/sub-agents#run-subagents-in-foreground-or-background),并在该会话的剩余时间内关闭 [Artifact 自动回复](/docs/zh-CN/artifacts#let-claude-reply-to-comments-on-its-own)。在 3 秒内按两次以确认。后台子代理的权限提示打开时,您也可以按此快捷键 | 子代理控制 |22| `Ctrl+X Ctrl+K` | 停止此会话中所有正在运行的[后台子代理](/docs/zh-CN/sub-agents#run-subagents-in-foreground-or-background),并在该会话的剩余时间内关闭 [Artifact 自动回复](/docs/zh-CN/artifacts#let-claude-reply-to-comments-on-its-own)。在 3 秒内按两次以确认。后台子代理的权限提示打开时,您也可以按此快捷键 | 子代理控制 |

23| `Ctrl+D` | 退出 Claude Code 会话 | 第一次按下显示确认提示,第二次在 800ms 内按下会退出。当提示有文本时,`Ctrl+D` 会删除光标后的字符 |23| `Ctrl+D` | 退出 Claude Code 会话 | 第一次按下显示确认提示,第二次在 800ms 内按下会退出。当提示有文本时,`Ctrl+D` 会删除光标后的字符 |

24| `Ctrl+G` 或 `Ctrl+X Ctrl+E` | 在默认文本编辑器中打开 | 在默认文本编辑器中编辑您的提示或自定义响应。`Ctrl+X Ctrl+E` 是 readline 原生绑定。在 `/config` 中打开**在外部编辑器中显示最后一个响应**,以在您的提示上方将 Claude 的前一个回复作为 `#` 注释上下文预置;Claude Code 在您保存时会删除注释块 |24| `Ctrl+G` 或 `Ctrl+X Ctrl+E` | 在默认文本编辑器中打开 | 在默认文本编辑器中编辑您的提示或自定义响应。`Ctrl+X Ctrl+E` 是 readline 原生绑定。在 `/config` 中打开**在外部编辑器中显示最后一个响应**,以在您的提示上方将 Claude 的前一个回复作为 `#` 注释上下文预置;Claude Code 在您保存时会删除注释块 |


262 262 

263不支持使用 `Ctrl+V` 的块级可视模式。263不支持使用 `Ctrl+V` 的块级可视模式。

264 264 

265### 在 vim 模式下取消问题

266 

267当您在 [Claude 提出的问题](/docs/zh-CN/tools-reference#askuserquestion-tool-behavior)的 `Other` 行中输入自己的回答时,按两次 `Esc` 即可取消该问题。

268 

269如需改为按一次键即可取消,请[绑定另一个键来取消问题](/docs/zh-CN/keybindings#cancel-a-question-with-one-key-press)。

270 

265## 命令历史271## 命令历史

266 272 

267Claude Code 保留了你输入的提示词的历史记录,上箭头回调可以从同一项目的过去会话中获取提示词:273Claude Code 保留了你输入的提示词的历史记录,上箭头回调可以从同一项目的过去会话中获取提示词:


272* 当你回调包含粘贴文本的提示词时,Claude Code 在你重新提交时会再次发送完整的粘贴内容。如果内容已被[自动清理](/docs/zh-CN/claude-directory#cleaned-up-automatically),Claude Code 不会发送字面上的 `[Pasted text #N]` 字符串;有关提示词发生的情况,请参阅[粘贴大型内容](/docs/zh-CN/terminal-config#paste-large-content)278* 当你回调包含粘贴文本的提示词时,Claude Code 在你重新提交时会再次发送完整的粘贴内容。如果内容已被[自动清理](/docs/zh-CN/claude-directory#cleaned-up-automatically),Claude Code 不会发送字面上的 `[Pasted text #N]` 字符串;有关提示词发生的情况,请参阅[粘贴大型内容](/docs/zh-CN/terminal-config#paste-large-content)

273* 使用 `!` 的历史扩展默认被禁用279* 使用 `!` 的历史扩展默认被禁用

274 280 

281### 找回已清除的草稿

282 

283要找回使用 `Ctrl+C` 清除的草稿,请按 `Up`,可以在清除后立即按,也可以在发送消息或命令之后按:

284 

285* **清除草稿后立即找回**:在提示词输入框仍为空时按一次 `Up`。需要 Claude Code v2.1.288 或更高版本。

286* **发送消息或命令之后找回**:按 `Up` 回退到该草稿。Claude Code 会为当前会话保留最近清除的十个草稿及其粘贴的文本和图像,并在您退出时将其丢弃。需要 Claude Code v2.1.292 或更高版本。

287 

275### 使用 Ctrl+R 进行反向搜索288### 使用 Ctrl+R 进行反向搜索

276 289 

277按 `Ctrl+R` 以交互方式搜索你的命令历史。在[全屏渲染](/docs/zh-CN/fullscreen)中,`Ctrl+R` 打开搜索对话框:输入以过滤,按 `Up` 和 `Down` 在匹配项中移动,按 `Ctrl+S` 循环切换范围(此会话、此项目和所有项目)。按 `Enter` 或 `Tab` 将匹配项放在提示词输入中,或按 `Esc` 取消。下面的步骤描述经典渲染器的内联搜索:290按 `Ctrl+R` 以交互方式搜索你的命令历史。在[全屏渲染](/docs/zh-CN/fullscreen)中,`Ctrl+R` 打开搜索对话框:输入以过滤,按 `Up` 和 `Down` 在匹配项中移动,按 `Ctrl+S` 循环切换范围(此会话、此项目和所有项目)。按 `Enter` 或 `Tab` 将匹配项放在提示词输入中,或按 `Esc` 取消。下面的步骤描述经典渲染器的内联搜索:


386* [`/effort`](/docs/zh-CN/model-config#adjust-effort-level):一旦您确认[缓存警告](/docs/zh-CN/prompt-caching#changing-effort-level)(如果 Claude Code 显示),Claude Code 会将您的更改应用于该轮次中它发出的下一个请求399* [`/effort`](/docs/zh-CN/model-config#adjust-effort-level):一旦您确认[缓存警告](/docs/zh-CN/prompt-caching#changing-effort-level)(如果 Claude Code 显示),Claude Code 会将您的更改应用于该轮次中它发出的下一个请求

387* [`/fast`](/docs/zh-CN/fast-mode#toggle-fast-mode):Claude Code 保持轮次开始时活跃的快速模式设置,因此您的速度更改从您的下一轮次应用。如果您当前的模型不支持快速模式,打开它也会[切换您的模型](/docs/zh-CN/prompt-caching#turning-on-fast-mode),Claude Code 会在该轮次中从其下一个请求使用新模型400* [`/fast`](/docs/zh-CN/fast-mode#toggle-fast-mode):Claude Code 保持轮次开始时活跃的快速模式设置,因此您的速度更改从您的下一轮次应用。如果您当前的模型不支持快速模式,打开它也会[切换您的模型](/docs/zh-CN/prompt-caching#turning-on-fast-mode),Claude Code 会在该轮次中从其下一个请求使用新模型

388 401 

402### 在有排队消息时将会话转入后台

403 

404当您[按 `←`](/docs/zh-CN/agent-view#switch-sessions-without-leaving-the-terminal) 后会话移到后台时,您排队的消息会随之移动。Claude 会在那里按您发送的顺序读取它们。

405 

406命令和 `!` shell 命令无法移动,某些消息也无法移动,例如附带了 [IDE 选择](/docs/zh-CN/vs-code#the-built-in-ide-mcp-server)的消息。如果您在其中任何一项处于排队状态时按 `←`,会话会保留在前台,并出现一条以 `Cannot open agents` 开头的通知。要将会话转入后台,请将该条目移出队列,然后再次按 `←`:

407 

408* **命令和 `!` shell 命令**:等待它们在轮次结束时运行,或[将其取回](#take-back-what-you-queued)并清除输入框。当有其他任何内容排队时,您无法取回 `!` shell 命令,因此请等待它们运行。

409* **无法移动的消息**:等待 Claude 读取它们

410 

389### 取回您排队的内容411### 取回您排队的内容

390 412 

391从输入框的第一行按 `Up` 以取回排队的消息和命令。Claude Code 将其从队列中移除并将其放在输入框中,每行一个,位于您输入的任何文本之前。编辑文本并按 `Enter` 以将其再次排队为一个条目,或清除输入框以丢弃它。413从输入框的第一行按 `Up` 以取回排队的消息和命令。Claude Code 将其从队列中移除并将其放在输入框中,每行一个,位于您输入的任何文本之前。编辑文本并按 `Enter` 以将其再次排队为一个条目,或清除输入框以丢弃它。

keybindings.md +23 −0

Details

446| :- | :- | :- |446| :- | :- | :- |

447| `settings:search` | / | 进入搜索模式 |447| `settings:search` | / | 进入搜索模式 |

448| `settings:retry` | R | 在错误时重试加载使用数据 |448| `settings:retry` | R | 在错误时重试加载使用数据 |

449| `settings:fixUsage` | F | 当 `/usage` 页脚提供修复时,将 Claude Code 可以应用的 [`/usage` 建议](/docs/zh-CN/costs#apply-recommendations-with-the-fix-shortcut) 发送到您的会话。需要 v2.1.305 或更高版本 |

449| `select:accept` | Enter, Space | 更改选定的设置或打开其子菜单 |450| `select:accept` | Enter, Space | 更改选定的设置或打开其子菜单 |

450| `confirm:no` | Escape | 关闭面板。更改已保存 |451| `confirm:no` | Escape | 关闭面板。更改已保存 |

451 452 


688 689 

689在 Claude 提出的问题的 `Other` 行中,vim 模式下按 Escape 不会立即取消该问题。除[屏幕阅读器模式](/docs/zh-CN/accessibility)外,每次聚焦该行时,它都会以 INSERT 模式开始。在 `Other` 行中按 Escape 时,该行会切换到 NORMAL 模式或丢弃输入到一半的 vim 命令,问题仍保持打开状态。在 NORMAL 模式下再次按 Escape 即可取消该问题。690在 Claude 提出的问题的 `Other` 行中,vim 模式下按 Escape 不会立即取消该问题。除[屏幕阅读器模式](/docs/zh-CN/accessibility)外,每次聚焦该行时,它都会以 INSERT 模式开始。在 `Other` 行中按 Escape 时,该行会切换到 NORMAL 模式或丢弃输入到一半的 vim 命令,问题仍保持打开状态。在 NORMAL 模式下再次按 Escape 即可取消该问题。

690 691 

692### 按一次键取消问题

693 

694要在 vim 模式下按一次键即可取消问题,请在 `Select` 上下文中将另一个键绑定到 `select:cancel`。在只能选择一个选项的问题中,您可以在 `Other` 行中以这种方式取消。在[屏幕阅读器模式](/docs/zh-CN/accessibility)下,或在可以选择多个选项的问题中,绑定的键不会取消问题,此时请改用 Escape 取消。

695 

696请选择一个需要配合 Ctrl 或 Alt 按下的键。单独的字母或数字会[输入到 `Other` 行](#text-fields)中,而不会触发您的绑定。例如,要绑定 `Ctrl+Q`,请将以下内容添加到 `~/.claude/keybindings.json`:

697 

698```json theme={null}

699{

700 "bindings": [

701 {

702 "context": "Select",

703 "bindings": {

704 "ctrl+q": "select:cancel"

705 }

706 }

707 ]

708}

709```

710 

711保存文件后,在只能选择一个选项的问题的 `Other` 行中按 `Ctrl+Q`。无论该行处于 INSERT 还是 NORMAL 模式,问题都会关闭。

712 

691## 验证713## 验证

692 714 

693Claude Code 验证您的快捷键并向调试日志写入以下警告:715Claude Code 验证您的快捷键并向调试日志写入以下警告:

694 716 

695* 解析错误(无效的 JSON 或结构)717* 解析错误(无效的 JSON 或结构)

696* 拼写错误的修饰符,例如 `ctl+k`。Claude Code 会删除它无法识别的部分,并将绑定应用于剩余的按键,在此示例中为 `k`。718* 拼写错误的修饰符,例如 `ctl+k`。Claude Code 会删除它无法识别的部分,并将绑定应用于剩余的按键,在此示例中为 `k`。

719* 按键字符串中 `+` 旁边有空格,例如 `ctrl+ k`。Claude Code 会将该字符串解读为由 `ctrl+` 后跟 `k` 组成的[组合键序列](#chords)。没有任何按键能单独匹配 `ctrl+`,因此该绑定永远不会触发。请删除该空格。

697* 无效的上下文名称720* 无效的上下文名称

698* 无效的操作值,例如不是字符串或 `null` 的操作721* 无效的操作值,例如不是字符串或 `null` 的操作

699* 未知的操作名称,例如注册操作的拼写错误。Claude Code 跳过该绑定并保持该键的任何默认绑定有效。722* 未知的操作名称,例如注册操作的拼写错误。Claude Code 跳过该绑定并保持该键的任何默认绑定有效。

Details

83要修剪已签入的文件,请运行 [`/doctor` 检查](/docs/zh-CN/memory#my-claude-md-is-too-large)。根 `CLAUDE.md` 包含在每个包中适用的规则:83要修剪已签入的文件,请运行 [`/doctor` 检查](/docs/zh-CN/memory#my-claude-md-is-too-large)。根 `CLAUDE.md` 包含在每个包中适用的规则:

84 84 

85```markdown CLAUDE.md theme={null}85```markdown CLAUDE.md theme={null}

86从包目录运行包脚本,而不是从 monorepo 根目录。86Run package scripts from the package directory, not the monorepo root.

87提交主题前缀为包名称,例如 `api: add rate limiting`。87Prefix commit subjects with the package name, for example `api: add rate limiting`.

88永远不要编辑 packages/*/generated/ 下的文件。改为在包中运行 `npm run codegen`。88Never edit files under packages/*/generated/. Run `npm run codegen` in the package instead.

89```89```

90 90 

91每个子目录的 `CLAUDE.md`,这里是 `packages/api/CLAUDE.md`,添加特定于该区域的约定:91每个子目录的 `CLAUDE.md`,这里是 `packages/api/CLAUDE.md`,添加特定于该区域的约定:

92 92 

93```markdown packages/api/CLAUDE.md theme={null}93```markdown packages/api/CLAUDE.md theme={null}

94在运行任何内容之前,将 `.env.example` 复制到 `.env`。没有它,测试和开发服务器会失败。94Copy `.env.example` to `.env` before running anything. Tests and the dev server fail without it.

95使用 Knex 查询构建器编写数据库查询。永远不要在路由处理程序中放置原始 SQL 字符串。95Write database queries with the Knex query builder. Never put raw SQL strings in route handlers.

96永远不要在迁移合并后编辑它。改为添加新迁移。96Never edit a migration after it has merged. Add a new migration instead.

97```97```

98 98 

99当你从 `packages/api/` 启动 Claude 时,它加载 `packages/api/CLAUDE.md` 和根 `CLAUDE.md`。Claude 看到本地指令与存储库范围的规则一起,上下文中没有来自 `packages/web/` 的指令。对于非 monorepo 树中的任何子目录也是如此。要确认加载了哪些文件,请运行 `/context` 并检查 **Memory files** 下的列表。99当你从 `packages/api/` 启动 Claude 时,它加载 `packages/api/CLAUDE.md` 和根 `CLAUDE.md`。Claude 看到本地指令与存储库范围的规则一起,上下文中没有来自 `packages/web/` 的指令。对于非 monorepo 树中的任何子目录也是如此。要确认加载了哪些文件,请运行 `/context` 并检查 **Memory files** 下的列表。


141* `"**/packages/legacy-*/**"`:排除每个名称与 glob 匹配的包,包括规则141* `"**/packages/legacy-*/**"`:排除每个名称与 glob 匹配的包,包括规则

142* `"/home/user/monorepo/legacy/CLAUDE.md"`:按绝对路径排除一个特定文件142* `"/home/user/monorepo/legacy/CLAUDE.md"`:按绝对路径排除一个特定文件

143 143 

144托管策略 CLAUDE.md 文件无法排除,因此组织范围的指令始终适用。你可以在任何[设置范围](/docs/zh-CN/settings#where-settings-live)设置 `claudeMdExcludes`:用户、项目、本地或托管。数组在范围内合并,所以团队可以设置项目级别的默认值,同时个人添加本地覆盖。144您可以在任何[设置作用域](/docs/zh-CN/settings#where-settings-live)设置 `claudeMdExcludes`:用户、项目、本地或托管。数组会跨作用域合并,因此团队可以设置项目级别的默认值,同时个人添加本地覆盖。如果您的组织部署了[托管 CLAUDE.md 文件](/docs/zh-CN/memory#deploy-organization-wide-claude-md),则无论由哪个作用域设置模式,与其匹配的模式都不会跳过它。

145 145 

146有关完整的排除文档,请参阅[排除特定 CLAUDE.md 文件](/docs/zh-CN/memory#exclude-specific-claude-md-files)。146有关完整的排除文档,请参阅[排除特定 CLAUDE.md 文件](/docs/zh-CN/memory#exclude-specific-claude-md-files)。

147 147 


349 349 

350不同的子目录以相同的方式保存不同的 skills:`packages/web/.claude/skills/component-patterns/` 描述前端的组件约定而不是测试。当 Claude 处理 `packages/api/` 中的文件时,它加载 api-testing skill。当它在 `packages/web/` 中工作时,它加载 component-patterns 代替。在另一个的任务期间,两个目录的 skills 都不加载。350不同的子目录以相同的方式保存不同的 skills:`packages/web/.claude/skills/component-patterns/` 描述前端的组件约定而不是测试。当 Claude 处理 `packages/api/` 中的文件时,它加载 api-testing skill。当它在 `packages/web/` 中工作时,它加载 component-patterns 代替。在另一个的任务期间,两个目录的 skills 都不加载。

351 351 

352你也可以按文件模式而不是按位置范围 skill。[`paths` frontmatter 字段](/docs/zh-CN/skills#frontmatter-reference)采用 glob 模式,Claude 仅在处理匹配文件时自动加载 skill。对于位于存储库根目录的 `.claude/skills/` 中但仅适用于某些文件(无论它们出现在哪里)的 skill,使用此功能,例如范围限于 `**/migrations/**` 的数据库迁移 skill。352您也可以按文件模式而不是按放置位置来限定 skill 的范围。[`paths` frontmatter 字段](/docs/zh-CN/skills#frontmatter-reference)采用 glob 模式,Claude 仅在处理匹配文件时自动加载 skill。对于位于仓库根目录的 `.claude/skills/` 中但仅适用于某些文件的 skill,可使用此功能,例如限定于 `**/migrations/**` 的数据库迁移 skill。

353 353 

354有关创建和组织 skills 的更多信息,请参阅 [Skills](/docs/zh-CN/skills)。354有关创建和组织 skills 的更多信息,请参阅 [Skills](/docs/zh-CN/skills)。

355 355 

Details

513| `Your apiKeyHelper script is failing`,或在非交互模式下 stderr 上的 `apiKeyHelper failed:` | [`apiKeyHelper`](/docs/zh-CN/settings-reference#apikeyhelper) 设置中的命令未生成可用的密钥,因此请求携带占位符密钥 | 直接运行该命令以查看失败原因,如果报告会话过期,请使用您的凭证提供商重新身份验证;请参阅[错误参考](/docs/zh-CN/errors#your-apikeyhelper-script-is-failing) |513| `Your apiKeyHelper script is failing`,或在非交互模式下 stderr 上的 `apiKeyHelper failed:` | [`apiKeyHelper`](/docs/zh-CN/settings-reference#apikeyhelper) 设置中的命令未生成可用的密钥,因此请求携带占位符密钥 | 直接运行该命令以查看失败原因,如果报告会话过期,请使用您的凭证提供商重新身份验证;请参阅[错误参考](/docs/zh-CN/errors#your-apikeyhelper-script-is-failing) |

514| 当没有任何东西在地址处应答时 `Connection refused — a firewall or proxy may be blocking it (ConnectionRefused)`,或当主机名无法解析时 `Can't reach the API server — check your internet or DNS (ENOTFOUND)`,通常在 Claude Code [使用退避重试](/docs/zh-CN/errors#automatic-retries)时的静默暂停之后。括号中的代码会变化;[Unable to connect to API](/docs/zh-CN/errors#unable-to-connect-to-api) 涵盖代码拼写和较早的措辞 | 没有任何东西在基础 URL 处应答:地址错误,或 VPN 或防火墙阻止了网关的路径 | 运行上面的 [curl 测试](#verify-the-connection),它会立即因相同原因失败,并与您的网关团队确认 URL 和网络路径 |514| 当没有任何东西在地址处应答时 `Connection refused — a firewall or proxy may be blocking it (ConnectionRefused)`,或当主机名无法解析时 `Can't reach the API server — check your internet or DNS (ENOTFOUND)`,通常在 Claude Code [使用退避重试](/docs/zh-CN/errors#automatic-retries)时的静默暂停之后。括号中的代码会变化;[Unable to connect to API](/docs/zh-CN/errors#unable-to-connect-to-api) 涵盖代码拼写和较早的措辞 | 没有任何东西在基础 URL 处应答:地址错误,或 VPN 或防火墙阻止了网关的路径 | 运行上面的 [curl 测试](#verify-the-connection),它会立即因相同原因失败,并与您的网关团队确认 URL 和网络路径 |

515| `API returned an empty or malformed response (HTTP 200)` | 网关或中间代理返回了非 API 响应,通常是 HTML 错误或登录页面 | 使用上面的 [curl 请求](#verify-the-connection)测试;修复返回非 Claude API 响应的网关路由。[错误参考](/docs/zh-CN/errors#api-returned-an-empty-or-malformed-response)解释了消息报告的详细信息 |515| `API returned an empty or malformed response (HTTP 200)` | 网关或中间代理返回了非 API 响应,通常是 HTML 错误或登录页面 | 使用上面的 [curl 请求](#verify-the-connection)测试;修复返回非 Claude API 响应的网关路由。[错误参考](/docs/zh-CN/errors#api-returned-an-empty-or-malformed-response)解释了消息报告的详细信息 |

516| `400` 错误命名 `context_management`、`Extra inputs are not permitted` 或其他无法识别的字段 | 网关将请求转发到上游,该上游拒绝 Claude Code 发送到 Anthropic 格式端点的字段 | 设置 `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`,它抑制大多数预发布字段;请参阅[功能传递](/docs/zh-CN/llm-gateway-protocol#feature-pass-through)。某些 beta 不受此标志限制;对于那些,设置匹配的 `CLAUDE_CODE_USE_*` 提供商变量,以便 Claude Code 仅发送该提供商接受的内容 |516| `400` 错误命名 `context_management`、`Extra inputs are not permitted` 或其他无法识别的字段 | 网关将请求转发到上游,该上游拒绝 Claude Code 发送到 Anthropic 格式端点的字段 | 设置 `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`,它抑制大多数预发布字段;请参阅[功能传递](/docs/zh-CN/llm-gateway-protocol#feature-pass-through)。某些 beta 不受此标志限制;对于那些,设置匹配的 `CLAUDE_CODE_USE_*` 提供商变量,以便 Claude Code 仅发送该提供商接受的内容。有关取决于消息所指字段的步骤,请参阅 [Extra inputs are not permitted](/docs/zh-CN/errors#extra-inputs-are-not-permitted) |

517| `400` 错误命名 `thinking` 或 `adaptive`,例如 `Input tag 'adaptive' found` | 上游模型构建不接受自适应推理,而 Claude Code 会为 Claude Opus 4.6、Claude Sonnet 4.6、Claude Haiku 5.5、Claude Fable 5 及更高版本的模型请求自适应推理 | 升级网关的上游。在 Opus 4.6 和 Sonnet 4.6 上,`CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1` 代替有效。[模型配置](/docs/zh-CN/model-config)能力变量仅适用于提供商配置,例如 `CLAUDE_CODE_USE_BEDROCK` 和 `CLAUDE_CODE_USE_VERTEX`,不在 `ANTHROPIC_BASE_URL` 网关后面 |517| `400` 错误命名 `thinking` 或 `adaptive`,例如 `Input tag 'adaptive' found` | 上游模型构建不接受自适应推理,而 Claude Code 会为 Claude Opus 4.6、Claude Sonnet 4.6、Claude Haiku 5.5、Claude Fable 5 及更高版本的模型请求自适应推理 | 升级网关的上游。在 Opus 4.6 和 Sonnet 4.6 上,`CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1` 代替有效。[模型配置](/docs/zh-CN/model-config)能力变量仅适用于提供商配置,例如 `CLAUDE_CODE_USE_BEDROCK` 和 `CLAUDE_CODE_USE_VERTEX`,不在 `ANTHROPIC_BASE_URL` 网关后面 |

518| `400` 错误声明网关自己的措辞中的上下文或令牌限制,例如 `ContextWindowExceededError` 或 `prompt token count of N exceeds the limit of M` | 网关强制执行比模型的本机窗口更小的上下文,并重写上游错误,因此 Claude Code 不会将其识别为[过长错误](/docs/zh-CN/errors#prompt-is-too-long),也不会自动紧凑和重试 | 运行 `/compact` 以恢复会话。要防止它,请将 `CLAUDE_CODE_AUTO_COMPACT_WINDOW` 设置为网关的限制;Claude Code 将该值限制在至少 100,000 令牌和最多模型的上下文窗口,因此您无法匹配低于 100,000 的网关限制,`/compact` 仍然是那里的恢复。还要将 `CLAUDE_CODE_MAX_OUTPUT_TOKENS` 设置为低于网关模型的输出限制 |518| `400` 错误声明网关自己的措辞中的上下文或令牌限制,例如 `ContextWindowExceededError` 或 `prompt token count of N exceeds the limit of M` | 网关强制执行比模型的本机窗口更小的上下文,并重写上游错误,因此 Claude Code 不会将其识别为[过长错误](/docs/zh-CN/errors#prompt-is-too-long),也不会自动紧凑和重试 | 运行 `/compact` 以恢复会话。要防止它,请将 `CLAUDE_CODE_AUTO_COMPACT_WINDOW` 设置为网关的限制;Claude Code 将该值限制在至少 100,000 令牌和最多模型的上下文窗口,因此您无法匹配低于 100,000 的网关限制,`/compact` 仍然是那里的恢复。还要将 `CLAUDE_CODE_MAX_OUTPUT_TOKENS` 设置为低于网关模型的输出限制 |

519| `400` 错误在每个请求上,在网关自己的措辞中拒绝工具的输入架构或其 `pattern`,在 Claude Code v2.1.265 到 v2.1.267 上 | 在这些版本的逐步推出中,[Artifact 工具](/docs/zh-CN/artifacts#availability)架构携带带有 `\p{...}` Unicode 字符类的正则表达式。Anthropic API 接受它,但检查每个工具架构的 `pattern` 的网关或上游使用其自己的正则表达式引擎拒绝整个请求 | 更新到 v2.1.268 或更高版本,它不发送正则表达式。在受影响的版本上,[关闭 artifacts](/docs/zh-CN/artifacts#disable-artifacts),这会从请求中删除工具及其架构 |519| `400` 错误在每个请求上,在网关自己的措辞中拒绝工具的输入架构或其 `pattern`,在 Claude Code v2.1.265 到 v2.1.267 上 | 在这些版本的逐步推出中,[Artifact 工具](/docs/zh-CN/artifacts#availability)架构携带带有 `\p{...}` Unicode 字符类的正则表达式。Anthropic API 接受它,但检查每个工具架构的 `pattern` 的网关或上游使用其自己的正则表达式引擎拒绝整个请求 | 更新到 v2.1.268 或更高版本,它不发送正则表达式。在受影响的版本上,[关闭 artifacts](/docs/zh-CN/artifacts#disable-artifacts),这会从请求中删除工具及其架构 |

Details

100| :- | :- | :- | :- |100| :- | :- | :- | :- |

101| 默认情况下请求中的模型 ID | 提供商的形式,例如 Amazon Bedrock 上的 `us.anthropic.claude-opus-4-8` | Anthropic ID,例如 `claude-opus-4-8` | Anthropic ID |101| 默认情况下请求中的模型 ID | 提供商的形式,例如 Amazon Bedrock 上的 `us.anthropic.claude-opus-4-8` | Anthropic ID,例如 `claude-opus-4-8` | Anthropic ID |

102| 发送的 `anthropic-beta` 值 | Amazon Bedrock 和 Agent Platform 接受的子集 | [功能传递](#feature-pass-through)下描述的完整集合,除非开发者设置 [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS`](#disable-pre-release-capabilities) | Amazon Bedrock 和 Agent Platform 接受的子集 |102| 发送的 `anthropic-beta` 值 | Amazon Bedrock 和 Agent Platform 接受的子集 | [功能传递](#feature-pass-through)下描述的完整集合,除非开发者设置 [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS`](#disable-pre-release-capabilities) | Amazon Bedrock 和 Agent Platform 接受的子集 |

103| Claude Code 无法识别的模型 ID(例如网关别名)的请求字段 | 使用固定预算的思考而不是自适应推理,以及没有努力或上下文管理字段 | 当前 Claude 模型在 Claude API 上接受的所有内容,包括自适应推理、努力和上下文管理,Amazon Bedrock 或 Agent Platform 上游可能会拒绝 | 与 Amazon Bedrock 或 Agent Platform 格式相同 |103| Claude Code 无法识别的模型 ID(例如网关别名)的请求字段 | 使用固定预算的思考而不是自适应推理,以及没有努力或上下文管理字段。Claude Code 仍会发送[对话中途的系统消息](#feature-pass-through) | 当前 Claude 模型在 Claude API 上接受的所有内容,包括自适应推理、努力和上下文管理,Amazon Bedrock 或 Agent Platform 上游可能会拒绝 | 与 Amazon Bedrock 或 Agent Platform 格式相同 |

104| 开发者选择加入时的一小时 [prompt cache TTL](/docs/zh-CN/prompt-caching#choose-the-ttl-yourself) | 通过 `cache_control` 中的 `ttl` 字段请求,没有 beta 值 | 通过 `ttl` 字段加上 `anthropic-beta` 中的 `extended-cache-ttl` 值请求,您必须转发 | 请参阅 Claude apps gateway [可用性和限制](/docs/zh-CN/claude-apps-gateway#availability-and-limitations) 表 |104| 开发者选择加入时的一小时 [prompt cache TTL](/docs/zh-CN/prompt-caching#choose-the-ttl-yourself) | 通过 `cache_control` 中的 `ttl` 字段请求,没有 beta 值 | 通过 `ttl` 字段加上 `anthropic-beta` 中的 `extended-cache-ttl` 值请求,您必须转发 | 请参阅 Claude apps gateway [可用性和限制](/docs/zh-CN/claude-apps-gateway#availability-and-limitations) 表 |

105| [后台任务](/docs/zh-CN/costs#background-token-usage) 的模型,除非 `ANTHROPIC_DEFAULT_HAIKU_MODEL` 固定一个 | 默认 Sonnet 模型,或选择主模型后的主模型,如 [Amazon Bedrock](/docs/zh-CN/amazon-bedrock#4-pin-model-versions) 和 [Agent Platform](/docs/zh-CN/google-vertex-ai#5-pin-model-versions) 页面所述 | 主模型,或当 `ANTHROPIC_API_KEY` 或 `apiKeyHelper` 提供 Anthropic Console 密钥且 `ANTHROPIC_AUTH_TOKEN` 未设置时的默认 Haiku 模型 | 主模型 |105| [后台任务](/docs/zh-CN/costs#background-token-usage) 的模型,除非 `ANTHROPIC_DEFAULT_HAIKU_MODEL` 固定一个 | 默认 Sonnet 模型,或选择主模型后的主模型,如 [Amazon Bedrock](/docs/zh-CN/amazon-bedrock#4-pin-model-versions) 和 [Agent Platform](/docs/zh-CN/google-vertex-ai#5-pin-model-versions) 页面所述 | 主模型,或当 `ANTHROPIC_API_KEY` 或 `apiKeyHelper` 提供 Anthropic Console 密钥且 `ANTHROPIC_AUTH_TOKEN` 未设置时的默认 Haiku 模型 | 主模型 |

106 106 


207 207 

208Claude Code 将 `ANTHROPIC_BASE_URL` gateway 视为 Anthropic 格式端点,并向其发送它发送到 `api.anthropic.com` 的 beta 请求头和请求体字段,除了为直接连接保留的一小组诊断和默认值,例如下面涵盖的细粒度工具流式传输默认值。该集合因版本而异,因此不要依赖其内容。208Claude Code 将 `ANTHROPIC_BASE_URL` gateway 视为 Anthropic 格式端点,并向其发送它发送到 `api.anthropic.com` 的 beta 请求头和请求体字段,除了为直接连接保留的一小组诊断和默认值,例如下面涵盖的细粒度工具流式传输默认值。该集合因版本而异,因此不要依赖其内容。

209 209 

210添加请求体字段的功能将它们与 beta 请求头配对,该对一起传递。删除请求头同时传递请求体的 gateway,或将 Anthropic 格式请求体转发到具有不同架构的上游,会产生硬 `400` 错误;只有当两个部分一起缺失时,功能才会安静地关闭。重写或编辑请求体以进行内容检查的 gateway 会以与删除相同的方式破坏配对,因此在不修改的情况下检查。该表注明了功能偏离配对的位置。

211 

212细粒度工具流式传输是直接连接默认值之一:每当请求通过自定义基础 URL 路由时,它默认关闭,当开发者设置 [`CLAUDE_CODE_ENABLE_FINE_GRAINED_TOOL_STREAMING=1`](/docs/zh-CN/env-vars) 时,gateway 会接收它。210细粒度工具流式传输是直接连接默认值之一:每当请求通过自定义基础 URL 路由时,它默认关闭,当开发者设置 [`CLAUDE_CODE_ENABLE_FINE_GRAINED_TOOL_STREAMING=1`](/docs/zh-CN/env-vars) 时,gateway 会接收它。

213 211 

212### Beta 请求头与请求体字段对

213 

214添加请求体字段的功能将它们与 beta 请求头配对,该对一起传递。删除请求头同时传递请求体的网关,或将 Anthropic 格式请求体转发到具有不同 schema 的上游,会产生 `400` 错误。当两个部分一起缺失时,功能会安静地关闭。

215 

216重写或编辑请求体以进行内容检查的网关会以与删除相同的方式破坏配对,因此请在不修改的情况下检查。该表注明了功能偏离配对的位置。

217 

214| 功能 | 请求头和请求体对 | 破坏时的症状 | 补救 |218| 功能 | 请求头和请求体对 | 破坏时的症状 | 补救 |

215| :- | :- | :- | :- |219| :- | :- | :- | :- |

216| [自适应推理](/docs/zh-CN/model-config#adjust-effort-level) | 无 beta 请求头。Claude Code 为 Claude Opus 4.6、Claude Sonnet 4.6、Claude Haiku 5.5、Claude Fable 5 及更高版本的模型发送 `thinking: {"type": "adaptive"}`,并将它不识别的模型名称(如 gateway 别名)视为接收该字段的当前模型 | 当上游模型构建不接受它时,命名 `thinking` 字段或 `adaptive` 标签的 `400` | 升级上游。在 Opus 4.6 和 Sonnet 4.6 上,开发者可以改为设置 `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1` |220| [自适应推理](/docs/zh-CN/model-config#adjust-effort-level) | 无 beta 请求头。Claude Code 为 Claude Opus 4.6、Claude Sonnet 4.6、Claude Haiku 5.5、Claude Fable 5 及更高版本的模型发送 `thinking: {"type": "adaptive"}`,并将它不识别的模型名称(如 gateway 别名)视为接收该字段的当前模型 | 当上游模型构建不接受它时,命名 `thinking` 字段或 `adaptive` 标签的 `400` | 升级上游。在 Opus 4.6 和 Sonnet 4.6 上,开发者可以改为设置 `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1` |

217| [上下文管理](https://platform.claude.com/docs/en/build-with-claude/context-editing) | 上下文管理 beta 请求头与 `context_management` 请求体字段配对 | `400` 带有 `Extra inputs are not permitted`。常见于网关接受 Anthropic 格式请求但将其转发到 Amazon Bedrock 时 | 转发两者,或 [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](#disable-pre-release-capabilities) |221| [上下文管理](https://platform.claude.com/docs/en/build-with-claude/context-editing) | 上下文管理 beta 请求头与 `context_management` 请求体字段配对 | `400` 带有 `Extra inputs are not permitted`。常见于网关接受 Anthropic 格式请求但将其转发到 Amazon Bedrock 时。在 v2.1.304 或更高版本上,Claude Code 会[自行在不带该对的情况下重试](#automatic-retry-and-error-forwarding) | 转发两者,或 [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](#disable-pre-release-capabilities) |

218| [扩展上下文](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model)和[交错思考](https://platform.claude.com/docs/en/build-with-claude/extended-thinking#interleaved-thinking) | 仅 Beta 请求头,无请求体字段 | 当请求头被删除时无声地不可用;上游永远不会看到功能请求 | 逐字转发 `anthropic-beta` |222| [扩展上下文](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model)和[交错思考](https://platform.claude.com/docs/en/build-with-claude/extended-thinking#interleaved-thinking) | 仅 Beta 请求头,无请求体字段 | 当请求头被删除时无声地不可用;上游永远不会看到功能请求 | 逐字转发 `anthropic-beta` |

219| Beta [工具字段](https://platform.claude.com/docs/en/agents-and-tools/tool-use/overview) | 工具相关的 beta 请求头与工具架构字段(如 `strict` 和 `defer_loading`)配对 | 当请求体通过而没有其请求头时,命名无法识别的工具架构字段的 `400` | 转发两者,或 [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](#disable-pre-release-capabilities) |223| Beta [工具字段](https://platform.claude.com/docs/en/agents-and-tools/tool-use/overview) | 工具相关的 beta 请求头与工具 schema 字段(如 `strict` 和 `defer_loading`)配对 | 当请求体通过而没有其请求头时,命名无法识别的工具 schema 字段的 `400`。关于 `defer_loading`,请参阅[不带工具搜索的重试](#retry-without-tool-search) | 转发两者,或 [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](#disable-pre-release-capabilities) |

220| [努力](https://platform.claude.com/docs/en/build-with-claude/effort)和[结构化输出](https://platform.claude.com/docs/en/build-with-claude/structured-outputs) | `output_config` 请求体字段携带努力、结构化输出格式和任务预算设置;每个都与自己的 beta 请求头配对 | 在 Amazon Bedrock 和 Google Cloud 的 Agent Platform 上游上命名 `output_config` 的 `400`,通常是 `Extra inputs are not permitted` | 一起转发该字段及其请求头,或让开发者设置 [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](#disable-pre-release-capabilities),这会移除格式和任务预算设置,但不会移除努力。若只想移除格式,开发者可以改为设置 [`CLAUDE_CODE_DISABLE_STRUCTURED_OUTPUTS=1`](/docs/zh-CN/env-vars),这需要 v2.1.288 或更高版本 |224| [努力](https://platform.claude.com/docs/en/build-with-claude/effort)和[结构化输出](https://platform.claude.com/docs/en/build-with-claude/structured-outputs) | `output_config` 请求体字段携带努力、结构化输出格式和任务预算设置;每个都与自己的 beta 请求头配对 | 在 Amazon Bedrock 和 Google Cloud 的 Agent Platform 上游上命名 `output_config` 的 `400`,通常是 `Extra inputs are not permitted` | 一起转发该字段及其请求头,或让开发者设置 [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](#disable-pre-release-capabilities),这会移除格式和任务预算设置,但不会移除努力。若只想移除格式,开发者可以改为设置 [`CLAUDE_CODE_DISABLE_STRUCTURED_OUTPUTS=1`](/docs/zh-CN/env-vars),这需要 v2.1.288 或更高版本 |

225| 对话中途的系统消息 | 无 beta 请求头。对于 Claude Opus 4.8、在其之后发布的模型以及无法识别的模型 ID,Claude Code 会将部分提醒和附件文本作为 `messages` 中的 `role: "system"` 条目发送 | `400`,例如 `Unexpected role "system"` | Claude Code 会[在不带系统消息的情况下重试](#automatic-retry-and-error-forwarding)。若要在 Claude Opus 4.8 之前发布的模型的别名上停止系统消息,请在您分发的设置中添加 [`modelOverrides` 条目](#settings-for-unrecognized-model-ids) |

226| [按轮次设置的努力](/docs/zh-CN/prompt-caching#changing-effort-level) | 在 Opus 5.5、Sonnet 5.5、Haiku 5.5 和 Fable 5.1 上,beta 请求头与 `role: "system"` 条目上的 `output_config.effort` 配对,这些条目可以是系统消息,也可以是内容为空的条目 | 当您的网关从空条目中删除该字段时,出现带有 `messages.N: system content must contain at least one block` 的 `400` | 转发两者,或让开发者设置 [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](#disable-pre-release-capabilities) 以停止发送该字段和空条目 |

221| [提示缓存](/docs/zh-CN/prompt-caching) | 无 beta 配对。Claude Code 将 `cache_control` 标记附加到 `system` 块和 `messages` 条目,包括在对话中途附加的 `role: "system"` 条目 | 无错误:对话在每个回合都作为未缓存的输入计费,在 `usage` 中可见为高 `input_tokens` 且缓存活动很少或没有 | 在任何地方原封不动地转发 `cache_control`,并且不要将块形式的 `system` 或消息内容转换为纯字符串 |227| [提示缓存](/docs/zh-CN/prompt-caching) | 无 beta 配对。Claude Code 将 `cache_control` 标记附加到 `system` 块和 `messages` 条目,包括在对话中途附加的 `role: "system"` 条目 | 无错误:对话在每个回合都作为未缓存的输入计费,在 `usage` 中可见为高 `input_tokens` 且缓存活动很少或没有 | 在任何地方原封不动地转发 `cache_control`,并且不要将块形式的 `system` 或消息内容转换为纯字符串 |

222| [令牌计数](https://platform.claude.com/docs/en/build-with-claude/token-counting) | 无 beta 配对;使用 `count_tokens` 端点 | 无错误:Claude Code 回退到基于字符的估计,因此 `/context` 显示近似计数 | 公开该端点以获得精确的令牌计数 |228| [令牌计数](https://platform.claude.com/docs/en/build-with-claude/token-counting) | 无 beta 配对;使用 `count_tokens` 端点 | 无错误:Claude Code 回退到基于字符的估计,因此 `/context` 显示近似计数 | 公开该端点以获得精确的令牌计数 |

223 229 


225 231 

226### 自动重试和错误转发232### 自动重试和错误转发

227 233 

228Claude Code 在上游拒绝后的操作取决于被拒绝的内容:234当上游拒绝其中某项功能时,Claude Code 可以自行重试请求,并移除或更改被拒绝的部分:

229 235 

230* 当上游拒绝 `thinking` 字段、中途对话系统消息或这些消息之一上的 `cache_control` 标记时,Claude Code 会重试请求并为对话的其余部分禁用被拒绝的功能236* 当 `400` 表明不支持 `thinking.type` 值 `enabled` 或 `adaptive` 时,Claude Code 会改用另一种类型重试一次,并保留 `thinking` 字段。在 Claude Code 退出之前,发往该模型的后续请求会保持切换后的类型。在 v2.1.121 之前,Claude Code 不会重试,因此 [`thinking.type.enabled is not supported`](/docs/zh-CN/errors#thinking-type-enabled-is-not-supported-for-this-model) 会到达开发者

237* 当上游拒绝 `messages` 中的 `role: "system"` 条目时,Claude Code 会在不带这些对话中途系统消息的情况下重试一次,并改为在用户消息中携带其文本。在开发者运行 `/clear` 或对话被压缩之前,该对话中的后续请求会保持这种形式

238* 当上游仅拒绝对话中途系统消息上的 `cache_control` 标记时,Claude Code 会保留系统消息,并在移动该标记后重试一次。该标记会放在 `messages` 中最后一个非系统消息的条目上,在该次重试以及 Claude Code 退出之前的后续请求中均是如此

231* 当上游拒绝[思考签名](https://platform.claude.com/docs/en/build-with-claude/extended-thinking)时,包括带有 `400` 的拒绝,其消息说该块被 `bound to a different conversation`,Claude Code 会从请求中删除早期思考块,重试,并将其排除在每个后续请求之外。新响应仍然包括思考239* 当上游拒绝[思考签名](https://platform.claude.com/docs/en/build-with-claude/extended-thinking)时,包括带有 `400` 的拒绝,其消息说该块被 `bound to a different conversation`,Claude Code 会从请求中删除早期思考块,重试,并将其排除在每个后续请求之外。新响应仍然包括思考

232* 当 gateway 或其上游将[顾问工具](/docs/zh-CN/advisor)条目在 `tools` 中拒绝为无法识别的工具类型时,Claude Code 会重试一次请求,不包含该条目及其 `anthropic-beta` 值。对该基础 URL 的后续请求会将顾问排除在外,直到 Claude Code 退出,在该时间内 `/advisor` 对开发者不可用。Claude Code 通过 `400` 或 `422` 响应识别此拒绝,其消息在 `Input tag` 之后命名工具类型,例如 `Input tag 'advisor_20260301'`。在 v2.1.280 之前,Claude Code 没有重试此拒绝240* 当 gateway 或其上游将[顾问工具](/docs/zh-CN/advisor)条目在 `tools` 中拒绝为无法识别的工具类型时,Claude Code 会重试一次请求,不包含该条目及其 `anthropic-beta` 值。对该基础 URL 的后续请求会将顾问排除在外,直到 Claude Code 退出,在该时间内 `/advisor` 对开发者不可用。Claude Code 通过 `400` 或 `422` 响应识别此拒绝,其消息在 `Input tag` 之后命名工具类型,例如 `Input tag 'advisor_20260301'`。在 v2.1.280 之前,Claude Code 没有重试此拒绝

233* 当上游拒绝 `output_config.effort` 时,Claude Code 会在不带努力的情况下重试请求,并在 Claude Code 退出之前,在发往该模型的后续请求中省略它。Claude Code 通过 `400` 响应识别此拒绝,其消息同时命名 `output_config.effort` 和 `Extra inputs are not permitted`,或说明该模型不支持 effort 参数241* 当上游拒绝 `output_config.effort` 时,Claude Code 会在不带努力的情况下重试请求,并在 Claude Code 退出之前,在发往该模型的后续请求中省略它。Claude Code 通过 `400` 响应识别此拒绝,其消息同时命名 `output_config.effort` 和 `Extra inputs are not permitted`,或说明该模型不支持 effort 参数

234* Claude Code 不重试上下文管理或工具架构字段拒绝,因此这些 `400` 错误到达开发者242* 当上游拒绝 `context_management` 字段或其 `anthropic-beta` 值时,网关会再次收到不带它们的该请求。如果网关在后续请求中再次看到它们且上游再次拒绝,则会进行同样的重试。Claude Code 通过消息识别此拒绝,例如包含 `context_management: Extra inputs are not permitted` 的消息。在 v2.1.304 之前,Claude Code 没有重试此拒绝

243* 当上游拒绝 `defer_loading` 以外的 beta 工具字段(例如 `strict`)时,`400` 会到达开发者。在此之前,网关可能会再次收到[不带工具搜索字段](#retry-without-tool-search)的该请求。若要停止发送此类字段,请让开发者设置 [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](#disable-pre-release-capabilities)

235 244 

236`bound to a different conversation` 拒绝来自 API 的[保留思考](https://platform.claude.com/docs/en/build-with-claude/preserved-thinking)检查,当 `system`、`tools` 或早期 `messages` 内容与产生思考的请求不同时,该检查失败。重写任何该内容的 gateway 可能会导致拒绝本身;[库、代理和网关](https://platform.claude.com/docs/en/build-with-claude/preserved-thinking#libraries-proxies-gateways)涵盖了要原封不动地传递的内容。245`bound to a different conversation` 拒绝来自 API 的[保留思考](https://platform.claude.com/docs/en/build-with-claude/preserved-thinking)检查,当 `system`、`tools` 或早期 `messages` 内容与产生思考的请求不同时,该检查失败。重写任何该内容的 gateway 可能会导致拒绝本身;[库、代理和网关](https://platform.claude.com/docs/en/build-with-claude/preserved-thinking#libraries-proxies-gateways)涵盖了要原封不动地传递的内容。

237 246 

238重试逻辑与上游的错误措辞匹配,因此原封不动地转发错误响应体。将上游错误包装在自己的信封中的 gateway 会破坏恢复路径,即使它保留了状态代码,除非信封的消息携带稳定的 `capability_rejected:` 令牌。[Claude apps gateway 为云提供商的错误措辞替换这些令牌](/docs/zh-CN/claude-apps-gateway-config#upstream-error-messages),例如 `capability_rejected: prompt_too_long`。247大部分重试逻辑与上游的错误措辞匹配,因此请原封不动地转发错误响应体。将上游错误包装在自己的信封中的网关会破坏恢复路径,即使它保留了状态代码,除非信封的消息携带稳定的 `capability_rejected:` 标记。[Claude apps gateway 用这些标记替换云提供商的错误措辞](/docs/zh-CN/claude-apps-gateway-config#upstream-error-messages),例如 `capability_rejected: prompt_too_long`。

248 

249#### 不带工具搜索的重试

250 

251在 v2.1.305 或更高版本上,携带 [`defer_loading` 字段和 `tool_reference` 块](/docs/zh-CN/mcp#tool-search-through-a-gateway)的请求,在出现 Claude Code 无法识别原因的 `400` 或 `422` 之后,可能会不带它们再次到达。重试成功后,后续请求也会省略它们。

252 

253开发者的请求无需对网关做任何更改即可继续正常工作,其 MCP 工具会预先加载。Claude Code 稍后会再次尝试工具搜索,因此网关可能会再次看到被拒绝的请求及其后的重试。若要在所有请求中都排除这些字段,请让开发者设置 `ENABLE_TOOL_SEARCH=false`。对于工具搜索本身,Claude Code 期望网关将 `defer_loading` 字段和 `tool_reference` 块连同其 `anthropic-beta` 值一起转发。

239 254 

240### 禁用预发布功能255### 禁用预发布功能

241 256 


250该变量不会删除所有 `anthropic-beta` 值。它保留的内容包括:265该变量不会删除所有 `anthropic-beta` 值。它保留的内容包括:

251 266 

252* 扩展上下文、交错思考和努力的 `anthropic-beta` 值,云提供商也接受这些值267* 扩展上下文、交错思考和努力的 `anthropic-beta` 值,云提供商也接受这些值

253* `output_config.effort` 字段。[自动重试和错误转发](#automatic-retry-and-error-forwarding)介绍了上游拒绝它的情况268* 顶层的 `output_config.effort` 字段。[自动重试和错误转发](#automatic-retry-and-error-forwarding)介绍了上游拒绝它的情况

254* 自适应推理的 `thinking` 字段,它没有 beta 请求头269* 自适应推理的 `thinking` 字段,它没有 beta 请求头

270* 携带[对话中途系统消息](#feature-pass-through)的 `role: "system"` 条目

255* 订阅身份验证所需的 OAuth `anthropic-beta` 值271* 订阅身份验证所需的 OAuth `anthropic-beta` 值

256* 开发者通过 [`ANTHROPIC_BETAS`](/docs/zh-CN/env-vars) 或 [`CLAUDE_CODE_EXTRA_BODY`](/docs/zh-CN/env-vars) 自行添加的请求头值和请求体字段272* 开发者通过 [`ANTHROPIC_BETAS`](/docs/zh-CN/env-vars) 或 [`CLAUDE_CODE_EXTRA_BODY`](/docs/zh-CN/env-vars) 自行添加的请求头值和请求体字段

257 273 

Details

86 * **在完整 VM 沙箱中**:当您的 Claude Desktop 托管配置设置 [`requireCoworkFullVmSandbox`](https://claude.com/docs/third-party/claude-desktop/configuration#requirecoworkfullvmsandbox) 时,Claude Code 在虚拟机内运行,其中设备的 MDM 策略和托管设置文件不存在。86 * **在完整 VM 沙箱中**:当您的 Claude Desktop 托管配置设置 [`requireCoworkFullVmSandbox`](https://claude.com/docs/third-party/claude-desktop/configuration#requirecoworkfullvmsandbox) 时,Claude Code 在虚拟机内运行,其中设备的 MDM 策略和托管设置文件不存在。

87 * **远程协作会话**:这些在 Anthropic 托管的虚拟机上运行,其中 Claude Code 没有设备策略可读。87 * **远程协作会话**:这些在 Anthropic 托管的虚拟机上运行,其中 Claude Code 没有设备策略可读。

88 88 

89 无论会话在何处运行,claude.ai 在任何人从 claude.ai 上的 git 存储库或从协作选项卡中的**自定义**添加市场时,都会自行应用管理控制台的 [`strictKnownMarketplaces`](/docs/zh-CN/settings-reference#strictknownmarketplaces) 和 [`blockedMarketplaces`](/docs/zh-CN/settings-reference#blockedmarketplaces) 列表。[限制如何工作](/docs/zh-CN/plugins/org#restrict-what-users-can-install)描述了该检查。[表面覆盖](/docs/zh-CN/model-config#surface-coverage)表比较了协作与其他表面。89 无论会话在何处运行,claude.ai 在任何人从 claude.ai 上的 git 仓库或从 Cowork 中的 **Customize** 添加市场时,都会自行应用管理控制台的 [`strictKnownMarketplaces`](/docs/zh-CN/settings-reference#strictknownmarketplaces) 和 [`blockedMarketplaces`](/docs/zh-CN/settings-reference#blockedmarketplaces) 列表。[限制如何工作](/docs/zh-CN/plugins/org#restrict-what-users-can-install)描述了该检查。[使用入口覆盖范围](/docs/zh-CN/model-config#surface-coverage)表比较了 Cowork 与其他使用入口。

90* **运行会话**:大多数更改在[交付机制表](#choose-a-delivery-mechanism)中的计划上到达运行会话,无需重启。90* **运行会话**:大多数更改在[交付机制表](#choose-a-delivery-mechanism)中的计划上到达运行会话,无需重启。

91 * 对 [`forceRemoteSettingsRefresh`](/docs/zh-CN/settings-reference#forceremotesettingsrefresh)、[`requiredMinimumVersion`](/docs/zh-CN/settings-reference#requiredminimumversion) 和[某些用户可编辑密钥](/docs/zh-CN/settings#when-edits-take-effect)的更改在下一个会话启动时生效。91 * 对 [`forceRemoteSettingsRefresh`](/docs/zh-CN/settings-reference#forceremotesettingsrefresh)、[`requiredMinimumVersion`](/docs/zh-CN/settings-reference#requiredminimumversion) 和[某些用户可编辑密钥](/docs/zh-CN/settings#when-edits-take-effect)的更改在下一个会话启动时生效。

92 * 新的或更改的 [`policyHelper`](/docs/zh-CN/settings-reference#policyhelper) 条目在下一次启动时生效。如果服务器托管设置在该启动时遮蔽了助手,助手会在获取报告这些设置被删除时立即运行。92 * 新的或更改的 [`policyHelper`](/docs/zh-CN/settings-reference#policyhelper) 条目在下一次启动时生效。如果服务器托管设置在该启动时遮蔽了助手,助手会在获取报告这些设置被删除时立即运行。

mcp.md +31 −7

Details

302如果您的请求需要来自仍在后台连接的服务器的工具,Claude 会在继续之前等待该服务器。等待的方式取决于您的配置:302如果您的请求需要来自仍在后台连接的服务器的工具,Claude 会在继续之前等待该服务器。等待的方式取决于您的配置:

303 303 

304* **使用 [工具搜索](#scale-with-mcp-tool-search)(默认)**:等待发生在 `ToolSearch` 调用内。304* **使用 [工具搜索](#scale-with-mcp-tool-search)(默认)**:等待发生在 `ToolSearch` 调用内。

305* **不使用工具搜索**:Claude 改为使用 `WaitForMcpServers` 工具。不使用工具搜索的配置包括自定义 `ANTHROPIC_BASE_URL`、`ENABLE_TOOL_SEARCH=false`,以及 Google Cloud 的 Agent Platform 上早于 Claude Opus 4.5、Claude Sonnet 4.5 和 Claude Haiku 4.5 的模型。305* **不使用工具搜索**:Claude 改为使用 `WaitForMcpServers` 工具。不使用工具搜索的配置包括 `ENABLE_TOOL_SEARCH=false`,以及 Google Cloud 的 Agent Platform 上早于 Claude Opus 4.5、Claude Sonnet 4.5 和 Claude Haiku 4.5 的模型。对于 `ANTHROPIC_BASE_URL` 网关,请参阅 [通过 LLM 网关使用工具搜索](#tool-search-through-a-gateway)。

306* **在 Microsoft Foundry [部署托管在 Azure 上](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options)**:Claude 在工具搜索路径上启动而不是使用 `WaitForMcpServers`,因为 Claude Code 仅从 API 发现部署的服务器端拒绝。Claude Code 将该部署切换到 [前期加载](#scale-with-mcp-tool-search) 后,来自完成连接的服务器的工具在 Claude 的下一个请求中变为可用。306* **在 Microsoft Foundry [部署托管在 Azure 上](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options)**:Claude 在工具搜索路径上启动而不是使用 `WaitForMcpServers`,因为 Claude Code 仅从 API 发现部署的服务器端拒绝。Claude Code 将该部署切换到 [前期加载](#scale-with-mcp-tool-search) 后,来自完成连接的服务器的工具在 Claude 的下一个请求中变为可用。

307 307 

308启用工具搜索后,当服务器在 Claude 工作时完成连接时,Claude Code 在同一轮次的下一个请求中将服务器的工具名称列出给 Claude。Claude 然后可以搜索和调用这些工具,而无需等待您的下一条消息。308启用工具搜索后,当服务器在 Claude 工作时完成连接时,Claude Code 在同一轮次的下一个请求中将服务器的工具名称列出给 Claude。Claude 然后可以搜索和调用这些工具,而无需等待您的下一条消息。


509 509 

510插件服务器在 `/mcp` 中出现,并带有表明它们来自插件的指示器。510插件服务器在 `/mcp` 中出现,并带有表明它们来自插件的指示器。

511 511 

512对于插件的 stdio 服务器,`claude mcp get` 打印 `Command: stdio`、空的 `Args:` 行,并将每个环境变量显示为 `NAME=[REDACTED]`。值被隐藏,因为它们可能携带凭据。512`claude mcp get` 会隐藏为插件的 stdio 或 WebSocket 服务器配置的值,因为这些值可能携带凭据:

513 

514* **stdio 服务器**:它打印 `Command: stdio`、空的 `Args:` 行,并将每个环境变量显示为 `NAME=[REDACTED]`

515* **WebSocket 服务器**:它打印 `URL: ws`,并将每个标头显示为 `<name>: [REDACTED]`,`claude mcp list` 则显示 `ws` 来代替 URL

516 

517要查看插件配置了什么,请 [在磁盘上找到插件](/docs/zh-CN/plugins/loading#find-plugins-on-disk) 并阅读其 `.mcp.json` 或 `plugin.json`。

513 518 

514**插件 MCP 工具名称**:519**插件 MCP 工具名称**:

515 520 


592 597 

593出于安全原因,Claude Code 在交互式会话中使用来自 `.mcp.json` 文件的项目范围的服务器之前会提示批准。要重置这些批准选择,请运行 `claude mcp reset-project-choices`。598出于安全原因,Claude Code 在交互式会话中使用来自 `.mcp.json` 文件的项目范围的服务器之前会提示批准。要重置这些批准选择,请运行 `claude mcp reset-project-choices`。

594 599 

595在 `claude -p` 运行、[Agent SDK](/docs/zh-CN/headless) 会话和[云会话](/docs/zh-CN/claude-code-on-the-web)中,Claude Code 无法显示该提示:它加载项目范围的服务器而不询问。Claude Code 还会在您以 `bypassPermissions` 模式启动的会话中跳过提示,其中用户设置或托管设置中设置了 [`skipDangerousModePermissionPrompt`](/docs/zh-CN/settings-reference#skipdangerousmodepermissionprompt)。要无论如何保持服务器不加载:600在 `claude -p` 运行、[Agent SDK](/docs/zh-CN/headless) 会话以及[项目](/docs/zh-CN/claude-projects#what-threads-pick-up-from-your-repositories)之外的[云端会话](/docs/zh-CN/claude-code-on-the-web)中,Claude Code 无法显示该提示:它加载项目范围的服务器而不询问。Claude Code 还会在您以 `bypassPermissions` 模式启动的会话中跳过提示,其中用户设置或托管设置中设置了 [`skipDangerousModePermissionPrompt`](/docs/zh-CN/settings-reference#skipdangerousmodepermissionprompt)。要无论如何保持服务器不加载:

596 601 

597* 将其添加到 [`disabledMcpjsonServers`](/docs/zh-CN/settings-reference#disabledmcpjsonservers),这会在每个权限模式中阻止它。602* 将其添加到 [`disabledMcpjsonServers`](/docs/zh-CN/settings-reference#disabledmcpjsonservers),这会在每个权限模式中阻止它。

598* 使用 [`--setting-sources`](/docs/zh-CN/cli-reference#cli-flags) 或 SDK 的 `settingSources` 选项完全排除项目设置。603* 使用 [`--setting-sources`](/docs/zh-CN/cli-reference#cli-flags) 或 SDK 的 `settingSources` 选项完全排除项目设置。


1483 1488 

1484### 配置工具搜索1489### 配置工具搜索

1485 1490 

1486工具搜索默认启用:MCP 工具被延迟并按需发现。当 `ANTHROPIC_BASE_URL` 指向非第一方主机时,Claude Code 会禁用它,因为大多数代理不转发 `tool_reference` 块。设置 `ENABLE_TOOL_SEARCH` 显式覆盖该回退。1491工具搜索默认启用:MCP 工具被延迟并按需发现。

1487 1492 

1488设置 [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS`](/docs/zh-CN/env-vars) 保持工具搜索关闭。您无法通过自己设置 `ENABLE_TOOL_SEARCH` 来覆盖它。在 Claude Code v2.1.227 或更高版本上,您的组织可以通过[托管设置](/docs/zh-CN/managed-settings)在设置此变量的情况下保持工具搜索开启。在[获得 HIPAA 配置](/docs/zh-CN/hipaa-setup#check-how-developers-sign-in-and-connect)的会话中,工具搜索处于关闭状态,`ENABLE_TOOL_SEARCH` 和托管设置都无法将其重新开启。[禁用预发布功能](/docs/zh-CN/llm-gateway-protocol#disable-pre-release-capabilities) 涵盖了覆盖应用的位置以及变量剥离的内容。1493设置 [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS`](/docs/zh-CN/env-vars) 保持工具搜索关闭。您无法通过自己设置 `ENABLE_TOOL_SEARCH` 来覆盖它。在 Claude Code v2.1.227 或更高版本上,您的组织可以通过[托管设置](/docs/zh-CN/managed-settings)在设置此变量的情况下保持工具搜索开启。在[获得 HIPAA 配置](/docs/zh-CN/hipaa-setup#check-how-developers-sign-in-and-connect)的会话中,工具搜索处于关闭状态,`ENABLE_TOOL_SEARCH` 和托管设置都无法将其重新开启。[禁用预发布功能](/docs/zh-CN/llm-gateway-protocol#disable-pre-release-capabilities) 涵盖了覆盖应用的位置以及变量剥离的内容。

1489 1494 


1500 1505 

1501| 值 | 行为 |1506| 值 | 行为 |

1502| :- | :- |1507| :- | :- |

1503| (未设置) | 所有 MCP 工具延迟并按需加载。在早于 Opus 4 和 Sonnet 4 的模型上、在 Google Cloud 的 Agent Platform 上早于 Opus 4.5、Sonnet 4.5 和 Haiku 4.5 的模型上、当 `ANTHROPIC_BASE_URL` 是非第一方主机时,或在部署在 Azure 上的 Microsoft Foundry 部署上,回退到预先加载 |1508| (未设置) | 所有 MCP 工具延迟并按需加载。在早于 Opus 4 和 Sonnet 4 的模型上、在[早期 Agent Platform 模型](#configure-tool-search)上,以及在部署在 Azure 上的 Microsoft Foundry 部署上,改为预先加载 |

1504| `true` | 当 `ANTHROPIC_BASE_URL` 是非第一方主机时,MCP 工具保持延迟。其他(未设置)情况下的回退仍然适用。Claude Code 通过代理发送 beta 标头,在不支持 `tool_reference` 块的代理上请求失败 |1509| `true` | MCP 工具延迟,回退情况与(未设置)相同 |

1505| `auto` | 阈值模式:Claude Code 预先加载它本来会延迟的工具,同时它们的定义总计少于上下文窗口的 10%,一旦定义达到 10% 就延迟所有工具 |1510| `auto` | 阈值模式。原本会被延迟的工具在其定义总计少于上下文窗口的 10% 时预先加载。达到 10% 或更多时,工具搜索会开启,即使总量之后降至 10% 以下,这些工具也可能[保持延迟](#tools-that-stay-deferred-below-the-threshold) |

1506| `auto:N` | 具有自定义百分比的阈值模式,其中 `N` 是 0-100。例如,`auto:5` 表示 5% |1511| `auto:N` | 具有自定义百分比的阈值模式,其中 `N` 是 0-100。例如,`auto:5` 表示 5% |

1507| `false` | 所有 MCP 工具预先加载,无延迟 |1512| `false` | 所有 MCP 工具预先加载,无延迟 |

1508 1513 


1526}1531}

1527```1532```

1528 1533 

1534如果您拒绝 `ToolSearch` 或未将其包含在 [`--tools`](/docs/zh-CN/cli-reference#cli-flags) 中,MCP 工具会改为预先加载,但请求仍可能携带一个占位的 `defer_loading` 条目。如果网关拒绝该条目,请参阅[通过 LLM 网关使用工具搜索](#tool-search-through-a-gateway)。

1535 

1536#### 通过 LLM 网关使用工具搜索

1537 

1538> [!NOTE]

1539>

1540> 以下情况在其他地方介绍:

1541>

1542> * **您已设置 `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS`**:请参阅[它如何影响工具搜索](#configure-tool-search)

1543> * **请求失败,且错误中提到 `defer_loading` 或 `tool_reference`**:请参阅 [Extra inputs are not permitted](/docs/zh-CN/errors#extra-inputs-are-not-permitted)

1544 

1545当 `ANTHROPIC_BASE_URL` 指向网关时,工具搜索默认开启,因此请求会包含 `defer_loading` 工具字段和 `tool_reference` 块,供网关转发。工具搜索开启时,MCP 工具会被[延迟](#scale-with-mcp-tool-search)。如需改为预先加载所有工具,请在 shell 或您的 [settings `env`](/docs/zh-CN/settings-reference#env) 中设置 `ENABLE_TOOL_SEARCH=false`。在 v2.1.304 之前,在网关后面工具搜索处于关闭状态,除非 `ENABLE_TOOL_SEARCH` 为 `true`、`auto` 或 `auto:N`。

1546 

1547在 v2.1.305 或更高版本上,当出现原因无法识别的 `400` 或 `422` 时,Claude Code 可以[在不使用工具搜索的情况下重试请求](/docs/zh-CN/llm-gateway-protocol#retry-without-tool-search)。重试成功时,屏幕上不会显示任何内容,您也无需执行任何操作:MCP 工具会改为预先加载。Claude Code 稍后会再次尝试工具搜索,代价是再产生一次被拒绝的请求。要跳过这些请求,请设置 `ENABLE_TOOL_SEARCH=false`。

1548 

1549#### 低于 `ENABLE_TOOL_SEARCH=auto` 阈值时仍保持延迟的工具

1550 

1551如果 [`/context`](/docs/zh-CN/commands#all-commands) 将工具标记为 `(deferred)` 或 `(loaded on-demand)`,尽管它们的定义总计低于 `auto` 阈值,这说明工具搜索在此对话中已经开启并保持开启。总量之后可能会下降,例如在您恢复会话后 MCP 服务器重新连接期间。您无需执行任何操作:当任务需要时,Claude 会加载其中的每个工具。

1552 

1529### 豁免服务器不延迟1553### 豁免服务器不延迟

1530 1554 

1531如果服务器的工具应该始终对 Claude 可见而无需搜索步骤,请在该服务器的配置中将 `alwaysLoad` 设置为 `true`。之后,该服务器的工具会加载到上下文中,无论 `ENABLE_TOOL_SEARCH` 设置如何。对于 Claude 在每一轮都需要的少量工具使用此选项,因为每个预先加载的工具会消耗本来可用于您的对话的上下文。1555如果服务器的工具应该始终对 Claude 可见而无需搜索步骤,请在该服务器的配置中将 `alwaysLoad` 设置为 `true`。之后,该服务器的工具会加载到上下文中,无论 `ENABLE_TOOL_SEARCH` 设置如何。对于 Claude 在每一轮都需要的少量工具使用此选项,因为每个预先加载的工具会消耗本来可用于您的对话的上下文。

Details

278* **Claude Code 桌面应用**:通过[连接器 UI](/docs/zh-CN/desktop#connect-external-tools)添加服务器。278* **Claude Code 桌面应用**:通过[连接器 UI](/docs/zh-CN/desktop#connect-external-tools)添加服务器。

279* **Claude 桌面聊天应用**:与 Claude Code 不同的应用。要将其 `claude_desktop_config.json` 中的服务器复制到 CLI,请在 macOS 或 WSL 上运行 `claude mcp add-from-claude-desktop`。279* **Claude 桌面聊天应用**:与 Claude Code 不同的应用。要将其 `claude_desktop_config.json` 中的服务器复制到 CLI,请在 macOS 或 WSL 上运行 `claude mcp add-from-claude-desktop`。

280* **VS Code**:请参阅[使用 MCP 连接到外部工具](/docs/zh-CN/vs-code#connect-to-external-tools-with-mcp)。280* **VS Code**:请参阅[使用 MCP 连接到外部工具](/docs/zh-CN/vs-code#connect-to-external-tools-with-mcp)。

281* **云会话**:将 `.mcp.json` 提交到您的存储库;一个包含一个存储库的会话会加载它。请参阅[直接编辑 .mcp.json](#edit-mcp-json-directly) 和[您的设置中保留的内容](/docs/zh-CN/cloud-environments#what-carries-over-from-your-setup)。281* **云端会话**:在[项目](/docs/zh-CN/claude-projects#what-threads-pick-up-from-your-repositories)之外,将 `.mcp.json` 提交到您的仓库;包含一个仓库的会话会加载它。项目中的云端线程则改用您的 claude.ai 连接器。请参阅[直接编辑 .mcp.json](#edit-mcp-json-directly) 和[您的设置中保留的内容](/docs/zh-CN/cloud-environments#what-carries-over-from-your-setup)。

282* **Claude.ai**:您在 [claude.ai/customize/connectors](https://claude.ai/customize/connectors) 添加的连接器在您使用该帐户登录 CLI 时自动加载。请参阅[从 Claude.ai 使用 MCP 服务器](/docs/zh-CN/mcp#use-mcp-servers-from-claude-ai)。282* **Claude.ai**:您在 [claude.ai/customize/connectors](https://claude.ai/customize/connectors) 添加的连接器在您使用该帐户登录 CLI 时自动加载。请参阅[从 Claude.ai 使用 MCP 服务器](/docs/zh-CN/mcp#use-mcp-servers-from-claude-ai)。

283 283 

284## 故障排除284## 故障排除

memory.md +10 −5

Details

208 208 

209没有 `paths` 字段的规则无条件加载并适用于所有文件。当 Claude 对匹配的文件使用 Read、Write 或 Edit 工具时,路径范围规则会加载。当 Claude 使用[算作读取](/docs/zh-CN/tools-reference#edit-tool-behavior)的 Bash 命令查看匹配的文件时(例如对单个文件使用 `cat` 或 `head`),该规则也会加载。当 Claude 通过项目目录的符号链接路径到达文件时,匹配也有效,例如在符号链接检出中。209没有 `paths` 字段的规则无条件加载并适用于所有文件。当 Claude 对匹配的文件使用 Read、Write 或 Edit 工具时,路径范围规则会加载。当 Claude 使用[算作读取](/docs/zh-CN/tools-reference#edit-tool-behavior)的 Bash 命令查看匹配的文件时(例如对单个文件使用 `cat` 或 `head`),该规则也会加载。当 Claude 通过项目目录的符号链接路径到达文件时,匹配也有效,例如在符号链接检出中。

210 210 

211每个模式都相对于规则的基准目录:

212 

213* **项目规则**:包含该规则所在 `.claude` 文件夹的目录

214* **[用户级规则](#user-level-rules)**:会话的[主工作目录](/docs/zh-CN/permissions#working-directories)

215 

216要让路径范围规则为同级 git worktree 中的文件加载,请在该 worktree 中启动 Claude Code,或[使用 `/cd` 将会话移至该处](/docs/zh-CN/permissions#move-the-session-to-another-directory)。

217 

211在 `paths` 字段中使用 glob 模式按扩展名、目录或任何组合匹配文件:218在 `paths` 字段中使用 glob 模式按扩展名、目录或任何组合匹配文件:

212 219 

213| 模式 | 匹配 |220| 模式 | 匹配 |


279 286 

280#### 部署组织范围的 CLAUDE.md287#### 部署组织范围的 CLAUDE.md

281 288 

282组织可以部署一个集中管理的 CLAUDE.md,适用于机器上的所有用户。此文件无法通过个人设置排除。289组织可以部署一个集中管理的 CLAUDE.md,适用于机器上的所有用户。开发者可以使用 `claudeMdExcludes` 设置[排除其他 CLAUDE.md 文件](#exclude-specific-claude-md-files),但无法排除此文件。如果开发者在完全关闭 CLAUDE.md 加载的情况下启动会话,该会话也不会加载托管内容。请将此文件用于指导,并使用 `permissions.deny` 等[托管设置](/docs/zh-CN/managed-settings)来强制执行规则。

283 290 

284**1. 在托管策略位置创建文件**291**1. 在托管策略位置创建文件**

285 292 


293 300 

294`claudeMd` 键允许您将托管 CLAUDE.md 内容直接放入 `managed-settings.json` 中,而不是部署单独的文件。301`claudeMd` 键允许您将托管 CLAUDE.md 内容直接放入 `managed-settings.json` 中,而不是部署单独的文件。

295 302 

296**作用域**:机器上的每个 Claude Code 会话,在每个仓库中。对于仓库特定的指导,改为提交项目 CLAUDE.md。303**作用域**:机器上的所有用户,在任何仓库中。对于仓库特定的指导,改为提交项目 CLAUDE.md。

297 304 

298**优先级**:与托管 CLAUDE.md 文件相同。在用户和项目 CLAUDE.md 之前加载。305**优先级**:与托管 CLAUDE.md 文件相同。在用户和项目 CLAUDE.md 之前加载。

299 306 


323 330 

324#### 排除特定的 CLAUDE.md 文件331#### 排除特定的 CLAUDE.md 文件

325 332 

326在大型 monorepos 中,祖先 CLAUDE.md 文件可能包含与您的工作无关的指令。`claudeMdExcludes` 设置允许您按路径或 glob 模式跳过特定文件。333在大型 monorepos 中,祖先 CLAUDE.md 文件可能包含与您的工作无关的指令。`claudeMdExcludes` 设置允许您按路径或 glob 模式跳过特定文件。您无法使用 `claudeMdExcludes` 排除[托管 CLAUDE.md 文件](#deploy-organization-wide-claude-md)。

327 334 

328此示例排除顶级 CLAUDE.md 和来自父文件夹的规则目录。将其添加到 `.claude/settings.local.json` 以使排除保持本地到您的机器:335此示例排除顶级 CLAUDE.md 和来自父文件夹的规则目录。将其添加到 `.claude/settings.local.json` 以使排除保持本地到您的机器:

329 336 


340 347 

341要排除您通过 [symlink](#share-rules-across-projects-with-symlinks) 到达的规则文件,无论文件还是其目录是链接,请针对任一路径编写模式:文件在 `.claude/rules/` 下的路径或其链接目标。匹配任一路径的模式排除文件。在 v2.1.239 之前,仅匹配链接目标的模式排除文件。348要排除您通过 [symlink](#share-rules-across-projects-with-symlinks) 到达的规则文件,无论文件还是其目录是链接,请针对任一路径编写模式:文件在 `.claude/rules/` 下的路径或其链接目标。匹配任一路径的模式排除文件。在 v2.1.239 之前,仅匹配链接目标的模式排除文件。

342 349 

343托管策略 CLAUDE.md 文件无法排除。这确保组织范围指令始终适用,无论个人设置如何。

344 

345## AGENTS.md350## AGENTS.md

346 351 

347Claude Code 可以将 [`AGENTS.md`](/docs/zh-CN/glossary#agents-md) 作为您的项目说明读取,因此已为其他编码代理设置的存储库无需添加 `CLAUDE.md`、导入或设置即可工作。此表显示了存储库中指令文件的每种组合下 Claude 默认读取的内容:352Claude Code 可以将 [`AGENTS.md`](/docs/zh-CN/glossary#agents-md) 作为您的项目说明读取,因此已为其他编码代理设置的存储库无需添加 `CLAUDE.md`、导入或设置即可工作。此表显示了存储库中指令文件的每种组合下 Claude 默认读取的内容:

model-config.md +6 −2

Details

441 441 

442您的组织可以通过两种方式限制[工作量级别](#adjust-effort-level)。在 Claude Enterprise 计划中,组织管理员设置按角色的工作量限制,如下所述。在任何计划和任何提供商上,包括 Amazon Bedrock、Google Cloud 的 Agent Platform 和 Microsoft Foundry,[`maxEffortLevel`](/docs/zh-CN/settings-reference#maxeffortlevel) 托管设置在客户端上限制工作量。当两者都适用于某个模型时,较低的限制适用。442您的组织可以通过两种方式限制[工作量级别](#adjust-effort-level)。在 Claude Enterprise 计划中,组织管理员设置按角色的工作量限制,如下所述。在任何计划和任何提供商上,包括 Amazon Bedrock、Google Cloud 的 Agent Platform 和 Microsoft Foundry,[`maxEffortLevel`](/docs/zh-CN/settings-reference#maxeffortlevel) 托管设置在客户端上限制工作量。当两者都适用于某个模型时,较低的限制适用。

443 443 

444Claude Enterprise 计划上的组织管理员可以为每个自定义角色按模型设置最大[工作量级别](#adjust-effort-level),以及角色级别的[组织模型限制](#organization-model-restrictions)。超过限制的级别不会在 `/effort` 选择器中提供,使用 `--effort` 或 `/effort` 命名更高级别会以限制级别运行。在交互式会话和纯文本 `--print` 运行中,警告会命名请求的和应用的级别;使用 `json` 或 `stream-json` 输出或在后台代理中,限制会静默应用。限制是按模型的,因此切换模型可以改变哪些级别可用。当您的多个角色授予相同的模型时,最不严格的限制适用。需要 Claude Code v2.1.195 或更高版本。444Claude Enterprise 计划上的组织管理员可以为每个自定义角色按模型设置最大 [effort 级别](#adjust-effort-level),以及角色级别的[组织模型限制](#organization-model-restrictions)。需要 Claude Code v2.1.195 或更高版本。

445 

446* 超过限制的级别不会在 `/effort` 选择器中提供,使用 `--effort` 或 `/effort` 指定更高级别时会改为以限制级别运行。如果您使用高于限制的 `--effort` 启动纯文本 `--print` 运行,stderr 上的警告会指出请求的级别和实际应用的级别。在交互式会话中、使用 `json` 或 `stream-json` 输出时,或在后台 Agent 中,该警告会改为写入[调试日志](/docs/zh-CN/errors#configuration-warnings)。

447* 限制是按模型的,因此切换模型可能会改变哪些级别可用。

448* 当您的多个角色授予相同的模型时,最不严格的限制适用。

445 449 

446工作量限制与[组织模型限制](#organization-model-restrictions)一起交付,并到达相同的会话。450工作量限制与[组织模型限制](#organization-model-restrictions)一起交付,并到达相同的会话。

447 451 


843* 如果 Claude Code 无法将提供商或自定义拼写解析为它识别的模型,且 ID 不包含 `[1m]`,则变量直接应用,主动压缩在声明的窗口处继续。847* 如果 Claude Code 无法将提供商或自定义拼写解析为它识别的模型,且 ID 不包含 `[1m]`,则变量直接应用,主动压缩在声明的窗口处继续。

844* 如果 Claude Code 无法将提供商或自定义拼写解析为它识别的模型,且 ID 包含 `[1m]`(任何大小写),Claude Code 为其假设 1M 窗口,变量本身不适用。要在保持主动压缩的同时更正窗口,还要设置 [`CLAUDE_CODE_DISABLE_1M_CONTEXT=1`](/docs/zh-CN/env-vars)。设置该变量后,Claude Code 会像相同拼写但不带 `[1m]` 一样调整 ID 的大小,所以当 `CLAUDE_CODE_MAX_CONTEXT_TOKENS` 适用于该无标记拼写时,它就会应用。848* 如果 Claude Code 无法将提供商或自定义拼写解析为它识别的模型,且 ID 包含 `[1m]`(任何大小写),Claude Code 为其假设 1M 窗口,变量本身不适用。要在保持主动压缩的同时更正窗口,还要设置 [`CLAUDE_CODE_DISABLE_1M_CONTEXT=1`](/docs/zh-CN/env-vars)。设置该变量后,Claude Code 会像相同拼写但不带 `[1m]` 一样调整 ID 的大小,所以当 `CLAUDE_CODE_MAX_CONTEXT_TOKENS` 适用于该无标记拼写时,它就会应用。

845 849 

846 使用声明的窗口大于 200K 时,Claude Code 会显示一个[启动警告](/docs/zh-CN/errors#the-200k-limit-isnt-enforced),表示 200K 限制未被强制执行。此配置中的警告是预期的。850 当声明的窗口大于 200K 时,在此配置中出现[200K 限制未被强制执行](/docs/zh-CN/errors#the-200k-limit-isnt-enforced)的警告是预期的。

847* 如果 ID 解析为 Claude Code 识别的模型,或 ID 是没有 Claude Code 要剥离的后缀的裸 `claude-` 名称(任何大小写),变量仅在您也设置 [`DISABLE_COMPACT`](/docs/zh-CN/env-vars) 时生效,这会禁用所有压缩。851* 如果 ID 解析为 Claude Code 识别的模型,或 ID 是没有 Claude Code 要剥离的后缀的裸 `claude-` 名称(任何大小写),变量仅在您也设置 [`DISABLE_COMPACT`](/docs/zh-CN/env-vars) 时生效,这会禁用所有压缩。

848 852 

849 例如,包含 Claude Code 知道的 Claude 模型名称的 ID(例如 `anthropic/claude-opus-4-8`、`us.anthropic.claude-…-v1:0` 或带日期的 `claude-sonnet-4-5@20250929`)解析为该模型。这包括也包含 `[1m]` 的 ID:即使设置了 `CLAUDE_CODE_DISABLE_1M_CONTEXT`,Claude Code 也会将 `claude-opus-4-8[1m]` 解析为 Opus 4.8。853 例如,包含 Claude Code 知道的 Claude 模型名称的 ID(例如 `anthropic/claude-opus-4-8`、`us.anthropic.claude-…-v1:0` 或带日期的 `claude-sonnet-4-5@20250929`)解析为该模型。这包括也包含 `[1m]` 的 ID:即使设置了 `CLAUDE_CODE_DISABLE_1M_CONTEXT`,Claude Code 也会将 `claude-opus-4-8[1m]` 解析为 Opus 4.8。

Details

220| `claude.ai` | claude.ai 账户身份验证 |220| `claude.ai` | claude.ai 账户身份验证 |

221| `claude.com` | claude.ai 账户登录在浏览器中打开 `claude.com` 页面,该页面重定向到 `claude.ai`;预先批准的 WebFetch 文档查询也从 CLI 访问此主机 |221| `claude.com` | claude.ai 账户登录在浏览器中打开 `claude.com` 页面,该页面重定向到 `claude.ai`;预先批准的 WebFetch 文档查询也从 CLI 访问此主机 |

222| `platform.claude.com` | Anthropic Console 账户身份验证。OAuth 令牌交换、刷新和撤销也会转到此主机以用于 claude.ai 账户,因此 Console 和 claude.ai 登录都需要它 |222| `platform.claude.com` | Anthropic Console 账户身份验证。OAuth 令牌交换、刷新和撤销也会转到此主机以用于 claude.ai 账户,因此 Console 和 claude.ai 登录都需要它 |

223| `sso.claude.com` | 使用单点登录(SSO)的组织的浏览器登录流程的一部分。如果代理阻止此主机,这些登录可能会失败 |

223| `mcp-proxy.anthropic.com` | [来自 claude.ai 的 MCP 连接器](/docs/zh-CN/mcp#use-mcp-servers-from-claude-ai),包括组织管理员配置的连接器。连接器流量通过此代理路由;对于 claude.ai 认证用户,连接器默认启用。要停止 Claude Code 获取它们,请设置 [`ENABLE_CLAUDEAI_MCP_SERVERS=false`](/docs/zh-CN/env-vars) 或 [`disableClaudeAiConnectors`](/docs/zh-CN/settings-reference#disableclaudeaiconnectors) 设置 |224| `mcp-proxy.anthropic.com` | [来自 claude.ai 的 MCP 连接器](/docs/zh-CN/mcp#use-mcp-servers-from-claude-ai),包括组织管理员配置的连接器。连接器流量通过此代理路由;对于 claude.ai 认证用户,连接器默认启用。要停止 Claude Code 获取它们,请设置 [`ENABLE_CLAUDEAI_MCP_SERVERS=false`](/docs/zh-CN/env-vars) 或 [`disableClaudeAiConnectors`](/docs/zh-CN/settings-reference#disableclaudeaiconnectors) 设置 |

224| `downloads.claude.ai` | 插件可执行文件下载;本机安装程序、本机自动更新程序和更新版本检查 |225| `downloads.claude.ai` | 插件可执行文件下载;本机安装程序、本机自动更新程序和更新版本检查 |

225| `storage.googleapis.com` | `/plugin` 中显示的插件安装计数和元数据 |226| `storage.googleapis.com` | `/plugin` 中显示的插件安装计数和元数据 |

overview.md +5 −5

Details

26 26 

27**macOS、Linux、WSL:**27**macOS、Linux、WSL:**

28 28 

29```bash theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null}29```bash theme={null}

30curl -fsSL https://claude.ai/install.sh | bash30curl -fsSL https://claude.ai/install.sh | bash

31```31```

32 32 


34 34 

35**Windows PowerShell:**35**Windows PowerShell:**

36 36 

37```powershell theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null}37```powershell theme={null}

38irm https://claude.ai/install.ps1 | iex38irm https://claude.ai/install.ps1 | iex

39```39```

40 40 

41**Windows CMD:**41**Windows CMD:**

42 42 

43```batch theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null}43```batch theme={null}

44curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd44curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd

45```45```

46 46 


58 58 

59**Homebrew**59**Homebrew**

60 60 

61```bash theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null}61```bash theme={null}

62brew install --cask claude-code62brew install --cask claude-code

63```63```

64 64 


70 70 

71**WinGet**71**WinGet**

72 72 

73```powershell theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null}73```powershell theme={null}

74winget install Anthropic.ClaudeCode74winget install Anthropic.ClaudeCode

75```75```

76 76 

Details

172 172 

173请观察此片段中状态栏的变化,该会话以自动模式启动。每次按下 `Shift+Tab`,状态栏都会从 `auto mode on` 依次变为 `manual mode on`、`accept edits on`、`plan mode on`,然后回到 `auto mode on`。173请观察此片段中状态栏的变化,该会话以自动模式启动。每次按下 `Shift+Tab`,状态栏都会从 `auto mode on` 依次变为 `manual mode on`、`accept edits on`、`plan mode on`,然后回到 `auto mode on`。

174 174 

175<video autoPlay muted loop playsInline src="https://mintcdn.com/claude-code/oa7CKjMeIChox26S/images/permission-modes-cycle-light.mp4?fit=max&auto=format&n=oa7CKjMeIChox26S&q=85&s=198ca90aeb2e3675b3d01b7d686aab0b" aria-label="每次按下 Shift+Tab,Claude Code 输入框下方的状态栏都会变化:auto mode on、manual mode on、accept edits on、plan mode on,然后再次变为 auto mode on。" />175<video autoPlay muted loop playsInline src="https://mintcdn.com/claude-code/tA-x-5L2YsYSVdee/images/permission-modes-cycle-light.mp4?fit=max&auto=format&n=tA-x-5L2YsYSVdee&q=85&s=3927dd62d59b01efd81b3578f2a6f971" aria-label="每次按下 Shift+Tab,Claude Code 输入框下方的状态栏都会变化:auto mode on、manual mode on、accept edits on、plan mode on,然后再次变为 auto mode on。" />

176 176 

177并非每个模式都在默认循环中:177并非每个模式都在默认循环中:

178 178 


236* **Auto**:当[自动模式可用](#eliminate-prompts-with-auto-mode)时出现236* **Auto**:当[自动模式可用](#eliminate-prompts-with-auto-mode)时出现

237* **Bypass permissions**:在 Pro 和 Max 计划上需要 Desktop 设置中的**Allow bypass permissions mode**切换;在 Team 和 Enterprise 计划上,组织策略控制它237* **Bypass permissions**:在 Pro 和 Max 计划上需要 Desktop 设置中的**Allow bypass permissions mode**切换;在 Team 和 Enterprise 计划上,组织策略控制它

238 238 

239Cowork 选项卡不使用这些模式。Cowork 有自己的权限模式,单独启用,Cowork 选项卡在为您的账户启用超出其默认值的模式之前不显示模式选择器。请参阅 [Cowork 文档](https://claude.com/docs/cowork/overview)。239Cowork 不使用这些模式。它有自己的权限模式,需单独启用;在为您的账户启用超出其默认值的模式之前,它根本不显示模式选择器。请参阅 [Cowork 文档](https://claude.com/docs/cowork/overview)。

240 240 

241有关 desktop 特定的详细信息,请参阅 Desktop 指南中的[选择权限模式](/docs/zh-CN/desktop#choose-a-permission-mode)。241有关 desktop 特定的详细信息,请参阅 Desktop 指南中的[选择权限模式](/docs/zh-CN/desktop#choose-a-permission-mode)。

242 242 


579>579>

580> 您安装的处理 `tool.check` 的 [mod](/docs/zh-CN/plugins/mods/overview) 也可以批准操作。有关其批准无法越过您的规则和 hook 的情况,请参阅[使用 hook 扩展权限](/docs/zh-CN/permissions#precedence-among-rules-hooks-and-mods)。580> 您安装的处理 `tool.check` 的 [mod](/docs/zh-CN/plugins/mods/overview) 也可以批准操作。有关其批准无法越过您的规则和 hook 的情况,请参阅[使用 hook 扩展权限](/docs/zh-CN/permissions#precedence-among-rules-hooks-and-mods)。

581>581>

582> 在 VS Code 扩展中,[Claude in Chrome](/docs/zh-CN/chrome) 浏览器操作如何获得批准取决于会话连接到浏览器的方式:请参阅 [VS Code 会话中的权限提示](/docs/zh-CN/chrome#permission-prompts-in-vs-code-sessions)。582> 有关在 VS Code 扩展中 [Claude in Chrome](/docs/zh-CN/chrome) 浏览器操作如何获得批准,请参阅 [VS Code 会话中的权限提示](/docs/zh-CN/chrome#permission-prompts-in-vs-code-sessions)。

583>583>

584> 进入自动模式时,授予任意代码执行能力的宽泛 allow 规则会被丢弃:584> 进入自动模式时,授予任意代码执行能力的宽泛 allow 规则会被丢弃:

585>585>


667* **如果您接受**:Claude Code 在 `~/.claude/settings.json` 中将 `skipDangerousModePermissionPrompt` 设置为 `true`,因此后续会话会跳过对话框。要再次看到对话框,请从该文件中删除该键或将其设置为 `false`。[`skipDangerousModePermissionPrompt` 参考](/docs/zh-CN/settings-reference#skipdangerousmodepermissionprompt)列出了您或您的组织可以设置它的其他设置文件。667* **如果您接受**:Claude Code 在 `~/.claude/settings.json` 中将 `skipDangerousModePermissionPrompt` 设置为 `true`,因此后续会话会跳过对话框。要再次看到对话框,请从该文件中删除该键或将其设置为 `false`。[`skipDangerousModePermissionPrompt` 参考](/docs/zh-CN/settings-reference#skipdangerousmodepermissionprompt)列出了您或您的组织可以设置它的其他设置文件。

668* **如果您拒绝**:Claude Code 退出。668* **如果您拒绝**:Claude Code 退出。

669 669 

670在[非交互模式](/docs/zh-CN/headless)中不显示对话框。当您的接受记录在用户设置或托管设置中时,[后台会话](/docs/zh-CN/agent-view)会遵循该接受:670在[非交互模式](/docs/zh-CN/headless)中不显示对话框。

671 

672当您的接受记录在用户设置或托管设置中时,[后台会话](/docs/zh-CN/agent-view)会遵循该接受:

673 

674* 如果没有记录接受,`claude --bg --permission-mode bypassPermissions` 会被拒绝。请先在交互式会话中接受对话框。

675* 如果 `skipDangerousModePermissionPrompt` 仅在 `.claude/settings.local.json` 中设置,后台会话启动时会[忽略绕过请求](#bypass-permissions-ignored-in-a-background-session):

671 676 

672* 如果没有记录接受,`claude --bg --permission-mode bypassPermissions` 会被拒绝,直到您在交互式会话中接受对话框。

673* 如果 `skipDangerousModePermissionPrompt` 仅在 `.claude/settings.local.json` 中设置,后台会话启动时会忽略绕过请求,并固定显示通知 `Bypass permissions was requested at launch and ignored · if that was you, ~/.claude/settings.json needs "skipDangerousModePermissionPrompt": true`。请将该键添加到 `~/.claude/settings.json`,然后启动新的后台会话。显示该通知的会话仍会运行:

674 * 如果 `--allow-dangerously-skip-permissions` 被忽略,`bypassPermissions` 不会出现在其 `Shift+Tab` 循环中。677 * 如果 `--allow-dangerously-skip-permissions` 被忽略,`bypassPermissions` 不会出现在其 `Shift+Tab` 循环中。

675 * 如果 `--permission-mode bypassPermissions` 或 `--dangerously-skip-permissions` 被忽略,会话改为以手动模式启动。678 * 如果 `--permission-mode bypassPermissions` 或 `--dangerously-skip-permissions` 被忽略,会话改为以手动模式启动。

676 679 

680 请将 `"skipDangerousModePermissionPrompt": true` 添加到 `~/.claude/settings.json`,然后启动新的后台会话。

681 

677在 Linux 和 macOS 上,当以 root 身份或在 `sudo` 下运行时,Claude Code 拒绝以 `bypassPermissions` 模式启动:682在 Linux 和 macOS 上,当以 root 身份或在 `sudo` 下运行时,Claude Code 拒绝以 `bypassPermissions` 模式启动:

678 683 

679```text theme={null}684```text theme={null}


688>693>

689> `bypassPermissions` 不提供针对提示词注入或意外操作的保护。对于权限提示少得多的后台安全检查,请改用[自动模式](#eliminate-prompts-with-auto-mode)。管理员可以通过在[托管设置](/docs/zh-CN/managed-settings)中将 `permissions.disableBypassPermissionsMode` 设置为 `"disable"` 来阻止此模式。694> `bypassPermissions` 不提供针对提示词注入或意外操作的保护。对于权限提示少得多的后台安全检查,请改用[自动模式](#eliminate-prompts-with-auto-mode)。管理员可以通过在[托管设置](/docs/zh-CN/managed-settings)中将 `permissions.disableBypassPermissionsMode` 设置为 `"disable"` 来阻止此模式。

690 695 

696### 后台会话中忽略了绕过权限

697 

698此通知表示[后台会话](/docs/zh-CN/agent-view)未在用户设置或托管设置中找到您对[绕过权限警告](#bypass-permissions-acceptance)的接受,因此忽略了启动时发出的绕过请求:

699 

700```text theme={null}

701Bypass permissions was requested at launch and ignored · if that was you, ~/.claude/settings.json needs "skipDangerousModePermissionPrompt": true

702```

703 

704请将 `"skipDangerousModePermissionPrompt": true` 添加到 `~/.claude/settings.json`,然后启动新的后台会话。

705 

706### `claude agents` 显示交互式会话会跳过的绕过权限警告

707 

708如果 [`claude agents`](/docs/zh-CN/agent-view#dispatch-defaults) 显示了[绕过权限警告](#bypass-permissions-acceptance),而您的交互式会话会跳过该警告,请检查 `skipDangerousModePermissionPrompt` 是否设置在 `.claude/settings.local.json` 或 `--settings` 文件中。交互式会话会将该处的键视为您对警告的接受,而 `claude agents` 不会。无论您是否在该处找到它,请接受警告,以将该键添加到 `~/.claude/settings.json`,`claude agents` 会在该文件中查找它。

709 

691## 受保护的路径710## 受保护的路径

692 711 

693对一小组路径的写入永远不会自动批准,唯一的例外是 `bypassPermissions` 模式,以及可使用[绕过权限](#skip-all-checks-with-bypasspermissions-mode)的 plan 模式交互式终端会话。这可以防止意外损坏存储库状态和 Claude 自己的配置。712对一小组路径的写入永远不会自动批准,唯一的例外是 `bypassPermissions` 模式,以及可使用[绕过权限](#skip-all-checks-with-bypasspermissions-mode)的 plan 模式交互式终端会话。这可以防止意外损坏存储库状态和 Claude 自己的配置。

permissions.md +29 −6

Details

202}202}

203```203```

204 204 

205允许规则仅在文字 `mcp__<server>__` 前缀之后接受工具名称 glob。服务器段必须不含 glob,以便规则命名您配置的特定服务器。`mcp__puppeteer__*` 匹配来自 `puppeteer` 服务器的每个工具,`mcp__github__get_*` 匹配其 `get_` 工具。未锚定的允许 glob(如 `"*"`、`"B*"` 或 `"mcp__*"`)会被跳过并显示警告,不会自动批准任何内容。205允许规则仅在文字 `mcp__<server>__` 前缀之后接受工具名称 glob。服务器段必须不含 glob,以便规则命名您配置的特定服务器。`mcp__puppeteer__*` 匹配来自 `puppeteer` 服务器的每个工具,`mcp__github__get_*` 匹配其 `get_` 工具。未锚定的允许 glob(如 `"*"`、`"B*"` 或 `"mcp__*"`)会被跳过,不会自动批准任何内容。

206 206 

207工具名称不匹配任何已知工具的拒绝或询问规则会在启动时产生警告以捕获拼写错误。包含 `_` 或 `*` 的工具名称不受此检查的约束,已移除的工具的名称(例如 `TaskOutput`)也不受约束。207工具名称不匹配任何已知工具的拒绝或询问规则会产生[启动警告](/docs/zh-CN/errors#matches-no-tool)以捕获拼写错误。包含 `_` 或 `*` 的工具名称不受此检查的约束,Claude Code 已移除的工具的名称(例如 `TaskOutput`)也不受约束。

208 208 

209转录本和权限对话框中为工具显示的标签可能与其规范名称不同。例如,转录本中标记为 `Stop Task` 的工具具有规范名称 `TaskStop`。权限规则和 [hook 匹配器](/docs/zh-CN/hooks) 不匹配标签,因此写作为 `Stop Task` 的规则不匹配。对于拒绝和询问规则,上面的启动警告会捕获不匹配。使用[工具参考](/docs/zh-CN/tools-reference)中列出的规范名称。209转录本和权限对话框中为工具显示的标签可能与其规范名称不同。例如,转录本中标记为 `Stop Task` 的工具具有规范名称 `TaskStop`。权限规则和 [hook 匹配器](/docs/zh-CN/hooks) 不匹配标签,因此写作为 `Stop Task` 的规则不匹配。对于拒绝和询问规则,上面的启动警告会捕获不匹配。使用[工具参考](/docs/zh-CN/tools-reference)中列出的规范名称。

210 210 


241像 `Bash(watch *)` 或 `Bash(find *)` 这样的前缀规则无法自动批准以下命令,因此在 Manual 模式下它们会提示:241像 `Bash(watch *)` 或 `Bash(find *)` 这样的前缀规则无法自动批准以下命令,因此在 Manual 模式下它们会提示:

242 242 

243* **Exec 包装器**:如 `watch`、`setsid`、`ionice` 和 `flock`243* **Exec 包装器**:如 `watch`、`setsid`、`ionice` 和 `flock`

244* **`find`**:带有运行命令、删除文件或写入文件的操作(如 `-exec`、`-delete` 或 `-fprint`),或带有 `-files0-from`(从文件中获取要搜索的路径)244* **`find`**:带有运行命令、删除文件或写入文件的操作(如 `-exec`、`-delete`、`-rm` 或 `-fprint`),或带有 `-files0-from`(从文件中获取要搜索的路径)

245 245 

246要批准不含 `*` 的特定调用,请为完整命令字符串编写精确匹配规则,如 `Bash(find build -type f -delete)`。246要批准不含 `*` 的特定调用,请为完整命令字符串编写精确匹配规则,如 `Bash(find build -type f -delete)`。

247 247 


460 460 

461Grep 和 Glob 搜索 `path` 参数解析到的目录。Claude Code 将 `Read` deny 规则应用于该目录。461Grep 和 Glob 搜索 `path` 参数解析到的目录。Claude Code 将 `Read` deny 规则应用于该目录。

462 462 

463##### 通过符号链接的附件

464 

465`Read` deny 规则也涵盖以下附件,对每个附件按其指定的路径或它解析到的文件进行匹配。当规则匹配某个附件时,Claude Code 会将其排除在对话之外:

466 

467* **`@` 提及**:您在提示词中提及的文件或目录。被拒绝的文件不会在对话中留下任何内容,而[目录的列表](#read-and-edit)会省略规则涵盖的名称。

468* **粘贴的图片**:您在终端中将其路径粘贴或拖入提示词的图片

469* **已更改的文件**:Claude Code 在文件于磁盘上更改后重新读取的文件

470* **IDE 上下文**:连接的 IDE 共享的选择和打开文件上下文

471 

472启用 [`permissions.blockReadsOutsideWorkingDirectories`](/docs/zh-CN/settings-reference#permissions-blockreadsoutsideworkingdirectories) 时,或在 [`--restricted`](/docs/zh-CN/cli-reference#cli-flags) 会话中,如果这些附件来自该设置或标志拒绝 Claude 文件读取的路径,它们也会被排除。

473 

474如果您 `@` 提及的文件被以下这行取代,则表示 Claude Code 无法确定该路径指向何处,例如因为其符号链接形成循环:

475 

476```text theme={null}

477Referenced <path> (not read: could not be examined)

478```

479 

480Claude 会被告知改用其文件工具读取该路径;当 Claude Code 只是没有足够时间检查该路径时,这种读取可能会成功。

481 

482当路径的符号链接无法解析时,该读取也会被[拒绝](/docs/zh-CN/errors#refusing-after-a-symlink-changed),因此请修复磁盘上的链接,或通过可以解析的路径 `@` 提及该文件。

483 

463##### 通过符号链接的写入484##### 通过符号链接的写入

464 485 

465如果 Claude 要求编辑或写入的路径本身是符号链接,Edit 和 Write 工具[拒绝写入并指导 Claude 到链接的目标](/docs/zh-CN/errors#refusing-after-a-symlink-changed)。486如果 Claude 要求编辑或写入的路径本身是符号链接,Edit 和 Write 工具[拒绝写入并指导 Claude 到链接的目标](/docs/zh-CN/errors#refusing-after-a-symlink-changed)。


489 510 

490要在没有此提示的情况下读取网络共享上的文件,请先为该共享提供一个本地路径:511要在没有此提示的情况下读取网络共享上的文件,请先为该共享提供一个本地路径:

491 512 

492* **Windows**:将共享映射到驱动器号,并在启动 Claude Code 时使用 `--add-dir` 传递该驱动器,如[工作目录](#working-directories)中所述513* **Windows**:将共享映射到驱动器号,并在启动 Claude Code 时使用 `--add-dir` 传递该驱动器,如[工作目录](#working-directories)中所述。之后使用 `/add-dir` 添加的驱动器,或在设置文件的 `additionalDirectories` 中列出的驱动器,其下的读取仍然会提示。要停止映射到 `Z:` 的共享的这些提示,请在 PowerShell 中使用 `claude --add-dir Z:\` 启动新会话。

493* **macOS 和 Linux**:将共享挂载到本地路径(如 `/mnt` 或 `/Volumes` 下的目录),并从那里读取文件,如[工作目录是网络路径](/docs/zh-CN/errors#working-directory-is-a-network-path)中所述514* **macOS 和 Linux**:将共享挂载到本地路径(如 `/mnt` 或 `/Volumes` 下的目录),并从那里读取文件,如[工作目录是网络路径](/docs/zh-CN/errors#working-directory-is-a-network-path)中所述

494 515 

495### WebFetch516### WebFetch


545 566 

546* **包含 `.` 或空格等字符的名称**:这些字符会变为 `_`,因此对于您配置为 `my.server` 的服务器,请编写 `mcp__my_server__*`567* **包含 `.` 或空格等字符的名称**:这些字符会变为 `_`,因此对于您配置为 `my.server` 的服务器,请编写 `mcp__my_server__*`

547* **由插件提供的服务器**:`<server>` 采用[插件作用域形式](/docs/zh-CN/mcp#plugin-provided-mcp-servers),因此对于名为 `my-plugin` 的插件中的 `database-tools` 服务器,请编写 `mcp__plugin_my-plugin_database-tools__*`568* **由插件提供的服务器**:`<server>` 采用[插件作用域形式](/docs/zh-CN/mcp#plugin-provided-mcp-servers),因此对于名为 `my-plugin` 的插件中的 `database-tools` 服务器,请编写 `mcp__plugin_my-plugin_database-tools__*`

548* **包含 `__` 或以 `_` 结尾的 `<server>`**:使用完整名称编写通配符形式 `mcp__<server>__*`。对于名为 `reports__v2` 的服务器,请编写 `mcp__reports__v2__*`。裸 `mcp__reports__v2` 和更短的 `mcp__reports` 作为 allow 规则都不匹配其工具,因为 Claude Code 会将两者都读作名为 `reports` 的服务器的规则569* **包含 `__` 或以 `_` 结尾的 `<server>`**:使用完整名称编写通配符形式 `mcp__<server>__*`。对于名为 `reports__v2` 的服务器,请编写 `mcp__reports__v2__*`。裸 `mcp__reports__v2` 和更短的 `mcp__reports` 作为 allow 规则都不匹配其工具,因为 Claude Code 会将两者都读作名为 `reports` 的服务器的规则。

570 

571 但是,作为 deny 或 ask 规则,这两个名称中的每一个也都涵盖 `reports__v2` 服务器的所有工具。要仅涵盖名为 `reports` 的服务器,请以 `mcp__reports__<tool>` 形式为每个工具编写一条规则,或重命名其中一个服务器。

549 572 

550如果您的组织已设置[claude.ai 连接器](/docs/zh-CN/mcp#organization-controls-on-connector-tools)工具为 `ask`,该设置在您的会话中到达 Claude Code,该工具的 allow 规则不会生效:Claude Code 在每次调用时都会提示,即使在 `auto` 和 `bypassPermissions` 模式下。在 `dontAsk` 模式下(从不提示),Claude Code 会拒绝调用。Claude Code 自己获取的连接器工具显示为 `mcp__claude_ai_<server>__<tool>`。573如果您的组织已设置[claude.ai 连接器](/docs/zh-CN/mcp#organization-controls-on-connector-tools)工具为 `ask`,该设置在您的会话中到达 Claude Code,该工具的 allow 规则不会生效:Claude Code 在每次调用时都会提示,即使在 `auto` 和 `bypassPermissions` 模式下。在 `dontAsk` 模式下(从不提示),Claude Code 会拒绝调用。Claude Code 自己获取的连接器工具显示为 `mcp__claude_ai_<server>__<tool>`。

551 574 


593 616 

594PreToolUse hook 决定不会绕过权限规则。Claude Code 评估 deny 和 ask 规则,无论 PreToolUse hook 返回什么:匹配的 deny 规则会阻止调用,匹配的 ask 规则即使在 hook 返回 `"allow"` 或 `"ask"` 时仍然会提示。这保留了[管理权限](#manage-permissions)中描述的 deny 优先级,包括在托管设置中设置的 deny 规则。617PreToolUse hook 决定不会绕过权限规则。Claude Code 评估 deny 和 ask 规则,无论 PreToolUse hook 返回什么:匹配的 deny 规则会阻止调用,匹配的 ask 规则即使在 hook 返回 `"allow"` 或 `"ask"` 时仍然会提示。这保留了[管理权限](#manage-permissions)中描述的 deny 优先级,包括在托管设置中设置的 deny 规则。

595 618 

596该优先级涵盖设置文件中的 hook 和插件的 `hooks/hooks.json` 中的 hook。您安装的处理 [`tool.check`](/docs/zh-CN/plugins/mods/events#approve-or-refuse-a-tool-call-before-the-user-is-asked) 事件的 [mod](/docs/zh-CN/plugins/mods/overview) 会在权限规则和 `PreToolUse` hook 已经决定之后给出其答案。当机器上存在[托管设置](/docs/zh-CN/settings#check-what-your-organization-enforces),或会话的凭据是团队或企业 [`/login`](/docs/zh-CN/authentication#authentication-precedence) 时,在 mod 批准调用的情况下,以下结果默认保持不变:619该优先级涵盖设置文件中的 hook 和插件的 `hooks/hooks.json` 中的 hook。您安装的处理 [`tool.check`](/docs/zh-CN/plugins/mods/events#approve-or-refuse-a-tool-call-before-the-user-is-asked) 事件的 [mod](/docs/zh-CN/plugins/mods/overview) 会在 `PreToolUse` hook 运行之后给出其答案。当机器上存在[托管设置](/docs/zh-CN/settings#check-what-your-organization-enforces),或会话的凭据是团队或企业 [`/login`](/docs/zh-CN/authentication#authentication-precedence) 时,在 mod 批准调用的情况下,以下结果默认保持不变:

597 620 

598* deny 规则拒绝的调用仍会被拒绝,您的组织可以更改这一点。621* deny 规则拒绝的调用仍会被拒绝,您的组织可以更改这一点。

599* ask 规则会提示的调用仍会提示您。622* ask 规则会提示的调用仍会提示您。

Details

36 36 

37您返回的 `text` 会打印在成绩单中,Claude 会读取它。要不打印任何内容,如仅打开[窗格](/docs/zh-CN/plugins/mods/interface#pick-where-to-draw)的命令,请返回 `{}`。要让命令在 Claude 工作时运行,请在注册中添加 `immediate: true`。37您返回的 `text` 会打印在成绩单中,Claude 会读取它。要不打印任何内容,如仅打开[窗格](/docs/zh-CN/plugins/mods/interface#pick-where-to-draw)的命令,请返回 `{}`。要让命令在 Claude 工作时运行,请在注册中添加 `immediate: true`。

38 38 

39选择一个没有内置命令使用的名称。在会话中键入 `/` 以查看它们。`$.command.register` 对于已占用的名称会抛出异常,并显示诸如 `"/focus" refused: it is the built-in /focus"` 的消息。抛出异常的 hook 会被跳过,因此您的 `session.start` hook 的其余部分也不会运行。在该 hook 中最后注册命令,或将调用包装在 `try` 和 `catch` 中。39选择一个没有内置命令使用的名称。在会话中键入 `/` 以查看它们。`$.command.register` 对于已占用的名称会抛出异常,并显示诸如 `"/focus" refused: it is the built-in /focus` 的消息。抛出异常的 hook 会被跳过,因此您的 `session.start` hook 的其余部分也不会运行。在该 hook 中最后注册命令,或将调用包装在 `try` 和 `catch` 中。

40 40 

41### 添加工具41### 添加工具

42 42 


211| `$.ui.status(text)` | 提示下的一行,保持不变直到您更改它。它以 `⚠` 和 mod 的名称开头,如 `⚠ my-mod: checks: 3 passing`。 |211| `$.ui.status(text)` | 提示下的一行,保持不变直到您更改它。它以 `⚠` 和 mod 的名称开头,如 `⚠ my-mod: checks: 3 passing`。 |

212| `$.ui.toast(text)` | 一条带有 mod 名称的 toast 通知,几秒后消失。在[全屏渲染](/docs/zh-CN/fullscreen)中,它是右上角的一个框;在经典渲染器中,它是提示下右侧的一行。 |212| `$.ui.toast(text)` | 一条带有 mod 名称的 toast 通知,几秒后消失。在[全屏渲染](/docs/zh-CN/fullscreen)中,它是右上角的一个框;在经典渲染器中,它是提示下右侧的一行。 |

213| `$.ui.log(text)` | 成绩单中的一条暗线,Claude 不读取。它以 `●` 和 mod 的名称开头,如 `● my-mod: build finished`。 |213| `$.ui.log(text)` | 成绩单中的一条暗线,Claude 不读取。它以 `●` 和 mod 的名称开头,如 `● my-mod: build finished`。 |

214| `$.ui.notify(text)` | 来自用户终端的通知,位于 Claude Code 之外,按照用户的 [`preferredNotifChannel`](/docs/zh-CN/settings-reference#preferrednotifchannel) 设置所指定的方式发送。其标题为 mod 的名称,除非您传入非空的 `{ title }`,此时标题按您提供的内容显示。 |

215 

216`$.ui.notify` 是其中唯一会返回应答的调用。当用户的频道将通知写入其终端时,它解析为 `{ isSent: true, channel }`。`channel` 是发送该通知的设置值,例如 `kitty` 或 `terminal_bell`。`terminal_bell` 频道只会响铃,既不显示您的文本,也不显示标题。

217 

218否则,调用解析为 `{ isSent: false, reason }`:

219 

220| `reason` | 含义 |

221| :- | :- |

222| `disabled` | 用户将 `preferredNotifChannel` 设置为 `notifications_disabled` |

223| `no-channel` | 该设置为 `auto`,且用户的终端没有 Claude Code 可以发送的通知 |

224| `no-surface` | 会话没有终端,例如 `-p` 运行、Agent SDK、桌面应用、VS Code 扩展或云端会话。对于在会话启动之前(您的 mod 正在加载时)发起的调用,以及在 Claude Code 退出时发起的调用,也返回此应答 |

225| `refused` | 另一个 mod 在 `ui.notify` 上的 hook 代替 Claude Code 作出了应答,但没有发送 |

226 

227当 `text` 不是字符串、另一个 mod 在 `ui.notify` 上的 hook 返回 `{ deny }`,或写入终端失败时,调用会 reject 而不是解析。

228 

229您的 mod 无法选择频道,Claude Code 也不限制 mod 发送通知的频率。用户的设置是唯一的开关。

230 

231当调用到达正在运行的会话时,用户的 [`Notification` hook](/docs/zh-CN/hooks#notification) 会以类型 `plugin_notification` 运行。即使应答为 `disabled`,以及在没有终端、应答为 `no-surface` 的会话中,它们也会运行。对于在会话启动之前或 Claude Code 退出时发起的调用,不会运行任何 hook。您的 mod 调用 `$.ui.notify` 所在的那个 hook 不参与这次运行,因此发送通知的 `classic.Notification` hook 不会因其自身的通知而再次被调用。

232 

233终端不会报告是否显示了通知,因此 `isSent: true` 表示通知已发送,而不代表用户看到了它。

234 

235此示例在主对话的轮次未被中断而结束时发送通知,并在没有发出带文本的通知时回退到 toast。它在传递事件之前不等待通知,因为用户的 `Notification` hook 会先运行,可能需要一段时间:

236 

237```javascript theme={null}

238on('turn.complete', ($, e, next) => {

239 const isMainTurn = e.agentId === undefined && !e.isAborted

240 const fallBack = () => $.ui.toast('Turn finished')

241 if (isMainTurn) {

242 $.ui.notify('Turn finished').then(sent => {

243 const hasText = sent.isSent && sent.channel !== 'terminal_bell'

244 if (!hasText) fallBack()

245 }, fallBack)

246 }

247 return next(e)

248})

249```

214 250 

215在 [VS Code 扩展](/docs/zh-CN/plugins/mods/interface#draw-in-the-vs-code-extension)中,状态栏和 toast 改为显示在输入框上方,日志行则显示在对话中。251在 [VS Code 扩展](/docs/zh-CN/plugins/mods/interface#draw-in-the-vs-code-extension)中,状态栏和 toast 改为显示在输入框上方,日志行则显示在对话中。

216 252 

Details

181 181 

182#### 在询问用户之前批准或拒绝工具调用182#### 在询问用户之前批准或拒绝工具调用

183 183 

184要决定某个工具调用是否可以运行,请处理 [`tool.check`](/docs/zh-CN/plugins/mods/reference#tools),这是 Claude Code 做出该决定的事件。它在权限规则和设置 hook 做出决定之后触发,`next(e)` 会解析为它们的决定:`allow`、`ask` 或 `deny`。您的 hook 返回该决定或另一个决定。`e.input` 保存工具的参数,例如 Bash 的 `command`。184要决定某个工具调用是否可以运行,请处理 [`tool.check`](/docs/zh-CN/plugins/mods/reference#tools),这是 Claude Code 做出该决定的事件。

185 185 

186对于固定的命令或路径,请使用诸如 `Bash(npm test)` 之类的[权限规则](/docs/zh-CN/permissions#permission-rule-syntax),无需编写代码。当决定取决于当下的实际情况(例如当前的 Git 分支或另一个 hook 记录的值)时,请处理 `tool.check`。186对于固定的命令或路径,请使用诸如 `Bash(npm test)` 之类的[权限规则](/docs/zh-CN/permissions#permission-rule-syntax),无需编写代码。当决定取决于当下的实际情况(例如当前的 Git 分支或另一个 hook 记录的值)时,请处理 `tool.check`。

187 187 

188* **返回什么**:要自行决定该调用,请返回您自己的对象,例如 `{ decision: 'allow' }` 或 `{ decision: 'deny', reason }`。要保持该决定不变,请返回 `await next(e)` 给您的结果。

189* **`await next(e)` 给您什么**:Claude Code 自身的决定,形式为一个对象,其 `decision` 为 `allow`、`ask` 或 `deny`。`next(e)` 运行期间不会出现权限提示。

190* **参数**:`e.input` 保存工具的参数,例如 Bash 的 `command`

191* **`tool.check` 何时触发**:在 [`PreToolUse` hook](/docs/zh-CN/hooks#pretooluse) 运行之后,并在权限提示、[自动模式](/docs/zh-CN/permission-modes#eliminate-prompts-with-auto-mode)的分类器或 [`PermissionRequest`](/docs/zh-CN/hooks#permissionrequest) hook 之前

192 

188以下 hook 会在当前分支为 `main` 时拒绝 `git push`:193以下 hook 会在当前分支为 `main` 时拒绝 `git push`:

189 194 

190```javascript theme={null}195```javascript theme={null}

191on('tool.check', { tool: 'Bash' }, async ($, e, next) => {196on('tool.check', { tool: 'Bash' }, async ($, e, next) => {

192 // What the permission rules and settings hooks decided: 'allow', 'ask', or 'deny'197 // Claude Code's own decision

193 const decided = await next(e)198 const decided = await next(e)

194 if (!e.input.command.includes('git push')) return decided199 if (!e.input.command.includes('git push')) return decided

195 const branch = await $.process.run(['git', 'branch', '--show-current'])200 const branch = await $.process.run(['git', 'branch', '--show-current'])


209>214>

210> `tool.check` hook 也可以返回 `allow` 或 `ask`。在[计划模式](/docs/zh-CN/permissions#hook-approvals-in-plan-mode)下,对于非只读的调用(例如文件编辑),您的 hook 可以收紧 `next(e)` 返回的决定,但不能放宽它。有关您的 hook 的 `allow` 无法覆盖的权限规则和 `PreToolUse` hook 决定,请参阅[使用 hook 扩展权限](/docs/zh-CN/permissions#precedence-among-rules-hooks-and-mods)。215> `tool.check` hook 也可以返回 `allow` 或 `ask`。在[计划模式](/docs/zh-CN/permissions#hook-approvals-in-plan-mode)下,对于非只读的调用(例如文件编辑),您的 hook 可以收紧 `next(e)` 返回的决定,但不能放宽它。有关您的 hook 的 `allow` 无法覆盖的权限规则和 `PreToolUse` hook 决定,请参阅[使用 hook 扩展权限](/docs/zh-CN/permissions#precedence-among-rules-hooks-and-mods)。

211 216 

217#### 检查工具调用是否为只读

218 

219在 [`tool.check`](#approve-or-refuse-a-tool-call-before-the-user-is-asked) hook 中,当工具将该调用报告为只读时,`e.isReadOnly` 为 `true`。否则该字段不存在,而不是 `false`。`e.isReadOnly` 需要 Claude Code v2.1.304 或更高版本。

220 

221某些工具(例如 Read、Grep、Glob 和 WebSearch)会将每次调用都报告为只读。Bash 和 MCP 工具在以下情况下将调用报告为只读:

222 

223* **Bash**:命令通过 Claude Code 内置的[只读命令检查](/docs/zh-CN/permissions#read-only-commands)

224* **MCP 工具**:服务器将该工具的 `readOnlyHint` 注解设置为 `true`

225 

226该值是工具自身的报告,因此不要仅凭此字段批准调用。例如,WebFetch 和 Agent 调用会报告为只读,但 [WebFetch](/docs/zh-CN/tools-reference#webfetch-tool-behavior) 会请求一个 URL,而 [Agent](/docs/zh-CN/tools-reference#agent-tool-behavior) 会启动一个运行其自身工具的子代理。

227 

228以下 hook 会为每个非只读且尚未被拒绝的 `mcp__github__` 调用返回 `ask`:

229 

230```javascript theme={null}

231on('tool.check', { tool: /^mcp__github__/ }, async ($, e, next) => {

232 const decided = await next(e)

233 // Read-only calls and denied calls pass through unchanged

234 if (e.isReadOnly || decided.decision === 'deny') return decided

235 return { decision: 'ask', reason: 'This tool can change the GitHub repository' }

236})

237```

238 

239#### 按调用是否为只读筛选 `tool.check` hook

240 

241要按 [`e.isReadOnly`](#check-whether-a-tool-call-is-read-only) 限制您的 hook 处理哪些调用,请对只读调用使用[匹配器](#filter-which-events-a-hook-handles),对其余调用使用 hook 主体:

242 

243* **仅只读调用**:在匹配器中添加 `isReadOnly: true`,例如 `on('tool.check', { tool: 'Bash', isReadOnly: true }, hook)`

244* **非只读调用**:在 hook 主体中测试 `e.isReadOnly`,如 [`mcp__github__` 示例](#check-whether-a-tool-call-is-read-only)所示。如果您在匹配器中写入 `isReadOnly: false`,您的 hook 将永远不会运行。

245 

212### 改写或补充提示词246### 改写或补充提示词

213 247 

214`prompt.submit` hook 会在轮次开始之前看到每个提示词,因此可以改写文本或向其中添加内容。`e.text` 是输入的内容。248`prompt.submit` hook 会在轮次开始之前看到每个提示词,因此可以改写文本或向其中添加内容。`e.text` 是输入的内容。


312* **来自托管设置的 `PreToolUse` hook**:在第一个 mod 的 `tool.call` hook 之前运行。当托管 hook 阻止调用时,该调用不会运行任何 mod 的 `tool.call` hook。346* **来自托管设置的 `PreToolUse` hook**:在第一个 mod 的 `tool.call` hook 之前运行。当托管 hook 阻止调用时,该调用不会运行任何 mod 的 `tool.call` hook。

313* **来自每个其他设置文件和插件的 `hooks/hooks.json` 的 `PreToolUse` hook**:在最后一个 mod 调用 `next` 后运行,作为 Claude Code 自己的行为的一部分。回答 `tool.call` 而不调用 `next` 的 mod 会阻止它们运行,调用 `next` 的 mod 在它返回的结果中看到它们的决定。347* **来自每个其他设置文件和插件的 `hooks/hooks.json` 的 `PreToolUse` hook**:在最后一个 mod 调用 `next` 后运行,作为 Claude Code 自己的行为的一部分。回答 `tool.call` 而不调用 `next` 的 mod 会阻止它们运行,调用 `next` 的 mod 在它返回的结果中看到它们的决定。

314 348 

315[`tool.check`](#approve-or-refuse-a-tool-call-before-the-user-is-asked) 在权限规则和这两组 `PreToolUse` hook 做出决定之后触发。要了解 `tool.check` hook 的 `allow` 无法替代其中哪些决定,请参阅[使用 hook 扩展权限](/docs/zh-CN/permissions#precedence-among-rules-hooks-and-mods)。349[`tool.check`](#approve-or-refuse-a-tool-call-before-the-user-is-asked) 在 `PreToolUse` hook 运行之后触发。要了解 `tool.check` hook 的 `allow` 无法替代哪些权限规则和 `PreToolUse` hook 决定,请参阅[使用 hook 扩展权限](/docs/zh-CN/permissions#precedence-among-rules-hooks-and-mods)。

316 350 

317### 处理失败的 hook351### 处理失败的 hook

318 352 

Details

306| `closeOnEscape` | 使 Esc 关闭窗格 |306| `closeOnEscape` | 使 Esc 关闭窗格 |

307| `holdToasts` | 在终端中,当此窗格是正在显示的窗格时暂缓显示 toast。请参阅[在对话框后暂缓显示 toast](#hold-toasts-behind-a-dialog)。 |307| `holdToasts` | 在终端中,当此窗格是正在显示的窗格时暂缓显示 toast。请参阅[在对话框后暂缓显示 toast](#hold-toasts-behind-a-dialog)。 |

308| `rows` | 当窗格位于输入框上方时请求的高度。默认值为空间的三分之一。 |308| `rows` | 当窗格位于输入框上方时请求的高度。默认值为空间的三分之一。 |

309| `columns` | 当窗格位于会话记录旁边时请求的宽度 |309| `columns` | 当窗格位于会话记录旁边时请求的宽度,最多为终端宽度的 45%。一旦用户在本会话或之前的会话中调整过会话记录旁边窗格的大小,之后在那里打开的窗格将改用用户设置的宽度。该宽度同样受 45% 的限制。 |

310 310 

311[VS Code 扩展](#draw-in-the-vs-code-extension)会忽略 `rows` 和 `columns`,并自行确定窗格的大小。311[VS Code 扩展](#draw-in-the-vs-code-extension)会忽略 `rows` 和 `columns`,并自行确定窗格的大小。

312 312 


537| Enter | 按下获得焦点的 `Button`、提交获得焦点的 `Input` 或在 `Select` 中选择 |537| Enter | 按下获得焦点的 `Button`、提交获得焦点的 `Input` 或在 `Select` 中选择 |

538| 按钮的快捷键 | 按下该按钮。当 `Input` 拥有焦点时,每个可打印键都进入字段。 |538| 按钮的快捷键 | 按下该按钮。当 `Input` 拥有焦点时,每个可打印键都进入字段。 |

539| Page Up、Page Down、Home 和 End | 当您的窗格或条带的行数超过它可以显示的行数时,滚动它 |539| Page Up、Page Down、Home 和 End | 当您的窗格或条带的行数超过它可以显示的行数时,滚动它 |

540| Ctrl+X 然后按方向键 | 调整您的窗格大小。左或上为其提供更多空间,右或下将空间让回。 |540| Ctrl+X 然后按方向键 | 调整您的窗格大小。左或上为其提供更多空间,右或下将空间让回。位于会话记录旁边的窗格最多加宽到终端宽度的 45%。 |

541| Ctrl+X 然后按 X | 关闭您的窗格,即使其某个字段拥有焦点 |541| Ctrl+X 然后按 X | 关闭您的窗格,即使其某个字段拥有焦点 |

542| Esc | 将键盘焦点返回到输入框。使用 `closeOnEscape: true` 时,它还会关闭窗格。 |542| Esc | 将键盘焦点返回到输入框。使用 `closeOnEscape: true` 时,它还会关闭窗格。 |

543 543 

Details

56| 事件 | 触发时机 | hook 可以返回 |56| 事件 | 触发时机 | hook 可以返回 |

57| :- | :- | :- |57| :- | :- | :- |

58| [`tool.call`](/docs/zh-CN/plugins/mods/events#guard-or-change-a-tool-call) | 工具即将运行 | `next(e)`、`{ deny: reason }` 或 `{ result }` |58| [`tool.call`](/docs/zh-CN/plugins/mods/events#guard-or-change-a-tool-call) | 工具即将运行 | `next(e)`、`{ deny: reason }` 或 `{ result }` |

59| [`tool.check`](/docs/zh-CN/plugins/mods/events#where-settings-hooks-run-in-the-order) | Claude Code 在 `tool.call` 和 `PreToolUse` hook 之后决定是否允许运行某个工具调用。`next(e)` 解析为规则、权限模式和这些 hook 得出的决定。 | `{ decision }`,其值为 `allow`、`ask` 或 `deny` |59| [`tool.check`](/docs/zh-CN/plugins/mods/events#where-settings-hooks-run-in-the-order) | Claude Code 在 `tool.call` 和 `PreToolUse` hook 之后决定是否允许运行某个工具调用。`next(e)` 解析为规则、权限模式和这些 hook 得出的决定。 | `next(e)` 或 `{ decision }`,其中 `decision` 设为 `allow`、`ask` 或 `deny`,并可附带可选的 `reason` |

60| `tool.describe` | 每个工具一次,在其描述首次发送给 Claude 时。对于 MCP 工具,当 Claude 通过[工具搜索](/docs/zh-CN/mcp#scale-with-mcp-tool-search)加载它时会再触发一次,此时 `e.description` 设为 Claude 针对已加载工具读取的文本。 | `{ description }`,可选择将 `isDeferred` 设为 `true` 以将该工具置于工具搜索之后,或设为 `false` 以预先加载它 |60| `tool.describe` | 每个工具一次,在其描述首次发送给 Claude 时。对于 MCP 工具,当 Claude 通过[工具搜索](/docs/zh-CN/mcp#scale-with-mcp-tool-search)加载它时会再触发一次,此时 `e.description` 设为 Claude 针对已加载工具读取的文本。 | `{ description }`,可选择将 `isDeferred` 设为 `true` 以将该工具置于工具搜索之后,或设为 `false` 以预先加载它 |

61 61 

62#### `tool.check` 上的 Agent 和组织字段62#### `tool.check` 上的 Agent 和组织字段


68 68 

69在 `tool.check` 上,`e.agentId` 和 `e.ceiling` 需要 Claude Code v2.1.290 或更高版本。69在 `tool.check` 上,`e.agentId` 和 `e.ceiling` 需要 Claude Code v2.1.290 或更高版本。

70 70 

71#### `tool.check` 上的 `e.isReadOnly` 字段

72 

73在 `tool.check` hook 中,当工具报告此次调用为只读时,`e.isReadOnly` 为 `true`。否则该字段不存在,而不是 `false`。该值是工具自身的报告,因此在仅凭此字段批准某个调用之前,请先阅读[检查工具调用是否为只读](/docs/zh-CN/plugins/mods/events#check-whether-a-tool-call-is-read-only)。

74 

75在 `tool.check` 上,`e.isReadOnly` 需要 Claude Code v2.1.304 或更高版本。

76 

71### 提示词以及 Claude 读取的内容77### 提示词以及 Claude 读取的内容

72 78 

73提示词事件涵盖用户输入的文本,以及 Claude Code 自行发送给 Claude 的文本,例如系统提示词和提醒:79提示词事件涵盖用户输入的文本,以及 Claude Code 自行发送给 Claude 的文本,例如系统提示词和提醒:


196| 命名空间 | 方法 |202| 命名空间 | 方法 |

197| :- | :- |203| :- | :- |

198| `$.plugin` | `name`、`root`:此插件的名称和目录 |204| `$.plugin` | `name`、`root`:此插件的名称和目录 |

199| [`$.ui`](/docs/zh-CN/plugins/mods/interface#pick-where-to-draw) | `resolve`、`invalidate`、`open`、`close`、`panes`、`focus`、`scroll`、`toast`、`status`、`log`、`notice`、`ask`、`copy`、`selection`、`blit` |205| [`$.ui`](/docs/zh-CN/plugins/mods/interface#pick-where-to-draw) | `resolve`、`invalidate`、`open`、`close`、`panes`、`focus`、`scroll`、`toast`、`notify`、`status`、`log`、`notice`、`ask`、`copy`、`selection`、`blit` |

200| [`$.command`](/docs/zh-CN/plugins/mods/api#add-a-command) | `register`、`run`、`list` |206| [`$.command`](/docs/zh-CN/plugins/mods/api#add-a-command) | `register`、`run`、`list` |

201| [`$.tool`](/docs/zh-CN/plugins/mods/api#add-a-tool) | `register`、`call`、`check`、`list` |207| [`$.tool`](/docs/zh-CN/plugins/mods/api#add-a-tool) | `register`、`call`、`check`、`list` |

202| `$.agent` | `register`、`spawn`、`list`。`list()` 返回此会话的子代理和队友,每项都带有 `status`,其值为 `pending`、`running`、`waiting`、`idle`、`completed`、`failed` 或 `killed` 之一,其中 `idle` 和 `waiting` 需要 Claude Code v2.1.289 或更高版本。 |208| `$.agent` | `register`、`spawn`、`list`。`list()` 返回此会话的子代理和队友,每项都带有 `status`,其值为 `pending`、`running`、`waiting`、`idle`、`completed`、`failed` 或 `killed` 之一,其中 `idle` 和 `waiting` 需要 Claude Code v2.1.289 或更高版本。 |


266| `Svg` | 一个 SVG 文档,最多 131,072 个字符 | | ✓ | ✓ |272| `Svg` | 一个 SVG 文档,最多 131,072 个字符 | | ✓ | ✓ |

267| [`Client`](/docs/zh-CN/plugins/mods/interface#build-a-tree-from-elements) | `module`、`key` | ✓ | ✓ | |273| [`Client`](/docs/zh-CN/plugins/mods/interface#build-a-tree-from-elements) | `module`、`key` | ✓ | ✓ | |

268| [`Raster`](/docs/zh-CN/plugins/mods/interface#draw-a-grid-of-colored-cells) | `key`、`columns`(最多 512)、`rows`(最多 256)、`cells`。请参阅[绘制彩色单元格网格](/docs/zh-CN/plugins/mods/interface#draw-a-grid-of-colored-cells)。 | ✓ | | |274| [`Raster`](/docs/zh-CN/plugins/mods/interface#draw-a-grid-of-colored-cells) | `key`、`columns`(最多 512)、`rows`(最多 256)、`cells`。请参阅[绘制彩色单元格网格](/docs/zh-CN/plugins/mods/interface#draw-a-grid-of-colored-cells)。 | ✓ | | |

269| `Image` | 最多 2 MiB 的 PNG 或 RGBA 字节,或文件路径,`columns` 和 `rows`(最多 255),以及 `alt` 文本。 | ✓ | | |275| `Image` | 最多 2 MiB 的 PNG 或 RGBA 字节,或文件路径,`columns` 和 `rows`(最多 255),以及 `alt` 文本。请参阅[哪些终端会绘制它](/docs/zh-CN/plugins/mods/gallery#image-and-client)。 | ✓ | | |

270 276 

271更多 `Button` 规则:`action` 指定 Claude Code 自身的某个[快捷键操作](/docs/zh-CN/keybindings),当用户为该操作设置的绑定是组合键或带修饰键的按键时,该绑定会按下此按钮。当用户在空的输入框中只输入某个数字并停顿时,横栏中设置了该数字 `hotkey` 的按钮也会触发。当同一次绘制中的两个按钮指定相同的 `hotkey` 时,由后一个按钮获得它。`autoFocus` 在任何控件上都只接受 `true`,因此要关闭它,请省略该 prop。277更多 `Button` 规则:`action` 指定 Claude Code 自身的某个[快捷键操作](/docs/zh-CN/keybindings),当用户为该操作设置的绑定是组合键或带修饰键的按键时,该绑定会按下此按钮。当用户在空的输入框中只输入某个数字并停顿时,横栏中设置了该数字 `hotkey` 的按钮也会触发。当同一次绘制中的两个按钮指定相同的 `hotkey` 时,由后一个按钮获得它。`autoFocus` 在任何控件上都只接受 `true`,因此要关闭它,请省略该 prop。

272 278 

Details

187| `prompt.fill` | `() => ({ isFilled: true })` |187| `prompt.fill` | `() => ({ isFilled: true })` |

188| `$.prompt.read` | `() => ({ value: { text: '...', cursor: 0 } })` |188| `$.prompt.read` | `() => ({ value: { text: '...', cursor: 0 } })` |

189| `$.ui.copy` | `() => ({ value: { isCopied: true } })` |189| `$.ui.copy` | `() => ({ value: { isCopied: true } })` |

190| `$.ui.notify` | `() => ({ value: { isSent: true, channel: 'terminal_bell' } })`。文本是 `e.text`,标题是 `e.title`。 |

190| `$.session.messages` | `() => ({ value: [{ role: 'assistant', text: '...', toolUses: [] }] })` |191| `$.session.messages` | `() => ({ value: [{ role: 'assistant', text: '...', toolUses: [] }] })` |

191| `$.session.id`、`$.agent.list` | `() => ({ value: 'abc123' })`、`() => ({ value: [] })` |192| `$.session.id`、`$.agent.list` | `() => ({ value: 'abc123' })`、`() => ({ value: [] })` |

192| `session.send` | `() => ({ isDelivered: true })`。`e.to` 即使您的 mod 传递 `{ sessionId }`,也作为字符串到达。 |193| `session.send` | `() => ({ isDelivered: true })`。`e.to` 即使您的 mod 传递 `{ sessionId }`,也作为字符串到达。 |

Details

830 830 

831* **`Failed to load hooks from <path>: <reason>`**:`hooks/hooks.json` 不是有效的 JSON 或失败 hooks 架构。原因命名解析或验证错误。修复文件。要在发布插件前在 `hooks/hooks.json` 中捕获 JSON 语法问题,请在您的 shell 中运行 `claude plugin validate <plugin-directory>`831* **`Failed to load hooks from <path>: <reason>`**:`hooks/hooks.json` 不是有效的 JSON 或失败 hooks 架构。原因命名解析或验证错误。修复文件。要在发布插件前在 `hooks/hooks.json` 中捕获 JSON 语法问题,请在您的 shell 中运行 `claude plugin validate <plugin-directory>`

832* **`hooks path not found: <path>`**:清单的 `hooks` 字段命名在该路径相对于插件根处不存在的文件。修复路径或添加文件832* **`hooks path not found: <path>`**:清单的 `hooks` 字段命名在该路径相对于插件根处不存在的文件。修复路径或添加文件

833* **`hooks path escapes plugin directory: <path>`**:请参阅 [Path escapes plugin directory](/docs/zh-CN/errors#path-escapes-plugin-directory)

833 834 

834#### 成绩单中的 `hook error` 通知835#### 成绩单中的 `hook error` 通知

835 836 


948 949 

949Claude Code 根据插件根目录解析了您的 `plugin.json` 或市场条目中的路径,但在那里找不到任何内容。消息中的路径是它检查的绝对路径,因此请将其与磁盘上的内容进行比较。修复路径或创建目录,然后运行 `/reload-plugins`。950Claude Code 根据插件根目录解析了您的 `plugin.json` 或市场条目中的路径,但在那里找不到任何内容。消息中的路径是它检查的绝对路径,因此请将其与磁盘上的内容进行比较。修复路径或创建目录,然后运行 `/reload-plugins`。

950 951 

952> [!NOTE]

953>

954> 在 v2.1.299 之前,此消息可能会在启动时出现在带有 `synced[0]` 等标签的行上。该行对应[从 claude.ai 同步](/docs/zh-CN/plugins/loading#synced-plugins)的插件。当您计算机上的另一个 Claude Code 会话刚刚更新了该插件并移动了其文件时,就会出现此消息。要加载该插件,请重启 Claude Code。要避免因此原因出现该消息,请更新到 v2.1.299 或更高版本。

955 

951清单中的路径相对于插件根目录,以 `./` 开头。解析到插件根目录外的路径会被报告为 `<component> path escapes plugin directory`,并被丢弃。956清单中的路径相对于插件根目录,以 `./` 开头。解析到插件根目录外的路径会被报告为 `<component> path escapes plugin directory`,并被丢弃。

952 957 

953### `--plugin-dir` 在市场根目录处不会加载 `plugins/` 下的插件958### `--plugin-dir` 在市场根目录处不会加载 `plugins/` 下的插件

Details

55当您的请求通过 [LLM 网关](/docs/zh-CN/llm-gateway)、自定义 `ANTHROPIC_BASE_URL` 或云提供商基础 URL 覆盖(例如 [`ANTHROPIC_BEDROCK_BASE_URL`](/docs/zh-CN/env-vars))时,缓存的内容取决于网关如何处理 Claude Code 发送的 [`cache_control` 标记](https://platform.claude.com/docs/en/build-with-claude/prompt-caching#explicit-cache-breakpoints):55当您的请求通过 [LLM 网关](/docs/zh-CN/llm-gateway)、自定义 `ANTHROPIC_BASE_URL` 或云提供商基础 URL 覆盖(例如 [`ANTHROPIC_BEDROCK_BASE_URL`](/docs/zh-CN/env-vars))时,缓存的内容取决于网关如何处理 Claude Code 发送的 [`cache_control` 标记](https://platform.claude.com/docs/en/build-with-claude/prompt-caching#explicit-cache-breakpoints):

56 56 

57* **原样转发标记**:该块和您的对话的缓存方式与在提供商自己的端点上相同。57* **原样转发标记**:该块和您的对话的缓存方式与在提供商自己的端点上相同。

58* **以指明 `cache_control` 的 `400` 错误拒绝带标记的请求**:Claude Code 会重新发送请求,将标记从该块移到您的最后一条对话消息上,并在对话的其余部分保持在那里。该块作为未缓存的输入计费;您的对话保持缓存。58* **以指明 `cache_control` 的 `400` 错误拒绝带标记的请求**:Claude Code 会重新发送请求,将标记从该块移到您的最后一条对话消息上,并一直保持在那里,直到 Claude Code 退出。该块作为未缓存的输入计费;您的对话保持缓存。

59* **删除标记但返回成功**:您的整个对话历史在每个轮次上都作为未缓存的输入计费。将块形式的系统内容转换为纯字符串的网关也会以相同的方式丢弃标记。59* **删除标记但返回成功**:您的整个对话历史在每个轮次上都作为未缓存的输入计费。将块形式的系统内容转换为纯字符串的网关也会以相同的方式丢弃标记。

60 60 

61有关每个提供商存储和处理的内容,请参阅[数据使用](/docs/zh-CN/data-usage)。无论缓存位于何处,条目都会在一段时间不活动后过期,下面的[缓存生命周期](#cache-lifetime)涵盖了 TTL 以及如何延长它。61有关每个提供商存储和处理的内容,请参阅[数据使用](/docs/zh-CN/data-usage)。无论缓存位于何处,条目都会在一段时间不活动后过期,下面的[缓存生命周期](#cache-lifetime)涵盖了 TTL 以及如何延长它。


109工具定义位于系统提示词层,因此当请求中的工具定义集在轮次之间发生变化时,缓存会失效。切换[顾问工具](/docs/zh-CN/advisor)是一个例外:其定义位于缓存断点之后,因此启用或禁用 `/advisor` 会保持缓存的前缀完整。[MCP 服务器](/docs/zh-CN/mcp)的更改是否会导致缓存失效,取决于[工具搜索](/docs/zh-CN/mcp#scale-with-mcp-tool-search)是否延迟加载会话的 MCP 工具,这是受支持模型上的默认行为:109工具定义位于系统提示词层,因此当请求中的工具定义集在轮次之间发生变化时,缓存会失效。切换[顾问工具](/docs/zh-CN/advisor)是一个例外:其定义位于缓存断点之后,因此启用或禁用 `/advisor` 会保持缓存的前缀完整。[MCP 服务器](/docs/zh-CN/mcp)的更改是否会导致缓存失效,取决于[工具搜索](/docs/zh-CN/mcp#scale-with-mcp-tool-search)是否延迟加载会话的 MCP 工具,这是受支持模型上的默认行为:

110 110 

111* **工具延迟加载**:Claude Code 在整个对话中保持对话第一个请求中的工具列表,因此服务器在会话中途连接或断开连接不会干扰任何已缓存的内容。在第一个请求之后才完成连接的服务器会将其工具作为延迟定义提供,由 Claude 按需加载。111* **工具延迟加载**:Claude Code 在整个对话中保持对话第一个请求中的工具列表,因此服务器在会话中途连接或断开连接不会干扰任何已缓存的内容。在第一个请求之后才完成连接的服务器会将其工具作为延迟定义提供,由 Claude 按需加载。

112* **工具预先加载**:添加定义会使缓存失效,有意移除定义也会。这适用于[工具搜索低于其 `auto` 阈值、被禁用或不可用](/docs/zh-CN/mcp#configure-tool-search)的情况,例如在 Google Cloud 的 Agent Platform 上使用早于 Opus 4.5、Sonnet 4.5 和 Haiku 4.5 的模型、使用自定义 `ANTHROPIC_BASE_URL` 网关,或在 Microsoft Foundry [托管于 Azure 的部署](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options)上且 Claude Code 检测到该部署拒绝工具搜索时。112* **工具预先加载**:添加定义会使缓存失效,有意移除定义也会。这适用于[工具搜索被关闭或不可用](/docs/zh-CN/mcp#configure-tool-search)的情况,例如:

113 * Google Cloud 的 Agent Platform 上早于 Opus 4.5、Sonnet 4.5 和 Haiku 4.5 的模型

114 * Microsoft Foundry [托管于 Azure 的部署](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options),且 Claude Code 检测到该部署拒绝工具搜索时

113 115 

114没有工具搜索时,会话中途的服务器更改是否使缓存失效取决于更改的内容。对于每种更改,下表给出缓存是否保持以及下一个请求中工具定义的变化情况。116没有工具搜索时,会话中途的服务器更改是否使缓存失效取决于更改的内容。对于每种更改,下表给出缓存是否保持以及下一个请求中工具定义的变化情况。

115 117 


169 171 

170### 压缩对话172### 压缩对话

171 173 

172[压缩](/docs/zh-CN/context-window#what-survives-compaction)会用摘要替换您的消息历史记录。按照设计,这会使对话层失效,因为下一个请求拥有一个新的、更短的历史记录,与旧的历史记录不共享前缀。Claude Code 会重用系统提示词层,除非该对话是[在保留了原本会改变的系统提示词的情况下恢复的](#resuming-a-session);在这种情况下,第一次压缩会切换到当前的提示词,该层会重建一次。它会从磁盘重新加载项目上下文,仅当 CLAUDE.md 和记忆自会话开始以来未改变时才会命中缓存。174[压缩](/docs/zh-CN/context-window#what-survives-compaction)会用摘要替换您的消息历史记录。按照设计,这会使对话层失效:下一个请求拥有一个新的、更短的历史记录,与旧的历史记录不共享前缀。系统提示词层和项目上下文层可以保持缓存:

173 175 

174为了生成摘要,Claude Code 会发送一个单独的请求,其系统提示词、工具和历史记录与您的对话相同,并附加一条摘要指令作为最后的用户消息。当缓存温暖时,该请求会从缓存中读取您的前缀,因此会话中途的 `/compact` 成本只是上下文大小所暗示成本的一小部分,其大部分时间都花在生成摘要上。176* **系统提示词**:下一个请求会从缓存中读取此层,除非某个[恢复的对话](#resuming-a-session)保留了现已过时的系统提示词。该对话第一次被压缩时,Claude Code 会将其切换为当前的提示词,下一个请求会重建此层的缓存一次。

177* **项目上下文**:Claude Code 会从磁盘重新加载此层。仅当 CLAUDE.md 和记忆自会话开始以来未改变时,下一个请求才会从缓存中读取它。

175 178 

176在超过[缓存生命周期](#cache-lifetime)的中断之后,已没有缓存可读,因此摘要请求会将完整历史记录作为未缓存的输入重新处理。这就是为什么在您[恢复旧会话](/docs/zh-CN/sessions#resume-a-session)时 `/compact` 的成本最高。无论缓存温暖还是已冷,压缩后的轮次都只需为短得多的摘要重建对话缓存,因此该轮次并不是耗时的部分。179为了生成摘要,Claude Code 会发送一个单独的请求。该请求会重复您对话的系统提示词、工具以及正在被摘要的历史记录,并以一条摘要指令结尾。当缓存温暖时,该请求会从缓存中读取您的前缀。因此,会话中途的 `/compact` 成本只是上下文大小所暗示成本的一小部分,其大部分时间都花在生成摘要上。

180 

181在超过[缓存生命周期](#cache-lifetime)的中断之后,已没有缓存可读,因此摘要请求会将该历史记录作为未缓存的输入重新处理。这就是为什么在您[恢复旧会话](/docs/zh-CN/sessions#resume-a-session)时 `/compact` 的成本最高。无论缓存温暖还是已冷,压缩后的轮次都只需为短得多的摘要重建对话缓存,因此该轮次并不是耗时的部分。

177 182 

178> [!TIP]183> [!TIP]

179>184>

Details

26在使用 Remote Control 之前,请确认您的环境满足以下条件:26在使用 Remote Control 之前,请确认您的环境满足以下条件:

27 27 

28* **订阅**:在 Pro、Max、Team 和 Enterprise 计划中可用。不支持 API 密钥。在 Team 和 Enterprise 上,Owner 必须首先在 [Claude Code 管理员设置](https://claude.ai/admin-settings/claude-code)中启用 Remote Control 切换。28* **订阅**:在 Pro、Max、Team 和 Enterprise 计划中可用。不支持 API 密钥。在 Team 和 Enterprise 上,Owner 必须首先在 [Claude Code 管理员设置](https://claude.ai/admin-settings/claude-code)中启用 Remote Control 切换。

29* **自定义角色**:如果您的 Enterprise 组织使用[自定义角色](https://support.claude.com/en/articles/13930452)管理您的访问权限,您的角色必须同时授予您云端会话权限和 **Claude Code remote control** 权限。如果缺少其中任何一项,启动 Remote Control 时会显示 [`Remote Control is disabled by your organization's policy`](#remote-control-is-disabled-by-your-organizations-policy)。请让 Owner 在 [**Organization settings > Roles**](https://claude.ai/admin-settings/roles) 中检查您的角色并添加缺少的权限。

29* **身份验证**:运行 `claude` 并使用 `/login` 通过 claude.ai 登录(如果您还没有登录)。如果没有符合条件的登录,`claude remote-control` 会以错误退出,而 `claude --remote-control` 仍会启动交互式会话,并在启动后不久显示 Remote Control 失败通知。30* **身份验证**:运行 `claude` 并使用 `/login` 通过 claude.ai 登录(如果您还没有登录)。如果没有符合条件的登录,`claude remote-control` 会以错误退出,而 `claude --remote-control` 仍会启动交互式会话,并在启动后不久显示 Remote Control 失败通知。

30* **API 端点**:在以下任何配置中都不可用:31* **API 端点**:在以下任何配置中都不可用:

31 * 您使用 Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry。32 * 您使用 Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry。


33 * 您通过企业 [Claude apps gateway](/docs/zh-CN/claude-apps-gateway) 登录。34 * 您通过企业 [Claude apps gateway](/docs/zh-CN/claude-apps-gateway) 登录。

34* **功能标志评估**:如果您设置了[关闭功能标志评估的环境变量](/docs/zh-CN/env-vars#features-that-need-feature-flag-fetching),Remote Control 是否可用取决于您设置的是哪一个:35* **功能标志评估**:如果您设置了[关闭功能标志评估的环境变量](/docs/zh-CN/env-vars#features-that-need-feature-flag-fetching),Remote Control 是否可用取决于您设置的是哪一个:

35 * 如果您设置了 `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` 或 `DISABLE_GROWTHBOOK`,Remote Control 不可用。在您的 shell 环境或 [`settings.json` 文件](/docs/zh-CN/settings-reference#all-settings)的 `env` 块中取消设置该变量,以使用 Remote Control。36 * 如果您设置了 `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` 或 `DISABLE_GROWTHBOOK`,Remote Control 不可用。在您的 shell 环境或 [`settings.json` 文件](/docs/zh-CN/settings-reference#all-settings)的 `env` 块中取消设置该变量,以使用 Remote Control。

36 * 如果您仅设置了 `DISABLE_TELEMETRY` 或 `DO_NOT_TRACK`,Remote Control 保持可用,除非您的组织需要[受信任的设备](#trusted-devices)。如果需要,取消设置该变量以使用 Remote Control。使用设置了任一变量的 Remote Control 需要 Claude Code v2.1.283 或更高版本。37 * 如果您仅设置了 `DISABLE_TELEMETRY` 或 `DO_NOT_TRACK`,Remote Control 保持可用,除非您的组织需要[受信任的设备](#trusted-devices)。如果需要,取消设置该变量以使用 Remote Control。使用设置了任一变量的 Remote Control 需要 Claude Code v2.1.283 或更高版本,在 Claude Desktop 应用中则需要 v2.1.304 或更高版本。

37* **工作区信任**:在您尚未信任的目录中,`claude remote-control` 会打印信任该目录会启用的功能,并在启动前询问 `Trust <directory>? [y/N]`。回答 `y` 会保存该选择,但在您的主目录中除外,在主目录中信任永远不会被保存,每次运行时都会返回该问题。当其标准输入或输出不是终端时,该命令无法询问并以 [`Workspace not trusted`](/docs/zh-CN/errors#workspace-not-trusted-when-starting-remote-control) 错误退出。38* **工作区信任**:在您尚未信任的目录中,`claude remote-control` 会打印信任该目录会启用的功能,并在启动前询问 `Trust <directory>? [y/N]`。回答 `y` 会保存该选择,但在您的主目录中除外,在主目录中信任永远不会被保存,每次运行时都会返回该问题。当其标准输入或输出不是终端时,该命令无法询问并以 [`Workspace not trusted`](/docs/zh-CN/errors#workspace-not-trusted-when-starting-remote-control) 错误退出。

38 39 

39## 启动远程控制会话40## 启动远程控制会话


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

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

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

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

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

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

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


203 204 

204如果仅设置了 `DISABLE_TELEMETRY` 或 `DO_NOT_TRACK`,您的会话不会通过您组织的管理员默认值或 Claude Code 自身的默认值自动连接。如果有其他因素导致 Remote Control 对您不可用,例如 `DISABLE_GROWTHBOOK` 或 LLM 网关,请改为从[要求](#requirements)开始。205如果仅设置了 `DISABLE_TELEMETRY` 或 `DO_NOT_TRACK`,您的会话不会通过您组织的管理员默认值或 Claude Code 自身的默认值自动连接。如果有其他因素导致 Remote Control 对您不可用,例如 `DISABLE_GROWTHBOOK` 或 LLM 网关,请改为从[要求](#requirements)开始。

205 206 

206在仅设置了 `DISABLE_TELEMETRY` 或 `DO_NOT_TRACK` 的情况下打开自动连接需要 Claude Code v2.1.283 或更高版本。要自动连接,请检查您的组织是否要求[受信任设备](#trusted-devices):207在仅设置了 `DISABLE_TELEMETRY` 或 `DO_NOT_TRACK` 的情况下打开自动连接之前,请确认您的 Claude Code 版本满足[这些变量的要求](#requirements)。然后检查您的组织是否要求[受信任设备](#trusted-devices):

207 208 

208* **不要求**:在 `/config` 中将 **Enable Remote Control for all sessions** 设置为 `true`。209* **不要求**:在 `/config` 中将 **Enable Remote Control for all sessions** 设置为 `true`。

209* **要求**:设置了 `DISABLE_TELEMETRY` 或 `DO_NOT_TRACK` 时,Remote Control 不可用。取消设置您所设置的这两个变量中的任意一个。如果您的会话仍未自动连接,请在 `/config` 中将 **Enable Remote Control for all sessions** 设置为 `true`。210* **要求**:设置了 `DISABLE_TELEMETRY` 或 `DO_NOT_TRACK` 时,Remote Control 不可用。取消设置您所设置的这两个变量中的任意一个。如果您的会话仍未自动连接,请在 `/config` 中将 **Enable Remote Control for all sessions** 设置为 `true`。


224 225 

225当您在具有远程控制的 Claude Desktop 或 IDE 扩展中恢复对话时,Claude Code 会将其重新附加到现有 claude.ai 会话,而不是向会话列表添加新会话。226当您在具有远程控制的 Claude Desktop 或 IDE 扩展中恢复对话时,Claude Code 会将其重新附加到现有 claude.ai 会话,而不是向会话列表添加新会话。

226 227 

228### 设置项目的默认生成模式

229 

230如果 `claude remote-control` 在启动时打印 `Spawn mode: <mode> (saved for this folder; press w to change)`,则表示服务器正在以之前为此项目保存的生成模式启动。

231 

232保存的模式来自您在自己的终端中做出的选择。如果 `claude remote-control` 曾在那里询问 `Spawn mode for this project:`,Claude Code 会保留您的回答:`1` 表示 `same-dir`,`2` 表示 `worktree`。如果您在其运行时按了 `w`,Claude Code 会保留您切换到的模式,即使该次运行是使用 `--spawn same-dir` 或 `--spawn worktree` 启动的。

233 

234* 当服务器以 `same-dir` 或 `worktree` 模式运行时,在服务器的终端中按 `w` 切换到另一种模式。切换需要 git 仓库或 `WorktreeCreate` hook。

235* 要在某一次运行中使用不同的模式,请传递 `--spawn <mode>`。

236 

227## 连接和安全237## 连接和安全

228 238 

229您的本地 Claude Code 会话仅发出出站 HTTPS 请求,从不在您的机器上打开入站端口。当您启动 Remote Control 时,它向 Anthropic API 注册并轮询工作。当您从另一个设备连接时,服务器通过流连接在网络或移动客户端和您的本地会话之间路由消息。239您的本地 Claude Code 会话仅发出出站 HTTPS 请求,从不在您的机器上打开入站端口。当您启动 Remote Control 时,它向 Anthropic API 注册并轮询工作。当您从另一个设备连接时,服务器通过流连接在网络或移动客户端和您的本地会话之间路由消息。


426设置了[环境变量](/docs/zh-CN/env-vars#features-that-need-feature-flag-fetching)来关闭功能标志评估,完整消息命名了 Claude Code 找到的变量。在 2.1.154 之前的版本上,相同的配置会产生"Remote Control is not yet enabled for your account"。要做什么取决于消息命名的变量:436设置了[环境变量](/docs/zh-CN/env-vars#features-that-need-feature-flag-fetching)来关闭功能标志评估,完整消息命名了 Claude Code 找到的变量。在 2.1.154 之前的版本上,相同的配置会产生"Remote Control is not yet enabled for your account"。要做什么取决于消息命名的变量:

427 437 

428* **`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` 或 `DISABLE_GROWTHBOOK`**:在设置它的任何地方取消设置变量,在您的 shell 环境或[`settings.json` 文件](/docs/zh-CN/settings-reference#all-settings)的 `env` 块中。438* **`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` 或 `DISABLE_GROWTHBOOK`**:在设置它的任何地方取消设置变量,在您的 shell 环境或[`settings.json` 文件](/docs/zh-CN/settings-reference#all-settings)的 `env` 块中。

429* **`DISABLE_TELEMETRY` 或 `DO_NOT_TRACK`**:在 Pro、Max、Team 或 Enterprise 计划上,且 `DISABLE_GROWTHBOOK` 未设置,这些变量会保留 Remote Control 可用,除非您的组织需要[可信设备](#trusted-devices)。如果需要,在设置它的任何地方取消设置变量以使用 Remote Control。从 v2.1.154 到 v2.1.282,任一变量都会产生此消息,因此请将 Claude Code 更新到 v2.1.283 或更高版本。439* **`DISABLE_TELEMETRY` 或 `DO_NOT_TRACK`**:在 Pro、Max、Team 或 Enterprise 计划上,且 `DISABLE_GROWTHBOOK` 未设置,这些变量会保留 Remote Control 可用,除非您的组织需要[可信设备](#trusted-devices)。如果需要,在设置它的任何地方取消设置变量以使用 Remote Control。在 v2.1.154 到 v2.1.282 上,设置任一变量都会看到此消息,因此请将 Claude Code 更新到满足[这些变量的要求](#requirements)的版本。

430 440 

431### "Remote Control is only available when using Claude via api.anthropic.com"441### "Remote Control is only available when using Claude via api.anthropic.com"

432 442 


441* **错误提到 `disableRemoteControl`**:您的 IT 管理员已通过[托管设置](/docs/zh-CN/managed-settings)在此设备上禁用了 Remote Control,独立于组织范围的切换和您的登录方式。451* **错误提到 `disableRemoteControl`**:您的 IT 管理员已通过[托管设置](/docs/zh-CN/managed-settings)在此设备上禁用了 Remote Control,独立于组织范围的切换和您的登录方式。

442* **您的 claude.ai 计划是 Pro 或 Max**:Claude Code 仍然以来自较早登录的 Team 或 Enterprise 组织身份登录,因此它检查该组织的 Remote Control 策略。运行 `/status` 以查看您的登录使用的计划和组织。运行 `claude auth logout` 然后 `claude auth login` 以在您当前的计划下重新登录。452* **您的 claude.ai 计划是 Pro 或 Max**:Claude Code 仍然以来自较早登录的 Team 或 Enterprise 组织身份登录,因此它检查该组织的 Remote Control 策略。运行 `/status` 以查看您的登录使用的计划和组织。运行 `claude auth logout` 然后 `claude auth login` 以在您当前的计划下重新登录。

443* **消息未说联系您的组织管理员**:您的组织应用了 [HIPAA 配置](/docs/zh-CN/hipaa-setup),该配置会关闭 Remote Control。要确认这一点,请运行 `/status` 并在 `Organization configuration` 行中查找 `HIPAA`。所有者会在[管理设置](https://claude.ai/admin-settings/claude-code)中看到 **Remote Control** 切换呈灰显状态,且无法将其打开。如果您对该配置有疑问,请询问所有者,所有者可以联系您组织的 Anthropic 客户团队。在 v2.1.267 之前,此情况显示"Remote Control isn't available for your organization due to its compliance policy"。453* **消息未说联系您的组织管理员**:您的组织应用了 [HIPAA 配置](/docs/zh-CN/hipaa-setup),该配置会关闭 Remote Control。要确认这一点,请运行 `/status` 并在 `Organization configuration` 行中查找 `HIPAA`。所有者会在[管理设置](https://claude.ai/admin-settings/claude-code)中看到 **Remote Control** 切换呈灰显状态,且无法将其打开。如果您对该配置有疑问,请询问所有者,所有者可以联系您组织的 Anthropic 客户团队。在 v2.1.267 之前,此情况显示"Remote Control isn't available for your organization due to its compliance policy"。

454* **Remote Control 对组织中的其他人有效,但对您无效**:如果您的 Enterprise 组织使用[自定义角色](https://support.claude.com/en/articles/13930452)管理您的访问权限,则原因可能在于您的角色。Remote Control 同时需要云端会话权限和 **Claude Code remote control** 权限。请让所有者检查您的角色是否同时包含这两项权限,并在 [**Organization settings > Roles**](https://claude.ai/admin-settings/roles) 中添加缺少的权限。

444* **否则,所有者尚未为您的组织启用它**:Remote Control 在 Team 和 Enterprise 计划上默认关闭。所有者可以在 [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code) 通过打开 **Remote Control** 切换来启用它。此切换是服务器端组织设置。455* **否则,所有者尚未为您的组织启用它**:Remote Control 在 Team 和 Enterprise 计划上默认关闭。所有者可以在 [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code) 通过打开 **Remote Control** 切换来启用它。此切换是服务器端组织设置。

445 456 

446在 v2.1.281 之前,当 Claude Code 未在此计算机上加载您的组织策略时,此消息也会出现,例如在离线启动后。更高版本将该状态报告为[`Couldn't verify your organization's policy for remote control`](#couldnt-verify-your-organizations-policy-for-remote-control)。457在 v2.1.281 之前,当 Claude Code 未在此计算机上加载您的组织策略时,此消息也会出现,例如在离线启动后。更高版本将该状态报告为[`Couldn't verify your organization's policy for remote control`](#couldnt-verify-your-organizations-policy-for-remote-control)。

routines.md +10 −9

Details

33 33 

34Team 和 Enterprise 的 Owner 可以通过 [**Organization settings > Capabilities > Remote sessions**](https://claude.ai/admin-settings/capabilities) 中的 **Scheduled tasks (Was Routines)** 开关为所有成员关闭定时任务。关闭该开关后,现有定时任务将停止运行,成员也无法创建新的定时任务。34Team 和 Enterprise 的 Owner 可以通过 [**Organization settings > Capabilities > Remote sessions**](https://claude.ai/admin-settings/capabilities) 中的 **Scheduled tasks (Was Routines)** 开关为所有成员关闭定时任务。关闭该开关后,现有定时任务将停止运行,成员也无法创建新的定时任务。

35 35 

36如果您的 Enterprise 组织通过[自定义角色](https://support.claude.com/en/articles/13930452)管理您的访问权限,您还需要一个包含定时任务权限的角色。Owner 可以在 [**Organization settings > Roles**](https://claude.ai/admin-settings/roles) 中角色的 **Remote sessions** 部分添加该权限。

37 

36## 示例用例38## 示例用例

37 39 

38每个示例都将一种触发器类型与适合定时任务的工作类型相匹配:无人值守、可重复且有明确结果。40每个示例都将一种触发器类型与适合定时任务的工作类型相匹配:无人值守、可重复且有明确结果。


48 50 

49您可以在 Web 端的 [claude.ai/code/routines](https://claude.ai/code/routines)、Desktop 应用或 CLI 中创建定时任务。这三个使用入口都写入同一个云端账户,因此您在其中一处创建的定时任务会立即显示在其他位置。在 Desktop 应用的 **Code** 标签页中,点击侧边栏中或侧边栏 **More** 菜单中的 **Scheduled**,然后点击 **New task**,并继续按照[从 Web 创建](#create-from-the-web)进行操作。51您可以在 Web 端的 [claude.ai/code/routines](https://claude.ai/code/routines)、Desktop 应用或 CLI 中创建定时任务。这三个使用入口都写入同一个云端账户,因此您在其中一处创建的定时任务会立即显示在其他位置。在 Desktop 应用的 **Code** 标签页中,点击侧边栏中或侧边栏 **More** 菜单中的 **Scheduled**,然后点击 **New task**,并继续按照[从 Web 创建](#create-from-the-web)进行操作。

50 52 

51定时任务作为完整的 Claude Code 云端会话自主运行。您无需选择权限模式。会话会运行 shell 命令、使用提交到所克隆仓库中的 [skill](/docs/zh-CN/skills),并调用您包含的任何连接器,所有这些都无需停下来等待批准,某些 [Artifact 操作](#when-a-run-publishes-an-artifact-without-asking)除外。53定时任务作为完整的 Claude Code 云端会话自主运行。您无需选择权限模式。会话会运行 shell 命令、使用 [skill](/docs/zh-CN/skills),并调用您包含的任何连接器,所有这些都无需停下来等待批准,某些 [Artifact 操作](#when-a-run-publishes-an-artifact-without-asking)除外。在[项目](/docs/zh-CN/claude-projects#what-threads-pick-up-from-your-repositories)之外,这些 skill 包括提交到所克隆仓库中的 skill。

52 54 

53定时任务可以访问的内容由以下各项决定:55定时任务可以访问的内容由以下各项决定:

54 56 


116 118 

117点击 **Create**。对话框关闭后,新任务的详情页将打开。任务会在其某个触发器下次匹配时运行。要立即启动一次运行,请在详情页上点击 **Run now**。119点击 **Create**。对话框关闭后,新任务的详情页将打开。任务会在其某个触发器下次匹配时运行。要立即启动一次运行,请在详情页上点击 **Run now**。

118 120 

119每次运行都会在您的其他会话旁边创建一个新会话,您可以在其中查看 Claude 执行了哪些操作、审查更改并创建 Pull Request。121要查看某次运行执行了哪些操作,请在详情页的 **History** 列表中点击该运行。该运行会[以完整会话的形式打开](#view-and-interact-with-runs)(每次运行对应一个新会话),您可以在其中查看 Claude 执行了哪些操作、审查更改并创建 Pull Request。

120 122 

121#### 主视图中包含 Repositories 和 Environment 的对话框123#### 主视图中包含 Repositories 和 Environment 的对话框

122 124 


147 149 

148计划触发器按定期节奏运行任务,或在未来某个特定时间运行一次。在 Web 端任务的创建或编辑对话框中,选择一个预设频率,例如每小时、每天或每周:150计划触发器按定期节奏运行任务,或在未来某个特定时间运行一次。在 Web 端任务的创建或编辑对话框中,选择一个预设频率,例如每小时、每天或每周:

149 151 

150* **时区**:时间以您的本地时区输入并自动转换,因此无论云基础设施位于何处,任务都会在该当地时间运行。

151* **整点运行**:如果您将运行安排在整点(例如 9:00),它可能会晚几分钟才开始。要在接近计划时间时开始,请选择整点后几分钟,例如 9:07。152* **整点运行**:如果您将运行安排在整点(例如 9:00),它可能会晚几分钟才开始。要在接近计划时间时开始,请选择整点后几分钟,例如 9:07。

152* **自定义间隔**:对于每两小时这样的自定义间隔,请在对话框中选择最接近的预设,然后在 CLI 中运行 `/schedule update` 以设置特定的 cron 表达式。最小间隔为一小时;运行频率更高的表达式会被拒绝。153* **自定义间隔**:如果预设中没有您需要的节奏,请先创建任务,然后在其[编辑对话框](#edit-and-control-scheduled-tasks)中选择 **Custom**。接着输入 cron 表达式,例如 `0 */2 * * *` 表示每两小时运行一次。要在 CLI 中设置,请运行 [`/schedule update`](#manage-scheduled-tasks-from-the-cli)。运行频率高于每小时一次的表达式会被拒绝。

154* **时区**:选择预设频率时,请以您的本地时区输入时间。

153 155 

154#### 安排一次性运行156#### 安排一次性运行

155 157 


159* 在发布完成后打开一个清理 PR161* 在发布完成后打开一个清理 PR

160* 在上游更改发布后启动后续工作162* 在上游更改发布后启动后续工作

161 163 

162任务运行后,它会自行关闭,Web UI 会将其标记为 **Completed**。要再次运行它,请在 Web 端打开任务的编辑对话框(对于一次性任务,该对话框提供 **One-time** 选项),并设置新的时间。164任务运行后,它会自行关闭,Web UI 会将其标记为 **Completed**。要再次运行它,请在 Web 端打开任务的[编辑对话框](#edit-and-control-scheduled-tasks),并选择 **One-time** 或 **Once**(以您的对话框中显示的标签为准)。然后以您的本地时区设置新的日期和时间并保存。

163 165 

164在 CLI 中用自然语言描述时间即可创建一次性运行。Claude 会根据当前时间解析该短语,并在保存前确认绝对时间戳。166在 CLI 中用自然语言描述时间即可创建一次性运行。Claude 会根据当前时间解析该短语,并在保存前确认绝对时间戳。

165 167 


171/schedule in 2 weeks, open a cleanup PR that removes the feature flag173/schedule in 2 weeks, open a cleanup PR that removes the feature flag

172```174```

173 175 

174与定期计划相同的本地时间到 UTC 的转换同样适用于一次性时间戳。

175 

176一次性运行与其他计划运行计入相同的每小时限制。详情请参阅[用量和限制](#usage-and-limits)。176一次性运行与其他计划运行计入相同的每小时限制。详情请参阅[用量和限制](#usage-and-limits)。

177 177 

178### 添加 API 触发器178### 添加 API 触发器


356连接器是您账户中的 [claude.ai 集成](/docs/zh-CN/mcp#use-mcp-servers-from-claude-ai)。您在 CLI 中使用 `claude mcp add` 在本地添加的 MCP 服务器存储在您的计算机上,而不是您的 claude.ai 账户中,因此它们不会出现在连接器列表中。要在定时任务中使用其中某个服务器:356连接器是您账户中的 [claude.ai 集成](/docs/zh-CN/mcp#use-mcp-servers-from-claude-ai)。您在 CLI 中使用 `claude mcp add` 在本地添加的 MCP 服务器存储在您的计算机上,而不是您的 claude.ai 账户中,因此它们不会出现在连接器列表中。要在定时任务中使用其中某个服务器:

357 357 

358* **作为连接器**:在 [claude.ai/customize/connectors](https://claude.ai/customize/connectors) 将其添加为连接器358* **作为连接器**:在 [claude.ai/customize/connectors](https://claude.ai/customize/connectors) 将其添加为连接器

359* **在仓库中**:对于只有一个仓库的定时任务,您也可以改为在已提交的 [`.mcp.json`](/docs/zh-CN/mcp#project-scope) 中声明该服务器,使其成为所克隆仓库的一部分359* **在仓库中**:对于位于[项目](/docs/zh-CN/claude-projects#what-threads-pick-up-from-your-repositories)之外且只有一个仓库的定时任务,您也可以改为在已提交的 [`.mcp.json`](/docs/zh-CN/mcp#project-scope) 中声明该服务器。项目中的定时任务不会加载 `.mcp.json`,因此请将该服务器添加为连接器

360 360 

361创建定时任务时,默认会包含您当前已连接的所有连接器。请移除不需要的连接器,以限制 Claude 在运行期间可以访问的工具。您也可以直接在任务的创建或编辑对话框中添加连接器。361创建定时任务时,默认会包含您当前已连接的所有连接器。请移除不需要的连接器,以限制 Claude 在运行期间可以访问的工具。您也可以直接在任务的创建或编辑对话框中添加连接器。

362 362 


452* 您处于云端会话中,此时提交 `/schedule` 会回复该命令在该环境中不可用。请改为在 [Web UI](https://claude.ai/code/routines) 中管理定时任务452* 您处于云端会话中,此时提交 `/schedule` 会回复该命令在该环境中不可用。请改为在 [Web UI](https://claude.ai/code/routines) 中管理定时任务

453* 您组织的策略禁用了定时任务所需的[云端会话](/docs/zh-CN/claude-code-on-the-web)。在这种情况下,提交 `/schedule` 会改为回复 [`Cloud sessions are disabled by your organization's policy`](/docs/zh-CN/errors#cloud-sessions-are-disabled-by-your-organizations-policy)。在 v2.1.268 之前,它会返回 `Unknown command: /schedule`453* 您组织的策略禁用了定时任务所需的[云端会话](/docs/zh-CN/claude-code-on-the-web)。在这种情况下,提交 `/schedule` 会改为回复 [`Cloud sessions are disabled by your organization's policy`](/docs/zh-CN/errors#cloud-sessions-are-disabled-by-your-organizations-policy)。在 v2.1.268 之前,它会返回 `Unknown command: /schedule`

454* Owner 为您的 Team 或 Enterprise 组织[关闭了定时任务](#routines-are-disabled-by-your-organizations-policy)。在 v2.1.227 之前,这种情况下命令仍会显示,而当 Claude 尝试创建或运行任务时,claude.ai 会拒绝该任务454* Owner 为您的 Team 或 Enterprise 组织[关闭了定时任务](#routines-are-disabled-by-your-organizations-policy)。在 v2.1.227 之前,这种情况下命令仍会显示,而当 Claude 尝试创建或运行任务时,claude.ai 会拒绝该任务

455* 您的 Enterprise 组织通过[自定义角色](https://support.claude.com/en/articles/13930452)管理您的访问权限,而您的所有角色都不包含 **Remote sessions** 下的定时任务权限。请联系 Owner 将该权限添加到您的某个角色中

455 456 

456除非您组织的策略禁用了定时任务或云端会话,否则无论 CLI 如何配置,您都可以在 [claude.ai/code/routines](https://claude.ai/code/routines) 创建和管理定时任务。457如果原因在于您的 CLI 登录方式或您处于云端会话中,您仍可以在 [claude.ai/code/routines](https://claude.ai/code/routines) 创建和管理定时任务。您需要在该处使用 Pro、Max、Team 或 Enterprise 账户。如果您的组织关闭了定时任务或云端会话,或者您的角色中缺少相应权限,您也无法在 Web 端创建定时任务。

457 458 

458### "Routines are disabled by your organization's policy"459### "Routines are disabled by your organization's policy"

459 460 

sandboxing.md +16 −2

Details

546 546 

547如果 `git merge` 或 `git checkout` 在这些路径之一上因 `unable to unlink old` 而失败,请参阅[git 命令因 `unable to unlink old` 而失败](#a-git-command-fails-with-unable-to-unlink-old)。547如果 `git merge` 或 `git checkout` 在这些路径之一上因 `unable to unlink old` 而失败,请参阅[git 命令因 `unable to unlink old` 而失败](#a-git-command-fails-with-unable-to-unlink-old)。

548 548 

549#### 经过符号链接的被拒绝路径

550 

551在 macOS 上,当被拒绝的路径经过符号链接时(例如 `~/.claude` 是一个指向 dotfiles 仓库的链接),沙箱也会拒绝该路径的真实位置。这涵盖沙箱自身的拒绝,以及您按字面写出的 `denyWrite` 和 `denyRead` 条目。

552 

549### 网络隔离553### 网络隔离

550 554 

551沙箱化的命令没有直接通往网络的路径:555沙箱化的命令没有直接通往网络的路径:


974✗ Sandbox settings not changed: /home/you/project/.claude/settings.local.json couldn't be updated (EACCES). Start Claude Code in a project folder you can write to.978✗ Sandbox settings not changed: /home/you/project/.claude/settings.local.json couldn't be updated (EACCES). Start Claude Code in a project folder you can write to.

975```979```

976 980 

977如果括号中的原因是 `EACCES`、`EPERM` 或 `EROFS`,请在您可以写入的项目文件夹中启动 Claude Code,然后在该会话中再次运行 `/sandbox`。981如果括号中的原因是 `EACCES`、`EPERM` 或 `EROFS`,请在您可以写入的项目文件夹中启动 Claude Code,然后在该会话中再次运行 `/sandbox`。如果原因以 `Invalid JSON syntax in settings file` 开头,请更正项目的 `.claude/settings.local.json` 中的 JSON,然后再次运行 `/sandbox`。

982 

983如果您没有可写入的项目文件夹,请改为从用户设置中启用沙箱。将以下内容添加到 `~/.claude/settings.json`:

984 

985```json theme={null}

986{

987 "sandbox": {

988 "enabled": true

989 }

990}

991```

978 992 

979如果原因以 `Invalid JSON syntax in settings file` 开头,请更正项目的 `.claude/settings.local.json` 中的 JSON,然后再次运行 `/sandbox`。993这会启用[自动允许模式](#sandbox-modes)。如需使用常规权限模式,还需将 [`sandbox.autoAllowBashIfSandboxed`](/docs/zh-CN/settings-reference#sandbox-autoallowbashifsandboxed) 设置为 `false`。该更改会在 Claude 运行下一条 shell 命令时在您正在运行的会话中生效,随后 `/sandbox` 的 **Mode** 选项卡会标记当前生效的模式。

980 994 

981## 限制995## 限制

982 996 

scheduled-tasks.md +43 −37

Details

30| 访问本地文件 | 否(新克隆) | 是 | 是 |30| 访问本地文件 | 否(新克隆) | 是 | 是 |

31| MCP servers | 每个任务配置的连接器 | [配置文件](/docs/zh-CN/mcp)和连接器 | 从会话继承 |31| MCP servers | 每个任务配置的连接器 | [配置文件](/docs/zh-CN/mcp)和连接器 | 从会话继承 |

32| 权限提示 | 否(自主运行) | 每个任务可配置 | 从会话继承 |32| 权限提示 | 否(自主运行) | 每个任务可配置 | 从会话继承 |

33| 可自定义的计划 | 通过 CLI 中的 `/schedule` | 是 | 是 |33| 可自定义的计划 | 是 | 是 | 是 |

34| 最小间隔 | 1 小时 | 1 分钟 | 1 分钟 |34| 最小间隔 | 1 小时 | 由 Claude 设置时为 1 分钟,[在表单中为 1 小时](/docs/zh-CN/desktop-scheduled-tasks#schedule-options) | 1 分钟 |

35 35 

36> [!TIP]36> [!TIP]

37>37>


39 39 

40## 使用 /loop 重复运行提示词40## 使用 /loop 重复运行提示词

41 41 

42`/loop` [bundled skill](/docs/zh-CN/commands) 是在会话保持打开时重复运行提示词的最快方式。间隔和提示词都是可选的,您提供的内容决定了循环的行为方式。42`/loop` [随附 skill](/docs/zh-CN/commands) 是在会话保持打开期间重复运行提示词的最快方式。间隔和提示词都是可选的,您提供的内容决定了循环的行为方式。

43 43 

44| 您提供的内容 | 示例 | 发生的情况 |44| 您提供的内容 | 示例 | 会发生什么 |

45| :- | :- | :- |45| :- | :- | :- |

46| 间隔和提示词 | `/loop 5m check the deploy` | 您的提示词在[固定计划](#run-on-a-fixed-interval)上运行 |46| 间隔和提示词 | `/loop 5m check the deploy` | 您的提示词按[固定计划](#run-on-a-fixed-interval)运行 |

47| 仅提示词 | `/loop check the deploy` | 您的提示词在 Claude 选择的[间隔](#let-claude-choose-the-interval)上运行,每次迭代 |47| 仅提示词 | `/loop check the deploy` | 您的提示词在每次迭代时按 [Claude 选择的间隔](#let-claude-choose-the-interval)运行 |

48| 仅间隔或无 | `/loop` | [内置维护提示词](#run-the-built-in-maintenance-prompt)运行,或您的 `loop.md`(如果存在) |48| 仅间隔,或什么都不提供 | `/loop` | 运行[内置维护提示词](#run-the-built-in-maintenance-prompt),如果存在 `loop.md`,则运行该文件 |

49 49 

50您也可以将 skill 作为提示词传递,例如 `/loop 20m /review-pr 1234`,以在每次迭代时重新运行该 skill。计划的触发仅运行 Claude [允许自己调用](/docs/zh-CN/skills#control-who-invokes-a-skill)的 skill。以下内容作为纯文本到达 Claude,而不是执行:50您也可以将 skill 作为提示词传入,例如 `/loop 20m /review-pr 1234`,以便在每次迭代时重新运行该 skill。定时触发只会运行 Claude [可以自行调用](/docs/zh-CN/skills#control-who-invokes-a-skill)的 skill。以下内容会以纯文本形式传给 Claude,而不会被执行:

51 51 

52* 内置命令,例如 `/permissions`、`/model` 或 `/clear`52* 内置命令,例如 `/permissions`、`/model` 或 `/clear`

53* 标记为 [`disable-model-invocation: true`](/docs/zh-CN/skills#frontmatter-reference) 的 skill,包括 bundled `/verify` skill53* 标记为 [`disable-model-invocation: true`](/docs/zh-CN/skills#frontmatter-reference) 的 skill,包括随附的 `/verify` skill

54* 由 [`skillOverrides`](/docs/zh-CN/skills#override-skill-visibility-from-settings) 设置或 `Skill` [deny rule](/docs/zh-CN/skills#restrict-claude%E2%80%99s-skill-access) 从 Claude 扣留的 skill54* 通过 [`skillOverrides`](/docs/zh-CN/skills#override-skill-visibility-from-settings) 设置或 `Skill` [拒绝规则](/docs/zh-CN/skills#restrict-claude’s-skill-access)对 Claude 隐藏的 skill

55* [MCP prompts](/docs/zh-CN/mcp#use-mcp-prompts-as-commands),例如 `/mcp__github__list_prs`55* [MCP 提示词](/docs/zh-CN/mcp#use-mcp-prompts-as-commands),例如 `/mcp__github__list_prs`

56 56 

57### 在固定间隔上运行57### 按固定间隔运行

58 58 

59当您提供间隔时,Claude 将其转换为 cron 表达式,计划作业,并确认频率和作业 ID。59当您提供间隔时,Claude 会将其转换为 cron 表达式,安排该任务,并确认执行频率和任务 ID。

60 60 

61```text theme={null}61```text theme={null}

62/loop 5m check if the deployment finished and tell me what happened62/loop 5m check if the deployment finished and tell me what happened

63```63```

64 64 

65间隔可以作为裸令牌(如 `30m`)在提示词前面,或作为子句(如 `every 2 hours`)在后面。支持的单位是 `s` 表示秒、`m` 表示分钟、`h` 表示小时、`d` 表示天。65间隔可以作为单独的标记(如 `30m`)放在提示词之前,也可以作为从句(如 `every 2 hours`)放在提示词之后。支持的单位有:`s` 表示秒,`m` 表示分钟,`h` 表示小时,`d` 表示天。

66 66 

67秒数向上舍入到最近的分钟,因为 cron 的粒度为一分钟。不能均匀映射到干净 cron 步长的间隔,例如 `7m` 或 `90m`,会舍入到最近的间隔,Claude 会告诉您它选择了什么。67由于 cron 的粒度为一分钟,秒数会向上取整到最接近的分钟。无法映射为整齐 cron 步长的间隔(例如 `7m` 或 `90m`)会被舍入到最接近的可映射间隔,Claude 会告诉您它选择了哪个间隔。

68 68 

69### 让 Claude 选择间隔69### 让 Claude 选择间隔

70 70 

71当您省略间隔时,Claude 会动态选择一个,而不是在固定 cron 计划上运行。在每次迭代后,它会根据观察到的情况选择一个一分钟到一小时之间的延迟:在构建完成或 PR 活跃时等待较短时间,当没有待处理项时等待较长时间。选择的延迟和原因会在每次迭代结束时打印。71当您省略间隔时,Claude 会动态选择间隔,而不是按固定的 cron 计划运行。每次迭代后,它会根据观察到的情况选择一分钟到一小时之间的延迟:在构建即将完成或 PR 处于活跃状态时等待较短时间,在没有待处理事项时等待较长时间。所选的延迟及其原因会在每次迭代结束时输出。

72 72 

73下面的示例检查 CI 和审查评论,Claude 在 PR 变得安静后在迭代之间等待更长时间:73以下示例会检查 CI 和评审意见,一旦 PR 安静下来,Claude 会在迭代之间等待更长时间:

74 74 

75```text theme={null}75```text theme={null}

76/loop check whether CI passed and address any review comments76/loop check whether CI passed and address any review comments

77```77```

78 78 

79在[Monitor tool 可用](/docs/zh-CN/tools-reference#monitor-tool)的会话中,当您要求动态 `/loop` 计划时,Claude 可能会直接使用它。Monitor 运行后台脚本并流式传输每个输出行,这完全避免了轮询,通常比在间隔上重新运行提示词更节省令牌且响应更快。79在 [Monitor 工具可用](/docs/zh-CN/tools-reference#monitor-tool)的会话中,当您请求动态 `/loop` 计划时,Claude 可能会直接使用该工具。Monitor 会运行后台脚本并将每一行输出流式传回,从而完全避免轮询,并且通常比按间隔重新运行提示词更节省 token、响应更及时。

80 80 

81动态安排的循环会像任何其他任务一样出现在您的[定时任务列表](#manage-scheduled-tasks)中,因此您可以用相同的方式列出或取消它。该列表将其待处理的唤醒显示为一次性任务,因此安排在 `:00` 或 `:30` 的唤醒可能会[稍早运行](#when-a-one-shot-task-runs-early)。[七天过期](#seven-day-expiry)同样适用于该循环。81动态安排的循环会像其他任务一样出现在您的[定时任务列表](#manage-scheduled-tasks)中,因此您可以用相同的方式列出或取消它。列表将其待处理的唤醒显示为一次性任务,因此安排在 `:00` 或 `:30` 的唤醒可能会[稍早运行](#when-a-one-shot-task-runs-early)。[七天过期](#seven-day-expiry)规则同样适用于该循环。

82 82 

83> [!NOTE]83> [!NOTE]

84>84>

85> 动态选择的间隔和[内置维护提示词](#run-the-built-in-maintenance-prompt)在每个提供商上都有效,并且[特性标志获取](/docs/zh-CN/env-vars#features-that-need-feature-flag-fetching)已关闭。在 Amazon Bedrock、Claude Platform on AWS、Google Cloud 的 Agent Platform 和 Microsoft Foundry 上,或关闭获取时,两者都需要 Claude Code v2.1.248 或更高版本。85> 动态选择的间隔和[内置维护提示词](#run-the-built-in-maintenance-prompt)适用于所有提供商,并且在关闭[功能标志获取](/docs/zh-CN/env-vars#features-that-need-feature-flag-fetching)时同样可用。在 Amazon Bedrock、Claude Platform on AWS、Google Cloud 的 Agent Platform 和 Microsoft Foundry 上,或在关闭获取的情况下,这两项功能都需要 Claude Code v2.1.248 或更高版本。

86 86 

87### 运行内置维护提示词87### 运行内置维护提示词

88 88 

89当您省略提示词时,Claude 使用内置维护提示词而不是您提供的提示词。在每次迭代中,它按顺序处理以下内容:89当您省略提示词时,Claude 会使用内置维护提示词,而不是您提供的提示词。在每次迭代中,它会按顺序处理以下事项:

90 90 

91* 继续对话中的任何未完成工作91* 继续对话中任何未完成的工作

92* 照顾当前分支的拉取请求:审查评论、失败的 CI 运行、合并冲突92* 处理当前分支的 Pull Request:评审意见、失败的 CI 运行、合并冲突

93* 运行清理通过,例如当没有其他待处理项时的错误搜索或简化93* 在没有其他待处理事项时,执行清理工作,例如查找 bug 或简化代码

94 94 

95Claude 不会启动该范围之外的新举措,不可逆的操作(如推送或删除)仅在继续转录已授权的内容时进行。95Claude 不会在该范围之外发起新的工作,并且推送或删除等不可逆操作只有在延续会话记录中已授权的内容时才会执行。

96 96 

97```text theme={null}97```text theme={null}

98/loop98/loop

99```99```

100 100 

101裸 `/loop` 在[动态选择的间隔](#let-claude-choose-the-interval)上运行此提示词。添加间隔,例如 `/loop 15m`,以在固定计划上运行它。要用您自己的默认值替换内置提示词,请参阅[使用 loop.md 自定义默认提示词](#customize-the-default-prompt-with-loop-md)。101单独的 `/loop` 会以[动态选择的间隔](#let-claude-choose-the-interval)运行此提示词。添加间隔(例如 `/loop 15m`)即可改为按固定计划运行。要用您自己的默认提示词替换内置提示词,请参阅[使用 loop.md 自定义默认提示词](#customize-the-default-prompt-with-loop-md)。

102 102 

103### 使用 loop.md 自定义默认提示词103### 使用 loop.md 自定义默认提示词

104 104 

105创建 `loop.md` 文件以用您自己的说明替换[内置维护提示词](#run-the-built-in-maintenance-prompt)。它为裸 `/loop` 定义单个默认提示词,而不是单独计划任务的列表,并且在您在命令行上提供提示词时被忽略。要在其旁边计划其他提示词,请使用 `/loop <prompt>` 或[直接询问 Claude](#manage-scheduled-tasks)。105创建 `loop.md` 文件,即可用您自己的指令替换[内置维护提示词](#run-the-built-in-maintenance-prompt)。它为单独的 `/loop` 定义单个默认提示词,而不是一组独立的定时任务,并且每当您在命令行中提供提示词时,Claude Code 都会忽略该文件。要在其之外安排其他提示词,请使用 `/loop <prompt>` 或[直接询问 Claude](#manage-scheduled-tasks)。

106 106 

107Claude 在两个位置查找文件,并使用它找到的第一个。107Claude 会在两个位置查找该文件,并使用找到的第一个文件。

108 108 

109| 路径 | 范围 |109| 路径 | 作用域 |

110| :- | :- |110| :- | :- |

111| `.claude/loop.md` | 项目级别。当两个文件都存在时优先。 |111| `.claude/loop.md` | 项目级。两个文件都存在时优先使用。 |

112| `~/.claude/loop.md` | 用户级别。适用于任何未定义自己的项目。 |112| `~/.claude/loop.md` | 用户级。适用于任何未定义自己的文件的项目。 |

113 113 

114该文件是纯 Markdown,没有必需的结构。像您直接输入 `/loop` 提示词一样编写它。以下示例保持发布分支健康:114该文件是纯 Markdown,没有必需的结构。像直接输入 `/loop` 提示词一样编写即可。以下示例用于保持发布分支的健康状态:

115 115 

116```markdown title=".claude/loop.md" theme={null}116```markdown title=".claude/loop.md" theme={null}

117Check the `release/next` PR. If CI is red, pull the failing job log,117Check the `release/next` PR. If CI is red, pull the failing job log,


120quiet, say so in one line.120quiet, say so in one line.

121```121```

122 122 

123对 `loop.md` 的编辑在下一次迭代时生效,所以您可以在循环运行时优化说明。当任一位置都不存在 `loop.md` 时,循环回退到内置维护提示词。保持文件简洁:超过 25,000 字节的内容会被截断。123对 `loop.md` 的编辑会在下一次迭代时生效,因此您可以在循环运行期间完善指令。当两个位置都不存在 `loop.md` 时,循环会回退到内置维护提示词。请保持文件简洁:超过 25,000 字节的内容会被截断。

124 124 

125### 停止循环125### 停止循环

126 126 

127要在[自主进行 `/loop`](#let-claude-choose-the-interval) 等待下一次迭代时停止它,请按 `Esc`。这会清除待处理的唤醒,所以循环不会再次触发。您通过[直接询问 Claude](#manage-scheduled-tasks)计划的任务不受 `Esc` 影响,会保留在原位,直到您删除它们。127* **[自定节奏的循环](#let-claude-choose-the-interval)**:在循环等待下一次迭代时,按 `Esc` 即可停止它。在 Claude 空闲时,您也可以按 `Ctrl+C` 停止它,但在[您已附加到的后台会话](#detach-without-stopping-a-loop)中除外。`Pending wakeup cancelled` 通知会确认该循环不会再次触发。

128* **[固定间隔的循环](#run-on-a-fixed-interval)**:要停止 `/loop 5m` 之类的循环,请让 Claude 取消它,例如 `cancel the deploy check loop`。`Esc` 和 `Ctrl+C` 无法停止它,也无法停止任何您[通过直接询问 Claude 安排的任务](#manage-scheduled-tasks)。未取消的循环会在[七天后](#seven-day-expiry)结束。

128 129 

129在[自主进行模式](#let-claude-choose-the-interval)中,Claude 也可以在任务完成后通过调用 [`ScheduleWakeup` tool](/docs/zh-CN/tools-reference) 并设置 `stop: true` 来自己结束循环,这会立即取消待处理的唤醒。如果迭代结束时既没有重新计划也没有停止,Claude Code 会在大约 20 分钟后计划一个备用唤醒,并在该迭代也不重新计划时结束循环。130在[自定节奏模式](#let-claude-choose-the-interval)下,Claude 也可以在任务完成后自行结束循环。Claude 会使用 `stop: true` 调用 [`ScheduleWakeup` 工具](/docs/zh-CN/tools-reference),从而立即取消待处理的唤醒。如果某次迭代结束时既没有重新安排也没有停止,Claude Code 会在大约 20 分钟后安排一次备用唤醒,如果该次迭代也没有重新安排,则结束循环。

130 131 

131固定间隔上的循环会一直运行,直到您[像任何其他计划任务一样取消它们](#manage-scheduled-tasks)或[七天过去](#seven-day-expiry)。132#### 分离而不停止循环

133 

134当您[附加到后台会话](/docs/zh-CN/agent-view#attach-to-a-session)且 Claude 处于空闲状态时,在空输入框中按两次 `Ctrl+C` 即可分离。在那里等待下一次迭代的自定节奏循环会继续运行,且该次迭代会按计划开始。如果要停止循环,请在分离之前按 `Esc`。使用 `Ctrl+C` 分离而不停止循环需要 Claude Code v2.1.295 或更高版本。

132 135 

133## 设置一次性提醒136## 设置一次性提醒

134 137 


232 235 

233* 任务仅在 Claude Code 运行且空闲时触发。关闭终端或让会话退出会停止它们触发。[将会话放在后台](/docs/zh-CN/agent-view#from-inside-a-session)会将 `/loop` 任务转移到后台会话,该会话继续运行而无需终端。236* 任务仅在 Claude Code 运行且空闲时触发。关闭终端或让会话退出会停止它们触发。[将会话放在后台](/docs/zh-CN/agent-view#from-inside-a-session)会将 `/loop` 任务转移到后台会话,该会话继续运行而无需终端。

234* 没有错过触发的追赶。如果任务的计划时间在 Claude 忙于长时间运行的请求时经过,它会在 Claude 变为空闲时触发一次,而不是每个错过的间隔触发一次。237* 没有错过触发的追赶。如果任务的计划时间在 Claude 忙于长时间运行的请求时经过,它会在 Claude 变为空闲时触发一次,而不是每个错过的间隔触发一次。

235* 当您使用 `claude --resume` 或 `claude --continue` 恢复会话时,Claude Code 会恢复使用 `CronCreate` 调度的任务,除了已[过期](#seven-day-expiry)的重复任务和计划时间已经过去的一次性任务。[自定步调的 `/loop`](#let-claude-choose-the-interval)不会被恢复,因此请再次运行 `/loop` 以重新启动它。后台 Bash 和监视器任务在恢复时永远不会被恢复。238* 在[后台会话](/docs/zh-CN/agent-view#from-inside-a-session)中,如果[自定步调的循环](#let-claude-choose-the-interval)的下一次唤醒到期时会话进程未在运行(例如发生崩溃之后),该循环会停止。当进程再次启动时,会话记录会显示一条[说明该唤醒不会触发的通知](/docs/zh-CN/errors#restarted-after-its-next-loop-wakeup-was-due)。要继续该循环,请[回复该会话](/docs/zh-CN/agent-view#peek-and-reply)并要求 Claude 保持其运行。

239* 当您使用 `claude --resume` 或 `claude --continue` 恢复会话时,Claude Code 会恢复使用 `CronCreate` 调度的任务,除了已[过期](#seven-day-expiry)的重复任务和计划时间已经过去的一次性任务。[自定步调的 `/loop`](#let-claude-choose-the-interval)不会被恢复,因此请再次运行 `/loop` 以重新启动它。

240* 恢复的重复任务不会为会话未运行期间错过的运行而触发。其下一次运行是您恢复后第一个到期的运行,并且[抖动](#jitter)适用于该次运行。

241* 当您使用 `claude --resume` 或 `claude --continue` 恢复时,Claude Code 不会重新启动会话结束时正在运行的后台 Bash 命令和监视器。如果您仍然需要其中某一个,请让 Claude 重新启动它。

236* 当[功能标志获取关闭](/docs/zh-CN/env-vars#features-that-need-feature-flag-fetching)时,Claude Code 会将您要求在会话间保留的任务存储在项目的 `.claude/scheduled_tasks.json` 文件中。当 `.claude` 目录或该文件是符号链接时,Claude Code 会返回错误而不是调度任务。保存的任务仅在您创建它的项目文件夹中运行。如果您将文件复制到另一个文件夹(例如新的 worktree),那里的会话会列出复制的任务但不会运行它们,因此请在该文件夹中再次创建任务。242* 当[功能标志获取关闭](/docs/zh-CN/env-vars#features-that-need-feature-flag-fetching)时,Claude Code 会将您要求在会话间保留的任务存储在项目的 `.claude/scheduled_tasks.json` 文件中。当 `.claude` 目录或该文件是符号链接时,Claude Code 会返回错误而不是调度任务。保存的任务仅在您创建它的项目文件夹中运行。如果您将文件复制到另一个文件夹(例如新的 worktree),那里的会话会列出复制的任务但不会运行它们,因此请在该文件夹中再次创建任务。

237 243 

238对于需要无人值守运行的 cron 驱动自动化:244对于需要无人值守运行的 cron 驱动自动化:

Details

281| `CLAUDE_RUNNER_ATTEMPT` | 用于日志记录的按会话计数器。它不是重试次数,也不是请求次数。对于预热请求为 `0`,但针对某个会话的请求也可能携带 `0`。 |281| `CLAUDE_RUNNER_ATTEMPT` | 用于日志记录的按会话计数器。它不是重试次数,也不是请求次数。对于预热请求为 `0`,但针对某个会话的请求也可能携带 `0`。 |

282| `CLAUDE_RUNNER_ORDER_SERVER_TIME` | 来自轮询响应的 HTTP `Date` 标头的服务器时间。当 hook 验证工作单 JWT 的 `exp` 时,与此值进行比较而不是本地时钟,以容忍时钟偏差。当网关省略标头时为空。 |282| `CLAUDE_RUNNER_ORDER_SERVER_TIME` | 来自轮询响应的 HTTP `Date` 标头的服务器时间。当 hook 验证工作单 JWT 的 `exp` 时,与此值进行比较而不是本地时钟,以容忍时钟偏差。当网关省略标头时为空。 |

283| `CLAUDE_RUNNER_POOL_ID` | 新运行器应加入的环境的 ID,采用 `ccpool_...` 形式 |283| `CLAUDE_RUNNER_POOL_ID` | 新运行器应加入的环境的 ID,采用 `ccpool_...` 形式 |

284| `CLAUDE_RUNNER_ACCOUNT_ID` | 排队会话的帐户的标记 ID,用于按帐户路由、配额或退款。当不可用时为空,对于 Claude Tag 频道会话始终为空,这些会话没有帐户排队。 |284| `CLAUDE_RUNNER_ACCOUNT_ID` | 排队会话的帐户的标记 ID。请将其用于按帐户路由、配额或费用分摊,而不要用作去重密钥。当不可用时为空,对于 Claude Tag 频道会话始终为空,这些会话没有帐户排队。 |

285| `CLAUDE_RUNNER_ACCOUNT_EMAIL` | 排队会话的帐户的电子邮件。当不可用时为空。将电子邮件视为个人可识别信息,不要记录它。 |285| `CLAUDE_RUNNER_ACCOUNT_EMAIL` | 排队会话的帐户的电子邮件。当不可用时为空。将电子邮件视为个人可识别信息,不要记录它。 |

286| `CLAUDE_RUNNER_PRIMARY_REPO_URL` | 会话的第一个 git 源的 URL,用于路由到已预热该仓库的运行器。当会话没有 git 源时为空。 |286| `CLAUDE_RUNNER_PRIMARY_REPO_URL` | 会话的第一个 git 源的 URL,用于路由到已预热该仓库的运行器。当会话没有 git 源时为空。 |

287| `CLAUDE_RUNNER_PRIMARY_REPO_REVISION` | 会话的第一个 git 源的修订版本:分支、SHA、标签或完整引用名称。当未指定时为空。 |287| `CLAUDE_RUNNER_PRIMARY_REPO_REVISION` | 会话的第一个 git 源的修订版本:分支、SHA、标签或完整引用名称。当未指定时为空。 |


306 * **退出 1,或在 `--hook-timeout` 结束时仍在运行**:可重试失败。会话退避并被重新提供。306 * **退出 1,或在 `--hook-timeout` 结束时仍在运行**:可重试失败。会话退避并被重新提供。

307 * **退出 2 或更高**:不可重试失败。会话被阻止再次生成,直到用户向其发送新消息,或 [Owner](/docs/zh-CN/cloud-environments#organization-shared-environments) 在环境的 **Activity** 标签中对其选择 **Retry**。307 * **退出 2 或更高**:不可重试失败。会话被阻止再次生成,直到用户向其发送新消息,或 [Owner](/docs/zh-CN/cloud-environments#organization-shared-environments) 在环境的 **Activity** 标签中对其选择 **Retry**。

308 308 

309 在非零退出时,hook 的 stderr 尾部会作为失败原因出现在 **Activity** 标签中,因此请将可操作的错误写入 stderr,并且永远不要在其中写入密钥。在 shell hook 中,请[保持暂时性失败可重试](#keep-transient-failures-retryable-in-a-shell-hook)。309 会话退避期间,它在 **Activity** 标签中显示为 **Queued**,且没有生成错误,因此请在编排器的日志中查看 hook 的输出。会话被阻止后,会显示为 **Failed**。展开该会话即可查看生成错误,该错误取自 hook 的 stderr 的最后 512 个字符。请将可操作的错误写入 stderr,并且不要写入任何密钥。在 shell hook 中,请[保持暂时性失败可重试](#keep-transient-failures-retryable-in-a-shell-hook)。

310 310 

311 预热请求没有可失败的会话:编排器仅在本地记录非零退出,服务器在 `--expected-spawn-seconds` 租约到期后重新请求生成。311 预热请求没有可失败的会话:编排器仅在本地记录非零退出,服务器在 `--expected-spawn-seconds` 租约到期后重新请求生成。

3124. **将 `--expected-spawn-seconds` 设置为至少您从生成请求到运行器注册的 p99 时间。** 从编排器收到生成请求时开始计算,并包括在您的平台上等待容量的时间以及启动时间。此值是服务器端租约,工作单也随之过期,因此工作负载耗时更长的运行器无法注册。所有编排器副本必须使用相同的值。3124. **将 `--expected-spawn-seconds` 设置为至少您从生成请求到运行器注册的 p99 时间。** 从编排器收到生成请求时开始计算,并包括在您的平台上等待容量的时间以及启动时间。此值是服务器端租约,工作单也随之过期,因此工作负载耗时更长的运行器无法注册。所有编排器副本必须使用相同的值。


327 327 

328在运行器退出时移除工作负载,例如在 Kubernetes Job 上设置 `ttlSecondsAfterFinished`,或让 VM 的启动脚本在之后删除该 VM。328在运行器退出时移除工作负载,例如在 Kubernetes Job 上设置 `ttlSecondsAfterFinished`,或让 VM 的启动脚本在之后删除该 VM。

329 329 

330#### 将后台进程的输出发送到文件

331 

332如果您的 `spawn-runner` hook 让某个进程在后台持续运行,请将该进程的输出发送到 hook 的用户可以创建的文件。例如,在启动该进程的命令末尾、任何 `&` 之前追加 `>> "$HOME/claude-runner.log" 2>&1`。以下 hook 行展示了重定向的位置,其中 `your-background-command` 代表您的 hook 放到后台运行的命令:

333 

334```bash theme={null}

335your-background-command >> "$HOME/claude-runner.log" 2>&1 &

336```

337 

338如果没有重定向,该进程会写入 hook 的 stdout 和 stderr:

339 

340* hook 退出约一秒后,编排器会记录 `exited, but a process it started still has the hook's stdout or stderr open`。从该行起,它会在 `[runner:hook:spawn-runner:after-exit jti=<order id>]` 下再记录最多 64 KB 的该输出,然后丢弃其余部分。

341* 编排器退出后,该进程对这些位置的写入会失败。

342 

343由您的 hook 自行启动的运行器会在编排器主机上运行会话,而该主机持有[环境密钥](/docs/zh-CN/self-hosted-environments-deploy#harden-your-deployment)。

344 

345在 v2.1.305 之前,当 hook 已退出但其启动的进程仍打开着 hook 的 stdout 或 stderr 时,hook 仍会达到 [`--hook-timeout`](/docs/zh-CN/self-hosted-environments-reference#orchestrator-cli-flags),显示如下:

346 

347* **Activity 标签**,在失败会话的生成错误中:`spawn-runner hook timed out after 60000ms`,或 hook 的 stderr 上的最后几行。

348* **编排器日志**:`timed out after 60000ms, sending SIGTERM to process tree`。

349 

330#### 在 shell hook 中保持暂时性失败可重试350#### 在 shell hook 中保持暂时性失败可重试

331 351 

332在使用 `set -e` 的 shell hook 中,本可通过重试解决的失败可能会导致会话被阻止。hook 会在失败的命令处停止,并以该命令自身的状态退出,而编排器会对该状态应用退出码约定。许多失败返回 2 或更高的状态,例如命令未安装时返回的 `127`,以及 `curl --fail` 遇到 HTTP 错误时返回的 `22`,因此它们会在第一次失败时就阻止会话。352在使用 `set -e` 的 shell hook 中,本可通过重试解决的失败可能会导致会话被阻止。hook 会在失败的命令处停止,并以该命令自身的状态退出,而编排器会对该状态应用退出码约定。许多失败返回 2 或更高的状态,例如命令未安装时返回的 `127`,以及 `curl --fail` 遇到 HTTP 错误时返回的 `22`,因此它们会在第一次失败时就阻止会话。


350 ```bash theme={null}370 ```bash theme={null}

351 trap 'rc=$?; your-cleanup-command || true; [ "$rc" -eq 0 ] || [ -n "${PERMANENT:-}" ] || exit 1' EXIT371 trap 'rc=$?; your-cleanup-command || true; [ "$rc" -eq 0 ] || [ -n "${PERMANENT:-}" ] || exit 1' EXIT

352 ```372 ```

353* **允许失败的命令**:如果 hook 之前未使用 `set -e`,它现在会在第一条返回非零值的命令处停止,例如未找到任何结果的查找,或被您的平台拒绝的重复提交。如果 hook 会根据结果执行操作,请将该命令作为 `if` 的条件。如果 hook 忽略结果,请在该命令后加上 `|| true`。373* **允许失败的命令**:如果 hook 之前未使用 `set -e`,它现在会在第一条返回非零值的命令处停止,例如未找到任何结果的查找。如果 hook 会根据结果执行操作,请将该命令作为 `if` 的条件。如果 hook 忽略结果,请在该命令后加上 `|| true`。

374* **提交工作负载的命令**:不要在其后加上 `|| true`。加上 `|| true` 后,即使您的平台拒绝了提交(例如超出配额),hook 也会以 0 退出,而会话会一直等待一个从未启动的运行器。

375 

376 请按照 [hook 的第一条规则](#the-spawn-runner-hook)所述,以 `CLAUDE_RUNNER_ORDER_ID` 命名工作负载。这样,“已存在”的应答就是同一请求的重新交付,因此仅将该应答视为成功。对于其他任何应答,请将应答打印到 stderr 并以 1 退出;如果任何重试都无法修复,则调用 `permanent`。以下示例针对 `kubectl create` 执行此操作,其中 `job.yaml` 仅包含该工作负载:

377 

378 ```bash theme={null}

379 if ! out=$(kubectl create -f job.yaml 2>&1); then

380 case "$out" in

381 *AlreadyExists*) ;;

382 *) printf '%s\n' "${out:-kubectl create failed}" >&2; exit 1 ;;

383 esac

384 fi

385 ```

386 

387 随后编排器的日志中会显示该消息。如果 hook 还会创建其他对象,请以订单 ID 命名每个对象,为每个对象使用单独的命令,并以同样方式将其“已存在”应答视为成功。对于包含密钥的对象,请打印固定消息来代替命令的输出。

354 388 

355要确认 trap 是否生效,请在 `trap` 行正下方添加一行,调用一个不存在的命令,例如 `no-such-command`。从您的 shell 运行 hook 文件,检查 `echo $?` 是否输出 `1`,然后删除该行。389要确认 trap 是否生效,请在 `trap` 行正下方添加一行,调用一个不存在的命令,例如 `no-such-command`。从您的 shell 运行 hook 文件,检查 `echo $?` 是否输出 `1`,然后删除该行。

356 390 


457 491 

458* 位于标准系统路径的企业作用域[托管 MCP 文件](/docs/zh-CN/managed-mcp):Linux 运行器主机上为 `/etc/claude-code/managed-mcp.json`,macOS 主机上为 `/Library/Application Support/ClaudeCode/managed-mcp.json`。适用于只允许加载管理员列出的服务器的锁定机群。有关优先级规则,请参阅[使用 managed-mcp.json 进行独占控制](/docs/zh-CN/managed-mcp#exclusive-control-with-managed-mcp-json)。当运行器主机上存在此文件时,Claude Code 会跳过 Anthropic 控制平面下发给会话的 MCP 服务器(包括 claude.ai 连接器),并在会话子进程的 stderr 上以警告形式列出它们的名称,运行器会以 `debug` 日志级别记录这些警告。在 v2.1.229 之前,这些会话会在启动时退出并显示 `You cannot dynamically configure MCP servers when an enterprise MCP config is present`。492* 位于标准系统路径的企业作用域[托管 MCP 文件](/docs/zh-CN/managed-mcp):Linux 运行器主机上为 `/etc/claude-code/managed-mcp.json`,macOS 主机上为 `/Library/Application Support/ClaudeCode/managed-mcp.json`。适用于只允许加载管理员列出的服务器的锁定机群。有关优先级规则,请参阅[使用 managed-mcp.json 进行独占控制](/docs/zh-CN/managed-mcp#exclusive-control-with-managed-mcp-json)。当运行器主机上存在此文件时,Claude Code 会跳过 Anthropic 控制平面下发给会话的 MCP 服务器(包括 claude.ai 连接器),并在会话子进程的 stderr 上以警告形式列出它们的名称,运行器会以 `debug` 日志级别记录这些警告。在 v2.1.229 之前,这些会话会在启动时退出并显示 `You cannot dynamically configure MCP servers when an enterprise MCP config is present`。

459* 运行器主机上[托管设置](/docs/zh-CN/managed-settings)中的 [`managedMcpServers`](/docs/zh-CN/settings-reference#managedmcpservers) 键:提供 HTTP 和 SSE 服务器,但不进行独占控制,因此来自其他来源的服务器仍会加载。需要 Claude Code v2.1.259 或更高版本。493* 运行器主机上[托管设置](/docs/zh-CN/managed-settings)中的 [`managedMcpServers`](/docs/zh-CN/settings-reference#managedmcpservers) 键:提供 HTTP 和 SSE 服务器,但不进行独占控制,因此来自其他来源的服务器仍会加载。需要 Claude Code v2.1.259 或更高版本。

460* `<repo>/.mcp.json`:项目作用域。将该文件提交到仓库;其中的服务器在云端会话中会被自动批准。在包含多个仓库的会话中,[最多只会加载一个仓库的该文件](#repository-settings-in-sessions-with-several-repositories)。494* `<repo>/.mcp.json`:项目作用域。在[项目](/docs/zh-CN/claude-projects#what-threads-pick-up-from-your-repositories)线程之外,将该文件提交到仓库,其中的服务器在云端会话中会被自动批准。在包含多个仓库的会话中,[最多只会加载一个仓库的该文件](#repository-settings-in-sessions-with-several-repositories)。

461* 来自您的包装脚本的 [`--mcp-config`](/docs/zh-CN/cli-reference#cli-flags) 文件:将该标志追加在 `"$@"` 之后,例如 `exec "$CLAUDE_RUNNER_CLAUDE_BIN" "$@" --mcp-config /etc/claude/mcp.json`。为了在会话中途更新会话所下发的服务器时让该文件中的服务器保持运行,请让您的包装脚本将[完整环境](#wrapper-scripts)传递给子进程,就像 `exec` 所做的那样。在 v2.1.299 之前,该文件中的 stdio、HTTP 和 SSE 服务器会在第一次未指明它们的此类更新时关闭。495* 来自您的包装脚本的 [`--mcp-config`](/docs/zh-CN/cli-reference#cli-flags) 文件:将该标志追加在 `"$@"` 之后,例如 `exec "$CLAUDE_RUNNER_CLAUDE_BIN" "$@" --mcp-config /etc/claude/mcp.json`。为了在会话中途更新会话所下发的服务器时让该文件中的服务器保持运行,请让您的包装脚本将[完整环境](#wrapper-scripts)传递给子进程,就像 `exec` 所做的那样。在 v2.1.299 之前,该文件中的 stdio、HTTP 和 SSE 服务器会在第一次未指明它们的此类更新时关闭。

462 496 

463当您的组织启用了连接器下发时,Anthropic 的控制平面会通过服务器提供的 MCP 配置,将您在 claude.ai 上配置的连接器下发到以交互方式创建的会话,请求经由 `api.anthropic.com` 路由。以编程方式创建的会话(例如 [CLI 调度](/docs/zh-CN/self-hosted-environments-testing#run-the-test-loop))不会接收连接器下发;请改为通过本节列出的任何其他来源为它们提供 MCP 服务器。子进程的 OAuth 令牌不带有直接获取连接器的作用域,因此子进程本身不会尝试获取;下发由服务器驱动。497当您的组织启用了连接器下发时,Anthropic 的控制平面会通过服务器提供的 MCP 配置,将您在 claude.ai 上配置的连接器下发到以交互方式创建的会话,请求经由 `api.anthropic.com` 路由。以编程方式创建的会话(例如 [CLI 调度](/docs/zh-CN/self-hosted-environments-testing#run-the-test-loop))不会接收连接器下发;请改为通过本节列出的任何其他来源为它们提供 MCP 服务器。子进程的 OAuth 令牌不带有直接获取连接器的作用域,因此子进程本身不会尝试获取;下发由服务器驱动。

464 498 

499> [!NOTE]

500>

501> 在已接收连接器的会话中,来自主机 `.claude.json` 或仓库 `.mcp.json` 的同名服务器不会被连接。要同时使用两者,请为您的服务器指定不同的名称。

502 

465`settings.json` 不包含 MCP 服务器定义,设置 schema 中也没有顶层 `mcpServers` 字段。在托管设置中,请改用 [`managedMcpServers`](/docs/zh-CN/settings-reference#managedmcpservers) 键提供服务器。503`settings.json` 不包含 MCP 服务器定义,设置 schema 中也没有顶层 `mcpServers` 字段。在托管设置中,请改用 [`managedMcpServers`](/docs/zh-CN/settings-reference#managedmcpservers) 键提供服务器。

466 504 

467会话会继承运行器的环境,因此请在运行器环境中设置 [`ENABLE_TOOL_SEARCH`](/docs/zh-CN/mcp#scale-with-mcp-tool-search),以控制该运行器生成的每个会话的 MCP 工具搜索;MCP 页面介绍了可用的值。505会话会继承运行器的环境,因此请在运行器环境中设置 [`ENABLE_TOOL_SEARCH`](/docs/zh-CN/mcp#scale-with-mcp-tool-search),以控制该运行器生成的每个会话的 MCP 工具搜索;MCP 页面介绍了可用的值。


635 673 

636会话还会读取以下设置文件:674会话还会读取以下设置文件:

637 675 

638* **项目设置**:仓库中提交的 `.claude/settings.json` 会叠加在用户级基线之上。在包含多个仓库的会话中,[最多只有一个仓库的文件生效](#repository-settings-in-sessions-with-several-repositories)。676* **项目设置**:在[项目](/docs/zh-CN/claude-projects#what-threads-pick-up-from-your-repositories)线程之外,仓库中提交的 `.claude/settings.json` 会叠加在用户级基线之上。在包含多个仓库的会话中,[最多只有一个仓库的文件生效](#repository-settings-in-sessions-with-several-repositories)。

639* **托管设置**:会话会从运行器镜像中的标准系统路径读取 [`managed-settings.json`](/docs/zh-CN/settings#where-settings-live)。关于其中的键是否与[服务器托管设置](/docs/zh-CN/server-managed-settings)一起应用,请参阅 [Claude Code 如何合并托管来源](/docs/zh-CN/managed-settings#how-claude-code-combines-managed-sources)。677* **托管设置**:会话会从运行器镜像中的标准系统路径读取 [`managed-settings.json`](/docs/zh-CN/settings#where-settings-live)。关于其中的键是否与[服务器托管设置](/docs/zh-CN/server-managed-settings)一起应用,请参阅 [Claude Code 如何合并托管来源](/docs/zh-CN/managed-settings#how-claude-code-combines-managed-sources)。

640 678 

641有关这些来源的应用顺序,请参阅[设置优先级](/docs/zh-CN/settings#settings-precedence)。679有关这些来源的应用顺序,请参阅[设置优先级](/docs/zh-CN/settings#settings-precedence)。


646* **编写者**:控制平面使用其自身部署中的固定常量填充这些脚本,绝不使用按会话或第三方的输入。684* **编写者**:控制平面使用其自身部署中的固定常量填充这些脚本,绝不使用按会话或第三方的输入。

647* **仍然适用的管控**:通过 `--settings` 下发的 hook 会进入普通的合并 hook 配置,而不是托管层,因此您的托管设置仍然适用。`disableAllHooks` 会禁用它们,并且它们不属于 [`allowManagedHooksOnly`](/docs/zh-CN/settings-reference#allowmanagedhooksonly) 保持加载的类别。685* **仍然适用的管控**:通过 `--settings` 下发的 hook 会进入普通的合并 hook 配置,而不是托管层,因此您的托管设置仍然适用。`disableAllHooks` 会禁用它们,并且它们不属于 [`allowManagedHooksOnly`](/docs/zh-CN/settings-reference#allowmanagedhooksonly) 保持加载的类别。

648 686 

649当某人启动自己的会话时,Claude Code 还会将[其 claude.ai 账户中启用的 skill](/docs/zh-CN/skills#skills-in-cowork-and-cloud-sessions) 下载到该会话的配置目录中。[云端定时任务](/docs/zh-CN/routines)运行不会获得其所有者的 skill,而[将模型请求发送到 Bedrock 或 Agent Platform](#send-model-requests-to-bedrock-or-agent-platform) 的会话不会下载任何 skill。对于这些会话需要的 skill,请将其提交到仓库的 `.claude/skills/` 中,或将其添加到您的运行器镜像中。687当某人启动自己的会话时,Claude Code 还会将[其 claude.ai 账户中启用的 skill](/docs/zh-CN/skills#skills-in-cowork-and-cloud-sessions) 下载到该会话的配置目录中。[云端定时任务](/docs/zh-CN/routines)运行不会获得其所有者的 skill,而[将模型请求发送到 Bedrock 或 Agent Platform](#send-model-requests-to-bedrock-or-agent-platform) 的会话不会下载任何 skill。对于这些会话需要的 skill,请将其添加到您的运行器镜像中,或者在[项目](/docs/zh-CN/claude-projects#what-threads-pick-up-from-your-repositories)之外,将其提交到仓库的 `.claude/skills/` 中。

650 688 

651除 [Claude Tag](https://claude.com/docs/claude-tag/overview) 会话外,自托管环境中的会话默认关闭[自动记忆](/docs/zh-CN/memory#auto-memory)。对于需要跨会话保留的指令,请使用运行器镜像或仓库中的 `CLAUDE.md`。689除 [Claude Tag](https://claude.com/docs/claude-tag/overview) 会话外,自托管环境中的会话默认关闭[自动记忆](/docs/zh-CN/memory#auto-memory)。对于需要跨会话保留的指令,请使用运行器镜像或仓库中的 `CLAUDE.md`。

652 690 


654 692 

655### 包含多个仓库的会话中的仓库设置693### 包含多个仓库的会话中的仓库设置

656 694 

657在包含多个仓库的会话中,Claude Code 从会话启动所在的目录读取项目设置,因此最多只有一个仓库的 `.claude/settings.json` 作为项目设置生效。在其他仓库的文件中定义的 hook 不会运行,其中的拒绝规则不会生效,其 `env` 也不会被设置。695在[项目](/docs/zh-CN/claude-projects#what-threads-pick-up-from-your-repositories)中的线程里,无论线程在何处启动,都没有任何仓库的 `.claude/settings.json` 作为项目设置生效,也没有任何仓库的 `.mcp.json` 或 skill 会被加载。要为这些线程提供 skill,请将其添加到您的运行器镜像中。

696 

697在其他任何包含多个仓库的会话中,Claude Code 从会话启动所在的目录读取项目设置,因此最多只有一个仓库的 `.claude/settings.json` 作为项目设置生效。在其他仓库的文件中定义的 hook 不会运行,其中的拒绝规则不会生效,其 `env` 也不会被设置。

658 698 

659* **`--capacity 1`(默认值)并使用内置检出**:会话在其仓库列表中的第一个仓库中启动。该仓库的 `.claude/settings.json` 作为项目设置生效,其 `.mcp.json` 会被加载,而其他仓库的则不会。699* **`--capacity 1`(默认值)并使用内置检出**:会话在其仓库列表中的第一个仓库中启动。该仓库的 `.claude/settings.json` 作为项目设置生效,其 `.mcp.json` 会被加载,而其他仓库的则不会。

660* **`--capacity` 大于 1,或使用 [`checkout` hook](#checkout)**:会话在包含各检出内容的按会话目录中启动。没有任何仓库的 `.claude/settings.json` 作为项目设置生效,没有任何仓库的 `.mcp.json` 会被加载,并且 hook 命令中的 [`$CLAUDE_PROJECT_DIR`](/docs/zh-CN/hooks#reference-scripts-by-path) 是该目录,而不是某个检出目录。700* **`--capacity` 大于 1,或使用 [`checkout` hook](#checkout)**:会话在包含各检出内容的按会话目录中启动。没有任何仓库的 `.claude/settings.json` 作为项目设置生效,没有任何仓库的 `.mcp.json` 会被加载,并且 hook 命令中的 [`$CLAUDE_PROJECT_DIR`](/docs/zh-CN/hooks#reference-scripts-by-path) 是该目录,而不是某个检出目录。

661 701 

662无论会话在何处启动,每个仓库的 `CLAUDE.md` 和 skill 都会被加载。运行器将每个仓库作为[附加目录](/docs/zh-CN/permissions#additional-directories-grant-file-access-not-configuration)传递给 Claude Code,因此 Claude Code 还会从每个仓库的 `.claude/settings.json` 中读取 `enabledPlugins` 和 `extraKnownMarketplaces` 键。702无论会话在何处启动,每个仓库的 `CLAUDE.md` 都会被加载。在项目线程之外,其 skill 也会被加载。运行器将每个仓库作为[附加目录](/docs/zh-CN/permissions#additional-directories-grant-file-access-not-configuration)传递给 Claude Code,因此 Claude Code 还会从每个仓库的 `.claude/settings.json` 中读取 `enabledPlugins` 和 `extraKnownMarketplaces` 键。

663 703 

664要在每个会话中运行某个 hook 或应用某条权限规则,请将其放在运行器主机上的 `~/.claude/settings.json` 中。无论会话在何处启动,运行器都会[将该主机文件填充到每个会话中](#how-each-session’s-config-is-assembled)。在 `Read` 或 `Edit` 规则中,请将路径写为以 `//` 开头的绝对路径或以 `~/` 开头的相对于主目录的[模式](/docs/zh-CN/permissions#read-and-edit),因为其他模式会以设置来源或当前目录为锚点。704要在每个会话中运行某个 hook 或应用某条权限规则,请将其放在运行器主机上的 `~/.claude/settings.json` 中。无论会话在何处启动,运行器都会[将该主机文件填充到每个会话中](#how-each-session’s-config-is-assembled)。在 `Read` 或 `Edit` 规则中,请将路径写为以 `//` 开头的绝对路径或以 `~/` 开头的相对于主目录的[模式](/docs/zh-CN/permissions#read-and-edit),因为其他模式会以设置来源或当前目录为锚点。

665 705 

Details

80以下主机端流程确实会访问 `claude.ai`,因此请从出站流量允许访问它的主机运行这些流程,而不是扩大会话容器出站流量:80以下主机端流程确实会访问 `claude.ai`,因此请从出站流量允许访问它的主机运行这些流程,而不是扩大会话容器出站流量:

81 81 

82* **单行安装程序**:在安装时从 `claude.ai` 获取 `install.sh`。82* **单行安装程序**:在安装时从 `claude.ai` 获取 `install.sh`。

83* **交互式 `claude auth login`**:通过 `claude.ai`、`claude.com` 和 `platform.claude.com` 登录。[引导设置](/docs/zh-CN/self-hosted-environments-quickstart#run-the-guided-setup)、`doctor` 的已登录模式和 [CI 分派](/docs/zh-CN/self-hosted-environments-testing#authenticate-from-ci)会使用它。您用于登录的浏览器还会从 `hcaptcha.com`、`*.hcaptcha.com` 和 `challenges.cloudflare.com` 加载 claude.ai 登录页面的浏览器检查。83* **交互式 `claude auth login`**:通过 `claude.ai`、`claude.com` 和 `platform.claude.com` 登录。[引导设置](/docs/zh-CN/self-hosted-environments-quickstart#run-the-guided-setup)、`doctor` 的已登录模式和 [CI 分派](/docs/zh-CN/self-hosted-environments-testing#authenticate-from-ci)会使用它。您用于登录的浏览器还会从 `hcaptcha.com`、`*.hcaptcha.com` 和 `challenges.cloudflare.com` 加载 claude.ai 登录页面的浏览器检查。如果您的组织使用单点登录,该浏览器还可能被重定向经过 `sso.claude.com`。

84 84 

85### 默认拒绝出站流量85### 默认拒绝出站流量

86 86 


654* **运行器在启动时退出,显示 `RegisterRunner failed:` 和 TLS 证书错误**:例如,错误可能是 `self signed certificate in certificate chain`。运行器不信任其收到的证书背后的证书颁发机构(CA),在执行 TLS 检查的代理之后就会发生这种情况。在运行器的环境中将 [`NODE_EXTRA_CA_CERTS`](/docs/zh-CN/network-config#custom-ca-certificates) 设置为包含代理根 CA 的 PEM 文件。654* **运行器在启动时退出,显示 `RegisterRunner failed:` 和 TLS 证书错误**:例如,错误可能是 `self signed certificate in certificate chain`。运行器不信任其收到的证书背后的证书颁发机构(CA),在执行 TLS 检查的代理之后就会发生这种情况。在运行器的环境中将 [`NODE_EXTRA_CA_CERTS`](/docs/zh-CN/network-config#custom-ca-certificates) 设置为包含代理根 CA 的 PEM 文件。

655 655 

656 您无需再为会话设置它,会话会继承它。Git 不读取它:对于通过该代理进行的克隆,还需设置 [`GIT_SSL_CAINFO`](#trust-a-private-certificate-authority-with-anthropic-managed-git)。656 您无需再为会话设置它,会话会继承它。Git 不读取它:对于通过该代理进行的克隆,还需设置 [`GIT_SSL_CAINFO`](#trust-a-private-certificate-authority-with-anthropic-managed-git)。

657* **您的启动脚本打印包含 `Resource temporarily unavailable` 的写入错误并退出**:您的脚本与其启动的 `claude self-hosted-runner` 或 [编排器](/docs/zh-CN/self-hosted-environments-configuration#on-demand-runners) 进程共享 stdout 或 stderr,而该进程已将该共享管道或套接字切换为非阻塞模式。当管道已满时,脚本的写入会因该操作系统错误而失败,而不是等待;在 `set -e` 下,脚本会退出。

658 

659 要消除该错误,请将运行器或编排器的输出发送到您脚本的用户可以创建的文件。在启动它的命令后追加 `>> "$HOME/claude-runner.log" 2>&1`,并放在任何将其置于后台运行的 `&` 之前:

660 

661 ```bash theme={null}

662 claude self-hosted-runner --environment-secret-file /etc/claude/environment-secret >> "$HOME/claude-runner.log" 2>&1

663 ```

664 

665 您脚本自身的输出仍然输出到原来的位置,而运行器写入 stdout 和 stderr 的内容(包括其启动错误)会写入该文件。请使用此 shell 重定向,而不是仅使用 [`--log-file`](/docs/zh-CN/self-hosted-environments-reference#runner-cli-flags),后者会将日志镜像到文件,同时运行器仍继续写入 stdout 和 stderr。如果您已经传递了 `--log-file`,也请保留它,因为重定向不会改变该文件接收的内容。

657* **编排器记录带有 TLS 证书错误的 `poll failed:` 并不断重试**:编排器不信任其收到的证书背后的 CA,在执行 TLS 检查的代理之后就会发生这种情况。在编排器的环境中将 [`NODE_EXTRA_CA_CERTS`](/docs/zh-CN/network-config#custom-ca-certificates) 设置为包含代理根 CA 的 PEM 文件。同时也为您的 `spawn-runner` hook 启动的运行器设置它。666* **编排器记录带有 TLS 证书错误的 `poll failed:` 并不断重试**:编排器不信任其收到的证书背后的 CA,在执行 TLS 检查的代理之后就会发生这种情况。在编排器的环境中将 [`NODE_EXTRA_CA_CERTS`](/docs/zh-CN/network-config#custom-ca-certificates) 设置为包含代理根 CA 的 PEM 文件。同时也为您的 `spawn-runner` hook 启动的运行器设置它。

658 667 

659 例如,一行可能以 `poll failed: self signed certificate in certificate chain — retrying in 1s` 结尾,冒号和破折号之间是 TLS 库给出的文字。要确认修复,请检查编排器的 [`/healthz`](/docs/zh-CN/self-hosted-environments-reference#health-endpoint) 正文中 `connected` 是否为 `true`。668 例如,一行可能以 `poll failed: self signed certificate in certificate chain — retrying in 1s` 结尾,冒号和破折号之间是 TLS 库给出的文字。要确认修复,请检查编排器的 [`/healthz`](/docs/zh-CN/self-hosted-environments-reference#health-endpoint) 正文中 `connected` 是否为 `true`。

Details

321* **OAuth 令牌**:使用 [`claude setup-token`](/docs/zh-CN/authentication#generate-a-long-lived-token) 生成令牌,为您的 Team 或 Enterprise 组织授权该令牌,并在作业环境中将其设置为 `CLAUDE_CODE_OAUTH_TOKEN`。从该环境中删除任何[优先于](/docs/zh-CN/authentication#authentication-precedence)该令牌的凭据,例如 `ANTHROPIC_API_KEY`。321* **OAuth 令牌**:使用 [`claude setup-token`](/docs/zh-CN/authentication#generate-a-long-lived-token) 生成令牌,为您的 Team 或 Enterprise 组织授权该令牌,并在作业环境中将其设置为 `CLAUDE_CODE_OAUTH_TOKEN`。从该环境中删除任何[优先于](/docs/zh-CN/authentication#authentication-precedence)该令牌的凭据,例如 `ANTHROPIC_API_KEY`。

322* **端点管理的设置**:将[托管设置文件](/docs/zh-CN/managed-settings#delivery-mechanisms)部署到运行该作业的机器上。322* **端点管理的设置**:将[托管设置文件](/docs/zh-CN/managed-settings#delivery-mechanisms)部署到运行该作业的机器上。

323 323 

324在 Claude Desktop 应用中的 [Cowork](https://claude.com/docs/cowork/overview) 会话中,即使用户使用 Team 或 Enterprise 账户登录,Claude Code 也不会从 claude.ai 管理控制台获取服务器管理的设置。[策略应用的位置和时间](/docs/zh-CN/managed-settings#where-and-when-a-policy-applies) 涵盖了哪些策略到达用户机器上的 Cowork 会话和远程 Cowork 会话。claude.ai 在 Cowork 用户从 git 存储库或从 Cowork 标签中的**自定义**添加市场时,仍然会应用您的 [`strictKnownMarketplaces`](/docs/zh-CN/settings-reference#strictknownmarketplaces) 和 [`blockedMarketplaces`](/docs/zh-CN/settings-reference#blockedmarketplaces) 列表。[限制如何工作](/docs/zh-CN/plugins/org#restrict-what-users-can-install) 描述了该检查。324在 Claude Desktop 应用中的 [Cowork](https://claude.com/docs/cowork/overview) 会话中,即使用户使用 Team 或 Enterprise 账户登录,Claude Code 也不会从 claude.ai 管理控制台获取服务器管理的设置。[策略应用的位置和时间](/docs/zh-CN/managed-settings#where-and-when-a-policy-applies) 涵盖了哪些策略到达用户机器上的 Cowork 会话和远程 Cowork 会话。当 Cowork 用户从 claude.ai 上的 git 仓库或从 Cowork 中的**自定义**添加市场时,claude.ai 仍会自行应用您的 [`strictKnownMarketplaces`](/docs/zh-CN/settings-reference#strictknownmarketplaces) 和 [`blockedMarketplaces`](/docs/zh-CN/settings-reference#blockedmarketplaces) 列表。[限制如何工作](/docs/zh-CN/plugins/org#restrict-what-users-can-install) 描述了该检查。

325 325 

326如果您在 shell 中导出 `CLAUDE_CODE_USE_*` 提供商变量或非默认的 `ANTHROPIC_BASE_URL`,Claude Code 将跳过您的会话的设置获取。[`claude doctor` 和 `/status` 报告跳过的获取及其原因](#verify-settings-delivery)。326如果您在 shell 中导出 `CLAUDE_CODE_USE_*` 提供商变量或非默认的 `ANTHROPIC_BASE_URL`,Claude Code 将跳过您的会话的设置获取。[`claude doctor` 和 `/status` 报告跳过的获取及其原因](#verify-settings-delivery)。

327 327 

settings.md +4 −2

Details

321 321 

322[云会话](/docs/zh-CN/claude-code-on-the-web)在[云环境](/docs/zh-CN/cloud-environments)中运行在您的存储库的新克隆上,而不是在您的机器上。这改变了哪些设置到达它:322[云会话](/docs/zh-CN/claude-code-on-the-web)在[云环境](/docs/zh-CN/cloud-environments)中运行在您的存储库的新克隆上,而不是在您的机器上。这改变了哪些设置到达它:

323 323 

324* **共享项目设置**(`.claude/settings.json`):在只有一个仓库的会话中会被读取,因为该文件是克隆的一部分,且会话在其中启动。将设置提交到该文件中,即可在这些会话中应用。在 Anthropic 托管的环境中,包含多个仓库的会话会在各克隆的上层目录启动,并且只从每个仓库的 `.claude/settings.json` 中读取 `enabledPlugins` 和 `extraKnownMarketplaces` 这两个键,而不会读取权限规则、hook、`env` 或其他键。这两个键所声明的市场和插件仍然[不会在云端会话中加载](/docs/zh-CN/cloud-environments#what-carries-over-from-your-setup)。对于自托管环境,请参阅[应用哪个仓库的设置](/docs/zh-CN/self-hosted-environments-configuration#repository-settings-in-sessions-with-several-repositories)。324* **项目中的云端线程**:在[项目](/docs/zh-CN/claude-projects#what-threads-pick-up-from-your-repositories)中的云端线程里,无论该项目包含多少个仓库,仓库 `.claude/settings.json` 中的权限规则、hook 和 `env` 均不适用。[线程从您的仓库中获取哪些内容](/docs/zh-CN/claude-projects#what-threads-pick-up-from-your-repositories)列出了可改用的方式。

325* **共享项目设置**(`.claude/settings.json`):在项目之外只有一个仓库的会话中会被读取,因为该文件是克隆的一部分,且会话在其中启动。将设置提交到该文件中,即可在这些会话中应用。

326* **包含多个仓库的共享项目设置**:在 Anthropic 托管的环境中,包含多个仓库的会话会在各克隆的上层目录启动,并且只从每个仓库的 `.claude/settings.json` 中读取 `enabledPlugins` 和 `extraKnownMarketplaces` 这两个键,而不会读取权限规则、hook、`env` 或其他键。这两个键所声明的市场和插件仍然[不会在云端会话中加载](/docs/zh-CN/cloud-environments#what-carries-over-from-your-setup)。对于自托管环境,请参阅[应用哪个仓库的设置](/docs/zh-CN/self-hosted-environments-configuration#repository-settings-in-sessions-with-several-repositories)。

325* **用户和项目本地设置** (`~/.claude/settings.json` 和 `.claude/settings.local.json`):不读取。两者都保持在您的机器上,本地文件不在克隆中。327* **用户和项目本地设置** (`~/.claude/settings.json` 和 `.claude/settings.local.json`):不读取。两者都保持在您的机器上,本地文件不在克隆中。

326* **托管设置**:您设备上的 `managed-settings.json` 文件或 MDM 配置文件不会到达云会话。您组织的[服务器管理设置](/docs/zh-CN/server-managed-settings)会;[表面覆盖](/docs/zh-CN/model-config#surface-coverage)列出哪些云会话接收它们。[自托管环境](/docs/zh-CN/self-hosted-environments)也读取其运行器镜像中的托管设置文件。[Claude Code 如何组合托管来源](/docs/zh-CN/managed-settings#how-claude-code-combines-managed-sources)说该文件何时适用。328* **托管设置**:您设备上的 `managed-settings.json` 文件或 MDM 配置文件不会到达云会话。您组织的[服务器管理设置](/docs/zh-CN/server-managed-settings)会;[表面覆盖](/docs/zh-CN/model-config#surface-coverage)列出哪些云会话接收它们。[自托管环境](/docs/zh-CN/self-hosted-environments)也读取其运行器镜像中的托管设置文件。[Claude Code 如何组合托管来源](/docs/zh-CN/managed-settings#how-claude-code-combines-managed-sources)说该文件何时适用。

327* **`/config`**:在您的浏览器中的 claude.ai/code,打开您的 claude.ai 设置的 Claude Code 部分而不是更改值。要为云会话更改设置,在环境上设置[环境变量](/docs/zh-CN/cloud-environments#set-environment-variables),或在具有一个存储库的会话中,将键提交到该存储库的 `.claude/settings.json`。329* **`/config`**:在您的浏览器中的 claude.ai/code,打开您的 claude.ai 设置的 Claude Code 部分而不是更改值。要为云端会话更改设置,请在环境上设置[环境变量](/docs/zh-CN/cloud-environments#set-environment-variables)。在项目之外只有一个仓库的会话中,您也可以改为将该键提交到该仓库的 `.claude/settings.json`。

328 330 

329[从您的设置中携带什么](/docs/zh-CN/cloud-environments#what-carries-over-from-your-setup)列出其余的:`CLAUDE.md`、skills、MCP 服务器、plugins 和凭证。331[从您的设置中携带什么](/docs/zh-CN/cloud-environments#what-carries-over-from-your-setup)列出其余的:`CLAUDE.md`、skills、MCP 服务器、plugins 和凭证。

330 332 

Details

94 94 

95一个团队的共享设置,提交到仓库,以便克隆它的每个人都获得相同的权限、hooks 和插件市场。在仓库顶部的 `.claude/settings.json` 处保存这样的文件。在提交之前需要了解的内容:95一个团队的共享设置,提交到仓库,以便克隆它的每个人都获得相同的权限、hooks 和插件市场。在仓库顶部的 `.claude/settings.json` 处保存这样的文件。在提交之前需要了解的内容:

96 96 

97* **云会话也会读取它。** Claude Code 网页版上的 [cloud session](/docs/zh-CN/settings#settings-in-cloud-sessions) 从仓库的克隆开始,因此提交的文件也适用于那里。97* **[项目](/docs/zh-CN/claude-projects#what-threads-pick-up-from-your-repositories)之外的云端会话也会读取它。** 包含单个仓库的[云端会话](/docs/zh-CN/settings#settings-in-cloud-sessions)在克隆内部启动,因此提交的文件也适用于那里。

98* **遥测数据放在托管或个人设置中。** Claude Code 忽略仓库设置文件中的 [OpenTelemetry 导出器变量](/docs/zh-CN/settings-reference#variables-claude-code-ignores-in-env),除了一些关闭遥测的值。在 [托管设置](/docs/zh-CN/monitoring-usage#administrator-configuration) 中为你的组织设置它们,或在每个人的 `~/.claude/settings.json` 中设置。98* **遥测数据放在托管或个人设置中。** Claude Code 忽略仓库设置文件中的 [OpenTelemetry 导出器变量](/docs/zh-CN/settings-reference#variables-claude-code-ignores-in-env),除了一些关闭遥测的值。在 [托管设置](/docs/zh-CN/monitoring-usage#administrator-configuration) 中为你的组织设置它们,或在每个人的 `~/.claude/settings.json` 中设置。

99* **Allow 规则等待信任。** Allow 规则和 `extraKnownMarketplaces` 条目在每个人 [信任此文件夹本身](/docs/zh-CN/permissions#project-allow-rules-and-workspace-trust) 后生效,而不仅仅是父文件夹;deny 和 ask 规则在每个会话中应用,无论是否受信任。99* **Allow 规则等待信任。** Allow 规则和 `extraKnownMarketplaces` 条目在每个人 [信任此文件夹本身](/docs/zh-CN/permissions#project-allow-rules-and-workspace-trust) 后生效,而不仅仅是父文件夹;deny 和 ask 规则在每个会话中应用,无论是否受信任。

100* **hook 是仓库中的脚本。** 此文件的 hook 运行 `.claude/hooks/block-rm.sh`;[How a hook resolves](/docs/zh-CN/hooks#how-a-hook-resolves) 介绍了如何编写它。100* **hook 是仓库中的脚本。** 此文件的 hook 运行 `.claude/hooks/block-rm.sh`;[How a hook resolves](/docs/zh-CN/hooks#how-a-hook-resolves) 介绍了如何编写它。

settings-reference.md +329 −328

Details

14 14 

15下面的每个键都链接到其条目。范围列出了[文件](/docs/zh-CN/settings#settings-files-and-who-they-affect),其中可以使用该键:`User` 是 `~/.claude/settings.json`,`Project` 是 `.claude/settings.json`,`Local` 是 `.claude/settings.local.json`,`Managed` 是[您的组织部署的内容](/docs/zh-CN/managed-settings)。`Any file` 表示所有四个文件,`Global config` 表示 [`~/.claude.json`](#global-config-settings)。15下面的每个键都链接到其条目。范围列出了[文件](/docs/zh-CN/settings#settings-files-and-who-they-affect),其中可以使用该键:`User` 是 `~/.claude/settings.json`,`Project` 是 `.claude/settings.json`,`Local` 是 `.claude/settings.local.json`,`Managed` 是[您的组织部署的内容](/docs/zh-CN/managed-settings)。`Any file` 表示所有四个文件,`Global config` 表示 [`~/.claude.json`](#global-config-settings)。

16 16 

17| 键 | 描述 | 主题 | 范围 |17| Key | Description | Topic | Scope |

18| :- | :- | :- | :- |18| :- | :- | :- | :- |

19| [`advisorModel`](#advisormodel) | 选择当 Claude 使用[顾问工具](/docs/zh-CN/advisor)时哪个模型来回答 | 模型和响应 | Any file |19| [`advisorModel`](#advisormodel) | 选择当 Claude 使用[顾问工具](/docs/zh-CN/advisor)时哪个模型来回答 | 模型和响应 | Any file |

20| [`agent`](#agent) | 将每个会话作为具有其提示、工具和模型的命名[子代理](/docs/zh-CN/sub-agents)启动 | 代理、会话和工作树 | Any file |20| [`agent`](#agent) | 将每个会话作为具有其提示、工具和模型的命名[子代理](/docs/zh-CN/sub-agents)启动 | Agent、会话和 worktree | Any file |

21| [`agentPushNotifEnabled`](#agentpushnotifenabled) | 让 Claude 在决定时向您的手机发送[推送通知](/docs/zh-CN/remote-control#mobile-push-notifications) | 远程、桌面和通知 | Any file |21| [`agentPushNotifEnabled`](#agentpushnotifenabled) | 让 Claude 在决定时向您的手机发送[推送通知](/docs/zh-CN/remote-control#mobile-push-notifications) | 远程、桌面和通知 | Any file |

22| [`allowAllClaudeAiMcps`](#allowallclaudeaimcps) | 加载[claude.ai 连接器](/docs/zh-CN/mcp),Claude Code 与部署的 [`managed-mcp.json`](/docs/zh-CN/managed-mcp#exclusive-control-with-managed-mcp-json) 一起自行获取 | MCP | Managed |22| [`allowAllClaudeAiMcps`](#allowallclaudeaimcps) | 加载[claude.ai 连接器](/docs/zh-CN/mcp),Claude Code 与部署的 [`managed-mcp.json`](/docs/zh-CN/managed-mcp#exclusive-control-with-managed-mcp-json) 一起自行获取 | MCP | Managed |

23| [`allowClaudeInChromeWithManagedMcp`](#allowclaudeinchromewithmanagedmcp) | 让内置的[Chrome 中的 Claude](/docs/zh-CN/chrome)服务器与部署的 [`managed-mcp.json`](/docs/zh-CN/managed-mcp#exclusive-control-with-managed-mcp-json) 一起运行 | MCP | Managed |23| [`allowClaudeInChromeWithManagedMcp`](#allowclaudeinchromewithmanagedmcp) | 让内置的[Chrome 中的 Claude](/docs/zh-CN/chrome)服务器与部署的 [`managed-mcp.json`](/docs/zh-CN/managed-mcp#exclusive-control-with-managed-mcp-json) 一起运行 | MCP | Managed |

24| [`allowedChannelPlugins`](#allowedchannelplugins) | 替换可以推送消息的[频道插件](/docs/zh-CN/channels#restrict-which-channel-plugins-can-run)的默认允许列表 | 插件和技能 | Managed |24| [`allowedChannelPlugins`](#allowedchannelplugins) | 替换可以推送消息的[频道插件](/docs/zh-CN/channels#restrict-which-channel-plugins-can-run)的默认允许列表 | 插件和 skill | Managed |

25| [`allowedHttpHookUrls`](#allowedhttphookurls) | 限制[HTTP hooks](/docs/zh-CN/hooks)可以针对的 URL | Hooks 和自动化 | Any file |25| [`allowedHttpHookUrls`](#allowedhttphookurls) | 限制[HTTP hooks](/docs/zh-CN/hooks)可以针对的 URL | Hooks 和自动化 | Any file |

26| [`allowedMcpServers`](#allowedmcpservers) | 允许列表用户可以添加的[MCP 服务器](/docs/zh-CN/mcp) | MCP | Any file |26| [`allowedMcpServers`](#allowedmcpservers) | 允许列表用户可以添加的[MCP 服务器](/docs/zh-CN/mcp) | MCP | Any file |

27| [`allowedProviders`](#allowedproviders) | 限制[API 提供商](/docs/zh-CN/third-party-integrations)机器可以使用的 | 身份验证和提供商 | Managed |27| [`allowedProviders`](#allowedproviders) | 限制[API 提供商](/docs/zh-CN/third-party-integrations)机器可以使用的 | 身份验证和提供商 | Managed |


36| [`attribution.commit`](#attribution-commit) | 更改或隐藏 Claude Code 添加到提交的预告片 | Git 和属性 | Any file |36| [`attribution.commit`](#attribution-commit) | 更改或隐藏 Claude Code 添加到提交的预告片 | Git 和属性 | Any file |

37| [`attribution.pr`](#attribution-pr) | 更改或隐藏拉取请求描述中的属性行 | Git 和属性 | Any file |37| [`attribution.pr`](#attribution-pr) | 更改或隐藏拉取请求描述中的属性行 | Git 和属性 | Any file |

38| [`attribution.sessionUrl`](#attribution-sessionurl) | 从[云](/docs/zh-CN/claude-code-on-the-web)和[远程控制](/docs/zh-CN/remote-control)提交中省略 claude.ai 会话链接 | Git 和属性 | Any file |38| [`attribution.sessionUrl`](#attribution-sessionurl) | 从[云](/docs/zh-CN/claude-code-on-the-web)和[远程控制](/docs/zh-CN/remote-control)提交中省略 claude.ai 会话链接 | Git 和属性 | Any file |

39| [`autoCompactEnabled`](#autocompactenabled) | 打开或关闭[自动压缩](/docs/zh-CN/context-window) | 内存和上下文 | Any file |39| [`autoCompactEnabled`](#autocompactenabled) | 打开或关闭[自动压缩](/docs/zh-CN/context-window) | 记忆和上下文 | Any file |

40| [`autoCompactWindow`](#autocompactwindow) | 设置上下文在 Claude Code [压缩](/docs/zh-CN/context-window)之前有多满 | 内存和上下文 | Any file |40| [`autoCompactWindow`](#autocompactwindow) | 设置上下文在 Claude Code [压缩](/docs/zh-CN/context-window)之前有多满 | 记忆和上下文 | Any file |

41| [`autoConnectIde`](#autoconnectide) | 从外部终端自动连接到运行的 [VS Code](/docs/zh-CN/vs-code) 或 [JetBrains](/docs/zh-CN/jetbrains#from-external-terminals) IDE | 全局配置设置 | Global config |41| [`autoConnectIde`](#autoconnectide) | 从外部终端自动连接到运行的 [VS Code](/docs/zh-CN/vs-code) 或 [JetBrains](/docs/zh-CN/jetbrains#from-external-terminals) IDE | 全局配置设置 | Global config |

42| [`autoContinueAtUsageLimit`](#autocontinueatusagelimit) | 在打开的会话中等待,并在 claude.ai 使用限制重置后[自动继续任务](/docs/zh-CN/interactive-mode#wait-for-a-usage-limit-to-reset) | 界面和终端 | User or managed |42| [`autoContinueAtUsageLimit`](#autocontinueatusagelimit) | 在打开的会话中等待,并在 claude.ai 使用限制重置后[自动继续任务](/docs/zh-CN/interactive-mode#wait-for-a-usage-limit-to-reset) | 界面和终端 | User or managed |

43| [`autoInstallIdeExtension`](#autoinstallideextension) | 关闭从 VS Code 终端自动安装 [IDE 扩展](/docs/zh-CN/vs-code#install-the-extension) | 全局配置设置 | Global config |43| [`autoInstallIdeExtension`](#autoinstallideextension) | 关闭从 VS Code 终端自动安装 [IDE 扩展](/docs/zh-CN/vs-code#install-the-extension) | 全局配置设置 | Global config |

44| [`autoMemoryDirectory`](#automemorydirectory) | 在您选择的目录中存储[自动内存](/docs/zh-CN/memory#auto-memory) | 内存和上下文 | Any file |44| [`autoMemoryDirectory`](#automemorydirectory) | 在您选择的目录中存储[自动内存](/docs/zh-CN/memory#auto-memory) | 记忆和上下文 | Any file |

45| [`autoMemoryEnabled`](#automemoryenabled) | 打开或关闭[自动内存](/docs/zh-CN/memory#auto-memory) | 内存和上下文 | Any file |45| [`autoMemoryEnabled`](#automemoryenabled) | 打开或关闭[自动内存](/docs/zh-CN/memory#auto-memory) | 记忆和上下文 | Any file |

46| [`autoMode`](#automode) | 向[自动模式](/docs/zh-CN/permission-modes#eliminate-prompts-with-auto-mode)分类器添加您自己的允许和拒绝规则 | 权限设置 | User or managed |46| [`autoMode`](#automode) | 向[自动模式](/docs/zh-CN/permission-modes#eliminate-prompts-with-auto-mode)分类器添加您自己的允许和拒绝规则 | 权限设置 | User or managed |

47| [`autoMode.classifyAllShell`](#automode-classifyallshell) | 通过[自动模式分类器](/docs/zh-CN/permission-modes#what-the-classifier-blocks-by-default)发送每个 shell 命令,即使是狭窄允许规则匹配的命令 | 权限设置 | User or managed |47| [`autoMode.classifyAllShell`](#automode-classifyallshell) | 通过[自动模式分类器](/docs/zh-CN/permission-modes#what-the-classifier-blocks-by-default)发送每个 shell 命令,即使是狭窄允许规则匹配的命令 | 权限设置 | User or managed |

48| [`autoScrollEnabled`](#autoscrollenabled) | 在全屏渲染中[跟随新输出](/docs/zh-CN/fullscreen#auto-follow)到底部 | 界面和终端 | Any file |48| [`autoScrollEnabled`](#autoscrollenabled) | 在全屏渲染中[跟随新输出](/docs/zh-CN/fullscreen#auto-follow)到底部 | 界面和终端 | Any file |


54| [`awsCredentialExport`](#awscredentialexport) | 从您自己的命令以 JSON 形式提供 [Bedrock 凭证](/docs/zh-CN/amazon-bedrock#advanced-credential-configuration) | 身份验证和提供商 | Any file |54| [`awsCredentialExport`](#awscredentialexport) | 从您自己的命令以 JSON 形式提供 [Bedrock 凭证](/docs/zh-CN/amazon-bedrock#advanced-credential-configuration) | 身份验证和提供商 | Any file |

55| [`axScreenReader`](#axscreenreader) | 渲染[屏幕阅读器友好的输出](/docs/zh-CN/accessibility) | 界面和终端 | Any file |55| [`axScreenReader`](#axscreenreader) | 渲染[屏幕阅读器友好的输出](/docs/zh-CN/accessibility) | 界面和终端 | Any file |

56| [`bashEditDiffEnabled`](#basheditdiffenabled) | 在每个权限模式中记录 [Bash 命令运行期间发生更改的文件](/docs/zh-CN/hooks#bash) | 界面和终端 | User or managed |56| [`bashEditDiffEnabled`](#basheditdiffenabled) | 在每个权限模式中记录 [Bash 命令运行期间发生更改的文件](/docs/zh-CN/hooks#bash) | 界面和终端 | User or managed |

57| [`bashOutputMaxChars`](#bashoutputmaxchars) | 设置成功命令的[输出](/docs/zh-CN/tools-reference#output-limits)有多少 Claude 内联接收 | 内存和上下文 | Any file |57| [`bashOutputMaxChars`](#bashoutputmaxchars) | 设置成功命令的[输出](/docs/zh-CN/tools-reference#output-limits)有多少 Claude 内联接收 | 记忆和上下文 | Any file |

58| [`blockedMarketplaces`](#blockedmarketplaces) | 为您的组织阻止[插件市场](/docs/zh-CN/plugins/overview)来源 | 插件和技能 | Managed |58| [`blockedMarketplaces`](#blockedmarketplaces) | 为您的组织阻止[插件市场](/docs/zh-CN/plugins/overview)来源 | 插件和 skill | Managed |

59| [`browserExternalPageTools`](#browserexternalpagetools) | 在[桌面](/docs/zh-CN/desktop)浏览器窗格中的外部页面上关闭 Claude 的工具 | 工具 | Managed |59| [`browserExternalPageTools`](#browserexternalpagetools) | 在[桌面](/docs/zh-CN/desktop)浏览器窗格中的外部页面上关闭 Claude 的工具 | 工具 | Managed |

60| [`channelsEnabled`](#channelsenabled) | 为您的组织允许[频道](/docs/zh-CN/channels#enable-channels-for-your-organization) | 插件和技能 | Managed |60| [`channelsEnabled`](#channelsenabled) | 为您的组织允许[频道](/docs/zh-CN/channels#enable-channels-for-your-organization) | 插件和 skill | Managed |

61| [`claudeInChromeDefaultEnabled`](#claudeinchromedefaultenabled) | 在会话启动时打开 [Chrome 集成](/docs/zh-CN/chrome),适用于交互式 CLI 和 VS Code 扩展 | 全局配置设置 | Global config |61| [`claudeInChromeDefaultEnabled`](#claudeinchromedefaultenabled) | 在会话启动时打开 [Chrome 集成](/docs/zh-CN/chrome),适用于交互式 CLI 和 VS Code 扩展 | 全局配置设置 | Global config |

62| [`claudeMd`](#claudemd) | 从托管设置注入组织范围的 [CLAUDE.md](/docs/zh-CN/memory#deploy-organization-wide-claude-md) 指令 | 内存和上下文 | Managed |62| [`claudeMd`](#claudemd) | 从托管设置注入组织范围的 [CLAUDE.md](/docs/zh-CN/memory#deploy-organization-wide-claude-md) 指令 | 记忆和上下文 | Managed |

63| [`claudeMdExcludes`](#claudemdexcludes) | 在内存加载时跳过特定的 [CLAUDE.md](/docs/zh-CN/memory#exclude-specific-claude-md-files) 文件 | 内存和上下文 | Any file |63| [`claudeMdExcludes`](#claudemdexcludes) | 在内存加载时跳过特定的 [CLAUDE.md](/docs/zh-CN/memory#exclude-specific-claude-md-files) 文件 | 记忆和上下文 | Any file |

64| [`cleanupPeriodDays`](#cleanupperioddays) | 选择 Claude Code 在删除[记录](/docs/zh-CN/data-usage#data-retention)之前保留多少天 | 隐私和遥测 | Any file |64| [`cleanupPeriodDays`](#cleanupperioddays) | 选择 Claude Code 在删除[记录](/docs/zh-CN/data-usage#data-retention)之前保留多少天 | 隐私和遥测 | Any file |

65| [`companyAnnouncements`](#companyannouncements) | 在启动时显示您的组织的公告 | 界面和终端 | Any file |65| [`companyAnnouncements`](#companyannouncements) | 在启动时显示您的组织的公告 | 界面和终端 | Any file |

66| [`copyFullResponse`](#copyfullresponse) | 使 [`/copy`](/docs/zh-CN/commands) 复制完整回复而不显示选择器 | 全局配置设置 | Global config |66| [`copyFullResponse`](#copyfullresponse) | 使 [`/copy`](/docs/zh-CN/commands) 复制完整回复而不显示选择器 | 全局配置设置 | Global config |

67| [`copyOnSelect`](#copyonselect) | 关闭在[全屏渲染](/docs/zh-CN/fullscreen#use-the-mouse)和代理视图中用鼠标选择的文本的自动复制 | 全局配置设置 | Global config |67| [`copyOnSelect`](#copyonselect) | 关闭在[全屏渲染](/docs/zh-CN/fullscreen#use-the-mouse)和代理视图中用鼠标选择的文本的自动复制 | 全局配置设置 | Global config |

68| [`crossSessionInbound`](#crosssessioninbound) | 选择 Claude Code 是否传递[来自您其他会话的消息](/docs/zh-CN/cross-session-messaging#control-inbound-messages)、显示通知而不传递它们,或拒绝它们 | 代理、会话和工作树 | Any file |68| [`crossSessionInbound`](#crosssessioninbound) | 选择 Claude Code 是否传递[来自您其他会话的消息](/docs/zh-CN/cross-session-messaging#control-inbound-messages)、显示通知而不传递它们,或拒绝它们 | Agent、会话和 worktree | Any file |

69| [`defaultShell`](#defaultshell) | 选择 Bash 或 PowerShell 是否运行您使用 [`!` 前缀](/docs/zh-CN/interactive-mode#shell-mode-with-prefix)键入的 shell 命令 | 界面和终端 | Any file |69| [`defaultShell`](#defaultshell) | 选择 Bash 或 PowerShell 是否运行您使用 [`!` 前缀](/docs/zh-CN/interactive-mode#shell-mode-with-prefix)键入的 shell 命令 | 界面和终端 | Any file |

70| [`defaultToAgentsView`](#defaulttoagentsview) | 当您运行不带参数的 `claude` 时打开[代理视图](/docs/zh-CN/agent-view)而不是新对话 | 全局配置设置 | Global config |70| [`defaultToAgentsView`](#defaulttoagentsview) | 当您运行不带参数的 `claude` 时打开[代理视图](/docs/zh-CN/agent-view)而不是新对话 | 全局配置设置 | Global config |

71| [`deniedMcpServers`](#deniedmcpservers) | 按 URL、命令或名称阻止特定的 [MCP 服务器](/docs/zh-CN/mcp) | MCP | Any file |71| [`deniedMcpServers`](#deniedmcpservers) | 按 URL、命令或名称阻止特定的 [MCP 服务器](/docs/zh-CN/mcp) | MCP | Any file |


73| [`desktopSessionCleanupPeriodDays`](#desktopsessioncleanupperioddays) | 为[Claude Desktop 和 Cowork 记录](/docs/zh-CN/claude-directory#cleaned-up-automatically)设置年龄限制(天数) | 隐私和遥测 | User or managed |73| [`desktopSessionCleanupPeriodDays`](#desktopsessioncleanupperioddays) | 为[Claude Desktop 和 Cowork 记录](/docs/zh-CN/claude-directory#cleaned-up-automatically)设置年龄限制(天数) | 隐私和遥测 | User or managed |

74| [`dialogExpiry`](#dialogexpiry) | 设置 Claude Code 在取消对话之前等待[远程控制](/docs/zh-CN/remote-control)或 SDK 主机回答转发对话的时间 | 界面和终端 | User or managed |74| [`dialogExpiry`](#dialogexpiry) | 设置 Claude Code 在取消对话之前等待[远程控制](/docs/zh-CN/remote-control)或 SDK 主机回答转发对话的时间 | 界面和终端 | User or managed |

75| [`diffTool`](#difftool) | 选择 Claude 提议的文件更改是在 [VS Code](/docs/zh-CN/vs-code) 或 [JetBrains](/docs/zh-CN/jetbrains#features) diff 查看器中打开还是保留在终端中 | 全局配置设置 | Global config |75| [`diffTool`](#difftool) | 选择 Claude 提议的文件更改是在 [VS Code](/docs/zh-CN/vs-code) 或 [JetBrains](/docs/zh-CN/jetbrains#features) diff 查看器中打开还是保留在终端中 | 全局配置设置 | Global config |

76| [`disableAgentView`](#disableagentview) | 关闭后台代理和[代理视图](/docs/zh-CN/agent-view) | 代理、会话和工作树 | Any file |76| [`disableAgentView`](#disableagentview) | 关闭后台代理和[代理视图](/docs/zh-CN/agent-view) | Agent、会话和 worktree | Any file |

77| [`disableAllHooks`](#disableallhooks) | 一次关闭 [hooks](/docs/zh-CN/hooks)、自定义[状态行](/docs/zh-CN/statusline)和自定义 [`@` 文件建议](/docs/zh-CN/interactive-mode#quick-commands)命令 | Hooks 和自动化 | Any file |77| [`disableAllHooks`](#disableallhooks) | 一次关闭 [hooks](/docs/zh-CN/hooks)、自定义[状态行](/docs/zh-CN/statusline)和自定义 [`@` 文件建议](/docs/zh-CN/interactive-mode#quick-commands)命令 | Hooks 和自动化 | Any file |

78| [`disableArtifact`](#disableartifact) | 已弃用;使用 `enableArtifact` 关闭[工件工具](/docs/zh-CN/artifacts) | 远程、桌面和通知 | Any file |78| [`disableArtifact`](#disableartifact) | 已弃用;使用 `enableArtifact` 关闭[工件工具](/docs/zh-CN/artifacts) | 远程、桌面和通知 | Any file |

79| [`disableAutoMode`](#disableautomode) | 从权限模式循环中删除[自动模式](/docs/zh-CN/permission-modes#eliminate-prompts-with-auto-mode) | 权限设置 | Any file |79| [`disableAutoMode`](#disableautomode) | 从权限模式循环中删除[自动模式](/docs/zh-CN/permission-modes#eliminate-prompts-with-auto-mode) | 权限设置 | Any file |

80| [`disableBrowserExternalNavigation`](#disablebrowserexternalnavigation) | 将[桌面](/docs/zh-CN/desktop)浏览器窗格限制为 localhost,供人员和 Claude 使用 | 工具 | Managed |80| [`disableBrowserExternalNavigation`](#disablebrowserexternalnavigation) | 将[桌面](/docs/zh-CN/desktop)浏览器窗格限制为 localhost,供人员和 Claude 使用 | 工具 | Managed |

81| [`disableBundledSkills`](#disablebundledskills) | 关闭 Claude Code 附带的[技能](/docs/zh-CN/skills#bundled-skills)和[工作流](/docs/zh-CN/workflows) | 插件和技能 | Any file |81| [`disableBundledSkills`](#disablebundledskills) | 关闭 Claude Code 附带的[技能](/docs/zh-CN/skills#bundled-skills)和[工作流](/docs/zh-CN/workflows) | 插件和 skill | Any file |

82| [`disableClaudeAiConnectors`](#disableclaudeaiconnectors) | 关闭 [claude.ai 连接器](/docs/zh-CN/mcp#disable-claude-ai-connectors),以便 Claude Code 不会获取它们 | MCP | Any file |82| [`disableClaudeAiConnectors`](#disableclaudeaiconnectors) | 关闭 [claude.ai 连接器](/docs/zh-CN/mcp#disable-claude-ai-connectors),以便 Claude Code 不会获取它们 | MCP | Any file |

83| [`disableCommandPluginSources`](#disablecommandpluginsources) | 阻止通过运行市场声明的命令安装的[插件](/docs/zh-CN/plugins/overview) | 插件和技能 | Managed |83| [`disableCommandPluginSources`](#disablecommandpluginsources) | 阻止通过运行市场声明的命令安装的[插件](/docs/zh-CN/plugins/overview) | 插件和 skill | Managed |

84| [`disableDeepLinkRegistration`](#disabledeeplinkregistration) | 停止 Claude Code 注册 [`claude-cli://` 处理程序](/docs/zh-CN/deep-links) | 远程、桌面和通知 | Any file |84| [`disableDeepLinkRegistration`](#disabledeeplinkregistration) | 停止 Claude Code 注册 [`claude-cli://` 处理程序](/docs/zh-CN/deep-links) | 远程、桌面和通知 | Any file |

85| [`disableDesktopLocalSessions`](#disabledesktoplocalsessions) | 关闭在设备上运行的[桌面代码会话](/docs/zh-CN/desktop#local-sessions-on-managed-devices),仅保留 SSH 到其他主机和云 | 远程、桌面和通知 | Managed |85| [`disableDesktopLocalSessions`](#disabledesktoplocalsessions) | 关闭在设备上运行的[桌面代码会话](/docs/zh-CN/desktop#local-sessions-on-managed-devices),仅保留 SSH 到其他主机和云 | 远程、桌面和通知 | Managed |

86| [`disabledMcpjsonServers`](#disabledmcpjsonservers) | 拒绝项目的 [`.mcp.json`](/docs/zh-CN/mcp#project-scope) 中的特定服务器 | MCP | Any file |86| [`disabledMcpjsonServers`](#disabledmcpjsonservers) | 拒绝项目的 [`.mcp.json`](/docs/zh-CN/mcp#project-scope) 中的特定服务器 | MCP | Any file |

87| [`disableMobileSimulatorTools`](#disablemobilesimulatortools) | 在[桌面](/docs/zh-CN/desktop) iOS 模拟器窗格中阻止 Claude 的工具 | 工具 | Managed |87| [`disableMobileSimulatorTools`](#disablemobilesimulatortools) | 在[桌面](/docs/zh-CN/desktop) iOS 模拟器窗格中阻止 Claude 的工具 | 工具 | Managed |

88| [`disableRemoteControl`](#disableremotecontrol) | 在可以启动的任何地方关闭[远程控制](/docs/zh-CN/remote-control) | 远程、桌面和通知 | Any file |88| [`disableRemoteControl`](#disableremotecontrol) | 在可以启动的任何地方关闭[远程控制](/docs/zh-CN/remote-control) | 远程、桌面和通知 | Any file |

89| [`disableSideloadFlags`](#disablesideloadflags) | 拒绝侧加载[插件](/docs/zh-CN/plugins/overview)、[子代理](/docs/zh-CN/sub-agents)和 [MCP 服务器](/docs/zh-CN/mcp)的 CLI 标志 | 企业和托管设置 | Managed |89| [`disableSideloadFlags`](#disablesideloadflags) | 拒绝侧加载[插件](/docs/zh-CN/plugins/overview)、[子代理](/docs/zh-CN/sub-agents)和 [MCP 服务器](/docs/zh-CN/mcp)的 CLI 标志 | 企业和托管设置 | Managed |

90| [`disableSkillShellExecution`](#disableskillshellexecution) | 停止[技能](/docs/zh-CN/skills)和自定义命令运行内联 shell | 插件和技能 | Any file |90| [`disableSkillShellExecution`](#disableskillshellexecution) | 停止[技能](/docs/zh-CN/skills)和自定义命令运行内联 shell | 插件和 skill | Any file |

91| [`disableWorkflows`](#disableworkflows) | 为所有人关闭[动态工作流](/docs/zh-CN/workflows);为自己使用 `enableWorkflows` | Hooks 和自动化 | Any file |91| [`disableWorkflows`](#disableworkflows) | 为所有人关闭[动态工作流](/docs/zh-CN/workflows);为自己使用 `enableWorkflows` | Hooks 和自动化 | Any file |

92| [`editorMode`](#editormode) | 在输入提示中使用 [vim 快捷键](/docs/zh-CN/interactive-mode#vim-editor-mode) | 界面和终端 | Any file |92| [`editorMode`](#editormode) | 在输入提示中使用 [vim 快捷键](/docs/zh-CN/interactive-mode#vim-editor-mode) | 界面和终端 | Any file |

93| [`effortLevel`](#effortlevel) | 为没有保存级别的模型设置默认[努力级别](/docs/zh-CN/model-config#adjust-effort-level) | 模型和响应 | Any file |93| [`effortLevel`](#effortlevel) | 为没有保存级别的模型设置默认[努力级别](/docs/zh-CN/model-config#adjust-effort-level) | 模型和响应 | Any file |


95| [`enableAllProjectMcpServers`](#enableallprojectmcpservers) | 批准项目 [`.mcp.json`](/docs/zh-CN/mcp#project-server-approvals-and-workspace-trust) 文件中的每个服务器,无需提示 | MCP | Any file |95| [`enableAllProjectMcpServers`](#enableallprojectmcpservers) | 批准项目 [`.mcp.json`](/docs/zh-CN/mcp#project-server-approvals-and-workspace-trust) 文件中的每个服务器,无需提示 | MCP | Any file |

96| [`enableArtifact`](#enableartifact) | 使用任何文件中的 `false` 关闭[工件工具](/docs/zh-CN/artifacts);没有文件可以将其打开 | 远程、桌面和通知 | Any file |96| [`enableArtifact`](#enableartifact) | 使用任何文件中的 `false` 关闭[工件工具](/docs/zh-CN/artifacts);没有文件可以将其打开 | 远程、桌面和通知 | Any file |

97| [`enabledMcpjsonServers`](#enabledmcpjsonservers) | 批准项目的 [`.mcp.json`](/docs/zh-CN/mcp#project-server-approvals-and-workspace-trust) 中的特定服务器 | MCP | Any file |97| [`enabledMcpjsonServers`](#enabledmcpjsonservers) | 批准项目的 [`.mcp.json`](/docs/zh-CN/mcp#project-server-approvals-and-workspace-trust) 中的特定服务器 | MCP | Any file |

98| [`enabledPlugins`](#enabledplugins) | 按范围打开或关闭单个[插件](/docs/zh-CN/plugins/overview) | 插件和技能 | Any file |98| [`enabledPlugins`](#enabledplugins) | 按范围打开或关闭单个[插件](/docs/zh-CN/plugins/overview) | 插件和 skill | Any file |

99| [`enableWorkflows`](#enableworkflows) | 根据您的计划默认值打开或关闭[动态工作流](/docs/zh-CN/workflows) | Hooks 和自动化 | Any file |99| [`enableWorkflows`](#enableworkflows) | 根据您的计划默认值打开或关闭[动态工作流](/docs/zh-CN/workflows) | Hooks 和自动化 | Any file |

100| [`enforceAvailableModels`](#enforceavailablemodels) | 保持 [`/model` 默认选择](/docs/zh-CN/model-config#enforce-the-allowlist-for-the-default-model)在您的 `availableModels` 允许列表内 | 模型和响应 | Any file |100| [`enforceAvailableModels`](#enforceavailablemodels) | 保持 [`/model` 默认选择](/docs/zh-CN/model-config#enforce-the-allowlist-for-the-default-model)在您的 `availableModels` 允许列表内 | 模型和响应 | Any file |

101| [`env`](#env) | 为每个会话及其子进程设置[环境变量](/docs/zh-CN/env-vars#in-settings-files) | 内存和上下文 | Any file |101| [`env`](#env) | 为每个会话及其子进程设置[环境变量](/docs/zh-CN/env-vars#in-settings-files) | 记忆和上下文 | Any file |

102| [`externalEditorContext`](#externaleditorcontext) | 当您按 [Ctrl+G](/docs/zh-CN/interactive-mode#general-controls) 编辑时,将 Claude 的最后响应显示为注释 | 全局配置设置 | Global config |102| [`externalEditorContext`](#externaleditorcontext) | 当您按 [Ctrl+G](/docs/zh-CN/interactive-mode#general-controls) 编辑时,将 Claude 的最后响应显示为注释 | 全局配置设置 | Global config |

103| [`extraKnownMarketplaces`](#extraknownmarketplaces) | 为存储库或组织注册[市场](/docs/zh-CN/plugins/overview) | 插件和技能 | Any file |103| [`extraKnownMarketplaces`](#extraknownmarketplaces) | 为存储库或组织注册[市场](/docs/zh-CN/plugins/overview) | 插件和 skill | Any file |

104| [`fallbackModel`](#fallbackmodel) | 为主模型过载时命名[备份模型](/docs/zh-CN/model-config#fallback-model-chains) | 模型和响应 | Any file |104| [`fallbackModel`](#fallbackmodel) | 为主模型过载时命名[备份模型](/docs/zh-CN/model-config#fallback-model-chains) | 模型和响应 | Any file |

105| [`fastMode`](#fastmode) | 为可用的会话打开[快速模式](/docs/zh-CN/fast-mode) | 模型和响应 | Any file |105| [`fastMode`](#fastmode) | 为可用的会话打开[快速模式](/docs/zh-CN/fast-mode) | 模型和响应 | Any file |

106| [`fastModePerSessionOptIn`](#fastmodepersessionoptin) | 要求人们在每个会话中打开[快速模式](/docs/zh-CN/fast-mode) | 模型和响应 | Any file |106| [`fastModePerSessionOptIn`](#fastmodepersessionoptin) | 要求人们在每个会话中打开[快速模式](/docs/zh-CN/fast-mode) | 模型和响应 | Any file |

107| [`feedbackDrafts`](#feedbackdrafts) | 控制 Claude 是否为您排队[反馈草稿](/docs/zh-CN/tools-reference#sendfeedback-tool-behavior)以供审查 | 隐私和遥测 | User or managed |107| [`feedbackDrafts`](#feedbackdrafts) | 控制 Claude 是否为您排队[反馈草稿](/docs/zh-CN/tools-reference#sendfeedback-tool-behavior)以供审查 | 隐私和遥测 | User or managed |

108| [`feedbackSurveyRate`](#feedbacksurveyrate) | 更改[会话质量调查](/docs/zh-CN/data-usage#session-quality-surveys)出现的频率 | 隐私和遥测 | Any file |108| [`feedbackSurveyRate`](#feedbacksurveyrate) | 更改[会话质量调查](/docs/zh-CN/data-usage#session-quality-surveys)出现的频率 | 隐私和遥测 | Any file |

109| [`fileCheckpointingEnabled`](#filecheckpointingenabled) | 打开或关闭 [`/rewind`](/docs/zh-CN/checkpointing) 恢复的文件快照 | 内存和上下文 | Any file |109| [`fileCheckpointingEnabled`](#filecheckpointingenabled) | 打开或关闭 [`/rewind`](/docs/zh-CN/checkpointing) 恢复的文件快照 | 记忆和上下文 | Any file |

110| [`fileSuggestion`](#filesuggestion) | 从您自己的命令提供 [`@` 文件自动完成](/docs/zh-CN/interactive-mode#quick-commands) | 界面和终端 | Any file |110| [`fileSuggestion`](#filesuggestion) | 从您自己的命令提供 [`@` 文件自动完成](/docs/zh-CN/interactive-mode#quick-commands) | 界面和终端 | Any file |

111| [`footerLinksRegexes`](#footerlinksregexes) | 将输出中的问题或审查 ID 变成输入框下方的[可点击链接](/docs/zh-CN/statusline#clickable-links) | 界面和终端 | User or managed |111| [`footerLinksRegexes`](#footerlinksregexes) | 将输出中的问题或审查 ID 变成输入框下方的[可点击链接](/docs/zh-CN/statusline#clickable-links) | 界面和终端 | User or managed |

112| [`forceLoginGatewayUrl`](#forcelogingatewayurl) | 设置登录屏幕连接到的[网关 URL](/docs/zh-CN/claude-apps-gateway#set-the-gateway-url) | 身份验证和提供商 | User or managed |112| [`forceLoginGatewayUrl`](#forcelogingatewayurl) | 设置登录屏幕连接到的[网关 URL](/docs/zh-CN/claude-apps-gateway#set-the-gateway-url) | 身份验证和提供商 | User or managed |


121| [`includeCoAuthoredBy`](#includecoauthoredby) | 已弃用;使用 `attribution` 隐藏或更改提交和 PR 属性 | Git 和属性 | Any file |121| [`includeCoAuthoredBy`](#includecoauthoredby) | 已弃用;使用 `attribution` 隐藏或更改提交和 PR 属性 | Git 和属性 | Any file |

122| [`includeGitInstructions`](#includegitinstructions) | 从 Claude 的上下文中删除内置的提交和 PR 指令 | Git 和属性 | Any file |122| [`includeGitInstructions`](#includegitinstructions) | 从 Claude 的上下文中删除内置的提交和 PR 指令 | Git 和属性 | Any file |

123| [`inputNeededNotifEnabled`](#inputneedednotifenabled) | 当 Claude 在等待您时获得[推送通知](/docs/zh-CN/remote-control#mobile-push-notifications) | 远程、桌面和通知 | Any file |123| [`inputNeededNotifEnabled`](#inputneedednotifenabled) | 当 Claude 在等待您时获得[推送通知](/docs/zh-CN/remote-control#mobile-push-notifications) | 远程、桌面和通知 | Any file |

124| [`isolatePeerMachines`](#isolatepeermachines) | 在 Claude [向您在另一台机器上的会话发送消息](/docs/zh-CN/cross-session-messaging#require-approval-for-cross-machine-messages)之前询问您 | 代理、会话和工作树 | Any file |124| [`isolatePeerMachines`](#isolatepeermachines) | 在 Claude [向您在另一台机器上的会话发送消息](/docs/zh-CN/cross-session-messaging#require-approval-for-cross-machine-messages)之前询问您 | Agent、会话和 worktree | Any file |

125| [`keybindingFlavor`](#keybindingflavor) | 已弃用且无效;单词编辑快捷键始终[遵循 readline 约定](/docs/zh-CN/interactive-mode#make-ctrl-w-delete-back-to-whitespace) | 界面和终端 | Any file |125| [`keybindingFlavor`](#keybindingflavor) | 已弃用且无效;单词编辑快捷键始终[遵循 readline 约定](/docs/zh-CN/interactive-mode#make-ctrl-w-delete-back-to-whitespace) | 界面和终端 | Any file |

126| [`language`](#language) | 让 Claude 用英语以外的语言回应 | 模型和响应 | Any file |126| [`language`](#language) | 让 Claude 用英语以外的语言回应 | 模型和响应 | Any file |

127| [`leftArrowOpensAgents`](#leftarrowopensagents) | 关闭 `←` 快捷键,该快捷键[后台会话并打开代理视图](/docs/zh-CN/agent-view#switch-sessions-without-leaving-the-terminal) | 全局配置设置 | Global config |127| [`leftArrowOpensAgents`](#leftarrowopensagents) | 关闭 `←` 快捷键,该快捷键[后台会话并打开代理视图](/docs/zh-CN/agent-view#switch-sessions-without-leaving-the-terminal) | 全局配置设置 | Global config |


147| [`permissions.defaultMode`](#permissions-defaultmode) | 设置新会话启动的[权限模式](/docs/zh-CN/permission-modes#which-mode-a-session-starts-in) | 权限设置 | Any file |147| [`permissions.defaultMode`](#permissions-defaultmode) | 设置新会话启动的[权限模式](/docs/zh-CN/permission-modes#which-mode-a-session-starts-in) | 权限设置 | Any file |

148| [`permissions.deny`](#permissions-deny) | 阻止列出的[工具使用](/docs/zh-CN/permissions#permission-rule-syntax),包括保存秘密的文件的读取 | 权限设置 | Any file |148| [`permissions.deny`](#permissions-deny) | 阻止列出的[工具使用](/docs/zh-CN/permissions#permission-rule-syntax),包括保存秘密的文件的读取 | 权限设置 | Any file |

149| [`permissions.disableBypassPermissionsMode`](#permissions-disablebypasspermissionsmode) | 防止任何人进入 [bypassPermissions 模式](/docs/zh-CN/permission-modes#skip-all-checks-with-bypasspermissions-mode) | 权限设置 | Any file |149| [`permissions.disableBypassPermissionsMode`](#permissions-disablebypasspermissionsmode) | 防止任何人进入 [bypassPermissions 模式](/docs/zh-CN/permission-modes#skip-all-checks-with-bypasspermissions-mode) | 权限设置 | Any file |

150| [`plansDirectory`](#plansdirectory) | 选择[计划模式](/docs/zh-CN/permission-modes#analyze-before-you-edit-with-plan-mode)写入计划文件的位置 | 内存和上下文 | Any file |150| [`plansDirectory`](#plansdirectory) | 选择[计划模式](/docs/zh-CN/permission-modes#analyze-before-you-edit-with-plan-mode)写入计划文件的位置 | 记忆和上下文 | Any file |

151| [`pluginConfigs`](#pluginconfigs) | 存储您给[插件](/docs/zh-CN/plugins/overview)的配置对话框的答案 | 插件和技能 | User or managed |151| [`pluginConfigs`](#pluginconfigs) | 存储您给[插件](/docs/zh-CN/plugins/overview)的配置对话框的答案 | 插件和 skill | User or managed |

152| [`pluginSuggestionMarketplaces`](#pluginsuggestionmarketplaces) | 选择哪些[市场](/docs/zh-CN/plugins/org#restrict-what-users-can-install)可以在 `/plugin` 中显示插件安装建议 | 插件和技能 | Managed |152| [`pluginSuggestionMarketplaces`](#pluginsuggestionmarketplaces) | 选择哪些[市场](/docs/zh-CN/plugins/org#restrict-what-users-can-install)可以在 `/plugin` 中显示插件安装建议 | 插件和 skill | Managed |

153| [`pluginTrustMessage`](#plugintrustmessage) | 向[插件](/docs/zh-CN/plugins/overview)信任警告添加您自己的文本 | 插件和技能 | Managed |153| [`pluginTrustMessage`](#plugintrustmessage) | 向[插件](/docs/zh-CN/plugins/overview)信任警告添加您自己的文本 | 插件和 skill | Managed |

154| [`policyHelper`](#policyhelper) | 运行在启动时计算[托管设置](/docs/zh-CN/managed-settings#compute-the-policy-with-a-helper-program)的可执行文件 | 企业和托管设置 | Managed |154| [`policyHelper`](#policyhelper) | 运行在启动时计算[托管设置](/docs/zh-CN/managed-settings#compute-the-policy-with-a-helper-program)的可执行文件 | 企业和托管设置 | Managed |

155| [`policyHelper.path`](#policyhelper-path) | 命名 Claude Code 运行的[辅助可执行文件](/docs/zh-CN/managed-settings#compute-the-policy-with-a-helper-program) | 企业和托管设置 | Managed |155| [`policyHelper.path`](#policyhelper-path) | 命名 Claude Code 运行的[辅助可执行文件](/docs/zh-CN/managed-settings#compute-the-policy-with-a-helper-program) | 企业和托管设置 | Managed |

156| [`policyHelper.refreshIntervalMs`](#policyhelper-refreshintervalms) | 在后台按间隔重新运行[辅助程序](/docs/zh-CN/managed-settings#compute-the-policy-with-a-helper-program) | 企业和托管设置 | Managed |156| [`policyHelper.refreshIntervalMs`](#policyhelper-refreshintervalms) | 在后台按间隔重新运行[辅助程序](/docs/zh-CN/managed-settings#compute-the-policy-with-a-helper-program) | 企业和托管设置 | Managed |


158| [`preferredNotifChannel`](#preferrednotifchannel) | 为任务完成选择[终端铃声或桌面通知](/docs/zh-CN/terminal-config#get-a-terminal-bell-or-notification) | 远程、桌面和通知 | Any file |158| [`preferredNotifChannel`](#preferrednotifchannel) | 为任务完成选择[终端铃声或桌面通知](/docs/zh-CN/terminal-config#get-a-terminal-bell-or-notification) | 远程、桌面和通知 | Any file |

159| [`prefersReducedMotion`](#prefersreducedmotion) | [减少或关闭](/docs/zh-CN/accessibility#accessibility-settings)旋转、闪烁和闪光动画 | 界面和终端 | Any file |159| [`prefersReducedMotion`](#prefersreducedmotion) | [减少或关闭](/docs/zh-CN/accessibility#accessibility-settings)旋转、闪烁和闪光动画 | 界面和终端 | Any file |

160| [`prependPlugins`](#prependplugins) | 在用户安装的每个 mod 之前运行您的组织的 [mod](/docs/zh-CN/plugins/mods/admin) | 插件和 skill | User or managed |160| [`prependPlugins`](#prependplugins) | 在用户安装的每个 mod 之前运行您的组织的 [mod](/docs/zh-CN/plugins/mods/admin) | 插件和 skill | User or managed |

161| [`processWrapper`](#processwrapper) | 在 macOS 和 Linux 上通过[企业启动器](/docs/zh-CN/corporate-launcher)运行 Claude Code 的后台进程 | 代理、会话和工作树 | User or managed |161| [`processWrapper`](#processwrapper) | 在 macOS 和 Linux 上通过[企业启动器](/docs/zh-CN/corporate-launcher)运行 Claude Code 的后台进程 | Agent、会话和 worktree | User or managed |

162| [`promptCacheTtl`](#promptcachettl) | 为主对话选择[提示缓存生命周期](/docs/zh-CN/prompt-caching#cache-lifetime) | 模型和响应 | Any file |162| [`promptCacheTtl`](#promptcachettl) | 为主对话选择[提示缓存生命周期](/docs/zh-CN/prompt-caching#cache-lifetime) | 模型和响应 | Any file |

163| [`promptSuggestionEnabled`](#promptsuggestionenabled) | 隐藏输入框中灰显的[提示建议](/docs/zh-CN/interactive-mode#prompt-suggestions) | 界面和终端 | Any file |163| [`promptSuggestionEnabled`](#promptsuggestionenabled) | 隐藏输入框中灰显的[提示建议](/docs/zh-CN/interactive-mode#prompt-suggestions) | 界面和终端 | Any file |

164| [`prStatusFooterEnabled`](#prstatusfooterenabled) | 关闭提示页脚的 [PR 审查状态](/docs/zh-CN/interactive-mode#pr-review-status)徽章和其后面的拉取请求检查 | 全局配置设置 | Global config |164| [`prStatusFooterEnabled`](#prstatusfooterenabled) | 关闭提示页脚的 [PR 审查状态](/docs/zh-CN/interactive-mode#pr-review-status)徽章和其后面的拉取请求检查 | 全局配置设置 | Global config |


210| [`showClearContextOnPlanAccept`](#showclearcontextonplanaccept) | 在[计划接受屏幕](/docs/zh-CN/permission-modes#review-and-approve-a-plan)上显示"清除上下文"选项 | 界面和终端 | Any file |210| [`showClearContextOnPlanAccept`](#showclearcontextonplanaccept) | 在[计划接受屏幕](/docs/zh-CN/permission-modes#review-and-approve-a-plan)上显示"清除上下文"选项 | 界面和终端 | Any file |

211| [`showThinkingSummaries`](#showthinkingsummaries) | 查看 Claude 的[思考](/docs/zh-CN/model-config#extended-thinking)摘要而不是折叠的存根 | 模型和响应 | Any file |211| [`showThinkingSummaries`](#showthinkingsummaries) | 查看 Claude 的[思考](/docs/zh-CN/model-config#extended-thinking)摘要而不是折叠的存根 | 模型和响应 | Any file |

212| [`showTurnDuration`](#showturnduration) | 隐藏每个响应后的"烹饪"持续时间 | 界面和终端 | Any file |212| [`showTurnDuration`](#showturnduration) | 隐藏每个响应后的"烹饪"持续时间 | 界面和终端 | Any file |

213| [`skillListingBudgetFraction`](#skilllistingbudgetfraction) | 为[技能列表](/docs/zh-CN/skills#skill-descriptions-are-cut-short)保留更多或更少的上下文 | 内存和上下文 | Any file |213| [`skillListingBudgetFraction`](#skilllistingbudgetfraction) | 为[技能列表](/docs/zh-CN/skills#skill-descriptions-are-cut-short)保留更多或更少的上下文 | 记忆和上下文 | Any file |

214| [`skillListingMaxDescChars`](#skilllistingmaxdescchars) | 在[技能列表](/docs/zh-CN/skills#skill-descriptions-are-cut-short)中限制每个技能的描述长度 | 内存和上下文 | Any file |214| [`skillListingMaxDescChars`](#skilllistingmaxdescchars) | 在[技能列表](/docs/zh-CN/skills#skill-descriptions-are-cut-short)中限制每个技能的描述长度 | 记忆和上下文 | Any file |

215| [`skillOverrides`](#skilloverrides) | [隐藏或折叠技能](/docs/zh-CN/skills#override-skill-visibility-from-settings)而无需编辑其 SKILL.md | 插件和技能 | Any file |215| [`skillOverrides`](#skilloverrides) | [隐藏或折叠技能](/docs/zh-CN/skills#override-skill-visibility-from-settings)而无需编辑其 SKILL.md | 插件和 skill | Any file |

216| [`skipAutoPermissionPrompt`](#skipautopermissionprompt) | 跳过 Claude Code 在您自己进入[自动模式](/docs/zh-CN/permission-modes#eliminate-prompts-with-auto-mode)而不是通过内置默认值时显示的一次性通知 | 权限设置 | User or managed |216| [`skipAutoPermissionPrompt`](#skipautopermissionprompt) | 跳过 Claude Code 在您自己进入[自动模式](/docs/zh-CN/permission-modes#eliminate-prompts-with-auto-mode)而不是通过内置默认值时显示的一次性通知 | 权限设置 | User or managed |

217| [`skipDangerousModePermissionPrompt`](#skipdangerousmodepermissionprompt) | 在[bypassPermissions 模式](/docs/zh-CN/permission-modes#skip-all-checks-with-bypasspermissions-mode)之前跳过确认对话 | 权限设置 | User, local, or managed |217| [`skipDangerousModePermissionPrompt`](#skipdangerousmodepermissionprompt) | 在[bypassPermissions 模式](/docs/zh-CN/permission-modes#skip-all-checks-with-bypasspermissions-mode)之前跳过确认对话 | 权限设置 | User, local, or managed |

218| [`skipWebFetchPreflight`](#skipwebfetchpreflight) | 当 Anthropic 无法到达时跳过 [WebFetch 主机名检查](/docs/zh-CN/tools-reference#webfetch-tool-behavior) | 隐私和遥测 | Any file |218| [`skipWebFetchPreflight`](#skipwebfetchpreflight) | 当 Anthropic 无法到达时跳过 [WebFetch 主机名检查](/docs/zh-CN/tools-reference#webfetch-tool-behavior) | 隐私和遥测 | Any file |


223| [`sshConfigs`](#sshconfigs) | 将 [SSH 连接](/docs/zh-CN/desktop#pre-configure-ssh-connections-for-your-team)添加到 Desktop 环境选择器 | 远程、桌面和通知 | User or managed |223| [`sshConfigs`](#sshconfigs) | 将 [SSH 连接](/docs/zh-CN/desktop#pre-configure-ssh-connections-for-your-team)添加到 Desktop 环境选择器 | 远程、桌面和通知 | User or managed |

224| [`sshHostAllowlist`](#sshhostallowlist) | 限制[桌面 SSH 会话](/docs/zh-CN/desktop#restrict-which-ssh-hosts-users-can-connect-to)可以到达的主机 | 远程、桌面和通知 | Managed |224| [`sshHostAllowlist`](#sshhostallowlist) | 限制[桌面 SSH 会话](/docs/zh-CN/desktop#restrict-which-ssh-hosts-users-can-connect-to)可以到达的主机 | 远程、桌面和通知 | Managed |

225| [`statusLine`](#statusline) | 运行您自己的命令来呈现提示下方的[状态行](/docs/zh-CN/statusline) | 界面和终端 | Any file |225| [`statusLine`](#statusline) | 运行您自己的命令来呈现提示下方的[状态行](/docs/zh-CN/statusline) | 界面和终端 | Any file |

226| [`strictKnownMarketplaces`](#strictknownmarketplaces) | 允许列表用户可以添加和安装的[市场](/docs/zh-CN/plugins/overview)来源 | 插件和技能 | Managed |226| [`strictKnownMarketplaces`](#strictknownmarketplaces) | 允许列表用户可以添加和安装的[市场](/docs/zh-CN/plugins/overview)来源 | 插件和 skill | Managed |

227| [`strictPluginOnlyCustomization`](#strictpluginonlycustomization) | 阻止[技能](/docs/zh-CN/skills)、[代理](/docs/zh-CN/sub-agents)、[hooks](/docs/zh-CN/hooks) 和 [MCP 服务器](/docs/zh-CN/mcp)来自用户和项目来源 | 插件和技能 | Managed |227| [`strictPluginOnlyCustomization`](#strictpluginonlycustomization) | 阻止[技能](/docs/zh-CN/skills)、[代理](/docs/zh-CN/sub-agents)、[hooks](/docs/zh-CN/hooks) 和 [MCP 服务器](/docs/zh-CN/mcp)来自用户和项目来源 | 插件和 skill | Managed |

228| [`strictPluginOnlyCustomization.agents`](#strictpluginonlycustomization-agents) | 将[代理](/docs/zh-CN/sub-agents)锁定到插件和托管来源 | 插件和技能 | Managed |228| [`strictPluginOnlyCustomization.agents`](#strictpluginonlycustomization-agents) | 将[代理](/docs/zh-CN/sub-agents)锁定到插件和托管来源 | 插件和 skill | Managed |

229| [`strictPluginOnlyCustomization.hooks`](#strictpluginonlycustomization-hooks) | 将[hooks](/docs/zh-CN/hooks)锁定到插件和托管来源 | 插件和技能 | Managed |229| [`strictPluginOnlyCustomization.hooks`](#strictpluginonlycustomization-hooks) | 将[hooks](/docs/zh-CN/hooks)锁定到插件和托管来源 | 插件和 skill | Managed |

230| [`strictPluginOnlyCustomization.mcp`](#strictpluginonlycustomization-mcp) | 将 [MCP 服务器](/docs/zh-CN/mcp)锁定到插件和托管来源 | 插件和技能 | Managed |230| [`strictPluginOnlyCustomization.mcp`](#strictpluginonlycustomization-mcp) | 将 [MCP 服务器](/docs/zh-CN/mcp)锁定到插件和托管来源 | 插件和 skill | Managed |

231| [`strictPluginOnlyCustomization.skills`](#strictpluginonlycustomization-skills) | 将[技能](/docs/zh-CN/skills)锁定到插件和托管来源 | 插件和技能 | Managed |231| [`strictPluginOnlyCustomization.skills`](#strictpluginonlycustomization-skills) | 将[技能](/docs/zh-CN/skills)锁定到插件和托管来源 | 插件和 skill | Managed |

232| [`subagentPromptCacheTtl`](#subagentpromptcachettl) | 为子代理和主对话外的其他请求选择[提示缓存生命周期](/docs/zh-CN/prompt-caching#cache-lifetime) | 模型和响应 | Any file |232| [`subagentPromptCacheTtl`](#subagentpromptcachettl) | 为子代理和主对话外的其他请求选择[提示缓存生命周期](/docs/zh-CN/prompt-caching#cache-lifetime) | 模型和响应 | Any file |

233| [`subagentStatusLine`](#subagentstatusline) | 使用您自己的命令重写[子代理](/docs/zh-CN/sub-agents)任务显示中的行 | 界面和终端 | Any file |233| [`subagentStatusLine`](#subagentstatusline) | 使用您自己的命令重写[子代理](/docs/zh-CN/sub-agents)任务显示中的行 | 界面和终端 | Any file |

234| [`switchModelsOnFlag`](#switchmodelsonflag) | 当[安全分类器](/docs/zh-CN/model-config#ask-before-switching)标记请求时自动切换模型或暂停 | 模型和响应 | Any file |234| [`switchModelsOnFlag`](#switchmodelsonflag) | 当[安全分类器](/docs/zh-CN/model-config#ask-before-switching)标记请求时自动切换模型或暂停 | 模型和响应 | Any file |

235| [`syncClaudeAiPlugins`](#syncclaudeaiplugins) | 停止加载[在您的 claude.ai 帐户上启用的插件](/docs/zh-CN/plugins/loading#synced-plugins)并停止下载新的 | 插件和技能 | User, local, or managed |235| [`syncClaudeAiPlugins`](#syncclaudeaiplugins) | 停止加载[在您的 claude.ai 帐户上启用的插件](/docs/zh-CN/plugins/loading#synced-plugins)并停止下载新的 | 插件和 skill | User, local, or managed |

236| [`syncClaudeAiSkills`](#syncclaudeaiskills) | 停止加载[在您的 claude.ai 帐户上启用的技能](/docs/zh-CN/skills#how-synced-skills-behave)并停止下载新的 | 插件和技能 | User, local, or managed |236| [`syncClaudeAiSkills`](#syncclaudeaiskills) | 停止加载[在您的 claude.ai 帐户上启用的技能](/docs/zh-CN/skills#how-synced-skills-behave)并停止下载新的 | 插件和 skill | User, local, or managed |

237| [`syntaxHighlightingDisabled`](#syntaxhighlightingdisabled) | 关闭 diffs 和代码块中的语法突出显示 | 界面和终端 | Any file |237| [`syntaxHighlightingDisabled`](#syntaxhighlightingdisabled) | 关闭 diffs 和代码块中的语法突出显示 | 界面和终端 | Any file |

238| [`taskOutputMaxChars`](#taskoutputmaxchars) | 在 v2.1.277 中删除,以及它调整大小的 `TaskOutput` 工具 | 内存和上下文 | Any file |238| [`taskOutputMaxChars`](#taskoutputmaxchars) | 在 v2.1.277 中删除,以及它调整大小的 `TaskOutput` 工具 | 记忆和上下文 | Any file |

239| [`teammateDefaultModel`](#teammatedefaultmodel) | 在 v2.1.234 中删除;请参阅[指定队友和模型](/docs/zh-CN/agent-teams#specify-teammates-and-models)了解 Claude Code 如何选择队友的模型 | 全局配置设置 | Global config |239| [`teammateDefaultModel`](#teammatedefaultmodel) | 在 v2.1.234 中删除;请参阅[指定队友和模型](/docs/zh-CN/agent-teams#specify-teammates-and-models)了解 Claude Code 如何选择队友的模型 | 全局配置设置 | Global config |

240| [`teammateMode`](#teammatemode) | 选择[代理团队队友显示](/docs/zh-CN/agent-teams#choose-a-display-mode)的方式 | 代理、会话和工作树 | Any file |240| [`teammateMode`](#teammatemode) | 选择[代理团队队友显示](/docs/zh-CN/agent-teams#choose-a-display-mode)的方式 | Agent、会话和 worktree | Any file |

241| [`terminalProgressBarEnabled`](#terminalprogressbarenabled) | 在支持它的终端中隐藏终端进度条 | 界面和终端 | Any file |241| [`terminalProgressBarEnabled`](#terminalprogressbarenabled) | 在支持它的终端中隐藏终端进度条 | 界面和终端 | Any file |

242| [`terminalTitleFromRename`](#terminaltitlefromrename) | 停止 [`/rename`](/docs/zh-CN/sessions#name-your-sessions) 和 `--name` 更改终端选项卡标题 | 界面和终端 | Any file |242| [`terminalTitleFromRename`](#terminaltitlefromrename) | 停止 [`/rename`](/docs/zh-CN/sessions#name-your-sessions) 和 `--name` 更改终端选项卡标题 | 界面和终端 | Any file |

243| [`theme`](#theme) | 选择界面[颜色主题](/docs/zh-CN/terminal-config#match-the-color-theme),内置或自定义 | 界面和终端 | Any file |243| [`theme`](#theme) | 选择界面[颜色主题](/docs/zh-CN/terminal-config#match-the-color-theme),内置或自定义 | 界面和终端 | Any file |


254| [`wheelScrollAccelerationEnabled`](#wheelscrollaccelerationenabled) | 在全屏渲染中关闭[鼠标滚轮加速](/docs/zh-CN/fullscreen#mouse-wheel-scrolling) | 界面和终端 | Any file |254| [`wheelScrollAccelerationEnabled`](#wheelscrollaccelerationenabled) | 在全屏渲染中关闭[鼠标滚轮加速](/docs/zh-CN/fullscreen#mouse-wheel-scrolling) | 界面和终端 | Any file |

255| [`workflowKeywordTriggerEnabled`](#workflowkeywordtriggerenabled) | 让提示中的单词 `ultracode` 启动[工作流](/docs/zh-CN/workflows);设置 `false` 以在不启动的情况下键入它 | Hooks 和自动化 | Any file |255| [`workflowKeywordTriggerEnabled`](#workflowkeywordtriggerenabled) | 让提示中的单词 `ultracode` 启动[工作流](/docs/zh-CN/workflows);设置 `false` 以在不启动的情况下键入它 | Hooks 和自动化 | Any file |

256| [`workflowSizeGuideline`](#workflowsizeguideline) | 设置 Claude 在[动态工作流](/docs/zh-CN/workflows)中的目标代理数 | Hooks 和自动化 | Any file |256| [`workflowSizeGuideline`](#workflowsizeguideline) | 设置 Claude 在[动态工作流](/docs/zh-CN/workflows)中的目标代理数 | Hooks 和自动化 | Any file |

257| [`worktree`](#worktree) | 配置 Claude Code 如何创建 git [worktrees](/docs/zh-CN/worktrees) | 代理、会话和工作树 | Any file |257| [`worktree`](#worktree) | 配置 Claude Code 如何创建 git [worktrees](/docs/zh-CN/worktrees) | Agent、会话和 worktree | Any file |

258| [`worktree.baseRef`](#worktree-baseref) | 从远程默认分支或本地 HEAD 分支新[worktrees](/docs/zh-CN/worktrees) | 代理、会话和工作树 | Any file |258| [`worktree.baseRef`](#worktree-baseref) | 从远程默认分支或本地 HEAD 分支新[worktrees](/docs/zh-CN/worktrees) | Agent、会话和 worktree | Any file |

259| [`worktree.bgIsolation`](#worktree-bgisolation) | 让后台会话编辑工作副本而无需[worktree](/docs/zh-CN/worktrees) | 代理、会话和工作树 | Any file |259| [`worktree.bgIsolation`](#worktree-bgisolation) | 让后台会话编辑工作副本而无需[worktree](/docs/zh-CN/worktrees) | Agent、会话和 worktree | Any file |

260| [`worktree.location`](#worktree-location) | 选择 [Desktop SSH 会话](/docs/zh-CN/desktop#ssh-sessions)在远程机器上创建 worktree 的位置 | Agent、会话和 worktree | User |260| [`worktree.location`](#worktree-location) | 选择 [Desktop SSH 会话](/docs/zh-CN/desktop#ssh-sessions)在远程机器上创建 worktree 的位置 | Agent、会话和 worktree | User |

261| [`worktree.sparsePaths`](#worktree-sparsepaths) | 在每个[worktree](/docs/zh-CN/worktrees)中仅检出您需要的目录 | 代理、会话和工作树 | Any file |261| [`worktree.sparsePaths`](#worktree-sparsepaths) | 在每个[worktree](/docs/zh-CN/worktrees)中仅检出您需要的目录 | Agent、会话和 worktree | Any file |

262| [`worktree.symlinkDirectories`](#worktree-symlinkdirectories) | 将大型目录符号链接到每个[worktree](/docs/zh-CN/worktrees)中,而不是复制它们 | 代理、会话和工作树 | Any file |262| [`worktree.symlinkDirectories`](#worktree-symlinkdirectories) | 将大型目录符号链接到每个[worktree](/docs/zh-CN/worktrees)中,而不是复制它们 | Agent、会话和 worktree | Any file |

263| [`wslInheritsWindowsSettings`](#wslinheritswindowssettings) | 让 WSL 从 Windows 策略链读取[托管设置](/docs/zh-CN/managed-settings) | 企业和托管设置 | Managed |263| [`wslInheritsWindowsSettings`](#wslinheritswindowssettings) | 让 WSL 从 Windows 策略链读取[托管设置](/docs/zh-CN/managed-settings) | 企业和托管设置 | Managed |

264 264 

265## 模型与回复265## 模型与回复


725 725 

726### `showThinkingSummaries`726### `showThinkingSummaries`

727 727 

728在交互式会话中查看 Claude [扩展思考](/docs/zh-CN/model-config#extended-thinking)的摘要。如果您希望在使用 `Ctrl+O` 展开思考时看到完整摘要,请设置此项。当未设置或为 `false` 时,Anthropic API 会对思考块进行编辑隐藏,Claude Code 会显示一个折叠的占位内容;第三方提供商不会进行编辑隐藏。728在交互式会话中查看 Claude [扩展思考](/docs/zh-CN/model-config#extended-thinking)的摘要。如果您希望在使用 `Ctrl+O` 展开思考时看到完整摘要,请设置此项。当未设置或为 `false` 时,Anthropic API 会对思考块进行编辑隐藏,Claude Code 会显示一个折叠的占位内容。

729 729 

730* **作用域**:[`Any file`](#scopes)730* **作用域**:[`Any file`](#scopes)

731* **类型**:布尔值731* **类型**:布尔值


1370* **`allowWrite` 和 `denyWrite`**: 在 macOS 上,通配符有效。在 Linux 和 WSL2 上,沙箱挂载具体路径,因此 Claude Code 在删除尾部 `/**` 后跳过包含 `*`、`?` 或 `[` 的条目,该条目无效。Claude Code 将您的 `Edit` 权限规则中的路径添加到这些列表中,因此相同的限制适用于它们,`/sandbox` 的 **Config** 选项卡警告包含通配符的 `Edit` 和 `Read` 权限规则。1370* **`allowWrite` 和 `denyWrite`**: 在 macOS 上,通配符有效。在 Linux 和 WSL2 上,沙箱挂载具体路径,因此 Claude Code 在删除尾部 `/**` 后跳过包含 `*`、`?` 或 `[` 的条目,该条目无效。Claude Code 将您的 `Edit` 权限规则中的路径添加到这些列表中,因此相同的限制适用于它们,`/sandbox` 的 **Config** 选项卡警告包含通配符的 `Edit` 和 `Read` 权限规则。

1371* **`denyRead` 和 `allowRead`**: 通配符在每个平台上都有效。在 Linux 和 WSL2 上,Claude Code 将读取条目扩展到它匹配的具体路径,对写入列表不执行此操作。1371* **`denyRead` 和 `allowRead`**: 通配符在每个平台上都有效。在 Linux 和 WSL2 上,Claude Code 将读取条目扩展到它匹配的具体路径,对写入列表不执行此操作。

1372 1372 

1373花括号在名称中按普通字符匹配,因此 `~/data/{keys,tokens}` 覆盖的是一个字面名为 `{keys,tokens}` 的目录,而不是两个备选项。要覆盖 `~/data/keys` 和 `~/data/tokens`,请将每个路径作为单独的条目添加。

1374 

1373### `sandbox.filesystem.allowWrite`1375### `sandbox.filesystem.allowWrite`

1374 1376 

1375添加沙箱化命令可以写入的路径,超出工作目录、会话临时目录以及使用 `--add-dir`、`/add-dir` 或 `permissions.additionalDirectories` 添加的目录。当子进程(如 `kubectl` 或构建工具)需要在项目外写入时使用它。1377添加沙箱化命令可以写入的路径,超出工作目录、会话临时目录以及使用 `--add-dir`、`/add-dir` 或 `permissions.additionalDirectories` 添加的目录。当子进程(如 `kubectl` 或构建工具)需要在项目外写入时使用它。


2143 2145 

2144当多个遵守的源设置它时,Claude Code 使用来自最高优先级源的值:托管设置,然后是 `--settings` 标志,然后是用户设置。2146当多个遵守的源设置它时,Claude Code 使用来自最高优先级源的值:托管设置,然后是 `--settings` 标志,然后是用户设置。

2145 2147 

2146## 内存和上下文2148## 记忆和上下文

2147 2149 

2148控制 Claude Code 加载到上下文中的内容、如何压缩以及在何处保存内存和计划。请参阅[管理上下文](/docs/zh-CN/context-window)和[内存](/docs/zh-CN/memory)。2150控制 Claude Code 加载到上下文中的内容、如何压缩以及在何处保存内存和计划。请参阅[管理上下文](/docs/zh-CN/context-window)和[内存](/docs/zh-CN/memory)。

2149 2151 


2321 2323 

2322 在项目和本地设置中忽略此组需要 Claude Code v2.1.282 或更高版本。2324 在项目和本地设置中忽略此组需要 Claude Code v2.1.282 或更高版本。

2323 * 改变 Claude Code 如何启动或同步的变量,例如 `CLAUDE_CODE_PROCESS_WRAPPER`、`CLAUDE_CODE_SYNC_SKILLS`、`CLAUDE_CODE_SYNC_PLUGINS`、`CLAUDE_CODE_PLUGIN_CACHE_DIR` 和 `CLAUDE_CODE_PLUGIN_SEED_DIR`。2325 * 改变 Claude Code 如何启动或同步的变量,例如 `CLAUDE_CODE_PROCESS_WRAPPER`、`CLAUDE_CODE_SYNC_SKILLS`、`CLAUDE_CODE_SYNC_PLUGINS`、`CLAUDE_CODE_PLUGIN_CACHE_DIR` 和 `CLAUDE_CODE_PLUGIN_SEED_DIR`。

2324 * 设置未应答对话框计时器的变量:[`CLAUDE_CODE_USER_DIALOG_TIMEOUT_MS`、`CLAUDE_AFK_TIMEOUT_MS` 和 `CLAUDE_AFK_COUNTDOWN_MS`](/docs/zh-CN/env-vars#variables)。2326 * [`CLAUDE_CODE_USER_DIALOG_TIMEOUT_MS`](/docs/zh-CN/env-vars#variables),它设置未应答对话框的计时器。

2325 * [`CLAUDE_CODE_DISABLE_ATTACHMENTS`](/docs/zh-CN/env-vars#variables),它会关闭附件处理。2327 * [`CLAUDE_CODE_DISABLE_ATTACHMENTS`](/docs/zh-CN/env-vars#variables),它会关闭附件处理。

2326 * [`CLAUDE_CODE_DISABLE_FILE_MENTIONS`](/docs/zh-CN/env-vars#variables),它会阻止 Claude Code 展开对文件和目录的 `@` 提及。2328 * [`CLAUDE_CODE_DISABLE_FILE_MENTIONS`](/docs/zh-CN/env-vars#variables),它会阻止 Claude Code 展开对文件和目录的 `@` 提及。

2327 2329 


2461 2463 

2462## 界面和终端2464## 界面和终端

2463 2465 

2464改变 Claude Code 在终端中的外观和行为:主题、编辑器模式、状态行、加载动画、会话内通知和无障碍功能。请参阅[终端配置](/docs/zh-CN/terminal-config)。2466更改 Claude Code 在终端中的外观和行为:主题、编辑器模式、状态栏、加载动画、会话内通知以及无障碍功能。请参阅[终端配置](/docs/zh-CN/terminal-config)。

2465 2467 

2466### `askUserQuestionTimeout`2468### `askUserQuestionTimeout`

2467 2469 

2468让未回答的 [`AskUserQuestion`](/docs/zh-CN/tools-reference) 对话框在空闲一段时间后自动继续,提交您已选择的任何选项。当您离开时设置此项,让 Claude 在没有您的情况下继续。使用默认设置时,问题会等待您回答。关于计时器何时暂停或从不启动,请参阅[问题自动继续超时](/docs/zh-CN/tools-reference#question-auto-continue-timeout)。2470让未回答的 [`AskUserQuestion`](/docs/zh-CN/tools-reference) 对话框在空闲一段时间后自动继续,并提交您已选中的选项。当您暂时离开并希望 Claude 在没有您的情况下继续时,可以设置此项。使用默认值时,问题会一直等待,直到您回答为止。关于计时器何时暂停或从不启动,请参阅[问题自动继续超时](/docs/zh-CN/tools-reference#question-auto-continue-timeout)。

2469 2471 

2470* **Scope**: [`User or managed`](#scopes)2472* **作用域**:[`User or managed`](#scopes)

2471* **Type**: string,值为 `"60s"`、`"5m"`、`"10m"` 或 `"never"` 之一2473* **类型**:字符串,取值为 `"60s"`、`"5m"`、`"10m"` 或 `"never"` 之一

2472* **Default**: `"never"`2474* **默认值**:`"never"`

2473* **Per-session overrides**: [`CLAUDE_AFK_TIMEOUT_MS`](/docs/zh-CN/env-vars) 在单个会话中优先于此键

2474 2475 

2475```json settings.json theme={null}2476```json settings.json theme={null}

2476{2477{


2478}2479}

2479```2480```

2480 2481 

2481在 `/config` 中显示为**问题自动继续超时**,它将此键写入用户设置;当托管设置或 `--settings` 标志设置此键时,Claude Code 会隐藏该行。2482在 `/config` 中显示为 **Question auto-continue timeout**,该选项会将此键写入用户设置;当托管设置或 `--settings` 标志设置了此键时,Claude Code 会隐藏该行。

2482 2483 

2483### `autoContinueAtUsageLimit`2484### `autoContinueAtUsageLimit`

2484 2485 

2485在 claude.ai 使用限制停止您的会话后,在打开的会话中等待,并在重置后自动继续任务。请参阅[关闭自动继续](/docs/zh-CN/interactive-mode#turn-automatic-continue-off)。需要 Claude Code v2.1.234 或更高版本。2486当 claude.ai 用量限制使您的会话停止后,在打开的会话中等待,并在额度重置后自动继续任务。请参阅[关闭自动继续](/docs/zh-CN/interactive-mode#turn-automatic-continue-off)。需要 Claude Code v2.1.234 或更高版本。

2486 2487 

2487* **Scope**: [`User or managed`](#scopes)。仅从用户设置、`--settings` 和托管设置中读取。当这些都没有设置此键时,设置此键的项目或本地设置文件会关闭该功能,而不是被忽略。2488* **作用域**:[`User or managed`](#scopes)。仅从用户设置、`--settings` 和托管设置中读取。当这些都未设置此键时,如果项目或本地设置文件设置了它,该功能会被关闭,而不是被忽略。

2488* **Type**: Boolean2489* **类型**:布尔值

2489 * `true`:在 claude.ai 使用限制停止您的会话后,Claude Code 在打开的会话中等待,并在重置后自动继续任务2490 * `true`:当 claude.ai 用量限制使您的会话停止后,Claude Code 会在打开的会话中等待,并在重置后自动继续任务

2490 * `false`:Claude Code 不会自动启动等待。您仍然可以从使用限制选项菜单[自己启动等待](/docs/zh-CN/interactive-mode#start-a-wait-yourself)2491 * `false`:Claude Code 不会自行开始等待。您仍然可以从用量限制选项菜单中[自行开始等待](/docs/zh-CN/interactive-mode#start-a-wait-yourself)

2491* **Default**: `true`2492* **默认值**:`true`

2492 2493 

2493```json settings.json theme={null}2494```json settings.json theme={null}

2494{2495{


2496}2497}

2497```2498```

2498 2499 

2499在 `/config` 中显示为**在使用限制时自动继续**,它将此键写入用户设置;当托管设置或 `--settings` 标志设置此键时,Claude Code 会隐藏该行。2500在 `/config` 中显示为 **Continue automatically at usage limit**,该选项会将此键写入用户设置;当托管设置或 `--settings` 标志设置了此键时,Claude Code 会隐藏该行。

2500 2501 

2501### `autoScrollEnabled`2502### `autoScrollEnabled`

2502 2503 

2503在[全屏渲染](/docs/zh-CN/fullscreen)中跟随新输出到对话底部。关闭它以在 Claude 继续工作时保持您滚动的位置;权限提示仍会滚动到视图中。2504在[全屏渲染](/docs/zh-CN/fullscreen)中,跟随新输出滚动到对话底部。关闭此项后,在 Claude 继续工作时您会停留在滚动到的位置;权限提示仍会滚动到视图中。

2504 2505 

2505* **Scope**: [`Any file`](#scopes)2506* **作用域**:[`Any file`](#scopes)

2506* **Type**: Boolean2507* **类型**:布尔值

2507 * `true`:对话跟随新输出到底部2508 * `true`:对话跟随新输出滚动到底部

2508 * `false`:当 Claude 继续工作时,您保持在滚动的位置;权限提示仍会显示在记录下方2509 * `false`:在 Claude 继续工作时您停留在滚动到的位置;权限提示仍会显示在会话记录下方

2509* **Default**: `true`2510* **默认值**:`true`

2510 2511 

2511```json settings.json theme={null}2512```json settings.json theme={null}

2512{2513{


2514}2515}

2515```2516```

2516 2517 

2517在全屏渲染打开时,在 `/config` 中显示为**自动滚动**,它将此键写入用户设置。2518开启全屏渲染时,在 `/config` 中显示为 **Auto-scroll**,该选项会将此键写入用户设置。

2518 2519 

2519### `axScreenReader`2520### `axScreenReader`

2520 2521 

2521渲染屏幕阅读器友好的输出:没有装饰性边框或动画的平面文本。屏幕阅读器模式使用经典渲染器,因此在它处于活动状态时 `tui` 设置无效;附加的[后台会话](/docs/zh-CN/agent-view)仍会全屏渲染。2522渲染适合屏幕阅读器的输出:不带装饰性边框或动画的纯文本。屏幕阅读器模式使用经典渲染器,因此启用时 `tui` 设置不起作用;附加的[后台会话](/docs/zh-CN/agent-view)仍以全屏方式渲染。

2522 2523 

2523* **Scope**: [`Any file`](#scopes)2524* **作用域**:[`Any file`](#scopes)

2524* **Type**: Boolean2525* **类型**:布尔值

2525 * `true`:Claude Code 使用经典渲染器渲染没有装饰性边框或动画的平面文本2526 * `true`:Claude Code 使用经典渲染器,渲染不带装饰性边框或动画的纯文本

2526 * `false`:Claude Code 正常渲染2527 * `false`:Claude Code 正常渲染

2527* **Default**: unset,所以屏幕阅读器模式关闭2528* **默认值**:未设置,因此屏幕阅读器模式关闭

2528* **Per-session overrides**: [`--ax-screen-reader`](/docs/zh-CN/cli-reference#cli-flags) 优先于 [`CLAUDE_AX_SCREEN_READER`](/docs/zh-CN/env-vars),两者都优先于单个会话的此键2529* **单会话覆盖**:[`--ax-screen-reader`](/docs/zh-CN/cli-reference#cli-flags) 优先于 [`CLAUDE_AX_SCREEN_READER`](/docs/zh-CN/env-vars),且两者在单个会话中都优先于此键

2529 2530 

2530```json settings.json theme={null}2531```json settings.json theme={null}

2531{2532{


2535 2536 

2536### `bashEditDiffEnabled`2537### `bashEditDiffEnabled`

2537 2538 

2538选择 Claude Code 是否记录 Bash 命令运行期间 Git 存储库中发生更改的文件。当它记录它们时,您会在命令后在终端中看到它们的差异,您的 [PostToolUse Bash hooks](/docs/zh-CN/hooks#bash) 会接收更改的文件列表。2539选择 Claude Code 是否记录 Bash 命令运行期间 Git 仓库中哪些文件发生了更改。记录时,您会在命令执行后于终端中看到这些文件的 diff,并且您的 [PostToolUse Bash hook](/docs/zh-CN/hooks#bash) 会收到已更改文件列表。

2539 2540 

2540列出的文件并不总是命令更改的文件。命令运行时另一个程序或另一个 Bash 调用所做的更改也可能出现在那里。2541列出的文件不一定是该命令更改的。命令运行期间由其他程序或其他 Bash 调用所做的更改也可能出现在列表中。

2541 2542 

2542将键设置为 `true` 以在每个权限模式中记录它们。需要 Claude Code v2.1.269 或更高版本。2543将此键设置为 `true` 可在所有权限模式下进行记录。需要 Claude Code v2.1.269 或更高版本。

2543 2544 

2544* **Scope**: [`User or managed`](#scopes)。`true` 仅从您的用户设置、使用 `--settings` 传递的 JSON 或[托管设置](/docs/zh-CN/managed-settings)计数,因此存储库的 `.claude/settings.json` 或 `.claude/settings.local.json` 中的 `true` 无法打开记录。存储库文件中的 `false` 仍会关闭它,除非[更高优先级](/docs/zh-CN/settings#settings-precedence)的文件设置 `true`。2545* **作用域**:[`User or managed`](#scopes)。`true` 仅在来自您的用户设置、通过 `--settings` 传入的 JSON 或[托管设置](/docs/zh-CN/managed-settings)时才生效,因此仓库的 `.claude/settings.json` 或 `.claude/settings.local.json` 中的 `true` 无法开启记录。这两个仓库文件中的 `false` 仍会关闭记录,除非[优先级更高](/docs/zh-CN/settings#settings-precedence)的文件设置了 `true`。

2545* **Type**: Boolean2546* **类型**:布尔值

2546* **Default**: unset,所以当 Claude Code 指导 Claude 通过 Bash 编辑文件时,Claude Code 在自动模式和 `bypassPermissions` 模式中记录更改2547* **默认值**:未设置,因此当 Claude Code 指示 Claude 通过 Bash 编辑文件时,会在自动模式和 `bypassPermissions` 模式下记录更改

2547* **Per-session overrides**: [`CLAUDE_CODE_BASH_EDIT_DIFF`](/docs/zh-CN/env-vars) 在单个会话中优先于此键2548* **单会话覆盖**:[`CLAUDE_CODE_BASH_EDIT_DIFF`](/docs/zh-CN/env-vars) 在单个会话中优先于此键

2548 2549 

2549```json settings.json theme={null}2550```json settings.json theme={null}

2550{2551{


2554 2555 

2555### `companyAnnouncements`2556### `companyAnnouncements`

2556 2557 

2557在启动时向用户显示您组织的公告。当您列出多个公告时,Claude Code 为每个会话随机选择一个;在某人的首次启动时,它显示第一个条目。2558在启动时向用户显示您组织的公告。当您列出多条公告时,Claude Code 会为每个会话随机选择一条;在用户首次启动时,它会显示第一条。

2558 2559 

2559* **Scope**: [`Any file`](#scopes)2560* **作用域**:[`Any file`](#scopes)

2560* **Type**: array of strings2561* **类型**:字符串数组

2561* **Default**: unset,所以不显示公告2562* **默认值**:未设置,因此不显示公告

2562 2563 

2563```json settings.json theme={null}2564```json settings.json theme={null}

2564{2565{


2570 2571 

2571### `defaultShell`2572### `defaultShell`

2572 2573 

2573选择 Bash 或 PowerShell 是否运行您在输入框中使用 [`!` 前缀](/docs/zh-CN/interactive-mode#shell-mode-with-prefix)键入的 shell 命令,以及 Claude Code 直接运行并添加到会话的命令。2574选择由 Bash 还是 PowerShell 来运行您在输入框中以 [`!` 前缀](/docs/zh-CN/interactive-mode#shell-mode-with-prefix)输入的 shell 命令,即 Claude Code 直接运行并添加到会话中的那些命令。

2574 2575 

2575`"powershell"` 仅在 [PowerShell tool](/docs/zh-CN/tools-reference#powershell-tool) 打开时有效。该工具在没有 Git Bash 的 Windows 上默认打开,在带有 Git Bash 的 Windows 上对于 claude.ai 和 Console 账户默认打开。在 Amazon Bedrock、Google Cloud 的 Agent Platform 和 Microsoft Foundry 会话中,以及在 macOS、Linux 和 WSL 上,设置 `CLAUDE_CODE_USE_POWERSHELL_TOOL=1` 以打开该工具。将该变量设置为 `0` 以关闭该工具。2576`"powershell"` 仅在 [PowerShell 工具](/docs/zh-CN/tools-reference#powershell-tool)开启时有效。在没有 Git Bash 的 Windows 上,以及在有 Git Bash 的 Windows 上使用 claude.ai 和 Console 账户时,该工具默认开启。在 Amazon Bedrock、Google Cloud 的 Agent Platform 和 Microsoft Foundry 会话中,以及在 macOS、Linux 和 WSL 上,请设置 `CLAUDE_CODE_USE_POWERSHELL_TOOL=1` 来开启该工具。将该变量设置为 `0` 可关闭该工具。

2576 2577 

2577* **Scope**: [`Any file`](#scopes)2578* **作用域**:[`Any file`](#scopes)

2578* **Type**: string,值为以下之一:2579* **类型**:字符串,取值为以下之一:

2579 * `"bash"`:Claude Code 在 Bash 中运行您的 `!` 命令2580 * `"bash"`:Claude Code 在 Bash 中运行您的 `!` 命令

2580 * `"powershell"`:Claude Code 在 PowerShell 中运行您的 `!` 命令2581 * `"powershell"`:Claude Code 在 PowerShell 中运行您的 `!` 命令

2581* **Default**: `"bash"`,或在 Bash 不可用时在 Windows 上为 `"powershell"`2582* **默认值**:`"bash"`,在 Bash 不可用的 Windows 上为 `"powershell"`

2582 2583 

2583```json settings.json theme={null}2584```json settings.json theme={null}

2584{2585{


2586}2587}

2587```2588```

2588 2589 

2589如果您指定的 shell 不可用,Claude Code 会使用另一个:当 PowerShell 工具关闭时 `"powershell"` 回退到 Bash,当 Bash 未安装时 `"bash"` 回退到 PowerShell。2590如果您指定的 shell 不可用,Claude Code 会使用另一个:当 PowerShell 工具关闭时,`"powershell"` 会回退到 Bash;当未安装 Bash 时,`"bash"` 会回退到 PowerShell。

2590 2591 

2591### `dialogExpiry`2592### `dialogExpiry`

2592 2593 

2593为 Claude Code [转发给远程客户端](/docs/zh-CN/remote-control#limitations)的对话框(例如远程控制或 SDK 主机)以及[保留的跨会话消息](/docs/zh-CN/cross-session-messaging#control-inbound-messages)的批准对话框设置截止时间。在 Claude Code v2.1.236 或更高版本上,相同的截止时间限制了会话中可能没有人在终端的中期 [Fable 使用额度同意提示](/docs/zh-CN/model-config#fable-and-usage-credits)。当在截止时间前没有答案到达时,Claude Code 取消对话框并继续使用其无操作默认值。需要 Claude Code v2.1.224 或更高版本。2594为 Claude Code [转发到远程客户端](/docs/zh-CN/remote-control#limitations)(例如 Remote Control 或 SDK 主机)的对话框,以及[被暂扣的跨会话消息](/docs/zh-CN/cross-session-messaging#control-inbound-messages)的批准对话框设置截止时间。在 Claude Code v2.1.236 或更高版本中,同一截止时间也适用于可能无人值守终端的会话中途出现的 [Fable 使用额度同意提示](/docs/zh-CN/model-config#fable-and-usage-credits)。如果在截止时间之前没有收到回答,Claude Code 会取消该对话框,并以其不执行操作的默认行为继续。需要 Claude Code v2.1.224 或更高版本。

2594 2595 

2595* **Scope**: [`User or managed`](#scopes)2596* **作用域**:[`User or managed`](#scopes)

2596* **Type**: string,值为 `"60s"`、`"5m"`、`"10m"` 或 `"never"` 之一,后者禁用截止时间2597* **类型**:字符串,取值为 `"60s"`、`"5m"`、`"10m"` 或 `"never"`(禁用截止时间)之一

2597* **Default**: `"5m"`2598* **默认值**:`"5m"`

2598* **Per-session overrides**: [`CLAUDE_CODE_USER_DIALOG_TIMEOUT_MS`](/docs/zh-CN/env-vars) 在单个会话中优先于此键2599* **单会话覆盖**:[`CLAUDE_CODE_USER_DIALOG_TIMEOUT_MS`](/docs/zh-CN/env-vars) 在单个会话中优先于此键

2599 2600 

2600```json settings.json theme={null}2601```json settings.json theme={null}

2601{2602{


2603}2604}

2604```2605```

2605 2606 

2606权限提示和 [`AskUserQuestion`](/docs/zh-CN/tools-reference#askuserquestion-tool-behavior) 问题使用它们自己的流程,不受此截止时间管制。在 `/config` 中显示为**对话框过期**,它将此键写入用户设置;该行需要 Claude Code v2.1.232 或更高版本,当托管设置或 `--settings` 标志设置此键时,Claude Code 会隐藏它。2607权限提示和 [`AskUserQuestion`](/docs/zh-CN/tools-reference#askuserquestion-tool-behavior) 问题使用各自的流程,不受此截止时间约束。在 `/config` 中显示为 **Dialog expiry**,该选项会将此键写入用户设置;该行需要 Claude Code v2.1.232 或更高版本,并且当托管设置或 `--settings` 标志设置了此键时,Claude Code 会隐藏该行。

2607 2608 

2608### `editorMode`2609### `editorMode`

2609 2610 

2610为输入提示选择快捷键绑定模式。2611选择输入框的按键绑定模式。

2611 2612 

2612* **Scope**: [`Any file`](#scopes)2613* **作用域**:[`Any file`](#scopes)

2613* **Type**: string,值为以下之一:2614* **类型**:字符串,取值为以下之一:

2614 * `"normal"`:提示输入中的标准快捷键2615 * `"normal"`:输入框中的标准按键绑定

2615 * `"vim"`:vim 风格编辑,具有 NORMAL、INSERT 和 VISUAL 模式2616 * `"vim"`:具有 NORMAL、INSERT 和 VISUAL 模式的 vim 风格编辑

2616* **Default**: `"normal"`2617* **默认值**:`"normal"`

2617 2618 

2618```json settings.json theme={null}2619```json settings.json theme={null}

2619{2620{


2621}2622}

2622```2623```

2623 2624 

2624在 `/config` 中显示为**编辑器模式**,它将此键写入用户设置。2625在 `/config` 中显示为 **Editor mode**,该选项会将此键写入用户设置。

2625 2626 

2626### `emojiCompletionEnabled`2627### `emojiCompletionEnabled`

2627 2628 

2628当您在提示输入中键入 `:` 加上速记代码时显示表情符号建议,并将完成的速记代码(如 `:heart:`)替换为其表情符号。将其设置为 `false` 以关闭两者。2629当您在输入框中输入 `:` 加短代码时显示 emoji 建议,并将已完成的短代码(例如 `:heart:`)替换为对应的 emoji。将其设置为 `false` 可同时关闭这两项功能。

2629 2630 

2630* **Scope**: [`Any file`](#scopes)2631* **作用域**:[`Any file`](#scopes)

2631* **Type**: Boolean2632* **类型**:布尔值

2632 * `true`:Claude Code 在 `:` 后显示表情符号建议,并将完成的速记代码替换为其表情符号2633 * `true`:Claude Code 在 `:` 之后显示 emoji 建议,并将已完成的短代码替换为对应的 emoji

2633 * `false`:Claude Code 既不建议表情符号也不替换速记代码2634 * `false`:Claude Code 既不建议 emoji,也不替换短代码

2634* **Default**: `true`2635* **默认值**:`true`

2635 2636 

2636```json settings.json theme={null}2637```json settings.json theme={null}

2637{2638{


2639}2640}

2640```2641```

2641 2642 

2642请参阅[表情符号速记代码](/docs/zh-CN/interactive-mode#emoji-shortcodes)。需要 Claude Code v2.1.217 或更高版本。2643请参阅 [Emoji 短代码](/docs/zh-CN/interactive-mode#emoji-shortcodes)。需要 Claude Code v2.1.217 或更高版本。

2643 2644 

2644### `fileSuggestion`2645### `fileSuggestion`

2645 2646 

2646运行您自己的命令来提供 `@` 文件路径自动完成,而不是使用内置文件建议。内置建议使用快速文件系统遍历;大型单体仓库可能会通过项目特定的索引(如预构建的文件索引)做得更好。2647运行您自己的命令来提供 `@` 文件路径自动补全,以替代内置的文件建议。内置建议使用快速的文件系统遍历;大型 monorepo 使用项目特定的索引(例如预构建的文件索引)可能效果更好。

2647 2648 

2648* **Scope**: [`Any file`](#scopes)。在[状态行和文件建议门](#status-line-and-file-suggestion-gates)下,Claude Code 关闭命令或仅运行托管值,并跳过您的而不发出警告。2649* **作用域**:[`Any file`](#scopes)。在[状态栏和文件建议限制](#status-line-and-file-suggestion-gates)下,Claude Code 会关闭该命令或仅运行托管值,并在不发出警告的情况下跳过您的命令。

2649* **Type**: 对象,包含 `type`(始终为 `"command"`)和 `command`(要运行的 shell 命令)2650* **类型**:包含 `type`(始终为 `"command"`)和 `command`(要运行的 shell 命令)的对象

2650* **Default**: unset,所以 Claude Code 使用内置文件建议2651* **默认值**:未设置,因此 Claude Code 使用内置的文件建议

2651 2652 

2652```json settings.json theme={null}2653```json settings.json theme={null}

2653{2654{


2658}2659}

2659```2660```

2660 2661 

2661保存后,在提示中键入 `@` 后跟部分路径:建议来自您命令的输出。2662保存后,在输入框中输入 `@` 加上部分路径:建议将来自您命令的输出。

2662 2663 

2663#### 命令输入和输出2664#### 命令输入和输出

2664 2665 

2665Claude Code 使用与 [hooks](/docs/zh-CN/hooks) 相同的环境变量运行命令,包括 `CLAUDE_PROJECT_DIR`,并在五秒后停止等待。该命令在 stdin 上接收 JSON,其中 `query` 字段包含您到目前为止键入的内容:2666Claude Code 使用与 [hook](/docs/zh-CN/hooks) 相同的环境变量(包括 `CLAUDE_PROJECT_DIR`)运行该命令,并在五秒后停止等待。该命令通过 stdin 接收 JSON,其中 `query` 字段包含您目前已输入的内容:

2666 2667 

2667```json theme={null}2668```json theme={null}

2668{"query": "src/comp"}2669{"query": "src/comp"}

2669```2670```

2670 2671 

2671将换行符分隔的文件路径打印到 stdout。Claude Code 最多显示 15 个:2672将以换行符分隔的文件路径输出到 stdout。Claude Code 最多显示 15 条:

2672 2673 

2673```text theme={null}2674```text theme={null}

2674src/components/Button.tsx2675src/components/Button.tsx


2676src/components/Form.tsx2677src/components/Form.tsx

2677```2678```

2678 2679 

2679以下脚本读取查询并将其传递给存储库文件索引:2680以下脚本读取查询并将其传递给仓库文件索引:

2680 2681 

2681```bash theme={null}2682```bash theme={null}

2682#!/bin/bash2683#!/bin/bash

2683query=$(cat | jq -r '.query')2684query=$(cat | jq -r '.query')

2684# 用您自己的文件搜索命令替换 your-repo-file-index2685# Replace your-repo-file-index with your own file search command

2685your-repo-file-index --query "$query" | head -202686your-repo-file-index --query "$query" | head -20

2686```2687```

2687 2688 

2688### `footerLinksRegexes`2689### `footerLinksRegexes`

2689 2690 

2690当正则表达式匹配转向输出时在输入框下方的页脚中渲染额外的可点击徽章:工具结果,包括文件内容和获取的页面,以及 Claude 自己的响应。使用它将项目 CLI 打印的 ID(如审查工具和问题跟踪器)转换为会话链接。2691当正则表达式匹配到轮次输出(工具结果,包括文件内容和获取的页面,以及 Claude 自己的回复)时,在输入框下方的页脚中渲染额外的可点击徽章。使用它可以将项目 CLI(例如审查工具和问题跟踪器)打印的 ID 转换为会话链接。

2691 2692 

2692* **Scope**: [`User or managed`](#scopes)2693* **作用域**:[`User or managed`](#scopes)

2693* **Type**: 对象数组,每个对象的 `type` 设置为 `"regex"`、`pattern` 正则表达式、`url` 模板和可选的 `label`;`url` 和 `label` 中的 `{name}` 占位符从 `pattern` 中的命名捕获组填充2694* **类型**:对象数组,每个对象包含设置为 `"regex"` 的 `type`、一个 `pattern` 正则表达式、一个 `url` 模板以及可选的 `label`;`url` 和 `label` 中的 `{name}` 占位符由 `pattern` 中的命名捕获组填充

2694* **Default**: unset,所以不渲染徽章2695* **默认值**:未设置,因此不渲染徽章

2695 2696 

2696此示例匹配问题键(如 `PROJ-1234`)并从捕获的键构建每个链接:2697此示例匹配诸如 `PROJ-1234` 之类的问题键,并根据捕获的键构建每个链接:

2697 2698 

2698```json settings.json theme={null}2699```json settings.json theme={null}

2699{2700{


2708}2709}

2709```2710```

2710 2711 

2711配置此项后,当 `PROJ-1234` 出现在工具结果或 Claude 的回复中时,页脚中会出现一个 `PROJ-1234` 徽章,链接到 `https://issues.example.com/browse/PROJ-1234`。2712配置完成后,当 `PROJ-1234` 出现在工具结果或 Claude 的回复中时,页脚中会出现一个 `PROJ-1234` 徽章,链接到 `https://issues.example.com/browse/PROJ-1234`。

2712 2713 

2713#### 徽章约束2714#### 徽章约束

2714 2715 

2715每个条目的 URL、标签和徽章计数受以下限制:2716每个条目的 URL、标签和徽章数量受以下限制:

2716 2717 

2717| 约束 | 行为 |2718| 约束 | 行为 |

2718| :- | :- |2719| :- | :- |

2719| URL 源 | 捕获的值是 URL 编码的,构造的 URL 必须共享模板的字面源。捕获可以填充路径段或查询值,但不能改变链接指向的位置 |2720| URL 来源 | 捕获的值会经过 URL 编码,并且构建的 URL 必须与模板的字面来源相同。捕获值可以填充路径段或查询值,但不能更改链接指向的位置 |

2720| URL 长度 | 长于 2048 个字符的构造 URL 被丢弃 |2721| URL 长度 | 超过 2048 个字符的构建 URL 会被丢弃 |

2721| URL 方案 | 必须是 `https`、`http` 或公认的编辑器或工作区深层链接方案:`vscode`、`vscode-insiders`、`cursor`、`windsurf`、`zed`、`jetbrains`、`idea`、`slack`、`linear`、`notion`、`figma` |2722| URL 协议 | 必须是 `https`、`http` 或可识别的编辑器或工作区深层链接协议:`vscode`、`vscode-insiders`、`cursor`、`windsurf`、`zed`、`jetbrains`、`idea`、`slack`、`linear`、`notion`、`figma` |

2722| 标签 | 默认为匹配的文本,截断为 28 个显示列 |2723| 标签 | 默认为匹配的文本,并截断为 28 个显示列 |

2723| 徽章计数 | 最多渲染 5 个徽章。最旧的被较新的匹配替换,`/clear` 删除它们 |2724| 徽章数量 | 最多渲染 5 个徽章。最旧的徽章会被较新的匹配项替换,`/clear` 会将其移除 |

2724 2725 

2725当转向完成时,Claude Code 在主线程上将每个条目的 `pattern` 正则表达式与转向输出匹配,因此缓慢的正则表达式会阻止 UI 直到完成。嵌套量词(如 `(a+)+$`)对某些输入可能需要指数级长的时间并冻结会话,因此保持每个 `pattern` 线性并避免嵌套 `+` 或 `*`。2726当一个轮次完成时,Claude Code 会在主线程上将每个条目的 `pattern` 正则表达式与轮次输出进行匹配,因此缓慢的正则表达式会阻塞 UI 直到其完成。诸如 `(a+)+$` 之类的嵌套量词在某些输入下可能耗时呈指数级增长并冻结会话,因此请保持每个 `pattern` 为线性,避免嵌套 `+` 或 `*`。

2726 2727 

2727页脚徽章与[自定义状态行](/docs/zh-CN/statusline)一起渲染(当配置了一个时);两者都不替换另一个。使用状态行来获得从会话数据计算自己内容的脚本驱动行,使用页脚徽章将对话中的 ID 转换为链接而无需脚本。2728配置了[自定义状态栏](/docs/zh-CN/statusline)时,页脚徽章会与其一同渲染;两者互不替代。状态栏适用于由脚本驱动、根据会话数据计算自身内容的行,而页脚徽章无需脚本即可将对话中的 ID 转换为链接。

2728 2729 

2729### `keybindingFlavor`2730### `keybindingFlavor`

2730 2731 

2731> [!WARNING]2732> [!WARNING]

2732>2733>

2733> 自 v2.1.261 起已弃用,无效。提示的单词编辑键始终[遵循 readline 约定](/docs/zh-CN/interactive-mode#make-ctrl-w-delete-back-to-whitespace),如在 Bash 中一样。Claude Code 仍然接受 `keybindingFlavor`,因此设置它的设置文件保持有效。2734> 自 v2.1.261 起已弃用,且不再起作用。输入框的单词编辑键始终[遵循 readline 约定](/docs/zh-CN/interactive-mode#make-ctrl-w-delete-back-to-whitespace),与 Bash 中一样。Claude Code 仍接受 `keybindingFlavor`,因此设置了它的设置文件仍然有效。

2734 2735 

2735在 v2.1.238 到 v2.1.260 中,将其设置为 `"readline"` 使 `Ctrl+W` 删除回到前一个空格而不仅仅是前一个单词。2736在 v2.1.238 到 v2.1.260 中,将其设置为 `"readline"` 会使 `Ctrl+W` 向后删除到上一个空白字符,而不是仅删除上一个单词。

2736 2737 

2737* **Scope**: [`Any file`](#scopes)2738* **作用域**:[`Any file`](#scopes)

2738* **Type**: string,`"classic"` 或 `"readline"`2739* **类型**:字符串,`"classic"` 或 `"readline"`

2739* **Default**: unset2740* **默认值**:未设置

2740 2741 

2741### `maxProseWidth`2742### `maxProseWidth`

2742 2743 

2743限制 Claude 响应中散文的宽度,使行在宽终端中保持可读性。段落、标题、列表和块引用在此列数内换行,而表格和代码块保持完整的终端宽度。需要 Claude Code v2.1.282 或更高版本。2744限制 Claude 回复中正文的宽度,使文本行在宽终端中保持可读。段落、标题、列表和引用块会在此列数内换行,而表格和代码块保持完整的终端宽度。需要 Claude Code v2.1.282 或更高版本。

2744 2745 

2745* **Scope**: [`Any file`](#scopes)2746* **作用域**:[`Any file`](#scopes)

2746* **Type**: 终端列数,整数,最小 `40`。Claude Code 忽略任何其他值2747* **类型**:终端列数,为整数,最小值为 `40`。Claude Code 会忽略任何其他值

2747* **Default**: unset,所以散文在终端边缘换行2748* **默认值**:未设置,因此正文在终端边缘换行

2748 2749 

2749```json settings.json theme={null}2750```json settings.json theme={null}

2750{2751{


2754 2755 

2755### `prefersReducedMotion`2756### `prefersReducedMotion`

2756 2757 

2757减少或关闭界面动画,如加载动画、闪烁和闪光效果。在 `/config` 中显示为**减少动画**。2758减少或关闭界面动画,例如加载动画、微光和闪烁效果。在 `/config` 中显示为 **Reduce motion**。

2758 2759 

2759* **Scope**: [`Any file`](#scopes)2760* **作用域**:[`Any file`](#scopes)

2760* **Type**: Boolean2761* **类型**:布尔值

2761 * `true`:Claude Code 减少或关闭界面动画,如加载动画、闪烁和闪光效果2762 * `true`:Claude Code 减少或关闭界面动画,例如加载动画、微光和闪烁效果

2762 * `false`:与 unset 相同;Claude Code 显示其动画2763 * `false`:与未设置相同;Claude Code 显示其动画

2763* **Default**: `false`2764* **默认值**:`false`

2764 2765 

2765```json settings.json theme={null}2766```json settings.json theme={null}

2766{2767{


2770 2771 

2771### `promptSuggestionEnabled`2772### `promptSuggestionEnabled`

2772 2773 

2773显示或隐藏[提示建议](/docs/zh-CN/interactive-mode#prompt-suggestions),即在您的提示输入中出现的灰显预测。将其设置为 `false`,或在 `/config` 中关闭**提示建议**,以隐藏它们。2774显示或隐藏[提示词建议](/docs/zh-CN/interactive-mode#prompt-suggestions),即出现在输入框中的灰色预测内容。将其设置为 `false`,或在 `/config` 中关闭 **Prompt suggestions**,即可隐藏它们。

2774 2775 

2775* **Scope**: [`Any file`](#scopes)2776* **作用域**:[`Any file`](#scopes)

2776* **Type**: Boolean2777* **类型**:布尔值

2777 * `true`:您在提示输入中看到提示建议2778 * `true`:您会在输入框中看到提示词建议

2778 * `false`:Claude Code 隐藏提示建议2779 * `false`:Claude Code 隐藏提示词建议

2779* **Default**: `true`2780* **默认值**:`true`

2780* **Per-session overrides**: [`CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION`](/docs/zh-CN/env-vars) 在单个会话中优先于此键2781* **单会话覆盖**:[`CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION`](/docs/zh-CN/env-vars) 在单个会话中优先于此键

2781 2782 

2782```json settings.json theme={null}2783```json settings.json theme={null}

2783{2784{


2785}2786}

2786```2787```

2787 2788 

2788提示建议需要启用了遥测的 claude.ai 或 Console 账户。在 Amazon Bedrock、Google Cloud 的 Agent Platform 和 Microsoft Foundry 上,或关闭遥测时(如通过 [`DISABLE_TELEMETRY`](/docs/zh-CN/env-vars)),此键无效,仅 `CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION=1` 打开它们。2789提示词建议需要开启了遥测的 claude.ai 或 Console 账户。在 Amazon Bedrock、Google Cloud 的 Agent Platform 和 Microsoft Foundry 上,或在遥测被关闭(例如通过 [`DISABLE_TELEMETRY`](/docs/zh-CN/env-vars))时,此键不起作用,只有 `CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION=1` 能开启它们。

2789 2790 

2790### `respectGitignore`2791### `respectGitignore`

2791 2792 

2792控制 `@` 文件选择器是否排除与 `.gitignore` 模式匹配的文件。在 `/config` 中显示为**在文件选择器中尊重 .gitignore**。2793控制 `@` 文件选择器是否排除与 `.gitignore` 模式匹配的文件。在 `/config` 中显示为 **Respect .gitignore in file picker**。

2793 2794 

2794* **Scope**: [`Any file`](#scopes)。当没有设置文件设置它时,Claude Code 回退到 `~/.claude.json` 中的 `respectGitignore`,这是 `/config` 切换写入的。2795* **作用域**:[`Any file`](#scopes)。当没有设置文件设置此项时,Claude Code 会回退到 `~/.claude.json` 中的 `respectGitignore`,即 `/config` 开关所写入的值。

2795* **Type**: Boolean2796* **类型**:布尔值

2796 * `true`:`@` 文件选择器排除与 `.gitignore` 模式匹配的文件2797 * `true`:`@` 文件选择器排除与 `.gitignore` 模式匹配的文件

2797 * `false`:`@` 文件选择器包括与 `.gitignore` 模式匹配的文件2798 * `false`:`@` 文件选择器包含与 `.gitignore` 模式匹配的文件

2798* **Default**: `true`2799* **默认值**:`true`

2799 2800 

2800```json settings.json theme={null}2801```json settings.json theme={null}

2801{2802{


2805 2806 

2806### `respondToBashCommands`2807### `respondToBashCommands`

2807 2808 

2808选择在您使用输入框中的 [`!` 前缀](/docs/zh-CN/interactive-mode#shell-mode-with-prefix)运行 shell 命令后 Claude 是否响应。默认情况下,Claude Code 将命令的输出添加到对话中,Claude 对其进行回复。将此键设置为 `false` 以将输出添加到上下文而不进行回复,以便您可以运行多个命令并一起询问它们。2809选择在您于输入框中以 [`!` 前缀](/docs/zh-CN/interactive-mode#shell-mode-with-prefix)运行 shell 命令后,Claude 是否进行回复。默认情况下,Claude Code 会将命令的输出添加到对话中,Claude 会对其进行回复。将此键设置为 `false` 可将输出添加到上下文中而不进行回复,这样您就可以运行多个命令并一起询问它们。

2809 2810 

2810* **Scope**: [`Any file`](#scopes)2811* **作用域**:[`Any file`](#scopes)

2811* **Type**: Boolean2812* **类型**:布尔值

2812 * `true`:Claude Code 将命令的输出添加到对话中,Claude 对其进行回复2813 * `true`:Claude Code 将命令的输出添加到对话中,Claude 会对其进行回复

2813 * `false`:Claude Code 将输出添加到上下文而不进行回复2814 * `false`:Claude Code 将输出添加到上下文中而不进行回复

2814* **Default**: `true`2815* **默认值**:`true`

2815 2816 

2816```json settings.json theme={null}2817```json settings.json theme={null}

2817{2818{


2819}2820}

2820```2821```

2821 2822 

2822请参阅[使用 `!` 前缀的 Shell 模式](/docs/zh-CN/interactive-mode#shell-mode-with-prefix)。2823请参阅[使用 `!` 前缀的 shell 模式](/docs/zh-CN/interactive-mode#shell-mode-with-prefix)。

2823 2824 

2824### `showClearContextOnPlanAccept`2825### `showClearContextOnPlanAccept`

2825 2826 

2826当 Claude 在[计划模式](/docs/zh-CN/permission-modes#review-and-approve-a-plan)中完成计划时,它显示一个批准菜单。规划可能会使用大量上下文,因此此键向该菜单添加第一个选项**是的,清除上下文并…**,它批准计划、清除对话上下文并仅从计划开始实施。标签的其余部分命名会话继续的权限模式,并显示规划使用了多少上下文。2827当 Claude 在[计划模式](/docs/zh-CN/permission-modes#review-and-approve-a-plan)中完成计划时,会显示一个批准菜单。制定计划可能会占用大量上下文,因此此键会在该菜单中添加第一个选项 **Yes, clear context and …**,用于批准计划、清除对话上下文,并仅基于计划开始实施。标签的其余部分会注明会话将继续使用的权限模式,并显示计划阶段占用了多少上下文。

2827 2828 

2828* **Scope**: [`Any file`](#scopes)2829* **作用域**:[`Any file`](#scopes)

2829* **Type**: Boolean2830* **类型**:布尔值

2830 * `true`:计划批准菜单获得第一个选项**是的,清除上下文并…**,它批准计划并清除对话上下文2831 * `true`:计划批准菜单会出现第一个选项 **Yes, clear context and …**,用于批准计划并清除对话上下文

2831 * `false`:计划批准菜单不显示清除上下文选项2832 * `false`:计划批准菜单不显示清除上下文选项

2832* **Default**: `false`2833* **默认值**:`false`

2833 2834 

2834```json settings.json theme={null}2835```json settings.json theme={null}

2835{2836{


2839 2840 

2840### `showTurnDuration`2841### `showTurnDuration`

2841 2842 

2842显示或隐藏每个响应后的转向持续时间消息,如"Cooked for 1m 6s · done 6:05 PM"。"done"后的时钟显示转向何时完成;[`timeFormat`](#timeformat) 和 [`timeZone`](#timezone) 控制其格式和区域。在 `/config` 中显示为**显示转向持续时间**。2843显示或隐藏每次回复后的轮次耗时消息,例如 "Cooked for 1m 6s · done 6:05 PM"。"done" 后的时钟显示轮次完成的时间;[`timeFormat`](#timeformat) 和 [`timeZone`](#timezone) 控制其格式和时区。在 `/config` 中显示为 **Show turn duration**。

2843 2844 

2844* **Scope**: [`Any file`](#scopes)。当没有设置文件设置它时,来自较旧版本的 `~/.claude.json` 中的值适用。2845* **作用域**:[`Any file`](#scopes)。当没有设置文件设置此项时,来自旧版本的 `~/.claude.json` 中的值会生效。

2845* **Type**: Boolean2846* **类型**:布尔值

2846 * `true`:您在每个响应后看到转向持续时间消息2847 * `true`:您会在每次回复后看到轮次耗时消息

2847 * `false`:Claude Code 隐藏转向持续时间消息2848 * `false`:Claude Code 隐藏轮次耗时消息

2848* **Default**: `true`2849* **默认值**:`true`

2849 2850 

2850```json settings.json theme={null}2851```json settings.json theme={null}

2851{2852{


2855 2856 

2856### `spellcheck`2857### `spellcheck`

2857 2858 

2858在您键入时在提示输入中为拼写错误的单词加下划线,使用您安装的拼写检查器。Claude Code 仅检查输入框中的文本。[在您键入时检查拼写](/docs/zh-CN/interactive-mode#check-spelling-as-you-type)涵盖安装 aspell、hunspell 或 ispell 以及检查器涵盖的内容。需要 Claude Code v2.1.235 或更高版本。2859使用您安装的拼写检查器,在您输入时为输入框中的拼写错误单词添加下划线。Claude Code 仅检查输入框中的文本。[输入时检查拼写](/docs/zh-CN/interactive-mode#check-spelling-as-you-type)介绍了如何安装 aspell、hunspell 或 ispell 以及检查器的覆盖范围。需要 Claude Code v2.1.235 或更高版本。

2859 2860 

2860* **Scope**: [`User or managed`](#scopes)。设置它的最高层的块整体应用。2861* **作用域**:[`User or managed`](#scopes)。设置了此项的最高层级中的整个块会作为整体生效。

2861* **Type**: 对象,包含 `enabled`(Boolean)、`checker`(`"aspell"`、`"hunspell"`、`"ispell"` 或 `"auto"`)、`language`(字符串,传递给检查器作为其字典名称)和 `color`(字符串,终端颜色名称、`#rrggbb`、`rgb(r,g,b)`、`ansi256(n)` 或 `ansi:<name>`)2862* **类型**:包含 `enabled`(布尔值)、`checker`(`"aspell"`、`"hunspell"`、`"ispell"` 或 `"auto"`)、`language`(字符串,作为词典名称传递给检查器)和 `color`(字符串,终端颜色名称、`#rrggbb`、`rgb(r,g,b)`、`ansi256(n)` 或 `ansi:<name>`)的对象

2862* **Default**: unset,所以拼写检查关闭;`checker` 默认为 `"auto"`,`PATH` 上找到的前三个之一;`language` 默认为检查器自己的字典;`color` 默认为主题的错误颜色2863* **默认值**:未设置,因此拼写检查关闭;`checker` 默认为 `"auto"`,即在 `PATH` 中找到的三者中的第一个;`language` 默认为检查器自身的词典;`color` 默认为主题的错误颜色

2863 2864 

2864```json settings.json theme={null}2865```json settings.json theme={null}

2865{2866{


2869 2870 

2870### `spinnerTipsEnabled`2871### `spinnerTipsEnabled`

2871 2872 

2872当 Claude 工作时,加载动画行轮换显示关于 Claude Code 功能的短提示,如"使用计划模式为复杂请求做准备,然后再进行更改。按 Shift+Tab 两次以启用。"将此键设置为 `false` 以隐藏它们。在 `/config` 中显示为**显示提示**。2873在 Claude 工作时,加载动画行会轮流显示有关 Claude Code 功能的简短提示,例如 "Use Plan Mode to prepare for a complex request before making changes. Press Shift+Tab twice to enable."。将此键设置为 `false` 可隐藏它们。在 `/config` 中显示为 **Show tips**。

2873 2874 

2874* **Scope**: [`Any file`](#scopes)2875* **作用域**:[`Any file`](#scopes)

2875* **Type**: Boolean2876* **类型**:布尔值

2876 * `true`:当 Claude 工作时,您在加载动画中看到提示2877 * `true`:在 Claude 工作时,您会在加载动画中看到提示

2877 * `false`:Claude Code 隐藏加载动画提示2878 * `false`:Claude Code 隐藏加载动画提示

2878* **Default**: `true`2879* **默认值**:`true`

2879 2880 

2880```json settings.json theme={null}2881```json settings.json theme={null}

2881{2882{


2885 2886 

2886### `spinnerTipsOverride`2887### `spinnerTipsOverride`

2887 2888 

2888将您自己的提示添加到 Claude Code 在 Claude 工作时显示的[加载动画提示](#spinnertipsenabled),或用您的提示替换内置提示。Claude Code 将您的提示放在与内置提示相同的轮换中。2889向 Claude Code 在 Claude 工作时显示的[加载动画提示](#spinnertipsenabled)中添加您自己的提示,或用您的提示替换内置提示。Claude Code 会将您的提示与内置提示放入同一轮换中。

2889 2890 

2890如果您将 [`spinnerTipsEnabled`](#spinnertipsenabled) 设置为 `false`,Claude Code 会隐藏所有提示,包括您的。2891如果您将 [`spinnerTipsEnabled`](#spinnertipsenabled) 设置为 `false`,Claude Code 会隐藏所有提示,包括您的提示。

2891 2892 

2892* **Scope**: [`Any file`](#scopes)。Claude Code 从用户设置、`--settings` 标志和托管设置中尊重提示对象、`tipsFile`、`label` 和 `excludeDefault`;从项目和本地设置中,它仅读取纯字符串提示。2893* **作用域**:[`Any file`](#scopes)。Claude Code 接受来自用户设置、`--settings` 标志和托管设置的提示对象、`tipsFile`、`label` 和 `excludeDefault`;从项目和本地设置中仅读取纯字符串提示。

2893* **Type**: 对象,包含 `tips`、`tipsFile`、`label` 和 `excludeDefault` 字段,每个都是可选的2894* **类型**:包含 `tips`、`tipsFile`、`label` 和 `excludeDefault` 字段的对象,每个字段均为可选

2894* **Default**: unset,所以 Claude Code 仅显示内置提示2895* **默认值**:未设置,因此 Claude Code 仅显示内置提示

2895 2896 

2896提示对象、`tipsFile`、`label` 和 Scope 行的规则(项目和本地设置仅贡献纯字符串)需要 Claude Code v2.1.247 或更高版本。2897提示对象、`tipsFile`、`label`,以及作用域一行中"项目和本地设置仅提供纯字符串"的规则,需要 Claude Code v2.1.247 或更高版本。

2897 2898 

2898每个 `tips` 条目是纯字符串或具有这些字段的对象:2899每个 `tips` 条目可以是纯字符串,也可以是包含以下字段的对象:

2899 2900 

2900| 字段 | 必需 | 描述 |2901| 字段 | 必需 | 描述 |

2901| :- | :- | :- |2902| :- | :- | :- |

2902| `id` | 是 | 最多 64 个字母、数字、`.`、`_` 或 `-`。Claude Code 以其作为提示显示历史的键,因此提示的冷却期在重新排序列表后仍然存在。在两个具有相同 id 的条目中,Claude Code 使用第一个 |2903| `id` | 是 | 最多 64 个字母、数字、`.`、`_` 或 `-`。Claude Code 以此为键记录提示的显示历史,因此重新排列列表后提示的冷却期仍会保留。对于 id 相同的两个条目,Claude Code 使用第一个 |

2903| `text` | 是 | 提示,最多 500 个字符的一行。Claude Code 剥离 ANSI 转义和控制字符,并折叠空格 |2904| `text` | 是 | 提示内容,一行,最多 500 个字符。Claude Code 会去除 ANSI 转义序列和控制字符,并合并空白字符 |

2904| `cooldownSessions` | 否 | Claude Code 在再次显示提示之前等待的会话数,`0` 到 `1000`,默认 `0` |2905| `cooldownSessions` | 否 | Claude Code 再次显示该提示前等待的会话数,`0` 到 `1000`,默认为 `0` |

2905| `priority` | 否 | 在未显示时间相同的提示中的顺序,较高的优先,`-10` 到 `10`,默认 `0` |2906| `priority` | 否 | 在未显示时长相同的提示之间的顺序,值越高越靠前,`-10` 到 `10`,默认为 `0` |

2906 2907 

2907Claude Code 将纯字符串读取为具有这些默认值和基于位置的 id 的提示,因此当您重新排序列表时其显示历史重置。给提示一个 `id` 以在编辑中保持其历史。2908Claude Code 会将纯字符串读取为使用上述默认值和基于位置的 id 的提示,因此重新排列列表时其显示历史会重置。为提示指定 `id` 可在编辑时保留其历史。

2908 2909 

2909Claude Code 在 `tips` 和 `tipsFile` 中最多读取 200 个提示,并用调试警告丢弃无效条目,而不是拒绝设置文件。2910Claude Code 在 `tips` 和 `tipsFile` 中最多读取 200 条提示,并会丢弃无效条目并发出调试警告,而不是拒绝整个设置文件。

2910 2911 

2911使用其余字段来命名提示文件、设置前缀和隐藏内置提示:2912使用其余字段可以指定提示文件、设置前缀以及隐藏内置提示:

2912 2913 

2913* `tipsFile`:指向本地 JSON 文件的绝对或 `~/` 路径,该文件包含相同条目的数组,或包含 `tips` 数组的对象,最多 256 KB。Claude Code 每个进程读取一次文件,因此在下次启动时加载您的编辑。您不能通过[服务器管理的设置](/docs/zh-CN/server-managed-settings)设置它;在那里部署内联 `tips`,或在磁盘上的 `managed-settings.json` 中部署路径。2914* `tipsFile`:本地 JSON 文件的绝对路径或 `~/` 路径,该文件包含由相同条目组成的数组,或包含 `tips` 数组的对象,最大 256 KB。Claude Code 每个进程只读取该文件一次,因此会在下次启动时加载您的编辑。您无法通过[服务器托管设置](/docs/zh-CN/server-managed-settings)设置此项;请在那里部署内联的 `tips`,或在磁盘上的 `managed-settings.json` 中部署该路径。

2914* `label`:Claude Code 在来自用户、`--settings` 和托管设置的提示之前显示的前缀,最多 40 个字符。默认值是 `Tip`,与内置提示相同的前缀,来自项目和本地设置的提示始终使用它。2915* `label`:Claude Code 在来自用户设置、`--settings` 和托管设置的提示前显示的前缀,最多 40 个字符。默认为 `Tip`,与内置提示的前缀相同,来自项目和本地设置的提示始终使用此前缀。

2915* `excludeDefault`:将其设置为 `true` 以隐藏内置提示并仅显示您的。当 Claude Code 无法加载您的任何提示时,例如因为 `tipsFile` 不存在或每个条目都无效,它保持内置轮换而不是空加载动画。2916* `excludeDefault`:将其设置为 `true` 可隐藏内置提示,仅显示您的提示。当 Claude Code 无法加载任何您的提示时(例如 `tipsFile` 不存在或所有条目均无效),它会保留内置轮换,而不是显示空的加载动画。

2916 2917 

2917当多个设置文件设置此键时,Claude Code 显示来自所有这些文件的提示,并从托管设置、`--settings` 标志和用户设置中最高优先级的设置每个的 `tipsFile`、`label` 和 `excludeDefault`。2918当多个设置文件都设置了此键时,Claude Code 会显示所有这些文件中的提示,并从托管设置、`--settings` 标志和用户设置中设置了相应字段且优先级最高的那个获取 `tipsFile`、`label` 和 `excludeDefault`。

2918 2919 

2919此示例在您的用户设置中添加纯字符串提示和对象提示到 `Acme tip` 前缀下的轮换:2920以下示例位于您的用户设置中,以 `Acme tip` 为前缀将一条纯字符串提示和一条对象提示添加到轮换中:

2920 2921 

2921```json settings.json theme={null}2922```json settings.json theme={null}

2922{2923{


2935}2936}

2936```2937```

2937 2938 

2938示例中的每个字段改变 Claude Code 显示提示的一个方面:2939示例中的每个字段都会改变 Claude Code 显示提示的一个方面:

2939 2940 

2940* `label`:Claude Code 将两个提示显示为 `Acme tip: ...` 而不是 `Tip: ...`。2941* `label`:Claude Code 将两条提示显示为 `Acme tip: ...`,而不是 `Tip: ...`。

2941* 纯字符串:Claude Code 给它默认值,所以它可以在下一个会话中再次出现。2942* 纯字符串:Claude Code 为其使用默认值,因此它可能在紧接着的下一个会话中再次出现。

2942* `id`:Claude Code 以 `gateway-errors` 作为第二个提示显示历史的键,因此其冷却期在添加或重新排序提示后仍然适用。2943* `id`:Claude Code 以 `gateway-errors` 为键记录第二条提示的显示历史,因此在您添加或重新排列提示后,其冷却期仍然适用。

2943* `cooldownSessions`:在 Claude Code 显示 `gateway-errors` 提示后,它在五个会话后才再次显示该提示。2944* `cooldownSessions`:Claude Code 显示 `gateway-errors` 提示后,要到五个会话之后才会再次显示该提示。

2944* `priority`:当 `gateway-errors` 提示和另一个提示未显示相同数量的会话时,例如当两者都尚未显示时,Claude Code 首先显示 `gateway-errors`。纯字符串具有默认优先级 `0`。2945* `priority`:当 `gateway-errors` 提示和另一条提示未显示的会话数相同时(例如两者都尚未显示过),Claude Code 会先显示 `gateway-errors`。纯字符串使用默认优先级 `0`。

2945 2946 

2946当 Claude 工作时,Claude Code 在加载动画中显示您的提示,带有您的前缀,如 `Acme tip: Run /review before opening a PR`。2947在 Claude 工作时,Claude Code 会在加载动画中以您的前缀显示您的提示,例如 `Acme tip: Run /review before opening a PR`。

2947 2948 

2948### `spinnerVerbs`2949### `spinnerVerbs`

2949 2950 

2950当转向进行中时,加载动画显示轮换的动词,如"Accomplishing"、"Architecting"或"Baking"。使用此键将您自己的动词添加到该轮换或用您的替换内置列表。2951在轮次进行期间,加载动画会显示轮换的动词,例如 "Accomplishing"、"Architecting" 或 "Baking"。使用此键可以将您自己的动词添加到该轮换中,或用您的动词替换内置列表。

2951 2952 

2952* **Scope**: [`Any file`](#scopes)2953* **作用域**:[`Any file`](#scopes)

2953* **Type**: 对象,包含 `verbs` 字符串数组和 `mode`,值为以下之一:2954* **类型**:包含字符串数组 `verbs` 和 `mode` 的对象,`mode` 取值为以下之一:

2954 * `"append"`:Claude Code 将您的动词添加到内置集合2955 * `"append"`:Claude Code 将您的动词添加到内置集合中

2955 * `"replace"`:Claude Code 仅显示您的动词2956 * `"replace"`:Claude Code 仅显示您的动词

2956* **Default**: unset,所以 Claude Code 使用内置动词2957* **默认值**:未设置,因此 Claude Code 使用内置动词

2957 2958 

2958此示例将两个动词添加到内置集合:2959此示例将两个动词添加到内置集合中:

2959 2960 

2960```json settings.json theme={null}2961```json settings.json theme={null}

2961{2962{


2966}2967}

2967```2968```

2968 2969 

2969在 `"replace"` 模式下使用空 `verbs` 数组,Claude Code 保持内置动词。2970在 `"replace"` 模式下,如果 `verbs` 数组为空,Claude Code 会保留内置动词。

2970 2971 

2971### `statusLine`2972### `statusLine`

2972 2973 

2973运行您自己的命令来渲染提示下方的[状态行](/docs/zh-CN/statusline),包含模型、成本或 git 分支等上下文。可选字段调整间距、添加定期重新运行,并在您的脚本自己渲染 `vim.mode` 时隐藏内置 vim 模式指示器。2974运行您自己的命令,在输入框下方渲染一个[状态栏](/docs/zh-CN/statusline),显示模型、成本或 git 分支等上下文信息。可选字段可调整间距、添加定期重新运行,以及在您的脚本自行渲染 `vim.mode` 时隐藏内置的 vim 模式指示器。

2974 2975 

2975* **Scope**: [`Any file`](#scopes)。当 [`allowManagedHooksOnly`](#allowmanagedhooksonly) 打开时,或 [`disableAllHooks`](#disableallhooks) 在托管设置外设置时,仅托管设置值运行。2976* **作用域**:[`Any file`](#scopes)。当 [`allowManagedHooksOnly`](#allowmanagedhooksonly) 开启,或在托管设置之外设置了 [`disableAllHooks`](#disableallhooks) 时,仅运行托管设置中的值。

2976* **Type**: 对象,`type` 设置为 `"command"` 和 `command` 字符串,加上可选的 `padding` 作为字符数、`refreshInterval` 作为秒数(最少 `1`)和 `hideVimModeIndicator` 作为 Boolean2977* **类型**:包含设置为 `"command"` 的 `type` 和 `command` 字符串的对象,外加可选的 `padding`(字符数)、`refreshInterval`(秒数,最小值为 `1`)和 `hideVimModeIndicator`(布尔值)

2977* **Default**: unset,所以没有状态行2978* **默认值**:未设置,因此没有状态栏

2978 2979 

2979此示例打印模型名称和上下文使用情况,并添加两个字符的水平间距:2980此示例输出模型名称和上下文使用情况,并添加两个字符的水平间距:

2980 2981 

2981```json settings.json theme={null}2982```json settings.json theme={null}

2982{2983{


2988}2989}

2989```2990```

2990 2991 

2991示例需要安装 [`jq`](https://jqlang.org/) 并在 shell 中运行。对于 PowerShell 和 Git Bash 等效项,请参阅[Windows 配置](/docs/zh-CN/statusline#windows-configuration);对于完整设置,请参阅[手动配置状态行](/docs/zh-CN/statusline#manually-configure-a-status-line)。2992此示例需要安装 [`jq`](https://jqlang.org/) 并在 shell 中运行。有关 PowerShell 和 Git Bash 的等效写法,请参阅 [Windows 配置](/docs/zh-CN/statusline#windows-configuration);有关完整设置,请参阅[手动配置状态栏](/docs/zh-CN/statusline#manually-configure-a-status-line)。

2992 2993 

2993### `subagentStatusLine`2994### `subagentStatusLine`

2994 2995 

2995当 Claude 运行[子代理](/docs/zh-CN/sub-agents)时,Claude Code 在提示下方的任务显示中列出它们,每个子代理一行显示 `name · description · token count`。此键让您运行自己的命令来重写这些行,例如显示每个子代理的上下文使用情况百分比。在每次刷新时,Claude Code 将可见行作为一个 JSON 对象发送到 stdin,其中 `tasks` 数组包含每个子代理的 `id`、`name`、`status`、`model`、`tokenCount` 等,并将您写回的每个 `id` 的行替换为 `{"id", "content"}` 行。您不写回的行保持默认渲染。2996当 Claude 运行[子代理](/docs/zh-CN/sub-agents)时,Claude Code 会在输入框下方的任务显示区域中列出它们,每个子代理一行,显示 `name · description · token count`。此键允许您运行自己的命令来重写这些行,例如以百分比显示每个子代理的上下文使用情况。每次刷新时,Claude Code 会通过 stdin 以一个 JSON 对象发送可见的行,其中 `tasks` 数组包含每个子代理的 `id`、`name`、`status`、`model`、`tokenCount` 等信息,并替换您以 `{"id", "content"}` 行写回的每个 `id` 对应的行。您未写回的行保持默认渲染。

2996 2997 

2997* **Scope**: [`Any file`](#scopes)。当 [`allowManagedHooksOnly`](#allowmanagedhooksonly) 打开时,或 [`disableAllHooks`](#disableallhooks) 在托管设置外设置时,仅托管设置值运行。2998* **作用域**:[`Any file`](#scopes)。当 [`allowManagedHooksOnly`](#allowmanagedhooksonly) 开启,或在托管设置之外设置了 [`disableAllHooks`](#disableallhooks) 时,仅运行托管设置中的值。

2998* **Type**: 对象,`type` 设置为 `"command"` 和 `command` 字符串2999* **类型**:包含设置为 `"command"` 的 `type` 和 `command` 字符串的对象

2999* **Default**: unset,所以 Claude Code 渲染默认行3000* **默认值**:未设置,因此 Claude Code 渲染默认行

3000 3001 

3001```json settings.json theme={null}3002```json settings.json theme={null}

3002{3003{


3007}3008}

3008```3009```

3009 3010 

3010请参阅[子代理状态行](/docs/zh-CN/statusline#subagent-status-lines)。3011请参阅[子代理状态栏](/docs/zh-CN/statusline#subagent-status-lines)。

3011 3012 

3012### `syntaxHighlightingDisabled`3013### `syntaxHighlightingDisabled`

3013 3014 

3014Claude Code 使用其内置高亮器按语言为它在终端中显示的差异、代码块和文件预览着色;不涉及插件或语言服务器。将此键设置为 `true` 以改为将它们显示为纯文本,例如如果颜色与您的终端主题冲突或减慢屏幕阅读器。3015Claude Code 使用其内置的高亮器,按语言为其在终端中显示的 diff、代码块和文件预览中的代码着色;不涉及任何插件或语言服务器。将此键设置为 `true` 可改为以纯文本显示它们,例如当颜色与您的终端主题冲突或拖慢屏幕阅读器时。

3015 3016 

3016* **Scope**: [`Any file`](#scopes)3017* **作用域**:[`Any file`](#scopes)

3017* **Type**: Boolean3018* **类型**:布尔值

3018 * `true`:Claude Code 在差异、代码块和文件预览中关闭语法高亮3019 * `true`:Claude Code 关闭 diff、代码块和文件预览中的语法高亮

3019 * `false`:Claude Code 高亮语法3020 * `false`:Claude Code 高亮语法

3020* **Default**: `false`3021* **默认值**:`false`

3021 3022 

3022```json settings.json theme={null}3023```json settings.json theme={null}

3023{3024{


3027 3028 

3028### `terminalProgressBarEnabled`3029### `terminalProgressBarEnabled`

3029 3030 

3030某些终端可以在选项卡或任务栏中为在其中运行的程序显示进度指示器。当 Claude 工作时,Claude Code 向终端报告进行中状态,因此您可以从另一个选项卡或窗口看到会话是否仍然繁忙。指示器在转向结束后保持可见,同时[后台子代理](/docs/zh-CN/sub-agents#run-subagents-in-foreground-or-background)或[动态工作流](/docs/zh-CN/workflows)仍在运行,并在会话空闲后清除。3031某些终端可以在标签页或任务栏上为其中运行的程序显示进度指示器。在 Claude 工作时,Claude Code 会向终端报告进行中状态,这样您就可以从另一个标签页或窗口看出会话是否仍在忙碌。当[后台子代理](/docs/zh-CN/sub-agents#run-subagents-in-foreground-or-background)或[动态工作流](/docs/zh-CN/workflows)仍在运行时,指示器在轮次结束后仍保持可见,并在会话空闲后清除。

3031 3032 

3032Claude Code 仅在支持指示器的终端中报告它:ConEmu、Ghostty 1.2.0 或更高版本以及 iTerm2 3.6.6 或更高版本。将此键设置为 `false` 以停止 Claude Code 报告它。在 `/config` 中显示为**终端进度条**。3033Claude Code 仅在支持该指示器的终端中报告:ConEmu、Ghostty 1.2.0 或更高版本,以及 iTerm2 3.6.6 或更高版本。将此键设置为 `false` 可阻止 Claude Code 报告。在 `/config` 中显示为 **Terminal progress bar**。

3033 3034 

3034* **Scope**: [`Any file`](#scopes)。当没有设置文件设置它时,来自较旧版本的 `~/.claude.json` 中的值适用。3035* **作用域**:[`Any file`](#scopes)。当没有设置文件设置此项时,来自旧版本的 `~/.claude.json` 中的值会生效。

3035* **Type**: Boolean3036* **类型**:布尔值

3036 * `true`:您在支持它的终端中看到终端进度条3037 * `true`:您会在支持的终端中看到终端进度条

3037 * `false`:Claude Code 隐藏终端进度条3038 * `false`:Claude Code 隐藏终端进度条

3038* **Default**: `true`3039* **默认值**:`true`

3039 3040 

3040```json settings.json theme={null}3041```json settings.json theme={null}

3041{3042{


3045 3046 

3046### `terminalTitleFromRename`3047### `terminalTitleFromRename`

3047 3048 

3048Claude Code 设置您的终端选项卡的标题。默认情况下,它使用从对话生成的标题,一旦您使用 `/rename` 或 `--name` 给会话[命名](/docs/zh-CN/sessions#name-your-sessions),选项卡会改为显示该名称。将此键设置为 `false` 以在您命名会话后保持生成的标题在选项卡上。名称本身仍然适用,因此 `/resume <name>` 和会话选择器找到它。3049Claude Code 会设置您终端标签页的标题。默认情况下,它使用根据对话生成的标题;一旦您使用 `/rename` 或 `--name` 为会话[命名](/docs/zh-CN/sessions#name-your-sessions),标签页就会改为显示该名称。将此键设置为 `false` 可在您为会话命名后仍在标签页上保留生成的标题。名称本身仍然有效,因此 `/resume <name>` 和会话选择器都能找到它。

3049 3050 

3050* **Scope**: [`Any file`](#scopes)3051* **作用域**:[`Any file`](#scopes)

3051* **Type**: Boolean3052* **类型**:布尔值

3052 * `true`:终端选项卡标题显示您设置的会话名称3053 * `true`:终端标签页标题显示您设置的会话名称

3053 * `false`:选项卡保持 Claude Code 从您的对话生成的标题3054 * `false`:标签页保留 Claude Code 根据您的对话生成的标题

3054* **Default**: `true`3055* **默认值**:`true`

3055 3056 

3056```json settings.json theme={null}3057```json settings.json theme={null}

3057{3058{


3059}3060}

3060```3061```

3061 3062 

3062要停止 Claude Code 完全更新终端标题,请改为将 [`CLAUDE_CODE_DISABLE_TERMINAL_TITLE`](/docs/zh-CN/env-vars) 设置为 `1`。3063若要完全阻止 Claude Code 更新终端标题,请改为将 [`CLAUDE_CODE_DISABLE_TERMINAL_TITLE`](/docs/zh-CN/env-vars) 设置为 `1`。

3063 3064 

3064### `theme`3065### `theme`

3065 3066 

3066为界面选择颜色主题。在 `/config` 中显示为**主题**。3067选择界面的颜色主题。在 `/config` 中显示为 **Theme**。

3067 3068 

3068* **Scope**: [`Any file`](#scopes)。当没有设置文件设置它时,来自较旧版本的 `~/.claude.json` 中的值适用。3069* **作用域**:[`Any file`](#scopes)。当没有设置文件设置此项时,来自旧版本的 `~/.claude.json` 中的值会生效。

3069* **Type**: string,值为以下之一:3070* **类型**:字符串,取值为以下之一:

3070 * `"auto"`:匹配您的终端的浅色或深色背景3071 * `"auto"`:匹配您终端的浅色或深色背景

3071 * `"dark"`:深色主题3072 * `"dark"`:深色主题

3072 * `"light"`:浅色主题3073 * `"light"`:浅色主题

3073 * `"dark-daltonized"`:具有色盲友好颜色的深色主题3074 * `"dark-daltonized"`:使用色盲友好颜色的深色主题

3074 * `"light-daltonized"`:具有色盲友好颜色的浅色主题3075 * `"light-daltonized"`:使用色盲友好颜色的浅色主题

3075 * `"dark-ansi"`:仅使用您的终端 ANSI 调色板的深色主题3076 * `"dark-ansi"`:仅使用您终端 ANSI 调色板的深色主题

3076 * `"light-ansi"`:仅使用您的终端 ANSI 调色板的浅色主题3077 * `"light-ansi"`:仅使用您终端 ANSI 调色板的浅色主题

3077 * `"custom:<slug>"` 或 `"custom:<plugin-name>:<slug>"`:来自 `~/.claude/themes/` 或插件的自定义主题3078 * `"custom:<slug>"` 或 `"custom:<plugin-name>:<slug>"`:来自 `~/.claude/themes/` 或插件的自定义主题

3078* **Default**: `"dark"`3079* **默认值**:`"dark"`

3079 3080 

3080```json settings.json theme={null}3081```json settings.json theme={null}

3081{3082{


3087 3088 

3088### `timeFormat`3089### `timeFormat`

3089 3090 

3090选择 Claude Code 如何写入它在界面中显示的时间,如每个转向持续时间消息末尾的 `done 6:05 PM` 和[记录查看器](/docs/zh-CN/interactive-mode#transcript-viewer)中的时间戳。要选择预设,运行 `/config` 并设置**时间格式**。需要 Claude Code v2.1.257 或更高版本。3091选择 Claude Code 在界面中显示时间的格式,例如每条轮次耗时消息末尾的 `done 6:05 PM` 以及[会话记录查看器](/docs/zh-CN/interactive-mode#transcript-viewer)中的时间戳。若要选择预设,请运行 `/config` 并设置 **Time format**。需要 Claude Code v2.1.257 或更高版本。

3091 3092 

3092* **Scope**: [`Any file`](#scopes)3093* **作用域**:[`Any file`](#scopes)

3093* **Type**: string,值为以下之一:3094* **类型**:字符串,取值为以下之一:

3094 * `"auto"`:与 unset 相同;每个时间保持其内置格式,在转向持续时间消息上遵循您的区域设置3095 * `"auto"`:与未设置相同;每个时间保持其内置格式,轮次耗时消息中的时间遵循您的区域设置

3095 * `"12-hour"`:12 小时制3096 * `"12-hour"`:12 小时制

3096 * `"24-hour"`:24 小时制3097 * `"24-hour"`:24 小时制

3097 * `"24-hour-utc"`:UTC 中的 24 小时制,分钟后带 `Z`,如 `18:05Z`;Claude Code 对此预设忽略 [`timeZone`](#timezone)3098 * `"24-hour-utc"`:UTC 的 24 小时制,分钟后带 `Z`,例如 `18:05Z`;对于此预设,Claude Code 会忽略 [`timeZone`](#timezone)

3098 * strftime 模式,如 `"%H:%M"`:Claude Code 使用模式写入每个时间。任何包含 `%` 的值都是模式,任何在预设外的其他值计为 `"auto"`3099 * strftime 模式,例如 `"%H:%M"`:Claude Code 使用该模式写出每个时间。任何包含 `%` 的值都视为模式,而预设之外的任何其他值都视为 `"auto"`

3099* **Default**: `"auto"`3100* **默认值**:`"auto"`

3100 3101 

3101```json settings.json theme={null}3102```json settings.json theme={null}

3102{3103{


3104}3105}

3105```3106```

3106 3107 

3107`/config` 仅提供预设,因此要使用 strftime 模式,请将键添加到设置文件。此示例将每个时间显示为两位数 24 小时制:3108`/config` 仅提供预设,因此若要使用 strftime 模式,请将此键添加到设置文件中。此示例将每个时间显示为两位数的 24 小时制:

3108 3109 

3109```json settings.json theme={null}3110```json settings.json theme={null}

3110{3111{


3112}3113}

3113```3114```

3114 3115 

3115转向持续时间消息和记录查看器然后显示时间,如 `18:05`。在记录查看器中,模式是整个时间戳,因此在需要日期时添加日期指令。此示例将日期放在时钟前面:3116随后,轮次耗时消息和会话记录查看器会显示诸如 `18:05` 的时间。在会话记录查看器中,该模式即为完整的时间戳,因此如果您希望在其中显示日期,请添加日期指令。此示例在时钟前加上日期:

3116 3117 

3117```json settings.json theme={null}3118```json settings.json theme={null}

3118{3119{


3120}3121}

3121```3122```

3122 3123 

3123相同的表面然后显示时间,如 `2026-09-01 18:05`。3124随后,相同位置会显示诸如 `2026-09-01 18:05` 的时间。

3124 3125 

3125### `timeZone`3126### `timeZone`

3126 3127 

3127在不同于您系统的时区中显示界面中的时间。将其设置为 [IANA 时区名称](https://www.iana.org/time-zones),如 `"UTC"` 或 `"Europe/Dublin"`。[`timeFormat`](#timeformat) 控制的时间然后在此区域中显示。如果 `timeFormat` 是 `"24-hour-utc"`,时间保持在 UTC 中,Claude Code 忽略此键。`/config` 对此键没有行,因此在设置文件中设置它。需要 Claude Code v2.1.257 或更高版本。3128以系统时区以外的时区显示界面中的时间。将其设置为 [IANA 时区名称](https://www.iana.org/time-zones),例如 `"UTC"` 或 `"Europe/Dublin"`。随后,由 [`timeFormat`](#timeformat) 控制的时间会以此时区显示。如果 `timeFormat` 为 `"24-hour-utc"`,时间保持为 UTC,Claude Code 会忽略此键。`/config` 中没有此键对应的行,因此请在设置文件中设置。需要 Claude Code v2.1.257 或更高版本。

3128 3129 

3129* **Scope**: [`Any file`](#scopes)3130* **作用域**:[`Any file`](#scopes)

3130* **Type**: string,IANA 时区名称。当 Claude Code 不识别名称时,它使用您的系统时区3131* **类型**:字符串,IANA 时区名称。当 Claude Code 无法识别该名称时,会使用您的系统时区

3131* **Default**: unset,所以时间显示在您的系统时区3132* **默认值**:未设置,因此时间以您的系统时区显示

3132 3133 

3133```json settings.json theme={null}3134```json settings.json theme={null}

3134{3135{


3138 3139 

3139### `tui`3140### `tui`

3140 3141 

3141选择终端 UI 渲染器。使用 `"fullscreen"` 获得无闪烁的[替代屏幕渲染器](/docs/zh-CN/fullscreen),具有虚拟化滚动条,或使用 `"default"` 获得经典主屏幕渲染器。运行 `/tui fullscreen` 或 `/tui default` 为您写入此键。3142选择终端 UI 渲染器。使用 `"fullscreen"` 可获得具有虚拟化回滚缓冲区的无闪烁[备用屏幕渲染器](/docs/zh-CN/fullscreen),或使用 `"default"` 获得经典的主屏幕渲染器。运行 `/tui fullscreen` 或 `/tui default` 会为您写入此键。

3142 3143 

3143* **Scope**: [`Any file`](#scopes)3144* **作用域**:[`Any file`](#scopes)

3144* **Type**: string,值为以下之一:3145* **类型**:字符串,取值为以下之一:

3145 * `"default"`:经典主屏幕渲染器3146 * `"default"`:经典的主屏幕渲染器

3146 * `"fullscreen"`:无闪烁的替代屏幕渲染器,具有虚拟化滚动条3147 * `"fullscreen"`:具有虚拟化回滚缓冲区的无闪烁备用屏幕渲染器

3147* **Default**: unset,所以 Claude Code [为您选择渲染器](/docs/zh-CN/fullscreen#fullscreen-by-default)3148* **默认值**:未设置,因此 Claude Code 会[为您选择渲染器](/docs/zh-CN/fullscreen#fullscreen-by-default)

3148* **Per-session overrides**: [`CLAUDE_CODE_NO_FLICKER`](/docs/zh-CN/env-vars) 和 [`CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN`](/docs/zh-CN/env-vars) 在单个会话中优先于此键:`CLAUDE_CODE_NO_FLICKER=1` 打开全屏,`CLAUDE_CODE_NO_FLICKER=0` 或 `CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN=1` 关闭它;当两者都设置时,Claude Code 关闭它3149* **单会话覆盖**:[`CLAUDE_CODE_NO_FLICKER`](/docs/zh-CN/env-vars) 和 [`CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN`](/docs/zh-CN/env-vars) 在单个会话中优先于此键:`CLAUDE_CODE_NO_FLICKER=1` 开启全屏,`CLAUDE_CODE_NO_FLICKER=0` 或 `CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN=1` 关闭全屏;当两者都设置时,Claude Code 会关闭全屏

3149 3150 

3150```json settings.json theme={null}3151```json settings.json theme={null}

3151{3152{


3153}3154}

3154```3155```

3155 3156 

3156在 tmux `-CC` 下或通过 SSH 到 Windows,Claude Code 保持经典渲染器,除非您设置 `CLAUDE_CODE_NO_FLICKER=1`。从[代理视图](/docs/zh-CN/agent-view)打开的后台会话始终使用全屏渲染器,无论此设置如何。3157在 tmux `-CC` 下或通过 SSH 连接到 Windows 时,除非您设置 `CLAUDE_CODE_NO_FLICKER=1`,否则 Claude Code 会保持使用经典渲染器。从 [Agent 视图](/docs/zh-CN/agent-view)打开的后台会话始终使用全屏渲染器,不受此设置影响。

3157 3158 

3158### `verbose`3159### `verbose`

3159 3160 

3160默认情况下,记录将每个工具调用折叠为简短摘要,如 Claude 运行的命令和其输出的行数,您按 `Ctrl+O` 在需要详细信息时将整个记录切换到展开视图。将此键设置为 `true` 以在发生时内联显示每个工具调用的完整输入和输出,这在您调试 hook、MCP 服务器或长 shell 命令时很有用。在 `/config` 中显示为**详细输出**。3161默认情况下,会话记录会将每个工具调用折叠为简短摘要,例如 Claude 运行的命令及其输出的行数;当您需要详细信息时,按 `Ctrl+O` 可将整个会话记录切换到展开视图。将此键设置为 `true` 可在每个工具调用发生时内联显示其完整的输入和输出,这在调试 hook、MCP 服务器或较长的 shell 命令时非常有用。在 `/config` 中显示为 **Verbose output**。

3161 3162 

3162* **Scope**: [`Any file`](#scopes)。当没有设置文件设置它时,来自较旧版本的 `~/.claude.json` 中的值适用。3163* **作用域**:[`Any file`](#scopes)。当没有设置文件设置此项时,来自旧版本的 `~/.claude.json` 中的值会生效。

3163* **Type**: Boolean3164* **类型**:布尔值

3164 * `true`:您看到完整工具输出3165 * `true`:您会看到完整的工具输出

3165 * `false`:您看到工具输出的截断摘要3166 * `false`:您会看到截断的工具输出摘要

3166* **Default**: `false`3167* **默认值**:`false`

3167* **Per-session overrides**: [`--verbose`](/docs/zh-CN/cli-reference#cli-flags) 在单个会话中优先于此键3168* **单会话覆盖**:[`--verbose`](/docs/zh-CN/cli-reference#cli-flags) 在单个会话中优先于此键

3168 3169 

3169```json settings.json theme={null}3170```json settings.json theme={null}

3170{3171{


3172}3173}

3173```3174```

3174 3175 

3175[`viewMode`](#viewmode) 值或粘性 `/focus` 选择在每个会话中覆盖此键。3176[`viewMode`](#viewmode) 值或持久的 `/focus` 选择会在每个会话中覆盖此键。

3176 3177 

3177### `viewMode`3178### `viewMode`

3178 3179 

3179设置 Claude Code 启动的记录视图:`"default"`、`"verbose"` 或 `"focus"`。设置时,它覆盖粘性 `/focus` 选择和 [`verbose`](#verbose) 设置。3180设置 Claude Code 启动时的会话记录视图:`"default"`、`"verbose"` 或 `"focus"`。设置后,它会同时覆盖持久的 `/focus` 选择和 [`verbose`](#verbose) 设置。

3180 3181 

3181* **Scope**: [`Any file`](#scopes)3182* **作用域**:[`Any file`](#scopes)

3182* **Type**: string,值为以下之一:3183* **类型**:字符串,取值为以下之一:

3183 * `"default"`:具有截断工具输出的正常记录3184 * `"default"`:带有截断工具输出的普通会话记录

3184 * `"verbose"`:具有完整工具输出的记录3185 * `"verbose"`:带有完整工具输出的会话记录

3185 * `"focus"`:仅您的最后提示、工具调用的单行摘要,带编辑差异统计,和最终响应。焦点视图需要[全屏渲染器](#tui)3186 * `"focus"`:仅显示您的最后一条提示词、带有编辑 diffstat 的工具调用单行摘要以及最终回复。专注视图需要[全屏渲染器](#tui)

3186* **Default**: unset,所以 `verbose` 设置和您最后的 `/focus` 选择适用3187* **默认值**:未设置,因此 `verbose` 设置和您上次的 `/focus` 选择生效

3187* **Per-session overrides**: [`--verbose`](/docs/zh-CN/cli-reference#cli-flags) 在单个会话中优先于此键3188* **单会话覆盖**:[`--verbose`](/docs/zh-CN/cli-reference#cli-flags) 在单个会话中优先于此键

3188 3189 

3189```json settings.json theme={null}3190```json settings.json theme={null}

3190{3191{


3194 3195 

3195### `vimInsertModeRemaps`3196### `vimInsertModeRemaps`

3196 3197 

3197在 [vim 编辑器模式](/docs/zh-CN/interactive-mode#vim-editor-mode)中将两键 INSERT 模式序列映射到 Escape。每个键恰好是按顺序键入的两个可打印字符,`"<Esc>"` 是唯一支持的目标;Claude Code 忽略其他条目。3198在 [vim 编辑器模式](/docs/zh-CN/interactive-mode#vim-editor-mode)中,将 INSERT 模式下的两键序列映射为 Escape。每个键必须恰好是依次输入的两个可打印字符,且 `"<Esc>"` 是唯一支持的目标;Claude Code 会忽略其他条目。

3198 3199 

3199* **Scope**: [`User or managed`](#scopes)。存储库不能重新映射您的按键。3200* **作用域**:[`User or managed`](#scopes)。仓库无法重新映射您的按键。

3200* **Type**: 对象,将两字符序列映射到 `"<Esc>"`3201* **类型**:将两字符序列映射到 `"<Esc>"` 的对象

3201* **Default**: unset3202* **默认值**:未设置

3202 3203 

3203```json settings.json theme={null}3204```json settings.json theme={null}

3204{3205{


3208}3209}

3209```3210```

3210 3211 

3211除非 `editorMode` 是 `"vim"`,否则无效。请参阅[重新映射 INSERT 模式快捷键序列](/docs/zh-CN/interactive-mode#remap-insert-mode-key-sequences)。3212除非 `editorMode` 为 `"vim"`,否则此项不起作用。请参阅[重新映射 INSERT 模式按键序列](/docs/zh-CN/interactive-mode#remap-insert-mode-key-sequences)。

3212 3213 

3213### `voice`3214### `voice`

3214 3215 

3215打开[语音听写](/docs/zh-CN/voice-dictation)并选择听写键的行为方式。当您运行 `/voice` 时,Claude Code 为您写入此对象。3216开启[语音听写](/docs/zh-CN/voice-dictation)并选择听写键的行为方式。当您运行 `/voice` 时,Claude Code 会为您写入此对象。

3216 3217 

3217* **Scope**: [`Any file`](#scopes)3218* **作用域**:[`Any file`](#scopes)

3218* **Type**: 对象,`enabled` 作为 Boolean,`autoSubmit` 作为仅在保持模式中适用的 Boolean,和 `mode`,值为以下之一:3219* **类型**:包含 `enabled`(布尔值)、`autoSubmit`(布尔值,仅在按住模式下生效)和 `mode` 的对象,`mode` 取值为以下之一:

3219 * `"hold"`:您在说话时按住听写键,释放它以停止3220 * `"hold"`:说话时按住听写键,松开即停止

3220 * `"tap"`:您点击键一次以开始录制,再次以发送3221 * `"tap"`:轻按一次开始录音,再按一次发送

3221* **Default**: unset,所以听写关闭;当 `enabled` 是 `true` 且 `mode` 未设置时,Claude Code 使用 `"hold"`3222* **默认值**:未设置,因此听写关闭;当 `enabled` 为 `true` 且未设置 `mode` 时,Claude Code 使用 `"hold"`

3222 3223 

3223此示例打开听写并使键点击一次以开始录制,再次以发送:3224此示例开启听写,并将按键设置为轻按一次开始录音、再按一次发送:

3224 3225 

3225```json settings.json theme={null}3226```json settings.json theme={null}

3226{3227{


3231}3232}

3232```3233```

3233 3234 

3234`autoSubmit` 在保持模式中释放键时发送提示。语音听写需要 claude.ai 账户。3235`autoSubmit` 会在按住模式下您松开按键时发送提示词。语音听写需要 claude.ai 账户。

3235 3236 

3236### `voiceEnabled`3237### `voiceEnabled`

3237 3238 

3238> [!WARNING]3239> [!WARNING]

3239>3240>

3240> 自 v2.1.92 起已弃用,当 [`voice`](#voice) 对象替换它时。Claude Code 仍然读取它,因此较旧的设置文件保持工作,但新配置应设置 `voice.enabled`。3241> 自 v2.1.92 起已弃用,当时被 [`voice`](#voice) 对象取代。Claude Code 仍会读取它,以便旧的设置文件继续工作,但新的配置应设置 `voice.enabled`。

3241 3242 

3242使用在 `voice` 对象之前的单个 Boolean 形式打开语音听写。当两者都设置时,`voice.enabled` 适用。3243使用早于 `voice` 对象的单一布尔值形式开启语音听写。当两者都设置时,以 `voice.enabled` 为准。

3243 3244 

3244* **Scope**: [`Any file`](#scopes)3245* **作用域**:[`Any file`](#scopes)

3245* **Type**: Boolean3246* **类型**:布尔值

3246 * `true`:当您使用 claude.ai 账户登录且您的组织政策允许语音时,语音听写打开,除非 `voice.enabled` 设置3247 * `true`:当您使用 claude.ai 账户登录且您组织的策略允许语音时,语音听写开启,除非设置了 `voice.enabled`

3247 * `false`:语音听写关闭,除非 `voice.enabled` 设置3248 * `false`:语音听写关闭,除非设置了 `voice.enabled`

3248* **Default**: unset3249* **默认值**:未设置

3249 3250 

3250```json settings.json theme={null}3251```json settings.json theme={null}

3251{3252{


3255 3256 

3256### `wheelScrollAccelerationEnabled`3257### `wheelScrollAccelerationEnabled`

3257 3258 

3258在[全屏渲染](/docs/zh-CN/fullscreen#mouse-wheel-scrolling)中快速滚动期间加速鼠标滚轮滚动速度。将其设置为 `false` 以获得每个滚轮凹口的恒定滚动速率。3259在[全屏渲染](/docs/zh-CN/fullscreen#mouse-wheel-scrolling)中快速滚动时加快鼠标滚轮的滚动速度。将其设置为 `false` 可使每个滚轮刻度的滚动速率保持恒定。

3259 3260 

3260* **Scope**: [`Any file`](#scopes)3261* **作用域**:[`Any file`](#scopes)

3261* **Type**: Boolean3262* **类型**:布尔值

3262 * `true`:Claude Code 在快速滚动期间加速鼠标滚轮滚动速度3263 * `true`:Claude Code 在快速滚动时加快鼠标滚轮的滚动速度

3263 * `false`:Claude Code 以每个滚轮凹口的恒定速率滚动3264 * `false`:Claude Code 按每个滚轮刻度以恒定速率滚动

3264* **Default**: `true`3265* **默认值**:`true`

3265 3266 

3266```json settings.json theme={null}3267```json settings.json theme={null}

3267{3268{


3626 3627 

3627需要 Claude Code v2.1.219 或更高版本;在 v2.1.202 到 v2.1.218 上,改为在 `/config` 中设置指导。3628需要 Claude Code v2.1.219 或更高版本;在 v2.1.202 到 v2.1.218 上,改为在 `/config` 中设置指导。

3628 3629 

3629## Plugins 和 skills3630## 插件和 skill

3630 3631 

3631启用 plugins,注册 marketplaces,限制组织允许的 plugin 源,并控制哪些 skills 加载。有关安装和构建 plugins,请参阅 [Plugins](/docs/zh-CN/plugins/overview)。3632启用 plugins,注册 marketplaces,限制组织允许的 plugin 源,并控制哪些 skills 加载。有关安装和构建 plugins,请参阅 [Plugins](/docs/zh-CN/plugins/overview)。

3632 3633 


4461 4462 

4462有关优先级、提供的服务器如何与 `managed-mcp.json` 以及允许和拒绝列表结合、用户看到的内容,请参阅[通过托管设置提供服务器](/docs/zh-CN/managed-mcp#provide-servers-through-managed-settings)。4463有关优先级、提供的服务器如何与 `managed-mcp.json` 以及允许和拒绝列表结合、用户看到的内容,请参阅[通过托管设置提供服务器](/docs/zh-CN/managed-mcp#provide-servers-through-managed-settings)。

4463 4464 

4464## 代理、会话和工作树4465## Agent、会话和 worktree

4465 4466 

4466设置默认代理、控制团队成员和跨会话消息传递,以及配置工作树。请参阅 [Subagents](/docs/zh-CN/sub-agents) 和 [Worktrees](/docs/zh-CN/worktrees)。4467设置默认代理、控制团队成员和跨会话消息传递,以及配置工作树。请参阅 [Subagents](/docs/zh-CN/sub-agents) 和 [Worktrees](/docs/zh-CN/worktrees)。

4467 4468 


4854 4855 

4855### `preferredNotifChannel`4856### `preferredNotifChannel`

4856 4857 

4857选择 Claude Code 在任务完成或权限提示等待时如何通知你。在 `/config` 中显示为**本地通知**。4858选择 Claude Code 在任务完成或权限提示等待时如何通知您。[mod 的通知](/docs/zh-CN/plugins/mods/api#show-something-without-starting-a-turn)也使用同一设置。在 `/config` 中显示为**本地通知**。

4858 4859 

4859* **作用域**: [`任何文件`](#scopes)。Claude Code 也会读取由旧版本留在 `~/.claude.json` 中的值。4860* **作用域**: [`任何文件`](#scopes)。Claude Code 也会读取由旧版本留在 `~/.claude.json` 中的值。

4860* **类型**: 字符串,以下之一:4861* **类型**: 字符串,以下之一:

setup.md +1 −1

Details

200 200 

201Claude Code 在启动时和运行时定期检查更新。更新在后台下载和安装,然后在您下次启动 Claude Code 时生效。201Claude Code 在启动时和运行时定期检查更新。更新在后台下载和安装,然后在您下次启动 Claude Code 时生效。

202 202 

203运行 `claude doctor` 以查看最近一次更新尝试的结果。203在您的 shell 中运行 `claude doctor`,以查看 Claude Code 记录的最近一次更新尝试的结果。在原生安装上,如果它报告尝试失败,请参阅[会话页脚中的 `Auto-update failed`](/docs/zh-CN/troubleshoot-install#auto-update-failed),了解后续操作。

204 204 

205在 macOS 和 Linux 上,原生安装程序将启动器作为 `~/.local/bin/claude` 处的符号链接管理到 `~/.local/share/claude/versions/`。如果您将该启动器替换为您自己的脚本或符号链接,自动更新和 `claude update` 会将其保留在原位:新版本仍然安装在 `versions/` 目录下,您的启动器决定运行哪个版本。205在 macOS 和 Linux 上,原生安装程序将启动器作为 `~/.local/bin/claude` 处的符号链接管理到 `~/.local/share/claude/versions/`。如果您将该启动器替换为您自己的脚本或符号链接,自动更新和 `claude update` 会将其保留在原位:新版本仍然安装在 `versions/` 目录下,您的启动器决定运行哪个版本。

206 206 

skills.md +10 −7

Details

42* **扩展**:未使用的 skill、MCP 服务器和插件与其上下文成本的对比,以及缓慢的 [hook](/docs/zh-CN/hooks)42* **扩展**:未使用的 skill、MCP 服务器和插件与其上下文成本的对比,以及缓慢的 [hook](/docs/zh-CN/hooks)

43* **`CLAUDE.md` 文件**:与已签入文件重复的本地 `CLAUDE.md` 文件、已签入的 [Claude 可以从代码库推导出的 `CLAUDE.md` 内容](/docs/zh-CN/memory#my-claude-md-is-too-large),以及其余始终加载的指导内容,Claude 会提议将其迁移到按需加载的 skill 和嵌套 `CLAUDE.md` 文件中43* **`CLAUDE.md` 文件**:与已签入文件重复的本地 `CLAUDE.md` 文件、已签入的 [Claude 可以从代码库推导出的 `CLAUDE.md` 内容](/docs/zh-CN/memory#my-claude-md-is-too-large),以及其余始终加载的指导内容,Claude 会提议将其迁移到按需加载的 skill 和嵌套 `CLAUDE.md` 文件中

44* **权限**:提议将[自动模式](/docs/zh-CN/permissions#permission-modes)设为您的默认权限模式,并[预先批准](/docs/zh-CN/permissions)您经常拒绝的只读命令44* **权限**:提议将[自动模式](/docs/zh-CN/permissions#permission-modes)设为您的默认权限模式,并[预先批准](/docs/zh-CN/permissions)您经常拒绝的只读命令

45* **用量**:在 Pro、Max、Team 或 Enterprise 套餐上,检查 [`/usage` 建议的更改](/docs/zh-CN/costs#plan-usage-breakdown)以降低您的套餐用量,基于过去 7 天的数据衡量。Claude 会提议它自己可以进行的更改,并将其余部分作为建议报告,例如供您运行的命令。用量检查需要 Claude Code v2.1.305 或更高版本,并且在 [Remote Control](/docs/zh-CN/remote-control) 已连接时,`/doctor` 会跳过该检查。

45 46 

46如需在不启动会话的情况下进行只读安装诊断,请改为在终端中运行 `claude doctor`。47如需在不启动会话的情况下进行只读安装诊断,请改为在终端中运行 `claude doctor`。

47 48 


83| :- | :- | :- |84| :- | :- | :- |

84| `migrate` | 将您现有的 Claude API 代码更新到更新的模型 | 早于 v2.1.221 |85| `migrate` | 将您现有的 Claude API 代码更新到更新的模型 | 早于 v2.1.221 |

85| `upgrade` | 跨主要版本移动您的项目的 Anthropic SDK 依赖项,目前是 Python `anthropic` 包从 0.x 到 1.x | v2.1.236 或更高版本 |86| `upgrade` | 跨主要版本移动您的项目的 Anthropic SDK 依赖项,目前是 Python `anthropic` 包从 0.x 到 1.x | v2.1.236 或更高版本 |

87| `api-version` | 针对更新的 [API 版本](https://platform.claude.com/docs/en/api/versioning)更新您的 Claude API 代码,然后将您的请求切换到该版本 | v2.1.307 或更高版本 |

86| `managed-agents-onboard` | 逐步完成创建新的托管代理 | 早于 v2.1.221 |88| `managed-agents-onboard` | 逐步完成创建新的托管代理 | 早于 v2.1.221 |

87| `managed-agents-onboard <url>` | 构建该 URL 所指页面描述的 Managed Agent,例如 [Managed Agents 文档](https://platform.claude.com/docs/en/managed-agents/overview)中的某个页面 | v2.1.290 或更高版本 |89| `managed-agents-onboard <url>` | 构建该 URL 所指页面描述的 Managed Agent,例如 [Managed Agents 文档](https://platform.claude.com/docs/en/managed-agents/overview)中的某个页面 | v2.1.290 或更高版本 |

88| `managed-agents-onboard <quickstart-name>` | 构建 Console 的某个快速入门模板,例如 `deep-researcher`。如果您提供的单个词不是模板名称,Claude 会列出有效的名称 | v2.1.290 或更高版本 |90| `managed-agents-onboard <quickstart-name>` | 构建 Console 的某个快速入门模板,例如 `deep-researcher`。如果您提供的单个词不是模板名称,Claude 会列出有效的名称 | v2.1.290 或更高版本 |


155| :- | :- | :- |157| :- | :- | :- |

156| Enterprise | `.claude/skills/<skill-name>/SKILL.md` 在 [托管设置目录](/docs/zh-CN/managed-settings#delivery-mechanisms) | 您的组织部署它的所有机器上的所有用户 |158| Enterprise | `.claude/skills/<skill-name>/SKILL.md` 在 [托管设置目录](/docs/zh-CN/managed-settings#delivery-mechanisms) | 您的组织部署它的所有机器上的所有用户 |

157| Personal | `~/.claude/skills/<skill-name>/SKILL.md` | 此机器上的所有项目,但不包括 [Cowork 或云会话](#skills-in-cowork-and-cloud-sessions) |159| Personal | `~/.claude/skills/<skill-name>/SKILL.md` | 此机器上的所有项目,但不包括 [Cowork 或云会话](#skills-in-cowork-and-cloud-sessions) |

158| Project | `.claude/skills/<skill-name>/SKILL.md` | 此存储库中的会话。提交它以便您的团队也能获得它 |160| Project | `.claude/skills/<skill-name>/SKILL.md` | 此仓库中的会话,但不包括 [项目中的云端线程](/docs/zh-CN/claude-projects#what-threads-pick-up-from-your-repositories)。提交它以便您的团队也能获得它 |

159| Nested | `<subdir>/.claude/skills/<skill-name>/SKILL.md` | 在 `<subdir>` 中或其下方启动的会话。在其上方启动的会话在 Claude 处理该处的文件时加载该 skill。请参阅 [monorepos 和子目录](#discovery-from-parent-and-nested-directories) |161| Nested | `<subdir>/.claude/skills/<skill-name>/SKILL.md` | 在 `<subdir>` 中或其下方启动的会话,但不包括项目中的云端线程。在这些线程之外,在其上方启动的会话会在 Claude 处理该处的文件时加载该 skill。请参阅 [monorepos 和子目录](#discovery-from-parent-and-nested-directories) |

160| Additional directory | `.claude/skills/<skill-name>/SKILL.md` 在使用 `--add-dir` 传递的目录中 | 该会话。请参阅 [项目外的目录](#skills-from-additional-directories) |162| Additional directory | `.claude/skills/<skill-name>/SKILL.md` 在使用 `--add-dir` 传递的目录中 | 该会话。请参阅 [项目外的目录](#skills-from-additional-directories) |

161| Plugin | `<plugin>/skills/<skill-name>/SKILL.md` | 在 [插件](/docs/zh-CN/plugins/overview) 启用的任何位置,作为 `/plugin-name:skill-name` |163| Plugin | `<plugin>/skills/<skill-name>/SKILL.md` | 在 [插件](/docs/zh-CN/plugins/overview) 启用的任何位置,作为 `/plugin-name:skill-name` |

162| claude.ai account | 为您的 claude.ai 账户启用的 skills | Cowork 会话、云会话和使用该账户登录的终端会话。请参阅 [从 claude.ai 同步的 Skills](#how-synced-skills-behave) |164| claude.ai account | 为您的 claude.ai 账户启用的 skills | Cowork 会话、云会话和使用该账户登录的终端会话。请参阅 [从 claude.ai 同步的 Skills](#how-synced-skills-behave) |


207 209 

208### 在 Cowork 和云会话中使用 skills210### 在 Cowork 和云会话中使用 skills

209 211 

210[Cowork](https://claude.com/product/cowork) 会话和 [云端会话](/docs/zh-CN/cloud-environments#what-carries-over-from-your-setup)(包括 [云端定时任务](/docs/zh-CN/routines))不会读取您机器上的 `~/.claude/skills/`。交互式和定时的 Cowork 会话都加载为您的 claude.ai 账户启用的 skill,在会话启动时同步。从 Desktop 应用侧边栏中的 **Customize** 或从 claude.ai 上的 skill 设置管理它们。云端会话另外加载提交到克隆仓库的 `.claude/skills/` 的项目 skill。212[Cowork](https://claude.com/product/cowork) 会话和 [云端会话](/docs/zh-CN/cloud-environments#what-carries-over-from-your-setup)(包括 [云端定时任务](/docs/zh-CN/routines))不会读取您机器上的 `~/.claude/skills/`。交互式和定时的 Cowork 会话都加载为您的 claude.ai 账户启用的 skill,在会话启动时同步。从 Desktop 应用侧边栏中的 **Customize** 或从 claude.ai 上的 skill 设置管理它们。

211 213 

212如果 skill 仅存在于您机器上的 `~/.claude/skills/` 中,当 [云端定时任务](/docs/zh-CN/routines) 调用它时,Claude Code 会报告找不到该 skill。这是因为每次运行都作为新的云端会话启动。要在这些会话中使用个人 skill:214如果 skill 仅存在于您机器上的 `~/.claude/skills/` 中,当 [云端定时任务](/docs/zh-CN/routines) 调用它时,Claude Code 会报告找不到该 skill。这是因为每次运行都作为新的云端会话启动。要在这些会话中使用个人 skill:

213 215 

214* 对于 Cowork 和云端会话,为您的 claude.ai 账户启用该 skill。[自托管环境中的某些会话](/docs/zh-CN/self-hosted-environments-configuration#how-each-session’s-config-is-assembled) 不会加载您账户的 skill。216* 对于 Cowork 会话、云端会话以及 [项目](/docs/zh-CN/claude-projects#what-threads-pick-up-from-your-repositories) 中的云端线程,为您的 claude.ai 账户启用该 skill。在项目的云端线程中,提交到仓库 `.claude/skills/` 的 skill 不可用。[自托管环境中的某些会话](/docs/zh-CN/self-hosted-environments-configuration#how-each-session’s-config-is-assembled) 不会加载您账户的 skill。

215* 对于云会话,您可以改为将 skill 提交到存储库的 `.claude/skills/`。在存储库的 `.claude/settings.json` 中声明的插件和仅在您的用户设置中启用的插件 [不会在云会话中加载](/docs/zh-CN/cloud-environments#what-carries-over-from-your-setup)。217* 对于项目线程以外的云端会话,您可以改为将 skill 提交到仓库的 `.claude/skills/`。在仓库的 `.claude/settings.json` 中声明的插件和仅在您的用户设置中启用的插件 [不会在云端会话中加载](/docs/zh-CN/cloud-environments#what-carries-over-from-your-setup)。

216 218 

217[Desktop 计划任务](/docs/zh-CN/desktop-scheduled-tasks) 在您的机器上本地运行,因此它们确实加载 `~/.claude/skills/`。219[Desktop 计划任务](/docs/zh-CN/desktop-scheduled-tasks) 在您的机器上本地运行,因此它们确实加载 `~/.claude/skills/`。

218 220 


398| `agent` | 否 | 设置 `context: fork` 时使用的子代理类型。 |400| `agent` | 否 | 设置 `context: fork` 时使用的子代理类型。 |

399| `background` | 否 | 仅在使用 `context: fork` 时适用。设置为 `false` 可在调用该 skill 的轮次中等待分叉子代理的结果,而不是[在后台运行它](#run-skills-in-a-subagent)。默认值:`true`。需要 Claude Code v2.1.218 或更高版本。 |401| `background` | 否 | 仅在使用 `context: fork` 时适用。设置为 `false` 可在调用该 skill 的轮次中等待分叉子代理的结果,而不是[在后台运行它](#run-skills-in-a-subagent)。默认值:`true`。需要 Claude Code v2.1.218 或更高版本。 |

400| `hooks` | 否 | Claude Code 在调用该 skill 时注册并在会话剩余时间内持续运行的 hook。有关配置格式和 `once` 选项,请参阅 [skill 和 Agent 中的 hook](/docs/zh-CN/hooks#hooks-in-skills-and-agents)。 |402| `hooks` | 否 | Claude Code 在调用该 skill 时注册并在会话剩余时间内持续运行的 hook。有关配置格式和 `once` 选项,请参阅 [skill 和 Agent 中的 hook](/docs/zh-CN/hooks#hooks-in-skills-and-agents)。 |

401| `paths` | 否 | 限制此 skill 何时激活的 Glob 模式。接受以逗号分隔的字符串或 YAML 列表。设置后,仅当处理与这些模式匹配的文件时,Claude 才会自动加载该 skill。使用与[特定路径规则](/docs/zh-CN/memory#path-specific-rules)相同的格式。 |403| `paths` | 否 | 限制此 skill 何时激活的 Glob 模式。接受以逗号分隔的字符串或 YAML 列表。设置后,仅当处理与这些模式匹配的文件时,Claude 才会自动加载该 skill。模式相对于 Claude 的当前工作目录,该目录之外的文件不会匹配。使用与[特定路径规则](/docs/zh-CN/memory#path-specific-rules)相同的 glob 格式。 |

402| `shell` | 否 | 此 skill 中 `` !`command` `` 和 ` ```! ` 块使用的 shell。接受 `bash`(默认)或 `powershell`。当 [PowerShell 工具](/zh-CN/tools-reference#powershell-tool)启用时,设置 `powershell` 会通过 PowerShell 运行内联 shell 命令:在没有 Git Bash 的 Windows 上默认启用,对于 claude.ai 和 Console 账户在有 Git Bash 时默认启用,而在 Amazon Bedrock、Google Cloud 的 Agent Platform 和 Microsoft Foundry 会话中以及在 macOS、Linux 和 WSL 上需要设置 `CLAUDE_CODE_USE_POWERSHELL_TOOL=1`。将其设置为 `0` 可关闭该工具。 |404| `shell` | 否 | 此 skill 中 `` !`command` `` 和 ` ```! ` 块使用的 shell。接受 `bash`(默认)或 `powershell`。当 [PowerShell 工具](/zh-CN/tools-reference#powershell-tool)启用时,设置 `powershell` 会通过 PowerShell 运行内联 shell 命令:在没有 Git Bash 的 Windows 上默认启用,对于 claude.ai 和 Console 账户在有 Git Bash 时默认启用,而在 Amazon Bedrock、Google Cloud 的 Agent Platform 和 Microsoft Foundry 会话中以及在 macOS、Linux 和 WSL 上需要设置 `CLAUDE_CODE_USE_POWERSHELL_TOOL=1`。将其设置为 `0` 可关闭该工具。 |

403| `metadata` | 否 | 用于存放您自己的键值数据的自由格式 YAML 映射,例如权益或目录字段,由您自己的工具从 `SKILL.md` 中读取。Claude Code 不会处理其内容,并会丢弃非映射类型的值。请勿将 `paths` 等 frontmatter 字段名用作键。 |405| `metadata` | 否 | 用于存放您自己的键值数据的自由格式 YAML 映射,例如权益或目录字段,由您自己的工具从 `SKILL.md` 中读取。Claude Code 不会处理其内容,并会丢弃非映射类型的值。请勿将 `paths` 等 frontmatter 字段名用作键。 |

404| `license` | 否 | 适用于该 skill 的许可证。属于 [Agent Skills](https://agentskills.io) 规范的一部分;请参阅[在 Claude Code 之外使用 skill frontmatter](#using-skill-frontmatter-outside-claude-code)。Claude Code 接受该字段,但不会对其进行处理。 |406| `license` | 否 | 适用于该 skill 的许可证。属于 [Agent Skills](https://agentskills.io) 规范的一部分;请参阅[在 Claude Code 之外使用 skill frontmatter](#using-skill-frontmatter-outside-claude-code)。Claude Code 接受该字段,但不会对其进行处理。 |


755哪些命令获得例外取决于 shell:757哪些命令获得例外取决于 shell:

756 758 

757* 默认 `bash` shell:[输出限制](/docs/zh-CN/tools-reference#output-limits)下列出的命令759* 默认 `bash` shell:[输出限制](/docs/zh-CN/tools-reference#output-limits)下列出的命令

758* `shell: powershell`,当启用 PowerShell 工具时:一个[不同的集合](/docs/zh-CN/tools-reference#shell-selection-in-settings-hooks-and-skills),包括 `grep` 和 `git diff` 但不包括 `find` 或 `diff`760* `shell: powershell`,且已启用 PowerShell 工具:一个[不同的集合](/docs/zh-CN/tools-reference#exit-code-1-from-searches-and-git-diff-in-powershell),包括 `grep` 和 `git diff`,但不包括 `find` 或 `diff`

759 761 

760使用默认的 `bash` shell,将 `|| true` 附加到任何你期望退出非零的其他命令。一个在发现问题时退出 1 的检查脚本就是一个例子。762使用默认的 `bash` shell,将 `|| true` 附加到任何你期望退出非零的其他命令。一个在发现问题时退出 1 的检查脚本就是一个例子。

761 763 


11773. 尝试重新表述你的请求以更接近描述11793. 尝试重新表述你的请求以更接近描述

11784. 如果 skill 是用户可调用的,使用 `/skill-name` 直接调用它11804. 如果 skill 是用户可调用的,使用 `/skill-name` 直接调用它

11795. 如果 `/skill-name` 也无法被识别,请检查 Claude Code 是否[拒绝了该 skill 的名称](#characters-a-skill-name-cant-hold)11815. 如果 `/skill-name` 也无法被识别,请检查 Claude Code 是否[拒绝了该 skill 的名称](#characters-a-skill-name-cant-hold)

11826. 如果 skill 设置了 `paths`,请检查 Claude 读取、编辑或写入的文件是否位于 Claude 当前的工作目录内。对于该目录之外的文件,例如同级 git worktree 中的文件(即使是您使用 `/add-dir` 添加的 worktree),skill 不会激活。要让 skill 对这些文件激活,请在该 worktree 中启动 Claude Code,或[使用 `/cd` 将会话移至该处](/docs/zh-CN/permissions#move-the-session-to-another-directory)。

1180 1183 

1181如果 frontmatter YAML 格式不正确,Claude Code 会加载 skill 主体但元数据为空,所以 `/skill-name` 仍然有效,但 Claude 无法匹配你的 `description`。使用 `--debug` 运行以查看解析错误。1184如果 frontmatter YAML 格式不正确,Claude Code 会加载 skill 主体但元数据为空,所以 `/skill-name` 仍然有效,但 Claude 无法匹配你的 `description`。使用 `--debug` 运行以查看解析错误。

1182 1185 

sub-agents.md +25 −2

Details

489 489 

490带有说明符的 `disallowedTools` 条目(如 `Bash(git push *)`)仍会从子代理中移除整个工具,而不仅仅是匹配的命令。若要保留 Bash 并阻止特定命令,请在设置中向 `permissions.deny` 添加 [Bash 拒绝规则](/docs/zh-CN/permissions#bash),例如 `Bash(git push *)`。该规则适用于主对话和子代理。490带有说明符的 `disallowedTools` 条目(如 `Bash(git push *)`)仍会从子代理中移除整个工具,而不仅仅是匹配的命令。若要保留 Bash 并阻止特定命令,请在设置中向 `permissions.deny` 添加 [Bash 拒绝规则](/docs/zh-CN/permissions#bash),例如 `Bash(git push *)`。该规则适用于主对话和子代理。

491 491 

492##### 名称包含双下划线的 MCP 服务器

493 

494如果子代理无法获得名称包含 `__` 的 MCP 服务器(例如 `reports__v2`)中的任何工具,请检查该子代理的 `mcp__` 条目:

495 

496* **在 `tools` 中**:写入 `mcp__`,后跟[服务器的完整名称](/docs/zh-CN/permissions#mcp)和 `__*`,如 `mcp__reports__v2__*`。如果没有末尾的 `__*`,`mcp__reports__v2` 不会匹配该服务器的任何工具。

497* **在 `disallowedTools` 中**:查找 `mcp__reports` 或 `mcp__reports__*`,这些条目会排除名为 `reports` 的服务器。使用其中任一条目时,子代理也会失去所有 `reports__v2` 工具,因为这些工具名称同样以 `mcp__reports__` 开头。若只想排除 `reports` 服务器的工具,请改为逐一列出它们,例如 `mcp__reports__run_query`。

498 

492#### 限制可以生成的子代理499#### 限制可以生成的子代理

493 500 

494当 Agent 通过 `claude --agent` 作为主线程运行时,它可以使用 Agent 工具生成子代理。若要限制它可以生成的子代理类型,请在 `tools` 字段中使用 `Agent(agent_type)` 语法。501当 Agent 通过 `claude --agent` 作为主线程运行时,它可以使用 Agent 工具生成子代理。若要限制它可以生成的子代理类型,请在 `tools` 字段中使用 `Agent(agent_type)` 语法。


955 962 

956### 子代理名称963### 子代理名称

957 964 

958Claude 可以在 Agent 工具调用中传递 `name` 参数来为子代理命名,并且可能会自行这样做,而不事先询问您。名称使子代理可被寻址:在子代理完成后,Claude 可以[按名称向其发送消息或恢复它](#resume-subagents)。965如果您在启用 [agent teams](/docs/zh-CN/agent-teams#enable-agent-teams) 的情况下启动会话,Claude 可以在 Agent 工具调用中传递 `name` 参数来为子代理命名。它可能会自行这样做,而不事先询问您。名称使子代理可被寻址:在子代理完成后,Claude 可以[按名称向其发送消息或恢复它](#resume-subagents)。

959 966 

960在启用了 [agent teams](/docs/zh-CN/agent-teams) 的交互式会话中,Claude 从主对话生成的带有 `name` 的子代理会改为以队友身份启动,除非该调用是 [fork](#fork-the-current-conversation) 或在调用本身中传递了 `isolation`。子代理 frontmatter 中的 `isolation` 值无法阻止这一点,此时该队友会在主会话的工作目录中运行。请参阅 [Claude 如何启动 agent teams](/docs/zh-CN/agent-teams#how-claude-starts-agent-teams)。967在启用了 [agent teams](/docs/zh-CN/agent-teams) 的交互式会话中,Claude 从主对话生成的带有 `name` 的子代理会改为以队友身份启动,除非该调用是 [fork](#fork-the-current-conversation) 或在调用本身中传递了 `isolation`。子代理 frontmatter 中的 `isolation` 值无法阻止这一点,此时该队友会在主会话的工作目录中运行。请参阅 [Claude 如何启动 agent teams](/docs/zh-CN/agent-teams#how-claude-starts-agent-teams)。

961 968 


968* **前台**:如果速率限制、过载或服务器错误截断了已经产生文本输出的子代理,Agent 工具会返回该部分输出,并附注说明子代理被截断、未完成其任务。未产生任何输出、或输出仅包含工具调用的子代理会以 [`Agent terminated early due to an API error`](/docs/zh-CN/errors#agent-terminated-early-due-to-an-api-error) 失败,后跟错误详情。975* **前台**:如果速率限制、过载或服务器错误截断了已经产生文本输出的子代理,Agent 工具会返回该部分输出,并附注说明子代理被截断、未完成其任务。未产生任何输出、或输出仅包含工具调用的子代理会以 [`Agent terminated early due to an API error`](/docs/zh-CN/errors#agent-terminated-early-due-to-an-api-error) 失败,后跟错误详情。

969* **后台**:子代理会被标记为失败,Claude 在其结束时收到的消息会指明该 API 错误,并包含子代理的最后输出,因此部分工作不会丢失。976* **后台**:子代理会被标记为失败,Claude 在其结束时收到的消息会指明该 API 错误,并包含子代理的最后输出,因此部分工作不会丢失。

970 977 

978如果子代理的报告以下面这一行开头,说明该子代理是在备用模型上完成的:

979 

980```text theme={null}

981⚠ This agent switched to <model> because its earlier model could not be used.

982```

983 

971当您配置了[备用模型链](/docs/zh-CN/model-config#fallback-model-chains),且子代理遇到该链所覆盖的失败(例如其模型不可用)时,Claude Code 会将子代理切换到链中第一个接受请求的模型。子代理会继续工作,而不是因错误而结束。984当您配置了[备用模型链](/docs/zh-CN/model-config#fallback-model-chains),且子代理遇到该链所覆盖的失败(例如其模型不可用)时,Claude Code 会将子代理切换到链中第一个接受请求的模型。子代理会继续工作,而不是因错误而结束。

972 985 

973底层 API 错误消除后,请让 Claude 重试该任务或[恢复子代理](#resume-subagents)。986底层 API 错误消除后,请让 Claude 重试该任务或[恢复子代理](#resume-subagents)。


1114 1127 

1115每次调用子代理都会创建一个新实例,而不是延续之前的实例。要继续某个现有子代理的工作而不是从头开始,请让 Claude 恢复它。1128每次调用子代理都会创建一个新实例,而不是延续之前的实例。要继续某个现有子代理的工作而不是从头开始,请让 Claude 恢复它。

1116 1129 

1117恢复的子代理会保留其完整的对话历史,包括之前所有的工具调用、结果和推理。如果该子代理生成过[自己的后台子代理](#let-subagents-spawn-their-own-subagents),该历史还包括这些后台子代理在其运行期间交付的结果。子代理会从停止的地方继续,而不是从零开始。1130恢复的子代理会保留其完整的对话历史,包括之前所有的工具调用、结果和推理。如果该子代理生成过[自己的后台子代理](#let-subagents-spawn-their-own-subagents),该历史还包括这些后台子代理在其运行期间交付的结果。在 v2.1.304 之前,如果 Claude 在子代理刚完成时就向其发送消息或恢复它,该子代理可能会遗忘其最近的工作。

1118 1131 

1119* 子代理完成时,Claude 会收到其 Agent ID。1132* 子代理完成时,Claude 会收到其 Agent ID。

1120* 内置的 Explore 和 Plan Agent 是一次性的,不返回 Agent ID,因此 Claude 无法恢复它们。需要继续工作时,请使用 `general-purpose` 或自定义子代理。1133* 内置的 Explore 和 Plan Agent 是一次性的,不返回 Agent ID,因此 Claude 无法恢复它们。需要继续工作时,请使用 `general-purpose` 或自定义子代理。


1154* **会话持久性**:子代理会话记录在其所属会话内持久保存。重启 Claude Code 后,您可以通过恢复同一会话来[恢复子代理](#resume-subagents)。1167* **会话持久性**:子代理会话记录在其所属会话内持久保存。重启 Claude Code 后,您可以通过恢复同一会话来[恢复子代理](#resume-subagents)。

1155* **自动清理**:Claude Code 会在 `cleanupPeriodDays` 保留期(默认为 30 天)过后删除子代理会话记录,遵循[保留清理规则](/docs/zh-CN/claude-directory#cleaned-up-automatically)。1168* **自动清理**:Claude Code 会在 `cleanupPeriodDays` 保留期(默认为 30 天)过后删除子代理会话记录,遵循[保留清理规则](/docs/zh-CN/claude-directory#cleaned-up-automatically)。

1156 1169 

1170##### 重启后按名称向子代理发送消息

1171 

1172> [!NOTE]

1173>

1174> 对于以队友身份启动的子代理,请改为参阅 [agent team 限制](/docs/zh-CN/agent-teams#limitations)。

1175 

1176如果在您重启 Claude Code 并恢复会话后,Claude 无法按名称向某个子代理发送消息,请改为向 Claude 提供该子代理的 Agent ID。Claude 自上次[压缩](/docs/zh-CN/context-window#what-survives-compaction)以来在主对话中指定的名称在重启后仍会保留,而该次压缩之前的名称则不会保留。要查找某个名称对应的 ID,请在 `~/.claude/projects/{project}/{sessionId}/subagents/` 下的 `agent-{agentId}.meta.json` 文件中查找该名称。

1177 

1178通过 ID 发送一条消息后,该子代理的名称即可再次使用,除非已有较新的 Agent 占用了该名称。在 v2.1.299 之前,任何名称都无法在重启后保留,即使 Agent ID 仍然有效,按名称发送也会被拒绝。

1179 

1157#### 上下文自动压缩1180#### 上下文自动压缩

1158 1181 

1159子代理支持自动压缩。压缩会在子代理自身的上下文窗口逐渐填满时触发,`CLAUDE_AUTOCOMPACT_PCT_OVERRIDE` 同样适用于子代理。有关该覆盖何时生效,请参阅[环境变量](/docs/zh-CN/env-vars)。1182子代理支持自动压缩。压缩会在子代理自身的上下文窗口逐渐填满时触发,`CLAUDE_AUTOCOMPACT_PCT_OVERRIDE` 同样适用于子代理。有关该覆盖何时生效,请参阅[环境变量](/docs/zh-CN/env-vars)。

Details

476 476 

477PowerShell 命令还会接收 hook 通过 `CLAUDE_ENV_FILE` 持久化的变量,具体条件请参阅 [PowerShell 命令中的持久化变量](/docs/zh-CN/hooks#persisted-variables-in-powershell-commands)。需要 Claude Code v2.1.296 或更高版本。477PowerShell 命令还会接收 hook 通过 `CLAUDE_ENV_FILE` 持久化的变量,具体条件请参阅 [PowerShell 命令中的持久化变量](/docs/zh-CN/hooks#persisted-variables-in-powershell-commands)。需要 Claude Code v2.1.296 或更高版本。

478 478 

479来自 `grep`、`rg`、`egrep`、`fgrep`、`findstr` 和 `git grep` 的退出码 1 表示没有匹配。来自 `git diff` 的退出码 1 表示存在差异。这两个结果都不会作为命令失败报告给 Claude。对于 `robocopy`,退出码 0 到 7 是信息性结果,例如复制的文件或检测到的额外文件。退出码 8 或更高被视为失败。479### PowerShell 中搜索和 `git diff` 的退出码 1

480 

481如果 Claude 在 PowerShell 工具中运行的 `grep` 或 `rg` 搜索没有匹配到任何内容并显示 `Error: Exit code 1`,则该搜索并未失败。您无需执行任何操作。当搜索是较长命令的一部分时,可能会出现此错误。例如,当 `rg` 以退出码 1 退出时,`rg foo | Out-Null` 会显示该错误,而 `rg foo` 不会。

482 

483PowerShell 工具可以将来自 `grep`、`rg`、`egrep`、`fgrep`、`findstr`、`git grep` 和 `git diff` 的退出码 1 视为正常结果。这些搜索使用退出码 1 表示没有匹配。对于 `git diff`,退出码 1 表示文件存在差异。在带有 `shell: powershell` 的 skill 中,如果 Claude 运行某条命令时显示该错误,则该命令[被视为失败](/docs/zh-CN/skills#when-an-injected-command-fails)。

480 484 

481### Windows 编码和退出代码485### Windows 编码和退出代码

482 486 


484* Claude Code 将管道传输到本机命令标准输入的文本编码为 UTF-8488* Claude Code 将管道传输到本机命令标准输入的文本编码为 UTF-8

485* Claude Code 捕获没有 ANSI 转义序列的错误输出489* Claude Code 捕获没有 ANSI 转义序列的错误输出

486* 其子进程等待标准输入的命令接收文件结束而不是挂起490* 其子进程等待标准输入的命令接收文件结束而不是挂起

487* 来自 `where.exe` 的退出代码 1 表示没有匹配,来自 `fc.exe` 和 `diff.exe` 的退出代码 1 表示文件不同,因此当命令产生输出时,Claude Code 将该退出代码视为有效的否定答案而不是命令错误。Claude Code 仍然将静默形式(例如 `where.exe /Q` 或重定向到 `$null`)报告为退出代码 1 上的失败491* 如果 `where.exe` 未找到匹配项,或者 `fc.exe` 或 `diff.exe` 发现文件不同,结果可能会显示 `Error: Exit code 1`,但命令并未失败。您无需执行任何操作。

492* 如果 `robocopy` 的退出码 1 到 7 显示为错误,则复制并未失败,您无需执行任何操作。`robocopy` 以退出码 0 到 7 报告结果(例如已复制的文件),失败时以 8 或更高的退出码退出。

488 493 

489### 预览限制494### 预览限制

490 495 


504* **图像**:PNG、JPEG、GIF 和 WebP 文件作为 Claude 可以看到的视觉内容返回,而不是原始字节。Claude Code 在发送大型图像之前会调整大小并重新压缩,以适应模型的图像大小限制,因此 Claude 可能会看到大型屏幕截图的缩小版本。509* **图像**:PNG、JPEG、GIF 和 WebP 文件作为 Claude 可以看到的视觉内容返回,而不是原始字节。Claude Code 在发送大型图像之前会调整大小并重新压缩,以适应模型的图像大小限制,因此 Claude 可能会看到大型屏幕截图的缩小版本。

505 510 

506 如果 Claude 在大型图像中遗漏了细微的像素级细节,请要求它裁剪您关注的区域,例如通过 Bash 使用 ImageMagick,然后读取裁剪后的图像。511 如果 Claude 在大型图像中遗漏了细微的像素级细节,请要求它裁剪您关注的区域,例如通过 Bash 使用 ImageMagick,然后读取裁剪后的图像。

512 

513 Read 会拒绝读取大于 128 MB 的图像文件,并返回一个错误,告诉 Claude 调整图像大小或导出一个较小的副本,然后读取该副本。如果 Claude 在遇到该错误后停止而没有这样做,请参阅 [File is too large to read as an image](/docs/zh-CN/errors#file-is-too-large-to-read-as-an-image)。

507* **PDF**:Claude 完整读取短 `.pdf` 文件。对于超过 10 页的 PDF,它使用 `pages` 参数按范围读取,例如 `"1-5"`,一次最多 20 页。页面范围读取使用 poppler-utils 中的 `pdftoppm` 呈现页面,因此在 macOS 上使用 `brew install poppler` 安装,在 Debian 和 Ubuntu 上使用 `apt-get install poppler-utils` 安装。在 Windows 和其他平台上,安装一个将 `pdftoppm` 放在 `PATH` 上的 poppler 构建。没有它,页面范围读取会失败并显示 `pdftoppm is not installed`。514* **PDF**:Claude 完整读取短 `.pdf` 文件。对于超过 10 页的 PDF,它使用 `pages` 参数按范围读取,例如 `"1-5"`,一次最多 20 页。页面范围读取使用 poppler-utils 中的 `pdftoppm` 呈现页面,因此在 macOS 上使用 `brew install poppler` 安装,在 Debian 和 Ubuntu 上使用 `apt-get install poppler-utils` 安装。在 Windows 和其他平台上,安装一个将 `pdftoppm` 放在 `PATH` 上的 poppler 构建。没有它,页面范围读取会失败并显示 `pdftoppm is not installed`。

508* **Jupyter 笔记本**:`.ipynb` 文件返回所有单元格及其输出,包括代码、markdown 和可视化。如果笔记本的单元格总量超过 256 KB,或超过 [token 限制](#large-files),则会返回错误。Claude Code 拒绝读取超过 100 MB 的笔记本文件;错误会告诉 Claude 如何改为读取笔记本的一部分,例如使用 shell 命令读取单元格的一个切片。515* **Jupyter 笔记本**:`.ipynb` 文件返回所有单元格及其输出,包括代码、markdown 和可视化。如果笔记本的单元格总量超过 256 KB,或超过 [token 限制](#large-files),则会返回错误。Claude Code 拒绝读取超过 100 MB 的笔记本文件;错误会告诉 Claude 如何改为读取笔记本的一部分,例如使用 shell 命令读取单元格的一个切片。

509 516 


558 565 

559Claude Code 在本地草稿中保留您的工作目录,以便它可以找到记录,并且不发送目录。566Claude Code 在本地草稿中保留您的工作目录,以便它可以找到记录,并且不发送目录。

560 567 

561在 [零数据保留的组织](/docs/zh-CN/zero-data-retention#features-disabled-under-zdr) 中,以及在已应用 [HIPAA 配置](/docs/zh-CN/hipaa-setup) 的组织中,Claude Code 会省略该工具,就像它对 `/feedback` 所做的那样。如果零数据保留组织中的会话仍然提供该工具,草稿保留在您的机器上,发送失败并显示 `Feedback collection is not available for organizations with custom data retention policies.`568在 [零数据保留的组织](/docs/zh-CN/zero-data-retention#features-disabled-under-zdr) 中,以及在已应用 [HIPAA 配置](/docs/zh-CN/hipaa-setup) 的组织中,Claude Code 会在您的会话中省略 SendFeedback 工具。如果零数据保留组织中的会话仍然提供该工具,草稿保留在您的机器上,发送失败并显示 `Feedback collection is not available for organizations with custom data retention policies.`

562 569 

563### 丢弃或保留草稿570### 丢弃或保留草稿

564 571 


665* **等待恢复**:在 Claude Code v2.1.290 或更高版本中,交互式终端会话的限制大约每小时恢复 100 次调用。要更改该速率,请将 [`CLAUDE_CODE_WEB_SEARCH_REFILLS_PER_HOUR`](/docs/zh-CN/env-vars#variables) 设置为每小时的调用次数,例如 `50`。672* **等待恢复**:在 Claude Code v2.1.290 或更高版本中,交互式终端会话的限制大约每小时恢复 100 次调用。要更改该速率,请将 [`CLAUDE_CODE_WEB_SEARCH_REFILLS_PER_HOUR`](/docs/zh-CN/env-vars#variables) 设置为每小时的调用次数,例如 `50`。

666* **开始新的对话**:在 Claude Code 提示符处运行 [`/clear`](/docs/zh-CN/commands#all-commands) 也会重置计数。如果仍然可以生成子代理的工作(例如正在运行的工作流)在清除后继续存在,计数会改为继续累计。673* **开始新的对话**:在 Claude Code 提示符处运行 [`/clear`](/docs/zh-CN/commands#all-commands) 也会重置计数。如果仍然可以生成子代理的工作(例如正在运行的工作流)在清除后继续存在,计数会改为继续累计。

667 674 

675在使用 `-p` 的[非交互模式](/docs/zh-CN/headless)下以及在 [Agent SDK](/docs/zh-CN/agent-sdk/overview) 中,该限制按轮次而非按会话计算。一个轮次从您发送一条消息开始,直到 Claude 完成响应为止。当您在此之后发送下一条消息或开始新的 `claude -p` 运行时,限制会重置,即使使用 [`--continue` 或 `--resume`](/docs/zh-CN/headless#continue-conversations) 也是如此。如需更多搜索次数,请提高 [`CLAUDE_CODE_MAX_WEB_SEARCHES_PER_SESSION`](/docs/zh-CN/env-vars#variables),或使用 [`CLAUDE_CODE_WEB_SEARCH_REFILLS_PER_HOUR`](/docs/zh-CN/env-vars#variables) 设置恢复速率。

676 

668## Write tool 行为677## Write tool 行为

669 678 

670Write tool 创建一个新文件或用提供的完整内容覆盖现有文件。它不会追加或合并。对于字节无法解码的现有文件,Write 同样会将其覆盖,并将新内容保存为 UTF-8,详见[非 UTF-8 文件](#non-utf-8-files)。679Write tool 创建一个新文件或用提供的完整内容覆盖现有文件。它不会追加或合并。对于字节无法解码的现有文件,Write 同样会将其覆盖,并将新内容保存为 UTF-8,详见[非 UTF-8 文件](#non-utf-8-files)。

Details

31| `CRYPT_E_NO_REVOCATION_CHECK` 或 `CRYPT_E_REVOCATION_OFFLINE` | [绕过被阻止的吊销检查](#tls-or-ssl-connection-errors) |31| `CRYPT_E_NO_REVOCATION_CHECK` 或 `CRYPT_E_REVOCATION_OFFLINE` | [绕过被阻止的吊销检查](#tls-or-ssl-connection-errors) |

32| `Failed to fetch version` 或无法访问下载服务器 | [检查网络和代理设置](#check-network-connectivity) |32| `Failed to fetch version` 或无法访问下载服务器 | [检查网络和代理设置](#check-network-connectivity) |

33| `The connection dropped while downloading the update` 或 `Download timed out: exceeded the total deadline` | [再次运行更新或设置您的代理](#the-connection-dropped-while-downloading-the-update) |33| `The connection dropped while downloading the update` 或 `Download timed out: exceeded the total deadline` | [再次运行更新或设置您的代理](#the-connection-dropped-while-downloading-the-update) |

34| `Release verification failed for Claude Code` | [再次运行 `claude update` 或 `claude install`](#release-verification-failed) |

35| 会话页脚中以红色显示 `Auto-update failed · Run claude doctor` | [从您的 shell 运行 `claude update`](#auto-update-failed) |

34| `irm is not recognized` 或 `The token '&&' is not a valid statement separator` | [对您的 shell 使用正确的命令](#wrong-install-command-on-windows) |36| `irm is not recognized` 或 `The token '&&' is not a valid statement separator` | [对您的 shell 使用正确的命令](#wrong-install-command-on-windows) |

35| `Cask 'claude-code' is unavailable: No Cask with this name exists` | [更新 Homebrew](#homebrew-cask-unavailable-or-outdated) |37| `Cask 'claude-code' is unavailable: No Cask with this name exists` | [更新 Homebrew](#homebrew-cask-unavailable-or-outdated) |

36| `Cask 'claude-code@latest' is not installed` | [升级您已安装的 cask](#cask-is-not-installed) |38| `Cask 'claude-code@latest' is not installed` | [升级您已安装的 cask](#cask-is-not-installed) |


631* 如果公司代理不断关闭传输,请要求您的网络团队允许从 `downloads.claude.ai` 完整下载。请参阅[网络访问要求](/docs/zh-CN/network-config#network-access-requirements)。633* 如果公司代理不断关闭传输,请要求您的网络团队允许从 `downloads.claude.ai` 完整下载。请参阅[网络访问要求](/docs/zh-CN/network-config#network-access-requirements)。

632* 从您的 shell 运行 `claude doctor` 以获取安装诊断信息634* 从您的 shell 运行 `claude doctor` 以获取安装诊断信息

633 635 

636### Release verification failed for Claude Code

637 

638`claude update` 或 `claude install` 发出的此消息表示 Claude Code 无法确认即将安装的版本是真实的,因此未安装任何内容。您已有的任何版本都会继续正常工作。

639 

640```text theme={null}

641Release verification failed for Claude Code <version> (<reason>). The update was not installed.

642```

643 

644根据消息中括号内的值采取相应的步骤:

645 

646* **以 `sidecar_fetch_` 开头的值**:从您的 shell 再次运行相同的命令。如果 `claude update` 打印以 `Successfully updated from` 开头的行,则表示更新成功;如果 `claude install` 打印 `Claude Code successfully installed!`,则表示安装成功。

647* **任何其他值**:稍后再次尝试相同的命令

648 

649无论是哪个值,如果该消息反复出现,请[报告问题](#still-stuck)并附上完整消息。

650 

651### 会话页脚中的 `Auto-update failed · Run claude doctor`

652 

653这一红色行表示 Claude Code 尝试在后台自行更新,但更新未能安装。您无需执行任何操作即可继续工作。

654 

655该行引导您运行 `claude doctor`,但其 `Last update attempt: failed (install_failed)` 行只给出日期,不给出原因。要完成更新或查看失败原因,请改为在 shell 中运行 `claude update`。如果该安装也失败,请在[查找您的错误](#find-your-error)中查找 `claude update` 打印的错误。

656 

634### Windows 上的错误安装命令657### Windows 上的错误安装命令

635 658 

636如果您看到 `'irm' is not recognized`、`The token '&&' is not a valid statement separator`、`A parameter cannot be found that matches parameter name 'fsSL'` 或 `'bash' is not recognized as the name of a cmdlet`,您复制了不同 shell 或操作系统的安装命令。如果该命令打印脚本的文本而不是安装任何内容,您只运行了其中的一部分。659如果您看到 `'irm' is not recognized`、`The token '&&' is not a valid statement separator`、`A parameter cannot be found that matches parameter name 'fsSL'` 或 `'bash' is not recognized as the name of a cmdlet`,您复制了不同 shell 或操作系统的安装命令。如果该命令打印脚本的文本而不是安装任何内容,您只运行了其中的一部分。

Details

12| :- | :- |12| :- | :- |

13| `command not found`、安装失败、PATH 问题、`EACCES`、TLS 错误 | [故障排除安装和登录](/docs/zh-CN/troubleshoot-install) |13| `command not found`、安装失败、PATH 问题、`EACCES`、TLS 错误 | [故障排除安装和登录](/docs/zh-CN/troubleshoot-install) |

14| 更新或安装下载失败,显示 `The connection dropped while downloading the update` 或 `aborted` | [故障排除安装和登录](/docs/zh-CN/troubleshoot-install#the-connection-dropped-while-downloading-the-update) |14| 更新或安装下载失败,显示 `The connection dropped while downloading the update` 或 `aborted` | [故障排除安装和登录](/docs/zh-CN/troubleshoot-install#the-connection-dropped-while-downloading-the-update) |

15| 更新或安装失败,显示 `Release verification failed for Claude Code` | [故障排除安装和登录](/docs/zh-CN/troubleshoot-install#release-verification-failed) |

16| 会话页脚以红色显示 `Auto-update failed · Run claude doctor` | [故障排除安装和登录](/docs/zh-CN/troubleshoot-install#auto-update-failed) |

15| 登录循环、OAuth 错误、`403 Forbidden`、"organization disabled"、Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry 凭据 | [故障排除安装和登录](/docs/zh-CN/troubleshoot-install#login-and-authentication) |17| 登录循环、OAuth 错误、`403 Forbidden`、"organization disabled"、Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry 凭据 | [故障排除安装和登录](/docs/zh-CN/troubleshoot-install#login-and-authentication) |

16| 设置未应用、hooks 未触发、MCP 服务器未加载 | [调试您的配置](/docs/zh-CN/debug-your-config) |18| 设置未应用、hooks 未触发、MCP 服务器未加载 | [调试您的配置](/docs/zh-CN/debug-your-config) |

17| 会话以自动模式启动,或 Claude 编辑文件并运行命令而不询问 | [会话启动的模式](/docs/zh-CN/permission-modes#which-mode-a-session-starts-in) |19| 会话以自动模式启动,或 Claude 编辑文件并运行命令而不询问 | [会话启动的模式](/docs/zh-CN/permission-modes#which-mode-a-session-starts-in) |

vs-code.md +16 −3

Details

174* **书签**:将鼠标悬停在回复上并点击 **Bookmark response** 即可保存该回复,或在已保存的回复上点击 **Remove bookmark** 将其移除。174* **书签**:将鼠标悬停在回复上并点击 **Bookmark response** 即可保存该回复,或在已保存的回复上点击 **Remove bookmark** 将其移除。

175 175 

176 要查看已保存的回复,请打开 Bookmarks 面板。您可以点击 Claude Code 面板顶部的书签图标,在命令菜单的 Context 部分中选择 **Bookmarks**,或输入 `/bookmarks`。需要 Claude Code v2.1.286 或更高版本。176 要查看已保存的回复,请打开 Bookmarks 面板。您可以点击 Claude Code 面板顶部的书签图标,在命令菜单的 Context 部分中选择 **Bookmarks**,或输入 `/bookmarks`。需要 Claude Code v2.1.286 或更高版本。

177* **Claude 发送给您的文件**:当会话连接到 [Remote Control](/docs/zh-CN/remote-control#start-a-remote-control-session),且 Claude 使用 [`SendUserFile` 工具](/docs/zh-CN/tools-reference)向您发送文件时,对话中会显示一行,例如 **Sent report.md, chart.png**。点击文件名即可在编辑器中打开。177* **Claude 发送给您的文件**:当会话连接到 [Remote Control](/docs/zh-CN/remote-control#start-a-remote-control-session),且 Claude 使用 [`SendUserFile` 工具](/docs/zh-CN/tools-reference)向您发送文件时,对话中会显示一行,例如 **Sent report.md, chart.png**。点击文件名即可在编辑器中打开。该行在 Focus view 中保持可见。需要 Claude Code v2.1.295 或更高版本。

178 

179 当文件路径指向某个网络主机时,该文件会显示为无法点击的完整路径,例如 `\\server\share\report.md`。Claude Code 不会为该文件提供链接,因为打开它会连接该主机,并且在 Windows 上[可能会将您的 Windows 凭据发送到该主机](/docs/zh-CN/permissions#read-only-commands)。

178* **上下文指示器**:输入框会显示您已使用了多少 Claude 上下文窗口。Claude 会在需要时自动压缩,您也可以手动运行 `/compact`。180* **上下文指示器**:输入框会显示您已使用了多少 Claude 上下文窗口。Claude 会在需要时自动压缩,您也可以手动运行 `/compact`。

179* **提示缓存时钟**:上下文指示器旁边的时钟图标会估算对话的[提示缓存](/docs/zh-CN/prompt-caching)在过期前还剩多少时间。它从缓存的五分钟或一小时[生命周期](/docs/zh-CN/prompt-caching#cache-lifetime)开始倒计时,每次使用缓存的回复都会重新开始倒计时。除压缩外,[使缓存失效的操作](/docs/zh-CN/prompt-caching#actions-that-invalidate-the-cache)不会重置时钟,因此在您切换模型后它仍可能显示剩余的分钟数。181* **提示缓存时钟**:上下文指示器旁边的时钟图标会估算对话的[提示缓存](/docs/zh-CN/prompt-caching)在过期前还剩多少时间。它从缓存的五分钟或一小时[生命周期](/docs/zh-CN/prompt-caching#cache-lifetime)开始倒计时,每次使用缓存的回复都会重新开始倒计时。除压缩外,[使缓存失效的操作](/docs/zh-CN/prompt-caching#actions-that-invalidate-the-cache)不会重置时钟,因此在您切换模型后它仍可能显示剩余的分钟数。

180 * 在倒计时结束之前,图标会显示剩余分钟数,例如 **12m**。182 * 在倒计时结束之前,图标会显示剩余分钟数,例如 **12m**。


252 254 

253* **会话标题**:新会话会根据您的第一条消息获得 AI 生成的标题。255* **会话标题**:新会话会根据您的第一条消息获得 AI 生成的标题。

254* **重命名和归档**:将鼠标悬停在会话上即可显示这些操作。重命名可为其设置描述性标题,归档则会将其移至列表底部的 **Archived sessions** 组。256* **重命名和归档**:将鼠标悬停在会话上即可显示这些操作。重命名可为其设置描述性标题,归档则会将其移至列表底部的 **Archived sessions** 组。

257* **设置了 [`claudeProcessWrapper`](#extension-settings) 时对话缺失**:请将扩展更新到 2.1.304 或更高版本。之后列表会包含之前缺失的对话,以及 `claude -p` 或 [Agent SDK](/docs/zh-CN/agent-sdk/overview) 在此工作区中启动的会话。

255 258 

256如果该对话在另一个 Claude Code 进程中打开(例如终端中的 `claude` 或另一个 VS Code 窗口),输入框的位置会显示以下通知:259如果该对话在另一个 Claude Code 进程中打开(例如终端中的 `claude` 或另一个 VS Code 窗口),输入框的位置会显示以下通知:

257 260 


308 311 

309* **claude.ai 套餐**:显示套餐各项限额的用量条,例如当前会话和本周。每个用量条都会显示距离其限额重置还有多长时间。312* **claude.ai 套餐**:显示套餐各项限额的用量条,例如当前会话和本周。每个用量条都会显示距离其限额重置还有多长时间。

310 313 

311 对话框还会细分哪些因素在消耗您的套餐限额。它会标出占近期用量 10% 或以上的行为,例如缓存未命中、长上下文,以及大量使用子代理或高度并行的会话。每个被标出的行为都附有减少用量的建议。归因表显示每个 skill、子代理、插件和 MCP 服务器分别产生了多少用量。314 对话框还会细分哪些因素在消耗您的套餐限额:

315 

316 * **建议**:可降低用量的更改,每行一条,并附有该更改所针对的近期用量占比,例如 `Trim ~/code/api/CLAUDE.md · 49k tokens per request`

317 * **修复按钮**:要让 Claude Code 应用它能处理的建议,请点击建议下方的按钮,例如 **Fix both**。要了解该按钮作用于哪些行以及随后会在您的会话中发生什么,请参阅[使用修复快捷方式应用建议](/docs/zh-CN/costs#apply-recommendations-with-the-fix-shortcut)。需要 Claude Code v2.1.305 或更高版本。

318 

319 连接 [Remote Control](/docs/zh-CN/remote-control) 期间不会显示该按钮。如果在 Remote Control 连接后出现 `The usage fix wasn’t fully sent. Open usage and try again.` 警告,请先[断开 Remote Control](/docs/zh-CN/remote-control#check-connection-status),然后再重试。

320 * **归因**:显示每个 skill、子代理、插件和 MCP 服务器分别产生了多少用量的表格

312 321 

313 使用 Day 和 Week 切换可在过去 24 小时和过去 7 天之间切换。这些数据是近似值,根据本机上的本地会话计算得出,因此不包括来自其他设备或 claude.ai 的用量。322 使用 Day 和 Week 切换可在过去 24 小时和过去 7 天之间切换。这些数据是近似值,根据本机上的本地会话计算得出,因此不包括来自其他设备或 claude.ai 的用量。

314* **其他登录方式**:当套餐限额不适用于您的登录方式时(例如使用[第三方提供商](#use-third-party-providers)或 API 密钥),Usage 部分会改为显示该会话自身的费用和 token 用量。CLI 的 `/usage` 会在其 [Session 区块](/docs/zh-CN/costs#track-your-costs)中显示相同的总计。活动栏中的会话列表也会在其 **Account & usage** 标题下显示当前会话的总计。需要 Claude Code v2.1.277 或更高版本。323* **其他登录方式**:当套餐限额不适用于您的登录方式时(例如使用[第三方提供商](#use-third-party-providers)或 API 密钥),Usage 部分会改为显示该会话自身的费用和 token 用量。CLI 的 `/usage` 会在其 [Session 区块](/docs/zh-CN/costs#track-your-costs)中显示相同的总计。活动栏中的会话列表也会在其 **Account & usage** 标题下显示当前会话的总计。需要 Claude Code v2.1.277 或更高版本。


573 582 

574对于后台 shell 命令,或运行命令的[监视器](/docs/zh-CN/tools-reference#monitor-tool),卡片还会显示该命令的最新输出,并在命令运行期间持续刷新。583对于后台 shell 命令,或运行命令的[监视器](/docs/zh-CN/tools-reference#monitor-tool),卡片还会显示该命令的最新输出,并在命令运行期间持续刷新。

575 584 

585#### 查看后台子代理的工具调用

586 

587当某个子代理仅显示为一条状态栏而没有工具调用时,请在输入框中键入 `/tasks` 以打开 [Agent 地图](#use-the-prompt-box),并在其中点击该子代理。该子代理正在[后台运行](#the-run-in-background-action-is-missing-under-a-subagent),其卡片会显示其工具调用,以及一个用于打开其会话记录的按钮。

588 

576## VS Code 命令和快捷键589## VS Code 命令和快捷键

577 590 

578要打开命令面板,请在 Mac 上按 `Cmd+Shift+P`,在 Windows/Linux 上按 `Ctrl+Shift+P`。在其中输入"Claude Code"即可查看 Claude Code 扩展的所有可用 VS Code 命令。591要打开命令面板,请在 Mac 上按 `Cmd+Shift+P`,在 Windows/Linux 上按 `Ctrl+Shift+P`。在其中输入"Claude Code"即可查看 Claude Code 扩展的所有可用 VS Code 命令。


726 739 

727* **Claude 的回复**:扩展会在每条回复完成时播报一次,在文本流式输出期间保持静默。屏幕阅读器会将代码块读作行数摘要,按标签读出链接,并逐个单元格读出表格;完整回复仍可在会话记录中阅读。740* **Claude 的回复**:扩展会在每条回复完成时播报一次,在文本流式输出期间保持静默。屏幕阅读器会将代码块读作行数摘要,按标签读出链接,并逐个单元格读出表格;完整回复仍可在会话记录中阅读。

728* **权限请求和问题**:当权限提示出现时,扩展会播报该请求,并说明 Claude 想要使用的工具名称。当 Claude 向您提问,以及 Claude 完成计划并等待您审阅时,扩展也会以同样的方式播报。741* **权限请求和问题**:当权限提示出现时,扩展会播报该请求,并说明 Claude 想要使用的工具名称。当 Claude 向您提问,以及 Claude 完成计划并等待您审阅时,扩展也会以同样的方式播报。

729* **状态变化**:当 Claude 开始工作、Claude 准备好接收您的输入,以及 Claude Code 开始压缩对话时,扩展会进行播报。742* **状态变化**:当 Claude 开始工作、Claude 准备好接收您的输入,以及 Claude Code 开始压缩对话时,扩展会进行播报。如果您在会话的 [SessionStart](/docs/zh-CN/hooks#sessionstart) hook 仍在运行时发送提示词,屏幕阅读器还会读出"Running start-up hooks."。

730* **排队的消息**:当您在 Claude 工作期间发送消息时,扩展会针对该消息播报"Message queued."。743* **排队的消息**:当您在 Claude 工作期间发送消息时,扩展会针对该消息播报"Message queued."。

731* **错误和模型提示**:扩展会播报对话中的错误,并在[使用额度同意提示](/docs/zh-CN/model-config#fable-and-usage-credits)或[标记请求提示](/docs/zh-CN/model-config#ask-before-switching)出现时进行播报。744* **错误和模型提示**:扩展会播报对话中的错误,并在[使用额度同意提示](/docs/zh-CN/model-config#fable-and-usage-credits)或[标记请求提示](/docs/zh-CN/model-config#ask-before-switching)出现时进行播报。

732 745 

workflows.md +4 −2

Details

373 373 

374#### 哪些 Agent 会再次运行374#### 哪些 Agent 会再次运行

375 375 

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

377 377 

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

379 

380 在 v2.1.305 之前,当您重新启动一个未经编辑的脚本,且其 `pipeline()` 项或 `parallel()` 任务各自运行了多个 Agent 时,已完成的 Agent 也可能再次运行。要让新的运行不再出现这类重新运行,请更新 Claude Code。

379* **停止时仍在运行**:重新开始。停止整个运行不会将任何代理计为失败。381* **停止时仍在运行**:重新开始。停止整个运行不会将任何代理计为失败。

380* **失败**:再次运行,之后启动的每个代理也会再次运行,即使是已完成的代理。通过在 [`/workflows`](#watch-the-run) 中选择单个代理并按 `x` 来停止它,会将其计为失败。382* **失败**:再次运行,脚本在其之后启动的每个 Agent 也会再次运行,即使是已完成的 Agent。通过在 [`/workflows`](#watch-the-run) 中选择单个 Agent 并按 `x` 来停止它,会将其计为失败。

381 383 

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

383 385 

worktrees.md +1 −0

Details

58 58 

59* **worktree 是干净的**:对于未命名的会话,Claude 会自动删除 worktree 及其分支。[已命名](/docs/zh-CN/sessions#name-your-sessions)的会话会先提示你,以便你可以保留 worktree 供以后使用59* **worktree 是干净的**:对于未命名的会话,Claude 会自动删除 worktree 及其分支。[已命名](/docs/zh-CN/sessions#name-your-sessions)的会话会先提示你,以便你可以保留 worktree 供以后使用

60* **worktree 中有工作**:Claude 会提示你保留或删除 worktree。保留会保留目录和分支。要稍后返回,请运行 Claude Code 在退出时打印的 `claude --worktree <name> --resume` 命令。删除会删除 worktree 目录及其分支,以及其中的所有工作60* **worktree 中有工作**:Claude 会提示你保留或删除 worktree。保留会保留目录和分支。要稍后返回,请运行 Claude Code 在退出时打印的 `claude --worktree <name> --resume` 命令。删除会删除 worktree 目录及其分支,以及其中的所有工作

61* **已检出另一个分支**:如果 worktree 位于其自身分支以外的另一个分支上,且该分支包含 worktree 起始提交之后的提交,Claude 会提示您保留或删除 worktree。无论选择哪一项,都会保留该另一个分支及其提交。删除会删除 worktree 目录以及 worktree 自身的分支,即 Claude 随 worktree 一起创建的分支

61* **无法验证 worktree 的状态**:当 Claude Code 无法计算 worktree 的更改或无法检查其子模块检出时,它会提示你而不是自动删除 worktree。提示会说明它无法检查的内容62* **无法验证 worktree 的状态**:当 Claude Code 无法计算 worktree 的更改或无法检查其子模块检出时,它会提示你而不是自动删除 worktree。提示会说明它无法检查的内容

62 63 

63使用 `-p` 的非交互式运行没有退出提示,因此 Claude 不会清理它们的 worktrees,Claude Code 会保留它在创建时对每个 worktree 所取的锁,直到稍后会话的[陈旧锁扫描](#clean-up-subagent-and-background-session-worktrees)释放它。要删除一个,请运行 `git worktree remove`;如果 git 拒绝因为 worktree 被锁定,请先在其上运行 `git worktree unlock`。64使用 `-p` 的非交互式运行没有退出提示,因此 Claude 不会清理它们的 worktrees,Claude Code 会保留它在创建时对每个 worktree 所取的锁,直到稍后会话的[陈旧锁扫描](#clean-up-subagent-and-background-session-worktrees)释放它。要删除一个,请运行 `git worktree remove`;如果 git 拒绝因为 worktree 被锁定,请先在其上运行 `git worktree unlock`。