SpyBara
Go Premium

Documentation 2026-09-29 23:58 UTC to 2026-09-30 23:00 UTC

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

advisor.md +3 −2

Details

95 选择顾问模型95 选择顾问模型

96</h2>96</h2>

97 97 

98顾问的能力必须至少与主模型相同。每个主模型接受的顾问是:98Claude Code 和 API 都需要一个顾问,其能力至少与主模型相同,这两者对某些模型的排名不同。每个主模型接受的顾问是:

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.5 或 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 顾问 |

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

105| Opus 4.6 | Fable、Opus、Sonnet 5 或更高版本 | Sonnet 4.6 顾问被拒绝 |106| Opus 4.6 | Fable、Opus、Sonnet 5 或更高版本 | Sonnet 4.6 顾问被拒绝 |

106| Opus 4.7 或 Opus 4.8 | Fable 和 Opus 4.7 或更高版本 | Opus 4.6 或 Sonnet 顾问被拒绝 |107| Opus 4.7 或 Opus 4.8 | Fable 和 Opus 4.7 或更高版本 | Opus 4.6 或 Sonnet 顾问被拒绝 |

107| Opus 5.5 或 Opus 5 | Fable 和 Opus 5 或更高版本 | Opus 4.6 或 Sonnet 顾问被拒绝,API 拒绝 Opus 4.7 或 Opus 4.8 顾问 |108| Opus 5.5 或 Opus 5 | Fable 和 Opus 5 或更高版本 | Opus 4.6 或 Sonnet 顾问被拒绝,API 拒绝 Opus 4.7 或 Opus 4.8 顾问 |

Details

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 提议更改而不执行它们,例如在代码审查期间或当你需要在进行更改前批准它们时 |

260| `"dontAsk"` | 从不提示。由 [权限规则](/docs/zh-CN/settings-reference#permission-settings) 预批准的工具运行,以及在 `default` 模式中不需要批准的调用(如你的工作目录内的文件读取);所有其他会提示的调用都被拒绝。`AskUserQuestion`、连接器工具 [你的组织设置为 `ask`](/docs/zh-CN/mcp#organization-controls-on-connector-tools) 和标记为 [`requiresUserInteraction`](/docs/zh-CN/mcp#require-approval-for-a-specific-tool) 的 MCP 工具即使你已允许它们也会被拒绝 | 你想要为无头代理提供固定、明确的工具表面,并且更喜欢硬拒绝而不是在 `canUseTool` 缺失时的无声依赖 |260| `"dontAsk"` | 从不提示。由 [权限规则](/docs/zh-CN/settings-reference#permission-settings) 预批准的工具运行,以及在 `default` 模式中不需要批准的调用(如你的工作目录内的文件读取);所有其他会提示的调用都被拒绝。`AskUserQuestion`、连接器工具 [你的组织设置为 `ask`](/docs/zh-CN/mcp#organization-controls-on-connector-tools) 和标记为 [`requiresUserInteraction`](/docs/zh-CN/mcp#require-approval-for-a-specific-tool) 的 MCP 工具即使你已允许它们也会被拒绝 | 你想要为无头代理提供固定、明确的工具表面,并且更喜欢硬拒绝而不是在 `canUseTool` 缺失时的无声依赖 |

261| `"auto"` | 使用模型分类器批准或拒绝权限提示。有关可用性和行为,请参阅 [自动模式](/docs/zh-CN/permission-modes#eliminate-prompts-with-auto-mode) | 仍然想要工具使用安全防护的自主代理 |261| `"auto"` | 使用模型分类器来审查诸如 shell 命令和网络请求之类的操作,允许或阻止它审查的每一个。有关可用性和决策顺序,请参阅 [自动模式](/docs/zh-CN/permission-modes#eliminate-prompts-with-auto-mode) | 仍然想要工具使用安全防护的自主代理 |

262| `"bypassPermissions"` | 运行所有允许的工具而不询问,除了由显式 [`ask` 规则](/docs/zh-CN/settings-reference#permission-settings) 匹配的工具、连接器工具 [你的组织设置为 `ask`](/docs/zh-CN/mcp#organization-controls-on-connector-tools) 和需要用户交互的工具。[跨会话消息安全防护](/docs/zh-CN/permission-modes#skip-all-checks-with-bypasspermissions-mode) 仍然适用。有关优先级顺序,请参阅 [权限如何被评估](/docs/zh-CN/agent-sdk/permissions#how-permissions-are-evaluated)。在 TypeScript SDK 中,还需要在 `options` 中设置 `allowDangerouslySkipPermissions: true`。无法在 Unix 上以 root 身份运行。仅在隔离环境中使用,其中代理的操作无法影响你关心的系统 | CI、容器或其他隔离环境 |262| `"bypassPermissions"` | 运行所有允许的工具而不询问,除了由显式 [`ask` 规则](/docs/zh-CN/settings-reference#permission-settings) 匹配的工具、连接器工具 [你的组织设置为 `ask`](/docs/zh-CN/mcp#organization-controls-on-connector-tools) 和需要用户交互的工具。[跨会话消息安全防护](/docs/zh-CN/permission-modes#skip-all-checks-with-bypasspermissions-mode) 仍然适用。有关优先级顺序,请参阅 [权限如何被评估](/docs/zh-CN/agent-sdk/permissions#how-permissions-are-evaluated)。在 TypeScript SDK 中,还需要在 `options` 中设置 `allowDangerouslySkipPermissions: true`。无法在 Unix 上以 root 身份运行。仅在隔离环境中使用,其中代理的操作无法影响你关心的系统 | CI、容器或其他隔离环境 |

263 263 

264对于交互式应用程序,使用 `"default"` 和工具批准回调来显示批准提示。对于开发机器上的自主代理,`"acceptEdits"` 自动批准文件编辑和常见文件系统命令(`mkdir`、`touch`、`mv`、`cp` 等),同时仍然在允许规则后面限制其他 `Bash` 命令。为 CI、容器或其他隔离环境保留 `"bypassPermissions"`。有关完整详情,请参阅 [权限](/docs/zh-CN/agent-sdk/permissions)。264对于交互式应用程序,使用 `"default"` 和工具批准回调来显示批准提示。对于开发机器上的自主代理,`"acceptEdits"` 自动批准文件编辑和常见文件系统命令(`mkdir`、`touch`、`mv`、`cp` 等),同时仍然在允许规则后面限制其他 `Bash` 命令。为 CI、容器或其他隔离环境保留 `"bypassPermissions"`。有关完整详情,请参阅 [权限](/docs/zh-CN/agent-sdk/permissions)。

Details

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

135| `bypassPermissions` | 绕过权限检查 | 工具运行时无需权限提示,除了[任何模式都不自动批准的操作](/docs/zh-CN/permission-modes#actions-no-mode-auto-approves)。请谨慎使用 |135| `bypassPermissions` | 绕过权限检查 | 工具运行时无需权限提示,除了[任何模式都不自动批准的操作](/docs/zh-CN/permission-modes#actions-no-mode-auto-approves)。请谨慎使用 |

136| `plan` | 规划模式 | Claude 在不编辑您的源文件的情况下探索和规划;文件编辑永远不会自动批准,而是通过您的 `canUseTool` 回调提示 |136| `plan` | 规划模式 | Claude 在不编辑您的源文件的情况下探索和规划;文件编辑永远不会自动批准,而是通过您的 `canUseTool` 回调提示 |

137| `auto` | 模型分类批准 | 模型分类器批准或拒绝权限提示。有关可用性,请参阅[自动模式](/docs/zh-CN/permission-modes#eliminate-prompts-with-auto-mode) |137| `auto` | 模型分类批准 | 模型分类器审查 shell 命令和网络请求等操作,允许或阻止它审查的每一个操作。有关可用性和决策顺序,请参阅[自动模式](/docs/zh-CN/permission-modes#eliminate-prompts-with-auto-mode) |

138 138 

139<Warning>139<Warning>

140 **子代理继承:** 子代理在父会话的权限模式下运行,除非您在其[`AgentDefinition`](/docs/zh-CN/agent-sdk/typescript#agentdefinition)上设置 `permissionMode`,且父会话处于 `default`、`dontAsk` 或 `plan` 模式。即使这样,Claude Code 也永远不会应用 `"bypassPermissions"` 值。子代理仅在父会话本身处于 `bypassPermissions` 模式时才在该模式下运行。 `bypassPermissions` 异常需要 Claude Code v2.1.267 或更高版本。140 **子代理继承:** 子代理在父会话的权限模式下运行,除非您在其[`AgentDefinition`](/docs/zh-CN/agent-sdk/typescript#agentdefinition)上设置 `permissionMode`,且父会话处于 `default`、`dontAsk` 或 `plan` 模式。即使这样,Claude Code 也永远不会应用 `"bypassPermissions"` 值。子代理仅在父会话本身处于 `bypassPermissions` 模式时才在该模式下运行。 `bypassPermissions` 异常需要 Claude Code v2.1.267 或更高版本。

Details

2885 2885 

2886**工具名称:** `Bash`2886**工具名称:** `Bash`

2887 2887 

2888关于设置前台上限的内容,见 [超时和输出限制](/docs/zh-CN/tools-reference#timeout-and-output-limits)。关于后台时间限制,见 [后台命令](/docs/zh-CN/tools-reference#background-commands)。

2889 

2888**输入:**2890**输入:**

2889 2891 

2890```python theme={null}2892```python theme={null}

2891{2893{

2892 "command": str, # 要执行的命令2894 "command": str, # 要执行的命令

2893 "timeout": int | None, # 可选的超时时间(毫秒)(最大 600000;更高的值被限制为最大值)2895 "timeout": int | None, # 毫秒。前台:默认上限为 600000,更高的值被限制。使用 run_in_background(Claude Code v2.1.285 或更高版本):后台时间限制,省略时为 1800000,上限为 7200000,除非提高

2894 "description": str | None, # 清晰、简洁的描述(5-10 个单词)2896 "description": str | None, # 清晰、简洁的描述(5-10 个单词)

2895 "run_in_background": bool | None, # 设置为 true 以在后台运行2897 "run_in_background": bool | None, # 设置为 true 以在后台运行

2896}2898}


3193**工具名称:** `TodoWrite`3195**工具名称:** `TodoWrite`

3194 3196 

3195<Note>3197<Note>

3196 The following tools are available by default only on Claude 3.x models, Opus 4 through 4.7, Sonnet 4 through 4.6, and Haiku 4.5. On every other model, including model IDs Claude Code doesn't recognize, they aren't available unless you opt in:3198 以下工具仅在 Claude 3.x 模型、Opus 4 至 4.7、Sonnet 4 至 4.6 和 Haiku 4.5 上默认可用。在所有其他模型上,包括 Claude Code 无法识别的模型 ID,除非您选择加入,否则它们不可用:

3197 3199 

3198 * `TodoWrite`3200 * `TodoWrite`

3199 * `TaskCreate`3201 * `TaskCreate`


3201 * `TaskUpdate`3203 * `TaskUpdate`

3202 * `TaskList`3204 * `TaskList`

3203 3205 

3204 Wherever the tools are available, Claude Code provides the four Task tools, or `TodoWrite` instead when you set `CLAUDE_CODE_ENABLE_TASKS=0`.3206 无论工具在何处可用,Claude Code 都提供四个 Task 工具,或者当你设置 `CLAUDE_CODE_ENABLE_TASKS=0` 时改为提供 `TodoWrite`。

3205 3207 

3206 This default set applies in Claude Code v2.1.268 and later, which the TypeScript Agent SDK bundles from v0.3.268.3208 此默认集合适用于 Claude Code v2.1.268 及更高版本,TypeScript Agent SDK 从 v0.3.268 开始捆绑此版本。

3207 3209 

3208 见 [模型可用性](/docs/zh-CN/agent-sdk/todo-tracking#model-availability) 以选择加入。3210 见 [模型可用性](/docs/zh-CN/agent-sdk/todo-tracking#model-availability) 以选择加入。

3209</Note>3211</Note>

Details

15</h2>15</h2>

16 16 

17<Note>17<Note>

18 The following tools are available by default only on Claude 3.x models, Opus 4 through 4.7, Sonnet 4 through 4.6, and Haiku 4.5. On every other model, including model IDs Claude Code doesn't recognize, they aren't available unless you opt in:18 以下工具仅在 Claude 3.x 模型、Opus 4 至 4.7、Sonnet 4 至 4.6 和 Haiku 4.5 上默认可用。在所有其他模型上,包括 Claude Code 无法识别的模型 ID,除非您选择加入,否则它们不可用:

19 19 

20 * `TodoWrite`20 * `TodoWrite`

21 * `TaskCreate`21 * `TaskCreate`


23 * `TaskUpdate`23 * `TaskUpdate`

24 * `TaskList`24 * `TaskList`

25 25 

26 Wherever the tools are available, Claude Code provides the four Task tools, or `TodoWrite` instead when you set `CLAUDE_CODE_ENABLE_TASKS=0`.26 无论工具在何处可用,Claude Code 都提供四个 Task 工具,或者当你设置 `CLAUDE_CODE_ENABLE_TASKS=0` 时改为提供 `TodoWrite`。

27 27 

28 This default set applies in Claude Code v2.1.268 and later, which the TypeScript Agent SDK bundles from v0.3.268.28 此默认集合适用于 Claude Code v2.1.268 及更高版本,TypeScript Agent SDK 从 v0.3.268 开始捆绑此版本。

29</Note>29</Note>

30 30 

31在默认情况下没有这些工具的模型上,除非您选择加入会话,否则您在消息流中看不到这些工具的 `tool_use` 块。Agent SDK 通过它捆绑的 Claude Code 二进制文件应用这些默认值。如果您将 `pathToClaudeCodeExecutable`(TypeScript)或 `cli_path`(Python)指向您自己的 Claude Code 安装,您将获得该安装提供的任何工具,在其自己的默认值下。要查看运行中会话中的确切集合,请[检查哪些工具可用](/docs/zh-CN/tools-reference#check-which-tools-are-available)。要选择加入会话,请执行以下操作之一:31在默认情况下没有这些工具的模型上,除非您选择加入会话,否则您在消息流中看不到这些工具的 `tool_use` 块。Agent SDK 通过它捆绑的 Claude Code 二进制文件应用这些默认值。如果您将 `pathToClaudeCodeExecutable`(TypeScript)或 `cli_path`(Python)指向您自己的 Claude Code 安装,您将获得该安装提供的任何工具,在其自己的默认值下。要查看运行中会话中的确切集合,请[检查哪些工具可用](/docs/zh-CN/tools-reference#check-which-tools-are-available)。要选择加入会话,请执行以下操作之一:

Details

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

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

310| `fileSize` | `number \| undefined` | 会话文件大小(字节)。仅对本地 JSONL 存储进行填充 |310| `fileSize` | `number \| undefined` | 会话文件大小(字节)。仅对本地 JSONL 存储进行填充 |

311| `customTitle` | `string \| undefined` | 用户设置的会话标题(通过 `/rename`) |311| `customTitle` | `string \| undefined` | 会话的自定义标题(当设置了一个时),例如通过 `--name`、`/rename`、hook 的 `sessionTitle` 输出或 [`renameSession()`](#renamesession)。否则为 AI 生成的会话标题(如果会话有的话) |

312| `firstPrompt` | `string \| undefined` | 会话中的第一个有意义的用户提示 |312| `firstPrompt` | `string \| undefined` | 会话中的第一个有意义的用户提示 |

313| `gitBranch` | `string \| undefined` | 会话结束时的 git 分支 |313| `gitBranch` | `string \| undefined` | 会话结束时的 git 分支 |

314| `cwd` | `string \| undefined` | 会话的工作目录 |314| `cwd` | `string \| undefined` | 会话的工作目录 |


3124**工具名称:** `Agent`。之前的名称 `Task` 仍然被接受作为别名,[`SDKSystemMessage`](#sdksystemmessage) 初始化消息中的 `tools` 数组目前为了向后兼容仍将此工具列为 `Task`。3124**工具名称:** `Agent`。之前的名称 `Task` 仍然被接受作为别名,[`SDKSystemMessage`](#sdksystemmessage) 初始化消息中的 `tools` 数组目前为了向后兼容仍将此工具列为 `Task`。

3125 3125 

3126<Note>3126<Note>

3127 `mode` 字段在 Claude Code v2.1.212 或更高版本上已弃用且被忽略。子代理在父会话的权限模式或其定义的 [`permissionMode`](#agentdefinition) 中运行,[子代理继承规则](/docs/zh-CN/agent-sdk/permissions#available-modes)决定使用哪一个。3127 在 Claude Code v2.1.212 或更高版本上,`mode` 字段已弃用且被忽略。子代理在父会话的权限模式或其定义的 [`permissionMode`](#agentdefinition) 中运行,[子代理继承规则](/docs/zh-CN/agent-sdk/permissions#available-modes)决定使用哪一个。

3128</Note>3128</Note>

3129 3129 

3130```typescript theme={null}3130```typescript theme={null}


3174```typescript theme={null}3174```typescript theme={null}

3175type BashInput = {3175type BashInput = {

3176 command: string;3176 command: string;

3177 timeout?: number; // 毫秒,最大 600000;更高的值会被限制为最大值3177 timeout?: number; // 毫秒。前台:默认上限为 600000,更高的值会被限制。使用 run_in_background(Claude Code v2.1.285 或更高版本):后台时间限制,省略时为 1800000,上限为 7200000,除非提高

3178 description?: string;3178 description?: string;

3179 run_in_background?: boolean;3179 run_in_background?: boolean;

3180 dangerouslyDisableSandbox?: boolean;3180 dangerouslyDisableSandbox?: boolean;

3181};3181};

3182```3182```

3183 3183 

3184执行 Bash 命令,支持可选超时和后台执行。工作目录在命令之间保持不变,包括多轮会话后续轮次中运行的命令;shell 状态(如导出的环境变量)不保持。有关哪些目录更改会保持的限制,请参阅[命令之间保持什么](/docs/zh-CN/tools-reference#what-persists-between-commands)。3184执行 Bash 命令,支持可选超时和后台执行。工作目录在命令之间保持不变,包括多轮会话后续轮次中运行的命令;shell 状态(如导出的环境变量)不保持。有关哪些目录更改会保持的限制,请参阅[命令之间保持什么](/docs/zh-CN/tools-reference#what-persists-between-commands)。有关设置前台上限的内容,请参阅[超时和输出限制](/docs/zh-CN/tools-reference#timeout-and-output-limits)。有关后台时间限制,请参阅[后台命令](/docs/zh-CN/tools-reference#background-commands)。

3185 3185 

3186<h3 id="monitor">3186<h3 id="monitor">

3187 Monitor3187 Monitor


3424创建和管理结构化任务列表以跟踪进度。3424创建和管理结构化任务列表以跟踪进度。

3425 3425 

3426<Note>3426<Note>

3427 The following tools are available by default only on Claude 3.x models, Opus 4 through 4.7, Sonnet 4 through 4.6, and Haiku 4.5. On every other model, including model IDs Claude Code doesn't recognize, they aren't available unless you opt in:3427 以下工具仅在 Claude 3.x 模型、Opus 4 至 4.7、Sonnet 4 至 4.6 和 Haiku 4.5 上默认可用。在所有其他模型上,包括 Claude Code 无法识别的模型 ID,除非您选择加入,否则它们不可用:

3428 3428 

3429 * `TodoWrite`3429 * `TodoWrite`

3430 * `TaskCreate`3430 * `TaskCreate`


3432 * `TaskUpdate`3432 * `TaskUpdate`

3433 * `TaskList`3433 * `TaskList`

3434 3434 

3435 Wherever the tools are available, Claude Code provides the four Task tools, or `TodoWrite` instead when you set `CLAUDE_CODE_ENABLE_TASKS=0`.3435 无论工具在何处可用,Claude Code 都提供四个 Task 工具,或者当你设置 `CLAUDE_CODE_ENABLE_TASKS=0` 时改为提供 `TodoWrite`。

3436 3436 

3437 This default set applies in Claude Code v2.1.268 and later, which the TypeScript Agent SDK bundles from v0.3.268.3437 此默认集合适用于 Claude Code v2.1.268 及更高版本,TypeScript Agent SDK 从 v0.3.268 开始捆绑此版本。

3438 3438 

3439 请参阅[模型可用性](/docs/zh-CN/agent-sdk/todo-tracking#model-availability)以选择加入。3439 请参阅[模型可用性](/docs/zh-CN/agent-sdk/todo-tracking#model-availability)以选择加入。

3440</Note>3440</Note>


3609};3609};

3610```3610```

3611 3611 

3612在本地时间的 5 字段 cron 计划上安排提示运行。将 `recurring` 设置为 `false` 以在下一个匹配时仅触发一次。作业默认为会话范围:启动新对话会清除它们,使用 `--resume` 或 `--continue` 恢复会恢复尚未过期的作业。请参阅[计划任务](/docs/zh-CN/scheduled-tasks)。3612在本地时间的 5 字段 cron 计划上安排提示运行。将 `recurring` 设置为 `false` 以在下一个匹配时仅触发一次。作业默认为会话范围,恢复时使用 `--resume` 或 `--continue` 会恢复尚未过期的作业。请参阅[计划任务](/docs/zh-CN/scheduled-tasks)。

3613 3613 

3614将 `durable` 设置为 `true` 请求持久化到 `.claude/scheduled_tasks.json`,以便作业在重启后继续存在。持久化调度并非在每个会话中都可用:当不可用时,Claude Code 接受 `durable: true` 但创建仅会话的作业。读取输出的 `durable` 字段以查看作业是否已持久化。3614将 `durable` 设置为 `true` 请求持久化到 `.claude/scheduled_tasks.json`,以便作业在重启后继续存在。持久化调度并非在每个会话中都可用:当不可用时,Claude Code 接受 `durable: true` 但创建仅会话的作业。读取输出的 `durable` 字段以查看作业是否已持久化。

3615 3615 


4085 4085 

4086`timedOutAfterMs` 是超时时间(以毫秒为单位),当命令达到其超时并移至后台而不是显式启动时设置。`backgroundCwdHint` 在后台命令包含目录更改内置命令(如 `cd`、`pushd`、`popd` 或 `chdir`)时设置,并注意会话工作目录未更改。两个字段都需要 Claude Code v2.1.210 或更高版本。4086`timedOutAfterMs` 是超时时间(以毫秒为单位),当命令达到其超时并移至后台而不是显式启动时设置。`backgroundCwdHint` 在后台命令包含目录更改内置命令(如 `cd`、`pushd`、`popd` 或 `chdir`)时设置,并注意会话工作目录未更改。两个字段都需要 Claude Code v2.1.210 或更高版本。

4087 4087 

4088当在前台运行的子代理拥有后台命令时,Claude Code 在该子代理给出最终响应时终止该命令。Claude Code 在此类命令上将 `backgroundEndsWithFinalResponse` 设置为 `true`,并在命令存活该轮时省略该字段,如主对话或后台子代理启动的命令那样。该字段需要 Claude Code v2.1.227 或更高版本。4088当在前台运行的子代理拥有后台命令时,该命令[在该子代理的运行结束时结束](/docs/zh-CN/tools-reference#background-commands)。Claude Code 在此类命令上将 `backgroundEndsWithFinalResponse` 设置为 `true`,并在命令存活该轮时省略该字段,如主对话或后台子代理启动的命令那样。该字段需要 Claude Code v2.1.227 或更高版本。

4089 4089 

4090Claude Code 将 `gitOperation.commit.branch` 设置为 git 提交摘要行中命名的分支,对于在分离 HEAD 上进行的提交则省略它。该字段需要 Agent SDK v0.3.227 或更高版本。Claude Code 将 `gh pr reopen` 命令报告为 `reopened` PR 操作,这需要 Agent SDK v0.3.234 或更高版本。4090Claude Code 将 `gitOperation.commit.branch` 设置为 git 提交摘要行中命名的分支,对于在分离 HEAD 上进行的提交则省略它。该字段需要 Agent SDK v0.3.227 或更高版本。Claude Code 将 `gh pr reopen` 命令报告为 `reopened` PR 操作,这需要 Agent SDK v0.3.234 或更高版本。

4091 4091 


4453返回之前和更新的任务列表。4453返回之前和更新的任务列表。

4454 4454 

4455<Note>4455<Note>

4456 The following tools are available by default only on Claude 3.x models, Opus 4 through 4.7, Sonnet 4 through 4.6, and Haiku 4.5. On every other model, including model IDs Claude Code doesn't recognize, they aren't available unless you opt in:4456 以下工具仅在 Claude 3.x 模型、Opus 4 至 4.7、Sonnet 4 至 4.6 和 Haiku 4.5 上默认可用。在所有其他模型上,包括 Claude Code 无法识别的模型 ID,除非您选择加入,否则它们不可用:

4457 4457 

4458 * `TodoWrite`4458 * `TodoWrite`

4459 * `TaskCreate`4459 * `TaskCreate`


4461 * `TaskUpdate`4461 * `TaskUpdate`

4462 * `TaskList`4462 * `TaskList`

4463 4463 

4464 Wherever the tools are available, Claude Code provides the four Task tools, or `TodoWrite` instead when you set `CLAUDE_CODE_ENABLE_TASKS=0`.4464 无论工具在何处可用,Claude Code 都提供四个 Task 工具,或者当你设置 `CLAUDE_CODE_ENABLE_TASKS=0` 时改为提供 `TodoWrite`。

4465 4465 

4466 This default set applies in Claude Code v2.1.268 and later, which the TypeScript Agent SDK bundles from v0.3.268.4466 此默认集合适用于 Claude Code v2.1.268 及更高版本,TypeScript Agent SDK 从 v0.3.268 开始捆绑此版本。

4467 4467 

4468 请参阅[模型可用性](/docs/zh-CN/agent-sdk/todo-tracking#model-availability)以选择加入。4468 请参阅[模型可用性](/docs/zh-CN/agent-sdk/todo-tracking#model-availability)以选择加入。

4469</Note>4469</Note>

agent-view.md +28 −2

Details

64 </Step>64 </Step>

65</Steps>65</Steps>

66 66 

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

68 

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

70 68 

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

70 默认打开 agent view

71</h3>

72 

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

74 

75<Steps>

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

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

78 

79 ```text theme={null}

80 /config defaultToAgentsView=true

81 ```

82 </Step>

83 

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

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

86 

87 ```bash theme={null}

88 claude

89 ```

90 

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

92 </Step>

93</Steps>

94 

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

96 

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

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

73</h2>99</h2>

Details

482 482 

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

484 484 

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

486 486 

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

488 服务层级488 服务层级

artifacts.md +11 −11

Details

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

101 101 

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

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

104 104 

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

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


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

123</h2>123</h2>

124 124 

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

126 126 

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

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

129 129 

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

131 131 

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

133 133 

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

135 135 


195 195 

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

197 197 

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

199 199 

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

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

202</h3>202</h3>

203 203 

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

205 205 

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

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


375 375 

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

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

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

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

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

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


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

409</h2>409</h2>

410 410 

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

412 412 

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

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

415</h3>415</h3>

416 416 

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

418 418 

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

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

421</h3>421</h3>

422 422 

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

424 424 

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

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

427</h3>427</h3>

428 428 

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

430 430 

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

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

433</h3>433</h3>

434 434 

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

436 436 

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

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

Details

32 32 

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

34 34 

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

36 

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

38 使用多个账户登录

39</h3>

40 

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

36 42 

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


40 46 

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

42 48 

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

44 

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

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

47</h2>51</h2>

Details

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

164 164 

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

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

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

168 </channel>

167 ```169 ```

168 170 

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

chrome.md +5 −2

Details

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

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

100 100 

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

102 

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

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

102 105 

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

104 默认启用 Chrome107 默认启用 Chrome


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

119</h3>122</h3>

120 123 

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

122 125 

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

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

Details

356 356 

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

358 358 

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

360 

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

360 362 

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


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

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

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

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

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

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

457 459 

Details

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 

53<h2 id="required-sections">53<h2 id="required-sections">

54 必需部分54 必需的部分

55</h2>55</h2>

56 56 

57<h3 id="listen">57<h3 id="listen">

58 `listen`58 `listen`

59</h3>59</h3>

60 60 

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 端点。 |

68| `tls.cert` / `tls.key` | 否 | 如果网关自己终止 TLS,则为 PEM 路径 |68| `tls.cert` / `tls.key` | 否 | 如果网关自己终止 TLS,则为 PEM 路径 |

69| `trusted_proxies` | 否 | 网关前面的负载均衡器的 CIDR 或 IP。设置时,网关仅从这些对等体信任 `X-Forwarded-For`,并记录真实客户端 IP 用于每 IP 速率限制和审计。等同于 nginx `set_real_ip_from`。`X-Forwarded-For` 条目写成 `ipv4:port` 或 `[ipv6]:port`(如某些负载均衡器所做的那样)被读取时端口被丢弃。带有端口附加且无括号的 IPv6 地址可能被读取为不同的地址或根本不被读取,因此在任何写入该形式的代理上关闭端口选项。 |69| `trusted_proxies` | 否 | 网关前面的负载均衡器的 CIDR 或 IP。设置后,网关仅从这些对等方信任 `X-Forwarded-For`,并记录真实客户端 IP 用于按 IP 速率限制和审计。等同于 nginx `set_real_ip_from`。`X-Forwarded-For` 条目写成 `ipv4:port` 或 `[ipv6]:port`(如某些负载均衡器所做),读取时端口被丢弃。带有端口附加且无括号的 IPv6 地址可能被读取为不同的地址或根本不被读取,因此在任何写入该形式的代理上关闭端口选项。 |

70 70 

71<h3 id="oidc">71<h3 id="oidc">

72 `oidc`72 `oidc`

73</h3>73</h3>

74 74 

75`oidc` 块将网关连接到你的身份提供者,并决定谁可以登录。它命名发行者和 OAuth 客户端,映射携带电子邮件和组的声明,并按电子邮件域或组限制登录。75`oidc` 块将网关连接到您的身份提供商,并决定谁可以登录。它命名发行者和 OAuth 客户端,映射携带电子邮件和组的声明,并按电子邮件域或组限制登录。

76 76 

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\_tokens,不区分大小写。针对多租户 IdP 配置错误的深度防御。独立于此设置,`email_verified` 声明明确为 `false` 的 id\_token 总是被拒绝。 |

84| `allowed_groups` | 否 | 限制登录到这些 IdP 组的成员,与 `groups_claim` 匹配。允许的电子邮件域中但不在这些组中的用户被拒绝。需要 IdP 发出组声明。匹配是对该声明中的值的精确、区分大小写的字符串比较,网关不展开嵌套组:要允许子组的成员,在此处列出子组或配置 IdP 发出扁平成员身份。 |84| `allowed_groups` | 否 | 限制登录仅限于这些 IdP 组的成员,与 `groups_claim` 匹配。处于允许的电子邮件域但不在这些组中的用户被拒绝。需要 IdP 发出组声明。匹配是对该声明中的值的精确、区分大小写的字符串比较,网关不展开嵌套组:要允许子组的成员,在此列出子组或配置 IdP 发出扁平化成员资格。 |

85| `groups_claim` | 否 | 哪个 id\_token 声明携带组成员身份。默认 `groups`。Microsoft Entra 在 `roles` 下发出应用角色。接受平面键或 RFC 6901 JSON 指针,如 `/resource_access/gateway/roles` 用于嵌套声明。 |85| `groups_claim` | 否 | 哪个 id\_token 声明携带组成员资格。默认 `groups`。Microsoft Entra 在 `roles` 下发出应用角色。接受平面键或 RFC 6901 JSON 指针(如 `/resource_access/gateway/roles`)用于嵌套声明。 |

86| `google_groups` | 否 | 通过 Google Workspace Admin SDK Directory API 查找已登录用户的组,因为 Google 的 id\_token 不携带组声明。将 `service_account_json_path` 设置为具有 `https://www.googleapis.com/auth/admin.directory.group.readonly` 范围的域范围委派的服务帐户密钥文件,并将 `admin_email` 设置为服务帐户模拟的 Workspace 管理员;Directory API 需要真实的管理员主体。每个用户的组电子邮件地址成为他们的组声明,因此 `allowed_groups` 和 `managed.policies.match.groups` 匹配组电子邮件。 |86| `google_groups` | 否 | 通过 Google Workspace Admin SDK Directory API 查找已登录用户的组,因为 Google 的 id\_token 不携带组声明。将 `service_account_json_path` 设置为具有 `https://www.googleapis.com/auth/admin.directory.group.readonly` 范围的域范围委派的服务帐户密钥文件,并将 `admin_email` 设置为服务帐户模拟的 Workspace 管理员;Directory API 需要真实的管理员主体。每个用户的组电子邮件地址成为他们的组声明,因此 `allowed_groups` 和 `managed.policies.match.groups` 匹配组电子邮件。 |

87| `email_claim` | 否 | 哪个 id\_token 声明携带用户的电子邮件。默认 `email`。某些 IdP(如 ADFS 和 Entra B2C)改为发出 `upn` 或 `preferred_username`。接受平面键、JSON 指针或回退键列表,其中使用第一个存在的键。 |87| `email_claim` | 否 | 哪个 id\_token 声明携带用户的电子邮件。默认 `email`。某些 IdP(如 ADFS 和 Entra B2C)改为发出 `upn` 或 `preferred_username`。接受平面键、JSON 指针或回退键列表,其中使用第一个存在的键。 |

88| `scopes` | 否 | 网关请求的 OIDC 范围的完全覆盖。默认 `[openid, profile, email, offline_access]`。当你的 IdP 拒绝它不识别的范围或需要自定义范围来发出组或电子邮件时设置。必须包括 `openid`。删除 `offline_access` 会禁用刷新令牌,因此开发者每 `session.ttl_hours` 重新运行浏览器登录。有关每个 IdP 范围配方(如 Google 的刷新令牌流),请参阅[身份提供者设置](/docs/zh-CN/claude-apps-gateway-deploy#identity-provider-setup)。 |88| `scopes` | 否 | 网关请求的 OIDC 范围的完全覆盖。默认 `[openid, profile, email, offline_access]`。当您的 IdP 拒绝它不识别的范围或需要自定义范围来发出组或电子邮件时设置。必须包括 `openid`。删除 `offline_access` 会禁用刷新令牌,因此开发人员每 `session.ttl_hours` 重新运行浏览器登录。有关每个 IdP 范围配方(如 Google 的刷新令牌流),请参阅[身份提供商设置](/docs/zh-CN/claude-apps-gateway-deploy#identity-provider-setup)。 |

89| `scope_on_refresh` | 否 | 在网关交换刷新令牌时也发送 `scope`,具有与登录请求相同的列表。默认 `false`:刷新请求省略 `scope`。大多数 IdP 在每次刷新时返回 id\_token,不需要这个。当你的 IdP 仅在再次请求 `openid` 时在刷新时返回 id\_token 时设置 `true`,这是 Okta 为其刷新授权记录的。没有 id\_token,每次刷新都依赖于 IdP 的 userinfo 端点接受刷新的访问令牌。如果你在登录或匹配策略上门控组,并且你的 IdP 的刷新时间 id\_token 省略了它们,也设置 `userinfo_fallback: true`,以便网关从 userinfo 端点填充它们。授予的范围少于请求的 IdP 可以用 `invalid_scope` 拒绝刷新,包括现有会话,如果你在此打开时向 `scopes` 添加条目。如果在设置后刷新在 `token_endpoint` 开始失败,取消设置该键。需要网关服务器上的 Claude Code v2.1.260 或更高版本。 |89| `scope_on_refresh` | 否 | 当网关交换刷新令牌时,也发送 `scope`,与登录请求相同的列表。默认 `false`:刷新请求省略 `scope`。大多数 IdP 在每次刷新时返回 id\_token,不需要这个。当您的 IdP 仅在再次请求 `openid` 时才在刷新时返回 id\_token 时设置 `true`,Okta 为其刷新授权记录了这一点。没有 id\_token,每次刷新都取决于 IdP 的 userinfo 端点接受刷新的访问令牌。如果您在登录或匹配策略上设置了组,并且您的 IdP 的刷新时间 id\_token 省略了它们,也设置 `userinfo_fallback: true` 以便网关从 userinfo 端点填充它们。授予的范围少于请求的 IdP 可以用 `invalid_scope` 拒绝刷新,包括如果您在此打开时向 `scopes` 添加条目的现有会话。如果在设置后刷新开始在 `token_endpoint` 失败,请取消设置该键。需要网关服务器上的 Claude Code v2.1.260 或更高版本。 |

90| `extra_auth_params` | 否 | 附加到 IdP 授权请求的额外查询参数,逐字。这是 IdP 特定行为的覆盖机制,如 Google 刷新令牌的 `access_type: offline`、某些 Entra 租户的 `domain_hint` 或分步流的 `acr_values`。不能覆盖网关管理的协议参数:`state`、`nonce`、`redirect_uri`、PKCE、`scope`、`response_type`、`response_mode` 和 `client_id`。 |90| `extra_auth_params` | 否 | 附加到 IdP 授权请求的额外查询参数,逐字。这是 IdP 特定行为的覆盖机制,如 Google 刷新令牌的 `access_type: offline`、某些 Entra 租户的 `domain_hint` 或分步流的 `acr_values`。无法覆盖网关管理的协议参数:`state`、`nonce`、`redirect_uri`、PKCE、`scope`、`response_type`、`response_mode` 和 `client_id`。 |

91| `userinfo_fallback` | 否 | 当 id\_token 省略电子邮件或组时,从 `/userinfo` 获取它们。Keycloak 轻量级访问令牌、Okta 组织服务器和 ADFS 最小令牌需要。id\_token 保持权威;userinfo 仅填补空白。默认 `false`。 |91| `userinfo_fallback` | 否 | 当 id\_token 省略电子邮件或组时,从 `/userinfo` 获取它们。Keycloak 轻量级访问令牌、Okta 组织服务器和 ADFS 最小令牌需要。id\_token 保持权威;userinfo 仅填补空白。默认 `false`。 |

92| `use_pkce` | 否 | 在授权请求上发送 PKCE (S256) 质询。默认 `true`。仅当你的 IdP 为此机密客户端拒绝 PKCE 时设置 `false`。 |92| `use_pkce` | 否 | 在授权请求上发送 PKCE (S256) 质询。默认 `true`。仅当您的 IdP 为此机密客户端拒绝 PKCE 时设置 `false`。 |

93| `clock_skew_seconds` | 否 | 验证 id\_token 时间声明时容忍时钟漂移。默认 `0`,这是严格的。如果由于主机/IdP 时钟偏差在登录后立即看到"令牌过期/尚未有效"错误,请提高。 |93| `clock_skew_seconds` | 否 | 验证 id\_token 时间声明时容忍时钟漂移。默认 `0`,严格。如果您在登录后立即看到"令牌已过期/尚未有效"错误,请提高以应对主机/IdP 时钟偏差。 |

94| `token_endpoint_auth_method` | 否 | 覆盖令牌端点身份验证方法。接受 `client_secret_basic` 或 `client_secret_post`。默认自动协商。 |94| `token_endpoint_auth_method` | 否 | 覆盖令牌端点身份验证方法。接受 `client_secret_basic` 或 `client_secret_post`。默认自动协商。 |

95| `id_token_signed_response_alg` | 否 | 预期的 id\_token 签名算法。默认 `RS256`。为使用 ES256、PS256 或 EdDSA 签名的 IdP 设置。 |95| `id_token_signed_response_alg` | 否 | 预期的 id\_token 签名算法。默认 `RS256`。为使用 ES256、PS256 或 EdDSA 签名的 IdP 设置。 |

96| `additional_authorized_parties` | 否 | 除 `client_id` 外要接受的额外 `azp` 值,用于 Keycloak 代理和令牌交换流 |96| `additional_authorized_parties` | 否 | 除 `client_id` 外要接受的额外 `azp` 值,用于 Keycloak 代理和令牌交换流 |

97| `discovery_url` | 否 | 从此 URL 而不是从 `issuer` 派生发现文档,用于代理后面重写发行者主机的 IdP。路径必须包含 `/.well-known/`。 |97| `discovery_url` | 否 | 从此 URL 获取发现文档而不是从 `issuer` 派生,用于代理后面重写发行者主机的 IdP。路径必须包含 `/.well-known/`。 |

98| `use_proxy` | 否 | 通过 `HTTPS_PROXY` 或 `HTTP_PROXY` 中的转发代理发送网关自己的 IdP 请求,尊重 `NO_PROXY`。`false` 保持这些请求直接。需要 v2.1.227 或更高版本;请参阅下面的[通过转发代理的 IdP 请求](#idp-requests-through-a-forward-proxy)。 |98| `use_proxy` | 否 | 通过 `HTTPS_PROXY` 或 `HTTP_PROXY` 中的前向代理发送网关自己的 IdP 请求,遵守 `NO_PROXY`。`false` 保持这些请求直接。需要 v2.1.227 或更高版本;请参阅下面的[通过前向代理的 IdP 请求](#idp-requests-through-a-forward-proxy)。 |

99| `form_action_origins` | 否 | `/device` 页面的 `Content-Security-Policy: form-action` 指令的其他源。网关已允许 `'self'` 和发现的 `authorization_endpoint` 源,但 Chrome 对整个重定向链强制执行 `form-action`。如果你的 IdP 通过第二个主机重定向,如 Azure AD 联合到 ADFS、中心辐射 Okta 或公司 SSO 拦截器,列出授权请求可能重定向通过的每个源。 |99| `form_action_origins` | 否 | `/device` 页面的 `Content-Security-Policy: form-action` 指令的其他源。网关已允许 `'self'` 和发现的 `authorization_endpoint` 源,但 Chrome 对整个重定向链强制执行 `form-action`。如果您的 IdP 通过第二个主机重定向,如 Azure AD 联合到 ADFS、中心辐射 Okta 或公司 SSO 拦截器,列出授权请求可能重定向通过的每个源。 |

100| `ca_cert_pem` | 否 | PEM 编码的 CA 证书本身,而不是文件的路径。它替换 IdP 请求的系统信任存储。要加载挂载的文件,写 `${file:/etc/gateway/idp-ca.pem}`。用于公司 PKI 后面的 Keycloak 或 Dex。 |100| `ca_cert_pem` | 否 | PEM 编码的 CA 证书本身,不是文件的路径。它仅替换 IdP 请求的系统信任存储。要加载挂载的文件,请写 `${file:/etc/gateway/idp-ca.pem}`。用于公司 PKI 后面的 Keycloak 或 Dex。 |

101 101 

102<h4 id="idp-requests-through-a-forward-proxy">102<h4 id="idp-requests-through-a-forward-proxy">

103 通过转发代理的 IdP 请求103 通过前向代理的 IdP 请求

104</h4>104</h4>

105 105 

106推理上游在每个版本上都尊重 `HTTPS_PROXY` 和 `HTTP_PROXY`。网关自己对 IdP、发现、JWKS、令牌和 userinfo 的请求直接进行,除非你设置 `oidc.use_proxy: true`,这需要 v2.1.227 或更高版本。当代理变量被设置、`use_proxy` 未设置且发行者不被 `NO_PROXY` 覆盖时,网关保持这些请求直接并在启动时记录通知,要求你选择;`use_proxy: false` 保持它们直接并沉默通知。106推理上游在每个版本上都遵守 `HTTPS_PROXY` 和 `HTTP_PROXY`。网关自己对 IdP、发现、JWKS、令牌和 userinfo 的请求直接进行,除非您设置 `oidc.use_proxy: true`,这需要 v2.1.227 或更高版本。设置代理变量、`use_proxy` 未设置且发行者不被 `NO_PROXY` 覆盖时,网关保持这些请求直接并在启动时记录通知,要求您选择;`use_proxy: false` 保持它们直接并沉默通知。

107 107 

108使用 `use_proxy: true`,pod 自己解析每个 IdP 端点的主机名,并要求代理 `CONNECT` 到解析的 IP 地址,因此代理必须接受 `CONNECT` 到发现文档命名的每个主机的 IP 地址,而不仅仅是发行者。使用 `http://` 代理 URL。`ca_cert_pem` 和[SSRF 防护](/docs/zh-CN/claude-apps-gateway-deploy#threat-model-summary)也适用于代理路径。108使用 `use_proxy: true`,pod 自己解析每个 IdP 端点的主机名,并要求代理 `CONNECT` 到解析的 IP 地址,因此代理必须接受 `CONNECT` 到发现文档命名的每个主机的 IP 地址,不仅仅是发行者。使用 `http://` 代理 URL。`ca_cert_pem` 和[SSRF 防护](/docs/zh-CN/claude-apps-gateway-deploy#threat-model-summary)也适用于代理路径。

109 109 

110[仅代理出口](#proxy-only-egress)改变这两者:当它活跃时,IdP 请求遵循代理,除非你设置 `use_proxy: false`,网关将每个 IdP 主机名交给代理,而不首先解析它。110[仅代理出口](#proxy-only-egress)改变这两者:当它活跃时,IdP 请求遵循代理,除非您设置 `use_proxy: false`,网关将每个 IdP 主机名交给代理而不首先解析它。

111 111 

112<h4 id="proxy-only-egress">112<h4 id="proxy-only-egress">

113 仅代理出口113 仅代理出口

114</h4>114</h4>

115 115 

116在网关的环境中设置 `CLAUDE_GATEWAY_PROXY_IS_EGRESS_BOUNDARY=1`,在 `HTTPS_PROXY` 旁边,当 pod 仅通过该转发代理到达其他主机且无法自己解析公共 DNS 名称时,或当代理拒绝 `CONNECT` 到 IP 地址时。需要 v2.1.277 或更高版本。它是一个环境变量而不是 `gateway.yaml` 键,因此配置文件中的任何内容都无法放松网关的地址检查。116在网关的环境中设置 `CLAUDE_GATEWAY_PROXY_IS_EGRESS_BOUNDARY=1`,在 `HTTPS_PROXY` 旁边,当 pod 仅通过该前向代理到达其他主机且无法自己解析公共 DNS 名称时,或当代理拒绝 `CONNECT` 到 IP 地址时。需要 v2.1.277 或更高版本。它是环境变量而不是 `gateway.yaml` 键,以便配置文件中的任何内容都无法放松网关的地址检查。

117 117 

118```bash theme={null}118```bash theme={null}

119export HTTPS_PROXY=http://proxy.corp.example.com:3128119export HTTPS_PROXY=http://proxy.corp.example.com:3128


122export CLAUDE_GATEWAY_PROXY_IS_EGRESS_BOUNDARY=1122export CLAUDE_GATEWAY_PROXY_IS_EGRESS_BOUNDARY=1

123```123```

124 124 

125当仅代理出口活跃时,网关在启动时记录一条 `network:` 行。125网关在仅代理出口活跃时在启动时记录一条 `network:` 行。

126 126 

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` 上游、Workload Identity Federation 令牌交换、`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、AWS 上的 Claude Platform、Google Cloud 的 Agent Platform 和 Microsoft Foundry 上游;Google 组查找 | 主机名交给代理 | 不变 |

134 134 

135仅代理出口保持关闭,除非网关的环境满足所有这三个条件:135仅代理出口保持关闭,除非网关的环境满足所有这三个条件:

136 136 

137* `HTTPS_PROXY` 或 `HTTP_PROXY` 被设置。137* `HTTPS_PROXY` 或 `HTTP_PROXY` 已设置。

138* `NO_PROXY` 和 `no_proxy` 为空。如果你的平台将任一个注入到 pod 中,在网关容器上将两者设置为空值。在 `NO_PROXY` 中列出遥测收集器保持仅代理出口关闭。138* `NO_PROXY` 和 `no_proxy` 为空。如果您的平台将任一个注入到 pod,在网关容器上将两者设置为空值。在 `NO_PROXY` 中列出遥测收集器保持仅代理出口关闭。

139* `CLAUDE_GATEWAY_ALLOW_LOOPBACK` 未打开。pod 自己环回上的收集器或 IdP 无法与仅代理出口结合,因为交给代理的环回地址将是代理主机自己的,因此给这些服务一个代理可以到达的地址。出于同样的原因,当仅代理出口活跃时,网关完全拒绝 `localhost` 风格的名称。139* `CLAUDE_GATEWAY_ALLOW_LOOPBACK` 未打开。pod 自己环回上的收集器或 IdP 无法与仅代理出口结合,因为交给代理的环回地址将是代理主机自己的,因此给这些服务一个代理可以到达的地址。出于同样的原因,网关在仅代理出口活跃时完全拒绝 `localhost` 风格的名称。

140 140 

141当这些条件之一未满足时,网关在启动时记录警告,命名停止它的变量,并保持默认行为。141当这些条件之一未满足时,网关在启动时记录警告,命名停止它的变量,并保持默认行为。

142 142 

143一旦仅代理出口活跃,允许代理中的每个目的地,包括内部收集器和任何由 IP 地址配置的主机。你仍然可以使用 [`oidc.use_proxy: false`](#idp-requests-through-a-forward-proxy) 保持内部 IdP 直接。143一旦仅代理出口活跃,允许代理中的每个目的地,包括内部收集器和任何由 IP 地址配置的主机。您仍然可以使用[`oidc.use_proxy: false`](#idp-requests-through-a-forward-proxy)保持内部 IdP 直接。

144 144 

145<Warning>145<Warning>

146 仅在代理的允许列表至少与网关自己的检查一样严格时打开这个。代理必须拒绝云元数据端点,如 `169.254.169.254` 和 `metadata.google.internal`、链路本地地址和代理主机自己的环回,并且它必须按名称解析到的地址拒绝它们,而不仅仅是按名称,因为网关不再捕获解析到其中之一的主机名。连接到任何被要求的地方的代理移除网关的[SSRF 防护](/docs/zh-CN/claude-apps-gateway-deploy#threat-model-summary)用于这些请求。146 仅当代理的允许列表至少与网关自己的检查一样严格时才打开此功能。代理必须拒绝云元数据端点(如 `169.254.169.254` 和 `metadata.google.internal`)、链路本地地址和代理主机自己的环回,并且必须按名称解析到的地址拒绝它们,而不仅仅按名称,因为网关不再捕获解析到其中之一的主机名。连接到任何要求的地方的代理会移除网关对这些请求的[SSRF 防护](/docs/zh-CN/claude-apps-gateway-deploy#threat-model-summary)。

147</Warning>147</Warning>

148 148 

149<h3 id="session">149<h3 id="session">

150 `session`150 `session`

151</h3>151</h3>

152 152 

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 

160<h3 id="store">160<h3 id="store">

161 `store`161 `store`

162</h3>162</h3>

163 163 

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 凭证。 |

171| `max_connections` | 否 | 每个副本的 Postgres 连接池大小。默认 `5`,这是保守的,对共享数据库友好。启用[支出限制](#admin)后,热路径在每个推理请求中执行几个操作,因此在负载下为专用数据库提高它,并保持副本 × 这个值低于数据库的 `max_connections`。 |171| `max_connections` | 否 | 每个副本的 Postgres 连接池大小。默认 `5`,保守且对共享数据库友好。启用[支出限制](#admin)后,热路径每个推理请求执行几个操作,因此在负载下为专用数据库提高它,并保持副本 × 此值低于数据库的 `max_connections`。 |

172| `connect_timeout_seconds` | 否 | 网关打开 Postgres 连接时等待的秒数。从 `1` 到 `60` 的整数,默认 `5`。如果当新网关实例启动时连接尝试超时,请提高它。需要网关服务器上的 Claude Code v2.1.274 或更高版本。早期版本在设置该键时拒绝启动。 |172| `connect_timeout_seconds` | 否 | 网关打开 Postgres 连接时等待的秒数。从 `1` 到 `60` 的整数,默认 `5`。如果新网关实例启动时连接尝试超时,请提高它。需要网关服务器上的 Claude Code v2.1.274 或更高版本。早期版本在设置键时拒绝启动。 |

173| `readiness_grace_seconds` | 否 | 在 Postgres 停止应答后 `/readyz` 继续报告就绪的秒数。从 `0` 到 `3600` 的整数,默认 `0`。请参阅[中断行为](/docs/zh-CN/claude-apps-gateway-deploy#outage-behavior)以了解如何选择值。需要网关服务器上的 Claude Code v2.1.282 或更高版本。早期版本在设置该键时拒绝启动。 |173| `readiness_grace_seconds` | 否 | Postgres 停止应答后 `/readyz` 继续报告就绪的秒数。从 `0` 到 `3600` 的整数,默认 `0`。请参阅[中断行为](/docs/zh-CN/claude-apps-gateway-deploy#outage-behavior)了解如何选择值。需要网关服务器上的 Claude Code v2.1.282 或更高版本。早期版本在设置键时拒绝启动。 |

174 174 

175对于本地开发,将 `postgres_url` 指向一个一次性 Postgres 容器,例如 `docker run --rm -p 5432:5432 -e POSTGRES_HOST_AUTH_METHOD=trust postgres`。175对于本地开发,将 `postgres_url` 指向一次性 Postgres 容器,例如 `docker run --rm -p 5432:5432 -e POSTGRES_HOST_AUTH_METHOD=trust postgres`。

176 176 

177<h3 id="upstreams">177<h3 id="upstreams">

178 `upstreams`178 `upstreams`


180 180 

181`upstreams` 是一个有序列表。网关将推理转发到解析请求的模型的第一个上游。181`upstreams` 是一个有序列表。网关将推理转发到解析请求的模型的第一个上游。

182 182 

183在 `5xx`、`429`、`401`、`403`、`404` 或超时时,网关故障转移到下一个上游;其他 `4xx` 不会,因为这些错误归因于请求而不是上游。`401` 或 `403` 意味着网关自己的凭证对该上游失败。`404` 意味着该上游不服务请求的模型,因此列表中的后续上游仍然可以。183在 `5xx`、`429`、`401`、`403`、`404` 或超时时,网关故障转移到下一个上游;其他 `4xx` 不会,因为这些错误可归因于请求而不是上游。`401` 或 `403` 意味着网关对该上游使用的凭证失败。`404` 意味着该上游不提供请求的模型,因此列表中的后续上游仍然可以。

184 184 

185如果你在上游上设置 `forward_user_identity: true`,它返回给携带开发者电子邮件的请求的 `429` 不会故障转移。请参阅[如何每用户限制拒绝到达开发者](#per-user-identity-headers-for-a-proxy-you-run)。185如果您在上游上设置 `forward_user_identity: true`,它返回给携带开发人员电子邮件的请求的 `429` 不会故障转移。请参阅[每用户限制拒绝如何到达开发人员](#per-user-identity-headers-for-a-proxy-you-run)。

186 186 

187在 `404` 上故障转移需要网关 v2.1.198 或更高版本。早期版本即使列表中的后续上游服务该模型,也会将第一个 `404` 返回给客户端。187`404` 上的故障转移需要网关 v2.1.198 或更高版本。早期版本即使列表中的后续上游提供模型,也将第一个 `404` 返回给客户端。

188 188 

189同一提供者的多个上游必须设置不同的 `name:`。189相同提供商的多个上游必须设置不同的 `name:`。

190 190 

191Amazon Bedrock、Claude Platform on AWS、Google Cloud 的 Agent Platform 和 Microsoft Foundry 客户端在启动时构建一次,它们的 SDK 在内部刷新凭证,因此轮换云凭证不需要重启。静态 Anthropic API 密钥和持有者在启动时读取;请参阅 [Anthropic API](#anthropic-api)。191Amazon Bedrock、AWS 上的 Claude Platform、Google Cloud 的 Agent Platform 和 Microsoft Foundry 客户端在启动时构建一次,其 SDK 在内部刷新凭证,因此轮换云凭证不需要重启。静态 Anthropic API 密钥和持有者在启动时读取;请参阅 [Anthropic API](#anthropic-api)。

192 192 

193<h4 id="upstream-error-messages">193<h4 id="upstream-error-messages">

194 上游错误消息194 上游错误消息


196 196 

197网关返回一个上游的错误响应或其自己的 `502`,取决于上游如何应答:197网关返回一个上游的错误响应或其自己的 `502`,取决于上游如何应答:

198 198 

199* **上游返回了网关不[故障转移](#multiple-upstreams)的状态**:该上游的响应。网关不尝试进一步的上游。199* **上游返回网关不[故障转移](#multiple-upstreams)的状态**:该上游的响应。网关不尝试进一步的上游。

200* **网关尝试的每个上游都以网关[故障转移](#multiple-upstreams)的方式失败**:最后的 `429`。当没有返回 `429` 时,网关按顺序优先选择最后的 `401` 或 `403`、最后的 `404` 和最后的 `501`。当没有返回任何这些时,网关自己的 `502`,`all upstreams failed (N attempted)`,其中 N 计数 [`upstreams`](#upstreams) 中的每个条目,包括网关跳过的条目,因为它们不服务请求的模型。200* **网关尝试的每个上游都以网关[故障转移](#multiple-upstreams)的方式失败**:最后一个 `429`。当没有返回 `429` 时,网关按顺序优先选择最后一个 `401` 或 `403`、最后一个 `404` 和最后一个 `501`。当没有返回任何这些时,网关自己的 `502`,`all upstreams failed (N attempted)`,其中 N 计算 [`upstreams`](#upstreams) 中的每个条目,包括网关跳过的条目,因为它们不提供请求的模型。

201 201 

202当网关返回上游的响应时,它保持上游的状态代码。它是否保持上游的消息取决于提供者。Anthropic API 上游的错误正文到达开发者不变。202当网关返回上游的响应时,它保持上游的状态代码。它是否保持上游的消息取决于提供商。Anthropic API 上游的错误正文不变地到达开发人员。

203 203 

204Amazon Bedrock、Claude Platform on AWS、Google Cloud 的 Agent Platform 和 Microsoft Foundry 上游可以在其错误文本中命名你的帐户 ID、角色 ARN 和项目 ID。网关在[操作日志](/docs/zh-CN/claude-apps-gateway-deploy#logs)中记录该完整文本。开发者从这些上游看到的取决于拒绝:204Amazon Bedrock、AWS 上的 Claude Platform、Google Cloud 的 Agent Platform 和 Microsoft Foundry 上游可以在其错误文本中命名您的帐户 ID、角色 ARN 和项目 ID。网关在[操作日志](/docs/zh-CN/claude-apps-gateway-deploy#logs)中记录该完整文本。开发人员从这些上游看到的内容取决于拒绝:

205 205 

206* Anthropic 标准错误信封中的 `400` 或 `413`:上游自己的消息,如 `prompt is too long`。Claude Platform on AWS、Agent Platform 和 Microsoft Foundry 为模型 API 拒绝返回此信封。206* Anthropic 标准错误信封中的 `400` 或 `413`:上游自己的消息,如 `prompt is too long`。AWS 上的 Claude Platform、Agent Platform 和 Microsoft Foundry 为模型 API 拒绝返回此信封。

207* 提供者自己形状中的 `400` 或 `413`:`capability_rejected:` 令牌。当网关无法分类拒绝时,`upstream rejected the request` 在 `400` 或 `request too large for this upstream` 在 `413`。207* 提供商自己形状中的 `400` 或 `413`:`capability_rejected:` 令牌。当网关无法分类拒绝时,`400` 上的 `upstream rejected the request` 或 `413` 上的 `request too large for this upstream`。

208* 任何其他状态:通用的每状态副本,如 `upstream rate limit exceeded` 在 `429`。208* 任何其他状态:通用的按状态副本,如 `429` 上的 `upstream rate limit exceeded`。

209 209 

210例如,网关将 Amazon Bedrock 的 `Input is too long for requested model.` 替换为 `capability_rejected: prompt_too_long`。Claude Code [自动压缩](/docs/zh-CN/errors#prompt-is-too-long)该令牌,就像它对 `prompt is too long` 所做的那样。210例如,网关将 Amazon Bedrock 的 `Input is too long for requested model.` 替换为 `capability_rejected: prompt_too_long`。Claude Code [自动压缩](/docs/zh-CN/errors#prompt-is-too-long)该令牌,就像它对 `prompt is too long` 所做的那样。

211 211 


215 Anthropic API215 Anthropic API

216</h4>216</h4>

217 217 

218最小的 Anthropic 上游是来自 [Claude 控制台](https://platform.claude.com) 的 API 密钥:218最小的 Anthropic 上游是来自 [Claude Console](https://platform.claude.com) 的 API 密钥:

219 219 

220```yaml theme={null}220```yaml theme={null}

221upstreams:221upstreams:

222 - provider: anthropic222 - provider: anthropic

223 auth:223 auth:

224 api_key: ${ANTHROPIC_API_KEY}224 api_key: ${ANTHROPIC_API_KEY}

225 # 或 OAuth 持有者(例如工作负载身份联合交换的令牌):225 # 或 OAuth 持有者(例如 Workload-Identity-Federation 交换的令牌):

226 # oauth_token: ${file:/var/run/secrets/anthropic-oauth-token}226 # oauth_token: ${file:/var/run/secrets/anthropic-oauth-token}

227 # base_url: https://api.anthropic.com # 默认;为转发代理覆盖227 # base_url: https://api.anthropic.com # 默认;为前向代理覆盖

228```228```

229 229 

230两种凭证形式在它们发送的头中有所不同:230两种凭证形式在它们发送的标头中有所不同:

231 231 

232* **`api_key`**:发送 `x-api-key`。在 Claude 控制台中轮换它并更新环境变量。232* **`api_key`**:发送 `x-api-key`。在 Claude Console 中轮换它并更新环境变量。

233* **`oauth_token`**:发送 `Authorization: Bearer`。当你的组织发出短期令牌而不是长期 API 密钥时使用持有者形式。持有者在启动时读取一次,因此通过重新挂载密钥和重启来刷新。233* **`oauth_token`**:发送 `Authorization: Bearer`。当您的组织发出短期令牌而不是长期 API 密钥时使用持有者形式。持有者在启动时读取一次,因此通过重新挂载秘密和重启来刷新。

234 234 

235代替静态密钥或持有者,你可以使用工作负载身份联合。按照[工作负载身份联合指南](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation)创建联合规则,然后将你的工作负载的 OIDC JWT 挂载为文件,如 Kubernetes 投影服务帐户令牌或 CI 平台的 id-token。网关将 JWT 交换为短期持有者并自动刷新它。令牌文件在每次交换时重新读取,因此轮换的投影令牌被拾取而无需重启。235您可以使用 Workload Identity Federation 而不是静态密钥或持有者。按照 [Workload Identity Federation 指南](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation)创建联合规则,然后将您的工作负载的 OIDC JWT 挂载为文件,如 Kubernetes 投影服务帐户令牌或 CI 平台的 id-token。网关将 JWT 交换为短期持有者并自动刷新它。令牌文件在每次交换时重新读取,因此轮换的投影令牌被拾取而无需重启。

236 236 

237```yaml theme={null}237```yaml theme={null}

238upstreams:238upstreams:


241 federation_rule_id: ${ANTHROPIC_FEDERATION_RULE_ID}241 federation_rule_id: ${ANTHROPIC_FEDERATION_RULE_ID}

242 organization_id: ${ANTHROPIC_ORGANIZATION_ID}242 organization_id: ${ANTHROPIC_ORGANIZATION_ID}

243 identity_token_file: /var/run/secrets/anthropic/id-token243 identity_token_file: /var/run/secrets/anthropic/id-token

244 # workspace_id: wrkspc_... # 如果规则覆盖 >1 个工作区,则必需244 # workspace_id: wrkspc_... # 如果规则覆盖 >1 个工作区则需要

245 # service_account_id: svac_... # 可选的预期目标检查245 # service_account_id: svac_... # 可选的预期目标检查

246```246```

247 247 

248<a id="per-user-identity-headers-for-a-proxy-you-run" />248<a id="per-user-identity-headers-for-a-proxy-you-run" />

249 249 

250<h5 id="per-user-identity-headers-for-a-proxy-you-run">250<h5 id="per-user-identity-headers-for-a-proxy-you-run">

251 为你运行的代理的每用户身份头251 为您运行的代理的每用户身份标头

252</h5>252</h5>

253 253 

254你可以将 `provider: anthropic` 上游的 `base_url` 指向你运行的代理,而不是 Anthropic API。要告诉该代理哪个开发者发送了每个请求,在该上游上设置 `forward_user_identity: true`。代理然后可以按开发者属性支出。需要运行 Claude Code v2.1.233 或更高版本的网关。254您可以将 `provider: anthropic` 上游的 `base_url` 指向您运行的代理而不是 Anthropic API。要告诉该代理哪个开发人员发送了每个请求,在该上游上设置 `forward_user_identity: true`。代理然后可以按开发人员属性支出。需要网关运行 Claude Code v2.1.233 或更高版本。

255 255 

256例如,对于 `upstream-gateway.internal.example.com` 上的代理:256例如,对于 `upstream-gateway.internal.example.com` 上的代理:

257 257 


264 forward_user_identity: true # 默认 false264 forward_user_identity: true # 默认 false

265```265```

266 266 

267网关将这些头添加到它转发到该上游的每个请求。267网关将这些标头添加到它转发到该上游的每个请求。

268 268 

269| 头 | 值 |269| 标头 | 值 |

270| - | - |270| - | - |

271| `x-litellm-end-user-id` | 开发者的电子邮件,当 IdP 提供时。 |271| `x-litellm-end-user-id` | 开发人员的电子邮件,当 IdP 提供时。 |

272| `x-claude-gateway-user-id` | 开发者的 IdP 主体,来自令牌的 `sub` 声明。 |272| `x-claude-gateway-user-id` | 开发人员的 IdP 主体,来自令牌的 `sub` 声明。 |

273| `x-claude-gateway-user-email` | 开发者的电子邮件,当 IdP 提供时。 |273| `x-claude-gateway-user-email` | 开发人员的电子邮件,当 IdP 提供时。 |

274 274 

275当 IdP 令牌不携带电子邮件时,网关仅发送 `x-claude-gateway-user-id` 并省略两个电子邮件头。如果你的 IdP 将电子邮件放在不同的声明中,将 [`oidc.email_claim`](#oidc) 设置为该声明。275当 IdP 令牌不携带电子邮件时,网关仅发送 `x-claude-gateway-user-id` 并省略两个电子邮件标头。如果您的 IdP 将电子邮件放在不同的声明中,将 [`oidc.email_claim`](#oidc) 设置为该声明。

276 276 

277当你的代理答复 `429` 给携带开发者电子邮件的请求时,网关将该响应按原样返回给开发者,而不是故障转移到下一个上游,因此你的代理的每用户预算或速率限制保持。代理的其他响应遵循普通[故障转移规则](#upstreams)。如果开发者的 IdP 令牌不携带电子邮件,网关转发他们的请求而不带电子邮件头,因此对其中一个请求的 `429` 计为上游容量并故障转移。在网关服务器上的 v2.1.267 之前,每个 `429` 都故障转移。277当您的代理对携带开发人员电子邮件的请求应答 `429` 时,网关按原样将该响应返回给开发人员而不是故障转移到下一个上游,因此您的代理的每用户预算或速率限制保持。代理的其他响应遵循普通[故障转移规则](#upstreams)。如果开发人员的 IdP 令牌不携带电子邮件,网关转发其请求而不带电子邮件标头,因此对其中一个请求的 `429` 计为上游容量并故障转移。在网关服务器上的 v2.1.267 之前,每个 `429` 都故障转移。

278 278 

279仅在 `base_url` 是你操作的代理的上游上设置 `forward_user_identity`。网关将开发者电子邮件发送到该 `base_url` 命名的任何服务器。如果 `base_url` 是 Anthropic API(这是默认值),网关拒绝启动。279仅在 `base_url` 是您操作的代理的上游上设置 `forward_user_identity`。网关将开发人员电子邮件发送到该 `base_url` 命名的任何服务器。如果 `base_url` 是 Anthropic API(默认),网关拒绝启动。

280 280 

281<h4 id="amazon-bedrock">281<h4 id="amazon-bedrock">

282 Amazon Bedrock282 Amazon Bedrock

283</h4>283</h4>

284 284 

285对于网关替换或前置的客户端 Bedrock 部署,请参阅 [Amazon Bedrock 上的 Claude Code](/docs/zh-CN/amazon-bedrock)。网关端上游:285对于网关替换或前置的客户端 Amazon Bedrock 部署,请参阅 [Amazon Bedrock 上的 Claude Code](/docs/zh-CN/amazon-bedrock)。网关端上游:

286 286 

287```yaml theme={null}287```yaml theme={null}

288upstreams:288upstreams:


301 # base_url: https://bedrock-runtime-fips.us-east-1.amazonaws.com301 # base_url: https://bedrock-runtime-fips.us-east-1.amazonaws.com

302```302```

303 303 

304空的 `auth` 块使用 AWS SDK 的默认凭证链:环境变量、`~/.aws/credentials`、ECS 任务角色、EC2 实例元数据或 EKS 上的 IRSA。在生产中,给网关 pod 一个 IAM 角色,而不是在容器镜像中嵌入静态密钥。304空 `auth` 块使用 AWS SDK 的默认凭证链:环境变量、`~/.aws/credentials`、ECS 任务角色、EC2 实例元数据或 EKS 上的 IRSA。在生产中,给网关 pod 一个 IAM 角色而不是在容器镜像中嵌入静态密钥。

305 305 

306显式凭证必须完整:当 `aws_access_key_id` 和 `aws_secret_access_key` 未一起设置时,或当 `aws_session_token` 在没有它们的情况下设置时,网关在启动时失败。在 v2.1.207 之前,部分 `auth:` 块通过验证。306显式凭证必须完整:当 `aws_access_key_id` 和 `aws_secret_access_key` 未一起设置时,或当 `aws_session_token` 在没有它们的情况下设置时,网关在启动时失败。在 v2.1.207 之前,部分 `auth:` 块通过验证。

307 307 

308| 设置 | 如何 |308| 设置 | 如何 |

309| - | - |309| - | - |

310| 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| 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 请求。 |

311| 模型访问 | Amazon Bedrock 在商业地区默认启用模型访问。剩余的帐户级门是 Anthropic 的一次性用例表单:如果你的 AWS 帐户中没有人提交过,打开 Amazon Bedrock 控制台,从模型目录中选择 Anthropic 模型,并完成表单。有关 AWS Organizations 表单和提交者需要的权限,请参阅[提交用例详情](/docs/zh-CN/amazon-bedrock#1-submit-use-case-details)。 |311| 模型访问 | Amazon Bedrock 在商业地区默认启用模型访问。剩余的帐户级门是 Anthropic 的一次性用例表:如果您的 AWS 帐户中没有人提交过,请打开 Amazon Bedrock 控制台,从模型目录中选择 Anthropic 模型,并完成表单。有关 AWS Organizations 表和提交者需要的权限,请参阅[提交用例详情](/docs/zh-CN/amazon-bedrock#1-submit-use-case-details)。 |

312| EKS (IRSA) | 创建一个具有上述策略的 IAM 角色和针对你的集群的 OIDC 提供者的信任策略,范围限定为网关的服务帐户。使用 `eks.amazonaws.com/role-arn: arn:aws:iam::<acct>:role/claude-gateway` 注释服务帐户。`auth: {}` 拾取它。 |312| EKS (IRSA) | 创建具有上述策略和您的集群 OIDC 提供商的信任策略的 IAM 角色,范围限于网关的服务帐户。使用 `eks.amazonaws.com/role-arn: arn:aws:iam::<acct>:role/claude-gateway` 注释服务帐户。`auth: {}` 拾取它。 |

313| ECS / EC2 | 将 IAM 角色附加到任务定义或实例配置文件。`auth: {}` 拾取它。 |313| ECS / EC2 | 将 IAM 角色附加到任务定义或实例配置文件。`auth: {}` 拾取它。 |

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

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

316 

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

318 应用 Amazon Bedrock 防护栏

319</h5>

320 

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

322 

323```yaml theme={null}

324upstreams:

325 - provider: bedrock

326 region: us-east-1

327 auth: {}

328 guardrail:

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

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

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

332```

333 

334<Warning>

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

336</Warning>

337 

338也在防护栏上授予 `bedrock:ApplyGuardrail` 给签署此上游请求的主体:网关的 AWS 主体,或使用 [`assume_role`](#bedrock-in-another-aws-account) 的 `role_arn` 中命名的角色。

339 

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

341 

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

343 

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

345 

346<a id="bedrock-in-another-aws-account" />

347 

348<h5 id="bedrock-in-another-aws-account">

349 另一个 AWS 帐户中的 Bedrock

350</h5>

351 

352在 Bedrock 上游上设置 `assume_role`,网关仅使用其自己的 AWS 身份来调用您命名的角色上的 `sts:AssumeRole`,该角色可以在与网关不同的 AWS 帐户中。该上游的每个 Bedrock 请求都使用 STS 返回的一小时凭证签署,因此没有长期访问密钥跨帐户。

353 

354需要网关运行 Claude Code v2.1.281 或更高版本。早期网关在找到键时拒绝启动。

355 

356```yaml theme={null}

357upstreams:

358 - name: bedrock-isolated

359 provider: bedrock

360 region: us-east-1

361 auth: {} # 网关自己的角色:它仅调用 STS

362 assume_role:

363 role_arn: arn:aws:iam::222222222222:role/claude-gateway-bedrock

364 # external_id: ${BEDROCK_ROLE_EXTERNAL_ID} # 当角色的信任策略需要时

365```

366 

367`assume_role` 块采用三个键:

368 

369| 键 | 含义 |

370| - | - |

371| `role_arn` | 网关假设的 IAM 角色,作为 `arn:aws:iam::` 或 `arn:aws-us-gov:iam::` ARN。给它这个上游需要的 [Bedrock 权限](#amazon-bedrock),包括 `bedrock:CountTokens`,加上当上游设置 `guardrail` 时的 `bedrock:ApplyGuardrail`。 |

372| `external_id` | 可选。在每个 `sts:AssumeRole` 调用上作为外部 ID 发送。当角色的信任策略需要时设置它,如果它全是数字则引用它。 |

373| `session_name` | 可选。`email` 或 `sub` 给每个开发人员他们自己的会话:请参阅[每开发人员 AWS 成本属性](#per-developer-aws-cost-attribution)。未设置,每个请求使用一个名为 `claude-apps-gateway` 的会话。 |

374 

375角色的信任策略命名网关自己的主体,如其 IRSA 或 ECS 任务角色。该主体需要在角色上的 `sts:AssumeRole` 且没有 Bedrock 权限。如果您设置没有 `external_id`,删除 `Condition`。

376 

377```json theme={null}

378{

379 "Version": "2012-10-17",

380 "Statement": [{

381 "Effect": "Allow",

382 "Principal": { "AWS": "arn:aws:iam::111111111111:role/claude-gateway" },

383 "Action": "sts:AssumeRole",

384 "Condition": { "StringEquals": { "sts:ExternalId": "your-external-id" } }

385 }]

386}

387```

388 

389* 如果 STS 拒绝或无法到达,网关不使用上游自己的凭证发送请求。它记录 STS 错误和要检查的内容,然后尝试您列出的下一个上游。[上游错误消息](#upstream-error-messages)覆盖当没有上游成功时客户端接收的内容。没有 `assume_role` 的后续上游将使用其自己的凭证提供请求,因此仅在这是您想要的情况下列出一个。

390* 网关调用区域 STS 端点 `sts.<region>.amazonaws.com`,其网络必须到达。对于 FIPS 端点,在网关的环境中设置 `AWS_USE_FIPS_ENDPOINT=true` 而不是在 AWS 配置文件中的 `use_fips_endpoint`。

391* `assume_role` 仅适用于 `provider: bedrock` 并需要 SigV4 源凭证:当它在 `aws_bearer_token` 旁边设置时,网关拒绝启动。

392* 网关允许的每个开发人员都可以使用此上游;[`managed`](#managed) 控制哪些开发人员可能使用哪些模型。要保持通过角色提供的模型也不从另一个帐户提供,给它一个自定义 id,其 `upstream_model` 映射仅具有此上游的名称。对于这样的 id,网关跳过每个其他上游,因此请求和放弃请求的令牌计数都无法故障转移到另一个帐户。内置模型名称仍在每个上游按顺序尝试,包括这个,到达它的请求使用相同的角色签署,因此除非其帐户也应该提供它们,否则最后列出此上游。

393 

394此示例给一个模型一个自定义 id,仅隔离上游提供:

395 

396```yaml theme={null}

397models:

398 - id: claude-opus-restricted # 自定义 id,不是内置模型名称

399 upstream_model:

400 bedrock-isolated: us.anthropic.claude-opus-4-8 # 唯一提供它的上游

401```

402 

403<a id="per-developer-aws-cost-attribution" />

404 

405<h5 id="per-developer-aws-cost-attribution">

406 每开发人员 AWS 成本属性

407</h5>

408 

409默认情况下,网关使用一个凭证签署每个 Bedrock 请求,因此 AWS 在单个 IAM 主体下看到所有开发人员的请求。将 `session_name: email` 添加到 [`assume_role`](#bedrock-in-another-aws-account),网关每个开发人员每小时调用一次 `sts:AssumeRole`,会话名称设置为该开发人员的电子邮件,并使用返回的凭证签署其请求,因此每个开发人员的请求在 AWS 下以其自己的假设角色会话到达。角色可以在网关自己的帐户中。

410 

411需要网关运行 Claude Code v2.1.281 或更高版本。[AWS 上的成本属性](/docs/zh-CN/claude-apps-gateway-on-aws#cost-attribution)覆盖 IAM 角色和 AWS 计费显示会话的位置。

412 

413```yaml theme={null}

414upstreams:

415 - provider: bedrock

416 region: us-east-1

417 auth: {} # 网关自己的角色:它仅调用 STS

418 assume_role:

419 role_arn: arn:aws:iam::123456789012:role/claude-gateway-bedrock-user

420 session_name: email # 或 sub

421```

422 

423`session_name` 选择哪个已验证的声明成为 AWS `RoleSessionName`:`email` 或 `sub`。网关将除 ASCII 字母、数字和 `_+,.@-` 之外的任何字符写成 `=XX` 十六进制(按 UTF-8 字节),并将长于 64 字符的结果缩短为前缀加哈希,因此每个开发人员的会话名称保持有效且唯一。来自其令牌缺少声明的开发人员的请求不通过此上游发送,操作员日志说切换到 `sub` 或设置 [`oidc.email_claim`](#oidc)。

424 

425活跃开发人员每小时每个网关副本成本一个 STS 调用,并发首次请求共享一个调用。

426 

427网关也在此角色上进行一个调用:客户端放弃的请求的令牌计数,因此[支出限制](/docs/zh-CN/claude-apps-gateway-spend-limits)保持准确。该计数及其[一令牌回退请求](#amazon-bedrock)由共享 `claude-apps-gateway` 会话签署,因此 AWS 将回退属性到 `claude-apps-gateway` 而不是开发人员。

428 

429对于严格的每开发人员属性,在您列出的每个 Bedrock 上游上设置 `assume_role` 与 `session_name`。没有它的上游使用其自己的凭证签署它提供的请求。

316 430 

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

318 Claude Platform on AWS432 AWS 上的 Claude Platform

319</h4>433</h4>

320 434 

321Claude Platform on AWS 在 `aws-external-anthropic.<region>.api.aws` 上的 AWS 基础设施上服务第一方 Anthropic API。它使用第一方模型 ID,按发送方式尊重 `anthropic-beta` 头,并服务 `count_tokens`,因此 Bedrock 特定的翻译都不适用。`anthropicAws` 提供者需要 Claude Code v2.1.198 或更高版本;早期网关版本在启动时拒绝它。435AWS 上的 Claude Platform 在 AWS 基础设施上提供第一方 Anthropic API,位于 `aws-external-anthropic.<region>.api.aws`。它使用第一方模型 ID,按原样遵守 `anthropic-beta` 标头,并提供 `count_tokens`,因此没有 Bedrock 特定的转换适用。`anthropicAws` 提供商需要 Claude Code v2.1.198 或更高版本;早期网关版本在启动时拒绝它。

322 436 

323对于同一平台的客户端部署,请参阅 [Claude Platform on AWS 上的 Claude Code](/docs/zh-CN/claude-platform-on-aws)。网关端上游:437对于相同平台的客户端部署,请参阅 [AWS 上的 Claude Platform 上的 Claude Code](/docs/zh-CN/claude-platform-on-aws)。网关端上游:

324 438 

325```yaml theme={null}439```yaml theme={null}

326upstreams:440upstreams:


339 # base_url: https://aws-external-anthropic.us-east-1.api.aws453 # base_url: https://aws-external-anthropic.us-east-1.api.aws

340```454```

341 455 

342该平台在与 Amazon Bedrock 不同的 AWS 账户中运行,并为其自己的服务名称 `aws-external-anthropic` 签署 SigV4 请求,因此 Bedrock 范围的 IAM 角色不授权它。`auth.api_key` 中的 API 密钥在同时设置 SigV4 凭证时优先。空的 `auth` 块使用 AWS SDK 的默认凭证链,与 [Amazon Bedrock](#amazon-bedrock) 上游使用的链相同。456平台在与 Amazon Bedrock 不同的 AWS 帐户中运行,并为其自己的服务名称 `aws-external-anthropic` 签署 SigV4 请求,因此 Bedrock 范围的 IAM 角色不授权它。`auth.api_key` 中的 API 密钥在同时设置 SigV4 凭证时优先。空 `auth` 块使用 AWS SDK 的默认凭证链,与 [Amazon Bedrock](#amazon-bedrock) 上游使用的链相同。

343 457 

344| 字段 | 必需 | 描述 |458| 字段 | 必需 | 描述 |

345| - | - | - |459| - | - | - |

346| `region` | 是 | AWS 地区,小写字母、数字和连字符。网关从它派生端点为 `https://aws-external-anthropic.<region>.api.aws`。 |460| `region` | 是 | AWS 区域,小写字母、数字和连字符。网关从它派生端点为 `https://aws-external-anthropic.<region>.api.aws`。 |

347| `workspace_id` | 是 | 在每个请求上作为头发送;平台需要它 |461| `workspace_id` | 是 | 在每个请求上作为标头发送;平台需要它 |

348| `auth.api_key` | 否 | 平台的 API 密钥,作为 `x-api-key` 发送。不是持有者令牌:两种身份验证模式是 API 密钥或 SigV4。 |462| `auth.api_key` | 否 | 平台的 API 密钥,作为 `x-api-key` 发送。不是持有者令牌:两种身份验证模式是 API 密钥或 SigV4。 |

349| `auth.aws_access_key_id` / `auth.aws_secret_access_key` | 否 | 显式 SigV4 凭证。设置其中一个而不设置另一个在启动时失败。`auth.aws_session_token` 与它们一起被接受。 |463| `auth.aws_access_key_id` / `auth.aws_secret_access_key` | 否 | 显式 SigV4 凭证。在没有另一个的情况下设置一个在启动时失败。`auth.aws_session_token` 在它们旁边被接受。 |

350| `base_url` | 否 | 覆盖派生的端点 |464| `base_url` | 否 | 覆盖派生的端点 |

351 465 

352因为平台解析第一方模型 ID,内置目录路由到它,无需 [`models:`](#models) 块。当你策划 `models:` 列表时,使用第一方 ID 键入 `anthropicAws:` 条目。466因为平台解析第一方模型 ID,内置目录路由到它而不带 [`models:`](#models) 块。当您策划 `models:` 列表时,使用第一方 ID 键入条目 `anthropicAws:`。

353 467 

354<h4 id="google-cloud-agent-platform">468<h4 id="google-cloud-agent-platform">

355 Google Cloud Agent Platform469 Google Cloud Agent Platform


369 # base_url: https://us-east5-aiplatform.p.googleapis.com483 # base_url: https://us-east5-aiplatform.p.googleapis.com

370```484```

371 485 

372空的 `auth` 块使用应用默认凭证:`GOOGLE_APPLICATION_CREDENTIALS`、GCE 元数据或 GKE 工作负载身份。支持服务帐户 JSON 密钥文件但不推荐;使用工作负载身份或将服务帐户附加到 GCE 或 Cloud Run 实例。486空 `auth` 块使用应用默认凭证:`GOOGLE_APPLICATION_CREDENTIALS`、GCE 元数据或 GKE Workload Identity。服务帐户 JSON 密钥文件被支持但不鼓励;使用 Workload Identity 或将服务帐户附加到 GCE 或 Cloud Run 实例。

373 487 

374设置 `region: global` 以使用 [Agent Platform 的全局端点](https://cloud.google.com/vertex-ai/generative-ai/docs/learn/locations)而不是区域端点。Google 然后将每个请求路由到可用地区,因此你不跟踪每地区模型可用性。设置特定地区会将每个请求固定到它。488设置 `region: global` 以使用 [Google Cloud Agent Platform 的全局端点](https://cloud.google.com/vertex-ai/generative-ai/docs/learn/locations)而不是区域端点。Google 然后将每个请求路由到可用区域,因此您不跟踪按区域模型可用性。设置特定区域将每个请求固定到它。

375 489 

376| 设置 | 如何 |490| 设置 | 如何 |

377| - | - |491| - | - |

378| IAM 权限 | 授予网关的服务帐户项目上的 `roles/aiplatform.user`,或具有 `aiplatform.endpoints.predict` 的自定义角色。启用 Agent Platform API (`aiplatform.googleapis.com`)。 |492| IAM 权限 | 授予网关的服务帐户项目上的 `roles/aiplatform.user`,或具有 `aiplatform.endpoints.predict` 的自定义角色。启用 Google Cloud Agent Platform API (`aiplatform.googleapis.com`)。 |

379| 模型访问 | 在 Model Garden 中,为你的项目启用 Claude 模型。它们发布到特定地区;检查模型卡以了解支持的地区。 |493| 模型访问 | 在 Model Garden 中,为您的项目启用 Claude 模型。它们发布到特定区域;检查模型卡以了解支持的区域。 |

380| GKE (工作负载身份) | 将 GCP 服务帐户绑定到网关的 Kubernetes 服务帐户,并使用 `iam.gke.io/gcp-service-account: claude-gateway@<proj>.iam.gserviceaccount.com` 注释 KSA。`auth: {}` 拾取它。 |494| GKE (Workload Identity) | 将 GCP 服务帐户绑定到网关的 Kubernetes 服务帐户,并使用 `iam.gke.io/gcp-service-account: claude-gateway@<proj>.iam.gserviceaccount.com` 注释 KSA。`auth: {}` 拾取它。 |

381| Cloud Run / GCE | 将服务的服务帐户设置为具有 `roles/aiplatform.user` 的服务帐户。`auth: {}` 拾取它。 |495| Cloud Run / GCE | 将服务的服务帐户设置为具有 `roles/aiplatform.user` 的服务帐户。`auth: {}` 拾取它。 |

382| 其他任何地方 | `auth: { service_account_json: /secrets/sa.json }`,JSON 密钥文件的路径,挂载为密钥。该字段采用文件路径,而不是密钥内容,因此不涉及 `${file:…}` 扩展。 |496| 其他任何地方 | `auth: { service_account_json: /secrets/sa.json }`,JSON 密钥文件的路径挂载为秘密。该字段采用文件路径,而不是密钥内容,因此不涉及 `${file:…}` 扩展。 |

383 497 

384<h4 id="microsoft-foundry">498<h4 id="microsoft-foundry">

385 Microsoft Foundry499 Microsoft Foundry

386</h4>500</h4>

387 501 

388对于客户端 Foundry 部署,请参阅 [Microsoft Foundry 上的 Claude Code](/docs/zh-CN/microsoft-foundry)。网关端上游:502对于客户端 Microsoft Foundry 部署,请参阅 [Microsoft Foundry 上的 Claude Code](/docs/zh-CN/microsoft-foundry)。网关端上游:

389 503 

390```yaml theme={null}504```yaml theme={null}

391upstreams:505upstreams:


397 # api_key: ${FOUNDRY_API_KEY}511 # api_key: ${FOUNDRY_API_KEY}

398```512```

399 513 

400`use_azure_ad: true` 通过 `DefaultAzureCredential` 解析:AKS、ACI 或 App Service 上的托管身份;Azure CLI;或环境凭证。API 密钥有效但是项目范围的,不会自动轮换。Foundry 的端点从 `resource:` 派生;设置可选的 `base_url` 以为主权云(如 Azure Government)覆盖它。514`use_azure_ad: true` 通过 `DefaultAzureCredential` 解析:AKS、ACI 或 App Service 上的托管身份;Azure CLI;或环境凭证。API 密钥有效但是项目范围的,不自动轮换。Microsoft Foundry 的端点从 `resource:` 派生;为主权云(如 Azure Government)设置可选 `base_url` 以覆盖它。

401 515 

402| 设置 | 如何 |516| 设置 | 如何 |

403| - | - |517| - | - |

404| RBAC | 授予网关的身份 Foundry 资源上的 `Azure AI User` 或 `Cognitive Services User` |518| RBAC | 授予网关的身份 Microsoft Foundry 资源上的 `Azure AI User` 或 `Cognitive Services User` |

405| 部署 | Foundry 使用管理员选择的部署名称,而不是规范模型 ID。添加一个[`models:`](#models)块,将每个规范 ID 映射到你的部署名称。 |519| 部署 | Microsoft Foundry 使用管理员选择的部署名称,而不是规范模型 ID。添加 [`models:`](#models) 块将每个规范 ID 映射到您的部署名称。 |

406| AKS (工作负载身份) | 将用户分配的托管身份与集群的 OIDC 发行者联合,并将其绑定到网关的服务帐户。`use_azure_ad: true` 通过 `WorkloadIdentityCredential` 拾取它。 |520| AKS (workload identity) | 将用户分配的托管身份与集群的 OIDC 发行者联合,并将其绑定到网关的服务帐户。`use_azure_ad: true` 通过 `WorkloadIdentityCredential` 拾取它。 |

407| ACI / App Service | 在资源上启用系统分配或用户分配的托管身份。`use_azure_ad: true` 拾取它。 |521| ACI / App Service | 在资源上启用系统分配或用户分配的托管身份。`use_azure_ad: true` 拾取它。 |

408| 其他任何地方 | `auth: { api_key: "${FOUNDRY_API_KEY}" }`。在 `{ }` 内引用 `${…}`。 |522| 其他任何地方 | `auth: { api_key: "${FOUNDRY_API_KEY}" }`。在 `{ }` 内引用 `${…}`。 |

409 523 

410<h4 id="static-headers-on-upstream-requests">524<h4 id="static-headers-on-upstream-requests">

411 上游请求上的静态头525 上游请求上的静态标头

412</h4>526</h4>

413 527 

414要将固定头添加到网关发送到一个上游的请求,在该上游上设置 `headers:`。当你运行的代理通过头路由或属性流量时使用它。528要将固定标头添加到网关发送到一个上游的请求,在该上游上设置 `headers:`。当您运行的代理通过标头路由或属性流量时使用它。

415 529 

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

417 531 

418头转到 `base_url` 命名的服务器,或当 `base_url` 未设置时转到提供者自己的端点。提供者也接收它们,除非你的代理删除它们。532标头转到 `base_url` 命名的服务器,或当 `base_url` 未设置时转到提供商自己的端点。提供商也接收它们,除非您的代理删除它们。

419 533 

420此示例通过 `upstream-proxy.internal.example.com` 上的代理到达 `provider: vertex` 上游。它设置代理读取的 `x-source` 头,并从 `PROXY_TOKEN` 环境变量发送令牌作为 `x-proxy-token`:534此示例通过 `upstream-proxy.internal.example.com` 上的代理到达 `provider: vertex` 上游。它设置代理读取的 `x-source` 标头,并从 `PROXY_TOKEN` 环境变量发送令牌作为 `x-proxy-token`:

421 535 

422```yaml theme={null}536```yaml theme={null}

423upstreams:537upstreams:


431 x-proxy-token: ${PROXY_TOKEN}545 x-proxy-token: ${PROXY_TOKEN}

432```546```

433 547 

434值是可打印的 ASCII 文本,两端没有空格。引用数字、`true` 或 `false`,以便 YAML 将其读取为文本。548值是可打印的 ASCII 文本,两端没有空格。引用数字、`true` 或 `false` 以便 YAML 将其读取为文本。

435 549 

436要将密钥保持在配置文件之外,使用[密钥扩展](#secret-expansion)从环境变量使用 `${VAR}` 或从文件使用 `${file:/path}` 加载值。解析为空值的 `${VAR}` 停止网关启动。550要将秘密保持在配置文件之外,使用[秘密扩展](#secret-expansion)从环境变量使用 `${VAR}` 或从文件使用 `${file:/path}` 加载值。解析为空值的 `${VAR}` 停止网关启动。

437 551 

438`headers:` 适用于每个提供者,每个上游仅发送自己的。552`headers:` 适用于每个提供商,每个上游仅发送自己的。

439 553 

440并非网关发送到上游的每个请求都携带它们:554并非网关发送到上游的每个请求都携带它们:

441 555 

442| 网关发送到此上游的请求 | 携带 `headers:` |556| 网关发送到此上游的请求 | 携带 `headers:` |

443| - | - |557| - | - |

444| `/v1/messages`、流式或非流式,和 `/v1/messages/count_tokens` | 是 |558| `/v1/messages`,流式或不流式,和 `/v1/messages/count_tokens` | 是 |

445| 从另一个上游故障转移的请求 | 是,仅此上游的 `headers:` |559| 从另一个上游故障转移的请求 | 是,仅此上游的 `headers:` |

446| 客户端放弃的请求的 Amazon Bedrock 的 `CountTokens` 调用 | 否 |560| Amazon Bedrock 的 `CountTokens` 调用用于客户端放弃的请求 | 否 |

447| 工作负载身份联合令牌交换 | 否 |561| Workload Identity Federation 令牌交换 | 否 |

448 562 

449在使用 AWS SigV4 签署请求的 Amazon Bedrock 或 Claude Platform on AWS 上游上,这些头是签名的一部分,因此你的代理必须原样传递它们。563在使用 AWS SigV4 签署请求的 Amazon Bedrock 或 AWS 上的 Claude Platform 上游上,这些标头是签名的一部分,因此您的代理必须原样通过它们。

450 564 

451如果你使用网关保留的名称,它拒绝启动,启动错误命名该头。保留名称包括:565如果您使用网关保留的名称,它拒绝启动,启动错误命名标头。保留名称包括:

452 566 

453* `authorization` 和 `x-api-key`567* `authorization` 和 `x-api-key`

454* `host`、`content-type` 和 `user-agent`568* `host`、`content-type` 和 `user-agent`


458 多个上游572 多个上游

459</h4>573</h4>

460 574 

461同一提供者可以出现多次,具有不同的 `name:`。这涵盖不同的地区、通过不同凭证链的不同帐户、预配吞吐量与按需以及跨提供者故障转移。575相同提供商可以出现多次,具有不同的 `name:`。这涵盖不同的区域、通过不同凭证链的不同帐户、预配吞吐量与按需,以及跨提供商故障转移。

462 576 

463网关按顺序尝试上游。`5xx`、`429`、`401`、`403`、`404`、超时和缺失端点(`501`)故障转移;其他 `4xx` 不会。577网关按顺序尝试上游。`5xx`、`429`、`401`、`403`、`404`、超时和缺失端点 (`501`) 故障转移;其他 `4xx` 不会。

464 578 

465`429` 是每上游容量,因此预配吞吐量 (PT) 耗尽故障转移到按需。如果你在上游上设置 [`forward_user_identity: true`](#per-user-identity-headers-for-a-proxy-you-run),对携带开发者电子邮件的请求的 `429` 是每用户拒绝而不是故障转移。579`429` 是按上游容量,因此预配吞吐量 (PT) 耗尽故障转移到按需。如果您在上游上设置 [`forward_user_identity: true`](#per-user-identity-headers-for-a-proxy-you-run),对携带开发人员电子邮件的请求的 `429` 是按用户拒绝而不是故障转移。

466 580 

467每个请求从第一个上游开始。请求仅在每个前面的上游都失败或不服务请求的模型时才到达后续上游。581每个请求从第一个上游开始。请求仅在它前面的每个上游都失败或不提供请求的模型时才到达后续上游。

468 582 

469网关不保留失败上游的记录,因此当上游关闭时,到达它的每个请求仍然尝试它并等待它失败后再继续。583网关不保持失败上游的记录,因此当上游关闭时,到达它的每个请求仍然尝试它并等待它失败后再继续。

470 584 

471对于 Anthropic API 上游,[`timeouts.upstream_ttfb_ms`](#http-tuning)限制在关闭上游上的等待。该设置不适用于其他提供者,网关在那里等待最多一小时以便上游开始响应。585对于 Anthropic API 上游,[`timeouts.upstream_ttfb_ms`](#http-tuning) 限制在关闭上游上的等待。该设置不适用于其他提供商,网关等待最多一小时以便上游开始响应。

472 586 

473`404` 是每上游模型可用性,因此未启用模型的上游不会阻止服务它的后续上游。无法解析请求的模型的上游被跳过,无需网络往返。587`404` 是按上游模型可用性,因此未启用模型的上游不阻止提供它的后续上游。无法解析请求的模型的上游被跳过而不进行网络往返。

474 588 

475此示例首先路由预配吞吐量 Bedrock 分配,溢出到按需和第二个帐户,最后回退到 Anthropic API:589此示例首先路由预配吞吐量 Amazon Bedrock 分配,溢出到按需和第二个帐户,并最后回退到 Anthropic API:

476 590 

477```yaml theme={null}591```yaml theme={null}

478upstreams:592upstreams:

479 # 主要:你的主地区的预配吞吐量。593 # 主要:您主区域中的预配吞吐量。

480 - name: bedrock-pt594 - name: bedrock-pt

481 provider: bedrock595 provider: bedrock

482 region: us-east-1596 region: us-east-1

483 auth: {}597 auth: {}

484 # 溢出:按需跨地区。598 # 溢出:按需跨区域。

485 - name: bedrock-od599 - name: bedrock-od

486 provider: bedrock600 provider: bedrock

487 region: us-west-2601 region: us-west-2

488 auth: {}602 auth: {}

489 # 不同帐户:通过假定角色凭证的单独 Bedrock 分配。603 # 不同帐户:通过静态密钥的单独 Bedrock 分配。

490 - name: bedrock-acct2604 - name: bedrock-acct2

491 provider: bedrock605 provider: bedrock

492 region: us-east-1606 region: us-east-1


499 auth:613 auth:

500 api_key: ${ANTHROPIC_API_KEY}614 api_key: ${ANTHROPIC_API_KEY}

501 615 

502# 每上游模型 ID 由上游的 `name:` 键入。616# 按上游模型 ID 在上游的 `name:` 上键入。

503models:617models:

504 - id: claude-opus-4-8618 - id: claude-opus-4-8

505 label: Claude Opus 4.8619 label: Claude Opus 4.8


512 626 

513| 杠杆 | 如何 |627| 杠杆 | 如何 |

514| - | - |628| - | - |

515| 不同地区 | 每个地区一个 Bedrock 上游,每个都有自己的 `region:`。使用 [`auto_include_builtin_models: true`](#models),跨地区推理配置文件自动路由;对于地区固定部署,使用 `models:` 块。 |629| 不同区域 | 每个区域一个 Amazon Bedrock 上游,每个都有自己的 `region:`。使用 [`auto_include_builtin_models: true`](#models) 跨区域推理配置文件自动路由;对于区域固定部署,使用 `models:` 块。 |

516| 不同帐户 | 每个帐户一个 Bedrock 上游,每个在 `auth:` 中都有自己的凭证。默认链 (`auth: {}`) 使用 pod 的身份;对于第二个帐户,设置显式凭证或持有者令牌。 |630| 不同帐户 | 每个帐户一个 Amazon Bedrock 上游。默认链 (`auth: {}`) 使用 pod 的身份;对于第二个帐户,添加 [`assume_role`](#bedrock-in-another-aws-account) 以使用短期凭证到达它,或在 `auth:` 中设置显式凭证或持有者令牌。 |

517| 预配吞吐量 | 在该上游名称的 `models:` 中将模型映射到预配吞吐量 ARN。其他上游保持按需 ID,因此 PT 容量在故障转移前耗尽。 |631| 预配吞吐量 | 将模型映射到该上游名称的 `models:` 中的预配吞吐量 ARN。其他上游保持按需 ID,因此 PT 容量在故障转移前耗尽。 |

518| VPC / FIPS 端点 | 在上游上设置 `base_url:` 到你的 VPC 端点或 FIPS 端点 URL |632| VPC / FIPS 端点 | 在上游上设置 `base_url:` 到您的 VPC 端点或 FIPS 端点 URL |

519| 模型范围路由 | 仅自定义模型 `id`(不是内置 Claude 模型的模型)从其 `upstream_model:` 映射中省略的上游被跳过。网关按顺序尝试每个上游上的内置模型,并在映射没有条目时使用提供者的默认 ID,因此对于内置模型,映射改变上游接收哪个 ID 而不是它是否被尝试;拒绝 ID 的上游遵循与任何其他上游错误相同的[故障转移规则](#upstreams)。 |633| 模型范围路由 | 仅自定义模型 `id`,不是内置 Claude 模型,跳过其 `upstream_model:` 映射中不存在的上游。网关按顺序在每个上游上尝试内置模型,并在映射没有条目时使用提供商的默认 ID,因此对于内置模型,映射改变上游接收的 ID 而不是它是否被尝试;拒绝 ID 的上游遵循与任何其他上游错误相同的[故障转移规则](#upstreams);不在其 `upstream_model:` 映射中的上游被跳过,因此请求和放弃请求的令牌计数都无法故障转移到另一个帐户。内置模型名称仍在每个上游按顺序尝试,包括这个,到达它的请求使用相同的角色签署,因此除非其帐户也应该提供它们,否则最后列出此上游。 |

520 634 

521在云提供者之间或直接 Anthropic API 之间故障转移会改变哪个协议、地理位置和其他条款管理请求。635在云提供商之间或直接 Anthropic API 之间故障转移改变哪个协议、地理位置和其他条款控制请求。

522 636 

523CLI 对网关应用相同的功能门控,无论哪个上游服务给定请求,因此故障转移不会发送上游会拒绝的正文字段。637CLI 对网关应用相同的功能门控,无论哪个上游提供给定请求,因此故障转移不发送上游会拒绝的正文字段。

524 638 

525<h2 id="optional-sections">639<h2 id="optional-sections">

526 可选部分640 可选部分


534 648 

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

536admin:650admin:

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

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

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

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


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

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

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

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

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

561 675 

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


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

577 691 

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

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

580 694 

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

582pricing:696pricing:


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

594| - | - | - |708| - | - | - |

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

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

597 711 

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

599 713 

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

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

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

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

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

605 719 

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

607 721 

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

609 标记价格上升723 标记价格上升

610</h4>724</h4>

611 725 

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

613 727 

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

615pricing:729pricing:

616 multiplier: 1.2730 multiplier: 1.2

617```731```

618 732 

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

620 734 

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

622 736 

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

624 738 

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

626 740 

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

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

629</h4>743</h4>

630 744 

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

632 746 

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

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

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

636 750 

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

638 `models`752 `models`

639</h3>753</h3>

640 754 

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

642 756 

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

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


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

678 792 

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

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

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

682 796 

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

684 798 


699<Note>813<Note>

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

701 815 

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

703 817 

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

705 819 

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

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

708</Note>822</Note>

709 823 

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


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

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

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

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

727 841 

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

729 `cli` 中的内容843 `cli` 中的内容

730</h4>844</h4>

731 845 

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

733 847 

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

735 849 

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

737 851 

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

739 853 

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

741managed:855managed:


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

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

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

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

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

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

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


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

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

789 903 

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

791 905 

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

793 907 

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

795 909 

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

797 911 

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

799 913 

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

801 915 

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

803 917 


807 921 

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

809 923 

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

811 925 

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

813 927 


817 Claude Desktop 覆盖931 Claude Desktop 覆盖

818</h4>932</h4>

819 933 

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

821 935 

822<Note>936<Note>

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

824</Note>938</Note>

825 939 

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


834 948 

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

836 950 

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

838 952 

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

840 954 

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

842managed:956managed:


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

851```965```

852 966 

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

854 968 

855* 未知键969* 未知键

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


859 973 

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

861 975 

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

977 

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

863 979 

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

865 981 

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

867 983 

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

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

870 986 

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

872 988 

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

874 990 

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

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

877</h4>993</h4>

878 994 

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

880 996 

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

882 998 

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

884 1000 


888 1004 

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

890 1006 

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

892 1008 

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

894 1010 

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

896 1012 

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

898 1014 

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

900 1016 

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

902 1018 

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

904 1020 


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

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

927 1043 

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

929</Warning>1045</Warning>

930 1046 

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

932 1048 

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

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

935 1051 

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

937 1053 

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

939 1055 

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

941 1057 

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

943 1059 

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

945 1061 

946* `CLAUDE_CODE_ENABLE_TELEMETRY=1`1062* `CLAUDE_CODE_ENABLE_TELEMETRY=1`

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

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

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

950 1066 

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

952 1068 

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

954 1070 

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

956 1072 

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

958 1074 

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

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

961 1077 

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

963 1079 

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

965 1081 

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

967 1083 

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

969 1085 

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

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

972</h4>1088</h4>

973 1089 

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

975 1091 

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

977 1093 


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

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

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

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

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

994 1110 

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

996 1112 

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

998 1114 

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

1000 1116 


1008 1124 

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

1010 1126 

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

1012 1128 

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

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

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

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

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

1018 1134 

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

1020 1136 

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

1022 1138 

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

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

1025 1141 

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


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

1030</h4>1146</h4>

1031 1147 

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

1033 1149 

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

1035 1151 

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

1037 1153 

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

1039 HTTP 调整1155 HTTP 调整

1040</h3>1156</h3>

1041 1157 

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

1043 1159 

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

1045| - | - | - | - |1161| - | - | - | - |

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

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

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

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

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

1051| `rate_limits` | `device_authorization.max` / `.window_seconds` | 30 / 600 | 未认证设备授权端点上的每 IP 速率限制。为共享出口 IP 或 NAT 后面的大型组织提高。[大型推出](/docs/zh-CN/claude-apps-gateway-deploy#large-rollouts)显示如何调整大小。这些限制仅适用于设备授予登录流,不适用于 `/v1/messages` 推理。请参阅[用户代码暴力破解抵抗](/docs/zh-CN/claude-apps-gateway-deploy#user-code-brute-force-resistance)。 |1167| `rate_limits` | `device_authorization.max` / `.window_seconds` | 30 / 600 | 未认证设备授权端点上的每个 IP 速率限制。为共享出口 IP 或 NAT 后面的大型组织提高。[大型推出](/docs/zh-CN/claude-apps-gateway-deploy#large-rollouts)显示如何调整大小。这些限制仅适用于设备授予登录流,不适用于 `/v1/messages` 推理。请参阅[用户代码暴力破解抵抗](/docs/zh-CN/claude-apps-gateway-deploy#user-code-brute-force-resistance)。 |

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

1053 1169 

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

1055 1171 

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

1057 1173 

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

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

1060 1176 

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

1062 1178 

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

1064 1180 

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

1066 `load_test_mode`1182 `load_test_mode`

1067</h3>1183</h3>

1068 1184 

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

1070 1186 

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

1072 1188 

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

1074 1190 

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

1076load_test_mode:1192load_test_mode:

1077 enabled: true1193 enabled: true

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

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

1080```1196```

1081 1197 

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

1083| - | - | - |1199| - | - | - |

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

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

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

1087 1203 

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

1089 1205 

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

1091 1207 

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

1093 1209 

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

1095 1211 

1096<Warning>1212<Warning>

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

1098</Warning>1214</Warning>

1099 1215 

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

Details

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

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

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

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

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

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

309 309 

Details

513 遥测513 遥测

514</h2>514</h2>

515 515 

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

517 517 

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

519 519 

520客户端遥测默认关闭;配置 `telemetry.forward_to` 是为连接的开发人员打开它的原因,每个交互式客户端为推送的设置显示一次性安全批准对话框,如[配置参考](/docs/zh-CN/claude-apps-gateway-config#telemetry)中所述。在 AWS 上,每个信号映射到目标如下。520客户端遥测默认关闭;配置 `telemetry.forward_to` 是为连接的开发者启用它的方式,每个交互式客户端都会显示一个安全批准对话框,用于推送的设置,如 [配置参考](/docs/zh-CN/claude-apps-gateway-config#telemetry) 中所述。在 AWS 上,每个信号映射到目标如下。

521 521 

522<h3 id="client-metrics-logs-and-traces">522<h3 id="client-metrics-logs-and-traces">

523 客户端指标、日志和跟踪523 客户端指标、日志和跟踪


525 525 

526将 `telemetry.forward_to` 指向 OpenTelemetry 收集器,例如 [AWS Distro for OpenTelemetry (ADOT) 收集器](https://aws-otel.github.io/),并从那里导出到 Amazon CloudWatch、Amazon Managed Service for Prometheus 或任何 OTLP 后端。526将 `telemetry.forward_to` 指向 OpenTelemetry 收集器,例如 [AWS Distro for OpenTelemetry (ADOT) 收集器](https://aws-otel.github.io/),并从那里导出到 Amazon CloudWatch、Amazon Managed Service for Prometheus 或任何 OTLP 后端。

527 527 

528将收集器作为其自己的内部服务运行,可通过 `https://` 到达;[`telemetry` 参考](/docs/zh-CN/claude-apps-gateway-config#telemetry)涵盖环回异常和 `CLAUDE_GATEWAY_ALLOW_LOOPBACK`。528将收集器作为其自己的内部服务运行,可通过 `https://` 访问;[`telemetry` 参考](/docs/zh-CN/claude-apps-gateway-config#telemetry)涵盖了环回异常和 `CLAUDE_GATEWAY_ALLOW_LOOPBACK`。

529 529 

530<h3 id="gateway-logs">530<h3 id="gateway-logs">

531 Gateway 日志531 网关日志

532</h3>532</h3>

533 533 

534在 ECS Fargate 上,无需额外设置:`awslogs` 驱动程序将 gateway 的 stderr(包含其审计事件和操作日志)传递到上面创建的 `/ecs/claude-gateway` 日志组。在 EKS 上,pod 日志默认不到达 CloudWatch,因此审计跟踪丢失,直到您安装日志收集:启用容器日志捕获的 Amazon CloudWatch Observability 附加组件,或 Fluent Bit DaemonSet。在任一轨道上,使用 CloudWatch Logs Insights 查询日志并从指标过滤器驱动警报。534在 ECS Fargate 上,无需额外设置:`awslogs` 驱动程序将网关的 stderr(包含其审计事件和操作日志)传递到上面创建的 `/ecs/claude-gateway` 日志组。在 EKS 上,Pod 日志默认不会到达 CloudWatch,因此审计跟踪会丢失,直到您安装日志收集:启用容器日志捕获的 Amazon CloudWatch Observability 附加组件,或 Fluent Bit DaemonSet。在任一方案上,使用 CloudWatch Logs Insights 查询日志,并从指标过滤器驱动告警。

535 535 

536<h3 id="container-metrics">536<h3 id="container-metrics">

537 容器指标537 容器指标

538</h3>538</h3>

539 539 

540使用 `aws ecs update-cluster-settings --cluster claude-gateway --settings name=containerInsights,value=enabled` 在集群上启用 Container Insights 以获得每个任务的 CPU、内存和网络。在 EKS 上,安装 Amazon CloudWatch Observability 附加组件。540使用 `aws ecs update-cluster-settings --cluster claude-gateway --settings name=containerInsights,value=enabled` 在集群上启用 Container Insights,以获取每个任务的 CPU、内存和网络。在 EKS 上,安装 Amazon CloudWatch Observability 附加组件。

541 541 

542<h3 id="spend">542<h3 id="spend">

543 支出543 支出

544</h3>544</h3>

545 545 

546遥测显示事后使用;[支出限制](/docs/zh-CN/claude-apps-gateway-spend-limits)是 gateway 在共享上游凭证之上的实时每个开发人员视图和执行。546遥测显示事后使用情况;[支出限制](/docs/zh-CN/claude-apps-gateway-spend-limits)是网关的实时每个开发者视图和执行。

547 

548<h2 id="cost-attribution">

549 成本归属

550</h2>

551 

552网关使用其自身主体(ECS 任务角色或 EKS IRSA 角色)对每个 Bedrock 请求进行签名,因此默认情况下 AWS 会将所有支出归属于一个 IAM 主体。有两种方法可以在 AWS 的账单数据中拆分成本,它们可以结合使用。

553 

554<h3 id="per-developer-with-assume_role">

555 使用 `assume_role` 按开发者拆分

556</h3>

557 

558创建第二个 IAM 角色来持有 Bedrock 权限并信任网关的主体,授予该主体对其的 `sts:AssumeRole` 权限,并在 Bedrock 上游上设置 [`assume_role`](/docs/zh-CN/claude-apps-gateway-config#per-developer-aws-cost-attribution),其中 `session_name: email`。网关随后会每小时为每个开发者假设该角色一次,并将会话名称设置为其电子邮件,然后使用结果对其请求进行签名。需要运行 Claude Code v2.1.281 或更高版本的网关。该角色也可以位于另一个 AWS 账户中:请参阅 [Bedrock 在另一个 AWS 账户中](/docs/zh-CN/claude-apps-gateway-config#bedrock-in-another-aws-account)。在 Terraform 中,在 [Terraform 包](#terraform-reference) 中的任务角色旁边:

559 

560```hcl theme={null}

561resource "aws_iam_role" "bedrock_user" {

562 name = "claude-gateway-bedrock-user"

563 assume_role_policy = jsonencode({

564 Version = "2012-10-17"

565 Statement = [{ Effect = "Allow", Action = "sts:AssumeRole", Principal = { AWS = aws_iam_role.task.arn } }]

566 })

567}

568resource "aws_iam_role_policy" "bedrock_user_invoke" { # same Bedrock policy as the task role's

569 role = aws_iam_role.bedrock_user.id

570 policy = aws_iam_role_policy.bedrock_invoke.policy

571}

572resource "aws_iam_role_policy" "task_assume_bedrock_user" {

573 role = aws_iam_role.task.id

574 policy = jsonencode({

575 Version = "2012-10-17"

576 Statement = [{ Effect = "Allow", Action = "sts:AssumeRole", Resource = aws_iam_role.bedrock_user.arn }]

577 })

578}

579```

580 

581设置 `assume_role` 后,网关会使用假设角色的凭证对每个 Bedrock 调用进行签名,包括用于支出计量的免费 `CountTokens` 调用,因此网关的主体仅在没有 `assume_role` 的上游上才需要自己的 Bedrock 策略。

582 

583由于网关在请求时调用 STS,私有子网需要到 `sts.<region>.amazonaws.com` 的路径。先决条件中的 NAT 网关提供了一条路径,STS 接口 VPC 端点也提供了一条路径,该端点可以应答该主机名。每个活跃开发者每小时每个网关副本需要一个 STS 调用。

584 

585每个开发者的请求到达 AWS 时的主体为 `arn:aws:sts::<account>:assumed-role/<role>/<email>`。要查看每个主体的支出,请使用包含 IAM 主体数据的账单导出;AWS 的 [IAM 主体成本分配](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/iam-principal-cost-allocation.html) 页面介绍了如何启用它以及哪些账单工具显示它。

586 

587<h3 id="per-team-with-application-inference-profiles">

588 使用应用推理配置文件按团队拆分

589</h3>

590 

591此路由仅使用 [`models`](/docs/zh-CN/claude-apps-gateway-config#models) 和 [`managed`](/docs/zh-CN/claude-apps-gateway-config#managed) 部分。为每个团队和模型创建一个 Bedrock [应用推理配置文件](https://docs.aws.amazon.com/bedrock/latest/userguide/inference-profiles-create.html),用团队标记每个配置文件,并激活该标记作为成本分配标记。然后在 `gateway.yaml` 中为每个团队提供其自己的模型 id,并将每个 IdP 组固定到其团队的 id:

592 

593```yaml theme={null}

594models:

595 - id: platform-claude-opus-4-8

596 upstream_model:

597 bedrock: arn:aws:bedrock:us-east-1:123456789012:application-inference-profile/abc123

598 - id: data-claude-opus-4-8

599 upstream_model:

600 bedrock: arn:aws:bedrock:us-east-1:123456789012:application-inference-profile/def456

601managed:

602 policies:

603 - match: {groups: [team-platform]}

604 cli: {availableModels: [platform-claude-opus-4-8], enforceAvailableModels: true}

605 - match: {groups: [team-data]}

606 cli: {availableModels: [data-claude-opus-4-8], enforceAvailableModels: true}

607 - match: {}

608 cli: {availableModels: [claude-opus-4-8, claude-sonnet-4-6], enforceAvailableModels: true}

609```

610 

611告诉固定团队中的开发者使用 `--model platform-claude-opus-4-8` 启动 Claude Code,使用其团队的 id,因为在没有它的情况下启动的会话会运行默认模型,网关会为他们拒绝该模型。

612 

613网关在每个请求上强制执行 `availableModels`,不仅在模型选择器中,AWS 账单会按您激活的标记对支出进行分组。如果没有 `match: {}` 的全部匹配,与任何策略都不匹配的开发者会获得目录中的每个模型,并可以对任一团队的配置文件进行计费。

614 

615成本:配置随着团队乘以模型而增长,对此上游的 Bedrock 请求进行签名的角色也必须被允许调用 `application-inference-profile/*` ARN。该角色是网关的主体,或者使用 `assume_role` 时是它假设的角色。请参阅 [`pricing`](/docs/zh-CN/claude-apps-gateway-config#pricing) 了解网关自身的支出计量如何对这些 id 进行定价。

547 616 

548<h2 id="next-steps">617<h2 id="next-steps">

549 后续步骤618 后续步骤

Details

8 8 

9支出限制限制了每个开发者在给定的一天、一周或一个月内通过你的 [Claude 应用网关](/docs/zh-CN/claude-apps-gateway) 可以花费的金额。当开发者超过他们的上限时,网关在他们的下一个请求上返回 `429`,并阻止他们直到该周期重置或管理员提高上限。使用支出限制为每个开发者、团队或整个组织设置一个共享凭证的上限。9支出限制限制了每个开发者在给定的一天、一周或一个月内通过你的 [Claude 应用网关](/docs/zh-CN/claude-apps-gateway) 可以花费的金额。当开发者超过他们的上限时,网关在他们的下一个请求上返回 `429`,并阻止他们直到该周期重置或管理员提高上限。使用支出限制为每个开发者、团队或整个组织设置一个共享凭证的上限。

10 10 

11Claude 应用网关通过一个共享的上游凭证转发所有推理,因此你的提供商的账单将所有内容归属于该凭证,而不是单个开发者。没有按开发者的限制,一个失控的代理群可能会花费组织的整个承诺。支出限制是网关在该共享账单之上的按开发者视图和断路器。11默认情况下,Claude 应用网关通过一个共享的上游凭证转发所有推理,因此你的提供商的账单将所有内容归属于该凭证,而不是单个开发者。在 Amazon Bedrock 上,[按开发者的 AWS 成本归属](/docs/zh-CN/claude-apps-gateway-config#per-developer-aws-cost-attribution) 改变了这一点。没有按开发者的限制,一个失控的代理群可能会花费组织的整个承诺。支出限制是网关在该共享账单之上的按开发者视图和断路器。

12 12 

13<h2 id="set-a-cap">13<h2 id="set-a-cap">

14 设置上限14 设置上限

Details

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

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

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

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

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

154 155 

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

Details

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

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

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

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

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

1573 1574 

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


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

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

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

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

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

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

1720 1722 

claude-projects.md +25 −11

Details

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

81 81 

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

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

84 84 

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

86 86 


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

132</h3>132</h3>

133 133 

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

135 135 

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

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

138 138 

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

140 

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

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

141</h3>143</h3>


275 277 

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

277 279 

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

279 281 

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

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


283 285 

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

285 287 

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

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

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

289 291 


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

293 295 

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

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

296 </Step>298 </Step>

297 299 

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


300 </Step>302 </Step>

301 303 

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

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

304 </Step>306 </Step>

305</Steps>307</Steps>

306 308 


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

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

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

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

324 326 

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

326 328 


364 366 

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

366 368 

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

370 添加文件和文件夹

371</h3>

372 

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

374 

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

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

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

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

379 

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

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

369</h3>382</h3>


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

473 486 

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

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

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

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

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

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

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

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

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

482 496 

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


486 限制500 限制

487</h2>501</h2>

488 502 

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

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

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

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

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

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

495 509 

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

497 故障排除511 故障排除

Details

4 4 

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

6 6 

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

8 8 

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

10 10 

11该插件在您的会话中本地运行,使用您在 Claude Code 中有权访问的任何模型,每次扫描都会计入您的计划使用限额。如果您想要一个监控您的存储库的托管服务,或想要在 [Claude Mythos 5](https://platform.claude.com/docs/en/about-claude/models/introducing-claude-fable-5-and-claude-mythos-5) 上运行扫描,请参阅 [Claude Security](https://claude.com/product/claude-security) 产品,该产品在企业计划中可用。该插件可以访问托管产品无法访问的代码,例如托管在 GitLab 或 Bitbucket 上的存储库,或在不允许入站连接的网络上的存储库。11该插件在您的会话中本地运行,使用[您在 Claude Code 中可以访问的任何模型](#models-and-providers),每次扫描都计入您的[使用量](/docs/zh-CN/costs)。如果您想要一个监控您的存储库的托管服务,或想要在 [Claude Mythos](https://platform.claude.com/docs/en/about-claude/models/introducing-claude-fable-5-and-claude-mythos-5) 上运行扫描,请参阅 [Claude Security](https://claude.com/product/claude-security) 产品,该产品在企业计划中提供。该插件可以访问托管产品无法访问的代码,例如托管在 GitLab 或 Bitbucket 上的存储库,或在不允许入站连接的网络上的存储库。

12 12 

13该插件也不同于 Claude Code 中已有的审查工具:[security guidance 插件](/docs/zh-CN/security-guidance)在 Claude 编写代码时审查代码,[`/security-review`](/docs/zh-CN/commands#all-commands) 对您的分支运行单次扫描,[Code Review](/docs/zh-CN/code-review) 审查拉取请求。有关这些层如何堆叠的信息,请参阅[该插件如何与其他安全工具配合](#how-the-plugin-fits-with-other-security-tools)。13该插件也不同于 Claude Code 中已有的审查工具:[security guidance plugin](/docs/zh-CN/security-guidance) 在 Claude 编写代码时审查代码,[`/security-review`](/docs/zh-CN/commands#all-commands) 对您的分支运行单次扫描,[Code Review](/docs/zh-CN/code-review) 审查拉取请求。有关这些层如何堆叠的信息,请参阅[插件如何与其他安全工具配合](#how-the-plugin-fits-with-other-security-tools)。

14 14 

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

16 前置条件16 前置条件


18 18 

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

20 20 

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

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

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

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

25 

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

27 模型和提供商

28</h2>

29 

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

31 

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

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

34 

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

36 

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

25 38 

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

27 安装插件40 安装插件


156 169 

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

158 171 

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

160 173 

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

162 相关资源175 相关资源

Details

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

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

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

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

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

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

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

Details

78DATABASE_URL=postgres://localhost:5432/myapp78DATABASE_URL=postgres://localhost:5432/myapp

79```79```

80 80 

81每个会话在启动时将环境的值复制一次到普通环境变量中,Claude运行的任何命令都可以读取这些变量,除了`OTEL_*`变量。Claude Code使用这些变量进行自己的[遥测导出](/docs/zh-CN/monitoring-usage#telemetry-from-cloud-sessions-and-claude-tag),不会将它们传递给它运行的命令。因为运行中的会话不会重新读取配置,编辑或添加变量会影响你之后启动的会话;已经运行的会话保持它们启动时的值。81会话在创建时将环境的值读入普通环境变量中,Claude运行的任何命令都可以读取这些变量,除了`OTEL_*`变量。Claude Code使用这些变量进行自己的[遥测导出](/docs/zh-CN/monitoring-usage#telemetry-from-cloud-sessions-and-claude-tag),不会将它们传递给它运行的命令。

82 

83在Anthropic托管的环境中,会话在创建时读取环境的值,以及之后每次Claude Code在会话的VM中启动时读取,这发生在两种情况下:

84 

85* **VM在空闲后被恢复**:在几分钟没有活动后,会话的VM会暂停,其文件被保存。你的下一条消息会恢复同一个VM并再次启动Claude Code。

86* **VM被回收并被重建**:如果暂停的VM已经被[回收](/docs/zh-CN/claude-code-on-the-web#environment-expired),重新打开会话会配置一个新的VM。

87 

88编辑、添加或删除变量后,Anthropic托管环境中的现有会话会保持它最后读取的值,直到其VM下次被恢复或重建,然后使用你的更改。其VM在会话空闲后会自动暂停,你无法自己暂停它。要立即使用新值,请要求Claude在它运行的命令上设置它,例如`LOG_LEVEL=trace npm test`,或启动一个新会话。

82 89 

83云会话在启动时也会自己设置一些变量。对于[`CLAUDE_AUTOCOMPACT_PCT_OVERRIDE`](/docs/zh-CN/claude-code-on-the-web#manage-context),会话设置的值会覆盖你在这里添加的值,所以在这里添加该键没有效果。90云会话在启动时也会自己设置一些变量。对于[`CLAUDE_AUTOCOMPACT_PCT_OVERRIDE`](/docs/zh-CN/claude-code-on-the-web#manage-context),会话设置的值会覆盖你在这里添加的值,所以在这里添加该键没有效果。

84 91 


208 215 

209要更改环境的网络访问,[打开它进行编辑](#configure-your-environment)并在对话框中使用 **Network access** 选择器。[共享环境](#organization-shared-environments)在那里以只读方式打开,因此 Owner 改为从[管理设置](https://claude.ai/admin-settings)中的 **Cloud environments** 页面更改其网络访问。打开选择器的云图标出现在[Default 环境](#the-default-environment)下列出的应用界面上,以及[例程编辑器](/docs/zh-CN/routines#environments-and-network-access)中;个人环境在您的 claude.ai 账户设置中没有单独的页面。216要更改环境的网络访问,[打开它进行编辑](#configure-your-environment)并在对话框中使用 **Network access** 选择器。[共享环境](#organization-shared-environments)在那里以只读方式打开,因此 Owner 改为从[管理设置](https://claude.ai/admin-settings)中的 **Cloud environments** 页面更改其网络访问。打开选择器的云图标出现在[Default 环境](#the-default-environment)下列出的应用界面上,以及[例程编辑器](/docs/zh-CN/routines#environments-and-network-access)中;个人环境在您的 claude.ai 账户设置中没有单独的页面。

210 217 

218当您更改 Anthropic 托管环境的网络访问时,其现有会话在约一分钟内遵循新设置,用于通过会话的[网络允许列表](#access-levels)的请求。您无需启动新会话。

219 

211<Note>220<Note>

212 您在会话或例程上启用的 MCP 连接器无需将其主机添加到 **Allowed domains**,因为连接器流量通过 Anthropic 的服务器而不是会话的网络传输。这依赖于[安全性和隔离](/docs/zh-CN/claude-code-on-the-web#security-and-isolation)下提到的同一条通往 Anthropic 的通道。关闭任何您不需要的连接器,以限制 Claude 可以访问的工具。221 您在会话或例程上启用的 MCP 连接器无需将其主机添加到 **Allowed domains**,因为连接器流量通过 Anthropic 的服务器而不是会话的网络传输。这依赖于[安全性和隔离](/docs/zh-CN/claude-code-on-the-web#security-and-isolation)下提到的同一条通往 Anthropic 的通道。关闭任何您不需要的连接器,以限制 Claude 可以访问的工具。

213</Note>222</Note>


428 437 

429在 Anthropic 托管的环境中,这些时间限制适用于云会话中的长时间运行的工作,例如构建、安装或测试运行。每个条目链接到定义该限制的部分。438在 Anthropic 托管的环境中,这些时间限制适用于云会话中的长时间运行的工作,例如构建、安装或测试运行。每个条目链接到定义该限制的部分。

430 439 

431* **Claude 运行的命令**:云环境不设置自己的命令超时,因此 Bash 工具的默认值适用。Claude 默认等待 2 分钟的命令,最多可以要求 10 分钟。当命令达到其[超时](/docs/zh-CN/tools-reference#timeout-and-output-limits)时,Claude Code [将其移到后台](/docs/zh-CN/tools-reference#background-commands),而不是停止它,除非命令以 `sleep` 开头。440* **Claude 运行的命令**:云环境不设置自己的命令超时,因此 Bash 工具的默认值适用。Claude 默认等待 2 分钟的命令,最多可以要求 10 分钟。

441 

442 当命令达到其[超时](/docs/zh-CN/tools-reference#timeout-and-output-limits)时,Claude Code [将其移到后台](/docs/zh-CN/tools-reference#background-commands),而不是停止它,除非命令以 `sleep` 开头。以这种方式移动的命令可以继续运行最多 30 分钟,然后 Claude Code 在其[后台时间限制](/docs/zh-CN/tools-reference#background-commands)处停止它。将 `BASH_DEFAULT_TIMEOUT_MS` 设置为 `1800000` 毫秒以上会延长该限制以及前台默认值。

432* **SessionStart hooks**:Claude Code 在 600 秒后取消 `command` hook,除非您在 hook 条目上设置 [`timeout`](/docs/zh-CN/hooks#common-fields)(以秒为单位)。Claude Code 不会对您使用 [`async: true`](/docs/zh-CN/hooks#run-hooks-in-the-background) 运行的 hook 强制执行超时。443* **SessionStart hooks**:Claude Code 在 600 秒后取消 `command` hook,除非您在 hook 条目上设置 [`timeout`](/docs/zh-CN/hooks#common-fields)(以秒为单位)。Claude Code 不会对您使用 [`async: true`](/docs/zh-CN/hooks#run-hooks-in-the-background) 运行的 hook 强制执行超时。

433* **设置脚本**:花费超过大约五分钟的脚本不会被缓存。[脚本要求](#script-requirements)涵盖如何保持在该时间以下。444* **设置脚本**:花费超过大约五分钟的脚本不会被缓存。[脚本要求](#script-requirements)涵盖如何保持在该时间以下。

434* **空闲会话**:会话在一段时间不活动后停止,其 VM 被回收。[环境已过期](/docs/zh-CN/claude-code-on-the-web#environment-expired)涵盖什么算作不活动以及如何重新打开会话。445* **空闲会话**:会话在一段时间不活动后停止,其 VM 被回收。[设置环境变量](#set-environment-variables)描述会话在每种情况下会获取什么,[环境已过期](/docs/zh-CN/claude-code-on-the-web#environment-expired)涵盖如何重新打开 VM 被回收的会话。

435 446 

436要为环境的会话提高命令超时,请将 [`BASH_DEFAULT_TIMEOUT_MS` 和 `BASH_MAX_TIMEOUT_MS`](/docs/zh-CN/env-vars#variables) 添加到其[环境变量](#set-environment-variables)。两者都采用毫秒。例如,`BASH_DEFAULT_TIMEOUT_MS=600000` 使 10 分钟成为默认值。447要为环境的会话提高命令超时,请将 [`BASH_DEFAULT_TIMEOUT_MS` 和 `BASH_MAX_TIMEOUT_MS`](/docs/zh-CN/env-vars#variables) 添加到其[环境变量](#set-environment-variables)。两者都采用毫秒。例如,`BASH_DEFAULT_TIMEOUT_MS=600000` 使 10 分钟成为默认值。

437 448 


470 481 

471缓存是文件系统快照,因此它会保留设置脚本写入磁盘的内容,并丢失任何仅在运行中的内容。您安装的包、您拉取的 Docker 镜像和您写入的文件都会保留。脚本启动的数据库、`docker compose up` 堆栈或任何其他后台进程不会保留;请通过询问 Claude 或使用 [SessionStart hook](#setup-scripts-vs-sessionstart-hooks) 在每个会话中启动这些。482缓存是文件系统快照,因此它会保留设置脚本写入磁盘的内容,并丢失任何仅在运行中的内容。您安装的包、您拉取的 Docker 镜像和您写入的文件都会保留。脚本启动的数据库、`docker compose up` 堆栈或任何其他后台进程不会保留;请通过询问 Claude 或使用 [SessionStart hook](#setup-scripts-vs-sessionstart-hooks) 在每个会话中启动这些。

472 483 

473当您更改环境的设置脚本或允许的网络主机时,以及当缓存在大约七天后到期时,设置脚本会再次运行以重建缓存。恢复现有会话永远不会重新运行设置脚本。484当您更改环境的设置脚本或允许的网络主机时,以及当缓存在大约七天后到期时,设置脚本会再次运行以重建缓存。在 Anthropic 托管环境中,当会话的 VM 在[空闲后恢复](#set-environment-variables)时,设置脚本不会运行,因此对脚本的更改仅在其 VM 被[回收](/docs/zh-CN/claude-code-on-the-web#environment-expired)并重建时才会到达现有会话。要立即应用更改,请在会话中运行命令或启动新会话。

474 485 

475您不需要自己启用缓存或管理快照。486您不需要自己启用缓存或管理快照。

476 487 


566 * platform.claude.com577 * platform.claude.com

567 * code.claude.com578 * code.claude.com

568 * claude.ai579 * claude.ai

580 * claude.com

581 * support.claude.com

582 * anthropic.com

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

569 </Accordion>584 </Accordion>

570 585 

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


596 * hub.docker.com611 * hub.docker.com

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

598 * production.cloudflare.docker.com613 * production.cloudflare.docker.com

614 * production.cloudfront.docker.com

599 * download.docker.com615 * download.docker.com

600 * gcr.io616 * gcr.io

601 * \*.gcr.io617 * \*.gcr.io

commands.md +7 −4

Details

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

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

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

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

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

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

60| `/auto-mode-setup` | [从你的项目和最近的会话中起草 `autoMode.environment` 条目](/docs/zh-CN/auto-mode-config#generate-environment-entries),然后审查草稿并将其保存到你的用户设置。需要 Pro、Max 或 Team 计划以及 Claude Code v2.1.228 或更高版本。在原生 Windows 上,需要 v2.1.233 或更高版本 |62| `/auto-mode-setup` | [从你的项目和最近的会话中起草 `autoMode.environment` 条目](/docs/zh-CN/auto-mode-config#generate-environment-entries),然后审查草稿并将其保存到你的用户设置。需要 Pro、Max 或 Team 计划以及 Claude Code v2.1.228 或更高版本。在原生 Windows 上,需要 v2.1.233 或更高版本 |

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


67| `/bug [report]` | 报告一个错误或分享你的对话。你选择要包含多少会话历史记录,并在发送任何内容之前在同意屏幕上确认。当你在第一方连接上登录到 Anthropic 时,报告会发送到 Anthropic;在第三方提供商上,或没有 Anthropic 凭证,Claude Code 会将报告写入一个[本地存档在 `~/.claude/feedback-bundles/`](/docs/zh-CN/data-usage#telemetry-services),你自己转发。在 [VS Code 扩展](/docs/zh-CN/vs-code#use-the-prompt-box)中,`/bug` 打开扩展自己的反馈对话框;需要 Claude Code v2.1.229 或更高版本。当你在 Claude 响应时运行它时,Claude Code 立即打开对话框。在 v2.1.232 之前,Claude Code 会将命令排队直到轮次完成。别名:`/share`。在 v2.1.212 之前,`/bug` 和 `/share` 是 `/feedback` 的别名 |69| `/bug [report]` | 报告一个错误或分享你的对话。你选择要包含多少会话历史记录,并在发送任何内容之前在同意屏幕上确认。当你在第一方连接上登录到 Anthropic 时,报告会发送到 Anthropic;在第三方提供商上,或没有 Anthropic 凭证,Claude Code 会将报告写入一个[本地存档在 `~/.claude/feedback-bundles/`](/docs/zh-CN/data-usage#telemetry-services),你自己转发。在 [VS Code 扩展](/docs/zh-CN/vs-code#use-the-prompt-box)中,`/bug` 打开扩展自己的反馈对话框;需要 Claude Code v2.1.229 或更高版本。当你在 Claude 响应时运行它时,Claude Code 立即打开对话框。在 v2.1.232 之前,Claude Code 会将命令排队直到轮次完成。别名:`/share`。在 v2.1.212 之前,`/bug` 和 `/share` 是 `/feedback` 的别名 |

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

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

70| `/claude-api [migrate\|upgrade\|managed-agents-onboard\|prompt-audit\|cost-optimize\|build-eval\|hillclimb]` | **[Skill](/docs/zh-CN/skills#bundled-skills)。** 为你的项目的语言加载 [Claude API](https://platform.claude.com/docs/en/api/overview) 和 [Managed Agents](https://platform.claude.com/docs/en/managed-agents/overview) 参考资料。当你的代码导入 `anthropic` 或 `@anthropic-ai/sdk` 时也会自动激活。运行 `migrate` 以将现有 Claude API 代码更新到更新的模型。运行 `upgrade` 以跨主要版本移动你的项目的 Anthropic SDK 依赖项,目前是 Python `anthropic` 包从 0.x 到 1.x。运行 `managed-agents-onboard` 以获得创建新 Managed Agent 的演练。运行 `prompt-audit` 以标记为旧模型编写的指令在你的提示词、skill 和工具描述中,并提议修复作为差异。运行 `cost-optimize` 以分析你的项目的 Claude API 支出去向,并提议从选项(如 prompt caching、修剪不需要的输入和输出令牌、批处理、工作量和模型选择)中节省,一次一个更改。运行 `build-eval` 以为你的 Claude 驱动的应用构建一个 eval 集,运行 `hillclimb` 以针对现有 eval 迭代改进应用。`prompt-audit` 子命令需要 Claude Code v2.1.221 或更高版本,`upgrade` 需要 v2.1.236 或更高版本,`cost-optimize` 需要 v2.1.247 或更高版本,`build-eval` 和 `hillclimb` 需要 v2.1.259 或更高版本 |72| `/claude-api [migrate\|upgrade\|managed-agents-onboard\|prompt-audit\|cost-optimize\|build-eval\|hillclimb\|preserved-thinking-migration]` | **[Skill](/docs/zh-CN/skills#bundled-skills)。** 为你的项目的语言加载 [Claude API](https://platform.claude.com/docs/en/api/overview) 和 [Managed Agents](https://platform.claude.com/docs/en/managed-agents/overview) 参考资料。当你的代码导入 `anthropic` 或 `@anthropic-ai/sdk` 时也会自动激活。有关每个子命令的作用和它需要的版本,请参阅[在 Claude API 项目上工作](/docs/zh-CN/skills#work-on-claude-api-projects) |

73| `/claude-in-chrome [task]` | **[Skill](/docs/zh-CN/skills#bundled-skills)。** 让 Claude 通过 [Claude in Chrome](/docs/zh-CN/chrome) 在你的浏览器中执行任务,例如测试页面、填充表单或读取控制台日志。当为会话启用 Chrome 集成时可用,例如使用 `claude --chrome`,或当 Claude Code 可以提供[安装扩展](/docs/zh-CN/chrome#install-the-extension-when-claude-asks)时 |

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

72| `/code-review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [pr#\|branch\|path]` | **[Skill](/docs/zh-CN/skills#bundled-skills)。** 审查当前差异,或你传递的 PR 号、分支或路径,以查找正确性错误。根据你的模型和工作量级别,审查也涵盖清理机会。传递 `--fix` 以应用发现,`--comment` 以在 GitHub PR 或 GitLab 合并请求上发布它们,或 `ultra` 以运行深度[云审查](/docs/zh-CN/ultrareview)。发布到 GitLab 合并请求需要 Claude Code v2.1.257 或更高版本。在 `github.com` PR 目标上使用 `ultra` 时,传递 `--post` 以在启动对话框中预选[将完成的发现发布到 PR](/docs/zh-CN/ultrareview#post-findings-to-the-pull-request);`--post` 需要 Claude Code v2.1.227 或更高版本。有关工作量级别、目标和它与 `/simplify` 的关系,请参阅[本地审查差异](/docs/zh-CN/code-review#review-a-diff-locally)。别名:`/review` |75| `/code-review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [pr#\|branch\|path]` | **[Skill](/docs/zh-CN/skills#bundled-skills)。** 审查当前差异,或你传递的 PR 号、分支或路径,以查找正确性错误。根据你的模型和工作量级别,审查也涵盖清理机会。传递 `--fix` 以应用发现,`--comment` 以在 GitHub PR 或 GitLab 合并请求上发布它们,或 `ultra` 以运行深度[云审查](/docs/zh-CN/ultrareview)。发布到 GitLab 合并请求需要 Claude Code v2.1.257 或更高版本。在 `github.com` PR 目标上使用 `ultra` 时,传递 `--post` 以在启动对话框中预选[将完成的发现发布到 PR](/docs/zh-CN/ultrareview#post-findings-to-the-pull-request);`--post` 需要 Claude Code v2.1.227 或更高版本。有关工作量级别、目标和它与 `/simplify` 的关系,请参阅[本地审查差异](/docs/zh-CN/code-review#review-a-diff-locally)。别名:`/review` |

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

costs.md +2 −0

Details

96 96 

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

98 98 

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

100 

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

100 102 

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

desktop.md +9 −3

Details

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 读取文件并运行命令进行探索,然后提出计划而不编辑你的源代码。适合复杂任务,你想先审查方法。 |

92| **Auto** | `auto` | Claude 执行所有操作,并进行后台安全检查以验证与你的请求的一致性。减少权限提示,同时保持监督。当 [auto mode 可用](#auto-mode-availability)时出现;没有单独的设置切换。 |92| **Auto** | `auto` | Claude 运行时不需要常规提示;在执行 shell 命令和网络请求等操作之前,后台分类器会检查它们是否与你的请求一致。当 [auto mode 可用](#auto-mode-availability)时出现;没有单独的设置切换。 |

93| **Bypass permissions** | `bypassPermissions` | Claude 运行时不需要权限提示,除了[任何模式都不会自动批准的操作](/docs/zh-CN/permission-modes#actions-no-mode-auto-approves)、当 Claude [在外部网站上操作](#browse-external-sites)时的安全分类器,或桌面操作(Claude 总是首先询问),例如[归档会话](#work-across-sessions)。等同于 CLI 中的 `--dangerously-skip-permissions`。在 Pro 和 Max 计划上,在你的设置 → Claude Code 中启用它,在"允许绕过权限模式"下;在 Team 和 Enterprise 计划上没有设置切换,组织策略控制它。仅在沙箱容器或虚拟机中使用。 |93| **Bypass permissions** | `bypassPermissions` | Claude 运行时不需要权限提示,除了[任何模式都不会自动批准的操作](/docs/zh-CN/permission-modes#actions-no-mode-auto-approves)、当 Claude [在外部网站上操作](#browse-external-sites)时的安全分类器,或桌面操作(Claude 总是首先询问),例如[归档会话](#work-across-sessions)。等同于 CLI 中的 `--dangerously-skip-permissions`。在 Pro 和 Max 计划上,在你的设置 → Claude Code 中启用它,在"允许绕过权限模式"下;在 Team 和 Enterprise 计划上没有设置切换,组织策略控制它。仅在沙箱容器或虚拟机中使用。 |

94 94 

95代码选项卡的早期版本将这些模式标记为 Ask permissions、Auto accept edits 和 Plan mode。95代码选项卡的早期版本将这些模式标记为 Ask permissions、Auto accept edits 和 Plan mode。


496 496 

497本地会话从 `~/.claude/skills/` 加载你的个人 skills。[SSH](#ssh-sessions) 会话从远程主机的主目录读取 `~/.claude/skills/`,而不是从你的机器。497本地会话从 `~/.claude/skills/` 加载你的个人 skills。[SSH](#ssh-sessions) 会话从远程主机的主目录读取 `~/.claude/skills/`,而不是从你的机器。

498 498 

499本地和云会话也加载为你的 claude.ai 账户启用的 skills。云会话改为加载它们,而不是 `~/.claude/skills/`,如[Cowork 和云会话中的 Skills](/docs/zh-CN/skills#skills-in-cowork-and-cloud-sessions)所述。499本地和云会话也加载为你的 claude.ai 账户启用的 skills,除非你的组织设置了 [`disableSideloadFlags`](/docs/zh-CN/settings-reference#disablesideloadflags)。云会话改为加载它们,而不是 `~/.claude/skills/`,如[Cowork 和云会话中的 Skills](/docs/zh-CN/skills#skills-in-cowork-and-cloud-sessions)所述。

500 500 

501<h3 id="install-plugins">501<h3 id="install-plugins">

502 安装插件502 安装插件


506 506 

507对于本地和 [SSH](#ssh-sessions) 会话,点击提示框旁的 **+** 按钮并选择 **Plugins** 来查看你已安装的插件及其 skills。要添加插件,从子菜单中选择 **Add plugin** 来打开插件浏览器,它显示来自你配置的[市场](/docs/zh-CN/plugins/overview)的可用插件,包括官方 Anthropic 市场。选择 **Manage plugins** 来启用、禁用或卸载插件。507对于本地和 [SSH](#ssh-sessions) 会话,点击提示框旁的 **+** 按钮并选择 **Plugins** 来查看你已安装的插件及其 skills。要添加插件,从子菜单中选择 **Add plugin** 来打开插件浏览器,它显示来自你配置的[市场](/docs/zh-CN/plugins/overview)的可用插件,包括官方 Anthropic 市场。选择 **Manage plugins** 来启用、禁用或卸载插件。

508 508 

509你可以将插件限定到你的用户账户、特定项目或仅本地。如果你的组织集中管理插件,这些插件在桌面会话中的可用方式与在 CLI 中相同。509你可以将插件限定到你的用户账户、特定项目或仅本地。如果你的组织集中管理插件,这些插件在桌面会话中的可用方式与在 CLI 中相同,除了桌面应用在 [`disableSideloadFlags`](/docs/zh-CN/settings-reference#disablesideloadflags) 下扣留的那些。

510 510 

511插件浏览器在云会话中不可用,从桌面应用安装的插件不可用于云会话。云会话也不会安装存储库的 `.claude/settings.json` 声明的插件,如[从你的设置中继承的内容](/docs/zh-CN/cloud-environments#what-carries-over-from-your-setup)所述。插件在 WSL 会话中不可用。有关完整的插件参考,包括创建你自己的插件,请参阅 [plugins](/docs/zh-CN/plugins/overview)。511插件浏览器在云会话中不可用,从桌面应用安装的插件不可用于云会话。云会话也不会安装存储库的 `.claude/settings.json` 声明的插件,如[从你的设置中继承的内容](/docs/zh-CN/cloud-environments#what-carries-over-from-your-setup)所述。插件在 WSL 会话中不可用。有关完整的插件参考,包括创建你自己的插件,请参阅 [plugins](/docs/zh-CN/plugins/overview)。

512 512 


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

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

836 836 

837<Note>

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

839 

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

841</Note>

842 

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

838 托管设置844 托管设置

839</h3>845</h3>

env-vars.md +251 −251

Details

110 110 

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

112 112 

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

114 114 

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

116 116 


127数值变量(如超时、令牌预算和重试次数)除了接受纯数字外,还接受科学记数法和数字分隔符拼写,除非变量的行注明仅接受纯数字。例如,Claude Code 将 `2e3` 读作 2000,将 `64_000` 读作 64000。在 v2.1.211 之前,这些拼写可能会无声地设置一个更小的值,例如 `1e6` 将超时设置为 1。127数值变量(如超时、令牌预算和重试次数)除了接受纯数字外,还接受科学记数法和数字分隔符拼写,除非变量的行注明仅接受纯数字。例如,Claude Code 将 `2e3` 读作 2000,将 `64_000` 读作 64000。在 v2.1.211 之前,这些拼写可能会无声地设置一个更小的值,例如 `1e6` 将超时设置为 1。

128 128 

129<Note>129<Note>

130 对于打开或关闭行为的变量,设置 `1` 或 `true` 以打开它,设置 `0` 或 `false` 以关闭它,不区分大小写。130 对于打开或关闭行为的变量,设置 `1` 或 `true` 以打开,设置 `0` 或 `false` 以关闭,不区分大小写。

131 131 

132 某些变量仅读取您是否设置了它们,因此任何非空值(包括 `0`)都会打开该行为,而通过取消设置变量或将其设置为空值来关闭该行为。这些变量的工作方式如下:132 某些变量仅读取您是否设置了它们,因此任何非空值(包括 `0`)都会打开该行为,而通过取消设置变量或将其设置为空值来关闭该行为。这些变量的工作方式如下:

133 133 


138 * `FALLBACK_FOR_ALL_PRIMARY_MODELS`138 * `FALLBACK_FOR_ALL_PRIMARY_MODELS`

139 * `IS_DEMO`139 * `IS_DEMO`

140 140 

141 另一个变量有自己的规则:`FORCE_HYPERLINK` 读取一个数字,所以只有 `0` 会关闭它。每个变量的行也说明了自己的规则。141 另一个变量有其自己的规则:`FORCE_HYPERLINK` 读取一个数字,因此只有 `0` 会关闭它。每个变量的行也说明了其自己的规则。

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 |

149| `ANTHROPIC_AWS_BASE_URL` | 覆盖 [Claude Platform on AWS](/docs/zh-CN/claude-platform-on-aws) 端点 URL。用于自定义区域或通过 [LLM 网关](/docs/zh-CN/llm-gateway) 路由时。默认为 `https://aws-external-anthropic.{region}.api.aws`。Claude Code 使用 [与 Amazon Bedrock 相同的优先级](/docs/zh-CN/amazon-bedrock#3-configure-claude-code) 解析区域 |149| `ANTHROPIC_AWS_BASE_URL` | 覆盖 [Claude Platform on AWS](/docs/zh-CN/claude-platform-on-aws) 端点 URL。用于自定义区域或通过 [LLM 网关](/docs/zh-CN/llm-gateway) 路由时。默认为 `https://aws-external-anthropic.{region}.api.aws`。Claude Code 使用 [与 Amazon Bedrock 相同的优先级](/docs/zh-CN/amazon-bedrock#3-configure-claude-code) 解析区域 |

150| `ANTHROPIC_AWS_WORKSPACE_ID` | [Claude Platform on AWS](/docs/zh-CN/claude-platform-on-aws) 所需。在每个请求上作为 `anthropic-workspace-id` 标头发送 |150| `ANTHROPIC_AWS_WORKSPACE_ID` | [Claude Platform on AWS](/docs/zh-CN/claude-platform-on-aws) 所需。在每个请求上作为 `anthropic-workspace-id` 标头发送 |

151| `ANTHROPIC_BASE_URL` | 覆盖 API 端点以通过代理或网关路由请求。设置为非第一方主机时,[MCP 工具搜索](/docs/zh-CN/mcp#scale-with-mcp-tool-search) 默认被禁用。如果您的代理转发 `tool_reference` 块,请设置 `ENABLE_TOOL_SEARCH=true`。从 v2.1.196 开始,当这指向 `api.anthropic.com` 以外的主机时,[Remote Control](/docs/zh-CN/remote-control#requirements) 被禁用,与其在 Amazon Bedrock、Google Cloud's Agent Platform 和 Microsoft Foundry 上的行为相匹配 |151| `ANTHROPIC_BASE_URL` | 覆盖 API 端点以通过代理或网关路由请求。设置为非第一方主机时,[MCP 工具搜索](/docs/zh-CN/mcp#scale-with-mcp-tool-search) 默认禁用。如果您的代理转发 `tool_reference` 块,设置 `ENABLE_TOOL_SEARCH=true`。从 v2.1.196 开始,当此指向 `api.anthropic.com` 以外的主机时,[Remote Control](/docs/zh-CN/remote-control) 被禁用,与其在 Amazon Bedrock、Google Cloud's Agent Platform 和 Microsoft Foundry 上的行为相匹配 |

152| `ANTHROPIC_BEDROCK_BASE_URL` | 覆盖 Amazon Bedrock 端点 URL。用于自定义 Amazon Bedrock 端点或通过 [LLM 网关](/docs/zh-CN/llm-gateway) 路由时。请参阅 [Amazon Bedrock](/docs/zh-CN/amazon-bedrock) |152| `ANTHROPIC_BEDROCK_BASE_URL` | 覆盖 Amazon Bedrock 端点 URL。用于自定义 Amazon Bedrock 端点或通过 [LLM 网关](/docs/zh-CN/llm-gateway) 路由时。参见 [Amazon Bedrock](/docs/zh-CN/amazon-bedrock) |

153| `ANTHROPIC_BEDROCK_MANTLE_BASE_URL` | 覆盖 Amazon Bedrock Mantle 端点 URL。请参阅 [Mantle 端点](/docs/zh-CN/amazon-bedrock#use-the-mantle-endpoint) |153| `ANTHROPIC_BEDROCK_MANTLE_BASE_URL` | 覆盖 Amazon Bedrock Mantle 端点 URL。参见 [Mantle 端点](/docs/zh-CN/amazon-bedrock#use-the-mantle-endpoint) |

154| `ANTHROPIC_BEDROCK_REGION_PREFIX` | 跨区域推理配置文件前缀(`us`、`eu`、`apac`、`jp`、`au` 或 `global`)Claude Code 首先尝试而不是从 AWS 区域派生的前缀。在 AWS GovCloud 区域中被忽略。需要 Claude Code v2.1.224 或更高版本。请参阅 [Amazon Bedrock](/docs/zh-CN/amazon-bedrock#cross-region-inference-profile-prefixes) |154| `ANTHROPIC_BEDROCK_REGION_PREFIX` | 跨区域推理配置文件前缀(`us`、`eu`、`apac`、`jp`、`au` 或 `global`)Claude Code 首先尝试而不是从 AWS 区域派生的前缀。在 AWS GovCloud 区域中被忽略。需要 Claude Code v2.1.224 或更高版本。参见 [Amazon Bedrock](/docs/zh-CN/amazon-bedrock#cross-region-inference-profile-prefixes) |

155| `ANTHROPIC_BEDROCK_SERVICE_TIER` | Amazon Bedrock [服务层](https://docs.aws.amazon.com/bedrock/latest/userguide/service-tiers-inference.html)(`default`、`flex` 或 `priority`)。作为 `X-Amzn-Bedrock-Service-Tier` 标头发送。请参阅 [Amazon Bedrock](/docs/zh-CN/amazon-bedrock#service-tiers) |155| `ANTHROPIC_BEDROCK_SERVICE_TIER` | Amazon Bedrock [服务层](https://docs.aws.amazon.com/bedrock/latest/userguide/service-tiers-inference.html)(`default`、`flex` 或 `priority`)。作为 `X-Amzn-Bedrock-Service-Tier` 标头发送。参见 [Amazon Bedrock](/docs/zh-CN/amazon-bedrock#service-tiers) |

156| `ANTHROPIC_BETAS` | 逗号分隔的其他 `anthropic-beta` 标头值列表,包含在 API 请求中。Claude Code 已发送它需要的测试版标头;在 Claude Code 添加原生支持之前,使用此选项选择加入 [Anthropic API 测试版](https://platform.claude.com/docs/en/api/beta-headers)。与 [`--betas` 标志](/docs/zh-CN/cli-reference#cli-flags) 不同,后者需要 API 密钥身份验证,此变量适用于所有身份验证方法,包括 Claude.ai 订阅 |156| `ANTHROPIC_BETAS` | 逗号分隔的附加 `anthropic-beta` 标头值列表,包含在 API 请求中。Claude Code 已发送其需要的测试版标头;在 Claude Code 添加原生支持之前,使用此选项加入 [Anthropic API 测试版](https://platform.claude.com/docs/en/api/beta-headers)。与 [`--betas` 标志](/docs/zh-CN/cli-reference#cli-flags) 不同,后者需要 API 密钥身份验证,此变量适用于所有身份验证方法,包括 Claude.ai 订阅 |

157| `ANTHROPIC_CUSTOM_HEADERS` | 要添加到请求的自定义标头(`Name: Value` 格式,多个标头用换行符分隔)。如果名称或值包含 HTTP 标头无法携带的字符(如弯引号或零宽空格),请求将失败并显示按位置标识该对的错误。需要 Claude Code v2.1.227 或更高版本。[Invalid request header value](/docs/zh-CN/errors#invalid-request-header-value) 列出了确切的字符集和检查运行的位置。设置凭证、组织或租户、路由或 API 行为标头(如 `Authorization` 或 `Host`)的值计为 [需要批准的设置](/docs/zh-CN/server-managed-settings#environment-variables-and-the-approval-dialog)(当服务器管理的设置传递它时)。从项目或本地设置,此类值遵循 [何时应用 `env` 值的规则](/docs/zh-CN/settings-reference#when-claude-code-applies-env-values) |157| `ANTHROPIC_CUSTOM_HEADERS` | 要添加到请求的自定义标头(`Name: Value` 格式,多个标头用换行符分隔)。如果名称或值包含 HTTP 标头无法携带的字符(如弯引号或零宽空格),请求将失败并显示按位置标识该对的错误。需要 Claude Code v2.1.227 或更高版本。[无效的请求标头值](/docs/zh-CN/errors#invalid-request-header-value) 列出了确切的字符集和检查运行的位置。设置凭证、组织或租户、路由或 API 行为标头(如 `Authorization` 或 `Host`)的值在服务器管理的设置传递时计为 [需要批准的设置](/docs/zh-CN/server-managed-settings#environment-variables-and-the-approval-dialog)。从项目或本地设置,此类值遵循 [何时应用 `env` 值的规则](/docs/zh-CN/settings-reference#when-claude-code-applies-env-values) |

158| `ANTHROPIC_CUSTOM_MODEL_OPTION` | 模型 ID,作为自定义条目添加到 `/model` 选择器中。使用此选项可以选择非标准或网关特定的模型,而无需替换内置别名。请参阅 [模型配置](/docs/zh-CN/model-config#add-a-custom-model-option) |158| `ANTHROPIC_CUSTOM_MODEL_OPTION` | 模型 ID,作为自定义条目添加到 `/model` 选择器中。使用此选项可以使非标准或网关特定的模型可选,而无需替换内置别名。参见 [模型配置](/docs/zh-CN/model-config#add-a-custom-model-option) |

159| `ANTHROPIC_CUSTOM_MODEL_OPTION_DESCRIPTION` | `/model` 选择器中自定义模型条目的显示描述。未设置时默认为 `Custom model (<model-id>)` |159| `ANTHROPIC_CUSTOM_MODEL_OPTION_DESCRIPTION` | `/model` 选择器中自定义模型条目的显示描述。未设置时默认为 `Custom model (<model-id>)` |

160| `ANTHROPIC_CUSTOM_MODEL_OPTION_NAME` | `/model` 选择器中自定义模型条目的显示名称。未设置时,如果 Claude Code [识别 ID](/docs/zh-CN/model-config#customize-pinned-model-display-and-capabilities),条目显示模型的名称,否则显示模型 ID |160| `ANTHROPIC_CUSTOM_MODEL_OPTION_NAME` | `/model` 选择器中自定义模型条目的显示名称。未设置时,如果 Claude Code [识别 ID](/docs/zh-CN/model-config#customize-pinned-model-display-and-capabilities),条目显示模型的名称,否则显示模型 ID |

161| `ANTHROPIC_CUSTOM_MODEL_OPTION_SUPPORTED_CAPABILITIES` | 逗号分隔的自定义模型支持的 [功能](/docs/zh-CN/model-config#customize-pinned-model-display-and-capabilities) 列表,例如 `effort,thinking`。请参阅 [模型配置](/docs/zh-CN/model-config#customize-pinned-model-display-and-capabilities) |161| `ANTHROPIC_CUSTOM_MODEL_OPTION_SUPPORTED_CAPABILITIES` | 逗号分隔的 [功能](/docs/zh-CN/model-config#customize-pinned-model-display-and-capabilities) 列表,自定义模型支持,例如 `effort,thinking`。参见 [模型配置](/docs/zh-CN/model-config#customize-pinned-model-display-and-capabilities) |

162| `ANTHROPIC_DEFAULT_FABLE_MODEL` | `fable` 别名解析为的模型 ID,以及 Claude Code 识别为 Fable 模型的 ID,用于第三方提供商上的 [自动模型回退](/docs/zh-CN/model-config#automatic-model-fallback)。请参阅 [模型配置](/docs/zh-CN/model-config#environment-variables) |162| `ANTHROPIC_DEFAULT_FABLE_MODEL` | `fable` 别名解析为的模型 ID,以及 Claude Code 识别为 Fable 模型的 ID,用于第三方提供商上的 [自动模型回退](/docs/zh-CN/model-config#automatic-model-fallback)。参见 [模型配置](/docs/zh-CN/model-config#environment-variables) |

163| `ANTHROPIC_DEFAULT_FABLE_MODEL_DESCRIPTION` | `/model` 选择器中固定 Fable 模型的显示描述。未设置时,行显示以 `Custom Fable model` 开头的默认描述。请参阅 [模型配置](/docs/zh-CN/model-config#customize-pinned-model-display-and-capabilities) |163| `ANTHROPIC_DEFAULT_FABLE_MODEL_DESCRIPTION` | `/model` 选择器中固定 Fable 模型的显示描述。未设置时,行显示以 `Custom Fable model` 开头的默认描述。参见 [模型配置](/docs/zh-CN/model-config#customize-pinned-model-display-and-capabilities) |

164| `ANTHROPIC_DEFAULT_FABLE_MODEL_NAME` | `/model` 选择器中固定 Fable 模型的显示名称。未设置时,如果 Claude Code 识别固定 ID,行显示模型的名称,否则显示固定 ID。请参阅 [模型配置](/docs/zh-CN/model-config#customize-pinned-model-display-and-capabilities) |164| `ANTHROPIC_DEFAULT_FABLE_MODEL_NAME` | `/model` 选择器中固定 Fable 模型的显示名称。未设置时,如果 Claude Code 识别固定 ID,行显示模型的名称,否则显示固定 ID。参见 [模型配置](/docs/zh-CN/model-config#customize-pinned-model-display-and-capabilities) |

165| `ANTHROPIC_DEFAULT_FABLE_MODEL_SUPPORTED_CAPABILITIES` | 逗号分隔的固定 Fable 模型支持的 [功能](/docs/zh-CN/model-config#customize-pinned-model-display-and-capabilities) 列表,例如 `effort,thinking`。请参阅 [模型配置](/docs/zh-CN/model-config#customize-pinned-model-display-and-capabilities) |165| `ANTHROPIC_DEFAULT_FABLE_MODEL_SUPPORTED_CAPABILITIES` | 逗号分隔的 [功能](/docs/zh-CN/model-config#customize-pinned-model-display-and-capabilities) 列表,固定 Fable 模型支持,例如 `effort,thinking`。参见 [模型配置](/docs/zh-CN/model-config#customize-pinned-model-display-and-capabilities) |

166| `ANTHROPIC_DEFAULT_HAIKU_MODEL` | `haiku` 别名解析为的模型 ID,也用于 [后台功能](/docs/zh-CN/costs#background-token-usage)。请参阅 [模型配置](/docs/zh-CN/model-config#environment-variables) |166| `ANTHROPIC_DEFAULT_HAIKU_MODEL` | `haiku` 别名解析为的模型 ID,也用于 [后台功能](/docs/zh-CN/costs#background-token-usage)。参见 [模型配置](/docs/zh-CN/model-config#environment-variables) |

167| `ANTHROPIC_DEFAULT_HAIKU_MODEL_DESCRIPTION` | `/model` 选择器中固定 Haiku 模型的显示描述。未设置时,行显示以 `Custom Haiku model` 开头的默认描述。请参阅 [模型配置](/docs/zh-CN/model-config#customize-pinned-model-display-and-capabilities) |167| `ANTHROPIC_DEFAULT_HAIKU_MODEL_DESCRIPTION` | `/model` 选择器中固定 Haiku 模型的显示描述。未设置时,行显示以 `Custom Haiku model` 开头的默认描述。参见 [模型配置](/docs/zh-CN/model-config#customize-pinned-model-display-and-capabilities) |

168| `ANTHROPIC_DEFAULT_HAIKU_MODEL_NAME` | `/model` 选择器中固定 Haiku 模型的显示名称。未设置时,如果 Claude Code 识别固定 ID,行显示模型的名称,否则显示固定 ID。请参阅 [模型配置](/docs/zh-CN/model-config#customize-pinned-model-display-and-capabilities) |168| `ANTHROPIC_DEFAULT_HAIKU_MODEL_NAME` | `/model` 选择器中固定 Haiku 模型的显示名称。未设置时,如果 Claude Code 识别固定 ID,行显示模型的名称,否则显示固定 ID。参见 [模型配置](/docs/zh-CN/model-config#customize-pinned-model-display-and-capabilities) |

169| `ANTHROPIC_DEFAULT_HAIKU_MODEL_SUPPORTED_CAPABILITIES` | 逗号分隔的固定 Haiku 模型支持的 [功能](/docs/zh-CN/model-config#customize-pinned-model-display-and-capabilities) 列表,例如 `effort,thinking`。请参阅 [模型配置](/docs/zh-CN/model-config#customize-pinned-model-display-and-capabilities) |169| `ANTHROPIC_DEFAULT_HAIKU_MODEL_SUPPORTED_CAPABILITIES` | 逗号分隔的 [功能](/docs/zh-CN/model-config#customize-pinned-model-display-and-capabilities) 列表,固定 Haiku 模型支持,例如 `effort,thinking`。参见 [模型配置](/docs/zh-CN/model-config#customize-pinned-model-display-and-capabilities) |

170| `ANTHROPIC_DEFAULT_MODEL` | 新会话默认启动的模型。需要 Claude Code v2.1.236 或更高版本。请参阅 [为新会话设置默认模型](/docs/zh-CN/model-config#set-a-default-model-for-new-sessions) |170| `ANTHROPIC_DEFAULT_MODEL` | 新会话默认启动的模型。需要 Claude Code v2.1.236 或更高版本。参见 [为新会话设置默认模型](/docs/zh-CN/model-config#set-a-default-model-for-new-sessions) |

171| `ANTHROPIC_DEFAULT_OPUS_MODEL` | `opus` 别名解析为的模型 ID,以及 Plan Mode 活跃时 `opusplan` 使用的模型 ID。请参阅 [模型配置](/docs/zh-CN/model-config#environment-variables) |171| `ANTHROPIC_DEFAULT_OPUS_MODEL` | `opus` 别名解析为的模型 ID,以及 Plan Mode 活跃时 `opusplan` 使用的模型 ID。参见 [模型配置](/docs/zh-CN/model-config#environment-variables) |

172| `ANTHROPIC_DEFAULT_OPUS_MODEL_DESCRIPTION` | `/model` 选择器中固定 Opus 模型的显示描述。未设置时,行显示以 `Custom Opus model` 开头的默认描述。请参阅 [模型配置](/docs/zh-CN/model-config#customize-pinned-model-display-and-capabilities) |172| `ANTHROPIC_DEFAULT_OPUS_MODEL_DESCRIPTION` | `/model` 选择器中固定 Opus 模型的显示描述。未设置时,行显示以 `Custom Opus model` 开头的默认描述。参见 [模型配置](/docs/zh-CN/model-config#customize-pinned-model-display-and-capabilities) |

173| `ANTHROPIC_DEFAULT_OPUS_MODEL_NAME` | `/model` 选择器中固定 Opus 模型的显示名称。未设置时,如果 Claude Code 识别固定 ID,行显示模型的名称,否则显示固定 ID。请参阅 [模型配置](/docs/zh-CN/model-config#customize-pinned-model-display-and-capabilities) |173| `ANTHROPIC_DEFAULT_OPUS_MODEL_NAME` | `/model` 选择器中固定 Opus 模型的显示名称。未设置时,如果 Claude Code 识别固定 ID,行显示模型的名称,否则显示固定 ID。参见 [模型配置](/docs/zh-CN/model-config#customize-pinned-model-display-and-capabilities) |

174| `ANTHROPIC_DEFAULT_OPUS_MODEL_SUPPORTED_CAPABILITIES` | 逗号分隔的固定 Opus 模型支持的 [功能](/docs/zh-CN/model-config#customize-pinned-model-display-and-capabilities) 列表,例如 `effort,thinking`。请参阅 [模型配置](/docs/zh-CN/model-config#customize-pinned-model-display-and-capabilities) |174| `ANTHROPIC_DEFAULT_OPUS_MODEL_SUPPORTED_CAPABILITIES` | 逗号分隔的 [功能](/docs/zh-CN/model-config#customize-pinned-model-display-and-capabilities) 列表,固定 Opus 模型支持,例如 `effort,thinking`。参见 [模型配置](/docs/zh-CN/model-config#customize-pinned-model-display-and-capabilities) |

175| `ANTHROPIC_DEFAULT_SONNET_MODEL` | `sonnet` 别名解析为的模型 ID,以及 Plan Mode 不活跃时 `opusplan` 使用的模型 ID。请参阅 [模型配置](/docs/zh-CN/model-config#environment-variables) |175| `ANTHROPIC_DEFAULT_SONNET_MODEL` | `sonnet` 别名解析为的模型 ID,以及 Plan Mode 不活跃时 `opusplan` 使用的模型 ID。参见 [模型配置](/docs/zh-CN/model-config#environment-variables) |

176| `ANTHROPIC_DEFAULT_SONNET_MODEL_DESCRIPTION` | `/model` 选择器中固定 Sonnet 模型的显示描述。未设置时,行显示以 `Custom Sonnet model` 开头的默认描述。请参阅 [模型配置](/docs/zh-CN/model-config#customize-pinned-model-display-and-capabilities) |176| `ANTHROPIC_DEFAULT_SONNET_MODEL_DESCRIPTION` | `/model` 选择器中固定 Sonnet 模型的显示描述。未设置时,行显示以 `Custom Sonnet model` 开头的默认描述。参见 [模型配置](/docs/zh-CN/model-config#customize-pinned-model-display-and-capabilities) |

177| `ANTHROPIC_DEFAULT_SONNET_MODEL_NAME` | `/model` 选择器中固定 Sonnet 模型的显示名称。未设置时,如果 Claude Code 识别固定 ID,行显示模型的名称,否则显示固定 ID。请参阅 [模型配置](/docs/zh-CN/model-config#customize-pinned-model-display-and-capabilities) |177| `ANTHROPIC_DEFAULT_SONNET_MODEL_NAME` | `/model` 选择器中固定 Sonnet 模型的显示名称。未设置时,如果 Claude Code 识别固定 ID,行显示模型的名称,否则显示固定 ID。参见 [模型配置](/docs/zh-CN/model-config#customize-pinned-model-display-and-capabilities) |

178| `ANTHROPIC_DEFAULT_SONNET_MODEL_SUPPORTED_CAPABILITIES` | 逗号分隔的固定 Sonnet 模型支持的 [功能](/docs/zh-CN/model-config#customize-pinned-model-display-and-capabilities) 列表,例如 `effort,thinking`。请参阅 [模型配置](/docs/zh-CN/model-config#customize-pinned-model-display-and-capabilities) |178| `ANTHROPIC_DEFAULT_SONNET_MODEL_SUPPORTED_CAPABILITIES` | 逗号分隔的 [功能](/docs/zh-CN/model-config#customize-pinned-model-display-and-capabilities) 列表,固定 Sonnet 模型支持,例如 `effort,thinking`。参见 [模型配置](/docs/zh-CN/model-config#customize-pinned-model-display-and-capabilities) |

179| `ANTHROPIC_FEDERATION_RULE_ID` | [Workload Identity Federation](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation) 的联合规则 ID。当您将其与 `ANTHROPIC_ORGANIZATION_ID` 一起设置时,Claude Code 选择联合凭证,其优先级高于您的 `/login` 凭证。请参阅 [身份验证优先级](/docs/zh-CN/authentication#authentication-precedence) |179| `ANTHROPIC_FEDERATION_RULE_ID` | [工作负载身份联合](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation) 的联合规则 ID。当您将其与 `ANTHROPIC_ORGANIZATION_ID` 一起设置时,Claude Code 选择联合凭证,其排名高于您的 `/login` 凭证。参见 [身份验证优先级](/docs/zh-CN/authentication#authentication-precedence) |

180| `ANTHROPIC_FOUNDRY_API_KEY` | Microsoft Foundry 身份验证的 API 密钥(请参阅 [Microsoft Foundry](/docs/zh-CN/microsoft-foundry)) |180| `ANTHROPIC_FOUNDRY_API_KEY` | Microsoft Foundry 身份验证的 API 密钥(参见 [Microsoft Foundry](/docs/zh-CN/microsoft-foundry)) |

181| `ANTHROPIC_FOUNDRY_AUTH_TOKEN` | Microsoft Foundry 身份验证的 Bearer 令牌,例如 Microsoft Entra 访问令牌。Claude Code 将其作为 `Authorization: Bearer` 标头发送。优先于 `ANTHROPIC_FOUNDRY_API_KEY` 和 Azure 默认凭证链。请参阅 [Microsoft Foundry](/docs/zh-CN/microsoft-foundry)。需要 Claude Code v2.1.203 或更高版本 |181| `ANTHROPIC_FOUNDRY_AUTH_TOKEN` | Microsoft Foundry 身份验证的持有者令牌,例如 Microsoft Entra 访问令牌。Claude Code 将其作为 `Authorization: Bearer` 标头发送。优先于 `ANTHROPIC_FOUNDRY_API_KEY` 和 Azure 默认凭证链。参见 [Microsoft Foundry](/docs/zh-CN/microsoft-foundry)。需要 Claude Code v2.1.203 或更高版本 |

182| `ANTHROPIC_FOUNDRY_BASE_URL` | Microsoft Foundry 资源的完整基础 URL(例如,`https://my-resource.services.ai.azure.com/anthropic`)。`ANTHROPIC_FOUNDRY_RESOURCE` 的替代方案(请参阅 [Microsoft Foundry](/docs/zh-CN/microsoft-foundry)) |182| `ANTHROPIC_FOUNDRY_BASE_URL` | Microsoft Foundry 资源的完整基础 URL(例如,`https://my-resource.services.ai.azure.com/anthropic`)。`ANTHROPIC_FOUNDRY_RESOURCE` 的替代方案(参见 [Microsoft Foundry](/docs/zh-CN/microsoft-foundry)) |

183| `ANTHROPIC_FOUNDRY_RESOURCE` | Microsoft Foundry 资源名称(例如,`my-resource`)。如果未设置 `ANTHROPIC_FOUNDRY_BASE_URL`,则为必需(请参阅 [Microsoft Foundry](/docs/zh-CN/microsoft-foundry)) |183| `ANTHROPIC_FOUNDRY_RESOURCE` | Microsoft Foundry 资源名称(例如,`my-resource`)。如果未设置 `ANTHROPIC_FOUNDRY_BASE_URL`,则为必需(参见 [Microsoft Foundry](/docs/zh-CN/microsoft-foundry)) |

184| `ANTHROPIC_MODEL` | 要使用的模型设置的名称(请参阅 [模型配置](/docs/zh-CN/model-config#environment-variables)) |184| `ANTHROPIC_MODEL` | 要使用的模型设置的名称(参见 [模型配置](/docs/zh-CN/model-config#environment-variables)) |

185| `ANTHROPIC_ORGANIZATION_ID` | [Workload Identity Federation](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation) 的组织 ID。将其与 `ANTHROPIC_FEDERATION_RULE_ID` 一起设置。请参阅 [身份验证优先级](/docs/zh-CN/authentication#authentication-precedence) |185| `ANTHROPIC_ORGANIZATION_ID` | [工作负载身份联合](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation) 的组织 ID。与 `ANTHROPIC_FEDERATION_RULE_ID` 一起设置。参见 [身份验证优先级](/docs/zh-CN/authentication#authentication-precedence) |

186| `ANTHROPIC_PROFILE` | 要使用的 Anthropic 配置文件的名称,例如由 [`ant auth login`](https://platform.claude.com/docs/en/cli-sdks-libraries/cli/authentication) 创建的或通过 [在没有 API 密钥的情况下登录到控制台帐户](/docs/zh-CN/authentication#sign-in-without-an-api-key)。请参阅 [身份验证优先级](/docs/zh-CN/authentication#authentication-precedence) |186| `ANTHROPIC_PROFILE` | 要使用的 Anthropic 配置文件的名称,例如由 [`ant auth login`](https://platform.claude.com/docs/en/cli-sdks-libraries/cli/authentication) 创建的或通过 [在没有 API 密钥的情况下登录控制台帐户](/docs/zh-CN/authentication#sign-in-without-an-api-key)。参见 [身份验证优先级](/docs/zh-CN/authentication#authentication-precedence) |

187| `ANTHROPIC_SMALL_FAST_MODEL` | \[已弃用] [Haiku 级模型用于后台任务](/docs/zh-CN/costs) 的名称 |187| `ANTHROPIC_SMALL_FAST_MODEL` | \[已弃用] [后台任务的 Haiku 级模型](/docs/zh-CN/costs) 的名称 |

188| `ANTHROPIC_SMALL_FAST_MODEL_AWS_REGION` | 使用 Amazon Bedrock 或 Amazon Bedrock Mantle 时覆盖 Haiku 级模型的 AWS 区域。在 Amazon Bedrock 上,仅当也设置了 `ANTHROPIC_DEFAULT_HAIKU_MODEL` 或已弃用的 `ANTHROPIC_SMALL_FAST_MODEL` 时,此选项才生效,因为 Amazon Bedrock 否则会在会话区域中的 [默认 Sonnet 模型或主模型](/docs/zh-CN/amazon-bedrock#4-pin-model-versions) 上运行后台任务 |188| `ANTHROPIC_SMALL_FAST_MODEL_AWS_REGION` | 使用 Amazon Bedrock 或 Amazon Bedrock Mantle 时覆盖 Haiku 级模型的 AWS 区域。在 Amazon Bedrock 上,仅当也设置了 `ANTHROPIC_DEFAULT_HAIKU_MODEL` 或已弃用的 `ANTHROPIC_SMALL_FAST_MODEL` 时,此选项才生效,因为 Amazon Bedrock 否则在会话区域的 [默认 Sonnet 模型或主模型](/docs/zh-CN/amazon-bedrock#4-pin-model-versions) 上运行后台任务 |

189| `ANTHROPIC_VERTEX_BASE_URL` | 覆盖 Google Cloud's Agent Platform 端点 URL。用于自定义 Google Cloud's Agent Platform 端点或通过 [LLM 网关](/docs/zh-CN/llm-gateway) 路由时。请参阅 [Google Cloud's Agent Platform](/docs/zh-CN/google-vertex-ai) |189| `ANTHROPIC_VERTEX_BASE_URL` | 覆盖 Google Cloud's Agent Platform 端点 URL。用于自定义 Google Cloud's Agent Platform 端点或通过 [LLM 网关](/docs/zh-CN/llm-gateway) 路由时。参见 [Google Cloud's Agent Platform](/docs/zh-CN/google-vertex-ai) |

190| `ANTHROPIC_VERTEX_PROJECT_ID` | Google Cloud's Agent Platform 请求所针对的 GCP 项目 ID。请参阅 [配置 GCP 凭证](/docs/zh-CN/google-vertex-ai#3-configure-gcp-credentials) |190| `ANTHROPIC_VERTEX_PROJECT_ID` | Google Cloud's Agent Platform 请求所针对的 GCP 项目 ID。参见 [配置 GCP 凭证](/docs/zh-CN/google-vertex-ai#3-configure-gcp-credentials) |

191| `ANTHROPIC_WORKSPACE_ID` | [工作负载身份联合](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation) 的工作区 ID。当您的联合规则的范围涵盖多个工作区时设置此项,以便令牌交换知道要针对哪个工作区 |191| `ANTHROPIC_WORKSPACE_ID` | [工作负载身份联合](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation) 的工作区 ID。当您的联合规则的范围涵盖多个工作区时设置此项,以便令牌交换知道要针对哪个工作区 |

192| `API_FORCE_IDLE_TIMEOUT` | 覆盖 5 分钟的正文空闲超时,当没有字节到达时中止流式模型响应。设置为 `0` 以关闭超时,例如当缓慢的 [网关](/docs/zh-CN/llm-gateway) 或本地模型在块之间暂停超过 5 分钟时,或 `1` 以为每个提供商保持打开。未设置时,超时在除直接 Anthropic API 和 [Claude Platform on AWS](/docs/zh-CN/claude-platform-on-aws) 之外的提供商上处于活跃状态。[流监视程序](/docs/zh-CN/network-config#streaming-idle-watchdogs) 独立运行,即使您在此处设置 `0`,也会中止长时间的无声暂停 |192| `API_FORCE_IDLE_TIMEOUT` | 覆盖 5 分钟的正文空闲超时,当没有字节到达时中止流式模型响应。设置为 `0` 以关闭超时,例如当缓慢的 [网关](/docs/zh-CN/llm-gateway) 或本地模型在块之间暂停超过 5 分钟时,或 `1` 以为每个提供商保持打开。未设置时,超时在除直接 Anthropic API、[Claude Platform on AWS](/docs/zh-CN/claude-platform-on-aws) 和设置了 `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1` 的 Amazon Bedrock 之外的提供商上处于活跃状态。[流监视程序](/docs/zh-CN/network-config#streaming-idle-watchdogs) 独立运行,即使您在此处设置 `0`,也会中止长时间的无声暂停 |

193| `API_TIMEOUT_MS` | API 请求的超时时间(以毫秒为单位)(默认值:600000,或 10 分钟;最大值:2147483647)。在缓慢网络上请求超时或通过代理路由时增加此值。超过最大值的值会导致底层计时器溢出,导致请求立即失败 |193| `API_TIMEOUT_MS` | API 请求的超时时间(毫秒)(默认值:600000,或 10 分钟;最大值:2147483647)。在缓慢网络上请求超时或通过代理路由时增加此值。超过最大值的值会导致底层计时器溢出,导致请求立即失败 |

194| `AWS_BEARER_TOKEN_BEDROCK` | Amazon Bedrock API 密钥用于身份验证(请参阅 [Amazon Bedrock API 密钥](https://aws.amazon.com/blogs/machine-learning/accelerate-ai-development-with-amazon-bedrock-api-keys/)) |194| `AWS_BEARER_TOKEN_BEDROCK` | Amazon Bedrock API 密钥用于身份验证(参见 [Amazon Bedrock API 密钥](https://aws.amazon.com/blogs/machine-learning/accelerate-ai-development-with-amazon-bedrock-api-keys/)) |

195| `BASH_DEFAULT_TIMEOUT_MS` | 长时间运行的 bash 命令的默认超时时间(默认值:120000,或 2 分钟) |195| `BASH_DEFAULT_TIMEOUT_MS` | 前台 Bash 或 PowerShell 工具命令的默认超时时间(毫秒)(默认值:120000,或 2 分钟)。超过 30 分钟的默认值也成为后台命令的默认 [时间限制](/docs/zh-CN/tools-reference#background-commands)。后台时间限制需要 Claude Code v2.1.285 或更高版本 |

196| `BASH_MAX_OUTPUT_LENGTH` | Claude Code 读回到命令结果中的 bash 输出的最大字符数(默认值:30000;最大值:150000)。如果您设置了 [`bashOutputMaxChars`](/docs/zh-CN/settings-reference#bashoutputmaxchars) 设置,Claude Code 会忽略此变量。请参阅 [输出限制](/docs/zh-CN/tools-reference#output-limits) |196| `BASH_MAX_OUTPUT_LENGTH` | Claude Code 读回到命令结果中的 bash 输出的最大字符数(默认值:30000;最大值:150000)。如果您设置了 [`bashOutputMaxChars`](/docs/zh-CN/settings-reference#bashoutputmaxchars) 设置,Claude Code 会忽略此变量。参见 [输出限制](/docs/zh-CN/tools-reference#output-limits) |

197| `BASH_MAX_TIMEOUT_MS` | 模型可以为长时间运行的 bash 命令设置的最大超时时间(默认值:600000,或 10 分钟)。有效的上限是此值和 `BASH_DEFAULT_TIMEOUT_MS` 中的较大者 |197| `BASH_MAX_TIMEOUT_MS` | 模型可以为前台 Bash 或 PowerShell 工具命令设置的最大超时时间(毫秒)(默认值:600000,或 10 分钟)。有效的上限是此值和 `BASH_DEFAULT_TIMEOUT_MS` 中的较大者。超过 2 小时的有效上限也成为后台命令的最大 [时间限制](/docs/zh-CN/tools-reference#background-commands)。后台时间限制需要 Claude Code v2.1.285 或更高版本 |

198| `BETA_TRACING_ENDPOINT` | [详细测试版跟踪](/docs/zh-CN/monitoring-usage#traces-beta) 的 OTLP 端点:使用 `ENABLE_BETA_TRACING_DETAILED=1`,日志和跟踪转到那里而不是配置的导出器。在您的 shell、用户设置或托管设置中设置它。在 [项目和本地设置](/docs/zh-CN/settings-reference#variables-claude-code-ignores-in-env) 中被忽略 |198| `BETA_TRACING_ENDPOINT` | [详细测试版跟踪](/docs/zh-CN/monitoring-usage#traces-beta) 的 OTLP 端点:使用 `ENABLE_BETA_TRACING_DETAILED=1`,日志和跟踪转到那里而不是配置的导出器。在您的 shell、用户设置或托管设置中设置它。在 [项目和本地设置](/docs/zh-CN/settings-reference#variables-claude-code-ignores-in-env) 中被忽略 |

199| `CCR_FORCE_BUNDLE` | 设置为 `1` 以强制 [`claude --cloud`](/docs/zh-CN/claude-code-on-the-web#send-local-repositories-without-github) 捆绑并上传您的本地存储库,而不是从其远程克隆 |199| `CCR_FORCE_BUNDLE` | 设置为 `1` 以强制 [`claude --cloud`](/docs/zh-CN/claude-code-on-the-web#send-local-repositories-without-github) 捆绑并上传您的本地存储库,而不是从其远程克隆 |

200| `CLAUDECODE` | 在 Claude Code 生成的子进程中设置为 `1`(Bash 和 PowerShell 工具、tmux 会话、[hook](/docs/zh-CN/hooks) 命令、[状态行](/docs/zh-CN/statusline) 命令、stdio [MCP 服务器](/docs/zh-CN/mcp) 子进程)。IDE 扩展也在其集成终端中设置此项。用于检测脚本何时在 Claude Code 生成的子进程内运行。要检查当前进程是由工具调用或 hook 直接生成的,而不是在 Claude Code 启动的 stdio MCP 服务器内,请改用 `CLAUDE_CODE_CHILD_SESSION` |200| `CLAUDECODE` | 在 Claude Code 生成的子进程中设置为 `1`(Bash 和 PowerShell 工具、tmux 会话、[hook](/docs/zh-CN/hooks) 命令、[状态行](/docs/zh-CN/statusline) 命令、stdio [MCP 服务器](/docs/zh-CN/mcp) 子进程)。IDE 扩展也在其集成终端中设置此项。用于检测脚本何时在 Claude Code 生成的子进程内运行。要检查当前进程是由工具调用或 hook 直接生成的,而不是在 Claude Code 启动的 stdio MCP 服务器内,请改用 `CLAUDE_CODE_CHILD_SESSION` |

201| `CLAUDE_AFK_COUNTDOWN_MS` | 自动继续前屏幕倒计时在未回答的 [`AskUserQuestion`](/docs/zh-CN/tools-reference) 对话框上出现的毫秒数。默认 `20000`(20 秒),上限为自动继续超时。除非自动继续打开,否则无效;请参阅 [`askUserQuestionTimeout`](/docs/zh-CN/settings-reference#askuserquestiontimeout) 设置和 `CLAUDE_AFK_TIMEOUT_MS`。需要 Claude Code v2.1.198 或更高版本 |201| `CLAUDE_AFK_COUNTDOWN_MS` | 在自动继续之前,屏幕上的倒计时出现在未回答的 [`AskUserQuestion`](/docs/zh-CN/tools-reference) 对话框上的毫秒数。默认 `20000`(20 秒),上限为自动继续超时。除非自动继续打开,否则无效;参见 [`askUserQuestionTimeout`](/docs/zh-CN/settings-reference#askuserquestiontimeout) 设置和 `CLAUDE_AFK_TIMEOUT_MS`。需要 Claude Code v2.1.198 或更高版本 |

202| `CLAUDE_AFK_TIMEOUT_MS` | 未回答的 [`AskUserQuestion`](/docs/zh-CN/tools-reference) 对话框在没有您的情况下自动继续之前的空闲时间(以毫秒为单位)。自动继续默认关闭;使用 [`askUserQuestionTimeout`](/docs/zh-CN/settings-reference#askuserquestiontimeout) 设置选择加入。此变量是演示和自动化测试的覆盖:设置时,它优先于该设置,即使设置未设置或为 `never`,也会打开自动继续。设置 `0` 不会关闭超时;它会立即关闭对话框。在 v2.1.198 和 v2.1.199 中,自动继续默认打开,超时为 `60000`(60 秒)。需要 Claude Code v2.1.198 或更高版本 |202| `CLAUDE_AFK_TIMEOUT_MS` | 未回答的 [`AskUserQuestion`](/docs/zh-CN/tools-reference) 对话框在没有您的情况下自动继续之前的空闲时间(毫秒)。自动继续默认关闭;使用 [`askUserQuestionTimeout`](/docs/zh-CN/settings-reference#askuserquestiontimeout) 设置选择加入。此变量是演示和自动化测试的覆盖:设置时,它优先于该设置,即使设置未设置或 `never`,也会打开自动继续。设置 `0` 不会关闭超时;它立即关闭对话框。在 v2.1.198 和 v2.1.199 中,自动继续默认打开,超时为 `60000`(60 秒)。需要 Claude Code v2.1.198 或更高版本 |

203| `CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS` | 设置为 `1` 以禁用所有内置 [子代理](/docs/zh-CN/sub-agents) 类型,例如 Explore 和 Plan。仅在非交互模式(`-p` 标志)中应用。对于想要空白板的 SDK 用户很有用。这也会删除 `general-purpose`,即当 Agent 工具调用省略 `subagent_type` 时 Claude Code 运行的子代理。此类调用随后失败,显示 [`subagent_type is required`](/docs/zh-CN/errors#subagent-type-is-required) |203| `CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS` | 设置为 `1` 以禁用所有内置 [子代理](/docs/zh-CN/sub-agents) 类型,例如 Explore 和 Plan。仅适用于非交互模式(`-p` 标志)。对于想要空白板的 SDK 用户很有用。这也会删除 `general-purpose`,即当 Agent 工具调用省略 `subagent_type` 时 Claude Code 运行的子代理。此类调用随后失败,显示 [`subagent_type is required`](/docs/zh-CN/errors#subagent-type-is-required) |

204| `CLAUDE_AGENT_SDK_MCP_NO_PREFIX` | 设置为 `1` 以跳过 SDK 创建的 MCP 服务器中工具名称上的 `mcp__<server>__` 前缀。工具使用其原始名称。仅限 SDK 使用 |204| `CLAUDE_AGENT_SDK_MCP_NO_PREFIX` | 设置为 `1` 以跳过 SDK 创建的 MCP 服务器中工具名称上的 `mcp__<server>__` 前缀。工具使用其原始名称。仅限 SDK 使用 |

205| `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS` | 子代理的停滞超时时间(以毫秒为单位)。默认 `600000`(10 分钟);如果您在流监视程序打开时提高 `CLAUDE_STREAM_IDLE_TIMEOUT_MS`,默认值会随之上升,如 [处理缓慢或停滞的 API 响应](/docs/zh-CN/agent-sdk/typescript#handle-slow-or-stalled-api-responses) 所述。计时器在每个流式进度事件上重置;如果在窗口内没有进度到达,Claude Code 会中止子代理并向父代理报告停滞 |205| `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS` | 子代理的停滞超时(毫秒)。默认 `600000`(10 分钟);如果您在流监视程序打开时提高 `CLAUDE_STREAM_IDLE_TIMEOUT_MS`,默认值会随之上升,如 [处理缓慢或停滞的 API 响应](/docs/zh-CN/agent-sdk/typescript#handle-slow-or-stalled-api-responses) 所述。计时器在每个流式进度事件上重置;如果窗口内没有进度到达,Claude Code 会中止子代理并向父级报告停滞 |

206| `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE` | 设置自动压缩窗口的百分比(1-100),在该百分比处自动压缩触发。使用较低的值(如 `50`)以更早压缩;该变量无法提高阈值,因此高于默认百分比的值会被忽略。它仅适用于在模型的上下文限制之前 [压缩的会话](/docs/zh-CN/model-config#context-window-and-auto-compaction)。适用于主对话和子代理 |206| `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE` | 设置自动压缩窗口的百分比(1-100),自动压缩在该百分比处触发。使用较低的值(如 `50`)以更早压缩;变量无法提高阈值,因此高于默认百分比的值被忽略。它仅适用于在模型的上下文限制之前 [压缩](/docs/zh-CN/model-config#context-window-and-auto-compaction) 的会话。适用于主对话和子代理 |

207| `CLAUDE_AUTO_BACKGROUND_TASKS` | 设置为 `1` 以强制启用长时间运行的代理任务的自动后台处理。启用后,子代理在运行约两分钟后移到后台。在 Claude Code v2.1.212 或更高版本的非交互模式中,也启用 [长 MCP 工具调用的自动后台处理](/docs/zh-CN/mcp#automatic-backgrounding-of-long-tool-calls) |207| `CLAUDE_AUTO_BACKGROUND_TASKS` | 设置为 `1` 以强制启用长时间运行的代理任务的自动后台处理。启用后,子代理在运行约两分钟后移至后台。在 Claude Code v2.1.212 或更高版本上,也启用 [长 MCP 工具调用的自动后台处理](/docs/zh-CN/mcp#automatic-backgrounding-of-long-tool-calls)(非交互模式) |

208| `CLAUDE_AX_PREPARK_MS` | 在 [屏幕阅读器模式](/docs/zh-CN/accessibility#what-your-screen-reader-hears) 中,Claude Code 在光标位于行首时等待的毫秒数,然后写入新行或更改的行。默认 `50`。设置 `0` 以立即写入。Claude Code 将等待上限设置为 `5000`。需要 Claude Code v2.1.233 或更高版本 |208| `CLAUDE_AX_PREPARK_MS` | 在 [屏幕阅读器模式](/docs/zh-CN/accessibility#what-your-screen-reader-hears) 中,Claude Code 在光标位于行首时等待的毫秒数,然后写入新行或更改的行。默认 `50`。设置 `0` 以立即写入。Claude Code 将等待上限设置为 `5000`。需要 Claude Code v2.1.233 或更高版本 |

209| `CLAUDE_AX_SCREEN_READER` | 设置为 `1` 以呈现屏幕阅读器友好的输出:没有装饰性边框或动画的平面文本。设置为 `0` 以强制关闭屏幕阅读器模式,即使 [`axScreenReader`](/docs/zh-CN/settings-reference#axscreenreader) 为 `true`。[`--ax-screen-reader`](/docs/zh-CN/cli-reference#cli-flags) 标志优先。需要 Claude Code v2.1.181 或更高版本 |209| `CLAUDE_AX_SCREEN_READER` | 设置为 `1` 以呈现屏幕阅读器友好的输出:没有装饰性边框或动画的平面文本。设置为 `0` 以强制关闭屏幕阅读器模式,即使 [`axScreenReader`](/docs/zh-CN/settings-reference#axscreenreader) 为 `true`。[`--ax-screen-reader`](/docs/zh-CN/cli-reference#cli-flags) 标志优先。需要 Claude Code v2.1.181 或更高版本 |

210| `CLAUDE_AX_STARTUP_QUIET_MS` | 在 [屏幕阅读器模式](/docs/zh-CN/accessibility) 中,Claude Code 在启动确认行后保持第一个界面呈现的毫秒数,以便您的屏幕阅读器可以在新输出中断之前完整地说出该行。默认 `3000`。设置 `0` 以立即呈现。Claude Code 将保持上限设置为 `600000`(10 分钟)。您的第一次按键会提前结束保持。需要 Claude Code v2.1.217 或更高版本 |210| `CLAUDE_AX_STARTUP_QUIET_MS` | 在 [屏幕阅读器模式](/docs/zh-CN/accessibility) 中,Claude Code 在启动确认行之后保持第一个界面呈现的毫秒数,以便您的屏幕阅读器可以在新输出中断之前完整地说出该行。默认 `3000`。设置 `0` 以立即呈现。Claude Code 将保持上限设置为 `600000`(10 分钟)。您的第一次按键会提前结束保持。需要 Claude Code v2.1.217 或更高版本 |

211| `CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR` | 在主会话中每个 Bash 或 PowerShell 命令后返回到原始工作目录 |211| `CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR` | 在主会话中每个 Bash 或 PowerShell 命令后返回到原始工作目录 |

212| `CLAUDE_BYTE_STREAM_IDLE_TIMEOUT_MS` | 字节级流式空闲监视程序的超时时间(以毫秒为单位);设置时,它优先于 `CLAUDE_STREAM_IDLE_TIMEOUT_MS` 用于该监视程序,并保持事件级监视程序不变。Claude Code 将此变量限制在 10 秒到 30 分钟之间。需要 Claude Code v2.1.210 或更高版本 |212| `CLAUDE_BYTE_STREAM_IDLE_TIMEOUT_MS` | 字节级流式空闲监视程序的超时时间(毫秒);设置时,它优先于 `CLAUDE_STREAM_IDLE_TIMEOUT_MS` 用于该监视程序,并保持事件级监视程序不变。Claude Code 将此变量限制在 10 秒到 30 分钟之间。需要 Claude Code v2.1.210 或更高版本 |

213| `CLAUDE_CLIENT_PRESENCE_FILE` | 外部工具(如屏幕锁定侦听器)在您解锁屏幕时创建并在您锁定屏幕时删除的文件路径。文件存在时,Claude Code 跳过 [Remote Control 移动推送通知](/docs/zh-CN/remote-control#mobile-push-notifications),因此当您主动使用计算机时,您停止接收推送。文件不存在或不可读时,通知照常发送。Claude Code 每个推送触发事件检查一次文件,而不是轮询它。需要 Claude Code v2.1.181 或更高版本 |213| `CLAUDE_CLIENT_PRESENCE_FILE` | 外部工具(如屏幕锁定侦听器)在您解锁屏幕时创建并在您锁定屏幕时删除的文件路径。文件存在时,Claude Code 跳过 [Remote Control 移动推送通知](/docs/zh-CN/remote-control#mobile-push-notifications),因此当您主动使用计算机时,您停止接收推送。文件不存在或不可读时,通知照常发送。Claude Code 每次推送触发事件检查一次文件,而不是轮询它。需要 Claude Code v2.1.181 或更高版本 |

214| `CLAUDE_CODE_ACCESSIBILITY` | 设置为 `1` 以保持本机终端光标可见并禁用反向文本光标指示器。允许 macOS Zoom 等屏幕放大镜跟踪光标位置 |214| `CLAUDE_CODE_ACCESSIBILITY` | 设置为 `1` 以保持本机终端光标可见并禁用反向文本光标指示器。允许 macOS Zoom 等屏幕放大镜跟踪光标位置 |

215| `CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD` | 设置为 `1` 以从使用 `--add-dir` 指定的目录加载内存文件。加载 `CLAUDE.md`、`.claude/CLAUDE.md`、`.claude/rules/*.md` 和 `CLAUDE.local.md`。默认情况下,其他目录不加载内存文件 |215| `CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD` | 设置为 `1` 以从使用 `--add-dir` 指定的目录加载内存文件。加载 `CLAUDE.md`、`.claude/CLAUDE.md`、`.claude/rules/*.md` 和 `CLAUDE.local.md`。默认情况下,其他目录不加载内存文件 |

216| `CLAUDE_CODE_ALT_SCREEN_FULL_REPAINT` | 设置为 `1` 以在 [全屏呈现](/docs/zh-CN/fullscreen) 中的每一帧上重新绘制整个屏幕,而不是发送增量更新。如果全屏模式显示陈旧或错位的文本片段,请使用此选项。Claude Code 在 Windows 上的后台会话和 [代理视图](/docs/zh-CN/agent-view) 上自动启用此选项 |216| `CLAUDE_CODE_ALT_SCREEN_FULL_REPAINT` | 设置为 `1` 以在 [全屏呈现](/docs/zh-CN/fullscreen) 中的每一帧上重新绘制整个屏幕,而不是发送增量更新。如果全屏模式显示陈旧或错位的文本片段,请使用此选项。Claude Code 在后台会话和 Windows 上的 [代理视图](/docs/zh-CN/agent-view) 上自动启用此功能 |

217| `CLAUDE_CODE_ALWAYS_ENABLE_EFFORT` | 设置为 `1` 以为每个请求发送 [effort](/docs/zh-CN/model-config#adjust-effort-level) 参数,即使 Claude Code 不将模型 ID 识别为支持 effort 的。在通过 [LLM 网关](/docs/zh-CN/llm-gateway) 或第三方提供商以自定义标识符提供模型时使用。在 API 处拒绝 effort 参数的模型(包括 Claude 3 模型、Sonnet 4.0 和 4.5、Opus 4.0 和 4.1 以及 Haiku 4.5)仍被排除,因此请求不会失败 |217| `CLAUDE_CODE_ALWAYS_ENABLE_EFFORT` | 设置为 `1` 以在每个请求中发送 [effort](/docs/zh-CN/model-config#adjust-effort-level) 参数,即使 Claude Code 不将模型 ID 识别为支持 effort。在通过 [LLM 网关](/docs/zh-CN/llm-gateway) 或第三方提供商以自定义标识符提供模型时使用此选项。在 API 处拒绝 effort 参数的模型(包括 Claude 3 模型、Sonnet 4.0 和 4.5、Opus 4.0 和 4.1 以及 Haiku 4.5)仍被排除,因此请求不会失败 |

218| `CLAUDE_CODE_API_KEY_HELPER_TTL_MS` | 应刷新凭证的间隔(以毫秒为单位)(使用 [`apiKeyHelper`](/docs/zh-CN/settings-reference#apikeyhelper) 时) |218| `CLAUDE_CODE_API_KEY_HELPER_TTL_MS` | 应刷新凭证的间隔(毫秒)(使用 [`apiKeyHelper`](/docs/zh-CN/settings-reference#apikeyhelper) 时) |

219| `CLAUDE_CODE_ARTIFACT_AUTO_OPEN` | 设置为 `0` 以停止 Claude Code 在发布新 [artifact](/docs/zh-CN/artifacts#create-an-artifact) 时自动打开浏览器 |219| `CLAUDE_CODE_ARTIFACT_AUTO_OPEN` | 设置为 `0` 以停止 Claude Code 在发布新 [artifact](/docs/zh-CN/artifacts#create-an-artifact) 时自动打开浏览器 |

220| `CLAUDE_CODE_ARTIFACT_COMMENTS` | 设置为 `0` 以停止 Claude 读取和回复 [artifact 上的评论](/docs/zh-CN/artifacts#collect-comments-on-an-artifact)。当 `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` [关闭 artifact](/docs/zh-CN/artifacts#availability) 时无效。需要 Claude Code v2.1.221 或更高版本 |220| `CLAUDE_CODE_ARTIFACT_COMMENTS` | 设置为 `0` 以停止 Claude 读取和回复 [artifact 上的评论](/docs/zh-CN/artifacts#collect-comments-on-an-artifact)。当 `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` [关闭 artifact](/docs/zh-CN/artifacts#availability) 时无效。需要 Claude Code v2.1.221 或更高版本 |

221| `CLAUDE_CODE_ARTIFACT_COMMENTS_AUTOREACT` | 设置为 `0` 以停止 Claude [自动回复发送给它的评论](/docs/zh-CN/artifacts#let-claude-reply-to-comments-on-its-own)。需要 Claude Code v2.1.228 或更高版本 |221| `CLAUDE_CODE_ARTIFACT_COMMENTS_AUTOREACT` | 设置为 `0` 以停止 Claude [自动回复发送给它的评论](/docs/zh-CN/artifacts#let-claude-reply-to-comments-on-its-own)。需要 Claude Code v2.1.228 或更高版本 |

222| `CLAUDE_CODE_ATTRIBUTION_HEADER` | 设置为 `0` 以从系统提示的开头省略 [归属块](/docs/zh-CN/llm-gateway-protocol#system-prompt-attribution-block),该块携带客户端版本和提示指纹。直接连接到 Anthropic API 的缓存无论如何都不受影响。在某些直接连接设置中,Claude Code 在 [自动模式](/docs/zh-CN/permission-modes#eliminate-prompts-with-auto-mode) 分类器请求上保持块,即使您设置 `0`。在 [系统提示归属块](/docs/zh-CN/llm-gateway-protocol#system-prompt-attribution-block) 中,检查此覆盖的连接和凭证。在 v2.1.181 之前,该块在自定义基础 URL 和 Microsoft Foundry 连接上包含每个请求的令牌,因此在这些版本上,当您的 LLM 网关在请求正文上缓存或将请求转发给第三方提供商时,或当您直接连接到 Microsoft Foundry 时,将其设置为 `0` |222| `CLAUDE_CODE_ATTRIBUTION_HEADER` | 设置为 `0` 以从系统提示的开头省略 [归属块](/docs/zh-CN/llm-gateway-protocol#system-prompt-attribution-block),该块携带客户端版本和提示指纹。直接连接到 Anthropic API 的缓存无论如何都不受影响。在某些直接连接设置中,Claude Code 即使您设置 `0`,也会在 [自动模式](/docs/zh-CN/permission-modes#eliminate-prompts-with-auto-mode) 分类器请求上保持该块。在 [系统提示归属块](/docs/zh-CN/llm-gateway-protocol#system-prompt-attribution-block) 中,检查此覆盖的连接和凭证。在 v2.1.181 之前,该块在自定义基础 URL 和 Microsoft Foundry 连接上包含每个请求令牌,因此在这些版本上,当您的 LLM 网关在请求正文上缓存或将请求转发给第三方提供商,或当您直接连接到 Microsoft Foundry 时,将其设置为 `0` |

223| `CLAUDE_CODE_AUTO_BACKGROUND_WORKER_CHECKIN_SECONDS` | 启用 `CLAUDE_AUTO_BACKGROUND_TASKS` 时,Claude 检查仍在运行的 [后台子代理](/docs/zh-CN/sub-agents#run-subagents-in-foreground-or-background) 的提醒之间的秒数。仅接受 `1` 到 `86400` 的纯整数;任何其他值或拼写读作未设置。未设置时,没有检查提醒。需要 Claude Code v2.1.248 或更高版本 |223| `CLAUDE_CODE_AUTO_BACKGROUND_WORKER_CHECKIN_SECONDS` | 启用 `CLAUDE_AUTO_BACKGROUND_TASKS` 时,提醒 Claude 检查仍在运行的 [后台子代理](/docs/zh-CN/sub-agents#run-subagents-in-foreground-or-background) 之间的秒数。仅接受 `1` 到 `86400` 的纯整数;任何其他值或拼写读作未设置。未设置时,没有检查提醒。需要 Claude Code v2.1.248 或更高版本 |

224| `CLAUDE_CODE_AUTO_COMPACT_WINDOW` | 设置 [自动压缩窗口](/docs/zh-CN/model-config#set-the-auto-compact-window)(以令牌为单位),从 `100000` 到 `1000000`。仅接受纯整数(如 `500000`):像 `500k` 这样的值读作 `500` 并限制到 100K 最小值。有效窗口也上限为模型的上下文窗口。优先于 `/autocompact` 命令、`--autocompact` 标志和 `autoCompactWindow` 设置。状态行的 `used_percentage` 始终针对模型的完整上下文窗口进行测量,因此一旦设置此变量,该百分比不再指示何时压缩将运行 |224| `CLAUDE_CODE_AUTO_COMPACT_WINDOW` | 设置 [自动压缩窗口](/docs/zh-CN/model-config#set-the-auto-compact-window)(令牌),从 `100000` 到 `1000000`。仅接受纯整数(如 `500000`):像 `500k` 这样的值读作 `500` 并限制在 100K 最小值。有效窗口也上限为模型的上下文窗口。优先于 `/autocompact` 命令、`--autocompact` 标志和 `autoCompactWindow` 设置。状态行的 `used_percentage` 始终针对模型的完整上下文窗口进行测量,因此一旦设置此变量,该百分比不再指示何时压缩将运行 |

225| `CLAUDE_CODE_AUTO_CONNECT_IDE` | 覆盖自动 [IDE 连接](/docs/zh-CN/vs-code)。默认情况下,在支持的 IDE 的集成终端内启动时,Claude Code 会自动连接。设置为 `false` 以防止这种情况。设置为 `true` 以在自动检测失败时强制连接尝试,例如当 tmux 隐藏父终端时。优先于 [`autoConnectIde`](/docs/zh-CN/settings-reference#autoconnectide) 全局配置设置 |225| `CLAUDE_CODE_AUTO_CONNECT_IDE` | 覆盖自动 [IDE 连接](/docs/zh-CN/vs-code)。默认情况下,在支持的 IDE 的集成终端内启动时,Claude Code 会自动连接。设置为 `false` 以防止这种情况。设置为 `true` 以在自动检测失败时强制连接尝试,例如当 tmux 隐藏父终端时。优先于 [`autoConnectIde`](/docs/zh-CN/settings-reference#autoconnectide) 全局配置设置 |

226| `CLAUDE_CODE_AUTO_MODE_SERVER` | 控制 Claude Code 是否要求服务器 [审查自动模式操作](/docs/zh-CN/permission-modes#server-side-classifier-review)。设置为 `0` 以改用 Claude Code 自己的分类器请求。在直接连接到 Anthropic API 时,需要 v2.1.281 或更高版本。链接的部分列出当变量未设置时哪些会话要求服务器,以及从哪个版本开始。需要 Claude Code v2.1.271 或更高版本 |226| `CLAUDE_CODE_AUTO_MODE_SERVER` | 控制 Claude Code 是否要求服务器 [审查自动模式操作](/docs/zh-CN/permission-modes#server-side-classifier-review)。设置为 `0` 以改用 Claude Code 自己的分类器请求。在直接连接到 Anthropic API 时,需要 v2.1.281 或更高版本。链接的部分列出了当变量未设置时哪些会话要求服务器,以及从哪个版本开始。需要 Claude Code v2.1.271 或更高版本 |

227| `CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS` | Claude Code 等待 AWS 默认凭证提供商链生成凭证的时间(以毫秒为单位),然后请求失败,显示 [`AWS default-chain credential resolve timed out`](/docs/zh-CN/errors#aws-default-chain-credential-resolve-timed-out)(默认值:`60000`)。当链中的步骤合理需要更长时间时提高它,例如通过 `aws-vault` 等包装器进行基于浏览器的 SSO 登录和 MFA。适用于 Claude Code 使用默认链签名的任何地方:[Amazon Bedrock](/docs/zh-CN/amazon-bedrock#credential-caching-and-resolution-timeout)、[Claude Platform on AWS](/docs/zh-CN/claude-platform-on-aws) 和 [Mantle 端点](/docs/zh-CN/amazon-bedrock#use-the-mantle-endpoint)。需要 Claude Code v2.1.207 或更高版本 |227| `CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS` | Claude Code 等待 AWS 默认凭证提供商链生成凭证的时间(毫秒),然后请求失败,显示 [`AWS default-chain credential resolve timed out`](/docs/zh-CN/errors#aws-default-chain-credential-resolve-timed-out)(默认值:`60000`)。当链中的步骤合理需要更长时间时增加此值,例如通过 `aws-vault` 等包装器进行基于浏览器的 SSO 登录(带 MFA)。适用于 Claude Code 使用默认链签名的任何地方:[Amazon Bedrock](/docs/zh-CN/amazon-bedrock#credential-caching-and-resolution-timeout)、[Claude Platform on AWS](/docs/zh-CN/claude-platform-on-aws) 和 [Mantle 端点](/docs/zh-CN/amazon-bedrock#use-the-mantle-endpoint)。需要 Claude Code v2.1.207 或更高版本 |

228| `CLAUDE_CODE_BASH_EDIT_DIFF` | 设置为 `0` 以关闭 [Bash 命令运行时更改的文件的差异](/docs/zh-CN/hooks#bash),或 `1` 以在每个权限模式中记录它。优先于 [`bashEditDiffEnabled`](/docs/zh-CN/settings-reference#basheditdiffenabled) 设置。需要 Claude Code v2.1.269 或更高版本 |228| `CLAUDE_CODE_BASH_EDIT_DIFF` | 设置为 `0` 以关闭 [Bash 命令运行时更改的文件的差异](/docs/zh-CN/hooks#bash),或 `1` 以在每个权限模式中记录它。优先于 [`bashEditDiffEnabled`](/docs/zh-CN/settings-reference#basheditdiffenabled) 设置。需要 Claude Code v2.1.269 或更高版本 |

229| `CLAUDE_CODE_BG_TASKS_REPORT_RUNNING` | 设置为 `0` 以使非交互式会话在每个转弯结束时向其主机报告空闲状态,即使后台工作仍在运行。默认情况下,会话在后台工作(如后台代理或 [工作流](/docs/zh-CN/workflows) 运行)仍在进行时,继续在转弯结束后报告运行状态。这使得监视状态的主机(如远程会话列表)不会在工作中途宣布 Claude 正在等待您的输入。后台 shell 命令(如开发服务器)不保持运行状态。运行状态默认值和 `0` 选择退出需要 Claude Code v2.1.269 或更高版本;在早期版本上,设置 `1` 以保持运行状态 |229| `CLAUDE_CODE_BG_TASKS_REPORT_RUNNING` | 设置为 `0` 以使非交互式会话在每个转向结束时向其主机报告空闲状态,即使后台工作仍在运行。默认情况下,会话在后台工作(如后台代理或 [工作流](/docs/zh-CN/workflows) 运行)仍在进行时,继续在转向结束后报告运行状态。这可以防止监视状态的主机(如远程会话列表)在工作中途宣布 Claude 正在等待您的输入。后台 shell 命令(如开发服务器)不保持运行状态。运行状态默认值和 `0` 选择退出需要 Claude Code v2.1.269 或更高版本;在早期版本上,设置 `1` 以保持运行状态 |

230| `CLAUDE_CODE_BRIDGE_SESSION_ID` | 在会话有活跃 [Remote Control](/docs/zh-CN/remote-control) 连接时,在 Bash 工具和 [hook 命令](/docs/zh-CN/hooks) 子进程中自动设置,连接结束时删除。值是会话的 ID(`session_` 形式),与会话的 `claude.ai/code` URL 中出现的标识符相同,因此脚本可以链接回运行它的会话。需要 Claude Code v2.1.199 或更高版本。在 [云会话](/docs/zh-CN/claude-code-on-the-web) 中,改为读取 `CLAUDE_CODE_REMOTE_SESSION_ID` |230| `CLAUDE_CODE_BRIDGE_SESSION_ID` | 在会话有活跃 [Remote Control](/docs/zh-CN/remote-control) 连接时在 Bash 工具和 [hook 命令](/docs/zh-CN/hooks) 子进程中自动设置,连接结束时删除。值是会话在 `session_` 形式中的 ID,与会话 `claude.ai/code` URL 中出现的标识符相同,因此脚本可以链接回运行它的会话。需要 Claude Code v2.1.199 或更高版本。在 [云会话](/docs/zh-CN/claude-code-on-the-web) 中,改为读取 `CLAUDE_CODE_REMOTE_SESSION_ID` |

231| `CLAUDE_CODE_BS_AS_CTRL_BACKSPACE` | 设置为 `0` 以使 Claude Code 将 `0x08` 字节(也写作 `^H`)读作纯 Backspace,或 `1` 以读作 Ctrl+Backspace。任一值都替换平台默认值。默认情况下,Claude Code 在 Windows 上将其读作 Ctrl+Backspace,除非 `TERM_PROGRAM` 是 `mintty` 或 `TERM` 是 `cygwin`,在 macOS 和 Linux 上读作纯 Backspace。在 Windows 终端中设置 `0`,其中 [Backspace 删除整个单词](/docs/zh-CN/terminal-config#fix-backspace-deleting-a-whole-word-on-windows) |231| `CLAUDE_CODE_BS_AS_CTRL_BACKSPACE` | 设置为 `0` 以使 Claude Code 将 `0x08` 字节(也写作 `^H`)读作纯 Backspace,或 `1` 以读作 Ctrl+Backspace。任一值都替换平台默认值。默认情况下,Claude Code 在 Windows 上将其读作 Ctrl+Backspace,除非 `TERM_PROGRAM` 是 `mintty` 或 `TERM` 是 `cygwin`,在 macOS 和 Linux 上读作纯 Backspace。在 Windows 终端中设置 `0`,其中 [Backspace 删除整个单词](/docs/zh-CN/terminal-config#fix-backspace-deleting-a-whole-word-on-windows) |

232| `CLAUDE_CODE_CERT_STORE` | TLS 连接的 CA 证书源的逗号分隔列表。`bundled` 是随 Claude Code 一起提供的 Mozilla CA 集。`system` 是操作系统信任存储,仅在具有 `tls.getCACertificates` 的运行时上读取:本机二进制文件或 npm 安装的 Node 22.15 或更高版本。请参阅 [CA 证书存储](/docs/zh-CN/network-config#ca-certificate-store)。默认为 `bundled,system` |232| `CLAUDE_CODE_CERT_STORE` | TLS 连接的 CA 证书源的逗号分隔列表。`bundled` 是随 Claude Code 一起提供的 Mozilla CA 集。`system` 是操作系统信任存储,仅在具有 `tls.getCACertificates` 的运行时上读取:本机二进制文件或 npm 安装的 Node 22.15 或更高版本。参见 [CA 证书存储](/docs/zh-CN/network-config#ca-certificate-store)。默认为 `bundled,system` |

233| `CLAUDE_CODE_CHILD_SESSION` | 在 Claude Code 通过 Bash、PowerShell 和 Monitor 工具、[hook](/docs/zh-CN/hooks) 命令和 [状态行](/docs/zh-CN/statusline) 命令生成的子进程中设置为 `1`。未为 stdio [MCP 服务器](/docs/zh-CN/mcp) 子进程设置,这些子进程是长期存在的,超过生成它们的会话。与 `CLAUDECODE` 不同,这仅在 Claude Code 启动子进程时由 Claude Code 本身设置,而不是由 IDE 扩展设置,因此它可靠地将嵌套会话与在 IDE 集成终端中启动的顶级 `claude` 区分开来。以这种方式启动的嵌套交互式 `claude` TUI 自动从 `--resume`、`--continue`、向上箭头历史和 `claude agents` 列表中排除。非交互式 `claude -p` 会话仍然持续。设置 `CLAUDE_CODE_FORCE_SESSION_PERSISTENCE=1` 以覆盖此排除。需要 Claude Code v2.1.172 或更高版本 |233| `CLAUDE_CODE_CHILD_SESSION` | 在 Claude Code 通过 Bash、PowerShell 和 Monitor 工具、[hook](/docs/zh-CN/hooks) 命令和 [状态行](/docs/zh-CN/statusline) 命令生成的子进程中设置为 `1`。未为 stdio [MCP 服务器](/docs/zh-CN/mcp) 子进程设置,这些子进程是长期存在的,并且超过生成它们的会话。与 `CLAUDECODE` 不同,这仅在 Claude Code 启动子进程时由 Claude Code 本身设置,而不是由 IDE 扩展设置,因此它可靠地将嵌套会话与在 IDE 集成终端中启动的顶级 `claude` 区分开来。以这种方式启动的嵌套交互式 `claude` TUI 自动从 `--resume`、`--continue`、向上箭头历史和 `claude agents` 列表中排除。非交互式 `claude -p` 会话仍然持续。设置 `CLAUDE_CODE_FORCE_SESSION_PERSISTENCE=1` 以覆盖此排除。需要 Claude Code v2.1.172 或更高版本 |

234| `CLAUDE_CODE_CLIENT_CERT` | mTLS 身份验证的客户端证书文件路径 |234| `CLAUDE_CODE_CLIENT_CERT` | mTLS 身份验证的客户端证书文件路径 |

235| `CLAUDE_CODE_CLIENT_KEY` | mTLS 身份验证的客户端私钥文件路径 |235| `CLAUDE_CODE_CLIENT_KEY` | mTLS 身份验证的客户端私钥文件路径 |

236| `CLAUDE_CODE_CLIENT_KEY_PASSPHRASE` | 加密 CLAUDE\_CODE\_CLIENT\_KEY 的密码(可选) |236| `CLAUDE_CODE_CLIENT_KEY_PASSPHRASE` | 加密 CLAUDE\_CODE\_CLIENT\_KEY 的密码(可选) |

237| `CLAUDE_CODE_CONNECT_TIMEOUT_MS` | 在 v2.1.186 中删除,现在是无操作。以前为流式 API 请求的连接、TLS 和响应标头阶段设置单独的超时。使用 `API_TIMEOUT_MS` 获取每个请求的超时。对于流式请求的响应标头阶段,请参阅 `CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS` |237| `CLAUDE_CODE_CONNECT_TIMEOUT_MS` | 在 v2.1.186 中删除,现在是无操作。以前为流式 API 请求的连接、TLS 和响应标头阶段设置单独的超时。使用 `API_TIMEOUT_MS` 获取每个请求的超时。对于流式请求的响应标头阶段,参见 `CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS` |

238| `CLAUDE_CODE_DEBUG_LOGS_DIR` | 覆盖调试日志文件路径。尽管名称如此,这是文件路径,而不是目录。需要通过 `--debug`、`/debug` 或 `DEBUG` 环境变量单独启用调试模式:仅设置此变量不会启用日志记录。[`--debug-file`](/docs/zh-CN/cli-reference#cli-flags) 标志同时执行两者。默认为 `~/.claude/debug/<session-id>.txt` |238| `CLAUDE_CODE_DEBUG_LOGS_DIR` | 覆盖调试日志文件路径。尽管名称如此,这是文件路径,而不是目录。需要通过 `--debug`、`/debug` 或 `DEBUG` 环境变量单独启用调试模式:仅设置此变量不会启用日志记录。[`--debug-file`](/docs/zh-CN/cli-reference#cli-flags) 标志同时执行两者。默认为 `~/.claude/debug/<session-id>.txt` |

239| `CLAUDE_CODE_DEBUG_LOG_LEVEL` | 写入调试日志文件的最小日志级别。值:`verbose`、`debug`(默认)、`info`、`warn`、`error`。设置为 `verbose` 以包含高容量诊断(如完整状态行命令输出),或提高到 `error` 以减少噪音 |239| `CLAUDE_CODE_DEBUG_LOG_LEVEL` | 写入调试日志文件的最小日志级别。值:`verbose`、`debug`(默认)、`info`、`warn`、`error`。设置为 `verbose` 以包含高容量诊断(如完整状态行命令输出),或提高到 `error` 以减少噪音 |

240| `CLAUDE_CODE_DISABLE_1M_CONTEXT` | 设置为 `1` 以禁用 [1M 上下文窗口](/docs/zh-CN/model-config#extended-context) 支持。设置时,1M 模型变体在模型选择器中不可用,Claude Code 将具有本机 1M 窗口的模型上的会话保持在 200K 窗口,例如 [Sonnet 5.5](/docs/zh-CN/model-config#sonnet-5-5-and-sonnet-5-context-window) 和 Fable 模型;请参阅 [扩展上下文](/docs/zh-CN/model-config#extended-context) 了解如何强制执行保持。对于具有合规要求的企业环境很有用。对于其在为无法识别的 `[1m]` 模型 ID 纠正窗口中的作用,请参阅 [为网关或自定义模型 ID 纠正窗口](/docs/zh-CN/model-config#correct-the-window-for-a-gateway-or-custom-model-id) |240| `CLAUDE_CODE_DISABLE_1M_CONTEXT` | 设置为 `1` 以禁用 [1M 上下文窗口](/docs/zh-CN/model-config#extended-context) 支持。设置时,1M 模型变体在模型选择器中不可用,Claude Code 将具有本机 1M 窗口的模型上的会话(如 [Sonnet 5.5](/docs/zh-CN/model-config#sonnet-5-5-and-sonnet-5-context-window) 和 Fable 模型)保持在 200K 窗口;参见 [扩展上下文](/docs/zh-CN/model-config#extended-context) 了解如何强制执行保持。对于具有合规要求的企业环境很有用。对于其在纠正无法识别的 `[1m]` 模型 ID 的窗口中的作用,参见 [纠正网关或自定义模型 ID 的窗口](/docs/zh-CN/model-config#correct-the-window-for-a-gateway-or-custom-model-id) |

241| `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` | 设置为 `1` 以在 Opus 4.6 和 Sonnet 4.6 上禁用 [自适应推理](/docs/zh-CN/model-config#adjust-effort-level),并回退到由 `MAX_THINKING_TOKENS` 控制的固定思考预算。对 [Fable 模型](/docs/zh-CN/model-config#extended-thinking)、Sonnet 5 或 Opus 4.7 及更高版本无效,它们始终使用自适应推理 |241| `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` | 设置为 `1` 以在 Opus 4.6 和 Sonnet 4.6 上禁用 [自适应推理](/docs/zh-CN/model-config#adjust-effort-level),并回退到由 `MAX_THINKING_TOKENS` 控制的固定思考预算。对 [Fable 模型](/docs/zh-CN/model-config#extended-thinking)、Sonnet 5 及更高版本或 Opus 4.7 及更高版本无效,它们始终使用自适应推理 |

242| `CLAUDE_CODE_DISABLE_ADMIN_ENV_UNION` | 设置为 `1` 以停止 Claude Code 在管理员源之间按键合并 [托管设置](/docs/zh-CN/managed-settings#precedence-within-the-managed-tier) `env` 块,因此仅应用最高优先级源的整个 `env` 块,如 v2.1.223 之前的情况。在启动 Claude Code 的环境中设置它,因为 Claude Code 忽略通过设置 `env` 块传递的副本。需要 Claude Code v2.1.223 或更高版本 |242| `CLAUDE_CODE_DISABLE_ADMIN_ENV_UNION` | 设置为 `1` 以停止 Claude Code 在管理员源之间按键合并 [托管设置](/docs/zh-CN/managed-settings#precedence-within-the-managed-tier) `env` 块,因此仅应用最高优先级源的整个 `env` 块,如 v2.1.223 之前的情况。在启动 Claude Code 的环境中设置它,因为 Claude Code 忽略通过设置 `env` 块传递的副本。需要 Claude Code v2.1.223 或更高版本 |

243| `CLAUDE_CODE_DISABLE_ADVISOR_TOOL` | 设置为 `1` 以禁用 [advisor 工具](/docs/zh-CN/advisor)。`/advisor` 命令变为不可用,任何配置的 `advisorModel` 被忽略,`--advisor` 标志被接受但无效,因此传递它的现有脚本继续工作而不出错 |243| `CLAUDE_CODE_DISABLE_ADVISOR_TOOL` | 设置为 `1` 以禁用 [advisor 工具](/docs/zh-CN/advisor)。`/advisor` 命令变为不可用,任何配置的 `advisorModel` 被忽略,`--advisor` 标志被接受但无效,因此传递它的现有脚本继续工作而不出错 |

244| `CLAUDE_CODE_DISABLE_AGENT_VIEW` | 设置为 `1` 以关闭 [后台代理和代理视图](/docs/zh-CN/agent-view):`claude agents`、`--bg`、`/background` 和按需主管。等同于 [`disableAgentView`](/docs/zh-CN/settings-reference#disableagentview) 设置 |244| `CLAUDE_CODE_DISABLE_AGENT_VIEW` | 设置为 `1` 以关闭 [后台代理和代理视图](/docs/zh-CN/agent-view):`claude agents`、`--bg`、`/background` 和按需主管。等同于 [`disableAgentView`](/docs/zh-CN/settings-reference#disableagentview) 设置 |

245| `CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN` | 设置为 `1` 以禁用 [全屏呈现](/docs/zh-CN/fullscreen) 并使用经典主屏幕渲染器。对话保留在您的终端的本机滚动条中,因此 `Cmd+f` 和 tmux 复制模式照常工作。优先于 `CLAUDE_CODE_NO_FLICKER` 和 [`tui`](/docs/zh-CN/settings-reference#tui) 设置。您也可以使用 `/tui default` 切换。不适用于从 [代理视图](/docs/zh-CN/agent-view) 打开的后台会话,它们始终使用全屏呈现 |245| `CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN` | 设置为 `1` 以禁用 [全屏呈现](/docs/zh-CN/fullscreen) 并使用经典主屏幕渲染器。对话保留在您终端的本机滚动条中,因此 `Cmd+f` 和 tmux 复制模式照常工作。优先于 `CLAUDE_CODE_NO_FLICKER` 和 [`tui`](/docs/zh-CN/settings-reference#tui) 设置。您也可以使用 `/tui default` 切换。不适用于从 [代理视图](/docs/zh-CN/agent-view) 打开的后台会话,它们始终使用全屏呈现 |

246| `CLAUDE_CODE_DISABLE_ARTIFACT` | 设置为 `1` 以关闭 [Artifact](/docs/zh-CN/artifacts) 工具,该工具将会话输出发布为 claude.ai 上的私有网页。一旦您设置它,没有设置文件会打开该工具。要改为从设置文件关闭该工具,请将 [`enableArtifact`](/docs/zh-CN/settings-reference#enableartifact) 设置为 `false`;已弃用的 [`disableArtifact`](/docs/zh-CN/settings-reference#disableartifact) 密钥也会关闭它 |246| `CLAUDE_CODE_DISABLE_ARTIFACT` | 设置为 `1` 以关闭 [Artifact](/docs/zh-CN/artifacts) 工具,该工具将会话输出发布为 claude.ai 上的私有网页。设置后,没有设置文件会打开该工具。要改为从设置文件关闭该工具,请将 [`enableArtifact`](/docs/zh-CN/settings-reference#enableartifact) 设置为 `false`;已弃用的 [`disableArtifact`](/docs/zh-CN/settings-reference#disableartifact) 密钥也会关闭它 |

247| `CLAUDE_CODE_DISABLE_ATTACHMENTS` | 设置为 `1` 以禁用附件处理。带有 `@` 语法的文件提及作为纯文本发送,而不是扩展为文件内容 |247| `CLAUDE_CODE_DISABLE_ATTACHMENTS` | 设置为 `1` 以禁用附件处理。带有 `@` 语法的文件提及作为纯文本发送,而不是扩展为文件内容 |

248| `CLAUDE_CODE_DISABLE_AUTO_MEMORY` | 设置为 `1` 以禁用 [自动内存](/docs/zh-CN/memory#auto-memory)。设置为 `0` 以强制打开自动内存,即使 `--bare` 模式或 [`autoMemoryEnabled: false`](/docs/zh-CN/settings-reference#automemoryenabled) 会禁用它。禁用时,Claude 不创建或加载自动内存文件 |248| `CLAUDE_CODE_DISABLE_AUTO_MEMORY` | 设置为 `1` 以禁用 [自动内存](/docs/zh-CN/memory#auto-memory)。设置为 `0` 以强制启用自动内存,即使 `--bare` 模式或 [`autoMemoryEnabled: false`](/docs/zh-CN/settings-reference#automemoryenabled) 会禁用它。禁用时,Claude 不创建或加载自动内存文件 |

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

250| `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_DEFAULT` | 设置为 `1` 以停止 Claude Code 将缺少或空的 `Content-Type` 标头的 [Amazon Bedrock](/docs/zh-CN/amazon-bedrock) 流式响应视为 Amazon Bedrock 的二进制事件流。默认情况下,Claude Code 假设网关从其他未修改的响应中删除了标头,因此它解码正文,流式处理继续工作。仅为也将流重新发出为服务器发送事件的网关设置此选项;Claude Code 随后将无标头正文读作服务器发送事件。需要 Claude Code v2.1.239 或更高版本 |250| `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_DEFAULT` | 设置为 `1` 以停止 Claude Code 将缺少或空的 `Content-Type` 标头的 [Amazon Bedrock](/docs/zh-CN/amazon-bedrock) 流式响应视为 Amazon Bedrock 的二进制事件流。默认情况下,Claude Code 假设网关从其他未修改的响应中删除了标头,因此它解码正文,流式处理继续工作。仅为也将流重新发出为服务器发送事件的网关设置此选项;Claude Code 随后将无标头正文读作服务器发送事件。需要 Claude Code v2.1.239 或更高版本 |

251| `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_GUARD` | 设置为 `1` 以跳过检查 [Amazon Bedrock](/docs/zh-CN/amazon-bedrock) 流式响应是否携带 `application/vnd.amazon.eventstream` 内容类型。没有此变量,当响应携带不同的内容类型时,Claude Code 会因命名该类型的错误而失败请求,这意味着 [网关或代理正在转换响应](/docs/zh-CN/amazon-bedrock#streaming-errors-behind-a-gateway-or-proxy)。配置网关以转发 `Content-Type` 标头和正文未修改,而不是设置此变量。需要 Claude Code v2.1.208 或更高版本 |251| `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_GUARD` | 设置为 `1` 以跳过检查 [Amazon Bedrock](/docs/zh-CN/amazon-bedrock) 流式响应是否携带 `application/vnd.amazon.eventstream` 内容类型。没有此变量,当响应携带不同的内容类型时,Claude Code 会因命名该类型的错误而失败请求,这意味着 [网关或代理正在转换响应](/docs/zh-CN/amazon-bedrock#streaming-errors-behind-a-gateway-or-proxy)。配置网关以转发 `Content-Type` 标头和正文未修改,而不是设置此变量。需要 Claude Code v2.1.208 或更高版本 |

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

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

254| `CLAUDE_CODE_DISABLE_BUNDLED_SKILLS` | 设置为 `1` 以禁用 Claude Code 包含的 [skills](/docs/zh-CN/skills) 和工作流:捆绑的 skills 和工作流被完全删除,而内置命令(如 `/init`)保持可输入但对模型隐藏。`/doctor` 保持可输入,如内置命令;使用 `DISABLE_DOCTOR_COMMAND` 隐藏它。来自插件、`.claude/skills/` 和 `.claude/commands/` 的 Skills 不受影响。等同于 [`disableBundledSkills`](/docs/zh-CN/settings-reference#disablebundledskills) 设置 |254| `CLAUDE_CODE_DISABLE_BUNDLED_SKILLS` | 设置为 `1` 以禁用 Claude Code 包含的 [skills](/docs/zh-CN/skills) 和工作流:捆绑的 skills 和工作流被完全删除,而内置命令(如 `/init`)保持可输入但对模型隐藏。`/doctor` 保持可输入,如内置命令;使用 `DISABLE_DOCTOR_COMMAND` 隐藏它。来自插件、`.claude/skills/` 和 `.claude/commands/` 的 Skills 不受影响。等同于 [`disableBundledSkills`](/docs/zh-CN/settings-reference#disablebundledskills) 设置 |

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

256| `CLAUDE_CODE_DISABLE_CLAUDE_MDS` | 设置为 `1` 以防止将任何 CLAUDE.md 内存文件加载到上下文中,包括用户、项目和自动内存文件 |256| `CLAUDE_CODE_DISABLE_CLAUDE_MDS` | 设置为 `1` 以防止将任何 CLAUDE.md 内存文件加载到上下文中,包括用户、项目和自动内存文件 |

257| `CLAUDE_CODE_DISABLE_CRON` | 设置为 `1` 以禁用 [计划任务](/docs/zh-CN/scheduled-tasks)。`/loop` skill 和 cron 工具变为不可用,任何已计划的任务停止触发,包括已在运行的任务 |257| `CLAUDE_CODE_DISABLE_CRON` | 设置为 `1` 以禁用 [计划任务](/docs/zh-CN/scheduled-tasks)。`/loop` skill 和 cron 工具变为不可用,任何已计划的任务停止触发,包括已在运行的任务 |

258| `CLAUDE_CODE_DISABLE_DANGEROUS_RM_TIMEOUT` | 设置为 `1` 以关闭 [关键路径删除](/docs/zh-CN/permission-modes#critical-paths) 提示上的时间限制。在 `auto` 模式中 Claude Code 随后将这些删除发送到分类器,在 `bypassPermissions` 模式中提示等待您的答案。在启动 Claude Code 的环境中设置它,因为 Claude Code 忽略通过设置 `env` 块传递的副本。需要 Claude Code v2.1.281 或更高版本 |258| `CLAUDE_CODE_DISABLE_DANGEROUS_RM_TIMEOUT` | 设置为 `1` 以关闭 [关键路径删除](/docs/zh-CN/permission-modes#critical-paths) 提示的时间限制。在 `auto` 模式中,Claude Code 随后将这些删除发送给分类器,在 `bypassPermissions` 模式中,提示等待您的答案。在启动 Claude Code 的环境中设置它,因为 Claude Code 忽略通过设置 `env` 块传递的副本。需要 Claude Code v2.1.281 或更高版本 |

259| `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` | 设置为 `1` 以从 API 请求中删除 Anthropic 特定的 `anthropic-beta` 请求标头和测试版工具模式字段(如 `defer_loading` 和 `eager_input_streaming`)。当代理网关拒绝带有错误的请求时使用,例如"Unexpected value(s) for the `anthropic-beta` header"或"Extra inputs are not permitted"。标准字段(`name`、`description`、`input_schema`、`cache_control`)被保留。[MCP 工具搜索](/docs/zh-CN/mcp#scale-with-mcp-tool-search) 被禁用,所有 MCP 工具预先加载,即使您设置 `ENABLE_TOOL_SEARCH`。在 Claude Code v2.1.227 或更高版本上,[托管设置](/docs/zh-CN/managed-settings) 可以保持工具搜索打开。[禁用预发布功能](/docs/zh-CN/llm-gateway-protocol#disable-pre-release-capabilities) 涵盖覆盖应用的位置 |259| `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` | 设置为 `1` 以从 API 请求中删除 Anthropic 特定的 `anthropic-beta` 请求标头和测试版工具模式字段(如 `defer_loading` 和 `eager_input_streaming`)。当代理网关拒绝请求并出现错误(如"Unexpected value(s) for the `anthropic-beta` header"或"Extra inputs are not permitted")时使用此选项。标准字段(`name`、`description`、`input_schema`、`cache_control`)被保留。[MCP 工具搜索](/docs/zh-CN/mcp#scale-with-mcp-tool-search) 被禁用,所有 MCP 工具预先加载,即使您设置 `ENABLE_TOOL_SEARCH`。在 Claude Code v2.1.227 或更高版本上,[托管设置](/docs/zh-CN/managed-settings) 可以保持工具搜索打开。[禁用预发布功能](/docs/zh-CN/llm-gateway-protocol#disable-pre-release-capabilities) 涵盖覆盖应用的位置 |

260| `CLAUDE_CODE_DISABLE_EXPLORE_PLAN_AGENTS` | 设置为 `1` 以禁用内置 [Explore 和 Plan 子代理](/docs/zh-CN/sub-agents#built-in-subagents)。Claude 使用其搜索工具或通用子代理进行探索,[plan mode](/docs/zh-CN/permission-modes#analyze-before-you-edit-with-plan-mode) 直接读取文件而不是启动 Explore 和 Plan 代理。名为 `Explore` 或 `Plan` 的自定义子代理不受影响。要在 Agent SDK 或非交互模式中删除每个内置子代理类型,请改用 `CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS`。需要 Claude Code v2.1.198 或更高版本 |260| `CLAUDE_CODE_DISABLE_EXPLORE_PLAN_AGENTS` | 设置为 `1` 以禁用内置 [Explore 和 Plan 子代理](/docs/zh-CN/sub-agents#built-in-subagents)。Claude 使用其搜索工具或通用子代理进行探索,[plan 模式](/docs/zh-CN/permission-modes#analyze-before-you-edit-with-plan-mode) 直接读取文件而不是启动 Explore 和 Plan 代理。名为 `Explore` 或 `Plan` 的自定义子代理不受影响。要在 Agent SDK 或非交互模式中删除每个内置子代理类型,请改用 `CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS`。需要 Claude Code v2.1.198 或更高版本 |

261| `CLAUDE_CODE_DISABLE_FAST_MODE` | 设置为 `1` 以禁用 [快速模式](/docs/zh-CN/fast-mode) |261| `CLAUDE_CODE_DISABLE_FAST_MODE` | 设置为 `1` 以禁用 [快速模式](/docs/zh-CN/fast-mode) |

262| `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY` | 设置为 `1` 以禁用"Claude 表现如何?"会话质量调查。当设置 `DISABLE_TELEMETRY`、`DO_NOT_TRACK` 或 `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` 时,调查也被禁用,除非 `CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL` 选择重新加入。要改为设置样本率而不是完全禁用,请使用 [`feedbackSurveyRate`](/docs/zh-CN/settings-reference#feedbacksurveyrate) 设置。请参阅 [会话质量调查](/docs/zh-CN/data-usage#session-quality-surveys) |262| `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY` | 设置为 `1` 以禁用"Claude 表现如何?"会话质量调查。当设置 `DISABLE_TELEMETRY`、`DO_NOT_TRACK` 或 `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` 时,调查也被禁用,除非 `CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL` 选择加入。要设置样本率而不是完全禁用,请使用 [`feedbackSurveyRate`](/docs/zh-CN/settings-reference#feedbacksurveyrate) 设置。参见 [会话质量调查](/docs/zh-CN/data-usage#session-quality-surveys) |

263| `CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING` | 设置为 `1` 以禁用文件 [checkpointing](/docs/zh-CN/checkpointing)。`/rewind` 命令将无法恢复代码更改。覆盖 [`fileCheckpointingEnabled`](/docs/zh-CN/settings-reference#filecheckpointingenabled) 设置 |263| `CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING` | 设置为 `1` 以禁用文件 [checkpointing](/docs/zh-CN/checkpointing)。`/rewind` 命令将无法恢复代码更改。覆盖 [`fileCheckpointingEnabled`](/docs/zh-CN/settings-reference#filecheckpointingenabled) 设置 |

264| `CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS` | 设置为 `1` 以从 Claude 的系统提示中删除内置提交和 PR 工作流说明以及 git 状态快照。在使用您自己的 git 工作流 skills 时很有用。当设置时优先于 [`includeGitInstructions`](/docs/zh-CN/settings-reference#includegitinstructions) 设置 |264| `CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS` | 设置为 `1` 以删除内置提交和 PR 工作流说明以及 Claude 上下文中的 git 状态快照。在使用您自己的 git 工作流 skills 时很有用。当设置时优先于 [`includeGitInstructions`](/docs/zh-CN/settings-reference#includegitinstructions) 设置 |

265| `CLAUDE_CODE_DISABLE_LEGACY_MODEL_REMAP` | 设置为 `1` 以防止在 Anthropic API 上自动重新映射 Opus 4.0 和 4.1 到当前 Opus 版本。在您想有意固定较旧模型时使用。重新映射不在 Amazon Bedrock、Google Cloud's Agent Platform 或 Microsoft Foundry 上运行 |265| `CLAUDE_CODE_DISABLE_LEGACY_MODEL_REMAP` | 设置为 `1` 以防止在 Anthropic API 上自动将 Opus 4.0 和 4.1 重新映射到当前 Opus 版本。在您想有意固定较旧模型时使用。重新映射不在 Amazon Bedrock、Google Cloud's Agent Platform 或 Microsoft Foundry 上运行 |

266| `CLAUDE_CODE_DISABLE_MOUSE` | 设置为 `1` 以在 [全屏呈现](/docs/zh-CN/fullscreen) 中禁用鼠标跟踪。使用 `PgUp` 和 `PgDn` 的键盘滚动仍然有效。使用此选项保持您的终端的本机选择复制行为 |266| `CLAUDE_CODE_DISABLE_MOUSE` | 设置为 `1` 以在 [全屏呈现](/docs/zh-CN/fullscreen) 中禁用鼠标跟踪。使用 `PgUp` 和 `PgDn` 的键盘滚动仍然有效。使用此选项保持您终端的本机选择复制行为 |

267| `CLAUDE_CODE_DISABLE_MOUSE_CLICKS` | 设置为 `1` 以在 [全屏呈现](/docs/zh-CN/fullscreen) 中禁用点击、拖动和悬停处理,同时保持鼠标滚轮滚动。当您希望滚轮滚动在 Claude Code 内工作但不希望点击定位光标、展开工具输出或打开链接时使用。当两者都设置时,`CLAUDE_CODE_DISABLE_MOUSE` 优先。需要 Claude Code v2.1.195 或更高版本 |267| `CLAUDE_CODE_DISABLE_MOUSE_CLICKS` | 设置为 `1` 以在 [全屏呈现](/docs/zh-CN/fullscreen) 中禁用点击、拖动和悬停处理,同时保持鼠标滚轮滚动。当您希望滚轮滚动在 Claude Code 内工作但不希望点击定位光标、展开工具输出或打开链接时使用此选项。当两者都设置时,`CLAUDE_CODE_DISABLE_MOUSE` 优先。需要 Claude Code v2.1.195 或更高版本 |

268| `CLAUDE_CODE_DISABLE_MTLS_RELOAD_ON_STALE_CONNECTION` | 设置为 `1` 以停止 Claude Code 在 API 请求因连接级错误(如连接重置或 TLS 握手错误)失败时重新读取 [mTLS 客户端证书和密钥](/docs/zh-CN/network-config#mtls-authentication)。禁用重新加载后,Claude Code 仅在下次应用设置或下次启动时加载轮换的文件。需要 Claude Code v2.1.232 或更高版本 |268| `CLAUDE_CODE_DISABLE_MTLS_RELOAD_ON_STALE_CONNECTION` | 设置为 `1` 以停止 Claude Code 在 API 请求因连接级错误(如连接重置或 TLS 握手错误)失败时重新读取 [mTLS 客户端证书和密钥](/docs/zh-CN/network-config#mtls-authentication)。禁用重新加载后,Claude Code 仅在下次应用设置或下次启动时加载轮换的文件。需要 Claude Code v2.1.232 或更高版本 |

269| `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` | 设置为任何非空值(如 `1`)以禁用非必要网络流量:自动更新、遥测、错误报告、`/feedback` 命令、[Claude 起草的反馈](/docs/zh-CN/tools-reference#sendfeedback-tool-behavior)、发行说明、[PR 和 MR 状态徽章](/docs/zh-CN/interactive-mode#pr-review-status) 检查以及可用性检查(如 [快速模式](/docs/zh-CN/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) 检查)。它还停止 [插件 `command` 源的后台运行](/docs/zh-CN/plugins/loading#when-a-command-source-re-runs),这是本地命令而不是网络流量,因为它们可以触发依赖项安装。**将其设置为 `0` 或 `false` 仍会禁用此流量**,与大多数打开/关闭变量不同;取消设置变量以再次允许它。也禁用功能标志获取,这使 [Remote Control](/docs/zh-CN/remote-control#requirements) 和其他 [需要功能标志获取的功能](#features-that-need-feature-flag-fetching) 不可用。官方插件市场自动安装不涵盖;使用 `CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL` 禁用它。不影响 [网关模型发现](/docs/zh-CN/llm-gateway-connect#add-gateway-models-to-the-model-picker),它有自己的选择加入 |269| `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` | 设置为任何非空值(如 `1`)以禁用非必要网络流量:自动更新、遥测、错误报告、`/feedback` 命令、[Claude 起草的反馈](/docs/zh-CN/tools-reference#sendfeedback-tool-behavior)、发行说明、[PR 和 MR 状态徽章](/docs/zh-CN/interactive-mode#pr-review-status) 检查以及可用性检查(如 [快速模式](/docs/zh-CN/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) 检查)。它也停止 [插件 `command` 源的后台运行](/docs/zh-CN/plugins/loading#when-a-command-source-re-runs),这些是本地命令而不是网络流量,因为它们可以触发依赖项安装。**将其设置为 `0` 或 `false` 仍会禁用此流量**,与大多数打开/关闭变量不同;取消设置变量以再次允许它。也禁用功能标志获取,这使 [Remote Control](/docs/zh-CN/remote-control) 和其他 [需要功能标志获取的功能](#features-that-need-feature-flag-fetching) 不可用。官方插件市场自动安装不被覆盖;使用 `CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL` 禁用它。不影响 [网关模型发现](/docs/zh-CN/llm-gateway-connect#add-gateway-models-to-the-model-picker),它有自己的选择加入 |

270| `CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK` | 设置为 `1` 以禁用流式请求在中途失败时的非流式回退。流式错误传播到重试层。当代理或网关导致回退产生重复工具执行时很有用 |270| `CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK` | 设置为 `1` 以禁用流式请求在中途失败时的非流式回退。流式错误传播到重试层。当代理或网关导致回退产生重复工具执行时很有用 |

271| `CLAUDE_CODE_DISABLE_NOTIFICATION_PRESENCE_CHECK` | 设置为 `1` 以在您在终端中输入或专注时发送 `PushNotification` 工具的桌面通知。默认情况下,当工具检测到最近的键盘活动或终端焦点时,工具会跳过桌面通知和 [移动推送](/docs/zh-CN/remote-control#mobile-push-notifications)。此变量仅禁用该本地检查,因此服务器仍可在检测到您处于活跃状态时抑制移动推送。需要 Claude Code v2.1.193 或更高版本 |271| `CLAUDE_CODE_DISABLE_NOTIFICATION_PRESENCE_CHECK` | 设置为 `1` 以在您在终端中输入或聚焦时发送 `PushNotification` 工具的桌面通知。默认情况下,当工具检测到最近的键盘活动或终端焦点时,工具会跳过桌面通知和 [移动推送](/docs/zh-CN/remote-control#mobile-push-notifications)。此变量仅禁用该本地检查,因此服务器仍可在检测到您处于活跃状态时抑制移动推送。需要 Claude Code v2.1.193 或更高版本 |

272| `CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL` | 设置为 `1` 以禁用官方插件市场的自动注册。Claude Code 在即将注册市场时读取变量,通常在机器的第一次交互启动期间。如果变量在该点设置,Claude Code 永久跳过注册。稍后取消设置变量不会撤销跳过。随时运行 `claude plugin marketplace add anthropics/claude-plugins-official` 以注册市场 |272| `CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL` | 设置为 `1` 以禁用官方插件市场的自动注册。Claude Code 在即将注册市场时读取变量,通常在机器的第一次交互启动期间。如果变量在该点设置,Claude Code 会永久跳过注册。稍后取消设置变量不会撤销跳过。随时运行 `claude plugin marketplace add anthropics/claude-plugins-official` 以注册市场 |

273| `CLAUDE_CODE_DISABLE_PERMISSION_PROMPT_NOTIFY_HOOKS` | 设置为 `1` 以停止 Claude Code 在 Claude Code 将它们发送到 Agent SDK 的 `canUseTool` 回调的会话中运行您的 [`Notification` 未回答权限请求的 hooks](/docs/zh-CN/hooks#notification),这是 Claude Desktop 和 VS Code 扩展如何托管 Claude Code 的方式。在终端会话中无效。需要 Claude Code v2.1.233 或更高版本 |273| `CLAUDE_CODE_DISABLE_PERMISSION_PROMPT_NOTIFY_HOOKS` | 设置为 `1` 以停止 Claude Code 在 Claude Code 将它们发送到 Agent SDK 的 `canUseTool` 回调的会话中运行您的 [`Notification` hooks 用于未回答的权限请求](/docs/zh-CN/hooks#notification),这是 Claude Desktop 和 VS Code 扩展如何托管 Claude Code 的方式。在终端会话中无效。需要 Claude Code v2.1.233 或更高版本 |

274| `CLAUDE_CODE_DISABLE_POLICY_SKILLS` | 设置为 `1` 以跳过从系统范围的托管 skills 目录加载 skills。对于不应加载操作员配置的 skills 的容器或 CI 会话很有用 |274| `CLAUDE_CODE_DISABLE_POLICY_SKILLS` | 设置为 `1` 以跳过从系统范围的托管 skills 目录加载 skills。对于不应加载操作员配置的 skills 的容器或 CI 会话很有用 |

275| `CLAUDE_CODE_DISABLE_POWERSHELL_CMD_RM_DENY` | 设置为 `1` 以关闭 [PowerShell 工具](/docs/zh-CN/tools-reference#powershell-tool) 检查,该检查在 [系统路径](/docs/zh-CN/permission-modes#remove-item-in-powershell)(如驱动器根目录或您的主目录)上拒绝 `cmd` 内置命令 `rd`、`rmdir`、`del` 和 `erase`。Claude Code 在设置文件的 `env` 块中忽略此变量。需要 Claude Code v2.1.283 或更高版本 |275| `CLAUDE_CODE_DISABLE_POWERSHELL_CMD_RM_DENY` | 设置为 `1` 以关闭 [PowerShell 工具](/docs/zh-CN/tools-reference#powershell-tool) 检查,该检查在 [系统路径](/docs/zh-CN/permission-modes#remove-item-in-powershell)(如驱动器根目录或您的主目录)上拒绝 `cmd` 内置命令 `rd`、`rmdir`、`del` 和 `erase`。Claude Code 在设置文件的 `env` 块中忽略此变量。需要 Claude Code v2.1.283 或更高版本 |

276| `CLAUDE_CODE_DISABLE_SUBSTITUTION_RM_PROMPT` | 设置为 `1` 以关闭 [关键路径](/docs/zh-CN/permission-modes#critical-paths) 检查,用于递归 `rm`,其目标完全是命令替换的输出,例如 `rm -rf "$(pwd)"`。其他关键路径检查保持运行。在启动 Claude Code 的环境中设置它,因为 Claude Code 忽略通过设置 `env` 块传递的副本。需要 Claude Code v2.1.281 或更高版本 |276| `CLAUDE_CODE_DISABLE_SUBSTITUTION_RM_PROMPT` | 设置为 `1` 以关闭 [关键路径](/docs/zh-CN/permission-modes#critical-paths) 检查,用于递归 `rm`,其目标完全是命令替换的输出,例如 `rm -rf "$(pwd)"`。其他关键路径检查继续运行。在启动 Claude Code 的环境中设置它,因为 Claude Code 忽略通过设置 `env` 块传递的副本。需要 Claude Code v2.1.281 或更高版本 |

277| `CLAUDE_CODE_DISABLE_TERMINAL_TITLE` | 设置为 `1` 以禁用基于对话上下文的自动终端标题更新。这也跳过生成 [会话标题](/docs/zh-CN/sessions#name-your-sessions) 的后台小/快速模型请求 |277| `CLAUDE_CODE_DISABLE_TERMINAL_TITLE` | 设置为 `1` 以禁用基于对话上下文的自动终端标题更新。这也跳过生成 [会话标题](/docs/zh-CN/sessions#name-your-sessions) 的后台小/快速模型请求 |

278| `CLAUDE_CODE_DISABLE_THINKING` | 设置为 `1` 以从 API 请求中完全省略 `thinking` 参数。这是代理和网关拒绝该参数的兼容性选项。在默认思考的模型上,省略参数意味着模型仍可能思考。要在 Anthropic API 上明确禁用 [扩展思考](https://platform.claude.com/docs/en/build-with-claude/extended-thinking),请改用 `MAX_THINKING_TOKENS=0`。两个变量都不会在 Opus 5.5、Sonnet 5.5 或 Fable 模型上关闭思考,这些模型无法关闭思考。在 [第三方提供商](/docs/zh-CN/third-party-integrations) 上,`MAX_THINKING_TOKENS=0` 同样省略参数,因此两个变量在那里的行为相同 |278| `CLAUDE_CODE_DISABLE_THINKING` | 设置为 `1` 以从 API 请求中完全省略 `thinking` 参数。这是代理和网关拒绝该参数的兼容性选项。在默认思考的模型上,省略参数意味着模型仍可能思考。要在 Anthropic API 上明确禁用 [扩展思考](https://platform.claude.com/docs/en/build-with-claude/extended-thinking),请改用 `MAX_THINKING_TOKENS=0`。两个变量都不会在 Opus 5.5、Sonnet 5.5 或 Fable 模型上关闭思考,这些模型无法关闭思考。在 [第三方提供商](/docs/zh-CN/third-party-integrations) 上,`MAX_THINKING_TOKENS=0` 同样省略参数,因此两个变量在那里的行为相同 |

279| `CLAUDE_CODE_DISABLE_UNKNOWN_MODEL_WINDOW_ENFORCEMENT` | 设置为 `1` 以在 Claude Code 不识别模型 ID 时跳过主动 [自动压缩](/docs/zh-CN/costs#reduce-token-usage),例如 [LLM 网关](/docs/zh-CN/llm-gateway) 别名。没有此变量,Claude Code 在它为 ID 假设的上下文窗口处压缩。`CLAUDE_CODE_MAX_CONTEXT_TOKENS` 可以改为纠正假设的窗口;请参阅 [为网关或自定义模型 ID 纠正窗口](/docs/zh-CN/model-config#correct-the-window-for-a-gateway-or-custom-model-id) 了解何时应用每个变量。需要 Claude Code v2.1.223 或更高版本 |279| `CLAUDE_CODE_DISABLE_UNKNOWN_MODEL_WINDOW_ENFORCEMENT` | 设置为 `1` 以在 Claude Code 不识别模型 ID(如 [LLM 网关](/docs/zh-CN/llm-gateway) 别名)时跳过主动 [自动压缩](/docs/zh-CN/costs#reduce-token-usage)。没有此变量,Claude Code 在它为 ID 假设的上下文窗口处压缩。`CLAUDE_CODE_MAX_CONTEXT_TOKENS` 可以改为纠正假设的窗口;参见 [纠正网关或自定义模型 ID 的窗口](/docs/zh-CN/model-config#correct-the-window-for-a-gateway-or-custom-model-id) 了解何时应用每个变量。需要 Claude Code v2.1.223 或更高版本 |

280| `CLAUDE_CODE_DISABLE_VIRTUAL_SCROLL` | 设置为 `1` 以在 [全屏呈现](/docs/zh-CN/fullscreen) 中禁用虚拟滚动并呈现转录中的每条消息。如果全屏模式中的滚动显示应显示消息的空白区域,请使用此选项 |280| `CLAUDE_CODE_DISABLE_VIRTUAL_SCROLL` | 设置为 `1` 以在 [全屏呈现](/docs/zh-CN/fullscreen) 中禁用虚拟滚动并呈现成绩单中的每条消息。如果全屏模式中的滚动显示应显示消息的空白区域,请使用此选项 |

281| `CLAUDE_CODE_DISABLE_WINDOWS_SHELL_LAUNCHER` | 设置为 `1` 以在 Windows 上直接启动 [PowerShell 工具](/docs/zh-CN/tools-reference#powershell-tool) 命令,而不是通过 `cmd.exe` 启动器。默认情况下,启动器让在后台 [运行的 PowerShell 命令](/docs/zh-CN/tools-reference#background-commands) [转移到会话的下一个进程](/docs/zh-CN/agent-view#the-supervisor-process),例如当您 [后台处理会话](/docs/zh-CN/agent-view#from-inside-a-session) 时。如果您设置变量,后台处理的 PowerShell 命令在会话的进程退出时停止。Bash 命令不受影响。需要 Claude Code v2.1.269 或更高版本 |281| `CLAUDE_CODE_DISABLE_WINDOWS_SHELL_LAUNCHER` | 设置为 `1` 以在 Windows 上直接启动 [PowerShell 工具](/docs/zh-CN/tools-reference#powershell-tool) 命令,而不是通过 `cmd.exe` 启动器。默认情况下,启动器让在 [后台](/docs/zh-CN/tools-reference#background-commands) 运行的 PowerShell 命令 [转移到会话的下一个进程](/docs/zh-CN/agent-view#the-supervisor-process),例如当您 [后台处理会话](/docs/zh-CN/agent-view#from-inside-a-session) 时。如果您设置变量,后台处理的 PowerShell 命令在会话的进程退出时停止。Bash 命令不受影响。需要 Claude Code v2.1.269 或更高版本 |

282| `CLAUDE_CODE_DISABLE_WORKFLOWS` | 设置为 `1` 以禁用 [工作流](/docs/zh-CN/workflows#turn-workflows-off)。等同于 [`disableWorkflows`](/docs/zh-CN/settings-reference#disableworkflows) 设置 |282| `CLAUDE_CODE_DISABLE_WORKFLOWS` | 设置为 `1` 以禁用 [工作流](/docs/zh-CN/workflows#turn-workflows-off)。等同于 [`disableWorkflows`](/docs/zh-CN/settings-reference#disableworkflows) 设置 |

283| `CLAUDE_CODE_EFFORT_LEVEL` | 为支持的模型设置 effort 级别。值:`low`、`medium`、`high`、`xhigh`、`max` 或 `auto` 以使用模型默认值。可用级别取决于模型。优先于 `--effort`、`/effort` 和 `modelSettings` 和 `effortLevel` 设置。[`maxEffortLevel`](/docs/zh-CN/settings-reference#maxeffortlevel) 上限仍然适用。请参阅 [调整 effort 级别](/docs/zh-CN/model-config#adjust-effort-level) |283| `CLAUDE_CODE_EFFORT_LEVEL` | 为支持的模型设置 effort 级别。值:`low`、`medium`、`high`、`xhigh`、`max` 或 `auto` 以使用模型默认值。可用级别取决于模型。优先于 `--effort`、`/effort` 和 `modelSettings` 和 `effortLevel` 设置。[`maxEffortLevel`](/docs/zh-CN/settings-reference#maxeffortlevel) 上限仍然适用。参见 [调整 effort 级别](/docs/zh-CN/model-config#adjust-effort-level) |

284| `CLAUDE_CODE_ENABLE_AUTO_MODE` | 为了与较旧版本兼容而接受,无效。自动模式在每个提供商上默认可用,包括 Amazon Bedrock、Google Cloud's Agent Platform、Microsoft Foundry 和已登录的 [Claude 应用网关](/docs/zh-CN/claude-apps-gateway) 会话。在 v2.1.158 到 v2.1.206 中,需要将其设置为 `1` 以在这些提供商上提供 [自动模式](/docs/zh-CN/permission-modes#eliminate-prompts-with-auto-mode) |284| `CLAUDE_CODE_ENABLE_AUTO_MODE` | 为了与较旧版本兼容而接受,无效。自动模式在每个提供商上默认可用,包括 Amazon Bedrock、Google Cloud's Agent Platform、Microsoft Foundry 和已登录的 [Claude 应用网关](/docs/zh-CN/claude-apps-gateway) 会话。在 v2.1.158 到 v2.1.206 中,设置此项为 `1` 是在这些提供商上使 [自动模式](/docs/zh-CN/permission-modes#eliminate-prompts-with-auto-mode) 可用所必需的 |

285| `CLAUDE_CODE_ENABLE_AWAY_SUMMARY` | 覆盖 [会话回顾](/docs/zh-CN/interactive-mode#session-recap) 可用性。设置为 `0` 以强制关闭回顾,无论 `/config` 切换如何。设置为 `1` 以在 [`awaySummaryEnabled`](/docs/zh-CN/settings-reference#awaysummaryenabled) 为 `false` 时强制打开回顾。优先于设置和 `/config` 切换 |285| `CLAUDE_CODE_ENABLE_AWAY_SUMMARY` | 覆盖 [会话回顾](/docs/zh-CN/interactive-mode#session-recap) 可用性。设置为 `0` 以强制关闭回顾,无论 `/config` 切换如何。设置为 `1` 以在 [`awaySummaryEnabled`](/docs/zh-CN/settings-reference#awaysummaryenabled) 为 `false` 时强制打开回顾。优先于设置和 `/config` 切换 |

286| `CLAUDE_CODE_ENABLE_BACKGROUND_PLUGIN_REFRESH` | 设置为 `1` 以在后台安装完成后在转弯边界处刷新 [非交互模式](/docs/zh-CN/headless) 中的插件状态。默认关闭,因为刷新在会话中期更改系统提示,这会使该转弯的 [提示缓存](/docs/zh-CN/prompt-caching) 失效 |286| `CLAUDE_CODE_ENABLE_BACKGROUND_PLUGIN_REFRESH` | 设置为 `1` 以在后台安装完成后在 [非交互模式](/docs/zh-CN/headless) 中的转向边界处刷新插件状态。默认关闭,因为刷新在会话中途更改系统提示,这会使该转向的 [提示缓存](/docs/zh-CN/prompt-caching) 失效 |

287| `CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL` | 设置为 `1` 以在阻止 Anthropic 绑定的非必要流量时将"Claude 表现如何?"会话质量调查路由到您自己的 [OpenTelemetry 收集器](/docs/zh-CN/monitoring-usage)。调查评级仅作为 OTEL 事件发出到您配置的收集器。在此模式下,没有调查数据发送到 Anthropic。当设置 `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`、`DISABLE_TELEMETRY` 或 `DO_NOT_TRACK` 时应用,否则无效。`CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY` 和组织产品反馈政策优先 |287| `CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL` | 设置为 `1` 以在 Anthropic 绑定的非必要流量被阻止时将"Claude 表现如何?"会话质量调查路由到您自己的 [OpenTelemetry 收集器](/docs/zh-CN/monitoring-usage)。调查评级仅作为 OTEL 事件发出到您配置的收集器。在此模式下,没有调查数据发送到 Anthropic。当设置 `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`、`DISABLE_TELEMETRY` 或 `DO_NOT_TRACK` 时适用,否则无效。`CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY` 和组织产品反馈政策优先 |

288| `CLAUDE_CODE_ENABLE_FINE_GRAINED_TOOL_STREAMING` | 控制工具调用输入是否在 Claude 生成时从 API 流式传输。关闭此选项时,大型工具输入(如长文件写入)仅在 Claude 完成生成后到达,这可能看起来像它挂起了。在 Anthropic API 上默认启用。在 Amazon Bedrock 和 Google Cloud's Agent Platform 上,在部署的容器支持的每个模型上启用。设置为 `0` 以选择退出。设置为 `1` 以在通过 `ANTHROPIC_BASE_URL`、`ANTHROPIC_VERTEX_BASE_URL` 或 `ANTHROPIC_BEDROCK_BASE_URL` 通过代理路由时强制打开。在 Microsoft Foundry 和 [网关](/docs/zh-CN/llm-gateway) 连接上默认关闭 |288| `CLAUDE_CODE_ENABLE_FINE_GRAINED_TOOL_STREAMING` | 控制工具调用输入是否在 API 生成时从 API 流式传输。关闭此选项时,大型工具输入(如长文件写入)仅在 Claude 完成生成后到达,这可能看起来像它挂起了。在 Anthropic API 上默认启用。在 Amazon Bedrock 和 Google Cloud's Agent Platform 上,在部署的容器支持的每个模型上启用。设置为 `0` 以选择退出。设置为 `1` 以在通过 `ANTHROPIC_BASE_URL`、`ANTHROPIC_VERTEX_BASE_URL` 或 `ANTHROPIC_BEDROCK_BASE_URL` 通过代理路由时强制打开。在 Microsoft Foundry 和 [网关](/docs/zh-CN/llm-gateway) 连接上默认关闭 |

289| `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY` | 设置为 `1` 以在 `ANTHROPIC_BASE_URL` 指向 Anthropic 兼容网关(如 LiteLLM、Kong 或内部代理)时从您的网关的 `/v1/models` 端点填充 `/model` 选择器。默认关闭,因为由共享 API 密钥支持的网关会显示密钥可以访问的每个模型给每个用户。发现的模型仍由会话接收的 [`availableModels`](/docs/zh-CN/settings-reference#availablemodels) 允许列表过滤;通过 [MDM 或托管设置文件](/docs/zh-CN/managed-settings#delivery-mechanisms) 传递列表,因为 [服务器管理的传递在网关配置上不可用](/docs/zh-CN/server-managed-settings#platform-availability) |289| `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY` | 设置为 `1` 以在 `ANTHROPIC_BASE_URL` 指向 Anthropic 兼容网关(如 LiteLLM、Kong 或内部代理)时从您网关的 `/v1/models` 端点填充 `/model` 选择器。默认关闭,因为由共享 API 密钥支持的网关会显示密钥可以访问的每个用户的每个模型。发现的模型仍由会话接收的 [`availableModels`](/docs/zh-CN/settings-reference#availablemodels) 允许列表过滤;通过 [MDM 或托管设置文件](/docs/zh-CN/managed-settings#delivery-mechanisms) 传递列表,因为 [服务器管理的传递在网关配置上不可用](/docs/zh-CN/server-managed-settings#platform-availability) |

290| `CLAUDE_CODE_ENABLE_OPUS_4_7_FAST_MODE` | 在 v2.1.142 中删除,当 [快速模式](/docs/zh-CN/fast-mode) 默认从 Opus 4.6 移到 Opus 4.7 时 |290| `CLAUDE_CODE_ENABLE_OPUS_4_7_FAST_MODE` | 在 v2.1.142 中删除,当 [快速模式](/docs/zh-CN/fast-mode) 默认从 Opus 4.6 移至 Opus 4.7 时 |

291| `CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION` | 设置为 `false` 以关闭提示建议,即在您的提示输入中出现的灰显预测。优先于 [`promptSuggestionEnabled`](/docs/zh-CN/settings-reference#promptsuggestionenabled) 设置,这是 `/config` 中的**提示建议**切换写入的内容。Claude Code 也 [在您的帐户接近或达到使用限制时暂停建议](/docs/zh-CN/interactive-mode#when-claude-code-skips-suggestions)。设置为 `true` 以在达到限制之前保持它们打开。需要 Claude Code v2.1.238 或更高版本。请参阅 [提示建议](/docs/zh-CN/interactive-mode#prompt-suggestions) |291| `CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION` | 设置为 `false` 以关闭提示建议,即在您的提示输入中出现的灰显预测。优先于 [`promptSuggestionEnabled`](/docs/zh-CN/settings-reference#promptsuggestionenabled) 设置,这是 `/config` 中的 **提示建议** 切换写入的内容。Claude Code 也 [在您的帐户接近或达到使用限制时暂停建议](/docs/zh-CN/interactive-mode#when-claude-code-skips-suggestions)。设置为 `true` 以在达到限制之前保持它们打开。需要 Claude Code v2.1.238 或更高版本。参见 [提示建议](/docs/zh-CN/interactive-mode#prompt-suggestions) |

292| `CLAUDE_CODE_ENABLE_TASKS` | 选择 Claude Code 在 [具有它们的会话](/docs/zh-CN/tools-reference#task-tool-availability) 中提供的任务跟踪工具。默认情况下,Claude Code 提供 Task 工具 `TaskCreate`、`TaskUpdate`、`TaskGet` 和 `TaskList`。设置为 `0` 以改为获取旧版 `TodoWrite` 工具。请参阅 [任务列表](/docs/zh-CN/interactive-mode#task-list) |292| `CLAUDE_CODE_ENABLE_TASKS` | 选择 Claude Code 在 [具有它们的会话](/docs/zh-CN/tools-reference#task-tool-availability) 中提供哪些任务跟踪工具。默认情况下,Claude Code 提供 Task 工具 `TaskCreate`、`TaskUpdate`、`TaskGet` 和 `TaskList`。设置为 `0` 以改为获取旧版 `TodoWrite` 工具。参见 [任务列表](/docs/zh-CN/interactive-mode#task-list) |

293| `CLAUDE_CODE_ENABLE_TELEMETRY` | 设置为 `1` 以启用指标和日志记录的 OpenTelemetry 数据收集。在配置 OTel 导出器之前需要。在您的 shell、用户设置或托管设置中设置它。在 [项目和本地设置](/docs/zh-CN/settings-reference#variables-claude-code-ignores-in-env) 中被忽略。请参阅 [监控](/docs/zh-CN/monitoring-usage) |293| `CLAUDE_CODE_ENABLE_TELEMETRY` | 设置为 `1` 以启用指标和日志记录的 OpenTelemetry 数据收集。在配置 OTel 导出器之前需要。在您的 shell、用户设置或托管设置中设置它。在 [项目和本地设置](/docs/zh-CN/settings-reference#variables-claude-code-ignores-in-env) 中被忽略。参见 [监控](/docs/zh-CN/monitoring-usage) |

294| `CLAUDE_CODE_ENABLE_TODO_TOOLS` | 设置为 `1` 以在每个模型上获取任务跟踪工具。没有它,Claude Code 仅在 [任务工具可用性](/docs/zh-CN/tools-reference#task-tool-availability) 下列出的模型上默认提供它们。`CLAUDE_CODE_ENABLE_TASKS` 仍选择 Task 工具或 `TodoWrite`。需要 Claude Code v2.1.233 或更高版本 |294| `CLAUDE_CODE_ENABLE_TODO_TOOLS` | 设置为 `1` 以在每个模型上获取任务跟踪工具。没有它,Claude Code 仅在 [任务工具可用性](/docs/zh-CN/tools-reference#task-tool-availability) 下列出的模型上默认提供它们。`CLAUDE_CODE_ENABLE_TASKS` 仍选择 Task 工具或 `TodoWrite`。需要 Claude Code v2.1.233 或更高版本 |

295| `CLAUDE_CODE_EXIT_AFTER_STOP_DELAY` | 查询循环变为空闲后自动退出前等待的时间(以毫秒为单位)。对自动化工作流和使用 SDK 模式的脚本很有用 |295| `CLAUDE_CODE_EXIT_AFTER_STOP_DELAY` | 查询循环变为空闲后自动退出之前等待的时间(毫秒)。对于使用 SDK 模式的自动化工作流和脚本很有用 |

296| `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS` | 设置为 `1` 以启用 [代理团队](/docs/zh-CN/agent-teams)。代理团队是实验性的,默认禁用 |296| `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS` | 设置为 `1` 以启用 [代理团队](/docs/zh-CN/agent-teams)。代理团队是实验性的,默认禁用 |

297| `CLAUDE_CODE_EXTRA_BODY` | JSON 对象以合并到每个 API 请求正文的顶级。对于传递 Claude Code 不直接公开的提供商特定参数很有用。在您的 shell 中导出的值也适用于您使用 `claude agents` 或 `--bg` 分派的 [后台会话](/docs/zh-CN/agent-view)。在 v2.1.206 之前,后台会话忽略了 shell 导出的值,并使用后台主管进程继承的任何副本 |297| `CLAUDE_CODE_EXTRA_BODY` | JSON 对象,合并到每个 API 请求正文的顶级。对于传递 Claude Code 不直接公开的提供商特定参数很有用。在您的 shell 中导出的值也适用于您使用 `claude agents` 或 `--bg` 分派的 [后台会话](/docs/zh-CN/agent-view)。在 v2.1.206 之前,后台会话忽略了 shell 导出的值,并使用了后台主管进程继承的任何副本 |

298| `CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENS` | 覆盖文件读取的默认令牌限制。当您需要完整读取较大文件时很有用 |298| `CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENS` | 覆盖文件读取的默认令牌限制。当您需要完整读取较大文件时很有用 |

299| `CLAUDE_CODE_FORCE_SESSION_PERSISTENCE` | 设置为 `1` 以强制转录持久性、提示历史和 `claude agents` 注册,即使此 `claude` 是从另一个 Claude Code 会话内启动的。当继承的 `CLAUDE_CODE_CHILD_SESSION` 值(例如来自 `screen` 会话或由 Claude Code 的 Bash 工具首先启动的后台启动器)导致真正的顶级会话被误分类为嵌套时使用。从 v2.1.178 开始,Claude Code 自动检测 tmux 情况并忽略继承的标记,因此 tmux 不再需要此变量。也在 v2.1.169 及更早版本上受尊重;对 v2.1.170 和 v2.1.171 无效,其中它覆盖的嵌套会话检测被删除 |299| `CLAUDE_CODE_FORCE_SESSION_PERSISTENCE` | 设置为 `1` 以强制成绩单持久性、提示历史和 `claude agents` 注册,即使此 `claude` 是从另一个 Claude Code 会话内启动的。当继承的 `CLAUDE_CODE_CHILD_SESSION` 值(例如来自 `screen` 会话或由 Claude Code 的 Bash 工具首先启动的后台启动器)导致真正的顶级会话被误分类为嵌套时使用。从 v2.1.178 开始,Claude Code 自动检测 tmux 情况并忽略继承的标记,因此 tmux 不再需要此变量。也在 v2.1.169 及更早版本上受尊重;对 v2.1.170 和 v2.1.171 无效,其中它覆盖的嵌套会话检测被删除 |

300| `CLAUDE_CODE_FORCE_STRIKETHROUGH` | 设置为 `1` 以在您的终端支持但未自动检测时强制 `~~text~~` 的删除线呈现,例如通过 SSH 而不转发 `TERM_PROGRAM`。没有这个,未检测到的终端显示文字 `~~` 标记而不是呈现文本为删除线。需要 Claude Code v2.1.186 或更高版本 |300| `CLAUDE_CODE_FORCE_STRIKETHROUGH` | 设置为 `1` 以在您的终端支持但未自动检测时强制 `~~text~~` 的删除线呈现,例如通过 SSH 而不转发 `TERM_PROGRAM`。没有这个,未检测到的终端显示文字 `~~` 标记而不是将文本呈现为删除线。需要 Claude Code v2.1.186 或更高版本 |

301| `CLAUDE_CODE_FORCE_SYNC_OUTPUT` | 设置为 `1` 以在您的终端支持但未自动检测时强制启用 DEC 私有模式 2026 [同步输出](https://gist.github.com/christianparpart/d8a62cc1ab659194337d73e399004036)。对于实现 BSU/ESU 但不回复功能探针的模拟器(如 Emacs `eat`)很有用。在 tmux 下无效。与 [全屏呈现](/docs/zh-CN/fullscreen) 的 `CLAUDE_CODE_NO_FLICKER` 不同,这不会改变渲染器 |301| `CLAUDE_CODE_FORCE_SYNC_OUTPUT` | 设置为 `1` 以在您的终端支持但未自动检测时强制启用 DEC 私有模式 2026 [同步输出](https://gist.github.com/christianparpart/d8a62cc1ab659194337d73e399004036)。对于实现 BSU/ESU 但不回复功能探针的模拟器(如 Emacs `eat`)很有用。在 tmux 下无效。与 `CLAUDE_CODE_NO_FLICKER` 不同,后者切换到 [全屏呈现](/docs/zh-CN/fullscreen),这不会改变渲染器 |

302| `CLAUDE_CODE_FORK_SUBAGENT` | 控制 [fork 模式](/docs/zh-CN/sub-agents#turn-fork-mode-on-or-off),它让 Claude 生成 [forked 子代理](/docs/zh-CN/sub-agents#fork-the-current-conversation) 本身,在交互式会话中默认打开。设置为 `1` 以在 `claude -p` 和 Agent SDK 中也打开它,或 `0` 以在每种会话中关闭它。无论 fork 模式是否打开,您都可以运行 `/subtask`。交互式默认需要 Claude Code v2.1.232 或更高版本;在早期版本上,设置变量为 `1` 以打开 fork 模式 |302| `CLAUDE_CODE_FORK_SUBAGENT` | 控制 [fork 模式](/docs/zh-CN/sub-agents#turn-fork-mode-on-or-off),它让 Claude 生成 [forked 子代理](/docs/zh-CN/sub-agents#fork-the-current-conversation) 本身,在交互式会话中默认打开。设置为 `1` 以在 `claude -p` 和 Agent SDK 中也打开它,或 `0` 以在每种会话中关闭它。无论 fork 模式是否打开,您都可以运行 `/subtask`。交互式默认值需要 Claude Code v2.1.232 或更高版本;在早期版本上,设置变量为 `1` 以打开 fork 模式 |

303| `CLAUDE_CODE_FORWARD_SUBAGENT_TEXT` | 设置为 `1` 以在 `claude -p --output-format stream-json` 输出中发出 [子代理](/docs/zh-CN/sub-agents) 文本和思考块,与 [`--forward-subagent-text`](/docs/zh-CN/cli-reference#cli-flags) 标志相同的行为。当启动 `claude` 的工具无法自己传递标志时使用变量。与标志不同,后者在非交互模式下使用 stream-json 输出时以错误退出,变量在那里被忽略,以便嵌套调用在设置进程范围时继续工作。需要 Claude Code v2.1.211 或更高版本 |303| `CLAUDE_CODE_FORWARD_SUBAGENT_TEXT` | 设置为 `1` 以在 `claude -p --output-format stream-json` 输出中发出 [子代理](/docs/zh-CN/sub-agents) 文本和思考块,与 [`--forward-subagent-text`](/docs/zh-CN/cli-reference#cli-flags) 标志相同的行为。当调用 `claude` 的工具无法自己传递标志时使用变量。与在非交互模式下使用 stream-json 输出时在非交互模式外出错的标志不同,变量在那里被忽略,因此当它在进程范围内设置时嵌套调用继续工作。需要 Claude Code v2.1.211 或更高版本 |

304| `CLAUDE_CODE_GATEWAY_HINT_HEADERS` | 设置为 `1` 以在自定义代理或第三方提供商(如 Amazon Bedrock 或 Claude Platform on AWS)上发送 [网关提示标头](/docs/zh-CN/llm-gateway-protocol#gateway-hint-headers)(如 `x-claude-code-request-class` 和 `x-claude-code-compaction`)。设置为 `0` 以停止在每个连接上发送它们,包括 Claude Code 默认发送它们的直接 Anthropic API 连接。需要 Claude Code v2.1.273 或更高版本 |304| `CLAUDE_CODE_GATEWAY_HINT_HEADERS` | 设置为 `1` 以在自定义代理或第三方提供商(如 Amazon Bedrock 或 Claude Platform on AWS)上发送 [网关提示标头](/docs/zh-CN/llm-gateway-protocol#gateway-hint-headers)(如 `x-claude-code-request-class` 和 `x-claude-code-compaction`)。设置为 `0` 以停止在每个连接上发送它们,包括 Claude Code 默认发送它们的直接 Anthropic API 连接。需要 Claude Code v2.1.273 或更高版本 |

305| `CLAUDE_CODE_GATEWAY_MODEL_DISCOVERY_TIMEOUT_MS` | 由 `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY` 打开的 [网关模型发现](/docs/zh-CN/llm-gateway-protocol#model-discovery) 请求的超时时间(以毫秒为单位)(默认值:`3000`)。当您的网关需要超过三秒来回答启动时的 `/v1/models` 时提高它。仅接受纯数字;`0`、负值和其他拼写保持默认值。需要 Claude Code v2.1.269 或更高版本 |305| `CLAUDE_CODE_GATEWAY_MODEL_DISCOVERY_TIMEOUT_MS` | [网关模型发现](/docs/zh-CN/llm-gateway-protocol#model-discovery) 请求的超时时间(毫秒),`CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY` 打开(默认值:`3000`)。当您的网关需要超过三秒来回答启动时的 `/v1/models` 时增加此值。仅接受纯数字;`0`、负值和其他拼写保持默认值。需要 Claude Code v2.1.269 或更高版本 |

306| `CLAUDE_CODE_GIT_BASH_PATH` | 仅限 Windows:Git Bash 可执行文件(`bash.exe`)的路径。在 Git Bash 已安装但不在您的 PATH 中时使用。如果路径不存在或文件未命名为 `bash.exe`、`sh.exe`、`bash` 或 `sh`,Claude Code 会忽略变量并自动检测 Git Bash,就像它未设置一样,记录可见的警告 `--debug`。在 v2.1.219 之前,当路径不存在时 Claude Code 在启动时退出,并使用任何现有文件作为 shell,而不检查它是否为 bash 或 sh。请参阅 [Windows 设置](/docs/zh-CN/setup#set-up-on-windows) |306| `CLAUDE_CODE_GIT_BASH_PATH` | 仅限 Windows:Git Bash 可执行文件(`bash.exe`)的路径。当 Git Bash 已安装但不在您的 PATH 中时使用。如果路径不存在或文件未命名为 `bash.exe`、`sh.exe`、`bash` 或 `sh`,Claude Code 会忽略变量并自动检测 Git Bash,就像它未设置一样,记录可见的警告 `--debug`。在 v2.1.219 之前,当路径不存在时 Claude Code 在启动时退出,并使用任何现有文件作为 shell,而不检查它是否为 bash 或 sh。参见 [Windows 设置](/docs/zh-CN/setup#set-up-on-windows) |

307| `CLAUDE_CODE_GLOB_HIDDEN` | 设置为 `false` 以在 Claude 调用 [Glob 工具](/docs/zh-CN/tools-reference#glob-tool-behavior) 时从结果中排除点文件。默认包含。不影响 `@` 文件自动完成、`ls`、Grep 或 Read |307| `CLAUDE_CODE_GLOB_HIDDEN` | 设置为 `false` 以在 Claude 调用 [Glob 工具](/docs/zh-CN/tools-reference#glob-tool-behavior) 时从结果中排除点文件。默认包含。不影响 `@` 文件自动完成、`ls`、Grep 或 Read |

308| `CLAUDE_CODE_GLOB_NO_IGNORE` | 设置为 `false` 以使 [Glob 工具](/docs/zh-CN/tools-reference#glob-tool-behavior) 尊重 `.gitignore` 模式。默认情况下,Glob 返回所有匹配的文件,包括 gitignored 的文件。不影响 `@` 文件自动完成,它有自己的 [`respectGitignore` 设置](/docs/zh-CN/settings-reference#respectgitignore) |308| `CLAUDE_CODE_GLOB_NO_IGNORE` | 设置为 `false` 以使 [Glob 工具](/docs/zh-CN/tools-reference#glob-tool-behavior) 尊重 `.gitignore` 模式。默认情况下,Glob 返回所有匹配的文件,包括 gitignored 的文件。不影响 `@` 文件自动完成,它有自己的 [`respectGitignore` 设置](/docs/zh-CN/settings-reference#respectgitignore) |

309| `CLAUDE_CODE_GLOB_TIMEOUT_SECONDS` | Glob 工具文件发现的超时时间(以秒为单位)。在大多数平台上默认为 20 秒,在 WSL 上为 60 秒 |309| `CLAUDE_CODE_GLOB_TIMEOUT_SECONDS` | Glob 工具文件发现的超时时间(秒)。在大多数平台上默认为 20 秒,在 WSL 上为 60 秒 |

310| `CLAUDE_CODE_GOAL_CHECKIN_MINUTES` | 后台工作可以让活跃目标等待多少分钟,然后 Claude Code [要求 Claude 检查它](/docs/zh-CN/goal#background-work-defers-evaluation)。默认 `30`。设置 `0` 以关闭检查。以纯数字给出整分钟,最多 `10080`,即一周。Claude Code 将任何其他值视为未设置并使用默认值。需要 Claude Code v2.1.234 或更高版本 |310| `CLAUDE_CODE_GOAL_CHECKIN_MINUTES` | 后台工作可以让活跃目标等待多少分钟,然后 Claude Code [要求 Claude 检查它](/docs/zh-CN/goal#background-work-defers-evaluation)。默认 `30`。设置 `0` 以关闭检查。给出纯数字的整分钟,最多 `10080`,即一周。Claude Code 将任何其他值视为未设置并使用默认值。需要 Claude Code v2.1.234 或更高版本 |

311| `CLAUDE_CODE_HIDE_CWD` | 设置为 `1` 以在启动徽标中隐藏工作目录。对于屏幕共享或录制,其中路径暴露您的 OS 用户名很有用 |311| `CLAUDE_CODE_HIDE_CWD` | 设置为 `1` 以在启动徽标中隐藏工作目录。对于屏幕共享或录制,其中路径暴露您的 OS 用户名很有用 |

312| `CLAUDE_CODE_IDE_HOST_OVERRIDE` | 覆盖用于连接到 IDE 扩展的主机地址。默认情况下 Claude Code 自动检测正确的地址,包括 WSL 到 Windows 路由 |312| `CLAUDE_CODE_IDE_HOST_OVERRIDE` | 覆盖用于连接到 IDE 扩展的主机地址。默认情况下,Claude Code 自动检测正确的地址,包括 WSL 到 Windows 路由 |

313| `CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL` | 设置为 `1` 以跳过 IDE 扩展的自动安装。等同于将 [`autoInstallIdeExtension`](/docs/zh-CN/settings-reference#autoinstallideextension) 设置为 `false` |313| `CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL` | 设置为 `1` 以跳过 IDE 扩展的自动安装。等同于将 [`autoInstallIdeExtension`](/docs/zh-CN/settings-reference#autoinstallideextension) 设置为 `false` |

314| `CLAUDE_CODE_IDE_SKIP_VALID_CHECK` | 设置为 `1` 以跳过连接期间 IDE 锁定文件条目的验证。当自动连接无法找到您的 IDE 尽管它正在运行时使用 |314| `CLAUDE_CODE_IDE_SKIP_VALID_CHECK` | 设置为 `1` 以在连接期间跳过 IDE 锁定文件条目的验证。当自动连接无法找到您的 IDE 尽管它正在运行时使用 |

315| `CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS` | 在一个会话中运行的 [子代理](/docs/zh-CN/sub-agents#concurrent-subagent-limit) 数量,在此之后 Agent 工具拒绝生成另一个(默认值:20)。仅接受纯数字的正整数;任何其他值都被忽略,因此变量可以调整上限但不能禁用它。需要 Claude Code v2.1.217 或更高版本 |315| `CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS` | 在 Agent 工具拒绝生成另一个之前,一个会话中可以运行多少 [子代理](/docs/zh-CN/sub-agents#concurrent-subagent-limit)(默认值:20)。接受纯数字的正整数;其他任何东西都被忽略,因此变量可以调整上限但不能禁用它。需要 Claude Code v2.1.217 或更高版本 |

316| `CLAUDE_CODE_MAX_CONTEXT_TOKENS` | 覆盖 Claude Code 为活跃模型假设的上下文窗口大小。从 v2.1.193 开始,它如何应用取决于 Claude Code 如何解析模型 ID;请参阅 [为网关或自定义模型 ID 纠正窗口](/docs/zh-CN/model-config#correct-the-window-for-a-gateway-or-custom-model-id)。在通过 `ANTHROPIC_BASE_URL` 路由到其上下文窗口与其名称的内置大小不匹配的模型时使用 |316| `CLAUDE_CODE_MAX_CONTEXT_TOKENS` | 覆盖 Claude Code 为活跃模型假设的上下文窗口大小。从 v2.1.193 开始,它的应用方式取决于 Claude Code 如何解析模型 ID;参见 [纠正网关或自定义模型 ID 的窗口](/docs/zh-CN/model-config#correct-the-window-for-a-gateway-or-custom-model-id)。在通过 `ANTHROPIC_BASE_URL` 路由到其上下文窗口与其名称的内置大小不匹配的模型时使用此选项 |

317| `CLAUDE_CODE_MAX_MCP_DESCRIPTION_LENGTH` | Claude Code 发送给模型的每个 MCP 工具描述和每个 MCP 服务器说明的最大长度(以字符为单位)(默认值:2048)。Claude Code [截断较长的文本](/docs/zh-CN/mcp#for-mcp-server-authors)。仅接受纯数字的正整数。任何其他值都被忽略,默认值适用。需要 Claude Code v2.1.280 或更高版本 |317| `CLAUDE_CODE_MAX_MCP_DESCRIPTION_LENGTH` | Claude Code 发送给模型的每个 MCP 工具描述和每个 MCP 服务器说明的最大长度(字符)(默认值:2048)。Claude Code [截断较长的文本](/docs/zh-CN/mcp#for-mcp-server-authors)。接受纯数字的正整数。其他任何东西都被忽略,默认值适用。需要 Claude Code v2.1.280 或更高版本 |

318| `CLAUDE_CODE_MAX_OUTPUT_TOKENS` | 为大多数请求设置最大输出令牌数。默认值和上限因模型而异;请参阅 [最大输出令牌](https://platform.claude.com/docs/en/about-claude/models/overview#latest-models-comparison)。Claude Code 为它不识别的模型 ID(如网关特定的名称)默认为 32000,并将高于模型上限的值降低到上限。增加此值会减少 [自动压缩](/docs/zh-CN/costs#reduce-token-usage) 触发前可用的有效上下文窗口 |318| `CLAUDE_CODE_MAX_OUTPUT_TOKENS` | 为大多数请求设置最大输出令牌数。默认值和上限因模型而异;参见 [最大输出令牌](https://platform.claude.com/docs/en/about-claude/models/overview#latest-models-comparison)。Claude Code 将高于模型上限的值降低到上限。对于 Claude Code 无法解析为其知道的模型的模型 ID,默认值为 32000,上限为 128000。增加此值会减少 [自动压缩](/docs/zh-CN/costs#reduce-token-usage) 触发之前可用的有效上下文窗口 |

319| `CLAUDE_CODE_MAX_RETRIES` | 覆盖重试失败 API 请求的次数(默认值:10)。从 v2.1.186 开始上限为 15;从 v2.1.199 开始,`CLAUDE_CODE_RETRY_WATCHDOG` 提高默认值并删除上限。对于需要等待更长中断的无人值守会话,改为设置 `CLAUDE_CODE_RETRY_WATCHDOG` |319| `CLAUDE_CODE_MAX_RETRIES` | 覆盖重试失败 API 请求的次数(默认值:10)。从 v2.1.186 开始上限为 15;从 v2.1.199 开始,`CLAUDE_CODE_RETRY_WATCHDOG` 提高默认值并删除上限。对于需要等待更长中断的无人值守会话,改为设置 `CLAUDE_CODE_RETRY_WATCHDOG` |

320| `CLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION` | 在 v2.1.224 中删除,现在是无操作。以前上限了 Claude 可以在一个会话中使用 Agent 工具生成的 [子代理](/docs/zh-CN/sub-agents) 总数(默认值:200);超过上限生成失败,显示 `Subagent spawn limit reached`。[并发子代理限制](/docs/zh-CN/sub-agents#concurrent-subagent-limit) 和 [深度限制](/docs/zh-CN/sub-agents#let-subagents-spawn-their-own-subagents) 仍然适用 |320| `CLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION` | 在 v2.1.224 中删除,现在是无操作。以前上限了 Claude 可以在一个会话中使用 Agent 工具生成的 [子代理](/docs/zh-CN/sub-agents) 总数(默认值:200);超过上限生成失败,显示 `Subagent spawn limit reached`。[并发子代理限制](/docs/zh-CN/sub-agents#concurrent-subagent-limit) 和 [深度限制](/docs/zh-CN/sub-agents#let-subagents-spawn-their-own-subagents) 仍然适用 |

321| `CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH` | 主对话下方允许的 [子代理层](/docs/zh-CN/sub-agents#let-subagents-spawn-their-own-subagents) 数量(默认值:3)。在默认值处,子代理可以生成自己的子代理,第三层的子代理无法进一步生成;设置 `1` 以关闭嵌套。在 v2.1.217 到 v2.1.218 中,默认值为 1,因此子代理无法生成自己的,除非您提高限制;v2.1.219 将默认值提高到 3。仅接受纯数字的正整数;任何其他值都被忽略,因此限制可以调整但不能删除。需要 Claude Code v2.1.217 或更高版本 |321| `CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH` | 主对话下允许的 [子代理层](/docs/zh-CN/sub-agents#let-subagents-spawn-their-own-subagents) 数(默认值:3)。在默认值处,子代理可以生成自己的子代理,第三层的子代理无法进一步生成;设置 `1` 以关闭嵌套。在 v2.1.217 到 v2.1.218 中,默认值为 1,因此子代理无法生成自己的,除非您提高限制;v2.1.219 将默认值提高到 3。接受纯数字的正整数;其他任何东西都被忽略,因此限制可以调整但不能删除。需要 Claude Code v2.1.217 或更高版本 |

322| `CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCY` | 可以并行执行的只读工具和子代理的最大数量(默认值:10)。较高的值增加并行性但消耗更多资源 |322| `CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCY` | 可以并行执行的只读工具和子代理的最大数量(默认值:10)。较高的值增加并行性但消耗更多资源 |

323| `CLAUDE_CODE_MAX_TURNS` | 当没有传递显式限制时,限制代理转弯的数量。等同于传递 [`--max-turns`](/docs/zh-CN/cli-reference#cli-flags),当两者都设置时优先。不是正整数的值在启动时被拒绝,显示错误,而不是视为无上限 |323| `CLAUDE_CODE_MAX_TURNS` | 当没有传递显式限制时,限制代理转向的数量。等同于传递 [`--max-turns`](/docs/zh-CN/cli-reference#cli-flags),当两者都设置时优先。不是正整数的值在启动时被拒绝并出现错误,而不是视为无上限 |

324| `CLAUDE_CODE_MAX_WEB_SEARCHES_PER_SESSION` | 一个会话可以进行的 [WebSearch](/docs/zh-CN/tools-reference#websearch-tool-behavior) 调用总数的上限(默认值:200)。当 Claude 达到上限时,进一步的 WebSearch 调用返回通知,告诉它继续使用已收集的信息。接受没有上限的正整数。任何其他值都被忽略,默认值适用,因此上限可以提高但不能关闭。需要 Claude Code v2.1.212 或更高版本 |324| `CLAUDE_CODE_MAX_WEB_SEARCHES_PER_SESSION` | 一个会话可以进行的 [WebSearch](/docs/zh-CN/tools-reference#websearch-tool-behavior) 调用总数的上限(默认值:200)。当 Claude 达到上限时,进一步的 WebSearch 调用返回通知,告诉它继续使用已收集的信息。接受没有上限的正整数。其他任何东西都被忽略,默认值适用,因此上限可以提高但不能关闭。需要 Claude Code v2.1.212 或更高版本 |

325| `CLAUDE_CODE_MCP_ALLOWLIST_ENV` | 设置为 `1` 以使用仅安全基线环境加上服务器的配置 `env` 生成 stdio MCP 服务器,而不是继承您的 shell 环境 |325| `CLAUDE_CODE_MCP_ALLOWLIST_ENV` | 设置为 `1` 以使用仅安全基线环境加上服务器的配置 `env` 生成 stdio MCP 服务器,而不是继承您的 shell 环境 |

326| `CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS` | 经过的时间(以毫秒为单位),在此之后仍在运行的 MCP 工具调用 [移到后台任务](/docs/zh-CN/mcp#automatic-backgrounding-of-long-tool-calls)(默认值:120000,或 2 分钟)。设置为 `0` 以关闭自动后台处理。需要 Claude Code v2.1.212 或更高版本 |326| `CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS` | 仍在运行的 MCP 工具调用 [移至后台任务](/docs/zh-CN/mcp#automatic-backgrounding-of-long-tool-calls) 之前的经过时间(毫秒)(默认值:120000,或 2 分钟)。设置为 `0` 以关闭自动后台处理。需要 Claude Code v2.1.212 或更高版本 |

327| `CLAUDE_CODE_MCP_STARTUP_WAIT_MS` | [非交互式](/docs/zh-CN/headless) 会话的第一个转弯等待仍在连接的 MCP 服务器的毫秒数,代替默认 [第一个转弯等待](/docs/zh-CN/agent-sdk/mcp#connection-timing)。设置时,等待涵盖每个待处理的服务器。设置为 `0` 以跳过等待。[`--permission-prompt-tool`](/docs/zh-CN/cli-reference#cli-flags) 服务器无论值如何都保持自己的 `MCP_TIMEOUT` 等待。需要 Claude Code v2.1.274 或更高版本 |327| `CLAUDE_CODE_MCP_STARTUP_WAIT_MS` | [非交互](/docs/zh-CN/headless) 会话的第一个转向等待仍在连接的 MCP 服务器的毫秒数,代替默认 [首转等待](/docs/zh-CN/agent-sdk/mcp#connection-timing)。设置时,等待涵盖每个待处理的服务器。设置为 `0` 以跳过等待。[`--permission-prompt-tool`](/docs/zh-CN/cli-reference#cli-flags) 服务器无论该值如何都保持其自己的 `MCP_TIMEOUT` 等待。需要 Claude Code v2.1.274 或更高版本 |

328| `CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT` | MCP 工具调用的空闲超时时间(以毫秒为单位)。当 stdio、HTTP、SSE、WebSocket 或 [claude.ai 连接器](/docs/zh-CN/mcp#use-mcp-servers-from-claude-ai) MCP 服务器在这么长时间内没有发送响应和没有进度通知时,工具调用中止,显示错误,而不是等待整体 `MCP_TOOL_TIMEOUT`。覆盖网络服务器的 300000(5 分钟)和 stdio 服务器的 1800000(30 分钟)的每个传输默认值。设置为 `0` 以禁用空闲检查。低于 1000 的值提高到一秒,值上限为有效 `MCP_TOOL_TIMEOUT`。`.mcp.json` 中的每个服务器 `timeout` 至少 1000 会将该服务器的空闲窗口提高到至少 `timeout` 值。不适用于 IDE 服务器或 SDK 进程内服务器。需要 Claude Code v2.1.187 或更高版本。在 v2.1.203 之前,stdio 服务器免除空闲超时 |328| `CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT` | MCP 工具调用的空闲超时时间(毫秒)。当 stdio、HTTP、SSE、WebSocket 或 [claude.ai 连接器](/docs/zh-CN/mcp#use-mcp-servers-from-claude-ai) MCP 服务器长时间不发送响应和进度通知时,工具调用中止并出现错误,而不是等待整体 `MCP_TOOL_TIMEOUT`。覆盖网络服务器的 300000(5 分钟)和 stdio 服务器的 1800000(30 分钟)的每个传输默认值。设置为 `0` 以禁用空闲检查。低于 1000 的值提高到一秒,值上限为有效 `MCP_TOOL_TIMEOUT`。`.mcp.json` 中至少 1000 的每个服务器 `timeout` 将该服务器的空闲窗口提高到至少 `timeout` 值。不适用于 IDE 服务器或 SDK 进程内服务器。需要 Claude Code v2.1.187 或更高版本。在 v2.1.203 之前,stdio 服务器免除空闲超时 |

329| `CLAUDE_CODE_MESSAGING_SOCKET` | 由 Claude Code 设置,不由您设置:在绑定 [收件箱套接字](/docs/zh-CN/cross-session-messaging#the-sessions-inbox-socket) 的会话中,Claude Code 在绑定套接字时将该套接字的路径导出到 hooks 和 Bash 命令。在以消息打开启动的会话中,Claude Code 在任何 hook 运行之前绑定套接字。机器上的其他会话将消息传递到此路径。每个会话导出自己的套接字而不是从父级继承的套接字,到达它的消息通过会话的 [入站控制](/docs/zh-CN/cross-session-messaging#control-inbound-messages) 进行。设置 `env` 块无法设置它。需要 Claude Code v2.1.224 或更高版本 |329| `CLAUDE_CODE_MESSAGING_SOCKET` | 由 Claude Code 设置,不由您设置:在绑定 [收件箱套接字](/docs/zh-CN/cross-session-messaging#the-sessions-inbox-socket) 的会话中,Claude Code 在绑定套接字时将该套接字的路径导出到 hooks 和 Bash 命令。在以启用消息传递开始的会话中,Claude Code 在任何 hook 运行之前绑定套接字。机器上的其他会话将消息传递到此路径。每个会话导出其自己的套接字而不是从父级继承的套接字,到达它的消息通过会话的 [入站控制](/docs/zh-CN/cross-session-messaging#control-inbound-messages) 进行。设置 `env` 块无法设置它。需要 Claude Code v2.1.224 或更高版本 |

330| `CLAUDE_CODE_MESSAGING_TOKEN` | 由 Claude Code 设置,不由您设置:在绑定 [收件箱套接字](/docs/zh-CN/cross-session-messaging#the-sessions-inbox-socket) 的会话中,Claude Code 将此每个会话令牌与 `CLAUDE_CODE_MESSAGING_SOCKET` 一起导出到 hooks 和 Bash 命令。发布到套接字的脚本可以发送 `{"type":"auth","token":"<token>"}` 作为其第一行以证明它属于会话。在本机 Windows 上,Claude Code 需要此行并关闭任何不以有效行打开的连接。[自有子规则](/docs/zh-CN/cross-session-messaging#the-sessions-inbox-socket) 说明 Claude Code 何时查询令牌。每个会话导出自己的令牌,从不从父会话继承的令牌。设置 `env` 块无法设置它。需要 Claude Code v2.1.228 或更高版本 |330| `CLAUDE_CODE_MESSAGING_TOKEN` | 由 Claude Code 设置,不由您设置:在绑定 [收件箱套接字](/docs/zh-CN/cross-session-messaging#the-sessions-inbox-socket) 的会话中,Claude Code 将此每个会话令牌与 `CLAUDE_CODE_MESSAGING_SOCKET` 一起导出到 hooks 和 Bash 命令。发布到套接字的脚本可以发送 `{"type":"auth","token":"<token>"}` 作为其第一行来证明它属于会话。在本机 Windows 上,Claude Code 需要此行并关闭任何不以有效行打开的连接。[自有子规则](/docs/zh-CN/cross-session-messaging#the-sessions-inbox-socket) 说明 Claude Code 何时查询令牌。每个会话导出其自己的令牌,从不从父会话继承的令牌。设置 `env` 块无法设置它。需要 Claude Code v2.1.228 或更高版本 |

331| `CLAUDE_CODE_NATIVE_CURSOR` | 设置为 `1` 以在输入插入符处显示终端自己的光标而不是绘制的块。光标尊重终端的闪烁、形状和焦点设置 |331| `CLAUDE_CODE_NATIVE_CURSOR` | 设置为 `1` 以在输入插入符处显示终端自己的光标,而不是绘制的块。光标尊重终端的闪烁、形状和焦点设置 |

332| `CLAUDE_CODE_NEW_INIT` | 设置为 `1` 以使 `/init` 运行交互式设置流程。流程在探索代码库并写入它们之前询问要生成哪些文件,包括 CLAUDE.md、skills 和 hooks。没有此变量,`/init` 自动生成 CLAUDE.md 而不提示 |332| `CLAUDE_CODE_NEW_INIT` | 设置为 `1` 以使 `/init` 运行交互式设置流程。流程询问要生成哪些文件,包括 CLAUDE.md、skills 和 hooks,然后探索代码库并写入它们。没有此变量,`/init` 自动生成 CLAUDE.md 而不提示 |

333| `CLAUDE_CODE_NONBLOCKING_STDOUT` | 设置为 `1` 以通过第二个非阻塞文件描述符写入终端输出,因此停止读取的终端(如暂停的 tmux 控制模式窗格或停滞的 SSH 连接)无法在会话中期冻结 Claude Code。在 macOS、Linux 和 WSL 上应用,当 stdout 是终端时。需要 Claude Code v2.1.261 或更高版本 |333| `CLAUDE_CODE_NONBLOCKING_STDOUT` | 设置为 `1` 以通过第二个非阻塞文件描述符写入终端输出,因此停止读取的终端(如暂停的 tmux 控制模式窗格或停滞的 SSH 连接)无法在会话中途冻结 Claude Code。在 macOS、Linux 和 WSL 上应用,当 stdout 是终端时。需要 Claude Code v2.1.261 或更高版本 |

334| `CLAUDE_CODE_NO_FLICKER` | 设置为 `1` 以启用 [全屏呈现](/docs/zh-CN/fullscreen),一个减少闪烁并在长对话中保持内存平坦的研究预览。覆盖 [`tui`](/docs/zh-CN/settings-reference#tui) 设置;您也可以使用 `/tui fullscreen` 切换 |334| `CLAUDE_CODE_NO_FLICKER` | 设置为 `1` 以启用 [全屏呈现](/docs/zh-CN/fullscreen),一个减少闪烁并在长对话中保持内存平坦的研究预览。覆盖 [`tui`](/docs/zh-CN/settings-reference#tui) 设置;您也可以使用 `/tui fullscreen` 切换 |

335| `CLAUDE_CODE_OAUTH_REFRESH_TOKEN` | Claude.ai 身份验证的 OAuth 刷新令牌。设置时,`claude auth login` 直接交换此令牌而不是打开浏览器。需要 `CLAUDE_CODE_OAUTH_SCOPES`。对于在自动化环境中配置身份验证很有用 |335| `CLAUDE_CODE_OAUTH_REFRESH_TOKEN` | Claude.ai 身份验证的 OAuth 刷新令牌。设置时,`claude auth login` 直接交换此令牌而不是打开浏览器。需要 `CLAUDE_CODE_OAUTH_SCOPES`。对于在自动化环境中配置身份验证很有用 |

336| `CLAUDE_CODE_OAUTH_SCOPES` | 刷新令牌颁发的空格分隔 OAuth 范围,例如 `"user:profile user:inference user:sessions:claude_code"`。设置 `CLAUDE_CODE_OAUTH_REFRESH_TOKEN` 时需要 |336| `CLAUDE_CODE_OAUTH_SCOPES` | 刷新令牌颁发的空格分隔 OAuth 范围,例如 `"user:profile user:inference user:sessions:claude_code"`。设置 `CLAUDE_CODE_OAUTH_REFRESH_TOKEN` 时为必需 |

337| `CLAUDE_CODE_OAUTH_TOKEN` | claude.ai 身份验证的 OAuth 访问令牌。`/login` 对 SDK 和自动化环境的替代方案。优先于钥匙串存储的凭证。使用 [`claude setup-token`](/docs/zh-CN/authentication#generate-a-long-lived-token) 生成一个。除非您运行 [`/login`](/docs/zh-CN/authentication#authentication-precedence),Claude Code 为整个会话使用您设置的令牌。要替换过期的令牌,生成一个新令牌并重启 |337| `CLAUDE_CODE_OAUTH_TOKEN` | claude.ai 身份验证的 OAuth 访问令牌。`/login` 对于 SDK 和自动化环境的替代方案。优先于钥匙串存储的凭证。使用 [`claude setup-token`](/docs/zh-CN/authentication#generate-a-long-lived-token) 生成一个。除非您运行 [`/login`](/docs/zh-CN/authentication#authentication-precedence),Claude Code 为整个会话使用您设置的令牌。要替换过期的令牌,生成一个新令牌并重启 |

338| `CLAUDE_CODE_OPUS_4_6_FAST_MODE_OVERRIDE` | 在 v2.1.160 中删除,现在是无操作。以前将 [快速模式](/docs/zh-CN/fast-mode) 固定到 Claude Opus 4.6 而不是当前默认值。Opus 4.6 不再支持快速模式 |338| `CLAUDE_CODE_OPUS_4_6_FAST_MODE_OVERRIDE` | 在 v2.1.160 中删除,现在是无操作。以前将 [快速模式](/docs/zh-CN/fast-mode) 固定到 Claude Opus 4.6 而不是当前默认值。Opus 4.6 不再支持快速模式 |

339| `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` | 内容承载 OpenTelemetry 属性(模型响应、工具内容、系统提示、原始 API 正文)的最大长度,截断标记包括在内,以 UTF-16 代码单位为单位(默认值:61440,即 60 KB)。仅当您的遥测后端接受大于 64 KB 的属性值时才提高它,或降低它以减少遥测量。需要 Claude Code v2.1.214 或更高版本。请参阅 [监控](/docs/zh-CN/monitoring-usage) |339| `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` | 内容承载 OpenTelemetry 属性(模型响应、工具内容、系统提示、原始 API 正文)的最大长度,截断标记包括在内,以 UTF-16 代码单位为单位(默认值:61440,即 60 KB)。仅当您的遥测后端接受大于 64 KB 的属性值时才提高它,或降低它以减少遥测量。需要 Claude Code v2.1.214 或更高版本。参见 [监控](/docs/zh-CN/monitoring-usage) |

340| `CLAUDE_CODE_OTEL_DIAG_STDERR` | 设置为 `1` 以将 OpenTelemetry 导出器诊断错误写入 stderr。默认情况下这些错误仅与 `--debug` 一起出现,因此配置错误的导出器(如 Prometheus 端口冲突)否则会无声地失败。需要 Claude Code v2.1.179 或更高版本。请参阅 [监控](/docs/zh-CN/monitoring-usage) |340| `CLAUDE_CODE_OTEL_DIAG_STDERR` | 设置为 `1` 以将 OpenTelemetry 导出器诊断错误写入 stderr。默认情况下,这些错误仅与 `--debug` 一起出现,因此配置错误的导出器(如 Prometheus 端口冲突)否则会无声地失败。需要 Claude Code v2.1.179 或更高版本。参见 [监控](/docs/zh-CN/monitoring-usage) |

341| `CLAUDE_CODE_OTEL_FLUSH_TIMEOUT_MS` | 刷新待处理 OpenTelemetry 跨度的超时时间(以毫秒为单位)(默认值:5000)。请参阅 [监控](/docs/zh-CN/monitoring-usage) |341| `CLAUDE_CODE_OTEL_FLUSH_TIMEOUT_MS` | 刷新待处理 OpenTelemetry 跨度的超时时间(毫秒)(默认值:5000)。参见 [监控](/docs/zh-CN/monitoring-usage) |

342| `CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS` | 刷新动态 OpenTelemetry 标头的间隔(以毫秒为单位)(默认值:1740000 / 29 分钟)。请参阅 [动态标头](/docs/zh-CN/monitoring-usage#dynamic-headers) |342| `CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS` | 刷新动态 OpenTelemetry 标头的间隔(毫秒)(默认值:1740000 / 29 分钟)。参见 [动态标头](/docs/zh-CN/monitoring-usage#dynamic-headers) |

343| `CLAUDE_CODE_OTEL_SHUTDOWN_TIMEOUT_MS` | OpenTelemetry 导出器在关闭时完成的超时时间(以毫秒为单位)(默认值:2000)。如果指标在退出时被删除,请增加。请参阅 [监控](/docs/zh-CN/monitoring-usage) |343| `CLAUDE_CODE_OTEL_SHUTDOWN_TIMEOUT_MS` | OpenTelemetry 导出器在关闭时完成的超时时间(毫秒)(默认值:2000)。如果指标在退出时被删除,请增加。参见 [监控](/docs/zh-CN/monitoring-usage) |

344| `CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATE` | 设置为 `1` 以让 Claude Code 在新版本可用时在后台运行您的包管理器的升级命令。适用于 Homebrew 和 WinGet 安装。其他包管理器继续显示升级命令而不运行它。请参阅 [自动更新](/docs/zh-CN/setup#auto-updates) |344| `CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATE` | 设置为 `1` 以让 Claude Code 在新版本可用时在后台运行您的包管理器的升级命令。适用于 Homebrew 和 WinGet 安装。其他包管理器继续显示升级命令而不运行它。参见 [自动更新](/docs/zh-CN/setup#auto-updates) |

345| `CLAUDE_CODE_PERFORCE_MODE` | 设置为 `1` 以启用 Perforce 感知写入保护。设置时,如果目标文件缺少所有者写入位(Perforce 在同步文件上清除,直到 `p4 edit` 打开它们),Edit、Write 和 NotebookEdit 会失败,显示 `p4 edit <file>` 提示。这防止 Claude Code 绕过 Perforce 更改跟踪 |345| `CLAUDE_CODE_PERFORCE_MODE` | 设置为 `1` 以启用 Perforce 感知写入保护。设置时,如果目标文件缺少所有者写入位(Perforce 在同步文件上清除,直到 `p4 edit` 打开它们),Edit、Write 和 NotebookEdit 会失败并显示 `p4 edit <file>` 提示。这可以防止 Claude Code 绕过 Perforce 更改跟踪 |

346| `CLAUDE_CODE_PLUGIN_CACHE_DIR` | 覆盖插件根目录。尽管名称如此,这设置了父目录,而不是缓存本身:市场和插件缓存位于此路径下的子目录中。默认为 `~/.claude/plugins` |346| `CLAUDE_CODE_PLUGIN_CACHE_DIR` | 覆盖插件根目录。尽管名称如此,这设置了父目录,而不是缓存本身:市场和插件缓存位于此路径下的子目录中。默认为 `~/.claude/plugins` |

347| `CLAUDE_CODE_PLUGIN_DIRS` | 要为会话加载的插件目录,每个加载方式与 [`--plugin-dir`](/docs/zh-CN/plugins/cli-reference#flags-that-load-a-plugin-for-one-session) 标志加载它的方式相同。在 Unix 上用 `:` 分隔多个路径,在 Windows 上用 `;` 分隔。将每个路径作为绝对路径给出或以 `~` 开头,因为 Claude Code 跳过相对路径。需要 Claude Code v2.1.280 或更高版本。请参阅 [为一个会话加载插件](/docs/zh-CN/plugins/create#load-a-directory-or-archive-for-one-session) |347| `CLAUDE_CODE_PLUGIN_DIRS` | 为会话加载的插件目录,每个加载方式为 [`--plugin-dir`](/docs/zh-CN/plugins/cli-reference#flags-that-load-a-plugin-for-one-session) 标志加载它。在 Unix 上用 `:` 分隔多个路径,在 Windows 上用 `;` 分隔。将每个路径作为绝对路径给出或以 `~` 开头,因为 Claude Code 跳过相对路径。需要 Claude Code v2.1.280 或更高版本。参见 [为一个会话加载插件](/docs/zh-CN/plugins/create#load-a-directory-or-archive-for-one-session) |

348| `CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS` | 克隆或刷新插件市场的超时时间(以毫秒为单位)(默认值:120000)。对于大型存储库或缓慢网络连接,增加此值。请参阅 [Git 克隆超时](/docs/zh-CN/plugins/troubleshooting#git-clone-timed-out-after-120s) |348| `CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS` | 克隆或刷新插件市场的超时时间(毫秒)(默认值:120000)。对于大型存储库或缓慢网络连接,增加此值。参见 [Git 克隆在 120 秒后超时](/docs/zh-CN/plugins/troubleshooting#git-clone-timed-out-after-120s) |

349| `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE` | 设置为 `1` 以在市场刷新无法到达或验证远程时跳过重新克隆尝试并继续使用现有市场检出。在离线或隔离环境中很有用,其中重新克隆会以相同方式失败。请参阅 [市场更新在离线环境中失败](/docs/zh-CN/plugins/troubleshooting#marketplace-updates-keep-failing-offline) |349| `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE` | 设置为 `1` 以在市场刷新无法到达或验证远程时跳过重新克隆尝试并继续使用现有市场检出。在离线或隔离环境中很有用,其中重新克隆会以相同方式失败。参见 [市场更新在离线环境中继续失败](/docs/zh-CN/plugins/troubleshooting#marketplace-updates-keep-failing-offline) |

350| `CLAUDE_CODE_PLUGIN_PREFER_HTTPS` | 设置为 `1` 以通过 HTTPS 而不是 SSH 克隆 GitHub `owner/repo` 速记源。适用于插件安装和更新,以及 `/plugin marketplace add` 和 `update`。在 CI 运行器、容器或任何没有为 `github.com` 配置 SSH 密钥的环境中很有用 |350| `CLAUDE_CODE_PLUGIN_PREFER_HTTPS` | 设置为 `1` 以通过 HTTPS 而不是 SSH 克隆 GitHub `owner/repo` 速记源。适用于插件安装和更新,以及 `/plugin marketplace add` 和 `update`。在 CI 运行器、容器或任何没有为 `github.com` 配置 SSH 密钥的环境中很有用 |

351| `CLAUDE_CODE_PLUGIN_SEED_DIR` | 一个或多个只读插件种子目录的路径,在 Unix 上用 `:` 分隔,在 Windows 上用 `;` 分隔。使用此选项将预填充的插件目录捆绑到容器镜像中。Claude Code 在启动时从这些目录注册市场,并使用预缓存的插件而不重新克隆。请参阅 [为容器预填充插件](/docs/zh-CN/plugins/org#seed-containers-and-ci) |351| `CLAUDE_CODE_PLUGIN_SEED_DIR` | 一个或多个只读插件种子目录的路径,在 Unix 上用 `:` 分隔,在 Windows 上用 `;` 分隔。使用此选项将预填充的插件目录捆绑到容器镜像中。Claude Code 在启动时从这些目录注册市场,并使用预缓存的插件而不重新克隆。参见 [为容器预填充插件](/docs/zh-CN/plugins/org#seed-containers-and-ci) |

352| `CLAUDE_CODE_POWERSHELL_RESPECT_EXECUTION_POLICY` | 设置为 `1` 以停止 Claude Code 在为工具调用、hooks 和状态行命令生成 PowerShell 时传递 `-ExecutionPolicy Bypass`,并改为尊重机器的有效执行策略。默认情况下 Claude Code 在进程范围内绕过执行策略,以便 `.ps1` 脚本和模块导入在默认受限的 Windows 安装上工作。进程范围绕过从不覆盖 Group Policy `MachinePolicy` 或 `UserPolicy`,无论此设置如何 |352| `CLAUDE_CODE_POWERSHELL_RESPECT_EXECUTION_POLICY` | 设置为 `1` 以停止 Claude Code 在为工具调用、hooks 和状态行命令生成 PowerShell 时传递 `-ExecutionPolicy Bypass`,并改为尊重机器的有效执行策略。默认情况下,Claude Code 在进程范围内绕过执行策略,以便 `.ps1` 脚本和模块导入在默认受限的 Windows 安装上工作。进程范围绕过无论此设置如何都永远不会覆盖 Group Policy `MachinePolicy` 或 `UserPolicy` |

353| `CLAUDE_CODE_PRINT_BG_WAIT_CEILING_MS` | 在 [非交互模式](/docs/zh-CN/headless#background-tasks-at-exit) 中使用 `-p` 标志的最后转弯后,等待后台子代理和工作流的空闲等待的上限(以毫秒为单位)。空闲等待在 Claude 采取转弯处理后台结果时重新开始。默认值:`600000`,或 10 分钟。当空闲等待达到上限时,Claude Code 停止等待剩余的后台任务并退出。设置为 `0` 以无限期等待。此上限与适用于纯后台 shell 的五秒宽限期分开。需要 Claude Code v2.1.182 或更高版本 |353| `CLAUDE_CODE_PRINT_BG_WAIT_CEILING_MS` | 在 [非交互模式](/docs/zh-CN/headless#background-tasks-at-exit) 中使用 `-p` 标志后,在最后一个转向后等待后台子代理和工作流的空闲等待的上限(毫秒)。每次 Claude 采取转向处理后台结果时,空闲等待重新开始。默认值:`600000`,或 10 分钟。当空闲等待达到上限时,Claude Code 停止等待剩余的后台任务并退出。设置为 `0` 以无限期等待。此上限与适用于纯后台 shell 的五秒宽限期分开。需要 Claude Code v2.1.182 或更高版本 |

354| `CLAUDE_CODE_PROCESS_WRAPPER` | 通过给定为 argv 前缀的公司启动器(如 `/opt/corp/launcher`)启动 Claude Code 从其自己的二进制文件启动的进程,例如托管 [代理视图](/docs/zh-CN/agent-view) 会话的后台服务。在用户或 [托管设置](/docs/zh-CN/managed-settings) 的 `env` 块中设置它,而不是作为 shell 导出,以便分离的后台服务继承它;项目和本地设置无法设置它。等同于 [`processWrapper` 设置](/docs/zh-CN/settings-reference#processwrapper),需要 Claude Code v2.1.210 或更高版本;当两者都设置时此变量优先。VS Code 扩展通过其 `claudeProcessWrapper` 设置单独配置自己的启动器。在 Windows 上被忽略。请参阅 [在公司启动器后面运行 Claude Code](/docs/zh-CN/corporate-launcher) 了解值格式、启动器涵盖的内容以及启动器必须满足的合同。需要 Claude Code v2.1.208 或更高版本 |354| `CLAUDE_CODE_PROCESS_WRAPPER` | 通过给定为 argv 前缀(如 `/opt/corp/launcher`)的企业启动器启动 Claude Code 从其自己的二进制文件启动的进程,例如托管 [代理视图](/docs/zh-CN/agent-view) 会话的后台服务。在用户或 [托管设置](/docs/zh-CN/managed-settings) 的 `env` 块中设置它,而不是作为 shell 导出,以便分离的后台服务继承它;项目和本地设置无法设置它。等同于 [`processWrapper` 设置](/docs/zh-CN/settings-reference#processwrapper),需要 Claude Code v2.1.210 或更高版本;当两者都设置时,此变量优先。VS Code 扩展通过其 `claudeProcessWrapper` 设置单独配置其自己的启动器。在 Windows 上被忽略。参见 [在企业启动器后面运行 Claude Code](/docs/zh-CN/corporate-launcher) 了解值格式、启动器涵盖的内容以及启动器必须满足的合同。需要 Claude Code v2.1.208 或更高版本 |

355| `CLAUDE_CODE_PROJECT_DIR_NAME` | 与 `CLAUDE_CONFIG_DIR` 一起设置以选择 `projects/` 目录名称 Claude Code 在其下存储该会话的转录和自动内存,代替从工作目录路径派生的名称。例如,使用 `CLAUDE_CONFIG_DIR=/srv/tenant-a CLAUDE_CODE_PROJECT_DIR_NAME=work claude` 启动 Claude Code 在 `/srv/tenant-a/projects/work/` 下存储它们。当 `CLAUDE_CONFIG_DIR` 未设置时,Claude Code 忽略此变量,并仅从启动 `claude` 的环境读取它,从不从 [设置文件 `env` 块](#in-settings-files)。请参阅 [自己命名项目目录](/docs/zh-CN/sessions#name-the-project-directory-yourself)。需要 Claude Code v2.1.234 或更高版本 |355| `CLAUDE_CODE_PROJECT_DIR_NAME` | 与 `CLAUDE_CONFIG_DIR` 一起设置以选择 `projects/` 目录名称 Claude Code 在其下存储该会话的成绩单和自动内存,代替从工作目录路径派生的名称。例如,使用 `CLAUDE_CONFIG_DIR=/srv/tenant-a CLAUDE_CODE_PROJECT_DIR_NAME=work claude` 启动 Claude Code 在 `/srv/tenant-a/projects/work/` 下存储它们。当 `CLAUDE_CONFIG_DIR` 未设置时,Claude Code 忽略此变量,并仅从启动 `claude` 的环境读取它,从不从 [设置文件 `env` 块](#in-settings-files)。参见 [自己命名项目目录](/docs/zh-CN/sessions#name-the-project-directory-yourself)。需要 Claude Code v2.1.234 或更高版本 |

356| `CLAUDE_CODE_PROMPT_CACHE_TTL` | 设置 `5m` 或 `1h`,Claude Code 接受的唯一值,以选择主对话的 [提示缓存 TTL](/docs/zh-CN/prompt-caching#cache-lifetime):您的交互式、`-p` 和 SDK 转弯,加上与它们内联运行的帮助程序。优先于 `promptCacheTtl` 设置和 `ENABLE_PROMPT_CACHING_1H`,`FORCE_PROMPT_CACHING_5M` 覆盖它。API 以更高的速率计费 1 小时缓存写入。需要 Claude Code v2.1.242 或更高版本 |356| `CLAUDE_CODE_PROMPT_CACHE_TTL` | 设置 `5m` 或 `1h`,Claude Code 接受的唯一值,以选择主对话的 [提示缓存 TTL](/docs/zh-CN/prompt-caching#cache-lifetime):您的交互式、`-p` 和 SDK 转向,加上与它们内联运行的帮助程序。优先于 `promptCacheTtl` 设置和 `ENABLE_PROMPT_CACHING_1H`,`FORCE_PROMPT_CACHING_5M` 覆盖它。API 以更高的速率计费 1 小时缓存写入。需要 Claude Code v2.1.242 或更高版本 |

357| `CLAUDE_CODE_PROPAGATE_TRACEPARENT` | 设置为 `1` 以在 `ANTHROPIC_BASE_URL` 指向自定义代理时传播 W3C 跟踪上下文。传播涵盖模型和 HTTP MCP 请求上的 `traceparent` 标头以及 Bash、PowerShell 和 hook 子进程的 `TRACEPARENT` 环境变量。默认情况下,传播仅在直接连接到 Anthropic API 时启用。在 v2.1.152 中添加。请参阅 [跟踪(测试版)](/docs/zh-CN/monitoring-usage#traces-beta) |357| `CLAUDE_CODE_PROPAGATE_TRACEPARENT` | 设置为 `1` 以在 `ANTHROPIC_BASE_URL` 指向自定义代理时传播 W3C 跟踪上下文。传播涵盖模型和 HTTP MCP 请求上的 `traceparent` 标头以及 Bash、PowerShell 和 hook 子进程的 `TRACEPARENT` 环境变量。默认情况下,传播仅在直接连接到 Anthropic API 时启用。在 v2.1.152 中添加。参见 [跟踪(测试版)](/docs/zh-CN/monitoring-usage#traces-beta) |

358| `CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST` | 由嵌入 Claude Code 并代表其管理模型提供商路由的主机平台设置。设置时,Claude Code 忽略设置文件中的提供商选择、端点和身份验证变量(如 `CLAUDE_CODE_USE_BEDROCK`、`ANTHROPIC_BASE_URL` 和 `ANTHROPIC_API_KEY`),因此用户设置无法覆盖主机的路由。Claude Code 也忽略 [托管设置](/docs/zh-CN/managed-settings) 中的模型选择密钥(如 `model`、`fallbackModel` 和 `modelOverrides`),无论哪个托管源传递它们,因此主机的模型配置优先于过时的托管模型固定。Claude Code 也忽略托管 `env` 块中的模型选择变量(如 `ANTHROPIC_MODEL` 和 `ANTHROPIC_DEFAULT_*_MODEL` 系列);托管设置中的 [`availableModels`](/docs/zh-CN/model-config#restrict-model-selection) 允许列表仍然适用,除非主机提供自己的。Claude Code 也跳过它在第三方提供商(如 Amazon Bedrock、Claude Platform on AWS、Google Cloud's Agent Platform 和 Microsoft Foundry)上应用的自动遥测选择退出,因此遥测遵循标准 `DISABLE_TELEMETRY` 选择退出。请参阅 [按 API 提供商的默认行为](/docs/zh-CN/data-usage#default-behaviors-by-api-provider) |358| `CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST` | 由嵌入 Claude Code 并代表其管理模型提供商路由的主机平台设置。设置时,Claude Code 在设置文件中忽略提供商选择、端点和身份验证变量(如 `CLAUDE_CODE_USE_BEDROCK`、`ANTHROPIC_BASE_URL` 和 `ANTHROPIC_API_KEY`),因此用户设置无法覆盖主机的路由。Claude Code 也忽略 [托管设置](/docs/zh-CN/managed-settings) 中的模型选择密钥(如 `model`、`fallbackModel` 和 `modelOverrides`),无论哪个托管源传递它们,因此主机的模型配置优先于过期的托管模型固定。Claude Code 也忽略托管 `env` 块中的模型选择变量(如 `ANTHROPIC_MODEL` 和 `ANTHROPIC_DEFAULT_*_MODEL` 系列);托管设置中的 [`availableModels`](/docs/zh-CN/model-config#restrict-model-selection) 允许列表仍然适用,除非主机提供其自己的。Claude Code 也跳过它在第三方提供商(如 Amazon Bedrock、Claude Platform on AWS、Google Cloud's Agent Platform 和 Microsoft Foundry)上否则应用的自动遥测选择退出,因此遥测遵循标准 `DISABLE_TELEMETRY` 选择退出。参见 [按 API 提供商的默认行为](/docs/zh-CN/data-usage#default-behaviors-by-api-provider) |

359| `CLAUDE_CODE_PROXY_RESOLVES_HOSTS` | 设置为 `1` 以允许代理执行 DNS 解析而不是调用者。对于代理应处理主机名解析的环境选择加入 |359| `CLAUDE_CODE_PROXY_RESOLVES_HOSTS` | 设置为 `1` 以允许代理执行 DNS 解析而不是调用者。对于代理应处理主机名解析的环境选择加入 |

360| `CLAUDE_CODE_REMOTE` | 当 Claude Code 作为 [云会话](/docs/zh-CN/claude-code-on-the-web) 运行时自动设置为 `true`。从 hook 或设置脚本读取此项以检测您是否在云会话中 |360| `CLAUDE_CODE_REMOTE` | 当 Claude Code 作为 [云会话](/docs/zh-CN/claude-code-on-the-web) 运行时自动设置为 `true`。从 hook 或设置脚本读取此项以检测您是否在云会话中 |

361| `CLAUDE_CODE_REMOTE_SESSION_ID` | 在 [云会话](/docs/zh-CN/claude-code-on-the-web) 中自动设置为当前会话的 ID。读取此项以构造回到会话转录的链接。请参阅 [将输出链接回会话](/docs/zh-CN/cloud-environments#link-output-back-to-the-session) |361| `CLAUDE_CODE_REMOTE_SESSION_ID` | 在 [云会话](/docs/zh-CN/claude-code-on-the-web) 中自动设置为当前会话的 ID。读取此项以构造回到会话成绩单的链接。参见 [将输出链接回会话](/docs/zh-CN/cloud-environments#link-output-back-to-the-session) |

362| `CLAUDE_CODE_RESTRICTED` | 设置为 `1` 以在受限模式下启动会话,与传递 [`--restricted`](/docs/zh-CN/cli-reference#cli-flags) 相同。Claude Code 在设置文件的 `env` 块中忽略此变量。需要 Claude Code v2.1.248 或更高版本 |362| `CLAUDE_CODE_RESTRICTED` | 设置为 `1` 以在受限模式下启动会话,与传递 [`--restricted`](/docs/zh-CN/cli-reference#cli-flags) 相同。Claude Code 在设置文件的 `env` 块中忽略此变量。需要 Claude Code v2.1.248 或更高版本 |

363| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` | 设置为 `1` 以在前一个会话在转弯中期结束时自动恢复。在 SDK 模式中使用,以便模型继续而不需要 SDK 重新发送提示。要关闭此功能,取消设置变量或将其设置为 `0`。在 v2.1.221 之前,Claude Code 忽略 `0` 和其他虚假值,因此在非交互模式中设置 `0` 仍会触发恢复,取消设置变量是关闭它的唯一方法 |363| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` | 设置为 `1` 以在前一个会话在转向中途结束时自动恢复。在 SDK 模式中使用,以便模型继续而不需要 SDK 重新发送提示。要关闭此功能,取消设置变量或将其设置为 `0`。在 v2.1.221 之前,Claude Code 忽略 `0` 和其他虚假值,因此设置 `0` 仍在非交互模式中触发恢复,取消设置变量是关闭它的唯一方法 |

364| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN_MAX_AGE_MS` | 最后转录消息的最大年龄(以毫秒为单位),用于在恢复时在转弯中期结束的会话自动继续。当最后一条消息比此界限更旧时,Claude Code 跳过 `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` 自动恢复和注入的 `CLAUDE_CODE_RESUME_PROMPT` 继续消息,会话启动空闲,以便您明确继续。未设置或 `0` 意味着没有界限,除了最后一个请求因 API 错误失败的转弯仅在该错误少于六小时时恢复。正值界限每个转弯,包括那些;负值或非数值值应用一小时界限。长时间运行的代理的生成脚本可以设置此项,以便针对旧转录的重启不会重新运行陈旧的提示。Claude Code 在重启继承其对话的崩溃 [代理视图](/docs/zh-CN/agent-view) 会话时自己设置一小时界限。需要 Claude Code v2.1.211 或更高版本 |364| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN_MAX_AGE_MS` | 最后成绩单消息的最大年龄(毫秒),用于在中途结束的会话在恢复时继续自动。当最后一条消息比此界限更旧时,Claude Code 跳过 `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` 自动恢复及其 `CLAUDE_CODE_RESUME_PROMPT` 继续消息,会话启动空闲,以便您显式继续。未设置或 `0` 意味着没有界限,除了最后一个请求因 API 错误失败的转向仅在该错误少于六小时时恢复。正值界限每个转向,包括那些;负值或非数值值应用一小时界限。长时间运行的代理的生成脚本可以设置此项,以便针对旧成绩单的重启不会重新运行陈旧的提示。Claude Code 在重启继承其对话的崩溃 [代理视图](/docs/zh-CN/agent-view) 会话时自己设置一小时界限。需要 Claude Code v2.1.211 或更高版本 |

365| `CLAUDE_CODE_RESUME_PROMPT` | 覆盖在恢复在转弯中期结束的会话时注入的继续消息,或当您使用 `-p` [恢复延迟的工具调用](/docs/zh-CN/hooks#defer-a-tool-call-for-later) 时。默认为 `Continue from where you left off.`。空字符串使用默认值 |365| `CLAUDE_CODE_RESUME_PROMPT` | 覆盖当 `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` 继续中断的转向而不是重新发送其提示时,或当您使用 `-p` 恢复 [延迟的工具调用](/docs/zh-CN/hooks#defer-a-tool-call-for-later) 时,Claude Code 发送给 Claude 的继续消息。默认为 `Continue from where you left off.`。空字符串使用默认值 |

366| `CLAUDE_CODE_RETRY_WATCHDOG` | 对于无人值守的会话(如评估工具、CI 作业或远程工作者),设置为 `1`。无限期重试 `429` 和 `529` 容量错误,而不是在 `CLAUDE_CODE_MAX_RETRIES` 尝试后失败。当标准速度请求获得报告支出限制或耗尽使用信用的 `429` 时,Claude Code 立即失败,即使来自 [网关支出上限](/docs/zh-CN/errors#spend-limit-reached) 按计划重置。在 v2.1.239 之前,监视程序无限期重试这些。对于快速模式请求,请参阅 [处理速率限制](/docs/zh-CN/fast-mode#handle-rate-limits)。监视程序在尝试之间退避最多 5 分钟,或直到限制重置(当响应携带速率限制重置时间时),因此命中使用限制的会话等待剩余窗口。在 v2.1.199 或更高版本上,它也为其他瞬时错误(如服务器错误、超时和丢弃的连接)提高默认重试计数到 300,大约三小时的退避,如果您明确设置该变量,则删除 `CLAUDE_CODE_MAX_RETRIES` 的 15 上限。需要 Claude Code v2.1.186 或更高版本 |366| `CLAUDE_CODE_RETRY_WATCHDOG` | 对于无人值守的会话(如 eval 工具、CI 作业或远程工作者),设置为 `1`。无限期重试 `429` 和 `529` 容量错误,而不是在 `CLAUDE_CODE_MAX_RETRIES` 尝试后失败。当标准速度请求获得报告支出限制或耗尽使用信用的 `429` 时,Claude Code 立即失败,即使来自 [网关支出上限](/docs/zh-CN/errors#spend-limit-reached) 的按计划重置。在 v2.1.239 之前,监视程序无限期重试这些。对于快速模式请求,参见 [处理速率限制](/docs/zh-CN/fast-mode#handle-rate-limits)。监视程序在尝试之间退避最多 5 分钟,或直到限制重置(当响应携带速率限制重置时间时),因此达到使用限制的会话等待剩余窗口。在 v2.1.199 或更高版本上,它也为其他瞬时错误(如服务器错误、超时和丢弃的连接)提高默认重试计数到 300,大约三小时的退避,并在您显式设置该变量时删除 `CLAUDE_CODE_MAX_RETRIES` 的 15 上限。需要 Claude Code v2.1.186 或更高版本 |

367| `CLAUDE_CODE_SAFE_MODE` | 设置为 `1` 以在安全模式下启动:CLAUDE.md、skills、插件、hooks、MCP 服务器、自定义命令和代理、输出样式、工作流、自定义主题、自定义快捷键、状态行和文件建议命令、LSP 服务器和自动内存不加载,用于故障排除破损的配置。托管设置策略仍然适用,包括策略配置的 hooks、状态行和文件建议命令;托管插件、托管 skills、托管 CLAUDE.md 和策略配置的 MCP 服务器不加载。等同于传递 [`--safe-mode`](/docs/zh-CN/cli-reference#cli-flags)。直接生成的子进程继承变量 |367| `CLAUDE_CODE_SAFE_MODE` | 设置为 `1` 以在安全模式下启动:CLAUDE.md、skills、插件、hooks、MCP 服务器、自定义命令和代理、输出样式、工作流、自定义主题、自定义快捷键、状态行和文件建议命令、LSP 服务器和自动内存不加载,用于排除故障的破损配置。托管设置策略仍然适用,包括策略配置的 hooks、状态行和文件建议命令;托管插件、托管 skills、托管 CLAUDE.md 和策略配置的 MCP 服务器不适用。等同于传递 [`--safe-mode`](/docs/zh-CN/cli-reference#cli-flags)。直接生成的子进程继承变量 |

368| `CLAUDE_CODE_SCRIPT_CAPS` | JSON 对象限制当设置 `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` 时特定脚本在每个会话中可能被调用的次数。密钥是与命令文本匹配的子字符串;值是整数调用限制。例如,`{"deploy.sh": 2}` 允许 `deploy.sh` 最多被调用两次。匹配是基于子字符串的,因此 shell 扩展技巧(如 `./scripts/deploy.sh $(evil)`)仍然计入上限。运行时通过 `xargs` 或 `find -exec` 的扇出未被检测;这是深度防御控制 |368| `CLAUDE_CODE_SCRIPT_CAPS` | JSON 对象,限制当设置 `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` 时特定脚本在每个会话中可能被调用的次数。密钥是与命令文本匹配的子字符串;值是整数调用限制。例如,`{"deploy.sh": 2}` 允许 `deploy.sh` 最多被调用两次。匹配是基于子字符串的,因此 shell 扩展技巧(如 `./scripts/deploy.sh $(evil)`)仍然计入上限。通过 `xargs` 或 `find -exec` 的运行时扇出未被检测到;这是深度防御控制 |

369| `CLAUDE_CODE_SCROLL_SPEED` | 在 [全屏呈现](/docs/zh-CN/fullscreen#mouse-wheel-scrolling) 中设置鼠标滚轮滚动乘数。接受任何正值最多 20,包括低于 1 的分数值(如 `0.5`)以减慢已经放大滚轮和轨迹板事件的终端中的加速滚轮和轨迹板滚动。设置为 `3` 以匹配 `vim`(如果您的终端在没有放大的情况下每个凹口发送一个滚轮事件)。在 JetBrains IDE 终端中被忽略,Claude Code 在那里使用自己的滚动处理 |369| `CLAUDE_CODE_SCROLL_SPEED` | 在 [全屏呈现](/docs/zh-CN/fullscreen#mouse-wheel-scrolling) 中设置鼠标滚轮滚动乘数。接受任何正值最多 20,包括低于 1 的分数值(如 `0.5`)以减慢已加速的触控板和滚轮滚动在已放大滚轮事件的终端中。设置为 `3` 以匹配 `vim`(如果您的终端每个凹口发送一个滚轮事件而不放大)。在 JetBrains IDE 终端中被忽略,Claude Code 使用其自己的滚动处理 |

370| `CLAUDE_CODE_SEND_FEEDBACK` | 设置为 `0` 以为会话关闭 [Claude 起草的反馈](/docs/zh-CN/tools-reference#sendfeedback-tool-behavior)。设置为 `1` 以在您的帐户已有访问权限的地方打开它;变量本身无法授予访问权限,关闭反馈的其他开关(如 `DISABLE_FEEDBACK_COMMAND` 和 [`feedbackDrafts`](/docs/zh-CN/settings-reference#feedbackdrafts) 设置的 `off` 值)仍然适用 |370| `CLAUDE_CODE_SEND_FEEDBACK` | 设置为 `0` 以为会话关闭 [Claude 起草的反馈](/docs/zh-CN/tools-reference#sendfeedback-tool-behavior)。设置为 `1` 以在您的帐户已有访问权限的地方打开它;变量本身无法授予访问权限,关闭反馈的其他开关(如 `DISABLE_FEEDBACK_COMMAND` 和 [`feedbackDrafts`](/docs/zh-CN/settings-reference#feedbackdrafts) 设置的 `off` 值)仍然适用 |

371| `CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS` | 覆盖 [SessionEnd](/docs/zh-CN/hooks#sessionend) hooks 的时间预算(以毫秒为单位)。值也是未设置自己 `timeout` 的每个 hook 的超时。适用于会话退出、`/clear` 和通过交互式 `/resume` 切换会话。默认预算为 1.5 秒,自动提高到设置文件中配置的最高每个 hook `timeout`,最多 60 秒。插件提供的 hooks 上的超时不提高预算 |371| `CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS` | 覆盖 [SessionEnd](/docs/zh-CN/hooks#sessionend) hooks 的时间预算(毫秒)。该值也是未设置自己 `timeout` 的每个 hook 的超时。适用于会话退出、`/clear` 和通过交互式 `/resume` 切换会话。默认情况下,预算为 1.5 秒,自动提高到设置文件中配置的最高每个 hook `timeout`,最多 60 秒。插件提供的 hooks 上的超时不会提高预算 |

372| `CLAUDE_CODE_SESSION_ID` | 在 Bash 和 PowerShell 工具子进程、[hook 命令](/docs/zh-CN/hooks) 子进程和 stdio [MCP 服务器](/docs/zh-CN/mcp) 子进程中自动设置为当前会话 ID。对于 Bash、PowerShell 和 hooks,这与 hook JSON 输入中的 `session_id` 字段匹配,并在 `/clear` 上更新。MCP 服务器子进程保留它生成时的 ID。在 `--resume <session-id>` 上它接收恢复的 ID,与 hooks 和 Bash 匹配。在 `--continue` 或 `--resume` 没有显式 ID 上它可能接收初始启动 ID。用于将脚本和外部工具与启动它们的 Claude Code 会话相关联 |372| `CLAUDE_CODE_SESSION_ID` | 在 Bash 和 PowerShell 工具子进程、[hook 命令](/docs/zh-CN/hooks) 子进程和 stdio [MCP 服务器](/docs/zh-CN/mcp) 子进程中自动设置为当前会话 ID。对于 Bash、PowerShell 和 hooks,这与 hook JSON 输入中的 `session_id` 字段匹配,并在 `/clear` 上更新。MCP 服务器子进程保留它生成时的 ID。在 `--resume <session-id>` 上,它接收恢复的 ID,与 hooks 和 Bash 匹配。在 `--continue` 或 `--resume` 没有显式 ID 时,它可能接收初始启动 ID。用于将脚本和外部工具与启动它们的 Claude Code 会话相关联 |

373| `CLAUDE_CODE_SHELL` | 设置 Claude Code 用于运行 Bash 工具命令的 shell。接受 `bash` 或 `zsh` 二进制文件的路径,例如 `/opt/homebrew/bin/bash`。不支持 `fish` 等其他 shell。如果值不是工作的 `bash` 或 `zsh` 路径,Claude Code 忽略它并回退到自动检测。自动检测在指向 `bash` 或 `zsh` 时使用您的 `$SHELL`,否则它选择在您的 `PATH` 和标准安装位置上找到的第一个工作 `zsh` 然后 `bash` |373| `CLAUDE_CODE_SHELL` | 设置 Claude Code 用于运行 Bash 工具命令的 shell。接受 `bash` 或 `zsh` 二进制文件的路径,例如 `/opt/homebrew/bin/bash`。不支持 `fish` 等其他 shell。如果值不是工作的 `bash` 或 `zsh` 路径,Claude Code 忽略它并回退到自动检测。自动检测在指向 `bash` 或 `zsh` 时使用您的 `$SHELL`,否则它选择在您的 `PATH` 和标准安装位置上找到的第一个工作 `zsh` 然后 `bash` |

374| `CLAUDE_CODE_SHELL_PREFIX` | 包装 Claude Code 生成的 shell 命令的命令前缀:Bash 工具调用、[hook](/docs/zh-CN/hooks) 命令、[状态行](/docs/zh-CN/statusline) 命令和 stdio [MCP 服务器](/docs/zh-CN/mcp) 启动命令。PowerShell hooks 和 exec 形式 hooks 运行而不带前缀。对于日志记录或审计很有用。设置裸可执行文件路径(如 `/path/to/logger.sh`)将每个命令作为 `/path/to/logger.sh '<command>'` 运行。包装器在 `$1` 中接收命令行作为单个 shell 引用的参数,因此包装器必须用 shell 重新评估 `$1`,例如 `exec bash -c "$1"`。将 `$1` 视为裸可执行文件路径会破坏传递参数的 stdio MCP 服务器,例如 `npx -y <package>`。对于 Bash 工具调用,`$1` 包含 Claude Code 组装的完整 shell 调用,包括环境设置,而不仅仅是 Claude 运行的命令 |374| `CLAUDE_CODE_SHELL_PREFIX` | 包装 Claude Code 生成的 shell 命令的命令前缀:Bash 工具调用、[hook](/docs/zh-CN/hooks) 命令、[状态行](/docs/zh-CN/statusline) 命令和 stdio [MCP 服务器](/docs/zh-CN/mcp) 启动命令。PowerShell hooks 和 exec 形式 hooks 运行而不带前缀。对于日志记录或审计很有用。设置裸可执行文件路径(如 `/path/to/logger.sh`)将每个命令作为 `/path/to/logger.sh '<command>'` 运行。包装器在 `$1` 中接收命令行作为单个 shell 引用的参数,因此包装器必须使用 shell 重新评估 `$1`,例如 `exec bash -c "$1"`。将 `$1` 视为裸可执行文件路径会破坏传递参数的 stdio MCP 服务器,例如 `npx -y <package>`。对于 Bash 工具调用,`$1` 包含 Claude Code 组装的完整 shell 调用,包括环境设置,而不仅仅是 Claude 运行的命令 |

375| `CLAUDE_CODE_SIMPLE` | 设置为 `1` 以使用最小系统提示和仅 Bash、文件读取和文件编辑工具运行。来自 `--mcp-config` 的 MCP 工具仍然可用。禁用 hooks、skills、自定义命令、子代理、插件、MCP 服务器、自动内存和 CLAUDE.md 的自动发现。Skills 在您使用 `--add-dir` 传递的目录中仍然加载。OAuth 令牌和钥匙串凭证不被读取,因此 Anthropic 身份验证必须来自 `ANTHROPIC_API_KEY` 或 `--settings` 中的 `apiKeyHelper`。等同于传递 [`--bare`](/docs/zh-CN/headless#start-faster-with-bare-mode) |375| `CLAUDE_CODE_SIMPLE` | 设置为 `1` 以使用最小系统提示和仅 Bash、文件读取和文件编辑工具运行。来自 `--mcp-config` 的 MCP 工具仍然可用。禁用 hooks、skills、自定义命令、子代理、已安装插件、MCP 服务器、自动内存和 CLAUDE.md 的自动发现。您使用 `--add-dir` 传递的目录中的 Skills 仍然加载。OAuth 令牌和钥匙串凭证未读取,因此 Anthropic 身份验证必须来自 `ANTHROPIC_API_KEY` 或 `--settings` 中的 `apiKeyHelper`。等同于传递 [`--bare`](/docs/zh-CN/headless#start-faster-with-bare-mode) |

376| `CLAUDE_CODE_SIMPLE_SYSTEM_PROMPT` | 设置为 `1` 以在任何模型上使用较短的系统提示和缩写的工具描述。设置为 `0`、`false`、`no` 或 `off` 以选择退出,即使在实验或服务器配置会启用它的模型上。完整的工具集、hooks、MCP 服务器和 CLAUDE.md 发现保持启用 |376| `CLAUDE_CODE_SIMPLE_SYSTEM_PROMPT` | 设置为 `1` 以在任何模型上使用较短的系统提示和缩写的工具描述。设置为 `0`、`false`、`no` 或 `off` 以选择退出,即使在实验或服务器配置会启用它的模型上。完整的工具集、hooks、MCP 服务器和 CLAUDE.md 发现保持启用 |

377| `CLAUDE_CODE_SKIP_ANTHROPIC_AWS_AUTH` | 跳过 [Claude Platform on AWS](/docs/zh-CN/claude-platform-on-aws) 的客户端身份验证,用于自己签署请求的网关 |377| `CLAUDE_CODE_SKIP_ANTHROPIC_AWS_AUTH` | 跳过 [Claude Platform on AWS](/docs/zh-CN/claude-platform-on-aws) 的客户端身份验证,用于自己签署请求的网关 |

378| `CLAUDE_CODE_SKIP_AWS_CRED_CACHE` | 设置为 `1` 以关闭从 AWS 默认凭证提供商链解析的凭证的进程内缓存,因此 Claude Code 在每个 API 请求上解析链。禁用缓存后,由 SSO 支持的配置文件在每个请求上从 IAM Identity Center 请求凭证。请参阅 [凭证缓存和解析超时](/docs/zh-CN/amazon-bedrock#credential-caching-and-resolution-timeout)。需要 Claude Code v2.1.207 或更高版本 |378| `CLAUDE_CODE_SKIP_AWS_CRED_CACHE` | 设置为 `1` 以关闭从 AWS 默认凭证提供商链解析的凭证的进程内缓存,因此 Claude Code 在每个 API 请求上解析链。禁用缓存后,由 SSO 支持的配置文件在每个请求上从 IAM Identity Center 请求凭证。参见 [凭证缓存和解析超时](/docs/zh-CN/amazon-bedrock#credential-caching-and-resolution-timeout)。需要 Claude Code v2.1.207 或更高版本 |

379| `CLAUDE_CODE_SKIP_BEDROCK_AUTH` | 跳过 Amazon Bedrock 的 AWS 身份验证(例如,使用 LLM 网关时) |379| `CLAUDE_CODE_SKIP_BEDROCK_AUTH` | 跳过 Amazon Bedrock 的 AWS 身份验证(例如,使用 LLM 网关时) |

380| `CLAUDE_CODE_SKIP_FAST_MODE_NETWORK_ERRORS` | 设置为 `1` 以将失败的 [快速模式](/docs/zh-CN/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) 可用性检查视为可用,用于阻止检查对 `api.anthropic.com` 的直接请求的网络。Claude Code 仍然尊重"您的组织禁用了快速模式"响应 |380| `CLAUDE_CODE_SKIP_FAST_MODE_NETWORK_ERRORS` | 设置为 `1` 以将失败的 [快速模式](/docs/zh-CN/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) 可用性检查视为可用,用于阻止检查对 `api.anthropic.com` 的直接请求的网络。Claude Code 仍然尊重"您的组织禁用了快速模式"响应 |

381| `CLAUDE_CODE_SKIP_FAST_MODE_ORG_CHECK` | 设置为 `1` 以跳过客户端 [快速模式](/docs/zh-CN/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) 可用性检查,用于拦截检查请求的代理而不是拒绝它。API 仍然在您的组织禁用快速模式时拒绝快速模式请求 |381| `CLAUDE_CODE_SKIP_FAST_MODE_ORG_CHECK` | 设置为 `1` 以跳过客户端 [快速模式](/docs/zh-CN/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) 可用性检查,用于拦截检查请求而不是拒绝它的代理。当您的组织禁用快速模式时,API 仍然拒绝快速模式请求 |

382| `CLAUDE_CODE_SKIP_FOUNDRY_AUTH` | 跳过 Microsoft Foundry 的 Azure 身份验证,用于注入自己的 `Authorization` 标头的代理或网关。Claude Code 发送没有 Azure 凭证的请求并保留您提供的 `Authorization` 标头,例如通过 `ANTHROPIC_CUSTOM_HEADERS`。当设置 `ANTHROPIC_FOUNDRY_API_KEY` 或 `ANTHROPIC_FOUNDRY_AUTH_TOKEN` 时被忽略。在 v2.1.203 之前,此变量使 Microsoft Foundry 客户端无法发送请求,除非也设置了 API 密钥 |382| `CLAUDE_CODE_SKIP_FOUNDRY_AUTH` | 跳过 Microsoft Foundry 的 Azure 身份验证,用于代理或网关注入其自己的 `Authorization` 标头。Claude Code 发送没有 Azure 凭证的请求并保留您提供的 `Authorization` 标头,例如通过 `ANTHROPIC_CUSTOM_HEADERS`。当设置 `ANTHROPIC_FOUNDRY_API_KEY` 或 `ANTHROPIC_FOUNDRY_AUTH_TOKEN` 时被忽略。在 v2.1.203 之前,此变量使 Microsoft Foundry 客户端无法发送请求,除非也设置了 API 密钥 |

383| `CLAUDE_CODE_SKIP_MANTLE_AUTH` | 跳过 Amazon Bedrock Mantle 的 AWS 身份验证(例如,使用 LLM 网关时) |383| `CLAUDE_CODE_SKIP_MANTLE_AUTH` | 跳过 Amazon Bedrock Mantle 的 AWS 身份验证(例如,使用 LLM 网关时) |

384| `CLAUDE_CODE_SKIP_PROMPT_HISTORY` | 设置为 `1` 以跳过将提示历史和会话转录写入磁盘。使用此变量启动的会话不出现在 `--resume`、`--continue` 或向上箭头历史中。对于临时脚本会话很有用 |384| `CLAUDE_CODE_SKIP_PROMPT_HISTORY` | 设置为 `1` 以跳过将提示历史和会话成绩单写入磁盘。使用此变量启动的会话不出现在 `--resume`、`--continue` 或向上箭头历史中。对于临时脚本会话很有用 |

385| `CLAUDE_CODE_SKIP_VERTEX_AUTH` | 跳过 Google Cloud's Agent Platform 的 Google 身份验证(例如,使用 LLM 网关时) |385| `CLAUDE_CODE_SKIP_VERTEX_AUTH` | 跳过 Google Cloud's Agent Platform 的 Google 身份验证(例如,使用 LLM 网关时) |

386| `CLAUDE_CODE_STARTUP_FAILURE_RESULTS` | 设置为 `1` 以让使用 `--output-format stream-json` 启动的会话为启动失败写入 [结果消息,命名 Claude Code 拒绝启动的原因](/docs/zh-CN/agent-sdk/typescript#startup_failure_reason),否则仅以 stderr 结束。需要 Claude Code v2.1.274 或更高版本 |386| `CLAUDE_CODE_STARTUP_FAILURE_RESULTS` | 设置为 `1` 以使用 `--output-format stream-json` 启动的会话为启动失败写入 [结果消息,说明 Claude Code 为什么拒绝启动](/docs/zh-CN/agent-sdk/typescript#startup_failure_reason),否则仅以 stderr 结束。需要 Claude Code v2.1.274 或更高版本 |

387| `CLAUDE_CODE_STOP_HOOK_BLOCK_CAP` | [Stop](/docs/zh-CN/hooks#stop) 或 [SubagentStop](/docs/zh-CN/hooks#subagentstop) hook 可能在 Claude Code 覆盖它并结束转弯之前阻止转弯结束的最大连续次数(默认值:8)。设置为 `0` 以禁用上限。如果您的 hook 合理需要更多迭代来解决,请提高此值 |387| `CLAUDE_CODE_STOP_HOOK_BLOCK_CAP` | [Stop](/docs/zh-CN/hooks#stop) 或 [SubagentStop](/docs/zh-CN/hooks#subagentstop) hook 可能在 Claude Code 覆盖它并结束转向之前阻止转向结束的最大连续次数(默认值:8)。设置为 `0` 以禁用上限。如果您的 hook 合理需要更多迭代来解决,请提高此值 |

388| `CLAUDE_CODE_SUBAGENT_MODEL` | [子代理](/docs/zh-CN/sub-agents#choose-a-model)、[代理团队](/docs/zh-CN/agent-teams#specify-teammates-and-models) 队友和 [工作流](/docs/zh-CN/workflows) 代理的默认模型,这些代理没有以其他方式分配模型。接受别名(如 `haiku`)或完整模型名称。两个来源优先于它:Claude 生成代理时传递的模型,以及代理定义中的 `model` 字段,包括 `inherit`。要改变那个,设置 [`CLAUDE_CODE_SUBAGENT_MODEL_FORCE`](/docs/zh-CN/sub-agents#run-every-subagent-on-one-model)。请参阅 [选择模型](/docs/zh-CN/sub-agents#choose-a-model) 了解完整顺序。将其设置为 `inherit` 与留下它未设置相同。在 v2.1.251 之前,此变量覆盖了每个调用模型和定义的 `model` 字段 |388| `CLAUDE_CODE_SUBAGENT_MODEL` | [子代理](/docs/zh-CN/sub-agents#choose-a-model)、[代理团队](/docs/zh-CN/agent-teams#specify-teammates-and-models) 队友和 [工作流](/docs/zh-CN/workflows) 代理的默认模型,这些代理未以其他方式分配模型。接受别名(如 `haiku`)或完整模型名称。两个源优先于它:Claude 生成代理时传递的模型,以及代理定义中的 `model` 字段,包括 `inherit`。要改变这一点,设置 [`CLAUDE_CODE_SUBAGENT_MODEL_FORCE`](/docs/zh-CN/sub-agents#run-every-subagent-on-one-model)。参见 [选择模型](/docs/zh-CN/sub-agents#choose-a-model) 了解完整顺序。将其设置为 `inherit` 与保留其未设置相同。在 v2.1.251 之前,此变量覆盖了每个调用模型和定义的 `model` 字段 |

389| `CLAUDE_CODE_SUBAGENT_MODEL_FORCE` | 设置为 `1` 以强制一个模型到子代理、队友和工作流代理。[在一个模型上运行每个子代理](/docs/zh-CN/sub-agents#run-every-subagent-on-one-model) 说明那是哪个。需要 Claude Code v2.1.257 或更高版本 |389| `CLAUDE_CODE_SUBAGENT_MODEL_FORCE` | 设置为 `1` 以强制一个模型到子代理、队友和工作流代理。[在一个模型上运行每个子代理](/docs/zh-CN/sub-agents#run-every-subagent-on-one-model) 说明那是哪个模型。需要 Claude Code v2.1.257 或更高版本 |

390| `CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL` | 设置 `5m` 或 `1h`,Claude Code 接受的唯一值,以选择 [提示缓存 TTL](/docs/zh-CN/prompt-caching#cache-lifetime) 用于主对话外的请求,例如 [子代理](/docs/zh-CN/sub-agents)、工作流和后台工作。优先于 `subagentPromptCacheTtl` 设置和 `ENABLE_PROMPT_CACHING_1H`,`FORCE_PROMPT_CACHING_5M` 覆盖它。API 以更高的速率计费 1 小时缓存写入。需要 Claude Code v2.1.242 或更高版本 |390| `CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL` | 设置 `5m` 或 `1h`,Claude Code 接受的唯一值,以选择主对话外请求的 [提示缓存 TTL](/docs/zh-CN/prompt-caching#cache-lifetime),例如 [子代理](/docs/zh-CN/sub-agents)、工作流和后台工作。优先于 `subagentPromptCacheTtl` 设置和 `ENABLE_PROMPT_CACHING_1H`,`FORCE_PROMPT_CACHING_5M` 覆盖它。API 以更高的速率计费 1 小时缓存写入。需要 Claude Code v2.1.242 或更高版本 |

391| `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` | 设置为 `1` 以从子进程环境中删除凭证(Bash 工具、hooks、MCP stdio 服务器):Anthropic 和云提供商凭证、Claude Code 识别为凭证的任何其他变量以及嵌入在包注册表 URL 中的凭证。父 Claude 进程为 API 调用保留这些凭证,但子进程无法读取它们,减少了试图通过 shell 扩展窃取秘密的提示注入攻击的暴露。在 v2.1.251 或更高版本上,擦除也删除 Claude Code 自己的配置存储指针变量(如 `CLAUDE_CONFIG_DIR`),因此子进程无法定位重新定位的配置目录。如果子进程需要这些变量,请留下擦除未设置。在 Linux 上,这也在隔离的 PID 命名空间中运行 Bash 子进程,因此它们无法通过 `/proc` 读取主机进程环境;作为副作用,`ps`、`pgrep` 和 `kill` 无法看到或信号主机进程。`claude-code-action` 在配置 `allowed_non_write_users` 时自动设置此项 |391| `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` | 设置为 `1` 以从子进程环境中删除凭证(Bash 工具、hooks、MCP stdio 服务器):Anthropic 和云提供商凭证、Claude Code 识别为凭证的任何其他变量,以及嵌入在包注册表 URL 中的凭证。父 Claude 进程为 API 调用保留这些凭证,但子进程无法读取它们,减少了试图通过 shell 扩展窃取秘密的提示注入攻击的暴露。在 v2.1.251 或更高版本上,清理也删除 Claude Code 自己的配置存储指针变量(如 `CLAUDE_CONFIG_DIR`),因此子进程无法定位重定位的配置目录。如果子进程需要这些变量,请保留清理未设置。在 Linux 上,这也在隔离的 PID 命名空间中运行 Bash 子进程,因此它们无法通过 `/proc` 读取主机进程环境;作为副作用,`ps`、`pgrep` 和 `kill` 无法看到或信号主机进程。当配置 `allowed_non_write_users` 时,`claude-code-action` 自动设置此项 |

392| `CLAUDE_CODE_SYNC_PLUGIN_INSTALL` | 在非交互模式(`-p` 标志)中设置为 `1` 以等待插件安装完成,然后第一个查询。没有这个,插件在后台安装,可能在第一个转弯上不可用。与 `CLAUDE_CODE_SYNC_PLUGIN_INSTALL_TIMEOUT_MS` 结合以界限等待 |392| `CLAUDE_CODE_SYNC_PLUGIN_INSTALL` | 在非交互模式(`-p` 标志)中设置为 `1` 以等待插件安装完成,然后第一个查询。没有这个,插件在后台安装,可能在第一个转向上不可用。与 `CLAUDE_CODE_SYNC_PLUGIN_INSTALL_TIMEOUT_MS` 结合以界定等待 |

393| `CLAUDE_CODE_SYNC_PLUGIN_INSTALL_TIMEOUT_MS` | 同步插件安装的超时时间(以毫秒为单位)。超过时,Claude Code 继续而不带插件并记录错误。无默认值:没有此变量,同步安装等待直到完成 |393| `CLAUDE_CODE_SYNC_PLUGIN_INSTALL_TIMEOUT_MS` | 同步插件安装的超时时间(毫秒)。超过时,Claude Code 继续而不使用插件并记录错误。无默认值:没有此变量,同步安装等待直到完成 |

394| `CLAUDE_CODE_SYNC_SKILLS` | 在非交互模式中设置为 `1`,使用 `-p` 标志,使 Claude Code 下载为您的 claude.ai 帐户启用的 skills 在该运行中,并等待它们的列表,最多 `CLAUDE_CODE_SYNC_SKILLS_WAIT_TIMEOUT_MS`,然后它运行第一个查询。下载本身在后台完成,Claude 在调用 skill 时等待 skill 的下载。需要 claude.ai 身份验证。在您使用 claude.ai 帐户登录的终端会话中 [下载这些 skills](/docs/zh-CN/skills#where-synced-skills-load) 到 `~/.claude/skills/synced/` 并大约每 10 分钟重新同步,没有此变量,因此仅在 `-p` 运行需要您当前 skills 在其第一个查询上时设置它。在 v2.1.273 之前,终端会话仅在带此变量集的 `-p` 运行中下载它们。`synced` 文件夹名称是 [为此下载保留的](/docs/zh-CN/skills#where-skills-live)。在 v2.1.227 之前,skills 直接下载到 `~/.claude/skills/` 中。Claude Code 对下载的 skills 应用 [额外规则](/docs/zh-CN/skills#how-synced-skills-behave),例如不在您的机器上运行它们的 `!` 命令 |394| `CLAUDE_CODE_SYNC_SKILLS` | 在非交互模式中设置为 `1`,使用 `-p` 标志,使 Claude Code 下载为您的 claude.ai 帐户启用的 skills 在该运行中,并等待它们的列表,最多 `CLAUDE_CODE_SYNC_SKILLS_WAIT_TIMEOUT_MS`,然后运行第一个查询。下载本身在后台完成,Claude 在调用该 skill 时等待 skill 的下载。需要 claude.ai 身份验证。您登录 claude.ai 帐户的终端会话 [下载这些 skills](/docs/zh-CN/skills#where-synced-skills-load) 到 `~/.claude/skills/synced/` 并大约每 10 分钟重新同步,而不需要此变量,因此仅在 `-p` 运行需要您当前 skills 在其第一个查询上时设置它。在 v2.1.273 之前,终端会话仅在带此变量的 `-p` 运行中下载它们。`synced` 文件夹名称 [为此下载保留](/docs/zh-CN/skills#where-skills-live)。在 v2.1.227 之前,skills 直接下载到 `~/.claude/skills/` 中。Claude Code 对下载的 skills 应用 [额外规则](/docs/zh-CN/skills#how-synced-skills-behave),例如不在您的机器上运行其 `!` 命令 |

395| `CLAUDE_CODE_SYNC_SKILLS_INSTALL_TIMEOUT_MS` | 当 [Agent SDK](/docs/zh-CN/agent-sdk/typescript#query-object) 上构建的应用重新加载 skills 时运行的 skills 重新同步的超时时间(以毫秒为单位)(默认值:30000)。超过时,重新加载继续使用已到达的任何 skills,剩余下载在后台完成 |395| `CLAUDE_CODE_SYNC_SKILLS_INSTALL_TIMEOUT_MS` | 当 [Agent SDK](/docs/zh-CN/agent-sdk/typescript#query-object) 构建的应用重新加载 skills 时运行的 skills 重新同步的超时时间(毫秒)(默认值:30000)。超过时,重新加载继续使用已到达的任何 skills,剩余下载在后台完成 |

396| `CLAUDE_CODE_SYNC_SKILLS_WAIT_TIMEOUT_MS` | 当设置 `CLAUDE_CODE_SYNC_SKILLS` 时第一个查询等待初始 skill 列表的超时时间(以毫秒为单位)(默认值:5000)。超过时,第一个查询使用已到达的任何 skills 运行。下载无论如何都在后台完成,Claude 在调用 skill 时等待 skill 的下载 |396| `CLAUDE_CODE_SYNC_SKILLS_WAIT_TIMEOUT_MS` | 当设置 `CLAUDE_CODE_SYNC_SKILLS` 时,第一个查询等待初始 skill 列表的超时时间(毫秒)(默认值:5000)。超过时,第一个查询使用已到达的任何 skills 运行。下载无论如何都在后台完成,Claude 在调用 skill 时等待 skill 的下载 |

397| `CLAUDE_CODE_SYNTAX_HIGHLIGHT` | 设置为 `false` 以在差异输出中禁用语法突出显示。当颜色干扰您的终端设置时很有用。要也在代码块和文件预览中禁用突出显示,请使用 [`syntaxHighlightingDisabled`](/docs/zh-CN/settings-reference#syntaxhighlightingdisabled) 设置 |397| `CLAUDE_CODE_SYNTAX_HIGHLIGHT` | 设置为 `false` 以在差异输出中禁用语法突出显示。当颜色干扰您的终端设置时很有用。要也禁用代码块和文件预览中的突出显示,请使用 [`syntaxHighlightingDisabled`](/docs/zh-CN/settings-reference#syntaxhighlightingdisabled) 设置 |

398| `CLAUDE_CODE_TASK_LIST_ID` | 跨会话共享任务列表。在多个 Claude Code 实例中设置相同的 ID 以在 [具有 Task 工具的会话](/docs/zh-CN/tools-reference#task-tool-availability) 中协调共享任务列表。请参阅 [任务列表](/docs/zh-CN/interactive-mode#task-list) |398| `CLAUDE_CODE_TASK_LIST_ID` | 跨会话共享任务列表。在多个 Claude Code 实例中设置相同的 ID 以在 [具有 Task 工具的会话](/docs/zh-CN/tools-reference#task-tool-availability) 中协调共享任务列表。参见 [任务列表](/docs/zh-CN/interactive-mode#task-list) |

399| `CLAUDE_CODE_TEAM_TEARDOWN_PARK_TIMEOUT_MS` | 覆盖非交互式会话在退出时等待其 [代理团队](/docs/zh-CN/agent-teams) 完成拆卸的毫秒数。接受 1000 到 60000;超出范围的值被忽略,默认值 10000 适用。需要 Claude Code v2.1.206 或更高版本 |399| `CLAUDE_CODE_TEAM_TEARDOWN_PARK_TIMEOUT_MS` | 覆盖非交互式会话在退出时等待其 [代理团队](/docs/zh-CN/agent-teams) 完成拆卸的时间(毫秒)。接受 1000 到 60000;超出范围的值被忽略,默认值 10000 适用。需要 Claude Code v2.1.206 或更高版本 |

400| `CLAUDE_CODE_TMPDIR` | 覆盖用于内部临时文件的临时目录。Claude Code 在 Unix 上追加 `/claude-{uid}/` 或在 Windows 上追加 `/claude/` 到此路径。默认值:macOS 上 `/tmp`,Linux 和 Windows 上 `os.tmpdir()`。在 macOS 和 Linux 上,[沙箱化](/docs/zh-CN/sandboxing) Bash 子进程在您的覆盖是长路径时在系统默认下接收短回退 `$TMPDIR`,因为某些工具在临时路径变得太长时失败。未沙箱化的 Bash 命令在设置时继承您的 shell 的 `$TMPDIR`。Claude Code 自己的临时文件始终使用您的覆盖。在您的 shell、用户设置或托管设置中设置它。在 [项目和本地设置](/docs/zh-CN/settings-reference#variables-claude-code-ignores-in-env) 中被忽略 |400| `CLAUDE_CODE_TMPDIR` | 覆盖用于内部临时文件的临时目录。Claude Code 在 Unix 上将 `/claude-{uid}/` 附加到此路径,或在 Windows 上附加 `/claude/`。默认值:macOS 上为 `/tmp`,Linux 和 Windows 上为 `os.tmpdir()`。在 macOS 和 Linux 上,当您的覆盖是长路径时,[沙箱化](/docs/zh-CN/sandboxing) Bash 子进程在系统默认下接收短回退 `$TMPDIR`,因为某些工具在临时路径变长时失败。未沙箱化的 Bash 命令在设置时继承您的 shell 的 `$TMPDIR`。在本机 Windows 上,当您的 shell 未设置 `$TMPDIR` 时,引用 `$TMPDIR` 的 Bash 命令接收您的覆盖,或在您未设置时接收 `%TEMP%`。Claude Code 自己的临时文件始终使用您的覆盖。在您的 shell、用户设置或托管设置中设置它。在 [项目和本地设置](/docs/zh-CN/settings-reference#variables-claude-code-ignores-in-env) 中被忽略 |

401| `CLAUDE_CODE_TMUX_TRUECOLOR` | 设置为任何非空值(如 `1`)以允许 tmux 内的 24 位真彩色输出。**将其设置为 `0` 或 `false` 仍允许真彩色**,与大多数打开/关闭变量不同;取消设置变量以恢复 256 色限制。默认情况下,当设置 `$TMUX` 时 Claude Code 限制到 256 色,因为 tmux 不通过真彩色转义序列,除非配置为。在将 `set -ga terminal-overrides ',*:Tc'` 添加到您的 `~/.tmux.conf` 后设置此项。请参阅 [终端配置](/docs/zh-CN/terminal-config) 了解其他 tmux 设置 |401| `CLAUDE_CODE_TMUX_TRUECOLOR` | 设置为任何非空值(如 `1`)以允许 tmux 内的 24 位真彩色输出。**将其设置为 `0` 或 `false` 仍允许真彩色**,与大多数打开/关闭变量不同;取消设置变量以恢复 256 色限制。默认情况下,当设置 `$TMUX` 时 Claude Code 限制为 256 色,因为 tmux 不通过真彩色转义序列,除非配置为这样做。在将 `set -ga terminal-overrides ',*:Tc'` 添加到您的 `~/.tmux.conf` 后设置此项。参见 [终端配置](/docs/zh-CN/terminal-config) 了解其他 tmux 设置 |

402| `CLAUDE_CODE_TOOL_MEMORY_CGROUP_EXCLUDE` | 在 Linux 和 WSL 上,设置为 Claude Code [从工具内存上限排除的](/docs/zh-CN/tools-reference#memory-limit-on-linux-and-wsl) 进程类型的逗号分隔列表,例如 `mcp` 或 `lsp`。设置 `none` 以限制每种类型,或 `all-new` 以仅限制 Bash、PowerShell 和 Monitor 工具命令。Claude Code 无论您列出什么都将 Bash、PowerShell 和 Monitor 工具命令保持在上限下。需要 Claude Code v2.1.246 或更高版本 |402| `CLAUDE_CODE_TOOL_MEMORY_CGROUP_EXCLUDE` | 在 Linux 和 WSL 上,设置为逗号分隔的进程类型列表,Claude Code [从工具内存上限中排除](/docs/zh-CN/tools-reference#memory-limit-on-linux-and-wsl),例如 `mcp` 或 `lsp`。设置 `none` 以限制每种类型,或 `all-new` 以仅限制 Bash、PowerShell 和 Monitor 工具命令。Claude Code 无论您列出什么,都将 Bash、PowerShell 和 Monitor 工具命令保持在上限下。需要 Claude Code v2.1.246 或更高版本 |

403| `CLAUDE_CODE_TOOL_MEMORY_LIMIT` | 在 Linux 和 WSL 上,设置为大小(如 `4G`)以 [限制 Bash 和 PowerShell 工具命令可以使用的内存](/docs/zh-CN/tools-reference#memory-limit-on-linux-and-wsl),以及 v2.1.246 或更高版本上的 Monitor 工具命令。以纯数字单独写入大小(以字节为单位)或带有 `K`、`M`、`G` 或 `T` 后缀。设置 `0` 或 `off` 以关闭上限。一旦 Claude Code 启动的第一个进程打开或关闭了上限,更改的值在您下次启动 `claude` 时生效。需要 Claude Code v2.1.233 或更高版本 |403| `CLAUDE_CODE_TOOL_MEMORY_LIMIT` | 在 Linux 和 WSL 上,设置为大小(如 `4G`)以 [限制 Bash 和 PowerShell 工具命令可以使用的内存](/docs/zh-CN/tools-reference#memory-limit-on-linux-and-wsl),以及 v2.1.246 或更高版本上的 Monitor 工具命令。用纯数字单独写入大小(字节数)或带 `K`、`M`、`G` 或 `T` 后缀。设置 `0` 或 `off` 以关闭上限。一旦 Claude Code 启动的第一个进程打开或关闭上限,更改的值在您下次启动 `claude` 时生效。需要 Claude Code v2.1.233 或更高版本 |

404| `CLAUDE_CODE_USER_DIALOG_TIMEOUT_MS` | Claude Code 在取消它转发给远程客户端(如 [Remote Control](/docs/zh-CN/remote-control) 或 SDK 主机)的对话之前的截止时间(以毫秒为单位),或 [保持的跨会话消息](/docs/zh-CN/cross-session-messaging#control-inbound-messages) 的批准对话;权限提示和 `AskUserQuestion` 问题使用自己的流程,不受它管理。在 Claude Code v2.1.236 或更高版本上,它也界限可能无人值守运行的会话中的中期 [Fable 使用信用同意提示](/docs/zh-CN/model-config#fable-and-usage-credits)。[控制入站消息](/docs/zh-CN/cross-session-messaging#control-inbound-messages) 和 [非交互式会话](/docs/zh-CN/cross-session-messaging#non-interactive-sessions) 涵盖完整的保持消息过期规则,包括截止时间不适用的情况。覆盖 [`dialogExpiry`](/docs/zh-CN/settings-reference#dialogexpiry) 设置。`0` 或负值禁用截止时间 |404| `CLAUDE_CODE_USER_DIALOG_TIMEOUT_MS` | Claude Code 在取消它转发给远程客户端(如 [Remote Control](/docs/zh-CN/remote-control) 或 SDK 主机)的对话框之前的截止时间(毫秒),或 [保持的跨会话消息](/docs/zh-CN/cross-session-messaging#control-inbound-messages) 的批准对话框;权限提示和 `AskUserQuestion` 问题使用其自己的流程,不受其管理。在 Claude Code v2.1.236 或更高版本上,它也界定了可能无人值守运行的会话中的中期 [Fable 使用信用同意提示](/docs/zh-CN/model-config#fable-and-usage-credits)。[控制入站消息](/docs/zh-CN/cross-session-messaging#control-inbound-messages) 和 [非交互式会话](/docs/zh-CN/cross-session-messaging#non-interactive-sessions) 涵盖完整的保持消息过期规则,包括截止时间不适用的情况。覆盖 [`dialogExpiry`](/docs/zh-CN/settings-reference#dialogexpiry) 设置。`0` 或负值禁用截止时间 |

405| `CLAUDE_CODE_USE_ANTHROPIC_AWS` | 使用 [Claude Platform on AWS](/docs/zh-CN/claude-platform-on-aws) |405| `CLAUDE_CODE_USE_ANTHROPIC_AWS` | 使用 [Claude Platform on AWS](/docs/zh-CN/claude-platform-on-aws) |

406| `CLAUDE_CODE_USE_BEDROCK` | 使用 [Amazon Bedrock](/docs/zh-CN/amazon-bedrock) |406| `CLAUDE_CODE_USE_BEDROCK` | 使用 [Amazon Bedrock](/docs/zh-CN/amazon-bedrock) |

407| `CLAUDE_CODE_USE_FOUNDRY` | 使用 [Microsoft Foundry](/docs/zh-CN/microsoft-foundry) |407| `CLAUDE_CODE_USE_FOUNDRY` | 使用 [Microsoft Foundry](/docs/zh-CN/microsoft-foundry) |

408| `CLAUDE_CODE_USE_MANTLE` | 使用 Amazon Bedrock [Mantle 端点](/docs/zh-CN/amazon-bedrock#use-the-mantle-endpoint) |408| `CLAUDE_CODE_USE_MANTLE` | 使用 Amazon Bedrock [Mantle 端点](/docs/zh-CN/amazon-bedrock#use-the-mantle-endpoint) |

409| `CLAUDE_CODE_USE_NATIVE_FILE_SEARCH` | 设置为 `1` 以使用 Node.js 文件 API 而不是 ripgrep 发现自定义命令、子代理和输出样式。如果捆绑的 ripgrep 二进制文件在您的环境中不可用或被阻止,请设置此项。不影响 Grep 或文件搜索工具 |409| `CLAUDE_CODE_USE_NATIVE_FILE_SEARCH` | 设置为 `1` 以使用 Node.js 文件 API 而不是 ripgrep 发现自定义命令、子代理和输出样式。如果捆绑的 ripgrep 二进制文件在您的环境中不可用或被阻止,请设置此项。不影响 Grep 或文件搜索工具 |

410| `CLAUDE_CODE_USE_POWERSHELL_TOOL` | 控制 PowerShell 工具。在没有 Git Bash 的 Windows 上,工具自动启用;设置为 `0` 以禁用它。在安装了 Git Bash 的 Windows 上,工具对 claude.ai 和 Console 帐户默认打开;设置为 `1` 以在 Amazon Bedrock、Google Cloud's Agent Platform 和 Microsoft Foundry 会话中启用它,或 `0` 以关闭它。在 Linux、macOS 和 WSL 上,设置为 `1` 以启用它,这需要您的 `PATH` 上的 `pwsh`。在 Windows 上启用时,Claude 可以本地运行 PowerShell 命令,而不是通过 Git Bash 路由。请参阅 [PowerShell 工具](/docs/zh-CN/tools-reference#powershell-tool) |410| `CLAUDE_CODE_USE_POWERSHELL_TOOL` | 控制 PowerShell 工具。在没有 Git Bash 的 Windows 上,工具自动启用;设置为 `0` 以禁用它。在安装了 Git Bash 的 Windows 上,工具对 claude.ai 和 Console 帐户默认打开;设置为 `1` 以在 Amazon Bedrock、Google Cloud's Agent Platform 和 Microsoft Foundry 会话中启用它,或 `0` 以关闭它。在 Linux、macOS 和 WSL 上,设置为 `1` 以启用它,这需要您的 `PATH` 上的 `pwsh`。在 Windows 上启用时,Claude 可以本地运行 PowerShell 命令,而不是通过 Git Bash 路由。参见 [PowerShell 工具](/docs/zh-CN/tools-reference#powershell-tool) |

411| `CLAUDE_CODE_USE_VERTEX` | 使用 [Google Cloud's Agent Platform](/docs/zh-CN/google-vertex-ai) |411| `CLAUDE_CODE_USE_VERTEX` | 使用 [Google Cloud's Agent Platform](/docs/zh-CN/google-vertex-ai) |

412| `CLAUDE_CODE_WEBFETCH_CACHE_TTL_MS` | 设置为 [WebFetch](/docs/zh-CN/tools-reference#webfetch-tool-behavior) 保持每个获取 URL 的响应缓存的毫秒数。默认值为 `900000`,即 15 分钟。仅接受纯数字;`0`、小数或任何其他拼写保持默认值。Claude Code 每次启动读取一次值,因此设置 `env` 块中的更改在您下次启动 `claude` 时应用。需要 Claude Code v2.1.233 或更高版本 |412| `CLAUDE_CODE_WEBFETCH_CACHE_TTL_MS` | 设置为 [WebFetch](/docs/zh-CN/tools-reference#webfetch-tool-behavior) 保持每个获取 URL 响应缓存的毫秒数。默认值为 `900000`,即 15 分钟。仅接受纯数字;`0`、小数或任何其他拼写保持默认值。Claude Code 每次启动读取一次该值,因此设置 `env` 块中的更改在您下次启动 `claude` 时适用。需要 Claude Code v2.1.233 或更高版本 |

413| `CLAUDE_CODE_WEBFETCH_DEADLINE_MS` | [WebFetch](/docs/zh-CN/tools-reference#webfetch-tool-behavior) 等待页面下载的上限(以毫秒为单位),包括它遵循的任何重定向。未在那时完成的下载因截止时间错误而失败。默认值为 `300000`,即五分钟。设置为 `0` 以删除限制。仅接受纯数字;小数或任何其他拼写保持默认值。需要 Claude Code v2.1.268 或更高版本 |413| `CLAUDE_CODE_WEBFETCH_DEADLINE_MS` | [WebFetch](/docs/zh-CN/tools-reference#webfetch-tool-behavior) 等待页面下载的毫秒数的上限,包括它遵循的任何重定向。未在该时间内完成的下载因截止时间错误而失败。默认值为 `300000`,即五分钟。设置为 `0` 以删除限制。仅接受纯数字;小数或任何其他拼写保持默认值。需要 Claude Code v2.1.268 或更高版本 |

414| `CLAUDE_CODE_WORKFLOW_MAX_CONCURRENT_AGENTS` | 单个 [工作流](/docs/zh-CN/workflows) 运行一次执行的代理数量,从 `1` 到 `256`。默认情况下,运行一次执行最多 16 个代理,当 Claude Code 有更少 CPU 可用时更少;排队的 `agent()` 调用等待空闲槽。每个运行中的代理的转录保留在 Claude Code 的内存中,因此较高的值提高内存使用。仅接受纯数字;超出范围的值和其他拼写保持默认值。需要 Claude Code v2.1.269 或更高版本 |414| `CLAUDE_CODE_WORKFLOW_MAX_CONCURRENT_AGENTS` | 单个 [工作流](/docs/zh-CN/workflows) 运行一次执行多少代理,从 `1` 到 `256`。默认情况下,运行一次执行最多 16 个代理,当 Claude Code 的 CPU 较少时更少;排队的 `agent()` 调用等待空闲槽。每个运行中的代理的成绩单保留在 Claude Code 的内存中,因此较高的值提高内存使用。仅接受纯数字;超出范围的值和其他拼写保持默认值。需要 Claude Code v2.1.269 或更高版本 |

415| `CLAUDE_CODE_WORKFLOW_PREFIX_STAGGER_MS` | [工作流](/docs/zh-CN/workflows) 代理等待相同前缀兄弟的第一个响应开始的上限(以毫秒为单位),然后发送自己的第一个请求。当扇出启动共享 [提示缓存前缀](/docs/zh-CN/workflows#prompt-caching-in-a-fan-out) 的多个代理时,Claude Code 将除第一个代理外的所有代理保持最多这么长时间,以便其余代理读取缓存的前缀而不是每个未缓存处理它。默认 `5000`。设置为 `0` 以禁用等待。当设置 `DISABLE_PROMPT_CACHING` 时,代理从不等待。需要 Claude Code v2.1.229 或更高版本 |415| `CLAUDE_CODE_WORKFLOW_PREFIX_STAGGER_MS` | [工作流](/docs/zh-CN/workflows) 代理等待同前缀兄弟的第一个响应开始的毫秒数的上限,然后发送其自己的第一个请求。当扇出启动共享 [提示缓存前缀](/docs/zh-CN/workflows#prompt-caching-in-a-fan-out) 的多个代理时,Claude Code 将除第一个外的所有代理保持最多这么长时间,以便其余的读取缓存的前缀而不是每个未缓存处理它。默认 `5000`。设置为 `0` 以禁用等待。当设置 `DISABLE_PROMPT_CACHING` 时,代理从不等待。需要 Claude Code v2.1.229 或更高版本 |

416| `CLAUDE_CONFIG_DIR` | 覆盖配置目录(默认值:`~/.claude`)。所有设置、会话历史和插件存储在此路径下。对于凭证,请参阅 [Claude Code 存储凭证的位置](/docs/zh-CN/authentication#credential-management)。对于并排运行多个帐户很有用:例如,`alias claude-work='CLAUDE_CONFIG_DIR=~/.claude-work claude'`。在您的 shell、用户设置或托管设置中设置它。在 [项目和本地设置](/docs/zh-CN/settings-reference#variables-claude-code-ignores-in-env) 中被忽略 |416| `CLAUDE_CONFIG_DIR` | 覆盖配置目录(默认值:`~/.claude`)。所有设置、会话历史和插件存储在此路径下。对于凭证,参见 [Claude Code 存储凭证的位置](/docs/zh-CN/authentication#credential-management)。对于并排运行多个帐户很有用:例如,`alias claude-work='CLAUDE_CONFIG_DIR=~/.claude-work claude'`。在您的 shell、用户设置或托管设置中设置它。在 [项目和本地设置](/docs/zh-CN/settings-reference#variables-claude-code-ignores-in-env) 中被忽略 |

417| `CLAUDE_DISABLE_ADOPT` | 设置为 `1` 以在通过按 `←` 或使用 [`/background`](/docs/zh-CN/agent-view#from-inside-a-session) 后台处理会话时停止进行中的后台工作,而不是进行中的工作。Claude Code 要求您在后台处理前确认,然后停止否则会进行的任务。需要 Claude Code v2.1.195 或更高版本 |417| `CLAUDE_DISABLE_ADOPT` | 设置为 `1` 以在您通过按 `←` 或使用 [`/background`](/docs/zh-CN/agent-view#from-inside-a-session) 后台处理会话时停止进行中的后台工作,而不是进行中的工作。Claude Code 要求您在后台处理前确认,然后停止会进行中的任务。需要 Claude Code v2.1.195 或更高版本 |

418| `CLAUDE_EFFORT` | 在 Bash 工具子进程和 hook 命令中自动设置为启动子进程时生效的 [effort 级别](/docs/zh-CN/model-config#adjust-effort-level):`low`、`medium`、`high`、`xhigh` 或 `max`。与传递给 [hooks](/docs/zh-CN/hooks) 的 `effort.level` 字段匹配。仅在当前模型支持 effort 参数时设置 |418| `CLAUDE_EFFORT` | 在 Bash 工具子进程和 hook 命令中自动设置为启动子进程时生效的 [effort 级别](/docs/zh-CN/model-config#adjust-effort-level):`low`、`medium`、`high`、`xhigh` 或 `max`。与传递给 [hooks](/docs/zh-CN/hooks) 的 `effort.level` 字段匹配。仅在当前模型支持 effort 参数时设置 |

419| `CLAUDE_ENABLE_BYTE_WATCHDOG` | 设置为 `1` 以强制启用字节级流式空闲监视程序,或设置为 `0` 以强制禁用它。`0` 也关闭运行该截止时间的连接上的 [第一字节截止时间](/docs/zh-CN/network-config#streaming-idle-watchdogs)。未设置时,监视程序在直接 Anthropic API 和 [Claude Platform on AWS](/docs/zh-CN/claude-platform-on-aws) 连接上默认启用,以及通过 `ANTHROPIC_BASE_URL` 或 `ANTHROPIC_AWS_BASE_URL` 到达的 [网关](/docs/zh-CN/gateways) 连接上的流式响应;在 v2.1.222 之前,它在这些网关连接上不运行,因此事件级监视程序可能在那里报告停滞,即使保活 ping 正在到达。对于超时以及计时器如何交互,请参阅 [流式空闲监视程序](/docs/zh-CN/network-config#streaming-idle-watchdogs) |419| `CLAUDE_ENABLE_BYTE_WATCHDOG` | 设置为 `1` 以强制启用字节级流式空闲监视程序,或设置为 `0` 以强制禁用它。`0` 也关闭 [首字节截止时间](/docs/zh-CN/network-config#streaming-idle-watchdogs) 在运行该截止时间的连接上。未设置时,监视程序对直接 Anthropic API 和 [Claude Platform on AWS](/docs/zh-CN/claude-platform-on-aws) 连接默认启用,以及通过 `ANTHROPIC_BASE_URL` 或 `ANTHROPIC_AWS_BASE_URL` 到达的 [网关](/docs/zh-CN/gateways) 连接上的流式响应;在 v2.1.222 之前,它在这些网关连接上不运行,因此事件级监视程序可能在那里报告停滞,即使保活 ping 正在到达。对于超时以及计时器如何交互,参见 [流式空闲监视程序](/docs/zh-CN/network-config#streaming-idle-watchdogs) |

420| `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK` | 设置为 `1` 以在 Amazon Bedrock `vnd.amazon.eventstream` 响应上启用字节级流式空闲监视程序,这也启用 [第一字节截止时间](/docs/zh-CN/network-config#streaming-idle-watchdogs) 在 Bedrock 流式请求上。默认关闭。使用 `CLAUDE_STREAM_IDLE_TIMEOUT_MS` 配置超时 |420| `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK` | 设置为 `1` 以在 Amazon Bedrock `vnd.amazon.eventstream` 响应上启用字节级流式空闲监视程序,这也启用 [首字节截止时间](/docs/zh-CN/network-config#streaming-idle-watchdogs) 在 Bedrock 流式请求上。默认关闭。使用 `CLAUDE_STREAM_IDLE_TIMEOUT_MS` 配置超时 |

421| `CLAUDE_ENABLE_STREAM_WATCHDOG` | 设置为 `0` 以强制禁用事件级流式空闲监视程序,或设置为 `1` 以强制启用它。未设置时,监视程序在所有提供商上默认打开。在 v2.1.196 之前,未设置默认值在直接 Anthropic API 上由服务器控制,在其他提供商上关闭。使用 `CLAUDE_STREAM_IDLE_TIMEOUT_MS` 配置超时;对于与此一起运行的其他停滞计时器,请参阅 [流式空闲监视程序](/docs/zh-CN/network-config#streaming-idle-watchdogs) |421| `CLAUDE_ENABLE_STREAM_WATCHDOG` | 设置为 `0` 以强制禁用事件级流式空闲监视程序,或设置为 `1` 以强制启用它。未设置时,监视程序对所有提供商默认打开。在 v2.1.196 之前,未设置的默认值在直接 Anthropic API 上由服务器控制,在其他提供商上关闭。使用 `CLAUDE_STREAM_IDLE_TIMEOUT_MS` 配置超时;对于与此一起运行的其他停滞计时器,参见 [流式空闲监视程序](/docs/zh-CN/network-config#streaming-idle-watchdogs) |

422| `CLAUDE_ENV_FILE` | shell 脚本的路径,其内容 Claude Code 在同一 shell 进程中的每个 Bash 命令之前运行,因此文件中的导出对命令可见。用于在命令之间保持 virtualenv 或 conda 激活。也由 [SessionStart](/docs/zh-CN/hooks#persist-environment-variables)、[Setup](/docs/zh-CN/hooks#setup)、[CwdChanged](/docs/zh-CN/hooks#cwdchanged) 和 [FileChanged](/docs/zh-CN/hooks#filechanged) hooks 动态填充 |422| `CLAUDE_ENV_FILE` | shell 脚本的路径,其内容 Claude Code 在同一 shell 进程中的每个 Bash 命令之前运行,因此文件中的导出对命令可见。用于在命令之间保持 virtualenv 或 conda 激活。也由 [SessionStart](/docs/zh-CN/hooks#persist-environment-variables)、[Setup](/docs/zh-CN/hooks#setup)、[CwdChanged](/docs/zh-CN/hooks#cwdchanged) 和 [FileChanged](/docs/zh-CN/hooks#filechanged) hooks 动态填充 |

423| `CLAUDE_JOB_DIR` | 由 Claude Code 在每个 [后台会话](/docs/zh-CN/agent-view) 中设置为该会话的 `~/.claude/jobs/<id>` 目录。会话运行的 shell 命令继承它。将暂存文件写入 [`$CLAUDE_JOB_DIR/tmp`](/docs/zh-CN/agent-view#where-state-is-stored)。Claude 的 `Write` 和 `Edit` 调用那里不提示权限,目录在会话被删除时被删除 |423| `CLAUDE_JOB_DIR` | 由 Claude Code 在每个 [后台会话](/docs/zh-CN/agent-view) 中设置为该会话的 `~/.claude/jobs/<id>` 目录。会话运行的 shell 命令继承它。将暂存文件写入 [`$CLAUDE_JOB_DIR/tmp`](/docs/zh-CN/agent-view#where-state-is-stored)。Claude 的 `Write` 和 `Edit` 调用在那里不提示权限,目录在会话被删除时删除 |

424| `CLAUDE_PID` | Claude Code 在它生成的子进程中将其设置为自己的进程 ID:Bash 和 PowerShell 工具命令和 hook 命令。在 Linux 上,Bash 工具的 shell 集成使用它来拒绝会匹配 Claude Code 进程本身的 `pkill` 模式;请参阅 [错误参考](/docs/zh-CN/errors#pkill-pattern-matches-the-claude-code-process)。从您自己的脚本读取它以有意识地识别或信号父 Claude Code 进程。需要 Claude Code v2.1.214 或更高版本 |424| `CLAUDE_PID` | Claude Code 在它生成的子进程中设置为其自己的进程 ID:Bash 和 PowerShell 工具命令和 hook 命令。在 Linux 上,Bash 工具的 shell 集成使用它来拒绝会匹配 Claude Code 进程本身的 `pkill` 模式;参见 [错误参考](/docs/zh-CN/errors#pkill-pattern-matches-the-claude-code-process)。从您自己的脚本读取它以有意识地识别或信号父 Claude Code 进程。需要 Claude Code v2.1.214 或更高版本 |

425| `CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX` | 当未提供显式名称时,自动生成的 [Remote Control](/docs/zh-CN/remote-control) 会话名称的前缀。默认为您的机器的主机名,生成名称如 `myhost-graceful-unicorn`。`--remote-control-session-name-prefix` CLI 标志为单个调用设置相同的值 |425| `CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX` | 当未提供显式名称时,自动生成的 [Remote Control](/docs/zh-CN/remote-control) 会话名称的前缀。默认为您机器的主机名,生成名称如 `myhost-graceful-unicorn`。`--remote-control-session-name-prefix` CLI 标志为单个调用设置相同的值 |

426| `CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS` | 流式请求的第一个响应字节的截止时间(以毫秒为单位),在 [第一字节截止时间](/docs/zh-CN/network-config#streaming-idle-watchdogs) 运行的连接上。对于 Claude Code 如何限制它、它为大型请求正文添加的额外时间以及当您留下此未设置时如何选择截止时间,请参阅 [来自 API 的无响应](/docs/zh-CN/errors#no-response-from-api)。需要 Claude Code v2.1.242 或更高版本 |426| `CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS` | 流式请求的第一个响应字节的截止时间(毫秒),在 [首字节截止时间](/docs/zh-CN/network-config#streaming-idle-watchdogs) 运行的连接上。对于 Claude Code 如何限制它、它为大型请求正文添加的额外时间,以及当您保留此未设置时如何选择截止时间,参见 [API 无响应](/docs/zh-CN/errors#no-response-from-api)。需要 Claude Code v2.1.242 或更高版本 |

427| `CLAUDE_STREAM_IDLE_TIMEOUT_MS` | 事件级和字节级流式空闲监视程序在关闭停滞连接之前的超时时间(以毫秒为单位)。当您明确设置此变量时,最小值为 `300000`(5 分钟);较低的值被无声地限制以吸收扩展思考暂停和代理缓冲,字节级监视程序将值上限为 30 分钟。`CLAUDE_BYTE_STREAM_IDLE_TIMEOUT_MS` 优先于此变量用于字节级监视程序。对于每个监视程序未设置默认值,请参阅 [流式空闲监视程序](/docs/zh-CN/network-config#streaming-idle-watchdogs) |427| `CLAUDE_STREAM_IDLE_TIMEOUT_MS` | 事件级和字节级流式空闲监视程序在关闭停滞连接之前的超时时间(毫秒)。当您显式设置此变量时,最小值为 `300000`(5 分钟);较低的值无声地限制到吸收扩展思考暂停和代理缓冲,字节级监视程序将值上限为 30 分钟。`CLAUDE_BYTE_STREAM_IDLE_TIMEOUT_MS` 优先于此变量用于字节级监视程序。对于每个监视程序的未设置默认值,参见 [流式空闲监视程序](/docs/zh-CN/network-config#streaming-idle-watchdogs) |

428| `CLAUDE_SUBAGENT_BG_SHELL_MAX_MS` | 在 v2.1.260 中删除,现在是无操作。以前上限了 [后台 shell 命令](/docs/zh-CN/interactive-mode#background-bash-commands)([子代理](/docs/zh-CN/sub-agents) 启动的)可以运行的时间(以毫秒为单位),默认 60 分钟。请参阅 [后台命令生命周期规则](/docs/zh-CN/tools-reference#background-commands) |428| `CLAUDE_SUBAGENT_BG_SHELL_MAX_MS` | 在 v2.1.260 中删除,现在是无操作。以前上限了 [子代理](/docs/zh-CN/sub-agents) 启动的 [后台 shell 命令](/docs/zh-CN/interactive-mode#background-bash-commands) 可以运行的时间(毫秒),默认 60 分钟。参见 [后台命令生命周期规则](/docs/zh-CN/tools-reference#background-commands) |

429| `DEBUG` | 设置为 `1` 以启用调试模式,等同于使用 [`--debug`](/docs/zh-CN/cli-reference#cli-flags) 启动。调试日志写入 `~/.claude/debug/<session-id>.txt`,或写入由 `CLAUDE_CODE_DEBUG_LOGS_DIR` 设置的路径。仅真值 `1`、`true`、`yes` 和 `on` 启用调试模式,因此为其他工具设置的命名空间模式(如 `DEBUG=express:*`)不会触发它 |429| `DEBUG` | 设置为 `1` 以启用调试模式,等同于使用 [`--debug`](/docs/zh-CN/cli-reference#cli-flags) 启动。调试日志写入 `~/.claude/debug/<session-id>.txt`,或写入由 `CLAUDE_CODE_DEBUG_LOGS_DIR` 设置的路径。仅真值 `1`、`true`、`yes` 和 `on` 启用调试模式,因此为其他工具设置的命名空间模式(如 `DEBUG=express:*`)不会触发它 |

430| `DISABLE_AUTOUPDATER` | 设置为 `1` 以禁用自动后台更新。手动 `claude update` 仍然有效。使用 `DISABLE_UPDATES` 阻止两者 |430| `DISABLE_AUTOUPDATER` | 设置为 `1` 以禁用自动后台更新。手动 `claude update` 仍然有效。使用 `DISABLE_UPDATES` 阻止两者 |

431| `DISABLE_AUTO_COMPACT` | 设置为 `1` 以在接近上下文限制时禁用自动压缩。手动 `/compact` 命令保持可用。当您想明确控制何时压缩时使用。覆盖 [`autoCompactEnabled`](/docs/zh-CN/settings-reference#autocompactenabled) 设置 |431| `DISABLE_AUTO_COMPACT` | 设置为 `1` 以在接近上下文限制时禁用自动压缩。手动 `/compact` 命令保持可用。当您想明确控制何时压缩时使用。覆盖 [`autoCompactEnabled`](/docs/zh-CN/settings-reference#autocompactenabled) 设置 |

432| `DISABLE_COMPACT` | 设置为 `1` 以禁用所有压缩:自动压缩和手动 `/compact` 命令 |432| `DISABLE_COMPACT` | 设置为 `1` 以禁用所有压缩:自动压缩和手动 `/compact` 命令 |

433| `DISABLE_COST_WARNINGS` | 设置为 `1` 以禁用成本警告消息 |433| `DISABLE_COST_WARNINGS` | 设置为 `1` 以禁用成本警告消息 |

434| `DISABLE_DOCTOR_COMMAND` | 设置为 `1` 以隐藏 [`/doctor`](/docs/zh-CN/commands#all-commands) 设置检查 skill 及其 `/checkup` 别名。对于用户不应从会话运行设置诊断的托管部署很有用。不影响 `claude doctor` 终端命令。在 v2.1.205 之前,此变量隐藏了 `/doctor` 诊断屏幕命令 |434| `DISABLE_DOCTOR_COMMAND` | 设置为 `1` 以隐藏 [`/doctor`](/docs/zh-CN/commands#all-commands) 设置检查 skill 及其 `/checkup` 别名。对于用户不应从会话运行设置诊断的托管部署很有用。不影响 `claude doctor` 终端命令。在 v2.1.205 之前,此变量隐藏了 `/doctor` 诊断屏幕命令 |

435| `DISABLE_ERROR_REPORTING` | 设置为任何非空值(如 `1`)以选择退出错误报告。**将其设置为 `0` 或 `false` 仍会选择退出**,与大多数打开/关闭变量不同;取消设置变量以重新打开错误报告 |435| `DISABLE_ERROR_REPORTING` | 设置为任何非空值(如 `1`)以选择退出错误报告。**将其设置为 `0` 或 `false` 仍选择退出**,与大多数打开/关闭变量不同;取消设置变量以重新打开错误报告 |

436| `DISABLE_EXTRA_USAGE_COMMAND` | 设置为 `1` 以隐藏 `/usage-credits` 命令,让用户购买超过速率限制的额外使用 |436| `DISABLE_EXTRA_USAGE_COMMAND` | 设置为 `1` 以隐藏 `/usage-credits` 命令,让用户购买超过速率限制的额外使用 |

437| `DISABLE_FEEDBACK_COMMAND` | 设置为 `1` 以禁用 `/feedback` 命令和 [Claude 起草的反馈](/docs/zh-CN/tools-reference#sendfeedback-tool-behavior)。也禁用 `/bug` 和 `/share`,它们通过相同路径报告;在 v2.1.212 之前它们是 `/feedback` 的别名,因此命令在每个名称下被禁用。较旧的名称 `DISABLE_BUG_COMMAND` 也被接受 |437| `DISABLE_FEEDBACK_COMMAND` | 设置为 `1` 以禁用 `/feedback` 命令和 [Claude 起草的反馈](/docs/zh-CN/tools-reference#sendfeedback-tool-behavior)。也禁用 `/bug` 和 `/share`,它们通过相同的路径报告;在 v2.1.212 之前,它们是 `/feedback` 的别名,因此命令在每个名称下被禁用。也接受较旧的名称 `DISABLE_BUG_COMMAND` |

438| `DISABLE_GROWTHBOOK` | 设置为 `1` 或 `true` 以禁用 GrowthBook 功能标志获取并为每个标志使用代码默认值。这使 [Remote Control](/docs/zh-CN/remote-control#requirements) 和其他 [需要功能标志获取的功能](#features-that-need-feature-flag-fetching) 不可用。将其设置为 `0` 或 `false` 保持获取打开。遥测事件日志记录保持打开,除非也设置了 `DISABLE_TELEMETRY` |438| `DISABLE_GROWTHBOOK` | 设置为 `1` 或 `true` 以禁用 GrowthBook 功能标志获取并为每个标志使用代码默认值。这使 [Remote Control](/docs/zh-CN/remote-control) 和其他 [需要功能标志获取的功能](#features-that-need-feature-flag-fetching) 不可用。将其设置为 `0` 或 `false` 保持获取打开。遥测事件日志保持打开,除非也设置 `DISABLE_TELEMETRY` |

439| `DISABLE_INSTALLATION_CHECKS` | 设置为 `1` 以禁用安装警告。仅在手动管理安装位置时使用,因为这可能掩盖标准安装的问题 |439| `DISABLE_INSTALLATION_CHECKS` | 设置为 `1` 以禁用安装警告。仅在手动管理安装位置时使用,因为这可能掩盖标准安装的问题 |

440| `DISABLE_INSTALL_GITHUB_APP_COMMAND` | 设置为 `1` 以隐藏 `/install-github-app` 命令。当使用第三方提供商(Amazon Bedrock、Google Cloud's Agent Platform 或 Microsoft Foundry)时已隐藏 |440| `DISABLE_INSTALL_GITHUB_APP_COMMAND` | 设置为 `1` 以隐藏 `/install-github-app` 命令。当使用第三方提供商(Amazon Bedrock、Google Cloud's Agent Platform 或 Microsoft Foundry)时已隐藏 |

441| `DISABLE_INTERLEAVED_THINKING` | 设置为 `1` 以防止发送交错思考测试版标头。当您的 LLM 网关或提供商不支持 [交错思考](https://platform.claude.com/docs/en/build-with-claude/extended-thinking#interleaved-thinking) 时很有用 |441| `DISABLE_INTERLEAVED_THINKING` | 设置为 `1` 以防止发送交错思考测试版标头。当您的 LLM 网关或提供商不支持 [交错思考](https://platform.claude.com/docs/en/build-with-claude/extended-thinking#interleaved-thinking) 时很有用 |


443| `DISABLE_LOGOUT_COMMAND` | 设置为 `1` 以隐藏 `/logout` 命令 |443| `DISABLE_LOGOUT_COMMAND` | 设置为 `1` 以隐藏 `/logout` 命令 |

444| `DISABLE_PROMPT_CACHING` | 设置为 `1` 以为所有模型禁用 [提示缓存](/docs/zh-CN/prompt-caching#disable-prompt-caching)(优先于每个模型设置) |444| `DISABLE_PROMPT_CACHING` | 设置为 `1` 以为所有模型禁用 [提示缓存](/docs/zh-CN/prompt-caching#disable-prompt-caching)(优先于每个模型设置) |

445| `DISABLE_PROMPT_CACHING_FABLE` | 设置为 `1` 以为 Fable 模型禁用提示缓存 |445| `DISABLE_PROMPT_CACHING_FABLE` | 设置为 `1` 以为 Fable 模型禁用提示缓存 |

446| `DISABLE_PROMPT_CACHING_HAIKU` | 设置为 `1` 以为 Haiku 模型禁用提示缓存 |446| `DISABLE_PROMPT_CACHING_HAIKU` | 设置为 `1` 以为 [默认 Haiku 模型](/docs/zh-CN/prompt-caching#disable-prompt-caching) 禁用提示缓存,无论它在哪里运行 |

447| `DISABLE_PROMPT_CACHING_OPUS` | 设置为 `1` 以为 Opus 模型禁用提示缓存 |447| `DISABLE_PROMPT_CACHING_OPUS` | 设置为 `1` 以为 [默认 Opus 模型](/docs/zh-CN/prompt-caching#disable-prompt-caching) 禁用提示缓存 |

448| `DISABLE_PROMPT_CACHING_SONNET` | 设置为 `1` 以为 Sonnet 模型禁用提示缓存 |448| `DISABLE_PROMPT_CACHING_SONNET` | 设置为 `1` 以为 [默认 Sonnet 模型](/docs/zh-CN/prompt-caching#disable-prompt-caching) 禁用提示缓存 |

449| `DISABLE_TELEMETRY` | 设置为任何非空值(如 `1`)以选择退出遥测。**将其设置为 `0` 或 `false` 仍会选择退出**,与大多数打开/关闭变量不同;取消设置变量以重新打开遥测。遥测事件不包括用户数据,如代码、文件路径或 bash 命令。也禁用功能标志获取,这使 [Remote Control](/docs/zh-CN/remote-control#requirements) 和其他 [需要功能标志获取的功能](#features-that-need-feature-flag-fetching) 不可用。请参阅 [为您的组织关闭遥测](/docs/zh-CN/managed-settings#turn-telemetry-off-for-your-organization) |449| `DISABLE_TELEMETRY` | 设置为任何非空值(如 `1`)以选择退出遥测。**将其设置为 `0` 或 `false` 仍选择退出**,与大多数打开/关闭变量不同;取消设置变量以重新打开遥测。遥测事件不包括用户数据,如代码、文件路径或 Bash 命令。也禁用 [功能标志获取](#features-that-need-feature-flag-fetching)。参见 [为您的组织关闭遥测](/docs/zh-CN/managed-settings#turn-telemetry-off-for-your-organization) |

450| `DISABLE_UPDATES` | 设置为 `1` 以阻止所有更新,包括手动 `claude update` 和 `claude install`。比 `DISABLE_AUTOUPDATER` 更严格。在通过您自己的渠道分发 Claude Code 且用户不应自我更新时使用 |450| `DISABLE_UPDATES` | 设置为 `1` 以阻止所有更新,包括手动 `claude update` 和 `claude install`。比 `DISABLE_AUTOUPDATER` 更严格。当通过您自己的渠道分发 Claude Code 且用户不应自我更新时使用 |

451| `DISABLE_UPGRADE_COMMAND` | 设置为 `1` 以隐藏 `/upgrade` 命令 |451| `DISABLE_UPGRADE_COMMAND` | 设置为 `1` 以隐藏 `/upgrade` 命令 |

452| `DO_NOT_TRACK` | 设置为 `1` 以选择退出遥测,效果与 `DISABLE_TELEMETRY` 相同,包括使 [Remote Control](/docs/zh-CN/remote-control#requirements) 和其他 [需要功能标志获取的功能](#features-that-need-feature-flag-fetching) 不可用。Claude Code 将此变量读作标准布尔值,因此 `0` 保持遥测打开,并将其视为许多开发者 CLI 识别的跨工具约定 |452| `DO_NOT_TRACK` | 设置为 `1` 以选择退出遥测,与 `DISABLE_TELEMETRY` 相同的效果,包括 [功能标志获取](#features-that-need-feature-flag-fetching)。Claude Code 将此变量读作标准布尔值,因此 `0` 保持遥测打开,并将其视为许多开发者 CLI 识别的跨工具约定 |

453| `ENABLE_BETA_TRACING_DETAILED` | 与 `BETA_TRACING_ENDPOINT` 一起设置为 `1` 以打开 [详细测试版跟踪](/docs/zh-CN/monitoring-usage#traces-beta),它添加内容承载跨度属性和 `claude_code.hook` 跨度。交互式 CLI 会话也需要您的组织被列入测试版白名单。两个变量在 [项目和本地设置](/docs/zh-CN/settings-reference#variables-claude-code-ignores-in-env) 中被忽略 |453| `ENABLE_BETA_TRACING_DETAILED` | 设置为 `1`,与 `BETA_TRACING_ENDPOINT` 一起,以打开 [详细测试版跟踪](/docs/zh-CN/monitoring-usage#traces-beta),它添加内容承载跨度属性和 `claude_code.hook` 跨度。交互式 CLI 会话也需要您的组织被列入测试版白名单。两个变量在 [项目和本地设置](/docs/zh-CN/settings-reference#variables-claude-code-ignores-in-env) 中被忽略 |

454| `ENABLE_CLAUDEAI_MCP_SERVERS` | 设置为 `false` 以停止 Claude Code 从 [claude.ai MCP 服务器](/docs/zh-CN/mcp#use-mcp-servers-from-claude-ai) 获取。对于已登录的用户默认启用。要按项目或按组织禁用,改为在设置中设置 [`disableClaudeAiConnectors`](/docs/zh-CN/settings-reference#disableclaudeaiconnectors) |454| `ENABLE_CLAUDEAI_MCP_SERVERS` | 设置为 `false` 以停止 Claude Code 从 [claude.ai MCP 服务器](/docs/zh-CN/mcp#use-mcp-servers-from-claude-ai) 获取。对于已登录的用户默认启用。要按项目或按组织禁用,改为在设置中设置 [`disableClaudeAiConnectors`](/docs/zh-CN/settings-reference#disableclaudeaiconnectors) |

455| `ENABLE_PROMPT_CACHING_1H` | 设置为 `1` 以请求 1 小时 [提示缓存 TTL](/docs/zh-CN/prompt-caching#cache-lifetime) 而不是默认 5 分钟。用于 API 密钥、[Amazon Bedrock](/docs/zh-CN/amazon-bedrock)、[Google Cloud's Agent Platform](/docs/zh-CN/google-vertex-ai)、[Microsoft Foundry](/docs/zh-CN/microsoft-foundry) 和 [Claude Platform on AWS](/docs/zh-CN/claude-platform-on-aws) 用户。订阅用户在包含的使用范围内自动在 [主对话](/docs/zh-CN/prompt-caching#which-ttl-each-request-gets) 上接收 1 小时 TTL。订阅用户从 [使用信用](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) 中提取可以设置它以保持 1 小时 TTL。1 小时缓存写入以更高的速率计费。要改为按请求桶选择 TTL,请使用 `CLAUDE_CODE_PROMPT_CACHE_TTL` 和 `CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL`,它们优先于此变量 |455| `ENABLE_PROMPT_CACHING_1H` | 设置为 `1` 以请求 1 小时 [提示缓存 TTL](/docs/zh-CN/prompt-caching#cache-lifetime) 而不是默认 5 分钟。用于 API 密钥、[Amazon Bedrock](/docs/zh-CN/amazon-bedrock)、[Google Cloud's Agent Platform](/docs/zh-CN/google-vertex-ai)、[Microsoft Foundry](/docs/zh-CN/microsoft-foundry) 和 [Claude Platform on AWS](/docs/zh-CN/claude-platform-on-aws) 用户。订阅用户在包含的使用范围内自动在 [主对话](/docs/zh-CN/prompt-caching#which-ttl-each-request-gets) 上接收 1 小时 TTL。订阅用户从 [使用信用](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) 中提取可以设置它以保持 1 小时 TTL。1 小时缓存写入以更高的速率计费。要按请求桶选择 TTL,改为使用 `CLAUDE_CODE_PROMPT_CACHE_TTL` 和 `CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL`,它们优先于此变量 |

456| `ENABLE_PROMPT_CACHING_1H_BEDROCK` | 已弃用。改用 `ENABLE_PROMPT_CACHING_1H` |456| `ENABLE_PROMPT_CACHING_1H_BEDROCK` | 已弃用。改为使用 `ENABLE_PROMPT_CACHING_1H` |

457| `ENABLE_TOOL_SEARCH` | 控制 [MCP 工具搜索](/docs/zh-CN/mcp#scale-with-mcp-tool-search)。未设置时,Claude Code 默认延迟所有 MCP 工具。它仍在早于 Claude 4.5 代的 Google Cloud's Agent Platform 模型上预先加载它们,在 Azure 上托管的 Microsoft Foundry 部署上,以及当 `ANTHROPIC_BASE_URL` 指向非第一方主机时。`true` 始终延迟并发送测试版标头,除了那些相同的 Agent Platform 模型和 Microsoft Foundry 部署;请求在不支持 `tool_reference` 的代理上失败。`auto` 在工具定义适合上下文的 10% 内时预先加载。`auto:N` 设置自定义阈值,例如 `auto:5` 为 5%。`false` 预先加载所有工具。当设置 `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` 时,您自己设置的值被忽略。在 v2.1.221 之前,Claude Code 在 Google Cloud's Agent Platform 上为所有模型禁用工具搜索,除非您将此变量设置为 `true` |457| `ENABLE_TOOL_SEARCH` | 控制 [MCP 工具搜索](/docs/zh-CN/mcp#scale-with-mcp-tool-search)。未设置时,Claude Code 默认延迟所有 MCP 工具。它仍在早于 Claude 4.5 代的 Google Cloud's Agent Platform 模型上预先加载它们,在 Azure 上托管的 Microsoft Foundry 部署上,以及当 `ANTHROPIC_BASE_URL` 指向非第一方主机时。`true` 始终延迟并发送测试版标头,除了在这些相同的 Agent Platform 模型和 Microsoft Foundry 部署上;请求在不支持 `tool_reference` 的代理上失败。`auto` 在工具定义适合上下文的 10% 内时预先加载。`auto:N` 设置自定义阈值,例如 `auto:5` 为 5%。`false` 预先加载所有工具。您自己设置的值在设置 `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` 时被忽略。在 v2.1.221 之前,Claude Code 对 Google Cloud's Agent Platform 上的所有模型禁用工具搜索,除非您将此变量设置为 `true` |

458| `FALLBACK_FOR_ALL_PRIMARY_MODELS` | 设置为任何非空值(如 `1`)以使 Claude Code 在没有配置回退模型时停止在重复过载错误上重试每个模型。**将其设置为 `0` 或 `false` 仍会启用此**,与大多数打开/关闭变量不同;取消设置变量以恢复默认重试行为。没有它,Claude Code 在您使用 API 密钥或 [第三方提供商](/docs/zh-CN/third-party-integrations) 而不是 Claude 订阅进行身份验证时,停止在 Opus、Fable 或 Mythos 模型上重试这种方式。在 Claude Code v2.1.160 或更高版本上,Claude Code 在重复过载错误时切换到您配置的 [回退模型链](/docs/zh-CN/model-config#fallback-model-chains),用于任何主模型,因此此变量不影响切换到回退模型 |458| `FALLBACK_FOR_ALL_PRIMARY_MODELS` | 设置为任何非空值(如 `1`)以使 Claude Code 在没有配置回退模型时停止在重复过载错误上重试每个模型。**将其设置为 `0` 或 `false` 仍启用此**,与大多数打开/关闭变量不同;取消设置变量以恢复默认重试行为。没有它,Claude Code 在使用 API 密钥或 [第三方提供商](/docs/zh-CN/third-party-integrations) 而不是 Claude 订阅进行身份验证时,停止在它识别为 Opus、Fable 或 Mythos 模型的重复过载错误上重试。在 Claude Code v2.1.160 或更高版本上,Claude Code 在任何主模型的重复过载错误上切换到您配置的 [回退模型链](/docs/zh-CN/model-config#fallback-model-chains),因此此变量不影响切换到回退模型 |

459| `FORCE_AUTOUPDATE_PLUGINS` | 设置为 `1` 以强制插件自动更新,即使主自动更新器通过 `DISABLE_AUTOUPDATER` 禁用 |459| `FORCE_AUTOUPDATE_PLUGINS` | 设置为 `1` 以强制插件自动更新,即使主自动更新通过 `DISABLE_AUTOUPDATER` 禁用 |

460| `FORCE_HYPERLINK` | 设置为 `1` 以在您的终端支持但未自动检测时启用可点击的 OSC 8 超链接,或 `0` 以禁用它们。未设置时,Claude Code 仅在检测到终端支持时启用超链接。Claude Code 将此值解析为数字,而不是布尔值,因此 `false`、`no` 或 `off` 等值启用超链接而不是禁用它们。页脚 [PR 或合并请求徽章](/docs/zh-CN/interactive-mode#pr-review-status) 呈现为超链接,即使 Claude Code 无法检测到终端支持(如通过 SSH)。设置 `0` 以呈现徽章为纯文本 |460| `FORCE_HYPERLINK` | 设置为 `1` 以在您的终端支持但未自动检测时启用可点击的 OSC 8 超链接,或 `0` 以禁用它们。未设置时,Claude Code 仅在检测到终端支持时启用超链接。Claude Code 将此值解析为数字,而不是布尔值,因此 `false`、`no` 或 `off` 等值启用超链接而不是禁用它们。[PR 或合并请求徽章](/docs/zh-CN/interactive-mode#pr-review-status) 页脚呈现为超链接,即使 Claude Code 无法检测到终端支持(如通过 SSH)。设置 `0` 以将徽章呈现为纯文本 |

461| `FORCE_PROMPT_CACHING_5M` | 设置为 `1` 以强制 5 分钟提示缓存 TTL,即使 1 小时 TTL 会应用。覆盖 `CLAUDE_CODE_PROMPT_CACHE_TTL`、`CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL`、`ENABLE_PROMPT_CACHING_1H` 和 `promptCacheTtl` 和 `subagentPromptCacheTtl` 设置 |461| `FORCE_PROMPT_CACHING_5M` | 设置为 `1` 以强制 5 分钟提示缓存 TTL,即使 1 小时 TTL 会以其他方式适用。覆盖 `CLAUDE_CODE_PROMPT_CACHE_TTL`、`CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL`、`ENABLE_PROMPT_CACHING_1H` 和 `promptCacheTtl` 和 `subagentPromptCacheTtl` 设置 |

462| `HTTP_PROXY` | 为网络连接指定 HTTP 代理服务器 |462| `HTTP_PROXY` | 为网络连接指定 HTTP 代理服务器 |

463| `HTTPS_PROXY` | 为网络连接指定 HTTPS 代理服务器 |463| `HTTPS_PROXY` | 为网络连接指定 HTTPS 代理服务器 |

464| `IS_DEMO` | 设置为任何非空值(如 `1`)以启用演示模式:从标头和 `/status` 输出隐藏您的电子邮件和组织名称,并跳过入职。**将其设置为 `0` 或 `false` 仍会启用演示模式**,与大多数打开/关闭变量不同;取消设置变量以关闭它。在流式传输或录制会话时很有用 |464| `IS_DEMO` | 设置为任何非空值(如 `1`)以启用演示模式:从标头和 `/status` 输出隐藏您的电子邮件和组织名称,并跳过入门。**将其设置为 `0` 或 `false` 仍启用演示模式**,与大多数打开/关闭变量不同;取消设置变量以关闭它。在流式传输或录制会话时很有用 |

465| `MAX_MCP_OUTPUT_TOKENS` | MCP 工具响应中允许的最大令牌数。Claude Code 在输出超过 10,000 令牌时显示警告。声明 [`anthropic/maxResultSizeChars`](/docs/zh-CN/mcp#raise-the-limit-for-a-specific-tool) 的工具对文本内容使用该字符限制,但来自这些工具的图像内容仍受此变量约束(默认值:25000) |465| `MAX_MCP_OUTPUT_TOKENS` | MCP 工具响应中允许的最大令牌数。当输出超过 10,000 令牌时,Claude Code 显示警告。声明 [`anthropic/maxResultSizeChars`](/docs/zh-CN/mcp#raise-the-limit-for-a-specific-tool) 的工具为文本内容改用该字符限制,但来自这些工具的图像内容仍受此变量约束(默认值:25000) |

466| `MAX_STRUCTURED_OUTPUT_RETRIES` | 当模型的响应在非交互模式下使用 `-p` 标志的 [`--json-schema`](/docs/zh-CN/cli-reference#cli-flags) 验证失败时,Claude Code 允许的尝试次数;在那么多失败的尝试后没有有效输出,运行失败。当 [工作流](/docs/zh-CN/workflows) 子代理的结构化输出验证失败时,相同的上限适用。默认为 5,第一次尝试加四次重试 |466| `MAX_STRUCTURED_OUTPUT_RETRIES` | 当模型的响应在非交互模式下使用 `-p` 标志的 [`--json-schema`](/docs/zh-CN/cli-reference#cli-flags) 验证失败时,Claude Code 允许的尝试次数;在那么多失败的尝试后没有有效输出,运行失败。当 [工作流](/docs/zh-CN/workflows) 子代理的结构化输出验证失败时,相同的上限适用。默认为 5,第一次尝试加四次重试 |

467| `MAX_THINKING_TOKENS` | [扩展思考](https://platform.claude.com/docs/en/build-with-claude/extended-thinking) 的固定令牌预算。Claude Code 将其上限设置为请求的最大输出令牌下方一个令牌,从不低于 1,024。请参阅 `CLAUDE_CODE_MAX_OUTPUT_TOKENS` 了解如何设置该限制。未设置且启用思考时,具有 [自适应推理](/docs/zh-CN/model-config#adjust-effort-level) 的模型选择自己的思考深度,其他模型使用上限。设置为 `0` 以在 Anthropic API 上禁用思考,但 Opus 5.5、Sonnet 5.5 和 Fable 模型除外,这些模型无法关闭思考。在 [第三方提供商](/docs/zh-CN/third-party-integrations) 上,`0` 改为省略 `thinking` 参数。在 Anthropic API 上关闭思考时,Claude Code 向它知道 [不接受该组合](/docs/zh-CN/errors#effort-isnt-available-with-thinking-turned-off) 的模型(如 Opus 5)发送 effort `high` 而不是更高级别。Claude Code 忽略自适应推理模型上的非零值,除了 Claude Code 关闭自适应推理的模型(使用 `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING`) |467| `MAX_THINKING_TOKENS` | [扩展思考](https://platform.claude.com/docs/en/build-with-claude/extended-thinking) 的固定令牌预算。Claude Code 将其上限设置为请求的最大输出令牌下方一个令牌,从不低于 1,024。参见 `CLAUDE_CODE_MAX_OUTPUT_TOKENS` 了解该限制如何设置。未设置时,具有 [自适应推理](/docs/zh-CN/model-config#adjust-effort-level) 的模型选择其自己的思考深度,其他模型使用上限。设置为 `0` 以在 Anthropic API 上禁用思考,除了 Opus 5.5、Sonnet 5.5 和 Fable 模型,无法关闭思考。在 [第三方提供商](/docs/zh-CN/third-party-integrations) 上,`0` 改为省略 `thinking` 参数。在 Anthropic API 上关闭思考时,Claude Code 向它知道 [不接受该组合](/docs/zh-CN/errors#effort-isnt-available-with-thinking-turned-off) 的模型(如 Opus 5)发送 effort `high` 而不是更高级别。Claude Code 在自适应推理模型上忽略非零值,除了 `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` 关闭自适应推理的模型 |

468| `MCP_CLIENT_SECRET` | 需要 [预配置凭证](/docs/zh-CN/mcp#use-pre-configured-oauth-credentials) 的 MCP 服务器的 OAuth 客户端密钥。在使用 `--client-secret` 添加服务器时避免交互式提示 |468| `MCP_CLIENT_SECRET` | 需要 [预配置凭证](/docs/zh-CN/mcp#use-pre-configured-oauth-credentials) 的 MCP 服务器的 OAuth 客户端密钥。在使用 `--client-secret` 添加服务器时避免交互式提示 |

469| `MCP_CONNECTION_NONBLOCKING` | 控制启动是否在第一个查询之前等待 MCP 服务器连接。MCP 启动默认非阻塞:服务器在后台连接,它们的工具在完成时变为可用。设置为 `0` 以使 Claude Code 在第一个查询之前等待服务器连接。配置为 [`alwaysLoad: true`](/docs/zh-CN/mcp#exempt-a-server-from-deferral) 的服务器仍然使启动等待,除非从 [发现缓存](/docs/zh-CN/mcp#server-status-detail) 提供,因为它们的工具必须在构建第一个提示时存在。在非交互模式(`-p`)中没有 `--input-format stream-json`,Claude Code 也在第一个转弯之前等待仍然待处理的服务器,无论此变量如何。当您明确传递 [`--mcp-config`](/docs/zh-CN/cli-reference#cli-flags) 时,等待有更长的截止时间;请参阅该标志的条目了解缓存服务器异常 |469| `MCP_CONNECTION_NONBLOCKING` | 控制启动是否等待 MCP 服务器在第一个查询之前连接。MCP 启动默认非阻塞:服务器在后台连接,其工具在完成时变为可用。设置为 `0` 以使 Claude Code 在第一个查询之前等待服务器连接。配置为 [`alwaysLoad: true`](/docs/zh-CN/mcp#exempt-a-server-from-deferral) 的服务器仍使启动等待,除非从 [发现缓存](/docs/zh-CN/mcp#server-status-detail) 提供,因为其工具必须在构建第一个提示时存在。在非交互模式(`-p`)中没有 `--input-format stream-json`,Claude Code 也在第一个转向之前等待仍待处理的服务器,无论此变量如何。当您显式传递 [`--mcp-config`](/docs/zh-CN/cli-reference#cli-flags) 时,等待有更长的截止时间;参见该标志的条目了解缓存服务器异常 |

470| `MCP_CONNECT_TIMEOUT_MS` | 阻塞 MCP 启动在快照工具列表之前等待连接批次的时间(以毫秒为单位)(默认值:5000)。当 `MCP_CONNECTION_NONBLOCKING=0` 或对于标记为 [`alwaysLoad: true`](/docs/zh-CN/mcp#exempt-a-server-from-deferral) 的服务器时应用。仍然待处理的服务器在截止时间处继续在后台连接。与 `MCP_TIMEOUT` 不同,后者界限单个服务器的连接尝试 |470| `MCP_CONNECT_TIMEOUT_MS` | 阻塞 MCP 启动等待连接批次的时间(毫秒),然后快照工具列表(默认值:5000)。当 `MCP_CONNECTION_NONBLOCKING=0` 或标记为 [`alwaysLoad: true`](/docs/zh-CN/mcp#exempt-a-server-from-deferral) 的服务器时适用。仍待处理的服务器在截止时间处继续在后台连接。与 `MCP_TIMEOUT` 不同,后者界定单个服务器的连接尝试 |

471| `MCP_DISCOVERY_CACHE` | 打开或关闭 [MCP 发现缓存](/docs/zh-CN/mcp#server-status-detail)。缓存打开时,您之前使用过的远程 HTTP 或 SSE 服务器可以显示 [`cached` 状态](/docs/zh-CN/mcp#server-status-detail),Claude Code 在其第一个工具调用时连接它,而不是在启动时。缓存默认关闭,除非逐步推出为您的帐户启用了它。设置为 `1` 以打开它,或 `0` 以保持关闭,即使推出已启用它。在 v2.1.238 之前,缓存默认打开。`cached` 状态需要 Claude Code v2.1.221 或更高版本 |471| `MCP_DISCOVERY_CACHE` | 打开或关闭 [MCP 发现缓存](/docs/zh-CN/mcp#server-status-detail)。启用缓存后,您之前使用过的远程 HTTP 或 SSE 服务器可以显示 [`cached` 状态](/docs/zh-CN/mcp#server-status-detail),Claude Code 在其第一个工具调用时连接它,而不是在启动时。缓存默认关闭,除非逐步推出已为您的帐户启用它。设置为 `1` 以打开它,或 `0` 以保持关闭,即使推出已启用它。在 v2.1.238 之前,缓存默认打开。`cached` 状态需要 Claude Code v2.1.221 或更高版本 |

472| `MCP_DISCOVERY_CACHE_MAX_STALE_S` | [发现缓存](/docs/zh-CN/mcp#server-status-detail) 条目的最大年龄(以秒为单位)(默认值:14400,或 4 小时)。在条目比那更旧的启动处,Claude Code 丢弃它并在启动时连接服务器,就像缓存关闭时一样。Claude Code 将值上限为 7 天。在 v2.1.238 之前,默认值为 86400,或 24 小时,Claude Code 没有上限值 |472| `MCP_DISCOVERY_CACHE_MAX_STALE_S` | [发现缓存](/docs/zh-CN/mcp#server-status-detail) 条目的最大年龄(秒)(默认值:14400,或 4 小时)。在条目比该值更旧的启动处,Claude Code 丢弃它并在启动时连接服务器,就像缓存关闭时一样。Claude Code 将值上限为 7 天。在 v2.1.238 之前,默认值为 86400,或 24 小时,Claude Code 未上限该值 |

473| `MCP_DISCOVERY_CACHE_STRIKES` | 在 [发现缓存](/docs/zh-CN/mcp#server-status-detail) 条目比 `MCP_DISCOVERY_CACHE_TTL_S` 更旧的启动处,Claude Code 在后台刷新它。此变量设置在 Claude Code 丢弃条目并在下一个启动时连接服务器之前,刷新可以连续失败多少次(默认值:1)。如果您的网络连接偶尔断开,请提高它,以便一次失败的刷新不会丢弃条目。需要 Claude Code v2.1.238 或更高版本 |473| `MCP_DISCOVERY_CACHE_STRIKES` | 在 [发现缓存](/docs/zh-CN/mcp#server-status-detail) 条目比 `MCP_DISCOVERY_CACHE_TTL_S` 更旧的启动处,Claude Code 在后台刷新它。此变量设置在一行中有多少刷新可以失败,然后 Claude Code 丢弃条目并在下一个启动时连接服务器(默认值:1)。如果您的网络连接偶尔断开,请提高它,以便一次失败的刷新不会丢弃条目。需要 Claude Code v2.1.238 或更高版本 |

474| `MCP_DISCOVERY_CACHE_TTL_S` | Claude Code 使用 [发现缓存](/docs/zh-CN/mcp#server-status-detail) 条目而不刷新它的秒数(默认值:900)。在条目比那更旧的启动处,Claude Code 仍然使用它但在后台刷新它。一旦条目比 `MCP_DISCOVERY_CACHE_MAX_STALE_S` 更旧,Claude Code 改为丢弃它。Claude Code 将值上限为 `MCP_DISCOVERY_CACHE_MAX_STALE_S`,默认为 4 小时。在 v2.1.238 之前,Claude Code 没有上限值 |474| `MCP_DISCOVERY_CACHE_TTL_S` | Claude Code 使用 [发现缓存](/docs/zh-CN/mcp#server-status-detail) 条目而不刷新它的秒数(默认值:900)。在条目比该值更旧的启动处,Claude Code 仍使用它但在后台刷新它。一旦条目比 `MCP_DISCOVERY_CACHE_MAX_STALE_S` 更旧,Claude Code 丢弃它。Claude Code 将值上限为 `MCP_DISCOVERY_CACHE_MAX_STALE_S`,默认为 4 小时。在 v2.1.238 之前,Claude Code 未上限该值 |

475| `MCP_OAUTH_CALLBACK_PORT` | OAuth 重定向回调的固定端口,作为在使用 [预配置凭证](/docs/zh-CN/mcp#use-pre-configured-oauth-credentials) 添加 MCP 服务器时 `--callback-port` 的替代方案 |475| `MCP_OAUTH_CALLBACK_PORT` | OAuth 重定向回调的固定端口,作为在使用 [预配置凭证](/docs/zh-CN/mcp#use-pre-configured-oauth-credentials) 添加 MCP 服务器时 `--callback-port` 的替代方案 |

476| `MCP_PROTOCOL_NEGOTIATION` | 仅在 [v2 MCP 客户端运行时](/docs/zh-CN/mcp#mcp-client-runtimes) 上,Claude Code 是否探测服务器以获取 MCP 协议修订 2026-07-28。设置 `auto` 以探测 HTTP、claude.ai 连接器和 stdio 服务器;不回答探测的服务器在较早的协议上连接,SSE 和 WebSocket 服务器始终这样做。设置 `legacy` 以跳过每个服务器的探测。没有变量,Claude Code 探测 HTTP 服务器,也在 [获取功能标志](#features-that-need-feature-flag-fetching) 的会话中探测 claude.ai 连接器服务器。任何其他值被忽略,在调试日志中显示警告。需要 Claude Code v2.1.221 或更高版本 |476| `MCP_PROTOCOL_NEGOTIATION` | 仅在 [v2 MCP 客户端运行时](/docs/zh-CN/mcp#mcp-client-runtimes) 上,Claude Code 是否探测服务器以获取 MCP 协议修订 2026-07-28。设置 `auto` 以探测 HTTP、claude.ai 连接器和 stdio 服务器;不回答探测的服务器在较早的协议上连接,SSE 和 WebSocket 服务器始终这样做。设置 `legacy` 以跳过每个服务器的探测。没有变量,Claude Code 探测 HTTP 服务器,也在 [获取功能标志](#features-that-need-feature-flag-fetching) 的会话中探测 claude.ai 连接器服务器。任何其他值被忽略,在调试日志中带警告。需要 Claude Code v2.1.221 或更高版本 |

477| `MCP_REMOTE_SERVER_CONNECTION_BATCH_SIZE` | 启动期间并行连接的远程 MCP 服务器(HTTP/SSE)的最大数量(默认值:20) |477| `MCP_REMOTE_SERVER_CONNECTION_BATCH_SIZE` | 在启动期间并行连接的远程 MCP 服务器(HTTP/SSE)的最大数量(默认值:20) |

478| `MCP_SDK_GENERATION` | 固定此进程连接 MCP 服务器的 [MCP 客户端运行时](/docs/zh-CN/mcp#mcp-client-runtimes):`v1`,基于 MCP TypeScript SDK 1.x,或 `v2`,基于 [MCP TypeScript SDK 2.0](https://ts.sdk.modelcontextprotocol.io/v2/)。没有变量,Claude Code 使用 v2,从该部分列出的版本开始。在 Claude Code v2.1.221 或更高版本上,v2 运行时检查 MCP OAuth 服务器在其授权响应中返回的发行者,当它不匹配时以以 `Issuer mismatch in authorization response` 开头的错误失败登录。v1 运行时不运行此检查。如果您设置无法识别的值,Claude Code 忽略它并在调试日志中写入警告。Claude Code 每个进程读取一次值。需要 Claude Code v2.1.218 或更高版本 |478| `MCP_SDK_GENERATION` | 固定此进程连接到 MCP 服务器的 [MCP 客户端运行时](/docs/zh-CN/mcp#mcp-client-runtimes):`v1`,基于 MCP TypeScript SDK 1.x,或 `v2`,基于 [MCP TypeScript SDK 2.0](https://ts.sdk.modelcontextprotocol.io/v2/)。没有变量,Claude Code 使用 v2,从该部分列出的版本开始。在 Claude Code v2.1.221 或更高版本上,v2 运行时检查 MCP OAuth 服务器在其授权响应中返回的发行者,当它不匹配时,使用以 `Issuer mismatch in authorization response` 开头的错误失败登录。v1 运行时不运行此检查。如果您设置无法识别的值,Claude Code 忽略它并在调试日志中写入警告。Claude Code 每个进程读取一次该值。需要 Claude Code v2.1.218 或更高版本 |

479| `MCP_SERVER_CONNECTION_BATCH_SIZE` | 启动期间并行连接的本地 MCP 服务器(stdio)的最大数量(默认值:3) |479| `MCP_SERVER_CONNECTION_BATCH_SIZE` | 在启动期间并行连接的本地 MCP 服务器(stdio)的最大数量(默认值:3) |

480| `MCP_TIMEOUT` | MCP 服务器启动的超时时间(以毫秒为单位)(默认值:30000,或 30 秒) |480| `MCP_TIMEOUT` | MCP 服务器启动的超时时间(毫秒)(默认值:30000,或 30 秒) |

481| `MCP_TOOL_TIMEOUT` | MCP 工具执行的超时时间(以毫秒为单位)(默认值:100000000,约 28 小时)。对于 HTTP、SSE 或 claude.ai 连接器服务器,每个请求也默认在 60 秒后超时;将此变量或每个服务器 `timeout` 设置为 60000 以上以提高该每个请求限制。较低的值仍会缩短整体工具执行超时,但保持每个请求限制为 60 秒。Stdio 和 WebSocket 服务器没有每个请求计时器。`.mcp.json` 中的每个服务器 `timeout` 字段覆盖此用于该服务器。至少 1000 的每个服务器 `timeout` 也为该服务器的工具调用设置最小空闲窗口,因此 `CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT` 从不更早中止它们;此下限需要 Claude Code v2.1.203 或更高版本。对于 env 变量,低于 1000 的值下限为一秒;对于每个服务器字段,低于 1000 的值被忽略 |481| `MCP_TOOL_TIMEOUT` | MCP 工具执行的超时时间(毫秒)(默认值:100000000,约 28 小时)。对于 HTTP、SSE 或 claude.ai 连接器服务器,每个请求也默认在 60 秒后超时;设置此变量或每个服务器 `timeout` 高于 60000 以提高该每个请求限制。较低的值仍缩短整体工具执行超时,但保持每个请求限制为 60 秒。Stdio 和 WebSocket 服务器没有每个请求计时器。`.mcp.json` 中的每个服务器 `timeout` 字段覆盖该服务器的此项。至少 1000 的每个服务器 `timeout` 也为该服务器的工具调用设置最小空闲窗口,因此 `CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT` 从不更早中止它们;此下限需要 Claude Code v2.1.203 或更高版本。对于 env 变量,低于 1000 的值下限为一秒;对于每个服务器字段,低于 1000 的值被忽略 |

482| `NO_PROXY` | 请求将直接发出的域和 IP 列表,绕过代理 |482| `NO_PROXY` | 请求将直接发出的域和 IP 列表,绕过代理 |

483| `OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT` | 标准 OpenTelemetry SDK 属性值长度限制。Claude Code 将内容承载遥测属性上限为此和 `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` 中的较小者,因此截断标记保持在 SDK 限制内。Claude Code 以相同方式读取 `OTEL_LOGRECORD_ATTRIBUTE_VALUE_LENGTH_LIMIT` 和 `OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT` 变体,最小设置值适用于所有信号。需要 Claude Code v2.1.214 或更高版本。请参阅 [监控](/docs/zh-CN/monitoring-usage#common-configuration-variables) |483| `OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT` | 标准 OpenTelemetry SDK 属性值长度限制。Claude Code 将内容承载遥测属性上限为此和 `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` 中的较小者,因此截断标记保持在 SDK 限制内。Claude Code 以相同方式读取 `OTEL_LOGRECORD_ATTRIBUTE_VALUE_LENGTH_LIMIT` 和 `OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT` 变体,最小设置值适用于所有信号。需要 Claude Code v2.1.214 或更高版本。参见 [监控](/docs/zh-CN/monitoring-usage#common-configuration-variables) |

484| `OTEL_LOG_ASSISTANT_RESPONSES` | 设置为 `1` 以在 `assistant_response` OpenTelemetry 日志事件上包含模型的响应文本。未设置时,使用 `OTEL_LOG_USER_PROMPTS` 的值。设置为 `0` 以保持响应被编辑,即使 `OTEL_LOG_USER_PROMPTS` 被设置。在您的 shell、用户设置或托管设置中设置它。在 [项目和本地设置](/docs/zh-CN/settings-reference#variables-claude-code-ignores-in-env) 中被忽略。需要 Claude Code v2.1.193 或更高版本。请参阅 [监控](/docs/zh-CN/monitoring-usage#assistant-response-event) |484| `OTEL_LOG_ASSISTANT_RESPONSES` | 设置为 `1` 以在 `assistant_response` OpenTelemetry 日志事件上包含模型的响应文本。未设置时,Claude Code 改为使用 `OTEL_LOG_USER_PROMPTS` 的值。设置为 `0` 以保持响应被编辑,即使 `OTEL_LOG_USER_PROMPTS` 被设置。在您的 shell、用户设置或托管设置中设置它。在 [项目和本地设置](/docs/zh-CN/settings-reference#variables-claude-code-ignores-in-env) 中被忽略。需要 Claude Code v2.1.193 或更高版本。参见 [监控](/docs/zh-CN/monitoring-usage#assistant-response-event) |

485| `OTEL_LOG_MANAGED_SETTINGS` | 设置为 `1` 以将编辑的托管设置和设置编辑前的 SHA-256 摘要添加到 `managed_settings_resolved` OpenTelemetry 日志事件。默认禁用。在您的 shell、用户设置或托管设置中设置它;项目或本地设置中的值不会打开它。需要 Claude Code v2.1.274 或更高版本。请参阅 [监控](/docs/zh-CN/monitoring-usage#managed-settings-resolved-event) |485| `OTEL_LOG_MANAGED_SETTINGS` | 设置为 `1` 以将编辑的托管设置和设置编辑前的 SHA-256 摘要添加到 `managed_settings_resolved` OpenTelemetry 日志事件。默认禁用。在您的 shell、用户设置或托管设置中设置它;项目或本地设置中的值不会打开它。需要 Claude Code v2.1.274 或更高版本。参见 [监控](/docs/zh-CN/monitoring-usage#managed-settings-resolved-event) |

486| `OTEL_LOG_RAW_API_BODIES` | 发出 Anthropic Messages API 请求和响应 JSON 作为 `api_request_body` / `api_response_body` 日志事件。设置为 `1` 用于在内容限制处截断的内联正文,或 `file:<dir>` 以将未截断的正文写入磁盘并改为发出 `body_ref` 路径。`CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` 配置内容限制,默认 60 KB。默认禁用;正文包括整个对话历史。在您的 shell、用户设置或托管设置中设置它。在 [项目和本地设置](/docs/zh-CN/settings-reference#variables-claude-code-ignores-in-env) 中被忽略。请参阅 [监控](/docs/zh-CN/monitoring-usage#api-request-body-event) |486| `OTEL_LOG_RAW_API_BODIES` | 发出 Anthropic Messages API 请求和响应 JSON 作为 `api_request_body` / `api_response_body` 日志事件。设置为 `1` 用于在内容限制处截断的内联正文,或 `file:<dir>` 以将未截断的正文写入磁盘并改为发出 `body_ref` 路径。`CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` 配置内容限制,默认 60 KB。默认禁用;正文包括整个对话历史。在您的 shell、用户设置或托管设置中设置它。在 [项目和本地设置](/docs/zh-CN/settings-reference#variables-claude-code-ignores-in-env) 中被忽略。参见 [监控](/docs/zh-CN/monitoring-usage#api-request-body-event) |

487| `OTEL_LOG_TOOL_CONTENT` | 设置为 `1` 以在 `tool.output` OpenTelemetry 跨度事件中包含工具内容。跨度属性在 [自己的门](/docs/zh-CN/monitoring-usage#new-context-gates) 下携带工具内容。需要 [跟踪](/docs/zh-CN/monitoring-usage#traces-beta)。默认禁用以保护敏感数据。在您的 shell、用户设置或托管设置中设置它。在 [项目和本地设置](/docs/zh-CN/settings-reference#variables-claude-code-ignores-in-env) 中被忽略。请参阅 [监控](/docs/zh-CN/monitoring-usage#tool-output-span-event) |487| `OTEL_LOG_TOOL_CONTENT` | 设置为 `1` 以在 `tool.output` OpenTelemetry 跨度事件上包含工具内容。跨度属性在 [其自己的门](/docs/zh-CN/monitoring-usage#new-context-gates) 下携带工具内容。需要 [跟踪](/docs/zh-CN/monitoring-usage#traces-beta)。默认禁用以保护敏感数据。在您的 shell、用户设置或托管设置中设置它。在 [项目和本地设置](/docs/zh-CN/settings-reference#variables-claude-code-ignores-in-env) 中被忽略,除了该部分描述的关闭值。参见 [监控](/docs/zh-CN/monitoring-usage#tool-output-span-event) |

488| `OTEL_LOG_TOOL_DETAILS` | 设置为 `1` 以在 OpenTelemetry 跟踪和日志中包含工具输入参数、MCP 服务器名称、用户创作的工作流名称、工具失败上的原始错误字符串、`api_refusal` 事件上的拒绝 `category` 和其他工具详情。默认禁用以保护 PII。在您的 shell、用户设置或托管设置中设置它。在 [项目和本地设置](/docs/zh-CN/settings-reference#variables-claude-code-ignores-in-env) 中被忽略。请参阅 [监控](/docs/zh-CN/monitoring-usage) |488| `OTEL_LOG_TOOL_DETAILS` | 设置为 `1` 以在 OpenTelemetry 指标、跟踪和日志中包含工具输入参数;MCP 服务器名称;用户创作的工作流名称;工具失败上的原始错误字符串;`api_refusal` 事件上的拒绝 `category`;[成本和令牌指标](/docs/zh-CN/monitoring-usage#cost-counter) 上的真实代理、skill、插件和 MCP 服务器名称;以及其他工具详情。默认禁用以保护 PII。在您的 shell、用户设置或托管设置中设置它。在 [项目和本地设置](/docs/zh-CN/settings-reference#variables-claude-code-ignores-in-env) 中被忽略,除了该部分描述的关闭值。参见 [监控](/docs/zh-CN/monitoring-usage) |

489| `OTEL_LOG_USER_PROMPTS` | 设置为 `1` 以在 OpenTelemetry 跟踪和日志中包含用户提示文本。默认禁用(提示被编辑)。在您的 shell、用户设置或托管设置中设置它。在 [项目和本地设置](/docs/zh-CN/settings-reference#variables-claude-code-ignores-in-env) 中被忽略。请参阅 [监控](/docs/zh-CN/monitoring-usage) |489| `OTEL_LOG_USER_PROMPTS` | 设置为 `1` 以在 OpenTelemetry 跟踪和日志中包含用户提示文本。默认禁用(提示被编辑)。在您的 shell、用户设置或托管设置中设置它。在 [项目和本地设置](/docs/zh-CN/settings-reference#variables-claude-code-ignores-in-env) 中被忽略,除了该部分描述的关闭值。参见 [监控](/docs/zh-CN/monitoring-usage) |

490| `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` | 设置为 `false` 以从指标属性中排除帐户 UUID(默认值:包含)。请参阅 [监控](/docs/zh-CN/monitoring-usage) |490| `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` | 设置为 `false` 以从指标属性中排除帐户 UUID(默认值:包含)。参见 [监控](/docs/zh-CN/monitoring-usage) |

491| `OTEL_METRICS_INCLUDE_ENTRYPOINT` | 设置为 `true` 以在指标属性中包含会话入口点(默认值:排除)。在 v2.1.152 中添加。请参阅 [监控](/docs/zh-CN/monitoring-usage) |491| `OTEL_METRICS_INCLUDE_ENTRYPOINT` | 设置为 `true` 以在指标属性中包含会话入口点(默认值:排除)。在 v2.1.152 中添加。参见 [监控](/docs/zh-CN/monitoring-usage) |

492| `OTEL_METRICS_INCLUDE_REPOSITORY` | 设置为 `true` 以使用标识会话存储库的 `vcs.*` 属性标记 OpenTelemetry 指标和事件(默认值:排除)。需要 Claude Code v2.1.269 或更高版本。请参阅 [存储库属性](/docs/zh-CN/monitoring-usage#repository-attributes) |492| `OTEL_METRICS_INCLUDE_REPOSITORY` | 设置为 `true` 以使用标识会话存储库的 `vcs.*` 属性标记 OpenTelemetry 指标和事件(默认值:排除)。需要 Claude Code v2.1.269 或更高版本。参见 [存储库属性](/docs/zh-CN/monitoring-usage#repository-attributes) |

493| `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES` | 从 v2.1.161 开始,Claude Code 将 `OTEL_RESOURCE_ATTRIBUTES` 密钥附加到指标数据点标签。设置为 `false` 以排除它们(默认值:包含)。请参阅 [监控](/docs/zh-CN/monitoring-usage#multi-team-organization-support) |493| `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES` | 从 v2.1.161 开始,Claude Code 将 `OTEL_RESOURCE_ATTRIBUTES` 密钥附加到指标数据点标签。设置为 `false` 以排除它们(默认值:包含)。参见 [监控](/docs/zh-CN/monitoring-usage#multi-team-organization-support) |

494| `OTEL_METRICS_INCLUDE_SESSION_ID` | 设置为 `false` 以从指标属性中排除会话 ID(默认值:包含)。请参阅 [监控](/docs/zh-CN/monitoring-usage) |494| `OTEL_METRICS_INCLUDE_SESSION_ID` | 设置为 `false` 以从指标属性中排除会话 ID(默认值:包含)。参见 [监控](/docs/zh-CN/monitoring-usage) |

495| `OTEL_METRICS_INCLUDE_VERSION` | 设置为 `true` 以在指标属性中包含 Claude Code 版本(默认值:排除)。请参阅 [监控](/docs/zh-CN/monitoring-usage) |495| `OTEL_METRICS_INCLUDE_VERSION` | 设置为 `true` 以在指标属性中包含 Claude Code 版本(默认值:排除)。参见 [监控](/docs/zh-CN/monitoring-usage) |

496| `SLASH_COMMAND_TOOL_CHAR_BUDGET` | 覆盖 [Skill 工具](/docs/zh-CN/skills#control-who-invokes-a-skill) 显示的 skill 元数据的字符预算。预算在上下文窗口的 1% 处动态缩放,回退为 8,000 字符。为了向后兼容保留的旧名称 |496| `SLASH_COMMAND_TOOL_CHAR_BUDGET` | 覆盖为 [Skill 工具](/docs/zh-CN/skills#control-who-invokes-a-skill) 显示的 skill 元数据的字符预算。预算在上下文窗口的 1% 处动态缩放,回退为 8,000 字符。为了向后兼容保留的旧名称 |

497| `TASK_MAX_OUTPUT_LENGTH` | 在 v2.1.277 中删除,现在是无操作,与它大小的 `TaskOutput` 工具一起。以前设置 [后台任务](/docs/zh-CN/tools-reference#background-commands) 的最大字符数,`TaskOutput` 工具保留。Claude 改为使用 `Read` 读取后台任务的输出文件 |497| `TASK_MAX_OUTPUT_LENGTH` | 在 v2.1.277 中删除,现在是无操作,与它大小的 `TaskOutput` 工具一起。以前设置 [后台任务](/docs/zh-CN/tools-reference#background-commands) 的最大字符数,`TaskOutput` 工具保留。Claude 改为使用 `Read` 读取后台任务的输出文件 |

498| `USE_BUILTIN_RIPGREP` | 设置为 `0` 以使用系统安装的 `rg` 而不是 Claude Code 包含的 `rg` |498| `USE_BUILTIN_RIPGREP` | 设置为 `0` 以使用系统安装的 `rg` 而不是 Claude Code 包含的 `rg` |

499| `VERTEX_REGION_CLAUDE_3_5_HAIKU` | 使用 Google Cloud's Agent Platform 时覆盖 Claude 3.5 Haiku 的区域 |499| `VERTEX_REGION_CLAUDE_3_5_HAIKU` | 使用 Google Cloud's Agent Platform 时覆盖 Claude 3.5 Haiku 的区域 |


516| `VERTEX_REGION_CLAUDE_FABLE_5_1` | 使用 Google Cloud's Agent Platform 时覆盖 Claude Fable 5.1 的区域。在 v2.1.257 中添加 |516| `VERTEX_REGION_CLAUDE_FABLE_5_1` | 使用 Google Cloud's Agent Platform 时覆盖 Claude Fable 5.1 的区域。在 v2.1.257 中添加 |

517| `VERTEX_REGION_CLAUDE_HAIKU_4_5` | 使用 Google Cloud's Agent Platform 时覆盖 Claude Haiku 4.5 的区域 |517| `VERTEX_REGION_CLAUDE_HAIKU_4_5` | 使用 Google Cloud's Agent Platform 时覆盖 Claude Haiku 4.5 的区域 |

518 518 

519标准 OpenTelemetry 导出器变量(`OTEL_METRICS_EXPORTER`、`OTEL_LOGS_EXPORTER`、`OTEL_EXPORTER_OTLP_ENDPOINT`、`OTEL_EXPORTER_OTLP_PROTOCOL`、`OTEL_EXPORTER_OTLP_HEADERS`、`OTEL_METRIC_EXPORT_INTERVAL`、`OTEL_RESOURCE_ATTRIBUTES` 和信号特定变体)也被支持。请参阅 [监控](/docs/zh-CN/monitoring-usage) 了解配置详情。519标准 OpenTelemetry 导出器变量(`OTEL_METRICS_EXPORTER`、`OTEL_LOGS_EXPORTER`、`OTEL_EXPORTER_OTLP_ENDPOINT`、`OTEL_EXPORTER_OTLP_PROTOCOL`、`OTEL_EXPORTER_OTLP_HEADERS`、`OTEL_METRIC_EXPORT_INTERVAL`、`OTEL_RESOURCE_ATTRIBUTES` 和信号特定变体)也被支持。参见 [监控](/docs/zh-CN/monitoring-usage) 了解配置详情。

520 520 

521设置 `CLAUDE_CODE_ENABLE_TELEMETRY` 和打开导出、选择其目标或在您的 shell、用户设置或托管设置中捕获内容的 OpenTelemetry 变量。Claude Code [在项目和本地设置中忽略它们](/docs/zh-CN/settings-reference#variables-claude-code-ignores-in-env),除了关闭值该部分描述。`OTEL_RESOURCE_ATTRIBUTES` 和导出间隔、超时和压缩变量(如 `OTEL_METRIC_EXPORT_INTERVAL`)仍然从项目和本地设置应用。521在您的 shell、用户设置或托管设置中设置 `CLAUDE_CODE_ENABLE_TELEMETRY` 和打开导出、选择其目的地或捕获内容的 OpenTelemetry 变量。Claude Code [在项目和本地设置中忽略它们](/docs/zh-CN/settings-reference#variables-claude-code-ignores-in-env),除了该部分描述的关闭值。`OTEL_RESOURCE_ATTRIBUTES` 和导出间隔、超时和压缩变量(如 `OTEL_METRIC_EXPORT_INTERVAL`)仍从项目和本地设置适用。

522 522 

523<h2 id="features-that-need-feature-flag-fetching">523<h2 id="features-that-need-feature-flag-fetching">

524 需要特性标志获取的功能524 需要特性标志获取的功能

errors.md +165 −17

Details

96| `rejected the credential from its headersHelper` / `rejected the Authorization header in its config` | [身份验证](#mcp-server-needs-you-to-sign-in-again) |96| `rejected the credential from its headersHelper` / `rejected the Authorization header in its config` | [身份验证](#mcp-server-needs-you-to-sign-in-again) |

97| `MCP server "<name>" needs additional permissions (scope: "<scope>") — run /mcp to re-authenticate` | [身份验证](#mcp-server-needs-you-to-sign-in-again) |97| `MCP server "<name>" needs additional permissions (scope: "<scope>") — run /mcp to re-authenticate` | [身份验证](#mcp-server-needs-you-to-sign-in-again) |

98| `MCP server "<name>" requires re-authorization (token expired)` | [身份验证](#mcp-server-needs-you-to-sign-in-again) |98| `MCP server "<name>" requires re-authorization (token expired)` | [身份验证](#mcp-server-needs-you-to-sign-in-again) |

99| `This server's URL is missing or not a valid URL, so sign-in can't start` | [身份验证](#mcp-server-url-is-missing-or-not-a-valid-url) |

99| `Issuer mismatch in authorization response (RFC 9207)` | [身份验证](#issuer-mismatch-in-authorization-response) |100| `Issuer mismatch in authorization response (RFC 9207)` | [身份验证](#issuer-mismatch-in-authorization-response) |

101| `Refusing to send credentials to non-https token endpoint` / `<short-name> from the MCP SDK for <server-url>` | [身份验证](#refusing-to-send-credentials-to-non-https-token-endpoint) |

100| `Cloud gateway session expired — run /login to reconnect.` | [身份验证](#cloud-gateway-session-expired) |102| `Cloud gateway session expired — run /login to reconnect.` | [身份验证](#cloud-gateway-session-expired) |

101| `Cloud gateway <url> no longer accepts this session` | [身份验证](#cloud-gateway-session-expired) |103| `Cloud gateway <url> no longer accepts this session` | [身份验证](#cloud-gateway-session-expired) |

102| `Sign-in timed out while waiting for you to continue. Try again.` | [身份验证](#sign-in-timed-out-while-waiting-for-you-to-continue) |104| `Sign-in timed out while waiting for you to continue. Try again.` | [身份验证](#sign-in-timed-out-while-waiting-for-you-to-continue) |


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

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

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

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

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

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

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

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

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

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

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

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

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

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


201| `Cannot add MCP server to scope: managed` | [命令行错误](#cannot-add-mcp-server-to-the-managed-scope) |205| `Cannot add MCP server to scope: managed` | [命令行错误](#cannot-add-mcp-server-to-the-managed-scope) |

202| `is Anthropic-hosted and doesn't support local OAuth` | [命令行错误](#anthropic-hosted-and-doesnt-support-local-oauth) |206| `is Anthropic-hosted and doesn't support local OAuth` | [命令行错误](#anthropic-hosted-and-doesnt-support-local-oauth) |

203| `Can't read .mcp.json: it isn't a regular file or is larger than 2097152 bytes` | [命令行错误](#cant-read-mcp-json) |207| `Can't read .mcp.json: it isn't a regular file or is larger than 2097152 bytes` | [命令行错误](#cant-read-mcp-json) |

208| `MCP server "<name>" was not saved to` / `was not removed from` | [命令行错误](#mcp-server-was-not-saved-or-removed) |

209| `MCP server "<name>" may not have been saved` / `may not have been removed` | [命令行错误](#mcp-server-may-not-have-been-saved-or-removed) |

204| `Server rejected the Authorization header minted by the configured headersHelper` | [命令行错误](#server-rejected-the-authorization-header-minted-by-the-configured-headershelper) |210| `Server rejected the Authorization header minted by the configured headersHelper` | [命令行错误](#server-rejected-the-authorization-header-minted-by-the-configured-headershelper) |

205| `Error: MCP tool <name> (passed via --permission-prompt-tool) not found` | [命令行错误](#mcp-permission-prompt-tool-not-found) |211| `Error: MCP tool <name> (passed via --permission-prompt-tool) not found` | [命令行错误](#mcp-permission-prompt-tool-not-found) |

206| `OAuth callback port <port> is already in use — another process may be holding it` | [命令行错误](#oauth-callback-port-is-already-in-use) |212| `OAuth callback port <port> is already in use — another process may be holding it` | [命令行错误](#oauth-callback-port-is-already-in-use) |


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

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

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

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

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

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

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


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

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

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

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

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

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

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


727 The prompt to confirm went unanswered735 The prompt to confirm went unanswered

728</h3>736</h3>

729 737 

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

731 739 

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

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


736 744 

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

738 746 

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

740 748 

741**要做什么:**749**要做什么:**

742 750 

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

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

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

746 754 

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

748 756 


1495 1503 

1496在 v2.1.274 之前,这种情况显示 `needs you to sign in again` 消息,在 v2.1.273 之前它显示 `requires re-authorization (token expired)`,如其他情况。1504在 v2.1.274 之前,这种情况显示 `needs you to sign in again` 消息,在 v2.1.273 之前它显示 `requires re-authorization (token expired)`,如其他情况。

1497 1505 

1506<h3 id="mcp-server-url-is-missing-or-not-a-valid-url">

1507 MCP 服务器 URL 缺失或不是有效的 URL

1508</h3>

1509 

1510Claude Code 拒绝为远程 MCP 服务器启动 OAuth 登录,因为服务器的配置 `url` 不解析为 URL。除非 Claude Code 有更具体的配置问题要为服务器报告,否则在您的 shell 中运行 [`claude mcp login <name>`](/docs/zh-CN/mcp#authenticate-from-the-command-line) 会将拒绝打印为:

1511 

1512```text theme={null}

1513Couldn't complete authentication for "<name>": This server's URL is missing or not a valid URL, so sign-in can't start. Fix the URL in its MCP config (or set the environment variable it uses) and try again.

1514```

1515 

1516**应该做什么:**

1517 

1518* 将条目的 `url` 设置为服务器的真实端点,其中配置服务器,或设置其 [`${VAR}` 引用](/docs/zh-CN/mcp#environment-variable-expansion-in-mcp-json) 命名的环境变量,然后再次运行登录。

1519 

1498<h3 id="issuer-mismatch-in-authorization-response">1520<h3 id="issuer-mismatch-in-authorization-response">

1499 授权响应中的发行者不匹配1521 授权响应中的发行者不匹配

1500</h3>1522</h3>


1515 1537 

1516在 v2.1.232 之前,Claude Code 仅在逐步推出中或当您设置 `MCP_SDK_GENERATION=v2` 时使用 v2 运行时。1538在 v2.1.232 之前,Claude Code 仅在逐步推出中或当您设置 `MCP_SDK_GENERATION=v2` 时使用 v2 运行时。

1517 1539 

1540<h3 id="refusing-to-send-credentials-to-non-https-token-endpoint">

1541 拒绝向非 https 令牌端点发送凭证

1542</h3>

1543 

1544在 [v2 运行时](/docs/zh-CN/mcp#mcp-client-runtimes) 上,Claude Code 仅向通过 HTTPS 或在 `localhost`、`127.0.0.1` 或 `::1` 处提供的令牌端点发送 [MCP OAuth](/docs/zh-CN/mcp#authenticate-with-remote-mcp-servers) 令牌请求。此消息意味着服务器的令牌端点都不是,因此 Claude Code 在发送请求前停止。这发生在浏览器登录之后,因此浏览器步骤首先成功,并且每当 Claude Code 刷新服务器的令牌时再次发生。

1545 

1546在其完整形式中,消息来自 MCP SDK 并引用它拒绝的令牌端点。在调试日志中,它遵循 `Error during auth completion:` 用于登录或 `Token refresh failed:` 用于刷新。在您的 shell 中,`claude mcp login <name>` 在 `Couldn't complete authentication for "<name>":` 之后打印它,在会话中,`/mcp` 在服务器的菜单下显示它:

1547 

1548```text theme={null}

1549Refusing to send credentials to non-https token endpoint 'http://192.168.1.50:8123/oauth/token'. OAuth token requests MUST use TLS (localhost / 127.0.0.1 / ::1 are exempt).

1550```

1551 

1552Claude Code 将具有查询字符串或长随机外观路径段的服务器 URL 视为可能的秘密。对于这样的服务器,它在显示或记录它们之前会编辑 MCP SDK 引发的登录错误。此错误然后读作可能在版本之间更改的短名称,例如 `io`,后跟 `from the MCP SDK for` 和编辑的服务器 URL。MCP SDK 的其他错误在那里采用相同的形状。编辑的消息只能是此错误,当服务器的令牌端点是纯 `http://` 在 `localhost`、`127.0.0.1` 或 `::1` 以外的地址时。

1553 

1554**应该做什么:**

1555 

1556* 通过 HTTPS 提供该令牌端点,例如通过将服务器放在终止 TLS 的反向代理或隧道后面,并配置服务器以宣传 `https://` 地址

1557* 要在不更改服务器的情况下连接,使用 [`MCP_SDK_GENERATION=v1`](/docs/zh-CN/env-vars) 启动 Claude Code,其 [运行时](/docs/zh-CN/mcp#mcp-client-runtimes) 不应用此规则并通过纯 HTTP 发送令牌请求。该选择持续到您退出并应用于每个服务器。v1 运行时也跳过 [发行者检查](#issuer-mismatch-in-authorization-response),因此更喜欢通过 HTTPS 提供端点

1558 

1518<h3 id="aws-credentials-expired-or-invalid">1559<h3 id="aws-credentials-expired-or-invalid">

1519 AWS 凭证已过期或无效1560 AWS 凭证已过期或无效

1520</h3>1561</h3>


1937 1978 

1938* 打开例程进行编辑,或启动云会话。选择显示您的环境名称(例如**默认**)的云图标以打开选择器。将鼠标悬停在您的环境上,然后单击设置图标。1979* 打开例程进行编辑,或启动云会话。选择显示您的环境名称(例如**默认**)的云图标以打开选择器。将鼠标悬停在您的环境上,然后单击设置图标。

1939* 在**更新云环境**对话框中,将**网络访问**从**受信任**更改为**自定义**,然后将被阻止的域添加到**允许的域**。每行输入一个域。检查**也包括常见包管理器的默认列表**以将[默认允许列表](/docs/zh-CN/cloud-environments#default-allowed-domains)与您的自定义域保持在一起。如果您想要不受限制的访问,请改为选择**完全**。1980* 在**更新云环境**对话框中,将**网络访问**从**受信任**更改为**自定义**,然后将被阻止的域添加到**允许的域**。每行输入一个域。检查**也包括常见包管理器的默认列表**以将[默认允许列表](/docs/zh-CN/cloud-environments#default-allowed-domains)与您的自定义域保持在一起。如果您想要不受限制的访问,请改为选择**完全**。

1940* 单击**保存更改**。下一次运行使用更新的允许列表。1981* 单击**保存更改**。下一次运行使用更新的允许列表。对于已打开的云会话,请参阅[网络访问更改何时到达现有会话](/docs/zh-CN/cloud-environments#network-access)。

1941 1982 

1942有关访问级别和默认允许列表,请参阅[网络访问](/docs/zh-CN/cloud-environments#network-access)。本地 CLI 会话不受此策略影响。1983有关访问级别和默认允许列表,请参阅[网络访问](/docs/zh-CN/cloud-environments#network-access)。本地 CLI 会话不受此策略影响。

1943 1984 


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

2347</h3>2388</h3>

2348 2389 

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

2350 2391 

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

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

2353```2394```

2354 2395 

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

2397 

2398当您通过 Agent SDK 或在 Anthropic API 上的应用程序切换时,只有无法成为模型 ID 的字符串(如显示名称或空字符串)会获得此错误。

2356 2399 

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

2358 2401 

2359**要做什么:**2402**要做什么:**

2360 2403 

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

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

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

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

2365 2408 

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

2367 模型未找到2410 模型未找到

2368</h3>2411</h3>

2369 2412 

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

2371 2414 

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

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


2379 2422 

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

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

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

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

2383 2427 

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

2429 无法通过 API 确认模型

2430</h3>

2431 

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

2433 

2434```text theme={null}

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

2436```

2437 

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

2439 

2440**要做什么:**

2441 

2442* 再次切换到模型

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

2444 

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

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

2386</h3>2447</h3>


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

2433```2494```

2434 2495 

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

2497 

2435**要做什么:**2498**要做什么:**

2436 2499 

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

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

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

2503| :- | :- |

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

2505| Claude desktop app | 更新应用 |

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

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

2508 

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

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

2440 2511 

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


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

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

2462 2533 

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

2535 无法切换到默认模型

2536</h3>

2537 

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

2539 

2540```text theme={null}

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

2542```

2543 

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

2545 

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

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

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

2549 

2550**要做什么:**

2551 

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

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

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

2555 

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

2557 

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

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

2465</h3>2560</h3>


3066 3161 

3067* 检查您当前目录中 `.mcp.json` 处的内容。将其替换为[项目范围格式](/docs/zh-CN/mcp#project-scope)中的普通 JSON 文件,或删除它,然后再次运行命令。3162* 检查您当前目录中 `.mcp.json` 处的内容。将其替换为[项目范围格式](/docs/zh-CN/mcp#project-scope)中的普通 JSON 文件,或删除它,然后再次运行命令。

3068 3163 

3164<h3 id="mcp-server-was-not-saved-or-removed">

3165 MCP 服务器未被保存或删除

3166</h3>

3167 

3168您为 `user` 或 `local` [范围](/docs/zh-CN/mcp#mcp-installation-scopes)中的服务器运行了 `claude mcp add`、`claude mcp add-json` 或 `claude mcp remove`。两个范围都存储在 `~/.claude.json` 中,当 Claude Code 在写入后读回该文件时,更改不在该文件中。命令以此错误退出,而不是其成功行。

3169 

3170```text theme={null}

3171MCP server "example" was not saved to /home/user/.claude.json. If that file is read-only or protected by a sandbox, make it writable or run the command outside the sandbox, then add the server again.

3172```

3173 

3174删除后,消息读取 `was not removed from` 并以 `then remove the server again` 结尾。对于 `local` 范围的服务器,路径后跟项目目录,该条目属于该目录,如 `(local scope for /path/to/project)`。

3175 

3176在 v2.1.283 之前,`claude mcp add`、`claude mcp add-json` 和 `claude mcp remove` 即使更改未到达文件也报告成功。

3177 

3178**要做什么:**

3179 

3180* 使消息命名的文件可写,或在沙箱外运行命令,然后再次运行相同的添加或删除命令。

3181 

3182<h3 id="mcp-server-may-not-have-been-saved-or-removed">

3183 MCP 服务器可能未被保存或删除

3184</h3>

3185 

3186您为 `user` 或 `local` [范围](/docs/zh-CN/mcp#mcp-installation-scopes)中的服务器运行了 `claude mcp add`、`claude mcp add-json` 或 `claude mcp remove`,Claude Code 无法读回 `~/.claude.json` 以确认更改。更改可能在磁盘上,也可能不在。括号中的文本是该读取的错误。

3187 

3188```text theme={null}

3189MCP server "example" may not have been saved: /home/user/.claude.json could not be read to confirm the change (EACCES: permission denied, open '/home/user/.claude.json'). Run `claude mcp get example` to check, then add the server again if it is missing.

3190```

3191 

3192删除后,消息读取 `may not have been removed` 并以 `then remove the server again if it is still listed` 结尾。

3193 

3194在 v2.1.283 之前,命令即使无法确认更改也报告成功。

3195 

3196**要做什么:**

3197 

3198* 运行 `claude mcp get <name>` 检查更改是否在磁盘上。对于 `local` 范围的服务器,从服务器所属的项目目录运行它,因为本地范围是每个项目的。

3199* 如果服务器在添加后缺失,或在删除后仍然列出,请再次运行相同的添加或删除命令。

3200 

3069<h3 id="anthropic-hosted-and-doesnt-support-local-oauth">3201<h3 id="anthropic-hosted-and-doesnt-support-local-oauth">

3070 服务器是 Anthropic 托管的,不支持本地 OAuth3202 服务器是 Anthropic 托管的,不支持本地 OAuth

3071</h3>3203</h3>


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

3272</h3>3404</h3>

3273 3405 

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

3275 

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

3277 3407 

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


3378 3508 

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

3380 3510 

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

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

3513</h3>

3514 

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

3516 

3517```text theme={null}

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

3519```

3520 

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

3522 

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

3524 

3525**要做什么:**

3526 

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

3528 

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

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

3383</h3>3531</h3>


3890 Plugin 未被卸载4038 Plugin 未被卸载

3891</h3>4039</h3>

3892 4040 

3893您运行了 [`claude plugin uninstall`](/docs/zh-CN/plugins/cli-reference#plugin-uninstall),或在 `/plugin` **Installed** 选项卡中选择了 **Uninstall**,卸载停止,消息开头为 `"<plugin>" was not uninstalled:`。4041您运行了 [`claude plugin uninstall`](/docs/zh-CN/plugins/cli-reference#plugin-uninstall),或在 `/plugin` **Installed** 选项卡中选择了 **Uninstall**,卸载停止,消息开头为 `"<plugin>" was not uninstalled:`。如果冒号后的文本以 `installed_plugins.json` 开头而不是命名设置文件,原因是 `installed_plugins.json` 中的内容此版本的 Claude Code 无法读取。对于该形式,请参阅 [`installed_plugins.json` 保存此版本无法读取的记录](/docs/zh-CN/plugins/troubleshooting#installed-plugins-json-holds-a-record-this-version-cannot-read)。

3894 4042 

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

3896 4044 

fast-mode.md +2 −0

Details

72 72 

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

74 74 

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

76 

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

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

77</h2>79</h2>

Details

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

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

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

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

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

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

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

fullscreen.md +1 −1

Details

294 294 

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

296 296 

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

298 298 

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

300 300 

Details

43 43 

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

45 45 

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

47 

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

47 49 

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

Details

65 GitHub App 权限65 GitHub App 权限

66</h3>66</h3>

67 67 

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

69 69 

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

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


95 网络要求95 网络要求

96</h3>96</h3>

97 97 

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

99 99 

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

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


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

247</h3>247</h3>

248 248 

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

250 250 

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

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

glossary.md +9 −1

Details

56 Artifact56 Artifact

57</h3>57</h3>

58 58 

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

60 60 

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

62 62 


475 475 

476了解更多:[Claude 可用的工具](/docs/zh-CN/tools-reference)476了解更多:[Claude 可用的工具](/docs/zh-CN/tools-reference)

477 477 

478<h3 id="transcript">

479 Transcript

480</h3>

481 

482[session](#session) 的存储记录。对话是您和 Claude 之间的交换;transcript 是将该对话保存为文件,默认位置为 `~/.claude/projects/<project>/<session-id>.jsonl`。Claude Code 在您恢复时读取该文件,这就是会话结束后对话如何继续的方式。有关同一对话的屏幕视图,请参阅 [transcript viewer](/docs/zh-CN/interactive-mode#transcript-viewer)。

483 

484了解更多:[Transcripts 存储位置](/docs/zh-CN/sessions#where-transcripts-are-stored)

485 

478<h3 id="turn">486<h3 id="turn">

479 Turn487 Turn

480</h3>488</h3>

Details

315 315 

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

317 317 

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

319 319 

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

321 故障排除321 故障排除

hooks.md +21 −12

Details

274 274 

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

276 276 

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

278 278 

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

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


304 304 

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

306 306 

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

308 

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

310 308 

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


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

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

382 380 

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

384 

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

386 382 

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


919| :- | :- | :- |915| :- | :- | :- |

920| `PreToolUse` | 是 | 阻止工具调用 |916| `PreToolUse` | 是 | 阻止工具调用 |

921| `PermissionRequest` | 否 | 此事件不接受退出代码 2,权限流程保持不变。改为通过 [`decision` 对象](#permissionrequest-decision-control)拒绝 |917| `PermissionRequest` | 否 | 此事件不接受退出代码 2,权限流程保持不变。改为通过 [`decision` 对象](#permissionrequest-decision-control)拒绝 |

922| `UserPromptSubmit` | 是 | 阻止提示处理并删除提示 |918| `UserPromptSubmit` | 是 | 阻止提示,所以它永远不会到达 Claude。请参阅[被阻止的提示留下什么](#what-a-blocked-prompt-leaves-behind) |

923| `UserPromptExpansion` | 是 | 阻止扩展 |919| `UserPromptExpansion` | 是 | 阻止扩展 |

924| `Stop` | 是 | 防止 Claude 停止,继续对话 |920| `Stop` | 是 | 防止 Claude 停止,继续对话 |

925| `SubagentStop` | 是 | 防止 subagent 停止 |921| `SubagentStop` | 是 | 防止 subagent 停止 |


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

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

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

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

1191 1187 

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

1193 1189 


1210| `source` | 会话如何启动:新会话为 `"startup"`、恢复的会话为 `"resume"`、`/clear` 后为 `"clear"`、压缩后为 `"compact"` 或从现有会话分叉的新会话为 `"fork"` |1206| `source` | 会话如何启动:新会话为 `"startup"`、恢复的会话为 `"resume"`、`/clear` 后为 `"clear"`、压缩后为 `"compact"` 或从现有会话分叉的新会话为 `"fork"` |

1211| `model` | 活跃的模型标识符。例如在 `/clear` 后或通过对话恢复恢复会话时可能被省略,因此在读取前检查该字段 |1207| `model` | 活跃的模型标识符。例如在 `/clear` 后或通过对话恢复恢复会话时可能被省略,因此在读取前检查该字段 |

1212| `agent_type` | agent 名称,当您使用 `claude --agent <name>` 启动 Claude Code 时出现 |1208| `agent_type` | agent 名称,当您使用 `claude --agent <name>` 启动 Claude Code 时出现 |

1213| `session_title` | 当前会话标题(如果已设置),例如通过 `--name` 或 `/rename`。发出 `sessionTitle` 的 hook 可以先检查 `session_title` 以避免覆盖用户明确设置的标题 |1209| `session_title` | 当前会话标题(如果已设置),例如通过 `--name`、`/rename`、发出 `sessionTitle` 的 hook 或 Agent SDK 的 `renameSession()`。发出 `sessionTitle` 的 hook 可以先检查此字段以避免覆盖现有的自定义标题 |

1210 

1211一个您未命名的会话仍然可以有 [生成的标题](/docs/zh-CN/sessions#name-your-sessions)。该标题不是自定义标题,不出现在 `session_title` 中。

1214 1212 

1215当 `source` 为 `"resume"` 或 `"fork"` 且成绩单包含至少一个来自 Claude 的响应时,SessionStart hooks 也会接收下面的四个字段。您的 hook 可以使用它们在第一个请求之前报告恢复陈旧对话的成本,例如在 [`systemMessage`](#json-output) 中。这些字段需要 Claude Code v2.1.251 或更高版本。1213当 `source` 为 `"resume"` 或 `"fork"` 且成绩单包含至少一个来自 Claude 的响应时,SessionStart hooks 也会接收下面的四个字段。您的 hook 可以使用它们在第一个请求之前报告恢复陈旧对话的成本,例如在 [`systemMessage`](#json-output) 中。这些字段需要 Claude Code v2.1.251 或更高版本。

1216 1214 


1426 1424 

1427除了 [常见输入字段](#common-input-fields) 外,UserPromptSubmit hooks 接收包含用户提交的文本的 `prompt` 字段。折叠为 `[Pasted text #N]` 占位符的粘贴内容在原位展开到达。在 Claude Code [为 Claude 标记粘贴文本](/docs/zh-CN/terminal-config#how-claude-treats-pasted-text) 的会话中,该展开的内容位于 `<pasted_content id="…">` 行和 `</pasted_content id="…">` 行之间,因此如果您的 hook 解析提示,请考虑这些行。1425除了 [常见输入字段](#common-input-fields) 外,UserPromptSubmit hooks 接收包含用户提交的文本的 `prompt` 字段。折叠为 `[Pasted text #N]` 占位符的粘贴内容在原位展开到达。在 Claude Code [为 Claude 标记粘贴文本](/docs/zh-CN/terminal-config#how-claude-treats-pasted-text) 的会话中,该展开的内容位于 `<pasted_content id="…">` 行和 `</pasted_content id="…">` 行之间,因此如果您的 hook 解析提示,请考虑这些行。

1428 1426 

1427UserPromptSubmit hooks 也在会话有自定义标题时接收 `session_title`,含义与 [SessionStart `session_title` 字段](#sessionstart-input) 相同。

1428 

1429```json theme={null}1429```json theme={null}

1430{1430{

1431 "session_id": "abc123",1431 "session_id": "abc123",


1454 1454 

1455| 字段 | 描述 |1455| 字段 | 描述 |

1456| :- | :- |1456| :- | :- |

1457| `decision` | `"block"` 防止提示被处理并从上下文中删除它。省略以允许提示继续 |1457| `decision` | `"block"` 防止提示被处理。省略以允许提示继续 |

1458| `reason` | 当 `decision` 为 `"block"` 时显示给用户。不添加到上下文 |1458| `reason` | 当 `decision` 为 `"block"` 时显示给用户。不添加到上下文 |

1459| `additionalContext` | 与提交的提示一起添加到 Claude 上下文的字符串。有关如何传递文本以及放入其中的内容,请参阅 [为 Claude 添加上下文](#add-context-for-claude) |1459| `additionalContext` | 与提交的提示一起添加到 Claude 上下文的字符串。有关如何传递文本以及放入其中的内容,请参阅 [为 Claude 添加上下文](#add-context-for-claude) |

1460| `sessionTitle` | 设置会话标题。用于根据提示内容自动命名会话 |1460| `sessionTitle` | 设置会话标题。用于根据提示内容自动命名会话 |

1461| `suppressOriginalPrompt` | 如果在 `decision` 为 `"block"` 时为 `true`,则从显示给用户的阻止消息中省略原始提示文本 |1461| `suppressOriginalPrompt` | 如果在 hook 阻止提示时为 `true`,则从阻止消息中省略原始提示文本。请参阅 [被阻止的提示留下什么](#what-a-blocked-prompt-leaves-behind) |

1462 1462 

1463通过退出 2 阻止的 hook 路由方式与 `reason` 相同:阻止消息向用户显示 stderr 文本,它不添加到上下文。1463通过退出 2 阻止的 hook 路由方式与 `reason` 相同:阻止消息向用户显示 stderr 文本,它不添加到上下文。

1464 1464 


1469 "hookSpecificOutput": {1469 "hookSpecificOutput": {

1470 "hookEventName": "UserPromptSubmit",1470 "hookEventName": "UserPromptSubmit",

1471 "additionalContext": "My additional context here",1471 "additionalContext": "My additional context here",

1472 "sessionTitle": "My session title"1472 "sessionTitle": "My session title",

1473 "suppressOriginalPrompt": true

1473 }1474 }

1474}1475}

1475```1476```

1476 1477 

1478<h4 id="what-a-blocked-prompt-leaves-behind">

1479 被阻止的提示留下什么

1480</h4>

1481 

1482被阻止的提示永远不会到达 Claude,但其文本不会从任何地方删除。默认情况下,显示给用户的阻止消息以 `Original prompt:` 结尾,后跟提交的文本,Claude Code 将该消息写入会话的成绩单文件。要从消息中省略文本,打印 JSON,其中 `hookSpecificOutput` 中的 `"suppressOriginalPrompt": true`。无论 hook 是用 `decision: "block"` 还是通过退出 2 阻止,这都有效。不打印 JSON 的退出 2 hook 总是在其阻止消息中获得提示文本。

1483 

1484`suppressOriginalPrompt` 仅更改阻止消息。提交的文本仍然可以出现在本地文件中,如会话成绩单和您的提示历史,因此阻止 hook 不是将秘密保留在磁盘外的方式。要限制或删除这些文件,请参阅 [纯文本存储](/docs/zh-CN/claude-directory#plaintext-storage) 和 [清除本地数据](/docs/zh-CN/claude-directory#clear-local-data)。

1485 

1477<h3 id="userpromptexpansion">1486<h3 id="userpromptexpansion">

1478 UserPromptExpansion1487 UserPromptExpansion

1479</h3>1488</h3>


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

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

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

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

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

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

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

hooks-guide.md +1 −1

Details

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

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

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

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

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

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

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

Details

358* 在 macOS 和 Linux 上,当操作系统报告严重内存压力时,Claude Code 会停止运行中的后台任务,前提是会话已空闲至少 30 分钟且没有 turn 或 subagent 运行。需要 Claude Code v2.1.193 或更高版本358* 在 macOS 和 Linux 上,当操作系统报告严重内存压力时,Claude Code 会停止运行中的后台任务,前提是会话已空闲至少 30 分钟且没有 turn 或 subagent 运行。需要 Claude Code v2.1.193 或更高版本

359 * [调试日志](/docs/zh-CN/debug-your-config)说明了为什么任务被停止,或为什么压力事件让它们继续运行359 * [调试日志](/docs/zh-CN/debug-your-config)说明了为什么任务被停止,或为什么压力事件让它们继续运行

360 * 将 [`CLAUDE_CODE_DISABLE_BG_SHELL_PRESSURE_REAP`](/docs/zh-CN/env-vars) 设置为 `1` 可关闭内存压力停止360 * 将 [`CLAUDE_CODE_DISABLE_BG_SHELL_PRESSURE_REAP`](/docs/zh-CN/env-vars) 设置为 `1` 可关闭内存压力停止

361* 由[子代理](/docs/zh-CN/sub-agents)拥有的后台命令没有时间限制,除非由在前台运行的子代理拥有的命令在该子代理给出最终响应时结束;请参阅工具参考中的[后台命令](/docs/zh-CN/tools-reference#background-commands)。在 v2.1.218 之前,内存压力回收和之前对子代理命令的 60 分钟限制都不包括用 `Ctrl+B` 移到后台的命令361* 后台 Bash 和 PowerShell 命令有时间限制,从命令进入后台的时刻开始计算:30 分钟,或 Claude 在启动后台命令时要求的 `timeout`,最多 2 小时。在运行时移到后台的命令(例如使用 `Ctrl+B`)从移动时获得 30 分钟。当命令达到其限制时,Claude Code 会停止它并告诉 Claude 原因,Claude 可以使用更长的 `timeout` 重新启动它,如果工作仍然需要的话。两个环境变量提高限制(以毫秒为单位),两者都不能缩短限制:

362 * 将 [`BASH_DEFAULT_TIMEOUT_MS`](/docs/zh-CN/env-vars) 设置为 `1800000` 以上,以用该值替换 30 分钟的默认值,也适用于移动的命令

363 * 将 [`BASH_MAX_TIMEOUT_MS`](/docs/zh-CN/env-vars) 设置为 `7200000` 以上以提高 2 小时的最大值。将 `BASH_DEFAULT_TIMEOUT_MS` 设置为 `7200000` 以上会以相同方式提高它

364* 由前台[子代理](/docs/zh-CN/sub-agents#run-subagents-in-foreground-or-background)启动的后台命令在该子代理的运行结束时结束,无论是完成、失败还是被中断;请参阅工具参考中的[后台命令](/docs/zh-CN/tools-reference#background-commands)

362 365 

363要禁用所有后台任务功能,请将 `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` 环境变量设置为 `1`。有关详细信息,请参阅[环境变量](/docs/zh-CN/env-vars)。366要禁用所有后台任务功能,请将 `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` 环境变量设置为 `1`。有关详细信息,请参阅[环境变量](/docs/zh-CN/env-vars)。

364 367 

keybindings.md +5 −2

Details

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

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

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

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

305 305 

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

307 307 


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

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

419 419 

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

421 421 

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

423 423 

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

425 

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

425 Plugin 操作427 Plugin 操作

426</h3>428</h3>


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

693 695 

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

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

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

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

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

Details

79 79 

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

81 81 

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

83 83 

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

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

managed-mcp.md +40 −23

Details

31 31 

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

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

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

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

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

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


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

49</h2>49</h2>

50 50 

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

52 52 

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

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

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

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

56 57 

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

58 59 

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

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


62 63 

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

64 65 

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

66 67 

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

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


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

100</h3>101</h3>

101 102 

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

103 104 

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

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

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

107 108 

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

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

110</h3>111</h3>

111 112 

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

113 114 

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

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

116 117 

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

118 119 


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

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

127 128 

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

129 130 

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

131 132 


135 136 

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

137 138 

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

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

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

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

142 143 

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

144 完全禁用 MCP145 完全禁用 MCP

145</h3>146</h3>

146 147 

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

148 149 

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

150{151{


152}153}

153```154```

154 155 

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

156 157 

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

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

159</h3>160</h3>

160 161 

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

162 163 

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

164 165 

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

166 167 

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

169 

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

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

172</h3>

173 

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

175 

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

177 

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

168 179 

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

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


303 314 

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

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

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

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

308 319 

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


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

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

331 342 

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

344 

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

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

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

333 348 

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

335 350 

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

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


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

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

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

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

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

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

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


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

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

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

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

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

545 562 

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

Details

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

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

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

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

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

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

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

mcp.md +8 −5

Details

265 服务器状态265 服务器状态

266</h4>266</h4>

267 267 

268`claude mcp add` 通过打印 `Added ...` 行确认成功添加,这意味着配置已写入。`claude mcp list` 然后在它列出的每个服务器旁边显示健康状态,例如 `✔ Connected`、`! Needs authentication` 或 `✘ Failed to connect`。失败状态意味着 Claude Code 无法连接到该服务器,而不是列表命令失败。268`claude mcp add` 通过打印 `Added ...` 行确认成功添加,这意味着配置已写入。如果命令改为打印 `was not saved` 消息,请参阅 [MCP 服务器未保存或删除](/docs/zh-CN/errors#mcp-server-was-not-saved-or-removed);对于 `may not have been saved` 消息,请参阅 [MCP 服务器可能未保存或删除](/docs/zh-CN/errors#mcp-server-may-not-have-been-saved-or-removed)。

269 

270`claude mcp list` 在它列出的每个服务器旁边显示健康状态,例如 `✔ Connected`、`! Needs authentication` 或 `✘ Failed to connect`。失败状态意味着 Claude Code 无法连接到该服务器,而不是列表命令失败。

269 271 

270此列表中的状态报告配置决策而不是连接尝试,因此 Claude Code 在不连接到服务器的情况下打印它们:272此列表中的状态报告配置决策而不是连接尝试,因此 Claude Code 在不连接到服务器的情况下打印它们:

271 273 


371* 从 [它保持打开的流](#notification-streams-on-the-v2-runtime) 上的较新修订版的服务器接收 `list_changed` 通知。373* 从 [它保持打开的流](#notification-streams-on-the-v2-runtime) 上的较新修订版的服务器接收 `list_changed` 通知。

372* 不注册在较新修订版上连接的 [通道](#push-messages-with-channels) 服务器,因为该修订版无法携带通道消息。374* 不注册在较新修订版上连接的 [通道](#push-messages-with-channels) 服务器,因为该修订版无法携带通道消息。

373* 失败 [MCP OAuth 登录](#authenticate-with-remote-mcp-servers),其授权响应命名意外的发行者。375* 失败 [MCP OAuth 登录](#authenticate-with-remote-mcp-servers),其授权响应命名意外的发行者。

376* 仅将 [MCP OAuth](#authenticate-with-remote-mcp-servers) 凭证发送到通过 HTTPS 或在 `localhost`、`127.0.0.1` 或 `::1` 处提供的令牌端点。对于令牌端点为纯 `http://` 的服务器(例如本地网络上的设备),登录失败。请参阅 [拒绝向非 https 令牌端点发送凭证](/docs/zh-CN/errors#refusing-to-send-credentials-to-non-https-token-endpoint)。

374 377 

375Anthropic 可以使用 Claude Code 获取的功能标志将特定服务器保持在较早的协议上,或关闭该流。378Anthropic 可以使用 Claude Code 获取的功能标志将特定服务器保持在较早的协议上,或关闭该流。

376 379 


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

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

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

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

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

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

548 551 


1101 1104 

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

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

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

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

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

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


1288您的组织可以在 [claude.ai 连接器](https://claude.com/docs/connectors) 上设置每个工具的控制。Claude Code 在启动时读取这些设置并在本地强制执行它们,除了在桌面应用的 [本地和 SSH 会话](#how-connectors-reach-claude-code) 中。在那里,桌面应用在传入连接器之前扣留 `blocked` 工具,`ask` 设置不会到达 Claude Code,因此它将会话的普通 [权限规则](/docs/zh-CN/permissions) 应用于这些工具,而不是在每次调用时提示。在 Claude Code 本身获取连接器的会话中,运行 `/mcp` 以查看哪个设置适用于连接器上的每个工具。1291您的组织可以在 [claude.ai 连接器](https://claude.com/docs/connectors) 上设置每个工具的控制。Claude Code 在启动时读取这些设置并在本地强制执行它们,除了在桌面应用的 [本地和 SSH 会话](#how-connectors-reach-claude-code) 中。在那里,桌面应用在传入连接器之前扣留 `blocked` 工具,`ask` 设置不会到达 Claude Code,因此它将会话的普通 [权限规则](/docs/zh-CN/permissions) 应用于这些工具,而不是在每次调用时提示。在 Claude Code 本身获取连接器的会话中,运行 `/mcp` 以查看哪个设置适用于连接器上的每个工具。

1289 1292 

1290* **工具设置为 `ask`**:Claude Code 在每次调用时提示,原因是 `Your organization requires approval for this tool`。即使在 `acceptEdits`、`auto` 和 `bypassPermissions` [权限模式](/docs/zh-CN/permissions#permission-modes) 中,提示也会出现,并且从不提供记住您的选择的选项。匹配工具的 [Allow 规则](/docs/zh-CN/permissions) 也不会跳过提示。在从不提示的 `dontAsk` 模式中,Claude Code 会改为拒绝调用。1293* **工具设置为 `ask`**:Claude Code 在每次调用时提示,原因是 `Your organization requires approval for this tool`。即使在 `acceptEdits`、`auto` 和 `bypassPermissions` [权限模式](/docs/zh-CN/permissions#permission-modes) 中,提示也会出现,并且从不提供记住您的选择的选项。匹配工具的 [Allow 规则](/docs/zh-CN/permissions) 也不会跳过提示。在从不提示的 `dontAsk` 模式中,Claude Code 会改为拒绝调用。

1291* **工具设置为 `blocked`**:Claude Code 在 Claude 看到它之前过滤掉工具,因此它永远不会出现在工具列表中。桌面应用和 claude.ai 聊天应用相同的 `blocked` 设置,因此 Claude 也无法在那里使用该工具,您无法从桌面应用的会话中扣留工具,同时在聊天中保持其可用。桌面应用会跳过其所有工具都被阻止的连接器。1294* **工具设置为 `blocked`**:Claude Code 在 Claude 看到它之前过滤掉工具,因此它永远不会出现在工具列表中。在 Claude Code 本身获取连接器的会话中,`/mcp` 工具列表仍然显示该工具,标记为 `disabled by your organization`。桌面应用和 claude.ai 聊天应用相同的 `blocked` 设置,因此 Claude 也无法在那里使用该工具,您无法从桌面应用的会话中扣留工具,同时在聊天中保持其可用。桌面应用会跳过其所有工具都被阻止的连接器。

1292 1295 

1293<h3 id="disable-claude-ai-connectors">1296<h3 id="disable-claude-ai-connectors">

1294 禁用 claude.ai 连接器1297 禁用 claude.ai 连接器


1440 1443 

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

1442 1445 

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

1444 1447 

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

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

memory.md +20 −10

Details

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

90</h3>90</h3>

91 91 

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

93 

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

95 

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

97 

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

99 93 

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

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

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

103 97 

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

99 

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

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

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

103 

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

105 审计您的指令文件

106</h4>

105 107 

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

107 109 

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

111 

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

109 113 

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

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


115 119 

116允许相对路径和绝对路径。相对路径相对于包含导入的文件解析,而不是工作目录。导入的文件可以递归导入其他文件,最大深度为四跳。120允许相对路径和绝对路径。相对路径相对于包含导入的文件解析,而不是工作目录。导入的文件可以递归导入其他文件,最大深度为四跳。

117 121 

122要导入其路径包含空格的文件,请在每个空格前放置反斜杠。没有反斜杠,路径在第一个空格处结束,即使导入在其自己的行上。用引号包装的路径根本不导入,无论是否有反斜杠。此导入从名为 `Design Docs` 的文件夹加载文件:

123 

124```text theme={null}

125- API conventions @Design\ Docs/api-conventions.md

126```

127 

118导入解析跳过 Markdown 代码跨度和围栏代码块。要在您的 CLAUDE.md 中提及路径而不导入它,请将其包装在反引号中:编写 `` `@README` `` 保持文本字面,而 `@README` 在反引号外导入文件。128导入解析跳过 Markdown 代码跨度和围栏代码块。要在您的 CLAUDE.md 中提及路径而不导入它,请将其包装在反引号中:编写 `` `@README` `` 保持文本字面,而 `@README` 在反引号外导入文件。

119 129 

120要引入 README、package.json 和工作流指南,请在 CLAUDE.md 中的任何地方使用 `@` 语法引用它们:130要引入 README、package.json 和工作流指南,请在 CLAUDE.md 中的任何地方使用 `@` 语法引用它们:

model-config.md +18 −16

Details

65别名指向你的提供商的推荐版本,并随时间更新。要固定到特定版本,请使用完整模型名称,例如 `claude-opus-5-5`,或设置相应的环境变量,如 `ANTHROPIC_DEFAULT_OPUS_MODEL`。65别名指向你的提供商的推荐版本,并随时间更新。要固定到特定版本,请使用完整模型名称,例如 `claude-opus-5-5`,或设置相应的环境变量,如 `ANTHROPIC_DEFAULT_OPUS_MODEL`。

66 66 

67<Note>67<Note>

68 Sonnet 5.5 需要 Claude Code v2.1.284 或更高版本,Opus 5.5 需要 v2.1.280 或更高版本。运行 `claude update` 进行升级。68 Sonnet 5.5 需要 Claude Code v2.1.284 或更高版本,Opus 5.5 需要 v2.1.280 或更高版本。如果来自较旧版本的请求失败,请参阅 [Claude Code does not support this model](/docs/zh-CN/errors#claude-code-does-not-support-this-model)。运行 `claude update` 进行升级。

69</Note>69</Note>

70 70 

71<h3 id="work-with-fable">71<h3 id="work-with-fable">


117* 在后台会话中,在截止时间前回答。117* 在后台会话中,在截止时间前回答。

118* 如果你在远程客户端发送新消息之前没有人在终端输入,Claude Code 会以相同的方式结束该轮,你的新消息开始下一轮。在有人在终端输入后,Claude Code 继续等待答案并将你的新消息排队在其后面。118* 如果你在远程客户端发送新消息之前没有人在终端输入,Claude Code 会以相同的方式结束该轮,你的新消息开始下一轮。在有人在终端输入后,Claude Code 继续等待答案并将你的新消息排队在其后面。

119 119 

120在带有 `-p` 标志的[非交互模式](/docs/zh-CN/headless)中以及通过 Agent SDK,Claude Code 永远不会显示同意提示。当 Fable 请求在那里会计入使用额度时,Claude Code 会在不询问的情况下计入。120在通过 [Agent SDK](/docs/zh-CN/agent-sdk/overview) 托管的应用中,提示是否出现取决于该应用。如果它出现,并且在相同的 [`dialogExpiry`](/docs/zh-CN/settings-reference#dialogexpiry) 截止时间前没有人回答,Claude Code 会结束该轮而不发送请求。

121 

122在带有 `-p` 标志的[非交互模式](/docs/zh-CN/headless)中以及在不显示提示的 Agent SDK 应用中,Claude Code 永远不会请求同意。当 Fable 请求在那里会计入使用额度时,Claude Code 会在不询问的情况下计入。

121 123 

122<h3 id="setting-your-model">124<h3 id="setting-your-model">

123 设置你的模型125 设置你的模型


164 166 

165当 Claude Code 无法判断你的组织的[托管插件](/docs/zh-CN/settings-reference#enabledplugins)提供哪些 PreModelSwitch hooks 时,例如因为托管插件加载失败,它拒绝切换而不是应用它,并在每次新尝试时再次检查。参阅 [Model switch was blocked by a PreModelSwitch hook](/docs/zh-CN/errors#model-switch-was-blocked-by-a-premodelswitch-hook) 了解消息和恢复。167当 Claude Code 无法判断你的组织的[托管插件](/docs/zh-CN/settings-reference#enabledplugins)提供哪些 PreModelSwitch hooks 时,例如因为托管插件加载失败,它拒绝切换而不是应用它,并在每次新尝试时再次检查。参阅 [Model switch was blocked by a PreModelSwitch hook](/docs/zh-CN/errors#model-switch-was-blocked-by-a-premodelswitch-hook) 了解消息和恢复。

166 168 

167当你通过 [Agent SDK](/docs/zh-CN/agent-sdk/overview) `setModel()` 方法或从通过 [Remote Control](/docs/zh-CN/remote-control) 连接的设备切换模型,或运行 Claude Code CLI 的应用(如 [Desktop app](/docs/zh-CN/desktop))为你切换时,Claude Code 会检查该字符串是否是它识别的。此检查需要 Claude Code v2.1.200 或更高版本。检查 Remote Control 选择需要你的机器上的 Claude Code v2.1.260 或更高版本。在 Anthropic API 上,Claude Code 识别:169当你通过 [Agent SDK](/docs/zh-CN/agent-sdk/overview) `setModel()` 方法、通过应用(如 [Desktop app](/docs/zh-CN/desktop))或从通过 [Remote Control](/docs/zh-CN/remote-control) 连接的设备切换模型时,Claude Code 会检查该值在切换时:

168 170 

169* 一个模型别名171* **Agent SDK 或应用**:使用 Claude Code v2.1.268 或更高版本,除非 Claude Code 在本地接受模型 ID(如它对你的[自定义模型选项](#add-a-custom-model-option)所做的那样),它在会话首次切换到它时与你的提供商确认该 ID。确认在每个提供商上运行,你的提供商不提供的 ID 在切换时被拒绝,而不是在你的下一个请求时失败。

170* `/model` 选择器中的一个条目172* **Remote Control**:在 Anthropic API 上,Claude Code 在本地检查该值并不发送请求。

171* 任何以 `claude-` 开头的名称

172* 你自己配置的值,作为[自定义模型选项](#add-a-custom-model-option)或在 [`modelOverrides`](#override-model-ids-per-version) 中

173 173 

174Claude Code 拒绝无法识别的字符串,显示 `Model "<name>" is not a recognized model id.`,会话保持其当前模型,而不是保存字符串并在下一个请求时失败。参阅[错误参考](/docs/zh-CN/errors#model-is-not-a-recognized-model-id)了解恢复步骤。174参阅 [Model is not a recognized model id](/docs/zh-CN/errors#model-is-not-a-recognized-model-id) 和 [Model not found](/docs/zh-CN/errors#model-not-found) 了解消息。

175 175 

176检查仅在 Anthropic API 上运行。在 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry、[Claude Platform on AWS](/docs/zh-CN/claude-platform-on-aws) 和 [LLM 网关](/docs/zh-CN/llm-gateway) 后面或自定义 `ANTHROPIC_BASE_URL`,你的提供商或网关定义模型名称,所以 Claude Code 不检查地通过任何字符串。检查也不涵盖 `--model` 标志、`ANTHROPIC_MODEL` 环境变量或 `model` 设置;那里的拼写错误值会在第一个请求时产生 [There's an issue with the selected model](/docs/zh-CN/errors#theres-an-issue-with-the-selected-model)。Claude Code 仍然可以在请求时在每个提供商上写入[无法识别的模型诊断行](/docs/zh-CN/errors#unrecognized-model-id-on-a-request)。176如果你使用 `--model` 标志、`ANTHROPIC_MODEL` 环境变量或 `model` 设置设置模型,Claude Code 不会提前检查它,拼写错误的值会在第一个请求时产生 [There's an issue with the selected model](/docs/zh-CN/errors#theres-an-issue-with-the-selected-model)。

177 177 

178当请求的模型有计划的停用日期或自动重新映射到较新版本时,Claude Code 显示一个警告,命名请求的模型。交互式会话将其显示为启动通知。从 v2.1.182 开始,在使用默认文本输出格式的[非交互模式](/docs/zh-CN/headless)中,相同的警告被写入 stderr。检查也涵盖在[子代理前言](/docs/zh-CN/sub-agents)中设置的 `model`。对于 `--output-format json` 和 `stream-json`,stderr 警告被抑制;从[结果消息](/docs/zh-CN/headless#get-structured-output)的 `modelUsage` 字段读取实际模型。178当请求的模型有计划的停用日期或自动重新映射到较新版本时,Claude Code 显示一个警告,命名请求的模型。交互式会话将其显示为启动通知。从 v2.1.182 开始,在使用默认文本输出格式的[非交互模式](/docs/zh-CN/headless)中,相同的警告被写入 stderr。检查也涵盖在[子代理前言](/docs/zh-CN/sub-agents)中设置的 `model`。对于 `--output-format json` 和 `stream-json`,stderr 警告被抑制;从[结果消息](/docs/zh-CN/headless#get-structured-output)的 `modelUsage` 字段读取实际模型。

179 179 


297 297 

298| 交付机制 | CLI 和 IDE | 桌面本地会话 | Web、移动和云会话 | Agent SDK 和非交互式 | Cowork |298| 交付机制 | CLI 和 IDE | 桌面本地会话 | Web、移动和云会话 | Agent SDK 和非交互式 | Cowork |

299| :- | :- | :- | :- | :- | :- |299| :- | :- | :- | :- | :- | :- |

300| 来自管理控制台的[服务器管理设置](/docs/zh-CN/server-managed-settings) | 强制执行 | 强制执行 | 强制执行,除了[Claude Tag](https://claude.com/docs/claude-tag/overview) 会话 | 强制执行 | 未交付 |300| 来自管理控制台的[服务器管理设置](/docs/zh-CN/server-managed-settings) | 强制执行 | 强制执行 | 强制执行,除了[Claude Tag](https://claude.com/docs/claude-tag/overview) 会话 | 强制执行 | 远程 Cowork 会话:服务器检查模型。在用户的机器上:未交付。 |

301| [MDM 或托管设置文件](/docs/zh-CN/managed-settings#delivery-mechanisms) | 强制执行 | 强制执行 | 在 Anthropic 托管环境中未交付;在[自托管环境](/docs/zh-CN/self-hosted-environments)中,根据[Claude Code 如何组合托管源](/docs/zh-CN/managed-settings#how-claude-code-combines-managed-sources)从运行器镜像强制执行 | 强制执行 | 在部署的地方强制执行 |301| [MDM 或托管设置文件](/docs/zh-CN/managed-settings#delivery-mechanisms) | 强制执行 | 强制执行 | 在 Anthropic 托管环境中未交付;在[自托管环境](/docs/zh-CN/self-hosted-environments)中,根据[Claude Code 如何组合托管源](/docs/zh-CN/managed-settings#how-claude-code-combines-managed-sources)从运行器镜像强制执行 | 强制执行 | 在部署的地方强制执行 |

302 302 

303* [云会话](/docs/zh-CN/claude-code-on-the-web)(包括您从桌面应用启动的会话)默认在 Anthropic 管理的 VM 上运行:部署到您的设备的设置不会到达它们,因此通过服务器管理设置交付允许列表。您的组织路由到[自托管环境](/docs/zh-CN/self-hosted-environments)的会话在您自己的计算上运行,也读取运行器镜像中的托管设置文件。[Claude Code 如何组合托管源](/docs/zh-CN/managed-settings#how-claude-code-combines-managed-sources)说明了该文件何时适用。云会话中的中途模型切换在请求的模型被允许列表排除时被拒绝。当您的服务器管理设置中的 `availableModels` 列表非空时,服务器拒绝用户在列表排除的模型上启动云会话的请求。303* [云会话](/docs/zh-CN/claude-code-on-the-web)(包括您从桌面应用启动的会话)默认在 Anthropic 管理的 VM 上运行:部署到您的设备的设置不会到达它们,因此通过服务器管理设置交付允许列表。您的组织路由到[自托管环境](/docs/zh-CN/self-hosted-environments)的会话在您自己的计算上运行,也读取运行器镜像中的托管设置文件。[Claude Code 如何组合托管源](/docs/zh-CN/managed-settings#how-claude-code-combines-managed-sources)说明了该文件何时适用。云会话中的中途模型切换在请求的模型被允许列表排除时被拒绝。当您的服务器管理设置中的 `availableModels` 列表非空时,服务器拒绝在列表排除的模型上启动云会话的请求。

304* [Claude Tag](https://claude.com/docs/claude-tag/overview) 会话在云环境中运行,但不接收服务器管理设置;在[自托管环境](/docs/zh-CN/self-hosted-environments)中,它们仍然读取运行器镜像中的托管设置文件。要为这些会话设置模型,请参阅 Claude Tag 管理员指南中的[为范围选择模型](https://claude.com/docs/claude-tag/admins/customize#choose-the-model-for-a-scope)。304* [Claude Tag](https://claude.com/docs/claude-tag/overview) 会话在云环境中运行,但不接收服务器管理设置;在[自托管环境](/docs/zh-CN/self-hosted-environments)中,它们仍然读取运行器镜像中的托管设置文件。要为这些会话设置模型,请参阅 Claude Tag 管理员指南中的[为范围选择模型](https://claude.com/docs/claude-tag/admins/customize#choose-the-model-for-a-scope)。

305* Cowork(Claude 桌面应用中的代理工作选项卡)在 Claude Code 上运行其会话,但按设计不从 claude.ai 管理控制台接收服务器管理设置。当托管设置文件存在于会话运行的地方时,它适用于 Cowork 会话;远程 Cowork 会话在 Anthropic 管理的 VM 上运行,其中不存在设备部署的文件。305* Cowork(Claude 桌面应用中的代理工作选项卡)在 Claude Code 上运行其会话,但按设计不从 claude.ai 管理控制台接收服务器管理设置。当您的服务器管理设置中的 `availableModels` 列表非空且用户选择列表外的模型时,服务器拒绝该模型用于远程 Cowork 会话。当托管设置文件存在于会话运行的地方时,它适用于 Cowork 会话;远程 Cowork 会话在 Anthropic 管理的 VM 上运行,其中不存在设备部署的文件。

306* [第三方提供商](/docs/zh-CN/server-managed-settings#platform-availability)(如 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 和 [AWS 上的 Claude Platform](/docs/zh-CN/claude-platform-on-aws))上的会话不接收服务器管理设置,因此通过 MDM 或托管设置文件在那里交付允许列表。306* [第三方提供商](/docs/zh-CN/server-managed-settings#platform-availability)(如 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 和 [AWS 上的 Claude Platform](/docs/zh-CN/claude-platform-on-aws))上的会话不接收服务器管理设置,因此通过 MDM 或托管设置文件在那里交付允许列表。

307* 服务器管理交付还需要会话使用[符合条件的登录或密钥](/docs/zh-CN/server-managed-settings#platform-availability)进行身份验证。仅通过 [`apiKeyHelper`](/docs/zh-CN/settings-reference#apikeyhelper) 脚本生成密钥的舰队应通过 MDM 或托管设置文件交付允许列表。307* 服务器管理交付还需要会话使用[符合条件的登录或密钥](/docs/zh-CN/server-managed-settings#platform-availability)进行身份验证。仅通过 [`apiKeyHelper`](/docs/zh-CN/settings-reference#apikeyhelper) 脚本生成密钥的舰队应通过 MDM 或托管设置文件交付允许列表。

308* 桌面代码选项卡还托管 [SSH 会话](/docs/zh-CN/desktop#ssh-sessions),它们从运行的远程主机读取托管设置文件。请参阅[桌面托管设置](/docs/zh-CN/desktop#managed-settings)。308* 桌面代码选项卡还托管 [SSH 会话](/docs/zh-CN/desktop#ssh-sessions),它们从运行的远程主机读取托管设置文件。请参阅[桌面托管设置](/docs/zh-CN/desktop#managed-settings)。


751| 设置全局默认值 | 运行 `/config` 并切换思考模式。保存为 `~/.claude/settings.json` 中的 `alwaysThinkingEnabled` |751| 设置全局默认值 | 运行 `/config` 并切换思考模式。保存为 `~/.claude/settings.json` 中的 `alwaysThinkingEnabled` |

752| 通过环境变量禁用 | 设置 [`MAX_THINKING_TOKENS=0`](/docs/zh-CN/env-vars),这在 Anthropic API 上关闭思考,除了 Opus 5.5、Sonnet 5.5 和 Fable 模型。在[第三方提供商](/docs/zh-CN/third-party-integrations)上,Claude Code 改为省略 `thinking` 参数,自适应推理模型可能仍然思考。其他值仅适用于[固定思考预算](#adaptive-reasoning-and-fixed-thinking-budgets) |752| 通过环境变量禁用 | 设置 [`MAX_THINKING_TOKENS=0`](/docs/zh-CN/env-vars),这在 Anthropic API 上关闭思考,除了 Opus 5.5、Sonnet 5.5 和 Fable 模型。在[第三方提供商](/docs/zh-CN/third-party-integrations)上,Claude Code 改为省略 `thinking` 参数,自适应推理模型可能仍然思考。其他值仅适用于[固定思考预算](#adaptive-reasoning-and-fixed-thinking-budgets) |

753 753 

754您不能在 Opus 5.5、Sonnet 5.5 或 Fable 模型上关闭思考。会话切换、`alwaysThinkingEnabled` 和 `MAX_THINKING_TOKENS=0` 在那里没有效果,模型根据努力级别按步骤决定思考多少。754您不能在 Opus 5.5、Sonnet 5.5 或 Fable 模型上关闭思考。会话切换和 `/config` 行显示 `Thinking can't be turned off` 对于这些模型,而不是提供切换,保存的 `alwaysThinkingEnabled: false` 或 `MAX_THINKING_TOKENS=0` 在那里没有效果。在这些模型上,模型根据努力级别按步骤决定思考多少。保存的设置在您切换到接受它的模型时再次应用。

755 755 

756Claude Code 默认折叠思考输出。按 `Ctrl+O` 切换详细模式并将推理视为灰色斜体文本。Anthropic API 上的交互式会话默认接收编辑的思考块,因此如果您想要完整摘要在展开时可用,在[设置](/docs/zh-CN/settings)中设置 `showThinkingSummaries: true`。您需要为所有生成的思考令牌付费,即使折叠或编辑。756Claude Code 默认折叠思考输出。按 `Ctrl+O` 切换详细模式并将推理视为灰色斜体文本。Anthropic API 上的交互式会话默认接收编辑的思考块,因此如果您想要完整摘要在展开时可用,在[设置](/docs/zh-CN/settings)中设置 `showThinkingSummaries: true`。您需要为所有生成的思考令牌付费,即使折叠或编辑。

757 757 


784 784 

7851M 上下文窗口使用标准模型定价,超过 200K 的令牌没有溢价。对于扩展上下文包含在您的订阅中的计划,使用仍由您的订阅覆盖。对于通过使用额度访问扩展上下文的计划,令牌计费到使用额度。7851M 上下文窗口使用标准模型定价,超过 200K 的令牌没有溢价。对于扩展上下文包含在您的订阅中的计划,使用仍由您的订阅覆盖。对于通过使用额度访问扩展上下文的计划,令牌计费到使用额度。

786 786 

787如果您的账户支持 1M 上下文,该选项会出现在最新版本的 Claude Code 的 `/model` 选择器中。如果您看不到它,请尝试重新启动您的会话。787如果您的账户支持 1M 上下文,该选项会出现在最新版本的 Claude Code 的 `/model` 选择器中。如果您看不到它,请尝试重新启动您的会话,在第三方提供商上检查您的部署是否使用 `ANTHROPIC_DEFAULT_*_MODEL` 变量[固定了模型](#pin-models-for-third-party-deployments)。

788 788 

789您也可以使用 `[1m]` 后缀与模型别名或完整模型名称:789您也可以使用 `[1m]` 后缀与模型别名或完整模型名称:

790 790 


956* 仅当底层模型[支持 1M 上下文](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model)时才附加 `[1m]`。956* 仅当底层模型[支持 1M 上下文](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model)时才附加 `[1m]`。

957* 该后缀按变量读取,而不是按模型读取。在 Amazon Bedrock、Google Cloud's Agent Platform 和 Microsoft Foundry 上,一个变量中没有 `[1m]` 的模型 ID 使用 200K 上下文,即使另一个变量使用相同的模型和后缀。Sonnet 5 在这些提供商上始终以 1M 窗口运行,从不需要该后缀。957* 该后缀按变量读取,而不是按模型读取。在 Amazon Bedrock、Google Cloud's Agent Platform 和 Microsoft Foundry 上,一个变量中没有 `[1m]` 的模型 ID 使用 200K 上下文,即使另一个变量使用相同的模型和后缀。Sonnet 5 在这些提供商上始终以 1M 窗口运行,从不需要该后缀。

958 958 

959当您设置 `ANTHROPIC_DEFAULT_*_MODEL` 变量时,`/model` 选择器会显示该模型的一行来替代该家族的内置行,包括任何 1M 上下文行。要在不向该变量添加后缀的情况下到达 1M 窗口,您的用户运行 `/model opus[1m]`,Claude Code 会将后缀应用于该变量命名的模型。`/model sonnet[1m]` 的工作方式相同。

960 

959<Note>961<Note>

960 通过 [MDM 或托管设置文件](/docs/zh-CN/managed-settings#delivery-mechanisms) 提供的 `availableModels` 允许列表在使用第三方提供商时仍然适用;[服务器托管设置不会在那里提供](/docs/zh-CN/server-managed-settings#platform-availability)。962 通过 [MDM 或托管设置文件](/docs/zh-CN/managed-settings#delivery-mechanisms) 提供的 `availableModels` 允许列表在使用第三方提供商时仍然适用;[服务器托管设置不会在那里提供](/docs/zh-CN/server-managed-settings#platform-availability)。

961 963 


1053| - | - |1055| - | - |

1054| `DISABLE_PROMPT_CACHING` | 设置为 `1` 以禁用所有模型的 prompt caching。优先于按模型设置 |1056| `DISABLE_PROMPT_CACHING` | 设置为 `1` 以禁用所有模型的 prompt caching。优先于按模型设置 |

1055| `DISABLE_PROMPT_CACHING_HAIKU` | 设置为 `1` 以仅禁用[默认 Haiku 模型](/docs/zh-CN/prompt-caching#disable-prompt-caching)的 prompt caching |1057| `DISABLE_PROMPT_CACHING_HAIKU` | 设置为 `1` 以仅禁用[默认 Haiku 模型](/docs/zh-CN/prompt-caching#disable-prompt-caching)的 prompt caching |

1056| `DISABLE_PROMPT_CACHING_SONNET` | 设置为 `1` 以仅禁用 Sonnet 模型的 prompt caching |1058| `DISABLE_PROMPT_CACHING_SONNET` | 设置为 `1` 以仅禁用[默认 Sonnet 模型](/docs/zh-CN/prompt-caching#disable-prompt-caching)的 prompt caching |

1057| `DISABLE_PROMPT_CACHING_OPUS` | 设置为 `1` 以仅禁用 Opus 模型的 prompt caching |1059| `DISABLE_PROMPT_CACHING_OPUS` | 设置为 `1` 以仅禁用[默认 Opus 模型](/docs/zh-CN/prompt-caching#disable-prompt-caching)的 prompt caching |

1058| `DISABLE_PROMPT_CACHING_FABLE` | 设置为 `1` 以仅禁用 Fable 模型的 prompt caching |1060| `DISABLE_PROMPT_CACHING_FABLE` | 设置为 `1` 以仅禁用 Fable 模型的 prompt caching |

1059 1061 

1060要为主对话和 subagents 分别选择缓存 TTL,请参阅[自己选择 TTL](/docs/zh-CN/prompt-caching#choose-the-ttl-yourself)。有关什么会触发缓存未命中,请参阅 [Claude Code 如何使用 prompt caching](/docs/zh-CN/prompt-caching)。1062要为主对话和 subagents 分别选择缓存 TTL,请参阅[自己选择 TTL](/docs/zh-CN/prompt-caching#choose-the-ttl-yourself)。有关什么会触发缓存未命中,请参阅 [Claude Code 如何使用 prompt caching](/docs/zh-CN/prompt-caching)。

Details

64}64}

65```65```

66 66 

67在 Claude Desktop 应用中,Code 标签页会话从 [到达每种 Desktop 会话的源](/docs/zh-CN/desktop#managed-settings) 读取这些托管设置。Cowork 在管理员控制台的 [数据和隐私设置](https://claude.ai/admin-settings/data-privacy-controls) 中的 **监控** 下的 OpenTelemetry 表单仅适用于 Cowork 会话,因此终端 CLI 和 Code 标签页都不会导出到您在那里设置的收集器。

68 

67Claude Code 忽略存储库的 `.claude/settings.json` 和 `.claude/settings.local.json` 中的 [OpenTelemetry 导出器变量](/docs/zh-CN/settings-reference#variables-claude-code-ignores-in-env),因此存储库无法使用它们来打开遥测、选择其去向或捕获内容。在托管设置中设置它们,或让每个开发者在其 shell 或 `~/.claude/settings.json` 中设置它们。存储库仍然可以通过将其导出器选择器(如 `OTEL_LOGS_EXPORTER`)设置为 `none` 来关闭信号,除非托管设置、`--settings` 文件或启动 Claude Code 的环境设置了该变量。69Claude Code 忽略存储库的 `.claude/settings.json` 和 `.claude/settings.local.json` 中的 [OpenTelemetry 导出器变量](/docs/zh-CN/settings-reference#variables-claude-code-ignores-in-env),因此存储库无法使用它们来打开遥测、选择其去向或捕获内容。在托管设置中设置它们,或让每个开发者在其 shell 或 `~/.claude/settings.json` 中设置它们。存储库仍然可以通过将其导出器选择器(如 `OTEL_LOGS_EXPORTER`)设置为 `none` 来关闭信号,除非托管设置、`--settings` 文件或启动 Claude Code 的环境设置了该变量。

68 70 

69Claude Code 不会将 `OTEL_*` 环境变量传递给它生成的子进程,包括 Bash 工具、hooks、MCP 服务器和语言服务器。通过 Bash 工具运行的已进行 OpenTelemetry 检测的应用程序不会继承 Claude Code 的导出器端点或标头,因此如果该应用程序需要导出自己的遥测,请直接在命令中设置这些变量。71Claude Code 不会将 `OTEL_*` 环境变量传递给它生成的子进程,包括 Bash 工具、hooks、MCP 服务器和语言服务器。通过 Bash 工具运行的已进行 OpenTelemetry 检测的应用程序不会继承 Claude Code 的导出器端点或标头,因此如果该应用程序需要导出自己的遥测,请直接在命令中设置这些变量。


582| `OTEL_RESOURCE_ATTRIBUTES` 中的键 | 您设置的自定义属性,例如 `department` 或 `team.id`。请参阅[多团队组织支持](#multi-team-organization-support) | `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES`(默认值:true) |584| `OTEL_RESOURCE_ATTRIBUTES` 中的键 | 您设置的自定义属性,例如 `department` 或 `team.id`。请参阅[多团队组织支持](#multi-team-organization-support) | `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES`(默认值:true) |

583| `vcs.repository.url.full`、`vcs.owner.name`、`vcs.repository.name`、`vcs.provider.name` | 会话存储库的身份,从其 `origin` 远程派生。请参阅[存储库属性](#repository-attributes) | `OTEL_METRICS_INCLUDE_REPOSITORY`(默认值:false)。需要 Claude Code v2.1.269 或更高版本 |585| `vcs.repository.url.full`、`vcs.owner.name`、`vcs.repository.name`、`vcs.provider.name` | 会话存储库的身份,从其 `origin` 远程派生。请参阅[存储库属性](#repository-attributes) | `OTEL_METRICS_INCLUDE_REPOSITORY`(默认值:false)。需要 Claude Code v2.1.269 或更高版本 |

584 586 

585当 Claude Code 登录到[Claude 应用网关](/docs/zh-CN/claude-apps-gateway)时,CLI 会使用来自网关会话的已认证身份标记导出:`user.id` 是 IdP 主体而不是匿名安装标识符,`user.email` 是已登录的电子邮件,`user.groups` 以逗号分隔的字符串形式携带 IdP 组成员身份。每个导出还携带 `identity.source: gateway-oidc`。网关身份最后应用,因此通过 `OTEL_RESOURCE_ATTRIBUTES` 设置的 `user.*` 和 `identity.*` 键在网关会话上被忽略。587在通过 `/login` 登录到[Claude 应用网关](/docs/zh-CN/claude-apps-gateway)的会话中,CLI 会使用已认证身份标记导出:`user.id` 是 IdP 主体,`user.email` 是已登录的电子邮件,`user.groups` 以逗号分隔的字符串形式携带 IdP 组成员身份。每个导出还携带 `identity.source: gateway-oidc`。网关身份最后应用,因此通过 `OTEL_RESOURCE_ATTRIBUTES` 设置的 `user.*` 和 `identity.*` 键在这些会话上被忽略。

588 

589对于通过网关连接的 Claude Desktop 和 Cowork 会话上的身份属性,请参阅[网关 `telemetry` 参考](/docs/zh-CN/claude-apps-gateway-config#telemetry)。

586 590 

587事件另外包括以下属性。这些永远不会附加到指标,因为它们会导致无限的基数:591事件另外包括以下属性。这些永远不会附加到指标,因为它们会导致无限的基数:

588 592 


1540 将属性操作归属于用户1544 将属性操作归属于用户

1541</h3>1545</h3>

1542 1546 

1543每个事件上的 [标准属性](#standard-attributes) 包括已认证用户的身份:`user.email`、`user.account_uuid`、`user.account_id` 和 `organization.id`(使用 Claude 账户登录时或在 [云会话](/docs/zh-CN/claude-code-on-the-web) 中,当会话自己的凭证携带它们时),加上 `user.id` 和每会话的 `session.id`。`user.id` 是安装范围的标识符,除了在 [Claude apps gateway](/docs/zh-CN/claude-apps-gateway) 会话上,其中它是来自网关颁发的令牌的 IdP 主体。1547每个事件上的 [标准属性](#standard-attributes) 包括已认证用户的身份:`user.email`、`user.account_uuid`、`user.account_id` 和 `organization.id`(使用 Claude 账户登录时或在 [云会话](/docs/zh-CN/claude-code-on-the-web) 中,当会话自己的凭证携带它们时),加上 `user.id` 和每会话的 `session.id`。`user.id` 是安装范围的标识符,除了在 [Claude apps gateway](/docs/zh-CN/claude-apps-gateway) 会话上通过 `/login` 登录时,其中它是来自网关颁发的令牌的 IdP 主体。

1544 1548 

1545在开发人员启动的会话中,MCP 工具调用、Bash 命令和文件编辑因此归属于该开发人员。Claude Code 不在单独的服务账户下运行;每个事件上记录的身份是开发人员自己的 Claude 账户,或开发人员在 [Claude apps gateway](/docs/zh-CN/claude-apps-gateway) 会话上的 IdP 身份。在 Claude Tag 频道会话中,Claude 改为作为您组织的 [共享身份](/docs/zh-CN/cloud-environments#set-the-environment-a-claude-tag-channel-uses) 工作。1549在开发人员启动的会话中,MCP 工具调用、Bash 命令和文件编辑因此归属于该开发人员。Claude Code 不在单独的服务账户下运行;每个事件上记录的身份是开发人员自己的 Claude 账户,或开发人员在 [Claude apps gateway](/docs/zh-CN/claude-apps-gateway) 会话上的 IdP 身份。在 Claude Tag 频道会话中,Claude 改为作为您组织的 [共享身份](/docs/zh-CN/cloud-environments#set-the-environment-a-claude-tag-channel-uses) 工作。

1546 1550 

1547当 Claude Code 使用直接 API 密钥进行身份验证,或针对 Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry 进行身份验证时,会话中没有 Claude 账户,仅填充 `user.id` 和 `session.id`。在这些部署中,使用 `OTEL_RESOURCE_ATTRIBUTES` 自己附加用户身份,通过 [托管设置](#administrator-configuration) 文件或启动包装器按用户设置。Claude apps gateway 会话不需要任何这些:CLI 自动标记 IdP 身份,如 [标准属性](#standard-attributes) 中所述。1551当 Claude Code 使用直接 API 密钥进行身份验证,或针对 Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry 进行身份验证时,会话中没有 Claude 账户,仅填充 `user.id` 和 `session.id`。在这些部署中,使用 `OTEL_RESOURCE_ATTRIBUTES` 自己附加用户身份,通过 [托管设置](#administrator-configuration) 文件或启动包装器按用户设置。Claude apps gateway 会话不需要任何这些:请参阅 [标准属性](#standard-attributes) 了解其导出携带的身份。

1548 1552 

1549```bash theme={null}1553```bash theme={null}

1550export OTEL_RESOURCE_ATTRIBUTES="enduser.id=jdoe@example.com,enduser.directory_id=S-1-5-21-..."1554export OTEL_RESOURCE_ATTRIBUTES="enduser.id=jdoe@example.com,enduser.directory_id=S-1-5-21-..."

network-config.md +13 −11

Details

208| 计时器 | 中止条件 | 运行位置 | 默认超时 |208| 计时器 | 中止条件 | 运行位置 | 默认超时 |

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

210| 首字节截止时间 | Claude Code 发送请求后没有响应头到达 | 直接 Anthropic API 和 [Claude Platform on AWS](/docs/zh-CN/claude-platform-on-aws),包括通过 HTTPS 代理,但不包括当 `ANTHROPIC_BASE_URL` 或 `ANTHROPIC_AWS_BASE_URL` 通过 [gateway](/docs/zh-CN/gateways) 路由时。在 Amazon Bedrock 上可选,使用 `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1`;不在 Google Cloud 的 Agent Platform 或 Microsoft Foundry 上运行 | 直接 Anthropic API 上为 180 秒,其他地方为 300 秒,加上每 32KB 请求体一秒 |210| 首字节截止时间 | Claude Code 发送请求后没有响应头到达 | 直接 Anthropic API 和 [Claude Platform on AWS](/docs/zh-CN/claude-platform-on-aws),包括通过 HTTPS 代理,但不包括当 `ANTHROPIC_BASE_URL` 或 `ANTHROPIC_AWS_BASE_URL` 通过 [gateway](/docs/zh-CN/gateways) 路由时。在 Amazon Bedrock 上可选,使用 `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1`;不在 Google Cloud 的 Agent Platform 或 Microsoft Foundry 上运行 | 直接 Anthropic API 上为 180 秒,其他地方为 300 秒,加上每 32KB 请求体一秒 |

211| 事件级监视器 | 没有响应事件解析。在运行字节级监视器的连接上,到达的字节(包括保活 ping)也会重置此监视器,最多约五分钟内没有解析的事件 | 每个提供商 | 300 秒 |211| 事件级监视器 | 没有响应事件解析。在字节级监视器运行在 Amazon Bedrock 以外的连接上的情况下,到达的字节(包括保活 ping)也会重置此监视器,最多约五分钟内没有解析的事件 | 每个提供商 | 300 秒 |

212| 字节级监视器 | 网络上没有字节到达,包括 SSE 保活 ping | 直接 Anthropic API、[Claude Platform on AWS](/docs/zh-CN/claude-platform-on-aws) 和 [gateway](/docs/zh-CN/gateways) 连接,包括自定义 `ANTHROPIC_BASE_URL`。在 Amazon Bedrock `vnd.amazon.eventstream` 响应上可选,使用 `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1`;不在 Google Cloud 的 Agent Platform 或 Microsoft Foundry 上运行 | 直接 Anthropic API 上为 180 秒,其他地方为 300 秒 |212| 字节级监视器 | 线路上没有字节到达,包括 SSE 保活 ping | 直接 Anthropic API、[Claude Platform on AWS](/docs/zh-CN/claude-platform-on-aws) 和 [gateway](/docs/zh-CN/gateways) 连接,包括自定义 `ANTHROPIC_BASE_URL`。在 Amazon Bedrock `vnd.amazon.eventstream` 响应上可选,使用 `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1`;不在 Google Cloud 的 Agent Platform 或 Microsoft Foundry 上运行 | 直接 Anthropic API 上为 180 秒,其他地方为 300 秒 |

213| 正文空闲超时 | 5 分钟内没有字节到达 | 除直接 Anthropic API 和 Claude Platform on AWS 之外的提供商,除非 [`API_FORCE_IDLE_TIMEOUT`](/docs/zh-CN/env-vars) 改变这一点 | 5 分钟 |213| 主体空闲超时 | 5 分钟内没有字节到达 | 除了直接 Anthropic API、Claude Platform on AWS 和设置了 `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1` 的 Amazon Bedrock 之外的提供商,除非 [`API_FORCE_IDLE_TIMEOUT`](/docs/zh-CN/env-vars) 改变这一点 | 5 分钟 |

214 214 

215使用这些变量配置计时器,每个都在 [环境变量参考](/docs/zh-CN/env-vars) 中详细说明:215如果设置 `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1`,字节级监视器会在 Bedrock 上替换主体空闲超时,而不是与其并行运行。`CLAUDE_STREAM_IDLE_TIMEOUT_MS` 随后也会控制 Bedrock 流在 Claude Code 将连接视为死连接之前可以保持沉默多长时间,在下面列出的限制范围内。到达的字节仍然不会在 Bedrock 上重置事件级监视器。启用调试日志后,每个 Bedrock 流随后会记录一条以 `wire-heartbeat: _chunkTimes absent` 开头的调试消息。

216 216 

217* `CLAUDE_ENABLE_STREAM_WATCHDOG` 和 `CLAUDE_ENABLE_BYTE_WATCHDOG` 在表列出的连接范围内,用 `1` 强制打开相应的监视器或用 `0` 关闭;这两个变量都不会将监视器扩展到它不覆盖的连接类型。`CLAUDE_ENABLE_BYTE_WATCHDOG` 设置为 `0` 也会关闭首字节截止时间。217使用这些变量配置计时器,每个变量在 [环境变量参考](/docs/zh-CN/env-vars) 中详细说明:

218 

219* `CLAUDE_ENABLE_STREAM_WATCHDOG` 和 `CLAUDE_ENABLE_BYTE_WATCHDOG` 在表列出的连接范围内,使用 `1` 强制打开相应的监视器或使用 `0` 关闭;这两个变量都不会将监视器扩展到它不覆盖的连接类型。`CLAUDE_ENABLE_BYTE_WATCHDOG` 设置为 `0` 也会关闭首字节截止时间。

218* `CLAUDE_STREAM_IDLE_TIMEOUT_MS` 设置两个监视器的超时。Claude Code 将低于 5 分钟的值提高到 5 分钟,并将字节级监视器的值上限设为 30 分钟。220* `CLAUDE_STREAM_IDLE_TIMEOUT_MS` 设置两个监视器的超时。Claude Code 将低于 5 分钟的值提高到 5 分钟,并将字节级监视器的值上限设为 30 分钟。

219* `CLAUDE_BYTE_STREAM_IDLE_TIMEOUT_MS` 设置字节级监视器的超时,而不改变事件级监视器的超时,限制在 10 秒到 30 分钟之间,并优先于 `CLAUDE_STREAM_IDLE_TIMEOUT_MS` 用于该监视器。221* `CLAUDE_BYTE_STREAM_IDLE_TIMEOUT_MS` 设置字节级监视器的超时,而不改变事件级监视器的超时,限制在 10 秒到 30 分钟之间,并优先于 `CLAUDE_STREAM_IDLE_TIMEOUT_MS` 用于该监视器。

220* `CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS` 直接设置首字节截止时间。保持未设置状态,Claude Code 使用字节级监视器的超时,因此 `CLAUDE_STREAM_IDLE_TIMEOUT_MS` 和 `CLAUDE_BYTE_STREAM_IDLE_TIMEOUT_MS` 也会改变截止时间。有关限制、上传限额、`API_TIMEOUT_MS` 上限以及重试在无响应中止后等待多长时间,请参阅 [No response from API](/docs/zh-CN/errors#no-response-from-api)。222* `CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS` 直接设置首字节截止时间。保持未设置状态,Claude Code 使用字节级监视器的超时,因此 `CLAUDE_STREAM_IDLE_TIMEOUT_MS` 和 `CLAUDE_BYTE_STREAM_IDLE_TIMEOUT_MS` 也会改变截止时间。有关限制、上传额度、`API_TIMEOUT_MS` 上限以及重试在无响应中止后等待多长时间,请参阅 [API 无响应](/docs/zh-CN/errors#no-response-from-api)。

221* `API_FORCE_IDLE_TIMEOUT` 设置为 `0` 会关闭正文空闲超时,设置为 `1` 会为每个提供商打开它。监视器独立于它运行,因此要让流暂停超过其阈值,还要提高或禁用它们。223* `API_FORCE_IDLE_TIMEOUT` 设置为 `0` 会关闭主体空闲超时,设置为 `1` 会为每个提供商打开它。监视器独立于它运行,因此要让流暂停超过其阈值,也要提高或禁用它们。

222 224 

223当监视器中止停滞的流时,Claude Code 将中止视为中流失败,您看到的内容取决于响应已进行到多远。Claude Code 重试请求或以错误结束轮次,保留已完成的输出并显示 [不完整响应通知](/docs/zh-CN/errors#the-response-above-may-be-incomplete),或正常结束轮次。[自动重试](/docs/zh-CN/errors#automatic-retries) 说明每个结果适用的位置。225当监视器中止停滞的流时,Claude Code 将中止视为中流失败,你看到的内容取决于响应已进行到多远。Claude Code 重试请求或以错误结束轮次,保留已完成的输出并显示 [不完整响应通知](/docs/zh-CN/errors#the-response-above-may-be-incomplete),或正常结束轮次。[自动重试](/docs/zh-CN/errors#automatic-retries) 说明每个结果适用的位置。

224 226 

225在 [非交互式会话](/docs/zh-CN/headless) 中,以及在任何会话中的子代理响应中,Claude Code 可能首先提示 Claude 继续被截断的响应;[该通知的条目](/docs/zh-CN/errors#the-response-above-may-be-incomplete) 说明何时执行此操作以及何时您仍然看到通知。227在 [非交互式会话](/docs/zh-CN/headless) 中,以及在任何会话中的子代理响应中,Claude Code 可能首先提示 Claude 继续被切断的响应;[该通知的条目](/docs/zh-CN/errors#the-response-above-may-be-incomplete) 说明何时执行此操作以及何时仍然看到通知。

226 228 

227当首字节截止时间触发时,没有响应已开始,因此没有部分输出要保留。有关 Claude Code 如何重新发送请求以及何时轮次改为结束,请参阅 [No response from API](/docs/zh-CN/errors#no-response-from-api)。229当首字节截止时间触发时,没有响应已开始,因此没有部分输出可保留。有关 Claude Code 如何重新发送请求以及何时轮次改为结束,请参阅 [API 无响应](/docs/zh-CN/errors#no-response-from-api)。

228 230 

229<h2 id="network-access-requirements">231<h2 id="network-access-requirements">

230 网络访问要求232 网络访问要求


277 279 

278如果您的 GitHub Enterprise Cloud 组织按 IP 地址限制访问,请启用[已安装 GitHub App 的 IP 白名单继承](https://docs.github.com/en/enterprise-cloud@latest/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/managing-allowed-ip-addresses-for-your-organization#allowing-access-by-github-apps),并且还要[添加白名单条目](https://docs.github.com/en/enterprise-cloud@latest/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/managing-allowed-ip-addresses-for-your-organization#adding-an-allowed-ip-address)以用于 Anthropic 的[出站 IP 地址](https://platform.claude.com/docs/en/api/ip-addresses#outbound-ip-addresses)。继承仅涵盖 Claude GitHub App 作为安装进行的请求,不涵盖它代表您的用户进行的请求。对于其他防火墙,请参阅 [Anthropic API IP 地址](https://platform.claude.com/docs/en/api/ip-addresses)。280如果您的 GitHub Enterprise Cloud 组织按 IP 地址限制访问,请启用[已安装 GitHub App 的 IP 白名单继承](https://docs.github.com/en/enterprise-cloud@latest/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/managing-allowed-ip-addresses-for-your-organization#allowing-access-by-github-apps),并且还要[添加白名单条目](https://docs.github.com/en/enterprise-cloud@latest/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/managing-allowed-ip-addresses-for-your-organization#adding-an-allowed-ip-address)以用于 Anthropic 的[出站 IP 地址](https://platform.claude.com/docs/en/api/ip-addresses#outbound-ip-addresses)。继承仅涵盖 Claude GitHub App 作为安装进行的请求,不涵盖它代表您的用户进行的请求。对于其他防火墙,请参阅 [Anthropic API IP 地址](https://platform.claude.com/docs/en/api/ip-addresses)。

279 281 

280对于防火墙后的自托管 [GitHub Enterprise Server](/docs/zh-CN/github-enterprise-server) 实例,白名单 Anthropic 的[出站 IP 地址](https://platform.claude.com/docs/en/api/ip-addresses#outbound-ip-addresses),以便 Anthropic 基础设施可以访问您的 GHES 主机来克隆存储库和发布审查评论。[自托管环境](/docs/zh-CN/self-hosted-environments-deploy#configure-git)中的会话从您的网络内部访问您的 GHES 主机,因此该暴露仅适用于 Anthropic 托管会话、托管的会话前流程(如存储库选择器)以及选择加入 [Anthropic git 代理](/docs/zh-CN/self-hosted-environments-deploy#use-the-anthropic-git-proxy)的自托管运行程序,该代理从 Anthropic 一侧获取。对于仅在您的网络内可路由的 GHES 主机,[SCM 连接器](/docs/zh-CN/self-hosted-environments-reference#scm-connector-flags)通过出站连接而不是白名单来承载托管的会话前流程,因此不需要白名单。282对于防火墙后的自托管 [GitHub Enterprise Server](/docs/zh-CN/github-enterprise-server) 实例,白名单 Anthropic 的[出站 IP 地址](https://platform.claude.com/docs/en/api/ip-addresses#outbound-ip-addresses),以便 Anthropic 基础设施可以访问您的 GHES 主机来克隆存储库和发布审查评论。[自托管环境](/docs/zh-CN/self-hosted-environments-deploy#configure-git)中的会话从您的网络内部访问您的 GHES 主机,因此该暴露仅适用于 Anthropic 托管会话、托管的会话前流程(如存储库选择器)以及选择加入 [Anthropic git 代理](/docs/zh-CN/self-hosted-environments-deploy#use-the-anthropic-git-proxy)的自托管运行程序,该代理从 Anthropic 一侧获取。[SCM 连接器](/docs/zh-CN/self-hosted-environments-reference#scm-connector-flags)不可用,因此托管的会话前流程无法访问仅在您的网络内可路由的 GHES 主机。

281 283 

282<h3 id="desktop-and-claude-ai">284<h3 id="desktop-and-claude-ai">

283 Desktop 和 claude.ai285 Desktop 和 claude.ai

Details

309 309 

310* **计划**:所有计划。310* **计划**:所有计划。

311* **组织**:在 Team 和 Enterprise 上,自动模式默认可用。管理员可以通过在[托管设置](/docs/zh-CN/managed-settings)中将 `permissions.disableAutoMode` 设置为 `"disable"` 来为组织关闭它。311* **组织**:在 Team 和 Enterprise 上,自动模式默认可用。管理员可以通过在[托管设置](/docs/zh-CN/managed-settings)中将 `permissions.disableAutoMode` 设置为 `"disable"` 来为组织关闭它。

312* **模型**:在 Anthropic API 和 [AWS 上的 Claude Platform](/docs/zh-CN/claude-platform-on-aws) 上,Claude Opus 4.6 或更高版本、Sonnet 4.6 或更高版本,或[Fable 模型](/docs/zh-CN/model-config#work-with-fable)。在 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 和已登录的[Claude 应用网关](/docs/zh-CN/claude-apps-gateway)会话上,仅 Claude Sonnet 5、Opus 4.7 或更高版本和 Fable 模型。较旧的模型,包括 Sonnet 4.5、Opus 4.5、Haiku 和 claude-3 模型,在任何提供商上都不受支持。312* **模型**:在 Anthropic API 和 [AWS 上的 Claude Platform](/docs/zh-CN/claude-platform-on-aws) 上,Claude Opus 4.6 或更高版本、Sonnet 4.6 或更高版本,或[Fable 模型](/docs/zh-CN/model-config#work-with-fable)。在 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 和已登录的[Claude 应用网关](/docs/zh-CN/claude-apps-gateway)会话上,仅 Claude Sonnet 5 或更高版本、Opus 4.7 或更高版本和 Fable 模型。较旧的模型,包括 Sonnet 4.5、Opus 4.5、Haiku 和 claude-3 模型,在任何提供商上都不受支持。

313* **提供商**:在 Anthropic API、AWS 上的 Claude Platform、Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 和已登录的 Claude 应用网关会话上默认可用。313* **提供商**:在 Anthropic API、AWS 上的 Claude Platform、Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 和已登录的 Claude 应用网关会话上默认可用。

314 314 

315如果 Claude Code 报告自动模式不可用,首先检查这些要求以及任何设置文件是否设置了 [`disableAutoMode`](/docs/zh-CN/settings-reference#disableautomode)。Anthropic 也可能已在服务器端关闭了自动模式,或服务器可能为您的账户拒绝了自动模式。收到任一答案的会话会保持自动模式关闭直到会话结束,因此稍后启动新会话。315如果 Claude Code 报告自动模式不可用,首先检查这些要求以及任何设置文件是否设置了 [`disableAutoMode`](/docs/zh-CN/settings-reference#disableautomode)。Anthropic 也可能已在服务器端关闭了自动模式,或服务器可能已为您的账户拒绝了自动模式。收到任一答案的会话会保持自动模式关闭直到会话结束,因此稍后启动新会话。

316 316 

317一条单独的消息命名一个模型并说自动模式"无法确定"操作的安全性意味着分类器请求失败。该失败通常是暂时的,但在 Amazon Bedrock 上,它可能会重复直到您的账户可以调用命名的模型。有关原因和处理方法,请参阅[错误参考](/docs/zh-CN/errors#auto-mode-cannot-determine-the-safety-of-an-action)。317一条单独的消息命名一个模型并说自动模式"无法确定"操作的安全性意味着分类器请求失败。该失败通常是暂时的,但在 Amazon Bedrock 上,它可能会重复直到您的账户可以调用命名的模型。有关原因和处理方法,请参阅[错误参考](/docs/zh-CN/errors#auto-mode-cannot-determine-the-safety-of-an-action)。

318 318 

319如果您在[设置](/docs/zh-CN/settings-reference#all-settings)中设置 `defaultMode: "auto"` 并且终端会话在没有错误的情况下以手动模式启动,该设置可能在 `.claude/settings.json` 或 `.claude/settings.local.json` 中。`auto` 不会从这些文件生效。将其移至 `~/.claude/settings.json`。对于 VS Code 扩展启动的对话,请改为检查扩展自己的列表在[切换权限模式](#switch-permission-modes)中。319如果您在[设置](/docs/zh-CN/settings-reference#all-settings)中设置 `defaultMode: "auto"` 并且终端会话在没有错误的情况下以 Manual 模式启动,该设置可能在 `.claude/settings.json` 或 `.claude/settings.local.json` 中。`auto` 不会从这些文件生效。将其移至 `~/.claude/settings.json`。对于 VS Code 扩展启动的对话,请改为检查扩展自己的列表在[切换权限模式](#switch-permission-modes)中。

320 320 

321<h3 id="enable-auto-mode-on-bedrock-agent-platform-or-foundry">321<h3 id="enable-auto-mode-on-bedrock-agent-platform-or-foundry">

322 Bedrock、Agent Platform 或 Foundry 上的自动模式322 Bedrock、Agent Platform 或 Foundry 上的自动模式


324 324 

325在 [Amazon Bedrock](/docs/zh-CN/amazon-bedrock)、[Google Cloud 的 Agent Platform](/docs/zh-CN/google-vertex-ai)、[Microsoft Foundry](/docs/zh-CN/microsoft-foundry) 和已登录的[Claude 应用网关](/docs/zh-CN/claude-apps-gateway)会话上,自动模式默认可用。在 Claude Code v2.1.283 或更高版本中,它也是交互式终端和 [VS Code](/docs/zh-CN/vs-code) 会话的[内置起始权限模式](#which-mode-a-session-starts-in)。要自己选择起始权限模式,请按照[以不同权限模式启动](#start-in-a-different-mode)的描述设置 `permissions.defaultMode`,或从 VS Code 扩展的模式指示器中选择权限模式。325在 [Amazon Bedrock](/docs/zh-CN/amazon-bedrock)、[Google Cloud 的 Agent Platform](/docs/zh-CN/google-vertex-ai)、[Microsoft Foundry](/docs/zh-CN/microsoft-foundry) 和已登录的[Claude 应用网关](/docs/zh-CN/claude-apps-gateway)会话上,自动模式默认可用。在 Claude Code v2.1.283 或更高版本中,它也是交互式终端和 [VS Code](/docs/zh-CN/vs-code) 会话的[内置起始权限模式](#which-mode-a-session-starts-in)。要自己选择起始权限模式,请按照[以不同权限模式启动](#start-in-a-different-mode)的描述设置 `permissions.defaultMode`,或从 VS Code 扩展的模式指示器中选择权限模式。

326 326 

327这些提供商仅支持 Claude Sonnet 5、Opus 4.7 或更高版本和 Fable 模型。在任何其他模型上,会话以手动模式启动。327仅这些提供商上支持 Claude Sonnet 5 或更高版本、Opus 4.7 或更高版本和 Fable 模型。在任何其他模型上,会话以 Manual 模式启动。

328 328 

329要防止开发人员使用自动模式,请在[托管设置](/docs/zh-CN/managed-settings)中将 `disableAutoMode` 设置为 `"disable"`。这会从 `Shift+Tab` 循环中移除 `auto`,并且使用 `--permission-mode auto` 启动的会话会改为以手动模式启动。已在自动模式中运行的会话在设置从[管理员部署的源](/docs/zh-CN/managed-settings#which-managed-source-claude-code-uses)到达该会话时会离开它,并显示 `auto mode disabled by settings`。在 v2.1.251 之前,运行中的会话会保持自动模式直到它结束。329要防止开发人员使用自动模式,请在[托管设置](/docs/zh-CN/managed-settings)中将 `disableAutoMode` 设置为 `"disable"`。这会从 `Shift+Tab` 循环中移除 `auto`,并且使用 `--permission-mode auto` 启动的会话会以 Manual 模式启动。已在自动模式中运行的会话在设置从[管理员部署的源](/docs/zh-CN/managed-settings#which-managed-source-claude-code-uses)到达该会话时会离开它,并显示 `auto mode disabled by settings`。在 v2.1.251 之前,运行中的会话会保持自动模式直到它结束。

330 330 

331在 v2.1.158 到 v2.1.206 中,这些提供商上的自动模式是关闭的,直到您设置 `CLAUDE_CODE_ENABLE_AUTO_MODE=1`,并且 Claude Code 在这些提供商上忽略 `defaultMode: "auto"`,除非也设置了该变量。该变量仍被接受以保持兼容性,从 v2.1.207 开始无效。331在 v2.1.158 到 v2.1.206 中,自动模式在这些提供商上是关闭的,直到您设置 `CLAUDE_CODE_ENABLE_AUTO_MODE=1`,并且 Claude Code 在这些提供商上忽略 `defaultMode: "auto"`,除非也设置了该变量。该变量仍被接受以保持兼容性,从 v2.1.207 开始无效。

332 332 

333<h3 id="server-side-classifier-review">333<h3 id="server-side-classifier-review">

334 服务器端分类器审查334 服务器端分类器审查


340* **云提供商、LLM 网关或代理**:在 [AWS 上的 Claude Platform](/docs/zh-CN/claude-platform-on-aws)、Amazon Bedrock、Google Cloud 的 Agent Platform 和 Microsoft Foundry 上,以及每当您将 `ANTHROPIC_BASE_URL` 指向[LLM 网关或代理](/docs/zh-CN/llm-gateway)时,无论您的计划如何。默认询问需要 Claude Code v2.1.278 或更高版本。340* **云提供商、LLM 网关或代理**:在 [AWS 上的 Claude Platform](/docs/zh-CN/claude-platform-on-aws)、Amazon Bedrock、Google Cloud 的 Agent Platform 和 Microsoft Foundry 上,以及每当您将 `ANTHROPIC_BASE_URL` 指向[LLM 网关或代理](/docs/zh-CN/llm-gateway)时,无论您的计划如何。默认询问需要 Claude Code v2.1.278 或更高版本。

341* **已登录的[Claude 应用网关](/docs/zh-CN/claude-apps-gateway)会话**:需要 Claude Code v2.1.280 或更高版本341* **已登录的[Claude 应用网关](/docs/zh-CN/claude-apps-gateway)会话**:需要 Claude Code v2.1.280 或更高版本

342 342 

343服务器审查操作的地方,其判决决定了它们。另外两种结果是可能的:343服务器审查操作的地方,其判决决定了它们。还有两种其他可能的结果:

344 344 

345* **服务器不审查会话**:响应完成时没有审查结果,或服务器回答它不审查此会话。最常见的原因是 LLM 网关或代理丢弃审查请求或结果,以及平台、区域或凭证还没有服务器端检查。Claude Code 回退到自己的分类器请求。一旦该回退对会话的其余部分生效,它会在那些请求被计费的账户上显示[关于分类器请求费用的通知](/docs/zh-CN/auto-mode-classifier-billing)。345* **服务器不审查会话**:响应完成时没有审查结果,或服务器回答它不审查此会话。最常见的原因是 LLM 网关或代理丢弃审查请求或结果,以及平台、区域或凭证还没有服务器端检查。Claude Code 回退到自己的分类器请求。一旦该回退对会话的其余部分生效,它会在那些请求被计费的账户上显示[关于分类器请求费用的通知](/docs/zh-CN/auto-mode-classifier-billing)。

346* **服务器对操作没有给出判决**:Claude Code 拒绝该操作而不是未审查地运行它。在任何连接上,当响应在审查结果到达之前结束或结果以 Claude Code 无法读取的形式到达时,这会发生。丢弃响应或重写结果的 LLM 网关或代理可能导致任一情况。在直接连接到 Anthropic API 时,当服务器对操作的检查失败时也会发生,例如超时。[服务器未返回安全判决](/docs/zh-CN/errors#the-server-returned-no-safety-verdict)涵盖拒绝消息、拒绝重复时发生的情况以及处理方法。346* **服务器对操作没有给出判决**:Claude Code 拒绝该操作而不是运行它而不审查。在任何连接上,当响应在审查结果到达之前结束或结果以 Claude Code 无法读取的形式到达时,这会发生。丢弃响应或重写结果的 LLM 网关或代理可能导致任一情况。在直接连接到 Anthropic API 时,当服务器对操作的检查失败时也会发生,例如超时。[服务器未返回安全判决](/docs/zh-CN/errors#the-server-returned-no-safety-verdict)涵盖拒绝消息、拒绝重复时发生的情况以及处理方法。

347 347 

348要跳过询问服务器并始终使用 Claude Code 自己的分类器请求,请设置 [`CLAUDE_CODE_AUTO_MODE_SERVER=0`](/docs/zh-CN/env-vars)。在直接连接到 Anthropic API 时,该变量需要 Claude Code v2.1.281 或更高版本。将其设置为 `1` 会在没有它的会话中打开服务器审查,例如 `-p` 或 Agent SDK 会话,除非您也设置了 `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`。如果您设置 `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1` 并保持 `CLAUDE_CODE_AUTO_MODE_SERVER` 未设置,Claude Code 也会停止询问服务器,除了[禁用预发布功能](/docs/zh-CN/llm-gateway-protocol#disable-pre-release-capabilities)描述的情况。348要跳过询问服务器并始终使用 Claude Code 自己的分类器请求,请设置 [`CLAUDE_CODE_AUTO_MODE_SERVER=0`](/docs/zh-CN/env-vars)。在直接连接到 Anthropic API 时,该变量需要 Claude Code v2.1.281 或更高版本。将其设置为 `1` 会在没有它的会话中打开服务器审查,例如 `-p` 或 Agent SDK 会话,除非您也设置了 `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`。如果您设置 `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1` 并保持 `CLAUDE_CODE_AUTO_MODE_SERVER` 未设置,Claude Code 也会停止询问服务器,除了[禁用预发布功能](/docs/zh-CN/llm-gateway-protocol#disable-pre-release-capabilities)描述的情况。

349 349 


358* 下载和执行代码,如 `curl | bash`358* 下载和执行代码,如 `curl | bash`

359* 向外部端点发送敏感数据359* 向外部端点发送敏感数据

360* 生产部署和迁移360* 生产部署和迁移

361* 云存储上的大规模删除361* 云存储上的大量删除

362* 授予 IAM 或仓库权限362* 授予 IAM 或仓库权限

363* 修改共享基础设施363* 修改共享基础设施

364* 不可逆地销毁会话前存在的文件364* 不可逆地销毁会话前存在的文件

365* 强制推送365* 强制推送

366* 提交或推送会在运行时向仓库外发送秘密或敏感数据的更改,或扩大部署公开的内容。这涵盖将秘密传递给不已接收它的目的地的 CI 工作流或部署配置、读取秘密存储并发送数据的脚本或设置步骤,以及扩大部署发布内容的配置更改,例如注册表、可见性、工件或源映射设置。检查适用于任何分支,即使仓库是公开的也适用,并在提交或推送时触发,无论该提交或推送是否触发管道;清除它需要命名执行效果,而不仅仅是提交或推送。在 v2.1.211 之前,此检查的范围仅限于默认分支:当它携带敏感内容、相对于您要求的隐藏或误描述的更改、从仓库外移植的内容或绕过您要求的审查的内容时,推送那里被阻止366* 提交或推送会在运行时向仓库外发送秘密或敏感数据的更改,或扩大部署公开的内容。这涵盖将秘密传递给不已接收它的目的地的 CI 工作流或部署配置、读取秘密存储并发送数据的脚本或设置步骤,以及扩大部署发布内容的配置更改,例如注册表、可见性、工件或源映射设置。检查适用于任何分支,即使仓库是公开的也适用,并在提交或推送时触发,无论该提交或推送是否触发管道;清除它需要命名执行效果,而不仅仅是提交或推送。在 v2.1.211 之前,此检查的范围仅限于默认分支:当推送携带敏感内容、隐瞒或误描述相对于您要求的内容、从仓库外移植的内容或绕过您要求的审查的内容时,推送到那里会被阻止

367* `git reset --hard`、`git checkout -- .`、`git restore .`、`git clean -fd`、`git stash drop` 或 `git stash clear`,分类器假设会丢弃未提交的更改367* `git reset --hard`、`git checkout -- .`、`git restore .`、`git clean -fd`、`git stash drop` 或 `git stash clear`,分类器假设会丢弃未提交的更改

368* `git commit --amend` 当 HEAD 处的提交不是在此会话中创建的368* `git commit --amend` 当 HEAD 处的提交不是在此会话中创建的

369* 从 v2.1.198 开始,`git commit --amend` 当 HEAD 处的提交已被推送时。仅消息重述不被阻止:`--amend -m` 在没有新暂存的情况下,对于 Claude 在此会话期间创建的提交369* 从 v2.1.198 开始,`git commit --amend` 当 HEAD 处的提交已被推送。仅消息重述不被阻止:`--amend -m` 在 Claude 在此会话期间创建的提交上没有新暂存的内容

370* `terraform destroy`、`pulumi destroy`、`cdk destroy` 或 `terragrunt destroy`,以及应用销毁资源的计划370* `terraform destroy`、`pulumi destroy`、`cdk destroy` 或 `terragrunt destroy`,以及应用销毁资源的计划

371 

372Claude Code v2.1.195 及更高版本默认阻止更多类别。其中几个取决于[环境](/docs/zh-CN/auto-mode-config#define-trusted-infrastructure)条目,例如敏感的远程目标和受保护的 IaC 范围,您可以将其缩小到具体名称。

373 

374* 写入秘密管理器,或更改 DNS 记录或 TLS 证书371* 写入秘密管理器,或更改 DNS 记录或 TLS 证书

375* 合并没有人类批准的拉取请求、批准 Claude 自己的拉取请求或禁用 CI 检查372* 合并没有人类批准的拉取请求、批准 Claude 自己的拉取请求或禁用 CI 检查

376* 发布本身是自动化命令的评论,例如 `atlantis apply` 或机器人的 `/deploy` 或 `/merge`373* 发布本身是自动化命令的评论,例如 `atlantis apply` 或机器人的 `/deploy` 或 `/merge`

377* 切换、调整或删除生产功能标志374* 切换、调整或删除生产功能标志

378* 将基础设施更改应用于受保护的 IaC 范围,或排空和移除集群节点375* 将基础设施更改应用于受保护的 IaC 范围,或排空和移除集群节点

379* 写入超出您命名的资源的共享计算集群,例如标签选择器或捕获其他用户作业的 `--all`376* 写入超出您命名的资源的共享计算集群,例如标签选择器或 `--all` 捕获其他用户的作业

380* 创建在每个节点上运行或拦截集群流量的 Kubernetes 资源,例如 DaemonSets 和准入 webhooks377* 创建在每个节点上运行或拦截集群流量的 Kubernetes 资源,例如 DaemonSets 和准入 webhooks

381* 交互式 shell 或端口转发到敏感的远程目标378* 交互式 shell 或端口转发到敏感的远程目标

382* 打开隧道或反向 shell,使本地服务可从公共互联网访问379* 打开隧道或反向 shell 使本地服务可从公网访问

383* 将实时凭证或令牌打印到记录或文件中380* 将实时凭证或令牌打印到记录或文件中

384* 访问在您的[环境](/docs/zh-CN/auto-mode-config#define-trusted-infrastructure)中列为敏感数据位置的位置,或从其中复制数据。从 v2.1.198 开始,这也阻止从一个向条目排除的受众发送数据381* 访问在您的[环境](/docs/zh-CN/auto-mode-config#define-trusted-infrastructure)中列为敏感数据位置的位置,或从一个位置复制数据。从 v2.1.198 开始,这也阻止从一个位置向条目排除的受众发送数据

385* 绕过您的内部包注册表将包安装路由到公共注册表。从 v2.1.198 开始,这也适用于您在对话中告诉 Claude 内部注册表或镜像存在的情况,而不仅仅是在您的环境中列出的情况382* 绕过您的内部包注册表将包安装路由到公共注册表。从 v2.1.198 开始,这也适用于您在对话中告诉 Claude 内部注册表或镜像存在的情况,而不仅仅是在您的环境中列出的情况

386* 使用禁用安全防护的标志运行命令,如 `--insecure`383* 使用禁用安全防护的标志运行命令,如 `--insecure`

387* 启动在没有人类批准或沙箱的情况下运行的自主代理循环,例如使用 `--dangerously-skip-permissions` 或 `--no-sandbox` 启动的循环。从 v2.1.198 开始,这也涵盖运行禁用隔离和按操作批准的第三方代理或评估工具,例如使用 `--yes-always` 启动的运行器384* 启动在没有人类批准或沙箱的情况下运行的自主代理循环,例如使用 `--dangerously-skip-permissions` 或 `--no-sandbox` 启动的循环。从 v2.1.198 开始,这也涵盖运行禁用隔离和按操作批准的第三方代理或评估工具,例如使用 `--yes-always` 启动的运行器

388* [Chrome 中的 Claude](/docs/zh-CN/chrome)浏览器操作可能会向源外发送页面内容、cookie 或凭证385* [Chrome 中的 Claude](/docs/zh-CN/chrome)浏览器操作可能会向外源发送页面内容、cookie 或凭证

386 

387其中几个类别取决于[环境](/docs/zh-CN/auto-mode-config#define-trusted-infrastructure)条目,例如敏感的远程目标和受保护的 IaC 范围,您可以将其缩小到具体名称。

389 388 

390Claude Code v2.1.198 及更高版本也默认阻止这些:389Claude Code v2.1.198 及更高版本也默认阻止这些:

391 390 

392* 通过通配符、glob 或年龄过滤器而不是特定命名路径删除 `/tmp`、`$TMPDIR` 或其他共享暂存或缓存目录中的文件391* 通过通配符、glob 或年龄过滤器而不是特定命名路径删除 `/tmp`、`$TMPDIR` 或其他共享暂存或缓存目录中的文件

393* 在您自己的消息未授权这些详情给该收件人的情况下,将敏感详情包含在发送、上传、发布或写入其他人或共享系统的内容中。PR 和问题正文、提交消息和评论在仓库在信任边界外或公开时计为这种出站内容,包括您组织自己的公开仓库;内部文件路径、代码名称、实时 API 响应数据(如电子邮件或账户标识符)和基础设施标识符计为敏感详情。PR、问题和提交消息范围需要 Claude Code v2.1.200 或更高版本。PR 或问题正文中的实时个人数据(如电子邮件地址、账户或组织标识符或使用指标)需要您命名这些详情和收件人,无论仓库的可见性或信任边界如何。该检查需要 Claude Code v2.1.203 或更高版本392* 在您自己的消息未授权这些详情给该收件人的情况下,在发送、上传、发布或写入给其他人或共享系统的内容中包含敏感详情。当仓库在信任边界外或公开时,PR 和问题正文、提交消息和评论计为这种出站内容,包括您组织自己的公开仓库;内部文件路径、代码名称、实时 API 响应数据(如电子邮件或账户标识符)和基础设施标识符计为敏感详情。PR、问题和提交消息范围需要 Claude Code v2.1.200 或更高版本。PR 或问题正文中的实时个人数据(如电子邮件地址、账户或组织标识符或使用指标)需要您命名这些详情和收件人,无论仓库的可见性或信任边界如何。该检查需要 Claude Code v2.1.203 或更高版本

394* 向 Claude Code 自己的 tmux 窗格发送按键以驱动其自己的界面,分类器将其视为 Claude 更改自己的权限或监督393* 向 Claude Code 自己的 tmux 窗格发送按键以驱动其自己的界面,分类器将其视为 Claude 更改自己的权限或监督

395 394 

396Claude Code v2.1.200 及更高版本也默认阻止这些:395Claude Code v2.1.200 及更高版本也默认阻止这些:


399* 删除或拆除 Claude 在会话中未创建的有状态资源,当没有更具体的删除规则适用且您未命名该资源时398* 删除或拆除 Claude 在会话中未创建的有状态资源,当没有更具体的删除规则适用且您未命名该资源时

400* 将 API 基础 URL、代理端点、webhook 接收器或注册表镜像重新指向不适合任务的第三方主机,包括在 `.env.example` 等示例文件中399* 将 API 基础 URL、代理端点、webhook 接收器或注册表镜像重新指向不适合任务的第三方主机,包括在 `.env.example` 等示例文件中

401* 使用 `git remote set-url` 或 `git remote add` 更改推送去向,除非您命名了新远程400* 使用 `git remote set-url` 或 `git remote add` 更改推送去向,除非您命名了新远程

402* 推送秘密或个人或受信任的数据到已知为公开的仓库,或推送不属于该仓库自己工作的机密材料。dotfiles 仓库自己的主题是个人或受信任数据的唯一例外,来自私有仓库到任何公开表面的内容以相同方式被阻止;两项改进都需要 Claude Code v2.1.203 或更高版本。在 v2.1.203 之前,个人数据与机密材料分组,仅当它不属于该仓库自己的工作时才被阻止。当仓库的可见性未确定时,分类器不仅基于此阻止;它改为根据其他规则判断内容401* 将秘密或个人或受信数据推送到已知为公开的仓库,或将不属于该仓库自己工作的机密材料推送到那里。dotfiles 仓库自己的主题是个人或受信数据的唯一例外,来自私有仓库到任何公开表面的内容以相同方式被阻止;两项改进都需要 Claude Code v2.1.203 或更高版本。在 v2.1.203 之前,个人数据与机密材料分组,仅当它不属于该仓库自己的工作时才被阻止。当仓库的可见性未确定时,分类器不仅基于此阻止;它改为根据其他规则判断内容

403* 针对不同仓库或组织打开拉取请求、使用 `gh repo fork` 分叉或推送到第三方仓库,除非您命名了该外部目标402* 针对不同仓库或组织打开拉取请求、使用 `gh repo fork` 进行分叉或推送到第三方仓库,除非您命名了该外部目标

404 403 

405Claude Code v2.1.203 及更高版本也默认阻止这些:404Claude Code v2.1.203 及更高版本也默认阻止这些:

406 405 


409Claude Code v2.1.205 及更高版本也默认阻止这些:408Claude Code v2.1.205 及更高版本也默认阻止这些:

410 409 

411* 写入 Claude Code 会话记录、`~/.claude/projects/` 下的 `.jsonl` 历史文件或您配置的配置目录,无论是直接还是通过 shell 命令。该规则也涵盖 Claude Code 为其自己的检查附加到每个记录条目的元数据行。读取记录不被阻止410* 写入 Claude Code 会话记录、`~/.claude/projects/` 下的 `.jsonl` 历史文件或您配置的配置目录,无论是直接还是通过 shell 命令。该规则也涵盖 Claude Code 为其自己的检查附加到每个记录条目的元数据行。读取记录不被阻止

412* 递归强制删除,例如 `rm -rf "$VAR"` 或 `Remove-Item -Recurse -Force $dir`,其目标是在分类器看到的对话中任何地方都未分配的 shell 变量,或以这样的变量为根的 glob。该值仅来自较早的命令输出,分类器永远不会收到,因此分类器无法根据其他删除规则验证删除目标。当您命名被删除的确切路径或 Claude 使用解析的文字路径重新运行删除时,该块会清除。分类器可以解析其目标的删除不受影响。411* 递归强制删除,例如 `rm -rf "$VAR"` 或 `Remove-Item -Recurse -Force $dir`,其目标是分类器看不到的任何地方分配的 shell 变量,或以这样的变量为根的 glob。该值仅来自较早的命令输出,分类器从不接收,因此分类器无法根据其他删除规则验证删除目标。当您命名被删除的确切路径或 Claude 使用写入命令的已解析文字路径重新运行删除时,该块会清除。分类器可以解析其目标的删除不受影响。

413 412 

414 直接在变量下的 glob,如 `rm -rf "$VAR"/*`,是[关键路径](#critical-paths)。`Remove-Item` 目标是裸 `*` 或以 `/*` 或 `\*` 结尾的永远不会到达分类器:Claude Code [直接拒绝它们](#remove-item-in-powershell)。413 直接在变量下的 glob,如 `rm -rf "$VAR"/*`,是[关键路径](#critical-paths)。`Remove-Item` 目标是裸 `*` 或以 `/*` 或 `\*` 结尾的从不到达分类器:Claude Code [直接拒绝它们](#remove-item-in-powershell)。

415 414 

416Claude Code v2.1.257 及更高版本也默认阻止这些:415Claude Code v2.1.257 及更高版本也默认阻止这些:

417 416 

418* 从云实例元数据端点请求凭证,例如 `169.254.169.254`,或使用机器自己的服务账户或节点身份显式验证云、集群或注册表调用417* 从云实例元数据端点请求凭证,例如 `169.254.169.254`,或使用机器自己的服务账户或节点身份显式验证云、集群或注册表调用

419* 通过直接请求以外的路由到达公开主机,例如隧道、反向 shell 或重写为指向外部的解析器或代理配置418* 通过直接请求以外的路由到达公共主机,例如隧道、反向 shell 或重写为指向外部的解析器或代理配置

420* 读取属于主机而不是您的任务的凭证,例如节点证书或节点的容器注册表身份验证419* 读取属于主机而不是您的任务的凭证,例如节点证书或节点的容器注册表身份验证

421* 连接到或扫描 Claude 未启动的同级容器、pod 或 VM,或容器下的节点420* 连接到或扫描 Claude 未启动的同级容器、pod 或 VM,或容器下的节点

422 421 


428 427 

429**默认允许**:428**默认允许**:

430 429 

431* 工作目录中的本地文件操作430* 您工作目录中的本地文件操作

432* 安装在您的锁定文件或清单中声明的依赖项431* 安装在您的锁定文件或清单中声明的依赖项

433* 读取 `.env` 并向其匹配的 API 发送凭证432* 读取 `.env` 并向其匹配的 API 发送凭证

434* 只读 HTTP 请求433* 只读 HTTP 请求

435* 推送到您正在处理的仓库的任何分支,包括默认分支。其名称将其标记为部署或发布目标的非默认分支,例如 `production` 或 `gh-pages`,不被涵盖:分类器根据其自己的条款判断推送。推送的内容仍根据其他规则进行检查,[`permissions.deny` 规则](/docs/zh-CN/permissions#manage-permissions)仍可以在每种模式中[按书写](/docs/zh-CN/permissions#bash-rule-limits)阻止推送命令,远程自己的分支保护仍适用。在 v2.1.211 之前,仅允许推送到您启动的分支、Claude 创建的分支和到默认分支的常规推送,在 v2.1.203 之前任何直接推送到默认分支都被阻止434* 推送到您正在处理的仓库的任何分支,包括默认分支。其名称将其标记为部署或发布目标的非默认分支,例如 `production` 或 `gh-pages`,不被涵盖:分类器根据其自己的条款判断推送到那里。推送的内容仍根据其他规则进行检查,[`permissions.deny` 规则](/docs/zh-CN/permissions#manage-permissions)仍可以在每种模式中[按书写](/docs/zh-CN/permissions#bash-rule-limits)阻止推送命令,远程自己的分支保护仍适用。在 v2.1.211 之前,仅推送到您启动的分支、Claude 创建的分支和到默认分支的常规推送默认允许,在 v2.1.203 之前任何直接推送到默认分支都被阻止

436 

437Claude Code v2.1.195 及更高版本也默认允许这些:

438 

439* 删除 Claude 在同一会话中较早创建的确切作业435* 删除 Claude 在同一会话中较早创建的确切作业

440* 作为您的任务的一部分读取、审查或编写安全相关的代码、配置和威胁模型436* 作为您的任务的一部分读取、审查或编写安全相关的代码、配置和威胁模型

441* 在同一多代理会话中一起工作的代理之间的消息437* 在同一多代理会话中一起工作的代理之间的消息


452 工作目录外的第一次读取448 工作目录外的第一次读取

453</h3>449</h3>

454 450 

455当 [`permissions.blockReadsOutsideWorkingDirectories`](/docs/zh-CN/settings-reference#permissions-blockreadsoutsideworkingdirectories) 关闭时,文件读取在自动模式中无需提示即可运行,包括在[工作目录](/docs/zh-CN/permissions#working-directories)外的读取。Claude 第一次在它们外的路径上使用 Read、Grep 或 Glob 工具时,Claude Code 询问您是否继续允许这些读取。451当 [`permissions.blockReadsOutsideWorkingDirectories`](/docs/zh-CN/settings-reference#permissions-blockreadsoutsideworkingdirectories) 关闭时,文件读取在自动模式中无需提示即可运行,包括在[工作目录](/docs/zh-CN/permissions#working-directories)外的读取。Claude 第一次在它们外的路径上使用 Read、Grep 或 Glob 工具时,Claude Code 询问是否允许该读取。

456 452 

457该提示不会出现在非交互式 `-p` 运行或后台会话中;那里的读取照常运行。453该提示不会出现在非交互式 `-p` 运行或后台会话中;那里的读取照常运行。

458 454 

459无论您的答案如何,Claude 继续工作:455无论您的答案如何,Claude 继续工作:

460 456 

461* **是,继续允许工作目录外的任何读取**:读取运行,工作目录外的后续读取照常运行,Claude Code 记录您的答案以便提示不再出现457* **是的,继续允许工作目录外的任何读取**:读取运行,稍后工作目录外的读取照常运行,Claude Code 记录您的答案以便提示不再出现

462* **否,从现在开始阻止工作目录外的读取**:读取被拒绝,Claude Code 在您的用户设置中将 [`permissions.blockReadsOutsideWorkingDirectories`](/docs/zh-CN/settings-reference#permissions-blockreadsoutsideworkingdirectories) 设置为 `true`,这使文件工具在每个后续会话和每种权限模式中拒绝此类读取。要稍后让 Claude 读取此类路径,请使用 `/add-dir` 添加其目录或移除该设置。458* **否,从现在开始阻止工作目录外的读取**:读取被拒绝,Claude Code 在您的用户设置中将 [`permissions.blockReadsOutsideWorkingDirectories`](/docs/zh-CN/settings-reference#permissions-blockreadsoutsideworkingdirectories) 设置为 `true`,这使文件工具在每个后续会话和每种权限模式中拒绝此类读取。要稍后让 Claude 读取此类路径,请使用 `/add-dir` 添加其目录或移除该设置。

463* **否,下次再问**:读取被拒绝,工作目录外的下一次读取再次提示459* **否,下次再问**:读取被拒绝,下一次工作目录外的读取再次提示

464* **是,但下次再问**:读取运行,不保存任何内容,工作目录外的下一次读取再次提示460* **是的,但下次再问**:读取运行,不保存任何内容,下一次工作目录外的读取再次提示

465 461 

466<h3 id="boundaries-you-state-in-conversation">462<h3 id="boundaries-you-state-in-conversation">

467 您在对话中陈述的边界463 您在对话中陈述的边界

468</h3>464</h3>

469 465 

470分类器将您在对话中陈述的边界视为阻止信号。如果您告诉 Claude"不要推送"或"在我审查后再部署",分类器会阻止匹配的操作,即使默认规则会允许它们。边界保持有效直到您在后续消息中解除它。Claude 自己的条件已满足的判断不会解除它。466分类器将您在对话中陈述的边界视为阻止信号。如果您告诉 Claude"不要推送"或"在我审查前等待再部署",分类器会阻止匹配的操作,即使默认规则会允许它们。边界保持有效直到您在后续消息中解除它。Claude 自己的判断条件已满足不会解除它。

471 467 

472边界不作为规则存储。分类器在每次检查时从记录中重新读取它们,因此如果[上下文压缩](/docs/zh-CN/costs#reduce-token-usage)移除陈述边界的消息,边界可能会丢失。为了硬保证,请改为添加[拒绝规则](/docs/zh-CN/permissions#permission-rule-syntax)。468边界不存储为规则。分类器在每次检查时从记录中重新读取它们,因此如果[上下文压缩](/docs/zh-CN/costs#reduce-token-usage)移除陈述它的消息,边界可能会丢失。为了硬保证,请改为添加[拒绝规则](/docs/zh-CN/permissions#permission-rule-syntax)。

473 469 

474<h3 id="approvals-you-state-in-conversation">470<h3 id="approvals-you-state-in-conversation">

475 您在对话中陈述的批准471 您在对话中陈述的批准

476</h3>472</h3>

477 473 

478如果您告诉 Claude 被阻止的操作是允许的,分类器将其读取为您的批准并可以清除阻止。您如何措辞决定了操作是否运行以及批准的范围有多远:474如果您告诉 Claude 被阻止的操作是允许的,分类器将其读取为您的批准并可以清除阻止。您如何措辞决定了操作是否运行以及批准到达多远:

479 475 

480* **命名操作及其具体情况**:您的消息必须命名操作和使其危险的具体事物,例如强制推送的分支。仅命名动词不会清除任何内容,因此"您可以强制推送"会使阻止保持原位。476* **命名操作及其具体情况**:您的消息必须命名操作和使其危险的具体事物,例如强制推送的分支。仅命名动词不会清除任何内容,因此"您可以强制推送"会使阻止保持有效。

481* **期望它涵盖一个操作**:批准涵盖您命名的破坏性操作,因此后续操作再次被阻止,除非您授予批准为常设。要停止一次一个地批准常规模式,请将其添加到 [`autoMode.allow`](/docs/zh-CN/auto-mode-config#override-the-block-and-allow-rules)。477* **期望它涵盖一个操作**:批准涵盖您命名的破坏性操作,因此稍后的操作再次被阻止,除非您授予批准为常设。要停止一次一个地批准常规模式,请将其添加到 [`autoMode.allow`](/docs/zh-CN/auto-mode-config#override-the-block-and-allow-rules)。

482* **某些阻止保持原位**:[分类器的优先级顺序](/docs/zh-CN/auto-mode-config#override-the-block-and-allow-rules)规定了您的批准可以到达哪些阻止。要运行它不会清除的步骤,请[离开自动模式](#switch-permission-modes)并回答权限提示。478* **某些阻止保持有效**:[分类器的优先级顺序](/docs/zh-CN/auto-mode-config#override-the-block-and-allow-rules)规定了您的批准可以到达哪些阻止。要运行它不会清除的步骤,请[离开自动模式](#switch-permission-modes)并回答权限提示。

483 479 

484<h3 id="when-auto-mode-falls-back">480<h3 id="when-auto-mode-falls-back">

485 当自动模式回退时481 当自动模式回退时


488当自动模式无法批准您的会话操作时,发生的情况取决于情况:484当自动模式无法批准您的会话操作时,发生的情况取决于情况:

489 485 

490* **被阻止的操作**:Claude Code 显示通知并在 `/permissions` 下的**最近拒绝**选项卡中列出操作,您可以按 `r` 使用手动批准重试它。486* **被阻止的操作**:Claude Code 显示通知并在 `/permissions` 下的**最近拒绝**选项卡中列出操作,您可以按 `r` 使用手动批准重试它。

491* **重复阻止**:如果分类器连续 3 次或总共 20 次阻止操作,自动模式暂停,Claude Code 恢复提示。批准提示的操作恢复自动模式。请参阅[重复阻止阈值](#repeated-block-thresholds)了解如何计算阻止。487* **重复阻止**:如果分类器连续阻止操作 3 次或总共 20 次,自动模式暂停,Claude Code 恢复提示。批准提示的操作恢复自动模式。有关如何计数阻止的信息,请参阅[重复阻止阈值](#repeated-block-thresholds)。

492* **来自分类器的无判决**:当自动模式之外的安全检查拒绝分类器自己的请求,或分类器的响应未解析时,Claude Code 拒绝该操作而不显示通知或**最近拒绝**条目。请参阅[自动模式无法确定操作的安全性](/docs/zh-CN/errors#auto-mode-cannot-determine-the-safety-of-an-action)了解每种情况显示的消息以及处理方法。488* **分类器无判决**:当独立于自动模式的安全检查拒绝分类器自己的请求或分类器的响应不解析时,Claude Code 拒绝操作而不显示通知或**最近拒绝**条目。有关每种情况显示的消息和处理方法,请参阅[自动模式无法确定操作的安全性](/docs/zh-CN/errors#auto-mode-cannot-determine-the-safety-of-an-action)。

493* **来自服务器的无判决**:在[服务器端分类器审查](#server-side-classifier-review)下,Claude Code 拒绝服务器给不出判决的操作,并在连续 10 个响应没有判决后停止轮次。请参阅[服务器未返回安全判决](/docs/zh-CN/errors#the-server-returned-no-safety-verdict)。489* **服务器无判决**:在[服务器端分类器审查](#server-side-classifier-review)下,Claude Code 拒绝服务器给不出判决的操作,并在连续十个响应都没有判决后停止轮次。请参阅[服务器未返回安全判决](/docs/zh-CN/errors#the-server-returned-no-safety-verdict)。

494* **检查期间的模式切换**:如果您在分类器检查待处理时切换权限模式,Claude Code 丢弃新模式不会请求的判决。您改为被提示批准,或在 [`dontAsk` 模式](#allow-only-pre-approved-tools-with-dontask-mode)中操作被自动拒绝。490* **检查期间的模式切换**:如果您在分类器检查待处理时切换权限模式,Claude Code 丢弃新模式不会请求的判决。您改为被提示批准,或在 [`dontAsk` 模式](#allow-only-pre-approved-tools-with-dontask-mode)中自动拒绝操作。

495 491 

496<h4 id="repeated-block-thresholds">492<h4 id="repeated-block-thresholds">

497 重复阻止阈值493 重复阻止阈值

498</h4>494</h4>

499 495 

500连续 3 次阻止和总共 20 次阻止的阈值不可配置。总计数器对会话持续并仅在其自己的限制触发回退时重置。当自动模式之外的安全检查拒绝分类器自己的请求时,Claude Code 不计算拒绝向任一阈值。4963 个连续阻止和 20 个总阻止的阈值不可配置。总计数器对会话持续并仅在其自己的限制触发回退时重置。当独立于自动模式的安全检查拒绝分类器自己的请求时,Claude Code 不计数拒绝到任一阈值。

501 497 

502[非交互式](/docs/zh-CN/headless) `-p` 运行没有 [`--permission-prompt-tool`](/docs/zh-CN/cli-reference#cli-flags) 没有回退提示。当重复阻止达到阈值时,操作不运行,Claude 继续工作。Claude Code 不停止运行。498没有 [`--permission-prompt-tool`](/docs/zh-CN/cli-reference#cli-flags) 的[非交互式](/docs/zh-CN/headless) `-p` 运行没有回退提示。当重复阻止达到阈值时,操作不运行,Claude 继续工作。Claude Code 不停止运行。

503 499 

504重复阻止通常意味着分类器缺少关于您的基础设施的上下文。使用 `/feedback` 报告假阳性,或让管理员[配置受信任的基础设施](/docs/zh-CN/auto-mode-config)。500重复阻止通常意味着分类器缺少关于您的基础设施的上下文。使用 `/feedback` 报告误报,或让管理员[配置受信任的基础设施](/docs/zh-CN/auto-mode-config)。

505 501 

506<h3 id="how-auto-mode-evaluates-actions">502<h3 id="how-auto-mode-evaluates-actions">

507 分类器如何评估操作503 自动模式如何评估操作

508</h3>504</h3>

509 505 

510以下部分涵盖 Claude Code 评估操作的顺序、分类器如何审查子代理工作,以及分类器调用在成本和延迟中添加的内容。506以下部分涵盖 Claude Code 评估操作的顺序、分类器如何审查子代理工作以及分类器调用在成本和延迟中添加的内容。

511 507 

512<span id="how-the-classifier-evaluates-actions" />508<span id="how-the-classifier-evaluates-actions" />

513 509 


515 <Accordion title="分类器如何评估操作">511 <Accordion title="分类器如何评估操作">

516 每个操作都经过固定的决策顺序。第一个匹配的步骤获胜:512 每个操作都经过固定的决策顺序。第一个匹配的步骤获胜:

517 513 

518 1. 与您的[允许、询问或拒绝规则](/docs/zh-CN/permissions#manage-permissions)匹配的操作立即解决,但以下例外:514 1. 与您的[允许、询问或拒绝规则](/docs/zh-CN/permissions#manage-permissions)匹配的操作立即解决,但有以下例外:

519 * 写入[受保护路径](#protected-paths)的操作路由到分类器,即使允许规则匹配515 * 写入[受保护路径](#protected-paths)的操作路由到分类器,即使允许规则匹配

520 * 没有允许规则批准针对[关键路径](#critical-paths)的 `rm` 和 `rmdir` 删除516 * 没有允许规则批准针对[关键路径](#critical-paths)的 `rm` 和 `rmdir` 删除

521 * 标记为 [`requiresUserInteraction`](/docs/zh-CN/mcp#require-approval-for-a-specific-tool) 的 MCP 工具直接提示您,即使允许规则匹配,连接器工具[您的组织在会话中设置为 `ask`](/docs/zh-CN/mcp#organization-controls-on-connector-tools)的也是,其中该设置到达 Claude Code517 * 标记为 [`requiresUserInteraction`](/docs/zh-CN/mcp#require-approval-for-a-specific-tool) 的 MCP 工具直接提示您,即使允许规则匹配,连接器工具您的组织在会话中设置为 `ask` 的[也是如此](/docs/zh-CN/mcp#organization-controls-on-connector-tools),其中该设置到达 Claude Code

522 * 携带[按命令允许的域](/docs/zh-CN/sandboxing#per-command-allowed-domains-in-auto-mode)的 shell 命令也路由到分类器,即使允许规则匹配,因为规则批准命令,而不是其主机518 * 携带[按命令允许的域](/docs/zh-CN/sandboxing#per-command-allowed-domains-in-auto-mode)的 shell 命令也路由到分类器,即使允许规则匹配,因为规则批准命令,而不是其主机

523 * 与命令内容匹配的询问规则,例如 `Bash(git push *)`,回退到权限提示519 * 与命令内容匹配的询问规则,例如 `Bash(git push *)`,回退到权限提示

524 * [符号链接检查](/docs/zh-CN/permissions#symlinks)解决为受保护路径的写入在 Claude 请求的路径本身不受保护时提示您520 * [符号链接检查](/docs/zh-CN/permissions#symlinks)解决为受保护路径的写入在 Claude 请求的路径本身不受保护时提示您

525 2. 只读操作和工作目录中的文件编辑被自动批准,除了写入[受保护路径](#protected-paths)和[工作目录外的第一次读取](#first-read-outside-the-working-directories),这会提示您521 2. 只读操作和您工作目录中的文件编辑自动批准,除了写入[受保护路径](#protected-paths)和[工作目录外的第一次读取](#first-read-outside-the-working-directories),这会提示您

526 * 在具有[服务器端分类器审查](#server-side-classifier-review)的会话中,只读和[沙箱](/docs/zh-CN/sandboxing#sandbox-modes) shell 命令等待该审查并在其标记时被阻止522 * 在具有[服务器端分类器审查](#server-side-classifier-review)的会话中,只读和[沙箱](/docs/zh-CN/sandboxing#sandbox-modes) shell 命令等待该审查,如果它标记它们则被阻止

527 * 工作目录内的写入,[符号链接检查](/docs/zh-CN/permissions#symlinks)解决为其外的位置,提示您523 * 您工作目录内的写入,[符号链接检查](/docs/zh-CN/permissions#symlinks)解决为其外的位置,提示您

528 3. 其他所有内容都进入分类器,除了[关键路径删除](#critical-paths)在其默认处理下。在步骤 1 中直接提示您的连接器工具和`requiresUserInteraction` MCP 工具永远不会到达分类器,因此既不是组织要求的批准也不是同意步骤被自动批准524 3. 其他所有内容都进入分类器,除了[关键路径删除](#critical-paths)在其默认处理下。在步骤 1 中直接提示您的连接器工具和 `requiresUserInteraction` MCP 工具从不到达分类器,因此既不是组织要求的批准也不是同意步骤自动批准

529 4. 如果分类器阻止,Claude 收到原因并尝试替代方案。在大多数会话中,原因命名分类器匹配的规则,例如 `[Data Exfiltration]`,而不是给出书面解释;请参阅[审查拒绝](/docs/zh-CN/auto-mode-config#review-denials)525 4. 如果分类器阻止,Claude 接收原因。在大多数会话中,原因命名分类器匹配的规则,例如 `[Data Exfiltration]`,而不是给出书面解释;请参阅[审查拒绝](/docs/zh-CN/auto-mode-config#review-denials)

530 526 

531 进入自动模式时,授予任意代码执行的广泛允许规则被丢弃:527 进入自动模式时,授予任意代码执行的广泛允许规则被丢弃:

532 528 

533 * 无条件 `Bash(*)` 或 `PowerShell(*)`529 * 空白 `Bash(*)` 或 `PowerShell(*)`

534 * 通配符解释器,如 `Bash(python*)`530 * 通配符解释器,如 `Bash(python*)`

535 * 包管理器运行命令531 * 包管理器运行命令

536 * `Agent` 允许规则532 * `Agent` 允许规则

537 * [`Monitor`](/docs/zh-CN/tools-reference#monitor-tool) 允许规则,因为 Claude Code 通过 shell 运行 Monitor 命令533 * [`Monitor`](/docs/zh-CN/tools-reference#monitor-tool)允许规则,因为 Claude Code 通过 shell 运行 Monitor 命令

538 534 

539 窄规则如 `Bash(npm test)` 保持有效。Claude Code 在您离开自动模式时恢复丢弃的规则。在 v2.1.236 之前,Claude Code 在自动模式中保持 `Monitor` 允许规则有效,因此与整个工具匹配的规则在没有分类器审查的情况下批准 Monitor 命令。535 窄规则如 `Bash(npm test)` 保持有效。当您离开自动模式时,Claude Code 恢复丢弃的规则。在 v2.1.236 之前,Claude Code 在自动模式中保持 `Monitor` 允许规则有效,因此与整个工具匹配的规则在没有分类器审查的情况下批准 Monitor 命令。

540 536 

541 Claude Code 也在会丢弃未提交工作的命令之前运行 `git status`,例如 `git reset --hard` 或 `rm -rf`,并向分类器显示是否存在暂存、修改或未跟踪的工作。Claude Code 在该检查中报告未跟踪的文件,即使仓库的 git 配置设置 `status.showUntrackedFiles=no`。537 Claude Code 也在会丢弃未提交工作的命令之前运行 `git status`,例如 `git reset --hard` 或 `rm -rf`,并向分类器显示是否存在暂存、修改或未跟踪的工作。即使仓库的 git 配置设置 `status.showUntrackedFiles=no`,Claude Code 也在该检查中报告未跟踪的文件。

542 538 

543 在 Claude Code 本身发送的分类器请求中,分类器看到用户消息、除只读查找(如文件读取和搜索)之外的工具调用,以及您的 CLAUDE.md 内容。工具结果从这些请求中被剥离,因此文件或网页中的恶意内容无法直接操纵分类器。539 在 Claude Code 本身发送的分类器请求中,分类器看到用户消息、除只读查找(如文件读取和搜索)之外的工具调用以及您的 CLAUDE.md 内容。工具结果从这些请求中被剥离,因此文件或网页中的恶意内容无法直接操纵分类器。

544 540 

545 您可以使用 [PostToolUse hook 的 `classifierContext` 字段](/docs/zh-CN/hooks#annotate-a-result-for-the-auto-mode-classifier)注释调用的结果,分类器将其读取为应用程序提供的上下文。该字段需要 Claude Code v2.1.236 或更高版本。541 您可以使用 [PostToolUse hook 的 `classifierContext` 字段](/docs/zh-CN/hooks#annotate-a-result-for-the-auto-mode-classifier)注释调用的结果,分类器将其读取为应用程序提供的上下文。该字段需要 Claude Code v2.1.236 或更高版本。

546 542 


552 548 

553 1. 在子代理启动之前,委托的任务描述被评估,因此看起来危险的任务在生成时被阻止。549 1. 在子代理启动之前,委托的任务描述被评估,因此看起来危险的任务在生成时被阻止。

554 2. 当子代理运行时,其每个操作都通过分类器,使用与父会话相同的规则,子代理前言中的任何 `permissionMode` 被忽略。550 2. 当子代理运行时,其每个操作都通过分类器,使用与父会话相同的规则,子代理前言中的任何 `permissionMode` 被忽略。

555 3. 当子代理完成时,分类器审查其工作和最终报告,然后父读取报告。当分类器标记子代理的工作或报告,或单独的 API 安全检查拒绝审查时,报告仍被传递,前面加上安全警告。当分类器对审查不可用时,报告到达时带有注意在根据其采取行动之前验证子代理的工作。551 3. 当子代理完成时,分类器审查其工作和最终报告,然后父代读取报告。当分类器标记子代理的工作或报告,或单独的 API 安全检查拒绝审查时,报告仍被传递,前面加上安全警告。当分类器对审查不可用时,报告到达时带有注意在根据它采取行动前验证子代理工作的注意。

556 </Accordion>552 </Accordion>

557 553 

558 <Accordion title="成本和延迟">554 <Accordion title="成本和延迟">

559 分类器默认在 Claude Sonnet 5 上运行,而不是在您的 `/model` 选择上。Anthropic 配置的服务器端分类器模型优先于该默认值。当您的会话模型是 Claude Sonnet 4.6 时,或当 [`availableModels`](/docs/zh-CN/model-config#restrict-model-selection) 排除 Sonnet 5 时,分类器改为在会话的模型上运行,或在会话在[Fable 模型](/docs/zh-CN/model-config#work-with-fable)上运行时在 Opus 模型上运行;在 Anthropic API 以外的提供商上,该 Opus 回退是提供商的默认 Opus 模型。555 分类器默认在 Claude Sonnet 5 上运行,而不是在您的 `/model` 选择上。Anthropic 配置的服务器端分类器模型优先于该默认值。当您的会话模型是 Claude Sonnet 4.6 时,或当 [`availableModels`](/docs/zh-CN/model-config#restrict-model-selection) 排除 Sonnet 5 时,分类器改为在会话的模型上运行,或在会话在[Fable 模型](/docs/zh-CN/model-config#work-with-fable)上运行时在 Opus 模型上运行;在 Anthropic API 以外的提供商上,该 Opus 回退是提供商的默认 Opus 模型。

560 556 

561 会话的第一个自动模式请求验证 Sonnet 5 默认值:如果请求成功,Sonnet 5 保持会话的分类器模型,如果它失败是因为模型不可用,会话改为使用回退。在该验证解决后,分类器的模型对会话不再改变。557 会话的第一个自动模式请求验证 Sonnet 5 默认值:如果请求成功,Sonnet 5 保持会话的分类器模型,如果它失败是因为模型不可用,会话改为使用回退。在该验证解决后,分类器的模型对会话不改变。

562 558 

563 在 Enterprise 计划和使用 Claude API 的账户、[AWS 上的 Claude Platform](/docs/zh-CN/claude-platform-on-aws)、Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry 上,分类器调用计入您的令牌使用。每次检查发送记录的一部分加上待处理操作,在执行前添加往返。在受保护路径外的读取和工作目录编辑跳过分类器,因此开销主要来自 shell 命令和网络操作。服务器审查操作作为会话模型请求的一部分的地方,没有单独的分类器调用要计数;请参阅[服务器端分类器审查](#server-side-classifier-review)。559 在 Enterprise 计划和使用 Claude API 的账户、[AWS 上的 Claude Platform](/docs/zh-CN/claude-platform-on-aws)、Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry 上,分类器调用计入您的令牌使用。每次检查发送记录的一部分加上待处理操作,在执行前添加往返。读取和工作目录编辑在受保护路径外跳过分类器,因此开销主要来自 shell 命令和网络操作。服务器审查操作作为会话模型请求的一部分的地方,没有单独的分类器调用计数;请参阅[服务器端分类器审查](#server-side-classifier-review)。

564 560 

565 沙箱网络访问不添加按连接分类器请求。分类器与命令一起判断[命令命名的主机](/docs/zh-CN/sandboxing#per-command-allowed-domains-in-auto-mode)在一次审查中,Claude Code 检查每个连接对批准列表而不再次调用分类器。561 沙箱网络访问不添加按连接分类器请求。分类器在一次审查中与命令一起判断[命令命名的主机](/docs/zh-CN/sandboxing#per-command-allowed-domains-in-auto-mode),Claude Code 检查每个连接对批准列表而不再次调用分类器。

566 </Accordion>562 </Accordion>

567</AccordionGroup>563</AccordionGroup>

568 564 

permissions.md +7 −5

Details

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 |

83| `auto` | 自动批准工具调用,并进行后台安全检查以验证操作与您的请求一致 |83| `auto` | 无需常规提示即可运行;在 shell 命令和网络请求等操作运行之前,后台[分类器](/docs/zh-CN/permission-modes#eliminate-prompts-with-auto-mode)会检查它们是否与您的请求一致 |

84| `dontAsk` | 自动拒绝每个会导致提示的调用;您的工作目录中的文件读取和其他不需要批准的操作仍会运行,通过 `/permissions` 或 `permissions.allow` 规则预先批准的工具也会运行。`AskUserQuestion`、标记为 [`requiresUserInteraction`](/docs/zh-CN/mcp#require-approval-for-a-specific-tool) 的 MCP 工具以及连接器工具[您的组织设置为 `ask`](/docs/zh-CN/mcp#organization-controls-on-connector-tools)在该设置到达 Claude Code 的会话中即使您已允许它们也会被拒绝 |84| `dontAsk` | 自动拒绝每个会导致提示的调用;您的工作目录中的文件读取和其他不需要批准的操作仍会运行,通过 `/permissions` 或 `permissions.allow` 规则预先批准的工具也会运行。`AskUserQuestion`、标记为 [`requiresUserInteraction`](/docs/zh-CN/mcp#require-approval-for-a-specific-tool) 的 MCP 工具以及连接器工具[您的组织设置为 `ask`](/docs/zh-CN/mcp#organization-controls-on-connector-tools)在该设置到达 Claude Code 的会话中即使您已允许它们也会被拒绝 |

85| `bypassPermissions` | 跳过权限提示,除了[任何模式都不会自动批准的操作](/docs/zh-CN/permission-modes#actions-no-mode-auto-approves) |85| `bypassPermissions` | 跳过权限提示,除了[任何模式都不会自动批准的操作](/docs/zh-CN/permission-modes#actions-no-mode-auto-approves) |

86 86 


144* 每个规则命名一个参数。要对 `model` 和 `isolation` 进行门控,请编写两个规则 `Agent(model:opus)` 和 `Agent(isolation:worktree)`,而不是在一个规则中组合它们144* 每个规则命名一个参数。要对 `model` 和 `isolation` 进行门控,请编写两个规则 `Agent(model:opus)` 和 `Agent(isolation:worktree)`,而不是在一个规则中组合它们

145* 该值支持 `*` 作为通配符,匹配任何字符序列,因此 `Agent(isolation:*)` 匹配任何显式隔离值。没有 `*` 时匹配是精确的145* 该值支持 `*` 作为通配符,匹配任何字符序列,因此 `Agent(isolation:*)` 匹配任何显式隔离值。没有 `*` 时匹配是精确的

146* 模型省略的参数永远不会被匹配,因此 `Agent(model:*)` 不匹配留下 `model` 未设置的调用146* 模型省略的参数永远不会被匹配,因此 `Agent(model:*)` 不匹配留下 `model` 未设置的调用

147* 该值与 Claude 发送的文字输入进行比较,在任何规范化之前。`Agent(model:opus)` 匹配别名 `opus` 但不匹配完整模型 ID。使用 [`--verbose`](/docs/zh-CN/cli-reference) 运行以查看每个工具调用中的确切参数名称和值147* 该值与 Claude 发送的文字输入进行比较,在任何规范化之前。`Agent(model:opus)` 匹配别名 `opus` 但不匹配完整模型 ID

148* 一个 `Skill(skill:<name>)` 拒绝规则改为[在其任何名称下匹配技能](/docs/zh-CN/skills#restrict-claude%E2%80%99s-skill-access),例如其别名或显示名称

149* 使用 [`--verbose`](/docs/zh-CN/cli-reference) 运行以查看每个工具调用中的确切参数名称和值

148* 冒号周围的空格被忽略150* 冒号周围的空格被忽略

149 151 

150您不能以这种方式匹配工具的主要内容字段:Bash 和 PowerShell 的 `command`、Read、Edit 和 Write 的 `file_path`、Grep 和 Glob 的 `path`、NotebookEdit 的 `notebook_path` 和 WebFetch 的 `url`。像 `Bash(command:rm *)` 这样的规则可以通过复合命令绕过,因此 Claude Code 会忽略它并在启动时发出警告。改用 `Bash(rm *)`、`Read(./path)` 或 `WebFetch(domain:host)`。152您不能以这种方式匹配工具的主要内容字段:Bash 和 PowerShell 的 `command`、Read、Edit 和 Write 的 `file_path`、Grep 和 Glob 的 `path`、NotebookEdit 的 `notebook_path` 和 WebFetch 的 `url`。像 `Bash(command:rm *)` 这样的规则可以通过复合命令绕过,因此 Claude Code 会忽略它并在启动时发出警告。改用 `Bash(rm *)`、`Read(./path)` 或 `WebFetch(domain:host)`。


159 将 `*` 放在子命令之后。在 `git log --oneline main` 中,`git` 是程序,`log` 是子命令,是确定程序执行什么操作的词。Claude Code 按照编写的方式匹配第一个 `*` 之前的所有内容,因此这些词是限制规则的内容:`Bash(git log *)` 仅允许 `git log` 命令,`Bash(git *)` 允许每个 git 命令。Claude Code [在启动时警告](/docs/zh-CN/errors#has-a-wildcard-before-the-rest-of-the-command)关于在子命令之前有 `*` 的允许规则,例如 `Bash(git * main)`。161 将 `*` 放在子命令之后。在 `git log --oneline main` 中,`git` 是程序,`log` 是子命令,是确定程序执行什么操作的词。Claude Code 按照编写的方式匹配第一个 `*` 之前的所有内容,因此这些词是限制规则的内容:`Bash(git log *)` 仅允许 `git log` 命令,`Bash(git *)` 允许每个 git 命令。Claude Code [在启动时警告](/docs/zh-CN/errors#has-a-wildcard-before-the-rest-of-the-command)关于在子命令之前有 `*` 的允许规则,例如 `Bash(git * main)`。

160</Warning>162</Warning>

161 163 

162编写您希望 Claude 运行而不询问的命令,并用 `*` 替换变化的部分。使用此配置,Claude Code 运行 npm 脚本和 git 提交而不询问,并拒绝以 `git push` 开头的命令。以另一种方式编写的推送,例如 `git -C . push`,不匹配;请参阅 [Bash 规则不匹配的内容](#bash-rule-limits)。164编写您希望 Claude 运行而不询问的命令,并用 `*` 替换变化的部分。使用此配置,Claude Code 运行 npm 脚本和 git 提交而不询问,并拒绝以 `git push` 开头的命令。以另一种方式编写的推送,例如 `git -C . push`,不匹配;请参阅[Bash 规则不匹配的内容](#bash-rule-limits)。

163 165 

164```json theme={null}166```json theme={null}

165{167{


216 218 

217允许规则仅在文字 `mcp__<server>__` 前缀之后接受工具名称 glob。服务器段必须不含 glob,以便规则命名您配置的特定服务器。`mcp__puppeteer__*` 匹配来自 `puppeteer` 服务器的每个工具,`mcp__github__get_*` 匹配其 `get_` 工具。未锚定的允许 glob(如 `"*"`、`"B*"` 或 `"mcp__*"`)会被跳过并显示警告,不会自动批准任何内容。219允许规则仅在文字 `mcp__<server>__` 前缀之后接受工具名称 glob。服务器段必须不含 glob,以便规则命名您配置的特定服务器。`mcp__puppeteer__*` 匹配来自 `puppeteer` 服务器的每个工具,`mcp__github__get_*` 匹配其 `get_` 工具。未锚定的允许 glob(如 `"*"`、`"B*"` 或 `"mcp__*"`)会被跳过并显示警告,不会自动批准任何内容。

218 220 

219工具名称不匹配任何已知工具的拒绝或询问规则会在启动时产生警告以捕获拼写错误。包含 `_` 或 `*` 的工具名称不受此检查的约束。221工具名称不匹配任何已知工具的拒绝或询问规则会在启动时产生警告以捕获拼写错误。包含 `_` 或 `*` 的工具名称不受此检查的约束,已移除的工具的名称(例如 `TaskOutput`)也不受约束。

220 222 

221转录本和权限对话框中为工具显示的标签可能与其规范名称不同。例如,转录本中标记为 `Stop Task` 的工具具有规范名称 `TaskStop`。权限规则和 [hook 匹配器](/docs/zh-CN/hooks) 不匹配标签,因此写作为 `Stop Task` 的规则不匹配。对于拒绝和询问规则,上面的启动警告会捕获不匹配。使用 [工具参考](/docs/zh-CN/tools-reference) 中列出的规范名称。223转录本和权限对话框中为工具显示的标签可能与其规范名称不同。例如,转录本中标记为 `Stop Task` 的工具具有规范名称 `TaskStop`。权限规则和 [hook 匹配器](/docs/zh-CN/hooks) 不匹配标签,因此写作为 `Stop Task` 的规则不匹配。对于拒绝和询问规则,上面的启动警告会捕获不匹配。使用[工具参考](/docs/zh-CN/tools-reference)中列出的规范名称。

222 224 

223<h2 id="tool-specific-permission-rules">225<h2 id="tool-specific-permission-rules">

224 工具特定的权限规则226 工具特定的权限规则

plugin-evals.md +20 −12

Details

55 无插件基线55 无插件基线

56</h3>56</h3>

57 57 

58仅凭高分不能告诉你插件是否有帮助,因为 Claude 可能在没有插件的情况下也能做得很好。为了区分两者,默认情况下每个用例的运行会重复进行,不加载任何插件,你会得到两个分数,`WITH` 和 `W/OUT`。它们的差异 `Δ` 是插件贡献的内容。如果一个用例在有插件和没有插件的情况下都得分 1.0,那么插件不是使其通过的原因。58仅凭高分不能告诉你插件是否有帮助,因为 Claude 可能在没有插件的情况下也能做得很好。为了区分两者,一个用例的运行会重复进行,不加载任何插件,你会得到两个分数,`WITH` 和 `W/OUT`。它们的差异 `Δ` 是插件贡献的内容。如果一个用例在有插件和没有插件的情况下都得分 1.0,那么插件不是使其通过的原因。

59 59 

60这两组运行称为 with-arm 和 without-arm;[与无插件基线比较](#compare-against-a-no-plugin-baseline)涵盖了评分器如何在它们之间评分以及如何关闭基线。60这两组运行称为 with-arm 和 without-arm;[与无插件基线比较](#compare-against-a-no-plugin-baseline)涵盖了哪些用例仅运行 with-arm 以及评分器如何在两个 arm 之间评分。

61 61 

62<h2 id="create-your-first-eval-suite">62<h2 id="create-your-first-eval-suite">

63 创建你的第一个 eval 套件63 创建你的第一个 eval 套件


130 编写和完善用例130 编写和完善用例

131</h2>131</h2>

132 132 

133`claude plugin eval init` 编写的用例是你可以打开、更改和添加的纯文件。用例是插件 eval 目录下的一个目录,包含 `prompt.md`、`case.yaml` 或两者。要对用例进行分组,将它们嵌套在不是用例本身的目录下;用例目录内的任何内容,例如 `graders/` 和 fixture 文件,都属于该用例。133`claude plugin eval init` 编写的用例是你可以打开、更改和添加的纯文件。用例是插件 eval 目录下的一个目录,包含 `prompt.md`、`case.yaml` 或两者。每个用例至少要有一个评分器,作为 `graders/<name>.md` 文件或 `case.yaml` 中的 `graders:` 条目,因为没有评分器的用例无法加载。要对用例进行分组,将它们嵌套在不是用例本身的目录下;用例目录内的任何内容,例如 `graders/` 和 fixture 文件,都属于该用例。

134 134 

135这是 `claude plugin eval init` 编写的布局,也是新套件要使用的布局。[eval 套件参考](#eval-suite-reference)有完整的树,包括 mocks 和结果:135这是 `claude plugin eval init` 编写的布局,也是新套件要使用的布局。[eval 套件参考](#eval-suite-reference)有完整的树,包括 mocks 和结果:

136 136 


236 针对无插件基线评分236 针对无插件基线评分

237</h3>237</h3>

238 238 

239当插件处于测试中时,默认情况下每个用例在两个 arm 中运行。with-arm 是其加载插件的运行,without-arm 是相同数量的不加载任何插件的运行。摘要和报告显示两个分数和 `Δ`,即 with-arm 分数减去 without-arm 分数。传递 `--ablation none` 以仅运行 with-arm,当你不需要比较时(例如在迭代评分器时)将成本减半。239当插件处于测试中时,用例通常在两个 arm 中运行。with-arm 是其加载插件的运行,without-arm 是相同数量的不加载任何插件的运行。摘要和报告显示两个分数和 `Δ`,即 with-arm 分数减去 without-arm 分数。

240 

241在这些情况下,用例仅运行 with-arm,所以它没有 `W/OUT` 分数或 `Δ`:

242 

243* **你传递 `--ablation none`**:每个用例运行一个 arm,当你不需要比较时(例如在迭代评分器时)将成本减半。

244* **用例恢复记录并且目标是一个路径**:使用[目标](#choose-what-to-evaluate)(例如 `.` 而不是已安装插件的名称),[`context.history_file`](#add-setup-or-history-with-case-yaml) 用例默认运行一个 arm,假设记录的对话已经反映了插件。运行在 stderr 上打印 `single-arm (no Δ)` 通知,命名这些用例。要比较恢复的转向与和不带插件,传递 `--ablation with-without`。

245* **没有为用例找到插件**:当目标是一个路径时,Claude Code 无法定位的插件的用例也默认运行一个 arm。参见[基线 arm 显示无插件](#the-baseline-arm-shows-no-plugin-or-delta-is-zero)来修复它。

240 246 

241在两个 arm 运行中,某些评分器报告为 `scored: false`。像"技能被调用"这样的检查在没有插件的情况下永远无法通过,所以计数会将 without-arm 推向零并夸大 `Δ`。为了保持两个 arm 可比较,Claude Code 在两个 arm 中排除此类评分器的分数,并在 with-arm 中仅将其报告为通过/失败指示器。这包括:247在两个 arm 运行中,某些评分器报告为 `scored: false`。像"技能被调用"这样的检查在没有插件的情况下永远无法通过,所以计数会将 without-arm 推向零并夸大 `Δ`。为了保持两个 arm 可比较,Claude Code 在两个 arm 中排除此类评分器的分数,并在 with-arm 中仅将其报告为通过/失败指示器。这包括:

242 248 


274每次运行都在空工作区中开始。当用例需要的不仅仅是提示时,在 `prompt.md` 旁边添加一个 `case.yaml`,带有 `context` 块:280每次运行都在空工作区中开始。当用例需要的不仅仅是提示时,在 `prompt.md` 旁边添加一个 `case.yaml`,带有 `context` 块:

275 281 

276* **Fixture 文件或 git 存储库**:在用例目录中编写 Bash 脚本并在 `context.scaffold_script` 中命名它。脚本作为你在代理沙箱外运行,仅当你传递 `--scaffold` 时,所以仅对你或你的组织编写的套件传递该标志。282* **Fixture 文件或 git 存储库**:在用例目录中编写 Bash 脚本并在 `context.scaffold_script` 中命名它。脚本作为你在代理沙箱外运行,仅当你传递 `--scaffold` 时,所以仅对你或你的组织编写的套件传递该标志。

277* **要继续的早期对话**:将记录保存为 `.jsonl` 文件并在 `context.history_file` 中命名它,用例的提示成为下一个用户轮次。283* **要继续的早期对话**:将记录保存为 `.jsonl` 文件并在 `context.history_file` 中命名它,用例的提示成为下一个用户轮次。当目标是一个路径时,这样的用例默认[不运行基线 arm](#compare-against-a-no-plugin-baseline)。

278* **Claude 在运行期间可以读取的 Fixture 目录**:在 `context.add_dirs` 中列出它们。284* **Claude 在运行期间可以读取的 Fixture 目录**:在 `context.add_dirs` 中列出它们。

279 285 

280`case.yaml` 也需要 `schema_version: "1.1"` 和 `name`;[case.yaml 字段](#case-yaml-fields)参考有完整列表。286`case.yaml` 也需要 `schema_version: "1.1"` 和 `name`;[case.yaml 字段](#case-yaml-fields)参考有完整列表。


290 add_dirs: [resources]296 add_dirs: [resources]

291```297```

292 298 

299scaffold 脚本在空工作区中启动,具有小的固定环境:你的 shell 的 `PATH`、`HOME` 设置为运行的临时主目录、`TMPDIR` 和一些常数,如 `TERM=dumb`。你的 shell 中没有其他内容到达它,用例的 `EVAL_*` 变量也不会。如果脚本以非零退出或运行时间超过 120 秒,该运行得分为 0,出现 `scaffold failed` 错误。仅将脚本用于文件和 git 状态,因为它写入的项目配置[未被加载](#how-runs-are-isolated)。

300 

293<h3 id="mock-mcp-servers">301<h3 id="mock-mcp-servers">

294 Mock MCP 服务器302 Mock MCP 服务器

295</h3>303</h3>


384| `-j`, `--concurrency <n>` | `1` | 一次最多运行这么多个代理运行,从 1 到 8。它们共享你账户的速率限制,所以这缩短了实际时间而不是提高超过该限制的吞吐量。结果保持用例顺序 |392| `-j`, `--concurrency <n>` | `1` | 一次最多运行这么多个代理运行,从 1 到 8。它们共享你账户的速率限制,所以这缩短了实际时间而不是提高超过该限制的吞吐量。结果保持用例顺序 |

385| `--model <model>` | 每个用例的 `model`,否则为 `ANTHROPIC_MODEL`(如果设置),否则为 Claude Code 的默认值 | 被测试代理的模型。在 CI 中固定它,以便模型推出不会被误认为是插件回归 |393| `--model <model>` | 每个用例的 `model`,否则为 `ANTHROPIC_MODEL`(如果设置),否则为 Claude Code 的默认值 | 被测试代理的模型。在 CI 中固定它,以便模型推出不会被误认为是插件回归 |

386| `--judge-model <model>` | 一个小的快速模型 | 用于 `llm` 和 `baseline` 评分器的模型 |394| `--judge-model <model>` | 一个小的快速模型 | 用于 `llm` 和 `baseline` 评分器的模型 |

387| `--ablation <mode>` | 当插件解析时为 `with-without`,否则为 `none` | 是否也运行每个用例而不使用插件来衡量它添加了什么。`none` 运行一个分支;`with-without` 添加无插件基线 |395| `--ablation <mode>` | 按用例决定;请参阅 [与无插件基线比较](#compare-against-a-no-plugin-baseline) | 是否也运行每个用例而不使用插件来衡量它添加了什么。`none` 运行一个分支;`with-without` 添加无插件基线 |

388| `--threshold <0..1>` | `1.0` | 当用例的 with 分支得分至少为此值时,用例通过。任何低于它的用例都会使命令退出 1 |396| `--threshold <0..1>` | `1.0` | 当用例的 with 分支得分至少为此值时,用例通过。任何低于它的用例都会使命令退出 1 |

389| `--max-cost-usd <usd>` | 无上限 | 运行的列表价格成本估计的上限,不是计划使用的上限。在每次运行开始前检查。一旦花费,不会进一步启动任何内容;已在进行中的运行会完成,所以花费可能会超过这些运行的上限。如果任何运行未启动,命令会以部分结果退出 2 |397| `--max-cost-usd <usd>` | 无上限 | 运行的列表价格成本估计的上限,不是计划使用的上限。在每次运行开始前检查。一旦花费,不会进一步启动任何内容;已在进行中的运行会完成,所以花费可能会超过这些运行的上限。如果任何运行未启动,命令会以部分结果退出 2 |

390| `--allow-tools <tools...>` | 无 | 授予超出只读集合的工具。请参阅 [授予工具](#grant-tools) |398| `--allow-tools <tools...>` | 无 | 授予超出只读集合的工具。请参阅 [授予工具](#grant-tools) |


494 信任插件目录502 信任插件目录

495</h3>503</h3>

496 504 

497第一次针对一个目录运行 `claude plugin eval` 时,Claude Code 会在加载任何内容之前询问 `Trust this plugin directory?`,除非你已经在交互式 `claude` 会话中接受了那里的信任提示。在 git 仓库内,回答是会信任整个仓库,对交互式会话也是如此。当 stdin 或 stdout 不是终端时,在 `--json` 下,或当 `CI` 环境变量设置为真值(如 `true`)时,运行无法询问并被拒绝,退出代码为 1;传递 `--trust-plugin` 来自己声明信任,仅限于你会在自己机器上运行的插件。你命名而不是作为路径给出的目标,即已安装的插件或 skills 目录插件,会跳过提示。505第一次针对一个目录运行 `claude plugin eval` 时,Claude Code 会在加载任何内容之前询问 `Trust this plugin directory?`,除非你已经在交互式 `claude` 会话中接受了那里的信任提示。在 git 仓库内,回答是会信任整个仓库,对交互式会话也是如此。当 stdin 或 stdout 不是终端时,或在 `--json` 下,运行无法询问并被拒绝,退出代码为 1;传递 `--trust-plugin` 来自己声明信任,仅限于你会在自己机器上运行的插件。你命名而不是作为路径给出的目标,即已安装的插件或 skills 目录插件,会跳过提示。

498 506 

499插件和套件的某些部分仅在你为该运行传递其标志时才运行:507插件和套件的某些部分仅在你为该运行传递其标志时才运行:

500 508 


510 518 

511每次运行都获得一个临时主目录、工作目录和 Claude Code 配置,被测试的代理在那里作为 `claude -p` 子进程运行,仅加载你的插件。在编写案例时,请记住这些后果:519每次运行都获得一个临时主目录、工作目录和 Claude Code 配置,被测试的代理在那里作为 `claude -p` 子进程运行,仅加载你的插件。在编写案例时,请记住这些后果:

512 520 

513* **不加载任何个人或项目级内容。** 你的用户设置、hooks、`CLAUDE.md` 文件、MCP 服务器、其他已安装的插件、memory 和 skills 都不存在,沙箱上方没有项目范围的 `.claude/` 或 `.mcp.json` 被读取。你的大部分 shell 环境也被隐瞒;只有[允许列表](#prompt-md-fields)和 `EVAL_*` 变量到达运行。如果插件需要设置,在插件中提供它,在 `scaffold_script` 中创建它,或传递 `EVAL_*` 变量。521* **不加载任何个人或项目级内容。** 你的用户设置、hooks、`CLAUDE.md` 文件、MCP 服务器、其他已安装的插件、memory 和 skills 都不存在。项目范围的配置不会在任何地方被读取:没有 `.claude/` 目录、`CLAUDE.md` 或 `.mcp.json` 从工作区上方或内部加载,即使是 `scaffold_script` 写入的,`add_dirs` 目录仅授予读取访问权限。你的大部分 shell 环境也被隐瞒;只有[允许列表](#prompt-md-fields)和 `EVAL_*` 变量到达运行。在被测试的插件中提供任何 skills、agents、hooks 或 MCP 服务器案例所依赖的,因为 [`scaffold_script`](#add-setup-or-history-with-case-yaml) 只能提供文件和 git 状态。

514* **托管策略仍然可以限制运行。** 管理员部署到机器的[托管设置](/docs/zh-CN/managed-settings)中的限制适用于运行内部,所以托管机器上的结果可能因该策略而与非托管机器不同。522* **托管策略仍然可以限制运行。** 管理员部署到机器的[托管设置](/docs/zh-CN/managed-settings)中的限制适用于运行内部,所以托管机器上的结果可能因该策略而与非托管机器不同。

515* **Artifact 工具已关闭。** 发布[artifact](/docs/zh-CN/artifacts)的 skill 只能根据在该步骤之前产生的内容进行评分。523* **Artifact 工具已关闭。** 发布[artifact](/docs/zh-CN/artifacts)的 skill 只能根据在该步骤之前产生的内容进行评分。

516* **案例定义对代理隐藏。** 运行无法读取 eval 目录,所以 Claude 看不到案例的提示、其评分器或兄弟案例。524* **案例定义对代理隐藏。** 运行无法读取 eval 目录,所以 Claude 看不到案例的提示、其评分器或兄弟案例。


520 Eval 套件参考528 Eval 套件参考

521</h2>529</h2>

522 530 

523eval 套件可以包含的所有内容都位于插件的 eval 目录下,`evals/` 除非你[配置了另一个](#use-a-different-eval-directory)。此树显示 `claude plugin eval` 在那里读取或写入的每个文件;仅 `prompt.md` 或 `case.yaml` 是用例存在所需的:531eval 套件可以包含的所有内容都位于插件的 eval 目录下,`evals/` 除非你[配置了另一个](#use-a-different-eval-directory)。一个目录在持有 `prompt.md` 或 `case.yaml` 时计为一个用例,没有至少一个评分器的用例加载失败,出现命名 `graders` 的 `invalid case.yaml` 错误。此树显示 `claude plugin eval` 在 eval 目录中读取或写入的每个文件:

524 532 

525```text theme={null}533```text theme={null}

526evals/534evals/


576 584 

577| 字段 | 目的 |585| 字段 | 目的 |

578| :- | :- |586| :- | :- |

579| `context.scaffold_script` | 用例目录中的 Bash 脚本,在 Claude 启动前在空工作区中运行,以创建 fixture 文件或 git 存储库。仅当你传递 [`--scaffold`](#add-setup-or-history-with-case-yaml) 时运行 |587| `context.scaffold_script` | 用例目录中的 Bash 脚本,在 Claude 启动前在空工作区中运行,以创建 fixture 文件或 git 存储库。仅当你传递 [`--scaffold`](#add-setup-or-history-with-case-yaml) 时运行,具有最小环境和 120 秒限制,非零退出使运行失败 |

580| `context.history_file` | 用例目录中的 `.jsonl` 记录以恢复。用例的提示成为下一个用户轮次 |588| `context.history_file` | 用例目录中的 `.jsonl` 记录以恢复。用例的提示成为下一个用户轮次 |

581| `context.add_dirs` | 用例目录内 Claude 可能在运行期间读取的目录,授予只读 |589| `context.add_dirs` | 用例目录内 Claude 可能在运行期间读取的目录,授予只读 |

582| `execution.prompt` | 提示,当你将整个用例保留在 `case.yaml` 中并省略 `prompt.md` 时 |590| `execution.prompt` | 提示,当你将整个用例保留在 `case.yaml` 中并省略 `prompt.md` 时 |


665 "is not a trusted plugin directory, and this run cannot stop to ask you about it"673 "is not a trusted plugin directory, and this run cannot stop to ask you about it"

666</h3>674</h3>

667 675 

668这是针对 Claude Code 尚未信任的目录的首次运行,由于 stdin 或 stdout 不是终端、你传递了 `--json`,或 `CI` 环境变量设置为 `true` 等真值,它无法询问你。在终端中运行一次 `claude plugin eval <dir>` 并回答提示,或者如果你信任插件的代码和套件,传递 `--trust-plugin`。请参阅[运行可以访问的内容](#security)。676这是针对 Claude Code 尚未信任的目录的首次运行,由于 stdin 或 stdout 不是终端或你传递了 `--json`,它无法询问你。在终端中运行一次 `claude plugin eval <dir>` 并回答提示,或者如果你信任插件的代码和套件,传递 `--trust-plugin`。请参阅[运行可以访问的内容](#security)。

669 677 

670<h3 id="git-is-too-old-for-claude-plugin-eval">678<h3 id="git-is-too-old-for-claude-plugin-eval">

671 "is too old for claude plugin eval"679 "is too old for claude plugin eval"


691 基线臂显示没有插件,或 delta 为零699 基线臂显示没有插件,或 delta 为零

692</h3>700</h3>

693 701 

694如果摘要没有 `W/OUT` 列,或案例失败并显示"ablation requested but no plugin resolved",则没有为该案例找到插件。将 `plugins: ["../.."]` 添加到案例中,给出从案例目录到插件目录的路径。702如果摘要没有 `W/OUT` 列,或案例失败并显示"ablation requested but no plugin resolved",则没有为该案例找到插件。如果每个案例都通过 `context.history_file` 恢复一个记录,缺少该列是预期的,因为这些案例默认运行[一个臂](#compare-against-a-no-plugin-baseline)。否则,将 `plugins: ["../.."]` 添加到案例中,给出从案例目录到插件目录的路径。

695 703 

696如果插件确实加载了,而 `Δ` 仍然接近零,且你的 `tool_used: Skill` grader 失败,这通常是一个真实的发现,意味着该 skill 的 `description` 不会在提示的措辞上触发。调整描述并重新运行相同的套件。704如果插件确实加载了,而 `Δ` 仍然接近零,且你的 `tool_used: Skill` grader 失败,这通常是一个真实的发现,意味着该 skill 的 `description` 不会在提示的措辞上触发。调整描述并重新运行相同的套件。

697 705 

Details

22 claude plugin 命令22 claude plugin 命令

23</h2>23</h2>

24 24 

25从 shell 或脚本中运行 `claude plugin <subcommand>`,在 Claude Code 会话外。这些子命令安装和管理 plugins,而不打开 [`/plugin`](#plugin-in-a-session) 面板。25从你的 shell 或脚本运行 `claude plugin <subcommand>`,在 Claude Code 会话外部。这些子命令安装和管理插件,无需打开 [`/plugin`](#plugin-in-a-session) 面板。

26 26 

27`claude plugins` 是 `claude plugin` 的别名。27`claude plugins` 是 `claude plugin` 的别名。

28 28 

29每个子命令共享这些退出代码、plugin 参数和作用域值:29每个子命令共享这些退出代码、插件参数和作用域值:

30 30 

31* **退出代码**:成功时为 `0`,失败时为 `1`。`validate` 为意外错误添加退出 `2`,`eval` 添加 [其部分](#plugin-eval) 中列出的代码。31* **退出代码**:成功时为 `0`,失败时为 `1`。`validate` 为意外错误添加退出 `2`,`eval` 添加 [其部分](#plugin-eval) 中列出的代码。

32* **Plugin 参数**:`<plugin>` 参数是 plugin `name` 或 `name@marketplace`。当两个市场提供相同的名称时,使用限定形式。32* **插件参数**:`<plugin>` 参数是插件 `name` 或 `name@marketplace`。当两个市场提供相同的名称时,使用限定形式。

33* **作用域**:`--scope` 接受 `user`、`project` 或 `local`,并命名命令写入的设置文件。`update` 也接受 `managed`。33* **作用域**:`--scope` 接受 `user`、`project` 或 `local`,并命名命令写入的设置文件。`update` 也接受 `managed`。

34 34 

35<h3 id="plugin-init">35<h3 id="plugin-init">

36 plugin init36 plugin init

37</h3>37</h3>

38 38 

39在 `~/.claude/skills/<name>/` 处搭建新 plugin。它在您的下一个会话中作为 `<name>@skills-dir` 加载,无需安装步骤。39在 `~/.claude/skills/<name>/` 处搭建新插件。它在你的下一个会话中作为 `<name>@skills-dir` 加载,无需安装步骤。

40 40 

41`new` 是 `init` 的别名。41`new` 是 `init` 的别名。

42 42 

43对于以此命令开始的创建、测试和编辑工作流,请参阅 [创建 plugin](/docs/zh-CN/plugins/create)。43对于从此命令开始的创建、测试和编辑工作流,请参阅 [创建插件](/docs/zh-CN/plugins/create)。

44 44 

45```bash theme={null}45```bash theme={null}

46claude plugin init <name> [options]46claude plugin init <name> [options]

47```47```

48 48 

49`<name>` 成为 `~/.claude/skills/` 下的目录名称和 plugin 清单中的 `name`。49`<name>` 成为 `~/.claude/skills/` 下的目录名称和插件清单中的 `name`。

50 50 

51该命令没有用于另一个位置的标志。要改为在项目内搭建,请参阅 [创建 plugin](/docs/zh-CN/plugins/create)。51该命令没有用于另一个位置的标志。要在项目内搭建,请参阅 [创建插件](/docs/zh-CN/plugins/create)。

52 52 

53| 标志 | 描述 |53| 标志 | 描述 |

54| :- | :- |54| :- | :- |


58| `--with <components...>` | 也为 `skills`、`agents`、`hooks`、`mcp`、`lsp`、`output-style` 或 `channel` 搭建启动文件 |58| `--with <components...>` | 也为 `skills`、`agents`、`hooks`、`mcp`、`lsp`、`output-style` 或 `channel` 搭建启动文件 |

59| `-f, --force` | 覆盖目标处的现有 `.claude-plugin/` |59| `-f, --force` | 覆盖目标处的现有 `.claude-plugin/` |

60 60 

61使用启动 skill 和 hook 文件搭建 plugin:61搭建带有启动 skill 和 hook 文件的插件:

62 62 

63```bash theme={null}63```bash theme={null}

64claude plugin init my-helper --with skills hooks64claude plugin init my-helper --with skills hooks

65```65```

66 66 

67Claude Code 验证其写入的内容并打印 `Created plugin "my-helper" at ~/.claude/skills/my-helper`,后跟它加载的 id 和关闭它的 `claude plugin disable` 命令。67Claude Code 验证它写入的内容并打印 `Created plugin "my-helper" at ~/.claude/skills/my-helper`,后跟它加载的 id 和关闭它的 `claude plugin disable` 命令。

68 68 

69当 Claude Code 无法安全搭建时,它退出 `1` 而不写入,消息命名原因。这些是常见原因:69当 Claude Code 无法安全搭建时,它退出 `1` 而不写入,消息命名原因。这些是常见原因:

70 70 

71* 未知的 `--with` 值71* 未知的 `--with` 值

72* 目标处的现有搭建,没有 `--force`72* 目标处的现有搭建,没有 `--force`

73* 阻止 skills-directory plugins 的托管设置73* 阻止 skills-directory 插件的托管设置

74 74 

75<h3 id="plugin-install">75<h3 id="plugin-install">

76 plugin install76 plugin install

77</h3>77</h3>

78 78 

79从您添加的市场安装 plugin。`i` 是 `install` 的别名。79从你添加的市场安装插件。`i` 是 `install` 的别名。

80 80 

81```bash theme={null}81```bash theme={null}

82claude plugin install <plugin> [options]82claude plugin install <plugin> [options]

83```83```

84 84 

85大多数 plugins 无需提示即可安装。对于其市场条目 [运行命令来安装它](/docs/zh-CN/plugins/host-marketplace) 或 [为其下载设置 `headersHelper`](/docs/zh-CN/plugins/host-marketplace#how-users-accept-a-headershelper-command) 的 plugin,Claude Code 首先打印命令并询问 `Run this command now? [y/N]`。85大多数插件无需提示即可安装。对于其市场条目 [运行命令来安装它](/docs/zh-CN/plugins/host-marketplace) 或 [为其下载设置 `headersHelper`](/docs/zh-CN/plugins/host-marketplace#how-users-accept-a-headershelper-command) 的插件,Claude Code 首先打印命令并询问 `Run this command now? [y/N]`。

86 86 

87| 标志 | 描述 |87| 标志 | 描述 |

88| :- | :- |88| :- | :- |

89| `-s, --scope <scope>` | 安装作用域:`user`、`project` 或 `local`。默认为 `user` |89| `-s, --scope <scope>` | 安装作用域:`user`、`project` 或 `local`。默认为 `user` |

90| `--config <key=value>` | 设置 plugin 清单声明的 [`userConfig`](/docs/zh-CN/plugins/manifest-reference) 选项。为每个选项重复该标志。需要 Claude Code v2.1.147 或更高版本 |90| `--config <key=value>` | 设置插件清单声明的 [`userConfig`](/docs/zh-CN/plugins/manifest-reference) 选项。为每个选项重复该标志。需要 Claude Code v2.1.147 或更高版本 |

91| `-y, --yes` | 接受显示的安装命令,无需 `Run this command now?` 提示。当命令在 Claude Code 会话内运行时(例如从 Bash 工具或 hook)被忽略。需要 Claude Code v2.1.229 或更高版本 |91| `-y, --yes` | 接受显示的安装命令,无需 `Run this command now?` 提示。在 Claude Code 会话内运行命令时被忽略,例如从 Bash 工具或 hook。需要 Claude Code v2.1.229 或更高版本 |

92| `--accept-command <sha256>` | 接受显示的安装命令,其 `sha256` 之前的 [`--json` 运行](#plugin-json-result) 在 `shownCommand` 中报告,代替 `-y`。不能与 `-y` 组合。请参阅 [接受显示的安装命令](#accept-a-displayed-install-command)。需要 Claude Code v2.1.271 或更高版本 |92| `--accept-command <sha256>` | 接受显示的安装命令,其 `sha256` 之前的 [`--json` 运行](#plugin-json-result) 在 `shownCommand` 中报告,代替 `-y`。不能与 `-y` 组合。请参阅 [接受显示的安装命令](#accept-a-displayed-install-command)。需要 Claude Code v2.1.271 或更高版本 |

93| `--json` | 将结果作为一个 JSON 对象打印在 stdout 的最后一行,而不是人类可读的消息,供脚本使用。请参阅 [JSON 结果格式](#plugin-json-result)。需要 Claude Code v2.1.268 或更高版本 |93| `--json` | 将结果打印为 stdout 最后一行的一个 JSON 对象,而不是人类可读的消息,供脚本使用。请参阅 [JSON 结果格式](#plugin-json-result)。需要 Claude Code v2.1.268 或更高版本 |

94 94 

95从您自己的终端传递 `-y` 以接受显示的命令而无需提示。以下是没有 TTY 和 Claude 运行命令时发生的情况:95从你自己的终端传递 `-y` 以接受显示的命令,无需提示。以下是没有 TTY 和 Claude 运行命令时发生的情况:

96 96 

97* **stdin 或 stdout 不是 TTY,您既不传递 `-y` 也不传递 `--accept-command`**:安装被拒绝。输出说命令仅被显示,退出代码为 `1`97* **stdin 或 stdout 不是 TTY,且你既不传递 `-y` 也不传递 `--accept-command`**:安装被拒绝。输出说命令仅被显示,退出代码为 `1`

98* **Claude 通过其 Bash 工具运行命令**:`-y` 被忽略。改为从您自己的终端运行命令98* **Claude 通过其 Bash 工具运行命令**:`-y` 被忽略。改为从你自己的终端运行命令

99 99 

100为克隆项目的每个人安装 plugin:100为克隆项目的每个人安装插件:

101 101 

102```bash theme={null}102```bash theme={null}

103claude plugin install formatter@my-marketplace --scope project103claude plugin install formatter@my-marketplace --scope project


106Claude Code 打印 `Successfully installed plugin: formatter@my-marketplace (scope: project)`。当没有新内容被安装时,输出说明原因:106Claude Code 打印 `Successfully installed plugin: formatter@my-marketplace (scope: project)`。当没有新内容被安装时,输出说明原因:

107 107 

108* **已在该作用域安装**:输出为 `Plugin "formatter@my-marketplace" is already installed (scope: project)`,退出代码为 `0`108* **已在该作用域安装**:输出为 `Plugin "formatter@my-marketplace" is already installed (scope: project)`,退出代码为 `0`

109* **您拒绝命令源提示**:输出为 `Aborted.`,退出代码为 `1`109* **你拒绝命令源提示**:输出为 `Aborted.`,退出代码为 `1`

110* **您拒绝 `headersHelper` 提示,或无法在没有 TTY 的情况下确认**:输出为 `Aborted — the command was not run.`,退出代码为 `1`110* **你拒绝 `headersHelper` 提示,或无法在没有 TTY 的情况下确认**:输出为 `Aborted — the command was not run.`,退出代码为 `1`

111 111 

112<h4 id="plugin-json-result">112<h4 id="plugin-json-result">

113 JSON 结果格式113 JSON 结果格式

114</h4>114</h4>

115 115 

116当您向 `plugin install` 传递 `--json` 时,stdout 的最后一行是一个 JSON 对象。仅解析该行,因为 Claude Code 在其前面打印市场声明的任何命令。116当你向 `plugin install` 传递 `--json` 时,stdout 的最后一行是一个 JSON 对象。仅解析该行,因为 Claude Code 在其前面打印市场声明的任何命令。

117 117 

118三个字段始终存在:118三个字段始终存在:

119 119 


123 123 

124其他字段,例如 `pluginId`、`scope` 和 `failureCode`,仅在适用时出现。124其他字段,例如 `pluginId`、`scope` 和 `failureCode`,仅在适用时出现。

125 125 

126`plugin uninstall`、`plugin update`、`plugin enable` 和 `plugin disable` 上的 `--json` 选项打印相同的对象,带有该子命令自己的字段。126`--json` 选项在 `plugin uninstall`、`plugin update`、`plugin enable` 和 `plugin disable` 上打印相同的对象,带有该子命令自己的字段。

127 127 

128使用错误(例如无效的 `--scope`)不打印结果行,退出 `1`,原因在 stderr 上。128使用错误,例如无效的 `--scope`,不打印结果行,退出 `1`,原因在 stderr 上。

129 129 

130<h4 id="accept-a-displayed-install-command">130<h4 id="accept-a-displayed-install-command">

131 接受显示的安装命令131 接受显示的安装命令

132</h4>132</h4>

133 133 

134当 `--json` 运行显示市场声明的命令且不运行它时,`failed` 结果也带有 `shownCommand` 对象。其字段包括显示的命令、它所属的 plugin 和命令的 `sha256`。134当 `--json` 运行显示市场声明的命令且不运行它时,`failed` 结果也携带 `shownCommand` 对象。其字段包括显示的命令、它所属的插件和命令的 `sha256`。

135 135 

136要接受完全相同的命令,从您自己的终端使用该 `sha256` 作为 `--accept-command` 重新运行,因为该标志在 Claude Code 会话内无效。需要 Claude Code v2.1.271 或更高版本。136要接受完全相同的命令,从你自己的终端使用该 `sha256` 作为 `--accept-command` 重新运行,因为该标志在 Claude Code 会话内无效。需要 Claude Code v2.1.271 或更高版本。

137 137 

138`sha256` 计为完全相同的命令、plugin 和市场目录的接受。如果自命令显示以来其中任何一个发生了变化,Claude Code 不接受 `sha256` 并再次显示命令。运行自己的市场刷新获取的更改也计为此类更改。138`sha256` 计为对完全相同的命令、插件和市场目录的接受。如果自命令显示以来其中任何一个发生了变化,Claude Code 不接受 `sha256` 并再次显示命令。运行自己的市场刷新获取的更改也计为此类更改。

139 139 

140如果 `shownCommand.acceptCommandMatched` 为 `false`,您传递的 `sha256` 与现在显示的命令不匹配。在使用其 `sha256` 重新运行之前查看该命令。140如果 `shownCommand.acceptCommandMatched` 为 `false`,你传递的 `sha256` 与现在显示的命令不匹配。在使用其 `sha256` 重新运行之前,查看该命令。

141 141 

142<h3 id="plugin-uninstall">142<h3 id="plugin-uninstall">

143 plugin uninstall143 plugin uninstall

144</h3>144</h3>

145 145 

146从一个作用域删除已安装的 plugin。`remove` 和 `rm` 是 `uninstall` 的别名。146从一个作用域移除已安装的插件。`remove` 和 `rm` 是 `uninstall` 的别名。

147 147 

148```bash theme={null}148```bash theme={null}

149claude plugin uninstall <plugin> [options]149claude plugin uninstall <plugin> [options]


152| 标志 | 描述 |152| 标志 | 描述 |

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

154| `-s, --scope <scope>` | 从作用域卸载:`user`、`project` 或 `local`。默认为 `user` |154| `-s, --scope <scope>` | 从作用域卸载:`user`、`project` 或 `local`。默认为 `user` |

155| `--keep-data` | 保留 plugin 的持久数据目录 `~/.claude/plugins/data/<id>/` |155| `--keep-data` | 保留插件的持久数据目录 `~/.claude/plugins/data/<id>/` |

156| `--prune` | 也删除自动安装的 [dependencies](/docs/zh-CN/plugins/dependencies),没有剩余 plugin 需要 |156| `--prune` | 也移除自动安装的 [依赖项](/docs/zh-CN/plugins/dependencies),没有剩余插件需要 |

157| `-y, --yes` | 跳过 `--prune` 确认提示。当 stdin 或 stdout 不是 TTY 时,`--prune` 需要 |157| `-y, --yes` | 跳过 `--prune` 确认提示。当 stdin 或 stdout 不是 TTY 时,与 `--prune` 一起需要 |

158| `--json` | 将结果作为一个 JSON 对象打印在 stdout 的最后一行,格式与 [`plugin install --json`](#plugin-json-result) 相同。不能与 `--prune` 组合。需要 Claude Code v2.1.268 或更高版本 |158| `--json` | 将结果打印为 stdout 最后一行的一个 JSON 对象,格式与 [`plugin install --json`](#plugin-json-result) 相同。不能与 `--prune` 组合。需要 Claude Code v2.1.268 或更高版本 |

159 159 

160从项目作用域卸载 plugin:160从项目作用域卸载插件:

161 161 

162```bash theme={null}162```bash theme={null}

163claude plugin uninstall formatter@my-marketplace --scope project163claude plugin uninstall formatter@my-marketplace --scope project

164```164```

165 165 

166Claude Code 打印 `Successfully uninstalled plugin: formatter (scope: project)`。当 plugin 未在该作用域安装时,命令打印以 `Failed to uninstall plugin "formatter@my-marketplace":` 开头的行,退出 `1`。166Claude Code 打印 `Successfully uninstalled plugin: formatter (scope: project)`。当插件未在该作用域安装时,命令打印以 `Failed to uninstall plugin "formatter@my-marketplace":` 开头的行并退出 `1`。

167 167 

168如果失败行继续显示 `"formatter" was not uninstalled:`,Claude Code 无法确认该作用域的设置不再打开 plugin,因此 plugin 保持安装状态,并保留其保存的所有内容。使用 `--json`,结果带有 `failureCode: "settings_still_on"`。此设置检查需要 Claude Code v2.1.282 或更高版本。168如果失败行继续为 `"formatter" was not uninstalled:` 并命名设置文件,Claude Code 无法确认作用域的设置不再打开插件,因此插件保持安装状态,保留其保存的所有内容。使用 `--json` 时,结果携带 `failureCode: "settings_still_on"`。此设置检查需要 Claude Code v2.1.282 或更高版本。

169 169 

170<h4 id="what-an-uninstall-deletes-and-keeps">170<h4 id="what-an-uninstall-deletes-and-keeps">

171 卸载删除和保留的内容171 卸载删除和保留的内容

172</h4>172</h4>

173 173 

174当您从最后一个安装 plugin 的作用域卸载它时,Claude Code 也删除 plugin 的存储 [options 和 secrets](/docs/zh-CN/plugins/manifest-reference#user-configuration) 及其数据目录 `~/.claude/plugins/data/<id>/`。有三个例外:174当你从最后一个安装它的作用域卸载插件时,Claude Code 也删除插件存储的 [选项和密钥](/docs/zh-CN/plugins/manifest-reference#user-configuration) 及其数据目录 `~/.claude/plugins/data/<id>/`。有三个例外:

175 175 

176* 使用 `--keep-data`,数据目录保留176* 使用 `--keep-data` 时,数据目录保留

177* 当另一个已安装的 plugin 使用相同的文件夹时,例如其 ID 仅在字母大小写上与此不同的 plugin,数据目录保留177* 当另一个已安装的插件使用相同的文件夹时,例如其 ID 仅在字母大小写上与此不同的插件,数据目录保留

178* 当 Claude Code 无法在从该作用域删除 plugin 后读回已安装 plugins 的列表时,options、secrets 和数据目录都保留,因为 plugin 可能仍在另一个作用域安装。卸载仍然成功。消息列出保留的内容及如何删除它,使用 `--json` 结果带有 `savedKept: "install_records_unreadable"`178* 当 Claude Code 无法在从该作用域移除插件后读回已安装插件的列表时,选项、密钥和数据目录都保留,因为插件可能仍在另一个作用域安装。卸载仍然成功。消息列出保留的内容及如何删除它,使用 `--json` 时结果携带 `savedKept: "install_records_unreadable"`

179 179 

180使用 `--json`,`keptData` 报告目录是否保留,`/plugin` 在保留时显示 `· data preserved`。对于在没有 `--keep-data` 的情况下保留的目录,此报告需要 Claude Code v2.1.281 或更高版本。`savedKept` 字段需要 Claude Code v2.1.282 或更高版本。180使用 `--json` 时,`keptData` 报告目录是否保留,`/plugin` 在保留时显示 `· data preserved`。对于在没有 `--keep-data` 的情况下保留的目录,此报告需要 Claude Code v2.1.281 或更高版本。`savedKept` 字段需要 Claude Code v2.1.282 或更高版本。

181 181 

182<h3 id="plugin-enable">182<h3 id="plugin-enable">

183 plugin enable183 plugin enable

184</h3>184</h3>

185 185 

186启用禁用的 plugin。对于 [从 claude.ai 同步的 plugin](/docs/zh-CN/plugins/loading#synced-plugins),将 `<name>@synced` 作为 plugin 传递。186启用禁用的插件。对于 [从 claude.ai 同步的插件](/docs/zh-CN/plugins/loading#synced-plugins),传递 `<name>@synced` 作为插件。

187 187 

188```bash theme={null}188```bash theme={null}

189claude plugin enable <plugin> [options]189claude plugin enable <plugin> [options]


192| 标志 | 描述 |192| 标志 | 描述 |

193| :- | :- |193| :- | :- |

194| `-s, --scope <scope>` | 启用的作用域:`user`、`project` 或 `local`。省略时自动检测 |194| `-s, --scope <scope>` | 启用的作用域:`user`、`project` 或 `local`。省略时自动检测 |

195| `--json` | 将结果作为一个 JSON 对象打印在 stdout 的最后一行,格式与 [`plugin install --json`](#plugin-json-result) 相同。需要 Claude Code v2.1.268 或更高版本 |195| `--json` | 将结果打印为 stdout 最后一行的一个 JSON 对象,格式与 [`plugin install --json`](#plugin-json-result) 相同。需要 Claude Code v2.1.268 或更高版本 |

196 196 

197不使用 `--scope`,命令按本地、项目、用户的顺序检查您的设置文件,并使用提及 plugin 的第一个作用域。197不使用 `--scope` 时,命令按本地、项目、用户的顺序检查你的设置文件,并使用第一个提及插件的作用域。

198 198 

199如果您传递 plugin 未声明的 `--scope`,命令要么写入覆盖,要么失败:199如果你传递插件未声明的 `--scope`,命令要么写入覆盖,要么失败:

200 200 

201* **[优先于](/docs/zh-CN/plugins/loading) 声明作用域的作用域**:Claude Code 在您传递的作用域处写入覆盖。例如,`claude plugin disable formatter --scope local` 仅为您关闭项目启用的 plugin201* **一个 [优先于](/docs/zh-CN/plugins/loading) 声明作用域的作用域**:Claude Code 在你传递的作用域处写入覆盖。例如,`claude plugin disable formatter --scope local` 仅为你关闭项目启用的插件

202* **任何其他作用域**:命令失败,显示 `Plugin "formatter" is installed at project scope, not user. Use --scope project or omit --scope to auto-detect.`202* **任何其他作用域**:命令失败,显示 `Plugin "formatter" is installed at project scope, not user. Use --scope project or omit --scope to auto-detect.`

203 203 

204如果 plugin 已在解析的作用域启用,命令打印 `Plugin "formatter" is already enabled` 并退出 `1`。使用 `--json`,结果具有 `"failureCode": "already_in_goal_state"` 和 `"alreadyInGoalState": true`,因此脚本可以将该情况视为成功。204如果插件已在解析的作用域启用,命令打印 `Plugin "formatter" is already enabled` 并退出 `1`。使用 `--json` 时,结果有 `"failureCode": "already_in_goal_state"` 和 `"alreadyInGoalState": true`,所以脚本可以将该情况视为成功。

205 205 

206当 plugin 声明 [dependencies](/docs/zh-CN/plugins/dependencies) 时,Claude Code 也启用它们。命令在这些情况下失败:206当插件声明 [依赖项](/docs/zh-CN/plugins/dependencies) 时,Claude Code 也启用它们。命令在这些情况下失败:

207 207 

208* **dependency 未安装**:启用失败并为每个缺失的 dependency 打印 `claude plugin install` 命令208* **依赖项未安装**:启用失败并为每个缺失的依赖项打印 `claude plugin install` 命令

209* **dependency 被您组织的 plugin 策略阻止**:启用失败并命名被阻止的 dependency209* **依赖项被你的组织的插件策略阻止**:启用失败并命名被阻止的依赖项

210* **dependency 在优先级高于目标作用域的作用域处设置为 `false`**:启用失败。在该作用域启用 dependency,或传递 `--scope` 以在那里写入210* **依赖项在优先级高于目标作用域的作用域处设置为 `false`**:启用失败。在该作用域启用依赖项,或传递 `--scope` 以在那里写入

211 211 

212在声明它的任何地方重新启用 plugin:212在声明它的任何地方重新启用插件:

213 213 

214```bash theme={null}214```bash theme={null}

215claude plugin enable formatter215claude plugin enable formatter


221 plugin disable221 plugin disable

222</h3>222</h3>

223 223 

224禁用 plugin 而不卸载它。对于 [从 claude.ai 同步的 plugin](/docs/zh-CN/plugins/loading#synced-plugins),将 `<name>@synced` 作为 plugin 传递。224禁用插件而不卸载它。对于 [从 claude.ai 同步的插件](/docs/zh-CN/plugins/loading#synced-plugins),传递 `<name>@synced` 作为插件。

225 225 

226```bash theme={null}226```bash theme={null}

227claude plugin disable [plugin] [options]227claude plugin disable [plugin] [options]


229 229 

230| 标志 | 描述 |230| 标志 | 描述 |

231| :- | :- |231| :- | :- |

232| `-a, --all` | 禁用每个启用的 plugin。不能与 plugin 名称或 `--scope` 组合 |232| `-a, --all` | 禁用每个启用的插件。不能与插件名称或 `--scope` 组合 |

233| `-s, --scope <scope>` | 禁用的作用域:`user`、`project` 或 `local`。省略时自动检测 |233| `-s, --scope <scope>` | 禁用的作用域:`user`、`project` 或 `local`。省略时自动检测 |

234| `--json` | 将结果作为一个 JSON 对象打印在 stdout 的最后一行,格式与 [`plugin install --json`](#plugin-json-result) 相同。需要 Claude Code v2.1.268 或更高版本 |234| `--json` | 将结果打印为 stdout 最后一行的一个 JSON 对象,格式与 [`plugin install --json`](#plugin-json-result) 相同。需要 Claude Code v2.1.268 或更高版本 |

235 235 

236不使用 `--scope`,作用域以与 [`plugin enable`](#plugin-enable) 相同的本地、项目、用户顺序自动检测。236不使用 `--scope` 时,作用域按与 [`plugin enable`](#plugin-enable) 相同的本地、项目、用户顺序自动检测。

237 237 

238如果您既不传递 plugin 名称也不传递 `--all`,Claude Code 打印 `Please specify a plugin name or use --all to disable all plugins` 并退出 `1`。禁用已禁用的 plugin 打印 `Plugin "formatter" is already disabled` 并退出 `1`,如 [`plugin enable`](#plugin-enable) 对已启用的 plugin 所做的那样。238如果你既不传递插件名称也不传递 `--all`,Claude Code 打印 `Please specify a plugin name or use --all to disable all plugins` 并退出 `1`。禁用已禁用的插件打印 `Plugin "formatter" is already disabled` 并退出 `1`,如 [`plugin enable`](#plugin-enable) 对已启用的插件所做的那样。

239 239 

240命令对仍然需要的 plugin 失败:240命令对仍然需要的插件失败:

241 241 

242* **另一个启用的 plugin [depends on](/docs/zh-CN/plugins/dependencies) 它**:命令失败并命名要首先禁用的依赖项242* **另一个启用的插件 [依赖于](/docs/zh-CN/plugins/dependencies) 它**:命令失败并命名要首先禁用的依赖项

243* **您的组织要求它作为同步 plugin**:命令失败并保存任何内容243* **你的组织要求它作为同步插件**:命令失败并不保存任何内容

244 244 

245禁用一个 plugin:245禁用一个插件:

246 246 

247```bash theme={null}247```bash theme={null}

248claude plugin disable formatter248claude plugin disable formatter


254 plugin update254 plugin update

255</h3>255</h3>

256 256 

257将 plugin 更新到其市场提供的最新版本。新版本在您的下一个会话中加载,或在您在运行的会话中运行 `/reload-plugins` 后加载。257将插件更新到其市场提供的最新版本。新版本在你的下一个会话中加载,或在运行中的会话中运行 `/reload-plugins` 后加载。

258 258 

259```bash theme={null}259```bash theme={null}

260claude plugin update <plugin> [options]260claude plugin update <plugin> [options]


263| 标志 | 描述 |263| 标志 | 描述 |

264| :- | :- |264| :- | :- |

265| `-s, --scope <scope>` | 更新的作用域:`user`、`project`、`local` 或 `managed`。省略时自动检测 |265| `-s, --scope <scope>` | 更新的作用域:`user`、`project`、`local` 或 `managed`。省略时自动检测 |

266| `-y, --yes` | 接受来自 [command-source](/docs/zh-CN/plugins/host-marketplace) plugin 的更改的安装命令,无需提示。当 stdin 或 stdout 不是 TTY 时需要,除非您传递 `--accept-command`。需要 Claude Code v2.1.229 或更高版本 |266| `-y, --yes` | 接受来自 [命令源](/docs/zh-CN/plugins/host-marketplace) 插件的更改的安装命令,无需提示。当 stdin 或 stdout 不是 TTY 时需要,除非你传递 `--accept-command`。需要 Claude Code v2.1.229 或更高版本 |

267| `--accept-command <sha256>` | 接受市场声明的命令,其 `sha256` 之前的 [`--json` 运行](#plugin-json-result) 在 `shownCommand` 中报告,代替 `-y`。不能与 `-y` 组合。需要 Claude Code v2.1.271 或更高版本 |267| `--accept-command <sha256>` | 接受市场声明的命令,其 `sha256` 之前的 [`--json` 运行](#plugin-json-result) 在 `shownCommand` 中报告,代替 `-y`。不能与 `-y` 组合。需要 Claude Code v2.1.271 或更高版本 |

268| `--json` | 将结果作为一个 JSON 对象打印在 stdout 的最后一行,格式与 [`plugin install --json`](#plugin-json-result) 相同。需要 Claude Code v2.1.268 或更高版本 |268| `--json` | 将结果打印为 stdout 最后一行的一个 JSON 对象,格式与 [`plugin install --json`](#plugin-json-result) 相同。需要 Claude Code v2.1.268 或更高版本 |

269 269 

270如果您省略 `--scope`,命令在您当前项目安装的最具体作用域处更新 plugin,检查本地、项目、用户,然后托管。270如果你省略 `--scope`,命令在为你的当前项目安装它的最具体作用域处更新插件,检查本地、项目、用户,然后托管。

271 271 

272在 v2.1.281 之前,当您省略 `--scope` 时命令使用 `user`,因此更新仅在项目或本地作用域安装的 plugin 失败,显示 `Plugin "<name>" is not installed at scope user`。在这些版本上,传递 `--scope`。272在 v2.1.281 之前,当你省略 `--scope` 时命令使用 `user`,所以更新仅在项目或本地作用域安装的插件失败,显示 `Plugin "<name>" is not installed at scope user`。在这些版本上,传递 `--scope`。

273 273 

274`managed` 是您可以更新但不能安装的唯一作用域。对于管理员安装的 plugins,请参阅 [为您的组织管理 plugins](/docs/zh-CN/plugins/org)。274`managed` 是你可以更新但不能安装的唯一作用域。对于管理员安装的插件,请参阅 [为你的组织管理插件](/docs/zh-CN/plugins/org)。

275 275 

276更新 plugin:276更新插件:

277 277 

278```bash theme={null}278```bash theme={null}

279claude plugin update formatter@my-marketplace279claude plugin update formatter@my-marketplace


281 281 

282Claude Code 打印 `Checking for updates for plugin "formatter@my-marketplace"…`,然后是结果。当没有更新时,它打印 `formatter is already at the latest version (1.0.0).` 并退出 `0`。282Claude Code 打印 `Checking for updates for plugin "formatter@my-marketplace"…`,然后是结果。当没有更新时,它打印 `formatter is already at the latest version (1.0.0).` 并退出 `0`。

283 283 

284您可以传递裸 plugin 名称,命令将其与您安装的 plugins 匹配。当来自不同市场的已安装 plugins 共享名称时,命令拒绝更新并列出要运行的限定 `plugin-name@marketplace-name` 命令。按裸名称更新需要 Claude Code v2.1.246 或更高版本。284你可以传递一个裸插件名称,命令将其与你安装的插件匹配。当来自不同市场的已安装插件共享名称时,命令拒绝更新并列出要运行的限定 `plugin-name@marketplace-name` 命令。按裸名称更新需要 Claude Code v2.1.246 或更高版本。

285 285 

286<h3 id="plugin-list">286<h3 id="plugin-list">

287 plugin list287 plugin list

288</h3>288</h3>

289 289 

290列出已安装的 plugins,包括其版本、作用域和状态。290列出已安装的插件及其版本、作用域和状态。

291 291 

292```bash theme={null}292```bash theme={null}

293claude plugin list [options]293claude plugin list [options]


296| 标志 | 描述 |296| 标志 | 描述 |

297| :- | :- |297| :- | :- |

298| `--json` | 将列表打印为 JSON |298| `--json` | 将列表打印为 JSON |

299| `--available` | 也列出您的市场提供但您未安装的 plugins。没有 `--json` 时无效 |299| `--available` | 也列出你的市场提供但你未安装的插件。没有 `--json` 时无效 |

300 300 

301Claude Code 按每个 plugin 的加载方式对人类可读的输出进行分组:301Claude Code 按每个插件的加载方式对人类可读的输出进行分组:

302 302 

303* **`Installed plugins:`**:您从市场安装的 plugins303* **`Installed plugins:`**:你从市场安装的插件

304* **`Session-only plugins (--plugin-dir / --plugin-url):`**:由同一命令中的这些标志加载的 plugins,如 `claude --plugin-dir ./my-plugin plugin list`304* **`Session-only plugins (--plugin-dir / --plugin-url):`**:由同一命令中的这些标志加载的插件,如 `claude --plugin-dir ./my-plugin plugin list`

305* **`Skills-directory plugins (.claude/skills/*):`**:Claude Code 在 skills 目录中找到的 plugins305* **`Skills-directory plugins (.claude/skills/*):`**:Claude Code 在 skills 目录中找到的插件

306* **`Synced from claude.ai`**:[从您的 claude.ai 账户同步的 plugins](/docs/zh-CN/plugins/loading#synced-plugins)306* **`Synced from claude.ai`**:[从你的 claude.ai 账户同步的插件](/docs/zh-CN/plugins/loading#synced-plugins)

307 307 

308当任何组中都没有内容时,Claude Code 打印 ``No plugins installed. Use `claude plugin install` to install a plugin.``308当任何组中都没有内容时,Claude Code 打印 ``No plugins installed. Use `claude plugin install` to install a plugin.``

309 309 


311 JSON 输出311 JSON 输出

312</h4>312</h4>

313 313 

314使用 `--json`,Claude Code 打印一个数组,每个安装一个对象。每个对象都带有下面的字段。`id`、`version`、`scope`、`enabled` 和 `installPath` 始终存在,其他字段仅在适用时出现。314使用 `--json` 时,Claude Code 打印一个数组,每个安装一个对象。每个对象携带下面的字段。`id`、`version`、`scope`、`enabled` 和 `installPath` 始终存在,其他仅在适用时出现。

315 315 

316| 字段 | 类型 | 描述 |316| 字段 | 类型 | 描述 |

317| :- | :- | :- |317| :- | :- | :- |

318| `id` | string | 安装为 `name@marketplace`,会话内 plugins 为 `name@inline`,skills-directory plugins 为 `name@skills-dir`,从 claude.ai 同步的 plugins 为 `name@synced` |318| `id` | string | 安装时为 `name@marketplace`,会话内插件为 `name@inline`,skills-directory 插件为 `name@skills-dir`,从 claude.ai 同步的插件为 `name@synced` |

319| `version` | string | 对于市场安装,[Claude Code 在安装时计算的](/docs/zh-CN/plugins/loading#versions-and-updates) 版本。对于会话内、skills-directory 或同步 plugin,清单的 `version`,或当它不声明任何内容时为 `unknown` |319| `version` | string | 对于市场安装,[Claude Code 在安装时计算的](/docs/zh-CN/plugins/loading#versions-and-updates) 版本。对于会话内、skills-directory 或同步插件,清单的 `version`,或当它不声明时为 `unknown` |

320| `scope` | string | 安装为 `user`、`project`、`local` 或 `managed`;skills-directory plugins 为 `user` 或 `project`;会话内 plugins 为 `session`;从 claude.ai 同步的 plugins 为 `synced` |320| `scope` | string | 安装时为 `user`、`project`、`local` 或 `managed`;skills-directory 插件为 `user` 或 `project`;会话内插件为 `session`;从 claude.ai 同步的插件为 `synced` |

321| `enabled` | boolean | plugin 在您的合并设置中是否启用 |321| `enabled` | boolean | 插件在你的合并设置中是否启用 |

322| `installPath` | string | plugin 加载的目录 |322| `installPath` | string | 插件加载的目录 |

323| `installedAt` | string | 安装的 ISO 时间戳。仅市场安装 |323| `installedAt` | string | 安装的 ISO 时间戳。仅市场安装 |

324| `lastUpdated` | string | 最后更新的 ISO 时间戳。仅市场安装 |324| `lastUpdated` | string | 最后更新的 ISO 时间戳。仅市场安装 |

325| `projectPath` | string | 安装所属的项目。仅 `project` 和 `local` 作用域 |325| `projectPath` | string | 安装所属的项目。仅 `project` 和 `local` 作用域 |

326| `mcpServers` | object | plugin 的 MCP 服务器定义,当市场安装的 plugin 有任何时 |326| `mcpServers` | object | 插件的 MCP 服务器定义,当市场安装的插件有任何时 |

327| `errors` | array of strings | 加载错误,当 plugin 加载失败时 |327| `errors` | array of strings | 加载错误,当插件加载失败时 |

328| `notes` | array of strings | plugin 加载并工作时的创作警告 |328| `notes` | array of strings | 插件加载并工作的创作警告 |

329| `errorDetails` | array of objects | 每个 `errors` 条目一个对象,给出其诊断 `type` 和它引用的名称,例如 plugin、市场、服务器或文件。需要 Claude Code v2.1.268 或更高版本 |329| `errorDetails` | array of objects | 每个 `errors` 条目一个对象,给出其诊断 `type` 和它引用的名称,例如插件、市场、服务器或文件。需要 Claude Code v2.1.268 或更高版本 |

330| `noteDetails` | array of objects | 每个 `notes` 条目的相同详细对象。需要 Claude Code v2.1.268 或更高版本 |330| `noteDetails` | array of objects | 每个 `notes` 条目的相同详细对象。需要 Claude Code v2.1.268 或更高版本 |

331 331 

332使用 `--json --available`,Claude Code 打印一个对象而不是数组。其 `installed` 字段保存已安装 plugin 对象的数组,其 `available` 字段保存每个未安装市场 plugin 的一个对象,带有下面的字段。332使用 `--json --available` 时,Claude Code 打印一个对象而不是数组。其 `installed` 字段保存已安装插件对象的数组,其 `available` 字段保存每个未安装的市场插件的一个对象,带有下面的字段。

333 333 

334| 字段 | 类型 | 描述 |334| 字段 | 类型 | 描述 |

335| :- | :- | :- |335| :- | :- | :- |

336| `pluginId` | string | `name@marketplace` |336| `pluginId` | string | `name@marketplace` |

337| `name` | string | plugin 在市场中的名称 |337| `name` | string | 插件在市场中的名称 |

338| `marketplaceName` | string | 提供它的市场 |338| `marketplaceName` | string | 提供它的市场 |

339| `source` | string or object | 市场条目的 [source](/docs/zh-CN/plugins/marketplace-reference):相对路径为字符串,否则为对象 |339| `source` | string or object | 市场条目的 [source](/docs/zh-CN/plugins/marketplace-reference):相对路径为字符串,否则为对象 |

340| `description` | string | 条目的描述,当它有时 |340| `description` | string | 条目的描述,当它有时 |

341| `version` | string | 条目的版本,当它声明时 |341| `version` | string | 条目的版本,当它声明时 |

342| `installCount` | number | 安装计数,当 Claude Code 有 plugin 的计数时 |342| `installCount` | number | 安装计数,当 Claude Code 有插件的时 |

343 343 

344<h3 id="plugin-details">344<h3 id="plugin-details">

345 plugin details345 plugin details

346</h3>346</h3>

347 347 

348显示 plugin 的组件清单及其预计令牌成本。348显示插件的组件清单及其预计令牌成本。

349 349 

350plugin 必须被加载:已安装、在 skills 目录中找到,或在同一命令中使用 `--plugin-dir` 或 `--plugin-url` 传递。`<name>` 是 plugin `name` 或 `name@marketplace`。350插件必须被加载:已安装、在 skills 目录中找到,或在同一命令中使用 `--plugin-dir` 或 `--plugin-url` 传递。`<name>` 是插件 `name` 或 `name@marketplace`。

351 351 

352```bash theme={null}352```bash theme={null}

353claude plugin details <name>353claude plugin details <name>

354```354```

355 355 

356命令除了 `--help` 外不接受任何标志。356该命令除了 `--help` 外不接受标志。

357 357 

358显示已安装 plugin 的贡献:358显示已安装插件贡献的内容:

359 359 

360```bash theme={null}360```bash theme={null}

361claude plugin details formatter361claude plugin details formatter

362```362```

363 363 

364Claude Code 打印 plugin 的名称、版本、描述和源,然后是这些部分:364Claude Code 打印插件的名称、版本、描述和源,然后是这些部分:

365 365 

366* **`Component inventory`**:plugin 的 skills、agents、hooks、MCP 服务器和 LSP 服务器366* **`Component inventory`**:插件的 skills、agents、hooks、MCP 服务器和 LSP 服务器

367* **`Projected token cost`**:plugin 添加到每个会话的始终开启令牌367* **`Projected token cost`**:插件添加到每个会话的始终开启令牌

368* **`Per-component (rounded)`**:每个 skill、agent 和命令的始终开启和按调用估计。当 plugin 没有时省略368* **`Per-component (rounded)`**:每个 skill、agent 和命令的始终开启和按调用估计。当插件没有时省略

369 369 

370对于两个成本数字的含义,请参阅 [测量 plugin 成本和使用](/docs/zh-CN/plugins/measure)。370对于两个成本数字的含义,请参阅 [测量插件成本和使用](/docs/zh-CN/plugins/measure)。

371 371 

372对于未加载的 plugin,Claude Code 打印 ``Plugin "formatter" not found. Run `claude plugin list` to see installed plugins, or pass --plugin-dir <path> to load one from disk.`` 并退出 `1`。372对于未加载的插件,Claude Code 打印 ``Plugin "formatter" not found. Run `claude plugin list` to see installed plugins, or pass --plugin-dir <path> to load one from disk.`` 并退出 `1`。

373 373 

374<h3 id="plugin-prune">374<h3 id="plugin-prune">

375 plugin prune375 plugin prune

376</h3>376</h3>

377 377 

378删除自动安装的 [dependencies](/docs/zh-CN/plugins/dependencies),没有已安装的 plugin 需要。命令永远不会删除您自己安装的 plugin。`autoremove` 是 `prune` 的别名。378移除自动安装的 [依赖项](/docs/zh-CN/plugins/dependencies),没有已安装的插件需要。命令永远不会移除你自己安装的插件。`autoremove` 是 `prune` 的别名。

379 379 

380```bash theme={null}380```bash theme={null}

381claude plugin prune [options]381claude plugin prune [options]


384| 标志 | 描述 |384| 标志 | 描述 |

385| :- | :- |385| :- | :- |

386| `-s, --scope <scope>` | 在作用域处修剪:`user`、`project` 或 `local`。默认为 `user` |386| `-s, --scope <scope>` | 在作用域处修剪:`user`、`project` 或 `local`。默认为 `user` |

387| `--dry-run` | 列出将被删除的内容而不删除它 |387| `--dry-run` | 列出将被移除的内容而不移除它 |

388| `-y, --yes` | 跳过确认提示。当 stdin 或 stdout 不是 TTY 时需要 |388| `-y, --yes` | 跳过确认提示。当 stdin 或 stdout 不是 TTY 时需要 |

389 389 

390预览修剪将删除的内容:390预览修剪将移除的内容:

391 391 

392```bash theme={null}392```bash theme={null}

393claude plugin prune --dry-run393claude plugin prune --dry-run

394```394```

395 395 

396Claude Code 列出孤立的 dependencies 并以 `(dry run — nothing removed)` 结尾。当没有要删除的内容时,它打印以 `Nothing to prune` 开头的行。396Claude Code 列出孤立的依赖项并以 `(dry run — nothing removed)` 结尾。没有要移除的内容时,它打印以 `Nothing to prune` 开头的行。

397 397 

398不使用 `--dry-run`,命令仅在您在提示处确认或传递 `-y` 后删除孤立的 dependencies。398不使用 `--dry-run` 时,命令仅在你在提示处确认或传递 `-y` 后移除孤立的依赖项。

399 399 

400无论您在提示处的答案如何,退出代码都是 `0`。400无论你在提示处的答案如何,退出代码都是 `0`。

401 401 

402`prune` 的作用取决于是否附加了终端以及您是否传递了 `-y`:402`prune` 的作用取决于是否附加了终端以及你是否传递了 `-y`:

403 403 

404| 终端和标志 | 发生的情况 |404| 终端和标志 | 发生的情况 |

405| :- | :- |405| :- | :- |

406| 交互式终端,无 `-y` | 列出孤立的 dependencies 并询问 `Remove? [y/N]` |406| 交互式终端,无 `-y` | 列出孤立的依赖项并询问 `Remove? [y/N]` |

407| 任何终端,`-y` | 删除它们并打印 `Removed N auto-installed plugins: <names>` |407| 任何终端,`-y` | 移除它们并打印 `Removed N auto-installed plugins: <names>` |

408| 非 TTY stdin 或 stdout,无 `-y` | 打印列表和 ``Not a TTY — run `claude plugin prune -y` to remove.``,不删除任何内容 |408| 非 TTY stdin 或 stdout,无 `-y` | 打印列表并显示 ``Not a TTY — run `claude plugin prune -y` to remove.``,不移除任何内容 |

409 409 

410<h3 id="plugin-eval">410<h3 id="plugin-eval">

411 plugin eval411 plugin eval

412</h3>412</h3>

413 413 

414运行 plugin 的 [eval cases](/docs/zh-CN/plugin-evals) 并报告评分结果。需要 Claude Code v2.1.269 或更高版本。414运行插件的 [eval 案例](/docs/zh-CN/plugin-evals) 并报告评分结果。需要 Claude Code v2.1.269 或更高版本。

415 415 

416每个案例是一个提示加评分器。Claude Code 在仅加载目标 plugin 的隔离会话中多次运行它,默认情况下也不使用 plugin 运行,以便报告显示差异。416每个案例是一个提示加评分器。Claude Code 在隔离的会话中运行它多次,仅加载目标插件,默认情况下也不加载插件,所以报告显示差异。

417 417 

418有关案例格式、评分器、结果和 CI 使用,请参阅 [使用 evals 测试 plugins](/docs/zh-CN/plugin-evals)。418请参阅 [使用 evals 测试插件](/docs/zh-CN/plugin-evals) 了解案例格式、评分器、结果和 CI 使用。

419 419 

420```bash theme={null}420```bash theme={null}

421claude plugin eval [target] [options]421claude plugin eval [target] [options]

422```422```

423 423 

424可选的 `target` 默认为当前目录,采用以下任何形式:424可选的 `target` 默认为当前目录,并采用以下任何形式:

425 425 

426* plugin 目录426* 插件目录

427* 单个 `prompt.md` 或 `case.yaml` 文件427* 单个 `prompt.md` 或 `case.yaml` 文件

428* 已安装的 plugin,如 `name` 或 `name@marketplace`428* 已安装的插件作为 `name` 或 `name@marketplace`

429* `name@skills-dir`429* `name@skills-dir`

430 430 

431将目标放在 `--tag`、`--allow-tools` 和 `--json` 之前。这些选项中的每一个都将其后的单词作为其值,因此在其中一个之后写入的目标被读作标签、工具名称或 JSON 输出路径,而不是目标。431将目标放在 `--tag`、`--allow-tools` 和 `--json` 之前。这些选项中的每一个都将其后的单词作为其值,所以在其中一个之后写入的目标被读作标签、工具名称或 JSON 输出路径,而不是目标。

432 432 

433此表列出大多数运行使用的选项。运行 `claude plugin eval --help` 以获取完整集合,包括 `--case`、`--tag`、`--output-dir`、`--report`、`--allow-real-servers`、`--keep-temp` 和 `--verbose`。433此表列出大多数运行使用的选项。运行 `claude plugin eval --help` 以获取完整集合,包括 `--case`、`--tag`、`--output-dir`、`--report`、`--allow-real-servers`、`--keep-temp` 和 `--verbose`。

434 434 

435| 选项 | 描述 | 默认 |435| 选项 | 描述 | 默认 |

436| :- | :- | :- |436| :- | :- | :- |

437| `--runs <n>` | 每个 [arm](/docs/zh-CN/plugin-evals#compare-against-a-no-plugin-baseline) 中每个案例的运行 | 每个案例的 `runs`,否则 3 |437| `--runs <n>` | 每个 [arm](/docs/zh-CN/plugin-evals#compare-against-a-no-plugin-baseline) 中每个案例的运行 | 每个案例的 `runs`,否则 3 |

438| `-j, --concurrency <n>` | 一次运行的代理会话,1 到 8。它们共享您的速率限制 | `1` |438| `-j, --concurrency <n>` | 一次运行的代理会话,1 到 8。它们共享你的速率限制 | `1` |

439| `--model <model>` | 被测试代理的模型 | 每个案例的 `model`,否则 `ANTHROPIC_MODEL`(如果设置),否则 Claude Code 的默认值 |439| `--model <model>` | 被测试代理的模型 | 每个案例的 `model`,否则 `ANTHROPIC_MODEL` 如果设置,否则 Claude Code 的默认值 |

440| `--judge-model <model>` | `llm` 和 `baseline` 评分器的模型 | 一个小的快速模型 |440| `--judge-model <model>` | `llm` 和 `baseline` 评分器的模型 | 一个小的快速模型 |

441| `--ablation <mode>` | `none` 或 `with-without`。请参阅 [与无 plugin 基线比较](/docs/zh-CN/plugin-evals#compare-against-a-no-plugin-baseline) | 当 plugin 解析时为 `with-without`,否则为 `none` |441| `--ablation <mode>` | `none` 或 `with-without`。请参阅 [与无插件基线比较](/docs/zh-CN/plugin-evals#compare-against-a-no-plugin-baseline) | 当插件解析时为 `with-without`,否则 `none` |

442| `--threshold <0..1>` | 如果任何案例评分低于此,退出 1 | `1.0` |442| `--threshold <0..1>` | 如果任何案例评分低于此,退出 1 | `1.0` |

443| `--max-cost-usd <usd>` | 一旦支出达到此值,在下一次运行前停止,退出 2,并报告部分结果 | 无限制 |443| `--max-cost-usd <usd>` | 一旦支出达到此值,在下一次运行前停止,退出 2,并报告部分结果 | 无限制 |

444| `--allow-tools <tools...>` | 授予超出只读集合的工具,例如 `Bash`、`Write`、`Edit` 或 `"mcp__plugin_<plugin>_<server>__*"`。请参阅 [授予工具](/docs/zh-CN/plugin-evals#grant-tools) | |444| `--allow-tools <tools...>` | 授予超出只读集合的工具,例如 `Bash`、`Write`、`Edit` 或 `"mcp__plugin_<plugin>_<server>__*"`。请参阅 [授予工具](/docs/zh-CN/plugin-evals#grant-tools) | |

445| `--scaffold` | 运行每个案例的 [`scaffold_script`](/docs/zh-CN/plugin-evals#add-setup-or-history-with-case-yaml) | 关闭 |445| `--scaffold` | 运行每个案例的 [`scaffold_script`](/docs/zh-CN/plugin-evals#add-setup-or-history-with-case-yaml) | 关闭 |

446| `--trust-plugin` | 跳过首次运行信任提示,用于 CI。请参阅 [运行可以访问的内容](/docs/zh-CN/plugin-evals#security) | 关闭 |446| `--trust-plugin` | 跳过首次运行信任提示,用于 CI。请参阅 [运行可以访问的内容](/docs/zh-CN/plugin-evals#security) | 关闭 |

447| `--mocks <mode>` | `record` 或 `off`。请参阅 [Mock MCP 服务器](/docs/zh-CN/plugin-evals#mock-mcp-servers) | `record` |447| `--mocks <mode>` | `record` 或 `off`。请参阅 [模拟 MCP 服务器](/docs/zh-CN/plugin-evals#mock-mcp-servers) | `record` |

448| `--eval-dir <dir>` | plugin 下方保存案例的目录 | 清单的 `experimental.evals`,否则 `evals` |448| `--eval-dir <dir>` | 插件下方保存案例的目录 | 清单的 `experimental.evals`,否则 `evals` |

449| `--json [path]` | 将 [结果文档](/docs/zh-CN/plugin-evals#json-result) 打印到 stdout,或将其写入 `.json` 路径 | |449| `--json [path]` | 将 [结果文档](/docs/zh-CN/plugin-evals#json-result) 打印到 stdout,或写入 `.json` 路径 | |

450| `--no-publish` | 保持 HTML 报告本地 | |450| `--no-publish` | 保持 HTML 报告本地 | |

451 451 

452退出代码报告运行如何结束。要在管道中对其进行操作,请参阅 [在 CI 中运行 evals](/docs/zh-CN/plugin-evals#run-evals-in-ci)。452退出代码报告运行如何结束。要在管道中对其进行操作,请参阅 [在 CI 中运行 evals](/docs/zh-CN/plugin-evals#run-evals-in-ci)。


454| 退出代码 | 含义 |454| 退出代码 | 含义 |

455| :- | :- |455| :- | :- |

456| `0` | 每个案例都满足阈值 |456| `0` | 每个案例都满足阈值 |

457| `1` | 失败的案例、加载错误或不受信任的 plugin 目录 |457| `1` | 失败的案例、加载错误或不受信任的插件目录 |

458| `2` | 部分运行 |458| `2` | 部分运行 |

459| `130` | 中断 |459| `130` | 中断 |

460| `143` | 终止 |460| `143` | 终止 |


463 plugin eval init463 plugin eval init

464</h3>464</h3>

465 465 

466为当前目录中的 plugin 创建 eval 套件。需要 Claude Code v2.1.269 或更高版本。请参阅 [创建您的第一个 eval 套件](/docs/zh-CN/plugin-evals#create-your-first-eval-suite)。466为当前目录中的插件创建 eval 套件。需要 Claude Code v2.1.269 或更高版本。请参阅 [创建你的第一个 eval 套件](/docs/zh-CN/plugin-evals#create-your-first-eval-suite)。

467 467 

468```bash theme={null}468```bash theme={null}

469claude plugin eval init [name] [options]469claude plugin eval init [name] [options]

470```470```

471 471 

472在终端中,命令打开交互式 Claude Code 会话以进行创作访谈。在访谈中,Claude 执行以下操作:472从插件的根文件夹运行命令,即保存 `.claude-plugin/plugin.json` 或 skill 的 `SKILL.md` 的目录。要有意在另一个目录中搭建套件,传递 `--eval-dir`。

473 473 

4741. 读取 plugin474在终端中,命令打开交互式 Claude Code 会话进行创作访谈。在访谈中,Claude 执行以下操作:

4752. 询问您它应该做什么475 

4761. 读取插件

4772. 询问你它应该做什么

4763. 提议案例和评分器4783. 提议案例和评分器

4774. 写入案例文件4794. 写入案例文件

4785. 运行案例并与您一起查看评分,以检查评分器是否按您的方式评分4805. 运行案例并与你一起查看评分,以检查评分器是否按你的方式评分

479 481 

480使用 `--bare` 或没有终端,命令改为写入空白单案例模板。当 Claude 从 Claude Code 会话内运行命令时,命令打印该会话要遵循的访谈说明,而不是写入模板。482使用 `--bare` 或没有终端时,命令改为写入空白单案例模板。当 Claude 从 Claude Code 会话内运行命令时,命令打印该会话要遵循的访谈说明,而不是写入模板。

481 483 

482可选的 `name` 是案例名称。它对于 `--bare` 或没有终端是必需的,因为命令为该案例写入空白模板。访谈不需要。484可选的 `name` 是案例名称。它与 `--bare` 或没有终端时需要,因为命令为该案例写入空白模板。案例名称以字母或数字开头,仅包含字母、数字、`.`、`_` 和 `-`。在每个平台上,命令也拒绝 Windows 无法存储的名称,例如 `con` 或以 `.` 结尾的名称。

483 485 

484命令接受这些选项:486命令接受这些选项:

485 487 


487| :- | :- | :- |489| :- | :- | :- |

488| `--bare` | 为 `<name>` 写入空白 `prompt.md` 和 `graders/criteria.md`,而不是运行访谈 | |490| `--bare` | 为 `<name>` 写入空白 `prompt.md` 和 `graders/criteria.md`,而不是运行访谈 | |

489| `-i, --interactive` | 需要访谈。没有终端时失败,而不是写入模板 | |491| `-i, --interactive` | 需要访谈。没有终端时失败,而不是写入模板 | |

490| `--eval-dir <dir>` | 当前目录下方写入案例的目录 | 清单的 `experimental.evals`,否则 `evals` |492| `--eval-dir <dir>` | 当前目录下写入案例的目录 | 清单的 `experimental.evals`,否则 `evals` |

491 493 

492<h3 id="plugin-tag">494<h3 id="plugin-tag">

493 plugin tag495 plugin tag

494</h3>496</h3>

495 497 

496为 plugin 发布创建名为 `<name>--v<version>` 的带注释 git 标签。在标记之前,命令检查 plugin 的 `plugin.json` 和任何列出它的市场条目是否同意版本。498为插件发布创建名为 `<name>--v<version>` 的带注释 git 标签。在标记前,命令检查插件的 `plugin.json` 和任何列出它的市场条目在版本上是否一致。

497 499 

498有关何时标记发布,请参阅 [发布 plugin](/docs/zh-CN/plugins/publish)。500关于何时标记发布,请参阅 [发布插件](/docs/zh-CN/plugins/publish)。

499 501 

500```bash theme={null}502```bash theme={null}

501claude plugin tag [path] [options]503claude plugin tag [path] [options]

502```504```

503 505 

504`[path]` 是 plugin 目录,默认为当前目录。命令通过从该目录向上走到列出 plugin 的 `.claude-plugin/marketplace.json` 来查找市场条目。506`[path]` 是插件目录,默认为当前目录。命令通过从该目录向上走到列出插件的 `.claude-plugin/marketplace.json` 来找到市场条目。

505 507 

506| 标志 | 描述 |508| 标志 | 描述 |

507| :- | :- |509| :- | :- |

508| `--push` | 创建后将标签推送到 `--remote` |510| `--push` | 创建标签后推送到 `--remote` |

509| `--dry-run` | 打印将被标记的内容而不创建标签 |511| `--dry-run` | 打印将被标记的内容而不创建标签 |

510| `-f, --force` | 跳过脏工作树和标签已存在检查 |512| `-f, --force` | 跳过脏工作树和标签已存在检查 |

511| `-m, --message <msg>` | 标签注释消息。`%s` 代表版本。默认为 `<name> <version>` |513| `-m, --message <msg>` | 标签注释消息。`%s` 代表版本。默认为 `<name> <version>` |

512| `--remote <name>` | 使用 `--push` 推送到的远程。默认为 `origin` |514| `--remote <name>` | 使用 `--push` 推送到的远程。默认为 `origin` |

513 515 

514预览市场检出中 plugin 的标签:516预览市场检出中插件的标签:

515 517 

516```bash theme={null}518```bash theme={null}

517claude plugin tag plugins/formatter --dry-run519claude plugin tag plugins/formatter --dry-run


519 521 

520Claude Code 打印计划:522Claude Code 打印计划:

521 523 

522* plugin 名称524* 插件名称

523* 版本和它来自哪个文件525* 版本及其来自的文件

524* 匹配的市场条目,当有时526* 匹配的市场条目,当有时

525* 标签名称527* 标签名称

526* 它将运行的 `git tag` 和 `git push` 命令528* 它将运行的 `git tag` 和 `git push` 命令

527 529 

528不使用 `--dry-run`,Claude Code 打印 `Created tag formatter--v1.0.0` 和 `Pushed to origin` 或您自己运行的推送命令。如果推送失败,标签仍在本地创建,命令以错误退出。530不使用 `--dry-run` 时,Claude Code 打印 `Created tag formatter--v1.0.0` 并打印 `Pushed to origin` 或你自己运行的推送命令。如果推送失败,标签仍在本地创建,命令以错误退出。

529 531 

530当它无法安全标记时,命令退出 `1` 并打印原因。常见原因是:532当命令无法安全标记时,它退出 `1` 并打印原因。常见原因是:

531 533 

532* `plugin.json` 或市场条目中没有 `version`534* `plugin.json` 或市场条目中没有 `version`

533* 标签已存在535* 标签已存在


537 plugin validate539 plugin validate

538</h3>540</h3>

539 541 

540验证 plugin 清单、市场清单或目录中的 skills、agents 和命令,并以 CI 作业可以操作的代码退出。对于创建、测试和编辑工作流,请参阅 [创建 plugin](/docs/zh-CN/plugins/create)。对于验证器在每个清单中检查的内容,请参阅 [plugin 清单参考](/docs/zh-CN/plugins/manifest-reference) 和 [市场参考](/docs/zh-CN/plugins/marketplace-reference)。542验证插件清单、市场清单或目录中的 skills、agents 和命令,并以 CI 作业可以操作的代码退出。对于创建、测试和编辑工作流,请参阅 [创建插件](/docs/zh-CN/plugins/create)。对于验证器在每个清单中检查的内容,请参阅 [插件清单参考](/docs/zh-CN/plugins/manifest-reference) 和 [市场参考](/docs/zh-CN/plugins/marketplace-reference)。

541 543 

542```bash theme={null}544```bash theme={null}

543claude plugin validate <path> [options]545claude plugin validate <path> [options]


545 547 

546| 标志 | 描述 |548| 标志 | 描述 |

547| :- | :- |549| :- | :- |

548| `--strict` | 将警告视为错误,因此运行时容忍的未识别字段和缺失元数据失败。需要 Claude Code v2.1.145 或更高版本 |550| `--strict` | 将警告视为错误,所以运行时容忍的未识别字段和缺失元数据失败。需要 Claude Code v2.1.145 或更高版本 |

549| `--json` | 将验证报告输出为一个 JSON 对象,具有相同的退出代码。需要 Claude Code v2.1.259 或更高版本 |551| `--json` | 将验证报告输出为一个 JSON 对象,具有相同的退出代码。需要 Claude Code v2.1.259 或更高版本 |

550 552 

551在提交前验证 plugin:553在提交前验证插件:

552 554 

553```bash theme={null}555```bash theme={null}

554claude plugin validate ./my-plugin --strict556claude plugin validate ./my-plugin --strict


567 * 名为 `.claude` 的目录:其中的 `skills`、`agents` 和 `commands` 目录569 * 名为 `.claude` 的目录:其中的 `skills`、`agents` 和 `commands` 目录

568 * 任何其他目录:其 `.claude` 下的这三个目录570 * 任何其他目录:其 `.claude` 下的这三个目录

569 571 

570Claude Code 不跟随您命名的目录内的符号链接。它的作用取决于链接的位置:572Claude Code 不跟随你命名的目录内的符号链接。它的作用取决于链接的位置:

571 573 

572* **plugin 或 `.claude` 根下的链接 `skills`、`agents` 或 `commands` 目录**:Claude Code 警告其中的任何内容都未被读取。574* **插件或 `.claude` 根下的链接 `skills`、`agents` 或 `commands` 目录**:Claude Code 警告其中的任何内容都未被读取。

573* **`skills`、`agents` 或 `commands` 目录内的链接条目**:Claude Code 跳过它并警告,每个目录,它跳过了多少条目,会话会加载。575* **`skills`、`agents` 或 `commands` 目录内的链接条目**:Claude Code 跳过它并警告,每个目录,它跳过了多少条目,会话会加载。

574* **您命名的 `skills`、`agents` 或 `commands` 目录本身是符号链接,或其父 `.claude` 目录是**:Claude Code 报告错误并检查其中的任何内容。改为命名真实目录。576* **你命名的 `skills`、`agents` 或 `commands` 目录本身是符号链接,或其父 `.claude` 目录是**:Claude Code 报告错误并检查其中的任何内容。改为命名真实目录。

575 577 

576验证运行不读取几个文件:578少数文件不被验证运行读取:

577 579 

578* **plugin 根处的 `SKILL.md`**:当您针对 plugin 目录运行 `claude plugin validate` 时,Claude Code 不检查 plugin 根处的 `SKILL.md`580* **插件根处的 `SKILL.md`**:当你针对插件目录运行 `claude plugin validate` 时,Claude Code 不检查插件根处的 `SKILL.md`

579* **plugin 根处的 `CLAUDE.md`**:在 plugin 运行中,Claude Code 也警告 plugin 根处的 `CLAUDE.md`581* **插件根处的 `CLAUDE.md`**:在插件运行中,Claude Code 也警告插件根处的 `CLAUDE.md`

580* **市场运行中的 Plugin 文件**:从市场目录,Claude Code 不打开 plugins 的 skill、agent、command 或 hook 文件。要在这些文件中查找错误,验证每个 plugin 目录582* **市场运行中的插件文件**:从市场目录,Claude Code 不打开插件的 skill、agent、command 或 hook 文件,或它们捆绑的 MCP 服务器文件。要在这些文件中找到错误,验证每个插件目录

581 583 

582<h4 id="output-and-exit-codes">584<h4 id="output-and-exit-codes">

583 输出和退出代码585 输出和退出代码


587 589 

588| 退出代码 | 判决行 | 含义 |590| 退出代码 | 判决行 | 含义 |

589| :- | :- | :- |591| :- | :- | :- |

590| `0` | `Validation passed` 或 `Validation passed with warnings` | 清单加载。使用 `--strict`,也没有警告 |592| `0` | `Validation passed` 或 `Validation passed with warnings` | 清单加载。使用 `--strict` 时,也没有警告 |

591| `1` | `Validation failed` 或 `Validation failed (--strict treats warnings as errors)` | 错误,或 `--strict` 下的警告 |593| `1` | `Validation failed` 或 `Validation failed (--strict treats warnings as errors)` | 错误,或 `--strict` 下的警告 |

592| `2` | `Unexpected error during validation: <reason>` | 验证器本身失败,例如在不可读的路径上 |594| `2` | `Unexpected error during validation: <reason>` | 验证器本身失败,例如在不可读的路径上 |

593 595 

594使用 `--json`,Claude Code 将报告作为一个 JSON 对象写入 stdout,具有这些顶级字段:596使用 `--json` 时,Claude Code 将报告作为一个 JSON 对象写入 stdout,具有这些顶级字段:

595 597 

596* `success`:退出代码给出的相同判决598* `success`:退出代码给出的相同判决

597* `strict`:运行是否将警告视为错误599* `strict`:运行是否将警告视为错误

598* `target`:Claude Code 验证的解析路径600* `target`:Claude Code 验证的解析路径

599* `manifest`:清单自己的结果,或没有清单的运行为 `null`601* `manifest`:清单自己的结果,或对没有清单的运行为 `null`

600* `contents`:每个文件的结果,命名其 `file` 并携带 `errors`、`warnings` 和 `notes` 数组602* `contents`:每个文件的结果,命名其 `file` 并携带 `errors`、`warnings` 和 `notes` 数组

601 603 

602在退出 `2` 时,命令不向 stdout 写入任何内容。错误消息转到 stderr。604在退出 `2` 时,命令不向 stdout 写入任何内容。错误消息转到 stderr。


636| :- | :- | :- |638| :- | :- | :- |

637| `owner/repo`、`owner/repo#ref` 或 `owner/repo@ref` | `github` | 克隆 GitHub 仓库,给定时固定到 `ref`。所有者和仓库必须遵循 GitHub 命名规则 |639| `owner/repo`、`owner/repo#ref` 或 `owner/repo@ref` | `github` | 克隆 GitHub 仓库,给定时固定到 `ref`。所有者和仓库必须遵循 GitHub 命名规则 |

638| `user@host:path[.git][#ref]` | `git` | 通过 SSH 克隆 |640| `user@host:path[.git][#ref]` | `git` | 通过 SSH 克隆 |

639| `https://example.com/repo.git[#ref]` 或包含 `/_git/` 的 URL | `git` | 通过 HTTPS 克隆,包括 Azure DevOps URL |641| 以 `.git[#ref]` 结尾或包含 `/_git/` 的 `http://` 或 `https://` URL,例如 `https://example.com/repo.git` | `git` | 克隆 URL,包括 Azure DevOps URL |

640| `https://github.com/owner/repo` 或 `https://gitlab.com/namespace/project` | `git` | 在追加 `.git` 后通过 HTTPS 克隆 |642| `https://github.com/owner/repo` 或 `https://gitlab.com/namespace/project`,或相同的 `http://` 形式 | `git` | 在追加 `.git` 后克隆 URL |

641| 任何其他 `http://` 或 `https://` URL,包括没有 `.git` 的自托管 git 主机 | `url` | 将 URL 作为 `marketplace.json` 获取。要改为克隆那里的仓库,请追加 `.git` |643| 任何其他 `http://` 或 `https://` URL,包括没有 `.git` 的自托管 git 主机 | `url` | 将 URL 作为 `marketplace.json` 获取。要改为克隆那里的仓库,请追加 `.git` |

642| `./path`、`../path`、`/path` 或 `~/path` 到目录 | `directory` | 就地读取目录。在 Windows 上,`.\`、`..\` 和 `C:\` 形式也可以工作 |644| `./path`、`../path`、`/path` 或 `~/path` 到目录 | `directory` | 就地读取目录。在 Windows 上,`.\`、`..\` 和 `C:\` 形式也可以工作 |

643| 相同的路径形式,到 `.json` 文件 | `file` | 就地读取文件 |645| 相同的路径形式,到 `.json` 文件 | `file` | 就地读取文件 |


709从你的设置中移除市场的声明。`rm` 是 `remove` 的别名。711从你的设置中移除市场的声明。`rm` 是 `remove` 的别名。

710 712 

711<Warning>713<Warning>

712 当你从最后一个声明市场的作用域中移除市场时,Claude Code 也会删除其缓存并卸载你从中安装的每个插件。不使用 `--scope` 时,命令从每个作用域中移除声明。要在不丢失其插件的情况下刷新市场,请改为运行 `plugin marketplace update`。714 当你从最后一个声明市场的作用域中移除市场时,Claude Code 也会删除其缓存并卸载你从中安装的每个插件。它也会删除它们保存的[选项和密钥](/docs/zh-CN/plugins/manifest-reference#user-configuration)和[数据](/docs/zh-CN/plugins/components#path-variables-and-persistent-data)(如果可以的话)。

715 

716 要在不丢失其插件的情况下刷新市场,请改为运行 `plugin marketplace update`。

713</Warning>717</Warning>

714 718 

715```bash theme={null}719```bash theme={null}


728claude plugin marketplace remove your-marketplace732claude plugin marketplace remove your-marketplace

729```733```

730 734 

731Claude Code 打印 `Successfully removed marketplace: your-marketplace`,当你限定作用域时添加 `(from project settings)`。如果你限定作用域到不声明市场的设置文件,命令失败,显示 `Marketplace 'your-marketplace' is not declared in project settings. Omit --scope to remove it from all scopes.`735Claude Code 打印 `Successfully removed marketplace: your-marketplace`。当命令卸载插件时,输出在诸如 `Also uninstalled 2 plugins from this marketplace:` 的行下列出它们。要再次使用其中一个,请添加市场并重新安装插件。

736 

737如果你限定作用域到不声明市场的设置文件,命令失败,显示 `Marketplace 'your-marketplace' is not declared in project settings. Omit --scope to remove it from all scopes.`

732 738 

733<h3 id="plugin-marketplace-update">739<h3 id="plugin-marketplace-update">

734 plugin marketplace update740 plugin marketplace update


771| `/plugin list [--enabled\|--disabled]` | `ls` | 内联打印您的市场安装 plugins,带有版本、作用域和状态。过滤标志仅显示该状态。启用状态尚未应用的 plugin 标记为 `— run /reload-plugins to apply`。需要 Claude Code v2.1.163 或更高版本 |777| `/plugin list [--enabled\|--disabled]` | `ls` | 内联打印您的市场安装 plugins,带有版本、作用域和状态。过滤标志仅显示该状态。启用状态尚未应用的 plugin 标记为 `— run /reload-plugins to apply`。需要 Claude Code v2.1.163 或更高版本 |

772| `/plugin install` | `i` | 打开 **Discover** 选项卡 |778| `/plugin install` | `i` | 打开 **Discover** 选项卡 |

773| `/plugin install <plugin>` | `i` | 在 **Discover** 选项卡中打开 plugin 的详细信息。使用 `name@marketplace`,在该市场的列表中打开它们 |779| `/plugin install <plugin>` | `i` | 在 **Discover** 选项卡中打开 plugin 的详细信息。使用 `name@marketplace`,在该市场的列表中打开它们 |

780| `/plugin install <source>` | `i` | 当目标是路径、URL 或 `owner/repo` 时报告 [marketplace not found](/docs/zh-CN/plugins/troubleshooting#marketplace-not-found) 错误并不安装任何内容,即使是您已经添加的源。要从源安装,请参阅 [在一个命令中添加市场和安装](/docs/zh-CN/plugins/install#add-a-marketplace-and-install-in-one-command) |

774| `/plugin install <plugin> --marketplace <source>` | `i` | 当您尚未添加时添加 `<source>` 处的市场,要求您首先确认,然后打开 plugin 的详细信息。请参阅 [在一个命令中添加市场和安装](/docs/zh-CN/plugins/install#add-a-marketplace-and-install-in-one-command)。需要 Claude Code v2.1.275 或更高版本 |781| `/plugin install <plugin> --marketplace <source>` | `i` | 当您尚未添加时添加 `<source>` 处的市场,要求您首先确认,然后打开 plugin 的详细信息。请参阅 [在一个命令中添加市场和安装](/docs/zh-CN/plugins/install#add-a-marketplace-and-install-in-one-command)。需要 Claude Code v2.1.275 或更高版本 |

775| `/plugin manage` | | 打开 **Installed** 选项卡 |782| `/plugin manage` | | 打开 **Installed** 选项卡 |

776| `/plugin stats` | | 打开 **Stats** 选项卡,在 [`/skill-doctor`](/docs/zh-CN/skills#find-unused-skills) 可用的会话中。其他任何地方它在 **Discover** 选项卡上打开面板 |783| `/plugin stats` | | 打开 **Stats** 选项卡,在 [`/skill-doctor`](/docs/zh-CN/skills#find-unused-skills) 可用的会话中。其他任何地方它在 **Discover** 选项卡上打开面板 |


843| `--plugin-dir <path>` | 从目录或其 `.zip` 存档加载 plugin。plugins 的文件夹加载每个包含 `.claude-plugin/plugin.json` 的子文件夹。每个标志接受一个路径 | `claude --plugin-dir ./my-plugin --plugin-dir ./other.zip` |850| `--plugin-dir <path>` | 从目录或其 `.zip` 存档加载 plugin。plugins 的文件夹加载每个包含 `.claude-plugin/plugin.json` 的子文件夹。每个标志接受一个路径 | `claude --plugin-dir ./my-plugin --plugin-dir ./other.zip` |

844| `--plugin-url <url>` | 从 URL 获取 plugin `.zip` 存档。重复标志,或在一个引用值中传递多个 URL 空格分隔 | `claude --plugin-url "https://example.com/a.zip https://example.com/b.zip"` |851| `--plugin-url <url>` | 从 URL 获取 plugin `.zip` 存档。重复标志,或在一个引用值中传递多个 URL 空格分隔 | `claude --plugin-url "https://example.com/a.zip https://example.com/b.zip"` |

845 852 

846任一标志加载的 plugin 是会话内 plugin。`claude plugin list` 将其显示为 `<name>@inline`,作用域为 `session`,但仅当相同的标志在子命令前时。例如,运行 `claude --plugin-dir ./my-plugin plugin list`。853任一标志加载的 plugin 是会话内 plugin。[`claude plugin list`](#plugin-list) 将其显示为 `<name>@inline`,作用域为 `session`,但仅当相同的标志在子命令前时,例如 `claude --plugin-dir ./my-plugin plugin list`。该 plugin 在以 `Session-only plugins` 开头的标题下显示为 `<name>@inline`,`--json` 将其 `scope` 报告为 `session`。

847 854 

848当会话内 plugin 与已安装的 plugin 共享名称时,Claude Code 为该会话加载会话内副本并跳过已安装的副本。如果您使用 `claude plugin disable <name>@inline` 禁用了会话内副本,或托管设置锁定该 plugin 名称,已安装的副本改为加载。有关优先级,请参阅 [Plugin 加载参考](/docs/zh-CN/plugins/loading)。855当会话内 plugin 与已安装的 plugin 共享名称时,Claude Code 为该会话加载会话内副本并跳过已安装的副本。如果您使用 `claude plugin disable <name>@inline` 禁用了会话内副本,或托管设置锁定该 plugin 名称,已安装的副本改为加载。有关优先级,请参阅 [Plugin 加载参考](/docs/zh-CN/plugins/loading)。

849 856 

Details

676 676 

677要在插件中包含说明,将其写成 skill。Claude Code 不会在插件根目录加载 `CLAUDE.md`,`claude plugin validate` 会警告 `CLAUDE.md at the plugin root is not loaded as project context`。677要在插件中包含说明,将其写成 skill。Claude Code 不会在插件根目录加载 `CLAUDE.md`,`claude plugin validate` 会警告 `CLAUDE.md at the plugin root is not loaded as project context`。

678 678 

679如果规则必须每次都成立,例如 [阻止编辑受保护的文件](/docs/zh-CN/hooks-guide#block-edits-to-protected-files),将其添加到插件作为 [hook](#hooks) 而不是 skill。要在两者之间选择,参见 [比较相似功能](/docs/zh-CN/features-overview#compare-similar-features) 下的 Hook vs Skill 标签页。

680 

679对于 frontmatter 字段和支持文件,参见 [Skills](/docs/zh-CN/skills)。681对于 frontmatter 字段和支持文件,参见 [Skills](/docs/zh-CN/skills)。

680 682 

681<h3 id="commands">683<h3 id="commands">

Details

126 126 

127你分发的每个 plugin 都是 `marketplace.json` 的 `plugins` 数组中的一个对象。要添加第二个 plugin,请添加第二个对象。这些字段涵盖了大多数条目:127你分发的每个 plugin 都是 `marketplace.json` 的 `plugins` 数组中的一个对象。要添加第二个 plugin,请添加第二个对象。这些字段涵盖了大多数条目:

128 128 

129* `name`:人们在安装时在 `@` 之前输入的标识符。它不能包含空格。129* `name`:人们在安装时在 `@` 之前输入的标识符。[Plugin 条目](/docs/zh-CN/plugins/marketplace-reference#plugin-entries)给出了名称可以使用的字符。

130* `source`:Claude Code 从哪里获取 plugin。对于 marketplace 目录内的 plugin,写一个相对路径字符串,如[演练](#create-a-marketplace)中所示,或对于目录外的 plugin,写一个源对象。请参阅[选择 plugin 源](#choose-a-plugin-source)。130* `source`:Claude Code 从哪里获取 plugin。对于 marketplace 目录内的 plugin,写一个相对路径字符串,如[演练](#create-a-marketplace)中所示,或对于目录外的 plugin,写一个源对象。请参阅[选择 plugin 源](#choose-a-plugin-source)。

131* `description`:人们在 `/plugin` 中浏览你的 marketplace 时在 plugin 旁边看到的行。131* `description`:人们在 `/plugin` 中浏览你的 marketplace 时在 plugin 旁边看到的行。

132 132 


199 199 

200* JSON 语法错误,如 `json: Invalid JSON syntax: <reason>`200* JSON 语法错误,如 `json: Invalid JSON syntax: <reason>`

201* 缺少必需字段,例如 `owner: Invalid input`201* 缺少必需字段,例如 `owner: Invalid input`

202* 包含空格、非 ASCII 字符或模仿官方 Anthropic marketplace 形式的 marketplace 名称,例如 `claude-official`202* 违反[marketplace 参考](/docs/zh-CN/plugins/marketplace-reference#top-level-fields)中命名规则的 marketplace 或 plugin 名称

203* 包含 `..` 的相对 `source`203* 包含 `..` 的相对 `source`

204* 顶级或 plugin 条目中的未知字段,作为警告204* 顶级或 plugin 条目中的未知字段,作为警告

205* 每个相对路径 plugin 的 `plugin.json` 中的问题,如 `plugins[N] plugin.json → <field>: <message>`205* 每个相对路径 plugin 的 `plugin.json` 中的问题,如 `plugins[N] plugin.json → <field>: <message>`

Details

50 50 

51当用户将你的 marketplace 添加为裸 `marketplace.json` URL 时,Claude Code 仅下载该文件。你的 `plugins` 数组中的条目,其 `source` 是相对路径(如 `./plugins/formatter`),则在安装时会失败,出现 [`其 marketplace 条目路径不会停留在 marketplace 目录内`](/docs/zh-CN/plugins/troubleshooting#plugins-with-relative-paths-fail-in-url-based-marketplaces)。给每个条目一个可以独立获取的源,如 `github` 仓库或 `archive` URL,或在 git 仓库中托管 marketplace,以便 Claude Code 克隆整个树。51当用户将你的 marketplace 添加为裸 `marketplace.json` URL 时,Claude Code 仅下载该文件。你的 `plugins` 数组中的条目,其 `source` 是相对路径(如 `./plugins/formatter`),则在安装时会失败,出现 [`其 marketplace 条目路径不会停留在 marketplace 目录内`](/docs/zh-CN/plugins/troubleshooting#plugins-with-relative-paths-fail-in-url-based-marketplaces)。给每个条目一个可以独立获取的源,如 `github` 仓库或 `archive` URL,或在 git 仓库中托管 marketplace,以便 Claude Code 克隆整个树。

52 52 

53<h3 id="stay-within-the-download-limits-for-hosted-files">

54 保持托管文件的下载限制内

55</h3>

56 

57当用户将你的 marketplace 添加为 `marketplace.json` URL,或安装具有 [`archive`](/docs/zh-CN/plugins/marketplace-reference#archive-plugin-source) 源的条目时,Claude Code 从你的服务器下载文件。下载超过此表中的限制会失败,因此请调整你的文件大小并配置你的服务器以保持在限制内。

58 

59| 文件 | 最大下载 | 你的服务器响应时间 | 重定向 |

60| :- | :- | :- | :- |

61| 来自 `url` marketplace 源的 `marketplace.json` | 5 MiB | 10 秒 | 重定向到不同源必须使用 `https://` 且不能指向环回、链路本地或云元数据主机,因此从 `https://` 重定向到 `http://` 会失败 |

62| 来自 `archive` 插件源的 Zip | 256 MiB | 120 秒 | 最多五个。每个重定向目标必须使用 `https://` 且不能指向环回、链路本地或云元数据主机 |

63 

64重定向发送到不同源的请求不会携带你在 marketplace 源或插件条目上配置的任何标头。

65 

66存档下载后,当 zip 超过以下任何提取限制时,安装会失败:

67 

68* **条目**:100,000 个文件和目录

69* **文件大小**:任何一个文件 512 MiB,未压缩

70* **总大小**:1 GiB 未压缩

71* **压缩比**:未压缩内容是 zip 大小的 50 倍

72 

53<h3 id="edit-plugins-in-place-on-a-shared-directory">73<h3 id="edit-plugins-in-place-on-a-shared-directory">

54 在共享目录上就地编辑插件74 在共享目录上就地编辑插件

55</h3>75</h3>

Details

121 121 

122在您的终端中,插件仅在您使用 claude.ai 账户登录的会话中同步。122在您的终端中,插件仅在您使用 claude.ai 账户登录的会话中同步。

123 123 

124Claude Code 在这些终端会话中既不下载也不加载同步插件,即使您使用 `/login` 登录后也是如此:

125 

126* 一个会话,其中 `ANTHROPIC_AUTH_TOKEN`、`CLAUDE_CODE_OAUTH_TOKEN` 或 `apiKeyHelper` 脚本提供凭证来代替该登录

127* 一个不[从 Anthropic 获取功能标志](/docs/zh-CN/env-vars#features-that-need-feature-flag-fetching)的会话,例如您设置 `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` 的会话

128* 一个处于[裸模式](/docs/zh-CN/headless#start-faster-with-bare-mode)的会话或您使用 `--safe-mode` 启动的会话

129* 一个您使用[`--setting-sources`](/docs/zh-CN/cli-reference#cli-flags)列表启动的会话,该列表遗漏了 `user`

130 

124如果您在早期版本的 Claude Code 上登录,该登录不会覆盖插件,直到 Claude Code 在后台续期。要更快获得访问权限,请再次运行 `/login`。插件同步然后在下次启动 Claude Code 时开始。131如果您在早期版本的 Claude Code 上登录,该登录不会覆盖插件,直到 Claude Code 在后台续期。要更快获得访问权限,请再次运行 `/login`。插件同步然后在下次启动 Claude Code 时开始。

125 132 

126<h4 id="control-which-synced-plugins-load">133<h4 id="control-which-synced-plugins-load">


190| `.trash/` | claude.ai 同步删除的插件,例如在您在 claude.ai 上关闭一个或停止同步后 |197| `.trash/` | claude.ai 同步删除的插件,例如在您在 claude.ai 上关闭一个或停止同步后 |

191| `installed_plugins.json` 和 `known_marketplaces.json` | Claude Code 已安装的内容和已获取的市场的记录,在[检查插件达到的阶段](#check-which-stage-a-plugin-reached)下描述。[托管在 claude.ai 上的市场](/docs/zh-CN/plugins/install#add-from-claude-ai)改为记录在 `known_marketplaces_claudeai.json` 中 |198| `installed_plugins.json` 和 `known_marketplaces.json` | Claude Code 已安装的内容和已获取的市场的记录,在[检查插件达到的阶段](#check-which-stage-a-plugin-reached)下描述。[托管在 claude.ai 上的市场](/docs/zh-CN/plugins/install#add-from-claude-ai)改为记录在 `known_marketplaces_claudeai.json` 中 |

192| `flagged-plugins.json` | Claude Code 卸载的插件,因为其市场将其除名。它们出现在 `/plugin` 的 **Flagged** 部分;请参阅[托管市场](/docs/zh-CN/plugins/host-marketplace) |199| `flagged-plugins.json` | Claude Code 卸载的插件,因为其市场将其除名。它们出现在 `/plugin` 的 **Flagged** 部分;请参阅[托管市场](/docs/zh-CN/plugins/host-marketplace) |

200| `installed_plugins.set-aside.<date>.<hash>.json` 和 `installed_plugins.unreadable.<date>.<hash>.kept` | Claude Code 在删除任何版本的 Claude Code 都无法使用的安装记录或重建不可读的 `installed_plugins.json` 之前保留的日期副本。请参阅[恢复说明](/docs/zh-CN/plugins/troubleshooting#installed-plugins-json-could-not-be-read-and-was-rebuilt)。它们按照 [`cleanupPeriodDays`](/docs/zh-CN/settings-reference#cleanupperioddays) 计划老化 |

193 201 

194因为 `${CLAUDE_PLUGIN_ROOT}` 指向版本目录,插件的根路径随每个版本更改。改为在 `${CLAUDE_PLUGIN_DATA}` 中保留插件的持久文件。202因为 `${CLAUDE_PLUGIN_ROOT}` 指向版本目录,插件的根路径随每个版本更改。改为在 `${CLAUDE_PLUGIN_DATA}` 中保留插件的持久文件。

195 203 

Details

48* **社区 marketplace 名称**:`claude-community`、`claude-plugins-community` 和 `healthcare`。保留规则与官方名称相同。48* **社区 marketplace 名称**:`claude-community`、`claude-plugins-community` 和 `healthcare`。保留规则与官方名称相同。

49* **插件目录名称**:`anthropic-plugin-directory` 和 `claude-plugin-directory`。保留规则与官方名称相同。49* **插件目录名称**:`anthropic-plugin-directory` 和 `claude-plugin-directory`。保留规则与官方名称相同。

50* **冒充官方 marketplace 的名称**:名称如 `official-claude-plugins` 或 `claude-plugins-v2`,以及任何包含非 ASCII 字符的名称。错误是 `Marketplace name impersonates an official Anthropic/Claude marketplace`。名称中的控制或双向格式化字符也会报告 `Marketplace name cannot contain control or bidirectional-formatting characters`。已在这样的名称下注册的 marketplace 停止加载,连同其插件。50* **冒充官方 marketplace 的名称**:名称如 `official-claude-plugins` 或 `claude-plugins-v2`,以及任何包含非 ASCII 字符的名称。错误是 `Marketplace name impersonates an official Anthropic/Claude marketplace`。名称中的控制或双向格式化字符也会报告 `Marketplace name cannot contain control or bidirectional-formatting characters`。已在这样的名称下注册的 marketplace 停止加载,连同其插件。

51* <span id="reserved-name-spellings" />**保留名称的另一种拼写**:与保留名称仅在尾部点或用除下划线以外的符号代替连字符的名称,因此 `claude.code.plugins` 计为 `claude-code-plugins`。`claude plugin validate` 接受这样的名称;添加 marketplace 失败,错误为 [`is another spelling of "<reserved>", a reserved marketplace name`](/docs/zh-CN/errors#marketplace-name-is-another-spelling-of-a-reserved-name),已在一个下注册的 marketplace 停止加载。此检查需要 Claude Code v2.1.280 或更高版本。51* <span id="reserved-name-spellings" />**保留名称的另一种拼写**:与保留名称仅在尾部点或用除下划线以外的符号代替连字符的名称,因此 `claude.code.plugins` 计为 `claude-code-plugins`。添加 marketplace 失败,错误为 [`is another spelling of "<reserved>", a reserved marketplace name`](/docs/zh-CN/errors#marketplace-name-is-another-spelling-of-a-reserved-name),已在一个下注册的 marketplace 停止加载。此检查需要 Claude Code v2.1.280 或更高版本。

52* **Claude Code 用于不来自 marketplace 的插件的名称**:`inline` 用于使用 [`--plugin-dir`](/docs/zh-CN/cli-reference) 加载的插件,`builtin` 用于内置插件,`skills-dir` 用于从 [`.claude/skills/`](/docs/zh-CN/skills) 自动加载的插件,`synced` 用于从你的 claude.ai 账户同步的插件。`claude-plugin-test` 也被保留。`skills-dir` 也显示为 `{"source": "skills-dir"}`,在 `strictKnownMarketplaces` 和 `blockedMarketplaces` 中,如 [仅在策略列表中有效的源值](#source-values-valid-only-in-policy-lists) 下所述。52* **Claude Code 用于不来自 marketplace 的插件的名称**:`inline` 用于使用 [`--plugin-dir`](/docs/zh-CN/cli-reference) 加载的插件,`builtin` 用于内置插件,`skills-dir` 用于从 [`.claude/skills/`](/docs/zh-CN/skills) 自动加载的插件,`synced` 用于从你的 claude.ai 账户同步的插件。`claude-plugin-test` 也被保留。`skills-dir` 也显示为 `{"source": "skills-dir"}`,在 `strictKnownMarketplaces` 和 `blockedMarketplaces` 中,如 [仅在策略列表中有效的源值](#source-values-valid-only-in-policy-lists) 下所述。

53* **`npm`、`pip`、`uv`、`cargo`、`github` 和 `gh`**:以任何大小写保留。此检查需要 Claude Code v2.1.275 或更高版本。53* **`npm`、`pip`、`uv`、`cargo`、`github` 和 `gh`**:以任何大小写保留。此检查需要 Claude Code v2.1.275 或更高版本。

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


63 63 

64| 字段 | 类型 | 描述 |64| 字段 | 类型 | 描述 |

65| :- | :- | :- |65| :- | :- | :- |

66| `name` | string | Marketplace 标识符。没有空格、控制字符或双向格式化字符,没有 `/` 或 `\`,没有 `..`,不是 `.`。请参阅 [保留名称](#reserved-names)。用户在安装插件时在 `@` 后键入它 |66| `name` | string | Marketplace 标识符:字母、数字、`.`、`_` 和 `-`,以字母或数字开头,没有 `..`。它形成从 marketplace 安装的每个 [plugin id](/docs/zh-CN/plugins/loading#find-where-a-plugin-came-from) 的 `@` 后面的部分,因此 `claude plugin validate` 会拒绝其他名称。请参阅 [保留名称](#reserved-names) |

67| `owner` | object | 维护者信息。`name` 是必需的;`email` 和 `url` 是可选的 |67| `owner` | object | 维护者信息。`name` 是必需的;`email` 和 `url` 是可选的 |

68| `plugins` | array | [插件条目](#plugin-entries)。每个条目单独验证,因此一个无效条目不会导致 marketplace 失败 |68| `plugins` | array | [插件条目](#plugin-entries)。每个条目单独验证,因此一个无效条目不会导致 marketplace 失败 |

69| `$schema` | string | JSON Schema URL 用于编辑器自动完成。在加载时忽略 |69| `$schema` | string | JSON Schema URL 用于编辑器自动完成。在加载时忽略 |


87 87 

88| 字段 | 类型 | 描述 |88| 字段 | 类型 | 描述 |

89| :- | :- | :- |89| :- | :- | :- |

90| `name` | string | 插件标识符,没有空格、控制字符或双向格式化字符。用户在安装时在 `@` 前键入它,即使插件自己的 `plugin.json` 设置了不同的 `name` |90| `name` | string | 插件标识符:字母、数字、`.`、`_` 和 `-`,以字母或数字开头。`claude plugin validate` 会拒绝其他名称,Claude Code 无法安装。用户在安装时在 `@` 前键入它,即使插件自己的 `plugin.json` 设置了不同的 `name` |

91| `source` | string or object | 从哪里获取插件。请参阅 [插件源](#plugin-sources) |91| `source` | string or object | 从哪里获取插件。请参阅 [插件源](#plugin-sources) |

92| `description` | string | 在 [`/plugin`](/docs/zh-CN/plugins/install) 列表和详情中显示 |92| `description` | string | 在 [`/plugin`](/docs/zh-CN/plugins/install) 列表和详情中显示 |

93| `version` | string | 插件的版本字符串。当 `plugin.json` 也设置 `version` 时,`plugin.json` 优先,`claude plugin validate` 警告。请参阅 [插件加载参考](/docs/zh-CN/plugins/loading) |93| `version` | string | 插件的版本字符串。当 `plugin.json` 也设置 `version` 时,`plugin.json` 优先,`claude plugin validate` 警告。请参阅 [插件加载参考](/docs/zh-CN/plugins/loading) |


280 archive plugin source280 archive plugin source

281</h3>281</h3>

282 282 

283`url` 必须使用 `https://`,不能指向环回、链接本地或云元数据主机。283`url` 必须使用 `https://`,不能指向环回、链接本地或云元数据主机。有关下载的大小、超时、重定向和提取限制,请参阅[保持在托管文件的下载限制内](/docs/zh-CN/plugins/host-marketplace#stay-within-the-download-limits-for-hosted-files)。

284 284 

285插件根可能在 zip 的顶部或下一个目录。285插件根可能在 zip 的顶部或下一个目录。

286 286 


385| :- | :- | :- | :- | :- | :- |385| :- | :- | :- | :- | :- | :- |

386| `url` | `url`、`headers`、`headersHelper` | 不匹配 git 形式的 `http://` 或 `https://` URL | 加载 | 允许相同的 URL | 阻止相同的 URL |386| `url` | `url`、`headers`、`headersHelper` | 不匹配 git 形式的 `http://` 或 `https://` URL | 加载 | 允许相同的 URL | 阻止相同的 URL |

387| `github` | `repo`、`ref`、`path`、`sparsePaths` | `owner/repo`、`owner/repo@ref` 或 `owner/repo#ref` | 加载 | 允许相同的 `repo`、`ref` 和 `path`。`repo` 可能是 `owner/*` | 阻止相同的,以及到相同存储库的 `git` URL |387| `github` | `repo`、`ref`、`path`、`sparsePaths` | `owner/repo`、`owner/repo@ref` 或 `owner/repo#ref` | 加载 | 允许相同的 `repo`、`ref` 和 `path`。`repo` 可能是 `owner/*` | 阻止相同的,以及到相同存储库的 `git` URL |

388| `git` | `url`、`ref`、`path`、`sparsePaths` | `user@host:path` URL,或以 `.git` 结尾、包含 `/_git/` 或命名 github.com 或 gitlab.com 存储库的 `https://` URL。`#ref` 固定 ref | 加载 | 允许相同的 URL、`ref` 和 `path` | 阻止相同的,以及相同 github.com 存储库的其他拼写 |388| `git` | `url`、`ref`、`path`、`sparsePaths` | `user@host:path` URL,或以 `.git` 结尾、包含 `/_git/` 或命名 github.com 或 gitlab.com 存储库的 `http://` 或 `https://` URL。`#ref` 固定 ref | 加载 | 允许相同的 URL、`ref` 和 `path` | 阻止相同的,以及相同 github.com 存储库的其他拼写 |

389| `npm` | `package` | 未产生 | 加载失败:`NPM marketplace sources not yet implemented` | 解析但不匹配任何内容,因为没有任何内容注册 `npm` marketplace | 解析但不匹配任何内容 |389| `npm` | `package` | 未产生 | 加载失败:`NPM marketplace sources not yet implemented` | 解析但不匹配任何内容,因为没有任何内容注册 `npm` marketplace | 解析但不匹配任何内容 |

390| `file` | `path` | `.json` 文件的路径 | 加载 | 允许相同的路径 | 阻止相同的路径 |390| `file` | `path` | `.json` 文件的路径 | 加载 | 允许相同的路径 | 阻止相同的路径 |

391| `directory` | `path` | 目录的路径 | 加载 | 允许相同的路径 | 阻止相同的路径 |391| `directory` | `path` | 目录的路径 | 加载 | 允许相同的路径 | 阻止相同的路径 |


402 402 

403| 字段 | 类型 | 描述 |403| 字段 | 类型 | 描述 |

404| :- | :- | :- |404| :- | :- | :- |

405| `url` | `url` | 指向 `marketplace.json` 文件的链接。Claude Code 仅下载该文件,因此 marketplace 的插件不能使用 [相对路径源](#relative-path-plugin-source) |405| `url` | `url` | 指向 `marketplace.json` 文件的链接。Claude Code 仅下载该文件,因此 marketplace 的插件不能使用 [相对路径源](#relative-path-plugin-source)。请参阅 [保持在托管文件的下载限制内](/docs/zh-CN/plugins/host-marketplace#stay-within-the-download-limits-for-hosted-files) 了解大小、超时和重定向限制 |

406| `url` | `git` | 要克隆的 git 存储库 |406| `url` | `git` | 要克隆的 git 存储库 |

407| `headers` | `url` | Claude Code 随获取发送的 HTTP 标头映射,用于经过身份验证的主机 |407| `headers` | `url` | Claude Code 随获取发送的 HTTP 标头映射,用于经过身份验证的主机 |

408| `headersHelper` | `url` | 打印标头的命令,其值太短暂而无法在 `headers` 中列出。需要 Claude Code v2.1.238 或更高版本。请参阅 [验证 archive 下载](/docs/zh-CN/plugins/host-marketplace#authenticate-archive-downloads) |408| `headersHelper` | `url` | 打印标头的命令,其值太短暂而无法在 `headers` 中列出。需要 Claude Code v2.1.238 或更高版本。请参阅 [验证 archive 下载](/docs/zh-CN/plugins/host-marketplace#authenticate-archive-downloads) |


469 469 

470以条目索引和 `plugin.json →` 为前缀的消息,例如 `plugins[2] plugin.json →`,涉及该插件自己的文件。[`claude plugin validate` 报告错误](/docs/zh-CN/plugins/troubleshooting#claude-plugin-validate-reports-errors) 列出这些消息及其修复。470以条目索引和 `plugin.json →` 为前缀的消息,例如 `plugins[2] plugin.json →`,涉及该插件自己的文件。[`claude plugin validate` 报告错误](/docs/zh-CN/plugins/troubleshooting#claude-plugin-validate-reports-errors) 列出这些消息及其修复。

471 471 

472提及 Claude Desktop 标志名称的警告,这些名称 Claude Code 接受但 Claude Desktop 拒绝,因为 Claude Desktop 的名称规则更严格。472提及 Claude Desktop 标志名称的警告,这些名称 Claude Desktop 拒绝。

473 473 

474该表将 marketplace 级别的消息映射到每个消息所涉及的字段。474该表将 marketplace 级别的消息映射到每个消息所涉及的字段。

475 475 


484| `Author name cannot be empty` | 错误 | `owner.name` |484| `Author name cannot be empty` | 错误 | `owner.name` |

485| `Plugin name cannot contain spaces. Use kebab-case (e.g., "my-plugin")` | 错误 | `plugins[i].name` |485| `Plugin name cannot contain spaces. Use kebab-case (e.g., "my-plugin")` | 错误 | `plugins[i].name` |

486| `Plugin name cannot contain control or bidirectional-formatting characters` | 错误 | `plugins[i].name` |486| `Plugin name cannot contain control or bidirectional-formatting characters` | 错误 | `plugins[i].name` |

487| `Claude Code cannot install plugins from marketplace "x". Each part of a plugin id (plugin@marketplace) may use only the letters a-z and A-Z, digits, ".", "_" and "-", and must start with a letter or digit. Change the marketplace's "name".` | 错误 | `name` |

488| `Claude Code cannot install plugin "x". Each part of a plugin id (plugin@marketplace) may use only the letters a-z and A-Z, digits, ".", "_" and "-", and must start with a letter or digit. Change this entry's "name".` | 错误 | `plugins[i].name` |

487| `Duplicate plugin name "x" found in marketplace` | 错误 | 两个条目共享一个 `name` |489| `Duplicate plugin name "x" found in marketplace` | 错误 | 两个条目共享一个 `name` |

488| `plugins.i.source: Invalid input` | 错误 | 该条目的 `source` 与任何类型都不匹配。请参阅 [Invalid input on a source](#invalid-input-on-a-source) |490| `plugins.i.source: Invalid input` | 错误 | 该条目的 `source` 与任何类型都不匹配。请参阅 [Invalid input on a source](#invalid-input-on-a-source) |

489| `plugins[i].source: Path contains "..": <path>` | 错误 | 转义 marketplace 根目录的相对 `source` |491| `plugins[i].source: Path contains "..": <path>` | 错误 | 转义 marketplace 根目录的相对 `source` |

Details

145 `Marketplace "<name>" not found`145 `Marketplace "<name>" not found`

146</h3>146</h3>

147 147 

148您在会话中运行了 `/plugin install <plugin>@<name>`,通常来自某人发送给您的安装行,Claude Code 报告它没有该名称的市场。148您在会话中运行了 `/plugin install`,Claude Code 报告它没有该名称的市场。两种形式的命令会到达此消息:

149 

150* **`/plugin install <plugin>@<name>`**:安装行,通常是某人发送给您的,命名了您未添加的市场。本条目的其余部分涵盖了查找和添加它。

151* **`/plugin install <source>` 带有路径、URL 或 `owner/repo`**:此形式报告消息而不是安装,即使对于您已添加的源也是如此。要在一个命令中从源安装,请参阅 [添加市场并在一个命令中安装](/docs/zh-CN/plugins/install#add-a-marketplace-and-install-in-one-command)。

149 152 

150如果名称以 `claudeai-` 开头,市场托管在 claude.ai 上,您可以从 shell 中使用 `claude plugin marketplace add --claudeai <name>` 按名称添加它。请参阅 [从 claude.ai 添加市场](/docs/zh-CN/plugins/install#add-from-claude-ai)。153如果名称以 `claudeai-` 开头,市场托管在 claude.ai 上,您可以从 shell 中使用 `claude plugin marketplace add --claudeai <name>` 按名称添加它。请参阅 [从 claude.ai 添加市场](/docs/zh-CN/plugins/install#add-from-claude-ai)。

151 154 


646 649 

647然后在您的会话中运行 `/reload-plugins`。**Errors** 选项卡条目消失,插件回到 **Installed** 下。650然后在您的会话中运行 `/reload-plugins`。**Errors** 选项卡条目消失,插件回到 **Installed** 下。

648 651 

652<h3 id="installed-plugins-json-holds-a-record-this-version-cannot-read">

653 `installed_plugins.json holds a record under "<id>" that this version of Claude Code cannot read`

654</h3>

655 

656消息以这些形式出现:

657 

658* **`claude plugin list`**:将其打印为 `Note:`

659* **`claude plugin install`、`uninstall` 和 `update`**:拒绝并显示 `Plugin "<name>" was not installed:`、`Plugin "<name>" was not uninstalled:` 或 `Plugin "<name>" was not updated:`,后跟相同的文本

660* **这三个命令中任何一个上的 `--json`**:结果行携带相同的 `message` 和 `failureCode: "install_records_unreadable"`

661* **多个这样的记录**:消息读作 `holds records under`

662* **整个文件声明此版本不知道的格式**:消息读作 `installed_plugins.json is in a format (version <N>) that this version of Claude Code does not know` 而不是

663 

664命名的记录在 `installed_plugins.json` 中是有效的 JSON,在有效的插件 id 下,但其字段对此版本不解析。最可能是另一个版本的 Claude Code 写了它,也许是更新的版本。

665 

666当记录在那里时,此版本不重写文件,所以记录不会丢失。

667 

668按顺序采取消息的选项:

669 

6701. 使用 `claude update` 更新 Claude Code。

6712. 如果您无法更新,请使用写入记录的 Claude Code 版本卸载命名的插件。

6723. 如果两者都没有帮助,请手动从 `installed_plugins.json` 删除记录,然后重新启动 Claude Code 或运行 `/reload-plugins`。

673 

674<h3 id="installed-plugins-json-could-not-be-read-and-was-rebuilt">

675 `installed_plugins.json could not be read and was rebuilt`

676</h3>

677 

678`claude plugin list` 打印此注释,带有保留文件的路径,名为 `installed_plugins.unreadable.<date>.<hash>.kept`,只要该文件位于 `installed_plugins.json` 旁边。

679 

680不是有效 JSON 的 `installed_plugins.json`,或不是插件列表的,无法说出您安装了什么。

681 

682打开 `.kept` 文件以查看旧文件记录的内容,并重新安装您缺少的插件。Claude Code 永远不会读回该文件,该文件在 [`cleanupPeriodDays`](/docs/zh-CN/settings-reference#cleanupperioddays) 计划上老化。

683 

684<h3 id="install-records-under-names-that-no-version-can-use">

685 `install records under names that no version of Claude Code can use were removed from installed_plugins.json`

686</h3>

687 

688`claude plugin list` 打印此注释,带有副本的路径,名为 `installed_plugins.set-aside.<date>.<hash>.json`,只要该副本位于 `installed_plugins.json` 旁边。注释以 `Nothing needs doing about these copies.` 结尾。

689 

690`installed_plugins.json` 中的记录位于不是有效插件 id 的键下,因此没有版本的 Claude Code 可以使用它。文件的其余部分正常加载。

691 

692Claude Code 将不可用的记录复制到 `.set-aside` 文件中并将其从列表中删除。Claude Code 永远不会读回副本,副本在 [`cleanupPeriodDays`](/docs/zh-CN/settings-reference#cleanupperioddays) 计划上老化。

693 

649<h3 id="a-plugin-you-disabled-still-loads">694<h3 id="a-plugin-you-disabled-still-loads">

650 `Disabled in ~/.claude/settings.json but still loads`695 `Disabled in ~/.claude/settings.json but still loads`

651</h3>696</h3>


981| `Path contains "..": <path>` 在 `plugins[N].source` 下 | 错误 | 使用相对于市场根的路径,不带 `..` 段。 |1026| `Path contains "..": <path>` 在 `plugins[N].source` 下 | 错误 | 使用相对于市场根的路径,不带 `..` 段。 |

982| `Marketplace name cannot contain control or bidirectional-formatting characters` | 错误 | 从名称中删除字符,例如转义或换行符。 |1027| `Marketplace name cannot contain control or bidirectional-formatting characters` | 错误 | 从名称中删除字符,例如转义或换行符。 |

983| `Plugin name cannot contain control or bidirectional-formatting characters` | 错误 | 从插件 `name` 中删除字符。 |1028| `Plugin name cannot contain control or bidirectional-formatting characters` | 错误 | 从插件 `name` 中删除字符。 |

1029| `Claude Code cannot install plugins from marketplace "<name>". Each part of a plugin id (plugin@marketplace) may use only the letters a-z and A-Z, digits, ".", "_" and "-", and must start with a letter or digit. Change the marketplace's "name".` | 错误 | 将市场重命名以符合消息所述的规则。 |

1030| `Claude Code cannot install plugin "<name>". Each part of a plugin id (plugin@marketplace) may use only the letters a-z and A-Z, digits, ".", "_" and "-", and must start with a letter or digit. Change this entry's "name".` | 错误 | 将条目重命名以符合消息所述的规则。 |

984| `Marketplace has no plugins defined` | 警告 | 至少添加一个条目到 `plugins`。 |1031| `Marketplace has no plugins defined` | 警告 | 至少添加一个条目到 `plugins`。 |

985| `No marketplace description provided` | 警告 | 添加顶级 `description`。 |1032| `No marketplace description provided` | 警告 | 添加顶级 `description`。 |

986| `Plugin name "<name>" is not kebab-case` 在 `plugins[N] plugin.json → name` 下 | 警告 | 重命名为小写字母、数字和连字符。Claude Code 接受其他形式,但 claude.ai 市场同步拒绝它们。 |1033| `Plugin name "<name>" is not kebab-case` 在 `plugins[N] plugin.json → name` 下 | 警告 | 重命名为小写字母、数字和连字符;claude.ai 市场同步需要该形式。 |

987| `Entry declares version "<a>" but <path>/plugin.json says "<b>"` | 警告 | 更新条目以匹配 `plugin.json`,这在安装时是权威的。 |1034| `Entry declares version "<a>" but <path>/plugin.json says "<b>"` | 警告 | 更新条目以匹配 `plugin.json`,这在安装时是权威的。 |

988| `Marketplace name "<name>" is reserved in Claude Desktop` | 警告 | 重命名市场。Claude Desktop 的托管市场同步拒绝任何大小写的 `org`、`org-provisioned` 和 `unknown`。 |1035| `Marketplace name "<name>" is reserved in Claude Desktop` | 警告 | 重命名市场。Claude Desktop 的托管市场同步拒绝任何大小写的 `org`、`org-provisioned` 和 `unknown`。 |

989| `Marketplace name "<name>" is not accepted by Claude Desktop` 或 `Plugin name "<name>" is not accepted by Claude Desktop` | 警告 | 重命名为最多 128 个字符的字母、数字、`.`、`_` 和 `-`,以字母或数字开头。 |1036| `Marketplace name "<name>" is not accepted by Claude Desktop` 或 `Plugin name "<name>" is not accepted by Claude Desktop` | 警告 | 重命名为最多 128 个字符的字母、数字、`.`、`_` 和 `-`,以字母或数字开头。 |

Details

412| - | - |412| - | - |

413| `DISABLE_PROMPT_CACHING` | 对所有模型禁用 |413| `DISABLE_PROMPT_CACHING` | 对所有模型禁用 |

414| `DISABLE_PROMPT_CACHING_HAIKU` | 仅对默认 Haiku 模型禁用 |414| `DISABLE_PROMPT_CACHING_HAIKU` | 仅对默认 Haiku 模型禁用 |

415| `DISABLE_PROMPT_CACHING_SONNET` | 仅对 Sonnet 禁用 |415| `DISABLE_PROMPT_CACHING_SONNET` | 仅对默认 Sonnet 模型禁用 |

416| `DISABLE_PROMPT_CACHING_OPUS` | 仅对 Opus 禁用 |416| `DISABLE_PROMPT_CACHING_OPUS` | 仅对默认 Opus 模型禁用 |

417| `DISABLE_PROMPT_CACHING_FABLE` | 仅对 Fable 禁用 |417| `DISABLE_PROMPT_CACHING_FABLE` | 仅对 Fable 禁用 |

418 418 

419`DISABLE_PROMPT_CACHING_HAIKU` 适用于默认 Haiku 模型,即 `haiku` 别名解析到的模型。它在该模型运行的任何地方禁用缓存,包括当它是您的主模型时的主对话。覆盖主对话需要 Claude Code v2.1.283 或更高版本。419`DISABLE_PROMPT_CACHING_HAIKU` 适用于默认 Haiku 模型,即 `haiku` 别名解析到的模型。它在该模型运行的任何地方禁用缓存,包括当它是您的主模型时的主对话。覆盖主对话需要 Claude Code v2.1.283 或更高版本。


422 422 

423您固定为主模型的不同 Haiku 版本保持缓存;设置 `DISABLE_PROMPT_CACHING` 以禁用其缓存。423您固定为主模型的不同 Haiku 版本保持缓存;设置 `DISABLE_PROMPT_CACHING` 以禁用其缓存。

424 424 

425`DISABLE_PROMPT_CACHING_SONNET` 和 `DISABLE_PROMPT_CACHING_OPUS` 分别适用于 `sonnet` 或 `opus` 别名解析到的模型。如果您将任何其他 Sonnet 或 Opus 模型 ID 设置为主模型,该模型保持缓存。例如,`claude-sonnet-5` 上的会话保持缓存,而 `sonnet` 解析到 `claude-sonnet-5-5`。要禁用该模型的缓存,请设置 `DISABLE_PROMPT_CACHING`。

426 

425要在整个组织中设置缓存策略,请将这些或[TTL 变量](#cache-lifetime)中的任何一个放在[托管设置](/docs/zh-CN/managed-settings)的 `env` 块中。对于正常使用,保持缓存启用。427要在整个组织中设置缓存策略,请将这些或[TTL 变量](#cache-lifetime)中的任何一个放在[托管设置](/docs/zh-CN/managed-settings)的 `env` 块中。对于正常使用,保持缓存启用。

426 428 

427<h2 id="related-resources">429<h2 id="related-resources">

remote-control.md +37 −38

Details

48 claude remote-control48 claude remote-control

49 ```49 ```

50 50 

51 在您接受远程控制的一次性确认之前,`claude remote-control` 会解释它的作用并在启动服务器之前询问 `Enable Remote Control? (y/n)`。回答 `y` 以接受并启动服务器。如果您拒绝,Claude Code 将退出而不启动服务器,并在您下次运行该命令时再次询问。51 在您接受远程控制的一次性确认之前,`claude remote-control` 会解释它的作用,并在启动服务器之前询问 `Enable Remote Control? (y/n)`。回答 `y` 以接受并启动服务器。如果您拒绝,Claude Code 将退出而不启动服务器,并在您下次运行该命令时再次询问。

52 52 

53 该进程在您的终端中以服务器模式保持运行,等待远程连接。它显示一个会话 URL,您可以使用该 URL 从[另一台设备连接](#connect-from-another-device),您可以按空格键显示 QR 码以从您的手机快速访问。当远程会话处于活动状态时,终端显示连接状态和工具活动。53 该进程在您的终端中以服务器模式保持运行,等待远程连接。它显示一个会话 URL,您可以使用该 URL 从[另一台设备连接](#connect-from-another-device),您可以按空格键显示 QR 码以便从手机快速访问。当远程会话处于活动状态时,终端显示连接状态和工具活动。

54 54 

55 可用标志:55 在 `remote-control` 之后传递以下任何标志:

56 56 

57 | 标志 | 描述 |57 | 标志 | 描述 |

58 | - | - |58 | - | - |

59 | `--name "My Project"` | 设置自定义会话标题,在 claude.ai/code 的会话列表中可见。 |59 | `--name "My Project"` | 设置自定义会话标题,在 claude.ai/code 的会话列表中可见。 |

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

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

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

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

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

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

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

67 | `--chrome` / `--no-chrome` | 在服务器创建的会话中打开或关闭 [Chrome 集成](/docs/zh-CN/chrome),以便 Claude 可以在您从另一台设备工作时在您的机器上使用 Chrome。没有任何标志,服务器预创建的会话和您从 claude.ai/code 或 Claude 应用启动的任何会话都以 Chrome 关闭开始,即使您[默认启用了 Chrome](/docs/zh-CN/chrome#enable-chrome-by-default)。服务器为您的[项目](/docs/zh-CN/claude-projects)线程之一启动的会话改为遵循该设置,除非在 `bypassPermissions` 模式下。需要 Claude Code v2.1.273 或更高版本。 |67 | `--chrome` / `--no-chrome` | 在服务器创建的会话中打开或关闭 [Chrome 集成](/docs/zh-CN/chrome),以便 Claude 可以在您从另一台设备工作时在您的机器上使用 Chrome。如果没有任一标志,服务器预创建的会话和您从 claude.ai/code 或 Claude 应用自己启动的任何会话都以 Chrome 关闭开始,即使您[默认启用了 Chrome](/docs/zh-CN/chrome#enable-chrome-by-default)。服务器为您的[项目](/docs/zh-CN/claude-projects)线程之一启动的会话改为遵循该设置,除非在 `bypassPermissions` 模式下。需要 Claude Code v2.1.273 或更高版本。 |

68 | `-d`, `--debug[=<filter>]` | 为服务器打开调试日志记录,可选择按类别过滤。仅以 `=` 形式传递过滤器,例如 `--debug=api,hooks`。需要 Claude Code v2.1.282 或更高版本。 |68 | `-d`, `--debug[=<filter>]` | 为服务器打开调试日志记录,可选择按类别过滤。仅以 `=` 形式传递过滤器,例如 `--debug=api,hooks`。需要 Claude Code v2.1.282 或更高版本。 |

69 | `--debug-file <path>` | 将调试日志写入给定文件。 |69 | `--debug-file <path>` | 将调试日志写入给定文件。 |

70 | `--verbose` | 显示详细的连接和会话日志。 |70 | `--verbose` | 显示详细的连接和会话日志。 |

71 | `--sandbox` / `--no-sandbox` | 启用或禁用[沙箱](/docs/zh-CN/sandboxing)以进行文件系统和网络隔离。默认关闭。 |

72 71 

73 在 `remote-control` 之后给出这些标志。72 如果您在 `remote-control` 之前传递全局 `claude` 标志,或包装脚本添加了一个,Claude Code 不会将该标志转移到服务器创建的会话。Claude Code 仅在已知删除该标志不会改变这些会话可以执行的操作时才允许该标志通过,例如 `--verbose` 或 `--model`。对于任何其他标志,例如 `--settings`,Claude Code [拒绝启动](/docs/zh-CN/errors#not-carried-over-to-the-sessions-remote-control-starts)并命名要删除的标志。

74 73 

75 如果您在 `remote-control` 之前传递全局 `claude` 标志,或者包装脚本添加了一个,Claude Code 不会将该标志转移到服务器创建的会话。Claude Code 仅在已知删除该标志不会改变这些会话可以执行的操作时才允许该标志通过,例如 `--verbose` 或 `--model`。对于任何其他标志,例如 `--settings`,Claude Code [拒绝启动](/docs/zh-CN/errors#not-carried-over-to-the-sessions-remote-control-starts)并命名要删除的标志。74 要对服务器启动的会话进行沙箱处理,请在设置文件中打开[沙箱](/docs/zh-CN/sandboxing)。

76 75 

77 Claude Code 在打印帮助之前检查远程控制资格,因此当您未使用符合条件的帐户登录时,`claude remote-control --help` 返回错误而不是此标志列表。76 Claude Code 在打印帮助之前检查远程控制资格,因此当您未使用符合条件的帐户登录时,`claude remote-control --help` 返回错误而不是此标志列表。

78 </Tab>77 </Tab>


84 claude --remote-control83 claude --remote-control

85 ```84 ```

86 85 

87 可选择为会话传递一个名称:86 可选择为会话传递名称:

88 87 

89 ```bash theme={null}88 ```bash theme={null}

90 claude --remote-control "My Project"89 claude --remote-control "My Project"

91 ```90 ```

92 91 

93 这为您提供了一个完整的交互式会话在您的终端中,您也可以从 claude.ai 或 Claude 应用远程控制。与 `claude remote-control`(服务器模式)不同,您可以在本地输入消息,同时会话也可以远程使用。92 这为您提供了一个完整的交互式会话在您的终端中,您也可以从 claude.ai 或 Claude 应用远程控制。与 `claude remote-control`(服务器模式)不同,您可以在会话也可远程使用时在本地输入消息。

94 </Tab>93 </Tab>

95 94 

96 <Tab title="从现有会话">95 <Tab title="从现有会话">


100 /remote-control99 /remote-control

101 ```100 ```

102 101 

103 传递一个名称作为参数以设置自定义会话标题:102 传递名称作为参数以设置自定义会话标题:

104 103 

105 ```text theme={null}104 ```text theme={null}

106 /remote-control My Project105 /remote-control My Project

107 ```106 ```

108 107 

109 这启动一个远程控制会话,该会话继承您当前的对话历史。108 这启动一个远程控制会话,该会话延续您当前的对话历史。

110 109 

111 在您接受远程控制的一次性确认之前,在 `/remote-control` 连接之前会出现一个对话框。选择**启用远程控制**以接受并连接。如果您选择**算了**或按 Esc,Claude Code 不会连接,并在您下次运行 `/remote-control` 时再次询问。110 在您接受远程控制的一次性确认之前,在 `/remote-control` 连接之前会出现一个对话框。选择**启用远程控制**以接受并连接。如果您选择**算了**或按 Esc,Claude Code 不会连接,并在您下次运行 `/remote-control` 时再次询问。

112 111 

113 此命令不支持 `--verbose`、`--sandbox` 和 `--no-sandbox` 标志。112 `--verbose` 标志不适用于此命令。

114 </Tab>113 </Tab>

115 114 

116 <Tab title="VS Code">115 <Tab title="VS Code">


120 /remote-control119 /remote-control

121 ```120 ```

122 121 

123 当远程控制打开时,Claude Code 在提示框页脚中显示**远程控制**指示器。会话连接后,单击指示器直接转到会话,或在 [claude.ai/code](https://claude.ai/code) 的会话列表中找到它。Claude Code 也会在对话中发布会话 URL。要断开连接,再次运行 `/remote-control`。122 当远程控制打开时,Claude Code 在提示框页脚中显示**远程控制**指示器。会话连接后,单击指示器直接转到会话,或在 [claude.ai/code](https://claude.ai/code) 的会话列表中找到它。Claude Code 还在对话中发布会话 URL。要断开连接,再次运行 `/remote-control`。

124 123 

125 与 CLI 不同,VS Code 命令不接受名称参数或显示 QR 码。会话标题从您的对话历史或第一个提示派生。124 与 CLI 不同,VS Code 命令不接受名称参数或显示 QR 码。会话标题从您的对话历史或第一个提示派生。

126 </Tab>125 </Tab>


142 检查连接状态141 检查连接状态

143</h3>142</h3>

144 143 

145在交互式会话中,当远程控制已连接时,终端显示一个 `/rc active` 指示器,该指示器链接到 claude.ai 上的会话。当终端太窄无法容纳它时,指示器被隐藏。要查看会话 URL 和 QR 码以[从另一台设备连接](#connect-from-another-device),再次运行 `/remote-control` 以打开状态面板。该面板还允许您断开远程控制,同时您的本地会话继续运行。144在交互式会话中,当远程控制已连接时,终端显示一个 `/rc active` 指示器,该指示器链接到 claude.ai 上的会话。当终端太窄无法容纳它时,指示器被隐藏。要查看会话 URL 和用于[从另一台设备连接](#connect-from-another-device)的 QR 码,再次运行 `/remote-control` 以打开状态面板。该面板还允许您断开远程控制,同时您的本地会话继续运行。

146 145 

147<span id="session-ended-elsewhere" />如果连接在交互式会话中失败,指示器会更改以显示失败,Claude Code 会在通知中显示原因并将其添加到对话中。运行 `/remote-control` 以重新连接,除非原因说会话在其他地方更改:146<span id="session-ended-elsewhere" />如果连接在交互式会话中失败,指示器会更改以显示失败,Claude Code 会在通知中显示原因并将其添加到对话中。运行 `/remote-control` 以重新连接,除非原因说会话在其他地方更改:

148 147 


157一旦远程控制会话处于活动状态,您有几种方式从另一台设备连接:156一旦远程控制会话处于活动状态,您有几种方式从另一台设备连接:

158 157 

159* **打开会话 URL** 在任何浏览器中直接转到 [claude.ai/code](https://claude.ai/code) 上的会话。158* **打开会话 URL** 在任何浏览器中直接转到 [claude.ai/code](https://claude.ai/code) 上的会话。

160* **扫描 QR 码** 显示在会话 URL 旁边,以在 Claude 应用中直接打开它。使用 `claude remote-control`,按空格键切换 QR 码显示。159* **扫描 QR 码** 显示在会话 URL 旁边,在 Claude 应用中直接打开它。使用 `claude remote-control`,按空格键切换 QR 码显示。

161* **打开 [claude.ai/code](https://claude.ai/code) 或 Claude 应用** 并在会话列表中按名称找到会话。在 Claude 移动应用中,点击导航中的**代码**以到达会话列表。远程控制会话在在线时显示带有绿色状态点的计算机图标。160* **打开 [claude.ai/code](https://claude.ai/code) 或 Claude 应用** 并在会话列表中按名称找到会话。在 Claude 移动应用中,点击导航中的**代码**以到达会话列表。远程控制会话在联机时显示带有绿色状态点的计算机图标。

162 161 

163当您连接时,设备显示会话已在后台运行的任何子代理和工作流。从设备停止其中一个,Claude Code 会停止您的机器上的该任务。162当您连接时,设备显示会话已在后台运行的任何子代理和工作流。从设备停止其中一个,Claude Code 会停止您机器上的该任务。

164 163 

165远程会话标题按以下顺序选择:164远程会话标题按以下顺序选择:

166 165 

1671. 您传递给 `--name`、`--remote-control` 或 `/remote-control` 的名称1661. 您传递给 `--name`、`--remote-control` 或 `/remote-control` 的名称

1682. 您使用 `/rename` 设置的标题1672. 您使用 `/rename` 设置的标题

1693. 现有对话历史中最后一条有意义的消息1683. 现有对话历史中最后一条有意义的消息

1704. 自动生成的名称,如 `myhost-graceful-unicorn`,其中 `myhost` 是您的机器主机名或您使用 `--remote-control-session-name-prefix` 设置的前缀1694. 自动生成的名称,如 `myhost-graceful-unicorn`,其中 `myhost` 是您机器的主机名或您使用 `--remote-control-session-name-prefix` 设置的前缀

171 170 

172如果您未设置显式名称,Claude Code 会在您发送提示后更新标题以反映您的提示。当您从 claude.ai 或 Claude 应用重命名会话时,Claude Code 也会更新 `claude --resume` 中显示的本地标题。171如果您未设置显式名称,Claude Code 会在您发送提示后更新标题以反映您的提示。当您从 claude.ai 或 Claude 应用重命名会话时,Claude Code 也会更新 `claude --resume` 中显示的本地标题。

173 172 

174如果您还没有 Claude 应用,请在 Claude Code 中运行 `/mobile` 以显示 QR 码以访问 [claude.ai/mobile](https://claude.ai/mobile),它会打开您手机的正确应用商店。173如果您还没有 Claude 应用,请在 Claude Code 内运行 `/mobile` 以显示 [claude.ai/mobile](https://claude.ai/mobile) 的 QR 码,该码会打开适合您手机的应用商店。

175 174 

176<h3 id="what-connected-devices-see">175<h3 id="what-connected-devices-see">

177 连接的设备看到的内容176 连接的设备看到的内容


179 178 

180连接的设备显示您终端中的对话。这些情况超出了普通消息:179连接的设备显示您终端中的对话。这些情况超出了普通消息:

181 180 

182* **压缩和 `/clear`**:当 Claude Code [压缩对话](/docs/zh-CN/context-window#what-survives-compaction)时,连接的设备显示进度,然后显示对话被压缩的位置。当您运行 `/clear` 时,对话也会在连接的设备上重置。181* **压缩和 `/clear`**:当 Claude Code [压缩对话](/docs/zh-CN/context-window#what-survives-compaction)时,连接的设备显示进度,然后显示对话被压缩的位置。当您运行 `/clear` 时,对话也在连接的设备上重置。

183* **使用 `/resume` 切换对话**:连接的设备不会接收切换到的对话的标题或早期历史,但双向的新消息进出您的终端中打开的任何对话。要再次从设备处理原始对话,请在您的终端中运行 `/resume` 并切换回它。182* **使用 `/resume` 切换对话**:连接的设备不接收切换到的对话的标题或早期历史,但双向的新消息进出您终端中打开的任何对话。要从设备再次处理原始对话,请在您的终端中运行 `/resume` 并切换回它。

184* **使用 `/teleport` 拉取会话**:当您使用 `/teleport` 将[云会话](/docs/zh-CN/claude-code-on-the-web#from-cloud-to-terminal)拉入您的终端时,连接的设备不会接收拉取的对话的早期历史。双向的新消息进出拉取的对话,该对话现在是您的终端中打开的对话。183* **使用 `/teleport` 拉取会话**:当您使用 `/teleport` 将[云会话](/docs/zh-CN/claude-code-on-the-web#from-cloud-to-terminal)拉入您的终端时,连接的设备不接收拉取的对话的早期历史。双向的新消息进出拉取的对话,该对话现在是您终端中打开的对话。

185* **来自您其他会话的消息**:使用[跨会话消息传递](/docs/zh-CN/cross-session-messaging),相同的连接在不同机器上的您自己的会话之间以及来自您的[云会话](/docs/zh-CN/claude-code-on-the-web)传递消息。184* **来自您其他会话的消息**:使用[跨会话消息传递](/docs/zh-CN/cross-session-messaging),相同的连接在您不同机器上的自己的会话之间以及来自您的[云会话](/docs/zh-CN/claude-code-on-the-web)传递消息。

186* **您的更改的差异**:当会话的目录在 git 存储库中时,连接的设备的差异窗格显示您的更改。在具有超过存储库默认分支的提交的分支上,窗格显示自分支从它分离以来的更改,包括您未提交的编辑。在默认分支本身上,或在不超过它的分支上,窗格仅显示您未提交的更改。185* **您的更改的差异**:当会话的目录在 git 存储库中时,连接的设备的差异窗格显示您的更改。在具有超过存储库默认分支的提交的分支上,窗格显示自分支从它分离以来的更改,包括您未提交的编辑。在默认分支本身上,或在不超过它的分支上,窗格仅显示您未提交的更改。

187* **模型**:当您从连接的设备选择[模型](/docs/zh-CN/model-config)时,Claude Code 在该模型上运行会话。需要 Claude Code v2.1.238 或更高版本。您从设备的模型控制中选择的模型仅适用于当前会话。当您从设备向交互式会话发送 `/model <name>` 时,Claude Code 也会为新会话设置您的默认值。186* **模型**:当您从连接的设备选择[模型](/docs/zh-CN/model-config)时,Claude Code 在该模型上运行会话。需要 Claude Code v2.1.238 或更高版本。您从设备的模型控制中选择的模型仅适用于当前会话。当您从设备向交互式会话发送 `/model <name>` 时,Claude Code 也会为新会话设置您的默认值。

188* **努力级别**:当您从连接的设备使用 `/effort` 或设备的努力控制设置[努力级别](/docs/zh-CN/model-config#adjust-effort-level)时,Claude Code 将其应用于您的机器上的会话。如果您使用 `CLAUDE_CODE_EFFORT_LEVEL` 固定了一个级别,会话保持该级别,Claude Code 拒绝从努力控制中选择不同的级别。从努力控制中选择一个级别需要您的机器上的 Claude Code v2.1.234 或更高版本。187* **努力级别**:当您从连接的设备设置[努力级别](/docs/zh-CN/model-config#adjust-effort-level)时,使用 `/effort` 或设备的努力控制,Claude Code 将其应用于您机器上的会话。如果您使用 `CLAUDE_CODE_EFFORT_LEVEL` 固定了一个级别,会话保持该级别,Claude Code 拒绝从努力控制中选择不同的级别。从努力控制中选择级别需要您机器上的 Claude Code v2.1.234 或更高版本。

189* **连接失败后重新连接**:运行 `/remote-control` 以重新连接。如果压缩重写了对话或您在此期间使用 `/resume` 切换了对话,Claude Code 会存档它正在使用的服务器会话,而不是将其留在会话列表中。您仍然可以通过[过滤存档的会话](/docs/zh-CN/claude-code-on-the-web#archive-sessions)找到它。在设备仍然连接时切换对话不会存档会话。188* **连接失败后重新连接**:运行 `/remote-control` 以重新连接。如果压缩重写了对话或您在此期间使用 `/resume` 切换了对话,Claude Code 会存档它正在使用的服务器会话,而不是将其留在会话列表中。您仍然可以通过[过滤存档的会话](/docs/zh-CN/claude-code-on-the-web#archive-sessions)找到它。在设备仍然连接时切换对话不会存档会话。

190 189 

191<h3 id="enable-remote-control-for-all-sessions">190<h3 id="enable-remote-control-for-all-sessions">

192 为所有会话启用远程控制191 为所有会话启用远程控制

193</h3>192</h3>

194 193 

195远程控制仅在您显式运行 `claude remote-control`、`claude --remote-control` 或 `/remote-control` 时激活,除非打开了自动连接。要为每个交互式会话打开自动连接,请在 Claude Code 中运行 `/config` 并设置**为所有会话启用远程控制**。切换有三个值:194远程控制仅在您显式运行 `claude remote-control`、`claude --remote-control` 或 `/remote-control` 时激活,除非打开了自动连接。要为每个交互式会话打开自动连接,请在 Claude Code 内运行 `/config` 并设置**为所有会话启用远程控制**。切换有三个值:

196 195 

197* **`true`**:当交互式会话启动时自动连接。196* **`true`**:当交互式会话启动时自动连接。

198* **`false`**:关闭自动连接,尽管来自[托管设置](/docs/zh-CN/managed-settings)的 `true` 会优先,因为 Claude Code 将选择保存到您的用户设置。项目或本地设置(`.claude/settings.json`、`.claude/settings.local.json`)中的 `false` 甚至会关闭自动连接,即使托管 `true` 也是如此。197* **`false`**:关闭自动连接,尽管来自[托管设置](/docs/zh-CN/managed-settings)的 `true` 会优先,因为 Claude Code 将选择保存到您的用户设置。项目或本地设置(`.claude/settings.json`、`.claude/settings.local.json`)中的 `false` 即使在托管 `true` 上也会关闭自动连接。

199* **`default`**:清除您的选择并遵循您的组织的管理员默认值(如果已设置),否则遵循 Claude Code 的当前默认值。198* **`default`**:清除您的选择并遵循您组织的管理员默认值(如果已设置),否则遵循 Claude Code 的当前默认值。

200 199 

201相同的切换出现在 CLI 之外:200相同的切换出现在 CLI 之外:

202 201 

203* **Desktop 应用**:**设置 > Claude Code > 默认启用远程控制**。202* **Desktop 应用**:**设置 > Claude Code > 将新会话连接到远程控制**。

204* **VS Code 扩展**:[命令菜单](/docs/zh-CN/vs-code#use-the-prompt-box)的设置部分中的**为所有会话启用远程控制**。203* **VS Code 扩展**:[命令菜单](/docs/zh-CN/vs-code#use-the-prompt-box)的设置部分中的**为所有会话启用远程控制**。

205 204 

206要改为从设置文件打开自动连接,请在您的用户 `~/.claude/settings.json` 或[托管设置](/docs/zh-CN/managed-settings)中将 [`remoteControlAtStartup`](/docs/zh-CN/settings-reference#remotecontrolatstartup) 设置为 `true`。在项目或本地设置(`.claude/settings.json`、`.claude/settings.local.json`)中,Claude Code 遵守 `false` 并为该存储库关闭自动连接,但忽略 `true`,因此已检入的文件无法为打开存储库的每个人打开远程控制。205要改为从设置文件打开自动连接,请在您的用户 `~/.claude/settings.json` 或[托管设置](/docs/zh-CN/managed-settings)中将 [`remoteControlAtStartup`](/docs/zh-CN/settings-reference#remotecontrolatstartup) 设置为 `true`。在项目或本地设置(`.claude/settings.json`、`.claude/settings.local.json`)中,Claude Code 遵守 `false` 并为该存储库关闭自动连接,但忽略 `true`,因此已检入的文件无法为打开存储库的每个人打开远程控制。

207 206 

208自动连接使用您自己的 claude.ai 帐户登录,因此它启动的会话仅出现在您自己的帐户的 Claude 应用中,并且不向任何其他人授予访问权限。207自动连接使用您自己的 claude.ai 帐户登录,因此它启动的会话仅出现在您自己帐户的 Claude 应用中,并且不向任何其他人授予访问权限。

209 208 

210启用此设置后,每个交互式 Claude Code 进程注册一个远程会话。如果您运行多个实例,每个实例都获得自己的远程会话。要从单个进程运行多个并发会话,请改用[服务器模式](#start-a-remote-control-session)。209启用此设置后,每个交互式 Claude Code 进程注册一个远程会话。如果您运行多个实例,每个实例都获得自己的远程会话。要从单个进程运行多个并发会话,请改为使用[服务器模式](#start-a-remote-control-session)。

211 210 

212<h3 id="resume-sessions-after-stopping-the-server">211<h3 id="resume-sessions-after-stopping-the-server">

213 停止服务器后恢复会话212 停止服务器后恢复会话


216当您使用 Ctrl+C 停止 `claude remote-control` 时,它正在服务的会话停止从您的手机或浏览器响应。只要您没有在同一目录中运行另一个 `claude remote-control` 并且没有使用 `--no-create-session-in-dir` 启动此会话,Claude Code 就不会存档它们。要恢复它们,请在同一目录中运行以下命令之一:215当您使用 Ctrl+C 停止 `claude remote-control` 时,它正在服务的会话停止从您的手机或浏览器响应。只要您没有在同一目录中运行另一个 `claude remote-control` 并且没有使用 `--no-create-session-in-dir` 启动此会话,Claude Code 就不会存档它们。要恢复它们,请在同一目录中运行以下命令之一:

217 216 

218* **`claude remote-control`**:恢复服务器正在服务的每个会话。217* **`claude remote-control`**:恢复服务器正在服务的每个会话。

219* **`claude remote-control --continue`**:仅恢复服务器启动的会话,并在该会话结束时退出。如果此目录没有记录,Claude Code 会使用此存储库的其他 git worktree 中最新的。218* **`claude remote-control --continue`**:仅恢复服务器启动的会话,并在该会话结束时退出。如果此目录没有记录,Claude Code 使用此存储库其他 git worktree 中最新的。

220* **`claude remote-control --session-id <id>`**:仅恢复您传递其 ID 的会话,并在该会话结束时退出。ID 是会话 URL 在 claude.ai/code 中 `/code/` 和任何 `?` 之间的部分。219* **`claude remote-control --session-id <id>`**:仅恢复您传递其 ID 的会话,并在该会话结束时退出。ID 是会话 URL 在 claude.ai/code 中 `/code/` 和任何 `?` 之间的部分。

221 220 

222这些命令在服务器停止后约四小时内有效。之后,运行 `claude remote-control` 以启动新会话。如果您在此期间存档了会话,`--continue` 和 `--session-id` 会在 Claude Code v2.1.228 或更高版本上取消存档。221这些命令在服务器停止后约四小时内有效。之后,运行 `claude remote-control` 以启动新会话。如果您在此期间存档了会话,`--continue` 和 `--session-id` 在 Claude Code v2.1.228 或更高版本上取消存档它。

223 222 

224要恢复您使用 `claude --remote-control` 或 `/remote-control` 启动的会话,请使用 `claude --continue` 或 `claude --resume` 恢复对话。如果远程控制不重新连接,请参阅[无法重新连接到您的远程控制会话](#couldnt-reconnect-to-your-remote-control-session)。223要恢复您使用 `claude --remote-control` 或 `/remote-control` 启动的会话,请使用 `claude --continue` 或 `claude --resume` 恢复对话。如果远程控制无法重新连接,请参阅[无法重新连接到您的远程控制会话](#couldnt-reconnect-to-your-remote-control-session)。

225 224 

226如果您在第一个终端仍然打开远程控制的情况下在第二个终端中恢复对话,Claude Code 会在第二个终端中打印 `Remote Control not started here` 通知,并改为在那里关闭远程控制。在第二个终端中运行 `/remote-control` 以将远程控制移动到它。225如果您在第一个终端仍然打开远程控制的情况下在第二个终端中恢复对话,Claude Code 会在第二个终端中打印 `Remote Control not started here` 通知,并改为在那里关闭远程控制,而不是从第一个终端取走会话。在第二个终端中运行 `/remote-control` 以将远程控制移动到它。

227 226 

228当您在具有远程控制的 Claude Desktop 或 IDE 扩展中恢复对话时,Claude Code 会将其重新附加到现有的 claude.ai 会话,而不是向会话列表添加新会话。227当您在具有远程控制的 Claude Desktop 或 IDE 扩展中恢复对话时,Claude Code 会将其重新附加到现有 claude.ai 会话,而不是向会话列表添加新会话。

229 228 

230<h2 id="connection-and-security">229<h2 id="connection-and-security">

231 连接和安全230 连接和安全

routines.md +16 −6

Details

66 66 

67在所有其他情况下,包括发布新 artifact,Claude 会先询问。当例程的工作是保持页面最新时,请给它一个您已经发布的 artifact。67在所有其他情况下,包括发布新 artifact,Claude 会先询问。当例程的工作是保持页面最新时,请给它一个您已经发布的 artifact。

68 68 

69Routines 属于您的个人 claude.ai 账户。它们不与队友共享,并且计入您账户的每日运行配额。例程通过您连接的 GitHub 身份或 connectors 所做的任何事情都显示为您:提交和拉取请求携带您的 GitHub 用户,Slack 消息、Linear 票证或其他 connector 操作使用您为这些服务链接的账户。69Routines 属于您的个人 claude.ai 账户。它们不与队友共享,并且其运行计入您账户的 [usage and limits](#usage-and-limits)。例程通过您连接的 GitHub 身份或 connectors 所做的任何事情都显示为您:提交和拉取请求携带您的 GitHub 用户,Slack 消息、Linear 票证或其他 connector 操作使用您为这些服务链接的账户。

70 70 

71<h3 id="create-from-the-web">71<h3 id="create-from-the-web">

72 从 Web 创建72 从 Web 创建


174 174 

175与定期计划相同的本地到 UTC 转换适用于一次性时间戳。175与定期计划相同的本地到 UTC 转换适用于一次性时间戳。

176 176 

177一次性运行不计入每日例程运行上限。请参阅 [Usage and limits](#usage-and-limits) 了解详细信息。177一次性运行计入与其他计划运行相同的每小时限制。请参阅 [Usage and limits](#usage-and-limits) 了解详细信息。

178 178 

179<h3 id="add-an-api-trigger">179<h3 id="add-an-api-trigger">

180 添加 API 触发器180 添加 API 触发器


256GitHub 触发器在连接的存储库上发生匹配事件时自动启动新会话。Claude Code 不会跨事件重用会话,因此两个 PR 更新会产生两个独立会话。256GitHub 触发器在连接的存储库上发生匹配事件时自动启动新会话。Claude Code 不会跨事件重用会话,因此两个 PR 更新会产生两个独立会话。

257 257 

258<Note>258<Note>

259 在研究预览期间,GitHub webhook 事件受每个例程和每个账户的每小时上限限制。超过限制的事件被丢弃,直到窗口重置。在 [claude.ai/code/routines](https://claude.ai/code/routines) 查看您当前的限制。259 GitHub webhook 事件受每个例程和每个账户的每小时上限限制。超过限制的事件被丢弃,直到窗口重置。

260</Note>260</Note>

261 261 

262Claude GitHub App 必须安装在您想订阅的存储库上,无论您从哪个表面配置触发器。262Claude GitHub App 必须安装在您想订阅的存储库上,无论您从哪个表面配置触发器。


421 使用和限制421 使用和限制

422</h2>422</h2>

423 423 

424Routines 以与交互式会话相同的方式消耗订阅使用量。除了标准订阅限制外,routines 还对每个账户每天可以启动多少次运行有上限。在 [claude.ai/code/routines](https://claude.ai/code/routines) 或 [claude.ai/settings/usage](https://claude.ai/settings/usage) 查看您当前的消耗和剩余的每日 routine 运行次数。424Routines 以与交互式会话相同的方式消耗订阅使用量。在 [claude.ai/settings/usage](https://claude.ai/settings/usage) 查看您当前的消耗。

425 425 

426当 routine 达到每日上限或您的订阅使用限制时,启用了使用额度的组织可以继续在计量超额上运行 routines。没有使用额度,额外运行被拒绝,直到窗口重置。在 [claude.ai/settings/usage](https://claude.ai/settings/usage) 启用使用额度。在 Team 和 Enterprise 计划上,管理员在 [claude.ai/admin-settings/usage](https://claude.ai/admin-settings/usage) 为组织启用使用额度。426除了订阅使用量外,每种启动运行的方式都有每小时限制:

427 427 

428一次性运行不计入每日 routine 运行上限。它们像任何其他会话一样消耗您的常规订阅使用量。428| 操作 | 限制 | 计数对象 | 超过限制 |

429| :- | :- | :- | :- |

430| 计划运行,包括一次性运行 | 每小时 100 次 | 您的账户 | 运行等待直到限制重置 |

431| **立即运行**、API 触发和设置一次性 routine 再次运行 | 每小时 30 次 | 每个 routine,三者共享一个计数 | 操作失败直到限制重置 |

432| **立即运行**和设置一次性 routine 再次运行 | 每小时 100 次 | 您的账户 | 相同 |

433| API 触发 | 每小时 100 次 | 您的账户,与**立即运行**分开计数 | 相同 |

434| GitHub 事件 | 见 [添加 GitHub 触发器](#add-a-github-trigger) | | |

435 

436这些每小时限制都没有超额费用。

437 

438当 routine 达到您的订阅使用限制时,启用了使用额度的组织可以继续在计量超额上运行 routines。没有使用额度,额外运行被拒绝,直到您的使用窗口重置。在 [claude.ai/settings/usage](https://claude.ai/settings/usage) 启用使用额度。在 Team 和 Enterprise 计划上,管理员在 [claude.ai/admin-settings/usage](https://claude.ai/admin-settings/usage) 为组织启用使用额度。

429 439 

430当您的订阅暂停时,您的 routines 会被暂停并且不会运行。一旦您的订阅再次激活,请将它们重新打开。440当您的订阅暂停时,您的 routines 会被暂停并且不会运行。一旦您的订阅再次激活,请将它们重新打开。

431 441 

Details

138* 在项目根目录,运行时拒绝 `.git/hooks`,拒绝 `.git/config` 除非您设置 `filesystem.allowGitConfig: true`,并拒绝 `.mcp.json`、`.claude/commands`、`.claude/agents` 和 shell 启动文件。138* 在项目根目录,运行时拒绝 `.git/hooks`,拒绝 `.git/config` 除非您设置 `filesystem.allowGitConfig: true`,并拒绝 `.mcp.json`、`.claude/commands`、`.claude/agents` 和 shell 启动文件。

139* 在 macOS 上,这些拒绝在写入发生时被检查,因此它们也涵盖嵌套文件和在会话期间创建的存储库。139* 在 macOS 上,这些拒绝在写入发生时被检查,因此它们也涵盖嵌套文件和在会话期间创建的存储库。

140* 在 Linux 和 WSL2 上,运行时在启动时构建拒绝列表一次。它可靠地涵盖项目根目录,对当时存在的嵌套副本进行最佳努力的浅层扫描,并不涵盖会话稍后创建的任何内容,例如 `git init`、`git clone` 或脚手架。README 的 `mandatoryDenySearchDepth` 部分描述了扫描的确切语义。140* 在 Linux 和 WSL2 上,运行时在启动时构建拒绝列表一次。它可靠地涵盖项目根目录,对当时存在的嵌套副本进行最佳努力的浅层扫描,并不涵盖会话稍后创建的任何内容,例如 `git init`、`git clone` 或脚手架。README 的 `mandatoryDenySearchDepth` 部分描述了扫描的确切语义。

141* 没有有效的 `~/.srt-settings.json`,运行时仍然启动,阻止网络访问,并将写入限制在内置运行时路径,例如 `/tmp/claude`、`~/.npm/_logs` 和 `~/.claude/debug`。不要将干净的启动作为您的设置已加载的证明。141* 如果 `~/.srt-settings.json` 不存在且您没有传递 `--settings`,运行时仍然启动。它阻止网络访问并将写入限制在内置运行时路径,例如 `/tmp/claude`、`~/.npm/_logs` 和 `~/.claude/debug`。不要将干净的启动作为您的设置已加载的证明。

142* 当您传递 `--settings` 时,如果文件加载失败,运行时拒绝启动。142* 如果设置文件存在但为空、不可读或无效,运行时拒绝启动,无论是 `~/.srt-settings.json` 还是您使用 `--settings` 传递的文件。如果 `--settings` 文件不存在,它也拒绝启动。

143 143 

144您的写入授权仍然包括 Claude Code 加载配置的其他路径,因此使用 `denyWrite` 拒绝这些路径。可以写入它们的沙箱化会话可以持久化 hook、权限规则或 MCP 服务器,这些在您下次启动 Claude Code 时以未沙箱化的方式运行。144您的写入授权仍然包括 Claude Code 加载配置的其他路径,因此使用 `denyWrite` 拒绝这些路径。可以写入它们的沙箱化会话可以持久化 hook、权限规则或 MCP 服务器,这些在您下次启动 Claude Code 时以未沙箱化的方式运行。

145 145 

sandboxing.md +1 −0

Details

528 528 

529* **默认写入行为**:对当前工作目录及其子目录的读写访问,加上使用 `--add-dir`、`/add-dir` 或 [`permissions.additionalDirectories`](/docs/zh-CN/settings-reference#permissions-additionaldirectories) 添加的任何目录,以及 `$TMPDIR` 指向的会话临时目录529* **默认写入行为**:对当前工作目录及其子目录的读写访问,加上使用 `--add-dir`、`/add-dir` 或 [`permissions.additionalDirectories`](/docs/zh-CN/settings-reference#permissions-additionaldirectories) 添加的任何目录,以及 `$TMPDIR` 指向的会话临时目录

530* **默认读取行为**:对整个计算机的读取访问,除了某些被拒绝的目录。注意此默认仍允许读取凭证文件,例如 `~/.aws/credentials` 和 `~/.ssh/`。使用 [`sandbox.credentials`](#protect-credentials) 阻止读取这些文件并取消设置密钥环境变量,或将路径添加到 `denyRead`。530* **默认读取行为**:对整个计算机的读取访问,除了某些被拒绝的目录。注意此默认仍允许读取凭证文件,例如 `~/.aws/credentials` 和 `~/.ssh/`。使用 [`sandbox.credentials`](#protect-credentials) 阻止读取这些文件并取消设置密钥环境变量,或将路径添加到 `denyRead`。

531* **读取阻止**:启用 [`permissions.blockReadsOutsideWorkingDirectories`](/docs/zh-CN/settings-reference#permissions-blockreadsoutsideworkingdirectories) 时,沙箱化命令也会失去对你的主目录和其他保存用户文件的目录的读取访问权限,除了 [Sandboxed commands under the block](/docs/zh-CN/settings-reference#sandboxed-commands-under-the-block) 列出的路径。该部分也说明了此阻止部分何时不适用。

531* **被阻止的访问**:无法在没有明确权限的情况下修改工作目录、添加的目录和会话临时目录外的文件,包括 shell 配置文件(例如 `~/.bashrc`)和 `/bin/` 中的系统二进制文件532* **被阻止的访问**:无法在没有明确权限的情况下修改工作目录、添加的目录和会话临时目录外的文件,包括 shell 配置文件(例如 `~/.bashrc`)和 `/bin/` 中的系统二进制文件

532* **Git worktrees**:当工作目录是[链接的 git worktree](/docs/zh-CN/worktrees)时,沙箱还允许写入主存储库的共享 `.git` 目录,以便 `git commit` 等命令可以更新引用和索引。对该目录内的 `hooks/` 和 `config` 的写入仍然被拒绝。533* **Git worktrees**:当工作目录是[链接的 git worktree](/docs/zh-CN/worktrees)时,沙箱还允许写入主存储库的共享 `.git` 目录,以便 `git commit` 等命令可以更新引用和索引。对该目录内的 `hooks/` 和 `config` 的写入仍然被拒绝。

533* **可配置**:通过设置定义自定义允许和拒绝的路径534* **可配置**:通过设置定义自定义允许和拒绝的路径

Details

8 8 

9计划任务让 Claude 按间隔自动重新运行提示词。使用它们来轮询部署、监督 PR、检查长时间运行的构建,或在会话中稍后提醒自己做某事。要对事件进行实时反应而不是轮询,请参阅 [Channels](/docs/zh-CN/channels):您的 CI 可以直接将失败推送到会话中。要保持会话工作转向转向直到满足条件而不是按间隔,请参阅 [`/goal`](/docs/zh-CN/goal)。9计划任务让 Claude 按间隔自动重新运行提示词。使用它们来轮询部署、监督 PR、检查长时间运行的构建,或在会话中稍后提醒自己做某事。要对事件进行实时反应而不是轮询,请参阅 [Channels](/docs/zh-CN/channels):您的 CI 可以直接将失败推送到会话中。要保持会话工作转向转向直到满足条件而不是按间隔,请参阅 [`/goal`](/docs/zh-CN/goal)。

10 10 

11任务是会话范围的:它们存在于当前对话中,当您启动新对话时就会停止。使用 `--resume` 或 `--continue` 恢复会带回任何尚未[过期](#seven-day-expiry)的任务,除了[限制](#limitations)下列出的任务。对于独立于任何会话而存在的调度,请使用 [Routines](/docs/zh-CN/routines) 在云上创建例程、设置 [Desktop 计划任务](/docs/zh-CN/desktop-scheduled-tasks),或使用 [GitHub Actions](/docs/zh-CN/github-actions)。11任务是会话范围的。当您使用 `--resume` 或 `--continue` 恢复时,Claude Code 会恢复尚未[过期](#seven-day-expiry)的任务,除了[限制](#limitations)下列出的任务。对于独立于任何会话而存在的调度,请使用 [Routines](/docs/zh-CN/routines) 在云上创建例程、设置 [Desktop 计划任务](/docs/zh-CN/desktop-scheduled-tasks),或使用 [GitHub Actions](/docs/zh-CN/github-actions)。

12 12 

13<h2 id="compare-scheduling-options">13<h2 id="compare-scheduling-options">

14 比较调度选项14 比较调度选项


237 237 

238* 任务仅在 Claude Code 运行且空闲时触发。关闭终端或让会话退出会停止它们触发。[将会话放在后台](/docs/zh-CN/agent-view#from-inside-a-session)会将 `/loop` 任务转移到后台会话,该会话继续运行而无需终端。238* 任务仅在 Claude Code 运行且空闲时触发。关闭终端或让会话退出会停止它们触发。[将会话放在后台](/docs/zh-CN/agent-view#from-inside-a-session)会将 `/loop` 任务转移到后台会话,该会话继续运行而无需终端。

239* 没有错过触发的追赶。如果任务的计划时间在 Claude 忙于长时间运行的请求时经过,它会在 Claude 变为空闲时触发一次,而不是每个错过的间隔触发一次。239* 没有错过触发的追赶。如果任务的计划时间在 Claude 忙于长时间运行的请求时经过,它会在 Claude 变为空闲时触发一次,而不是每个错过的间隔触发一次。

240* 启动新对话会清除所有会话范围的任务。当您使用 `claude --resume` 或 `claude --continue` 恢复会话时,Claude Code 会恢复使用 `CronCreate` 调度的任务,除了已[过期](#seven-day-expiry)的重复任务和计划时间已经过去的一次性任务。[自定步调的 `/loop`](#let-claude-choose-the-interval)不会被恢复,因此请再次运行 `/loop` 以重新启动它。后台 Bash 和监视器任务在恢复时永远不会被恢复。240* 当您使用 `claude --resume` 或 `claude --continue` 恢复会话时,Claude Code 会恢复使用 `CronCreate` 调度的任务,除了已[过期](#seven-day-expiry)的重复任务和计划时间已经过去的一次性任务。[自定步调的 `/loop`](#let-claude-choose-the-interval)不会被恢复,因此请再次运行 `/loop` 以重新启动它。后台 Bash 和监视器任务在恢复时永远不会被恢复。

241* 当[功能标志获取关闭](/docs/zh-CN/env-vars#features-that-need-feature-flag-fetching)时,Claude Code 会将您要求在会话间保留的任务存储在项目的 `.claude/scheduled_tasks.json` 文件中。当 `.claude` 目录或该文件是符号链接时,Claude Code 会返回错误而不是调度任务。保存的任务仅在您创建它的项目文件夹中运行。如果您将文件复制到另一个文件夹(例如新的 worktree),那里的会话会列出复制的任务但不会运行它们,因此请在该文件夹中再次创建任务。241* 当[功能标志获取关闭](/docs/zh-CN/env-vars#features-that-need-feature-flag-fetching)时,Claude Code 会将您要求在会话间保留的任务存储在项目的 `.claude/scheduled_tasks.json` 文件中。当 `.claude` 目录或该文件是符号链接时,Claude Code 会返回错误而不是调度任务。保存的任务仅在您创建它的项目文件夹中运行。如果您将文件复制到另一个文件夹(例如新的 worktree),那里的会话会列出复制的任务但不会运行它们,因此请在该文件夹中再次创建任务。

242 242 

243对于需要无人值守运行的 cron 驱动自动化:243对于需要无人值守运行的 cron 驱动自动化:

Details

48* **零数据保留**:对于启用了[零数据保留](/docs/zh-CN/zero-data-retention)的组织不可用。48* **零数据保留**:对于启用了[零数据保留](/docs/zh-CN/zero-data-retention)的组织不可用。

49* **模型推理**:会话使用 Anthropic API,推理不能通过 [Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry](/docs/zh-CN/third-party-integrations) 或 [LLM 网关](/docs/zh-CN/llm-gateway)路由。49* **模型推理**:会话使用 Anthropic API,推理不能通过 [Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry](/docs/zh-CN/third-party-integrations) 或 [LLM 网关](/docs/zh-CN/llm-gateway)路由。

50* **表面**:从 [claude.ai/code](https://claude.ai/code)、移动和桌面应用、[计划例程](/docs/zh-CN/routines)以及终端启动的会话,带有 [`claude --cloud`](/docs/zh-CN/claude-code-on-the-web#from-terminal-to-cloud) 或 [`--environment` 调度](/docs/zh-CN/self-hosted-environments-testing#run-the-test-loop),可以在自托管环境中运行。[Claude Tag](https://claude.com/docs/claude-tag/overview) 会话也可以在其中运行,但 Claude 还不能在这些会话中使用[访问包](https://claude.com/docs/claude-tag/concepts/glossary#access-bundle)。[Claude Security](/docs/zh-CN/claude-security) 和[代码审查](/docs/zh-CN/code-review)会话还不能路由到它们。对这两个表面的支持将单独跟进。50* **表面**:从 [claude.ai/code](https://claude.ai/code)、移动和桌面应用、[计划例程](/docs/zh-CN/routines)以及终端启动的会话,带有 [`claude --cloud`](/docs/zh-CN/claude-code-on-the-web#from-terminal-to-cloud) 或 [`--environment` 调度](/docs/zh-CN/self-hosted-environments-testing#run-the-test-loop),可以在自托管环境中运行。[Claude Tag](https://claude.com/docs/claude-tag/overview) 会话也可以在其中运行,但 Claude 还不能在这些会话中使用[访问包](https://claude.com/docs/claude-tag/concepts/glossary#access-bundle)。[Claude Security](/docs/zh-CN/claude-security) 和[代码审查](/docs/zh-CN/code-review)会话还不能路由到它们。对这两个表面的支持将单独跟进。

51* **存储库**:会话从 GitHub 检出存储库;请参阅 [GitHub 身份验证选项](/docs/zh-CN/claude-code-on-the-web#github-authentication-options)。51* **存储库**:会话从 GitHub 检出存储库;请参阅 [GitHub 身份验证选项](/docs/zh-CN/claude-code-on-the-web#github-authentication-options)。对于 GitHub Enterprise Server 主机,请参阅其[网络要求](/docs/zh-CN/github-enterprise-server#network-requirements)。

52* **计费**:自托管环境中的会话消耗您的组织的 Claude Code 使用情况,与 Anthropic 托管环境中的会话相同。52* **计费**:自托管环境中的会话消耗您的组织的 Claude Code 使用情况,与 Anthropic 托管环境中的会话相同。

53 53 

54<h2 id="why-self-host">54<h2 id="why-self-host">

Details

170 170 

171如果您的 git 主机拒绝凭证,或您没有配置凭证,运行器重试几次然后失败存储库准备(当存储库是会话推送结果的存储库时)。对于会话仅从中读取的存储库,[故障排除](#troubleshooting)涵盖运行器何时改为跳过它。运行器不会将这些设置传递到会话的环境中。171如果您的 git 主机拒绝凭证,或您没有配置凭证,运行器重试几次然后失败存储库准备(当存储库是会话推送结果的存储库时)。对于会话仅从中读取的存储库,[故障排除](#troubleshooting)涵盖运行器何时改为跳过它。运行器不会将这些设置传递到会话的环境中。

172 172 

173保持您在 `GIT_SSH_COMMAND` 或 `GIT_ASKPASS` 中命名的任何程序,会话无法写入它,就像[加固清单](#harden-your-deployment)要求钩子目录和包装脚本的方式一样。该程序命令行上的任何密钥或文件也是如此。运行器自己的 git 在克隆或获取时运行该程序。

174 

173如果检出目录由与运行器进程不同的 uid 拥有,git 拒绝对其进行操作;添加 `safe.directory`:175如果检出目录由与运行器进程不同的 uid 拥有,git 拒绝对其进行操作;添加 `safe.directory`:

174 176 

175```dockerfile theme={null}177```dockerfile theme={null}


184 186 

185代理需要 `--capacity 1`,因为代理 URL 是按会话的,以及 git 2.32 或更高版本,因为较旧的 git 忽略代理用来隔离会话的配置机制。如果任一要求未满足,运行器拒绝启动。因为代理从 Anthropic 端获取,您的 git 主机必须可从 Anthropic 基础设施到达,与 Anthropic 托管会话相同的要求;对于仅在您的网络内可路由的 git 主机,改用 [`checkout` 生命周期钩子](/docs/zh-CN/self-hosted-environments-configuration#checkout)。每个运行器进程一次处理一个会话,因此运行更多副本以获得并行性。启用代理后,`--git-host-rewrite` 和 `--git-ssh-rewrite` 无效:代理 URL 指向 `api.anthropic.com`,而不是您的 git 主机。187代理需要 `--capacity 1`,因为代理 URL 是按会话的,以及 git 2.32 或更高版本,因为较旧的 git 忽略代理用来隔离会话的配置机制。如果任一要求未满足,运行器拒绝启动。因为代理从 Anthropic 端获取,您的 git 主机必须可从 Anthropic 基础设施到达,与 Anthropic 托管会话相同的要求;对于仅在您的网络内可路由的 git 主机,改用 [`checkout` 生命周期钩子](/docs/zh-CN/self-hosted-environments-configuration#checkout)。每个运行器进程一次处理一个会话,因此运行更多副本以获得并行性。启用代理后,`--git-host-rewrite` 和 `--git-ssh-rewrite` 无效:代理 URL 指向 `api.anthropic.com`,而不是您的 git 主机。

186 188 

189<Warning>

190 本页上的 [Kubernetes](#kubernetes) 和 [Docker Compose](#docker-compose) 配方使用 `--capacity 4`。如果您在不将容量更改为 `1` 的情况下向其中一个添加 `--use-anthropic-git-proxy` 或 `CLAUDE_RUNNER_USE_GIT_PROXY=1`,每次您的编排器重新启动它时,运行器都会在启动时退出。设置 `--capacity 1` 并运行更多副本以获得并行性。[当运行器退出](#when-the-runner-exits)显示运行器打印的行。

191</Warning>

192 

187运行器还在注册时向 Anthropic 报告选择加入,在启动时打印 `Registering as opted in to Anthropic-managed git (--use-anthropic-git-proxy)`。报告选择加入需要 Claude Code v2.1.267 或更高版本,较早的版本接受该标志而不报告它或打印该行。选择加入运行器上的每个会话然后使用 Anthropic 管理的 git 或按会话代理 URL。当会话使用按会话代理 URL 时,运行器记录一行 `[runner:warn]` 说明这一点。193运行器还在注册时向 Anthropic 报告选择加入,在启动时打印 `Registering as opted in to Anthropic-managed git (--use-anthropic-git-proxy)`。报告选择加入需要 Claude Code v2.1.267 或更高版本,较早的版本接受该标志而不报告它或打印该行。选择加入运行器上的每个会话然后使用 Anthropic 管理的 git 或按会话代理 URL。当会话使用按会话代理 URL 时,运行器记录一行 `[runner:warn]` 说明这一点。

188 194 

195<h4 id="trust-a-private-certificate-authority-with-anthropic-managed-git">

196 使用 Anthropic 管理的 git 信任专用证书颁发机构

197</h4>

198 

199如果您在运行器的环境中设置 `GIT_SSL_CAINFO` 或 `GIT_SSL_NO_VERIFY`,其会话使用 Anthropic 管理的 git,本部分适用。它描述的处理需要运行器运行 Claude Code v2.1.283 或更高版本。

200 

201当运行器上的 git 必须信任专用证书颁发机构 (CA)(例如 TLS 检查代理签署的证书颁发机构)时,通常的方法如下所示:

202 

203* **系统证书存储**:在运行器主机的系统证书存储中安装您的 CA,git 无需任何变量即可信任它。

204* **`GIT_SSL_CAINFO`**:将其设置为您的 CA 的 PEM 文件,例如 `GIT_SSL_CAINFO=/etc/ssl/corp-ca.pem`。

205* **`GIT_SSL_NO_VERIFY`**:在重新签名代理后面没有帮助。运行器自己通过 Anthropic 管理的 git 克隆检查证书,即使设置了变量,所以克隆失败,直到 git 通过其他两种方法之一信任您的 CA。

206 

207对于将会话令牌传送到 Anthropic 管理的 git 的 git 连接,运行器应用这两个变量如下。[`command` 钩子](/docs/zh-CN/self-hosted-environments-configuration#command)以会话的环境开始,所以它获得 git 在会话内获得的内容:

208 

209* **`GIT_SSL_CAINFO`**:git 检查 Anthropic 管理的 git 的内容取决于 git 运行的位置:

210 * **运行器自己的克隆和获取**:运行时不使用变量,并根据运行器写入的按会话证书文件检查 Anthropic 管理的 git。该文件保存运行器主机的系统 CA 包加上您的文件中的证书。

211 * **会话内的 Git**:获得 `http.sslCAInfo` 配置,命名您的文件代替变量,加上 `http.<url>.sslCAInfo` 条目,根据按会话文件检查 Anthropic 管理的 git。

212 * **`checkout` 和 `post-session` 钩子**:继承变量不变。

213* **`GIT_SSL_NO_VERIFY`**:哪些证书检查保持关闭取决于 git 运行的位置:

214 * **运行器自己的克隆和获取**:运行时不使用变量,并检查它们呈现的证书。

215 * **会话内的 Git**:获得 `http.sslVerify=false` 配置代替变量,所以检查对其他主机保持关闭。它还获得 `http.<url>.sslVerify=true` 条目,为 Anthropic 管理的 git 保持检查打开。

216 * **`checkout` 和 `post-session` 钩子**:当会话在 Anthropic 管理的 git 上有存储库时,获得 `http.sslVerify=false` 配置代替变量。它们还获得 `http.<url>.sslVerify=true` 条目,为 Anthropic 管理的 git 保持检查打开。

217 

218按会话证书文件需要在运行器主机上的 `/etc/ssl/certs/ca-certificates.crt` 或 `/etc/pki/tls/certs/ca-bundle.crt` 处的系统 CA 包。它还需要一个 `GIT_SSL_CAINFO` 文件,运行器的用户可以读取,保存 PEM `CERTIFICATE` 块,最多 1 MiB。当运行器无法构建按会话文件时,它记录一行 `[runner:warn]` 包含 `did not build the certificate file` 和原因。Git 然后按原样为 Anthropic 管理的 git 使用您的文件。修复该行命名的内容。

219 

220对于使用 Anthropic 管理的 git 的每个会话,运行器还记录一行 `[runner:warn]` 开始于 `governed git: GIT_SSL_CAINFO is set` 或 `governed git: GIT_SSL_NO_VERIFY is set`。该行说明运行器对其自己的 git、会话内的 git 和您的生命周期钩子对该变量所做的操作。它以您是否需要更改任何内容结束。

221 

189<h3 id="rewrite-git-urls-for-private-networks">222<h3 id="rewrite-git-urls-for-private-networks">

190 为专用网络重写 git URL223 为专用网络重写 git URL

191</h3>224</h3>


203 236 

204Anthropic 不发布预构建的运行器镜像。围绕 `claude` 二进制文件构建您自己的,分层您的存储库需要的任何工具链:语言运行时、编译器、包管理器和 [MCP](/docs/zh-CN/mcp) 边车。237Anthropic 不发布预构建的运行器镜像。围绕 `claude` 二进制文件构建您自己的,分层您的存储库需要的任何工具链:语言运行时、编译器、包管理器和 [MCP](/docs/zh-CN/mcp) 边车。

205 238 

206下面的配方使用 `--capacity 4`,所以一个容器为来自同一锁定所有者的最多四个并发会话服务。这不提供[加固部分](#harden-your-deployment)中的按会话容器隔离:在将环境连接到生产系统之前,要么以 `--capacity 1` 运行配方,每个会话一个容器,要么使用[按需运行器](/docs/zh-CN/self-hosted-environments-configuration#on-demand-runners),它也将环境密钥保持在会话运行主机之外。239下面的配方使用 `--capacity 4`,所以一个容器为来自同一锁定所有者的最多四个并发会话服务。这不提供[加固部分](#harden-your-deployment)中的按会话容器隔离:在将环境连接到生产系统之前,要么以 `--capacity 1` 运行配方,每个会话一个容器,要么使用[按需运行器](/docs/zh-CN/self-hosted-environments-configuration#on-demand-runners),它也将环境密钥保持在会话运行主机之外。如果您将[Anthropic git 代理](#use-the-anthropic-git-proxy)添加到这些配方之一,也要将 `--capacity` 更改为 `1`。

207 240 

208这个 Dockerfile 是一个最小的起点:241这个 Dockerfile 是一个最小的起点:

209 242 


338 371 

339下面的 Compose 服务在运行器退出时重启它,这涵盖崩溃和正常退出后的 drain。Docker 重启策略重启同一容器及其可写层完整,所以运行器以重用的文件系统而不是[加固态势](#harden-your-deployment)推荐的新文件系统回来;为评估使用此配方,对于生产要么每次运行重新创建容器,要么使用执行此操作的编排器。372下面的 Compose 服务在运行器退出时重启它,这涵盖崩溃和正常退出后的 drain。Docker 重启策略重启同一容器及其可写层完整,所以运行器以重用的文件系统而不是[加固态势](#harden-your-deployment)推荐的新文件系统回来;为评估使用此配方,对于生产要么每次运行重新创建容器,要么使用执行此操作的编排器。

340 373 

374Docker 在容器不断退出时会在每次重启前等待更长时间,直到达到上限,所以在此配方下无法启动的运行器不会在紧密循环中不断重启。[当运行器退出时](#when-the-runner-exits)描述了发生这种情况时要检查的内容。

375 

341```yaml theme={null}376```yaml theme={null}

342services:377services:

343 claude-runner:378 claude-runner:


451 486 

452每个会话的子 Claude Code 进程运行运行器自己的二进制文件,运行器在它生成的会话内关闭自动更新,所以每个会话运行您在主机上安装或构建到镜像中的版本。主机级更新在运行器下次启动时生效。487每个会话的子 Claude Code 进程运行运行器自己的二进制文件,运行器在它生成的会话内关闭自动更新,所以每个会话运行您在主机上安装或构建到镜像中的版本。主机级更新在运行器下次启动时生效。

453 488 

489您的会话使用的模型可能需要比它们运行的 Claude Code 版本更新的版本。服务器随后会以 [Claude Code does not support this model](/docs/zh-CN/errors#claude-code-does-not-support-this-model) 拒绝对该模型的请求。在您固定版本之前,请检查[模型需要的 Claude Code 版本](/docs/zh-CN/model-config#available-models),以了解您的会话使用的每个模型。

490 

454* **将队列保持在一个版本上**:使用固定版本构建镜像,或在裸主机上安装特定版本并[禁用自动更新](/docs/zh-CN/setup#disable-auto-updates)491* **将队列保持在一个版本上**:使用固定版本构建镜像,或在裸主机上安装特定版本并[禁用自动更新](/docs/zh-CN/setup#disable-auto-updates)

455* **升级**:安装较新版本或重建镜像,然后重启运行器492* **升级**:安装较新版本或重建镜像,然后重启运行器

456* **插件**:插件市场也不自动更新;在运行器的环境中设置 `FORCE_AUTOUPDATE_PLUGINS=1` 以让插件自动更新,同时二进制保持固定493* **插件**:插件市场也不自动更新;在运行器的环境中设置 `FORCE_AUTOUPDATE_PLUGINS=1` 以让插件自动更新,同时二进制保持固定


554 591 

555每个会话的子进程写入单独的调试日志。失败时,运行器在 claude.ai/code 中将日志的尾部与会话一起显示。除非您使用 [`--remove-session-state`](/docs/zh-CN/self-hosted-environments-reference#runner-cli-flags) 启动了运行器,否则它也会在磁盘上保留失败会话的日志,并在运行器日志中打印其路径。592每个会话的子进程写入单独的调试日志。失败时,运行器在 claude.ai/code 中将日志的尾部与会话一起显示。除非您使用 [`--remove-session-state`](/docs/zh-CN/self-hosted-environments-reference#runner-cli-flags) 启动了运行器,否则它也会在磁盘上保留失败会话的日志,并在运行器日志中打印其路径。

556 593 

594<h3 id="when-the-runner-exits">

595 当运行器退出时

596</h3>

597 

598不要重新启动 [按需运行器](/docs/zh-CN/self-hosted-environments-configuration#on-demand-runners),因为其工作订单是一次性的。在启动后立即退出的运行器需要与因任何其他原因退出的运行器不同的处理方式。

599 

600* **正常退出**:运行器完成了其会话并耗尽,达到了其退休时间,或被告知停止。重新启动它以便环境再次具有容量。[运行器生命周期](/docs/zh-CN/self-hosted-environments#runner-lifecycle) 描述了这些退出。

601* **启动失败**:运行器无法使用给定的配置或主机启动,因此它在启动后几秒钟退出,并且每次重新启动时都以相同的方式退出。更快地重新启动它没有帮助。有人需要阅读其输出并修复原因。

602 

603配置您的监督程序在运行器退出时重新启动它,当运行器在启动后立即保持退出时等待更长时间,并在这种情况持续发生时告知某人。

604 

605<h4 id="recognize-a-failed-start">

606 识别启动失败

607</h4>

608 

609当运行器无法启动时,它会打印一行说明原因,然后退出。对于大多数原因,该行包含 `[runner:fatal]`。对于某些原因,该行以 `error:` 开头,包括当运行器无法解析其标志、无法读取环境密钥或无法创建或写入基础目录时。下一行然后指向 `--help`。

610 

611大多数日志行以时间戳和 `[self-hosted-runner]` 开头,下面的示例省略了这些。例如,使用 Anthropic git 代理和容量大于 1 启动的运行器会打印如下一行:

612 

613```text theme={null}

614[runner:fatal] --use-anthropic-git-proxy requires --capacity 1 (the proxy URL is per-session and linked worktrees share origin). Omit --use-anthropic-git-proxy or set --capacity 1.

615```

616 

617在运行器的标准输出和标准错误、您的平台的容器日志或您使用 [`--log-file`](/docs/zh-CN/self-hosted-environments-reference#runner-cli-flags) 设置的文件中查找该行。运行器在打开日志文件之前打印 `error:` 行,因此请在终端或您的容器日志中查找它,如 [故障排除](#troubleshooting) 所述。

618 

619当您阅读启动失败时,这些也有帮助:

620 

621* **根本没有行**:主机杀死的运行器不会打印任何内容。如果输出以没有 `[runner:fatal]` 行和没有 `error:` 行结束,请检查主机或您的编排器是否停止了该进程,例如因为超过了内存限制。

622* **退出代码**:运行器不会为在每次启动时重复的错误预留退出代码。它对配置错误(例如不支持的标志组合)和可以自行清除的失败(例如 API 通过运行器自己的重试保持不可达)退出相同的代码。根据运行器退出的速度快慢来决定是否等待更长时间,并阅读运行器的输出以了解原因。

623* **看起来健康的环境**:某些启动步骤在运行器向您的环境注册后运行,例如 [`--configure-git`](#let-the-runner-configure-git) 和 Anthropic git 代理的凭证设置。如果其中一个步骤失败,环境可以在该进程退出后的几分钟内继续列出该运行器,并且 **Cloud environments** 页面可以读取 **Healthy**,而没有运行器拾取工作。如果会话在看起来健康的环境中保持排队,请检查您的监督程序是否在重新启动运行器。

624 

625<h4 id="restart-with-a-wait-that-grows">

626 使用增长的等待时间重新启动

627</h4>

628 

629如何获得增长的等待时间取决于您的监督程序。

630 

631* **Kubernetes**:此页面上的 [Deployment](#kubernetes) 不需要更改。容器退出后,kubelet 默认在重新启动容器之前等待,并且等待时间在每次重新启动时增长到一个上限。一旦容器运行了一段时间而没有退出,等待就会重新开始。

632 

633 当容器仅运行很短时间时,kubelet 在正常退出后应用相同的等待。经常耗尽的运行器因此也可以显示 `CrashLoopBackOff` 状态,所以在得出运行器无法启动的结论之前请阅读输出。下面的命令从 Deployment 的一个 pod 读取最后一次运行的输出:

634 

635 ```bash theme={null}

636 kubectl logs --previous -n claude-runners deploy/claude-runner

637 ```

638 

639 当最后一次运行是启动失败时,`[runner:fatal]` 或 `error:` 行在输出的最后几行中。要读取另一个 pod 的最后一次运行,请在 `deploy/claude-runner` 的位置命名该 pod。

640* **Docker 和 Docker Compose**:此页面上的 [Compose recipe](#docker-compose) 不需要更改。使用 `restart: always`,Docker 在保持退出的容器的每次重新启动之前等待更长时间,直到一个上限。在下面的命令中用容器的名称替换 `<container>`,该命令读取 Docker 重新启动容器的次数:

641 

642 ```bash theme={null}

643 docker inspect --format '{{.RestartCount}}' <container>

644 ```

645 

646 该命令打印一个数字。不断增加的数字意味着 Docker 不断重新启动运行器。

647* **systemd 单元**:默认情况下,systemd 在每次重新启动之前等待相同的 `RestartSec`,并且不会延长它,因此具有 `Restart=always` 的单元以相同的间隔重新启动无法启动的运行器。当启动速度足够快以达到单元的启动速率限制(默认为 10 秒内 5 次启动)时,systemd 停止重新启动该单元。该单元保持停止状态,直到有人再次启动它,systemd 允许在速率限制的间隔已过或在 `systemctl reset-failed` 之后启动。因为 `RestartSec` 适用于每次重新启动,更长的值也会延迟正常退出后的重新启动。选择一个平衡两者的值,并对单元的重新启动计数进行警报。

648* **shell 循环或您自己的监督程序**:自己应用相同的规则。从 5 秒的等待开始。在每次在一分钟内结束的运行之后,将下一次重新启动的等待加倍,最多 5 分钟。在运行了一分钟或更长时间的运行之后,回到 5 秒。

649 

650<h4 id="check-why-the-runner-keeps-exiting">

651 检查运行器为什么保持退出

652</h4>

653 

654当运行器连续多次在启动后立即退出时,在再次重新启动之前停止并检查这些。

655 

656* **最后的 `[runner:fatal]` 或 `error:` 行**:它说明运行器停止的原因。[故障排除](#troubleshooting) 列出了常见原因。

657* **标志的组合**:[Anthropic git 代理](#use-the-anthropic-git-proxy) 需要 `--capacity 1`。此页面上的配方使用更高的容量,因此当您将代理添加到其中一个时降低它。

658* **服务的环境可以到达什么**:如果运行器手动启动并在您的监督程序下失败,请比较用户、主目录、`PATH` 和内存限制。`--configure-git` 和 Anthropic git 代理需要 `PATH` 上的 git 和可写的 `~/.gitconfig`。

659* **环境密钥**:如果您撤销了密钥或输入错误,运行器会打印一行包含 `RegisterRunner auth failed`。

660* **环境的 Activity 标签**:打开环境并选择 **Activity**。如果新运行器不断出现在那里,但没有拾取工作,您的监督程序正在重新启动运行器。

661 

662如需在运行器主机上进行引导式诊断,请运行 [doctor 子命令](#troubleshooting)。

663 

557<h2 id="what’s-next">664<h2 id="what’s-next">

558 接下来665 接下来

559</h2>666</h2>

Details

105 </Step>105 </Step>

106</Steps>106</Steps>

107 107 

108运行器在其活跃会话完成后按设计退出;请参阅[运行器生命周期](/docs/zh-CN/self-hosted-environments#runner-lifecycle)。对于生产,在编排器下部署它,该编排器在退出时重新启动它。请参阅[部署到生产环境](/docs/zh-CN/self-hosted-environments-deploy)。108运行器在其活跃会话完成后按设计退出;请参阅[运行器生命周期](/docs/zh-CN/self-hosted-environments#runner-lifecycle)。对于生产,在编排器下部署它,该编排器在退出时重新启动它,并在运行器启动后立即继续退出时等待更长的时间再重新启动。请参阅[部署到生产环境](/docs/zh-CN/self-hosted-environments-deploy)和[当运行器退出时](/docs/zh-CN/self-hosted-environments-deploy#when-the-runner-exits)。

109 109 

110<h2 id="send-a-follow-up-message-to-a-running-session">110<h2 id="send-a-follow-up-message-to-a-running-session">

111 向运行中的会话发送后续消息111 向运行中的会话发送后续消息

Details

80 SCM 连接器标志80 SCM 连接器标志

81</h3>81</h3>

82 82 

83编排器可以与 Anthropic 的控制平面保持一个常设 WebSocket 连接,以便托管的预会话流(例如存储库选择器和分支或 ref 解析器)可以到达仅从您的网络内部可路由的 GitHub Enterprise Server 主机。除非您设置 `--scm-connector-host`,否则连接器保持关闭。83SCM 连接器不可用,因此请将本部分中的标志保持未设置。如果您设置 `--scm-connector-host`,连接不会打开,编排器会继续重试。运行器仍然作为会话队列启动。

84 

85连接器是从编排器到 Anthropic 控制平面的常设 WebSocket 连接。它的设计目的是让托管的预会话流(例如存储库选择器和分支或 ref 解析器)能够到达仅从您的网络内部可路由的 GitHub Enterprise Server 主机。请参阅 GitHub Enterprise Server 页面上的[网络要求](/docs/zh-CN/github-enterprise-server#network-requirements),了解这些流需要什么。

84 86 

85| 标志 | 默认值 | 描述 |87| 标志 | 默认值 | 描述 |

86| :- | :- | :- |88| :- | :- | :- |

87| `--scm-connector-host <host[:port]>` | 未设置 | GitHub Enterprise Server 主机名以转发请求。端口默认为 `443`。设置此标志启用连接器。 |89| `--scm-connector-host <host[:port]>` | 未设置 | GitHub Enterprise Server 主机名以转发请求。端口默认为 `443`。 |

88| `--scm-connector-id <n>` | 与 `--scm-connector-host` 一起需要 | 您的组织的 GitHub Enterprise Server 连接的数字 ID。启用连接器时,请与您的 Anthropic 帐户团队联系以获取该值。 |90| `--scm-connector-id <n>` | 与 `--scm-connector-host` 一起需要 | 您的组织的 GitHub Enterprise Server 连接的数字 ID。 |

89| `--scm-connector-provider <slug>` | `ghe` | 标识提供程序的路径段,匹配 `^[a-z0-9-]{1,32}$`。 |91| `--scm-connector-provider <slug>` | `ghe` | 标识提供程序的路径段,匹配 `^[a-z0-9-]{1,32}$`。 |

90| `--scm-connector-ca-file <path>` | 未设置 | 额外的 CA 包,PEM 格式,用于到 GitHub Enterprise Server 主机的 TLS 连接。 |92| `--scm-connector-ca-file <path>` | 未设置 | 额外的 CA 包,PEM 格式,用于到 GitHub Enterprise Server 主机的 TLS 连接。 |

91| `--scm-connector-host-rewrite <from>=<to_host:to_port>` | 未设置 | 仅用于端到端测试:重定向 TCP 连接,同时将 Host 标头和 TLS SNI 保持为 `--scm-connector-host`。 |93| `--scm-connector-host-rewrite <from>=<to_host:to_port>` | 未设置 | 仅用于端到端测试:重定向 TCP 连接,同时将 Host 标头和 TLS SNI 保持为 `--scm-connector-host`。 |

92 94 

93连接器使用编排器的现有环境密钥进行身份验证并自动重新连接:在连接断开时使用指数退避,或当控制平面关闭连接因为另一个编排器副本已持有它时使用固定的 30 秒延迟。95在每次连接尝试时,编排器发送其现有的环境密钥,并使用指数退避自动重试,上限为 30 秒加抖动。

94 96 

95<h2 id="environment-variable-only-settings">97<h2 id="environment-variable-only-settings">

96 仅环境变量设置98 仅环境变量设置

Details

310* **无法显示对话框的交互式会话**:Claude Code 不应用传递的设置,保留最后批准的设置。对话框在下一个可以显示它的会话中出现。需要 Claude Code v2.1.211 或更高版本。310* **无法显示对话框的交互式会话**:Claude Code 不应用传递的设置,保留最后批准的设置。对话框在下一个可以显示它的会话中出现。需要 Claude Code v2.1.211 或更高版本。

311* **`claude install` 或 `claude update`**:Claude Code 在任何命令期间都不显示对话框。该命令使用最后批准的设置运行,对话框在您的下一个交互式会话中出现。如果 Claude Code 在启动时等待设置获取,例如设置了 [`forceRemoteSettingsRefresh`](#enforce-fail-closed-startup) 或在[Claude 应用网关](/docs/zh-CN/claude-apps-gateway)部署上,它会在命令期间显示对话框,从管道运行的安装失败;请参阅[安装期间 `Raw mode is not supported`](/docs/zh-CN/troubleshoot-install#raw-mode-is-not-supported-during-install)。在 v2.1.246 之前,Claude Code 也尝试在这些命令期间显示对话框。311* **`claude install` 或 `claude update`**:Claude Code 在任何命令期间都不显示对话框。该命令使用最后批准的设置运行,对话框在您的下一个交互式会话中出现。如果 Claude Code 在启动时等待设置获取,例如设置了 [`forceRemoteSettingsRefresh`](#enforce-fail-closed-startup) 或在[Claude 应用网关](/docs/zh-CN/claude-apps-gateway)部署上,它会在命令期间显示对话框,从管道运行的安装失败;请参阅[安装期间 `Raw mode is not supported`](/docs/zh-CN/troubleshoot-install#raw-mode-is-not-supported-during-install)。在 v2.1.246 之前,Claude Code 也尝试在这些命令期间显示对话框。

312* **错误在您回答前关闭对话框**:Claude Code 不应用传递的设置,保留最后批准的设置。它在下一个可以显示它的会话中再次显示对话框。312* **错误在您回答前关闭对话框**:Claude Code 不应用传递的设置,保留最后批准的设置。它在下一个可以显示它的会话中再次显示对话框。

313* **非交互式运行**,例如 `claude -p` 或 Agent SDK 会话:Claude Code 无法显示对话框,因此当传递的设置需要批准时,它仅为该运行应用它们。它不将它们记录为已批准或写入[本地缓存](#fetch-and-caching-behavior),下一个交互式会话会显示对话框。在用户在交互式会话中批准之前,每个非交互式运行都会在启动时再次获取设置。在 v2.1.207 之前,非交互式运行会将设置保存为已批准,因此后来的交互式会话永远不会为它们显示对话框。313* **非交互式运行**,例如 `claude -p`、Agent SDK 会话或 VS Code 扩展的聊天面板或桌面应用的代码选项卡中的会话:Claude Code 无法显示对话框,因此当传递的设置需要批准时,它仅为该运行应用它们。它不将它们记录为已批准或写入[本地缓存](#fetch-and-caching-behavior),下一个交互式会话会显示对话框。在用户在交互式会话中批准之前,每个非交互式运行都会在启动时再次获取设置。在 v2.1.207 之前,非交互式运行会将设置保存为已批准,因此后来的交互式会话永远不会为它们显示对话框。

314 314 

315<h4 id="environment-variables-and-the-approval-dialog">315<h4 id="environment-variables-and-the-approval-dialog">

316 环境变量和批准对话框316 环境变量和批准对话框

Details

595| [`agent`](#agent) | 将每个会话作为具有其提示、工具和模型的命名[子代理](/docs/zh-CN/sub-agents)启动 | 代理、会话和工作树 | Any file |595| [`agent`](#agent) | 将每个会话作为具有其提示、工具和模型的命名[子代理](/docs/zh-CN/sub-agents)启动 | 代理、会话和工作树 | Any file |

596| [`agentPushNotifEnabled`](#agentpushnotifenabled) | 让 Claude 在决定时向您的手机发送[推送通知](/docs/zh-CN/remote-control#mobile-push-notifications) | 远程、桌面和通知 | Any file |596| [`agentPushNotifEnabled`](#agentpushnotifenabled) | 让 Claude 在决定时向您的手机发送[推送通知](/docs/zh-CN/remote-control#mobile-push-notifications) | 远程、桌面和通知 | Any file |

597| [`allowAllClaudeAiMcps`](#allowallclaudeaimcps) | 加载[claude.ai 连接器](/docs/zh-CN/mcp),Claude Code 与部署的 [`managed-mcp.json`](/docs/zh-CN/managed-mcp#exclusive-control-with-managed-mcp-json) 一起自行获取 | MCP | Managed |597| [`allowAllClaudeAiMcps`](#allowallclaudeaimcps) | 加载[claude.ai 连接器](/docs/zh-CN/mcp),Claude Code 与部署的 [`managed-mcp.json`](/docs/zh-CN/managed-mcp#exclusive-control-with-managed-mcp-json) 一起自行获取 | MCP | Managed |

598| [`allowClaudeInChromeWithManagedMcp`](#allowclaudeinchromewithmanagedmcp) | 让内置的[Chrome 中的 Claude](/docs/zh-CN/chrome)服务器与部署的 [`managed-mcp.json`](/docs/zh-CN/managed-mcp#exclusive-control-with-managed-mcp-json) 一起运行 | MCP | Managed |

598| [`allowedChannelPlugins`](#allowedchannelplugins) | 替换可以推送消息的[频道插件](/docs/zh-CN/channels#restrict-which-channel-plugins-can-run)的默认允许列表 | 插件和技能 | Managed |599| [`allowedChannelPlugins`](#allowedchannelplugins) | 替换可以推送消息的[频道插件](/docs/zh-CN/channels#restrict-which-channel-plugins-can-run)的默认允许列表 | 插件和技能 | Managed |

599| [`allowedHttpHookUrls`](#allowedhttphookurls) | 限制[HTTP hooks](/docs/zh-CN/hooks)可以针对的 URL | Hooks 和自动化 | Any file |600| [`allowedHttpHookUrls`](#allowedhttphookurls) | 限制[HTTP hooks](/docs/zh-CN/hooks)可以针对的 URL | Hooks 和自动化 | Any file |

600| [`allowedMcpServers`](#allowedmcpservers) | 允许列表用户可以添加的[MCP 服务器](/docs/zh-CN/mcp) | MCP | Any file |601| [`allowedMcpServers`](#allowedmcpservers) | 允许列表用户可以添加的[MCP 服务器](/docs/zh-CN/mcp) | MCP | Any file |


1435 `allowManagedPermissionRulesOnly`1436 `allowManagedPermissionRulesOnly`

1436</h3>1437</h3>

1437 1438 

1438使托管设置成为权限规则的唯一设置源。Claude Code 随后会忽略用户、项目、本地和 `--settings` 文件中的 `allow`、`ask` 和 `deny` 规则,忽略 `--allowedTools`,隐藏权限提示中的始终允许选项,并停止保存新规则。1439使托管设置成为权限规则的唯一设置来源。Claude Code 随后会忽略用户、项目、本地和 `--settings` 文件中的 `allow`、`ask` 和 `deny` 规则,忽略 `--allowedTools`,隐藏权限提示中的始终允许选项,并停止保存新规则。

1439 1440 

1440当[来自嵌入主机的父设置](/docs/zh-CN/managed-settings#let-an-embedding-host-add-policy)适用时,Claude Code 将其视为托管层的一部分。它删除其 `allow` 规则和 `additionalDirectories`,并保留其 `deny` 和 `ask` 规则,除了 `Read` 和 `Edit` 规则,其模式以 `!` 开头。主机无法使用 `!` 规则从托管规则中切割出路径,无论您是否设置此键。1441当[来自嵌入主机的父设置](/docs/zh-CN/managed-settings#let-an-embedding-host-add-policy)适用时,Claude Code 将其视为托管层的一部分。它删除其 `allow` 规则和 `additionalDirectories`,并保留其 `deny` 和 `ask` 规则,除了模式以 `!` 开头的 `Read` 和 `Edit` 规则。无论您是否设置此键,主机都无法使用 `!` 规则从托管规则中排除路径。

1441 1442 

1442`--disallowedTools` 规则和当前会话的 `deny` 和 `ask` 规则仍然适用,包括在 Claude Code 在会话中途重新加载设置后。它们仅限制,因此无法扩展托管规则授予的权限。在 v2.1.257 之前,Claude Code 在第一次设置重新加载时删除了这些命令行和会话规则。1443`--disallowedTools` 规则以及当前会话的 `deny` 和 `ask` 规则仍然适用,包括在 Claude Code 在会话中途重新加载设置后。它们仅限制,因此无法扩展托管规则授予的权限。在 v2.1.257 之前,Claude Code 在第一次设置重新加载时删除了这些命令行和会话规则。

1443 1444 

1444有关 `!` 模式在 `--disallowedTools` 或会话规则中可以切割出什么,请参阅[Read 和 Edit 规则](/docs/zh-CN/permissions#read-and-edit)。1445有关 `--disallowedTools` 或会话规则中的 `!` 模式可以排除什么,请参阅 [Read 和 Edit 规则](/docs/zh-CN/permissions#read-and-edit)。

1445 1446 

1446* **作用域**: [`Managed`](#scopes)1447* **作用域**: [`Managed`](#scopes)

1447* **类型**: 布尔值1448* **类型**: 布尔值

1448 * `true`:托管设置成为权限规则的唯一设置源1449 * `true`: 托管设置成为权限规则的唯一设置来源

1449 * `false`:Claude Code 除了应用托管规则外,还应用来自用户、项目、本地和 `--settings` 文件的权限规则1450 * `false`: Claude Code 除了应用托管规则外,还应用来自用户、项目、本地和 `--settings` 文件的权限规则

1450* **默认值**: 未设置,因此 Claude Code 应用来自用户、项目和本地设置以及 `--settings` 的权限规则,以及托管规则1451* **默认值**: 未设置,因此 Claude Code 应用来自用户、项目和本地设置以及 `--settings` 的权限规则,以及托管规则

1451 1452 

1452```json managed-settings.json theme={null}1453```json managed-settings.json theme={null}


1461 `autoMode`1462 `autoMode`

1462</h3>1463</h3>

1463 1464 

1464向[自动模式](/docs/zh-CN/permission-modes#eliminate-prompts-with-auto-mode)分类器阻止和允许的内容添加您自己的规则。使用它告诉分类器您的组织信任哪些存储库、存储桶和域,以便它停止阻止常规内部操作。分类器附带[内置允许和拒绝规则](/docs/zh-CN/auto-mode-config#inspect-the-defaults-and-your-effective-config)。在数组中包含字面字符串 `"$defaults"` 以在该位置保留这些内置规则并在其周围添加您的规则;省略它以用您的规则替换它们。1465添加您自己的规则到[自动模式](/docs/zh-CN/permission-modes#eliminate-prompts-with-auto-mode)分类器阻止和允许的内容。使用它告诉分类器您的组织信任哪些仓库、存储桶和域,以便它停止阻止常规内部操作。分类器附带[内置允许和拒绝规则](/docs/zh-CN/auto-mode-config#inspect-the-defaults-and-your-effective-config)。在数组中包含字面字符串 `"$defaults"` 以在该位置保留这些内置规则并在其周围添加您的规则;省略它以用您的规则替换它们。

1465 1466 

1466* **作用域**: [`User or managed`](#scopes)1467* **作用域**: [`User or managed`](#scopes)

1467* **类型**: 包含 `environment`、`allow`、`soft_deny` 和 `hard_deny` 散文规则数组的对象,加上 [`classifyAllShell`](#automode-classifyallshell) 布尔值1468* **类型**: 包含 `environment`、`allow`、`soft_deny` 和 `hard_deny` 散文规则数组的对象,加上 [`classifyAllShell`](#automode-classifyallshell) 布尔值

1468* **默认值**: 未设置,因此分类器仅使用其[内置规则](/docs/zh-CN/auto-mode-config#inspect-the-defaults-and-your-effective-config)1469* **默认值**: 未设置,因此分类器仅使用其[内置规则](/docs/zh-CN/auto-mode-config#inspect-the-defaults-and-your-effective-config)

1469 1470 

1470此示例通过 `"$defaults"` 保留内置的 `soft_deny` 规则,并添加一个阻止 `terraform apply` 的规则:1471此示例保留内置的 `soft_deny` 规则(通过 `"$defaults"`),并添加一个阻止 `terraform apply` 的规则:

1471 1472 

1472```json settings.json theme={null}1473```json settings.json theme={null}

1473{1474{


1477}1478}

1478```1479```

1479 1480 

1480当这些文件中的多个文件设置相同的数组时,Claude Code 会连接这些条目。有关规则格式以及如何应用每个数组,请参阅[配置自动模式](/docs/zh-CN/auto-mode-config)。1481当多个文件设置相同的数组时,Claude Code 会连接这些条目。有关规则格式以及如何应用每个数组,请参阅[配置自动模式](/docs/zh-CN/auto-mode-config)。

1481 1482 

1482<h3 id="automode-classifyallshell">1483<h3 id="automode-classifyallshell">

1483 `autoMode.classifyAllShell`1484 `autoMode.classifyAllShell`

1484</h3>1485</h3>

1485 1486 

1486在自动模式处于活动状态时,通过自动模式分类器发送每个 Bash 和 PowerShell 命令。默认情况下,自动模式仅暂停可能运行任意代码的允许规则:工具范围和通配符规则(如 `Bash(*)`)以及解释器或 shell 包装器前缀(如 `Bash(python *)`)。任何其他允许规则匹配的命令(如 `Bash(npm test)`)会跳过分类器,除非它携带[每命令允许的域](/docs/zh-CN/sandboxing#per-command-allowed-domains-in-auto-mode)。当它跳过时,规则的前缀未预期的破坏性参数可能会被看不见地通过。设置此键会为会话暂停每个 shell 允许规则,以便分类器看到每个命令。需要 Claude Code v2.1.193 或更高版本。1487在自动模式处于活动状态时,将每个 Bash 和 PowerShell 命令通过自动模式分类器。默认情况下,自动模式仅暂停可以运行任意代码的允许规则:工具范围和通配符规则(如 `Bash(*)`)以及解释器或 shell 包装器前缀(如 `Bash(python *)`)。任何其他允许规则匹配的命令(如 `Bash(npm test)`)会跳过分类器,除非它携带[每个命令允许的域](/docs/zh-CN/sandboxing#per-command-allowed-domains-in-auto-mode)。当它跳过时,规则前缀未预期的破坏性参数可能会通过而不被看到。设置此键会为会话暂停每个 shell 允许规则,以便分类器看到每个命令。需要 Claude Code v2.1.193 或更高版本。

1487 1488 

1488* **作用域**: [`User or managed`](#scopes)。在读取 [`autoMode`](#automode) 的任何地方读取。1489* **作用域**: [`User or managed`](#scopes)。在读取 [`autoMode`](#automode) 的任何地方读取。

1489* **类型**: 布尔值1490* **类型**: 布尔值

1490 * `true`:在自动模式处于活动状态时,Claude Code 通过分类器发送每个 Bash 和 PowerShell 命令,并暂停您的 shell 允许规则;在自动模式之外,规则仍然适用1491 * `true`: 当自动模式处于活动状态时,Claude Code 将每个 Bash 和 PowerShell 命令通过分类器发送,并暂停您的 shell 允许规则;在自动模式之外,规则仍然适用

1491 * `false`:自动模式仅暂停可能运行任意代码的允许规则,如 `Bash(*)` 和 `Bash(python *)`;任何其他允许规则匹配的命令会跳过分类器,除非它携带[每命令允许的域](/docs/zh-CN/sandboxing#per-command-allowed-domains-in-auto-mode),每个其他 shell 命令都会通过它1492 * `false`: 自动模式仅暂停可以运行任意代码的允许规则,如 `Bash(*)` 和 `Bash(python *)`;任何其他允许规则匹配的命令会跳过分类器,除非它携带[每个命令允许的域](/docs/zh-CN/sandboxing#per-command-allowed-domains-in-auto-mode),每个其他 shell 命令都会通过它

1492* **默认值**: `false`1493* **默认值**: `false`

1493 1494 

1494```json settings.json theme={null}1495```json settings.json theme={null}


1499}1500}

1500```1501```

1501 1502 

1502请参阅[通过分类器路由所有 shell 命令](/docs/zh-CN/auto-mode-config#route-all-shell-commands-through-the-classifier)。需要 Claude Code v2.1.193 或更高版本。1503请参阅[将所有 shell 命令路由通过分类器](/docs/zh-CN/auto-mode-config#route-all-shell-commands-through-the-classifier)。需要 Claude Code v2.1.193 或更高版本。

1503 1504 

1504<h3 id="disableautomode">1505<h3 id="disableautomode">

1505 `disableAutoMode`1506 `disableAutoMode`

1506</h3>1507</h3>

1507 1508 

1508从 `Shift+Tab` 循环中删除[自动模式](/docs/zh-CN/permission-modes#eliminate-prompts-with-auto-mode)。任何本应[以自动模式启动](/docs/zh-CN/permission-modes#which-mode-a-session-starts-in)的会话,无论是来自 `--permission-mode auto`、设置文件还是内置默认值,都会改为以 `default` 启动。管理员在托管设置中设置它以防止其组织中的开发人员使用自动模式。1509从 `Shift+Tab` 循环中删除[自动模式](/docs/zh-CN/permission-modes#eliminate-prompts-with-auto-mode)。任何本应[以自动模式启动](/docs/zh-CN/permission-modes#which-mode-a-session-starts-in)的会话,无论是来自 `--permission-mode auto`、设置文件还是内置默认值,都改为以 `default` 启动。管理员在托管设置中设置它以防止其组织中的开发人员使用自动模式。

1509 1510 

1510* **作用域**: [`Any file`](#scopes)。在[托管设置](/docs/zh-CN/managed-settings)中最有用,用户无法覆盖它。也接受在 `permissions` 下作为 `permissions.disableAutoMode`。1511* **作用域**: [`Any file`](#scopes)。在[托管设置](/docs/zh-CN/managed-settings)中最有用,用户无法覆盖它。也接受在 `permissions` 下作为 `permissions.disableAutoMode`。

1511* **类型**: 字符串 `"disable"`1512* **类型**: 字符串 `"disable"`


1521 `permissions`1522 `permissions`

1522</h3>1523</h3>

1523 1524 

1524控制 Claude 可以在不询问的情况下使用哪些工具、哪些工具始终提示,以及哪些工具被阻止,并设置会话启动的[权限模式](/docs/zh-CN/permission-modes)。下面的每个 `permissions.*` 键都嵌套在此对象下。1525控制 Claude 在不询问的情况下可以使用哪些工具、哪些工具始终提示,以及哪些工具被阻止,并设置会话启动的[权限模式](/docs/zh-CN/permission-modes)。下面的每个 `permissions.*` 键都嵌套在此对象下。

1525 1526 

1526* **作用域**: [`Any file`](#scopes)1527* **作用域**: [`Any file`](#scopes)

1527* **类型**: 包含 `allow`、`ask`、`deny`、`additionalDirectories`、`blockReadsOutsideWorkingDirectories`、`defaultMode`、`disableBypassPermissionsMode` 和 `disableAutoMode` 的对象1528* **类型**: 包含 `allow`、`ask`、`deny`、`additionalDirectories`、`blockReadsOutsideWorkingDirectories`、`defaultMode`、`disableBypassPermissionsMode` 和 `disableAutoMode` 的对象

1528* **默认值**: 未设置1529* **默认值**: 未设置

1529 1530 

1530此示例在不询问的情况下批准 `npm run` 命令,在 `git push` 之前提示,阻止读取 `.env`,并在 `acceptEdits` 中启动会话:1531此示例批准 `npm run` 命令而不询问,在 `git push` 前提示,阻止读取 `.env`,并以 `acceptEdits` 启动会话:

1531 1532 

1532```json settings.json theme={null}1533```json settings.json theme={null}

1533{1534{


1540}1541}

1541```1542```

1542 1543 

1543这三个规则数组共享一个语法;请参阅 `permissions.allow` 下的[权限规则语法](#permission-rule-syntax)。有关来自不同文件的权限规则如何组合,请参阅[权限规则如何跨作用域合并](/docs/zh-CN/permissions#settings-precedence);有关设置键如何组合,请参阅设置指南上的[设置优先级](/docs/zh-CN/settings#settings-precedence)。1544三个规则数组共享一个语法;请参阅 `permissions.allow` 下的[权限规则语法](#permission-rule-syntax)。有关来自不同文件的权限规则如何组合,请参阅[权限规则如何跨作用域合并](/docs/zh-CN/permissions#settings-precedence);有关设置键如何组合,请参阅设置指南上的[设置优先级](/docs/zh-CN/settings#settings-precedence)。

1544 1545 

1545<h3 id="useautomodeduringplan">1546<h3 id="useautomodeduringplan">

1546 `useAutoModeDuringPlan`1547 `useAutoModeDuringPlan`

1547</h3>1548</h3>

1548 1549 

1549选择 Claude Code 是否使用自动模式分类器在计划模式下审查 shell 命令。使用默认值 `true`,分类器在规划期间审查每个命令,当自动模式可用且您看不到提示时,除了[关键路径移除](/docs/zh-CN/permission-modes#critical-paths)。设置 `false` 以获得内置只读集之外的每个命令的权限提示。在 `/config` 中显示为**在计划期间使用自动模式**。1550选择 Claude Code 是否使用自动模式分类器在计划模式下审查 shell 命令。使用默认值 `true`,当自动模式可用且您看不到提示时,分类器在规划期间审查每个命令,除了[关键路径删除](/docs/zh-CN/permission-modes#critical-paths)。设置 `false` 以获得对内置只读集之外的每个命令的权限提示。在 `/config` 中显示为**在计划期间使用自动模式**。

1550 1551 

1551* **作用域**: [`User, local, or managed`](#scopes)。存储库无法为您关闭它。1552* **作用域**: [`User, local, or managed`](#scopes)。存储库无法为您关闭它。

1552* **类型**: 布尔值1553* **类型**: 布尔值

1553 * `true`:与未设置相同;当自动模式可用时,分类器在规划期间审查每个 shell 命令,而不是提示您,除了[关键路径移除](/docs/zh-CN/permission-modes#critical-paths)。任何这些文件中的 `false` 仍然会关闭它1554 * `true`: 与未设置相同;当自动模式可用时,分类器在规划期间审查每个 shell 命令而不是提示您,除了[关键路径删除](/docs/zh-CN/permission-modes#critical-paths)。这些文件中的任何 `false` 仍然会关闭它

1554 * `false`:您会获得内置只读集之外的每个命令的权限提示1555 * `false`: 您会获得对内置只读集之外的每个命令的权限提示

1555* **默认值**: `true`1556* **默认值**: `true`

1556 1557 

1557```json settings.json theme={null}1558```json settings.json theme={null}


1569* **作用域**: [`Any file`](#scopes)1570* **作用域**: [`Any file`](#scopes)

1570* **类型**: 权限规则字符串数组1571* **类型**: 权限规则字符串数组

1571* **默认值**: 未设置1572* **默认值**: 未设置

1572* **每会话覆盖**: `--allowedTools` 为一个会话添加允许规则,来自任何设置文件的拒绝规则仍然会阻止它命名的工具1573* **每个会话覆盖**: `--allowedTools` 为一个会话添加允许规则,来自任何设置文件的拒绝规则仍然会阻止它命名的工具

1573 1574 

1574此示例批准 `git diff` 并让 Claude Code 读取您的 `.zshrc` 而不询问:1575此示例批准 `git diff` 并让 Claude Code 读取您的 `.zshrc` 而不询问:

1575 1576 


1587 权限规则语法1588 权限规则语法

1588</h4>1589</h4>

1589 1590 

1590权限规则遵循格式 `Tool` 或 `Tool(specifier)`。Claude Code 首先评估 `deny` 规则,然后是 `ask`,然后是 `allow`,第一个匹配决定,无论每个规则有多具体;请参阅[权限规则评估顺序](/docs/zh-CN/permissions#manage-permissions)。1591权限规则遵循格式 `Tool` 或 `Tool(specifier)`。Claude Code 首先评估 `deny` 规则,然后是 `ask`,然后是 `allow`,第一个匹配决定,无论每个规则的具体程度如何;请参阅[权限规则评估顺序](/docs/zh-CN/permissions#manage-permissions)。

1591 1592 

1592每行显示一个规则形状及其匹配的内容。1593每行显示一个规则形状及其匹配的内容。

1593 1594 

1594| 规则 | 它匹配的内容 |1595| 规则 | 匹配的内容 |

1595| :- | :- |1596| :- | :- |

1596| `Bash` | 每个 Bash 命令 |1597| `Bash` | 每个 Bash 命令 |

1597| `Bash(npm run *)` | 以 `npm run` 开头的命令 |1598| `Bash(npm run *)` | 以 `npm run` 开头的命令 |


1604 `permissions.ask`1605 `permissions.ask`

1605</h3>1606</h3>

1606 1607 

1607列出即使在会否则批准它们的权限模式(如 `acceptEdits` 或 `bypassPermissions`)中也会提示您确认的工具使用。在 `dontAsk` 模式中,Claude Code 拒绝匹配的工具使用,而不是提示。1608列出提示您确认的工具使用,即使在本应批准它们的权限模式中,如 `acceptEdits` 或 `bypassPermissions`。在 `dontAsk` 模式中,Claude Code 拒绝匹配的工具使用而不是提示。

1608 1609 

1609* **作用域**: [`Any file`](#scopes)1610* **作用域**: [`Any file`](#scopes)

1610* **类型**: 权限规则字符串数组1611* **类型**: 权限规则字符串数组


1624 `permissions.deny`1625 `permissions.deny`

1625</h3>1626</h3>

1626 1627 

1627列出 Claude Code 阻止的工具使用。将其用于保存 API 密钥、机密或环境值的文件:Claude Code 从文件发现和搜索结果中排除匹配的文件,拒绝读取它们,并在匹配的路径上阻止[编辑和写入工具](/docs/zh-CN/permissions#read-and-edit)。读取和编辑拒绝规则适用于 Claude 的内置文件工具、Claude Code 在 Bash 中识别的文件命令(如 `cat`、`head`、`tail`、`sed` 和 `tee`)以及 Bash[重定向](/docs/zh-CN/permissions#redirections)的目标(如 `> file` 和 `< file`);它们不适用于读取文件而不命名它们的命令(如 `grep -r pattern .`)或任意子进程,因此对于操作系统级别的强制执行,请[启用沙箱](/docs/zh-CN/sandboxing)。1628列出 Claude Code 阻止的工具使用。将其用于保存 API 密钥、机密或环境值的文件:Claude Code 从文件发现和搜索结果中排除匹配的文件,拒绝读取它们,并在匹配的路径上阻止 [Edit 和 Write 工具](/docs/zh-CN/permissions#read-and-edit)。

1629 

1630Read 和 Edit 拒绝规则适用于 Claude 的内置文件工具、Claude Code 在 Bash 中识别的文件命令(如 `cat`、`head`、`tail`、`sed` 和 `tee`)以及 Bash [重定向](/docs/zh-CN/permissions#redirections)的目标(如 `> file` 和 `< file`);它们不适用于读取文件而不命名它们的命令(如 `grep -r pattern .`)或任意子进程,因此对于操作系统级别的强制执行,请[启用沙箱](/docs/zh-CN/sandboxing)。

1628 1631 

1629* **作用域**: [`Any file`](#scopes)1632* **作用域**: [`Any file`](#scopes)

1630* **类型**: 权限规则字符串数组1633* **类型**: 权限规则字符串数组

1631* **默认值**: 未设置1634* **默认值**: 未设置

1632* **每会话覆盖**: `--disallowedTools` 为一个会话添加拒绝规则,与此键一起1635* **每个会话覆盖**: `--disallowedTools` 为一个会话添加拒绝规则,与此键一起

1633 1636 

1634此示例拒绝读取 `.env` 文件、`secrets` 目录和凭据文件,并阻止 `curl` 命令:1637此示例拒绝读取 `.env` 文件、`secrets` 目录和凭证文件,并阻止 `curl` 命令:

1635 1638 

1636```json settings.json theme={null}1639```json settings.json theme={null}

1637{1640{


1647}1650}

1648```1651```

1649 1652 

1650工具名称接受 glob 模式,因此 `"*"` 拒绝每个工具,`"mcp__*"` 拒绝每个 MCP 工具。只要任何其他工具仍然可用于 Claude,Claude Code 就会忽略 [`EndConversation`](/docs/zh-CN/tools-reference#endconversation-tool-behavior) 工具的拒绝规则。`Bash` 拒绝规则匹配 Claude 编写的命令,因此 `Bash(curl *)` 不会停止 `/usr/bin/curl` 或 `sh -c 'curl …'`;请参阅[Bash 规则不匹配的内容](/docs/zh-CN/permissions#bash-rule-limits)。此键替换已弃用的 `ignorePatterns` 配置。1653工具名称接受 glob 模式,因此 `"*"` 拒绝每个工具,`"mcp__*"` 拒绝每个 MCP 工具。只要任何其他工具仍然可用于 Claude,Claude Code 就会忽略 [`EndConversation`](/docs/zh-CN/tools-reference#endconversation-tool-behavior) 工具的拒绝规则。`Bash` 拒绝规则与 Claude 编写的命令匹配,因此 `Bash(curl *)` 不会停止 `/usr/bin/curl` 或 `sh -c 'curl …'`;请参阅 [Bash 规则不匹配的内容](/docs/zh-CN/permissions#bash-rule-limits)。此键替换已弃用的 `ignorePatterns` 配置。

1651 1654 

1652<h3 id="permissions-additionaldirectories">1655<h3 id="permissions-additionaldirectories">

1653 `permissions.additionalDirectories`1656 `permissions.additionalDirectories`

1654</h3>1657</h3>

1655 1658 

1656给予 Claude 对您启动的目录之外的目录的文件访问权限,作为额外的[工作目录](/docs/zh-CN/permissions#working-directories)。大多数 `.claude/` 配置[未从这些目录发现](/docs/zh-CN/permissions#additional-directories-grant-file-access-not-configuration)。1659给予 Claude 对您启动的目录之外的目录的文件访问权限,作为额外的[工作目录](/docs/zh-CN/permissions#working-directories)。大多数 `.claude/` 配置[不会从这些目录中发现](/docs/zh-CN/permissions#additional-directories-grant-file-access-not-configuration)。

1657 1660 

1658* **作用域**: [`Any file`](#scopes)1661* **作用域**: [`Any file`](#scopes)

1659* **类型**: 目录路径数组1662* **类型**: 目录路径数组

1660* **默认值**: 未设置1663* **默认值**: 未设置

1661* **每会话覆盖**: `--add-dir` 和 `/add-dir` 为一个会话添加目录,与此键一起1664* **每个会话覆盖**: `--add-dir` 和 `/add-dir` 为一个会话添加目录,与此键一起

1662 1665 

1663```json settings.json theme={null}1666```json settings.json theme={null}

1664{1667{


1674 `permissions.blockReadsOutsideWorkingDirectories`1677 `permissions.blockReadsOutsideWorkingDirectories`

1675</h3>1678</h3>

1676 1679 

1677在每个权限模式(包括 `bypassPermissions`)中,使 Claude 的文件工具拒绝在您的[工作目录](/docs/zh-CN/permissions#working-directories)之外的读取。Claude Code 拒绝这些路径上的 `Read`、`Grep`、`Glob` 和 `LSP` 调用,并告诉 Claude 要求您使用 `/add-dir` 添加目录。Claude Code 本身需要的文件保持可读,如您的技能、插件、规则、代理、命令以及 `~/.claude/` 下的 `CLAUDE.md` 内存文件。需要 Claude Code v2.1.257 或更高版本。1680使 Claude 的文件工具在每种权限模式下拒绝在[工作目录](/docs/zh-CN/permissions#working-directories)之外的读取,包括 `bypassPermissions`。Claude Code 拒绝这些路径上的 `Read`、`Grep`、`Glob` 和 `LSP` 调用,并告诉 Claude 要求您使用 `/add-dir` 添加目录。Claude Code 本身需要的文件保持可读,如您的技能、插件、规则、代理、命令以及 `~/.claude/` 下的 `CLAUDE.md` 内存文件。需要 Claude Code v2.1.257 或更高版本。

1678 1681 

1679Claude Code 不会以相同的方式拒绝 shell 命令:1682Claude Code 不以相同方式拒绝 shell 命令:

1680 1683 

1681* [没有模式自动批准的操作](/docs/zh-CN/permission-modes#actions-no-mode-auto-approves)涵盖了读取此类路径的 shell 命令何时提示您1684* [没有模式自动批准的操作](/docs/zh-CN/permission-modes#actions-no-mode-auto-approves)涵盖读取此类路径的 shell 命令何时提示您

1682* [块下的沙箱命令](#sandboxed-commands-under-the-block)涵盖了沙箱命令可以读取的内容1685* [块下的沙箱命令](#sandboxed-commands-under-the-block)涵盖沙箱命令可以读取的内容

1683 1686 

1684shell 解析器无法追踪的 Bash 命令(如多次更改目录或运行子 shell 的命令)会在自动模式和 `bypassPermissions` 模式中提示您。即使命令未命名工作目录之外的任何路径,提示也会出现。当命令在[沙箱](/docs/zh-CN/sandboxing)中运行且沙箱强制执行该块时,此提示不适用。1687shell 解析器无法追踪的 Bash 命令(如更改目录多次或运行子 shell 的命令)即使在自动模式和 `bypassPermissions` 模式下也会提示您。即使命令未命名工作目录之外的任何路径,提示也会出现。当命令在[沙箱](/docs/zh-CN/sandboxing)中运行且沙箱强制执行块时,此提示不适用。

1685 1688 

1686Claude Code 也会在此处写入 `true`,当您选择在[自动模式的提示中阻止此类读取(在第一次读取工作目录之外之前)](/docs/zh-CN/permission-modes#first-read-outside-the-working-directories)时。1689Claude Code 还在您选择在[自动模式的提示中阻止此类读取(在第一次在工作目录之外读取之前)](/docs/zh-CN/permission-modes#first-read-outside-the-working-directories)时在此处写入 `true`。

1687 1690 

1688* **作用域**: [`Any file`](#scopes)。任何文件中的 `true` 都会应用,因此存储库可以为自己打开该块,但无法解除您设置的块。1691* **作用域**: [`Any file`](#scopes)。任何文件中的 `true` 都适用,因此存储库可以为自己打开块,但无法解除您的块。

1689* **类型**: 布尔值1692* **类型**: 布尔值

1690 * `true`:Claude 的文件工具拒绝在工作目录之外的读取1693 * `true`: Claude 的文件工具拒绝在工作目录之外的读取

1691 * `false`:与未设置相同;另一个文件中的块仍然适用如果它设置 `true`1694 * `false`: 与未设置相同;如果另一个文件设置 `true`,块仍然适用

1692* **默认值**: 未设置,因此工作目录之外的读取遵循您的[权限模式](/docs/zh-CN/permission-modes)1695* **默认值**: 未设置,因此在工作目录之外的读取遵循您的[权限模式](/docs/zh-CN/permission-modes)

1693 1696 

1694```json settings.json theme={null}1697```json settings.json theme={null}

1695{1698{


1699}1702}

1700```1703```

1701 1704 

1702您使用 `--add-dir`、`/add-dir` 或用户或托管设置中的 `additionalDirectories` 添加的目录计为该块的工作目录。仅在存储库设置中添加的目录不计:那些在 `.claude/settings.json` 中的,以及在 `.claude/settings.local.json` 中的,除非 git 报告该文件为未跟踪。在不是 git 存储库的目录中,或当 git 跟踪该文件时,Claude Code 将 `.claude/settings.local.json` 视为存储库设置,因此改为在用户设置中放置您想保持可读的目录。1705您使用 `--add-dir`、`/add-dir` 或用户或托管设置中的 `additionalDirectories` 添加的目录计为块的工作目录。仅在存储库设置中添加的目录不计:`.claude/settings.json` 中的目录,以及 `.claude/settings.local.json` 中的目录,除非 git 报告该文件为未跟踪。在不是 git 存储库的目录中,或当 git 跟踪该文件时,Claude Code 将 `.claude/settings.local.json` 视为存储库设置,因此将您想要保持可读的目录放在用户设置中。

1703 1706 

1704当 [`autoMemoryDirectory`](#automemorydirectory) 来自项目的 `.claude/settings.json`,或来自被[视为存储库提供的](/docs/zh-CN/permissions#when-your-local-settings-file-needs-trust) `.claude/settings.local.json` 时,Claude Code 不会从该目录加载任何[自动内存](/docs/zh-CN/memory#storage-location),也不会保存任何到其中。1707当 [`autoMemoryDirectory`](#automemorydirectory) 来自项目的 `.claude/settings.json` 或来自[视为存储库提供的](/docs/zh-CN/permissions#when-your-local-settings-file-needs-trust) `.claude/settings.local.json` 时,Claude Code 不会从该目录加载任何[自动内存](/docs/zh-CN/memory#storage-location),也不会将任何保存到它。

1705 1708 

1706要解除该块,从设置它的每个设置文件中删除该键,然后启动新会话。1709要解除块,从设置它的每个设置文件中删除该键,然后启动新会话。

1707 1710 

1708<h4 id="sandboxed-commands-under-the-block">1711<h4 id="sandboxed-commands-under-the-block">

1709 块下的沙箱命令1712 块下的沙箱命令

1710</h4>1713</h4>

1711 1714 

1712当[沙箱](/docs/zh-CN/sandboxing)打开时,该块也涵盖沙箱命令。Claude Code 拒绝它们对您的主目录和保存用户文件的其他根的读取访问:`/Users`、`/home`、`/root`、`/Volumes`、`/mnt`、`/media`、`/run/media` 和 `/srv`。然后它重新打开工作目录、[worktrees](/docs/zh-CN/worktrees) Claude Code 在会话中创建的、会话临时目录以及 `~/.claude` 的命令需要的部分,如技能和插件。当该块生效时,来自存储库设置的 `allowRead` 和 `allowWrite` 条目不计。1715当[沙箱](/docs/zh-CN/sandboxing)打开时,块也涵盖沙箱命令。Claude Code 拒绝它们对您的主目录和保存用户文件的其他根的读取访问:`/Users`、`/home`、`/root`、`/Volumes`、`/mnt`、`/media`、`/run/media` 和 `/srv`。然后它重新打开工作目录、[Claude Code 在会话中创建的 worktrees](/docs/zh-CN/worktrees)、会话临时目录以及命令需要的 `~/.claude` 部分,如技能和插件。当块生效时,来自存储库设置的 `allowRead` 和 `allowWrite` 条目不计。

1713 1716 

1714当会话的工作目录是链接的 [git worktree](/docs/zh-CN/worktrees)(包括 Claude Code 在会话中途进入的)时,存储库的公共 `.git` 目录对沙箱命令保持可读和可写,因此 git 在那里继续工作。1717当会话的工作目录是链接的 [git worktree](/docs/zh-CN/worktrees)(包括 Claude Code 在会话中途进入的)时,存储库的公共 `.git` 目录对沙箱命令保持可读和可写,因此 git 在那里保持工作。

1715 1718 

1716在这些情况下,该块不会到达沙箱命令,而 Claude 的文件工具继续强制执行它:1719在这些情况下,块不会到达沙箱命令,而 Claude 的文件工具继续强制执行它:

1717 1720 

1718* 文件系统隔离通过 [`sandbox.filesystem.disabled`](#sandbox-filesystem-disabled) 关闭1721* 文件系统隔离通过 [`sandbox.filesystem.disabled`](#sandbox-filesystem-disabled) 关闭

1719* [`allowManagedReadPathsOnly`](#sandbox-filesystem-allowmanagedreadpathsonly) 已设置1722* [`allowManagedReadPathsOnly`](#sandbox-filesystem-allowmanagedreadpathsonly) 已设置

1720* 您启动 Claude Code 的目录的路径包含 glob 字符,如 `*`、`?` 或 `[`1723* 您启动 Claude Code 的目录的路径包含 glob 字符,如 `*`、`?` 或 `[`

1721 1724 

1722在该块下,Claude Code 重新打开您的全局 git 配置文件到沙箱命令,以便 `git` 保持您的身份和设置:1725在块下,Claude Code 重新打开您的全局 git 配置文件到沙箱命令,以便 `git` 保持您的身份和设置:

1723 1726 

1724* `~/.gitconfig`1727* `~/.gitconfig`

1725* `$XDG_CONFIG_HOME/git` 下的 `config`、`ignore` 和 `attributes` 文件,默认为 `~/.config/git`1728* `$XDG_CONFIG_HOME/git` 下的 `config`、`ignore` 和 `attributes` 文件,默认为 `~/.config/git`

1726* 您的全局 git 配置通过 `[include]`、`[includeIf]`、`core.excludesFile` 或 `core.attributesFile` 命名的文件1729* 您的全局 git 配置通过 `[include]`、`[includeIf]`、`core.excludesFile` 或 `core.attributesFile` 命名的文件

1727 1730 

1728Claude Code 单独判断每个文件。当文件位于沙箱命令可以写入的地方(直接或通过符号链接)时,Claude Code 不会重新打开它命名的文件。1731Claude Code 单独判断每个文件。当文件位于沙箱命令可以直接或通过符号链接写入的位置时,Claude Code 不会重新打开它命名的文件。

1729 1732 

1730在 Linux 和 WSL2 上,作为符号链接的配置文件可以在其自己的路径处保持不可读,然后 `git` 在没有它的情况下运行。`~/.git-credentials` 和 `$XDG_CONFIG_HOME/git/credentials` 保持被阻止。1733在 Linux 和 WSL2 上,作为符号链接的配置文件可以在其自己的路径处保持不可读,然后 `git` 在没有它的情况下运行。`~/.git-credentials` 和 `$XDG_CONFIG_HOME/git/credentials` 保持被阻止。

1731 1734 

1732如果重新打开的文件保存机密,如 `http.extraHeader` 令牌,将其路径添加到 [`sandbox.filesystem.denyRead`](#sandbox-filesystem-denyread)。覆盖此重新打开的 `denyRead` 条目始终优先。1735如果重新打开的文件保存机密,如 `http.extraHeader` 令牌,请将其路径添加到 [`sandbox.filesystem.denyRead`](#sandbox-filesystem-denyread)。覆盖此重新打开的 `denyRead` 条目始终优先。

1733 1736 

1734<h3 id="permissions-defaultmode">1737<h3 id="permissions-defaultmode">

1735 `permissions.defaultMode`1738 `permissions.defaultMode`

1736</h3>1739</h3>

1737 1740 

1738设置新会话启动的[权限模式](/docs/zh-CN/permission-modes)。当您将其留空时,会话会以您的表面的[内置默认值](/docs/zh-CN/permission-modes#which-mode-a-session-starts-in)启动。1741设置新会话启动的[权限模式](/docs/zh-CN/permission-modes)。当您将其留空时,会话以您的表面的[内置默认值](/docs/zh-CN/permission-modes#which-mode-a-session-starts-in)启动。

1739 1742 

1740* **作用域**: [`Any file`](#scopes)。`auto` 和 `bypassPermissions` 不会从项目或本地设置生效,因此改为在 `~/.claude/settings.json` 中设置它们。在 v2.1.257 之前,`bypassPermissions` 从任何文件生效。对于 VS Code 扩展启动的对话,Claude Code 仅读取用户、托管和 `--settings` 值。1743* **作用域**: [`Any file`](#scopes)。`auto` 和 `bypassPermissions` 不会从项目或本地设置生效,因此改为在 `~/.claude/settings.json` 中设置它们。在 v2.1.257 之前,`bypassPermissions` 从任何文件生效。对于 VS Code 扩展启动的对话,Claude Code 仅读取用户、托管和 `--settings` 值。

1741* **类型**: 字符串,以下之一:1744* **类型**: 字符串,以下之一:

1742 * `"default"`:Claude Code 仅在不询问的情况下运行读取1745 * `"default"`: Claude Code 仅运行读取而不询问

1743 * `"acceptEdits"`:Claude Code 也在不询问的情况下运行文件编辑和常见文件系统命令(如 `mkdir` 和 `mv`)1746 * `"acceptEdits"`: Claude Code 还运行文件编辑和常见文件系统命令(如 `mkdir` 和 `mv`)而不询问

1744 * `"plan"`:Claude Code 读取和规划,但阻止编辑直到您批准计划1747 * `"plan"`: Claude Code 读取和规划但阻止编辑直到您批准计划

1745 * `"auto"`:Claude Code 运行所有内容,具有后台安全检查1748 * `"auto"`: Claude Code 运行而不进行常规提示;在 shell 命令和网络请求等操作运行之前,后台分类器检查它们是否与您的请求一致

1746 * `"dontAsk"`:Claude Code 自动拒绝每个会否则提示的调用;读取、不需要批准的其他操作以及预批准的工具仍然运行1749 * `"dontAsk"`: Claude Code 自动拒绝每个本应提示的调用;读取、不需要批准的其他操作以及预批准的工具仍然运行

1747 * `"bypassPermissions"`:Claude Code 在不询问的情况下运行所有内容1750 * `"bypassPermissions"`: Claude Code 运行所有内容而不询问

1748 * `"manual"`:`"default"` 的别名,在 Claude Code v2.1.200 或更高版本中1751 * `"manual"`: `"default"` 的别名,在 Claude Code v2.1.200 或更高版本中

1749* **默认值**: 未设置1752* **默认值**: 未设置

1750* **每会话覆盖**: `--permission-mode` 及其 `bypassPermissions` 的等效项 `--dangerously-skip-permissions` 对一个会话优先于此键1753* **每个会话覆盖**: `--permission-mode` 及其 `bypassPermissions` 的等效 `--dangerously-skip-permissions` 对一个会话优先于此键

1751 1754 

1752```json settings.json theme={null}1755```json settings.json theme={null}

1753{1756{


1757}1760}

1758```1761```

1759 1762 

1760权限规则分层在每个模式之上:`deny` 规则在每个模式中阻止,包括 `bypassPermissions`。请参阅[权限模式](/docs/zh-CN/permission-modes)。`manual` 命名 CLI 和 VS Code 扩展中标记为"手动"的权限模式;别名需要 Claude Code v2.1.200 或更高版本。在云会话中,Claude Code 仅从此键中遵守 `acceptEdits`、`plan`、`default` 和 `auto`。对于 VS Code 扩展启动的对话,请参阅[扩展为启动权限模式读取的设置](/docs/zh-CN/permission-modes#switch-permission-modes)。1763权限规则分层在每种模式之上:`deny` 规则在每种模式中阻止,包括 `bypassPermissions`。请参阅[权限模式](/docs/zh-CN/permission-modes)。`manual` 命名 CLI 和 VS Code 扩展中标记为 Manual 的权限模式;别名需要 Claude Code v2.1.200 或更高版本。在云会话中,Claude Code 仅从此键中遵守 `acceptEdits`、`plan`、`default` 和 `auto`。对于 VS Code 扩展启动的对话,请参阅[扩展为启动权限模式读取的设置](/docs/zh-CN/permission-modes#switch-permission-modes)。

1761 1764 

1762<h3 id="permissions-disablebypasspermissionsmode">1765<h3 id="permissions-disablebypasspermissionsmode">

1763 `permissions.disableBypassPermissionsMode`1766 `permissions.disableBypassPermissionsMode`

1764</h3>1767</h3>

1765 1768 

1766防止任何人进入 `bypassPermissions` 模式。Claude Code 随后会拒绝 `--dangerously-skip-permissions` 标志,并忽略[代理定义的](/docs/zh-CN/sub-agents#permission-modes) `permissionMode: bypassPermissions`,因此子代理使用父会话的权限模式运行。1769防止任何人进入 `bypassPermissions` 模式。Claude Code 随后拒绝 `--dangerously-skip-permissions` 标志,并忽略[代理定义的](/docs/zh-CN/sub-agents#permission-modes) `permissionMode: bypassPermissions`,因此子代理以父会话的权限模式运行。

1767 1770 

1768* **作用域**: [`Any file`](#scopes)。通常在[托管设置](/docs/zh-CN/managed-settings)中设置以强制执行组织政策。1771* **作用域**: [`Any file`](#scopes)。通常在[托管设置](/docs/zh-CN/managed-settings)中设置以强制执行组织政策。

1769* **类型**: 字符串 `"disable"`1772* **类型**: 字符串 `"disable"`

1770* **默认值**: 未设置1773* **默认值**: 未设置

1771* **每会话覆盖**: 此键优先于 `--dangerously-skip-permissions`,在设置此键时 Claude Code 会拒绝它1774* **每个会话覆盖**: 此键优先于 `--dangerously-skip-permissions`,在设置此键时 Claude Code 拒绝

1772 1775 

1773```json settings.json theme={null}1776```json settings.json theme={null}

1774{1777{


1778}1781}

1779```1782```

1780 1783 

1781在 v2.1.223 之前,即使禁用绕过,Claude Code 也应用了 frontmatter 权限模式。1784在 v2.1.223 之前,Claude Code 即使禁用绕过也应用了 frontmatter 权限模式。

1782 1785 

1783<h3 id="skipautopermissionprompt">1786<h3 id="skipautopermissionprompt">

1784 `skipAutoPermissionPrompt`1787 `skipAutoPermissionPrompt`


1788 1791 

1789* **作用域**: [`User or managed`](#scopes)。存储库无法为您设置它。1792* **作用域**: [`User or managed`](#scopes)。存储库无法为您设置它。

1790* **类型**: 布尔值1793* **类型**: 布尔值

1791 * `true`:Claude Code 跳过通知1794 * `true`: Claude Code 跳过通知

1792 * `false`:与未设置相同;除非这些文件中的另一个设置 `true`,否则通知出现一次1795 * `false`: 与未设置相同;通知出现一次,除非这些文件中的另一个设置 `true`

1793* **默认值**: 未设置,因此通知出现一次1796* **默认值**: 未设置,因此通知出现一次

1794 1797 

1795```json settings.json theme={null}1798```json settings.json theme={null}


1806 1809 

1807* **作用域**: [`User, local, or managed`](#scopes)。不受信任的存储库无法为您跳过对话框。1810* **作用域**: [`User, local, or managed`](#scopes)。不受信任的存储库无法为您跳过对话框。

1808* **类型**: 布尔值1811* **类型**: 布尔值

1809 * `true`:Claude Code 跳过会话进入 `bypassPermissions` 模式之前的确认对话框1812 * `true`: Claude Code 跳过会话进入 `bypassPermissions` 模式之前的确认对话框

1810 * `false`:与未设置相同;除非这些文件中的另一个设置 `true`,否则对话框出现1813 * `false`: 与未设置相同;对话框出现,除非这些文件中的另一个设置 `true`

1811* **默认值**: 未设置,因此对话框出现1814* **默认值**: 未设置,因此对话框出现

1812 1815 

1813```json settings.json theme={null}1816```json settings.json theme={null}


3062</h4>3065</h4>

3063 3066 

3064* 此处的值覆盖在您的 shell 中导出的相同变量,当多个设置文件设置一个变量时,[最高优先级](/docs/zh-CN/settings#settings-precedence)的值适用。[Claude Code 在 `env` 中忽略的变量](#variables-claude-code-ignores-in-env)列出了项目和本地设置的例外。3067* 此处的值覆盖在您的 shell 中导出的相同变量,当多个设置文件设置一个变量时,[最高优先级](/docs/zh-CN/settings#settings-precedence)的值适用。[Claude Code 在 `env` 中忽略的变量](#variables-claude-code-ignores-in-env)列出了项目和本地设置的例外。

3068* 当 Claude Desktop 应用或[自托管环境](/docs/zh-CN/self-hosted-environments)运行器启动会话时,它构建的启动环境优先:Claude Code 忽略任何设置文件中的 `env` 值,用于启动环境已经设置的变量。[调试日志](/docs/zh-CN/debug-your-config)命名每个被忽略的变量。

3065* 要取消 shell 导出,将变量设置为 `""`。Claude Code 将空值视为提供程序选择的未设置,子进程继承空值。3069* 要取消 shell 导出,将变量设置为 `""`。Claude Code 将空值视为提供程序选择的未设置,子进程继承空值。

3066* `NO_COLOR` 和 `FORCE_COLOR` 在此处设置仅到达子进程。要更改 Claude Code 自己的界面颜色,请在启动 `claude` 之前在您的 shell 中设置它们。3070* `NO_COLOR` 和 `FORCE_COLOR` 在此处设置仅到达子进程。要更改 Claude Code 自己的界面颜色,请在启动 `claude` 之前在您的 shell 中设置它们。

3067* 此处的值是设置文件中的纯文本,到达 Claude Code 启动的每个子进程。对于轮换的 OTLP 承载令牌,使用 [`otelHeadersHelper`](#otelheadershelper);对于 API 凭证,使用 [`apiKeyHelper`](#apikeyhelper)。3071* 此处的值是设置文件中的纯文本,到达 Claude Code 启动的每个子进程。对于轮换的 OTLP 承载令牌,使用 [`otelHeadersHelper`](#otelheadershelper);对于 API 凭证,使用 [`apiKeyHelper`](#apikeyhelper)。


5155 5159 

5156[`allowedMcpServers`](#allowedmcpservers) 和 [`deniedMcpServers`](#deniedmcpservers) 仍然适用于此密钥加载的连接器。传递到[云会话](/docs/zh-CN/claude-code-on-the-web)的连接器,其主机携带 `managed-mcp.json`(例如自托管运行器),仍然会被禁止。请参阅[在托管集合旁边允许 claude.ai 连接器](/docs/zh-CN/managed-mcp#allow-claude-ai-connectors-alongside-the-managed-set)。5160[`allowedMcpServers`](#allowedmcpservers) 和 [`deniedMcpServers`](#deniedmcpservers) 仍然适用于此密钥加载的连接器。传递到[云会话](/docs/zh-CN/claude-code-on-the-web)的连接器,其主机携带 `managed-mcp.json`(例如自托管运行器),仍然会被禁止。请参阅[在托管集合旁边允许 claude.ai 连接器](/docs/zh-CN/managed-mcp#allow-claude-ai-connectors-alongside-the-managed-set)。

5157 5161 

5162<h3 id="allowclaudeinchromewithmanagedmcp">

5163 `allowClaudeInChromeWithManagedMcp`

5164</h3>

5165 

5166让内置的 [Chrome 中的 Claude](/docs/zh-CN/chrome) 服务器在部署的 `managed-mcp.json` 旁边运行。如果没有此密钥,部署的 `managed-mcp.json` 会在终端会话中阻止 Chrome 中的 Claude。需要 Claude Code v2.1.282 或更高版本。

5167 

5168* **作用域**: [`Managed`](#scopes),仅来自设备自己的托管设置:MDM 部署的 plist 或 HKLM 注册表密钥,或系统 `managed-settings.json` 文件。Claude Code 在服务器托管的设置、用户可写的 HKCU 注册表以及用户或项目设置中忽略它。

5169* **类型**: 布尔值

5170 * `true`: 内置的 Chrome 中的 Claude 服务器可以在部署的 `managed-mcp.json` 旁边运行

5171 * `false`: 部署的 `managed-mcp.json` 会在终端会话中阻止 Chrome 中的 Claude

5172* **默认值**: `false`,因此部署的 `managed-mcp.json` 会在终端会话中阻止 Chrome 中的 Claude

5173 

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

5175{

5176 "allowClaudeInChromeWithManagedMcp": true

5177}

5178```

5179 

5180[`deniedMcpServers`](#deniedmcpservers) 中的 `claude-in-chrome` 条目仍然会在此密钥打开时阻止服务器。请参阅[在托管集合旁边允许 Chrome 中的 Claude](/docs/zh-CN/managed-mcp#allow-claude-in-chrome-alongside-the-managed-set)。

5181 

5158<h3 id="allowedmcpservers">5182<h3 id="allowedmcpservers">

5159 `allowedMcpServers`5183 `allowedMcpServers`

5160</h3>5184</h3>

5161 5185 

5162允许列表化人们可以添加的 MCP 服务器。Claude Code 会阻止任何不匹配条目的服务器,无论在何处定义,包括插件服务器、使用 `--mcp-config` 传递的服务器以及来自 claude.ai 的服务器。5186允许列表化人们可以添加的 MCP 服务器。Claude Code 会阻止任何不匹配条目的服务器,无论在何处定义,包括插件服务器、使用 `--mcp-config` 传递的服务器以及来自 claude.ai 的服务器。

5163 5187 

5164内置服务器(例如 Chrome 中的 Claude、Claude Code 在运行的 [VS Code](/docs/zh-CN/vs-code#the-built-in-ide-mcp-server) 或 [JetBrains](/docs/zh-CN/jetbrains#the-built-in-ide-mcp-server) IDE 中连接的 `ide` 服务器,以及 CLI 本身配置的服务器)不受允许列表的限制,拒绝列表仍然适用于它们。进程内 `type: "sdk"` 服务器不受两个列表的限制;[启动会话的应用](/docs/zh-CN/mcp#how-connectors-reach-claude-code)会注册它们。5188内置服务器(例如 Chrome 中的 Claude、Claude Code 在运行的 [VS Code](/docs/zh-CN/vs-code#the-built-in-ide-mcp-server) 或 [JetBrains](/docs/zh-CN/jetbrains#the-built-in-ide-mcp-server) IDE 中连接的 `ide` 服务器,以及 CLI 本身配置的服务器)不受允许列表的限制,拒绝列表仍然适用于它们。在 Claude Code v2.1.268 或更高版本上,[Claude Tag](/docs/zh-CN/claude-tag) 会话的 Slack 工具也不受允许列表的限制,拒绝列表仍然适用于它们。进程内 `type: "sdk"` 服务器不受两个列表的限制;[启动会话的应用](/docs/zh-CN/mcp#how-connectors-reach-claude-code)会注册它们。

5165 5189 

5166您的组织提供的服务器也不受允许列表的限制,拒绝列表仍然适用于它们。豁免涵盖每个 [`managedMcpServers`](#managedmcpservers) 条目,以及任何 [`managed-mcp.json`](/docs/zh-CN/managed-mcp#exclusive-control-with-managed-mcp-json) 条目,其值不使用 `${VAR}` 扩展。有关完整的检查顺序,请参阅[如何评估服务器](/docs/zh-CN/managed-mcp#how-a-server-is-evaluated)。在 v2.1.259 之前,来自 `managed-mcp.json` 的服务器也必须匹配。5190您的组织提供的服务器也不受允许列表的限制,拒绝列表仍然适用于它们。豁免涵盖每个 [`managedMcpServers`](#managedmcpservers) 条目,以及任何 [`managed-mcp.json`](/docs/zh-CN/managed-mcp#exclusive-control-with-managed-mcp-json) 条目,其值不使用 `${VAR}` 扩展。有关完整的检查顺序,请参阅[如何评估服务器](/docs/zh-CN/managed-mcp#how-a-server-is-evaluated)。在 v2.1.259 之前,来自 `managed-mcp.json` 的服务器也必须匹配。

5167 5191 


6302 `disableSideloadFlags`6326 `disableSideloadFlags`

6303</h3>6327</h3>

6304 6328 

6305在启动时拒绝 `--plugin-dir`、`--plugin-url`、`--agents` 和 `--mcp-config` CLI 标志,用户可能会传递这些标志来绕过 [`strictKnownMarketplaces`](#strictknownmarketplaces) 进行单次运行。Claude Code 会以错误退出并命名被拒绝的标志,并对在内部使用这些标志启动 CLI 的表面应用相同的检查,目前在桌面应用中的 [Cowork](/docs/zh-CN/desktop) 本地会话。在[云会话](/docs/zh-CN/claude-code-on-the-web)中,Claude Code 会删除服务器通过 `--mcp-config` 传递的 MCP 服务器,除了进程内 `type: "sdk"` 条目,并启动会话。需要 Claude Code v2.1.193 或更高版本。6329在启动时拒绝 `--plugin-dir`、`--plugin-url`、`--agents` 和 `--mcp-config` CLI 标志,用户可能会传递这些标志来绕过 [`strictKnownMarketplaces`](#strictknownmarketplaces) 进行单次运行。Claude Code 会以错误退出并命名被拒绝的标志。在[云会话](/docs/zh-CN/claude-code-on-the-web)中,Claude Code 会启动会话并删除服务器通过 `--mcp-config` 传递的每个条目,除了进程内 `type: "sdk"` 条目和 [Claude Tag](/docs/zh-CN/claude-tag) 会话的 Slack 工具。需要 Claude Code v2.1.193 或更高版本。

6306 6330 

6307* **Scope**: [`Managed`](#scopes)6331* **Scope**: [`Managed`](#scopes)

6308* **Type**: Boolean6332* **Type**: Boolean

6309 * `true`: Claude Code 在启动时拒绝 `--plugin-dir`、`--plugin-url`、`--agents` 和 `--mcp-config`,并以错误退出并命名它们,除了在云会话中它删除服务器通过 `--mcp-config` 传递的 MCP 服务器,除了进程内 `type: "sdk"` 条目,并启动会话6333 * `true`: Claude Code 在启动时拒绝 `--plugin-dir`、`--plugin-url`、`--agents` 和 `--mcp-config`,并以错误退出并命名它们。在云会话中,它会启动会话并删除服务器通过 `--mcp-config` 传递的每个条目,除了进程内 `type: "sdk"` 条目和 Claude Tag 会话的 Slack 工具

6310 * `false`: Claude Code 接受这些标志6334 * `false`: Claude Code 接受这些标志

6311* **Default**: `false`6335* **Default**: `false`

6312 6336 


6320 6344 

6321相同的检查涵盖在 [`CLAUDE_CODE_PLUGIN_DIRS`](/docs/zh-CN/env-vars#variables) 环境变量中命名的插件文件夹,这需要 Claude Code v2.1.280 或更高版本。当变量命名一个文件夹时,Claude Code 以相同的错误退出,错误说要取消设置该变量。6345相同的检查涵盖在 [`CLAUDE_CODE_PLUGIN_DIRS`](/docs/zh-CN/env-vars#variables) 环境变量中命名的插件文件夹,这需要 Claude Code v2.1.280 或更高版本。当变量命名一个文件夹时,Claude Code 以相同的错误退出,错误说要取消设置该变量。

6322 6346 

6323在云会话中,Claude Code 也忽略服务器传递的中途 MCP 更新,云会话配置和 SDK `setMcpServers()` 调用背后的路径到达这些会话。进程内 `type: "sdk"` 条目在那里也保持豁免。在 v2.1.239 之前,服务器传递的 `--mcp-config` 阻止云会话启动。6347在云会话中,Claude Code 也忽略服务器传递的中途 MCP 更新,云会话配置和 SDK `setMcpServers()` 调用背后的路径到达这些会话。进程内 `type: "sdk"` 条目和 Claude Tag 会话的 Slack 工具在那里也保持豁免。在 v2.1.268 之前,这个删除和启动删除也删除了 Claude Tag 会话的 Slack 工具。在 v2.1.239 之前,服务器传递的 `--mcp-config` 阻止云会话启动。

6348 

6349桌面应用自己管理一些插件,包括从 claude.ai 同步的插件和您的组织通过应用部署的插件。如果您通过 MDM、OS 级别策略或托管设置文件将此密钥部署到设备,桌面应用不会将这些插件传递给该设备上的以下会话:

6350 

6351* **[用户机器上的代码会话](/docs/zh-CN/desktop#environment-configuration)**: 它们也启动时不启用用户 claude.ai 账户的技能。Claude Code 从您的托管设置中的市场安装的插件仍然加载。在 [Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/overview) 中,您部署到设备 `org-plugins` 目录的插件中的 MCP 服务器仍然可用,因为桌面应用自己连接到它们。在 Claude Desktop v1.37937.0 之前,这些会话在启动时失败。

6352* **[用户机器上的协作会话](/docs/zh-CN/managed-settings#where-and-when-a-policy-applies)**: 这些插件内的技能和为用户 claude.ai 账户启用的技能保持可用。在 [Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/overview) 中,您部署到设备 `org-plugins` 目录的插件中的 MCP 服务器仍然可用,因为桌面应用自己连接到它们。在 Claude Desktop v1.44121.0 之前,这些会话在启动时失败。

6324 6353 

6325<h3 id="forceremotesettingsrefresh">6354<h3 id="forceremotesettingsrefresh">

6326 `forceRemoteSettingsRefresh`6355 `forceRemoteSettingsRefresh`

skills.md +52 −6

Details

56 56 

57Claude 仅在它引导运行出错时编辑记录的文件,例如失败的命令或缺少的步骤,因此您可以提交文件而无需每个会话的差异。在 v2.1.205 之前,捆绑技能告诉 Claude 折叠运行学到的任何内容,这导致频繁的合并冲突。57Claude 仅在它引导运行出错时编辑记录的文件,例如失败的命令或缺少的步骤,因此您可以提交文件而无需每个会话的差异。在 v2.1.205 之前,捆绑技能告诉 Claude 折叠运行学到的任何内容,这导致频繁的合并冲突。

58 58 

59<h3 id="work-on-claude-api-projects">

60 处理 Claude API 项目

61</h3>

62 

63捆绑的 `/claude-api` 技能为您的项目语言加载 [Claude API](https://platform.claude.com/docs/en/api/overview) 和[托管代理](https://platform.claude.com/docs/en/managed-agents/overview)参考资料。当您的代码导入 `anthropic` 或 `@anthropic-ai/sdk` 时,Claude 也会自动激活它。

64 

65要启动技能的工作流之一,请在 Claude Code 提示符处的技能名称后键入子命令,例如 `/claude-api migrate`。该表列出了每个子命令的作用以及包含它的最早 Claude Code 版本。`migrate` 和 `managed-agents-onboard` 早于 v2.1.221,这是该表跟踪的最早版本。

66 

67| 子命令 | 作用 | 最低版本 |

68| :- | :- | :- |

69| `migrate` | 将您现有的 Claude API 代码更新到更新的模型 | 早于 v2.1.221 |

70| `upgrade` | 跨主要版本移动您的项目的 Anthropic SDK 依赖项,目前是 Python `anthropic` 包从 0.x 到 1.x | v2.1.236 或更高版本 |

71| `managed-agents-onboard` | 逐步完成创建新的托管代理 | 早于 v2.1.221 |

72| `prompt-audit` | 标记为旧模型编写的指令在您的提示、技能和工具描述中,并提议修复作为差异 | v2.1.221 或更高版本 |

73| `cost-optimize` | 分析您的项目的 Claude API 支出去向,并提议从提示缓存、修剪不需要的输入和输出令牌、批处理、工作量和模型选择等选项中节省成本,一次一个更改 | v2.1.247 或更高版本 |

74| `build-eval` | 为您的 Claude 驱动的应用构建评估集 | v2.1.259 或更高版本 |

75| `hillclimb` | 针对现有评估迭代改进您的应用 | v2.1.259 或更高版本 |

76| `preserved-thinking-migration` | 查找您的集成对早期轮次、其系统提示或其工具列表所做的编辑,这些编辑使[保留的思考](https://platform.claude.com/docs/en/build-with-claude/preserved-thinking)块失效,测量每个块丢弃多少推理,并提议一次一个修复,在每次更改后重新测量 | v2.1.282 或更高版本 |

77 

59<h2 id="getting-started">78<h2 id="getting-started">

60 开始使用79 开始使用

61</h2>80</h2>


843Skill(deploy *)862Skill(deploy *)

844```863```

845 864 

846权限语法:`Skill(name)` 用于精确匹配,`Skill(name *)` 用于带任何参数的前缀匹配。在 `allow` 规则中,[为同步技能保留的命名空间](#names-reserved-for-synced-skills)之外的前缀不匹配其中的名称:`Skill(anthropic *)` 不涵盖 `anthropic-skills:pdf`。865权限语法:`Skill(name)` 用于精确匹配,`Skill(name *)` 用于带任何参数的前缀匹配。

847 866 

848如果你的 `deny` 规则命名别名或不合格的名称而不是技能自己的名称,Claude Code 仍然会阻止该技能:使用 `Skill(review)` 它通过其 `/review` 别名阻止捆绑的 `/code-review`,使用 `Skill(deploy)` 它通过其不合格的名称阻止列为 `apps/web:deploy` 的[嵌套技能](#where-skills-live)。在 v2.1.260 之前,当拒绝规则仅命名不合格的名称时,Claude Code 不会阻止列在其合格名称下的嵌套技能。867下表显示了你的 `deny` 规则命名的名称类型,Claude Code 除了你写的名称外还会阻止什么。

868 

869| 你的 `deny` 规则名称 | 示例规则 | Claude Code 也会阻止 |

870| :- | :- | :- |

871| 别名 | `Skill(review)` | 捆绑的 `/code-review`,通过其 `/review` 别名 |

872| 不合格的名称 | `Skill(deploy)` | 列为 `apps/web:deploy` 的[嵌套技能](#where-skills-live) |

873| [从 claude.ai 同步的技能](#how-synced-skills-behave) | `Skill(anthropic-skills:deploy)` | 当 Claude Desktop 将其作为插件交付给会话时的该技能 |

874| 同步技能的插件形式 | `Skill(deploy:deploy)` | 同步的技能 |

875| [参数形式](/docs/zh-CN/permissions#match-by-input-parameter)中的技能 | `Skill(skill:deploy)` | 该技能无论 Claude 以哪个名称调用它,包括其别名和显示名称 |

849 876 

850Claude Code 仅针对技能自己的名称和 Claude 调用中的名称匹配 `allow` 规则。877在 v2.1.260 之前,当拒绝规则仅命名不合格的名称时,Claude Code 不会阻止列在其合格名称下的嵌套技能。

851 878 

852要在不提示的情况下批准[同步技能](#how-synced-skills-behave),请在其[保留命名空间](#names-reserved-for-synced-skills)内命名它:`Skill(anthropic-skills:pdf)` 批准同步的 `pdf` 技能,`Skill(anthropic-skills *)` 批准每个同步的技能。879Claude Code 仅针对技能自己的名称和 Claude 调用中的名称匹配 `allow` 规则。要在不提示的情况下批准[同步技能](#how-synced-skills-behave),请在其[保留命名空间](#names-reserved-for-synced-skills)内命名它:

880 

881* `Skill(anthropic-skills:pdf)` 批准同步的 `pdf` 技能

882* `Skill(anthropic-skills *)` 批准每个同步的技能

883* `Skill(anthropic *)` 不涵盖 `anthropic-skills:pdf`,因为命名空间外的前缀不匹配其中的名称

853 884 

854**通过向其 frontmatter 添加 `disable-model-invocation: true` 来隐藏单个技能**。这将技能从 Claude 的上下文中完全删除。885**通过向其 frontmatter 添加 `disable-model-invocation: true` 来隐藏单个技能**。这将技能从 Claude 的上下文中完全删除。

855 886 


909 940 

910看到技能触发告诉你 Claude 找到了它,但不代表它做了你想要的事情。要知道技能是否有效,需要分别测量两件事:Claude 是否在应该调用的提示上调用它,以及当它调用时输出是否与你的预期相符。941看到技能触发告诉你 Claude 找到了它,但不代表它做了你想要的事情。要知道技能是否有效,需要分别测量两件事:Claude 是否在应该调用的提示上调用它,以及当它调用时输出是否与你的预期相符。

911 942 

912两者的检查都是基线比较。收集几个现实的提示,在启用技能的新会话中运行每个提示,然后在[禁用](#override-skill-visibility-from-settings)技能的情况下再运行一次,并比较结果。新会话很重要,因为编写技能时留下的上下文会掩盖书面说明中的差距。943两者的检查都是基线比较。收集几个现实的提示,在启用技能的新会话中运行每个提示,然后在禁用技能的情况下再运行一次,并比较结果。新会话很重要,因为编写技能时留下的上下文会掩盖书面说明中的差距。

944 

945关闭技能进行第二次运行的方式取决于它来自何处:

913 946 

914两个工具可以自动化该比较。对于在[插件](/docs/zh-CN/plugins/overview)中发布的技能,[`claude plugin eval`](/docs/zh-CN/plugin-evals)在隔离会话中运行每个提示,既有插件也没有插件,使用你定义的或它为你编写的评分器对其进行评分,并在低于阈值时以非零状态退出,以便你可以在 CI 上对其进行门控。对于在 Claude Code 对话中迭代单个技能,下面的 skill-creator 插件使用其自己的 `evals/evals.json` 格式运行类似的循环。这两种格式不可互换。947* **个人或项目技能**:在 [`skillOverrides`](#override-skill-visibility-from-settings) 中将其设置为 `"off"`。

948* **插件提供的技能**:`skillOverrides` 不适用于插件技能。改用 [`claude plugin eval`](/docs/zh-CN/plugin-evals#the-no-plugin-baseline),它在没有加载任何插件的情况下重复每次运行。

949 

950两个工具可以自动化基线比较。对于在[插件](/docs/zh-CN/plugins/overview)中发布的技能,[`claude plugin eval`](/docs/zh-CN/plugin-evals) 在隔离会话中运行每个提示,既有插件也没有插件,使用你定义的或它为你编写的评分器对其进行评分,并在低于阈值时以非零状态退出,以便你可以在 CI 上对其进行门控。对于在 Claude Code 对话中迭代单个技能,下面的 skill-creator 插件使用其自己的 `evals/evals.json` 格式运行类似的循环。这两种格式不可互换。

915 951 

916<h3 id="run-evals-with-skill-creator">952<h3 id="run-evals-with-skill-creator">

917 使用 skill-creator 运行评估953 使用 skill-creator 运行评估


11731. 使描述更具体12091. 使描述更具体

11742. 如果你只想要手动调用,添加 `disable-model-invocation: true`12102. 如果你只想要手动调用,添加 `disable-model-invocation: true`

1175 1211 

1212<h3 id="claude-stops-following-a-skill">

1213 Claude 停止遵循 skill

1214</h3>

1215 

1216如果 Claude 在其第一个响应中遵循 skill,但之后停止遵循它,请从与你的情况相匹配的以下任何一种情况开始:

1217 

1218* **Claude 跳过了必须每次都成立的规则**:将规则移到 [hook](/docs/zh-CN/hooks-guide) 中。Claude Code 在其事件发生时每次都运行 hook,例如在每次文件编辑之前,无论 Claude 是否遵循 skill。要将规则与 skill 保持在一起,在 skill 的 [`hooks` frontmatter](/docs/zh-CN/hooks#hooks-in-skills-and-agents) 中定义 hook。该 hook 从 skill 被调用时开始应用,直到会话结束。

1219* **Claude 跳过了应该有判断力地应用的指导**:措辞指导使其适用于整个任务,例如"在每次编辑后运行测试"而不是"运行测试"。Claude Code 在 skill 被调用时将 skill 的内容添加到对话中,并且 [不会在后续轮次重新读取文件](#skill-content-lifecycle)。

1220* **对话被压缩了**:再次调用 skill 以恢复其完整内容。在 [压缩](/docs/zh-CN/how-claude-code-works#when-context-fills-up) 之后,Claude Code [只能保留被调用的 skill 的开始部分](#skill-content-lifecycle),所以将最重要的说明放在 `SKILL.md` 的顶部。

1221 

1176<h3 id="skill-descriptions-are-cut-short">1222<h3 id="skill-descriptions-are-cut-short">

1177 Skill 描述被截断1223 Skill 描述被截断

1178</h3>1224</h3>

statusline.md +1 −1

Details

1178**上下文百分比显示意外值**1178**上下文百分比显示意外值**

1179 1179 

1180* 使用 `used_percentage` 获得最简单的准确上下文状态1180* 使用 `used_percentage` 获得最简单的准确上下文状态

1181* 上下文百分比可能与 `/context` 输出不同,因为每个的计算时间不同1181* 状态行报告来自最后一次 API 响应的计数,而 `/context` 添加了自该响应以来添加的消息的估计值,因此 `/context` 可以读取更高的值,直到下一次响应

1182 1182 

1183**OSC 8 链接不可点击**1183**OSC 8 链接不可点击**

1184 1184 

sub-agents.md +4 −6

Details

30 内置 subagents30 内置 subagents

31</h2>31</h2>

32 32 

33Claude Code 包括内置 subagents,Claude 在适当时自动使用。每个都继承父对话的权限;大多数运行时工具集受限。33Claude Code 包括内置 subagents,Claude 在适当时自动使用。每个都继承父对话的权限规则;大多数运行时工具集受限。

34 34 

35Explore 和 Plan 会跳过您的 CLAUDE.md 文件和 git 状态快照,以保持研究快速且成本低廉。所有其他内置和[自定义 subagent](#configure-subagents) 都会加载两者,除非其定义设置了 [`omitClaudeMd`](#supported-frontmatter-fields) 字段以跳过用户、项目和本地 CLAUDE.md 文件。有关到达 subagent 的内容的完整分解,请参阅[启动时加载的内容](#what-loads-at-startup)。35Explore 和 Plan 会跳过您的 CLAUDE.md 文件和 git 状态快照,以保持研究快速且成本低廉。所有其他内置和[自定义 subagent](#configure-subagents) 都会加载两者,除非其定义设置了 [`omitClaudeMd`](#supported-frontmatter-fields) 字段以跳过用户、项目和本地 CLAUDE.md 文件。有关到达 subagent 的内容的完整分解,请参阅[启动时加载的内容](#what-loads-at-startup)。

36 36 


802 - matcher: "Bash"802 - matcher: "Bash"

803 hooks:803 hooks:

804 - type: command804 - type: command

805 command: "./scripts/validate-command.sh $TOOL_INPUT"805 command: "./scripts/validate-command.sh"

806 PostToolUse:806 PostToolUse:

807 - matcher: "Edit|Write"807 - matcher: "Edit|Write"

808 hooks:808 hooks:


850}850}

851```851```

852 852 

853一个带连字符的匹配器,如 `db-agent`,在 Claude Code v2.1.195 或更高版本上精确匹配。在早期版本上,它被评估为 unanchored regular expression,也会为任何包含它的代理类型触发,例如 `prod-db-agent`;在这些版本上使用 `^db-agent$` 锚定它。

854 

855有关完整的 hook 配置格式,请参阅 [Hooks](/docs/zh-CN/hooks)。853有关完整的 hook 配置格式,请参阅 [Hooks](/docs/zh-CN/hooks)。

856 854 

857<h2 id="work-with-subagents">855<h2 id="work-with-subagents">


897 895 

898您也可以手动输入提及而不使用选择器:`@agent-<name>` 用于本地 subagents,或 `@agent-` 后跟 plugin subagents 的作用域名称,例如 `@agent-my-plugin:code-reviewer`。当您输入这种形式时,类型提前显示文件匹配而不是 agents。当您提交时,agent 提及仍然会解析。896您也可以手动输入提及而不使用选择器:`@agent-<name>` 用于本地 subagents,或 `@agent-` 后跟 plugin subagents 的作用域名称,例如 `@agent-my-plugin:code-reviewer`。当您输入这种形式时,类型提前显示文件匹配而不是 agents。当您提交时,agent 提及仍然会解析。

899 897 

900**将整个会话作为 subagent 运行。** 传递 [`--agent <name>`](/docs/zh-CN/cli-reference) 以启动一个会话,其中主线程本身采用该 subagent 的系统提示、工具限制和模型:898**将整个会话作为 subagent 运行。** 传递 [`--agent <name>`](/docs/zh-CN/cli-reference) 以启动一个会话,其中主线程本身采用该 subagent 的工具限制和模型:

901 899 

902```bash theme={null}900```bash theme={null}

903claude --agent code-reviewer901claude --agent code-reviewer

904```902```

905 903 

906除非代理的 [提示为空](#choose-the-subagent-scope),subagent 的系统提示完全替换默认 Claude Code 系统提示,就像 [`--system-prompt`](/docs/zh-CN/cli-reference) 一样。`CLAUDE.md` 文件和项目内存仍然通过正常消息流加载,即使代理的定义设置了 [`omitClaudeMd`](#supported-frontmatter-fields)。代理名称在启动标题中显示为 `@<name>`,以便您可以确认它是活跃的。904除非代理的 [提示为空](#choose-the-subagent-scope),custom subagent 的系统提示完全替换默认 Claude Code 系统提示,就像 [`--system-prompt`](/docs/zh-CN/cli-reference) 一样。`CLAUDE.md` 文件和项目内存仍然通过正常消息流加载,即使代理的定义设置了 [`omitClaudeMd`](#supported-frontmatter-fields)。代理名称在启动标题中显示为 `@<name>`,以便您可以确认它是活跃的。

907 905 

908这适用于内置和自定义 subagents,当您恢复会话时选择会持续:Claude Code 恢复代理的工具限制和模型以及对话。如果代理在您恢复时不再存在,会话继续使用默认工具并显示 [警告命名代理](/docs/zh-CN/errors#session-agent-no-longer-available)。对于任一情况下的系统提示,请参阅 [已恢复对话中的系统提示标志](/docs/zh-CN/cli-reference#system-prompt-flags-in-resumed-conversations)。906这适用于内置和自定义 subagents,当您恢复会话时选择会持续:Claude Code 恢复代理的工具限制和模型以及对话。如果代理在您恢复时不再存在,会话继续使用默认工具并显示 [警告命名代理](/docs/zh-CN/errors#session-agent-no-longer-available)。对于任一情况下的系统提示,请参阅 [已恢复对话中的系统提示标志](/docs/zh-CN/cli-reference#system-prompt-flags-in-resumed-conversations)。

909 907 

Details

122 122 

123 <tr>123 <tr>

124 <td>计费</td>124 <td>计费</td>

125 <td><strong>Teams:</strong> \$150/座位(Premium)提供按使用量付费选项<br /><strong>Enterprise:</strong> <a href="https://claude.com/contact-sales?utm_source=claude_code&utm_medium=docs&utm_content=third_party_enterprise">联系销售</a></td>125 <td><strong>Teams:</strong> 按座位订阅,提供按使用量付费选项,请参阅<a href="https://claude.com/pricing?utm_source=claude_code&utm_medium=docs&utm_content=third_party_pricing#team-&-enterprise">定价</a><br /><strong>Enterprise:</strong> <a href="https://claude.com/contact-sales?utm_source=claude_code&utm_medium=docs&utm_content=third_party_enterprise">联系销售</a></td>

126 <td>按使用量付费</td>126 <td>按使用量付费</td>

127 <td>通过 AWS 按使用量付费</td>127 <td>通过 AWS 按使用量付费</td>

128 <td>通过 AWS Marketplace 按使用量付费</td>128 <td>通过 AWS Marketplace 按使用量付费</td>

Details

167 超时和输出限制167 超时和输出限制

168</h3>168</h3>

169 169 

170每个命令在超时下运行,Claude 管理它:当它需要比命令的默认值更长的时间时,它会传递 `timeout` 参数进行该调用 — 您永远不会设置每个命令的超时。两个[环境变量](/docs/zh-CN/env-vars)限制 Claude 获得的内容:170每个命令在超时下运行,Claude 管理它:当它需要比命令的默认值更长的时间时,它会传递 `timeout` 参数进行该调用。您永远不会设置每个命令的超时。

171 

172两个[环境变量](/docs/zh-CN/env-vars)控制 Claude 获得的内容,用于在前台运行的命令:

171 173 

172* `BASH_DEFAULT_TIMEOUT_MS` — 当 Claude 不传递超时时的默认值;开箱即用为两分钟174* `BASH_DEFAULT_TIMEOUT_MS` — 当 Claude 不传递超时时的默认值;开箱即用为两分钟

173* `BASH_MAX_TIMEOUT_MS` — 使用默认值,设置上限以限制 Claude 请求的任何内容:有效上限是两者中较大的,开箱即用为十分钟175* `BASH_MAX_TIMEOUT_MS` — 使用默认值,设置上限以限制 Claude 请求的任何内容:有效上限是两者中较大的,开箱即用为十分钟

174 176 

177对于 Claude 在后台启动的命令,`timeout` 改为设置命令在那里可以运行多长时间,具有在[后台命令](#background-commands)下描述的单独默认值和最大值。[PowerShell 工具](#powershell-tool)遵循相同的超时规则并读取相同的两个变量。

178 

175<h4 id="output-limits">179<h4 id="output-limits">

176 输出限制180 输出限制

177</h4>181</h4>


195 199 

196对于长时间运行的进程(例如开发服务器或监视构建),Claude 可以设置 `run_in_background: true` 以将命令作为后台任务启动并在其运行时继续工作。使用 `/tasks` 列出和停止后台任务。在您从那里停止一个后,或从连接的客户端(例如桌面应用)停止,Claude 继续而不是等待。如果子代理启动了命令,则是该子代理继续。200对于长时间运行的进程(例如开发服务器或监视构建),Claude 可以设置 `run_in_background: true` 以将命令作为后台任务启动并在其运行时继续工作。使用 `/tasks` 列出和停止后台任务。在您从那里停止一个后,或从连接的客户端(例如桌面应用)停止,Claude 继续而不是等待。如果子代理启动了命令,则是该子代理继续。

197 201 

198[前台子代理](/docs/zh-CN/sub-agents#run-subagents-in-foreground-or-background)启动的命令在该子代理给出最终响应时停止。主对话或后台子代理启动的命令在最终响应后继续运行。在使用 `-p` 标志的非交互模式下,[后台命令在运行的最终结果后不久结束](/docs/zh-CN/headless#background-tasks-at-exit)。202[前台子代理](/docs/zh-CN/sub-agents#run-subagents-in-foreground-or-background)启动的命令在该子代理的运行结束时停止,无论它是完成、失败还是被中断。主对话或后台子代理启动的命令在最终响应后继续运行,直到它退出、被停止或达到其时间限制。在使用 `-p` 标志的非交互模式下,[后台命令在运行的最终结果后不久结束](/docs/zh-CN/headless#background-tasks-at-exit)。

203 

204后台 Bash 和 PowerShell 命令有时间限制,从命令进入后台的时刻开始计算:

205 

206* Claude 在后台启动的命令获得 30 分钟,或 Claude 使用 `run_in_background` 传递的 `timeout`,最多 2 小时

207* 在前台启动然后移到后台的命令,例如使用 `Ctrl+B` 或在其超时时,从移动时获得 30 分钟

208 

209两个[环境变量](/docs/zh-CN/env-vars)提高这些限制,对于 Bash 和 PowerShell 命令都是如此。两者都采用毫秒,都不能缩短限制:较低的值保留 30 分钟的默认值和 2 小时的最大值。

210 

211* 将 `BASH_DEFAULT_TIMEOUT_MS` 设置为高于 `1800000` 以用该值替换 30 分钟的默认值,既适用于 Claude 启动的没有 `timeout` 的命令,也适用于移动的命令

212* 将 `BASH_MAX_TIMEOUT_MS` 设置为高于 `7200000` 以将 2 小时的最大值提高到该值。将 `BASH_DEFAULT_TIMEOUT_MS` 设置为高于 `7200000` 以相同方式提高最大值

199 213 

200当命令在完成前达到其超时时,Claude Code 会将其移到后台而不是停止它,除非命令以 `sleep` 开头。Claude 在命令继续时继续工作。Claude Code 对移动的命令应用与任何其他后台命令相同的生命周期规则,因此它仍然在该子代理的最终响应时结束前台子代理的命令。设置 [`CLAUDE_CODE_DISABLE_BACKGROUND_TASKS=1`](/docs/zh-CN/env-vars#variables) 禁用自动后台处理以及其余后台任务功能。214当后台命令达到其时间限制时,Claude Code 停止它并告诉 Claude 原因,Claude 可以使用更长的 `timeout` 重新启动命令,如果工作仍然需要的话。停止通知读作 `Background command "<description>" was stopped after reaching its background time limit`。

215 

216当前台命令在完成前达到其超时时,Claude Code 会将其移到后台而不是停止它,除非命令以 `sleep` 开头。移动的命令的时间限制从移动时开始计算,前台子代理的移动命令仍然在该子代理的运行结束时停止。

217 

218设置 [`CLAUDE_CODE_DISABLE_BACKGROUND_TASKS=1`](/docs/zh-CN/env-vars#variables) 禁用自动后台处理以及其余后台任务功能。

201 219 

202移到后台的命令的结果说明发生了什么:220移到后台的命令的结果说明发生了什么:

203 221 


382 WebSocket 源400 WebSocket 源

383</h3>401</h3>

384 402 

385<Note>

386 WebSocket 源需要 Claude Code v2.1.195 或更高版本。

387</Note>

388 

389当服务器已经通过 WebSocket 推送事件时,Claude 可以直接连接到它,而不是编写轮询脚本。每种套接字活动要么成为一个事件,要么结束监视:403当服务器已经通过 WebSocket 推送事件时,Claude 可以直接连接到它,而不是编写轮询脚本。每种套接字活动要么成为一个事件,要么结束监视:

390 404 

391* **文本消息**:每条消息都成为一个事件,即使消息跨越多行。405* **文本消息**:每条消息都成为一个事件,即使消息跨越多行。

Details

445 TLS 或 SSL 连接错误445 TLS 或 SSL 连接错误

446</h3>446</h3>

447 447 

448诸如 `curl: (35) TLS connect error`、`schannel: next InitializeSecurityContext failed` 或 PowerShell 的 `Could not establish trust relationship for the SSL/TLS secure channel` 之类的错误表示 TLS 握手失败。448诸如以下错误意味着 TLS 握手失败:

449 

450* `curl: (35) TLS connect error`

451* `schannel: next InitializeSecurityContext failed`

452* PowerShell 的 `Could not create SSL/TLS secure channel`

453* PowerShell 的 `Could not establish trust relationship for the SSL/TLS secure channel`

449 454 

450**解决方案:**455**解决方案:**

451 456 


1017 登录后 403 Forbidden1022 登录后 403 Forbidden

1018</h3>1023</h3>

1019 1024 

1020如果登录后看到 `API Error: 403 {"error":{"type":"forbidden","message":"Request not allowed"}}`:1025如果登录后看到 `API Error: 403 Request not allowed`:

1021 1026 

1022* **Claude Pro/Max 用户**:在 [claude.ai/settings](https://claude.ai/settings) 验证您的订阅是否有效1027* **Claude Pro/Max 用户**:在 [claude.ai/settings](https://claude.ai/settings) 验证您的订阅是否有效

1023* **Anthropic Console 用户**:确认您的账户具有"Claude Code"或"Developer"角色。管理员在 Anthropic Console 的"Settings → Members"中分配此角色。1028* **Anthropic Console 用户**:确认您的账户具有"Claude Code"或"Developer"角色。管理员在 Anthropic Console 的"Settings → Members"中分配此角色。

Details

52 `.heapsnapshot` 文件包含进程中的每个字符串,包括您的完整对话和凭证。不要将其附加到公开问题或共享。52 `.heapsnapshot` 文件包含进程中的每个字符串,包括您的完整对话和凭证。不要将其附加到公开问题或共享。

53</Warning>53</Warning>

54 54 

55该命令还在对话中打印摘要,显示驻留集大小、JS 堆、数组缓冲区和未计算的本机内存,以及它检测到的任何泄漏指示器,例如高内存增长率或异常高的打开句柄数。摘要说明大部分内存是在 JS 堆中(快照捕获)还是在本机内存中(它不捕获)。55该命令还在对话中打印摘要,显示进程的总内存、其中有多少在 JS 堆中,以及有多少在堆外。摘要还列出任何泄漏指示器,例如高内存增长率或异常高的打开句柄数。摘要说明大部分内存是在 JS 堆中(快照捕获),还是在本机内存中(它不捕获)。

56 56 

57对输出执行以下两项操作之一:57对输出执行以下两项操作之一:

58 58 

workflows.md +1 −1

Details

91 观看运行91 观看运行

92</h3>92</h3>

93 93 

94工作流在后台运行,所以会话在代理工作时保持响应。随时运行 `/workflows` 列出运行中和已完成的工作流,然后选择一个打开其进度视图。94工作流在后台运行,所以会话在代理工作时保持响应。随时运行 `/workflows` 列出运行中和已完成的工作流,然后选择一个打开其进度视图。要停止运行中的工作流而不打开它,在列表中选择它并按 `x`。

95 95 

96进度视图显示每个阶段及其代理计数、令牌总数和经过的时间。页脚列出每个操作的键:96进度视图显示每个阶段及其代理计数、令牌总数和经过的时间。页脚列出每个操作的键:

97 97