SpyBara
Go Premium

Documentation 2026-09-29 23:58 UTC to 2026-09-30 17:01 UTC

68 files changed +1,116 −631. View all changes and history on the product overview
2026
Wed 30 18:00 Tue 29 23:58 Mon 28 22:59 Fri 25 23:58 Thu 24 22:57 Wed 23 23:57 Tue 22 23:59 Mon 21 22:59 Sun 20 23:59 Sat 19 23:57 Fri 18 23:58 Tue 15 23:58 Mon 14 22:58 Sun 13 21:00 Sat 12 03:02 Thu 10 23:00 Wed 9 22:58 Tue 8 20:00 Tue 1 21:02

agent-view.md +28 −2

Details

64 </Step>64 </Step>

65</Steps>65</Steps>

66 66 

67你可以使用 `claude agents` 作为你的主要入口点而不是 `claude`:从 agent view 调度每个任务,当你想要完整对话时附加,按 `←` 返回表格。

68 

69在常规 `claude` 会话内,提示页脚的 `←` 提示计算正在等待你的后台 agent 数量,例如 `← 2 agents`,当没有 agent 需要输入时返回 `← for agents`。超过 99 的计数显示为 `99+`。当终端获得焦点时,计数大约每十秒刷新一次,当焦点返回时立即刷新。当计数移动和 agent 完成时,它会短暂改变颜色,当后台会话完成而没有 agent 需要你的输入时,它会短暂显示完成的数量,例如 `← 2 done`。当启用了[`prefersReducedMotion` 设置](/docs/zh-CN/settings-reference#prefersreducedmotion)时,两个闪烁都关闭,并且在[屏幕阅读器模式](/docs/zh-CN/accessibility)中隐藏提示。67在常规 `claude` 会话内,提示页脚的 `←` 提示计算正在等待你的后台 agent 数量,例如 `← 2 agents`,当没有 agent 需要输入时返回 `← for agents`。超过 99 的计数显示为 `99+`。当终端获得焦点时,计数大约每十秒刷新一次,当焦点返回时立即刷新。当计数移动和 agent 完成时,它会短暂改变颜色,当后台会话完成而没有 agent 需要你的输入时,它会短暂显示完成的数量,例如 `← 2 done`。当启用了[`prefersReducedMotion` 设置](/docs/zh-CN/settings-reference#prefersreducedmotion)时,两个闪烁都关闭,并且在[屏幕阅读器模式](/docs/zh-CN/accessibility)中隐藏提示。

70 68 

69<h3 id="open-agent-view-by-default">

70 默认打开 agent view

71</h3>

72 

73要让 `claude` 不带参数打开 agent view 而不是新对话,请打开一个 `/config` 设置。

74 

75<Steps>

76 <Step title="打开设置">

77 在常规 `claude` 会话中,运行 `/config` 并打开**默认打开 agents view**。要跳过菜单,直接设置 [`defaultToAgentsView`](/docs/zh-CN/settings-reference#defaulttoagentsview) 键:

78 

79 ```text theme={null}

80 /config defaultToAgentsView=true

81 ```

82 </Step>

83 

84 <Step title="启动 Claude Code">

85 退出会话,然后不带参数运行 `claude`:

86 

87 ```bash theme={null}

88 claude

89 ```

90 

91 Agent view 打开,代替新对话。

92 </Step>

93</Steps>

94 

95要在设置打开时启动常规会话,请传递一个提示:`claude "fix the login test"`。要关闭设置,在常规会话中或在从 agent view 附加的会话中运行 `/config defaultToAgentsView=false`。

96 

71<h2 id="monitor-sessions-with-agent-view">97<h2 id="monitor-sessions-with-agent-view">

72 使用 agent view 监控会话98 使用 agent view 监控会话

73</h2>99</h2>

Details

482 482 

483Claude Sonnet 5、Opus 4.6 及更高版本,以及 Sonnet 4.6 在 Amazon Bedrock 上支持 [1M 令牌上下文窗口](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model)。Sonnet 5 在 Invoke API 和 [Mantle 端点](#use-the-mantle-endpoint)上始终以 1M 窗口运行,没有 `[1m]` 变体可选择。对于 Invoke API 上的其他模型,当您选择 1M 模型变体时,Claude Code 会自动启用扩展上下文窗口。483Claude Sonnet 5、Opus 4.6 及更高版本,以及 Sonnet 4.6 在 Amazon Bedrock 上支持 [1M 令牌上下文窗口](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model)。Sonnet 5 在 Invoke API 和 [Mantle 端点](#use-the-mantle-endpoint)上始终以 1M 窗口运行,没有 `[1m]` 变体可选择。对于 Invoke API 上的其他模型,当您选择 1M 模型变体时,Claude Code 会自动启用扩展上下文窗口。

484 484 

485[设置向导](#sign-in-with-bedrock)在固定模型时提供 1M 上下文选项。要为手动固定的模型启用它,请在模型 ID 后附加 `[1m]`。请参阅[为第三方部署固定模型](/docs/zh-CN/model-config#pin-models-for-third-party-deployments)了解详情。485[设置向导](#sign-in-with-bedrock)在固定模型时提供 1M 上下文选项。要为手动固定的模型启用它,请在模型 ID 后附加 `[1m]`。请参阅[为第三方部署固定模型](/docs/zh-CN/model-config#pin-models-for-third-party-deployments)了解详情,包括如何在不更改固定的情况下使用 1M 窗口。

486 486 

487<h2 id="service-tiers">487<h2 id="service-tiers">

488 服务层级488 服务层级

artifacts.md +11 −11

Details

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

101 101 

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

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

104 104 

105<h3 id="let-someone-edit-with-you">105<h3 id="let-someone-edit-with-you">

106 让某人与你一起编辑106 让某人与你一起编辑


122 收集工件上的评论122 收集工件上的评论

123</h2>123</h2>

124 124 

125当您在组织内共享工件时,与您共享的人可以在页面上留下评论,您可以让 Claude 读取这些评论并回复。您需要 Claude Code v2.1.221 或更高版本以及 Team 或 Enterprise 计划,因为只有您[在组织内共享](#share-an-artifact)的工件才会接收评论。Claude 在两种情况下读取评论:125当您在组织内共享工件时,与您共享的人可以在页面上留下评论,您可以让 Claude 读取这些评论并回复。您需要 Claude Code v2.1.221 或更高版本。Claude 在两种情况下读取评论:

126 126 

127* **您要求 Claude 读取评论**:向 Claude 提供工件的 URL 并要求查看评论。Claude 列出每个线程,并标记可以编辑工件的人发送给它的评论。127* **您要求 Claude 读取评论**:向 Claude 提供工件的 URL 并要求查看评论。Claude 列出每个线程,并标记可以编辑工件的人发送给它的评论。

128* **可以编辑工件的人向 Claude 发送评论**:在页面上的线程中,他们使用**发送给 Claude**发送评论,或在其中提及 `@claude`。无论哪种方式,他们都会激活该线程。128* **可以编辑工件的人向 Claude 发送评论**:在页面上的线程中,他们使用**发送给 Claude**发送评论,或在其中提及 `@claude`。无论哪种方式,他们都会激活该线程。

129 129 

130Claude 只能回复或解决已激活的线程。其他线程保持打开状态,直到某人在页面上解决它们。查看者会看到每条回复都归属于 Claude,通过您。130Claude 只能回复或解决已激活的线程。其他线程保持打开状态,直到某人在页面上解决它们。查看者会看到每条回复都归属于 Claude,通过您。

131 131 

132如果您公开共享工件,查看者无法对其进行评论:页面显示`此工件公开共享时评论不可用。`要将已有评论线程的工件切换到公开链接,请先删除这些线程。132如果您公开共享工件,只有其公开链接访问权限的人看不到其评论,也无法添加任何评论。现有评论线程保留在工件上,您和其编辑者仍然可以读取和回复它们。

133 133 

134要自己要求查看评论,请向 Claude 提供 URL:134要自己要求查看评论,请向 Claude 提供 URL:

135 135 


195 195 

196当您计划共享一个由连接器支持的页面时,请要求 Claude 在每个实时部分中包含一条后备消息,该消息命名它需要的连接器。缺少连接的查看者随后会看到要连接的内容,而不是空部分。196当您计划共享一个由连接器支持的页面时,请要求 Claude 在每个实时部分中包含一条后备消息,该消息命名它需要的连接器。缺少连接的查看者随后会看到要连接的内容,而不是空部分。

197 197 

198调用连接器的 artifact 无法在任何计划上共享到公开链接。在 Team 和 Enterprise 计划上,您可以将其保持为私有或[在您的组织内共享](#share-an-artifact)。在 Pro 和 Max 计划上,其中公开链接是唯一的共享方式,由连接器支持的 artifact 对您保持私有。198您可以在您的组织内或公开[共享一个由连接器支持的页面](#share-an-artifact),如您的计划和组织设置所允许的那样。连接器调用不会为未登录 claude.ai 的查看者或来自您组织外部的查看者运行。该查看者看到的页面没有其实时部分。

199 199 

200<h3 id="the-page-shows-no-live-data-for-a-viewer">200<h3 id="the-page-shows-no-live-data-for-a-viewer">

201 页面对查看者显示没有实时数据201 页面对查看者显示没有实时数据

202</h3>202</h3>

203 203 

204当由连接器支持的页面呈现但其实时部分对您共享的某人保持为空时,请解决这些原因:204当由连接器支持的页面呈现但其实时部分对您组织中的查看者保持为空时,请解决这些原因:

205 205 

206* **查看者未连接连接器**:连接器是按账户的,因此每个查看者都需要自己连接到页面调用的每个连接器。他们可以在 claude.ai 上的**设置 > 连接器**下添加一个,然后重新加载页面。206* **查看者未连接连接器**:连接器是按账户的,因此每个查看者都需要自己连接到页面调用的每个连接器。他们可以在 claude.ai 上的**设置 > 连接器**下添加一个,然后重新加载页面。

207* **查看者拒绝了权限请求**:拒绝在该页面加载的其余部分持续。重新加载页面会再次显示权限请求。207* **查看者拒绝了权限请求**:拒绝在该页面加载的其余部分持续。重新加载页面会再次显示权限请求。


375 375 

376| 要求 | 可用时间 |376| 要求 | 可用时间 |

377| :- | :- |377| :- | :- |

378| 计划 | Pro、Max、Team 或 Enterprise。在 Pro 和 Max 计划上,artifacts 仅对您私有,不适用任何管理员管理。在 Team 计划上,artifacts 默认启用。在 Enterprise 计划上,Owner 在 claude.ai 管理设置中 [启用它们](#manage-artifacts-for-your-organization)。 |378| 计划 | Pro、Max、Team 或 Enterprise。在 Pro 和 Max 计划上,artifacts 仅对您私有,直到您共享它们,不适用任何管理员管理。在 Team 和 Enterprise 计划上,artifacts 默认启用,Owner 可以在 claude.ai 管理设置中 [关闭它们](#manage-artifacts-for-your-organization)。 |

379| 身份验证 | 会话由 claude.ai 账户支持:在 CLI 或桌面应用中使用 `/login` 登录。Claude Tag 会话通过代理的身份登录,因此不需要任何步骤。使用 API 密钥、[网关令牌](/docs/zh-CN/llm-gateway) 或云提供商凭证的会话无法发布。 |379| 身份验证 | 会话由 claude.ai 账户支持:在 CLI 或桌面应用中使用 `/login` 登录。Claude Tag 会话通过代理的身份登录,因此不需要任何步骤。使用 API 密钥、[网关令牌](/docs/zh-CN/llm-gateway) 或云提供商凭证的会话无法发布。 |

380| 模型提供商 | Anthropic API。在 [Amazon Bedrock](/docs/zh-CN/amazon-bedrock)、[Google Cloud 的 Agent Platform](/docs/zh-CN/google-vertex-ai) 或 [Microsoft Foundry](/docs/zh-CN/microsoft-foundry) 上不可用。 |380| 模型提供商 | Anthropic API。在 [Amazon Bedrock](/docs/zh-CN/amazon-bedrock)、[Google Cloud 的 Agent Platform](/docs/zh-CN/google-vertex-ai) 或 [Microsoft Foundry](/docs/zh-CN/microsoft-foundry) 上不可用。 |

381| 组织策略 | 客户管理的加密密钥 (CMEK)、HIPAA 和 [零数据保留](/docs/zh-CN/zero-data-retention) 未为组织启用。 |381| 组织策略 | 客户管理的加密密钥 (CMEK)、HIPAA 和 [零数据保留](/docs/zh-CN/zero-data-retention) 未为组织启用。 |


408 为您的组织管理 artifacts408 为您的组织管理 artifacts

409</h2>409</h2>

410 410 

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

412 412 

413<h3 id="enable-or-disable-artifacts">413<h3 id="enable-or-disable-artifacts">

414 启用或禁用 artifacts414 启用或禁用 artifacts

415</h3>415</h3>

416 416 

417要为整个组织启用或禁用 artifacts,请转到 [**Settings > Claude Code > Capabilities**](https://claude.ai/admin-settings/claude-code) 并使用 **Artifacts** 切换。在具有基于角色的访问控制的 Enterprise 计划上,您还可以将 artifacts 限制到特定角色:转到 [**Settings > Roles**](https://claude.ai/admin-settings/roles),编辑角色,并在 **Claude Code** 组下设置 **Artifacts** 权限。417要为整个组织启用或禁用 artifacts,请转到 [**Organization settings > Artifacts**](https://claude.ai/admin-settings/artifacts) 并使用 **Artifacts** 切换。在具有基于角色的访问控制的 Enterprise 计划上,您还可以将 artifacts 限制到特定角色:转到 [**Organization settings > Roles**](https://claude.ai/admin-settings/roles),编辑角色,并设置 **Artifacts** 权限。

418 418 

419<h3 id="control-connector-calls-from-artifacts">419<h3 id="control-connector-calls-from-artifacts">

420 控制来自 artifacts 的连接器调用420 控制来自 artifacts 的连接器调用

421</h3>421</h3>

422 422 

423[来自 artifacts 的连接器调用](#pull-live-data-with-mcp-connectors)有自己的切换,与打开或关闭 artifacts 的 **Artifacts** 切换分开。转到 [**Settings > Capabilities**](https://claude.ai/admin-settings/capabilities) 并使用 **Enable artifact connectors** 切换。同一切换控制在 claude.ai 对话中创建的 artifacts 的连接器调用,这就是为什么它位于 **Settings > Capabilities** 而不是 **Settings > Claude Code** 下。423[来自 artifacts 的连接器调用](#pull-live-data-with-mcp-connectors)有自己的切换,与打开或关闭 artifacts 的 **Artifacts** 切换分开。转到 [**Organization settings > Capabilities**](https://claude.ai/admin-settings/capabilities) 并使用 **Enable artifact connectors** 切换。同一切换控制在 claude.ai 对话中创建的 artifacts 的连接器调用。

424 424 

425<h3 id="control-public-sharing">425<h3 id="control-public-sharing">

426 控制公开共享426 控制公开共享

427</h3>427</h3>

428 428 

429在 Team 和 Enterprise 计划上,公开共享默认处于关闭状态,因此成员只能在组织内共享 artifacts,直到管理员将其打开。要让成员将 artifacts 发布到任何人都可以查看而无需登录的公开链接,请转到 **Settings > Claude Code > Capabilities** 并在 **Artifacts** 切换下打开 **External sharing**。将其关闭会阻止通过现有公开链接的访问,而不会更改每个 artifact 的受众;如果您重新启用它,访问将恢复。429在 Team 和 Enterprise 计划上,公开共享默认处于关闭状态。要让成员将 artifacts 发布到任何人都可以查看而无需登录的公开链接,请转到 [**Organization settings > Artifacts**](https://claude.ai/admin-settings/artifacts) 并在 **Artifacts** 切换下打开 **External sharing**。将其关闭会阻止通过现有公开链接的访问,而不会更改每个 artifact 的受众;如果您重新启用它,访问将恢复。

430 430 

431<h3 id="set-a-retention-policy">431<h3 id="set-a-retention-policy">

432 设置保留策略432 设置保留策略

433</h3>433</h3>

434 434 

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

436 436 

437<h3 id="review-the-audit-log">437<h3 id="review-the-audit-log">

438 查看审计日志438 查看审计日志

Details

32 32 

33要登出并重新身份验证,请在 Claude Code 提示符处输入 `/logout`。登出还会重置您的首次启动设置状态,因此下次运行 `claude` 时,它会再次引导您完成登录和设置。33要登出并重新身份验证,请在 Claude Code 提示符处输入 `/logout`。登出还会重置您的首次启动设置状态,因此下次运行 `claude` 时,它会再次引导您完成登录和设置。

34 34 

35如果您在登录时遇到问题,请参阅 [身份验证故障排除](/docs/zh-CN/troubleshoot-install#login-and-authentication)。

36 

37<h3 id="log-in-with-multiple-accounts">

38 使用多个账户登录

39</h3>

40 

35要同时保持登录多个账户(例如工作和个人账户),请为每个账户提供自己的配置目录。启动 `claude` 时,将 [`CLAUDE_CONFIG_DIR`](/docs/zh-CN/env-vars#variables) 环境变量设置为您要使用的账户的目录。每个目录都有自己的设置、会话历史记录和 claude.ai 登录或 API 密钥。例如,在 Bash 或 Zsh 中,将此别名添加到 `~/.bashrc` 或 `~/.zshrc`,以便 `claude-work` 使用您的工作账户,而 `claude` 保持您的个人账户:41要同时保持登录多个账户(例如工作和个人账户),请为每个账户提供自己的配置目录。启动 `claude` 时,将 [`CLAUDE_CONFIG_DIR`](/docs/zh-CN/env-vars#variables) 环境变量设置为您要使用的账户的目录。每个目录都有自己的设置、会话历史记录和 claude.ai 登录或 API 密钥。例如,在 Bash 或 Zsh 中,将此别名添加到 `~/.bashrc` 或 `~/.zshrc`,以便 `claude-work` 使用您的工作账户,而 `claude` 保持您的个人账户:

36 42 

37```bash theme={null}43```bash theme={null}


40 46 

41首次打开新终端并运行 `claude-work` 后,Claude Code 会引导您完成新目录的登录和设置。单独的目录不会将两个 Claude Console 登录 [不带 API 密钥](#sign-in-without-an-api-key) 分开,因为 Claude Code 将这种类型的登录存储在配置目录之外。47首次打开新终端并运行 `claude-work` 后,Claude Code 会引导您完成新目录的登录和设置。单独的目录不会将两个 Claude Console 登录 [不带 API 密钥](#sign-in-without-an-api-key) 分开,因为 Claude Code 将这种类型的登录存储在配置目录之外。

42 48 

43如果您在登录时遇到问题,请参阅 [身份验证故障排除](/docs/zh-CN/troubleshoot-install#login-and-authentication)。

44 

45<h2 id="set-up-team-authentication">49<h2 id="set-up-team-authentication">

46 设置团队身份验证50 设置团队身份验证

47</h2>51</h2>

Details

163 有效负载作为 `<channel>` 标签到达 Claude 的上下文中:163 有效负载作为 `<channel>` 标签到达 Claude 的上下文中:

164 164 

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

166 <channel source="webhook" path="/" method="POST">build failed on main: https://ci.example.com/run/1234</channel>166 <channel source="webhook" path="/" method="POST">

167 build failed on main: https://ci.example.com/run/1234

168 </channel>

167 ```169 ```

168 170 

169 您的终端将事件呈现为单行摘要 `← webhook: build failed on main: https://ci.example.com/run/1234`,而不是原始标签。然后您会看到 Claude 开始响应:读取文件、运行命令或消息要求的任何操作。这是一个单向频道,因此 Claude 在您的会话中行动,但不会通过 webhook 发送任何内容回复。要添加回复,请参阅[公开回复工具](#expose-a-reply-tool)。171 您的终端将事件呈现为单行摘要 `← webhook: build failed on main: https://ci.example.com/run/1234`,而不是原始标签。然后您会看到 Claude 开始响应:读取文件、运行命令或消息要求的任何操作。这是一个单向频道,因此 Claude 在您的会话中行动,但不会通过 webhook 发送任何内容回复。要添加回复,请参阅[公开回复工具](#expose-a-reply-tool)。

chrome.md +5 −2

Details

98* **暂不**:继续执行任务而不使用浏览器工具。Claude Code 可以在稍后的会话中再次询问。98* **暂不**:继续执行任务而不使用浏览器工具。Claude Code 可以在稍后的会话中再次询问。

99* **不再询问**:在未来的会话中停止该提示。您仍然可以随时使用 `/chrome` 设置集成。99* **不再询问**:在未来的会话中停止该提示。您仍然可以随时使用 `/chrome` 设置集成。

100 100 

101如果您的组织使用 [`deniedMcpServers` 托管设置](/docs/zh-CN/managed-mcp#policy-based-control-with-allowlists-and-denylists)阻止 `claude-in-chrome` MCP 服务器,Claude Code 不会显示安装提示。101两个托管 MCP 策略会关闭该提示:

102 

103* 如果您的组织使用 [`deniedMcpServers` 托管设置](/docs/zh-CN/managed-mcp#policy-based-control-with-allowlists-and-denylists)阻止 `claude-in-chrome` MCP 服务器,Claude Code 不会显示安装提示。

104* 如果您的组织部署了 [`managed-mcp.json`](/docs/zh-CN/managed-mcp#exclusive-control-with-managed-mcp-json) 文件,但未[在托管集合中允许 Claude in Chrome](/docs/zh-CN/managed-mcp#allow-claude-in-chrome-alongside-the-managed-set),Claude Code 不会显示安装提示。

102 105 

103<h3 id="enable-chrome-by-default">106<h3 id="enable-chrome-by-default">

104 默认启用 Chrome107 默认启用 Chrome


118 管理网站权限121 管理网站权限

119</h3>122</h3>

120 123 

121网站级权限从 Chrome 扩展程序继承。在 Chrome 扩展程序设置中管理权限,以控制 Claude 可以浏览、点击和输入的网站。124网站级权限从 Chrome 扩展程序继承。在 Chrome 扩展程序设置中管理权限,以控制 Claude 可以浏览、点击和输入的网站。在[自动模式](/docs/zh-CN/permission-modes#eliminate-prompts-with-auto-mode)中,当自动模式分类器本身批准对网站的浏览器调用时,扩展程序会跳过该调用的自己的按网站检查,除非您的权限规则拒绝任何网站对 Claude in Chrome 的访问。

122 125 

123<h3 id="browser-tools-in-plan-mode">126<h3 id="browser-tools-in-plan-mode">

124 Plan Mode 中的浏览器工具127 Plan Mode 中的浏览器工具

Details

356 356 

357仅运行 Claude Desktop 的机器需要它。Claude Desktop 将模型列表和禁用工具列表应用于嵌入式会话本身,但出口允许列表仅作为父设置到达它们,形式为 `WebFetch` 域规则和沙箱网络规则。没有选择加入,这些会话运行时没有出口限制,没有任何警告。网关仍然拒绝策略未授予的模型的推理请求。357仅运行 Claude Desktop 的机器需要它。Claude Desktop 将模型列表和禁用工具列表应用于嵌入式会话本身,但出口允许列表仅作为父设置到达它们,形式为 `WebFetch` 域规则和沙箱网络规则。没有选择加入,这些会话运行时没有出口限制,没有任何警告。网关仍然拒绝策略未授予的模型的推理请求。

358 358 

359插件市场允许列表也仅作为父设置到达嵌入式会话。当您在 Claude Desktop 的托管配置中关闭用户添加的插件市场时,Claude Desktop 2.16120.0 或更高版本隐藏您的组织未配置的市场,并拒绝从它们安装。要停止嵌入式会话加载已从这些市场安装的插件,它将 `strictKnownMarketplaces` 列表作为父设置发送给它们。没有选择加入,Claude Code 忽略该列表,这些插件继续加载。

360 

359开发人员通过 `/login` 登录的机器不需要它;每个 Claude Code 会话从网关获取其策略。361开发人员通过 `/login` 登录的机器不需要它;每个 Claude Code 会话从网关获取其策略。

360 362 

361其[`policyHelper`](/docs/zh-CN/settings-reference#policyhelper)提供托管设置的舰队无法使用它:Claude Code 从不在这些舰队上合并父设置,因为它仅从助手的输出读取托管设置。363其[`policyHelper`](/docs/zh-CN/settings-reference#policyhelper)提供托管设置的舰队无法使用它:Claude Code 从不在这些舰队上合并父设置,因为它仅从助手的输出读取托管设置。


451* **`forceLoginOrgUUID`**:当最高优先级管理员源未设置组织 UUID 时,Claude Code 尊重父提供的值。网关登录不检查此密钥。最高优先级管理员源中的组织 UUID 阻止父的值,是 Claude Code 强制执行的值。453* **`forceLoginOrgUUID`**:当最高优先级管理员源未设置组织 UUID 时,Claude Code 尊重父提供的值。网关登录不检查此密钥。最高优先级管理员源中的组织 UUID 阻止父的值,是 Claude Code 强制执行的值。

452* **`allowedMcpServers`**:当最高优先级管理员源未设置允许列表时,Claude Code 尊重父提供的允许列表,`allowManagedMcpServersOnly` 不阻止它,因为锁强制执行任何赢家列表作为托管值,包括当最高优先级管理员源未设置时的父提供列表。最高优先级管理员源中的列表阻止父的并是 Claude Code 强制执行的列表,因此在那里设置 `allowedMcpServers`,在锁旁边。在 v2.1.223 之前,任何管理员源中任一密钥的值都阻止父的。454* **`allowedMcpServers`**:当最高优先级管理员源未设置允许列表时,Claude Code 尊重父提供的允许列表,`allowManagedMcpServersOnly` 不阻止它,因为锁强制执行任何赢家列表作为托管值,包括当最高优先级管理员源未设置时的父提供列表。最高优先级管理员源中的列表阻止父的并是 Claude Code 强制执行的列表,因此在那里设置 `allowedMcpServers`,在锁旁边。在 v2.1.223 之前,任何管理员源中任一密钥的值都阻止父的。

453* **`availableModels`**:当赢家托管源未设置模型列表时,Claude Code 尊重父提供的模型列表。如果您的舰队限制模型,在赢家源中设置 `availableModels`。455* **`availableModels`**:当赢家托管源未设置模型列表时,Claude Code 尊重父提供的模型列表。如果您的舰队限制模型,在赢家源中设置 `availableModels`。

454* **`strictKnownMarketplaces`**:当赢家托管源未设置一个时,Claude Code 尊重父提供的插件市场允许列表。如果您的舰队限制市场,在赢家源中设置 `strictKnownMarketplaces`。需要 Claude Code v2.1.282 或更高版本。456* **`strictKnownMarketplaces`**:当赢家托管源未设置一个时,Claude Code 尊重父提供的插件市场允许列表。Claude Desktop 2.16120.0 或更高版本在其托管配置关闭用户添加的插件市场时发送一个。如果您的舰队限制市场,在赢家源中设置 `strictKnownMarketplaces`。需要 Claude Code v2.1.282 或更高版本。

455* **`blockedMarketplaces`**:父提供的市场阻止列表通过并添加到任何托管源设置的阻止列表,因为阻止列表只能进一步限制。需要 Claude Code v2.1.282 或更高版本。457* **`blockedMarketplaces`**:父提供的市场阻止列表通过并添加到任何托管源设置的阻止列表,因为阻止列表只能进一步限制。需要 Claude Code v2.1.282 或更高版本。

456* **`strictPluginOnlyCustomization`**:此密钥无论任何锁都通过过滤器,它使 Claude Code 忽略开发人员的自己定制,包括保护性 hooks。没有锁阻止它。458* **`strictPluginOnlyCustomization`**:此密钥无论任何锁都通过过滤器,它使 Claude Code 忽略开发人员的自己定制,包括保护性 hooks。没有锁阻止它。

457 459 

Details

314| 其他任何地方 | 通过 `AWS_ACCESS_KEY_ID`、`AWS_SECRET_ACCESS_KEY` 和 `AWS_SESSION_TOKEN` 环境变量传递凭证,或在 `auth:` 中使用 `${VAR}` 扩展显式设置它们 |314| 其他任何地方 | 通过 `AWS_ACCESS_KEY_ID`、`AWS_SECRET_ACCESS_KEY` 和 `AWS_SESSION_TOKEN` 环境变量传递凭证,或在 `auth:` 中使用 `${VAR}` 扩展显式设置它们 |

315| 地区 | `region:` 是 API 端点地区。跨地区推理配置文件跨地理位置(美国、欧盟、亚太)路由,无论你选择哪一个。对于非美国地区或预配吞吐量 ARN,添加一个[`models:`](#models)块,其中包含正确的每上游 ID。 |315| 地区 | `region:` 是 API 端点地区。跨地区推理配置文件跨地理位置(美国、欧盟、亚太)路由,无论你选择哪一个。对于非美国地区或预配吞吐量 ARN,添加一个[`models:`](#models)块,其中包含正确的每上游 ID。 |

316 316 

317<h5 id="apply-an-amazon-bedrock-guardrail">

318 应用 Amazon Bedrock 防护栏

319</h5>

320 

321要将 Amazon Bedrock 防护栏应用于网关通过 Bedrock 上游发送的每个推理请求,请在该上游上添加 `guardrail` 块。需要网关服务器上的 Claude Code v2.1.281 或更高版本。

322 

323```yaml theme={null}

324upstreams:

325 - provider: bedrock

326 region: us-east-1

327 auth: {}

328 guardrail:

329 id: gr-abc123 # 防护栏 ID 或完整 ARN

330 version: "1" # 已发布的版本号或 DRAFT

331 # 保留引号:裸露的 1 在启动时失败

332```

333 

334<Warning>

335 网关不支持防护栏输入标签。它不向提示添加防护内容标签,因此仅对标记输入应用的防护栏过滤器不在通过网关的流量上运行。对于哪些过滤器依赖于输入标签,请参阅 Amazon Bedrock 文档中的[输入标签](https://docs.aws.amazon.com/bedrock/latest/userguide/guardrails-tagging.html)。

336</Warning>

337 

338也授予网关的 AWS 主体防护栏上的 `bedrock:ApplyGuardrail`。

339 

340在每个 `bedrock` 上游或不在任何上游上设置 `guardrail`。网关拒绝在混合上启动,因为[故障转移](#multiple-upstreams)可能会将请求发送到没有防护栏的 Bedrock 上游。

341 

342防护栏仅覆盖 Bedrock 上游。如果你在 `upstreams` 中列出另一个提供者,网关将请求发送到该提供者而不带防护栏。

343 

344当 `/v1/messages` 请求的正文携带 `amazon-bedrock-*` 字段(如 `amazon-bedrock-guardrailConfig`)到达设置了 `guardrail` 的 Bedrock 上游时,网关答复 400 而不是转发它。

345 

317<h4 id="claude-platform-on-aws">346<h4 id="claude-platform-on-aws">

318 Claude Platform on AWS347 Claude Platform on AWS

319</h4>348</h4>


534 563 

535```yaml theme={null}564```yaml theme={null}

536admin:565admin:

537 # 用于管理员端点的命名静态 API 密钥,作为 x-api-key 发送。566 # 用于管理端点的命名静态 API 密钥,作为 x-api-key 发送。

538 # id 在审计日志中显示为 admin-key:<id>,因此每个密钥都是567 # id 在审计日志中显示为 admin-key:<id>,因此每个密钥都是

539 # 可追踪的。数组用于轮换:添加新密钥,滚动客户端,568 # 可追踪的。数组用于轮换:添加新密钥,滚动客户端,

540 # 删除旧密钥。569 # 删除旧密钥。


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

557| `audit_retention_days` | 否 | 默认 `365`。较旧的 `admin_audit` 行被清除。 |586| `audit_retention_days` | 否 | 默认 `365`。较旧的 `admin_audit` 行被清除。 |

558| `spend_retention_months` | 否 | 默认 `13`。早于此的 `spend` 计数器行被清除。默认值保留整整一年加当前部分月份,用于年度对比报告。 |587| `spend_retention_months` | 否 | 默认 `13`。早于此的 `spend` 计数器行被清除。默认值保留整整一年加当前部分月份,用于年度对比报告。 |

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

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

561 590 

562<h3 id="enforcement">591<h3 id="enforcement">


576`pricing` 块告诉支出计量器收费而不是美元列表价格,因此上限和 [`/effective`](/docs/zh-CN/claude-apps-gateway-spend-limits#%2Feffective) 反映您的合同费率。金额保持为美元,并保持为估计值,而不是发票。两个先决条件:605`pricing` 块告诉支出计量器收费而不是美元列表价格,因此上限和 [`/effective`](/docs/zh-CN/claude-apps-gateway-spend-limits#%2Feffective) 反映您的合同费率。金额保持为美元,并保持为估计值,而不是发票。两个先决条件:

577 606 

578* 网关服务器上的 Claude Code v2.1.227 或更高版本。早期版本在启动时拒绝未知密钥。607* 网关服务器上的 Claude Code v2.1.227 或更高版本。早期版本在启动时拒绝未知密钥。

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

580 609 

581```yaml theme={null}610```yaml theme={null}

582pricing:611pricing:


593| 字段 | 必需 | 描述 |622| 字段 | 必需 | 描述 |

594| - | - | - |623| - | - | - |

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

596| `overrides` | 否 | `{upstream, model, input, output, cache_read, cache_write}` 行,单位为美元/百万令牌。所有四个费率都是必需的。每个必须大于 0 且最多 10000。 |625| `overrides` | 否 | `{upstream, model, input, output, cache_read, cache_write}` 行,单位为每百万令牌的美元。所有四个费率都是必需的。每个必须大于 0 且最多 10000。 |

597 626 

598计量器如何匹配覆盖行:627计量器如何匹配覆盖行:

599 628 

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

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

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

603* 未知的上游名称会导致启动失败,两行用于一个上游命名相同的模型也会导致启动失败,包括一个内置模型的两个拼写。网关在启动时警告没有可请求模型可以使用的行。632* 未知的上游名称会导致启动失败,两行针对一个上游命名相同模型也会导致启动失败,包括一个内置模型的两种拼写。网关在启动时警告没有可请求模型可以使用的行。

604* Web 搜索请求保持在 \$0.01 列表价格;乘数仍然适用于它们。633* Web 搜索请求保持在 \$0.01 列表价格;乘数仍然适用于它们。

605 634 

606对于按地区的费率,为每个地区提供自己的命名上游和每个上游一行。635对于按地区费率,为每个地区提供自己的命名上游和每个上游一行。

607 636 

608<h4 id="mark-prices-up">637<h4 id="mark-prices-up">

609 标记价格上升638 标记价格上升

610</h4>639</h4>

611 640 

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

613 642 

614```yaml theme={null}643```yaml theme={null}

615pricing:644pricing:

616 multiplier: 1.2645 multiplier: 1.2

617```646```

618 647 

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

620 649 

621乘数不会改变上游提供商对请求的收费。650乘数不会改变上游提供商对请求的收费。

622 651 

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

624 653 

625早于 v2.1.271 的网关服务器拒绝在设置 `multiplier` 大于 1 时启动。654早于 v2.1.271 的网关服务器如果您设置 `multiplier` 大于 1,拒绝启动。

626 655 

627<h4 id="send-the-rates-to-signed-in-clients">656<h4 id="send-the-rates-to-signed-in-clients">

628 将费率发送给已登录的客户端657 将费率发送给已登录的客户端

629</h4>658</h4>

630 659 

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

632 661 

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

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

635* 保留策略自己的费率:其 `cli` 块使用自己的 `multiplier` 或 `overrides` 设置 `modelPricing` 的策略保留该 `modelPricing` 完整,网关不向其添加自己的费率。664* 保留策略自己的费率:策略的 `cli` 块使用其自己的 `multiplier` 或 `overrides` 设置 `modelPricing` 保留该 `modelPricing` 完整,网关不向其添加自己的费率。

636 665 

637<h3 id="models">666<h3 id="models">

638 `models`667 `models`

639</h3>668</h3>

640 669 

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

642 671 

643```yaml theme={null}672```yaml theme={null}

644auto_include_builtin_models: true # false: 仅公开下面的列表673auto_include_builtin_models: true # false: 仅公开下面的列表


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

678 707 

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

680* **拒绝列表和钩子数组**:`permissions.deny`、`permissions.ask`、`disabledMcpjsonServers`、`deniedMcpServers`、`blockedMarketplaces` 和每个 `hooks` 事件类型数组。这些取基础和策略的并集,因此组织范围的拒绝或审计钩子不会被每个角色覆盖意外删除。709* **拒绝列表和钩子数组**:`permissions.deny`、`permissions.ask`、`disabledMcpjsonServers`、`deniedMcpServers`、`blockedMarketplaces` 和每个 `hooks` 事件类型数组。这些取基础和策略的并集,因此组织范围的拒绝或审计钩子不能被每个角色覆盖意外删除。

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

682 711 

683`availableModels` 也在 `/v1/messages` 服务器端强制执行,因此被拒绝的模型返回 `400`,无论客户端发送什么。712`availableModels` 也在 `/v1/messages` 服务器端强制执行,因此被拒绝的模型返回 `400`,无论客户端发送什么。

684 713 


699<Note>728<Note>

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

701 730 

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

703 732 

704 两个传播时钟适用:733 两个传播时钟适用:

705 734 

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

707 * **组成员身份**:更改用户的组成员身份更改哪个策略与他们匹配。这在下一个会话重新铸造时生效,意味着下一个静默刷新,受 `session.ttl_hours` 限制。736 * **组成员身份**:更改用户的组成员身份更改哪个策略匹配他们。这在下一个会话重新铸造时生效,意味着下一个静默刷新,受 `session.ttl_hours` 限制。

708</Note>737</Note>

709 738 

710<h4 id="matcher-values-that-stop-the-gateway-at-boot">739<h4 id="matcher-values-that-stop-the-gateway-at-boot">


723* 空 `email_domain`:网关跳过域检查,因此具有空 `email_domain` 和没有 `groups` 列表的策略匹配每个已认证的用户752* 空 `email_domain`:网关跳过域检查,因此具有空 `email_domain` 和没有 `groups` 列表的策略匹配每个已认证的用户

724* 空 `groups` 列表:策略与任何人都不匹配753* 空 `groups` 列表:策略与任何人都不匹配

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

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

727 756 

728<h4 id="what-goes-in-cli">757<h4 id="what-goes-in-cli">

729 `cli` 中的内容758 `cli` 中的内容

730</h4>759</h4>

731 760 

732每个 `cli` 值是完整的 Claude Code `managed-settings.json` 文档,与您通过 MDM 或 `/etc/claude-code/managed-settings.json` 部署的相同架构,在此表示为 YAML。CLI 在托管层应用交付的文档,在用户和项目设置之上,代替服务器托管的设置。因此它忽略[限制为操作系统级策略来源的设置](/docs/zh-CN/server-managed-settings#current-limitations),例如 `policyHelper` 和 `wslInheritsWindowsSettings`。761每个 `cli` 值是完整的 Claude Code `managed-settings.json` 文档,与您通过 MDM 或 `/etc/claude-code/managed-settings.json` 部署的相同架构,在此表示为 YAML。CLI 在托管层应用交付的文档,在用户和项目设置之上,代替服务器托管的设置。因此它忽略[限制为操作系统级策略来源](/docs/zh-CN/server-managed-settings#current-limitations)的设置,例如 `policyHelper` 和 `wslInheritsWindowsSettings`。

733 762 

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

735 764 

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

737 766 

738完整的键参考在[Claude Code 设置](/docs/zh-CN/settings-reference#all-settings)中。操作员首先寻求的键:767完整的键参考在[Claude Code 设置](/docs/zh-CN/settings-reference#all-settings)中。操作员首先寻求的最常见的键:

739 768 

740```yaml theme={null}769```yaml theme={null}

741managed:770managed:


774| `availableModels` | 网关 + CLI | 模型允许列表。也在 `/v1/messages` 检查,因此修补的客户端无法绕过它。 |803| `availableModels` | 网关 + CLI | 模型允许列表。也在 `/v1/messages` 检查,因此修补的客户端无法绕过它。 |

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

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

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

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

779| `hooks` | CLI | 组织范围的[钩子](/docs/zh-CN/hooks) |808| `hooks` | CLI | 组织范围的[钩子](/docs/zh-CN/hooks) |

780| `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 或更高版本。早期客户端忽略该键。 |809| `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 或更高版本。早期客户端忽略该键。 |


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

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

789 818 

790[批准记忆](/docs/zh-CN/server-managed-settings#approval-memory)涵盖批准持续多长时间以及对话框何时再次出现。819[批准记忆](/docs/zh-CN/server-managed-settings#approval-memory)涵盖批准持续多长时间以及对话何时再次出现。

791 820 

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

793 822 

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

795 824 

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

797 826 

798带有 `-p` 标志的非交互式运行无法显示对话框。它仅为该运行应用推送的设置,不将其记录为已批准,因此开发者的下一个交互式会话仍然显示对话框。在 v2.1.207 之前,非交互式运行将设置保存为已批准,没有后来的交互式会话为它们显示对话框。827[非交互式运行](/docs/zh-CN/server-managed-settings#security-approval-dialogs),例如 `claude -p` 或 Agent SDK 会话,无法显示对话框。它仅为该运行应用推送的设置,不将其记录为已批准,因此开发者的下一个交互式会话仍然显示对话框。在 v2.1.207 之前,非交互式运行将设置保存为已批准,没有后来的交互式会话显示对话框。

799 828 

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

801 830 

802`cli` 键在早期版本中被命名为 `settings`。该拼写仍然被接受为别名,但新部署应该使用 `cli`。831`cli` 键在早期版本中被命名为 `settings`。该拼写仍然被接受为别名,但新部署应该使用 `cli`。

803 832 


807 836 

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

809 838 

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

811 840 

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

813 842 


817 Claude Desktop 覆盖846 Claude Desktop 覆盖

818</h4>847</h4>

819 848 

820如果您的组织也部署[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 发行者,针对此网关运行相同的设备代码登录,并从响应获取其配置。849如果您的组织也部署[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 发行者,针对此网关运行相同的设备代码登录,并从响应中获取其配置。

821 850 

822<Note>851<Note>

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

824</Note>853</Note>

825 854 

826网关从匹配策略的 `cli` 块和顶级网关配置派生响应的大部分:855网关从匹配策略的 `cli` 块和顶级网关配置派生响应的大部分:


834 863 

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

836 865 

837网关省略没有 Claude Desktop 等效项的键,例如 `hooks` 和范围权限规则如 `Bash(npm *)`,来自引导响应。866网关省略没有 Claude Desktop 等效项的键,例如 `hooks` 和范围权限规则,如 `Bash(npm *)`,来自引导响应。

838 867 

839添加可选的 `desktop` 块与 `cli` 一起直接设置 Claude Desktop 设置。从 Claude Desktop 的[托管配置参考](https://claude.com/docs/third-party/claude-desktop/configuration)编写设置为平面键名。省略 Claude Desktop 仅从 MDM 或本地文件读取的键,例如 `bootstrapUrl`;网关在启动时拒绝它们。在 v2.1.232 之前,网关接受固定的 11 个功能门键列表,例如 `chatTabEnabled` 和 `disableAutoUpdates`,并在启动时拒绝每个其他键。在 v2.1.227 之前,网关也在启动时拒绝 `chatTabEnabled` 和 `chatAdvancedFileAnalysisEnabled`。868添加可选的 `desktop` 块与 `cli` 一起直接设置 Claude Desktop 设置。从 Claude Desktop 的[托管配置参考](https://claude.com/docs/third-party/claude-desktop/configuration)编写设置为平面键名。省略 Claude Desktop 仅从 MDM 或本地文件读取的键,例如 `bootstrapUrl`;网关在启动时拒绝它们。在 v2.1.232 之前,网关接受 11 个固定的功能门键的列表,例如 `chatTabEnabled` 和 `disableAutoUpdates`,并在启动时拒绝每个其他键。在 v2.1.227 之前,网关也在启动时拒绝 `chatTabEnabled` 和 `chatAdvancedFileAnalysisEnabled`。

840 869 

841```yaml theme={null}870```yaml theme={null}

842managed:871managed:


850 banner: { text: "Contractor build: internal use only" }879 banner: { text: "Contractor build: internal use only" }

851```880```

852 881 

853每个键都是可选的;Claude Desktop 为您省略的任何键应用自己的默认值。网关在启动时根据 Claude Desktop 本身使用的配置架构验证每个 `desktop` 块,因此错误会在网关启动时显示为命名该键的错误,而不是到达每个连接的桌面。网关在块包含以下内容时在启动时失败:882每个键都是可选的;Claude Desktop 为您省略的任何键应用其自己的默认值。网关在启动时根据 Claude Desktop 本身使用的配置架构验证每个 `desktop` 块,因此错误在网关启动时显示为命名该键的错误,而不是到达每个连接的桌面。网关在块包含以下内容时在启动时失败:

854 883 

855* 未知键884* 未知键

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


859 888 

860如果您使用已弃用的值或条目形状,例如没有 `transport` 的 `managedMcpServers` 条目,网关启动并记录命名替换的警告。889如果您使用已弃用的值或条目形状,例如没有 `transport` 的 `managedMcpServers` 条目,网关启动并记录命名替换的警告。

861 890 

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

892 

893`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)列出首次读取每个键的版本。

863 894 

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

865 896 

866网关从策略的 `desktop` 块不设置的 `match: {}` 全部捕获的 `desktop` 块填充键,与它填充策略的 `cli` 块的方式相同。如果您在基础和角色策略中都设置 `disabledBuiltinTools` 或 `builtinToolPolicy`,网关保留基础的限制:897网关从策略的 `desktop` 块不设置的 `match: {}` 全部捕获的 `desktop` 块填充键,与它填充策略的 `cli` 块的方式相同。如果您在基础和角色策略中都设置 `disabledBuiltinTools` 或 `builtinToolPolicy`,网关保留基础的限制:

867 898 

868* `disabledBuiltinTools`:网关使用基础列表和策略列表的并集899* `disabledBuiltinTools`:网关使用基础列表和策略列表的并集

869* `builtinToolPolicy`:如果您在基础中为工具设置除 `allow` 之外的值,网关保留该值,即使您在角色策略中为同一工具设置 `allow`900* `builtinToolPolicy`:如果您在基础中将工具设置为 `allow` 以外的值,网关保留该值,即使您在角色策略中为同一工具设置 `allow`

870 901 

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

872 903 

873如果您不部署 Claude Desktop,完全从您的策略中省略 `desktop`;网关随后为每个用户从 `/user/bootstrap` 返回 404。904如果您不部署 Claude Desktop,请完全从您的策略中省略 `desktop`;网关然后从每个用户的 `/user/bootstrap` 返回 404。

874 905 

875<h4 id="precedence-with-other-managed-sources">906<h4 id="precedence-with-other-managed-sources">

876 与其他托管来源的优先级907 与其他托管来源的优先级

877</h4>908</h4>

878 909 

879如果设备也有 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) 仅在网关不交付设置时运行;条目说明其输出替换什么。910如果设备也有 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) 仅在网关不交付设置时运行;条目说明其输出替换什么。

880 911 

881嵌入主机(如[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` 锁。912嵌入主机,例如[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` 锁。

882 913 

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

884 915 


888 919 

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

890 921 

891CLI 使用从网关颁发的 JWT 读取的已认证用户的身份为每个导出加盖时间戳:`user.id`、`user.email` 和 `user.groups` 属性。因此,每个开发者的成本和使用归属无需开发者端配置即可工作。922在通过 `/login` 登录的会话中,CLI 使用从网关颁发的 JWT 读取的已认证用户的身份为每个导出加盖时间戳:`user.id`、`user.email` 和 `user.groups` 属性。每个开发者的成本和使用归因因此无需开发者端配置即可工作。

892 923 

893[Claude Desktop](#claude-desktop-overlay) 和通过网关登录的 Cowork 会话使用 `user.email` 和 `user.groups` 以及 `enduser.id` 为其遥测加盖时间戳,因此您可以使用一个关于 `user.email` 或 `user.groups` 的查询覆盖终端、Desktop 和 Cowork 使用。`user.groups` 是逗号分隔的 IdP 组列表。924[Claude Desktop](#claude-desktop-overlay) 和通过网关登录的 Cowork 会话使用 `user.email` 和 `user.groups` 以及 `enduser.id` 为其遥测加盖时间戳,因此您可以使用一个关于 `user.email` 或 `user.groups` 的查询覆盖终端、Desktop 和 Cowork 使用。`user.groups` 是逗号分隔的 IdP 组列表。

894 925 

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

896 927 

897像来自 Claude Code 的所有 OpenTelemetry 数据一样,这些属性仅转到您的组织配置的目的地,从不转到 Anthropic。928与来自 Claude Code 的所有 OpenTelemetry 数据一样,这些属性仅转到您的组织配置的目的地,从不转到 Anthropic。

898 929 

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

900 931 

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

902 933 

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

904 935 


925 * **指标**:聚合计数器,例如令牌计数、请求计数和延迟956 * **指标**:聚合计数器,例如令牌计数、请求计数和延迟

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

927 958 

928 仅在具有该数据保证的访问控制和保留策略的目的地启用日志和跟踪。959 仅在具有该数据保证的访问控制和保留策略的目的地上启用日志和跟踪。

929</Warning>960</Warning>

930 961 

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

932 963 

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

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

935 966 

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

937 968 

938当设置 `HTTPS_PROXY` 时,网关通过该代理发送导出。969当设置 `HTTPS_PROXY` 时,网关通过该代理发送导出。

939 970 

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

941 972 

942启用[仅代理出口](#proxy-only-egress)后,改为在代理中允许收集器,因为任何 `NO_PROXY` 条目都会关闭仅代理出口。973启用[仅代理出口](#proxy-only-egress)后,在代理中允许收集器,因为任何 `NO_PROXY` 条目都会关闭仅代理出口。

943 974 

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

945 976 

946* `CLAUDE_CODE_ENABLE_TELEMETRY=1`977* `CLAUDE_CODE_ENABLE_TELEMETRY=1`

947* `OTEL_METRICS_EXPORTER`、`OTEL_LOGS_EXPORTER` 和 `OTEL_TRACES_EXPORTER`,如果至少一个 `forward_to` 目的地启用该信号,则每个设置为 `otlp`,否则设置为 `none`978* `OTEL_METRICS_EXPORTER`、`OTEL_LOGS_EXPORTER` 和 `OTEL_TRACES_EXPORTER`,如果至少一个 `forward_to` 目的地启用该信号,则每个设置为 `otlp`,否则设置为 `none`

948* `OTEL_EXPORTER_OTLP_ENDPOINT=<public_url>`979* `OTEL_EXPORTER_OTLP_ENDPOINT=<public_url>`

949* `OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf`980* `OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf`

950 981 

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

952 983 

953在网关服务器上的 Claude Code v2.1.265 之前,网关将所有三个导出器选择器推送为 `otlp`,包括没有目的地选择加入的信号。984在网关服务器上的 Claude Code v2.1.265 之前,网关推送所有三个导出器选择器为 `otlp`,包括没有目的地选择加入的信号。

954 985 

955推送的端点是从公共 URL 构建的,因此指标和日志不需要来自开发者或策略的 OTEL 配置。986推送的端点从公共 URL 构建,因此指标和日志不需要来自开发者或策略的 OTEL 配置。

956 987 

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

958 989 

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

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

961 992 

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

963 994 

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

965 996 

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

967 998 

968Protobuf 和 JSON OTLP 编码都被中继,任何 OpenTelemetry 兼容的后端都可以作为目的地。999protobuf 和 JSON OTLP 编码都被中继,任何 OpenTelemetry 兼容的后端都可以作为目的地。

969 1000 

970<h4 id="add-your-own-labels">1001<h4 id="add-your-own-labels">

971 添加您自己的标签1002 添加您自己的标签

972</h4>1003</h4>

973 1004 

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

975 1006 

976会话仅在您也设置 `telemetry.forward_to` 和 `listen.public_url` 时获得标签。此示例添加两个标签:1007会话仅在您也设置 `telemetry.forward_to` 和 `listen.public_url` 时获得标签。此示例添加两个标签:

977 1008 


989* 名称仅使用字母、数字、`.`、`_` 和 `-`1020* 名称仅使用字母、数字、`.`、`_` 和 `-`

990* 名称不是保留的。以任何字母大小写比较,保留名称是以 `user.`、`enduser.` 或 `identity.` 开头的所有内容,加上 `service.name`、`service.version`、`claude.deployment_mode`、`host.arch`、`os.type`、`os.version` 和 `wsl.version`1021* 名称不是保留的。以任何字母大小写比较,保留名称是以 `user.`、`enduser.` 或 `identity.` 开头的所有内容,加上 `service.name`、`service.version`、`claude.deployment_mode`、`host.arch`、`os.type`、`os.version` 和 `wsl.version`

991* 值是非空可打印 ASCII,没有空格和 `, ; = \ " %` 中的任何一个1022* 值是非空可打印 ASCII,没有空格和 `, ; = \ " %` 中的任何一个

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

993* 值是文本,因此引用数字、`true` 或 `false`1024* 值是文本,因此引用数字、`true` 或 `false`

994 1025 

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

996 1027 

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

998 1029 

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

1000 1031 


1008 1039 

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

1010 1041 

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

1012 1043 

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

1014* URL 使用 `https://`,或 `http://` 到环回地址1045* URL 使用 `https://`,或 `http://` 到环回地址

1015* URL 解析为以 `/v1/<signal>` 结尾的路径,没有查询或片段。Claude Code 自己从通用变量构建该路径。它使用每个信号变量(如 `OTEL_EXPORTER_OTLP_METRICS_ENDPOINT`)按原样编写,因此在那里包括完整路径。1046* URL 解析为以 `/v1/<signal>` 结尾的路径,没有查询或片段。Claude Code 从通用变量本身构建该路径。它使用每个信号变量,例如 `OTEL_EXPORTER_OTLP_METRICS_ENDPOINT`,如写入的那样,因此在那里包括完整路径。

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

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

1018 1049 

1019您命名的端点仅改变导出的去向。您仍然使用 `OTEL_*_EXPORTER` 选择器选择哪些信号导出。1050您命名的端点仅改变导出的去向。您仍然选择哪些信号导出,使用 `OTEL_*_EXPORTER` 选择器。

1020 1051 

1021端点单独不打开导出,因此也设置执行此操作的变量,除非网关已经推送它们:1052端点本身不打开导出,因此也设置执行此操作的变量,除非网关已经推送它们:

1022 1053 

1023* 如果网关已经[推送遥测变量](#telemetry),它们涵盖启用、选择器和协议,您的显式端点覆盖推送的 `<public_url>` 值。仅为网关不推送的信号自己设置 `OTEL_*_EXPORTER` 选择器为 `otlp`。1054* 如果网关已经[推送遥测变量](#telemetry),它们覆盖启用、选择器和协议,您的显式端点覆盖推送的 `<public_url>` 值。仅为没有 `forward_to` 目的地启用的信号自己设置 `OTEL_*_EXPORTER` 选择器为 `otlp`。

1024* 如果它没有,也设置 `CLAUDE_CODE_ENABLE_TELEMETRY=1`、`OTEL_*_EXPORTER` 选择器和 `OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf`。1055* 如果它没有,也设置 `CLAUDE_CODE_ENABLE_TELEMETRY=1`、`OTEL_*_EXPORTER` 选择器和 `OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf`。

1025 1056 

1026当开发者登出或登入不同的网关时,对收集器的导出停止,Claude Code 删除每个剩余批次而不是发送它。1057当开发者登出或登入不同的网关时,对收集器的导出停止,Claude Code 删除每个剩余批次而不是发送它。


1029 当目的地失败时1060 当目的地失败时

1030</h4>1061</h4>

1031 1062 

1032网关不缓冲、重试或存储遥测,因此它删除未到达目的地的导出而不是晚期交付它。每个目的地独立成功或失败,导出客户端无论如何都收到成功响应,因此失败的交付仅出现在网关的日志中。1063网关不缓冲、重试或存储遥测,因此它删除未到达目的地的导出,而不是晚期交付它。每个目的地独立成功或失败,导出客户端无论如何都接收成功响应,因此失败的交付仅在网关的日志中出现。

1033 1064 

1034在五次连续失败交付到目的地后,网关在 30 秒拉伸中暂停转发到它,记录每个暂停,直到交付成功。任何错误响应、超时或连接错误都计为失败交付,除了 `400`、`413`、`415`、`422` 和 `431`,这意味着收集器拒绝该导出的有效负载为格式错误或太大。1065在对目的地的五次连续失败交付后,网关在 30 秒的拉伸中暂停转发到它,记录每个暂停,直到交付成功。任何错误响应、超时或连接错误都计为失败的交付,除了 `400`、`413`、`415`、`422` 和 `431`,这意味着收集器拒绝了该导出的有效负载为格式错误或太大。

1035 1066 

1036拒绝的有效负载既不推进也不重置失败计数:网关继续转发到目的地并记录警告,命名它和状态,在目的地的第一次拒绝和之后每一百次。1067被拒绝的有效负载既不推进也不重置失败计数:网关继续转发到目的地并记录警告,命名它和状态,在目的地的第一次拒绝和之后每一百次。

1037 1068 

1038<h3 id="http-tuning">1069<h3 id="http-tuning">

1039 HTTP 调整1070 HTTP 调整

1040</h3>1071</h3>

1041 1072 

1042四个可选的顶级块 `access_control`、`limits`、`timeouts` 和 `rate_limits` 调整 HTTP 表面。默认值适合大多数部署。1073四个可选的顶级块,`access_control`、`limits`、`timeouts` 和 `rate_limits`,调整 HTTP 表面。默认值适合大多数部署。

1043 1074 

1044| 块 | 键 | 默认 | 描述 |1075| 块 | 键 | 默认 | 描述 |

1045| - | - | - | - |1076| - | - | - | - |

1046| `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 速率限制和审计。 |1077| `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 速率限制和审计。 |

1047| `limits` | `max_request_bytes` | 32 MiB | 最大入站请求体;超大请求在缓冲体之前获得 `413`。为大文件或图像请求提高。 |1078| `limits` | `max_request_bytes` | 32 MiB | 最大入站请求体;超大请求在缓冲体之前获得 `413`。为大文件或图像请求提高。 |

1048| `limits` | `max_request_header_bytes` | 未设置 | 设置时,超大标头返回 `431` |1079| `limits` | `max_request_header_bytes` | 未设置 | 设置时,超大标头返回 `431` |

1049| `limits` | `max_url_length` | 未设置 | 设置时,过长 URL 返回 `414` |1080| `limits` | `max_url_length` | 未设置 | 设置时,过长 URL 返回 `414` |

1050| `timeouts` | `upstream_ttfb_ms` | 120000 | 等待上游响应标头(首字节时间)的最大时间。响应体随后以无墙钟上限流式传输。适用于直接 Anthropic 上游路径;在每个其他提供商上,网关等待最多一小时以使响应开始。 |1081| `timeouts` | `upstream_ttfb_ms` | 120000 | 等待上游响应标头的最大时间(首字节时间)。响应体然后流,没有墙钟上限。适用于直接 Anthropic 上游路径;在每个其他提供商上,网关等待最多一小时以响应开始。 |

1051| `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)。 |1082| `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)。 |

1052| `rate_limits` | `device_verify.max` / `.window_seconds` | 10 / 600 | `/device` 上 `user_code` 提交的每 IP 速率限制。这是阻止某人猜测另一个开发者代码的原因。[大型推出](/docs/zh-CN/claude-apps-gateway-deploy#large-rollouts)显示提高多远。 |1083| `rate_limits` | `device_verify.max` / `.window_seconds` | 10 / 600 | `/device` 上 `user_code` 提交的每个 IP 速率限制。这是阻止某人猜测另一个开发者代码的原因。[大型推出](/docs/zh-CN/claude-apps-gateway-deploy#large-rollouts)显示提高多远。 |

1053 1084 

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

1055 1086 

1056虽然 `allow_cidrs` 为空,网关在两个地方警告,不改变它如何回答任何请求:1087当 `allow_cidrs` 为空时,网关在两个地方警告,不改变它如何回答任何请求:

1057 1088 

1058* **在启动时**:操作日志中的警告建议仅允许私有范围 `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`,如在本地开发中,警告不出现。1089* **启动时**:操作日志中的警告建议仅允许私有范围 `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`,如在本地开发中,警告不出现。

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

1060 1091 

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

1062 1093 

1063在这样的前端后面,首先设置 [`listen.trusted_proxies`](#listen),以便网关看到真实客户端地址,并保持网关和其前面的所有东西从公共互联网无法访问,无论如何。1094在这样的前端后面,首先设置 [`listen.trusted_proxies`](#listen),以便网关看到真实客户端地址,并无论如何保持网关和它前面的所有东西从公共互联网无法访问。

1064 1095 

1065<h3 id="load_test_mode">1096<h3 id="load_test_mode">

1066 `load_test_mode`1097 `load_test_mode`

1067</h3>1098</h3>

1068 1099 

1069`load_test_mode` 块让您在不调用模型提供商的情况下对网关进行负载测试。启用它时,网关像往常一样构建和签署每个提供商请求,丢弃它而不是发送它,并通过其正常响应路径流式传输罐装回复。回复是填充文本,以说明它是罐装的句子开头。1100`load_test_mode` 块让您负载测试网关而不调用模型提供商。启用时,网关像往常一样构建和签署每个提供商请求,丢弃它而不是发送它,并通过其正常响应路径流回罐装回复。回复是填充文本,以说它是罐装的句子开头。

1070 1101 

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

1072 1103 

1073下面的示例以默认值打开模式,回复为大约 750 个令牌的文本,在大约 10 秒内流式传输:1104下面的示例以默认值打开模式,大约 750 个令牌的文本的回复,在大约 10 秒内流:

1074 1105 

1075```yaml theme={null}1106```yaml theme={null}

1076load_test_mode:1107load_test_mode:

1077 enabled: true1108 enabled: true

1078 reply_tokens: 750 # 大约每个罐装回复携带多少令牌的文本1109 reply_tokens: 750 # 大约每个罐装回复携带多少令牌的文本

1079 reply_seconds: 9.5 # 流式回复需要多长时间1110 reply_seconds: 9.5 # 流回复需要多长时间

1080```1111```

1081 1112 

1082| 字段 | 必需 | 描述 |1113| 字段 | 必需 | 描述 |

1083| - | - | - |1114| - | - | - |

1084| `enabled` | 是 | `true` 打开模式。`false` 在模式关闭的情况下将您的数字保留在文件中。如果块存在而没有它,网关拒绝启动。 |1115| `enabled` | 是 | `true` 打开模式。`false` 在模式关闭的情况下将您的数字保留在文件中。如果块存在而没有它,网关拒绝启动。 |

1085| `reply_tokens` | 否 | 默认 `750`。大约每个罐装回复携带多少令牌的文本,从 1 到 100000 的整数。 |1116| `reply_tokens` | 否 | 默认 `750`。大约每个罐装回复携带多少令牌的文本,从 1 到 100000 的整数。 |

1086| `reply_seconds` | 否 | 默认 `9.5`。流式回复需要多长时间,从 0 到 600。`0` 一次发送整个回复。对非流式请求的回复总是一次返回。 |1117| `reply_seconds` | 否 | 默认 `9.5`。流回复需要多长时间,从 0 到 600。`0` 一次发送整个回复。对非流请求的回复总是一次回来。 |

1087 1118 

1088此模式下的负载测试涵盖网关、您的 Postgres 和网关前面的所有内容。它不涵盖提供商的限制、速度或网络路径。1119此模式中的负载测试涵盖网关、您的 Postgres 和网关前面的所有东西。它不涵盖提供商的限制、速度或网络路径。

1089 1120 

1090没有模型请求发送到提供商,因此副本的每个请求的 CPU 是估计值,读取低于生产,生产也加密其到提供商的流量。使用小试点对真实提供商确认副本计数。在 v2.1.283 之前,估计读取低得多。1121没有模型请求发送到提供商,因此副本的每个请求的 CPU 是估计值,读取低于生产,这也加密其到提供商的流量。使用小试点确认副本计数对真实提供商。在 v2.1.283 之前,估计读取低得多。

1091 1122 

1092启用模式时,请求可以携带 `x-load-test-user` 标头,保存最多七位数的整数。网关将每个数字计为具有请求附带的令牌的开发者的电子邮件和组的单独开发者。1123启用模式时,请求可以携带 `x-load-test-user` 标头,保留最多七位数的整数。网关将每个数字计为单独的开发者,具有其令牌随请求而来的开发者的电子邮件和组。

1093 1124 

1094为负载测试部署提供自己的空数据库,因为网关拒绝在任何开发者已经花费任何东西的数据库中启动模式。1125为负载测试部署提供其自己的空数据库,因为网关拒绝以任何开发者已经花费任何东西的数据库启动模式。

1095 1126 

1096<Warning>1127<Warning>

1097 永远不要为开发者使用的网关打开此功能。每个请求都获得罐装回复,没有模型被调用。网关在启动时记录 `load_test_mode is on` 警告,并在模式启用时使用 `load_test: true` 标记每个 `inference` [审计事件](/docs/zh-CN/claude-apps-gateway-deploy#logs)。1128 永远不要为开发者使用的网关打开此功能。每个请求获得罐装回复,没有模型被调用。网关在启动时记录 `load_test_mode is on` 警告,并在模式启用时使用 `load_test: true` 标记每个 `inference` [审计事件](/docs/zh-CN/claude-apps-gateway-deploy#logs)。

1098</Warning>1129</Warning>

1099 1130 

1100<h2 id="complete-example">1131<h2 id="complete-example">

Details

303| - | - | - |303| - | - | - |

304| 推理(提示、完成) | CLI → 网关 → 您的上游 | 仅当 Anthropic API 是配置的上游时 |304| 推理(提示、完成) | CLI → 网关 → 您的上游 | 仅当 Anthropic API 是配置的上游时 |

305| 遥测(OTLP 指标,加上 [选择加入日志和跟踪](/docs/zh-CN/claude-apps-gateway-config#telemetry)) | CLI → 网关 → 您的收集器 | 从不 |305| 遥测(OTLP 指标,加上 [选择加入日志和跟踪](/docs/zh-CN/claude-apps-gateway-config#telemetry)) | CLI → 网关 → 您的收集器 | 从不 |

306| 身份(电子邮件、组、sub) | IdP → 网关 → JWT → CLI;CLI 在 OTLP 导出上标记它。如果您打开 [`forward_user_identity`](/docs/zh-CN/claude-apps-gateway-config#per-user-identity-headers-for-a-proxy-you-run),网关也会将开发者的电子邮件和 IdP 主体作为标头发送到您的代理 | 从不 |306| 身份(电子邮件、组、sub) | IdP → 网关 → CLI;CLI 在 OTLP 导出上标记它。如果您打开 [`forward_user_identity`](/docs/zh-CN/claude-apps-gateway-config#per-user-identity-headers-for-a-proxy-you-run),网关也会将开发者的电子邮件和 IdP 主体作为标头发送到您的代理 | 从不 |

307| 托管设置 | 您的网关 YAML → CLI | 从不 |307| 托管设置 | 您的网关 YAML → CLI | 从不 |

308| 审计日志 | 网关 stderr → 您的聚合器 | 从不 |308| 审计日志 | 网关 stderr → 您的聚合器 | 从不 |

309 309 

Details

513 遥测513 遥测

514</h2>514</h2>

515 515 

516gateway 为您提供每个开发人员的使用指标,无需任何每台机器的 OTEL 配置。Claude Code 发出 OpenTelemetry (OTLP) 指标、日志和选择加入的跟踪;[监控使用](/docs/zh-CN/monitoring-usage)涵盖 CLI 报告的所有内容。在 gateway 会话上,CLI 使用经过身份验证的 IdP 身份属性 `user.id`、`user.email` 和 `user.groups` 标记每个导出,因此使用按开发人员汇总,无需 `OTEL_RESOURCE_ATTRIBUTES` 管道。516gateway 为您提供每个开发人员的使用指标,无需任何每台机器的 OTEL 配置。Claude Code 发出 OpenTelemetry (OTLP) 指标、日志和选择加入的跟踪;[监控使用](/docs/zh-CN/monitoring-usage)涵盖 CLI 报告的所有内容。在通过 `/login` 登录的会话中,CLI 使用经过身份验证的 IdP 身份属性 `user.id`、`user.email` 和 `user.groups` 标记每个导出,因此使用按开发人员汇总。

517 517 

518gateway 本身是经过身份验证的 OTLP 中继。将 [`telemetry.forward_to`](/docs/zh-CN/claude-apps-gateway-config#telemetry) 与 `listen.public_url` 一起设置,它将 OTEL 导出器设置推送到每个连接的客户端,并将其 OTLP 流量逐字转发到您列出的每个目标。每个目标独立选择加入指标、日志和跟踪,默认值仅为指标;有关每个信号字段及其敏感性权衡,请参阅 [`telemetry` 参考](/docs/zh-CN/claude-apps-gateway-config#telemetry)。gateway 不缓冲、聚合或存储遥测,因此数据落在何处完全是收集器的导出器配置。518gateway 本身是经过身份验证的 OTLP 中继。将 [`telemetry.forward_to`](/docs/zh-CN/claude-apps-gateway-config#telemetry) 与 `listen.public_url` 一起设置,它将 OTEL 导出器设置推送到每个连接的客户端,并将其 OTLP 流量逐字转发到您列出的每个目标。每个目标独立选择加入指标、日志和跟踪,默认值仅为指标;有关每个信号字段及其敏感性权衡,请参阅 [`telemetry` 参考](/docs/zh-CN/claude-apps-gateway-config#telemetry)。gateway 不缓冲、聚合或存储遥测,因此数据落在何处完全是收集器的导出器配置。

519 519 

Details

150* 目录必须是具有至少一个提交的 git 存储库150* 目录必须是具有至少一个提交的 git 存储库

151* 捆绑的存储库必须小于 100 MB。较大的存储库会回退到仅捆绑当前分支,然后回退到工作树的单个压缩快照,如果快照仍然太大则失败151* 捆绑的存储库必须小于 100 MB。较大的存储库会回退到仅捆绑当前分支,然后回退到工作树的单个压缩快照,如果快照仍然太大则失败

152* 未跟踪的文件不包括在内;对您希望云会话看到的文件运行 `git add`152* 未跟踪的文件不包括在内;对您希望云会话看到的文件运行 `git add`

153* 在 macOS、Linux 和 WSL 上,当 Claude Code 无法遵循影响哪些属性规则适用于您的文件的 git 设置时,它会拒绝上传,例如在包含的配置文件中设置的 `core.attributesFile`。[拒绝消息](/docs/zh-CN/errors#the-repository-upload-cant-follow-a-git-setting) 命名该设置和修复

153* 从捆绑创建的会话只有在您的 [GitHub 连接](#github-authentication-options) 对该存储库具有推送访问权限时,才能推送回 GitHub 远程154* 从捆绑创建的会话只有在您的 [GitHub 连接](#github-authentication-options) 对该存储库具有推送访问权限时,才能推送回 GitHub 远程

154 155 

155<h3 id="send-follow-ups-from-the-cli">156<h3 id="send-follow-ups-from-the-cli">

Details

1569| `feedback/drafts/` | 排队的 [Claude 起草的反馈](/docs/zh-CN/tools-reference#sendfeedback-tool-behavior),等待您在 `/feedback` 中审查。在 `cleanupPeriodDays` 或 30 天后扫除,以较短者为准。当队列达到其 10 个草稿的限制时,Claude Code 删除最旧的草稿以腾出空间。 |1569| `feedback/drafts/` | 排队的 [Claude 起草的反馈](/docs/zh-CN/tools-reference#sendfeedback-tool-behavior),等待您在 `/feedback` 中审查。在 `cleanupPeriodDays` 或 30 天后扫除,以较短者为准。当队列达到其 10 个草稿的限制时,Claude Code 删除最旧的草稿以腾出空间。 |

1570| `usage-data/` | `report.html` 和由 [`/insights`](/docs/zh-CN/costs#analyze-your-usage-patterns) 写入的时间戳报告副本,加上用于构建它们的缓存的每个会话分析数据 |1570| `usage-data/` | `report.html` 和由 [`/insights`](/docs/zh-CN/costs#analyze-your-usage-patterns) 写入的时间戳报告副本,加上用于构建它们的缓存的每个会话分析数据 |

1571| `skills/.trash/`、`plugins/.trash/` | [Skills](/docs/zh-CN/skills#how-synced-skills-behave) 和 [plugins](/docs/zh-CN/plugins/loading#synced-plugins),从 claude.ai 同步中删除,例如在您在 claude.ai 上关闭其中一个或停止同步后。文件保留在此处,以便您可以恢复它们,直到扫描删除它们 |1571| `skills/.trash/`、`plugins/.trash/` | [Skills](/docs/zh-CN/skills#how-synced-skills-behave) 和 [plugins](/docs/zh-CN/plugins/loading#synced-plugins),从 claude.ai 同步中删除,例如在您在 claude.ai 上关闭其中一个或停止同步后。文件保留在此处,以便您可以恢复它们,直到扫描删除它们 |

1572| `plugins/installed_plugins.set-aside.<date>.<hash>.json`、`plugins/installed_plugins.unreadable.<date>.<hash>.kept` | Claude Code 在重写 [`installed_plugins.json`](/docs/zh-CN/plugins/loading#find-plugins-on-disk) 之前制作的日期副本:它删除的安装记录,以及它无法读取的文件的内容。 |

1572| `todos/`、`statsig/`、`logs/` | 来自旧版本的旧版目录。不再写入。扫描删除其内容,然后删除空目录。 |1573| `todos/`、`statsig/`、`logs/` | 来自旧版本的旧版目录。不再写入。扫描删除其内容,然后删除空目录。 |

1573 1574 

1574`sessions/` 中的会话文件、自动内存以及 Claude Desktop 和 Cowork 记录各自遵循自己的保留规则:1575`sessions/` 中的会话文件、自动内存以及 Claude Desktop 和 Cowork 记录各自遵循自己的保留规则:


1715| `~/.claude/policy-limits.json` | 无。自动刷新。 |1716| `~/.claude/policy-limits.json` | 无。自动刷新。 |

1716| `~/.claude/tasks/` | 恢复的会话会拾取的任务列表 |1717| `~/.claude/tasks/` | 恢复的会话会拾取的任务列表 |

1717| `~/.claude/skills/.trash/`、`~/.claude/plugins/.trash/` | 恢复 [synced skills](/docs/zh-CN/skills#how-synced-skills-behave) 和 [synced plugins](/docs/zh-CN/plugins/loading#synced-plugins) 的机会,Claude Code 已删除 |1718| `~/.claude/skills/.trash/`、`~/.claude/plugins/.trash/` | 恢复 [synced skills](/docs/zh-CN/skills#how-synced-skills-behave) 和 [synced plugins](/docs/zh-CN/plugins/loading#synced-plugins) 的机会,Claude Code 已删除 |

1719| `~/.claude/plugins/installed_plugins.set-aside.<date>.<hash>.json`、`~/.claude/plugins/installed_plugins.unreadable.<date>.<hash>.kept` | Claude Code 删除的 plugin 安装记录副本或无法读取的文件副本。没有任何内容读取它们 |

1718| `~/.claude/debug/`、`~/.claude/plans/`、`~/.claude/session-env/`、`~/.claude/shell-snapshots/`、`~/.claude/backups/` | 没有面向用户的内容 |1720| `~/.claude/debug/`、`~/.claude/plans/`、`~/.claude/session-env/`、`~/.claude/shell-snapshots/`、`~/.claude/backups/` | 没有面向用户的内容 |

1719| `~/.claude/todos/`、`~/.claude/statsig/`、`~/.claude/logs/`、`~/.claude/image-cache/` | 无。旧版目录不由当前版本写入。 |1721| `~/.claude/todos/`、`~/.claude/statsig/`、`~/.claude/logs/`、`~/.claude/image-cache/` | 无。旧版目录不由当前版本写入。 |

1720 1722 

claude-projects.md +25 −11

Details

80您在 [claude.ai/code](https://claude.ai/code)、桌面应用的 Code 标签页或 Claude 移动应用中创建和使用项目,支持 [iOS](https://apps.apple.com/us/app/claude-by-anthropic/id6473753684) 和 [Android](https://play.google.com/store/apps/details?id=com.anthropic.claude)。在浏览器和桌面应用中,有两种方式启动项目:80您在 [claude.ai/code](https://claude.ai/code)、桌面应用的 Code 标签页或 Claude 移动应用中创建和使用项目,支持 [iOS](https://apps.apple.com/us/app/claude-by-anthropic/id6473753684) 和 [Android](https://play.google.com/store/apps/details?id=com.anthropic.claude)。在浏览器和桌面应用中,有两种方式启动项目:

81 81 

82* **从头开始**,当您知道希望 Claude 运行的工作流时:打开 **New project** 对话框并命名它。[从头开始启动新项目](#start-a-new-project-from-scratch)会逐步讲解对话框。82* **从头开始**,当您知道希望 Claude 运行的工作流时:打开 **New project** 对话框并命名它。[从头开始启动新项目](#start-a-new-project-from-scratch)会逐步讲解对话框。

83* **从已经在进行工作的云会话**:从该会话的菜单中选择 **Continue as a project**,Claude 从会话正在做的事情中提议项目的设置。请参阅[从现有云会话启动](#start-from-an-existing-cloud-session)。83* **从已经在进行工作的云会话**:从该会话的菜单中选择 **Continue as project**,Claude 从会话正在做的事情中提议项目的设置。请参阅[从现有云会话启动](#start-from-an-existing-cloud-session)。

84 84 

85无论哪种方式,首先[检查先决条件](#check-the-prerequisites)。85无论哪种方式,首先[检查先决条件](#check-the-prerequisites)。

86 86 


131 从现有云会话启动131 从现有云会话启动

132</h3>132</h3>

133 133 

134如果您已经有一个云会话在进行属于项目的工作,请打开侧边栏中会话的菜单并选择 **Continue as a project** 或 **Move to project**:134如果您已经有一个云会话在进行属于项目的工作,请打开侧边栏中会话的菜单并选择 **Continue as project** 或 **Move to project**:

135 135 

136* **Continue as a project** 创建一个以会话命名的新项目并打开它。Claude 读取会话并在对话中发布 **Setup recommendations** 供您确认。原始会话保留在您的会话列表中,如果它在轮的中间,它会继续运行,因此如果您不想两者同时工作,请自己停止它。如果您使用可能出现在云会话消息框上方的 **Set up project** 横幅,结果是相同的,除了会话的运行轮在项目打开后停止。136* **Continue as project** 创建一个以会话命名的新项目并打开它。Claude 读取会话并在对话中发布 **Setup recommendations** 供您确认。原始会话保留在您的会话列表中,如果它在轮的中间,它会继续运行,因此如果您不想两者同时工作,请自己停止它。如果您使用可能出现在云会话消息框上方的 **Set up project** 横幅,结果是相同的,除了会话的运行轮在项目打开后停止。

137* **Move to project** 将会话的工作带入现有项目。它在该项目的对话中发布一条消息,要求 Claude 读取会话并从中断的地方继续,新工作在项目自己的线程中继续。原始会话保留在您的会话列表中,未改变。137* **Move to project** 将会话的工作带入现有项目。它在该项目的对话中发布一条消息,要求 Claude 读取会话并从中断的地方继续,新工作在项目自己的线程中继续。原始会话保留在您的会话列表中,未改变。

138 138 

139本地会话没有这些选项。要在项目中继续其工作,请在项目对话中描述工作,或推送其分支,将该代码库添加到项目,并在任务中命名分支。

140 

139<h3 id="set-up-github-access">141<h3 id="set-up-github-access">

140 设置 GitHub 访问142 设置 GitHub 访问

141</h3>143</h3>


275 277 

276当线程的模型支持时,线程在[自动模式](/docs/zh-CN/permission-modes#eliminate-prompts-with-auto-mode)中运行,因此大多数工具调用无需询问你即可运行。当线程需要你的批准时,提示在该线程内,线程等待你在那里回答。在项目对话中告诉 Claude 继续不会到达它。278当线程的模型支持时,线程在[自动模式](/docs/zh-CN/permission-modes#eliminate-prompts-with-auto-mode)中运行,因此大多数工具调用无需询问你即可运行。当线程需要你的批准时,提示在该线程内,线程等待你在那里回答。在项目对话中告诉 Claude 继续不会到达它。

277 279 

278每个批准涵盖该提示,或如果你选择更广泛的选项,则涵盖该线程的其余部分。要让每个线程运行某些命令而不询问,或阻止某些命令,请将[权限规则](/docs/zh-CN/permissions)添加到存储库的`.claude/settings.json`。云线程仅在具有一个存储库的项目中应用它们;请参阅[线程从你的存储库中获取什么](#what-threads-pick-up-from-your-repositories)。280每个批准涵盖该提示,或如果你选择更广泛的选项,则涵盖该线程的其余部分。要让每个线程运行某些命令而不询问,或阻止某些命令,请将[权限规则](/docs/zh-CN/permissions)添加到存储库的`.claude/settings.json`。云线程仅在具有一个存储库的项目中应用它们;请参阅[线程从你的存储库中获取什么](#what-threads-pick-up-from-your-repositories)。在具有多个存储库的项目中,没有存储库的权限规则到达云线程,因此你依赖自动模式和你在每个线程内给出的批准。

279 281 

280<h3 id="run-a-thread-on-your-own-computer">282<h3 id="run-a-thread-on-your-own-computer">

281 在你自己的计算机上运行线程283 在你自己的计算机上运行线程


283 285 

284当任务需要只有你的计算机才有的东西,例如本地数据库、设备模拟器或 VPN 后面的 API 时,要求 Claude 在你的计算机上而不是在云中运行该任务的线程。当你在项目对话中要求时,线程是你机器上文件夹中的 Claude Code 会话,通过[远程控制](/docs/zh-CN/remote-control)连接。项目的其他线程继续在云中运行。与云线程相比,在你的计算机上运行的线程:286当任务需要只有你的计算机才有的东西,例如本地数据库、设备模拟器或 VPN 后面的 API 时,要求 Claude 在你的计算机上而不是在云中运行该任务的线程。当你在项目对话中要求时,线程是你机器上文件夹中的 Claude Code 会话,通过[远程控制](/docs/zh-CN/remote-control)连接。项目的其他线程继续在云中运行。与云线程相比,在你的计算机上运行的线程:

285 287 

286* 使用该机器上的文件、工具、MCP 服务器和 Claude Code 设置,而不是项目的云环境288* 使用该机器上的文件、工具、MCP 服务器和 Claude Code 设置,包括其 hooks 和权限规则,而不是项目的云环境

287* 从项目的说明开始,但不加载其内存文件289* 从项目的说明开始,但不加载其内存文件

288* 仅在该计算机处于唤醒状态且远程控制打开时运行290* 仅在该计算机处于唤醒状态且远程控制打开时运行

289 291 


292 在具有任务需要的文件夹的计算机上,通过以下两种方式之一通过远程控制使其可用。两者都需要该计算机上的 Claude Code v2.1.280 或更高版本。294 在具有任务需要的文件夹的计算机上,通过以下两种方式之一通过远程控制使其可用。两者都需要该计算机上的 Claude Code v2.1.280 或更高版本。

293 295 

294 * **在 Claude 桌面应用中**:打开**设置 > Claude Code**,打开**从你的手机和 claude.ai 使用此计算机**,并将文件夹添加到该开关下的列表中。当应用打开时,线程可以在此计算机上运行。296 * **在 Claude 桌面应用中**:打开**设置 > Claude Code**,打开**从你的手机和 claude.ai 使用此计算机**,并将文件夹添加到该开关下的列表中。当应用打开时,线程可以在此计算机上运行。

295 * **在终端中**:在文件夹中运行`claude remote-control`并让其保持运行。297 * **在终端中**:在文件夹中运行`claude remote-control`并让其保持运行。在 git 存储库中,添加`--spawn worktree`以为那里的每个线程提供其自己的 [worktree](/docs/zh-CN/worktrees),而不是文件夹本身。

296 </Step>298 </Step>

297 299 

298 <Step title="使用本地工作要求任务">300 <Step title="使用本地工作要求任务">


300 </Step>302 </Step>

301 303 

302 <Step title="在卡片上允许它">304 <Step title="在卡片上允许它">

303 Claude 会回答一张**允许 Claude 在你的设备上的文件夹中工作**卡片。如果你连接了多个,请选择文件夹。然后点击**允许一次**。305 Claude 会回答一张**允许 Claude 在你的设备上的文件夹中工作**卡片。如果你连接了多个,请选择文件夹。两个线程在一个文件夹中同时工作可能会覆盖彼此的更改,因此如果文件夹是 git 存储库,你可以在文件夹的选项中打开**Worktree** 以为此线程提供其自己的 worktree 而不是。然后点击**允许一次**。

304 </Step>306 </Step>

305</Steps>307</Steps>

306 308 


320| :- | :- | :- |322| :- | :- | :- |

321| 项目记忆 | Claude 关于项目的笔记,例如要求、决定和陷阱,存储为文件。每个云线程在启动时读取索引文件 `MEMORY.md`,并在需要时打开其他文件 | 在项目对话或任何云线程中要求 Claude 记住要求、决定或陷阱,或忘记一个。在 **Project settings > Memory** 中读取、编辑和删除文件 |323| 项目记忆 | Claude 关于项目的笔记,例如要求、决定和陷阱,存储为文件。每个云线程在启动时读取索引文件 `MEMORY.md`,并在需要时打开其他文件 | 在项目对话或任何云线程中要求 Claude 记住要求、决定或陷阱,或忘记一个。在 **Project settings > Memory** 中读取、编辑和删除文件 |

322| 项目说明 | 发送到每个新线程和项目对话中 Claude 的文本,最多 16,000 个字符。[编写项目说明](#write-project-instructions)涵盖了要放入其中的内容 | **Project settings > Memory > Project instructions**,或要求 Claude 更改说明 |324| 项目说明 | 发送到每个新线程和项目对话中 Claude 的文本,最多 16,000 个字符。[编写项目说明](#write-project-instructions)涵盖了要放入其中的内容 | **Project settings > Memory > Project instructions**,或要求 Claude 更改说明 |

323| 代码库、文件和环境 | 每个云线程克隆的代码库、每个线程可以在 `/mnt/project-files` 下读取的文件夹和文件,以及线程运行的云环境 | 代码库和环境在 **Project settings > Environment** 中,或在对话中要求 Claude 将代码库添加到项目。文件和文件夹来自 **Overview** 中 **Library** 标签页上的 **Add** |325| 代码库、文件和环境 | 每个云线程克隆的代码库、每个线程可以在 `/mnt/project-files` 下读取的文件夹和文件,以及线程运行的云环境 | 代码库和环境在 **Project settings > Environment** 中,或在对话中要求 Claude 将代码库添加到项目。[文件和文件夹](#add-files-and-folders)来自 **Overview** 中 **Library** 标签页上的 **Add** |

324 326 

325**Project settings > Memory** 在 **Auto memory** 下列出这些文件,因为 Claude 在项目中工作时自己写入它们。它们与 Claude Code 在您机器上保留的[自动记忆](/docs/zh-CN/memory)分开,即使两者都使用 `MEMORY.md` 索引。项目记忆也与项目代码库中的 `CLAUDE.md` 文件分开。每个云线程在启动时仍然从其克隆中读取那些 `CLAUDE.md` 文件,因此将关于代码库的说明放在其 `CLAUDE.md` 中,将关于项目的笔记放在项目记忆中。327**Project settings > Memory** 在 **Auto memory** 下列出这些文件,因为 Claude 在项目中工作时自己写入它们。它们与 Claude Code 在您机器上保留的[自动记忆](/docs/zh-CN/memory)分开,即使两者都使用 `MEMORY.md` 索引。项目记忆也与项目代码库中的 `CLAUDE.md` 文件分开。每个云线程在启动时仍然从其克隆中读取那些 `CLAUDE.md` 文件,因此将关于代码库的说明放在其 `CLAUDE.md` 中,将关于项目的笔记放在项目记忆中。

326 328 


364 366 

365对于跨越许多代码库的项目,例如一个具有服务器、网络、移动和桌面代码的功能,添加几乎每个任务涉及的一个或两个代码库,并在[项目说明](#write-project-instructions)中命名其他代码库,以便 Claude 知道其余代码在哪里。云线程然后启动小,仅为需要它们的任务拉入其他代码库。367对于跨越许多代码库的项目,例如一个具有服务器、网络、移动和桌面代码的功能,添加几乎每个任务涉及的一个或两个代码库,并在[项目说明](#write-project-instructions)中命名其他代码库,以便 Claude 知道其余代码在哪里。云线程然后启动小,仅为需要它们的任务拉入其他代码库。

366 368 

369<h3 id="add-files-and-folders">

370 添加文件和文件夹

371</h3>

372 

373在 **New project** 对话框的 **Context** 字段中添加您想要线程读取的文件和文件夹,或之后使用 **Overview** 中 **Library** 标签页上的 **Add**。以下限制适用于您添加的内容:

374 

375* **Library 标签页**:一次选择最多 100 个文件和 2 GB,单个文件最多 480 MB。

376* **New project 对话框**:超过 30 MB 的文件被跳过,因此在创建项目后从 **Library** 标签页添加较大的文件。

377* **文件夹**:当您从任一位置添加文件夹时,项目接收其前 100 个文件的副本,最多 200 MB,不包括任何超过 30 MB 的文件、隐藏文件或 `node_modules`。项目最多可以容纳 10 个文件夹和 Google Drive 文件夹的组合,单个文件不计入该限制。

378* **上传后的更改**:上传是副本,因此您之后在计算机上所做的更改不会到达项目,直到您再次上传文件并在询问现有名称时选择 **Replace**。

379 

367<h3 id="what-threads-pick-up-from-your-repositories">380<h3 id="what-threads-pick-up-from-your-repositories">

368 线程从您的代码库中获取什么381 线程从您的代码库中获取什么

369</h3>382</h3>


472几个 Claude Code 功能让多个会话同时工作,因此并行运行工作本身不是项目的目的。在项目中,Claude 启动和跟踪会话而不是您,每个都从相同的说明开始。这是每个相邻功能如何连接到项目的方式:485几个 Claude Code 功能让多个会话同时工作,因此并行运行工作本身不是项目的目的。在项目中,Claude 启动和跟踪会话而不是您,每个都从相同的说明开始。这是每个相邻功能如何连接到项目的方式:

473 486 

474* **Claude Tag**:[Claude Tag](https://claude.com/docs/claude-tag/overview) 是您团队 Slack 频道中的 Claude,在 Team 和 Enterprise 计划上。频道中的任何人都可以给它工作,频道中的每个人都看到并引导它,它使用管理员为该频道设置的连接。项目是您的:您是唯一给它工作或看到其线程的人,它使用您自己的 GitHub 访问和连接器,它在 Pro 和 Max 上。[Claude Tag 与 Cowork 和 Claude Code 的不同之处](https://claude.com/docs/claude-tag/concepts/how-it-works#how-claude-tag-differs-from-cowork-and-claude-code)有并排比较。487* **Claude Tag**:[Claude Tag](https://claude.com/docs/claude-tag/overview) 是您团队 Slack 频道中的 Claude,在 Team 和 Enterprise 计划上。频道中的任何人都可以给它工作,频道中的每个人都看到并引导它,它使用管理员为该频道设置的连接。项目是您的:您是唯一给它工作或看到其线程的人,它使用您自己的 GitHub 访问和连接器,它在 Pro 和 Max 上。[Claude Tag 与 Cowork 和 Claude Code 的不同之处](https://claude.com/docs/claude-tag/concepts/how-it-works#how-claude-tag-differs-from-cowork-and-claude-code)有并排比较。

475* **云会话**:每个线程都是一个[云会话](/docs/zh-CN/claude-code-on-the-web),除非您要求 Claude 在您的机器上运行它。无论哪种方式,Claude 启动和跟踪它而不是您。您自己启动的云会话可以通过[**Continue as a project** 或 **Move to project**](#start-from-an-existing-cloud-session)成为项目或提供一个。488* **云会话**:每个线程都是一个[云会话](/docs/zh-CN/claude-code-on-the-web),除非您要求 Claude 在您的机器上运行它。无论哪种方式,Claude 启动和跟踪它而不是您。您自己启动的云会话可以通过[**Continue as project** 或 **Move to project**](#start-from-an-existing-cloud-session)成为项目或提供一个。

476* **例程**:当您在项目中要求计划工作时,Claude 创建一个[例程](/docs/zh-CN/routines),作为该项目中的线程运行,并出现在其 **Routines** 标签页上。您在项目外创建的例程继续自己工作。489* **例程**:当您在项目中要求计划工作时,Claude 创建一个[例程](/docs/zh-CN/routines),作为该项目中的线程运行,并出现在其 **Routines** 标签页上。您在项目外创建的例程继续自己工作。

477* **Remote Control**:[Remote Control](/docs/zh-CN/remote-control) 连接 claude.ai 到在您的机器上运行的 Claude Code 会话。当您在项目中要求 Claude 在您的计算机上运行线程时,项目[使用 Remote Control 来执行](#run-a-thread-on-your-own-computer)。490* **Remote Control**:[Remote Control](/docs/zh-CN/remote-control) 连接 claude.ai 到在您的机器上运行的 Claude Code 会话。当您在项目中要求 Claude 在您的计算机上运行线程时,项目[使用 Remote Control 来执行](#run-a-thread-on-your-own-computer)。

478* **本地会话和代理视图**:您在终端、IDE 或桌面应用的本地环境中启动的会话不能添加到项目中。[代理视图](/docs/zh-CN/agent-view)是用于跟踪多个本地会话并排的屏幕,您仍然启动每个会话并自己给它分配任务。491* **本地会话和代理视图**:您在终端、IDE 或桌面应用的本地环境中启动的会话不能添加到项目中。[代理视图](/docs/zh-CN/agent-view)是用于跟踪多个本地会话并排的屏幕,您仍然启动每个会话并自己给它分配任务。

479* **Worktrees**:一个[worktree](/docs/zh-CN/worktrees)为每个本地会话提供其自己的代码库工作副本,因此您机器上的并行会话不会相互覆盖。云线程不需要它们:每个线程将其代码库克隆到其自己的云沙箱中,并在其自己的分支上工作。492* **Worktrees**:一个[worktree](/docs/zh-CN/worktrees)为每个本地会话提供其自己的代码库工作副本,因此您机器上的并行会话不会相互覆盖。云线程不需要它们:每个线程将其代码库克隆到其自己的云沙箱中,并在其自己的分支上工作。

480* **代理团队**:一个[代理团队](/docs/zh-CN/agent-teams)是一个会话,为单个任务启动队友会话,在您的机器上或在云会话内,并以该任务结束。493* **代理团队**:一个[代理团队](/docs/zh-CN/agent-teams)是一个会话,为单个任务启动队友会话,在您的机器上或在云会话内,并以该任务结束。

494* **Subagents**:一个[subagent](/docs/zh-CN/sub-agents)在一个会话内运行,在其自己的上下文窗口中执行一个辅助任务,并向该会话返回摘要。项目的线程是 Claude 启动的整个会话,向项目对话报告,一个线程仍然可以为其自己的辅助任务使用 subagents。

481* **claude.ai 聊天和 Cowork 中的 Projects**:[早期的 Projects 体验](https://support.claude.com/en/articles/9517075-what-are-projects),对对话和参考文件进行分组,没有线程或协调员。这些项目继续按照今天的方式工作,直到重新设计的体验到达它们。495* **claude.ai 聊天和 Cowork 中的 Projects**:[早期的 Projects 体验](https://support.claude.com/en/articles/9517075-what-are-projects),对对话和参考文件进行分组,没有线程或协调员。这些项目继续按照今天的方式工作,直到重新设计的体验到达它们。

482 496 

483[并行运行代理](/docs/zh-CN/agents)并排比较这些选项。497[并行运行代理](/docs/zh-CN/agents)并排比较这些选项。


486 限制500 限制

487</h2>501</h2>

488 502 

489* Projects 在 claude.ai/code、桌面应用和 Claude 移动应用中可用,不在终端 CLI 或通过 Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry 中。CLI 的 [`claude project`](/docs/zh-CN/cli-reference) 命令(它管理目录的本地 Claude Code 状态)是无关的。503* Projects 在 claude.ai/code、桌面应用和 Claude 移动应用中可用,不在终端 CLI、VS Code 扩展或 JetBrains 插件中,也不通过 Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry。CLI 的 [`claude project`](/docs/zh-CN/cli-reference) 命令(它管理目录的本地 Claude Code 状态)是无关的。

490* 项目线程是[云会话](/docs/zh-CN/claude-code-on-the-web),或通过[远程控制](/docs/zh-CN/remote-control)在您自己的机器上的会话,两种情况下 Anthropic 都是模型提供者。[安全](/docs/zh-CN/security)和[数据使用](/docs/zh-CN/data-usage)涵盖了云会话如何隔离以及保留什么,[连接和安全](/docs/zh-CN/remote-control#connection-and-security)涵盖了您机器上的线程如何连接以及存储什么。504* 项目线程是[云会话](/docs/zh-CN/claude-code-on-the-web),或通过[远程控制](/docs/zh-CN/remote-control)在您自己的机器上的会话,两种情况下 Anthropic 都是模型提供者。[安全](/docs/zh-CN/security)和[数据使用](/docs/zh-CN/data-usage)涵盖了云会话如何隔离以及保留什么,[连接和安全](/docs/zh-CN/remote-control#connection-and-security)涵盖了您机器上的线程如何连接以及存储什么。

491* 您不能将自己在机器上启动的会话添加到项目中。项目仅通过[在您自己的计算机上通过远程控制运行线程](#run-a-thread-on-your-own-computer)到达您的机器,该部分列出了它需要什么。505* 您不能将自己在机器上启动的会话添加到项目中。项目仅通过[在您自己的计算机上通过远程控制运行线程](#run-a-thread-on-your-own-computer)到达您的机器,该部分列出了它需要什么。

492* 云线程的沙箱在轮之间暂停,并在线程继续时恢复。如果沙箱无法恢复,线程从新克隆继续,因此未提交的更改可能会丢失。在长任务上,要求 Claude 提交和推送进行中的工作。506* 云线程的沙箱在轮之间暂停,并在线程继续时恢复。如果沙箱无法恢复,线程从新克隆继续,因此未提交的更改可能会丢失。在长任务上,要求 Claude 提交和推送进行中的工作。

493* 项目属于一个用户。您不能与另一个用户共享项目或其线程,线程记录没有其他云会话具有的共享选项。在测试版期间没有项目的组织级控制。507* 项目属于一个用户。您不能与另一个用户共享项目或其线程,线程记录没有其他云会话具有的共享选项。在测试版期间没有项目的组织级控制。

494* 线程属于启动它的一个项目。您不能将线程移动或复制到另一个项目,或将其移出以独立存在。[**Move to project**](#start-from-an-existing-cloud-session)仅以另一种方式进行:它将云会话的工作带入项目。508* 线程属于启动它的一个项目。您不能将线程移动或复制到另一个项目,或将其移出以独立存在。[**Move to project**](#start-from-an-existing-cloud-session)仅以另一种方式进行:它将云会话的工作带入项目。您不能将两个项目合并为一个。

495 509 

496<h2 id="troubleshooting">510<h2 id="troubleshooting">

497 故障排除511 故障排除

Details

4 4 

5# 扫描代码库中的漏洞5# 扫描代码库中的漏洞

6 6 

7> 安装 Claude Security 插件以在 Claude Code 会话中扫描代码库中的漏洞,并将发现的问题转化为您可以审查和应用的补丁。7> 安装 Claude Security plugin 以在 Claude Code 会话中扫描代码库中的漏洞,并将发现的问题转化为您可以审查和应用的补丁。

8 8 

9Claude Security 插件在 Claude Code 会话中运行代码库的多代理漏洞扫描。一个 Claude 代理团队映射您的架构、构建威胁模型、搜寻漏洞,并在编写报告前独立审查每个发现。使用该插件扫描整个存储库或[仅扫描一组更改](#scan-only-your-changes),例如分支的差异、拉取请求的差异或单个提交,然后将您选择的发现转化为您自己审查和应用的补丁。9Claude Security plugin 在 Claude Code 会话中对您的代码库运行多代理漏洞扫描。一个 Claude 代理团队映射您的架构、构建威胁模型、搜寻漏洞,并在编写报告前独立审查每个发现。使用该插件扫描整个存储库或[仅扫描一组更改](#scan-only-your-changes),例如分支的差异、拉取请求的差异或单个提交,然后将您选择的发现转化为您自己审查和应用的补丁。

10 10 

11该插件在您的会话中本地运行,使用您在 Claude Code 中有权访问的任何模型,每次扫描都会计入您的计划使用限额。如果您想要一个监控您的存储库的托管服务,或想要在 [Claude Mythos 5](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) 产品,该产品在企业计划中提供。该插件可以访问托管产品无法访问的代码,例如托管在 GitLab 或 Bitbucket 上的存储库,或在不允许入站连接的网络上的存储库。

12 12 

13该插件也不同于 Claude Code 中已有的审查工具:[security guidance 插件](/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 

15<h2 id="prerequisites">15<h2 id="prerequisites">

16 前置条件16 前置条件


18 18 

19要运行该插件,您需要:19要运行该插件,您需要:

20 20 

21* 付费计划,用于扫描用来编排其代理的[动态工作流](/docs/zh-CN/workflows)。在 Pro 上,从 `/config` 中的"动态工作流"行启用它们。21* 付费计划、Anthropic API 访问权限或[第三方提供商](#models-and-providers),用于扫描使用的[动态工作流](/docs/zh-CN/workflows)来编排其代理。在 Pro 版本上,从 `/config` 中的"Dynamic workflows"行启用它们。

22* Python 3.9 或更高版本在您的 `PATH` 上可用,名称为 `python3`。使用 `python3 --version` 检查。该插件的工具仅使用 Python 标准库,因此不会安装任何内容。22* Python 3.9 或更高版本,在您的 `PATH` 中以 `python3` 的形式可用。使用 `python3 --version` 检查。该插件的工具仅使用 Python 标准库,因此无需安装任何内容。

23* Linux、macOS 或 Windows。23* Linux、macOS 或 Windows。

24* Git,用于更改扫描和将发现转化为补丁;这些任务不支持其他版本控制系统。完整扫描在任何目录中都有效,无论是否有版本控制。24* Git,用于变更扫描和将发现结果转换为补丁;这些任务不支持其他版本控制系统。完整扫描可在任何目录中工作,无论是否有版本控制。

25 

26<h2 id="models-and-providers">

27 模型和提供商

28</h2>

29 

30扫描在您的 Claude Code 会话中运行。该插件本身不进行模型调用,因此没有单独的 API 密钥或提供商设置需要配置。

31 

32* **模型**:搜索漏洞、验证发现、编写和审查补丁的代理在[您会话的模型](/docs/zh-CN/sub-agents#choose-a-model)上运行。要更改它,请在开始扫描前在您的会话中运行[`/model`](/docs/zh-CN/model-config#setting-your-model)。一些支持步骤,例如映射存储库,改为使用[`sonnet` 别名](/docs/zh-CN/model-config#model-aliases)。

33* **提供商**:扫描在付费计划上运行,具有 Anthropic API 访问权限,或在[第三方提供商](/docs/zh-CN/third-party-integrations)上运行,例如 [Amazon Bedrock](/docs/zh-CN/amazon-bedrock)、[Google Cloud 的 Agent Platform](/docs/zh-CN/google-vertex-ai) 或 [Microsoft Foundry](/docs/zh-CN/microsoft-foundry)。

34 

35在第三方提供商上,`sonnet` 别名可能解析为与 Anthropic API 上不同的版本。如果您的账户无法使用该版本,请[固定您的模型版本](/docs/zh-CN/model-config#pin-models-for-third-party-deployments),包括 `ANTHROPIC_DEFAULT_SONNET_MODEL`。

36 

37[自动模型回退](/docs/zh-CN/model-config#automatic-model-fallback)重新运行被模型的安全防护标记的请求。在 Amazon Bedrock、Google Cloud 的 Agent Platform 和 Microsoft Foundry 上,根据[您的部署设置方式](/docs/zh-CN/model-config#enable-fallback-on-bedrock-agent-platform-and-foundry),请求可能以拒绝消息结束。

25 38 

26<h2 id="install-the-plugin">39<h2 id="install-the-plugin">

27 安装插件40 安装插件


156 169 

157**`/claude-security` 菜单打开时出现 Python 警告。** 该插件需要 `python3` 3.9 或更高版本在您的 `PATH` 上。当它根本找不到 `python3` 时,菜单警告 Claude Security 在安装一个之前不会工作;当您的 `PATH` 上的第一个 `python3` 较旧时,警告会命名它找到的版本。安装 Python 3,或在您的 `PATH` 上放置一个较新的 `python3`,然后启动一个新会话。170**`/claude-security` 菜单打开时出现 Python 警告。** 该插件需要 `python3` 3.9 或更高版本在您的 `PATH` 上。当它根本找不到 `python3` 时,菜单警告 Claude Security 在安装一个之前不会工作;当您的 `PATH` 上的第一个 `python3` 较旧时,警告会命名它找到的版本。安装 Python 3,或在您的 `PATH` 上放置一个较新的 `python3`,然后启动一个新会话。

158 171 

159**使用 Fable 模型扫描时,您可能会看到"safeguards flagged this message"通知。** 该消息命名模型,例如"Fable 5.1's safeguards flagged this message"。Fable 的网络安全安全分类器标记某些请求,Claude Code 通过[自动模型回退](/docs/zh-CN/model-config#automatic-model-fallback)在 Opus 模型上重新运行标记的请求。这是预期的,扫描应该仍然成功完成。172**使用 Fable 模型扫描时,您可能会看到"safeguards flagged this message"通知。** 该消息命名您正在运行的模型。Fable 的网络安全安全分类器标记某些请求,Claude Code 通过[自动模型回退](/docs/zh-CN/model-config#automatic-model-fallback)在 Opus 模型上重新运行标记的请求。这是预期的。当请求重新运行时,扫描应该仍然成功完成。

160 173 

161<h2 id="related-resources">174<h2 id="related-resources">

162 相关资源175 相关资源

Details

22| `claude -c -p "query"` | 通过 SDK 继续 | `claude -c -p "Check for type errors"` |22| `claude -c -p "query"` | 通过 SDK 继续 | `claude -c -p "Check for type errors"` |

23| `claude -r "<session>" "query"` | 按 ID 或名称恢复会话 | `claude -r "auth-refactor" "Finish this PR"` |23| `claude -r "<session>" "query"` | 按 ID 或名称恢复会话 | `claude -r "auth-refactor" "Finish this PR"` |

24| `claude update` | 更新到最新版本 | `claude update` |24| `claude update` | 更新到最新版本 | `claude update` |

25| `claude gateway` | 启动自托管 [Claude apps gateway](/docs/zh-CN/claude-apps-gateway) 服务器,供在 Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry 上部署 SSO 和策略在 Claude Code 前面的管理员使用。需要 `--config` 指向 [`gateway.yaml`](/docs/zh-CN/claude-apps-gateway-config)。在 Claude Code v2.1.195 及更高版本中可用。 | `claude gateway --config gateway.yaml` |25| `claude gateway` | 启动自托管 [Claude apps gateway](/docs/zh-CN/claude-apps-gateway) 服务器,供在 Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry 上部署 SSO 和策略在 Claude Code 前面的管理员使用。需要 `--config` 指向 [`gateway.yaml`](/docs/zh-CN/claude-apps-gateway-config)。 | `claude gateway --config gateway.yaml` |

26| `claude install [version]` | 安装或重新安装本机二进制文件。接受版本号如 `2.1.118`、`stable` 或 `latest`。请参阅 [安装特定版本](/docs/zh-CN/setup#install-a-specific-version) | `claude install stable` |26| `claude install [version]` | 安装或重新安装本机二进制文件。接受版本号如 `2.1.118`、`stable` 或 `latest`。请参阅 [安装特定版本](/docs/zh-CN/setup#install-a-specific-version) | `claude install stable` |

27| `claude auth login` | 登录您的 Anthropic 账户。使用 `--email` 预填充您的电子邮件地址,使用 `--sso` 强制 SSO 身份验证,使用 `--console` 使用 Anthropic Console 登录以进行 API 使用计费而不是 Claude 订阅 | `claude auth login --console` |27| `claude auth login` | 登录您的 Anthropic 账户。使用 `--email` 预填充您的电子邮件地址,使用 `--sso` 强制 SSO 身份验证,使用 `--console` 使用 Anthropic Console 登录以进行 API 使用计费而不是 Claude 订阅 | `claude auth login --console` |

28| `claude auth logout` | 从您的 Anthropic 账户登出 | `claude auth logout` |28| `claude auth logout` | 从您的 Anthropic 账户登出 | `claude auth logout` |

Details

566 * platform.claude.com566 * platform.claude.com

567 * code.claude.com567 * code.claude.com

568 * claude.ai568 * claude.ai

569 * claude.com

570 * support.claude.com

571 * anthropic.com

572 * [www.anthropic.com](http://www.anthropic.com)

569 </Accordion>573 </Accordion>

570 574 

571 <Accordion title="版本控制">575 <Accordion title="版本控制">


596 * hub.docker.com600 * hub.docker.com

597 * [www.docker.com](http://www.docker.com)601 * [www.docker.com](http://www.docker.com)

598 * production.cloudflare.docker.com602 * production.cloudflare.docker.com

603 * production.cloudfront.docker.com

599 * download.docker.com604 * download.docker.com

600 * gcr.io605 * gcr.io

601 * \*.gcr.io606 * \*.gcr.io

commands.md +7 −4

Details

56| `/add-dir <path>` | 添加一个工作目录以在当前会话期间进行文件访问。输入部分路径以查看匹配的目录建议;按 `Tab` 接受一个。大多数 `.claude/` 配置[不会从添加的目录中被发现](/docs/zh-CN/permissions#additional-directories-grant-file-access-not-configuration)。你无法添加大多数[网络路径](/docs/zh-CN/errors#working-directory-is-a-network-path),例如 `\\server\share`。成功添加后,你的 [`DirectoryAdded` hooks](/docs/zh-CN/hooks#directoryadded) 会运行。当你在 Claude 响应时运行它时,Claude Code 会要求你立即确认目录,一旦你确认,Claude 在同一轮中的下一个工具调用就可以访问它。在 v2.1.234 之前,Claude Code 会将命令排队直到轮次完成 |56| `/add-dir <path>` | 添加一个工作目录以在当前会话期间进行文件访问。输入部分路径以查看匹配的目录建议;按 `Tab` 接受一个。大多数 `.claude/` 配置[不会从添加的目录中被发现](/docs/zh-CN/permissions#additional-directories-grant-file-access-not-configuration)。你无法添加大多数[网络路径](/docs/zh-CN/errors#working-directory-is-a-network-path),例如 `\\server\share`。成功添加后,你的 [`DirectoryAdded` hooks](/docs/zh-CN/hooks#directoryadded) 会运行。当你在 Claude 响应时运行它时,Claude Code 会要求你立即确认目录,一旦你确认,Claude 在同一轮中的下一个工具调用就可以访问它。在 v2.1.234 之前,Claude Code 会将命令排队直到轮次完成 |

57| `/advisor [model\|off]` | 启用或禁用[顾问工具](/docs/zh-CN/advisor),它在任务期间的关键时刻咨询第二个模型以获得指导。接受 `fable`、`opus`、`sonnet` 或完整的模型 ID。`fable` 需要 [Fable 访问权限](/docs/zh-CN/advisor#choose-an-advisor-model)。没有参数时,打开一个选择器。在没有交互式终端的会话中,或通过 [Remote Control](/docs/zh-CN/remote-control#limitations),将模型或 `off` 作为参数传递;在那里没有参数时,命令将当前顾问打印为文本。这些形式需要 Claude Code v2.1.260 或更高版本 |57| `/advisor [model\|off]` | 启用或禁用[顾问工具](/docs/zh-CN/advisor),它在任务期间的关键时刻咨询第二个模型以获得指导。接受 `fable`、`opus`、`sonnet` 或完整的模型 ID。`fable` 需要 [Fable 访问权限](/docs/zh-CN/advisor#choose-an-advisor-model)。没有参数时,打开一个选择器。在没有交互式终端的会话中,或通过 [Remote Control](/docs/zh-CN/remote-control#limitations),将模型或 `off` 作为参数传递;在那里没有参数时,命令将当前顾问打印为文本。这些形式需要 Claude Code v2.1.260 或更高版本 |

58| `/agents` | 从 v2.1.198 开始,运行 `/agents` 会打印一个提醒,要求你要求 Claude 创建或管理[子代理](/docs/zh-CN/sub-agents),或直接编辑 `.claude/agents/` 或 `~/.claude/agents/`。在 v2.1.197 及更早版本上,打开一个交互式界面来创建和管理子代理配置 |58| `/agents` | 从 v2.1.198 开始,运行 `/agents` 会打印一个提醒,要求你要求 Claude 创建或管理[子代理](/docs/zh-CN/sub-agents),或直接编辑 `.claude/agents/` 或 `~/.claude/agents/`。在 v2.1.197 及更早版本上,打开一个交互式界面来创建和管理子代理配置 |

59| `/artifact-capabilities` | **[Skill](/docs/zh-CN/skills#bundled-skills)。** 加载已发布[工件](/docs/zh-CN/artifacts)可以使用的运行时功能的参考,例如[调用你的连接器](/docs/zh-CN/artifacts#pull-live-data-with-mcp-connectors)或[提供文件下载](/docs/zh-CN/artifacts#offer-a-file-download),包括你的账户拥有的功能。Claude 通常在构建使用其中一个的页面之前自己加载它。在[工件](/docs/zh-CN/artifacts#availability)可用的地方可用 |

60| `/artifact-diagramming` | **[Skill](/docs/zh-CN/skills#bundled-skills)。** 为 Claude 在[工件](/docs/zh-CN/artifacts)中遵循的图表加载指导:何时图表有帮助、要绘制什么,以及如何编写在浅色和深色主题中保持清晰的内联 SVG。需要 Claude Code v2.1.221 或更高版本 |

59| `/artifacts` | 列出你拥有或与你共享的[工件](/docs/zh-CN/artifacts#find-an-artifact-again),然后将其附加到会话、在浏览器中打开或复制其链接。在[工件](/docs/zh-CN/artifacts#availability)可用的地方可用。需要 Claude Code v2.1.208 或更高版本;使用 `Enter` 附加需要 v2.1.216 |61| `/artifacts` | 列出你拥有或与你共享的[工件](/docs/zh-CN/artifacts#find-an-artifact-again),然后将其附加到会话、在浏览器中打开或复制其链接。在[工件](/docs/zh-CN/artifacts#availability)可用的地方可用。需要 Claude Code v2.1.208 或更高版本;使用 `Enter` 附加需要 v2.1.216 |

60| `/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 或更高版本 |62| `/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 或更高版本 |

61| `/autocompact [auto\|<tokens>]` | 设置自动压缩窗口:在 Claude Code 自动压缩之前上下文窗口有多满。传递一个大小,例如 `500k`,或 `auto` 以返回为你的模型调整的窗口。Claude Code 将该值保存到用户设置并将其应用于当前会话。有关接受的值和覆盖它的内容,请参阅[设置自动压缩窗口](/docs/zh-CN/model-config#set-the-auto-compact-window)。没有参数时,打开一个显示当前窗口的对话框。需要 Claude Code v2.1.221 或更高版本 |63| `/autocompact [auto\|<tokens>]` | 设置自动压缩窗口:在 Claude Code 自动压缩之前上下文窗口有多满。传递一个大小,例如 `500k`,或 `auto` 以返回为你的模型调整的窗口。Claude Code 将该值保存到用户设置并将其应用于当前会话。有关接受的值和覆盖它的内容,请参阅[设置自动压缩窗口](/docs/zh-CN/model-config#set-the-auto-compact-window)。没有参数时,打开一个显示当前窗口的对话框。需要 Claude Code v2.1.221 或更高版本 |


67| `/bug [report]` | 报告一个错误或分享你的对话。你选择要包含多少会话历史记录,并在发送任何内容之前在同意屏幕上确认。当你在第一方连接上登录到 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` 的别名 |69| `/bug [report]` | 报告一个错误或分享你的对话。你选择要包含多少会话历史记录,并在发送任何内容之前在同意屏幕上确认。当你在第一方连接上登录到 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` 的别名 |

68| `/cd <path>` | 将此会话移动到新的工作目录,保持对话。输入部分路径以查看匹配的目录建议;按 `Tab` 接受一个。建议需要 Claude Code v2.1.206 或更高版本。有关 Claude Code 在移动时立即应用的内容,以及 `/cd` 与 `/add-dir` 的区别,请参阅[将会话移动到另一个目录](/docs/zh-CN/permissions#move-the-session-to-another-directory) |70| `/cd <path>` | 将此会话移动到新的工作目录,保持对话。输入部分路径以查看匹配的目录建议;按 `Tab` 接受一个。建议需要 Claude Code v2.1.206 或更高版本。有关 Claude Code 在移动时立即应用的内容,以及 `/cd` 与 `/add-dir` 的区别,请参阅[将会话移动到另一个目录](/docs/zh-CN/permissions#move-the-session-to-another-directory) |

69| `/chrome` | 配置 [Claude in Chrome](/docs/zh-CN/chrome) 设置 |71| `/chrome` | 配置 [Claude in Chrome](/docs/zh-CN/chrome) 设置 |

70| `/claude-api [migrate\|upgrade\|managed-agents-onboard\|prompt-audit\|cost-optimize\|build-eval\|hillclimb]` | **[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` 时也会自动激活。运行 `migrate` 以将现有 Claude API 代码更新到更新的模型。运行 `upgrade` 以跨主要版本移动你的项目的 Anthropic SDK 依赖项,目前是 Python `anthropic` 包从 0.x 到 1.x。运行 `managed-agents-onboard` 以获得创建新 Managed Agent 的演练。运行 `prompt-audit` 以标记为旧模型编写的指令在你的提示词、skill 和工具描述中,并提议修复作为差异。运行 `cost-optimize` 以分析你的项目的 Claude API 支出去向,并提议从选项(如 prompt caching、修剪不需要的输入和输出令牌、批处理、工作量和模型选择)中节省,一次一个更改。运行 `build-eval` 以为你的 Claude 驱动的应用构建一个 eval 集,运行 `hillclimb` 以针对现有 eval 迭代改进应用。`prompt-audit` 子命令需要 Claude Code v2.1.221 或更高版本,`upgrade` 需要 v2.1.236 或更高版本,`cost-optimize` 需要 v2.1.247 或更高版本,`build-eval` 和 `hillclimb` 需要 v2.1.259 或更高版本 |72| `/claude-api [migrate\|upgrade\|managed-agents-onboard\|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) |

73| `/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)时 |

71| `/clear [name]` | 使用空上下文启动新对话。传递一个名称以在 `/resume` 选择器中标记上一个对话。要在继续同一对话的同时释放上下文,请改用 `/compact`。使用 `/resume` 恢复上一个对话,或在同一 Claude Code 进程中,从[倒带菜单的上一个会话条目](/docs/zh-CN/checkpointing#rewind-past-a-cleared-conversation)恢复它。别名:`/reset`、`/new` |74| `/clear [name]` | 使用空上下文启动新对话。传递一个名称以在 `/resume` 选择器中标记上一个对话。要在继续同一对话的同时释放上下文,请改用 `/compact`。使用 `/resume` 恢复上一个对话,或在同一 Claude Code 进程中,从[倒带菜单的上一个会话条目](/docs/zh-CN/checkpointing#rewind-past-a-cleared-conversation)恢复它。别名:`/reset`、`/new` |

72| `/code-review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [pr#\|branch\|path]` | **[Skill](/docs/zh-CN/skills#bundled-skills)。** 审查当前差异,或你传递的 PR 号、分支或路径,以查找正确性错误。根据你的模型和工作量级别,审查也涵盖清理机会。传递 `--fix` 以应用发现,`--comment` 以在 GitHub PR 或 GitLab 合并请求上发布它们,或 `ultra` 以运行深度[云审查](/docs/zh-CN/ultrareview)。发布到 GitLab 合并请求需要 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 或更高版本。有关工作量级别、目标和它与 `/simplify` 的关系,请参阅[本地审查差异](/docs/zh-CN/code-review#review-a-diff-locally)。别名:`/review` |75| `/code-review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [pr#\|branch\|path]` | **[Skill](/docs/zh-CN/skills#bundled-skills)。** 审查当前差异,或你传递的 PR 号、分支或路径,以查找正确性错误。根据你的模型和工作量级别,审查也涵盖清理机会。传递 `--fix` 以应用发现,`--comment` 以在 GitHub PR 或 GitLab 合并请求上发布它们,或 `ultra` 以运行深度[云审查](/docs/zh-CN/ultrareview)。发布到 GitLab 合并请求需要 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 或更高版本。有关工作量级别、目标和它与 `/simplify` 的关系,请参阅[本地审查差异](/docs/zh-CN/code-review#review-a-diff-locally)。别名:`/review` |

73| `/color [color\|default]` | 为当前会话设置提示栏颜色。可用颜色:`red`、`blue`、`green`、`yellow`、`purple`、`orange`、`pink`、`cyan`。使用 `default` 重置,或运行不带参数以选择随机颜色。当 [Remote Control](/docs/zh-CN/remote-control) 连接时,颜色同步到 claude.ai/code。也可在非交互模式 (`-p`) 中使用;需要 Claude Code v2.1.205 或更高版本 |76| `/color [color\|default]` | 为当前会话设置提示栏颜色。可用颜色:`red`、`blue`、`green`、`yellow`、`purple`、`orange`、`pink`、`cyan`。使用 `default` 重置,或运行不带参数以选择随机颜色。当 [Remote Control](/docs/zh-CN/remote-control) 连接时,颜色同步到 claude.ai/code。也可在非交互模式 (`-p`) 中使用;需要 Claude Code v2.1.205 或更高版本 |


84| `/design-sync [hint]` | **[Skill](/docs/zh-CN/skills#bundled-skills)。** 转换你的 repo 的 React 设计系统并将其上传到 [Claude Design](https://claude.ai/design),以便它生成的设计使用你的真实组件。可选地命名设计系统,例如 `/design-sync Acme DS`。首次同步验证每个组件,在大型 repo 上可能需要几个小时。在 Anthropic API 上可用。它需要 claude.ai,CLI 在 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 或 Claude Platform on AWS 上不联系,或通过 [Claude apps gateway](/docs/zh-CN/claude-apps-gateway#availability-and-limitations),所以命令在那里不可用 |87| `/design-sync [hint]` | **[Skill](/docs/zh-CN/skills#bundled-skills)。** 转换你的 repo 的 React 设计系统并将其上传到 [Claude Design](https://claude.ai/design),以便它生成的设计使用你的真实组件。可选地命名设计系统,例如 `/design-sync Acme DS`。首次同步验证每个组件,在大型 repo 上可能需要几个小时。在 Anthropic API 上可用。它需要 claude.ai,CLI 在 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 或 Claude Platform on AWS 上不联系,或通过 [Claude apps gateway](/docs/zh-CN/claude-apps-gateway#availability-and-limitations),所以命令在那里不可用 |

85| `/desktop` | 在 Claude Code Desktop 应用中继续当前会话。需要 macOS 或 x64 Windows 和 Claude 订阅。别名:`/app` |88| `/desktop` | 在 Claude Code Desktop 应用中继续当前会话。需要 macOS 或 x64 Windows 和 Claude 订阅。别名:`/app` |

86| `/diff` | 审查你的工作树中的更改,包括 Claude 到目前为止所做的编辑。请参阅[使用 /diff 审查更改](/docs/zh-CN/interactive-mode#review-changes-with-%2Fdiff) |89| `/diff` | 审查你的工作树中的更改,包括 Claude 到目前为止所做的编辑。请参阅[使用 /diff 审查更改](/docs/zh-CN/interactive-mode#review-changes-with-%2Fdiff) |

87| `/doctor [prompt-audit [path]]` | **[Skill](/docs/zh-CN/skills#bundled-skills)。** 运行一个设置检查,诊断问题并可以修复它们。检查安装健康状况,包括重复或遗留安装、`PATH` 问题和无法解析的设置文件。查找未使用的 skill、MCP 服务器和插件与其上下文成本,标记缓慢的 [hooks](/docs/zh-CN/hooks),并检查你的[发布频道](/docs/zh-CN/setup#configure-release-channel)上是否有更新版本。根据检入的本地 `CLAUDE.md` 文件进行重复数据删除,通过削减 Claude 可以从代码库派生的内容来修剪检入的 [`CLAUDE.md`](/docs/zh-CN/memory#my-claude-md-is-too-large) 文件,并将保留的始终加载的指导迁移到[skill](/docs/zh-CN/skills) 和按需加载的嵌套 `CLAUDE.md` 文件中。还提供使[自动模式](/docs/zh-CN/permissions#permission-modes)成为你的默认值和[预先批准](/docs/zh-CN/permissions)经常被拒绝的只读命令。首先报告发现并在更改任何内容之前要求确认。从终端,`claude doctor` 打印只读安装诊断而不启动会话。别名:`/checkup`。运行 `/doctor prompt-audit` 以让 Claude [审计你的 `CLAUDE.md` 文件、skill 和其他配置](/docs/zh-CN/memory#write-effective-instructions)以查找过时或冲突的指令,而不是运行检查。`prompt-audit` 子命令需要 Claude Code v2.1.283 或更高版本。`CLAUDE.md` 修剪检查需要 Claude Code v2.1.206 或更高版本。在 v2.1.205 之前,`/doctor` 打开一个只读诊断屏幕,按 `f` 将报告发送给 Claude |90| `/doctor [prompt-audit [path]]` | **[Skill](/docs/zh-CN/skills#bundled-skills)。** 运行一个设置检查,诊断问题并可以修复它们。检查安装健康状况,包括重复或遗留安装、`PATH` 问题和无法解析的设置文件。查找未使用的 skill、MCP 服务器和插件与其上下文成本,标记缓慢的 [hooks](/docs/zh-CN/hooks),并检查你的[发布频道](/docs/zh-CN/setup#configure-release-channel)上是否有更新版本。根据检入的本地 `CLAUDE.md` 文件进行重复数据删除,通过削减 Claude 可以从代码库派生的内容来修剪检入的 [`CLAUDE.md`](/docs/zh-CN/memory#my-claude-md-is-too-large) 文件,并将保留的始终加载的指导迁移到[skill](/docs/zh-CN/skills) 和按需加载的嵌套 `CLAUDE.md` 文件中。还提供使[自动模式](/docs/zh-CN/permissions#permission-modes)成为你的默认值和[预先批准](/docs/zh-CN/permissions)经常被拒绝的只读命令。首先报告发现并在更改任何内容之前要求确认。从终端,`claude doctor` 打印只读安装诊断而不启动会话。别名:`/checkup`。运行 `/doctor prompt-audit` 以让 Claude [审计你的 `CLAUDE.md` 文件、skill 和其他配置](/docs/zh-CN/memory#audit-your-instruction-files)以查找过时或冲突的指令,而不是运行检查。`prompt-audit` 子命令需要 Claude Code v2.1.283 或更高版本。`CLAUDE.md` 修剪检查需要 Claude Code v2.1.206 或更高版本。在 v2.1.205 之前,`/doctor` 打开一个只读诊断屏幕,按 `f` 将报告发送给 Claude |

88| `/effort [level\|auto\|status\|ultracode [on\|off]]` | 设置[工作量级别](/docs/zh-CN/model-config#adjust-effort-level):`low` 到 `xhigh`、`max` 或 `auto`;`status` 打印它。`ultracode` 或 `ultracode on` 在当前级别为会话打开 [ultracode](/docs/zh-CN/workflows#let-claude-decide-with-ultracode),`ultracode off` 关闭它;[`ultracode`](/docs/zh-CN/settings-reference#ultracode) 键持久化。`max` 仅限会话。使用 `on` 和 `off` 参数以及保持当前级别需要 Claude Code v2.1.284 或更高版本。在 v2.1.284 之前,`/effort ultracode` 将会话设置为 `xhigh`,`/effort ultracode off` 失败并显示 `Invalid argument`。在 Claude 响应时运行它,一旦你确认[缓存警告](/docs/zh-CN/prompt-caching#changing-effort-level)(如果 Claude Code 显示一个),Claude Code 会将新级别应用于该轮中的下一个请求。在 v2.1.242 之前,Claude Code 从它从 Anthropic 获取的功能标志决定是在轮中期运行命令还是将其排队直到轮次完成,并始终在不[获取功能标志](/docs/zh-CN/env-vars#features-that-need-feature-flag-fetching)的会话中排队它,例如在[第三方提供商](/docs/zh-CN/third-party-integrations)上。在 `-p` 中工作 |91| `/effort [level\|auto\|status\|ultracode [on\|off]]` | 设置[工作量级别](/docs/zh-CN/model-config#adjust-effort-level):`low` 到 `xhigh`、`max` 或 `auto`;`status` 打印它。`ultracode` 或 `ultracode on` 在当前级别为会话打开 [ultracode](/docs/zh-CN/workflows#let-claude-decide-with-ultracode),`ultracode off` 关闭它;[`ultracode`](/docs/zh-CN/settings-reference#ultracode) 键持久化。`max` 仅限会话。使用 `on` 和 `off` 参数以及保持当前级别需要 Claude Code v2.1.284 或更高版本。在 v2.1.284 之前,`/effort ultracode` 将会话设置为 `xhigh`,`/effort ultracode off` 失败并显示 `Invalid argument`。在 Claude 响应时运行它,一旦你确认[缓存警告](/docs/zh-CN/prompt-caching#changing-effort-level)(如果 Claude Code 显示一个),Claude Code 会将新级别应用于该轮中的下一个请求。在 v2.1.242 之前,Claude Code 从它从 Anthropic 获取的功能标志决定是在轮中期运行命令还是将其排队直到轮次完成,并始终在不[获取功能标志](/docs/zh-CN/env-vars#features-that-need-feature-flag-fetching)的会话中排队它,例如在[第三方提供商](/docs/zh-CN/third-party-integrations)上。在 `-p` 中工作 |

89| `/exit` | 退出 CLI。在附加的[后台会话](/docs/zh-CN/agent-view#attach-to-a-session)中,这会分离,会话继续运行。别名:`/quit` |92| `/exit` | 退出 CLI。在附加的[后台会话](/docs/zh-CN/agent-view#attach-to-a-session)中,这会分离,会话继续运行。别名:`/quit` |

90| `/export [filename]` | 将当前对话导出为纯文本。使用文件名,直接写入该文件。没有,打开一个对话框以复制到剪贴板或保存到文件 |93| `/export [filename]` | 将当前对话导出为纯文本。使用文件名,直接写入该文件。没有,打开一个对话框以复制到剪贴板或保存到文件 |

91| `/fast [on\|off]` | 切换[快速模式](/docs/zh-CN/fast-mode)打开或关闭。在 Claude 响应时运行它,Claude Code 切换快速模式而不等待轮次结束,尽管运行的轮次以其原始速度完成。在 v2.1.242 之前,Claude Code 从它从 Anthropic 获取的功能标志决定是在轮中期运行命令还是将其排队直到轮次完成,并始终在不[获取功能标志](/docs/zh-CN/env-vars#features-that-need-feature-flag-fetching)的会话中排队它。非交互模式中的可用性受限于 `-p`;请参阅[切换快速模式](/docs/zh-CN/fast-mode#toggle-fast-mode)。需要 Claude Code v2.1.205 或更高版本 |94| `/fast [on\|off]` | 切换[快速模式](/docs/zh-CN/fast-mode)打开或关闭。在 Claude 响应时运行它,Claude Code 切换快速模式而不等待轮次结束,尽管运行的轮次以其原始速度完成。在 v2.1.242 之前,Claude Code 从它从 Anthropic 获取的功能标志决定是在轮中期运行命令还是将其排队直到轮次完成,并始终在不[获取功能标志](/docs/zh-CN/env-vars#features-that-need-feature-flag-fetching)的会话中排队它。非交互模式中的可用性受限于 `-p`;请参阅[切换快速模式](/docs/zh-CN/fast-mode#toggle-fast-mode)。需要 Claude Code v2.1.205 或更高版本 |

92| `/feedback [report]` | 发送关于 Claude Code 的产品反馈。打开与 [`/bug`](#all-commands) 相同的对话框,具有相同的同意步骤、发送规则和轮中期行为。在具有 [Claude 起草的反馈](/docs/zh-CN/tools-reference#sendfeedback-tool-behavior)的会话中,不带参数的 `/feedback` 打开草稿队列,你可以在其中审查、编辑、发送或丢弃 Claude 排队的草稿;队列包括一个选项来在对话框中写入新报告。使用参数,对于 `/bug` 总是,对话框直接打开 |95| `/feedback [report]` | 发送关于 Claude Code 的产品反馈。打开与 [`/bug`](#all-commands) 相同的对话框,具有相同的同意步骤、发送规则和轮中期行为。在具有 [Claude 起草的反馈](/docs/zh-CN/tools-reference#sendfeedback-tool-behavior)的会话中,不带参数的 `/feedback` 打开草稿队列,你可以在其中审查、编辑、发送或丢弃 Claude 排队的草稿;队列包括一个选项来在对话框中写入新报告。使用参数,对于 `/bug` 总是,对话框直接打开 |

93| `/fewer-permission-prompts` | **[Skill](/docs/zh-CN/skills#bundled-skills)。** 扫描你的记录以查找常见的只读 Bash 和 MCP 工具调用,然后将优先级允许列表添加到项目 `.claude/settings.json` 以减少权限提示 |96| `/fewer-permission-prompts` | **[Skill](/docs/zh-CN/skills#bundled-skills)。** 扫描你的记录以查找常见的只读 Bash 和 MCP 工具调用,然后将优先级允许列表添加到项目 `.claude/settings.json` 以减少权限提示 |

94| `/focus` | 切换焦点视图,仅显示你的最后一个提示、一行工具调用摘要和最终响应。工具调用摘要也计算在轮中启动的子代理数量,并将完成的后台任务通知折叠为单个计数。选择在会话中持久化;在设置中设置 [`viewMode`](/docs/zh-CN/settings-reference#viewmode) 以覆盖它。仅在[全屏渲染](/docs/zh-CN/fullscreen)中可用。[VS Code 扩展](/docs/zh-CN/vs-code#use-the-prompt-box)提供其自己的焦点视图作为命令菜单切换,存储为扩展设置,独立于 `viewMode` |97| `/focus` | 切换焦点视图,仅显示你的最后一个提示、一行工具调用摘要和最终响应。工具调用摘要也计算在轮中启动的子代理数量,并将完成的后台任务通知折叠为单个计数。选择在会话中持久化;在设置中设置 [`viewMode`](/docs/zh-CN/settings-reference#viewmode) 以覆盖它。仅在[全屏渲染](/docs/zh-CN/fullscreen)中可用。从 [Remote Control](/docs/zh-CN/remote-control) 客户端,运行 `/focus [on\|off]` 以仅为当前会话打开或关闭焦点视图,而不更改你的保存选择;这需要 Claude Code v2.1.281 或更高版本。[VS Code 扩展](/docs/zh-CN/vs-code#use-the-prompt-box)提供其自己的焦点视图作为命令菜单切换,存储为扩展设置,独立于 `viewMode` |

95| `/fork [prompt]` | [将当前对话复制](/docs/zh-CN/agent-view#copy-the-session-with-%2Ffork)到新的后台会话并继续在这里工作。传递一个提示词,副本立即开始处理它;没有它,它在代理视图中等待其第一个提示词。除非副本[就地编辑](/docs/zh-CN/agent-view#how-file-edits-are-isolated),Claude Code 指示它在进行代码更改之前创建自己的 worktree;隔离指令需要 Claude Code v2.1.221 或更高版本。要将侧面任务交给一个子代理,其结果返回到这个对话,请使用 `/subtask`;要自己切换到副本,请使用 `/branch`。需要 Claude Code v2.1.212 或更高版本;在 v2.1.161 到 v2.1.211,以及每当[代理视图关闭](/docs/zh-CN/agent-view#turn-off-agent-view)时,`/fork` 启动一个[分叉子代理](/docs/zh-CN/sub-agents#fork-the-current-conversation) |98| `/fork [prompt]` | [将当前对话复制](/docs/zh-CN/agent-view#copy-the-session-with-%2Ffork)到新的后台会话并继续在这里工作。传递一个提示词,副本立即开始处理它;没有它,它在代理视图中等待其第一个提示词。除非副本[就地编辑](/docs/zh-CN/agent-view#how-file-edits-are-isolated),Claude Code 指示它在进行代码更改之前创建自己的 worktree;隔离指令需要 Claude Code v2.1.221 或更高版本。要将侧面任务交给一个子代理,其结果返回到这个对话,请使用 `/subtask`;要自己切换到副本,请使用 `/branch`。需要 Claude Code v2.1.212 或更高版本;在 v2.1.161 到 v2.1.211,以及每当[代理视图关闭](/docs/zh-CN/agent-view#turn-off-agent-view)时,`/fork` 启动一个[分叉子代理](/docs/zh-CN/sub-agents#fork-the-current-conversation) |

96| `/goal [condition\|clear]` | 设置一个[目标](/docs/zh-CN/goal):Claude 跨轮继续工作直到条件满足或目标[因另一个原因清除](/docs/zh-CN/goal#how-evaluation-works)。没有参数时,显示当前或最近实现的目标。`clear`、`stop`、`off`、`reset`、`none` 或 `cancel` 提前移除活跃目标 |99| `/goal [condition\|clear]` | 设置一个[目标](/docs/zh-CN/goal):Claude 跨轮继续工作直到条件满足或目标[因另一个原因清除](/docs/zh-CN/goal#how-evaluation-works)。没有参数时,显示当前或最近实现的目标。`clear`、`stop`、`off`、`reset`、`none` 或 `cancel` 提前移除活跃目标 |

97| `/heapdump` | 写入 JavaScript 堆快照和内存细目到 `~/Desktop`,或 Linux 上没有 Desktop 文件夹的主目录,用于诊断高内存使用。报告内存问题时仅附加 `-diagnostics.json` 文件;`.heapsnapshot` 包含你的完整对话和凭证,所以不要共享它。[从命令菜单隐藏](#how-the-command-menu-matches-what-you-type);完整输入它。请参阅[如何处理输出](/docs/zh-CN/troubleshooting#high-cpu-or-memory-usage) |100| `/heapdump` | 写入 JavaScript 堆快照和内存细目到 `~/Desktop`,或 Linux 上没有 Desktop 文件夹的主目录,用于诊断高内存使用。报告内存问题时仅附加 `-diagnostics.json` 文件;`.heapsnapshot` 包含你的完整对话和凭证,所以不要共享它。[从命令菜单隐藏](#how-the-command-menu-matches-what-you-type);完整输入它。请参阅[如何处理输出](/docs/zh-CN/troubleshooting#high-cpu-or-memory-usage) |


121| `/pr-comments [PR]` | 在 v2.1.91 中移除。直接要求 Claude 查看拉取请求评论。在早期版本上,从 GitHub 拉取请求获取和显示评论;自动检测当前分支的 PR,或传递 PR URL 或号码。需要 `gh` CLI |124| `/pr-comments [PR]` | 在 v2.1.91 中移除。直接要求 Claude 查看拉取请求评论。在早期版本上,从 GitHub 拉取请求获取和显示评论;自动检测当前分支的 PR,或传递 PR URL 或号码。需要 `gh` CLI |

122| `/privacy-settings` | 查看和更新你的隐私设置。仅对 Pro 和 Max 计划订阅者可用 |125| `/privacy-settings` | 查看和更新你的隐私设置。仅对 Pro 和 Max 计划订阅者可用 |

123| `/radio` | 在浏览器中打开 Claude FM lo-fi 电台。当没有浏览器可用时打印流 URL |126| `/radio` | 在浏览器中打开 Claude FM lo-fi 电台。当没有浏览器可用时打印流 URL |

124| `/rate-limit-options` | 显示在 claude.ai 使用限制阻止请求时继续工作的方法:等待并[在限制重置时自动继续](/docs/zh-CN/interactive-mode#wait-for-a-usage-limit-to-reset)、添加[使用额度](/docs/zh-CN/costs#add-usage-credits-to-your-subscription)或升级你的计划。Claude Code 也可以在你在自己的终端上达到限制时自己打开此菜单。请参阅[关闭自动继续](/docs/zh-CN/interactive-mode#turn-automatic-continue-off)。需要 claude.ai 订阅。不出现在命令菜单中;完整输入它。等待和继续行需要 Claude Code v2.1.234 或更高版本 |127| `/rate-limit-options` | 显示在 claude.ai 使用限制阻止请求时继续工作的方法:等待并[在限制重置时自动继续](/docs/zh-CN/interactive-mode#wait-for-a-usage-limit-to-reset)、添加[使用额度](/docs/zh-CN/costs#add-usage-credits-to-your-subscription)或升级你的计划。Claude Code 也可以在你在自己的终端上达到限制时自己打开此菜单。请参阅[关闭自动继续](/docs/zh-CN/interactive-mode#turn-automatic-continue-off)。需要 claude.ai 订阅。等待和继续行需要 Claude Code v2.1.234 或更高版本 |

125| `/recap` | 按需生成当前会话的一行摘要。请参阅[会话摘要](/docs/zh-CN/interactive-mode#session-recap)以获得你离开后出现的自动摘要 |128| `/recap` | 按需生成当前会话的一行摘要。请参阅[会话摘要](/docs/zh-CN/interactive-mode#session-recap)以获得你离开后出现的自动摘要 |

126| `/release-notes` | 在交互式版本选择器中查看更改日志。选择特定版本以查看其发布说明,或选择显示所有版本。说明出现在你的记录中而不进入 Claude 看到的对话 |129| `/release-notes` | 在交互式版本选择器中查看更改日志。选择特定版本以查看其发布说明,或选择显示所有版本。说明出现在你的记录中而不进入 Claude 看到的对话 |

127| `/reload-plugins [--force]` | 重新加载所有活跃[插件](/docs/zh-CN/plugins/overview)以应用待处理更改而不重新启动。报告每个重新加载组件的计数并标记任何加载错误。当重新加载会改变加载哪些 MCP 工具并使提示词缓存失效时,命令警告并跳过,除非你传递 `--force`。也可在非交互模式 (`-p`)、Agent SDK 和桌面应用中使用,其中它仅在直接输入到会话的输入上运行,不应用插件 MCP 服务器更改;需要 Claude Code v2.1.260 或更高版本。请参阅[应用插件更改而不重新启动](/docs/zh-CN/plugins/cli-reference#reload-plugins) |130| `/reload-plugins [--force]` | 重新加载所有活跃[插件](/docs/zh-CN/plugins/overview)以应用待处理更改而不重新启动。报告每个重新加载组件的计数并标记任何加载错误。当重新加载会改变加载哪些 MCP 工具并使提示词缓存失效时,命令警告并跳过,除非你传递 `--force`。也可在非交互模式 (`-p`)、Agent SDK 和桌面应用中使用,其中它仅在直接输入到会话的输入上运行,不应用插件 MCP 服务器更改;需要 Claude Code v2.1.260 或更高版本。请参阅[应用插件更改而不重新启动](/docs/zh-CN/plugins/cli-reference#reload-plugins) |

costs.md +2 −0

Details

96 96 

97运行 [`/insights`](/docs/zh-CN/commands#all-commands) 以获取关于您如何工作而不是您使用了多少令牌的报告。它分析此机器上的最近会话,并编写一份 HTML 报告,涵盖您处理的内容、摩擦点(例如误解的请求或有缺陷的代码)以及有关更有效地使用 Claude Code 的建议。单次运行分析最多 200 个它之前未见过的会话,并跳过非常短的会话。当会话被遗漏时,报告标题显示分析的计数,括号中显示总数,例如 `200 sessions (412 total)`。97运行 [`/insights`](/docs/zh-CN/commands#all-commands) 以获取关于您如何工作而不是您使用了多少令牌的报告。它分析此机器上的最近会话,并编写一份 HTML 报告,涵盖您处理的内容、摩擦点(例如误解的请求或有缺陷的代码)以及有关更有效地使用 Claude Code 的建议。单次运行分析最多 200 个它之前未见过的会话,并跳过非常短的会话。当会话被遗漏时,报告标题显示分析的计数,括号中显示总数,例如 `200 sessions (412 total)`。

98 98 

99当[自动模式](/docs/zh-CN/permission-modes#eliminate-prompts-with-auto-mode)对会话可用且您最近的会话大多在没有它的情况下运行时,报告还可以包括自动模式在这些会话中可以处理多少权限提示的估计。

100 

99Claude Code 将最新报告写入 `~/.claude/usage-data/report.html`,并在同一目录中保存每次运行的时间戳副本,因此早期报告不会被覆盖。Claude Code 按与其余会话数据相同的计划删除报告:在启动时,它删除早于 [`cleanupPeriodDays`](/docs/zh-CN/claude-directory#cleaned-up-automatically) 的文件,默认为 30 天。101Claude Code 将最新报告写入 `~/.claude/usage-data/report.html`,并在同一目录中保存每次运行的时间戳副本,因此早期报告不会被覆盖。Claude Code 按与其余会话数据相同的计划删除报告:在启动时,它删除早于 [`cleanupPeriodDays`](/docs/zh-CN/claude-directory#cleaned-up-automatically) 的文件,默认为 30 天。

100 102 

101您可以在任何计划和任何提供商上运行 `/insights`。分析通过与您的常规会话相同的提供商和账户运行,令牌计入您的计划或 API 使用情况。不包括来自其他设备和 claude.ai 的会话。103您可以在任何计划和任何提供商上运行 `/insights`。分析通过与您的常规会话相同的提供商和账户运行,令牌计入您的计划或 API 使用情况。不包括来自其他设备和 claude.ai 的会话。

desktop.md +6 −0

Details

834* **Remote Control**:为你的组织启用或禁用[远程控制](/docs/zh-CN/remote-control)834* **Remote Control**:为你的组织启用或禁用[远程控制](/docs/zh-CN/remote-control)

835* **禁用绕过权限模式**:防止你的组织中的用户启用绕过权限模式835* **禁用绕过权限模式**:防止你的组织中的用户启用绕过权限模式

836 836 

837<Note>

838 Cowork 下的 OpenTelemetry 表单位于管理员控制台的[数据和隐私设置](https://claude.ai/admin-settings/data-privacy-controls)中的**监控**下,仅适用于 Cowork 会话。在此机器上的 Cowork 会话中,桌面应用将该收集器作为 `OTEL_*` 环境变量传递给 Claude Code,因此该表单生效,尽管该会话中的 Claude Code [从不获取管理员控制台设置](#managed-settings)。

839 

840 要从 Code 选项卡会话导出遥测,请在 Claude Code 托管设置的 `env` 块中设置 `CLAUDE_CODE_ENABLE_TELEMETRY` 和 `OTEL_*` 变量,如[监控的管理员配置](/docs/zh-CN/monitoring-usage#administrator-configuration)中所示。本地、云和 SSH 会话各自从不同来源读取[托管设置](#managed-settings)。有关云会话可以到达的主机,请参阅[网络访问](/docs/zh-CN/cloud-environments#network-access)。有关 Code 选项卡会话报告的 `service.name`,请参阅[服务信息](/docs/zh-CN/monitoring-usage#service-information)。

841</Note>

842 

837<h3 id="managed-settings">843<h3 id="managed-settings">

838 托管设置844 托管设置

839</h3>845</h3>

env-vars.md +1 −1

Details

110 110 

111某些行为同时具有环境变量和专用设置键,Claude Code 读取哪一个的顺序因键而异。对于 `ANTHROPIC_MODEL` 和 `CLAUDE_CODE_AUTO_CONNECT_IDE`,Claude Code 首先读取变量,仅当变量未设置时才使用 `model` 或 `autoConnectIde` 设置。对于您正在设置的对,请检查下面变量的行和 [设置参考](/docs/zh-CN/settings-reference) 上的键条目。111某些行为同时具有环境变量和专用设置键,Claude Code 读取哪一个的顺序因键而异。对于 `ANTHROPIC_MODEL` 和 `CLAUDE_CODE_AUTO_CONNECT_IDE`,Claude Code 首先读取变量,仅当变量未设置时才使用 `model` 或 `autoConnectIde` 设置。对于您正在设置的对,请检查下面变量的行和 [设置参考](/docs/zh-CN/settings-reference) 上的键条目。

112 112 

113当同一变量在您的 shell 和设置文件 `env` 块中都设置时,设置文件值适用。Claude Code 将每个 `env` 条目写入进程环境,替换从 shell 继承的值。[`env` 设置](/docs/zh-CN/settings-reference#when-claude-code-applies-env-values) 说明何时应用它们。少数变量是特殊情况;[`env` 设置](/docs/zh-CN/settings-reference#env) 列出了例外。113当同一变量在您的 shell 和设置文件 `env` 块中都设置时,在大多数会话中设置文件值适用。Claude Code 将每个 `env` 条目写入进程环境,替换从 shell 继承的值。[`env` 值如何与您的 shell 交互](/docs/zh-CN/settings-reference#how-env-values-interact-with-your-shell) 涵盖保留继承值的会话,以及 [`env` 设置](/docs/zh-CN/settings-reference#when-claude-code-applies-env-values) 说明何时应用它们。少数变量是特殊情况;[`env` 设置](/docs/zh-CN/settings-reference#env) 列出了例外。

114 114 

115在设置文件中,您可以设置变量,但不能删除变量。要覆盖无法取消设置的变量,例如由您无法控制的 shell 配置文件导出的过时 `CLAUDE_CODE_USE_VERTEX`,请在 `env` 块中将其设置为空字符串:`"CLAUDE_CODE_USE_VERTEX": ""`。Claude Code 将空值视为未设置以进行提供程序选择。子进程仍然继承空值。115在设置文件中,您可以设置变量,但不能删除变量。要覆盖无法取消设置的变量,例如由您无法控制的 shell 配置文件导出的过时 `CLAUDE_CODE_USE_VERTEX`,请在 `env` 块中将其设置为空字符串:`"CLAUDE_CODE_USE_VERTEX": ""`。Claude Code 将空值视为未设置以进行提供程序选择。子进程仍然继承空值。

116 116 

errors.md +90 −16

Details

152| `There's an issue with the selected model` | [请求错误](#theres-an-issue-with-the-selected-model) |152| `There's an issue with the selected model` | [请求错误](#theres-an-issue-with-the-selected-model) |

153| `Model ... is not a recognized model id` | [请求错误](#model-is-not-a-recognized-model-id) |153| `Model ... is not a recognized model id` | [请求错误](#model-is-not-a-recognized-model-id) |

154| `Model ... not found` | [请求错误](#model-not-found) |154| `Model ... not found` | [请求错误](#model-not-found) |

155| `Couldn't confirm model ... with the API` | [请求错误](#couldnt-confirm-model-with-the-api) |

155| `API error: ... · model not changed` | [请求错误](#api-error-model-not-changed) |156| `API error: ... · model not changed` | [请求错误](#api-error-model-not-changed) |

156| `Claude Opus is not available with the Claude Pro plan` | [请求错误](#claude-opus-is-not-available-with-the-claude-pro-plan) |157| `Claude Opus is not available with the Claude Pro plan` | [请求错误](#claude-opus-is-not-available-with-the-claude-pro-plan) |

157| `Claude Code ... does not support this model; version ... or newer is required` | [请求错误](#claude-code-does-not-support-this-model) |158| `Claude Code ... does not support this model; version ... or newer is required` | [请求错误](#claude-code-does-not-support-this-model) |

158| `Claude Code ... is older than the minimum version required by your organization's policy` | [请求错误](#claude-code-does-not-support-this-model) |159| `Claude Code ... is older than the minimum version required by your organization's policy` | [请求错误](#claude-code-does-not-support-this-model) |

159| `Model ... is restricted by your organization's settings` | [请求错误](#model-is-restricted-by-your-organizations-settings) |160| `Model ... is restricted by your organization's settings` | [请求错误](#model-is-restricted-by-your-organizations-settings) |

160| `Model ... is not available. Your organization restricts model selection.` | [请求错误](#model-is-restricted-by-your-organizations-settings) |161| `Model ... is not available. Your organization restricts model selection.` | [请求错误](#model-is-restricted-by-your-organizations-settings) |

162| `Can't switch to the default model` | [请求错误](#cant-switch-to-the-default-model) |

161| `Model switch ... blocked by a PreModelSwitch hook` | [请求错误](#model-switch-was-blocked-by-a-premodelswitch-hook) |163| `Model switch ... blocked by a PreModelSwitch hook` | [请求错误](#model-switch-was-blocked-by-a-premodelswitch-hook) |

162| `couldn't save it as your default` / `couldn't confirm it was saved as your default` | [请求错误](#couldnt-save-it-as-your-default) |164| `couldn't save it as your default` / `couldn't confirm it was saved as your default` | [请求错误](#couldnt-save-it-as-your-default) |

163| `thinking.type.enabled is not supported for this model` | [请求错误](#thinking-type-enabled-is-not-supported-for-this-model) |165| `thinking.type.enabled is not supported for this model` | [请求错误](#thinking-type-enabled-is-not-supported-for-this-model) |


219| `Ultrareview clones <owner>/<repo> in the cloud with the GitHub account connected to your Claude account, and none is connected` | [命令行错误](#no-github-account-is-connected-to-your-claude-account) |221| `Ultrareview clones <owner>/<repo> in the cloud with the GitHub account connected to your Claude account, and none is connected` | [命令行错误](#no-github-account-is-connected-to-your-claude-account) |

220| `Your connected GitHub account can't see <owner>/<repo>` | [命令行错误](#your-connected-github-account-cant-see-the-repository) |222| `Your connected GitHub account can't see <owner>/<repo>` | [命令行错误](#your-connected-github-account-cant-see-the-repository) |

221| `The GitHub App preflight failed transiently (network or service hiccup) — retry in a moment to start from GitHub instead` | [命令行错误](#the-github-app-preflight-failed-transiently) |223| `The GitHub App preflight failed transiently (network or service hiccup) — retry in a moment to start from GitHub instead` | [命令行错误](#the-github-app-preflight-failed-transiently) |

224| `Not uploading this working tree` with `the upload cannot follow that setting` | [命令行错误](#the-repository-upload-cant-follow-a-git-setting) |

222| `GitHub isn't connected to your Claude account, so this repository can't be cloned in the cloud` | [命令行错误](#github-isnt-connected-to-your-claude-account) |225| `GitHub isn't connected to your Claude account, so this repository can't be cloned in the cloud` | [命令行错误](#github-isnt-connected-to-your-claude-account) |

223| `Single sign-on authorization needed` | [命令行错误](#single-sign-on-authorization-needed) |226| `Single sign-on authorization needed` | [命令行错误](#single-sign-on-authorization-needed) |

224| `Failed to resume the conversation` | [命令行错误](#failed-to-resume-the-conversation) |227| `Failed to resume the conversation` | [命令行错误](#failed-to-resume-the-conversation) |


252| `Plugin "<name>@synced" is required by your organization and can't be disabled here` | [Plugin 错误](#plugin-is-required-by-your-organization) |255| `Plugin "<name>@synced" is required by your organization and can't be disabled here` | [Plugin 错误](#plugin-is-required-by-your-organization) |

253| `"<plugin>" was not uninstalled: it is still switched on in <file>` | [Plugin 错误](#plugin-was-not-uninstalled) |256| `"<plugin>" was not uninstalled: it is still switched on in <file>` | [Plugin 错误](#plugin-was-not-uninstalled) |

254| `"<plugin>" was not uninstalled: <file> is there and could not be read` | [Plugin 错误](#plugin-was-not-uninstalled) |257| `"<plugin>" was not uninstalled: <file> is there and could not be read` | [Plugin 错误](#plugin-was-not-uninstalled) |

258| `Plugin "<plugin>" was not uninstalled: installed_plugins.json` | [Plugin 故障排除](/docs/zh-CN/plugins/troubleshooting#installed-plugins-json-holds-a-record-this-version-cannot-read) |

255| `would be spawned with zero tools — refusing` | [工具错误](#agent-would-be-spawned-with-zero-tools) |259| `would be spawned with zero tools — refusing` | [工具错误](#agent-would-be-spawned-with-zero-tools) |

256| `File is covered by a Read deny rule in your permission settings` | [工具错误](#file-is-covered-by-a-read-deny-rule) |260| `File is covered by a Read deny rule in your permission settings` | [工具错误](#file-is-covered-by-a-read-deny-rule) |

257| `cannot contain null bytes (\0)` | [工具错误](#path-cannot-contain-null-bytes) |261| `cannot contain null bytes (\0)` | [工具错误](#path-cannot-contain-null-bytes) |


727 The prompt to confirm went unanswered731 The prompt to confirm went unanswered

728</h3>732</h3>

729 733 

730如果您的账户需要 [Fable usage-credits consent](/docs/zh-CN/model-config#fable-and-usage-credits),Claude Code 会在 Fable 请求计费使用额度之前要求您确认。当在可能没有人在其终端的会话中没有人回答该同意提示时,Claude Code 会关闭提示并以以下消息之一结束轮次:734如果您的账户需要 [Fable usage-credits consent](/docs/zh-CN/model-config#fable-and-usage-credits),Claude Code 会在 Fable 请求计费使用额度之前要求您确认。当同意提示关闭且没有人回答时,Claude Code 会以以下消息之一结束轮次:

731 735 

732```text theme={null}736```text theme={null}

733Fable limit reached · continuing on Fable 5.1 uses usage credits, and the prompt to confirm went unanswered — nothing was sent · answer it where this session is running, or /model to change737Fable limit reached · continuing on Fable 5.1 uses usage credits, and the prompt to confirm went unanswered — nothing was sent · answer it where this session is running, or /model to change


736 740 

737消息命名会话的 Fable 模型,因此在 Fable 5 上它们读作 `continuing on Fable 5` 和 `Fable 5 now uses usage credits`。在 v2.1.257 之前,第一条消息以 `Fable 5 limit reached` 开头。741消息命名会话的 Fable 模型,因此在 Fable 5 上它们读作 `continuing on Fable 5` 和 `Fable 5 now uses usage credits`。在 v2.1.257 之前,第一条消息以 `Fable 5 limit reached` 开头。

738 742 

739这发生在 [Remote Control](/docs/zh-CN/remote-control) 会话、[background sessions](/docs/zh-CN/agent-view) 和 [agent team](/docs/zh-CN/agent-teams) 队友会话中。Claude Code 仅在会话自己的交互式视图中显示同意提示:运行它的终端,或对于后台会话,一旦您附加,[agents view](/docs/zh-CN/agent-view)。Remote Control 客户端无法显示它。Claude Code 在 [`dialogExpiry`](/docs/zh-CN/settings-reference#dialogexpiry) 截止时间关闭提示,默认为五分钟,或一旦新提示到达而没有人在该终端输入时立即关闭,例如从 Remote Control 客户端发送的提示。在会话运行的终端输入会取消截止时间,Claude Code 等待您的答案。在附加的后台会话视图中,输入不会取消截止时间,新提示仍会关闭同意提示,因此在任何一个发生之前回答。Claude Code 不发送任何内容并保持您的模型,因此当您发送下一个提示时,Claude Code 会再次显示同意提示。743这发生在 [Remote Control](/docs/zh-CN/remote-control) 会话、[background sessions](/docs/zh-CN/agent-view)、[agent team](/docs/zh-CN/agent-teams) 队友会话以及另一个应用程序通过 Agent SDK 托管的会话中。有关 Claude Code 何时关闭提示,请参阅 [Fable and usage credits](/docs/zh-CN/model-config#fable-and-usage-credits)。

740 744 

741**要做什么:**745**要做什么:**

742 746 

743* 在会话运行的终端,发送另一个提示并在它重新出现时回答同意提示。对于后台会话,首先从 [agents view](/docs/zh-CN/agent-view) 附加到它。从 Remote Control 客户端重新发送会再次显示此消息,因为客户端无法显示提示。747* 在会话运行的地方,在终端或托管它的应用程序中,发送另一个提示并在它重新出现时回答同意提示。对于后台会话,首先从 [agents view](/docs/zh-CN/agent-view) 附加到它。从 Remote Control 客户端重新发送会再次显示此消息,因为客户端无法显示提示。

744* 运行 `/model` 切换到不计费使用额度的模型748* 运行 `/model` 切换到不计费使用额度的模型

745* 要给自己更多时间到达该终端,请将 [`dialogExpiry`](/docs/zh-CN/settings-reference#dialogexpiry) 设置为更长的值或 `"never"`749* 要给自己更多时间,请将 [`dialogExpiry`](/docs/zh-CN/settings-reference#dialogexpiry) 设置为更长的值或 `"never"`

746 750 

747在 v2.1.236 之前,此消息没有出现:当 Remote Control 客户端连接时,Claude Code 等待 60 秒以获得答案,然后在您的默认模型上继续轮次。751在 v2.1.236 之前,此消息没有出现:当 Remote Control 客户端连接时,Claude Code 等待 60 秒以获得答案,然后在您的默认模型上继续轮次。

748 752 


2346 模型不是公认的模型 ID2350 模型不是公认的模型 ID

2347</h3>2351</h3>

2348 2352 

2349您传递给模型切换的模型字符串不是模型别名、此 Claude Code 版本知道的模型 ID,也不是以 `claude-` 开头的 ID。常见原因是 ID 中的拼写错误、显示名称(如 `Sonnet 5`,其中需要 ID `claude-sonnet-5`)或仅较新 Claude Code 版本识别的别名。Claude Code 立即拒绝切换。在 v2.1.200 之前,Claude Code 保存字符串并在下一个请求时失败,显示[所选模型存在问题](#theres-an-issue-with-the-selected-model)。2353您传递给模型切换的字符串不是 Claude Code 可以用作模型的字符串,因此它拒绝了切换而不发送请求,会话保持其当前模型。您可以在通过 [Agent SDK](/docs/zh-CN/agent-sdk/typescript) `setModel()` 方法设置模型时获得此错误,通过运行 Claude Code CLI 的应用程序(如 [Desktop app](/docs/zh-CN/desktop)),或当您从通过 [Remote Control](/docs/zh-CN/remote-control) 连接的设备选择模型时。在 v2.1.200 之前,Claude Code 保存字符串并在下一个请求时失败,显示[所选模型存在问题](#theres-an-issue-with-the-selected-model)。

2350 2354 

2351```text theme={null}2355```text theme={null}

2352Model "claud-sonnet-5" is not a recognized model id. Did you mean 'claude-sonnet-5'?2356Model "Sonnet5" is not a recognized model id. Did you mean 'claude-sonnet-5'?

2353```2357```

2354 2358 

2355尾部提示命名最接近的匹配别名或模型 ID。当没有足够接近的内容时,它读取 `Run /model to see available models.`。在 [Desktop app](/docs/zh-CN/desktop) 启动的会话中,无匹配提示读取 `Switch to a different model.`2359在此示例中,应用程序发送了显示名称 `Sonnet 5`,消息重复时不带其空格。尾部提示命名最接近的匹配别名或模型 ID。当没有足够接近的内容时,它读取 `Run /model to see available models.`。在 [Desktop app](/docs/zh-CN/desktop) 启动的会话中,无匹配提示读取 `Switch to a different model.`

2356 2360 

2357Claude Code 在请求切换时在本地生成此错误,在发送任何 API 请求之前。它适用于通过 [Agent SDK](/docs/zh-CN/agent-sdk/typescript) `setModel()` 方法设置模型的情况,通过运行 Claude Code CLI 的应用程序(如 [Desktop app](/docs/zh-CN/desktop)),或当您从通过 [Remote Control](/docs/zh-CN/remote-control) 连接的设备选择模型时。在 v2.1.260 之前,检查不涵盖 Remote Control 选择,因此 Claude Code 应用了选择,下一个请求失败,显示[所选模型存在问题](#theres-an-issue-with-the-selected-model)。2361当您通过 Agent SDK 或在 Anthropic API 上的应用程序切换时,只有无法成为模型 ID 的字符串(如显示名称或空字符串)会获得此错误。

2362 

2363当您从 Remote Control 设备选择模型时,Claude Code 在本地检查字符串。任何不是模型别名、Claude Code 列出或您配置的模型,或以 `claude-` 开头的 ID 的字符串都会获得此错误,包括拼写错误的 ID(如 `claud-sonnet-5`)。在 v2.1.260 之前,此检查不涵盖 Remote Control 选择,因此无法识别的字符串被应用,下一个请求失败。

2358 2364 

2359**要做什么:**2365**要做什么:**

2360 2366 

2361* 运行 `/model` 不带参数以打开选择器并从您帐户可用的模型中选择,然后传递那里显示的别名或 ID2367* 运行 `/model` 不带参数以打开选择器并从您帐户可用的模型中选择,然后传递那里显示的别名或 ID

2362* 如果您使用了较新 Claude Code 版本支持的别名,运行 `claude update`。以 `claude-` 开头的完整 ID 通过此本地检查,即使模型比您的 Claude Code 版本更新。服务器仍然可能需要该模型的最低版本;请参阅 [Claude Code 不支持此模型](#claude-code-does-not-support-this-model)。2368* 如果您使用了较新 Claude Code 版本支持的别名,运行 `claude update`,或传递模型的完整 ID。服务器仍然可能需要该模型的最低 Claude Code 版本;请参阅 [Claude Code 不支持此模型](#claude-code-does-not-support-this-model)。

2363* v2.1.200 之前保存的模型不会被此检查修复。如果过时的值不断返回,请从[设置您的模型](/docs/zh-CN/model-config#setting-your-model)下列出的位置删除它。2369* v2.1.200 之前保存的模型不会被此检查修复。如果过时的值不断返回,请从[设置您的模型](/docs/zh-CN/model-config#setting-your-model)下列出的位置删除它。

2364* 检查仅在 Anthropic API 上运行。在任何其他提供商或网关上,包括自定义 `ANTHROPIC_BASE_URL`,提供商定义模型名称,因此 Claude Code 接受任何字符串并将其传递。Claude Code 仍然可以在请求时写入[无法识别的模型诊断行](#unrecognized-model-id-on-a-request),在每个提供商上。2370* 在 Anthropic API 以外的任何提供商上,或在网关或自定义 `ANTHROPIC_BASE_URL` 后面,只有空字符串会获得此错误。Claude Code 仍然可以在请求时写入[无法识别的模型诊断行](#unrecognized-model-id-on-a-request),在每个提供商上。

2365 2371 

2366<h3 id="model-not-found">2372<h3 id="model-not-found">

2367 模型未找到2373 模型未找到

2368</h3>2374</h3>

2369 2375 

2370您使用 `/model <name>` 选择了模型,Claude Code 无法确认存在具有该名称的模型。当名称不是 [model alias](/docs/zh-CN/model-config#model-aliases) 或 Claude Code 在本地接受的另一种拼写时,`/model` 使用最小 API 请求验证它,此错误通常是您的 API 端点的答案。无法成为模型 ID 的名称(如包含空格的名称)会获得相同的消息。2376您使用名称切换到模型,Claude Code 无法确认存在具有该名称的模型。当名称不是 [model alias](/docs/zh-CN/model-config#model-aliases) 或 Claude Code 在本地接受的另一种拼写时,Claude Code 使用最小 API 请求验证它,此错误通常是您的 API 端点的答案。使用 `/model <name>` 时,无法成为模型 ID 的名称(如包含空格的名称)会获得相同的消息。

2371 2377 

2372```text theme={null}2378```text theme={null}

2373Model 'claude-opus-9' not found2379Model 'claude-opus-9' not found


2379 2385 

2380* 运行 `/model` 不带参数并从您帐户可用的模型中选择,或使用 [model alias](/docs/zh-CN/model-config#model-aliases)(如 `sonnet`),它解析为维护的默认值2386* 运行 `/model` 不带参数并从您帐户可用的模型中选择,或使用 [model alias](/docs/zh-CN/model-config#model-aliases)(如 `sonnet`),它解析为维护的默认值

2381* 如果您输入了完整 ID,请根据您提供商的模型目录检查它。新推出的模型可能在 Anthropic API 上可用,但您的提供商或地区尚未提供。2387* 如果您输入了完整 ID,请根据您提供商的模型目录检查它。新推出的模型可能在 Anthropic API 上可用,但您的提供商或地区尚未提供。

2388* 在 Agent SDK 中,`setModel()` 失败,显示此消息,会话继续在其前一个模型上运行。在 TypeScript SDK 中,调用 [`supportedModels()`](/docs/zh-CN/agent-sdk/typescript#query-object) 以列出您可以切换到的模型。

2382* 在 v2.1.265 之前,`/model` 也以此错误拒绝了 `opusplan[1m]` 别名拼写。在这些版本上,更新 Claude Code,或在[设置](/docs/zh-CN/model-config#setting-your-model)中或使用 `--model` 设置模型。2389* 在 v2.1.265 之前,`/model` 也以此错误拒绝了 `opusplan[1m]` 别名拼写。在这些版本上,更新 Claude Code,或在[设置](/docs/zh-CN/model-config#setting-your-model)中或使用 `--model` 设置模型。

2383 2390 

2391<h3 id="couldnt-confirm-model-with-the-api">

2392 无法通过 API 确认模型

2393</h3>

2394 

2395您通过 [Agent SDK](/docs/zh-CN/agent-sdk/typescript) `setModel()` 方法或运行 Claude Code CLI 的应用程序(如 [Desktop app](/docs/zh-CN/desktop))切换了模型,确认模型 ID 与您的 API 端点的请求在五秒内没有得到答复。会话保持其当前模型。

2396 

2397```text theme={null}

2398Couldn't confirm model "claude-sonnet-5" with the API. Try again, or run /model to see available models.

2399```

2400 

2401在 [Desktop app](/docs/zh-CN/desktop) 启动的会话中,消息在 `Try again.` 处结束。

2402 

2403**要做什么:**

2404 

2405* 再次切换到模型

2406* 如果切换继续失败,检查 Claude Code 是否可以到达您的 API 端点;请参阅[网络和连接错误](#network-and-connection-errors)

2407 

2384<h3 id="api-error-model-not-changed">2408<h3 id="api-error-model-not-changed">

2385 检查选择的模型时出现 API 错误2409 检查选择的模型时出现 API 错误

2386</h3>2410</h3>


2432API Error: 400 Claude Code 2.1.240 is older than the minimum version required by your organization's policy. Run 'claude update', or update the Claude desktop app, to continue.2456API Error: 400 Claude Code 2.1.240 is older than the minimum version required by your organization's policy. Run 'claude update', or update the Claude desktop app, to continue.

2433```2457```

2434 2458 

2459发出请求的 Claude Code 二进制文件报告的版本是 API 检查的版本。

2460 

2435**要做什么:**2461**要做什么:**

2436 2462 

2437* 运行 `claude update`,或更新 Claude 桌面应用,然后启动新会话2463更新该二进制文件,然后启动新会话。二进制文件的来源决定了如何,除了在[自托管环境](/docs/zh-CN/self-hosted-environments-deploy#pin-the-version)中:

2438* 对于按模型措辞,您可以通过使用 `/model` 切换到另一个模型来继续在当前会话中工作2464 

2465| 发出请求的二进制文件 | 如何更新它 |

2466| :- | :- |

2467| 您安装的 Claude Code | 运行 `claude update` |

2468| Claude desktop app | 更新应用 |

2469| [VS Code extension](/docs/zh-CN/vs-code) 捆绑的二进制文件 | 更新扩展 |

2470| Agent SDK 包捆绑的二进制文件 | [升级 SDK 包](/docs/zh-CN/agent-sdk/hosting#runtime-dependencies),然后重启您的应用程序。在[编译的单文件可执行文件](/docs/zh-CN/agent-sdk/typescript#compile-to-a-single-executable)中,重建它 |

2471 

2472* 对于按模型措辞,您可以通过切换到另一个模型来继续在当前会话中工作:在 CLI 中运行 `/model`,在流式输入模式下的 TypeScript SDK 的 `Query` 对象上调用 [`setModel()`](/docs/zh-CN/agent-sdk/typescript#query-object),或在 Python SDK 的 `ClaudeSDKClient` 上调用 [`set_model()`](/docs/zh-CN/agent-sdk/python#claudesdkclient)

2439* 对于组织政策措辞,在继续之前更新2473* 对于组织政策措辞,在继续之前更新

2440 2474 

2441<h3 id="model-is-restricted-by-your-organizations-settings">2475<h3 id="model-is-restricted-by-your-organizations-settings">


2460* 如果受限制的模型在 `--model`、`ANTHROPIC_MODEL`、设置文件的 `model` 字段或[子代理](/docs/zh-CN/sub-agents#choose-a-model)、技能或命令的 `model` frontmatter 中设置,删除或更新该值,以便通知不会再次出现2494* 如果受限制的模型在 `--model`、`ANTHROPIC_MODEL`、设置文件的 `model` 字段或[子代理](/docs/zh-CN/sub-agents#choose-a-model)、技能或命令的 `model` frontmatter 中设置,删除或更新该值,以便通知不会再次出现

2461* 如果您需要访问受限制的模型,请要求您的组织管理员启用它。请参阅[组织模型限制](/docs/zh-CN/model-config#organization-model-restrictions)。2495* 如果您需要访问受限制的模型,请要求您的组织管理员启用它。请参阅[组织模型限制](/docs/zh-CN/model-config#organization-model-restrictions)。

2462 2496 

2497<h3 id="cant-switch-to-the-default-model">

2498 无法切换到默认模型

2499</h3>

2500 

2501您选择了默认模型,例如通过在 `/model` 选择器中选择默认行或键入 `/model default`。Claude Code 拒绝了切换,因此会话保持其当前模型。

2502 

2503```text theme={null}

2504Can't switch to the default model: your organization's managed settings block it (claude-opus-4-6) in "deniedModels", and none of the models they allow can be used as the default instead. Ask your administrator to update "deniedModels" or "availableModels".

2505```

2506 

2507冒号后的措辞命名阻止切换的内容:

2508 

2509* **`your organization's managed settings block it ... in "deniedModels"`**:托管拒绝列表阻止默认选项解析到的模型

2510* **`your organization allows only the models listed in "availableModels"`**:托管 [`availableModels`](/docs/zh-CN/model-config#restrict-model-selection) 允许列表,其 [`availableModelsMatch`](/docs/zh-CN/settings-reference#availablemodelsmatch) 设置为 `"exact"`,遗漏了默认选项解析到的模型

2511* **`Claude Code couldn't read your organization's managed settings to check which models they allow`**:[托管设置](/docs/zh-CN/managed-settings)无法读取,Claude Code 拒绝切换而不是未检查地应用它

2512 

2513**要做什么:**

2514 

2515* 对于 [`deniedModels`](/docs/zh-CN/settings-reference#deniedmodels) 和 `availableModels` 措辞,运行 `/model` 并按名称选择您的组织允许的模型

2516* 要求您的管理员更新消息命名的托管设置

2517* 对于 `couldn't read` 措辞,重启 Claude Code;如果它继续发生,要求您的管理员检查托管设置

2518 

2519如果会话改为在这些托管设置下以 `Claude Code can't start` 消息失败启动,请参阅[托管设置阻止默认模型](#managed-settings-block-the-default-model)。

2520 

2463<h3 id="model-switch-was-blocked-by-a-premodelswitch-hook">2521<h3 id="model-switch-was-blocked-by-a-premodelswitch-hook">

2464 模型切换被 PreModelSwitch hook 阻止2522 模型切换被 PreModelSwitch hook 阻止

2465</h3>2523</h3>


3271 Diff 对于 ultrareview 来说太大3329 Diff 对于 ultrareview 来说太大

3272</h3>3330</h3>

3273 3331 

3274Diff 对于 ultrareview 来说太大:812 个文件,96,410 行更改(限制:500 个文件,8,000 行)。最大的文件:package-lock.json(41,904 行),dist/bundle.js(18,210 行),src/generated/api.ts(9,876 行)。传递更接近的基础分支(`/code-review ultra <branch>`)以缩小范围,或拆分更改。

3275 

3276您的分支与基础分支之间的差异,包括未提交和暂存的更改,超过了 [ultrareview](/docs/zh-CN/ultrareview) 的大小限制,因此 `/code-review ultra` 和 `claude ultrareview` 子命令在云会话启动前拒绝审查。被拒绝的审查不使用免费运行,也不计费使用信用。消息命名生效的限制、您的差异大小以及贡献最多更改行的文件。在 v2.1.216 之前,消息仅显示原始差异统计。3332您的分支与基础分支之间的差异,包括未提交和暂存的更改,超过了 [ultrareview](/docs/zh-CN/ultrareview) 的大小限制,因此 `/code-review ultra` 和 `claude ultrareview` 子命令在云会话启动前拒绝审查。被拒绝的审查不使用免费运行,也不计费使用信用。消息命名生效的限制、您的差异大小以及贡献最多更改行的文件。在 v2.1.216 之前,消息仅显示原始差异统计。

3277 3333 

3278```text theme={null}3334```text theme={null}


3378 3434 

3379在 v2.1.251 之前,Claude Code 以 `Please set up GitHub on https://claude.ai/code` 结束消息,即使 GitHub 检查仅暂时失败,设置建议也无法清除暂时失败。3435在 v2.1.251 之前,Claude Code 以 `Please set up GitHub on https://claude.ai/code` 结束消息,即使 GitHub 检查仅暂时失败,设置建议也无法清除暂时失败。

3380 3436 

3437<h3 id="the-repository-upload-cant-follow-a-git-setting">

3438 存储库上传无法遵循 git 设置

3439</h3>

3440 

3441您启动了[上传您的本地存储库的云会话](/docs/zh-CN/claude-code-on-the-web#send-local-repositories-without-github)或[分支的 ultrareview](/docs/zh-CN/ultrareview),上传无法遵循决定哪些属性规则适用于您的文件的 git 设置之一。如果上传继续并错过了规则,git 在存储它之前转换的文件(例如清理过滤器加密的文件)可能会到达云端,就像它在磁盘上一样。Claude Code 拒绝上传,什么都不上传:

3442 

3443```text theme={null}

3444Not uploading this working tree: core.ignoreCase (which decides whether .gitattributes patterns match file names regardless of letter case) is set in <file>, and the upload cannot follow that setting, so a file git would change before storing it (to encrypt it, for example) could be uploaded as it is on disk. Move the core.ignoreCase line into this repository's .git/config or directly into your ~/.gitconfig, then retry.

3445```

3446 

3447消息命名设置和它的设置位置,并以该情况的修复结尾。相同的拒绝出现在 `core.attributesFile` 和 `attr.tree` 中,每个都有自己的修复。

3448 

3449消息可以命名您的 git 配置通过 `include` 或 `includeIf` 指令拉入的配置文件,即使该指令的条件不适用于此存储库。

3450 

3451**要做什么:**

3452 

3453* 应用消息最后一句中的修复

3454 

3381<h3 id="github-isnt-connected-to-your-claude-account">3455<h3 id="github-isnt-connected-to-your-claude-account">

3382 GitHub 未连接到您的 Claude 帐户3456 GitHub 未连接到您的 Claude 帐户

3383</h3>3457</h3>


3890 Plugin 未被卸载3964 Plugin 未被卸载

3891</h3>3965</h3>

3892 3966 

3893您运行了 [`claude plugin uninstall`](/docs/zh-CN/plugins/cli-reference#plugin-uninstall),或在 `/plugin` **Installed** 选项卡中选择了 **Uninstall**,卸载停止,消息开头为 `"<plugin>" was not uninstalled:`。3967您运行了 [`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)。

3894 3968 

3895当 Claude Code 从 `enabledPlugins` 中删除 plugin 的条目并读回该范围的设置文件时,要么 plugin 仍在那里被打开,要么可以打开它的文件无法读取或检查。在设置条目可以将其重新打开时删除 plugin 的保存选项、机密和数据会丢失它们,因此卸载停止:plugin 保持安装,它保存的任何内容都不会被删除。3969当 Claude Code 从 `enabledPlugins` 中删除 plugin 的条目并读回该范围的设置文件时,要么 plugin 仍在那里被打开,要么可以打开它的文件无法读取或检查。在设置条目可以将其重新打开时删除 plugin 的保存选项、机密和数据会丢失它们,因此卸载停止:plugin 保持安装,它保存的任何内容都不会被删除。

3896 3970 

fast-mode.md +2 −0

Details

72 72 

73在会话中输入 `/fast on` 以打开快速模式。它仅对该会话保持打开,不会保存为您的默认值。[要求](#requirements)也适用于云会话。73在会话中输入 `/fast on` 以打开快速模式。它仅对该会话保持打开,不会保存为您的默认值。[要求](#requirements)也适用于云会话。

74 74 

75在浏览器中访问 [claude.ai/code](https://claude.ai/code),您也可以从消息框上的模型菜单打开和关闭快速模式。当您的计划包含快速模式且所选模型支持它时,菜单会显示该开关。

76 

75<h2 id="understand-the-cost-tradeoff">77<h2 id="understand-the-cost-tradeoff">

76 了解成本权衡78 了解成本权衡

77</h2>79</h2>

Details

312| [Computer use](/docs/zh-CN/computer-use) | ✓ | ✓ | ✗ | ✗ |312| [Computer use](/docs/zh-CN/computer-use) | ✓ | ✓ | ✗ | ✗ |

313| Dispatch ([Desktop](/docs/zh-CN/desktop#sessions-from-dispatch)) | ✓ | ✓ | ✗ | ✗ |313| Dispatch ([Desktop](/docs/zh-CN/desktop#sessions-from-dispatch)) | ✓ | ✓ | ✗ | ✗ |

314| [Code Review](/docs/zh-CN/code-review) | ✗ | ✗ | ✓ | ✓ |314| [Code Review](/docs/zh-CN/code-review) | ✗ | ✗ | ✓ | ✓ |

315| [Artifacts](/docs/zh-CN/artifacts) | ✓ | ✓ | ✓ | Admin-enabled |315| [Artifacts](/docs/zh-CN/artifacts) | ✓ | ✓ | ✓ | ✓ |

316| [分析仪表板和贡献指标](/docs/zh-CN/analytics) | ✗ | ✗ | ✓ | ✓ |316| [分析仪表板和贡献指标](/docs/zh-CN/analytics) | ✗ | ✗ | ✓ | ✓ |

317| [Enterprise Analytics API](/docs/zh-CN/analytics#access-data-programmatically) | ✗ | ✗ | ✗ | ✓ |317| [Enterprise Analytics API](/docs/zh-CN/analytics#access-data-programmatically) | ✗ | ✗ | ✗ | ✓ |

318| [Server-managed settings](/docs/zh-CN/server-managed-settings) | ✗ | ✗ | ✓ | ✓ |318| [Server-managed settings](/docs/zh-CN/server-managed-settings) | ✗ | ✗ | ✓ | ✓ |

fullscreen.md +1 −1

Details

294 294 

295禁用鼠标捕获后,使用 `PgUp`、`PgDn`、`Ctrl+Home` 和 `Ctrl+End` 的键盘滚动仍然有效,您的终端原生处理选择。您会失去点击定位光标、点击展开工具输出、URL 点击和 Claude Code 内部的滚轮滚动。295禁用鼠标捕获后,使用 `PgUp`、`PgDn`、`Ctrl+Home` 和 `Ctrl+End` 的键盘滚动仍然有效,您的终端原生处理选择。您会失去点击定位光标、点击展开工具输出、URL 点击和 Claude Code 内部的滚轮滚动。

296 296 

297要保持滚轮滚动但关闭点击、拖动和悬停处理,请改为设置 `CLAUDE_CODE_DISABLE_MOUSE_CLICKS=1`。需要 Claude Code v2.1.195 或更高版本。当两个变量都设置时,`CLAUDE_CODE_DISABLE_MOUSE` 优先。297要保持滚轮滚动但关闭点击、拖动和悬停处理,请改为设置 `CLAUDE_CODE_DISABLE_MOUSE_CLICKS=1`。当两个变量都设置时,`CLAUDE_CODE_DISABLE_MOUSE` 优先。

298 298 

299禁用点击后,Claude Code 仍然捕获鼠标,因此滚轮和触控板滚动对话,但左键点击在 Claude Code 内部不起作用。您仍然需要按住终端的键进行原生点击和拖动选择。右键点击和中键粘贴在支持它们的终端上继续工作。299禁用点击后,Claude Code 仍然捕获鼠标,因此滚轮和触控板滚动对话,但左键点击在 Claude Code 内部不起作用。您仍然需要按住终端的键进行原生点击和拖动选择。右键点击和中键粘贴在支持它们的终端上继续工作。

300 300 

Details

43 43 

44Claude Code 然后推送一个包含您选择的工作流文件的分支,已设置为使用该密钥,并在您的浏览器中打开 GitHub,准备创建拉取请求。创建并合并该拉取请求,`@claude` 就可以在仓库中工作。44Claude Code 然后推送一个包含您选择的工作流文件的分支,已设置为使用该密钥,并在您的浏览器中打开 GitHub,准备创建拉取请求。创建并合并该拉取请求,`@claude` 就可以在仓库中工作。

45 45 

46要停止设置过程中途,请按 Esc。已在进行的步骤会完成,之后的步骤不会开始。关闭消息列出了仓库中已发生的事情,例如推送的分支或保存的密钥。

47 

46如果您选择审查工作流,Claude 会在拉取请求本身上发布每个审查,作为它发现的每个问题的内联评论或在它没有发现任何问题时作为一个摘要评论。Claude 会跳过一些拉取请求,例如草稿。[审查工作流示例](#run-a-skill)使用相同的 skill 并列出它们。在 v2.1.229 之前,Claude 仅将其审查写入工作流运行日志。48如果您选择审查工作流,Claude 会在拉取请求本身上发布每个审查,作为它发现的每个问题的内联评论或在它没有发现任何问题时作为一个摘要评论。Claude 会跳过一些拉取请求,例如草稿。[审查工作流示例](#run-a-skill)使用相同的 skill 并列出它们。在 v2.1.229 之前,Claude 仅将其审查写入工作流运行日志。

47 49 

48要更新早期版本生成的审查工作流,请执行以下操作之一:50要更新早期版本生成的审查工作流,请执行以下操作之一:

Details

65 GitHub App 权限65 GitHub App 权限

66</h3>66</h3>

67 67 

68清单使用以下权限和 webhook 事件配置 GitHub App,这些权限和事件共同涵盖网络会话、代码审查、Claude Security、插件市场和贡献指标:68清单使用以下权限和 webhook 事件配置 GitHub App,这些权限和事件共同涵盖云会话、代码审查、Claude Security、插件市场和贡献指标:

69 69 

70| 权限 | 访问 | 用途 |70| 权限 | 访问 | 用途 |

71| :- | :- | :- |71| :- | :- | :- |


95 网络要求95 网络要求

96</h3>96</h3>

97 97 

98对于 Anthropic 托管的会话,您的 GHES 实例必须可从 Anthropic 基础设施访问,以便 Claude 可以克隆存储库和发布审查评论。如果您的 GHES 实例在防火墙后面,请将 Anthropic 的 [出站 IP 地址](https://platform.claude.com/docs/en/api/ip-addresses#outbound-ip-addresses) 加入白名单。[自托管环境](/docs/zh-CN/self-hosted-environments-deploy#configure-git) 中的会话从您的网络内部克隆,除非运行器选择加入 [Anthropic git 代理](/docs/zh-CN/self-hosted-environments-deploy#use-the-anthropic-git-proxy),该代理从 Anthropic 一侧获取并需要相同的可达性;[SCM 连接器](/docs/zh-CN/self-hosted-environments-reference#scm-connector-flags) 涵盖托管的会话前流程,例如存储库选择器,用于仅在内部可路由的 GHES 主机。98对于 Anthropic 托管的会话,您的 GHES 实例必须可从 Anthropic 基础设施访问,以便 Claude 可以克隆存储库和发布审查评论。如果您的 GHES 实例在防火墙后面,请将 Anthropic 的 [出站 IP 地址](https://platform.claude.com/docs/en/api/ip-addresses#outbound-ip-addresses) 加入白名单。[自托管环境](/docs/zh-CN/self-hosted-environments-deploy#configure-git) 中的会话从您的网络内部克隆,除非运行器选择加入 [Anthropic git 代理](/docs/zh-CN/self-hosted-environments-deploy#use-the-anthropic-git-proxy),该代理从 Anthropic 一侧获取并需要相同的可达性。托管的会话前流程(例如存储库选择器)在会话启动前在 Anthropic 一侧运行。即使会话在自托管环境中运行,它们也需要您的 GHES 实例可从 Anthropic 基础设施访问。[SCM 连接器](/docs/zh-CN/self-hosted-environments-reference#scm-connector-flags) 不可用,因此这些流程无法访问仅在内部可路由的 GHES 主机。

99 99 

100<h2 id="developer-workflow">100<h2 id="developer-workflow">

101 开发人员工作流101 开发人员工作流


246 GHES 实例无法访问246 GHES 实例无法访问

247</h3>247</h3>

248 248 

249如果审查或 Anthropic 托管的云会话超时,您的 GHES 实例可能无法从 Anthropic 基础设施访问。确认您的防火墙允许来自 Anthropic 的 [出站 IP 地址](https://platform.claude.com/docs/en/api/ip-addresses#outbound-ip-addresses) 的入站连接。[自托管环境](/docs/zh-CN/self-hosted-environments) 中的会话从您的网络内部访问 GHES,因此对于它们,请检查运行器自己的网络路径和 [SCM 连接器](/docs/zh-CN/self-hosted-environments-reference#scm-connector-flags) 代替。249如果审查或 Anthropic 托管的云会话超时,您的 GHES 实例可能无法从 Anthropic 基础设施访问。确认您的防火墙允许来自 Anthropic 的 [出站 IP 地址](https://platform.claude.com/docs/en/api/ip-addresses#outbound-ip-addresses) 的入站连接。[自托管环境](/docs/zh-CN/self-hosted-environments) 中的会话从您的网络内部访问 GHES,因此当其中一个无法克隆时,请改为检查运行器自己的网络路径。对于存储库选择器和其他托管的会话前流程,请参阅 [网络要求](#network-requirements)。

250 250 

251<h3 id="session-start-fails-with-unable-to-get-organization-uuid">251<h3 id="session-start-fails-with-unable-to-get-organization-uuid">

252 会话启动失败,显示 `Unable to get organization UUID`252 会话启动失败,显示 `Unable to get organization UUID`

glossary.md +1 −1

Details

56 Artifact56 Artifact

57</h3>57</h3>

58 58 

59Claude Code 从您的会话发布到 claude.ai 上私有 URL 的实时交互式网页,因此您可以直观地查看输出或共享它,而不是阅读终端文本。当会话重新发布时,页面会就地更新。您从 Claude Code 创建的 Artifacts 出现在与 claude.ai 对话中创建的 artifacts 相同的库中。共享取决于您的计划:在 Pro 和 Max 上,任何人都可以打开的公开链接;在 Team 和 Enterprise 上,在您的组织内共享,以及一旦所有者启用它们就可以公开链接。59Claude Code 从您的会话发布到 claude.ai 上私有 URL 的实时交互式网页,因此您可以直观地查看输出或共享它,而不是阅读终端文本。当会话重新发布时,页面会就地更新。您从 Claude Code 创建的 Artifacts 出现在与 claude.ai 对话中创建的 artifacts 相同的库中。共享选项取决于您的计划:请参阅[共享 artifact](/docs/zh-CN/artifacts#share-an-artifact)。

60 60 

61了解更多:[将会话输出共享为 artifacts](/docs/zh-CN/artifacts)61了解更多:[将会话输出共享为 artifacts](/docs/zh-CN/artifacts)

62 62 

Details

315 315 

316Claude Sonnet 5、Opus 4.6 及更高版本以及 Sonnet 4.6 在 Google Cloud 的 Agent Platform 上支持 [1M token context window](https://platform.claude.com/docs/zh-CN/build-with-claude/context-windows#context-window-sizes-by-model)。Sonnet 5 始终以 1M 窗口运行,没有 `[1m]` 变体可选择。对于其他模型,当您选择 1M 模型变体时,Claude Code 会自动启用扩展 context window。316Claude Sonnet 5、Opus 4.6 及更高版本以及 Sonnet 4.6 在 Google Cloud 的 Agent Platform 上支持 [1M token context window](https://platform.claude.com/docs/zh-CN/build-with-claude/context-windows#context-window-sizes-by-model)。Sonnet 5 始终以 1M 窗口运行,没有 `[1m]` 变体可选择。对于其他模型,当您选择 1M 模型变体时,Claude Code 会自动启用扩展 context window。

317 317 

318[设置向导](#sign-in-with-agent-platform)在固定模型时提供 1M context 选项。要为手动固定的模型启用它,请在模型 ID 后附加 `[1m]`。有关详细信息,请参阅[为第三方部署固定模型](/docs/zh-CN/model-config#pin-models-for-third-party-deployments)。318[设置向导](#sign-in-with-agent-platform)在固定模型时提供 1M context 选项。要为手动固定的模型启用它,请在模型 ID 后附加 `[1m]`。有关详细信息,请参阅[为第三方部署固定模型](/docs/zh-CN/model-config#pin-models-for-third-party-deployments),包括如何在不更改固定的情况下使用 1M 窗口。

319 319 

320<h2 id="troubleshooting">320<h2 id="troubleshooting">

321 故障排除321 故障排除

hooks.md +3 −7

Details

274 274 

275来自设置文件、托管策略设置和插件的 Hooks 也在 [subagents](/docs/zh-CN/sub-agents) 内运行。当子代理调用工具时,工具事件(如 `PreToolUse` 和 `PostToolUse`)触发与主对话中相同的配置 hooks,输入包含标识子代理的 `agent_id` 和 `agent_type` [通用输入字段](#common-input-fields)。275来自设置文件、托管策略设置和插件的 Hooks 也在 [subagents](/docs/zh-CN/sub-agents) 内运行。当子代理调用工具时,工具事件(如 `PreToolUse` 和 `PostToolUse`)触发与主对话中相同的配置 hooks,输入包含标识子代理的 `agent_id` 和 `agent_type` [通用输入字段](#common-input-fields)。

276 276 

277企业管理员可以使用 `allowManagedHooksOnly` 来限制哪些 hooks 运行:277管理员可以使用 [`allowManagedHooksOnly`](/docs/zh-CN/settings-reference#allowmanagedhooksonly) 在 [托管设置](/docs/zh-CN/managed-settings) 中限制哪些 hooks 运行:

278 278 

279* 用户、项目、本地和插件 hooks 被阻止。托管设置 `enabledPlugins` 中强制启用的插件中的 Hooks 除外279* 用户、项目、本地和插件 hooks 被阻止。托管设置 `enabledPlugins` 中强制启用的插件中的 Hooks 除外

280* Claude Code 还将 [`statusLine`](/docs/zh-CN/statusline)、[`fileSuggestion`](/docs/zh-CN/settings-reference#filesuggestion) 和 [`subagentStatusLine`](/docs/zh-CN/statusline#subagent-status-lines) 设置限制为托管设置280* Claude Code 还将 [`statusLine`](/docs/zh-CN/statusline)、[`fileSuggestion`](/docs/zh-CN/settings-reference#filesuggestion) 和 [`subagentStatusLine`](/docs/zh-CN/statusline#subagent-status-lines) 设置限制为托管设置


304 304 

305在正则表达式路径上的匹配器使用 JavaScript 的 `RegExp.prototype.test` 进行测试,该测试在值中任何位置的匹配时成功。`Edit.*` 匹配 `Edit` 和 `NotebookEdit`;当需要整个字符串匹配时,用 `^` 和 `$` 包装模式,如 `^Edit$`。305在正则表达式路径上的匹配器使用 JavaScript 的 `RegExp.prototype.test` 进行测试,该测试在值中任何位置的匹配时成功。`Edit.*` 匹配 `Edit` 和 `NotebookEdit`;当需要整个字符串匹配时,用 `^` 和 `$` 包装模式,如 `^Edit$`。

306 306 

307精确匹配集中的连字符需要 Claude Code v2.1.195 或更高版本。在早期版本中,带连字符的名称如 `code-reviewer` 被评估为未锚定的正则表达式,因此它也对 `senior-code-reviewer` 触发;在这些版本上将其锚定为 `^code-reviewer$` 以仅匹配该名称。

308 

309`FileChanged` 和 `StopFailure` 使用更窄的精确匹配集,仅包含字母、数字、`_` 和 `|`。这两个事件的匹配器中的连字符、空格或逗号将其保留在正则表达式路径上,仅 `|` 分隔替代项。下表中支持匹配器的其他每个事件接受 `|` 或 `,`。307`FileChanged` 和 `StopFailure` 使用更窄的精确匹配集,仅包含字母、数字、`_` 和 `|`。这两个事件的匹配器中的连字符、空格或逗号将其保留在正则表达式路径上,仅 `|` 分隔替代项。下表中支持匹配器的其他每个事件接受 `|` 或 `,`。

310 308 

311`FileChanged` 事件在构建其监视列表时不遵循这些规则。请参阅 [FileChanged](#filechanged)。309`FileChanged` 事件在构建其监视列表时不遵循这些规则。请参阅 [FileChanged](#filechanged)。


380* `mcp__brave-search__.*` 匹配来自名称包含连字符的服务器的所有工具378* `mcp__brave-search__.*` 匹配来自名称包含连字符的服务器的所有工具

381* `mcp__.*__write.*` 匹配来自任何服务器的名称以 `write` 开头的任何工具379* `mcp__.*__write.*` 匹配来自任何服务器的名称以 `write` 开头的任何工具

382 380 

383精确匹配集中的连字符需要 Claude Code v2.1.195 或更高版本。在早期版本中,裸连字符前缀如 `mcp__brave-search` 被评估为未锚定的正则表达式,并匹配来自该服务器的每个工具。`mcp__brave-search__.*` 形式在每个版本上都有效。

384 

385来自 [插件捆绑的 MCP 服务器](/docs/zh-CN/mcp#plugin-provided-mcp-servers) 的工具使用包含插件名称的范围服务器段:`mcp__plugin_<plugin-name>_<server-name>__<tool>`。针对裸服务器密钥编写的匹配器永远不会对这些工具触发。对于名为 `my-plugin` 的插件,在密钥 `db` 下捆绑服务器,`query` 工具显示为 `mcp__plugin_my-plugin_db__query`,因此来自该服务器的每个工具的匹配器是 `mcp__plugin_my-plugin_db__.*`。在处理程序的 [`if` 字段](#common-fields) 中使用相同的范围工具名称。有关如何构建范围名称的信息,请参阅 [插件提供的 MCP 服务器](/docs/zh-CN/mcp#plugin-provided-mcp-servers)。381来自 [插件捆绑的 MCP 服务器](/docs/zh-CN/mcp#plugin-provided-mcp-servers) 的工具使用包含插件名称的范围服务器段:`mcp__plugin_<plugin-name>_<server-name>__<tool>`。针对裸服务器密钥编写的匹配器永远不会对这些工具触发。对于名为 `my-plugin` 的插件,在密钥 `db` 下捆绑服务器,`query` 工具显示为 `mcp__plugin_my-plugin_db__query`,因此来自该服务器的每个工具的匹配器是 `mcp__plugin_my-plugin_db__.*`。在处理程序的 [`if` 字段](#common-fields) 中使用相同的范围工具名称。有关如何构建范围名称的信息,请参阅 [插件提供的 MCP 服务器](/docs/zh-CN/mcp#plugin-provided-mcp-servers)。

386 382 

387此示例记录所有内存服务器操作并验证来自任何 MCP 服务器的写入操作:383此示例记录所有内存服务器操作并验证来自任何 MCP 服务器的写入操作:


1187| `resume` | `--resume`、`--continue` 或 `/resume` |1183| `resume` | `--resume`、`--continue` 或 `/resume` |

1188| `clear` | `/clear` |1184| `clear` | `/clear` |

1189| `compact` | 自动或手动压缩 |1185| `compact` | 自动或手动压缩 |

1190| `fork` | 从现有会话分叉的新会话:`--fork-session` 与 `--resume` 或 `--continue`、`/fork` 后台副本或 `/branch` |1186| `fork` | 从现有会话分叉的新会话:`--fork-session` 与 `--resume` 或 `--continue`、`/fork` 后台副本、`/branch` 或您 [移到后台](/docs/zh-CN/agent-view#from-inside-a-session) 的对话 |

1191 1187 

1192在 v2.1.214 之前,分叉的会话报告源为 `"resume"`。1188在 v2.1.214 之前,分叉的会话报告源为 `"resume"`。

1193 1189 


2431| `elicitation_url_dialog` | MCP 服务器要求您打开浏览器 URL,您约六秒没有输入 |2427| `elicitation_url_dialog` | MCP 服务器要求您打开浏览器 URL,您约六秒没有输入 |

2432| `elicitation_complete` | MCP 服务器报告 [URL 模式引出](#elicitation-input) 完成 |2428| `elicitation_complete` | MCP 服务器报告 [URL 模式引出](#elicitation-input) 完成 |

2433| `elicitation_response` | MCP 引出响应被发送回服务器 |2429| `elicitation_response` | MCP 引出响应被发送回服务器 |

2434| `agent_needs_input` | 后台会话在 [agent view](/docs/zh-CN/agent-view) 在终端中打开时开始等待您的输入,或当前会话要求您一个 [agent team 队友的终端设置问题](/docs/zh-CN/agent-teams#choose-a-display-mode),您约六秒没有输入 |2430| `agent_needs_input` | 后台会话在 [agent view](/docs/zh-CN/agent-view) 在终端中打开时开始等待您的输入,或当前会话要求您一个 [agent team 队友的终端设置问题](/docs/zh-CN/agent-teams#choose-a-display-mode) 或自动模式的 [分类器请求费用](/docs/zh-CN/auto-mode-classifier-billing) 通知,您约六秒没有输入 |

2435| `agent_completed` | 后台会话完成或失败。仅在 [agent view](/docs/zh-CN/agent-view) 在终端中打开时触发 |2431| `agent_completed` | 后台会话完成或失败。仅在 [agent view](/docs/zh-CN/agent-view) 在终端中打开时触发 |

2436| `quota_auto_resume_fired` | Claude Code 在 claude.ai 使用限制暂停它后继续您的任务:在重置时,或更早当您在 Claude Code 中做的某事(如添加使用信用、升级您的计划或切换模型)在等待期间使使用可用时,带有 [模型设置异常](/docs/zh-CN/interactive-mode#wait-for-a-usage-limit-to-reset) |2432| `quota_auto_resume_fired` | Claude Code 在 claude.ai 使用限制暂停它后继续您的任务:在重置时,或更早当您在 Claude Code 中做的某事(如添加使用信用、升级您的计划或切换模型)在等待期间使使用可用时,带有 [模型设置异常](/docs/zh-CN/interactive-mode#wait-for-a-usage-limit-to-reset) |

2437| `quota_auto_resume_stale` | claude.ai 使用限制在您的计算机睡眠超过约 30 分钟时重置。Claude Code 等待您按 `Enter` 而不是继续。在更短的睡眠后它继续并改为触发 `quota_auto_resume_fired` |2433| `quota_auto_resume_stale` | claude.ai 使用限制在您的计算机睡眠超过约 30 分钟时重置。Claude Code 等待您按 `Enter` 而不是继续。在更短的睡眠后它继续并改为触发 `quota_auto_resume_fired` |

hooks-guide.md +1 −1

Details

196| `elicitation_url_dialog` | MCP 服务器要求你打开浏览器 URL,且你约六秒内没有输入 |196| `elicitation_url_dialog` | MCP 服务器要求你打开浏览器 URL,且你约六秒内没有输入 |

197| `elicitation_complete` | MCP 服务器报告[URL 模式引导](/docs/zh-CN/hooks#elicitation-input)已完成 |197| `elicitation_complete` | MCP 服务器报告[URL 模式引导](/docs/zh-CN/hooks#elicitation-input)已完成 |

198| `elicitation_response` | MCP 引导响应被发送回服务器 |198| `elicitation_response` | MCP 引导响应被发送回服务器 |

199| `agent_needs_input` | 后台会话开始等待你的输入,同时 [agent view](/docs/zh-CN/agent-view) 打开,或当前会话询问你一个[代理团队队友的终端设置问题](/docs/zh-CN/agent-teams#choose-a-display-mode),且你约六秒内没有输入 |199| `agent_needs_input` | 后台会话开始等待你的输入,同时 [agent view](/docs/zh-CN/agent-view) 打开。也在终端会话显示你一个[代理团队队友的终端设置问题](/docs/zh-CN/agent-teams#choose-a-display-mode)或自动模式的[分类器请求费用](/docs/zh-CN/auto-mode-classifier-billing)通知时触发,且你约六秒内没有输入 |

200| `agent_completed` | 后台会话完成或失败。仅在 [agent view](/docs/zh-CN/agent-view) 打开时触发 |200| `agent_completed` | 后台会话完成或失败。仅在 [agent view](/docs/zh-CN/agent-view) 打开时触发 |

201| `quota_auto_resume_fired` | Claude Code 在 claude.ai 使用限制暂停后继续你的任务:在重置时,或更早当你在等待期间在 Claude Code 中做的某些事情(如添加使用额度、升级你的计划或切换模型)使使用量再次可用时,但有[模型设置例外](/docs/zh-CN/interactive-mode#wait-for-a-usage-limit-to-reset) |201| `quota_auto_resume_fired` | Claude Code 在 claude.ai 使用限制暂停后继续你的任务:在重置时,或更早当你在等待期间在 Claude Code 中做的某些事情(如添加使用额度、升级你的计划或切换模型)使使用量再次可用时,但有[模型设置例外](/docs/zh-CN/interactive-mode#wait-for-a-usage-limit-to-reset) |

202| `quota_auto_resume_stale` | claude.ai 使用限制在你的计算机睡眠超过约 30 分钟时重置。Claude Code 等待你按 `Enter` 而不是继续。在较短的睡眠后它继续并改为触发 `quota_auto_resume_fired` |202| `quota_auto_resume_stale` | claude.ai 使用限制在你的计算机睡眠超过约 30 分钟时重置。Claude Code 等待你按 `Enter` 而不是继续。在较短的睡眠后它继续并改为触发 `quota_auto_resume_fired` |

keybindings.md +5 −2

Details

301| `footer:down` | Down | 在页脚中向下导航 |301| `footer:down` | Down | 在页脚中向下导航 |

302| `footer:openSelected` | Enter | 打开选定的页脚项 |302| `footer:openSelected` | Enter | 打开选定的页脚项 |

303| `footer:clearSelection` | Escape | 清除页脚选择 |303| `footer:clearSelection` | Escape | 清除页脚选择 |

304| `footer:dismiss` | (未绑定) | 在 v2.1.281 中移除。仍然命名该操作的 `keybindings.json` 保持有效,绑定不执行任何操作。在 v2.1.281 之前,Backspace 和 Delete 从页脚中关闭选定的 artifact 链接 |304| `footer:dismiss` | (未绑定) | 绑定键到此操作没有效果,命名它的 `keybindings.json` 保持有效。在 v2.1.281 之前,Backspace 和 Delete 被绑定到它,并从页脚中关闭选定的 artifact 链接。 |

305 305 

306选定页脚项时(例如提示下方的代理面板中的一行),即使您在 `Chat` 上下文中将 `Enter` 重新绑定到 `chat:queueSubmit` 或 `chat:newline`,`Enter` 也会打开它。306选定页脚项时(例如提示下方的代理面板中的一行),即使您在 `Chat` 上下文中将 `Enter` 重新绑定到 `chat:queueSubmit` 或 `chat:newline`,`Enter` 也会打开它。

307 307 


417| `select:accept` | Enter | 接受选择 |417| `select:accept` | Enter | 接受选择 |

418| `select:cancel` | Escape | 取消选择 |418| `select:cancel` | Escape | 取消选择 |

419 419 

420在列表面板中,例如 `/skills` 和 `/mcp`,Claude Code 应用您的 `select:pageUp`、`select:pageDown`、`select:first` 和 `select:last` 绑定。在大多数其他列表中,例如 `/model` 选择器,您的 `select:first` 和 `select:last` 绑定适用。PageUp 和 PageDown 在这些列表中进行分页,无论您的绑定如何。420在列表面板中,例如 `/skills`、`/mcp` 和 `/tasks`,Claude Code 应用您的 `select:pageUp`、`select:pageDown`、`select:first` 和 `select:last` 绑定。在大多数其他列表中,例如 `/model` 选择器,您的 `select:first` 和 `select:last` 绑定适用。PageUp 和 PageDown 在这些列表中进行分页,无论您的绑定如何。

421 421 

422在 v2.1.280 之前,这些其他列表忽略 Home、End 和您的 `select:first` 和 `select:last` 绑定。422在 v2.1.280 之前,这些其他列表忽略 Home、End 和您的 `select:first` 和 `select:last` 绑定。

423 423 

424在 v2.1.283 之前,`/mcp` 工具列表使用固定的 PageUp 和 PageDown 键进行分页,无论您的绑定如何。

425 

424<h3 id="plugin-actions">426<h3 id="plugin-actions">

425 Plugin 操作427 Plugin 操作

426</h3>428</h3>


692Claude Code 验证您的快捷键并向调试日志写入以下警告:694Claude Code 验证您的快捷键并向调试日志写入以下警告:

693 695 

694* 解析错误(无效的 JSON 或结构)696* 解析错误(无效的 JSON 或结构)

697* 拼写错误的修饰符,例如 `ctl+k`。Claude Code 会删除它无法识别的部分,并将绑定应用于剩余的按键,在此示例中为 `k`。

695* 无效的上下文名称698* 无效的上下文名称

696* 无效的操作值,例如不是字符串或 `null` 的操作699* 无效的操作值,例如不是字符串或 `null` 的操作

697* 未知的操作名称,例如注册操作的拼写错误。Claude Code 跳过该绑定并保持该键的任何默认绑定有效。在 v2.1.246 之前,具有未知操作名称的绑定会静默禁用该键700* 未知的操作名称,例如注册操作的拼写错误。Claude Code 跳过该绑定并保持该键的任何默认绑定有效。在 v2.1.246 之前,具有未知操作名称的绑定会静默禁用该键

Details

79 79 

80当客户端使用 Amazon Bedrock 格式时,原样中继 `InvokeModelWithResponseStream` 响应体及其 `Content-Type: application/vnd.amazon.eventstream` 头,不要将流转换为服务器发送事件。请参阅[网关或代理后面的流式传输错误](/docs/zh-CN/amazon-bedrock#streaming-errors-behind-a-gateway-or-proxy)。80当客户端使用 Amazon Bedrock 格式时,原样中继 `InvokeModelWithResponseStream` 响应体及其 `Content-Type: application/vnd.amazon.eventstream` 头,不要将流转换为服务器发送事件。请参阅[网关或代理后面的流式传输错误](/docs/zh-CN/amazon-bedrock#streaming-errors-behind-a-gateway-or-proxy)。

81 81 

82也转发保活 ping。在通过 `ANTHROPIC_BASE_URL` 或 `ANTHROPIC_AWS_BASE_URL` 的连接上,Claude Code 计算网关中继的每个字节,包括 SSE `ping` 事件和注释行,并默认在 300 秒内中止无声流。上游的 ping 是长思考暂停期间的唯一流量,因此如果您的网关剥离或缓冲它们,Claude Code 会在这些暂停期间中止流;[自动重试](/docs/zh-CN/errors#automatic-retries)涵盖了根据响应进度如何报告中止的流。完全不发送 ping 的上游(如 Amazon Bedrock 的二进制事件流)在这些暂停中没有任何东西可转发。从这样的上游转换时,在无声间隙期间发出您自己的 `ping` 事件。通过 `ANTHROPIC_BEDROCK_BASE_URL`、`ANTHROPIC_VERTEX_BASE_URL` 或 `ANTHROPIC_FOUNDRY_BASE_URL` 到达的网关不受此字节级监视程序的包装,即使它们中继 Anthropic Messages 格式;在那里,[5 分钟空闲超时](/docs/zh-CN/env-vars)会中止无声流,在 `ANTHROPIC_BEDROCK_BASE_URL` 连接上,您可以使用 [`CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK`](/docs/zh-CN/env-vars) 添加字节监视程序。82也转发保活 ping,因为 Claude Code 在 [默认五分钟](/docs/zh-CN/network-config#streaming-idle-watchdogs) 内没有字节到达时会中止流式响应。在长思考暂停期间,上游的 SSE `ping` 事件可能是流上唯一的字节。如果您的网关剥离或缓冲它们,Claude Code 会在暂停期间中止响应。当您从完全不发送 ping 的上游(如 Amazon Bedrock 的二进制事件流)进行转换时,在无声间隙期间发出您自己的 `ping` 事件。

83 83 

84<h3 id="format-mismatch-with-the-upstream">84<h3 id="format-mismatch-with-the-upstream">

85 与上游的格式不匹配85 与上游的格式不匹配

managed-mcp.md +40 −23

Details

31 31 

32| 模式 | 功能 | 配置 |32| 模式 | 功能 | 配置 |

33| :- | :- | :- |33| :- | :- | :- |

34| **禁用 MCP** | 不加载任何服务器,除了[启动会话的应用程序注册的进程内服务器](#exclusive-control-with-managed-mcp-json)和任何你[通过 `managedMcpServers` 提供的服务器](#provide-servers-through-managed-settings) | 使用空服务器映射的 `managed-mcp.json` |34| **禁用 MCP** | 不加载任何服务器,除了[在独占控制下加载](#exclusive-control-with-managed-mcp-json)的少数几个 | 使用空服务器映射的 `managed-mcp.json` |

35| **固定部署** | 每个用户获得相同的服务器,无法添加其他服务器 | 包含你想要的服务器的 `managed-mcp.json` |35| **固定部署** | 每个用户获得相同的服务器,无法添加其他服务器 | 包含你想要的服务器的 `managed-mcp.json` |

36| **提供的服务器** | 每个用户获得你列出的远程服务器,并保留他们自己的服务器 | 托管设置中的 `managedMcpServers` |36| **提供的服务器** | 每个用户获得你列出的远程服务器,并保留他们自己的服务器 | 托管设置中的 `managedMcpServers` |

37| **批准的目录** | 发布批准的服务器列表;用户添加他们想要的服务器,其他任何内容都被阻止 | `allowedMcpServers` + `allowManagedMcpServersOnly: true` |37| **批准的目录** | 发布批准的服务器列表;用户添加他们想要的服务器,其他任何内容都被阻止 | `allowedMcpServers` + `allowManagedMcpServersOnly: true` |


48 使用 managed-mcp.json 进行独占控制48 使用 managed-mcp.json 进行独占控制

49</h2>49</h2>

50 50 

51当你部署 `managed-mcp.json` 文件时,Claude Code 仅加载以下 MCP 服务器:51当你部署 `managed-mcp.json` 文件时,Claude Code 仅加载这些 MCP 服务器:

52 52 

53* 该文件定义的服务器53* 该文件定义的服务器

54* 你[通过 `managedMcpServers` 提供的服务器](#provide-servers-through-managed-settings)54* 你[通过 `managedMcpServers` 提供的服务器](#provide-servers-through-managed-settings)

55* 启动会话的应用注册的进程内服务器,例如 VS Code 扩展自己的服务器或[桌面应用提供的连接器](/docs/zh-CN/mcp#how-connectors-reach-claude-code)55* 启动会话的应用程序注册的进程内服务器,例如 VS Code 扩展自己的服务器或[桌面应用程序提供的连接器](/docs/zh-CN/mcp#how-connectors-reach-claude-code)

56* 内置的[Chrome 中的 Claude](/docs/zh-CN/chrome) 服务器,如果你[允许它与托管集合一起使用](#allow-claude-in-chrome-alongside-the-managed-set)

56 57 

57用户无法添加、修改或使用任何其他 MCP 服务器,包括插件提供的服务器和通过 [`--mcp-config` CLI 标志](/docs/zh-CN/cli-reference#cli-flags)传递的服务器。该文件还会抑制 Claude Code 自身获取的 claude.ai 连接器,除非你[允许它们与托管集合一起使用](#allow-claude-ai-connectors-alongside-the-managed-set)。58用户无法添加、修改或使用任何其他 MCP 服务器,包括插件提供的服务器和通过 [`--mcp-config` CLI 标志](/docs/zh-CN/cli-reference#cli-flags)传递的服务器。该文件还会禁止 Claude Code 自身获取的 claude.ai 连接器,除非你[允许它们与托管集合一起使用](#allow-claude-ai-connectors-alongside-the-managed-set)。

58 59 

59<h3 id="deploy-managed-mcp-json">60<h3 id="deploy-managed-mcp-json">

60 部署 managed-mcp.json61 部署 managed-mcp.json


62 63 

63`managed-mcp.json` 是一个独立文件,因此无法通过[服务器管理的设置](/docs/zh-CN/server-managed-settings)交付。要通过托管设置交付服务器而不进行独占控制,请使用 [`managedMcpServers`](#provide-servers-through-managed-settings)。64`managed-mcp.json` 是一个独立文件,因此无法通过[服务器管理的设置](/docs/zh-CN/server-managed-settings)交付。要通过托管设置交付服务器而不进行独占控制,请使用 [`managedMcpServers`](#provide-servers-through-managed-settings)。

64 65 

65任何可以以管理员权限写入系统路径的进程都可以部署该文件。在整个机队中,这通常通过设备管理工具进行,例如 macOS 上的 Jamf 或配置文件、Windows 上的组策略或 Intune,或 Linux 上你选择的机队管理工具。Claude Code 在以下路径之一查找该文件:66任何可以以管理员权限写入系统路径的进程都可以部署该文件。在整个机队中,这通常通过设备管理工具完成,例如 macOS 上的 Jamf 或配置文件、Windows 上的组策略或 Intune,或 Linux 上你选择的机队管理工具。Claude Code 在以下路径之一查找该文件:

66 67 

67| 平台 | 路径 |68| 平台 | 路径 |

68| :- | :- |69| :- | :- |


99 使用按用户凭证进行身份验证100 使用按用户凭证进行身份验证

100</h3>101</h3>

101 102 

102机器上的任何用户都可以读取此文件,因此不要在 `env` 块中存储 API 密钥或其他凭证。改用以下方式之一传递按用户凭证:103机器上的任何用户都可以读取此文件,因此不要在 `env` 块中存储 API 密钥或其他凭证。改为使用以下方式之一传递按用户凭证:

103 104 

104* [使用 `${VAR}` 扩展](/docs/zh-CN/mcp#environment-variable-expansion-in-mcp-json)从每个用户的环境中读取机密。105* [`${VAR}` 扩展](/docs/zh-CN/mcp#environment-variable-expansion-in-mcp-json)从每个用户的环境中读取机密。

105* [OAuth 或按用户标头](/docs/zh-CN/mcp#authenticate-with-remote-mcp-servers),以便每个用户以自己的身份进行身份验证。106* [OAuth 或按用户标头](/docs/zh-CN/mcp#authenticate-with-remote-mcp-servers)使每个用户以自己的身份进行身份验证。

106* [`headersHelper`](/docs/zh-CN/mcp#use-dynamic-headers-for-custom-authentication)在连接时生成凭证。107* [`headersHelper`](/docs/zh-CN/mcp#use-dynamic-headers-for-custom-authentication)在连接时生成凭证。

107 108 

108<h3 id="servers-passed-with-mcp-config-or-strict-mcp-config">109<h3 id="servers-passed-with-mcp-config-or-strict-mcp-config">

109 通过 `--mcp-config` 或 `--strict-mcp-config` 传递的服务器110 通过 `--mcp-config` 或 `--strict-mcp-config` 传递的服务器

110</h3>111</h3>

111 112 

112当会话在部署 `managed-mcp.json` 时通过 `--mcp-config` 接收服务器时,用户看到的内容在工作站和云会话之间有所不同:113当会话通过 `--mcp-config` 接收服务器,同时部署了 Claude Code 可以读取和解析的 `managed-mcp.json` 时,用户看到的内容在工作站和云会话之间有所不同:

113 114 

114* 在工作站上,Claude Code 在启动时退出,显示 `You cannot dynamically configure MCP servers when an enterprise MCP config is present`。115* 在工作站上,Claude Code 在启动时退出,显示 `You cannot dynamically configure MCP servers when an enterprise MCP config is present`。

115* 在部署了该文件的主机上的[云会话](/docs/zh-CN/claude-code-on-the-web)中,例如[自托管运行器](/docs/zh-CN/self-hosted-environments-configuration#mcp-servers),Claude Code 仅使用托管服务器启动,并跳过 claude.ai 连接器和云主机通过 `--mcp-config` 交付的其他服务器。会话中没有任何内容告诉用户哪些服务器被遗漏了。Claude Code 在其 stderr 上的警告中命名它们,自托管运行器在 `debug` 日志级别记录这些警告。116* 在[云会话](/docs/zh-CN/claude-code-on-the-web)中,在部署了该文件的主机上,例如[自托管运行器](/docs/zh-CN/self-hosted-environments-configuration#mcp-servers),Claude Code 仅使用托管服务器启动,并跳过 claude.ai 连接器和云主机通过 `--mcp-config` 交付的其他服务器。会话中没有任何内容告诉用户哪些服务器被遗漏了。Claude Code 在其 stderr 上以警告的形式命名它们,自托管运行器在 `debug` 日志级别记录这些警告。

116 117 

117`--strict-mcp-config` 标志要求替换托管集合。如果用户在部署了这样的文件时传递它,Claude Code 在工作站和云会话中都会在启动时退出。118`--strict-mcp-config` 标志要求替换托管集合。如果用户在部署了这样的文件时传递它,Claude Code 在工作站和云会话中都会在启动时退出。

118 119 


125* `deniedMcpServers` 也适用于托管服务器,因此与条目匹配的托管服务器将不会加载。126* `deniedMcpServers` 也适用于托管服务器,因此与条目匹配的托管服务器将不会加载。

126* 用户自己的 `deniedMcpServers` 从他们的设置中合并,因此用户可以为自己阻止托管服务器。127* 用户自己的 `deniedMcpServers` 从他们的设置中合并,因此用户可以为自己阻止托管服务器。

127 128 

128`allowedMcpServers` 不适用于 `managed-mcp.json` 中的服务器,有一个例外:Claude Code 仍然会检查其定义使用 [`${VAR}` 扩展](/docs/zh-CN/mcp#environment-variable-expansion-in-mcp-json)的服务器是否符合允许列表,因为该服务器的有效配置来自每个用户的环境而不是仅来自文件。在 v2.1.259 之前,每个托管服务器在设置了允许列表时都必须通过允许列表。有关哪些字段触发 `${VAR}` 检查和完整检查顺序,请参阅[如何评估服务器](#how-a-server-is-evaluated)。129`allowedMcpServers` 不适用于 `managed-mcp.json` 中的服务器,有一个例外:Claude Code 仍然会针对允许列表检查其定义使用 [`${VAR}` 扩展](/docs/zh-CN/mcp#environment-variable-expansion-in-mcp-json)的服务器,因为该服务器的有效配置来自每个用户的环境而不仅仅来自文件。在 v2.1.259 之前,每个托管服务器在设置了允许列表时都必须通过允许列表。有关哪些字段触发 `${VAR}` 检查和完整检查顺序,请参阅[如何评估服务器](#how-a-server-is-evaluated)。

129 130 

130如果你使用 `allowedMcpServers` 来防止你自己的某些 `managed-mcp.json` 服务器加载,那些服务器将在每个用户首次启动 v2.1.259 或更高版本时开始加载,除非它们使用 `${VAR}` 扩展,没有提示或通知:只有 `deniedMcpServers` 仍然从这些服务器中减去。在用户升级之前,为它们添加拒绝列表条目,或为每个组部署单独的 `managed-mcp.json`。131如果你使用 `allowedMcpServers` 来防止你自己的某些 `managed-mcp.json` 服务器加载,那些服务器将在每个用户首次启动 v2.1.259 或更高版本时开始加载,除非它们使用 `${VAR}` 扩展,没有提示或通知:只有 `deniedMcpServers` 仍然从这些服务器中减去。在用户升级之前,为它们添加拒绝列表条目,或为每个组部署单独的 `managed-mcp.json`。

131 132 


135 136 

136要确认文件生效,请在托管机器上运行两项检查:137要确认文件生效,请在托管机器上运行两项检查:

137 138 

1381. `claude mcp list` 仅显示 `managed-mcp.json` 中的服务器,加上你通过 `managedMcpServers` 提供的任何服务器。两个其他结果意味着出现了问题:1391. `claude mcp list` 仅显示 `managed-mcp.json` 中的服务器,加上你通过 `managedMcpServers` 提供的任何服务器。另外两个结果意味着出现了问题:

139 * 如果用户自己的服务器仍然出现,Claude Code 未读取该文件,因此请检查其路径和父目录的权限。140 * 如果用户自己的服务器仍然出现,Claude Code 没有读取该文件,因此请检查其路径和父目录的权限。

140 * 如果文件的服务器未出现,且 `MCP config diagnostics` 部分将企业配置标记为无法解析,Claude Code 无法读取或解析该文件。修复该部分命名的错误,然后让用户重新启动 Claude Code。141 * 如果文件的服务器没有出现,且 `MCP config diagnostics` 部分将企业配置标记为解析失败,Claude Code 无法读取或解析该文件。修复该部分命名的错误,然后让用户重新启动 Claude Code。

1412. `claude mcp add --transport http test https://example.com/mcp` 失败,显示 `Cannot add MCP server: enterprise MCP configuration is active and has exclusive control over MCP servers`。URL 不需要是真实服务器,因为策略检查在联系任何内容之前拒绝该命令。1422. `claude mcp add --transport http test https://example.com/mcp` 失败,显示 `Cannot add MCP server: enterprise MCP configuration is active and has exclusive control over MCP servers`。URL 不需要是真实服务器,因为策略检查在联系任何内容之前拒绝该命令。

142 143 

143<h3 id="disable-mcp-entirely">144<h3 id="disable-mcp-entirely">

144 完全禁用 MCP145 完全禁用 MCP

145</h3>146</h3>

146 147 

147部署包含空服务器映射的 `managed-mcp.json` 以阻止除[启动会话的应用注册的进程内服务器](#exclusive-control-with-managed-mcp-json)之外的每个 MCP 服务器:148部署包含空服务器映射的 `managed-mcp.json` 以阻止除[在独占控制下加载](#exclusive-control-with-managed-mcp-json)的服务器之外的每个 MCP 服务器:

148 149 

149```json theme={null}150```json theme={null}

150{151{


152}153}

153```154```

154 155 

155`claude mcp add` 失败,显示上面的企业策略错误。用户之前配置的服务器在下次启动会话时停止加载,没有警告说明策略是原因。你通过 `managedMcpServers` 提供的服务器仍在空映射下加载,因此也保持该密钥未设置以完全禁用 MCP。156`claude mcp add` 失败,显示上述企业策略错误。用户之前配置的服务器在下次启动会话时停止加载,没有警告说明策略是原因。你通过 `managedMcpServers` 提供的服务器以及你允许与托管集合一起使用的任何其他内容仍然在空映射下加载,因此保持这些键未设置以完全关闭 MCP。

156 157 

157<h3 id="allow-claude-ai-connectors-alongside-the-managed-set">158<h3 id="allow-claude-ai-connectors-alongside-the-managed-set">

158 允许 claude.ai 连接器与托管集合一起使用159 允许 claude.ai 连接器与托管集合一起使用

159</h3>160</h3>

160 161 

161默认情况下,部署 `managed-mcp.json` 会抑制 Claude Code 自身获取的 [claude.ai 连接器](/docs/zh-CN/mcp#use-mcp-servers-from-claude-ai),包括管理员在 claude.ai 管理控制台中为组织配置的连接器。要将这些连接器与 `managed-mcp.json` 中的服务器一起加载,请在[托管设置源](/docs/zh-CN/admin-setup#decide-how-settings-reach-devices)中设置 `"allowAllClaudeAiMcps": true`。162默认情况下,部署 `managed-mcp.json` 会禁止 Claude Code 自身获取的 [claude.ai 连接器](/docs/zh-CN/mcp#use-mcp-servers-from-claude-ai),包括管理员在 claude.ai 管理控制台中为组织配置的连接器。要将这些连接器与 `managed-mcp.json` 中的服务器一起加载,请在[托管设置源](/docs/zh-CN/admin-setup#decide-how-settings-reach-devices)中设置 `"allowAllClaudeAiMcps": true`。

162 163 

163启用该设置后,Claude Code 加载与未部署 `managed-mcp.json` 时相同的 claude.ai 连接器。[允许列表和拒绝列表](#policy-based-control-with-allowlists-and-denylists)仍然适用于这些连接器,因此你可以使用 `deniedMcpServers` 阻止特定连接器。该设置仅影响 Claude Code 自身获取的 claude.ai 连接器;插件提供的服务器保持被抑制。164启用该设置后,Claude Code 加载与未部署 `managed-mcp.json` 时相同的 claude.ai 连接器。[允许列表和拒绝列表](#policy-based-control-with-allowlists-and-denylists)仍然适用于这些连接器,因此你可以使用 `deniedMcpServers` 阻止特定的连接器。该设置仅影响 Claude Code 自身获取的 claude.ai 连接器;插件提供的服务器保持禁止。

164 165 

165云会话和桌面应用的本地和 SSH 会话以另一种方式接收连接器,如[连接器如何到达 Claude Code](/docs/zh-CN/mcp#how-connectors-reach-claude-code) 中所述。运行云会话的主机上的 `managed-mcp.json`,例如[自托管运行器主机](/docs/zh-CN/self-hosted-environments-configuration#mcp-servers),无论你是否设置 `allowAllClaudeAiMcps`,都会抑制该会话的连接器。没有 `managed-mcp.json` 到达桌面应用交付给其本地和 SSH 会话的连接器。166云会话和桌面应用程序的本地和 SSH 会话以另一种方式接收连接器,如[连接器如何到达 Claude Code](/docs/zh-CN/mcp#how-connectors-reach-claude-code) 中所述。运行云会话的主机上的 `managed-mcp.json`,例如[自托管运行器主机](/docs/zh-CN/self-hosted-environments-configuration#mcp-servers),无论你是否设置 `allowAllClaudeAiMcps`,都会禁止该会话的连接器。没有 `managed-mcp.json` 到达桌面应用程序交付给其本地和 SSH 会话的连接器。

166 167 

167Claude Code 仅从管理员控制的策略层读取 `allowAllClaudeAiMcps`:服务器管理的设置、MDM 部署的 plist 或 HKLM 注册表密钥,或系统 `managed-settings.json` 文件。将其放在用户或项目设置中无效,因此用户无法重新启用独占控制抑制的连接器。168Claude Code 仅从管理员控制的策略层读取 `allowAllClaudeAiMcps`:服务器管理的设置、MDM 部署的 plist 或 HKLM 注册表项,或系统 `managed-settings.json` 文件。将其放在用户或项目设置中无效,因此用户无法重新启用独占控制禁止的连接器。

169 

170<h3 id="allow-claude-in-chrome-alongside-the-managed-set">

171 允许 Chrome 中的 Claude 与托管集合一起使用

172</h3>

173 

174默认情况下,当你部署 `managed-mcp.json` 时,Claude Code 在终端会话中阻止内置的[Chrome 中的 Claude](/docs/zh-CN/chrome) 服务器。用户不会获得[扩展安装提示](/docs/zh-CN/chrome#install-the-extension-when-claude-asks),以及用户[默认启用 Chrome](/docs/zh-CN/chrome#enable-chrome-by-default) 的会话启动时不使用 Chrome 且不打印警告。当可以运行 Chrome 中的 Claude 的用户使用 `claude --chrome` 或 `CLAUDE_CODE_ENABLE_CFC=1` 启动它时,Claude Code 在启动时退出,显示命名 `allowClaudeInChromeWithManagedMcp` 设置的错误。

175 

176要让用户在 `managed-mcp.json` 中的服务器旁边运行 Chrome 中的 Claude,请在设备自己的托管设置中设置 `"allowClaudeInChromeWithManagedMcp": true`。将其放在 MDM 部署的 plist 或 HKLM 注册表项中,或系统 `managed-settings.json` 文件中,无论 Claude Code 在该设备上[选择](/docs/zh-CN/managed-settings#precedence-within-the-managed-tier)哪个。需要 Claude Code v2.1.282 或更高版本。在 v2.1.282 之前,Claude Code 忽略该设置,启动错误读取 `You cannot dynamically configure MCP servers when an enterprise MCP config is present`。

177 

178Claude Code 从这些设备源读取该设置,即使[服务器管理的设置](/docs/zh-CN/server-managed-settings)交付你的其余策略。它忽略服务器管理的设置本身、用户可写的 HKCU 注册表和用户或项目设置中的该设置。[`deniedMcpServers`](#policy-based-control-with-allowlists-and-denylists) 条目中的 `claude-in-chrome` 仍然会阻止该服务器,即使该设置已启用。

168 179 

169<h2 id="provide-servers-through-managed-settings">180<h2 id="provide-servers-through-managed-settings">

170 通过托管设置提供服务器181 通过托管设置提供服务器


303 314 

304| 设置 | 未设置(默认) | 空数组 `[]` | 已填充 |315| 设置 | 未设置(默认) | 空数组 `[]` | 已填充 |

305| :- | :- | :- | :- |316| :- | :- | :- | :- |

306| `allowedMcpServers` | 允许所有服务器 | 不允许任何服务器,除了[组织自己的](#how-a-server-is-evaluated) | 仅允许匹配的服务器,除了[组织自己的](#how-a-server-is-evaluated) |317| `allowedMcpServers` | 允许所有服务器 | 不允许任何服务器,除了[那些跳过允许列表检查的](#how-a-server-is-evaluated) | 仅允许匹配的服务器,除了[那些跳过允许列表检查的](#how-a-server-is-evaluated) |

307| `deniedMcpServers` | 不阻止任何服务器 | 不阻止任何服务器 | 阻止匹配的服务器 |318| `deniedMcpServers` | 不阻止任何服务器 | 不阻止任何服务器 | 阻止匹配的服务器 |

308 319 

309有关条目未通过架构验证时会发生什么,请参阅[托管设置中的无效条目](/docs/zh-CN/managed-settings#invalid-entries-in-managed-settings)。320有关条目未通过架构验证时会发生什么,请参阅[托管设置中的无效条目](/docs/zh-CN/managed-settings#invalid-entries-in-managed-settings)。


3292. **检查拒绝列表。** 与任何拒绝列表条目匹配的服务器(按 URL、命令或名称)被阻止。没有任何东西可以覆盖拒绝列表匹配。3402. **检查拒绝列表。** 与任何拒绝列表条目匹配的服务器(按 URL、命令或名称)被阻止。没有任何东西可以覆盖拒绝列表匹配。

3303. **检查允许列表。** 如果 `allowedMcpServers` 未在任何地方设置,每个通过拒绝列表的服务器都会加载。如果已设置,服务器必须匹配的内容取决于其类型,如下表所示。3413. **检查允许列表。** 如果 `allowedMcpServers` 未在任何地方设置,每个通过拒绝列表的服务器都会加载。如果已设置,服务器必须匹配的内容取决于其类型,如下表所示。

331 342 

332 组织自己的服务器跳过此检查:每个 `managedMcpServers` 条目,以及任何 `managed-mcp.json` 条目,其值不使用 `${VAR}` 展开。内置服务器也跳过它,例如 Chrome 中的 Claude、Claude Code 在运行的 VS Code 或 JetBrains IDE 中连接的 `ide` 服务器,以及 CLI 本身配置的服务器。343 三组服务器跳过此检查:

344 

345 * 组织自己的服务器:每个 `managedMcpServers` 条目,以及任何 `managed-mcp.json` 条目,其值不使用 `${VAR}` 展开。

346 * 内置服务器,例如 Chrome 中的 Claude、Claude Code 在运行的 VS Code 或 JetBrains IDE 中连接的 `ide` 服务器,以及 CLI 本身配置的服务器。

347 * [Claude Tag](/docs/zh-CN/claude-tag) 会话的 Slack 工具:它用来读取线程和发布回复的服务器无需允许列表条目即可加载。

333 348 

334 使用 `${VAR}` 展开的 `managed-mcp.json` 服务器在其命令、参数、`env`、URL 或标头中仍会被检查,用户、插件、`--mcp-config` 或 claude.ai 添加的每个服务器也是如此。349 使用 `${VAR}` 展开的 `managed-mcp.json` 服务器在其命令、参数、`env`、URL 或标头中仍会被检查。用户、插件或 claude.ai 添加的每个服务器也是如此,以及用户通过 `--mcp-config` 传递的每个服务器。

335 350 

336| 服务器类型 | 匹配时允许 |351| 服务器类型 | 匹配时允许 |

337| :- | :- |352| :- | :- |


514| 限制 | 用户看到的内容 |529| 限制 | 用户看到的内容 |

515| :- | :- |530| :- | :- |

516| `managed-mcp.json` 存在且用户运行 `claude mcp add` | `Cannot add MCP server: enterprise MCP configuration is active and has exclusive control over MCP servers` |531| `managed-mcp.json` 存在且用户运行 `claude mcp add` | `Cannot add MCP server: enterprise MCP configuration is active and has exclusive control over MCP servers` |

532| `managed-mcp.json` 存在且可以在 Chrome 中运行 Claude 的用户运行 `claude --chrome` | Claude Code 在启动时退出,显示 `Claude in Chrome is blocked by your organization's managed MCP configuration (managed-mcp.json). An administrator can allow it with allowClaudeInChromeWithManagedMcp in device policy.` |

517| 服务器在拒绝列表上且用户运行 `claude mcp add` | `Cannot add MCP server "<name>": server is explicitly blocked by enterprise policy` |533| 服务器在拒绝列表上且用户运行 `claude mcp add` | `Cannot add MCP server "<name>": server is explicitly blocked by enterprise policy` |

518| 服务器不在允许列表上且用户运行 `claude mcp add` | `Cannot add MCP server "<name>": not allowed by enterprise policy` |534| 服务器不在允许列表上且用户运行 `claude mcp add` | `Cannot add MCP server "<name>": not allowed by enterprise policy` |

519| 用户在来自 `managedMcpServers` 的服务器上运行 `claude mcp remove` | `MCP server "<name>" is provided by your organization (managed settings) and cannot be removed locally.` |535| 用户在来自 `managedMcpServers` 的服务器上运行 `claude mcp remove` | `MCP server "<name>" is provided by your organization (managed settings) and cannot be removed locally.` |


541| `allowedMcpServers` | 允许的服务器允许列表 | 任何[设置范围](/docs/zh-CN/settings#where-settings-live);[服务器如何被评估](#how-a-server-is-evaluated)说明来自多个范围和托管源的列表如何组合 | 为了强制执行,一个[托管设置源](/docs/zh-CN/admin-setup#decide-how-settings-reach-devices):服务器管理的设置、`managed-settings.json`、MDM 配置文件或注册表 |557| `allowedMcpServers` | 允许的服务器允许列表 | 任何[设置范围](/docs/zh-CN/settings#where-settings-live);[服务器如何被评估](#how-a-server-is-evaluated)说明来自多个范围和托管源的列表如何组合 | 为了强制执行,一个[托管设置源](/docs/zh-CN/admin-setup#decide-how-settings-reach-devices):服务器管理的设置、`managed-settings.json`、MDM 配置文件或注册表 |

542| `deniedMcpServers` | 被阻止的服务器拒绝列表 | 任何设置范围;[服务器如何被评估](#how-a-server-is-evaluated)说明来自多个范围和托管源的列表如何组合 | 与 `allowedMcpServers` 相同 |558| `deniedMcpServers` | 被阻止的服务器拒绝列表 | 任何设置范围;[服务器如何被评估](#how-a-server-is-evaluated)说明来自多个范围和托管源的列表如何组合 | 与 `allowedMcpServers` 相同 |

543| `allowManagedMcpServersOnly` | 将允许列表锁定为仅托管源 | 仅托管设置源;[从每个管理源读取的密钥](/docs/zh-CN/managed-settings#keys-read-from-every-admin-source)说明哪些托管源可以打开它。该设置在其他范围中无效 | 与 `allowedMcpServers` 相同 |559| `allowManagedMcpServersOnly` | 将允许列表锁定为仅托管源 | 仅托管设置源;[从每个管理源读取的密钥](/docs/zh-CN/managed-settings#keys-read-from-every-admin-source)说明哪些托管源可以打开它。该设置在其他范围中无效 | 与 `allowedMcpServers` 相同 |

560| `allowClaudeInChromeWithManagedMcp` | 让内置的 Chrome 中的 Claude 服务器与 `managed-mcp.json` 一起运行 | 设备上的托管设置:MDM 配置文件、HKLM 注册表或 `managed-settings.json`。服务器管理的设置和用户可写源无效 | MDM、GPO、舰队管理或任何具有管理员权限的进程 |

544| `allowAllClaudeAiMcps` | 加载 claude.ai 连接器,Claude Code 自身与 `managed-mcp.json` 一起获取。[在运行云会话的主机上的 `managed-mcp.json` 仍然会抑制该会话的连接器](#allow-claude-ai-connectors-alongside-the-managed-set) | 仅托管设置源;该设置在其他地方无效 | 与 `allowedMcpServers` 相同 |561| `allowAllClaudeAiMcps` | 加载 claude.ai 连接器,Claude Code 自身与 `managed-mcp.json` 一起获取。[在运行云会话的主机上的 `managed-mcp.json` 仍然会抑制该会话的连接器](#allow-claude-ai-connectors-alongside-the-managed-set) | 仅托管设置源;该设置在其他地方无效 | 与 `allowedMcpServers` 相同 |

545 562 

546<h2 id="related-resources">563<h2 id="related-resources">

Details

449| [`blockedMarketplaces`](/docs/zh-CN/settings-reference#blockedmarketplaces) | 市场源的阻止列表。被阻止的源在下载前被检查,因此它们永远不会接触文件系统。请参阅[托管市场限制](/docs/zh-CN/plugins/org#restrict-what-users-can-install) |449| [`blockedMarketplaces`](/docs/zh-CN/settings-reference#blockedmarketplaces) | 市场源的阻止列表。被阻止的源在下载前被检查,因此它们永远不会接触文件系统。请参阅[托管市场限制](/docs/zh-CN/plugins/org#restrict-what-users-can-install) |

450| [`channelsEnabled`](/docs/zh-CN/settings-reference#channelsenabled) | 允许组织的[通道](/docs/zh-CN/channels)。请参阅[企业控制](/docs/zh-CN/channels#enterprise-controls)以获取每个计划上的默认值 |450| [`channelsEnabled`](/docs/zh-CN/settings-reference#channelsenabled) | 允许组织的[通道](/docs/zh-CN/channels)。请参阅[企业控制](/docs/zh-CN/channels#enterprise-controls)以获取每个计划上的默认值 |

451| [`disableCommandPluginSources`](/docs/zh-CN/settings-reference#disablecommandpluginsources) | 当 `true` 时,完全阻止[`command` 插件源](/docs/zh-CN/plugins/marketplace-reference#command-plugin-source),因此市场声明的命令永远不会运行。也阻止市场[`headersHelper` 命令](/docs/zh-CN/plugins/host-marketplace#authenticate-archive-downloads),除了托管设置本身声明的市场。未设置时,遵循 `allowManagedHooksOnly`。需要 Claude Code v2.1.229 或更高版本,`headersHelper` 块需要 v2.1.238 或更高版本 |451| [`disableCommandPluginSources`](/docs/zh-CN/settings-reference#disablecommandpluginsources) | 当 `true` 时,完全阻止[`command` 插件源](/docs/zh-CN/plugins/marketplace-reference#command-plugin-source),因此市场声明的命令永远不会运行。也阻止市场[`headersHelper` 命令](/docs/zh-CN/plugins/host-marketplace#authenticate-archive-downloads),除了托管设置本身声明的市场。未设置时,遵循 `allowManagedHooksOnly`。需要 Claude Code v2.1.229 或更高版本,`headersHelper` 块需要 v2.1.238 或更高版本 |

452| [`disableSideloadFlags`](/docs/zh-CN/settings-reference#disablesideloadflags) | 在启动时拒绝 `--plugin-dir`、`--plugin-url`、`--agents` 和 `--mcp-config` 标志。在云会话中,Claude Code 删除服务器通过 `--mcp-config` 交付的 MCP 服务器,除了进程内 `type: "sdk"` 条目,并启动会话。需要 Claude Code v2.1.193 或更高版本 |452| [`disableSideloadFlags`](/docs/zh-CN/settings-reference#disablesideloadflags) | 在启动时拒绝 `--plugin-dir`、`--plugin-url`、`--agents` 和 `--mcp-config` 标志。在云会话中,Claude Code 删除服务器通过 `--mcp-config` 交付的 MCP 服务器,除了其[参考条目](/docs/zh-CN/settings-reference#disablesideloadflags)列出的异常,并启动会话。需要 Claude Code v2.1.193 或更高版本 |

453| [`forceRemoteSettingsRefresh`](/docs/zh-CN/settings-reference#forceremotesettingsrefresh) | 当 `true` 时,阻止 CLI 启动,直到远程托管设置被新鲜获取,如果获取失败则退出。请参阅[失败关闭强制执行](/docs/zh-CN/server-managed-settings#enforce-fail-closed-startup) |453| [`forceRemoteSettingsRefresh`](/docs/zh-CN/settings-reference#forceremotesettingsrefresh) | 当 `true` 时,阻止 CLI 启动,直到远程托管设置被新鲜获取,如果获取失败则退出。请参阅[失败关闭强制执行](/docs/zh-CN/server-managed-settings#enforce-fail-closed-startup) |

454| [`managedMcpServers`](/docs/zh-CN/settings-reference#managedmcpservers) | 提供给每个用户的远程 MCP 服务器,与他们自己的一起。它提供服务器而不是锁定任何东西。请参阅[通过托管设置提供服务器](/docs/zh-CN/managed-mcp#provide-servers-through-managed-settings)。需要 Claude Code v2.1.259 或更高版本 |454| [`managedMcpServers`](/docs/zh-CN/settings-reference#managedmcpservers) | 提供给每个用户的远程 MCP 服务器,与他们自己的一起。它提供服务器而不是锁定任何东西。请参阅[通过托管设置提供服务器](/docs/zh-CN/managed-mcp#provide-servers-through-managed-settings)。需要 Claude Code v2.1.259 或更高版本 |

455| [`managedSourcesBehavior`](/docs/zh-CN/settings-reference#managedsourcesbehavior) | Claude Code 是仅应用最高优先级托管源还是[组合它们中的每一个](#compose-every-managed-source) |455| [`managedSourcesBehavior`](/docs/zh-CN/settings-reference#managedsourcesbehavior) | Claude Code 是仅应用最高优先级托管源还是[组合它们中的每一个](#compose-every-managed-source) |

mcp.md +3 −3

Details

542 * 在 [云会话](/docs/zh-CN/claude-code-on-the-web) 中,对尚未连接的插件服务器的 MCP 调用(例如在空闲会话唤醒后),按需启动服务器并等待它连接542 * 在 [云会话](/docs/zh-CN/claude-code-on-the-web) 中,对尚未连接的插件服务器的 MCP 调用(例如在空闲会话唤醒后),按需启动服务器并等待它连接

543* **路径占位符**:`${CLAUDE_PLUGIN_ROOT}` 解析为插件的安装目录,`${CLAUDE_PLUGIN_DATA}` 解析为其 [持久状态](/docs/zh-CN/plugins/components#path-variables-and-persistent-data) 目录,`${CLAUDE_PROJECT_DIR}` 解析为稳定的项目根目录。替换适用于:543* **路径占位符**:`${CLAUDE_PLUGIN_ROOT}` 解析为插件的安装目录,`${CLAUDE_PLUGIN_DATA}` 解析为其 [持久状态](/docs/zh-CN/plugins/components#path-variables-and-persistent-data) 目录,`${CLAUDE_PROJECT_DIR}` 解析为稳定的项目根目录。替换适用于:

544 * `stdio` 服务器:`command`、`args`、`env`544 * `stdio` 服务器:`command`、`args`、`env`

545 * `http`、`sse` 和 `ws` 服务器:`url`、`headers` 和 `headersHelper`。在 v2.1.195 之前,`headersHelper` 将占位符作为文字字符串传递545 * `http`、`sse` 和 `ws` 服务器:`url`、`headers` 和 `headersHelper`

546* **用户环境访问**:访问与手动配置的服务器相同的环境变量546* **用户环境访问**:访问与手动配置的服务器相同的环境变量

547* **多种传输类型**:支持 stdio、SSE、HTTP 和 WebSocket 传输,尽管传输支持可能因服务器而异547* **多种传输类型**:支持 stdio、SSE、HTTP 和 WebSocket 传输,尽管传输支持可能因服务器而异

548 548 


1101 1101 

1102| 您配置服务器的位置 | 工作目录 |1102| 您配置服务器的位置 | 工作目录 |

1103| :- | :- |1103| :- | :- |

1104| [插件](/docs/zh-CN/plugins/components#mcp-servers) | 插件的根目录。需要 Claude Code v2.1.195 或更高版本 |1104| [插件](/docs/zh-CN/plugins/components#mcp-servers) | 插件的根目录 |

1105| 项目 `.mcp.json` 或 [本地范围](#local-scope) 服务器 | 声明服务器的项目目录 |1105| 项目 `.mcp.json` 或 [本地范围](#local-scope) 服务器 | 声明服务器的项目目录 |

1106| 您项目中的代理文件、来自 SDK 的 `mcpServers` 选项或 `setMcpServers()` 方法的服务器,或 [`--mcp-config`](/docs/zh-CN/cli-reference) | 会话的 [主工作目录](/docs/zh-CN/permissions#working-directories) |1106| 您项目中的代理文件、来自 SDK 的 `mcpServers` 选项或 `setMcpServers()` 方法的服务器,或 [`--mcp-config`](/docs/zh-CN/cli-reference) | 会话的 [主工作目录](/docs/zh-CN/permissions#working-directories) |

1107| [用户范围](#user-scope)、[托管 MCP](/docs/zh-CN/managed-mcp)、[claude.ai 连接器](#use-mcp-servers-from-claude-ai),或来自您项目外的代理文件,包括来自 `--add-dir` 目录的代理文件 | 您的配置目录,`~/.claude` 除非您设置 [`CLAUDE_CONFIG_DIR`](/docs/zh-CN/env-vars) |1107| [用户范围](#user-scope)、[托管 MCP](/docs/zh-CN/managed-mcp)、[claude.ai 连接器](#use-mcp-servers-from-claude-ai),或来自您项目外的代理文件,包括来自 `--add-dir` 目录的代理文件 | 您的配置目录,`~/.claude` 除非您设置 [`CLAUDE_CONFIG_DIR`](/docs/zh-CN/env-vars) |


1440 1440 

1441您的服务器接收 Claude 选择的任何参数,因此请继续在服务器端验证组合。1441您的服务器接收 Claude 选择的任何参数,因此请继续在服务器端验证组合。

1442 1442 

1443当 Claude Code 无法生成 API 接受的模式,或在未收到启用重写的远程配置的部署上时,它会跳过该工具,在服务器日志中记录原因,并保持服务器的其他工具可用。早于 v2.1.195 的版本会跳过其输入模式具有根级 `anyOf`、`oneOf` 或 `allOf` 的每个工具。1443当 Claude Code 无法生成 API 接受的模式,或在未收到启用重写的远程配置的部署上时,它会跳过该工具,在服务器日志中记录原因,并保持服务器的其他工具可用。

1444 1444 

1445<h2 id="tools-with-invalid-input-schemas">1445<h2 id="tools-with-invalid-input-schemas">

1446 具有无效输入架构的工具1446 具有无效输入架构的工具

memory.md +20 −10

Details

89 编写有效的指令89 编写有效的指令

90</h3>90</h3>

91 91 

92CLAUDE.md 文件在每个会话开始时加载到上下文窗口中,与您的对话一起消耗令牌。[上下文窗口可视化](/docs/zh-CN/context-window) 显示 CLAUDE.md 相对于其余启动上下文的加载位置。因为它们是上下文而不是强制配置,您编写指令的方式会影响 Claude 遵循它们的可靠性。具体、简洁、结构良好的指令效果最好。92Claude 将 CLAUDE.md 文件视为上下文而不是强制配置,因此您编写指令的方式会影响 Claude 遵循它们的可靠性。编写具体到足以验证的指令:

93 

94**大小**:每个 CLAUDE.md 文件目标在 200 行以下。较长的文件消耗更多上下文并降低遵守度。如果您的指令变得很大,请使用 [path-scoped rules](#path-specific-rules),以便指令仅在 Claude 处理匹配文件时加载。您也可以将内容拆分为 [imports](#import-additional-files) 以便组织,尽管导入的文件仍然加载并在启动时进入上下文窗口。

95 

96**结构**:使用 markdown 标题和项目符号来分组相关指令。Claude 扫描结构的方式与读者相同:有组织的部分比密集段落更容易遵循。

97 

98**具体性**:编写具体到足以验证的指令。例如:

99 93 

100* "使用 2 空格缩进"而不是"正确格式化代码"94* "使用 2 空格缩进"而不是"正确格式化代码"

101* "在提交前运行 `npm test`"而不是"测试您的更改"95* "在提交前运行 `npm test`"而不是"测试您的更改"

102* "API 处理程序位于 `src/api/handlers/`"而不是"保持文件有组织"96* "API 处理程序位于 `src/api/handlers/`"而不是"保持文件有组织"

103 97 

104**一致性**:如果两条规则相互矛盾,Claude 可能会任意选择一条。定期审查您的 CLAUDE.md 文件、子目录中的嵌套 CLAUDE.md 文件和 [`.claude/rules/`](#organize-rules-with-claude/rules/),以删除过时或冲突的指令。在 monorepos 中,使用 [`claudeMdExcludes`](#exclude-specific-claude-md-files) 跳过来自与您的工作无关的其他团队的 CLAUDE.md 文件。98保持您的文件简短、有组织和一致:

99 

100* **大小**:每个 CLAUDE.md 文件目标在 200 行以下。较长的文件消耗更多上下文并降低遵守度。将仅对代码库的一部分重要的指令移至 [path-scoped rules](#path-specific-rules),这样它们仅在 Claude 处理匹配文件时加载。[导入](#import-additional-files) 帮助您组织一个长文件,但不会减少其上下文成本,因为导入的文件也在启动时加载。

101* **结构**:使用 markdown 标题和项目符号来分组相关指令。有组织的部分比密集段落更容易让 Claude 遵循。

102* **一致性**:如果两条指令相互矛盾,Claude 可能会任意选择一条。定期审查您的 CLAUDE.md 文件、子目录中的嵌套 CLAUDE.md 文件和 [`.claude/rules/`](#organize-rules-with-claude/rules/),以删除过时或冲突的指令。要让 Claude 为您找到它们,请 [运行提示审计](#audit-your-instruction-files)。

103 

104<h4 id="audit-your-instruction-files">

105 审计您的指令文件

106</h4>

105 107 

106要让 Claude 检查这些文件是否有过时或冲突的指令,请在会话中运行 `/doctor prompt-audit`。Claude 读取您的 CLAUDE.md、CLAUDE.local.md 和 AGENTS.md 文件,以及 `.claude/` 和 `~/.claude/` 下的规则、skills、命令、子代理和输出样式。它查找问题,例如为旧模型编写的指令、对不存在的文件或命令的引用,以及相互矛盾的文件。您会获得一份发现报告和一组建议的编辑,在您要求 Claude 应用它们之前,您的文件中不会有任何更改。108要让 Claude 检查您的指令文件是否有过时或冲突的内容,请在会话中运行 `/doctor prompt-audit`。Claude 查找问题,例如为旧模型编写的指令、对不存在的文件或命令的引用,以及相互矛盾的文件。您会获得一份发现报告和一组建议的编辑,在您要求 Claude 应用它们之前,您的文件中不会有任何更改。

107 109 

108要审计一个文件或目录,请改为传递其路径,例如 `/doctor prompt-audit .claude/skills/deploy`。审计通过捆绑的 `/claude-api` skill 运行,因此在该 skill 在 [`skillOverrides`](/docs/zh-CN/skills#override-skill-visibility-from-settings) 中关闭或使用 [`disableBundledSkills`](/docs/zh-CN/settings-reference#disablebundledskills) 时不可用。`/doctor prompt-audit` 需要 Claude Code v2.1.283 或更高版本。110默认情况下,审计涵盖您的 CLAUDE.md、CLAUDE.local.md 和 AGENTS.md 文件,以及 `.claude/` 和 `~/.claude/` 下的规则、skills、命令、子代理和输出样式。要审计一个文件或目录,请改为传递其路径,例如 `/doctor prompt-audit .claude/skills/deploy`。

111 

112审计通过捆绑的 `/claude-api` skill 运行。当该 skill 在 [`skillOverrides`](/docs/zh-CN/skills#override-skill-visibility-from-settings) 中关闭或使用 [`disableBundledSkills`](/docs/zh-CN/settings-reference#disablebundledskills) 时,它不可用。`/doctor prompt-audit` 需要 Claude Code v2.1.283 或更高版本。

109 113 

110<h3 id="import-additional-files">114<h3 id="import-additional-files">

111 导入其他文件115 导入其他文件


115 119 

116允许相对路径和绝对路径。相对路径相对于包含导入的文件解析,而不是工作目录。导入的文件可以递归导入其他文件,最大深度为四跳。120允许相对路径和绝对路径。相对路径相对于包含导入的文件解析,而不是工作目录。导入的文件可以递归导入其他文件,最大深度为四跳。

117 121 

122要导入其路径包含空格的文件,请在每个空格前放置反斜杠。没有反斜杠,路径在第一个空格处结束,即使导入在其自己的行上。用引号包装的路径根本不导入,无论是否有反斜杠。此导入从名为 `Design Docs` 的文件夹加载文件:

123 

124```text theme={null}

125- API conventions @Design\ Docs/api-conventions.md

126```

127 

118导入解析跳过 Markdown 代码跨度和围栏代码块。要在您的 CLAUDE.md 中提及路径而不导入它,请将其包装在反引号中:编写 `` `@README` `` 保持文本字面,而 `@README` 在反引号外导入文件。128导入解析跳过 Markdown 代码跨度和围栏代码块。要在您的 CLAUDE.md 中提及路径而不导入它,请将其包装在反引号中:编写 `` `@README` `` 保持文本字面,而 `@README` 在反引号外导入文件。

119 129 

120要引入 README、package.json 和工作流指南,请在 CLAUDE.md 中的任何地方使用 `@` 语法引用它们:130要引入 README、package.json 和工作流指南,请在 CLAUDE.md 中的任何地方使用 `@` 语法引用它们:

model-config.md +18 −16

Details

65别名指向你的提供商的推荐版本,并随时间更新。要固定到特定版本,请使用完整模型名称,例如 `claude-opus-5-5`,或设置相应的环境变量,如 `ANTHROPIC_DEFAULT_OPUS_MODEL`。65别名指向你的提供商的推荐版本,并随时间更新。要固定到特定版本,请使用完整模型名称,例如 `claude-opus-5-5`,或设置相应的环境变量,如 `ANTHROPIC_DEFAULT_OPUS_MODEL`。

66 66 

67<Note>67<Note>

68 Sonnet 5.5 需要 Claude Code v2.1.284 或更高版本,Opus 5.5 需要 v2.1.280 或更高版本。运行 `claude update` 进行升级。68 Sonnet 5.5 需要 Claude Code v2.1.284 或更高版本,Opus 5.5 需要 v2.1.280 或更高版本。如果来自较旧版本的请求失败,请参阅 [Claude Code does not support this model](/docs/zh-CN/errors#claude-code-does-not-support-this-model)。运行 `claude update` 进行升级。

69</Note>69</Note>

70 70 

71<h3 id="work-with-fable">71<h3 id="work-with-fable">


117* 在后台会话中,在截止时间前回答。117* 在后台会话中,在截止时间前回答。

118* 如果你在远程客户端发送新消息之前没有人在终端输入,Claude Code 会以相同的方式结束该轮,你的新消息开始下一轮。在有人在终端输入后,Claude Code 继续等待答案并将你的新消息排队在其后面。118* 如果你在远程客户端发送新消息之前没有人在终端输入,Claude Code 会以相同的方式结束该轮,你的新消息开始下一轮。在有人在终端输入后,Claude Code 继续等待答案并将你的新消息排队在其后面。

119 119 

120在带有 `-p` 标志的[非交互模式](/docs/zh-CN/headless)中以及通过 Agent SDK,Claude Code 永远不会显示同意提示。当 Fable 请求在那里会计入使用额度时,Claude Code 会在不询问的情况下计入。120在通过 [Agent SDK](/docs/zh-CN/agent-sdk/overview) 托管的应用中,提示是否出现取决于该应用。如果它出现,并且在相同的 [`dialogExpiry`](/docs/zh-CN/settings-reference#dialogexpiry) 截止时间前没有人回答,Claude Code 会结束该轮而不发送请求。

121 

122在带有 `-p` 标志的[非交互模式](/docs/zh-CN/headless)中以及在不显示提示的 Agent SDK 应用中,Claude Code 永远不会请求同意。当 Fable 请求在那里会计入使用额度时,Claude Code 会在不询问的情况下计入。

121 123 

122<h3 id="setting-your-model">124<h3 id="setting-your-model">

123 设置你的模型125 设置你的模型


164 166 

165当 Claude Code 无法判断你的组织的[托管插件](/docs/zh-CN/settings-reference#enabledplugins)提供哪些 PreModelSwitch hooks 时,例如因为托管插件加载失败,它拒绝切换而不是应用它,并在每次新尝试时再次检查。参阅 [Model switch was blocked by a PreModelSwitch hook](/docs/zh-CN/errors#model-switch-was-blocked-by-a-premodelswitch-hook) 了解消息和恢复。167当 Claude Code 无法判断你的组织的[托管插件](/docs/zh-CN/settings-reference#enabledplugins)提供哪些 PreModelSwitch hooks 时,例如因为托管插件加载失败,它拒绝切换而不是应用它,并在每次新尝试时再次检查。参阅 [Model switch was blocked by a PreModelSwitch hook](/docs/zh-CN/errors#model-switch-was-blocked-by-a-premodelswitch-hook) 了解消息和恢复。

166 168 

167当你通过 [Agent SDK](/docs/zh-CN/agent-sdk/overview) `setModel()` 方法或从通过 [Remote Control](/docs/zh-CN/remote-control) 连接的设备切换模型,或运行 Claude Code CLI 的应用(如 [Desktop app](/docs/zh-CN/desktop))为你切换时,Claude Code 会检查该字符串是否是它识别的。此检查需要 Claude Code v2.1.200 或更高版本。检查 Remote Control 选择需要你的机器上的 Claude Code v2.1.260 或更高版本。在 Anthropic API 上,Claude Code 识别:169当你通过 [Agent SDK](/docs/zh-CN/agent-sdk/overview) `setModel()` 方法、通过应用(如 [Desktop app](/docs/zh-CN/desktop))或从通过 [Remote Control](/docs/zh-CN/remote-control) 连接的设备切换模型时,Claude Code 会检查该值在切换时:

168 170 

169* 一个模型别名171* **Agent SDK 或应用**:使用 Claude Code v2.1.268 或更高版本,除非 Claude Code 在本地接受模型 ID(如它对你的[自定义模型选项](#add-a-custom-model-option)所做的那样),它在会话首次切换到它时与你的提供商确认该 ID。确认在每个提供商上运行,你的提供商不提供的 ID 在切换时被拒绝,而不是在你的下一个请求时失败。

170* `/model` 选择器中的一个条目172* **Remote Control**:在 Anthropic API 上,Claude Code 在本地检查该值并不发送请求。

171* 任何以 `claude-` 开头的名称

172* 你自己配置的值,作为[自定义模型选项](#add-a-custom-model-option)或在 [`modelOverrides`](#override-model-ids-per-version) 中

173 173 

174Claude Code 拒绝无法识别的字符串,显示 `Model "<name>" is not a recognized model id.`,会话保持其当前模型,而不是保存字符串并在下一个请求时失败。参阅[错误参考](/docs/zh-CN/errors#model-is-not-a-recognized-model-id)了解恢复步骤。174参阅 [Model is not a recognized model id](/docs/zh-CN/errors#model-is-not-a-recognized-model-id) 和 [Model not found](/docs/zh-CN/errors#model-not-found) 了解消息。

175 175 

176检查仅在 Anthropic API 上运行。在 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry、[Claude Platform on AWS](/docs/zh-CN/claude-platform-on-aws) 和 [LLM 网关](/docs/zh-CN/llm-gateway) 后面或自定义 `ANTHROPIC_BASE_URL`,你的提供商或网关定义模型名称,所以 Claude Code 不检查地通过任何字符串。检查也不涵盖 `--model` 标志、`ANTHROPIC_MODEL` 环境变量或 `model` 设置;那里的拼写错误值会在第一个请求时产生 [There's an issue with the selected model](/docs/zh-CN/errors#theres-an-issue-with-the-selected-model)。Claude Code 仍然可以在请求时在每个提供商上写入[无法识别的模型诊断行](/docs/zh-CN/errors#unrecognized-model-id-on-a-request)。176如果你使用 `--model` 标志、`ANTHROPIC_MODEL` 环境变量或 `model` 设置设置模型,Claude Code 不会提前检查它,拼写错误的值会在第一个请求时产生 [There's an issue with the selected model](/docs/zh-CN/errors#theres-an-issue-with-the-selected-model)。

177 177 

178当请求的模型有计划的停用日期或自动重新映射到较新版本时,Claude Code 显示一个警告,命名请求的模型。交互式会话将其显示为启动通知。从 v2.1.182 开始,在使用默认文本输出格式的[非交互模式](/docs/zh-CN/headless)中,相同的警告被写入 stderr。检查也涵盖在[子代理前言](/docs/zh-CN/sub-agents)中设置的 `model`。对于 `--output-format json` 和 `stream-json`,stderr 警告被抑制;从[结果消息](/docs/zh-CN/headless#get-structured-output)的 `modelUsage` 字段读取实际模型。178当请求的模型有计划的停用日期或自动重新映射到较新版本时,Claude Code 显示一个警告,命名请求的模型。交互式会话将其显示为启动通知。从 v2.1.182 开始,在使用默认文本输出格式的[非交互模式](/docs/zh-CN/headless)中,相同的警告被写入 stderr。检查也涵盖在[子代理前言](/docs/zh-CN/sub-agents)中设置的 `model`。对于 `--output-format json` 和 `stream-json`,stderr 警告被抑制;从[结果消息](/docs/zh-CN/headless#get-structured-output)的 `modelUsage` 字段读取实际模型。

179 179 


297 297 

298| 交付机制 | CLI 和 IDE | 桌面本地会话 | Web、移动和云会话 | Agent SDK 和非交互式 | Cowork |298| 交付机制 | CLI 和 IDE | 桌面本地会话 | Web、移动和云会话 | Agent SDK 和非交互式 | Cowork |

299| :- | :- | :- | :- | :- | :- |299| :- | :- | :- | :- | :- | :- |

300| 来自管理控制台的[服务器管理设置](/docs/zh-CN/server-managed-settings) | 强制执行 | 强制执行 | 强制执行,除了[Claude Tag](https://claude.com/docs/claude-tag/overview) 会话 | 强制执行 | 未交付 |300| 来自管理控制台的[服务器管理设置](/docs/zh-CN/server-managed-settings) | 强制执行 | 强制执行 | 强制执行,除了[Claude Tag](https://claude.com/docs/claude-tag/overview) 会话 | 强制执行 | 远程 Cowork 会话:服务器检查模型。在用户的机器上:未交付。 |

301| [MDM 或托管设置文件](/docs/zh-CN/managed-settings#delivery-mechanisms) | 强制执行 | 强制执行 | 在 Anthropic 托管环境中未交付;在[自托管环境](/docs/zh-CN/self-hosted-environments)中,根据[Claude Code 如何组合托管源](/docs/zh-CN/managed-settings#how-claude-code-combines-managed-sources)从运行器镜像强制执行 | 强制执行 | 在部署的地方强制执行 |301| [MDM 或托管设置文件](/docs/zh-CN/managed-settings#delivery-mechanisms) | 强制执行 | 强制执行 | 在 Anthropic 托管环境中未交付;在[自托管环境](/docs/zh-CN/self-hosted-environments)中,根据[Claude Code 如何组合托管源](/docs/zh-CN/managed-settings#how-claude-code-combines-managed-sources)从运行器镜像强制执行 | 强制执行 | 在部署的地方强制执行 |

302 302 

303* [云会话](/docs/zh-CN/claude-code-on-the-web)(包括您从桌面应用启动的会话)默认在 Anthropic 管理的 VM 上运行:部署到您的设备的设置不会到达它们,因此通过服务器管理设置交付允许列表。您的组织路由到[自托管环境](/docs/zh-CN/self-hosted-environments)的会话在您自己的计算上运行,也读取运行器镜像中的托管设置文件。[Claude Code 如何组合托管源](/docs/zh-CN/managed-settings#how-claude-code-combines-managed-sources)说明了该文件何时适用。云会话中的中途模型切换在请求的模型被允许列表排除时被拒绝。当您的服务器管理设置中的 `availableModels` 列表非空时,服务器拒绝用户在列表排除的模型上启动云会话的请求。303* [云会话](/docs/zh-CN/claude-code-on-the-web)(包括您从桌面应用启动的会话)默认在 Anthropic 管理的 VM 上运行:部署到您的设备的设置不会到达它们,因此通过服务器管理设置交付允许列表。您的组织路由到[自托管环境](/docs/zh-CN/self-hosted-environments)的会话在您自己的计算上运行,也读取运行器镜像中的托管设置文件。[Claude Code 如何组合托管源](/docs/zh-CN/managed-settings#how-claude-code-combines-managed-sources)说明了该文件何时适用。云会话中的中途模型切换在请求的模型被允许列表排除时被拒绝。当您的服务器管理设置中的 `availableModels` 列表非空时,服务器拒绝在列表排除的模型上启动云会话的请求。

304* [Claude Tag](https://claude.com/docs/claude-tag/overview) 会话在云环境中运行,但不接收服务器管理设置;在[自托管环境](/docs/zh-CN/self-hosted-environments)中,它们仍然读取运行器镜像中的托管设置文件。要为这些会话设置模型,请参阅 Claude Tag 管理员指南中的[为范围选择模型](https://claude.com/docs/claude-tag/admins/customize#choose-the-model-for-a-scope)。304* [Claude Tag](https://claude.com/docs/claude-tag/overview) 会话在云环境中运行,但不接收服务器管理设置;在[自托管环境](/docs/zh-CN/self-hosted-environments)中,它们仍然读取运行器镜像中的托管设置文件。要为这些会话设置模型,请参阅 Claude Tag 管理员指南中的[为范围选择模型](https://claude.com/docs/claude-tag/admins/customize#choose-the-model-for-a-scope)。

305* Cowork(Claude 桌面应用中的代理工作选项卡)在 Claude Code 上运行其会话,但按设计不从 claude.ai 管理控制台接收服务器管理设置。当托管设置文件存在于会话运行的地方时,它适用于 Cowork 会话;远程 Cowork 会话在 Anthropic 管理的 VM 上运行,其中不存在设备部署的文件。305* Cowork(Claude 桌面应用中的代理工作选项卡)在 Claude Code 上运行其会话,但按设计不从 claude.ai 管理控制台接收服务器管理设置。当您的服务器管理设置中的 `availableModels` 列表非空且用户选择列表外的模型时,服务器拒绝该模型用于远程 Cowork 会话。当托管设置文件存在于会话运行的地方时,它适用于 Cowork 会话;远程 Cowork 会话在 Anthropic 管理的 VM 上运行,其中不存在设备部署的文件。

306* [第三方提供商](/docs/zh-CN/server-managed-settings#platform-availability)(如 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 和 [AWS 上的 Claude Platform](/docs/zh-CN/claude-platform-on-aws))上的会话不接收服务器管理设置,因此通过 MDM 或托管设置文件在那里交付允许列表。306* [第三方提供商](/docs/zh-CN/server-managed-settings#platform-availability)(如 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 和 [AWS 上的 Claude Platform](/docs/zh-CN/claude-platform-on-aws))上的会话不接收服务器管理设置,因此通过 MDM 或托管设置文件在那里交付允许列表。

307* 服务器管理交付还需要会话使用[符合条件的登录或密钥](/docs/zh-CN/server-managed-settings#platform-availability)进行身份验证。仅通过 [`apiKeyHelper`](/docs/zh-CN/settings-reference#apikeyhelper) 脚本生成密钥的舰队应通过 MDM 或托管设置文件交付允许列表。307* 服务器管理交付还需要会话使用[符合条件的登录或密钥](/docs/zh-CN/server-managed-settings#platform-availability)进行身份验证。仅通过 [`apiKeyHelper`](/docs/zh-CN/settings-reference#apikeyhelper) 脚本生成密钥的舰队应通过 MDM 或托管设置文件交付允许列表。

308* 桌面代码选项卡还托管 [SSH 会话](/docs/zh-CN/desktop#ssh-sessions),它们从运行的远程主机读取托管设置文件。请参阅[桌面托管设置](/docs/zh-CN/desktop#managed-settings)。308* 桌面代码选项卡还托管 [SSH 会话](/docs/zh-CN/desktop#ssh-sessions),它们从运行的远程主机读取托管设置文件。请参阅[桌面托管设置](/docs/zh-CN/desktop#managed-settings)。


751| 设置全局默认值 | 运行 `/config` 并切换思考模式。保存为 `~/.claude/settings.json` 中的 `alwaysThinkingEnabled` |751| 设置全局默认值 | 运行 `/config` 并切换思考模式。保存为 `~/.claude/settings.json` 中的 `alwaysThinkingEnabled` |

752| 通过环境变量禁用 | 设置 [`MAX_THINKING_TOKENS=0`](/docs/zh-CN/env-vars),这在 Anthropic API 上关闭思考,除了 Opus 5.5、Sonnet 5.5 和 Fable 模型。在[第三方提供商](/docs/zh-CN/third-party-integrations)上,Claude Code 改为省略 `thinking` 参数,自适应推理模型可能仍然思考。其他值仅适用于[固定思考预算](#adaptive-reasoning-and-fixed-thinking-budgets) |752| 通过环境变量禁用 | 设置 [`MAX_THINKING_TOKENS=0`](/docs/zh-CN/env-vars),这在 Anthropic API 上关闭思考,除了 Opus 5.5、Sonnet 5.5 和 Fable 模型。在[第三方提供商](/docs/zh-CN/third-party-integrations)上,Claude Code 改为省略 `thinking` 参数,自适应推理模型可能仍然思考。其他值仅适用于[固定思考预算](#adaptive-reasoning-and-fixed-thinking-budgets) |

753 753 

754您不能在 Opus 5.5、Sonnet 5.5 或 Fable 模型上关闭思考。会话切换、`alwaysThinkingEnabled` 和 `MAX_THINKING_TOKENS=0` 在那里没有效果,模型根据努力级别按步骤决定思考多少。754您不能在 Opus 5.5、Sonnet 5.5 或 Fable 模型上关闭思考。会话切换和 `/config` 行显示 `Thinking can't be turned off` 对于这些模型,而不是提供切换,保存的 `alwaysThinkingEnabled: false` 或 `MAX_THINKING_TOKENS=0` 在那里没有效果。在这些模型上,模型根据努力级别按步骤决定思考多少。保存的设置在您切换到接受它的模型时再次应用。

755 755 

756Claude Code 默认折叠思考输出。按 `Ctrl+O` 切换详细模式并将推理视为灰色斜体文本。Anthropic API 上的交互式会话默认接收编辑的思考块,因此如果您想要完整摘要在展开时可用,在[设置](/docs/zh-CN/settings)中设置 `showThinkingSummaries: true`。您需要为所有生成的思考令牌付费,即使折叠或编辑。756Claude Code 默认折叠思考输出。按 `Ctrl+O` 切换详细模式并将推理视为灰色斜体文本。Anthropic API 上的交互式会话默认接收编辑的思考块,因此如果您想要完整摘要在展开时可用,在[设置](/docs/zh-CN/settings)中设置 `showThinkingSummaries: true`。您需要为所有生成的思考令牌付费,即使折叠或编辑。

757 757 


784 784 

7851M 上下文窗口使用标准模型定价,超过 200K 的令牌没有溢价。对于扩展上下文包含在您的订阅中的计划,使用仍由您的订阅覆盖。对于通过使用额度访问扩展上下文的计划,令牌计费到使用额度。7851M 上下文窗口使用标准模型定价,超过 200K 的令牌没有溢价。对于扩展上下文包含在您的订阅中的计划,使用仍由您的订阅覆盖。对于通过使用额度访问扩展上下文的计划,令牌计费到使用额度。

786 786 

787如果您的账户支持 1M 上下文,该选项会出现在最新版本的 Claude Code 的 `/model` 选择器中。如果您看不到它,请尝试重新启动您的会话。787如果您的账户支持 1M 上下文,该选项会出现在最新版本的 Claude Code 的 `/model` 选择器中。如果您看不到它,请尝试重新启动您的会话,在第三方提供商上检查您的部署是否使用 `ANTHROPIC_DEFAULT_*_MODEL` 变量[固定了模型](#pin-models-for-third-party-deployments)。

788 788 

789您也可以使用 `[1m]` 后缀与模型别名或完整模型名称:789您也可以使用 `[1m]` 后缀与模型别名或完整模型名称:

790 790 


956* 仅当底层模型[支持 1M 上下文](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model)时才附加 `[1m]`。956* 仅当底层模型[支持 1M 上下文](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model)时才附加 `[1m]`。

957* 该后缀按变量读取,而不是按模型读取。在 Amazon Bedrock、Google Cloud's Agent Platform 和 Microsoft Foundry 上,一个变量中没有 `[1m]` 的模型 ID 使用 200K 上下文,即使另一个变量使用相同的模型和后缀。Sonnet 5 在这些提供商上始终以 1M 窗口运行,从不需要该后缀。957* 该后缀按变量读取,而不是按模型读取。在 Amazon Bedrock、Google Cloud's Agent Platform 和 Microsoft Foundry 上,一个变量中没有 `[1m]` 的模型 ID 使用 200K 上下文,即使另一个变量使用相同的模型和后缀。Sonnet 5 在这些提供商上始终以 1M 窗口运行,从不需要该后缀。

958 958 

959当您设置 `ANTHROPIC_DEFAULT_*_MODEL` 变量时,`/model` 选择器会显示该模型的一行来替代该家族的内置行,包括任何 1M 上下文行。要在不向该变量添加后缀的情况下到达 1M 窗口,您的用户运行 `/model opus[1m]`,Claude Code 会将后缀应用于该变量命名的模型。`/model sonnet[1m]` 的工作方式相同。

960 

959<Note>961<Note>

960 通过 [MDM 或托管设置文件](/docs/zh-CN/managed-settings#delivery-mechanisms) 提供的 `availableModels` 允许列表在使用第三方提供商时仍然适用;[服务器托管设置不会在那里提供](/docs/zh-CN/server-managed-settings#platform-availability)。962 通过 [MDM 或托管设置文件](/docs/zh-CN/managed-settings#delivery-mechanisms) 提供的 `availableModels` 允许列表在使用第三方提供商时仍然适用;[服务器托管设置不会在那里提供](/docs/zh-CN/server-managed-settings#platform-availability)。

961 963 


1053| - | - |1055| - | - |

1054| `DISABLE_PROMPT_CACHING` | 设置为 `1` 以禁用所有模型的 prompt caching。优先于按模型设置 |1056| `DISABLE_PROMPT_CACHING` | 设置为 `1` 以禁用所有模型的 prompt caching。优先于按模型设置 |

1055| `DISABLE_PROMPT_CACHING_HAIKU` | 设置为 `1` 以仅禁用[默认 Haiku 模型](/docs/zh-CN/prompt-caching#disable-prompt-caching)的 prompt caching |1057| `DISABLE_PROMPT_CACHING_HAIKU` | 设置为 `1` 以仅禁用[默认 Haiku 模型](/docs/zh-CN/prompt-caching#disable-prompt-caching)的 prompt caching |

1056| `DISABLE_PROMPT_CACHING_SONNET` | 设置为 `1` 以仅禁用 Sonnet 模型的 prompt caching |1058| `DISABLE_PROMPT_CACHING_SONNET` | 设置为 `1` 以仅禁用[默认 Sonnet 模型](/docs/zh-CN/prompt-caching#disable-prompt-caching)的 prompt caching |

1057| `DISABLE_PROMPT_CACHING_OPUS` | 设置为 `1` 以仅禁用 Opus 模型的 prompt caching |1059| `DISABLE_PROMPT_CACHING_OPUS` | 设置为 `1` 以仅禁用[默认 Opus 模型](/docs/zh-CN/prompt-caching#disable-prompt-caching)的 prompt caching |

1058| `DISABLE_PROMPT_CACHING_FABLE` | 设置为 `1` 以仅禁用 Fable 模型的 prompt caching |1060| `DISABLE_PROMPT_CACHING_FABLE` | 设置为 `1` 以仅禁用 Fable 模型的 prompt caching |

1059 1061 

1060要为主对话和 subagents 分别选择缓存 TTL,请参阅[自己选择 TTL](/docs/zh-CN/prompt-caching#choose-the-ttl-yourself)。有关什么会触发缓存未命中,请参阅 [Claude Code 如何使用 prompt caching](/docs/zh-CN/prompt-caching)。1062要为主对话和 subagents 分别选择缓存 TTL,请参阅[自己选择 TTL](/docs/zh-CN/prompt-caching#choose-the-ttl-yourself)。有关什么会触发缓存未命中,请参阅 [Claude Code 如何使用 prompt caching](/docs/zh-CN/prompt-caching)。

Details

64}64}

65```65```

66 66 

67在 Claude Desktop 应用中,Code 标签页会话从 [到达每种 Desktop 会话的源](/docs/zh-CN/desktop#managed-settings) 读取这些托管设置。Cowork 在管理员控制台的 [数据和隐私设置](https://claude.ai/admin-settings/data-privacy-controls) 中的 **监控** 下的 OpenTelemetry 表单仅适用于 Cowork 会话,因此终端 CLI 和 Code 标签页都不会导出到您在那里设置的收集器。

68 

67Claude Code 忽略存储库的 `.claude/settings.json` 和 `.claude/settings.local.json` 中的 [OpenTelemetry 导出器变量](/docs/zh-CN/settings-reference#variables-claude-code-ignores-in-env),因此存储库无法使用它们来打开遥测、选择其去向或捕获内容。在托管设置中设置它们,或让每个开发者在其 shell 或 `~/.claude/settings.json` 中设置它们。存储库仍然可以通过将其导出器选择器(如 `OTEL_LOGS_EXPORTER`)设置为 `none` 来关闭信号,除非托管设置、`--settings` 文件或启动 Claude Code 的环境设置了该变量。69Claude Code 忽略存储库的 `.claude/settings.json` 和 `.claude/settings.local.json` 中的 [OpenTelemetry 导出器变量](/docs/zh-CN/settings-reference#variables-claude-code-ignores-in-env),因此存储库无法使用它们来打开遥测、选择其去向或捕获内容。在托管设置中设置它们,或让每个开发者在其 shell 或 `~/.claude/settings.json` 中设置它们。存储库仍然可以通过将其导出器选择器(如 `OTEL_LOGS_EXPORTER`)设置为 `none` 来关闭信号,除非托管设置、`--settings` 文件或启动 Claude Code 的环境设置了该变量。

68 70 

69Claude Code 不会将 `OTEL_*` 环境变量传递给它生成的子进程,包括 Bash 工具、hooks、MCP 服务器和语言服务器。通过 Bash 工具运行的已进行 OpenTelemetry 检测的应用程序不会继承 Claude Code 的导出器端点或标头,因此如果该应用程序需要导出自己的遥测,请直接在命令中设置这些变量。71Claude Code 不会将 `OTEL_*` 环境变量传递给它生成的子进程,包括 Bash 工具、hooks、MCP 服务器和语言服务器。通过 Bash 工具运行的已进行 OpenTelemetry 检测的应用程序不会继承 Claude Code 的导出器端点或标头,因此如果该应用程序需要导出自己的遥测,请直接在命令中设置这些变量。


582| `OTEL_RESOURCE_ATTRIBUTES` 中的键 | 您设置的自定义属性,例如 `department` 或 `team.id`。请参阅[多团队组织支持](#multi-team-organization-support) | `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES`(默认值:true) |584| `OTEL_RESOURCE_ATTRIBUTES` 中的键 | 您设置的自定义属性,例如 `department` 或 `team.id`。请参阅[多团队组织支持](#multi-team-organization-support) | `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES`(默认值:true) |

583| `vcs.repository.url.full`、`vcs.owner.name`、`vcs.repository.name`、`vcs.provider.name` | 会话存储库的身份,从其 `origin` 远程派生。请参阅[存储库属性](#repository-attributes) | `OTEL_METRICS_INCLUDE_REPOSITORY`(默认值:false)。需要 Claude Code v2.1.269 或更高版本 |585| `vcs.repository.url.full`、`vcs.owner.name`、`vcs.repository.name`、`vcs.provider.name` | 会话存储库的身份,从其 `origin` 远程派生。请参阅[存储库属性](#repository-attributes) | `OTEL_METRICS_INCLUDE_REPOSITORY`(默认值:false)。需要 Claude Code v2.1.269 或更高版本 |

584 586 

585当 Claude Code 登录到[Claude 应用网关](/docs/zh-CN/claude-apps-gateway)时,CLI 会使用来自网关会话的已认证身份标记导出:`user.id` 是 IdP 主体而不是匿名安装标识符,`user.email` 是已登录的电子邮件,`user.groups` 以逗号分隔的字符串形式携带 IdP 组成员身份。每个导出还携带 `identity.source: gateway-oidc`。网关身份最后应用,因此通过 `OTEL_RESOURCE_ATTRIBUTES` 设置的 `user.*` 和 `identity.*` 键在网关会话上被忽略。587在通过 `/login` 登录到[Claude 应用网关](/docs/zh-CN/claude-apps-gateway)的会话中,CLI 会使用已认证身份标记导出:`user.id` 是 IdP 主体,`user.email` 是已登录的电子邮件,`user.groups` 以逗号分隔的字符串形式携带 IdP 组成员身份。每个导出还携带 `identity.source: gateway-oidc`。网关身份最后应用,因此通过 `OTEL_RESOURCE_ATTRIBUTES` 设置的 `user.*` 和 `identity.*` 键在这些会话上被忽略。

588 

589对于通过网关连接的 Claude Desktop 和 Cowork 会话上的身份属性,请参阅[网关 `telemetry` 参考](/docs/zh-CN/claude-apps-gateway-config#telemetry)。

586 590 

587事件另外包括以下属性。这些永远不会附加到指标,因为它们会导致无限的基数:591事件另外包括以下属性。这些永远不会附加到指标,因为它们会导致无限的基数:

588 592 


1540 将属性操作归属于用户1544 将属性操作归属于用户

1541</h3>1545</h3>

1542 1546 

1543每个事件上的 [标准属性](#standard-attributes) 包括已认证用户的身份:`user.email`、`user.account_uuid`、`user.account_id` 和 `organization.id`(使用 Claude 账户登录时或在 [云会话](/docs/zh-CN/claude-code-on-the-web) 中,当会话自己的凭证携带它们时),加上 `user.id` 和每会话的 `session.id`。`user.id` 是安装范围的标识符,除了在 [Claude apps gateway](/docs/zh-CN/claude-apps-gateway) 会话上,其中它是来自网关颁发的令牌的 IdP 主体。1547每个事件上的 [标准属性](#standard-attributes) 包括已认证用户的身份:`user.email`、`user.account_uuid`、`user.account_id` 和 `organization.id`(使用 Claude 账户登录时或在 [云会话](/docs/zh-CN/claude-code-on-the-web) 中,当会话自己的凭证携带它们时),加上 `user.id` 和每会话的 `session.id`。`user.id` 是安装范围的标识符,除了在 [Claude apps gateway](/docs/zh-CN/claude-apps-gateway) 会话上通过 `/login` 登录时,其中它是来自网关颁发的令牌的 IdP 主体。

1544 1548 

1545在开发人员启动的会话中,MCP 工具调用、Bash 命令和文件编辑因此归属于该开发人员。Claude Code 不在单独的服务账户下运行;每个事件上记录的身份是开发人员自己的 Claude 账户,或开发人员在 [Claude apps gateway](/docs/zh-CN/claude-apps-gateway) 会话上的 IdP 身份。在 Claude Tag 频道会话中,Claude 改为作为您组织的 [共享身份](/docs/zh-CN/cloud-environments#set-the-environment-a-claude-tag-channel-uses) 工作。1549在开发人员启动的会话中,MCP 工具调用、Bash 命令和文件编辑因此归属于该开发人员。Claude Code 不在单独的服务账户下运行;每个事件上记录的身份是开发人员自己的 Claude 账户,或开发人员在 [Claude apps gateway](/docs/zh-CN/claude-apps-gateway) 会话上的 IdP 身份。在 Claude Tag 频道会话中,Claude 改为作为您组织的 [共享身份](/docs/zh-CN/cloud-environments#set-the-environment-a-claude-tag-channel-uses) 工作。

1546 1550 

1547当 Claude Code 使用直接 API 密钥进行身份验证,或针对 Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry 进行身份验证时,会话中没有 Claude 账户,仅填充 `user.id` 和 `session.id`。在这些部署中,使用 `OTEL_RESOURCE_ATTRIBUTES` 自己附加用户身份,通过 [托管设置](#administrator-configuration) 文件或启动包装器按用户设置。Claude apps gateway 会话不需要任何这些:CLI 自动标记 IdP 身份,如 [标准属性](#standard-attributes) 中所述。1551当 Claude Code 使用直接 API 密钥进行身份验证,或针对 Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry 进行身份验证时,会话中没有 Claude 账户,仅填充 `user.id` 和 `session.id`。在这些部署中,使用 `OTEL_RESOURCE_ATTRIBUTES` 自己附加用户身份,通过 [托管设置](#administrator-configuration) 文件或启动包装器按用户设置。Claude apps gateway 会话不需要任何这些:请参阅 [标准属性](#standard-attributes) 了解其导出携带的身份。

1548 1552 

1549```bash theme={null}1553```bash theme={null}

1550export OTEL_RESOURCE_ATTRIBUTES="enduser.id=jdoe@example.com,enduser.directory_id=S-1-5-21-..."1554export OTEL_RESOURCE_ATTRIBUTES="enduser.id=jdoe@example.com,enduser.directory_id=S-1-5-21-..."

network-config.md +13 −11

Details

208| 计时器 | 中止条件 | 运行位置 | 默认超时 |208| 计时器 | 中止条件 | 运行位置 | 默认超时 |

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

210| 首字节截止时间 | Claude Code 发送请求后没有响应头到达 | 直接 Anthropic API 和 [Claude Platform on AWS](/docs/zh-CN/claude-platform-on-aws),包括通过 HTTPS 代理,但不包括当 `ANTHROPIC_BASE_URL` 或 `ANTHROPIC_AWS_BASE_URL` 通过 [gateway](/docs/zh-CN/gateways) 路由时。在 Amazon Bedrock 上可选,使用 `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1`;不在 Google Cloud 的 Agent Platform 或 Microsoft Foundry 上运行 | 直接 Anthropic API 上为 180 秒,其他地方为 300 秒,加上每 32KB 请求体一秒 |210| 首字节截止时间 | Claude Code 发送请求后没有响应头到达 | 直接 Anthropic API 和 [Claude Platform on AWS](/docs/zh-CN/claude-platform-on-aws),包括通过 HTTPS 代理,但不包括当 `ANTHROPIC_BASE_URL` 或 `ANTHROPIC_AWS_BASE_URL` 通过 [gateway](/docs/zh-CN/gateways) 路由时。在 Amazon Bedrock 上可选,使用 `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1`;不在 Google Cloud 的 Agent Platform 或 Microsoft Foundry 上运行 | 直接 Anthropic API 上为 180 秒,其他地方为 300 秒,加上每 32KB 请求体一秒 |

211| 事件级监视器 | 没有响应事件解析。在运行字节级监视器的连接上,到达的字节(包括保活 ping)也会重置此监视器,最多约五分钟内没有解析的事件 | 每个提供商 | 300 秒 |211| 事件级监视器 | 没有响应事件解析。在字节级监视器运行在 Amazon Bedrock 以外的连接上的情况下,到达的字节(包括保活 ping)也会重置此监视器,最多约五分钟内没有解析的事件 | 每个提供商 | 300 秒 |

212| 字节级监视器 | 网络上没有字节到达,包括 SSE 保活 ping | 直接 Anthropic API、[Claude Platform on AWS](/docs/zh-CN/claude-platform-on-aws) 和 [gateway](/docs/zh-CN/gateways) 连接,包括自定义 `ANTHROPIC_BASE_URL`。在 Amazon Bedrock `vnd.amazon.eventstream` 响应上可选,使用 `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1`;不在 Google Cloud 的 Agent Platform 或 Microsoft Foundry 上运行 | 直接 Anthropic API 上为 180 秒,其他地方为 300 秒 |212| 字节级监视器 | 线路上没有字节到达,包括 SSE 保活 ping | 直接 Anthropic API、[Claude Platform on AWS](/docs/zh-CN/claude-platform-on-aws) 和 [gateway](/docs/zh-CN/gateways) 连接,包括自定义 `ANTHROPIC_BASE_URL`。在 Amazon Bedrock `vnd.amazon.eventstream` 响应上可选,使用 `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1`;不在 Google Cloud 的 Agent Platform 或 Microsoft Foundry 上运行 | 直接 Anthropic API 上为 180 秒,其他地方为 300 秒 |

213| 正文空闲超时 | 5 分钟内没有字节到达 | 除直接 Anthropic API 和 Claude Platform on AWS 之外的提供商,除非 [`API_FORCE_IDLE_TIMEOUT`](/docs/zh-CN/env-vars) 改变这一点 | 5 分钟 |213| 主体空闲超时 | 5 分钟内没有字节到达 | 除了直接 Anthropic API、Claude Platform on AWS 和设置了 `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1` 的 Amazon Bedrock 之外的提供商,除非 [`API_FORCE_IDLE_TIMEOUT`](/docs/zh-CN/env-vars) 改变这一点 | 5 分钟 |

214 214 

215使用这些变量配置计时器,每个都在 [环境变量参考](/docs/zh-CN/env-vars) 中详细说明:215如果设置 `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1`,字节级监视器会在 Bedrock 上替换主体空闲超时,而不是与其并行运行。`CLAUDE_STREAM_IDLE_TIMEOUT_MS` 随后也会控制 Bedrock 流在 Claude Code 将连接视为死连接之前可以保持沉默多长时间,在下面列出的限制范围内。到达的字节仍然不会在 Bedrock 上重置事件级监视器。启用调试日志后,每个 Bedrock 流随后会记录一条以 `wire-heartbeat: _chunkTimes absent` 开头的调试消息。

216 216 

217* `CLAUDE_ENABLE_STREAM_WATCHDOG` 和 `CLAUDE_ENABLE_BYTE_WATCHDOG` 在表列出的连接范围内,用 `1` 强制打开相应的监视器或用 `0` 关闭;这两个变量都不会将监视器扩展到它不覆盖的连接类型。`CLAUDE_ENABLE_BYTE_WATCHDOG` 设置为 `0` 也会关闭首字节截止时间。217使用这些变量配置计时器,每个变量在 [环境变量参考](/docs/zh-CN/env-vars) 中详细说明:

218 

219* `CLAUDE_ENABLE_STREAM_WATCHDOG` 和 `CLAUDE_ENABLE_BYTE_WATCHDOG` 在表列出的连接范围内,使用 `1` 强制打开相应的监视器或使用 `0` 关闭;这两个变量都不会将监视器扩展到它不覆盖的连接类型。`CLAUDE_ENABLE_BYTE_WATCHDOG` 设置为 `0` 也会关闭首字节截止时间。

218* `CLAUDE_STREAM_IDLE_TIMEOUT_MS` 设置两个监视器的超时。Claude Code 将低于 5 分钟的值提高到 5 分钟,并将字节级监视器的值上限设为 30 分钟。220* `CLAUDE_STREAM_IDLE_TIMEOUT_MS` 设置两个监视器的超时。Claude Code 将低于 5 分钟的值提高到 5 分钟,并将字节级监视器的值上限设为 30 分钟。

219* `CLAUDE_BYTE_STREAM_IDLE_TIMEOUT_MS` 设置字节级监视器的超时,而不改变事件级监视器的超时,限制在 10 秒到 30 分钟之间,并优先于 `CLAUDE_STREAM_IDLE_TIMEOUT_MS` 用于该监视器。221* `CLAUDE_BYTE_STREAM_IDLE_TIMEOUT_MS` 设置字节级监视器的超时,而不改变事件级监视器的超时,限制在 10 秒到 30 分钟之间,并优先于 `CLAUDE_STREAM_IDLE_TIMEOUT_MS` 用于该监视器。

220* `CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS` 直接设置首字节截止时间。保持未设置状态,Claude Code 使用字节级监视器的超时,因此 `CLAUDE_STREAM_IDLE_TIMEOUT_MS` 和 `CLAUDE_BYTE_STREAM_IDLE_TIMEOUT_MS` 也会改变截止时间。有关限制、上传限额、`API_TIMEOUT_MS` 上限以及重试在无响应中止后等待多长时间,请参阅 [No response from API](/docs/zh-CN/errors#no-response-from-api)。222* `CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS` 直接设置首字节截止时间。保持未设置状态,Claude Code 使用字节级监视器的超时,因此 `CLAUDE_STREAM_IDLE_TIMEOUT_MS` 和 `CLAUDE_BYTE_STREAM_IDLE_TIMEOUT_MS` 也会改变截止时间。有关限制、上传额度、`API_TIMEOUT_MS` 上限以及重试在无响应中止后等待多长时间,请参阅 [API 无响应](/docs/zh-CN/errors#no-response-from-api)。

221* `API_FORCE_IDLE_TIMEOUT` 设置为 `0` 会关闭正文空闲超时,设置为 `1` 会为每个提供商打开它。监视器独立于它运行,因此要让流暂停超过其阈值,还要提高或禁用它们。223* `API_FORCE_IDLE_TIMEOUT` 设置为 `0` 会关闭主体空闲超时,设置为 `1` 会为每个提供商打开它。监视器独立于它运行,因此要让流暂停超过其阈值,也要提高或禁用它们。

222 224 

223当监视器中止停滞的流时,Claude Code 将中止视为中流失败,您看到的内容取决于响应已进行到多远。Claude Code 重试请求或以错误结束轮次,保留已完成的输出并显示 [不完整响应通知](/docs/zh-CN/errors#the-response-above-may-be-incomplete),或正常结束轮次。[自动重试](/docs/zh-CN/errors#automatic-retries) 说明每个结果适用的位置。225当监视器中止停滞的流时,Claude Code 将中止视为中流失败,你看到的内容取决于响应已进行到多远。Claude Code 重试请求或以错误结束轮次,保留已完成的输出并显示 [不完整响应通知](/docs/zh-CN/errors#the-response-above-may-be-incomplete),或正常结束轮次。[自动重试](/docs/zh-CN/errors#automatic-retries) 说明每个结果适用的位置。

224 226 

225在 [非交互式会话](/docs/zh-CN/headless) 中,以及在任何会话中的子代理响应中,Claude Code 可能首先提示 Claude 继续被截断的响应;[该通知的条目](/docs/zh-CN/errors#the-response-above-may-be-incomplete) 说明何时执行此操作以及何时您仍然看到通知。227在 [非交互式会话](/docs/zh-CN/headless) 中,以及在任何会话中的子代理响应中,Claude Code 可能首先提示 Claude 继续被切断的响应;[该通知的条目](/docs/zh-CN/errors#the-response-above-may-be-incomplete) 说明何时执行此操作以及何时仍然看到通知。

226 228 

227当首字节截止时间触发时,没有响应已开始,因此没有部分输出要保留。有关 Claude Code 如何重新发送请求以及何时轮次改为结束,请参阅 [No response from API](/docs/zh-CN/errors#no-response-from-api)。229当首字节截止时间触发时,没有响应已开始,因此没有部分输出可保留。有关 Claude Code 如何重新发送请求以及何时轮次改为结束,请参阅 [API 无响应](/docs/zh-CN/errors#no-response-from-api)。

228 230 

229<h2 id="network-access-requirements">231<h2 id="network-access-requirements">

230 网络访问要求232 网络访问要求


277 279 

278如果您的 GitHub Enterprise Cloud 组织按 IP 地址限制访问,请启用[已安装 GitHub App 的 IP 白名单继承](https://docs.github.com/en/enterprise-cloud@latest/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/managing-allowed-ip-addresses-for-your-organization#allowing-access-by-github-apps),并且还要[添加白名单条目](https://docs.github.com/en/enterprise-cloud@latest/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/managing-allowed-ip-addresses-for-your-organization#adding-an-allowed-ip-address)以用于 Anthropic 的[出站 IP 地址](https://platform.claude.com/docs/en/api/ip-addresses#outbound-ip-addresses)。继承仅涵盖 Claude GitHub App 作为安装进行的请求,不涵盖它代表您的用户进行的请求。对于其他防火墙,请参阅 [Anthropic API IP 地址](https://platform.claude.com/docs/en/api/ip-addresses)。280如果您的 GitHub Enterprise Cloud 组织按 IP 地址限制访问,请启用[已安装 GitHub App 的 IP 白名单继承](https://docs.github.com/en/enterprise-cloud@latest/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/managing-allowed-ip-addresses-for-your-organization#allowing-access-by-github-apps),并且还要[添加白名单条目](https://docs.github.com/en/enterprise-cloud@latest/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/managing-allowed-ip-addresses-for-your-organization#adding-an-allowed-ip-address)以用于 Anthropic 的[出站 IP 地址](https://platform.claude.com/docs/en/api/ip-addresses#outbound-ip-addresses)。继承仅涵盖 Claude GitHub App 作为安装进行的请求,不涵盖它代表您的用户进行的请求。对于其他防火墙,请参阅 [Anthropic API IP 地址](https://platform.claude.com/docs/en/api/ip-addresses)。

279 281 

280对于防火墙后的自托管 [GitHub Enterprise Server](/docs/zh-CN/github-enterprise-server) 实例,白名单 Anthropic 的[出站 IP 地址](https://platform.claude.com/docs/en/api/ip-addresses#outbound-ip-addresses),以便 Anthropic 基础设施可以访问您的 GHES 主机来克隆存储库和发布审查评论。[自托管环境](/docs/zh-CN/self-hosted-environments-deploy#configure-git)中的会话从您的网络内部访问您的 GHES 主机,因此该暴露仅适用于 Anthropic 托管会话、托管的会话前流程(如存储库选择器)以及选择加入 [Anthropic git 代理](/docs/zh-CN/self-hosted-environments-deploy#use-the-anthropic-git-proxy)的自托管运行程序,该代理从 Anthropic 一侧获取。对于仅在您的网络内可路由的 GHES 主机,[SCM 连接器](/docs/zh-CN/self-hosted-environments-reference#scm-connector-flags)通过出站连接而不是白名单来承载托管的会话前流程,因此不需要白名单。282对于防火墙后的自托管 [GitHub Enterprise Server](/docs/zh-CN/github-enterprise-server) 实例,白名单 Anthropic 的[出站 IP 地址](https://platform.claude.com/docs/en/api/ip-addresses#outbound-ip-addresses),以便 Anthropic 基础设施可以访问您的 GHES 主机来克隆存储库和发布审查评论。[自托管环境](/docs/zh-CN/self-hosted-environments-deploy#configure-git)中的会话从您的网络内部访问您的 GHES 主机,因此该暴露仅适用于 Anthropic 托管会话、托管的会话前流程(如存储库选择器)以及选择加入 [Anthropic git 代理](/docs/zh-CN/self-hosted-environments-deploy#use-the-anthropic-git-proxy)的自托管运行程序,该代理从 Anthropic 一侧获取。[SCM 连接器](/docs/zh-CN/self-hosted-environments-reference#scm-connector-flags)不可用,因此托管的会话前流程无法访问仅在您的网络内可路由的 GHES 主机。

281 283 

282<h3 id="desktop-and-claude-ai">284<h3 id="desktop-and-claude-ai">

283 Desktop 和 claude.ai285 Desktop 和 claude.ai

Details

309 309 

310* **计划**:所有计划。310* **计划**:所有计划。

311* **组织**:在 Team 和 Enterprise 上,自动模式默认可用。管理员可以通过在[托管设置](/docs/zh-CN/managed-settings)中将 `permissions.disableAutoMode` 设置为 `"disable"` 来为组织关闭它。311* **组织**:在 Team 和 Enterprise 上,自动模式默认可用。管理员可以通过在[托管设置](/docs/zh-CN/managed-settings)中将 `permissions.disableAutoMode` 设置为 `"disable"` 来为组织关闭它。

312* **模型**:在 Anthropic API 和 [AWS 上的 Claude Platform](/docs/zh-CN/claude-platform-on-aws) 上,Claude Opus 4.6 或更高版本、Sonnet 4.6 或更高版本,或[Fable 模型](/docs/zh-CN/model-config#work-with-fable)。在 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 和已登录的[Claude 应用网关](/docs/zh-CN/claude-apps-gateway)会话上,仅 Claude Sonnet 5、Opus 4.7 或更高版本和 Fable 模型。较旧的模型,包括 Sonnet 4.5、Opus 4.5、Haiku 和 claude-3 模型,在任何提供商上都不受支持。312* **模型**:在 Anthropic API 和 [AWS 上的 Claude Platform](/docs/zh-CN/claude-platform-on-aws) 上,Claude Opus 4.6 或更高版本、Sonnet 4.6 或更高版本,或[Fable 模型](/docs/zh-CN/model-config#work-with-fable)。在 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 和已登录的[Claude 应用网关](/docs/zh-CN/claude-apps-gateway)会话上,仅 Claude Sonnet 5 或更高版本、Opus 4.7 或更高版本和 Fable 模型。较旧的模型,包括 Sonnet 4.5、Opus 4.5、Haiku 和 claude-3 模型,在任何提供商上都不受支持。

313* **提供商**:在 Anthropic API、AWS 上的 Claude Platform、Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 和已登录的 Claude 应用网关会话上默认可用。313* **提供商**:在 Anthropic API、AWS 上的 Claude Platform、Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 和已登录的 Claude 应用网关会话上默认可用。

314 314 

315如果 Claude Code 报告自动模式不可用,首先检查这些要求以及任何设置文件是否设置了 [`disableAutoMode`](/docs/zh-CN/settings-reference#disableautomode)。Anthropic 也可能已在服务器端关闭了自动模式,或服务器可能为您的账户拒绝了自动模式。收到任一答案的会话会保持自动模式关闭直到会话结束,因此稍后启动新会话。315如果 Claude Code 报告自动模式不可用,首先检查这些要求以及任何设置文件是否设置了 [`disableAutoMode`](/docs/zh-CN/settings-reference#disableautomode)。Anthropic 也可能已在服务器端关闭了自动模式,或服务器可能已为您的账户拒绝了自动模式。收到任一答案的会话会保持自动模式关闭直到会话结束,因此稍后启动新会话。

316 316 

317一条单独的消息命名一个模型并说自动模式"无法确定"操作的安全性意味着分类器请求失败。该失败通常是暂时的,但在 Amazon Bedrock 上,它可能会重复直到您的账户可以调用命名的模型。有关原因和处理方法,请参阅[错误参考](/docs/zh-CN/errors#auto-mode-cannot-determine-the-safety-of-an-action)。317一条单独的消息命名一个模型并说自动模式"无法确定"操作的安全性意味着分类器请求失败。该失败通常是暂时的,但在 Amazon Bedrock 上,它可能会重复直到您的账户可以调用命名的模型。有关原因和处理方法,请参阅[错误参考](/docs/zh-CN/errors#auto-mode-cannot-determine-the-safety-of-an-action)。

318 318 

319如果您在[设置](/docs/zh-CN/settings-reference#all-settings)中设置 `defaultMode: "auto"` 并且终端会话在没有错误的情况下以手动模式启动,该设置可能在 `.claude/settings.json` 或 `.claude/settings.local.json` 中。`auto` 不会从这些文件生效。将其移至 `~/.claude/settings.json`。对于 VS Code 扩展启动的对话,请改为检查扩展自己的列表在[切换权限模式](#switch-permission-modes)中。319如果您在[设置](/docs/zh-CN/settings-reference#all-settings)中设置 `defaultMode: "auto"` 并且终端会话在没有错误的情况下以 Manual 模式启动,该设置可能在 `.claude/settings.json` 或 `.claude/settings.local.json` 中。`auto` 不会从这些文件生效。将其移至 `~/.claude/settings.json`。对于 VS Code 扩展启动的对话,请改为检查扩展自己的列表在[切换权限模式](#switch-permission-modes)中。

320 320 

321<h3 id="enable-auto-mode-on-bedrock-agent-platform-or-foundry">321<h3 id="enable-auto-mode-on-bedrock-agent-platform-or-foundry">

322 Bedrock、Agent Platform 或 Foundry 上的自动模式322 Bedrock、Agent Platform 或 Foundry 上的自动模式


324 324 

325在 [Amazon Bedrock](/docs/zh-CN/amazon-bedrock)、[Google Cloud 的 Agent Platform](/docs/zh-CN/google-vertex-ai)、[Microsoft Foundry](/docs/zh-CN/microsoft-foundry) 和已登录的[Claude 应用网关](/docs/zh-CN/claude-apps-gateway)会话上,自动模式默认可用。在 Claude Code v2.1.283 或更高版本中,它也是交互式终端和 [VS Code](/docs/zh-CN/vs-code) 会话的[内置起始权限模式](#which-mode-a-session-starts-in)。要自己选择起始权限模式,请按照[以不同权限模式启动](#start-in-a-different-mode)的描述设置 `permissions.defaultMode`,或从 VS Code 扩展的模式指示器中选择权限模式。325在 [Amazon Bedrock](/docs/zh-CN/amazon-bedrock)、[Google Cloud 的 Agent Platform](/docs/zh-CN/google-vertex-ai)、[Microsoft Foundry](/docs/zh-CN/microsoft-foundry) 和已登录的[Claude 应用网关](/docs/zh-CN/claude-apps-gateway)会话上,自动模式默认可用。在 Claude Code v2.1.283 或更高版本中,它也是交互式终端和 [VS Code](/docs/zh-CN/vs-code) 会话的[内置起始权限模式](#which-mode-a-session-starts-in)。要自己选择起始权限模式,请按照[以不同权限模式启动](#start-in-a-different-mode)的描述设置 `permissions.defaultMode`,或从 VS Code 扩展的模式指示器中选择权限模式。

326 326 

327这些提供商仅支持 Claude Sonnet 5、Opus 4.7 或更高版本和 Fable 模型。在任何其他模型上,会话以手动模式启动。327仅这些提供商上支持 Claude Sonnet 5 或更高版本、Opus 4.7 或更高版本和 Fable 模型。在任何其他模型上,会话以 Manual 模式启动。

328 328 

329要防止开发人员使用自动模式,请在[托管设置](/docs/zh-CN/managed-settings)中将 `disableAutoMode` 设置为 `"disable"`。这会从 `Shift+Tab` 循环中移除 `auto`,并且使用 `--permission-mode auto` 启动的会话会改为以手动模式启动。已在自动模式中运行的会话在设置从[管理员部署的源](/docs/zh-CN/managed-settings#which-managed-source-claude-code-uses)到达该会话时会离开它,并显示 `auto mode disabled by settings`。在 v2.1.251 之前,运行中的会话会保持自动模式直到它结束。329要防止开发人员使用自动模式,请在[托管设置](/docs/zh-CN/managed-settings)中将 `disableAutoMode` 设置为 `"disable"`。这会从 `Shift+Tab` 循环中移除 `auto`,并且使用 `--permission-mode auto` 启动的会话会以 Manual 模式启动。已在自动模式中运行的会话在设置从[管理员部署的源](/docs/zh-CN/managed-settings#which-managed-source-claude-code-uses)到达该会话时会离开它,并显示 `auto mode disabled by settings`。在 v2.1.251 之前,运行中的会话会保持自动模式直到它结束。

330 330 

331在 v2.1.158 到 v2.1.206 中,这些提供商上的自动模式是关闭的,直到您设置 `CLAUDE_CODE_ENABLE_AUTO_MODE=1`,并且 Claude Code 在这些提供商上忽略 `defaultMode: "auto"`,除非也设置了该变量。该变量仍被接受以保持兼容性,从 v2.1.207 开始无效。331在 v2.1.158 到 v2.1.206 中,自动模式在这些提供商上是关闭的,直到您设置 `CLAUDE_CODE_ENABLE_AUTO_MODE=1`,并且 Claude Code 在这些提供商上忽略 `defaultMode: "auto"`,除非也设置了该变量。该变量仍被接受以保持兼容性,从 v2.1.207 开始无效。

332 332 

333<h3 id="server-side-classifier-review">333<h3 id="server-side-classifier-review">

334 服务器端分类器审查334 服务器端分类器审查


340* **云提供商、LLM 网关或代理**:在 [AWS 上的 Claude Platform](/docs/zh-CN/claude-platform-on-aws)、Amazon Bedrock、Google Cloud 的 Agent Platform 和 Microsoft Foundry 上,以及每当您将 `ANTHROPIC_BASE_URL` 指向[LLM 网关或代理](/docs/zh-CN/llm-gateway)时,无论您的计划如何。默认询问需要 Claude Code v2.1.278 或更高版本。340* **云提供商、LLM 网关或代理**:在 [AWS 上的 Claude Platform](/docs/zh-CN/claude-platform-on-aws)、Amazon Bedrock、Google Cloud 的 Agent Platform 和 Microsoft Foundry 上,以及每当您将 `ANTHROPIC_BASE_URL` 指向[LLM 网关或代理](/docs/zh-CN/llm-gateway)时,无论您的计划如何。默认询问需要 Claude Code v2.1.278 或更高版本。

341* **已登录的[Claude 应用网关](/docs/zh-CN/claude-apps-gateway)会话**:需要 Claude Code v2.1.280 或更高版本341* **已登录的[Claude 应用网关](/docs/zh-CN/claude-apps-gateway)会话**:需要 Claude Code v2.1.280 或更高版本

342 342 

343服务器审查操作的地方,其判决决定了它们。另外两种结果是可能的:343服务器审查操作的地方,其判决决定了它们。还有两种其他可能的结果:

344 344 

345* **服务器不审查会话**:响应完成时没有审查结果,或服务器回答它不审查此会话。最常见的原因是 LLM 网关或代理丢弃审查请求或结果,以及平台、区域或凭证还没有服务器端检查。Claude Code 回退到自己的分类器请求。一旦该回退对会话的其余部分生效,它会在那些请求被计费的账户上显示[关于分类器请求费用的通知](/docs/zh-CN/auto-mode-classifier-billing)。345* **服务器不审查会话**:响应完成时没有审查结果,或服务器回答它不审查此会话。最常见的原因是 LLM 网关或代理丢弃审查请求或结果,以及平台、区域或凭证还没有服务器端检查。Claude Code 回退到自己的分类器请求。一旦该回退对会话的其余部分生效,它会在那些请求被计费的账户上显示[关于分类器请求费用的通知](/docs/zh-CN/auto-mode-classifier-billing)。

346* **服务器对操作没有给出判决**:Claude Code 拒绝该操作而不是未审查地运行它。在任何连接上,当响应在审查结果到达之前结束或结果以 Claude Code 无法读取的形式到达时,这会发生。丢弃响应或重写结果的 LLM 网关或代理可能导致任一情况。在直接连接到 Anthropic API 时,当服务器对操作的检查失败时也会发生,例如超时。[服务器未返回安全判决](/docs/zh-CN/errors#the-server-returned-no-safety-verdict)涵盖拒绝消息、拒绝重复时发生的情况以及处理方法。346* **服务器对操作没有给出判决**:Claude Code 拒绝该操作而不是运行它而不审查。在任何连接上,当响应在审查结果到达之前结束或结果以 Claude Code 无法读取的形式到达时,这会发生。丢弃响应或重写结果的 LLM 网关或代理可能导致任一情况。在直接连接到 Anthropic API 时,当服务器对操作的检查失败时也会发生,例如超时。[服务器未返回安全判决](/docs/zh-CN/errors#the-server-returned-no-safety-verdict)涵盖拒绝消息、拒绝重复时发生的情况以及处理方法。

347 347 

348要跳过询问服务器并始终使用 Claude Code 自己的分类器请求,请设置 [`CLAUDE_CODE_AUTO_MODE_SERVER=0`](/docs/zh-CN/env-vars)。在直接连接到 Anthropic API 时,该变量需要 Claude Code v2.1.281 或更高版本。将其设置为 `1` 会在没有它的会话中打开服务器审查,例如 `-p` 或 Agent SDK 会话,除非您也设置了 `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`。如果您设置 `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1` 并保持 `CLAUDE_CODE_AUTO_MODE_SERVER` 未设置,Claude Code 也会停止询问服务器,除了[禁用预发布功能](/docs/zh-CN/llm-gateway-protocol#disable-pre-release-capabilities)描述的情况。348要跳过询问服务器并始终使用 Claude Code 自己的分类器请求,请设置 [`CLAUDE_CODE_AUTO_MODE_SERVER=0`](/docs/zh-CN/env-vars)。在直接连接到 Anthropic API 时,该变量需要 Claude Code v2.1.281 或更高版本。将其设置为 `1` 会在没有它的会话中打开服务器审查,例如 `-p` 或 Agent SDK 会话,除非您也设置了 `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`。如果您设置 `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1` 并保持 `CLAUDE_CODE_AUTO_MODE_SERVER` 未设置,Claude Code 也会停止询问服务器,除了[禁用预发布功能](/docs/zh-CN/llm-gateway-protocol#disable-pre-release-capabilities)描述的情况。

349 349 


358* 下载和执行代码,如 `curl | bash`358* 下载和执行代码,如 `curl | bash`

359* 向外部端点发送敏感数据359* 向外部端点发送敏感数据

360* 生产部署和迁移360* 生产部署和迁移

361* 云存储上的大规模删除361* 云存储上的大量删除

362* 授予 IAM 或仓库权限362* 授予 IAM 或仓库权限

363* 修改共享基础设施363* 修改共享基础设施

364* 不可逆地销毁会话前存在的文件364* 不可逆地销毁会话前存在的文件

365* 强制推送365* 强制推送

366* 提交或推送会在运行时向仓库外发送秘密或敏感数据的更改,或扩大部署公开的内容。这涵盖将秘密传递给不已接收它的目的地的 CI 工作流或部署配置、读取秘密存储并发送数据的脚本或设置步骤,以及扩大部署发布内容的配置更改,例如注册表、可见性、工件或源映射设置。检查适用于任何分支,即使仓库是公开的也适用,并在提交或推送时触发,无论该提交或推送是否触发管道;清除它需要命名执行效果,而不仅仅是提交或推送。在 v2.1.211 之前,此检查的范围仅限于默认分支:当它携带敏感内容、相对于您要求的隐藏或误描述的更改、从仓库外移植的内容或绕过您要求的审查的内容时,推送那里被阻止366* 提交或推送会在运行时向仓库外发送秘密或敏感数据的更改,或扩大部署公开的内容。这涵盖将秘密传递给不已接收它的目的地的 CI 工作流或部署配置、读取秘密存储并发送数据的脚本或设置步骤,以及扩大部署发布内容的配置更改,例如注册表、可见性、工件或源映射设置。检查适用于任何分支,即使仓库是公开的也适用,并在提交或推送时触发,无论该提交或推送是否触发管道;清除它需要命名执行效果,而不仅仅是提交或推送。在 v2.1.211 之前,此检查的范围仅限于默认分支:当推送携带敏感内容、隐瞒或误描述相对于您要求的内容、从仓库外移植的内容或绕过您要求的审查的内容时,推送到那里会被阻止

367* `git reset --hard`、`git checkout -- .`、`git restore .`、`git clean -fd`、`git stash drop` 或 `git stash clear`,分类器假设会丢弃未提交的更改367* `git reset --hard`、`git checkout -- .`、`git restore .`、`git clean -fd`、`git stash drop` 或 `git stash clear`,分类器假设会丢弃未提交的更改

368* `git commit --amend` 当 HEAD 处的提交不是在此会话中创建的368* `git commit --amend` 当 HEAD 处的提交不是在此会话中创建的

369* 从 v2.1.198 开始,`git commit --amend` 当 HEAD 处的提交已被推送时。仅消息重述不被阻止:`--amend -m` 在没有新暂存的情况下,对于 Claude 在此会话期间创建的提交369* 从 v2.1.198 开始,`git commit --amend` 当 HEAD 处的提交已被推送。仅消息重述不被阻止:`--amend -m` 在 Claude 在此会话期间创建的提交上没有新暂存的内容

370* `terraform destroy`、`pulumi destroy`、`cdk destroy` 或 `terragrunt destroy`,以及应用销毁资源的计划370* `terraform destroy`、`pulumi destroy`、`cdk destroy` 或 `terragrunt destroy`,以及应用销毁资源的计划

371 

372Claude Code v2.1.195 及更高版本默认阻止更多类别。其中几个取决于[环境](/docs/zh-CN/auto-mode-config#define-trusted-infrastructure)条目,例如敏感的远程目标和受保护的 IaC 范围,您可以将其缩小到具体名称。

373 

374* 写入秘密管理器,或更改 DNS 记录或 TLS 证书371* 写入秘密管理器,或更改 DNS 记录或 TLS 证书

375* 合并没有人类批准的拉取请求、批准 Claude 自己的拉取请求或禁用 CI 检查372* 合并没有人类批准的拉取请求、批准 Claude 自己的拉取请求或禁用 CI 检查

376* 发布本身是自动化命令的评论,例如 `atlantis apply` 或机器人的 `/deploy` 或 `/merge`373* 发布本身是自动化命令的评论,例如 `atlantis apply` 或机器人的 `/deploy` 或 `/merge`

377* 切换、调整或删除生产功能标志374* 切换、调整或删除生产功能标志

378* 将基础设施更改应用于受保护的 IaC 范围,或排空和移除集群节点375* 将基础设施更改应用于受保护的 IaC 范围,或排空和移除集群节点

379* 写入超出您命名的资源的共享计算集群,例如标签选择器或捕获其他用户作业的 `--all`376* 写入超出您命名的资源的共享计算集群,例如标签选择器或 `--all` 捕获其他用户的作业

380* 创建在每个节点上运行或拦截集群流量的 Kubernetes 资源,例如 DaemonSets 和准入 webhooks377* 创建在每个节点上运行或拦截集群流量的 Kubernetes 资源,例如 DaemonSets 和准入 webhooks

381* 交互式 shell 或端口转发到敏感的远程目标378* 交互式 shell 或端口转发到敏感的远程目标

382* 打开隧道或反向 shell,使本地服务可从公共互联网访问379* 打开隧道或反向 shell 使本地服务可从公网访问

383* 将实时凭证或令牌打印到记录或文件中380* 将实时凭证或令牌打印到记录或文件中

384* 访问在您的[环境](/docs/zh-CN/auto-mode-config#define-trusted-infrastructure)中列为敏感数据位置的位置,或从其中复制数据。从 v2.1.198 开始,这也阻止从一个向条目排除的受众发送数据381* 访问在您的[环境](/docs/zh-CN/auto-mode-config#define-trusted-infrastructure)中列为敏感数据位置的位置,或从一个位置复制数据。从 v2.1.198 开始,这也阻止从一个位置向条目排除的受众发送数据

385* 绕过您的内部包注册表将包安装路由到公共注册表。从 v2.1.198 开始,这也适用于您在对话中告诉 Claude 内部注册表或镜像存在的情况,而不仅仅是在您的环境中列出的情况382* 绕过您的内部包注册表将包安装路由到公共注册表。从 v2.1.198 开始,这也适用于您在对话中告诉 Claude 内部注册表或镜像存在的情况,而不仅仅是在您的环境中列出的情况

386* 使用禁用安全防护的标志运行命令,如 `--insecure`383* 使用禁用安全防护的标志运行命令,如 `--insecure`

387* 启动在没有人类批准或沙箱的情况下运行的自主代理循环,例如使用 `--dangerously-skip-permissions` 或 `--no-sandbox` 启动的循环。从 v2.1.198 开始,这也涵盖运行禁用隔离和按操作批准的第三方代理或评估工具,例如使用 `--yes-always` 启动的运行器384* 启动在没有人类批准或沙箱的情况下运行的自主代理循环,例如使用 `--dangerously-skip-permissions` 或 `--no-sandbox` 启动的循环。从 v2.1.198 开始,这也涵盖运行禁用隔离和按操作批准的第三方代理或评估工具,例如使用 `--yes-always` 启动的运行器

388* [Chrome 中的 Claude](/docs/zh-CN/chrome)浏览器操作可能会向源外发送页面内容、cookie 或凭证385* [Chrome 中的 Claude](/docs/zh-CN/chrome)浏览器操作可能会向外源发送页面内容、cookie 或凭证

386 

387其中几个类别取决于[环境](/docs/zh-CN/auto-mode-config#define-trusted-infrastructure)条目,例如敏感的远程目标和受保护的 IaC 范围,您可以将其缩小到具体名称。

389 388 

390Claude Code v2.1.198 及更高版本也默认阻止这些:389Claude Code v2.1.198 及更高版本也默认阻止这些:

391 390 

392* 通过通配符、glob 或年龄过滤器而不是特定命名路径删除 `/tmp`、`$TMPDIR` 或其他共享暂存或缓存目录中的文件391* 通过通配符、glob 或年龄过滤器而不是特定命名路径删除 `/tmp`、`$TMPDIR` 或其他共享暂存或缓存目录中的文件

393* 在您自己的消息未授权这些详情给该收件人的情况下,将敏感详情包含在发送、上传、发布或写入其他人或共享系统的内容中。PR 和问题正文、提交消息和评论在仓库在信任边界外或公开时计为这种出站内容,包括您组织自己的公开仓库;内部文件路径、代码名称、实时 API 响应数据(如电子邮件或账户标识符)和基础设施标识符计为敏感详情。PR、问题和提交消息范围需要 Claude Code v2.1.200 或更高版本。PR 或问题正文中的实时个人数据(如电子邮件地址、账户或组织标识符或使用指标)需要您命名这些详情和收件人,无论仓库的可见性或信任边界如何。该检查需要 Claude Code v2.1.203 或更高版本392* 在您自己的消息未授权这些详情给该收件人的情况下,在发送、上传、发布或写入给其他人或共享系统的内容中包含敏感详情。当仓库在信任边界外或公开时,PR 和问题正文、提交消息和评论计为这种出站内容,包括您组织自己的公开仓库;内部文件路径、代码名称、实时 API 响应数据(如电子邮件或账户标识符)和基础设施标识符计为敏感详情。PR、问题和提交消息范围需要 Claude Code v2.1.200 或更高版本。PR 或问题正文中的实时个人数据(如电子邮件地址、账户或组织标识符或使用指标)需要您命名这些详情和收件人,无论仓库的可见性或信任边界如何。该检查需要 Claude Code v2.1.203 或更高版本

394* 向 Claude Code 自己的 tmux 窗格发送按键以驱动其自己的界面,分类器将其视为 Claude 更改自己的权限或监督393* 向 Claude Code 自己的 tmux 窗格发送按键以驱动其自己的界面,分类器将其视为 Claude 更改自己的权限或监督

395 394 

396Claude Code v2.1.200 及更高版本也默认阻止这些:395Claude Code v2.1.200 及更高版本也默认阻止这些:


399* 删除或拆除 Claude 在会话中未创建的有状态资源,当没有更具体的删除规则适用且您未命名该资源时398* 删除或拆除 Claude 在会话中未创建的有状态资源,当没有更具体的删除规则适用且您未命名该资源时

400* 将 API 基础 URL、代理端点、webhook 接收器或注册表镜像重新指向不适合任务的第三方主机,包括在 `.env.example` 等示例文件中399* 将 API 基础 URL、代理端点、webhook 接收器或注册表镜像重新指向不适合任务的第三方主机,包括在 `.env.example` 等示例文件中

401* 使用 `git remote set-url` 或 `git remote add` 更改推送去向,除非您命名了新远程400* 使用 `git remote set-url` 或 `git remote add` 更改推送去向,除非您命名了新远程

402* 推送秘密或个人或受信任的数据到已知为公开的仓库,或推送不属于该仓库自己工作的机密材料。dotfiles 仓库自己的主题是个人或受信任数据的唯一例外,来自私有仓库到任何公开表面的内容以相同方式被阻止;两项改进都需要 Claude Code v2.1.203 或更高版本。在 v2.1.203 之前,个人数据与机密材料分组,仅当它不属于该仓库自己的工作时才被阻止。当仓库的可见性未确定时,分类器不仅基于此阻止;它改为根据其他规则判断内容401* 将秘密或个人或受信数据推送到已知为公开的仓库,或将不属于该仓库自己工作的机密材料推送到那里。dotfiles 仓库自己的主题是个人或受信数据的唯一例外,来自私有仓库到任何公开表面的内容以相同方式被阻止;两项改进都需要 Claude Code v2.1.203 或更高版本。在 v2.1.203 之前,个人数据与机密材料分组,仅当它不属于该仓库自己的工作时才被阻止。当仓库的可见性未确定时,分类器不仅基于此阻止;它改为根据其他规则判断内容

403* 针对不同仓库或组织打开拉取请求、使用 `gh repo fork` 分叉或推送到第三方仓库,除非您命名了该外部目标402* 针对不同仓库或组织打开拉取请求、使用 `gh repo fork` 进行分叉或推送到第三方仓库,除非您命名了该外部目标

404 403 

405Claude Code v2.1.203 及更高版本也默认阻止这些:404Claude Code v2.1.203 及更高版本也默认阻止这些:

406 405 


409Claude Code v2.1.205 及更高版本也默认阻止这些:408Claude Code v2.1.205 及更高版本也默认阻止这些:

410 409 

411* 写入 Claude Code 会话记录、`~/.claude/projects/` 下的 `.jsonl` 历史文件或您配置的配置目录,无论是直接还是通过 shell 命令。该规则也涵盖 Claude Code 为其自己的检查附加到每个记录条目的元数据行。读取记录不被阻止410* 写入 Claude Code 会话记录、`~/.claude/projects/` 下的 `.jsonl` 历史文件或您配置的配置目录,无论是直接还是通过 shell 命令。该规则也涵盖 Claude Code 为其自己的检查附加到每个记录条目的元数据行。读取记录不被阻止

412* 递归强制删除,例如 `rm -rf "$VAR"` 或 `Remove-Item -Recurse -Force $dir`,其目标是在分类器看到的对话中任何地方都未分配的 shell 变量,或以这样的变量为根的 glob。该值仅来自较早的命令输出,分类器永远不会收到,因此分类器无法根据其他删除规则验证删除目标。当您命名被删除的确切路径或 Claude 使用解析的文字路径重新运行删除时,该块会清除。分类器可以解析其目标的删除不受影响。411* 递归强制删除,例如 `rm -rf "$VAR"` 或 `Remove-Item -Recurse -Force $dir`,其目标是分类器看不到的任何地方分配的 shell 变量,或以这样的变量为根的 glob。该值仅来自较早的命令输出,分类器从不接收,因此分类器无法根据其他删除规则验证删除目标。当您命名被删除的确切路径或 Claude 使用写入命令的已解析文字路径重新运行删除时,该块会清除。分类器可以解析其目标的删除不受影响。

413 412 

414 直接在变量下的 glob,如 `rm -rf "$VAR"/*`,是[关键路径](#critical-paths)。`Remove-Item` 目标是裸 `*` 或以 `/*` 或 `\*` 结尾的永远不会到达分类器:Claude Code [直接拒绝它们](#remove-item-in-powershell)。413 直接在变量下的 glob,如 `rm -rf "$VAR"/*`,是[关键路径](#critical-paths)。`Remove-Item` 目标是裸 `*` 或以 `/*` 或 `\*` 结尾的从不到达分类器:Claude Code [直接拒绝它们](#remove-item-in-powershell)。

415 414 

416Claude Code v2.1.257 及更高版本也默认阻止这些:415Claude Code v2.1.257 及更高版本也默认阻止这些:

417 416 

418* 从云实例元数据端点请求凭证,例如 `169.254.169.254`,或使用机器自己的服务账户或节点身份显式验证云、集群或注册表调用417* 从云实例元数据端点请求凭证,例如 `169.254.169.254`,或使用机器自己的服务账户或节点身份显式验证云、集群或注册表调用

419* 通过直接请求以外的路由到达公开主机,例如隧道、反向 shell 或重写为指向外部的解析器或代理配置418* 通过直接请求以外的路由到达公共主机,例如隧道、反向 shell 或重写为指向外部的解析器或代理配置

420* 读取属于主机而不是您的任务的凭证,例如节点证书或节点的容器注册表身份验证419* 读取属于主机而不是您的任务的凭证,例如节点证书或节点的容器注册表身份验证

421* 连接到或扫描 Claude 未启动的同级容器、pod 或 VM,或容器下的节点420* 连接到或扫描 Claude 未启动的同级容器、pod 或 VM,或容器下的节点

422 421 


428 427 

429**默认允许**:428**默认允许**:

430 429 

431* 工作目录中的本地文件操作430* 您工作目录中的本地文件操作

432* 安装在您的锁定文件或清单中声明的依赖项431* 安装在您的锁定文件或清单中声明的依赖项

433* 读取 `.env` 并向其匹配的 API 发送凭证432* 读取 `.env` 并向其匹配的 API 发送凭证

434* 只读 HTTP 请求433* 只读 HTTP 请求

435* 推送到您正在处理的仓库的任何分支,包括默认分支。其名称将其标记为部署或发布目标的非默认分支,例如 `production` 或 `gh-pages`,不被涵盖:分类器根据其自己的条款判断推送。推送的内容仍根据其他规则进行检查,[`permissions.deny` 规则](/docs/zh-CN/permissions#manage-permissions)仍可以在每种模式中[按书写](/docs/zh-CN/permissions#bash-rule-limits)阻止推送命令,远程自己的分支保护仍适用。在 v2.1.211 之前,仅允许推送到您启动的分支、Claude 创建的分支和到默认分支的常规推送,在 v2.1.203 之前任何直接推送到默认分支都被阻止434* 推送到您正在处理的仓库的任何分支,包括默认分支。其名称将其标记为部署或发布目标的非默认分支,例如 `production` 或 `gh-pages`,不被涵盖:分类器根据其自己的条款判断推送到那里。推送的内容仍根据其他规则进行检查,[`permissions.deny` 规则](/docs/zh-CN/permissions#manage-permissions)仍可以在每种模式中[按书写](/docs/zh-CN/permissions#bash-rule-limits)阻止推送命令,远程自己的分支保护仍适用。在 v2.1.211 之前,仅推送到您启动的分支、Claude 创建的分支和到默认分支的常规推送默认允许,在 v2.1.203 之前任何直接推送到默认分支都被阻止

436 

437Claude Code v2.1.195 及更高版本也默认允许这些:

438 

439* 删除 Claude 在同一会话中较早创建的确切作业435* 删除 Claude 在同一会话中较早创建的确切作业

440* 作为您的任务的一部分读取、审查或编写安全相关的代码、配置和威胁模型436* 作为您的任务的一部分读取、审查或编写安全相关的代码、配置和威胁模型

441* 在同一多代理会话中一起工作的代理之间的消息437* 在同一多代理会话中一起工作的代理之间的消息


452 工作目录外的第一次读取448 工作目录外的第一次读取

453</h3>449</h3>

454 450 

455当 [`permissions.blockReadsOutsideWorkingDirectories`](/docs/zh-CN/settings-reference#permissions-blockreadsoutsideworkingdirectories) 关闭时,文件读取在自动模式中无需提示即可运行,包括在[工作目录](/docs/zh-CN/permissions#working-directories)外的读取。Claude 第一次在它们外的路径上使用 Read、Grep 或 Glob 工具时,Claude Code 询问您是否继续允许这些读取。451当 [`permissions.blockReadsOutsideWorkingDirectories`](/docs/zh-CN/settings-reference#permissions-blockreadsoutsideworkingdirectories) 关闭时,文件读取在自动模式中无需提示即可运行,包括在[工作目录](/docs/zh-CN/permissions#working-directories)外的读取。Claude 第一次在它们外的路径上使用 Read、Grep 或 Glob 工具时,Claude Code 询问是否允许该读取。

456 452 

457该提示不会出现在非交互式 `-p` 运行或后台会话中;那里的读取照常运行。453该提示不会出现在非交互式 `-p` 运行或后台会话中;那里的读取照常运行。

458 454 

459无论您的答案如何,Claude 继续工作:455无论您的答案如何,Claude 继续工作:

460 456 

461* **是,继续允许工作目录外的任何读取**:读取运行,工作目录外的后续读取照常运行,Claude Code 记录您的答案以便提示不再出现457* **是的,继续允许工作目录外的任何读取**:读取运行,稍后工作目录外的读取照常运行,Claude Code 记录您的答案以便提示不再出现

462* **否,从现在开始阻止工作目录外的读取**:读取被拒绝,Claude Code 在您的用户设置中将 [`permissions.blockReadsOutsideWorkingDirectories`](/docs/zh-CN/settings-reference#permissions-blockreadsoutsideworkingdirectories) 设置为 `true`,这使文件工具在每个后续会话和每种权限模式中拒绝此类读取。要稍后让 Claude 读取此类路径,请使用 `/add-dir` 添加其目录或移除该设置。458* **否,从现在开始阻止工作目录外的读取**:读取被拒绝,Claude Code 在您的用户设置中将 [`permissions.blockReadsOutsideWorkingDirectories`](/docs/zh-CN/settings-reference#permissions-blockreadsoutsideworkingdirectories) 设置为 `true`,这使文件工具在每个后续会话和每种权限模式中拒绝此类读取。要稍后让 Claude 读取此类路径,请使用 `/add-dir` 添加其目录或移除该设置。

463* **否,下次再问**:读取被拒绝,工作目录外的下一次读取再次提示459* **否,下次再问**:读取被拒绝,下一次工作目录外的读取再次提示

464* **是,但下次再问**:读取运行,不保存任何内容,工作目录外的下一次读取再次提示460* **是的,但下次再问**:读取运行,不保存任何内容,下一次工作目录外的读取再次提示

465 461 

466<h3 id="boundaries-you-state-in-conversation">462<h3 id="boundaries-you-state-in-conversation">

467 您在对话中陈述的边界463 您在对话中陈述的边界

468</h3>464</h3>

469 465 

470分类器将您在对话中陈述的边界视为阻止信号。如果您告诉 Claude"不要推送"或"在我审查后再部署",分类器会阻止匹配的操作,即使默认规则会允许它们。边界保持有效直到您在后续消息中解除它。Claude 自己的条件已满足的判断不会解除它。466分类器将您在对话中陈述的边界视为阻止信号。如果您告诉 Claude"不要推送"或"在我审查前等待再部署",分类器会阻止匹配的操作,即使默认规则会允许它们。边界保持有效直到您在后续消息中解除它。Claude 自己的判断条件已满足不会解除它。

471 467 

472边界不作为规则存储。分类器在每次检查时从记录中重新读取它们,因此如果[上下文压缩](/docs/zh-CN/costs#reduce-token-usage)移除陈述边界的消息,边界可能会丢失。为了硬保证,请改为添加[拒绝规则](/docs/zh-CN/permissions#permission-rule-syntax)。468边界不存储为规则。分类器在每次检查时从记录中重新读取它们,因此如果[上下文压缩](/docs/zh-CN/costs#reduce-token-usage)移除陈述它的消息,边界可能会丢失。为了硬保证,请改为添加[拒绝规则](/docs/zh-CN/permissions#permission-rule-syntax)。

473 469 

474<h3 id="approvals-you-state-in-conversation">470<h3 id="approvals-you-state-in-conversation">

475 您在对话中陈述的批准471 您在对话中陈述的批准

476</h3>472</h3>

477 473 

478如果您告诉 Claude 被阻止的操作是允许的,分类器将其读取为您的批准并可以清除阻止。您如何措辞决定了操作是否运行以及批准的范围有多远:474如果您告诉 Claude 被阻止的操作是允许的,分类器将其读取为您的批准并可以清除阻止。您如何措辞决定了操作是否运行以及批准到达多远:

479 475 

480* **命名操作及其具体情况**:您的消息必须命名操作和使其危险的具体事物,例如强制推送的分支。仅命名动词不会清除任何内容,因此"您可以强制推送"会使阻止保持原位。476* **命名操作及其具体情况**:您的消息必须命名操作和使其危险的具体事物,例如强制推送的分支。仅命名动词不会清除任何内容,因此"您可以强制推送"会使阻止保持有效。

481* **期望它涵盖一个操作**:批准涵盖您命名的破坏性操作,因此后续操作再次被阻止,除非您授予批准为常设。要停止一次一个地批准常规模式,请将其添加到 [`autoMode.allow`](/docs/zh-CN/auto-mode-config#override-the-block-and-allow-rules)。477* **期望它涵盖一个操作**:批准涵盖您命名的破坏性操作,因此稍后的操作再次被阻止,除非您授予批准为常设。要停止一次一个地批准常规模式,请将其添加到 [`autoMode.allow`](/docs/zh-CN/auto-mode-config#override-the-block-and-allow-rules)。

482* **某些阻止保持原位**:[分类器的优先级顺序](/docs/zh-CN/auto-mode-config#override-the-block-and-allow-rules)规定了您的批准可以到达哪些阻止。要运行它不会清除的步骤,请[离开自动模式](#switch-permission-modes)并回答权限提示。478* **某些阻止保持有效**:[分类器的优先级顺序](/docs/zh-CN/auto-mode-config#override-the-block-and-allow-rules)规定了您的批准可以到达哪些阻止。要运行它不会清除的步骤,请[离开自动模式](#switch-permission-modes)并回答权限提示。

483 479 

484<h3 id="when-auto-mode-falls-back">480<h3 id="when-auto-mode-falls-back">

485 当自动模式回退时481 当自动模式回退时


488当自动模式无法批准您的会话操作时,发生的情况取决于情况:484当自动模式无法批准您的会话操作时,发生的情况取决于情况:

489 485 

490* **被阻止的操作**:Claude Code 显示通知并在 `/permissions` 下的**最近拒绝**选项卡中列出操作,您可以按 `r` 使用手动批准重试它。486* **被阻止的操作**:Claude Code 显示通知并在 `/permissions` 下的**最近拒绝**选项卡中列出操作,您可以按 `r` 使用手动批准重试它。

491* **重复阻止**:如果分类器连续 3 次或总共 20 次阻止操作,自动模式暂停,Claude Code 恢复提示。批准提示的操作恢复自动模式。请参阅[重复阻止阈值](#repeated-block-thresholds)了解如何计算阻止。487* **重复阻止**:如果分类器连续阻止操作 3 次或总共 20 次,自动模式暂停,Claude Code 恢复提示。批准提示的操作恢复自动模式。有关如何计数阻止的信息,请参阅[重复阻止阈值](#repeated-block-thresholds)。

492* **来自分类器的无判决**:当自动模式之外的安全检查拒绝分类器自己的请求,或分类器的响应未解析时,Claude Code 拒绝该操作而不显示通知或**最近拒绝**条目。请参阅[自动模式无法确定操作的安全性](/docs/zh-CN/errors#auto-mode-cannot-determine-the-safety-of-an-action)了解每种情况显示的消息以及处理方法。488* **分类器无判决**:当独立于自动模式的安全检查拒绝分类器自己的请求或分类器的响应不解析时,Claude Code 拒绝操作而不显示通知或**最近拒绝**条目。有关每种情况显示的消息和处理方法,请参阅[自动模式无法确定操作的安全性](/docs/zh-CN/errors#auto-mode-cannot-determine-the-safety-of-an-action)。

493* **来自服务器的无判决**:在[服务器端分类器审查](#server-side-classifier-review)下,Claude Code 拒绝服务器给不出判决的操作,并在连续 10 个响应没有判决后停止轮次。请参阅[服务器未返回安全判决](/docs/zh-CN/errors#the-server-returned-no-safety-verdict)。489* **服务器无判决**:在[服务器端分类器审查](#server-side-classifier-review)下,Claude Code 拒绝服务器给不出判决的操作,并在连续十个响应都没有判决后停止轮次。请参阅[服务器未返回安全判决](/docs/zh-CN/errors#the-server-returned-no-safety-verdict)。

494* **检查期间的模式切换**:如果您在分类器检查待处理时切换权限模式,Claude Code 丢弃新模式不会请求的判决。您改为被提示批准,或在 [`dontAsk` 模式](#allow-only-pre-approved-tools-with-dontask-mode)中操作被自动拒绝。490* **检查期间的模式切换**:如果您在分类器检查待处理时切换权限模式,Claude Code 丢弃新模式不会请求的判决。您改为被提示批准,或在 [`dontAsk` 模式](#allow-only-pre-approved-tools-with-dontask-mode)中自动拒绝操作。

495 491 

496<h4 id="repeated-block-thresholds">492<h4 id="repeated-block-thresholds">

497 重复阻止阈值493 重复阻止阈值

498</h4>494</h4>

499 495 

500连续 3 次阻止和总共 20 次阻止的阈值不可配置。总计数器对会话持续并仅在其自己的限制触发回退时重置。当自动模式之外的安全检查拒绝分类器自己的请求时,Claude Code 不计算拒绝向任一阈值。4963 个连续阻止和 20 个总阻止的阈值不可配置。总计数器对会话持续并仅在其自己的限制触发回退时重置。当独立于自动模式的安全检查拒绝分类器自己的请求时,Claude Code 不计数拒绝到任一阈值。

501 497 

502[非交互式](/docs/zh-CN/headless) `-p` 运行没有 [`--permission-prompt-tool`](/docs/zh-CN/cli-reference#cli-flags) 没有回退提示。当重复阻止达到阈值时,操作不运行,Claude 继续工作。Claude Code 不停止运行。498没有 [`--permission-prompt-tool`](/docs/zh-CN/cli-reference#cli-flags) 的[非交互式](/docs/zh-CN/headless) `-p` 运行没有回退提示。当重复阻止达到阈值时,操作不运行,Claude 继续工作。Claude Code 不停止运行。

503 499 

504重复阻止通常意味着分类器缺少关于您的基础设施的上下文。使用 `/feedback` 报告假阳性,或让管理员[配置受信任的基础设施](/docs/zh-CN/auto-mode-config)。500重复阻止通常意味着分类器缺少关于您的基础设施的上下文。使用 `/feedback` 报告误报,或让管理员[配置受信任的基础设施](/docs/zh-CN/auto-mode-config)。

505 501 

506<h3 id="how-auto-mode-evaluates-actions">502<h3 id="how-auto-mode-evaluates-actions">

507 分类器如何评估操作503 自动模式如何评估操作

508</h3>504</h3>

509 505 

510以下部分涵盖 Claude Code 评估操作的顺序、分类器如何审查子代理工作,以及分类器调用在成本和延迟中添加的内容。506以下部分涵盖 Claude Code 评估操作的顺序、分类器如何审查子代理工作以及分类器调用在成本和延迟中添加的内容。

511 507 

512<span id="how-the-classifier-evaluates-actions" />508<span id="how-the-classifier-evaluates-actions" />

513 509 


515 <Accordion title="分类器如何评估操作">511 <Accordion title="分类器如何评估操作">

516 每个操作都经过固定的决策顺序。第一个匹配的步骤获胜:512 每个操作都经过固定的决策顺序。第一个匹配的步骤获胜:

517 513 

518 1. 与您的[允许、询问或拒绝规则](/docs/zh-CN/permissions#manage-permissions)匹配的操作立即解决,但以下例外:514 1. 与您的[允许、询问或拒绝规则](/docs/zh-CN/permissions#manage-permissions)匹配的操作立即解决,但有以下例外:

519 * 写入[受保护路径](#protected-paths)的操作路由到分类器,即使允许规则匹配515 * 写入[受保护路径](#protected-paths)的操作路由到分类器,即使允许规则匹配

520 * 没有允许规则批准针对[关键路径](#critical-paths)的 `rm` 和 `rmdir` 删除516 * 没有允许规则批准针对[关键路径](#critical-paths)的 `rm` 和 `rmdir` 删除

521 * 标记为 [`requiresUserInteraction`](/docs/zh-CN/mcp#require-approval-for-a-specific-tool) 的 MCP 工具直接提示您,即使允许规则匹配,连接器工具[您的组织在会话中设置为 `ask`](/docs/zh-CN/mcp#organization-controls-on-connector-tools)的也是,其中该设置到达 Claude Code517 * 标记为 [`requiresUserInteraction`](/docs/zh-CN/mcp#require-approval-for-a-specific-tool) 的 MCP 工具直接提示您,即使允许规则匹配,连接器工具您的组织在会话中设置为 `ask` 的[也是如此](/docs/zh-CN/mcp#organization-controls-on-connector-tools),其中该设置到达 Claude Code

522 * 携带[按命令允许的域](/docs/zh-CN/sandboxing#per-command-allowed-domains-in-auto-mode)的 shell 命令也路由到分类器,即使允许规则匹配,因为规则批准命令,而不是其主机518 * 携带[按命令允许的域](/docs/zh-CN/sandboxing#per-command-allowed-domains-in-auto-mode)的 shell 命令也路由到分类器,即使允许规则匹配,因为规则批准命令,而不是其主机

523 * 与命令内容匹配的询问规则,例如 `Bash(git push *)`,回退到权限提示519 * 与命令内容匹配的询问规则,例如 `Bash(git push *)`,回退到权限提示

524 * [符号链接检查](/docs/zh-CN/permissions#symlinks)解决为受保护路径的写入在 Claude 请求的路径本身不受保护时提示您520 * [符号链接检查](/docs/zh-CN/permissions#symlinks)解决为受保护路径的写入在 Claude 请求的路径本身不受保护时提示您

525 2. 只读操作和工作目录中的文件编辑被自动批准,除了写入[受保护路径](#protected-paths)和[工作目录外的第一次读取](#first-read-outside-the-working-directories),这会提示您521 2. 只读操作和您工作目录中的文件编辑自动批准,除了写入[受保护路径](#protected-paths)和[工作目录外的第一次读取](#first-read-outside-the-working-directories),这会提示您

526 * 在具有[服务器端分类器审查](#server-side-classifier-review)的会话中,只读和[沙箱](/docs/zh-CN/sandboxing#sandbox-modes) shell 命令等待该审查并在其标记时被阻止522 * 在具有[服务器端分类器审查](#server-side-classifier-review)的会话中,只读和[沙箱](/docs/zh-CN/sandboxing#sandbox-modes) shell 命令等待该审查,如果它标记它们则被阻止

527 * 工作目录内的写入,[符号链接检查](/docs/zh-CN/permissions#symlinks)解决为其外的位置,提示您523 * 您工作目录内的写入,[符号链接检查](/docs/zh-CN/permissions#symlinks)解决为其外的位置,提示您

528 3. 其他所有内容都进入分类器,除了[关键路径删除](#critical-paths)在其默认处理下。在步骤 1 中直接提示您的连接器工具和`requiresUserInteraction` MCP 工具永远不会到达分类器,因此既不是组织要求的批准也不是同意步骤被自动批准524 3. 其他所有内容都进入分类器,除了[关键路径删除](#critical-paths)在其默认处理下。在步骤 1 中直接提示您的连接器工具和 `requiresUserInteraction` MCP 工具从不到达分类器,因此既不是组织要求的批准也不是同意步骤自动批准

529 4. 如果分类器阻止,Claude 收到原因并尝试替代方案。在大多数会话中,原因命名分类器匹配的规则,例如 `[Data Exfiltration]`,而不是给出书面解释;请参阅[审查拒绝](/docs/zh-CN/auto-mode-config#review-denials)525 4. 如果分类器阻止,Claude 接收原因。在大多数会话中,原因命名分类器匹配的规则,例如 `[Data Exfiltration]`,而不是给出书面解释;请参阅[审查拒绝](/docs/zh-CN/auto-mode-config#review-denials)

530 526 

531 进入自动模式时,授予任意代码执行的广泛允许规则被丢弃:527 进入自动模式时,授予任意代码执行的广泛允许规则被丢弃:

532 528 

533 * 无条件 `Bash(*)` 或 `PowerShell(*)`529 * 空白 `Bash(*)` 或 `PowerShell(*)`

534 * 通配符解释器,如 `Bash(python*)`530 * 通配符解释器,如 `Bash(python*)`

535 * 包管理器运行命令531 * 包管理器运行命令

536 * `Agent` 允许规则532 * `Agent` 允许规则

537 * [`Monitor`](/docs/zh-CN/tools-reference#monitor-tool) 允许规则,因为 Claude Code 通过 shell 运行 Monitor 命令533 * [`Monitor`](/docs/zh-CN/tools-reference#monitor-tool)允许规则,因为 Claude Code 通过 shell 运行 Monitor 命令

538 534 

539 窄规则如 `Bash(npm test)` 保持有效。Claude Code 在您离开自动模式时恢复丢弃的规则。在 v2.1.236 之前,Claude Code 在自动模式中保持 `Monitor` 允许规则有效,因此与整个工具匹配的规则在没有分类器审查的情况下批准 Monitor 命令。535 窄规则如 `Bash(npm test)` 保持有效。当您离开自动模式时,Claude Code 恢复丢弃的规则。在 v2.1.236 之前,Claude Code 在自动模式中保持 `Monitor` 允许规则有效,因此与整个工具匹配的规则在没有分类器审查的情况下批准 Monitor 命令。

540 536 

541 Claude Code 也在会丢弃未提交工作的命令之前运行 `git status`,例如 `git reset --hard` 或 `rm -rf`,并向分类器显示是否存在暂存、修改或未跟踪的工作。Claude Code 在该检查中报告未跟踪的文件,即使仓库的 git 配置设置 `status.showUntrackedFiles=no`。537 Claude Code 也在会丢弃未提交工作的命令之前运行 `git status`,例如 `git reset --hard` 或 `rm -rf`,并向分类器显示是否存在暂存、修改或未跟踪的工作。即使仓库的 git 配置设置 `status.showUntrackedFiles=no`,Claude Code 也在该检查中报告未跟踪的文件。

542 538 

543 在 Claude Code 本身发送的分类器请求中,分类器看到用户消息、除只读查找(如文件读取和搜索)之外的工具调用,以及您的 CLAUDE.md 内容。工具结果从这些请求中被剥离,因此文件或网页中的恶意内容无法直接操纵分类器。539 在 Claude Code 本身发送的分类器请求中,分类器看到用户消息、除只读查找(如文件读取和搜索)之外的工具调用以及您的 CLAUDE.md 内容。工具结果从这些请求中被剥离,因此文件或网页中的恶意内容无法直接操纵分类器。

544 540 

545 您可以使用 [PostToolUse hook 的 `classifierContext` 字段](/docs/zh-CN/hooks#annotate-a-result-for-the-auto-mode-classifier)注释调用的结果,分类器将其读取为应用程序提供的上下文。该字段需要 Claude Code v2.1.236 或更高版本。541 您可以使用 [PostToolUse hook 的 `classifierContext` 字段](/docs/zh-CN/hooks#annotate-a-result-for-the-auto-mode-classifier)注释调用的结果,分类器将其读取为应用程序提供的上下文。该字段需要 Claude Code v2.1.236 或更高版本。

546 542 


552 548 

553 1. 在子代理启动之前,委托的任务描述被评估,因此看起来危险的任务在生成时被阻止。549 1. 在子代理启动之前,委托的任务描述被评估,因此看起来危险的任务在生成时被阻止。

554 2. 当子代理运行时,其每个操作都通过分类器,使用与父会话相同的规则,子代理前言中的任何 `permissionMode` 被忽略。550 2. 当子代理运行时,其每个操作都通过分类器,使用与父会话相同的规则,子代理前言中的任何 `permissionMode` 被忽略。

555 3. 当子代理完成时,分类器审查其工作和最终报告,然后父读取报告。当分类器标记子代理的工作或报告,或单独的 API 安全检查拒绝审查时,报告仍被传递,前面加上安全警告。当分类器对审查不可用时,报告到达时带有注意在根据其采取行动之前验证子代理的工作。551 3. 当子代理完成时,分类器审查其工作和最终报告,然后父代读取报告。当分类器标记子代理的工作或报告,或单独的 API 安全检查拒绝审查时,报告仍被传递,前面加上安全警告。当分类器对审查不可用时,报告到达时带有注意在根据它采取行动前验证子代理工作的注意。

556 </Accordion>552 </Accordion>

557 553 

558 <Accordion title="成本和延迟">554 <Accordion title="成本和延迟">

559 分类器默认在 Claude Sonnet 5 上运行,而不是在您的 `/model` 选择上。Anthropic 配置的服务器端分类器模型优先于该默认值。当您的会话模型是 Claude Sonnet 4.6 时,或当 [`availableModels`](/docs/zh-CN/model-config#restrict-model-selection) 排除 Sonnet 5 时,分类器改为在会话的模型上运行,或在会话在[Fable 模型](/docs/zh-CN/model-config#work-with-fable)上运行时在 Opus 模型上运行;在 Anthropic API 以外的提供商上,该 Opus 回退是提供商的默认 Opus 模型。555 分类器默认在 Claude Sonnet 5 上运行,而不是在您的 `/model` 选择上。Anthropic 配置的服务器端分类器模型优先于该默认值。当您的会话模型是 Claude Sonnet 4.6 时,或当 [`availableModels`](/docs/zh-CN/model-config#restrict-model-selection) 排除 Sonnet 5 时,分类器改为在会话的模型上运行,或在会话在[Fable 模型](/docs/zh-CN/model-config#work-with-fable)上运行时在 Opus 模型上运行;在 Anthropic API 以外的提供商上,该 Opus 回退是提供商的默认 Opus 模型。

560 556 

561 会话的第一个自动模式请求验证 Sonnet 5 默认值:如果请求成功,Sonnet 5 保持会话的分类器模型,如果它失败是因为模型不可用,会话改为使用回退。在该验证解决后,分类器的模型对会话不再改变。557 会话的第一个自动模式请求验证 Sonnet 5 默认值:如果请求成功,Sonnet 5 保持会话的分类器模型,如果它失败是因为模型不可用,会话改为使用回退。在该验证解决后,分类器的模型对会话不改变。

562 558 

563 在 Enterprise 计划和使用 Claude API 的账户、[AWS 上的 Claude Platform](/docs/zh-CN/claude-platform-on-aws)、Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry 上,分类器调用计入您的令牌使用。每次检查发送记录的一部分加上待处理操作,在执行前添加往返。在受保护路径外的读取和工作目录编辑跳过分类器,因此开销主要来自 shell 命令和网络操作。服务器审查操作作为会话模型请求的一部分的地方,没有单独的分类器调用要计数;请参阅[服务器端分类器审查](#server-side-classifier-review)。559 在 Enterprise 计划和使用 Claude API 的账户、[AWS 上的 Claude Platform](/docs/zh-CN/claude-platform-on-aws)、Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry 上,分类器调用计入您的令牌使用。每次检查发送记录的一部分加上待处理操作,在执行前添加往返。读取和工作目录编辑在受保护路径外跳过分类器,因此开销主要来自 shell 命令和网络操作。服务器审查操作作为会话模型请求的一部分的地方,没有单独的分类器调用计数;请参阅[服务器端分类器审查](#server-side-classifier-review)。

564 560 

565 沙箱网络访问不添加按连接分类器请求。分类器与命令一起判断[命令命名的主机](/docs/zh-CN/sandboxing#per-command-allowed-domains-in-auto-mode)在一次审查中,Claude Code 检查每个连接对批准列表而不再次调用分类器。561 沙箱网络访问不添加按连接分类器请求。分类器在一次审查中与命令一起判断[命令命名的主机](/docs/zh-CN/sandboxing#per-command-allowed-domains-in-auto-mode),Claude Code 检查每个连接对批准列表而不再次调用分类器。

566 </Accordion>562 </Accordion>

567</AccordionGroup>563</AccordionGroup>

568 564 

plugin-evals.md +20 −12

Details

55 无插件基线55 无插件基线

56</h3>56</h3>

57 57 

58仅凭高分不能告诉你插件是否有帮助,因为 Claude 可能在没有插件的情况下也能做得很好。为了区分两者,默认情况下每个用例的运行会重复进行,不加载任何插件,你会得到两个分数,`WITH` 和 `W/OUT`。它们的差异 `Δ` 是插件贡献的内容。如果一个用例在有插件和没有插件的情况下都得分 1.0,那么插件不是使其通过的原因。58仅凭高分不能告诉你插件是否有帮助,因为 Claude 可能在没有插件的情况下也能做得很好。为了区分两者,一个用例的运行会重复进行,不加载任何插件,你会得到两个分数,`WITH` 和 `W/OUT`。它们的差异 `Δ` 是插件贡献的内容。如果一个用例在有插件和没有插件的情况下都得分 1.0,那么插件不是使其通过的原因。

59 59 

60这两组运行称为 with-arm 和 without-arm;[与无插件基线比较](#compare-against-a-no-plugin-baseline)涵盖了评分器如何在它们之间评分以及如何关闭基线。60这两组运行称为 with-arm 和 without-arm;[与无插件基线比较](#compare-against-a-no-plugin-baseline)涵盖了哪些用例仅运行 with-arm 以及评分器如何在两个 arm 之间评分。

61 61 

62<h2 id="create-your-first-eval-suite">62<h2 id="create-your-first-eval-suite">

63 创建你的第一个 eval 套件63 创建你的第一个 eval 套件


130 编写和完善用例130 编写和完善用例

131</h2>131</h2>

132 132 

133`claude plugin eval init` 编写的用例是你可以打开、更改和添加的纯文件。用例是插件 eval 目录下的一个目录,包含 `prompt.md`、`case.yaml` 或两者。要对用例进行分组,将它们嵌套在不是用例本身的目录下;用例目录内的任何内容,例如 `graders/` 和 fixture 文件,都属于该用例。133`claude plugin eval init` 编写的用例是你可以打开、更改和添加的纯文件。用例是插件 eval 目录下的一个目录,包含 `prompt.md`、`case.yaml` 或两者。每个用例至少要有一个评分器,作为 `graders/<name>.md` 文件或 `case.yaml` 中的 `graders:` 条目,因为没有评分器的用例无法加载。要对用例进行分组,将它们嵌套在不是用例本身的目录下;用例目录内的任何内容,例如 `graders/` 和 fixture 文件,都属于该用例。

134 134 

135这是 `claude plugin eval init` 编写的布局,也是新套件要使用的布局。[eval 套件参考](#eval-suite-reference)有完整的树,包括 mocks 和结果:135这是 `claude plugin eval init` 编写的布局,也是新套件要使用的布局。[eval 套件参考](#eval-suite-reference)有完整的树,包括 mocks 和结果:

136 136 


236 针对无插件基线评分236 针对无插件基线评分

237</h3>237</h3>

238 238 

239当插件处于测试中时,默认情况下每个用例在两个 arm 中运行。with-arm 是其加载插件的运行,without-arm 是相同数量的不加载任何插件的运行。摘要和报告显示两个分数和 `Δ`,即 with-arm 分数减去 without-arm 分数。传递 `--ablation none` 以仅运行 with-arm,当你不需要比较时(例如在迭代评分器时)将成本减半。239当插件处于测试中时,用例通常在两个 arm 中运行。with-arm 是其加载插件的运行,without-arm 是相同数量的不加载任何插件的运行。摘要和报告显示两个分数和 `Δ`,即 with-arm 分数减去 without-arm 分数。

240 

241在这些情况下,用例仅运行 with-arm,所以它没有 `W/OUT` 分数或 `Δ`:

242 

243* **你传递 `--ablation none`**:每个用例运行一个 arm,当你不需要比较时(例如在迭代评分器时)将成本减半。

244* **用例恢复记录并且目标是一个路径**:使用[目标](#choose-what-to-evaluate)(例如 `.` 而不是已安装插件的名称),[`context.history_file`](#add-setup-or-history-with-case-yaml) 用例默认运行一个 arm,假设记录的对话已经反映了插件。运行在 stderr 上打印 `single-arm (no Δ)` 通知,命名这些用例。要比较恢复的转向与和不带插件,传递 `--ablation with-without`。

245* **没有为用例找到插件**:当目标是一个路径时,Claude Code 无法定位的插件的用例也默认运行一个 arm。参见[基线 arm 显示无插件](#the-baseline-arm-shows-no-plugin-or-delta-is-zero)来修复它。

240 246 

241在两个 arm 运行中,某些评分器报告为 `scored: false`。像"技能被调用"这样的检查在没有插件的情况下永远无法通过,所以计数会将 without-arm 推向零并夸大 `Δ`。为了保持两个 arm 可比较,Claude Code 在两个 arm 中排除此类评分器的分数,并在 with-arm 中仅将其报告为通过/失败指示器。这包括:247在两个 arm 运行中,某些评分器报告为 `scored: false`。像"技能被调用"这样的检查在没有插件的情况下永远无法通过,所以计数会将 without-arm 推向零并夸大 `Δ`。为了保持两个 arm 可比较,Claude Code 在两个 arm 中排除此类评分器的分数,并在 with-arm 中仅将其报告为通过/失败指示器。这包括:

242 248 


274每次运行都在空工作区中开始。当用例需要的不仅仅是提示时,在 `prompt.md` 旁边添加一个 `case.yaml`,带有 `context` 块:280每次运行都在空工作区中开始。当用例需要的不仅仅是提示时,在 `prompt.md` 旁边添加一个 `case.yaml`,带有 `context` 块:

275 281 

276* **Fixture 文件或 git 存储库**:在用例目录中编写 Bash 脚本并在 `context.scaffold_script` 中命名它。脚本作为你在代理沙箱外运行,仅当你传递 `--scaffold` 时,所以仅对你或你的组织编写的套件传递该标志。282* **Fixture 文件或 git 存储库**:在用例目录中编写 Bash 脚本并在 `context.scaffold_script` 中命名它。脚本作为你在代理沙箱外运行,仅当你传递 `--scaffold` 时,所以仅对你或你的组织编写的套件传递该标志。

277* **要继续的早期对话**:将记录保存为 `.jsonl` 文件并在 `context.history_file` 中命名它,用例的提示成为下一个用户轮次。283* **要继续的早期对话**:将记录保存为 `.jsonl` 文件并在 `context.history_file` 中命名它,用例的提示成为下一个用户轮次。当目标是一个路径时,这样的用例默认[不运行基线 arm](#compare-against-a-no-plugin-baseline)。

278* **Claude 在运行期间可以读取的 Fixture 目录**:在 `context.add_dirs` 中列出它们。284* **Claude 在运行期间可以读取的 Fixture 目录**:在 `context.add_dirs` 中列出它们。

279 285 

280`case.yaml` 也需要 `schema_version: "1.1"` 和 `name`;[case.yaml 字段](#case-yaml-fields)参考有完整列表。286`case.yaml` 也需要 `schema_version: "1.1"` 和 `name`;[case.yaml 字段](#case-yaml-fields)参考有完整列表。


290 add_dirs: [resources]296 add_dirs: [resources]

291```297```

292 298 

299scaffold 脚本在空工作区中启动,具有小的固定环境:你的 shell 的 `PATH`、`HOME` 设置为运行的临时主目录、`TMPDIR` 和一些常数,如 `TERM=dumb`。你的 shell 中没有其他内容到达它,用例的 `EVAL_*` 变量也不会。如果脚本以非零退出或运行时间超过 120 秒,该运行得分为 0,出现 `scaffold failed` 错误。仅将脚本用于文件和 git 状态,因为它写入的项目配置[未被加载](#how-runs-are-isolated)。

300 

293<h3 id="mock-mcp-servers">301<h3 id="mock-mcp-servers">

294 Mock MCP 服务器302 Mock MCP 服务器

295</h3>303</h3>


384| `-j`, `--concurrency <n>` | `1` | 一次最多运行这么多个代理运行,从 1 到 8。它们共享你账户的速率限制,所以这缩短了实际时间而不是提高超过该限制的吞吐量。结果保持用例顺序 |392| `-j`, `--concurrency <n>` | `1` | 一次最多运行这么多个代理运行,从 1 到 8。它们共享你账户的速率限制,所以这缩短了实际时间而不是提高超过该限制的吞吐量。结果保持用例顺序 |

385| `--model <model>` | 每个用例的 `model`,否则为 `ANTHROPIC_MODEL`(如果设置),否则为 Claude Code 的默认值 | 被测试代理的模型。在 CI 中固定它,以便模型推出不会被误认为是插件回归 |393| `--model <model>` | 每个用例的 `model`,否则为 `ANTHROPIC_MODEL`(如果设置),否则为 Claude Code 的默认值 | 被测试代理的模型。在 CI 中固定它,以便模型推出不会被误认为是插件回归 |

386| `--judge-model <model>` | 一个小的快速模型 | 用于 `llm` 和 `baseline` 评分器的模型 |394| `--judge-model <model>` | 一个小的快速模型 | 用于 `llm` 和 `baseline` 评分器的模型 |

387| `--ablation <mode>` | 当插件解析时为 `with-without`,否则为 `none` | 是否也运行每个用例而不使用插件来衡量它添加了什么。`none` 运行一个分支;`with-without` 添加无插件基线 |395| `--ablation <mode>` | 按用例决定;请参阅 [与无插件基线比较](#compare-against-a-no-plugin-baseline) | 是否也运行每个用例而不使用插件来衡量它添加了什么。`none` 运行一个分支;`with-without` 添加无插件基线 |

388| `--threshold <0..1>` | `1.0` | 当用例的 with 分支得分至少为此值时,用例通过。任何低于它的用例都会使命令退出 1 |396| `--threshold <0..1>` | `1.0` | 当用例的 with 分支得分至少为此值时,用例通过。任何低于它的用例都会使命令退出 1 |

389| `--max-cost-usd <usd>` | 无上限 | 运行的列表价格成本估计的上限,不是计划使用的上限。在每次运行开始前检查。一旦花费,不会进一步启动任何内容;已在进行中的运行会完成,所以花费可能会超过这些运行的上限。如果任何运行未启动,命令会以部分结果退出 2 |397| `--max-cost-usd <usd>` | 无上限 | 运行的列表价格成本估计的上限,不是计划使用的上限。在每次运行开始前检查。一旦花费,不会进一步启动任何内容;已在进行中的运行会完成,所以花费可能会超过这些运行的上限。如果任何运行未启动,命令会以部分结果退出 2 |

390| `--allow-tools <tools...>` | 无 | 授予超出只读集合的工具。请参阅 [授予工具](#grant-tools) |398| `--allow-tools <tools...>` | 无 | 授予超出只读集合的工具。请参阅 [授予工具](#grant-tools) |


494 信任插件目录502 信任插件目录

495</h3>503</h3>

496 504 

497第一次针对一个目录运行 `claude plugin eval` 时,Claude Code 会在加载任何内容之前询问 `Trust this plugin directory?`,除非你已经在交互式 `claude` 会话中接受了那里的信任提示。在 git 仓库内,回答是会信任整个仓库,对交互式会话也是如此。当 stdin 或 stdout 不是终端时,在 `--json` 下,或当 `CI` 环境变量设置为真值(如 `true`)时,运行无法询问并被拒绝,退出代码为 1;传递 `--trust-plugin` 来自己声明信任,仅限于你会在自己机器上运行的插件。你命名而不是作为路径给出的目标,即已安装的插件或 skills 目录插件,会跳过提示。505第一次针对一个目录运行 `claude plugin eval` 时,Claude Code 会在加载任何内容之前询问 `Trust this plugin directory?`,除非你已经在交互式 `claude` 会话中接受了那里的信任提示。在 git 仓库内,回答是会信任整个仓库,对交互式会话也是如此。当 stdin 或 stdout 不是终端时,或在 `--json` 下,运行无法询问并被拒绝,退出代码为 1;传递 `--trust-plugin` 来自己声明信任,仅限于你会在自己机器上运行的插件。你命名而不是作为路径给出的目标,即已安装的插件或 skills 目录插件,会跳过提示。

498 506 

499插件和套件的某些部分仅在你为该运行传递其标志时才运行:507插件和套件的某些部分仅在你为该运行传递其标志时才运行:

500 508 


510 518 

511每次运行都获得一个临时主目录、工作目录和 Claude Code 配置,被测试的代理在那里作为 `claude -p` 子进程运行,仅加载你的插件。在编写案例时,请记住这些后果:519每次运行都获得一个临时主目录、工作目录和 Claude Code 配置,被测试的代理在那里作为 `claude -p` 子进程运行,仅加载你的插件。在编写案例时,请记住这些后果:

512 520 

513* **不加载任何个人或项目级内容。** 你的用户设置、hooks、`CLAUDE.md` 文件、MCP 服务器、其他已安装的插件、memory 和 skills 都不存在,沙箱上方没有项目范围的 `.claude/` 或 `.mcp.json` 被读取。你的大部分 shell 环境也被隐瞒;只有[允许列表](#prompt-md-fields)和 `EVAL_*` 变量到达运行。如果插件需要设置,在插件中提供它,在 `scaffold_script` 中创建它,或传递 `EVAL_*` 变量。521* **不加载任何个人或项目级内容。** 你的用户设置、hooks、`CLAUDE.md` 文件、MCP 服务器、其他已安装的插件、memory 和 skills 都不存在。项目范围的配置不会在任何地方被读取:没有 `.claude/` 目录、`CLAUDE.md` 或 `.mcp.json` 从工作区上方或内部加载,即使是 `scaffold_script` 写入的,`add_dirs` 目录仅授予读取访问权限。你的大部分 shell 环境也被隐瞒;只有[允许列表](#prompt-md-fields)和 `EVAL_*` 变量到达运行。在被测试的插件中提供任何 skills、agents、hooks 或 MCP 服务器案例所依赖的,因为 [`scaffold_script`](#add-setup-or-history-with-case-yaml) 只能提供文件和 git 状态。

514* **托管策略仍然可以限制运行。** 管理员部署到机器的[托管设置](/docs/zh-CN/managed-settings)中的限制适用于运行内部,所以托管机器上的结果可能因该策略而与非托管机器不同。522* **托管策略仍然可以限制运行。** 管理员部署到机器的[托管设置](/docs/zh-CN/managed-settings)中的限制适用于运行内部,所以托管机器上的结果可能因该策略而与非托管机器不同。

515* **Artifact 工具已关闭。** 发布[artifact](/docs/zh-CN/artifacts)的 skill 只能根据在该步骤之前产生的内容进行评分。523* **Artifact 工具已关闭。** 发布[artifact](/docs/zh-CN/artifacts)的 skill 只能根据在该步骤之前产生的内容进行评分。

516* **案例定义对代理隐藏。** 运行无法读取 eval 目录,所以 Claude 看不到案例的提示、其评分器或兄弟案例。524* **案例定义对代理隐藏。** 运行无法读取 eval 目录,所以 Claude 看不到案例的提示、其评分器或兄弟案例。


520 Eval 套件参考528 Eval 套件参考

521</h2>529</h2>

522 530 

523eval 套件可以包含的所有内容都位于插件的 eval 目录下,`evals/` 除非你[配置了另一个](#use-a-different-eval-directory)。此树显示 `claude plugin eval` 在那里读取或写入的每个文件;仅 `prompt.md` 或 `case.yaml` 是用例存在所需的:531eval 套件可以包含的所有内容都位于插件的 eval 目录下,`evals/` 除非你[配置了另一个](#use-a-different-eval-directory)。一个目录在持有 `prompt.md` 或 `case.yaml` 时计为一个用例,没有至少一个评分器的用例加载失败,出现命名 `graders` 的 `invalid case.yaml` 错误。此树显示 `claude plugin eval` 在 eval 目录中读取或写入的每个文件:

524 532 

525```text theme={null}533```text theme={null}

526evals/534evals/


576 584 

577| 字段 | 目的 |585| 字段 | 目的 |

578| :- | :- |586| :- | :- |

579| `context.scaffold_script` | 用例目录中的 Bash 脚本,在 Claude 启动前在空工作区中运行,以创建 fixture 文件或 git 存储库。仅当你传递 [`--scaffold`](#add-setup-or-history-with-case-yaml) 时运行 |587| `context.scaffold_script` | 用例目录中的 Bash 脚本,在 Claude 启动前在空工作区中运行,以创建 fixture 文件或 git 存储库。仅当你传递 [`--scaffold`](#add-setup-or-history-with-case-yaml) 时运行,具有最小环境和 120 秒限制,非零退出使运行失败 |

580| `context.history_file` | 用例目录中的 `.jsonl` 记录以恢复。用例的提示成为下一个用户轮次 |588| `context.history_file` | 用例目录中的 `.jsonl` 记录以恢复。用例的提示成为下一个用户轮次 |

581| `context.add_dirs` | 用例目录内 Claude 可能在运行期间读取的目录,授予只读 |589| `context.add_dirs` | 用例目录内 Claude 可能在运行期间读取的目录,授予只读 |

582| `execution.prompt` | 提示,当你将整个用例保留在 `case.yaml` 中并省略 `prompt.md` 时 |590| `execution.prompt` | 提示,当你将整个用例保留在 `case.yaml` 中并省略 `prompt.md` 时 |


665 "is not a trusted plugin directory, and this run cannot stop to ask you about it"673 "is not a trusted plugin directory, and this run cannot stop to ask you about it"

666</h3>674</h3>

667 675 

668这是针对 Claude Code 尚未信任的目录的首次运行,由于 stdin 或 stdout 不是终端、你传递了 `--json`,或 `CI` 环境变量设置为 `true` 等真值,它无法询问你。在终端中运行一次 `claude plugin eval <dir>` 并回答提示,或者如果你信任插件的代码和套件,传递 `--trust-plugin`。请参阅[运行可以访问的内容](#security)。676这是针对 Claude Code 尚未信任的目录的首次运行,由于 stdin 或 stdout 不是终端或你传递了 `--json`,它无法询问你。在终端中运行一次 `claude plugin eval <dir>` 并回答提示,或者如果你信任插件的代码和套件,传递 `--trust-plugin`。请参阅[运行可以访问的内容](#security)。

669 677 

670<h3 id="git-is-too-old-for-claude-plugin-eval">678<h3 id="git-is-too-old-for-claude-plugin-eval">

671 "is too old for claude plugin eval"679 "is too old for claude plugin eval"


691 基线臂显示没有插件,或 delta 为零699 基线臂显示没有插件,或 delta 为零

692</h3>700</h3>

693 701 

694如果摘要没有 `W/OUT` 列,或案例失败并显示"ablation requested but no plugin resolved",则没有为该案例找到插件。将 `plugins: ["../.."]` 添加到案例中,给出从案例目录到插件目录的路径。702如果摘要没有 `W/OUT` 列,或案例失败并显示"ablation requested but no plugin resolved",则没有为该案例找到插件。如果每个案例都通过 `context.history_file` 恢复一个记录,缺少该列是预期的,因为这些案例默认运行[一个臂](#compare-against-a-no-plugin-baseline)。否则,将 `plugins: ["../.."]` 添加到案例中,给出从案例目录到插件目录的路径。

695 703 

696如果插件确实加载了,而 `Δ` 仍然接近零,且你的 `tool_used: Skill` grader 失败,这通常是一个真实的发现,意味着该 skill 的 `description` 不会在提示的措辞上触发。调整描述并重新运行相同的套件。704如果插件确实加载了,而 `Δ` 仍然接近零,且你的 `tool_used: Skill` grader 失败,这通常是一个真实的发现,意味着该 skill 的 `description` 不会在提示的措辞上触发。调整描述并重新运行相同的套件。

697 705 

Details

22 claude plugin 命令22 claude plugin 命令

23</h2>23</h2>

24 24 

25从 shell 或脚本中运行 `claude plugin <subcommand>`,在 Claude Code 会话外。这些子命令安装和管理 plugins,而不打开 [`/plugin`](#plugin-in-a-session) 面板。25从你的 shell 或脚本运行 `claude plugin <subcommand>`,在 Claude Code 会话外部。这些子命令安装和管理插件,无需打开 [`/plugin`](#plugin-in-a-session) 面板。

26 26 

27`claude plugins` 是 `claude plugin` 的别名。27`claude plugins` 是 `claude plugin` 的别名。

28 28 

29每个子命令共享这些退出代码、plugin 参数和作用域值:29每个子命令共享这些退出代码、插件参数和作用域值:

30 30 

31* **退出代码**:成功时为 `0`,失败时为 `1`。`validate` 为意外错误添加退出 `2`,`eval` 添加 [其部分](#plugin-eval) 中列出的代码。31* **退出代码**:成功时为 `0`,失败时为 `1`。`validate` 为意外错误添加退出 `2`,`eval` 添加 [其部分](#plugin-eval) 中列出的代码。

32* **Plugin 参数**:`<plugin>` 参数是 plugin `name` 或 `name@marketplace`。当两个市场提供相同的名称时,使用限定形式。32* **插件参数**:`<plugin>` 参数是插件 `name` 或 `name@marketplace`。当两个市场提供相同的名称时,使用限定形式。

33* **作用域**:`--scope` 接受 `user`、`project` 或 `local`,并命名命令写入的设置文件。`update` 也接受 `managed`。33* **作用域**:`--scope` 接受 `user`、`project` 或 `local`,并命名命令写入的设置文件。`update` 也接受 `managed`。

34 34 

35<h3 id="plugin-init">35<h3 id="plugin-init">

36 plugin init36 plugin init

37</h3>37</h3>

38 38 

39在 `~/.claude/skills/<name>/` 处搭建新 plugin。它在您的下一个会话中作为 `<name>@skills-dir` 加载,无需安装步骤。39在 `~/.claude/skills/<name>/` 处搭建新插件。它在你的下一个会话中作为 `<name>@skills-dir` 加载,无需安装步骤。

40 40 

41`new` 是 `init` 的别名。41`new` 是 `init` 的别名。

42 42 

43对于以此命令开始的创建、测试和编辑工作流,请参阅 [创建 plugin](/docs/zh-CN/plugins/create)。43对于从此命令开始的创建、测试和编辑工作流,请参阅 [创建插件](/docs/zh-CN/plugins/create)。

44 44 

45```bash theme={null}45```bash theme={null}

46claude plugin init <name> [options]46claude plugin init <name> [options]

47```47```

48 48 

49`<name>` 成为 `~/.claude/skills/` 下的目录名称和 plugin 清单中的 `name`。49`<name>` 成为 `~/.claude/skills/` 下的目录名称和插件清单中的 `name`。

50 50 

51该命令没有用于另一个位置的标志。要改为在项目内搭建,请参阅 [创建 plugin](/docs/zh-CN/plugins/create)。51该命令没有用于另一个位置的标志。要在项目内搭建,请参阅 [创建插件](/docs/zh-CN/plugins/create)。

52 52 

53| 标志 | 描述 |53| 标志 | 描述 |

54| :- | :- |54| :- | :- |


58| `--with <components...>` | 也为 `skills`、`agents`、`hooks`、`mcp`、`lsp`、`output-style` 或 `channel` 搭建启动文件 |58| `--with <components...>` | 也为 `skills`、`agents`、`hooks`、`mcp`、`lsp`、`output-style` 或 `channel` 搭建启动文件 |

59| `-f, --force` | 覆盖目标处的现有 `.claude-plugin/` |59| `-f, --force` | 覆盖目标处的现有 `.claude-plugin/` |

60 60 

61使用启动 skill 和 hook 文件搭建 plugin:61搭建带有启动 skill 和 hook 文件的插件:

62 62 

63```bash theme={null}63```bash theme={null}

64claude plugin init my-helper --with skills hooks64claude plugin init my-helper --with skills hooks

65```65```

66 66 

67Claude Code 验证其写入的内容并打印 `Created plugin "my-helper" at ~/.claude/skills/my-helper`,后跟它加载的 id 和关闭它的 `claude plugin disable` 命令。67Claude Code 验证它写入的内容并打印 `Created plugin "my-helper" at ~/.claude/skills/my-helper`,后跟它加载的 id 和关闭它的 `claude plugin disable` 命令。

68 68 

69当 Claude Code 无法安全搭建时,它退出 `1` 而不写入,消息命名原因。这些是常见原因:69当 Claude Code 无法安全搭建时,它退出 `1` 而不写入,消息命名原因。这些是常见原因:

70 70 

71* 未知的 `--with` 值71* 未知的 `--with` 值

72* 目标处的现有搭建,没有 `--force`72* 目标处的现有搭建,没有 `--force`

73* 阻止 skills-directory plugins 的托管设置73* 阻止 skills-directory 插件的托管设置

74 74 

75<h3 id="plugin-install">75<h3 id="plugin-install">

76 plugin install76 plugin install

77</h3>77</h3>

78 78 

79从您添加的市场安装 plugin。`i` 是 `install` 的别名。79从你添加的市场安装插件。`i` 是 `install` 的别名。

80 80 

81```bash theme={null}81```bash theme={null}

82claude plugin install <plugin> [options]82claude plugin install <plugin> [options]

83```83```

84 84 

85大多数 plugins 无需提示即可安装。对于其市场条目 [运行命令来安装它](/docs/zh-CN/plugins/host-marketplace) 或 [为其下载设置 `headersHelper`](/docs/zh-CN/plugins/host-marketplace#how-users-accept-a-headershelper-command) 的 plugin,Claude Code 首先打印命令并询问 `Run this command now? [y/N]`。85大多数插件无需提示即可安装。对于其市场条目 [运行命令来安装它](/docs/zh-CN/plugins/host-marketplace) 或 [为其下载设置 `headersHelper`](/docs/zh-CN/plugins/host-marketplace#how-users-accept-a-headershelper-command) 的插件,Claude Code 首先打印命令并询问 `Run this command now? [y/N]`。

86 86 

87| 标志 | 描述 |87| 标志 | 描述 |

88| :- | :- |88| :- | :- |

89| `-s, --scope <scope>` | 安装作用域:`user`、`project` 或 `local`。默认为 `user` |89| `-s, --scope <scope>` | 安装作用域:`user`、`project` 或 `local`。默认为 `user` |

90| `--config <key=value>` | 设置 plugin 清单声明的 [`userConfig`](/docs/zh-CN/plugins/manifest-reference) 选项。为每个选项重复该标志。需要 Claude Code v2.1.147 或更高版本 |90| `--config <key=value>` | 设置插件清单声明的 [`userConfig`](/docs/zh-CN/plugins/manifest-reference) 选项。为每个选项重复该标志。需要 Claude Code v2.1.147 或更高版本 |

91| `-y, --yes` | 接受显示的安装命令,无需 `Run this command now?` 提示。当命令在 Claude Code 会话内运行时(例如从 Bash 工具或 hook)被忽略。需要 Claude Code v2.1.229 或更高版本 |91| `-y, --yes` | 接受显示的安装命令,无需 `Run this command now?` 提示。在 Claude Code 会话内运行命令时被忽略,例如从 Bash 工具或 hook。需要 Claude Code v2.1.229 或更高版本 |

92| `--accept-command <sha256>` | 接受显示的安装命令,其 `sha256` 之前的 [`--json` 运行](#plugin-json-result) 在 `shownCommand` 中报告,代替 `-y`。不能与 `-y` 组合。请参阅 [接受显示的安装命令](#accept-a-displayed-install-command)。需要 Claude Code v2.1.271 或更高版本 |92| `--accept-command <sha256>` | 接受显示的安装命令,其 `sha256` 之前的 [`--json` 运行](#plugin-json-result) 在 `shownCommand` 中报告,代替 `-y`。不能与 `-y` 组合。请参阅 [接受显示的安装命令](#accept-a-displayed-install-command)。需要 Claude Code v2.1.271 或更高版本 |

93| `--json` | 将结果作为一个 JSON 对象打印在 stdout 的最后一行,而不是人类可读的消息,供脚本使用。请参阅 [JSON 结果格式](#plugin-json-result)。需要 Claude Code v2.1.268 或更高版本 |93| `--json` | 将结果打印为 stdout 最后一行的一个 JSON 对象,而不是人类可读的消息,供脚本使用。请参阅 [JSON 结果格式](#plugin-json-result)。需要 Claude Code v2.1.268 或更高版本 |

94 94 

95从您自己的终端传递 `-y` 以接受显示的命令而无需提示。以下是没有 TTY 和 Claude 运行命令时发生的情况:95从你自己的终端传递 `-y` 以接受显示的命令,无需提示。以下是没有 TTY 和 Claude 运行命令时发生的情况:

96 96 

97* **stdin 或 stdout 不是 TTY,您既不传递 `-y` 也不传递 `--accept-command`**:安装被拒绝。输出说命令仅被显示,退出代码为 `1`97* **stdin 或 stdout 不是 TTY,且你既不传递 `-y` 也不传递 `--accept-command`**:安装被拒绝。输出说命令仅被显示,退出代码为 `1`

98* **Claude 通过其 Bash 工具运行命令**:`-y` 被忽略。改为从您自己的终端运行命令98* **Claude 通过其 Bash 工具运行命令**:`-y` 被忽略。改为从你自己的终端运行命令

99 99 

100为克隆项目的每个人安装 plugin:100为克隆项目的每个人安装插件:

101 101 

102```bash theme={null}102```bash theme={null}

103claude plugin install formatter@my-marketplace --scope project103claude plugin install formatter@my-marketplace --scope project


106Claude Code 打印 `Successfully installed plugin: formatter@my-marketplace (scope: project)`。当没有新内容被安装时,输出说明原因:106Claude Code 打印 `Successfully installed plugin: formatter@my-marketplace (scope: project)`。当没有新内容被安装时,输出说明原因:

107 107 

108* **已在该作用域安装**:输出为 `Plugin "formatter@my-marketplace" is already installed (scope: project)`,退出代码为 `0`108* **已在该作用域安装**:输出为 `Plugin "formatter@my-marketplace" is already installed (scope: project)`,退出代码为 `0`

109* **您拒绝命令源提示**:输出为 `Aborted.`,退出代码为 `1`109* **你拒绝命令源提示**:输出为 `Aborted.`,退出代码为 `1`

110* **您拒绝 `headersHelper` 提示,或无法在没有 TTY 的情况下确认**:输出为 `Aborted — the command was not run.`,退出代码为 `1`110* **你拒绝 `headersHelper` 提示,或无法在没有 TTY 的情况下确认**:输出为 `Aborted — the command was not run.`,退出代码为 `1`

111 111 

112<h4 id="plugin-json-result">112<h4 id="plugin-json-result">

113 JSON 结果格式113 JSON 结果格式

114</h4>114</h4>

115 115 

116当您向 `plugin install` 传递 `--json` 时,stdout 的最后一行是一个 JSON 对象。仅解析该行,因为 Claude Code 在其前面打印市场声明的任何命令。116当你向 `plugin install` 传递 `--json` 时,stdout 的最后一行是一个 JSON 对象。仅解析该行,因为 Claude Code 在其前面打印市场声明的任何命令。

117 117 

118三个字段始终存在:118三个字段始终存在:

119 119 


123 123 

124其他字段,例如 `pluginId`、`scope` 和 `failureCode`,仅在适用时出现。124其他字段,例如 `pluginId`、`scope` 和 `failureCode`,仅在适用时出现。

125 125 

126`plugin uninstall`、`plugin update`、`plugin enable` 和 `plugin disable` 上的 `--json` 选项打印相同的对象,带有该子命令自己的字段。126`--json` 选项在 `plugin uninstall`、`plugin update`、`plugin enable` 和 `plugin disable` 上打印相同的对象,带有该子命令自己的字段。

127 127 

128使用错误(例如无效的 `--scope`)不打印结果行,退出 `1`,原因在 stderr 上。128使用错误,例如无效的 `--scope`,不打印结果行,退出 `1`,原因在 stderr 上。

129 129 

130<h4 id="accept-a-displayed-install-command">130<h4 id="accept-a-displayed-install-command">

131 接受显示的安装命令131 接受显示的安装命令

132</h4>132</h4>

133 133 

134当 `--json` 运行显示市场声明的命令且不运行它时,`failed` 结果也带有 `shownCommand` 对象。其字段包括显示的命令、它所属的 plugin 和命令的 `sha256`。134当 `--json` 运行显示市场声明的命令且不运行它时,`failed` 结果也携带 `shownCommand` 对象。其字段包括显示的命令、它所属的插件和命令的 `sha256`。

135 135 

136要接受完全相同的命令,从您自己的终端使用该 `sha256` 作为 `--accept-command` 重新运行,因为该标志在 Claude Code 会话内无效。需要 Claude Code v2.1.271 或更高版本。136要接受完全相同的命令,从你自己的终端使用该 `sha256` 作为 `--accept-command` 重新运行,因为该标志在 Claude Code 会话内无效。需要 Claude Code v2.1.271 或更高版本。

137 137 

138`sha256` 计为完全相同的命令、plugin 和市场目录的接受。如果自命令显示以来其中任何一个发生了变化,Claude Code 不接受 `sha256` 并再次显示命令。运行自己的市场刷新获取的更改也计为此类更改。138`sha256` 计为对完全相同的命令、插件和市场目录的接受。如果自命令显示以来其中任何一个发生了变化,Claude Code 不接受 `sha256` 并再次显示命令。运行自己的市场刷新获取的更改也计为此类更改。

139 139 

140如果 `shownCommand.acceptCommandMatched` 为 `false`,您传递的 `sha256` 与现在显示的命令不匹配。在使用其 `sha256` 重新运行之前查看该命令。140如果 `shownCommand.acceptCommandMatched` 为 `false`,你传递的 `sha256` 与现在显示的命令不匹配。在使用其 `sha256` 重新运行之前,查看该命令。

141 141 

142<h3 id="plugin-uninstall">142<h3 id="plugin-uninstall">

143 plugin uninstall143 plugin uninstall

144</h3>144</h3>

145 145 

146从一个作用域删除已安装的 plugin。`remove` 和 `rm` 是 `uninstall` 的别名。146从一个作用域移除已安装的插件。`remove` 和 `rm` 是 `uninstall` 的别名。

147 147 

148```bash theme={null}148```bash theme={null}

149claude plugin uninstall <plugin> [options]149claude plugin uninstall <plugin> [options]


152| 标志 | 描述 |152| 标志 | 描述 |

153| :- | :- |153| :- | :- |

154| `-s, --scope <scope>` | 从作用域卸载:`user`、`project` 或 `local`。默认为 `user` |154| `-s, --scope <scope>` | 从作用域卸载:`user`、`project` 或 `local`。默认为 `user` |

155| `--keep-data` | 保留 plugin 的持久数据目录 `~/.claude/plugins/data/<id>/` |155| `--keep-data` | 保留插件的持久数据目录 `~/.claude/plugins/data/<id>/` |

156| `--prune` | 也删除自动安装的 [dependencies](/docs/zh-CN/plugins/dependencies),没有剩余 plugin 需要 |156| `--prune` | 也移除自动安装的 [依赖项](/docs/zh-CN/plugins/dependencies),没有剩余插件需要 |

157| `-y, --yes` | 跳过 `--prune` 确认提示。当 stdin 或 stdout 不是 TTY 时,`--prune` 需要 |157| `-y, --yes` | 跳过 `--prune` 确认提示。当 stdin 或 stdout 不是 TTY 时,与 `--prune` 一起需要 |

158| `--json` | 将结果作为一个 JSON 对象打印在 stdout 的最后一行,格式与 [`plugin install --json`](#plugin-json-result) 相同。不能与 `--prune` 组合。需要 Claude Code v2.1.268 或更高版本 |158| `--json` | 将结果打印为 stdout 最后一行的一个 JSON 对象,格式与 [`plugin install --json`](#plugin-json-result) 相同。不能与 `--prune` 组合。需要 Claude Code v2.1.268 或更高版本 |

159 159 

160从项目作用域卸载 plugin:160从项目作用域卸载插件:

161 161 

162```bash theme={null}162```bash theme={null}

163claude plugin uninstall formatter@my-marketplace --scope project163claude plugin uninstall formatter@my-marketplace --scope project

164```164```

165 165 

166Claude Code 打印 `Successfully uninstalled plugin: formatter (scope: project)`。当 plugin 未在该作用域安装时,命令打印以 `Failed to uninstall plugin "formatter@my-marketplace":` 开头的行,退出 `1`。166Claude Code 打印 `Successfully uninstalled plugin: formatter (scope: project)`。当插件未在该作用域安装时,命令打印以 `Failed to uninstall plugin "formatter@my-marketplace":` 开头的行并退出 `1`。

167 167 

168如果失败行继续显示 `"formatter" was not uninstalled:`,Claude Code 无法确认该作用域的设置不再打开 plugin,因此 plugin 保持安装状态,并保留其保存的所有内容。使用 `--json`,结果带有 `failureCode: "settings_still_on"`。此设置检查需要 Claude Code v2.1.282 或更高版本。168如果失败行继续为 `"formatter" was not uninstalled:` 并命名设置文件,Claude Code 无法确认作用域的设置不再打开插件,因此插件保持安装状态,保留其保存的所有内容。使用 `--json` 时,结果携带 `failureCode: "settings_still_on"`。此设置检查需要 Claude Code v2.1.282 或更高版本。

169 169 

170<h4 id="what-an-uninstall-deletes-and-keeps">170<h4 id="what-an-uninstall-deletes-and-keeps">

171 卸载删除和保留的内容171 卸载删除和保留的内容

172</h4>172</h4>

173 173 

174当您从最后一个安装 plugin 的作用域卸载它时,Claude Code 也删除 plugin 的存储 [options 和 secrets](/docs/zh-CN/plugins/manifest-reference#user-configuration) 及其数据目录 `~/.claude/plugins/data/<id>/`。有三个例外:174当你从最后一个安装它的作用域卸载插件时,Claude Code 也删除插件存储的 [选项和密钥](/docs/zh-CN/plugins/manifest-reference#user-configuration) 及其数据目录 `~/.claude/plugins/data/<id>/`。有三个例外:

175 175 

176* 使用 `--keep-data`,数据目录保留176* 使用 `--keep-data` 时,数据目录保留

177* 当另一个已安装的 plugin 使用相同的文件夹时,例如其 ID 仅在字母大小写上与此不同的 plugin,数据目录保留177* 当另一个已安装的插件使用相同的文件夹时,例如其 ID 仅在字母大小写上与此不同的插件,数据目录保留

178* 当 Claude Code 无法在从该作用域删除 plugin 后读回已安装 plugins 的列表时,options、secrets 和数据目录都保留,因为 plugin 可能仍在另一个作用域安装。卸载仍然成功。消息列出保留的内容及如何删除它,使用 `--json` 结果带有 `savedKept: "install_records_unreadable"`178* 当 Claude Code 无法在从该作用域移除插件后读回已安装插件的列表时,选项、密钥和数据目录都保留,因为插件可能仍在另一个作用域安装。卸载仍然成功。消息列出保留的内容及如何删除它,使用 `--json` 时结果携带 `savedKept: "install_records_unreadable"`

179 179 

180使用 `--json`,`keptData` 报告目录是否保留,`/plugin` 在保留时显示 `· data preserved`。对于在没有 `--keep-data` 的情况下保留的目录,此报告需要 Claude Code v2.1.281 或更高版本。`savedKept` 字段需要 Claude Code v2.1.282 或更高版本。180使用 `--json` 时,`keptData` 报告目录是否保留,`/plugin` 在保留时显示 `· data preserved`。对于在没有 `--keep-data` 的情况下保留的目录,此报告需要 Claude Code v2.1.281 或更高版本。`savedKept` 字段需要 Claude Code v2.1.282 或更高版本。

181 181 

182<h3 id="plugin-enable">182<h3 id="plugin-enable">

183 plugin enable183 plugin enable

184</h3>184</h3>

185 185 

186启用禁用的 plugin。对于 [从 claude.ai 同步的 plugin](/docs/zh-CN/plugins/loading#synced-plugins),将 `<name>@synced` 作为 plugin 传递。186启用禁用的插件。对于 [从 claude.ai 同步的插件](/docs/zh-CN/plugins/loading#synced-plugins),传递 `<name>@synced` 作为插件。

187 187 

188```bash theme={null}188```bash theme={null}

189claude plugin enable <plugin> [options]189claude plugin enable <plugin> [options]


192| 标志 | 描述 |192| 标志 | 描述 |

193| :- | :- |193| :- | :- |

194| `-s, --scope <scope>` | 启用的作用域:`user`、`project` 或 `local`。省略时自动检测 |194| `-s, --scope <scope>` | 启用的作用域:`user`、`project` 或 `local`。省略时自动检测 |

195| `--json` | 将结果作为一个 JSON 对象打印在 stdout 的最后一行,格式与 [`plugin install --json`](#plugin-json-result) 相同。需要 Claude Code v2.1.268 或更高版本 |195| `--json` | 将结果打印为 stdout 最后一行的一个 JSON 对象,格式与 [`plugin install --json`](#plugin-json-result) 相同。需要 Claude Code v2.1.268 或更高版本 |

196 196 

197不使用 `--scope`,命令按本地、项目、用户的顺序检查您的设置文件,并使用提及 plugin 的第一个作用域。197不使用 `--scope` 时,命令按本地、项目、用户的顺序检查你的设置文件,并使用第一个提及插件的作用域。

198 198 

199如果您传递 plugin 未声明的 `--scope`,命令要么写入覆盖,要么失败:199如果你传递插件未声明的 `--scope`,命令要么写入覆盖,要么失败:

200 200 

201* **[优先于](/docs/zh-CN/plugins/loading) 声明作用域的作用域**:Claude Code 在您传递的作用域处写入覆盖。例如,`claude plugin disable formatter --scope local` 仅为您关闭项目启用的 plugin201* **一个 [优先于](/docs/zh-CN/plugins/loading) 声明作用域的作用域**:Claude Code 在你传递的作用域处写入覆盖。例如,`claude plugin disable formatter --scope local` 仅为你关闭项目启用的插件

202* **任何其他作用域**:命令失败,显示 `Plugin "formatter" is installed at project scope, not user. Use --scope project or omit --scope to auto-detect.`202* **任何其他作用域**:命令失败,显示 `Plugin "formatter" is installed at project scope, not user. Use --scope project or omit --scope to auto-detect.`

203 203 

204如果 plugin 已在解析的作用域启用,命令打印 `Plugin "formatter" is already enabled` 并退出 `1`。使用 `--json`,结果具有 `"failureCode": "already_in_goal_state"` 和 `"alreadyInGoalState": true`,因此脚本可以将该情况视为成功。204如果插件已在解析的作用域启用,命令打印 `Plugin "formatter" is already enabled` 并退出 `1`。使用 `--json` 时,结果有 `"failureCode": "already_in_goal_state"` 和 `"alreadyInGoalState": true`,所以脚本可以将该情况视为成功。

205 205 

206当 plugin 声明 [dependencies](/docs/zh-CN/plugins/dependencies) 时,Claude Code 也启用它们。命令在这些情况下失败:206当插件声明 [依赖项](/docs/zh-CN/plugins/dependencies) 时,Claude Code 也启用它们。命令在这些情况下失败:

207 207 

208* **dependency 未安装**:启用失败并为每个缺失的 dependency 打印 `claude plugin install` 命令208* **依赖项未安装**:启用失败并为每个缺失的依赖项打印 `claude plugin install` 命令

209* **dependency 被您组织的 plugin 策略阻止**:启用失败并命名被阻止的 dependency209* **依赖项被你的组织的插件策略阻止**:启用失败并命名被阻止的依赖项

210* **dependency 在优先级高于目标作用域的作用域处设置为 `false`**:启用失败。在该作用域启用 dependency,或传递 `--scope` 以在那里写入210* **依赖项在优先级高于目标作用域的作用域处设置为 `false`**:启用失败。在该作用域启用依赖项,或传递 `--scope` 以在那里写入

211 211 

212在声明它的任何地方重新启用 plugin:212在声明它的任何地方重新启用插件:

213 213 

214```bash theme={null}214```bash theme={null}

215claude plugin enable formatter215claude plugin enable formatter


221 plugin disable221 plugin disable

222</h3>222</h3>

223 223 

224禁用 plugin 而不卸载它。对于 [从 claude.ai 同步的 plugin](/docs/zh-CN/plugins/loading#synced-plugins),将 `<name>@synced` 作为 plugin 传递。224禁用插件而不卸载它。对于 [从 claude.ai 同步的插件](/docs/zh-CN/plugins/loading#synced-plugins),传递 `<name>@synced` 作为插件。

225 225 

226```bash theme={null}226```bash theme={null}

227claude plugin disable [plugin] [options]227claude plugin disable [plugin] [options]


229 229 

230| 标志 | 描述 |230| 标志 | 描述 |

231| :- | :- |231| :- | :- |

232| `-a, --all` | 禁用每个启用的 plugin。不能与 plugin 名称或 `--scope` 组合 |232| `-a, --all` | 禁用每个启用的插件。不能与插件名称或 `--scope` 组合 |

233| `-s, --scope <scope>` | 禁用的作用域:`user`、`project` 或 `local`。省略时自动检测 |233| `-s, --scope <scope>` | 禁用的作用域:`user`、`project` 或 `local`。省略时自动检测 |

234| `--json` | 将结果作为一个 JSON 对象打印在 stdout 的最后一行,格式与 [`plugin install --json`](#plugin-json-result) 相同。需要 Claude Code v2.1.268 或更高版本 |234| `--json` | 将结果打印为 stdout 最后一行的一个 JSON 对象,格式与 [`plugin install --json`](#plugin-json-result) 相同。需要 Claude Code v2.1.268 或更高版本 |

235 235 

236不使用 `--scope`,作用域以与 [`plugin enable`](#plugin-enable) 相同的本地、项目、用户顺序自动检测。236不使用 `--scope` 时,作用域按与 [`plugin enable`](#plugin-enable) 相同的本地、项目、用户顺序自动检测。

237 237 

238如果您既不传递 plugin 名称也不传递 `--all`,Claude Code 打印 `Please specify a plugin name or use --all to disable all plugins` 并退出 `1`。禁用已禁用的 plugin 打印 `Plugin "formatter" is already disabled` 并退出 `1`,如 [`plugin enable`](#plugin-enable) 对已启用的 plugin 所做的那样。238如果你既不传递插件名称也不传递 `--all`,Claude Code 打印 `Please specify a plugin name or use --all to disable all plugins` 并退出 `1`。禁用已禁用的插件打印 `Plugin "formatter" is already disabled` 并退出 `1`,如 [`plugin enable`](#plugin-enable) 对已启用的插件所做的那样。

239 239 

240命令对仍然需要的 plugin 失败:240命令对仍然需要的插件失败:

241 241 

242* **另一个启用的 plugin [depends on](/docs/zh-CN/plugins/dependencies) 它**:命令失败并命名要首先禁用的依赖项242* **另一个启用的插件 [依赖于](/docs/zh-CN/plugins/dependencies) 它**:命令失败并命名要首先禁用的依赖项

243* **您的组织要求它作为同步 plugin**:命令失败并保存任何内容243* **你的组织要求它作为同步插件**:命令失败并不保存任何内容

244 244 

245禁用一个 plugin:245禁用一个插件:

246 246 

247```bash theme={null}247```bash theme={null}

248claude plugin disable formatter248claude plugin disable formatter


254 plugin update254 plugin update

255</h3>255</h3>

256 256 

257将 plugin 更新到其市场提供的最新版本。新版本在您的下一个会话中加载,或在您在运行的会话中运行 `/reload-plugins` 后加载。257将插件更新到其市场提供的最新版本。新版本在你的下一个会话中加载,或在运行中的会话中运行 `/reload-plugins` 后加载。

258 258 

259```bash theme={null}259```bash theme={null}

260claude plugin update <plugin> [options]260claude plugin update <plugin> [options]


263| 标志 | 描述 |263| 标志 | 描述 |

264| :- | :- |264| :- | :- |

265| `-s, --scope <scope>` | 更新的作用域:`user`、`project`、`local` 或 `managed`。省略时自动检测 |265| `-s, --scope <scope>` | 更新的作用域:`user`、`project`、`local` 或 `managed`。省略时自动检测 |

266| `-y, --yes` | 接受来自 [command-source](/docs/zh-CN/plugins/host-marketplace) plugin 的更改的安装命令,无需提示。当 stdin 或 stdout 不是 TTY 时需要,除非您传递 `--accept-command`。需要 Claude Code v2.1.229 或更高版本 |266| `-y, --yes` | 接受来自 [命令源](/docs/zh-CN/plugins/host-marketplace) 插件的更改的安装命令,无需提示。当 stdin 或 stdout 不是 TTY 时需要,除非你传递 `--accept-command`。需要 Claude Code v2.1.229 或更高版本 |

267| `--accept-command <sha256>` | 接受市场声明的命令,其 `sha256` 之前的 [`--json` 运行](#plugin-json-result) 在 `shownCommand` 中报告,代替 `-y`。不能与 `-y` 组合。需要 Claude Code v2.1.271 或更高版本 |267| `--accept-command <sha256>` | 接受市场声明的命令,其 `sha256` 之前的 [`--json` 运行](#plugin-json-result) 在 `shownCommand` 中报告,代替 `-y`。不能与 `-y` 组合。需要 Claude Code v2.1.271 或更高版本 |

268| `--json` | 将结果作为一个 JSON 对象打印在 stdout 的最后一行,格式与 [`plugin install --json`](#plugin-json-result) 相同。需要 Claude Code v2.1.268 或更高版本 |268| `--json` | 将结果打印为 stdout 最后一行的一个 JSON 对象,格式与 [`plugin install --json`](#plugin-json-result) 相同。需要 Claude Code v2.1.268 或更高版本 |

269 269 

270如果您省略 `--scope`,命令在您当前项目安装的最具体作用域处更新 plugin,检查本地、项目、用户,然后托管。270如果你省略 `--scope`,命令在为你的当前项目安装它的最具体作用域处更新插件,检查本地、项目、用户,然后托管。

271 271 

272在 v2.1.281 之前,当您省略 `--scope` 时命令使用 `user`,因此更新仅在项目或本地作用域安装的 plugin 失败,显示 `Plugin "<name>" is not installed at scope user`。在这些版本上,传递 `--scope`。272在 v2.1.281 之前,当你省略 `--scope` 时命令使用 `user`,所以更新仅在项目或本地作用域安装的插件失败,显示 `Plugin "<name>" is not installed at scope user`。在这些版本上,传递 `--scope`。

273 273 

274`managed` 是您可以更新但不能安装的唯一作用域。对于管理员安装的 plugins,请参阅 [为您的组织管理 plugins](/docs/zh-CN/plugins/org)。274`managed` 是你可以更新但不能安装的唯一作用域。对于管理员安装的插件,请参阅 [为你的组织管理插件](/docs/zh-CN/plugins/org)。

275 275 

276更新 plugin:276更新插件:

277 277 

278```bash theme={null}278```bash theme={null}

279claude plugin update formatter@my-marketplace279claude plugin update formatter@my-marketplace


281 281 

282Claude Code 打印 `Checking for updates for plugin "formatter@my-marketplace"…`,然后是结果。当没有更新时,它打印 `formatter is already at the latest version (1.0.0).` 并退出 `0`。282Claude Code 打印 `Checking for updates for plugin "formatter@my-marketplace"…`,然后是结果。当没有更新时,它打印 `formatter is already at the latest version (1.0.0).` 并退出 `0`。

283 283 

284您可以传递裸 plugin 名称,命令将其与您安装的 plugins 匹配。当来自不同市场的已安装 plugins 共享名称时,命令拒绝更新并列出要运行的限定 `plugin-name@marketplace-name` 命令。按裸名称更新需要 Claude Code v2.1.246 或更高版本。284你可以传递一个裸插件名称,命令将其与你安装的插件匹配。当来自不同市场的已安装插件共享名称时,命令拒绝更新并列出要运行的限定 `plugin-name@marketplace-name` 命令。按裸名称更新需要 Claude Code v2.1.246 或更高版本。

285 285 

286<h3 id="plugin-list">286<h3 id="plugin-list">

287 plugin list287 plugin list

288</h3>288</h3>

289 289 

290列出已安装的 plugins,包括其版本、作用域和状态。290列出已安装的插件及其版本、作用域和状态。

291 291 

292```bash theme={null}292```bash theme={null}

293claude plugin list [options]293claude plugin list [options]


296| 标志 | 描述 |296| 标志 | 描述 |

297| :- | :- |297| :- | :- |

298| `--json` | 将列表打印为 JSON |298| `--json` | 将列表打印为 JSON |

299| `--available` | 也列出您的市场提供但您未安装的 plugins。没有 `--json` 时无效 |299| `--available` | 也列出你的市场提供但你未安装的插件。没有 `--json` 时无效 |

300 300 

301Claude Code 按每个 plugin 的加载方式对人类可读的输出进行分组:301Claude Code 按每个插件的加载方式对人类可读的输出进行分组:

302 302 

303* **`Installed plugins:`**:您从市场安装的 plugins303* **`Installed plugins:`**:你从市场安装的插件

304* **`Session-only plugins (--plugin-dir / --plugin-url):`**:由同一命令中的这些标志加载的 plugins,如 `claude --plugin-dir ./my-plugin plugin list`304* **`Session-only plugins (--plugin-dir / --plugin-url):`**:由同一命令中的这些标志加载的插件,如 `claude --plugin-dir ./my-plugin plugin list`

305* **`Skills-directory plugins (.claude/skills/*):`**:Claude Code 在 skills 目录中找到的 plugins305* **`Skills-directory plugins (.claude/skills/*):`**:Claude Code 在 skills 目录中找到的插件

306* **`Synced from claude.ai`**:[从您的 claude.ai 账户同步的 plugins](/docs/zh-CN/plugins/loading#synced-plugins)306* **`Synced from claude.ai`**:[从你的 claude.ai 账户同步的插件](/docs/zh-CN/plugins/loading#synced-plugins)

307 307 

308当任何组中都没有内容时,Claude Code 打印 ``No plugins installed. Use `claude plugin install` to install a plugin.``308当任何组中都没有内容时,Claude Code 打印 ``No plugins installed. Use `claude plugin install` to install a plugin.``

309 309 


311 JSON 输出311 JSON 输出

312</h4>312</h4>

313 313 

314使用 `--json`,Claude Code 打印一个数组,每个安装一个对象。每个对象都带有下面的字段。`id`、`version`、`scope`、`enabled` 和 `installPath` 始终存在,其他字段仅在适用时出现。314使用 `--json` 时,Claude Code 打印一个数组,每个安装一个对象。每个对象携带下面的字段。`id`、`version`、`scope`、`enabled` 和 `installPath` 始终存在,其他仅在适用时出现。

315 315 

316| 字段 | 类型 | 描述 |316| 字段 | 类型 | 描述 |

317| :- | :- | :- |317| :- | :- | :- |

318| `id` | string | 安装为 `name@marketplace`,会话内 plugins 为 `name@inline`,skills-directory plugins 为 `name@skills-dir`,从 claude.ai 同步的 plugins 为 `name@synced` |318| `id` | string | 安装时为 `name@marketplace`,会话内插件为 `name@inline`,skills-directory 插件为 `name@skills-dir`,从 claude.ai 同步的插件为 `name@synced` |

319| `version` | string | 对于市场安装,[Claude Code 在安装时计算的](/docs/zh-CN/plugins/loading#versions-and-updates) 版本。对于会话内、skills-directory 或同步 plugin,清单的 `version`,或当它不声明任何内容时为 `unknown` |319| `version` | string | 对于市场安装,[Claude Code 在安装时计算的](/docs/zh-CN/plugins/loading#versions-and-updates) 版本。对于会话内、skills-directory 或同步插件,清单的 `version`,或当它不声明时为 `unknown` |

320| `scope` | string | 安装为 `user`、`project`、`local` 或 `managed`;skills-directory plugins 为 `user` 或 `project`;会话内 plugins 为 `session`;从 claude.ai 同步的 plugins 为 `synced` |320| `scope` | string | 安装时为 `user`、`project`、`local` 或 `managed`;skills-directory 插件为 `user` 或 `project`;会话内插件为 `session`;从 claude.ai 同步的插件为 `synced` |

321| `enabled` | boolean | plugin 在您的合并设置中是否启用 |321| `enabled` | boolean | 插件在你的合并设置中是否启用 |

322| `installPath` | string | plugin 加载的目录 |322| `installPath` | string | 插件加载的目录 |

323| `installedAt` | string | 安装的 ISO 时间戳。仅市场安装 |323| `installedAt` | string | 安装的 ISO 时间戳。仅市场安装 |

324| `lastUpdated` | string | 最后更新的 ISO 时间戳。仅市场安装 |324| `lastUpdated` | string | 最后更新的 ISO 时间戳。仅市场安装 |

325| `projectPath` | string | 安装所属的项目。仅 `project` 和 `local` 作用域 |325| `projectPath` | string | 安装所属的项目。仅 `project` 和 `local` 作用域 |

326| `mcpServers` | object | plugin 的 MCP 服务器定义,当市场安装的 plugin 有任何时 |326| `mcpServers` | object | 插件的 MCP 服务器定义,当市场安装的插件有任何时 |

327| `errors` | array of strings | 加载错误,当 plugin 加载失败时 |327| `errors` | array of strings | 加载错误,当插件加载失败时 |

328| `notes` | array of strings | plugin 加载并工作时的创作警告 |328| `notes` | array of strings | 插件加载并工作的创作警告 |

329| `errorDetails` | array of objects | 每个 `errors` 条目一个对象,给出其诊断 `type` 和它引用的名称,例如 plugin、市场、服务器或文件。需要 Claude Code v2.1.268 或更高版本 |329| `errorDetails` | array of objects | 每个 `errors` 条目一个对象,给出其诊断 `type` 和它引用的名称,例如插件、市场、服务器或文件。需要 Claude Code v2.1.268 或更高版本 |

330| `noteDetails` | array of objects | 每个 `notes` 条目的相同详细对象。需要 Claude Code v2.1.268 或更高版本 |330| `noteDetails` | array of objects | 每个 `notes` 条目的相同详细对象。需要 Claude Code v2.1.268 或更高版本 |

331 331 

332使用 `--json --available`,Claude Code 打印一个对象而不是数组。其 `installed` 字段保存已安装 plugin 对象的数组,其 `available` 字段保存每个未安装市场 plugin 的一个对象,带有下面的字段。332使用 `--json --available` 时,Claude Code 打印一个对象而不是数组。其 `installed` 字段保存已安装插件对象的数组,其 `available` 字段保存每个未安装的市场插件的一个对象,带有下面的字段。

333 333 

334| 字段 | 类型 | 描述 |334| 字段 | 类型 | 描述 |

335| :- | :- | :- |335| :- | :- | :- |

336| `pluginId` | string | `name@marketplace` |336| `pluginId` | string | `name@marketplace` |

337| `name` | string | plugin 在市场中的名称 |337| `name` | string | 插件在市场中的名称 |

338| `marketplaceName` | string | 提供它的市场 |338| `marketplaceName` | string | 提供它的市场 |

339| `source` | string or object | 市场条目的 [source](/docs/zh-CN/plugins/marketplace-reference):相对路径为字符串,否则为对象 |339| `source` | string or object | 市场条目的 [source](/docs/zh-CN/plugins/marketplace-reference):相对路径为字符串,否则为对象 |

340| `description` | string | 条目的描述,当它有时 |340| `description` | string | 条目的描述,当它有时 |

341| `version` | string | 条目的版本,当它声明时 |341| `version` | string | 条目的版本,当它声明时 |

342| `installCount` | number | 安装计数,当 Claude Code 有 plugin 的计数时 |342| `installCount` | number | 安装计数,当 Claude Code 有插件的时 |

343 343 

344<h3 id="plugin-details">344<h3 id="plugin-details">

345 plugin details345 plugin details

346</h3>346</h3>

347 347 

348显示 plugin 的组件清单及其预计令牌成本。348显示插件的组件清单及其预计令牌成本。

349 349 

350plugin 必须被加载:已安装、在 skills 目录中找到,或在同一命令中使用 `--plugin-dir` 或 `--plugin-url` 传递。`<name>` 是 plugin `name` 或 `name@marketplace`。350插件必须被加载:已安装、在 skills 目录中找到,或在同一命令中使用 `--plugin-dir` 或 `--plugin-url` 传递。`<name>` 是插件 `name` 或 `name@marketplace`。

351 351 

352```bash theme={null}352```bash theme={null}

353claude plugin details <name>353claude plugin details <name>

354```354```

355 355 

356命令除了 `--help` 外不接受任何标志。356该命令除了 `--help` 外不接受标志。

357 357 

358显示已安装 plugin 的贡献:358显示已安装插件贡献的内容:

359 359 

360```bash theme={null}360```bash theme={null}

361claude plugin details formatter361claude plugin details formatter

362```362```

363 363 

364Claude Code 打印 plugin 的名称、版本、描述和源,然后是这些部分:364Claude Code 打印插件的名称、版本、描述和源,然后是这些部分:

365 365 

366* **`Component inventory`**:plugin 的 skills、agents、hooks、MCP 服务器和 LSP 服务器366* **`Component inventory`**:插件的 skills、agents、hooks、MCP 服务器和 LSP 服务器

367* **`Projected token cost`**:plugin 添加到每个会话的始终开启令牌367* **`Projected token cost`**:插件添加到每个会话的始终开启令牌

368* **`Per-component (rounded)`**:每个 skill、agent 和命令的始终开启和按调用估计。当 plugin 没有时省略368* **`Per-component (rounded)`**:每个 skill、agent 和命令的始终开启和按调用估计。当插件没有时省略

369 369 

370对于两个成本数字的含义,请参阅 [测量 plugin 成本和使用](/docs/zh-CN/plugins/measure)。370对于两个成本数字的含义,请参阅 [测量插件成本和使用](/docs/zh-CN/plugins/measure)。

371 371 

372对于未加载的 plugin,Claude Code 打印 ``Plugin "formatter" not found. Run `claude plugin list` to see installed plugins, or pass --plugin-dir <path> to load one from disk.`` 并退出 `1`。372对于未加载的插件,Claude Code 打印 ``Plugin "formatter" not found. Run `claude plugin list` to see installed plugins, or pass --plugin-dir <path> to load one from disk.`` 并退出 `1`。

373 373 

374<h3 id="plugin-prune">374<h3 id="plugin-prune">

375 plugin prune375 plugin prune

376</h3>376</h3>

377 377 

378删除自动安装的 [dependencies](/docs/zh-CN/plugins/dependencies),没有已安装的 plugin 需要。命令永远不会删除您自己安装的 plugin。`autoremove` 是 `prune` 的别名。378移除自动安装的 [依赖项](/docs/zh-CN/plugins/dependencies),没有已安装的插件需要。命令永远不会移除你自己安装的插件。`autoremove` 是 `prune` 的别名。

379 379 

380```bash theme={null}380```bash theme={null}

381claude plugin prune [options]381claude plugin prune [options]


384| 标志 | 描述 |384| 标志 | 描述 |

385| :- | :- |385| :- | :- |

386| `-s, --scope <scope>` | 在作用域处修剪:`user`、`project` 或 `local`。默认为 `user` |386| `-s, --scope <scope>` | 在作用域处修剪:`user`、`project` 或 `local`。默认为 `user` |

387| `--dry-run` | 列出将被删除的内容而不删除它 |387| `--dry-run` | 列出将被移除的内容而不移除它 |

388| `-y, --yes` | 跳过确认提示。当 stdin 或 stdout 不是 TTY 时需要 |388| `-y, --yes` | 跳过确认提示。当 stdin 或 stdout 不是 TTY 时需要 |

389 389 

390预览修剪将删除的内容:390预览修剪将移除的内容:

391 391 

392```bash theme={null}392```bash theme={null}

393claude plugin prune --dry-run393claude plugin prune --dry-run

394```394```

395 395 

396Claude Code 列出孤立的 dependencies 并以 `(dry run — nothing removed)` 结尾。当没有要删除的内容时,它打印以 `Nothing to prune` 开头的行。396Claude Code 列出孤立的依赖项并以 `(dry run — nothing removed)` 结尾。没有要移除的内容时,它打印以 `Nothing to prune` 开头的行。

397 397 

398不使用 `--dry-run`,命令仅在您在提示处确认或传递 `-y` 后删除孤立的 dependencies。398不使用 `--dry-run` 时,命令仅在你在提示处确认或传递 `-y` 后移除孤立的依赖项。

399 399 

400无论您在提示处的答案如何,退出代码都是 `0`。400无论你在提示处的答案如何,退出代码都是 `0`。

401 401 

402`prune` 的作用取决于是否附加了终端以及您是否传递了 `-y`:402`prune` 的作用取决于是否附加了终端以及你是否传递了 `-y`:

403 403 

404| 终端和标志 | 发生的情况 |404| 终端和标志 | 发生的情况 |

405| :- | :- |405| :- | :- |

406| 交互式终端,无 `-y` | 列出孤立的 dependencies 并询问 `Remove? [y/N]` |406| 交互式终端,无 `-y` | 列出孤立的依赖项并询问 `Remove? [y/N]` |

407| 任何终端,`-y` | 删除它们并打印 `Removed N auto-installed plugins: <names>` |407| 任何终端,`-y` | 移除它们并打印 `Removed N auto-installed plugins: <names>` |

408| 非 TTY stdin 或 stdout,无 `-y` | 打印列表和 ``Not a TTY — run `claude plugin prune -y` to remove.``,不删除任何内容 |408| 非 TTY stdin 或 stdout,无 `-y` | 打印列表并显示 ``Not a TTY — run `claude plugin prune -y` to remove.``,不移除任何内容 |

409 409 

410<h3 id="plugin-eval">410<h3 id="plugin-eval">

411 plugin eval411 plugin eval

412</h3>412</h3>

413 413 

414运行 plugin 的 [eval cases](/docs/zh-CN/plugin-evals) 并报告评分结果。需要 Claude Code v2.1.269 或更高版本。414运行插件的 [eval 案例](/docs/zh-CN/plugin-evals) 并报告评分结果。需要 Claude Code v2.1.269 或更高版本。

415 415 

416每个案例是一个提示加评分器。Claude Code 在仅加载目标 plugin 的隔离会话中多次运行它,默认情况下也不使用 plugin 运行,以便报告显示差异。416每个案例是一个提示加评分器。Claude Code 在隔离的会话中运行它多次,仅加载目标插件,默认情况下也不加载插件,所以报告显示差异。

417 417 

418有关案例格式、评分器、结果和 CI 使用,请参阅 [使用 evals 测试 plugins](/docs/zh-CN/plugin-evals)。418请参阅 [使用 evals 测试插件](/docs/zh-CN/plugin-evals) 了解案例格式、评分器、结果和 CI 使用。

419 419 

420```bash theme={null}420```bash theme={null}

421claude plugin eval [target] [options]421claude plugin eval [target] [options]

422```422```

423 423 

424可选的 `target` 默认为当前目录,采用以下任何形式:424可选的 `target` 默认为当前目录,并采用以下任何形式:

425 425 

426* plugin 目录426* 插件目录

427* 单个 `prompt.md` 或 `case.yaml` 文件427* 单个 `prompt.md` 或 `case.yaml` 文件

428* 已安装的 plugin,如 `name` 或 `name@marketplace`428* 已安装的插件作为 `name` 或 `name@marketplace`

429* `name@skills-dir`429* `name@skills-dir`

430 430 

431将目标放在 `--tag`、`--allow-tools` 和 `--json` 之前。这些选项中的每一个都将其后的单词作为其值,因此在其中一个之后写入的目标被读作标签、工具名称或 JSON 输出路径,而不是目标。431将目标放在 `--tag`、`--allow-tools` 和 `--json` 之前。这些选项中的每一个都将其后的单词作为其值,所以在其中一个之后写入的目标被读作标签、工具名称或 JSON 输出路径,而不是目标。

432 432 

433此表列出大多数运行使用的选项。运行 `claude plugin eval --help` 以获取完整集合,包括 `--case`、`--tag`、`--output-dir`、`--report`、`--allow-real-servers`、`--keep-temp` 和 `--verbose`。433此表列出大多数运行使用的选项。运行 `claude plugin eval --help` 以获取完整集合,包括 `--case`、`--tag`、`--output-dir`、`--report`、`--allow-real-servers`、`--keep-temp` 和 `--verbose`。

434 434 

435| 选项 | 描述 | 默认 |435| 选项 | 描述 | 默认 |

436| :- | :- | :- |436| :- | :- | :- |

437| `--runs <n>` | 每个 [arm](/docs/zh-CN/plugin-evals#compare-against-a-no-plugin-baseline) 中每个案例的运行 | 每个案例的 `runs`,否则 3 |437| `--runs <n>` | 每个 [arm](/docs/zh-CN/plugin-evals#compare-against-a-no-plugin-baseline) 中每个案例的运行 | 每个案例的 `runs`,否则 3 |

438| `-j, --concurrency <n>` | 一次运行的代理会话,1 到 8。它们共享您的速率限制 | `1` |438| `-j, --concurrency <n>` | 一次运行的代理会话,1 到 8。它们共享你的速率限制 | `1` |

439| `--model <model>` | 被测试代理的模型 | 每个案例的 `model`,否则 `ANTHROPIC_MODEL`(如果设置),否则 Claude Code 的默认值 |439| `--model <model>` | 被测试代理的模型 | 每个案例的 `model`,否则 `ANTHROPIC_MODEL` 如果设置,否则 Claude Code 的默认值 |

440| `--judge-model <model>` | `llm` 和 `baseline` 评分器的模型 | 一个小的快速模型 |440| `--judge-model <model>` | `llm` 和 `baseline` 评分器的模型 | 一个小的快速模型 |

441| `--ablation <mode>` | `none` 或 `with-without`。请参阅 [与无 plugin 基线比较](/docs/zh-CN/plugin-evals#compare-against-a-no-plugin-baseline) | 当 plugin 解析时为 `with-without`,否则为 `none` |441| `--ablation <mode>` | `none` 或 `with-without`。请参阅 [与无插件基线比较](/docs/zh-CN/plugin-evals#compare-against-a-no-plugin-baseline) | 当插件解析时为 `with-without`,否则 `none` |

442| `--threshold <0..1>` | 如果任何案例评分低于此,退出 1 | `1.0` |442| `--threshold <0..1>` | 如果任何案例评分低于此,退出 1 | `1.0` |

443| `--max-cost-usd <usd>` | 一旦支出达到此值,在下一次运行前停止,退出 2,并报告部分结果 | 无限制 |443| `--max-cost-usd <usd>` | 一旦支出达到此值,在下一次运行前停止,退出 2,并报告部分结果 | 无限制 |

444| `--allow-tools <tools...>` | 授予超出只读集合的工具,例如 `Bash`、`Write`、`Edit` 或 `"mcp__plugin_<plugin>_<server>__*"`。请参阅 [授予工具](/docs/zh-CN/plugin-evals#grant-tools) | |444| `--allow-tools <tools...>` | 授予超出只读集合的工具,例如 `Bash`、`Write`、`Edit` 或 `"mcp__plugin_<plugin>_<server>__*"`。请参阅 [授予工具](/docs/zh-CN/plugin-evals#grant-tools) | |

445| `--scaffold` | 运行每个案例的 [`scaffold_script`](/docs/zh-CN/plugin-evals#add-setup-or-history-with-case-yaml) | 关闭 |445| `--scaffold` | 运行每个案例的 [`scaffold_script`](/docs/zh-CN/plugin-evals#add-setup-or-history-with-case-yaml) | 关闭 |

446| `--trust-plugin` | 跳过首次运行信任提示,用于 CI。请参阅 [运行可以访问的内容](/docs/zh-CN/plugin-evals#security) | 关闭 |446| `--trust-plugin` | 跳过首次运行信任提示,用于 CI。请参阅 [运行可以访问的内容](/docs/zh-CN/plugin-evals#security) | 关闭 |

447| `--mocks <mode>` | `record` 或 `off`。请参阅 [Mock MCP 服务器](/docs/zh-CN/plugin-evals#mock-mcp-servers) | `record` |447| `--mocks <mode>` | `record` 或 `off`。请参阅 [模拟 MCP 服务器](/docs/zh-CN/plugin-evals#mock-mcp-servers) | `record` |

448| `--eval-dir <dir>` | plugin 下方保存案例的目录 | 清单的 `experimental.evals`,否则 `evals` |448| `--eval-dir <dir>` | 插件下方保存案例的目录 | 清单的 `experimental.evals`,否则 `evals` |

449| `--json [path]` | 将 [结果文档](/docs/zh-CN/plugin-evals#json-result) 打印到 stdout,或将其写入 `.json` 路径 | |449| `--json [path]` | 将 [结果文档](/docs/zh-CN/plugin-evals#json-result) 打印到 stdout,或写入 `.json` 路径 | |

450| `--no-publish` | 保持 HTML 报告本地 | |450| `--no-publish` | 保持 HTML 报告本地 | |

451 451 

452退出代码报告运行如何结束。要在管道中对其进行操作,请参阅 [在 CI 中运行 evals](/docs/zh-CN/plugin-evals#run-evals-in-ci)。452退出代码报告运行如何结束。要在管道中对其进行操作,请参阅 [在 CI 中运行 evals](/docs/zh-CN/plugin-evals#run-evals-in-ci)。


454| 退出代码 | 含义 |454| 退出代码 | 含义 |

455| :- | :- |455| :- | :- |

456| `0` | 每个案例都满足阈值 |456| `0` | 每个案例都满足阈值 |

457| `1` | 失败的案例、加载错误或不受信任的 plugin 目录 |457| `1` | 失败的案例、加载错误或不受信任的插件目录 |

458| `2` | 部分运行 |458| `2` | 部分运行 |

459| `130` | 中断 |459| `130` | 中断 |

460| `143` | 终止 |460| `143` | 终止 |


463 plugin eval init463 plugin eval init

464</h3>464</h3>

465 465 

466为当前目录中的 plugin 创建 eval 套件。需要 Claude Code v2.1.269 或更高版本。请参阅 [创建您的第一个 eval 套件](/docs/zh-CN/plugin-evals#create-your-first-eval-suite)。466为当前目录中的插件创建 eval 套件。需要 Claude Code v2.1.269 或更高版本。请参阅 [创建你的第一个 eval 套件](/docs/zh-CN/plugin-evals#create-your-first-eval-suite)。

467 467 

468```bash theme={null}468```bash theme={null}

469claude plugin eval init [name] [options]469claude plugin eval init [name] [options]

470```470```

471 471 

472在终端中,命令打开交互式 Claude Code 会话以进行创作访谈。在访谈中,Claude 执行以下操作:472从插件的根文件夹运行命令,即保存 `.claude-plugin/plugin.json` 或 skill 的 `SKILL.md` 的目录。要有意在另一个目录中搭建套件,传递 `--eval-dir`。

473 473 

4741. 读取 plugin474在终端中,命令打开交互式 Claude Code 会话进行创作访谈。在访谈中,Claude 执行以下操作:

4752. 询问您它应该做什么475 

4761. 读取插件

4772. 询问你它应该做什么

4763. 提议案例和评分器4783. 提议案例和评分器

4774. 写入案例文件4794. 写入案例文件

4785. 运行案例并与您一起查看评分,以检查评分器是否按您的方式评分4805. 运行案例并与你一起查看评分,以检查评分器是否按你的方式评分

479 481 

480使用 `--bare` 或没有终端,命令改为写入空白单案例模板。当 Claude 从 Claude Code 会话内运行命令时,命令打印该会话要遵循的访谈说明,而不是写入模板。482使用 `--bare` 或没有终端时,命令改为写入空白单案例模板。当 Claude 从 Claude Code 会话内运行命令时,命令打印该会话要遵循的访谈说明,而不是写入模板。

481 483 

482可选的 `name` 是案例名称。它对于 `--bare` 或没有终端是必需的,因为命令为该案例写入空白模板。访谈不需要。484可选的 `name` 是案例名称。它与 `--bare` 或没有终端时需要,因为命令为该案例写入空白模板。案例名称以字母或数字开头,仅包含字母、数字、`.`、`_` 和 `-`。在每个平台上,命令也拒绝 Windows 无法存储的名称,例如 `con` 或以 `.` 结尾的名称。

483 485 

484命令接受这些选项:486命令接受这些选项:

485 487 


487| :- | :- | :- |489| :- | :- | :- |

488| `--bare` | 为 `<name>` 写入空白 `prompt.md` 和 `graders/criteria.md`,而不是运行访谈 | |490| `--bare` | 为 `<name>` 写入空白 `prompt.md` 和 `graders/criteria.md`,而不是运行访谈 | |

489| `-i, --interactive` | 需要访谈。没有终端时失败,而不是写入模板 | |491| `-i, --interactive` | 需要访谈。没有终端时失败,而不是写入模板 | |

490| `--eval-dir <dir>` | 当前目录下方写入案例的目录 | 清单的 `experimental.evals`,否则 `evals` |492| `--eval-dir <dir>` | 当前目录下写入案例的目录 | 清单的 `experimental.evals`,否则 `evals` |

491 493 

492<h3 id="plugin-tag">494<h3 id="plugin-tag">

493 plugin tag495 plugin tag

494</h3>496</h3>

495 497 

496为 plugin 发布创建名为 `<name>--v<version>` 的带注释 git 标签。在标记之前,命令检查 plugin 的 `plugin.json` 和任何列出它的市场条目是否同意版本。498为插件发布创建名为 `<name>--v<version>` 的带注释 git 标签。在标记前,命令检查插件的 `plugin.json` 和任何列出它的市场条目在版本上是否一致。

497 499 

498有关何时标记发布,请参阅 [发布 plugin](/docs/zh-CN/plugins/publish)。500关于何时标记发布,请参阅 [发布插件](/docs/zh-CN/plugins/publish)。

499 501 

500```bash theme={null}502```bash theme={null}

501claude plugin tag [path] [options]503claude plugin tag [path] [options]

502```504```

503 505 

504`[path]` 是 plugin 目录,默认为当前目录。命令通过从该目录向上走到列出 plugin 的 `.claude-plugin/marketplace.json` 来查找市场条目。506`[path]` 是插件目录,默认为当前目录。命令通过从该目录向上走到列出插件的 `.claude-plugin/marketplace.json` 来找到市场条目。

505 507 

506| 标志 | 描述 |508| 标志 | 描述 |

507| :- | :- |509| :- | :- |

508| `--push` | 创建后将标签推送到 `--remote` |510| `--push` | 创建标签后推送到 `--remote` |

509| `--dry-run` | 打印将被标记的内容而不创建标签 |511| `--dry-run` | 打印将被标记的内容而不创建标签 |

510| `-f, --force` | 跳过脏工作树和标签已存在检查 |512| `-f, --force` | 跳过脏工作树和标签已存在检查 |

511| `-m, --message <msg>` | 标签注释消息。`%s` 代表版本。默认为 `<name> <version>` |513| `-m, --message <msg>` | 标签注释消息。`%s` 代表版本。默认为 `<name> <version>` |

512| `--remote <name>` | 使用 `--push` 推送到的远程。默认为 `origin` |514| `--remote <name>` | 使用 `--push` 推送到的远程。默认为 `origin` |

513 515 

514预览市场检出中 plugin 的标签:516预览市场检出中插件的标签:

515 517 

516```bash theme={null}518```bash theme={null}

517claude plugin tag plugins/formatter --dry-run519claude plugin tag plugins/formatter --dry-run


519 521 

520Claude Code 打印计划:522Claude Code 打印计划:

521 523 

522* plugin 名称524* 插件名称

523* 版本和它来自哪个文件525* 版本及其来自的文件

524* 匹配的市场条目,当有时526* 匹配的市场条目,当有时

525* 标签名称527* 标签名称

526* 它将运行的 `git tag` 和 `git push` 命令528* 它将运行的 `git tag` 和 `git push` 命令

527 529 

528不使用 `--dry-run`,Claude Code 打印 `Created tag formatter--v1.0.0` 和 `Pushed to origin` 或您自己运行的推送命令。如果推送失败,标签仍在本地创建,命令以错误退出。530不使用 `--dry-run` 时,Claude Code 打印 `Created tag formatter--v1.0.0` 并打印 `Pushed to origin` 或你自己运行的推送命令。如果推送失败,标签仍在本地创建,命令以错误退出。

529 531 

530当它无法安全标记时,命令退出 `1` 并打印原因。常见原因是:532当命令无法安全标记时,它退出 `1` 并打印原因。常见原因是:

531 533 

532* `plugin.json` 或市场条目中没有 `version`534* `plugin.json` 或市场条目中没有 `version`

533* 标签已存在535* 标签已存在


537 plugin validate539 plugin validate

538</h3>540</h3>

539 541 

540验证 plugin 清单、市场清单或目录中的 skills、agents 和命令,并以 CI 作业可以操作的代码退出。对于创建、测试和编辑工作流,请参阅 [创建 plugin](/docs/zh-CN/plugins/create)。对于验证器在每个清单中检查的内容,请参阅 [plugin 清单参考](/docs/zh-CN/plugins/manifest-reference) 和 [市场参考](/docs/zh-CN/plugins/marketplace-reference)。542验证插件清单、市场清单或目录中的 skills、agents 和命令,并以 CI 作业可以操作的代码退出。对于创建、测试和编辑工作流,请参阅 [创建插件](/docs/zh-CN/plugins/create)。对于验证器在每个清单中检查的内容,请参阅 [插件清单参考](/docs/zh-CN/plugins/manifest-reference) 和 [市场参考](/docs/zh-CN/plugins/marketplace-reference)。

541 543 

542```bash theme={null}544```bash theme={null}

543claude plugin validate <path> [options]545claude plugin validate <path> [options]


545 547 

546| 标志 | 描述 |548| 标志 | 描述 |

547| :- | :- |549| :- | :- |

548| `--strict` | 将警告视为错误,因此运行时容忍的未识别字段和缺失元数据失败。需要 Claude Code v2.1.145 或更高版本 |550| `--strict` | 将警告视为错误,所以运行时容忍的未识别字段和缺失元数据失败。需要 Claude Code v2.1.145 或更高版本 |

549| `--json` | 将验证报告输出为一个 JSON 对象,具有相同的退出代码。需要 Claude Code v2.1.259 或更高版本 |551| `--json` | 将验证报告输出为一个 JSON 对象,具有相同的退出代码。需要 Claude Code v2.1.259 或更高版本 |

550 552 

551在提交前验证 plugin:553在提交前验证插件:

552 554 

553```bash theme={null}555```bash theme={null}

554claude plugin validate ./my-plugin --strict556claude plugin validate ./my-plugin --strict


567 * 名为 `.claude` 的目录:其中的 `skills`、`agents` 和 `commands` 目录569 * 名为 `.claude` 的目录:其中的 `skills`、`agents` 和 `commands` 目录

568 * 任何其他目录:其 `.claude` 下的这三个目录570 * 任何其他目录:其 `.claude` 下的这三个目录

569 571 

570Claude Code 不跟随您命名的目录内的符号链接。它的作用取决于链接的位置:572Claude Code 不跟随你命名的目录内的符号链接。它的作用取决于链接的位置:

571 573 

572* **plugin 或 `.claude` 根下的链接 `skills`、`agents` 或 `commands` 目录**:Claude Code 警告其中的任何内容都未被读取。574* **插件或 `.claude` 根下的链接 `skills`、`agents` 或 `commands` 目录**:Claude Code 警告其中的任何内容都未被读取。

573* **`skills`、`agents` 或 `commands` 目录内的链接条目**:Claude Code 跳过它并警告,每个目录,它跳过了多少条目,会话会加载。575* **`skills`、`agents` 或 `commands` 目录内的链接条目**:Claude Code 跳过它并警告,每个目录,它跳过了多少条目,会话会加载。

574* **您命名的 `skills`、`agents` 或 `commands` 目录本身是符号链接,或其父 `.claude` 目录是**:Claude Code 报告错误并检查其中的任何内容。改为命名真实目录。576* **你命名的 `skills`、`agents` 或 `commands` 目录本身是符号链接,或其父 `.claude` 目录是**:Claude Code 报告错误并检查其中的任何内容。改为命名真实目录。

575 577 

576验证运行不读取几个文件:578少数文件不被验证运行读取:

577 579 

578* **plugin 根处的 `SKILL.md`**:当您针对 plugin 目录运行 `claude plugin validate` 时,Claude Code 不检查 plugin 根处的 `SKILL.md`580* **插件根处的 `SKILL.md`**:当你针对插件目录运行 `claude plugin validate` 时,Claude Code 不检查插件根处的 `SKILL.md`

579* **plugin 根处的 `CLAUDE.md`**:在 plugin 运行中,Claude Code 也警告 plugin 根处的 `CLAUDE.md`581* **插件根处的 `CLAUDE.md`**:在插件运行中,Claude Code 也警告插件根处的 `CLAUDE.md`

580* **市场运行中的 Plugin 文件**:从市场目录,Claude Code 不打开 plugins 的 skill、agent、command 或 hook 文件。要在这些文件中查找错误,验证每个 plugin 目录582* **市场运行中的插件文件**:从市场目录,Claude Code 不打开插件的 skill、agent、command 或 hook 文件,或它们捆绑的 MCP 服务器文件。要在这些文件中找到错误,验证每个插件目录

581 583 

582<h4 id="output-and-exit-codes">584<h4 id="output-and-exit-codes">

583 输出和退出代码585 输出和退出代码


587 589 

588| 退出代码 | 判决行 | 含义 |590| 退出代码 | 判决行 | 含义 |

589| :- | :- | :- |591| :- | :- | :- |

590| `0` | `Validation passed` 或 `Validation passed with warnings` | 清单加载。使用 `--strict`,也没有警告 |592| `0` | `Validation passed` 或 `Validation passed with warnings` | 清单加载。使用 `--strict` 时,也没有警告 |

591| `1` | `Validation failed` 或 `Validation failed (--strict treats warnings as errors)` | 错误,或 `--strict` 下的警告 |593| `1` | `Validation failed` 或 `Validation failed (--strict treats warnings as errors)` | 错误,或 `--strict` 下的警告 |

592| `2` | `Unexpected error during validation: <reason>` | 验证器本身失败,例如在不可读的路径上 |594| `2` | `Unexpected error during validation: <reason>` | 验证器本身失败,例如在不可读的路径上 |

593 595 

594使用 `--json`,Claude Code 将报告作为一个 JSON 对象写入 stdout,具有这些顶级字段:596使用 `--json` 时,Claude Code 将报告作为一个 JSON 对象写入 stdout,具有这些顶级字段:

595 597 

596* `success`:退出代码给出的相同判决598* `success`:退出代码给出的相同判决

597* `strict`:运行是否将警告视为错误599* `strict`:运行是否将警告视为错误

598* `target`:Claude Code 验证的解析路径600* `target`:Claude Code 验证的解析路径

599* `manifest`:清单自己的结果,或没有清单的运行为 `null`601* `manifest`:清单自己的结果,或对没有清单的运行为 `null`

600* `contents`:每个文件的结果,命名其 `file` 并携带 `errors`、`warnings` 和 `notes` 数组602* `contents`:每个文件的结果,命名其 `file` 并携带 `errors`、`warnings` 和 `notes` 数组

601 603 

602在退出 `2` 时,命令不向 stdout 写入任何内容。错误消息转到 stderr。604在退出 `2` 时,命令不向 stdout 写入任何内容。错误消息转到 stderr。


636| :- | :- | :- |638| :- | :- | :- |

637| `owner/repo`、`owner/repo#ref` 或 `owner/repo@ref` | `github` | 克隆 GitHub 仓库,给定时固定到 `ref`。所有者和仓库必须遵循 GitHub 命名规则 |639| `owner/repo`、`owner/repo#ref` 或 `owner/repo@ref` | `github` | 克隆 GitHub 仓库,给定时固定到 `ref`。所有者和仓库必须遵循 GitHub 命名规则 |

638| `user@host:path[.git][#ref]` | `git` | 通过 SSH 克隆 |640| `user@host:path[.git][#ref]` | `git` | 通过 SSH 克隆 |

639| `https://example.com/repo.git[#ref]` 或包含 `/_git/` 的 URL | `git` | 通过 HTTPS 克隆,包括 Azure DevOps URL |641| 以 `.git[#ref]` 结尾或包含 `/_git/` 的 `http://` 或 `https://` URL,例如 `https://example.com/repo.git` | `git` | 克隆 URL,包括 Azure DevOps URL |

640| `https://github.com/owner/repo` 或 `https://gitlab.com/namespace/project` | `git` | 在追加 `.git` 后通过 HTTPS 克隆 |642| `https://github.com/owner/repo` 或 `https://gitlab.com/namespace/project`,或相同的 `http://` 形式 | `git` | 在追加 `.git` 后克隆 URL |

641| 任何其他 `http://` 或 `https://` URL,包括没有 `.git` 的自托管 git 主机 | `url` | 将 URL 作为 `marketplace.json` 获取。要改为克隆那里的仓库,请追加 `.git` |643| 任何其他 `http://` 或 `https://` URL,包括没有 `.git` 的自托管 git 主机 | `url` | 将 URL 作为 `marketplace.json` 获取。要改为克隆那里的仓库,请追加 `.git` |

642| `./path`、`../path`、`/path` 或 `~/path` 到目录 | `directory` | 就地读取目录。在 Windows 上,`.\`、`..\` 和 `C:\` 形式也可以工作 |644| `./path`、`../path`、`/path` 或 `~/path` 到目录 | `directory` | 就地读取目录。在 Windows 上,`.\`、`..\` 和 `C:\` 形式也可以工作 |

643| 相同的路径形式,到 `.json` 文件 | `file` | 就地读取文件 |645| 相同的路径形式,到 `.json` 文件 | `file` | 就地读取文件 |


709从你的设置中移除市场的声明。`rm` 是 `remove` 的别名。711从你的设置中移除市场的声明。`rm` 是 `remove` 的别名。

710 712 

711<Warning>713<Warning>

712 当你从最后一个声明市场的作用域中移除市场时,Claude Code 也会删除其缓存并卸载你从中安装的每个插件。不使用 `--scope` 时,命令从每个作用域中移除声明。要在不丢失其插件的情况下刷新市场,请改为运行 `plugin marketplace update`。714 当你从最后一个声明市场的作用域中移除市场时,Claude Code 也会删除其缓存并卸载你从中安装的每个插件。它也会删除它们保存的[选项和密钥](/docs/zh-CN/plugins/manifest-reference#user-configuration)和[数据](/docs/zh-CN/plugins/components#path-variables-and-persistent-data)(如果可以的话)。

715 

716 要在不丢失其插件的情况下刷新市场,请改为运行 `plugin marketplace update`。

713</Warning>717</Warning>

714 718 

715```bash theme={null}719```bash theme={null}


728claude plugin marketplace remove your-marketplace732claude plugin marketplace remove your-marketplace

729```733```

730 734 

731Claude Code 打印 `Successfully removed marketplace: your-marketplace`,当你限定作用域时添加 `(from project settings)`。如果你限定作用域到不声明市场的设置文件,命令失败,显示 `Marketplace 'your-marketplace' is not declared in project settings. Omit --scope to remove it from all scopes.`735Claude Code 打印 `Successfully removed marketplace: your-marketplace`。当命令卸载插件时,输出在诸如 `Also uninstalled 2 plugins from this marketplace:` 的行下列出它们。要再次使用其中一个,请添加市场并重新安装插件。

736 

737如果你限定作用域到不声明市场的设置文件,命令失败,显示 `Marketplace 'your-marketplace' is not declared in project settings. Omit --scope to remove it from all scopes.`

732 738 

733<h3 id="plugin-marketplace-update">739<h3 id="plugin-marketplace-update">

734 plugin marketplace update740 plugin marketplace update


771| `/plugin list [--enabled\|--disabled]` | `ls` | 内联打印您的市场安装 plugins,带有版本、作用域和状态。过滤标志仅显示该状态。启用状态尚未应用的 plugin 标记为 `— run /reload-plugins to apply`。需要 Claude Code v2.1.163 或更高版本 |777| `/plugin list [--enabled\|--disabled]` | `ls` | 内联打印您的市场安装 plugins,带有版本、作用域和状态。过滤标志仅显示该状态。启用状态尚未应用的 plugin 标记为 `— run /reload-plugins to apply`。需要 Claude Code v2.1.163 或更高版本 |

772| `/plugin install` | `i` | 打开 **Discover** 选项卡 |778| `/plugin install` | `i` | 打开 **Discover** 选项卡 |

773| `/plugin install <plugin>` | `i` | 在 **Discover** 选项卡中打开 plugin 的详细信息。使用 `name@marketplace`,在该市场的列表中打开它们 |779| `/plugin install <plugin>` | `i` | 在 **Discover** 选项卡中打开 plugin 的详细信息。使用 `name@marketplace`,在该市场的列表中打开它们 |

780| `/plugin install <source>` | `i` | 当目标是路径、URL 或 `owner/repo` 时报告 [marketplace not found](/docs/zh-CN/plugins/troubleshooting#marketplace-not-found) 错误并不安装任何内容,即使是您已经添加的源。要从源安装,请参阅 [在一个命令中添加市场和安装](/docs/zh-CN/plugins/install#add-a-marketplace-and-install-in-one-command) |

774| `/plugin install <plugin> --marketplace <source>` | `i` | 当您尚未添加时添加 `<source>` 处的市场,要求您首先确认,然后打开 plugin 的详细信息。请参阅 [在一个命令中添加市场和安装](/docs/zh-CN/plugins/install#add-a-marketplace-and-install-in-one-command)。需要 Claude Code v2.1.275 或更高版本 |781| `/plugin install <plugin> --marketplace <source>` | `i` | 当您尚未添加时添加 `<source>` 处的市场,要求您首先确认,然后打开 plugin 的详细信息。请参阅 [在一个命令中添加市场和安装](/docs/zh-CN/plugins/install#add-a-marketplace-and-install-in-one-command)。需要 Claude Code v2.1.275 或更高版本 |

775| `/plugin manage` | | 打开 **Installed** 选项卡 |782| `/plugin manage` | | 打开 **Installed** 选项卡 |

776| `/plugin stats` | | 打开 **Stats** 选项卡,在 [`/skill-doctor`](/docs/zh-CN/skills#find-unused-skills) 可用的会话中。其他任何地方它在 **Discover** 选项卡上打开面板 |783| `/plugin stats` | | 打开 **Stats** 选项卡,在 [`/skill-doctor`](/docs/zh-CN/skills#find-unused-skills) 可用的会话中。其他任何地方它在 **Discover** 选项卡上打开面板 |


843| `--plugin-dir <path>` | 从目录或其 `.zip` 存档加载 plugin。plugins 的文件夹加载每个包含 `.claude-plugin/plugin.json` 的子文件夹。每个标志接受一个路径 | `claude --plugin-dir ./my-plugin --plugin-dir ./other.zip` |850| `--plugin-dir <path>` | 从目录或其 `.zip` 存档加载 plugin。plugins 的文件夹加载每个包含 `.claude-plugin/plugin.json` 的子文件夹。每个标志接受一个路径 | `claude --plugin-dir ./my-plugin --plugin-dir ./other.zip` |

844| `--plugin-url <url>` | 从 URL 获取 plugin `.zip` 存档。重复标志,或在一个引用值中传递多个 URL 空格分隔 | `claude --plugin-url "https://example.com/a.zip https://example.com/b.zip"` |851| `--plugin-url <url>` | 从 URL 获取 plugin `.zip` 存档。重复标志,或在一个引用值中传递多个 URL 空格分隔 | `claude --plugin-url "https://example.com/a.zip https://example.com/b.zip"` |

845 852 

846任一标志加载的 plugin 是会话内 plugin。`claude plugin list` 将其显示为 `<name>@inline`,作用域为 `session`,但仅当相同的标志在子命令前时。例如,运行 `claude --plugin-dir ./my-plugin plugin list`。853任一标志加载的 plugin 是会话内 plugin。[`claude plugin list`](#plugin-list) 将其显示为 `<name>@inline`,作用域为 `session`,但仅当相同的标志在子命令前时,例如 `claude --plugin-dir ./my-plugin plugin list`。该 plugin 在以 `Session-only plugins` 开头的标题下显示为 `<name>@inline`,`--json` 将其 `scope` 报告为 `session`。

847 854 

848当会话内 plugin 与已安装的 plugin 共享名称时,Claude Code 为该会话加载会话内副本并跳过已安装的副本。如果您使用 `claude plugin disable <name>@inline` 禁用了会话内副本,或托管设置锁定该 plugin 名称,已安装的副本改为加载。有关优先级,请参阅 [Plugin 加载参考](/docs/zh-CN/plugins/loading)。855当会话内 plugin 与已安装的 plugin 共享名称时,Claude Code 为该会话加载会话内副本并跳过已安装的副本。如果您使用 `claude plugin disable <name>@inline` 禁用了会话内副本,或托管设置锁定该 plugin 名称,已安装的副本改为加载。有关优先级,请参阅 [Plugin 加载参考](/docs/zh-CN/plugins/loading)。

849 856 

Details

676 676 

677要在插件中包含说明,将其写成 skill。Claude Code 不会在插件根目录加载 `CLAUDE.md`,`claude plugin validate` 会警告 `CLAUDE.md at the plugin root is not loaded as project context`。677要在插件中包含说明,将其写成 skill。Claude Code 不会在插件根目录加载 `CLAUDE.md`,`claude plugin validate` 会警告 `CLAUDE.md at the plugin root is not loaded as project context`。

678 678 

679如果规则必须每次都成立,例如 [阻止编辑受保护的文件](/docs/zh-CN/hooks-guide#block-edits-to-protected-files),将其添加到插件作为 [hook](#hooks) 而不是 skill。要在两者之间选择,参见 [比较相似功能](/docs/zh-CN/features-overview#compare-similar-features) 下的 Hook vs Skill 标签页。

680 

679对于 frontmatter 字段和支持文件,参见 [Skills](/docs/zh-CN/skills)。681对于 frontmatter 字段和支持文件,参见 [Skills](/docs/zh-CN/skills)。

680 682 

681<h3 id="commands">683<h3 id="commands">

Details

126 126 

127你分发的每个 plugin 都是 `marketplace.json` 的 `plugins` 数组中的一个对象。要添加第二个 plugin,请添加第二个对象。这些字段涵盖了大多数条目:127你分发的每个 plugin 都是 `marketplace.json` 的 `plugins` 数组中的一个对象。要添加第二个 plugin,请添加第二个对象。这些字段涵盖了大多数条目:

128 128 

129* `name`:人们在安装时在 `@` 之前输入的标识符。它不能包含空格。129* `name`:人们在安装时在 `@` 之前输入的标识符。[Plugin 条目](/docs/zh-CN/plugins/marketplace-reference#plugin-entries)给出了名称可以使用的字符。

130* `source`:Claude Code 从哪里获取 plugin。对于 marketplace 目录内的 plugin,写一个相对路径字符串,如[演练](#create-a-marketplace)中所示,或对于目录外的 plugin,写一个源对象。请参阅[选择 plugin 源](#choose-a-plugin-source)。130* `source`:Claude Code 从哪里获取 plugin。对于 marketplace 目录内的 plugin,写一个相对路径字符串,如[演练](#create-a-marketplace)中所示,或对于目录外的 plugin,写一个源对象。请参阅[选择 plugin 源](#choose-a-plugin-source)。

131* `description`:人们在 `/plugin` 中浏览你的 marketplace 时在 plugin 旁边看到的行。131* `description`:人们在 `/plugin` 中浏览你的 marketplace 时在 plugin 旁边看到的行。

132 132 


199 199 

200* JSON 语法错误,如 `json: Invalid JSON syntax: <reason>`200* JSON 语法错误,如 `json: Invalid JSON syntax: <reason>`

201* 缺少必需字段,例如 `owner: Invalid input`201* 缺少必需字段,例如 `owner: Invalid input`

202* 包含空格、非 ASCII 字符或模仿官方 Anthropic marketplace 形式的 marketplace 名称,例如 `claude-official`202* 违反[marketplace 参考](/docs/zh-CN/plugins/marketplace-reference#top-level-fields)中命名规则的 marketplace 或 plugin 名称

203* 包含 `..` 的相对 `source`203* 包含 `..` 的相对 `source`

204* 顶级或 plugin 条目中的未知字段,作为警告204* 顶级或 plugin 条目中的未知字段,作为警告

205* 每个相对路径 plugin 的 `plugin.json` 中的问题,如 `plugins[N] plugin.json → <field>: <message>`205* 每个相对路径 plugin 的 `plugin.json` 中的问题,如 `plugins[N] plugin.json → <field>: <message>`

Details

50 50 

51当用户将你的 marketplace 添加为裸 `marketplace.json` URL 时,Claude Code 仅下载该文件。你的 `plugins` 数组中的条目,其 `source` 是相对路径(如 `./plugins/formatter`),则在安装时会失败,出现 [`其 marketplace 条目路径不会停留在 marketplace 目录内`](/docs/zh-CN/plugins/troubleshooting#plugins-with-relative-paths-fail-in-url-based-marketplaces)。给每个条目一个可以独立获取的源,如 `github` 仓库或 `archive` URL,或在 git 仓库中托管 marketplace,以便 Claude Code 克隆整个树。51当用户将你的 marketplace 添加为裸 `marketplace.json` URL 时,Claude Code 仅下载该文件。你的 `plugins` 数组中的条目,其 `source` 是相对路径(如 `./plugins/formatter`),则在安装时会失败,出现 [`其 marketplace 条目路径不会停留在 marketplace 目录内`](/docs/zh-CN/plugins/troubleshooting#plugins-with-relative-paths-fail-in-url-based-marketplaces)。给每个条目一个可以独立获取的源,如 `github` 仓库或 `archive` URL,或在 git 仓库中托管 marketplace,以便 Claude Code 克隆整个树。

52 52 

53<h3 id="stay-within-the-download-limits-for-hosted-files">

54 保持托管文件的下载限制内

55</h3>

56 

57当用户将你的 marketplace 添加为 `marketplace.json` URL,或安装具有 [`archive`](/docs/zh-CN/plugins/marketplace-reference#archive-plugin-source) 源的条目时,Claude Code 从你的服务器下载文件。下载超过此表中的限制会失败,因此请调整你的文件大小并配置你的服务器以保持在限制内。

58 

59| 文件 | 最大下载 | 你的服务器响应时间 | 重定向 |

60| :- | :- | :- | :- |

61| 来自 `url` marketplace 源的 `marketplace.json` | 5 MiB | 10 秒 | 重定向到不同源必须使用 `https://` 且不能指向环回、链路本地或云元数据主机,因此从 `https://` 重定向到 `http://` 会失败 |

62| 来自 `archive` 插件源的 Zip | 256 MiB | 120 秒 | 最多五个。每个重定向目标必须使用 `https://` 且不能指向环回、链路本地或云元数据主机 |

63 

64重定向发送到不同源的请求不会携带你在 marketplace 源或插件条目上配置的任何标头。

65 

66存档下载后,当 zip 超过以下任何提取限制时,安装会失败:

67 

68* **条目**:100,000 个文件和目录

69* **文件大小**:任何一个文件 512 MiB,未压缩

70* **总大小**:1 GiB 未压缩

71* **压缩比**:未压缩内容是 zip 大小的 50 倍

72 

53<h3 id="edit-plugins-in-place-on-a-shared-directory">73<h3 id="edit-plugins-in-place-on-a-shared-directory">

54 在共享目录上就地编辑插件74 在共享目录上就地编辑插件

55</h3>75</h3>

Details

121 121 

122在您的终端中,插件仅在您使用 claude.ai 账户登录的会话中同步。122在您的终端中,插件仅在您使用 claude.ai 账户登录的会话中同步。

123 123 

124Claude Code 在这些终端会话中既不下载也不加载同步插件,即使您使用 `/login` 登录后也是如此:

125 

126* 一个会话,其中 `ANTHROPIC_AUTH_TOKEN`、`CLAUDE_CODE_OAUTH_TOKEN` 或 `apiKeyHelper` 脚本提供凭证来代替该登录

127* 一个不[从 Anthropic 获取功能标志](/docs/zh-CN/env-vars#features-that-need-feature-flag-fetching)的会话,例如您设置 `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` 的会话

128* 一个处于[裸模式](/docs/zh-CN/headless#start-faster-with-bare-mode)的会话或您使用 `--safe-mode` 启动的会话

129* 一个您使用[`--setting-sources`](/docs/zh-CN/cli-reference#cli-flags)列表启动的会话,该列表遗漏了 `user`

130 

124如果您在早期版本的 Claude Code 上登录,该登录不会覆盖插件,直到 Claude Code 在后台续期。要更快获得访问权限,请再次运行 `/login`。插件同步然后在下次启动 Claude Code 时开始。131如果您在早期版本的 Claude Code 上登录,该登录不会覆盖插件,直到 Claude Code 在后台续期。要更快获得访问权限,请再次运行 `/login`。插件同步然后在下次启动 Claude Code 时开始。

125 132 

126<h4 id="control-which-synced-plugins-load">133<h4 id="control-which-synced-plugins-load">


190| `.trash/` | claude.ai 同步删除的插件,例如在您在 claude.ai 上关闭一个或停止同步后 |197| `.trash/` | claude.ai 同步删除的插件,例如在您在 claude.ai 上关闭一个或停止同步后 |

191| `installed_plugins.json` 和 `known_marketplaces.json` | Claude Code 已安装的内容和已获取的市场的记录,在[检查插件达到的阶段](#check-which-stage-a-plugin-reached)下描述。[托管在 claude.ai 上的市场](/docs/zh-CN/plugins/install#add-from-claude-ai)改为记录在 `known_marketplaces_claudeai.json` 中 |198| `installed_plugins.json` 和 `known_marketplaces.json` | Claude Code 已安装的内容和已获取的市场的记录,在[检查插件达到的阶段](#check-which-stage-a-plugin-reached)下描述。[托管在 claude.ai 上的市场](/docs/zh-CN/plugins/install#add-from-claude-ai)改为记录在 `known_marketplaces_claudeai.json` 中 |

192| `flagged-plugins.json` | Claude Code 卸载的插件,因为其市场将其除名。它们出现在 `/plugin` 的 **Flagged** 部分;请参阅[托管市场](/docs/zh-CN/plugins/host-marketplace) |199| `flagged-plugins.json` | Claude Code 卸载的插件,因为其市场将其除名。它们出现在 `/plugin` 的 **Flagged** 部分;请参阅[托管市场](/docs/zh-CN/plugins/host-marketplace) |

200| `installed_plugins.set-aside.<date>.<hash>.json` 和 `installed_plugins.unreadable.<date>.<hash>.kept` | Claude Code 在删除任何版本的 Claude Code 都无法使用的安装记录或重建不可读的 `installed_plugins.json` 之前保留的日期副本。请参阅[恢复说明](/docs/zh-CN/plugins/troubleshooting#installed-plugins-json-could-not-be-read-and-was-rebuilt)。它们按照 [`cleanupPeriodDays`](/docs/zh-CN/settings-reference#cleanupperioddays) 计划老化 |

193 201 

194因为 `${CLAUDE_PLUGIN_ROOT}` 指向版本目录,插件的根路径随每个版本更改。改为在 `${CLAUDE_PLUGIN_DATA}` 中保留插件的持久文件。202因为 `${CLAUDE_PLUGIN_ROOT}` 指向版本目录,插件的根路径随每个版本更改。改为在 `${CLAUDE_PLUGIN_DATA}` 中保留插件的持久文件。

195 203 

Details

48* **社区 marketplace 名称**:`claude-community`、`claude-plugins-community` 和 `healthcare`。保留规则与官方名称相同。48* **社区 marketplace 名称**:`claude-community`、`claude-plugins-community` 和 `healthcare`。保留规则与官方名称相同。

49* **插件目录名称**:`anthropic-plugin-directory` 和 `claude-plugin-directory`。保留规则与官方名称相同。49* **插件目录名称**:`anthropic-plugin-directory` 和 `claude-plugin-directory`。保留规则与官方名称相同。

50* **冒充官方 marketplace 的名称**:名称如 `official-claude-plugins` 或 `claude-plugins-v2`,以及任何包含非 ASCII 字符的名称。错误是 `Marketplace name impersonates an official Anthropic/Claude marketplace`。名称中的控制或双向格式化字符也会报告 `Marketplace name cannot contain control or bidirectional-formatting characters`。已在这样的名称下注册的 marketplace 停止加载,连同其插件。50* **冒充官方 marketplace 的名称**:名称如 `official-claude-plugins` 或 `claude-plugins-v2`,以及任何包含非 ASCII 字符的名称。错误是 `Marketplace name impersonates an official Anthropic/Claude marketplace`。名称中的控制或双向格式化字符也会报告 `Marketplace name cannot contain control or bidirectional-formatting characters`。已在这样的名称下注册的 marketplace 停止加载,连同其插件。

51* <span id="reserved-name-spellings" />**保留名称的另一种拼写**:与保留名称仅在尾部点或用除下划线以外的符号代替连字符的名称,因此 `claude.code.plugins` 计为 `claude-code-plugins`。`claude plugin validate` 接受这样的名称;添加 marketplace 失败,错误为 [`is another spelling of "<reserved>", a reserved marketplace name`](/docs/zh-CN/errors#marketplace-name-is-another-spelling-of-a-reserved-name),已在一个下注册的 marketplace 停止加载。此检查需要 Claude Code v2.1.280 或更高版本。51* <span id="reserved-name-spellings" />**保留名称的另一种拼写**:与保留名称仅在尾部点或用除下划线以外的符号代替连字符的名称,因此 `claude.code.plugins` 计为 `claude-code-plugins`。添加 marketplace 失败,错误为 [`is another spelling of "<reserved>", a reserved marketplace name`](/docs/zh-CN/errors#marketplace-name-is-another-spelling-of-a-reserved-name),已在一个下注册的 marketplace 停止加载。此检查需要 Claude Code v2.1.280 或更高版本。

52* **Claude Code 用于不来自 marketplace 的插件的名称**:`inline` 用于使用 [`--plugin-dir`](/docs/zh-CN/cli-reference) 加载的插件,`builtin` 用于内置插件,`skills-dir` 用于从 [`.claude/skills/`](/docs/zh-CN/skills) 自动加载的插件,`synced` 用于从你的 claude.ai 账户同步的插件。`claude-plugin-test` 也被保留。`skills-dir` 也显示为 `{"source": "skills-dir"}`,在 `strictKnownMarketplaces` 和 `blockedMarketplaces` 中,如 [仅在策略列表中有效的源值](#source-values-valid-only-in-policy-lists) 下所述。52* **Claude Code 用于不来自 marketplace 的插件的名称**:`inline` 用于使用 [`--plugin-dir`](/docs/zh-CN/cli-reference) 加载的插件,`builtin` 用于内置插件,`skills-dir` 用于从 [`.claude/skills/`](/docs/zh-CN/skills) 自动加载的插件,`synced` 用于从你的 claude.ai 账户同步的插件。`claude-plugin-test` 也被保留。`skills-dir` 也显示为 `{"source": "skills-dir"}`,在 `strictKnownMarketplaces` 和 `blockedMarketplaces` 中,如 [仅在策略列表中有效的源值](#source-values-valid-only-in-policy-lists) 下所述。

53* **`npm`、`pip`、`uv`、`cargo`、`github` 和 `gh`**:以任何大小写保留。此检查需要 Claude Code v2.1.275 或更高版本。53* **`npm`、`pip`、`uv`、`cargo`、`github` 和 `gh`**:以任何大小写保留。此检查需要 Claude Code v2.1.275 或更高版本。

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


63 63 

64| 字段 | 类型 | 描述 |64| 字段 | 类型 | 描述 |

65| :- | :- | :- |65| :- | :- | :- |

66| `name` | string | Marketplace 标识符。没有空格、控制字符或双向格式化字符,没有 `/` 或 `\`,没有 `..`,不是 `.`。请参阅 [保留名称](#reserved-names)。用户在安装插件时在 `@` 后键入它 |66| `name` | string | Marketplace 标识符:字母、数字、`.`、`_` 和 `-`,以字母或数字开头,没有 `..`。它形成从 marketplace 安装的每个 [plugin id](/docs/zh-CN/plugins/loading#find-where-a-plugin-came-from) 的 `@` 后面的部分,因此 `claude plugin validate` 会拒绝其他名称。请参阅 [保留名称](#reserved-names) |

67| `owner` | object | 维护者信息。`name` 是必需的;`email` 和 `url` 是可选的 |67| `owner` | object | 维护者信息。`name` 是必需的;`email` 和 `url` 是可选的 |

68| `plugins` | array | [插件条目](#plugin-entries)。每个条目单独验证,因此一个无效条目不会导致 marketplace 失败 |68| `plugins` | array | [插件条目](#plugin-entries)。每个条目单独验证,因此一个无效条目不会导致 marketplace 失败 |

69| `$schema` | string | JSON Schema URL 用于编辑器自动完成。在加载时忽略 |69| `$schema` | string | JSON Schema URL 用于编辑器自动完成。在加载时忽略 |


87 87 

88| 字段 | 类型 | 描述 |88| 字段 | 类型 | 描述 |

89| :- | :- | :- |89| :- | :- | :- |

90| `name` | string | 插件标识符,没有空格、控制字符或双向格式化字符。用户在安装时在 `@` 前键入它,即使插件自己的 `plugin.json` 设置了不同的 `name` |90| `name` | string | 插件标识符:字母、数字、`.`、`_` 和 `-`,以字母或数字开头。`claude plugin validate` 会拒绝其他名称,Claude Code 无法安装。用户在安装时在 `@` 前键入它,即使插件自己的 `plugin.json` 设置了不同的 `name` |

91| `source` | string or object | 从哪里获取插件。请参阅 [插件源](#plugin-sources) |91| `source` | string or object | 从哪里获取插件。请参阅 [插件源](#plugin-sources) |

92| `description` | string | 在 [`/plugin`](/docs/zh-CN/plugins/install) 列表和详情中显示 |92| `description` | string | 在 [`/plugin`](/docs/zh-CN/plugins/install) 列表和详情中显示 |

93| `version` | string | 插件的版本字符串。当 `plugin.json` 也设置 `version` 时,`plugin.json` 优先,`claude plugin validate` 警告。请参阅 [插件加载参考](/docs/zh-CN/plugins/loading) |93| `version` | string | 插件的版本字符串。当 `plugin.json` 也设置 `version` 时,`plugin.json` 优先,`claude plugin validate` 警告。请参阅 [插件加载参考](/docs/zh-CN/plugins/loading) |


280 archive plugin source280 archive plugin source

281</h3>281</h3>

282 282 

283`url` 必须使用 `https://`,不能指向环回、链接本地或云元数据主机。283`url` 必须使用 `https://`,不能指向环回、链接本地或云元数据主机。有关下载的大小、超时、重定向和提取限制,请参阅[保持在托管文件的下载限制内](/docs/zh-CN/plugins/host-marketplace#stay-within-the-download-limits-for-hosted-files)。

284 284 

285插件根可能在 zip 的顶部或下一个目录。285插件根可能在 zip 的顶部或下一个目录。

286 286 


385| :- | :- | :- | :- | :- | :- |385| :- | :- | :- | :- | :- | :- |

386| `url` | `url`、`headers`、`headersHelper` | 不匹配 git 形式的 `http://` 或 `https://` URL | 加载 | 允许相同的 URL | 阻止相同的 URL |386| `url` | `url`、`headers`、`headersHelper` | 不匹配 git 形式的 `http://` 或 `https://` URL | 加载 | 允许相同的 URL | 阻止相同的 URL |

387| `github` | `repo`、`ref`、`path`、`sparsePaths` | `owner/repo`、`owner/repo@ref` 或 `owner/repo#ref` | 加载 | 允许相同的 `repo`、`ref` 和 `path`。`repo` 可能是 `owner/*` | 阻止相同的,以及到相同存储库的 `git` URL |387| `github` | `repo`、`ref`、`path`、`sparsePaths` | `owner/repo`、`owner/repo@ref` 或 `owner/repo#ref` | 加载 | 允许相同的 `repo`、`ref` 和 `path`。`repo` 可能是 `owner/*` | 阻止相同的,以及到相同存储库的 `git` URL |

388| `git` | `url`、`ref`、`path`、`sparsePaths` | `user@host:path` URL,或以 `.git` 结尾、包含 `/_git/` 或命名 github.com 或 gitlab.com 存储库的 `https://` URL。`#ref` 固定 ref | 加载 | 允许相同的 URL、`ref` 和 `path` | 阻止相同的,以及相同 github.com 存储库的其他拼写 |388| `git` | `url`、`ref`、`path`、`sparsePaths` | `user@host:path` URL,或以 `.git` 结尾、包含 `/_git/` 或命名 github.com 或 gitlab.com 存储库的 `http://` 或 `https://` URL。`#ref` 固定 ref | 加载 | 允许相同的 URL、`ref` 和 `path` | 阻止相同的,以及相同 github.com 存储库的其他拼写 |

389| `npm` | `package` | 未产生 | 加载失败:`NPM marketplace sources not yet implemented` | 解析但不匹配任何内容,因为没有任何内容注册 `npm` marketplace | 解析但不匹配任何内容 |389| `npm` | `package` | 未产生 | 加载失败:`NPM marketplace sources not yet implemented` | 解析但不匹配任何内容,因为没有任何内容注册 `npm` marketplace | 解析但不匹配任何内容 |

390| `file` | `path` | `.json` 文件的路径 | 加载 | 允许相同的路径 | 阻止相同的路径 |390| `file` | `path` | `.json` 文件的路径 | 加载 | 允许相同的路径 | 阻止相同的路径 |

391| `directory` | `path` | 目录的路径 | 加载 | 允许相同的路径 | 阻止相同的路径 |391| `directory` | `path` | 目录的路径 | 加载 | 允许相同的路径 | 阻止相同的路径 |


402 402 

403| 字段 | 类型 | 描述 |403| 字段 | 类型 | 描述 |

404| :- | :- | :- |404| :- | :- | :- |

405| `url` | `url` | 指向 `marketplace.json` 文件的链接。Claude Code 仅下载该文件,因此 marketplace 的插件不能使用 [相对路径源](#relative-path-plugin-source) |405| `url` | `url` | 指向 `marketplace.json` 文件的链接。Claude Code 仅下载该文件,因此 marketplace 的插件不能使用 [相对路径源](#relative-path-plugin-source)。请参阅 [保持在托管文件的下载限制内](/docs/zh-CN/plugins/host-marketplace#stay-within-the-download-limits-for-hosted-files) 了解大小、超时和重定向限制 |

406| `url` | `git` | 要克隆的 git 存储库 |406| `url` | `git` | 要克隆的 git 存储库 |

407| `headers` | `url` | Claude Code 随获取发送的 HTTP 标头映射,用于经过身份验证的主机 |407| `headers` | `url` | Claude Code 随获取发送的 HTTP 标头映射,用于经过身份验证的主机 |

408| `headersHelper` | `url` | 打印标头的命令,其值太短暂而无法在 `headers` 中列出。需要 Claude Code v2.1.238 或更高版本。请参阅 [验证 archive 下载](/docs/zh-CN/plugins/host-marketplace#authenticate-archive-downloads) |408| `headersHelper` | `url` | 打印标头的命令,其值太短暂而无法在 `headers` 中列出。需要 Claude Code v2.1.238 或更高版本。请参阅 [验证 archive 下载](/docs/zh-CN/plugins/host-marketplace#authenticate-archive-downloads) |


469 469 

470以条目索引和 `plugin.json →` 为前缀的消息,例如 `plugins[2] plugin.json →`,涉及该插件自己的文件。[`claude plugin validate` 报告错误](/docs/zh-CN/plugins/troubleshooting#claude-plugin-validate-reports-errors) 列出这些消息及其修复。470以条目索引和 `plugin.json →` 为前缀的消息,例如 `plugins[2] plugin.json →`,涉及该插件自己的文件。[`claude plugin validate` 报告错误](/docs/zh-CN/plugins/troubleshooting#claude-plugin-validate-reports-errors) 列出这些消息及其修复。

471 471 

472提及 Claude Desktop 标志名称的警告,这些名称 Claude Code 接受但 Claude Desktop 拒绝,因为 Claude Desktop 的名称规则更严格。472提及 Claude Desktop 标志名称的警告,这些名称 Claude Desktop 拒绝。

473 473 

474该表将 marketplace 级别的消息映射到每个消息所涉及的字段。474该表将 marketplace 级别的消息映射到每个消息所涉及的字段。

475 475 


484| `Author name cannot be empty` | 错误 | `owner.name` |484| `Author name cannot be empty` | 错误 | `owner.name` |

485| `Plugin name cannot contain spaces. Use kebab-case (e.g., "my-plugin")` | 错误 | `plugins[i].name` |485| `Plugin name cannot contain spaces. Use kebab-case (e.g., "my-plugin")` | 错误 | `plugins[i].name` |

486| `Plugin name cannot contain control or bidirectional-formatting characters` | 错误 | `plugins[i].name` |486| `Plugin name cannot contain control or bidirectional-formatting characters` | 错误 | `plugins[i].name` |

487| `Claude Code cannot install plugins from marketplace "x". Each part of a plugin id (plugin@marketplace) may use only the letters a-z and A-Z, digits, ".", "_" and "-", and must start with a letter or digit. Change the marketplace's "name".` | 错误 | `name` |

488| `Claude Code cannot install plugin "x". Each part of a plugin id (plugin@marketplace) may use only the letters a-z and A-Z, digits, ".", "_" and "-", and must start with a letter or digit. Change this entry's "name".` | 错误 | `plugins[i].name` |

487| `Duplicate plugin name "x" found in marketplace` | 错误 | 两个条目共享一个 `name` |489| `Duplicate plugin name "x" found in marketplace` | 错误 | 两个条目共享一个 `name` |

488| `plugins.i.source: Invalid input` | 错误 | 该条目的 `source` 与任何类型都不匹配。请参阅 [Invalid input on a source](#invalid-input-on-a-source) |490| `plugins.i.source: Invalid input` | 错误 | 该条目的 `source` 与任何类型都不匹配。请参阅 [Invalid input on a source](#invalid-input-on-a-source) |

489| `plugins[i].source: Path contains "..": <path>` | 错误 | 转义 marketplace 根目录的相对 `source` |491| `plugins[i].source: Path contains "..": <path>` | 错误 | 转义 marketplace 根目录的相对 `source` |

Details

145 `Marketplace "<name>" not found`145 `Marketplace "<name>" not found`

146</h3>146</h3>

147 147 

148您在会话中运行了 `/plugin install <plugin>@<name>`,通常来自某人发送给您的安装行,Claude Code 报告它没有该名称的市场。148您在会话中运行了 `/plugin install`,Claude Code 报告它没有该名称的市场。两种形式的命令会到达此消息:

149 

150* **`/plugin install <plugin>@<name>`**:安装行,通常是某人发送给您的,命名了您未添加的市场。本条目的其余部分涵盖了查找和添加它。

151* **`/plugin install <source>` 带有路径、URL 或 `owner/repo`**:此形式报告消息而不是安装,即使对于您已添加的源也是如此。要在一个命令中从源安装,请参阅 [添加市场并在一个命令中安装](/docs/zh-CN/plugins/install#add-a-marketplace-and-install-in-one-command)。

149 152 

150如果名称以 `claudeai-` 开头,市场托管在 claude.ai 上,您可以从 shell 中使用 `claude plugin marketplace add --claudeai <name>` 按名称添加它。请参阅 [从 claude.ai 添加市场](/docs/zh-CN/plugins/install#add-from-claude-ai)。153如果名称以 `claudeai-` 开头,市场托管在 claude.ai 上,您可以从 shell 中使用 `claude plugin marketplace add --claudeai <name>` 按名称添加它。请参阅 [从 claude.ai 添加市场](/docs/zh-CN/plugins/install#add-from-claude-ai)。

151 154 


646 649 

647然后在您的会话中运行 `/reload-plugins`。**Errors** 选项卡条目消失,插件回到 **Installed** 下。650然后在您的会话中运行 `/reload-plugins`。**Errors** 选项卡条目消失,插件回到 **Installed** 下。

648 651 

652<h3 id="installed-plugins-json-holds-a-record-this-version-cannot-read">

653 `installed_plugins.json holds a record under "<id>" that this version of Claude Code cannot read`

654</h3>

655 

656消息以这些形式出现:

657 

658* **`claude plugin list`**:将其打印为 `Note:`

659* **`claude plugin install`、`uninstall` 和 `update`**:拒绝并显示 `Plugin "<name>" was not installed:`、`Plugin "<name>" was not uninstalled:` 或 `Plugin "<name>" was not updated:`,后跟相同的文本

660* **这三个命令中任何一个上的 `--json`**:结果行携带相同的 `message` 和 `failureCode: "install_records_unreadable"`

661* **多个这样的记录**:消息读作 `holds records under`

662* **整个文件声明此版本不知道的格式**:消息读作 `installed_plugins.json is in a format (version <N>) that this version of Claude Code does not know` 而不是

663 

664命名的记录在 `installed_plugins.json` 中是有效的 JSON,在有效的插件 id 下,但其字段对此版本不解析。最可能是另一个版本的 Claude Code 写了它,也许是更新的版本。

665 

666当记录在那里时,此版本不重写文件,所以记录不会丢失。

667 

668按顺序采取消息的选项:

669 

6701. 使用 `claude update` 更新 Claude Code。

6712. 如果您无法更新,请使用写入记录的 Claude Code 版本卸载命名的插件。

6723. 如果两者都没有帮助,请手动从 `installed_plugins.json` 删除记录,然后重新启动 Claude Code 或运行 `/reload-plugins`。

673 

674<h3 id="installed-plugins-json-could-not-be-read-and-was-rebuilt">

675 `installed_plugins.json could not be read and was rebuilt`

676</h3>

677 

678`claude plugin list` 打印此注释,带有保留文件的路径,名为 `installed_plugins.unreadable.<date>.<hash>.kept`,只要该文件位于 `installed_plugins.json` 旁边。

679 

680不是有效 JSON 的 `installed_plugins.json`,或不是插件列表的,无法说出您安装了什么。

681 

682打开 `.kept` 文件以查看旧文件记录的内容,并重新安装您缺少的插件。Claude Code 永远不会读回该文件,该文件在 [`cleanupPeriodDays`](/docs/zh-CN/settings-reference#cleanupperioddays) 计划上老化。

683 

684<h3 id="install-records-under-names-that-no-version-can-use">

685 `install records under names that no version of Claude Code can use were removed from installed_plugins.json`

686</h3>

687 

688`claude plugin list` 打印此注释,带有副本的路径,名为 `installed_plugins.set-aside.<date>.<hash>.json`,只要该副本位于 `installed_plugins.json` 旁边。注释以 `Nothing needs doing about these copies.` 结尾。

689 

690`installed_plugins.json` 中的记录位于不是有效插件 id 的键下,因此没有版本的 Claude Code 可以使用它。文件的其余部分正常加载。

691 

692Claude Code 将不可用的记录复制到 `.set-aside` 文件中并将其从列表中删除。Claude Code 永远不会读回副本,副本在 [`cleanupPeriodDays`](/docs/zh-CN/settings-reference#cleanupperioddays) 计划上老化。

693 

649<h3 id="a-plugin-you-disabled-still-loads">694<h3 id="a-plugin-you-disabled-still-loads">

650 `Disabled in ~/.claude/settings.json but still loads`695 `Disabled in ~/.claude/settings.json but still loads`

651</h3>696</h3>


981| `Path contains "..": <path>` 在 `plugins[N].source` 下 | 错误 | 使用相对于市场根的路径,不带 `..` 段。 |1026| `Path contains "..": <path>` 在 `plugins[N].source` 下 | 错误 | 使用相对于市场根的路径,不带 `..` 段。 |

982| `Marketplace name cannot contain control or bidirectional-formatting characters` | 错误 | 从名称中删除字符,例如转义或换行符。 |1027| `Marketplace name cannot contain control or bidirectional-formatting characters` | 错误 | 从名称中删除字符,例如转义或换行符。 |

983| `Plugin name cannot contain control or bidirectional-formatting characters` | 错误 | 从插件 `name` 中删除字符。 |1028| `Plugin name cannot contain control or bidirectional-formatting characters` | 错误 | 从插件 `name` 中删除字符。 |

1029| `Claude Code cannot install plugins from marketplace "<name>". Each part of a plugin id (plugin@marketplace) may use only the letters a-z and A-Z, digits, ".", "_" and "-", and must start with a letter or digit. Change the marketplace's "name".` | 错误 | 将市场重命名以符合消息所述的规则。 |

1030| `Claude Code cannot install plugin "<name>". Each part of a plugin id (plugin@marketplace) may use only the letters a-z and A-Z, digits, ".", "_" and "-", and must start with a letter or digit. Change this entry's "name".` | 错误 | 将条目重命名以符合消息所述的规则。 |

984| `Marketplace has no plugins defined` | 警告 | 至少添加一个条目到 `plugins`。 |1031| `Marketplace has no plugins defined` | 警告 | 至少添加一个条目到 `plugins`。 |

985| `No marketplace description provided` | 警告 | 添加顶级 `description`。 |1032| `No marketplace description provided` | 警告 | 添加顶级 `description`。 |

986| `Plugin name "<name>" is not kebab-case` 在 `plugins[N] plugin.json → name` 下 | 警告 | 重命名为小写字母、数字和连字符。Claude Code 接受其他形式,但 claude.ai 市场同步拒绝它们。 |1033| `Plugin name "<name>" is not kebab-case` 在 `plugins[N] plugin.json → name` 下 | 警告 | 重命名为小写字母、数字和连字符;claude.ai 市场同步需要该形式。 |

987| `Entry declares version "<a>" but <path>/plugin.json says "<b>"` | 警告 | 更新条目以匹配 `plugin.json`,这在安装时是权威的。 |1034| `Entry declares version "<a>" but <path>/plugin.json says "<b>"` | 警告 | 更新条目以匹配 `plugin.json`,这在安装时是权威的。 |

988| `Marketplace name "<name>" is reserved in Claude Desktop` | 警告 | 重命名市场。Claude Desktop 的托管市场同步拒绝任何大小写的 `org`、`org-provisioned` 和 `unknown`。 |1035| `Marketplace name "<name>" is reserved in Claude Desktop` | 警告 | 重命名市场。Claude Desktop 的托管市场同步拒绝任何大小写的 `org`、`org-provisioned` 和 `unknown`。 |

989| `Marketplace name "<name>" is not accepted by Claude Desktop` 或 `Plugin name "<name>" is not accepted by Claude Desktop` | 警告 | 重命名为最多 128 个字符的字母、数字、`.`、`_` 和 `-`,以字母或数字开头。 |1036| `Marketplace name "<name>" is not accepted by Claude Desktop` 或 `Plugin name "<name>" is not accepted by Claude Desktop` | 警告 | 重命名为最多 128 个字符的字母、数字、`.`、`_` 和 `-`,以字母或数字开头。 |

Details

412| - | - |412| - | - |

413| `DISABLE_PROMPT_CACHING` | 对所有模型禁用 |413| `DISABLE_PROMPT_CACHING` | 对所有模型禁用 |

414| `DISABLE_PROMPT_CACHING_HAIKU` | 仅对默认 Haiku 模型禁用 |414| `DISABLE_PROMPT_CACHING_HAIKU` | 仅对默认 Haiku 模型禁用 |

415| `DISABLE_PROMPT_CACHING_SONNET` | 仅对 Sonnet 禁用 |415| `DISABLE_PROMPT_CACHING_SONNET` | 仅对默认 Sonnet 模型禁用 |

416| `DISABLE_PROMPT_CACHING_OPUS` | 仅对 Opus 禁用 |416| `DISABLE_PROMPT_CACHING_OPUS` | 仅对默认 Opus 模型禁用 |

417| `DISABLE_PROMPT_CACHING_FABLE` | 仅对 Fable 禁用 |417| `DISABLE_PROMPT_CACHING_FABLE` | 仅对 Fable 禁用 |

418 418 

419`DISABLE_PROMPT_CACHING_HAIKU` 适用于默认 Haiku 模型,即 `haiku` 别名解析到的模型。它在该模型运行的任何地方禁用缓存,包括当它是您的主模型时的主对话。覆盖主对话需要 Claude Code v2.1.283 或更高版本。419`DISABLE_PROMPT_CACHING_HAIKU` 适用于默认 Haiku 模型,即 `haiku` 别名解析到的模型。它在该模型运行的任何地方禁用缓存,包括当它是您的主模型时的主对话。覆盖主对话需要 Claude Code v2.1.283 或更高版本。


422 422 

423您固定为主模型的不同 Haiku 版本保持缓存;设置 `DISABLE_PROMPT_CACHING` 以禁用其缓存。423您固定为主模型的不同 Haiku 版本保持缓存;设置 `DISABLE_PROMPT_CACHING` 以禁用其缓存。

424 424 

425`DISABLE_PROMPT_CACHING_SONNET` 和 `DISABLE_PROMPT_CACHING_OPUS` 分别适用于 `sonnet` 或 `opus` 别名解析到的模型。如果您将任何其他 Sonnet 或 Opus 模型 ID 设置为主模型,该模型保持缓存。例如,`claude-sonnet-5` 上的会话保持缓存,而 `sonnet` 解析到 `claude-sonnet-5-5`。要禁用该模型的缓存,请设置 `DISABLE_PROMPT_CACHING`。

426 

425要在整个组织中设置缓存策略,请将这些或[TTL 变量](#cache-lifetime)中的任何一个放在[托管设置](/docs/zh-CN/managed-settings)的 `env` 块中。对于正常使用,保持缓存启用。427要在整个组织中设置缓存策略,请将这些或[TTL 变量](#cache-lifetime)中的任何一个放在[托管设置](/docs/zh-CN/managed-settings)的 `env` 块中。对于正常使用,保持缓存启用。

426 428 

427<h2 id="related-resources">429<h2 id="related-resources">

remote-control.md +35 −35

Details

48 claude remote-control48 claude remote-control

49 ```49 ```

50 50 

51 在您接受远程控制的一次性确认之前,`claude remote-control` 会解释它的作用并在启动服务器之前询问 `Enable Remote Control? (y/n)`。回答 `y` 以接受并启动服务器。如果您拒绝,Claude Code 将退出而不启动服务器,并在您下次运行该命令时再次询问。51 在您接受远程控制的一次性确认之前,`claude remote-control` 会解释它的作用,并在启动服务器之前询问 `Enable Remote Control? (y/n)`。回答 `y` 以接受并启动服务器。如果您拒绝,Claude Code 将退出而不启动服务器,并在您下次运行该命令时再次询问。

52 52 

53 该进程在您的终端中以服务器模式保持运行,等待远程连接。它显示一个会话 URL,您可以使用该 URL 从[另一台设备连接](#connect-from-another-device),您可以按空格键显示 QR 码以从您的手机快速访问。当远程会话处于活动状态时,终端显示连接状态和工具活动。53 该进程在您的终端中以服务器模式保持运行,等待远程连接。它显示一个会话 URL,您可以使用该 URL 从[另一台设备连接](#connect-from-another-device),您可以按空格键显示 QR 码以便从手机快速访问。当远程会话处于活动状态时,终端显示连接状态和工具活动。

54 54 

55 可用标志:55 可用标志:

56 56 

57 | 标志 | 描述 |57 | 标志 | 描述 |

58 | - | - |58 | - | - |

59 | `--name "My Project"` | 设置自定义会话标题,在 claude.ai/code 的会话列表中可见。 |59 | `--name "My Project"` | 设置自定义会话标题,在 claude.ai/code 的会话列表中可见。 |

60 | `--remote-control-session-name-prefix <prefix>` | 当未设置显式名称时,自动生成的会话名称的前缀。默认为您的机器主机名,生成类似 `myhost-graceful-unicorn` 的名称。设置 `CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX` 以获得相同效果。 |60 | `--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 或更高版本。 |61 | `-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 或更高版本。 |62 | `--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>` | 服务器如何创建会话。<br />• `same-dir`(默认):所有会话共享当前工作目录,因此如果编辑相同文件可能会冲突。<br />• `worktree`:每个按需会话获得自己的 [git worktree](/docs/zh-CN/worktrees)。需要 git 存储库。<br />• `session`:单会话模式。恰好服务一个会话并拒绝其他连接。仅在启动时设置。<br />在运行时按 `w` 在 `same-dir` 和 `worktree` 之间切换。 |63 | `--spawn <mode>` | 服务器创建会话的方式。<br />• `same-dir`(默认):所有会话共享当前工作目录,因此如果编辑相同文件可能会冲突。<br />• `worktree`:每个按需会话获得自己的 [git worktree](/docs/zh-CN/worktrees)。需要 git 存储库。<br />• `session`:单会话模式。恰好服务一个会话并拒绝其他连接。仅在启动时设置。<br />在运行时按 `w` 在 `same-dir` 和 `worktree` 之间切换。 |

64 | `--capacity <N>` | 最大并发会话数。默认为 32。不能与 `--spawn=session` 一起使用。 |64 | `--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)。 |65 | `--[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` 的别名;无法识别的模式会在启动时停止服务器并列出有效模式。 |66 | `--permission-mode <mode>` | 为服务器的会话设置起始[权限模式](/docs/zh-CN/permission-modes),例如 `acceptEdits`。接受 `manual` 作为 `default` 的别名;无法识别的模式会在启动时停止服务器并列出有效模式。 |

67 | `--chrome` / `--no-chrome` | 在服务器创建的会话中打开或关闭 [Chrome 集成](/docs/zh-CN/chrome),以便 Claude 可以在您从另一台设备工作时在您的机器上使用 Chrome。没有任何标志,服务器预创建的会话和您从 claude.ai/code 或 Claude 应用启动的任何会话都以 Chrome 关闭开始,即使您[默认启用了 Chrome](/docs/zh-CN/chrome#enable-chrome-by-default)。服务器为您的[项目](/docs/zh-CN/claude-projects)线程之一启动的会话改为遵循该设置,除非在 `bypassPermissions` 模式下。需要 Claude Code v2.1.273 或更高版本。 |67 | `--chrome` / `--no-chrome` | 在服务器创建的会话中打开或关闭 [Chrome 集成](/docs/zh-CN/chrome),以便 Claude 可以在您从另一台设备工作时在您的机器上使用 Chrome。如果没有任一标志,服务器预创建的会话和您从 claude.ai/code 或 Claude 应用自己启动的任何会话都以 Chrome 关闭开始,即使您[默认启用了 Chrome](/docs/zh-CN/chrome#enable-chrome-by-default)。服务器为您的[项目](/docs/zh-CN/claude-projects)线程之一启动的会话改为遵循该设置,除非在 `bypassPermissions` 模式下。需要 Claude Code v2.1.273 或更高版本。 |

68 | `-d`, `--debug[=<filter>]` | 为服务器打开调试日志记录,可选择按类别过滤。仅以 `=` 形式传递过滤器,例如 `--debug=api,hooks`。需要 Claude Code v2.1.282 或更高版本。 |68 | `-d`, `--debug[=<filter>]` | 为服务器打开调试日志记录,可选择按类别过滤。仅以 `=` 形式传递过滤器,例如 `--debug=api,hooks`。需要 Claude Code v2.1.282 或更高版本。 |

69 | `--debug-file <path>` | 将调试日志写入给定文件。 |69 | `--debug-file <path>` | 将调试日志写入给定文件。 |

70 | `--verbose` | 显示详细的连接和会话日志。 |70 | `--verbose` | 显示详细的连接和会话日志。 |


72 72 

73 在 `remote-control` 之后给出这些标志。73 在 `remote-control` 之后给出这些标志。

74 74 

75 如果您在 `remote-control` 之前传递全局 `claude` 标志,或者包装脚本添加了一个,Claude Code 不会将该标志转移到服务器创建的会话。Claude Code 仅在已知删除该标志不会改变这些会话可以执行的操作时才允许该标志通过,例如 `--verbose` 或 `--model`。对于任何其他标志,例如 `--settings`,Claude Code [拒绝启动](/docs/zh-CN/errors#not-carried-over-to-the-sessions-remote-control-starts)并命名要删除的标志。75 如果您在 `remote-control` 之前传递全局 `claude` 标志,或包装脚本添加了一个,Claude Code 不会将该标志转移到服务器创建的会话。Claude Code 仅在已知删除该标志不会改变这些会话可以执行的操作时才允许该标志通过,例如 `--verbose` 或 `--model`。对于任何其他标志,例如 `--settings`,Claude Code [拒绝启动](/docs/zh-CN/errors#not-carried-over-to-the-sessions-remote-control-starts)并命名要删除的标志。

76 76 

77 Claude Code 在打印帮助之前检查远程控制资格,因此当您未使用符合条件的帐户登录时,`claude remote-control --help` 返回错误而不是此标志列表。77 Claude Code 在打印帮助之前检查远程控制资格,因此当您未使用符合条件的帐户登录时,`claude remote-control --help` 返回错误而不是此标志列表。

78 </Tab>78 </Tab>


84 claude --remote-control84 claude --remote-control

85 ```85 ```

86 86 

87 可选择为会话传递一个名称:87 可选择为会话传递名称:

88 88 

89 ```bash theme={null}89 ```bash theme={null}

90 claude --remote-control "My Project"90 claude --remote-control "My Project"

91 ```91 ```

92 92 

93 这为您提供了一个完整的交互式会话在您的终端中,您也可以从 claude.ai 或 Claude 应用远程控制。与 `claude remote-control`(服务器模式)不同,您可以在本地输入消息,同时会话也可以远程使用。93 这为您提供了一个完整的交互式会话在您的终端中,您也可以从 claude.ai 或 Claude 应用远程控制。与 `claude remote-control`(服务器模式)不同,您可以在会话也可远程使用时在本地输入消息。

94 </Tab>94 </Tab>

95 95 

96 <Tab title="从现有会话">96 <Tab title="从现有会话">


100 /remote-control100 /remote-control

101 ```101 ```

102 102 

103 传递一个名称作为参数以设置自定义会话标题:103 传递名称作为参数以设置自定义会话标题:

104 104 

105 ```text theme={null}105 ```text theme={null}

106 /remote-control My Project106 /remote-control My Project

107 ```107 ```

108 108 

109 这启动一个远程控制会话,该会话继承您当前的对话历史。109 这启动一个远程控制会话,该会话延续您当前的对话历史。

110 110 

111 在您接受远程控制的一次性确认之前,在 `/remote-control` 连接之前会出现一个对话框。选择**启用远程控制**以接受并连接。如果您选择**算了**或按 Esc,Claude Code 不会连接,并在您下次运行 `/remote-control` 时再次询问。111 在您接受远程控制的一次性确认之前,在 `/remote-control` 连接之前会出现一个对话框。选择**启用远程控制**以接受并连接。如果您选择**算了**或按 Esc,Claude Code 不会连接,并在您下次运行 `/remote-control` 时再次询问。

112 112 

113 此命令不支持 `--verbose`、`--sandbox` 和 `--no-sandbox` 标志。113 `--verbose`、`--sandbox` 和 `--no-sandbox` 标志不适用于此命令。

114 </Tab>114 </Tab>

115 115 

116 <Tab title="VS Code">116 <Tab title="VS Code">


120 /remote-control120 /remote-control

121 ```121 ```

122 122 

123 当远程控制打开时,Claude Code 在提示框页脚中显示**远程控制**指示器。会话连接后,单击指示器直接转到会话,或在 [claude.ai/code](https://claude.ai/code) 的会话列表中找到它。Claude Code 也会在对话中发布会话 URL。要断开连接,再次运行 `/remote-control`。123 当远程控制打开时,Claude Code 在提示框页脚中显示**远程控制**指示器。会话连接后,单击指示器直接转到会话,或在 [claude.ai/code](https://claude.ai/code) 的会话列表中找到它。Claude Code 还在对话中发布会话 URL。要断开连接,再次运行 `/remote-control`。

124 124 

125 与 CLI 不同,VS Code 命令不接受名称参数或显示 QR 码。会话标题从您的对话历史或第一个提示派生。125 与 CLI 不同,VS Code 命令不接受名称参数或显示 QR 码。会话标题从您的对话历史或第一个提示派生。

126 </Tab>126 </Tab>


142 检查连接状态142 检查连接状态

143</h3>143</h3>

144 144 

145在交互式会话中,当远程控制已连接时,终端显示一个 `/rc active` 指示器,该指示器链接到 claude.ai 上的会话。当终端太窄无法容纳它时,指示器被隐藏。要查看会话 URL 和 QR 码以[从另一台设备连接](#connect-from-another-device),再次运行 `/remote-control` 以打开状态面板。该面板还允许您断开远程控制,同时您的本地会话继续运行。145在交互式会话中,当远程控制已连接时,终端显示一个 `/rc active` 指示器,该指示器链接到 claude.ai 上的会话。当终端太窄无法容纳它时,指示器被隐藏。要查看会话 URL 和用于[从另一台设备连接](#connect-from-another-device)的 QR 码,再次运行 `/remote-control` 以打开状态面板。该面板还允许您断开远程控制,同时您的本地会话继续运行。

146 146 

147<span id="session-ended-elsewhere" />如果连接在交互式会话中失败,指示器会更改以显示失败,Claude Code 会在通知中显示原因并将其添加到对话中。运行 `/remote-control` 以重新连接,除非原因说会话在其他地方更改:147<span id="session-ended-elsewhere" />如果连接在交互式会话中失败,指示器会更改以显示失败,Claude Code 会在通知中显示原因并将其添加到对话中。运行 `/remote-control` 以重新连接,除非原因说会话在其他地方更改:

148 148 


157一旦远程控制会话处于活动状态,您有几种方式从另一台设备连接:157一旦远程控制会话处于活动状态,您有几种方式从另一台设备连接:

158 158 

159* **打开会话 URL** 在任何浏览器中直接转到 [claude.ai/code](https://claude.ai/code) 上的会话。159* **打开会话 URL** 在任何浏览器中直接转到 [claude.ai/code](https://claude.ai/code) 上的会话。

160* **扫描 QR 码** 显示在会话 URL 旁边,以在 Claude 应用中直接打开它。使用 `claude remote-control`,按空格键切换 QR 码显示。160* **扫描 QR 码** 显示在会话 URL 旁边,在 Claude 应用中直接打开它。使用 `claude remote-control`,按空格键切换 QR 码显示。

161* **打开 [claude.ai/code](https://claude.ai/code) 或 Claude 应用** 并在会话列表中按名称找到会话。在 Claude 移动应用中,点击导航中的**代码**以到达会话列表。远程控制会话在在线时显示带有绿色状态点的计算机图标。161* **打开 [claude.ai/code](https://claude.ai/code) 或 Claude 应用** 并在会话列表中按名称找到会话。在 Claude 移动应用中,点击导航中的**代码**以到达会话列表。远程控制会话在联机时显示带有绿色状态点的计算机图标。

162 162 

163当您连接时,设备显示会话已在后台运行的任何子代理和工作流。从设备停止其中一个,Claude Code 会停止您的机器上的该任务。163当您连接时,设备显示会话已在后台运行的任何子代理和工作流。从设备停止其中一个,Claude Code 会停止您机器上的该任务。

164 164 

165远程会话标题按以下顺序选择:165远程会话标题按以下顺序选择:

166 166 

1671. 您传递给 `--name`、`--remote-control` 或 `/remote-control` 的名称1671. 您传递给 `--name`、`--remote-control` 或 `/remote-control` 的名称

1682. 您使用 `/rename` 设置的标题1682. 您使用 `/rename` 设置的标题

1693. 现有对话历史中最后一条有意义的消息1693. 现有对话历史中最后一条有意义的消息

1704. 自动生成的名称,如 `myhost-graceful-unicorn`,其中 `myhost` 是您的机器主机名或您使用 `--remote-control-session-name-prefix` 设置的前缀1704. 自动生成的名称,如 `myhost-graceful-unicorn`,其中 `myhost` 是您机器的主机名或您使用 `--remote-control-session-name-prefix` 设置的前缀

171 171 

172如果您未设置显式名称,Claude Code 会在您发送提示后更新标题以反映您的提示。当您从 claude.ai 或 Claude 应用重命名会话时,Claude Code 也会更新 `claude --resume` 中显示的本地标题。172如果您未设置显式名称,Claude Code 会在您发送提示后更新标题以反映您的提示。当您从 claude.ai 或 Claude 应用重命名会话时,Claude Code 也会更新 `claude --resume` 中显示的本地标题。

173 173 

174如果您还没有 Claude 应用,请在 Claude Code 中运行 `/mobile` 以显示 QR 码以访问 [claude.ai/mobile](https://claude.ai/mobile),它会打开您手机的正确应用商店。174如果您还没有 Claude 应用,请在 Claude Code 内运行 `/mobile` 以显示 [claude.ai/mobile](https://claude.ai/mobile) 的 QR 码,该码会打开适合您手机的应用商店。

175 175 

176<h3 id="what-connected-devices-see">176<h3 id="what-connected-devices-see">

177 连接的设备看到的内容177 连接的设备看到的内容


179 179 

180连接的设备显示您终端中的对话。这些情况超出了普通消息:180连接的设备显示您终端中的对话。这些情况超出了普通消息:

181 181 

182* **压缩和 `/clear`**:当 Claude Code [压缩对话](/docs/zh-CN/context-window#what-survives-compaction)时,连接的设备显示进度,然后显示对话被压缩的位置。当您运行 `/clear` 时,对话也会在连接的设备上重置。182* **压缩和 `/clear`**:当 Claude Code [压缩对话](/docs/zh-CN/context-window#what-survives-compaction)时,连接的设备显示进度,然后显示对话被压缩的位置。当您运行 `/clear` 时,对话也在连接的设备上重置。

183* **使用 `/resume` 切换对话**:连接的设备不会接收切换到的对话的标题或早期历史,但双向的新消息进出您的终端中打开的任何对话。要再次从设备处理原始对话,请在您的终端中运行 `/resume` 并切换回它。183* **使用 `/resume` 切换对话**:连接的设备不接收切换到的对话的标题或早期历史,但双向的新消息进出您终端中打开的任何对话。要从设备再次处理原始对话,请在您的终端中运行 `/resume` 并切换回它。

184* **使用 `/teleport` 拉取会话**:当您使用 `/teleport` 将[云会话](/docs/zh-CN/claude-code-on-the-web#from-cloud-to-terminal)拉入您的终端时,连接的设备不会接收拉取的对话的早期历史。双向的新消息进出拉取的对话,该对话现在是您的终端中打开的对话。184* **使用 `/teleport` 拉取会话**:当您使用 `/teleport` 将[云会话](/docs/zh-CN/claude-code-on-the-web#from-cloud-to-terminal)拉入您的终端时,连接的设备不接收拉取的对话的早期历史。双向的新消息进出拉取的对话,该对话现在是您终端中打开的对话。

185* **来自您其他会话的消息**:使用[跨会话消息传递](/docs/zh-CN/cross-session-messaging),相同的连接在不同机器上的您自己的会话之间以及来自您的[云会话](/docs/zh-CN/claude-code-on-the-web)传递消息。185* **来自您其他会话的消息**:使用[跨会话消息传递](/docs/zh-CN/cross-session-messaging),相同的连接在您不同机器上的自己的会话之间以及来自您的[云会话](/docs/zh-CN/claude-code-on-the-web)传递消息。

186* **您的更改的差异**:当会话的目录在 git 存储库中时,连接的设备的差异窗格显示您的更改。在具有超过存储库默认分支的提交的分支上,窗格显示自分支从它分离以来的更改,包括您未提交的编辑。在默认分支本身上,或在不超过它的分支上,窗格仅显示您未提交的更改。186* **您的更改的差异**:当会话的目录在 git 存储库中时,连接的设备的差异窗格显示您的更改。在具有超过存储库默认分支的提交的分支上,窗格显示自分支从它分离以来的更改,包括您未提交的编辑。在默认分支本身上,或在不超过它的分支上,窗格仅显示您未提交的更改。

187* **模型**:当您从连接的设备选择[模型](/docs/zh-CN/model-config)时,Claude Code 在该模型上运行会话。需要 Claude Code v2.1.238 或更高版本。您从设备的模型控制中选择的模型仅适用于当前会话。当您从设备向交互式会话发送 `/model <name>` 时,Claude Code 也会为新会话设置您的默认值。187* **模型**:当您从连接的设备选择[模型](/docs/zh-CN/model-config)时,Claude Code 在该模型上运行会话。需要 Claude Code v2.1.238 或更高版本。您从设备的模型控制中选择的模型仅适用于当前会话。当您从设备向交互式会话发送 `/model <name>` 时,Claude Code 也会为新会话设置您的默认值。

188* **努力级别**:当您从连接的设备使用 `/effort` 或设备的努力控制设置[努力级别](/docs/zh-CN/model-config#adjust-effort-level)时,Claude Code 将其应用于您的机器上的会话。如果您使用 `CLAUDE_CODE_EFFORT_LEVEL` 固定了一个级别,会话保持该级别,Claude Code 拒绝从努力控制中选择不同的级别。从努力控制中选择一个级别需要您的机器上的 Claude Code v2.1.234 或更高版本。188* **努力级别**:当您从连接的设备设置[努力级别](/docs/zh-CN/model-config#adjust-effort-level)时,使用 `/effort` 或设备的努力控制,Claude Code 将其应用于您机器上的会话。如果您使用 `CLAUDE_CODE_EFFORT_LEVEL` 固定了一个级别,会话保持该级别,Claude Code 拒绝从努力控制中选择不同的级别。从努力控制中选择级别需要您机器上的 Claude Code v2.1.234 或更高版本。

189* **连接失败后重新连接**:运行 `/remote-control` 以重新连接。如果压缩重写了对话或您在此期间使用 `/resume` 切换了对话,Claude Code 会存档它正在使用的服务器会话,而不是将其留在会话列表中。您仍然可以通过[过滤存档的会话](/docs/zh-CN/claude-code-on-the-web#archive-sessions)找到它。在设备仍然连接时切换对话不会存档会话。189* **连接失败后重新连接**:运行 `/remote-control` 以重新连接。如果压缩重写了对话或您在此期间使用 `/resume` 切换了对话,Claude Code 会存档它正在使用的服务器会话,而不是将其留在会话列表中。您仍然可以通过[过滤存档的会话](/docs/zh-CN/claude-code-on-the-web#archive-sessions)找到它。在设备仍然连接时切换对话不会存档会话。

190 190 

191<h3 id="enable-remote-control-for-all-sessions">191<h3 id="enable-remote-control-for-all-sessions">

192 为所有会话启用远程控制192 为所有会话启用远程控制

193</h3>193</h3>

194 194 

195远程控制仅在您显式运行 `claude remote-control`、`claude --remote-control` 或 `/remote-control` 时激活,除非打开了自动连接。要为每个交互式会话打开自动连接,请在 Claude Code 中运行 `/config` 并设置**为所有会话启用远程控制**。切换有三个值:195远程控制仅在您显式运行 `claude remote-control`、`claude --remote-control` 或 `/remote-control` 时激活,除非打开了自动连接。要为每个交互式会话打开自动连接,请在 Claude Code 内运行 `/config` 并设置**为所有会话启用远程控制**。切换有三个值:

196 196 

197* **`true`**:当交互式会话启动时自动连接。197* **`true`**:当交互式会话启动时自动连接。

198* **`false`**:关闭自动连接,尽管来自[托管设置](/docs/zh-CN/managed-settings)的 `true` 会优先,因为 Claude Code 将选择保存到您的用户设置。项目或本地设置(`.claude/settings.json`、`.claude/settings.local.json`)中的 `false` 甚至会关闭自动连接,即使托管 `true` 也是如此。198* **`false`**:关闭自动连接,尽管来自[托管设置](/docs/zh-CN/managed-settings)的 `true` 会优先,因为 Claude Code 将选择保存到您的用户设置。项目或本地设置(`.claude/settings.json`、`.claude/settings.local.json`)中的 `false` 即使在托管 `true` 上也会关闭自动连接。

199* **`default`**:清除您的选择并遵循您的组织的管理员默认值(如果已设置),否则遵循 Claude Code 的当前默认值。199* **`default`**:清除您的选择并遵循您组织的管理员默认值(如果已设置),否则遵循 Claude Code 的当前默认值。

200 200 

201相同的切换出现在 CLI 之外:201相同的切换出现在 CLI 之外:

202 202 

203* **Desktop 应用**:**设置 > Claude Code > 默认启用远程控制**。203* **Desktop 应用**:**设置 > Claude Code > 将新会话连接到远程控制**。

204* **VS Code 扩展**:[命令菜单](/docs/zh-CN/vs-code#use-the-prompt-box)的设置部分中的**为所有会话启用远程控制**。204* **VS Code 扩展**:[命令菜单](/docs/zh-CN/vs-code#use-the-prompt-box)的设置部分中的**为所有会话启用远程控制**。

205 205 

206要改为从设置文件打开自动连接,请在您的用户 `~/.claude/settings.json` 或[托管设置](/docs/zh-CN/managed-settings)中将 [`remoteControlAtStartup`](/docs/zh-CN/settings-reference#remotecontrolatstartup) 设置为 `true`。在项目或本地设置(`.claude/settings.json`、`.claude/settings.local.json`)中,Claude Code 遵守 `false` 并为该存储库关闭自动连接,但忽略 `true`,因此已检入的文件无法为打开存储库的每个人打开远程控制。206要改为从设置文件打开自动连接,请在您的用户 `~/.claude/settings.json` 或[托管设置](/docs/zh-CN/managed-settings)中将 [`remoteControlAtStartup`](/docs/zh-CN/settings-reference#remotecontrolatstartup) 设置为 `true`。在项目或本地设置(`.claude/settings.json`、`.claude/settings.local.json`)中,Claude Code 遵守 `false` 并为该存储库关闭自动连接,但忽略 `true`,因此已检入的文件无法为打开存储库的每个人打开远程控制。

207 207 

208自动连接使用您自己的 claude.ai 帐户登录,因此它启动的会话仅出现在您自己的帐户的 Claude 应用中,并且不向任何其他人授予访问权限。208自动连接使用您自己的 claude.ai 帐户登录,因此它启动的会话仅出现在您自己帐户的 Claude 应用中,并且不向任何其他人授予访问权限。

209 209 

210启用此设置后,每个交互式 Claude Code 进程注册一个远程会话。如果您运行多个实例,每个实例都获得自己的远程会话。要从单个进程运行多个并发会话,请改用[服务器模式](#start-a-remote-control-session)。210启用此设置后,每个交互式 Claude Code 进程注册一个远程会话。如果您运行多个实例,每个实例都获得自己的远程会话。要从单个进程运行多个并发会话,请改为使用[服务器模式](#start-a-remote-control-session)。

211 211 

212<h3 id="resume-sessions-after-stopping-the-server">212<h3 id="resume-sessions-after-stopping-the-server">

213 停止服务器后恢复会话213 停止服务器后恢复会话


216当您使用 Ctrl+C 停止 `claude remote-control` 时,它正在服务的会话停止从您的手机或浏览器响应。只要您没有在同一目录中运行另一个 `claude remote-control` 并且没有使用 `--no-create-session-in-dir` 启动此会话,Claude Code 就不会存档它们。要恢复它们,请在同一目录中运行以下命令之一:216当您使用 Ctrl+C 停止 `claude remote-control` 时,它正在服务的会话停止从您的手机或浏览器响应。只要您没有在同一目录中运行另一个 `claude remote-control` 并且没有使用 `--no-create-session-in-dir` 启动此会话,Claude Code 就不会存档它们。要恢复它们,请在同一目录中运行以下命令之一:

217 217 

218* **`claude remote-control`**:恢复服务器正在服务的每个会话。218* **`claude remote-control`**:恢复服务器正在服务的每个会话。

219* **`claude remote-control --continue`**:仅恢复服务器启动的会话,并在该会话结束时退出。如果此目录没有记录,Claude Code 会使用此存储库的其他 git worktree 中最新的。219* **`claude remote-control --continue`**:仅恢复服务器启动的会话,并在该会话结束时退出。如果此目录没有记录,Claude Code 使用此存储库其他 git worktree 中最新的。

220* **`claude remote-control --session-id <id>`**:仅恢复您传递其 ID 的会话,并在该会话结束时退出。ID 是会话 URL 在 claude.ai/code 中 `/code/` 和任何 `?` 之间的部分。220* **`claude remote-control --session-id <id>`**:仅恢复您传递其 ID 的会话,并在该会话结束时退出。ID 是会话 URL 在 claude.ai/code 中 `/code/` 和任何 `?` 之间的部分。

221 221 

222这些命令在服务器停止后约四小时内有效。之后,运行 `claude remote-control` 以启动新会话。如果您在此期间存档了会话,`--continue` 和 `--session-id` 会在 Claude Code v2.1.228 或更高版本上取消存档。222这些命令在服务器停止后约四小时内有效。之后,运行 `claude remote-control` 以启动新会话。如果您在此期间存档了会话,`--continue` 和 `--session-id` 在 Claude Code v2.1.228 或更高版本上取消存档它。

223 223 

224要恢复您使用 `claude --remote-control` 或 `/remote-control` 启动的会话,请使用 `claude --continue` 或 `claude --resume` 恢复对话。如果远程控制不重新连接,请参阅[无法重新连接到您的远程控制会话](#couldnt-reconnect-to-your-remote-control-session)。224要恢复您使用 `claude --remote-control` 或 `/remote-control` 启动的会话,请使用 `claude --continue` 或 `claude --resume` 恢复对话。如果远程控制无法重新连接,请参阅[无法重新连接到您的远程控制会话](#couldnt-reconnect-to-your-remote-control-session)。

225 225 

226如果您在第一个终端仍然打开远程控制的情况下在第二个终端中恢复对话,Claude Code 会在第二个终端中打印 `Remote Control not started here` 通知,并改为在那里关闭远程控制。在第二个终端中运行 `/remote-control` 以将远程控制移动到它。226如果您在第一个终端仍然打开远程控制的情况下在第二个终端中恢复对话,Claude Code 会在第二个终端中打印 `Remote Control not started here` 通知,并改为在那里关闭远程控制,而不是从第一个终端取走会话。在第二个终端中运行 `/remote-control` 以将远程控制移动到它。

227 227 

228当您在具有远程控制的 Claude Desktop 或 IDE 扩展中恢复对话时,Claude Code 会将其重新附加到现有的 claude.ai 会话,而不是向会话列表添加新会话。228当您在具有远程控制的 Claude Desktop 或 IDE 扩展中恢复对话时,Claude Code 会将其重新附加到现有 claude.ai 会话,而不是向会话列表添加新会话。

229 229 

230<h2 id="connection-and-security">230<h2 id="connection-and-security">

231 连接和安全231 连接和安全

routines.md +16 −6

Details

66 66 

67在所有其他情况下,包括发布新 artifact,Claude 会先询问。当例程的工作是保持页面最新时,请给它一个您已经发布的 artifact。67在所有其他情况下,包括发布新 artifact,Claude 会先询问。当例程的工作是保持页面最新时,请给它一个您已经发布的 artifact。

68 68 

69Routines 属于您的个人 claude.ai 账户。它们不与队友共享,并且计入您账户的每日运行配额。例程通过您连接的 GitHub 身份或 connectors 所做的任何事情都显示为您:提交和拉取请求携带您的 GitHub 用户,Slack 消息、Linear 票证或其他 connector 操作使用您为这些服务链接的账户。69Routines 属于您的个人 claude.ai 账户。它们不与队友共享,并且其运行计入您账户的 [usage and limits](#usage-and-limits)。例程通过您连接的 GitHub 身份或 connectors 所做的任何事情都显示为您:提交和拉取请求携带您的 GitHub 用户,Slack 消息、Linear 票证或其他 connector 操作使用您为这些服务链接的账户。

70 70 

71<h3 id="create-from-the-web">71<h3 id="create-from-the-web">

72 从 Web 创建72 从 Web 创建


174 174 

175与定期计划相同的本地到 UTC 转换适用于一次性时间戳。175与定期计划相同的本地到 UTC 转换适用于一次性时间戳。

176 176 

177一次性运行不计入每日例程运行上限。请参阅 [Usage and limits](#usage-and-limits) 了解详细信息。177一次性运行计入与其他计划运行相同的每小时限制。请参阅 [Usage and limits](#usage-and-limits) 了解详细信息。

178 178 

179<h3 id="add-an-api-trigger">179<h3 id="add-an-api-trigger">

180 添加 API 触发器180 添加 API 触发器


256GitHub 触发器在连接的存储库上发生匹配事件时自动启动新会话。Claude Code 不会跨事件重用会话,因此两个 PR 更新会产生两个独立会话。256GitHub 触发器在连接的存储库上发生匹配事件时自动启动新会话。Claude Code 不会跨事件重用会话,因此两个 PR 更新会产生两个独立会话。

257 257 

258<Note>258<Note>

259 在研究预览期间,GitHub webhook 事件受每个例程和每个账户的每小时上限限制。超过限制的事件被丢弃,直到窗口重置。在 [claude.ai/code/routines](https://claude.ai/code/routines) 查看您当前的限制。259 GitHub webhook 事件受每个例程和每个账户的每小时上限限制。超过限制的事件被丢弃,直到窗口重置。

260</Note>260</Note>

261 261 

262Claude GitHub App 必须安装在您想订阅的存储库上,无论您从哪个表面配置触发器。262Claude GitHub App 必须安装在您想订阅的存储库上,无论您从哪个表面配置触发器。


421 使用和限制421 使用和限制

422</h2>422</h2>

423 423 

424Routines 以与交互式会话相同的方式消耗订阅使用量。除了标准订阅限制外,routines 还对每个账户每天可以启动多少次运行有上限。在 [claude.ai/code/routines](https://claude.ai/code/routines) 或 [claude.ai/settings/usage](https://claude.ai/settings/usage) 查看您当前的消耗和剩余的每日 routine 运行次数。424Routines 以与交互式会话相同的方式消耗订阅使用量。在 [claude.ai/settings/usage](https://claude.ai/settings/usage) 查看您当前的消耗。

425 425 

426当 routine 达到每日上限或您的订阅使用限制时,启用了使用额度的组织可以继续在计量超额上运行 routines。没有使用额度,额外运行被拒绝,直到窗口重置。在 [claude.ai/settings/usage](https://claude.ai/settings/usage) 启用使用额度。在 Team 和 Enterprise 计划上,管理员在 [claude.ai/admin-settings/usage](https://claude.ai/admin-settings/usage) 为组织启用使用额度。426除了订阅使用量外,每种启动运行的方式都有每小时限制:

427 427 

428一次性运行不计入每日 routine 运行上限。它们像任何其他会话一样消耗您的常规订阅使用量。428| 操作 | 限制 | 计数对象 | 超过限制 |

429| :- | :- | :- | :- |

430| 计划运行,包括一次性运行 | 每小时 100 次 | 您的账户 | 运行等待直到限制重置 |

431| **立即运行**、API 触发和设置一次性 routine 再次运行 | 每小时 30 次 | 每个 routine,三者共享一个计数 | 操作失败直到限制重置 |

432| **立即运行**和设置一次性 routine 再次运行 | 每小时 100 次 | 您的账户 | 相同 |

433| API 触发 | 每小时 100 次 | 您的账户,与**立即运行**分开计数 | 相同 |

434| GitHub 事件 | 见 [添加 GitHub 触发器](#add-a-github-trigger) | | |

435 

436这些每小时限制都没有超额费用。

437 

438当 routine 达到您的订阅使用限制时,启用了使用额度的组织可以继续在计量超额上运行 routines。没有使用额度,额外运行被拒绝,直到您的使用窗口重置。在 [claude.ai/settings/usage](https://claude.ai/settings/usage) 启用使用额度。在 Team 和 Enterprise 计划上,管理员在 [claude.ai/admin-settings/usage](https://claude.ai/admin-settings/usage) 为组织启用使用额度。

429 439 

430当您的订阅暂停时,您的 routines 会被暂停并且不会运行。一旦您的订阅再次激活,请将它们重新打开。440当您的订阅暂停时,您的 routines 会被暂停并且不会运行。一旦您的订阅再次激活,请将它们重新打开。

431 441 

Details

138* 在项目根目录,运行时拒绝 `.git/hooks`,拒绝 `.git/config` 除非您设置 `filesystem.allowGitConfig: true`,并拒绝 `.mcp.json`、`.claude/commands`、`.claude/agents` 和 shell 启动文件。138* 在项目根目录,运行时拒绝 `.git/hooks`,拒绝 `.git/config` 除非您设置 `filesystem.allowGitConfig: true`,并拒绝 `.mcp.json`、`.claude/commands`、`.claude/agents` 和 shell 启动文件。

139* 在 macOS 上,这些拒绝在写入发生时被检查,因此它们也涵盖嵌套文件和在会话期间创建的存储库。139* 在 macOS 上,这些拒绝在写入发生时被检查,因此它们也涵盖嵌套文件和在会话期间创建的存储库。

140* 在 Linux 和 WSL2 上,运行时在启动时构建拒绝列表一次。它可靠地涵盖项目根目录,对当时存在的嵌套副本进行最佳努力的浅层扫描,并不涵盖会话稍后创建的任何内容,例如 `git init`、`git clone` 或脚手架。README 的 `mandatoryDenySearchDepth` 部分描述了扫描的确切语义。140* 在 Linux 和 WSL2 上,运行时在启动时构建拒绝列表一次。它可靠地涵盖项目根目录,对当时存在的嵌套副本进行最佳努力的浅层扫描,并不涵盖会话稍后创建的任何内容,例如 `git init`、`git clone` 或脚手架。README 的 `mandatoryDenySearchDepth` 部分描述了扫描的确切语义。

141* 没有有效的 `~/.srt-settings.json`,运行时仍然启动,阻止网络访问,并将写入限制在内置运行时路径,例如 `/tmp/claude`、`~/.npm/_logs` 和 `~/.claude/debug`。不要将干净的启动作为您的设置已加载的证明。141* 如果 `~/.srt-settings.json` 不存在且您没有传递 `--settings`,运行时仍然启动。它阻止网络访问并将写入限制在内置运行时路径,例如 `/tmp/claude`、`~/.npm/_logs` 和 `~/.claude/debug`。不要将干净的启动作为您的设置已加载的证明。

142* 当您传递 `--settings` 时,如果文件加载失败,运行时拒绝启动。142* 如果设置文件存在但为空、不可读或无效,运行时拒绝启动,无论是 `~/.srt-settings.json` 还是您使用 `--settings` 传递的文件。如果 `--settings` 文件不存在,它也拒绝启动。

143 143 

144您的写入授权仍然包括 Claude Code 加载配置的其他路径,因此使用 `denyWrite` 拒绝这些路径。可以写入它们的沙箱化会话可以持久化 hook、权限规则或 MCP 服务器,这些在您下次启动 Claude Code 时以未沙箱化的方式运行。144您的写入授权仍然包括 Claude Code 加载配置的其他路径,因此使用 `denyWrite` 拒绝这些路径。可以写入它们的沙箱化会话可以持久化 hook、权限规则或 MCP 服务器,这些在您下次启动 Claude Code 时以未沙箱化的方式运行。

145 145 

sandboxing.md +1 −0

Details

528 528 

529* **默认写入行为**:对当前工作目录及其子目录的读写访问,加上使用 `--add-dir`、`/add-dir` 或 [`permissions.additionalDirectories`](/docs/zh-CN/settings-reference#permissions-additionaldirectories) 添加的任何目录,以及 `$TMPDIR` 指向的会话临时目录529* **默认写入行为**:对当前工作目录及其子目录的读写访问,加上使用 `--add-dir`、`/add-dir` 或 [`permissions.additionalDirectories`](/docs/zh-CN/settings-reference#permissions-additionaldirectories) 添加的任何目录,以及 `$TMPDIR` 指向的会话临时目录

530* **默认读取行为**:对整个计算机的读取访问,除了某些被拒绝的目录。注意此默认仍允许读取凭证文件,例如 `~/.aws/credentials` 和 `~/.ssh/`。使用 [`sandbox.credentials`](#protect-credentials) 阻止读取这些文件并取消设置密钥环境变量,或将路径添加到 `denyRead`。530* **默认读取行为**:对整个计算机的读取访问,除了某些被拒绝的目录。注意此默认仍允许读取凭证文件,例如 `~/.aws/credentials` 和 `~/.ssh/`。使用 [`sandbox.credentials`](#protect-credentials) 阻止读取这些文件并取消设置密钥环境变量,或将路径添加到 `denyRead`。

531* **读取阻止**:启用 [`permissions.blockReadsOutsideWorkingDirectories`](/docs/zh-CN/settings-reference#permissions-blockreadsoutsideworkingdirectories) 时,沙箱化命令也会失去对你的主目录和其他保存用户文件的目录的读取访问权限,除了 [Sandboxed commands under the block](/docs/zh-CN/settings-reference#sandboxed-commands-under-the-block) 列出的路径。该部分也说明了此阻止部分何时不适用。

531* **被阻止的访问**:无法在没有明确权限的情况下修改工作目录、添加的目录和会话临时目录外的文件,包括 shell 配置文件(例如 `~/.bashrc`)和 `/bin/` 中的系统二进制文件532* **被阻止的访问**:无法在没有明确权限的情况下修改工作目录、添加的目录和会话临时目录外的文件,包括 shell 配置文件(例如 `~/.bashrc`)和 `/bin/` 中的系统二进制文件

532* **Git worktrees**:当工作目录是[链接的 git worktree](/docs/zh-CN/worktrees)时,沙箱还允许写入主存储库的共享 `.git` 目录,以便 `git commit` 等命令可以更新引用和索引。对该目录内的 `hooks/` 和 `config` 的写入仍然被拒绝。533* **Git worktrees**:当工作目录是[链接的 git worktree](/docs/zh-CN/worktrees)时,沙箱还允许写入主存储库的共享 `.git` 目录,以便 `git commit` 等命令可以更新引用和索引。对该目录内的 `hooks/` 和 `config` 的写入仍然被拒绝。

533* **可配置**:通过设置定义自定义允许和拒绝的路径534* **可配置**:通过设置定义自定义允许和拒绝的路径

Details

48* **零数据保留**:对于启用了[零数据保留](/docs/zh-CN/zero-data-retention)的组织不可用。48* **零数据保留**:对于启用了[零数据保留](/docs/zh-CN/zero-data-retention)的组织不可用。

49* **模型推理**:会话使用 Anthropic API,推理不能通过 [Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry](/docs/zh-CN/third-party-integrations) 或 [LLM 网关](/docs/zh-CN/llm-gateway)路由。49* **模型推理**:会话使用 Anthropic API,推理不能通过 [Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry](/docs/zh-CN/third-party-integrations) 或 [LLM 网关](/docs/zh-CN/llm-gateway)路由。

50* **表面**:从 [claude.ai/code](https://claude.ai/code)、移动和桌面应用、[计划例程](/docs/zh-CN/routines)以及终端启动的会话,带有 [`claude --cloud`](/docs/zh-CN/claude-code-on-the-web#from-terminal-to-cloud) 或 [`--environment` 调度](/docs/zh-CN/self-hosted-environments-testing#run-the-test-loop),可以在自托管环境中运行。[Claude Tag](https://claude.com/docs/claude-tag/overview) 会话也可以在其中运行,但 Claude 还不能在这些会话中使用[访问包](https://claude.com/docs/claude-tag/concepts/glossary#access-bundle)。[Claude Security](/docs/zh-CN/claude-security) 和[代码审查](/docs/zh-CN/code-review)会话还不能路由到它们。对这两个表面的支持将单独跟进。50* **表面**:从 [claude.ai/code](https://claude.ai/code)、移动和桌面应用、[计划例程](/docs/zh-CN/routines)以及终端启动的会话,带有 [`claude --cloud`](/docs/zh-CN/claude-code-on-the-web#from-terminal-to-cloud) 或 [`--environment` 调度](/docs/zh-CN/self-hosted-environments-testing#run-the-test-loop),可以在自托管环境中运行。[Claude Tag](https://claude.com/docs/claude-tag/overview) 会话也可以在其中运行,但 Claude 还不能在这些会话中使用[访问包](https://claude.com/docs/claude-tag/concepts/glossary#access-bundle)。[Claude Security](/docs/zh-CN/claude-security) 和[代码审查](/docs/zh-CN/code-review)会话还不能路由到它们。对这两个表面的支持将单独跟进。

51* **存储库**:会话从 GitHub 检出存储库;请参阅 [GitHub 身份验证选项](/docs/zh-CN/claude-code-on-the-web#github-authentication-options)。51* **存储库**:会话从 GitHub 检出存储库;请参阅 [GitHub 身份验证选项](/docs/zh-CN/claude-code-on-the-web#github-authentication-options)。对于 GitHub Enterprise Server 主机,请参阅其[网络要求](/docs/zh-CN/github-enterprise-server#network-requirements)。

52* **计费**:自托管环境中的会话消耗您的组织的 Claude Code 使用情况,与 Anthropic 托管环境中的会话相同。52* **计费**:自托管环境中的会话消耗您的组织的 Claude Code 使用情况,与 Anthropic 托管环境中的会话相同。

53 53 

54<h2 id="why-self-host">54<h2 id="why-self-host">

Details

170 170 

171如果您的 git 主机拒绝凭证,或您没有配置凭证,运行器重试几次然后失败存储库准备(当存储库是会话推送结果的存储库时)。对于会话仅从中读取的存储库,[故障排除](#troubleshooting)涵盖运行器何时改为跳过它。运行器不会将这些设置传递到会话的环境中。171如果您的 git 主机拒绝凭证,或您没有配置凭证,运行器重试几次然后失败存储库准备(当存储库是会话推送结果的存储库时)。对于会话仅从中读取的存储库,[故障排除](#troubleshooting)涵盖运行器何时改为跳过它。运行器不会将这些设置传递到会话的环境中。

172 172 

173保持您在 `GIT_SSH_COMMAND` 或 `GIT_ASKPASS` 中命名的任何程序,会话无法写入它,就像[加固清单](#harden-your-deployment)要求钩子目录和包装脚本的方式一样。该程序命令行上的任何密钥或文件也是如此。运行器自己的 git 在克隆或获取时运行该程序。

174 

173如果检出目录由与运行器进程不同的 uid 拥有,git 拒绝对其进行操作;添加 `safe.directory`:175如果检出目录由与运行器进程不同的 uid 拥有,git 拒绝对其进行操作;添加 `safe.directory`:

174 176 

175```dockerfile theme={null}177```dockerfile theme={null}


184 186 

185代理需要 `--capacity 1`,因为代理 URL 是按会话的,以及 git 2.32 或更高版本,因为较旧的 git 忽略代理用来隔离会话的配置机制。如果任一要求未满足,运行器拒绝启动。因为代理从 Anthropic 端获取,您的 git 主机必须可从 Anthropic 基础设施到达,与 Anthropic 托管会话相同的要求;对于仅在您的网络内可路由的 git 主机,改用 [`checkout` 生命周期钩子](/docs/zh-CN/self-hosted-environments-configuration#checkout)。每个运行器进程一次处理一个会话,因此运行更多副本以获得并行性。启用代理后,`--git-host-rewrite` 和 `--git-ssh-rewrite` 无效:代理 URL 指向 `api.anthropic.com`,而不是您的 git 主机。187代理需要 `--capacity 1`,因为代理 URL 是按会话的,以及 git 2.32 或更高版本,因为较旧的 git 忽略代理用来隔离会话的配置机制。如果任一要求未满足,运行器拒绝启动。因为代理从 Anthropic 端获取,您的 git 主机必须可从 Anthropic 基础设施到达,与 Anthropic 托管会话相同的要求;对于仅在您的网络内可路由的 git 主机,改用 [`checkout` 生命周期钩子](/docs/zh-CN/self-hosted-environments-configuration#checkout)。每个运行器进程一次处理一个会话,因此运行更多副本以获得并行性。启用代理后,`--git-host-rewrite` 和 `--git-ssh-rewrite` 无效:代理 URL 指向 `api.anthropic.com`,而不是您的 git 主机。

186 188 

189<Warning>

190 本页上的 [Kubernetes](#kubernetes) 和 [Docker Compose](#docker-compose) 配方使用 `--capacity 4`。如果您在不将容量更改为 `1` 的情况下向其中一个添加 `--use-anthropic-git-proxy` 或 `CLAUDE_RUNNER_USE_GIT_PROXY=1`,每次您的编排器重新启动它时,运行器都会在启动时退出。设置 `--capacity 1` 并运行更多副本以获得并行性。[当运行器退出](#when-the-runner-exits)显示运行器打印的行。

191</Warning>

192 

187运行器还在注册时向 Anthropic 报告选择加入,在启动时打印 `Registering as opted in to Anthropic-managed git (--use-anthropic-git-proxy)`。报告选择加入需要 Claude Code v2.1.267 或更高版本,较早的版本接受该标志而不报告它或打印该行。选择加入运行器上的每个会话然后使用 Anthropic 管理的 git 或按会话代理 URL。当会话使用按会话代理 URL 时,运行器记录一行 `[runner:warn]` 说明这一点。193运行器还在注册时向 Anthropic 报告选择加入,在启动时打印 `Registering as opted in to Anthropic-managed git (--use-anthropic-git-proxy)`。报告选择加入需要 Claude Code v2.1.267 或更高版本,较早的版本接受该标志而不报告它或打印该行。选择加入运行器上的每个会话然后使用 Anthropic 管理的 git 或按会话代理 URL。当会话使用按会话代理 URL 时,运行器记录一行 `[runner:warn]` 说明这一点。

188 194 

195<h4 id="trust-a-private-certificate-authority-with-anthropic-managed-git">

196 使用 Anthropic 管理的 git 信任专用证书颁发机构

197</h4>

198 

199如果您在运行器的环境中设置 `GIT_SSL_CAINFO` 或 `GIT_SSL_NO_VERIFY`,其会话使用 Anthropic 管理的 git,本部分适用。它描述的处理需要运行器运行 Claude Code v2.1.283 或更高版本。

200 

201当运行器上的 git 必须信任专用证书颁发机构 (CA)(例如 TLS 检查代理签署的证书颁发机构)时,通常的方法如下所示:

202 

203* **系统证书存储**:在运行器主机的系统证书存储中安装您的 CA,git 无需任何变量即可信任它。

204* **`GIT_SSL_CAINFO`**:将其设置为您的 CA 的 PEM 文件,例如 `GIT_SSL_CAINFO=/etc/ssl/corp-ca.pem`。

205* **`GIT_SSL_NO_VERIFY`**:在重新签名代理后面没有帮助。运行器自己通过 Anthropic 管理的 git 克隆检查证书,即使设置了变量,所以克隆失败,直到 git 通过其他两种方法之一信任您的 CA。

206 

207对于将会话令牌传送到 Anthropic 管理的 git 的 git 连接,运行器应用这两个变量如下。[`command` 钩子](/docs/zh-CN/self-hosted-environments-configuration#command)以会话的环境开始,所以它获得 git 在会话内获得的内容:

208 

209* **`GIT_SSL_CAINFO`**:git 检查 Anthropic 管理的 git 的内容取决于 git 运行的位置:

210 * **运行器自己的克隆和获取**:运行时不使用变量,并根据运行器写入的按会话证书文件检查 Anthropic 管理的 git。该文件保存运行器主机的系统 CA 包加上您的文件中的证书。

211 * **会话内的 Git**:获得 `http.sslCAInfo` 配置,命名您的文件代替变量,加上 `http.<url>.sslCAInfo` 条目,根据按会话文件检查 Anthropic 管理的 git。

212 * **`checkout` 和 `post-session` 钩子**:继承变量不变。

213* **`GIT_SSL_NO_VERIFY`**:哪些证书检查保持关闭取决于 git 运行的位置:

214 * **运行器自己的克隆和获取**:运行时不使用变量,并检查它们呈现的证书。

215 * **会话内的 Git**:获得 `http.sslVerify=false` 配置代替变量,所以检查对其他主机保持关闭。它还获得 `http.<url>.sslVerify=true` 条目,为 Anthropic 管理的 git 保持检查打开。

216 * **`checkout` 和 `post-session` 钩子**:当会话在 Anthropic 管理的 git 上有存储库时,获得 `http.sslVerify=false` 配置代替变量。它们还获得 `http.<url>.sslVerify=true` 条目,为 Anthropic 管理的 git 保持检查打开。

217 

218按会话证书文件需要在运行器主机上的 `/etc/ssl/certs/ca-certificates.crt` 或 `/etc/pki/tls/certs/ca-bundle.crt` 处的系统 CA 包。它还需要一个 `GIT_SSL_CAINFO` 文件,运行器的用户可以读取,保存 PEM `CERTIFICATE` 块,最多 1 MiB。当运行器无法构建按会话文件时,它记录一行 `[runner:warn]` 包含 `did not build the certificate file` 和原因。Git 然后按原样为 Anthropic 管理的 git 使用您的文件。修复该行命名的内容。

219 

220对于使用 Anthropic 管理的 git 的每个会话,运行器还记录一行 `[runner:warn]` 开始于 `governed git: GIT_SSL_CAINFO is set` 或 `governed git: GIT_SSL_NO_VERIFY is set`。该行说明运行器对其自己的 git、会话内的 git 和您的生命周期钩子对该变量所做的操作。它以您是否需要更改任何内容结束。

221 

189<h3 id="rewrite-git-urls-for-private-networks">222<h3 id="rewrite-git-urls-for-private-networks">

190 为专用网络重写 git URL223 为专用网络重写 git URL

191</h3>224</h3>


203 236 

204Anthropic 不发布预构建的运行器镜像。围绕 `claude` 二进制文件构建您自己的,分层您的存储库需要的任何工具链:语言运行时、编译器、包管理器和 [MCP](/docs/zh-CN/mcp) 边车。237Anthropic 不发布预构建的运行器镜像。围绕 `claude` 二进制文件构建您自己的,分层您的存储库需要的任何工具链:语言运行时、编译器、包管理器和 [MCP](/docs/zh-CN/mcp) 边车。

205 238 

206下面的配方使用 `--capacity 4`,所以一个容器为来自同一锁定所有者的最多四个并发会话服务。这不提供[加固部分](#harden-your-deployment)中的按会话容器隔离:在将环境连接到生产系统之前,要么以 `--capacity 1` 运行配方,每个会话一个容器,要么使用[按需运行器](/docs/zh-CN/self-hosted-environments-configuration#on-demand-runners),它也将环境密钥保持在会话运行主机之外。239下面的配方使用 `--capacity 4`,所以一个容器为来自同一锁定所有者的最多四个并发会话服务。这不提供[加固部分](#harden-your-deployment)中的按会话容器隔离:在将环境连接到生产系统之前,要么以 `--capacity 1` 运行配方,每个会话一个容器,要么使用[按需运行器](/docs/zh-CN/self-hosted-environments-configuration#on-demand-runners),它也将环境密钥保持在会话运行主机之外。如果您将[Anthropic git 代理](#use-the-anthropic-git-proxy)添加到这些配方之一,也要将 `--capacity` 更改为 `1`。

207 240 

208这个 Dockerfile 是一个最小的起点:241这个 Dockerfile 是一个最小的起点:

209 242 


338 371 

339下面的 Compose 服务在运行器退出时重启它,这涵盖崩溃和正常退出后的 drain。Docker 重启策略重启同一容器及其可写层完整,所以运行器以重用的文件系统而不是[加固态势](#harden-your-deployment)推荐的新文件系统回来;为评估使用此配方,对于生产要么每次运行重新创建容器,要么使用执行此操作的编排器。372下面的 Compose 服务在运行器退出时重启它,这涵盖崩溃和正常退出后的 drain。Docker 重启策略重启同一容器及其可写层完整,所以运行器以重用的文件系统而不是[加固态势](#harden-your-deployment)推荐的新文件系统回来;为评估使用此配方,对于生产要么每次运行重新创建容器,要么使用执行此操作的编排器。

340 373 

374Docker 在容器不断退出时会在每次重启前等待更长时间,直到达到上限,所以在此配方下无法启动的运行器不会在紧密循环中不断重启。[当运行器退出时](#when-the-runner-exits)描述了发生这种情况时要检查的内容。

375 

341```yaml theme={null}376```yaml theme={null}

342services:377services:

343 claude-runner:378 claude-runner:


451 486 

452每个会话的子 Claude Code 进程运行运行器自己的二进制文件,运行器在它生成的会话内关闭自动更新,所以每个会话运行您在主机上安装或构建到镜像中的版本。主机级更新在运行器下次启动时生效。487每个会话的子 Claude Code 进程运行运行器自己的二进制文件,运行器在它生成的会话内关闭自动更新,所以每个会话运行您在主机上安装或构建到镜像中的版本。主机级更新在运行器下次启动时生效。

453 488 

489您的会话使用的模型可能需要比它们运行的 Claude Code 版本更新的版本。服务器随后会以 [Claude Code does not support this model](/docs/zh-CN/errors#claude-code-does-not-support-this-model) 拒绝对该模型的请求。在您固定版本之前,请检查[模型需要的 Claude Code 版本](/docs/zh-CN/model-config#available-models),以了解您的会话使用的每个模型。

490 

454* **将队列保持在一个版本上**:使用固定版本构建镜像,或在裸主机上安装特定版本并[禁用自动更新](/docs/zh-CN/setup#disable-auto-updates)491* **将队列保持在一个版本上**:使用固定版本构建镜像,或在裸主机上安装特定版本并[禁用自动更新](/docs/zh-CN/setup#disable-auto-updates)

455* **升级**:安装较新版本或重建镜像,然后重启运行器492* **升级**:安装较新版本或重建镜像,然后重启运行器

456* **插件**:插件市场也不自动更新;在运行器的环境中设置 `FORCE_AUTOUPDATE_PLUGINS=1` 以让插件自动更新,同时二进制保持固定493* **插件**:插件市场也不自动更新;在运行器的环境中设置 `FORCE_AUTOUPDATE_PLUGINS=1` 以让插件自动更新,同时二进制保持固定


554 591 

555每个会话的子进程写入单独的调试日志。失败时,运行器在 claude.ai/code 中将日志的尾部与会话一起显示。除非您使用 [`--remove-session-state`](/docs/zh-CN/self-hosted-environments-reference#runner-cli-flags) 启动了运行器,否则它也会在磁盘上保留失败会话的日志,并在运行器日志中打印其路径。592每个会话的子进程写入单独的调试日志。失败时,运行器在 claude.ai/code 中将日志的尾部与会话一起显示。除非您使用 [`--remove-session-state`](/docs/zh-CN/self-hosted-environments-reference#runner-cli-flags) 启动了运行器,否则它也会在磁盘上保留失败会话的日志,并在运行器日志中打印其路径。

556 593 

594<h3 id="when-the-runner-exits">

595 当运行器退出时

596</h3>

597 

598不要重新启动 [按需运行器](/docs/zh-CN/self-hosted-environments-configuration#on-demand-runners),因为其工作订单是一次性的。在启动后立即退出的运行器需要与因任何其他原因退出的运行器不同的处理方式。

599 

600* **正常退出**:运行器完成了其会话并耗尽,达到了其退休时间,或被告知停止。重新启动它以便环境再次具有容量。[运行器生命周期](/docs/zh-CN/self-hosted-environments#runner-lifecycle) 描述了这些退出。

601* **启动失败**:运行器无法使用给定的配置或主机启动,因此它在启动后几秒钟退出,并且每次重新启动时都以相同的方式退出。更快地重新启动它没有帮助。有人需要阅读其输出并修复原因。

602 

603配置您的监督程序在运行器退出时重新启动它,当运行器在启动后立即保持退出时等待更长时间,并在这种情况持续发生时告知某人。

604 

605<h4 id="recognize-a-failed-start">

606 识别启动失败

607</h4>

608 

609当运行器无法启动时,它会打印一行说明原因,然后退出。对于大多数原因,该行包含 `[runner:fatal]`。对于某些原因,该行以 `error:` 开头,包括当运行器无法解析其标志、无法读取环境密钥或无法创建或写入基础目录时。下一行然后指向 `--help`。

610 

611大多数日志行以时间戳和 `[self-hosted-runner]` 开头,下面的示例省略了这些。例如,使用 Anthropic git 代理和容量大于 1 启动的运行器会打印如下一行:

612 

613```text theme={null}

614[runner:fatal] --use-anthropic-git-proxy requires --capacity 1 (the proxy URL is per-session and linked worktrees share origin). Omit --use-anthropic-git-proxy or set --capacity 1.

615```

616 

617在运行器的标准输出和标准错误、您的平台的容器日志或您使用 [`--log-file`](/docs/zh-CN/self-hosted-environments-reference#runner-cli-flags) 设置的文件中查找该行。运行器在打开日志文件之前打印 `error:` 行,因此请在终端或您的容器日志中查找它,如 [故障排除](#troubleshooting) 所述。

618 

619当您阅读启动失败时,这些也有帮助:

620 

621* **根本没有行**:主机杀死的运行器不会打印任何内容。如果输出以没有 `[runner:fatal]` 行和没有 `error:` 行结束,请检查主机或您的编排器是否停止了该进程,例如因为超过了内存限制。

622* **退出代码**:运行器不会为在每次启动时重复的错误预留退出代码。它对配置错误(例如不支持的标志组合)和可以自行清除的失败(例如 API 通过运行器自己的重试保持不可达)退出相同的代码。根据运行器退出的速度快慢来决定是否等待更长时间,并阅读运行器的输出以了解原因。

623* **看起来健康的环境**:某些启动步骤在运行器向您的环境注册后运行,例如 [`--configure-git`](#let-the-runner-configure-git) 和 Anthropic git 代理的凭证设置。如果其中一个步骤失败,环境可以在该进程退出后的几分钟内继续列出该运行器,并且 **Cloud environments** 页面可以读取 **Healthy**,而没有运行器拾取工作。如果会话在看起来健康的环境中保持排队,请检查您的监督程序是否在重新启动运行器。

624 

625<h4 id="restart-with-a-wait-that-grows">

626 使用增长的等待时间重新启动

627</h4>

628 

629如何获得增长的等待时间取决于您的监督程序。

630 

631* **Kubernetes**:此页面上的 [Deployment](#kubernetes) 不需要更改。容器退出后,kubelet 默认在重新启动容器之前等待,并且等待时间在每次重新启动时增长到一个上限。一旦容器运行了一段时间而没有退出,等待就会重新开始。

632 

633 当容器仅运行很短时间时,kubelet 在正常退出后应用相同的等待。经常耗尽的运行器因此也可以显示 `CrashLoopBackOff` 状态,所以在得出运行器无法启动的结论之前请阅读输出。下面的命令从 Deployment 的一个 pod 读取最后一次运行的输出:

634 

635 ```bash theme={null}

636 kubectl logs --previous -n claude-runners deploy/claude-runner

637 ```

638 

639 当最后一次运行是启动失败时,`[runner:fatal]` 或 `error:` 行在输出的最后几行中。要读取另一个 pod 的最后一次运行,请在 `deploy/claude-runner` 的位置命名该 pod。

640* **Docker 和 Docker Compose**:此页面上的 [Compose recipe](#docker-compose) 不需要更改。使用 `restart: always`,Docker 在保持退出的容器的每次重新启动之前等待更长时间,直到一个上限。在下面的命令中用容器的名称替换 `<container>`,该命令读取 Docker 重新启动容器的次数:

641 

642 ```bash theme={null}

643 docker inspect --format '{{.RestartCount}}' <container>

644 ```

645 

646 该命令打印一个数字。不断增加的数字意味着 Docker 不断重新启动运行器。

647* **systemd 单元**:默认情况下,systemd 在每次重新启动之前等待相同的 `RestartSec`,并且不会延长它,因此具有 `Restart=always` 的单元以相同的间隔重新启动无法启动的运行器。当启动速度足够快以达到单元的启动速率限制(默认为 10 秒内 5 次启动)时,systemd 停止重新启动该单元。该单元保持停止状态,直到有人再次启动它,systemd 允许在速率限制的间隔已过或在 `systemctl reset-failed` 之后启动。因为 `RestartSec` 适用于每次重新启动,更长的值也会延迟正常退出后的重新启动。选择一个平衡两者的值,并对单元的重新启动计数进行警报。

648* **shell 循环或您自己的监督程序**:自己应用相同的规则。从 5 秒的等待开始。在每次在一分钟内结束的运行之后,将下一次重新启动的等待加倍,最多 5 分钟。在运行了一分钟或更长时间的运行之后,回到 5 秒。

649 

650<h4 id="check-why-the-runner-keeps-exiting">

651 检查运行器为什么保持退出

652</h4>

653 

654当运行器连续多次在启动后立即退出时,在再次重新启动之前停止并检查这些。

655 

656* **最后的 `[runner:fatal]` 或 `error:` 行**:它说明运行器停止的原因。[故障排除](#troubleshooting) 列出了常见原因。

657* **标志的组合**:[Anthropic git 代理](#use-the-anthropic-git-proxy) 需要 `--capacity 1`。此页面上的配方使用更高的容量,因此当您将代理添加到其中一个时降低它。

658* **服务的环境可以到达什么**:如果运行器手动启动并在您的监督程序下失败,请比较用户、主目录、`PATH` 和内存限制。`--configure-git` 和 Anthropic git 代理需要 `PATH` 上的 git 和可写的 `~/.gitconfig`。

659* **环境密钥**:如果您撤销了密钥或输入错误,运行器会打印一行包含 `RegisterRunner auth failed`。

660* **环境的 Activity 标签**:打开环境并选择 **Activity**。如果新运行器不断出现在那里,但没有拾取工作,您的监督程序正在重新启动运行器。

661 

662如需在运行器主机上进行引导式诊断,请运行 [doctor 子命令](#troubleshooting)。

663 

557<h2 id="what’s-next">664<h2 id="what’s-next">

558 接下来665 接下来

559</h2>666</h2>

Details

105 </Step>105 </Step>

106</Steps>106</Steps>

107 107 

108运行器在其活跃会话完成后按设计退出;请参阅[运行器生命周期](/docs/zh-CN/self-hosted-environments#runner-lifecycle)。对于生产,在编排器下部署它,该编排器在退出时重新启动它。请参阅[部署到生产环境](/docs/zh-CN/self-hosted-environments-deploy)。108运行器在其活跃会话完成后按设计退出;请参阅[运行器生命周期](/docs/zh-CN/self-hosted-environments#runner-lifecycle)。对于生产,在编排器下部署它,该编排器在退出时重新启动它,并在运行器启动后立即继续退出时等待更长的时间再重新启动。请参阅[部署到生产环境](/docs/zh-CN/self-hosted-environments-deploy)和[当运行器退出时](/docs/zh-CN/self-hosted-environments-deploy#when-the-runner-exits)。

109 109 

110<h2 id="send-a-follow-up-message-to-a-running-session">110<h2 id="send-a-follow-up-message-to-a-running-session">

111 向运行中的会话发送后续消息111 向运行中的会话发送后续消息

Details

80 SCM 连接器标志80 SCM 连接器标志

81</h3>81</h3>

82 82 

83编排器可以与 Anthropic 的控制平面保持一个常设 WebSocket 连接,以便托管的预会话流(例如存储库选择器和分支或 ref 解析器)可以到达仅从您的网络内部可路由的 GitHub Enterprise Server 主机。除非您设置 `--scm-connector-host`,否则连接器保持关闭。83SCM 连接器不可用,因此请将本部分中的标志保持未设置。如果您设置 `--scm-connector-host`,连接不会打开,编排器会继续重试。运行器仍然作为会话队列启动。

84 

85连接器是从编排器到 Anthropic 控制平面的常设 WebSocket 连接。它的设计目的是让托管的预会话流(例如存储库选择器和分支或 ref 解析器)能够到达仅从您的网络内部可路由的 GitHub Enterprise Server 主机。请参阅 GitHub Enterprise Server 页面上的[网络要求](/docs/zh-CN/github-enterprise-server#network-requirements),了解这些流需要什么。

84 86 

85| 标志 | 默认值 | 描述 |87| 标志 | 默认值 | 描述 |

86| :- | :- | :- |88| :- | :- | :- |

87| `--scm-connector-host <host[:port]>` | 未设置 | GitHub Enterprise Server 主机名以转发请求。端口默认为 `443`。设置此标志启用连接器。 |89| `--scm-connector-host <host[:port]>` | 未设置 | GitHub Enterprise Server 主机名以转发请求。端口默认为 `443`。 |

88| `--scm-connector-id <n>` | 与 `--scm-connector-host` 一起需要 | 您的组织的 GitHub Enterprise Server 连接的数字 ID。启用连接器时,请与您的 Anthropic 帐户团队联系以获取该值。 |90| `--scm-connector-id <n>` | 与 `--scm-connector-host` 一起需要 | 您的组织的 GitHub Enterprise Server 连接的数字 ID。 |

89| `--scm-connector-provider <slug>` | `ghe` | 标识提供程序的路径段,匹配 `^[a-z0-9-]{1,32}$`。 |91| `--scm-connector-provider <slug>` | `ghe` | 标识提供程序的路径段,匹配 `^[a-z0-9-]{1,32}$`。 |

90| `--scm-connector-ca-file <path>` | 未设置 | 额外的 CA 包,PEM 格式,用于到 GitHub Enterprise Server 主机的 TLS 连接。 |92| `--scm-connector-ca-file <path>` | 未设置 | 额外的 CA 包,PEM 格式,用于到 GitHub Enterprise Server 主机的 TLS 连接。 |

91| `--scm-connector-host-rewrite <from>=<to_host:to_port>` | 未设置 | 仅用于端到端测试:重定向 TCP 连接,同时将 Host 标头和 TLS SNI 保持为 `--scm-connector-host`。 |93| `--scm-connector-host-rewrite <from>=<to_host:to_port>` | 未设置 | 仅用于端到端测试:重定向 TCP 连接,同时将 Host 标头和 TLS SNI 保持为 `--scm-connector-host`。 |

92 94 

93连接器使用编排器的现有环境密钥进行身份验证并自动重新连接:在连接断开时使用指数退避,或当控制平面关闭连接因为另一个编排器副本已持有它时使用固定的 30 秒延迟。95在每次连接尝试时,编排器发送其现有的环境密钥,并使用指数退避自动重试,上限为 30 秒加抖动。

94 96 

95<h2 id="environment-variable-only-settings">97<h2 id="environment-variable-only-settings">

96 仅环境变量设置98 仅环境变量设置

Details

310* **无法显示对话框的交互式会话**:Claude Code 不应用传递的设置,保留最后批准的设置。对话框在下一个可以显示它的会话中出现。需要 Claude Code v2.1.211 或更高版本。310* **无法显示对话框的交互式会话**:Claude Code 不应用传递的设置,保留最后批准的设置。对话框在下一个可以显示它的会话中出现。需要 Claude Code v2.1.211 或更高版本。

311* **`claude install` 或 `claude update`**:Claude Code 在任何命令期间都不显示对话框。该命令使用最后批准的设置运行,对话框在您的下一个交互式会话中出现。如果 Claude Code 在启动时等待设置获取,例如设置了 [`forceRemoteSettingsRefresh`](#enforce-fail-closed-startup) 或在[Claude 应用网关](/docs/zh-CN/claude-apps-gateway)部署上,它会在命令期间显示对话框,从管道运行的安装失败;请参阅[安装期间 `Raw mode is not supported`](/docs/zh-CN/troubleshoot-install#raw-mode-is-not-supported-during-install)。在 v2.1.246 之前,Claude Code 也尝试在这些命令期间显示对话框。311* **`claude install` 或 `claude update`**:Claude Code 在任何命令期间都不显示对话框。该命令使用最后批准的设置运行,对话框在您的下一个交互式会话中出现。如果 Claude Code 在启动时等待设置获取,例如设置了 [`forceRemoteSettingsRefresh`](#enforce-fail-closed-startup) 或在[Claude 应用网关](/docs/zh-CN/claude-apps-gateway)部署上,它会在命令期间显示对话框,从管道运行的安装失败;请参阅[安装期间 `Raw mode is not supported`](/docs/zh-CN/troubleshoot-install#raw-mode-is-not-supported-during-install)。在 v2.1.246 之前,Claude Code 也尝试在这些命令期间显示对话框。

312* **错误在您回答前关闭对话框**:Claude Code 不应用传递的设置,保留最后批准的设置。它在下一个可以显示它的会话中再次显示对话框。312* **错误在您回答前关闭对话框**:Claude Code 不应用传递的设置,保留最后批准的设置。它在下一个可以显示它的会话中再次显示对话框。

313* **非交互式运行**,例如 `claude -p` 或 Agent SDK 会话:Claude Code 无法显示对话框,因此当传递的设置需要批准时,它仅为该运行应用它们。它不将它们记录为已批准或写入[本地缓存](#fetch-and-caching-behavior),下一个交互式会话会显示对话框。在用户在交互式会话中批准之前,每个非交互式运行都会在启动时再次获取设置。在 v2.1.207 之前,非交互式运行会将设置保存为已批准,因此后来的交互式会话永远不会为它们显示对话框。313* **非交互式运行**,例如 `claude -p`、Agent SDK 会话或 VS Code 扩展的聊天面板或桌面应用的代码选项卡中的会话:Claude Code 无法显示对话框,因此当传递的设置需要批准时,它仅为该运行应用它们。它不将它们记录为已批准或写入[本地缓存](#fetch-and-caching-behavior),下一个交互式会话会显示对话框。在用户在交互式会话中批准之前,每个非交互式运行都会在启动时再次获取设置。在 v2.1.207 之前,非交互式运行会将设置保存为已批准,因此后来的交互式会话永远不会为它们显示对话框。

314 314 

315<h4 id="environment-variables-and-the-approval-dialog">315<h4 id="environment-variables-and-the-approval-dialog">

316 环境变量和批准对话框316 环境变量和批准对话框

Details

595| [`agent`](#agent) | 将每个会话作为具有其提示、工具和模型的命名[子代理](/docs/zh-CN/sub-agents)启动 | 代理、会话和工作树 | Any file |595| [`agent`](#agent) | 将每个会话作为具有其提示、工具和模型的命名[子代理](/docs/zh-CN/sub-agents)启动 | 代理、会话和工作树 | Any file |

596| [`agentPushNotifEnabled`](#agentpushnotifenabled) | 让 Claude 在决定时向您的手机发送[推送通知](/docs/zh-CN/remote-control#mobile-push-notifications) | 远程、桌面和通知 | Any file |596| [`agentPushNotifEnabled`](#agentpushnotifenabled) | 让 Claude 在决定时向您的手机发送[推送通知](/docs/zh-CN/remote-control#mobile-push-notifications) | 远程、桌面和通知 | Any file |

597| [`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 |597| [`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 |

598| [`allowClaudeInChromeWithManagedMcp`](#allowclaudeinchromewithmanagedmcp) | 让内置的[Chrome 中的 Claude](/docs/zh-CN/chrome)服务器与部署的 [`managed-mcp.json`](/docs/zh-CN/managed-mcp#exclusive-control-with-managed-mcp-json) 一起运行 | MCP | Managed |

598| [`allowedChannelPlugins`](#allowedchannelplugins) | 替换可以推送消息的[频道插件](/docs/zh-CN/channels#restrict-which-channel-plugins-can-run)的默认允许列表 | 插件和技能 | Managed |599| [`allowedChannelPlugins`](#allowedchannelplugins) | 替换可以推送消息的[频道插件](/docs/zh-CN/channels#restrict-which-channel-plugins-can-run)的默认允许列表 | 插件和技能 | Managed |

599| [`allowedHttpHookUrls`](#allowedhttphookurls) | 限制[HTTP hooks](/docs/zh-CN/hooks)可以针对的 URL | Hooks 和自动化 | Any file |600| [`allowedHttpHookUrls`](#allowedhttphookurls) | 限制[HTTP hooks](/docs/zh-CN/hooks)可以针对的 URL | Hooks 和自动化 | Any file |

600| [`allowedMcpServers`](#allowedmcpservers) | 允许列表用户可以添加的[MCP 服务器](/docs/zh-CN/mcp) | MCP | Any file |601| [`allowedMcpServers`](#allowedmcpservers) | 允许列表用户可以添加的[MCP 服务器](/docs/zh-CN/mcp) | MCP | Any file |


1435 `allowManagedPermissionRulesOnly`1436 `allowManagedPermissionRulesOnly`

1436</h3>1437</h3>

1437 1438 

1438使托管设置成为权限规则的唯一设置源。Claude Code 随后会忽略用户、项目、本地和 `--settings` 文件中的 `allow`、`ask` 和 `deny` 规则,忽略 `--allowedTools`,隐藏权限提示中的始终允许选项,并停止保存新规则。1439使托管设置成为权限规则的唯一设置来源。Claude Code 随后会忽略用户、项目、本地和 `--settings` 文件中的 `allow`、`ask` 和 `deny` 规则,忽略 `--allowedTools`,隐藏权限提示中的始终允许选项,并停止保存新规则。

1439 1440 

1440当[来自嵌入主机的父设置](/docs/zh-CN/managed-settings#let-an-embedding-host-add-policy)适用时,Claude Code 将其视为托管层的一部分。它删除其 `allow` 规则和 `additionalDirectories`,并保留其 `deny` 和 `ask` 规则,除了 `Read` 和 `Edit` 规则,其模式以 `!` 开头。主机无法使用 `!` 规则从托管规则中切割出路径,无论您是否设置此键。1441当[来自嵌入主机的父设置](/docs/zh-CN/managed-settings#let-an-embedding-host-add-policy)适用时,Claude Code 将其视为托管层的一部分。它删除其 `allow` 规则和 `additionalDirectories`,并保留其 `deny` 和 `ask` 规则,除了模式以 `!` 开头的 `Read` 和 `Edit` 规则。无论您是否设置此键,主机都无法使用 `!` 规则从托管规则中排除路径。

1441 1442 

1442`--disallowedTools` 规则和当前会话的 `deny` 和 `ask` 规则仍然适用,包括在 Claude Code 在会话中途重新加载设置后。它们仅限制,因此无法扩展托管规则授予的权限。在 v2.1.257 之前,Claude Code 在第一次设置重新加载时删除了这些命令行和会话规则。1443`--disallowedTools` 规则以及当前会话的 `deny` 和 `ask` 规则仍然适用,包括在 Claude Code 在会话中途重新加载设置后。它们仅限制,因此无法扩展托管规则授予的权限。在 v2.1.257 之前,Claude Code 在第一次设置重新加载时删除了这些命令行和会话规则。

1443 1444 

1444有关 `!` 模式在 `--disallowedTools` 或会话规则中可以切割出什么,请参阅[Read 和 Edit 规则](/docs/zh-CN/permissions#read-and-edit)。1445有关 `--disallowedTools` 或会话规则中的 `!` 模式可以排除什么,请参阅 [Read 和 Edit 规则](/docs/zh-CN/permissions#read-and-edit)。

1445 1446 

1446* **作用域**: [`Managed`](#scopes)1447* **作用域**: [`Managed`](#scopes)

1447* **类型**: 布尔值1448* **类型**: 布尔值

1448 * `true`:托管设置成为权限规则的唯一设置源1449 * `true`: 托管设置成为权限规则的唯一设置来源

1449 * `false`:Claude Code 除了应用托管规则外,还应用来自用户、项目、本地和 `--settings` 文件的权限规则1450 * `false`: Claude Code 除了应用托管规则外,还应用来自用户、项目、本地和 `--settings` 文件的权限规则

1450* **默认值**: 未设置,因此 Claude Code 应用来自用户、项目和本地设置以及 `--settings` 的权限规则,以及托管规则1451* **默认值**: 未设置,因此 Claude Code 应用来自用户、项目和本地设置以及 `--settings` 的权限规则,以及托管规则

1451 1452 

1452```json managed-settings.json theme={null}1453```json managed-settings.json theme={null}


1461 `autoMode`1462 `autoMode`

1462</h3>1463</h3>

1463 1464 

1464向[自动模式](/docs/zh-CN/permission-modes#eliminate-prompts-with-auto-mode)分类器阻止和允许的内容添加您自己的规则。使用它告诉分类器您的组织信任哪些存储库、存储桶和域,以便它停止阻止常规内部操作。分类器附带[内置允许和拒绝规则](/docs/zh-CN/auto-mode-config#inspect-the-defaults-and-your-effective-config)。在数组中包含字面字符串 `"$defaults"` 以在该位置保留这些内置规则并在其周围添加您的规则;省略它以用您的规则替换它们。1465添加您自己的规则到[自动模式](/docs/zh-CN/permission-modes#eliminate-prompts-with-auto-mode)分类器阻止和允许的内容。使用它告诉分类器您的组织信任哪些仓库、存储桶和域,以便它停止阻止常规内部操作。分类器附带[内置允许和拒绝规则](/docs/zh-CN/auto-mode-config#inspect-the-defaults-and-your-effective-config)。在数组中包含字面字符串 `"$defaults"` 以在该位置保留这些内置规则并在其周围添加您的规则;省略它以用您的规则替换它们。

1465 1466 

1466* **作用域**: [`User or managed`](#scopes)1467* **作用域**: [`User or managed`](#scopes)

1467* **类型**: 包含 `environment`、`allow`、`soft_deny` 和 `hard_deny` 散文规则数组的对象,加上 [`classifyAllShell`](#automode-classifyallshell) 布尔值1468* **类型**: 包含 `environment`、`allow`、`soft_deny` 和 `hard_deny` 散文规则数组的对象,加上 [`classifyAllShell`](#automode-classifyallshell) 布尔值

1468* **默认值**: 未设置,因此分类器仅使用其[内置规则](/docs/zh-CN/auto-mode-config#inspect-the-defaults-and-your-effective-config)1469* **默认值**: 未设置,因此分类器仅使用其[内置规则](/docs/zh-CN/auto-mode-config#inspect-the-defaults-and-your-effective-config)

1469 1470 

1470此示例通过 `"$defaults"` 保留内置的 `soft_deny` 规则,并添加一个阻止 `terraform apply` 的规则:1471此示例保留内置的 `soft_deny` 规则(通过 `"$defaults"`),并添加一个阻止 `terraform apply` 的规则:

1471 1472 

1472```json settings.json theme={null}1473```json settings.json theme={null}

1473{1474{


1477}1478}

1478```1479```

1479 1480 

1480当这些文件中的多个文件设置相同的数组时,Claude Code 会连接这些条目。有关规则格式以及如何应用每个数组,请参阅[配置自动模式](/docs/zh-CN/auto-mode-config)。1481当多个文件设置相同的数组时,Claude Code 会连接这些条目。有关规则格式以及如何应用每个数组,请参阅[配置自动模式](/docs/zh-CN/auto-mode-config)。

1481 1482 

1482<h3 id="automode-classifyallshell">1483<h3 id="automode-classifyallshell">

1483 `autoMode.classifyAllShell`1484 `autoMode.classifyAllShell`

1484</h3>1485</h3>

1485 1486 

1486在自动模式处于活动状态时,通过自动模式分类器发送每个 Bash 和 PowerShell 命令。默认情况下,自动模式仅暂停可能运行任意代码的允许规则:工具范围和通配符规则(如 `Bash(*)`)以及解释器或 shell 包装器前缀(如 `Bash(python *)`)。任何其他允许规则匹配的命令(如 `Bash(npm test)`)会跳过分类器,除非它携带[每命令允许的域](/docs/zh-CN/sandboxing#per-command-allowed-domains-in-auto-mode)。当它跳过时,规则的前缀未预期的破坏性参数可能会被看不见地通过。设置此键会为会话暂停每个 shell 允许规则,以便分类器看到每个命令。需要 Claude Code v2.1.193 或更高版本。1487在自动模式处于活动状态时,将每个 Bash 和 PowerShell 命令通过自动模式分类器。默认情况下,自动模式仅暂停可以运行任意代码的允许规则:工具范围和通配符规则(如 `Bash(*)`)以及解释器或 shell 包装器前缀(如 `Bash(python *)`)。任何其他允许规则匹配的命令(如 `Bash(npm test)`)会跳过分类器,除非它携带[每个命令允许的域](/docs/zh-CN/sandboxing#per-command-allowed-domains-in-auto-mode)。当它跳过时,规则前缀未预期的破坏性参数可能会通过而不被看到。设置此键会为会话暂停每个 shell 允许规则,以便分类器看到每个命令。需要 Claude Code v2.1.193 或更高版本。

1487 1488 

1488* **作用域**: [`User or managed`](#scopes)。在读取 [`autoMode`](#automode) 的任何地方读取。1489* **作用域**: [`User or managed`](#scopes)。在读取 [`autoMode`](#automode) 的任何地方读取。

1489* **类型**: 布尔值1490* **类型**: 布尔值

1490 * `true`:在自动模式处于活动状态时,Claude Code 通过分类器发送每个 Bash 和 PowerShell 命令,并暂停您的 shell 允许规则;在自动模式之外,规则仍然适用1491 * `true`: 当自动模式处于活动状态时,Claude Code 将每个 Bash 和 PowerShell 命令通过分类器发送,并暂停您的 shell 允许规则;在自动模式之外,规则仍然适用

1491 * `false`:自动模式仅暂停可能运行任意代码的允许规则,如 `Bash(*)` 和 `Bash(python *)`;任何其他允许规则匹配的命令会跳过分类器,除非它携带[每命令允许的域](/docs/zh-CN/sandboxing#per-command-allowed-domains-in-auto-mode),每个其他 shell 命令都会通过它1492 * `false`: 自动模式仅暂停可以运行任意代码的允许规则,如 `Bash(*)` 和 `Bash(python *)`;任何其他允许规则匹配的命令会跳过分类器,除非它携带[每个命令允许的域](/docs/zh-CN/sandboxing#per-command-allowed-domains-in-auto-mode),每个其他 shell 命令都会通过它

1492* **默认值**: `false`1493* **默认值**: `false`

1493 1494 

1494```json settings.json theme={null}1495```json settings.json theme={null}


1499}1500}

1500```1501```

1501 1502 

1502请参阅[通过分类器路由所有 shell 命令](/docs/zh-CN/auto-mode-config#route-all-shell-commands-through-the-classifier)。需要 Claude Code v2.1.193 或更高版本。1503请参阅[将所有 shell 命令路由通过分类器](/docs/zh-CN/auto-mode-config#route-all-shell-commands-through-the-classifier)。需要 Claude Code v2.1.193 或更高版本。

1503 1504 

1504<h3 id="disableautomode">1505<h3 id="disableautomode">

1505 `disableAutoMode`1506 `disableAutoMode`

1506</h3>1507</h3>

1507 1508 

1508从 `Shift+Tab` 循环中删除[自动模式](/docs/zh-CN/permission-modes#eliminate-prompts-with-auto-mode)。任何本应[以自动模式启动](/docs/zh-CN/permission-modes#which-mode-a-session-starts-in)的会话,无论是来自 `--permission-mode auto`、设置文件还是内置默认值,都会改为以 `default` 启动。管理员在托管设置中设置它以防止其组织中的开发人员使用自动模式。1509从 `Shift+Tab` 循环中删除[自动模式](/docs/zh-CN/permission-modes#eliminate-prompts-with-auto-mode)。任何本应[以自动模式启动](/docs/zh-CN/permission-modes#which-mode-a-session-starts-in)的会话,无论是来自 `--permission-mode auto`、设置文件还是内置默认值,都改为以 `default` 启动。管理员在托管设置中设置它以防止其组织中的开发人员使用自动模式。

1509 1510 

1510* **作用域**: [`Any file`](#scopes)。在[托管设置](/docs/zh-CN/managed-settings)中最有用,用户无法覆盖它。也接受在 `permissions` 下作为 `permissions.disableAutoMode`。1511* **作用域**: [`Any file`](#scopes)。在[托管设置](/docs/zh-CN/managed-settings)中最有用,用户无法覆盖它。也接受在 `permissions` 下作为 `permissions.disableAutoMode`。

1511* **类型**: 字符串 `"disable"`1512* **类型**: 字符串 `"disable"`


1521 `permissions`1522 `permissions`

1522</h3>1523</h3>

1523 1524 

1524控制 Claude 可以在不询问的情况下使用哪些工具、哪些工具始终提示,以及哪些工具被阻止,并设置会话启动的[权限模式](/docs/zh-CN/permission-modes)。下面的每个 `permissions.*` 键都嵌套在此对象下。1525控制 Claude 在不询问的情况下可以使用哪些工具、哪些工具始终提示,以及哪些工具被阻止,并设置会话启动的[权限模式](/docs/zh-CN/permission-modes)。下面的每个 `permissions.*` 键都嵌套在此对象下。

1525 1526 

1526* **作用域**: [`Any file`](#scopes)1527* **作用域**: [`Any file`](#scopes)

1527* **类型**: 包含 `allow`、`ask`、`deny`、`additionalDirectories`、`blockReadsOutsideWorkingDirectories`、`defaultMode`、`disableBypassPermissionsMode` 和 `disableAutoMode` 的对象1528* **类型**: 包含 `allow`、`ask`、`deny`、`additionalDirectories`、`blockReadsOutsideWorkingDirectories`、`defaultMode`、`disableBypassPermissionsMode` 和 `disableAutoMode` 的对象

1528* **默认值**: 未设置1529* **默认值**: 未设置

1529 1530 

1530此示例在不询问的情况下批准 `npm run` 命令,在 `git push` 之前提示,阻止读取 `.env`,并在 `acceptEdits` 中启动会话:1531此示例批准 `npm run` 命令而不询问,在 `git push` 前提示,阻止读取 `.env`,并以 `acceptEdits` 启动会话:

1531 1532 

1532```json settings.json theme={null}1533```json settings.json theme={null}

1533{1534{


1540}1541}

1541```1542```

1542 1543 

1543这三个规则数组共享一个语法;请参阅 `permissions.allow` 下的[权限规则语法](#permission-rule-syntax)。有关来自不同文件的权限规则如何组合,请参阅[权限规则如何跨作用域合并](/docs/zh-CN/permissions#settings-precedence);有关设置键如何组合,请参阅设置指南上的[设置优先级](/docs/zh-CN/settings#settings-precedence)。1544三个规则数组共享一个语法;请参阅 `permissions.allow` 下的[权限规则语法](#permission-rule-syntax)。有关来自不同文件的权限规则如何组合,请参阅[权限规则如何跨作用域合并](/docs/zh-CN/permissions#settings-precedence);有关设置键如何组合,请参阅设置指南上的[设置优先级](/docs/zh-CN/settings#settings-precedence)。

1544 1545 

1545<h3 id="useautomodeduringplan">1546<h3 id="useautomodeduringplan">

1546 `useAutoModeDuringPlan`1547 `useAutoModeDuringPlan`

1547</h3>1548</h3>

1548 1549 

1549选择 Claude Code 是否使用自动模式分类器在计划模式下审查 shell 命令。使用默认值 `true`,分类器在规划期间审查每个命令,当自动模式可用且您看不到提示时,除了[关键路径移除](/docs/zh-CN/permission-modes#critical-paths)。设置 `false` 以获得内置只读集之外的每个命令的权限提示。在 `/config` 中显示为**在计划期间使用自动模式**。1550选择 Claude Code 是否使用自动模式分类器在计划模式下审查 shell 命令。使用默认值 `true`,当自动模式可用且您看不到提示时,分类器在规划期间审查每个命令,除了[关键路径删除](/docs/zh-CN/permission-modes#critical-paths)。设置 `false` 以获得对内置只读集之外的每个命令的权限提示。在 `/config` 中显示为**在计划期间使用自动模式**。

1550 1551 

1551* **作用域**: [`User, local, or managed`](#scopes)。存储库无法为您关闭它。1552* **作用域**: [`User, local, or managed`](#scopes)。存储库无法为您关闭它。

1552* **类型**: 布尔值1553* **类型**: 布尔值

1553 * `true`:与未设置相同;当自动模式可用时,分类器在规划期间审查每个 shell 命令,而不是提示您,除了[关键路径移除](/docs/zh-CN/permission-modes#critical-paths)。任何这些文件中的 `false` 仍然会关闭它1554 * `true`: 与未设置相同;当自动模式可用时,分类器在规划期间审查每个 shell 命令而不是提示您,除了[关键路径删除](/docs/zh-CN/permission-modes#critical-paths)。这些文件中的任何 `false` 仍然会关闭它

1554 * `false`:您会获得内置只读集之外的每个命令的权限提示1555 * `false`: 您会获得对内置只读集之外的每个命令的权限提示

1555* **默认值**: `true`1556* **默认值**: `true`

1556 1557 

1557```json settings.json theme={null}1558```json settings.json theme={null}


1569* **作用域**: [`Any file`](#scopes)1570* **作用域**: [`Any file`](#scopes)

1570* **类型**: 权限规则字符串数组1571* **类型**: 权限规则字符串数组

1571* **默认值**: 未设置1572* **默认值**: 未设置

1572* **每会话覆盖**: `--allowedTools` 为一个会话添加允许规则,来自任何设置文件的拒绝规则仍然会阻止它命名的工具1573* **每个会话覆盖**: `--allowedTools` 为一个会话添加允许规则,来自任何设置文件的拒绝规则仍然会阻止它命名的工具

1573 1574 

1574此示例批准 `git diff` 并让 Claude Code 读取您的 `.zshrc` 而不询问:1575此示例批准 `git diff` 并让 Claude Code 读取您的 `.zshrc` 而不询问:

1575 1576 


1587 权限规则语法1588 权限规则语法

1588</h4>1589</h4>

1589 1590 

1590权限规则遵循格式 `Tool` 或 `Tool(specifier)`。Claude Code 首先评估 `deny` 规则,然后是 `ask`,然后是 `allow`,第一个匹配决定,无论每个规则有多具体;请参阅[权限规则评估顺序](/docs/zh-CN/permissions#manage-permissions)。1591权限规则遵循格式 `Tool` 或 `Tool(specifier)`。Claude Code 首先评估 `deny` 规则,然后是 `ask`,然后是 `allow`,第一个匹配决定,无论每个规则的具体程度如何;请参阅[权限规则评估顺序](/docs/zh-CN/permissions#manage-permissions)。

1591 1592 

1592每行显示一个规则形状及其匹配的内容。1593每行显示一个规则形状及其匹配的内容。

1593 1594 

1594| 规则 | 它匹配的内容 |1595| 规则 | 匹配的内容 |

1595| :- | :- |1596| :- | :- |

1596| `Bash` | 每个 Bash 命令 |1597| `Bash` | 每个 Bash 命令 |

1597| `Bash(npm run *)` | 以 `npm run` 开头的命令 |1598| `Bash(npm run *)` | 以 `npm run` 开头的命令 |


1604 `permissions.ask`1605 `permissions.ask`

1605</h3>1606</h3>

1606 1607 

1607列出即使在会否则批准它们的权限模式(如 `acceptEdits` 或 `bypassPermissions`)中也会提示您确认的工具使用。在 `dontAsk` 模式中,Claude Code 拒绝匹配的工具使用,而不是提示。1608列出提示您确认的工具使用,即使在本应批准它们的权限模式中,如 `acceptEdits` 或 `bypassPermissions`。在 `dontAsk` 模式中,Claude Code 拒绝匹配的工具使用而不是提示。

1608 1609 

1609* **作用域**: [`Any file`](#scopes)1610* **作用域**: [`Any file`](#scopes)

1610* **类型**: 权限规则字符串数组1611* **类型**: 权限规则字符串数组


1624 `permissions.deny`1625 `permissions.deny`

1625</h3>1626</h3>

1626 1627 

1627列出 Claude Code 阻止的工具使用。将其用于保存 API 密钥、机密或环境值的文件:Claude Code 从文件发现和搜索结果中排除匹配的文件,拒绝读取它们,并在匹配的路径上阻止[编辑和写入工具](/docs/zh-CN/permissions#read-and-edit)。读取和编辑拒绝规则适用于 Claude 的内置文件工具、Claude Code 在 Bash 中识别的文件命令(如 `cat`、`head`、`tail`、`sed` 和 `tee`)以及 Bash[重定向](/docs/zh-CN/permissions#redirections)的目标(如 `> file` 和 `< file`);它们不适用于读取文件而不命名它们的命令(如 `grep -r pattern .`)或任意子进程,因此对于操作系统级别的强制执行,请[启用沙箱](/docs/zh-CN/sandboxing)。1628列出 Claude Code 阻止的工具使用。将其用于保存 API 密钥、机密或环境值的文件:Claude Code 从文件发现和搜索结果中排除匹配的文件,拒绝读取它们,并在匹配的路径上阻止 [Edit 和 Write 工具](/docs/zh-CN/permissions#read-and-edit)。

1629 

1630Read 和 Edit 拒绝规则适用于 Claude 的内置文件工具、Claude Code 在 Bash 中识别的文件命令(如 `cat`、`head`、`tail`、`sed` 和 `tee`)以及 Bash [重定向](/docs/zh-CN/permissions#redirections)的目标(如 `> file` 和 `< file`);它们不适用于读取文件而不命名它们的命令(如 `grep -r pattern .`)或任意子进程,因此对于操作系统级别的强制执行,请[启用沙箱](/docs/zh-CN/sandboxing)。

1628 1631 

1629* **作用域**: [`Any file`](#scopes)1632* **作用域**: [`Any file`](#scopes)

1630* **类型**: 权限规则字符串数组1633* **类型**: 权限规则字符串数组

1631* **默认值**: 未设置1634* **默认值**: 未设置

1632* **每会话覆盖**: `--disallowedTools` 为一个会话添加拒绝规则,与此键一起1635* **每个会话覆盖**: `--disallowedTools` 为一个会话添加拒绝规则,与此键一起

1633 1636 

1634此示例拒绝读取 `.env` 文件、`secrets` 目录和凭据文件,并阻止 `curl` 命令:1637此示例拒绝读取 `.env` 文件、`secrets` 目录和凭证文件,并阻止 `curl` 命令:

1635 1638 

1636```json settings.json theme={null}1639```json settings.json theme={null}

1637{1640{


1647}1650}

1648```1651```

1649 1652 

1650工具名称接受 glob 模式,因此 `"*"` 拒绝每个工具,`"mcp__*"` 拒绝每个 MCP 工具。只要任何其他工具仍然可用于 Claude,Claude Code 就会忽略 [`EndConversation`](/docs/zh-CN/tools-reference#endconversation-tool-behavior) 工具的拒绝规则。`Bash` 拒绝规则匹配 Claude 编写的命令,因此 `Bash(curl *)` 不会停止 `/usr/bin/curl` 或 `sh -c 'curl …'`;请参阅[Bash 规则不匹配的内容](/docs/zh-CN/permissions#bash-rule-limits)。此键替换已弃用的 `ignorePatterns` 配置。1653工具名称接受 glob 模式,因此 `"*"` 拒绝每个工具,`"mcp__*"` 拒绝每个 MCP 工具。只要任何其他工具仍然可用于 Claude,Claude Code 就会忽略 [`EndConversation`](/docs/zh-CN/tools-reference#endconversation-tool-behavior) 工具的拒绝规则。`Bash` 拒绝规则与 Claude 编写的命令匹配,因此 `Bash(curl *)` 不会停止 `/usr/bin/curl` 或 `sh -c 'curl …'`;请参阅 [Bash 规则不匹配的内容](/docs/zh-CN/permissions#bash-rule-limits)。此键替换已弃用的 `ignorePatterns` 配置。

1651 1654 

1652<h3 id="permissions-additionaldirectories">1655<h3 id="permissions-additionaldirectories">

1653 `permissions.additionalDirectories`1656 `permissions.additionalDirectories`

1654</h3>1657</h3>

1655 1658 

1656给予 Claude 对您启动的目录之外的目录的文件访问权限,作为额外的[工作目录](/docs/zh-CN/permissions#working-directories)。大多数 `.claude/` 配置[未从这些目录发现](/docs/zh-CN/permissions#additional-directories-grant-file-access-not-configuration)。1659给予 Claude 对您启动的目录之外的目录的文件访问权限,作为额外的[工作目录](/docs/zh-CN/permissions#working-directories)。大多数 `.claude/` 配置[不会从这些目录中发现](/docs/zh-CN/permissions#additional-directories-grant-file-access-not-configuration)。

1657 1660 

1658* **作用域**: [`Any file`](#scopes)1661* **作用域**: [`Any file`](#scopes)

1659* **类型**: 目录路径数组1662* **类型**: 目录路径数组

1660* **默认值**: 未设置1663* **默认值**: 未设置

1661* **每会话覆盖**: `--add-dir` 和 `/add-dir` 为一个会话添加目录,与此键一起1664* **每个会话覆盖**: `--add-dir` 和 `/add-dir` 为一个会话添加目录,与此键一起

1662 1665 

1663```json settings.json theme={null}1666```json settings.json theme={null}

1664{1667{


1674 `permissions.blockReadsOutsideWorkingDirectories`1677 `permissions.blockReadsOutsideWorkingDirectories`

1675</h3>1678</h3>

1676 1679 

1677在每个权限模式(包括 `bypassPermissions`)中,使 Claude 的文件工具拒绝在您的[工作目录](/docs/zh-CN/permissions#working-directories)之外的读取。Claude Code 拒绝这些路径上的 `Read`、`Grep`、`Glob` 和 `LSP` 调用,并告诉 Claude 要求您使用 `/add-dir` 添加目录。Claude Code 本身需要的文件保持可读,如您的技能、插件、规则、代理、命令以及 `~/.claude/` 下的 `CLAUDE.md` 内存文件。需要 Claude Code v2.1.257 或更高版本。1680使 Claude 的文件工具在每种权限模式下拒绝在[工作目录](/docs/zh-CN/permissions#working-directories)之外的读取,包括 `bypassPermissions`。Claude Code 拒绝这些路径上的 `Read`、`Grep`、`Glob` 和 `LSP` 调用,并告诉 Claude 要求您使用 `/add-dir` 添加目录。Claude Code 本身需要的文件保持可读,如您的技能、插件、规则、代理、命令以及 `~/.claude/` 下的 `CLAUDE.md` 内存文件。需要 Claude Code v2.1.257 或更高版本。

1678 1681 

1679Claude Code 不会以相同的方式拒绝 shell 命令:1682Claude Code 不以相同方式拒绝 shell 命令:

1680 1683 

1681* [没有模式自动批准的操作](/docs/zh-CN/permission-modes#actions-no-mode-auto-approves)涵盖了读取此类路径的 shell 命令何时提示您1684* [没有模式自动批准的操作](/docs/zh-CN/permission-modes#actions-no-mode-auto-approves)涵盖读取此类路径的 shell 命令何时提示您

1682* [块下的沙箱命令](#sandboxed-commands-under-the-block)涵盖了沙箱命令可以读取的内容1685* [块下的沙箱命令](#sandboxed-commands-under-the-block)涵盖沙箱命令可以读取的内容

1683 1686 

1684shell 解析器无法追踪的 Bash 命令(如多次更改目录或运行子 shell 的命令)会在自动模式和 `bypassPermissions` 模式中提示您。即使命令未命名工作目录之外的任何路径,提示也会出现。当命令在[沙箱](/docs/zh-CN/sandboxing)中运行且沙箱强制执行该块时,此提示不适用。1687shell 解析器无法追踪的 Bash 命令(如更改目录多次或运行子 shell 的命令)即使在自动模式和 `bypassPermissions` 模式下也会提示您。即使命令未命名工作目录之外的任何路径,提示也会出现。当命令在[沙箱](/docs/zh-CN/sandboxing)中运行且沙箱强制执行块时,此提示不适用。

1685 1688 

1686Claude Code 也会在此处写入 `true`,当您选择在[自动模式的提示中阻止此类读取(在第一次读取工作目录之外之前)](/docs/zh-CN/permission-modes#first-read-outside-the-working-directories)时。1689Claude Code 还在您选择在[自动模式的提示中阻止此类读取(在第一次在工作目录之外读取之前)](/docs/zh-CN/permission-modes#first-read-outside-the-working-directories)时在此处写入 `true`。

1687 1690 

1688* **作用域**: [`Any file`](#scopes)。任何文件中的 `true` 都会应用,因此存储库可以为自己打开该块,但无法解除您设置的块。1691* **作用域**: [`Any file`](#scopes)。任何文件中的 `true` 都适用,因此存储库可以为自己打开块,但无法解除您的块。

1689* **类型**: 布尔值1692* **类型**: 布尔值

1690 * `true`:Claude 的文件工具拒绝在工作目录之外的读取1693 * `true`: Claude 的文件工具拒绝在工作目录之外的读取

1691 * `false`:与未设置相同;另一个文件中的块仍然适用如果它设置 `true`1694 * `false`: 与未设置相同;如果另一个文件设置 `true`,块仍然适用

1692* **默认值**: 未设置,因此工作目录之外的读取遵循您的[权限模式](/docs/zh-CN/permission-modes)1695* **默认值**: 未设置,因此在工作目录之外的读取遵循您的[权限模式](/docs/zh-CN/permission-modes)

1693 1696 

1694```json settings.json theme={null}1697```json settings.json theme={null}

1695{1698{


1699}1702}

1700```1703```

1701 1704 

1702您使用 `--add-dir`、`/add-dir` 或用户或托管设置中的 `additionalDirectories` 添加的目录计为该块的工作目录。仅在存储库设置中添加的目录不计:那些在 `.claude/settings.json` 中的,以及在 `.claude/settings.local.json` 中的,除非 git 报告该文件为未跟踪。在不是 git 存储库的目录中,或当 git 跟踪该文件时,Claude Code 将 `.claude/settings.local.json` 视为存储库设置,因此改为在用户设置中放置您想保持可读的目录。1705您使用 `--add-dir`、`/add-dir` 或用户或托管设置中的 `additionalDirectories` 添加的目录计为块的工作目录。仅在存储库设置中添加的目录不计:`.claude/settings.json` 中的目录,以及 `.claude/settings.local.json` 中的目录,除非 git 报告该文件为未跟踪。在不是 git 存储库的目录中,或当 git 跟踪该文件时,Claude Code 将 `.claude/settings.local.json` 视为存储库设置,因此将您想要保持可读的目录放在用户设置中。

1703 1706 

1704当 [`autoMemoryDirectory`](#automemorydirectory) 来自项目的 `.claude/settings.json`,或来自被[视为存储库提供的](/docs/zh-CN/permissions#when-your-local-settings-file-needs-trust) `.claude/settings.local.json` 时,Claude Code 不会从该目录加载任何[自动内存](/docs/zh-CN/memory#storage-location),也不会保存任何到其中。1707当 [`autoMemoryDirectory`](#automemorydirectory) 来自项目的 `.claude/settings.json` 或来自[视为存储库提供的](/docs/zh-CN/permissions#when-your-local-settings-file-needs-trust) `.claude/settings.local.json` 时,Claude Code 不会从该目录加载任何[自动内存](/docs/zh-CN/memory#storage-location),也不会将任何保存到它。

1705 1708 

1706要解除该块,从设置它的每个设置文件中删除该键,然后启动新会话。1709要解除块,从设置它的每个设置文件中删除该键,然后启动新会话。

1707 1710 

1708<h4 id="sandboxed-commands-under-the-block">1711<h4 id="sandboxed-commands-under-the-block">

1709 块下的沙箱命令1712 块下的沙箱命令

1710</h4>1713</h4>

1711 1714 

1712当[沙箱](/docs/zh-CN/sandboxing)打开时,该块也涵盖沙箱命令。Claude Code 拒绝它们对您的主目录和保存用户文件的其他根的读取访问:`/Users`、`/home`、`/root`、`/Volumes`、`/mnt`、`/media`、`/run/media` 和 `/srv`。然后它重新打开工作目录、[worktrees](/docs/zh-CN/worktrees) Claude Code 在会话中创建的、会话临时目录以及 `~/.claude` 的命令需要的部分,如技能和插件。当该块生效时,来自存储库设置的 `allowRead` 和 `allowWrite` 条目不计。1715当[沙箱](/docs/zh-CN/sandboxing)打开时,块也涵盖沙箱命令。Claude Code 拒绝它们对您的主目录和保存用户文件的其他根的读取访问:`/Users`、`/home`、`/root`、`/Volumes`、`/mnt`、`/media`、`/run/media` 和 `/srv`。然后它重新打开工作目录、[Claude Code 在会话中创建的 worktrees](/docs/zh-CN/worktrees)、会话临时目录以及命令需要的 `~/.claude` 部分,如技能和插件。当块生效时,来自存储库设置的 `allowRead` 和 `allowWrite` 条目不计。

1713 1716 

1714当会话的工作目录是链接的 [git worktree](/docs/zh-CN/worktrees)(包括 Claude Code 在会话中途进入的)时,存储库的公共 `.git` 目录对沙箱命令保持可读和可写,因此 git 在那里继续工作。1717当会话的工作目录是链接的 [git worktree](/docs/zh-CN/worktrees)(包括 Claude Code 在会话中途进入的)时,存储库的公共 `.git` 目录对沙箱命令保持可读和可写,因此 git 在那里保持工作。

1715 1718 

1716在这些情况下,该块不会到达沙箱命令,而 Claude 的文件工具继续强制执行它:1719在这些情况下,块不会到达沙箱命令,而 Claude 的文件工具继续强制执行它:

1717 1720 

1718* 文件系统隔离通过 [`sandbox.filesystem.disabled`](#sandbox-filesystem-disabled) 关闭1721* 文件系统隔离通过 [`sandbox.filesystem.disabled`](#sandbox-filesystem-disabled) 关闭

1719* [`allowManagedReadPathsOnly`](#sandbox-filesystem-allowmanagedreadpathsonly) 已设置1722* [`allowManagedReadPathsOnly`](#sandbox-filesystem-allowmanagedreadpathsonly) 已设置

1720* 您启动 Claude Code 的目录的路径包含 glob 字符,如 `*`、`?` 或 `[`1723* 您启动 Claude Code 的目录的路径包含 glob 字符,如 `*`、`?` 或 `[`

1721 1724 

1722在该块下,Claude Code 重新打开您的全局 git 配置文件到沙箱命令,以便 `git` 保持您的身份和设置:1725在块下,Claude Code 重新打开您的全局 git 配置文件到沙箱命令,以便 `git` 保持您的身份和设置:

1723 1726 

1724* `~/.gitconfig`1727* `~/.gitconfig`

1725* `$XDG_CONFIG_HOME/git` 下的 `config`、`ignore` 和 `attributes` 文件,默认为 `~/.config/git`1728* `$XDG_CONFIG_HOME/git` 下的 `config`、`ignore` 和 `attributes` 文件,默认为 `~/.config/git`

1726* 您的全局 git 配置通过 `[include]`、`[includeIf]`、`core.excludesFile` 或 `core.attributesFile` 命名的文件1729* 您的全局 git 配置通过 `[include]`、`[includeIf]`、`core.excludesFile` 或 `core.attributesFile` 命名的文件

1727 1730 

1728Claude Code 单独判断每个文件。当文件位于沙箱命令可以写入的地方(直接或通过符号链接)时,Claude Code 不会重新打开它命名的文件。1731Claude Code 单独判断每个文件。当文件位于沙箱命令可以直接或通过符号链接写入的位置时,Claude Code 不会重新打开它命名的文件。

1729 1732 

1730在 Linux 和 WSL2 上,作为符号链接的配置文件可以在其自己的路径处保持不可读,然后 `git` 在没有它的情况下运行。`~/.git-credentials` 和 `$XDG_CONFIG_HOME/git/credentials` 保持被阻止。1733在 Linux 和 WSL2 上,作为符号链接的配置文件可以在其自己的路径处保持不可读,然后 `git` 在没有它的情况下运行。`~/.git-credentials` 和 `$XDG_CONFIG_HOME/git/credentials` 保持被阻止。

1731 1734 

1732如果重新打开的文件保存机密,如 `http.extraHeader` 令牌,将其路径添加到 [`sandbox.filesystem.denyRead`](#sandbox-filesystem-denyread)。覆盖此重新打开的 `denyRead` 条目始终优先。1735如果重新打开的文件保存机密,如 `http.extraHeader` 令牌,请将其路径添加到 [`sandbox.filesystem.denyRead`](#sandbox-filesystem-denyread)。覆盖此重新打开的 `denyRead` 条目始终优先。

1733 1736 

1734<h3 id="permissions-defaultmode">1737<h3 id="permissions-defaultmode">

1735 `permissions.defaultMode`1738 `permissions.defaultMode`

1736</h3>1739</h3>

1737 1740 

1738设置新会话启动的[权限模式](/docs/zh-CN/permission-modes)。当您将其留空时,会话会以您的表面的[内置默认值](/docs/zh-CN/permission-modes#which-mode-a-session-starts-in)启动。1741设置新会话启动的[权限模式](/docs/zh-CN/permission-modes)。当您将其留空时,会话以您的表面的[内置默认值](/docs/zh-CN/permission-modes#which-mode-a-session-starts-in)启动。

1739 1742 

1740* **作用域**: [`Any file`](#scopes)。`auto` 和 `bypassPermissions` 不会从项目或本地设置生效,因此改为在 `~/.claude/settings.json` 中设置它们。在 v2.1.257 之前,`bypassPermissions` 从任何文件生效。对于 VS Code 扩展启动的对话,Claude Code 仅读取用户、托管和 `--settings` 值。1743* **作用域**: [`Any file`](#scopes)。`auto` 和 `bypassPermissions` 不会从项目或本地设置生效,因此改为在 `~/.claude/settings.json` 中设置它们。在 v2.1.257 之前,`bypassPermissions` 从任何文件生效。对于 VS Code 扩展启动的对话,Claude Code 仅读取用户、托管和 `--settings` 值。

1741* **类型**: 字符串,以下之一:1744* **类型**: 字符串,以下之一:

1742 * `"default"`:Claude Code 仅在不询问的情况下运行读取1745 * `"default"`: Claude Code 仅运行读取而不询问

1743 * `"acceptEdits"`:Claude Code 也在不询问的情况下运行文件编辑和常见文件系统命令(如 `mkdir` 和 `mv`)1746 * `"acceptEdits"`: Claude Code 还运行文件编辑和常见文件系统命令(如 `mkdir` 和 `mv`)而不询问

1744 * `"plan"`:Claude Code 读取和规划,但阻止编辑直到您批准计划1747 * `"plan"`: Claude Code 读取和规划但阻止编辑直到您批准计划

1745 * `"auto"`:Claude Code 运行所有内容,具有后台安全检查1748 * `"auto"`: Claude Code 运行而不进行常规提示;在 shell 命令和网络请求等操作运行之前,后台分类器检查它们是否与您的请求一致

1746 * `"dontAsk"`:Claude Code 自动拒绝每个会否则提示的调用;读取、不需要批准的其他操作以及预批准的工具仍然运行1749 * `"dontAsk"`: Claude Code 自动拒绝每个本应提示的调用;读取、不需要批准的其他操作以及预批准的工具仍然运行

1747 * `"bypassPermissions"`:Claude Code 在不询问的情况下运行所有内容1750 * `"bypassPermissions"`: Claude Code 运行所有内容而不询问

1748 * `"manual"`:`"default"` 的别名,在 Claude Code v2.1.200 或更高版本中1751 * `"manual"`: `"default"` 的别名,在 Claude Code v2.1.200 或更高版本中

1749* **默认值**: 未设置1752* **默认值**: 未设置

1750* **每会话覆盖**: `--permission-mode` 及其 `bypassPermissions` 的等效项 `--dangerously-skip-permissions` 对一个会话优先于此键1753* **每个会话覆盖**: `--permission-mode` 及其 `bypassPermissions` 的等效 `--dangerously-skip-permissions` 对一个会话优先于此键

1751 1754 

1752```json settings.json theme={null}1755```json settings.json theme={null}

1753{1756{


1757}1760}

1758```1761```

1759 1762 

1760权限规则分层在每个模式之上:`deny` 规则在每个模式中阻止,包括 `bypassPermissions`。请参阅[权限模式](/docs/zh-CN/permission-modes)。`manual` 命名 CLI 和 VS Code 扩展中标记为"手动"的权限模式;别名需要 Claude Code v2.1.200 或更高版本。在云会话中,Claude Code 仅从此键中遵守 `acceptEdits`、`plan`、`default` 和 `auto`。对于 VS Code 扩展启动的对话,请参阅[扩展为启动权限模式读取的设置](/docs/zh-CN/permission-modes#switch-permission-modes)。1763权限规则分层在每种模式之上:`deny` 规则在每种模式中阻止,包括 `bypassPermissions`。请参阅[权限模式](/docs/zh-CN/permission-modes)。`manual` 命名 CLI 和 VS Code 扩展中标记为 Manual 的权限模式;别名需要 Claude Code v2.1.200 或更高版本。在云会话中,Claude Code 仅从此键中遵守 `acceptEdits`、`plan`、`default` 和 `auto`。对于 VS Code 扩展启动的对话,请参阅[扩展为启动权限模式读取的设置](/docs/zh-CN/permission-modes#switch-permission-modes)。

1761 1764 

1762<h3 id="permissions-disablebypasspermissionsmode">1765<h3 id="permissions-disablebypasspermissionsmode">

1763 `permissions.disableBypassPermissionsMode`1766 `permissions.disableBypassPermissionsMode`

1764</h3>1767</h3>

1765 1768 

1766防止任何人进入 `bypassPermissions` 模式。Claude Code 随后会拒绝 `--dangerously-skip-permissions` 标志,并忽略[代理定义的](/docs/zh-CN/sub-agents#permission-modes) `permissionMode: bypassPermissions`,因此子代理使用父会话的权限模式运行。1769防止任何人进入 `bypassPermissions` 模式。Claude Code 随后拒绝 `--dangerously-skip-permissions` 标志,并忽略[代理定义的](/docs/zh-CN/sub-agents#permission-modes) `permissionMode: bypassPermissions`,因此子代理以父会话的权限模式运行。

1767 1770 

1768* **作用域**: [`Any file`](#scopes)。通常在[托管设置](/docs/zh-CN/managed-settings)中设置以强制执行组织政策。1771* **作用域**: [`Any file`](#scopes)。通常在[托管设置](/docs/zh-CN/managed-settings)中设置以强制执行组织政策。

1769* **类型**: 字符串 `"disable"`1772* **类型**: 字符串 `"disable"`

1770* **默认值**: 未设置1773* **默认值**: 未设置

1771* **每会话覆盖**: 此键优先于 `--dangerously-skip-permissions`,在设置此键时 Claude Code 会拒绝它1774* **每个会话覆盖**: 此键优先于 `--dangerously-skip-permissions`,在设置此键时 Claude Code 拒绝

1772 1775 

1773```json settings.json theme={null}1776```json settings.json theme={null}

1774{1777{


1778}1781}

1779```1782```

1780 1783 

1781在 v2.1.223 之前,即使禁用绕过,Claude Code 也应用了 frontmatter 权限模式。1784在 v2.1.223 之前,Claude Code 即使禁用绕过也应用了 frontmatter 权限模式。

1782 1785 

1783<h3 id="skipautopermissionprompt">1786<h3 id="skipautopermissionprompt">

1784 `skipAutoPermissionPrompt`1787 `skipAutoPermissionPrompt`


1788 1791 

1789* **作用域**: [`User or managed`](#scopes)。存储库无法为您设置它。1792* **作用域**: [`User or managed`](#scopes)。存储库无法为您设置它。

1790* **类型**: 布尔值1793* **类型**: 布尔值

1791 * `true`:Claude Code 跳过通知1794 * `true`: Claude Code 跳过通知

1792 * `false`:与未设置相同;除非这些文件中的另一个设置 `true`,否则通知出现一次1795 * `false`: 与未设置相同;通知出现一次,除非这些文件中的另一个设置 `true`

1793* **默认值**: 未设置,因此通知出现一次1796* **默认值**: 未设置,因此通知出现一次

1794 1797 

1795```json settings.json theme={null}1798```json settings.json theme={null}


1806 1809 

1807* **作用域**: [`User, local, or managed`](#scopes)。不受信任的存储库无法为您跳过对话框。1810* **作用域**: [`User, local, or managed`](#scopes)。不受信任的存储库无法为您跳过对话框。

1808* **类型**: 布尔值1811* **类型**: 布尔值

1809 * `true`:Claude Code 跳过会话进入 `bypassPermissions` 模式之前的确认对话框1812 * `true`: Claude Code 跳过会话进入 `bypassPermissions` 模式之前的确认对话框

1810 * `false`:与未设置相同;除非这些文件中的另一个设置 `true`,否则对话框出现1813 * `false`: 与未设置相同;对话框出现,除非这些文件中的另一个设置 `true`

1811* **默认值**: 未设置,因此对话框出现1814* **默认值**: 未设置,因此对话框出现

1812 1815 

1813```json settings.json theme={null}1816```json settings.json theme={null}


3062</h4>3065</h4>

3063 3066 

3064* 此处的值覆盖在您的 shell 中导出的相同变量,当多个设置文件设置一个变量时,[最高优先级](/docs/zh-CN/settings#settings-precedence)的值适用。[Claude Code 在 `env` 中忽略的变量](#variables-claude-code-ignores-in-env)列出了项目和本地设置的例外。3067* 此处的值覆盖在您的 shell 中导出的相同变量,当多个设置文件设置一个变量时,[最高优先级](/docs/zh-CN/settings#settings-precedence)的值适用。[Claude Code 在 `env` 中忽略的变量](#variables-claude-code-ignores-in-env)列出了项目和本地设置的例外。

3068* 当 Claude Desktop 应用或[自托管环境](/docs/zh-CN/self-hosted-environments)运行器启动会话时,它构建的启动环境优先:Claude Code 忽略任何设置文件中的 `env` 值,用于启动环境已经设置的变量。[调试日志](/docs/zh-CN/debug-your-config)命名每个被忽略的变量。

3065* 要取消 shell 导出,将变量设置为 `""`。Claude Code 将空值视为提供程序选择的未设置,子进程继承空值。3069* 要取消 shell 导出,将变量设置为 `""`。Claude Code 将空值视为提供程序选择的未设置,子进程继承空值。

3066* `NO_COLOR` 和 `FORCE_COLOR` 在此处设置仅到达子进程。要更改 Claude Code 自己的界面颜色,请在启动 `claude` 之前在您的 shell 中设置它们。3070* `NO_COLOR` 和 `FORCE_COLOR` 在此处设置仅到达子进程。要更改 Claude Code 自己的界面颜色,请在启动 `claude` 之前在您的 shell 中设置它们。

3067* 此处的值是设置文件中的纯文本,到达 Claude Code 启动的每个子进程。对于轮换的 OTLP 承载令牌,使用 [`otelHeadersHelper`](#otelheadershelper);对于 API 凭证,使用 [`apiKeyHelper`](#apikeyhelper)。3071* 此处的值是设置文件中的纯文本,到达 Claude Code 启动的每个子进程。对于轮换的 OTLP 承载令牌,使用 [`otelHeadersHelper`](#otelheadershelper);对于 API 凭证,使用 [`apiKeyHelper`](#apikeyhelper)。


5155 5159 

5156[`allowedMcpServers`](#allowedmcpservers) 和 [`deniedMcpServers`](#deniedmcpservers) 仍然适用于此密钥加载的连接器。传递到[云会话](/docs/zh-CN/claude-code-on-the-web)的连接器,其主机携带 `managed-mcp.json`(例如自托管运行器),仍然会被禁止。请参阅[在托管集合旁边允许 claude.ai 连接器](/docs/zh-CN/managed-mcp#allow-claude-ai-connectors-alongside-the-managed-set)。5160[`allowedMcpServers`](#allowedmcpservers) 和 [`deniedMcpServers`](#deniedmcpservers) 仍然适用于此密钥加载的连接器。传递到[云会话](/docs/zh-CN/claude-code-on-the-web)的连接器,其主机携带 `managed-mcp.json`(例如自托管运行器),仍然会被禁止。请参阅[在托管集合旁边允许 claude.ai 连接器](/docs/zh-CN/managed-mcp#allow-claude-ai-connectors-alongside-the-managed-set)。

5157 5161 

5162<h3 id="allowclaudeinchromewithmanagedmcp">

5163 `allowClaudeInChromeWithManagedMcp`

5164</h3>

5165 

5166让内置的 [Chrome 中的 Claude](/docs/zh-CN/chrome) 服务器在部署的 `managed-mcp.json` 旁边运行。如果没有此密钥,部署的 `managed-mcp.json` 会在终端会话中阻止 Chrome 中的 Claude。需要 Claude Code v2.1.282 或更高版本。

5167 

5168* **作用域**: [`Managed`](#scopes),仅来自设备自己的托管设置:MDM 部署的 plist 或 HKLM 注册表密钥,或系统 `managed-settings.json` 文件。Claude Code 在服务器托管的设置、用户可写的 HKCU 注册表以及用户或项目设置中忽略它。

5169* **类型**: 布尔值

5170 * `true`: 内置的 Chrome 中的 Claude 服务器可以在部署的 `managed-mcp.json` 旁边运行

5171 * `false`: 部署的 `managed-mcp.json` 会在终端会话中阻止 Chrome 中的 Claude

5172* **默认值**: `false`,因此部署的 `managed-mcp.json` 会在终端会话中阻止 Chrome 中的 Claude

5173 

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

5175{

5176 "allowClaudeInChromeWithManagedMcp": true

5177}

5178```

5179 

5180[`deniedMcpServers`](#deniedmcpservers) 中的 `claude-in-chrome` 条目仍然会在此密钥打开时阻止服务器。请参阅[在托管集合旁边允许 Chrome 中的 Claude](/docs/zh-CN/managed-mcp#allow-claude-in-chrome-alongside-the-managed-set)。

5181 

5158<h3 id="allowedmcpservers">5182<h3 id="allowedmcpservers">

5159 `allowedMcpServers`5183 `allowedMcpServers`

5160</h3>5184</h3>

5161 5185 

5162允许列表化人们可以添加的 MCP 服务器。Claude Code 会阻止任何不匹配条目的服务器,无论在何处定义,包括插件服务器、使用 `--mcp-config` 传递的服务器以及来自 claude.ai 的服务器。5186允许列表化人们可以添加的 MCP 服务器。Claude Code 会阻止任何不匹配条目的服务器,无论在何处定义,包括插件服务器、使用 `--mcp-config` 传递的服务器以及来自 claude.ai 的服务器。

5163 5187 

5164内置服务器(例如 Chrome 中的 Claude、Claude Code 在运行的 [VS Code](/docs/zh-CN/vs-code#the-built-in-ide-mcp-server) 或 [JetBrains](/docs/zh-CN/jetbrains#the-built-in-ide-mcp-server) IDE 中连接的 `ide` 服务器,以及 CLI 本身配置的服务器)不受允许列表的限制,拒绝列表仍然适用于它们。进程内 `type: "sdk"` 服务器不受两个列表的限制;[启动会话的应用](/docs/zh-CN/mcp#how-connectors-reach-claude-code)会注册它们。5188内置服务器(例如 Chrome 中的 Claude、Claude Code 在运行的 [VS Code](/docs/zh-CN/vs-code#the-built-in-ide-mcp-server) 或 [JetBrains](/docs/zh-CN/jetbrains#the-built-in-ide-mcp-server) IDE 中连接的 `ide` 服务器,以及 CLI 本身配置的服务器)不受允许列表的限制,拒绝列表仍然适用于它们。在 Claude Code v2.1.268 或更高版本上,[Claude Tag](/docs/zh-CN/claude-tag) 会话的 Slack 工具也不受允许列表的限制,拒绝列表仍然适用于它们。进程内 `type: "sdk"` 服务器不受两个列表的限制;[启动会话的应用](/docs/zh-CN/mcp#how-connectors-reach-claude-code)会注册它们。

5165 5189 

5166您的组织提供的服务器也不受允许列表的限制,拒绝列表仍然适用于它们。豁免涵盖每个 [`managedMcpServers`](#managedmcpservers) 条目,以及任何 [`managed-mcp.json`](/docs/zh-CN/managed-mcp#exclusive-control-with-managed-mcp-json) 条目,其值不使用 `${VAR}` 扩展。有关完整的检查顺序,请参阅[如何评估服务器](/docs/zh-CN/managed-mcp#how-a-server-is-evaluated)。在 v2.1.259 之前,来自 `managed-mcp.json` 的服务器也必须匹配。5190您的组织提供的服务器也不受允许列表的限制,拒绝列表仍然适用于它们。豁免涵盖每个 [`managedMcpServers`](#managedmcpservers) 条目,以及任何 [`managed-mcp.json`](/docs/zh-CN/managed-mcp#exclusive-control-with-managed-mcp-json) 条目,其值不使用 `${VAR}` 扩展。有关完整的检查顺序,请参阅[如何评估服务器](/docs/zh-CN/managed-mcp#how-a-server-is-evaluated)。在 v2.1.259 之前,来自 `managed-mcp.json` 的服务器也必须匹配。

5167 5191 


6302 `disableSideloadFlags`6326 `disableSideloadFlags`

6303</h3>6327</h3>

6304 6328 

6305在启动时拒绝 `--plugin-dir`、`--plugin-url`、`--agents` 和 `--mcp-config` CLI 标志,用户可能会传递这些标志来绕过 [`strictKnownMarketplaces`](#strictknownmarketplaces) 进行单次运行。Claude Code 会以错误退出并命名被拒绝的标志,并对在内部使用这些标志启动 CLI 的表面应用相同的检查,目前在桌面应用中的 [Cowork](/docs/zh-CN/desktop) 本地会话。在[云会话](/docs/zh-CN/claude-code-on-the-web)中,Claude Code 会删除服务器通过 `--mcp-config` 传递的 MCP 服务器,除了进程内 `type: "sdk"` 条目,并启动会话。需要 Claude Code v2.1.193 或更高版本。6329在启动时拒绝 `--plugin-dir`、`--plugin-url`、`--agents` 和 `--mcp-config` CLI 标志,用户可能会传递这些标志来绕过 [`strictKnownMarketplaces`](#strictknownmarketplaces) 进行单次运行。Claude Code 会以错误退出并命名被拒绝的标志,并对在内部使用这些标志启动 CLI 的表面应用相同的检查,目前在桌面应用中的 [Cowork](/docs/zh-CN/desktop) 本地会话。在[云会话](/docs/zh-CN/claude-code-on-the-web)中,Claude Code 会启动会话并删除服务器通过 `--mcp-config` 传递的每个条目,除了进程内 `type: "sdk"` 条目和 [Claude Tag](/docs/zh-CN/claude-tag) 会话的 Slack 工具。需要 Claude Code v2.1.193 或更高版本。

6306 6330 

6307* **Scope**: [`Managed`](#scopes)6331* **Scope**: [`Managed`](#scopes)

6308* **Type**: Boolean6332* **Type**: Boolean

6309 * `true`: Claude Code 在启动时拒绝 `--plugin-dir`、`--plugin-url`、`--agents` 和 `--mcp-config`,并以错误退出并命名它们,除了在云会话中它删除服务器通过 `--mcp-config` 传递的 MCP 服务器,除了进程内 `type: "sdk"` 条目,并启动会话6333 * `true`: Claude Code 在启动时拒绝 `--plugin-dir`、`--plugin-url`、`--agents` 和 `--mcp-config`,并以错误退出并命名它们。在云会话中,它会启动会话并删除服务器通过 `--mcp-config` 传递的每个条目,除了进程内 `type: "sdk"` 条目和 Claude Tag 会话的 Slack 工具

6310 * `false`: Claude Code 接受这些标志6334 * `false`: Claude Code 接受这些标志

6311* **Default**: `false`6335* **Default**: `false`

6312 6336 


6320 6344 

6321相同的检查涵盖在 [`CLAUDE_CODE_PLUGIN_DIRS`](/docs/zh-CN/env-vars#variables) 环境变量中命名的插件文件夹,这需要 Claude Code v2.1.280 或更高版本。当变量命名一个文件夹时,Claude Code 以相同的错误退出,错误说要取消设置该变量。6345相同的检查涵盖在 [`CLAUDE_CODE_PLUGIN_DIRS`](/docs/zh-CN/env-vars#variables) 环境变量中命名的插件文件夹,这需要 Claude Code v2.1.280 或更高版本。当变量命名一个文件夹时,Claude Code 以相同的错误退出,错误说要取消设置该变量。

6322 6346 

6323在云会话中,Claude Code 也忽略服务器传递的中途 MCP 更新,云会话配置和 SDK `setMcpServers()` 调用背后的路径到达这些会话。进程内 `type: "sdk"` 条目在那里也保持豁免。在 v2.1.239 之前,服务器传递的 `--mcp-config` 阻止云会话启动。6347在云会话中,Claude Code 也忽略服务器传递的中途 MCP 更新,云会话配置和 SDK `setMcpServers()` 调用背后的路径到达这些会话。进程内 `type: "sdk"` 条目和 Claude Tag 会话的 Slack 工具在那里也保持豁免。在 v2.1.268 之前,这个删除和启动删除也删除了 Claude Tag 会话的 Slack 工具。在 v2.1.239 之前,服务器传递的 `--mcp-config` 阻止云会话启动。

6324 6348 

6325<h3 id="forceremotesettingsrefresh">6349<h3 id="forceremotesettingsrefresh">

6326 `forceRemoteSettingsRefresh`6350 `forceRemoteSettingsRefresh`

skills.md +26 −2

Details

56 56 

57Claude 仅在它引导运行出错时编辑记录的文件,例如失败的命令或缺少的步骤,因此您可以提交文件而无需每个会话的差异。在 v2.1.205 之前,捆绑技能告诉 Claude 折叠运行学到的任何内容,这导致频繁的合并冲突。57Claude 仅在它引导运行出错时编辑记录的文件,例如失败的命令或缺少的步骤,因此您可以提交文件而无需每个会话的差异。在 v2.1.205 之前,捆绑技能告诉 Claude 折叠运行学到的任何内容,这导致频繁的合并冲突。

58 58 

59<h3 id="work-on-claude-api-projects">

60 处理 Claude API 项目

61</h3>

62 

63捆绑的 `/claude-api` 技能为您的项目语言加载 [Claude API](https://platform.claude.com/docs/en/api/overview) 和[托管代理](https://platform.claude.com/docs/en/managed-agents/overview)参考资料。当您的代码导入 `anthropic` 或 `@anthropic-ai/sdk` 时,Claude 也会自动激活它。

64 

65要启动技能的工作流之一,请在 Claude Code 提示符处的技能名称后键入子命令,例如 `/claude-api migrate`。该表列出了每个子命令的作用以及包含它的最早 Claude Code 版本。`migrate` 和 `managed-agents-onboard` 早于 v2.1.221,这是该表跟踪的最早版本。

66 

67| 子命令 | 作用 | 最低版本 |

68| :- | :- | :- |

69| `migrate` | 将您现有的 Claude API 代码更新到更新的模型 | 早于 v2.1.221 |

70| `upgrade` | 跨主要版本移动您的项目的 Anthropic SDK 依赖项,目前是 Python `anthropic` 包从 0.x 到 1.x | v2.1.236 或更高版本 |

71| `managed-agents-onboard` | 逐步完成创建新的托管代理 | 早于 v2.1.221 |

72| `prompt-audit` | 标记为旧模型编写的指令在您的提示、技能和工具描述中,并提议修复作为差异 | v2.1.221 或更高版本 |

73| `cost-optimize` | 分析您的项目的 Claude API 支出去向,并提议从提示缓存、修剪不需要的输入和输出令牌、批处理、工作量和模型选择等选项中节省成本,一次一个更改 | v2.1.247 或更高版本 |

74| `build-eval` | 为您的 Claude 驱动的应用构建评估集 | v2.1.259 或更高版本 |

75| `hillclimb` | 针对现有评估迭代改进您的应用 | v2.1.259 或更高版本 |

76| `preserved-thinking-migration` | 查找您的集成对早期轮次、其系统提示或其工具列表所做的编辑,这些编辑使[保留的思考](https://platform.claude.com/docs/en/build-with-claude/preserved-thinking)块失效,测量每个块丢弃多少推理,并提议一次一个修复,在每次更改后重新测量 | v2.1.282 或更高版本 |

77 

59<h2 id="getting-started">78<h2 id="getting-started">

60 开始使用79 开始使用

61</h2>80</h2>


909 928 

910看到技能触发告诉你 Claude 找到了它,但不代表它做了你想要的事情。要知道技能是否有效,需要分别测量两件事:Claude 是否在应该调用的提示上调用它,以及当它调用时输出是否与你的预期相符。929看到技能触发告诉你 Claude 找到了它,但不代表它做了你想要的事情。要知道技能是否有效,需要分别测量两件事:Claude 是否在应该调用的提示上调用它,以及当它调用时输出是否与你的预期相符。

911 930 

912两者的检查都是基线比较。收集几个现实的提示,在启用技能的新会话中运行每个提示,然后在[禁用](#override-skill-visibility-from-settings)技能的情况下再运行一次,并比较结果。新会话很重要,因为编写技能时留下的上下文会掩盖书面说明中的差距。931两者的检查都是基线比较。收集几个现实的提示,在启用技能的新会话中运行每个提示,然后在禁用技能的情况下再运行一次,并比较结果。新会话很重要,因为编写技能时留下的上下文会掩盖书面说明中的差距。

932 

933关闭技能进行第二次运行的方式取决于它来自何处:

934 

935* **个人或项目技能**:在 [`skillOverrides`](#override-skill-visibility-from-settings) 中将其设置为 `"off"`。

936* **插件提供的技能**:`skillOverrides` 不适用于插件技能。改用 [`claude plugin eval`](/docs/zh-CN/plugin-evals#the-no-plugin-baseline),它在没有加载任何插件的情况下重复每次运行。

913 937 

914两个工具可以自动化该比较。对于在[插件](/docs/zh-CN/plugins/overview)中发布的技能,[`claude plugin eval`](/docs/zh-CN/plugin-evals)在隔离会话中运行每个提示,既有插件也没有插件,使用你定义的或它为你编写的评分器对其进行评分,并在低于阈值时以非零状态退出,以便你可以在 CI 上对其进行门控。对于在 Claude Code 对话中迭代单个技能,下面的 skill-creator 插件使用其自己的 `evals/evals.json` 格式运行类似的循环。这两种格式不可互换。938两个工具可以自动化基线比较。对于在[插件](/docs/zh-CN/plugins/overview)中发布的技能,[`claude plugin eval`](/docs/zh-CN/plugin-evals) 在隔离会话中运行每个提示,既有插件也没有插件,使用你定义的或它为你编写的评分器对其进行评分,并在低于阈值时以非零状态退出,以便你可以在 CI 上对其进行门控。对于在 Claude Code 对话中迭代单个技能,下面的 skill-creator 插件使用其自己的 `evals/evals.json` 格式运行类似的循环。这两种格式不可互换。

915 939 

916<h3 id="run-evals-with-skill-creator">940<h3 id="run-evals-with-skill-creator">

917 使用 skill-creator 运行评估941 使用 skill-creator 运行评估

statusline.md +1 −1

Details

1178**上下文百分比显示意外值**1178**上下文百分比显示意外值**

1179 1179 

1180* 使用 `used_percentage` 获得最简单的准确上下文状态1180* 使用 `used_percentage` 获得最简单的准确上下文状态

1181* 上下文百分比可能与 `/context` 输出不同,因为每个的计算时间不同1181* 状态行报告来自最后一次 API 响应的计数,而 `/context` 添加了自该响应以来添加的消息的估计值,因此 `/context` 可以读取更高的值,直到下一次响应

1182 1182 

1183**OSC 8 链接不可点击**1183**OSC 8 链接不可点击**

1184 1184 

sub-agents.md +4 −6

Details

30 内置 subagents30 内置 subagents

31</h2>31</h2>

32 32 

33Claude Code 包括内置 subagents,Claude 在适当时自动使用。每个都继承父对话的权限;大多数运行时工具集受限。33Claude Code 包括内置 subagents,Claude 在适当时自动使用。每个都继承父对话的权限规则;大多数运行时工具集受限。

34 34 

35Explore 和 Plan 会跳过您的 CLAUDE.md 文件和 git 状态快照,以保持研究快速且成本低廉。所有其他内置和[自定义 subagent](#configure-subagents) 都会加载两者,除非其定义设置了 [`omitClaudeMd`](#supported-frontmatter-fields) 字段以跳过用户、项目和本地 CLAUDE.md 文件。有关到达 subagent 的内容的完整分解,请参阅[启动时加载的内容](#what-loads-at-startup)。35Explore 和 Plan 会跳过您的 CLAUDE.md 文件和 git 状态快照,以保持研究快速且成本低廉。所有其他内置和[自定义 subagent](#configure-subagents) 都会加载两者,除非其定义设置了 [`omitClaudeMd`](#supported-frontmatter-fields) 字段以跳过用户、项目和本地 CLAUDE.md 文件。有关到达 subagent 的内容的完整分解,请参阅[启动时加载的内容](#what-loads-at-startup)。

36 36 


802 - matcher: "Bash"802 - matcher: "Bash"

803 hooks:803 hooks:

804 - type: command804 - type: command

805 command: "./scripts/validate-command.sh $TOOL_INPUT"805 command: "./scripts/validate-command.sh"

806 PostToolUse:806 PostToolUse:

807 - matcher: "Edit|Write"807 - matcher: "Edit|Write"

808 hooks:808 hooks:


850}850}

851```851```

852 852 

853一个带连字符的匹配器,如 `db-agent`,在 Claude Code v2.1.195 或更高版本上精确匹配。在早期版本上,它被评估为 unanchored regular expression,也会为任何包含它的代理类型触发,例如 `prod-db-agent`;在这些版本上使用 `^db-agent$` 锚定它。

854 

855有关完整的 hook 配置格式,请参阅 [Hooks](/docs/zh-CN/hooks)。853有关完整的 hook 配置格式,请参阅 [Hooks](/docs/zh-CN/hooks)。

856 854 

857<h2 id="work-with-subagents">855<h2 id="work-with-subagents">


897 895 

898您也可以手动输入提及而不使用选择器:`@agent-<name>` 用于本地 subagents,或 `@agent-` 后跟 plugin subagents 的作用域名称,例如 `@agent-my-plugin:code-reviewer`。当您输入这种形式时,类型提前显示文件匹配而不是 agents。当您提交时,agent 提及仍然会解析。896您也可以手动输入提及而不使用选择器:`@agent-<name>` 用于本地 subagents,或 `@agent-` 后跟 plugin subagents 的作用域名称,例如 `@agent-my-plugin:code-reviewer`。当您输入这种形式时,类型提前显示文件匹配而不是 agents。当您提交时,agent 提及仍然会解析。

899 897 

900**将整个会话作为 subagent 运行。** 传递 [`--agent <name>`](/docs/zh-CN/cli-reference) 以启动一个会话,其中主线程本身采用该 subagent 的系统提示、工具限制和模型:898**将整个会话作为 subagent 运行。** 传递 [`--agent <name>`](/docs/zh-CN/cli-reference) 以启动一个会话,其中主线程本身采用该 subagent 的工具限制和模型:

901 899 

902```bash theme={null}900```bash theme={null}

903claude --agent code-reviewer901claude --agent code-reviewer

904```902```

905 903 

906除非代理的 [提示为空](#choose-the-subagent-scope),subagent 的系统提示完全替换默认 Claude Code 系统提示,就像 [`--system-prompt`](/docs/zh-CN/cli-reference) 一样。`CLAUDE.md` 文件和项目内存仍然通过正常消息流加载,即使代理的定义设置了 [`omitClaudeMd`](#supported-frontmatter-fields)。代理名称在启动标题中显示为 `@<name>`,以便您可以确认它是活跃的。904除非代理的 [提示为空](#choose-the-subagent-scope),custom subagent 的系统提示完全替换默认 Claude Code 系统提示,就像 [`--system-prompt`](/docs/zh-CN/cli-reference) 一样。`CLAUDE.md` 文件和项目内存仍然通过正常消息流加载,即使代理的定义设置了 [`omitClaudeMd`](#supported-frontmatter-fields)。代理名称在启动标题中显示为 `@<name>`,以便您可以确认它是活跃的。

907 905 

908这适用于内置和自定义 subagents,当您恢复会话时选择会持续:Claude Code 恢复代理的工具限制和模型以及对话。如果代理在您恢复时不再存在,会话继续使用默认工具并显示 [警告命名代理](/docs/zh-CN/errors#session-agent-no-longer-available)。对于任一情况下的系统提示,请参阅 [已恢复对话中的系统提示标志](/docs/zh-CN/cli-reference#system-prompt-flags-in-resumed-conversations)。906这适用于内置和自定义 subagents,当您恢复会话时选择会持续:Claude Code 恢复代理的工具限制和模型以及对话。如果代理在您恢复时不再存在,会话继续使用默认工具并显示 [警告命名代理](/docs/zh-CN/errors#session-agent-no-longer-available)。对于任一情况下的系统提示,请参阅 [已恢复对话中的系统提示标志](/docs/zh-CN/cli-reference#system-prompt-flags-in-resumed-conversations)。

909 907 

Details

122 122 

123 <tr>123 <tr>

124 <td>计费</td>124 <td>计费</td>

125 <td><strong>Teams:</strong> \$150/座位(Premium)提供按使用量付费选项<br /><strong>Enterprise:</strong> <a href="https://claude.com/contact-sales?utm_source=claude_code&utm_medium=docs&utm_content=third_party_enterprise">联系销售</a></td>125 <td><strong>Teams:</strong> 按座位订阅,提供按使用量付费选项,请参阅<a href="https://claude.com/pricing?utm_source=claude_code&utm_medium=docs&utm_content=third_party_pricing#team-&-enterprise">定价</a><br /><strong>Enterprise:</strong> <a href="https://claude.com/contact-sales?utm_source=claude_code&utm_medium=docs&utm_content=third_party_enterprise">联系销售</a></td>

126 <td>按使用量付费</td>126 <td>按使用量付费</td>

127 <td>通过 AWS 按使用量付费</td>127 <td>通过 AWS 按使用量付费</td>

128 <td>通过 AWS Marketplace 按使用量付费</td>128 <td>通过 AWS Marketplace 按使用量付费</td>

Details

382 WebSocket 源382 WebSocket 源

383</h3>383</h3>

384 384 

385<Note>

386 WebSocket 源需要 Claude Code v2.1.195 或更高版本。

387</Note>

388 

389当服务器已经通过 WebSocket 推送事件时,Claude 可以直接连接到它,而不是编写轮询脚本。每种套接字活动要么成为一个事件,要么结束监视:385当服务器已经通过 WebSocket 推送事件时,Claude 可以直接连接到它,而不是编写轮询脚本。每种套接字活动要么成为一个事件,要么结束监视:

390 386 

391* **文本消息**:每条消息都成为一个事件,即使消息跨越多行。387* **文本消息**:每条消息都成为一个事件,即使消息跨越多行。

Details

445 TLS 或 SSL 连接错误445 TLS 或 SSL 连接错误

446</h3>446</h3>

447 447 

448诸如 `curl: (35) TLS connect error`、`schannel: next InitializeSecurityContext failed` 或 PowerShell 的 `Could not establish trust relationship for the SSL/TLS secure channel` 之类的错误表示 TLS 握手失败。448诸如以下错误意味着 TLS 握手失败:

449 

450* `curl: (35) TLS connect error`

451* `schannel: next InitializeSecurityContext failed`

452* PowerShell 的 `Could not create SSL/TLS secure channel`

453* PowerShell 的 `Could not establish trust relationship for the SSL/TLS secure channel`

449 454 

450**解决方案:**455**解决方案:**

451 456 


1017 登录后 403 Forbidden1022 登录后 403 Forbidden

1018</h3>1023</h3>

1019 1024 

1020如果登录后看到 `API Error: 403 {"error":{"type":"forbidden","message":"Request not allowed"}}`:1025如果登录后看到 `API Error: 403 Request not allowed`:

1021 1026 

1022* **Claude Pro/Max 用户**:在 [claude.ai/settings](https://claude.ai/settings) 验证您的订阅是否有效1027* **Claude Pro/Max 用户**:在 [claude.ai/settings](https://claude.ai/settings) 验证您的订阅是否有效

1023* **Anthropic Console 用户**:确认您的账户具有"Claude Code"或"Developer"角色。管理员在 Anthropic Console 的"Settings → Members"中分配此角色。1028* **Anthropic Console 用户**:确认您的账户具有"Claude Code"或"Developer"角色。管理员在 Anthropic Console 的"Settings → Members"中分配此角色。

Details

52 `.heapsnapshot` 文件包含进程中的每个字符串,包括您的完整对话和凭证。不要将其附加到公开问题或共享。52 `.heapsnapshot` 文件包含进程中的每个字符串,包括您的完整对话和凭证。不要将其附加到公开问题或共享。

53</Warning>53</Warning>

54 54 

55该命令还在对话中打印摘要,显示驻留集大小、JS 堆、数组缓冲区和未计算的本机内存,以及它检测到的任何泄漏指示器,例如高内存增长率或异常高的打开句柄数。摘要说明大部分内存是在 JS 堆中(快照捕获)还是在本机内存中(它不捕获)。55该命令还在对话中打印摘要,显示进程的总内存、其中有多少在 JS 堆中,以及有多少在堆外。摘要还列出任何泄漏指示器,例如高内存增长率或异常高的打开句柄数。摘要说明大部分内存是在 JS 堆中(快照捕获),还是在本机内存中(它不捕获)。

56 56 

57对输出执行以下两项操作之一:57对输出执行以下两项操作之一:

58 58 

workflows.md +1 −1

Details

91 观看运行91 观看运行

92</h3>92</h3>

93 93 

94工作流在后台运行,所以会话在代理工作时保持响应。随时运行 `/workflows` 列出运行中和已完成的工作流,然后选择一个打开其进度视图。94工作流在后台运行,所以会话在代理工作时保持响应。随时运行 `/workflows` 列出运行中和已完成的工作流,然后选择一个打开其进度视图。要停止运行中的工作流而不打开它,在列表中选择它并按 `x`。

95 95 

96进度视图显示每个阶段及其代理计数、令牌总数和经过的时间。页脚列出每个操作的键:96进度视图显示每个阶段及其代理计数、令牌总数和经过的时间。页脚列出每个操作的键:

97 97