SpyBara
Go Premium

Documentation 2026-09-27 23:59 UTC to 2026-09-28 22:59 UTC

158 files changed +796 −796. View all changes and history on the product overview
2026
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
Details

39该表列出了每个无障碍选项、您是将其设置为标志、环境变量还是设置,以及它改变的内容。39该表列出了每个无障碍选项、您是将其设置为标志、环境变量还是设置,以及它改变的内容。

40 40 

41| 选项 | 类型 | 改变的内容 |41| 选项 | 类型 | 改变的内容 |

42| :------------------------------------------------------------------------- | :--- | :--------------------------------------------------------------------------------------------------------------------------- |42| :- | :- | :- |

43| [`--ax-screen-reader`](/docs/zh-CN/cli-reference#cli-flags) | 标志 | 单个会话的屏幕阅读器模式。 |43| [`--ax-screen-reader`](/docs/zh-CN/cli-reference#cli-flags) | 标志 | 单个会话的屏幕阅读器模式。 |

44| [`CLAUDE_AX_SCREEN_READER`](/docs/zh-CN/env-vars#variables) | 环境变量 | 从您设置它的 shell 启动的会话的屏幕阅读器模式。 |44| [`CLAUDE_AX_SCREEN_READER`](/docs/zh-CN/env-vars#variables) | 环境变量 | 从您设置它的 shell 启动的会话的屏幕阅读器模式。 |

45| [`axScreenReader`](/docs/zh-CN/settings-reference#axscreenreader) | 设置 | 当为 `true` 时,每个会话的屏幕阅读器模式。 |45| [`axScreenReader`](/docs/zh-CN/settings-reference#axscreenreader) | 设置 | 当为 `true` 时,每个会话的屏幕阅读器模式。 |


71成绩单中的每条消息都以屏幕阅读器宣布的标签开头,命名其内容:您的消息、Claude 的回复和思考、工具活动、错误和警告以及提示。这些标签也是可搜索的,因此您可以通过搜索终端的滚动条在成绩单的各个部分之间跳转:71成绩单中的每条消息都以屏幕阅读器宣布的标签开头,命名其内容:您的消息、Claude 的回复和思考、工具活动、错误和警告以及提示。这些标签也是可搜索的,因此您可以通过搜索终端的滚动条在成绩单的各个部分之间跳转:

72 72 

73| 标签 | 含义 |73| 标签 | 含义 |

74| :--------------------- | :------------------------------------------------ |74| :- | :- |

75| `you:` | 您的消息 |75| `you:` | 您的消息 |

76| `claude:` | Claude 的回复 |76| `claude:` | Claude 的回复 |

77| `thinking:` | Claude 的思考 |77| `thinking:` | Claude 的思考 |

admin-setup.md +6 −6

Details

15</Note>15</Note>

16 16 

17| 决策 | 您的选择 | 参考 |17| 决策 | 您的选择 | 参考 |

18| :----------------------------------------------- | :----------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |18| :- | :- | :- |

19| [选择您的 API 提供商](#choose-your-api-provider) | Claude Code 的身份验证位置和计费方式 | [Authentication](/docs/zh-CN/authentication)、[Amazon Bedrock](/docs/zh-CN/amazon-bedrock)、[Google Cloud's Agent Platform](/docs/zh-CN/google-vertex-ai)、[Microsoft Foundry](/docs/zh-CN/microsoft-foundry) |19| [选择您的 API 提供商](#choose-your-api-provider) | Claude Code 的身份验证位置和计费方式 | [Authentication](/docs/zh-CN/authentication)、[Amazon Bedrock](/docs/zh-CN/amazon-bedrock)、[Google Cloud's Agent Platform](/docs/zh-CN/google-vertex-ai)、[Microsoft Foundry](/docs/zh-CN/microsoft-foundry) |

20| [决定设置如何到达设备](#decide-how-settings-reach-devices) | 托管策略如何到达开发人员机器 | [Server-managed settings](/docs/zh-CN/server-managed-settings)、[Delivery mechanisms](/docs/zh-CN/managed-settings#delivery-mechanisms) |20| [决定设置如何到达设备](#decide-how-settings-reach-devices) | 托管策略如何到达开发人员机器 | [Server-managed settings](/docs/zh-CN/server-managed-settings)、[Delivery mechanisms](/docs/zh-CN/managed-settings#delivery-mechanisms) |

21| [决定要强制执行的内容](#decide-what-to-enforce) | 允许哪些工具、命令和集成 | [Permissions](/docs/zh-CN/permissions)、[Sandboxing](/docs/zh-CN/sandboxing) |21| [决定要强制执行的内容](#decide-what-to-enforce) | 允许哪些工具、命令和集成 | [Permissions](/docs/zh-CN/permissions)、[Sandboxing](/docs/zh-CN/sandboxing) |


29Claude Code 通过多个 API 提供商之一连接到 Claude。您的选择会影响计费、身份验证、您继承的合规性态势,以及您的开发人员可以使用的 Claude Code 功能。29Claude Code 通过多个 API 提供商之一连接到 Claude。您的选择会影响计费、身份验证、您继承的合规性态势,以及您的开发人员可以使用的 Claude Code 功能。

30 30 

31| 提供商 | 何时选择 |31| 提供商 | 何时选择 |

32| :---------------------------- | :----------------------------------------------------- |32| :- | :- |

33| Claude for Teams / Enterprise | 您希望 Claude Code 和 claude.ai 在一个按座位订阅下,无需运行基础设施。这是默认建议。 |33| Claude for Teams / Enterprise | 您希望 Claude Code 和 claude.ai 在一个按座位订阅下,无需运行基础设施。这是默认建议。 |

34| Claude Console | 您是 API 优先或希望按使用量付费 |34| Claude Console | 您是 API 优先或希望按使用量付费 |

35| Amazon Bedrock | 您希望继承现有的 AWS 合规控制和计费 |35| Amazon Bedrock | 您希望继承现有的 AWS 合规控制和计费 |


49托管设置定义组织策略。Claude Code 按优先级顺序检查下表中的四个来源。[Claude Code 如何合并托管来源](/docs/zh-CN/managed-settings#precedence-within-the-managed-tier)说明其中哪些适用、策略助手更改什么,以及如何组合每个来源。该表是决策地图。49托管设置定义组织策略。Claude Code 按优先级顺序检查下表中的四个来源。[Claude Code 如何合并托管来源](/docs/zh-CN/managed-settings#precedence-within-the-managed-tier)说明其中哪些适用、策略助手更改什么,以及如何组合每个来源。该表是决策地图。

50 50 

51| 机制 | 传递 | 优先级 | 平台 |51| 机制 | 传递 | 优先级 | 平台 |

52| :---------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-- | :------------ |52| :- | :- | :- | :- |

53| Server-managed | claude.ai 管理控制台,或用于网关登录的自托管 [Claude apps gateway](/docs/zh-CN/claude-apps-gateway) | 最高 | 全部 |53| Server-managed | claude.ai 管理控制台,或用于网关登录的自托管 [Claude apps gateway](/docs/zh-CN/claude-apps-gateway) | 最高 | 全部 |

54| plist / registry policy | macOS: `com.anthropic.claudecode` plist<br />Windows: `HKLM\SOFTWARE\Policies\ClaudeCode` | 高 | macOS、Windows |54| plist / registry policy | macOS: `com.anthropic.claudecode` plist<br />Windows: `HKLM\SOFTWARE\Policies\ClaudeCode` | 高 | macOS、Windows |

55| File-based managed | macOS: `/Library/Application Support/ClaudeCode/managed-settings.json`<br />Linux 和 WSL: `/etc/claude-code/managed-settings.json`<br />Windows: `C:\Program Files\ClaudeCode\managed-settings.json` | 中 | 全部 |55| File-based managed | macOS: `/Library/Application Support/ClaudeCode/managed-settings.json`<br />Linux 和 WSL: `/etc/claude-code/managed-settings.json`<br />Windows: `C:\Program Files\ClaudeCode\managed-settings.json` | 中 | 全部 |


94托管设置可以锁定工具、沙箱执行、限制 MCP 服务器和插件源,以及控制哪些 hooks 运行。每一行都是一个控制表面,具有驱动它的设置键。94托管设置可以锁定工具、沙箱执行、限制 MCP 服务器和插件源,以及控制哪些 hooks 运行。每一行都是一个控制表面,具有驱动它的设置键。

95 95 

96| 控制 | 它的作用 | 关键设置 |96| 控制 | 它的作用 | 关键设置 |

97| :--------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------- |97| :- | :- | :- |

98| [Permission rules](/docs/zh-CN/permissions) | 允许、询问或拒绝特定工具和命令 | `permissions.allow`、`permissions.deny` |98| [Permission rules](/docs/zh-CN/permissions) | 允许、询问或拒绝特定工具和命令 | `permissions.allow`、`permissions.deny` |

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

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


135根据您需要报告的内容选择监控。仪表板、API 和支出控制在 Claude for Teams 或 Enterprise 计划与 Claude Console 组织之间有所不同,因此在围绕某项功能规划报告之前,请检查"可用性"列。135根据您需要报告的内容选择监控。仪表板、API 和支出控制在 Claude for Teams 或 Enterprise 计划与 Claude Console 组织之间有所不同,因此在围绕某项功能规划报告之前,请检查"可用性"列。

136 136 

137| 功能 | 您获得的内容 | 可用性 | 从何处开始 |137| 功能 | 您获得的内容 | 可用性 | 从何处开始 |

138| :--------------------- | :------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------- |138| :- | :- | :- | :- |

139| Usage monitoring | 会话、工具和令牌的 OpenTelemetry 导出 | 所有提供商 | [Monitoring usage](/docs/zh-CN/monitoring-usage) |139| Usage monitoring | 会话、工具和令牌的 OpenTelemetry 导出 | 所有提供商 | [Monitoring usage](/docs/zh-CN/monitoring-usage) |

140| Analytics dashboard | Teams / Enterprise 上具有排行榜的采用和贡献指标;Console 上的每用户使用情况和支出指标 | Teams / Enterprise 在 [claude.ai/analytics](https://claude.ai/analytics/claude-code),Console 在 [platform.claude.com/claude-code](https://platform.claude.com/claude-code) | [Analytics](/docs/zh-CN/analytics) |140| Analytics dashboard | Teams / Enterprise 上具有排行榜的采用和贡献指标;Console 上的每用户使用情况和支出指标 | Teams / Enterprise 在 [claude.ai/analytics](https://claude.ai/analytics/claude-code),Console 在 [platform.claude.com/claude-code](https://platform.claude.com/claude-code) | [Analytics](/docs/zh-CN/analytics) |

141| Programmatic reporting | 通过 API 的每用户使用情况和成本数据 | Enterprise 的 [Enterprise Analytics API](https://platform.claude.com/docs/en/api/admin/analytics),Console 的 [Claude Code Analytics API](https://platform.claude.com/docs/en/build-with-claude/claude-code-analytics-api) | [Costs](/docs/zh-CN/costs#manage-costs-for-your-organization) |141| Programmatic reporting | 通过 API 的每用户使用情况和成本数据 | Enterprise 的 [Enterprise Analytics API](https://platform.claude.com/docs/en/api/admin/analytics),Console 的 [Claude Code Analytics API](https://platform.claude.com/docs/en/build-with-claude/claude-code-analytics-api) | [Costs](/docs/zh-CN/costs#manage-costs-for-your-organization) |


150在 Team、Enterprise、Claude API 和云提供商计划上,Anthropic 不会在您的代码或提示上训练模型。您的 API 提供商决定保留和合规性态势。150在 Team、Enterprise、Claude API 和云提供商计划上,Anthropic 不会在您的代码或提示上训练模型。您的 API 提供商决定保留和合规性态势。

151 151 

152| 主题 | 需要了解的内容 | 从何处开始 |152| 主题 | 需要了解的内容 | 从何处开始 |

153| :------------------------ | :--------------------------------------- | :------------------------------------------------ |153| :- | :- | :- |

154| Data usage policy | Anthropic 收集的内容、保留多长时间、永远不会用于训练的内容 | [Data usage](/docs/zh-CN/data-usage) |154| Data usage policy | Anthropic 收集的内容、保留多长时间、永远不会用于训练的内容 | [Data usage](/docs/zh-CN/data-usage) |

155| Zero Data Retention (ZDR) | 请求完成后不存储任何内容。在 Claude for Enterprise 上可用 | [Zero data retention](/docs/zh-CN/zero-data-retention) |155| Zero Data Retention (ZDR) | 请求完成后不存储任何内容。在 Claude for Enterprise 上可用 | [Zero data retention](/docs/zh-CN/zero-data-retention) |

156| Security architecture | 网络模型、加密、身份验证、审计跟踪 | [Security](/docs/zh-CN/security) |156| Security architecture | 网络模型、加密、身份验证、审计跟踪 | [Security](/docs/zh-CN/security) |

advisor.md +3 −3

Details

98顾问的能力必须至少与主模型相同。每个主模型接受的顾问是:98顾问的能力必须至少与主模型相同。每个主模型接受的顾问是:

99 99 

100| 主模型 | 接受的顾问 | 注释 |100| 主模型 | 接受的顾问 | 注释 |

101| ------------------- | ----------------------------- | ----------------------------------------------------- |101| - | - | - |

102| Haiku 4.5 | Fable、Opus、Sonnet | Haiku 可以调用顾问但不能充当顾问 |102| Haiku 4.5 | Fable、Opus、Sonnet | Haiku 可以调用顾问但不能充当顾问 |

103| Sonnet 4.6 | Fable、Opus、Sonnet | |103| Sonnet 4.6 | Fable、Opus、Sonnet | |

104| Sonnet 5 | Fable、Opus 4.7 或更高版本、Sonnet 5 | Sonnet 4.6 顾问被拒绝,API 拒绝 Opus 4.6 顾问 |104| Sonnet 5 | Fable、Opus 4.7 或更高版本、Sonnet 5 | Sonnet 4.6 顾问被拒绝,API 拒绝 Opus 4.6 顾问 |


137任何接受的配对都有效。这些组合以不同的方式平衡成本和能力:137任何接受的配对都有效。这些组合以不同的方式平衡成本和能力:

138 138 

139| 配对 | 何时使用 |139| 配对 | 何时使用 |

140| ---------------------- | ---------------------------------------------------------------- |140| - | - |

141| Sonnet 主模型 + Opus 顾问 | Sonnet 处理常规工作,并将规划、模糊失败和完成检查升级到 Opus |141| Sonnet 主模型 + Opus 顾问 | Sonnet 处理常规工作,并将规划、模糊失败和完成检查升级到 Opus |

142| Sonnet 主模型 + Fable 顾问 | 在决策点进行 Fable 指导,无需全程运行 Fable。需要 Fable 访问权限 |142| Sonnet 主模型 + Fable 顾问 | 在决策点进行 Fable 指导,无需全程运行 Fable。需要 Fable 访问权限 |

143| Haiku 主模型 + Opus 顾问 | 最低成本的主模型具有强大的规划能力。预期成本高于仅 Haiku,但低于将主模型切换到 Sonnet 或 Opus |143| Haiku 主模型 + Opus 顾问 | 最低成本的主模型具有强大的规划能力。预期成本高于仅 Haiku,但低于将主模型切换到 Sonnet 或 Opus |


218顾问是结合模型优势的几种方式之一。根据您希望何时涉及第二个模型来选择。218顾问是结合模型优势的几种方式之一。根据您希望何时涉及第二个模型来选择。

219 219 

220| 方法 | 更强的模型何时运行 | 如何启动 |220| 方法 | 更强的模型何时运行 | 如何启动 |

221| -------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | ----------------- |221| - | - | - |

222| 顾问工具 | 在任务中途的决策点 | Claude 在需要指导时调用它 |222| 顾问工具 | 在任务中途的决策点 | Claude 在需要指导时调用它 |

223| [`opusplan`](/docs/zh-CN/model-config#opusplan-model-setting) | 在计划模式期间当[由 `availableModels` 允许](/docs/zh-CN/model-config#restrict-model-selection)时,然后切换到 Sonnet 执行 | 您进入计划模式 |223| [`opusplan`](/docs/zh-CN/model-config#opusplan-model-setting) | 在计划模式期间当[由 `availableModels` 允许](/docs/zh-CN/model-config#restrict-model-selection)时,然后切换到 Sonnet 执行 | 您进入计划模式 |

224| [子代理](/docs/zh-CN/sub-agents#choose-a-model),设置了 `model` | 对于整个委派的子任务 | Claude 委派,或您调用子代理 |224| [子代理](/docs/zh-CN/sub-agents#choose-a-model),设置了 `model` | 对于整个委派的子任务 | Claude 委派,或您调用子代理 |

Details

165SDK 包含与 Claude Code 相同的工具:165SDK 包含与 Claude Code 相同的工具:

166 166 

167| 类别 | 工具 | 它们做什么 |167| 类别 | 工具 | 它们做什么 |

168| :------- | :---------------------------------------------------------- | :--------------------- |168| :- | :- | :- |

169| **文件操作** | `Read`、`Edit`、`Write` | 读取、修改和创建文件 |169| **文件操作** | `Read`、`Edit`、`Write` | 读取、修改和创建文件 |

170| **搜索** | `Glob`、`Grep` | 按模式查找文件,使用正则表达式搜索内容 |170| **搜索** | `Glob`、`Grep` | 按模式查找文件,使用正则表达式搜索内容 |

171| **执行** | `Bash` | 运行 shell 命令、脚本、git 操作 |171| **执行** | `Bash` | 运行 shell 命令、脚本、git 操作 |


214</h3>214</h3>

215 215 

216| 选项 | 它控制什么 | 默认值 |216| 选项 | 它控制什么 | 默认值 |

217| :-------------------------------------- | :--------- | :-- |217| :- | :- | :- |

218| 最大轮次(`max_turns` / `maxTurns`) | 最大工具使用往返次数 | 无限制 |218| 最大轮次(`max_turns` / `maxTurns`) | 最大工具使用往返次数 | 无限制 |

219| 最大预算(`max_budget_usd` / `maxBudgetUsd`) | 停止前的最大成本 | 无限制 |219| 最大预算(`max_budget_usd` / `maxBudgetUsd`) | 停止前的最大成本 | 无限制 |

220 220 


231`effort` 选项控制 Claude 应用多少推理。较低的努力级别每个轮次使用更少的令牌并降低成本。并非所有模型都支持努力参数。有关哪些模型支持它,请参阅 [Effort](https://platform.claude.com/docs/en/build-with-claude/effort)。231`effort` 选项控制 Claude 应用多少推理。较低的努力级别每个轮次使用更少的令牌并降低成本。并非所有模型都支持努力参数。有关哪些模型支持它,请参阅 [Effort](https://platform.claude.com/docs/en/build-with-claude/effort)。

232 232 

233| 级别 | 行为 | 适合 |233| 级别 | 行为 | 适合 |

234| :--------- | :-------- | :------------------------------------------------------------ |234| :- | :- | :- |

235| `"low"` | 最小推理,快速响应 | 文件查找、列出目录 |235| `"low"` | 最小推理,快速响应 | 文件查找、列出目录 |

236| `"medium"` | 平衡推理 | 常规编辑、标准任务 |236| `"medium"` | 平衡推理 | 常规编辑、标准任务 |

237| `"high"` | 彻底分析 | 重构、调试 |237| `"high"` | 彻底分析 | 重构、调试 |


253权限模式选项(Python 中的 `permission_mode`,TypeScript 中的 `permissionMode`)控制代理是否在使用工具前请求批准:253权限模式选项(Python 中的 `permission_mode`,TypeScript 中的 `permissionMode`)控制代理是否在使用工具前请求批准:

254 254 

255| 模式 | 行为 | 用例 |255| 模式 | 行为 | 用例 |

256| :-------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------ |256| :- | :- | :- |

257| `"default"` | 需要批准且不被允许规则覆盖的工具调用触发你的 `canUseTool` 回调;没有回调意味着拒绝 | 具有自定义批准回调的交互式应用程序 |257| `"default"` | 需要批准且不被允许规则覆盖的工具调用触发你的 `canUseTool` 回调;没有回调意味着拒绝 | 具有自定义批准回调的交互式应用程序 |

258| `"acceptEdits"` | 自动批准文件编辑和常见文件系统命令(`mkdir`、`touch`、`mv`、`cp` 等);其他 Bash 命令遵循默认规则 | 你信任 Claude 的编辑并想要更快的迭代,例如在原型设计期间或在隔离目录中工作时 |258| `"acceptEdits"` | 自动批准文件编辑和常见文件系统命令(`mkdir`、`touch`、`mv`、`cp` 等);其他 Bash 命令遵循默认规则 | 你信任 Claude 的编辑并想要更快的迭代,例如在原型设计期间或在隔离目录中工作时 |

259| `"plan"` | Claude 探索并规划而不编辑你的源文件;文件编辑永远不会自动批准,并通过你的 `canUseTool` 回调提示 | 你想要 Claude 提议更改而不执行它们,例如在代码审查期间或当你需要在进行更改前批准它们时 |259| `"plan"` | Claude 探索并规划而不编辑你的源文件;文件编辑永远不会自动批准,并通过你的 `canUseTool` 回调提示 | 你想要 Claude 提议更改而不执行它们,例如在代码审查期间或当你需要在进行更改前批准它们时 |


282以下是每个组件如何影响 SDK 中上下文的方式:282以下是每个组件如何影响 SDK 中上下文的方式:

283 283 

284| 源 | 何时加载 | 影响 |284| 源 | 何时加载 | 影响 |

285| :--------------- | :---------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------- |285| :- | :- | :- |

286| **系统提示** | 每个请求 | 小的固定成本,始终存在 |286| **系统提示** | 每个请求 | 小的固定成本,始终存在 |

287| **CLAUDE.md 文件** | 会话开始,通过 [`settingSources`](/docs/zh-CN/agent-sdk/claude-code-features) | 每个请求中的完整内容(但提示缓存,所以仅第一个请求支付全部成本) |287| **CLAUDE.md 文件** | 会话开始,通过 [`settingSources`](/docs/zh-CN/agent-sdk/claude-code-features) | 每个请求中的完整内容(但提示缓存,所以仅第一个请求支付全部成本) |

288| **工具定义** | 每个请求;MCP 架构默认延迟 | 内置工具架构在每个请求中加载。[工具搜索](/docs/zh-CN/agent-sdk/mcp#mcp-tool-search)默认延迟 MCP 工具架构,在不支持的模型和某些平台上回退到预先加载。有关完整矩阵,请参阅[配置工具搜索](/docs/zh-CN/agent-sdk/tool-search#configure-tool-search) |288| **工具定义** | 每个请求;MCP 架构默认延迟 | 内置工具架构在每个请求中加载。[工具搜索](/docs/zh-CN/agent-sdk/mcp#mcp-tool-search)默认延迟 MCP 工具架构,在不支持的模型和某些平台上回退到预先加载。有关完整矩阵,请参阅[配置工具搜索](/docs/zh-CN/agent-sdk/tool-search#configure-tool-search) |


353当循环结束时,`ResultMessage` 告诉你发生了什么并给你输出。`subtype` 字段(在两个 SDK 中都可用)是检查终止状态的主要方式。353当循环结束时,`ResultMessage` 告诉你发生了什么并给你输出。`subtype` 字段(在两个 SDK 中都可用)是检查终止状态的主要方式。

354 354 

355| 结果子类型 | 发生了什么 | `result` 字段可用? |355| 结果子类型 | 发生了什么 | `result` 字段可用? |

356| :------------------------------------ | :----------------------------------------------------- | :------------: |356| :- | :- | :-: |

357| `success` | Claude 正常完成了任务 | 是 |357| `success` | Claude 正常完成了任务 | 是 |

358| `error_max_turns` | 在完成前达到 `maxTurns` 限制 | 否 |358| `error_max_turns` | 在完成前达到 `maxTurns` 限制 | 否 |

359| `error_max_budget_usd` | 在完成前达到 `maxBudgetUsd` 限制 | 否 |359| `error_max_budget_usd` | 在完成前达到 `maxBudgetUsd` 限制 | 否 |


387[Hooks](/docs/zh-CN/agent-sdk/hooks) 是在循环中特定点触发的回调:在工具运行前、返回后、代理完成时等。一些常用的 hooks 是:387[Hooks](/docs/zh-CN/agent-sdk/hooks) 是在循环中特定点触发的回调:在工具运行前、返回后、代理完成时等。一些常用的 hooks 是:

388 388 

389| Hook | 何时触发 | 常见用途 |389| Hook | 何时触发 | 常见用途 |

390| :------------------------------- | :--------- | :---------- |390| :- | :- | :- |

391| `PreToolUse` | 在工具执行前 | 验证输入、阻止危险命令 |391| `PreToolUse` | 在工具执行前 | 验证输入、阻止危险命令 |

392| `PostToolUse` | 在工具返回后 | 审计输出、触发副作用 |392| `PostToolUse` | 在工具返回后 | 审计输出、触发副作用 |

393| `UserPromptSubmit` | 当发送提示时 | 将额外上下文注入提示 |393| `UserPromptSubmit` | 当发送提示时 | 将额外上下文注入提示 |

Details

76每个源从特定位置加载设置,其中 `<cwd>` 是您通过 `cwd` 选项传递的工作目录,或者如果未设置则为进程的当前目录。有关完整的类型定义,请参阅 [`SettingSource`](/docs/zh-CN/agent-sdk/typescript#settingsource)(TypeScript)或 [`SettingSource`](/docs/zh-CN/agent-sdk/python#settingsource)(Python)。76每个源从特定位置加载设置,其中 `<cwd>` 是您通过 `cwd` 选项传递的工作目录,或者如果未设置则为进程的当前目录。有关完整的类型定义,请参阅 [`SettingSource`](/docs/zh-CN/agent-sdk/typescript#settingsource)(TypeScript)或 [`SettingSource`](/docs/zh-CN/agent-sdk/python#settingsource)(Python)。

77 77 

78| 源 | 加载的内容 | 位置 |78| 源 | 加载的内容 | 位置 |

79| :---------- | :-------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |79| :- | :- | :- |

80| `"project"` | 项目 `settings.json` 和 hooks;项目 CLAUDE.md 和 `.claude/rules/*.md`;项目 skills、commands 和 subagents | `<cwd>/.claude/` 用于 `settings.json` 和 hooks;`<cwd>` 和每个父目录用于 CLAUDE.md 和规则;`<cwd>` 和每个父目录直到存储库根目录用于 skills、commands 和 subagents,加上您通过 `additionalDirectories` 或 `add_dirs` 选项传递的每个目录的 `.claude/skills/`、`.claude/commands/` 和 `.claude/agents/` 文件夹,SDK 将其作为 [`--add-dir`](/docs/zh-CN/permissions#additional-directories-grant-file-access-not-configuration) 传递给 Claude Code |80| `"project"` | 项目 `settings.json` 和 hooks;项目 CLAUDE.md 和 `.claude/rules/*.md`;项目 skills、commands 和 subagents | `<cwd>/.claude/` 用于 `settings.json` 和 hooks;`<cwd>` 和每个父目录用于 CLAUDE.md 和规则;`<cwd>` 和每个父目录直到存储库根目录用于 skills、commands 和 subagents,加上您通过 `additionalDirectories` 或 `add_dirs` 选项传递的每个目录的 `.claude/skills/`、`.claude/commands/` 和 `.claude/agents/` 文件夹,SDK 将其作为 [`--add-dir`](/docs/zh-CN/permissions#additional-directories-grant-file-access-not-configuration) 传递给 Claude Code |

81| `"user"` | 用户 `settings.json`;用户 CLAUDE.md 和 `~/.claude/rules/*.md`;用户 skills、commands 和 subagents | `~/.claude/` 用于 `settings.json`、CLAUDE.md 和规则;`~/.claude/skills/`、`~/.claude/commands/` 和 `~/.claude/agents/` 用于 skills、commands 和 subagents |81| `"user"` | 用户 `settings.json`;用户 CLAUDE.md 和 `~/.claude/rules/*.md`;用户 skills、commands 和 subagents | `~/.claude/` 用于 `settings.json`、CLAUDE.md 和规则;`~/.claude/skills/`、`~/.claude/commands/` 和 `~/.claude/agents/` 用于 skills、commands 和 subagents |

82| `"local"` | CLAUDE.local.md、`.claude/settings.local.json` | `<cwd>/.claude/` 用于 `settings.local.json`;`<cwd>` 和每个父目录用于 CLAUDE.local.md |82| `"local"` | CLAUDE.local.md、`.claude/settings.local.json` | `<cwd>/.claude/` 用于 `settings.local.json`;`<cwd>` 和每个父目录用于 CLAUDE.local.md |


92`settingSources` 涵盖用户、项目和本地设置。无论其值如何,都会读取一些输入:92`settingSources` 涵盖用户、项目和本地设置。无论其值如何,都会读取一些输入:

93 93 

94| 输入 | 行为 | 禁用方式 |94| 输入 | 行为 | 禁用方式 |

95| :----------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------ |95| :- | :- | :- |

96| 托管策略设置 | 端点管理的策略(例如 MDM plist、注册表策略或托管设置文件)从主机加载。[服务器管理的设置](/docs/zh-CN/server-managed-settings)在会话使用符合条件的凭证(例如组织 OAuth 登录、直接配置的 API 密钥或 `user_oauth` [Anthropic 配置文件](/docs/zh-CN/authentication#anthropic-profiles-and-federation-credentials))进行身份验证时,在[符合条件的配置](/docs/zh-CN/server-managed-settings#platform-availability)上获取 | 端点策略:从主机中删除托管设置文件、plist 或注册表策略。服务器管理的设置:由您的 Claude 组织中的[所有者](/docs/zh-CN/server-managed-settings#access-control)控制;您无法从 SDK 禁用它们 |96| 托管策略设置 | 端点管理的策略(例如 MDM plist、注册表策略或托管设置文件)从主机加载。[服务器管理的设置](/docs/zh-CN/server-managed-settings)在会话使用符合条件的凭证(例如组织 OAuth 登录、直接配置的 API 密钥或 `user_oauth` [Anthropic 配置文件](/docs/zh-CN/authentication#anthropic-profiles-and-federation-credentials))进行身份验证时,在[符合条件的配置](/docs/zh-CN/server-managed-settings#platform-availability)上获取 | 端点策略:从主机中删除托管设置文件、plist 或注册表策略。服务器管理的设置:由您的 Claude 组织中的[所有者](/docs/zh-CN/server-managed-settings#access-control)控制;您无法从 SDK 禁用它们 |

97| `~/.claude.json` 全局配置 | 始终读取 | 使用 `env` 中的 `CLAUDE_CONFIG_DIR` 重新定位 |97| `~/.claude.json` 全局配置 | 始终读取 | 使用 `env` 中的 `CLAUDE_CONFIG_DIR` 重新定位 |

98| `~/.claude/projects/<project>/memory/` 处的自动内存 | 在会话启动时加载到系统提示中。代理使用标准 `Write` 和 `Edit` 工具而不是专用内存工具在那里写入新内存,因此必须启用这些工具才能让代理保存内存 | 在设置中设置 `autoMemoryEnabled: false`,或在 `env` 中设置 `CLAUDE_CODE_DISABLE_AUTO_MEMORY=1` |98| `~/.claude/projects/<project>/memory/` 处的自动内存 | 在会话启动时加载到系统提示中。代理使用标准 `Write` 和 `Edit` 工具而不是专用内存工具在那里写入新内存,因此必须启用这些工具才能让代理保存内存 | 在设置中设置 `autoMemoryEnabled: false`,或在 `env` 中设置 `CLAUDE_CODE_DISABLE_AUTO_MEMORY=1` |


114</h3>114</h3>

115 115 

116| 级别 | 位置 | 加载时间 |116| 级别 | 位置 | 加载时间 |

117| :------ | :-------------------------------------------------------- | :------------------------------------------------ |117| :- | :- | :- |

118| 项目(根) | `<cwd>/CLAUDE.md` 或 `<cwd>/.claude/CLAUDE.md` | `settingSources` 包含 `"project"` |118| 项目(根) | `<cwd>/CLAUDE.md` 或 `<cwd>/.claude/CLAUDE.md` | `settingSources` 包含 `"project"` |

119| 项目规则 | `<cwd>/.claude/rules/*.md` 和 `.claude/rules/*.md` 在每个父目录中 | `settingSources` 包含 `"project"` |119| 项目规则 | `<cwd>/.claude/rules/*.md` 和 `.claude/rules/*.md` 在每个父目录中 | `settingSources` 包含 `"project"` |

120| 项目(父目录) | `cwd` 上方目录中的 `CLAUDE.md` 文件 | `settingSources` 包含 `"project"`,在会话开始时加载 |120| 项目(父目录) | `cwd` 上方目录中的 `CLAUDE.md` 文件 | `settingSources` 包含 `"project"`,在会话开始时加载 |


286</h3>286</h3>

287 287 

288| Hook 类型 | 最适合 |288| Hook 类型 | 最适合 |

289| :------------------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------------------- |289| :- | :- |

290| **文件系统**(`settings.json`) | 在 CLI 和 SDK 会话之间共享 hooks。支持 `"command"`(shell 脚本)、`"http"`(POST 到端点)、`"mcp_tool"`(调用连接的 MCP 服务器的工具)、`"prompt"`(LLM 评估提示)和 `"agent"`(生成验证器代理)。这些在主代理和它生成的任何子代理中触发。 |290| **文件系统**(`settings.json`) | 在 CLI 和 SDK 会话之间共享 hooks。支持 `"command"`(shell 脚本)、`"http"`(POST 到端点)、`"mcp_tool"`(调用连接的 MCP 服务器的工具)、`"prompt"`(LLM 评估提示)和 `"agent"`(生成验证器代理)。这些在主代理和它生成的任何子代理中触发。 |

291| **编程**(`query()` 中的回调) | 应用程序特定的逻辑、结构化决策和进程内集成。这些也在子代理内触发。hook 输入(回调的第一个参数)携带 `agent_id` 和 `agent_type` 字段,用于识别哪个代理触发了 hook。 |291| **编程**(`query()` 中的回调) | 应用程序特定的逻辑、结构化决策和进程内集成。这些也在子代理内触发。hook 输入(回调的第一个参数)携带 `agent_id` 和 `agent_type` 字段,用于识别哪个代理触发了 hook。 |

292 292 


303Agent SDK 为您提供了多种方式来扩展代理的行为。如果您不确定使用哪种,此表将常见目标映射到正确的方法。303Agent SDK 为您提供了多种方式来扩展代理的行为。如果您不确定使用哪种,此表将常见目标映射到正确的方法。

304 304 

305| 您想要做什么 | 使用 | SDK 表面 |305| 您想要做什么 | 使用 | SDK 表面 |

306| :-------------------------------------- | :--------------------------------------- | :------------------------------------------------------ |306| :- | :- | :- |

307| 设置代理始终遵循的项目约定 | [CLAUDE.md](/docs/zh-CN/memory) | `settingSources: ["project"]` 自动加载它 |307| 设置代理始终遵循的项目约定 | [CLAUDE.md](/docs/zh-CN/memory) | `settingSources: ["project"]` 自动加载它 |

308| 为代理提供它在相关时加载的参考材料 | [Skills](/docs/zh-CN/agent-sdk/skills) | `settingSources` + `skills` 选项 |308| 为代理提供它在相关时加载的参考材料 | [Skills](/docs/zh-CN/agent-sdk/skills) | `settingSources` + `skills` 选项 |

309| 运行可重用的工作流(部署、审查、发布) | [用户可调用的 skills](/docs/zh-CN/agent-sdk/skills) | `settingSources` + `skills` 选项 |309| 运行可重用的工作流(部署、审查、发布) | [用户可调用的 skills](/docs/zh-CN/agent-sdk/skills) | `settingSources` + `skills` 选项 |

Details

287下表将每个选项映射到它配置的功能。有关本页面未涵盖的选项,请参阅[TypeScript](/docs/zh-CN/agent-sdk/typescript#options) 和 [Python](/docs/zh-CN/agent-sdk/python#claudeagentoptions) 参考。如果你知道你的目标但不知道哪个选项服务于它,请从[选择正确的功能](/docs/zh-CN/agent-sdk/claude-code-features#choose-the-right-feature)开始。287下表将每个选项映射到它配置的功能。有关本页面未涵盖的选项,请参阅[TypeScript](/docs/zh-CN/agent-sdk/typescript#options) 和 [Python](/docs/zh-CN/agent-sdk/python#claudeagentoptions) 参考。如果你知道你的目标但不知道哪个选项服务于它,请从[选择正确的功能](/docs/zh-CN/agent-sdk/claude-code-features#choose-the-right-feature)开始。

288 288 

289| TypeScript | Python | 控制 | 涵盖在 |289| TypeScript | Python | 控制 | 涵盖在 |

290| ------------------------- | --------------------------- | ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |290| - | - | - | - |

291| `permissionMode` | `permission_mode` | 代理无需批准可以做什么 | [配置权限](/docs/zh-CN/agent-sdk/permissions) |291| `permissionMode` | `permission_mode` | 代理无需批准可以做什么 | [配置权限](/docs/zh-CN/agent-sdk/permissions) |

292| `allowedTools` | `allowed_tools` | 哪些工具调用被预先批准 | [配置权限](/docs/zh-CN/agent-sdk/permissions) |292| `allowedTools` | `allowed_tools` | 哪些工具调用被预先批准 | [配置权限](/docs/zh-CN/agent-sdk/permissions) |

293| `canUseTool` | `can_use_tool` | 你对工具调用的批准回调 | [处理工具批准请求](/docs/zh-CN/agent-sdk/user-input#handle-tool-approval-requests) |293| `canUseTool` | `can_use_tool` | 你对工具调用的批准回调 | [处理工具批准请求](/docs/zh-CN/agent-sdk/user-input#handle-tool-approval-requests) |

Details

96当代理生成 [子代理](/docs/zh-CN/agent-sdk/subagents) 时,三个结果级字段在计数内容上有所不同。使用 `modelUsage`,或在 Python 中使用 `model_usage`,进行整树令牌计数;`usage` 字段一旦发生嵌套就会低估。96当代理生成 [子代理](/docs/zh-CN/agent-sdk/subagents) 时,三个结果级字段在计数内容上有所不同。使用 `modelUsage`,或在 Python 中使用 `model_usage`,进行整树令牌计数;`usage` 字段一旦发生嵌套就会低估。

97 97 

98| 字段 | 子代理活动 |98| 字段 | 子代理活动 |

99| ---------------------------- | ------------------------------ |99| - | - |

100| `usage` | 已排除。仅计算顶级代理循环,因此子代理内消耗的令牌不会被添加 |100| `usage` | 已排除。仅计算顶级代理循环,因此子代理内消耗的令牌不会被添加 |

101| `total_cost_usd` | 已包含。计算子代理请求以及顶级循环 |101| `total_cost_usd` | 已包含。计算子代理请求以及顶级循环 |

102| `modelUsage` / `model_usage` | 已包含。计算子代理请求以及顶级循环,按模型分解 |102| `modelUsage` / `model_usage` | 已包含。计算子代理请求以及顶级循环,按模型分解 |

Details

13</h2>13</h2>

14 14 

15| 如果您想... | 执行此操作 |15| 如果您想... | 执行此操作 |

16| :------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------- |16| :- | :- |

17| 定义工具 | 使用 [`@tool`](/docs/zh-CN/agent-sdk/python#tool)(Python)或 [`tool()`](/docs/zh-CN/agent-sdk/typescript#tool)(TypeScript),包含名称、描述、架构和处理程序。请参阅[创建自定义工具](#create-a-custom-tool)。 |17| 定义工具 | 使用 [`@tool`](/docs/zh-CN/agent-sdk/python#tool)(Python)或 [`tool()`](/docs/zh-CN/agent-sdk/typescript#tool)(TypeScript),包含名称、描述、架构和处理程序。请参阅[创建自定义工具](#create-a-custom-tool)。 |

18| 向 Claude 注册工具 | 在 `create_sdk_mcp_server` / `createSdkMcpServer` 中包装并传递给 `query()` 中的 `mcpServers`。请参阅[调用自定义工具](#call-a-custom-tool)。 |18| 向 Claude 注册工具 | 在 `create_sdk_mcp_server` / `createSdkMcpServer` 中包装并传递给 `query()` 中的 `mcpServers`。请参阅[调用自定义工具](#call-a-custom-tool)。 |

19| 预先批准工具 | 添加到您的允许工具列表。请参阅[配置允许的工具](#configure-allowed-tools)。 |19| 预先批准工具 | 添加到您的允许工具列表。请参阅[配置允许的工具](#configure-allowed-tools)。 |


282[工具注释](https://modelcontextprotocol.io/docs/concepts/tools#tool-annotations)是描述工具行为方式的可选元数据。在 TypeScript 中将它们作为 `tool()` 辅助函数的第五个参数传递,或在 Python 中通过 `@tool` 装饰器的 `annotations` 关键字参数传递。所有提示字段都是布尔值。282[工具注释](https://modelcontextprotocol.io/docs/concepts/tools#tool-annotations)是描述工具行为方式的可选元数据。在 TypeScript 中将它们作为 `tool()` 辅助函数的第五个参数传递,或在 Python 中通过 `@tool` 装饰器的 `annotations` 关键字参数传递。所有提示字段都是布尔值。

283 283 

284| 字段 | 默认值 | 含义 |284| 字段 | 默认值 | 含义 |

285| :---------------- | :------ | :---------------------------- |285| :- | :- | :- |

286| `readOnlyHint` | `false` | 工具不修改其环境。控制工具是否可以与其他只读工具并行调用。 |286| `readOnlyHint` | `false` | 工具不修改其环境。控制工具是否可以与其他只读工具并行调用。 |

287| `destructiveHint` | `true` | 工具可能执行破坏性更新。仅供参考。 |287| `destructiveHint` | `true` | 工具可能执行破坏性更新。仅供参考。 |

288| `idempotentHint` | `false` | 使用相同参数的重复调用没有额外效果。仅供参考。 |288| `idempotentHint` | `false` | 使用相同参数的重复调用没有额外效果。仅供参考。 |


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

339 339 

340| 选项 | 层级 | 效果 |340| 选项 | 层级 | 效果 |

341| :------------------------ | :-- | :------------------------------------------------------------------------------------------------------------------------------------ |341| :- | :- | :- |

342| `tools: ["Read", "Grep"]` | 可用性 | 仅列出的内置工具在Claude的上下文中。未列出的内置工具被移除。MCP工具不受影响。 |342| `tools: ["Read", "Grep"]` | 可用性 | 仅列出的内置工具在Claude的上下文中。未列出的内置工具被移除。MCP工具不受影响。 |

343| `tools: []` | 可用性 | 所有内置工具都被移除。Claude只能使用您的MCP工具。 |343| `tools: []` | 可用性 | 所有内置工具都被移除。Claude只能使用您的MCP工具。 |

344| 允许的工具 | 权限 | 列出的工具无需权限提示即可运行。其他未列出的工具保持可用;调用通过[权限流程](/docs/zh-CN/agent-sdk/permissions)进行。 |344| 允许的工具 | 权限 | 列出的工具无需权限提示即可运行。其他未列出的工具保持可用;调用通过[权限流程](/docs/zh-CN/agent-sdk/permissions)进行。 |


353处理程序错误不会停止代理循环。SDK 的进程内 MCP 服务器捕获未捕获的异常并将其作为错误结果返回,因此您报告错误的方式决定了 Claude 读取的内容,而不是查询是否失败:353处理程序错误不会停止代理循环。SDK 的进程内 MCP 服务器捕获未捕获的异常并将其作为错误结果返回,因此您报告错误的方式决定了 Claude 读取的内容,而不是查询是否失败:

354 354 

355| 发生的情况 | 结果 |355| 发生的情况 | 结果 |

356| :------------------------------------------------------------- | :----------------------------------------------- |356| :- | :- |

357| 处理程序抛出未捕获的异常 | MCP 服务器将其转换为携带原始异常消息的错误结果。Claude 看到该消息,代理循环继续。 |357| 处理程序抛出未捕获的异常 | MCP 服务器将其转换为携带原始异常消息的错误结果。Claude 看到该消息,代理循环继续。 |

358| 处理程序捕获错误并返回 `isError: true` (TS) / `"is_error": True` (Python) | Claude 看到您编写的消息。您可以添加原始异常缺少的上下文,例如哪个请求失败或应该尝试什么。 |358| 处理程序捕获错误并返回 `isError: true` (TS) / `"is_error": True` (Python) | Claude 看到您编写的消息。您可以添加原始异常缺少的上下文,例如哪个请求失败或应该尝试什么。 |

359 359 


472图像块以 base64 编码的方式内联携带图像字节。没有 URL 字段。要返回位于 URL 的图像,请在处理程序中获取它,读取响应字节,并在返回之前对其进行 base64 编码。结果被处理为视觉输入。472图像块以 base64 编码的方式内联携带图像字节。没有 URL 字段。要返回位于 URL 的图像,请在处理程序中获取它,读取响应字节,并在返回之前对其进行 base64 编码。结果被处理为视觉输入。

473 473 

474| 字段 | 类型 | 说明 |474| 字段 | 类型 | 说明 |

475| :--------- | :-------- | :------------------------------------------------------ |475| :- | :- | :- |

476| `type` | `"image"` | |476| `type` | `"image"` | |

477| `data` | `string` | Base64 编码的字节。仅原始 base64,不带 `data:image/...;base64,` 前缀 |477| `data` | `string` | Base64 编码的字节。仅原始 base64,不带 `data:image/...;base64,` 前缀 |

478| `mimeType` | `string` | 必需。例如 `image/png`、`image/jpeg`、`image/webp`、`image/gif` |478| `mimeType` | `string` | 必需。例如 `image/png`、`image/jpeg`、`image/webp`、`image/gif` |


541资源块嵌入由 URI 标识的内容片段。URI 是 Claude 引用的标签;实际内容位于块的 `text` 或 `blob` 字段中。当您的工具生成稍后按名称引用有意义的内容时,请使用此方法,例如生成的文件或来自外部系统的记录。541资源块嵌入由 URI 标识的内容片段。URI 是 Claude 引用的标签;实际内容位于块的 `text` 或 `blob` 字段中。当您的工具生成稍后按名称引用有意义的内容时,请使用此方法,例如生成的文件或来自外部系统的记录。

542 542 

543| 字段 | 类型 | 说明 |543| 字段 | 类型 | 说明 |

544| :------------------ | :----------- | :-------------------------------------------------------------- |544| :- | :- | :- |

545| `type` | `"resource"` | |545| `type` | `"resource"` | |

546| `resource.uri` | `string` | 内容的标识符。任何 URI 方案 |546| `resource.uri` | `string` | 内容的标识符。任何 URI 方案 |

547| `resource.text` | `string` | 内容(如果是文本)。提供此项或 `blob`,但不能同时提供两者 |547| `resource.text` | `string` | 内容(如果是文本)。提供此项或 `blob`,但不能同时提供两者 |

Details

149 配置您的SDK选项以启用checkpointing并接收checkpoint UUID:149 配置您的SDK选项以启用checkpointing并接收checkpoint UUID:

150 150 

151 | 选项 | Python | TypeScript | 描述 |151 | 选项 | Python | TypeScript | 描述 |

152 | ----------------- | ------------------------------------------- | --------------------------------------------- | --------------- |152 | - | - | - | - |

153 | 启用checkpointing | `enable_file_checkpointing=True` | `enableFileCheckpointing: true` | 跟踪文件更改以便回滚 |153 | 启用checkpointing | `enable_file_checkpointing=True` | `enableFileCheckpointing: true` | 跟踪文件更改以便回滚 |

154 | 接收checkpoint UUID | `extra_args={"replay-user-messages": None}` | `extraArgs: { 'replay-user-messages': null }` | 需要在流中获取用户消息UUID |154 | 接收checkpoint UUID | `extra_args={"replay-user-messages": None}` | `extraArgs: { 'replay-user-messages': null }` | 需要在流中获取用户消息UUID |

155 155 


718文件checkpointing有以下限制:718文件checkpointing有以下限制:

719 719 

720| 限制 | 描述 |720| 限制 | 描述 |

721| -------------------------- | ------------------------------------------------------------------------------------------------- |721| - | - |

722| 仅Write/Edit/NotebookEdit工具 | 通过Bash命令进行的更改不被跟踪 |722| 仅Write/Edit/NotebookEdit工具 | 通过Bash命令进行的更改不被跟踪 |

723| Subagent编辑 | [Subagent](/docs/zh-CN/agent-sdk/subagents)应用的编辑不被跟踪或恢复,除了在前台运行的具有`context: fork`的skill;使用git来恢复未跟踪的编辑 |723| Subagent编辑 | [Subagent](/docs/zh-CN/agent-sdk/subagents)应用的编辑不被跟踪或恢复,除了在前台运行的具有`context: fork`的skill;使用git来恢复未跟踪的编辑 |

724| 相同会话 | Checkpoint与创建它们的会话相关联 |724| 相同会话 | Checkpoint与创建它们的会话相关联 |

Details

149SDK 为代理执行的不同阶段提供 hooks。某些 hooks 在两个 SDK 中都可用,而其他 hooks 仅在 TypeScript 中可用。149SDK 为代理执行的不同阶段提供 hooks。某些 hooks 在两个 SDK 中都可用,而其他 hooks 仅在 TypeScript 中可用。

150 150 

151| Hook 事件 | Python SDK | TypeScript SDK | 触发条件 | 示例用例 |151| Hook 事件 | Python SDK | TypeScript SDK | 触发条件 | 示例用例 |

152| --------------------------------------------------------- | ---------- | -------------- | ----------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- |152| - | - | - | - | - |

153| `PreToolUse` | 是 | 是 | 工具调用请求(可以阻止或修改) | 阻止危险的 shell 命令 |153| `PreToolUse` | 是 | 是 | 工具调用请求(可以阻止或修改) | 阻止危险的 shell 命令 |

154| `PostToolUse` | 是 | 是 | 工具执行结果 | 将所有文件更改记录到审计跟踪 |154| `PostToolUse` | 是 | 是 | 工具执行结果 | 将所有文件更改记录到审计跟踪 |

155| `PostToolUseFailure` | 是 | 是 | 工具执行失败 | 处理或记录工具错误 |155| `PostToolUseFailure` | 是 | 是 | 工具执行失败 | 处理或记录工具错误 |


230SDK 匹配器遵循与[设置文件中的匹配器](/docs/zh-CN/hooks#matcher-patterns)相同的规则。该部分记录了精确字符串和正则表达式评估路径、它们的版本要求以及每个事件类型的匹配器值。230SDK 匹配器遵循与[设置文件中的匹配器](/docs/zh-CN/hooks#matcher-patterns)相同的规则。该部分记录了精确字符串和正则表达式评估路径、它们的版本要求以及每个事件类型的匹配器值。

231 231 

232| 选项 | 类型 | 默认值 | 描述 |232| 选项 | 类型 | 默认值 | 描述 |

233| --------- | ---------------- | ----------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |233| - | - | - | - |

234| `matcher` | `string` | `undefined` | 针对事件的过滤字段匹配的模式,遵循[设置文件中匹配器的规则](/docs/zh-CN/hooks#matcher-patterns)。对于工具 hooks,这是工具名称。内置工具包括 `Bash`、`Read`、`Write`、`Edit`、`Glob`、`Grep`、`WebFetch`、`Agent` 等(请参阅[工具输入类型](/docs/zh-CN/agent-sdk/typescript#tool-input-types)以获取完整列表)。MCP 工具使用模式 `mcp__<server>__<action>`,其中 `<server>` 是您在 `mcpServers` 配置中使用的键。 |234| `matcher` | `string` | `undefined` | 针对事件的过滤字段匹配的模式,遵循[设置文件中匹配器的规则](/docs/zh-CN/hooks#matcher-patterns)。对于工具 hooks,这是工具名称。内置工具包括 `Bash`、`Read`、`Write`、`Edit`、`Glob`、`Grep`、`WebFetch`、`Agent` 等(请参阅[工具输入类型](/docs/zh-CN/agent-sdk/typescript#tool-input-types)以获取完整列表)。MCP 工具使用模式 `mcp__<server>__<action>`,其中 `<server>` 是您在 `mcpServers` 配置中使用的键。 |

235| `hooks` | `HookCallback[]` | - | 必需。当模式匹配时执行的回调函数数组 |235| `hooks` | `HookCallback[]` | - | 必需。当模式匹配时执行的回调函数数组 |

236| `timeout` | `number` | `undefined` | 超时时间(秒)。省略时,Claude Code 应用[事件的默认超时](#hook-timeout)。您的 SDK 回调遵循 `command` hook 默认值 |236| `timeout` | `number` | `undefined` | 超时时间(秒)。省略时,Claude Code 应用[事件的默认超时](#hook-timeout)。您的 SDK 回调遵循 `command` hook 默认值 |


295</CodeGroup>295</CodeGroup>

296 296 

297| 字段 | 类型 | 描述 |297| 字段 | 类型 | 描述 |

298| -------------- | -------- | ------------------------------------------------ |298| - | - | - |

299| `async` | `true` | 表示异步模式。代理继续而不等待。在 Python 中,使用 `async_` 以避免保留关键字。 |299| `async` | `true` | 表示异步模式。代理继续而不等待。在 Python 中,使用 `async_` 以避免保留关键字。 |

300| `asyncTimeout` | `number` | 后台操作的可选超时时间(毫秒) |300| `asyncTimeout` | `number` | 后台操作的可选超时时间(毫秒) |

301 301 

Details

63三种代理状态默认存储在容器的文件系统上。它们都不会在容器重启、缩减或移动到不同节点时保留。63三种代理状态默认存储在容器的文件系统上。它们都不会在容器重启、缩减或移动到不同节点时保留。

64 64 

65| 状态 | 默认位置 |65| 状态 | 默认位置 |

66| ---------------- | --------------------------------------------------------------------- |66| - | - |

67| 会话记录 | `~/.claude/projects/`,或如果设置了 `CLAUDE_CONFIG_DIR` 则为其下的 `projects/` 目录 |67| 会话记录 | `~/.claude/projects/`,或如果设置了 `CLAUDE_CONFIG_DIR` 则为其下的 `projects/` 目录 |

68| `CLAUDE.md` 内存文件 | 用户层级为 `~/.claude/CLAUDE.md`,项目层级为会话的工作目录 |68| `CLAUDE.md` 内存文件 | 用户层级为 `~/.claude/CLAUDE.md`,项目层级为会话的工作目录 |

69| 工作目录工件 | 会话的工作目录 |69| 工作目录工件 | 会话的工作目录 |


379在您的部署设计中规划这些限制。379在您的部署设计中规划这些限制。

380 380 

381| 限制 | 解决方案 |381| 限制 | 解决方案 |

382| ------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |382| - | - |

383| 没有顶级会话超时 | 会话不会自动超时。在 TypeScript 中设置 `maxTurns` 或在 Python 中设置 `max_turns` 来限制代理在停止前进行多少次工具使用往返。 |383| 没有顶级会话超时 | 会话不会自动超时。在 TypeScript 中设置 `maxTurns` 或在 Python 中设置 `max_turns` 来限制代理在停止前进行多少次工具使用往返。 |

384| 长会话中的内存增长 | 限制会话长度或定期回收子进程。请参阅[扩展和并发](#scaling-and-concurrency)。 |384| 长会话中的内存增长 | 限制会话长度或定期回收子进程。请参阅[扩展和并发](#scaling-and-concurrency)。 |

385| 大规模并行子代理扇出可能会触发速率限制 | 将工作分解为较小的批次,而不是发出一个宽范围的调度。 |385| 大规模并行子代理扇出可能会触发速率限制 | 将工作分解为较小的批次,而不是发出一个宽范围的调度。 |

Details

159Claude Code 在启动时注册你在 `options.mcpServers` 中传递的服务器,并在第一轮等待(如果有的话)解决后发出 [init 消息](#error-handling)。每个 `options.mcpServers` 服务器是否延迟第一轮,以及何时连接,取决于其类型:159Claude Code 在启动时注册你在 `options.mcpServers` 中传递的服务器,并在第一轮等待(如果有的话)解决后发出 [init 消息](#error-handling)。每个 `options.mcpServers` 服务器是否延迟第一轮,以及何时连接,取决于其类型:

160 160 

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

162| :------------------------------------ | :-------------- | :-------------------------------------------------- |162| :- | :- | :- |

163| stdio 服务器,或没有缓存工具列表的 HTTP/SSE 服务器 | 是,直到连接 | [`MCP_TIMEOUT`](/docs/zh-CN/env-vars),默认 30 秒;连接在该截止时间失败 |163| stdio 服务器,或没有缓存工具列表的 HTTP/SSE 服务器 | 是,直到连接 | [`MCP_TIMEOUT`](/docs/zh-CN/env-vars),默认 30 秒;连接在该截止时间失败 |

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

165| 进程内 [SDK 服务器](#sdk-mcp-servers) | 是,直到连接并列出其工具 | 无;连接和工具列表请求各有其自己的超时 |165| 进程内 [SDK 服务器](#sdk-mcp-servers) | 是,直到连接并列出其工具 | 无;连接和工具列表请求各有其自己的超时 |

Details

19</h2>19</h2>

20 20 

21| 方面 | 旧版 | 新版 |21| 方面 | 旧版 | 新版 |

22| :-------------- | :-------------------------- | :------------------------------------------------------------ |22| :- | :- | :- |

23| **包名称 (TS/JS)** | `@anthropic-ai/claude-code` | `@anthropic-ai/claude-agent-sdk` |23| **包名称 (TS/JS)** | `@anthropic-ai/claude-code` | `@anthropic-ai/claude-agent-sdk` |

24| **Python 包** | `claude-code-sdk` | `claude-agent-sdk` |24| **Python 包** | `claude-code-sdk` | `claude-agent-sdk` |

25| **文档位置** | Claude Code 文档 | Claude Code 文档 → 专用 [Agent SDK](/docs/zh-CN/agent-sdk/overview) 部分 |25| **文档位置** | Claude Code 文档 | Claude Code 文档 → 专用 [Agent SDK](/docs/zh-CN/agent-sdk/overview) 部分 |

Details

25决定因素是你的代理与 Claude Code 的相似程度:一个在存储库中运行的编码代理,有人类观看流式输出并指导工作。你的产品离这个越远,你就越想编写自己的提示词。25决定因素是你的代理与 Claude Code 的相似程度:一个在存储库中运行的编码代理,有人类观看流式输出并指导工作。你的产品离这个越远,你就越想编写自己的提示词。

26 26 

27| 你正在构建 | 使用 | 你获得的内容 |27| 你正在构建 | 使用 | 你获得的内容 |

28| :--------------------------------------------------- | :------------------------- | :------------------------------------------ |28| :- | :- | :- |

29| 一个 CLI 或类似 IDE 的编码工具,其中人类观看和指导,Claude Code 的默认值是你想要的 | `claude_code` 预设 | Claude Code 提示词,包括工具指导、安全规则和环境上下文 |29| 一个 CLI 或类似 IDE 的编码工具,其中人类观看和指导,Claude Code 的默认值是你想要的 | `claude_code` 预设 | Claude Code 提示词,包括工具指导、安全规则和环境上下文 |

30| 相同类型的工具,加上产品特定的规则,如编码标准、输出格式或域上下文 | `claude_code` 预设加 `append` | 上述所有内容,加上你的指令添加在预设之后。没有任何内容被删除,所以这是风险最低的自定义 |30| 相同类型的工具,加上产品特定的规则,如编码标准、输出格式或域上下文 | `claude_code` 预设加 `append` | 上述所有内容,加上你的指令添加在预设之后。没有任何内容被删除,所以这是风险最低的自定义 |

31| 具有不同表面、身份或权限模型的代理,或非编码代理 | 自定义提示词字符串 | 仅你编写的内容。你负责替换你的代理仍然需要的工具指导和安全指令 |31| 具有不同表面、身份或权限模型的代理,或非编码代理 | 自定义提示词字符串 | 仅你编写的内容。你负责替换你的代理仍然需要的工具指导和安全指令 |


425这四种自定义方法在存储位置、共享方式以及从 `claude_code` 预设保留的内容方面有所不同。425这四种自定义方法在存储位置、共享方式以及从 `claude_code` 预设保留的内容方面有所不同。

426 426 

427| 功能 | CLAUDE.md | 输出样式 | 带有追加的 `systemPrompt` | 自定义 `systemPrompt` |427| 功能 | CLAUDE.md | 输出样式 | 带有追加的 `systemPrompt` | 自定义 `systemPrompt` |

428| --------- | --------- | -------- | -------------------- | ------------------ |428| - | - | - | - | - |

429| **持久性** | 每个项目文件 | 保存为文件 | 仅会话 | 仅会话 |429| **持久性** | 每个项目文件 | 保存为文件 | 仅会话 | 仅会话 |

430| **可重用性** | 每个项目 | 跨项目 | 代码重复 | 代码重复 |430| **可重用性** | 每个项目 | 跨项目 | 代码重复 | 代码重复 |

431| **管理** | 在文件系统上 | CLI + 文件 | 在代码中 | 在代码中 |431| **管理** | 在文件系统上 | CLI + 文件 | 在代码中 | 在代码中 |

Details

31CLI 导出三个独立的 OpenTelemetry 信号。每个都有自己的启用开关和自己的导出器,因此您只能打开需要的信号。31CLI 导出三个独立的 OpenTelemetry 信号。每个都有自己的启用开关和自己的导出器,因此您只能打开需要的信号。

32 32 

33| 信号 | 包含内容 | 启用方式 |33| 信号 | 包含内容 | 启用方式 |

34| ---------- | ----------------------------- | ----------------------------------------------------------------- |34| - | - | - |

35| Metrics | 令牌、成本、会话、代码行数和工具决策的计数器 | `OTEL_METRICS_EXPORTER` |35| Metrics | 令牌、成本、会话、代码行数和工具决策的计数器 | `OTEL_METRICS_EXPORTER` |

36| Log events | 每个提示、API 请求、API 错误和工具结果的结构化记录 | `OTEL_LOGS_EXPORTER` |36| Log events | 每个提示、API 请求、API 错误和工具结果的结构化记录 | `OTEL_LOGS_EXPORTER` |

37| Traces | 每个交互、模型请求、工具调用和 hook 的跨度(测试版) | `OTEL_TRACES_EXPORTER` 加上 `CLAUDE_CODE_ENHANCED_TELEMETRY_BETA=1` |37| Traces | 每个交互、模型请求、工具调用和 hook 的跨度(测试版) | `OTEL_TRACES_EXPORTER` 加上 `CLAUDE_CODE_ENHANCED_TELEMETRY_BETA=1` |


244遥测在结构上是默认的。持续时间、模型名称和工具名称记录在每个跨度上;令牌计数在底层 API 请求返回使用情况数据时记录,因此失败或中止请求的跨度可能会省略它们。您的代理读取和写入的内容默认不记录。这些选择加入变量将内容添加到导出的数据:244遥测在结构上是默认的。持续时间、模型名称和工具名称记录在每个跨度上;令牌计数在底层 API 请求返回使用情况数据时记录,因此失败或中止请求的跨度可能会省略它们。您的代理读取和写入的内容默认不记录。这些选择加入变量将内容添加到导出的数据:

245 245 

246| 变量 | 添加 |246| 变量 | 添加 |

247| ------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |247| - | - |

248| `OTEL_LOG_USER_PROMPTS=1` | `claude_code.user_prompt` 事件和 `claude_code.interaction` 跨度上的提示文本 |248| `OTEL_LOG_USER_PROMPTS=1` | `claude_code.user_prompt` 事件和 `claude_code.interaction` 跨度上的提示文本 |

249| `OTEL_LOG_TOOL_DETAILS=1` | `claude_code.tool_result` 事件上的工具输入参数(文件路径、shell 命令、搜索模式) |249| `OTEL_LOG_TOOL_DETAILS=1` | `claude_code.tool_result` 事件上的工具输入参数(文件路径、shell 命令、搜索模式) |

250| `OTEL_LOG_TOOL_CONTENT=1` | `claude_code.tool` 上的[`tool.output` 跨度事件](/docs/zh-CN/monitoring-usage#tool-output-span-event),包含文件内容和 Bash 输出,默认在 60 KB 处截断,可通过 `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` 配置,需要 Claude Code v2.1.214 或更高版本。需要启用[跟踪](#read-agent-traces)。跨度属性在[其自己的门控](/docs/zh-CN/monitoring-usage#new-context-gates)下携带工具内容 |250| `OTEL_LOG_TOOL_CONTENT=1` | `claude_code.tool` 上的[`tool.output` 跨度事件](/docs/zh-CN/monitoring-usage#tool-output-span-event),包含文件内容和 Bash 输出,默认在 60 KB 处截断,可通过 `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` 配置,需要 Claude Code v2.1.214 或更高版本。需要启用[跟踪](#read-agent-traces)。跨度属性在[其自己的门控](/docs/zh-CN/monitoring-usage#new-context-gates)下携带工具内容 |

Details

15Agent SDK、CLI、Client SDK 和 Managed Agents 在谁运行代理、内置功能以及如何访问方面有所不同。找到与您想要构建和运行的方式相匹配的行。15Agent SDK、CLI、Client SDK 和 Managed Agents 在谁运行代理、内置功能以及如何访问方面有所不同。找到与您想要构建和运行的方式相匹配的行。

16 16 

17| 您想要 | 使用 | 您获得 |17| 您想要 | 使用 | 您获得 |

18| --------------------------------------------------- | --------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |18| - | - | - |

19| 在您自己操作的 Python 或 TypeScript 应用程序中嵌入 Claude Code 的代理 | **Agent SDK** | 一个运行 Claude Code 二进制文件的库,具有 Claude Code 的[功能](#capabilities),例如内置工具、权限、会话和 hooks。 |19| 在您自己操作的 Python 或 TypeScript 应用程序中嵌入 Claude Code 的代理 | **Agent SDK** | 一个运行 Claude Code 二进制文件的库,具有 Claude Code 的[功能](#capabilities),例如内置工具、权限、会话和 hooks。 |

20| 进行交互式开发或从终端运行一次性任务 | [**Claude Code CLI**](/docs/zh-CN/overview) | 终端界面,为日常交互使用而构建。 |20| 进行交互式开发或从终端运行一次性任务 | [**Claude Code CLI**](/docs/zh-CN/overview) | 终端界面,为日常交互使用而构建。 |

21| 直接从您自己的代码调用 Claude API | [**Client SDK**](https://platform.claude.com/docs/en/cli-sdks-libraries/overview) | 从任何客户端 SDK 语言直接访问 Claude API。您自己编写工具循环,或让客户端 SDK 的测试版[工具运行器](https://platform.claude.com/docs/en/agents-and-tools/tool-use/tool-runner)驱动它。 |21| 直接从您自己的代码调用 Claude API | [**Client SDK**](https://platform.claude.com/docs/en/cli-sdks-libraries/overview) | 从任何客户端 SDK 语言直接访问 Claude API。您自己编写工具循环,或让客户端 SDK 的测试版[工具运行器](https://platform.claude.com/docs/en/agents-and-tools/tool-use/tool-runner)驱动它。 |


30这些 Claude Code 功能在 SDK 中可用:30这些 Claude Code 功能在 SDK 中可用:

31 31 

32| 功能 | 功能说明 | 了解更多 |32| 功能 | 功能说明 | 了解更多 |

33| ------------ | ------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |33| - | - | - |

34| 内置工具 | 读取、写入、编辑文件,运行命令,搜索网络 | [工具参考](/docs/zh-CN/tools-reference) |34| 内置工具 | 读取、写入、编辑文件,运行命令,搜索网络 | [工具参考](/docs/zh-CN/tools-reference) |

35| Hooks | 在代理生命周期的关键点运行自定义代码 | [Hooks](/docs/zh-CN/agent-sdk/hooks) |35| Hooks | 在代理生命周期的关键点运行自定义代码 | [Hooks](/docs/zh-CN/agent-sdk/hooks) |

36| Subagents | 生成专门的代理来处理专注的子任务 | [Subagents](/docs/zh-CN/agent-sdk/subagents) |36| Subagents | 生成专门的代理来处理专注的子任务 | [Subagents](/docs/zh-CN/agent-sdk/subagents) |

Details

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

77 77 

78| 选项 | 效果 |78| 选项 | 效果 |

79| :-------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------- |79| :- | :- |

80| `allowed_tools=["Read", "Grep"]` | `Read` 和 `Grep` 被自动批准。此处未列出的其他工具仍然存在,对它们的调用如果需要批准,则会进入权限模式和 `canUseTool`。 |80| `allowed_tools=["Read", "Grep"]` | `Read` 和 `Grep` 被自动批准。此处未列出的其他工具仍然存在,对它们的调用如果需要批准,则会进入权限模式和 `canUseTool`。 |

81| `disallowed_tools=["Bash"]` | `Bash` 工具定义从请求中移除。Claude 看不到该工具,无法尝试使用它。 |81| `disallowed_tools=["Bash"]` | `Bash` 工具定义从请求中移除。Claude 看不到该工具,无法尝试使用它。 |

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


124SDK 支持以下权限模式:124SDK 支持以下权限模式:

125 125 

126| 模式 | 描述 | 工具行为 |126| 模式 | 描述 | 工具行为 |

127| :------------------ | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |127| :- | :- | :- |

128| `default` | 标准权限行为 | 无基于模式的自动批准;需要批准且不匹配任何允许规则的调用会触发您的 `canUseTool` 回调 |128| `default` | 标准权限行为 | 无基于模式的自动批准;需要批准且不匹配任何允许规则的调用会触发您的 `canUseTool` 回调 |

129| `dontAsk` | 拒绝而不是提示 | 任何会提示的调用都被拒绝。由 `allowed_tools` 或规则批准的调用会运行,`default` 模式下不需要批准的调用也会运行;连接器工具[您的组织设置为 `ask`](/docs/zh-CN/mcp#organization-controls-on-connector-tools)和需要用户交互的工具即使您已预先批准也会被拒绝,`rm` 和 `rmdir` 针对[关键路径](/docs/zh-CN/permission-modes#critical-paths)的删除也会被拒绝。`canUseTool` 永远不会被调用 |129| `dontAsk` | 拒绝而不是提示 | 任何会提示的调用都被拒绝。由 `allowed_tools` 或规则批准的调用会运行,`default` 模式下不需要批准的调用也会运行;连接器工具[您的组织设置为 `ask`](/docs/zh-CN/mcp#organization-controls-on-connector-tools)和需要用户交互的工具即使您已预先批准也会被拒绝,`rm` 和 `rmdir` 针对[关键路径](/docs/zh-CN/permission-modes#critical-paths)的删除也会被拒绝。`canUseTool` 永远不会被调用 |

130| `acceptEdits` | 自动接受文件编辑 | 文件编辑和[文件系统操作](#accept-edits-mode-acceptedits)(`mkdir`、`rm`、`mv` 等)会自动批准 |130| `acceptEdits` | 自动接受文件编辑 | 文件编辑和[文件系统操作](#accept-edits-mode-acceptedits)(`mkdir`、`rm`、`mv` 等)会自动批准 |

Details

27Python SDK 提供了两种与 Claude Code 交互的方式:27Python SDK 提供了两种与 Claude Code 交互的方式:

28 28 

29| 功能 | `query()` | `ClaudeSDKClient` |29| 功能 | `query()` | `ClaudeSDKClient` |

30| :-------- | :----------------------------------------- | :---------------- |30| :- | :- | :- |

31| **会话** | 默认创建新会话 | 重用同一会话 |31| **会话** | 默认创建新会话 | 重用同一会话 |

32| **对话** | 单次交换 | 同一上下文中的多次交换 |32| **对话** | 单次交换 | 同一上下文中的多次交换 |

33| **连接** | 自动管理 | 手动控制 |33| **连接** | 自动管理 | 手动控制 |


66</h4>66</h4>

67 67 

68| 参数 | 类型 | 描述 |68| 参数 | 类型 | 描述 |

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

70| `prompt` | `str \| AsyncIterable[dict]` | 输入提示,可以是字符串或用于流式模式的异步可迭代对象 |70| `prompt` | `str \| AsyncIterable[dict]` | 输入提示,可以是字符串或用于流式模式的异步可迭代对象 |

71| `options` | `ClaudeAgentOptions \| None` | 可选配置对象(如果为 None,默认为 `ClaudeAgentOptions()`) |71| `options` | `ClaudeAgentOptions \| None` | 可选配置对象(如果为 None,默认为 `ClaudeAgentOptions()`) |

72| `transport` | `Transport \| None` | 用于与 CLI 进程通信的可选自定义传输 |72| `transport` | `Transport \| None` | 用于与 CLI 进程通信的可选自定义传输 |


119</h4>119</h4>

120 120 

121| 参数 | 类型 | 描述 |121| 参数 | 类型 | 描述 |

122| :------------- | :---------------------------------------------- | :--------------------------------------------- |122| :- | :- | :- |

123| `name` | `str` | 工具的唯一标识符 |123| `name` | `str` | 工具的唯一标识符 |

124| `description` | `str` | 工具功能的人类可读描述 |124| `description` | `str` | 工具功能的人类可读描述 |

125| `input_schema` | `type \| dict[str, Any]` | 定义工具输入参数的模式。参见 [输入模式选项](#input-schema-options) |125| `input_schema` | `type \| dict[str, Any]` | 定义工具输入参数的模式。参见 [输入模式选项](#input-schema-options) |


178所有字段都是可选的。客户端不应依赖这些提示做出安全决策。178所有字段都是可选的。客户端不应依赖这些提示做出安全决策。

179 179 

180| 字段 | 类型 | 默认值 | 描述 |180| 字段 | 类型 | 默认值 | 描述 |

181| :------------------- | :------------- | :------ | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |181| :- | :- | :- | :- |

182| `title` | `str \| None` | `None` | 工具的人类可读标题 |182| `title` | `str \| None` | `None` | 工具的人类可读标题 |

183| `readOnlyHint` | `bool \| None` | `False` | 如果为 `True`,工具不修改其环境 |183| `readOnlyHint` | `bool \| None` | `False` | 如果为 `True`,工具不修改其环境 |

184| `destructiveHint` | `bool \| None` | `True` | 如果为 `True`,工具可能执行破坏性更新(仅当 `readOnlyHint` 为 `False` 时有意义) |184| `destructiveHint` | `bool \| None` | `True` | 如果为 `True`,工具可能执行破坏性更新(仅当 `readOnlyHint` 为 `False` 时有意义) |


220</h4>220</h4>

221 221 

222| 参数 | 类型 | 默认值 | 描述 |222| 参数 | 类型 | 默认值 | 描述 |

223| :-------- | :------------------------------ | :-------- | :---------------------- |223| :- | :- | :- | :- |

224| `name` | `str` | - | 服务器的唯一标识符 |224| `name` | `str` | - | 服务器的唯一标识符 |

225| `version` | `str` | `"1.0.0"` | 服务器版本字符串 |225| `version` | `str` | `"1.0.0"` | 服务器版本字符串 |

226| `tools` | `list[SdkMcpTool[Any]] \| None` | `None` | 使用 `@tool` 装饰器创建的工具函数列表 |226| `tools` | `list[SdkMcpTool[Any]] \| None` | `None` | 使用 `@tool` 装饰器创建的工具函数列表 |


282</h4>282</h4>

283 283 

284| 参数 | 类型 | 默认值 | 描述 |284| 参数 | 类型 | 默认值 | 描述 |

285| :------------------ | :------------ | :----- | :--------------------------------------------- |285| :- | :- | :- | :- |

286| `directory` | `str \| None` | `None` | 列出会话的目录。省略时,返回所有项目中的会话 |286| `directory` | `str \| None` | `None` | 列出会话的目录。省略时,返回所有项目中的会话 |

287| `limit` | `int \| None` | `None` | 返回的最大会话数 |287| `limit` | `int \| None` | `None` | 返回的最大会话数 |

288| `offset` | `int` | `0` | 从排序结果开始跳过的会话数。与 `limit` 一起用于分页 |288| `offset` | `int` | `0` | 从排序结果开始跳过的会话数。与 `limit` 一起用于分页 |


293</h4>293</h4>

294 294 

295| 属性 | 类型 | 描述 |295| 属性 | 类型 | 描述 |

296| :-------------- | :------------ | :------------------------------------------- |296| :- | :- | :- |

297| `session_id` | `str` | 唯一会话标识符 |297| `session_id` | `str` | 唯一会话标识符 |

298| `summary` | `str` | 显示标题:自定义标题、自动生成的摘要或第一个提示 |298| `summary` | `str` | 显示标题:自定义标题、自动生成的摘要或第一个提示 |

299| `last_modified` | `int` | 上次修改时间(自纪元以来的毫秒数) |299| `last_modified` | `int` | 上次修改时间(自纪元以来的毫秒数) |


338</h4>338</h4>

339 339 

340| 参数 | 类型 | 默认值 | 描述 |340| 参数 | 类型 | 默认值 | 描述 |

341| :----------- | :------------ | :----- | :------------------ |341| :- | :- | :- | :- |

342| `session_id` | `str` | 必需 | 要检索消息的会话 ID |342| `session_id` | `str` | 必需 | 要检索消息的会话 ID |

343| `directory` | `str \| None` | `None` | 要查看的项目目录。省略时,搜索所有项目 |343| `directory` | `str \| None` | `None` | 要查看的项目目录。省略时,搜索所有项目 |

344| `limit` | `int \| None` | `None` | 返回的最大消息数 |344| `limit` | `int \| None` | `None` | 返回的最大消息数 |


349</h4>349</h4>

350 350 

351| 属性 | 类型 | 描述 |351| 属性 | 类型 | 描述 |

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

353| `type` | `Literal["user", "assistant"]` | 消息角色 |353| `type` | `Literal["user", "assistant"]` | 消息角色 |

354| `uuid` | `str` | 唯一消息标识符 |354| `uuid` | `str` | 唯一消息标识符 |

355| `session_id` | `str` | 会话标识符 |355| `session_id` | `str` | 会话标识符 |


389</h4>389</h4>

390 390 

391| 参数 | 类型 | 默认值 | 描述 |391| 参数 | 类型 | 默认值 | 描述 |

392| :----------- | :------------ | :----- | :------------------ |392| :- | :- | :- | :- |

393| `session_id` | `str` | 必需 | 要查找的会话的 UUID |393| `session_id` | `str` | 必需 | 要查找的会话的 UUID |

394| `directory` | `str \| None` | `None` | 项目目录路径。省略时,搜索所有项目目录 |394| `directory` | `str \| None` | `None` | 项目目录路径。省略时,搜索所有项目目录 |

395 395 


428</h4>428</h4>

429 429 

430| 参数 | 类型 | 默认值 | 描述 |430| 参数 | 类型 | 默认值 | 描述 |

431| :----------- | :------------ | :----- | :------------------ |431| :- | :- | :- | :- |

432| `session_id` | `str` | 必需 | 要重命名的会话的 UUID |432| `session_id` | `str` | 必需 | 要重命名的会话的 UUID |

433| `title` | `str` | 必需 | 新标题。去除空格后必须非空 |433| `title` | `str` | 必需 | 新标题。去除空格后必须非空 |

434| `directory` | `str \| None` | `None` | 项目目录路径。省略时,搜索所有项目目录 |434| `directory` | `str \| None` | `None` | 项目目录路径。省略时,搜索所有项目目录 |


468</h4>468</h4>

469 469 

470| 参数 | 类型 | 默认值 | 描述 |470| 参数 | 类型 | 默认值 | 描述 |

471| :----------- | :------------ | :----- | :---------------------------------- |471| :- | :- | :- | :- |

472| `session_id` | `str` | 必需 | 要标记的会话的 UUID |472| `session_id` | `str` | 必需 | 要标记的会话的 UUID |

473| `tag` | `str \| None` | 必需 | 标签字符串,或 `None` 以清除。存储前进行 Unicode 清理 |473| `tag` | `str \| None` | 必需 | 标签字符串,或 `None` 以清除。存储前进行 Unicode 清理 |

474| `directory` | `str \| None` | `None` | 项目目录路径。省略时,搜索所有项目目录 |474| `directory` | `str \| None` | `None` | 项目目录路径。省略时,搜索所有项目目录 |


529</h4>529</h4>

530 530 

531| 方法 | 描述 |531| 方法 | 描述 |

532| :---------------------------------------- | :-------------------------------------------------------------------------------------------------- |532| :- | :- |

533| `__init__(options)` | 使用可选配置初始化客户端 |533| `__init__(options)` | 使用可选配置初始化客户端 |

534| `connect(prompt)` | 连接到 Claude,可选初始提示或消息流 |534| `connect(prompt)` | 连接到 Claude,可选初始提示或消息流 |

535| `query(prompt, session_id)` | 以流式模式发送新请求 |535| `query(prompt, session_id)` | 以流式模式发送新请求 |


780```780```

781 781 

782| 属性 | 类型 | 描述 |782| 属性 | 类型 | 描述 |

783| :------------- | :---------------------------------------------- | :-------------------------------------------------------------------------------- |783| :- | :- | :- |

784| `name` | `str` | 工具的唯一标识符 |784| `name` | `str` | 工具的唯一标识符 |

785| `description` | `str` | 人类可读的描述 |785| `description` | `str` | 人类可读的描述 |

786| `input_schema` | `type[T] \| dict[str, Any]` | 输入验证的模式 |786| `input_schema` | `type[T] \| dict[str, Any]` | 输入验证的模式 |


824```824```

825 825 

826| 方法 | 描述 |826| 方法 | 描述 |

827| :---------------- | :----------------------- |827| :- | :- |

828| `connect()` | 连接传输并准备通信 |828| `connect()` | 连接传输并准备通信 |

829| `write(data)` | 将原始数据(JSON + 换行符)写入传输 |829| `write(data)` | 将原始数据(JSON + 换行符)写入传输 |

830| `read_messages()` | 异步迭代器,产生解析的 JSON 消息 |830| `read_messages()` | 异步迭代器,产生解析的 JSON 消息 |


894```894```

895 895 

896| 属性 | 类型 | 默认值 | 描述 |896| 属性 | 类型 | 默认值 | 描述 |

897| :---------------------------- | :--------------------------------------------------------------------------------------- | :------------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |897| :- | :- | :- | :- |

898| `tools` | `list[str] \| ToolsPreset \| None` | `None` | 工具配置。使用 `{"type": "preset", "preset": "claude_code"}` 获取 Claude Code 的默认工具 |898| `tools` | `list[str] \| ToolsPreset \| None` | `None` | 工具配置。使用 `{"type": "preset", "preset": "claude_code"}` 获取 Claude Code 的默认工具 |

899| `allowed_tools` | `list[str]` | `[]` | 无需提示即可自动批准的工具。这不会限制 Claude 仅使用这些工具。如果你在此处命名[任务跟踪工具](/docs/zh-CN/agent-sdk/todo-tracking#model-availability)之一,Claude Code 也会选择该会话。其他未列出的工具会通过 `permission_mode` 和 `can_use_tool` 处理。使用 `disallowed_tools` 阻止工具。见 [权限](/docs/zh-CN/agent-sdk/permissions#allow-and-deny-rules) |899| `allowed_tools` | `list[str]` | `[]` | 无需提示即可自动批准的工具。这不会限制 Claude 仅使用这些工具。如果你在此处命名[任务跟踪工具](/docs/zh-CN/agent-sdk/todo-tracking#model-availability)之一,Claude Code 也会选择该会话。其他未列出的工具会通过 `permission_mode` 和 `can_use_tool` 处理。使用 `disallowed_tools` 阻止工具。见 [权限](/docs/zh-CN/agent-sdk/permissions#allow-and-deny-rules) |

900| `system_prompt` | `str \| SystemPromptPreset \| SystemPromptCustom \| SystemPromptFile \| None` | `None` | 系统提示配置。传递字符串以获取自定义提示,`{"type": "preset", "preset": "claude_code"}` 获取 Claude Code 的系统提示(带可选 `"append"`),`{"type": "custom", "prompt": "..."}` 获取也可以设置 `"snapshot"` 的自定义提示,或 `{"type": "file", "path": "..."}` 从磁盘加载大型提示。见 [`SystemPromptPreset`](#systempromptpreset)、[`SystemPromptCustom`](#systempromptcustom) 和 [`SystemPromptFile`](#systempromptfile) |900| `system_prompt` | `str \| SystemPromptPreset \| SystemPromptCustom \| SystemPromptFile \| None` | `None` | 系统提示配置。传递字符串以获取自定义提示,`{"type": "preset", "preset": "claude_code"}` 获取 Claude Code 的系统提示(带可选 `"append"`),`{"type": "custom", "prompt": "..."}` 获取也可以设置 `"snapshot"` 的自定义提示,或 `{"type": "file", "path": "..."}` 从磁盘加载大型提示。见 [`SystemPromptPreset`](#systempromptpreset)、[`SystemPromptCustom`](#systempromptcustom) 和 [`SystemPromptFile`](#systempromptfile) |


986```986```

987 987 

988| 字段 | 必需 | 描述 |988| 字段 | 必需 | 描述 |

989| :------- | :- | :------------------------------------ |989| :- | :- | :- |

990| `type` | 是 | 必须是 `"json_schema"` 用于 JSON Schema 验证 |990| `type` | 是 | 必须是 `"json_schema"` 用于 JSON Schema 验证 |

991| `schema` | 是 | 用于输出验证的 JSON Schema 定义 |991| `schema` | 是 | 用于输出验证的 JSON Schema 定义 |

992 992 


1006```1006```

1007 1007 

1008| 字段 | 必需 | 描述 |1008| 字段 | 必需 | 描述 |

1009| :------------------------- | :- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |1009| :- | :- | :- |

1010| `type` | 是 | 必须是 `"preset"` 以使用预设系统提示 |1010| `type` | 是 | 必须是 `"preset"` 以使用预设系统提示 |

1011| `preset` | 是 | 必须是 `"claude_code"` 以使用 Claude Code 的系统提示 |1011| `preset` | 是 | 必须是 `"claude_code"` 以使用 Claude Code 的系统提示 |

1012| `append` | 否 | 要追加到预设系统提示的其他说明 |1012| `append` | 否 | 要追加到预设系统提示的其他说明 |


1027```1027```

1028 1028 

1029| 字段 | 必需 | 描述 |1029| 字段 | 必需 | 描述 |

1030| :--------- | :- | :--------------------------------------------------------------------- |1030| :- | :- | :- |

1031| `type` | 是 | 必须是 `"custom"` |1031| `type` | 是 | 必须是 `"custom"` |

1032| `prompt` | 是 | 系统提示文本。作为命令行参数传递给 CLI,因此[命令行长度限制](#systempromptfile)适用 |1032| `prompt` | 是 | 系统提示文本。作为命令行参数传递给 CLI,因此[命令行长度限制](#systempromptfile)适用 |

1033| `snapshot` | 否 | 与 [`SystemPromptPreset.snapshot`](#systempromptpreset) 相同,应用于 `prompt` |1033| `snapshot` | 否 | 与 [`SystemPromptPreset.snapshot`](#systempromptpreset) 相同,应用于 `prompt` |


1045```1045```

1046 1046 

1047| 字段 | 必需 | 描述 |1047| 字段 | 必需 | 描述 |

1048| :----- | :- | :-------------------- |1048| :- | :- | :- |

1049| `type` | 是 | 必须是 `"file"` 以从磁盘加载提示 |1049| `type` | 是 | 必须是 `"file"` 以从磁盘加载提示 |

1050| `path` | 是 | 包含系统提示的文件的路径 |1050| `path` | 是 | 包含系统提示的文件的路径 |

1051 1051 


1060```1060```

1061 1061 

1062| 值 | 描述 | 位置 |1062| 值 | 描述 | 位置 |

1063| :---------- | :----------------------------------------- | :---------------------------- |1063| :- | :- | :- |

1064| `"user"` | 全局用户设置 | `~/.claude/settings.json` |1064| `"user"` | 全局用户设置 | `~/.claude/settings.json` |

1065| `"project"` | 共享项目设置(版本控制) | `.claude/settings.json` |1065| `"project"` | 共享项目设置(版本控制) | `.claude/settings.json` |

1066| `"local"` | 本地项目设置,当 Claude Code 将设置保存到其中时被 gitignored | `.claude/settings.local.json` |1066| `"local"` | 本地项目设置,当 Claude Code 将设置保存到其中时被 gitignored | `.claude/settings.local.json` |


1189```1189```

1190 1190 

1191| 字段 | 必需 | 描述 |1191| 字段 | 必需 | 描述 |

1192| :---------------- | :- | :-------------------------------------------------------------------------------------------------------------------------------------- |1192| :- | :- | :- |

1193| `description` | 是 | 何时使用此代理的自然语言描述 |1193| `description` | 是 | 何时使用此代理的自然语言描述 |

1194| `prompt` | 是 | 代理的系统提示 |1194| `prompt` | 是 | 代理的系统提示 |

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


1286```1286```

1287 1287 

1288| 字段 | 类型 | 描述 |1288| 字段 | 类型 | 描述 |

1289| :---------------- | :----------------------- | :---------------------------------------------------------------------------------------------------------------------------- |1289| :- | :- | :- |

1290| `signal` | `Any \| None` | 保留供将来中止信号支持 |1290| `signal` | `Any \| None` | 保留供将来中止信号支持 |

1291| `suggestions` | `list[PermissionUpdate]` | 来自 CLI 的权限更新建议。Bash 提示包括带有 `localSettings` 目标的建议,因此在 `updated_permissions` 中返回它会将规则写入 `.claude/settings.local.json` 并在会话间持久化。 |1291| `suggestions` | `list[PermissionUpdate]` | 来自 CLI 的权限更新建议。Bash 提示包括带有 `localSettings` 目标的建议,因此在 `updated_permissions` 中返回它会将规则写入 `.claude/settings.local.json` 并在会话间持久化。 |

1292| `tool_use_id` | `str \| None` | 此提示所针对的特定工具调用的标识符。传递给 `can_use_tool` 时始终填充 |1292| `tool_use_id` | `str \| None` | 此提示所针对的特定工具调用的标识符。传递给 `can_use_tool` 时始终填充 |


1322```1322```

1323 1323 

1324| 字段 | 类型 | 默认值 | 描述 |1324| 字段 | 类型 | 默认值 | 描述 |

1325| :-------------------- | :------------------------------- | :-------- | :---------------- |1325| :- | :- | :- | :- |

1326| `behavior` | `Literal["allow"]` | `"allow"` | 必须是 "allow" |1326| `behavior` | `Literal["allow"]` | `"allow"` | 必须是 "allow" |

1327| `updated_input` | `dict[str, Any] \| None` | `None` | 要使用的修改后的输入而不是原始输入 |1327| `updated_input` | `dict[str, Any] \| None` | `None` | 要使用的修改后的输入而不是原始输入 |

1328| `updated_permissions` | `list[PermissionUpdate] \| None` | `None` | 要应用的权限更新 |1328| `updated_permissions` | `list[PermissionUpdate] \| None` | `None` | 要应用的权限更新 |


1342```1342```

1343 1343 

1344| 字段 | 类型 | 默认值 | 描述 |1344| 字段 | 类型 | 默认值 | 描述 |

1345| :---------- | :---------------- | :------- | :----------- |1345| :- | :- | :- | :- |

1346| `behavior` | `Literal["deny"]` | `"deny"` | 必须是 "deny" |1346| `behavior` | `Literal["deny"]` | `"deny"` | 必须是 "deny" |

1347| `message` | `str` | `""` | 解释为什么拒绝工具的消息 |1347| `message` | `str` | `""` | 解释为什么拒绝工具的消息 |

1348| `interrupt` | `bool` | `False` | 是否中断当前执行 |1348| `interrupt` | `bool` | `False` | 是否中断当前执行 |


1374```1374```

1375 1375 

1376| 字段 | 类型 | 描述 |1376| 字段 | 类型 | 描述 |

1377| :------------ | :---------------------------------------- | :-------------- |1377| :- | :- | :- |

1378| `type` | `Literal[...]` | 权限更新操作的类型 |1378| `type` | `Literal[...]` | 权限更新操作的类型 |

1379| `rules` | `list[PermissionRuleValue] \| None` | 用于添加/替换/移除操作的规则 |1379| `rules` | `list[PermissionRuleValue] \| None` | 用于添加/替换/移除操作的规则 |

1380| `behavior` | `Literal["allow", "deny", "ask"] \| None` | 基于规则的操作的行为 |1380| `behavior` | `Literal["allow", "deny", "ask"] \| None` | 基于规则的操作的行为 |


1436```1436```

1437 1437 

1438| 变体 | 字段 | 描述 |1438| 变体 | 字段 | 描述 |

1439| :--------- | :--------------------------------- | :--------------- |1439| :- | :- | :- |

1440| `adaptive` | `type`, `display` | Claude 自适应决定何时思考 |1440| `adaptive` | `type`, `display` | Claude 自适应决定何时思考 |

1441| `enabled` | `type`, `budget_tokens`, `display` | 启用具有特定令牌预算的思考 |1441| `enabled` | `type`, `budget_tokens`, `display` | 启用具有特定令牌预算的思考 |

1442| `disabled` | `type` | 禁用思考 |1442| `disabled` | `type` | 禁用思考 |


1469```1469```

1470 1470 

1471| 字段 | 类型 | 描述 |1471| 字段 | 类型 | 描述 |

1472| :------ | :---- | :------- |1472| :- | :- | :- |

1473| `total` | `int` | 任务的总令牌预算 |1473| `total` | `int` | 任务的总令牌预算 |

1474 1474 

1475因为这是 `TypedDict`,将其作为普通字典传递,如 `ClaudeAgentOptions(task_budget={"total": 50000})`。1475因为这是 `TypedDict`,将其作为普通字典传递,如 `ClaudeAgentOptions(task_budget={"total": 50000})`。


1596```1596```

1597 1597 

1598| 字段 | 类型 | 描述 |1598| 字段 | 类型 | 描述 |

1599| :----------- | :---------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------ |1599| :- | :- | :- |

1600| `name` | `str` | 服务器名称 |1600| `name` | `str` | 服务器名称 |

1601| `status` | `str` | `"connected"`、`"failed"`、`"needs-auth"`、`"pending"` 或 `"disabled"` 之一 |1601| `status` | `str` | `"connected"`、`"failed"`、`"needs-auth"`、`"pending"` 或 `"disabled"` 之一 |

1602| `serverInfo` | `dict`(可选) | 服务器名称和版本(`{"name": str, "version": str}`) |1602| `serverInfo` | `dict`(可选) | 服务器名称和版本(`{"name": str, "version": str}`) |


1618```1618```

1619 1619 

1620| 字段 | 类型 | 描述 |1620| 字段 | 类型 | 描述 |

1621| :----- | :----------------- | :----------------------- |1621| :- | :- | :- |

1622| `type` | `Literal["local"]` | 必须是 `"local"`(目前仅支持本地插件) |1622| `type` | `Literal["local"]` | 必须是 `"local"`(目前仅支持本地插件) |

1623| `path` | `str` | 插件目录的绝对或相对路径 |1623| `path` | `str` | 插件目录的绝对或相对路径 |

1624 1624 


1672```1672```

1673 1673 

1674| 字段 | 类型 | 描述 |1674| 字段 | 类型 | 描述 |

1675| :------------------- | :-------------------------- | :-------------------------------------------------------------------------------- |1675| :- | :- | :- |

1676| `content` | `str \| list[ContentBlock]` | 消息内容为文本或内容块 |1676| `content` | `str \| list[ContentBlock]` | 消息内容为文本或内容块 |

1677| `uuid` | `str \| None` | 唯一消息标识符 |1677| `uuid` | `str \| None` | 唯一消息标识符 |

1678| `parent_tool_use_id` | `str \| None` | 如果此消息是工具结果响应,则为工具使用 ID |1678| `parent_tool_use_id` | `str \| None` | 如果此消息是工具结果响应,则为工具使用 ID |


1704```1704```

1705 1705 

1706| 字段 | 类型 | 描述 |1706| 字段 | 类型 | 描述 |

1707| :------------------- | :----------------------------------------------------------- | :---------------------------------------------------------- |1707| :- | :- | :- |

1708| `content` | `list[ContentBlock]` | 响应中的内容块列表 |1708| `content` | `list[ContentBlock]` | 响应中的内容块列表 |

1709| `model` | `str` | 生成响应的模型 |1709| `model` | `str` | 生成响应的模型 |

1710| `parent_tool_use_id` | `str \| None` | 如果这是嵌套响应,则为工具使用 ID |1710| `parent_tool_use_id` | `str \| None` | 如果这是嵌套响应,则为工具使用 ID |


1791`usage` 字典仅涵盖主代理循环,不包括子代理和其他嵌套或辅助模型调用。在[流式输入模式](/docs/zh-CN/agent-sdk/streaming-vs-single-mode)中,值是按轮次的。优先使用 `model_usage` 进行令牌和成本计费。`usage` 字典在存在时包含以下键:1791`usage` 字典仅涵盖主代理循环,不包括子代理和其他嵌套或辅助模型调用。在[流式输入模式](/docs/zh-CN/agent-sdk/streaming-vs-single-mode)中,值是按轮次的。优先使用 `model_usage` 进行令牌和成本计费。`usage` 字典在存在时包含以下键:

1792 1792 

1793| 键 | 类型 | 描述 |1793| 键 | 类型 | 描述 |

1794| ----------------------------- | ----- | ----------------------------------------------------------------------------------------------------------------- |1794| - | - | - |

1795| `input_tokens` | `int` | 顶级代理循环消耗的输入令牌。[子代理令牌不包括在内](/docs/zh-CN/agent-sdk/cost-tracking#get-the-total-cost-of-a-query);使用 `model_usage` 进行整树计费。 |1795| `input_tokens` | `int` | 顶级代理循环消耗的输入令牌。[子代理令牌不包括在内](/docs/zh-CN/agent-sdk/cost-tracking#get-the-total-cost-of-a-query);使用 `model_usage` 进行整树计费。 |

1796| `output_tokens` | `int` | 顶级代理循环生成的输出令牌。子代理令牌不包括在内。 |1796| `output_tokens` | `int` | 顶级代理循环生成的输出令牌。子代理令牌不包括在内。 |

1797| `cache_creation_input_tokens` | `int` | 用于创建新缓存条目的令牌。 |1797| `cache_creation_input_tokens` | `int` | 用于创建新缓存条目的令牌。 |


1804`model_usage` 中的每个值都是 `ModelUsage` TypedDict,通过 `from claude_agent_sdk.types import ModelUsage` 导入。其键使用 camelCase,因为 SDK 从底层 CLI 进程未修改地传递该值,匹配 TypeScript [`ModelUsage`](/docs/zh-CN/agent-sdk/typescript#modelusage) 类型:1804`model_usage` 中的每个值都是 `ModelUsage` TypedDict,通过 `from claude_agent_sdk.types import ModelUsage` 导入。其键使用 camelCase,因为 SDK 从底层 CLI 进程未修改地传递该值,匹配 TypeScript [`ModelUsage`](/docs/zh-CN/agent-sdk/typescript#modelusage) 类型:

1805 1805 

1806| 键 | 类型 | 描述 |1806| 键 | 类型 | 描述 |

1807| -------------------------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------- |1807| - | - | - |

1808| `inputTokens` | `int` | 此模型的输入令牌。 |1808| `inputTokens` | `int` | 此模型的输入令牌。 |

1809| `outputTokens` | `int` | 此模型的输出令牌。 |1809| `outputTokens` | `int` | 此模型的输出令牌。 |

1810| `cacheReadInputTokens` | `int` | 此模型的缓存读取令牌。 |1810| `cacheReadInputTokens` | `int` | 此模型的缓存读取令牌。 |


1833```1833```

1834 1834 

1835| 字段 | 类型 | 描述 |1835| 字段 | 类型 | 描述 |

1836| :------------------- | :--------------- | :------------------------------------------------------------------------------- |1836| :- | :- | :- |

1837| `uuid` | `str` | 此事件的唯一标识符 |1837| `uuid` | `str` | 此事件的唯一标识符 |

1838| `session_id` | `str` | 会话标识符 |1838| `session_id` | `str` | 会话标识符 |

1839| `event` | `dict[str, Any]` | 原始 Claude API 流事件数据 |1839| `event` | `dict[str, Any]` | 原始 Claude API 流事件数据 |


1854```1854```

1855 1855 

1856| 字段 | 类型 | 描述 |1856| 字段 | 类型 | 描述 |

1857| :---------------- | :-------------------------------- | :------- |1857| :- | :- | :- |

1858| `rate_limit_info` | [`RateLimitInfo`](#ratelimitinfo) | 当前速率限制状态 |1858| `rate_limit_info` | [`RateLimitInfo`](#ratelimitinfo) | 当前速率限制状态 |

1859| `uuid` | `str` | 唯一事件标识符 |1859| `uuid` | `str` | 唯一事件标识符 |

1860| `session_id` | `str` | 会话标识符 |1860| `session_id` | `str` | 会话标识符 |


1885```1885```

1886 1886 

1887| 字段 | 类型 | 描述 |1887| 字段 | 类型 | 描述 |

1888| :------------------------ | :------------------------ | :---------------------------------------------------------------------------------------------------- |1888| :- | :- | :- |

1889| `status` | `RateLimitStatus` | 当前状态,`"allowed"`、`"allowed_warning"` 或 `"rejected"` 之一。`"allowed_warning"` 表示接近限制;`"rejected"` 表示达到限制 |1889| `status` | `RateLimitStatus` | 当前状态,`"allowed"`、`"allowed_warning"` 或 `"rejected"` 之一。`"allowed_warning"` 表示接近限制;`"rejected"` 表示达到限制 |

1890| `resets_at` | `int \| None` | 速率限制窗口重置的 Unix 时间戳 |1890| `resets_at` | `int \| None` | 速率限制窗口重置的 Unix 时间戳 |

1891| `rate_limit_type` | `RateLimitType \| None` | 哪个速率限制窗口适用 |1891| `rate_limit_type` | `RateLimitType \| None` | 哪个速率限制窗口适用 |


1910```1910```

1911 1911 

1912| 字段 | 类型 | 描述 |1912| 字段 | 类型 | 描述 |

1913| :-------------------- | :---- | :--------------------------------------- |1913| :- | :- | :- |

1914| `new_conversation_id` | `str` | 新对话的不透明标识符。不是后续消息的 `session_id`;从下一条消息读取 |1914| `new_conversation_id` | `str` | 新对话的不透明标识符。不是后续消息的 `session_id`;从下一条消息读取 |

1915| `uuid` | `str` | 唯一消息标识符 |1915| `uuid` | `str` | 唯一消息标识符 |

1916| `session_id` | `str` | 被重置的会话的 ID。重置后的消息携带新的 `session_id` |1916| `session_id` | `str` | 被重置的会话的 ID。重置后的消息携带新的 `session_id` |


1933```1933```

1934 1934 

1935| 字段 | 类型 | 描述 |1935| 字段 | 类型 | 描述 |

1936| :------------ | :------------ | :------------------------------------------------------------------------------ |1936| :- | :- | :- |

1937| `task_id` | `str` | 任务的唯一标识符 |1937| `task_id` | `str` | 任务的唯一标识符 |

1938| `description` | `str` | 任务的描述 |1938| `description` | `str` | 任务的描述 |

1939| `uuid` | `str` | 唯一消息标识符 |1939| `uuid` | `str` | 唯一消息标识符 |


1973```1973```

1974 1974 

1975| 字段 | 类型 | 描述 |1975| 字段 | 类型 | 描述 |

1976| :--------------- | :------------ | :------------- |1976| :- | :- | :- |

1977| `task_id` | `str` | 任务的唯一标识符 |1977| `task_id` | `str` | 任务的唯一标识符 |

1978| `description` | `str` | 当前状态描述 |1978| `description` | `str` | 当前状态描述 |

1979| `usage` | `TaskUsage` | 此任务迄今为止的令牌使用情况 |1979| `usage` | `TaskUsage` | 此任务迄今为止的令牌使用情况 |


2002```2002```

2003 2003 

2004| 字段 | 类型 | 描述 |2004| 字段 | 类型 | 描述 |

2005| :------------ | :----------------------- | :---------------------------------------- |2005| :- | :- | :- |

2006| `task_id` | `str` | 任务的唯一标识符 |2006| `task_id` | `str` | 任务的唯一标识符 |

2007| `status` | `TaskNotificationStatus` | `"completed"`、`"failed"` 或 `"stopped"` 之一 |2007| `status` | `TaskNotificationStatus` | `"completed"`、`"failed"` 或 `"stopped"` 之一 |

2008| `output_file` | `str` | 任务输出文件的路径 |2008| `output_file` | `str` | 任务输出文件的路径 |


2307```2307```

2308 2308 

2309| 字段 | 类型 | 描述 |2309| 字段 | 类型 | 描述 |

2310| :---------------- | :-------- | :-------- |2310| :- | :- | :- |

2311| `session_id` | `str` | 当前会话标识符 |2311| `session_id` | `str` | 当前会话标识符 |

2312| `transcript_path` | `str` | 会话记录文件的路径 |2312| `transcript_path` | `str` | 会话记录文件的路径 |

2313| `cwd` | `str` | 当前工作目录 |2313| `cwd` | `str` | 当前工作目录 |


2330```2330```

2331 2331 

2332| 字段 | 类型 | 描述 |2332| 字段 | 类型 | 描述 |

2333| :---------------- | :---------------------- | :----------------------- |2333| :- | :- | :- |

2334| `hook_event_name` | `Literal["PreToolUse"]` | 始终为 "PreToolUse" |2334| `hook_event_name` | `Literal["PreToolUse"]` | 始终为 "PreToolUse" |

2335| `tool_name` | `str` | 即将执行的工具的名称 |2335| `tool_name` | `str` | 即将执行的工具的名称 |

2336| `tool_input` | `dict[str, Any]` | 工具的输入参数 |2336| `tool_input` | `dict[str, Any]` | 工具的输入参数 |


2356```2356```

2357 2357 

2358| 字段 | 类型 | 描述 |2358| 字段 | 类型 | 描述 |

2359| :---------------- | :----------------------- | :----------------------- |2359| :- | :- | :- |

2360| `hook_event_name` | `Literal["PostToolUse"]` | 始终为 "PostToolUse" |2360| `hook_event_name` | `Literal["PostToolUse"]` | 始终为 "PostToolUse" |

2361| `tool_name` | `str` | 已执行的工具的名称 |2361| `tool_name` | `str` | 已执行的工具的名称 |

2362| `tool_input` | `dict[str, Any]` | 使用的输入参数 |2362| `tool_input` | `dict[str, Any]` | 使用的输入参数 |


2384```2384```

2385 2385 

2386| 字段 | 类型 | 描述 |2386| 字段 | 类型 | 描述 |

2387| :---------------- | :------------------------------ | :------------------------------------------------------------------------------------ |2387| :- | :- | :- |

2388| `hook_event_name` | `Literal["PostToolUseFailure"]` | 始终为 "PostToolUseFailure" |2388| `hook_event_name` | `Literal["PostToolUseFailure"]` | 始终为 "PostToolUseFailure" |

2389| `tool_name` | `str` | 失败的工具的名称 |2389| `tool_name` | `str` | 失败的工具的名称 |

2390| `tool_input` | `dict[str, Any]` | 使用的输入参数 |2390| `tool_input` | `dict[str, Any]` | 使用的输入参数 |


2407```2407```

2408 2408 

2409| 字段 | 类型 | 描述 |2409| 字段 | 类型 | 描述 |

2410| :---------------- | :---------------------------- | :--------------------- |2410| :- | :- | :- |

2411| `hook_event_name` | `Literal["UserPromptSubmit"]` | 始终为 "UserPromptSubmit" |2411| `hook_event_name` | `Literal["UserPromptSubmit"]` | 始终为 "UserPromptSubmit" |

2412| `prompt` | `str` | 用户提交的提示 |2412| `prompt` | `str` | 用户提交的提示 |

2413 2413 


2424```2424```

2425 2425 

2426| 字段 | 类型 | 描述 |2426| 字段 | 类型 | 描述 |

2427| :----------------- | :---------------- | :------------- |2427| :- | :- | :- |

2428| `hook_event_name` | `Literal["Stop"]` | 始终为 "Stop" |2428| `hook_event_name` | `Literal["Stop"]` | 始终为 "Stop" |

2429| `stop_hook_active` | `bool` | stop hook 是否活跃 |2429| `stop_hook_active` | `bool` | stop hook 是否活跃 |

2430 2430 


2444```2444```

2445 2445 

2446| 字段 | 类型 | 描述 |2446| 字段 | 类型 | 描述 |

2447| :---------------------- | :------------------------ | :----------------- |2447| :- | :- | :- |

2448| `hook_event_name` | `Literal["SubagentStop"]` | 始终为 "SubagentStop" |2448| `hook_event_name` | `Literal["SubagentStop"]` | 始终为 "SubagentStop" |

2449| `stop_hook_active` | `bool` | stop hook 是否活跃 |2449| `stop_hook_active` | `bool` | stop hook 是否活跃 |

2450| `agent_id` | `str` | 子代理的唯一标识符 |2450| `agent_id` | `str` | 子代理的唯一标识符 |


2465```2465```

2466 2466 

2467| 字段 | 类型 | 描述 |2467| 字段 | 类型 | 描述 |

2468| :-------------------- | :-------------------------- | :--------------- |2468| :- | :- | :- |

2469| `hook_event_name` | `Literal["PreCompact"]` | 始终为 "PreCompact" |2469| `hook_event_name` | `Literal["PreCompact"]` | 始终为 "PreCompact" |

2470| `trigger` | `Literal["manual", "auto"]` | 什么触发了压缩 |2470| `trigger` | `Literal["manual", "auto"]` | 什么触发了压缩 |

2471| `custom_instructions` | `str \| None` | 压缩的自定义说明 |2471| `custom_instructions` | `str \| None` | 压缩的自定义说明 |


2485```2485```

2486 2486 

2487| 字段 | 类型 | 描述 |2487| 字段 | 类型 | 描述 |

2488| :------------------ | :------------------------ | :----------------- |2488| :- | :- | :- |

2489| `hook_event_name` | `Literal["Notification"]` | 始终为 "Notification" |2489| `hook_event_name` | `Literal["Notification"]` | 始终为 "Notification" |

2490| `message` | `str` | 通知消息内容 |2490| `message` | `str` | 通知消息内容 |

2491| `title` | `str`(可选) | 通知标题 |2491| `title` | `str`(可选) | 通知标题 |


2505```2505```

2506 2506 

2507| 字段 | 类型 | 描述 |2507| 字段 | 类型 | 描述 |

2508| :---------------- | :------------------------- | :------------------ |2508| :- | :- | :- |

2509| `hook_event_name` | `Literal["SubagentStart"]` | 始终为 "SubagentStart" |2509| `hook_event_name` | `Literal["SubagentStart"]` | 始终为 "SubagentStart" |

2510| `agent_id` | `str` | 子代理的唯一标识符 |2510| `agent_id` | `str` | 子代理的唯一标识符 |

2511| `agent_type` | `str` | 子代理的类型 |2511| `agent_type` | `str` | 子代理的类型 |


2527```2527```

2528 2528 

2529| 字段 | 类型 | 描述 |2529| 字段 | 类型 | 描述 |

2530| :----------------------- | :----------------------------- | :----------------------- |2530| :- | :- | :- |

2531| `hook_event_name` | `Literal["PermissionRequest"]` | 始终为 "PermissionRequest" |2531| `hook_event_name` | `Literal["PermissionRequest"]` | 始终为 "PermissionRequest" |

2532| `tool_name` | `str` | 请求权限的工具的名称 |2532| `tool_name` | `str` | 请求权限的工具的名称 |

2533| `tool_input` | `dict[str, Any]` | 工具的输入参数 |2533| `tool_input` | `dict[str, Any]` | 工具的输入参数 |


3609```3609```

3610 3610 

3611| 属性 | 类型 | 默认值 | 描述 |3611| 属性 | 类型 | 默认值 | 描述 |

3612| :-------------------------- | :---------------------------------------------------- | :------ | :------------------------------------------------------------------------------------------------------------------------------------- |3612| :- | :- | :- | :- |

3613| `enabled` | `bool` | `False` | 为命令执行启用沙箱模式 |3613| `enabled` | `bool` | `False` | 为命令执行启用沙箱模式 |

3614| `autoAllowBashIfSandboxed` | `bool` | `True` | 启用沙箱时自动批准 bash 命令 |3614| `autoAllowBashIfSandboxed` | `bool` | `True` | 启用沙箱时自动批准 bash 命令 |

3615| `excludedCommands` | `list[str]` | `[]` | 绕过沙箱限制的命令,例如 `["docker *"]`。这些自动运行沙箱外,无需模型参与;[`sandbox.excludedCommands`](/docs/zh-CN/settings-reference#sandbox-excludedcommands) 涵盖何时应用条目 |3615| `excludedCommands` | `list[str]` | `[]` | 绕过沙箱限制的命令,例如 `["docker *"]`。这些自动运行沙箱外,无需模型参与;[`sandbox.excludedCommands`](/docs/zh-CN/settings-reference#sandbox-excludedcommands) 涵盖何时应用条目 |


3681```3681```

3682 3682 

3683| 属性 | 类型 | 默认值 | 描述 |3683| 属性 | 类型 | 默认值 | 描述 |

3684| :------------------------ | :---------- | :------ | :----------------------------------------------------------------------------------------- |3684| :- | :- | :- | :- |

3685| `allowedDomains` | `list[str]` | `[]` | 沙箱化进程可以访问的域名 |3685| `allowedDomains` | `list[str]` | `[]` | 沙箱化进程可以访问的域名 |

3686| `deniedDomains` | `list[str]` | `[]` | 沙箱化进程无法访问的域名。优先于 `allowedDomains` |3686| `deniedDomains` | `list[str]` | `[]` | 沙箱化进程无法访问的域名。优先于 `allowedDomains` |

3687| `allowManagedDomainsOnly` | `bool` | `False` | 仅限托管设置:在托管设置中设置时,忽略 `allowedDomains` 和来自非托管设置源的 `WebFetch(domain:...)` 允许规则。通过 SDK 选项设置时无效 |3687| `allowManagedDomainsOnly` | `bool` | `False` | 仅限托管设置:在托管设置中设置时,忽略 `allowedDomains` 和来自非托管设置源的 `WebFetch(domain:...)` 允许规则。通过 SDK 选项设置时无效 |


3709```3709```

3710 3710 

3711| 属性 | 类型 | 默认值 | 描述 |3711| 属性 | 类型 | 默认值 | 描述 |

3712| :-------- | :---------- | :--- | :----------- |3712| :- | :- | :- | :- |

3713| `file` | `list[str]` | `[]` | 要忽略违规的文件路径模式 |3713| `file` | `list[str]` | `[]` | 要忽略违规的文件路径模式 |

3714| `network` | `list[str]` | `[]` | 要忽略违规的网络模式 |3714| `network` | `list[str]` | `[]` | 要忽略违规的网络模式 |

3715 3715 

Details

367**工具**控制你的代理可以做什么:367**工具**控制你的代理可以做什么:

368 368 

369| 工具 | 代理可以做什么 |369| 工具 | 代理可以做什么 |

370| ---------------------------------- | ------- |370| - | - |

371| `Read`、`Glob`、`Grep` | 只读分析 |371| `Read`、`Glob`、`Grep` | 只读分析 |

372| `Read`、`Edit`、`Glob` | 分析和修改代码 |372| `Read`、`Edit`、`Glob` | 分析和修改代码 |

373| `Read`、`Edit`、`Bash`、`Glob`、`Grep` | 完全自动化 |373| `Read`、`Edit`、`Bash`、`Glob`、`Grep` | 完全自动化 |

Details

52在需要时,您可以将代理限制为仅执行其特定任务所需的功能:52在需要时,您可以将代理限制为仅执行其特定任务所需的功能:

53 53 

54| 资源 | 限制选项 |54| 资源 | 限制选项 |

55| ---- | --------------- |55| - | - |

56| 文件系统 | 仅挂载所需目录,优先选择只读 |56| 文件系统 | 仅挂载所需目录,优先选择只读 |

57| 网络 | 通过代理限制到特定端点 |57| 网络 | 通过代理限制到特定端点 |

58| 凭证 | 通过代理注入而不是直接公开 |58| 凭证 | 通过代理注入而不是直接公开 |


82</Info>82</Info>

83 83 

84| 技术 | 隔离强度 | 性能开销 | 复杂性 |84| 技术 | 隔离强度 | 性能开销 | 复杂性 |

85| ---------------------- | --------- | ---- | ---- |85| - | - | - | - |

86| Sandbox 运行时 | 良好(安全默认值) | 非常低 | 低 |86| Sandbox 运行时 | 良好(安全默认值) | 非常低 | 低 |

87| 容器 (Docker) | 取决于设置 | 低 | 中等 |87| 容器 (Docker) | 取决于设置 | 低 | 中等 |

88| gVisor | 优秀(正确设置) | 中等/高 | 中等 |88| gVisor | 优秀(正确设置) | 中等/高 | 中等 |


147以下是每个选项的作用:147以下是每个选项的作用:

148 148 

149| 选项 | 目的 |149| 选项 | 目的 |

150| ---------------------------------- | ------------------------------------------------------------------------- |150| - | - |

151| `--cap-drop ALL` | 删除 Linux 功能,如 `NET_ADMIN` 和 `SYS_ADMIN`,这些功能可能导致权限提升 |151| `--cap-drop ALL` | 删除 Linux 功能,如 `NET_ADMIN` 和 `SYS_ADMIN`,这些功能可能导致权限提升 |

152| `--security-opt no-new-privileges` | 防止进程通过 setuid 二进制文件获得权限 |152| `--security-opt no-new-privileges` | 防止进程通过 setuid 二进制文件获得权限 |

153| `--security-opt seccomp=...` | 限制可用的系统调用;Docker 的默认值阻止约 44 个,自定义配置文件可以阻止更多 |153| `--security-opt seccomp=...` | 限制可用的系统调用;Docker 的默认值阻止约 44 个,自定义配置文件可以阻止更多 |


169**额外加固选项:**169**额外加固选项:**

170 170 

171| 选项 | 目的 |171| 选项 | 目的 |

172| ---------------- | ----------------------------------------- |172| - | - |

173| `--userns-remap` | 将容器 root 映射到非特权主机用户;需要守护程序配置,但限制容器逃逸造成的损害 |173| `--userns-remap` | 将容器 root 映射到非特权主机用户;需要守护程序配置,但限制容器逃逸造成的损害 |

174| `--ipc private` | 隔离进程间通信以防止跨容器攻击 |174| `--ipc private` | 隔离进程间通信以防止跨容器攻击 |

175 175 


202**性能考虑:**202**性能考虑:**

203 203 

204| 工作负载 | 开销 |204| 工作负载 | 开销 |

205| ---------- | ------------------------- |205| - | - |

206| CPU 密集型计算 | \~0%(无系统调用拦截) |206| CPU 密集型计算 | \~0%(无系统调用拦截) |

207| 简单系统调用 | \~2 倍慢 |207| 简单系统调用 | \~2 倍慢 |

208| 文件 I/O 密集型 | 对于繁重的打开/关闭模式,最多慢 10-200 倍 |208| 文件 I/O 密集型 | 对于繁重的打开/关闭模式,最多慢 10-200 倍 |


345 即使对代码目录的只读访问也可能暴露凭证。挂载前要排除或清理的常见文件:345 即使对代码目录的只读访问也可能暴露凭证。挂载前要排除或清理的常见文件:

346 346 

347 | 文件 | 风险 |347 | 文件 | 风险 |

348 | ------------------------------------------------------- | ------------------- |348 | - | - |

349 | `.env`, `.env.local` | API 密钥、数据库密码、机密 |349 | `.env`, `.env.local` | API 密钥、数据库密码、机密 |

350 | `~/.git-credentials` | Git 密码/令牌(纯文本) |350 | `~/.git-credentials` | Git 密码/令牌(纯文本) |

351 | `~/.aws/credentials` | AWS 访问密钥 |351 | `~/.aws/credentials` | AWS 访问密钥 |

Details

95将 `subpath` 视为不透明的密钥后缀;它遵循磁盘上的布局,例如 `subagents/agent-<id>`。当 `subpath` 未定义时,密钥指的是主记录。95将 `subpath` 视为不透明的密钥后缀;它遵循磁盘上的布局,例如 `subagents/agent-<id>`。当 `subpath` 未定义时,密钥指的是主记录。

96 96 

97| 方法 | 必需 | 调用时机 |97| 方法 | 必需 | 调用时机 |

98| :--------------------- | :- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |98| :- | :- | :- |

99| `append` | 是 | 在每批记录条目本地写入后。条目是 JSON 安全的对象,本地 JSONL 中每行一个。 |99| `append` | 是 | 在每批记录条目本地写入后。条目是 JSON 安全的对象,本地 JSONL 中每行一个。 |

100| `load` | 是 | 在子进程生成之前,当设置 `resume` 时,以及在列表从 `listSessionSummaries` 回退时每个会话一次。如果会话未知,返回 `null`。 |100| `load` | 是 | 在子进程生成之前,当设置 `resume` 时,以及在列表从 `listSessionSummaries` 回退时每个会话一次。如果会话未知,返回 `null`。 |

101| `listSessions` | 否 | 由 `listSessions({ sessionStore })` 和 `query()`/`startup()` 与 `continue: true` 调用。如果未定义,`continue: true` 会抛出异常,`listSessions({ sessionStore })` 会抛出异常,除非实现了 `listSessionSummaries`。 |101| `listSessions` | 否 | 由 `listSessions({ sessionStore })` 和 `query()`/`startup()` 与 `continue: true` 调用。如果未定义,`continue: true` 会抛出异常,`listSessions({ sessionStore })` 会抛出异常,除非实现了 `listSessionSummaries`。 |


206两个 SDK 存储库在 TypeScript 的 [`examples/session-stores/`](https://github.com/anthropics/claude-agent-sdk-typescript/tree/main/examples/session-stores) 和 Python 的 [`examples/session_stores/`](https://github.com/anthropics/claude-agent-sdk-python/tree/main/examples/session_stores) 下都包含可运行的参考适配器。每种存储类型都有一个适配器,每个都展示了 `append` 和 `load` 如何映射到该类型的后端。它们不作为包发布;将最接近您后端的类型的适配器复制到您的项目中,安装您后端的客户端,并进行调整。206两个 SDK 存储库在 TypeScript 的 [`examples/session-stores/`](https://github.com/anthropics/claude-agent-sdk-typescript/tree/main/examples/session-stores) 和 Python 的 [`examples/session_stores/`](https://github.com/anthropics/claude-agent-sdk-python/tree/main/examples/session_stores) 下都包含可运行的参考适配器。每种存储类型都有一个适配器,每个都展示了 `append` 和 `load` 如何映射到该类型的后端。它们不作为包发布;将最接近您后端的类型的适配器复制到您的项目中,安装您后端的客户端,并进行调整。

207 207 

208| 存储类型 | 存储模型 | 示例适配器 |208| 存储类型 | 存储模型 | 示例适配器 |

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

210| 对象存储 | 每个 `append()` 一个部分文件;`load()` 列出部分、排序并连接。 | S3 ([TypeScript](https://github.com/anthropics/claude-agent-sdk-typescript/tree/main/examples/session-stores/s3), [Python](https://github.com/anthropics/claude-agent-sdk-python/blob/main/examples/session_stores/s3_session_store.py)) |210| 对象存储 | 每个 `append()` 一个部分文件;`load()` 列出部分、排序并连接。 | S3 ([TypeScript](https://github.com/anthropics/claude-agent-sdk-typescript/tree/main/examples/session-stores/s3), [Python](https://github.com/anthropics/claude-agent-sdk-python/blob/main/examples/session_stores/s3_session_store.py)) |

211| 键值存储 | 每个记录一个列表,`append()` 推送到该列表,`load()` 按范围读取,加上会话的排序索引。 | Redis ([TypeScript](https://github.com/anthropics/claude-agent-sdk-typescript/tree/main/examples/session-stores/redis), [Python](https://github.com/anthropics/claude-agent-sdk-python/blob/main/examples/session_stores/redis_session_store.py)) |211| 键值存储 | 每个记录一个列表,`append()` 推送到该列表,`load()` 按范围读取,加上会话的排序索引。 | Redis ([TypeScript](https://github.com/anthropics/claude-agent-sdk-typescript/tree/main/examples/session-stores/redis), [Python](https://github.com/anthropics/claude-agent-sdk-python/blob/main/examples/session_stores/redis_session_store.py)) |

212| 关系数据库或文档存储 | 每个条目一行或一个文档,存储为 JSON 并按插入时分配的键排序。 | Postgres ([TypeScript](https://github.com/anthropics/claude-agent-sdk-typescript/tree/main/examples/session-stores/postgres), [Python](https://github.com/anthropics/claude-agent-sdk-python/blob/main/examples/session_stores/postgres_session_store.py)) |212| 关系数据库或文档存储 | 每个条目一行或一个文档,存储为 JSON 并按插入时分配的键排序。 | Postgres ([TypeScript](https://github.com/anthropics/claude-agent-sdk-typescript/tree/main/examples/session-stores/postgres), [Python](https://github.com/anthropics/claude-agent-sdk-python/blob/main/examples/session_stores/postgres_session_store.py)) |

Details

23您需要多少会话处理取决于应用的形状。当您发送应该共享上下文的多个提示时,会话管理就会发挥作用。在单个 `query()` 调用中,代理已经根据需要进行了尽可能多的轮次,权限提示和 `AskUserQuestion` 是[在循环中处理的](/docs/zh-CN/agent-sdk/user-input)(它们不会结束调用)。23您需要多少会话处理取决于应用的形状。当您发送应该共享上下文的多个提示时,会话管理就会发挥作用。在单个 `query()` 调用中,代理已经根据需要进行了尽可能多的轮次,权限提示和 `AskUserQuestion` 是[在循环中处理的](/docs/zh-CN/agent-sdk/user-input)(它们不会结束调用)。

24 24 

25| 您正在构建的内容 | 使用什么 |25| 您正在构建的内容 | 使用什么 |

26| :---------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |26| :- | :- |

27| 一次性任务:单个提示,无后续 | 无需额外操作。一个 `query()` 调用可以处理它。 |27| 一次性任务:单个提示,无后续 | 无需额外操作。一个 `query()` 调用可以处理它。 |

28| 在一个进程中进行多轮聊天 | [`ClaudeSDKClient`(Python)或 `continue: true`(TypeScript)](#automatic-session-management)。SDK 为您跟踪会话,无需 ID 处理。 |28| 在一个进程中进行多轮聊天 | [`ClaudeSDKClient`(Python)或 `continue: true`(TypeScript)](#automatic-session-management)。SDK 为您跟踪会话,无需 ID 处理。 |

29| 在进程重启后从中断处继续 | `continue_conversation=True`(Python)/ `continue: true`(TypeScript)。恢复目录中最近的会话,无需 ID。 |29| 在进程重启后从中断处继续 | `continue_conversation=True`(Python)/ `continue: true`(TypeScript)。恢复目录中最近的会话,无需 ID。 |

Details

91`event` 字段包含来自 [Claude API](https://platform.claude.com/docs/en/build-with-claude/streaming#event-types) 的原始流事件。常见的事件类型包括:91`event` 字段包含来自 [Claude API](https://platform.claude.com/docs/en/build-with-claude/streaming#event-types) 的原始流事件。常见的事件类型包括:

92 92 

93| 事件类型 | 描述 |93| 事件类型 | 描述 |

94| :-------------------- | :--------------- |94| :- | :- |

95| `message_start` | 新消息的开始 |95| `message_start` | 新消息的开始 |

96| `content_block_start` | 新内容块的开始(文本或工具使用) |96| `content_block_start` | 新内容块的开始(文本或工具使用) |

97| `content_block_delta` | 内容的增量更新 |97| `content_block_delta` | 内容的增量更新 |

Details

395发生错误时,结果消息有一个 `subtype` 指示出了什么问题:395发生错误时,结果消息有一个 `subtype` 指示出了什么问题:

396 396 

397| Subtype | 含义 |397| Subtype | 含义 |

398| ------------------------------------- | ---------------------------------- |398| - | - |

399| `success` | 输出已成功生成并验证 |399| `success` | 输出已成功生成并验证 |

400| `error_max_structured_output_retries` | 多次尝试后没有有效输出存活(验证失败,或模型回退收回且没有成功重试) |400| `error_max_structured_output_retries` | 多次尝试后没有有效输出存活(验证失败,或模型回退收回且没有成功重试) |

401 401 

Details

153</h3>153</h3>

154 154 

155| 字段 | 类型 | 必需 | 描述 |155| 字段 | 类型 | 必需 | 描述 |

156| :---------------- | :---------------------------------------------------------- | :- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |156| :- | :- | :- | :- |

157| `description` | `string` | 是 | 何时使用此代理的自然语言描述 |157| `description` | `string` | 是 | 何时使用此代理的自然语言描述 |

158| `prompt` | `string` | 是 | 代理的系统提示,定义其角色和行为 |158| `prompt` | `string` | 是 | 代理的系统提示,定义其角色和行为 |

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


198下表列出了非分叉子代理的上下文包含的内容以及它遗漏的内容。198下表列出了非分叉子代理的上下文包含的内容以及它遗漏的内容。

199 199 

200| 子代理接收 | 子代理不接收 |200| 子代理接收 | 子代理不接收 |

201| :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------- |201| :- | :- |

202| 其自身的系统提示(`AgentDefinition.prompt`)和 Agent 工具的提示 | 父代理的对话历史或工具结果 |202| 其自身的系统提示(`AgentDefinition.prompt`)和 Agent 工具的提示 | 父代理的对话历史或工具结果 |

203| 项目 CLAUDE.md(通过 [`settingSources`](/docs/zh-CN/agent-sdk/claude-code-features#control-filesystem-settings-with-settingsources) 加载),除非代理设置了 [`omitClaudeMd`](#agentdefinition-configuration) | 预加载的技能内容,除非在 `AgentDefinition.skills` 中列出 |203| 项目 CLAUDE.md(通过 [`settingSources`](/docs/zh-CN/agent-sdk/claude-code-features#control-filesystem-settings-with-settingsources) 加载),除非代理设置了 [`omitClaudeMd`](#agentdefinition-configuration) | 预加载的技能内容,除非在 `AgentDefinition.skills` 中列出 |

204| 工具定义(从父代理继承或 `tools` 中的子集,[为后台运行过滤](/docs/zh-CN/sub-agents#available-tools)) | 父代理的系统提示 |204| 工具定义(从父代理继承或 `tools` 中的子集,[为后台运行过滤](/docs/zh-CN/sub-agents#available-tools)) | 父代理的系统提示 |


626</h3>626</h3>

627 627 

628| 用例 | 工具 | 描述 |628| 用例 | 工具 | 描述 |

629| :--- | :---------------------------------- | :------------------------- |629| :- | :- | :- |

630| 只读分析 | `Read`、`Grep`、`Glob` | 可以检查代码但无法修改或执行 |630| 只读分析 | `Read`、`Grep`、`Glob` | 可以检查代码但无法修改或执行 |

631| 测试执行 | `Bash`、`Read`、`Grep` | 可以运行命令并分析输出 |631| 测试执行 | `Bash`、`Read`、`Grep` | 可以运行命令并分析输出 |

632| 代码修改 | `Read`、`Edit`、`Write`、`Grep`、`Glob` | 完整的读/写访问权限,无命令执行 |632| 代码修改 | `Read`、`Edit`、`Write`、`Grep`、`Glob` | 完整的读/写访问权限,无命令执行 |


645您可以通过三种方式限制这种增长:子代理的嵌套深度、同时运行的数量以及整个查询的支出。通过 [`env`](/docs/zh-CN/agent-sdk/typescript#options) 选项将深度和并发限制设置为环境变量,并将支出限制设置为查询选项:645您可以通过三种方式限制这种增长:子代理的嵌套深度、同时运行的数量以及整个查询的支出。通过 [`env`](/docs/zh-CN/agent-sdk/typescript#options) 选项将深度和并发限制设置为环境变量,并将支出限制设置为查询选项:

646 646 

647| 限制 | 设置方式 | 默认值 | Claude Code 在达到限制时的行为 |647| 限制 | 设置方式 | 默认值 | Claude Code 在达到限制时的行为 |

648| :- | :-------------------------------------------------------- | :----------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |648| :- | :- | :- | :- |

649| 深度 | [`CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH`](/docs/zh-CN/env-vars) | 主代理下方的`3`层子代理。`1`会阻止您的子代理生成任何自己的子代理 | 使底层的子代理无法生成,因此它会自己完成委派的工作。请参阅[嵌套子代理](/docs/zh-CN/sub-agents#let-subagents-spawn-their-own-subagents) |649| 深度 | [`CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH`](/docs/zh-CN/env-vars) | 主代理下方的`3`层子代理。`1`会阻止您的子代理生成任何自己的子代理 | 使底层的子代理无法生成,因此它会自己完成委派的工作。请参阅[嵌套子代理](/docs/zh-CN/sub-agents#let-subagents-spawn-their-own-subagents) |

650| 并发 | [`CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS`](/docs/zh-CN/env-vars) | `20`个子代理同时运行,计算 Claude 使用 Agent 工具生成的每个子代理 | 拒绝生成另一个子代理,返回 `Concurrent subagent limit reached`,直到运行计数降至限制以下。启用了[ultracode](/docs/zh-CN/model-config#adjust-effort-level)的会话永远不会被拒绝。请参阅[并发子代理限制](/docs/zh-CN/sub-agents#concurrent-subagent-limit) |650| 并发 | [`CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS`](/docs/zh-CN/env-vars) | `20`个子代理同时运行,计算 Claude 使用 Agent 工具生成的每个子代理 | 拒绝生成另一个子代理,返回 `Concurrent subagent limit reached`,直到运行计数降至限制以下。启用了[ultracode](/docs/zh-CN/model-config#adjust-effort-level)的会话永远不会被拒绝。请参阅[并发子代理限制](/docs/zh-CN/sub-agents#concurrent-subagent-limit) |

651| 支出 | TypeScript 中的 `maxBudgetUsd`,Python 中的 `max_budget_usd` | 无限制。计算调用自身的支出,包括子代理请求 | 通过三种方式强制执行上限:拒绝生成更多子代理,返回 `Budget limit reached`,停止仍在运行的后台子代理,并以 `error_max_budget_usd` 结果子类型结束查询。关于上限在会话中的行为方式,请参阅[轮次和预算](/docs/zh-CN/agent-sdk/agent-loop#turns-and-budget) |651| 支出 | TypeScript 中的 `maxBudgetUsd`,Python 中的 `max_budget_usd` | 无限制。计算调用自身的支出,包括子代理请求 | 通过三种方式强制执行上限:拒绝生成更多子代理,返回 `Budget limit reached`,停止仍在运行的后台子代理,并以 `error_max_budget_usd` 结果子类型结束查询。关于上限在会话中的行为方式,请参阅[轮次和预算](/docs/zh-CN/agent-sdk/agent-loop#turns-and-budget) |

Details

11与特定功能相关的症状,例如 hook 未触发或 skill 未被使用,在该功能的页面上有故障排除部分。该表列出了涵盖每个症状的部分或页面:11与特定功能相关的症状,例如 hook 未触发或 skill 未被使用,在该功能的页面上有故障排除部分。该表列出了涵盖每个症状的部分或页面:

12 12 

13| 症状 | 转到 |13| 症状 | 转到 |

14| :------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :---------------------------------------------------------------------------------------- |14| :- | :- |

15| 找不到 Skills、skill 未被使用、`Invalid skill name` 错误 | [Skills 故障排除](/docs/zh-CN/agent-sdk/skills#troubleshooting) |15| 找不到 Skills、skill 未被使用、`Invalid skill name` 错误 | [Skills 故障排除](/docs/zh-CN/agent-sdk/skills#troubleshooting) |

16| MCP 服务器显示 `failed` 状态、工具未被调用、连接超时、工具输出超过最大允许令牌数 | [MCP 故障排除](/docs/zh-CN/agent-sdk/mcp#troubleshooting) |16| MCP 服务器显示 `failed` 状态、工具未被调用、连接超时、工具输出超过最大允许令牌数 | [MCP 故障排除](/docs/zh-CN/agent-sdk/mcp#troubleshooting) |

17| Plugin 未加载、plugin skills 未出现 | [Plugins 故障排除](/docs/zh-CN/agent-sdk/plugins#troubleshooting) |17| Plugin 未加载、plugin skills 未出现 | [Plugins 故障排除](/docs/zh-CN/agent-sdk/plugins#troubleshooting) |


81SDK 在已解析的路径处找到了一个文件,但无法启动它。Python 将这些失败作为 `CLIConnectionError` 引发。TypeScript 拒绝消息迭代并显示没有 SDK 类的错误。下表将每条消息映射到它告诉您的内容。匹配您看到的消息:81SDK 在已解析的路径处找到了一个文件,但无法启动它。Python 将这些失败作为 `CLIConnectionError` 引发。TypeScript 拒绝消息迭代并显示没有 SDK 类的错误。下表将每条消息映射到它告诉您的内容。匹配您看到的消息:

82 82 

83| 消息 | SDK | 它告诉您什么 |83| 消息 | SDK | 它告诉您什么 |

84| ----------------------------------------------------------------- | ---------- | ------------------------ |84| - | - | - |

85| `Failed to start Claude Code: <detail>` | Python | 消息的其余部分是操作系统自己的错误 |85| `Failed to start Claude Code: <detail>` | Python | 消息的其余部分是操作系统自己的错误 |

86| `Claude Code executable at <path> exists but failed to launch` | TypeScript | 配置路径处的脚本无法运行 |86| `Claude Code executable at <path> exists but failed to launch` | TypeScript | 配置路径处的脚本无法运行 |

87| `Claude Code native binary at <path> exists but failed to launch` | TypeScript | 二进制文件无法运行,消息后附加了 libc 建议 |87| `Claude Code native binary at <path> exists but failed to launch` | TypeScript | 二进制文件无法运行,消息后附加了 libc 建议 |

Details

79</h4>79</h4>

80 80 

81| 参数 | 类型 | 描述 |81| 参数 | 类型 | 描述 |

82| :-------- | :--------------------------------------------------------------- | :-------------------------- |82| :- | :- | :- |

83| `prompt` | `string \| AsyncIterable<`[`SDKUserMessage`](#sdkusermessage)`>` | 输入提示,可以是字符串或异步可迭代对象(用于流式模式) |83| `prompt` | `string \| AsyncIterable<`[`SDKUserMessage`](#sdkusermessage)`>` | 输入提示,可以是字符串或异步可迭代对象(用于流式模式) |

84| `options` | [`Options`](#options) | 可选配置对象(请参阅下面的 Options 类型) |84| `options` | [`Options`](#options) | 可选配置对象(请参阅下面的 Options 类型) |

85 85 


107</h4>107</h4>

108 108 

109| 参数 | 类型 | 描述 |109| 参数 | 类型 | 描述 |

110| :-------------------- | :-------------------- | :------------------------------------------------------------ |110| :- | :- | :- |

111| `options` | [`Options`](#options) | 可选配置对象。与 `query()` 的 `options` 参数相同 |111| `options` | [`Options`](#options) | 可选配置对象。与 `query()` 的 `options` 参数相同 |

112| `initializeTimeoutMs` | `number` | 等待子进程初始化的最长时间(毫秒)。默认为 `60000`。如果初始化未在规定时间内完成,promise 将以超时错误拒绝 |112| `initializeTimeoutMs` | `number` | 等待子进程初始化的最长时间(毫秒)。默认为 `60000`。如果初始化未在规定时间内完成,promise 将以超时错误拒绝 |

113 113 


156</h4>156</h4>

157 157 

158| 参数 | 类型 | 描述 |158| 参数 | 类型 | 描述 |

159| :------------ | :----------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------- |159| :- | :- | :- |

160| `name` | `string` | 工具的名称 |160| `name` | `string` | 工具的名称 |

161| `description` | `string` | 工具功能的描述 |161| `description` | `string` | 工具功能的描述 |

162| `inputSchema` | `Schema extends AnyZodRawShape` | 定义工具输入参数的 Zod 架构(支持 Zod 3 和 Zod 4) |162| `inputSchema` | `Schema extends AnyZodRawShape` | 定义工具输入参数的 Zod 架构(支持 Zod 3 和 Zod 4) |


170从 `@modelcontextprotocol/sdk/types.js` 重新导出。所有字段都是可选提示;客户端不应依赖它们做出安全决策。170从 `@modelcontextprotocol/sdk/types.js` 重新导出。所有字段都是可选提示;客户端不应依赖它们做出安全决策。

171 171 

172| 字段 | 类型 | 默认值 | 描述 |172| 字段 | 类型 | 默认值 | 描述 |

173| :---------------- | :-------- | :---------- | :------------------------------------------------------------- |173| :- | :- | :- | :- |

174| `title` | `string` | `undefined` | 工具的人类可读标题 |174| `title` | `string` | `undefined` | 工具的人类可读标题 |

175| `readOnlyHint` | `boolean` | `false` | 如果为 `true`,工具不会修改其环境 |175| `readOnlyHint` | `boolean` | `false` | 如果为 `true`,工具不会修改其环境 |

176| `destructiveHint` | `boolean` | `true` | 如果为 `true`,工具可能执行破坏性更新(仅在 `readOnlyHint` 为 `false` 时有意义) |176| `destructiveHint` | `boolean` | `true` | 如果为 `true`,工具可能执行破坏性更新(仅在 `readOnlyHint` 为 `false` 时有意义) |


214</h4>214</h4>

215 215 

216| 参数 | 类型 | 描述 |216| 参数 | 类型 | 描述 |

217| :--------------------- | :---------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------- |217| :- | :- | :- |

218| `options.name` | `string` | MCP 服务器的名称 |218| `options.name` | `string` | MCP 服务器的名称 |

219| `options.version` | `string` | 可选版本字符串 |219| `options.version` | `string` | 可选版本字符串 |

220| `options.instructions` | `string` | 可选服务器说明,从 `initialize` 返回并作为 MCP 说明块呈现给模型 |220| `options.instructions` | `string` | 可选服务器说明,从 `initialize` 返回并作为 MCP 说明块呈现给模型 |


237</h4>237</h4>

238 238 

239| 参数 | 类型 | 默认值 | 描述 |239| 参数 | 类型 | 默认值 | 描述 |

240| :------------------------- | :-------- | :---------- | :---------------------------------------- |240| :- | :- | :- | :- |

241| `options.dir` | `string` | `undefined` | 列出会话的目录。省略时,返回所有项目中的会话 |241| `options.dir` | `string` | `undefined` | 列出会话的目录。省略时,返回所有项目中的会话 |

242| `options.limit` | `number` | `undefined` | 要返回的最大会话数 |242| `options.limit` | `number` | `undefined` | 要返回的最大会话数 |

243| `options.includeWorktrees` | `boolean` | `true` | 当 `dir` 在 git 存储库内时,包括来自所有 worktree 路径的会话 |243| `options.includeWorktrees` | `boolean` | `true` | 当 `dir` 在 git 存储库内时,包括来自所有 worktree 路径的会话 |


247</h4>247</h4>

248 248 

249| 属性 | 类型 | 描述 |249| 属性 | 类型 | 描述 |

250| :------------- | :-------------------- | :------------------------------------------- |250| :- | :- | :- |

251| `sessionId` | `string` | 唯一会话标识符 (UUID) |251| `sessionId` | `string` | 唯一会话标识符 (UUID) |

252| `summary` | `string` | 显示标题:自定义标题、自动生成的摘要或第一个提示 |252| `summary` | `string` | 显示标题:自定义标题、自动生成的摘要或第一个提示 |

253| `lastModified` | `number` | 上次修改时间(自纪元以来的毫秒数) |253| `lastModified` | `number` | 上次修改时间(自纪元以来的毫秒数) |


293</h4>293</h4>

294 294 

295| 参数 | 类型 | 默认值 | 描述 |295| 参数 | 类型 | 默认值 | 描述 |

296| :--------------- | :------- | :---------- | :-------------------------------- |296| :- | :- | :- | :- |

297| `sessionId` | `string` | 必需 | 要读取的会话 UUID(请参阅 `listSessions()`) |297| `sessionId` | `string` | 必需 | 要读取的会话 UUID(请参阅 `listSessions()`) |

298| `options.dir` | `string` | `undefined` | 查找会话的项目目录。省略时,搜索所有项目 |298| `options.dir` | `string` | `undefined` | 查找会话的项目目录。省略时,搜索所有项目 |

299| `options.limit` | `number` | `undefined` | 要返回的最大消息数 |299| `options.limit` | `number` | `undefined` | 要返回的最大消息数 |


304</h4>304</h4>

305 305 

306| 属性 | 类型 | 描述 |306| 属性 | 类型 | 描述 |

307| :------------------- | :---------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------ |307| :- | :- | :- |

308| `type` | `"user" \| "assistant"` | 消息角色 |308| `type` | `"user" \| "assistant"` | 消息角色 |

309| `uuid` | `string` | 唯一消息标识符 |309| `uuid` | `string` | 唯一消息标识符 |

310| `session_id` | `string` | 此消息所属的会话 |310| `session_id` | `string` | 此消息所属的会话 |


351</h4>351</h4>

352 352 

353| 参数 | 类型 | 默认值 | 描述 |353| 参数 | 类型 | 默认值 | 描述 |

354| :------------ | :------- | :---------- | :------------------ |354| :- | :- | :- | :- |

355| `sessionId` | `string` | 必需 | 要查找的会话 UUID |355| `sessionId` | `string` | 必需 | 要查找的会话 UUID |

356| `options.dir` | `string` | `undefined` | 项目目录路径。省略时,搜索所有项目目录 |356| `options.dir` | `string` | `undefined` | 项目目录路径。省略时,搜索所有项目目录 |

357 357 


376</h4>376</h4>

377 377 

378| 参数 | 类型 | 默认值 | 描述 |378| 参数 | 类型 | 默认值 | 描述 |

379| :------------ | :------- | :---------- | :------------------ |379| :- | :- | :- | :- |

380| `sessionId` | `string` | 必需 | 要重命名的会话 UUID |380| `sessionId` | `string` | 必需 | 要重命名的会话 UUID |

381| `title` | `string` | 必需 | 新标题。修剪空格后必须非空 |381| `title` | `string` | 必需 | 新标题。修剪空格后必须非空 |

382| `options.dir` | `string` | `undefined` | 项目目录路径。省略时,搜索所有项目目录 |382| `options.dir` | `string` | `undefined` | 项目目录路径。省略时,搜索所有项目目录 |


400</h4>400</h4>

401 401 

402| 参数 | 类型 | 默认值 | 描述 |402| 参数 | 类型 | 默认值 | 描述 |

403| :------------ | :--------------- | :---------- | :------------------ |403| :- | :- | :- | :- |

404| `sessionId` | `string` | 必需 | 要标记的会话 UUID |404| `sessionId` | `string` | 必需 | 要标记的会话 UUID |

405| `tag` | `string \| null` | 必需 | 标签字符串,或 `null` 以清除 |405| `tag` | `string \| null` | 必需 | 标签字符串,或 `null` 以清除 |

406| `options.dir` | `string` | `undefined` | 项目目录路径。省略时,搜索所有项目目录 |406| `options.dir` | `string` | `undefined` | 项目目录路径。省略时,搜索所有项目目录 |


434`resolveSettings()` 接受单个选项对象。所有字段都是可选的。434`resolveSettings()` 接受单个选项对象。所有字段都是可选的。

435 435 

436| 参数 | 类型 | 默认值 | 描述 |436| 参数 | 类型 | 默认值 | 描述 |

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

438| `options.cwd` | `string` | `process.cwd()` | 用于解析项目和本地设置的相对目录 |438| `options.cwd` | `string` | `process.cwd()` | 用于解析项目和本地设置的相对目录 |

439| `options.settingSources` | [`SettingSource`](#settingsource)`[]` | 所有源 | 要加载的文件系统源。传递 `[]` 以跳过用户、项目和本地设置。[端点管理的策略](/docs/zh-CN/managed-settings#delivery-mechanisms)在所有情况下都会加载。`resolveSettings()` 仅当您传递 `options.serverManagedSettings` 时才包括服务器管理的设置 |439| `options.settingSources` | [`SettingSource`](#settingsource)`[]` | 所有源 | 要加载的文件系统源。传递 `[]` 以跳过用户、项目和本地设置。[端点管理的策略](/docs/zh-CN/managed-settings#delivery-mechanisms)在所有情况下都会加载。`resolveSettings()` 仅当您传递 `options.serverManagedSettings` 时才包括服务器管理的设置 |

440| `options.managedSettings` | `Settings` | `undefined` | 由嵌入主机提供的策略层设置。遵循与 [`managedSettings` in `Options`](#options) 相同的规则,除了 `resolveSettings()` 不执行配置的 [`policyHelper`](/docs/zh-CN/settings-reference#policyhelper),因此快照可以包括实时会话删除的设置 |440| `options.managedSettings` | `Settings` | `undefined` | 由嵌入主机提供的策略层设置。遵循与 [`managedSettings` in `Options`](#options) 相同的规则,除了 `resolveSettings()` 不执行配置的 [`policyHelper`](/docs/zh-CN/settings-reference#policyhelper),因此快照可以包括实时会话删除的设置 |


447`resolveSettings()` 返回一个对象,描述合并的设置和为每个密钥提供的源。447`resolveSettings()` 返回一个对象,描述合并的设置和为每个密钥提供的源。

448 448 

449| 属性 | 类型 | 描述 |449| 属性 | 类型 | 描述 |

450| :----------- | :-------------------------------------------------- | :------------------------------- |450| :- | :- | :- |

451| `effective` | `Settings` | 在按优先级顺序应用所有启用的源后合并的设置 |451| `effective` | `Settings` | 在按优先级顺序应用所有启用的源后合并的设置 |

452| `provenance` | `Partial<Record<keyof Settings, ProvenanceEntry>>` | 对于 `effective` 中的每个顶级密钥,哪个源提供了该值 |452| `provenance` | `Partial<Record<keyof Settings, ProvenanceEntry>>` | 对于 `effective` 中的每个顶级密钥,哪个源提供了该值 |

453| `sources` | `Array<{ source, settings, path?, policyOrigin? }>` | 每个源的原始设置,按从最低到最高优先级排序 |453| `sources` | `Array<{ source, settings, path?, policyOrigin? }>` | 每个源的原始设置,按从最低到最高优先级排序 |


481`query()` 函数的配置对象。481`query()` 函数的配置对象。

482 482 

483| 属性 | 类型 | 默认值 | 描述 |483| 属性 | 类型 | 默认值 | 描述 |

484| :-------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |484| :- | :- | :- | :- |

485| `abortController` | `AbortController` | `new AbortController()` | 用于取消操作的控制器 |485| `abortController` | `AbortController` | `new AbortController()` | 用于取消操作的控制器 |

486| `additionalDirectories` | `string[]` | `[]` | Claude 可以访问的其他目录。SDK 将每个条目作为 `--add-dir` 传递给 Claude Code,因此使用 `project` 设置源时,Claude Code 也会[加载目录的 skills、commands 和 subagents](/docs/zh-CN/permissions#additional-directories-grant-file-access-not-configuration) |486| `additionalDirectories` | `string[]` | `[]` | Claude 可以访问的其他目录。SDK 将每个条目作为 `--add-dir` 传递给 Claude Code,因此使用 `project` 设置源时,Claude Code 也会[加载目录的 skills、commands 和 subagents](/docs/zh-CN/permissions#additional-directories-grant-file-access-not-configuration) |

487| `agent` | `string` | `undefined` | 主线程的代理名称。代理必须在 `agents` 选项或设置中定义 |487| `agent` | `string` | `undefined` | 主线程的代理名称。代理必须在 `agents` 选项或设置中定义 |


634</h4>634</h4>

635 635 

636| 方法 | 描述 |636| 方法 | 描述 |

637| :------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |637| :- | :- |

638| `interrupt()` | 中断查询。仅在流式输入模式下可用。当 CLI 在 [`SDKSystemMessage.capabilities`](#sdksystemmessage) 中通告 `interrupt_receipt_v1` 功能时,使用列出中断时待处理的消息的 [`SDKControlInterruptResponse`](#sdkcontrolinterruptresponse) 进行解决。在 v2.1.205 之前的 CLI 上解决为 `undefined` |638| `interrupt()` | 中断查询。仅在流式输入模式下可用。当 CLI 在 [`SDKSystemMessage.capabilities`](#sdksystemmessage) 中通告 `interrupt_receipt_v1` 功能时,使用列出中断时待处理的消息的 [`SDKControlInterruptResponse`](#sdkcontrolinterruptresponse) 进行解决。在 v2.1.205 之前的 CLI 上解决为 `undefined` |

639| `rewindFiles(userMessageId, options?)` | 将文件恢复到指定用户消息时的状态。传递 `{ dryRun: true }` 以预览更改。需要 `enableFileCheckpointing: true`。请参阅[文件 checkpointing](/docs/zh-CN/agent-sdk/file-checkpointing) |639| `rewindFiles(userMessageId, options?)` | 将文件恢复到指定用户消息时的状态。传递 `{ dryRun: true }` 以预览更改。需要 `enableFileCheckpointing: true`。请参阅[文件 checkpointing](/docs/zh-CN/agent-sdk/file-checkpointing) |

640| `setPermissionMode()` | 更改权限模式(仅在流式输入模式下可用) |640| `setPermissionMode()` | 更改权限模式(仅在流式输入模式下可用) |


735</h4>735</h4>

736 736 

737| 方法 | 描述 |737| 方法 | 描述 |

738| :-------------- | :------------------------------------------------------------ |738| :- | :- |

739| `query(prompt)` | 向预热的子进程发送提示并返回 [`Query`](#query-object)。每个 `WarmQuery` 只能调用一次 |739| `query(prompt)` | 向预热的子进程发送提示并返回 [`Query`](#query-object)。每个 `WarmQuery` 只能调用一次 |

740| `close()` | 关闭子进程而不发送提示。使用此方法丢弃不再需要的预热查询 |740| `close()` | 关闭子进程而不发送提示。使用此方法丢弃不再需要的预热查询 |

741 741 


1013```1013```

1014 1014 

1015| 字段 | 必需 | 描述 |1015| 字段 | 必需 | 描述 |

1016| :------------------------------------ | :- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |1016| :- | :- | :- |

1017| `description` | 是 | 何时使用此代理的自然语言描述 |1017| `description` | 是 | 何时使用此代理的自然语言描述 |

1018| `tools` | 否 | 允许的工具名称数组。如果省略,继承[可用于 subagents 的每个工具](/docs/zh-CN/sub-agents#available-tools)。要将 Skills 预加载到代理的上下文中,请使用 `skills` 字段而不是在此处列出 `'Skill'` |1018| `tools` | 否 | 允许的工具名称数组。如果省略,继承[可用于 subagents 的每个工具](/docs/zh-CN/sub-agents#available-tools)。要将 Skills 预加载到代理的上下文中,请使用 `skills` 字段而不是在此处列出 `'Skill'` |

1019| `disallowedTools` | 否 | 要为此代理明确禁止的工具名称数组。也接受 MCP 服务器级别的模式:`mcp__server` 或 `mcp__server__*` 移除该服务器的每个工具,`mcp__*` 移除任何服务器的每个 MCP 工具 |1019| `disallowedTools` | 否 | 要为此代理明确禁止的工具名称数组。也接受 MCP 服务器级别的模式:`mcp__server` 或 `mcp__server__*` 移除该服务器的每个工具,`mcp__*` 移除任何服务器的每个 MCP 工具 |


1053```1053```

1054 1054 

1055| 值 | 描述 | 位置 |1055| 值 | 描述 | 位置 |

1056| :---------- | :----------------------------------------- | :---------------------------- |1056| :- | :- | :- |

1057| `'user'` | 全局用户设置 | `~/.claude/settings.json` |1057| `'user'` | 全局用户设置 | `~/.claude/settings.json` |

1058| `'project'` | 共享项目设置(版本控制) | `.claude/settings.json` |1058| `'project'` | 共享项目设置(版本控制) | `.claude/settings.json` |

1059| `'local'` | 本地项目设置,当 Claude Code 将设置保存到其中时被 gitignored | `.claude/settings.local.json` |1059| `'local'` | 本地项目设置,当 Claude Code 将设置保存到其中时被 gitignored | `.claude/settings.local.json` |


1150```1150```

1151 1151 

1152| 选项 | 类型 | 描述 |1152| 选项 | 类型 | 描述 |

1153| :--------------- | :------------------------------------------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |1153| :- | :- | :- |

1154| `signal` | `AbortSignal` | 如果应中止操作,则发出信号 |1154| `signal` | `AbortSignal` | 如果应中止操作,则发出信号 |

1155| `suggestions` | [`PermissionUpdate`](#permissionupdate)`[]` | 建议的权限更新,以便用户不会再次被提示此工具。Bash 提示包括一个建议,其中包含 `localSettings` [目标](#permissionupdatedestination),因此在 `updatedPermissions` 中返回它会将规则写入 `.claude/settings.local.json` 并在会话中持久化。 |1155| `suggestions` | [`PermissionUpdate`](#permissionupdate)`[]` | 建议的权限更新,以便用户不会再次被提示此工具。Bash 提示包括一个建议,其中包含 `localSettings` [目标](#permissionupdatedestination),因此在 `updatedPermissions` 中返回它会将规则写入 `.claude/settings.local.json` 并在会话中持久化。 |

1156| `blockedPath` | `string` | 触发权限请求的文件路径(如果适用) |1156| `blockedPath` | `string` | 触发权限请求的文件路径(如果适用) |


1201```1201```

1202 1202 

1203| 字段 | 类型 | 描述 |1203| 字段 | 类型 | 描述 |

1204| :------------------------------ | :--------------------- | :---------------------------------------------------------------------------------------------------------------- |1204| :- | :- | :- |

1205| `askUserQuestion.previewFormat` | `'markdown' \| 'html'` | 选择加入 [`AskUserQuestion`](/docs/zh-CN/agent-sdk/user-input#question-format) 选项上的 `preview` 字段并设置其内容格式。未设置时,Claude 不发出预览 |1205| `askUserQuestion.previewFormat` | `'markdown' \| 'html'` | 选择加入 [`AskUserQuestion`](/docs/zh-CN/agent-sdk/user-input#question-format) 选项上的 `preview` 字段并设置其内容格式。未设置时,Claude 不发出预览 |

1206 1206 

1207<h3 id="mcpserverconfig">1207<h3 id="mcpserverconfig">


1295```1295```

1296 1296 

1297| 字段 | 类型 | 描述 |1297| 字段 | 类型 | 描述 |

1298| :----------------- | :-------- | :------------------------------------------------------------------------------------------------------------------------------------- |1298| :- | :- | :- |

1299| `type` | `'local'` | 必须为 `'local'`(目前仅支持本地 plugins) |1299| `type` | `'local'` | 必须为 `'local'`(目前仅支持本地 plugins) |

1300| `path` | `string` | 插件目录的绝对或相对路径 |1300| `path` | `string` | 插件目录的绝对或相对路径 |

1301| `skipMcpDiscovery` | `boolean` | 当为 `true` 时,SDK 从此 plugin 加载 skills、hooks、agents 和 commands,但不读取其 `.mcp.json` 或 manifest `mcpServers`。当您的应用程序拥有 plugin 的 MCP 连接时设置此选项。 |1301| `skipMcpDiscovery` | `boolean` | 当为 `true` 时,SDK 从此 plugin 加载 skills、hooks、agents 和 commands,但不读取其 `.mcp.json` 或 manifest `mcpServers`。当您的应用程序拥有 plugin 的 MCP 连接时设置此选项。 |


1549使用原因代码在您自己的 UI 中解释为什么快速模式关闭,而不是重新推导可用性。每个代码命名阻止快速模式的检查:1549使用原因代码在您自己的 UI 中解释为什么快速模式关闭,而不是重新推导可用性。每个代码命名阻止快速模式的检查:

1550 1550 

1551| 原因代码 | 含义 |1551| 原因代码 | 含义 |

1552| ---------------------- | ----------------------------------------------------------------------------------------------------------- |1552| - | - |

1553| `free` | 账户没有快速模式需要的付费订阅或使用额度 |1553| `free` | 账户没有快速模式需要的付费订阅或使用额度 |

1554| `preference` | 组织已禁用快速模式 |1554| `preference` | 组织已禁用快速模式 |

1555| `extra_usage_disabled` | 账户的使用额度已关闭 |1555| `extra_usage_disabled` | 账户的使用额度已关闭 |


1653每个值命名一个拒绝:1653每个值命名一个拒绝:

1654 1654 

1655| 值 | 停止会话的原因 |1655| 值 | 停止会话的原因 |

1656| :------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------ |1656| :- | :- |

1657| `org_pin_api_key_conflict` | 托管设置[需要第一方或 Cloud 网关登录](/docs/zh-CN/authentication#restrict-login-to-your-organization),并配置了 Anthropic API 密钥、身份验证令牌或 `apiKeyHelper` |1657| `org_pin_api_key_conflict` | 托管设置[需要第一方或 Cloud 网关登录](/docs/zh-CN/authentication#restrict-login-to-your-organization),并配置了 Anthropic API 密钥、身份验证令牌或 `apiKeyHelper` |

1658| `org_verify_failed` | 登录的组织无法针对 pin 进行验证,例如由于网络故障或已撤销的令牌 |1658| `org_verify_failed` | 登录的组织无法针对 pin 进行验证,例如由于网络故障或已撤销的令牌 |

1659| `org_pin_mismatch` | 登录属于 pin 不允许的组织 |1659| `org_pin_mismatch` | 登录属于 pin 不允许的组织 |


1718`capabilities` 数组命名此 CLI 实现的协议行为,因此您可以进行功能检测而不是比较 `claude_code_version` 字符串。这是一个开放集:忽略您不认识的值,并检查您依赖其行为的特定功能。该字段需要 Claude Code v2.1.205 或更高版本,在早期 CLI 上不存在。1718`capabilities` 数组命名此 CLI 实现的协议行为,因此您可以进行功能检测而不是比较 `claude_code_version` 字符串。这是一个开放集:忽略您不认识的值,并检查您依赖其行为的特定功能。该字段需要 Claude Code v2.1.205 或更高版本,在早期 CLI 上不存在。

1719 1719 

1720| 功能 | 含义 |1720| 功能 | 含义 |

1721| ---------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |1721| - | - |

1722| `interrupt_receipt_v1` | [`interrupt()`](#query-object) 使用 [`SDKControlInterruptResponse`](#sdkcontrolinterruptresponse) 收据解析,列出中断到达时待处理的消息 |1722| `interrupt_receipt_v1` | [`interrupt()`](#query-object) 使用 [`SDKControlInterruptResponse`](#sdkcontrolinterruptresponse) 收据解析,列出中断到达时待处理的消息 |

1723| `interrupt_cancel_queued_v1` | ` interrupt` 控制请求尊重 `cancel_queued: true`,取消收据在 `still_queued` 下列出的消息,并改为在 `cancelled` 下列出它们。请参阅 [`SDKControlInterruptResponse`](#sdkcontrolinterruptresponse)。需要 Claude Code v2.1.219 或更高版本 |1723| `interrupt_cancel_queued_v1` | ` interrupt` 控制请求尊重 `cancel_queued: true`,取消收据在 `still_queued` 下列出的消息,并改为在 `cancelled` 下列出它们。请参阅 [`SDKControlInterruptResponse`](#sdkcontrolinterruptresponse)。需要 Claude Code v2.1.219 或更高版本 |

1724 1724 


1844```1844```

1845 1845 

1846| 字段 | 类型 | 描述 |1846| 字段 | 类型 | 描述 |

1847| ---------------------- | -------- | ------------------------------------------------------------- |1847| - | - | - |

1848| `tool_name` | `string` | 被拒绝的工具的名称 |1848| `tool_name` | `string` | 被拒绝的工具的名称 |

1849| `tool_use_id` | `string` | 此拒绝回答的 `tool_use` 块的 ID |1849| `tool_use_id` | `string` | 此拒绝回答的 `tool_use` 块的 ID |

1850| `agent_id` | `string` | 当拒绝的调用源自子代理内部时的子代理 ID。镜像主机端路由的 `can_use_tool` 上的字段 |1850| `agent_id` | `string` | 当拒绝的调用源自子代理内部时的子代理 ID。镜像主机端路由的 `can_use_tool` 上的字段 |


1910该表列出了 Claude Code 在每个字段中放入的内容。从 `model` 到 `over_limit` 的字段描述整个会话,集合字段将令牌归因于单个项目。1910该表列出了 Claude Code 在每个字段中放入的内容。从 `model` 到 `over_limit` 的字段描述整个会话,集合字段将令牌归因于单个项目。

1911 1911 

1912| 字段 | 类型 | 描述 |1912| 字段 | 类型 | 描述 |

1913| ---------------- | --------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |1913| - | - | - |

1914| `model` | `string` | Claude Code 计算使用情况的主循环的模型,不是子代理的 |1914| `model` | `string` | Claude Code 计算使用情况的主循环的模型,不是子代理的 |

1915| `total_tokens` | `number` | Claude Code 对使用中令牌的估计。未限制在窗口,因此当会话超过限制时可以超过 `raw_max_tokens` |1915| `total_tokens` | `number` | Claude Code 对使用中令牌的估计。未限制在窗口,因此当会话超过限制时可以超过 `raw_max_tokens` |

1916| `raw_max_tokens` | `number` | 模型的上下文窗口,或较低的[自动压缩窗口](/docs/zh-CN/model-config#context-window-and-auto-compaction)(当适用时),例如您设置的或 Claude Code 应用于某些具有 1M 令牌窗口的模型的 200K 边界。Claude Code 针对此窗口测量 `total_tokens` |1916| `raw_max_tokens` | `number` | 模型的上下文窗口,或较低的[自动压缩窗口](/docs/zh-CN/model-config#context-window-and-auto-compaction)(当适用时),例如您设置的或 Claude Code 应用于某些具有 1M 令牌窗口的模型的 200K 边界。Claude Code 针对此窗口测量 `total_tokens` |


1946该表列出了 Claude Code 在行的每个字段中放入的内容。1946该表列出了 Claude Code 在行的每个字段中放入的内容。

1947 1947 

1948| 字段 | 类型 | 描述 |1948| 字段 | 类型 | 描述 |

1949| -------- | -------- | ----------------------------------------------------------- |1949| - | - | - |

1950| `name` | `string` | 行的显示名称,如 `/context` 打印的那样,例如 `Messages`。按 `kind` 分类行,而不是按名称 |1950| `name` | `string` | 行的显示名称,如 `/context` 打印的那样,例如 `Messages`。按 `kind` 分类行,而不是按名称 |

1951| `tokens` | `number` | 行的令牌计数。行可以携带零令牌 |1951| `tokens` | `number` | 行的令牌计数。行可以携带零令牌 |

1952| `kind` | `string` | 行代表什么:`used`、`free`、`buffer` 或 `deferred` |1952| `kind` | `string` | 行代表什么:`used`、`free`、`buffer` 或 `deferred` |


1989```1989```

1990 1990 

1991| `kind` | 含义 |1991| `kind` | 含义 |

1992| ------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |1992| - | - |

1993| `human` | 来自最终用户的直接输入。如果您的应用程序将用户输入的内容转发为用户消息,显式将其 `origin` 设置为 `{ kind: "human" }`:Claude Code 将没有 `origin` 的用户消息视为未归因,并检查需要人类输入的提示(例如 [`ultracode` 工作流关键字](/docs/zh-CN/workflows#ask-for-a-workflow-in-your-prompt))不接受它。在 v2.1.210 之前,Claude Code 将用户消息上缺失的 `origin` 视为人类输入。 |1993| `human` | 来自最终用户的直接输入。如果您的应用程序将用户输入的内容转发为用户消息,显式将其 `origin` 设置为 `{ kind: "human" }`:Claude Code 将没有 `origin` 的用户消息视为未归因,并检查需要人类输入的提示(例如 [`ultracode` 工作流关键字](/docs/zh-CN/workflows#ask-for-a-workflow-in-your-prompt))不接受它。在 v2.1.210 之前,Claude Code 将用户消息上缺失的 `origin` 视为人类输入。 |

1994| `channel` | 在[频道](/docs/zh-CN/channels)上到达的消息。`server` 是源 MCP 服务器名称。 |1994| `channel` | 在[频道](/docs/zh-CN/channels)上到达的消息。`server` 是源 MCP 服务器名称。 |

1995| `peer` | 来自另一个代理的消息:进程内[队友](/docs/zh-CN/agent-teams)或[跨会话对等体](/docs/zh-CN/cross-session-messaging),您的另一个 Claude Code 会话。请参阅[对等体来源字段](#peer-origin-fields)了解每个字段的语义和信任模型。 |1995| `peer` | 来自另一个代理的消息:进程内[队友](/docs/zh-CN/agent-teams)或[跨会话对等体](/docs/zh-CN/cross-session-messaging),您的另一个 Claude Code 会话。请参阅[对等体来源字段](#peer-origin-fields)了解每个字段的语义和信任模型。 |


3186运行[动态工作流](/docs/zh-CN/workflows):一个脚本,在后台协调许多子代理并返回一个统一的结果。Workflow 工具在 Agent SDK v0.3.149 及更高版本中可用。至少需要 `script`、`name` 或 `scriptPath` 之一。3186运行[动态工作流](/docs/zh-CN/workflows):一个脚本,在后台协调许多子代理并返回一个统一的结果。Workflow 工具在 Agent SDK v0.3.149 及更高版本中可用。至少需要 `script`、`name` 或 `scriptPath` 之一。

3187 3187 

3188| 字段 | 类型 | 描述 |3188| 字段 | 类型 | 描述 |

3189| ----------------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |3189| - | - | - |

3190| `script` | `string` | 内联工作流脚本。必须以 `export const meta = { name, description }` 作为字面量开头,后跟使用 `agent()`、`parallel()`、`pipeline()` 和 `phase()` 的脚本主体。`meta` 中的可选 `phases` 数组在进度视图中将代理分组到命名阶段下 |3190| `script` | `string` | 内联工作流脚本。必须以 `export const meta = { name, description }` 作为字面量开头,后跟使用 `agent()`、`parallel()`、`pipeline()` 和 `phase()` 的脚本主体。`meta` 中的可选 `phases` 数组在进度视图中将代理分组到命名阶段下 |

3191| `name` | `string` | 内置工作流的名称或保存在 `.claude/workflows/` 中的工作流名称。解析为脚本 |3191| `name` | `string` | 内置工作流的名称或保存在 `.claude/workflows/` 中的工作流名称。解析为脚本 |

3192| `scriptPath` | `string` | 磁盘上工作流脚本文件的路径。优先于 `script` 和 `name`。Claude Code 持久化每次调用的脚本并在结果中返回路径,因此您可以编辑该文件并使用相同的 `scriptPath` 重新调用以进行迭代 |3192| `scriptPath` | `string` | 磁盘上工作流脚本文件的路径。优先于 `script` 和 `name`。Claude Code 持久化每次调用的脚本并在结果中返回路径,因此您可以编辑该文件并使用相同的 `scriptPath` 重新调用以进行迭代 |


3868`stdout`、`stderr` 和 `backgroundTaskId` 字段携带:3868`stdout`、`stderr` 和 `backgroundTaskId` 字段携带:

3869 3869 

3870| 字段 | 它携带的内容 |3870| 字段 | 它携带的内容 |

3871| ------------------ | -------------------------------------- |3871| - | - |

3872| `stdout` | 命令的 stdout 和 stderr,合并为一个交错流 |3872| `stdout` | 命令的 stdout 和 stderr,合并为一个交错流 |

3873| `stderr` | 工具本身添加的通知,例如 shell 工作目录重置,不是命令的 stderr |3873| `stderr` | 工具本身添加的通知,例如 shell 工作目录重置,不是命令的 stderr |

3874| `backgroundTaskId` | 对于后台命令存在 |3874| `backgroundTaskId` | 对于后台命令存在 |


4206在工具接受调用后立即返回。最终结果稍后作为任务完成到达。在将运行视为已启动之前检查 `error`:脚本如果语法检查失败,会返回 `status: "async_launched"` 并设置 `error`,且永远不会运行。4206在工具接受调用后立即返回。最终结果稍后作为任务完成到达。在将运行视为已启动之前检查 `error`:脚本如果语法检查失败,会返回 `status: "async_launched"` 并设置 `error`,且永远不会运行。

4207 4207 

4208| 字段 | 类型 | 描述 |4208| 字段 | 类型 | 描述 |

4209| --------------- | --------------------------------------- | ----------------------------------------------------------------------------------- |4209| - | - | - |

4210| `status` | `"async_launched" \| "remote_launched"` | 工具接受了调用。`"async_launched"` 用于进程内运行,`"remote_launched"` 用于分派到云会话而不是在进程内运行的运行 |4210| `status` | `"async_launched" \| "remote_launched"` | 工具接受了调用。`"async_launched"` 用于进程内运行,`"remote_launched"` 用于分派到云会话而不是在进程内运行的运行 |

4211| `taskId` | `string` | 运行的后台任务标识符 |4211| `taskId` | `string` | 运行的后台任务标识符 |

4212| `taskType` | `"local_workflow" \| "remote_agent"` | 已注册后台任务的任务类型,与 `status` 分支匹配 |4212| `taskType` | `"local_workflow" \| "remote_agent"` | 已注册后台任务的任务类型,与 `status` 分支匹配 |


4854Claude Code 报告以下四个值之一:4854Claude Code 报告以下四个值之一:

4855 4855 

4856| 值 | 使用中的密钥 |4856| 值 | 使用中的密钥 |

4857| -------------------- | -------------------------------------------------------------------------------------------------- |4857| - | - |

4858| `ANTHROPIC_API_KEY` | `ANTHROPIC_API_KEY` 环境变量中的密钥 |4858| `ANTHROPIC_API_KEY` | `ANTHROPIC_API_KEY` 环境变量中的密钥 |

4859| `apiKeyHelper` | 由您的 [`apiKeyHelper`](/docs/zh-CN/settings-reference#apikeyhelper) 命令返回的密钥 |4859| `apiKeyHelper` | 由您的 [`apiKeyHelper`](/docs/zh-CN/settings-reference#apikeyhelper) 命令返回的密钥 |

4860| `/login managed key` | Claude Code 在您使用 [Claude Console 账户](/docs/zh-CN/authentication#claude-console-authentication) 登录时存储的密钥 |4860| `/login managed key` | Claude Code 在您使用 [Claude Console 账户](/docs/zh-CN/authentication#claude-console-authentication) 登录时存储的密钥 |


4915```4915```

4916 4916 

4917| 字段 | 类型 | 描述 |4917| 字段 | 类型 | 描述 |

4918| :------------------------- | :----------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------- |4918| :- | :- | :- |

4919| `value` | `string` | 在 API 调用中传递的模型标识符 |4919| `value` | `string` | 在 API 调用中传递的模型标识符 |

4920| `resolvedModel` | `string \| undefined` | 此条目的 `value` 解析到的规范线路模型 ID。别名条目(如 `sonnet`)解析为显式模型 ID(如 `claude-sonnet-5`),因此主机可以将存储的显式模型 ID 与覆盖它的别名条目匹配。需要 Claude Code v2.1.197 或更高版本。 |4920| `resolvedModel` | `string \| undefined` | 此条目的 `value` 解析到的规范线路模型 ID。别名条目(如 `sonnet`)解析为显式模型 ID(如 `claude-sonnet-5`),因此主机可以将存储的显式模型 ID 与覆盖它的别名条目匹配。需要 Claude Code v2.1.197 或更高版本。 |

4921| `displayName` | `string` | 人类可读的显示名称 |4921| `displayName` | `string` | 人类可读的显示名称 |


4941```4941```

4942 4942 

4943| 字段 | 类型 | 描述 |4943| 字段 | 类型 | 描述 |

4944| :------------ | :-------------------- | :----------------------------------------------------------------------------------------------------------------------- |4944| :- | :- | :- |

4945| `name` | `string` | 代理类型标识符(例如 `"Explore"`、`"general-purpose"`) |4945| `name` | `string` | 代理类型标识符(例如 `"Explore"`、`"general-purpose"`) |

4946| `description` | `string` | 何时使用此代理的描述 |4946| `description` | `string` | 何时使用此代理的描述 |

4947| `model` | `string \| undefined` | 此代理使用的模型:别名或模型 ID,或 `'inherit'` 表示父级的模型。当为 `undefined` 时,Claude Code 选择 [子代理模型顺序](/docs/zh-CN/sub-agents#choose-a-model) 中的模型 |4947| `model` | `string \| undefined` | 此代理使用的模型:别名或模型 ID,或 `'inherit'` 表示父级的模型。当为 `undefined` 时,Claude Code 选择 [子代理模型顺序](/docs/zh-CN/sub-agents#choose-a-model) 中的模型 |


4960```4960```

4961 4961 

4962| 字段 | 类型 | 描述 |4962| 字段 | 类型 | 描述 |

4963| :------- | :------- | :---------------------------------------------------------- |4963| :- | :- | :- |

4964| `name` | `string` | 服务器注册时使用的名称,与 [`mcpServerStatus()`](#query-object) 为其报告的值相同 |4964| `name` | `string` | 服务器注册时使用的名称,与 [`mcpServerStatus()`](#query-object) 为其报告的值相同 |

4965| `source` | `string` | 服务器定义的来源:`sdk`、`plugin` 或配置范围 |4965| `source` | `string` | 服务器定义的来源:`sdk`、`plugin` 或配置范围 |

4966 4966 


5165Claude Code 丢弃其 `uri` 或 `name` 不是字符串的块,并省略其值不是列出的类型的可选字段。5165Claude Code 丢弃其 `uri` 或 `name` 不是字符串的块,并省略其值不是列出的类型的可选字段。

5166 5166 

5167| 字段 | 类型 | 描述 |5167| 字段 | 类型 | 描述 |

5168| :------------ | :------------------------------------- | :--------------------- |5168| :- | :- | :- |

5169| `uri` | `string` | 资源的 URI,如服务器返回的那样 |5169| `uri` | `string` | 资源的 URI,如服务器返回的那样 |

5170| `name` | `string` | 服务器给资源的名称 |5170| `name` | `string` | 服务器给资源的名称 |

5171| `title` | `string \| undefined` | 显示标题,当服务器设置了一个时 |5171| `title` | `string \| undefined` | 显示标题,当服务器设置了一个时 |


5753```5753```

5754 5754 

5755| 属性 | 类型 | 默认值 | 描述 |5755| 属性 | 类型 | 默认值 | 描述 |

5756| :-------------------------- | :---------------------------------------------------- | :---------- | :------------------------------------------------------------------------------------------------------------------------------------------------------ |5756| :- | :- | :- | :- |

5757| `enabled` | `boolean` | `false` | 为命令执行启用沙箱模式 |5757| `enabled` | `boolean` | `false` | 为命令执行启用沙箱模式 |

5758| `failIfUnavailable` | `boolean` | `true` | 如果 `enabled` 为 `true` 但沙箱无法启动,则在启动时停止。设置为 `false` 以回退到沙箱外执行,并在 stderr 上显示警告 |5758| `failIfUnavailable` | `boolean` | `true` | 如果 `enabled` 为 `true` 但沙箱无法启动,则在启动时停止。设置为 `false` 以回退到沙箱外执行,并在 stderr 上显示警告 |

5759| `autoAllowBashIfSandboxed` | `boolean` | `true` | 启用沙箱时自动批准 Bash 命令 |5759| `autoAllowBashIfSandboxed` | `boolean` | `true` | 启用沙箱时自动批准 Bash 命令 |


5825```5825```

5826 5826 

5827| 属性 | 类型 | 默认值 | 描述 |5827| 属性 | 类型 | 默认值 | 描述 |

5828| :------------------------ | :--------- | :---------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |5828| :- | :- | :- | :- |

5829| `allowedDomains` | `string[]` | `[]` | 沙箱进程可以访问的域名 |5829| `allowedDomains` | `string[]` | `[]` | 沙箱进程可以访问的域名 |

5830| `deniedDomains` | `string[]` | `[]` | 沙箱进程无法访问的域名。优先于 `allowedDomains` |5830| `deniedDomains` | `string[]` | `[]` | 沙箱进程无法访问的域名。优先于 `allowedDomains` |

5831| `strictAllowlist` | `boolean` | `false` | 拒绝沙箱化命令访问[网络允许列表](/docs/zh-CN/sandboxing#network-isolation)之外的主机,而不是提示。仅对沙箱化命令强制执行;WebFetch 等进程内工具不受其限制。仅从用户、托管或 CLI `--settings` 设置中遵守;项目设置被忽略。需要 Claude Code v2.1.219 或更高版本 |5831| `strictAllowlist` | `boolean` | `false` | 拒绝沙箱化命令访问[网络允许列表](/docs/zh-CN/sandboxing#network-isolation)之外的主机,而不是提示。仅对沙箱化命令强制执行;WebFetch 等进程内工具不受其限制。仅从用户、托管或 CLI `--settings` 设置中遵守;项目设置被忽略。需要 Claude Code v2.1.219 或更高版本 |


5855```5855```

5856 5856 

5857| 属性 | 类型 | 默认值 | 描述 |5857| 属性 | 类型 | 默认值 | 描述 |

5858| :----------- | :--------- | :--- | :------------ |5858| :- | :- | :- | :- |

5859| `allowWrite` | `string[]` | `[]` | 允许写入访问的文件路径模式 |5859| `allowWrite` | `string[]` | `[]` | 允许写入访问的文件路径模式 |

5860| `denyWrite` | `string[]` | `[]` | 拒绝写入访问的文件路径模式 |5860| `denyWrite` | `string[]` | `[]` | 拒绝写入访问的文件路径模式 |

5861| `denyRead` | `string[]` | `[]` | 拒绝读取访问的文件路径模式 |5861| `denyRead` | `string[]` | `[]` | 拒绝读取访问的文件路径模式 |

Details

67您的回调接收三个参数:67您的回调接收三个参数:

68 68 

69| 参数 | 描述 |69| 参数 | 描述 |

70| ----------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |70| - | - |

71| `toolName` | Claude 想要使用的工具的名称(例如 `"Bash"`、`"Write"`、`"Edit"`) |71| `toolName` | Claude 想要使用的工具的名称(例如 `"Bash"`、`"Write"`、`"Edit"`) |

72| `input` | Claude 传递给工具的参数。内容因工具而异。 |72| `input` | Claude 传递给工具的参数。内容因工具而异。 |

73| `options` (TS) / `context` (Python) | 附加上下文,包括可选的 `suggestions`(建议的 `PermissionUpdate` 条目以避免重新提示)和取消信号。在 TypeScript 中,`signal` 是 `AbortSignal`;在 Python 中,信号字段保留供将来使用。有关 Python,请参阅 [`ToolPermissionContext`](/docs/zh-CN/agent-sdk/python#toolpermissioncontext)。 |73| `options` (TS) / `context` (Python) | 附加上下文,包括可选的 `suggestions`(建议的 `PermissionUpdate` 条目以避免重新提示)和取消信号。在 TypeScript 中,`signal` 是 `AbortSignal`;在 Python 中,信号字段保留供将来使用。有关 Python,请参阅 [`ToolPermissionContext`](/docs/zh-CN/agent-sdk/python#toolpermissioncontext)。 |


75`input` 对象包含工具特定的参数。常见示例:75`input` 对象包含工具特定的参数。常见示例:

76 76 

77| 工具 | 输入字段 |77| 工具 | 输入字段 |

78| ------- | ------------------------------------- |78| - | - |

79| `Bash` | `command`、`description`、`timeout` |79| `Bash` | `command`、`description`、`timeout` |

80| `Write` | `file_path`、`content` |80| `Write` | `file_path`、`content` |

81| `Edit` | `file_path`、`old_string`、`new_string` |81| `Edit` | `file_path`、`old_string`、`new_string` |


213您的回调返回两种响应类型之一:213您的回调返回两种响应类型之一:

214 214 

215| 响应 | Python | TypeScript |215| 响应 | Python | TypeScript |

216| ------ | ------------------------------------------ | ------------------------------------- |216| - | - | - |

217| **允许** | `PermissionResultAllow(updated_input=...)` | `{ behavior: "allow", updatedInput }` |217| **允许** | `PermissionResultAllow(updated_input=...)` | `{ behavior: "allow", updatedInput }` |

218| **拒绝** | `PermissionResultDeny(message=...)` | `{ behavior: "deny", message }` |218| **拒绝** | `PermissionResultDeny(message=...)` | `{ behavior: "deny", message }` |

219 219 


513 将 `answers` 对象构建为记录,其中每个键是 `question` 文本,每个值是所选选项的 `label`:513 将 `answers` 对象构建为记录,其中每个键是 `question` 文本,每个值是所选选项的 `label`:

514 514 

515 | 来自问题对象 | 用作 |515 | 来自问题对象 | 用作 |

516 | ----------------------------------------------------- | -- |516 | - | - |

517 | `question` 字段(例如 `"How should I format the output?"`) | 键 |517 | `question` 字段(例如 `"How should I format the output?"`) | 键 |

518 | 所选选项的 `label` 字段(例如 `"Summary"`) | 值 |518 | 所选选项的 `label` 字段(例如 `"Summary"`) | 值 |

519 519 


555输入包含 Claude 在 `questions` 数组中生成的问题。每个问题都有这些字段:555输入包含 Claude 在 `questions` 数组中生成的问题。每个问题都有这些字段:

556 556 

557| 字段 | 描述 |557| 字段 | 描述 |

558| ------------- | ------------------------------------------------------------------------------------------------------- |558| - | - |

559| `question` | 要显示的完整问题文本 |559| `question` | 要显示的完整问题文本 |

560| `header` | 问题的短标签(最多 12 个字符) |560| `header` | 问题的短标签(最多 12 个字符) |

561| `options` | 2-4 个选择的数组,每个都有 `label` 和 `description`。TypeScript:可选 `preview`。请参阅[选项预览](#option-previews-typescript)。 |561| `options` | 2-4 个选择的数组,每个都有 `label` 和 `description`。TypeScript:可选 `preview`。请参阅[选项预览](#option-previews-typescript)。 |


586`toolConfig.askUserQuestion.previewFormat` 向每个选项添加 `preview` 字段,以便您的应用可以在标签旁显示视觉模型。没有此设置,Claude 不会生成预览,该字段不存在。586`toolConfig.askUserQuestion.previewFormat` 向每个选项添加 `preview` 字段,以便您的应用可以在标签旁显示视觉模型。没有此设置,Claude 不会生成预览,该字段不存在。

587 587 

588| `previewFormat` | `preview` 包含 |588| `previewFormat` | `preview` 包含 |

589| :-------------- | :----------------------------------------------------------------- |589| :- | :- |

590| 未设置(默认) | 字段不存在。Claude 不会生成预览。 |590| 未设置(默认) | 字段不存在。Claude 不会生成预览。 |

591| `"markdown"` | ASCII 艺术和围栏代码块 |591| `"markdown"` | ASCII 艺术和围栏代码块 |

592| `"html"` | 样式的 `<div>` 片段(SDK 在您的回调运行前拒绝 `<script>`、`<style>` 和 `<!DOCTYPE>`) |592| `"html"` | 样式的 `<div>` 片段(SDK 在您的回调运行前拒绝 `<script>`、`<style>` 和 `<!DOCTYPE>`) |


629返回 `answers` 对象,将每个问题的 `question` 字段映射到所选选项的 `label`:629返回 `answers` 对象,将每个问题的 `question` 字段映射到所选选项的 `label`:

630 630 

631| 字段 | 描述 |631| 字段 | 描述 |

632| ----------- | ------------------------- |632| - | - |

633| `questions` | 传递原始问题数组(工具处理需要) |633| `questions` | 传递原始问题数组(工具处理需要) |

634| `answers` | 对象,其中键是问题文本,值是所选标签 |634| `answers` | 对象,其中键是问题文本,值是所选标签 |

635| `response` | 可选的自由格式回复,用户输入的而不是回答结构化问题 |635| `response` | 可选的自由格式回复,用户输入的而不是回答结构化问题 |

agent-teams.md +2 −2

Details

40</Frame>40</Frame>

41 41 

42| | Subagents | Agent teams |42| | Subagents | Agent teams |

43| :---------- | :------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------- |43| :- | :- | :- |

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

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

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


259Agent team 由以下部分组成:259Agent team 由以下部分组成:

260 260 

261| 组件 | 角色 |261| 组件 | 角色 |

262| :------------ | :------------------------- |262| :- | :- |

263| **Team lead** | 生成队友并协调工作的主 Claude Code 会话 |263| **Team lead** | 生成队友并协调工作的主 Claude Code 会话 |

264| **Teammates** | 各自处理分配任务的独立 Claude Code 实例 |264| **Teammates** | 各自处理分配任务的独立 Claude Code 实例 |

265| **Task list** | 队友认领和完成的共享工作项列表 |265| **Task list** | 队友认领和完成的共享工作项列表 |

agent-view.md +12 −12

Details

113每行以一个图标开头,其颜色和动画显示会话的状态:113每行以一个图标开头,其颜色和动画显示会话的状态:

114 114 

115| 状态 | 图标显示为 | 含义 |115| 状态 | 图标显示为 | 含义 |

116| :--- | :---- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |116| :- | :- | :- |

117| 工作中 | 动画 | Claude 正在积极运行工具或生成响应 |117| 工作中 | 动画 | Claude 正在积极运行工具或生成响应 |

118| 需要输入 | 黄色 | Claude 等待你提供的特定内容:问题的答案、权限决定或只有你能回答的另一个提示,例如 [sandbox](/docs/zh-CN/sandboxing) 提示以允许网络主机或 MCP 服务器的[请求输入](/docs/zh-CN/mcp#respond-to-mcp-elicitation-requests)。需要附加终端的命令,例如 `/install-github-app` 或 `/mcp` 设置列表,[也在此处保持无人值守的会话](#attach-to-a-session) |118| 需要输入 | 黄色 | Claude 等待你提供的特定内容:问题的答案、权限决定或只有你能回答的另一个提示,例如 [sandbox](/docs/zh-CN/sandboxing) 提示以允许网络主机或 MCP 服务器的[请求输入](/docs/zh-CN/mcp#respond-to-mcp-elicitation-requests)。需要附加终端的命令,例如 `/install-github-app` 或 `/mcp` 设置列表,[也在此处保持无人值守的会话](#attach-to-a-session) |

119| 空闲 | 暗淡 | 会话没有任何事情要做,准备好接收你的下一个提示 |119| 空闲 | 暗淡 | 会话没有任何事情要做,准备好接收你的下一个提示 |


124另外,图标的形状显示底层进程是否正在运行:124另外,图标的形状显示底层进程是否正在运行:

125 125 

126| 形状 | 含义 |126| 形状 | 含义 |

127| :---------- | :----------------------------------------------------------- |127| :- | :- |

128| `✻` 或动画 `✽` | 会话进程处于活跃状态并立即回复 |128| `✻` 或动画 `✽` | 会话进程处于活跃状态并立即回复 |

129| `∙` | 进程已退出。你仍然可以窥视该行,当你回复或附加时,Claude 从中断处重新启动 |129| `∙` | 进程已退出。你仍然可以窥视该行,当你回复或附加时,Claude 从中断处重新启动 |

130| `✢` | 一个 [`/loop`](/docs/zh-CN/scheduled-tasks) 会话在迭代之间休眠。该行显示其运行计数和倒计时 |130| `✢` | 一个 [`/loop`](/docs/zh-CN/scheduled-tasks) 会话在迭代之间休眠。该行显示其运行计数和倒计时 |


176拉取请求编号由其状态着色:176拉取请求编号由其状态着色:

177 177 

178| 颜色 | 拉取请求状态 |178| 颜色 | 拉取请求状态 |

179| :- | :------------ |179| :- | :- |

180| 黄色 | 等待检查或审查,或检查失败 |180| 黄色 | 等待检查或审查,或检查失败 |

181| 绿色 | 检查通过且没有审查阻止 |181| 绿色 | 检查通过且没有审查阻止 |

182| 紫色 | 已合并 |182| 紫色 | 已合并 |


301在调度输入中输入以过滤而不是调度:301在调度输入中输入以过滤而不是调度:

302 302 

303| 过滤 | 显示 |303| 过滤 | 显示 |

304| :----------------------- | :------------------------------------------------ |304| :- | :- |

305| `a:<name>` | 运行命名代理的会话 |305| `a:<name>` | 运行命名代理的会话 |

306| `s:<state>` | 给定状态的会话,例如 `s:working`。也接受 `s:blocked` 用于等待你的所有内容 |306| `s:<state>` | 给定状态的会话,例如 `s:working`。也接受 `s:blocked` 用于等待你的所有内容 |

307| `#<number>` 或拉取或合并请求 URL | 处理该拉取请求或合并请求的会话 |307| `#<number>` 或拉取或合并请求 URL | 处理该拉取请求或合并请求的会话 |


314在 agent view 中按 `?` 查看每个快捷键的上下文。下表总结了它们。314在 agent view 中按 `?` 查看每个快捷键的上下文。下表总结了它们。

315 315 

316| 快捷键 | 操作 |316| 快捷键 | 操作 |

317| :-------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |317| :- | :- |

318| `↑` / `↓` | 在行之间移动 |318| `↑` / `↓` | 在行之间移动 |

319| `Enter` | 附加到选定的会话,或如果输入中有文本则调度 |319| `Enter` | 附加到选定的会话,或如果输入中有文本则调度 |

320| `Space` | 打开或关闭选定会话的窥视面板 |320| `Space` | 打开或关闭选定会话的窥视面板 |


357前缀或提及提示的部分以控制会话如何启动:357前缀或提及提示的部分以控制会话如何启动:

358 358 

359| 输入 | 效果 |359| 输入 | 效果 |

360| :----------------------- | :--------------------------------------------------------------------------------------- |360| :- | :- |

361| `<agent-name> <prompt>` | 如果第一个单词匹配自定义 [subagent](/docs/zh-CN/sub-agents) 名称,该 subagent 作为会话的主代理运行,使用其 frontmatter 中的配置 |361| `<agent-name> <prompt>` | 如果第一个单词匹配自定义 [subagent](/docs/zh-CN/sub-agents) 名称,该 subagent 作为会话的主代理运行,使用其 frontmatter 中的配置 |

362| `@<agent-name>` | 在提示中的任何地方提及自定义 subagent 以作为主代理运行它 |362| `@<agent-name>` | 在提示中的任何地方提及自定义 subagent 以作为主代理运行它 |

363| `@<repo>` | 提及一个存储库以在那里运行会话。参见 [调度到特定目录](#dispatch-to-a-specific-directory) 了解列出了哪些存储库 |363| `@<repo>` | 提及一个存储库以在那里运行会话。参见 [调度到特定目录](#dispatch-to-a-specific-directory) 了解列出了哪些存储库 |


721Agent view 接受与 `claude` 相同的配置标志以加载 settings、plugins、MCP servers 和额外目录。Agent view 将 `--settings` 和 `--plugin-dir` 应用于自己,并将每个配置标志传递给你从它调度的会话,所以以这种方式加载的 plugin 或 MCP server 在这些会话中也可用。721Agent view 接受与 `claude` 相同的配置标志以加载 settings、plugins、MCP servers 和额外目录。Agent view 将 `--settings` 和 `--plugin-dir` 应用于自己,并将每个配置标志传递给你从它调度的会话,所以以这种方式加载的 plugin 或 MCP server 在这些会话中也可用。

722 722 

723| 标志 | 效果 |723| 标志 | 效果 |

724| :-------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |724| :- | :- |

725| [`--settings <file-or-json>`](/docs/zh-CN/settings) | 覆盖 agent view 和调度会话的 settings |725| [`--settings <file-or-json>`](/docs/zh-CN/settings) | 覆盖 agent view 和调度会话的 settings |

726| [`--add-dir <path>`](/docs/zh-CN/permissions#additional-directories-grant-file-access-not-configuration) | 授予对额外目录的文件访问权限 |726| [`--add-dir <path>`](/docs/zh-CN/permissions#additional-directories-grant-file-access-not-configuration) | 授予对额外目录的文件访问权限 |

727| [`--plugin-dir <path>`](/docs/zh-CN/plugins/create#load-a-directory-or-archive-for-one-session) | 从本地目录加载 plugin |727| [`--plugin-dir <path>`](/docs/zh-CN/plugins/create#load-a-directory-or-archive-for-one-session) | 从本地目录加载 plugin |


747每个后台会话有一个短 ID,你可以从 shell 使用。当你使用 `claude --bg` 启动会话时会打印该 ID,每个会话的 ID 是其在 `~/.claude/jobs/` 下的目录名。这些命令对于脚本编写或当你不想打开 agent view 时很有用。747每个后台会话有一个短 ID,你可以从 shell 使用。当你使用 `claude --bg` 启动会话时会打印该 ID,每个会话的 ID 是其在 `~/.claude/jobs/` 下的目录名。这些命令对于脚本编写或当你不想打开 agent view 时很有用。

748 748 

749| 命令 | 目的 |749| 命令 | 目的 |

750| :--------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------- |750| :- | :- |

751| `claude agents` | 打开 agent view |751| `claude agents` | 打开 agent view |

752| `claude agents --cwd <path>` | 打开 agent view,范围限定为在 `<path>` 下启动的会话 |752| `claude agents --cwd <path>` | 打开 agent view,范围限定为在 `<path>` 下启动的会话 |

753| `claude agents --json` | 将会话打印为 JSON 数组并退出。参见 [将会话列为 JSON](#list-sessions-as-json) |753| `claude agents --json` | 将会话打印为 JSON 数组并退出。参见 [将会话列为 JSON](#list-sessions-as-json) |


771每个条目描述一个会话:771每个条目描述一个会话:

772 772 

773| 字段 | 出现时机 | 描述 |773| 字段 | 出现时机 | 描述 |

774| :----------------------- | :----------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------- |774| :- | :- | :- |

775| `cwd`、`kind`、`startedAt` | 总是 | 工作目录、`interactive` 或 `background`,以及 Unix 毫秒为单位的启动时间 |775| `cwd`、`kind`、`startedAt` | 总是 | 工作目录、`interactive` 或 `background`,以及 Unix 毫秒为单位的启动时间 |

776| `id` | 后台会话 | 短 ID,可与 `claude attach`、`claude logs` 和 `claude stop` 一起使用 |776| `id` | 后台会话 | 短 ID,可与 `claude attach`、`claude logs` 和 `claude stop` 一起使用 |

777| `state` | 后台会话 | `working`、`blocked`、`done`、`failed` 或 `stopped` 之一。参见 [从脚本读取会话状态](#read-session-state-from-a-script) 了解每个值的含义 |777| `state` | 后台会话 | `working`、`blocked`、`done`、`failed` 或 `stopped` 之一。参见 [从脚本读取会话状态](#read-session-state-from-a-script) 了解每个值的含义 |


786`claude agents --json` 是从 Claude Code 外部读取会话状态的受支持方式,例如从状态栏、调度程序或监督后台工作的另一个 Claude 会话。轮询 `claude agents --json --all`,它会继续列出进程已退出的会话,并读取每个条目的 `state`、`status` 和 `waitingFor`。786`claude agents --json` 是从 Claude Code 外部读取会话状态的受支持方式,例如从状态栏、调度程序或监督后台工作的另一个 Claude 会话。轮询 `claude agents --json --all`,它会继续列出进程已退出的会话,并读取每个条目的 `state`、`status` 和 `waitingFor`。

787 787 

788| `state` | 含义 |788| `state` | 含义 |

789| :----------------- | :---------------------------------------------------------------------------------------------------- |789| :- | :- |

790| `working` | 一个回合正在运行,或会话在其自己驱动的工作步骤之间,例如 [`/loop`](/docs/zh-CN/scheduled-tasks) 迭代或对 CI 的等待。`status` 告诉你其进程现在是否 `busy` |790| `working` | 一个回合正在运行,或会话在其自己驱动的工作步骤之间,例如 [`/loop`](/docs/zh-CN/scheduled-tasks) 迭代或对 CI 的等待。`status` 告诉你其进程现在是否 `busy` |

791| `blocked` | 会话在等待你:它提出的问题、权限或沙箱决定、只有你能清除的错误(例如过期的登录),或如果你在没有提示的情况下启动它,则为其第一个提示。当等待是活跃进程中的开放提示时,`waitingFor` 会命名它 |791| `blocked` | 会话在等待你:它提出的问题、权限或沙箱决定、只有你能清除的错误(例如过期的登录),或如果你在没有提示的情况下启动它,则为其第一个提示。当等待是活跃进程中的开放提示时,`waitingFor` 会命名它 |

792| `done` | 最后一个回合完成了你要求的内容,会话已准备好接收你的下一个提示,无论其进程是否仍然活跃 |792| `done` | 最后一个回合完成了你要求的内容,会话已准备好接收你的下一个提示,无论其进程是否仍然活跃 |


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

831 831 

832| 路径 | 内容 |832| 路径 | 内容 |

833| :------------------------------- | :------------------------------------------------------------------------------------------------ |833| :- | :- |

834| `~/.claude/daemon.log` | 监督进程日志 |834| `~/.claude/daemon.log` | 监督进程日志 |

835| `~/.claude/daemon/roster.json` | 运行中的后台会话列表,用于在重新启动后重新连接 |835| `~/.claude/daemon/roster.json` | 运行中的后台会话列表,用于在重新启动后重新连接 |

836| `~/.claude/jobs/<id>/state.json` | 在 agent view 中显示的每会话状态。通过 [`claude agents --json`](#read-session-state-from-a-script) 读取它,而不是解析文件 |836| `~/.claude/jobs/<id>/state.json` | 在 agent view 中显示的每会话状态。通过 [`claude agents --json`](#read-session-state-from-a-script) 读取它,而不是解析文件 |


1047Agent view 在研究预览期间发展迅速。如果你使用较旧的 Claude Code 版本,本页上的某些行为可能会有所不同;特别是,`claude agents` 拒绝它尚不支持的标志,出现 `unknown option` 错误。下表列出了何时添加每个标志和行为。1047Agent view 在研究预览期间发展迅速。如果你使用较旧的 Claude Code 版本,本页上的某些行为可能会有所不同;特别是,`claude agents` 拒绝它尚不支持的标志,出现 `unknown option` 错误。下表列出了何时添加每个标志和行为。

1048 1048 

1049| 版本 | 更改 |1049| 版本 | 更改 |

1050| -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |1050| - | - |

1051| v2.1.268 | 当[删除被拒绝](#what-deleting-a-session-removes)因为 git 或你的 `WorktreeRemove` hook 无法删除 worktree 时,消息会说明原因,包括 hook 如何结束以及其 stderr 的开始。对于位于存储库的 `.claude/worktrees/` 下的链接 worktree,没有对跟踪文件的未提交更改,其中没有嵌套存储库,也没有其他会话的记录命名它,再次删除会话会从 agent view 或使用 `claude rm <id> --force-remove-worktree <worktree-id>` 删除目录。在此版本之前,该行仅显示 `worktree could not be removed (WorktreeRemove hook failed)` 或 git 的错误,hook 的 stderr 仅进入调试日志,再次删除被以相同方式拒绝。 |1051| v2.1.268 | 当[删除被拒绝](#what-deleting-a-session-removes)因为 git 或你的 `WorktreeRemove` hook 无法删除 worktree 时,消息会说明原因,包括 hook 如何结束以及其 stderr 的开始。对于位于存储库的 `.claude/worktrees/` 下的链接 worktree,没有对跟踪文件的未提交更改,其中没有嵌套存储库,也没有其他会话的记录命名它,再次删除会话会从 agent view 或使用 `claude rm <id> --force-remove-worktree <worktree-id>` 删除目录。在此版本之前,该行仅显示 `worktree could not be removed (WorktreeRemove hook failed)` 或 git 的错误,hook 的 stderr 仅进入调试日志,再次删除被以相同方式拒绝。 |

1052| v2.1.268 | 在第一个 `←` 显示 `Press ← again to open agents` 或在附加的会话中 `Press ← again to go back to agents` 后,[至少一秒后到达的第一次按压会切换](#switch-sessions-without-leaving-the-terminal),即使中间更快的按压被忽略。在此版本之前,每次被忽略的按压都会重新启动等待,所以以稳定的速度再次按 `←` 直到你暂停超过一秒才会切换。 |1052| v2.1.268 | 在第一个 `←` 显示 `Press ← again to open agents` 或在附加的会话中 `Press ← again to go back to agents` 后,[至少一秒后到达的第一次按压会切换](#switch-sessions-without-leaving-the-terminal),即使中间更快的按压被忽略。在此版本之前,每次被忽略的按压都会重新启动等待,所以以稳定的速度再次按 `←` 直到你暂停超过一秒才会切换。 |

1053| v2.1.260 | 当你[后台会话](#from-inside-a-session)时,你的其他会话的[代理列表](/docs/zh-CN/cross-session-messaging#see-which-sessions-claude-can-reach)显示对话一次,作为其后台会话,它们对它的消息不再到达你移动它的终端。在此版本之前,该终端可能在 `claude agents --json` 中显示为对话名称下的第二个交互式会话,在移动前已向对话发送消息的会话继续传递到该终端。 |1053| v2.1.260 | 当你[后台会话](#from-inside-a-session)时,你的其他会话的[代理列表](/docs/zh-CN/cross-session-messaging#see-which-sessions-claude-can-reach)显示对话一次,作为其后台会话,它们对它的消息不再到达你移动它的终端。在此版本之前,该终端可能在 `claude agents --json` 中显示为对话名称下的第二个交互式会话,在移动前已向对话发送消息的会话继续传递到该终端。 |

agents.md +1 −1

Details

9Claude Code 有五种方式可以同时处理多个任务:[子代理](/docs/zh-CN/sub-agents)、[代理视图](/docs/zh-CN/agent-view)、[代理团队](/docs/zh-CN/agent-teams)、[动态工作流](/docs/zh-CN/workflows) 和 [项目](/docs/zh-CN/claude-projects)。它们在您保持参与的程度上有所不同,从自己指导每个对话到让 Claude 协调一组工作人员,以及工作是在您的机器上运行还是在云中运行。9Claude Code 有五种方式可以同时处理多个任务:[子代理](/docs/zh-CN/sub-agents)、[代理视图](/docs/zh-CN/agent-view)、[代理团队](/docs/zh-CN/agent-teams)、[动态工作流](/docs/zh-CN/workflows) 和 [项目](/docs/zh-CN/claude-projects)。它们在您保持参与的程度上有所不同,从自己指导每个对话到让 Claude 协调一组工作人员,以及工作是在您的机器上运行还是在云中运行。

10 10 

11| 方法 | 它提供什么 | 何时使用 |11| 方法 | 它提供什么 | 何时使用 |

12| :--------------------------- | :---------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------- |12| :- | :- | :- |

13| [子代理](/docs/zh-CN/sub-agents) | 在一个会话内的委派工作人员,在自己的上下文中执行辅助任务并返回摘要 | 辅助任务会用搜索结果、日志或文件内容淹没您的主对话,而您不会再次引用这些内容 |13| [子代理](/docs/zh-CN/sub-agents) | 在一个会话内的委派工作人员,在自己的上下文中执行辅助任务并返回摘要 | 辅助任务会用搜索结果、日志或文件内容淹没您的主对话,而您不会再次引用这些内容 |

14| [代理视图](/docs/zh-CN/agent-view) | 一个屏幕来分派和监控在后台运行的会话,使用 `claude agents` 打开。研究预览 | 您有多个独立任务,想要交付它们,一目了然地检查状态,并仅在需要时介入 |14| [代理视图](/docs/zh-CN/agent-view) | 一个屏幕来分派和监控在后台运行的会话,使用 `claude agents` 打开。研究预览 | 您有多个独立任务,想要交付它们,一目了然地检查状态,并仅在需要时介入 |

15| [代理团队](/docs/zh-CN/agent-teams) | 多个协调的会话,具有共享任务列表和代理间消息传递,由主导者管理。实验性功能,默认禁用 | 您希望 Claude 将项目分成多个部分、分配它们,并保持工作人员同步 |15| [代理团队](/docs/zh-CN/agent-teams) | 多个协调的会话,具有共享任务列表和代理间消息传递,由主导者管理。实验性功能,默认禁用 | 您希望 Claude 将项目分成多个部分、分配它们,并保持工作人员同步 |

Details

304要保留内置默认模型并仅更改其首选前缀,请改为设置 [`ANTHROPIC_BEDROCK_REGION_PREFIX`](#cross-region-inference-profile-prefixes)。差异显示在 `opus` 别名解析为什么:304要保留内置默认模型并仅更改其首选前缀,请改为设置 [`ANTHROPIC_BEDROCK_REGION_PREFIX`](#cross-region-inference-profile-prefixes)。差异显示在 `opus` 别名解析为什么:

305 305 

306| 您设置 | `opus` 别名解析为 |306| 您设置 | `opus` 别名解析为 |

307| :------------------------------------------------------------ | :------------------------------------------- |307| :- | :- |

308| `ANTHROPIC_DEFAULT_OPUS_MODEL='us.anthropic.claude-opus-4-8'` | `us.anthropic.claude-opus-4-8`,您固定的确切 ID |308| `ANTHROPIC_DEFAULT_OPUS_MODEL='us.anthropic.claude-opus-4-8'` | `us.anthropic.claude-opus-4-8`,您固定的确切 ID |

309| `ANTHROPIC_BEDROCK_REGION_PREFIX=eu` | `eu.anthropic.claude-opus-5-5`,具有您首选前缀的内置默认值 |309| `ANTHROPIC_BEDROCK_REGION_PREFIX=eu` | `eu.anthropic.claude-opus-5-5`,具有您首选前缀的内置默认值 |

310 310 


313未设置固定变量时,Claude Code 使用这些默认模型:313未设置固定变量时,Claude Code 使用这些默认模型:

314 314 

315| 模型类型 | 默认模型 |315| 模型类型 | 默认模型 |

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

317| 主要模型 | Opus 5.5,例如 `us-*` 区域中的 `us.anthropic.claude-opus-5-5` |317| 主要模型 | Opus 5.5,例如 `us-*` 区域中的 `us.anthropic.claude-opus-5-5` |

318| 小型/快速模型 | Sonnet 4.5,例如 `us-*` 区域中的 `us.anthropic.claude-sonnet-4-5-20250929-v1:0` |318| 小型/快速模型 | Sonnet 4.5,例如 `us-*` 区域中的 `us.anthropic.claude-sonnet-4-5-20250929-v1:0` |

319 319 


391在 Amazon Bedrock [Invoke API](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModelWithResponseStream.html) 上,Claude Code 将其内置默认模型解析为[跨区域推理配置文件](https://docs.aws.amazon.com/bedrock/latest/userguide/inference-profiles-support.html) ID;要通过您自己的推理配置文件路由模型版本,请参阅[将每个模型版本映射到推理配置文件](#map-each-model-version-to-an-inference-profile)。此表显示了 Claude Code 对每个已解析的 AWS 区域首选的前缀:391在 Amazon Bedrock [Invoke API](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModelWithResponseStream.html) 上,Claude Code 将其内置默认模型解析为[跨区域推理配置文件](https://docs.aws.amazon.com/bedrock/latest/userguide/inference-profiles-support.html) ID;要通过您自己的推理配置文件路由模型版本,请参阅[将每个模型版本映射到推理配置文件](#map-each-model-version-to-an-inference-profile)。此表显示了 Claude Code 对每个已解析的 AWS 区域首选的前缀:

392 392 

393| AWS 区域 | 前缀 |393| AWS 区域 | 前缀 |

394| :------------------------ | :-------- |394| :- | :- |

395| `us-gov-*` (AWS GovCloud) | `us-gov.` |395| `us-gov-*` (AWS GovCloud) | `us-gov.` |

396| `us-*` | `us.` |396| `us-*` | `us.` |

397| `eu-*` | `eu.` |397| `eu-*` | `eu.` |


591这些变量特定于 Mantle 端点。请参阅[环境变量](/docs/zh-CN/env-vars)了解完整列表。591这些变量特定于 Mantle 端点。请参阅[环境变量](/docs/zh-CN/env-vars)了解完整列表。

592 592 

593| 变量 | 目的 |593| 变量 | 目的 |

594| :-------------------------------------- | :---------------------------------------- |594| :- | :- |

595| `CLAUDE_CODE_USE_MANTLE` | 启用 Mantle 端点。设置为 `1` 或 `true`。 |595| `CLAUDE_CODE_USE_MANTLE` | 启用 Mantle 端点。设置为 `1` 或 `true`。 |

596| `ANTHROPIC_BEDROCK_MANTLE_BASE_URL` | 覆盖默认 Mantle 端点 URL |596| `ANTHROPIC_BEDROCK_MANTLE_BASE_URL` | 覆盖默认 Mantle 端点 URL |

597| `CLAUDE_CODE_SKIP_MANTLE_AUTH` | 跳过客户端身份验证以用于代理设置 |597| `CLAUDE_CODE_SKIP_MANTLE_AUTH` | 跳过客户端身份验证以用于代理设置 |

analytics.md +1 −1

Details

9Claude Code 提供分析仪表板,帮助组织了解开发者使用模式、跟踪贡献指标,并衡量 Claude Code 对工程速度的影响。访问您计划的仪表板:9Claude Code 提供分析仪表板,帮助组织了解开发者使用模式、跟踪贡献指标,并衡量 Claude Code 对工程速度的影响。访问您计划的仪表板:

10 10 

11| 计划 | 仪表板 URL | 包含内容 | 了解更多 |11| 计划 | 仪表板 URL | 包含内容 | 了解更多 |

12| ----------------------------- | -------------------------------------------------------------------------- | ------------------------------ | ----------------------------------------------- |12| - | - | - | - |

13| Claude for Teams / Enterprise | [claude.ai/analytics/claude-code](https://claude.ai/analytics/claude-code) | 使用指标、带 GitHub 集成的贡献指标、排行榜、数据导出 | [详情](#access-analytics-for-team-and-enterprise) |13| Claude for Teams / Enterprise | [claude.ai/analytics/claude-code](https://claude.ai/analytics/claude-code) | 使用指标、带 GitHub 集成的贡献指标、排行榜、数据导出 | [详情](#access-analytics-for-team-and-enterprise) |

14| API (Claude Console) | [platform.claude.com/claude-code](https://platform.claude.com/claude-code) | 使用指标、支出跟踪、团队洞察 | [详情](#access-analytics-for-api-customers) |14| API (Claude Console) | [platform.claude.com/claude-code](https://platform.claude.com/claude-code) | 使用指标、支出跟踪、团队洞察 | [详情](#access-analytics-for-api-customers) |

15 15 

artifacts.md +4 −4

Details

326每个工件都是一个独立的页面。Claude Code 将您发布的文件包装在 HTML 文档外壳中,并在严格的内容安全策略 (CSP) 下提供服务,这决定了页面可以执行的操作。326每个工件都是一个独立的页面。Claude Code 将您发布的文件包装在 HTML 文档外壳中,并在严格的内容安全策略 (CSP) 下提供服务,这决定了页面可以执行的操作。

327 327 

328| 约束 | 效果 |328| 约束 | 效果 |

329| :---- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |329| :- | :- |

330| 外部请求 | 页面可以从 Google Fonts 加载字体,以及从[五个公共 CDN 主机](#allowlist-the-viewer-domain)加载脚本:cdnjs、unpkg、Tailwind 和 jQuery CDN,以及 jsDelivr 上的选定路径,例如 `/npm/`。CSP 阻止所有外部图像和所有其他外部脚本、样式表和字体,并让 `fetch`、XHR 和 WebSocket 调用仅到达页面自身的源和 Google Fonts 主机。因此,Claude 从这些 CDN 之一加载页面需要的任何库,内联所有其他 CSS 和 JavaScript,并将图像嵌入为数据 URI。[连接器调用](#pull-live-data-with-mcp-connectors)通过 claude.ai 进行,它自己进行网络调用。 |330| 外部请求 | 页面可以从 Google Fonts 加载字体,以及从[五个公共 CDN 主机](#allowlist-the-viewer-domain)加载脚本:cdnjs、unpkg、Tailwind 和 jQuery CDN,以及 jsDelivr 上的选定路径,例如 `/npm/`。CSP 阻止所有外部图像和所有其他外部脚本、样式表和字体,并让 `fetch`、XHR 和 WebSocket 调用仅到达页面自身的源和 Google Fonts 主机。因此,Claude 从这些 CDN 之一加载页面需要的任何库,内联所有其他 CSS 和 JavaScript,并将图像嵌入为数据 URI。[连接器调用](#pull-live-data-with-mcp-connectors)通过 claude.ai 进行,它自己进行网络调用。 |

331| 无后端 | 工件是一个静态页面。它无法自行对查看者进行身份验证。 |331| 无后端 | 工件是一个静态页面。它无法自行对查看者进行身份验证。 |

332| 下载 | 页面无法自行启动下载。为了让查看者保存页面生成的文件,Claude 声明下载功能。请参阅[提供文件下载](#offer-a-file-download)。 |332| 下载 | 页面无法自行启动下载。为了让查看者保存页面生成的文件,Claude 声明下载功能。请参阅[提供文件下载](#offer-a-file-download)。 |


347Artifacts 需要以下所有条件。当不满足其中一个时,Claude 写入本地 HTML 文件或说它无法发布。347Artifacts 需要以下所有条件。当不满足其中一个时,Claude 写入本地 HTML 文件或说它无法发布。

348 348 

349| 要求 | 可用时间 |349| 要求 | 可用时间 |

350| :---- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |350| :- | :- |

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

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

353| 模型提供商 | 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) 上不可用。 |353| 模型提供商 | 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) 上不可用。 |


365要为您自己的会话关闭 artifacts,无论您的组织设置如何,请使用以下任何一种方法:365要为您自己的会话关闭 artifacts,无论您的组织设置如何,请使用以下任何一种方法:

366 366 

367| 位置 | 操作 |367| 位置 | 操作 |

368| :----------------------------- | :---------------------------------------------------------------------------------------------------- |368| :- | :- |

369| [`/config`](/docs/zh-CN/commands) | 关闭 **Artifacts** 行,这会将 [`"enableArtifact": false`](/docs/zh-CN/settings-reference#enableartifact) 写入您的用户设置 |369| [`/config`](/docs/zh-CN/commands) | 关闭 **Artifacts** 行,这会将 [`"enableArtifact": false`](/docs/zh-CN/settings-reference#enableartifact) 写入您的用户设置 |

370| [Settings 文件](/docs/zh-CN/settings) | 设置 `"enableArtifact": false`。已弃用的 `"disableArtifact": true` 也会关闭 artifacts |370| [Settings 文件](/docs/zh-CN/settings) | 设置 `"enableArtifact": false`。已弃用的 `"disableArtifact": true` 也会关闭 artifacts |

371| [环境变量](/docs/zh-CN/env-vars) | 设置 `CLAUDE_CODE_DISABLE_ARTIFACT=1` |371| [环境变量](/docs/zh-CN/env-vars) | 设置 `CLAUDE_CODE_DISABLE_ARTIFACT=1` |


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

431 431 

432| 方法 | 端点 |432| 方法 | 端点 |

433| :------- | :------------------------------------------------------------------ |433| :- | :- |

434| `GET` | `/v1/compliance/code/artifacts` |434| `GET` | `/v1/compliance/code/artifacts` |

435| `GET` | `/v1/compliance/code/artifacts/{artifact_id}/versions/{version_id}` |435| `GET` | `/v1/compliance/code/artifacts/{artifact_id}/versions/{version_id}` |

436| `DELETE` | `/v1/compliance/code/artifacts/{artifact_id}` |436| `DELETE` | `/v1/compliance/code/artifacts/{artifact_id}` |

Details

249Claude Code 按此顺序检查三个源,并在第一个设置的源处停止。该表显示设置每个源的内容以及它相对于您的 `/login` 凭证的排名。249Claude Code 按此顺序检查三个源,并在第一个设置的源处停止。该表显示设置每个源的内容以及它相对于您的 `/login` 凭证的排名。

250 250 

251| 源 | 设置者 | 相对于 `/login` 的排名 |251| 源 | 设置者 | 相对于 `/login` 的排名 |

252| :----- | :-------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------- |252| :- | :- | :- |

253| 命名配置文件 | `ANTHROPIC_PROFILE` | 上方,无论配置文件具有什么身份验证模式 |253| 命名配置文件 | `ANTHROPIC_PROFILE` | 上方,无论配置文件具有什么身份验证模式 |

254| 联合变量 | `ANTHROPIC_FEDERATION_RULE_ID` 和 `ANTHROPIC_ORGANIZATION_ID`,两者都设置 | 上方 |254| 联合变量 | `ANTHROPIC_FEDERATION_RULE_ID` 和 `ANTHROPIC_ORGANIZATION_ID`,两者都设置 | 上方 |

255| 活跃配置文件 | 您的配置目录中的 [`active_config` 文件](https://platform.claude.com/docs/en/manage-claude/wif-reference#active-profile),或名为 `default` 的配置文件 | 当其身份验证模式为 `oidc_federation` 时上方;当其身份验证模式为 `user_oauth` 时在工作的 `/login` 凭证下方 |255| 活跃配置文件 | 您的配置目录中的 [`active_config` 文件](https://platform.claude.com/docs/en/manage-claude/wif-reference#active-profile),或名为 `default` 的配置文件 | 当其身份验证模式为 `oidc_federation` 时上方;当其身份验证模式为 `user_oauth` 时在工作的 `/login` 凭证下方 |

Details

60选择与边界需要的严格程度相匹配的机制:60选择与边界需要的严格程度相匹配的机制:

61 61 

62| 边界 | 机制 | 自动模式中的行为 |62| 边界 | 机制 | 自动模式中的行为 |

63| :-------- | :-------------------- | :---------------------------------------------------------------------------------------------------------------- |63| :- | :- | :- |

64| 在操作前提示 | `permissions.ask` | 始终为匹配内容范围规则(如上面的配方)的命令进行提示。分类器无法自动批准匹配的操作。 |64| 在操作前提示 | `permissions.ask` | 始终为匹配内容范围规则(如上面的配方)的命令进行提示。分类器无法自动批准匹配的操作。 |

65| 永不运行操作 | `permissions.deny` | 在咨询分类器之前阻止。分类器和用户意图都无法覆盖它。 |65| 永不运行操作 | `permissions.deny` | 在咨询分类器之前阻止。分类器和用户意图都无法覆盖它。 |

66| 此会话的一次性边界 | 在对话中说明,例如"在我审查之前不要推送" | 分类器阻止匹配的操作,但如果 [context compaction](/docs/zh-CN/costs#reduce-token-usage) 删除了说明该边界的消息,边界可能会丢失。使用 ask 或 deny 规则以获得持久保证。 |66| 此会话的一次性边界 | 在对话中说明,例如"在我审查之前不要推送" | 分类器阻止匹配的操作,但如果 [context compaction](/docs/zh-CN/costs#reduce-token-usage) 删除了说明该边界的消息,边界可能会丢失。使用 ask 或 deny 规则以获得持久保证。 |


74对于跨项目应用的规则,例如受信任的基础设施或组织范围的拒绝规则,请使用 `autoMode` 设置块。分类器从以下范围读取 `autoMode`:74对于跨项目应用的规则,例如受信任的基础设施或组织范围的拒绝规则,请使用 `autoMode` 设置块。分类器从以下范围读取 `autoMode`:

75 75 

76| 范围 | 文件 | 用途 |76| 范围 | 文件 | 用途 |

77| :------------------------- | :------------------------------------- | :--------------- |77| :- | :- | :- |

78| 单个开发者 | `~/.claude/settings.json` | 个人受信任的基础设施 |78| 单个开发者 | `~/.claude/settings.json` | 个人受信任的基础设施 |

79| 组织范围 | [托管设置](/docs/zh-CN/server-managed-settings) | 分发给所有开发者的受信任基础设施 |79| 组织范围 | [托管设置](/docs/zh-CN/server-managed-settings) | 分发给所有开发者的受信任基础设施 |

80| `--settings` 标志或 Agent SDK | 内联 JSON | 自动化的每次调用覆盖 |80| `--settings` 标志或 Agent SDK | 内联 JSON | 自动化的每次调用覆盖 |

Details

37检查是任何返回 Claude 可以在对话中读取的信号的东西:测试套件、构建退出代码、linter、针对固定装置比较输出的脚本,或与设计进行比较的[浏览器屏幕截图](/docs/zh-CN/chrome)。运行 [`/verify`](/docs/zh-CN/skills#run-and-verify-your-app) 在 Claude 的检查通过后自己确认针对运行中的应用的更改。37检查是任何返回 Claude 可以在对话中读取的信号的东西:测试套件、构建退出代码、linter、针对固定装置比较输出的脚本,或与设计进行比较的[浏览器屏幕截图](/docs/zh-CN/chrome)。运行 [`/verify`](/docs/zh-CN/skills#run-and-verify-your-app) 在 Claude 的检查通过后自己确认针对运行中的应用的更改。

38 38 

39| 策略 | 之前 | 之后 |39| 策略 | 之前 | 之后 |

40| ----------------- | ------------------- | ----------------------------------------------------------------------------------------------------------------------------------- |40| - | - | - |

41| **提供验证标准** | *"实现一个验证电子邮件地址的函数"* | *"编写一个 validateEmail 函数。示例测试用例:[user@example.com](mailto:user@example.com) 为真,invalid 为假,[user@.com](mailto:user@.com) 为假。实现后运行测试"* |41| **提供验证标准** | *"实现一个验证电子邮件地址的函数"* | *"编写一个 validateEmail 函数。示例测试用例:[user@example.com](mailto:user@example.com) 为真,invalid 为假,[user@.com](mailto:user@.com) 为假。实现后运行测试"* |

42| **以视觉方式验证 UI 更改** | *"让仪表板看起来更好"* | *"\[粘贴屏幕截图] 实现此设计。对结果进行屏幕截图并与原始设计进行比较。列出差异并修复它们"* |42| **以视觉方式验证 UI 更改** | *"让仪表板看起来更好"* | *"\[粘贴屏幕截图] 实现此设计。对结果进行屏幕截图并与原始设计进行比较。列出差异并修复它们"* |

43| **解决根本原因,而不是症状** | *"构建失败"* | *"构建失败,出现此错误:\[粘贴错误]。修复它并验证构建成功。解决根本原因,不要抑制错误"* |43| **解决根本原因,而不是症状** | *"构建失败"* | *"构建失败,出现此错误:\[粘贴错误]。修复它并验证构建成功。解决根本原因,不要抑制错误"* |


127Claude 可以推断意图,但它不能读心术。引用特定文件、提及约束,并指出示例模式。127Claude 可以推断意图,但它不能读心术。引用特定文件、提及约束,并指出示例模式。

128 128 

129| 策略 | 之前 | 之后 |129| 策略 | 之前 | 之后 |

130| ------------------------------- | ------------------------------------ | ------------------------------------------------------------------------------------------------------------------- |130| - | - | - |

131| **限定任务范围。** 指定哪个文件、什么场景和测试偏好。 | *"为 foo.py 添加测试"* | *"为 foo.py 编写测试,涵盖用户已注销的边界情况。避免 mock。"* |131| **限定任务范围。** 指定哪个文件、什么场景和测试偏好。 | *"为 foo.py 添加测试"* | *"为 foo.py 编写测试,涵盖用户已注销的边界情况。避免 mock。"* |

132| **指向来源。** 指导 Claude 到可以回答问题的来源。 | *"为什么 ExecutionFactory 有这样奇怪的 api?"* | *"查看 ExecutionFactory 的 git 历史并总结其 api 是如何形成的"* |132| **指向来源。** 指导 Claude 到可以回答问题的来源。 | *"为什么 ExecutionFactory 有这样奇怪的 api?"* | *"查看 ExecutionFactory 的 git 历史并总结其 api 是如何形成的"* |

133| **参考现有模式。** 指向代码库中的模式。 | *"添加日历小部件"* | *"查看主页上现有小部件的实现方式以了解模式。HotDogWidget.php 是一个很好的例子。按照模式实现一个新的日历小部件,让用户选择月份并向前/向后分页以选择年份。从头开始构建,除了代码库中已使用的库外,不使用其他库。"* |133| **参考现有模式。** 指向代码库中的模式。 | *"添加日历小部件"* | *"查看主页上现有小部件的实现方式以了解模式。HotDogWidget.php 是一个很好的例子。按照模式实现一个新的日历小部件,让用户选择月份并向前/向后分页以选择年份。从头开始构建,除了代码库中已使用的库外,不使用其他库。"* |


186保持简洁。对于每一行,问自己:*"删除这个会导致 Claude 犯错吗?"* 如果不会,删除它。膨胀的 CLAUDE.md 文件会导致 Claude 忽略你的实际指令!186保持简洁。对于每一行,问自己:*"删除这个会导致 Claude 犯错吗?"* 如果不会,删除它。膨胀的 CLAUDE.md 文件会导致 Claude 忽略你的实际指令!

187 187 

188| ✅ 包括 | ❌ 排除 |188| ✅ 包括 | ❌ 排除 |

189| -------------------- | ----------------------- |189| - | - |

190| Claude 无法猜测的 Bash 命令 | Claude 可以通过读取代码弄清楚的任何东西 |190| Claude 无法猜测的 Bash 命令 | Claude 可以通过读取代码弄清楚的任何东西 |

191| 与默认值不同的代码风格规则 | Claude 已经知道的标准语言约定 |191| 与默认值不同的代码风格规则 | Claude 已经知道的标准语言约定 |

192| 测试指令和首选测试运行器 | 详细的 API 文档(改为链接到文档) |192| 测试指令和首选测试运行器 | 详细的 API 文档(改为链接到文档) |


526例如,使用 Writer/Reviewer 模式:526例如,使用 Writer/Reviewer 模式:

527 527 

528| 会话 A(Writer) | 会话 B(Reviewer) |528| 会话 A(Writer) | 会话 B(Reviewer) |

529| -------------------------- | ------------------------------------------------------------------------- |529| - | - |

530| `为我们的 API 端点实现速率限制器` | |530| `为我们的 API 端点实现速率限制器` | |

531| | `审查 @src/middleware/rateLimiter.ts 中的速率限制器实现。查找边界情况、竞态条件和与我们现有中间件模式的一致性。` |531| | `审查 @src/middleware/rateLimiter.ts 中的速率限制器实现。查找边界情况、竞态条件和与我们现有中间件模式的一致性。` |

532| `这是审查反馈:[会话 B 输出]。解决这些问题。` | |532| `这是审查反馈:[会话 B 输出]。解决这些问题。` | |

champion-kit.md +7 −7

Details

17该角色由三种相互强化的行为组成。17该角色由三种相互强化的行为组成。

18 18 

19| 行为 | 实际表现 | 为什么重要 |19| 行为 | 实际表现 | 为什么重要 |

20| --------- | ----------------------------------------------- | --------------------------------------------------------- |20| - | - | - |

21| 分享你的发现 | 在你的团队已经阅读的地方发布提示、截图和小胜利,例如工程频道、站会线程或拉取请求描述。 | 从你自己的代码库中提取的例子比任何外部文档都更有说服力,因为同事可以看到该工具如何准确地应用于他们与你共享的问题。 |21| 分享你的发现 | 在你的团队已经阅读的地方发布提示、截图和小胜利,例如工程频道、站会线程或拉取请求描述。 | 从你自己的代码库中提取的例子比任何外部文档都更有说服力,因为同事可以看到该工具如何准确地应用于他们与你共享的问题。 |

22| 成为人们提问的对象 | 当同事问你如何完成某事时,用你实际使用的提示来回应,这样他们可以直接将其应用于自己的任务。 | 一个具体的、可运行的例子消除了好奇心和第一次成功使用之间的差距,这是大多数采用工作停滞的地方。 |22| 成为人们提问的对象 | 当同事问你如何完成某事时,用你实际使用的提示来回应,这样他们可以直接将其应用于自己的任务。 | 一个具体的、可运行的例子消除了好奇心和第一次成功使用之间的差距,这是大多数采用工作停滞的地方。 |

23| 扩大圈子 | 建立少量轻量级的、定期的习惯,例如专用频道或每周线程,这样即使你的注意力在别处,势头也会继续。 | 依赖于单个人的采用是脆弱的。由共享习惯承载的采用会继续自我复合。 |23| 扩大圈子 | 建立少量轻量级的、定期的习惯,例如专用频道或每周线程,这样即使你的注意力在别处,势头也会继续。 | 依赖于单个人的采用是脆弱的。由共享习惯承载的采用会继续自我复合。 |


29与自己和你的主管设定期望。下面的活动旨在适应正常的工作周,该角色应该保持为你现有工作的倍增器,而不是额外的支持责任。29与自己和你的主管设定期望。下面的活动旨在适应正常的工作周,该角色应该保持为你现有工作的倍增器,而不是额外的支持责任。

30 30 

31| 活动 | 每周时间 | 指导 |31| 活动 | 每周时间 | 指导 |

32| ----------- | --------- | ------------------------------------------------------------ |32| - | - | - |

33| 发布胜利和提示 | 约 15 分钟 | 用截图和一两句话在当时捕捉这些;避免将它们变成正式的写作。 |33| 发布胜利和提示 | 约 15 分钟 | 用截图和一两句话在当时捕捉这些;避免将它们变成正式的写作。 |

34| 在共享频道中回答问题 | 约 20 分钟 | 公开回答一次,然后当问题再次出现时链接回该答案。 |34| 在共享频道中回答问题 | 约 20 分钟 | 公开回答一次,然后当问题再次出现时链接回该答案。 |

35| 主持每周展示和讲述线程 | 约 5 分钟 | 你发布开场提示;团队提供内容。 |35| 主持每周展示和讲述线程 | 约 5 分钟 | 你发布开场提示;团队提供内容。 |


61在你的团队已经阅读的地方发布。目标是将例子放在正常工作的路径中,而不是创建一个目的地。61在你的团队已经阅读的地方发布。目标是将例子放在正常工作的路径中,而不是创建一个目的地。

62 62 

63| 位置 | 最适合 | 推荐格式 |63| 位置 | 最适合 | 推荐格式 |

64| ---------------------- | --------------------------- | -------------------------------- |64| - | - | - |

65| `#claude-code` 或一般工程频道 | 发现、提示和"今天我学到"的时刻 | 一个截图,附带一两句上下文 |65| `#claude-code` 或一般工程频道 | 发现、提示和"今天我学到"的时刻 | 一个截图,附带一两句上下文 |

66| 拉取请求描述 | 在审查者已经阅读的真实代码上演示该方法 | 一行,例如"Claude 和我做了这个重构;很乐意讲解该方法。" |66| 拉取请求描述 | 在审查者已经阅读的真实代码上演示该方法 | 一行,例如"Claude 和我做了这个重构;很乐意讲解该方法。" |

67| 站会或每周书面更新 | 与主管和跳级经理规范化使用 | 一句话描述一个具体的结果 |67| 站会或每周书面更新 | 与主管和跳级经理规范化使用 | 一句话描述一个具体的结果 |


120</h3>120</h3>

121 121 

122| 问题 | 建议的回应 | 后续资源 |122| 问题 | 建议的回应 | 后续资源 |

123| --------------- | ------------------------------------------------------------------------- | ------------------------------------------------------------- |123| - | - | - |

124| "我应该首先在什么上尝试它?" | 推荐一个真实但有限的任务,最好是一个你一直在推迟的错误或琐事,因为它很繁琐而不是困难。 | [Common workflows](/docs/zh-CN/common-workflows) |124| "我应该首先在什么上尝试它?" | 推荐一个真实但有限的任务,最好是一个你一直在推迟的错误或琐事,因为它很繁琐而不是困难。 | [Common workflows](/docs/zh-CN/common-workflows) |

125| "我如何相信它处理我的代码?" | 介绍 plan mode:按 `Shift+Tab` 循环进入它,Claude 准确地提议它打算改变什么,在用户批准之前不会修改任何东西。 | [Permissions](/docs/zh-CN/permissions) |125| "我如何相信它处理我的代码?" | 介绍 plan mode:按 `Shift+Tab` 循环进入它,Claude 准确地提议它打算改变什么,在用户批准之前不会修改任何东西。 | [Permissions](/docs/zh-CN/permissions) |

126| "设置值得付出努力吗?" | 安装大约需要两分钟,在终端中运行,不需要 IDE 扩展。运行一次 `/init` 足以开始工作。 | [Quickstart](/docs/zh-CN/quickstart) |126| "设置值得付出努力吗?" | 安装大约需要两分钟,在终端中运行,不需要 IDE 扩展。运行一次 `/init` 足以开始工作。 | [Quickstart](/docs/zh-CN/quickstart) |


140</h3>140</h3>

141 141 

142| 模式 | 如何运行它 | 所需的努力 |142| 模式 | 如何运行它 | 所需的努力 |

143| ------------- | ------------------------------------------------------------------------------------------------------------- | -------------- |143| - | - | - |

144| 专用频道 | 创建一个 `#claude-code` 频道(或现有频道中的定期线程),固定 [Quickstart](/docs/zh-CN/quickstart) 链接和一个强大的例子,并公开回答问题,以便每个答案都能使观看的每个人受益。 | 大约五分钟的设置,然后是环境 |144| 专用频道 | 创建一个 `#claude-code` 频道(或现有频道中的定期线程),固定 [Quickstart](/docs/zh-CN/quickstart) 链接和一个强大的例子,并公开回答问题,以便每个答案都能使观看的每个人受益。 | 大约五分钟的设置,然后是环境 |

145| 每周展示和讲述线程 | 每个星期五,发布"Claude 本周帮助你做了什么?"不需要准备、幻灯片或会议;截图和简短描述就足够了。 | 每周约两分钟 |145| 每周展示和讲述线程 | 每个星期五,发布"Claude 本周帮助你做了什么?"不需要准备、幻灯片或会议;截图和简短描述就足够了。 | 每周约两分钟 |

146| 分享自定义技能 | 发布你最有用的 `.claude/skills/<name>/SKILL.md` 文件,例如一个 `/ship` 技能,在提交前运行测试和 lint,附带一行描述。因为技能是纯 Markdown,同事可以立即采用它们。 | 每个技能约五分钟 |146| 分享自定义技能 | 发布你最有用的 `.claude/skills/<name>/SKILL.md` 文件,例如一个 `/ship` 技能,在提交前运行测试和 lint,附带一行描述。因为技能是纯 Markdown,同事可以立即采用它们。 | 每个技能约五分钟 |


193健康的怀疑是预期的;工程师应该对接触他们代码的工具保持谨慎。最有效的回应很少是论证一般情况。相反,承认顾虑,提供简短的重新框架,并在这个人自己的代码上提议一个具体的演示。大多数顾虑通过一次成功的经历得到解决。193健康的怀疑是预期的;工程师应该对接触他们代码的工具保持谨慎。最有效的回应很少是论证一般情况。相反,承认顾虑,提供简短的重新框架,并在这个人自己的代码上提议一个具体的演示。大多数顾虑通过一次成功的经历得到解决。

194 194 

195| 顾虑 | 建议的回应 | 提供的证据 |195| 顾虑 | 建议的回应 | 提供的证据 |

196| ----------------- | ------------------------------------------------------------------------ | ------------------------- |196| - | - | - |

197| "我没有它会更快。" | 这对于这个人日常编写的代码可能是真的。建议在他们倾向于避免的工作上尝试它:遗留文件、不熟悉的服务或测试脚手架,其中杠杆最高。 | 以两种方式计时一个繁琐的任务并比较。 |197| "我没有它会更快。" | 这对于这个人日常编写的代码可能是真的。建议在他们倾向于避免的工作上尝试它:遗留文件、不熟悉的服务或测试脚手架,其中杠杆最高。 | 以两种方式计时一个繁琐的任务并比较。 |

198| "我不相信 AI 接触生产代码。" | 同意没有变化应该在未读的情况下登陆。Plan mode 结合正常的 diff 审查意味着没有应用工程师没有检查的东西,与任何拉取请求相同的标准。 | 在真实文件上演示 plan mode。 |198| "我不相信 AI 接触生产代码。" | 同意没有变化应该在未读的情况下登陆。Plan mode 结合正常的 diff 审查意味着没有应用工程师没有检查的东西,与任何拉取请求相同的标准。 | 在真实文件上演示 plan mode。 |

199| "它会使初级工程师变弱。" | 使用得当,它是一个有效的解释器。鼓励初级工程师在要求它改变任何东西之前要求 Claude 解释一个文件及其调用站点。 | 一起运行"解释 @file 以及它从哪里被调用"。 |199| "它会使初级工程师变弱。" | 使用得当,它是一个有效的解释器。鼓励初级工程师在要求它改变任何东西之前要求 Claude 解释一个文件及其调用站点。 | 一起运行"解释 @file 以及它从哪里被调用"。 |


207下面的技术是最可靠地将某人从第一次试验转移到日常使用的技术。在频道中固定此表或单独分享它。207下面的技术是最可靠地将某人从第一次试验转移到日常使用的技术。在频道中固定此表或单独分享它。

208 208 

209| 技术 | 如何应用它 |209| 技术 | 如何应用它 |

210| ---------- | ----------------------------------------------------------------------------------------------- |210| - | - |

211| 提供正确的上下文 | 使用 `@file` 或 `@directory/` 引用,或直接粘贴错误或日志输出。提供相关上下文比精心设计的提示更有效。 |211| 提供正确的上下文 | 使用 `@file` 或 `@directory/` 引用,或直接粘贴错误或日志输出。提供相关上下文比精心设计的提示更有效。 |

212| 在编辑前审查计划 | 按 `Shift+Tab` 进入 Plan Mode。Claude 将在执行之前描述预期的更改以供你批准。 |212| 在编辑前审查计划 | 按 `Shift+Tab` 进入 Plan Mode。Claude 将在执行之前描述预期的更改以供你批准。 |

213| 教它你的存储库 | 运行 `/init` 生成 `CLAUDE.md` 文件,然后添加你的约定、测试命令和任何不应该修改的目录。参见 [Memory](/docs/zh-CN/memory)。 |213| 教它你的存储库 | 运行 `/init` 生成 `CLAUDE.md` 文件,然后添加你的约定、测试命令和任何不应该修改的目录。参见 [Memory](/docs/zh-CN/memory)。 |

channels.md +2 −2

Details

314在所有情况下,在用户使用 `--channels` 为会话选择加入之前,没有 channel 会运行。314在所有情况下,在用户使用 `--channels` 为会话选择加入之前,没有 channel 会运行。

315 315 

316| 设置 | 目的 | 未配置时 |316| 设置 | 目的 | 未配置时 |

317| :---------------------- | :------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------- |317| :- | :- | :- |

318| `channelsEnabled` | 主开关。必须为 `true` 才能让任何 channel 传递消息。阻止所有 channels,包括开发标志(关闭时)。请参阅[为您的组织启用 channels](#enable-channels-for-your-organization)。 | claude.ai Team 和 Enterprise:channels 被阻止。控制台:channels 被允许,除非您的组织部署托管设置,在这种情况下 channels 被阻止,直到设置此密钥 |318| `channelsEnabled` | 主开关。必须为 `true` 才能让任何 channel 传递消息。阻止所有 channels,包括开发标志(关闭时)。请参阅[为您的组织启用 channels](#enable-channels-for-your-organization)。 | claude.ai Team 和 Enterprise:channels 被阻止。控制台:channels 被允许,除非您的组织部署托管设置,在这种情况下 channels 被阻止,直到设置此密钥 |

319| `allowedChannelPlugins` | 启用 channels 后哪些插件可以注册。设置时替换 Anthropic 维护的列表。 | 应用 Anthropic 默认列表 |319| `allowedChannelPlugins` | 启用 channels 后哪些插件可以注册。设置时替换 Anthropic 维护的列表。 | 应用 Anthropic 默认列表 |

320 320 


370几个 Claude Code 功能连接到终端外的系统,每个都适合不同类型的工作:370几个 Claude Code 功能连接到终端外的系统,每个都适合不同类型的工作:

371 371 

372| 功能 | 它做什么 | 适合 |372| 功能 | 它做什么 | 适合 |

373| ------------------------------------------------- | ------------------------------------ | --------------------- |373| - | - | - |

374| [网络上的 Claude Code](/docs/zh-CN/claude-code-on-the-web) | 在新的云沙箱中运行任务,从 GitHub 克隆 | 委派您稍后检查的自包含异步工作 |374| [网络上的 Claude Code](/docs/zh-CN/claude-code-on-the-web) | 在新的云沙箱中运行任务,从 GitHub 克隆 | 委派您稍后检查的自包含异步工作 |

375| [Slack 中的 Claude](/docs/zh-CN/slack) | 从频道或线程中的 `@Claude` 提及生成网络会话 | 直接从团队对话上下文启动任务 |375| [Slack 中的 Claude](/docs/zh-CN/slack) | 从频道或线程中的 `@Claude` 提及生成网络会话 | 直接从团队对话上下文启动任务 |

376| 标准 [MCP 服务器](/docs/zh-CN/mcp) | Claude 在任务期间查询它;没有任何内容被推送到会话 | 给 Claude 按需访问以读取或查询系统 |376| 标准 [MCP 服务器](/docs/zh-CN/mcp) | Claude 在任务期间查询它;没有任何内容被推送到会话 | 给 Claude 按需访问以读取或查询系统 |

Details

204频道在 [`Server`](https://modelcontextprotocol.io/docs/learn/server-concepts) 构造函数中设置这些选项。`instructions` 和 `capabilities.tools` 字段是[标准 MCP](https://modelcontextprotocol.io/docs/learn/server-concepts);`capabilities.experimental['claude/channel']` 和 `capabilities.experimental['claude/channel/permission']` 是频道特定的添加:204频道在 [`Server`](https://modelcontextprotocol.io/docs/learn/server-concepts) 构造函数中设置这些选项。`instructions` 和 `capabilities.tools` 字段是[标准 MCP](https://modelcontextprotocol.io/docs/learn/server-concepts);`capabilities.experimental['claude/channel']` 和 `capabilities.experimental['claude/channel/permission']` 是频道特定的添加:

205 205 

206| 字段 | 类型 | 描述 |206| 字段 | 类型 | 描述 |

207| :------------------------------------------------------- | :----------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |207| :- | :- | :- |

208| `capabilities.experimental['claude/channel']` | `object` | 必需。始终为 `{}`。存在注册通知侦听器。 |208| `capabilities.experimental['claude/channel']` | `object` | 必需。始终为 `{}`。存在注册通知侦听器。 |

209| `capabilities.experimental['claude/channel/permission']` | `object` 或 `false` | 可选。将其设置为 `{}` 以声明此频道可以接收权限中继请求。声明后,Claude Code 将工具批准提示转发到您的频道,以便您可以远程批准或拒绝它们。要选择退出,请省略该键或将其设置为 `false`。在 v2.1.234 之前,Claude Code 将 `false` 视为已声明。请参阅[中继权限提示](#relay-permission-prompts)。 |209| `capabilities.experimental['claude/channel/permission']` | `object` 或 `false` | 可选。将其设置为 `{}` 以声明此频道可以接收权限中继请求。声明后,Claude Code 将工具批准提示转发到您的频道,以便您可以远程批准或拒绝它们。要选择退出,请省略该键或将其设置为 `false`。在 v2.1.234 之前,Claude Code 将 `false` 视为已声明。请参阅[中继权限提示](#relay-permission-prompts)。 |

210| `capabilities.tools` | `object` | 仅双向。始终为 `{}`。标准 MCP 工具能力。请参阅[公开回复工具](#expose-a-reply-tool)。 |210| `capabilities.tools` | `object` | 仅双向。始终为 `{}`。标准 MCP 工具能力。请参阅[公开回复工具](#expose-a-reply-tool)。 |


235您的服务器使用两个参数发出 `notifications/claude/channel`:235您的服务器使用两个参数发出 `notifications/claude/channel`:

236 236 

237| 字段 | 类型 | 描述 |237| 字段 | 类型 | 描述 |

238| :-------- | :----------------------- | :--------------------------------------------------------------------------------------------- |238| :- | :- | :- |

239| `content` | `string` | 事件主体。作为 `<channel>` 标签的主体传递。 |239| `content` | `string` | 事件主体。作为 `<channel>` 标签的主体传递。 |

240| `meta` | `Record<string, string>` | 可选。每个条目成为 `<channel>` 标签上的属性,用于路由上下文,如聊天 ID、发送者名称或警报严重性。键必须是标识符:仅字母、数字和下划线。包含连字符或其他字符的键会被静默删除。 |240| `meta` | `Record<string, string>` | 可选。每个条目成为 `<channel>` 标签上的属性,用于路由上下文,如聊天 ID、发送者名称或警报严重性。键必须是标识符:仅字母、数字和下划线。包含连字符或其他字符的键会被静默删除。 |

241 241 


485来自 Claude Code 的出站通知是 `notifications/claude/channel/permission_request`。与[频道通知](#notification-format)一样,传输是标准 MCP,但方法和架构是 Claude Code 扩展。`params` 对象有四个字符串字段,您的服务器将其格式化为出站提示:485来自 Claude Code 的出站通知是 `notifications/claude/channel/permission_request`。与[频道通知](#notification-format)一样,传输是标准 MCP,但方法和架构是 Claude Code 扩展。`params` 对象有四个字符串字段,您的服务器将其格式化为出站提示:

486 486 

487| 字段 | 描述 |487| 字段 | 描述 |

488| --------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |488| - | - |

489| `request_id` | 从 `a`-`z` 中抽取的五个小写字母,不包括 `l`,因此在手机上输入时永远不会读作 `1` 或 `I`。将其包含在您的出站提示中,以便可以在回复中回显。Claude Code 仅接受携带其发出的 ID 的判决。本地终端对话不显示此 ID,因此您的出站处理程序是了解它的唯一方式。 |489| `request_id` | 从 `a`-`z` 中抽取的五个小写字母,不包括 `l`,因此在手机上输入时永远不会读作 `1` 或 `I`。将其包含在您的出站提示中,以便可以在回复中回显。Claude Code 仅接受携带其发出的 ID 的判决。本地终端对话不显示此 ID,因此您的出站处理程序是了解它的唯一方式。 |

490| `tool_name` | Claude 想要使用的工具的名称,例如 `Bash` 或 `Write`。 |490| `tool_name` | Claude 想要使用的工具的名称,例如 `Bash` 或 `Write`。 |

491| `description` | 此特定工具调用执行的操作的人类可读摘要,永远不是命令本身。对于 Bash 调用,这是 Claude 对命令的描述;当模型不给出描述时,该字段是常数 `Run shell command`,不包含任何命令详情。在有空间时呈现 `input_preview`。 |491| `description` | 此特定工具调用执行的操作的人类可读摘要,永远不是命令本身。对于 Bash 调用,这是 Claude 对命令的描述;当模型不给出描述时,该字段是常数 `Run shell command`,不包含任何命令详情。在有空间时呈现 `input_preview`。 |

chrome.md +1 −1

Details

328这些是最常见的错误及其解决方法:328这些是最常见的错误及其解决方法:

329 329 

330| 错误 | 原因 | 修复 |330| 错误 | 原因 | 修复 |

331| ------------------------- | ---------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- |331| - | - | - |

332| "浏览器扩展程序未连接" | 本机消息传递主机无法到达扩展程序,或您的组织的 IP 允许列表拒绝了到 `bridge.claudeusercontent.com` 的连接 | 重新启动 Chrome 和 Claude Code,然后运行 `/chrome` 以重新连接。如果您的组织使用 IP 允许列表且错误仍然存在,请参阅[组织 IP 允许列表和代理出口](/docs/zh-CN/network-config#organization-ip-allowlists-and-proxy-egress) |332| "浏览器扩展程序未连接" | 本机消息传递主机无法到达扩展程序,或您的组织的 IP 允许列表拒绝了到 `bridge.claudeusercontent.com` 的连接 | 重新启动 Chrome 和 Claude Code,然后运行 `/chrome` 以重新连接。如果您的组织使用 IP 允许列表且错误仍然存在,请参阅[组织 IP 允许列表和代理出口](/docs/zh-CN/network-config#organization-ip-allowlists-and-proxy-egress) |

333| 扩展程序在 `/chrome` 中显示"未检测到" | Chrome 扩展程序未安装或已禁用 | 在 `chrome://extensions` 中安装或启用扩展程序 |333| 扩展程序在 `/chrome` 中显示"未检测到" | Chrome 扩展程序未安装或已禁用 | 在 `chrome://extensions` 中安装或启用扩展程序 |

334| "没有可用的标签页" | Claude 在标签页准备好之前尝试操作 | 要求 Claude 创建新标签页并重试 |334| "没有可用的标签页" | Claude 在标签页准备好之前尝试操作 | 要求 Claude 创建新标签页并重试 |

Details

70在开始之前,请准备好以下内容:70在开始之前,请准备好以下内容:

71 71 

72| 您需要 | 详情 |72| 您需要 | 详情 |

73| --------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |73| - | - |

74| Claude Code v2.1.195 或更高版本 | `claude gateway` 子命令和网关登录流在 v2.1.195 中发布。早期的公开版本不包含它们。运行网关服务器的机器和每个开发人员的机器都必须是 v2.1.195 或更高版本;运行 `claude update` 获取最新版本。[Claude Platform on AWS 上游](/docs/zh-CN/claude-apps-gateway-config#claude-platform-on-aws)在网关服务器上需要 Claude Code v2.1.198 或更高版本。 |74| Claude Code v2.1.195 或更高版本 | `claude gateway` 子命令和网关登录流在 v2.1.195 中发布。早期的公开版本不包含它们。运行网关服务器的机器和每个开发人员的机器都必须是 v2.1.195 或更高版本;运行 `claude update` 获取最新版本。[Claude Platform on AWS 上游](/docs/zh-CN/claude-apps-gateway-config#claude-platform-on-aws)在网关服务器上需要 Claude Code v2.1.198 或更高版本。 |

75| OpenID Connect (OIDC) 身份提供商 | Okta、Microsoft Entra ID、Google Workspace、Keycloak 或 Dex,或任何其他符合 OIDC 的 IdP,如 PingFederate。网关针对它运行标准 OIDC 发现和授权代码流。不支持 SAML 和 LDAP。 |75| OpenID Connect (OIDC) 身份提供商 | Okta、Microsoft Entra ID、Google Workspace、Keycloak 或 Dex,或任何其他符合 OIDC 的 IdP,如 PingFederate。网关针对它运行标准 OIDC 发现和授权代码流。不支持 SAML 和 LDAP。 |

76| PostgreSQL 14 或更高版本 | 支持设备登录流,其中浏览器回调写入,轮询 CLI 读取,加上速率限制计数器。任何托管 Postgres 都可以,包括最小层级。在没有配置支出限制的情况下,网关存储几 KB 的短期身份验证状态;使用[支出限制](/docs/zh-CN/claude-apps-gateway-spend-limits),它还保存应备份的持久支出、审计和身份表。建议通过 `?sslmode=require` 使用 TLS。 |76| PostgreSQL 14 或更高版本 | 支持设备登录流,其中浏览器回调写入,轮询 CLI 读取,加上速率限制计数器。任何托管 Postgres 都可以,包括最小层级。在没有配置支出限制的情况下,网关存储几 KB 的短期身份验证状态;使用[支出限制](/docs/zh-CN/claude-apps-gateway-spend-limits),它还保存应备份的持久支出、审计和身份表。建议通过 `?sslmode=require` 使用 TLS。 |


510网关交付 CLI 发送给每个上游的 [`anthropic-beta`](https://platform.claude.com/docs/en/api/beta-headers) 值,因此操作员不维护 beta 允许列表。对于忽略标头的 Amazon Bedrock,网关将值移到请求正文的 `anthropic_beta` 字段中;其他上游按发送的方式接收标头。510网关交付 CLI 发送给每个上游的 [`anthropic-beta`](https://platform.claude.com/docs/en/api/beta-headers) 值,因此操作员不维护 beta 允许列表。对于忽略标头的 Amazon Bedrock,网关将值移到请求正文的 `anthropic_beta` 字段中;其他上游按发送的方式接收标头。

511 511 

512| 功能 | 状态 | 注释 |512| 功能 | 状态 | 注释 |

513| ------------------------------------------------------------------------------------------------------ | ---------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |513| - | - | - |

514| 推理转发 (Amazon Bedrock、Claude Platform on AWS、Google Cloud 的 Agent Platform、Microsoft Foundry、Anthropic) | 可用 | 具有按上游模型转换和故障转移。Amazon Bedrock 上游使用 `bedrock-runtime` 端点和 AWS 默认凭证链;Amazon Bedrock [Mantle 端点](/docs/zh-CN/amazon-bedrock#use-the-mantle-endpoint)不是支持的上游。[Claude Platform on AWS 上游](/docs/zh-CN/claude-apps-gateway-config#claude-platform-on-aws)需要网关服务器上的 Claude Code v2.1.198 或更高版本。 |514| 推理转发 (Amazon Bedrock、Claude Platform on AWS、Google Cloud 的 Agent Platform、Microsoft Foundry、Anthropic) | 可用 | 具有按上游模型转换和故障转移。Amazon Bedrock 上游使用 `bedrock-runtime` 端点和 AWS 默认凭证链;Amazon Bedrock [Mantle 端点](/docs/zh-CN/amazon-bedrock#use-the-mantle-endpoint)不是支持的上游。[Claude Platform on AWS 上游](/docs/zh-CN/claude-apps-gateway-config#claude-platform-on-aws)需要网关服务器上的 Claude Code v2.1.198 或更高版本。 |

515| 按 IdP 组的模型访问和托管设置 | 可用 | 模型访问在服务器端强制执行;托管设置按 IdP 组交付,由 CLI 在[托管设置层](/docs/zh-CN/settings#settings-precedence)应用 |515| 按 IdP 组的模型访问和托管设置 | 可用 | 模型访问在服务器端强制执行;托管设置按 IdP 组交付,由 CLI 在[托管设置层](/docs/zh-CN/settings#settings-precedence)应用 |

516| Claude Desktop | 可用(需要选择加入) | 网关在 `/user/bootstrap` 处为 Claude Desktop 的配置提供服务,一旦策略[使用 `desktop` 密钥选择加入](/docs/zh-CN/claude-apps-gateway-config#claude-desktop-overlay),Claude Desktop 从其 Cowork 和 Code 选项卡以及从 Chat 选项卡(当您启用它时)发送模型请求通过网关。要打开 Chat 选项卡,请参阅[连接 Claude Desktop](#connect-claude-desktop)。需要网关服务器上的 Claude Code v2.1.203 或更高版本。 |516| Claude Desktop | 可用(需要选择加入) | 网关在 `/user/bootstrap` 处为 Claude Desktop 的配置提供服务,一旦策略[使用 `desktop` 密钥选择加入](/docs/zh-CN/claude-apps-gateway-config#claude-desktop-overlay),Claude Desktop 从其 Cowork 和 Code 选项卡以及从 Chat 选项卡(当您启用它时)发送模型请求通过网关。要打开 Chat 选项卡,请参阅[连接 Claude Desktop](#connect-claude-desktop)。需要网关服务器上的 Claude Code v2.1.203 或更高版本。 |

Details

46不要直接在 `gateway.yaml` 中写入密钥,如 `client_secret`、`jwt_secret` 或 `postgres_url`。使用下面的一种形式引用它们,网关在启动时从环境变量或文件解析该值:46不要直接在 `gateway.yaml` 中写入密钥,如 `client_secret`、`jwt_secret` 或 `postgres_url`。使用下面的一种形式引用它们,网关在启动时从环境变量或文件解析该值:

47 47 

48| 形式 | 解析为 | 用于 |48| 形式 | 解析为 | 用于 |

49| --------------- | --------------------------------------------------------------------------------------------------------------- | -------------------------------------- |49| - | - | - |

50| `${VAR}` | 环境变量 `VAR`。如果未定义,启动失败。 | 容器环境变量、通过环境注入的 AWS Secrets Manager |50| `${VAR}` | 环境变量 `VAR`。如果未定义,启动失败。 | 容器环境变量、通过环境注入的 AWS Secrets Manager |

51| `${file:/path}` | 该绝对路径处的文件内容,已修剪。该引用必须是字段的整个值:与 `${VAR}` 不同,它不会在较长的字符串内展开,因此对于数据库密码,请设置 `store.password` 而不是将其嵌入 `postgres_url`。 | Kubernetes Secret 卷挂载、Vault Agent、SOPS |51| `${file:/path}` | 该绝对路径处的文件内容,已修剪。该引用必须是字段的整个值:与 `${VAR}` 不同,它不会在较长的字符串内展开,因此对于数据库密码,请设置 `store.password` 而不是将其嵌入 `postgres_url`。 | Kubernetes Secret 卷挂载、Vault Agent、SOPS |

52 52 


61`listen` 块控制网关服务的位置:绑定地址和端口、外部可见的源和可选的 TLS 终止。61`listen` 块控制网关服务的位置:绑定地址和端口、外部可见的源和可选的 TLS 终止。

62 62 

63| 字段 | 必需 | 描述 |63| 字段 | 必需 | 描述 |

64| ---------------------- | --------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |64| - | - | - |

65| `host` | 否 | 绑定地址。默认 `0.0.0.0`。 |65| `host` | 否 | 绑定地址。默认 `0.0.0.0`。 |

66| `port` | 否 | 绑定端口。默认 `8080`。 |66| `port` | 否 | 绑定端口。默认 `8080`。 |

67| `public_url` | 除非 `host` 是环回地址 | 外部可见的 `https://` 源,用于构建 IdP `redirect_uri` 和发现元数据。在 `host` 不是环回地址时是必需的,无论 TLS 是在代理(如 ALB、Ingress 或 Cloud Run)还是通过 `tls` 在网关本身终止,因为网关从不从 `X-Forwarded-*` 头派生自己的源;它们是客户端可欺骗的。没有它启动会失败。下面的 `trusted_proxies` 仅控制客户端 IP 解析。要启用[遥测](#telemetry)也需要它,因为网关从此 URL 构建它推送给客户端的 OTLP 端点。 |67| `public_url` | 除非 `host` 是环回地址 | 外部可见的 `https://` 源,用于构建 IdP `redirect_uri` 和发现元数据。在 `host` 不是环回地址时是必需的,无论 TLS 是在代理(如 ALB、Ingress 或 Cloud Run)还是通过 `tls` 在网关本身终止,因为网关从不从 `X-Forwarded-*` 头派生自己的源;它们是客户端可欺骗的。没有它启动会失败。下面的 `trusted_proxies` 仅控制客户端 IP 解析。要启用[遥测](#telemetry)也需要它,因为网关从此 URL 构建它推送给客户端的 OTLP 端点。 |


77OpenID Connect (OIDC) 是网关与你的身份提供者一起使用的 SSO 协议;有关在 IdP 端注册的内容,请参阅[身份提供者设置](/docs/zh-CN/claude-apps-gateway-deploy#identity-provider-setup)。77OpenID Connect (OIDC) 是网关与你的身份提供者一起使用的 SSO 协议;有关在 IdP 端注册的内容,请参阅[身份提供者设置](/docs/zh-CN/claude-apps-gateway-deploy#identity-provider-setup)。

78 78 

79| 字段 | 必需 | 描述 |79| 字段 | 必需 | 描述 |

80| ------------------------------- | -- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |80| - | - | - |

81| `issuer` | 是 | OIDC 发现基础。必须在 `/.well-known/openid-configuration` 提供发现。在生产中使用 HTTPS;网关接受 `http://` 发行者。环回发行者(如 `http://localhost:8081`)被[SSRF 防护](/docs/zh-CN/claude-apps-gateway-deploy#threat-model-summary)拒绝,除非在网关的环境中设置了 `CLAUDE_GATEWAY_ALLOW_LOOPBACK=1`。 |81| `issuer` | 是 | OIDC 发现基础。必须在 `/.well-known/openid-configuration` 提供发现。在生产中使用 HTTPS;网关接受 `http://` 发行者。环回发行者(如 `http://localhost:8081`)被[SSRF 防护](/docs/zh-CN/claude-apps-gateway-deploy#threat-model-summary)拒绝,除非在网关的环境中设置了 `CLAUDE_GATEWAY_ALLOW_LOOPBACK=1`。 |

82| `client_id` / `client_secret` | 是 | 来自你的 OAuth 客户端注册 |82| `client_id` / `client_secret` | 是 | 来自你的 OAuth 客户端注册 |

83| `allowed_email_domains` | 否 | 拒绝其 `email` 声明不在这些域之一中的 id\_token,不区分大小写。针对多租户 IdP 配置错误的纵深防御。独立于此设置,其 `email_verified` 声明明确为 `false` 的 id\_token 总是被拒绝。 |83| `allowed_email_domains` | 否 | 拒绝其 `email` 声明不在这些域之一中的 id\_token,不区分大小写。针对多租户 IdP 配置错误的纵深防御。独立于此设置,其 `email_verified` 声明明确为 `false` 的 id\_token 总是被拒绝。 |


127下面的每一行是具有 `HTTPS_PROXY` 设置的网关上的一类出站请求,默认情况下和仅代理出口活跃时。127下面的每一行是具有 `HTTPS_PROXY` 设置的网关上的一类出站请求,默认情况下和仅代理出口活跃时。

128 128 

129| 出站请求 | 默认 | 仅代理出口活跃 |129| 出站请求 | 默认 | 仅代理出口活跃 |

130| ----------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | ---------------------------------------------- |130| - | - | - |

131| `provider: anthropic` 上游、工作负载身份联合令牌交换、`telemetry.forward_to` 导出 | 在本地解析和检查,然后通过代理 `CONNECT` 到检查的 IP 地址。`NO_PROXY` 中列出的遥测收集器改为直接到达 | 主机名交给代理 |131| `provider: anthropic` 上游、工作负载身份联合令牌交换、`telemetry.forward_to` 导出 | 在本地解析和检查,然后通过代理 `CONNECT` 到检查的 IP 地址。`NO_PROXY` 中列出的遥测收集器改为直接到达 | 主机名交给代理 |

132| IdP 发现、JWKS、令牌和 userinfo | 直接,除非 [`oidc.use_proxy: true`](#idp-requests-through-a-forward-proxy),然后 `CONNECT` 到检查的 IP 地址 | 主机名交给代理,除非 `oidc.use_proxy: false` 保持内部 IdP 直接 |132| IdP 发现、JWKS、令牌和 userinfo | 直接,除非 [`oidc.use_proxy: true`](#idp-requests-through-a-forward-proxy),然后 `CONNECT` 到检查的 IP 地址 | 主机名交给代理,除非 `oidc.use_proxy: false` 保持内部 IdP 直接 |

133| Amazon Bedrock、Claude Platform on AWS、Google Cloud 的 Agent Platform 和 Microsoft Foundry 上游;Google 组查找 | 主机名交给代理 | 不变 |133| Amazon Bedrock、Claude Platform on AWS、Google Cloud 的 Agent Platform 和 Microsoft Foundry 上游;Google 组查找 | 主机名交给代理 | 不变 |


153`session` 块塑造网关在登录后铸造的持有者令牌:签署它们的密钥和它们的生命周期。153`session` 块塑造网关在登录后铸造的持有者令牌:签署它们的密钥和它们的生命周期。

154 154 

155| 字段 | 必需 | 描述 |155| 字段 | 必需 | 描述 |

156| ------------ | -- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |156| - | - | - |

157| `jwt_secret` | 是 | 至少 32 字节的熵,例如来自 `openssl rand -base64 32`。签署网关的 HS256 持有者令牌。接受单个字符串或用于轮换的数组:索引 0 签署,所有条目验证。要轮换,前置新密钥,等待 `ttl_hours`,然后删除旧密钥。 |157| `jwt_secret` | 是 | 至少 32 字节的熵,例如来自 `openssl rand -base64 32`。签署网关的 HS256 持有者令牌。接受单个字符串或用于轮换的数组:索引 0 签署,所有条目验证。要轮换,前置新密钥,等待 `ttl_hours`,然后删除旧密钥。 |

158| `ttl_hours` | 否 | 网关持有者令牌生命周期。默认 `1`。当 IdP 发出刷新令牌时,CLI 在过期前静默刷新。较短的生命周期更快地取消配置;较长的生命周期减少 IdP 往返。如果你的 IdP 因为 `offline_access` 不可用而无法发出刷新令牌,则没有静默刷新,因此提高到 `8` 或 `12` 以避免每小时将开发者发送回浏览器登录。 |158| `ttl_hours` | 否 | 网关持有者令牌生命周期。默认 `1`。当 IdP 发出刷新令牌时,CLI 在过期前静默刷新。较短的生命周期更快地取消配置;较长的生命周期减少 IdP 往返。如果你的 IdP 因为 `offline_access` 不可用而无法发出刷新令牌,则没有静默刷新,因此提高到 `8` 或 `12` 以避免每小时将开发者发送回浏览器登录。 |

159 159 


164`store` 块指向网关的 PostgreSQL 数据库,该数据库保存设备授权和速率限制计数器。164`store` 块指向网关的 PostgreSQL 数据库,该数据库保存设备授权和速率限制计数器。

165 165 

166| 字段 | 必需 | 描述 |166| 字段 | 必需 | 描述 |

167| ------------------------- | -- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |167| - | - | - |

168| `postgres_url` | 是 | `postgres://` 或 `postgresql://` URL。必需:设备授权会合点,浏览器回调写入,轮询 CLI 读取,需要跨副本状态。网关在启动时运行自己的模式迁移,因此角色需要在目标模式上具有创建和修改表的权限。请参阅[升级](/docs/zh-CN/claude-apps-gateway-deploy#upgrades)和 [Postgres](/docs/zh-CN/claude-apps-gateway-deploy#postgres)。 |168| `postgres_url` | 是 | `postgres://` 或 `postgresql://` URL。必需:设备授权会合点,浏览器回调写入,轮询 CLI 读取,需要跨副本状态。网关在启动时运行自己的模式迁移,因此角色需要在目标模式上具有创建和修改表的权限。请参阅[升级](/docs/zh-CN/claude-apps-gateway-deploy#upgrades)和 [Postgres](/docs/zh-CN/claude-apps-gateway-deploy#postgres)。 |

169| `username` | 否 | 覆盖 `postgres_url` 中的用户 |169| `username` | 否 | 覆盖 `postgres_url` 中的用户 |

170| `password` | 否 | 数据库凭证。在此处设置而不是在 `postgres_url` 中,以便凭证保持在 URL 之外。接受任何字符并优先于 URL 凭证。 |170| `password` | 否 | 数据库凭证。在此处设置而不是在 `postgres_url` 中,以便凭证保持在 URL 之外。接受任何字符并优先于 URL 凭证。 |


266网关将这些头添加到它转发到该上游的每个请求。266网关将这些头添加到它转发到该上游的每个请求。

267 267 

268| 头 | 值 |268| 头 | 值 |

269| ----------------------------- | --------------------------- |269| - | - |

270| `x-litellm-end-user-id` | 开发者的电子邮件,当 IdP 提供时。 |270| `x-litellm-end-user-id` | 开发者的电子邮件,当 IdP 提供时。 |

271| `x-claude-gateway-user-id` | 开发者的 IdP 主体,来自令牌的 `sub` 声明。 |271| `x-claude-gateway-user-id` | 开发者的 IdP 主体,来自令牌的 `sub` 声明。 |

272| `x-claude-gateway-user-email` | 开发者的电子邮件,当 IdP 提供时。 |272| `x-claude-gateway-user-email` | 开发者的电子邮件,当 IdP 提供时。 |


305显式凭证必须完整:当 `aws_access_key_id` 和 `aws_secret_access_key` 未一起设置时,或当 `aws_session_token` 在没有它们的情况下设置时,网关在启动时失败。在 v2.1.207 之前,部分 `auth:` 块通过验证。305显式凭证必须完整:当 `aws_access_key_id` 和 `aws_secret_access_key` 未一起设置时,或当 `aws_session_token` 在没有它们的情况下设置时,网关在启动时失败。在 v2.1.207 之前,部分 `auth:` 块通过验证。

306 306 

307| 设置 | 如何 |307| 设置 | 如何 |

308| ---------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |308| - | - |

309| IAM 权限 | 授予网关的主体 `bedrock:InvokeModel` 和 `bedrock:InvokeModelWithResponseStream` 在推理配置文件 ARN 和底层基础模型 ARN 上。对于美国地区的内置目录:`arn:aws:bedrock:<region>:<account>:inference-profile/us.anthropic.*` 和 `arn:aws:bedrock:*::foundation-model/anthropic.*`。也授予基础模型 ARN 上的 `bedrock:CountTokens`。网关使用它(无需付费)来计数客户端放弃的请求的输入令牌,因此[支出限制](#admin)保持准确。没有它,网关回退到该计数的一令牌 Bedrock 请求。 |309| IAM 权限 | 授予网关的主体 `bedrock:InvokeModel` 和 `bedrock:InvokeModelWithResponseStream` 在推理配置文件 ARN 和底层基础模型 ARN 上。对于美国地区的内置目录:`arn:aws:bedrock:<region>:<account>:inference-profile/us.anthropic.*` 和 `arn:aws:bedrock:*::foundation-model/anthropic.*`。也授予基础模型 ARN 上的 `bedrock:CountTokens`。网关使用它(无需付费)来计数客户端放弃的请求的输入令牌,因此[支出限制](#admin)保持准确。没有它,网关回退到该计数的一令牌 Bedrock 请求。 |

310| 模型访问 | Amazon Bedrock 在商业地区默认启用模型访问。剩余的帐户级门是 Anthropic 的一次性用例表单:如果你的 AWS 帐户中没有人提交过,打开 Amazon Bedrock 控制台,从模型目录中选择 Anthropic 模型,并完成表单。有关 AWS Organizations 表单和提交者需要的权限,请参阅[提交用例详情](/docs/zh-CN/amazon-bedrock#1-submit-use-case-details)。 |310| 模型访问 | Amazon Bedrock 在商业地区默认启用模型访问。剩余的帐户级门是 Anthropic 的一次性用例表单:如果你的 AWS 帐户中没有人提交过,打开 Amazon Bedrock 控制台,从模型目录中选择 Anthropic 模型,并完成表单。有关 AWS Organizations 表单和提交者需要的权限,请参阅[提交用例详情](/docs/zh-CN/amazon-bedrock#1-submit-use-case-details)。 |

311| EKS (IRSA) | 创建一个具有上述策略的 IAM 角色和针对你的集群的 OIDC 提供者的信任策略,范围限定为网关的服务帐户。使用 `eks.amazonaws.com/role-arn: arn:aws:iam::<acct>:role/claude-gateway` 注释服务帐户。`auth: {}` 拾取它。 |311| EKS (IRSA) | 创建一个具有上述策略的 IAM 角色和针对你的集群的 OIDC 提供者的信任策略,范围限定为网关的服务帐户。使用 `eks.amazonaws.com/role-arn: arn:aws:iam::<acct>:role/claude-gateway` 注释服务帐户。`auth: {}` 拾取它。 |


341该平台在与 Amazon Bedrock 不同的 AWS 账户中运行,并为其自己的服务名称 `aws-external-anthropic` 签署 SigV4 请求,因此 Bedrock 范围的 IAM 角色不授权它。`auth.api_key` 中的 API 密钥在同时设置 SigV4 凭证时优先。空的 `auth` 块使用 AWS SDK 的默认凭证链,与 [Amazon Bedrock](#amazon-bedrock) 上游使用的链相同。341该平台在与 Amazon Bedrock 不同的 AWS 账户中运行,并为其自己的服务名称 `aws-external-anthropic` 签署 SigV4 请求,因此 Bedrock 范围的 IAM 角色不授权它。`auth.api_key` 中的 API 密钥在同时设置 SigV4 凭证时优先。空的 `auth` 块使用 AWS SDK 的默认凭证链,与 [Amazon Bedrock](#amazon-bedrock) 上游使用的链相同。

342 342 

343| 字段 | 必需 | 描述 |343| 字段 | 必需 | 描述 |

344| ------------------------------------------------------- | -- | ------------------------------------------------------------------------------- |344| - | - | - |

345| `region` | 是 | AWS 地区,小写字母、数字和连字符。网关从它派生端点为 `https://aws-external-anthropic.<region>.api.aws`。 |345| `region` | 是 | AWS 地区,小写字母、数字和连字符。网关从它派生端点为 `https://aws-external-anthropic.<region>.api.aws`。 |

346| `workspace_id` | 是 | 在每个请求上作为头发送;平台需要它 |346| `workspace_id` | 是 | 在每个请求上作为头发送;平台需要它 |

347| `auth.api_key` | 否 | 平台的 API 密钥,作为 `x-api-key` 发送。不是持有者令牌:两种身份验证模式是 API 密钥或 SigV4。 |347| `auth.api_key` | 否 | 平台的 API 密钥,作为 `x-api-key` 发送。不是持有者令牌:两种身份验证模式是 API 密钥或 SigV4。 |


373设置 `region: global` 以使用 [Agent Platform 的全局端点](https://cloud.google.com/vertex-ai/generative-ai/docs/learn/locations)而不是区域端点。Google 然后将每个请求路由到可用地区,因此你不跟踪每地区模型可用性。设置特定地区会将每个请求固定到它。373设置 `region: global` 以使用 [Agent Platform 的全局端点](https://cloud.google.com/vertex-ai/generative-ai/docs/learn/locations)而不是区域端点。Google 然后将每个请求路由到可用地区,因此你不跟踪每地区模型可用性。设置特定地区会将每个请求固定到它。

374 374 

375| 设置 | 如何 |375| 设置 | 如何 |

376| --------------- | ------------------------------------------------------------------------------------------------------------------------------------------- |376| - | - |

377| IAM 权限 | 授予网关的服务帐户项目上的 `roles/aiplatform.user`,或具有 `aiplatform.endpoints.predict` 的自定义角色。启用 Agent Platform API (`aiplatform.googleapis.com`)。 |377| IAM 权限 | 授予网关的服务帐户项目上的 `roles/aiplatform.user`,或具有 `aiplatform.endpoints.predict` 的自定义角色。启用 Agent Platform API (`aiplatform.googleapis.com`)。 |

378| 模型访问 | 在 Model Garden 中,为你的项目启用 Claude 模型。它们发布到特定地区;检查模型卡以了解支持的地区。 |378| 模型访问 | 在 Model Garden 中,为你的项目启用 Claude 模型。它们发布到特定地区;检查模型卡以了解支持的地区。 |

379| GKE (工作负载身份) | 将 GCP 服务帐户绑定到网关的 Kubernetes 服务帐户,并使用 `iam.gke.io/gcp-service-account: claude-gateway@<proj>.iam.gserviceaccount.com` 注释 KSA。`auth: {}` 拾取它。 |379| GKE (工作负载身份) | 将 GCP 服务帐户绑定到网关的 Kubernetes 服务帐户,并使用 `iam.gke.io/gcp-service-account: claude-gateway@<proj>.iam.gserviceaccount.com` 注释 KSA。`auth: {}` 拾取它。 |


399`use_azure_ad: true` 通过 `DefaultAzureCredential` 解析:AKS、ACI 或 App Service 上的托管身份;Azure CLI;或环境凭证。API 密钥有效但是项目范围的,不会自动轮换。Foundry 的端点从 `resource:` 派生;设置可选的 `base_url` 以为主权云(如 Azure Government)覆盖它。399`use_azure_ad: true` 通过 `DefaultAzureCredential` 解析:AKS、ACI 或 App Service 上的托管身份;Azure CLI;或环境凭证。API 密钥有效但是项目范围的,不会自动轮换。Foundry 的端点从 `resource:` 派生;设置可选的 `base_url` 以为主权云(如 Azure Government)覆盖它。

400 400 

401| 设置 | 如何 |401| 设置 | 如何 |

402| ----------------- | ------------------------------------------------------------------------------------------------- |402| - | - |

403| RBAC | 授予网关的身份 Foundry 资源上的 `Azure AI User` 或 `Cognitive Services User` |403| RBAC | 授予网关的身份 Foundry 资源上的 `Azure AI User` 或 `Cognitive Services User` |

404| 部署 | Foundry 使用管理员选择的部署名称,而不是规范模型 ID。添加一个[`models:`](#models)块,将每个规范 ID 映射到你的部署名称。 |404| 部署 | Foundry 使用管理员选择的部署名称,而不是规范模型 ID。添加一个[`models:`](#models)块,将每个规范 ID 映射到你的部署名称。 |

405| AKS (工作负载身份) | 将用户分配的托管身份与集群的 OIDC 发行者联合,并将其绑定到网关的服务帐户。`use_azure_ad: true` 通过 `WorkloadIdentityCredential` 拾取它。 |405| AKS (工作负载身份) | 将用户分配的托管身份与集群的 OIDC 发行者联合,并将其绑定到网关的服务帐户。`use_azure_ad: true` 通过 `WorkloadIdentityCredential` 拾取它。 |


439并非网关发送到上游的每个请求都携带它们:439并非网关发送到上游的每个请求都携带它们:

440 440 

441| 网关发送到此上游的请求 | 携带 `headers:` |441| 网关发送到此上游的请求 | 携带 `headers:` |

442| --------------------------------------------------- | ------------------ |442| - | - |

443| `/v1/messages`、流式或非流式,和 `/v1/messages/count_tokens` | 是 |443| `/v1/messages`、流式或非流式,和 `/v1/messages/count_tokens` | 是 |

444| 从另一个上游故障转移的请求 | 是,仅此上游的 `headers:` |444| 从另一个上游故障转移的请求 | 是,仅此上游的 `headers:` |

445| 客户端放弃的请求的 Amazon Bedrock 的 `CountTokens` 调用 | 否 |445| 客户端放弃的请求的 Amazon Bedrock 的 `CountTokens` 调用 | 否 |


510```510```

511 511 

512| 杠杆 | 如何 |512| 杠杆 | 如何 |

513| ------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |513| - | - |

514| 不同地区 | 每个地区一个 Bedrock 上游,每个都有自己的 `region:`。使用 [`auto_include_builtin_models: true`](#models),跨地区推理配置文件自动路由;对于地区固定部署,使用 `models:` 块。 |514| 不同地区 | 每个地区一个 Bedrock 上游,每个都有自己的 `region:`。使用 [`auto_include_builtin_models: true`](#models),跨地区推理配置文件自动路由;对于地区固定部署,使用 `models:` 块。 |

515| 不同帐户 | 每个帐户一个 Bedrock 上游,每个在 `auth:` 中都有自己的凭证。默认链 (`auth: {}`) 使用 pod 的身份;对于第二个帐户,设置显式凭证或持有者令牌。 |515| 不同帐户 | 每个帐户一个 Bedrock 上游,每个在 `auth:` 中都有自己的凭证。默认链 (`auth: {}`) 使用 pod 的身份;对于第二个帐户,设置显式凭证或持有者令牌。 |

516| 预配吞吐量 | 在该上游名称的 `models:` 中将模型映射到预配吞吐量 ARN。其他上游保持按需 ID,因此 PT 容量在故障转移前耗尽。 |516| 预配吞吐量 | 在该上游名称的 `models:` 中将模型映射到预配吞吐量 ARN。其他上游保持按需 ID,因此 PT 容量在故障转移前耗尽。 |


548```548```

549 549 

550| 字段 | 必需 | 描述 |550| 字段 | 必需 | 描述 |

551| ------------------------- | -- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |551| - | - | - |

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

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

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


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

566 566 

567| 字段 | 必需 | 描述 |567| 字段 | 必需 | 描述 |

568| ---------------------- | -- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |568| - | - | - |

569| `fail_closed_on_error` | 否 | 默认 `false`。支出强制执行在 Postgres 中断时失败开放,因此推理保持运行。设置 `true` 以失败关闭:超出上限的开发者被阻止,但如果存储无法访问,所有人都被阻止。需要 [`admin:`](#admin) 块:支出强制执行仅在配置 `admin` 时运行,如果在没有 `admin` 块的情况下设置此 `true`,网关拒绝启动。 |569| `fail_closed_on_error` | 否 | 默认 `false`。支出强制执行在 Postgres 中断时失败开放,因此推理保持运行。设置 `true` 以失败关闭:超出上限的开发者被阻止,但如果存储无法访问,所有人都被阻止。需要 [`admin:`](#admin) 块:支出强制执行仅在配置 `admin` 时运行,如果在没有 `admin` 块的情况下设置此 `true`,网关拒绝启动。 |

570 570 

571<h3 id="pricing">571<h3 id="pricing">


590```590```

591 591 

592| 字段 | 必需 | 描述 |592| 字段 | 必需 | 描述 |

593| ------------ | -- | -------------------------------------------------------------------------------------------------------- |593| - | - | - |

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

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

596 596 


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

688 688 

689| 匹配器 | 行为 |689| 匹配器 | 行为 |

690| --------------------------------------------------- | -------------------------------------------------------- |690| - | - |

691| `match: {}` | 匹配每个已认证的用户。从其中一个开始,稍后在其上方添加组范围的策略。 |691| `match: {}` | 匹配每个已认证的用户。从其中一个开始,稍后在其上方添加组范围的策略。 |

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

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


769```769```

770 770 

771| 键 | 由以下强制执行 | 效果 |771| 键 | 由以下强制执行 | 效果 |

772| ------------------------------------------ | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |772| - | - | - |

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

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

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


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

1009 1009 

1010| 块 | 键 | 默认 | 描述 |1010| 块 | 键 | 默认 | 描述 |

1011| ---------------- | ---------------------------------------------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |1011| - | - | - | - |

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

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

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


1046```1046```

1047 1047 

1048| 字段 | 必需 | 描述 |1048| 字段 | 必需 | 描述 |

1049| --------------- | -- | ----------------------------------------------------------- |1049| - | - | - |

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

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

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

Details

240网关持有五个数据表加上一个 `_migrations` 表,全部由其启动时迁移创建:240网关持有五个数据表加上一个 `_migrations` 表,全部由其启动时迁移创建:

241 241 

242| 表 | 内容 | 保留 |242| 表 | 内容 | 保留 |

243| ------------------ | ---------------------------------- | --------------------------------------------- |243| - | - | - |

244| `kv` | 设备授权(10 分钟 TTL)和速率限制计数器 | 每行 TTL |244| `kv` | 设备授权(10 分钟 TTL)和速率限制计数器 | 每行 TTL |

245| `spend` | 每个主体期间至今支出计数器,以美分计 | `admin.spend_retention_months`,默认 13 |245| `spend` | 每个主体期间至今支出计数器,以美分计 | `admin.spend_retention_months`,默认 13 |

246| `spend_limits` | 配置的支出上限 | 直到通过 API 删除 |246| `spend_limits` | 配置的支出上限 | 直到通过 API 删除 |


288</h3>288</h3>

289 289 

290| 数据 | 路径 | 由网关发送给 Anthropic |290| 数据 | 路径 | 由网关发送给 Anthropic |

291| ----------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------ |291| - | - | - |

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

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

294| 身份(电子邮件、组、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 主体作为标头发送到您的代理 | 从不 |294| 身份(电子邮件、组、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 主体作为标头发送到您的代理 | 从不 |


352gateway 的 stderr 包含审计事件流,审计日志记录开发者身份,调试文件记录来自开发者机器的 hook 和 MCP 服务器输出。在发布到公开问题前,请审查并隐藏这些内容。352gateway 的 stderr 包含审计事件流,审计日志记录开发者身份,调试文件记录来自开发者机器的 hook 和 MCP 服务器输出。在发布到公开问题前,请审查并隐藏这些内容。

353 353 

354| 症状 | 原因 | 解决方案 |354| 症状 | 原因 | 解决方案 |

355| -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |355| - | - | - |

356| 开发者的 `/login` 显示标准账户选择器而不是 **Cloud gateway** 屏幕 | 该机器的托管设置中未设置 `forceLoginMethod` 或 `forceLoginGatewayUrl` | 将[托管设置文件](/docs/zh-CN/claude-apps-gateway#set-the-gateway-url)部署到设备;`/login` 从那里读取 gateway URL |356| 开发者的 `/login` 显示标准账户选择器而不是 **Cloud gateway** 屏幕 | 该机器的托管设置中未设置 `forceLoginMethod` 或 `forceLoginGatewayUrl` | 将[托管设置文件](/docs/zh-CN/claude-apps-gateway#set-the-gateway-url)部署到设备;`/login` 从那里读取 gateway URL |

357| 开发者的请求失败,显示 `Not signed in to the Cloud gateway — run /login.` | 机器的托管设置设置了 `forceLoginMethod: "gateway"` 或 `forceLoginGatewayUrl`,且会话没有 gateway 登录。残留的 claude.ai 登录不满足要求。 | 让开发者运行 `/login` 并完成 gateway 登录。另请参阅[管理员策略需要 Cloud gateway 登录](/docs/zh-CN/errors#administrator-policy-requires-a-cloud-gateway-sign-in)。 |357| 开发者的请求失败,显示 `Not signed in to the Cloud gateway — run /login.` | 机器的托管设置设置了 `forceLoginMethod: "gateway"` 或 `forceLoginGatewayUrl`,且会话没有 gateway 登录。残留的 claude.ai 登录不满足要求。 | 让开发者运行 `/login` 并完成 gateway 登录。另请参阅[管理员策略需要 Cloud gateway 登录](/docs/zh-CN/errors#administrator-policy-requires-a-cloud-gateway-sign-in)。 |

358| Claude Desktop 报告其引导配置无法获取 | `/user/bootstrap` 返回 404:与用户匹配的策略不包含 `desktop` 密钥,或没有策略匹配。gateway 的审计日志将每次拒绝记录为 `desktop_bootstrap.denied` 并说明原因。 | 将 `desktop` 块添加到与用户匹配的策略,或添加到 `match: {}` 基础层;空的 `desktop: {}` 就足够了。请参阅 [Claude Desktop 覆盖](/docs/zh-CN/claude-apps-gateway-config#claude-desktop-overlay)。 |358| Claude Desktop 报告其引导配置无法获取 | `/user/bootstrap` 返回 404:与用户匹配的策略不包含 `desktop` 密钥,或没有策略匹配。gateway 的审计日志将每次拒绝记录为 `desktop_bootstrap.denied` 并说明原因。 | 将 `desktop` 块添加到与用户匹配的策略,或添加到 `match: {}` 基础层;空的 `desktop: {}` 就足够了。请参阅 [Claude Desktop 覆盖](/docs/zh-CN/claude-apps-gateway-config#claude-desktop-overlay)。 |

Details

498有关 gateway 启动和登录错误,请参阅平台无关的[故障排除表](/docs/zh-CN/claude-apps-gateway-deploy#troubleshooting)。下面的条目特定于 AWS。498有关 gateway 启动和登录错误,请参阅平台无关的[故障排除表](/docs/zh-CN/claude-apps-gateway-deploy#troubleshooting)。下面的条目特定于 AWS。

499 499 

500| 症状 | 原因 | 修复 |500| 症状 | 原因 | 修复 |

501| ----------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |501| - | - | - |

502| CLI `/login`:`Gateway hosts must be on your organization's private network; <host> resolves to the public (or unrecognized) address <ip>` | gateway 名称解析为至少一个公共地址。双栈内部 ALB 发布公共范围 AAAA 记录,[私有网络检查](/docs/zh-CN/claude-apps-gateway#prerequisites)要求每个解析的地址都是私有的 | 使用 `--ip-address-type ipv4` 创建 ALB,或提供没有公共 AAAA 记录的单独内部 DNS 名称 |502| CLI `/login`:`Gateway hosts must be on your organization's private network; <host> resolves to the public (or unrecognized) address <ip>` | gateway 名称解析为至少一个公共地址。双栈内部 ALB 发布公共范围 AAAA 记录,[私有网络检查](/docs/zh-CN/claude-apps-gateway#prerequisites)要求每个解析的地址都是私有的 | 使用 `--ip-address-type ipv4` 创建 ALB,或提供没有公共 AAAA 记录的单独内部 DNS 名称 |

503| 每个 Bedrock 请求返回 502;日志显示 `Could not load credentials from any providers` | 任务在没有任务角色的 ECS EC2 启动类型上运行,或 pod 在没有 IRSA 的 EKS 节点上运行,因此凭证来自实例元数据,IMDSv2 的默认跳跃限制 1 在容器内停止。本页上的两个轨道都不受影响:Fargate 任务角色和 IRSA 不使用实例元数据 | 更喜欢任务角色和 IRSA。在实例凭证不可避免的地方,使用 `aws ec2 modify-instance-metadata-options --instance-id <id> --http-put-response-hop-limit 2` 提高跳跃限制;[平台无关表](/docs/zh-CN/claude-apps-gateway-deploy#troubleshooting)涵盖权衡 |503| 每个 Bedrock 请求返回 502;日志显示 `Could not load credentials from any providers` | 任务在没有任务角色的 ECS EC2 启动类型上运行,或 pod 在没有 IRSA 的 EKS 节点上运行,因此凭证来自实例元数据,IMDSv2 的默认跳跃限制 1 在容器内停止。本页上的两个轨道都不受影响:Fargate 任务角色和 IRSA 不使用实例元数据 | 更喜欢任务角色和 IRSA。在实例凭证不可避免的地方,使用 `aws ec2 modify-instance-metadata-options --instance-id <id> --http-put-response-hop-limit 2` 提高跳跃限制;[平台无关表](/docs/zh-CN/claude-apps-gateway-deploy#troubleshooting)涵盖权衡 |

504| Bedrock 请求返回 `403 AccessDeniedException` | 账户未提交 Anthropic 的一次性用例表单,启动自动 AWS Marketplace 订阅的账户首次调用尚未完成,或任务角色的策略缺少推理配置文件或基础模型 ARN | 从 Bedrock 控制台的模型目录提交用例表单;如果刚刚提交或这是账户的首次调用,请在几分钟后重试。在两个 ARN 系列上授予 `bedrock:InvokeModel` 和 `bedrock:InvokeModelWithResponseStream`。 |504| Bedrock 请求返回 `403 AccessDeniedException` | 账户未提交 Anthropic 的一次性用例表单,启动自动 AWS Marketplace 订阅的账户首次调用尚未完成,或任务角色的策略缺少推理配置文件或基础模型 ARN | 从 Bedrock 控制台的模型目录提交用例表单;如果刚刚提交或这是账户的首次调用,请在几分钟后重试。在两个 ARN 系列上授予 `bedrock:InvokeModel` 和 `bedrock:InvokeModelWithResponseStream`。 |

Details

151 设置 `trusted_proxies` 以匹配您的前端。类 `gce` 的外部 GKE Ingress 未列出:它配置一个公共转发规则地址,`/login` [私有网络检查](/docs/zh-CN/claude-apps-gateway#prerequisites)拒绝该地址。151 设置 `trusted_proxies` 以匹配您的前端。类 `gce` 的外部 GKE Ingress 未列出:它配置一个公共转发规则地址,`/login` [私有网络检查](/docs/zh-CN/claude-apps-gateway#prerequisites)拒绝该地址。

152 152 

153 | 前端 | `trusted_proxies` |153 | 前端 | `trusted_proxies` |

154 | ------------------------------- | -------------------------------- |154 | - | - |

155 | 直接访问的 Cloud Run,无负载均衡器 | `[169.254.0.0/16]` |155 | 直接访问的 Cloud Run,无负载均衡器 | `[169.254.0.0/16]` |

156 | Cloud Run 前面的内部应用负载均衡器 | `169.254.0.0/16` 加上您的仅代理子网的 CIDR |156 | Cloud Run 前面的内部应用负载均衡器 | `169.254.0.0/16` 加上您的仅代理子网的 CIDR |

157 | GKE 内部 Ingress,类 `gce-internal` | 您的仅代理子网的 CIDR |157 | GKE 内部 Ingress,类 `gce-internal` | 您的仅代理子网的 CIDR |


196 创建四个密钥并向 `claude-gateway` 服务账户授予 `roles/secretmanager.secretAccessor`:196 创建四个密钥并向 `claude-gateway` 服务账户授予 `roles/secretmanager.secretAccessor`:

197 197 

198 | 密钥 | 源 |198 | 密钥 | 源 |

199 | ---------------------------- | -------------------------------------- |199 | - | - |

200 | `gateway-jwt-secret` | `openssl rand -base64 32` |200 | `gateway-jwt-secret` | `openssl rand -base64 32` |

201 | `gateway-oidc-client-secret` | Google Cloud 控制台 → OAuth 客户端 |201 | `gateway-oidc-client-secret` | Google Cloud 控制台 → OAuth 客户端 |

202 | `gateway-postgres-url` | Cloud SQL 步骤中的 `$GATEWAY_POSTGRES_URL` |202 | `gateway-postgres-url` | Cloud SQL 步骤中的 `$GATEWAY_POSTGRES_URL` |


314有关网关启动和登录错误,请参阅平台无关的[故障排除表](/docs/zh-CN/claude-apps-gateway-deploy#troubleshooting)。下面的条目特定于 Google Cloud。314有关网关启动和登录错误,请参阅平台无关的[故障排除表](/docs/zh-CN/claude-apps-gateway-deploy#troubleshooting)。下面的条目特定于 Google Cloud。

315 315 

316| 症状 | 原因 | 修复 |316| 症状 | 原因 | 修复 |

317| --------------------------------------------------------------------------------- | ----------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- |317| - | - | - |

318| Cloud Run 在到达容器前返回 `403 Forbidden` | 调用者 IAM 检查仍然启用 | 使用 `--no-invoker-iam-check` 部署,或使用 `--allow-unauthenticated` 授予 `allUsers` `run.invoker` 角色 |318| Cloud Run 在到达容器前返回 `403 Forbidden` | 调用者 IAM 检查仍然启用 | 使用 `--no-invoker-iam-check` 部署,或使用 `--allow-unauthenticated` 授予 `allUsers` `run.invoker` 角色 |

319| `--no-invoker-iam-check` 被拒绝,显示 `invoker_iam_disabled is not currently available` | 被 `constraints/run.managed.requireInvokerIam` 阻止 | 使用 `--allow-unauthenticated`。如果通过 `constraints/iam.allowedPolicyMemberDomains` 的域受限共享也阻止了它,请使用 GKE 路径,它在网络层公开网关,无需 `allUsers` 绑定。 |319| `--no-invoker-iam-check` 被拒绝,显示 `invoker_iam_disabled is not currently available` | 被 `constraints/run.managed.requireInvokerIam` 阻止 | 使用 `--allow-unauthenticated`。如果通过 `constraints/iam.allowedPolicyMemberDomains` 的域受限共享也阻止了它,请使用 GKE 路径,它在网络层公开网关,无需 `allUsers` 绑定。 |

320| 部署时 `Container manifest type … must support amd64/linux` | 镜像在非 amd64 主机上构建,或 buildx 发出了 OCI 镜像索引 | 使用 `--platform=linux/amd64 --provenance=false` 构建 |320| 部署时 `Container manifest type … must support amd64/linux` | 镜像在非 amd64 主机上构建,或 buildx 发出了 OCI 镜像索引 | 使用 `--platform=linux/amd64 --provenance=false` 构建 |

Details

35```35```

36 36 

37| 字段 | 值 | 描述 |37| 字段 | 值 | 描述 |

38| ------------ | ------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |38| - | - | - |

39| `scope.type` | `user`, `rbac_group`, `organization` | `user` 通过其 OpenID Connect (OIDC) `sub`(你的身份提供商分配的稳定用户 ID)针对一个开发者;将其作为 `scope.user_id` 传递。`rbac_group` 通过名称针对一个 [IdP 组](/docs/zh-CN/claude-apps-gateway-config#managed);将其作为 `scope.rbac_group_id` 传递。`organization` 是组织范围的默认值。网关接受所有三个;Anthropic 的公共 `POST` 目前仅限用户。 |39| `scope.type` | `user`, `rbac_group`, `organization` | `user` 通过其 OpenID Connect (OIDC) `sub`(你的身份提供商分配的稳定用户 ID)针对一个开发者;将其作为 `scope.user_id` 传递。`rbac_group` 通过名称针对一个 [IdP 组](/docs/zh-CN/claude-apps-gateway-config#managed);将其作为 `scope.rbac_group_id` 传递。`organization` 是组织范围的默认值。网关接受所有三个;Anthropic 的公共 `POST` 目前仅限用户。 |

40| `amount` | USD 美分的整数字符串,或 `null` | `null` 是无限制的。`"0"` 是零上限,它阻止每个请求。 |40| `amount` | USD 美分的整数字符串,或 `null` | `null` 是无限制的。`"0"` 是零上限,它阻止每个请求。 |

41| `period` | `daily`, `weekly`, `monthly` | 一个作用域可以为每个时期保持一个上限,每个都独立执行:如果开发者超过其中任何一个,他们就会被阻止。 |41| `period` | `daily`, `weekly`, `monthly` | 一个作用域可以为每个时期保持一个上限,每个都独立执行:如果开发者超过其中任何一个,他们就会被阻止。 |


108下面的端点在 `/v1/organizations/spend_limits` 下提供。108下面的端点在 `/v1/organizations/spend_limits` 下提供。

109 109 

110| 方法和路径 | 描述 |110| 方法和路径 | 描述 |

111| ---------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- |111| - | - |

112| `GET /v1/organizations/spend_limits` | 列出配置的上限,可选地过滤到 `organization`、`rbac_group` 或 `user` 的一个 `scope_type`。查询:`?limit=&after_id=&before_id=&scope_type=`。 |112| `GET /v1/organizations/spend_limits` | 列出配置的上限,可选地过滤到 `organization`、`rbac_group` 或 `user` 的一个 `scope_type`。查询:`?limit=&after_id=&before_id=&scope_type=`。 |

113| `POST /v1/organizations/spend_limits` | 为 `{scope, period}` 创建或替换上限。 |113| `POST /v1/organizations/spend_limits` | 为 `{scope, period}` 创建或替换上限。 |

114| `GET /v1/organizations/spend_limits/{id}` | 通过其 `spl_` 前缀 ID 获取一个上限。 |114| `GET /v1/organizations/spend_limits/{id}` | 通过其 `spl_` 前缀 ID 获取一个上限。 |


142组源上限根据那些最后看到的组解决,具有与执行使用的相同 `group_limit_mode` 平局打破,因此查看器显示实际应用的上限。142组源上限根据那些最后看到的组解决,具有与执行使用的相同 `group_limit_mode` 平局打破,因此查看器显示实际应用的上限。

143 143 

144| 查询参数 | 描述 |144| 查询参数 | 描述 |

145| ---------------- | ----------------------------------------------- |145| - | - |

146| `user_ids[]` | 可重复。按 OIDC `sub` 过滤到特定主体。 |146| `user_ids[]` | 可重复。按 OIDC `sub` 过滤到特定主体。 |

147| `period[]` | 可重复。过滤到 `daily`、`weekly` 或 `monthly` 行。 |147| `period[]` | 可重复。过滤到 `daily`、`weekly` 或 `monthly` 行。 |

148| `sort` | `spend_desc` 首先列出最高支出者。需要恰好一个 `period[]`。 |148| `sort` | `spend_desc` 首先列出最高支出者。需要恰好一个 `period[]`。 |


172网关保持四个支出相关的表;每小时扫描执行保留窗口:172网关保持四个支出相关的表;每小时扫描执行保留窗口:

173 173 

174| 表 | 内容 | 保留 |174| 表 | 内容 | 保留 |

175| ------------------ | ---------------------------------- | ---------------------------------------------------------------------------------------- |175| - | - | - |

176| `spend` | 按主体期间至今的计数器(美分) | [`admin.spend_retention_months`](/docs/zh-CN/claude-apps-gateway-config#admin),默认 13 |176| `spend` | 按主体期间至今的计数器(美分) | [`admin.spend_retention_months`](/docs/zh-CN/claude-apps-gateway-config#admin),默认 13 |

177| `spend_limits` | 配置的上限 | 直到通过 API 删除 |177| `spend_limits` | 配置的上限 | 直到通过 API 删除 |

178| `admin_audit` | 变更跟踪 | [`admin.audit_retention_days`](/docs/zh-CN/claude-apps-gateway-config#admin),默认 365 |178| `admin_audit` | 变更跟踪 | [`admin.audit_retention_days`](/docs/zh-CN/claude-apps-gateway-config#admin),默认 365 |

Details

53云会话需要访问你的 GitHub 存储库来克隆代码和推送分支。你可以通过两种方式授予访问权限:53云会话需要访问你的 GitHub 存储库来克隆代码和推送分支。你可以通过两种方式授予访问权限:

54 54 

55| 方法 | 如何连接 | 会话可以访问的存储库 | 最适合 |55| 方法 | 如何连接 | 会话可以访问的存储库 | 最适合 |

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

57| **GitHub App** | 在[网络快速入门](/docs/zh-CN/web-quickstart)期间授权 Claude GitHub App | 任何公开存储库,以及安装了 Claude GitHub App 的私有存储库 | 浏览器入门;想要[自动修复](#auto-fix-pull-requests)的团队 |57| **GitHub App** | 在[网络快速入门](/docs/zh-CN/web-quickstart)期间授权 Claude GitHub App | 任何公开存储库,以及安装了 Claude GitHub App 的私有存储库 | 浏览器入门;想要[自动修复](#auto-fix-pull-requests)的团队 |

58| **`/web-setup`** | 在终端中运行 `/web-setup` 以将本地 `gh` CLI 令牌发送到你的 Claude 账户 | 你的 `gh` 令牌可以访问的任何存储库,无论是否安装了 Claude GitHub App | 已经使用 `gh` 的个人开发者 |58| **`/web-setup`** | 在终端中运行 `/web-setup` 以将本地 `gh` CLI 令牌发送到你的 Claude 账户 | 你的 `gh` 令牌可以访问的任何存储库,无论是否安装了 Claude GitHub App | 已经使用 `gh` 的个人开发者 |

59 59 


187CLI 在错误前加上 `Error: ` 前缀。失败的传递被包装为 `failed to send message to cloud session <id>: <reason>`。187CLI 在错误前加上 `Error: ` 前缀。失败的传递被包装为 `failed to send message to cloud session <id>: <reason>`。

188 188 

189| 消息 | 含义 |189| 消息 | 含义 |

190| --------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |190| - | - |

191| `Cloud sessions aren't available with <provider>. They run on Anthropic's infrastructure and require an Anthropic account.` | Claude Code 为第三方提供商配置。该消息使用您的配置使用的标签命名提供商,例如 `Amazon Bedrock` 或 `Google Vertex AI`。删除该提供商的配置,例如通过取消设置 `CLAUDE_CODE_USE_BEDROCK`,并使用 Anthropic 账户登录(`claude auth login`)。 |191| `Cloud sessions aren't available with <provider>. They run on Anthropic's infrastructure and require an Anthropic account.` | Claude Code 为第三方提供商配置。该消息使用您的配置使用的标签命名提供商,例如 `Amazon Bedrock` 或 `Google Vertex AI`。删除该提供商的配置,例如通过取消设置 `CLAUDE_CODE_USE_BEDROCK`,并使用 Anthropic 账户登录(`claude auth login`)。 |

192| `Cloud sessions are disabled by your organization's policy. Contact your organization admin to enable them.` | `allow_remote_sessions` 组织策略已关闭。 |192| `Cloud sessions are disabled by your organization's policy. Contact your organization admin to enable them.` | `allow_remote_sessions` 组织策略已关闭。 |

193| `Couldn't verify your organization's policy for cloud sessions. Check your network connection and try again.` | Claude Code 无法获取您的组织策略,因此它拒绝发送而不是假设云会话被允许。检查您的网络连接并重试。 |193| `Couldn't verify your organization's policy for cloud sessions. Check your network connection and try again.` | Claude Code 无法获取您的组织策略,因此它拒绝发送而不是假设云会话被允许。检查您的网络连接并重试。 |


218Teleport 在恢复会话前检查这些要求。如果任何要求未满足,您会看到错误或被提示解决问题。218Teleport 在恢复会话前检查这些要求。如果任何要求未满足,您会看到错误或被提示解决问题。

219 219 

220| 要求 | 详情 |220| 要求 | 详情 |

221| ---------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |221| - | - |

222| 干净的 git 状态 | 您的工作目录必须没有未提交的更改。如果需要,Teleport 会提示您隐藏更改。 |222| 干净的 git 状态 | 您的工作目录必须没有未提交的更改。如果需要,Teleport 会提示您隐藏更改。 |

223| 正确的存储库 | 您必须从同一存储库的检出运行 `--teleport`,而不是 fork。如果您从不同存储库的检出运行它,Claude Code 会显示一个错误,命名会话的存储库和您的检出的存储库。在 v2.1.219 之前,错误没有命名您的检出的存储库。如果 Claude Code 无法将您的远程解析为主机名,例如 SSH 主机别名如 `git@work:owner/repo.git`,它会要求您确认,并在远程的所有者和存储库名称与会话的存储库匹配时接受检出。 |223| 正确的存储库 | 您必须从同一存储库的检出运行 `--teleport`,而不是 fork。如果您从不同存储库的检出运行它,Claude Code 会显示一个错误,命名会话的存储库和您的检出的存储库。在 v2.1.219 之前,错误没有命名您的检出的存储库。如果 Claude Code 无法将您的远程解析为主机名,例如 SSH 主机别名如 `git@work:owner/repo.git`,它会要求您确认,并在远程的所有者和存储库名称与会话的存储库匹配时接受检出。 |

224| 分支可用 | 来自云会话的分支必须已推送到远程。Teleport 会自动获取并检出它。 |224| 分支可用 | 来自云会话的分支必须已推送到远程。Teleport 会自动获取并检出它。 |


257对于上下文管理特别是:257对于上下文管理特别是:

258 258 

259| 命令 | 在云会话中工作 | 注释 |259| 命令 | 在云会话中工作 | 注释 |

260| :--------- | :------ | :----------------------------------------------------- |260| :- | :- | :- |

261| `/compact` | 是 | 总结对话以释放上下文。接受可选的焦点指令,如 `/compact keep the test output` |261| `/compact` | 是 | 总结对话以释放上下文。接受可选的焦点指令,如 `/compact keep the test output` |

262| `/context` | 是 | 显示当前在上下文窗口中的内容 |262| `/context` | 是 | 显示当前在上下文窗口中的内容 |

263| `/clear` | 否 | 从侧边栏启动新会话 |263| `/clear` | 否 | 从侧边栏启动新会话 |

Details

1451浏览器涵盖您创作和编辑的文件。一些相关文件位于其他位置:1451浏览器涵盖您创作和编辑的文件。一些相关文件位于其他位置:

1452 1452 

1453| 文件 | 位置 | 用途 |1453| 文件 | 位置 | 用途 |

1454| ----------------------- | ---------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |1454| - | - | - |

1455| `managed-settings.json` | 系统级别,因操作系统而异 | 企业强制执行的设置,您无法覆盖,除了[狭窄的例外](/docs/zh-CN/settings#security-keys-where-the-stricter-value-applies)。请参阅[保存文件的位置](/docs/zh-CN/managed-settings#deploy-a-managed-settings-file)和[Claude Code 使用的托管源](/docs/zh-CN/managed-settings#precedence-within-the-managed-tier)。 |1455| `managed-settings.json` | 系统级别,因操作系统而异 | 企业强制执行的设置,您无法覆盖,除了[狭窄的例外](/docs/zh-CN/settings#security-keys-where-the-stricter-value-applies)。请参阅[保存文件的位置](/docs/zh-CN/managed-settings#deploy-a-managed-settings-file)和[Claude Code 使用的托管源](/docs/zh-CN/managed-settings#precedence-within-the-managed-tier)。 |

1456| `CLAUDE.local.md` | 项目根目录 | 您对此项目的私人偏好,与 CLAUDE.md 一起加载。手动创建它并将其添加到 `.gitignore`。 |1456| `CLAUDE.local.md` | 项目根目录 | 您对此项目的私人偏好,与 CLAUDE.md 一起加载。手动创建它并将其添加到 `.gitignore`。 |

1457| `AGENTS.md` | 项目根目录、`.claude/` 或任何目录 | 您为 AI 编码代理编写的项目说明。Claude Code 可以[自行加载它](/docs/zh-CN/memory#agents-md)或与 `CLAUDE.md` 一起加载。 |1457| `AGENTS.md` | 项目根目录、`.claude/` 或任何目录 | 您为 AI 编码代理编写的项目说明。Claude Code 可以[自行加载它](/docs/zh-CN/memory#agents-md)或与 `CLAUDE.md` 一起加载。 |


1466不同类型的自定义位于不同的文件中。使用此表找到更改应该放在哪里。1466不同类型的自定义位于不同的文件中。使用此表找到更改应该放在哪里。

1467 1467 

1468| 您想要 | 编辑 | 范围 | 参考 |1468| 您想要 | 编辑 | 范围 | 参考 |

1469| :-------------------- | :-------------------------------------- | :---- | :------------------------------------------------------ |1469| :- | :- | :- | :- |

1470| 为 Claude 提供项目上下文和约定 | `CLAUDE.md` | 项目或全局 | [Memory](/docs/zh-CN/memory) |1470| 为 Claude 提供项目上下文和约定 | `CLAUDE.md` | 项目或全局 | [Memory](/docs/zh-CN/memory) |

1471| 允许或阻止特定工具调用 | `settings.json` `permissions` 或 `hooks` | 项目或全局 | [Permissions](/docs/zh-CN/permissions)、[Hooks](/docs/zh-CN/hooks) |1471| 允许或阻止特定工具调用 | `settings.json` `permissions` 或 `hooks` | 项目或全局 | [Permissions](/docs/zh-CN/permissions)、[Hooks](/docs/zh-CN/hooks) |

1472| 在工具调用前后运行脚本 | `settings.json` `hooks` | 项目或全局 | [Hooks](/docs/zh-CN/hooks) |1472| 在工具调用前后运行脚本 | `settings.json` `hooks` | 项目或全局 | [Hooks](/docs/zh-CN/hooks) |


1497单击文件名以在上面的浏览器中打开该节点。1497单击文件名以在上面的浏览器中打开该节点。

1498 1498 

1499| 文件 | 范围 | 提交 | 作用 | 参考 |1499| 文件 | 范围 | 提交 | 作用 | 参考 |

1500| --------------------------------------------------- | ----- | -- | ------------------------------------------------------------ | ------------------------------------------------------------------ |1500| - | - | - | - | - |

1501| [`CLAUDE.md`](#ce-claude-md) | 项目和全局 | ✓ | 每个会话加载的指令 | [内存](/docs/zh-CN/memory) |1501| [`CLAUDE.md`](#ce-claude-md) | 项目和全局 | ✓ | 每个会话加载的指令 | [内存](/docs/zh-CN/memory) |

1502| [`rules/*.md`](#ce-rules) | 项目和全局 | ✓ | 主题范围的指令,可选择路径门控 | [Rules](/docs/zh-CN/memory#organize-rules-with-claude/rules/) |1502| [`rules/*.md`](#ce-rules) | 项目和全局 | ✓ | 主题范围的指令,可选择路径门控 | [Rules](/docs/zh-CN/memory#organize-rules-with-claude/rules/) |

1503| [`settings.json`](#ce-settings-json) | 项目和全局 | ✓ | 权限、hooks、环境变量、模型默认值 | [设置](/docs/zh-CN/settings) |1503| [`settings.json`](#ce-settings-json) | 项目和全局 | ✓ | 权限、hooks、环境变量、模型默认值 | [设置](/docs/zh-CN/settings) |


1522Skills、命令文件、subagents、输出样式和规则从文件顶部的 YAML [frontmatter](/docs/zh-CN/glossary#frontmatter) 读取其配置,每个都接受自己的一组字段。此表列出了每个文件的字段名称,并链接到描述它们的参考资料。1522Skills、命令文件、subagents、输出样式和规则从文件顶部的 YAML [frontmatter](/docs/zh-CN/glossary#frontmatter) 读取其配置,每个都接受自己的一组字段。此表列出了每个文件的字段名称,并链接到描述它们的参考资料。

1523 1523 

1524| 文件 | Frontmatter 字段 | 参考资料 |1524| 文件 | Frontmatter 字段 | 参考资料 |

1525| ------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------- |1525| - | - | - |

1526| `skills/<name>/SKILL.md` | `name`, `description`, `when_to_use`, `argument-hint`, `arguments`, `disable-model-invocation`, `user-invocable`, `allowed-tools`, `disallowed-tools`, `model`, `effort`, `context`, `agent`, `background`, `hooks`, `paths`, `shell`, `metadata`, `license`, `compatibility` | [Skill frontmatter](/docs/zh-CN/skills#frontmatter-reference) |1526| `skills/<name>/SKILL.md` | `name`, `description`, `when_to_use`, `argument-hint`, `arguments`, `disable-model-invocation`, `user-invocable`, `allowed-tools`, `disallowed-tools`, `model`, `effort`, `context`, `agent`, `background`, `hooks`, `paths`, `shell`, `metadata`, `license`, `compatibility` | [Skill frontmatter](/docs/zh-CN/skills#frontmatter-reference) |

1527| `commands/*.md` | 除 `name` 和 `paths` 外的 skill 字段 | [Skill frontmatter](/docs/zh-CN/skills#frontmatter-reference) |1527| `commands/*.md` | 除 `name` 和 `paths` 外的 skill 字段 | [Skill frontmatter](/docs/zh-CN/skills#frontmatter-reference) |

1528| `agents/*.md` | `name`, `description`, `tools`, `disallowedTools`, `model`, `permissionMode`, `maxTurns`, `skills`, `mcpServers`, `hooks`, `memory`, `background`, `effort`, `isolation`, `color`, `initialPrompt`, `omitClaudeMd`, `experimental` | [Subagent frontmatter](/docs/zh-CN/sub-agents#supported-frontmatter-fields) |1528| `agents/*.md` | `name`, `description`, `tools`, `disallowedTools`, `model`, `permissionMode`, `maxTurns`, `skills`, `mcpServers`, `hooks`, `memory`, `background`, `effort`, `isolation`, `color`, `initialPrompt`, `omitClaudeMd`, `experimental` | [Subagent frontmatter](/docs/zh-CN/sub-agents#supported-frontmatter-fields) |


1550Claude Code 删除下面路径中的文件,一旦它们的年龄超过 [`cleanupPeriodDays`](/docs/zh-CN/settings-reference#cleanupperioddays),只要它能安全地确定保留期。默认值为 30 天,最小值为 1;设置 `0` 会导致验证错误。相同的年龄截止值也适用于 [孤立 worktrees](/docs/zh-CN/worktrees#clean-up-subagent-and-background-session-worktrees) 的自动删除。1550Claude Code 删除下面路径中的文件,一旦它们的年龄超过 [`cleanupPeriodDays`](/docs/zh-CN/settings-reference#cleanupperioddays),只要它能安全地确定保留期。默认值为 30 天,最小值为 1;设置 `0` 会导致验证错误。相同的年龄截止值也适用于 [孤立 worktrees](/docs/zh-CN/worktrees#clean-up-subagent-and-background-session-worktrees) 的自动删除。

1551 1551 

1552| `~/.claude/` 下的路径 | 内容 |1552| `~/.claude/` 下的路径 | 内容 |

1553| ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |1553| - | - |

1554| `projects/<project>/<session>.jsonl` | 完整的对话记录:每条消息、工具调用和工具结果 |1554| `projects/<project>/<session>.jsonl` | 完整的对话记录:每条消息、工具调用和工具结果 |

1555| `projects/<project>/<session>.orphaned-<timestamp>-<suffix>.jsonl`、`projects/<project>/<session>.jsonl.superseded-<timestamp>` | 会话的先前记录,Claude Code 将其搁置而不是覆盖或删除它。它不会出现在会话选择器中 |1555| `projects/<project>/<session>.orphaned-<timestamp>-<suffix>.jsonl`、`projects/<project>/<session>.jsonl.superseded-<timestamp>` | 会话的先前记录,Claude Code 将其搁置而不是覆盖或删除它。它不会出现在会话选择器中 |

1556| `projects/<project>/<session>/subagents/` | [Subagent](/docs/zh-CN/sub-agents) 对话记录,当父会话记录过期时被删除 |1556| `projects/<project>/<session>/subagents/` | [Subagent](/docs/zh-CN/sub-agents) 对话记录,当父会话记录过期时被删除 |


1589保留清理扫描不删除下面的路径。Claude Code 保留它们直到您删除它们,除了两个缓存在您注销时删除。1589保留清理扫描不删除下面的路径。Claude Code 保留它们直到您删除它们,除了两个缓存在您注销时删除。

1590 1590 

1591| `~/.claude/` 下的路径 | 内容 |1591| `~/.claude/` 下的路径 | 内容 |

1592| ---------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |1592| - | - |

1593| `history.jsonl` | 您输入的每个提示,带有时间戳和项目路径。用于向上箭头回忆、`Ctrl+R` 历史搜索和 `!` shell 命令补全。 |1593| `history.jsonl` | 您输入的每个提示,带有时间戳和项目路径。用于向上箭头回忆、`Ctrl+R` 历史搜索和 `!` shell 命令补全。 |

1594| `stats-cache.json` | 由 `/usage` 显示的聚合令牌和成本计数 |1594| `stats-cache.json` | 由 `/usage` 显示的聚合令牌和成本计数 |

1595| `remote-settings.json` | [server-managed settings](/docs/zh-CN/server-managed-settings) 的缓存副本,用于您的组织,或当您的组织未配置任何设置时为 `{}`。仅在会话 [获取它们](/docs/zh-CN/server-managed-settings#platform-availability) 时存在。Claude Code 在启动时和会话期间每小时检查更新。Claude Code 在您注销时删除它。 |1595| `remote-settings.json` | [server-managed settings](/docs/zh-CN/server-managed-settings) 的缓存副本,用于您的组织,或当您的组织未配置任何设置时为 `{}`。仅在会话 [获取它们](/docs/zh-CN/server-managed-settings#platform-availability) 时存在。Claude Code 在启动时和会话期间每小时检查更新。Claude Code 在您注销时删除它。 |


1678您也可以手动删除上面的任何应用数据路径,除了 [state files to keep](#state-files-to-keep)。新会话不受影响。下表显示您对过去会话失去的内容。1678您也可以手动删除上面的任何应用数据路径,除了 [state files to keep](#state-files-to-keep)。新会话不受影响。下表显示您对过去会话失去的内容。

1679 1679 

1680| 删除 | 您失去 |1680| 删除 | 您失去 |

1681| ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |1681| - | - |

1682| `~/.claude/projects/` | 恢复、继续和倒回过去的会话,以及每个项目的自动内存 |1682| `~/.claude/projects/` | 恢复、继续和倒回过去的会话,以及每个项目的自动内存 |

1683| `~/.claude/history.jsonl` | 向上箭头提示回忆、`Ctrl+R` 历史搜索和 `!` shell 命令补全 |1683| `~/.claude/history.jsonl` | 向上箭头提示回忆、`Ctrl+R` 历史搜索和 `!` shell 命令补全 |

1684| `~/.claude/paste-cache/` | 回忆的提示中的粘贴文本;请参阅 [paste large content](/docs/zh-CN/terminal-config#paste-large-content) |1684| `~/.claude/paste-cache/` | 回忆的提示中的粘贴文本;请参阅 [paste large content](/docs/zh-CN/terminal-config#paste-large-content) |

Details

220窗格的**线程**选项卡按状态对线程进行分组:220窗格的**线程**选项卡按状态对线程进行分组:

221 221 

222| 组 | 其中的内容 |222| 组 | 其中的内容 |

223| :------- | :------------------------------------------------------------------------------ |223| :- | :- |

224| **准备审查** | 拉取请求打开并等待审查的线程 |224| **准备审查** | 拉取请求打开并等待审查的线程 |

225| **等待你** | 需要你的回复或批准的线程,或已失败的线程 |225| **等待你** | 需要你的回复或批准的线程,或已失败的线程 |

226| **工作中** | 仍在运行的线程 |226| **工作中** | 仍在运行的线程 |


284项目记忆、项目说明和项目的代码库、文件和环境跨线程携带上下文。您设置每个一次。284项目记忆、项目说明和项目的代码库、文件和环境跨线程携带上下文。您设置每个一次。

285 285 

286| 上下文 | 它携带什么 | 您如何设置它 |286| 上下文 | 它携带什么 | 您如何设置它 |

287| :-------- | :--------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------- |287| :- | :- | :- |

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

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

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


338每个云线程克隆项目中的每个代码库并从所有代码库加载 `CLAUDE.md` 和 skills。权限规则、hooks 和 `env` 仅来自线程启动的目录中的 `.claude/settings.json`:在有一个代码库时在代码库内,在有多个时在克隆上方,其中没有代码库的文件被读取。338每个云线程克隆项目中的每个代码库并从所有代码库加载 `CLAUDE.md` 和 skills。权限规则、hooks 和 `env` 仅来自线程启动的目录中的 `.claude/settings.json`:在有一个代码库时在代码库内,在有多个时在克隆上方,其中没有代码库的文件被读取。

339 339 

340| 在每个代码库中 | 一个代码库 | 多个代码库 |340| 在每个代码库中 | 一个代码库 | 多个代码库 |

341| :----------------------------------------------- | :-------------------------------------------------------------------------------------- | :------------------------------------------------ |341| :- | :- | :- |

342| `CLAUDE.md` | 在线程启动时加载 | 在线程启动时从每个代码库加载 |342| `CLAUDE.md` | 在线程启动时加载 | 在线程启动时从每个代码库加载 |

343| `.claude/` 下的 Skills、agents 和 commands | 加载 | 从每个代码库加载 |343| `.claude/` 下的 Skills、agents 和 commands | 加载 | 从每个代码库加载 |

344| 在 `.claude/settings.json` 中启用的 Plugins | 不加载。改为在 **Project settings > Plugins** 中添加 plugin | 不加载。改为在 **Project settings > Plugins** 中添加 plugin |344| 在 `.claude/settings.json` 中启用的 Plugins | 不加载。改为在 **Project settings > Plugins** 中添加 plugin | 不加载。改为在 **Project settings > Plugins** 中添加 plugin |


376设置在您更改时保存;您正在编辑的文本字段,例如目标或说明,显示 **Save changes** 和 **Discard**,直到您离开它。对说明、代码库、plugins 和 **Project settings** 中的环境的更改到达新线程,而不是已经运行的线程。376设置在您更改时保存;您正在编辑的文本字段,例如目标或说明,显示 **Save changes** 和 **Discard**,直到您离开它。对说明、代码库、plugins 和 **Project settings** 中的环境的更改到达新线程,而不是已经运行的线程。

377 377 

378| 设置 | 部分 | 它控制什么 |378| 设置 | 部分 | 它控制什么 |

379| :------------------------- | :---------- | :--------------------------------------------------------------- |379| :- | :- | :- |

380| 名称、图标和目标 | General | 侧边栏中项目的名称和图标,以及其一行目标 |380| 名称、图标和目标 | General | 侧边栏中项目的名称和图标,以及其一行目标 |

381| Coordinator model 和 effort | General | 项目对话中 Claude 的模型和[努力级别](/docs/zh-CN/model-config#adjust-effort-level) |381| Coordinator model 和 effort | General | 项目对话中 Claude 的模型和[努力级别](/docs/zh-CN/model-config#adjust-effort-level) |

382| Thread model 和 effort | General | 线程的模型和努力级别 |382| Thread model 和 effort | General | 线程的模型和努力级别 |


520这些消息命名它们自己的原因。表格为每个提供下一步。520这些消息命名它们自己的原因。表格为每个提供下一步。

521 521 

522| 消息 | 要做什么 |522| 消息 | 要做什么 |

523| :------------------------------------------------------------------------------------------ | :-------------------------------------------------------------------------------------------------------- |523| :- | :- |

524| "Unable to connect to repository",带有"Claude couldn't reach GitHub to fetch your repository" | 等一会儿,然后发送另一条消息重试 |524| "Unable to connect to repository",带有"Claude couldn't reach GitHub to fetch your repository" | 等一会儿,然后发送另一条消息重试 |

525| "Unable to connect to repository",带有"Claude couldn't access your repository or environment" | 您的 GitHub 账户需要对代码库的推送访问,环境必须仍然存在。在 **Project settings > Environment** 中检查两者,然后重试 |525| "Unable to connect to repository",带有"Claude couldn't access your repository or environment" | 您的 GitHub 账户需要对代码库的推送访问,环境必须仍然存在。在 **Project settings > Environment** 中检查两者,然后重试 |

526| "Couldn't show the setup proposal" | 您打开的应用比 Claude 发送的 **Setup recommendations** 更旧。刷新页面或重启桌面应用,或要求 Claude 再次提议设置 |526| "Couldn't show the setup proposal" | 您打开的应用比 Claude 发送的 **Setup recommendations** 更旧。刷新页面或重启桌面应用,或要求 Claude 再次提议设置 |

Details

140Claude Security 插件是深度扫描层,在纵深防御堆栈中,与[security guidance 插件](/docs/zh-CN/security-guidance)、[`/security-review`](/docs/zh-CN/commands#all-commands)、[Code Review](/docs/zh-CN/code-review)、托管的 [Claude Security](https://claude.com/product/claude-security) 产品和您现有的扫描器一起:140Claude Security 插件是深度扫描层,在纵深防御堆栈中,与[security guidance 插件](/docs/zh-CN/security-guidance)、[`/security-review`](/docs/zh-CN/commands#all-commands)、[Code Review](/docs/zh-CN/code-review)、托管的 [Claude Security](https://claude.com/product/claude-security) 产品和您现有的扫描器一起:

141 141 

142| 阶段 | 工具 | 覆盖内容 |142| 阶段 | 工具 | 覆盖内容 |

143| :------ | :-------------------------------------------------------------------------- | :-------------------------- |143| :- | :- | :- |

144| 在会话中 | [Security guidance 插件](/docs/zh-CN/security-guidance) | Claude 编写的代码中的常见漏洞,在同一会话中修复 |144| 在会话中 | [Security guidance 插件](/docs/zh-CN/security-guidance) | Claude 编写的代码中的常见漏洞,在同一会话中修复 |

145| 按需,单次扫描 | [`/security-review`](/docs/zh-CN/commands#all-commands) | 当前分支上的一次性安全扫描 |145| 按需,单次扫描 | [`/security-review`](/docs/zh-CN/commands#all-commands) | 当前分支上的一次性安全扫描 |

146| 按需,深度扫描 | Claude Security 插件 | 存储库或差异的多代理扫描,具有独立审查的发现和补丁 |146| 按需,深度扫描 | Claude Security 插件 | 存储库或差异的多代理扫描,具有独立审查的发现和补丁 |

Details

13您可以使用这些命令启动会话、管道内容、恢复对话和管理更新:13您可以使用这些命令启动会话、管道内容、恢复对话和管理更新:

14 14 

15| 命令 | 描述 | 示例 |15| 命令 | 描述 | 示例 |

16| :------------------------------ | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------- |16| :- | :- | :- |

17| `claude` | 启动交互式会话 | `claude` |17| `claude` | 启动交互式会话 | `claude` |

18| `claude "query"` | 使用初始提示启动交互式会话 | `claude "explain this project"` |18| `claude "query"` | 使用初始提示启动交互式会话 | `claude "explain this project"` |

19| `claude -p "query"` | 通过 SDK 查询,然后退出 | `claude -p "explain this function"` |19| `claude -p "query"` | 通过 SDK 查询,然后退出 | `claude -p "explain this function"` |


60使用这些命令行标志自定义 Claude Code 的行为。`claude --help` 不会列出每个标志,因此标志在 `--help` 中不出现并不意味着它不可用。60使用这些命令行标志自定义 Claude Code 的行为。`claude --help` 不会列出每个标志,因此标志在 `--help` 中不出现并不意味着它不可用。

61 61 

62| 标志 | 描述 | 示例 |62| 标志 | 描述 | 示例 |

63| :---------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------- |63| :- | :- | :- |

64| `--add-dir` | 添加额外的工作目录供 Claude 读取和编辑文件。授予文件访问权限;Claude Code [不会发现](/docs/zh-CN/permissions#additional-directories-grant-file-access-not-configuration)这些目录中的大多数 `.claude/` 配置。验证每个路径是否作为目录存在。您不能添加大多数[网络路径](/docs/zh-CN/errors#working-directory-is-a-network-path),例如 `\\server\share`。要在会话之间保持这些目录,请在设置中设置 [`permissions.additionalDirectories`](/docs/zh-CN/settings-reference#permissions-additionaldirectories) | `claude --add-dir ../apps ../lib` |64| `--add-dir` | 添加额外的工作目录供 Claude 读取和编辑文件。授予文件访问权限;Claude Code [不会发现](/docs/zh-CN/permissions#additional-directories-grant-file-access-not-configuration)这些目录中的大多数 `.claude/` 配置。验证每个路径是否作为目录存在。您不能添加大多数[网络路径](/docs/zh-CN/errors#working-directory-is-a-network-path),例如 `\\server\share`。要在会话之间保持这些目录,请在设置中设置 [`permissions.additionalDirectories`](/docs/zh-CN/settings-reference#permissions-additionaldirectories) | `claude --add-dir ../apps ../lib` |

65| `--advisor <model>` | 使用模型别名 `fable`、`opus` 或 `sonnet`,或完整模型 ID 为此会话启用服务器端[顾问工具](/docs/zh-CN/advisor)。优先于会话的 `advisorModel` 设置。`fable` 需要[Fable 访问权限](/docs/zh-CN/advisor#choose-an-advisor-model) | `claude --advisor opus` |65| `--advisor <model>` | 使用模型别名 `fable`、`opus` 或 `sonnet`,或完整模型 ID 为此会话启用服务器端[顾问工具](/docs/zh-CN/advisor)。优先于会话的 `advisorModel` 设置。`fable` 需要[Fable 访问权限](/docs/zh-CN/advisor#choose-an-advisor-model) | `claude --advisor opus` |

66| `--agent` | 为当前会话指定代理(覆盖 `agent` 设置) | `claude --agent my-custom-agent` |66| `--agent` | 为当前会话指定代理(覆盖 `agent` 设置) | `claude --agent my-custom-agent` |


148Claude Code 提供五个标志用于自定义系统提示。四个设置其文本,使用 `--system-prompt-snapshot` 您可以控制对话是否保持它启动时的文本。所有五个都在交互和非交互模式中工作。148Claude Code 提供五个标志用于自定义系统提示。四个设置其文本,使用 `--system-prompt-snapshot` 您可以控制对话是否保持它启动时的文本。所有五个都在交互和非交互模式中工作。

149 149 

150| 标志 | 行为 | 示例 |150| 标志 | 行为 | 示例 |

151| :---------------------------- | :-------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------- |151| :- | :- | :- |

152| `--system-prompt` | 替换整个默认提示 | `claude --system-prompt "You are a Python expert"` |152| `--system-prompt` | 替换整个默认提示 | `claude --system-prompt "You are a Python expert"` |

153| `--system-prompt-file` | 用文件内容替换 | `claude --system-prompt-file ./prompts/review.txt` |153| `--system-prompt-file` | 用文件内容替换 | `claude --system-prompt-file ./prompts/review.txt` |

154| `--append-system-prompt` | 附加到默认提示 | `claude --append-system-prompt "Always use TypeScript"` |154| `--append-system-prompt` | 附加到默认提示 | `claude --append-system-prompt "Always use TypeScript"` |

Details

218**Network access** 字段在[环境对话框](#configure-your-environment)中采用以下四个级别之一:218**Network access** 字段在[环境对话框](#configure-your-environment)中采用以下四个级别之一:

219 219 

220| 级别 | 出站连接 |220| 级别 | 出站连接 |

221| :---------- | :------------------------------------------------------ |221| :- | :- |

222| **None** | 通过会话的网络没有出站网络访问 |222| **None** | 通过会话的网络没有出站网络访问 |

223| **Trusted** | 仅限[允许列表中的域](#default-allowed-domains):包注册表、GitHub、云 SDK |223| **Trusted** | 仅限[允许列表中的域](#default-allowed-domains):包注册表、GitHub、云 SDK |

224| **Full** | 任何域 |224| **Full** | 任何域 |


294云会话从您存储库的全新克隆开始。您提交到存储库的任何内容都可用。您只在自己机器上安装或配置的任何内容在会话中都不可用。您组织的策略通过[服务器管理的设置](/docs/zh-CN/server-managed-settings)单独到达。294云会话从您存储库的全新克隆开始。您提交到存储库的任何内容都可用。您只在自己机器上安装或配置的任何内容在会话中都不可用。您组织的策略通过[服务器管理的设置](/docs/zh-CN/server-managed-settings)单独到达。

295 295 

296| | 在云会话中可用 | 原因 |296| | 在云会话中可用 | 原因 |

297| :-------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------ | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |297| :- | :- | :- |

298| 您的存储库的 `CLAUDE.md` | 是 | 克隆的一部分 |298| 您的存储库的 `CLAUDE.md` | 是 | 克隆的一部分 |

299| 您的存储库的 `.claude/settings.json` hooks 和权限规则 | 是,在具有一个存储库的会话中 | 克隆的一部分。具有多个存储库的会话(包括[项目](/docs/zh-CN/claude-projects#what-threads-pick-up-from-your-repositories)线程)在克隆上方启动,不读取它们 |299| 您的存储库的 `.claude/settings.json` hooks 和权限规则 | 是,在具有一个存储库的会话中 | 克隆的一部分。具有多个存储库的会话(包括[项目](/docs/zh-CN/claude-projects#what-threads-pick-up-from-your-repositories)线程)在克隆上方启动,不读取它们 |

300| 您的存储库的 `.mcp.json` MCP 服务器 | 是,在具有一个存储库的会话中 | 克隆的一部分,从会话的工作目录中找到 |300| 您的存储库的 `.mcp.json` MCP 服务器 | 是,在具有一个存储库的会话中 | 克隆的一部分,从会话的工作目录中找到 |


321云会话预安装了常见的语言运行时、构建工具和数据库。下表按类别总结了包含的内容。321云会话预安装了常见的语言运行时、构建工具和数据库。下表按类别总结了包含的内容。

322 322 

323| 类别 | 包含 |323| 类别 | 包含 |

324| :------------ | :------------------------------------------------------------ |324| :- | :- |

325| **Python** | Python 3.x,搭配 pip、poetry、uv、black、mypy、pytest、ruff |325| **Python** | Python 3.x,搭配 pip、poetry、uv、black、mypy、pytest、ruff |

326| **Node.js** | 20、21 和 22,搭配 npm、yarn、pnpm、bun¹、eslint、prettier、chromedriver |326| **Node.js** | 20、21 和 22,搭配 npm、yarn、pnpm、bun¹、eslint、prettier、chromedriver |

327| **Ruby** | 3.1、3.2、3.3,搭配 gem、bundler、rbenv |327| **Ruby** | 3.1、3.2、3.3,搭配 gem、bundler、rbenv |


469设置脚本和 SessionStart hooks 在云会话启动时按固定顺序运行。下表比较了您在哪里配置它们、何时运行以及在哪里运行。469设置脚本和 SessionStart hooks 在云会话启动时按固定顺序运行。下表比较了您在哪里配置它们、何时运行以及在哪里运行。

470 470 

471| | 设置脚本 | SessionStart hooks |471| | 设置脚本 | SessionStart hooks |

472| ------------ | ------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------- |472| - | - | - |

473| **您在哪里配置它们** | [claude.ai/code](https://claude.ai/code) 的环境对话框,以及[共享环境](#organization-shared-environments)的 **Cloud environments** 管理页面 | [设置文件](/docs/zh-CN/settings#where-settings-live),例如您的存储库的 `.claude/settings.json`;请参阅[您的设置中会保留的内容](#what-carries-over-from-your-setup),了解哪些文件会到达云会话 |473| **您在哪里配置它们** | [claude.ai/code](https://claude.ai/code) 的环境对话框,以及[共享环境](#organization-shared-environments)的 **Cloud environments** 管理页面 | [设置文件](/docs/zh-CN/settings#where-settings-live),例如您的存储库的 `.claude/settings.json`;请参阅[您的设置中会保留的内容](#what-carries-over-from-your-setup),了解哪些文件会到达云会话 |

474| **它们何时运行** | 在 Claude Code 启动之前,当存在[缓存环境](#environment-caching)时跳过 | 在 Claude Code 启动后,在每个会话(包括已恢复的会话)上 |474| **它们何时运行** | 在 Claude Code 启动之前,当存在[缓存环境](#environment-caching)时跳过 | 在 Claude Code 启动后,在每个会话(包括已恢复的会话)上 |

475| **它们在哪里运行** | 仅限云会话 | 本地和云会话 |475| **它们在哪里运行** | 仅限云会话 | 本地和云会话 |

code-review.md +4 −4

Details

43每个发现都标有严重程度级别:43每个发现都标有严重程度级别:

44 44 

45| 标记 | 严重程度 | 含义 |45| 标记 | 严重程度 | 含义 |

46| :- | :--- | :------------------- |46| :- | :- | :- |

47| 🔴 | 重要 | 应在合并前修复的错误 |47| 🔴 | 重要 | 应在合并前修复的错误 |

48| 🟡 | 小问题 | 轻微问题,值得修复但不阻止 |48| 🟡 | 小问题 | 轻微问题,值得修复但不阻止 |

49| 🟣 | 预先存在 | 代码库中存在但不是由此 PR 引入的错误 |49| 🟣 | 预先存在 | 代码库中存在但不是由此 PR 引入的错误 |


67除了内联审查评论外,每次审查都会填充 **Claude Code Review** 检查运行,该运行与您的 CI 检查一起出现。展开其 **Details** 链接以在一个地方查看每个发现的摘要,按严重程度排序:67除了内联审查评论外,每次审查都会填充 **Claude Code Review** 检查运行,该运行与您的 CI 检查一起出现。展开其 **Details** 链接以在一个地方查看每个发现的摘要,按严重程度排序:

68 68 

69| 严重程度 | 文件:行 | 问题 |69| 严重程度 | 文件:行 | 问题 |

70| ------ | ------------------------- | ----------------------------- |70| - | - | - |

71| 🔴 重要 | `src/auth/session.ts:142` | 令牌刷新与登出竞争,导致过期会话保持活跃 |71| 🔴 重要 | `src/auth/session.ts:142` | 令牌刷新与登出竞争,导致过期会话保持活跃 |

72| 🟡 小问题 | `src/auth/session.ts:88` | `parseExpiry` 在格式错误的输入上静默返回 0 |72| 🟡 小问题 | `src/auth/session.ts:88` | `parseExpiry` 在格式错误的输入上静默返回 0 |

73 73 


137注释命令按需启动审查。无论存储库的配置触发器如何,它们都有效,因此您可以使用它们在手动模式下选择特定 PR 进行审查,或在其他模式下获得立即重新审查。137注释命令按需启动审查。无论存储库的配置触发器如何,它们都有效,因此您可以使用它们在手动模式下选择特定 PR 进行审查,或在其他模式下获得立即重新审查。

138 138 

139| 命令 | 作用 |139| 命令 | 作用 |

140| :---------------------- | :------------------------------- |140| :- | :- |

141| `@claude review` | 启动单次审查,不订阅未来推送 |141| `@claude review` | 启动单次审查,不订阅未来推送 |

142| `@claude review always` | 启动审查并将 PR 订阅到今后的推送触发审查 |142| `@claude review always` | 启动审查并将 PR 订阅到今后的推送触发审查 |

143| `@claude review once` | 与 `@claude review` 相同:启动单次审查,不订阅 |143| `@claude review once` | 与 `@claude review` 相同:启动单次审查,不订阅 |


262转到 [claude.ai/analytics/code-review](https://claude.ai/analytics/code-review) 以查看整个组织的 Code Review 活动。仪表板显示:262转到 [claude.ai/analytics/code-review](https://claude.ai/analytics/code-review) 以查看整个组织的 Code Review 活动。仪表板显示:

263 263 

264| 部分 | 显示内容 |264| 部分 | 显示内容 |

265| :----- | :--------------------------- |265| :- | :- |

266| 审查的 PR | 所选时间范围内每日审查的 pull request 计数 |266| 审查的 PR | 所选时间范围内每日审查的 pull request 计数 |

267| 每周成本 | Code Review 的每周支出 |267| 每周成本 | Code Review 的每周支出 |

268| 反馈 | 因开发人员解决问题而自动解决的审查评论计数 |268| 反馈 | 因开发人员解决问题而自动解决的审查评论计数 |

commands.md +1 −1

Details

52</Note>52</Note>

53 53 

54| 命令 | 目的 |54| 命令 | 目的 |

55| :----------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |55| :- | :- |

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 及更早版本上,打开一个交互式界面来创建和管理子代理配置 |

Details

430根据您希望任务运行的位置选择调度选项:430根据您希望任务运行的位置选择调度选项:

431 431 

432| 选项 | 运行位置 | 最适合 |432| 选项 | 运行位置 | 最适合 |

433| :--------------------------------------- | :------------------ | :---------------------------------------------------------------------------------------------------------------- |433| :- | :- | :- |

434| [Routines](/docs/zh-CN/routines) | 云端,默认由 Anthropic 管理 | 即使您的计算机关闭也应该运行的任务。也可以在 API 调用或 GitHub 事件上触发,除了计划。在 [claude.ai/code/routines](https://claude.ai/code/routines) 配置。 |434| [Routines](/docs/zh-CN/routines) | 云端,默认由 Anthropic 管理 | 即使您的计算机关闭也应该运行的任务。也可以在 API 调用或 GitHub 事件上触发,除了计划。在 [claude.ai/code/routines](https://claude.ai/code/routines) 配置。 |

435| [桌面计划任务](/docs/zh-CN/desktop-scheduled-tasks) | 您的机器,通过桌面应用 | 需要直接访问本地文件、工具或未提交更改的任务。 |435| [桌面计划任务](/docs/zh-CN/desktop-scheduled-tasks) | 您的机器,通过桌面应用 | 需要直接访问本地文件、工具或未提交更改的任务。 |

436| [GitHub Actions](/docs/zh-CN/github-actions) | 您的 CI 管道 | 与存储库事件(如打开的 PR)相关的任务,或应该与工作流配置一起存在的 cron 计划。 |436| [GitHub Actions](/docs/zh-CN/github-actions) | 您的 CI 管道 | 与存储库事件(如打开的 PR)相关的任务,或应该与工作流配置一起存在的 cron 计划。 |

Details

25在公告发出前,请完成此清单。每一项都会关闭一个差距,否则会变成推出当天的支持线程。25在公告发出前,请完成此清单。每一项都会关闭一个差距,否则会变成推出当天的支持线程。

26 26 

27| 项目 | 为什么重要 |27| 项目 | 为什么重要 |

28| ------------------------------------------------- | -------------------------------------- |28| - | - |

29| `#claude-code` 频道已创建并在消息中链接 | 为问题提供一个统一的落地点 |29| `#claude-code` 频道已创建并在消息中链接 | 为问题提供一个统一的落地点 |

30| 在您环境中至少一台机器上测试了安装命令 | 在所有人同时遇到代理或防火墙问题之前捕获它们 |30| 在您环境中至少一台机器上测试了安装命令 | 在所有人同时遇到代理或防火墙问题之前捕获它们 |

31| 安全和数据处理链接已准备好([数据使用](/docs/zh-CN/data-usage) 或您的内部等效项) | "我的代码去哪里了?" 将是第一个回复 |31| 安全和数据处理链接已准备好([数据使用](/docs/zh-CN/data-usage) 或您的内部等效项) | "我的代码去哪里了?" 将是第一个回复 |


204```204```

205 205 

206| 模型 | 最适合 |206| 模型 | 最适合 |

207| ------ | ------------------------------------------------------------------------------------------------------------------ |207| - | - |

208| Fable | 最困难、最长时间运行的任务。仅选择加入:使用 `/model fable` 选择它。网络安全或生物学内容触发[自动模型回退到 Opus](/docs/zh-CN/model-config#automatic-model-fallback) |208| Fable | 最困难、最长时间运行的任务。仅选择加入:使用 `/model fable` 选择它。网络安全或生物学内容触发[自动模型回退到 Opus](/docs/zh-CN/model-config#automatic-model-fallback) |

209| Opus | 大规模重构、复杂调试、架构决策、高风险更改。在 Opus 5.5 和 Opus 5 上,网络安全或生物学内容触发[自动模型回退或拒绝](/docs/zh-CN/model-config#automatic-model-fallback) |209| Opus | 大规模重构、复杂调试、架构决策、高风险更改。在 Opus 5.5 和 Opus 5 上,网络安全或生物学内容触发[自动模型回退或拒绝](/docs/zh-CN/model-config#automatic-model-fallback) |

210| Sonnet | 日常功能工作、错误修复、测试、文档、代码审查。推荐默认值。 |210| Sonnet | 日常功能工作、错误修复、测试、文档、代码审查。推荐默认值。 |


442针对您最常被问到的问题的单行回复。442针对您最常被问到的问题的单行回复。

443 443 

444| 问题 | 回复 |444| 问题 | 回复 |

445| ------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |445| - | - |

446| "它在 VS Code 中工作吗?" | 是的。有一个 VS Code 扩展和一个 JetBrains 插件,具有相同的功能,嵌入在您的编辑器中。[VS Code →](/docs/zh-CN/vs-code) |446| "它在 VS Code 中工作吗?" | 是的。有一个 VS Code 扩展和一个 JetBrains 插件,具有相同的功能,嵌入在您的编辑器中。[VS Code →](/docs/zh-CN/vs-code) |

447| "我必须先配置什么吗?" | 不。安装,然后在任何仓库中运行 `claude`。运行一次 `/init`,您就设置好了。[快速入门 →](/docs/zh-CN/quickstart) |447| "我必须先配置什么吗?" | 不。安装,然后在任何仓库中运行 `claude`。运行一次 `/init`,您就设置好了。[快速入门 →](/docs/zh-CN/quickstart) |

448| "我的代码去哪里了?" | CLI 在您的终端中运行,并将上下文发送到 Anthropic 的 API 进行推理,没有第三方服务器。根据您的企业计划,您的代码和提示不用于训练模型。[数据使用 →](/docs/zh-CN/data-usage) |448| "我的代码去哪里了?" | CLI 在您的终端中运行,并将上下文发送到 Anthropic 的 API 进行推理,没有第三方服务器。根据您的企业计划,您的代码和提示不用于训练模型。[数据使用 →](/docs/zh-CN/data-usage) |


457与已安装但不确定要求什么的工程师分享这些入门提示。每一个都以它在真实会话中输入的方式表述;用您自己仓库中的文件替换括号部分。457与已安装但不确定要求什么的工程师分享这些入门提示。每一个都以它在真实会话中输入的方式表述;用您自己仓库中的文件替换括号部分。

458 458 

459| 任务 | 提示 |459| 任务 | 提示 |

460| -------- | -------------------------------------------- |460| - | - |

461| 修复错误 | "文件 \[file] 中的测试失败,找出原因并修复它" |461| 修复错误 | "文件 \[file] 中的测试失败,找出原因并修复它" |

462| 理解代码 | "向我介绍 \[module] 如何工作,然后告诉我入口点在哪里" |462| 理解代码 | "向我介绍 \[module] 如何工作,然后告诉我入口点在哪里" |

463| 安全重构 | "重构 \[module] 到 \[goal],使用 plan 模式,以便我可以先审查" |463| 安全重构 | "重构 \[module] 到 \[goal],使用 plan 模式,以便我可以先审查" |

computer-use.md +2 −2

Details

91具有广泛影响的应用在提示中显示额外警告,以便您知道批准它们授予什么:91具有广泛影响的应用在提示中显示额外警告,以便您知道批准它们授予什么:

92 92 

93| 警告 | 适用于 |93| 警告 | 适用于 |

94| :----------- | :------------------------------------- |94| :- | :- |

95| 等同于 shell 访问 | Terminal、iTerm、VS Code、Warp 和其他终端和 IDE |95| 等同于 shell 访问 | Terminal、iTerm、VS Code、Warp 和其他终端和 IDE |

96| 可以读取或写入任何文件 | Finder |96| 可以读取或写入任何文件 | Finder |

97| 可以更改系统设置 | System Settings |97| 可以更改系统设置 | System Settings |


206CLI 和 Desktop 表面共享相同的 computer use 引擎,有一些差异:206CLI 和 Desktop 表面共享相同的 computer use 引擎,有一些差异:

207 207 

208| 功能 | Desktop | CLI |208| 功能 | Desktop | CLI |

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

210| 平台 | macOS 和 Windows | 仅 macOS |210| 平台 | macOS 和 Windows | 仅 macOS |

211| 启用 | **Settings > General** 中的切换(在 **Desktop app** 下) | 在 `/mcp` 中启用 `computer-use` |211| 启用 | **Settings > General** 中的切换(在 **Desktop app** 下) | 在 `/mcp` 中启用 `computer-use` |

212| 拒绝应用列表 | 在设置中可配置 | 尚不可用 |212| 拒绝应用列表 | 在设置中可配置 | 尚不可用 |

Details

1598当长会话压缩时,Claude Code 会总结对话历史以适应上下文窗口。从 v2.1.198 开始,总结请求继承您会话的[扩展思考](/docs/zh-CN/model-config#extended-thinking)配置,因此当您的会话启用思考时,它会在启用思考的情况下进行推理,否则保持关闭。思考仅影响摘要的生成方式;您的会话设置之后保持不变。每种内容的处理方式取决于其加载方式:1598当长会话压缩时,Claude Code 会总结对话历史以适应上下文窗口。从 v2.1.198 开始,总结请求继承您会话的[扩展思考](/docs/zh-CN/model-config#extended-thinking)配置,因此当您的会话启用思考时,它会在启用思考的情况下进行推理,否则保持关闭。思考仅影响摘要的生成方式;您的会话设置之后保持不变。每种内容的处理方式取决于其加载方式:

1599 1599 

1600| 机制 | 压缩后 |1600| 机制 | 压缩后 |

1601| :---------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------- |1601| :- | :- |

1602| 系统提示和输出样式 | 两者仍然适用 |1602| 系统提示和输出样式 | 两者仍然适用 |

1603| 项目根目录 CLAUDE.md 和无范围规则 | 从磁盘重新注入 |1603| 项目根目录 CLAUDE.md 和无范围规则 | 从磁盘重新注入 |

1604| 自动内存 | 从磁盘重新注入 |1604| 自动内存 | 从磁盘重新注入 |

costs.md +3 −3

Details

107[使用额度](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans)让您可以在计划的使用限制之外继续工作。要管理它们,请在通过 `/login` 使用您的 claude.ai 订阅登录后运行 `/usage-credits`;该命令不适用于 API 密钥身份验证。在自助服务 Enterprise 组织、Enterprise 试用版和通过 AWS Marketplace 计费的 Enterprise 组织中,该命令需要 Claude Code v2.1.248 或更高版本;早期版本会以 [`Unknown command: /usage-credits`](/docs/zh-CN/errors#unknown-command) 拒绝它。它打开的内容取决于您的角色:107[使用额度](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans)让您可以在计划的使用限制之外继续工作。要管理它们,请在通过 `/login` 使用您的 claude.ai 订阅登录后运行 `/usage-credits`;该命令不适用于 API 密钥身份验证。在自助服务 Enterprise 组织、Enterprise 试用版和通过 AWS Marketplace 计费的 Enterprise 组织中,该命令需要 Claude Code v2.1.248 或更高版本;早期版本会以 [`Unknown command: /usage-credits`](/docs/zh-CN/errors#unknown-command) 拒绝它。它打开的内容取决于您的角色:

108 108 

109| 您的角色 | `/usage-credits` 的作用 |109| 您的角色 | `/usage-credits` 的作用 |

110| :----------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------- |110| :- | :- |

111| Pro 或 Max 订阅者 | 在浏览器中打开 claude.ai 上的 [**Settings > Usage**](https://claude.ai/settings/usage)。在其 **Usage credits** 部分中,您可以打开或关闭使用额度,并检查您的额度余额、本月支出和每月支出限制 |111| Pro 或 Max 订阅者 | 在浏览器中打开 claude.ai 上的 [**Settings > Usage**](https://claude.ai/settings/usage)。在其 **Usage credits** 部分中,您可以打开或关闭使用额度,并检查您的额度余额、本月支出和每月支出限制 |

112| 具有计费访问权限的 Team 或 Enterprise 成员 | 在浏览器中打开您的组织的使用情况设置 [**Admin settings > Usage**](https://claude.ai/admin-settings/usage) |112| 具有计费访问权限的 Team 或 Enterprise 成员 | 在浏览器中打开您的组织的使用情况设置 [**Admin settings > Usage**](https://claude.ai/admin-settings/usage) |

113| 没有计费访问权限的 Team 或 Enterprise 成员 | 要求您确认,然后向您的组织管理员发送请求。在 v2.1.211 之前,Claude Code 在没有确认步骤的情况下发送请求 |113| 没有计费访问权限的 Team 或 Enterprise 成员 | 要求您确认,然后向您的组织管理员发送请求。在 v2.1.211 之前,Claude Code 在没有确认步骤的情况下发送请求 |


127该表将每种设置映射到您查看支出的位置、您限制支出的位置以及如何提取每用户数字。在个人 Pro 或 Max 计划中,您没有组织可管理,因此请跟踪您自己的使用额度支出,包括[快速模式](/docs/zh-CN/fast-mode#see-where-fast-mode-spend-appears),在[向您的订阅添加使用额度](#add-usage-credits-to-your-subscription)下。127该表将每种设置映射到您查看支出的位置、您限制支出的位置以及如何提取每用户数字。在个人 Pro 或 Max 计划中,您没有组织可管理,因此请跟踪您自己的使用额度支出,包括[快速模式](/docs/zh-CN/fast-mode#see-where-fast-mode-spend-appears),在[向您的订阅添加使用额度](#add-usage-credits-to-your-subscription)下。

128 128 

129| 您的设置 | 查看支出 | 限制支出 | 每用户报告 |129| 您的设置 | 查看支出 | 限制支出 | 每用户报告 |

130| :----------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------- | :---------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |130| :- | :- | :- | :- |

131| [Claude for Teams 或 Enterprise](#claude-for-teams-and-enterprise) | [组织分析中的支出报告](https://support.claude.com/en/articles/12883420-view-usage-analytics-for-team-and-enterprise-plans) | 管理员设置中的支出限制 | [支出报告 CSV](https://support.claude.com/en/articles/12883420-view-usage-analytics-for-team-and-enterprise-plans);Enterprise 上的 [Enterprise Analytics API](https://platform.claude.com/docs/en/api/admin/analytics) |131| [Claude for Teams 或 Enterprise](#claude-for-teams-and-enterprise) | [组织分析中的支出报告](https://support.claude.com/en/articles/12883420-view-usage-analytics-for-team-and-enterprise-plans) | 管理员设置中的支出限制 | [支出报告 CSV](https://support.claude.com/en/articles/12883420-view-usage-analytics-for-team-and-enterprise-plans);Enterprise 上的 [Enterprise Analytics API](https://platform.claude.com/docs/en/api/admin/analytics) |

132| [Claude Console (API)](#claude-console) | [Console 使用情况页面](https://platform.claude.com/usage) | 工作区支出限制 | [Console 仪表板](https://platform.claude.com/claude-code)、[Claude Code Analytics API](https://platform.claude.com/docs/en/build-with-claude/claude-code-analytics-api) |132| [Claude Console (API)](#claude-console) | [Console 使用情况页面](https://platform.claude.com/usage) | 工作区支出限制 | [Console 仪表板](https://platform.claude.com/claude-code)、[Claude Code Analytics API](https://platform.claude.com/docs/en/build-with-claude/claude-code-analytics-api) |

133| [Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry](#cloud-providers) | 您的云计费控制台 | 您的云预算控制 | [OpenTelemetry](/docs/zh-CN/monitoring-usage) 或 [LLM gateway](/docs/zh-CN/llm-gateway) |133| [Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry](#cloud-providers) | 您的云计费控制台 | 您的云预算控制 | [OpenTelemetry](/docs/zh-CN/monitoring-usage) 或 [LLM gateway](/docs/zh-CN/llm-gateway) |


190为团队设置 Claude Code 时,请根据您的组织规模考虑这些每用户的令牌/分钟 (TPM) 和请求/分钟 (RPM) 建议:190为团队设置 Claude Code 时,请根据您的组织规模考虑这些每用户的令牌/分钟 (TPM) 和请求/分钟 (RPM) 建议:

191 191 

192| 团队规模 | 每用户 TPM | 每用户 RPM |192| 团队规模 | 每用户 TPM | 每用户 RPM |

193| ---------- | --------- | --------- |193| - | - | - |

194| 1-5 用户 | 200k-300k | 5-7 |194| 1-5 用户 | 200k-300k | 5-7 |

195| 5-20 用户 | 100k-150k | 2.5-3.5 |195| 5-20 用户 | 100k-150k | 2.5-3.5 |

196| 20-50 用户 | 50k-75k | 1.25-1.75 |196| 20-50 用户 | 50k-75k | 1.25-1.75 |

Details

172消息如何传播,以及它是否通过 Anthropic 服务器,取决于目标会话运行的位置:172消息如何传播,以及它是否通过 Anthropic 服务器,取决于目标会话运行的位置:

173 173 

174| 其他会话运行的位置 | 消息如何传播 |174| 其他会话运行的位置 | 消息如何传播 |

175| :------------------------------------- | :------------------------------------------------------------------------ |175| :- | :- |

176| 在这台机器上 | 在 macOS 和 Linux 上通过每个会话的套接字,或在本机 Windows 上通过每个会话的命名管道,永远不通过 Anthropic 服务器 |176| 在这台机器上 | 在 macOS 和 Linux 上通过每个会话的套接字,或在本机 Windows 上通过每个会话的命名管道,永远不通过 Anthropic 服务器 |

177| 在你的另一台机器上 | 通过 Anthropic 服务器,通过该机器的 [远程控制](/docs/zh-CN/remote-control) 连接到达 |177| 在你的另一台机器上 | 通过 Anthropic 服务器,通过该机器的 [远程控制](/docs/zh-CN/remote-control) 连接到达 |

178| 在 [云](/docs/zh-CN/claude-code-on-the-web) 中 | 通过 Anthropic 服务器,直接到云会话 |178| 在 [云](/docs/zh-CN/claude-code-on-the-web) 中 | 通过 Anthropic 服务器,直接到云会话 |


233设置 [`crossSessionInbound`](/docs/zh-CN/settings-reference#crosssessioninbound) 以选择会话对来自您的其他会话的到达消息做什么:233设置 [`crossSessionInbound`](/docs/zh-CN/settings-reference#crosssessioninbound) 以选择会话对来自您的其他会话的到达消息做什么:

234 234 

235| 值 | 行为 |235| 值 | 行为 |

236| :------- | :---------------------------------------------------------------------------------------------------------------------- |236| :- | :- |

237| `accept` | Claude Code 将每条消息传递给 Claude |237| `accept` | Claude Code 将每条消息传递给 Claude |

238| `hold` | Claude Code 为每条消息显示通知,不传递它。如果稍后应用 `accept`,根据[优先级规则](/docs/zh-CN/settings-reference#crosssessioninbound),Claude Code 释放保留的消息 |238| `hold` | Claude Code 为每条消息显示通知,不传递它。如果稍后应用 `accept`,根据[优先级规则](/docs/zh-CN/settings-reference#crosssessioninbound),Claude Code 释放保留的消息 |

239| `refuse` | Claude Code 删除每条消息而不传递它 |239| `refuse` | Claude Code 删除每条消息而不传递它 |

data-usage.md +2 −2

Details

96静止时的加密取决于您的模型提供商:96静止时的加密取决于您的模型提供商:

97 97 

98| 提供商 | 静止时加密 |98| 提供商 | 静止时加密 |

99| ----------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |99| - | - |

100| Anthropic API | 基础设施级磁盘加密 (AES-256)。启用 [Zero Data Retention](/docs/zh-CN/zero-data-retention) 以实现无服务器端持久化。 |100| Anthropic API | 基础设施级磁盘加密 (AES-256)。启用 [Zero Data Retention](/docs/zh-CN/zero-data-retention) 以实现无服务器端持久化。 |

101| Amazon Bedrock | AES-256,使用 AWS 管理的密钥。可通过 AWS KMS 获得客户管理的密钥。 |101| Amazon Bedrock | AES-256,使用 AWS 管理的密钥。可通过 AWS KMS 获得客户管理的密钥。 |

102| Google Cloud 的 Agent Platform | Google 管理的加密密钥。CMEK 可用。 |102| Google Cloud 的 Agent Platform | Google 管理的加密密钥。CMEK 可用。 |


145默认情况下,当使用 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 或 Claude Platform on AWS 时,错误报告、遥测和错误报告被禁用。会话质量调查和 WebFetch 域安全检查是例外,无论提供商如何都会运行。在已登录的 [Claude apps gateway](/docs/zh-CN/claude-apps-gateway) 会话上,使用分析、错误报告和向 Anthropic 的调查评分由网关凭证本身禁用,没有重新启用的设置。您可以通过设置 `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` 一次选择退出所有非必需的流量,包括调查。此变量不影响 WebFetch 检查或官方插件市场自动安装;每个都有自己的选择退出选项:[settings](/docs/zh-CN/settings) 中的 `skipWebFetchPreflight` 用于 WebFetch,`CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL` 用于市场。以下是完整的默认行为:145默认情况下,当使用 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 或 Claude Platform on AWS 时,错误报告、遥测和错误报告被禁用。会话质量调查和 WebFetch 域安全检查是例外,无论提供商如何都会运行。在已登录的 [Claude apps gateway](/docs/zh-CN/claude-apps-gateway) 会话上,使用分析、错误报告和向 Anthropic 的调查评分由网关凭证本身禁用,没有重新启用的设置。您可以通过设置 `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` 一次选择退出所有非必需的流量,包括调查。此变量不影响 WebFetch 检查或官方插件市场自动安装;每个都有自己的选择退出选项:[settings](/docs/zh-CN/settings) 中的 `skipWebFetchPreflight` 用于 WebFetch,`CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL` 用于市场。以下是完整的默认行为:

146 146 

147| 服务 | Claude API | Google Cloud 的 Agent Platform API | Amazon Bedrock API | Microsoft Foundry API | Claude Platform on AWS |147| 服务 | Claude API | Google Cloud 的 Agent Platform API | Amazon Bedrock API | Microsoft Foundry API | Claude Platform on AWS |

148| ------------------------------ | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- |148| - | - | - | - | - | - |

149| **Metrics** | 默认开启。<br />`DISABLE_TELEMETRY=1` 禁用。 | 默认关闭。<br />`CLAUDE_CODE_USE_VERTEX` 必须为 1。 | 默认关闭。<br />`CLAUDE_CODE_USE_BEDROCK` 必须为 1。 | 默认关闭。<br />`CLAUDE_CODE_USE_FOUNDRY` 必须为 1。 | 默认关闭。<br />`CLAUDE_CODE_USE_ANTHROPIC_AWS` 必须为 1。 |149| **Metrics** | 默认开启。<br />`DISABLE_TELEMETRY=1` 禁用。 | 默认关闭。<br />`CLAUDE_CODE_USE_VERTEX` 必须为 1。 | 默认关闭。<br />`CLAUDE_CODE_USE_BEDROCK` 必须为 1。 | 默认关闭。<br />`CLAUDE_CODE_USE_FOUNDRY` 必须为 1。 | 默认关闭。<br />`CLAUDE_CODE_USE_ANTHROPIC_AWS` 必须为 1。 |

150| **Error reports** | v2.1.198+ 上 Pro 和 Max 登录默认开启,否则关闭。<br />`DISABLE_ERROR_REPORTING=1` 禁用。 | 默认关闭。<br />`CLAUDE_CODE_USE_VERTEX` 必须为 1。 | 默认关闭。<br />`CLAUDE_CODE_USE_BEDROCK` 必须为 1。 | 默认关闭。<br />`CLAUDE_CODE_USE_FOUNDRY` 必须为 1。 | 默认关闭。<br />`CLAUDE_CODE_USE_ANTHROPIC_AWS` 必须为 1。 |150| **Error reports** | v2.1.198+ 上 Pro 和 Max 登录默认开启,否则关闭。<br />`DISABLE_ERROR_REPORTING=1` 禁用。 | 默认关闭。<br />`CLAUDE_CODE_USE_VERTEX` 必须为 1。 | 默认关闭。<br />`CLAUDE_CODE_USE_BEDROCK` 必须为 1。 | 默认关闭。<br />`CLAUDE_CODE_USE_FOUNDRY` 必须为 1。 | 默认关闭。<br />`CLAUDE_CODE_USE_ANTHROPIC_AWS` 必须为 1。 |

151| **Claude API(`/feedback` 报告)** | 默认开启。<br />`DISABLE_FEEDBACK_COMMAND=1` 禁用。 | 默认关闭。<br />`CLAUDE_CODE_USE_VERTEX` 必须为 1。 | 默认关闭。<br />`CLAUDE_CODE_USE_BEDROCK` 必须为 1。 | 默认关闭。<br />`CLAUDE_CODE_USE_FOUNDRY` 必须为 1。 | 默认关闭。<br />`CLAUDE_CODE_USE_ANTHROPIC_AWS` 必须为 1。 |151| **Claude API(`/feedback` 报告)** | 默认开启。<br />`DISABLE_FEEDBACK_COMMAND=1` 禁用。 | 默认关闭。<br />`CLAUDE_CODE_USE_VERTEX` 必须为 1。 | 默认关闭。<br />`CLAUDE_CODE_USE_BEDROCK` 必须为 1。 | 默认关闭。<br />`CLAUDE_CODE_USE_FOUNDRY` 必须为 1。 | 默认关闭。<br />`CLAUDE_CODE_USE_ANTHROPIC_AWS` 必须为 1。 |

Details

19对于特定类别的详细信息,请使用专用命令:19对于特定类别的详细信息,请使用专用命令:

20 20 

21| 命令 | 显示内容 |21| 命令 | 显示内容 |

22| :--------------- | :-------------------------------------------------------------------- |22| :- | :- |

23| `/memory` | 用户和项目范围内的内存文件位置,以及在编辑器中打开每个文件的选项,加上访问自动内存文件夹和自动内存切换的权限 |23| `/memory` | 用户和项目范围内的内存文件位置,以及在编辑器中打开每个文件的选项,加上访问自动内存文件夹和自动内存切换的权限 |

24| `/skills` | 来自项目、用户和插件源的可用 skills |24| `/skills` | 来自项目、用户和插件源的可用 skills |

25| `/hooks` | 活跃的 hook 配置 |25| `/hooks` | 活跃的 hook 配置 |


105大多数配置意外可以追溯到一小组位置和语法规则。在假设存在错误之前检查这些:105大多数配置意外可以追溯到一小组位置和语法规则。在假设存在错误之前检查这些:

106 106 

107| 症状 | 原因 | 修复 |107| 症状 | 原因 | 修复 |

108| :-------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------- |108| :- | :- | :- |

109| Hook 永远不触发 | `matcher` 是 JSON 数组而不是字符串 | 使用单个字符串,其中 `\|` 匹配多个工具,例如 `"Edit\|Write"`。请参阅[匹配器模式](/docs/zh-CN/hooks#matcher-patterns)。 |109| Hook 永远不触发 | `matcher` 是 JSON 数组而不是字符串 | 使用单个字符串,其中 `\|` 匹配多个工具,例如 `"Edit\|Write"`。请参阅[匹配器模式](/docs/zh-CN/hooks#matcher-patterns)。 |

110| Hook 永远不触发 | `matcher` 在 v2.1.191 之前的版本中使用 `,` 作为分隔符 | Claude Code v2.1.191 或更高版本将 `,` 视为列表分隔符,如 `\|`。早期版本将逗号评估为字面字符,因此 `"Edit,Write"` 不匹配任何内容。改用 `\|`,或升级 Claude Code。 |110| Hook 永远不触发 | `matcher` 在 v2.1.191 之前的版本中使用 `,` 作为分隔符 | Claude Code v2.1.191 或更高版本将 `,` 视为列表分隔符,如 `\|`。早期版本将逗号评估为字面字符,因此 `"Edit,Write"` 不匹配任何内容。改用 `\|`,或升级 Claude Code。 |

111| Hook 永远不触发 | `matcher` 值是小写的,例如 `"bash"` | 匹配是区分大小写的。工具名称是大写的:`Bash`、`Edit`、`Write`、`Read`。 |111| Hook 永远不触发 | `matcher` 值是小写的,例如 `"bash"` | 匹配是区分大小写的。工具名称是大写的:`Bash`、`Edit`、`Write`、`Read`。 |

desktop.md +8 −8

Details

85要为新的本地会话设置默认模式,请将 `permissions.defaultMode` 添加到你的[设置文件](/docs/zh-CN/settings#where-settings-live)。桌面应用读取与 CLI 相同的设置文件。你在选择器中选择的模式会被记住(按文件夹),并对该文件夹优先于 `defaultMode`,除了 Plan,它仅适用于当前会话。85要为新的本地会话设置默认模式,请将 `permissions.defaultMode` 添加到你的[设置文件](/docs/zh-CN/settings#where-settings-live)。桌面应用读取与 CLI 相同的设置文件。你在选择器中选择的模式会被记住(按文件夹),并对该文件夹优先于 `defaultMode`,除了 Plan,它仅适用于当前会话。

86 86 

87| 模式 | 设置键 | 行为 |87| 模式 | 设置键 | 行为 |

88| ---------------------- | ------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |88| - | - | - |

89| **Manual** | `default` | Claude 在编辑文件或运行命令之前询问。你会看到差异,可以接受或拒绝每项更改。 |89| **Manual** | `default` | Claude 在编辑文件或运行命令之前询问。你会看到差异,可以接受或拒绝每项更改。 |

90| **Accept edits** | `acceptEdits` | Claude 自动接受文件编辑和常见的文件系统命令,如 `mkdir`、`touch` 和 `mv`,但在运行其他终端命令之前仍会询问。当你信任文件更改并希望更快迭代时,请使用此选项。 |90| **Accept edits** | `acceptEdits` | Claude 自动接受文件编辑和常见的文件系统命令,如 `mkdir`、`touch` 和 `mv`,但在运行其他终端命令之前仍会询问。当你信任文件更改并希望更快迭代时,请使用此选项。 |

91| **Plan** | `plan` | Claude 读取文件并运行命令进行探索,然后提出计划而不编辑你的源代码。适合复杂任务,你想先审查方法。 |91| **Plan** | `plan` | Claude 读取文件并运行命令进行探索,然后提出计划而不编辑你的源代码。适合复杂任务,你想先审查方法。 |


245视图模式控制聊天记录中显示多少详细信息。从发送按钮旁的 **Transcript view** 下拉菜单切换模式,或在 macOS 或 Windows 上按 **Ctrl+O** 来循环浏览它们。Thinking 模式仅在 Claude 在你正在查看的会话中产生思考后才出现在下拉菜单中。245视图模式控制聊天记录中显示多少详细信息。从发送按钮旁的 **Transcript view** 下拉菜单切换模式,或在 macOS 或 Windows 上按 **Ctrl+O** 来循环浏览它们。Thinking 模式仅在 Claude 在你正在查看的会话中产生思考后才出现在下拉菜单中。

246 246 

247| 模式 | 显示内容 |247| 模式 | 显示内容 |

248| ------------ | ---------------------------------------- |248| - | - |

249| **Normal** | 工具调用折叠成摘要,带有完整文本响应 |249| **Normal** | 工具调用折叠成摘要,带有完整文本响应 |

250| **Thinking** | 工具调用折叠成摘要,加上 Claude 的思考 |250| **Thinking** | 工具调用折叠成摘要,加上 Claude 的思考 |

251| **Verbose** | Claude 采取的每个工具调用、文件读取和中间步骤,加上 Claude 的思考 |251| **Verbose** | Claude 采取的每个工具调用、文件读取和中间步骤,加上 Claude 的思考 |


259在 macOS 上按 **Cmd+/** 或在 Windows 上按 **Ctrl+/** 来查看 Code 选项卡中可用的所有快捷键。在 Windows 上,对下面的快捷键使用 **Ctrl** 代替 **Cmd**。会话循环、终端切换和视图模式切换在每个平台上使用 **Ctrl**。259在 macOS 上按 **Cmd+/** 或在 Windows 上按 **Ctrl+/** 来查看 Code 选项卡中可用的所有快捷键。在 Windows 上,对下面的快捷键使用 **Ctrl** 代替 **Cmd**。会话循环、终端切换和视图模式切换在每个平台上使用 **Ctrl**。

260 260 

261| 快捷键 | 操作 |261| 快捷键 | 操作 |

262| ------------------------------------- | ------------- |262| - | - |

263| `Cmd` `/` | 显示快捷键 |263| `Cmd` `/` | 显示快捷键 |

264| `Cmd` `N` | 新会话 |264| `Cmd` `N` | 新会话 |

265| `Cmd` `W` | 关闭会话 |265| `Cmd` `W` | 关闭会话 |


354提示还显示 Claude 为该应用获得的控制级别。这些层由应用类别固定,无法更改:354提示还显示 Claude 为该应用获得的控制级别。这些层由应用类别固定,无法更改:

355 355 

356| 层 | Claude 可以做什么 | 适用于 |356| 层 | Claude 可以做什么 | 适用于 |

357| :--- | :---------------- | :------- |357| :- | :- | :- |

358| 仅查看 | 在屏幕截图中看到应用 | 浏览器、交易平台 |358| 仅查看 | 在屏幕截图中看到应用 | 浏览器、交易平台 |

359| 仅点击 | 点击和滚动,但不能输入或使用快捷键 | 终端、IDE |359| 仅点击 | 点击和滚动,但不能输入或使用快捷键 | 终端、IDE |

360| 完全控制 | 点击、输入、拖动和使用快捷键 | 其他所有内容 |360| 完全控制 | 点击、输入、拖动和使用快捷键 | 其他所有内容 |


566`configurations` 数组中的每个条目接受以下字段:566`configurations` 数组中的每个条目接受以下字段:

567 567 

568| 字段 | 类型 | 描述 |568| 字段 | 类型 | 描述 |

569| ------------------- | --------- | ------------------------------------------------------------------------------------------------------------------------ |569| - | - | - |

570| `name` | string | 此服务器的唯一标识符 |570| `name` | string | 此服务器的唯一标识符 |

571| `runtimeExecutable` | string | 要运行的命令,例如 `npm`、`yarn` 或 `node` |571| `runtimeExecutable` | string | 要运行的命令,例如 `npm`、`yarn` 或 `node` |

572| `runtimeArgs` | string\[] | 传递给 `runtimeExecutable` 的参数,例如 `["run", "dev"]` |572| `runtimeArgs` | string\[] | 传递给 `runtimeExecutable` 的参数,例如 `["run", "dev"]` |


841托管设置覆盖项目和用户设置,并应用于 Desktop 中的 Claude Code 会话。你可以在你的组织的[托管设置](/docs/zh-CN/managed-settings)文件中设置这些键,或通过管理员控制台远程推送它们。841托管设置覆盖项目和用户设置,并应用于 Desktop 中的 Claude Code 会话。你可以在你的组织的[托管设置](/docs/zh-CN/managed-settings)文件中设置这些键,或通过管理员控制台远程推送它们。

842 842 

843| 键 | 描述 |843| 键 | 描述 |

844| ------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |844| - | - |

845| `permissions.disableBypassPermissionsMode` | 设置为 `"disable"` 以防止用户启用绕过权限模式。 |845| `permissions.disableBypassPermissionsMode` | 设置为 `"disable"` 以防止用户启用绕过权限模式。 |

846| `disableAutoMode` | 设置为 `"disable"` 以从模式选择器中删除 [Auto](/docs/zh-CN/permission-modes#eliminate-prompts-with-auto-mode) 模式。也在 `permissions` 下接受。 |846| `disableAutoMode` | 设置为 `"disable"` 以从模式选择器中删除 [Auto](/docs/zh-CN/permission-modes#eliminate-prompts-with-auto-mode) 模式。也在 `permissions` 下接受。 |

847| `autoMode` | 自定义 auto 模式分类器在你的组织中信任和阻止的内容。请参阅[配置 auto 模式](/docs/zh-CN/auto-mode-config)。 |847| `autoMode` | 自定义 auto 模式分类器在你的组织中信任和阻止的内容。请参阅[配置 auto 模式](/docs/zh-CN/auto-mode-config)。 |


974此表显示了常见 CLI 标志的桌面应用等效项。未列出的标志没有桌面等效项,因为它们是为脚本或自动化设计的。974此表显示了常见 CLI 标志的桌面应用等效项。未列出的标志没有桌面等效项,因为它们是为脚本或自动化设计的。

975 975 

976| CLI | Desktop 等效项 |976| CLI | Desktop 等效项 |

977| ------------------------------------- | ----------------------------------------------------------------------------------------- |977| - | - |

978| `--model sonnet` | 发送按钮旁的模型下拉菜单 |978| `--model sonnet` | 发送按钮旁的模型下拉菜单 |

979| `--resume`, `--continue` | 点击侧边栏中的会话,或在提示框中输入 `/resume` 来选择你从 CLI 启动的会话 |979| `--resume`, `--continue` | 点击侧边栏中的会话,或在提示框中输入 `/resume` 来选择你从 CLI 启动的会话 |

980| `--permission-mode` | 发送按钮旁的模式选择器 |980| `--permission-mode` | 发送按钮旁的模式选择器 |


1019此表比较了 CLI 和 Desktop 之间的核心功能。有关 CLI 标志的完整列表,请参阅 [CLI 参考](/docs/zh-CN/cli-reference)。1019此表比较了 CLI 和 Desktop 之间的核心功能。有关 CLI 标志的完整列表,请参阅 [CLI 参考](/docs/zh-CN/cli-reference)。

1020 1020 

1021| 功能 | CLI | Desktop |1021| 功能 | CLI | Desktop |

1022| ----------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |1022| - | - | - |

1023| 权限模式 | 所有模式,包括 `dontAsk` | Manual、Accept edits、Plan 和 Auto。绕过权限在模式选择器中出现一次启用:通过 Pro 和 Max 计划上的设置切换,或通过 Team 和 Enterprise 计划上的组织策略 |1023| 权限模式 | 所有模式,包括 `dontAsk` | Manual、Accept edits、Plan 和 Auto。绕过权限在模式选择器中出现一次启用:通过 Pro 和 Max 计划上的设置切换,或通过 Team 和 Enterprise 计划上的组织策略 |

1024| [第三方提供商](/docs/zh-CN/third-party-integrations) | Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry | Anthropic 的 API 默认。对于网关路由,请参阅[将桌面应用连接到网关](/docs/zh-CN/llm-gateway-connect#desktop-app)。要在 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 或自托管 LLM 网关上运行 Code 选项卡,请参阅 [Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/overview)。 |1024| [第三方提供商](/docs/zh-CN/third-party-integrations) | Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry | Anthropic 的 API 默认。对于网关路由,请参阅[将桌面应用连接到网关](/docs/zh-CN/llm-gateway-connect#desktop-app)。要在 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 或自托管 LLM 网关上运行 Code 选项卡,请参阅 [Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/overview)。 |

1025| [MCP servers](/docs/zh-CN/mcp) | 在设置文件中配置 | 本地和 SSH 会话的连接器 UI,或设置文件 |1025| [MCP servers](/docs/zh-CN/mcp) | 在设置文件中配置 | 本地和 SSH 会话的连接器 UI,或设置文件 |

Details

17Claude Code 提供三种方式来安排定期或一次性工作:17Claude Code 提供三种方式来安排定期或一次性工作:

18 18 

19| | [Cloud](/docs/zh-CN/routines) | [Desktop](/docs/zh-CN/desktop-scheduled-tasks) | [`/loop`](/docs/zh-CN/scheduled-tasks) |19| | [Cloud](/docs/zh-CN/routines) | [Desktop](/docs/zh-CN/desktop-scheduled-tasks) | [`/loop`](/docs/zh-CN/scheduled-tasks) |

20| :---------- | :----------------------- | :---------------------------------------- | :--------------------------------------------------------- |20| :- | :- | :- | :- |

21| 运行位置 | Cloud,默认由 Anthropic 管理 | 您的机器 | 您的机器 |21| 运行位置 | Cloud,默认由 Anthropic 管理 | 您的机器 | 您的机器 |

22| 需要机器开启 | 否 | 是 | 是 |22| 需要机器开启 | 否 | 是 | 是 |

23| 需要打开会话 | 否 | 否 | 是 |23| 需要打开会话 | 否 | 否 | 是 |


43在 Claude Desktop 1.1.5368 之前的版本中,本地定期任务不可用。在 [**Code** 选项卡](/docs/zh-CN/desktop) 中,单击侧边栏中的 **Routines** 或侧边栏的 **More** 菜单中的 **Routines**,然后单击 **New routine** 并选择 **Local**。配置这些字段:43在 Claude Desktop 1.1.5368 之前的版本中,本地定期任务不可用。在 [**Code** 选项卡](/docs/zh-CN/desktop) 中,单击侧边栏中的 **Routines** 或侧边栏的 **More** 菜单中的 **Routines**,然后单击 **New routine** 并选择 **Local**。配置这些字段:

44 44 

45| 字段 | 描述 |45| 字段 | 描述 |

46| ------------ | ---------------------------------------------------------------------------------------------------------- |46| - | - |

47| Name | 任务的标识符。转换为小写 kebab-case 并用作磁盘上的文件夹名称。在您的任务中必须是唯一的。 |47| Name | 任务的标识符。转换为小写 kebab-case 并用作磁盘上的文件夹名称。在您的任务中必须是唯一的。 |

48| Description | 任务列表中显示的简短摘要。 |48| Description | 任务列表中显示的简短摘要。 |

49| Instructions | 任务运行时 Claude 应该做什么。以您在提示框中编写任何消息的相同方式编写此内容。instructions 输入包括权限模式和模型的选择器,在其下方您选择工作文件夹以及是否在隔离的 worktree 中运行。 |49| Instructions | 任务运行时 Claude 应该做什么。以您在提示框中编写任何消息的相同方式编写此内容。instructions 输入包括权限模式和模型的选择器,在其下方您选择工作文件夹以及是否在隔离的 worktree 中运行。 |

devcontainer.md +1 −1

Details

191参考配置由三个文件组成。当您通过功能将 Claude Code 添加到您自己的开发容器时,这些文件都不是必需的,但它们展示了一种组合这些部分的方式。191参考配置由三个文件组成。当您通过功能将 Claude Code 添加到您自己的开发容器时,这些文件都不是必需的,但它们展示了一种组合这些部分的方式。

192 192 

193| 文件 | 目的 |193| 文件 | 目的 |

194| ---------------------------------------------------------------------------------------------------------- | ------------------------------------------- |194| - | - |

195| [`devcontainer.json`](https://github.com/anthropics/claude-code/blob/main/.devcontainer/devcontainer.json) | 卷挂载、`runArgs` 功能、VS Code 扩展和 `containerEnv` |195| [`devcontainer.json`](https://github.com/anthropics/claude-code/blob/main/.devcontainer/devcontainer.json) | 卷挂载、`runArgs` 功能、VS Code 扩展和 `containerEnv` |

196| [`Dockerfile`](https://github.com/anthropics/claude-code/blob/main/.devcontainer/Dockerfile) | 基础镜像、开发工具和 Claude Code 安装 |196| [`Dockerfile`](https://github.com/anthropics/claude-code/blob/main/.devcontainer/Dockerfile) | 基础镜像、开发工具和 Claude Code 安装 |

197| [`init-firewall.sh`](https://github.com/anthropics/claude-code/blob/main/.devcontainer/init-firewall.sh) | 限制出站网络流量仅限于脚本允许的目标 |197| [`init-firewall.sh`](https://github.com/anthropics/claude-code/blob/main/.devcontainer/init-firewall.sh) | 限制出站网络流量仅限于脚本允许的目标 |

env-vars.md +2 −2

Details

96您选择的文件控制变量应用于谁:96您选择的文件控制变量应用于谁:

97 97 

98| 文件 | 应用于 |98| 文件 | 应用于 |

99| :---------------------------- | :--------------------------------------------------------------------- |99| :- | :- |

100| `~/.claude/settings.json` | 您,在每个项目中 |100| `~/.claude/settings.json` | 您,在每个项目中 |

101| `.claude/settings.json` | 在项目中工作的每个人,检入源代码控制 |101| `.claude/settings.json` | 在项目中工作的每个人,检入源代码控制 |

102| `.claude/settings.local.json` | 您,仅在此项目中,当 Claude Code 将设置保存到它时被 gitignore;如果您手动创建它,请将其添加到您的 gitignore |102| `.claude/settings.local.json` | 您,仅在此项目中,当 Claude Code 将设置保存到它时被 gitignore;如果您手动创建它,请将其添加到您的 gitignore |


142</Note>142</Note>

143 143 

144| 变量 | 目的 |144| 变量 | 目的 |

145| :------------------------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |145| :- | :- |

146| `ANTHROPIC_API_KEY` | 作为 `X-Api-Key` 标头发送的 API 密钥。设置此密钥后,即使您已登录,此密钥也会被用来代替您的 Claude Pro、Max、Team 或 Enterprise 订阅。在非交互模式(`-p`)中,存在密钥时始终使用该密钥。在交互模式中,在密钥覆盖您的订阅之前,系统会提示您批准一次。要改用您的订阅,请运行 `unset ANTHROPIC_API_KEY` |146| `ANTHROPIC_API_KEY` | 作为 `X-Api-Key` 标头发送的 API 密钥。设置此密钥后,即使您已登录,此密钥也会被用来代替您的 Claude Pro、Max、Team 或 Enterprise 订阅。在非交互模式(`-p`)中,存在密钥时始终使用该密钥。在交互模式中,在密钥覆盖您的订阅之前,系统会提示您批准一次。要改用您的订阅,请运行 `unset ANTHROPIC_API_KEY` |

147| `ANTHROPIC_AUTH_TOKEN` | `Authorization` 标头的自定义值(您设置的值将以 `Bearer ` 为前缀) |147| `ANTHROPIC_AUTH_TOKEN` | `Authorization` 标头的自定义值(您设置的值将以 `Bearer ` 为前缀) |

148| `ANTHROPIC_AWS_API_KEY` | [Claude Platform on AWS](/docs/zh-CN/claude-platform-on-aws) 的工作区 API 密钥,在 AWS 控制台中生成。作为 `x-api-key` 发送,优先于 AWS SigV4 |148| `ANTHROPIC_AWS_API_KEY` | [Claude Platform on AWS](/docs/zh-CN/claude-platform-on-aws) 的工作区 API 密钥,在 AWS 控制台中生成。作为 `x-api-key` 发送,优先于 AWS SigV4 |

errors.md +2 −2

Details

21将您看到的消息与下面的部分相匹配。21将您看到的消息与下面的部分相匹配。

22 22 

23| 消息 | 部分 |23| 消息 | 部分 |

24| :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------- |24| :- | :- |

25| `API Error: 500 Internal server error` | [服务器错误](#api-error-500-internal-server-error) |25| `API Error: 500 Internal server error` | [服务器错误](#api-error-500-internal-server-error) |

26| `API Error: Repeated 529 Overloaded errors` | [服务器错误](#api-error-repeated-529-overloaded-errors) |26| `API Error: Repeated 529 Overloaded errors` | [服务器错误](#api-error-repeated-529-overloaded-errors) |

27| `Request timed out` | [服务器错误](#request-timed-out),或如果消息提到您的互联网连接,则为[网络](#unable-to-connect-to-api) |27| `Request timed out` | [服务器错误](#request-timed-out),或如果消息提到您的互联网连接,则为[网络](#unable-to-connect-to-api) |


366您可以使用这些环境变量调整重试行为:366您可以使用这些环境变量调整重试行为:

367 367 

368| 变量 | 默认值 | 效果 |368| 变量 | 默认值 | 效果 |

369| :------------------------------------------------------- | :----- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |369| :- | :- | :- |

370| [`CLAUDE_CODE_MAX_RETRIES`](/docs/zh-CN/env-vars) | 10 | 重试尝试次数。从 v2.1.186 开始上限为 15;从 v2.1.199 开始 `CLAUDE_CODE_RETRY_WATCHDOG` 提高默认值并移除上限。降低它以在脚本中更快地显示故障。 |370| [`CLAUDE_CODE_MAX_RETRIES`](/docs/zh-CN/env-vars) | 10 | 重试尝试次数。从 v2.1.186 开始上限为 15;从 v2.1.199 开始 `CLAUDE_CODE_RETRY_WATCHDOG` 提高默认值并移除上限。降低它以在脚本中更快地显示故障。 |

371| [`CLAUDE_CODE_RETRY_WATCHDOG`](/docs/zh-CN/env-vars) | 未设置 | 在 CI 作业等无人值守会话中设置为 `1`,以无限期重试 `429` 和 `529` 容量错误,而不是在 `CLAUDE_CODE_MAX_RETRIES` 尝试后失败。当标准速度请求获得报告支出限制或耗尽使用额度的 `429` 时,Claude Code 立即失败,即使来自 [gateway spend cap](#spend-limit-reached) 的也是如此,该上限按计划重置。在 v2.1.239 之前,看门狗无限期重试这些。对于快速模式请求,请参阅 [Handle rate limits](/docs/zh-CN/fast-mode#handle-rate-limits)。在 v2.1.199 或更高版本上,它还为其他瞬时错误(例如服务器错误、超时和断开连接)提高默认重试计数至 300,大约三小时的退避,如果您明确设置该变量,则移除 `CLAUDE_CODE_MAX_RETRIES` 的 15 上限。 |371| [`CLAUDE_CODE_RETRY_WATCHDOG`](/docs/zh-CN/env-vars) | 未设置 | 在 CI 作业等无人值守会话中设置为 `1`,以无限期重试 `429` 和 `529` 容量错误,而不是在 `CLAUDE_CODE_MAX_RETRIES` 尝试后失败。当标准速度请求获得报告支出限制或耗尽使用额度的 `429` 时,Claude Code 立即失败,即使来自 [gateway spend cap](#spend-limit-reached) 的也是如此,该上限按计划重置。在 v2.1.239 之前,看门狗无限期重试这些。对于快速模式请求,请参阅 [Handle rate limits](/docs/zh-CN/fast-mode#handle-rate-limits)。在 v2.1.199 或更高版本上,它还为其他瞬时错误(例如服务器错误、超时和断开连接)提高默认重试计数至 300,大约三小时的退避,如果您明确设置该变量,则移除 `CLAUDE_CODE_MAX_RETRIES` 的 15 上限。 |

372| [`API_TIMEOUT_MS`](/docs/zh-CN/env-vars) | 600000 | 每个请求的超时(毫秒)。为慢速网络或代理提高它。它还限制 Claude Code 等待响应头的时间,在 [No response from API](#no-response-from-api) 中描述。 |372| [`API_TIMEOUT_MS`](/docs/zh-CN/env-vars) | 600000 | 每个请求的超时(毫秒)。为慢速网络或代理提高它。它还限制 Claude Code 等待响应头的时间,在 [No response from API](#no-response-from-api) 中描述。 |

fast-mode.md +2 −2

Details

79快速模式的每个令牌定价高于标准 Opus:79快速模式的每个令牌定价高于标准 Opus:

80 80 

81| 模型 | 输入 (MTok) | 输出 (MTok) |81| 模型 | 输入 (MTok) | 输出 (MTok) |

82| -------- | --------- | --------- |82| - | - | - |

83| Opus 5.5 | \$8 | \$40 |83| Opus 5.5 | \$8 | \$40 |

84| Opus 5 | \$10 | \$50 |84| Opus 5 | \$10 | \$50 |

85| Opus 4.8 | \$10 | \$50 |85| Opus 4.8 | \$10 | \$50 |


121快速模式和努力级别都会影响响应速度,但方式不同:121快速模式和努力级别都会影响响应速度,但方式不同:

122 122 

123| 设置 | 效果 |123| 设置 | 效果 |

124| ----------- | -------------------------- |124| - | - |

125| **快速模式** | 相同的模型质量,更低的延迟,更高的成本 |125| **快速模式** | 相同的模型质量,更低的延迟,更高的成本 |

126| **较低的努力级别** | 更少的思考时间,更快的响应,在复杂任务上可能质量较低 |126| **较低的努力级别** | 更少的思考时间,更快的响应,在复杂任务上可能质量较低 |

127 127 

Details

304如果您通过 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 或 Anthropic Console API 密钥进行身份验证,本部分不适用于您。当您使用 claude.ai 账户登录时,您的计划决定了以下哪些功能可用。304如果您通过 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 或 Anthropic Console API 密钥进行身份验证,本部分不适用于您。当您使用 claude.ai 账户登录时,您的计划决定了以下哪些功能可用。

305 305 

306| 功能 | Pro | Max | Team | Enterprise |306| 功能 | Pro | Max | Team | Enterprise |

307| :-------------------------------------------------------------------------- | :-- | :-- | :------------ | :-------------------------------- |307| :- | :- | :- | :- | :- |

308| [网络上的 Claude Code](/docs/zh-CN/claude-code-on-the-web) | ✓ | ✓ | ✓ | ✓ <sup><a href="#fn6">6</a></sup> |308| [网络上的 Claude Code](/docs/zh-CN/claude-code-on-the-web) | ✓ | ✓ | ✓ | ✓ <sup><a href="#fn6">6</a></sup> |

309| [Routines](/docs/zh-CN/routines) | ✓ | ✓ | ✓ | ✓ |309| [Routines](/docs/zh-CN/routines) | ✓ | ✓ | ✓ | ✓ |

310| [Remote Control](/docs/zh-CN/remote-control) | ✓ | ✓ | Admin-enabled | Admin-enabled |310| [Remote Control](/docs/zh-CN/remote-control) | ✓ | ✓ | Admin-enabled | Admin-enabled |

Details

40功能范围从 Claude 每个会话都能看到的始终开启的上下文,到您或 Claude 可以调用的按需功能,再到在特定事件上运行的后台自动化。下表显示了可用的功能以及何时使用每个功能。40功能范围从 Claude 每个会话都能看到的始终开启的上下文,到您或 Claude 可以调用的按需功能,再到在特定事件上运行的后台自动化。下表显示了可用的功能以及何时使用每个功能。

41 41 

42| 功能 | 作用 | 何时使用 | 示例 |42| 功能 | 作用 | 何时使用 | 示例 |

43| ----------------------------------------------------------------- | -------------------------------------- | ------------------------------------------- | ---------------------------------------- |43| - | - | - | - |

44| **CLAUDE.md** | 每次对话加载的持久上下文 | 项目约定、"始终执行 X" 规则 | "使用 pnpm,而不是 npm。提交前运行测试。" |44| **CLAUDE.md** | 每次对话加载的持久上下文 | 项目约定、"始终执行 X" 规则 | "使用 pnpm,而不是 npm。提交前运行测试。" |

45| **[Output style](/docs/zh-CN/output-styles)** | 为整个会话设置 Claude 的角色、语气和响应格式的说明 | 您想在每个响应中使用的声音、长度或格式,或 Claude 作为软件工程师以外的角色工作 | 用于较短响应的内置 Concise 风格;一个自定义风格,首先用图表回答每个问题 |45| **[Output style](/docs/zh-CN/output-styles)** | 为整个会话设置 Claude 的角色、语气和响应格式的说明 | 您想在每个响应中使用的声音、长度或格式,或 Claude 作为软件工程师以外的角色工作 | 用于较短响应的内置 Concise 风格;一个自定义风格,首先用图表回答每个问题 |

46| **Skill** | Claude 可以使用的说明、知识和工作流 | 可重用内容、参考文档、可重复的任务 | `/deploy` 运行您的部署清单;包含端点模式的 API 文档 skill |46| **Skill** | Claude 可以使用的说明、知识和工作流 | 可重用内容、参考文档、可重复的任务 | `/deploy` 运行您的部署清单;包含端点模式的 API 文档 skill |


61您不需要提前配置所有内容。每个功能都有一个可识别的触发器,大多数团队大致按以下顺序添加它们:61您不需要提前配置所有内容。每个功能都有一个可识别的触发器,大多数团队大致按以下顺序添加它们:

62 62 

63| 触发器 | 添加 |63| 触发器 | 添加 |

64| :----------------------------- | :------------------------------------------------------------------- |64| :- | :- |

65| Claude 两次出错约定或命令 | 将其添加到 [CLAUDE.md](/docs/zh-CN/memory) |65| Claude 两次出错约定或命令 | 将其添加到 [CLAUDE.md](/docs/zh-CN/memory) |

66| 您一直在要求 Claude 更简洁、解释更多或以相同格式回答 | 设置 [output style](/docs/zh-CN/output-styles) |66| 您一直在要求 Claude 更简洁、解释更多或以相同格式回答 | 设置 [output style](/docs/zh-CN/output-styles) |

67| 您一直在输入相同的提示来启动任务 | 将其保存为用户可调用的 [skill](/docs/zh-CN/skills) |67| 您一直在输入相同的提示来启动任务 | 将其保存为用户可调用的 [skill](/docs/zh-CN/skills) |


88 * **Subagents** 是与您的主对话分开运行的隔离工作者88 * **Subagents** 是与您的主对话分开运行的隔离工作者

89 89 

90 | 方面 | Skill | Subagent |90 | 方面 | Skill | Subagent |

91 | ------------------------------------ | ------------- | --------------------- |91 | - | - | - |

92 | **它是什么** | 可重用的说明、知识或工作流 | 具有自己上下文的隔离工作者 |92 | **它是什么** | 可重用的说明、知识或工作流 | 具有自己上下文的隔离工作者 |

93 | **关键优势** | 在上下文之间共享内容 | 上下文隔离。工作单独进行,仅返回摘要 |93 | **关键优势** | 在上下文之间共享内容 | 上下文隔离。工作单独进行,仅返回摘要 |

94 | **[上下文窗口](/docs/zh-CN/context-window)影响** | 添加到您的主窗口 | 使用具有自己输入和输出令牌的单独窗口 |94 | **[上下文窗口](/docs/zh-CN/context-window)影响** | 添加到您的主窗口 | 使用具有自己输入和输出令牌的单独窗口 |


105 两者都存储说明,但它们的加载方式和用途不同。105 两者都存储说明,但它们的加载方式和用途不同。

106 106 

107 | 方面 | CLAUDE.md | Skill |107 | 方面 | CLAUDE.md | Skill |

108 | ----------- | --------------- | --------------- |108 | - | - | - |

109 | **加载** | 每个会话,自动 | 按需 |109 | **加载** | 每个会话,自动 | 按需 |

110 | **可以包含文件** | 是,使用 `@path` 导入 | 是,使用 `@path` 导入 |110 | **可以包含文件** | 是,使用 `@path` 导入 | 是,使用 `@path` 导入 |

111 | **可以触发工作流** | 否 | 是,使用 `/<name>` |111 | **可以触发工作流** | 否 | 是,使用 `/<name>` |


122 两者都给 Claude 常设说明。CLAUDE.md 包含 Claude 应该知道的内容,output style 设置 Claude 如何响应。122 两者都给 Claude 常设说明。CLAUDE.md 包含 Claude 应该知道的内容,output style 设置 Claude 如何响应。

123 123 

124 | 方面 | CLAUDE.md | Output style |124 | 方面 | CLAUDE.md | Output style |

125 | ------- | --------------------- | -------------------------------------------------------------- |125 | - | - | - |

126 | **包含** | 关于您的项目的事实和规则 | 角色、语气和响应格式 |126 | **包含** | 关于您的项目的事实和规则 | 角色、语气和响应格式 |

127 | **切换** | 始终加载 | 一次一个活跃;[随时切换风格](/docs/zh-CN/output-styles#change-your-output-style) |127 | **切换** | 始终加载 | 一次一个活跃;[随时切换风格](/docs/zh-CN/output-styles#change-your-output-style) |

128 | **最适合** | 构建命令、约定、"永远不要执行 X" 规则 | 更短的响应、代码旁边的解释、非工程角色 |128 | **最适合** | 构建命令、约定、"永远不要执行 X" 规则 | 更短的响应、代码旁边的解释、非工程角色 |


138 所有三者都存储说明,但它们的加载方式不同:138 所有三者都存储说明,但它们的加载方式不同:

139 139 

140 | 方面 | CLAUDE.md | `.claude/rules/` | Skill |140 | 方面 | CLAUDE.md | `.claude/rules/` | Skill |

141 | ------- | --------- | ---------------- | ------------ |141 | - | - | - | - |

142 | **加载** | 每个会话 | 每个会话,或当打开匹配的文件时 | 按需,当调用或相关时 |142 | **加载** | 每个会话 | 每个会话,或当打开匹配的文件时 | 按需,当调用或相关时 |

143 | **范围** | 整个项目 | 可以限定到文件路径 | 特定于任务 |143 | **范围** | 整个项目 | 可以限定到文件路径 | 特定于任务 |

144 | **最适合** | 核心约定和构建命令 | 特定于语言或目录的指南 | 参考材料、可重复的工作流 |144 | **最适合** | 核心约定和构建命令 | 特定于语言或目录的指南 | 参考材料、可重复的工作流 |


167 MCP 将 Claude 连接到外部服务。Skills 扩展 Claude 的知识,包括如何有效地使用这些服务。167 MCP 将 Claude 连接到外部服务。Skills 扩展 Claude 的知识,包括如何有效地使用这些服务。

168 168 

169 | 方面 | MCP | Skill |169 | 方面 | MCP | Skill |

170 | -------- | -------------------- | --------------------- |170 | - | - | - |

171 | **它是什么** | 连接到外部服务的协议 | 知识、工作流和参考材料 |171 | **它是什么** | 连接到外部服务的协议 | 知识、工作流和参考材料 |

172 | **提供** | 工具和数据访问 | 知识、工作流、参考材料 |172 | **提供** | 工具和数据访问 | 知识、工作流、参考材料 |

173 | **示例** | Slack 集成、数据库查询、浏览器控制 | 代码审查清单、部署工作流、API 风格指南 |173 | **示例** | Slack 集成、数据库查询、浏览器控制 | 代码审查清单、部署工作流、API 风格指南 |


183 Claude Code 在生命周期事件上运行 hook;它将 skill 加载到上下文中供 Claude 应用。183 Claude Code 在生命周期事件上运行 hook;它将 skill 加载到上下文中供 Claude 应用。

184 184 

185 | 方面 | Hook | Skill |185 | 方面 | Hook | Skill |

186 | --------- | ------------------------------------------------------------------- | ---------------------------------- |186 | - | - | - |

187 | **运行** | Shell 命令、HTTP 请求、MCP 工具调用、LLM 提示或 subagent | Claude 读取和遵循的说明 |187 | **运行** | Shell 命令、HTTP 请求、MCP 工具调用、LLM 提示或 subagent | Claude 读取和遵循的说明 |

188 | **由以下触发** | [生命周期事件](/docs/zh-CN/hooks#hook-events),如 `PostToolUse` 或 `SessionStart` | 您输入 `/<name>`,或 Claude 将描述与您的任务相匹配 |188 | **由以下触发** | [生命周期事件](/docs/zh-CN/hooks#hook-events),如 `PostToolUse` 或 `SessionStart` | 您输入 `/<name>`,或 Claude 将描述与您的任务相匹配 |

189 | **确定性** | 总是在其事件上触发;触发器是有保证的 | Claude 解释说明;结果可能会有所不同 |189 | **确定性** | 总是在其事件上触发;触发器是有保证的 | Claude 解释说明;结果可能会有所不同 |


220例如,您可能使用 CLAUDE.md 处理项目约定、使用 skill 处理部署工作流、使用 MCP 连接到数据库、使用 hook 在每次编辑后运行 linting。每个功能处理它最擅长的事情。220例如,您可能使用 CLAUDE.md 处理项目约定、使用 skill 处理部署工作流、使用 MCP 连接到数据库、使用 hook 在每次编辑后运行 linting。每个功能处理它最擅长的事情。

221 221 

222| 模式 | 工作原理 | 示例 |222| 模式 | 工作原理 | 示例 |

223| ---------------------- | -------------------------------------- | ---------------------------------------------- |223| - | - | - |

224| **Skill + MCP** | MCP 提供连接;skill 教导 Claude 如何很好地使用它 | MCP 连接到您的数据库,skill 记录您的架构和查询模式 |224| **Skill + MCP** | MCP 提供连接;skill 教导 Claude 如何很好地使用它 | MCP 连接到您的数据库,skill 记录您的架构和查询模式 |

225| **Skill + Subagent** | Skill 为并行工作生成 subagents | `/audit` skill 启动在隔离上下文中工作的安全性、性能和风格 subagents |225| **Skill + Subagent** | Skill 为并行工作生成 subagents | `/audit` skill 启动在隔离上下文中工作的安全性、性能和风格 subagents |

226| **CLAUDE.md + Skills** | CLAUDE.md 保存始终开启的规则;skills 保存按需加载的参考材料 | CLAUDE.md 说"遵循我们的 API 约定",skill 包含完整的 API 风格指南 |226| **CLAUDE.md + Skills** | CLAUDE.md 保存始终开启的规则;skills 保存按需加载的参考材料 | CLAUDE.md 说"遵循我们的 API 约定",skill 包含完整的 API 风格指南 |


239每个功能都有不同的加载策略和上下文成本:239每个功能都有不同的加载策略和上下文成本:

240 240 

241| 功能 | 何时加载 | 加载内容 | 上下文成本 |241| 功能 | 何时加载 | 加载内容 | 上下文成本 |

242| --------------------- | ------------------ | ----------------------------------------------------------------------------------- | ----------------- |242| - | - | - | - |

243| **CLAUDE.md** | 会话开始 | 完整内容 | 每个请求 |243| **CLAUDE.md** | 会话开始 | 完整内容 | 每个请求 |

244| **Output styles** | 会话开始,以及当您切换样式时再次加载 | 活跃样式的完整说明;默认样式无内容 | 每个请求 |244| **Output styles** | 会话开始,以及当您切换样式时再次加载 | 活跃样式的完整说明;默认样式无内容 | 每个请求 |

245| **Skills** | 会话开始 + 使用时 | 启动时的描述,使用时的完整内容 | 低(每个请求的描述)\* |245| **Skills** | 会话开始 + 使用时 | 启动时的描述,使用时的完整内容 | 低(每个请求的描述)\* |

fullscreen.md +4 −4

Details

57附加的[后台会话](/docs/zh-CN/agent-view)以全屏渲染,[屏幕阅读器模式](/docs/zh-CN/accessibility)中的其他会话使用经典渲染器。否则,Claude Code 会在与您的设置匹配的此表的第一行中的渲染器中启动您:57附加的[后台会话](/docs/zh-CN/agent-view)以全屏渲染,[屏幕阅读器模式](/docs/zh-CN/accessibility)中的其他会话使用经典渲染器。否则,Claude Code 会在与您的设置匹配的此表的第一行中的渲染器中启动您:

58 58 

59| 您的情况 | 您启动的渲染器 |59| 您的情况 | 您启动的渲染器 |

60| :----------------------------------------------------------------------------------------------------------------- | :-------- |60| :- | :- |

61| 您设置了 [`CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN=1`](/docs/zh-CN/env-vars) 或 `CLAUDE_CODE_NO_FLICKER=0` | 经典 |61| 您设置了 [`CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN=1`](/docs/zh-CN/env-vars) 或 `CLAUDE_CODE_NO_FLICKER=0` | 经典 |

62| 您设置了 `CLAUDE_CODE_NO_FLICKER=1` | 全屏 |62| 您设置了 `CLAUDE_CODE_NO_FLICKER=1` | 全屏 |

63| Claude Code [在此机器上失败的全屏启动后关闭了全屏](#fullscreen-renderer-didnt-finish-starting) | 经典 |63| Claude Code [在此机器上失败的全屏启动后关闭了全屏](#fullscreen-renderer-didnt-finish-starting) | 经典 |


85由于对话存在于备用屏幕缓冲区而不是终端的滚动历史中,一些事情的工作方式不同:85由于对话存在于备用屏幕缓冲区而不是终端的滚动历史中,一些事情的工作方式不同:

86 86 

87| 之前 | 现在 | 详情 |87| 之前 | 现在 | 详情 |

88| :--------------------- | :-------------------------------------- | :--------------------------------------------- |88| :- | :- | :- |

89| `Cmd+f` 或 tmux 搜索来查找文本 | `Ctrl+o` 进入记录模式,然后 `/` 来搜索或 `[` 来写入滚动历史 | [搜索和查看对话](#search-and-review-the-conversation) |89| `Cmd+f` 或 tmux 搜索来查找文本 | `Ctrl+o` 进入记录模式,然后 `/` 来搜索或 `[` 来写入滚动历史 | [搜索和查看对话](#search-and-review-the-conversation) |

90| 终端的原生点击拖动来选择和复制 | 应用内选择,鼠标释放时自动复制 | [使用鼠标](#use-the-mouse) |90| 终端的原生点击拖动来选择和复制 | 应用内选择,鼠标释放时自动复制 | [使用鼠标](#use-the-mouse) |

91| `Cmd` 点击来打开 URL | macOS 上的 `Cmd` 点击,其他地方的 `Ctrl` 点击 | [使用鼠标](#use-the-mouse) |91| `Cmd` 点击来打开 URL | macOS 上的 `Cmd` 点击,其他地方的 `Ctrl` 点击 | [使用鼠标](#use-the-mouse) |


135全屏渲染处理应用内的滚动。使用这些快捷键进行导航:135全屏渲染处理应用内的滚动。使用这些快捷键进行导航:

136 136 

137| 快捷键 | 操作 |137| 快捷键 | 操作 |

138| :-------------- | :--------------- |138| :- | :- |

139| `PgUp` / `PgDn` | 向上或向下滚动半屏 |139| `PgUp` / `PgDn` | 向上或向下滚动半屏 |

140| `Ctrl+Home` | 跳转到对话开始 |140| `Ctrl+Home` | 跳转到对话开始 |

141| `Ctrl+End` | 跳转到最新消息并重新启用自动跟随 |141| `Ctrl+End` | 跳转到最新消息并重新启用自动跟随 |


208记录模式获得 `less` 风格的导航和搜索:208记录模式获得 `less` 风格的导航和搜索:

209 209 

210| 快捷键 | 操作 |210| 快捷键 | 操作 |

211| :---------------------------------- | :--------------------------------------------- |211| :- | :- |

212| `/` | 打开搜索。输入以查找匹配项,按 `Enter` 接受,按 `Esc` 取消并恢复您的滚动位置 |212| `/` | 打开搜索。输入以查找匹配项,按 `Enter` 接受,按 `Esc` 取消并恢复您的滚动位置 |

213| `n` / `N` | 跳转到下一个或上一个匹配项。在您关闭搜索栏后有效 |213| `n` / `N` | 跳转到下一个或上一个匹配项。在您关闭搜索栏后有效 |

214| `j` / `k` 或 `↑` / `↓` | 向下滚动一行 |214| `j` / `k` 或 `↑` / `↓` | 向下滚动一行 |

Details

136安装应用时,您授予以下权限:136安装应用时,您授予以下权限:

137 137 

138| 权限 | 访问 |138| 权限 | 访问 |

139| ---------------- | -- |139| - | - |

140| Actions | 读写 |140| Actions | 读写 |

141| Checks | 读写 |141| Checks | 读写 |

142| Contents | 读写 |142| Contents | 读写 |


399这些是最常用的输入。每个都映射到 `anthropics/claude-code-action` 步骤中的 `with:` 键。399这些是最常用的输入。每个都映射到 `anthropics/claude-code-action` 步骤中的 `with:` 键。

400 400 

401| 参数 | 描述 | 必需 |401| 参数 | 描述 | 必需 |

402| ------------------------- | ---------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- |402| - | - | - |

403| `prompt` | Claude 的说明,作为纯文本或 [skill](/docs/zh-CN/skills) 调用。省略时,Claude 改为响应[触发短语](#interactive-and-automation-modes) | 否 |403| `prompt` | Claude 的说明,作为纯文本或 [skill](/docs/zh-CN/skills) 调用。省略时,Claude 改为响应[触发短语](#interactive-and-automation-modes) | 否 |

404| `claude_args` | 传递给 Claude Code 的 CLI 参数 | 否 |404| `claude_args` | 传递给 Claude Code 的 CLI 参数 | 否 |

405| `anthropic_api_key` | Claude API 密钥 | 对于 Claude API,除非您使用 `claude_code_oauth_token` 或[工作负载身份联合](#set-up-for-an-organization)。不用于 Bedrock、Agent Platform 或 Foundry |405| `anthropic_api_key` | Claude API 密钥 | 对于 Claude API,除非您使用 `claude_code_oauth_token` 或[工作负载身份联合](#set-up-for-an-organization)。不用于 Bedrock、Agent Platform 或 Foundry |

Details

101 在运行 Claude Code GitHub Action 的存储库中,为您的提供商添加密钥,如果您在第一步中创建了自定义 GitHub App,还要添加两个应用密钥。请参阅 GitHub 的 [在 GitHub Actions 中使用密钥指南](https://docs.github.com/en/actions/security-guides/using-secrets-in-github-actions)。101 在运行 Claude Code GitHub Action 的存储库中,为您的提供商添加密钥,如果您在第一步中创建了自定义 GitHub App,还要添加两个应用密钥。请参阅 GitHub 的 [在 GitHub Actions 中使用密钥指南](https://docs.github.com/en/actions/security-guides/using-secrets-in-github-actions)。

102 102 

103 | 密钥 | 需要用于 | 值 |103 | 密钥 | 需要用于 | 值 |

104 | -------------------------------- | ----------------------------- | ------------------------ |104 | - | - | - |

105 | `AWS_ROLE_TO_ASSUME` | Amazon Bedrock | IAM 角色的 ARN |105 | `AWS_ROLE_TO_ASSUME` | Amazon Bedrock | IAM 角色的 ARN |

106 | `GCP_WORKLOAD_IDENTITY_PROVIDER` | Google Cloud 的 Agent Platform | 提供商的完整资源名称 |106 | `GCP_WORKLOAD_IDENTITY_PROVIDER` | Google Cloud 的 Agent Platform | 提供商的完整资源名称 |

107 | `GCP_SERVICE_ACCOUNT` | Google Cloud 的 Agent Platform | 服务账户的电子邮件地址 |107 | `GCP_SERVICE_ACCOUNT` | Google Cloud 的 Agent Platform | 服务账户的电子邮件地址 |

Details

21下表显示了哪些 Claude Code 功能支持 GHES 以及与 github.com 行为的任何差异。21下表显示了哪些 Claude Code 功能支持 GHES 以及与 github.com 行为的任何差异。

22 22 

23| 功能 | GHES 支持 | 备注 |23| 功能 | GHES 支持 | 备注 |

24| :---------------- | :------ | :-------------------------------------------------------------------------------------- |24| :- | :- | :- |

25| 云会话 | ✅ 支持 | 所有者连接 GHES 实例一次;开发人员像往常一样使用 `claude --cloud` 或 [claude.ai/code](https://claude.ai/code) |25| 云会话 | ✅ 支持 | 所有者连接 GHES 实例一次;开发人员像往常一样使用 `claude --cloud` 或 [claude.ai/code](https://claude.ai/code) |

26| 代码审查 | ✅ 支持 | 与 github.com 相同的自动化 PR 审查 |26| 代码审查 | ✅ 支持 | 与 github.com 相同的自动化 PR 审查 |

27| Claude Security | ✅ 支持 | 在 [claude.ai/security](https://claude.ai/security) 为 Enterprise 计划提供公开测试版 |27| Claude Security | ✅ 支持 | 在 [claude.ai/security](https://claude.ai/security) 为 Enterprise 计划提供公开测试版 |


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

69 69 

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

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

72| Contents | 读写 | 克隆存储库和推送分支 |72| Contents | 读写 | 克隆存储库和推送分支 |

73| Pull requests | 读写 | 创建 PR 和发布审查评论 |73| Pull requests | 读写 | 创建 PR 和发布审查评论 |

74| Issues | 读写 | 响应问题提及 |74| Issues | 读写 | 响应问题提及 |


131在您的 GHES 实例上托管插件市场,以在您的组织中分发内部工具。市场结构与 github.com 托管的市场相同,但安装方式因您添加市场的位置而异,并且凭证在不同的界面上有所不同:131在您的 GHES 实例上托管插件市场,以在您的组织中分发内部工具。市场结构与 github.com 托管的市场相同,但安装方式因您添加市场的位置而异,并且凭证在不同的界面上有所不同:

132 132 

133| 界面 | 安装方式 | 每个用户需要什么 |133| 界面 | 安装方式 | 每个用户需要什么 |

134| :----------------------------- | :----------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------- |134| :- | :- | :- |

135| Claude Code CLI 和桌面应用 | Claude Code 使用机器现有的 git 凭证克隆市场存储库 | 从其机器对您的 GHES 主机的 Git 访问权限 |135| Claude Code CLI 和桌面应用 | Claude Code 使用机器现有的 git 凭证克隆市场存储库 | 从其机器对您的 GHES 主机的 Git 访问权限 |

136| 托管设置(`extraKnownMarketplaces`) | Claude Code 注册条目并使用机器现有的 git 凭证克隆存储库 | 从其机器对您的 GHES 主机的 Git 访问权限 |136| 托管设置(`extraKnownMarketplaces`) | Claude Code 注册条目并使用机器现有的 git 凭证克隆存储库 | 从其机器对您的 GHES 主机的 Git 访问权限 |

137| claude.ai 组织插件设置 | 所有者选择 GHES 实例作为源;Anthropic 的后端使用来自 [admin setup](#admin-setup) 的 GitHub App 获取并同步存储库 | 添加后每个用户无需任何操作。添加它的所有者需要连接自己的 GitHub Enterprise 账户作为访问检查,并且 GitHub App 必须安装在市场存储库上 |137| claude.ai 组织插件设置 | 所有者选择 GHES 实例作为源;Anthropic 的后端使用来自 [admin setup](#admin-setup) 的 GitHub App 获取并同步存储库 | 添加后每个用户无需任何操作。添加它的所有者需要连接自己的 GitHub Enterprise 账户作为访问检查,并且 GitHub App 必须安装在市场存储库上 |

glossary.md +1 −1

Details

489这些术语出现在较旧的文档、博客文章和社区内容中。搜索此网站时使用当前名称。489这些术语出现在较旧的文档、博客文章和社区内容中。搜索此网站时使用当前名称。

490 490 

491| 旧术语 | 现在称为 | 注释 |491| 旧术语 | 现在称为 | 注释 |

492| ----------------------------------------------------------------------- | --------------------------------------------- | ----------------------------------------------------- |492| - | - | - |

493| Headless mode | [Non-interactive mode](#non-interactive-mode) | 相同的 `-p` 标志,相同的行为 |493| Headless mode | [Non-interactive mode](#non-interactive-mode) | 相同的 `-p` 标志,相同的行为 |

494| Web session; "Claude Code on the web" as the name for any cloud session | [Cloud session](#cloud-session) | "Claude Code on the web" 现在仅命名 claude.ai/code 处的浏览器界面 |494| Web session; "Claude Code on the web" as the name for any cloud session | [Cloud session](#cloud-session) | "Claude Code on the web" 现在仅命名 claude.ai/code 处的浏览器界面 |

495| Custom commands | [Skills](#skill) | `.claude/commands/` 文件仍然有效 |495| Custom commands | [Skills](#skill) | `.claude/commands/` 文件仍然有效 |

goal.md +1 −1

Details

22三种方法可以在提示之间保持当前会话运行。根据应该启动下一个回合的内容进行选择:22三种方法可以在提示之间保持当前会话运行。根据应该启动下一个回合的内容进行选择:

23 23 

24| 方法 | 下一个回合何时开始 | 停止条件 |24| 方法 | 下一个回合何时开始 | 停止条件 |

25| :--------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------ | :------------------------------------------------------------------------------------------------------------ |25| :- | :- | :- |

26| `/goal` | 前一个回合完成时,或在交互式会话中,[空闲检查](#background-work-defers-evaluation)或[自动重试](#other-errors-retry-or-pause-the-goal)到期时 | 模型确认条件已满足或判断其不可能,或回合因[你必须修复的错误](#errors-you-have-to-fix-clear-the-goal)而失败,或你运行[`/goal clear`](#clear-a-goal) |26| `/goal` | 前一个回合完成时,或在交互式会话中,[空闲检查](#background-work-defers-evaluation)或[自动重试](#other-errors-retry-or-pause-the-goal)到期时 | 模型确认条件已满足或判断其不可能,或回合因[你必须修复的错误](#errors-you-have-to-fix-clear-the-goal)而失败,或你运行[`/goal clear`](#clear-a-goal) |

27| [`/loop`](/docs/zh-CN/scheduled-tasks#run-a-prompt-repeatedly-with-%2Floop) | 时间间隔过去时 | 你停止它,或 Claude 决定工作完成 |27| [`/loop`](/docs/zh-CN/scheduled-tasks#run-a-prompt-repeatedly-with-%2Floop) | 时间间隔过去时 | 你停止它,或 Claude 决定工作完成 |

28| [Stop hook](/docs/zh-CN/hooks-guide#prompt-based-hooks) | 前一个回合完成时 | 你自己的脚本或提示决定 |28| [Stop hook](/docs/zh-CN/hooks-guide#prompt-based-hooks) | 前一个回合完成时 | 你自己的脚本或提示决定 |

Details

251Claude Code 在未设置固定变量时使用这些默认模型:251Claude Code 在未设置固定变量时使用这些默认模型:

252 252 

253| 模型类型 | 默认值 |253| 模型类型 | 默认值 |

254| :------ | :--------------------------- |254| :- | :- |

255| 主模型 | `claude-opus-5-5` |255| 主模型 | `claude-opus-5-5` |

256| 小型/快速模型 | `claude-sonnet-4-5@20250929` |256| 小型/快速模型 | `claude-sonnet-4-5@20250929` |

257 257 

headless.md +5 −5

Details

55在裸模式下,Claude 可以访问 Bash、文件读取和文件编辑工具。使用标志传递您需要的任何上下文:55在裸模式下,Claude 可以访问 Bash、文件读取和文件编辑工具。使用标志传递您需要的任何上下文:

56 56 

57| 要加载 | 使用 |57| 要加载 | 使用 |

58| ---------- | ------------------------------------------------------- |58| - | - |

59| 系统提示添加 | `--append-system-prompt`, `--append-system-prompt-file` |59| 系统提示添加 | `--append-system-prompt`, `--append-system-prompt-file` |

60| 设置 | `--settings <file-or-json>` |60| 设置 | `--settings <file-or-json>` |

61| MCP 服务器 | `--mcp-config <file-or-json>` |61| MCP 服务器 | `--mcp-config <file-or-json>` |


223当 API 请求因可重试错误而失败时,Claude Code 在重试前发出 `system/api_retry` 事件。在 v2.1.246 或更高版本上,当 `401` 或 `403` 拒绝 [`apiKeyHelper`](/docs/zh-CN/settings-reference#apikeyhelper) 凭证时,Claude Code 会静默进行前两次重试,没有事件,然后从第三次连续重试开始照常发出事件。静默重试仍然计入 `attempt`。您可以使用该事件在您自己的界面中显示重试进度。223当 API 请求因可重试错误而失败时,Claude Code 在重试前发出 `system/api_retry` 事件。在 v2.1.246 或更高版本上,当 `401` 或 `403` 拒绝 [`apiKeyHelper`](/docs/zh-CN/settings-reference#apikeyhelper) 凭证时,Claude Code 会静默进行前两次重试,没有事件,然后从第三次连续重试开始照常发出事件。静默重试仍然计入 `attempt`。您可以使用该事件在您自己的界面中显示重试进度。

224 224 

225| 字段 | 类型 | 描述 |225| 字段 | 类型 | 描述 |

226| ---------------- | ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |226| - | - | - |

227| `type` | `"system"` | 消息类型 |227| `type` | `"system"` | 消息类型 |

228| `subtype` | `"api_retry"` | 将其标识为重试事件 |228| `subtype` | `"api_retry"` | 将其标识为重试事件 |

229| `attempt` | 整数 | 当前尝试次数,从 1 开始 |229| `attempt` | 整数 | 当前尝试次数,从 1 开始 |


253使用 `system/init` 事件中的 plugin 字段来捕获未加载的 plugin:253使用 `system/init` 事件中的 plugin 字段来捕获未加载的 plugin:

254 254 

255| 字段 | 类型 | 描述 |255| 字段 | 类型 | 描述 |

256| --------------- | -- | --------------------------------------------------------------------------------------------------------------------------------------- |256| - | - | - |

257| `plugins` | 数组 | 成功加载的 plugins,每个都有 `name` 和 `path` |257| `plugins` | 数组 | 成功加载的 plugins,每个都有 `name` 和 `path` |

258| `plugin_errors` | 数组 | plugin 加载时错误,每个都有 `plugin`、`type` 和 `message`。包括不满足的依赖版本和 `--plugin-dir` 加载失败,例如缺失路径或无效存档。受影响的 plugins 被降级并从 `plugins` 中缺失。当没有错误时,该键被省略 |258| `plugin_errors` | 数组 | plugin 加载时错误,每个都有 `plugin`、`type` 和 `message`。包括不满足的依赖版本和 `--plugin-dir` 加载失败,例如缺失路径或无效存档。受影响的 plugins 被降级并从 `plugins` 中缺失。当没有错误时,该键被省略 |

259 259 


262Claude Code 在启动时验证每个 `--mcp-config` 条目并跳过验证失败的条目,例如没有 `type` 的 `url` 条目。运行继续并干净地退出,因此检查这些字段以捕获从未加载的服务器:262Claude Code 在启动时验证每个 `--mcp-config` 条目并跳过验证失败的条目,例如没有 `type` 的 `url` 条目。运行继续并干净地退出,因此检查这些字段以捕获从未加载的服务器:

263 263 

264| 字段 | 类型 | 描述 |264| 字段 | 类型 | 描述 |

265| ------------------- | -- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |265| - | - | - |

266| `mcp_servers` | 数组 | 会话中的 MCP 服务器,每个都有 `name` 和 `status` |266| `mcp_servers` | 数组 | 会话中的 MCP 服务器,每个都有 `name` 和 `status` |

267| `mcp_server_errors` | 数组 | `--mcp-config` 条目被配置验证跳过,每个都有 `name`、`type` 和 `message`。`type` 是跳过类别,例如 `unknown_type`、`url_missing_type`、`invalid_config` 或 `reserved_name`;将您不认识的值视为通用跳过。受影响的服务器从 `mcp_servers` 中缺失。当没有错误时,该键被省略,因此 CI 门可以在非空数组上失败。需要 Claude Code v2.1.219 或更高版本 |267| `mcp_server_errors` | 数组 | `--mcp-config` 条目被配置验证跳过,每个都有 `name`、`type` 和 `message`。`type` 是跳过类别,例如 `unknown_type`、`url_missing_type`、`invalid_config` 或 `reserved_name`;将您不认识的值视为通用跳过。受影响的服务器从 `mcp_servers` 中缺失。当没有错误时,该键被省略,因此 CI 门可以在非空数组上失败。需要 Claude Code v2.1.219 或更高版本 |

268 268 


275当设置了 [`CLAUDE_CODE_SYNC_PLUGIN_INSTALL`](/docs/zh-CN/env-vars) 时,Claude Code 在第一轮之前安装市场 plugins 时发出 `system/plugin_install` 事件。使用这些在您自己的 UI 中显示安装进度。275当设置了 [`CLAUDE_CODE_SYNC_PLUGIN_INSTALL`](/docs/zh-CN/env-vars) 时,Claude Code 在第一轮之前安装市场 plugins 时发出 `system/plugin_install` 事件。使用这些在您自己的 UI 中显示安装进度。

276 276 

277| 字段 | 类型 | 描述 |277| 字段 | 类型 | 描述 |

278| ------------ | ---------------------------------------------------- | ------------------------------------------------------------ |278| - | - | - |

279| `type` | `"system"` | 消息类型 |279| `type` | `"system"` | 消息类型 |

280| `subtype` | `"plugin_install"` | 将其标识为 plugin 安装事件 |280| `subtype` | `"plugin_install"` | 将其标识为 plugin 安装事件 |

281| `status` | `"started"`、`"installed"`、`"failed"` 或 `"completed"` | `started` 和 `completed` 括住整体安装;`installed` 和 `failed` 报告单个市场 |281| `status` | `"started"`、`"installed"`、`"failed"` 或 `"completed"` | `started` 和 `completed` 括住整体安装;`installed` 和 `failed` 报告单个市场 |

hooks.md +75 −75

Details

35下表总结了每个事件何时触发。[Hook 事件](#hook-events)部分记录了每个事件的完整输入架构和决定控制选项。35下表总结了每个事件何时触发。[Hook 事件](#hook-events)部分记录了每个事件的完整输入架构和决定控制选项。

36 36 

37| 事件 | 触发时机 |37| 事件 | 触发时机 |

38| :-------------------- | :--------------------------------------------------------------------------------------------------------------------- |38| :- | :- |

39| `SessionStart` | 当会话开始或恢复时 |39| `SessionStart` | 当会话开始或恢复时 |

40| `Setup` | 当你使用 `--init-only` 启动 Claude Code,或在 `-p` 模式下使用 `--init` 或 `--maintenance` 时。用于 CI 或脚本中的一次性准备 |40| `Setup` | 当你使用 `--init-only` 启动 Claude Code,或在 `-p` 模式下使用 `--init` 或 `--maintenance` 时。用于 CI 或脚本中的一次性准备 |

41| `UserPromptSubmit` | 当你提交提示词时,在 Claude 处理之前 |41| `UserPromptSubmit` | 当你提交提示词时,在 Claude 处理之前 |


259定义 hook 的位置决定了其范围:259定义 hook 的位置决定了其范围:

260 260 

261| 位置 | 范围 | 可共享 |261| 位置 | 范围 | 可共享 |

262| :--------------------------------------------------- | :------------------------------------------------------------------------- | :-------------------------------- |262| :- | :- | :- |

263| `~/.claude/settings.json` | 所有项目 | 否,仅限本地计算机 |263| `~/.claude/settings.json` | 所有项目 | 否,仅限本地计算机 |

264| `.claude/settings.json` | 单个项目 | 是,可以提交到仓库 |264| `.claude/settings.json` | 单个项目 | 是,可以提交到仓库 |

265| `.claude/settings.local.json` | 单个项目 | 否,当 Claude Code 保存设置时被 gitignored |265| `.claude/settings.local.json` | 单个项目 | 否,当 Claude Code 保存设置时被 gitignored |


297`matcher` 字段过滤何时触发 hooks。匹配器的评估方式取决于它包含的字符:297`matcher` 字段过滤何时触发 hooks。匹配器的评估方式取决于它包含的字符:

298 298 

299| 匹配器值 | 评估为 | 示例 |299| 匹配器值 | 评估为 | 示例 |

300| :--------------------------- | :----------------------------------- | :-------------------------------------------------------------------------------- |300| :- | :- | :- |

301| `"*"`、`""` 或省略 | 匹配所有 | 在事件的每次出现时触发 |301| `"*"`、`""` 或省略 | 匹配所有 | 在事件的每次出现时触发 |

302| 仅字母、数字、`_`、`-`、空格、`,` 和 `\|` | 精确字符串或由 `\|` 或 `,` 分隔的精确字符串列表,可选周围空格 | `Bash` 仅匹配 Bash 工具;`Edit\|Write` 和 `Edit, Write` 各匹配任一工具;`code-reviewer` 仅匹配该代理类型 |302| 仅字母、数字、`_`、`-`、空格、`,` 和 `\|` | 精确字符串或由 `\|` 或 `,` 分隔的精确字符串列表,可选周围空格 | `Bash` 仅匹配 Bash 工具;`Edit\|Write` 和 `Edit, Write` 各匹配任一工具;`code-reviewer` 仅匹配该代理类型 |

303| 包含任何其他字符 | JavaScript 正则表达式,未锚定 | `^Notebook` 匹配任何名称以 `Notebook` 开头的工具;`mcp__memory__.*` 匹配来自 `memory` 服务器的每个工具 |303| 包含任何其他字符 | JavaScript 正则表达式,未锚定 | `^Notebook` 匹配任何名称以 `Notebook` 开头的工具;`mcp__memory__.*` 匹配来自 `memory` 服务器的每个工具 |


313每个事件类型在不同的字段上匹配:313每个事件类型在不同的字段上匹配:

314 314 

315| 事件 | 匹配器过滤的内容 | 示例匹配器值 |315| 事件 | 匹配器过滤的内容 | 示例匹配器值 |

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

317| `PreToolUse`、`PostToolUse`、`PostToolUseFailure`、`PermissionRequest`、`PermissionDenied` | 工具名称 | `Bash`、`Edit\|Write`、`mcp__.*` |317| `PreToolUse`、`PostToolUse`、`PostToolUseFailure`、`PermissionRequest`、`PermissionDenied` | 工具名称 | `Bash`、`Edit\|Write`、`mcp__.*` |

318| `SessionStart` | 会话如何启动 | `startup`、`resume`、`clear`、`compact`、`fork` |318| `SessionStart` | 会话如何启动 | `startup`、`resume`、`clear`、`compact`、`fork` |

319| `Setup` | 哪个 CLI 标志触发了设置 | `init`、`maintenance` |319| `Setup` | 哪个 CLI 标志触发了设置 | `init`、`maintenance` |


438这些字段适用于所有 hook 类型:438这些字段适用于所有 hook 类型:

439 439 

440| 字段 | 必需 | 描述 |440| 字段 | 必需 | 描述 |

441| :-------------- | :- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |441| :- | :- | :- |

442| `type` | 是 | `"command"`、`"http"`、`"mcp_tool"`、`"prompt"` 或 `"agent"` |442| `type` | 是 | `"command"`、`"http"`、`"mcp_tool"`、`"prompt"` 或 `"agent"` |

443| `if` | 否 | 权限规则语法来过滤此 hook 何时运行,如 `"Bash(git *)"` 或 `"Edit(*.ts)"`。hook 命令仅在工具调用与模式匹配时运行。有关 Bash 模式如何针对子命令、`$()` 和反引号评估的信息,请参阅下面的 [Bash 匹配表](#bash-if-matching)。仅在工具事件上评估:`PreToolUse`、`PostToolUse`、`PostToolUseFailure`、`PermissionRequest` 和 `PermissionDenied`。在其他事件上,设置了 `if` 的 hook 永远不会运行。使用与 [权限规则](/docs/zh-CN/permissions) 相同的语法 |443| `if` | 否 | 权限规则语法来过滤此 hook 何时运行,如 `"Bash(git *)"` 或 `"Edit(*.ts)"`。hook 命令仅在工具调用与模式匹配时运行。有关 Bash 模式如何针对子命令、`$()` 和反引号评估的信息,请参阅下面的 [Bash 匹配表](#bash-if-matching)。仅在工具事件上评估:`PreToolUse`、`PostToolUse`、`PostToolUseFailure`、`PermissionRequest` 和 `PermissionDenied`。在其他事件上,设置了 `if` 的 hook 永远不会运行。使用与 [权限规则](/docs/zh-CN/permissions) 相同的语法 |

444| `timeout` | 否 | 取消前的秒数。Claude Code 不在使用 [`async: true`](#run-hooks-in-the-background) 运行的命令 hook 上强制执行。默认值:`command`、`http` 和 `mcp_tool` 为 600;`prompt` 为 30;`agent` 为 60。Claude Code 在 [`UserPromptSubmit`](#userpromptsubmit)、[`PreModelSwitch`](#premodelswitch) 和 [`PostModelSwitch`](#postmodelswitch) 上将 `command`、`http` 和 `mcp_tool` 默认值降低到 30,在 [`MessageDisplay`](#messagedisplay) 上降低到 10。[`SessionEnd`](#sessionend) hooks 共享 1.5 秒的预算;如果设置设置了更长的每个 hook `timeout`,Claude Code 将预算提高到匹配,最多 60 秒 |444| `timeout` | 否 | 取消前的秒数。Claude Code 不在使用 [`async: true`](#run-hooks-in-the-background) 运行的命令 hook 上强制执行。默认值:`command`、`http` 和 `mcp_tool` 为 600;`prompt` 为 30;`agent` 为 60。Claude Code 在 [`UserPromptSubmit`](#userpromptsubmit)、[`PreModelSwitch`](#premodelswitch) 和 [`PostModelSwitch`](#postmodelswitch) 上将 `command`、`http` 和 `mcp_tool` 默认值降低到 30,在 [`MessageDisplay`](#messagedisplay) 上降低到 10。[`SessionEnd`](#sessionend) hooks 共享 1.5 秒的预算;如果设置设置了更长的每个 hook `timeout`,Claude Code 将预算提高到匹配,最多 60 秒 |


452<span id="bash-if-matching" />对于 Bash 模式,hook 命令是否运行取决于模式的形状和 Claude 调用的 Bash 命令。在匹配前剥离前导 `VAR=value` 赋值。452<span id="bash-if-matching" />对于 Bash 模式,hook 命令是否运行取决于模式的形状和 Claude 调用的 Bash 命令。在匹配前剥离前导 `VAR=value` 赋值。

453 453 

454| `if` 模式 | Bash 命令 | Hook 运行? | 为什么 |454| `if` 模式 | Bash 命令 | Hook 运行? | 为什么 |

455| :----------------- | :-------------------------- | :------- | :------------------------------------------- |455| :- | :- | :- | :- |

456| `Bash(git *)` | `FOO=bar git push` | 是 | 前导赋值被剥离;`git push` 匹配 |456| `Bash(git *)` | `FOO=bar git push` | 是 | 前导赋值被剥离;`git push` 匹配 |

457| `Bash(git *)` | `npm test && git push` | 是 | 每个子命令被检查;`git push` 匹配 |457| `Bash(git *)` | `npm test && git push` | 是 | 每个子命令被检查;`git push` 匹配 |

458| `Bash(rm *)` | `echo $(rm -rf /)` | 是 | `$()` 和反引号内的命令被检查;`rm -rf /` 匹配 |458| `Bash(rm *)` | `echo $(rm -rf /)` | 是 | `$()` 和反引号内的命令被检查;`rm -rf /` 匹配 |


470除了 [通用字段](#common-fields),命令 hooks 接受这些字段:470除了 [通用字段](#common-fields),命令 hooks 接受这些字段:

471 471 

472| 字段 | 必需 | 描述 |472| 字段 | 必需 | 描述 |

473| :------------ | :- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |473| :- | :- | :- |

474| `command` | 是 | 要执行的 shell 命令。使用 `args` 时,直接生成的可执行文件。请参阅 [Exec 形式和 shell 形式](#exec-form-and-shell-form) |474| `command` | 是 | 要执行的 shell 命令。使用 `args` 时,直接生成的可执行文件。请参阅 [Exec 形式和 shell 形式](#exec-form-and-shell-form) |

475| `args` | 否 | 参数列表。存在时,`command` 被解析为可执行文件并直接使用 `args` 作为参数向量生成,不涉及 shell。请参阅 [Exec 形式和 shell 形式](#exec-form-and-shell-form) |475| `args` | 否 | 参数列表。存在时,`command` 被解析为可执行文件并直接使用 `args` 作为参数向量生成,不涉及 shell。请参阅 [Exec 形式和 shell 形式](#exec-form-and-shell-form) |

476| `async` | 否 | 如果为 `true`,在后台运行而不阻止。请参阅 [在后台运行 hooks](#run-hooks-in-the-background) |476| `async` | 否 | 如果为 `true`,在后台运行而不阻止。请参阅 [在后台运行 hooks](#run-hooks-in-the-background) |


529除了 [通用字段](#common-fields),HTTP hooks 接受这些字段:529除了 [通用字段](#common-fields),HTTP hooks 接受这些字段:

530 530 

531| 字段 | 必需 | 描述 |531| 字段 | 必需 | 描述 |

532| :--------------- | :- | :-------------------------------------------------------------------------------------- |532| :- | :- | :- |

533| `url` | 是 | 发送 POST 请求的 URL |533| `url` | 是 | 发送 POST 请求的 URL |

534| `headers` | 否 | 其他 HTTP 标头作为键值对。值支持使用 `$VAR_NAME` 或 `${VAR_NAME}` 语法的环境变量插值。仅解析 `allowedEnvVars` 中列出的变量 |534| `headers` | 否 | 其他 HTTP 标头作为键值对。值支持使用 `$VAR_NAME` 或 `${VAR_NAME}` 语法的环境变量插值。仅解析 `allowedEnvVars` 中列出的变量 |

535| `allowedEnvVars` | 否 | 可能被插值到标头值中的环境变量名称列表。对未列出变量的引用被替换为空字符串。任何环境变量插值都需要 |535| `allowedEnvVars` | 否 | 可能被插值到标头值中的环境变量名称列表。对未列出变量的引用被替换为空字符串。任何环境变量插值都需要 |


570除了 [通用字段](#common-fields),MCP 工具 hooks 接受这些字段:570除了 [通用字段](#common-fields),MCP 工具 hooks 接受这些字段:

571 571 

572| 字段 | 必需 | 描述 |572| 字段 | 必需 | 描述 |

573| :------- | :- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |573| :- | :- | :- |

574| `server` | 是 | 配置的 MCP 服务器的名称。对于 [插件捆绑的服务器](/docs/zh-CN/mcp#plugin-provided-mcp-servers),这是范围名称 `plugin:<plugin-name>:<server-name>`,如 `plugin:my-plugin:db`,不是裸服务器密钥。服务器必须已连接;hook 永远不会触发 OAuth 或连接流 |574| `server` | 是 | 配置的 MCP 服务器的名称。对于 [插件捆绑的服务器](/docs/zh-CN/mcp#plugin-provided-mcp-servers),这是范围名称 `plugin:<plugin-name>:<server-name>`,如 `plugin:my-plugin:db`,不是裸服务器密钥。服务器必须已连接;hook 永远不会触发 OAuth 或连接流 |

575| `tool` | 是 | 在该服务器上调用的工具的名称 |575| `tool` | 是 | 在该服务器上调用的工具的名称 |

576| `input` | 否 | 传递给工具的参数。字符串值支持来自 hook 的 [JSON 输入](#hook-input-and-output) 的 `${path}` 替换,如 `"${tool_input.file_path}"` |576| `input` | 否 | 传递给工具的参数。字符串值支持来自 hook 的 [JSON 输入](#hook-input-and-output) 的 `${path}` 替换,如 `"${tool_input.file_path}"` |


634除了 [通用字段](#common-fields),提示和代理 hooks 接受这些字段:634除了 [通用字段](#common-fields),提示和代理 hooks 接受这些字段:

635 635 

636| 字段 | 必需 | 描述 |636| 字段 | 必需 | 描述 |

637| :------- | :- | :--------------------------------------------------------------------------------- |637| :- | :- | :- |

638| `prompt` | 是 | 发送给模型的提示文本。使用 `$ARGUMENTS` 作为 hook 输入 JSON 的占位符。用反斜杠转义以包含文字文本:`\$1.00` 呈现为 `$1.00` |638| `prompt` | 是 | 发送给模型的提示文本。使用 `$ARGUMENTS` 作为 hook 输入 JSON 的占位符。用反斜杠转义以包含文字文本:`\$1.00` 呈现为 `$1.00` |

639| `model` | 否 | 用于评估的模型。默认为快速模型 |639| `model` | 否 | 用于评估的模型。默认为快速模型 |

640 640 


786Hook 事件接收这些字段作为 JSON,除了每个 [hook 事件](#hook-events)部分中记录的事件特定字段。对于命令 hook,此 JSON 通过 stdin 到达。对于 HTTP hook,它作为 POST 请求体到达。786Hook 事件接收这些字段作为 JSON,除了每个 [hook 事件](#hook-events)部分中记录的事件特定字段。对于命令 hook,此 JSON 通过 stdin 到达。对于 HTTP hook,它作为 POST 请求体到达。

787 787 

788| 字段 | 描述 |788| 字段 | 描述 |

789| :---------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |789| :- | :- |

790| `session_id` | 当前会话标识符 |790| `session_id` | 当前会话标识符 |

791| `prompt_id` | 标识当前正在处理的用户提示的 UUID。与 [OpenTelemetry 事件上的 `prompt.id` 属性](/docs/zh-CN/monitoring-usage#event-correlation-attributes)匹配,因此您可以将 hook 输出与单个提示的遥测关联起来。在第一个用户输入之前不存在。需要 Claude Code v2.1.196 或更高版本 |791| `prompt_id` | 标识当前正在处理的用户提示的 UUID。与 [OpenTelemetry 事件上的 `prompt.id` 属性](/docs/zh-CN/monitoring-usage#event-correlation-attributes)匹配,因此您可以将 hook 输出与单个提示的遥测关联起来。在第一个用户输入之前不存在。需要 Claude Code v2.1.196 或更高版本 |

792| `transcript_path` | 对话 JSON 的路径。转录文件异步写入,可能滞后于内存中的对话,因此当 hook 触发时,它可能还不包括当前轮次的最新消息。需要当前轮次最终助手文本的 hook 应在 [Stop](#stop) 和 [SubagentStop](#subagentstop) 上使用 `last_assistant_message`,而不是读取转录 |792| `transcript_path` | 对话 JSON 的路径。转录文件异步写入,可能滞后于内存中的对话,因此当 hook 触发时,它可能还不包括当前轮次的最新消息。需要当前轮次最终助手文本的 hook 应在 [Stop](#stop) 和 [SubagentStop](#subagentstop) 上使用 `last_assistant_message`,而不是读取转录 |


799使用 `--agent` 运行或在 subagent 内部时,包括两个额外字段:799使用 `--agent` 运行或在 subagent 内部时,包括两个额外字段:

800 800 

801| 字段 | 描述 |801| 字段 | 描述 |

802| :----------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |802| :- | :- |

803| `agent_id` | subagent 的唯一标识符。仅当 hook 在 subagent 调用内触发时存在。使用此来区分 subagent hook 调用和主线程调用。 |803| `agent_id` | subagent 的唯一标识符。仅当 hook 在 subagent 调用内触发时存在。使用此来区分 subagent hook 调用和主线程调用。 |

804| `agent_type` | Agent 名称(例如,`"Explore"` 或 `"security-reviewer"`)。当会话使用 `--agent` 或 hook 在 subagent 内触发时存在。对于 subagent,subagent 的类型优先于会话的 `--agent` 值。请参阅 [SubagentStart](#subagentstart) 了解自定义和插件 subagent 报告的值以及如何针对插件范围的名称编写匹配器。 |804| `agent_type` | Agent 名称(例如,`"Explore"` 或 `"security-reviewer"`)。当会话使用 `--agent` 或 hook 在 subagent 内触发时存在。对于 subagent,subagent 的类型优先于会话的 `--agent` 值。请参阅 [SubagentStart](#subagentstart) 了解自定义和插件 subagent 报告的值以及如何针对插件范围的名称编写匹配器。 |

805 805 


926退出代码 2 是 hook 发出"停止,不要这样做"信号的方式。效果取决于事件,因为某些事件代表可以被阻止的操作(如尚未发生的工具调用),而其他事件代表已经发生或无法防止的事情。926退出代码 2 是 hook 发出"停止,不要这样做"信号的方式。效果取决于事件,因为某些事件代表可以被阻止的操作(如尚未发生的工具调用),而其他事件代表已经发生或无法防止的事情。

927 927 

928| Hook 事件 | 可以阻止? | 退出 2 时发生什么 |928| Hook 事件 | 可以阻止? | 退出 2 时发生什么 |

929| :-------------------- | :---- | :---------------------------------------------------------------------------------------------------------------------------------------------------- |929| :- | :- | :- |

930| `PreToolUse` | 是 | 阻止工具调用 |930| `PreToolUse` | 是 | 阻止工具调用 |

931| `PermissionRequest` | 否 | 此事件不接受退出代码 2,权限流程保持不变。改为通过 [`decision` 对象](#permissionrequest-decision-control)拒绝 |931| `PermissionRequest` | 否 | 此事件不接受退出代码 2,权限流程保持不变。改为通过 [`decision` 对象](#permissionrequest-decision-control)拒绝 |

932| `UserPromptSubmit` | 是 | 阻止提示处理并删除提示 |932| `UserPromptSubmit` | 是 | 阻止提示处理并删除提示 |


1003* **`hookSpecificOutput`** 是需要更丰富控制的事件的嵌套对象。它需要一个 `hookEventName` 字段设置为事件名称。1003* **`hookSpecificOutput`** 是需要更丰富控制的事件的嵌套对象。它需要一个 `hookEventName` 字段设置为事件名称。

1004 1004 

1005| 字段 | 默认 | 描述 |1005| 字段 | 默认 | 描述 |

1006| :----------------- | :------ | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |1006| :- | :- | :- |

1007| `continue` | `true` | 如果 `false`,Claude 在 hook 运行后完全停止处理。优先于任何事件特定的决策字段 |1007| `continue` | `true` | 如果 `false`,Claude 在 hook 运行后完全停止处理。优先于任何事件特定的决策字段 |

1008| `stopReason` | 无 | 当 `continue` 为 `false` 时向用户显示的消息。它保留在对话中,因此如果对话继续,Claude 会看到它 |1008| `stopReason` | 无 | 当 `continue` 为 `false` 时向用户显示的消息。它保留在对话中,因此如果对话继续,Claude 会看到它 |

1009| `suppressOutput` | `false` | 无效果:Claude Code 接受字段但不作用。成功的 hook 的 stdout 从不在转录中显示,并在调试日志中记录 |1009| `suppressOutput` | `false` | 无效果:Claude Code 接受字段但不作用。成功的 hook 的 stdout 从不在转录中显示,并在调试日志中记录 |


1101并非每个事件都支持通过 JSON 阻止或控制行为。支持的事件各自使用不同的字段集来表达该决策。在编写 hook 之前,使用此表作为快速参考:1101并非每个事件都支持通过 JSON 阻止或控制行为。支持的事件各自使用不同的字段集来表达该决策。在编写 hook 之前,使用此表作为快速参考:

1102 1102 

1103| 事件 | 决策模式 | 关键字段 |1103| 事件 | 决策模式 | 关键字段 |

1104| :-------------------------------------------------------------------------------------------------------------------------- | :---------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |1104| :- | :- | :- |

1105| UserPromptSubmit、UserPromptExpansion、PostToolUse、PostToolUseFailure、PostToolBatch、Stop、SubagentStop、ConfigChange、PreCompact | 顶级 `decision` | `decision: "block"`、`reason`。Stop 和 SubagentStop 也接受 `hookSpecificOutput.additionalContext` 用于[继续对话的非错误反馈](#stop-decision-control) |1105| UserPromptSubmit、UserPromptExpansion、PostToolUse、PostToolUseFailure、PostToolBatch、Stop、SubagentStop、ConfigChange、PreCompact | 顶级 `decision` | `decision: "block"`、`reason`。Stop 和 SubagentStop 也接受 `hookSpecificOutput.additionalContext` 用于[继续对话的非错误反馈](#stop-decision-control) |

1106| TeammateIdle、TaskCompleted | 退出代码或 `continue: false` | 退出代码 2 用 stderr 反馈阻止操作。JSON `{"continue": false, "stopReason": "..."}` 也完全停止队友,匹配 `Stop` hook 行为;[TaskCompleted 在 `TaskUpdate` 工具触发事件时忽略它](#taskcompleted-decision-control) |1106| TeammateIdle、TaskCompleted | 退出代码或 `continue: false` | 退出代码 2 用 stderr 反馈阻止操作。JSON `{"continue": false, "stopReason": "..."}` 也完全停止队友,匹配 `Stop` hook 行为;[TaskCompleted 在 `TaskUpdate` 工具触发事件时忽略它](#taskcompleted-decision-control) |

1107| TaskCreated | 退出代码或顶级 `decision` | 退出代码 2 或 `decision: "block"` [取消任务](#taskcreated-decision-control)并将消息返回给 Claude。`continue: false` 被忽略 |1107| TaskCreated | 退出代码或顶级 `decision` | 退出代码 2 或 `decision: "block"` [取消任务](#taskcreated-decision-control)并将消息返回给 Claude。`continue: false` 被忽略 |


1192匹配器值对应于会话的启动方式:1192匹配器值对应于会话的启动方式:

1193 1193 

1194| 匹配器 | 何时触发 |1194| 匹配器 | 何时触发 |

1195| :-------- | :------------------------------------------------------------------------------- |1195| :- | :- |

1196| `startup` | 新会话 |1196| `startup` | 新会话 |

1197| `resume` | `--resume`、`--continue` 或 `/resume` |1197| `resume` | `--resume`、`--continue` 或 `/resume` |

1198| `clear` | `/clear` |1198| `clear` | `/clear` |


1216除了 [常见输入字段](#common-input-fields) 外,SessionStart hooks 还接收 `source` 和可选的 `model`、`agent_type` 和 `session_title`:1216除了 [常见输入字段](#common-input-fields) 外,SessionStart hooks 还接收 `source` 和可选的 `model`、`agent_type` 和 `session_title`:

1217 1217 

1218| 字段 | 描述 |1218| 字段 | 描述 |

1219| :-------------- | :------------------------------------------------------------------------------------------------------ |1219| :- | :- |

1220| `source` | 会话如何启动:新会话为 `"startup"`、恢复的会话为 `"resume"`、`/clear` 后为 `"clear"`、压缩后为 `"compact"`,或从现有会话分叉的新会话为 `"fork"` |1220| `source` | 会话如何启动:新会话为 `"startup"`、恢复的会话为 `"resume"`、`/clear` 后为 `"clear"`、压缩后为 `"compact"`,或从现有会话分叉的新会话为 `"fork"` |

1221| `model` | 活跃的模型标识符。它可以被省略,例如在 `/clear` 后或通过对话恢复恢复会话时,因此在读取它之前检查该字段 |1221| `model` | 活跃的模型标识符。它可以被省略,例如在 `/clear` 后或通过对话恢复恢复会话时,因此在读取它之前检查该字段 |

1222| `agent_type` | agent 名称,当您使用 `claude --agent <name>` 启动 Claude Code 时出现 |1222| `agent_type` | agent 名称,当您使用 `claude --agent <name>` 启动 Claude Code 时出现 |


1225当 `source` 为 `"resume"` 或 `"fork"` 且成绩单包含至少一个来自 Claude 的响应时,SessionStart hooks 还接收下面的四个字段。您的 hook 可以使用它们在第一个请求之前报告恢复陈旧对话的成本,例如在 [`systemMessage`](#json-output) 中。这些字段需要 Claude Code v2.1.251 或更高版本。1225当 `source` 为 `"resume"` 或 `"fork"` 且成绩单包含至少一个来自 Claude 的响应时,SessionStart hooks 还接收下面的四个字段。您的 hook 可以使用它们在第一个请求之前报告恢复陈旧对话的成本,例如在 [`systemMessage`](#json-output) 中。这些字段需要 Claude Code v2.1.251 或更高版本。

1226 1226 

1227| 字段 | 描述 |1227| 字段 | 描述 |

1228| :---------------------------- | :--------------------------------------------------------------------------------------------- |1228| :- | :- |

1229| `seconds_since_last_response` | 自恢复成绩单中最后一个响应以来的挂钟秒数 |1229| `seconds_since_last_response` | 自恢复成绩单中最后一个响应以来的挂钟秒数 |

1230| `context_tokens` | 恢复会话的第一个请求作为其提示重新发送的令牌 |1230| `context_tokens` | 恢复会话的第一个请求作为其提示重新发送的令牌 |

1231| `prompt_cache_likely_expired` | 当最后一个响应早于会话的 [prompt cache 生命周期](/docs/zh-CN/prompt-caching#cache-lifetime) 或更晚的压缩替换了缓存的对话时为 `true` |1231| `prompt_cache_likely_expired` | 当最后一个响应早于会话的 [prompt cache 生命周期](/docs/zh-CN/prompt-caching#cache-lifetime) 或更晚的压缩替换了缓存的对话时为 `true` |


1255Claude Code 将它 [视为纯文本](#exit-code-0) 的 stdout 添加到 Claude 的上下文中。除了所有 hooks 可用的 [JSON 输出字段](#json-output) 外,您还可以返回这些事件特定的字段:1255Claude Code 将它 [视为纯文本](#exit-code-0) 的 stdout 添加到 Claude 的上下文中。除了所有 hooks 可用的 [JSON 输出字段](#json-output) 外,您还可以返回这些事件特定的字段:

1256 1256 

1257| 字段 | 描述 |1257| 字段 | 描述 |

1258| :------------------- | :------------------------------------------------------------------------------------------------------------------------------------------- |1258| :- | :- |

1259| `additionalContext` | 在对话开始时添加到 Claude 上下文的字符串,在第一个提示之前。有关文本如何传递以及放入其中的内容,请参阅 [为 Claude 添加上下文](#add-context-for-claude) |1259| `additionalContext` | 在对话开始时添加到 Claude 上下文的字符串,在第一个提示之前。有关文本如何传递以及放入其中的内容,请参阅 [为 Claude 添加上下文](#add-context-for-claude) |

1260| `initialUserMessage` | 用作会话第一个用户消息的字符串。适用于 [非交互模式](/docs/zh-CN/headless),带有 `-p` 标志,即使未提供提示,它也成为第一个回合。如果提供了提示,它作为下一个回合跟随。与 `additionalContext` 不同,后者附加到现有回合,这会创建回合 |1260| `initialUserMessage` | 用作会话第一个用户消息的字符串。适用于 [非交互模式](/docs/zh-CN/headless),带有 `-p` 标志,即使未提供提示,它也成为第一个回合。如果提供了提示,它作为下一个回合跟随。与 `additionalContext` 不同,后者附加到现有回合,这会创建回合 |

1261| `sessionTitle` | 设置会话标题,与 `/rename` 效果相同。用于从启动文件夹、git 分支或 worktree 名称自动命名会话。当 `source` 为 `"startup"`、`"resume"` 或 `"fork"` 时适用;在 `"clear"` 和 `"compact"` 上被忽略 |1261| `sessionTitle` | 设置会话标题,与 `/rename` 效果相同。用于从启动文件夹、git 分支或 worktree 名称自动命名会话。当 `source` 为 `"startup"`、`"resume"` 或 `"fork"` 时适用;在 `"clear"` 和 `"compact"` 上被忽略 |


1339匹配器值对应于触发 hook 的 CLI 标志:1339匹配器值对应于触发 hook 的 CLI 标志:

1340 1340 

1341| 匹配器 | 何时触发 |1341| 匹配器 | 何时触发 |

1342| :------------ | :---------------------------------------- |1342| :- | :- |

1343| `init` | `claude --init-only` 或 `claude -p --init` |1343| `init` | `claude --init-only` 或 `claude -p --init` |

1344| `maintenance` | `claude -p --maintenance` |1344| `maintenance` | `claude -p --maintenance` |

1345 1345 


1392除了 [常见输入字段](#common-input-fields) 外,InstructionsLoaded hooks 接收这些字段:1392除了 [常见输入字段](#common-input-fields) 外,InstructionsLoaded hooks 接收这些字段:

1393 1393 

1394| 字段 | 描述 |1394| 字段 | 描述 |

1395| :------------------ | :-------------------------------------------------------------------------------------------------------------------------- |1395| :- | :- |

1396| `file_path` | 加载的指令文件的绝对路径 |1396| `file_path` | 加载的指令文件的绝对路径 |

1397| `memory_type` | 文件的范围:`"User"`、`"Project"`、`"Local"` 或 `"Managed"` |1397| `memory_type` | 文件的范围:`"User"`、`"Project"`、`"Local"` 或 `"Managed"` |

1398| `load_reason` | 文件加载的原因:`"session_start"`、`"nested_traversal"`、`"path_glob_match"`、`"include"` 或 `"compact"`。`"compact"` 值在压缩事件后重新加载指令文件时触发 |1398| `load_reason` | 文件加载的原因:`"session_start"`、`"nested_traversal"`、`"path_glob_match"`、`"include"` 或 `"compact"`。`"compact"` 值在压缩事件后重新加载指令文件时触发 |


1463要阻止提示,返回一个 `decision` 设置为 `"block"` 的 JSON 对象:1463要阻止提示,返回一个 `decision` 设置为 `"block"` 的 JSON 对象:

1464 1464 

1465| 字段 | 描述 |1465| 字段 | 描述 |

1466| :----------------------- | :------------------------------------------------------------------------------ |1466| :- | :- |

1467| `decision` | `"block"` 防止提示被处理并从上下文中删除它。省略以允许提示继续 |1467| `decision` | `"block"` 防止提示被处理并从上下文中删除它。省略以允许提示继续 |

1468| `reason` | 当 `decision` 为 `"block"` 时显示给用户。不添加到上下文 |1468| `reason` | 当 `decision` 为 `"block"` 时显示给用户。不添加到上下文 |

1469| `additionalContext` | 与提交的提示一起添加到 Claude 上下文的字符串。有关详细信息,请参阅 [为 Claude 添加上下文](#add-context-for-claude) |1469| `additionalContext` | 与提交的提示一起添加到 Claude 上下文的字符串。有关详细信息,请参阅 [为 Claude 添加上下文](#add-context-for-claude) |


1522`UserPromptExpansion` hooks 可以阻止扩展或添加上下文。所有 [JSON 输出字段](#json-output) 都可用。1522`UserPromptExpansion` hooks 可以阻止扩展或添加上下文。所有 [JSON 输出字段](#json-output) 都可用。

1523 1523 

1524| 字段 | 描述 |1524| 字段 | 描述 |

1525| :------------------ | :------------------------------------------------------------------------------ |1525| :- | :- |

1526| `decision` | `"block"` 防止命令扩展。省略以允许它继续 |1526| `decision` | `"block"` 防止命令扩展。省略以允许它继续 |

1527| `reason` | 当 `decision` 为 `"block"` 时显示给用户 |1527| `reason` | 当 `decision` 为 `"block"` 时显示给用户 |

1528| `additionalContext` | 与扩展的提示一起添加到 Claude 上下文的字符串。有关详细信息,请参阅 [为 Claude 添加上下文](#add-context-for-claude) |1528| `additionalContext` | 与扩展的提示一起添加到 Claude 上下文的字符串。有关详细信息,请参阅 [为 Claude 添加上下文](#add-context-for-claude) |


1567除了 [常见输入字段](#common-input-fields) 外,MessageDisplay hooks 接收回合和消息的标识符、此调用在消息中的位置以及 `delta` 中的新文本。批次边界取决于文本如何流式传输,因此使用 `index` 和 `final` 来跟踪通过消息的进度,而不是期望行以特定方式分组。1567除了 [常见输入字段](#common-input-fields) 外,MessageDisplay hooks 接收回合和消息的标识符、此调用在消息中的位置以及 `delta` 中的新文本。批次边界取决于文本如何流式传输,因此使用 `index` 和 `final` 来跟踪通过消息的进度,而不是期望行以特定方式分组。

1568 1568 

1569| 字段 | 描述 |1569| 字段 | 描述 |

1570| :----------- | :------------------------------------------------------------------------------------------------------------------------------------------------------ |1570| :- | :- |

1571| `turn_id` | 当前回合的 UUID |1571| `turn_id` | 当前回合的 UUID |

1572| `message_id` | 正在显示的助手消息的 UUID。在同一消息的每个批次中稳定。这不是 API `msg_…` id,因此无法与成绩单消息 id 关联 |1572| `message_id` | 正在显示的助手消息的 UUID。在同一消息的每个批次中稳定。这不是 API `msg_…` id,因此无法与成绩单消息 id 关联 |

1573| `index` | 此批次在消息中的零基索引 |1573| `index` | 此批次在消息中的零基索引 |


1595除了所有 hooks 可用的 [JSON 输出字段](#json-output) 外,MessageDisplay hooks 可以返回 `displayContent` 来替换屏幕上的 delta:1595除了所有 hooks 可用的 [JSON 输出字段](#json-output) 外,MessageDisplay hooks 可以返回 `displayContent` 来替换屏幕上的 delta:

1596 1596 

1597| 字段 | 描述 |1597| 字段 | 描述 |

1598| :--------------- | :----------------------- |1598| :- | :- |

1599| `displayContent` | 显示代替 delta 的文本。省略以显示原始文本 |1599| `displayContent` | 显示代替 delta 的文本。省略以显示原始文本 |

1600 1600 

1601MessageDisplay hooks 没有决策控制。它们无法阻止消息或更改成绩单中存储或发送给 Claude 的内容。Claude Code 从其 JSON 输出中作用于 `displayContent` 并丢弃 `systemMessage` 和 `continue`。1601MessageDisplay hooks 没有决策控制。它们无法阻止消息或更改成绩单中存储或发送给 Claude 的内容。Claude Code 从其 JSON 输出中作用于 `displayContent` 并丢弃 `systemMessage` 和 `continue`。


1736执行 shell 命令。1736执行 shell 命令。

1737 1737 

1738| 字段 | 类型 | 示例 | 描述 |1738| 字段 | 类型 | 示例 | 描述 |

1739| :------------------ | :------ | :----------------- | :--------------------------------------------------------------------------- |1739| :- | :- | :- | :- |

1740| `command` | string | `"npm test"` | 要执行的 shell 命令 |1740| `command` | string | `"npm test"` | 要执行的 shell 命令 |

1741| `description` | string | `"Run test suite"` | 命令执行操作的可选描述 |1741| `description` | string | `"Run test suite"` | 命令执行操作的可选描述 |

1742| `timeout` | number | `120000` | 可选超时(毫秒)。超过 [最大值](/docs/zh-CN/tools-reference#bash-tool-behavior) 的值被减少到最大值而不是被拒绝 |1742| `timeout` | number | `120000` | 可选超时(毫秒)。超过 [最大值](/docs/zh-CN/tools-reference#bash-tool-behavior) 的值被减少到最大值而不是被拒绝 |


1753`changedFiles` 和 `files` 列出命令更改的内容;其余字段说明该列表的完整性和可靠性。1753`changedFiles` 和 `files` 列出命令更改的内容;其余字段说明该列表的完整性和可靠性。

1754 1754 

1755| 字段 | 类型 | 示例 | 描述 |1755| 字段 | 类型 | 示例 | 描述 |

1756| :------------- | :------ | :------------------------------------------------------ | :---------------------------------------------------------------------- |1756| :- | :- | :- | :- |

1757| `changedFiles` | array | `["/path/to/src/app.ts"]` | 命令更改的文件的绝对路径,最多 200 个。每当 `files` 保持 diff 或 `moreFiles` 高于零时出现 |1757| `changedFiles` | array | `["/path/to/src/app.ts"]` | 命令更改的文件的绝对路径,最多 200 个。每当 `files` 保持 diff 或 `moreFiles` 高于零时出现 |

1758| `files` | array | `[{"filePath": "/path/to/src/app.ts", "hunks": [...]}]` | 最多 5 个更改文件的 diffs,用于显示。对于命令添加或删除的文件,`created` 或 `deleted` 为 `true` |1758| `files` | array | `[{"filePath": "/path/to/src/app.ts", "hunks": [...]}]` | 最多 5 个更改文件的 diffs,用于显示。对于命令添加或删除的文件,`created` 或 `deleted` 为 `true` |

1759| `moreFiles` | number | `2` | 在 `files` 中没有 diff 的更改文件的计数 |1759| `moreFiles` | number | `2` | 在 `files` 中没有 diff 的更改文件的计数 |


1772字段与 Bash 工具匹配,命令字符串在 `command` 中:1772字段与 Bash 工具匹配,命令字符串在 `command` 中:

1773 1773 

1774| 字段 | 类型 | 示例 | 描述 |1774| 字段 | 类型 | 示例 | 描述 |

1775| :------------------ | :------ | :------------------------- | :----------------- |1775| :- | :- | :- | :- |

1776| `command` | string | `"Get-ChildItem -Recurse"` | 要执行的 PowerShell 命令 |1776| `command` | string | `"Get-ChildItem -Recurse"` | 要执行的 PowerShell 命令 |

1777| `description` | string | `"List files recursively"` | 命令执行操作的可选描述 |1777| `description` | string | `"List files recursively"` | 命令执行操作的可选描述 |

1778| `timeout` | number | `120000` | 可选超时(毫秒) |1778| `timeout` | number | `120000` | 可选超时(毫秒) |


1791创建或覆盖文件。1791创建或覆盖文件。

1792 1792 

1793| 字段 | 类型 | 示例 | 描述 |1793| 字段 | 类型 | 示例 | 描述 |

1794| :---------- | :----- | :-------------------- | :---------- |1794| :- | :- | :- | :- |

1795| `file_path` | string | `"/path/to/file.txt"` | 要写入的文件的绝对路径 |1795| `file_path` | string | `"/path/to/file.txt"` | 要写入的文件的绝对路径 |

1796| `content` | string | `"file content"` | 要写入文件的内容 |1796| `content` | string | `"file content"` | 要写入文件的内容 |

1797 1797 


1802替换现有文件中的字符串。1802替换现有文件中的字符串。

1803 1803 

1804| 字段 | 类型 | 示例 | 描述 |1804| 字段 | 类型 | 示例 | 描述 |

1805| :------------ | :------ | :-------------------- | :---------- |1805| :- | :- | :- | :- |

1806| `file_path` | string | `"/path/to/file.txt"` | 要编辑的文件的绝对路径 |1806| `file_path` | string | `"/path/to/file.txt"` | 要编辑的文件的绝对路径 |

1807| `old_string` | string | `"original text"` | 要查找和替换的文本 |1807| `old_string` | string | `"original text"` | 要查找和替换的文本 |

1808| `new_string` | string | `"replacement text"` | 替换文本 |1808| `new_string` | string | `"replacement text"` | 替换文本 |


1815读取文件内容。1815读取文件内容。

1816 1816 

1817| 字段 | 类型 | 示例 | 描述 |1817| 字段 | 类型 | 示例 | 描述 |

1818| :---------- | :----- | :-------------------- | :---------- |1818| :- | :- | :- | :- |

1819| `file_path` | string | `"/path/to/file.txt"` | 要读取的文件的绝对路径 |1819| `file_path` | string | `"/path/to/file.txt"` | 要读取的文件的绝对路径 |

1820| `offset` | number | `10` | 可选行号以开始读取 |1820| `offset` | number | `10` | 可选行号以开始读取 |

1821| `limit` | number | `50` | 可选要读取的行数 |1821| `limit` | number | `50` | 可选要读取的行数 |


1827查找与 glob 模式匹配的文件。1827查找与 glob 模式匹配的文件。

1828 1828 

1829| 字段 | 类型 | 示例 | 描述 |1829| 字段 | 类型 | 示例 | 描述 |

1830| :-------- | :----- | :--------------- | :----------------- |1830| :- | :- | :- | :- |

1831| `pattern` | string | `"**/*.ts"` | 要匹配文件的 glob 模式 |1831| `pattern` | string | `"**/*.ts"` | 要匹配文件的 glob 模式 |

1832| `path` | string | `"/path/to/dir"` | 可选要搜索的目录。默认为当前工作目录 |1832| `path` | string | `"/path/to/dir"` | 可选要搜索的目录。默认为当前工作目录 |

1833 1833 


1838使用正则表达式搜索文件内容。1838使用正则表达式搜索文件内容。

1839 1839 

1840| 字段 | 类型 | 示例 | 描述 |1840| 字段 | 类型 | 示例 | 描述 |

1841| :------------ | :------ | :--------------- | :------------------------------------------------------------------------ |1841| :- | :- | :- | :- |

1842| `pattern` | string | `"TODO.*fix"` | 要搜索的正则表达式模式 |1842| `pattern` | string | `"TODO.*fix"` | 要搜索的正则表达式模式 |

1843| `path` | string | `"/path/to/dir"` | 可选要搜索的文件或目录 |1843| `path` | string | `"/path/to/dir"` | 可选要搜索的文件或目录 |

1844| `glob` | string | `"*.ts"` | 可选 glob 模式以过滤文件 |1844| `glob` | string | `"*.ts"` | 可选 glob 模式以过滤文件 |


1853获取和处理网络内容。1853获取和处理网络内容。

1854 1854 

1855| 字段 | 类型 | 示例 | 描述 |1855| 字段 | 类型 | 示例 | 描述 |

1856| :------- | :----- | :---------------------------- | :----------- |1856| :- | :- | :- | :- |

1857| `url` | string | `"https://example.com/api"` | 要从中获取内容的 URL |1857| `url` | string | `"https://example.com/api"` | 要从中获取内容的 URL |

1858| `prompt` | string | `"Extract the API endpoints"` | 在获取的内容上运行的提示 |1858| `prompt` | string | `"Extract the API endpoints"` | 在获取的内容上运行的提示 |

1859 1859 


1864搜索网络。1864搜索网络。

1865 1865 

1866| 字段 | 类型 | 示例 | 描述 |1866| 字段 | 类型 | 示例 | 描述 |

1867| :---------------- | :----- | :----------------------------- | :------------- |1867| :- | :- | :- | :- |

1868| `query` | string | `"react hooks best practices"` | 搜索查询 |1868| `query` | string | `"react hooks best practices"` | 搜索查询 |

1869| `allowed_domains` | array | `["docs.example.com"]` | 可选:仅包含来自这些域的结果 |1869| `allowed_domains` | array | `["docs.example.com"]` | 可选:仅包含来自这些域的结果 |

1870| `blocked_domains` | array | `["spam.example.com"]` | 可选:排除来自这些域的结果 |1870| `blocked_domains` | array | `["spam.example.com"]` | 可选:排除来自这些域的结果 |


1876生成 [子代理](/docs/zh-CN/sub-agents)。1876生成 [子代理](/docs/zh-CN/sub-agents)。

1877 1877 

1878| 字段 | 类型 | 示例 | 描述 |1878| 字段 | 类型 | 示例 | 描述 |

1879| :-------------- | :----- | :------------------------- | :-------------- |1879| :- | :- | :- | :- |

1880| `prompt` | string | `"Find all API endpoints"` | agent 要执行的任务 |1880| `prompt` | string | `"Find all API endpoints"` | agent 要执行的任务 |

1881| `description` | string | `"Find API endpoints"` | 任务的简短描述 |1881| `description` | string | `"Find API endpoints"` | 任务的简短描述 |

1882| `subagent_type` | string | `"Explore"` | 要使用的专门 agent 类型 |1882| `subagent_type` | string | `"Explore"` | 要使用的专门 agent 类型 |


1885当前台 Agent 调用完成时,您的 [PostToolUse hook](#posttooluse) 在 `tool_response` 中接收子代理的结果和运行遥测。读取这些字段以检查运行;对于跨子代理的令牌和成本汇总,使用 [令牌和成本计数器](/docs/zh-CN/monitoring-usage#token-counter) 过滤到 `query_source` `"subagent"`,因为 `totalTokens` 和 `usage` 仅涵盖最终请求:1885当前台 Agent 调用完成时,您的 [PostToolUse hook](#posttooluse) 在 `tool_response` 中接收子代理的结果和运行遥测。读取这些字段以检查运行;对于跨子代理的令牌和成本汇总,使用 [令牌和成本计数器](/docs/zh-CN/monitoring-usage#token-counter) 过滤到 `query_source` `"subagent"`,因为 `totalTokens` 和 `usage` 仅涵盖最终请求:

1886 1886 

1887| 字段 | 类型 | 示例 | 描述 |1887| 字段 | 类型 | 示例 | 描述 |

1888| :------------------ | :----- | :---------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------- |1888| :- | :- | :- | :- |

1889| `status` | string | `"completed"` | 前台子代理为 `"completed"`,后台子代理为 `"async_launched"`。从 v2.1.198 起,子代理默认在后台运行,因此省略的 `run_in_background` 也产生 `"async_launched"` |1889| `status` | string | `"completed"` | 前台子代理为 `"completed"`,后台子代理为 `"async_launched"`。从 v2.1.198 起,子代理默认在后台运行,因此省略的 `run_in_background` 也产生 `"async_launched"` |

1890| `agentId` | string | `"a4d2c8f1e0b3a297"` | 子代理运行的标识符 |1890| `agentId` | string | `"a4d2c8f1e0b3a297"` | 子代理运行的标识符 |

1891| `content` | array | `[{"type": "text", "text": "Found 12 endpoints..."}]` | 子代理的最终文本块,或对于其报告通过 `SubagentHandback` 的子代理,关于该交接的简短说明代替 |1891| `content` | array | `[{"type": "text", "text": "Found 12 endpoints..."}]` | 子代理的最终文本块,或对于其报告通过 `SubagentHandback` 的子代理,关于该交接的简短说明代替 |


1911向用户提出一到四个多选题。1911向用户提出一到四个多选题。

1912 1912 

1913| 字段 | 类型 | 示例 | 描述 |1913| 字段 | 类型 | 示例 | 描述 |

1914| :---------- | :----- | :----------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------- |1914| :- | :- | :- | :- |

1915| `questions` | array | `[{"question": "Which framework?", "header": "Framework", "options": [{"label": "React"}], "multiSelect": false}]` | 要呈现的问题,每个都有 `question` 字符串、简短 `header`、`options` 数组和可选 `multiSelect` 标志 |1915| `questions` | array | `[{"question": "Which framework?", "header": "Framework", "options": [{"label": "React"}], "multiSelect": false}]` | 要呈现的问题,每个都有 `question` 字符串、简短 `header`、`options` 数组和可选 `multiSelect` 标志 |

1916| `answers` | object | `{"Which framework?": "React"}` | 可选。将问题文本映射到选定的选项标签。多选答案用逗号连接标签。Claude 不设置此字段;通过 `updatedInput` 提供它以以编程方式回答 |1916| `answers` | object | `{"Which framework?": "React"}` | 可选。将问题文本映射到选定的选项标签。多选答案用逗号连接标签。Claude 不设置此字段;通过 `updatedInput` 提供它以以编程方式回答 |

1917 1917 


1922呈现计划并要求用户在 Claude 离开 [plan mode](/docs/zh-CN/permission-modes#analyze-before-you-edit-with-plan-mode) 之前批准它。Claude 在调用工具之前将计划写入磁盘上的文件,因此来自模型的文字 `tool_input` 通常为空。Claude Code 在将输入传递给 hooks 之前注入计划内容和文件路径。1922呈现计划并要求用户在 Claude 离开 [plan mode](/docs/zh-CN/permission-modes#analyze-before-you-edit-with-plan-mode) 之前批准它。Claude 在调用工具之前将计划写入磁盘上的文件,因此来自模型的文字 `tool_input` 通常为空。Claude Code 在将输入传递给 hooks 之前注入计划内容和文件路径。

1923 1923 

1924| 字段 | 类型 | 示例 | 描述 |1924| 字段 | 类型 | 示例 | 描述 |

1925| :--------------- | :----- | :------------------------------------------ | :---------------------------------------------------------------- |1925| :- | :- | :- | :- |

1926| `plan` | string | `"## Refactor auth\n1. Extract..."` | Markdown 中的计划内容。从磁盘上的计划文件注入 |1926| `plan` | string | `"## Refactor auth\n1. Extract..."` | Markdown 中的计划内容。从磁盘上的计划文件注入 |

1927| `planFilePath` | string | `"/Users/.../plans/refactor-auth.md"` | 计划文件的路径。注入 |1927| `planFilePath` | string | `"/Users/.../plans/refactor-auth.md"` | 计划文件的路径。注入 |

1928| `allowedPrompts` | array | `[{"tool": "Bash", "prompt": "run tests"}]` | 已弃用。Claude Code 接受该字段但忽略它。在 v2.1.205 之前,它携带 Claude 请求实现计划的基于提示的权限 |1928| `allowedPrompts` | array | `[{"tool": "Bash", "prompt": "run tests"}]` | 已弃用。Claude Code 接受该字段但忽略它。在 v2.1.205 之前,它携带 Claude 请求实现计划的基于提示的权限 |


1936`PreToolUse` hooks 可以控制工具调用是否继续。与使用顶级 `decision` 字段的其他 hooks 不同,PreToolUse 在 `hookSpecificOutput` 对象内返回其决策。这给了它更丰富的控制:四个结果(允许、拒绝、询问或延迟)加上在执行前修改工具输入的能力。1936`PreToolUse` hooks 可以控制工具调用是否继续。与使用顶级 `decision` 字段的其他 hooks 不同,PreToolUse 在 `hookSpecificOutput` 对象内返回其决策。这给了它更丰富的控制:四个结果(允许、拒绝、询问或延迟)加上在执行前修改工具输入的能力。

1937 1937 

1938| 字段 | 描述 |1938| 字段 | 描述 |

1939| :------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |1939| :- | :- |

1940| `permissionDecision` | `"allow"` 跳过权限提示,除了 [任何模式自动批准的操作](/docs/zh-CN/permission-modes#actions-no-mode-auto-approves) 和对于 `AskUserQuestion` 和 `ExitPlanMode`,它们需要 [`updatedInput` 与其配对](#allow-with-updatedinput)。`"deny"` 防止工具调用。`"ask"` 提示用户确认。`"defer"` 优雅地退出,以便稍后可以恢复工具。[拒绝和询问规则](/docs/zh-CN/permissions#manage-permissions) 仍然被评估,无论 hook 返回什么 |1940| `permissionDecision` | `"allow"` 跳过权限提示,除了 [任何模式自动批准的操作](/docs/zh-CN/permission-modes#actions-no-mode-auto-approves) 和对于 `AskUserQuestion` 和 `ExitPlanMode`,它们需要 [`updatedInput` 与其配对](#allow-with-updatedinput)。`"deny"` 防止工具调用。`"ask"` 提示用户确认。`"defer"` 优雅地退出,以便稍后可以恢复工具。[拒绝和询问规则](/docs/zh-CN/permissions#manage-permissions) 仍然被评估,无论 hook 返回什么 |

1941| `permissionDecisionReason` | 对于 `"allow"` 和 `"ask"`,显示给用户但不显示给 Claude。对于 `"deny"`,显示给 Claude。对于 `"defer"`,被忽略 |1941| `permissionDecisionReason` | 对于 `"allow"` 和 `"ask"`,显示给用户但不显示给 Claude。对于 `"deny"`,显示给 Claude。对于 `"defer"`,被忽略 |

1942| `updatedInput` | 在执行前修改工具的输入参数。替换整个输入对象,因此在修改的字段旁边包含未更改的字段。Claude Code 根据您的 hook 返回的输入而不是 Claude 发送的输入评估权限规则和 Bash 命令的 [自动后台资格](/docs/zh-CN/tools-reference#background-commands)。与 `"allow"` 结合以自动批准,或与 `"ask"` 结合以向用户显示修改的输入。对于 `"defer"`,被忽略 |1942| `updatedInput` | 在执行前修改工具的输入参数。替换整个输入对象,因此在修改的字段旁边包含未更改的字段。Claude Code 根据您的 hook 返回的输入而不是 Claude 发送的输入评估权限规则和 Bash 命令的 [自动后台资格](/docs/zh-CN/tools-reference#background-commands)。与 `"allow"` 结合以自动批准,或与 `"ask"` 结合以向用户显示修改的输入。对于 `"defer"`,被忽略 |


2069`PermissionRequest` hooks 可以允许或拒绝权限请求。除了所有 hooks 可用的 [JSON 输出字段](#json-output) 外,您的 hook 脚本可以返回一个带有这些事件特定字段的 `decision` 对象:2069`PermissionRequest` hooks 可以允许或拒绝权限请求。除了所有 hooks 可用的 [JSON 输出字段](#json-output) 外,您的 hook 脚本可以返回一个带有这些事件特定字段的 `decision` 对象:

2070 2070 

2071| 字段 | 描述 |2071| 字段 | 描述 |

2072| :------------------- | :------------------------------------------------------------------------------------------------------------------- |2072| :- | :- |

2073| `behavior` | `"allow"` 授予权限,`"deny"` 拒绝它。[拒绝和询问规则](/docs/zh-CN/permissions#manage-permissions) 仍然被评估,因此返回 `"allow"` 的 hook 不会覆盖匹配的拒绝规则 |2073| `behavior` | `"allow"` 授予权限,`"deny"` 拒绝它。[拒绝和询问规则](/docs/zh-CN/permissions#manage-permissions) 仍然被评估,因此返回 `"allow"` 的 hook 不会覆盖匹配的拒绝规则 |

2074| `updatedInput` | 仅对 `"allow"`:在执行前修改工具的输入参数。替换整个输入对象,因此在修改的字段旁边包含未更改的字段。修改的输入针对拒绝和询问规则重新评估 |2074| `updatedInput` | 仅对 `"allow"`:在执行前修改工具的输入参数。替换整个输入对象,因此在修改的字段旁边包含未更改的字段。修改的输入针对拒绝和询问规则重新评估 |

2075| `updatedPermissions` | 仅对 `"allow"`:要应用的 [权限更新条目](#permission-update-entries) 数组,例如添加允许规则或更改会话权限模式 |2075| `updatedPermissions` | 仅对 `"allow"`:要应用的 [权限更新条目](#permission-update-entries) 数组,例如添加允许规则或更改会话权限模式 |


2099`updatedPermissions` 输出字段和 [`permission_suggestions` 输入字段](#permissionrequest-input) 都使用相同的条目对象数组。每个条目有一个 `type` 来确定其他字段,以及一个 `destination` 来控制更改的写入位置。2099`updatedPermissions` 输出字段和 [`permission_suggestions` 输入字段](#permissionrequest-input) 都使用相同的条目对象数组。每个条目有一个 `type` 来确定其他字段,以及一个 `destination` 来控制更改的写入位置。

2100 2100 

2101| `type` | 字段 | 效果 |2101| `type` | 字段 | 效果 |

2102| :------------------ | :------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------- |2102| :- | :- | :- |

2103| `addRules` | `rules`、`behavior`、`destination` | 添加权限规则。`rules` 是 `{toolName, ruleContent?}` 对象的数组。省略 `ruleContent` 以匹配整个工具。`behavior` 是 `"allow"`、`"deny"` 或 `"ask"` |2103| `addRules` | `rules`、`behavior`、`destination` | 添加权限规则。`rules` 是 `{toolName, ruleContent?}` 对象的数组。省略 `ruleContent` 以匹配整个工具。`behavior` 是 `"allow"`、`"deny"` 或 `"ask"` |

2104| `replaceRules` | `rules`、`behavior`、`destination` | 用提供的 `rules` 替换 `destination` 处给定 `behavior` 的所有规则 |2104| `replaceRules` | `rules`、`behavior`、`destination` | 用提供的 `rules` 替换 `destination` 处给定 `behavior` 的所有规则 |

2105| `removeRules` | `rules`、`behavior`、`destination` | 删除给定 `behavior` 的匹配规则 |2105| `removeRules` | `rules`、`behavior`、`destination` | 删除给定 `behavior` 的匹配规则 |


2116每个条目上的 `destination` 字段确定更改是保留在内存中还是持久化到设置文件。2116每个条目上的 `destination` 字段确定更改是保留在内存中还是持久化到设置文件。

2117 2117 

2118| `destination` | 写入 |2118| `destination` | 写入 |

2119| :---------------- | :---------------------------- |2119| :- | :- |

2120| `session` | 仅在内存中,会话结束时丢弃 |2120| `session` | 仅在内存中,会话结束时丢弃 |

2121| `localSettings` | `.claude/settings.local.json` |2121| `localSettings` | `.claude/settings.local.json` |

2122| `projectSettings` | `.claude/settings.json` |2122| `projectSettings` | `.claude/settings.json` |


2165```2165```

2166 2166 

2167| 字段 | 描述 |2167| 字段 | 描述 |

2168| :------------ | :--------------------------------------------- |2168| :- | :- |

2169| `duration_ms` | 可选。工具执行时间(毫秒)。不包括权限提示和 PreToolUse hooks 中花费的时间 |2169| `duration_ms` | 可选。工具执行时间(毫秒)。不包括权限提示和 PreToolUse hooks 中花费的时间 |

2170 2170 

2171<h4 id="posttooluse-decision-control">2171<h4 id="posttooluse-decision-control">


2175`PostToolUse` hooks 可以在工具执行后提供反馈给 Claude。除了所有 hooks 可用的 [JSON 输出字段](#json-output) 外,您的 hook 脚本可以返回这些事件特定的字段:2175`PostToolUse` hooks 可以在工具执行后提供反馈给 Claude。除了所有 hooks 可用的 [JSON 输出字段](#json-output) 外,您的 hook 脚本可以返回这些事件特定的字段:

2176 2176 

2177| 字段 | 描述 |2177| 字段 | 描述 |

2178| :--------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |2178| :- | :- |

2179| `decision` | `"block"` 在工具结果旁边添加 `reason`。Claude 仍然看到原始输出;要替换它,请使用 `updatedToolOutput` |2179| `decision` | `"block"` 在工具结果旁边添加 `reason`。Claude 仍然看到原始输出;要替换它,请使用 `updatedToolOutput` |

2180| `reason` | 当 `decision` 为 `"block"` 时显示给 Claude 的解释 |2180| `reason` | 当 `decision` 为 `"block"` 时显示给 Claude 的解释 |

2181| `additionalContext` | 与工具结果一起添加到 Claude 上下文的字符串。有关详细信息,请参阅 [为 Claude 添加上下文](#add-context-for-claude) |2181| `additionalContext` | 与工具结果一起添加到 Claude 上下文的字符串。有关详细信息,请参阅 [为 Claude 添加上下文](#add-context-for-claude) |


2277```2277```

2278 2278 

2279| 字段 | 描述 |2279| 字段 | 描述 |

2280| :------------- | :------------------------------------------------------------------------ |2280| :- | :- |

2281| `error` | 描述出错的字符串。格式取决于失败的工具 |2281| `error` | 描述出错的字符串。格式取决于失败的工具 |

2282| `is_interrupt` | 可选布尔值。当失败作为中止而不是工具报告的错误到达 Claude Code 时为 True。取消运行的工具不触发此 hook;工具结果携带中断消息 |2282| `is_interrupt` | 可选布尔值。当失败作为中止而不是工具报告的错误到达 Claude Code 时为 True。取消运行的工具不触发此 hook;工具结果携带中断消息 |

2283| `duration_ms` | 可选。工具执行时间(毫秒)。不包括权限提示和 PreToolUse hooks 中花费的时间 |2283| `duration_ms` | 可选。工具执行时间(毫秒)。不包括权限提示和 PreToolUse hooks 中花费的时间 |


2295`PostToolUseFailure` hooks 可以在工具失败后向 Claude 提供上下文。除了所有 hooks 可用的 [JSON 输出字段](#json-output) 外,您的 hook 脚本可以返回这些事件特定的字段:2295`PostToolUseFailure` hooks 可以在工具失败后向 Claude 提供上下文。除了所有 hooks 可用的 [JSON 输出字段](#json-output) 外,您的 hook 脚本可以返回这些事件特定的字段:

2296 2296 

2297| 字段 | 描述 |2297| 字段 | 描述 |

2298| :------------------ | :--------------------------------------------------------------------------- |2298| :- | :- |

2299| `additionalContext` | 与错误一起添加到 Claude 上下文的字符串。有关详细信息,请参阅 [为 Claude 添加上下文](#add-context-for-claude) |2299| `additionalContext` | 与错误一起添加到 Claude 上下文的字符串。有关详细信息,请参阅 [为 Claude 添加上下文](#add-context-for-claude) |

2300 2300 

2301```json theme={null}2301```json theme={null}


2356`PostToolBatch` hooks 可以为 Claude 注入上下文。除了所有 hooks 可用的 [JSON 输出字段](#json-output) 外,您的 hook 脚本可以返回这些事件特定的字段:2356`PostToolBatch` hooks 可以为 Claude 注入上下文。除了所有 hooks 可用的 [JSON 输出字段](#json-output) 外,您的 hook 脚本可以返回这些事件特定的字段:

2357 2357 

2358| 字段 | 描述 |2358| 字段 | 描述 |

2359| :------------------ | :-------------------------------------------------------------------------------------------------- |2359| :- | :- |

2360| `additionalContext` | 在下一个模型调用之前注入一次的上下文字符串。有关传递详细信息、放入其中的内容以及恢复的会话如何处理过去的值,请参阅 [为 Claude 添加上下文](#add-context-for-claude) |2360| `additionalContext` | 在下一个模型调用之前注入一次的上下文字符串。有关传递详细信息、放入其中的内容以及恢复的会话如何处理过去的值,请参阅 [为 Claude 添加上下文](#add-context-for-claude) |

2361 2361 

2362```json theme={null}2362```json theme={null}


2402```2402```

2403 2403 

2404| 字段 | 描述 |2404| 字段 | 描述 |

2405| :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |2405| :- | :- |

2406| `reason` | 拒绝原因。对于分类器判决,在大多数会话中它命名方括号中的匹配规则,例如 `[Data Exfiltration]`;有关其他形式,请参阅 [审查拒绝](/docs/zh-CN/auto-mode-config#review-denials)。对于 [无判决拒绝](#permissiondenied-decision-control),它以 `Auto mode could not evaluate this action and is blocking it for safety` 开头。对于拒绝因为分类器模型不可用,它是固定文本 `Classifier unavailable` |2406| `reason` | 拒绝原因。对于分类器判决,在大多数会话中它命名方括号中的匹配规则,例如 `[Data Exfiltration]`;有关其他形式,请参阅 [审查拒绝](/docs/zh-CN/auto-mode-config#review-denials)。对于 [无判决拒绝](#permissiondenied-decision-control),它以 `Auto mode could not evaluate this action and is blocking it for safety` 开头。对于拒绝因为分类器模型不可用,它是固定文本 `Classifier unavailable` |

2407 2407 

2408<h4 id="permissiondenied-decision-control">2408<h4 id="permissiondenied-decision-control">


2433即使关闭了桌面通知,您也会接收这些 hook 事件:`preferredNotifChannel` 设置(包括 `notifications_disabled`)仅更改您如何被警告,而不是您的 hook 是否运行。2433即使关闭了桌面通知,您也会接收这些 hook 事件:`preferredNotifChannel` 设置(包括 `notifications_disabled`)仅更改您如何被警告,而不是您的 hook 是否运行。

2434 2434 

2435| 匹配器 | 何时触发 |2435| 匹配器 | 何时触发 |

2436| :--------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |2436| :- | :- |

2437| `permission_prompt` | Claude 需要您批准工具使用或沙箱命令的 [网络请求](/docs/zh-CN/sandboxing#network-isolation),提示已等待约六秒 |2437| `permission_prompt` | Claude 需要您批准工具使用或沙箱命令的 [网络请求](/docs/zh-CN/sandboxing#network-isolation),提示已等待约六秒 |

2438| `idle_prompt` | Claude 约 60 秒前完成响应,您自那以后没有输入 |2438| `idle_prompt` | Claude 约 60 秒前完成响应,您自那以后没有输入 |

2439| `auth_success` | 身份验证完成 |2439| `auth_success` | 身份验证完成 |


2550SubagentStart hooks 无法阻止子代理创建,但它们可以向子代理注入上下文。除了所有 hooks 可用的 [JSON 输出字段](#json-output) 外,您可以返回:2550SubagentStart hooks 无法阻止子代理创建,但它们可以向子代理注入上下文。除了所有 hooks 可用的 [JSON 输出字段](#json-output) 外,您可以返回:

2551 2551 

2552| 字段 | 描述 |2552| 字段 | 描述 |

2553| :------------------ | :------------------------------------------------------------------------------------ |2553| :- | :- |

2554| `additionalContext` | 在子代理对话开始时添加到子代理上下文的字符串,在其第一个提示之前。有关详细信息,请参阅 [为 Claude 添加上下文](#add-context-for-claude) |2554| `additionalContext` | 在子代理对话开始时添加到子代理上下文的字符串,在其第一个提示之前。有关详细信息,请参阅 [为 Claude 添加上下文](#add-context-for-claude) |

2555 2555 

2556```json theme={null}2556```json theme={null}


2632```2632```

2633 2633 

2634| 字段 | 描述 |2634| 字段 | 描述 |

2635| :----------------- | :---------------------- |2635| :- | :- |

2636| `task_id` | 正在创建的任务的标识符 |2636| `task_id` | 正在创建的任务的标识符 |

2637| `task_subject` | 任务的标题 |2637| `task_subject` | 任务的标题 |

2638| `task_description` | 任务的详细描述。可能不存在 |2638| `task_description` | 任务的详细描述。可能不存在 |


2693```2693```

2694 2694 

2695| 字段 | 描述 |2695| 字段 | 描述 |

2696| :----------------- | :---------------------- |2696| :- | :- |

2697| `task_id` | 正在完成的任务的标识符 |2697| `task_id` | 正在完成的任务的标识符 |

2698| `task_subject` | 任务的标题 |2698| `task_subject` | 任务的标题 |

2699| `task_description` | 任务的详细描述。可能不存在 |2699| `task_description` | 任务的详细描述。可能不存在 |


2748`background_tasks` 中的每个条目描述一个进行中的任务,并使用这些字段:2748`background_tasks` 中的每个条目描述一个进行中的任务,并使用这些字段:

2749 2749 

2750| 字段 | 描述 |2750| 字段 | 描述 |

2751| :------------ | :------------------------------------------------------------------------------------------------------------------------------------------ |2751| :- | :- |

2752| `id` | 任务标识符 |2752| `id` | 任务标识符 |

2753| `type` | 友好的任务类型标签,例如 `shell`、`subagent`、`monitor`、`workflow`、`teammate`、`cloud session` 或 `MCP task`。每个标签标识哪个 Claude Code 功能创建了任务。对于无法识别的类型回退到原始判别式 |2753| `type` | 友好的任务类型标签,例如 `shell`、`subagent`、`monitor`、`workflow`、`teammate`、`cloud session` 或 `MCP task`。每个标签标识哪个 Claude Code 功能创建了任务。对于无法识别的类型回退到原始判别式 |

2754| `status` | 当前任务状态 |2754| `status` | 当前任务状态 |


2762`session_crons` 中的每个条目描述一个会话范围的计划唤醒,来自 `CronCreate`、`ScheduleWakeup` 和 `/loop`:2762`session_crons` 中的每个条目描述一个会话范围的计划唤醒,来自 `CronCreate`、`ScheduleWakeup` 和 `/loop`:

2763 2763 

2764| 字段 | 描述 |2764| 字段 | 描述 |

2765| :---------- | :---------------------------------------------------- |2765| :- | :- |

2766| `id` | Cron 任务标识符 |2766| `id` | Cron 任务标识符 |

2767| `schedule` | Cron 表达式,例如 `0 9 * * 1-5` |2767| `schedule` | Cron 表达式,例如 `0 9 * * 1-5` |

2768| `recurring` | 对于一次性唤醒(其计划编码单个触发时间)为 `false`,对于在每个匹配上重新触发的任务为 `true` |2768| `recurring` | 对于一次性唤醒(其计划编码单个触发时间)为 `false`,对于在每个匹配上重新触发的任务为 `true` |


2806`Stop` 和 `SubagentStop` hooks 可以控制 Claude 是否继续。除了所有 hooks 可用的 [JSON 输出字段](#json-output) 外,您的 hook 脚本可以返回这些事件特定的字段:2806`Stop` 和 `SubagentStop` hooks 可以控制 Claude 是否继续。除了所有 hooks 可用的 [JSON 输出字段](#json-output) 外,您的 hook 脚本可以返回这些事件特定的字段:

2807 2807 

2808| 字段 | 描述 |2808| 字段 | 描述 |

2809| :------------------------------------- | :--------------------------------------------------------------------------------------------- |2809| :- | :- |

2810| `decision` | `"block"` 防止 Claude 停止。省略以允许 Claude 停止 |2810| `decision` | `"block"` 防止 Claude 停止。省略以允许 Claude 停止 |

2811| `reason` | 当 `decision` 为 `"block"` 时需要。告诉 Claude 为什么它应该继续 |2811| `reason` | 当 `decision` 为 `"block"` 时需要。告诉 Claude 为什么它应该继续 |

2812| `hookSpecificOutput.additionalContext` | 对 Claude 的非错误反馈。对话继续,以便 Claude 可以对其采取行动,但与 `decision: "block"` 不同,它在成绩单中显示为 hook 反馈而不是 hook 错误 |2812| `hookSpecificOutput.additionalContext` | 对 Claude 的非错误反馈。对话继续,以便 Claude 可以对其采取行动,但与 `decision: "block"` 不同,它在成绩单中显示为 hook 反馈而不是 hook 错误 |


2844除了 [常见输入字段](#common-input-fields) 外,StopFailure hooks 接收 `error`、可选的 `error_details` 和可选的 `last_assistant_message`。`error` 字段标识错误类型,用于匹配器过滤。2844除了 [常见输入字段](#common-input-fields) 外,StopFailure hooks 接收 `error`、可选的 `error_details` 和可选的 `last_assistant_message`。`error` 字段标识错误类型,用于匹配器过滤。

2845 2845 

2846| 字段 | 描述 |2846| 字段 | 描述 |

2847| :----------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |2847| :- | :- |

2848| `error` | 错误类型:`rate_limit`、`overloaded`、`authentication_failed`、`oauth_org_not_allowed`、`account_on_hold`、`billing_error`、`invalid_request`、`model_not_found`、`server_error`、`max_output_tokens`、`cloud_credential_error` 或 `unknown` |2848| `error` | 错误类型:`rate_limit`、`overloaded`、`authentication_failed`、`oauth_org_not_allowed`、`account_on_hold`、`billing_error`、`invalid_request`、`model_not_found`、`server_error`、`max_output_tokens`、`cloud_credential_error` 或 `unknown` |

2849| `error_details` | 关于错误的其他详细信息(如果可用) |2849| `error_details` | 关于错误的其他详细信息(如果可用) |

2850| `last_assistant_message` | 在对话中显示的呈现错误文本。与 `Stop` 和 `SubagentStop` 不同,其中此字段保持 Claude 的对话输出,对于 `StopFailure` 它包含 API 错误字符串本身,例如 `"API Error: Rate limit reached"` |2850| `last_assistant_message` | 在对话中显示的呈现错误文本。与 `Stop` 和 `SubagentStop` 不同,其中此字段保持 Claude 的对话输出,对于 `StopFailure` 它包含 API 错误字符串本身,例如 `"API Error: Rate limit reached"` |


2890```2890```

2891 2891 

2892| 字段 | 描述 |2892| 字段 | 描述 |

2893| :-------------- | :---------------------- |2893| :- | :- |

2894| `teammate_name` | 即将空闲的队友的名称 |2894| `teammate_name` | 即将空闲的队友的名称 |

2895| `team_name` | 已弃用。会话派生的团队名称;将在未来版本中删除 |2895| `team_name` | 已弃用。会话派生的团队名称;将在未来版本中删除 |

2896 2896 


2927匹配器过滤配置源:2927匹配器过滤配置源:

2928 2928 

2929| 匹配器 | 何时触发 |2929| 匹配器 | 何时触发 |

2930| :----------------- | :----------------------------------------------------- |2930| :- | :- |

2931| `user_settings` | `~/.claude/settings.json` 更改 |2931| `user_settings` | `~/.claude/settings.json` 更改 |

2932| `project_settings` | `.claude/settings.json` 更改 |2932| `project_settings` | `.claude/settings.json` 更改 |

2933| `local_settings` | `.claude/settings.local.json` 更改 |2933| `local_settings` | `.claude/settings.local.json` 更改 |


2978ConfigChange hooks 可以阻止配置更改生效。使用退出代码 2 或 JSON `decision` 来防止更改。当被阻止时,新设置不应用于运行的会话。2978ConfigChange hooks 可以阻止配置更改生效。使用退出代码 2 或 JSON `decision` 来防止更改。当被阻止时,新设置不应用于运行的会话。

2979 2979 

2980| 字段 | 描述 |2980| 字段 | 描述 |

2981| :--------- | :-------------------------- |2981| :- | :- |

2982| `decision` | `"block"` 防止配置更改被应用。省略以允许更改 |2982| `decision` | `"block"` 防止配置更改被应用。省略以允许更改 |

2983| `reason` | 接受但永远不显示 |2983| `reason` | 接受但永远不显示 |

2984 2984 


3027除了所有 hooks 可用的 [JSON 输出字段](#json-output) 外,CwdChanged hooks 可以返回 `watchPaths` 来动态设置哪些文件路径 [FileChanged](#filechanged) 监视:3027除了所有 hooks 可用的 [JSON 输出字段](#json-output) 外,CwdChanged hooks 可以返回 `watchPaths` 来动态设置哪些文件路径 [FileChanged](#filechanged) 监视:

3028 3028 

3029| 字段 | 描述 |3029| 字段 | 描述 |

3030| :----------- | :------------------------------------------------------------------- |3030| :- | :- |

3031| `watchPaths` | 绝对路径的数组。替换当前动态监视列表。来自您 `matcher` 配置的路径始终被监视。返回空数组清除动态列表,这在进入新目录时是典型的 |3031| `watchPaths` | 绝对路径的数组。替换当前动态监视列表。来自您 `matcher` 配置的路径始终被监视。返回空数组清除动态列表,这在进入新目录时是典型的 |

3032 3032 

3033CwdChanged hooks 没有决策控制。它们无法阻止目录更改。3033CwdChanged hooks 没有决策控制。它们无法阻止目录更改。


3053匹配器过滤目录的添加方式:3053匹配器过滤目录的添加方式:

3054 3054 

3055| 匹配器 | 何时触发 |3055| 匹配器 | 何时触发 |

3056| :------------------- | :-------------------------------------- |3056| :- | :- |

3057| `slash_command` | 您使用 `/add-dir` 添加目录 |3057| `slash_command` | 您使用 `/add-dir` 添加目录 |

3058| `register_repo_root` | SDK 客户端使用 `register_repo_root` 控制请求添加目录 |3058| `register_repo_root` | SDK 客户端使用 `register_repo_root` 控制请求添加目录 |

3059 3059 


3064除了 [常见输入字段](#common-input-fields) 外,DirectoryAdded hooks 接收 `directory` 和 `source`。3064除了 [常见输入字段](#common-input-fields) 外,DirectoryAdded hooks 接收 `directory` 和 `source`。

3065 3065 

3066| 字段 | 描述 |3066| 字段 | 描述 |

3067| :---------- | :------------------------------------------------------------------------ |3067| :- | :- |

3068| `directory` | 添加的目录的绝对路径 |3068| `directory` | 添加的目录的绝对路径 |

3069| `source` | 目录如何被添加,`/add-dir` 为 `"slash_command"` 或 SDK 控制请求为 `"register_repo_root"` |3069| `source` | 目录如何被添加,`/add-dir` 为 `"slash_command"` 或 SDK 控制请求为 `"register_repo_root"` |

3070 3070 


3138除了 [常见输入字段](#common-input-fields) 外,FileChanged hooks 接收 `file_path` 和 `event`。3138除了 [常见输入字段](#common-input-fields) 外,FileChanged hooks 接收 `file_path` 和 `event`。

3139 3139 

3140| 字段 | 描述 |3140| 字段 | 描述 |

3141| :---------- | :------------------------------------------------------- |3141| :- | :- |

3142| `file_path` | 更改的文件的绝对路径 |3142| `file_path` | 更改的文件的绝对路径 |

3143| `event` | 发生了什么:修改文件为 `"change"`、创建的文件为 `"add"` 或删除的文件为 `"unlink"` |3143| `event` | 发生了什么:修改文件为 `"change"`、创建的文件为 `"add"` 或删除的文件为 `"unlink"` |

3144 3144 


3160除了所有 hooks 可用的 [JSON 输出字段](#json-output) 外,FileChanged hooks 可以返回 `watchPaths` 来动态更新哪些文件路径被监视:3160除了所有 hooks 可用的 [JSON 输出字段](#json-output) 外,FileChanged hooks 可以返回 `watchPaths` 来动态更新哪些文件路径被监视:

3161 3161 

3162| 字段 | 描述 |3162| 字段 | 描述 |

3163| :----------- | :--------------------------------------------------------------------------- |3163| :- | :- |

3164| `watchPaths` | 绝对路径的数组。替换当前动态监视列表。来自您 `matcher` 配置的路径始终被监视。当您的 hook 脚本根据更改的文件发现要监视的其他文件时使用此 |3164| `watchPaths` | 绝对路径的数组。替换当前动态监视列表。来自您 `matcher` 配置的路径始终被监视。当您的 hook 脚本根据更改的文件发现要监视的其他文件时使用此 |

3165 3165 

3166FileChanged hooks 没有决策控制。它们无法阻止文件更改发生。3166FileChanged hooks 没有决策控制。它们无法阻止文件更改发生。


3294匹配器值指示压缩是手动还是自动触发:3294匹配器值指示压缩是手动还是自动触发:

3295 3295 

3296| 匹配器 | 何时触发 |3296| 匹配器 | 何时触发 |

3297| :------- | :-------------------------------------------------------------------- |3297| :- | :- |

3298| `manual` | `/compact` |3298| `manual` | `/compact` |

3299| `auto` | 当对话达到 [自动压缩窗口](/docs/zh-CN/model-config#set-the-auto-compact-window) 时自动压缩 |3299| `auto` | 当对话达到 [自动压缩窗口](/docs/zh-CN/model-config#set-the-auto-compact-window) 时自动压缩 |

3300 3300 


3330与 `PreCompact` 相同的匹配器值适用:3330与 `PreCompact` 相同的匹配器值适用:

3331 3331 

3332| 匹配器 | 何时触发 |3332| 匹配器 | 何时触发 |

3333| :------- | :--------------------------------------------------------------------- |3333| :- | :- |

3334| `manual` | 在 `/compact` 后 |3334| `manual` | 在 `/compact` 后 |

3335| `auto` | 当对话达到 [自动压缩窗口](/docs/zh-CN/model-config#set-the-auto-compact-window) 时自动压缩后 |3335| `auto` | 当对话达到 [自动压缩窗口](/docs/zh-CN/model-config#set-the-auto-compact-window) 时自动压缩后 |

3336 3336 


3448除了 [常见输入字段](#common-input-fields) 外,PreModelSwitch hooks 接收此表中的字段。最后五个描述重新发送对话到新模型的成本,因此 hook 可以在切换发生之前显示该数字。3448除了 [常见输入字段](#common-input-fields) 外,PreModelSwitch hooks 接收此表中的字段。最后五个描述重新发送对话到新模型的成本,因此 hook 可以在切换发生之前显示该数字。

3449 3449 

3450| 字段 | 类型 | 描述 |3450| 字段 | 类型 | 描述 |

3451| :-------------------------- | :--------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |3451| :- | :- | :- |

3452| `from_model` | string | 切换更改的模型 ID |3452| `from_model` | string | 切换更改的模型 ID |

3453| `to_model` | string | 切换更改为的模型 ID。匹配器与此模型的规范名称进行比较 |3453| `to_model` | string | 切换更改为的模型 ID。匹配器与此模型的规范名称进行比较 |

3454| `requested_model` | string or `null` | 请求命名的模型:别名(如 `opus`)、完整模型 ID 或当请求为默认模型时 `null` |3454| `requested_model` | string or `null` | 请求命名的模型:别名(如 `opus`)、完整模型 ID 或当请求为默认模型时 `null` |


3488为了更精细的控制,在 `hookSpecificOutput` 对象中返回 `permissionDecision` 和 `permissionDecisionReason`,如 [PreToolUse](#pretooluse-decision-control) 上。`PreModelSwitch` 接受 `"allow"`、`"deny"` 和 `"ask"`。它不接受 `"defer"`、`updatedInput` 或 `additionalContext`。下表描述两个字段:3488为了更精细的控制,在 `hookSpecificOutput` 对象中返回 `permissionDecision` 和 `permissionDecisionReason`,如 [PreToolUse](#pretooluse-decision-control) 上。`PreModelSwitch` 接受 `"allow"`、`"deny"` 和 `"ask"`。它不接受 `"defer"`、`updatedInput` 或 `additionalContext`。下表描述两个字段:

3489 3489 

3490| 字段 | 描述 |3490| 字段 | 描述 |

3491| :------------------------- | :-------------------------------------------------------------------------------------------------------------------------- |3491| :- | :- |

3492| `permissionDecision` | `"allow"` 继续并跳过 [Claude Code 在 prompt cache 温暖时显示的确认](/docs/zh-CN/prompt-caching#switching-models)。`"deny"` 取消切换。`"ask"` 提示用户确认它 |3492| `permissionDecision` | `"allow"` 继续并跳过 [Claude Code 在 prompt cache 温暖时显示的确认](/docs/zh-CN/prompt-caching#switching-models)。`"deny"` 取消切换。`"ask"` 提示用户确认它 |

3493| `permissionDecisionReason` | 对于 `"deny"`,显示给用户作为切换被阻止的原因,或为 `set_model` 请求返回为错误。对于 `"ask"`,显示在确认提示中。对于 `"allow"` 被忽略 |3493| `permissionDecisionReason` | 对于 `"deny"`,显示给用户作为切换被阻止的原因,或为 `set_model` 请求返回为错误。对于 `"ask"`,显示在确认提示中。对于 `"allow"` 被忽略 |

3494 3494 


3568Claude Code 在切换后的下一个请求中获取您的 hook 的 [纯文本 stdout](#exit-code-0) 退出 0,或 JSON 输出中的 `additionalContext`,并将其传递给 Claude。除了所有 hooks 可用的 [JSON 输出字段](#json-output) 外,您可以返回:3568Claude Code 在切换后的下一个请求中获取您的 hook 的 [纯文本 stdout](#exit-code-0) 退出 0,或 JSON 输出中的 `additionalContext`,并将其传递给 Claude。除了所有 hooks 可用的 [JSON 输出字段](#json-output) 外,您可以返回:

3569 3569 

3570| 字段 | 描述 |3570| 字段 | 描述 |

3571| :------------------ | :------------------------------------------------------------------------------ |3571| :- | :- |

3572| `additionalContext` | 与下一个请求一起添加到 Claude 上下文的字符串。有关详细信息,请参阅 [为 Claude 添加上下文](#add-context-for-claude) |3572| `additionalContext` | 与下一个请求一起添加到 Claude 上下文的字符串。有关详细信息,请参阅 [为 Claude 添加上下文](#add-context-for-claude) |

3573 3573 

3574如果 hook 在您发送下一个提示后五秒内未完成,Claude Code 发送该请求而不输出,并将其附加到以下请求。如果模型在下一个请求之前更改多次,Claude Code 仅传递最后一个切换目标模型的输出。3574如果 hook 在您发送下一个提示后五秒内未完成,Claude Code 发送该请求而不输出,并将其附加到以下请求。如果模型在下一个请求之前更改多次,Claude Code 仅传递最后一个切换目标模型的输出。


3582`reason` 字段在 hook 输入中指示会话为什么结束:3582`reason` 字段在 hook 输入中指示会话为什么结束:

3583 3583 

3584| 原因 | 描述 |3584| 原因 | 描述 |

3585| :---------------------------- | :------------------------------------------------------- |3585| :- | :- |

3586| `clear` | 会话使用 `/clear` 命令清除 |3586| `clear` | 会话使用 `/clear` 命令清除 |

3587| `resume` | 会话通过交互式 `/resume` 切换 |3587| `resume` | 会话通过交互式 `/resume` 切换 |

3588| `logout` | 用户登出 |3588| `logout` | 用户登出 |


3689```3689```

3690 3690 

3691| 字段 | 值 | 描述 |3691| 字段 | 值 | 描述 |

3692| :-------- | :-------------------------- | :----------------------------------- |3692| :- | :- | :- |

3693| `action` | `accept`、`decline`、`cancel` | 是否接受、拒绝或取消请求 |3693| `action` | `accept`、`decline`、`cancel` | 是否接受、拒绝或取消请求 |

3694| `content` | object | 要提交的表单字段值。仅在 `action` 为 `accept` 时使用 |3694| `content` | object | 要提交的表单字段值。仅在 `action` 为 `accept` 时使用 |

3695 3695 


3742```3742```

3743 3743 

3744| 字段 | 值 | 描述 |3744| 字段 | 值 | 描述 |

3745| :-------- | :-------------------------- | :---------------------------------- |3745| :- | :- | :- |

3746| `action` | `accept`、`decline`、`cancel` | 覆盖用户的操作 |3746| `action` | `accept`、`decline`、`cancel` | 覆盖用户的操作 |

3747| `content` | object | 覆盖表单字段值。仅在 `action` 为 `accept` 时有意义 |3747| `content` | object | 覆盖表单字段值。仅在 `action` 为 `accept` 时有意义 |

3748 3748 


3832```3832```

3833 3833 

3834| 字段 | 必需 | 描述 |3834| 字段 | 必需 | 描述 |

3835| :---------------- | :- | :----------------------------------------------------------------------------------------------------- |3835| :- | :- | :- |

3836| `type` | 是 | 必须是 `"prompt"` |3836| `type` | 是 | 必须是 `"prompt"` |

3837| `prompt` | 是 | 要发送给 LLM 的提示文本。使用 `$ARGUMENTS` 作为 hook 输入 JSON 的占位符。如果 `$ARGUMENTS` 不存在,输入 JSON 被追加到提示 |3837| `prompt` | 是 | 要发送给 LLM 的提示文本。使用 `$ARGUMENTS` 作为 hook 输入 JSON 的占位符。如果 `$ARGUMENTS` 不存在,输入 JSON 被追加到提示 |

3838| `model` | 否 | 用于评估的模型。默认为快速模型 |3838| `model` | 否 | 用于评估的模型。默认为快速模型 |


3854```3854```

3855 3855 

3856| 字段 | 描述 |3856| 字段 | 描述 |

3857| :----------- | :-------------------------------------------------------------------------------------------------------------- |3857| :- | :- |

3858| `ok` | `true` 允许。对于 `false`,请参阅下面的每个事件行为 |3858| `ok` | `true` 允许。对于 `false`,请参阅下面的每个事件行为 |

3859| `reason` | 当 `ok` 为 `false` 时必需 |3859| `reason` | 当 `ok` 为 `false` 时必需 |

3860| `impossible` | 可选。当模型判断条件永远无法满足时,模型使用 `ok: false` 返回它。在 `Stop` 和 `SubagentStop` 上,Claude Code 随后让转轮结束而不是反馈原因。代理 hooks 和其他事件忽略它 |3860| `impossible` | 可选。当模型判断条件永远无法满足时,模型使用 `ok: false` 返回它。在 `Stop` 和 `SubagentStop` 上,Claude Code 随后让转轮结束而不是反馈原因。代理 hooks 和其他事件忽略它 |

hooks-guide.md +5 −5

Details

188空的 `matcher` 对所有通知类型触发。要仅在特定事件上触发,请将其设置为以下值之一:188空的 `matcher` 对所有通知类型触发。要仅在特定事件上触发,请将其设置为以下值之一:

189 189 

190| Matcher | 触发时机 |190| Matcher | 触发时机 |

191| :--------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |191| :- | :- |

192| `permission_prompt` | Claude 需要你批准工具使用或沙箱命令的[网络请求](/docs/zh-CN/sandboxing#network-isolation),且提示已等待约六秒 |192| `permission_prompt` | Claude 需要你批准工具使用或沙箱命令的[网络请求](/docs/zh-CN/sandboxing#network-isolation),且提示已等待约六秒 |

193| `idle_prompt` | Claude 完成响应约 60 秒前,且你自那以后没有输入 |193| `idle_prompt` | Claude 完成响应约 60 秒前,且你自那以后没有输入 |

194| `auth_success` | 身份验证完成 |194| `auth_success` | 身份验证完成 |


500Claude Code 在其生命周期中的特定点触发 hook 事件。当事件触发时,所有匹配的 hooks 并行运行;有关重复处理程序如何处理的信息,请参阅 [Hook 处理程序字段](/docs/zh-CN/hooks#hook-handler-fields)。下表显示每个事件及其触发时间:500Claude Code 在其生命周期中的特定点触发 hook 事件。当事件触发时,所有匹配的 hooks 并行运行;有关重复处理程序如何处理的信息,请参阅 [Hook 处理程序字段](/docs/zh-CN/hooks#hook-handler-fields)。下表显示每个事件及其触发时间:

501 501 

502| 事件 | 触发时机 |502| 事件 | 触发时机 |

503| :-------------------- | :--------------------------------------------------------------------------------------------------------------------- |503| :- | :- |

504| `SessionStart` | 当会话开始或恢复时 |504| `SessionStart` | 当会话开始或恢复时 |

505| `Setup` | 当你使用 `--init-only` 启动 Claude Code,或在 `-p` 模式下使用 `--init` 或 `--maintenance` 时。用于 CI 或脚本中的一次性准备 |505| `Setup` | 当你使用 `--init-only` 启动 Claude Code,或在 `-p` 模式下使用 `--init` 或 `--maintenance` 时。用于 CI 或脚本中的一次性准备 |

506| `UserPromptSubmit` | 当你提交提示词时,在 Claude 处理之前 |506| `UserPromptSubmit` | 当你提交提示词时,在 Claude 处理之前 |


719每个事件类型在特定字段上匹配:719每个事件类型在特定字段上匹配:

720 720 

721| 事件 | 匹配器过滤的内容 | 示例匹配器值 |721| 事件 | 匹配器过滤的内容 | 示例匹配器值 |

722| :----------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |722| :- | :- | :- |

723| `PreToolUse`、`PostToolUse`、`PostToolUseFailure`、`PermissionRequest`、`PermissionDenied` | 工具名称 | `Bash`、`Edit\|Write`、`mcp__.*` |723| `PreToolUse`、`PostToolUse`、`PostToolUseFailure`、`PermissionRequest`、`PermissionDenied` | 工具名称 | `Bash`、`Edit\|Write`、`mcp__.*` |

724| `SessionStart` | 会话如何启动 | `startup`、`resume`、`clear`、`compact`、`fork` |724| `SessionStart` | 会话如何启动 | `startup`、`resume`、`clear`、`compact`、`fork` |

725| `Setup` | 哪个 CLI 标志触发了设置 | `init`、`maintenance` |725| `Setup` | 哪个 CLI 标志触发了设置 | `init`、`maintenance` |


841你的 hook 命令是否运行取决于你的 `if` 模式的形状和 Claude 正在调用的 Bash 命令:841你的 hook 命令是否运行取决于你的 `if` 模式的形状和 Claude 正在调用的 Bash 命令:

842 842 

843| `if` 模式 | Bash 命令 | Hook 运行? | 为什么 |843| `if` 模式 | Bash 命令 | Hook 运行? | 为什么 |

844| :----------------- | :--------------------- | :------- | :-------------------------------------- |844| :- | :- | :- | :- |

845| `Bash(git *)` | `git push` | 是 | 命令名称匹配 |845| `Bash(git *)` | `git push` | 是 | 命令名称匹配 |

846| `Bash(git *)` | `npm test && git push` | 是 | 每个子命令都被检查;`git push` 匹配 |846| `Bash(git *)` | `npm test && git push` | 是 | 每个子命令都被检查;`git push` 匹配 |

847| `Bash(git *)` | `echo $(git log)` | 是 | `$()` 和反引号内的命令被检查;`git log` 匹配 |847| `Bash(git *)` | `echo $(git log)` | 是 | `$()` 和反引号内的命令被检查;`git log` 匹配 |


861你添加 hook 的位置决定了其范围:861你添加 hook 的位置决定了其范围:

862 862 

863| 位置 | 范围 | 可共享 |863| 位置 | 范围 | 可共享 |

864| :--------------------------------------------------- | :----------------------------------------------------------------------------------------- | :--------------------------------- |864| :- | :- | :- |

865| `~/.claude/settings.json` | 所有你的项目 | 否,本地到你的机器 |865| `~/.claude/settings.json` | 所有你的项目 | 否,本地到你的机器 |

866| `.claude/settings.json` | 单个项目 | 是,可以提交到仓库 |866| `.claude/settings.json` | 单个项目 | 是,可以提交到仓库 |

867| `.claude/settings.local.json` | 单个项目 | 否,gitignored 当 Claude Code 保存设置到它时 |867| `.claude/settings.local.json` | 单个项目 | 否,gitignored 当 Claude Code 保存设置到它时 |

Details

45内置工具通常分为五个类别,每个类别代表不同类型的代理能力。45内置工具通常分为五个类别,每个类别代表不同类型的代理能力。

46 46 

47| 类别 | Claude 可以做什么 |47| 类别 | Claude 可以做什么 |

48| -------- | --------------------------------------------------------------------- |48| - | - |

49| **文件操作** | 读取文件、编辑代码、创建新文件、重命名和重新组织 |49| **文件操作** | 读取文件、编辑代码、创建新文件、重命名和重新组织 |

50| **搜索** | 按模式查找文件、使用正则表达式搜索内容、探索代码库 |50| **搜索** | 按模式查找文件、使用正则表达式搜索内容、探索代码库 |

51| **执行** | 运行 shell 命令、启动服务器、运行测试、使用 git |51| **执行** | 运行 shell 命令、启动服务器、运行测试、使用 git |


95Claude Code 在三个环境中运行,每个环境对代码执行位置有不同的权衡。95Claude Code 在三个环境中运行,每个环境对代码执行位置有不同的权衡。

96 96 

97| 环境 | 代码运行位置 | 用例 |97| 环境 | 代码运行位置 | 用例 |

98| -------- | ----------------------------------------------------------------- | ------------------- |98| - | - | - |

99| **本地** | 您的机器 | 默认。完全访问您的文件、工具和环境 |99| **本地** | 您的机器 | 默认。完全访问您的文件、工具和环境 |

100| **云** | Anthropic 管理的虚拟机,或[您的组织运营的自托管环境](/docs/zh-CN/self-hosted-environments) | 卸载任务、处理您本地没有的仓库 |100| **云** | Anthropic 管理的虚拟机,或[您的组织运营的自托管环境](/docs/zh-CN/self-hosted-environments) | 卸载任务、处理您本地没有的仓库 |

101| **远程控制** | 您的机器,从浏览器控制 | 使用网络 UI 同时保持执行和文件本地 |101| **远程控制** | 您的机器,从浏览器控制 | 使用网络 UI 同时保持执行和文件本地 |

Details

21</h3>21</h3>

22 22 

23| 快捷键 | 描述 | 上下文 |23| 快捷键 | 描述 | 上下文 |

24| :------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |24| :- | :- | :- |

25| `Ctrl+C` | 中断或清除输入 | 中断正在运行的操作。如果没有任何操作在运行,第一次按下会清除提示输入,第二次按下会退出 Claude Code |25| `Ctrl+C` | 中断或清除输入 | 中断正在运行的操作。如果没有任何操作在运行,第一次按下会清除提示输入,第二次按下会退出 Claude Code |

26| `Ctrl+X Ctrl+K` | 停止此会话中所有正在运行的[后台子代理](/docs/zh-CN/sub-agents#run-subagents-in-foreground-or-background),并关闭[工件自动回复](/docs/zh-CN/artifacts#let-claude-reply-to-comments-on-its-own)。在 3 秒内按两次以确认 | 子代理控制 |26| `Ctrl+X Ctrl+K` | 停止此会话中所有正在运行的[后台子代理](/docs/zh-CN/sub-agents#run-subagents-in-foreground-or-background),并关闭[工件自动回复](/docs/zh-CN/artifacts#let-claude-reply-to-comments-on-its-own)。在 3 秒内按两次以确认 | 子代理控制 |

27| `Ctrl+D` | 退出 Claude Code 会话 | 第一次按下显示确认提示,第二次在 800ms 内按下会退出。当提示有文本时,`Ctrl+D` 会删除光标后的字符 |27| `Ctrl+D` | 退出 Claude Code 会话 | 第一次按下显示确认提示,第二次在 800ms 内按下会退出。当提示有文本时,`Ctrl+D` 会删除光标后的字符 |


50</h3>50</h3>

51 51 

52| 快捷键 | 描述 | 上下文 |52| 快捷键 | 描述 | 上下文 |

53| :------------------------ | :----------- | :----------------------------------------------------------------------------------------------------------- |53| :- | :- | :- |

54| `Ctrl+A` | 将光标移动到当前行的开始 | 在多行输入中,移动到当前逻辑行的开始 |54| `Ctrl+A` | 将光标移动到当前行的开始 | 在多行输入中,移动到当前逻辑行的开始 |

55| `Ctrl+E` | 将光标移动到当前行的末尾 | 在多行输入中,移动到当前逻辑行的末尾 |55| `Ctrl+E` | 将光标移动到当前行的末尾 | 在多行输入中,移动到当前逻辑行的末尾 |

56| `Ctrl+K` | 删除到行尾 | 存储删除的文本以供粘贴 |56| `Ctrl+K` | 删除到行尾 | 存储删除的文本以供粘贴 |


82</h3>82</h3>

83 83 

84| 快捷键 | 描述 | 上下文 |84| 快捷键 | 描述 | 上下文 |

85| :------- | :----------- | :-------------------------------------------- |85| :- | :- | :- |

86| `Ctrl+T` | 切换代码块的语法突出显示 | 仅在 `/theme` 选择器菜单内工作。控制 Claude 响应中的代码是否使用语法着色 |86| `Ctrl+T` | 切换代码块的语法突出显示 | 仅在 `/theme` 选择器菜单内工作。控制 Claude 响应中的代码是否使用语法着色 |

87 87 

88<h3 id="multiline-input">88<h3 id="multiline-input">


90</h3>90</h3>

91 91 

92| 方法 | 快捷键 | 上下文 |92| 方法 | 快捷键 | 上下文 |

93| :---------- | :------------- | :------------------------------------------------------------------------------------------------------------------------------------------- |93| :- | :- | :- |

94| 快速转义 | `\` + `Enter` | 在所有终端中工作 |94| 快速转义 | `\` + `Enter` | 在所有终端中工作 |

95| Option 键 | `Option+Enter` | 在 macOS 上启用[Option 作为 Meta](/docs/zh-CN/terminal-config#enable-option-key-shortcuts-on-macos)后 |95| Option 键 | `Option+Enter` | 在 macOS 上启用[Option 作为 Meta](/docs/zh-CN/terminal-config#enable-option-key-shortcuts-on-macos)后 |

96| Shift+Enter | `Shift+Enter` | 在 iTerm2、WezTerm、Ghostty、Kitty、Warp、Apple Terminal、Windows Terminal 中原生支持。对于其他终端,请参阅[输入多行提示](/docs/zh-CN/terminal-config#enter-multiline-prompts) |96| Shift+Enter | `Shift+Enter` | 在 iTerm2、WezTerm、Ghostty、Kitty、Warp、Apple Terminal、Windows Terminal 中原生支持。对于其他终端,请参阅[输入多行提示](/docs/zh-CN/terminal-config#enter-multiline-prompts) |


102</h3>102</h3>

103 103 

104| 快捷键 | 描述 | 注释 |104| 快捷键 | 描述 | 注释 |

105| :-------- | :-------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |105| :- | :- | :- |

106| `/` 在开始 | 命令或 skill | 请参阅[命令](#commands)和[skills](/docs/zh-CN/skills) |106| `/` 在开始 | 命令或 skill | 请参阅[命令](#commands)和[skills](/docs/zh-CN/skills) |

107| `!` 在开始 | Shell 模式 | 直接运行命令,将其输出添加到会话,并让 Claude 对其进行响应 |107| `!` 在开始 | Shell 模式 | 直接运行命令,将其输出添加到会话,并让 Claude 对其进行响应 |

108| `@` | 文件路径提及 | 触发文件路径自动完成。在具有[跨会话消息传递](/docs/zh-CN/cross-session-messaging#message-another-session)的会话中,当您在 `@` 后键入至少一个字母时,Claude Code 也会建议您在此机器上的其他实时会话,以便您可以告诉 Claude 向您选择的会话发送消息。需要 Claude Code v2.1.232 或更高版本 |108| `@` | 文件路径提及 | 触发文件路径自动完成。在具有[跨会话消息传递](/docs/zh-CN/cross-session-messaging#message-another-session)的会话中,当您在 `@` 后键入至少一个字母时,Claude Code 也会建议您在此机器上的其他实时会话,以便您可以告诉 Claude 向您选择的会话发送消息。需要 Claude Code v2.1.232 或更高版本 |


116当记录查看器打开时(使用 `Ctrl+O` 切换),这些快捷键可用。运行不带参数的 `/tui` 以检查哪个渲染器处于活动状态。`Ctrl+E` 可以通过 [`transcript:toggleShowAll`](/docs/zh-CN/keybindings) 重新绑定。116当记录查看器打开时(使用 `Ctrl+O` 切换),这些快捷键可用。运行不带参数的 `/tui` 以检查哪个渲染器处于活动状态。`Ctrl+E` 可以通过 [`transcript:toggleShowAll`](/docs/zh-CN/keybindings) 重新绑定。

117 117 

118| 快捷键 | 描述 |118| 快捷键 | 描述 |

119| :----------------- | :---------------------------------------------------------------------------------------------------------------- |119| :- | :- |

120| `?` | 切换键盘快捷键帮助面板。需要[全屏渲染](/docs/zh-CN/fullscreen) |120| `?` | 切换键盘快捷键帮助面板。需要[全屏渲染](/docs/zh-CN/fullscreen) |

121| `{` / `}` | 跳转到上一个或下一个用户提示,如 vim 段落运动。需要[全屏渲染](/docs/zh-CN/fullscreen) |121| `{` / `}` | 跳转到上一个或下一个用户提示,如 vim 段落运动。需要[全屏渲染](/docs/zh-CN/fullscreen) |

122| `Ctrl+E` | 切换显示所有内容。仅在经典渲染器中可用,在[全屏渲染](/docs/zh-CN/fullscreen)中不可用 |122| `Ctrl+E` | 切换显示所有内容。仅在经典渲染器中可用,在[全屏渲染](/docs/zh-CN/fullscreen)中不可用 |


129</h3>129</h3>

130 130 

131| 快捷键 | 描述 | 注释 |131| 快捷键 | 描述 | 注释 |

132| :------------ | :--- | :------------------------------------------------------------------------------------------------------------------------- |132| :- | :- | :- |

133| 按住或点击 `Space` | 语音听写 | 需要启用[语音听写](/docs/zh-CN/voice-dictation)。按住以录制,或运行 `/voice tap` 以进行点击切换。[可重新绑定](/docs/zh-CN/voice-dictation#rebind-the-dictation-key) |133| 按住或点击 `Space` | 语音听写 | 需要启用[语音听写](/docs/zh-CN/voice-dictation)。按住以录制,或运行 `/voice tap` 以进行点击切换。[可重新绑定](/docs/zh-CN/voice-dictation#rebind-the-dictation-key) |

134 134 

135<h2 id="commands">135<h2 id="commands">


168</h3>168</h3>

169 169 

170| 命令 | 操作 | 来自模式 |170| 命令 | 操作 | 来自模式 |

171| :--------------- | :--------------------------------------------------------- | :------------ |171| :- | :- | :- |

172| `Esc` 或 `Ctrl+[` | 进入 NORMAL 模式。在使用 Kitty 键盘协议的终端中,`Ctrl+[` 需要 v2.1.242 或更高版本 | INSERT、VISUAL |172| `Esc` 或 `Ctrl+[` | 进入 NORMAL 模式。在使用 Kitty 键盘协议的终端中,`Ctrl+[` 需要 v2.1.242 或更高版本 | INSERT、VISUAL |

173| `i` | 在光标前插入 | NORMAL |173| `i` | 在光标前插入 | NORMAL |

174| `I` | 在行首插入 | NORMAL |174| `I` | 在行首插入 | NORMAL |


205</h3>205</h3>

206 206 

207| 命令 | 操作 |207| 命令 | 操作 |

208| :-------------- | :------------------------------------------------------------- |208| :- | :- |

209| `h`/`j`/`k`/`l` | 向左/向下/向上/向右移动 |209| `h`/`j`/`k`/`l` | 向左/向下/向上/向右移动 |

210| `Space` | 向右移动 |210| `Space` | 向右移动 |

211| `w` | 下一个单词 |211| `w` | 下一个单词 |


233</h3>233</h3>

234 234 

235| 命令 | 操作 |235| 命令 | 操作 |

236| :-------------------- | :------------------------------------------------------- |236| :- | :- |

237| `x` | 删除字符 |237| `x` | 删除字符 |

238| `dd` | 删除行 |238| `dd` | 删除行 |

239| `D` | 删除到行尾 |239| `D` | 删除到行尾 |


261文本对象与 `d`、`c` 和 `y` 等运算符一起使用:261文本对象与 `d`、`c` 和 `y` 等运算符一起使用:

262 262 

263| 命令 | 操作 |263| 命令 | 操作 |

264| :-------- | :--------------- |264| :- | :- |

265| `iw`/`aw` | 内部/周围单词 |265| `iw`/`aw` | 内部/周围单词 |

266| `iW`/`aW` | 内部/周围 WORD(空白分隔) |266| `iW`/`aW` | 内部/周围 WORD(空白分隔) |

267| `i"`/`a"` | 内部/周围双引号 |267| `i"`/`a"` | 内部/周围双引号 |


277按 `v` 进行字符级选择或按 `V` 进行行级选择。动作扩展选择,运算符直接作用于它。277按 `v` 进行字符级选择或按 `V` 进行行级选择。动作扩展选择,运算符直接作用于它。

278 278 

279| 命令 | 操作 |279| 命令 | 操作 |

280| :--------------- | :------------------- |280| :- | :- |

281| `d`/`x` | 删除选择 |281| `d`/`x` | 删除选择 |

282| `y` | 复制选择 |282| `y` | 复制选择 |

283| `c`/`s` | 更改选择 |283| `c`/`s` | 更改选择 |


686答案出现后,覆盖层接受这些按键。686答案出现后,覆盖层接受这些按键。

687 687 

688| 按键 | 操作 |688| 按键 | 操作 |

689| :--------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |689| :- | :- |

690| `Space`、`Enter`、`Escape` | 关闭答案并返回到提示符 |690| `Space`、`Enter`、`Escape` | 关闭答案并返回到提示符 |

691| `Up` / `Down` | 滚动答案 |691| `Up` / `Down` | 滚动答案 |

692| `Shift+Left` / `Shift+Right` | 在此答案和你之前的 `/btw` 答案之间步进。`Shift+Left` 移动到较旧的答案,`Shift+Right` 返回到当前答案。`[` 和 `]` 执行相同操作,适用于不报告 `Shift` 与箭头键的终端。`Tab` / `Shift+Tab` 循环通过相同的答案。需要 Claude Code v2.1.257 或更高版本。在 v2.1.187 和 v2.1.256 之间,按键是普通的 `Left` / `Right` |692| `Shift+Left` / `Shift+Right` | 在此答案和你之前的 `/btw` 答案之间步进。`Shift+Left` 移动到较旧的答案,`Shift+Right` 返回到当前答案。`[` 和 `]` 执行相同操作,适用于不报告 `Shift` 与箭头键的终端。`Tab` / `Shift+Tab` 循环通过相同的答案。需要 Claude Code v2.1.257 或更高版本。在 v2.1.187 和 v2.1.256 之间,按键是普通的 `Left` / `Right` |


848Claude Code 根据它从你的 git remote 识别的仓库主机来构建链接,而不是根据参考命名的仓库:848Claude Code 根据它从你的 git remote 识别的仓库主机来构建链接,而不是根据参考命名的仓库:

849 849 

850| 你的仓库的主机 | `owner/repo#123` 链接到 |850| 你的仓库的主机 | `owner/repo#123` 链接到 |

851| :----------------------------------------- | :------------------------------------------- |851| :- | :- |

852| github.com、GitHub Enterprise 主机或下面未列出的任何主机 | `https://<host>/owner/repo/issues/123` |852| github.com、GitHub Enterprise 主机或下面未列出的任何主机 | `https://<host>/owner/repo/issues/123` |

853| gitlab.com | `https://gitlab.com/owner/repo/-/issues/123` |853| gitlab.com | `https://gitlab.com/owner/repo/-/issues/123` |

854| bitbucket.org、codeberg.org 或 gitea.com | 无链接;参考保持为纯文本 |854| bitbucket.org、codeberg.org 或 gitea.com | 无链接;参考保持为纯文本 |

jetbrains.md +1 −1

Details

256**向模型公开的工具。** 服务器托管多个工具,但只有一个对模型可见。其余的是 CLI 用于自己的 UI 的内部 RPC,例如打开 diff 和读取选择,在工具列表到达 Claude 之前会被过滤掉。256**向模型公开的工具。** 服务器托管多个工具,但只有一个对模型可见。其余的是 CLI 用于自己的 UI 的内部 RPC,例如打开 diff 和读取选择,在工具列表到达 Claude 之前会被过滤掉。

257 257 

258| 工具名称(如 hooks 所见) | 它的作用 | 只读 |258| 工具名称(如 hooks 所见) | 它的作用 | 只读 |

259| -------------------------- | --------------------------------------------------------------------------------- | -- |259| - | - | - |

260| `mcp__ide__getDiagnostics` | 返回 IDE 的检查诊断,即编辑器中显示的错误和警告。每次调用涵盖一个文件:Claude 指定的文件,或如果 Claude 未指定文件则为您的活动编辑器中的文件。 | 是 |260| `mcp__ide__getDiagnostics` | 返回 IDE 的检查诊断,即编辑器中显示的错误和警告。每次调用涵盖一个文件:Claude 指定的文件,或如果 Claude 未指定文件则为您的活动编辑器中的文件。 | 是 |

261 261 

262JetBrains 插件不向模型公开代码执行工具。262JetBrains 插件不向模型公开代码执行工具。

keybindings.md +30 −30

Details

17<Note>快捷键文件的更改会自动检测并应用,无需重启 Claude Code。</Note>17<Note>快捷键文件的更改会自动检测并应用,无需重启 Claude Code。</Note>

18 18 

19| 字段 | 描述 |19| 字段 | 描述 |

20| :--------- | :---------------------------- |20| :- | :- |

21| `$schema` | 可选的 JSON Schema URL,用于编辑器自动完成 |21| `$schema` | 可选的 JSON Schema URL,用于编辑器自动完成 |

22| `$docs` | 可选的文档 URL |22| `$docs` | 可选的文档 URL |

23| `bindings` | 按上下文分组的绑定块数组 |23| `bindings` | 按上下文分组的绑定块数组 |


47每个绑定块指定一个**上下文**,其中绑定适用:47每个绑定块指定一个**上下文**,其中绑定适用:

48 48 

49| 上下文 | 描述 |49| 上下文 | 描述 |

50| :---------------- | :--------------------------------------------- |50| :- | :- |

51| `Global` | 在应用程序的任何地方应用 |51| `Global` | 在应用程序的任何地方应用 |

52| `Chat` | 主聊天输入区域 |52| `Chat` | 主聊天输入区域 |

53| `Autocomplete` | 自动完成菜单已打开 |53| `Autocomplete` | 自动完成菜单已打开 |


86在 `Global` 上下文中可用的操作:86在 `Global` 上下文中可用的操作:

87 87 

88| 操作 | 默认 | 描述 |88| 操作 | 默认 | 描述 |

89| :--------------------- | :----- | :---------------------------------------------------------- |89| :- | :- | :- |

90| `app:interrupt` | Ctrl+C | 取消当前操作 |90| `app:interrupt` | Ctrl+C | 取消当前操作 |

91| `app:exit` | Ctrl+D | 退出 Claude Code。在 800ms 内按两次以确认 |91| `app:exit` | Ctrl+D | 退出 Claude Code。在 800ms 内按两次以确认 |

92| `app:redraw` | (未绑定) | 强制终端重绘 |92| `app:redraw` | (未绑定) | 强制终端重绘 |


100用于导航命令历史的操作:100用于导航命令历史的操作:

101 101 

102| 操作 | 默认 | 描述 |102| 操作 | 默认 | 描述 |

103| :----------------- | :----- | :----- |103| :- | :- | :- |

104| `history:search` | Ctrl+R | 打开历史搜索 |104| `history:search` | Ctrl+R | 打开历史搜索 |

105| `history:previous` | Up | 上一个历史项 |105| `history:previous` | Up | 上一个历史项 |

106| `history:next` | Down | 下一个历史项 |106| `history:next` | Down | 下一个历史项 |


112在 `Chat` 上下文中可用的操作:112在 `Chat` 上下文中可用的操作:

113 113 

114| 操作 | 默认 | 描述 |114| 操作 | 默认 | 描述 |

115| :-------------------- | :------------------------------ | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |115| :- | :- | :- |

116| `chat:cancel` | Escape | 取消当前输入 |116| `chat:cancel` | Escape | 取消当前输入 |

117| `chat:clearInput` | Ctrl+L | 强制全屏重绘,保留输入和对话 |117| `chat:clearInput` | Ctrl+L | 强制全屏重绘,保留输入和对话 |

118| `chat:clearScreen` | Cmd+K | 与 `chat:clearInput` 相同。请参阅 [清除对话](/docs/zh-CN/fullscreen#clear-the-conversation) 了解 Cmd+K 在 iTerm2 和 Terminal.app 上的行为 |118| `chat:clearScreen` | Cmd+K | 与 `chat:clearInput` 相同。请参阅 [清除对话](/docs/zh-CN/fullscreen#clear-the-conversation) 了解 Cmd+K 在 iTerm2 和 Terminal.app 上的行为 |


139在 `Autocomplete` 上下文中可用的操作:139在 `Autocomplete` 上下文中可用的操作:

140 140 

141| 操作 | 默认 | 描述 |141| 操作 | 默认 | 描述 |

142| :---------------------- | :----- | :---- |142| :- | :- | :- |

143| `autocomplete:accept` | Tab | 接受建议 |143| `autocomplete:accept` | Tab | 接受建议 |

144| `autocomplete:dismiss` | Escape | 关闭菜单 |144| `autocomplete:dismiss` | Escape | 关闭菜单 |

145| `autocomplete:previous` | Up | 上一个建议 |145| `autocomplete:previous` | Up | 上一个建议 |


152在 `Confirmation` 上下文中可用的操作:152在 `Confirmation` 上下文中可用的操作:

153 153 

154| 操作 | 默认 | 描述 |154| 操作 | 默认 | 描述 |

155| :---------------------- | :---------- | :------------------------------------------------------------------------------------------------------------------------------------- |155| :- | :- | :- |

156| `confirm:yes` | Enter | 确认操作 |156| `confirm:yes` | Enter | 确认操作 |

157| `confirm:no` | Escape | 拒绝操作 |157| `confirm:no` | Escape | 拒绝操作 |

158| `confirm:previous` | Up | 上一个选项 |158| `confirm:previous` | Up | 上一个选项 |


195在 `Confirmation` 上下文中可用的权限对话框操作:195在 `Confirmation` 上下文中可用的权限对话框操作:

196 196 

197| 操作 | 默认 | 描述 |197| 操作 | 默认 | 描述 |

198| :----------------------- | :---- | :-------------------------------------------------------- |198| :- | :- | :- |

199| `permission:toggleDebug` | (未绑定) | 切换权限调试信息。之前的 Ctrl+D 默认值在 v2.1.146 中被移除,因为它与 `app:exit` 冲突 |199| `permission:toggleDebug` | (未绑定) | 切换权限调试信息。之前的 Ctrl+D 默认值在 v2.1.146 中被移除,因为它与 `app:exit` 冲突 |

200 200 

201<h3 id="transcript-actions">201<h3 id="transcript-actions">


205在 `Transcript` 上下文中可用的操作:205在 `Transcript` 上下文中可用的操作:

206 206 

207| 操作 | 默认 | 描述 |207| 操作 | 默认 | 描述 |

208| :------------------------- | :---------------- | :------- |208| :- | :- | :- |

209| `transcript:toggleShowAll` | Ctrl+E | 切换显示所有内容 |209| `transcript:toggleShowAll` | Ctrl+E | 切换显示所有内容 |

210| `transcript:exit` | q, Ctrl+C, Escape | 退出记录视图 |210| `transcript:exit` | q, Ctrl+C, Escape | 退出记录视图 |

211 211 


218在 `HistorySearch` 上下文中可用的操作:218在 `HistorySearch` 上下文中可用的操作:

219 219 

220| 操作 | 默认 | 描述 |220| 操作 | 默认 | 描述 |

221| :------------------------- | :---------- | :-------------- |221| :- | :- | :- |

222| `historySearch:next` | Ctrl+R | 下一个匹配项 |222| `historySearch:next` | Ctrl+R | 下一个匹配项 |

223| `historySearch:accept` | Escape, Tab | 接受选择 |223| `historySearch:accept` | Escape, Tab | 接受选择 |

224| `historySearch:cancel` | Ctrl+C | 取消搜索 |224| `historySearch:cancel` | Ctrl+C | 取消搜索 |


234在 `Task` 上下文中可用的操作:234在 `Task` 上下文中可用的操作:

235 235 

236| 操作 | 默认 | 描述 |236| 操作 | 默认 | 描述 |

237| :---------------- | :-------------------- | :--------------------------------- |237| :- | :- | :- |

238| `task:background` | Ctrl+B, Ctrl+X Ctrl+B | 后台当前任务。Ctrl+X Ctrl+B 弦避免 tmux 前缀冲突 |238| `task:background` | Ctrl+B, Ctrl+X Ctrl+B | 后台当前任务。Ctrl+X Ctrl+B 弦避免 tmux 前缀冲突 |

239 239 

240<h3 id="theme-actions">240<h3 id="theme-actions">


244在 `ThemePicker` 上下文中可用的操作:244在 `ThemePicker` 上下文中可用的操作:

245 245 

246| 操作 | 默认 | 描述 |246| 操作 | 默认 | 描述 |

247| :------------------------------- | :----- | :----- |247| :- | :- | :- |

248| `theme:toggleSyntaxHighlighting` | Ctrl+T | 切换语法高亮 |248| `theme:toggleSyntaxHighlighting` | Ctrl+T | 切换语法高亮 |

249 249 

250<h3 id="help-actions">250<h3 id="help-actions">


254在 `Help` 上下文中可用的操作:254在 `Help` 上下文中可用的操作:

255 255 

256| 操作 | 默认 | 描述 |256| 操作 | 默认 | 描述 |

257| :------------- | :----- | :----- |257| :- | :- | :- |

258| `help:dismiss` | Escape | 关闭帮助菜单 |258| `help:dismiss` | Escape | 关闭帮助菜单 |

259 259 

260<h3 id="tabs-actions">260<h3 id="tabs-actions">


264在 `Tabs` 上下文中可用的操作:264在 `Tabs` 上下文中可用的操作:

265 265 

266| 操作 | 默认 | 描述 |266| 操作 | 默认 | 描述 |

267| :-------------- | :-------------- | :----- |267| :- | :- | :- |

268| `tabs:next` | Tab, Right | 下一个标签页 |268| `tabs:next` | Tab, Right | 下一个标签页 |

269| `tabs:previous` | Shift+Tab, Left | 上一个标签页 |269| `tabs:previous` | Shift+Tab, Left | 上一个标签页 |

270 270 


275在 `Attachments` 上下文中可用的操作:275在 `Attachments` 上下文中可用的操作:

276 276 

277| 操作 | 默认 | 描述 |277| 操作 | 默认 | 描述 |

278| :--------------------- | :---------------- | :------ |278| :- | :- | :- |

279| `attachments:next` | Right | 下一个附件 |279| `attachments:next` | Right | 下一个附件 |

280| `attachments:previous` | Left | 上一个附件 |280| `attachments:previous` | Left | 上一个附件 |

281| `attachments:remove` | Backspace, Delete | 移除选定的附件 |281| `attachments:remove` | Backspace, Delete | 移除选定的附件 |


288在 `Footer` 上下文中可用的操作:288在 `Footer` 上下文中可用的操作:

289 289 

290| 操作 | 默认 | 描述 |290| 操作 | 默认 | 描述 |

291| :---------------------- | :---------------- | :--------------------------------------------------------------------------------------------- |291| :- | :- | :- |

292| `footer:next` | Right | 下一个页脚项 |292| `footer:next` | Right | 下一个页脚项 |

293| `footer:previous` | Left | 上一个页脚项 |293| `footer:previous` | Left | 上一个页脚项 |

294| `footer:up` | Up | 在页脚中向上导航(在顶部取消选择) |294| `footer:up` | Up | 在页脚中向上导航(在顶部取消选择) |


308在 `MessageSelector` 上下文中可用的操作:308在 `MessageSelector` 上下文中可用的操作:

309 309 

310| 操作 | 默认 | 描述 |310| 操作 | 默认 | 描述 |

311| :----------------------- | :---------------------------------------- | :------- |311| :- | :- | :- |

312| `messageSelector:up` | Up, K, Ctrl+P | 在列表中向上移动 |312| `messageSelector:up` | Up, K, Ctrl+P | 在列表中向上移动 |

313| `messageSelector:down` | Down, J, Ctrl+N | 在列表中向下移动 |313| `messageSelector:down` | Down, J, Ctrl+N | 在列表中向下移动 |

314| `messageSelector:top` | Ctrl+Up, Shift+Up, Meta+Up, Shift+K | 跳到顶部 |314| `messageSelector:top` | Ctrl+Up, Shift+Up, Meta+Up, Shift+K | 跳到顶部 |


322在 `DiffDialog` 上下文中可用的操作:322在 `DiffDialog` 上下文中可用的操作:

323 323 

324| 操作 | 默认 | 描述 |324| 操作 | 默认 | 描述 |

325| :-------------------- | :------ | :------------------------------------------------------------------------------ |325| :- | :- | :- |

326| `diff:dismiss` | Escape | 关闭 diff 查看器;从详细视图返回到文件列表 |326| `diff:dismiss` | Escape | 关闭 diff 查看器;从详细视图返回到文件列表 |

327| `diff:previousSource` | Left | 上一个 diff 源 |327| `diff:previousSource` | Left | 上一个 diff 源 |

328| `diff:nextSource` | Right | 下一个 diff 源 |328| `diff:nextSource` | Right | 下一个 diff 源 |


334diff 详细视图还将寻呼机样式的键绑定到标准 [滚动操作](#scroll-actions)。这些绑定是 `DiffDialog` 上下文的一部分,仅在详细视图中应用;[滚动操作](#scroll-actions) 下列出的 `Scroll` 上下文默认值保持不变。334diff 详细视图还将寻呼机样式的键绑定到标准 [滚动操作](#scroll-actions)。这些绑定是 `DiffDialog` 上下文的一部分,仅在详细视图中应用;[滚动操作](#scroll-actions) 下列出的 `Scroll` 上下文默认值保持不变。

335 335 

336| 操作 | 默认 | 描述 |336| 操作 | 默认 | 描述 |

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

338| `scroll:pageUp` | PageUp | 向上滚动半个视口 |338| `scroll:pageUp` | PageUp | 向上滚动半个视口 |

339| `scroll:pageDown` | PageDown | 向下滚动半个视口 |339| `scroll:pageDown` | PageDown | 向下滚动半个视口 |

340| `scroll:fullPageUp` | Shift+Space, B | 向上滚动整个视口 |340| `scroll:fullPageUp` | Shift+Space, B | 向上滚动整个视口 |


349用于 [diff 面板](/docs/zh-CN/interactive-mode#diff-panel) 的操作,`/diff` 在全屏渲染中打开。`app:cycleDiffBase` 在 `DiffPanel` 上下文中,在面板打开时处于活动状态;其他的在 `Global` 中。该面板需要 Claude Code v2.1.260 或更高版本。349用于 [diff 面板](/docs/zh-CN/interactive-mode#diff-panel) 的操作,`/diff` 在全屏渲染中打开。`app:cycleDiffBase` 在 `DiffPanel` 上下文中,在面板打开时处于活动状态;其他的在 `Global` 中。该面板需要 Claude Code v2.1.260 或更高版本。

350 350 

351| 操作 | 默认 | 描述 |351| 操作 | 默认 | 描述 |

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

353| `app:toggleReplTab` | (未绑定) | 打开或关闭 diff 面板,与运行 `/diff` 相同 |353| `app:toggleReplTab` | (未绑定) | 打开或关闭 diff 面板,与运行 `/diff` 相同 |

354| `app:cycleDiffBase` | Ctrl+X B | 循环面板的比较基础:此会话、未提交、然后分支 |354| `app:cycleDiffBase` | Ctrl+X B | 循环面板的比较基础:此会话、未提交、然后分支 |

355| `app:diffFileListUp` | Ctrl+Up, Meta+Up | 当面板的文件列表溢出时向上滚动 |355| `app:diffFileListUp` | Ctrl+Up, Meta+Up | 当面板的文件列表溢出时向上滚动 |


364在 `ModelPicker` 上下文中可用的操作:364在 `ModelPicker` 上下文中可用的操作:

365 365 

366| 操作 | 默认 | 描述 |366| 操作 | 默认 | 描述 |

367| :---------------------------- | :---- | :-------------- |367| :- | :- | :- |

368| `modelPicker:decreaseEffort` | Left | 降低努力级别 |368| `modelPicker:decreaseEffort` | Left | 降低努力级别 |

369| `modelPicker:increaseEffort` | Right | 提高努力级别 |369| `modelPicker:increaseEffort` | Right | 提高努力级别 |

370| `modelPicker:thisSessionOnly` | s | 仅将突出显示的模型应用于此会话 |370| `modelPicker:thisSessionOnly` | s | 仅将突出显示的模型应用于此会话 |


376在 `EffortSlider` 上下文中可用的操作,当您运行不带参数的 `/effort` 时打开的滑块。滑块的 Left、Right、Enter 和 Escape 键无法重新绑定。376在 `EffortSlider` 上下文中可用的操作,当您运行不带参数的 `/effort` 时打开的滑块。滑块的 Left、Right、Enter 和 Escape 键无法重新绑定。

377 377 

378| 操作 | 默认 | 描述 |378| 操作 | 默认 | 描述 |

379| :----------------------------- | :- | :---------------------------------------------------------------------------- |379| :- | :- | :- |

380| `effortSlider:thisSessionOnly` | s | 仅将焦点 [努力级别](/docs/zh-CN/model-config#adjust-effort-level) 应用于此会话。需要 v2.1.257 或更高版本 |380| `effortSlider:thisSessionOnly` | s | 仅将焦点 [努力级别](/docs/zh-CN/model-config#adjust-effort-level) 应用于此会话。需要 v2.1.257 或更高版本 |

381 381 

382<h3 id="select-actions">382<h3 id="select-actions">


386在 `Select` 上下文中可用的操作:386在 `Select` 上下文中可用的操作:

387 387 

388| 操作 | 默认 | 描述 |388| 操作 | 默认 | 描述 |

389| :---------------- | :-------------- | :------- |389| :- | :- | :- |

390| `select:next` | Down, J, Ctrl+N | 下一个选项 |390| `select:next` | Down, J, Ctrl+N | 下一个选项 |

391| `select:previous` | Up, K, Ctrl+P | 上一个选项 |391| `select:previous` | Up, K, Ctrl+P | 上一个选项 |

392| `select:pageUp` | PageUp | 向上移动一页选项 |392| `select:pageUp` | PageUp | 向上移动一页选项 |


407在 `Plugin` 上下文中可用的操作:407在 `Plugin` 上下文中可用的操作:

408 408 

409| 操作 | 默认 | 描述 |409| 操作 | 默认 | 描述 |

410| :---------------- | :---- | :---------------------- |410| :- | :- | :- |

411| `plugin:toggle` | Space | 切换插件选择 |411| `plugin:toggle` | Space | 切换插件选择 |

412| `plugin:install` | I | 安装选定的插件 |412| `plugin:install` | I | 安装选定的插件 |

413| `plugin:favorite` | F | 收藏选定的插件,使其在"已安装"标签页附近排序 |413| `plugin:favorite` | F | 收藏选定的插件,使其在"已安装"标签页附近排序 |


419在 `Settings` 上下文中可用的操作。`select:accept` 和 `confirm:no` 操作从 [Select](#select-actions) 和 [Confirmation](#confirmation-actions) 上下文重用,具有特定于设置的行为:更改在您更改时立即应用于每个设置,因此 Escape 关闭面板并保存您的更改,而不是拒绝。419在 `Settings` 上下文中可用的操作。`select:accept` 和 `confirm:no` 操作从 [Select](#select-actions) 和 [Confirmation](#confirmation-actions) 上下文重用,具有特定于设置的行为:更改在您更改时立即应用于每个设置,因此 Escape 关闭面板并保存您的更改,而不是拒绝。

420 420 

421| 操作 | 默认 | 描述 |421| 操作 | 默认 | 描述 |

422| :---------------- | :----------- | :------------- |422| :- | :- | :- |

423| `settings:search` | / | 进入搜索模式 |423| `settings:search` | / | 进入搜索模式 |

424| `settings:retry` | R | 在错误时重试加载使用数据 |424| `settings:retry` | R | 在错误时重试加载使用数据 |

425| `select:accept` | Enter, Space | 更改选定的设置或打开其子菜单 |425| `select:accept` | Enter, Space | 更改选定的设置或打开其子菜单 |


432在 `Agents` 上下文中可用的操作,适用于 [agent 视图](/docs/zh-CN/agent-view),使用 `claude agents` 打开。需要 v2.1.257 或更高版本。432在 `Agents` 上下文中可用的操作,适用于 [agent 视图](/docs/zh-CN/agent-view),使用 `claude agents` 打开。需要 v2.1.257 或更高版本。

433 433 

434| 操作 | 默认 | 描述 |434| 操作 | 默认 | 描述 |

435| :------------------ | :----- | :----------------------------------------------------- |435| :- | :- | :- |

436| `agents:switchView` | Ctrl+S | 在状态和目录之间切换 [会话分组](/docs/zh-CN/agent-view#organize-the-list) |436| `agents:switchView` | Ctrl+S | 在状态和目录之间切换 [会话分组](/docs/zh-CN/agent-view#organize-the-list) |

437| `agents:togglePin` | Ctrl+T | [固定或取消固定](/docs/zh-CN/agent-view#organize-the-list) 选定的会话 |437| `agents:togglePin` | Ctrl+T | [固定或取消固定](/docs/zh-CN/agent-view#organize-the-list) 选定的会话 |

438 438 


449当 [语音听写](/docs/zh-CN/voice-dictation) 启用时,在 `Chat` 上下文中可用的操作:449当 [语音听写](/docs/zh-CN/voice-dictation) 启用时,在 `Chat` 上下文中可用的操作:

450 450 

451| 操作 | 默认 | 描述 |451| 操作 | 默认 | 描述 |

452| :----------------- | :---- | :----------------------- |452| :- | :- | :- |

453| `voice:pushToTalk` | Space | 听写提示。根据 `/voice` 模式按住或点击 |453| `voice:pushToTalk` | Space | 听写提示。根据 `/voice` 模式按住或点击 |

454 454 

455<h3 id="scroll-actions">455<h3 id="scroll-actions">


459当 [全屏渲染](/docs/zh-CN/fullscreen) 启用时,在 `Scroll` 上下文中可用的操作:459当 [全屏渲染](/docs/zh-CN/fullscreen) 启用时,在 `Scroll` 上下文中可用的操作:

460 460 

461| 操作 | 默认 | 描述 |461| 操作 | 默认 | 描述 |

462| :-------------------------- | :------------------- | :------------------------------------------------- |462| :- | :- | :- |

463| `scroll:lineUp` | `wheelup` | 向上滚动一行。鼠标滚轮滚动触发此操作 |463| `scroll:lineUp` | `wheelup` | 向上滚动一行。鼠标滚轮滚动触发此操作 |

464| `scroll:lineDown` | `wheeldown` | 向下滚动一行。鼠标滚轮滚动触发此操作 |464| `scroll:lineDown` | `wheeldown` | 向下滚动一行。鼠标滚轮滚动触发此操作 |

465| `scroll:pageUp` | PageUp | 向上滚动半个视口高度 |465| `scroll:pageUp` | PageUp | 向上滚动半个视口高度 |


615这些快捷键无法重新绑定:615这些快捷键无法重新绑定:

616 616 

617| 快捷键 | 原因 |617| 快捷键 | 原因 |

618| :-------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |618| :- | :- |

619| Ctrl+C | 硬编码的中断/取消 |619| Ctrl+C | 硬编码的中断/取消 |

620| Ctrl+D | 硬编码的退出 |620| Ctrl+D | 硬编码的退出 |

621| Ctrl+M | Claude Code 始终将其接收为 Enter |621| Ctrl+M | Claude Code 始终将其接收为 Enter |


631某些快捷键可能与终端多路复用器冲突:631某些快捷键可能与终端多路复用器冲突:

632 632 

633| 快捷键 | 冲突 |633| 快捷键 | 冲突 |

634| :----- | :----------------- |634| :- | :- |

635| Ctrl+B | tmux 前缀(按两次发送) |635| Ctrl+B | tmux 前缀(按两次发送) |

636| Ctrl+A | GNU screen 前缀 |636| Ctrl+A | GNU screen 前缀 |

637| Ctrl+Z | Unix 进程暂停(SIGTSTP) |637| Ctrl+Z | Unix 进程暂停(SIGTSTP) |

Details

23下面的每个设置都是独立的。它们相互叠加而不是相互替换,因此应用适合你的存储库的任何设置。[选择从哪里启动 Claude](#choose-where-to-start-claude) 决定了你的设置文件的位置,所以先阅读它。[将其整合在一起](#put-it-together) 展示了所有这些设置的组合。23下面的每个设置都是独立的。它们相互叠加而不是相互替换,因此应用适合你的存储库的任何设置。[选择从哪里启动 Claude](#choose-where-to-start-claude) 决定了你的设置文件的位置,所以先阅读它。[将其整合在一起](#put-it-together) 展示了所有这些设置的组合。

24 24 

25| 我想要 | 使用 |25| 我想要 | 使用 |

26| :-------------------------------- | :------------------------------------------------------------------------------------- |26| :- | :- |

27| 仅加载你接触的代码的约定,而不是一个根文件覆盖每个子系统 | 按目录的 [CLAUDE.md 文件](#layer-claude-md-files-by-directory) |27| 仅加载你接触的代码的约定,而不是一个根文件覆盖每个子系统 | 按目录的 [CLAUDE.md 文件](#layer-claude-md-files-by-directory) |

28| 排除你从不处理的包的 CLAUDE.md 文件 | [`claudeMdExcludes`](#exclude-irrelevant-claude-md-files) |28| 排除你从不处理的包的 CLAUDE.md 文件 | [`claudeMdExcludes`](#exclude-irrelevant-claude-md-files) |

29| 阻止 Claude 打开构建输出、生成的代码和供应商依赖 | `permissions.deny` 中的 [`Read` 拒绝规则](#block-reads-of-generated-and-vendored-code) |29| 阻止 Claude 打开构建输出、生成的代码和供应商依赖 | `permissions.deny` 中的 [`Read` 拒绝规则](#block-reads-of-generated-and-vendored-code) |


67你启动 `claude` 的位置决定了 Claude 可以读取和编辑哪些文件而无需额外权限授予、在启动时加载哪些 CLAUDE.md 文件,以及哪些项目设置适用。67你启动 `claude` 的位置决定了 Claude 可以读取和编辑哪些文件而无需额外权限授予、在启动时加载哪些 CLAUDE.md 文件,以及哪些项目设置适用。

68 68 

69| 从以下位置启动 | 文件访问 | 启动时加载的 CLAUDE.md | 使用场景 |69| 从以下位置启动 | 文件访问 | 启动时加载的 CLAUDE.md | 使用场景 |

70| :------ | :------------- | :----------------------------- | :------------ |70| :- | :- | :- | :- |

71| 存储库根目录 | 每个文件 | 仅根目录;当 Claude 在那里读取时,子目录文件按需加载 | 任务跨越多个包或子系统 |71| 存储库根目录 | 每个文件 | 仅根目录;当 Claude 在那里读取时,子目录文件按需加载 | 任务跨越多个包或子系统 |

72| 子目录 | 仅该子树,直到你授予更多权限 | 该目录的加上每个祖先的 | 工作范围限于一个包或子系统 |72| 子目录 | 仅该子树,直到你授予更多权限 | 该目录的加上每个祖先的 | 工作范围限于一个包或子系统 |

73 73 


123按目录的 `CLAUDE.md` 文件和 `.claude/rules/` 下的[路径范围规则](/docs/zh-CN/memory#path-specific-rules)都允许你将指令定向到树的一部分。它们在文件位置和加载时间上有所不同。123按目录的 `CLAUDE.md` 文件和 `.claude/rules/` 下的[路径范围规则](/docs/zh-CN/memory#path-specific-rules)都允许你将指令定向到树的一部分。它们在文件位置和加载时间上有所不同。

124 124 

125| 方法 | 文件位置 | 加载时间 | 使用场景 |125| 方法 | 文件位置 | 加载时间 | 使用场景 |

126| :------------------------ | :------------------- | :----------------------------------- | :---------------------------- |126| :- | :- | :- | :- |

127| 按目录 `CLAUDE.md` | 在目录内,与其代码一起 | 从该目录启动时在启动时,或当 Claude 在那里读取文件时按需 | 目录所有者维护自己的约定;指令与代码一起版本化 |127| 按目录 `CLAUDE.md` | 在目录内,与其代码一起 | 从该目录启动时在启动时,或当 Claude 在那里读取文件时按需 | 目录所有者维护自己的约定;指令与代码一起版本化 |

128| `.claude/rules/` 中的路径范围规则 | 存储库根目录的中央 `.claude/` | 当 Claude 处理与规则的 `paths:` glob 匹配的文件时 | 你想要一个地方的所有约定,或相同的规则适用于许多分散的路径 |128| `.claude/rules/` 中的路径范围规则 | 存储库根目录的中央 `.claude/` | 当 Claude 处理与规则的 `paths:` glob 匹配的文件时 | 你想要一个地方的所有约定,或相同的规则适用于许多分散的路径 |

129 129 


316无论你如何添加目录,Claude 都可以读取和编辑其中的文件。目录的 CLAUDE.md、`.claude/rules/` 文件和 skills 是否也加载取决于你如何添加它:316无论你如何添加目录,Claude 都可以读取和编辑其中的文件。目录的 CLAUDE.md、`.claude/rules/` 文件和 skills 是否也加载取决于你如何添加它:

317 317 

318| 添加方式 | 加载 CLAUDE.md 和规则 | 加载 skills |318| 添加方式 | 加载 CLAUDE.md 和规则 | 加载 skills |

319| :---------------------------- | :--------------- | :-------- |319| :- | :- | :- |

320| `additionalDirectories` 设置 | 从不 | 从不 |320| `additionalDirectories` 设置 | 从不 | 从不 |

321| `--add-dir` 标志或 `/add-dir` 命令 | 仅使用下面的环境变量 | 是 |321| `--add-dir` 标志或 `/add-dir` 命令 | 仅使用下面的环境变量 | 是 |

322 322 

Details

64要向网关验证 Claude Code,请在环境变量中设置您的凭证。哪个变量取决于您的网关团队告诉您的内容:64要向网关验证 Claude Code,请在环境变量中设置您的凭证。哪个变量取决于您的网关团队告诉您的内容:

65 65 

66| 在以下位置设置凭证 | 使用时机 |66| 在以下位置设置凭证 | 使用时机 |

67| :------------------------------------------------------ | :------------------------------------------- |67| :- | :- |

68| `ANTHROPIC_AUTH_TOKEN` | 您的网关团队说"bearer token"或"Authorization header" |68| `ANTHROPIC_AUTH_TOKEN` | 您的网关团队说"bearer token"或"Authorization header" |

69| `ANTHROPIC_API_KEY` | 您的网关团队说"API key"或"x-api-key" |69| `ANTHROPIC_API_KEY` | 您的网关团队说"API key"或"x-api-key" |

70| [`apiKeyHelper`](#rotate-credentials-with-apikeyhelper) | 凭证轮换或来自保管库 |70| [`apiKeyHelper`](#rotate-credentials-with-apikeyhelper) | 凭证轮换或来自保管库 |


578这些是通过网关运行 Claude Code 时最常见的错误,包括网关端的原因和修复:578这些是通过网关运行 Claude Code 时最常见的错误,包括网关端的原因和修复:

579 579 

580| 错误 | 原因 | 修复 |580| 错误 | 原因 | 修复 |

581| :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |581| :- | :- | :- |

582| 启动警告命名两个凭证源并以 `auth may not work as expected` 结尾。较旧的版本显示 `Auth conflict: Both a token (SOURCE) and an API key (SOURCE) are set` 代替。 | 网关凭证和保存的登录都处于活动状态;变量用于请求,但过时的登录可能导致意外的身份验证行为 | 取消设置变量以使用保存的登录,或运行 `/logout` 以使用网关凭证 |582| 启动警告命名两个凭证源并以 `auth may not work as expected` 结尾。较旧的版本显示 `Auth conflict: Both a token (SOURCE) and an API key (SOURCE) are set` 代替。 | 网关凭证和保存的登录都处于活动状态;变量用于请求,但过时的登录可能导致意外的身份验证行为 | 取消设置变量以使用保存的登录,或运行 `/logout` 以使用网关凭证 |

583| `401` 错误命名无效或无法识别的令牌 | 凭证不是网关颁发的,或它处于网关不读取的标头中 | 确认变量与[凭证表](#set-the-credential-variable)中的凭证类型匹配,如果凭证被撤销,请在网关处重新生成密钥 |583| `401` 错误命名无效或无法识别的令牌 | 凭证不是网关颁发的,或它处于网关不读取的标头中 | 确认变量与[凭证表](#set-the-credential-variable)中的凭证类型匹配,如果凭证被撤销,请在网关处重新生成密钥 |

584| `Your apiKeyHelper script is failing`,或在非交互模式下 stderr 上的 `apiKeyHelper failed:` | [`apiKeyHelper`](/docs/zh-CN/settings-reference#apikeyhelper) 设置中的命令未生成可用的密钥,因此请求携带占位符密钥 | 直接运行该命令以查看失败原因,如果报告会话过期,请使用您的凭证提供商重新身份验证;请参阅[错误参考](/docs/zh-CN/errors#your-apikeyhelper-script-is-failing) |584| `Your apiKeyHelper script is failing`,或在非交互模式下 stderr 上的 `apiKeyHelper failed:` | [`apiKeyHelper`](/docs/zh-CN/settings-reference#apikeyhelper) 设置中的命令未生成可用的密钥,因此请求携带占位符密钥 | 直接运行该命令以查看失败原因,如果报告会话过期,请使用您的凭证提供商重新身份验证;请参阅[错误参考](/docs/zh-CN/errors#your-apikeyhelper-script-is-failing) |

Details

41Google Cloud 的 Agent Platform 是 Google Cloud 的 Claude 端点,原名为 Vertex AI;其变量名保留 `VERTEX` 拼写。41Google Cloud 的 Agent Platform 是 Google Cloud 的 Claude 端点,原名为 Vertex AI;其变量名保留 `VERTEX` 拼写。

42 42 

43| 格式 | 选择方式 | 端点 | 原样转发 |43| 格式 | 选择方式 | 端点 | 原样转发 |

44| :--------------------------------------- | :---------------------------------------------------------- | :------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------- |44| :- | :- | :- | :- |

45| Anthropic Messages | `ANTHROPIC_BASE_URL` | `/v1/messages`, `/v1/messages/count_tokens`(可选) | `anthropic-beta` 和 `anthropic-version` 请求头 |45| Anthropic Messages | `ANTHROPIC_BASE_URL` | `/v1/messages`, `/v1/messages/count_tokens`(可选) | `anthropic-beta` 和 `anthropic-version` 请求头 |

46| Amazon Bedrock InvokeModel | `ANTHROPIC_BEDROCK_BASE_URL` 配合 `CLAUDE_CODE_USE_BEDROCK=1` | `/model/{model}/invoke`, `/model/{model}/invoke-with-response-stream`, `/model/{model}/count-tokens`(可选) | `anthropic_beta` 和 `anthropic_version` 请求体字段 |46| Amazon Bedrock InvokeModel | `ANTHROPIC_BEDROCK_BASE_URL` 配合 `CLAUDE_CODE_USE_BEDROCK=1` | `/model/{model}/invoke`, `/model/{model}/invoke-with-response-stream`, `/model/{model}/count-tokens`(可选) | `anthropic_beta` 和 `anthropic_version` 请求体字段 |

47| Google Cloud's Agent Platform rawPredict | `ANTHROPIC_VERTEX_BASE_URL` 配合 `CLAUDE_CODE_USE_VERTEX=1` | `:rawPredict`, `:streamRawPredict`, `count-tokens:rawPredict`(可选) | `anthropic-beta` 和 `anthropic-version` 请求头,以及 `anthropic_version` 请求体字段 |47| Google Cloud's Agent Platform rawPredict | `ANTHROPIC_VERTEX_BASE_URL` 配合 `CLAUDE_CODE_USE_VERTEX=1` | `:rawPredict`, `:streamRawPredict`, `count-tokens:rawPredict`(可选) | `anthropic-beta` 和 `anthropic-version` 请求头,以及 `anthropic_version` 请求体字段 |


107下表比较了三种连接方法,每行一个行为。它省略了 Microsoft Foundry 和 Claude Platform on AWS,它们也使用 Anthropic Messages 格式,但 Claude Code 通过它们自己的变量访问。有关这些,请参阅 [Microsoft Foundry](/docs/zh-CN/microsoft-foundry) 和 [Claude Platform on AWS](/docs/zh-CN/claude-platform-on-aws) 页面。107下表比较了三种连接方法,每行一个行为。它省略了 Microsoft Foundry 和 Claude Platform on AWS,它们也使用 Anthropic Messages 格式,但 Claude Code 通过它们自己的变量访问。有关这些,请参阅 [Microsoft Foundry](/docs/zh-CN/microsoft-foundry) 和 [Claude Platform on AWS](/docs/zh-CN/claude-platform-on-aws) 页面。

108 108 

109| 行为 | Amazon Bedrock 或 Agent Platform 格式 | Anthropic Messages 格式 | Claude apps gateway 登录 |109| 行为 | Amazon Bedrock 或 Agent Platform 格式 | Anthropic Messages 格式 | Claude apps gateway 登录 |

110| :-------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------ | :-------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------ |110| :- | :- | :- | :- |

111| 默认情况下请求中的模型 ID | 提供商的形式,例如 Amazon Bedrock 上的 `us.anthropic.claude-opus-4-8` | Anthropic ID,例如 `claude-opus-4-8` | Anthropic ID |111| 默认情况下请求中的模型 ID | 提供商的形式,例如 Amazon Bedrock 上的 `us.anthropic.claude-opus-4-8` | Anthropic ID,例如 `claude-opus-4-8` | Anthropic ID |

112| 发送的 `anthropic-beta` 值 | Amazon Bedrock 和 Agent Platform 接受的子集 | [功能传递](#feature-pass-through)下描述的完整集合,除非开发者设置 [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS`](#disable-pre-release-capabilities) | Amazon Bedrock 和 Agent Platform 接受的子集 |112| 发送的 `anthropic-beta` 值 | Amazon Bedrock 和 Agent Platform 接受的子集 | [功能传递](#feature-pass-through)下描述的完整集合,除非开发者设置 [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS`](#disable-pre-release-capabilities) | Amazon Bedrock 和 Agent Platform 接受的子集 |

113| Claude Code 无法识别的模型 ID(例如网关别名)的请求字段 | 使用固定预算的思考而不是自适应推理,以及没有努力或上下文管理字段 | 当前 Claude 模型在 Claude API 上接受的所有内容,包括自适应推理、努力和上下文管理,Amazon Bedrock 或 Agent Platform 上游可能会拒绝 | 与 Amazon Bedrock 或 Agent Platform 格式相同 |113| Claude Code 无法识别的模型 ID(例如网关别名)的请求字段 | 使用固定预算的思考而不是自适应推理,以及没有努力或上下文管理字段 | 当前 Claude 模型在 Claude API 上接受的所有内容,包括自适应推理、努力和上下文管理,Amazon Bedrock 或 Agent Platform 上游可能会拒绝 | 与 Amazon Bedrock 或 Agent Platform 格式相同 |


132Claude Code 在 API 请求上包含这些请求头。请求头名称在网络上不区分大小写。转发 `anthropic-version` 和 `anthropic-beta` 不变,加上当上游是 [AWS 上的 Claude Platform](/docs/zh-CN/claude-platform-on-aws) 时的 `anthropic-workspace-id`;其余的 gateway 可能会使用它们进行路由、归属和跟踪,不需要转发。132Claude Code 在 API 请求上包含这些请求头。请求头名称在网络上不区分大小写。转发 `anthropic-version` 和 `anthropic-beta` 不变,加上当上游是 [AWS 上的 Claude Platform](/docs/zh-CN/claude-platform-on-aws) 时的 `anthropic-workspace-id`;其余的 gateway 可能会使用它们进行路由、归属和跟踪,不需要转发。

133 133 

134| 请求头 | 描述 |134| 请求头 | 描述 |

135| :------------------------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |135| :- | :- |

136| `Authorization`、`x-api-key` | 开发者的 gateway 凭证,根据他们设置的[凭证变量](/docs/zh-CN/llm-gateway-connect#set-the-credential-variable)在一个或两个请求头中 |136| `Authorization`、`x-api-key` | 开发者的 gateway 凭证,根据他们设置的[凭证变量](/docs/zh-CN/llm-gateway-connect#set-the-credential-variable)在一个或两个请求头中 |

137| `anthropic-version` | API 版本,目前为 `2023-06-01`。Amazon Bedrock 和 Google Cloud 的 Agent Platform 格式请求也携带 `anthropic_version` 请求体字段,其值是提供商方言字符串,而不是此请求头的值 |137| `anthropic-version` | API 版本,目前为 `2023-06-01`。Amazon Bedrock 和 Google Cloud 的 Agent Platform 格式请求也携带 `anthropic_version` 请求体字段,其值是提供商方言字符串,而不是此请求头的值 |

138| `anthropic-beta` | 请求的逗号分隔功能值。逐字转发请求头;不要将单个值列入白名单,因为该集合随 Claude Code 版本而变化。当开发者使用 claude.ai 登录进行身份验证时(当设置 `ANTHROPIC_BASE_URL` 而不设置 gateway 凭证变量时可能),此请求头还携带上游需要的 OAuth 功能,删除它会导致这些请求失败,返回 `401` |138| `anthropic-beta` | 请求的逗号分隔功能值。逐字转发请求头;不要将单个值列入白名单,因为该集合随 Claude Code 版本而变化。当开发者使用 claude.ai 登录进行身份验证时(当设置 `ANTHROPIC_BASE_URL` 而不设置 gateway 凭证变量时可能),此请求头还携带上游需要的 OAuth 功能,删除它会导致这些请求失败,返回 `401` |


161这些请求头仅携带下面行列出的内容:固定词汇、工具名称和持续时间,从不包含提示文本或文件内容。每个值都是可打印的 ASCII。161这些请求头仅携带下面行列出的内容:固定词汇、工具名称和持续时间,从不包含提示文本或文件内容。每个值都是可打印的 ASCII。

162 162 

163| 请求头 | 描述 |163| 请求头 | 描述 |

164| :---------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |164| :- | :- |

165| `x-claude-code-request-class` | 这是什么类型的请求:`main` 表示主对话的一个回合,`subagent` 表示[子代理](/docs/zh-CN/sub-agents)的一个回合,`workflow` 表示在工作流内运行的代理,`compaction` 表示压缩对话的总结请求,或 `auxiliary` 表示会话标题、分类器和摘要等辅助请求。在每个请求上发送 |165| `x-claude-code-request-class` | 这是什么类型的请求:`main` 表示主对话的一个回合,`subagent` 表示[子代理](/docs/zh-CN/sub-agents)的一个回合,`workflow` 表示在工作流内运行的代理,`compaction` 表示压缩对话的总结请求,或 `auxiliary` 表示会话标题、分类器和摘要等辅助请求。在每个请求上发送 |

166| `x-claude-code-agent-type` | 发出请求的子代理的类型:内置代理类型名称,如 `Explore`、`Plan` 或 `general-purpose`,或 `custom` 表示用户定义的代理,`teammate` 表示在主导的进程中运行的[代理团队](/docs/zh-CN/agent-teams)成员,或 `fork` 表示[分叉](/docs/zh-CN/sub-agents#fork-the-current-conversation)。仅在子代理自己的回合上存在;子代理的压缩或辅助请求保留代理 ID 但不携带类型。用户选择的代理名称永远不会被发送 |166| `x-claude-code-agent-type` | 发出请求的子代理的类型:内置代理类型名称,如 `Explore`、`Plan` 或 `general-purpose`,或 `custom` 表示用户定义的代理,`teammate` 表示在主导的进程中运行的[代理团队](/docs/zh-CN/agent-teams)成员,或 `fork` 表示[分叉](/docs/zh-CN/sub-agents#fork-the-current-conversation)。仅在子代理自己的回合上存在;子代理的压缩或辅助请求保留代理 ID 但不携带类型。用户选择的代理名称永远不会被发送 |

167| `x-claude-code-compaction` | 在[压缩](/docs/zh-CN/prompt-caching#compacting-the-conversation)期间总结对话的请求上存在。该值说明触发了什么:`auto` 表示上下文窗口接近容量,`manual` 表示 `/compact`,或 `reactive` 表示 API 拒绝请求过长。在所有其他请求上不存在 |167| `x-claude-code-compaction` | 在[压缩](/docs/zh-CN/prompt-caching#compacting-the-conversation)期间总结对话的请求上存在。该值说明触发了什么:`auto` 表示上下文窗口接近容量,`manual` 表示 `/compact`,或 `reactive` 表示 API 拒绝请求过长。在所有其他请求上不存在 |


194Claude Code 读取这些响应头来检测停滞的流、决定是否以及何时重试,以及显示使用限制。该表列出了每个响应头应返回的内容。同时转发错误响应体不做修改,以便 Claude Code 的[能力拒绝恢复](#automatic-retry-and-error-forwarding)可以匹配上游的错误措辞。194Claude Code 读取这些响应头来检测停滞的流、决定是否以及何时重试,以及显示使用限制。该表列出了每个响应头应返回的内容。同时转发错误响应体不做修改,以便 Claude Code 的[能力拒绝恢复](#automatic-retry-and-error-forwarding)可以匹配上游的错误措辞。

195 195 

196| 头部 | 返回内容及原因 |196| 头部 | 返回内容及原因 |

197| :------------------------------ | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |197| :- | :- |

198| `content-type` | 在流式 Anthropic Messages 格式响应上返回 `text/event-stream`,在 Amazon Bedrock 格式响应上返回 `application/vnd.amazon.eventstream`(不做修改),其中[不同的类型会导致请求失败](/docs/zh-CN/amazon-bedrock#streaming-errors-behind-a-gateway-or-proxy)。[流式传输](#streaming)列出了哪些连接在这些流上运行停滞检测 |198| `content-type` | 在流式 Anthropic Messages 格式响应上返回 `text/event-stream`,在 Amazon Bedrock 格式响应上返回 `application/vnd.amazon.eventstream`(不做修改),其中[不同的类型会导致请求失败](/docs/zh-CN/amazon-bedrock#streaming-errors-behind-a-gateway-or-proxy)。[流式传输](#streaming)列出了哪些连接在这些流上运行停滞检测 |

199| `retry-after` | 返回整数秒而不是 HTTP 日期。Claude Code 在下一次[自动重试](/docs/zh-CN/errors#automatic-retries)之前至少等待该时长,在 [`CLAUDE_CODE_RETRY_WATCHDOG`](/docs/zh-CN/env-vars) 会话之外,超过 60 的值会停止重试并立即显示错误 |199| `retry-after` | 返回整数秒而不是 HTTP 日期。Claude Code 在下一次[自动重试](/docs/zh-CN/errors#automatic-retries)之前至少等待该时长,在 [`CLAUDE_CODE_RETRY_WATCHDOG`](/docs/zh-CN/env-vars) 会话之外,超过 60 的值会停止重试并立即显示错误 |

200| `x-should-retry` | 原样转发上游的值。Claude Code 在决定是否重试失败的请求时将此头部作为一个输入来读取:`true` 标记响应可重试,`false` 标记响应不可重试。有关重试次数、退避和 Claude Code 重试的失败情况,请参阅[自动重试](/docs/zh-CN/errors#automatic-retries) |200| `x-should-retry` | 原样转发上游的值。Claude Code 在决定是否重试失败的请求时将此头部作为一个输入来读取:`true` 标记响应可重试,`false` 标记响应不可重试。有关重试次数、退避和 Claude Code 重试的失败情况,请参阅[自动重试](/docs/zh-CN/errors#automatic-retries) |


235细粒度工具流式传输是直接连接默认值之一:每当请求通过自定义基础 URL 路由时,它默认关闭,当开发者设置 [`CLAUDE_CODE_ENABLE_FINE_GRAINED_TOOL_STREAMING=1`](/docs/zh-CN/env-vars) 时,gateway 会接收它。235细粒度工具流式传输是直接连接默认值之一:每当请求通过自定义基础 URL 路由时,它默认关闭,当开发者设置 [`CLAUDE_CODE_ENABLE_FINE_GRAINED_TOOL_STREAMING=1`](/docs/zh-CN/env-vars) 时,gateway 会接收它。

236 236 

237| 功能 | 请求头和请求体对 | 破坏时的症状 | 补救 |237| 功能 | 请求头和请求体对 | 破坏时的症状 | 补救 |

238| :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------ | :------------------------------------------------------------------------------------- |238| :- | :- | :- | :- |

239| [自适应推理](/docs/zh-CN/model-config#adjust-effort-level) | 无 beta 请求头。Claude Code 为 Claude 4.6 及更高版本发送 `thinking: {"type": "adaptive"}`,并将它不识别的模型名称(如 gateway 别名)视为接收该字段的当前模型 | 当上游模型构建不接受它时,命名 `thinking` 字段或 `adaptive` 标签的 `400` | 升级上游。在 Opus 4.6 和 Sonnet 4.6 上,开发者可以改为设置 `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1` |239| [自适应推理](/docs/zh-CN/model-config#adjust-effort-level) | 无 beta 请求头。Claude Code 为 Claude 4.6 及更高版本发送 `thinking: {"type": "adaptive"}`,并将它不识别的模型名称(如 gateway 别名)视为接收该字段的当前模型 | 当上游模型构建不接受它时,命名 `thinking` 字段或 `adaptive` 标签的 `400` | 升级上游。在 Opus 4.6 和 Sonnet 4.6 上,开发者可以改为设置 `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1` |

240| [上下文管理](https://platform.claude.com/docs/en/build-with-claude/context-editing) | 上下文管理 beta 请求头与 `context_management` 请求体字段配对 | `400` 带有 `Extra inputs are not permitted`。常见于 gateway 接受 Anthropic 格式请求但将其转发到 Amazon Bedrock 时 | 转发两者,或 [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](/docs/zh-CN/env-vars) |240| [上下文管理](https://platform.claude.com/docs/en/build-with-claude/context-editing) | 上下文管理 beta 请求头与 `context_management` 请求体字段配对 | `400` 带有 `Extra inputs are not permitted`。常见于 gateway 接受 Anthropic 格式请求但将其转发到 Amazon Bedrock 时 | 转发两者,或 [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](/docs/zh-CN/env-vars) |

241| [扩展上下文](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model)和[交错思考](https://platform.claude.com/docs/en/build-with-claude/extended-thinking#interleaved-thinking) | 仅 Beta 请求头,无请求体字段 | 当请求头被删除时无声地不可用;上游永远不会看到功能请求 | 逐字转发 `anthropic-beta` |241| [扩展上下文](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model)和[交错思考](https://platform.claude.com/docs/en/build-with-claude/extended-thinking#interleaved-thinking) | 仅 Beta 请求头,无请求体字段 | 当请求头被删除时无声地不可用;上游永远不会看到功能请求 | 逐字转发 `anthropic-beta` |

Details

56这些步骤涉及三个不同的凭证,检查点用占位符命名它们,以便您可以在出现问题时判断哪个有问题:56这些步骤涉及三个不同的凭证,检查点用占位符命名它们,以便您可以在出现问题时判断哪个有问题:

57 57 

58| 凭证 | 谁持有它 | 检查点中的占位符 |58| 凭证 | 谁持有它 | 检查点中的占位符 |

59| :----- | :--------------------------------------------------- | :----------------- |59| :- | :- | :- |

60| 提供商凭证 | 网关,它将其转发给上游提供商 | 在网关上配置;从不出现在客户端命令中 |60| 提供商凭证 | 网关,它将其转发给上游提供商 | 在网关上配置;从不出现在客户端命令中 |

61| 网关管理凭证 | 您,如果您的网关产品为其管理或测试界面颁发一个 | `<gateway-key>` |61| 网关管理凭证 | 您,如果您的网关产品为其管理或测试界面颁发一个 | `<gateway-key>` |

62| 开发者密钥 | 每个开发者,由网关在[颁发开发者凭证](#issue-developer-credentials)中颁发 | `<developer-key>` |62| 开发者密钥 | 每个开发者,由网关在[颁发开发者凭证](#issue-developer-credentials)中颁发 | `<developer-key>` |


180无论您选择哪条路径,都适用相同的变量集。大多数推出只需要 `ANTHROPIC_BASE_URL` 和凭证;当您的网关设置需要时包括条件行。180无论您选择哪条路径,都适用相同的变量集。大多数推出只需要 `ANTHROPIC_BASE_URL` 和凭证;当您的网关设置需要时包括条件行。

181 181 

182| 变量或设置 | 它的作用 | 包括时间 |182| 变量或设置 | 它的作用 | 包括时间 |

183| :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |183| :- | :- | :- |

184| `ANTHROPIC_BASE_URL` | 将 Claude Code 的 API 请求发送到网关而不是 `api.anthropic.com` | 总是 |184| `ANTHROPIC_BASE_URL` | 将 Claude Code 的 API 请求发送到网关而不是 `api.anthropic.com` | 总是 |

185| `apiKeyHelper`,或 `ANTHROPIC_AUTH_TOKEN` 或 `ANTHROPIC_API_KEY` 中的凭证 | 对网关的每个请求进行身份验证。助手运行命令来获取密钥;变量保存静态密钥,分别作为 `Authorization: Bearer` 和 `x-api-key` 发送 | 总是;三个中的一个 |185| `apiKeyHelper`,或 `ANTHROPIC_AUTH_TOKEN` 或 `ANTHROPIC_API_KEY` 中的凭证 | 对网关的每个请求进行身份验证。助手运行命令来获取密钥;变量保存静态密钥,分别作为 `Authorization: Bearer` 和 `x-api-key` 发送 | 总是;三个中的一个 |

186| `ANTHROPIC_CUSTOM_HEADERS` | 向每个 API 请求添加额外的 HTTP 标头 | 您的网关在每个请求上需要租户或路由标头 |186| `ANTHROPIC_CUSTOM_HEADERS` | 向每个 API 请求添加额外的 HTTP 标头 | 您的网关在每个请求上需要租户或路由标头 |


283推出后,三种变化会随着时间到达网关。每一种都有一个症状要观察和一个要采取的行动。283推出后,三种变化会随着时间到达网关。每一种都有一个症状要观察和一个要采取的行动。

284 284 

285| 变化 | 当网关没有跟上时的症状 | 行动 |285| 变化 | 当网关没有跟上时的症状 | 行动 |

286| :-------------------------------------------- | :------------------------------------------------------------------------------------------------ | :---------------------------------------------------------------------------------------------------------------------------------- |286| :- | :- | :- |

287| 新的 Claude Code 版本添加 `anthropic-beta` 值和请求正文字段 | 开发者在更新 Claude Code 后报告 `400` 错误,命名新字段;请参阅[功能传递](/docs/zh-CN/llm-gateway-protocol#feature-pass-through) | 逐字转发 `anthropic-*` 标头和请求正文,而不是允许列表;在新 Claude Code 版本到达开发者之前针对网关测试它们,检查[规划 Claude Code 版本升级](#plan-claude-code-version-upgrades)中的区域 |287| 新的 Claude Code 版本添加 `anthropic-beta` 值和请求正文字段 | 开发者在更新 Claude Code 后报告 `400` 错误,命名新字段;请参阅[功能传递](/docs/zh-CN/llm-gateway-protocol#feature-pass-through) | 逐字转发 `anthropic-*` 标头和请求正文,而不是允许列表;在新 Claude Code 版本到达开发者之前针对网关测试它们,检查[规划 Claude Code 版本升级](#plan-claude-code-version-upgrades)中的区域 |

288| 新的 Claude 模型变得可用 | 开发者选择新模型名称得到 `404`;`/model` 选择器不列出它 | 将模型名称添加到网关的路由配置,然后重新运行[路由检查](#confirm-the-gateway-routes-your-models)。如果您分发 `ANTHROPIC_MODEL` 或默认模型变量,更新托管设置 |288| 新的 Claude 模型变得可用 | 开发者选择新模型名称得到 `404`;`/model` 选择器不列出它 | 将模型名称添加到网关的路由配置,然后重新运行[路由检查](#confirm-the-gateway-routes-your-models)。如果您分发 `ANTHROPIC_MODEL` 或默认模型变量,更新托管设置 |

289| 凭证过期或需要轮换 | 所有开发者请求开始从上游失败,出现 `401` | 按照自己的计划轮换网关的提供商凭证;开发者密钥在网关处轮换,[`apiKeyHelper`](/docs/zh-CN/llm-gateway-connect#rotate-credentials-with-apikeyhelper) 处理每个开发者的轮换,无需重新分发设置 |289| 凭证过期或需要轮换 | 所有开发者请求开始从上游失败,出现 `401` | 按照自己的计划轮换网关的提供商凭证;开发者密钥在网关处轮换,[`apiKeyHelper`](/docs/zh-CN/llm-gateway-connect#rotate-credentials-with-apikeyhelper) 处理每个开发者的轮换,无需重新分发设置 |


299当您测试一个版本时,网关拒绝的新标头或请求字段显示为[维护网关](#maintain-the-gateway)中描述的 `400` 错误。下表涵盖不产生错误的版本相关变化,以及保持每个变化在升级中保持不变的设置。299当您测试一个版本时,网关拒绝的新标头或请求字段显示为[维护网关](#maintain-the-gateway)中描述的 `400` 错误。下表涵盖不产生错误的版本相关变化,以及保持每个变化在升级中保持不变的设置。

300 300 

301| 区域 | 开发者升级时可能改变的内容 | 保持其不变的设置 |301| 区域 | 开发者升级时可能改变的内容 | 保持其不变的设置 |

302| :------ | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |302| :- | :- | :- |

303| 功能标志默认值 | [不从 Anthropic 获取功能标志](/docs/zh-CN/env-vars#features-that-need-feature-flag-fetching)的会话,例如云提供商上的会话或关闭遥测的会话,使用内置于已安装版本中的标志默认值。当版本改变其中一个默认值时,这些开发者的行为在他们升级后立即改变 | 版本固定本身,`requiredMaximumVersion` 或 `DISABLE_UPDATES` |303| 功能标志默认值 | [不从 Anthropic 获取功能标志](/docs/zh-CN/env-vars#features-that-need-feature-flag-fetching)的会话,例如云提供商上的会话或关闭遥测的会话,使用内置于已安装版本中的标志默认值。当版本改变其中一个默认值时,这些开发者的行为在他们升级后立即改变 | 版本固定本身,`requiredMaximumVersion` 或 `DISABLE_UPDATES` |

304| 模型能力假设 | 已安装版本不识别的模型 ID,例如网关别名 `prod-opus`,对[自适应推理](/docs/zh-CN/model-config#adaptive-reasoning-and-fixed-thinking-budgets)、努力参数和[上下文窗口](/docs/zh-CN/model-config#correct-the-window-for-a-gateway-or-custom-model-id)运行默认假设,直到更高版本识别该 ID 或您映射它 | 在网关处路由 Anthropic 模型 ID,或添加[`modelOverrides`](/docs/zh-CN/model-config#override-model-ids-per-version)条目,将 Anthropic 模型 ID 映射到您的别名。在云提供商连接上,您可以改为[声明固定模型的能力](/docs/zh-CN/model-config#customize-pinned-model-display-and-capabilities) |304| 模型能力假设 | 已安装版本不识别的模型 ID,例如网关别名 `prod-opus`,对[自适应推理](/docs/zh-CN/model-config#adaptive-reasoning-and-fixed-thinking-budgets)、努力参数和[上下文窗口](/docs/zh-CN/model-config#correct-the-window-for-a-gateway-or-custom-model-id)运行默认假设,直到更高版本识别该 ID 或您映射它 | 在网关处路由 Anthropic 模型 ID,或添加[`modelOverrides`](/docs/zh-CN/model-config#override-model-ids-per-version)条目,将 Anthropic 模型 ID 映射到您的别名。在云提供商连接上,您可以改为[声明固定模型的能力](/docs/zh-CN/model-config#customize-pinned-model-display-and-capabilities) |

305| 默认模型和别名 | 新会话默认启动的模型,以及别名(如 `opus` 和 `sonnet`)解析到的模型,[内置于每个版本](/docs/zh-CN/model-config#pin-models-for-third-party-deployments)中,开发者升级时可能改变 | [`ANTHROPIC_DEFAULT_MODEL`](/docs/zh-CN/model-config#set-a-default-model-for-new-sessions) 用于新会话启动的模型,以及 [`ANTHROPIC_DEFAULT_*_MODEL` 变量](/docs/zh-CN/model-config#environment-variables),例如 `ANTHROPIC_DEFAULT_OPUS_MODEL`,用于每个别名解析到的内容。`ANTHROPIC_DEFAULT_MODEL` 需要 Claude Code v2.1.236 或更高版本 |305| 默认模型和别名 | 新会话默认启动的模型,以及别名(如 `opus` 和 `sonnet`)解析到的模型,[内置于每个版本](/docs/zh-CN/model-config#pin-models-for-third-party-deployments)中,开发者升级时可能改变 | [`ANTHROPIC_DEFAULT_MODEL`](/docs/zh-CN/model-config#set-a-default-model-for-new-sessions) 用于新会话启动的模型,以及 [`ANTHROPIC_DEFAULT_*_MODEL` 变量](/docs/zh-CN/model-config#environment-variables),例如 `ANTHROPIC_DEFAULT_OPUS_MODEL`,用于每个别名解析到的内容。`ANTHROPIC_DEFAULT_MODEL` 需要 Claude Code v2.1.236 或更高版本 |

managed-mcp.md +14 −14

Details

30Claude Code 支持一系列限制级别。每个模式使用以下一个或多个机制:用于部署固定集合的 `managed-mcp.json`、用于提供服务器以及用户添加的服务器的 `managedMcpServers` 托管设置,以及用于过滤用户配置内容的 `allowedMcpServers`/`deniedMcpServers`。30Claude Code 支持一系列限制级别。每个模式使用以下一个或多个机制:用于部署固定集合的 `managed-mcp.json`、用于提供服务器以及用户添加的服务器的 `managedMcpServers` 托管设置,以及用于过滤用户配置内容的 `allowedMcpServers`/`deniedMcpServers`。

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)和任何你[通过 `managedMcpServers` 提供的服务器](#provide-servers-through-managed-settings) | 使用空服务器映射的 `managed-mcp.json` |

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

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


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

66 66 

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

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

69| macOS | `/Library/Application Support/ClaudeCode/managed-mcp.json` |69| macOS | `/Library/Application Support/ClaudeCode/managed-mcp.json` |

70| Linux 和 WSL | `/etc/claude-code/managed-mcp.json` |70| Linux 和 WSL | `/etc/claude-code/managed-mcp.json` |

71| Windows | `C:\Program Files\ClaudeCode\managed-mcp.json` |71| Windows | `C:\Program Files\ClaudeCode\managed-mcp.json` |


294`allowedMcpServers` 和 `deniedMcpServers` 是条目列表。每个条目是一个对象,具有单个键,用于按 URL、命令或名称标识服务器:294`allowedMcpServers` 和 `deniedMcpServers` 是条目列表。每个条目是一个对象,具有单个键,用于按 URL、命令或名称标识服务器:

295 295 

296| 键 | 匹配 | 用于 |296| 键 | 匹配 | 用于 |

297| :-------------- | :---------------------- | :------------- |297| :- | :- | :- |

298| `serverUrl` | 远程服务器 URL,精确或带有 `*` 通配符 | HTTP 和 SSE 服务器 |298| `serverUrl` | 远程服务器 URL,精确或带有 `*` 通配符 | HTTP 和 SSE 服务器 |

299| `serverCommand` | 启动 stdio 服务器的确切命令和参数 | Stdio 服务器 |299| `serverCommand` | 启动 stdio 服务器的确切命令和参数 | Stdio 服务器 |

300| `serverName` | 用户分配的标签。仅精确匹配;通配符不展开 | 任一类型,但请参阅下面的警告 |300| `serverName` | 用户分配的标签。仅精确匹配;通配符不展开 | 任一类型,但请参阅下面的警告 |


302将 `allowedMcpServers` 保留未设置与将其设置为空数组不同:302将 `allowedMcpServers` 保留未设置与将其设置为空数组不同:

303 303 

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

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

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

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

308 308 


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

335 335 

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

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

338| 远程(HTTP 或 SSE) | 一个 `serverUrl` 条目。仅当允许列表不包含 `serverUrl` 条目时,`serverName` 匹配才计数 |338| 远程(HTTP 或 SSE) | 一个 `serverUrl` 条目。仅当允许列表不包含 `serverUrl` 条目时,`serverName` 匹配才计数 |

339| Stdio | 一个 `serverCommand` 条目。仅当允许列表不包含 `serverCommand` 条目时,`serverName` 匹配才计数 |339| Stdio | 一个 `serverCommand` 条目。仅当允许列表不包含 `serverCommand` 条目时,`serverName` 匹配才计数 |

340 340 


345* **URL 支持 `*` 通配符**在模式中的任何地方,包括方案。主机名匹配不区分大小写,忽略尾部 FQDN 点,因此 `https://Mcp.Example.com/*` 匹配 `https://mcp.example.com/api`。路径保持区分大小写。345* **URL 支持 `*` 通配符**在模式中的任何地方,包括方案。主机名匹配不区分大小写,忽略尾部 FQDN 点,因此 `https://Mcp.Example.com/*` 匹配 `https://mcp.example.com/api`。路径保持区分大小写。

346 346 

347| 模式 | 允许 |347| 模式 | 允许 |

348| :-------------------------- | :------------------------ |348| :- | :- |

349| `https://mcp.example.com/*` | 特定域上的所有路径 |349| `https://mcp.example.com/*` | 特定域上的所有路径 |

350| `https://mcp.example.com` | 也允许该域上的所有路径。没有路径的模式匹配任何路径 |350| `https://mcp.example.com` | 也允许该域上的所有路径。没有路径的模式匹配任何路径 |

351| `https://*.example.com/*` | `example.com` 的任何子域 |351| `https://*.example.com/*` | `example.com` 的任何子域 |


359服务器的配置值从实时进程环境展开,就像 `.mcp.json` 的其余部分一样。策略条目从固定环境展开,因此由项目或用户设置文件设置的变量无法更改允许列表条目的含义。因为策略条目仍然取决于启动 shell 对其引用的任何变量的值,对于您依赖的条目以进行强制执行,请使用字面 URL 和命令。359服务器的配置值从实时进程环境展开,就像 `.mcp.json` 的其余部分一样。策略条目从固定环境展开,因此由项目或用户设置文件设置的变量无法更改允许列表条目的含义。因为策略条目仍然取决于启动 shell 对其引用的任何变量的值,对于您依赖的条目以进行强制执行,请使用字面 URL 和命令。

360 360 

361| 条目列表 | 展开自 | 会改变 URL 条目的方案、主机或路径范围的展开 |361| 条目列表 | 展开自 | 会改变 URL 条目的方案、主机或路径范围的展开 |

362| ------------------- | ---------------------------------------------------------------- | ------------------------ |362| - | - | - |

363| `allowedMcpServers` | Claude Code 启动时的环境,加上来自托管设置的 `env` 值 | Claude Code 忽略该条目 |363| `allowedMcpServers` | Claude Code 启动时的环境,加上来自托管设置的 `env` 值 | Claude Code 忽略该条目 |

364| `deniedMcpServers` | 相同,以及没有启动值且没有 `:-default` 的变量从存储库外的设置文件(如用户或托管设置)填充,这只会扩大条目匹配的内容 | 该条目仍然匹配 |364| `deniedMcpServers` | 相同,以及没有启动值且没有 `:-default` 的变量从存储库外的设置文件(如用户或托管设置)填充,这只会扩大条目匹配的内容 | 该条目仍然匹配 |

365 365 


408 ```408 ```

409 409 

410 | 服务器 | 结果 |410 | 服务器 | 结果 |

411 | :------------------------------------------------- | :-------------- |411 | :- | :- |

412 | `https://mcp.example.com/api` 处的 HTTP 服务器 | 允许:匹配 URL 模式 |412 | `https://mcp.example.com/api` 处的 HTTP 服务器 | 允许:匹配 URL 模式 |

413 | `https://api.internal.example.com/mcp` 处的 HTTP 服务器 | 允许:匹配通配符子域 |413 | `https://api.internal.example.com/mcp` 处的 HTTP 服务器 | 允许:匹配通配符子域 |

414 | `https://external.example.com/mcp` 处的 HTTP 服务器 | 阻止:不匹配任何 URL 模式 |414 | `https://external.example.com/mcp` 处的 HTTP 服务器 | 阻止:不匹配任何 URL 模式 |


425 ```425 ```

426 426 

427 | 服务器 | 结果 |427 | 服务器 | 结果 |

428 | :------------------------------------------------- | :----------- |428 | :- | :- |

429 | 具有 `["npx", "-y", "approved-package"]` 的 Stdio 服务器 | 允许:匹配命令 |429 | 具有 `["npx", "-y", "approved-package"]` 的 Stdio 服务器 | 允许:匹配命令 |

430 | 具有 `["node", "server.js"]` 的 Stdio 服务器 | 阻止:不匹配命令 |430 | 具有 `["node", "server.js"]` 的 Stdio 服务器 | 阻止:不匹配命令 |

431 | 名为 `my-api` 的 HTTP 服务器 | 阻止:没有名称条目可匹配 |431 | 名为 `my-api` 的 HTTP 服务器 | 阻止:没有名称条目可匹配 |


442 ```442 ```

443 443 

444 | 服务器 | 结果 |444 | 服务器 | 结果 |

445 | :----------------------------------------------------------------- | :------------------------- |445 | :- | :- |

446 | 名为 `local-tool` 的 Stdio 服务器,具有 `["npx", "-y", "approved-package"]` | 允许:匹配命令 |446 | 名为 `local-tool` 的 Stdio 服务器,具有 `["npx", "-y", "approved-package"]` | 允许:匹配命令 |

447 | 名为 `local-tool` 的 Stdio 服务器,具有 `["node", "server.js"]` | 阻止:命令条目存在但不匹配 |447 | 名为 `local-tool` 的 Stdio 服务器,具有 `["node", "server.js"]` | 阻止:命令条目存在但不匹配 |

448 | 名为 `github` 的 Stdio 服务器,具有 `["node", "server.js"]` | 阻止:stdio 服务器在存在命令条目时必须匹配命令 |448 | 名为 `github` 的 Stdio 服务器,具有 `["node", "server.js"]` | 阻止:stdio 服务器在存在命令条目时必须匹配命令 |


461 ```461 ```

462 462 

463 | 服务器 | 结果 |463 | 服务器 | 结果 |

464 | :------------------------------------ | :------- |464 | :- | :- |

465 | 名为 `github` 的 Stdio 服务器,具有任何命令 | 允许:无命令限制 |465 | 名为 `github` 的 Stdio 服务器,具有任何命令 | 允许:无命令限制 |

466 | 名为 `internal-tool` 的 Stdio 服务器,具有任何命令 | 允许:无命令限制 |466 | 名为 `internal-tool` 的 Stdio 服务器,具有任何命令 | 允许:无命令限制 |

467 | 名为 `github` 的 HTTP 服务器 | 允许:匹配名称 |467 | 名为 `github` 的 HTTP 服务器 | 允许:匹配名称 |


481 ```481 ```

482 482 

483 | 服务器 | 结果 |483 | 服务器 | 结果 |

484 | :-------------------------------------------- | :----------------------- |484 | :- | :- |

485 | `https://mcp.example.com/api` 处的 HTTP 服务器 | 允许:匹配允许列表 URL 模式,无拒绝列表匹配 |485 | `https://mcp.example.com/api` 处的 HTTP 服务器 | 允许:匹配允许列表 URL 模式,无拒绝列表匹配 |

486 | `https://staging.example.com/api` 处的 HTTP 服务器 | 阻止:两者都匹配,但拒绝列表优先 |486 | `https://staging.example.com/api` 处的 HTTP 服务器 | 阻止:两者都匹配,但拒绝列表优先 |

487 | `https://other.com/mcp` 处的 HTTP 服务器 | 阻止:不匹配允许列表 |487 | `https://other.com/mcp` 处的 HTTP 服务器 | 阻止:不匹配允许列表 |


512关于当部署 `managed-mcp.json` 且会话也有 `--mcp-config` 服务器时用户在启动时看到的内容,请参阅[使用 managed-mcp.json 的独占控制](#exclusive-control-with-managed-mcp-json)。使用此表格来识别其他报告,并在推出更改之前告诉用户应该期望什么:512关于当部署 `managed-mcp.json` 且会话也有 `--mcp-config` 服务器时用户在启动时看到的内容,请参阅[使用 managed-mcp.json 的独占控制](#exclusive-control-with-managed-mcp-json)。使用此表格来识别其他报告,并在推出更改之前告诉用户应该期望什么:

513 513 

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

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

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

517| 服务器在拒绝列表上且用户运行 `claude mcp add` | `Cannot add MCP server "<name>": server is explicitly blocked by enterprise policy` |517| 服务器在拒绝列表上且用户运行 `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` |518| 服务器不在允许列表上且用户运行 `claude mcp add` | `Cannot add MCP server "<name>": not allowed by enterprise policy` |


535本页面涵盖的每个文件和设置、它控制的内容以及如何交付它:535本页面涵盖的每个文件和设置、它控制的内容以及如何交付它:

536 536 

537| 表面 | 控制的内容 | 位置 | 如何交付 |537| 表面 | 控制的内容 | 位置 | 如何交付 |

538| :--------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------ | :------------------------------------------------------------------------------------------------------ | :----------------------------------------------------------------------------------------------------------------------- |538| :- | :- | :- | :- |

539| `managed-mcp.json` | 固定服务器集,独占控制 | 系统路径:`/Library/Application Support/ClaudeCode/`、`/etc/claude-code/` 或 `C:\Program Files\ClaudeCode\` | MDM、GPO、舰队管理或任何具有管理员权限的进程。无法通过服务器管理的设置设置 |539| `managed-mcp.json` | 固定服务器集,独占控制 | 系统路径:`/Library/Application Support/ClaudeCode/`、`/etc/claude-code/` 或 `C:\Program Files\ClaudeCode\` | MDM、GPO、舰队管理或任何具有管理员权限的进程。无法通过服务器管理的设置设置 |

540| `managedMcpServers` | 提供给每个用户的远程服务器,与他们自己的服务器一起 | 仅托管设置源;该设置在其他地方无效 | 一个[托管设置源](/docs/zh-CN/admin-setup#decide-how-settings-reach-devices):服务器管理的设置、网关策略、`managed-settings.json`、MDM 配置文件或 HKLM 注册表 |540| `managedMcpServers` | 提供给每个用户的远程服务器,与他们自己的服务器一起 | 仅托管设置源;该设置在其他地方无效 | 一个[托管设置源](/docs/zh-CN/admin-setup#decide-how-settings-reach-devices):服务器管理的设置、网关策略、`managed-settings.json`、MDM 配置文件或 HKLM 注册表 |

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 配置文件或注册表 |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 配置文件或注册表 |

Details

71通过您已经管理设备的方式选择一个机制,使用下表。71通过您已经管理设备的方式选择一个机制,使用下表。

72 72 

73| 机制 | 如何交付 | Claude Code 何时读取 | 何时使用 |73| 机制 | 如何交付 | Claude Code 何时读取 | 何时使用 |

74| :---------------------------------------- | :------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------- | :---------------------------------- |74| :- | :- | :- | :- |

75| [服务器托管设置](/docs/zh-CN/server-managed-settings) | 在 claude.ai 管理控制台中,或在自托管[Claude 应用网关](/docs/zh-CN/claude-apps-gateway)上 | 在启动时获取并每小时轮询一次;请参阅[需要批准的更改](#where-and-when-a-policy-applies) | 您想要一个地方为 claude.ai 组织更改策略,而无需接触每台机器 |75| [服务器托管设置](/docs/zh-CN/server-managed-settings) | 在 claude.ai 管理控制台中,或在自托管[Claude 应用网关](/docs/zh-CN/claude-apps-gateway)上 | 在启动时获取并每小时轮询一次;请参阅[需要批准的更改](#where-and-when-a-policy-applies) | 您想要一个地方为 claude.ai 组织更改策略,而无需接触每台机器 |

76| MDM 或操作系统级策略 | 作为 macOS 配置文件或 Windows `HKLM` 注册表值,通过 Jamf、Intune、组策略或类似工具;请参阅[每个机制存储策略的位置](#where-each-mechanism-stores-the-policy) | 在启动时读取并每 30 分钟检查一次更改 | 您已经使用 MDM 或组策略管理设备 |76| MDM 或操作系统级策略 | 作为 macOS 配置文件或 Windows `HKLM` 注册表值,通过 Jamf、Intune、组策略或类似工具;请参阅[每个机制存储策略的位置](#where-each-mechanism-stores-the-policy) | 在启动时读取并每 30 分钟检查一次更改 | 您已经使用 MDM 或组策略管理设备 |

77| 基于文件 | 作为每台机器上系统目录中的 `managed-settings.json`;请参阅[每个机制存储策略的位置](#where-each-mechanism-stores-the-policy) | 在启动时读取并在文件更改时重新加载 | 没有 MDM 的机器、Linux 主机或您自己构建的镜像 |77| 基于文件 | 作为每台机器上系统目录中的 `managed-settings.json`;请参阅[每个机制存储策略的位置](#where-each-mechanism-stores-the-policy) | 在启动时读取并在文件更改时重新加载 | 没有 MDM 的机器、Linux 主机或您自己构建的镜像 |


207此表显示 Claude Code 在 `"merge"` 下如何组合每种键。[`managedSourcesBehavior` 条目](/docs/zh-CN/settings-reference#managedsourcesbehavior) 命名三行中的每个键:限制允许列表、整体取值和仅从最高排名源读取的键。207此表显示 Claude Code 在 `"merge"` 下如何组合每种键。[`managedSourcesBehavior` 条目](/docs/zh-CN/settings-reference#managedsourcesbehavior) 命名三行中的每个键:限制允许列表、整体取值和仅从最高排名源读取的键。

208 208 

209| 键的类型 | Claude Code 如何组合它 | 示例 |209| 键的类型 | Claude Code 如何组合它 | 示例 |

210| :---------- | :---------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------- |210| :- | :- | :- |

211| 列表 | 组合来自每个源的条目 | `permissions.allow`、`hooks`、`sandbox.network.allowedDomains`、`deniedMcpServers` |211| 列表 | 组合来自每个源的条目 | `permissions.allow`、`hooks`、`sandbox.network.allowedDomains`、`deniedMcpServers` |

212| 锁 | 应用任何源设置的最严格值;较宽松的值仅从最高排名源适用 | `allowManagedHooksOnly`、`permissions.disableBypassPermissionsMode`、`crossSessionInbound` |212| 锁 | 应用任何源设置的最严格值;较宽松的值仅从最高排名源适用 | `allowManagedHooksOnly`、`permissions.disableBypassPermissionsMode`、`crossSessionInbound` |

213| 限制允许列表 | 从设置它的最高排名源整体取值,不添加来自较低源的条目 | `availableModels`、`allowedMcpServers`、`strictKnownMarketplaces`、`allowedChannelPlugins` 和 `fallbackModel` 链 |213| 限制允许列表 | 从设置它的最高排名源整体取值,不添加来自较低源的条目 | `availableModels`、`allowedMcpServers`、`strictKnownMarketplaces`、`allowedChannelPlugins` 和 `fallbackModel` 链 |


363少数强制密钥在无效时不会被丢弃。Claude Code 强制执行更严格的回退,直到修复该值;该表显示了对每个密钥强制执行的内容:363少数强制密钥在无效时不会被丢弃。Claude Code 强制执行更严格的回退,直到修复该值;该表显示了对每个密钥强制执行的内容:

364 364 

365| 字段 | 存在但无效时的行为 |365| 字段 | 存在但无效时的行为 |

366| :---------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |366| :- | :- |

367| `allowedMcpServers` | 强制执行为空的允许列表,直到修复该值,因此用户添加的 MCP 服务器都不被允许。您的组织通过 [`managedMcpServers`](/docs/zh-CN/settings-reference#managedmcpservers) 传递的服务器仍然加载,`managed-mcp.json` 服务器根据[如何评估服务器](/docs/zh-CN/managed-mcp#how-a-server-is-evaluated)加载。单个无效条目被剥离,有效子集被强制执行。 |367| `allowedMcpServers` | 强制执行为空的允许列表,直到修复该值,因此用户添加的 MCP 服务器都不被允许。您的组织通过 [`managedMcpServers`](/docs/zh-CN/settings-reference#managedmcpservers) 传递的服务器仍然加载,`managed-mcp.json` 服务器根据[如何评估服务器](/docs/zh-CN/managed-mcp#how-a-server-is-evaluated)加载。单个无效条目被剥离,有效子集被强制执行。 |

368| `allowedHttpHookUrls` | Claude Code 强制执行空的[允许列表](/docs/zh-CN/settings-reference#allowedhttphookurls),直到您修复该值,因此 HTTP hook 仅在另一个设置文件列出其 URL 时运行。如果只有单个条目无效,Claude Code 会剥离该条目并强制执行其余的。 |368| `allowedHttpHookUrls` | Claude Code 强制执行空的[允许列表](/docs/zh-CN/settings-reference#allowedhttphookurls),直到您修复该值,因此 HTTP hook 仅在另一个设置文件列出其 URL 时运行。如果只有单个条目无效,Claude Code 会剥离该条目并强制执行其余的。 |

369| `httpHookAllowedEnvVars` | Claude Code 强制执行空的[允许列表](/docs/zh-CN/settings-reference#httphookallowedenvvars),直到您修复该值,因此仅当另一个设置文件命名标头变量时才会插值。如果只有单个条目无效,Claude Code 会剥离该条目并强制执行其余的。 |369| `httpHookAllowedEnvVars` | Claude Code 强制执行空的[允许列表](/docs/zh-CN/settings-reference#httphookallowedenvvars),直到您修复该值,因此仅当另一个设置文件命名标头变量时才会插值。如果只有单个条目无效,Claude Code 会剥离该条目并强制执行其余的。 |


404表涵盖权限、插件和交付控制。对于此处未列出的任何密钥,[设置参考](/docs/zh-CN/settings-reference#all-settings)索引的 Scope 列说明它是否仅托管;那里的剩余仅托管密钥包括网关登录 URL、版本、浏览器、移动模拟器、SSH 主机、Desktop 本地会话、沙箱二进制路径、模型定价和 CLAUDE.md 控制。404表涵盖权限、插件和交付控制。对于此处未列出的任何密钥,[设置参考](/docs/zh-CN/settings-reference#all-settings)索引的 Scope 列说明它是否仅托管;那里的剩余仅托管密钥包括网关登录 URL、版本、浏览器、移动模拟器、SSH 主机、Desktop 本地会话、沙箱二进制路径、模型定价和 CLAUDE.md 控制。

405 405 

406| 设置 | 描述 |406| 设置 | 描述 |

407| :----------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |407| :- | :- |

408| [`allowAllClaudeAiMcps`](/docs/zh-CN/settings-reference#allowallclaudeaimcps) | 加载 Claude Code 自己获取的 claude.ai 连接器,与部署的 `managed-mcp.json` 一起,而不是抑制它们 |408| [`allowAllClaudeAiMcps`](/docs/zh-CN/settings-reference#allowallclaudeaimcps) | 加载 Claude Code 自己获取的 claude.ai 连接器,与部署的 `managed-mcp.json` 一起,而不是抑制它们 |

409| [`allowedChannelPlugins`](/docs/zh-CN/settings-reference#allowedchannelplugins) | 可能推送消息的通道插件的允许列表。设置时替换默认 Anthropic 允许列表。需要 `channelsEnabled: true`。请参阅[限制哪些通道插件可以运行](/docs/zh-CN/channels#restrict-which-channel-plugins-can-run) |409| [`allowedChannelPlugins`](/docs/zh-CN/settings-reference#allowedchannelplugins) | 可能推送消息的通道插件的允许列表。设置时替换默认 Anthropic 允许列表。需要 `channelsEnabled: true`。请参阅[限制哪些通道插件可以运行](/docs/zh-CN/channels#restrict-which-channel-plugins-can-run) |

410| [`allowManagedHooksOnly`](/docs/zh-CN/settings-reference#allowmanagedhooksonly) | 当 `true` 时,限制哪些 hooks 运行;请参阅[在 `allowManagedHooksOnly` 下运行什么](/docs/zh-CN/settings-reference#what-runs-under-allowmanagedhooksonly)以获取完整效果列表 |410| [`allowManagedHooksOnly`](/docs/zh-CN/settings-reference#allowmanagedhooksonly) | 当 `true` 时,限制哪些 hooks 运行;请参阅[在 `allowManagedHooksOnly` 下运行什么](/docs/zh-CN/settings-reference#what-runs-under-allowmanagedhooksonly)以获取完整效果列表 |

mcp.md +5 −5

Details

572MCP 服务器可以在三个不同的范围级别进行配置。您选择的范围控制服务器在哪些项目中加载以及配置是否与您的团队共享。管理员还可以通过[托管配置](#managed-mcp-configuration)为每个用户部署或提供服务器。572MCP 服务器可以在三个不同的范围级别进行配置。您选择的范围控制服务器在哪些项目中加载以及配置是否与您的团队共享。管理员还可以通过[托管配置](#managed-mcp-configuration)为每个用户部署或提供服务器。

573 573 

574| 范围 | 加载位置 | 与团队共享 | 存储位置 |574| 范围 | 加载位置 | 与团队共享 | 存储位置 |

575| -------------------- | ------ | -------- | ------------------- |575| - | - | - | - |

576| [本地](#local-scope) | 仅当前项目 | 否 | `~/.claude.json` |576| [本地](#local-scope) | 仅当前项目 | 否 | `~/.claude.json` |

577| [项目](#project-scope) | 仅当前项目 | 是,通过版本控制 | 项目根目录中的 `.mcp.json` |577| [项目](#project-scope) | 仅当前项目 | 是,通过版本控制 | 项目根目录中的 `.mcp.json` |

578| [用户](#user-scope) | 您的所有项目 | 否 | `~/.claude.json` |578| [用户](#user-scope) | 您的所有项目 | 否 | `~/.claude.json` |


1085Claude Code 在执行助手时设置这些环境变量:1085Claude Code 在执行助手时设置这些环境变量:

1086 1086 

1087| 变量 | 值 |1087| 变量 | 值 |

1088| :---------------------------- | :------------------------------------------------------------- |1088| :- | :- |

1089| `CLAUDE_CODE_MCP_SERVER_NAME` | MCP 服务器的名称 |1089| `CLAUDE_CODE_MCP_SERVER_NAME` | MCP 服务器的名称 |

1090| `CLAUDE_CODE_MCP_SERVER_URL` | MCP 服务器的 URL |1090| `CLAUDE_CODE_MCP_SERVER_URL` | MCP 服务器的 URL |

1091| `CLAUDE_PLUGIN_ROOT` | 插件的根目录。仅当 [插件](/docs/zh-CN/plugins/components#mcp-servers) 提供服务器时设置 |1091| `CLAUDE_PLUGIN_ROOT` | 插件的根目录。仅当 [插件](/docs/zh-CN/plugins/components#mcp-servers) 提供服务器时设置 |


1101Claude Code 根据声明服务器的配置选择 `headersHelper` 命令的工作目录。Claude Code 在 Bash 中运行的 `cd` 不会移动它,[`/cd`](/docs/zh-CN/permissions#move-the-session-to-another-directory) 仅对从会话主工作目录运行的服务器移动它。下表给出了相对路径在您的 `headersHelper` 命令中解析的目录。1101Claude Code 根据声明服务器的配置选择 `headersHelper` 命令的工作目录。Claude Code 在 Bash 中运行的 `cd` 不会移动它,[`/cd`](/docs/zh-CN/permissions#move-the-session-to-another-directory) 仅对从会话主工作目录运行的服务器移动它。下表给出了相对路径在您的 `headersHelper` 命令中解析的目录。

1102 1102 

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

1104| :----------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------- |1104| :- | :- |

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

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

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


1270哪些设置控制 claude.ai 连接器取决于您的会话在哪里运行,因为只有某些会话本身从 claude.ai 获取连接器。下表中的每一行命名了连接器在一种会话中的到达方式以及在那里控制它们的内容。桌面应用的 [WSL 会话](/docs/zh-CN/desktop-wsl#what-works-in-a-wsl-session) 没有行,因为连接器在其中尚不可用。1270哪些设置控制 claude.ai 连接器取决于您的会话在哪里运行,因为只有某些会话本身从 claude.ai 获取连接器。下表中的每一行命名了连接器在一种会话中的到达方式以及在那里控制它们的内容。桌面应用的 [WSL 会话](/docs/zh-CN/desktop-wsl#what-works-in-a-wsl-session) 没有行,因为连接器在其中尚不可用。

1271 1271 

1272| 会话运行的位置 | 连接器如何到达 | 什么控制它们 |1272| 会话运行的位置 | 连接器如何到达 | 什么控制它们 |

1273| :----------------------------------------------------------------------------------------------------------------------- | :--------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------- |1273| :- | :- | :- |

1274| Terminal、[VS Code](/docs/zh-CN/vs-code)、[JetBrains](/docs/zh-CN/jetbrains) 和 [Agent SDK](/docs/zh-CN/agent-sdk/claude-code-features) 会话 | Claude Code 从 claude.ai 获取它们 | 本部分中的设置和 [托管 MCP 配置](/docs/zh-CN/managed-mcp) |1274| Terminal、[VS Code](/docs/zh-CN/vs-code)、[JetBrains](/docs/zh-CN/jetbrains) 和 [Agent SDK](/docs/zh-CN/agent-sdk/claude-code-features) 会话 | Claude Code 从 claude.ai 获取它们 | 本部分中的设置和 [托管 MCP 配置](/docs/zh-CN/managed-mcp) |

1275| [Cloud 会话](/docs/zh-CN/claude-code-on-the-web) | 远程主机传入它们 | 您的 claude.ai 组织设置,加上到达会话的 [allowlist 和 denylist](/docs/zh-CN/managed-mcp#policy-based-control-with-allowlists-and-denylists) 设置以及运行它的主机上的任何 `managed-mcp.json` |1275| [Cloud 会话](/docs/zh-CN/claude-code-on-the-web) | 远程主机传入它们 | 您的 claude.ai 组织设置,加上到达会话的 [allowlist 和 denylist](/docs/zh-CN/managed-mcp#policy-based-control-with-allowlists-and-denylists) 设置以及运行它的主机上的任何 `managed-mcp.json` |

1276| [桌面应用](/docs/zh-CN/desktop) 的本地和 SSH 会话 | 桌面应用在进程中传入它们 | 您的组织的 [连接器工具控制](#organization-controls-on-connector-tools) 中的 `blocked` 条目 |1276| [桌面应用](/docs/zh-CN/desktop) 的本地和 SSH 会话 | 桌面应用在进程中传入它们 | 您的组织的 [连接器工具控制](#organization-controls-on-connector-tools) 中的 `blocked` 条目 |


1586使用 `ENABLE_TOOL_SEARCH` 环境变量控制工具搜索行为:1586使用 `ENABLE_TOOL_SEARCH` 环境变量控制工具搜索行为:

1587 1587 

1588| 值 | 行为 |1588| 值 | 行为 |

1589| :------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |1589| :- | :- |

1590| (未设置) | 所有 MCP 工具延迟并按需加载。在 Google Cloud 的 Agent Platform 早于 Claude 4.5 代的模型上、当 `ANTHROPIC_BASE_URL` 是非第一方主机时、或在 Microsoft Foundry 部署在 Azure 上时回退到预先加载 |1590| (未设置) | 所有 MCP 工具延迟并按需加载。在 Google Cloud 的 Agent Platform 早于 Claude 4.5 代的模型上、当 `ANTHROPIC_BASE_URL` 是非第一方主机时、或在 Microsoft Foundry 部署在 Azure 上时回退到预先加载 |

1591| `true` | 所有 MCP 工具延迟,除了在 Microsoft Foundry 部署在 Azure 上,其中服务器端拒绝仍然强制预先加载,以及在 Google Cloud 的 Agent Platform 早于 Claude 4.5 代的模型上,Claude Code 保持预先加载工具。Claude Code 通过代理发送 beta 标头,在不支持 `tool_reference` 块的代理上请求失败 |1591| `true` | 所有 MCP 工具延迟,除了在 Microsoft Foundry 部署在 Azure 上,其中服务器端拒绝仍然强制预先加载,以及在 Google Cloud 的 Agent Platform 早于 Claude 4.5 代的模型上,Claude Code 保持预先加载工具。Claude Code 通过代理发送 beta 标头,在不支持 `tool_reference` 块的代理上请求失败 |

1592| `auto` | 阈值模式:Claude Code 预先加载它本来会延迟的工具,同时它们的定义总计少于上下文窗口的 10%,一旦定义达到 10% 就延迟所有工具 |1592| `auto` | 阈值模式:Claude Code 预先加载它本来会延迟的工具,同时它们的定义总计少于上下文窗口的 10%,一旦定义达到 10% 就延迟所有工具 |

Details

61 服务器显示状态指示器:61 服务器显示状态指示器:

62 62 

63 | 状态 | 含义 |63 | 状态 | 含义 |

64 | :------------------------------------------------- | :------------------------------------------------------------------------------------------------------- |64 | :- | :- |

65 | `✔ Connected` | 准备就绪。这是您应该为 `claude-code-docs` 看到的 |65 | `✔ Connected` | 准备就绪。这是您应该为 `claude-code-docs` 看到的 |

66 | `! Connected · tools fetch failed` | 服务器已连接但无法列出其工具。运行 `claude mcp get <name>` 以获取错误详情 |66 | `! Connected · tools fetch failed` | 服务器已连接但无法列出其工具。运行 `claude mcp get <name>` 以获取错误详情 |

67 | `! Needs authentication` | 服务器可以访问但需要浏览器登录,或使用 `--header` 传递的令牌。请参阅[连接需要登录的服务器](#connect-a-server-that-requires-sign-in) |67 | `! Needs authentication` | 服务器可以访问但需要浏览器登录,或使用 `--header` 传递的令牌。请参阅[连接需要登录的服务器](#connect-a-server-that-requires-sign-in) |


129`claude mcp add` 命令将服务器写入三个范围之一,根据 `--scope` 标志存储在两个文件中。您不需要直接编辑这些文件,但知道它们的位置有助于调试和版本控制。129`claude mcp add` 命令将服务器写入三个范围之一,根据 `--scope` 标志存储在两个文件中。您不需要直接编辑这些文件,但知道它们的位置有助于调试和版本控制。

130 130 

131| 范围 | 文件 | 可用于 |131| 范围 | 文件 | 可用于 |

132| :-------- | :----------------------------------- | :---------- |132| :- | :- | :- |

133| `local` | `~/.claude.json`,在此项目的条目下 | 仅您,仅此项目。默认值 |133| `local` | `~/.claude.json`,在此项目的条目下 | 仅您,仅此项目。默认值 |

134| `project` | 项目根目录中的 `.mcp.json` | 克隆项目的所有人 |134| `project` | 项目根目录中的 `.mcp.json` | 克隆项目的所有人 |

135| `user` | `~/.claude.json`,在顶级 `mcpServers` 键下 | 仅您,所有项目 |135| `user` | `~/.claude.json`,在顶级 `mcpServers` 键下 | 仅您,所有项目 |

memory.md +8 −8

Details

26Claude Code 有两个互补的记忆系统。两者都在每次对话开始时加载。Claude 将它们视为上下文,而不是强制配置。要阻止某个操作,无论 Claude 决定什么,请改用 [PreToolUse hook](/docs/zh-CN/hooks-guide)。你的指令越具体和简洁,Claude 遵循它们的一致性就越高。26Claude Code 有两个互补的记忆系统。两者都在每次对话开始时加载。Claude 将它们视为上下文,而不是强制配置。要阻止某个操作,无论 Claude 决定什么,请改用 [PreToolUse hook](/docs/zh-CN/hooks-guide)。你的指令越具体和简洁,Claude 遵循它们的一致性就越高。

27 27 

28| | CLAUDE.md 文件 | 自动记忆 |28| | CLAUDE.md 文件 | 自动记忆 |

29| :------- | :------------ | :--------------------------------------- |29| :- | :- | :- |

30| **谁编写** | 你 | Claude |30| **谁编写** | 你 | Claude |

31| **包含内容** | 指令和规则 | 学习和模式 |31| **包含内容** | 指令和规则 | 学习和模式 |

32| **范围** | 项目、用户或组织 | 每个存储库,跨 worktrees 共享 |32| **范围** | 项目、用户或组织 | 每个存储库,跨 worktrees 共享 |


63CLAUDE.md 文件可以位于多个位置,每个位置具有不同的范围。下表按加载顺序列出它们,从最广泛的范围到最具体的范围,因此项目指令在用户指令之后出现在上下文中。63CLAUDE.md 文件可以位于多个位置,每个位置具有不同的范围。下表按加载顺序列出它们,从最广泛的范围到最具体的范围,因此项目指令在用户指令之后出现在上下文中。

64 64 

65| 范围 | 位置 | 目的 | 用例示例 | 共享对象 |65| 范围 | 位置 | 目的 | 用例示例 | 共享对象 |

66| -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------- | ---------------- | ------------ |66| - | - | - | - | - |

67| **托管策略** | • macOS: `/Library/Application Support/ClaudeCode/CLAUDE.md`<br />• Linux 和 WSL: `/etc/claude-code/CLAUDE.md`<br />• Windows: `C:\Program Files\ClaudeCode\CLAUDE.md` | 由 IT/DevOps 管理的组织范围指令 | 公司编码标准、安全策略、合规要求 | 组织中的所有用户 |67| **托管策略** | • macOS: `/Library/Application Support/ClaudeCode/CLAUDE.md`<br />• Linux 和 WSL: `/etc/claude-code/CLAUDE.md`<br />• Windows: `C:\Program Files\ClaudeCode\CLAUDE.md` | 由 IT/DevOps 管理的组织范围指令 | 公司编码标准、安全策略、合规要求 | 组织中的所有用户 |

68| **用户指令** | `~/.claude/CLAUDE.md` | 所有项目的个人偏好 | 代码样式偏好、个人工具快捷方式 | 仅您(所有项目) |68| **用户指令** | `~/.claude/CLAUDE.md` | 所有项目的个人偏好 | 代码样式偏好、个人工具快捷方式 | 仅您(所有项目) |

69| **项目指令** | `./CLAUDE.md` 或 `./.claude/CLAUDE.md`。有关何时加载 `./AGENTS.md` 而不是或与它们一起加载,请参阅 [AGENTS.md](#agents-md) | 项目的团队共享指令 | 项目架构、编码标准、常见工作流 | 通过源代码控制的团队成员 |69| **项目指令** | `./CLAUDE.md` 或 `./.claude/CLAUDE.md`。有关何时加载 `./AGENTS.md` 而不是或与它们一起加载,请参阅 [AGENTS.md](#agents-md) | 项目的团队共享指令 | 项目架构、编码标准、常见工作流 | 通过源代码控制的团队成员 |


223在 `paths` 字段中使用 glob 模式按扩展名、目录或任何组合匹配文件:223在 `paths` 字段中使用 glob 模式按扩展名、目录或任何组合匹配文件:

224 224 

225| 模式 | 匹配 |225| 模式 | 匹配 |

226| ---------------------- | ---------------------- |226| - | - |

227| `**/*.ts` | 任何目录中的所有 TypeScript 文件 |227| `**/*.ts` | 任何目录中的所有 TypeScript 文件 |

228| `src/**/*` | `src/` 目录下的所有文件 |228| `src/**/*` | `src/` 目录下的所有文件 |

229| `*.md` | 项目根目录中的 Markdown 文件 |229| `*.md` | 项目根目录中的 Markdown 文件 |


253使用 YAML [frontmatter](/docs/zh-CN/glossary#frontmatter) 在文件顶部的 `---` 标记之间配置规则。`paths` 是 Claude Code 从规则中读取的唯一字段;任何其他字段都被忽略而不出现错误。Claude Code 在将规则加载到上下文之前删除 frontmatter。253使用 YAML [frontmatter](/docs/zh-CN/glossary#frontmatter) 在文件顶部的 `---` 标记之间配置规则。`paths` 是 Claude Code 从规则中读取的唯一字段;任何其他字段都被忽略而不出现错误。Claude Code 在将规则加载到上下文之前删除 frontmatter。

254 254 

255| 字段 | 必需 | 描述 |255| 字段 | 必需 | 描述 |

256| :------ | :- | :--------------------------------------------------------------- |256| :- | :- | :- |

257| `paths` | 否 | Glob 模式,[将规则范围限定到匹配文件](#path-specific-rules)。接受 YAML 列表或逗号分隔的字符串 |257| `paths` | 否 | Glob 模式,[将规则范围限定到匹配文件](#path-specific-rules)。接受 YAML 列表或逗号分隔的字符串 |

258 258 

259如果标记之间的 YAML 不解析,Claude Code 忽略 frontmatter 并加载规则,就像它没有 `paths` 一样。运行 `claude --debug` 查看解析错误。259如果标记之间的 YAML 不解析,Claude Code 忽略 frontmatter 并加载规则,就像它没有 `paths` 一样。运行 `claude --debug` 查看解析错误。


330托管 CLAUDE.md 和 [managed settings](/docs/zh-CN/managed-settings) 服务于不同的目的。使用设置进行技术强制,使用 CLAUDE.md 进行行为指导:330托管 CLAUDE.md 和 [managed settings](/docs/zh-CN/managed-settings) 服务于不同的目的。使用设置进行技术强制,使用 CLAUDE.md 进行行为指导:

331 331 

332| 关注点 | 配置在 |332| 关注点 | 配置在 |

333| :-------------- | :------------------------------------------ |333| :- | :- |

334| 阻止特定工具、命令或文件路径 | 托管设置:`permissions.deny` |334| 阻止特定工具、命令或文件路径 | 托管设置:`permissions.deny` |

335| 强制沙箱隔离 | 托管设置:`sandbox.enabled` |335| 强制沙箱隔离 | 托管设置:`sandbox.enabled` |

336| 环境变量和 API 提供商路由 | 托管设置:`env` |336| 环境变量和 API 提供商路由 | 托管设置:`env` |


371Claude Code 可以将 [`AGENTS.md`](/docs/zh-CN/glossary#agents-md) 作为您的项目说明读取,因此已为其他编码代理设置的存储库无需添加 `CLAUDE.md`、导入或设置即可工作。此表显示了存储库中指令文件的每种组合下 Claude 默认读取的内容:371Claude Code 可以将 [`AGENTS.md`](/docs/zh-CN/glossary#agents-md) 作为您的项目说明读取,因此已为其他编码代理设置的存储库无需添加 `CLAUDE.md`、导入或设置即可工作。此表显示了存储库中指令文件的每种组合下 Claude 默认读取的内容:

372 372 

373| 您的存储库有 | Claude 读取 |373| 您的存储库有 | Claude 读取 |

374| :------------------------------------------------------------------------ | :-------------------------------- |374| :- | :- |

375| 一个 `AGENTS.md`,且在您的工作目录或其上方没有 `CLAUDE.md` 或 `CLAUDE.local.md` | 您的 `AGENTS.md` |375| 一个 `AGENTS.md`,且在您的工作目录或其上方没有 `CLAUDE.md` 或 `CLAUDE.local.md` | 您的 `AGENTS.md` |

376| 一个 `AGENTS.md` 和一个 `CLAUDE.md` 或 `CLAUDE.local.md` 在您的工作目录或其上方 | 仅您的 `CLAUDE.md` 文件 |376| 一个 `AGENTS.md` 和一个 `CLAUDE.md` 或 `CLAUDE.local.md` 在您的工作目录或其上方 | 仅您的 `CLAUDE.md` 文件 |

377| 一个已[导入 `AGENTS.md`](#share-one-file-with-other-coding-tools)的 `CLAUDE.md` | 您的 `CLAUDE.md`,通过导入包含 `AGENTS.md` |377| 一个已[导入 `AGENTS.md`](#share-one-file-with-other-coding-tools)的 `CLAUDE.md` | 您的 `CLAUDE.md`,通过导入包含 `AGENTS.md` |


409要更改 Claude 读取的文件,请在 Claude Code 会话中键入 `/config` 以打开设置面板,然后将**项目说明**设置为以下值之一:409要更改 Claude 读取的文件,请在 Claude Code 会话中键入 `/config` 以打开设置面板,然后将**项目说明**设置为以下值之一:

410 410 

411| 值 | Claude 读取的内容 |411| 值 | Claude 读取的内容 |

412| :------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |412| :- | :- |

413| `claude-md-or-agents-md` | 您的 `CLAUDE.md` 文件,或当您的工作目录或其上方没有 `CLAUDE.md` 或 `CLAUDE.local.md` 时您的 `AGENTS.md` 文件。这是默认值 |413| `claude-md-or-agents-md` | 您的 `CLAUDE.md` 文件,或当您的工作目录或其上方没有 `CLAUDE.md` 或 `CLAUDE.local.md` 时您的 `AGENTS.md` 文件。这是默认值 |

414| `claude-md-and-agents-md` | 您的 `CLAUDE.md` 和 `AGENTS.md` 文件一起,每个目录的 `CLAUDE.md` 文件首先,其 `AGENTS.md` 在之后。Claude Code 跳过已加载的 `AGENTS.md`,因此您的 `CLAUDE.md` 导入或符号链接到的 `AGENTS.md` 不会被读取两次 |414| `claude-md-and-agents-md` | 您的 `CLAUDE.md` 和 `AGENTS.md` 文件一起,每个目录的 `CLAUDE.md` 文件首先,其 `AGENTS.md` 在之后。Claude Code 跳过已加载的 `AGENTS.md`,因此您的 `CLAUDE.md` 导入或符号链接到的 `AGENTS.md` 不会被读取两次 |

415| `claude-md` | 仅您的 `CLAUDE.md` 文件 |415| `claude-md` | 仅您的 `CLAUDE.md` 文件 |


448通过**项目说明**设置读取的 `AGENTS.md` 与 `CLAUDE.md` 在以下方面有所不同:448通过**项目说明**设置读取的 `AGENTS.md` 与 `CLAUDE.md` 在以下方面有所不同:

449 449 

450| | `CLAUDE.md` | 通过设置读取的 `AGENTS.md` |450| | `CLAUDE.md` | 通过设置读取的 `AGENTS.md` |

451| :--------------------------------------------------------------------------------------------------------------- | :------------------------------------------------ | :--------------------------------------------- |451| :- | :- | :- |

452| [`InstructionsLoaded` hooks](/docs/zh-CN/hooks#instructionsloaded) | 触发 | 不触发。它们照常为 `CLAUDE.md` 导入或符号链接到的 `AGENTS.md` 触发 |452| [`InstructionsLoaded` hooks](/docs/zh-CN/hooks#instructionsloaded) | 触发 | 不触发。它们照常为 `CLAUDE.md` 导入或符号链接到的 `AGENTS.md` 触发 |

453| 当设置了 [`CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD`](#load-from-additional-directories) 时,您使用 `--add-dir` 添加的目录 | 它们的 `CLAUDE.md` 加载 | 它们的 `AGENTS.md` 不加载 |453| 当设置了 [`CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD`](#load-from-additional-directories) 时,您使用 `--add-dir` 添加的目录 | 它们的 `CLAUDE.md` 加载 | 它们的 `AGENTS.md` 不加载 |

454| `@path` 导入工作目录外的文件 | Claude Code 要求您批准[外部导入](#import-additional-files) | 仅在您已为此项目批准外部导入时加载,无提示 |454| `@path` 导入工作目录外的文件 | Claude Code 要求您批准[外部导入](#import-additional-files) | 仅在您已为此项目批准外部导入时加载,无提示 |

mobile.md +1 −1

Details

41从应用程序中,您可以启动云会话、打开项目、驱动在您的计算机上运行的 Claude Code 会话,或向 Dispatch 消息传递任务。应用程序对所有这些都是相同的;它们在工作发生的位置上有所不同。41从应用程序中,您可以启动云会话、打开项目、驱动在您的计算机上运行的 Claude Code 会话,或向 Dispatch 消息传递任务。应用程序对所有这些都是相同的;它们在工作发生的位置上有所不同。

42 42 

43| 功能 | 您连接到的内容 | 何时使用 |43| 功能 | 您连接到的内容 | 何时使用 |

44| :------------------------------------------------ | :------------------------- | :-------------------------------------------------------------------- |44| :- | :- | :- |

45| [云会话](/docs/zh-CN/claude-code-on-the-web) | 云基础设施上的会话,默认由 Anthropic 托管 | 您的存储库在 GitHub 上,任务应在您放下手机后继续运行。请参阅[云快速入门](/docs/zh-CN/web-quickstart)进行设置。 |45| [云会话](/docs/zh-CN/claude-code-on-the-web) | 云基础设施上的会话,默认由 Anthropic 托管 | 您的存储库在 GitHub 上,任务应在您放下手机后继续运行。请参阅[云快速入门](/docs/zh-CN/web-quickstart)进行设置。 |

46| [项目](/docs/zh-CN/claude-projects) | Claude 协调平行云会话作为线程的对话 | 您有一系列相关工作而不是一个任务,并且想要查看哪些线程已完成或需要您。 |46| [项目](/docs/zh-CN/claude-projects) | Claude 协调平行云会话作为线程的对话 | 您有一系列相关工作而不是一个任务,并且想要查看哪些线程已完成或需要您。 |

47| [远程控制](/docs/zh-CN/remote-control) | 在您的计算机上运行的 Claude Code 会话 | 工作需要您的本地文件系统、工具或 MCP 服务器。 |47| [远程控制](/docs/zh-CN/remote-control) | 在您的计算机上运行的 Claude Code 会话 | 工作需要您的本地文件系统、工具或 MCP 服务器。 |

model-config.md +12 −12

Details

32使用模型别名来选择模型设置,而无需记住确切的版本号:32使用模型别名来选择模型设置,而无需记住确切的版本号:

33 33 

34| 模型别名 | 行为 |34| 模型别名 | 行为 |

35| ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |35| - | - |

36| **`default`** | 特殊值,清除任何模型覆盖并恢复到[你的账户的运行时默认值](#default-model-setting)。本身不是模型别名 |36| **`default`** | 特殊值,清除任何模型覆盖并恢复到[你的账户的运行时默认值](#default-model-setting)。本身不是模型别名 |

37| **`best`** | 在 Fable 对你可用的地方使用 [`fable` 别名解析到的模型](#fable-alias-resolution),否则使用与 `opus` 相同的模型 |37| **`best`** | 在 Fable 对你可用的地方使用 [`fable` 别名解析到的模型](#fable-alias-resolution),否则使用与 `opus` 相同的模型 |

38| **`fable`** | 为你最困难和运行时间最长的任务使用[你的提供商的 Fable 模型](#fable-alias-resolution) |38| **`fable`** | 为你最困难和运行时间最长的任务使用[你的提供商的 Fable 模型](#fable-alias-resolution) |


46`opus` 和 `sonnet` 别名解析到的版本取决于提供商:46`opus` 和 `sonnet` 别名解析到的版本取决于提供商:

47 47 

48| 提供商 | `opus` | `sonnet` |48| 提供商 | `opus` | `sonnet` |

49| :------------------------------------------------------ | :------- | :--------- |49| :- | :- | :- |

50| Anthropic API | Opus 5.5 | Sonnet 5 |50| Anthropic API | Opus 5.5 | Sonnet 5 |

51| [Claude Platform on AWS](/docs/zh-CN/claude-platform-on-aws) | Opus 5.5 | Sonnet 4.6 |51| [Claude Platform on AWS](/docs/zh-CN/claude-platform-on-aws) | Opus 5.5 | Sonnet 4.6 |

52| Amazon Bedrock、Google Cloud 的 Agent Platform | Opus 5.5 | Sonnet 4.5 |52| Amazon Bedrock、Google Cloud 的 Agent Platform | Opus 5.5 | Sonnet 4.5 |


290每个表面都强制执行它接收的允许列表。哪个交付机制到达每个表面不同:290每个表面都强制执行它接收的允许列表。哪个交付机制到达每个表面不同:

291 291 

292| 交付机制 | CLI 和 IDE | 桌面本地会话 | Web、移动和云会话 | Agent SDK 和非交互式 | Cowork |292| 交付机制 | CLI 和 IDE | 桌面本地会话 | Web、移动和云会话 | Agent SDK 和非交互式 | Cowork |

293| :--------------------------------------------------------- | :-------- | :----- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :-------------- | :--------- |293| :- | :- | :- | :- | :- | :- |

294| 来自管理控制台的[服务器管理设置](/docs/zh-CN/server-managed-settings) | 强制执行 | 强制执行 | 强制执行 | 强制执行 | 未交付 |294| 来自管理控制台的[服务器管理设置](/docs/zh-CN/server-managed-settings) | 强制执行 | 强制执行 | 强制执行 | 强制执行 | 未交付 |

295| [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)从运行器镜像强制执行 | 强制执行 | 在部署的地方强制执行 |295| [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)从运行器镜像强制执行 | 强制执行 | 在部署的地方强制执行 |

296 296 


578可用的努力级别取决于模型。此处未列出的模型不支持努力:578可用的努力级别取决于模型。此处未列出的模型不支持努力:

579 579 

580| 模型 | 级别 |580| 模型 | 级别 |

581| :------------------------------------------- | :---------------------------------- |581| :- | :- |

582| Fable 5.1 和 Fable 5 | `low`、`medium`、`high`、`xhigh`、`max` |582| Fable 5.1 和 Fable 5 | `low`、`medium`、`high`、`xhigh`、`max` |

583| Opus 5.5、Opus 5、Sonnet 5、Opus 4.8 和 Opus 4.7 | `low`、`medium`、`high`、`xhigh`、`max` |583| Opus 5.5、Opus 5、Sonnet 5、Opus 4.8 和 Opus 4.7 | `low`、`medium`、`high`、`xhigh`、`max` |

584| Opus 4.6 和 Sonnet 4.6 | `low`、`medium`、`high`、`max` |584| Opus 4.6 和 Sonnet 4.6 | `low`、`medium`、`high`、`max` |


640每个级别在令牌支出和能力之间进行权衡。默认值适合大多数编码任务;当您想要不同的平衡时进行调整。640每个级别在令牌支出和能力之间进行权衡。默认值适合大多数编码任务;当您想要不同的平衡时进行调整。

641 641 

642| 级别 | 何时使用 |642| 级别 | 何时使用 |

643| :---------- | :-------------------------------------------------------------------- |643| :- | :- |

644| `low` | 保留用于短的、范围有限的、延迟敏感的、不是智能敏感的任务 |644| `low` | 保留用于短的、范围有限的、延迟敏感的、不是智能敏感的任务 |

645| `medium` | 减少成本敏感工作的令牌使用,可以权衡一些智能。Opus 5.5 上的默认值 |645| `medium` | 减少成本敏感工作的令牌使用,可以权衡一些智能。Opus 5.5 上的默认值 |

646| `high` | 平衡令牌使用和智能。除 Opus 5.5 和 Opus 4.7 外,每个模型上的默认值 |646| `high` | 平衡令牌使用和智能。除 Opus 5.5 和 Opus 4.7 外,每个模型上的默认值 |


693扩展思考是 Claude 在响应前发出的推理。在支持[自适应推理](#adjust-effort-level)的模型上,努力级别是对发生多少思考的主要控制;下面的设置打开或关闭思考并控制它如何显示。在 Anthropic API 上关闭思考时,Claude Code 向它知道[不接受该组合](/docs/zh-CN/errors#effort-isnt-available-with-thinking-turned-off)的模型(如 Opus 5)发送努力 `high` 而不是更高级别。693扩展思考是 Claude 在响应前发出的推理。在支持[自适应推理](#adjust-effort-level)的模型上,努力级别是对发生多少思考的主要控制;下面的设置打开或关闭思考并控制它如何显示。在 Anthropic API 上关闭思考时,Claude Code 向它知道[不接受该组合](/docs/zh-CN/errors#effort-isnt-available-with-thinking-turned-off)的模型(如 Opus 5)发送努力 `high` 而不是更高级别。

694 694 

695| 控制 | 如何设置 |695| 控制 | 如何设置 |

696| :------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |696| :- | :- |

697| 当前会话的切换 | 在 macOS 上按 `Option+T` 或在 Windows 和 Linux 上按 `Alt+T` |697| 当前会话的切换 | 在 macOS 上按 `Option+T` 或在 Windows 和 Linux 上按 `Alt+T` |

698| 设置全局默认值 | 运行 `/config` 并切换思考模式。保存为 `~/.claude/settings.json` 中的 `alwaysThinkingEnabled` |698| 设置全局默认值 | 运行 `/config` 并切换思考模式。保存为 `~/.claude/settings.json` 中的 `alwaysThinkingEnabled` |

699| 通过环境变量禁用 | 设置 [`MAX_THINKING_TOKENS=0`](/docs/zh-CN/env-vars),这在 Anthropic API 上关闭思考,除了 Opus 5.5 和 Fable 模型。在[第三方提供商](/docs/zh-CN/third-party-integrations)上,Claude Code 改为省略 `thinking` 参数,自适应推理模型可能仍然思考。其他值仅适用于[固定思考预算](#adaptive-reasoning-and-fixed-thinking-budgets) |699| 通过环境变量禁用 | 设置 [`MAX_THINKING_TOKENS=0`](/docs/zh-CN/env-vars),这在 Anthropic API 上关闭思考,除了 Opus 5.5 和 Fable 模型。在[第三方提供商](/docs/zh-CN/third-party-integrations)上,Claude Code 改为省略 `thinking` 参数,自适应推理模型可能仍然思考。其他值仅适用于[固定思考预算](#adaptive-reasoning-and-fixed-thinking-budgets) |


713Opus 4.6 和 Sonnet 4.6 仅通过其 `[1m]` 变体达到 1M,对该变体的访问取决于您的计划。在 Max、Team 和 Enterprise 计划上,包括 Team Standard 和 Team Premium 席位,Opus 4.6 与 1M 上下文包含在您的订阅中。Sonnet 4.6 与 1M 上下文在每个订阅计划上都需要[使用额度](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans),包括 Max。713Opus 4.6 和 Sonnet 4.6 仅通过其 `[1m]` 变体达到 1M,对该变体的访问取决于您的计划。在 Max、Team 和 Enterprise 计划上,包括 Team Standard 和 Team Premium 席位,Opus 4.6 与 1M 上下文包含在您的订阅中。Sonnet 4.6 与 1M 上下文在每个订阅计划上都需要[使用额度](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans),包括 Max。

714 714 

715| 计划 | Opus 4.6 与 1M 上下文 | Sonnet 4.6 与 1M 上下文 |715| 计划 | Opus 4.6 与 1M 上下文 | Sonnet 4.6 与 1M 上下文 |

716| --------------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- |716| - | - | - |

717| Max、Team 和 Enterprise | 包含在订阅中 | 需要[使用额度](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) |717| Max、Team 和 Enterprise | 包含在订阅中 | 需要[使用额度](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) |

718| Pro | 需要[使用额度](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) | 需要[使用额度](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) |718| Pro | 需要[使用额度](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) | 需要[使用额度](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) |

719| API 和按量付费 | 完全访问 | 完全访问 |719| API 和按量付费 | 完全访问 | 完全访问 |


854使用以下环境变量来控制别名映射到的模型名称。每个值必须是完整的模型名称,或您的 API 提供商的等效标识符。要选择会话启动时使用的模型,请设置 [`ANTHROPIC_DEFAULT_MODEL`](#set-a-default-model-for-new-sessions),此表中省略了该变量。854使用以下环境变量来控制别名映射到的模型名称。每个值必须是完整的模型名称,或您的 API 提供商的等效标识符。要选择会话启动时使用的模型,请设置 [`ANTHROPIC_DEFAULT_MODEL`](#set-a-default-model-for-new-sessions),此表中省略了该变量。

855 855 

856| 环境变量 | 描述 |856| 环境变量 | 描述 |

857| -------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |857| - | - |

858| `ANTHROPIC_DEFAULT_FABLE_MODEL` | 用于 `fable` 的模型,以及 Claude Code 识别为 Fable 模型的模型 ID,用于[第三方提供商上的自动模型回退](#automatic-model-fallback) |858| `ANTHROPIC_DEFAULT_FABLE_MODEL` | 用于 `fable` 的模型,以及 Claude Code 识别为 Fable 模型的模型 ID,用于[第三方提供商上的自动模型回退](#automatic-model-fallback) |

859| `ANTHROPIC_DEFAULT_OPUS_MODEL` | 用于 `opus` 的模型,或在 Plan Mode 活跃时用于 `opusplan` 的模型。 |859| `ANTHROPIC_DEFAULT_OPUS_MODEL` | 用于 `opus` 的模型,或在 Plan Mode 活跃时用于 `opusplan` 的模型。 |

860| `ANTHROPIC_DEFAULT_SONNET_MODEL` | 用于 `sonnet` 的模型,或在 Plan Mode 不活跃时用于 `opusplan` 的模型。 |860| `ANTHROPIC_DEFAULT_SONNET_MODEL` | 用于 `sonnet` 的模型,或在 Plan Mode 不活跃时用于 `opusplan` 的模型。 |


880对您的提供商使用以下环境变量和特定版本的模型 ID:880对您的提供商使用以下环境变量和特定版本的模型 ID:

881 881 

882| 提供商 | 示例 |882| 提供商 | 示例 |

883| :---------------------------- | :------------------------------------------------------------------- |883| :- | :- |

884| Amazon Bedrock | `export ANTHROPIC_DEFAULT_OPUS_MODEL='us.anthropic.claude-opus-4-8'` |884| Amazon Bedrock | `export ANTHROPIC_DEFAULT_OPUS_MODEL='us.anthropic.claude-opus-4-8'` |

885| Google Cloud's Agent Platform | `export ANTHROPIC_DEFAULT_OPUS_MODEL='claude-opus-4-8'` |885| Google Cloud's Agent Platform | `export ANTHROPIC_DEFAULT_OPUS_MODEL='claude-opus-4-8'` |

886| Microsoft Foundry | `export ANTHROPIC_DEFAULT_OPUS_MODEL='claude-opus-4-8'` |886| Microsoft Foundry | `export ANTHROPIC_DEFAULT_OPUS_MODEL='claude-opus-4-8'` |


921这些变量在第三方提供商(如 Amazon Bedrock、Google Cloud's Agent Platform 和 Microsoft Foundry)上生效。`_NAME` 和 `_DESCRIPTION` 变量在 `ANTHROPIC_BASE_URL` 指向 [LLM gateway](/docs/zh-CN/llm-gateway) 时也生效。当直接连接到 `api.anthropic.com` 时无效。921这些变量在第三方提供商(如 Amazon Bedrock、Google Cloud's Agent Platform 和 Microsoft Foundry)上生效。`_NAME` 和 `_DESCRIPTION` 变量在 `ANTHROPIC_BASE_URL` 指向 [LLM gateway](/docs/zh-CN/llm-gateway) 时也生效。当直接连接到 `api.anthropic.com` 时无效。

922 922 

923| 环境变量 | 描述 |923| 环境变量 | 描述 |

924| ----------------------------------------------------- | ------------------------------------------------------------------------------ |924| - | - |

925| `ANTHROPIC_DEFAULT_OPUS_MODEL_NAME` | 固定 Opus 模型在 `/model` 选择器中的显示名称。未设置时,如果 Claude Code 识别固定 ID,该行显示模型的名称,否则显示固定 ID |925| `ANTHROPIC_DEFAULT_OPUS_MODEL_NAME` | 固定 Opus 模型在 `/model` 选择器中的显示名称。未设置时,如果 Claude Code 识别固定 ID,该行显示模型的名称,否则显示固定 ID |

926| `ANTHROPIC_DEFAULT_OPUS_MODEL_DESCRIPTION` | 固定 Opus 模型在 `/model` 选择器中的显示描述。未设置时,该行显示以 `Custom Opus model` 开头的默认描述 |926| `ANTHROPIC_DEFAULT_OPUS_MODEL_DESCRIPTION` | 固定 Opus 模型在 `/model` 选择器中的显示描述。未设置时,该行显示以 `Custom Opus model` 开头的默认描述 |

927| `ANTHROPIC_DEFAULT_OPUS_MODEL_SUPPORTED_CAPABILITIES` | 固定 Opus 模型支持的功能的逗号分隔列表 |927| `ANTHROPIC_DEFAULT_OPUS_MODEL_SUPPORTED_CAPABILITIES` | 固定 Opus 模型支持的功能的逗号分隔列表 |


931Claude Code 通过将模型 ID 与已知模式匹配来启用[工作量级别](#adjust-effort-level)和[扩展思考](#extended-thinking)等功能。提供商特定的 ID(如 Amazon Bedrock ARN 或自定义部署名称)通常与这些模式不匹配,导致支持的功能被禁用。设置 `_SUPPORTED_CAPABILITIES` 以告诉 Claude Code 模型实际支持的功能:931Claude Code 通过将模型 ID 与已知模式匹配来启用[工作量级别](#adjust-effort-level)和[扩展思考](#extended-thinking)等功能。提供商特定的 ID(如 Amazon Bedrock ARN 或自定义部署名称)通常与这些模式不匹配,导致支持的功能被禁用。设置 `_SUPPORTED_CAPABILITIES` 以告诉 Claude Code 模型实际支持的功能:

932 932 

933| 功能值 | 启用 |933| 功能值 | 启用 |

934| ---------------------- | ------------------------------------------- |934| - | - |

935| `effort` | [工作量级别](#adjust-effort-level)和 `/effort` 命令 |935| `effort` | [工作量级别](#adjust-effort-level)和 `/effort` 命令 |

936| `xhigh_effort` | `xhigh` 工作量级别 |936| `xhigh_effort` | `xhigh` 工作量级别 |

937| `max_effort` | `max` 工作量级别 |937| `max_effort` | `max` 工作量级别 |


993Claude Code 自动使用 [prompt caching](/docs/zh-CN/prompt-caching) 来优化性能并降低成本。您可以全局禁用 prompt caching 或针对特定模型层级禁用:993Claude Code 自动使用 [prompt caching](/docs/zh-CN/prompt-caching) 来优化性能并降低成本。您可以全局禁用 prompt caching 或针对特定模型层级禁用:

994 994 

995| 环境变量 | 描述 |995| 环境变量 | 描述 |

996| ------------------------------- | ---------------------------------------- |996| - | - |

997| `DISABLE_PROMPT_CACHING` | 设置为 `1` 以禁用所有模型的 prompt caching。优先于按模型设置 |997| `DISABLE_PROMPT_CACHING` | 设置为 `1` 以禁用所有模型的 prompt caching。优先于按模型设置 |

998| `DISABLE_PROMPT_CACHING_HAIKU` | 设置为 `1` 以仅禁用 Haiku 模型的 prompt caching |998| `DISABLE_PROMPT_CACHING_HAIKU` | 设置为 `1` 以仅禁用 Haiku 模型的 prompt caching |

999| `DISABLE_PROMPT_CACHING_SONNET` | 设置为 `1` 以仅禁用 Sonnet 模型的 prompt caching |999| `DISABLE_PROMPT_CACHING_SONNET` | 设置为 `1` 以仅禁用 Sonnet 模型的 prompt caching |

Details

106这些变量为所有部署配置导出器、端点和导出行为。如果您设置了按信号的端点或协议变量,例如 `OTEL_EXPORTER_OTLP_METRICS_ENDPOINT`,Claude Code 会使用它而不是该信号的通用变量。如果您设置了按信号的标头变量,例如 `OTEL_EXPORTER_OTLP_METRICS_HEADERS`,Claude Code 会将其与该信号的通用 `OTEL_EXPORTER_OTLP_HEADERS` 合并。在具有托管设置的机器上,请参阅[托管设置如何锁定 OTLP 目标](#how-managed-settings-lock-the-otlp-destination)以了解 Claude Code 删除的内容。106这些变量为所有部署配置导出器、端点和导出行为。如果您设置了按信号的端点或协议变量,例如 `OTEL_EXPORTER_OTLP_METRICS_ENDPOINT`,Claude Code 会使用它而不是该信号的通用变量。如果您设置了按信号的标头变量,例如 `OTEL_EXPORTER_OTLP_METRICS_HEADERS`,Claude Code 会将其与该信号的通用 `OTEL_EXPORTER_OTLP_HEADERS` 合并。在具有托管设置的机器上,请参阅[托管设置如何锁定 OTLP 目标](#how-managed-settings-lock-the-otlp-destination)以了解 Claude Code 删除的内容。

107 107 

108| 环境变量 | 描述 | 示例值 |108| 环境变量 | 描述 | 示例值 |

109| --------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------- |109| - | - | - |

110| `CLAUDE_CODE_ENABLE_TELEMETRY` | 启用遥测收集(必需) | `1` |110| `CLAUDE_CODE_ENABLE_TELEMETRY` | 启用遥测收集(必需) | `1` |

111| `OTEL_METRICS_EXPORTER` | 指标导出器类型,以逗号分隔。使用 `none` 禁用 | `console`、`otlp`、`prometheus`、`none` |111| `OTEL_METRICS_EXPORTER` | 指标导出器类型,以逗号分隔。使用 `none` 禁用 | `console`、`otlp`、`prometheus`、`none` |

112| `OTEL_LOGS_EXPORTER` | 日志/事件导出器类型,以逗号分隔。使用 `none` 禁用 | `console`、`otlp`、`none` |112| `OTEL_LOGS_EXPORTER` | 日志/事件导出器类型,以逗号分隔。使用 `none` 禁用 | `console`、`otlp`、`none` |


140您如何为 OTLP 导出器配置客户端证书取决于用于该信号的 OTLP 协议,通过 `OTEL_EXPORTER_OTLP_PROTOCOL` 或按信号的覆盖设置。相同的配置适用于指标、日志和跟踪。140您如何为 OTLP 导出器配置客户端证书取决于用于该信号的 OTLP 协议,通过 `OTEL_EXPORTER_OTLP_PROTOCOL` 或按信号的覆盖设置。相同的配置适用于指标、日志和跟踪。

141 141 

142| 协议 | 客户端证书变量 | 信任收集器的 CA 使用 |142| 协议 | 客户端证书变量 | 信任收集器的 CA 使用 |

143| :-------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------- |143| :- | :- | :- |

144| `http/protobuf`、`http/json` | `CLAUDE_CODE_CLIENT_CERT`、`CLAUDE_CODE_CLIENT_KEY` 和可选的 `CLAUDE_CODE_CLIENT_KEY_PASSPHRASE`。请参阅[网络配置](/docs/zh-CN/network-config#mtls-authentication) | `NODE_EXTRA_CA_CERTS` |144| `http/protobuf`、`http/json` | `CLAUDE_CODE_CLIENT_CERT`、`CLAUDE_CODE_CLIENT_KEY` 和可选的 `CLAUDE_CODE_CLIENT_KEY_PASSPHRASE`。请参阅[网络配置](/docs/zh-CN/network-config#mtls-authentication) | `NODE_EXTRA_CA_CERTS` |

145| `grpc` | `OTEL_EXPORTER_OTLP_CLIENT_KEY` 和 `OTEL_EXPORTER_OTLP_CLIENT_CERTIFICATE`,或按信号的变体,例如 `OTEL_EXPORTER_OTLP_METRICS_CLIENT_KEY` 以为每个信号使用不同的证书 | `OTEL_EXPORTER_OTLP_CERTIFICATE` |145| `grpc` | `OTEL_EXPORTER_OTLP_CLIENT_KEY` 和 `OTEL_EXPORTER_OTLP_CLIENT_CERTIFICATE`,或按信号的变体,例如 `OTEL_EXPORTER_OTLP_METRICS_CLIENT_KEY` 以为每个信号使用不同的证书 | `OTEL_EXPORTER_OTLP_CERTIFICATE` |

146 146 


153以下环境变量控制指标中包含哪些属性以管理基数:153以下环境变量控制指标中包含哪些属性以管理基数:

154 154 

155| 环境变量 | 描述 | 默认值 | 禁用示例 |155| 环境变量 | 描述 | 默认值 | 禁用示例 |

156| ------------------------------------------ | --------------------------------------------------------------------------------- | ------- | ------- |156| - | - | - | - |

157| `OTEL_METRICS_INCLUDE_SESSION_ID` | 在指标中包含 session.id 属性 | `true` | `false` |157| `OTEL_METRICS_INCLUDE_SESSION_ID` | 在指标中包含 session.id 属性 | `true` | `false` |

158| `OTEL_METRICS_INCLUDE_VERSION` | 在指标中包含 app.version 属性 | `false` | `true` |158| `OTEL_METRICS_INCLUDE_VERSION` | 在指标中包含 app.version 属性 | `false` | `true` |

159| `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` | 在指标中包含 user.account\_uuid 和 user.account\_id 属性 | `true` | `false` |159| `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` | 在指标中包含 user.account\_uuid 和 user.account\_id 属性 | `true` | `false` |


172跟踪默认关闭。要启用它,请同时设置 `CLAUDE_CODE_ENABLE_TELEMETRY=1` 和 `CLAUDE_CODE_ENHANCED_TELEMETRY_BETA=1`,然后设置 `OTEL_TRACES_EXPORTER` 以选择跨度的发送位置。跟踪重用[常见 OTLP 配置](#common-configuration-variables)用于端点、协议、标头和 [mTLS](#mtls-authentication)。在具有托管设置的机器上,Claude Code [可能在启动时删除开发人员设置的按信号凭证和端点](#how-managed-settings-lock-the-otlp-destination)。172跟踪默认关闭。要启用它,请同时设置 `CLAUDE_CODE_ENABLE_TELEMETRY=1` 和 `CLAUDE_CODE_ENHANCED_TELEMETRY_BETA=1`,然后设置 `OTEL_TRACES_EXPORTER` 以选择跨度的发送位置。跟踪重用[常见 OTLP 配置](#common-configuration-variables)用于端点、协议、标头和 [mTLS](#mtls-authentication)。在具有托管设置的机器上,Claude Code [可能在启动时删除开发人员设置的按信号凭证和端点](#how-managed-settings-lock-the-otlp-destination)。

173 173 

174| 环境变量 | 描述 | 示例值 |174| 环境变量 | 描述 | 示例值 |

175| ------------------------------------- | ----------------------------------------------- | ---------------------------------- |175| - | - | - |

176| `CLAUDE_CODE_ENHANCED_TELEMETRY_BETA` | 启用跨度跟踪(必需)。也接受 `ENABLE_ENHANCED_TELEMETRY_BETA` | `1` |176| `CLAUDE_CODE_ENHANCED_TELEMETRY_BETA` | 启用跨度跟踪(必需)。也接受 `ENABLE_ENHANCED_TELEMETRY_BETA` | `1` |

177| `OTEL_TRACES_EXPORTER` | 跟踪导出器类型,以逗号分隔。使用 `none` 禁用 | `console`、`otlp`、`none` |177| `OTEL_TRACES_EXPORTER` | 跟踪导出器类型,以逗号分隔。使用 `none` 禁用 | `console`、`otlp`、`none` |

178| `OTEL_EXPORTER_OTLP_TRACES_PROTOCOL` | 跟踪协议,覆盖 `OTEL_EXPORTER_OTLP_PROTOCOL` | `grpc`、`http/json`、`http/protobuf` |178| `OTEL_EXPORTER_OTLP_TRACES_PROTOCOL` | 跟踪协议,覆盖 `OTEL_EXPORTER_OTLP_PROTOCOL` | `grpc`、`http/json`、`http/protobuf` |


223**`claude_code.interaction`**223**`claude_code.interaction`**

224 224 

225| 属性 | 描述 | 由以下控制 |225| 属性 | 描述 | 由以下控制 |

226| ------------------------- | ------------------------------------------------------------------------------------------------ | ----------------------- |226| - | - | - |

227| `user_prompt` | 提示文本。除非设置了门控,否则值为 `<REDACTED>` | `OTEL_LOG_USER_PROMPTS` |227| `user_prompt` | 提示文本。除非设置了门控,否则值为 `<REDACTED>` | `OTEL_LOG_USER_PROMPTS` |

228| `user_prompt_length` | 提示长度(字符数) | |228| `user_prompt_length` | 提示长度(字符数) | |

229| `interaction.sequence` | 此会话中交互的基于 1 的计数器,按 Claude Code 进程而不是按会话计数,如 [`event.sequence`](#event-correlation-attributes) 所述 | |229| `interaction.sequence` | 此会话中交互的基于 1 的计数器,按 Claude Code 进程而不是按会话计数,如 [`event.sequence`](#event-correlation-attributes) 所述 | |


233**`claude_code.llm_request`**233**`claude_code.llm_request`**

234 234 

235| 属性 | 描述 | 由以下控制 |235| 属性 | 描述 | 由以下控制 |

236| -------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------ |236| - | - | - |

237| `model` | 模型标识符 | |237| `model` | 模型标识符 | |

238| `gen_ai.system` | 始终为 `anthropic`。OpenTelemetry GenAI 语义约定 | |238| `gen_ai.system` | 始终为 `anthropic`。OpenTelemetry GenAI 语义约定 | |

239| `gen_ai.request.model` | 与 `model` 相同的值。OpenTelemetry GenAI 语义约定 | |239| `gen_ai.request.model` | 与 `model` 相同的值。OpenTelemetry GenAI 语义约定 | |


270**`claude_code.tool`**270**`claude_code.tool`**

271 271 

272| 属性 | 描述 | 由以下控制 |272| 属性 | 描述 | 由以下控制 |

273| --------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------- |273| - | - | - |

274| `tool_name` | 工具名称 | |274| `tool_name` | 工具名称 | |

275| `tool_name_safe` | `tool_name` 的形式,不携带任何用户选择的名称。内置工具名称逐字通过。MCP 工具名称显示为 `mcp_other`,除了与几个固定形状匹配的工具名称,例如名为 `browser_*` 的 `playwright` 工具,这些工具逐字通过。需要 Claude Code v2.1.268 或更高版本 | |275| `tool_name_safe` | `tool_name` 的形式,不携带任何用户选择的名称。内置工具名称逐字通过。MCP 工具名称显示为 `mcp_other`,除了与几个固定形状匹配的工具名称,例如名为 `browser_*` 的 `playwright` 工具,这些工具逐字通过。需要 Claude Code v2.1.268 或更高版本 | |

276| `bash_command_class` | 对于 Bash 工具:命令的第一个程序的类别,来自固定列表,例如 `vcs` 或 `package_manager`。`other` 表示列表外的程序,`unparsed` 表示无法解析该行。需要 Claude Code v2.1.268 或更高版本 | |276| `bash_command_class` | 对于 Bash 工具:命令的第一个程序的类别,来自固定列表,例如 `vcs` 或 `package_manager`。`other` 表示列表外的程序,`unparsed` 表示无法解析该行。需要 Claude Code v2.1.268 或更高版本 | |


301该事件携带这些属性,每个属性在内容限制处截断(默认值:60 KB)。`由以下控制` 命名属性在 `OTEL_LOG_TOOL_CONTENT=1` 之上需要的变量,对于 Edit 和 Write,该变量控制事件本身而不是属性。301该事件携带这些属性,每个属性在内容限制处截断(默认值:60 KB)。`由以下控制` 命名属性在 `OTEL_LOG_TOOL_CONTENT=1` 之上需要的变量,对于 Edit 和 Write,该变量控制事件本身而不是属性。

302 302 

303| 属性 | 描述 | 由以下控制 |303| 属性 | 描述 | 由以下控制 |

304| -------------- | ------------------------------------- | ----------------------------------- |304| - | - | - |

305| `content` | Read 工具返回的文本,或 Write 调用被要求写入的文本 | `OTEL_LOG_TOOL_DETAILS` 用于 Write 工具 |305| `content` | Read 工具返回的文本,或 Write 调用被要求写入的文本 | `OTEL_LOG_TOOL_DETAILS` 用于 Write 工具 |

306| `output` | Bash 命令的组合输出,stderr 交错到 stdout | |306| `output` | Bash 命令的组合输出,stderr 交错到 stdout | |

307| `diff` | Edit 工具应用的结构化补丁 | `OTEL_LOG_TOOL_DETAILS` |307| `diff` | Edit 工具应用的结构化补丁 | `OTEL_LOG_TOOL_DETAILS` |


313**`claude_code.tool.blocked_on_user`**313**`claude_code.tool.blocked_on_user`**

314 314 

315| 属性 | 描述 | 由以下控制 |315| 属性 | 描述 | 由以下控制 |

316| ------------- | -------------------------------------- | ----- |316| - | - | - |

317| `duration_ms` | 等待权限决定所花费的时间 | |317| `duration_ms` | 等待权限决定所花费的时间 | |

318| `decision` | `accept` 或 `reject` | |318| `decision` | `accept` 或 `reject` | |

319| `source` | 决定来源,与[工具决定事件](#tool-decision-event)匹配 | |319| `source` | 决定来源,与[工具决定事件](#tool-decision-event)匹配 | |


321**`claude_code.tool.execution`**321**`claude_code.tool.execution`**

322 322 

323| 属性 | 描述 | 由以下控制 |323| 属性 | 描述 | 由以下控制 |

324| --------------------- | ----------------------------------------------------------------------------------------------------------------------- | ----------------------- |324| - | - | - |

325| `duration_ms` | 运行工具正文所花费的时间 | |325| `duration_ms` | 运行工具正文所花费的时间 | |

326| `tool_use_id` | 与父 `claude_code.tool` 跨度上的值相同 | |326| `tool_use_id` | 与父 `claude_code.tool` 跨度上的值相同 | |

327| `gen_ai.tool.call.id` | 与 `tool_use_id` 相同的值。OpenTelemetry GenAI 语义约定 | |327| `gen_ai.tool.call.id` | 与 `tool_use_id` 相同的值。OpenTelemetry GenAI 语义约定 | |


336在交互式 CLI 会话中,详细的测试版跟踪还需要您的组织被列入该功能的白名单。Agent SDK 和非交互式 `-p` 会话不需要白名单。336在交互式 CLI 会话中,详细的测试版跟踪还需要您的组织被列入该功能的白名单。Agent SDK 和非交互式 `-p` 会话不需要白名单。

337 337 

338| 属性 | 描述 | 由以下控制 |338| 属性 | 描述 | 由以下控制 |

339| ------------------------ | ---------------------------- | ----------------------- |339| - | - | - |

340| `hook_event` | 钩子事件类型,例如 `PreToolUse` | |340| `hook_event` | 钩子事件类型,例如 `PreToolUse` | |

341| `hook_name` | 完整钩子名称,例如 `PreToolUse:Write` | |341| `hook_name` | 完整钩子名称,例如 `PreToolUse:Write` | |

342| `num_hooks` | 执行的匹配钩子命令数 | |342| `num_hooks` | 执行的匹配钩子命令数 | |


529所有指标和事件共享这些标准属性:529所有指标和事件共享这些标准属性:

530 530 

531| 属性 | 描述 | 控制方式 |531| 属性 | 描述 | 控制方式 |

532| ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------- |532| - | - | - |

533| `session.id` | 唯一的会话标识符 | `OTEL_METRICS_INCLUDE_SESSION_ID`(默认:true) |533| `session.id` | 唯一的会话标识符 | `OTEL_METRICS_INCLUDE_SESSION_ID`(默认:true) |

534| `app.version` | 当前 Claude Code 版本 | `OTEL_METRICS_INCLUDE_VERSION`(默认:false) |534| `app.version` | 当前 Claude Code 版本 | `OTEL_METRICS_INCLUDE_VERSION`(默认:false) |

535| `app.entrypoint` | 会话的启动方式,例如 `cli`、`sdk-cli`、`sdk-ts`、`sdk-py` 或 `claude-vscode` | `OTEL_METRICS_INCLUDE_ENTRYPOINT`(默认:false) |535| `app.entrypoint` | 会话的启动方式,例如 `cli`、`sdk-cli`、`sdk-ts`、`sdk-py` 或 `claude-vscode` | `OTEL_METRICS_INCLUDE_ENTRYPOINT`(默认:false) |


560Claude Code 从存储库的 `origin` 远程每个会话派生这些属性一次。一个存储库的 HTTPS 和 SSH 远程产生相同的值:560Claude Code 从存储库的 `origin` 远程每个会话派生这些属性一次。一个存储库的 HTTPS 和 SSH 远程产生相同的值:

561 561 

562| 属性 | 值 |562| 属性 | 值 |

563| ------------------------- | ------------------------------------------------------------------------------------- |563| - | - |

564| `vcs.repository.url.full` | 存储库的浏览器 URL,不带 `.git`,例如 `https://github.com/example-org/example-repo` |564| `vcs.repository.url.full` | 存储库的浏览器 URL,不带 `.git`,例如 `https://github.com/example-org/example-repo` |

565| `vcs.owner.name` | 所有者或组路径,例如 `example-org`;当远程路径有单个段时省略 |565| `vcs.owner.name` | 所有者或组路径,例如 `example-org`;当远程路径有单个段时省略 |

566| `vcs.repository.name` | 裸存储库名称,例如 `example-repo` |566| `vcs.repository.name` | 裸存储库名称,例如 `example-repo` |


579Claude Code 导出以下指标。"单位"列显示附加到每个指标的 OpenTelemetry 单位字符串;计数指标不携带任何单位。579Claude Code 导出以下指标。"单位"列显示附加到每个指标的 OpenTelemetry 单位字符串;计数指标不携带任何单位。

580 580 

581| 指标名称 | 描述 | 单位 |581| 指标名称 | 描述 | 单位 |

582| ------------------------------------- | ----------------- | ------ |582| - | - | - |

583| `claude_code.session.count` | 启动的 CLI 会话计数 | none |583| `claude_code.session.count` | 启动的 CLI 会话计数 | none |

584| `claude_code.lines_of_code.count` | 修改的代码行数计数 | none |584| `claude_code.lines_of_code.count` | 修改的代码行数计数 | none |

585| `claude_code.pull_request.count` | 创建的拉取请求数 | none |585| `claude_code.pull_request.count` | 创建的拉取请求数 | none |


714当用户提交提示时,Claude Code 可能会进行多个 API 调用并运行多个工具。`prompt.id` 属性让您将所有这些事件与触发它们的单个提示联系起来。714当用户提交提示时,Claude Code 可能会进行多个 API 调用并运行多个工具。`prompt.id` 属性让您将所有这些事件与触发它们的单个提示联系起来。

715 715 

716| 属性 | 描述 |716| 属性 | 描述 |

717| ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |717| - | - |

718| `prompt.id` | UUID v4 标识符,链接处理单个用户提示时生成的所有事件 |718| `prompt.id` | UUID v4 标识符,链接处理单个用户提示时生成的所有事件 |

719| `event.sequence` | 0 开始的计数器,用于排序事件,按 Claude Code 进程而不是按会话计数 |719| `event.sequence` | 0 开始的计数器,用于排序事件,按 Claude Code 进程而不是按会话计数 |

720| `message.uuid` | 消息的 UUID,如会话记录中保存的那样,`~/.claude/projects/*/*.jsonl` 文件。在 `assistant_response` 上存在,在 `api_response_body` 上存在,在 `user_prompt` 上存在,除了命令分派,它可以产生零个或多个消息。在 `assistant_response` 和 `api_response_body` 上,这是响应的最终记录条目,下一轮的 `parentUuid` 从其链接。需要 Claude Code v2.1.214 或更高版本,或在 `api_response_body` 上需要 v2.1.274 或更高版本 |720| `message.uuid` | 消息的 UUID,如会话记录中保存的那样,`~/.claude/projects/*/*.jsonl` 文件。在 `assistant_response` 上存在,在 `api_response_body` 上存在,在 `user_prompt` 上存在,除了命令分派,它可以产生零个或多个消息。在 `assistant_response` 和 `api_response_body` 上,这是响应的最终记录条目,下一轮的 `parentUuid` 从其链接。需要 Claude Code v2.1.214 或更高版本,或在 `api_response_body` 上需要 v2.1.274 或更高版本 |


1419</h3>1419</h3>

1420 1420 

1421| 指标 | 分析机会 |1421| 指标 | 分析机会 |

1422| ------------------------------------------------------------- | --------------------------------------------------------------------- |1422| - | - |

1423| `claude_code.token.usage` | 按 `type`(输入/输出)、用户、团队、模型、`skill.name`、`plugin.name` 或 `agent.name` 分解 |1423| `claude_code.token.usage` | 按 `type`(输入/输出)、用户、团队、模型、`skill.name`、`plugin.name` 或 `agent.name` 分解 |

1424| `claude_code.session.count` | 跟踪随时间推移的采用和参与度 |1424| `claude_code.session.count` | 跟踪随时间推移的采用和参与度 |

1425| `claude_code.lines_of_code.count` | 通过跟踪代码添加和删除来衡量生产力,按模型分解 |1425| `claude_code.lines_of_code.count` | 通过跟踪代码添加和删除来衡量生产力,按模型分解 |


1509要使用完整的调用详情捕获 MCP 服务器活动,启用日志导出器并设置 `OTEL_LOG_TOOL_DETAILS=1`。每个 MCP 操作然后产生结构化事件,携带服务器名称、工具名称和调用参数以及标准身份属性:1509要使用完整的调用详情捕获 MCP 服务器活动,启用日志导出器并设置 `OTEL_LOG_TOOL_DETAILS=1`。每个 MCP 操作然后产生结构化事件,携带服务器名称、工具名称和调用参数以及标准身份属性:

1510 1510 

1511| 事件 | 它为 MCP 记录的内容 |1511| 事件 | 它为 MCP 记录的内容 |

1512| ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- |1512| - | - |

1513| `mcp_server_connection` | 服务器连接、断开连接和连接失败,带有 `server_name`、`transport_type`、`server_scope` 和错误详情 |1513| `mcp_server_connection` | 服务器连接、断开连接和连接失败,带有 `server_name`、`transport_type`、`server_scope` 和错误详情 |

1514| `tool_result` | 每个 MCP 工具调用,带有 `tool_name` 和 `mcp_server_scope`,包含 `mcp_server_name` 和 `mcp_tool_name` 的 `tool_parameters` 有效负载,以及包含调用参数的 `tool_input` 有效负载 |1514| `tool_result` | 每个 MCP 工具调用,带有 `tool_name` 和 `mcp_server_scope`,包含 `mcp_server_name` 和 `mcp_tool_name` 的 `tool_parameters` 有效负载,以及包含调用参数的 `tool_input` 有效负载 |

1515| `tool_decision` | 调用是否被允许或拒绝,以及决策是来自配置、hook 还是用户,以及包含 `mcp_server_name` 和 `mcp_tool_name` 的 `tool_parameters` 有效负载 |1515| `tool_decision` | 调用是否被允许或拒绝,以及决策是来自配置、hook 还是用户,以及包含 `mcp_server_name` 和 `mcp_tool_name` 的 `tool_parameters` 有效负载 |


1527构建检测规则时,查找您想要监控的信号并查询您的后端以获取相应的事件和属性:1527构建检测规则时,查找您想要监控的信号并查询您的后端以获取相应的事件和属性:

1528 1528 

1529| 信号 | 事件 | 关键属性 |1529| 信号 | 事件 | 关键属性 |

1530| ---------------------------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |1530| - | - | - |

1531| 工具调用被允许或拒绝,以及通过什么 | `tool_decision` | `decision`、`source`、`tool_name`、`tool_parameters` |1531| 工具调用被允许或拒绝,以及通过什么 | `tool_decision` | `decision`、`source`、`tool_name`、`tool_parameters` |

1532| 权限模式升级 | `permission_mode_changed` | `from_mode`、`to_mode`、`trigger` |1532| 权限模式升级 | `permission_mode_changed` | `from_mode`、`to_mode`、`trigger` |

1533| 策略 hook 阻止了操作 | `hook_execution_complete` | `hook_event`、`num_blocking` |1533| 策略 hook 阻止了操作 | `hook_execution_complete` | `hook_event`、`num_blocking` |

Details

206Claude Code 运行四个独立的计时器,当流式模型响应变得安静时会中止该响应,因此死连接会失败并重试,而不是挂起。首字节截止时间涵盖等待响应头的时间,在响应到达之前。其他三个监视器各自监视实时响应的不同信号。206Claude Code 运行四个独立的计时器,当流式模型响应变得安静时会中止该响应,因此死连接会失败并重试,而不是挂起。首字节截止时间涵盖等待响应头的时间,在响应到达之前。其他三个监视器各自监视实时响应的不同信号。

207 207 

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| 事件级监视器 | 没有响应事件解析。在运行字节级监视器的连接上,到达的字节(包括保活 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 秒 |


233Claude Code 需要访问以下 URL。在代理配置和防火墙规则中将这些 URL 加入白名单,特别是在容器化或受限网络环境中。当首次运行设置无法连接到 `api.anthropic.com` 或 `platform.claude.com` 时,连接性检查会指向这里;有关检查消息和恢复步骤,请参阅[无法连接到 Anthropic 服务](/docs/zh-CN/errors#unable-to-connect-to-anthropic-services)。233Claude Code 需要访问以下 URL。在代理配置和防火墙规则中将这些 URL 加入白名单,特别是在容器化或受限网络环境中。当首次运行设置无法连接到 `api.anthropic.com` 或 `platform.claude.com` 时,连接性检查会指向这里;有关检查消息和恢复步骤,请参阅[无法连接到 Anthropic 服务](/docs/zh-CN/errors#unable-to-connect-to-anthropic-services)。

234 234 

235| URL | 用途 |235| URL | 用途 |

236| ------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |236| - | - |

237| `api.anthropic.com` | Claude API 请求,包括 WebFetch [域名安全检查](/docs/zh-CN/data-usage#webfetch-domain-safety-check)、功能标志获取和遥测事件日志记录 |237| `api.anthropic.com` | Claude API 请求,包括 WebFetch [域名安全检查](/docs/zh-CN/data-usage#webfetch-domain-safety-check)、功能标志获取和遥测事件日志记录 |

238| `claude.ai` | claude.ai 账户身份验证 |238| `claude.ai` | claude.ai 账户身份验证 |

239| `claude.com` | claude.ai 账户登录在浏览器中打开 `claude.com` 页面,该页面重定向到 `claude.ai`;预先批准的 WebFetch 文档查询也从 CLI 访问此主机 |239| `claude.com` | claude.ai 账户登录在浏览器中打开 `claude.com` 页面,该页面重定向到 `claude.ai`;预先批准的 WebFetch 文档查询也从 CLI 访问此主机 |

Details

30此表显示每种样式改变了什么以及何时适合使用:30此表显示每种样式改变了什么以及何时适合使用:

31 31 

32| 样式 | 改变内容 | 何时使用 |32| 样式 | 改变内容 | 何时使用 |

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

34| [Proactive](#proactive) | Claude 立即开始工作,对常规决策做出合理的假设,而不是询问 | 你希望 Claude 通过常规决策继续工作,如果假设有误,你可以纠正方向 |34| [Proactive](#proactive) | Claude 立即开始工作,对常规决策做出合理的假设,而不是询问 | 你希望 Claude 通过常规决策继续工作,如果假设有误,你可以纠正方向 |

35| [Concise](#concise) | 响应以结果开头,省略前言、叙述和总结 | 默认响应比你想要的要长 |35| [Concise](#concise) | 响应以结果开头,省略前言、叙述和总结 | 默认响应比你想要的要长 |

36| [Explanatory](#explanatory) | Claude 添加简短的 `Insight` 块,解释其编写代码背后的选择 | 你正在了解一个代码库或想要随着更改一起获得推理 |36| [Explanatory](#explanatory) | Claude 添加简短的 `Insight` 块,解释其编写代码背后的选择 | 你正在了解一个代码库或想要随着更改一起获得推理 |


180使用位于文件顶部 `---` 标记之间的 YAML [frontmatter](/docs/zh-CN/glossary#frontmatter) 配置输出样式。所有字段都是可选的,字段名称使用由连字符分隔的小写单词。拼写错误的字段会被忽略而不会出现错误。如果 YAML 无法解析,样式仍会以其文件名加载,且不设置任何字段;运行 `claude --debug` 以查看解析错误。180使用位于文件顶部 `---` 标记之间的 YAML [frontmatter](/docs/zh-CN/glossary#frontmatter) 配置输出样式。所有字段都是可选的,字段名称使用由连字符分隔的小写单词。拼写错误的字段会被忽略而不会出现错误。如果 YAML 无法解析,样式仍会以其文件名加载,且不设置任何字段;运行 `claude --debug` 以查看解析错误。

181 181 

182| 字段 | 必需 | 描述 |182| 字段 | 必需 | 描述 |

183| :------------------------- | :- | :------------------------------------------------------------------------------------------------------------------------------------ |183| :- | :- | :- |

184| `name` | 否 | 输出样式的名称,在 `/config` 选择器中显示。默认值:文件名 |184| `name` | 否 | 输出样式的名称,在 `/config` 选择器中显示。默认值:文件名 |

185| `description` | 否 | 输出样式的描述,在 `/config` 选择器中显示 |185| `description` | 否 | 输出样式的描述,在 `/config` 选择器中显示 |

186| `keep-coding-instructions` | 否 | 设置为 `true` 以在你的样式旁边保留 Claude Code 的内置软件工程说明。默认值:`false` |186| `keep-coding-instructions` | 否 | 设置为 `true` 以在你的样式旁边保留 Claude Code 的内置软件工程说明。默认值:`false` |


197此表将你想要的内容与执行该操作的功能相匹配:197此表将你想要的内容与执行该操作的功能相匹配:

198 198 

199| 你想要 | 使用 | 为什么合适 |199| 你想要 | 使用 | 为什么合适 |

200| :---------------------------------- | :------------------------------------------------------------------- | :------------------------------------------------ |200| :- | :- | :- |

201| 每个响应都采用特定的语气、长度或格式,或 Claude 采用不同的角色 | 输出样式 | 它适用于整个会话,你可以用一个命令切换样式 |201| 每个响应都采用特定的语气、长度或格式,或 Claude 采用不同的角色 | 输出样式 | 它适用于整个会话,你可以用一个命令切换样式 |

202| Claude 了解你的项目的约定、命令和结构 | [CLAUDE.md](/docs/zh-CN/memory) | 它保存了 Claude 应该了解的关于代码库的内容,无论你选择哪种样式,它都保持加载状态 |202| Claude 了解你的项目的约定、命令和结构 | [CLAUDE.md](/docs/zh-CN/memory) | 它保存了 Claude 应该了解的关于代码库的内容,无论你选择哪种样式,它都保持加载状态 |

203| 针对一种任务的指令,例如发布清单或审查程序 | 一个 [skill](/docs/zh-CN/skills) | Claude 仅在你调用它或任务匹配时加载它,所以它不会影响无关的响应 |203| 针对一种任务的指令,例如发布清单或审查程序 | 一个 [skill](/docs/zh-CN/skills) | Claude 仅在你调用它或任务匹配时加载它,所以它不会影响无关的响应 |

overview.md +1 −1

Details

231除了上面的[终端](/docs/zh-CN/quickstart)、[VS Code](/docs/zh-CN/vs-code)、[JetBrains](/docs/zh-CN/jetbrains)、[桌面](/docs/zh-CN/desktop)和[网络](/docs/zh-CN/claude-code-on-the-web)界面外,Claude Code 还与 CI/CD、聊天和浏览器工作流集成:231除了上面的[终端](/docs/zh-CN/quickstart)、[VS Code](/docs/zh-CN/vs-code)、[JetBrains](/docs/zh-CN/jetbrains)、[桌面](/docs/zh-CN/desktop)和[网络](/docs/zh-CN/claude-code-on-the-web)界面外,Claude Code 还与 CI/CD、聊天和浏览器工作流集成:

232 232 

233| 我想要... | 最佳选项 |233| 我想要... | 最佳选项 |

234| -------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- |234| - | - |

235| 从我的手机或另一台设备继续本地会话 | [远程控制](/docs/zh-CN/remote-control) |235| 从我的手机或另一台设备继续本地会话 | [远程控制](/docs/zh-CN/remote-control) |

236| 从 Telegram、Discord、iMessage 或我自己的 webhook 推送事件到会话中 | [Channels](/docs/zh-CN/channels) |236| 从 Telegram、Discord、iMessage 或我自己的 webhook 推送事件到会话中 | [Channels](/docs/zh-CN/channels) |

237| 在本地启动任务,在移动设备上继续 | [`claude --cloud`](/docs/zh-CN/claude-code-on-the-web#from-terminal-to-cloud),然后使用 [Claude 移动应用](/docs/zh-CN/mobile) |237| 在本地启动任务,在移动设备上继续 | [`claude --cloud`](/docs/zh-CN/claude-code-on-the-web#from-terminal-to-cloud),然后使用 [Claude 移动应用](/docs/zh-CN/mobile) |

Details

17每种模式在便利性和监督之间做出不同的权衡。下表显示了在每种模式下 Claude 无需权限提示即可执行的操作。手动模式显示在其配置值 `default` 下。17每种模式在便利性和监督之间做出不同的权衡。下表显示了在每种模式下 Claude 无需权限提示即可执行的操作。手动模式显示在其配置值 `default` 下。

18 18 

19| 模式 | 无需询问即可运行的内容 | 最适合 |19| 模式 | 无需询问即可运行的内容 | 最适合 |

20| :------------------------------------------------------------------ | :-------------------------------------------------------------- | :------------ |20| :- | :- | :- |

21| `default` | 仅读取 | 自己审查每项操作,敏感工作 |21| `default` | 仅读取 | 自己审查每项操作,敏感工作 |

22| [`acceptEdits`](#auto-approve-file-edits-with-acceptedits-mode) | 读取、文件编辑和常见文件系统命令(`mkdir`、`touch`、`mv`、`cp` 等) | 迭代您正在审查的代码 |22| [`acceptEdits`](#auto-approve-file-edits-with-acceptedits-mode) | 读取、文件编辑和常见文件系统命令(`mkdir`、`touch`、`mv`、`cp` 等) | 迭代您正在审查的代码 |

23| [`plan`](#analyze-before-you-edit-with-plan-mode) | 读取,加上当 [auto 模式](#eliminate-prompts-with-auto-mode) 可用时分类器批准的命令 | 在更改代码库之前探索它 |23| [`plan`](#analyze-before-you-edit-with-plan-mode) | 读取,加上当 [auto 模式](#eliminate-prompts-with-auto-mode) 可用时分类器批准的命令 | 在更改代码库之前探索它 |


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

54 54 

55| 您想要 | 从以下开始 | 需要的隔离 | 注意 |55| 您想要 | 从以下开始 | 需要的隔离 | 注意 |

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

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

58| 在本地迭代,更少提示,无分类器 | Manual 模式加上 Bash 沙箱在[自动允许模式](/docs/zh-CN/sandboxing#sandbox-modes):`claude --permission-mode default`,然后运行 `/sandbox` 并选择自动允许 | 内置 Bash 沙箱,在 macOS、Linux 和 WSL2 上 | 拒绝规则仍然适用,询问规则命名命令(如 `Bash(git push *)`)仍然会提示。要从设置文件启用沙箱,请改为将 [`sandbox.enabled`](/docs/zh-CN/settings-reference#sandbox-enabled) 设置为 `true` |58| 在本地迭代,更少提示,无分类器 | Manual 模式加上 Bash 沙箱在[自动允许模式](/docs/zh-CN/sandboxing#sandbox-modes):`claude --permission-mode default`,然后运行 `/sandbox` 并选择自动允许 | 内置 Bash 沙箱,在 macOS、Linux 和 WSL2 上 | 拒绝规则仍然适用,询问规则命名命令(如 `Bash(git push *)`)仍然会提示。要从设置文件启用沙箱,请改为将 [`sandbox.enabled`](/docs/zh-CN/settings-reference#sandbox-enabled) 设置为 `true` |

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


84内置默认值取决于您如何运行 Claude Code、您的计划以及 Claude Code 是否可以获取其功能标志。匹配您会话的第一行适用。该表涵盖您在终端或通过 VS Code 扩展启动的会话;对于桌面应用和 claude.ai,请参阅[切换权限模式](#switch-permission-modes)中的 Desktop 和 Web 选项卡。84内置默认值取决于您如何运行 Claude Code、您的计划以及 Claude Code 是否可以获取其功能标志。匹配您会话的第一行适用。该表涵盖您在终端或通过 VS Code 扩展启动的会话;对于桌面应用和 claude.ai,请参阅[切换权限模式](#switch-permission-modes)中的 Desktop 和 Web 选项卡。

85 85 

86| 您如何运行 Claude Code | 内置起始权限模式 |86| 您如何运行 Claude Code | 内置起始权限模式 |

87| :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------- |87| :- | :- |

88| 任何设置文件将 `disableAutoMode` 设置为 `"disable"` | `default` |88| 任何设置文件将 `disableAutoMode` 设置为 `"disable"` | `default` |

89| [功能标志获取](/docs/zh-CN/env-vars#features-that-need-feature-flag-fetching)关闭 | `default` |89| [功能标志获取](/docs/zh-CN/env-vars#features-that-need-feature-flag-fetching)关闭 | `default` |

90| 您的[安装或升级后的第一个会话](/docs/zh-CN/env-vars#first-session-after-an-install-or-upgrade)到添加此默认值的版本,除非在全新安装后,Claude Code 及时获取标志 | `default` |90| 您的[安装或升级后的第一个会话](/docs/zh-CN/env-vars#first-session-after-an-install-or-upgrade)到添加此默认值的版本,除非在全新安装后,Claude Code 及时获取标志 | `default` |


111您可以为一个会话设置起始权限模式,或作为机器、项目或组织中每个会话的默认值。当多个设置文件设置 `permissions.defaultMode` 时,[设置优先级](/docs/zh-CN/settings#settings-precedence)决定,因此项目或托管值优先于 `~/.claude/settings.json`。要更改已运行会话的权限模式,请参阅[切换权限模式](#switch-permission-modes)。111您可以为一个会话设置起始权限模式,或作为机器、项目或组织中每个会话的默认值。当多个设置文件设置 `permissions.defaultMode` 时,[设置优先级](/docs/zh-CN/settings#settings-precedence)决定,因此项目或托管值优先于 `~/.claude/settings.json`。要更改已运行会话的权限模式,请参阅[切换权限模式](#switch-permission-modes)。

112 112 

113| 要为以下设置起始权限模式 | 执行此操作 |113| 要为以下设置起始权限模式 | 执行此操作 |

114| :--------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |114| :- | :- |

115| 您即将启动的一个会话 | 将权限模式作为标志传递,例如 `claude --permission-mode default` |115| 您即将启动的一个会话 | 将权限模式作为标志传递,例如 `claude --permission-mode default` |

116| 您在此机器上启动的每个终端会话 | 在 `~/.claude/settings.json` 中设置 `permissions.defaultMode`。有关 VS Code 扩展读取的内容,请参阅[切换权限模式](#switch-permission-modes) |116| 您在此机器上启动的每个终端会话 | 在 `~/.claude/settings.json` 中设置 `permissions.defaultMode`。有关 VS Code 扩展读取的内容,请参阅[切换权限模式](#switch-permission-modes) |

117| 您在一个项目中启动的每个终端会话 | 在项目的 `.claude/settings.json` 中设置 `permissions.defaultMode`。您在终端中启动的会话遵守除 `auto` 和 `bypassPermissions` 外的每个值;VS Code 扩展启动的会话不读取项目设置以获取起始权限模式 |117| 您在一个项目中启动的每个终端会话 | 在项目的 `.claude/settings.json` 中设置 `permissions.defaultMode`。您在终端中启动的会话遵守除 `auto` 和 `bypassPermissions` 外的每个值;VS Code 扩展启动的会话不读取项目设置以获取起始权限模式 |


166 **在会话期间**:点击提示框底部的模式指示器。它为此页面上的模式使用这些标签:166 **在会话期间**:点击提示框底部的模式指示器。它为此页面上的模式使用这些标签:

167 167 

168 | UI 标签 | 模式 |168 | UI 标签 | 模式 |

169 | :----------------- | :------------------ |169 | :- | :- |

170 | Manual | `default` |170 | Manual | `default` |

171 | Edit automatically | `acceptEdits` |171 | Edit automatically | `acceptEdits` |

172 | Plan | `plan` |172 | Plan | `plan` |


614对一小组路径的写入永远不会自动批准,唯一的例外是 `bypassPermissions` 模式,以及可使用[绕过权限](#skip-all-checks-with-bypasspermissions-mode)的 plan 模式交互式终端会话。这可以防止意外损坏存储库状态和 Claude 自己的配置。614对一小组路径的写入永远不会自动批准,唯一的例外是 `bypassPermissions` 模式,以及可使用[绕过权限](#skip-all-checks-with-bypasspermissions-mode)的 plan 模式交互式终端会话。这可以防止意外损坏存储库状态和 Claude 自己的配置。

615 615 

616| 模式 | 受保护路径写入 |616| 模式 | 受保护路径写入 |

617| :---------------------- | :-------------------------------------------------------------------------------------------------------------------------------------- |617| :- | :- |

618| `default`、`acceptEdits` | 提示 |618| `default`、`acceptEdits` | 提示 |

619| `plan` | 在[绕过权限](#skip-all-checks-with-bypasspermissions-mode)可用的交互式终端会话中允许。否则,当[自动模式](#eliminate-prompts-with-auto-mode)在规划期间可用时路由到分类器,当它不可用时提示 |619| `plan` | 在[绕过权限](#skip-all-checks-with-bypasspermissions-mode)可用的交互式终端会话中允许。否则,当[自动模式](#eliminate-prompts-with-auto-mode)在规划期间可用时路由到分类器,当它不可用时提示 |

620| `auto` | 路由到分类器 |620| `auto` | 路由到分类器 |


659会发生什么取决于您的权限模式:659会发生什么取决于您的权限模式:

660 660 

661| 模式 | Claude Code 对关键路径移除的处理 |661| 模式 | Claude Code 对关键路径移除的处理 |

662| :---------------------- | :---------------------------------------------------------------------------------- |662| :- | :- |

663| `default`、`acceptEdits` | 要求您批准它 |663| `default`、`acceptEdits` | 要求您批准它 |

664| `plan` | 要求您批准它。当[自动模式在规划期间可用](#analyze-before-you-edit-with-plan-mode)且没有绕过权限可用时,改为将其发送到分类器 |664| `plan` | 要求您批准它。当[自动模式在规划期间可用](#analyze-before-you-edit-with-plan-mode)且没有绕过权限可用时,改为将其发送到分类器 |

665| `auto` | 将其发送到[分类器](#eliminate-prompts-with-auto-mode) |665| `auto` | 将其发送到[分类器](#eliminate-prompts-with-auto-mode) |

permissions.md +15 −15

Details

15Claude Code 使用分层权限系统来平衡功能和安全性。该表显示了对于每种工具类型,手动模式是否在操作运行前询问。其他[权限模式](#permission-modes)改变了这些提示中的哪些会询问您;在自动模式中,分类器会审查操作而不是您,[分类器如何评估操作](/docs/zh-CN/permission-modes#how-the-classifier-evaluates-actions)列出了它看到的操作。15Claude Code 使用分层权限系统来平衡功能和安全性。该表显示了对于每种工具类型,手动模式是否在操作运行前询问。其他[权限模式](#permission-modes)改变了这些提示中的哪些会询问您;在自动模式中,分类器会审查操作而不是您,[分类器如何评估操作](/docs/zh-CN/permission-modes#how-the-classifier-evaluates-actions)列出了它看到的操作。

16 16 

17| 工具类型 | 示例 | 需要批准 | "是,不再询问"行为 |17| 工具类型 | 示例 | 需要批准 | "是,不再询问"行为 |

18| :------ | :------------ | :--------------------------------------------------------------- | :------------ |18| :- | :- | :- | :- |

19| 只读 | 文件读取、Grep | 否,在[工作目录和其他目录](#working-directories)内 | 不适用 |19| 只读 | 文件读取、Grep | 否,在[工作目录和其他目录](#working-directories)内 | 不适用 |

20| Bash 命令 | Shell 执行 | 是,除了内置的[只读命令](#read-only-commands)集合 | 每个项目目录和命令永久有效 |20| Bash 命令 | Shell 执行 | 是,除了内置的[只读命令](#read-only-commands)集合 | 每个项目目录和命令永久有效 |

21| 文件修改 | Edit/Write 文件 | 是 | 直到会话结束 |21| 文件修改 | Edit/Write 文件 | 是 | 直到会话结束 |


76Claude Code 支持多种权限模式来控制工具调用的批准方式。请参阅[权限模式](/docs/zh-CN/permission-modes)了解何时使用每种模式。要更改会话启动时的模式,请在您的[设置文件](/docs/zh-CN/settings#where-settings-live)中设置 `defaultMode`。[会话启动时的模式](/docs/zh-CN/permission-modes#which-mode-a-session-starts-in)涵盖了每个计划的内置默认值以及 VS Code 扩展读取的内容。76Claude Code 支持多种权限模式来控制工具调用的批准方式。请参阅[权限模式](/docs/zh-CN/permission-modes)了解何时使用每种模式。要更改会话启动时的模式,请在您的[设置文件](/docs/zh-CN/settings#where-settings-live)中设置 `defaultMode`。[会话启动时的模式](/docs/zh-CN/permission-modes#which-mode-a-session-starts-in)涵盖了每个计划的内置默认值以及 VS Code 扩展读取的内容。

77 77 

78| 模式 | 描述 |78| 模式 | 描述 |

79| :------------------ | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |79| :- | :- |

80| `default` | 在首次使用每个工具时提示权限。在 CLI、VS Code 和 JetBrains 扩展以及桌面应用中标记为 Manual,Claude Code 接受 `manual` 作为别名。标签和别名需要 Claude Code v2.1.200 或更高版本。桌面应用的标签不依赖于您的 CLI 版本 |80| `default` | 在首次使用每个工具时提示权限。在 CLI、VS Code 和 JetBrains 扩展以及桌面应用中标记为 Manual,Claude Code 接受 `manual` 作为别名。标签和别名需要 Claude Code v2.1.200 或更高版本。桌面应用的标签不依赖于您的 CLI 版本 |

81| `acceptEdits` | 自动接受工作目录或 `additionalDirectories` 中路径的文件编辑和常见文件系统命令,例如 `mkdir`、`touch`、`mv` 和 `cp` |81| `acceptEdits` | 自动接受工作目录或 `additionalDirectories` 中路径的文件编辑和常见文件系统命令,例如 `mkdir`、`touch`、`mv` 和 `cp` |

82| `plan` | Claude 读取文件并运行只读 shell 命令来探索,但不编辑您的源文件;在[自动模式](/docs/zh-CN/permission-modes#eliminate-prompts-with-auto-mode)可用的情况下,分类器批准的命令也会运行。在 CLI 和 VS Code 扩展中标记为 Plan |82| `plan` | Claude 读取文件并运行只读 shell 命令来探索,但不编辑您的源文件;在[自动模式](/docs/zh-CN/permission-modes#eliminate-prompts-with-auto-mode)可用的情况下,分类器批准的命令也会运行。在 CLI 和 VS Code 扩展中标记为 Plan |


103要匹配工具的所有使用,只需使用工具名称而不带括号:103要匹配工具的所有使用,只需使用工具名称而不带括号:

104 104 

105| 规则 | 效果 |105| 规则 | 效果 |

106| :--------- | :----------- |106| :- | :- |

107| `Bash` | 匹配所有 Bash 命令 |107| `Bash` | 匹配所有 Bash 命令 |

108| `WebFetch` | 匹配所有网络获取请求 |108| `WebFetch` | 匹配所有网络获取请求 |

109| `Read` | 匹配所有文件读取 |109| `Read` | 匹配所有文件读取 |


117在括号中添加说明符以匹配特定的工具使用:117在括号中添加说明符以匹配特定的工具使用:

118 118 

119| 规则 | 效果 |119| 规则 | 效果 |

120| :----------------------------- | :---------------------- |120| :- | :- |

121| `Bash(npm run build)` | 匹配确切的命令 `npm run build` |121| `Bash(npm run build)` | 匹配确切的命令 `npm run build` |

122| `Read(./.env)` | 匹配读取当前目录中的 `.env` 文件 |122| `Read(./.env)` | 匹配读取当前目录中的 `.env` 文件 |

123| `WebFetch(domain:example.com)` | 匹配对 example.com 的获取请求 |123| `WebFetch(domain:example.com)` | 匹配对 example.com 的获取请求 |


133当 Claude 使用该参数设置为该确切值调用工具时,参数规则匹配。一个参数值的允许规则不会确立该调用总体上是安全的,因此允许规则继续使用每个工具自己的说明符语法。这适用于工具接受的任何标量参数:133当 Claude 使用该参数设置为该确切值调用工具时,参数规则匹配。一个参数值的允许规则不会确立该调用总体上是安全的,因此允许规则继续使用每个工具自己的说明符语法。这适用于工具接受的任何标量参数:

134 134 

135| 规则 | 匹配 |135| 规则 | 匹配 |

136| :----------------------------- | :------------------------- |136| :- | :- |

137| `Agent(model:opus)` | 请求 Opus 模型层级的 Agent 调用 |137| `Agent(model:opus)` | 请求 Opus 模型层级的 Agent 调用 |

138| `Agent(isolation:worktree)` | 请求 git worktree 的 Agent 调用 |138| `Agent(isolation:worktree)` | 请求 git worktree 的 Agent 调用 |

139| `Bash(run_in_background:true)` | 在后台运行的 Bash 调用 |139| `Bash(run_in_background:true)` | 在后台运行的 Bash 调用 |


178`*` 可以出现在规则中的任何位置:开始、中间或结尾。每行显示一个规则、它匹配的命令以及附近它不匹配的命令:178`*` 可以出现在规则中的任何位置:开始、中间或结尾。每行显示一个规则、它匹配的命令以及附近它不匹配的命令:

179 179 

180| 您编写 | 匹配 | 不匹配 |180| 您编写 | 匹配 | 不匹配 |

181| :--------------------- | :--------------------------------------------------------------------------------- | :------------------------------------ |181| :- | :- | :- |

182| `Bash(npm run build)` | `npm run build` | `npm run build --watch` |182| `Bash(npm run build)` | `npm run build` | `npm run build --watch` |

183| `Bash(npm run *)` | `npm run build`、`npm run test --watch`、`npm run` | `npm install` |183| `Bash(npm run *)` | `npm run build`、`npm run test --watch`、`npm run` | `npm install` |

184| `Bash(git log * main)` | `git log --oneline main`、`git log -5 main`、`git log --output=<file> main` | `git log main`、`git push origin main` |184| `Bash(git log * main)` | `git log --oneline main`、`git log -5 main`、`git log --output=<file> main` | `git log main`、`git push origin main` |


265Bash 规则匹配 Claude 编写的命令文本,在 Claude Code 分割[复合命令](#compound-commands)和剥离[包装器](#process-wrappers)之后。它不匹配以不同形式调用的同一程序,因此 deny 或 ask 规则涵盖 Claude 通常产生的调用,而不是围绕程序的安全边界。`deny` 或 `ask` 中的这些规则停止第一种形式,而不是其他形式:265Bash 规则匹配 Claude 编写的命令文本,在 Claude Code 分割[复合命令](#compound-commands)和剥离[包装器](#process-wrappers)之后。它不匹配以不同形式调用的同一程序,因此 deny 或 ask 规则涵盖 Claude 通常产生的调用,而不是围绕程序的安全边界。`deny` 或 `ask` 中的这些规则停止第一种形式,而不是其他形式:

266 266 

267| 规则 | 停止 | 不停止 |267| 规则 | 停止 | 不停止 |

268| :----------------- | :------------------------- | :-------------------------------------------------------------------------------------------------- |268| :- | :- | :- |

269| `Bash(curl *)` | `curl https://example.com` | `/usr/bin/curl https://example.com`、`sh -c 'curl https://example.com'` |269| `Bash(curl *)` | `curl https://example.com` | `/usr/bin/curl https://example.com`、`sh -c 'curl https://example.com'` |

270| `Bash(rm *)` | `rm -rf build/` | `/bin/rm -rf build/`、`bash -c 'rm -rf build/'` |270| `Bash(rm *)` | `rm -rf build/` | `/bin/rm -rf build/`、`bash -c 'rm -rf build/'` |

271| `Bash(git push *)` | `git push origin main` | `git -C . push origin main`、`git -c push.default=current push origin main`、`git 'push' origin main` |271| `Bash(git push *)` | `git push origin main` | `git -C . push origin main`、`git -c push.default=current push origin main`、`git 'push' origin main` |


370Read 和 Edit 规则都使用[gitignore](https://git-scm.com/docs/gitignore)模式语法,具有四种不同的模式类型;对于单段目录模式,匹配深度也取决于规则类型,本节后面描述:370Read 和 Edit 规则都使用[gitignore](https://git-scm.com/docs/gitignore)模式语法,具有四种不同的模式类型;对于单段目录模式,匹配深度也取决于规则类型,本节后面描述:

371 371 

372| 模式 | 含义 | 示例 | 匹配 |372| 模式 | 含义 | 示例 | 匹配 |

373| ----------------- | -------------- | -------------------------------- | ------------------------------------------------ |373| - | - | - | - |

374| `//path` | 来自文件系统根目录的绝对路径 | `Read(//Users/alice/secrets/**)` | `/Users/alice/secrets/**` |374| `//path` | 来自文件系统根目录的绝对路径 | `Read(//Users/alice/secrets/**)` | `/Users/alice/secrets/**` |

375| `~/path` | 来自主目录的路径 | `Read(~/Documents/*.pdf)` | `/Users/alice/Documents/*.pdf` |375| `~/path` | 来自主目录的路径 | `Read(~/Documents/*.pdf)` | `/Users/alice/Documents/*.pdf` |

376| `/path` | 相对于设置源的路径 | `Edit(/src/**/*.ts)` | 项目设置中的 `<primary working directory>/src/**/*.ts` |376| `/path` | 相对于设置源的路径 | `Edit(/src/**/*.ts)` | 项目设置中的 `<primary working directory>/src/**/*.ts` |


383`/path` 模式锚定在与定义它的设置源关联的目录,因此相同的规则根据您放置它的位置匹配不同的位置:383`/path` 模式锚定在与定义它的设置源关联的目录,因此相同的规则根据您放置它的位置匹配不同的位置:

384 384 

385| 规则定义在 | `/path` 解析为 |385| 规则定义在 | `/path` 解析为 |

386| :----------------------------------- | :--------------------------------- |386| :- | :- |

387| `.claude/settings.json` 处的项目设置 | `<primary working directory>/path` |387| `.claude/settings.json` 处的项目设置 | `<primary working directory>/path` |

388| `.claude/settings.local.json` 处的本地设置 | `<primary working directory>/path` |388| `.claude/settings.local.json` 处的本地设置 | `<primary working directory>/path` |

389| `~/.claude/settings.json` 处的用户设置 | `~/.claude/path` |389| `~/.claude/settings.json` 处的用户设置 | `~/.claude/path` |


408一个规则只匹配其锚点下的文件;在该范围内,匹配深度取决于模式形状,以及对于单段目录模式,规则类型,下面描述。裸文件名遵循 gitignore 语义并在任何深度匹配,因此 `Read(.env)` 和 `Read(**/.env)` 是等价的:408一个规则只匹配其锚点下的文件;在该范围内,匹配深度取决于模式形状,以及对于单段目录模式,规则类型,下面描述。裸文件名遵循 gitignore 语义并在任何深度匹配,因此 `Read(.env)` 和 `Read(**/.env)` 是等价的:

409 409 

410| Deny 规则 | 阻止 | 不阻止 |410| Deny 规则 | 阻止 | 不阻止 |

411| ------------------------------ | ------------------- | ------------------ |411| - | - | - |

412| `Read(.env)` 或 `Read(**/.env)` | 当前目录或其下的任何 `.env` | 父目录或另一个项目中的 `.env` |412| `Read(.env)` 或 `Read(**/.env)` | 当前目录或其下的任何 `.env` | 父目录或另一个项目中的 `.env` |

413| `Read(//**/.env)` | 文件系统上任何地方的任何 `.env` | 无;规则锚定在文件系统根目录 |413| `Read(//**/.env)` | 文件系统上任何地方的任何 `.env` | 无;规则锚定在文件系统根目录 |

414 414 


432```432```

433 433 

434| 规则 | 匹配 `src/app.ts` | 匹配 `vendor/pkg/src/lib.js` |434| 规则 | 匹配 `src/app.ts` | 匹配 `vendor/pkg/src/lib.js` |

435| :------------------------------ | :-------------- | :------------------------- |435| :- | :- | :- |

436| `Edit(src/**)` 作为 allow 规则 | 是 | 否 |436| `Edit(src/**)` 作为 allow 规则 | 是 | 否 |

437| `Edit(src/**)` 作为 deny 或 ask 规则 | 是 | 是 |437| `Edit(src/**)` 作为 deny 或 ask 规则 | 是 | 是 |

438| `Edit(/src/**)` 在任何规则类型中 | 是 | 否 |438| `Edit(/src/**)` 在任何规则类型中 | 是 | 否 |


491每行显示规则在 `allow` 列表中和 `deny` 列表中的作用:491每行显示规则在 `allow` 列表中和 `deny` 列表中的作用:

492 492 

493| 规则 | 在 `allow` 中 | 在 `deny` 中 |493| 规则 | 在 `allow` 中 | 在 `deny` 中 |

494| :------------------- | :------------------------------- | :------------------------------------------------------------ |494| :- | :- | :- |

495| `WebFetch` | Claude 无需提示您即可获取。不改变沙箱命令可以到达的主机。 | Claude Code 移除 `WebFetch` 工具,因此 Claude 根本无法获取。不改变沙箱命令可以到达的主机。 |495| `WebFetch` | Claude 无需提示您即可获取。不改变沙箱命令可以到达的主机。 | Claude Code 移除 `WebFetch` 工具,因此 Claude 根本无法获取。不改变沙箱命令可以到达的主机。 |

496| `WebFetch(domain:*)` | Claude 无需提示您即可获取,沙箱命令可以到达任何主机。 | Claude Code 保留工具并拒绝每次获取,沙箱命令无法到达任何主机。 |496| `WebFetch(domain:*)` | Claude 无需提示您即可获取,沙箱命令可以到达任何主机。 | Claude Code 保留工具并拒绝每次获取,沙箱命令无法到达任何主机。 |

497 497 


560路径模式共享来自 [Read 和 Edit 规则](#read-and-edit)的 `//`、`~/` 和 `/` 锚点,但匹配锚定到整个目录路径而不是 gitignore 风格。`*` 匹配恰好一个路径段,`**` 匹配跨段。尾部 `/**` 也匹配其命名的根。560路径模式共享来自 [Read 和 Edit 规则](#read-and-edit)的 `//`、`~/` 和 `/` 锚点,但匹配锚定到整个目录路径而不是 gitignore 风格。`*` 匹配恰好一个路径段,`**` 匹配跨段。尾部 `/**` 也匹配其命名的根。

561 561 

562| 规则 | 匹配 | 不匹配 |562| 规则 | 匹配 | 不匹配 |

563| --------------------- | ------------------------- | ------------------------- |563| - | - | - |

564| `Cd(~/code/*)` | `~/code/app` | `~/code/app/src`、`~/code` |564| `Cd(~/code/*)` | `~/code/app` | `~/code/app/src`、`~/code` |

565| `Cd(~/code/**)` | `~/code` 和其下的任何目录 | `~/code` 外的目录 |565| `Cd(~/code/**)` | `~/code` 和其下的任何目录 | `~/code` 外的目录 |

566| `Cd(**/node_modules)` | 任何深度的任何 `node_modules` 目录 | `node_modules/pkg` |566| `Cd(**/node_modules)` | 任何深度的任何 `node_modules` 目录 | `node_modules/pkg` |


627以下配置类型从 `--add-dir` 目录加载:627以下配置类型从 `--add-dir` 目录加载:

628 628 

629| 配置 | 从 `--add-dir` 加载 |629| 配置 | 从 `--add-dir` 加载 |

630| :------------------------------------------------------------------------------ | :-------------------------------------------------------------------------------------------------- |630| :- | :- |

631| `.claude/skills/` 中的 [Skills](/docs/zh-CN/skills) | 是,带有实时重新加载 |631| `.claude/skills/` 中的 [Skills](/docs/zh-CN/skills) | 是,带有实时重新加载 |

632| `.claude/commands/` 中的[命令文件](/docs/zh-CN/skills#where-skills-live) | 是,不带实时重新加载。当添加的目录和您的项目都定义了同名命令时,Claude Code 运行您的项目的命令 |632| `.claude/commands/` 中的[命令文件](/docs/zh-CN/skills#where-skills-live) | 是,不带实时重新加载。当添加的目录和您的项目都定义了同名命令时,Claude Code 运行您的项目的命令 |

633| `.claude/agents/` 中的 [Subagents](/docs/zh-CN/sub-agents) | 是,不带实时重新加载 |633| `.claude/agents/` 中的 [Subagents](/docs/zh-CN/sub-agents) | 是,不带实时重新加载 |


729每一行是存储库可以提供的一种内容。列是两种您尚未信任该文件夹本身的情况:您仅信任了父文件夹,或您在那里运行了 `claude -p` 或 SDK,这永远不会显示信任对话框。父文件夹列不适用于[嵌套存储库](#project-allow-rules-and-workspace-trust)内:在交互式会话中 Claude Code 为其显示信任对话框,`claude -p` 或 SDK 运行遵循 `claude -p` 列。729每一行是存储库可以提供的一种内容。列是两种您尚未信任该文件夹本身的情况:您仅信任了父文件夹,或您在那里运行了 `claude -p` 或 SDK,这永远不会显示信任对话框。父文件夹列不适用于[嵌套存储库](#project-allow-rules-and-workspace-trust)内:在交互式会话中 Claude Code 为其显示信任对话框,`claude -p` 或 SDK 运行遵循 `claude -p` 列。

730 730 

731| 存储库提供的内容 | 您仅信任了父文件夹 | `claude -p` 或 SDK,文件夹从未被信任 |731| 存储库提供的内容 | 您仅信任了父文件夹 | `claude -p` 或 SDK,文件夹从未被信任 |

732| :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------- |732| :- | :- | :- |

733| 设置文件中的 [Hooks](/docs/zh-CN/hooks)、[`env`](/docs/zh-CN/settings-reference#env) 块和辅助命令(如 [`apiKeyHelper`](/docs/zh-CN/settings-reference#apikeyhelper)),以及项目技能的 [hooks](/docs/zh-CN/hooks#hooks-in-skills-and-agents) 和 [`allowed-tools`](/docs/zh-CN/skills#pre-approve-tools-for-a-skill) | 已使用 | 已使用。工作区信任在任何会话中都不会限制技能的 `allowed-tools` |733| 设置文件中的 [Hooks](/docs/zh-CN/hooks)、[`env`](/docs/zh-CN/settings-reference#env) 块和辅助命令(如 [`apiKeyHelper`](/docs/zh-CN/settings-reference#apikeyhelper)),以及项目技能的 [hooks](/docs/zh-CN/hooks#hooks-in-skills-and-agents) 和 [`allowed-tools`](/docs/zh-CN/skills#pre-approve-tools-for-a-skill) | 已使用 | 已使用。工作区信任在任何会话中都不会限制技能的 `allowed-tools` |

734| `.claude/settings.json` 中的 `permissions.allow` 规则和 `additionalDirectories` | 在您接受信任对话框之前不使用,对话框再次出现列出它们 | 不使用。Claude Code 向 stderr 打印 [`this workspace has not been trusted`](/docs/zh-CN/errors#workspace-has-not-been-trusted) 警告 |734| `.claude/settings.json` 中的 `permissions.allow` 规则和 `additionalDirectories` | 在您接受信任对话框之前不使用,对话框再次出现列出它们 | 不使用。Claude Code 向 stderr 打印 [`this workspace has not been trusted`](/docs/zh-CN/errors#workspace-has-not-been-trusted) 警告 |

735| 项目[子代理](/docs/zh-CN/sub-agents#hooks-in-subagent-frontmatter)中的 Frontmatter hooks、项目 [`@skills-dir` 插件](/docs/zh-CN/plugins/loading#plugins-shared-through-a-repository) 和来自存储库或 `--add-dir` 目录的 [`extraKnownMarketplaces`](/docs/zh-CN/settings-reference#extraknownmarketplaces) 条目 | 不使用,不提供对话框 | 不使用 |735| 项目[子代理](/docs/zh-CN/sub-agents#hooks-in-subagent-frontmatter)中的 Frontmatter hooks、项目 [`@skills-dir` 插件](/docs/zh-CN/plugins/loading#plugins-shared-through-a-repository) 和来自存储库或 `--add-dir` 目录的 [`extraKnownMarketplaces`](/docs/zh-CN/settings-reference#extraknownmarketplaces) 条目 | 不使用,不提供对话框 | 不使用 |

platforms.md +3 −3

Details

15根据您喜欢的工作方式和项目所在位置选择平台。15根据您喜欢的工作方式和项目所在位置选择平台。

16 16 

17| 平台 | 最适合 | 您获得的功能 |17| 平台 | 最适合 | 您获得的功能 |

18| :----------------------------------- | :------------------------------------------------ | :-------------------------------------------------------------------------------------------------------------------------------------------------------- |18| :- | :- | :- |

19| [CLI](/docs/zh-CN/quickstart) | 终端工作流、脚本编写、远程服务器 | 完整功能集、[Agent SDK](/docs/zh-CN/headless)、[计算机使用](/docs/zh-CN/computer-use)在 macOS 上(Pro 和 Max)、第三方提供商 |19| [CLI](/docs/zh-CN/quickstart) | 终端工作流、脚本编写、远程服务器 | 完整功能集、[Agent SDK](/docs/zh-CN/headless)、[计算机使用](/docs/zh-CN/computer-use)在 macOS 上(Pro 和 Max)、第三方提供商 |

20| [Desktop](/docs/zh-CN/desktop) | 视觉审查、并行会话、托管设置 | Diff 查看器、应用预览、Pro 和 Max 上的[计算机使用](/docs/zh-CN/desktop#let-claude-use-your-computer)和 [Dispatch](/docs/zh-CN/desktop#sessions-from-dispatch) |20| [Desktop](/docs/zh-CN/desktop) | 视觉审查、并行会话、托管设置 | Diff 查看器、应用预览、Pro 和 Max 上的[计算机使用](/docs/zh-CN/desktop#let-claude-use-your-computer)和 [Dispatch](/docs/zh-CN/desktop#sessions-from-dispatch) |

21| [VS Code](/docs/zh-CN/vs-code) | 在 VS Code 内工作而无需切换到终端 | 内联 diff、集成终端、文件上下文 |21| [VS Code](/docs/zh-CN/vs-code) | 在 VS Code 内工作而无需切换到终端 | 内联 diff、集成终端、文件上下文 |


34集成让 Claude 与代码库外的服务协作。34集成让 Claude 与代码库外的服务协作。

35 35 

36| 集成 | 功能 | 用途 |36| 集成 | 功能 | 用途 |

37| :----------------------------------------------- | :--------------------------------- | :-------------------------------------------- |37| :- | :- | :- |

38| [Chrome](/docs/zh-CN/chrome) | 使用您登录的会话控制浏览器 | 测试 Web 应用、填充表单、自动化没有 API 的网站 |38| [Chrome](/docs/zh-CN/chrome) | 使用您登录的会话控制浏览器 | 测试 Web 应用、填充表单、自动化没有 API 的网站 |

39| [GitHub Actions](/docs/zh-CN/github-actions) | 在 CI 管道中运行 Claude | 自动化 PR 审查、问题分类、计划维护 |39| [GitHub Actions](/docs/zh-CN/github-actions) | 在 CI 管道中运行 Claude | 自动化 PR 审查、问题分类、计划维护 |

40| [GitLab CI/CD](/docs/zh-CN/gitlab-ci-cd) | 与 GitHub Actions 相同,但用于 GitLab | GitLab 上的 CI 驱动自动化 |40| [GitLab CI/CD](/docs/zh-CN/gitlab-ci-cd) | 与 GitHub Actions 相同,但用于 GitLab | GitLab 上的 CI 驱动自动化 |


51Claude Code 提供了多种方式在您不在终端时进行工作。它们在触发工作的方式、Claude 运行的位置以及所需的设置量方面有所不同。51Claude Code 提供了多种方式在您不在终端时进行工作。它们在触发工作的方式、Claude 运行的位置以及所需的设置量方面有所不同。

52 52 

53| | 触发方式 | Claude 运行位置 | 设置 | 最适合 |53| | 触发方式 | Claude 运行位置 | 设置 | 最适合 |

54| :---------------------------------------------------------- | :---------------------------------------------------------------- | :--------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------- | :---------------------- |54| :- | :- | :- | :- | :- |

55| [Dispatch](/docs/zh-CN/desktop#sessions-from-dispatch) | 从 Claude 移动应用发送任务消息 | 您的机器(Desktop) | [将移动应用与 Desktop 配对](https://support.claude.com/en/articles/13947068) | 在您离开时委派工作,最少设置 |55| [Dispatch](/docs/zh-CN/desktop#sessions-from-dispatch) | 从 Claude 移动应用发送任务消息 | 您的机器(Desktop) | [将移动应用与 Desktop 配对](https://support.claude.com/en/articles/13947068) | 在您离开时委派工作,最少设置 |

56| [Remote Control](/docs/zh-CN/remote-control) | 从 [claude.ai/code](https://claude.ai/code) 或 Claude 移动应用驱动正在运行的会话 | 您的机器(CLI 或 VS Code) | 运行 `claude remote-control` | 从另一台设备控制进行中的工作 |56| [Remote Control](/docs/zh-CN/remote-control) | 从 [claude.ai/code](https://claude.ai/code) 或 Claude 移动应用驱动正在运行的会话 | 您的机器(CLI 或 VS Code) | 运行 `claude remote-control` | 从另一台设备控制进行中的工作 |

57| [Channels](/docs/zh-CN/channels) | 从聊天应用(如 Telegram 或 Discord)或您自己的服务器推送事件 | 您的机器(CLI) | [安装频道插件](/docs/zh-CN/channels#quickstart) 或 [构建您自己的](/docs/zh-CN/channels-reference) | 对外部事件(如 CI 失败或聊天消息)做出反应 |57| [Channels](/docs/zh-CN/channels) | 从聊天应用(如 Telegram 或 Discord)或您自己的服务器推送事件 | 您的机器(CLI) | [安装频道插件](/docs/zh-CN/channels#quickstart) 或 [构建您自己的](/docs/zh-CN/channels-reference) | 对外部事件(如 CI 失败或聊天消息)做出反应 |

plugin-evals.md +10 −10

Details

346大多数时候,你从插件根目录运行 `claude plugin eval .`,这会运行套件中的每个用例,并加载你所在的插件。要运行单个用例文件,或评估你安装的插件而不是你正在开发的插件,请传递不同的 target:346大多数时候,你从插件根目录运行 `claude plugin eval .`,这会运行套件中的每个用例,并加载你所在的插件。要运行单个用例文件,或评估你安装的插件而不是你正在开发的插件,请传递不同的 target:

347 347 

348| Target | 运行内容 |348| Target | 运行内容 |

349| :-------------------------------------- | :------------------------------------------------------------------------------------------------ |349| :- | :- |

350| 插件的根目录,例如 `.` | 其 eval 目录下的每个用例,加载该插件 |350| 插件的根目录,例如 `.` | 其 eval 目录下的每个用例,加载该插件 |

351| 单个 `prompt.md` 或 `case.yaml` 文件 | 该用例,加载其所在的插件 |351| 单个 `prompt.md` 或 `case.yaml` 文件 | 该用例,加载其所在的插件 |

352| 已安装的插件(按名称),`name` 或 `name@marketplace` | 已安装副本的 eval 目录中的用例,加载已安装的副本。结果写入当前目录下的 `./evals/results/`,或使用 `--eval-dir` 时写入 `./<dir>/results/` |352| 已安装的插件(按名称),`name` 或 `name@marketplace` | 已安装副本的 eval 目录中的用例,加载已安装的副本。结果写入当前目录下的 `./evals/results/`,或使用 `--eval-dir` 时写入 `./<dir>/results/` |


378此表涵盖运行次数、模型、评分、成本、工具授予、模拟和输出的选项。运行 `claude plugin eval --help` 获取完整列表,其中还包括 `--case`、`--tag`、`--eval-dir`、`--no-scaffold`、`--report` 和 `--verbose`。378此表涵盖运行次数、模型、评分、成本、工具授予、模拟和输出的选项。运行 `claude plugin eval --help` 获取完整列表,其中还包括 `--case`、`--tag`、`--eval-dir`、`--no-scaffold`、`--report` 和 `--verbose`。

379 379 

380| 选项 | 默认值 | 效果 |380| 选项 | 默认值 | 效果 |

381| :------------------------- | :------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------- |381| :- | :- | :- |

382| `--runs <n>` | 每个用例的 `runs`,否则为 3 | 每个用例每个分支的运行次数 |382| `--runs <n>` | 每个用例的 `runs`,否则为 3 | 每个用例每个分支的运行次数 |

383| `-j`, `--concurrency <n>` | `1` | 一次最多运行这么多个代理运行,从 1 到 8。它们共享你账户的速率限制,所以这缩短了实际时间而不是提高超过该限制的吞吐量。结果保持用例顺序 |383| `-j`, `--concurrency <n>` | `1` | 一次最多运行这么多个代理运行,从 1 到 8。它们共享你账户的速率限制,所以这缩短了实际时间而不是提高超过该限制的吞吐量。结果保持用例顺序 |

384| `--model <model>` | 每个用例的 `model`,否则为 `ANTHROPIC_MODEL`(如果设置),否则为 Claude Code 的默认值 | 被测试代理的模型。在 CI 中固定它,以便模型推出不会被误认为是插件回归 |384| `--model <model>` | 每个用例的 `model`,否则为 `ANTHROPIC_MODEL`(如果设置),否则为 Claude Code 的默认值 | 被测试代理的模型。在 CI 中固定它,以便模型推出不会被误认为是插件回归 |


417作业的退出代码告诉你发生了什么:417作业的退出代码告诉你发生了什么:

418 418 

419| 退出代码 | 含义 |419| 退出代码 | 含义 |

420| :--- | :----------------------------------------------------------------------------------------- |420| :- | :- |

421| 0 | 每个用例得分在 `--threshold` 处或以上,每个用例文件都加载了 |421| 0 | 每个用例得分在 `--threshold` 处或以上,每个用例文件都加载了 |

422| 1 | 用例得分低于阈值,用例文件加载失败,未找到用例,无法启动运行,插件目录不受信任且未传递 `--trust-plugin`,或选项无效 |422| 1 | 用例得分低于阈值,用例文件加载失败,未找到用例,无法启动运行,插件目录不受信任且未传递 `--trust-plugin`,或选项无效 |

423| 2 | 部分运行:达到了 `--max-cost-usd` 上限,或你的凭证在首次运行前或首次运行时被拒绝。`results.json` 仍然以 `partial: true` 和原因写入 |423| 2 | 部分运行:达到了 `--max-cost-usd` 上限,或你的凭证在首次运行前或首次运行时被拒绝。`results.json` 仍然以 `partial: true` 和原因写入 |


470这些是门控脚本通常读取的字段。文档还包含套件配置、每个评分器定义和每次运行的评分器结果及解释和证据:470这些是门控脚本通常读取的字段。文档还包含套件配置、每个评分器定义和每次运行的评分器结果及解释和证据:

471 471 

472| 字段 | 含义 |472| 字段 | 含义 |

473| :------------------------------------------------ | :-------------------------------------------------------------------------------------------------------------------- |473| :- | :- |

474| `partial`, `partialReason` | `true` 带有 `cost_ceiling`、`interrupted` 或 `auth_failed` 当套件未完成时。将部分结果排除在趋势图表之外 |474| `partial`, `partialReason` | `true` 带有 `cost_ceiling`、`interrupted` 或 `auth_failed` 当套件未完成时。将部分结果排除在趋势图表之外 |

475| `aggregates.overallScore` | 套件中的平均用例分数 |475| `aggregates.overallScore` | 套件中的平均用例分数 |

476| `aggregates.casesPassed`, `aggregates.casesTotal` | 在 `--threshold` 处或以上的用例,以及总数 |476| `aggregates.casesPassed`, `aggregates.casesTotal` | 在 `--threshold` 处或以上的用例,以及总数 |


550`prompt.md` frontmatter 接受这些字段。未知键是错误:550`prompt.md` frontmatter 接受这些字段。未知键是错误:

551 551 

552| 字段 | 默认 | 目的 |552| 字段 | 默认 | 目的 |

553| :--------------------- | :----------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |553| :- | :- | :- |

554| `schema_version` | `"1.1"`,为你设置 | 用例格式版本。写成 `prompt.md` 的用例会自动获得它,所以你很少设置它 |554| `schema_version` | `"1.1"`,为你设置 | 用例格式版本。写成 `prompt.md` 的用例会自动获得它,所以你很少设置它 |

555| `name` | 目录名称 | 用例名称。`--case` globs 匹配它,报告以它为键 |555| `name` | 目录名称 | 用例名称。`--case` globs 匹配它,报告以它为键 |

556| `description` | | 对人类。运行时不使用 |556| `description` | | 对人类。运行时不使用 |


574这些字段仅存在于 `case.yaml` 中:574这些字段仅存在于 `case.yaml` 中:

575 575 

576| 字段 | 目的 |576| 字段 | 目的 |

577| :------------------------ | :------------------------------------------------------------------------------------------------------------------------- |577| :- | :- |

578| `context.scaffold_script` | 用例目录中的 Bash 脚本,在 Claude 启动前在空工作区中运行,以创建 fixture 文件或 git 存储库。仅当你传递 [`--scaffold`](#add-setup-or-history-with-case-yaml) 时运行 |578| `context.scaffold_script` | 用例目录中的 Bash 脚本,在 Claude 启动前在空工作区中运行,以创建 fixture 文件或 git 存储库。仅当你传递 [`--scaffold`](#add-setup-or-history-with-case-yaml) 时运行 |

579| `context.history_file` | 用例目录中的 `.jsonl` 记录以恢复。用例的提示成为下一个用户轮次 |579| `context.history_file` | 用例目录中的 `.jsonl` 记录以恢复。用例的提示成为下一个用户轮次 |

580| `context.add_dirs` | 用例目录内 Claude 可能在运行期间读取的目录,授予只读 |580| `context.add_dirs` | 用例目录内 Claude 可能在运行期间读取的目录,授予只读 |


588`graders/` 下的每个评分器文件在 frontmatter 中采用这些键,加上其类型的选项。评分器的名称是不带 `.md` 的文件名:588`graders/` 下的每个评分器文件在 frontmatter 中采用这些键,加上其类型的选项。评分器的名称是不带 `.md` 的文件名:

589 589 

590| 键 | 默认 | 目的 |590| 键 | 默认 | 目的 |

591| :------- | :-- | :------------------------------------------------------------------------------------------------------------------ |591| :- | :- | :- |

592| `type` | 必需 | [评分器类型](#grader-types)之一 |592| `type` | 必需 | [评分器类型](#grader-types)之一 |

593| `weight` | `1` | 运行分数中的相对权重。任何正数 |593| `weight` | `1` | 运行分数中的相对权重。任何正数 |

594| `arm` | 未设置 | `with-only` 在[两个 arm 运行](#compare-against-a-no-plugin-baseline)中排除评分器的评分;`both` 强制 Claude Code 否则会排除的评分器在两个 arm 中评分 |594| `arm` | 未设置 | `with-only` 在[两个 arm 运行](#compare-against-a-no-plugin-baseline)中排除评分器的评分;`both` 强制 Claude Code 否则会排除的评分器在两个 arm 中评分 |


600`regex` 评分器采用 `target`,`llm` 评分器采用 `focus`。两者接受相同的值:600`regex` 评分器采用 `target`,`llm` 评分器采用 `focus`。两者接受相同的值:

601 601 

602| 值 | 评分器看到的内容 |602| 值 | 评分器看到的内容 |

603| :------------------------------- | :----------------------------------------------------------------------------------------------------------------------- |603| :- | :- |

604| `last_message` | Claude 的最终响应文本。这是默认值 |604| `last_message` | Claude 的最终响应文本。这是默认值 |

605| `trace` | 整个会话作为 JSON,每行一条消息。`regex` 评分器看到每条消息;`llm` 评判看到前 12 条和最后 12 条。其中的引号和换行符是 JSON 转义的,所以正则表达式匹配 `\"` 而不是 `"` |605| `trace` | 整个会话作为 JSON,每行一条消息。`regex` 评分器看到每条消息;`llm` 评判看到前 12 条和最后 12 条。其中的引号和换行符是 JSON 转义的,所以正则表达式匹配 `\"` 而不是 `"` |

606| `files` | Claude 在运行期间创建的路径列表,每行一个。不是它们的内容,也不是 scaffold 创建或 Claude 仅修改的文件 |606| `files` | Claude 在运行期间创建的路径列表,每行一个。不是它们的内容,也不是 scaffold 创建或 Claude 仅修改的文件 |


614下面的每个评分器类型列出其选项和何时通过:614下面的每个评分器类型列出其选项和何时通过:

615 615 

616| 类型 | 选项 | 通过条件 |616| 类型 | 选项 | 通过条件 |

617| :------------ | :------------------------------------ | :----------------------------------------------------------------------------------------------------------------------------------- |617| :- | :- | :- |

618| `regex` | `pattern`, `flags`, `match`, `target` | JavaScript 正则表达式 `pattern` 在目标中找到。设置 `match: not_contains` 以要求缺失或 `match: "count:N"` 以要求恰好 N 个匹配。将大小写不敏感放在 `flags: i` 中;不支持内联 `(?i)` |618| `regex` | `pattern`, `flags`, `match`, `target` | JavaScript 正则表达式 `pattern` 在目标中找到。设置 `match: not_contains` 以要求缺失或 `match: "count:N"` 以要求恰好 N 个匹配。将大小写不敏感放在 `flags: i` 中;不支持内联 `(?i)` |

619| `tool_used` | `tool`, `input_match`, `min`, `max` | 对 `tool` 的调用数,其 JSON 编码的输入匹配可选的 `input_match` 正则表达式,在 `min`(默认 1)和 `max`(默认无限)之间。要断言工具从未被调用,设置 `min: 0` 和 `max: 0` |619| `tool_used` | `tool`, `input_match`, `min`, `max` | 对 `tool` 的调用数,其 JSON 编码的输入匹配可选的 `input_match` 正则表达式,在 `min`(默认 1)和 `max`(默认无限)之间。要断言工具从未被调用,设置 `min: 0` 和 `max: 0` |

620| `tool_order` | `before`, `after` | 两个工具都被调用,第一个匹配的 `before` 调用先于第一个匹配的 `after` 调用。每个是工具名称或 `{ tool, input_match }` |620| `tool_order` | `before`, `after` | 两个工具都被调用,第一个匹配的 `before` 调用先于第一个匹配的 `after` 调用。每个是工具名称或 `{ tool, input_match }` |


629`mocks/<server>/` 下的 `<tool>.md` 文件回答一个工具。其正文是工具结果,带有 `{{input.<field>}}` 和 `{{file:fixtures/<name>}}` 替换。其 frontmatter 接受这些键:629`mocks/<server>/` 下的 `<tool>.md` 文件回答一个工具。其正文是工具结果,带有 `{{input.<field>}}` 和 `{{file:fixtures/<name>}}` 替换。其 frontmatter 接受这些键:

630 630 

631| 键 | 默认 | 目的 |631| 键 | 默认 | 目的 |

632| :----------- | :------ | :---------------------------------------------------------------------------------------------------------------------------------- |632| :- | :- | :- |

633| `type` | `fixed` | `fixed` 按编写返回正文。`agent` 将正文视为小型模型的指令,该模型为运行扮演服务器并将早期调用视为历史 |633| `type` | `fixed` | `fixed` 按编写返回正文。`agent` 将正文视为小型模型的指令,该模型为运行扮演服务器并将早期调用视为历史 |

634| `expect` | 未设置 | 从点分输入路径到类型名称(例如 `string`、`number`、`boolean`、`array` 或 `object`)、`/regex/`、文字或允许的文字列表的映射。违反它的调用以分数 0 中止运行,并报告为 `aborted`,带有服务器、工具和原因 |634| `expect` | 未设置 | 从点分输入路径到类型名称(例如 `string`、`number`、`boolean`、`array` 或 `object`)、`/regex/`、文字或允许的文字列表的映射。违反它的调用以分数 0 中止运行,并报告为 `aborted`,带有服务器、工具和原因 |

635| `error` | `false` | `fixed` 仅。将正文作为工具错误返回 |635| `error` | `false` | `fixed` 仅。将正文作为工具错误返回 |

Details

31此表给出了每个市场的存储库和市场名称,这是你从该市场安装插件时在 `@` 后面输入的内容。社区市场的名称是 `claude-community`,而不是其存储库名称。31此表给出了每个市场的存储库和市场名称,这是你从该市场安装插件时在 `@` 后面输入的内容。社区市场的名称是 `claude-community`,而不是其存储库名称。

32 32 

33| | 官方 | 社区 | 演示 |33| | 官方 | 社区 | 演示 |

34| :------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :---------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------- |34| :- | :- | :- | :- |

35| 存储库 | [`anthropics/claude-plugins-official`](https://github.com/anthropics/claude-plugins-official) | [`anthropics/claude-plugins-community`](https://github.com/anthropics/claude-plugins-community) | [`anthropics/claude-code`](https://github.com/anthropics/claude-code/tree/main/plugins) |35| 存储库 | [`anthropics/claude-plugins-official`](https://github.com/anthropics/claude-plugins-official) | [`anthropics/claude-plugins-community`](https://github.com/anthropics/claude-plugins-community) | [`anthropics/claude-code`](https://github.com/anthropics/claude-code/tree/main/plugins) |

36| 市场名称 | `claude-plugins-official` | `claude-community` | `claude-code-plugins` |36| 市场名称 | `claude-plugins-official` | `claude-community` | `claude-code-plugins` |

37| 其中包含的内容 | Anthropic 维护的插件,加上来自合作伙伴和其他作者的插件 | 第三方插件,由其作者提交给 Anthropic | 一小组示例插件,展示插件可以包含的内容 |37| 其中包含的内容 | Anthropic 维护的插件,加上来自合作伙伴和其他作者的插件 | 第三方插件,由其作者提交给 Anthropic | 一小组示例插件,展示插件可以包含的内容 |

Details

77标签采用三个属性,全部必需:77标签采用三个属性,全部必需:

78 78 

79| 属性 | 描述 |79| 属性 | 描述 |

80| :------ | :-------------------------- |80| :- | :- |

81| `v` | 协议版本。`1` 是唯一支持的值 |81| `v` | 协议版本。`1` 是唯一支持的值 |

82| `type` | 提示类型。`plugin` 是唯一支持的值 |82| `type` | 提示类型。`plugin` 是唯一支持的值 |

83| `value` | `name@marketplace` 形式的插件标识符 |83| `value` | `name@marketplace` 形式的插件标识符 |

Details

51该命令没有用于另一个位置的标志。要改为在项目内搭建,请参阅 [创建 plugin](/docs/zh-CN/plugins/create)。51该命令没有用于另一个位置的标志。要改为在项目内搭建,请参阅 [创建 plugin](/docs/zh-CN/plugins/create)。

52 52 

53| 标志 | 描述 |53| 标志 | 描述 |

54| :----------------------- | :------------------------------------------------------------------------- |54| :- | :- |

55| `--description <text>` | 清单描述 |55| `--description <text>` | 清单描述 |

56| `--author <name>` | 作者名称。默认为 `git config user.name` |56| `--author <name>` | 作者名称。默认为 `git config user.name` |

57| `--author-email <email>` | 作者电子邮件。默认为 `git config user.email` |57| `--author-email <email>` | 作者电子邮件。默认为 `git config user.email` |


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大多数 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]`。

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>` | 设置 plugin 清单声明的 [`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 或更高版本 |


150```150```

151 151 

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` | 保留 plugin 的持久数据目录 `~/.claude/plugins/data/<id>/` |

156| `--prune` | 也删除自动安装的 [dependencies](/docs/zh-CN/plugins/dependencies),没有剩余 plugin 需要 |156| `--prune` | 也删除自动安装的 [dependencies](/docs/zh-CN/plugins/dependencies),没有剩余 plugin 需要 |


176```176```

177 177 

178| 标志 | 描述 |178| 标志 | 描述 |

179| :-------------------- | :------------------------------------------------------------------------------------------------------------------ |179| :- | :- |

180| `-s, --scope <scope>` | 启用的作用域:`user`、`project` 或 `local`。省略时自动检测 |180| `-s, --scope <scope>` | 启用的作用域:`user`、`project` 或 `local`。省略时自动检测 |

181| `--json` | 将结果作为一个 JSON 对象打印在 stdout 的最后一行,格式与 [`plugin install --json`](#plugin-json-result) 相同。需要 Claude Code v2.1.268 或更高版本 |181| `--json` | 将结果作为一个 JSON 对象打印在 stdout 的最后一行,格式与 [`plugin install --json`](#plugin-json-result) 相同。需要 Claude Code v2.1.268 或更高版本 |

182 182 


214```214```

215 215 

216| 标志 | 描述 |216| 标志 | 描述 |

217| :-------------------- | :------------------------------------------------------------------------------------------------------------------ |217| :- | :- |

218| `-a, --all` | 禁用每个启用的 plugin。不能与 plugin 名称或 `--scope` 组合 |218| `-a, --all` | 禁用每个启用的 plugin。不能与 plugin 名称或 `--scope` 组合 |

219| `-s, --scope <scope>` | 禁用的作用域:`user`、`project` 或 `local`。省略时自动检测 |219| `-s, --scope <scope>` | 禁用的作用域:`user`、`project` 或 `local`。省略时自动检测 |

220| `--json` | 将结果作为一个 JSON 对象打印在 stdout 的最后一行,格式与 [`plugin install --json`](#plugin-json-result) 相同。需要 Claude Code v2.1.268 或更高版本 |220| `--json` | 将结果作为一个 JSON 对象打印在 stdout 的最后一行,格式与 [`plugin install --json`](#plugin-json-result) 相同。需要 Claude Code v2.1.268 或更高版本 |


247```247```

248 248 

249| 标志 | 描述 |249| 标志 | 描述 |

250| :-------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------- |250| :- | :- |

251| `-s, --scope <scope>` | 更新的作用域:`user`、`project`、`local` 或 `managed`。默认为 plugin 安装的作用域 |251| `-s, --scope <scope>` | 更新的作用域:`user`、`project`、`local` 或 `managed`。默认为 plugin 安装的作用域 |

252| `-y, --yes` | 接受来自 [command-source](/docs/zh-CN/plugins/host-marketplace) plugin 的更改的安装命令,无需提示。当 stdin 或 stdout 不是 TTY 时需要,除非您传递 `--accept-command`。需要 Claude Code v2.1.229 或更高版本 |252| `-y, --yes` | 接受来自 [command-source](/docs/zh-CN/plugins/host-marketplace) plugin 的更改的安装命令,无需提示。当 stdin 或 stdout 不是 TTY 时需要,除非您传递 `--accept-command`。需要 Claude Code v2.1.229 或更高版本 |

253| `--accept-command <sha256>` | 接受市场声明的命令,其 `sha256` 之前的 [`--json` 运行](#plugin-json-result) 在 `shownCommand` 中报告,代替 `-y`。不能与 `-y` 组合。需要 Claude Code v2.1.271 或更高版本 |253| `--accept-command <sha256>` | 接受市场声明的命令,其 `sha256` 之前的 [`--json` 运行](#plugin-json-result) 在 `shownCommand` 中报告,代替 `-y`。不能与 `-y` 组合。需要 Claude Code v2.1.271 或更高版本 |


276```276```

277 277 

278| 标志 | 描述 |278| 标志 | 描述 |

279| :------------ | :-------------------------------------- |279| :- | :- |

280| `--json` | 将列表打印为 JSON |280| `--json` | 将列表打印为 JSON |

281| `--available` | 也列出您的市场提供但您未安装的 plugins。没有 `--json` 时无效 |281| `--available` | 也列出您的市场提供但您未安装的 plugins。没有 `--json` 时无效 |

282 282 


296使用 `--json`,Claude Code 打印一个数组,每个安装一个对象。每个对象都带有下面的字段。`id`、`version`、`scope`、`enabled` 和 `installPath` 始终存在,其他字段仅在适用时出现。296使用 `--json`,Claude Code 打印一个数组,每个安装一个对象。每个对象都带有下面的字段。`id`、`version`、`scope`、`enabled` 和 `installPath` 始终存在,其他字段仅在适用时出现。

297 297 

298| 字段 | 类型 | 描述 |298| 字段 | 类型 | 描述 |

299| :------------- | :--------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------- |299| :- | :- | :- |

300| `id` | string | 安装为 `name@marketplace`,会话内 plugins 为 `name@inline`,skills-directory plugins 为 `name@skills-dir`,从 claude.ai 同步的 plugins 为 `name@synced` |300| `id` | string | 安装为 `name@marketplace`,会话内 plugins 为 `name@inline`,skills-directory plugins 为 `name@skills-dir`,从 claude.ai 同步的 plugins 为 `name@synced` |

301| `version` | string | 对于市场安装,[Claude Code 在安装时计算的](/docs/zh-CN/plugins/loading#versions-and-updates) 版本。对于会话内、skills-directory 或同步 plugin,清单的 `version`,或当它不声明任何内容时为 `unknown` |301| `version` | string | 对于市场安装,[Claude Code 在安装时计算的](/docs/zh-CN/plugins/loading#versions-and-updates) 版本。对于会话内、skills-directory 或同步 plugin,清单的 `version`,或当它不声明任何内容时为 `unknown` |

302| `scope` | string | 安装为 `user`、`project`、`local` 或 `managed`;skills-directory plugins 为 `user` 或 `project`;会话内 plugins 为 `session`;从 claude.ai 同步的 plugins 为 `synced` |302| `scope` | string | 安装为 `user`、`project`、`local` 或 `managed`;skills-directory plugins 为 `user` 或 `project`;会话内 plugins 为 `session`;从 claude.ai 同步的 plugins 为 `synced` |


314使用 `--json --available`,Claude Code 打印一个对象而不是数组。其 `installed` 字段保存已安装 plugin 对象的数组,其 `available` 字段保存每个未安装市场 plugin 的一个对象,带有下面的字段。314使用 `--json --available`,Claude Code 打印一个对象而不是数组。其 `installed` 字段保存已安装 plugin 对象的数组,其 `available` 字段保存每个未安装市场 plugin 的一个对象,带有下面的字段。

315 315 

316| 字段 | 类型 | 描述 |316| 字段 | 类型 | 描述 |

317| :---------------- | :--------------- | :------------------------------------------------------------------ |317| :- | :- | :- |

318| `pluginId` | string | `name@marketplace` |318| `pluginId` | string | `name@marketplace` |

319| `name` | string | plugin 在市场中的名称 |319| `name` | string | plugin 在市场中的名称 |

320| `marketplaceName` | string | 提供它的市场 |320| `marketplaceName` | string | 提供它的市场 |


364```364```

365 365 

366| 标志 | 描述 |366| 标志 | 描述 |

367| :-------------------- | :-------------------------------------------- |367| :- | :- |

368| `-s, --scope <scope>` | 在作用域处修剪:`user`、`project` 或 `local`。默认为 `user` |368| `-s, --scope <scope>` | 在作用域处修剪:`user`、`project` 或 `local`。默认为 `user` |

369| `--dry-run` | 列出将被删除的内容而不删除它 |369| `--dry-run` | 列出将被删除的内容而不删除它 |

370| `-y, --yes` | 跳过确认提示。当 stdin 或 stdout 不是 TTY 时需要 |370| `-y, --yes` | 跳过确认提示。当 stdin 或 stdout 不是 TTY 时需要 |


384`prune` 的作用取决于是否附加了终端以及您是否传递了 `-y`:384`prune` 的作用取决于是否附加了终端以及您是否传递了 `-y`:

385 385 

386| 终端和标志 | 发生的情况 |386| 终端和标志 | 发生的情况 |

387| :-------------------------- | :-------------------------------------------------------------------- |387| :- | :- |

388| 交互式终端,无 `-y` | 列出孤立的 dependencies 并询问 `Remove? [y/N]` |388| 交互式终端,无 `-y` | 列出孤立的 dependencies 并询问 `Remove? [y/N]` |

389| 任何终端,`-y` | 删除它们并打印 `Removed N auto-installed plugins: <names>` |389| 任何终端,`-y` | 删除它们并打印 `Removed N auto-installed plugins: <names>` |

390| 非 TTY stdin 或 stdout,无 `-y` | 打印列表和 ``Not a TTY — run `claude plugin prune -y` to remove.``,不删除任何内容 |390| 非 TTY stdin 或 stdout,无 `-y` | 打印列表和 ``Not a TTY — run `claude plugin prune -y` to remove.``,不删除任何内容 |


415此表列出大多数运行使用的选项。运行 `claude plugin eval --help` 以获取完整集合,包括 `--case`、`--tag`、`--output-dir`、`--report`、`--allow-real-servers`、`--keep-temp` 和 `--verbose`。415此表列出大多数运行使用的选项。运行 `claude plugin eval --help` 以获取完整集合,包括 `--case`、`--tag`、`--output-dir`、`--report`、`--allow-real-servers`、`--keep-temp` 和 `--verbose`。

416 416 

417| 选项 | 描述 | 默认 |417| 选项 | 描述 | 默认 |

418| :------------------------- | :---------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------- |418| :- | :- | :- |

419| `--runs <n>` | 每个 [arm](/docs/zh-CN/plugin-evals#compare-against-a-no-plugin-baseline) 中每个案例的运行 | 每个案例的 `runs`,否则 3 |419| `--runs <n>` | 每个 [arm](/docs/zh-CN/plugin-evals#compare-against-a-no-plugin-baseline) 中每个案例的运行 | 每个案例的 `runs`,否则 3 |

420| `-j, --concurrency <n>` | 一次运行的代理会话,1 到 8。它们共享您的速率限制 | `1` |420| `-j, --concurrency <n>` | 一次运行的代理会话,1 到 8。它们共享您的速率限制 | `1` |

421| `--model <model>` | 被测试代理的模型 | 每个案例的 `model`,否则 `ANTHROPIC_MODEL`(如果设置),否则 Claude Code 的默认值 |421| `--model <model>` | 被测试代理的模型 | 每个案例的 `model`,否则 `ANTHROPIC_MODEL`(如果设置),否则 Claude Code 的默认值 |


434退出代码报告运行如何结束。要在管道中对其进行操作,请参阅 [在 CI 中运行 evals](/docs/zh-CN/plugin-evals#run-evals-in-ci)。434退出代码报告运行如何结束。要在管道中对其进行操作,请参阅 [在 CI 中运行 evals](/docs/zh-CN/plugin-evals#run-evals-in-ci)。

435 435 

436| 退出代码 | 含义 |436| 退出代码 | 含义 |

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

438| `0` | 每个案例都满足阈值 |438| `0` | 每个案例都满足阈值 |

439| `1` | 失败的案例、加载错误或不受信任的 plugin 目录 |439| `1` | 失败的案例、加载错误或不受信任的 plugin 目录 |

440| `2` | 部分运行 |440| `2` | 部分运行 |


466命令接受这些选项:466命令接受这些选项:

467 467 

468| 选项 | 描述 | 默认 |468| 选项 | 描述 | 默认 |

469| :------------------ | :---------------------------------------------------------- | :---------------------------------- |469| :- | :- | :- |

470| `--bare` | 为 `<name>` 写入空白 `prompt.md` 和 `graders/criteria.md`,而不是运行访谈 | |470| `--bare` | 为 `<name>` 写入空白 `prompt.md` 和 `graders/criteria.md`,而不是运行访谈 | |

471| `-i, --interactive` | 需要访谈。没有终端时失败,而不是写入模板 | |471| `-i, --interactive` | 需要访谈。没有终端时失败,而不是写入模板 | |

472| `--eval-dir <dir>` | 当前目录下方写入案例的目录 | 清单的 `experimental.evals`,否则 `evals` |472| `--eval-dir <dir>` | 当前目录下方写入案例的目录 | 清单的 `experimental.evals`,否则 `evals` |


486`[path]` 是 plugin 目录,默认为当前目录。命令通过从该目录向上走到列出 plugin 的 `.claude-plugin/marketplace.json` 来查找市场条目。486`[path]` 是 plugin 目录,默认为当前目录。命令通过从该目录向上走到列出 plugin 的 `.claude-plugin/marketplace.json` 来查找市场条目。

487 487 

488| 标志 | 描述 |488| 标志 | 描述 |

489| :-------------------- | :-------------------------------------- |489| :- | :- |

490| `--push` | 创建后将标签推送到 `--remote` |490| `--push` | 创建后将标签推送到 `--remote` |

491| `--dry-run` | 打印将被标记的内容而不创建标签 |491| `--dry-run` | 打印将被标记的内容而不创建标签 |

492| `-f, --force` | 跳过脏工作树和标签已存在检查 |492| `-f, --force` | 跳过脏工作树和标签已存在检查 |


526```526```

527 527 

528| 标志 | 描述 |528| 标志 | 描述 |

529| :--------- | :---------------------------------------------------------- |529| :- | :- |

530| `--strict` | 将警告视为错误,因此运行时容忍的未识别字段和缺失元数据失败。需要 Claude Code v2.1.145 或更高版本 |530| `--strict` | 将警告视为错误,因此运行时容忍的未识别字段和缺失元数据失败。需要 Claude Code v2.1.145 或更高版本 |

531| `--json` | 将验证报告输出为一个 JSON 对象,具有相同的退出代码。需要 Claude Code v2.1.259 或更高版本 |531| `--json` | 将验证报告输出为一个 JSON 对象,具有相同的退出代码。需要 Claude Code v2.1.259 或更高版本 |

532 532 


568Claude Code 打印它验证的文件、任何错误和警告及其路径,以及判决行。退出代码遵循判决:568Claude Code 打印它验证的文件、任何错误和警告及其路径,以及判决行。退出代码遵循判决:

569 569 

570| 退出代码 | 判决行 | 含义 |570| 退出代码 | 判决行 | 含义 |

571| :--- | :----------------------------------------------------------------------------- | :----------------------- |571| :- | :- | :- |

572| `0` | `Validation passed` 或 `Validation passed with warnings` | 清单加载。使用 `--strict`,也没有警告 |572| `0` | `Validation passed` 或 `Validation passed with warnings` | 清单加载。使用 `--strict`,也没有警告 |

573| `1` | `Validation failed` 或 `Validation failed (--strict treats warnings as errors)` | 错误,或 `--strict` 下的警告 |573| `1` | `Validation failed` 或 `Validation failed (--strict treats warnings as errors)` | 错误,或 `--strict` 下的警告 |

574| `2` | `Unexpected error during validation: <reason>` | 验证器本身失败,例如在不可读的路径上 |574| `2` | `Unexpected error during validation: <reason>` | 验证器本身失败,例如在不可读的路径上 |


607```607```

608 608 

609| 标志 | 描述 |609| 标志 | 描述 |

610| :-------------------- | :---------------------------------------------------------------------------------------------------------- |610| :- | :- |

611| `--scope <scope>` | 声明市场的设置文件:`user`、`project` 或 `local`。默认为 `user` |611| `--scope <scope>` | 声明市场的设置文件:`user`、`project` 或 `local`。默认为 `user` |

612| `--sparse <paths...>` | 将 git 检出限制在这些目录,用于 monorepos。仅限 `github` 和 `git` 源 |612| `--sparse <paths...>` | 将 git 检出限制在这些目录,用于 monorepos。仅限 `github` 和 `git` 源 |

613| `--claudeai` | 将参数读取为[托管在 claude.ai 上的市场](/docs/zh-CN/plugins/install#add-from-claude-ai)的名称,而不是源。需要 Claude Code v2.1.273 或更高版本 |613| `--claudeai` | 将参数读取为[托管在 claude.ai 上的市场](/docs/zh-CN/plugins/install#add-from-claude-ai)的名称,而不是源。需要 Claude Code v2.1.273 或更高版本 |


615`<source>` 采用下表中的任何形式,其形式决定了源类型以及 Claude Code 如何获取市场。关于生成的源对象,请参阅[市场参考](/docs/zh-CN/plugins/marketplace-reference)。615`<source>` 采用下表中的任何形式,其形式决定了源类型以及 Claude Code 如何获取市场。关于生成的源对象,请参阅[市场参考](/docs/zh-CN/plugins/marketplace-reference)。

616 616 

617| 你输入的 | 源类型 | Claude Code 如何获取它 |617| 你输入的 | 源类型 | Claude Code 如何获取它 |

618| :----------------------------------------------------------------------- | :---------- | :--------------------------------------------------- |618| :- | :- | :- |

619| `owner/repo`、`owner/repo#ref` 或 `owner/repo@ref` | `github` | 克隆 GitHub 仓库,给定时固定到 `ref`。所有者和仓库必须遵循 GitHub 命名规则 |619| `owner/repo`、`owner/repo#ref` 或 `owner/repo@ref` | `github` | 克隆 GitHub 仓库,给定时固定到 `ref`。所有者和仓库必须遵循 GitHub 命名规则 |

620| `user@host:path[.git][#ref]` | `git` | 通过 SSH 克隆 |620| `user@host:path[.git][#ref]` | `git` | 通过 SSH 克隆 |

621| `https://example.com/repo.git[#ref]` 或包含 `/_git/` 的 URL | `git` | 通过 HTTPS 克隆,包括 Azure DevOps URL |621| `https://example.com/repo.git[#ref]` 或包含 `/_git/` 的 URL | `git` | 通过 HTTPS 克隆,包括 Azure DevOps URL |


659```659```

660 660 

661| 标志 | 描述 |661| 标志 | 描述 |

662| :------- | :---------- |662| :- | :- |

663| `--json` | 将列表打印为 JSON |663| `--json` | 将列表打印为 JSON |

664 664 

665Claude Code 打印 `Configured marketplaces:` 和每个市场一行 `Source:`,或 `No marketplaces configured`。665Claude Code 打印 `Configured marketplaces:` 和每个市场一行 `Source:`,或 `No marketplaces configured`。


667使用 `--json` 时,Claude Code 打印一个数组,每个市场一个对象,包含下面的字段。每个字段都是字符串。667使用 `--json` 时,Claude Code 打印一个数组,每个市场一个对象,包含下面的字段。每个字段都是字符串。

668 668 

669| 字段 | 描述 |669| 字段 | 描述 |

670| :---------------- | :--------------------------------------------------- |670| :- | :- |

671| `name` | 市场的名称 |671| `name` | 市场的名称 |

672| `source` | `github`、`git`、`url`、`directory`、`file` 或 `claudeai` |672| `source` | `github`、`git`、`url`、`directory`、`file` 或 `claudeai` |

673| `repo` | `owner/repo`。仅限 `github` 源 |673| `repo` | `owner/repo`。仅限 `github` 源 |


701`<name>` 是 `plugin marketplace list` 显示的市场名称,而不是你传递给 `add` 的源。701`<name>` 是 `plugin marketplace list` 显示的市场名称,而不是你传递给 `add` 的源。

702 702 

703| 标志 | 描述 |703| 标志 | 描述 |

704| :---------------- | :--------------------------------------------------------------------- |704| :- | :- |

705| `--scope <scope>` | 从一个设置作用域中移除声明:`user`、`project` 或 `local`。不使用它时,Claude Code 从每个作用域中移除声明 |705| `--scope <scope>` | 从一个设置作用域中移除声明:`user`、`project` 或 `local`。不使用它时,Claude Code 从每个作用域中移除声明 |

706 706 

707从每个作用域中移除市场:707从每个作用域中移除市场:


747下表列出每个会话形式。shell 子命令 `init`、`update`、`details`、`prune`、`eval` 和 `eval init` 没有会话形式。747下表列出每个会话形式。shell 子命令 `init`、`update`、`details`、`prune`、`eval` 和 `eval init` 没有会话形式。

748 748 

749| 命令 | 别名 | 它做什么 |749| 命令 | 别名 | 它做什么 |

750| :-------------------------------------------------- | :------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |750| :- | :- | :- |

751| `/plugin` | | 在 **Discover** 选项卡上打开面板。`/plugin` 后的任何无法识别的第一个单词也这样做 |751| `/plugin` | | 在 **Discover** 选项卡上打开面板。`/plugin` 后的任何无法识别的第一个单词也这样做 |

752| `/plugin help` | `/plugin --help`、`/plugin -h` | 显示 `/plugin` 子命令的使用列表 |752| `/plugin help` | `/plugin --help`、`/plugin -h` | 显示 `/plugin` 子命令的使用列表 |

753| `/plugin list [--enabled\|--disabled]` | `ls` | 内联打印您的市场安装 plugins,带有版本、作用域和状态。过滤标志仅显示该状态。启用状态尚未应用的 plugin 标记为 `— run /reload-plugins to apply`。需要 Claude Code v2.1.163 或更高版本 |753| `/plugin list [--enabled\|--disabled]` | `ls` | 内联打印您的市场安装 plugins,带有版本、作用域和状态。过滤标志仅显示该状态。启用状态尚未应用的 plugin 标记为 `— run /reload-plugins to apply`。需要 Claude Code v2.1.163 或更高版本 |


783```783```

784 784 

785| 标志 | 描述 |785| 标志 | 描述 |

786| :-------- | :------------------------------------------ |786| :- | :- |

787| `--force` | 应用重新加载,即使它会使 prompt 缓存失效。不带破折号的 `force` 也可以 |787| `--force` | 应用重新加载,即使它会使 prompt 缓存失效。不带破折号的 `force` 也可以 |

788 788 

789<h3 id="reload-summary">789<h3 id="reload-summary">


821Plugin 作者使用它们在发布前测试 plugin。对于加载-编辑-重新加载工作流,请参阅 [在没有市场的情况下开发](/docs/zh-CN/plugins/create#develop-without-a-marketplace)。821Plugin 作者使用它们在发布前测试 plugin。对于加载-编辑-重新加载工作流,请参阅 [在没有市场的情况下开发](/docs/zh-CN/plugins/create#develop-without-a-marketplace)。

822 822 

823| 标志 | 描述 | 示例 |823| 标志 | 描述 | 示例 |

824| :-------------------- | :---------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------- |824| :- | :- | :- |

825| `--plugin-dir <path>` | 从目录或其 `.zip` 存档加载 plugin。plugins 的文件夹加载每个包含 `.claude-plugin/plugin.json` 的子文件夹。每个标志接受一个路径 | `claude --plugin-dir ./my-plugin --plugin-dir ./other.zip` |825| `--plugin-dir <path>` | 从目录或其 `.zip` 存档加载 plugin。plugins 的文件夹加载每个包含 `.claude-plugin/plugin.json` 的子文件夹。每个标志接受一个路径 | `claude --plugin-dir ./my-plugin --plugin-dir ./other.zip` |

826| `--plugin-url <url>` | 从 URL 获取 plugin `.zip` 存档。重复标志,或在一个引用值中传递多个 URL 空格分隔 | `claude --plugin-url "https://example.com/a.zip https://example.com/b.zip"` |826| `--plugin-url <url>` | 从 URL 获取 plugin `.zip` 存档。重复标志,或在一个引用值中传递多个 URL 空格分隔 | `claude --plugin-url "https://example.com/a.zip https://example.com/b.zip"` |

827 827 

Details

29 在下表中找到您的语言并安装其行中的二进制文件。如果您的语言未列出,请参阅[添加没有官方插件的语言](#add-a-language-without-an-official-plugin)。29 在下表中找到您的语言并安装其行中的二进制文件。如果您的语言未列出,请参阅[添加没有官方插件的语言](#add-a-language-without-an-official-plugin)。

30 30 

31 | 语言 | 插件 | 二进制文件 |31 | 语言 | 插件 | 二进制文件 |

32 | :---------------------- | :--------------------------------------------------------------------------------------------------------------- | :--------------------------- |32 | :- | :- | :- |

33 | C/C++ | [`clangd-lsp`](https://github.com/anthropics/claude-plugins-official/tree/main/plugins/clangd-lsp) | `clangd` |33 | C/C++ | [`clangd-lsp`](https://github.com/anthropics/claude-plugins-official/tree/main/plugins/clangd-lsp) | `clangd` |

34 | C# | [`csharp-lsp`](https://github.com/anthropics/claude-plugins-official/tree/main/plugins/csharp-lsp) | `csharp-ls` |34 | C# | [`csharp-lsp`](https://github.com/anthropics/claude-plugins-official/tree/main/plugins/csharp-lsp) | `csharp-ls` |

35 | Go | [`gopls-lsp`](https://github.com/anthropics/claude-plugins-official/tree/main/plugins/gopls-lsp) | `gopls` |35 | Go | [`gopls-lsp`](https://github.com/anthropics/claude-plugins-official/tree/main/plugins/gopls-lsp) | `gopls` |

Details

953插件可以包含颜色主题和输出样式。两者都显示在与用户自己相同的选择器中。对于任一个,设置清单键替换文件夹扫描。953插件可以包含颜色主题和输出样式。两者都显示在与用户自己相同的选择器中。对于任一个,设置清单键替换文件夹扫描。

954 954 

955| 组件 | 保存为 | 格式 | 显示在 | 清单键 |955| 组件 | 保存为 | 格式 | 显示在 | 清单键 |

956| :--- | :------------------------ | :--------------------------------------------------------------------------------------------------- | :----------------------------------- | :-------------------- |956| :- | :- | :- | :- | :- |

957| 主题 | `themes/<slug>.json` | 用户在 `~/.claude/themes/` 中写入的[自定义主题文件](/docs/zh-CN/terminal-config#create-a-custom-theme)格式 | `/theme`,在文件的 `name` 下 | `experimental.themes` |957| 主题 | `themes/<slug>.json` | 用户在 `~/.claude/themes/` 中写入的[自定义主题文件](/docs/zh-CN/terminal-config#create-a-custom-theme)格式 | `/theme`,在文件的 `name` 下 | `experimental.themes` |

958| 输出样式 | `output-styles/<name>.md` | [自定义输出样式](/docs/zh-CN/output-styles#create-a-custom-output-style)格式,带有 `name` 和 `description` frontmatter | `/output-style`,作为 `<plugin>:<name>` | `outputStyles` |958| 输出样式 | `output-styles/<name>.md` | [自定义输出样式](/docs/zh-CN/output-styles#create-a-custom-output-style)格式,带有 `name` 和 `description` frontmatter | `/output-style`,作为 `<plugin>:<name>` | `outputStyles` |

959 959 

Details

151该表列出了大多数插件开始使用的目录,[完整布局](/docs/zh-CN/plugins/manifest-reference#standard-layout)列出了其余的。151该表列出了大多数插件开始使用的目录,[完整布局](/docs/zh-CN/plugins/manifest-reference#standard-layout)列出了其余的。

152 152 

153| 位置 | 内容 |153| 位置 | 内容 |

154| :--------------------------- | :------------------------------------------------------- |154| :- | :- |

155| `.claude-plugin/plugin.json` | 清单。当您使用 `--plugin-dir` 加载插件且它没有清单时,Claude Code 会以其目录命名插件 |155| `.claude-plugin/plugin.json` | 清单。当您使用 `--plugin-dir` 加载插件且它没有清单时,Claude Code 会以其目录命名插件 |

156| `skills/` | 每个技能一个 `<name>/SKILL.md` 目录 |156| `skills/` | 每个技能一个 `<name>/SKILL.md` 目录 |

157| `commands/` | 平面 Markdown 文件,技能的较旧形式。对于新插件,使用 `skills/` |157| `commands/` | 平面 Markdown 文件,技能的较旧形式。对于新插件,使用 `skills/` |

Details

169`marketplace.json` 中的每个 plugin 条目都有一个 `source`,告诉 Claude Code 从哪里获取那个 plugin。根据 plugin 文件的存储位置选择源。该表列出了大多数 marketplace 所有者使用的源。169`marketplace.json` 中的每个 plugin 条目都有一个 `source`,告诉 Claude Code 从哪里获取那个 plugin。根据 plugin 文件的存储位置选择源。该表列出了大多数 marketplace 所有者使用的源。

170 170 

171| 源 | 何时使用 | 最小 `source` 值 |171| 源 | 何时使用 | 最小 `source` 值 |

172| :----------- | :----------------------------- | :---------------------------------------------------------------------------------------- |172| :- | :- | :- |

173| 相对路径 | plugin 的文件在 marketplace 目录内 | `"./plugins/my-first-plugin"` |173| 相对路径 | plugin 的文件在 marketplace 目录内 | `"./plugins/my-first-plugin"` |

174| `github` | plugin 是其自己的 GitHub 仓库 | `{ "source": "github", "repo": "your-org/my-first-plugin" }` |174| `github` | plugin 是其自己的 GitHub 仓库 | `{ "source": "github", "repo": "your-org/my-first-plugin" }` |

175| `git-subdir` | plugin 是某个其他仓库的子目录,例如 monorepo | `{ "source": "git-subdir", "url": "your-org/monorepo", "path": "tools/my-first-plugin" }` |175| `git-subdir` | plugin 是某个其他仓库的子目录,例如 monorepo | `{ "source": "git-subdir", "url": "your-org/monorepo", "path": "tools/my-first-plugin" }` |

Details

50要设置版本约束,请使用具有这些字段的对象,每个字段都是字符串:50要设置版本约束,请使用具有这些字段的对象,每个字段都是字符串:

51 51 

52| 字段 | 描述 |52| 字段 | 描述 |

53| :------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |53| :- | :- |

54| `name` | 依赖的 plugin 名称,如其市场条目中所示。Claude Code 在与声明 plugin 相同的市场中查找它,除非你设置 `marketplace`。必需。 |54| `name` | 依赖的 plugin 名称,如其市场条目中所示。Claude Code 在与声明 plugin 相同的市场中查找它,除非你设置 `marketplace`。必需。 |

55| `version` | 一个 [语义版本范围](https://github.com/npm/node-semver#ranges),如 `~2.1.0`、`^2.0`、`>=1.4` 或 `=2.1.0`。依赖安装在满足此范围的最高 git 标签处,因此依赖的维护者必须 [标记发布版本](#tag-plugin-releases-for-version-resolution)。 |55| `version` | 一个 [语义版本范围](https://github.com/npm/node-semver#ranges),如 `~2.1.0`、`^2.0`、`>=1.4` 或 `=2.1.0`。依赖安装在满足此范围的最高 git 标签处,因此依赖的维护者必须 [标记发布版本](#tag-plugin-releases-for-version-resolution)。 |

56| `marketplace` | 用于解析 `name` 的不同市场。允许列表控制跨市场依赖,详见 [依赖来自另一个市场的 plugin](#depend-on-a-plugin-from-another-marketplace)。 |56| `marketplace` | 用于解析 `name` 的不同市场。允许列表控制跨市场依赖,详见 [依赖来自另一个市场的 plugin](#depend-on-a-plugin-from-another-marketplace)。 |


228当多个已安装的 plugin 约束同一依赖时,依赖解析到满足所有范围的最高版本。常见组合解析如下:228当多个已安装的 plugin 约束同一依赖时,依赖解析到满足所有范围的最高版本。常见组合解析如下:

229 229 

230| Plugin A 要求 | Plugin B 要求 | 结果 |230| Plugin A 要求 | Plugin B 要求 | 结果 |

231| :---------- | :---------- | :-------------------------------------------------------------------------- |231| :- | :- | :- |

232| `^2.0` | `>=2.1` | 一次安装在最高 `2.x` 标签处,位于或高于 `2.1.0`。两个 plugin 都加载。 |232| `^2.0` | `>=2.1` | 一次安装在最高 `2.x` 标签处,位于或高于 `2.1.0`。两个 plugin 都加载。 |

233| `~2.1` | `~3.0` | 安装 plugin B 失败,消息为 `has conflicting version requirements`。Plugin A 和依赖保持原样。 |233| `~2.1` | `~3.0` | 安装 plugin B 失败,消息为 `has conflicting version requirements`。Plugin A 和依赖保持原样。 |

234| `=2.1.0` | 无 | 依赖保持在 `2.1.0`。自动更新在 plugin A 安装时跳过较新版本。 |234| `=2.1.0` | 无 | 依赖保持在 `2.1.0`。自动更新在 plugin A 安装时跳过较新版本。 |

Details

26你可以在 GitHub、另一个 git 主机、托管的 `marketplace.json` URL 或共享文件系统上的目录中托管 marketplace。向你的用户发送你的主机的添加命令,并告诉他们他们的机器上需要什么:26你可以在 GitHub、另一个 git 主机、托管的 `marketplace.json` URL 或共享文件系统上的目录中托管 marketplace。向你的用户发送你的主机的添加命令,并告诉他们他们的机器上需要什么:

27 27 

28| 主机 | 用户在 Claude Code 会话中运行 | 用户需要什么 |28| 主机 | 用户在 Claude Code 会话中运行 | 用户需要什么 |

29| :---------------------------------------------------- | :--------------------------------------------------------------------- | :----------------------------------------------------------------------------------------- |29| :- | :- | :- |

30| GitHub | `/plugin marketplace add your-org/your-marketplace` | `git`,对于私有仓库,需要 [授予对私有 marketplace 的访问权限](#grant-access-to-a-private-marketplace) 中描述的访问权限 |30| GitHub | `/plugin marketplace add your-org/your-marketplace` | `git`,对于私有仓库,需要 [授予对私有 marketplace 的访问权限](#grant-access-to-a-private-marketplace) 中描述的访问权限 |

31| GitLab、Bitbucket、GitHub Enterprise Server 或另一个 git 主机 | `/plugin marketplace add https://gitlab.example.com/team/plugins.git` | `git` 和从他们的机器访问主机的权限。发送完整 URL,因为 `owner/repo` 简写总是指 github.com |31| GitLab、Bitbucket、GitHub Enterprise Server 或另一个 git 主机 | `/plugin marketplace add https://gitlab.example.com/team/plugins.git` | `git` 和从他们的机器访问主机的权限。发送完整 URL,因为 `owner/repo` 简写总是指 github.com |

32| 托管的 `marketplace.json` URL | `/plugin marketplace add https://plugins.example.com/marketplace.json` | 对 URL 的 HTTPS 访问。用户不需要 `git` 来获取目录本身 |32| 托管的 `marketplace.json` URL | `/plugin marketplace add https://plugins.example.com/marketplace.json` | 对 URL 的 HTTPS 访问。用户不需要 `git` 来获取目录本身 |


159向公司推出插件涉及你作为 marketplace 所有者、控制托管设置的管理员和使用 Claude Code 的每个人。你可以在没有管理员的情况下运行推出,在这种情况下每个人自己添加 marketplace 并安装插件。159向公司推出插件涉及你作为 marketplace 所有者、控制托管设置的管理员和使用 Claude Code 的每个人。你可以在没有管理员的情况下运行推出,在这种情况下每个人自己添加 marketplace 并安装插件。

160 160 

161| 谁 | 他们做什么 | 它在哪里被覆盖 |161| 谁 | 他们做什么 | 它在哪里被覆盖 |

162| :---------------- | :------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------- |162| :- | :- | :- |

163| 你,marketplace 所有者 | 将目录保留在只有公司可以读取的仓库中,发送你的主机的添加命令,并说明每个人的机器上需要什么 | [托管你的 marketplace](#host-your-marketplace) 和 [授予对私有 marketplace 的访问权限](#grant-access-to-a-private-marketplace) |163| 你,marketplace 所有者 | 将目录保留在只有公司可以读取的仓库中,发送你的主机的添加命令,并说明每个人的机器上需要什么 | [托管你的 marketplace](#host-your-marketplace) 和 [授予对私有 marketplace 的访问权限](#grant-access-to-a-private-marketplace) |

164| 管理员 | 使用托管设置中的 `extraKnownMarketplaces` 和 `enabledPlugins` 为每个人注册 marketplace 并打开其插件,并在那里设置 `autoUpdate` | [要求一个 marketplace 及其插件](/docs/zh-CN/plugins/org#require-a-marketplace-and-its-plugins) 和 [设置更新策略](/docs/zh-CN/plugins/org#set-update-policy) |164| 管理员 | 使用托管设置中的 `extraKnownMarketplaces` 和 `enabledPlugins` 为每个人注册 marketplace 并打开其插件,并在那里设置 `autoUpdate` | [要求一个 marketplace 及其插件](/docs/zh-CN/plugins/org#require-a-marketplace-and-its-plugins) 和 [设置更新策略](/docs/zh-CN/plugins/org#set-update-policy) |

165| 每个人 | 需要对私有 git 仓库的读取访问权限,凭证已经存储在他们的机器上。没有管理员,他们也运行添加和安装命令 | [添加私有 marketplace](/docs/zh-CN/plugins/install#add-a-private-marketplace) |165| 每个人 | 需要对私有 git 仓库的读取访问权限,凭证已经存储在他们的机器上。没有管理员,他们也运行添加和安装命令 | [添加私有 marketplace](/docs/zh-CN/plugins/install#add-a-private-marketplace) |


331你选择的位置决定哪些下载获得标头以及 Claude Code 何时运行命令:331你选择的位置决定哪些下载获得标头以及 Claude Code 何时运行命令:

332 332 

333| 位置 | 获得标头的下载 | Claude Code 何时运行那里设置的 `headersHelper` |333| 位置 | 获得标头的下载 | Claude Code 何时运行那里设置的 `headersHelper` |

334| :------------------ | :---------------------------------------- | :------------------------------------------------------------------------------------ |334| :- | :- | :- |

335| Marketplace `url` 源 | 在 marketplace URL 的源上的存档下载,意味着相同的方案、主机和端口 | 在 marketplace 的 `marketplace.json` 的每次获取之前和在该源上的每次存档下载之前。Claude Code 重用一次运行的输出长达 60 秒 |335| Marketplace `url` 源 | 在 marketplace URL 的源上的存档下载,意味着相同的方案、主机和端口 | 在 marketplace 的 `marketplace.json` 的每次获取之前和在该源上的每次存档下载之前。Claude Code 重用一次运行的输出长达 60 秒 |

336| 插件条目 | 该条目的下载仅 | 仅当用户自己安装或更新该一个插件并 [接受命令](#how-users-accept-a-headershelper-command) 时 |336| 插件条目 | 该条目的下载仅 | 仅当用户自己安装或更新该一个插件并 [接受命令](#how-users-accept-a-headershelper-command) 时 |

337 337 


415你在设置文件中声明 marketplace `url` 源的 `headersHelper`,如 [`extraKnownMarketplaces`](/docs/zh-CN/settings-reference#extraknownmarketplaces) 条目,而不是在 marketplace 发布的目录中。Claude Code 因此不会在每次安装或更新时要求用户接受它。相反,声明它的设置文件决定 Claude Code 何时运行它:415你在设置文件中声明 marketplace `url` 源的 `headersHelper`,如 [`extraKnownMarketplaces`](/docs/zh-CN/settings-reference#extraknownmarketplaces) 条目,而不是在 marketplace 发布的目录中。Claude Code 因此不会在每次安装或更新时要求用户接受它。相反,声明它的设置文件决定 Claude Code 何时运行它:

416 416 

417| 设置文件 | Claude Code 何时运行命令 |417| 设置文件 | Claude Code 何时运行命令 |

418| :---------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------ |418| :- | :- |

419| 用户设置、`--settings` 文件或机器上的托管设置文件 | 不询问,包括在后台 marketplace 刷新期间 |419| 用户设置、`--settings` 文件或机器上的托管设置文件 | 不询问,包括在后台 marketplace 刷新期间 |

420| 项目的 `.claude/settings.json` 或 `.claude/settings.local.json` | 仅在用户接受该文件夹本身的 [工作区信任对话](/docs/zh-CN/permissions#what-runs-before-you-trust-a-folder) 后。`-p` 或 SDK 会话不计为接受它,对父文件夹授予的信任也不计 |420| 项目的 `.claude/settings.json` 或 `.claude/settings.local.json` | 仅在用户接受该文件夹本身的 [工作区信任对话](/docs/zh-CN/permissions#what-runs-before-you-trust-a-folder) 后。`-p` 或 SDK 会话不计为接受它,对父文件夹授予的信任也不计 |

421| 服务器托管设置 | 在交互式会话中,仅在用户在 [安全批准对话](/docs/zh-CN/server-managed-settings#security-approval-dialogs) 中批准交付的设置后 |421| 服务器托管设置 | 在交互式会话中,仅在用户在 [安全批准对话](/docs/zh-CN/server-managed-settings#security-approval-dialogs) 中批准交付的设置后 |

Details

211在 Claude Code 会话中,运行 `/plugin marketplace add` 后跟市场的来源:GitHub 存储库、任何主机上的 git 存储库、本地目录或文件,或托管的 `marketplace.json`。211在 Claude Code 会话中,运行 `/plugin marketplace add` 后跟市场的来源:GitHub 存储库、任何主机上的 git 存储库、本地目录或文件,或托管的 `marketplace.json`。

212 212 

213| Source | What you type | Example |213| Source | What you type | Example |

214| :------------------------- | :-------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------- |214| :- | :- | :- |

215| GitHub repository | `owner/repo`。添加 `#ref` 以固定分支或标签。 | `/plugin marketplace add anthropics/claude-code`,或 `/plugin marketplace add your-org/plugins#v1.2.0` 以固定 `v1.2.0` 标签 |215| GitHub repository | `owner/repo`。添加 `#ref` 以固定分支或标签。 | `/plugin marketplace add anthropics/claude-code`,或 `/plugin marketplace add your-org/plugins#v1.2.0` 以固定 `v1.2.0` 标签 |

216| Git repository on any host | 完整的克隆 URL。添加 `#ref` 以固定分支或标签。 | `/plugin marketplace add https://gitlab.example.com/your-group/your-marketplace.git#v1.0.0` |216| Git repository on any host | 完整的克隆 URL。添加 `#ref` 以固定分支或标签。 | `/plugin marketplace add https://gitlab.example.com/your-group/your-marketplace.git#v1.0.0` |

217| Local directory or file | 相对或绝对路径到包含 `.claude-plugin/marketplace.json` 的目录,或到 JSON 文件本身。以 `./` 或 `../` 开始相对路径,因为 Claude Code 将裸 `name/name` 读取为 GitHub 存储库。 | `/plugin marketplace add ./my-marketplace` |217| Local directory or file | 相对或绝对路径到包含 `.claude-plugin/marketplace.json` 的目录,或到 JSON 文件本身。以 `./` 或 `../` 开始相对路径,因为 Claude Code 将裸 `name/name` 读取为 GitHub 存储库。 | `/plugin marketplace add ./my-marketplace` |


400您也可以使用命令从 shell 或会话内列出、更新和删除市场:400您也可以使用命令从 shell 或会话内列出、更新和删除市场:

401 401 

402| Action | In your shell | Inside a session |402| Action | In your shell | Inside a session |

403| :----------------------------- | :---------------------------------------- | :---------------------------------- |403| :- | :- | :- |

404| List marketplaces | `claude plugin marketplace list` | `/plugin marketplace list` |404| List marketplaces | `claude plugin marketplace list` | `/plugin marketplace list` |

405| Update a marketplace's listing | `claude plugin marketplace update <name>` | `/plugin marketplace update <name>` |405| Update a marketplace's listing | `claude plugin marketplace update <name>` | `/plugin marketplace update <name>` |

406| Remove a marketplace | `claude plugin marketplace remove <name>` | `/plugin marketplace remove <name>` |406| Remove a marketplace | `claude plugin marketplace remove <name>` | `/plugin marketplace remove <name>` |

Details

53每个插件都有形式为 `<name>@<origin>` 的 id,这是您在设置文件和 `claude plugin list --json` 中看到的。`@` 之后的部分告诉您 Claude Code 在哪里找到了插件:53每个插件都有形式为 `<name>@<origin>` 的 id,这是您在设置文件和 `claude plugin list --json` 中看到的。`@` 之后的部分告诉您 Claude Code 在哪里找到了插件:

54 54 

55| ID 结尾 | 插件如何到达 | 如何打开或关闭 |55| ID 结尾 | 插件如何到达 | 如何打开或关闭 |

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

57| `@<marketplace>` | 您从添加的市场安装了它 | 在设置文件中的 `enabledPlugins` 下设置 `"<name>@<marketplace>": true` 或 `false` |57| `@<marketplace>` | 您从添加的市场安装了它 | 在设置文件中的 `enabledPlugins` 下设置 `"<name>@<marketplace>": true` 或 `false` |

58| `@inline` | 您使用 `--plugin-dir` 或 `--plugin-url` 启动了 Claude Code,设置了 [`CLAUDE_CODE_PLUGIN_DIRS`](/docs/zh-CN/env-vars#variables),或 Agent SDK 应用传递了 `plugins` 选项。它仅为该会话加载 | 除非清单设置 `defaultEnabled: false` 或设置文件设置 `"<name>@inline": false`,否则为会话打开 |58| `@inline` | 您使用 `--plugin-dir` 或 `--plugin-url` 启动了 Claude Code,设置了 [`CLAUDE_CODE_PLUGIN_DIRS`](/docs/zh-CN/env-vars#variables),或 Agent SDK 应用传递了 `plugins` 选项。它仅为该会话加载 | 除非清单设置 `defaultEnabled: false` 或设置文件设置 `"<name>@inline": false`,否则为会话打开 |

59| `@skills-dir` | 您在 `~/.claude/skills/` 或项目的 `.claude/skills/` 下保存了具有 `.claude-plugin/plugin.json` 的插件目录 | 清单的 `defaultEnabled`,除非设置文件将 `"<name>@skills-dir"` 设置为 `true` 或 `false` |59| `@skills-dir` | 您在 `~/.claude/skills/` 或项目的 `.claude/skills/` 下保存了具有 `.claude-plugin/plugin.json` 的插件目录 | 清单的 `defaultEnabled`,除非设置文件将 `"<name>@skills-dir"` 设置为 `true` 或 `false` |


142您可以在六个源中的任何一个中设置 `enabledPlugins` 条目。该表从最低优先级到最高优先级列出它们,以及每个适用于谁。有关设置文件本身,请参阅[设置文件及其影响的人](/docs/zh-CN/settings#where-settings-live)。142您可以在六个源中的任何一个中设置 `enabledPlugins` 条目。该表从最低优先级到最高优先级列出它们,以及每个适用于谁。有关设置文件本身,请参阅[设置文件及其影响的人](/docs/zh-CN/settings#where-settings-live)。

143 143 

144| 源 | 您在哪里设置它 | 到达 |144| 源 | 您在哪里设置它 | 到达 |

145| :---------- | :------------------------------------------------------------------------------ | :----------------------------------------- |145| :- | :- | :- |

146| `--add-dir` | 您使用 `--add-dir` 传递的目录中的 `.claude/settings.json` 或 `.claude/settings.local.json` | 仅此会话。仅 `true` 值有效,每个其他源都会覆盖它 |146| `--add-dir` | 您使用 `--add-dir` 传递的目录中的 `.claude/settings.json` 或 `.claude/settings.local.json` | 仅此会话。仅 `true` 值有效,每个其他源都会覆盖它 |

147| `user` | `~/.claude/settings.json` | 您,在每个项目中 |147| `user` | `~/.claude/settings.json` | 您,在每个项目中 |

148| `project` | `.claude/settings.json` | 克隆存储库的每个人 |148| `project` | `.claude/settings.json` | 克隆存储库的每个人 |


182Claude Code 在一个插件根目录下保存插件文件和状态记录,该目录是 `~/.claude/plugins`,除非您设置了 [`CLAUDE_CODE_PLUGIN_CACHE_DIR`](/docs/zh-CN/env-vars)。表中的每个路径都相对于该根目录。182Claude Code 在一个插件根目录下保存插件文件和状态记录,该目录是 `~/.claude/plugins`,除非您设置了 [`CLAUDE_CODE_PLUGIN_CACHE_DIR`](/docs/zh-CN/env-vars)。表中的每个路径都相对于该根目录。

183 183 

184| 路径 | 它保存什么 |184| 路径 | 它保存什么 |

185| :--------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |185| :- | :- |

186| `cache/<marketplace>/<plugin>/<version>/` | 市场插件的每个已安装版本一个目录。`<plugin>` 是市场条目名称,`<version>` 是[已解析版本](#versions-and-updates)。`${CLAUDE_PLUGIN_ROOT}` 指向此目录 |186| `cache/<marketplace>/<plugin>/<version>/` | 市场插件的每个已安装版本一个目录。`<plugin>` 是市场条目名称,`<version>` 是[已解析版本](#versions-and-updates)。`${CLAUDE_PLUGIN_ROOT}` 指向此目录 |

187| `data/<plugin-id>/` | 插件的持久目录,公开为 `${CLAUDE_PLUGIN_DATA}`。有关如何形成 `<plugin-id>`,请参阅[路径变量和持久数据](/docs/zh-CN/plugins/components#path-variables-and-persistent-data)。Claude Code 在插件组件首次使用它时创建它,并在更新中保留它。当您从其最后一个范围卸载插件时,Claude Code 删除它,除非您传递 `--keep-data` |187| `data/<plugin-id>/` | 插件的持久目录,公开为 `${CLAUDE_PLUGIN_DATA}`。有关如何形成 `<plugin-id>`,请参阅[路径变量和持久数据](/docs/zh-CN/plugins/components#path-variables-and-persistent-data)。Claude Code 在插件组件首次使用它时创建它,并在更新中保留它。当您从其最后一个范围卸载插件时,Claude Code 删除它,除非您传递 `--keep-data` |

188| `marketplaces/<name>/` | 从 GitHub、另一个 Git 主机或 URL 添加的市场的克隆或下载。从本地 `file` 或 `directory` 源添加的市场在此处没有副本,其 `installLocation` 在 `known_marketplaces.json` 中是您给定的路径 |188| `marketplaces/<name>/` | 从 GitHub、另一个 Git 主机或 URL 添加的市场的克隆或下载。从本地 `file` 或 `directory` 源添加的市场在此处没有副本,其 `installLocation` 在 `known_marketplaces.json` 中是您给定的路径 |


247安装仅在插件的根目录同时包含 `package.json` 和支持的锁定文件时运行。锁定文件决定 Claude Code 运行的命令:247安装仅在插件的根目录同时包含 `package.json` 和支持的锁定文件时运行。锁定文件决定 Claude Code 运行的命令:

248 248 

249| 锁定文件 | 命令 |249| 锁定文件 | 命令 |

250| :------------------------------------------ | :----------------------------------------------- |250| :- | :- |

251| `bun.lock` 或 `bun.lockb` | `bun install --frozen-lockfile --ignore-scripts` |251| `bun.lock` 或 `bun.lockb` | `bun install --frozen-lockfile --ignore-scripts` |

252| `npm-shrinkwrap.json` 或 `package-lock.json` | `npm ci --ignore-scripts` |252| `npm-shrinkwrap.json` 或 `package-lock.json` | `npm ci --ignore-scripts` |

253 253 


3153. 当都未设置时,版本来自源类型:3153. 当都未设置时,版本来自源类型:

316 316 

317| 源类型 | 未设置 `version` 字段时的版本 |317| 源类型 | 未设置 `version` 字段时的版本 |

318| :---------------------------- | :----------------------------------------------------- |318| :- | :- |

319| `github`、`url` 或 `git-subdir` | 源的提交 SHA,缩短为 12 个字符。`git-subdir` 版本也包含子目录路径的哈希 |319| `github`、`url` 或 `git-subdir` | 源的提交 SHA,缩短为 12 个字符。`git-subdir` 版本也包含子目录路径的哈希 |

320| `archive` | SHA-256 摘要,缩短为 12 个字符:市场条目中的 `sha256` 固定,或没有固定时下载文件的摘要 |320| `archive` | SHA-256 摘要,缩短为 12 个字符:市场条目中的 `sha256` 固定,或没有固定时下载文件的摘要 |

321| Git 托管市场内的相对路径 | 已安装目录的提交 SHA |321| Git 托管市场内的相对路径 | 已安装目录的提交 SHA |


335当您安装插件时,Claude Code 在其市场目录的本地副本中查找它。您可以在会话中运行 `/plugin install` 或在 shell 中运行 `claude plugin install`,并使用或不使用其市场命名插件。该表显示这些组合中哪些刷新本地副本。335当您安装插件时,Claude Code 在其市场目录的本地副本中查找它。您可以在会话中运行 `/plugin install` 或在 shell 中运行 `claude plugin install`,并使用或不使用其市场命名插件。该表显示这些组合中哪些刷新本地副本。

336 336 

337| 插件名称 | 命令 | Claude Code 刷新什么 |337| 插件名称 | 命令 | Claude Code 刷新什么 |

338| :----------------- | :------------------------------------------ | :----------------- |338| :- | :- | :- |

339| `name@marketplace` | `/plugin install` 或 `claude plugin install` | 命名的市场,在查找之前 |339| `name@marketplace` | `/plugin install` 或 `claude plugin install` | 命名的市场,在查找之前 |

340| 仅 `name` | `/plugin install` | 仅具有自动更新的市场,仅在查找失败后 |340| 仅 `name` | `/plugin install` | 仅具有自动更新的市场,仅在查找失败后 |

341| 仅 `name` | `claude plugin install` | 无。它读取缓存的目录而不刷新 |341| 仅 `name` | `claude plugin install` | 无。它读取缓存的目录而不刷新 |

Details

125对于组件键(如 `commands` 和 `hooks`),[组件路径形式](#component-path-forms)显示每个接受的形式及示例,每个路径遵循 `./` 前缀、扩展名和包含的[路径规则](#path-rules)。125对于组件键(如 `commands` 和 `hooks`),[组件路径形式](#component-path-forms)显示每个接受的形式及示例,每个路径遵循 `./` 前缀、扩展名和包含的[路径规则](#path-rules)。

126 126 

127| 字段 | 类型 | 描述 |127| 字段 | 类型 | 描述 |

128| :----------------------------------- | :------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |128| :- | :- | :- |

129| `$schema` | String | 用于编辑器自动完成的 JSON Schema URL。Claude Code 在加载时忽略它 |129| `$schema` | String | 用于编辑器自动完成的 JSON Schema URL。Claude Code 在加载时忽略它 |

130| [`name`](#name) | String | Plugin 标识符,必需。使用 kebab-case。每个组件都在其下命名空间 |130| [`name`](#name) | String | Plugin 标识符,必需。使用 kebab-case。每个组件都在其下命名空间 |

131| [`displayName`](#displayname) | String | 在 UI 中显示的名称,代替 `name` |131| [`displayName`](#displayname) | String | 在 UI 中显示的名称,代替 `name` |


234每个值恰好设置 `source` 或 `content` 之一,设置两者或都不设置的条目验证失败。此表中的其他字段是可选的:234每个值恰好设置 `source` 或 `content` 之一,设置两者或都不设置的条目验证失败。此表中的其他字段是可选的:

235 235 

236| 字段 | 类型 | 描述 |236| 字段 | 类型 | 描述 |

237| :------------- | :--------------- | :-------------------------------- |237| :- | :- | :- |

238| `source` | string | 命令的 Markdown 文件的路径,相对于 plugin 根目录 |238| `source` | string | 命令的 Markdown 文件的路径,相对于 plugin 根目录 |

239| `content` | string | 命令体的内联 Markdown,而不是 `source` |239| `content` | string | 命令体的内联 Markdown,而不是 `source` |

240| `description` | string | 为命令显示的描述 |240| `description` | string | 为命令显示的描述 |


290`mcpServers` 值采用以下形式之一:290`mcpServers` 值采用以下形式之一:

291 291 

292| 形式 | 示例值 | Claude Code 的作用 |292| 形式 | 示例值 | Claude Code 的作用 |

293| :----------- | :------------------------------------------------------------------------------------- | :------------------------------------------------------------ |293| :- | :- | :- |

294| `.json` 文件路径 | `"./mcp/servers.json"` | 将文件读取为 `mcpServers` 映射 |294| `.json` 文件路径 | `"./mcp/servers.json"` | 将文件读取为 `mcpServers` 映射 |

295| MCP 包路径 | `"./bundle.mcpb"` | 将 `.mcpb` 或 `.dxt` 包提取到 plugin 根目录下的 `.mcpb-cache/` 并读取其服务器配置 |295| MCP 包路径 | `"./bundle.mcpb"` | 将 `.mcpb` 或 `.dxt` 包提取到 plugin 根目录下的 `.mcpb-cache/` 并读取其服务器配置 |

296| MCP 包 URL | `"https://example.com/server.mcpb"` | 将包下载到 `.mcpb-cache/`,然后读取它 |296| MCP 包 URL | `"https://example.com/server.mcpb"` | 将包下载到 `.mcpb-cache/`,然后读取它 |


309每个服务器配置是具有这些字段的严格对象。未知键验证失败。309每个服务器配置是具有这些字段的严格对象。未知键验证失败。

310 310 

311| 字段 | 必需 | 描述 |311| 字段 | 必需 | 描述 |

312| :---------------------- | :-- | :------------------------------------------------------------------------------------------ |312| :- | :- | :- |

313| `command` | Yes | 语言服务器二进制文件。除非值以 `/` 开头,否则没有空格;将参数放在 `args` 中 |313| `command` | Yes | 语言服务器二进制文件。除非值以 `/` 开头,否则没有空格;将参数放在 `args` 中 |

314| `extensionToLanguage` | Yes | 文件扩展名到 LSP 语言 ID 的映射,至少一个条目。键以点开头,例如 `".go"` |314| `extensionToLanguage` | Yes | 文件扩展名到 LSP 语言 ID 的映射,至少一个条目。键以点开头,例如 `".go"` |

315| `args` | No | 传递给服务器的参数 |315| `args` | No | 传递给服务器的参数 |


349每个条目是具有这些字段的严格对象。349每个条目是具有这些字段的严格对象。

350 350 

351| 字段 | 必需 | 描述 |351| 字段 | 必需 | 描述 |

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

353| `name` | Yes | 在 plugin 内唯一的标识符 |353| `name` | Yes | 在 plugin 内唯一的标识符 |

354| `command` | Yes | Claude Code 在会话工作目录中作为持久后台进程运行的 shell 命令 |354| `command` | Yes | Claude Code 在会话工作目录中作为持久后台进程运行的 shell 命令 |

355| `description` | Yes | 在任务面板和通知摘要中显示的简短摘要 |355| `description` | Yes | 在任务面板和通知摘要中显示的简短摘要 |


417每个值是具有这些字段的严格对象。未知键验证失败。417每个值是具有这些字段的严格对象。未知键验证失败。

418 418 

419| 字段 | 必需 | 描述 |419| 字段 | 必需 | 描述 |

420| :------------ | :-- | :------------------------------------------------------------------------------------------------------------------- |420| :- | :- | :- |

421| `type` | Yes | `string`、`number`、`boolean`、`directory` 或 `file` 之一 |421| `type` | Yes | `string`、`number`、`boolean`、`directory` 或 `file` 之一 |

422| `title` | Yes | 在配置对话框中显示的标签 |422| `title` | Yes | 在配置对话框中显示的标签 |

423| `description` | Yes | 在字段下方显示的帮助文本 |423| `description` | Yes | 在字段下方显示的帮助文本 |


500该表显示值如何可以到达这些字段。500该表显示值如何可以到达这些字段。

501 501 

502| 字段 | 值如何到达它 |502| 字段 | 值如何到达它 |

503| :------------------ | :---------------------------------------------------------------------------------------------------------------------------------------- |503| :- | :- |

504| Shell 形式 hook 命令 | 使用[exec 形式](/docs/zh-CN/hooks#exec-form-and-shell-form)与 `args`,或从 hook 的环境读取 `CLAUDE_PLUGIN_OPTION_<KEY>` |504| Shell 形式 hook 命令 | 使用[exec 形式](/docs/zh-CN/hooks#exec-form-and-shell-form)与 `args`,或从 hook 的环境读取 `CLAUDE_PLUGIN_OPTION_<KEY>` |

505| Monitor 命令 | 不通过 Claude Code。Monitor 进程不接收 `CLAUDE_PLUGIN_OPTION_<KEY>`,因此 monitor 脚本必须自己获取值 |505| Monitor 命令 | 不通过 Claude Code。Monitor 进程不接收 `CLAUDE_PLUGIN_OPTION_<KEY>`,因此 monitor 脚本必须自己获取值 |

506| MCP `headersHelper` | 不通过 Claude Code。helper 的环境携带 `CLAUDE_PLUGIN_ROOT`、`CLAUDE_CODE_MCP_SERVER_NAME` 和 `CLAUDE_CODE_MCP_SERVER_URL` 但没有选项值,因此 helper 脚本必须自己获取值 |506| MCP `headersHelper` | 不通过 Claude Code。helper 的环境携带 `CLAUDE_PLUGIN_ROOT`、`CLAUDE_CODE_MCP_SERVER_NAME` 和 `CLAUDE_CODE_MCP_SERVER_URL` 但没有选项值,因此 helper 脚本必须自己获取值 |


514每个条目是绑定到 plugin 的 MCP 服务器之一的严格对象,具有这些字段:514每个条目是绑定到 plugin 的 MCP 服务器之一的严格对象,具有这些字段:

515 515 

516| 字段 | 必需 | 描述 |516| 字段 | 必需 | 描述 |

517| :------------ | :-- | :--------------------------------------------------------------------------------------------- |517| :- | :- | :- |

518| `server` | Yes | 此 plugin 的 `mcpServers` 中频道绑定到的 MCP 服务器的键 |518| `server` | Yes | 此 plugin 的 `mcpServers` 中频道绑定到的 MCP 服务器的键 |

519| `displayName` | No | 在配置对话框标题中显示的名称。默认为服务器名称 |519| `displayName` | No | 在配置对话框标题中显示的名称。默认为服务器名称 |

520| `userConfig` | No | 要提示的选项,形状与[顶级 `userConfig`](#user-configuration)相同。保存的值替换到服务器 `env` 中的 `${user_config.KEY}` 引用 |520| `userConfig` | No | 要提示的选项,形状与[顶级 `userConfig`](#user-configuration)相同。保存的值替换到服务器 `env` 中的 `${user_config.KEY}` 引用 |


554Claude Code 为 plugin 组件提供三个路径变量。在[每个变量解析的位置](#where-each-variable-resolves)下列出的字段中将它们引用为 `${NAME}`,并在接收它们的进程中将它们读取为环境变量。554Claude Code 为 plugin 组件提供三个路径变量。在[每个变量解析的位置](#where-each-variable-resolves)下列出的字段中将它们引用为 `${NAME}`,并在接收它们的进程中将它们读取为环境变量。

555 555 

556| 变量 | 解析为 | 用途 |556| 变量 | 解析为 | 用途 |

557| :---------------------- | :------------------------------------------------------------------------------------------------------------ | :--------------------------------- |557| :- | :- | :- |

558| `${CLAUDE_PLUGIN_ROOT}` | plugin 已安装版本的绝对路径 | 与 plugin 捆绑的脚本、二进制文件和配置文件 |558| `${CLAUDE_PLUGIN_ROOT}` | plugin 已安装版本的绝对路径 | 与 plugin 捆绑的脚本、二进制文件和配置文件 |

559| `${CLAUDE_PLUGIN_DATA}` | `~/.claude/plugins/data/<id>/`,在首次引用时创建并在 plugin 更新中保留。`<id>` 是 plugin 标识符,其中除字母、数字、`_` 或 `-` 外的每个字符都被替换为 `-` | 已安装的依赖项(如 `node_modules`)、生成的代码和缓存 |559| `${CLAUDE_PLUGIN_DATA}` | `~/.claude/plugins/data/<id>/`,在首次引用时创建并在 plugin 更新中保留。`<id>` 是 plugin 标识符,其中除字母、数字、`_` 或 `-` 外的每个字符都被替换为 `-` | 已安装的依赖项(如 `node_modules`)、生成的代码和缓存 |

560| `${CLAUDE_PROJECT_DIR}` | 项目根目录 | 项目本地脚本和配置文件 |560| `${CLAUDE_PROJECT_DIR}` | 项目根目录 | 项目本地脚本和配置文件 |


570在每个 plugin 组件中,`${...}` 引用在特定字段中内联解析,某些组件也在其进程环境中接收变量:570在每个 plugin 组件中,`${...}` 引用在特定字段中内联解析,某些组件也在其进程环境中接收变量:

571 571 

572| Plugin 组件 | `${...}` 解析的字段 | 导出到进程 |572| Plugin 组件 | `${...}` 解析的字段 | 导出到进程 |

573| :------------------------ | :--------------------------------------- | :-------------------------------------------------------------------------------------------- |573| :- | :- | :- |

574| Hook 命令 | 在 `command` 和 `args` 中的任何地方 | `CLAUDE_PLUGIN_ROOT`、`CLAUDE_PLUGIN_DATA`、`CLAUDE_PROJECT_DIR` 和 `CLAUDE_PLUGIN_OPTION_<KEY>` |574| Hook 命令 | 在 `command` 和 `args` 中的任何地方 | `CLAUDE_PLUGIN_ROOT`、`CLAUDE_PLUGIN_DATA`、`CLAUDE_PROJECT_DIR` 和 `CLAUDE_PLUGIN_OPTION_<KEY>` |

575| Monitor 命令 | 在 `command` 中的任何地方 | 未导出 |575| Monitor 命令 | 在 `command` 中的任何地方 | 未导出 |

576| MCP `stdio` 服务器 | `command`、`args`、`env` | `CLAUDE_PLUGIN_ROOT`、`CLAUDE_PLUGIN_DATA` |576| MCP `stdio` 服务器 | `command`、`args`、`env` | `CLAUDE_PLUGIN_ROOT`、`CLAUDE_PLUGIN_DATA` |


617每个组件类型在 plugin 根目录下有默认位置,当 manifest 不指向其他位置时使用。617每个组件类型在 plugin 根目录下有默认位置,当 manifest 不指向其他位置时使用。

618 618 

619| 组件 | 默认位置 | 内容 |619| 组件 | 默认位置 | 内容 |

620| :-------- | :--------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |620| :- | :- | :- |

621| Manifest | `.claude-plugin/plugin.json` | Plugin 元数据和配置。可选 |621| Manifest | `.claude-plugin/plugin.json` | Plugin 元数据和配置。可选 |

622| Skills | `skills/` | 每个 skill 一个 `<name>/SKILL.md`。具有 `SKILL.md` 在其根目录、没有 `skills/` 和没有 `skills` 键的 plugin 加载为单个 skill |622| Skills | `skills/` | 每个 skill 一个 `<name>/SKILL.md`。具有 `SKILL.md` 在其根目录、没有 `skills/` 和没有 `skills` 键的 plugin 加载为单个 skill |

623| Commands | `commands/` | 平面 Markdown 命令文件。对于新 plugin 更喜欢 `skills/` |623| Commands | `commands/` | 平面 Markdown 命令文件。对于新 plugin 更喜欢 `skills/` |

Details

60该表列出 Claude Code 从 `marketplace.json` 读取的每个键。`name`、`owner` 和 `plugins` 是必需的。60该表列出 Claude Code 从 `marketplace.json` 读取的每个键。`name`、`owner` 和 `plugins` 是必需的。

61 61 

62| 字段 | 类型 | 描述 |62| 字段 | 类型 | 描述 |

63| :---------------------------------------- | :--------------- | :------------------------------------------------------------------------------------------------------------------------------ |63| :- | :- | :- |

64| `name` | string | Marketplace 标识符。没有空格、控制字符或双向格式化字符,没有 `/` 或 `\`,没有 `..`,不是 `.`。请参阅 [保留名称](#reserved-names)。用户在安装插件时在 `@` 后键入它 |64| `name` | string | Marketplace 标识符。没有空格、控制字符或双向格式化字符,没有 `/` 或 `\`,没有 `..`,不是 `.`。请参阅 [保留名称](#reserved-names)。用户在安装插件时在 `@` 后键入它 |

65| `owner` | object | 维护者信息。`name` 是必需的;`email` 和 `url` 是可选的 |65| `owner` | object | 维护者信息。`name` 是必需的;`email` 和 `url` 是可选的 |

66| `plugins` | array | [插件条目](#plugin-entries)。每个条目单独验证,因此一个无效条目不会导致 marketplace 失败 |66| `plugins` | array | [插件条目](#plugin-entries)。每个条目单独验证,因此一个无效条目不会导致 marketplace 失败 |


84该表列出条目自己的字段和清单字段,其含义在条目中改变。84该表列出条目自己的字段和清单字段,其含义在条目中改变。

85 85 

86| 字段 | 类型 | 描述 |86| 字段 | 类型 | 描述 |

87| :--------------- | :--------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |87| :- | :- | :- |

88| `name` | string | 插件标识符,没有空格、控制字符或双向格式化字符。用户在安装时在 `@` 前键入它,即使插件自己的 `plugin.json` 设置了不同的 `name` |88| `name` | string | 插件标识符,没有空格、控制字符或双向格式化字符。用户在安装时在 `@` 前键入它,即使插件自己的 `plugin.json` 设置了不同的 `name` |

89| `source` | string or object | 从哪里获取插件。请参阅 [插件源](#plugin-sources) |89| `source` | string or object | 从哪里获取插件。请参阅 [插件源](#plugin-sources) |

90| `description` | string | 在 [`/plugin`](/docs/zh-CN/plugins/install) 列表和详情中显示 |90| `description` | string | 在 [`/plugin`](/docs/zh-CN/plugins/install) 列表和详情中显示 |


133`strict` 决定当获取的插件具有自己的 `plugin.json` 且条目也声明任何 [组件字段](#entry-and-plugin-json) 时会发生什么:`commands`、`agents`、`skills`、`hooks`、`outputStyles` 或 `themes`。使用 `strict: true`(默认值),Claude Code 将条目的组件字段附加到 `plugin.json`,除了 `hooks`,其匹配器替换清单的每个事件。使用 `strict: false`,声明任何组件字段的条目是冲突,插件加载失败。该表显示 `strict`、`plugin.json` 和条目的组件字段的每个组合。133`strict` 决定当获取的插件具有自己的 `plugin.json` 且条目也声明任何 [组件字段](#entry-and-plugin-json) 时会发生什么:`commands`、`agents`、`skills`、`hooks`、`outputStyles` 或 `themes`。使用 `strict: true`(默认值),Claude Code 将条目的组件字段附加到 `plugin.json`,除了 `hooks`,其匹配器替换清单的每个事件。使用 `strict: false`,声明任何组件字段的条目是冲突,插件加载失败。该表显示 `strict`、`plugin.json` 和条目的组件字段的每个组合。

134 134 

135| `strict` | `plugin.json` | 条目组件字段 | 结果 |135| `strict` | `plugin.json` | 条目组件字段 | 结果 |

136| :--------- | :------------ | :---------- | :-------------------------------------------------------------------------------------------------------------------------------------------------- |136| :- | :- | :- | :- |

137| any | absent | any | 条目是清单 |137| any | absent | any | 条目是清单 |

138| `true`,默认值 | present | any | `plugin.json` 是权威。Claude Code 将条目的组件字段附加到它,除了 `hooks`,其匹配器 [替换清单的每个事件](/docs/zh-CN/plugins/manifest-reference#how-entry-fields-combine-with-plugin-json) |138| `true`,默认值 | present | any | `plugin.json` 是权威。Claude Code 将条目的组件字段附加到它,除了 `hooks`,其匹配器 [替换清单的每个事件](/docs/zh-CN/plugins/manifest-reference#how-entry-fields-combine-with-plugin-json) |

139| `false` | present | none | `plugin.json` 是清单,与 `true` 相同 |139| `false` | present | none | `plugin.json` 是清单,与 `true` 相同 |


148该表列出了每种插件源类型及其字段。148该表列出了每种插件源类型及其字段。

149 149 

150| 类型 | 字段 | 说明 |150| 类型 | 字段 | 说明 |

151| :----------- | :------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------- |151| :- | :- | :- |

152| 相对路径 | 字符串本身 | marketplace 内的一个目录,从 marketplace 根目录解析。必须以 `./` 开头,除非你在 [`metadata.pluginRoot`](#bare-names-under-pluginroot) 下写一个[裸名](#bare-names-under-pluginroot)。`"."` 本身表示根目录 |152| 相对路径 | 字符串本身 | marketplace 内的一个目录,从 marketplace 根目录解析。必须以 `./` 开头,除非你在 [`metadata.pluginRoot`](#bare-names-under-pluginroot) 下写一个[裸名](#bare-names-under-pluginroot)。`"."` 本身表示根目录 |

153| `github` | `repo`, `ref`, `sha` | GitHub 仓库,格式为 `owner/repo` |153| `github` | `repo`, `ref`, `sha` | GitHub 仓库,格式为 `owner/repo` |

154| `url` | `url`, `ref`, `sha` | 任何 git 仓库的 URL |154| `url` | `url`, `ref`, `sha` | 任何 git 仓库的 URL |


372类型名称 `url`、`git` 和 `github` 在 marketplace 源中的含义与在 [插件源](#plugin-sources) 中不同:372类型名称 `url`、`git` 和 `github` 在 marketplace 源中的含义与在 [插件源](#plugin-sources) 中不同:

373 373 

374| 类型名称 | 作为 marketplace 源 | 作为插件源 |374| 类型名称 | 作为 marketplace 源 | 作为插件源 |

375| :------- | :---------------------------------------------------------------- | :-------------------------------------------- |375| :- | :- | :- |

376| `url` | 直接链接到 `marketplace.json` 文件,字段为 `url`、`headers` 和 `headersHelper` | 要克隆的 git 存储库,字段为 `url`、`ref` 和 `sha` |376| `url` | 直接链接到 `marketplace.json` 文件,字段为 `url`、`headers` 和 `headersHelper` | 要克隆的 git 存储库,字段为 `url`、`ref` 和 `sha` |

377| `git` | 要克隆的 git 存储库,字段为 `url`、`ref`、`path` 和 `sparsePaths` | 不存在 |377| `git` | 要克隆的 git 存储库,字段为 `url`、`ref`、`path` 和 `sparsePaths` | 不存在 |

378| `github` | GitHub 存储库,字段为 `repo`、`ref`、`path` 和 `sparsePaths` | GitHub 存储库,字段为 `repo`、`ref` 和 `sha`,没有 `path` |378| `github` | GitHub 存储库,字段为 `repo`、`ref`、`path` 和 `sparsePaths` | GitHub 存储库,字段为 `repo`、`ref` 和 `sha`,没有 `path` |


380该表列出每个 marketplace 源类型及其字段、产生它的 `claude plugin marketplace add` 输入,以及它在三个设置键中的作用。380该表列出每个 marketplace 源类型及其字段、产生它的 `claude plugin marketplace add` 输入,以及它在三个设置键中的作用。

381 381 

382| 类型 | 字段 | `marketplace add` 输入 | `extraKnownMarketplaces` | `strictKnownMarketplaces` | `blockedMarketplaces` |382| 类型 | 字段 | `marketplace add` 输入 | `extraKnownMarketplaces` | `strictKnownMarketplaces` | `blockedMarketplaces` |

383| :------------ | :-------------------------------- | :---------------------------------------------------------------------------------------------------------- | :------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------- | :----------------------------- |383| :- | :- | :- | :- | :- | :- |

384| `url` | `url`、`headers`、`headersHelper` | 不匹配 git 形式的 `http://` 或 `https://` URL | 加载 | 允许相同的 URL | 阻止相同的 URL |384| `url` | `url`、`headers`、`headersHelper` | 不匹配 git 形式的 `http://` 或 `https://` URL | 加载 | 允许相同的 URL | 阻止相同的 URL |

385| `github` | `repo`、`ref`、`path`、`sparsePaths` | `owner/repo`、`owner/repo@ref` 或 `owner/repo#ref` | 加载 | 允许相同的 `repo`、`ref` 和 `path`。`repo` 可能是 `owner/*` | 阻止相同的,以及到相同存储库的 `git` URL |385| `github` | `repo`、`ref`、`path`、`sparsePaths` | `owner/repo`、`owner/repo@ref` 或 `owner/repo#ref` | 加载 | 允许相同的 `repo`、`ref` 和 `path`。`repo` 可能是 `owner/*` | 阻止相同的,以及到相同存储库的 `git` URL |

386| `git` | `url`、`ref`、`path`、`sparsePaths` | `user@host:path` URL,或以 `.git` 结尾、包含 `/_git/` 或命名 github.com 或 gitlab.com 存储库的 `https://` URL。`#ref` 固定 ref | 加载 | 允许相同的 URL、`ref` 和 `path` | 阻止相同的,以及相同 github.com 存储库的其他拼写 |386| `git` | `url`、`ref`、`path`、`sparsePaths` | `user@host:path` URL,或以 `.git` 结尾、包含 `/_git/` 或命名 github.com 或 gitlab.com 存储库的 `https://` URL。`#ref` 固定 ref | 加载 | 允许相同的 URL、`ref` 和 `path` | 阻止相同的,以及相同 github.com 存储库的其他拼写 |


399该表列出每个具有默认值、约束或特定于其类型的含义的 marketplace 源字段。399该表列出每个具有默认值、约束或特定于其类型的含义的 marketplace 源字段。

400 400 

401| 字段 | 类型 | 描述 |401| 字段 | 类型 | 描述 |

402| :-------------- | :------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |402| :- | :- | :- |

403| `url` | `url` | 指向 `marketplace.json` 文件的链接。Claude Code 仅下载该文件,因此 marketplace 的插件不能使用 [相对路径源](#relative-path-plugin-source) |403| `url` | `url` | 指向 `marketplace.json` 文件的链接。Claude Code 仅下载该文件,因此 marketplace 的插件不能使用 [相对路径源](#relative-path-plugin-source) |

404| `url` | `git` | 要克隆的 git 存储库 |404| `url` | `git` | 要克隆的 git 存储库 |

405| `headers` | `url` | Claude Code 随获取发送的 HTTP 标头映射,用于经过身份验证的主机 |405| `headers` | `url` | Claude Code 随获取发送的 HTTP 标头映射,用于经过身份验证的主机 |


472该表将 marketplace 级别的消息映射到每个消息所涉及的字段。472该表将 marketplace 级别的消息映射到每个消息所涉及的字段。

473 473 

474| 消息 | 级别 | 字段 |474| 消息 | 级别 | 字段 |

475| :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :- | :---------------------------------------------------------------------------------- |475| :- | :- | :- |

476| `Marketplace must have a name` | 错误 | `name` 为空 |476| `Marketplace must have a name` | 错误 | `name` 为空 |

477| `Marketplace name cannot contain spaces. Use kebab-case (e.g., "my-marketplace")` | 错误 | `name` |477| `Marketplace name cannot contain spaces. Use kebab-case (e.g., "my-marketplace")` | 错误 | `name` |

478| `Marketplace name cannot contain path separators (/ or \), ".." sequences, or be "."` | 错误 | `name` |478| `Marketplace name cannot contain path separators (/ or \), ".." sequences, or be "."` | 错误 | `name` |

Details

148这些 OpenTelemetry 事件和属性从你的后端回答每个插件问题:148这些 OpenTelemetry 事件和属性从你的后端回答每个插件问题:

149 149 

150| 问题 | OpenTelemetry 事件或属性 |150| 问题 | OpenTelemetry 事件或属性 |

151| :-------------------- | :------------------------------------------------------------------------------------------------------------------------------ |151| :- | :- |

152| 安装了哪些插件,来自哪里 | [`claude_code.plugin_installed`](/docs/zh-CN/monitoring-usage#plugin-installed-event),每次安装一个 |152| 安装了哪些插件,来自哪里 | [`claude_code.plugin_installed`](/docs/zh-CN/monitoring-usage#plugin-installed-event),每次安装一个 |

153| 哪些插件在多少个会话中处于活动状态 | [`claude_code.plugin_loaded`](/docs/zh-CN/monitoring-usage#plugin-loaded-event),会话开始时每个启用的插件一个 |153| 哪些插件在多少个会话中处于活动状态 | [`claude_code.plugin_loaded`](/docs/zh-CN/monitoring-usage#plugin-loaded-event),会话开始时每个启用的插件一个 |

154| 哪些 skills 激活,哪个插件拥有它们 | [`claude_code.skill_activated`](/docs/zh-CN/monitoring-usage#skill-activated-event),带有插件 skills 的 `plugin.name` 和 `marketplace.name` |154| 哪些 skills 激活,哪个插件拥有它们 | [`claude_code.skill_activated`](/docs/zh-CN/monitoring-usage#skill-activated-event),带有插件 skills 的 `plugin.name` 和 `marketplace.name` |


164要在某些事件上获取真实名称,请在导出遥测的机器上将[`OTEL_LOG_TOOL_DETAILS`](/docs/zh-CN/monitoring-usage#common-configuration-variables)环境变量设置为 `1`,例如在配置导出器的同一[托管设置](/docs/zh-CN/monitoring-usage#administrator-configuration)的 `env` 块中:164要在某些事件上获取真实名称,请在导出遥测的机器上将[`OTEL_LOG_TOOL_DETAILS`](/docs/zh-CN/monitoring-usage#common-configuration-variables)环境变量设置为 `1`,例如在配置导出器的同一[托管设置](/docs/zh-CN/monitoring-usage#administrator-configuration)的 `env` 块中:

165 165 

166| 事件 | 默认 | 使用 `OTEL_LOG_TOOL_DETAILS=1` |166| 事件 | 默认 | 使用 `OTEL_LOG_TOOL_DETAILS=1` |

167| :----------------------------------- | :----------------------------------------------------------------------------------------- | :---------------------------------------- |167| :- | :- | :- |

168| `plugin_loaded` | `plugin.name` 和 `marketplace.name` 是字符串 `third-party` | 真实名称 |168| `plugin_loaded` | `plugin.name` 和 `marketplace.name` 是字符串 `third-party` | 真实名称 |

169| `plugin_installed`、`skill_activated` | `plugin.name` 和 `marketplace.name` 被省略;在 `skill_activated` 上,`skill.name` 是 `custom_skill` | 真实名称 |169| `plugin_installed`、`skill_activated` | `plugin.name` 和 `marketplace.name` 被省略;在 `skill_activated` 上,`skill.name` 是 `custom_skill` | 真实名称 |

170| 成本计数器 | `plugin.name` 是 `third-party`;`marketplace.name` 不存在 | 真实 `plugin.name`;`marketplace.name` 仍然不存在 |170| 成本计数器 | `plugin.name` 是 `third-party`;`marketplace.name` 不存在 | 真实 `plugin.name`;`marketplace.name` 仍然不存在 |

plugins/org.md +2 −2

Details

111该表显示每种 Claude Code 会话何时从托管设置和存储库的 `.claude/settings.json` 应用 `extraKnownMarketplaces` 和 `enabledPlugins`。对于 Desktop 应用和 IDE 扩展,请参阅[安装插件](/docs/zh-CN/plugins/install#install-a-plugin)。111该表显示每种 Claude Code 会话何时从托管设置和存储库的 `.claude/settings.json` 应用 `extraKnownMarketplaces` 和 `enabledPlugins`。对于 Desktop 应用和 IDE 扩展,请参阅[安装插件](/docs/zh-CN/plugins/install#install-a-plugin)。

112 112 

113| 表面 | 托管 `extraKnownMarketplaces` 和 `enabledPlugins` | 存储库 `.claude/settings.json` |113| 表面 | 托管 `extraKnownMarketplaces` 和 `enabledPlugins` | 存储库 `.claude/settings.json` |

114| :-------- | :--------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------- |114| :- | :- | :- |

115| 终端,交互式 | 在接收设置的每台机器上的会话开始时应用 | `extraKnownMarketplaces` 在信任后应用;`enabledPlugins` 在会话开始时应用 |115| 终端,交互式 | 在接收设置的每台机器上的会话开始时应用 | `extraKnownMarketplaces` 在信任后应用;`enabledPlugins` 在会话开始时应用 |

116| `-p` 和 CI | 在会话开始时应用,安装在后台运行 | 仅在受信任的文件夹中的 `extraKnownMarketplaces`;`enabledPlugins` 应用 |116| `-p` 和 CI | 在会话开始时应用,安装在后台运行 | 仅在受信任的文件夹中的 `extraKnownMarketplaces`;`enabledPlugins` 应用 |

117| 云会话 | 在 Anthropic 托管的环境中,仅服务器托管设置到达会话,它在安装插件之前等待它们。MDM 策略和托管设置文件保留在用户的机器上。对于自托管环境,请参阅[策略应用的位置和时间](/docs/zh-CN/managed-settings#where-and-when-a-policy-applies) | 请参阅[安装插件](/docs/zh-CN/plugins/install#install-a-plugin)下的**云会话**选项卡 |117| 云会话 | 在 Anthropic 托管的环境中,仅服务器托管设置到达会话,它在安装插件之前等待它们。MDM 策略和托管设置文件保留在用户的机器上。对于自托管环境,请参阅[策略应用的位置和时间](/docs/zh-CN/managed-settings#where-and-when-a-policy-applies) | 请参阅[安装插件](/docs/zh-CN/plugins/install#install-a-plugin)下的**云会话**选项卡 |


198该表列出每个插件策略键、它执行的内容以及它无法做的内容。198该表列出每个插件策略键、它执行的内容以及它无法做的内容。

199 199 

200| 键 | 它执行的内容 | 它无法做的内容 |200| 键 | 它执行的内容 | 它无法做的内容 |

201| :-------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------- |201| :- | :- | :- |

202| `strictKnownMarketplaces` | 市场源的允许列表。`[]` 阻止每个源,包括官方市场。别名:`allowedMarketplaces` | 不注册市场、限制允许市场内的条目或阻止 `--plugin-dir` |202| `strictKnownMarketplaces` | 市场源的允许列表。`[]` 阻止每个源,包括官方市场。别名:`allowedMarketplaces` | 不注册市场、限制允许市场内的条目或阻止 `--plugin-dir` |

203| `blockedMarketplaces` | 市场源的阻止列表,在允许列表之前检查 | 不阻止已从不匹配的源注册的市场 |203| `blockedMarketplaces` | 市场源的阻止列表,在允许列表之前检查 | 不阻止已从不匹配的源注册的市场 |

204| `syncClaudeAiPlugins` | 设置 `false` 以停止 Claude Code 下载和加载为每个用户账户[从 claude.ai 同步](/docs/zh-CN/plugins/loading#synced-plugins)的插件。需要 Claude Code v2.1.273 或更高版本 | 不关闭一个同步插件。为此,在[`enabledPlugins`](/docs/zh-CN/settings-reference#enabledplugins)中设置 `"<name>@synced": false` |204| `syncClaudeAiPlugins` | 设置 `false` 以停止 Claude Code 下载和加载为每个用户账户[从 claude.ai 同步](/docs/zh-CN/plugins/loading#synced-plugins)的插件。需要 Claude Code v2.1.273 或更高版本 | 不关闭一个同步插件。为此,在[`enabledPlugins`](/docs/zh-CN/settings-reference#enabledplugins)中设置 `"<name>@synced": false` |

Details

26根据谁需要安装插件来选择分发选项:26根据谁需要安装插件来选择分发选项:

27 27 

28| 路线 | 谁可以安装 | 您需要什么 | 用户是否自动获取您的更新? |28| 路线 | 谁可以安装 | 您需要什么 | 用户是否自动获取您的更新? |

29| :------------------------------------------------------ | :-------------------------------------------- | :----------------------------------------------------------- | :------------ |29| :- | :- | :- | :- |

30| [无市场](#share-a-plugin-without-a-marketplace) | 您发送插件文件夹或其 `.zip` 的人 | 插件的文件夹 | 无。他们加载您发送的副本 |30| [无市场](#share-a-plugin-without-a-marketplace) | 您发送插件文件夹或其 `.zip` 的人 | 插件的文件夹 | 无。他们加载您发送的副本 |

31| [您自己的市场](#publish-through-your-own-marketplace) | 任何可以访问存储库的人,可以是您的团队可以克隆的私有存储库 | 一个 git 存储库或其他具有列出您的插件的 `.claude-plugin/marketplace.json` 的主机 | 关闭 |31| [您自己的市场](#publish-through-your-own-marketplace) | 任何可以访问存储库的人,可以是您的团队可以克隆的私有存储库 | 一个 git 存储库或其他具有列出您的插件的 `.claude-plugin/marketplace.json` 的主机 | 关闭 |

32| [Anthropic 的社区市场](#submit-to-the-community-marketplace) | 任何添加 `anthropics/claude-plugins-community` 的人 | 通过插件目录提交表单的提交 | 关闭 |32| [Anthropic 的社区市场](#submit-to-the-community-marketplace) | 任何添加 `anthropics/claude-plugins-community` 的人 | 通过插件目录提交表单的提交 | 关闭 |

Details

86</h3>86</h3>

87 87 

88| 字段 | 类型 | 描述 |88| 字段 | 类型 | 描述 |

89| :-------- | :-- | :--------------------------------------------------------------------------------------- |89| :- | :- | :- |

90| `topic` | 字符串 | 可选。填充 spinner 提示中"使用 *topic*?"的短语。默认为插件名称,每个连字符段首字母大写。最多 64 个字符。 |90| `topic` | 字符串 | 可选。填充 spinner 提示中"使用 *topic*?"的短语。默认为插件名称,每个连字符段首字母大写。最多 64 个字符。 |

91| `signals` | 对象 | 确定插件何时相关的匹配器。Claude Code 仅在至少设置一个信号时建议该插件。请参阅 [`relevance.signals`](#relevance-signals)。 |91| `signals` | 对象 | 确定插件何时相关的匹配器。Claude Code 仅在至少设置一个信号时建议该插件。请参阅 [`relevance.signals`](#relevance-signals)。 |

92 92 


99`signals` 对象接受以下字段。99`signals` 对象接受以下字段。

100 100 

101| 字段 | 类型 | 描述 | 限制 |101| 字段 | 类型 | 描述 | 限制 |

102| :------------- | :---- | :-------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------- |102| :- | :- | :- | :- |

103| `cwd` | 字符串数组 | 与会话工作目录匹配的 Glob 模式。请参阅 [工作目录匹配](#working-directory-matching)。 | 10 个模式,每个 256 个字符 |103| `cwd` | 字符串数组 | 与会话工作目录匹配的 Glob 模式。请参阅 [工作目录匹配](#working-directory-matching)。 | 10 个模式,每个 256 个字符 |

104| `cli` | 字符串数组 | Claude 在此会话中运行的 shell 命令中的命令名称,例如 `["terraform"]`。精确匹配。请参阅 [命令名称匹配](#command-name-matching)。 | 10 个条目,每个 64 个字符 |104| `cli` | 字符串数组 | Claude 在此会话中运行的 shell 命令中的命令名称,例如 `["terraform"]`。精确匹配。请参阅 [命令名称匹配](#command-name-matching)。 | 10 个条目,每个 64 个字符 |

105| `hosts` | 字符串数组 | 此会话中 Bash 命令中 `http://` 或 `https://` URL 中看到的主机名,例如 `["registry.terraform.io"]`。仅限裸小写主机名:无方案、端口或路径。精确不区分大小写匹配。 | 20 个条目,每个 128 个字符 |105| `hosts` | 字符串数组 | 此会话中 Bash 命令中 `http://` 或 `https://` URL 中看到的主机名,例如 `["registry.terraform.io"]`。仅限裸小写主机名:无方案、端口或路径。精确不区分大小写匹配。 | 20 个条目,每个 128 个字符 |

Details

52该表列出了每个层级中的市场名称:52该表列出了每个层级中的市场名称:

53 53 

54| 层级 | 哪些市场 |54| 层级 | 哪些市场 |

55| :-- | :----------------------------------------------------------------- |55| :- | :- |

56| 官方 | [官方市场名称](#official-marketplace-names),例如 `claude-plugins-official` |56| 官方 | [官方市场名称](#official-marketplace-names),例如 `claude-plugins-official` |

57| 社区 | `claude-community`、`claude-plugins-community` 和 `healthcare` |57| 社区 | `claude-community`、`claude-plugins-community` 和 `healthcare` |

58| 第三方 | 所有其他市场 |58| 第三方 | 所有其他市场 |

Details

96有几种命令拼写在使用中,但 Claude Code 没有。下表将每一个映射到真实命令。[插件命令参考](/docs/zh-CN/plugins/cli-reference) 列出了每个子命令和标志。96有几种命令拼写在使用中,但 Claude Code 没有。下表将每一个映射到真实命令。[插件命令参考](/docs/zh-CN/plugins/cli-reference) 列出了每个子命令和标志。

97 97 

98| 您键入的 | Claude Code 说什么 | 改为使用 |98| 您键入的 | Claude Code 说什么 | 改为使用 |

99| :----------------------------------------- | :--------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------- |99| :- | :- | :- |

100| `claude plugin add <source>` | `error: unknown command 'add'` | `claude plugin marketplace add <source>` 添加市场,或 `claude plugin install <plugin>@<marketplace>` 安装插件 |100| `claude plugin add <source>` | `error: unknown command 'add'` | `claude plugin marketplace add <source>` 添加市场,或 `claude plugin install <plugin>@<marketplace>` 安装插件 |

101| `claude plugin install <plugin> --project` | `error: unknown option '--project'` | `claude plugin install <plugin>@<marketplace> --scope project` |101| `claude plugin install <plugin> --project` | `error: unknown option '--project'` | `claude plugin install <plugin>@<marketplace> --scope project` |

102| `/install <plugin>` | `Unknown command: /install` | `/plugin install <plugin>@<marketplace>` |102| `/install <plugin>` | `Unknown command: /install` | `/plugin install <plugin>@<marketplace>` |


569表格列出了每条消息及其修复。要作为作者声明依赖项,请参阅 [插件依赖项](/docs/zh-CN/plugins/dependencies)。569表格列出了每条消息及其修复。要作为作者声明依赖项,请参阅 [插件依赖项](/docs/zh-CN/plugins/dependencies)。

570 570 

571| 消息 | 含义 | 如何解决 |571| 消息 | 含义 | 如何解决 |

572| :--------------------------------------------------------------------------------------------- | :----------------------------- | :------------------------------------------------------------------------------------------------------------------------------- |572| :- | :- | :- |

573| `Dependency "<dep>" is not installed` | 声明的依赖项未安装。 | 使用 `claude plugin install <dep>@<marketplace>` 在您的 shell 中安装它,或卸载插件。如果依赖项的市场尚未注册,请添加它并在您的会话中运行 `/reload-plugins`,它安装它可以解决的缺失依赖项。 |573| `Dependency "<dep>" is not installed` | 声明的依赖项未安装。 | 使用 `claude plugin install <dep>@<marketplace>` 在您的 shell 中安装它,或卸载插件。如果依赖项的市场尚未注册,请添加它并在您的会话中运行 `/reload-plugins`,它安装它可以解决的缺失依赖项。 |

574| `Dependency "<dep>" is disabled` | 依赖项已安装但关闭。 | 启用依赖项,或卸载需要它的插件。 |574| `Dependency "<dep>" is disabled` | 依赖项已安装但关闭。 | 启用依赖项,或卸载需要它的插件。 |

575| `Requires "<dep>" <range>, installed <version>` | 已安装的依赖项的版本在插件的声明范围之外。 | 将依赖项更新到范围内的版本,或卸载插件。 |575| `Requires "<dep>" <range>, installed <version>` | 已安装的依赖项的版本在插件的声明范围之外。 | 将依赖项更新到范围内的版本,或卸载插件。 |


905该表涵盖停止验证的消息和两个警告 `No frontmatter block found` 和 `Unknown field '<key>'`,当你传递 `--strict` 时它们才会停止。其他警告,如缺少描述,未列出。905该表涵盖停止验证的消息和两个警告 `No frontmatter block found` 和 `Unknown field '<key>'`,当你传递 `--strict` 时它们才会停止。其他警告,如缺少描述,未列出。

906 906 

907| 消息 | 原因 | 修复 |907| 消息 | 原因 | 修复 |

908| :------------------------------------------------------------------------------------------------------- | :------------------------------------------------ | :-------------------------------------------------------- |908| :- | :- | :- |

909| `File not found: <path>` | 路径没有清单,或不存在。 | 针对插件或市场根目录运行命令,即包含 `.claude-plugin/` 的目录。 |909| `File not found: <path>` | 路径没有清单,或不存在。 | 针对插件或市场根目录运行命令,即包含 `.claude-plugin/` 的目录。 |

910| `No manifest found in directory. Expected .claude-plugin/marketplace.json or .claude-plugin/plugin.json` | 目录没有 `.claude-plugin/` 清单。 | 创建清单,或指向正确的目录。 |910| `No manifest found in directory. Expected .claude-plugin/marketplace.json or .claude-plugin/plugin.json` | 目录没有 `.claude-plugin/` 清单。 | 创建清单,或指向正确的目录。 |

911| `Invalid JSON syntax: <parse error>` | 清单或 `hooks/hooks.json` 不是有效的 JSON。 | 修复 JSON。在你修复 `hooks/hooks.json` 之前,会话会加载插件而不包含该文件中的 hook。 |911| `Invalid JSON syntax: <parse error>` | 清单或 `hooks/hooks.json` 不是有效的 JSON。 | 修复 JSON。在你修复 `hooks/hooks.json` 之前,会话会加载插件而不包含该文件中的 hook。 |


966表格列出了市场级消息。条目级消息是 [`claude plugin validate` 报告错误](#claude-plugin-validate-reports-errors) 下的插件消息,前缀为 `plugins[N] plugin.json →`。966表格列出了市场级消息。条目级消息是 [`claude plugin validate` 报告错误](#claude-plugin-validate-reports-errors) 下的插件消息,前缀为 `plugins[N] plugin.json →`。

967 967 

968| 消息 | 类型 | 修复 |968| 消息 | 类型 | 修复 |

969| :----------------------------------------------------------------------------------------------------------------------- | :- | :------------------------------------------------------------------------ |969| :- | :- | :- |

970| `Duplicate plugin name "<name>" found in marketplace` | 错误 | 给每个插件一个唯一的 `name`。 |970| `Duplicate plugin name "<name>" found in marketplace` | 错误 | 给每个插件一个唯一的 `name`。 |

971| `Path contains "..": <path>` 在 `plugins[N].source` 下 | 错误 | 使用相对于市场根的路径,不带 `..` 段。 |971| `Path contains "..": <path>` 在 `plugins[N].source` 下 | 错误 | 使用相对于市场根的路径,不带 `..` 段。 |

972| `Marketplace name cannot contain control or bidirectional-formatting characters` | 错误 | 从名称中删除字符,例如转义或换行符。 |972| `Marketplace name cannot contain control or bidirectional-formatting characters` | 错误 | 从名称中删除字符,例如转义或换行符。 |

Details

25为了充分利用前缀匹配,Claude Code 对每个请求进行排序,使得在回合之间很少更改的内容首先出现:25为了充分利用前缀匹配,Claude Code 对每个请求进行排序,使得在回合之间很少更改的内容首先出现:

26 26 

27| Layer | Content | Changes when |27| Layer | Content | Changes when |

28| --------------- | ----------------------------------------------- | ----------------------------------------------- |28| - | - | - |

29| System prompt | Core instructions, tool definitions | The set of loaded tool definitions changes |29| System prompt | Core instructions, tool definitions | The set of loaded tool definitions changes |

30| Project context | CLAUDE.md, auto memory, unscoped rules | Session starts, or after `/clear` or `/compact` |30| Project context | CLAUDE.md, auto memory, unscoped rules | Session starts, or after `/clear` or `/compact` |

31| Conversation | Your messages, Claude's responses, tool results | Every turn |31| Conversation | Your messages, Claude's responses, tool results | Every turn |


318除非您自己选择 TTL,否则 Claude Code 仅在您计划包含的使用范围内的 Claude 订阅上请求一小时 TTL。在那里,它为主对话请求一小时,加上 Anthropic 在服务器端控制的一小组助手请求。此表给出了两种计费方式下每个桶的默认 TTL。318除非您自己选择 TTL,否则 Claude Code 仅在您计划包含的使用范围内的 Claude 订阅上请求一小时 TTL。在那里,它为主对话请求一小时,加上 Anthropic 在服务器端控制的一小组助手请求。此表给出了两种计费方式下每个桶的默认 TTL。

319 319 

320| 请求桶 | Claude 订阅,在计划使用范围内 | 使用额度、API 密钥或云提供商 |320| 请求桶 | Claude 订阅,在计划使用范围内 | 使用额度、API 密钥或云提供商 |

321| ------ | --------------------- | ---------------- |321| - | - | - |

322| 主对话 | 一小时 | 五分钟 |322| 主对话 | 一小时 | 五分钟 |

323| 其他所有内容 | 五分钟,除了服务器控制的助手请求获得一小时 | 五分钟 |323| 其他所有内容 | 五分钟,除了服务器控制的助手请求获得一小时 | 五分钟 |

324 324 


367缓存性能显示为 API 在每个响应上报告的两个令牌计数。实时观看它们的最直接方式是读取 `current_usage` 对象的[状态行脚本](/docs/zh-CN/statusline):367缓存性能显示为 API 在每个响应上报告的两个令牌计数。实时观看它们的最直接方式是读取 `current_usage` 对象的[状态行脚本](/docs/zh-CN/statusline):

368 368 

369| 字段 | 含义 |369| 字段 | 含义 |

370| ----------------------------- | ---------------------------------------------------------------------------------------------- |370| - | - |

371| `cache_creation_input_tokens` | 在此回合写入缓存的令牌,按缓存写入速率计费 |371| `cache_creation_input_tokens` | 在此回合写入缓存的令牌,按缓存写入速率计费 |

372| `cache_read_input_tokens` | 在此回合从缓存提供的令牌,按模型的[缓存令牌速率](https://platform.claude.com/docs/en/about-claude/pricing)计费,低于标准输入速率 |372| `cache_read_input_tokens` | 在此回合从缓存提供的令牌,按模型的[缓存令牌速率](https://platform.claude.com/docs/en/about-claude/pricing)计费,低于标准输入速率 |

373 373 


403禁用缓存在使用特定模型或提供商调试缓存行为时偶尔很有用。要关闭它,请将以下环境变量之一设置为 `1`:403禁用缓存在使用特定模型或提供商调试缓存行为时偶尔很有用。要关闭它,请将以下环境变量之一设置为 `1`:

404 404 

405| 变量 | 效果 |405| 变量 | 效果 |

406| ------------------------------- | ------------ |406| - | - |

407| `DISABLE_PROMPT_CACHING` | 对所有模型禁用 |407| `DISABLE_PROMPT_CACHING` | 对所有模型禁用 |

408| `DISABLE_PROMPT_CACHING_HAIKU` | 仅对 Haiku 禁用 |408| `DISABLE_PROMPT_CACHING_HAIKU` | 仅对 Haiku 禁用 |

409| `DISABLE_PROMPT_CACHING_SONNET` | 仅对 Sonnet 禁用 |409| `DISABLE_PROMPT_CACHING_SONNET` | 仅对 Sonnet 禁用 |

quickstart.md +2 −2

Details

293**Shell 命令**293**Shell 命令**

294 294 

295| 命令 | 功能 | 示例 |295| 命令 | 功能 | 示例 |

296| ------------------- | ------------- | ----------------------------------- |296| - | - | - |

297| `claude` | 启动交互模式 | `claude` |297| `claude` | 启动交互模式 | `claude` |

298| `claude "task"` | 使用初始提示启动交互模式 | `claude "fix the build error"` |298| `claude "task"` | 使用初始提示启动交互模式 | `claude "fix the build error"` |

299| `claude -p "query"` | 运行一次性查询,然后退出 | `claude -p "explain this function"` |299| `claude -p "query"` | 运行一次性查询,然后退出 | `claude -p "explain this function"` |


303**会话命令**303**会话命令**

304 304 

305| 命令 | 功能 | 示例 |305| 命令 | 功能 | 示例 |

306| ------------------- | -------------- | -------- |306| - | - | - |

307| `/clear` | 清除对话历史 | `/clear` |307| `/clear` | 清除对话历史 | `/clear` |

308| `/help` | 显示可用命令 | `/help` |308| `/help` | 显示可用命令 | `/help` |

309| `/exit` 或 Ctrl+D 两次 | 退出 Claude Code | `/exit` |309| `/exit` 或 Ctrl+D 两次 | 退出 Claude Code | `/exit` |

Details

59 可用标志:59 可用标志:

60 60 

61 | 标志 | 描述 |61 | 标志 | 描述 |

62 | ----------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |62 | - | - |

63 | `--name "My Project"` | 设置自定义会话标题,在 claude.ai/code 的会话列表中可见。 |63 | `--name "My Project"` | 设置自定义会话标题,在 claude.ai/code 的会话列表中可见。 |

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

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


520Claude Code 提供了多种方式在您不在终端时进行工作。它们在触发工作的方式、Claude 运行的位置以及所需的设置量方面有所不同。520Claude Code 提供了多种方式在您不在终端时进行工作。它们在触发工作的方式、Claude 运行的位置以及所需的设置量方面有所不同。

521 521 

522| | 触发方式 | Claude 运行位置 | 设置 | 最适合 |522| | 触发方式 | Claude 运行位置 | 设置 | 最适合 |

523| :---------------------------------------------------------- | :---------------------------------------------------------------- | :--------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------- | :---------------------- |523| :- | :- | :- | :- | :- |

524| [Dispatch](/docs/zh-CN/desktop#sessions-from-dispatch) | 从 Claude 移动应用发送任务消息 | 您的机器(Desktop) | [将移动应用与 Desktop 配对](https://support.claude.com/en/articles/13947068) | 在您离开时委派工作,最少设置 |524| [Dispatch](/docs/zh-CN/desktop#sessions-from-dispatch) | 从 Claude 移动应用发送任务消息 | 您的机器(Desktop) | [将移动应用与 Desktop 配对](https://support.claude.com/en/articles/13947068) | 在您离开时委派工作,最少设置 |

525| [Remote Control](/docs/zh-CN/remote-control) | 从 [claude.ai/code](https://claude.ai/code) 或 Claude 移动应用驱动正在运行的会话 | 您的机器(CLI 或 VS Code) | 运行 `claude remote-control` | 从另一台设备控制进行中的工作 |525| [Remote Control](/docs/zh-CN/remote-control) | 从 [claude.ai/code](https://claude.ai/code) 或 Claude 移动应用驱动正在运行的会话 | 您的机器(CLI 或 VS Code) | 运行 `claude remote-control` | 从另一台设备控制进行中的工作 |

526| [Channels](/docs/zh-CN/channels) | 从聊天应用(如 Telegram 或 Discord)或您自己的服务器推送事件 | 您的机器(CLI) | [安装频道插件](/docs/zh-CN/channels#quickstart) 或 [构建您自己的](/docs/zh-CN/channels-reference) | 对外部事件(如 CI 失败或聊天消息)做出反应 |526| [Channels](/docs/zh-CN/channels) | 从聊天应用(如 Telegram 或 Discord)或您自己的服务器推送事件 | 您的机器(CLI) | [安装频道插件](/docs/zh-CN/channels#quickstart) 或 [构建您自己的](/docs/zh-CN/channels-reference) | 对外部事件(如 CI 失败或聊天消息)做出反应 |

routines.md +2 −2

Details

288GitHub 触发器可以订阅以下事件类别之一。在每个类别中,您可以选择特定操作(如 `pull_request.opened`)或对类别中的所有操作做出反应。288GitHub 触发器可以订阅以下事件类别之一。在每个类别中,您可以选择特定操作(如 `pull_request.opened`)或对类别中的所有操作做出反应。

289 289 

290| Event | Triggers when |290| Event | Triggers when |

291| :----------- | :------------------------- |291| :- | :- |

292| Pull request | PR 被打开、关闭、分配、标记、同步或以其他方式更新 |292| Pull request | PR 被打开、关闭、分配、标记、同步或以其他方式更新 |

293| Release | 发布被创建、发布、编辑或删除 |293| Release | 发布被创建、发布、编辑或删除 |

294 294 


299使用过滤器缩小哪些拉取请求启动新会话。所有过滤条件必须匹配才能触发例程。可用的过滤字段是:299使用过滤器缩小哪些拉取请求启动新会话。所有过滤条件必须匹配才能触发例程。可用的过滤字段是:

300 300 

301| Filter | Matches |301| Filter | Matches |

302| :---------- | :---------------- |302| :- | :- |

303| Author | PR 作者的 GitHub 用户名 |303| Author | PR 作者的 GitHub 用户名 |

304| Title | PR 标题文本 |304| Title | PR 标题文本 |

305| Body | PR 描述文本 |305| Body | PR 描述文本 |

Details

21下表中的前两种方法在主机操作系统上运行,不使用容器。其余方法将 Claude Code 放在容器或虚拟机内。21下表中的前两种方法在主机操作系统上运行,不使用容器。其余方法将 Claude Code 放在容器或虚拟机内。

22 22 

23| 方法 | 隔离的内容 | 需要 Docker | 设置工作量 |23| 方法 | 隔离的内容 | 需要 Docker | 设置工作量 |

24| :------------------------------------------ | :-------------------------------------- | :-------- | :------------------------------------------------------ |24| :- | :- | :- | :- |

25| [Sandboxed Bash tool](#sandboxed-bash-tool) | Bash、PowerShell 和 Monitor 命令及其子进程 | 否 | macOS 上最少;Linux 和 WSL2 上较少 |25| [Sandboxed Bash tool](#sandboxed-bash-tool) | Bash、PowerShell 和 Monitor 命令及其子进程 | 否 | macOS 上最少;Linux 和 WSL2 上较少 |

26| [Sandbox runtime](#sandbox-runtime) | 整个 Claude Code 进程,包括文件工具、MCP 服务器和 hooks | 否 | 较少 |26| [Sandbox runtime](#sandbox-runtime) | 整个 Claude Code 进程,包括文件工具、MCP 服务器和 hooks | 否 | 较少 |

27| [Dev container](#dev-containers) | 完整开发环境 | 是 | 中等 |27| [Dev container](#dev-containers) | 完整开发环境 | 是 | 中等 |


44将您的目标与下面的一行匹配,然后阅读随后的详细部分。44将您的目标与下面的一行匹配,然后阅读随后的详细部分。

45 45 

46| 您想要 | 开始使用 |46| 您想要 | 开始使用 |

47| :------------------------------------------------------- | :------------------------------------------------------------------------------------------------------- |47| :- | :- |

48| 在您自己的机器上日常工作期间减少权限提示 | [sandboxed Bash tool](/docs/zh-CN/sandboxing),使用 `/sandbox` 启用 |48| 在您自己的机器上日常工作期间减少权限提示 | [sandboxed Bash tool](/docs/zh-CN/sandboxing),使用 `/sandbox` 启用 |

49| 让 Claude 使用 `--dangerously-skip-permissions` 或自动模式无人值守工作 | 预配置的 [dev container](/docs/zh-CN/devcontainer)、任何容器或虚拟机,或 [sandbox runtime](#sandbox-runtime) |49| 让 Claude 使用 `--dangerously-skip-permissions` 或自动模式无人值守工作 | 预配置的 [dev container](/docs/zh-CN/devcontainer)、任何容器或虚拟机,或 [sandbox runtime](#sandbox-runtime) |

50| 隔离 MCP 服务器和 hooks 以及 Bash,不使用 Docker | sandbox runtime |50| 隔离 MCP 服务器和 hooks 以及 Bash,不使用 Docker | sandbox runtime |

sandboxing.md +7 −7

Details

211路径前缀控制路径的解析方式:211路径前缀控制路径的解析方式:

212 212 

213| 前缀 | 含义 | 示例 |213| 前缀 | 含义 | 示例 |

214| :-------- | :------------------------------------ | :---------------------------------------------------------------- |214| :- | :- | :- |

215| `/` | 从文件系统根目录的绝对路径 | `/tmp/build` 保持 `/tmp/build` |215| `/` | 从文件系统根目录的绝对路径 | `/tmp/build` 保持 `/tmp/build` |

216| `~/` | 相对于主目录 | `~/.kube` 变为 `$HOME/.kube` |216| `~/` | 相对于主目录 | `~/.kube` 变为 `$HOME/.kube` |

217| `./` 或无前缀 | 对于项目设置相对于项目根目录,或对于用户设置相对于 `~/.claude` | `.claude/settings.json` 中的 `./output` 解析为 `<project-root>/output` |217| `./` 或无前缀 | 对于项目设置相对于项目根目录,或对于用户设置相对于 `~/.claude` | `.claude/settings.json` 中的 `./output` 解析为 `<project-root>/output` |


221你也可以使用 `sandbox.filesystem.denyWrite` 和 `sandbox.filesystem.denyRead` 拒绝写入或读取访问,以及使用 `sandbox.filesystem.allowRead` 重新允许被拒绝区域内的特定路径。当读取规则重叠时,更具体的路径获胜:221你也可以使用 `sandbox.filesystem.denyWrite` 和 `sandbox.filesystem.denyRead` 拒绝写入或读取访问,以及使用 `sandbox.filesystem.allowRead` 重新允许被拒绝区域内的特定路径。当读取规则重叠时,更具体的路径获胜:

222 222 

223| 示例规则 | 结果 |223| 示例规则 | 结果 |

224| :--------------------------------------------------- | :--------------------------------------------------------------------------------------------------------- |224| :- | :- |

225| `"denyRead": ["~/"]` 与 `"allowRead": ["~/projects"]` | `~/projects` 可读,主目录的其余部分保持被阻止。更窄的允许重新打开被拒绝区域的该部分 |225| `"denyRead": ["~/"]` 与 `"allowRead": ["~/projects"]` | `~/projects` 可读,主目录的其余部分保持被阻止。更窄的允许重新打开被拒绝区域的该部分 |

226| `"allowRead": ["~/"]` 与 `"denyRead": ["~/.env"]` | `~/.env` 保持被阻止,主目录的其余部分可读。精确的拒绝在更广泛的允许内部保持有效,因此广泛的允许无法悄悄地重新暴露秘密 |226| `"allowRead": ["~/"]` 与 `"denyRead": ["~/.env"]` | `~/.env` 保持被阻止,主目录的其余部分可读。精确的拒绝在更广泛的允许内部保持有效,因此广泛的允许无法悄悄地重新暴露秘密 |

227| `"allowRead": ["~/"]` 与 `"denyRead": ["~/**/.env"]` | 主目录下的每个 `.env` 保持被阻止,其余部分可读。[通配符拒绝](/docs/zh-CN/settings-reference#sandbox-path-prefixes)在更广泛的允许内部保持有效,就像精确路径一样 |227| `"allowRead": ["~/"]` 与 `"denyRead": ["~/**/.env"]` | 主目录下的每个 `.env` 保持被阻止,其余部分可读。[通配符拒绝](/docs/zh-CN/settings-reference#sandbox-path-prefixes)在更广泛的允许内部保持有效,就像精确路径一样 |


285托管 `credentials.files` 条目是否固定 `filesystem.disabled`(将键锁定到托管设置,以便开发人员无法关闭文件系统隔离)取决于条目的 `mode` 以及沙箱启动时条目发生的情况:285托管 `credentials.files` 条目是否固定 `filesystem.disabled`(将键锁定到托管设置,以便开发人员无法关闭文件系统隔离)取决于条目的 `mode` 以及沙箱启动时条目发生的情况:

286 286 

287| 托管条目 | 固定 `filesystem.disabled` | 隔离关闭时保护文件的内容 |287| 托管条目 | 固定 `filesystem.disabled` | 隔离关闭时保护文件的内容 |

288| --------------------------------------------------------------------------------------------- | ------------------------ | ---------------------------------------------------------------------- |288| - | - | - |

289| `"mode": "deny"` | 是 | 无:读取块是文件系统层的一部分 |289| `"mode": "deny"` | 是 | 无:读取块是文件系统层的一部分 |

290| `"mode": "mask"`,应用为掩盖 | 否 | 掩盖本身:Linux 和 WSL2 上的[哨兵副本和代理](#mask-credential-files),macOS 上沙箱自己的读取规则 |290| `"mode": "mask"`,应用为掩盖 | 否 | 掩盖本身:Linux 和 WSL2 上的[哨兵副本和代理](#mask-credential-files),macOS 上沙箱自己的读取规则 |

291| `"mode": "mask"`,[在设置时回退到 `deny`](#mask-credential-files) | 否 | 无,与 `deny` 相同。将无法掩盖的路径(如目录)列为显式 `deny` 条目,这会固定该键 |291| `"mode": "mask"`,[在设置时回退到 `deny`](#mask-credential-files) | 否 | 无,与 `deny` 相同。将无法掩盖的路径(如目录)列为显式 `deny` 条目,这会固定该键 |


300设置 `filesystem.disabled` 会解除文件系统层本身强制执行的保护。其他层强制执行的保护继续适用:300设置 `filesystem.disabled` 会解除文件系统层本身强制执行的保护。其他层强制执行的保护继续适用:

301 301 

302| 保护 | 文件系统隔离关闭时 |302| 保护 | 文件系统隔离关闭时 |

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

304| `filesystem.denyRead` 和 [`credentials.files`](#protect-credentials) `deny` 读取块 | 未强制执行。文件系统层应用两者 |304| `filesystem.denyRead` 和 [`credentials.files`](#protect-credentials) `deny` 读取块 | 未强制执行。文件系统层应用两者 |

305| `credentials.envVars` `deny` 和 `mask` 条目 | 强制执行。环境变量清理独立于文件系统层 |305| `credentials.envVars` `deny` 和 `mask` 条目 | 强制执行。环境变量清理独立于文件系统层 |

306| [`credentials.files` `mask` 条目](#mask-credential-files)应用为掩盖 | 强制执行:掩盖独立于文件系统层。[回退到 `deny`](#mask-credential-files) 的条目未被强制执行,如任何 `deny` 条目 |306| [`credentials.files` `mask` 条目](#mask-credential-files)应用为掩盖 | 强制执行:掩盖独立于文件系统层。[回退到 `deny`](#mask-credential-files) 的条目未被强制执行,如任何 `deny` 条目 |


457三种 AWS 请求形式携带代理无法重新计算的签名。当此类请求使用掩盖对的占位符签名时,代理会失败它而不是转发损坏的签名;使用未掩盖凭证签名的请求永远不会受到影响。[`credentials.sigv4`](/docs/zh-CN/settings-reference#sandbox-credentials-sigv4) 设置(需要 Claude Code v2.1.224 或更高版本)放松每种形式:将形式的键设置为 `passthrough` 会转发带有其占位符派生签名的请求,因此调用工具接收 AWS 自己的拒绝响应而不是代理错误。与 `awsPairs` 一样,`sigv4` 仅从用户设置、托管设置和 `--settings` CLI 标志中遵守。457三种 AWS 请求形式携带代理无法重新计算的签名。当此类请求使用掩盖对的占位符签名时,代理会失败它而不是转发损坏的签名;使用未掩盖凭证签名的请求永远不会受到影响。[`credentials.sigv4`](/docs/zh-CN/settings-reference#sandbox-credentials-sigv4) 设置(需要 Claude Code v2.1.224 或更高版本)放松每种形式:将形式的键设置为 `passthrough` 会转发带有其占位符派生签名的请求,因此调用工具接收 AWS 自己的拒绝响应而不是代理错误。与 `awsPairs` 一样,`sigv4` 仅从用户设置、托管设置和 `--settings` CLI 标志中遵守。

458 458 

459| 请求形式 | `sigv4` 键 | 代理无法重新签名的原因 |459| 请求形式 | `sigv4` 键 | 代理无法重新签名的原因 |

460| :--------------- | :---------- | :-------------------------------- |460| :- | :- | :- |

461| aws-chunked 流式上传 | `streaming` | 每个块签名链接到种子签名,因此重新签名需要重写正文 |461| aws-chunked 流式上传 | `streaming` | 每个块签名链接到种子签名,因此重新签名需要重写正文 |

462| 预签名 URL | `presigned` | 签名位于 URL 本身,没有 `Authorization` 标头 |462| 预签名 URL | `presigned` | 签名位于 URL 本身,没有 `Authorization` 标头 |

463| SigV4A 非对称签名 | `sigv4a` | 没有共享密钥 HMAC 可重新计算 |463| SigV4A 非对称签名 | `sigv4a` | 没有共享密钥 HMAC 可重新计算 |


635文件系统和网络限制通过沙箱设置和权限规则进行配置:635文件系统和网络限制通过沙箱设置和权限规则进行配置:

636 636 

637| 设置或规则 | 作用 |637| 设置或规则 | 作用 |

638| :------------------------------------------------------------- | :----------------------------------------------------- |638| :- | :- |

639| `sandbox.filesystem.allowWrite` | 授予子进程对工作目录外路径的写入访问权限 |639| `sandbox.filesystem.allowWrite` | 授予子进程对工作目录外路径的写入访问权限 |

640| `sandbox.filesystem.denyWrite` 和 `sandbox.filesystem.denyRead` | 阻止子进程访问特定路径 |640| `sandbox.filesystem.denyWrite` 和 `sandbox.filesystem.denyRead` | 阻止子进程访问特定路径 |

641| `sandbox.filesystem.allowRead` | 重新允许读取 `denyRead` 区域内的特定路径 |641| `sandbox.filesystem.allowRead` | 重新允许读取 `denyRead` 区域内的特定路径 |


657`/sandbox` 不是[权限模式](/docs/zh-CN/permission-modes)。权限模式决定工具调用是否运行以及是否首先提示您,而沙箱限制 Bash 命令运行后可以访问的内容。它们在控制的内容和替代每个操作提示的内容上有所不同:657`/sandbox` 不是[权限模式](/docs/zh-CN/permission-modes)。权限模式决定工具调用是否运行以及是否首先提示您,而沙箱限制 Bash 命令运行后可以访问的内容。它们在控制的内容和替代每个操作提示的内容上有所不同:

658 658 

659| | 控制的内容 | 替代提示的内容 |659| | 控制的内容 | 替代提示的内容 |

660| :--------------------------------------------------------------- | :---------------- | :------------------------------------------------------------------------------------------------------------------------------ |660| :- | :- | :- |

661| `/sandbox` | Bash 命令运行后可以访问的内容 | 沙箱边界本身,在[自动允许模式](#sandbox-modes)中 |661| `/sandbox` | Bash 命令运行后可以访问的内容 | 沙箱边界本身,在[自动允许模式](#sandbox-modes)中 |

662| [自动模式](/docs/zh-CN/permission-modes#eliminate-prompts-with-auto-mode) | 每个工具调用是否运行 | 审查操作的分类器 |662| [自动模式](/docs/zh-CN/permission-modes#eliminate-prompts-with-auto-mode) | 每个工具调用是否运行 | 审查操作的分类器 |

663| `--dangerously-skip-permissions` | 每个工具调用是否运行 | 无。[受保护路径](/docs/zh-CN/permission-modes#protected-paths)检查也被跳过;[模式自动批准的操作](/docs/zh-CN/permission-modes#actions-no-mode-auto-approves)仍然适用 |663| `--dangerously-skip-permissions` | 每个工具调用是否运行 | 无。[受保护路径](/docs/zh-CN/permission-modes#protected-paths)检查也被跳过;[模式自动批准的操作](/docs/zh-CN/permission-modes#actions-no-mode-auto-approves)仍然适用 |

Details

17Claude Code 提供三种方式来安排定期或一次性工作:17Claude Code 提供三种方式来安排定期或一次性工作:

18 18 

19| | [Cloud](/docs/zh-CN/routines) | [Desktop](/docs/zh-CN/desktop-scheduled-tasks) | [`/loop`](/docs/zh-CN/scheduled-tasks) |19| | [Cloud](/docs/zh-CN/routines) | [Desktop](/docs/zh-CN/desktop-scheduled-tasks) | [`/loop`](/docs/zh-CN/scheduled-tasks) |

20| :---------- | :----------------------- | :---------------------------------------- | :--------------------------------------------------------- |20| :- | :- | :- | :- |

21| 运行位置 | Cloud,默认由 Anthropic 管理 | 您的机器 | 您的机器 |21| 运行位置 | Cloud,默认由 Anthropic 管理 | 您的机器 | 您的机器 |

22| 需要机器开启 | 否 | 是 | 是 |22| 需要机器开启 | 否 | 是 | 是 |

23| 需要打开会话 | 否 | 否 | 是 |23| 需要打开会话 | 否 | 否 | 是 |


39`/loop` [bundled skill](/docs/zh-CN/commands) 是在会话保持打开时重复运行提示词的最快方式。间隔和提示词都是可选的,您提供的内容决定了循环的行为方式。39`/loop` [bundled skill](/docs/zh-CN/commands) 是在会话保持打开时重复运行提示词的最快方式。间隔和提示词都是可选的,您提供的内容决定了循环的行为方式。

40 40 

41| 您提供的内容 | 示例 | 发生的情况 |41| 您提供的内容 | 示例 | 发生的情况 |

42| :----- | :-------------------------- | :-------------------------------------------------------------------- |42| :- | :- | :- |

43| 间隔和提示词 | `/loop 5m check the deploy` | 您的提示词在[固定计划](#run-on-a-fixed-interval)上运行 |43| 间隔和提示词 | `/loop 5m check the deploy` | 您的提示词在[固定计划](#run-on-a-fixed-interval)上运行 |

44| 仅提示词 | `/loop check the deploy` | 您的提示词在 Claude 选择的[间隔](#let-claude-choose-the-interval)上运行,每次迭代 |44| 仅提示词 | `/loop check the deploy` | 您的提示词在 Claude 选择的[间隔](#let-claude-choose-the-interval)上运行,每次迭代 |

45| 仅间隔或无 | `/loop` | [内置维护提示词](#run-the-built-in-maintenance-prompt)运行,或您的 `loop.md`(如果存在) |45| 仅间隔或无 | `/loop` | [内置维护提示词](#run-the-built-in-maintenance-prompt)运行,或您的 `loop.md`(如果存在) |


114Claude 在两个位置查找文件,并使用它找到的第一个。114Claude 在两个位置查找文件,并使用它找到的第一个。

115 115 

116| 路径 | 范围 |116| 路径 | 范围 |

117| :------------------ | :------------------ |117| :- | :- |

118| `.claude/loop.md` | 项目级别。当两个文件都存在时优先。 |118| `.claude/loop.md` | 项目级别。当两个文件都存在时优先。 |

119| `~/.claude/loop.md` | 用户级别。适用于任何未定义自己的项目。 |119| `~/.claude/loop.md` | 用户级别。适用于任何未定义自己的项目。 |

120 120 


172这些是 Claude 使用的底层工具:172这些是 Claude 使用的底层工具:

173 173 

174| 工具 | 目的 |174| 工具 | 目的 |

175| :----------- | :------------------------------------------ |175| :- | :- |

176| `CronCreate` | 计划新任务。接受 5 字段 cron 表达式、要运行的提示词以及是否重复或仅触发一次。 |176| `CronCreate` | 计划新任务。接受 5 字段 cron 表达式、要运行的提示词以及是否重复或仅触发一次。 |

177| `CronList` | 列出所有计划任务及其 ID、计划和提示词。 |177| `CronList` | 列出所有计划任务及其 ID、计划和提示词。 |

178| `CronDelete` | 按 ID 取消任务。 |178| `CronDelete` | 按 ID 取消任务。 |


211`CronCreate` 接受标准 5 字段 cron 表达式:`minute hour day-of-month month day-of-week`。所有字段都支持通配符 (`*`)、单个值 (`5`)、步长 (`*/15`)、范围 (`1-5`) 和逗号分隔的列表 (`1,15,30`)。211`CronCreate` 接受标准 5 字段 cron 表达式:`minute hour day-of-month month day-of-week`。所有字段都支持通配符 (`*`)、单个值 (`5`)、步长 (`*/15`)、范围 (`1-5`) 和逗号分隔的列表 (`1,15,30`)。

212 212 

213| 示例 | 含义 |213| 示例 | 含义 |

214| :------------- | :------------------ |214| :- | :- |

215| `*/5 * * * *` | 每 5 分钟 |215| `*/5 * * * *` | 每 5 分钟 |

216| `0 * * * *` | 每小时整点 |216| `0 * * * *` | 每小时整点 |

217| `7 * * * *` | 每小时的第 7 分钟 |217| `7 * * * *` | 每小时的第 7 分钟 |

Details

165```165```

166 166 

167| 字段 | 类型 | 描述 |167| 字段 | 类型 | 描述 |

168| :-------------- | :-- | :--------------------------------------------------------- |168| :- | :- | :- |

169| `rule_name` | 字符串 | 警告中显示的标识符 |169| `rule_name` | 字符串 | 警告中显示的标识符 |

170| `reminder` | 字符串 | 附加到 Claude 上下文的警告文本,上限为 1 KB |170| `reminder` | 字符串 | 附加到 Claude 上下文的警告文本,上限为 1 KB |

171| `regex` | 字符串 | 针对编辑内容匹配的 Python 正则表达式 |171| `regex` | 字符串 | 针对编辑内容匹配的 Python 正则表达式 |


182该插件在相同位置查找 `claude-security-guidance.md` 和 `security-patterns.yaml`,与插件的启用方式无关:182该插件在相同位置查找 `claude-security-guidance.md` 和 `security-patterns.yaml`,与插件的启用方式无关:

183 183 

184| 范围 | 路径 | 注释 |184| 范围 | 路径 | 注释 |

185| :--- | :------------------------------------------ | :-------------------------- |185| :- | :- | :- |

186| 用户 | `~/.claude/claude-security-guidance.md` | 适用于您计算机上的每个项目 |186| 用户 | `~/.claude/claude-security-guidance.md` | 适用于您计算机上的每个项目 |

187| 项目 | `.claude/claude-security-guidance.md` | 与存储库一起检入 |187| 项目 | `.claude/claude-security-guidance.md` | 与存储库一起检入 |

188| 项目本地 | `.claude/claude-security-guidance.local.md` | 用于个人覆盖;将其添加到您的 `.gitignore` |188| 项目本地 | `.claude/claude-security-guidance.local.md` | 用于个人覆盖;将其添加到您的 `.gitignore` |


206要关闭单个层同时保持其余部分,请设置匹配的环境变量:206要关闭单个层同时保持其余部分,请设置匹配的环境变量:

207 207 

208| 变量 | 效果 |208| 变量 | 效果 |

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

210| `ENABLE_PATTERN_RULES=0` | 禁用 [每次编辑模式检查](#on-each-file-edit) |210| `ENABLE_PATTERN_RULES=0` | 禁用 [每次编辑模式检查](#on-each-file-edit) |

211| `ENABLE_STOP_REVIEW=0` | 禁用 [回合结束 diff 审查](#at-the-end-of-each-turn) |211| `ENABLE_STOP_REVIEW=0` | 禁用 [回合结束 diff 审查](#at-the-end-of-each-turn) |

212| `ENABLE_COMMIT_REVIEW=0` | 禁用 [提交和推送审查](#on-each-commit-or-push-claude-makes) |212| `ENABLE_COMMIT_REVIEW=0` | 禁用 [提交和推送审查](#on-each-commit-or-push-claude-makes) |


234该插件完全基于 [hooks](/docs/zh-CN/hooks),这是在 Claude 循环中的特定点运行您自己的代码的机制。它注册:234该插件完全基于 [hooks](/docs/zh-CN/hooks),这是在 Claude 循环中的特定点运行您自己的代码的机制。它注册:

235 235 

236| Hook 事件 | 目的 |236| Hook 事件 | 目的 |

237| :----------------------------------------------------- | :------------------- |237| :- | :- |

238| `SessionStart` | 引导插件的 Python 环境 |238| `SessionStart` | 引导插件的 Python 环境 |

239| `UserPromptSubmit` | 捕获回合结束审查 diff 的工作树基线 |239| `UserPromptSubmit` | 捕获回合结束审查 diff 的工作树基线 |

240| `PostToolUse` 在 `Edit`、`Write` 和 `NotebookEdit` 上 | 每次编辑模式匹配 |240| `PostToolUse` 在 `Edit`、`Write` 和 `NotebookEdit` 上 | 每次编辑模式匹配 |


250该插件是深度防御方法中的一层。它最早捕获问题,当代码仍在编辑器中时,但它不是保证,也不能替代后来的检查。典型的堆栈:250该插件是深度防御方法中的一层。它最早捕获问题,当代码仍在编辑器中时,但它不是保证,也不能替代后来的检查。典型的堆栈:

251 251 

252| 阶段 | 工具 | 覆盖内容 |252| 阶段 | 工具 | 覆盖内容 |

253| :------ | :----------------------------------------------------- | :--------------------------- |253| :- | :- | :- |

254| 在会话中 | Security guidance 插件 | Claude 编写的代码中的常见漏洞,在同一会话中修复 |254| 在会话中 | Security guidance 插件 | Claude 编写的代码中的常见漏洞,在同一会话中修复 |

255| 按需,单次扫描 | [`/security-review`](/docs/zh-CN/commands#all-commands) | 对当前分支的一次性安全检查,在您要求时运行 |255| 按需,单次扫描 | [`/security-review`](/docs/zh-CN/commands#all-commands) | 对当前分支的一次性安全检查,在您要求时运行 |

256| 按需,深度扫描 | [Claude Security 插件](/docs/zh-CN/claude-security) | 对存储库或差异的多代理漏洞扫描,具有独立审查的发现和补丁 |256| 按需,深度扫描 | [Claude Security 插件](/docs/zh-CN/claude-security) | 对存储库或差异的多代理漏洞扫描,具有独立审查的发现和补丁 |

Details

76这些术语在整个自托管页面中出现:76这些术语在整个自托管页面中出现:

77 77 

78| 术语 | 它是什么 |78| 术语 | 它是什么 |

79| :--- | :--------------------------------------------------------------------------------------------- |79| :- | :- |

80| 环境 | 您的运行器的命名组,在 claude.ai 设置中创建。会话被路由到环境,而不是单个运行器。 |80| 环境 | 您的运行器的命名组,在 claude.ai 设置中创建。会话被路由到环境,而不是单个运行器。 |

81| 环境密钥 | 运行器用来向环境进行身份验证和注册的单个共享凭证。在环境创建时显示一次,在管理 UI 中标记为**环境密钥**。 |81| 环境密钥 | 运行器用来向环境进行身份验证和注册的单个共享凭证。在环境创建时显示一次,在管理 UI 中标记为**环境密钥**。 |

82| 运行器 | 您部署的长期进程。运行器向环境注册、接收运行器令牌并轮询会话。 |82| 运行器 | 您部署的长期进程。运行器向环境注册、接收运行器令牌并轮询会话。 |

Details

29运行器在包装脚本的环境中设置以下内容:29运行器在包装脚本的环境中设置以下内容:

30 30 

31| 变量 | 描述 |31| 变量 | 描述 |

32| :---------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |32| :- | :- |

33| `CLAUDE_CODE_SESSION_ACCESS_TOKEN` | 会话 JWT,前缀为 `sk-ant-cc-`。其 `act` 声明标识会话创建者,包含创建者的电子邮件和上游身份提供者主题(如果创建表面记录了它们)。该值是生成时的令牌;刷新通过子进程的 stdin 到达,因此包装脚本只看到初始值。请参阅 [Verify session identity](/docs/zh-CN/self-hosted-environments-identity)。 |33| `CLAUDE_CODE_SESSION_ACCESS_TOKEN` | 会话 JWT,前缀为 `sk-ant-cc-`。其 `act` 声明标识会话创建者,包含创建者的电子邮件和上游身份提供者主题(如果创建表面记录了它们)。该值是生成时的令牌;刷新通过子进程的 stdin 到达,因此包装脚本只看到初始值。请参阅 [Verify session identity](/docs/zh-CN/self-hosted-environments-identity)。 |

34| `CCR_SESSION_ACCOUNT_EMAIL` | 会话创建者的电子邮件,由运行器从令牌的 `act.email` 声明中预先提取,无需签名验证。适合用于标记,例如提交预告片。当电子邮件控制凭证发放时,验证令牌并从中读取声明;请参阅 [Provision credentials scoped to the session creator](#provision-credentials-scoped-to-the-session-creator)。当令牌不包含创建者电子邮件时未设置。视为个人可识别信息。 |34| `CCR_SESSION_ACCOUNT_EMAIL` | 会话创建者的电子邮件,由运行器从令牌的 `act.email` 声明中预先提取,无需签名验证。适合用于标记,例如提交预告片。当电子邮件控制凭证发放时,验证令牌并从中读取声明;请参阅 [Provision credentials scoped to the session creator](#provision-credentials-scoped-to-the-session-creator)。当令牌不包含创建者电子邮件时未设置。视为个人可识别信息。 |

35| `CLAUDE_RUNNER_CLIENT_PLATFORM` | 创建会话的客户端表面,例如 `web_claude_ai`、`desktop_app`、`ios`、`claude_code_cli` 或 `scheduled_trigger`。Anthropic 在会话创建时记录该值一次,因此包装脚本和每个生命周期钩子都看到相同的值。仅将其用于采用分析和标记,不用作授权信号。当会话没有记录或识别的表面时未设置,因此在 `set -u` 下将其引用为 `${CLAUDE_RUNNER_CLIENT_PLATFORM:-}`。需要 Claude Code v2.1.229 或更高版本。 |35| `CLAUDE_RUNNER_CLIENT_PLATFORM` | 创建会话的客户端表面,例如 `web_claude_ai`、`desktop_app`、`ios`、`claude_code_cli` 或 `scheduled_trigger`。Anthropic 在会话创建时记录该值一次,因此包装脚本和每个生命周期钩子都看到相同的值。仅将其用于采用分析和标记,不用作授权信号。当会话没有记录或识别的表面时未设置,因此在 `set -u` 下将其引用为 `${CLAUDE_RUNNER_CLIENT_PLATFORM:-}`。需要 Claude Code v2.1.229 或更高版本。 |


98每个存储库运行一次,代替运行器的内置克隆和获取。使用钩子从读通镜像克隆、从存档为工作树设置种子或应用按会话 git 身份验证。运行器设置:98每个存储库运行一次,代替运行器的内置克隆和获取。使用钩子从读通镜像克隆、从存档为工作树设置种子或应用按会话 git 身份验证。运行器设置:

99 99 

100| 变量 | 描述 |100| 变量 | 描述 |

101| :--------------------------------- | :--------------------------------------------------------------------- |101| :- | :- |

102| `CLAUDE_RUNNER_REPO_URL` | 要克隆的存储库 URL,在应用任何 `--git-host-rewrite` 和 `--git-ssh-rewrite` 之后 |102| `CLAUDE_RUNNER_REPO_URL` | 要克隆的存储库 URL,在应用任何 `--git-host-rewrite` 和 `--git-ssh-rewrite` 之后 |

103| `CLAUDE_RUNNER_REPO_REF` | 要检出的修订版本:分支、标签或提交 SHA,如会话请求的那样。空表示存储库的默认分支。 |103| `CLAUDE_RUNNER_REPO_REF` | 要检出的修订版本:分支、标签或提交 SHA,如会话请求的那样。空表示存储库的默认分支。 |

104| `CLAUDE_RUNNER_CHECKOUT_PATH` | 必须留下工作树的绝对路径 |104| `CLAUDE_RUNNER_CHECKOUT_PATH` | 必须留下工作树的绝对路径 |


130钩子在每个会话结束时触发,其中生成了子进程,无论原因如何;下面的 `CLAUDE_RUNNER_EXIT_REASON` 值枚举了这些情况。当运行器突然终止时(例如 VM 抢占或断电)它无法触发;如果您需要针对突然终止的保证,请改为使用 Claude Code `PostToolUse` 钩子从会话内定期快照。运行器设置:130钩子在每个会话结束时触发,其中生成了子进程,无论原因如何;下面的 `CLAUDE_RUNNER_EXIT_REASON` 值枚举了这些情况。当运行器突然终止时(例如 VM 抢占或断电)它无法触发;如果您需要针对突然终止的保证,请改为使用 Claude Code `PostToolUse` 钩子从会话内定期快照。运行器设置:

131 131 

132| 变量 | 描述 |132| 变量 | 描述 |

133| :--------------------------------- | :--------------------------------------------------------------------------------------------------- |133| :- | :- |

134| `CLAUDE_RUNNER_SESSION_ID` | 会话 ID,采用标记的 `session_...` 形式 |134| `CLAUDE_RUNNER_SESSION_ID` | 会话 ID,采用标记的 `session_...` 形式 |

135| `CLAUDE_RUNNER_SESSION_UUID` | 相同的会话 ID,采用规范 UUID 形式 |135| `CLAUDE_RUNNER_SESSION_UUID` | 相同的会话 ID,采用规范 UUID 形式 |

136| `CLAUDE_RUNNER_EXIT_REASON` | 会话如何结束;请参阅表下方的值 |136| `CLAUDE_RUNNER_EXIT_REASON` | 会话如何结束;请参阅表下方的值 |


220编排器为每个生成请求运行一次 `${hooks-dir}/spawn-runner`。钩子必须异步提交工作,不等待运行器启动,并在 `--hook-timeout`(默认 60 秒)内返回。钩子接收:220编排器为每个生成请求运行一次 `${hooks-dir}/spawn-runner`。钩子必须异步提交工作,不等待运行器启动,并在 `--hook-timeout`(默认 60 秒)内返回。钩子接收:

221 221 

222| 变量 | 描述 |222| 变量 | 描述 |

223| :------------------------------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |223| :- | :- |

224| `CLAUDE_RUNNER_WORK_ORDER_FILE` | 包含新运行器注册的已签名工作单 JWT 的临时文件的路径。钩子退出后删除。不要记录文件的内容。 |224| `CLAUDE_RUNNER_WORK_ORDER_FILE` | 包含新运行器注册的已签名工作单 JWT 的临时文件的路径。钩子退出后删除。不要记录文件的内容。 |

225| `CLAUDE_RUNNER_ORDER_ID` | 不透明的幂等性密钥,每个生成请求唯一,对 Kubernetes 资源名称安全。将其用作您的配置器的去重密钥。 |225| `CLAUDE_RUNNER_ORDER_ID` | 不透明的幂等性密钥,每个生成请求唯一,对 Kubernetes 资源名称安全。将其用作您的配置器的去重密钥。 |

226| `CLAUDE_RUNNER_SESSION_ID` | 此请求所针对的会话。对于预热请求为空,当设置 [`--min-idle`](/docs/zh-CN/self-hosted-environments-reference#orchestrator-cli-flags) 时启动待命运行器,在任何特定会话之前,因此不要假设变量已设置。 |226| `CLAUDE_RUNNER_SESSION_ID` | 此请求所针对的会话。对于预热请求为空,当设置 [`--min-idle`](/docs/zh-CN/self-hosted-environments-reference#orchestrator-cli-flags) 时启动待命运行器,在任何特定会话之前,因此不要假设变量已设置。 |

Details

53这些主机始终是必需的:53这些主机始终是必需的:

54 54 

55| 主机 | 端口 | 用途 |55| 主机 | 端口 | 用途 |

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

57| `api.anthropic.com` | 443,HTTPS;仅 SCM 连接器的 WSS | 运行器控制平面和会话流式传输、模型推理、功能标志、产品分析、[JWKS](/docs/zh-CN/self-hosted-environments-identity) 密钥获取、提交签名、设置 `--use-anthropic-git-proxy` 时的 git 代理,以及设置 `--scm-connector-host` 时编排器的 [SCM 连接器](/docs/zh-CN/self-hosted-environments-reference#scm-connector-flags)隧道 |57| `api.anthropic.com` | 443,HTTPS;仅 SCM 连接器的 WSS | 运行器控制平面和会话流式传输、模型推理、功能标志、产品分析、[JWKS](/docs/zh-CN/self-hosted-environments-identity) 密钥获取、提交签名、设置 `--use-anthropic-git-proxy` 时的 git 代理,以及设置 `--scm-connector-host` 时编排器的 [SCM 连接器](/docs/zh-CN/self-hosted-environments-reference#scm-connector-flags)隧道 |

58| 您的 git 主机,例如 `github.com` 或您的 GitHub Enterprise 主机 | 443 或 22 | 克隆和推送存储库。如果运行器使用 `--use-anthropic-git-proxy`(通过 `api.anthropic.com` 路由 git 流量)则不需要。 |58| 您的 git 主机,例如 `github.com` 或您的 GitHub Enterprise 主机 | 443 或 22 | 克隆和推送存储库。如果运行器使用 `--use-anthropic-git-proxy`(通过 `api.anthropic.com` 路由 git 流量)则不需要。 |

59 59 

60这些主机是否需要取决于您的配置:60这些主机是否需要取决于您的配置:

61 61 

62| 主机 | 端口 | 何时需要 |62| 主机 | 端口 | 何时需要 |

63| :----------------------------------- | :-- | :---------------------------------------------------------------------------------------------------------------------------------- |63| :- | :- | :- |

64| `downloads.claude.ai` | 443 | 在安装时,当您使用本机安装程序在主机上安装或更新 Claude Code 时;`install.sh` 脚本本身从 `claude.ai` 提供。在会话运行时,仅当会话从官方 Anthropic 市场安装插件时。 |64| `downloads.claude.ai` | 443 | 在安装时,当您使用本机安装程序在主机上安装或更新 Claude Code 时;`install.sh` 脚本本身从 `claude.ai` 提供。在会话运行时,仅当会话从官方 Anthropic 市场安装插件时。 |

65| `storage.googleapis.com` | 443 | 在会话运行时,用于 `/plugin` 中显示的插件安装计数和元数据。 |65| `storage.googleapis.com` | 443 | 在会话运行时,用于 `/plugin` 中显示的插件安装计数和元数据。 |

66| `code.claude.com` 和 `claude.com` | 443 | 内置 claude-code-guide 代理的文档查找和会话期间预批准的 WebFetch 请求。阻止这些主机仅影响文档查找。 |66| `code.claude.com` 和 `claude.com` | 443 | 内置 claude-code-guide 代理的文档查找和会话期间预批准的 WebFetch 请求。阻止这些主机仅影响文档查找。 |

Details

204下表列出了与验证相关的会话令牌声明。从 `ccr:*` 命名空间和 `act` 链读取身份;平面 `account_email`、`organization_uuid` 和 `account_uuid` 声明是可能被删除的向后兼容性重复项。您组织的服务身份创建的会话(包括 Claude Tag 频道会话)在 `act.sub` 中携带 `agent:` 主题,并省略 `act.email`、`ccr:account_id`、`account_email` 和 `account_uuid`。两个电子邮件声明对于用户创建的会话也是可选的:Anthropic 仅在创建请求的凭证携带电子邮件时在会话创建时记录它们,从 CLI 分派的会话可能两者都缺少,因此根据 `act.sub` 或 `ccr:account_id` 而不是电子邮件来确定身份。令牌也可以携带此表之外的其他声明;忽略您不认识的声明。204下表列出了与验证相关的会话令牌声明。从 `ccr:*` 命名空间和 `act` 链读取身份;平面 `account_email`、`organization_uuid` 和 `account_uuid` 声明是可能被删除的向后兼容性重复项。您组织的服务身份创建的会话(包括 Claude Tag 频道会话)在 `act.sub` 中携带 `agent:` 主题,并省略 `act.email`、`ccr:account_id`、`account_email` 和 `account_uuid`。两个电子邮件声明对于用户创建的会话也是可选的:Anthropic 仅在创建请求的凭证携带电子邮件时在会话创建时记录它们,从 CLI 分派的会话可能两者都缺少,因此根据 `act.sub` 或 `ccr:account_id` 而不是电子邮件来确定身份。令牌也可以携带此表之外的其他声明;忽略您不认识的声明。

205 205 

206| 声明 | 类型 | 描述 |206| 声明 | 类型 | 描述 |

207| :------------------ | :---- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |207| :- | :- | :- |

208| `iss` | 字符串 | 始终为 `ccr`。 |208| `iss` | 字符串 | 始终为 `ccr`。 |

209| `sub` | 字符串 | `ccr:session:<session_id>`。 |209| `sub` | 字符串 | `ccr:session:<session_id>`。 |

210| `aud` | 字符串数组 | 始终包含 `anthropic-api`。对于自托管环境中的会话,数组还包含您的环境 ID,例如 `ccpool_...`。验证环境 ID,而不是 `anthropic-api`。 |210| `aud` | 字符串数组 | 始终包含 `anthropic-api`。对于自托管环境中的会话,数组还包含您的环境 ID,例如 `ccpool_...`。验证环境 ID,而不是 `anthropic-api`。 |


228`act` 声明记录从创建会话的用户或服务身份到[环境](/docs/zh-CN/self-hosted-environments#key-concepts)(其机密允许运行程序)以及创建该机密的身份的完整委托路径。创建者是最外层的参与者,因此 `act.sub` 直接标识他们。228`act` 声明记录从创建会话的用户或服务身份到[环境](/docs/zh-CN/self-hosted-environments#key-concepts)(其机密允许运行程序)以及创建该机密的身份的完整委托路径。创建者是最外层的参与者,因此 `act.sub` 直接标识他们。

229 229 

230| 路径 | 描述 |230| 路径 | 描述 |

231| :---------------- | :-------------------------------------------------------------------------------------------------------------------- |231| :- | :- |

232| `act.sub` | 创建用户的 Anthropic 用户 ID,形式为 `user:<id>`,或当您组织的服务身份创建会话时为 `agent:<id>`,就像它对 Claude Tag 频道会话所做的那样。 |232| `act.sub` | 创建用户的 Anthropic 用户 ID,形式为 `user:<id>`,或当您组织的服务身份创建会话时为 `agent:<id>`,就像它对 Claude Tag 频道会话所做的那样。 |

233| `act.email` | 创建用户的电子邮件地址,当在会话创建时记录了一个时。不要求它;根据 `act.sub` 确定身份。 |233| `act.email` | 创建用户的电子邮件地址,当在会话创建时记录了一个时。不要求它;根据 `act.sub` 确定身份。 |

234| `act.attested_by` | 上游身份提供程序对创建用户的证明,当可用时。`act.attested_by.sub` 是您的 SSO 提供程序(例如 Google 或 Okta)发布的主题。在映射到您自己系统中的身份时,优先选择这个而不是 `act.email`。 |234| `act.attested_by` | 上游身份提供程序对创建用户的证明,当可用时。`act.attested_by.sub` 是您的 SSO 提供程序(例如 Google 或 Okta)发布的主题。在映射到您自己系统中的身份时,优先选择这个而不是 `act.email`。 |

Details

21大多数标志都有相应的环境变量。当两者都设置时,标志优先。持续时间标志在 CLI 上采用分钟或秒,但配对的环境变量始终以毫秒为单位,由 `_MS` 后缀表示,默认列显示标志的单位:`--exit-if-unused-min 10` 等同于 `SELF_HOSTED_RUNNER_IDLE_SHUTDOWN_MS=600000`,而 Helm 值如 `SELF_HOSTED_RUNNER_STARTUP_TIMEOUT_MS: "15"` 表示 15 毫秒,而不是 15 分钟的默认值。21大多数标志都有相应的环境变量。当两者都设置时,标志优先。持续时间标志在 CLI 上采用分钟或秒,但配对的环境变量始终以毫秒为单位,由 `_MS` 后缀表示,默认列显示标志的单位:`--exit-if-unused-min 10` 等同于 `SELF_HOSTED_RUNNER_IDLE_SHUTDOWN_MS=600000`,而 Helm 值如 `SELF_HOSTED_RUNNER_STARTUP_TIMEOUT_MS: "15"` 表示 15 毫秒,而不是 15 分钟的默认值。

22 22 

23| 标志 | 环境变量 | 默认值 | 描述 |23| 标志 | 环境变量 | 默认值 | 描述 |

24| :---------------------------------------- | :------------------------------------------------ | :-------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |24| :- | :- | :- | :- |

25| `--api-url <url>` | 无 | `https://api.anthropic.com` | API 基础 URL。仅为测试覆盖。 |25| `--api-url <url>` | 无 | `https://api.anthropic.com` | API 基础 URL。仅为测试覆盖。 |

26| `--base-dir <path>` | `SELF_HOSTED_RUNNER_BASE_DIR` | `/workspace`;Windows 上无 | 用于存储库检出和每个会话工作目录的目录。运行器需要对此路径或其父路径的写入访问权限。运行器在启动时创建目录,当无法创建或写入时以 `cannot create or write to base directory` 退出。在 v2.1.225 之前,运行器在第一个会话启动时创建目录,因此不可用的路径会导致会话失败而不是启动失败。在 Windows 上(不是受支持的运行器主机),没有默认值:除非您传递标志或设置变量,否则运行器在启动时退出。在环境中的每个运行器上使用相同的值。请参阅[在运行器之间保持基础目录和容量相同](/docs/zh-CN/self-hosted-environments-deploy#keep-the-base-directory-and-capacity-identical-across-runners)。 |26| `--base-dir <path>` | `SELF_HOSTED_RUNNER_BASE_DIR` | `/workspace`;Windows 上无 | 用于存储库检出和每个会话工作目录的目录。运行器需要对此路径或其父路径的写入访问权限。运行器在启动时创建目录,当无法创建或写入时以 `cannot create or write to base directory` 退出。在 v2.1.225 之前,运行器在第一个会话启动时创建目录,因此不可用的路径会导致会话失败而不是启动失败。在 Windows 上(不是受支持的运行器主机),没有默认值:除非您传递标志或设置变量,否则运行器在启动时退出。在环境中的每个运行器上使用相同的值。请参阅[在运行器之间保持基础目录和容量相同](/docs/zh-CN/self-hosted-environments-deploy#keep-the-base-directory-and-capacity-identical-across-runners)。 |

27| `--capacity <n>` | 无 | `1` | 此运行器处理的最大并发会话数。所有会话都属于同一个锁定的[所有者](/docs/zh-CN/self-hosted-environments#key-concepts)。在环境中的每个运行器上使用相同的值;请参阅[在运行器之间保持基础目录和容量相同](/docs/zh-CN/self-hosted-environments-deploy#keep-the-base-directory-and-capacity-identical-across-runners)。 |27| `--capacity <n>` | 无 | `1` | 此运行器处理的最大并发会话数。所有会话都属于同一个锁定的[所有者](/docs/zh-CN/self-hosted-environments#key-concepts)。在环境中的每个运行器上使用相同的值;请参阅[在运行器之间保持基础目录和容量相同](/docs/zh-CN/self-hosted-environments-deploy#keep-the-base-directory-and-capacity-identical-across-runners)。 |


69`self-hosted-runner orchestrator` 子命令(生成[按需运行器](/docs/zh-CN/self-hosted-environments-configuration#on-demand-runners))接受 `--api-url`、`--environment-secret-file`、`--hooks-dir`、`--health-port` 和 `--log-level`,与运行器具有相同的默认值,以及运行器的标志具有的相同环境变量(除了 `--hooks-dir` 是必需的,必须包含 `spawn-runner` 钩子)。它还采用自己的标志:69`self-hosted-runner orchestrator` 子命令(生成[按需运行器](/docs/zh-CN/self-hosted-environments-configuration#on-demand-runners))接受 `--api-url`、`--environment-secret-file`、`--hooks-dir`、`--health-port` 和 `--log-level`,与运行器具有相同的默认值,以及运行器的标志具有的相同环境变量(除了 `--hooks-dir` 是必需的,必须包含 `spawn-runner` 钩子)。它还采用自己的标志:

70 70 

71| 标志 | 默认值 | 描述 |71| 标志 | 默认值 | 描述 |

72| :------------------------------- | :---- | :----------------------------------------------------------------------------------------------------- |72| :- | :- | :- |

73| `--hook-concurrency <n>` | `4` | 最大 `spawn-runner` 钩子并行运行。还限制每次轮询声称的生成请求数。 |73| `--hook-concurrency <n>` | `4` | 最大 `spawn-runner` 钩子并行运行。还限制每次轮询声称的生成请求数。 |

74| `--hook-timeout <sec>` | `60` | 在这么多秒后终止钩子的进程树。超时加其 5 秒杀死宽限期必须保持在 `--expected-spawn-seconds` 以下;编排器在启动时强制执行此操作。 |74| `--hook-timeout <sec>` | `60` | 在这么多秒后终止钩子的进程树。超时加其 5 秒杀死宽限期必须保持在 `--expected-spawn-seconds` 以下;编排器在启动时强制执行此操作。 |

75| `--expected-spawn-seconds <sec>` | `120` | 生成的运行器的预期 p99 启动时间,在服务器强制的范围 10 到 3600 内。在每次轮询时发送作为服务器端租约;如果没有运行器在其过期前注册,会话将使用新的订单 ID 重新提供。所有副本必须共享此值。 |75| `--expected-spawn-seconds <sec>` | `120` | 生成的运行器的预期 p99 启动时间,在服务器强制的范围 10 到 3600 内。在每次轮询时发送作为服务器端租约;如果没有运行器在其过期前注册,会话将使用新的订单 ID 重新提供。所有副本必须共享此值。 |


83编排器可以与 Anthropic 的控制平面保持一个常设 WebSocket 连接,以便托管的预会话流(例如存储库选择器和分支或 ref 解析器)可以到达仅从您的网络内部可路由的 GitHub Enterprise Server 主机。除非您设置 `--scm-connector-host`,否则连接器保持关闭。83编排器可以与 Anthropic 的控制平面保持一个常设 WebSocket 连接,以便托管的预会话流(例如存储库选择器和分支或 ref 解析器)可以到达仅从您的网络内部可路由的 GitHub Enterprise Server 主机。除非您设置 `--scm-connector-host`,否则连接器保持关闭。

84 84 

85| 标志 | 默认值 | 描述 |85| 标志 | 默认值 | 描述 |

86| :------------------------------------------------------ | :---------------------------- | :------------------------------------------------------------------------- |86| :- | :- | :- |

87| `--scm-connector-host <host[:port]>` | 未设置 | GitHub Enterprise Server 主机名以转发请求。端口默认为 `443`。设置此标志启用连接器。 |87| `--scm-connector-host <host[:port]>` | 未设置 | GitHub Enterprise Server 主机名以转发请求。端口默认为 `443`。设置此标志启用连接器。 |

88| `--scm-connector-id <n>` | 与 `--scm-connector-host` 一起需要 | 您的组织的 GitHub Enterprise Server 连接的数字 ID。启用连接器时,请与您的 Anthropic 帐户团队联系以获取该值。 |88| `--scm-connector-id <n>` | 与 `--scm-connector-host` 一起需要 | 您的组织的 GitHub Enterprise Server 连接的数字 ID。启用连接器时,请与您的 Anthropic 帐户团队联系以获取该值。 |

89| `--scm-connector-provider <slug>` | `ghe` | 标识提供程序的路径段,匹配 `^[a-z0-9-]{1,32}$`。 |89| `--scm-connector-provider <slug>` | `ghe` | 标识提供程序的路径段,匹配 `^[a-z0-9-]{1,32}$`。 |


99这些运行器设置仅从环境读取,涵盖大多数部署保留在默认值的行为:99这些运行器设置仅从环境读取,涵盖大多数部署保留在默认值的行为:

100 100 

101| 环境变量 | 默认值 | 描述 |101| 环境变量 | 默认值 | 描述 |

102| :----------------------------------------- | :---------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |102| :- | :- | :- |

103| `SELF_HOSTED_RUNNER_BG_RESULT_GRACE_MS` | `30000` | 运行器在后台任务完成后认为会话繁忙的时间,而读取结果的后续轮次尚未开始。[`--drain-wait-sec` 和 `--release-idle-session-min` 行](#runner-cli-flags)描述了保持在排空和空闲释放时的应用位置,[运行器生命周期](/docs/zh-CN/self-hosted-environments#runner-lifecycle)描述了它在 `--retire-at` 退休时的应用位置。`0` 或不可用的值回退到默认值,因此无法关闭保持。需要 Claude Code v2.1.228 或更高版本。 |103| `SELF_HOSTED_RUNNER_BG_RESULT_GRACE_MS` | `30000` | 运行器在后台任务完成后认为会话繁忙的时间,而读取结果的后续轮次尚未开始。[`--drain-wait-sec` 和 `--release-idle-session-min` 行](#runner-cli-flags)描述了保持在排空和空闲释放时的应用位置,[运行器生命周期](/docs/zh-CN/self-hosted-environments#runner-lifecycle)描述了它在 `--retire-at` 退休时的应用位置。`0` 或不可用的值回退到默认值,因此无法关闭保持。需要 Claude Code v2.1.228 或更高版本。 |

104| `SELF_HOSTED_RUNNER_HOST_CONFIG_DIR` | `~/.claude` | 捕获到运行器启动快照中并播种到每个会话的 `CLAUDE_CONFIG_DIR` 的目录;磁盘上的更改在运行器重新启动后应用。设置变量也会移动运行器读取 `.claude.json` 的位置以进行 [MCP 播种](/docs/zh-CN/self-hosted-environments-configuration#mcp-servers),因此设置它(包括其自己的默认值)会重新定位该查找;指向空目录以完全禁用播种。 |104| `SELF_HOSTED_RUNNER_HOST_CONFIG_DIR` | `~/.claude` | 捕获到运行器启动快照中并播种到每个会话的 `CLAUDE_CONFIG_DIR` 的目录;磁盘上的更改在运行器重新启动后应用。设置变量也会移动运行器读取 `.claude.json` 的位置以进行 [MCP 播种](/docs/zh-CN/self-hosted-environments-configuration#mcp-servers),因此设置它(包括其自己的默认值)会重新定位该查找;指向空目录以完全禁用播种。 |

105| `SELF_HOSTED_RUNNER_MAX_LIFETIME_GRACE_MS` | `900000` | 运行器在会话达到其 `--kill-session-after-min` 限制后等待的时间,以便运行中的轮次完成或释放完成,然后才终止会话 |105| `SELF_HOSTED_RUNNER_MAX_LIFETIME_GRACE_MS` | `900000` | 运行器在会话达到其 `--kill-session-after-min` 限制后等待的时间,以便运行中的轮次完成或释放完成,然后才终止会话 |


149每个运行器在与 `/healthz` 相同的端口上的 `GET /metrics` 处提供 Prometheus 指标。关键系列:149每个运行器在与 `/healthz` 相同的端口上的 `GET /metrics` 处提供 Prometheus 指标。关键系列:

150 150 

151| 系列 | 注释 |151| 系列 | 注释 |

152| :-------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |152| :- | :- |

153| `claude_code_self_hosted_runner_info{runner_id,version,client_label}` | 始终为 `1`;对舰队库存和版本漂移检测有用 |153| `claude_code_self_hosted_runner_info{runner_id,version,client_label}` | 始终为 `1`;对舰队库存和版本漂移检测有用 |

154| `claude_code_self_hosted_runner_capacity` | 配置的 `--capacity` |154| `claude_code_self_hosted_runner_capacity` | 配置的 `--capacity` |

155| `claude_code_self_hosted_runner_active_sessions` | 当前运行的会话 |155| `claude_code_self_hosted_runner_active_sessions` | 当前运行的会话 |


169编排器在与其 `/healthz` 相同的端口上的 `GET /metrics` 处提供自己的系列:169编排器在与其 `/healthz` 相同的端口上的 `GET /metrics` 处提供自己的系列:

170 170 

171| 系列 | 注释 |171| 系列 | 注释 |

172| :-------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------- |172| :- | :- |

173| `claude_code_self_hosted_orchestrator_info{version,pool_id,orchestrator_uuid,hostname}` | 始终为 `1` |173| `claude_code_self_hosted_orchestrator_info{version,pool_id,orchestrator_uuid,hostname}` | 始终为 `1` |

174| `claude_code_self_hosted_orchestrator_connected` | 当最近一次轮询成功时为 `1`;在任何失败的轮询后下降到 `0`,无论失败类型如何 |174| `claude_code_self_hosted_orchestrator_connected` | 当最近一次轮询成功时为 `1`;在任何失败的轮询后下降到 `0`,无论失败类型如何 |

175| `claude_code_self_hosted_orchestrator_last_poll_age_seconds` | 自上次轮询尝试以来的秒数,成功或失败,与运行器的同名指标不同,后者测量自上次成功以来;与 `connected` 配对以捕获失败的轮询。编排器的轮询循环等待钩子执行,因此在 `--hook-timeout` 加边距(默认值约 90 秒)之上发出警报,而不是固定的 60。 |175| `claude_code_self_hosted_orchestrator_last_poll_age_seconds` | 自上次轮询尝试以来的秒数,成功或失败,与运行器的同名指标不同,后者测量自上次成功以来;与 `connected` 配对以捕获失败的轮询。编排器的轮询循环等待钩子执行,因此在 `--hook-timeout` 加边距(默认值约 90 秒)之上发出警报,而不是固定的 60。 |


325对应目标使用此表中的系列而不是终端计数器:325对应目标使用此表中的系列而不是终端计数器:

326 326 

327| 目标 | 使用 |327| 目标 | 使用 |

328| :-- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |328| :- | :- |

329| 吞吐量 | `claude_code_self_hosted_orchestrator_spawn_hooks_total{result="ok"}`,长期编排器上的计数器,每个成功的 `spawn-runner` 钩子增加一次,在 `rate()` 下保持有意义。它计数钩子调用而不是会话,因此预热和为同一会话重复生成使其与会话计数分散。 |329| 吞吐量 | `claude_code_self_hosted_orchestrator_spawn_hooks_total{result="ok"}`,长期编排器上的计数器,每个成功的 `spawn-runner` 钩子增加一次,在 `rate()` 下保持有意义。它计数钩子调用而不是会话,因此预热和为同一会话重复生成使其与会话计数分散。 |

330| 利用率 | `sum(claude_code_self_hosted_runner_active_sessions)` 对 `sum(claude_code_self_hosted_runner_capacity)`,两个仪表在每次抓取时有效,无论运行器生命周期如何 |330| 利用率 | `sum(claude_code_self_hosted_runner_active_sessions)` 对 `sum(claude_code_self_hosted_runner_capacity)`,两个仪表在每次抓取时有效,无论运行器生命周期如何 |

331| 积压 | `claude_code_self_hosted_orchestrator_pool_pending_sessions` 用于队列深度,以及 `claude_code_self_hosted_orchestrator_queue_circuit_broken_sessions`,如果高于零则发出警报 |331| 积压 | `claude_code_self_hosted_orchestrator_pool_pending_sessions` 用于队列深度,以及 `claude_code_self_hosted_orchestrator_queue_circuit_broken_sessions`,如果高于零则发出警报 |

Details

29Claude Code 支持两种集中配置方法。服务器管理的设置从 Anthropic 的服务器传递配置。[端点管理的设置](/docs/zh-CN/managed-settings#delivery-mechanisms)通过本机操作系统策略(macOS 托管首选项、Windows 注册表)或托管设置文件直接部署到设备。29Claude Code 支持两种集中配置方法。服务器管理的设置从 Anthropic 的服务器传递配置。[端点管理的设置](/docs/zh-CN/managed-settings#delivery-mechanisms)通过本机操作系统策略(macOS 托管首选项、Windows 注册表)或托管设置文件直接部署到设备。

30 30 

31| 方法 | 最适合 | 安全模型 |31| 方法 | 最适合 | 安全模型 |

32| :--------------------------------------------------------- | :-------------------- | :-------------------------------------------------- |32| :- | :- | :- |

33| **服务器管理的设置** | 没有 MDM 的组织,或非托管设备上的用户 | Claude Code 在启动时从 Anthropic 的服务器获取的设置,并在会话期间每小时刷新一次 |33| **服务器管理的设置** | 没有 MDM 的组织,或非托管设备上的用户 | Claude Code 在启动时从 Anthropic 的服务器获取的设置,并在会话期间每小时刷新一次 |

34| **[端点管理的设置](/docs/zh-CN/managed-settings#delivery-mechanisms)** | 具有 MDM 或端点管理的组织 | 通过 MDM 配置文件、注册表策略或托管设置文件部署到设备的设置 |34| **[端点管理的设置](/docs/zh-CN/managed-settings#delivery-mechanisms)** | 具有 MDM 或端点管理的组织 | 通过 MDM 配置文件、注册表策略或托管设置文件部署到设备的设置 |

35 35 


363服务器管理的设置提供集中的策略强制执行,但它们作为客户端控制运行,而不是安全边界。在非托管设备上,用户不需要管理员或 sudo 访问权限来绕过它们。363服务器管理的设置提供集中的策略强制执行,但它们作为客户端控制运行,而不是安全边界。在非托管设备上,用户不需要管理员或 sudo 访问权限来绕过它们。

364 364 

365| 场景 | 行为 |365| 场景 | 行为 |

366| :------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |366| :- | :- |

367| 用户编辑缓存的设置文件 | 篡改的文件在启动时应用,但 Claude Code 在服务器确认有效负载前暂扣的[值](#fetch-and-caching-behavior)除外。下次服务器获取会恢复正确的设置,但[仅在下次启动时应用的键](#fetch-and-caching-behavior)除外,例如 `model` 或添加到 `env` 块的变量,这些会保持有效直到重新启动 |367| 用户编辑缓存的设置文件 | 篡改的文件在启动时应用,但 Claude Code 在服务器确认有效负载前暂扣的[值](#fetch-and-caching-behavior)除外。下次服务器获取会恢复正确的设置,但[仅在下次启动时应用的键](#fetch-and-caching-behavior)除外,例如 `model` 或添加到 `env` 块的变量,这些会保持有效直到重新启动 |

368| 用户删除缓存的设置文件 | 发生[首次启动行为](#fetch-and-caching-behavior) |368| 用户删除缓存的设置文件 | 发生[首次启动行为](#fetch-and-caching-behavior) |

369| 用户运行修改的 Claude Code 二进制文件 | 能够运行修改的客户端的用户可以绕过任何客户端控制 |369| 用户运行修改的 Claude Code 二进制文件 | 能够运行修改的客户端的用户可以绕过任何客户端控制 |

sessions.md +7 −7

Details

17会话在您工作时持续保存到[本地文本记录文件](#export-and-locate-session-data),因此您可以在退出或运行 `/clear` 后返回到一个会话。使用这些入口点:17会话在您工作时持续保存到[本地文本记录文件](#export-and-locate-session-data),因此您可以在退出或运行 `/clear` 后返回到一个会话。使用这些入口点:

18 18 

19| 命令 | 功能 |19| 命令 | 功能 |

20| :---------------------------------- | :--------------------------------------------------------------- |20| :- | :- |

21| `claude --continue` | 恢复当前目录中最近的会话 |21| `claude --continue` | 恢复当前目录中最近的会话 |

22| `claude --resume` | 打开[会话选择器](#use-the-session-picker) |22| `claude --resume` | 打开[会话选择器](#use-the-session-picker) |

23| `claude --resume <name>` | 直接恢复命名的会话 |23| `claude --resume <name>` | 直接恢复命名的会话 |


61在非交互式和 VS Code 路径上恢复计划模式需要 Claude Code v2.1.246 或更高版本。每一行命名会话结束的权限模式、您通过哪个终端、非交互式和 VS Code 路径恢复它,以及 Claude Code 启动恢复会话的权限模式。61在非交互式和 VS Code 路径上恢复计划模式需要 Claude Code v2.1.246 或更高版本。每一行命名会话结束的权限模式、您通过哪个终端、非交互式和 VS Code 路径恢复它,以及 Claude Code 启动恢复会话的权限模式。

62 62 

63| 会话结束于 | 您如何恢复 | 恢复后的权限模式 |63| 会话结束于 | 您如何恢复 | 恢复后的权限模式 |

64| :------------------ | :------------------------------------------ | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |64| :- | :- | :- |

65| `bypassPermissions` | 终端 | 新会话会启动的权限模式。要再次[绕过权限](/docs/zh-CN/permission-modes#skip-all-checks-with-bypasspermissions-mode),在启动时使用其启动标志之一或[用户、`--settings` 或托管设置](/docs/zh-CN/settings-reference#permissions-defaultmode)中的 `permissions.defaultMode: "bypassPermissions"` 启用它 |65| `bypassPermissions` | 终端 | 新会话会启动的权限模式。要再次[绕过权限](/docs/zh-CN/permission-modes#skip-all-checks-with-bypasspermissions-mode),在启动时使用其启动标志之一或[用户、`--settings` 或托管设置](/docs/zh-CN/settings-reference#permissions-defaultmode)中的 `permissions.defaultMode: "bypassPermissions"` 启用它 |

66| `plan` | 终端 | 新会话会启动的权限模式 |66| `plan` | 终端 | 新会话会启动的权限模式 |

67| `auto` | 终端 | `auto`,仅当您的帐户仍然满足[自动模式要求](/docs/zh-CN/permission-modes#eliminate-prompts-with-auto-mode)时 |67| `auto` | 终端 | `auto`,仅当您的帐户仍然满足[自动模式要求](/docs/zh-CN/permission-modes#eliminate-prompts-with-auto-mode)时 |


115按名称恢复会跨当前存储库及其 worktrees 解析。两种形式都查找精确匹配并直接恢复它,即使它位于不同的 worktree 中:115按名称恢复会跨当前存储库及其 worktrees 解析。两种形式都查找精确匹配并直接恢复它,即使它位于不同的 worktree 中:

116 116 

117| 命令 | 精确匹配 | 模糊名称 |117| 命令 | 精确匹配 | 模糊名称 |

118| :----------------------- | :--- | :----------------------------- |118| :- | :- | :- |

119| `claude --resume <name>` | 直接恢复 | 打开会话选择器,名称预填充为搜索词 |119| `claude --resume <name>` | 直接恢复 | 打开会话选择器,名称预填充为搜索词 |

120| `/resume <name>` | 直接恢复 | 报告错误;运行不带参数的 `/resume` 打开会话选择器 |120| `/resume <name>` | 直接恢复 | 报告错误;运行不带参数的 `/resume` 打开会话选择器 |

121 121 


126为会话提供描述性名称,以便在会话选择器中可以找到它们,并可以按名称恢复。当您并行处理多个任务时,这一点最重要。126为会话提供描述性名称,以便在会话选择器中可以找到它们,并可以按名称恢复。当您并行处理多个任务时,这一点最重要。

127 127 

128| 时间 | 如何设置名称 |128| 时间 | 如何设置名称 |

129| :---------------------- | :---------------------------------------------------------------------------------------------------------------------------------- |129| :- | :- |

130| 启动时 | `claude -n auth-refactor` |130| 启动时 | `claude -n auth-refactor` |

131| 在会话期间 | `/rename auth-refactor`。名称也会出现在提示栏上 |131| 在会话期间 | `/rename auth-refactor`。名称也会出现在提示栏上 |

132| 从会话选择器 | 突出显示会话并按 `Ctrl+R` |132| 从会话选择器 | 突出显示会话并按 `Ctrl+R` |


162在会话内运行 `/resume`,或不带参数运行 `claude --resume`,以打开交互式会话选择器。使用这些快捷键导航、搜索和扩展列表:162在会话内运行 `/resume`,或不带参数运行 `claude --resume`,以打开交互式会话选择器。使用这些快捷键导航、搜索和扩展列表:

163 163 

164| 快捷键 | 操作 |164| 快捷键 | 操作 |

165| :----------------------- | :------------------------------------------------------------------------------- |165| :- | :- |

166| `↑` / `↓` | 在会话之间导航 |166| `↑` / `↓` | 在会话之间导航 |

167| `→` / `←` | 展开或折叠分组的会话 |167| `→` / `←` | 展开或折叠分组的会话 |

168| `Enter` | 恢复突出显示的会话 |168| `Enter` | 恢复突出显示的会话 |


205`/branch` 复制文本记录并将运行的 Claude Code 进程切换为写入到它。这种区别决定了分支继承的内容:205`/branch` 复制文本记录并将运行的 Claude Code 进程切换为写入到它。这种区别决定了分支继承的内容:

206 206 

207| 状态 | 在 `/branch` 之后 |207| 状态 | 在 `/branch` 之后 |

208| :---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------ |208| :- | :- |

209| 对话历史 | 复制到分支中,直到您运行 `/branch` 的点 |209| 对话历史 | 复制到分支中,直到您运行 `/branch` 的点 |

210| "允许此会话"权限授予 | 转移;分支在同一进程中运行,因此您现有的授予仍然适用。如果您使用 `--fork-session` 分叉到单独的进程中,新进程启动时没有它们,您在那里重新批准 |210| "允许此会话"权限授予 | 转移;分支在同一进程中运行,因此您现有的授予仍然适用。如果您使用 `--fork-session` 分叉到单独的进程中,新进程启动时没有它们,您在那里重新批准 |

211| 进行中的 [background subagents](/docs/zh-CN/sub-agents#run-subagents-in-foreground-or-background) 和 [background Bash commands](/docs/zh-CN/interactive-mode#background-bash-commands) | 继续运行。它们的输出出现在您切换到的新分支中,而不是在原始会话中 |211| 进行中的 [background subagents](/docs/zh-CN/sub-agents#run-subagents-in-foreground-or-background) 和 [background Bash commands](/docs/zh-CN/interactive-mode#background-bash-commands) | 继续运行。它们的输出出现在您切换到的新分支中,而不是在原始会话中 |


259位置、保留期和写入行为是可配置的:259位置、保留期和写入行为是可配置的:

260 260 

261| 目的 | 设置 | 位置 |261| 目的 | 设置 | 位置 |

262| ----------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | -------------------------- |262| - | - | - |

263| 将存储移出 `~/.claude` | [`CLAUDE_CONFIG_DIR`](/docs/zh-CN/env-vars) | 环境变量 |263| 将存储移出 `~/.claude` | [`CLAUDE_CONFIG_DIR`](/docs/zh-CN/env-vars) | 环境变量 |

264| [自己命名 `<project>` 目录](#name-the-project-directory-yourself) | [`CLAUDE_CODE_PROJECT_DIR_NAME`](/docs/zh-CN/env-vars) | 环境变量 |264| [自己命名 `<project>` 目录](#name-the-project-directory-yourself) | [`CLAUDE_CODE_PROJECT_DIR_NAME`](/docs/zh-CN/env-vars) | 环境变量 |

265| 更改 30 天保留期 | [`cleanupPeriodDays`](/docs/zh-CN/settings-reference#cleanupperioddays) | `settings.json` |265| 更改 30 天保留期 | [`cleanupPeriodDays`](/docs/zh-CN/settings-reference#cleanupperioddays) | `settings.json` |

settings.md +2 −2

Details

403Claude Code 从四个文件读取设置,组织也可以从 claude.ai 控制台提供托管设置。每个来源都有一个作用域:设置应用的人员和项目范围,可能是仅限于你、项目中的所有人,或组织中的所有人。403Claude Code 从四个文件读取设置,组织也可以从 claude.ai 控制台提供托管设置。每个来源都有一个作用域:设置应用的人员和项目范围,可能是仅限于你、项目中的所有人,或组织中的所有人。

404 404 

405| 作用域 | 文件 | 影响范围 | 用途 |405| 作用域 | 文件 | 影响范围 | 用途 |

406| :--- | :----------------------------------------------------------------------------- | :----------------------------------------------------------------------------------- | :---------------------------- |406| :- | :- | :- | :- |

407| 用户 | `~/.claude/settings.json` | 你在这台机器上的每个项目中 | 个人偏好:主题、编辑器模式、默认模型、你自己的权限规则 |407| 用户 | `~/.claude/settings.json` | 你在这台机器上的每个项目中 | 个人偏好:主题、编辑器模式、默认模型、你自己的权限规则 |

408| 共享项目 | `.claude/settings.json` | 包含该文件的文件夹中的所有人。在 git 仓库中,提交它以便队友获得 | 团队权限、hooks、plugins 和项目需要的环境变量 |408| 共享项目 | `.claude/settings.json` | 包含该文件的文件夹中的所有人。在 git 仓库中,提交它以便队友获得 | 团队权限、hooks、plugins 和项目需要的环境变量 |

409| 项目本地 | `.claude/settings.local.json` | 仅在这个项目中的你。Claude Code 在创建文件时将其排除在 git 之外;如果你手动创建,请自己添加到 `.gitignore` | 单个项目的个人覆盖,以及在共享前的测试 |409| 项目本地 | `.claude/settings.local.json` | 仅在这个项目中的你。Claude Code 在创建文件时将其排除在 git 之外;如果你手动创建,请自己添加到 `.gitignore` | 单个项目的个人覆盖,以及在共享前的测试 |


788对于少数几个值限制会话的键,Claude Code 尊重来自否则无法覆盖托管设置的作用域的限制值。在此表中找到键以查看它尊重哪个值以及从哪里。788对于少数几个值限制会话的键,Claude Code 尊重来自否则无法覆盖托管设置的作用域的限制值。在此表中找到键以查看它尊重哪个值以及从哪里。

789 789 

790| 键 | Claude Code 尊重的值 | 注释 |790| 键 | Claude Code 尊重的值 | 注释 |

791| :--------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------- |791| :- | :- | :- |

792| [`disableClaudeAiConnectors`](/docs/zh-CN/settings-reference#disableclaudeaiconnectors) | 来自任何作用域的 `true` | 即使托管来源设置 `false` 也被尊重 |792| [`disableClaudeAiConnectors`](/docs/zh-CN/settings-reference#disableclaudeaiconnectors) | 来自任何作用域的 `true` | 即使托管来源设置 `false` 也被尊重 |

793| [`enableArtifact`](/docs/zh-CN/settings-reference#enableartifact) | 来自任何作用域的 `false`,以及来自任何作用域的 `disableArtifact: true` | 即使托管来源设置 `true` 也被尊重;没有什么打开[Artifact 工具](/docs/zh-CN/artifacts#disable-artifacts)。需要 Claude Code v2.1.242 或更高版本 |793| [`enableArtifact`](/docs/zh-CN/settings-reference#enableartifact) | 来自任何作用域的 `false`,以及来自任何作用域的 `disableArtifact: true` | 即使托管来源设置 `true` 也被尊重;没有什么打开[Artifact 工具](/docs/zh-CN/artifacts#disable-artifacts)。需要 Claude Code v2.1.242 或更高版本 |

794| [`isolatePeerMachines`](/docs/zh-CN/settings-reference#isolatepeermachines) | 来自任何作用域的 `true` | 即使托管来源设置 `false` 也被尊重 |794| [`isolatePeerMachines`](/docs/zh-CN/settings-reference#isolatepeermachines) | 来自任何作用域的 `true` | 即使托管来源设置 `false` 也被尊重 |

Details

590/>590/>

591 591 

592| 键 | 描述 | 主题 | 范围 |592| 键 | 描述 | 主题 | 范围 |

593| :---------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------- | :---------------------- |593| :- | :- | :- | :- |

594| [`advisorModel`](#advisormodel) | 选择当 Claude 使用[顾问工具](/docs/zh-CN/advisor)时哪个模型来回答 | 模型和响应 | Any file |594| [`advisorModel`](#advisormodel) | 选择当 Claude 使用[顾问工具](/docs/zh-CN/advisor)时哪个模型来回答 | 模型和响应 | Any file |

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 |


1133该键采用两个字段,一个用于行本身,一个用于它们是替换内置阵容还是添加到它。1133该键采用两个字段,一个用于行本身,一个用于它们是替换内置阵容还是添加到它。

1134 1134 

1135| Field | Type | What it does |1135| Field | Type | What it does |

1136| :---------------------- | :------------------------------------------------ | :--------------------------------------------------------------------------------------------------- |1136| :- | :- | :- |

1137| `options` | 行的数组,每个都有必需的 `model` 和可选的 `label` 和 `description` | 选择器显示的行,按此顺序,除了灰显的行移到底部。没有 `label`,Claude Code 用它知道的模型的内置名称标记行,或模型 ID 否则,没有 `description` 它写一个通用的第二行 |1137| `options` | 行的数组,每个都有必需的 `model` 和可选的 `label` 和 `description` | 选择器显示的行,按此顺序,除了灰显的行移到底部。没有 `label`,Claude Code 用它知道的模型的内置名称标记行,或模型 ID 否则,没有 `description` 它写一个通用的第二行 |

1138| `replaceBuiltInOptions` | Boolean,默认 `false` | 将其设置为 `true` 以仅显示这些行、**默认**和会话已在使用的模型的行。保留未设置以在内置阵容之后添加这些行 |1138| `replaceBuiltInOptions` | Boolean,默认 `false` | 将其设置为 `true` 以仅显示这些行、**默认**和会话已在使用的模型的行。保留未设置以在内置阵容之后添加这些行 |

1139 1139 


1190</h4>1190</h4>

1191 1191 

1192| Field | Type | What it does |1192| Field | Type | What it does |

1193| :----------- | :-------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------ |1193| :- | :- | :- |

1194| `multiplier` | 大于 0 且最多 10 的数字 | 缩放 Claude Code 计算的每个成本,无论 `overrides` 行是否覆盖它。低于 1 是折扣,高于 1 是加价 |1194| `multiplier` | 大于 0 且最多 10 的数字 | 缩放 Claude Code 计算的每个成本,无论 `overrides` 行是否覆盖它。低于 1 是折扣,高于 1 是加价 |

1195| `overrides` | 模型 ID 到具有 `input`、`output`、`cacheRead` 和 `cacheWrite` 的费率对象的映射,每个 0 到 10000 | 该模型的美元每百万令牌费率,全部四个必需。`cacheWrite` 涵盖五分钟和一小时缓存写入。请参阅[`modelPricing` 行适用于哪些模型](#which-models-a-modelpricing-row-applies-to) |1195| `overrides` | 模型 ID 到具有 `input`、`output`、`cacheRead` 和 `cacheWrite` 的费率对象的映射,每个 0 到 10000 | 该模型的美元每百万令牌费率,全部四个必需。`cacheWrite` 涵盖五分钟和一小时缓存写入。请参阅[`modelPricing` 行适用于哪些模型](#which-models-a-modelpricing-row-applies-to) |

1196 1196 


1535每行显示一个规则形状及其匹配的内容。1535每行显示一个规则形状及其匹配的内容。

1536 1536 

1537| 规则 | 它匹配的内容 |1537| 规则 | 它匹配的内容 |

1538| :----------------------------- | :------------------ |1538| :- | :- |

1539| `Bash` | 每个 Bash 命令 |1539| `Bash` | 每个 Bash 命令 |

1540| `Bash(npm run *)` | 以 `npm run` 开头的命令 |1540| `Bash(npm run *)` | 以 `npm run` 开头的命令 |

1541| `Read(./.env)` | 读取 `.env` 文件 |1541| `Read(./.env)` | 读取 `.env` 文件 |


1932`allowWrite`、`denyWrite`、`denyRead`、`allowRead` 和 [`credentials.files`](#sandbox-credentials-files) 中的路径按其前缀解析:1932`allowWrite`、`denyWrite`、`denyRead`、`allowRead` 和 [`credentials.files`](#sandbox-credentials-files) 中的路径按其前缀解析:

1933 1933 

1934| 前缀 | 含义 | 示例 |1934| 前缀 | 含义 | 示例 |

1935| :-------- | :------------------------------------ | :---------------------------------------------------------------- |1935| :- | :- | :- |

1936| `/` | 从文件系统根目录的绝对路径 | `/tmp/build` 保持 `/tmp/build` |1936| `/` | 从文件系统根目录的绝对路径 | `/tmp/build` 保持 `/tmp/build` |

1937| `~/` | 相对于主目录 | `~/.kube` 变为 `$HOME/.kube` |1937| `~/` | 相对于主目录 | `~/.kube` 变为 `$HOME/.kube` |

1938| `./` 或无前缀 | 相对于项目根目录(用于项目设置)或 `~/.claude`(用于用户设置) | `.claude/settings.json` 中的 `./output` 解析为 `<project-root>/output` |1938| `./` 或无前缀 | 相对于项目根目录(用于项目设置)或 `~/.claude`(用于用户设置) | `.claude/settings.json` 中的 `./output` 解析为 `<project-root>/output` |


2335`mask` 条目接受这些可选字段。没有 `extract` 或 `decode`,Claude Code 用一个哨兵替换整个文件内容。在启用文件系统隔离的 macOS 上,Claude Code 在 `extract` 或 `decode` 运行之前将 `mask` 条目应用为 `deny`;请参阅 [Mask credential files](/docs/zh-CN/sandboxing#mask-credential-files)。2335`mask` 条目接受这些可选字段。没有 `extract` 或 `decode`,Claude Code 用一个哨兵替换整个文件内容。在启用文件系统隔离的 macOS 上,Claude Code 在 `extract` 或 `decode` 运行之前将 `mask` 条目应用为 `deny`;请参阅 [Mask credential files](/docs/zh-CN/sandboxing#mask-credential-files)。

2336 2336 

2337| 字段 | 类型 | 它做什么 |2337| 字段 | 类型 | 它做什么 |

2338| :----------------- | :----------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |2338| :- | :- | :- |

2339| `extract` | 字符串,至少有一个捕获组的正则表达式 | 仅掩盖每个匹配的第 1 组捕获的文本,因此文件的其余部分保持可解析。设置 `decode` 后,Claude Code 检查每个捕获作为可能的 JWT,而不是直接替换它。需要 v2.1.221 或更高版本 |2339| `extract` | 字符串,至少有一个捕获组的正则表达式 | 仅掩盖每个匹配的第 1 组捕获的文本,因此文件的其余部分保持可解析。设置 `decode` 后,Claude Code 检查每个捕获作为可能的 JWT,而不是直接替换它。需要 v2.1.221 或更高版本 |

2340| `onExtractNoMatch` | `"warn"`、`"deny"` 或 `"error"`;默认 `"warn"` | 当 `extract` 或 `decode` 找不到要掩盖的内容时会发生什么。`warn` 在沙箱内保持文件可读,`deny` 使其不可读,`error` 停止沙箱设置直到您修复配置。当读取块不被强制执行时,Claude Code 将 `deny` 视为 `error`,因为您 [disable filesystem isolation](/docs/zh-CN/sandboxing#disable-filesystem-isolation) 或 [`sandbox.filesystem.allowRead`](#sandbox-filesystem-allowread) 条目重新打开路径。需要 v2.1.221 或更高版本;`decode` 情况需要 v2.1.224 或更高版本 |2340| `onExtractNoMatch` | `"warn"`、`"deny"` 或 `"error"`;默认 `"warn"` | 当 `extract` 或 `decode` 找不到要掩盖的内容时会发生什么。`warn` 在沙箱内保持文件可读,`deny` 使其不可读,`error` 停止沙箱设置直到您修复配置。当读取块不被强制执行时,Claude Code 将 `deny` 视为 `error`,因为您 [disable filesystem isolation](/docs/zh-CN/sandboxing#disable-filesystem-isolation) 或 [`sandbox.filesystem.allowRead`](#sandbox-filesystem-allowread) 条目重新打开路径。需要 v2.1.221 或更高版本;`decode` 情况需要 v2.1.224 或更高版本 |

2341| `decode` | 字符串 `"jwt"` | 在文件中查找 JSON Web Tokens (JWTs),使用内置模式或设置 `extract` 时,验证每个候选,并用结构有效的假令牌替换它,因此沙箱内解码令牌的代码保持工作。当没有候选验证时,`onExtractNoMatch` 管理结果。需要 v2.1.224 或更高版本 |2341| `decode` | 字符串 `"jwt"` | 在文件中查找 JSON Web Tokens (JWTs),使用内置模式或设置 `extract` 时,验证每个候选,并用结构有效的假令牌替换它,因此沙箱内解码令牌的代码保持工作。当没有候选验证时,`onExtractNoMatch` 管理结果。需要 v2.1.224 或更高版本 |


2410`mask` 条目接受这些可选字段。没有 `extract` 或 `decode`,Claude Code 用一个哨兵替换整个值。`extract` 和 `decode` 不能在同一条目上组合。2410`mask` 条目接受这些可选字段。没有 `extract` 或 `decode`,Claude Code 用一个哨兵替换整个值。`extract` 和 `decode` 不能在同一条目上组合。

2411 2411 

2412| 字段 | 类型 | 它做什么 |2412| 字段 | 类型 | 它做什么 |

2413| :----------------- | :----------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |2413| :- | :- | :- |

2414| `extract` | 字符串,至少有一个捕获组的正则表达式 | 仅掩盖每个匹配的第 1 组捕获的文本,例如 `DATABASE_URL` 连接字符串内的密码,因此值的其余部分保持可解析。需要 v2.1.224 或更高版本 |2414| `extract` | 字符串,至少有一个捕获组的正则表达式 | 仅掩盖每个匹配的第 1 组捕获的文本,例如 `DATABASE_URL` 连接字符串内的密码,因此值的其余部分保持可解析。需要 v2.1.224 或更高版本 |

2415| `onExtractNoMatch` | `"warn"`、`"deny"` 或 `"error"`;默认 `"warn"`。在带有 `decode` 的条目上,仅接受 `"warn"` | 当 `extract` 匹配不到任何内容时会发生什么。`warn` 未掩盖地传递变量,`deny` 在沙箱内取消设置它,`error` 停止沙箱设置直到您修复配置。需要 v2.1.224 或更高版本 |2415| `onExtractNoMatch` | `"warn"`、`"deny"` 或 `"error"`;默认 `"warn"`。在带有 `decode` 的条目上,仅接受 `"warn"` | 当 `extract` 匹配不到任何内容时会发生什么。`warn` 未掩盖地传递变量,`deny` 在沙箱内取消设置它,`error` 停止沙箱设置直到您修复配置。需要 v2.1.224 或更高版本 |

2416| `decode` | 字符串 `"jwt"` | 验证整个值是 JWT 并用结构有效的假令牌替换它,因此沙箱内解码令牌的代码保持工作;代理在出口上替换整个真实令牌。不验证的值未掩盖地传递并带有警告。需要 v2.1.224 或更高版本 |2416| `decode` | 字符串 `"jwt"` | 验证整个值是 JWT 并用结构有效的假令牌替换它,因此沙箱内解码令牌的代码保持工作;代理在出口上替换整个真实令牌。不验证的值未掩盖地传递并带有警告。需要 v2.1.224 或更高版本 |


3389每个条目的 URL、标签和徽章计数受以下限制:3389每个条目的 URL、标签和徽章计数受以下限制:

3390 3390 

3391| 约束 | 行为 |3391| 约束 | 行为 |

3392| :----- | :--------------------------------------------------------------------------------------------------------------------------------------------- |3392| :- | :- |

3393| URL 源 | 捕获的值是 URL 编码的,构造的 URL 必须共享模板的字面源。捕获可以填充路径段或查询值,但不能改变链接指向的位置 |3393| URL 源 | 捕获的值是 URL 编码的,构造的 URL 必须共享模板的字面源。捕获可以填充路径段或查询值,但不能改变链接指向的位置 |

3394| URL 长度 | 长于 2048 个字符的构造 URL 被丢弃 |3394| URL 长度 | 长于 2048 个字符的构造 URL 被丢弃 |

3395| URL 方案 | 必须是 `https`、`http` 或公认的编辑器或工作区深层链接方案:`vscode`、`vscode-insiders`、`cursor`、`windsurf`、`zed`、`jetbrains`、`idea`、`slack`、`linear`、`notion`、`figma` |3395| URL 方案 | 必须是 `https`、`http` 或公认的编辑器或工作区深层链接方案:`vscode`、`vscode-insiders`、`cursor`、`windsurf`、`zed`、`jetbrains`、`idea`、`slack`、`linear`、`notion`、`figma` |


3578每个 `tips` 条目是纯字符串或具有这些字段的对象:3578每个 `tips` 条目是纯字符串或具有这些字段的对象:

3579 3579 

3580| 字段 | 必需 | 描述 |3580| 字段 | 必需 | 描述 |

3581| :----------------- | :- | :--------------------------------------------------------------------------------------------------------- |3581| :- | :- | :- |

3582| `id` | 是 | 最多 64 个字母、数字、`.`、`_` 或 `-`。Claude Code 在其上键入提示的显示历史,因此提示的冷却期在重新排序列表后仍然存在。在两个具有相同 id 的条目中,Claude Code 使用第一个 |3582| `id` | 是 | 最多 64 个字母、数字、`.`、`_` 或 `-`。Claude Code 在其上键入提示的显示历史,因此提示的冷却期在重新排序列表后仍然存在。在两个具有相同 id 的条目中,Claude Code 使用第一个 |

3583| `text` | 是 | 提示,最多 500 个字符的一行。Claude Code 剥离 ANSI 转义和控制字符,并折叠空格 |3583| `text` | 是 | 提示,最多 500 个字符的一行。Claude Code 剥离 ANSI 转义和控制字符,并折叠空格 |

3584| `cooldownSessions` | 否 | Claude Code 在再次显示提示之前等待的会话数,`0` 到 `1000`,默认 `0` |3584| `cooldownSessions` | 否 | Claude Code 在再次显示提示之前等待的会话数,`0` 到 `1000`,默认 `0` |


4652下面每个条目显示每个源类型的一个允许列表条目及其接受的字段。大多数类型精确匹配;`hostPattern` 和 `pathPattern` 按正则表达式匹配,`github` 条目可以使用 [owner 通配符](#owner-wildcards)。4652下面每个条目显示每个源类型的一个允许列表条目及其接受的字段。大多数类型精确匹配;`hostPattern` 和 `pathPattern` 按正则表达式匹配,`github` 条目可以使用 [owner 通配符](#owner-wildcards)。

4653 4653 

4654| Source | Example entry | Fields |4654| Source | Example entry | Fields |

4655| :------------ | :------------------------------------------------------------------------------------------------------------------------------ | :----------------------------------------------------------------------------- |4655| :- | :- | :- |

4656| `github` | `{ "source": "github", "repo": "acme-corp/plugins", "ref": "main", "path": "marketplace" }` | `repo` 必需;`ref` 是分支或标签;`path` 是子目录 |4656| `github` | `{ "source": "github", "repo": "acme-corp/plugins", "ref": "main", "path": "marketplace" }` | `repo` 必需;`ref` 是分支或标签;`path` 是子目录 |

4657| `git` | `{ "source": "git", "url": "https://gitlab.example.com/tools/plugins.git", "ref": "production" }` | `url` 必需;`ref` 和 `path` 与 `github` 相同 |4657| `git` | `{ "source": "git", "url": "https://gitlab.example.com/tools/plugins.git", "ref": "production" }` | `url` 必需;`ref` 和 `path` 与 `github` 相同 |

4658| `url` | `{ "source": "url", "url": "https://plugins.example.com/marketplace.json", "headers": { "Authorization": "Bearer ${TOKEN}" } }` | `url` 必需;`headers` 为经过身份验证的访问添加 HTTP 标头 |4658| `url` | `{ "source": "url", "url": "https://plugins.example.com/marketplace.json", "headers": { "Authorization": "Bearer ${TOKEN}" } }` | `url` 必需;`headers` 为经过身份验证的访问添加 HTTP 标头 |


4697两个设置之间的匹配规则不同:4697两个设置之间的匹配规则不同:

4698 4698 

4699| Rule | `strictKnownMarketplaces` | `blockedMarketplaces` |4699| Rule | `strictKnownMarketplaces` | `blockedMarketplaces` |

4700| --------- | ------------------------------------------------------ | ------------------------------------ |4700| - | - | - |

4701| 匹配源拼写 | 仅 `owner/repo` 形式。克隆同一存储库的 git URL 不匹配 | 任何拼写,包括解析为同一 github.com 存储库的 git URL |4701| 匹配源拼写 | 仅 `owner/repo` 形式。克隆同一存储库的 git URL 不匹配 | 任何拼写,包括解析为同一 github.com 存储库的 git URL |

4702| Owner 大小写 | 区分大小写,如精确条目匹配 | 不区分大小写 |4702| Owner 大小写 | 区分大小写,如精确条目匹配 | 不区分大小写 |

4703| `ref` | 遵循精确条目规则:带 `ref` 的条目仅匹配具有该精确 ref 的源,没有的条目仅匹配不指定 ref 的源 | 没有 `ref` 的条目阻止它匹配的存储库的所有 refs |4703| `ref` | 遵循精确条目规则:带 `ref` 的条目仅匹配具有该精确 ref 的源,没有的条目仅匹配不指定 ref 的源 | 没有 `ref` 的条目阻止它匹配的存储库的所有 refs |


4747两个键做不同的工作。此表比较它们:4747两个键做不同的工作。此表比较它们:

4748 4748 

4749| Aspect | `strictKnownMarketplaces` | `extraKnownMarketplaces` |4749| Aspect | `strictKnownMarketplaces` | `extraKnownMarketplaces` |

4750| ----------------- | ------------------------- | ------------------------------- |4750| - | - | - |

4751| Purpose | 组织策略执行 | 团队便利 |4751| Purpose | 组织策略执行 | 团队便利 |

4752| Settings file | 仅托管设置 | 任何设置文件 |4752| Settings file | 仅托管设置 | 任何设置文件 |

4753| Behavior | 阻止非允许列表的添加 | 注册缺失的 marketplaces |4753| Behavior | 阻止非允许列表的添加 | 注册缺失的 marketplaces |


6265在 `"merge"` 下,Claude Code 按其类型合并每个密钥。此表给出每种类型的规则。限制允许列表、整体取值和仅最高源行命名它们覆盖的每个密钥,其他行给出示例:6265在 `"merge"` 下,Claude Code 按其类型合并每个密钥。此表给出每种类型的规则。限制允许列表、整体取值和仅最高源行命名它们覆盖的每个密钥,其他行给出示例:

6266 6266 

6267| 密钥类型 | Claude Code 如何合并它 | 密钥 |6267| 密钥类型 | Claude Code 如何合并它 | 密钥 |

6268| :----------------------------------------- | :----------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |6268| :- | :- | :- |

6269| Lists | 合并来自每个源的条目 | [`permissions.allow`](#permissions-allow)、[`sandbox.network.allowedDomains`](#sandbox-network-alloweddomains) 和其他列表密钥 |6269| Lists | 合并来自每个源的条目 | [`permissions.allow`](#permissions-allow)、[`sandbox.network.allowedDomains`](#sandbox-network-alloweddomains) 和其他列表密钥 |

6270| Locks | 应用任何源设置的最严格值。当没有源设置严格值时,仅从最高源应用较宽松的值 | [`allowManagedPermissionRulesOnly`](#allowmanagedpermissionrulesonly)、[`permissions.disableBypassPermissionsMode`](#permissions-disablebypasspermissionsmode) 和其他布尔值或枚举锁 |6270| Locks | 应用任何源设置的最严格值。当没有源设置严格值时,仅从最高源应用较宽松的值 | [`allowManagedPermissionRulesOnly`](#allowmanagedpermissionrulesonly)、[`permissions.disableBypassPermissionsMode`](#permissions-disablebypasspermissionsmode) 和其他布尔值或枚举锁 |

6271| Restriction allowlists | 从设置它的最高源整体取值,不从较低源添加条目。当最高源未设置时,从下一个源整体取值 | [`availableModels`](#availablemodels)、[`allowedMcpServers`](#allowedmcpservers)、[`strictKnownMarketplaces`](#strictknownmarketplaces)、[`allowedChannelPlugins`](#allowedchannelplugins) 和 [`fallbackModel`](#fallbackmodel) 链 |6271| Restriction allowlists | 从设置它的最高源整体取值,不从较低源添加条目。当最高源未设置时,从下一个源整体取值 | [`availableModels`](#availablemodels)、[`allowedMcpServers`](#allowedmcpservers)、[`strictKnownMarketplaces`](#strictknownmarketplaces)、[`allowedChannelPlugins`](#allowedchannelplugins) 和 [`fallbackModel`](#fallbackmodel) 链 |

setup.md +1 −1

Details

116您可以在 Windows 上原生运行 Claude Code,也可以在 WSL 中运行。根据您的项目位置和所需的功能进行选择:116您可以在 Windows 上原生运行 Claude Code,也可以在 WSL 中运行。根据您的项目位置和所需的功能进行选择:

117 117 

118| 选项 | 需要 | [沙箱](/docs/zh-CN/sandboxing) | 何时使用 |118| 选项 | 需要 | [沙箱](/docs/zh-CN/sandboxing) | 何时使用 |

119| ---------- | ----------------------------------------------------------- | ----------------------- | ---------------- |119| - | - | - | - |

120| 原生 Windows | 无;[Git for Windows](https://git-scm.com/downloads/win) 是可选的 | 不支持 | Windows 原生项目和工具 |120| 原生 Windows | 无;[Git for Windows](https://git-scm.com/downloads/win) 是可选的 | 不支持 | Windows 原生项目和工具 |

121| WSL 2 | WSL 2 已启用 | 支持 | Linux 工具链或沙箱命令执行 |121| WSL 2 | WSL 2 已启用 | 支持 | Linux 工具链或沙箱命令执行 |

122| WSL 1 | WSL 1 已启用 | 不支持 | 如果 WSL 2 不可用 |122| WSL 1 | WSL 1 已启用 | 不支持 | 如果 WSL 2 不可用 |

skills.md +10 −10

Details

43三个捆绑技能协同工作来启动您的应用并根据运行中的应用而不仅仅是测试来确认更改:43三个捆绑技能协同工作来启动您的应用并根据运行中的应用而不仅仅是测试来确认更改:

44 44 

45| 技能 | 目的 |45| 技能 | 目的 |

46| :--------------------- | :----------------------------------- |46| :- | :- |

47| `/run` | 启动并驱动您的应用以查看更改是否有效 |47| `/run` | 启动并驱动您的应用以查看更改是否有效 |

48| `/verify` | 构建并运行您的应用以确认代码更改是否按预期工作,无需回退到测试或类型检查 |48| `/verify` | 构建并运行您的应用以确认代码更改是否按预期工作,无需回退到测试或类型检查 |

49| `/run-skill-generator` | 教 `/run` 和 `/verify` 如何构建和启动您的项目 |49| `/run-skill-generator` | 教 `/run` 和 `/verify` 如何构建和启动您的项目 |


123保存 skill 的位置决定了哪些会话会加载它。将其保存在主目录下可以在每个项目中使用,将其提交到存储库可以与在那里工作的所有人共享,或通过 plugin 或托管设置分发以覆盖整个团队。123保存 skill 的位置决定了哪些会话会加载它。将其保存在主目录下可以在每个项目中使用,将其提交到存储库可以与在那里工作的所有人共享,或通过 plugin 或托管设置分发以覆盖整个团队。

124 124 

125| 位置 | 路径 | 加载位置 |125| 位置 | 路径 | 加载位置 |

126| :------------------- | :----------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------ |126| :- | :- | :- |

127| Enterprise | `.claude/skills/<skill-name>/SKILL.md` 在 [托管设置目录](/docs/zh-CN/managed-settings#delivery-mechanisms) 中 | 您的组织部署它的所有机器上的所有用户 |127| Enterprise | `.claude/skills/<skill-name>/SKILL.md` 在 [托管设置目录](/docs/zh-CN/managed-settings#delivery-mechanisms) 中 | 您的组织部署它的所有机器上的所有用户 |

128| Personal | `~/.claude/skills/<skill-name>/SKILL.md` | 此机器上的所有项目,但不包括 [Cowork 或云会话](#skills-in-cowork-and-cloud-sessions) |128| Personal | `~/.claude/skills/<skill-name>/SKILL.md` | 此机器上的所有项目,但不包括 [Cowork 或云会话](#skills-in-cowork-and-cloud-sessions) |

129| Project | `.claude/skills/<skill-name>/SKILL.md` | 此存储库中的会话。提交它以便您的团队也能获得它 |129| Project | `.claude/skills/<skill-name>/SKILL.md` | 此存储库中的会话。提交它以便您的团队也能获得它 |


171当两个 skills 共享名称时,每个来自的位置决定了 `/name` 运行哪一个。该表涵盖 enterprise、personal、project、nested、plugin 和 claude.ai 位置、捆绑的 skills 和命令文件:171当两个 skills 共享名称时,每个来自的位置决定了 `/name` 运行哪一个。该表涵盖 enterprise、personal、project、nested、plugin 和 claude.ai 位置、捆绑的 skills 和命令文件:

172 172 

173| 相同名称在 | 运行哪一个 |173| 相同名称在 | 运行哪一个 |

174| :------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------- |174| :- | :- |

175| Enterprise、personal 和 project 中的两个 | Enterprise 优于 personal,personal 优于 project。在 `~/.claude/skills/` 和项目的 `.claude/skills/` 中都有 `deploy` 时,`/deploy` 运行 personal 的 |175| Enterprise、personal 和 project 中的两个 | Enterprise 优于 personal,personal 优于 project。在 `~/.claude/skills/` 和项目的 `.claude/skills/` 中都有 `deploy` 时,`/deploy` 运行 personal 的 |

176| 这些位置中的任何一个和 [捆绑 skill](#bundled-skills) | 您的 skill 替换捆绑的命令,但不替换其别名。项目 `code-review` skill 替换 `/code-review`,捆绑的别名 `/review` 永远不会运行您的 skill |176| 这些位置中的任何一个和 [捆绑 skill](#bundled-skills) | 您的 skill 替换捆绑的命令,但不替换其别名。项目 `code-review` skill 替换 `/code-review`,捆绑的别名 `/review` 永远不会运行您的 skill |

177| Skill 和 `.claude/commands/` 中的文件 | Skill |177| Skill 和 `.claude/commands/` 中的文件 | Skill |


359布尔字段接受 `yes`、`no`、`on`、`off`、`1` 和 `0`(任何字母大小写),以及 `true` 和 `false`。在 v2.1.218 之前,Claude Code 仅识别 `true` 和 `false`。359布尔字段接受 `yes`、`no`、`on`、`off`、`1` 和 `0`(任何字母大小写),以及 `true` 和 `false`。在 v2.1.218 之前,Claude Code 仅识别 `true` 和 `false`。

360 360 

361| 字段 | 必需 | 描述 |361| 字段 | 必需 | 描述 |

362| :------------------------- | :- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |362| :- | :- | :- |

363| `name` | 否 | 在 skill 列表中显示的显示名称。默认为目录名称。请参阅[skill 如何获得其命令名称](#how-a-skill-gets-its-command-name)以了解该字段如何与你键入以调用 skill 的名称交互。 |363| `name` | 否 | 在 skill 列表中显示的显示名称。默认为目录名称。请参阅[skill 如何获得其命令名称](#how-a-skill-gets-its-command-name)以了解该字段如何与你键入以调用 skill 的名称交互。 |

364| `description` | 推荐 | skill 的功能以及何时使用它。Claude 使用此信息来决定何时应用该 skill。如果省略,则使用 markdown 内容的第一个非空行。首先放置关键用例:组合的 `description` 和 `when_to_use` 文本在 skill 列表中被截断为 1,536 个字符以减少上下文使用。 |364| `description` | 推荐 | skill 的功能以及何时使用它。Claude 使用此信息来决定何时应用该 skill。如果省略,则使用 markdown 内容的第一个非空行。首先放置关键用例:组合的 `description` 和 `when_to_use` 文本在 skill 列表中被截断为 1,536 个字符以减少上下文使用。 |

365| `when_to_use` | 否 | 关于 Claude 何时应调用该 skill 的其他上下文,例如触发短语或示例请求。附加到 skill 列表中的 `description`,并计入 1,536 字符的上限。 |365| `when_to_use` | 否 | 关于 Claude 何时应调用该 skill 的其他上下文,例如触发短语或示例请求。附加到 skill 列表中的 `description`,并计入 1,536 字符的上限。 |


388Claude Code 接受上表中的每个字段。在 Claude Code 外,你只能使用[Agent Skills](https://agentskills.io) 规范中的字段:388Claude Code 接受上表中的每个字段。在 Claude Code 外,你只能使用[Agent Skills](https://agentskills.io) 规范中的字段:

389 389 

390| 分发路径 | 你可以使用的 Frontmatter 字段 |390| 分发路径 | 你可以使用的 Frontmatter 字段 |

391| :-------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------ |391| :- | :- |

392| Claude Code skills 在[任何级别](#where-skills-live),包括[插件](/docs/zh-CN/plugins/overview) skills | 上表中的每个字段 |392| Claude Code skills 在[任何级别](#where-skills-live),包括[插件](/docs/zh-CN/plugins/overview) skills | 上表中的每个字段 |

393| claude.ai skill 上传、Skills API 和使用来自 [anthropics/skills](https://github.com/anthropics/skills) 的 `package_skill.py` 打包 | `name`、`description`、`license`、`compatibility`、`metadata`、`allowed-tools` |393| claude.ai skill 上传、Skills API 和使用来自 [anthropics/skills](https://github.com/anthropics/skills) 的 `package_skill.py` 打包 | `name`、`description`、`license`、`compatibility`、`metadata`、`allowed-tools` |

394 394 


411下表显示了每个布局的命令名称来自何处:411下表显示了每个布局的命令名称来自何处:

412 412 

413| Skill 位置 | 命令名称来源 | 示例 |413| Skill 位置 | 命令名称来源 | 示例 |

414| :------------------------------------------------------------- | :------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------- |414| :- | :- | :- |

415| `~/.claude/skills/` 或 `.claude/skills/` 下的 Skill 目录 | 目录名称 | `.claude/skills/deploy-staging/SKILL.md` → `/deploy-staging` |415| `~/.claude/skills/` 或 `.claude/skills/` 下的 Skill 目录 | 目录名称 | `.claude/skills/deploy-staging/SKILL.md` → `/deploy-staging` |

416| [嵌套](#where-skills-live)`.claude/skills/` 目录,当名称与另一个 skill 冲突时 | 相对于工作目录的子目录路径,然后是 skill 目录名称 | `apps/web/.claude/skills/deploy/SKILL.md` → `/apps/web:deploy` |416| [嵌套](#where-skills-live)`.claude/skills/` 目录,当名称与另一个 skill 冲突时 | 相对于工作目录的子目录路径,然后是 skill 目录名称 | `apps/web/.claude/skills/deploy/SKILL.md` → `/apps/web:deploy` |

417| `.claude/commands/` 下的文件 | 文件名(不含扩展名) | `.claude/commands/deploy.md` → `/deploy` |417| `.claude/commands/` 下的文件 | 文件名(不含扩展名) | `.claude/commands/deploy.md` → `/deploy` |


433Skills 支持 skill 内容中动态值的字符串替换:433Skills 支持 skill 内容中动态值的字符串替换:

434 434 

435| 变量 | 描述 |435| 变量 | 描述 |

436| :---------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |436| :- | :- |

437| `$ARGUMENTS` | 调用 skill 时传递的所有参数。当没有占位符接收参数时,Claude Code 将它们附加为 `ARGUMENTS: <value>`。请参阅[将参数传递给 skills](#pass-arguments-to-skills)。 |437| `$ARGUMENTS` | 调用 skill 时传递的所有参数。当没有占位符接收参数时,Claude Code 将它们附加为 `ARGUMENTS: <value>`。请参阅[将参数传递给 skills](#pass-arguments-to-skills)。 |

438| `$ARGUMENTS[N]` | 按 0 基索引访问特定参数,例如 `$ARGUMENTS[0]` 表示第一个参数。 |438| `$ARGUMENTS[N]` | 按 0 基索引访问特定参数,例如 `$ARGUMENTS[0]` 表示第一个参数。 |

439| `$N` | `$ARGUMENTS[N]` 的简写,例如 `$0` 表示第一个参数或 `$1` 表示第二个参数。 |439| `$N` | `$ARGUMENTS[N]` 的简写,例如 `$0` 表示第一个参数或 `$1` 表示第二个参数。 |


540以下是两个字段如何影响调用和上下文加载:540以下是两个字段如何影响调用和上下文加载:

541 541 

542| Frontmatter | 你可以调用 | Claude 可以调用 | 何时加载到上下文中 |542| Frontmatter | 你可以调用 | Claude 可以调用 | 何时加载到上下文中 |

543| :------------------------------- | :---- | :---------- | :---------------------- |543| :- | :- | :- | :- |

544| (默认) | 是 | 是 | 描述始终在上下文中,调用时加载完整 skill |544| (默认) | 是 | 是 | 描述始终在上下文中,调用时加载完整 skill |

545| `disable-model-invocation: true` | 是 | 否 | 描述不在上下文中,你调用时加载完整 skill |545| `disable-model-invocation: true` | 是 | 否 | 描述不在上下文中,你调用时加载完整 skill |

546| `user-invocable: false` | 否 | 是 | 描述始终在上下文中,调用时加载完整 skill |546| `user-invocable: false` | 否 | 是 | 描述始终在上下文中,调用时加载完整 skill |


764技能和[子代理](/docs/zh-CN/sub-agents)在两个方向上协同工作:764技能和[子代理](/docs/zh-CN/sub-agents)在两个方向上协同工作:

765 765 

766| 方法 | 系统提示 | 任务 | 也加载 |766| 方法 | 系统提示 | 任务 | 也加载 |

767| :--------------------- | :--------------- | :----------- | :------------------------------------------------------------------------ |767| :- | :- | :- | :- |

768| 具有 `context: fork` 的技能 | 来自代理类型 | SKILL.md 内容 | CLAUDE.md,根据代理的[启动上下文](/docs/zh-CN/sub-agents#what-loads-at-startup) |768| 具有 `context: fork` 的技能 | 来自代理类型 | SKILL.md 内容 | CLAUDE.md,根据代理的[启动上下文](/docs/zh-CN/sub-agents#what-loads-at-startup) |

769| 具有 `skills` 字段的子代理 | 子代理的 markdown 主体 | Claude 的委派消息 | 预加载的技能 + CLAUDE.md,根据子代理的[启动上下文](/docs/zh-CN/sub-agents#what-loads-at-startup) |769| 具有 `skills` 字段的子代理 | 子代理的 markdown 主体 | Claude 的委派消息 | 预加载的技能 + CLAUDE.md,根据子代理的[启动上下文](/docs/zh-CN/sub-agents#what-loads-at-startup) |

770 770 


847每个键是一个技能名称,每个值是四种状态之一:847每个键是一个技能名称,每个值是四种状态之一:

848 848 

849| 值 | 列出给 Claude | 在 `/` 菜单中 |849| 值 | 列出给 Claude | 在 `/` 菜单中 |

850| :---------------------- | :--------- | :-------- |850| :- | :- | :- |

851| `"on"` | 名称和描述 | 是 |851| `"on"` | 名称和描述 | 是 |

852| `"name-only"` | 仅名称 | 是 |852| `"name-only"` | 仅名称 | 是 |

853| `"user-invocable-only"` | 隐藏 | 是 |853| `"user-invocable-only"` | 隐藏 | 是 |

slack.md +4 −4

Details

33在使用 Slack 中的 Claude Code 之前,请确保您具有以下条件:33在使用 Slack 中的 Claude Code 之前,请确保您具有以下条件:

34 34 

35| 要求 | 详情 |35| 要求 | 详情 |

36| :-------- | :------------------------------------------------------------------------- |36| :- | :- |

37| Claude 计划 | Pro、Max、Team 或 Enterprise,具有 Claude Code 访问权限(高级席位或 Chat + Claude Code 席位) |37| Claude 计划 | Pro、Max、Team 或 Enterprise,具有 Claude Code 访问权限(高级席位或 Chat + Claude Code 席位) |

38| 云会话 | [云会话](/docs/zh-CN/claude-code-on-the-web)已为您的账户启用 |38| 云会话 | [云会话](/docs/zh-CN/claude-code-on-the-web)已为您的账户启用 |

39| GitHub 账户 | 在 [claude.ai/code](https://claude.ai/code) 连接,至少有一个存储库已认证 |39| GitHub 账户 | 在 [claude.ai/code](https://claude.ai/code) 连接,至少有一个存储库已认证 |


69 连接您的账户后,配置 Claude 如何在 Slack 中处理您的消息。打开 Slack 中的 Claude 应用程序主页以找到**路由模式**设置。69 连接您的账户后,配置 Claude 如何在 Slack 中处理您的消息。打开 Slack 中的 Claude 应用程序主页以找到**路由模式**设置。

70 70 

71 | 模式 | 行为 |71 | 模式 | 行为 |

72 | :---------- | :---------------------------------------------------------------------------------------------------- |72 | :- | :- |

73 | **仅代码** | Claude 将所有 @mentions 路由到 Claude Code 会话。最适合仅将 Claude 用于 Slack 中开发任务的团队。 |73 | **仅代码** | Claude 将所有 @mentions 路由到 Claude Code 会话。最适合仅将 Claude 用于 Slack 中开发任务的团队。 |

74 | **代码 + 聊天** | Claude 分析每条消息并在 Claude Code(用于编码任务)和 Claude Chat(用于写作、分析和常见问题)之间智能路由。最适合希望为所有类型工作提供单一 @Claude 入口点的团队。 |74 | **代码 + 聊天** | Claude 分析每条消息并在 Claude Code(用于编码任务)和 Claude Chat(用于写作、分析和常见问题)之间智能路由。最适合希望为所有类型工作提供单一 @Claude 入口点的团队。 |

75 75 


152</h3>152</h3>

153 153 

154| 访问类型 | 要求 |154| 访问类型 | 要求 |

155| :------------- | :---------------------------------------- |155| :- | :- |

156| Claude Code 会话 | 每个用户在其自己的 Claude 账户下运行会话 |156| Claude Code 会话 | 每个用户在其自己的 Claude 账户下运行会话 |

157| 使用情况和速率限制 | 会话计入个人用户的计划限制 |157| 使用情况和速率限制 | 会话计入个人用户的计划限制 |

158| 存储库访问 | 用户只能访问他们个人连接的存储库 |158| 存储库访问 | 用户只能访问他们个人连接的存储库 |


165Slack 工作区管理员控制 Claude 应用程序是否可以在其工作区中使用:165Slack 工作区管理员控制 Claude 应用程序是否可以在其工作区中使用:

166 166 

167| 控制 | 描述 |167| 控制 | 描述 |

168| :----------------- | :--------------------------------------------------- |168| :- | :- |

169| 应用程序安装 | 工作区管理员决定是否从 Slack 应用程序市场安装 Claude 应用程序 |169| 应用程序安装 | 工作区管理员决定是否从 Slack 应用程序市场安装 Claude 应用程序 |

170| Enterprise Grid 分发 | 对于 Enterprise Grid 组织,组织管理员可以控制哪些工作区有权访问 Claude 应用程序 |170| Enterprise Grid 分发 | 对于 Enterprise Grid 组织,组织管理员可以控制哪些工作区有权访问 Claude 应用程序 |

171| 应用程序移除 | 从工作区移除应用程序会立即撤销该工作区中所有用户的访问权限 |171| 应用程序移除 | 从工作区移除应用程序会立即撤销该工作区中所有用户的访问权限 |

statusline.md +2 −2

Details

184Claude Code 通过 stdin 向你的脚本发送以下 JSON 字段:184Claude Code 通过 stdin 向你的脚本发送以下 JSON 字段:

185 185 

186| 字段 | 描述 |186| 字段 | 描述 |

187| -------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |187| - | - |

188| `model.id`, `model.display_name` | 当前模型标识符和显示名称 |188| `model.id`, `model.display_name` | 当前模型标识符和显示名称 |

189| `cwd`, `workspace.current_dir` | 当前工作目录。两个字段包含相同的值;为了与 `workspace.project_dir` 保持一致,首选 `workspace.current_dir`。 |189| `cwd`, `workspace.current_dir` | 当前工作目录。两个字段包含相同的值;为了与 `workspace.project_dir` 保持一致,首选 `workspace.current_dir`。 |

190| `workspace.project_dir` | 启动 Claude Code 的目录,如果在会话期间工作目录更改,可能与 `cwd` 不同 |190| `workspace.project_dir` | 启动 Claude Code 的目录,如果在会话期间工作目录更改,可能与 `cwd` 不同 |


396该表列出了每个字段及其含义。时间戳是 Unix 纪元秒,与 `rate_limits.*.resets_at` 相同的单位。短状态行通常显示其中一个或两个;`warm` 和 `hit_ratio` 最直接地总结缓存状态。396该表列出了每个字段及其含义。时间戳是 Unix 纪元秒,与 `rate_limits.*.resets_at` 相同的单位。短状态行通常显示其中一个或两个;`warm` 和 `hit_ratio` 最直接地总结缓存状态。

397 397 

398| 字段 | 描述 |398| 字段 | 描述 |

399| ------------------------ | ----------------------------------------------------------------------------------------------- |399| - | - |

400| `warm` | 缓存的前缀是否仍在其 TTL 内。当最后一次响应未报告缓存令牌时为 `false`,即使 `caching_observed` 为 `true` |400| `warm` | 缓存的前缀是否仍在其 TTL 内。当最后一次响应未报告缓存令牌时为 `false`,即使 `caching_observed` 为 `true` |

401| `caching_observed` | 此会话的任何响应是否报告了缓存令牌。`false` 意味着 prompt caching 已关闭,或你的提供商或网关不报告它 |401| `caching_observed` | 此会话的任何响应是否报告了缓存令牌。`false` 意味着 prompt caching 已关闭,或你的提供商或网关不报告它 |

402| `ttl` | 当前缓存前缀的 [缓存生命周期](/docs/zh-CN/prompt-caching#cache-lifetime):`"5m"` 或 `"1h"` |402| `ttl` | 当前缓存前缀的 [缓存生命周期](/docs/zh-CN/prompt-caching#cache-lifetime):`"5m"` 或 `"1h"` |

sub-agents.md +9 −9

Details

75 Claude Code 包括用于特定任务的其他辅助代理。这些通常会自动调用,因此您不需要直接使用它们。75 Claude Code 包括用于特定任务的其他辅助代理。这些通常会自动调用,因此您不需要直接使用它们。

76 76 

77 | Agent | Model | Claude 何时使用它 |77 | Agent | Model | Claude 何时使用它 |

78 | :---------------- | :------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |78 | :- | :- | :- |

79 | claude | 没有自己的;当 Claude 将其生成为 subagent 时遵循[模型顺序](#choose-a-model) | 当任务不适合更专业的代理时。一个具有所有[可用于 subagents 的工具](#available-tools)的通用代理。也是调度的[后台会话](/docs/zh-CN/agent-view)的默认代理;[它启动的权限模式](/docs/zh-CN/agent-view#permission-mode-model-and-effort)取决于会话的启动方式 |79 | claude | 没有自己的;当 Claude 将其生成为 subagent 时遵循[模型顺序](#choose-a-model) | 当任务不适合更专业的代理时。一个具有所有[可用于 subagents 的工具](#available-tools)的通用代理。也是调度的[后台会话](/docs/zh-CN/agent-view)的默认代理;[它启动的权限模式](/docs/zh-CN/agent-view#permission-mode-model-and-effort)取决于会话的启动方式 |

80 | statusline-setup | Sonnet | 当您运行 `/statusline` 来配置您的状态行时 |80 | statusline-setup | Sonnet | 当您运行 `/statusline` 来配置您的状态行时 |

81 | claude-code-guide | Haiku | 当您提出关于 Claude Code 功能的问题时 |81 | claude-code-guide | Haiku | 当您提出关于 Claude Code 功能的问题时 |


169根据范围将 subagent 文件存储在不同的位置。当多个 subagents 共享相同的名称时,Claude Code 使用来自更高优先级位置的那个。169根据范围将 subagent 文件存储在不同的位置。当多个 subagents 共享相同的名称时,Claude Code 使用来自更高优先级位置的那个。

170 170 

171| Location | Scope | Priority | 如何创建 |171| Location | Scope | Priority | 如何创建 |

172| :-------------------- | :------------ | :------- | :---------------------------------------- |172| :- | :- | :- | :- |

173| 托管设置 | 组织范围 | 1(最高) | 通过 [managed settings](/docs/zh-CN/settings) 部署 |173| 托管设置 | 组织范围 | 1(最高) | 通过 [managed settings](/docs/zh-CN/settings) 部署 |

174| `--agents` CLI 标志 | 当前会话 | 2 | 启动 Claude Code 时传递 JSON |174| `--agents` CLI 标志 | 当前会话 | 2 | 启动 Claude Code 时传递 JSON |

175| `.claude/agents/` | 当前项目 | 3 | 询问 Claude,或手动创建文件 |175| `.claude/agents/` | 当前项目 | 3 | 询问 Claude,或手动创建文件 |


304多字段名称使用 camelCase,例如 `maxTurns` 和 `disallowedTools`,必须与表格完全匹配:Claude Code 忽略它不识别的字段而不报告错误。要找出为什么 subagent 文件没有加载,请参阅 [Subagent files Claude Code skips](#subagent-files-claude-code-skips)。304多字段名称使用 camelCase,例如 `maxTurns` 和 `disallowedTools`,必须与表格完全匹配:Claude Code 忽略它不识别的字段而不报告错误。要找出为什么 subagent 文件没有加载,请参阅 [Subagent files Claude Code skips](#subagent-files-claude-code-skips)。

305 305 

306| Field | 必需 | Description |306| Field | 必需 | Description |

307| :---------------- | :- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |307| :- | :- | :- |

308| `name` | 是 | 唯一标识符,例如 `code-reviewer` 或 `reviewer-v2`。[Hooks](/docs/zh-CN/hooks#subagentstart) 将此值作为 `agent_type` 接收。文件名不必匹配。名称不能包含 `:`,这是为 [plugin-scoped identifiers](/docs/zh-CN/plugins/overview) 保留的,例如 `my-plugin:reviewer`。Claude Code 不加载名称包含一个的文件,并向调试日志记录错误。在 v2.1.218 之前,这样的名称被接受 |308| `name` | 是 | 唯一标识符,例如 `code-reviewer` 或 `reviewer-v2`。[Hooks](/docs/zh-CN/hooks#subagentstart) 将此值作为 `agent_type` 接收。文件名不必匹配。名称不能包含 `:`,这是为 [plugin-scoped identifiers](/docs/zh-CN/plugins/overview) 保留的,例如 `my-plugin:reviewer`。Claude Code 不加载名称包含一个的文件,并向调试日志记录错误。在 v2.1.218 之前,这样的名称被接受 |

309| `description` | 是 | Claude 何时应该委托给此 subagent |309| `description` | 是 | Claude 何时应该委托给此 subagent |

310| `tools` | 否 | [Tools](#available-tools) subagent 可以使用,作为逗号分隔的字符串,例如 `Read, Grep, Bash` 或 YAML 列表。如果省略,继承 subagents 可用的每个工具。如果列表中没有条目解析为工具,subagent 通常 [fails to launch](/docs/zh-CN/errors#agent-would-be-spawned-with-zero-tools) 并出现错误,命名条目。要将 Skills 预加载到上下文中,请使用 `skills` 字段而不是在此处列出 `Skill` |310| `tools` | 否 | [Tools](#available-tools) subagent 可以使用,作为逗号分隔的字符串,例如 `Read, Grep, Bash` 或 YAML 列表。如果省略,继承 subagents 可用的每个工具。如果列表中没有条目解析为工具,subagent 通常 [fails to launch](/docs/zh-CN/errors#agent-would-be-spawned-with-zero-tools) 并出现错误,命名条目。要将 Skills 预加载到上下文中,请使用 `skills` 字段而不是在此处列出 `Skill` |


597`permissionMode` 接受这些值,以及 `manual` 作为 `default` 的别名:597`permissionMode` 接受这些值,以及 `manual` 作为 `default` 的别名:

598 598 

599| Mode | Behavior |599| Mode | Behavior |

600| :------------------ | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |600| :- | :- |

601| `default` | 手动模式:提示权限 |601| `default` | 手动模式:提示权限 |

602| `acceptEdits` | 自动接受文件编辑和工作目录或 `additionalDirectories` 中路径的常见文件系统命令 |602| `acceptEdits` | 自动接受文件编辑和工作目录或 `additionalDirectories` 中路径的常见文件系统命令 |

603| `auto` | [Auto mode](/docs/zh-CN/permission-modes#eliminate-prompts-with-auto-mode):后台分类器审查命令和受保护目录的写入 |603| `auto` | [Auto mode](/docs/zh-CN/permission-modes#eliminate-prompts-with-auto-mode):后台分类器审查命令和受保护目录的写入 |


653根据内存应该应用的广泛程度选择范围:653根据内存应该应用的广泛程度选择范围:

654 654 

655| Scope | Location | 使用时机 |655| Scope | Location | 使用时机 |

656| :-------- | :-------------------------------------------- | :---------------------------- |656| :- | :- | :- |

657| `user` | `~/.claude/agent-memory/<name-of-agent>/` | subagent 应该在所有项目中记住学习 |657| `user` | `~/.claude/agent-memory/<name-of-agent>/` | subagent 应该在所有项目中记住学习 |

658| `project` | `.claude/agent-memory/<name-of-agent>/` | subagent 的知识是特定于项目的并可通过版本控制共享 |658| `project` | `.claude/agent-memory/<name-of-agent>/` | subagent 的知识是特定于项目的并可通过版本控制共享 |

659| `local` | `.claude/agent-memory-local/<name-of-agent>/` | subagent 的知识是特定于项目的但不应检入版本控制 |659| `local` | `.claude/agent-memory-local/<name-of-agent>/` | subagent 的知识是特定于项目的但不应检入版本控制 |


782所有 [hook events](/docs/zh-CN/hooks#hook-events) 都被支持。subagents 最常见的事件是:782所有 [hook events](/docs/zh-CN/hooks#hook-events) 都被支持。subagents 最常见的事件是:

783 783 

784| Event | Matcher input | 何时触发 |784| Event | Matcher input | 何时触发 |

785| :------------ | :------------ | :------------------------------------- |785| :- | :- | :- |

786| `PreToolUse` | Tool name | 在 subagent 使用工具之前 |786| `PreToolUse` | Tool name | 在 subagent 使用工具之前 |

787| `PostToolUse` | Tool name | 在 subagent 使用工具之后 |787| `PostToolUse` | Tool name | 在 subagent 使用工具之后 |

788| `Stop` | (none) | 当 subagent 完成时(在运行时转换为 `SubagentStop`) |788| `Stop` | (none) | 当 subagent 完成时(在运行时转换为 `SubagentStop`) |


816在 `settings.json` 中配置 hooks,以响应主会话中的 subagent 生命周期事件。816在 `settings.json` 中配置 hooks,以响应主会话中的 subagent 生命周期事件。

817 817 

818| Event | Matcher input | 何时触发 |818| Event | Matcher input | 何时触发 |

819| :-------------- | :-------------- | :--------------- |819| :- | :- | :- |

820| `SubagentStart` | Agent type name | 当 subagent 开始执行时 |820| `SubagentStart` | Agent type name | 当 subagent 开始执行时 |

821| `SubagentStop` | Agent type name | 当 subagent 完成时 |821| `SubagentStop` | Agent type name | 当 subagent 完成时 |

822 822 


1245使用这些键与面板交互:1245使用这些键与面板交互:

1246 1246 

1247| Key | Action |1247| Key | Action |

1248| :-------- | :---------------------------------------------------------------- |1248| :- | :- |

1249| `↑` / `↓` | 在行之间移动 |1249| `↑` / `↓` | 在行之间移动 |

1250| `Enter` | 打开所选分叉的转录并向其发送后续消息 |1250| `Enter` | 打开所选分叉的转录并向其发送后续消息 |

1251| `x` | 如果分叉正在运行,停止它;如果不再运行,关闭其行。在主会话行或您使用 `Enter` 打开其转录的分叉行上,`x` 会输入到提示中 |1251| `x` | 如果分叉正在运行,停止它;如果不再运行,关闭其行。在主会话行或您使用 `Enter` 打开其转录的分叉行上,`x` 会输入到提示中 |


1260分叉继承主会话在生成时拥有的一切。任何其他 subagent 从其定义开始。1260分叉继承主会话在生成时拥有的一切。任何其他 subagent 从其定义开始。

1261 1261 

1262| | 分叉 | 非分叉 subagent |1262| | 分叉 | 非分叉 subagent |

1263| :----------- | :--------- | :--------------------------------------------------------------------- |1263| :- | :- | :- |

1264| 上下文 | 完整的对话历史 | 新鲜上下文,带有您传递的提示 |1264| 上下文 | 完整的对话历史 | 新鲜上下文,带有您传递的提示 |

1265| 系统提示和工具 | 与主会话相同 | 来自 subagent 的[定义文件](#write-subagent-files),[为后台运行过滤](#available-tools) |1265| 系统提示和工具 | 与主会话相同 | 来自 subagent 的[定义文件](#write-subagent-files),[为后台运行过滤](#available-tools) |

1266| 模型 | 与主会话相同 | 来自 subagent 的 `model` 字段 |1266| 模型 | 与主会话相同 | 来自 subagent 的 `model` 字段 |

Details

27在大多数终端中,您也可以按 Shift+Enter,但支持因终端模拟器而异:27在大多数终端中,您也可以按 Shift+Enter,但支持因终端模拟器而异:

28 28 

29| 终端 | Shift+Enter 换行 |29| 终端 | Shift+Enter 换行 |

30| :---------------------------------------------------------------- | :------------------------------------- |30| :- | :- |

31| Ghostty、Kitty、iTerm2、WezTerm、Warp、Apple Terminal、Windows Terminal | 无需设置即可工作 |31| Ghostty、Kitty、iTerm2、WezTerm、Warp、Apple Terminal、Windows Terminal | 无需设置即可工作 |

32| 支持 kitty 键盘协议的其他终端,例如 foot 和 Alacritty 0.16 或更高版本 | 无需设置即可工作。需要 Claude Code v2.1.269 或更高版本 |32| 支持 kitty 键盘协议的其他终端,例如 foot 和 Alacritty 0.16 或更高版本 | 无需设置即可工作。需要 Claude Code v2.1.269 或更高版本 |

33| VS Code、Cursor、Devin Desktop、Alacritty 0.16 之前版本、Zed | 运行一次 `/terminal-setup` |33| VS Code、Cursor、Devin Desktop、Alacritty 0.16 之前版本、Zed | 运行一次 `/terminal-setup` |


161每个自定义主题都是 `~/.claude/themes/` 中的一个 JSON 文件。不带 `.json` 扩展名的文件名是主题的 slug,选择主题会将 `custom:<slug>` 存储为您的主题偏好设置。该文件有三个可选字段:161每个自定义主题都是 `~/.claude/themes/` 中的一个 JSON 文件。不带 `.json` 扩展名的文件名是主题的 slug,选择主题会将 `custom:<slug>` 存储为您的主题偏好设置。该文件有三个可选字段:

162 162 

163| 字段 | 类型 | 描述 |163| 字段 | 类型 | 描述 |

164| :---------- | :----- | :-------------------------------------------------------------------------------------------------- |164| :- | :- | :- |

165| `name` | string | 在 `/theme` 中显示的标签。默认为文件名 slug |165| `name` | string | 在 `/theme` 中显示的标签。默认为文件名 slug |

166| `base` | string | 主题开始的内置预设:`dark`、`light`、`dark-daltonized`、`light-daltonized`、`dark-ansi` 或 `light-ansi`。默认为 `dark` |166| `base` | string | 主题开始的内置预设:`dark`、`light`、`dark-daltonized`、`light-daltonized`、`dark-ansi` 或 `light-ansi`。默认为 `dark` |

167| `overrides` | object | 颜色令牌名称到颜色值的映射。此处未列出的令牌会回退到基础预设 |167| `overrides` | object | 颜色令牌名称到颜色值的映射。此处未列出的令牌会回退到基础预设 |


210 控制整个界面中使用的主要品牌强调和前景文本阴影。210 控制整个界面中使用的主要品牌强调和前景文本阴影。

211 211 

212 | 令牌 | 控制 |212 | 令牌 | 控制 |

213 | :------------ | :------------------ |213 | :- | :- |

214 | `claude` | 主要品牌强调,用于微调器和助手标签 |214 | `claude` | 主要品牌强调,用于微调器和助手标签 |

215 | `text` | 默认前景文本 |215 | `text` | 默认前景文本 |

216 | `inverseText` | 绘制在彩色背景顶部的文本,例如状态徽章 |216 | `inverseText` | 绘制在彩色背景顶部的文本,例如状态徽章 |


227 在消息和指示器中发出成功、失败和警告状态的信号。227 在消息和指示器中发出成功、失败和警告状态的信号。

228 228 

229 | 令牌 | 控制 |229 | 令牌 | 控制 |

230 | :-------- | :-------------- |230 | :- | :- |

231 | `success` | 成功消息和通过的检查 |231 | `success` | 成功消息和通过的检查 |

232 | `error` | 错误消息和失败 |232 | `error` | 错误消息和失败 |

233 | `warning` | 警告、注意消息和自动模式指示器 |233 | `warning` | 警告、注意消息和自动模式指示器 |


240 设置输入框边框颜色和权限模式或指示器处于活动状态时显示的强调。240 设置输入框边框颜色和权限模式或指示器处于活动状态时显示的强调。

241 241 

242 | 令牌 | 控制 |242 | 令牌 | 控制 |

243 | :------------- | :--------------------------------------------------------------------------------------------------------------------- |243 | :- | :- |

244 | `promptBorder` | 输入框边框 |244 | `promptBorder` | 输入框边框 |

245 | `planMode` | Plan Mode 强调、Plan Mode 消息和 Plan Mode 对话框 |245 | `planMode` | Plan Mode 强调、Plan Mode 消息和 Plan Mode 对话框 |

246 | `autoAccept` | Accept-edits mode 强调 |246 | `autoAccept` | Accept-edits mode 强调 |


256 在文件编辑和审查中着色添加和删除的代码。256 在文件编辑和审查中着色添加和删除的代码。

257 257 

258 | 令牌 | 控制 |258 | 令牌 | 控制 |

259 | :------------------ | :----------------------- |259 | :- | :- |

260 | `diffAdded` | 添加行的背景 |260 | `diffAdded` | 添加行的背景 |

261 | `diffRemoved` | 删除行的背景 |261 | `diffRemoved` | 删除行的背景 |

262 | `diffAddedDimmed` | 您拒绝编辑后显示的变暗 diff 中添加行的背景 |262 | `diffAddedDimmed` | 您拒绝编辑后显示的变暗 diff 中添加行的背景 |


271 Claude Code 在默认和全屏渲染器中都绘制 `userMessageBackground`、`bashMessageBackgroundColor` 和 `memoryBackgroundColor`。它仅在[全屏渲染模式](/docs/zh-CN/fullscreen)中使用 `userMessageBackgroundHover` 和 `selectionBg`。271 Claude Code 在默认和全屏渲染器中都绘制 `userMessageBackground`、`bashMessageBackgroundColor` 和 `memoryBackgroundColor`。它仅在[全屏渲染模式](/docs/zh-CN/fullscreen)中使用 `userMessageBackgroundHover` 和 `selectionBg`。

272 272 

273 | 令牌 | 控制 |273 | 令牌 | 控制 |

274 | :--------------------------- | :----------------------- |274 | :- | :- |

275 | `userMessageBackground` | 成绩单中您的消息后面的背景 |275 | `userMessageBackground` | 成绩单中您的消息后面的背景 |

276 | `userMessageBackgroundHover` | 悬停或展开消息时消息后面的背景 |276 | `userMessageBackgroundHover` | 悬停或展开消息时消息后面的背景 |

277 | `bashMessageBackgroundColor` | 成绩单中 `!` shell 命令条目后面的背景 |277 | `bashMessageBackgroundColor` | 成绩单中 `!` shell 命令条目后面的背景 |


285 调整 `/usage` 视图中显示的条形图和区分您的消息与 Claude 消息的标签。285 调整 `/usage` 视图中显示的条形图和区分您的消息与 Claude 消息的标签。

286 286 

287 | 令牌 | 控制 |287 | 令牌 | 控制 |

288 | :----------------- | :------------------- |288 | :- | :- |

289 | `rate_limit_fill` | 使用量计量表的填充部分 |289 | `rate_limit_fill` | 使用量计量表的填充部分 |

290 | `rate_limit_empty` | 使用量计量表的未填充部分 |290 | `rate_limit_empty` | 使用量计量表的未填充部分 |

291 | `briefLabelYou` | 您的消息上 `You` 标签的颜色 |291 | `briefLabelYou` | 您的消息上 `You` 标签的颜色 |

Details

17</Info>17</Info>

18 18 

19| 工具 | 描述 | 需要权限 |19| 工具 | 描述 | 需要权限 |

20| :--------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--- |20| :- | :- | :- |

21| `Agent` | 生成一个[子代理](/docs/zh-CN/sub-agents),具有自己的上下文窗口来处理任务。启用[代理团队](/docs/zh-CN/agent-teams)后,携带 `name` 的调用可以启动一个[队友](/docs/zh-CN/agent-teams#how-claude-starts-agent-teams)。请参阅 [Agent 工具行为](#agent-tool-behavior) | 否 |21| `Agent` | 生成一个[子代理](/docs/zh-CN/sub-agents),具有自己的上下文窗口来处理任务。启用[代理团队](/docs/zh-CN/agent-teams)后,携带 `name` 的调用可以启动一个[队友](/docs/zh-CN/agent-teams#how-claude-starts-agent-teams)。请参阅 [Agent 工具行为](#agent-tool-behavior) | 否 |

22| `Artifact` | 将 HTML 或 Markdown 文件发布为[工件](/docs/zh-CN/artifacts):claude.ai 上的私有交互式页面。您可以与公开链接共享它,或在 Team 和 Enterprise 计划上在您的组织内共享,其中公开共享需要所有者[启用它](/docs/zh-CN/artifacts#control-public-sharing)。需要 Pro、Max、Team 或 Enterprise 计划和 `/login` 身份验证;请参阅[可用性](/docs/zh-CN/artifacts#availability) | 是 |22| `Artifact` | 将 HTML 或 Markdown 文件发布为[工件](/docs/zh-CN/artifacts):claude.ai 上的私有交互式页面。您可以与公开链接共享它,或在 Team 和 Enterprise 计划上在您的组织内共享,其中公开共享需要所有者[启用它](/docs/zh-CN/artifacts#control-public-sharing)。需要 Pro、Max、Team 或 Enterprise 计划和 `/login` 身份验证;请参阅[可用性](/docs/zh-CN/artifacts#availability) | 是 |

23| `AskUserQuestion` | 提出多选问题以收集要求或澄清歧义。问题默认保持打开状态,直到您回答。请参阅 [AskUserQuestion 工具行为](#askuserquestion-tool-behavior) | 否 |23| `AskUserQuestion` | 提出多选问题以收集要求或澄清歧义。问题默认保持打开状态,直到您回答。请参阅 [AskUserQuestion 工具行为](#askuserquestion-tool-behavior) | 否 |


80所有这些都接受相同的规则格式 `ToolName(specifier)`。specifier 取决于工具,多个工具共享一种格式:80所有这些都接受相同的规则格式 `ToolName(specifier)`。specifier 取决于工具,多个工具共享一种格式:

81 81 

82| 规则格式 | 适用于 | 详情 |82| 规则格式 | 适用于 | 详情 |

83| :----------------------------- | :------------------------ | :----------------------------------------------------------------- |83| :- | :- | :- |

84| `Bash(npm run *)` | Bash, Monitor | [命令模式匹配](/docs/zh-CN/permissions#bash) |84| `Bash(npm run *)` | Bash, Monitor | [命令模式匹配](/docs/zh-CN/permissions#bash) |

85| `PowerShell(Get-ChildItem *)` | PowerShell | [命令模式匹配](/docs/zh-CN/permissions#powershell) |85| `PowerShell(Get-ChildItem *)` | PowerShell | [命令模式匹配](/docs/zh-CN/permissions#powershell) |

86| `Read(~/secrets/**)` | Read, Grep, Glob, LSP | [路径模式匹配](/docs/zh-CN/permissions#read-and-edit) |86| `Read(~/secrets/**)` | Read, Grep, Glob, LSP | [路径模式匹配](/docs/zh-CN/permissions#read-and-edit) |


179Claude Code 在命令运行时将命令的输出流式传输到工作文件;输出超过 5 GB 的命令会被杀死。命令完成后,Claude Code 从该文件读取输出,最多读取下面描述的读回窗口。输出中有多少到达 Claude 取决于 Claude Code 是否将结果视为失败:179Claude Code 在命令运行时将命令的输出流式传输到工作文件;输出超过 5 GB 的命令会被杀死。命令完成后,Claude Code 从该文件读取输出,最多读取下面描述的读回窗口。输出中有多少到达 Claude 取决于 Claude Code 是否将结果视为失败:

180 180 

181| 结果 | Claude 获得的内容 |181| 结果 | Claude 获得的内容 |

182| :- | :------------------------------------------------------------------------------------------------------- |182| :- | :- |

183| 有效 | 内联最多约 30,000 个字符(默认);超过该值,为保存到会话目录的文件的路径(文件超过 64 MiB 的部分会被截断),加上最多前 2,000 个字符的预览,Claude 在需要其余部分时读取或搜索该文件 |183| 有效 | 内联最多约 30,000 个字符(默认);超过该值,为保存到会话目录的文件的路径(文件超过 64 MiB 的部分会被截断),加上最多前 2,000 个字符的预览,Claude 在需要其余部分时读取或搜索该文件 |

184| 失败 | 内联最多约 10,000 个字符;超过该值,从读回窗口中切割的该大小的头尾摘录,没有文件路径 |184| 失败 | 内联最多约 10,000 个字符;超过该值,从读回窗口中切割的该大小的头尾摘录,没有文件路径 |

185 185 


396WebSocket 监视采用 `ws` 输入代替 `command`,单个 Monitor 调用不能将两者结合。`ws` 输入有两个字段:396WebSocket 监视采用 `ws` 输入代替 `command`,单个 Monitor 调用不能将两者结合。`ws` 输入有两个字段:

397 397 

398| 字段 | 必需 | 描述 |398| 字段 | 必需 | 描述 |

399| :---------- | :- | :--------------------------------------------------------- |399| :- | :- | :- |

400| `url` | 是 | 要连接的端点。必须是 `ws://` 或 `wss://` URL,不包含嵌入的凭据或空格,仅使用 ASCII 字符 |400| `url` | 是 | 要连接的端点。必须是 `ws://` 或 `wss://` URL,不包含嵌入的凭据或空格,仅使用 ASCII 字符 |

401| `protocols` | 否 | 在握手期间提供的 WebSocket 子协议名称。每个条目必须是有效的子协议令牌,列表不能包含重复项 |401| `protocols` | 否 | 在握手期间提供的 WebSocket 子协议名称。每个条目必须是有效的子协议令牌,列表不能包含重复项 |

402 402 

Details

15将您看到的错误消息或症状与解决方案相匹配:15将您看到的错误消息或症状与解决方案相匹配:

16 16 

17| 您看到的内容 | 解决方案 |17| 您看到的内容 | 解决方案 |

18| :----------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------- |18| :- | :- |

19| `command not found: claude` 或 `'claude' is not recognized` | [修复您的 PATH](#command-not-found-claude-after-installation) |19| `command not found: claude` 或 `'claude' is not recognized` | [修复您的 PATH](#command-not-found-claude-after-installation) |

20| `syntax error near unexpected token '<'` | [安装脚本返回 HTML](#install-script-returns-html-instead-of-a-shell-script) |20| `syntax error near unexpected token '<'` | [安装脚本返回 HTML](#install-script-returns-html-instead-of-a-shell-script) |

21| `curl: (22) The requested URL returned error: 403` | [安装脚本返回 403](#install-script-returns-html-instead-of-a-shell-script) |21| `curl: (22) The requested URL returned error: 403` | [安装脚本返回 403](#install-script-returns-html-instead-of-a-shell-script) |


403安装完成但 `claude` 不起作用。确切的错误因平台而异:403安装完成但 `claude` 不起作用。确切的错误因平台而异:

404 404 

405| 平台 | 错误消息 |405| 平台 | 错误消息 |

406| :---------- | :--------------------------------------------------------------------- |406| :- | :- |

407| macOS | `zsh: command not found: claude` |407| macOS | `zsh: command not found: claude` |

408| Linux | `bash: claude: command not found` |408| Linux | `bash: claude: command not found` |

409| Windows CMD | `'claude' is not recognized as an internal or external command` |409| Windows CMD | `'claude' is not recognized as an internal or external command` |

Details

9本页涵盖 Claude Code 运行后的性能、稳定性和搜索问题。对于其他问题,请从与您遇到的问题相匹配的页面开始:9本页涵盖 Claude Code 运行后的性能、稳定性和搜索问题。对于其他问题,请从与您遇到的问题相匹配的页面开始:

10 10 

11| 症状 | 转到 |11| 症状 | 转到 |

12| :------------------------------------------------------------------------------------------------------------------------ | :------------------------------------------------------------------------ |12| :- | :- |

13| `command not found`、安装失败、PATH 问题、`EACCES`、TLS 错误 | [故障排除安装和登录](/docs/zh-CN/troubleshoot-install) |13| `command not found`、安装失败、PATH 问题、`EACCES`、TLS 错误 | [故障排除安装和登录](/docs/zh-CN/troubleshoot-install) |

14| 更新或安装下载失败,显示 `The connection dropped while downloading the update` 或 `aborted` | [错误参考](/docs/zh-CN/errors#the-connection-dropped-while-downloading-the-update) |14| 更新或安装下载失败,显示 `The connection dropped while downloading the update` 或 `aborted` | [错误参考](/docs/zh-CN/errors#the-connection-dropped-while-downloading-the-update) |

15| 登录循环、OAuth 错误、`403 Forbidden`、"organization disabled"、Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry 凭据 | [故障排除安装和登录](/docs/zh-CN/troubleshoot-install#login-and-authentication) |15| 登录循环、OAuth 错误、`403 Forbidden`、"organization disabled"、Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry 凭据 | [故障排除安装和登录](/docs/zh-CN/troubleshoot-install#login-and-authentication) |

ultrareview.md +3 −3

Details

131Ultrareview 是一项高级功能,按额外使用量而不是您计划的包含使用量计费。131Ultrareview 是一项高级功能,按额外使用量而不是您计划的包含使用量计费。

132 132 

133| 计划 | 包含的免费运行 | 免费运行后 |133| 计划 | 包含的免费运行 | 免费运行后 |

134| ----------------- | ------- | -------------------------------------------------------------------------------------------------- |134| - | - | - |

135| Pro | 3 次免费运行 | 按 [额外使用量](https://support.claude.com/zh-CN/articles/12429409-extra-usage-for-paid-claude-plans) 计费 |135| Pro | 3 次免费运行 | 按 [额外使用量](https://support.claude.com/zh-CN/articles/12429409-extra-usage-for-paid-claude-plans) 计费 |

136| Max | 3 次免费运行 | 按 [额外使用量](https://support.claude.com/zh-CN/articles/12429409-extra-usage-for-paid-claude-plans) 计费 |136| Max | 3 次免费运行 | 按 [额外使用量](https://support.claude.com/zh-CN/articles/12429409-extra-usage-for-paid-claude-plans) 计费 |

137| Team 和 Enterprise | 无 | 按 [额外使用量](https://support.claude.com/zh-CN/articles/12429409-extra-usage-for-paid-claude-plans) 计费 |137| Team 和 Enterprise | 无 | 按 [额外使用量](https://support.claude.com/zh-CN/articles/12429409-extra-usage-for-paid-claude-plans) 计费 |


186进度消息和实时会话 URL 转到 stderr,以便 stdout 保持可解析。使用这些标志来控制输出、超时以及是否发布发现:186进度消息和实时会话 URL 转到 stderr,以便 stdout 保持可解析。使用这些标志来控制输出、超时以及是否发布发现:

187 187 

188| 标志 | 描述 |188| 标志 | 描述 |

189| --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |189| - | - |

190| `--json` | 打印原始 `bugs.json` 有效负载而不是格式化的发现 |190| `--json` | 打印原始 `bugs.json` 有效负载而不是格式化的发现 |

191| `--timeout <minutes>` | 等待审查完成的最大分钟数。默认为 45 |191| `--timeout <minutes>` | 等待审查完成的最大分钟数。默认为 45 |

192| `--post` | [将完成的发现作为来自您 GitHub 账户的一条纯文本注释发布](#post-findings-to-the-pull-request)到拉取请求。适用于 `github.com` 拉取请求目标;在其他目标上,Claude Code 忽略该标志并说明。需要 Claude Code v2.1.227 或更高版本 |192| `--post` | [将完成的发现作为来自您 GitHub 账户的一条纯文本注释发布](#post-findings-to-the-pull-request)到拉取请求。适用于 `github.com` 拉取请求目标;在其他目标上,Claude Code 忽略该标志并说明。需要 Claude Code v2.1.227 或更高版本 |


216两个审查都检查代码,但您在工作流的不同阶段使用它们。216两个审查都检查代码,但您在工作流的不同阶段使用它们。

217 217 

218| | `/code-review` | `/code-review ultra` |218| | `/code-review` | `/code-review ultra` |

219| ---- | ------------------------- | ------------------------------- |219| - | - | - |

220| 目标 | 您的工作差异、pull request、分支或路径 | 您的工作差异或 pull request |220| 目标 | 您的工作差异、pull request、分支或路径 | 您的工作差异或 pull request |

221| 运行位置 | 在您的会话中本地运行 | 在云沙箱中运行 |221| 运行位置 | 在您的会话中本地运行 | 在云沙箱中运行 |

222| 深度 | 随着 effort 参数扩展 | 具有独立验证的多代理队列 |222| 深度 | 随着 effort 参数扩展 | 具有独立验证的多代理队列 |

Details

40`/voice` 接受一个可选的模式参数:40`/voice` 接受一个可选的模式参数:

41 41 

42| 命令 | 效果 |42| 命令 | 效果 |

43| :------------ | :---------------------------------- |43| :- | :- |

44| `/voice` | 切换开或关,保持当前模式 |44| `/voice` | 切换开或关,保持当前模式 |

45| `/voice hold` | 在[按住模式](#hold-to-record)中启用 |45| `/voice hold` | 在[按住模式](#hold-to-record)中启用 |

46| `/voice tap` | 在[点击模式](#tap-to-record-and-send)中启用 |46| `/voice tap` | 在[点击模式](#tap-to-record-and-send)中启用 |


119 119 

120<Accordion title="支持的听写语言">120<Accordion title="支持的听写语言">

121 | 语言 | 代码 |121 | 语言 | 代码 |

122 | :----- | :--- |122 | :- | :- |

123 | 捷克语 | `cs` |123 | 捷克语 | `cs` |

124 | 丹麦语 | `da` |124 | 丹麦语 | `da` |

125 | 荷兰语 | `nl` |125 | 荷兰语 | `nl` |

vs-code.md +6 −6

Details

365该 URL 接受两个查询参数:365该 URL 接受两个查询参数:

366 366 

367| 参数 | 描述 |367| 参数 | 描述 |

368| ------------- | -------------------------------------------------------------------------------------------------------------------------------------- |368| - | - |

369| `plugin` | 插件的名称,如其市场所列。必需。 |369| `plugin` | 插件的名称,如其市场所列。必需。 |

370| `marketplace` | 插件的来源:GitHub `owner/repo`、`https://` URL 或 git SSH URL,例如 `git@github.com:owner/repo.git`。省略时默认为 `anthropics/claude-plugins-official`。 |370| `marketplace` | 插件的来源:GitHub `owner/repo`、`https://` URL 或 git SSH URL,例如 `git@github.com:owner/repo.git`。省略时默认为 `anthropics/claude-plugins-official`。 |

371 371 


427</Note>427</Note>

428 428 

429| 命令 | 快捷键 | 描述 |429| 命令 | 快捷键 | 描述 |

430| -------------------------- | -------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- |430| - | - | - |

431| Focus Input | `Cmd+Esc` (Mac) / `Ctrl+Esc` (Windows/Linux) | 在编辑器和 Claude 之间切换焦点 |431| Focus Input | `Cmd+Esc` (Mac) / `Ctrl+Esc` (Windows/Linux) | 在编辑器和 Claude 之间切换焦点 |

432| Focus last message | - | 将键盘焦点移动到对话中的最新消息,或移动到等待权限提示,以便您可以使用键盘或屏幕阅读器从那里读取。在[终端模式](#switch-to-terminal-mode)中不可用。需要 Claude Code v2.1.268 或更高版本 |432| Focus last message | - | 将键盘焦点移动到对话中的最新消息,或移动到等待权限提示,以便您可以使用键盘或屏幕阅读器从那里读取。在[终端模式](#switch-to-terminal-mode)中不可用。需要 Claude Code v2.1.268 或更高版本 |

433| Open in Side Bar | - | 在侧边栏中打开 Claude |433| Open in Side Bar | - | 在侧边栏中打开 Claude |


487处理程序接受两个可选查询参数:487处理程序接受两个可选查询参数:

488 488 

489| 参数 | 描述 |489| 参数 | 描述 |

490| --------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |490| - | - |

491| `prompt` | 在提示框中预填充的文本。必须进行 URL 编码。提示框会被预填充但不会自动提交。 |491| `prompt` | 在提示框中预填充的文本。必须进行 URL 编码。提示框会被预填充但不会自动提交。 |

492| `session` | 要恢复的会话 ID,而不是开始新对话。该会话必须属于 VS Code 中当前打开的工作区。如果找不到该会话,则改为开始新对话。如果该会话已在选项卡中打开,则该选项卡会获得焦点。要以编程方式捕获会话 ID,请参阅[继续对话](/docs/zh-CN/headless#continue-conversations)。 |492| `session` | 要恢复的会话 ID,而不是开始新对话。该会话必须属于 VS Code 中当前打开的工作区。如果找不到该会话,则改为开始新对话。如果该会话已在选项卡中打开,则该选项卡会获得焦点。要以编程方式捕获会话 ID,请参阅[继续对话](/docs/zh-CN/headless#continue-conversations)。 |

493 493 


519VS Code 从您的用户设置中读取 `initialPermissionMode`,并忽略工作区值。在 v2.1.225 之前,VS Code 将该设置默认为 `default` 并应用工作区值。519VS Code 从您的用户设置中读取 `initialPermissionMode`,并忽略工作区值。在 v2.1.225 之前,VS Code 将该设置默认为 `default` 并应用工作区值。

520 520 

521| 设置 | 默认值 | 描述 |521| 设置 | 默认值 | 描述 |

522| ----------------------------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |522| - | - | - |

523| `useTerminal` | `false` | 在终端模式而不是图形面板中启动 Claude |523| `useTerminal` | `false` | 在终端模式而不是图形面板中启动 Claude |

524| `initialPermissionMode` | - | 控制新对话的批准提示:`default`、`plan`、`acceptEdits` 或 `bypassPermissions`。`manual` 是 `default` 的别名,选择模式指示器中标记为 **Manual** 的模式。当您将其留空时,扩展会选择起始权限模式,如[切换权限模式](/docs/zh-CN/permission-modes#switch-permission-modes)中所述。 |524| `initialPermissionMode` | - | 控制新对话的批准提示:`default`、`plan`、`acceptEdits` 或 `bypassPermissions`。`manual` 是 `default` 的别名,选择模式指示器中标记为 **Manual** 的模式。当您将其留空时,扩展会选择起始权限模式,如[切换权限模式](/docs/zh-CN/permission-modes#switch-permission-modes)中所述。 |

525| `preferredLocation` | `panel` | Claude 打开的位置:`sidebar`(右侧)或 `panel`(新标签页) |525| `preferredLocation` | `panel` | Claude 打开的位置:`sidebar`(右侧)或 `panel`(新标签页) |


584Claude Code 既可作为 VS Code extension(图形面板)使用,也可作为 CLI(终端中的命令行界面)使用。某些功能仅在 CLI 中可用。如果您需要仅限 CLI 的功能,请在 VS Code 的集成终端中运行 `claude`。这需要[独立 CLI 安装](/docs/zh-CN/setup):extension 不会将 `claude` 添加到您的 PATH。请参阅[在 VS Code 中运行 CLI](#run-cli-in-vs-code)。584Claude Code 既可作为 VS Code extension(图形面板)使用,也可作为 CLI(终端中的命令行界面)使用。某些功能仅在 CLI 中可用。如果您需要仅限 CLI 的功能,请在 VS Code 的集成终端中运行 `claude`。这需要[独立 CLI 安装](/docs/zh-CN/setup):extension 不会将 `claude` 添加到您的 PATH。请参阅[在 VS Code 中运行 CLI](#run-cli-in-vs-code)。

585 585 

586| 功能 | CLI | VS Code Extension |586| 功能 | CLI | VS Code Extension |

587| ------------------- | --------------------- | ------------------------------------------------------------------ |587| - | - | - |

588| Commands and skills | [全部](/docs/zh-CN/commands) | 子集(输入 `/` 查看可用项) |588| Commands and skills | [全部](/docs/zh-CN/commands) | 子集(输入 `/` 查看可用项) |

589| MCP server config | 是 | 是(在聊天面板中使用 `/mcp` [添加和管理服务器](#connect-to-external-tools-with-mcp)) |589| MCP server config | 是 | 是(在聊天面板中使用 `/mcp` [添加和管理服务器](#connect-to-external-tools-with-mcp)) |

590| Checkpoints | 是 | 是 |590| Checkpoints | 是 | 是 |


729**暴露给模型的工具。** 服务器托管十几个工具,但只有两个对模型可见。其余的是 CLI 用于自己的 UI 的内部 RPC——打开 diff、读取选择、保存文件——在工具列表到达 Claude 之前被过滤掉。729**暴露给模型的工具。** 服务器托管十几个工具,但只有两个对模型可见。其余的是 CLI 用于自己的 UI 的内部 RPC——打开 diff、读取选择、保存文件——在工具列表到达 Claude 之前被过滤掉。

730 730 

731| 工具名称(如 hooks 所见) | 功能 | 只读 |731| 工具名称(如 hooks 所见) | 功能 | 只读 |

732| -------------------------- | ------------------------------------------------- | -- |732| - | - | - |

733| `mcp__ide__getDiagnostics` | 返回语言服务器诊断——VS Code 的问题面板中的错误和警告。可选地限定到一个文件。 | 是 |733| `mcp__ide__getDiagnostics` | 返回语言服务器诊断——VS Code 的问题面板中的错误和警告。可选地限定到一个文件。 | 是 |

734| `mcp__ide__executeCode` | 在活动 Jupyter notebook 的内核中运行 Python 代码。请参阅下面的确认流程。 | 否 |734| `mcp__ide__executeCode` | 在活动 Jupyter notebook 的内核中运行 Python 代码。请参阅下面的确认流程。 | 否 |

735 735 

Details

43Claude Code 在任何地方的行为都相同。改变的是会话运行的位置以及您的本地配置是否可用:43Claude Code 在任何地方的行为都相同。改变的是会话运行的位置以及您的本地配置是否可用:

44 44 

45| | Cloud session | Local session | Local session with [Remote Control](/docs/zh-CN/remote-control) |45| | Cloud session | Local session | Local session with [Remote Control](/docs/zh-CN/remote-control) |

46| :---------------------------------- | :--------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------- | :--------------------------------------------------------- |46| :- | :- | :- | :- |

47| **代码运行在** | Cloud VM,默认由 Anthropic 管理 | 您的机器 | 您的机器 |47| **代码运行在** | Cloud VM,默认由 Anthropic 管理 | 您的机器 | 您的机器 |

48| **您从以下位置启动它** | claude.ai/code、Claude 移动应用、选择了 **Cloud** 的 Desktop 应用,或 `claude --cloud` | 您的终端、您的 IDE,或选择了 **Local** 的 Desktop 应用 | 您的终端、VS Code 扩展,或 Desktop 应用 |48| **您从以下位置启动它** | claude.ai/code、Claude 移动应用、选择了 **Cloud** 的 Desktop 应用,或 `claude --cloud` | 您的终端、您的 IDE,或选择了 **Local** 的 Desktop 应用 | 您的终端、VS Code 扩展,或 Desktop 应用 |

49| **您从以下位置聊天** | claude.ai、移动应用,或 Desktop 应用 | 您启动它的位置 | claude.ai 或移动应用,以及您启动它的位置 |49| **您从以下位置聊天** | claude.ai、移动应用,或 Desktop 应用 | 您启动它的位置 | claude.ai 或移动应用,以及您启动它的位置 |


175您可以通过向 [claude.ai/code](https://claude.ai/code) URL 添加查询参数来预填充新会话的提示、仓库和环境。使用此功能来构建集成,例如问题跟踪器中的按钮,该按钮使用问题描述作为提示打开 Claude Code。175您可以通过向 [claude.ai/code](https://claude.ai/code) URL 添加查询参数来预填充新会话的提示、仓库和环境。使用此功能来构建集成,例如问题跟踪器中的按钮,该按钮使用问题描述作为提示打开 Claude Code。

176 176 

177| 参数 | 描述 |177| 参数 | 描述 |

178| :------------- | :----------------------------------------------------------------- |178| :- | :- |

179| `prompt` | 要在输入框中预填充的提示文本。也接受别名 `q`。 |179| `prompt` | 要在输入框中预填充的提示文本。也接受别名 `q`。 |

180| `prompt_url` | 要从中获取提示文本的 URL,用于太长而无法嵌入查询字符串的提示。URL 必须允许跨源请求。当也设置了 `prompt` 时被忽略。 |180| `prompt_url` | 要从中获取提示文本的 URL,用于太长而无法嵌入查询字符串的提示。URL 必须允许跨源请求。当也设置了 `prompt` 时被忽略。 |

181| `repositories` | 要预选的 `owner/repo` 段的逗号分隔列表。也接受别名 `repo`。 |181| `repositories` | 要预选的 `owner/repo` 段的逗号分隔列表。也接受别名 `repo`。 |

workflows.md +6 −6

Details

21[子代理](/docs/zh-CN/sub-agents)、[skills](/docs/zh-CN/skills)、[agent teams](/docs/zh-CN/agent-teams) 和工作流都可以运行多步骤任务。区别在于谁掌握计划:21[子代理](/docs/zh-CN/sub-agents)、[skills](/docs/zh-CN/skills)、[agent teams](/docs/zh-CN/agent-teams) 和工作流都可以运行多步骤任务。区别在于谁掌握计划:

22 22 

23| | 子代理 | Skills | Agent teams | 工作流 |23| | 子代理 | Skills | Agent teams | 工作流 |

24| :--------- | :------------ | :------------ | :----------- | :----------- |24| :- | :- | :- | :- | :- |

25| 它是什么 | Claude 生成的工作者 | Claude 遵循的指令 | 监督对等会话的主导代理 | 运行时执行的脚本 |25| 它是什么 | Claude 生成的工作者 | Claude 遵循的指令 | 监督对等会话的主导代理 | 运行时执行的脚本 |

26| 谁决定接下来运行什么 | Claude,逐轮 | Claude,遵循提示 | 主导代理,逐轮 | 脚本 |26| 谁决定接下来运行什么 | Claude,逐轮 | Claude,遵循提示 | 主导代理,逐轮 | 脚本 |

27| 中间结果在哪里 | Claude 的上下文窗口 | Claude 的上下文窗口 | 共享任务列表 | 脚本变量 |27| 中间结果在哪里 | Claude 的上下文窗口 | Claude 的上下文窗口 | 共享任务列表 | 脚本变量 |


80Claude Code 包含 `/deep-research` 作为内置工作流:80Claude Code 包含 `/deep-research` 作为内置工作流:

81 81 

82| 命令 | 它做什么 |82| 命令 | 它做什么 |

83| :-------------------------- | :----------------------------------------------------------------------------------------------------------------------------------- |83| :- | :- |

84| `/deep-research <question>` | 在多个角度上扇出网络搜索问题,获取并交叉检查它找到的来源,对每个声明投票,并返回一份引用的报告,其中未通过交叉检查的声明已被过滤掉。需要[WebSearch 工具](/docs/zh-CN/tools-reference#websearch-tool-behavior)可用 |84| `/deep-research <question>` | 在多个角度上扇出网络搜索问题,获取并交叉检查它找到的来源,对每个声明投票,并返回一份引用的报告,其中未通过交叉检查的声明已被过滤掉。需要[WebSearch 工具](/docs/zh-CN/tools-reference#websearch-tool-behavior)可用 |

85 85 

86`/deep-research` 仅在您调用它时运行。86`/deep-research` 仅在您调用它时运行。


96进度视图显示每个阶段及其代理计数、令牌总数和经过的时间。页脚列出每个操作的键:96进度视图显示每个阶段及其代理计数、令牌总数和经过的时间。页脚列出每个操作的键:

97 97 

98| 键 | 操作 |98| 键 | 操作 |

99| :------------ | :---------------------------------------------------------- |99| :- | :- |

100| `↑` / `↓` | 选择一个阶段或代理 |100| `↑` / `↓` | 选择一个阶段或代理 |

101| `Enter` 或 `→` | 深入选定的阶段,然后进入代理的详情。在详情中,`Enter` 展开或折叠它 |101| `Enter` 或 `→` | 深入选定的阶段,然后进入代理的详情。在详情中,`Enter` 展开或折叠它 |

102| `Esc` 或 `←` | 返回一个级别。在 v2.1.203 至 v2.1.205 中,`←` 没有退出阶段或代理;在这些版本上使用 `Esc` |102| `Esc` 或 `←` | 返回一个级别。在 v2.1.203 至 v2.1.205 中,`←` 没有退出阶段或代理;在这些版本上使用 `Esc` |


191您是否看到此提示取决于您的[权限模式](/docs/zh-CN/permission-modes):191您是否看到此提示取决于您的[权限模式](/docs/zh-CN/permission-modes):

192 192 

193| 权限模式 | 何时提示您 |193| 权限模式 | 何时提示您 |

194| :-------------------- | :----------------------------------------------------- |194| :- | :- |

195| 自动 | 仅首次启动。任何**是**在您的用户设置中记录同意,之后启动无需提示。当 ultracode 启用时完全跳过 |195| 自动 | 仅首次启动。任何**是**在您的用户设置中记录同意,之后启动无需提示。当 ultracode 启用时完全跳过 |

196| 手动,接受编辑 | 每次运行,除非您已为此项目中的该工作流选择**是,不再询问** |196| 手动,接受编辑 | 每次运行,除非您已为此项目中的该工作流选择**是,不再询问** |

197| 绕过权限 | Claude Code 不提示您。运行立即启动 |197| 绕过权限 | Claude Code 不提示您。运行立即启动 |


402运行时应用以下约束:402运行时应用以下约束:

403 403 

404| 约束 | 原因 |404| 约束 | 原因 |

405| :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------- |405| :- | :- |

406| 无中途用户输入 | 运行仅在代理权限提示和 [使用限制等待](#when-a-run-hits-your-usage-limit) 时暂停。对于阶段之间的签署,将每个阶段作为其自己的工作流运行 |406| 无中途用户输入 | 运行仅在代理权限提示和 [使用限制等待](#when-a-run-hits-your-usage-limit) 时暂停。对于阶段之间的签署,将每个阶段作为其自己的工作流运行 |

407| 工作流本身无直接文件系统或 shell 访问 | 代理读取、写入和运行命令。脚本协调代理 |407| 工作流本身无直接文件系统或 shell 访问 | 代理读取、写入和运行命令。脚本协调代理 |

408| 无模块加载:包含 `import()` 的脚本在运行开始前失败 | 脚本体是纯 JavaScript。将需要库的工作放在代理的任务中 |408| 无模块加载:包含 `import()` 的脚本在运行开始前失败 | 脚本体是纯 JavaScript。将需要库的工作放在代理的任务中 |


490每个值映射到一个代理计数:490每个值映射到一个代理计数:

491 491 

492| 值 | Claude 针对的代理计数 |492| 值 | Claude 针对的代理计数 |

493| :------------- | :--------------------- |493| :- | :- |

494| `unrestricted` | 无指南:Claude 根据任务调整工作流大小 |494| `unrestricted` | 无指南:Claude 根据任务调整工作流大小 |

495| `small` | 少于 5 个代理 |495| `small` | 少于 5 个代理 |

496| `medium` | 少于 10 个代理 |496| `medium` | 少于 10 个代理 |

worktrees.md +1 −1

Details

393当您交互式恢复会话且 Claude Code 无法将其返回到其 worktree 时,Claude Code 会使用下面的消息之一说明。当 Claude Code 清除 worktree 绑定时,它在会话记录中记录清除。如果您[抑制记录写入](/docs/zh-CN/sessions#where-transcripts-are-stored),消息改为说绑定无法被清除,Claude Code 将在稍后恢复时重新检查 worktree。393当您交互式恢复会话且 Claude Code 无法将其返回到其 worktree 时,Claude Code 会使用下面的消息之一说明。当 Claude Code 清除 worktree 绑定时,它在会话记录中记录清除。如果您[抑制记录写入](/docs/zh-CN/sessions#where-transcripts-are-stored),消息改为说绑定无法被清除,Claude Code 将在稍后恢复时重新检查 worktree。

394 394 

395| 消息开头 | 发生了什么以及要做什么 |395| 消息开头 | 发生了什么以及要做什么 |

396| :------------------------------------------------ | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |396| :- | :- |

397| `Your worktree <path> no longer exists` | worktree 目录被删除。会话在当前目录中继续而不隔离,Claude Code 清除 worktree 绑定。无需操作。 |397| `Your worktree <path> no longer exists` | worktree 目录被删除。会话在当前目录中继续而不隔离,Claude Code 清除 worktree 绑定。无需操作。 |

398| `Could not verify your worktree <path> this time` | Claude Code 无法验证 worktree,通常是由于暂时原因;绑定被保留,会话在当前目录中继续而不隔离。再次恢复以重试;如果它继续发生,在新会话中进入 worktree 并匹配[Claude Code 拒绝使用 worktree](#claude-code-refuses-to-use-a-worktree) 下的拒绝消息,它可能命名主检出的元数据而不是 worktree 的。 |398| `Could not verify your worktree <path> this time` | Claude Code 无法验证 worktree,通常是由于暂时原因;绑定被保留,会话在当前目录中继续而不隔离。再次恢复以重试;如果它继续发生,在新会话中进入 worktree 并匹配[Claude Code 拒绝使用 worktree](#claude-code-refuses-to-use-a-worktree) 下的拒绝消息,它可能命名主检出的元数据而不是 worktree 的。 |

399| `Did not re-enter your worktree <path>` | Claude Code 拒绝 worktree 绑定为不安全;它清除绑定,会话继续而不隔离。消息包括特定的拒绝:在[Claude Code 拒绝使用 worktree](#claude-code-refuses-to-use-a-worktree) 下匹配它,因为修复对某些拒绝是重新创建,对其他的是路径更改。 |399| `Did not re-enter your worktree <path>` | Claude Code 拒绝 worktree 绑定为不安全;它清除绑定,会话继续而不隔离。消息包括特定的拒绝:在[Claude Code 拒绝使用 worktree](#claude-code-refuses-to-use-a-worktree) 下匹配它,因为修复对某些拒绝是重新创建,对其他的是路径更改。 |

Details

50ZDR 不适用于以下内容,即使对于启用了 ZDR 的组织也是如此。这些功能遵循[标准数据保留政策](/docs/zh-CN/data-usage#data-retention):50ZDR 不适用于以下内容,即使对于启用了 ZDR 的组织也是如此。这些功能遵循[标准数据保留政策](/docs/zh-CN/data-usage#data-retention):

51 51 

52| 功能 | 详情 |52| 功能 | 详情 |

53| -------------- | ------------------------------------------------------------------------------------- |53| - | - |

54| claude.ai 上的聊天 | 通过 Claude for Enterprise 网络界面的聊天对话不受 ZDR 保护。 |54| claude.ai 上的聊天 | 通过 Claude for Enterprise 网络界面的聊天对话不受 ZDR 保护。 |

55| Cowork | Cowork 会话不受 ZDR 保护。 |55| Cowork | Cowork 会话不受 ZDR 保护。 |

56| Claude Code 分析 | 不存储提示或模型响应,但收集生产力元数据,如账户电子邮件和使用统计。对于 ZDR 组织,贡献指标不可用;[分析仪表板](/docs/zh-CN/analytics)仅显示使用指标。 |56| Claude Code 分析 | 不存储提示或模型响应,但收集生产力元数据,如账户电子邮件和使用统计。对于 ZDR 组织,贡献指标不可用;[分析仪表板](/docs/zh-CN/analytics)仅显示使用指标。 |


64当为 Claude for Enterprise 上的 Claude Code 组织启用 ZDR 时,某些需要存储提示或完成的功能会在后端级别自动禁用:64当为 Claude for Enterprise 上的 Claude Code 组织启用 ZDR 时,某些需要存储提示或完成的功能会在后端级别自动禁用:

65 65 

66| 功能 | 原因 |66| 功能 | 原因 |

67| ------------------------------------------------------------------------------------------------------ | --------------------------------- |67| - | - |

68| [网络上的 Claude Code](/docs/zh-CN/claude-code-on-the-web),包括从 [Desktop 应用](/docs/zh-CN/desktop#cloud-sessions)启动的应用 | 需要服务器端存储会话数据,包括包含提示和完成的对话历史。 |68| [网络上的 Claude Code](/docs/zh-CN/claude-code-on-the-web),包括从 [Desktop 应用](/docs/zh-CN/desktop#cloud-sessions)启动的应用 | 需要服务器端存储会话数据,包括包含提示和完成的对话历史。 |

69| [Claude Tag](https://claude.com/docs/claude-tag) | 保留频道内存和会话记录。 |69| [Claude Tag](https://claude.com/docs/claude-tag) | 保留频道内存和会话记录。 |

70| [Artifacts](/docs/zh-CN/artifacts) | 需要在 Anthropic 运营的基础设施上存储已发布的页面内容。 |70| [Artifacts](/docs/zh-CN/artifacts) | 需要在 Anthropic 运营的基础设施上存储已发布的页面内容。 |