SpyBara
Go Premium

Documentation 2026-09-21 22:59 UTC to 2026-09-22 23:59 UTC

78 files changed +2,113 −1,588. View all changes and history on the product overview
2026
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

admin-setup.md +1 −1

Details

167 167 

168* [快速入门](/docs/zh-CN/quickstart):从安装到使用项目的首次会话演练168* [快速入门](/docs/zh-CN/quickstart):从安装到使用项目的首次会话演练

169* [常见工作流](/docs/zh-CN/common-workflows):代码审查、重构和调试等日常任务的模式169* [常见工作流](/docs/zh-CN/common-workflows):代码审查、重构和调试等日常任务的模式

170* [Claude 101](https://anthropic.skilljar.com/claude-101) 和 [Claude Code in Action](https://anthropic.skilljar.com/claude-code-in-action):自定进度的 Anthropic Academy 课程170* [Claude Code 101](https://academy.claude.com/courses/claude-code-101) 和 [Claude Code in Action](https://academy.claude.com/courses/claude-code-in-action):[Claude Academy](https://academy.claude.com/) 上的免费自定进度课程

171 171 

172对于登录问题,请将开发人员指向 [身份验证故障排除](/docs/zh-CN/troubleshoot-install#login-and-authentication)。最常见的修复是:172对于登录问题,请将开发人员指向 [身份验证故障排除](/docs/zh-CN/troubleshoot-install#login-and-authentication)。最常见的修复是:

173 173 

advisor.md +8 −8

Details

56* 运行带有模型的 `/advisor`,例如 `/advisor opus`,以设置它。56* 运行带有模型的 `/advisor`,例如 `/advisor opus`,以设置它。

57* 运行 `/advisor off` 以关闭它。57* 运行 `/advisor off` 以关闭它。

58 58 

59Claude Code 不会调用您的组织的 [`availableModels`](/docs/zh-CN/model-config#restrict-model-selection) 允许列表排除的已保存顾问。要使用顾问,请使用 `/advisor` 选择允许的模型。Claude Code 仍然会保存您当前主模型不支持的顾问。该顾问在您使用 [`/model`](/docs/zh-CN/model-config#setting-your-model) 切换到[兼容的主模型](#choose-an-advisor-model)后激活。59Claude Code 不会调用您的组织的 [`availableModels`](/docs/zh-CN/model-config#restrict-model-selection) 允许列表排除的已保存顾问。要使用顾问,请使用 `/advisor` 选择允许的模型。Claude Code 仍然会保存您当前主模型不支持的顾问。该顾问在您使用 [`/model`](/docs/zh-CN/model-config#setting-your-model) 切换到[兼容的主模型](#choose-an-advisor-model)后激活。如果 API 已在当前对话中拒绝了已保存的顾问,它将保持关闭状态,直到 `/clear` 或 `/compact`,即使在您切换模型之后。

60 60 

61在某些计划中,使用 Fable 作为顾问还需要您一次性[同意将 Fable 使用费用计入使用额度](/docs/zh-CN/model-config#fable-and-usage-credits)。有关您给予该同意之前 `/advisor fable` 会做什么,请参阅 [Fable 顾问和使用额度](#fable-advisor-and-usage-credits)。61在某些计划中,使用 Fable 作为顾问还需要您一次性[同意将 Fable 使用费用计入使用额度](/docs/zh-CN/model-config#fable-and-usage-credits)。有关您给予该同意之前 `/advisor fable` 会做什么,请参阅 [Fable 顾问和使用额度](#fable-advisor-and-usage-credits)。

62 62 


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

99 99 

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

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

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

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

104| Sonnet 5 | Fable、Opus 4.7 或更高版本、Sonnet 5 | Sonnet 4.6 顾问被拒绝,使用 Opus 4.6 顾问的请求会失败并显示 API 错误 |104| Sonnet 5 | Fable、Opus 4.7 或更高版本、Sonnet 5 | Sonnet 4.6 顾问被拒绝,API 拒绝 Opus 4.6 顾问 |

105| Opus 4.6 | Fable、Opus、Sonnet 5 | Sonnet 4.6 顾问被拒绝 |105| 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 顾问被拒绝 |106| Opus 4.7 或 Opus 4.8 | Fable 和 Opus 4.7 或更高版本 | Opus 4.6 或 Sonnet 顾问被拒绝 |

107| Opus 5 | Fable、Opus 5 | Opus 4.6 或 Sonnet 顾问被拒绝,使用 Opus 4.7 或 Opus 4.8 顾问的请求会失败并显示 API 错误 |107| Opus 5.5 或 Opus 5 | Fable 和 Opus 5 或更高版本 | Opus 4.6 或 Sonnet 顾问被拒绝,API 拒绝 Opus 4.7 或 Opus 4.8 顾问 |

108| Fable 5 | Fable 5.1 或 Fable 5 | Opus 或 Sonnet 顾问被拒绝 |108| Fable 5 | Fable 5.1 或 Fable 5 | Opus 或 Sonnet 顾问被拒绝 |

109| Fable 5.1 | Fable 5.1 | Opus 或 Sonnet 顾问被拒绝,使用 Fable 5 顾问的请求会失败并显示 API 错误 |109| Fable 5.1 | Fable 5.1 | Opus 或 Sonnet 顾问被拒绝,API 拒绝 Fable 5 顾问 |

110 110 

111Fable 5.1 需要 Claude Code v2.1.257 或更高版本。两个 Fable 模型都需要 [Fable 访问权限](/docs/zh-CN/model-config#work-with-fable)。111Fable 5.1 需要 Claude Code v2.1.257 或更高版本。两个 Fable 模型都需要 [Fable 访问权限](/docs/zh-CN/model-config#work-with-fable)。

112 112 

113将顾问设置为 `fable`、`opus` 或 `sonnet`。这些别名解析为 Claude Code 为每个模型系列内置的默认版本,该版本随新的 Claude Code 版本而推进。您也可以传递完整的模型 ID,例如 `claude-opus-5`。113将顾问设置为 `fable`、`opus` 或 `sonnet`。这些别名解析为 Claude Code 为每个模型系列内置的默认版本,该版本随新的 Claude Code 版本而推进。您也可以传递完整的模型 ID,例如 `claude-opus-5-5`。

114 114 

115子代理继承配置的顾问,并对其自己的模型应用相同的配对检查。115子代理继承配置的顾问,并对其自己的模型应用相同的配对检查。

116 116 

117Claude Code 在发送请求之前验证配对,API 也会再次验证:117Claude Code 在发送请求之前验证配对,API 也会再次验证:

118 118 

119* 对于表中列为被拒绝的顾问,Claude Code 不会将其附加到主模型的请求中。`/advisor` 命令输出和通知会显示这一点。其自己的模型满足配对的子代理仍然可以使用顾问。119* 对于表中列为被拒绝的顾问,Claude Code 不会将其附加到主模型的请求中。`/advisor` 命令输出和通知会显示这一点。其自己的模型满足配对的子代理仍然可以使用顾问。

120* 对于表中列为因 API 错误而失败的顾问,Claude Code 会附加它,API 会拒绝它。每个请求都会失败并显示 `'<advisor model>' cannot be used as an advisor when the request model is '<main model>'`,直到您使用 `/advisor` 更改顾问或将其关闭。120* 对于表中列为 API 拒绝的顾问,Claude Code 会附加它,API 会拒绝它。Claude Code 随后会在没有顾问的情况下重新发送该请求,对话的其余部分会在没有顾问的情况下运行,因此您看不到错误,也不会获得顾问调用。使用 `/advisor` 选择接受的顾问;更改在 `/clear` 或 `/compact` 之后以及新会话中生效。

121* 如果主模型或顾问是 Claude Code 无法识别的模型,顾问不会附加。121* 如果主模型或顾问是 Claude Code 无法识别的模型,顾问不会附加。

122 122 

123<h3 id="fable-advisor-and-usage-credits">123<h3 id="fable-advisor-and-usage-credits">


195 195 

196顾问工具需要以下所有条件:196顾问工具需要以下所有条件:

197 197 

198* **仅 Anthropic API**:顾问是服务器执行的工具。它在 Amazon Bedrock、Claude Platform on AWS、Google Cloud 的 Agent Platform 或 Microsoft Foundry 上不可用。通过配置了 `ANTHROPIC_BASE_URL` 的 [LLM 网关](/docs/zh-CN/llm-gateway),可用性取决于网关是否将请求完整转发到 Anthropic API。198* **仅 Anthropic API**:顾问是服务器执行的工具。它在 Amazon Bedrock、Claude Platform on AWS、Google Cloud 的 Agent Platform 或 Microsoft Foundry 上不可用。通过配置了 `ANTHROPIC_BASE_URL` 的 [LLM 网关](/docs/zh-CN/llm-gateway),可用性取决于网关是否将请求完整转发到 Anthropic API。如果网关或其上游不识别顾问工具,请参阅[自动重试和错误转发](/docs/zh-CN/llm-gateway-protocol#automatic-retry-and-error-forwarding)了解 Claude Code 如何响应。

199* **支持的主模型**:Fable、Opus 4.6 或更高版本、Sonnet 4.6 或更高版本,或 Haiku 4.5。请参阅[选择顾问模型](#choose-an-advisor-model)了解每个顾问接受的模型。199* **支持的主模型**:Fable、Opus 4.6 或更高版本、Sonnet 4.6 或更高版本,或 Haiku 4.5。请参阅[选择顾问模型](#choose-an-advisor-model)了解每个顾问接受的模型。

200* **功能标志获取**:Claude Code 通过从 Anthropic 获取的功能标志来启用顾问。在设置了关闭标志获取的变量(例如 `DISABLE_TELEMETRY`)的会话中,顾问保持关闭状态。请参阅[需要功能标志获取的功能](/docs/zh-CN/env-vars#features-that-need-feature-flag-fetching)。200* **功能标志获取**:Claude Code 通过从 Anthropic 获取的功能标志来启用顾问。在设置了关闭标志获取的变量(例如 `DISABLE_TELEMETRY`)的会话中,顾问保持关闭状态。请参阅[需要功能标志获取的功能](/docs/zh-CN/env-vars#features-that-need-feature-flag-fetching)。

201 201 

Details

302 302 

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

304 304 

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

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

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

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

Details

189TypeScript 还有 `applyFlagSettings()` 和 `updateSettings()`:189TypeScript 还有 `applyFlagSettings()` 和 `updateSettings()`:

190 190 

191* **`applyFlagSettings()`**:在运行时应用设置,如 `await session.applyFlagSettings({ effortLevel: "high" })`。该方法采用设置文件键而不是选项字段,因此检查[`applyFlagSettings()` 参考](/docs/zh-CN/agent-sdk/typescript#applyflagsettings)以了解架构以及哪些键在会话中途生效。191* **`applyFlagSettings()`**:在运行时应用设置,如 `await session.applyFlagSettings({ effortLevel: "high" })`。该方法采用设置文件键而不是选项字段,因此检查[`applyFlagSettings()` 参考](/docs/zh-CN/agent-sdk/typescript#applyflagsettings)以了解架构以及哪些键在会话中途生效。

192* **`updateSettings()`**:将允许列表中的一组键写入项目的本地设置文件,如 `await session.updateSettings("localSettings", { outputStyle: "Explanatory" })`。写入的键在会话的下一个请求时生效,并为加载 `local` 设置的后续会话持久化。该方法在[方法表](/docs/zh-CN/agent-sdk/typescript#methods)中的行命名允许列表中的键和版本下限。192* **`updateSettings()`**:将一个允许列表中的键写入设置文件。[`updateSettings()` 参考](/docs/zh-CN/agent-sdk/typescript#updatesettings)命名每个源接受的键和版本下限。

193 * 传递 `"localSettings"` 以写入项目的本地设置文件,如 `await session.updateSettings("localSettings", { outputStyle: "Explanatory" })`。写入的键在会话的下一个请求时生效,并为加载 `local` 设置的后续会话持久化。

194 * 传递 `"userSettings"` 以写入 `effortLevel`,这是该源接受的唯一键。Claude Code 将其保存为会话当前模型的默认努力级别,运行中的会话的努力不会改变。

193 195 

194下面的示例运行一个两轮会话,在轮次之间更改配置,并打印回答每轮的模型。在 TypeScript 中,提示流保持第二条消息,直到设置器运行,第二轮在新模型上运行。196下面的示例运行一个两轮会话,在轮次之间更改配置,并打印回答每轮的模型。在 TypeScript 中,提示流保持第二条消息,直到设置器运行,第二轮在新模型上运行。

195 197 

Details

37 37 

38* **`query()` 调用:** SDK 的 `query()` 函数的一次调用。单个调用可以涉及多个步骤:Claude 响应、使用工具、获取结果并再次响应。每个调用在末尾产生一个 [`result`](/docs/zh-CN/agent-sdk/typescript#sdkresultmessage) 消息,除了在 [流式输入模式](/docs/zh-CN/agent-sdk/streaming-vs-single-mode) 中,其中一个 `query()` 调用承载多个用户轮次,每个轮次发出自己的 `result` 消息。38* **`query()` 调用:** SDK 的 `query()` 函数的一次调用。单个调用可以涉及多个步骤:Claude 响应、使用工具、获取结果并再次响应。每个调用在末尾产生一个 [`result`](/docs/zh-CN/agent-sdk/typescript#sdkresultmessage) 消息,除了在 [流式输入模式](/docs/zh-CN/agent-sdk/streaming-vs-single-mode) 中,其中一个 `query()` 调用承载多个用户轮次,每个轮次发出自己的 `result` 消息。

39* **步骤:** `query()` 调用中的单个请求/响应周期。每个步骤产生具有令牌使用情况的助手消息。39* **步骤:** `query()` 调用中的单个请求/响应周期。每个步骤产生具有令牌使用情况的助手消息。

40* **会话:** 由会话 ID 链接的一系列 `query()` 调用(使用 `resume` 选项)。会话中的每个 `query()` 调用独立报告其自己的成本。40* **会话:** 由会话 ID 链接的一系列 `query()` 调用(通过 `resume` 选项)。已恢复调用的结果报告会话的整体支出,而不仅仅是该调用自己的支出。有关总计如何结转的信息,请参阅 [跨多个调用累积成本](#accumulate-costs-across-multiple-calls)。

41 41 

42下图显示了单个 `query()` 调用的消息流,在每个步骤报告令牌使用情况,在末尾报告累积估计:42下图显示了单个 `query()` 调用的消息流,在每个步骤报告令牌使用情况,在末尾报告累积估计:

43 43 


51 </Step>51 </Step>

52 52 

53 <Step title="结果消息提供累积估计">53 <Step title="结果消息提供累积估计">

54 当 `query()` 调用完成时,SDK 发出一个结果消息,其中包含 `total_cost_usd` 和累积 `usage`,在 TypeScript 中类型为 [`SDKResultMessage`](/docs/zh-CN/agent-sdk/typescript#sdkresultmessage),在 Python 中类型为 [`ResultMessage`](/docs/zh-CN/agent-sdk/python#resultmessage)。如果您进行多个 `query()` 调用,例如在多轮会话中,每个结果仅反映该单个调用的成本。如果您只需要估计的总计,您可以忽略按步骤的使用情况并读取此单个值。54 当 `query()` 调用完成时,SDK 发出一个结果消息,其中包含 `total_cost_usd` 和累积 `usage`,在 TypeScript 中类型为 [`SDKResultMessage`](/docs/zh-CN/agent-sdk/typescript#sdkresultmessage),在 Python 中类型为 [`ResultMessage`](/docs/zh-CN/agent-sdk/python#resultmessage)。如果您只需要估计的总计,您可以忽略按步骤的使用情况并读取此单个值。

55 

56 如果您进行多个独立的 `query()` 调用,每个结果仅反映该单个调用的成本。恢复会话的调用也计算会话的早期支出。

55 57 

56 在流式输入模式中,每个轮次发出自己的结果消息。有关如何在该模式中读取调用总计的信息,请参阅 [在流式输入模式中跟踪成本](#track-costs-in-streaming-input-mode)。58 在流式输入模式中,每个轮次发出自己的结果消息。有关如何在该模式中读取调用总计的信息,请参阅 [在流式输入模式中跟踪成本](#track-costs-in-streaming-input-mode)。

57 </Step>59 </Step>


64在[流式输入模式](/docs/zh-CN/agent-sdk/streaming-vs-single-mode)中,一个 `query()` 调用包含多个用户轮次,每个轮次都会发出自己的结果消息。结果字段的范围不同:66在[流式输入模式](/docs/zh-CN/agent-sdk/streaming-vs-single-mode)中,一个 `query()` 调用包含多个用户轮次,每个轮次都会发出自己的结果消息。结果字段的范围不同:

65 67 

66* **`usage`**:仅覆盖该轮次,在该轮次内仅覆盖主代理循环,不包括它运行的任何子代理。68* **`usage`**:仅覆盖该轮次,在该轮次内仅覆盖主代理循环,不包括它运行的任何子代理。

67* **`total_cost_usd` 和 `modelUsage`,或 Python 中的 `model_usage`**:为整个调用到目前为止的运行总计。69* **`total_cost_usd` 和 `modelUsage`,或 Python 中的 `model_usage`**:为整个调用到目前为止的运行总计,加上调用恢复会话时恢复的任何支出。

68 70 

69在应用从不发送 `/clear`、`/reset` 或 `/new` 的调用中,读取最新结果以获取调用总计,而不是对结果求和。71在应用从不发送 `/clear`、`/reset` 或 `/new` 的调用中,读取最新结果以获取调用总计,而不是对结果求和。

70 72 


78 80 

79在 TypeScript 中,SDK 还在每次重置时发出 [`SDKConversationResetMessage`](/docs/zh-CN/agent-sdk/typescript#sdkconversationresetmessage),因此您可以从流中检测重置。在 Python 中,SDK 同样发出 `ConversationResetMessage`。在 Python SDK v0.2.137 之前,Python 迭代器丢弃了该消息,因此在这些版本上,从应用发送的 `/clear` 轮次中自己计数重置。81在 TypeScript 中,SDK 还在每次重置时发出 [`SDKConversationResetMessage`](/docs/zh-CN/agent-sdk/typescript#sdkconversationresetmessage),因此您可以从流中检测重置。在 Python 中,SDK 同样发出 `ConversationResetMessage`。在 Python SDK v0.2.137 之前,Python 迭代器丢弃了该消息,因此在这些版本上,从应用发送的 `/clear` 轮次中自己计数重置。

80 82 

81`maxBudgetUsd`(TypeScript)或 `max_budget_usd`(Python)与相同的运行总计进行比较,因此 `/clear` 也会启动预算重新开始。83`maxBudgetUsd`(TypeScript)或 `max_budget_usd`(Python)仅计算调用自身的支出:从恢复的会话恢复的总计不计入其中,`/clear` 启动预算重新开始。

82 84 

83<h2 id="get-the-total-cost-of-a-query">85<h2 id="get-the-total-cost-of-a-query">

84 获取查询的总成本86 获取查询的总成本

85</h2>87</h2>

86 88 

87结果消息在 TypeScript 中被类型化为 [`SDKResultMessage`](/docs/zh-CN/agent-sdk/typescript#sdkresultmessage),在 Python 中被类型化为 [`ResultMessage`](/docs/zh-CN/agent-sdk/python#resultmessage),标记了 `query()` 调用的代理循环的结束。它包含 `total_cost_usd`,即该调用中所有步骤的累积估计成本。在 Python 中,该字段被类型化为可选的,因此在读取之前请检查它不是 `None`。成功和错误结果都包含它,尽管 [会话崩溃](#recover-totals-after-a-session-crash) 的最终结果可能会将其设为零。89结果消息在 TypeScript 中被类型化为 [`SDKResultMessage`](/docs/zh-CN/agent-sdk/typescript#sdkresultmessage),在 Python 中被类型化为 [`ResultMessage`](/docs/zh-CN/agent-sdk/python#resultmessage),标记了 `query()` 调用的代理循环的结束。它包含 `total_cost_usd`,即该调用中所有步骤的累积估计成本。恢复会话的调用也会计算会话的早期支出。读取该值时适用两个注意事项:

90 

91* 在 Python 中,该字段被类型化为可选的,因此在读取之前请检查它不是 `None`。

92* 成功和错误结果都包含它,尽管 [会话崩溃](#recover-totals-after-a-session-crash) 的最终结果可能会将其设为零。

88 93 

89如果您使用会话进行多个 `query()` 调用,每个结果仅反映该单个调用的成本。在流式输入模式下,按照 [在流式输入模式下跟踪成本](#track-costs-in-streaming-input-mode) 中的描述读取调用总计。94在流式输入模式下,按照 [在流式输入模式下跟踪成本](#track-costs-in-streaming-input-mode) 中的描述读取调用总计。

90 95 

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

92 97 


232 累积多个调用的成本237 累积多个调用的成本

233</h2>238</h2>

234 239 

235每个 `query()` 调用都会返回其自己的 `total_cost_usd`。SDK 不提供会话级别的总计,因此如果您的应用程序进行多个 `query()` 调用,例如在多轮会话中或跨不同用户,您需要自己累积总计。在流式输入模式下,按照[在流式输入模式下跟踪成本](#track-costs-in-streaming-input-mode)中的说明读取每个调用的总计。对于以崩溃结束的调用,请参阅[在会话崩溃后恢复总计](#recover-totals-after-a-session-crash)。240每个 `query()` 调用都会在其结果中返回 `total_cost_usd`。如何组合这些值取决于调用是否共享一个会话:

241 

242* **独立调用,没有 `resume` 或 `continue` 选项**:每个结果仅涵盖其自己的调用,因此您需要自己添加总计,如下面的示例所做的那样。

243* **恢复同一会话的调用**:Claude Code 在进程正常退出时将会话的总计保存到其[记录](/docs/zh-CN/sessions#where-transcripts-are-stored),并在稍后的调用恢复或分叉会话时恢复它们。每个结果已经包括会话的早期支出。读取会话的最新结果以获得会话总计;对结果求和会重复计算恢复的支出。在 v2.1.277 之前,通过 SDK 或 `claude -p` 恢复的会话将其总计从零开始,因此每个调用的结果仅涵盖该调用。

244 

245在流式输入模式下,按照[在流式输入模式下跟踪成本](#track-costs-in-streaming-input-mode)中的说明读取每个调用的总计。对于以崩溃结束的调用,请参阅[在会话崩溃后恢复总计](#recover-totals-after-a-session-crash)。

236 246 

237以下示例按顺序运行两个 `query()` 调用,将每个调用的 `total_cost_usd` 添加到运行总计中,并打印每个调用和合并的成本:247以下示例按顺序运行两个 `query()` 调用,将每个调用的 `total_cost_usd` 添加到运行总计中,并打印每个调用和合并的成本:

238 248 


307 处理错误、缓存和输出令牌计数317 处理错误、缓存和输出令牌计数

308</h2>318</h2>

309 319 

310为了准确跟踪成本,需要考虑助手消息上的占位符输出计数、失败的对话消耗的令牌以及缓存令牌定价。320为了准确跟踪成本,需要考虑助手消息上的占位符输出计数、失败对话消耗的令牌以及缓存令牌定价。

311 321 

312<h3 id="read-output-tokens-from-the-result-message">322<h3 id="read-output-tokens-from-the-result-message">

313 从结果消息中读取输出令牌323 从结果消息中读取输出令牌

314</h3>324</h3>

315 325 

316Claude Code 从 API 在响应开始时报告的使用情况构建每个助手消息,因此消息的 `output_tokens` 仅是 API 在 `message_start` 时报告的计数,在生成响应之前。一个 API 响应可以产生多个助手消息,每个消息都携带相同的占位符。326Claude Code 从 API 在响应开始时报告的使用情况构建每条助手消息,因此消息的 `output_tokens` 仅是 API 在 `message_start` 时报告的计数,在生成响应之前。一个 API 响应可以产生多条助手消息,每条消息都携带相同的占位符。

317 327 

318API 在响应结束时报告真实输出计数,Claude Code 将其添加到结果消息中。从结果的 `usage` 中读取输出令牌,或从 `modelUsage` 中读取以获得按模型的细分。328API 在响应结束时报告真实输出计数,Claude Code 将其添加到结果消息中。从结果的 `usage` 中读取输出令牌,或从 `modelUsage` 中读取以获得按模型的细分。

319 329 

320要在流式传输时观察响应的输出计数增长,请设置 `includePartialMessages`,或在 Python 中设置 `include_partial_messages`,并从每个 `message_delta` 流事件中读取 `usage`,在 TypeScript 中类型为 [`SDKPartialAssistantMessage`](/docs/zh-CN/agent-sdk/typescript#sdkpartialassistantmessage),在 Python 中为 [`StreamEvent`](/docs/zh-CN/agent-sdk/python#streamevent)。330要在流式传输响应时观察输出计数的增长,请设置 `includePartialMessages`,或在 Python 中设置 `include_partial_messages`,并从每个 `message_delta` 流事件中读取 `usage`,在 TypeScript 中类型为 [`SDKPartialAssistantMessage`](/docs/zh-CN/agent-sdk/typescript#sdkpartialassistantmessage),在 Python 中为 [`StreamEvent`](/docs/zh-CN/agent-sdk/python#streamevent)。

321 331 

322<h3 id="track-costs-on-failed-conversations">332<h3 id="track-costs-on-failed-conversations">

323 跟踪失败对话的成本333 跟踪失败对话的成本


325 335 

326成功和错误结果消息都包括 `usage` 和 `total_cost_usd`;在 Python 中两个字段都是可选类型,因此在读取之前检查它们不是 `None`。336成功和错误结果消息都包括 `usage` 和 `total_cost_usd`;在 Python 中两个字段都是可选类型,因此在读取之前检查它们不是 `None`。

327 337 

328如果对话中途失败,您仍然消耗了到失败点为止的令牌。从每个结果消息中读取成本数据,无论其 `subtype` 是 `success` 还是错误子类型之一。在某些错误结果上,`usage` 报告的值少于调用花费的值:338如果对话中途失败,您仍然消耗了到失败点为止的令牌。从每条结果消息中读取成本数据,无论其 `subtype` 是 `success` 还是错误子类型之一。在某些错误结果上,`usage` 报告的值少于调用花费的值:

329 339 

330* **`error_during_execution` 在 [会话崩溃](#recover-totals-after-a-session-crash) 之后**:每个成本字段可能被清零。340* **`error_during_execution` 在 [会话崩溃后](#recover-totals-after-a-session-crash)**:每个成本字段可能都被清零。

331* **`error_max_budget_usd`**:`usage` 省略了超出预算的响应,而 `total_cost_usd` 和 `modelUsage` 包括它。341* **`error_max_budget_usd`**:`usage` 省略了超出预算的响应,而 `total_cost_usd` 和 `modelUsage` 包括它。

332 342 

333如果有选择,从 `total_cost_usd` 或 `modelUsage` 而不是 `usage` 进行计算。343如果有选择,从 `total_cost_usd` 或 `modelUsage` 而不是 `usage` 进行计算。

334 344 

335<h3 id="recover-totals-after-a-session-crash">345<h3 id="recover-totals-after-a-session-crash">

336 在会话崩溃后恢复总计346 会话崩溃后恢复总计

337</h3>347</h3>

338 348 

339当 Claude Code 进程崩溃时,它会发出最终的 `error_during_execution` 结果并退出,在单次和流式输入模式中都是如此。该结果可能携带清零的 `usage`、`total_cost_usd` 和 `modelUsage`,因此从之前到达的内容恢复调用的总计。步骤 1 在存在较早结果时恢复完整总计;步骤 2 中的回退仅恢复主循环的输入和缓存令牌。349当 Claude Code 进程崩溃时,它会发出最终的 `error_during_execution` 结果并退出,在单次和流式输入模式中都是如此。该结果可能携带清零的 `usage`、`total_cost_usd` 和 `modelUsage`,因此从崩溃前到达的内容恢复调用的总计。步骤 1 在存在较早结果时恢复完整总计;步骤 2 中的回退仅恢复主循环的输入和缓存令牌。

340 350 

3411. 使用崩溃前的转换结果。在流式输入模式中,它保存自调用开始或自上次 [`/clear`](#track-costs-in-streaming-input-mode) 以来的运行总计。当该结果无法帮助您时,请改为转到步骤 2:3511. 使用崩溃前的转换结果。在流式输入模式中,它保存 [在流式输入模式下跟踪成本](#track-costs-in-streaming-input-mode) 中描述的运行总计。当该结果无法帮助您时,改为转到步骤 2:

342 * 调用是单次的,因此不存在较早的结果。352 * 调用是单次的,因此不存在较早的结果。

343 * 崩溃发生在第一个转换上。353 * 崩溃发生在第一个转换上。

344 * 崩溃前的转换是 `/clear` 本身,因此其结果仅涵盖重置。354 * 崩溃前的转换是 `/clear` 本身,因此其结果仅涵盖重置。

3452. 改为对助手消息上的 `usage` 求和,计算每个 API 响应一次,如 [跟踪每步使用情况](#track-per-step-usage) 示例所示。在单次模式中,对所有消息求和;在流式输入模式中,对最后一个结果之后到达的消息求和。这为您提供主循环的输入和缓存令牌。子代理使用情况无法通过这种方式恢复,输出令牌或美元成本也无法恢复,因为 [每步 `output_tokens` 是占位符](#read-output-tokens-from-the-result-message)。3552. 改为对助手消息上的 `usage` 求和,每个 API 响应计数一次,如 [跟踪每步使用情况](#track-per-step-usage) 示例所示。在单次模式中,对所有消息求和;在流式输入模式中,对最后一个结果之后到达的消息求和。这给您主循环的输入和缓存令牌。子代理使用情况无法通过这种方式恢复,输出令牌或美元成本也无法恢复,因为 [每步 `output_tokens` 是占位符](#read-output-tokens-from-the-result-message)。

346 356 

347<h3 id="track-cache-tokens">357<h3 id="track-cache-tokens">

348 跟踪缓存令牌358 跟踪缓存令牌


359 将 prompt cache TTL 扩展到一小时369 将 prompt cache TTL 扩展到一小时

360</h3>370</h3>

361 371 

362您自己的转换落在 [主对话 TTL 桶](/docs/zh-CN/prompt-caching#which-ttl-each-request-gets) 中,与 Claude Code 与它们内联运行的助手一起。Claude Code 在该对话之外进行的请求,例如 [子代理](/docs/zh-CN/agent-sdk/subagents),有 [单独的 TTL 控制](/docs/zh-CN/prompt-caching#choose-the-ttl-yourself)。372您自己的转换落在 [主对话 TTL 存储桶](/docs/zh-CN/prompt-caching#which-ttl-each-request-gets) 中,与 Claude Code 与它们内联运行的助手一起。Claude Code 在该对话之外进行的请求,例如 [子代理](/docs/zh-CN/agent-sdk/subagents),有 [单独的 TTL 控制](/docs/zh-CN/prompt-caching#choose-the-ttl-yourself)。

363 373 

364当您使用 API 密钥进行身份验证或在 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 或 [AWS 上的 Claude Platform](/docs/zh-CN/claude-platform-on-aws) 上运行时,您自己的转换的缓存条目默认使用 5 分钟 TTL。如果您的工作负载针对相同的系统提示和上下文运行许多短会话,且会话之间的间隔超过 5 分钟,缓存会在会话之间过期,每个新会话都需要支付完整的输入价格。374当您使用 API 密钥进行身份验证或在 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 或 [AWS 上的 Claude Platform](/docs/zh-CN/claude-platform-on-aws) 上运行时,您自己的转换的缓存条目默认使用 5 分钟 TTL。如果您的工作负载针对相同的系统提示和上下文运行许多短会话,且会话之间的间隔超过 5 分钟,缓存会在会话之间过期,每个新会话都需要支付完整的输入价格。

365 375 

366要请求缓存写入的 1 小时 TTL,请设置 [`ENABLE_PROMPT_CACHING_1H`](/docs/zh-CN/env-vars) 环境变量。您可以在 shell 或容器环境中导出它,或通过 `options.env` 传递它。376要请求缓存写入的 1 小时 TTL,请设置 [`ENABLE_PROMPT_CACHING_1H`](/docs/zh-CN/env-vars) 环境变量。您可以在 shell 或容器环境中导出它,或通过 `options.env` 传递它。

367 377 

368以下示例为在 Amazon Bedrock 上运行的代理启用 1 小时 TTL。因为它设置了 `CLAUDE_CODE_USE_BEDROCK`,它需要为 [Amazon Bedrock](/docs/zh-CN/amazon-bedrock) 工作的 AWS 凭证;没有它们查询会失败。378以下示例为在 Amazon Bedrock 上运行的代理启用 1 小时 TTL。因为它设置了 `CLAUDE_CODE_USE_BEDROCK`,它需要 [Amazon Bedrock](/docs/zh-CN/amazon-bedrock) 的有效 AWS 凭证;没有它们查询会失败。

369 379 

370<CodeGroup>380<CodeGroup>

371 ```python Python theme={null}381 ```python Python theme={null}


405 ```415 ```

406</CodeGroup>416</CodeGroup>

407 417 

408具有 1 小时 TTL 的缓存写入按比 5 分钟写入更高的费率计费,因此启用此功能会用更高的写入成本换取更多缓存读取。有关详细信息,请参阅 [prompt caching 定价](https://platform.claude.com/docs/en/build-with-claude/prompt-caching)。在您计划包含的使用范围内的 Claude 订阅上,您可以在自己的转换上获得 1 小时 TTL,以及在 Claude Code 在其旁边进行的某些助手请求上,无需设置此变量,一旦您开始使用 [使用额度](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans),Claude Code 会将这些转换降低到 5 分钟 TTL。418具有 1 小时 TTL 的缓存写入按比 5 分钟写入更高的费率计费,因此启用此功能会用更高的写入成本换取更多缓存读取。有关详细信息,请参阅 [prompt caching 定价](https://platform.claude.com/docs/en/build-with-claude/prompt-caching)。在您计划内包含的使用范围内的 Claude 订阅上,您可以在自己的转换上获得 1 小时 TTL,以及在 Claude Code 在其旁边进行的某些助手请求上,无需设置此变量,一旦您开始使用 [使用额度](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans),Claude Code 会将这些转换降低到 5 分钟 TTL。

409 419 

410`ENABLE_PROMPT_CACHING_1H` 要求在两个桶中的每个请求上使用 1 小时 TTL。要为每个桶分别选择 TTL,请改用这些控制。每个都采用 `5m` 或 `1h` 并优先于 `ENABLE_PROMPT_CACHING_1H`:420`ENABLE_PROMPT_CACHING_1H` 要求在两个存储桶中的每个请求上使用 1 小时 TTL。要为每个存储桶分别选择 TTL,请改用这些控制。每个接受 `5m` 或 `1h` 并优先于 `ENABLE_PROMPT_CACHING_1H`:

411 421 

412* 主对话:`CLAUDE_CODE_PROMPT_CACHE_TTL` [环境变量](/docs/zh-CN/env-vars),或 [`promptCacheTtl`](/docs/zh-CN/settings-reference#promptcachettl) 设置422* 主对话:`CLAUDE_CODE_PROMPT_CACHE_TTL` [环境变量](/docs/zh-CN/env-vars),或 [`promptCacheTtl`](/docs/zh-CN/settings-reference#promptcachettl) 设置

413* 其他所有内容:`CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL` 环境变量,或 [`subagentPromptCacheTtl`](/docs/zh-CN/settings-reference#subagentpromptcachettl) 设置423* 其他所有内容:`CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL` 环境变量,或 [`subagentPromptCacheTtl`](/docs/zh-CN/settings-reference#subagentpromptcachettl) 设置

414 424 

415将 `promptCacheTtl` 设置为 `1h` 会在您使用使用额度时保持主对话上的 1 小时缓存。有关完整的优先级顺序,请参阅 [选择 TTL](/docs/zh-CN/prompt-caching#choose-the-ttl-yourself)。425将 `promptCacheTtl` 设置为 `1h` 会在您使用使用额度时保持主对话上的 1 小时缓存。有关完整的优先级顺序,请参阅 [自己选择 TTL](/docs/zh-CN/prompt-caching#choose-the-ttl-yourself)。

416 426 

417<h2 id="related-documentation">427<h2 id="related-documentation">

418 相关文档428 相关文档

Details

10 10 

11本页面涵盖在你自己的基础设施上自托管。有关可部署的 Dockerfile 和 Kubernetes 清单,请参阅[托管指南](https://github.com/anthropics/claude-cookbooks/tree/main/claude_agent_sdk/hosting)。11本页面涵盖在你自己的基础设施上自托管。有关可部署的 Dockerfile 和 Kubernetes 清单,请参阅[托管指南](https://github.com/anthropics/claude-cookbooks/tree/main/claude_agent_sdk/hosting)。

12 12 

13如果你不需要基础设施控制、自定义隔离或自己的数据平面,请考虑改用[托管代理](https://platform.claude.com/docs/en/managed-agents/overview):这是一个托管的 REST API,其中 Anthropic 运行代理和沙箱,因此你的应用程序发送事件并流回结果,无需操作任何托管基础设施。13如果你不需要在自己的基础设施上运行代理循环本身,请考虑改用[托管代理](https://platform.claude.com/docs/en/managed-agents/overview)。Anthropic 托管代理循环,你的应用程序通过客户端 SDK 或 REST API 发送事件并接收流式结果。工具执行在 Anthropic 托管的云沙箱或你自己的基础设施上的[自托管沙箱](https://platform.claude.com/docs/en/managed-agents/self-hosted-sandboxes)中运行。

14 14 

15<h2 id="the-subprocess-model">15<h2 id="the-subprocess-model">

16 子进程模型16 子进程模型

Details

41[比较表](#compare-the-four-approaches)显示了每种自定义方法保留的内容。41[比较表](#compare-the-four-approaches)显示了每种自定义方法保留的内容。

42 42 

43<h2 id="customize-agent-behavior">43<h2 id="customize-agent-behavior">

44 自定义 agent 行为44 自定义代理行为

45</h2>45</h2>

46 46 

47`append` 和自定义提示词字符串各自直接改变系统提示词,输出样式改变 Claude Code 给 Claude 的每个响应的指令。CLAUDE.md 采用不同的方式:SDK 读取它并将其内容作为项目上下文注入到对话中,因此它与你选择的任何系统提示词一起塑造行为。[Skills](/docs/zh-CN/agent-sdk/skills)、[hooks](/docs/zh-CN/agent-sdk/hooks) 和 [permissions](/docs/zh-CN/agent-sdk/permissions) 也在系统提示词之外塑造行为,并在各自的页面上介绍。47`append` 和自定义提示字符串各自直接改变系统提示,输出样式改变 Claude Code 为每个响应给 Claude 的指令。CLAUDE.md 采用不同的路径:SDK 读取它并将其内容注入到对话中作为项目上下文,因此它与你选择的任何系统提示一起塑造行为。[Skills](/docs/zh-CN/agent-sdk/skills)、[hooks](/docs/zh-CN/agent-sdk/hooks) 和 [permissions](/docs/zh-CN/agent-sdk/permissions) 也在系统提示之外塑造行为,并在各自的页面上介绍。

48 48 

49<h3 id="claude-md-files-for-project-level-instructions">49<h3 id="claude-md-files-for-project-level-instructions">

50 CLAUDE.md 文件用于项目级指令50 用于项目级指令的 CLAUDE.md 文件

51</h3>51</h3>

52 52 

53CLAUDE.md 文件为 Claude 提供持久的项目上下文和指令。SDK 将其内容注入到对话中,不改变系统提示词,因此它们可以与任何系统提示词配置一起工作。关于在 CLAUDE.md 中放什么、在哪里放置它以及如何编写有效的指令,请参阅 [When to add to CLAUDE.md](/docs/zh-CN/memory#when-to-add-to-claude-md) 和 [How Claude remembers your project](/docs/zh-CN/memory) 的其余部分。本节涵盖 SDK 特定的内容:CLAUDE.md 如何加载。53CLAUDE.md 文件为 Claude 提供持久的项目上下文和指令。SDK 将其内容注入到对话中并保持系统提示不变,因此它们与任何系统提示配置一起工作。关于在 CLAUDE.md 中放什么、放在哪里以及如何编写有效的指令,请参阅 [When to add to CLAUDE.md](/docs/zh-CN/memory#when-to-add-to-claude-md) 和 [How Claude remembers your project](/docs/zh-CN/memory) 的其余部分。本节涵盖 SDK 特定的内容:CLAUDE.md 如何加载。

54 54 

55当匹配的设置源被启用时,SDK 读取 CLAUDE.md:`'project'` 从工作目录加载 `CLAUDE.md` 或 `.claude/CLAUDE.md`,`'user'` 加载 `~/.claude/CLAUDE.md`。默认 `query()` 选项启用两个源,因此 CLAUDE.md 会自动加载。如果你在 TypeScript 中显式设置 `settingSources` 或在 Python 中设置 `setting_sources`,请包含你需要的源。CLAUDE.md 加载由设置源控制,而不是由 `claude_code` 预设控制。55SDK 在匹配的设置源启用时读取 CLAUDE.md:`'project'` 从工作目录加载 `CLAUDE.md` 或 `.claude/CLAUDE.md`,`'user'` 加载 `~/.claude/CLAUDE.md`。默认 `query()` 选项启用两个源,因此 CLAUDE.md 自动加载。如果你在 TypeScript 中显式设置 `settingSources` 或在 Python 中设置 `setting_sources`,请包含你需要的源。CLAUDE.md 加载由设置源控制,而不是由 `claude_code` 预设控制。

56 56 

57<h4 id="load-claude-md-with-the-sdk">57<h4 id="load-claude-md-with-the-sdk">

58 使用 SDK 加载 CLAUDE.md58 使用 SDK 加载 CLAUDE.md

59</h4>59</h4>

60 60 

61要加载 CLAUDE.md,请设置 `settingSources` 以包含你的 CLAUDE.md 所在的级别。下面的示例加载项目级 CLAUDE.md 以及 `claude_code` 预设,因此 Claude 既有完整的编码 agent 提示词,也有你的项目约定:61要加载 CLAUDE.md,请设置 `settingSources` 以包含你保存 CLAUDE.md 的级别。下面的示例加载项目级 CLAUDE.md 以及 `claude_code` 预设,因此 Claude 既有编码代理提示,也有你的项目约定:

62 62 

63<CodeGroup>63<CodeGroup>

64 ```typescript TypeScript theme={null}64 ```typescript TypeScript theme={null}


71 options: {71 options: {

72 systemPrompt: {72 systemPrompt: {

73 type: "preset",73 type: "preset",

74 preset: "claude_code" // 使用 Claude Code 的系统提示词74 preset: "claude_code" // Use Claude Code's system prompt

75 },75 },

76 settingSources: ["project"] // 从项目加载 CLAUDE.md76 settingSources: ["project"] // Loads CLAUDE.md from project

77 }77 }

78 })) {78 })) {

79 messages.push(message);79 messages.push(message);

80 }80 }

81 81 

82 // 现在 Claude 可以访问来自 CLAUDE.md 的项目指南82 // Now Claude has access to your project guidelines from CLAUDE.md

83 ```83 ```

84 84 

85 ```python Python theme={null}85 ```python Python theme={null}


96 options=ClaudeAgentOptions(96 options=ClaudeAgentOptions(

97 system_prompt={97 system_prompt={

98 "type": "preset",98 "type": "preset",

99 "preset": "claude_code", # 使用 Claude Code 的系统提示词99 "preset": "claude_code", # Use Claude Code's system prompt

100 },100 },

101 setting_sources=["project"], # 从项目加载 CLAUDE.md101 setting_sources=["project"], # Loads CLAUDE.md from project

102 ),102 ),

103 ):103 ):

104 messages.append(message)104 messages.append(message)


106 106 

107 asyncio.run(main())107 asyncio.run(main())

108 108 

109 # 现在 Claude 可以访问来自 CLAUDE.md 的项目指南109 # Now Claude has access to your project guidelines from CLAUDE.md

110 ```110 ```

111</CodeGroup>111</CodeGroup>

112 112 

113当你运行任一示例时,SDK 会在 Claude 工作时流式传输消息:系统初始化消息、助手消息、携带工具结果的用户消息,以及包含会话结果的最终结果消息。113当你运行任一示例时,SDK 在 Claude 工作时流式传输消息:系统初始化消息、助手消息、携带工具结果的用户消息,以及包含会话结果的最终结果消息。

114 114 

115CLAUDE.md 在项目的所有会话中持久存在,通过 git 与你的团队共享,并自动发现而无需代码更改。如果你传递空的 `settingSources` 数组,则不会加载。115CLAUDE.md 在项目中的所有会话中持久存在,通过 git 与你的团队共享,并自动发现而无需代码更改。如果你传递空的 `settingSources` 数组,它不会被加载。

116 116 

117<h3 id="output-styles-for-persistent-configurations">117<h3 id="output-styles-for-persistent-configurations">

118 输出样式用于持久配置118 用于持久配置的输出样式

119</h3>119</h3>

120 120 

121输出样式是保存的指令集,可以改变 Claude 的角色、语气和输出格式。它们存储为 markdown 文件,可以在会话和项目中重复使用。121输出样式是改变 Claude 的角色、语气和输出格式的已保存指令集。它们存储为 markdown 文件,可以在会话和项目中重复使用。

122 122 

123<h4 id="create-an-output-style">123<h4 id="create-an-output-style">

124 创建输出样式124 创建输出样式

125</h4>125</h4>

126 126 

127输出样式是一个 markdown 文件,其 [frontmatter](/docs/zh-CN/output-styles#frontmatter) 中有元数据,后面是提示词内容。将其保存到 `~/.claude/output-styles/` 以获得在每个项目中可用的用户级样式,或保存到你的存储库中的 `.claude/output-styles/` 以获得可以提交和与你的团队共享的项目级样式。127输出样式是一个 markdown 文件,包含用于元数据的 [frontmatter](/docs/zh-CN/output-styles#frontmatter),后跟提示内容。将其保存到 `~/.claude/output-styles/` 以获得在每个项目中可用的用户级样式,或保存到你的存储库中的 `.claude/output-styles/` 以获得可以提交并与你的团队共享的项目级样式。

128 128 

129自定义输出样式会省略 `claude_code` 预设的软件工程指令,并使用你自己的。要保留它们并在其基础上分层你的指令,请在 frontmatter 中设置 `keep-coding-instructions: true`。这些指令仅在 Claude Code 的完整系统提示词中,因此该设置在较短系统提示词的会话中无效,你可以通过 [`CLAUDE_CODE_SIMPLE_SYSTEM_PROMPT`](/docs/zh-CN/env-vars#variables) 打开或关闭该提示词。当你的 agent 仍在进行软件工程工作时保留它们。当你完全替换角色时省略它们。129自定义输出样式会排除 `claude_code` 预设的软件工程指令,并使用你自己的。要保留它们并在其上分层你的指令,请在 frontmatter 中设置 `keep-coding-instructions: true`。这些指令仅在 Claude Code 的完整系统提示中,因此该设置在较短系统提示的会话中无效,你可以使用 [`CLAUDE_CODE_SIMPLE_SYSTEM_PROMPT`](/docs/zh-CN/env-vars#variables) 固定打开或关闭。当你的代理仍在进行软件工程工作时保留它们。当你完全替换角色时排除它们。

130 130 

131下面的示例定义了一个代码审查角色,它保留了编码指令,因为审查代码仍然受益于 Claude Code 的安全性和代码质量指导。将其保存为 `~/.claude/output-styles/code-reviewer.md` 以在项目中可用:131下面的示例定义了一个代码审查角色,它保留编码指令,因为审查代码仍然受益于 Claude Code 的安全和代码质量指导。将其保存为 `~/.claude/output-styles/code-reviewer.md` 以使其在项目中可用:

132 132 

133```markdown ~/.claude/output-styles/code-reviewer.md theme={null}133```markdown ~/.claude/output-styles/code-reviewer.md theme={null}

134---134---


154 154 

155* **CLI**:运行 `/output-style <style>`,例如 `/output-style concise`,或运行 `/config` 并选择一个。`/output-style` 命令需要 Claude Code v2.1.269 或更高版本。155* **CLI**:运行 `/output-style <style>`,例如 `/output-style concise`,或运行 `/config` 并选择一个。`/output-style` 命令需要 Claude Code v2.1.269 或更高版本。

156* **设置**:在 `.claude/settings.local.json` 中设置 `outputStyle`156* **设置**:在 `.claude/settings.local.json` 中设置 `outputStyle`

157* **TypeScript SDK**:在传递给 `query()` 的内联 `settings` 对象内设置 `outputStyle`,或将 `settings` 指向设置它的设置文件。`outputStyle` 不是顶级 `Options` 字段:157* **TypeScript SDK**:在传递给 `query()` 的内联 `settings` 对象中设置 `outputStyle`,或指向设置它的设置文件。`outputStyle` 不是顶级 `Options` 字段:

158 158 

159 ```typescript theme={null}159 ```typescript theme={null}

160 const options = { settings: { outputStyle: "Explanatory" } };160 const options = { settings: { outputStyle: "Explanatory" } };


162 162 

163在 Python SDK 中,通过 `settings` 选项设置 `outputStyle`,该选项接受 JSON 字符串(如 `'{"outputStyle": "Explanatory"}'`)或设置它的设置文件的路径。163在 Python SDK 中,通过 `settings` 选项设置 `outputStyle`,该选项接受 JSON 字符串(如 `'{"outputStyle": "Explanatory"}'`)或设置它的设置文件的路径。

164 164 

165**SDK 用户注意:** 当你在选项中包含 `settingSources: ['user']` 或 `settingSources: ['project']`(TypeScript)/ `setting_sources=["user"]` 或 `setting_sources=["project"]`(Python)时,输出样式会被加载。165**SDK 用户注意:** 当你包含 `settingSources: ['user']` 或 `settingSources: ['project']`(TypeScript)/ `setting_sources=["user"]` 或 `setting_sources=["project"]`(Python)在你的选项中时,输出样式会被加载。

166 166 

167<h3 id="append-to-the-claude_code-preset">167<h3 id="append-to-the-claude_code-preset">

168 追加到 `claude_code` 预设168 追加到 `claude_code` 预设

169</h3>169</h3>

170 170 

171你可以使用带有 `append` 属性的 Claude Code 预设来添加自定义指令,同时保留所有内置功能。171你可以使用带有 `append` 属性的 Claude Code 预设来添加你的自定义指令,同时保留所有内置功能。

172 172 

173<CodeGroup>173<CodeGroup>

174 ```typescript TypeScript theme={null}174 ```typescript TypeScript theme={null}


222</CodeGroup>222</CodeGroup>

223 223 

224<h4 id="improve-prompt-caching-across-users-and-machines">224<h4 id="improve-prompt-caching-across-users-and-machines">

225 改进跨用户和机器的提示词缓存225 改进跨用户和机器的提示缓存

226</h4>226</h4>

227 227 

228默认情况下,两个使用相同 `claude_code` 预设和 `append` 文本的会话,如果从不同的工作目录运行,仍然无法共享提示词缓存条目。这是因为预设在你的 `append` 文本之前在系统提示词中嵌入了每个会话的上下文:工作目录、它是否是 git 存储库、平台、活跃的 shell、操作系统版本和自动记忆路径。该上下文中的任何差异都会产生不同的系统提示词和缓存未命中。CLAUDE.md 内容不会影响系统提示词缓存,因为 SDK 将其注入到对话中,而不是系统提示词。228默认情况下,两个使用相同 `claude_code` 预设和 `append` 文本的会话,如果从不同的工作目录运行,仍然无法共享提示缓存条目。这是因为预设在你的 `append` 文本之前在系统提示中嵌入了每个会话的上下文:工作目录、它是否是 git 存储库、平台、活跃的 shell、OS 版本和自动内存路径。该上下文中的任何差异都会产生不同的系统提示和缓存未命中。CLAUDE.md 内容不影响系统提示缓存,因为 SDK 将其注入到对话中,而不是系统提示。

229 229 

230要使系统提示词在会话中相同,请在 TypeScript 中设置 `excludeDynamicSections: true`,或在 Python 中设置 `"exclude_dynamic_sections": True`。每个会话的上下文移动到第一条用户消息中,只在系统提示词中保留静态预设和你的 `append` 文本,以便相同的配置在用户和机器之间共享缓存条目。230要使系统提示在会话中相同,请在 TypeScript 中设置 `excludeDynamicSections: true` 或在 Python 中设置 `"exclude_dynamic_sections": True`。每个会话的上下文移动到第一条用户消息中,仅在系统提示中保留静态预设和你的 `append` 文本,因此相同的配置在用户和机器之间共享缓存条目。

231 231 

232<Note>232<Note>

233 `excludeDynamicSections` 需要 `@anthropic-ai/claude-agent-sdk` v0.2.98 或更高版本,或 Python 的 `claude-agent-sdk` v0.1.58 或更高版本。仅在预设对象形式上设置它。当你传递自定义提示词而不是预设时,SDK 会忽略它;要在 TypeScript SDK 中保持自定义提示词的指令缓存,请参阅 [Cache the static part of a custom prompt](#cache-the-static-part-of-a-custom-prompt)。233 `excludeDynamicSections` 需要 `@anthropic-ai/claude-agent-sdk` v0.2.98 或更高版本,或 Python 的 `claude-agent-sdk` v0.1.58 或更高版本。仅在预设对象形式上设置它。当你传递自定义提示而不是预设时,SDK 会忽略它;要在 TypeScript SDK 中保持自定义提示的指令缓存,请参阅 [Cache the static part of a custom prompt](#cache-the-static-part-of-a-custom-prompt)。

234</Note>234</Note>

235 235 

236以下示例将共享的 `append` 块与 `excludeDynamicSections` 配对,以便从不同目录运行的 agent 群可以重复使用相同的缓存系统提示词:236以下示例将共享的 `append` 块与 `excludeDynamicSections` 配对,以便从不同目录运行的代理队列可以重复使用相同的缓存系统提示:

237 237 

238<CodeGroup>238<CodeGroup>

239 ```typescript TypeScript theme={null}239 ```typescript TypeScript theme={null}


279 ```279 ```

280</CodeGroup>280</CodeGroup>

281 281 

282**权衡:** 工作目录、git 存储库标志、平台、活跃的 shell、操作系统版本和自动记忆路径仍然会到达 Claude,但作为第一条用户消息的一部分,而不是系统提示词。用户消息中的指令比系统提示词中的相同文本的权重略低,因此在推理当前目录或自动记忆路径时,Claude 可能会更少地依赖它们。当跨会话缓存重复使用比最大化权威环境上下文更重要时,启用此选项。282**权衡:** 工作目录、git 存储库标志、平台、活跃的 shell、OS 版本和自动内存路径仍然到达 Claude,但作为第一条用户消息的一部分,而不是系统提示。用户消息中的指令比系统提示中的相同文本的权重略低,因此 Claude 在推理当前目录或自动内存路径时可能会更少依赖它们。当跨会话缓存重复使用比最大化权威环境上下文更重要时,启用此选项。

283 283 

284对于非交互式 CLI 模式中的等效标志,请参阅 [`--exclude-dynamic-system-prompt-sections`](/docs/zh-CN/cli-reference)。284对于非交互式 CLI 模式中的等效标志,请参阅 [`--exclude-dynamic-system-prompt-sections`](/docs/zh-CN/cli-reference)。

285 285 

286<h3 id="custom-system-prompts">286<h3 id="custom-system-prompts">

287 自定义系统提示词287 自定义系统提示

288</h3>288</h3>

289 289 

290你可以提供自定义字符串作为 `systemPrompt` 以完全用你自己的指令替换默认值。290你可以提供自定义字符串作为 `systemPrompt` 以完全替换默认值为你自己的指令。

291 291 

292<CodeGroup>292<CodeGroup>

293 ```typescript TypeScript theme={null}293 ```typescript TypeScript theme={null}


346 ```346 ```

347</CodeGroup>347</CodeGroup>

348 348 

349在 Python 中,使用 `system_prompt={"type": "file", "path": "..."}` 从文件加载大型自定义提示词,而不是将其作为字符串传递。Python SDK 将字符串提示词作为一个命令行参数传递给 CLI 子进程,因此超过操作系统参数长度限制的提示词在任何 API 请求发送之前在进程生成时失败。在 Linux 上,错误是 `Argument list too long`。请参阅 [`SystemPromptFile`](/docs/zh-CN/agent-sdk/python#systempromptfile) 了解平台阈值和 Windows 行为。349在 Python 中,使用 `system_prompt={"type": "file", "path": "..."}` 从文件加载大型自定义提示,而不是将其作为字符串传递。Python SDK 将字符串提示作为一个命令行参数传递给 CLI 子进程,因此超过 OS 参数长度限制的提示在任何 API 请求发送之前在进程生成时失败。在 Linux 上,错误是 `Argument list too long`。请参阅 [`SystemPromptFile`](/docs/zh-CN/agent-sdk/python#systempromptfile) 了解平台阈值和 Windows 行为。

350 350 

351<h4 id="cache-the-static-part-of-a-custom-prompt">351<h4 id="cache-the-static-part-of-a-custom-prompt">

352 缓存自定义提示词的静态部分352 缓存自定义提示的静态部分

353</h4>353</h4>

354 354 

355在 TypeScript SDK 中,你可以将自定义提示词作为字符串数组而不是一个字符串传递,在静态部分和其余部分之间使用 `SYSTEM_PROMPT_DYNAMIC_BOUNDARY` 标记。当你的提示词结合每个请求都相同的指令与每个请求都改变的上下文(例如 agent 处理的客户或工单)时,使用此方法。当你将两个部分作为一个字符串传递时,对每个请求部分的更改会改变整个系统提示词,因此静态指令也会错过缓存。此形式在 Python SDK 中不可用;[`ClaudeAgentOptions`](/docs/zh-CN/agent-sdk/python#claudeagentoptions) 列出了 `system_prompt` 接受的形式。355在 TypeScript SDK 中,你可以将自定义提示作为字符串数组而不是一个字符串传递,在静态部分和其余部分之间使用 `SYSTEM_PROMPT_DYNAMIC_BOUNDARY` 标记。当你的提示结合在每个请求上相同的指令与每个请求变化的上下文(如代理处理的客户或工单)时,使用此方法。当你将两部分作为一个字符串传递时,对每个请求部分的更改会改变整个系统提示,因此静态指令也会错过缓存。数组形式在 Python SDK 中不可用;[`ClaudeAgentOptions`](/docs/zh-CN/agent-sdk/python#claudeagentoptions) 列出 `system_prompt` 接受的形式。

356 356 

357<Note>357<Note>

358 SDK 仅在直接调用 Claude API 或在 [Claude Platform on AWS](/docs/zh-CN/claude-platform-on-aws) 上运行时拆分提示词。在所有其他配置中,例如 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 或 [LLM gateway](/docs/zh-CN/llm-gateway-connect),以及每当你设置 [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](/docs/zh-CN/llm-gateway-protocol#disable-pre-release-capabilities) 时,SDK 会将整个提示词作为一个块发送,与传递一个字符串相同。358 Claude Code 仅在直接调用 Claude API 或在 [Claude Platform on AWS](/docs/zh-CN/claude-platform-on-aws) 上运行时拆分提示。在所有其他配置中,例如 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 或 [LLM gateway](/docs/zh-CN/llm-gateway-connect),它将整个提示作为一个块发送,与传递一个字符串相同。每当你设置 [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](/docs/zh-CN/llm-gateway-protocol#disable-pre-release-capabilities) 时也会发生这种情况。

359</Note>359</Note>

360 360 

361要拆分提示词,从 `@anthropic-ai/claude-agent-sdk` 导入 `SYSTEM_PROMPT_DYNAMIC_BOUNDARY` 并将其作为自己的数组元素在两个部分之间传递。SDK 将标记之前的字符串作为一个文本块发送,将标记之后的字符串作为第二个块发送,每个块都有自己的缓存断点。在下面的示例中,支持 agent 从文件加载其分类指令,并在每个请求上接收一个工单的详细信息,因此指令保持缓存而工单详细信息改变:361要拆分提示,从 `@anthropic-ai/claude-agent-sdk` 导入 `SYSTEM_PROMPT_DYNAMIC_BOUNDARY` 并将其作为自己的数组元素在两部分之间传递。SDK 将标记之前的字符串作为一个文本块发送,将标记之后的字符串作为第二个块发送,每个都有自己的缓存断点。在下面的示例中,支持代理从文件加载其分类指令,并在每个请求上接收有关一个工单的详细信息,因此指令保持缓存,而工单详细信息改变:

362 362 

363```typescript TypeScript theme={null}363```typescript TypeScript theme={null}

364import { readFile } from "node:fs/promises";364import { readFile } from "node:fs/promises";

365import { query, SYSTEM_PROMPT_DYNAMIC_BOUNDARY } from "@anthropic-ai/claude-agent-sdk";365import { query, SYSTEM_PROMPT_DYNAMIC_BOUNDARY } from "@anthropic-ai/claude-agent-sdk";

366 366 

367// 在每个请求上相同367// Identical on every request

368const instructions = await readFile("triage-instructions.md", "utf8");368const instructions = await readFile("triage-instructions.md", "utf8");

369// 在每个请求上不同369// Different on every request

370const ticketContext = "Customer plan: Enterprise. Other open tickets from this customer: 3.";370const ticketContext = "Customer plan: Enterprise. Other open tickets from this customer: 3.";

371 371 

372for await (const message of query({372for await (const message of query({


383 383 

384SDK 从数组中组装块如下:384SDK 从数组中组装块如下:

385 385 

386* SDK 将标记两侧的字符串与它们之间的空行连接,并删除标记本身,因此标记文本不会到达 Claude。386* SDK 将标记每一侧的字符串与它们之间的空行连接,并删除标记本身,因此标记文本不会到达 Claude。

387* 如果你多次包含标记,第一个是拆分,SDK 删除其他的。387* 如果你多次包含标记,第一个是拆分,SDK 删除其他的。

388* 如果你省略标记,SDK 将所有字符串连接到一个块中,与传递一个字符串相同。388* 如果你省略标记,SDK 将所有字符串连接到一个块中,与传递一个字符串相同。

389 389 

390使用 CLI 的 [`--system-prompt` 或 `--system-prompt-file` 标志](/docs/zh-CN/cli-reference#system-prompt-flags),提示是一个字符串,因此没有数组来携带标记。在静态和每个请求部分之间包含仅包含 `__SYSTEM_PROMPT_DYNAMIC_BOUNDARY__` 的行。Claude Code 在第一个这样的行处拆分提示为相同的两个块并删除该行。需要 Claude Code v2.1.275 或更高版本。

391 

392在 SDK 中,更喜欢数组形式,它不带标记行地携带边界。

393 

390<h3 id="change-the-prompt-of-an-existing-session">394<h3 id="change-the-prompt-of-an-existing-session">

391 改变现有会话的提示词395 更改现有会话的提示

392</h3>396</h3>

393 397 

394默认情况下,如果你在使用 `resume` 或 `continue` 返回会话时传递不同的 `append` 或自定义提示词,Claude 在下一个转折点不会看到它。Claude Code 在会话的第一个请求时记录系统提示词,并在会话被压缩之前重复使用该记录。新文本在压缩后或在新会话中生效。398默认情况下,如果你在使用 `resume` 或 `continue` 返回会话时传递不同的 `append` 或自定义提示,Claude 在下一轮不会看到它。Claude Code 在会话的第一个请求上记录系统提示,并重复使用该记录直到会话被压缩。新文本在该压缩之后或在新会话中生效。

395 399 

396<h4 id="update-claude’s-instructions-mid-session">400<h4 id="update-claude’s-instructions-mid-session">

397 在会话中期更新 Claude 的指令401 在会话中更新 Claude 的指令

398</h4>402</h4>

399 403 

400如果你在系统提示词中放置的指令需要在会话运行时改变,例如因为你的用户将 agent 切换到只读模式或在你的应用中编辑其配置,请在对话中发送新指令,而不是改变 `systemPrompt`:404如果你在系统提示中放置的指令需要在会话运行时改变,例如因为你的用户将代理切换到只读模式或在你的应用中编辑其配置,请在对话中发送新指令,而不是改变 `systemPrompt`:

401 405 

402* **在你的下一条消息中**:在你发送的下一条用户消息中包含新指令。406* **在你的下一条消息中**:在你发送的下一条用户消息中包含新指令。

403* **从 hook 中**:从 `UserPromptSubmit` 或 `PostToolUse` [hook 回调](/docs/zh-CN/agent-sdk/hooks#outputs) 返回 [`additionalContext`](/docs/zh-CN/hooks#add-context-for-claude),写成事实陈述,例如"工作区现在是只读的"。SDK 在 hook 触发的点将文本插入到对话中,因此记录的提示词保持不变。407* **从 hook 中**:从 `UserPromptSubmit` 或 `PostToolUse` [hook 回调](/docs/zh-CN/agent-sdk/hooks#outputs) 返回 [`additionalContext`](/docs/zh-CN/hooks#add-context-for-claude),写成事实陈述,如"工作区现在是只读的"。SDK 在 hook 触发的点将文本插入到对话中,因此记录的提示保持不变。

404 408 

405<h4 id="turn-recording-off-while-you-iterate-on-wording">409<h4 id="turn-recording-off-while-you-iterate-on-wording">

406 在迭代措辞时关闭记录410 在迭代措辞时关闭记录

407</h4>411</h4>

408 412 

409当你迭代提示词措辞并希望每次编辑都到达你恢复的会话时,在系统提示词的对象形式上设置 `snapshot` 为 false。Claude Code 然后在每个请求上重建提示词。该字段在 TypeScript 中的 [`systemPrompt`](/docs/zh-CN/agent-sdk/typescript#options) 的预设和自定义形式上可用,在 Python 中的 [`system_prompt`](/docs/zh-CN/agent-sdk/python#systempromptpreset) 上可用,并需要 `@anthropic-ai/claude-agent-sdk` v0.3.257 或更高版本,或 `claude-agent-sdk` v0.2.153 或更高版本。413当你迭代提示措辞并希望每个编辑到达你恢复的会话时,在系统提示的对象形式上设置 `snapshot` 为 false。Claude Code 然后在每个请求上重建提示。该字段在 TypeScript 中的 [`systemPrompt`](/docs/zh-CN/agent-sdk/typescript#options) 的预设和自定义形式上可用,在 Python 中的 [`system_prompt`](/docs/zh-CN/agent-sdk/python#systempromptpreset) 上可用,并需要 `@anthropic-ai/claude-agent-sdk` v0.3.257 或更高版本,或 `claude-agent-sdk` v0.2.153 或更高版本。

410 414 

411在生产中保持记录打开。关闭记录时,恢复的会话上的不同 `append` 或自定义提示词在下一个转折点到达 Claude,该请求无法重复使用会话的 [prompt cache](/docs/zh-CN/prompt-caching#how-the-cache-is-organized)。在 API 强制执行 [preserved thinking](https://platform.claude.com/docs/en/build-with-claude/preserved-thinking) 的地方,Claude 也会失去其早期转折点的思考。415在生产中保持记录打开。关闭记录时,恢复的会话上的不同 `append` 或自定义提示在下一轮到达 Claude,该请求无法重复使用会话的 [prompt cache](/docs/zh-CN/prompt-caching#how-the-cache-is-organized)。在 API 强制 [preserved thinking](https://platform.claude.com/docs/en/build-with-claude/preserved-thinking) 的地方,Claude 也会失去其早期轮次的思考。

412 416 

413在 [cloud sessions](/docs/zh-CN/cloud-environments) 之外,如果你通过 `extraArgs` 传递 `--bare` 或设置 `CLAUDE_CODE_SIMPLE=1` 在 [bare mode](/docs/zh-CN/headless#start-faster-with-bare-mode) 中启动 Claude Code,记录保持关闭,除非你设置 `snapshot: true`。417在 [cloud sessions](/docs/zh-CN/cloud-environments) 之外,如果你通过 `extraArgs` 传递 `--bare` 或设置 `CLAUDE_CODE_SIMPLE=1` 在 [bare mode](/docs/zh-CN/headless#start-faster-with-bare-mode) 中启动 Claude Code,记录保持关闭,除非你设置 `snapshot: true`。

414 418 

415默认情况下记录 `append` 或自定义提示词需要 Claude Code v2.1.265 或更高版本,TypeScript Agent SDK 从 v0.3.265 捆绑,Python Agent SDK 从 v0.2.153 捆绑。在 Claude Code v2.1.268 之前,不 [fetch feature flags](/docs/zh-CN/env-vars#features-that-need-feature-flag-fetching) 的会话,包括 Amazon Bedrock、Google Cloud 的 Agent Platform 和 Microsoft Foundry 上的会话,在每个请求上重建提示词,`snapshot` 无效。419默认记录 `append` 或自定义提示需要 Claude Code v2.1.265 或更高版本,TypeScript Agent SDK 从 v0.3.265 捆绑,Python Agent SDK 从 v0.2.153 捆绑。在 Claude Code v2.1.268 之前,不 [fetch feature flags](/docs/zh-CN/env-vars#features-that-need-feature-flag-fetching) 的会话,包括 Amazon Bedrock、Google Cloud 的 Agent Platform 和 Microsoft Foundry 上的会话,在每个请求上重建提示,`snapshot` 无效。

416 420 

417<h2 id="compare-the-four-approaches">421<h2 id="compare-the-four-approaches">

418 比较四种方法422 比较四种方法

Details

12 将 Agent SDK 与其他 Claude 工具进行比较12 将 Agent SDK 与其他 Claude 工具进行比较

13</h2>13</h2>

14 14 

15Agent SDK、CLI、Client SDK 和 Managed Agents 各自满足不同的需求。使用该表格找到与您正在构建的内容相匹配的工具。15Agent SDK、CLI、Client SDK 和 Managed Agents 在谁运行代理、内置功能以及如何访问方面有所不同。找到与您想要构建和运行的方式相匹配的行。

16 16 

17| 如果您... | 使用 | 原因 |17| 您想要 | 使用 | 您获得 |

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

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

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

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

22| 运行长期运行或异步代理,无需管理您自己的沙箱或会话基础设施 | [**Managed Agents**](https://platform.claude.com/docs/en/managed-agents/overview) | 托管 REST API,是 Agent SDK 的独立产品。Anthropic 运行代理和沙箱。 |22| 让 Anthropic 托管代理,通过 Claude API 配置 | [**Managed Agents**](https://platform.claude.com/docs/en/managed-agents/overview) | 一个托管代理工具,运行代理循环,会话在 Anthropic 管理的云沙箱或您自己的基础设施上的[自托管沙箱](https://platform.claude.com/docs/en/managed-agents/self-hosted-sandboxes)中。从您语言的 [SDK](https://platform.claude.com/docs/en/managed-agents/quickstart#install-the-sdk)、`ant` CLI 或 REST API 使用它。 |

23 23 

24该 SDK 仅作为 Python 和 TypeScript 的库提供。要从另一种语言驱动相同的代理循环,请[以子进程的形式运行 CLI](/docs/zh-CN/headless),使用 `-p` 标志和 `--output-format json`。24要从 Python 或 TypeScript 以外的语言驱动相同的代理循环,请[以子进程的形式运行 CLI](/docs/zh-CN/headless),使用 `-p` 标志和 `--output-format json`。

25 25 

26<h2 id="capabilities">26<h2 id="capabilities">

27 功能27 功能

Details

905| `resume` | `str \| None` | `None` | 要恢复的会话 ID |905| `resume` | `str \| None` | `None` | 要恢复的会话 ID |

906| `session_id` | `str \| None` | `None` | 使用特定的会话 ID 而不是自动生成的。必须是有效的 UUID。不能与 `continue_conversation` 或 `resume` 结合使用,除非也设置了 `fork_session` |906| `session_id` | `str \| None` | `None` | 使用特定的会话 ID 而不是自动生成的。必须是有效的 UUID。不能与 `continue_conversation` 或 `resume` 结合使用,除非也设置了 `fork_session` |

907| `max_turns` | `int \| None` | `None` | 最大代理轮次(工具使用往返) |907| `max_turns` | `int \| None` | `None` | 最大代理轮次(工具使用往返) |

908| `max_budget_usd` | `float \| None` | `None` | 当客户端成本估计达到此 USD 值时停止查询。与 `total_cost_usd` 的相同估计进行比较。有关准确性注意事项和重置行为,见 [跟踪成本和使用](/docs/zh-CN/agent-sdk/cost-tracking) |908| `max_budget_usd` | `float \| None` | `None` | 当客户端成本估计达到此 USD 值时停止查询。仅计算调用自身的支出;从恢复的会话恢复的总数不计算。有关准确性注意事项和重置行为,见 [跟踪成本和使用](/docs/zh-CN/agent-sdk/cost-tracking) |

909| `disallowed_tools` | `list[str]` | `[]` | 要拒绝的工具。裸名称如 `"Bash"` 从 Claude 的上下文中移除工具。作用域规则如 `"Bash(rm *)"` 保持工具可用,并在每个权限模式(包括 `bypassPermissions`)中拒绝匹配的调用,对于[按照书写方式](/docs/zh-CN/permissions#bash-rule-limits)的命令。见 [权限](/docs/zh-CN/agent-sdk/permissions#allow-and-deny-rules) |909| `disallowed_tools` | `list[str]` | `[]` | 要拒绝的工具。裸名称如 `"Bash"` 从 Claude 的上下文中移除工具。作用域规则如 `"Bash(rm *)"` 保持工具可用,并在每个权限模式(包括 `bypassPermissions`)中拒绝匹配的调用,对于[按照书写方式](/docs/zh-CN/permissions#bash-rule-limits)的命令。见 [权限](/docs/zh-CN/agent-sdk/permissions#allow-and-deny-rules) |

910| `enable_file_checkpointing` | `bool` | `False` | 启用文件更改跟踪以进行回滚。见 [文件检查点](/docs/zh-CN/agent-sdk/file-checkpointing) |910| `enable_file_checkpointing` | `bool` | `False` | 启用文件更改跟踪以进行回滚。见 [文件检查点](/docs/zh-CN/agent-sdk/file-checkpointing) |

911| `model` | `str \| None` | `None` | Claude 模型别名或完整模型名称。见 [接受的值和特定于提供商的 ID](/docs/zh-CN/model-config#available-models) |911| `model` | `str \| None` | `None` | Claude 模型别名或完整模型名称。见 [接受的值和特定于提供商的 ID](/docs/zh-CN/model-config#available-models) |


1487与 `ClaudeAgentOptions` 中的 `betas` 字段一起使用以启用测试功能。1487与 `ClaudeAgentOptions` 中的 `betas` 字段一起使用以启用测试功能。

1488 1488 

1489<Warning>1489<Warning>

1490 `context-1m-2025-08-07` 测试版自 2026 年 4 月 30 日起已停用。使用 Claude Sonnet 4.5 或 Sonnet 4 传递此标头无效,超过标准 200k 令牌上下文窗口的请求返回错误。要使用 1M 令牌上下文窗口,请迁移到 [Claude Opus 5、Claude Sonnet 5、Claude Sonnet 4.6、Claude Opus 4.6、Claude Opus 4.7 或 Claude Opus 4.8](https://platform.claude.com/docs/en/about-claude/models/overview),它们以标准定价包括 1M 上下文,无需测试版标头。1490 `context-1m-2025-08-07` 测试版自 2026 年 4 月 30 日起已停用。使用 Claude Sonnet 4.5 或 Sonnet 4 传递此标头无效,超过标准 200k 令牌上下文窗口的请求返回错误。要使用 1M 令牌上下文窗口,请迁移到 [Claude Opus 5.5、Claude Opus 5、Claude Sonnet 5、Claude Sonnet 4.6、Claude Opus 4.6、Claude Opus 4.7 或 Claude Opus 4.8](https://platform.claude.com/docs/en/about-claude/models/overview),它们以标准定价包括 1M 上下文,无需测试版标头。

1491</Warning>1491</Warning>

1492 1492 

1493<h3 id="mcpsdkserverconfig">1493<h3 id="mcpsdkserverconfig">


1799 1799 

1800`model_usage` 字典将模型名称映射到每个模型的使用情况。它涵盖通过查询管道进行的每个模型调用:主循环、子代理和内部调用(如压缩和 Workflow 代理)。该管道外的辅助调用(如权限分类器和令牌计数请求)从 `model_usage` 中排除。将 `model_usage` 视为估计值,而不是计费声明。1800`model_usage` 字典将模型名称映射到每个模型的使用情况。它涵盖通过查询管道进行的每个模型调用:主循环、子代理和内部调用(如压缩和 Workflow 代理)。该管道外的辅助调用(如权限分类器和令牌计数请求)从 `model_usage` 中排除。将 `model_usage` 视为估计值,而不是计费声明。

1801 1801 

1802在[流式输入模式](/docs/zh-CN/agent-sdk/streaming-vs-single-mode)中,`model_usage` 和 `total_cost_usd` 在轮次间是累积的,因此读取最新结果而不是跨结果求和。有关重置,请参阅[在流式输入模式中跟踪成本](/docs/zh-CN/agent-sdk/cost-tracking#track-costs-in-streaming-input-mode),有关清零结果,请参阅[在会话崩溃后恢复总计](/docs/zh-CN/agent-sdk/cost-tracking#recover-totals-after-a-session-crash)。1802在[流式输入模式](/docs/zh-CN/agent-sdk/streaming-vs-single-mode)中,`model_usage` 和 `total_cost_usd` 在轮次间是累积的,因此读取最新结果而不是跨结果求和。调用恢复会话时,也会计算[从会话早期调用恢复的总计](/docs/zh-CN/agent-sdk/cost-tracking#accumulate-costs-across-multiple-calls)。有关重置,请参阅[在流式输入模式中跟踪成本](/docs/zh-CN/agent-sdk/cost-tracking#track-costs-in-streaming-input-mode),有关清零结果,请参阅[在会话崩溃后恢复总计](/docs/zh-CN/agent-sdk/cost-tracking#recover-totals-after-a-session-crash)。

1803 1803 

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

1805 1805 


1811| `cacheCreationInputTokens` | `int` | 此模型的缓存创建令牌。 |1811| `cacheCreationInputTokens` | `int` | 此模型的缓存创建令牌。 |

1812| `webSearchRequests` | `int` | 此模型进行的网络搜索请求。 |1812| `webSearchRequests` | `int` | 此模型进行的网络搜索请求。 |

1813| `thinkingTokens` | `int` | 此模型生成的思考令牌,已计入 `outputTokens`。在轮次在记录它的 Claude Code 版本上运行之前不存在,并且未在 TypedDict 上声明,因此使用 `.get()` 读取它。需要 Python Agent SDK 0.2.150 或更高版本,其附带的 CLI 记录它。 |1813| `thinkingTokens` | `int` | 此模型生成的思考令牌,已计入 `outputTokens`。在轮次在记录它的 Claude Code 版本上运行之前不存在,并且未在 TypedDict 上声明,因此使用 `.get()` 读取它。需要 Python Agent SDK 0.2.150 或更高版本,其附带的 CLI 记录它。 |

1814| `costUSD` | `float` | 此模型的估计成本(美元),客户端计算。见 [跟踪成本和使用](/docs/zh-CN/agent-sdk/cost-tracking) 了解计费注意事项。 |1814| `costUSD` | `float` | 此模型的估计成本(美元),客户端计算。见[跟踪成本和使用](/docs/zh-CN/agent-sdk/cost-tracking)了解计费注意事项。 |

1815| `contextWindow` | `int` | 此模型的上下文窗口大小。 |1815| `contextWindow` | `int` | 此模型的上下文窗口大小。 |

1816| `maxOutputTokens` | `int` | 此模型的最大输出令牌限制。 |1816| `maxOutputTokens` | `int` | 此模型的最大输出令牌限制。 |

1817| `canonicalModel` | `str` | 用于定价查询的规范模型 ID。可能与条目键入的原始模型字符串不同,例如特定于提供商的 ID 或别名。并非总是存在。 |1817| `canonicalModel` | `str` | 用于定价查询的规范模型 ID。可能与条目键入的原始模型字符串不同,例如特定于提供商的 ID 或别名。并非总是存在。 |


2923 "command": str | None, # Shell 脚本;每个 stdout 行是一个事件,退出结束监视2923 "command": str | None, # Shell 脚本;每个 stdout 行是一个事件,退出结束监视

2924 "ws": dict | None, # WebSocket 源:{"url": str, "protocols": list[str] | None};每个文本帧是一个事件2924 "ws": dict | None, # WebSocket 源:{"url": str, "protocols": list[str] | None};每个文本帧是一个事件

2925 "description": str, # 在通知中显示的简短描述2925 "description": str, # 在通知中显示的简短描述

2926 "timeout_ms": int | None, # 在此截止时间后杀死(默认 300000,最大 3600000)2926 "timeout_ms": int | None, # 截止时间(毫秒)(默认 300000,最大 3600000;有效截止时间最多为 1800000)

2927 "persistent": bool | None, # 在会话的生命周期内运行;使用 TaskStop 停止

2928}2927}

2929```2928```

2930 2929 


2933```python theme={null}2932```python theme={null}

2934{2933{

2935 "taskId": str, # 后台监视任务的 ID2934 "taskId": str, # 后台监视任务的 ID

2936 "timeoutMs": int, # 超时截止时间(毫秒)(持久时为 0)2935 "timeoutMs": int, # 监视的有效截止时间(毫秒)

2937 "persistent": bool | None, # 当运行到 TaskStop 或会话结束时为 True2936 "persistent": bool | None, # False:每个监视都有一个截止时间

2938}2937}

2939```2938```

2940 2939 


3350 TaskOutput3349 TaskOutput

3351</h3>3350</h3>

3352 3351 

3353**工具名称:** `TaskOutput`。之前的名称 `BashOutput` 仍然被接受作为别名。3352在 Claude Code v2.1.277 中移除。之前检索来自运行中或已完成的后台任务的输出,`BashOutput` 被接受作为别名;Claude 改用 `Read` 在后台任务的输出文件上读取。

3354 3353 

3355<Note>`TaskOutput` 已弃用;优先使用 `Read` 在任务的输出文件路径上。下面的模式对于遇到该工具的 hooks 和权限处理程序仍然有效。</Note>3354`disallowed_tools` 条目或仍然命名任一名称的拒绝规则被忽略而不发出警告。

3356 

3357**输入:**

3358 

3359```python theme={null}

3360{

3361 "task_id": str, # 要从中获取输出的任务 ID

3362 "block": bool, # 是否等待完成(默认 True)

3363 "timeout": int, # 最大等待时间(毫秒)(默认 30000)

3364}

3365```

3366 

3367**输出:**

3368 

3369```python theme={null}

3370{

3371 "retrieval_status": "success" | "timeout" | "not_ready", # 是否检索到输出

3372 "task": dict | None, # 任务详情:task_id、task_type、status、description、output,加上类型特定字段如 exitCode

3373}

3374```

3375 3355 

3376<h3 id="taskstop">3356<h3 id="taskstop">

3377 TaskStop3357 TaskStop


3629```3609```

3630 3610 

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

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

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

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

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

3636| `allowUnsandboxedCommands` | `bool` | `True` | 允许模型请求在沙箱外运行命令。当为 `True` 时,模型可以在工具输入中设置 `dangerouslyDisableSandbox`,这会回退到 [权限系统](#permissions-fallback-for-unsandboxed-commands) |3616| `allowUnsandboxedCommands` | `bool` | `True` | 允许模型请求在沙箱外运行命令。当为 `True` 时,模型可以在工具输入中设置 `dangerouslyDisableSandbox`,这会回退到 [权限系统](#permissions-fallback-for-unsandboxed-commands) |

3637| `network` | [`SandboxNetworkConfig`](#sandboxnetworkconfig) | `None` | 网络特定的沙箱配置 |3617| `network` | [`SandboxNetworkConfig`](#sandboxnetworkconfig) | `None` | 网络特定的沙箱配置 |

3638| `ignoreViolations` | [`SandboxIgnoreViolations`](#sandboxignoreviolations) | `None` | 配置要忽略的沙箱违规 |3618| `ignoreViolations` | [`SandboxIgnoreViolations`](#sandboxignoreviolations) | `None` | 配置要忽略的沙箱违规 |


3737 沙箱外命令的权限回退3717 沙箱外命令的权限回退

3738</h3>3718</h3>

3739 3719 

3740当 `allowUnsandboxedCommands` 启用时,模型可以通过在工具输入中设置 `dangerouslyDisableSandbox: True` 来请求在沙箱外运行命令。这些请求回退到现有权限系统,意味着你的 `can_use_tool` 处理程序将被调用,允许你实现自定义授权逻辑。列在 `excludedCommands` 中的命令改为自动绕过沙箱,无需模型参与;请参阅 [`SandboxSettings`](#sandboxsettings)。3720当 `allowUnsandboxedCommands` 启用时,模型可以通过在工具输入中设置 `dangerouslyDisableSandbox: True` 来请求在沙箱外运行命令。这些请求回退到现有权限系统,意味着你的 `can_use_tool` 处理程序将被调用,允许你实现自定义授权逻辑。

3721 

3722你的 `excludedCommands` 条目改为自动绕过沙箱,无需模型参与;[`sandbox.excludedCommands`](/docs/zh-CN/settings-reference#sandbox-excludedcommands) 涵盖何时应用条目。

3741 3723 

3742以下示例记录每个沙箱外请求并拒绝它,除非你自己的授权逻辑允许它:3724以下示例记录每个沙箱外请求并拒绝它,除非你自己的授权逻辑允许它:

3743 3725 

Details

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

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

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

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

652 652 

653两个 SDK 对 `env` 选项的处理方式不同:TypeScript SDK 用它替换子进程环境,因此将 `process.env` 展开到其中以保留 `PATH` 等变量,而 Python SDK 将其合并到继承的环境中。此示例关闭嵌套,最多允许五个子代理同时运行,并在估计支出达到 \$5 时停止查询:653两个 SDK 对 `env` 选项的处理方式不同:TypeScript SDK 用它替换子进程环境,因此将 `process.env` 展开到其中以保留 `PATH` 等变量,而 Python SDK 将其合并到继承的环境中。此示例关闭嵌套,最多允许五个子代理同时运行,并在估计支出达到 \$5 时停止查询:

654 654 


747 747 

748如果 Claude 直接完成任务而不是委派给您的子代理:748如果 Claude 直接完成任务而不是委派给您的子代理:

749 749 

750* **使用显式提示**:在您的提示词中按名称提及子代理,例如"使用代码审查员代理来..."750* **使用显式提示**:在您的提示词中按名称提及子代理,例如"使用代码审查员代理来检查身份验证模块"

751* **编写清晰的描述**:准确解释何时应使用子代理,以便 Claude 可以适当地匹配任务751* **编写清晰的描述**:准确解释何时应使用子代理,以便 Claude 可以适当地匹配任务

752 752 

753<h3 id="filesystem-based-agents-not-loading">753<h3 id="filesystem-based-agents-not-loading">

Details

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

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

311| `message` | `unknown` | 来自记录的原始消息有效负载 |311| `message` | `unknown` | 来自记录的原始消息有效负载 |

312| `parent_tool_use_id` | `string \| null` | 对于子代理消息,生成 `Agent` 工具调用的 `tool_use_id`。对于主会话消息和较旧的会话为 `null` |312| `parent_tool_use_id` | `string \| null` | 对于子代理消息,生成 `Agent` 或 `Skill` 工具调用的 `tool_use_id`,该调用启动了子代理。对于主会话消息和较旧的会话为 `null` |

313| `parent_agent_id` | `string \| null` | 对于来自[嵌套子代理](/docs/zh-CN/sub-agents#let-subagents-spawn-their-own-subagents)的消息,生成该消息的子代理的 `agentId`。对于主会话消息、来自顶级子代理的消息和较旧的会话为 `null`。需要 Claude Code v2.1.202 或更高版本 |313| `parent_agent_id` | `string \| null` | 对于来自[嵌套子代理](/docs/zh-CN/sub-agents#let-subagents-spawn-their-own-subagents)的消息,生成该消息的子代理的 `agentId`。对于主会话消息、来自顶级子代理的消息和较旧的会话为 `null`。需要 Claude Code v2.1.202 或更高版本 |

314 314 

315<h4 id="example-3">315<h4 id="example-3">


504| `extraArgs` | `Record<string, string \| null>` | `{}` | 其他参数 |504| `extraArgs` | `Record<string, string \| null>` | `{}` | 其他参数 |

505| `fallbackModel` | `string` | `undefined` | 主模型失败时使用的模型。接受逗号分隔的列表。有关顺序和上限,请参阅[备用模型链](/docs/zh-CN/model-config#fallback-model-chains)。有关指导,请参阅[选择模型](/docs/zh-CN/agent-sdk/configuration#choose-a-model) |505| `fallbackModel` | `string` | `undefined` | 主模型失败时使用的模型。接受逗号分隔的列表。有关顺序和上限,请参阅[备用模型链](/docs/zh-CN/model-config#fallback-model-chains)。有关指导,请参阅[选择模型](/docs/zh-CN/agent-sdk/configuration#choose-a-model) |

506| `forkSession` | `boolean` | `false` | 使用 `resume` 恢复时,分叉到新会话 ID 而不是继续原始会话 |506| `forkSession` | `boolean` | `false` | 使用 `resume` 恢复时,分叉到新会话 ID 而不是继续原始会话 |

507| `forwardSubagentText` | `boolean` | `false` | 转发 subagent 文本和思考块作为助手和用户消息,并设置 `parent_tool_use_id`,以便消费者可以呈现嵌套记录。没有此选项,Claude Code 会发出 subagent `tool_use` 和 `tool_result` 块,但不会发出文本或思考。来自每个嵌套深度的 subagents 的消息在 Claude Code v2.1.219 及更高版本上转发;在 v2.1.219 之前,仅出现来自深度 1 subagents 的消息 |507| `forwardSubagentText` | `boolean` | `false` | 转发 subagent 文本和思考块作为助手和用户消息,并设置 `parent_tool_use_id`,以便消费者可以呈现嵌套记录。没有此选项,Claude Code 会发出 subagent `tool_use` 和 `tool_result` 块,但不会发出文本或思考。来自每个嵌套深度的 subagents 的消息在 Claude Code v2.1.219 及更高版本上转发;在 v2.1.219 之前,仅出现来自深度 1 subagents 的消息。来自分叉 skill 生成的 subagents 的消息,以及嵌套分叉 skills 的消息,需要 v2.1.275 或更高版本 |

508| `hooks` | `Partial<Record<`[`HookEvent`](#hookevent)`, `[`HookCallbackMatcher`](#hookcallbackmatcher)`[]>>` | `{}` | 事件的 Hook 回调 |508| `hooks` | `Partial<Record<`[`HookEvent`](#hookevent)`, `[`HookCallbackMatcher`](#hookcallbackmatcher)`[]>>` | `{}` | 事件的 Hook 回调 |

509| `includeHookEvents` | `boolean` | `false` | 在消息流中包括 hook 生命周期事件,作为 [`SDKHookStartedMessage`](#sdkhookstartedmessage)、[`SDKHookProgressMessage`](#sdkhookprogressmessage) 和 [`SDKHookResponseMessage`](#sdkhookresponsemessage)。`SessionStart` 和 `Setup` hooks 的生命周期事件始终包括在内,不需要此选项。某些 hook 事件,如 `Notification`、`SessionEnd`、`PreCompact` 和 `PostCompact`,即使使用此选项也永远不会产生 `SDKHookStartedMessage`。对于这些事件,Claude Code 仍会在运行超过一秒的命令 hook 产生输出时发出 `SDKHookProgressMessage`,并仅在[在后台运行](/docs/zh-CN/hooks#run-hooks-in-the-background)的 hook 完成时发出 `SDKHookResponseMessage` |509| `includeHookEvents` | `boolean` | `false` | 在消息流中包括 hook 生命周期事件,作为 [`SDKHookStartedMessage`](#sdkhookstartedmessage)、[`SDKHookProgressMessage`](#sdkhookprogressmessage) 和 [`SDKHookResponseMessage`](#sdkhookresponsemessage)。`SessionStart` 和 `Setup` hooks 的生命周期事件始终包括在内,不需要此选项。某些 hook 事件,如 `Notification`、`SessionEnd`、`PreCompact` 和 `PostCompact`,即使使用此选项也永远不会产生 `SDKHookStartedMessage`。对于这些事件,Claude Code 仍会在运行超过一秒的命令 hook 产生输出时发出 `SDKHookProgressMessage`,并仅在[在后台运行](/docs/zh-CN/hooks#run-hooks-in-the-background)的 hook 完成时发出 `SDKHookResponseMessage` |

510| `includePartialMessages` | `boolean` | `false` | 包括部分消息事件 |510| `includePartialMessages` | `boolean` | `false` | 包括部分消息事件 |

511| `loadTimeoutMs` | `number` | `60000` | *Alpha.* 每个 `sessionStore.load()` 和 `sessionStore.listSubkeys()` 调用在恢复物化期间的超时时间(以毫秒为单位)。如果适配器未在此窗口内解决,查询将失败而不是挂起。未设置 `sessionStore` 时忽略 |511| `loadTimeoutMs` | `number` | `60000` | *Alpha.* 每个 `sessionStore.load()` 和 `sessionStore.listSubkeys()` 调用在恢复物化期间的超时时间(以毫秒为单位)。如果适配器未在此窗口内解决,查询将失败而不是挂起。未设置 `sessionStore` 时忽略 |

512| `managedSettings` | `Settings` | `undefined` | 您的主机进程提供给生成的会话的策略层设置。在具有管理员部署的托管设置的机器上,Claude Code 会忽略这些,除非管理员的最高优先级托管源设置 `parentSettingsBehavior: 'merge'`,并且当 [`policyHelper`](/docs/zh-CN/settings-reference#policyhelper) 提供托管设置时永远不会合并它们。合并的值通过仅限制性过滤器;[限制父设置](/docs/zh-CN/claude-apps-gateway#restrict-parent-settings)涵盖过滤器允许的内容和 `allowManaged*Only` 锁。设置 [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](/docs/zh-CN/env-vars) 的主机有三个键直接从此有效负载读取:其在 Claude Code v2.1.222 或更高版本上的[模型配置](/docs/zh-CN/model-config#restrict-model-selection)、当没有托管源在 v2.1.246 或更高版本上设置它时的 [`modelPricing`](/docs/zh-CN/settings-reference#modelpricing),以及其在 v2.1.247 或更高版本上的 `ENABLE_TOOL_SEARCH` env 条目 |512| `managedSettings` | `Settings` | `undefined` | 您的主机进程提供给生成的会话的策略层设置。在具有管理员部署的托管设置的机器上,Claude Code 会忽略这些,除非管理员的最高优先级托管源设置 `parentSettingsBehavior: 'merge'`,并且当 [`policyHelper`](/docs/zh-CN/settings-reference#policyhelper) 提供托管设置时永远不会合并它们。合并的值通过仅限制性过滤器;[限制父设置](/docs/zh-CN/claude-apps-gateway#restrict-parent-settings)涵盖过滤器允许的内容和 `allowManaged*Only` 锁。设置 [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](/docs/zh-CN/env-vars) 的主机有三个键直接从此有效负载读取:其在 Claude Code v2.1.222 或更高版本上的[模型配置](/docs/zh-CN/model-config#restrict-model-selection)、当没有托管源在 v2.1.246 或更高版本上设置它时的 [`modelPricing`](/docs/zh-CN/settings-reference#modelpricing),以及其在 v2.1.247 或更高版本上的 `ENABLE_TOOL_SEARCH` env 条目 |

513| `maxBudgetUsd` | `number` | `undefined` | 当客户端成本估计达到此 USD 值时停止查询。与 `total_cost_usd` 的相同估计进行比较。有关准确性注意事项和重置行为,请参阅[跟踪成本和使用情况](/docs/zh-CN/agent-sdk/cost-tracking) |513| `maxBudgetUsd` | `number` | `undefined` | 当客户端成本估计达到此 USD 值时停止查询。仅计算调用自身的支出;从恢复的会话恢复的总计不计算。有关准确性注意事项和重置行为,请参阅[跟踪成本和使用情况](/docs/zh-CN/agent-sdk/cost-tracking) |

514| `maxThinkingTokens` | `number` | `undefined` | *已弃用:* 改用 `thinking`。思考过程的最大令牌数 |514| `maxThinkingTokens` | `number` | `undefined` | *已弃用:* 改用 `thinking`。思考过程的最大令牌数 |

515| `maxTurns` | `number` | `undefined` | 最大代理轮次(工具使用往返) |515| `maxTurns` | `number` | `undefined` | 最大代理轮次(工具使用往返) |

516| `mcpServers` | `Record<string, [`McpServerConfig`](#mcpserverconfig)>` | `{}` | MCP 服务器配置 |516| `mcpServers` | `Record<string, [`McpServerConfig`](#mcpserverconfig)>` | `{}` | MCP 服务器配置 |


525| `persistSession` | `boolean` | `true` | 当为 `false` 时,禁用会话持久化到磁盘。会话之后无法恢复 |525| `persistSession` | `boolean` | `true` | 当为 `false` 时,禁用会话持久化到磁盘。会话之后无法恢复 |

526| `planModeInstructions` | `string` | `undefined` | Plan Mode 的自定义工作流说明。当 `permissionMode` 为 `'plan'` 时,此字符串替换默认 Plan Mode 工作流正文。CLI 仍然使用只读强制前导和 ExitPlanMode 协议页脚包装它 |526| `planModeInstructions` | `string` | `undefined` | Plan Mode 的自定义工作流说明。当 `permissionMode` 为 `'plan'` 时,此字符串替换默认 Plan Mode 工作流正文。CLI 仍然使用只读强制前导和 ExitPlanMode 协议页脚包装它 |

527| `plugins` | [`SdkPluginConfig`](#sdkpluginconfig)`[]` | `[]` | 从本地路径加载自定义 plugins。请参阅[Plugins](/docs/zh-CN/agent-sdk/plugins)了解详情 |527| `plugins` | [`SdkPluginConfig`](#sdkpluginconfig)`[]` | `[]` | 从本地路径加载自定义 plugins。请参阅[Plugins](/docs/zh-CN/agent-sdk/plugins)了解详情 |

528| `projectConfigRoot` | `string` | `undefined` | `cwd` 是 worktree 的受信任检出的绝对路径。Claude Code 从此目录而不是 `cwd` 读取项目设置、`.mcp.json` 和项目的 `.claude/` commands、agents、skills、workflows、routines 和 output styles,并将 `CLAUDE_PROJECT_DIR` 设置为它。Hooks、helper scripts 如 `apiKeyHelper` 和 stdio MCP 服务器以此目录作为其工作目录启动。`CLAUDE.md` 文件和 `.claude/rules/` 仍然从 `cwd` 加载。需要 Claude Code v2.1.275 或更高版本 |

528| `promptSuggestions` | `boolean` | `false` | 启用提示建议。在每个轮次后,Claude Code 发出 `prompt_suggestion` 消息,包含预测的下一个用户提示。Claude Code 不会为某些轮次生成建议,例如当您的帐户接近或达到其使用限制时。请参阅[Claude Code 何时跳过建议](/docs/zh-CN/interactive-mode#when-claude-code-skips-suggestions) |529| `promptSuggestions` | `boolean` | `false` | 启用提示建议。在每个轮次后,Claude Code 发出 `prompt_suggestion` 消息,包含预测的下一个用户提示。Claude Code 不会为某些轮次生成建议,例如当您的帐户接近或达到其使用限制时。请参阅[Claude Code 何时跳过建议](/docs/zh-CN/interactive-mode#when-claude-code-skips-suggestions) |

529| `resume` | `string` | `undefined` | 要恢复的会话 ID |530| `resume` | `string` | `undefined` | 要恢复的会话 ID |

530| `resumeDropsTurn` | `string` | `undefined` | 使用 `resumeSessionAt`:截断恢复打算丢弃的轮次的提示 UUID。当丢弃的范围包含任何不可归因于该轮次的内容(例如吸收的排队消息或任务通知)时,Claude Code 会拒绝恢复,并在拒绝消息中命名 `--resume-drops-turn` 标志。仅 Agent SDK 和打印模式恢复读取该对。需要 Claude Code v2.1.223 或更高版本 |531| `resumeDropsTurn` | `string` | `undefined` | 使用 `resumeSessionAt`:截断恢复打算丢弃的轮次的提示 UUID。当丢弃的范围包含任何不可归因于该轮次的内容(例如吸收的排队消息或任务通知)时,Claude Code 会拒绝恢复,并在拒绝消息中命名 `--resume-drops-turn` 标志。仅 Agent SDK 和打印模式恢复读取该对。需要 Claude Code v2.1.223 或更高版本 |


600 : Settings[K] | null;601 : Settings[K] | null;

601 }): Promise<void>;602 }): Promise<void>;

602 updateSettings(603 updateSettings(

603 source: 'localSettings',604 source: 'localSettings' | 'userSettings',

604 settings: Record<string, unknown>,605 settings: Record<string, unknown>,

605 ): Promise<void>;606 ): Promise<void>;

606 initializationResult(): Promise<SDKControlInitializeResponse>;607 initializationResult(): Promise<SDKControlInitializeResponse>;


621 reconnectMcpServer(serverName: string): Promise<void>;622 reconnectMcpServer(serverName: string): Promise<void>;

622 toggleMcpServer(serverName: string, enabled: boolean): Promise<void>;623 toggleMcpServer(serverName: string, enabled: boolean): Promise<void>;

623 setMcpServers(servers: Record<string, McpServerConfig>): Promise<McpSetServersResult>;624 setMcpServers(servers: Record<string, McpServerConfig>): Promise<McpSetServersResult>;

625 readMcpResource(serverName: string, uri: string): Promise<SDKControlMcpReadResourceResponse>;

624 streamInput(stream: AsyncIterable<SDKUserMessage>): Promise<void>;626 streamInput(stream: AsyncIterable<SDKUserMessage>): Promise<void>;

625 stopTask(taskId: string): Promise<void>;627 stopTask(taskId: string): Promise<void>;

626 close(): void;628 close(): void;


639| `setModel()` | 更改模型(仅在流式输入模式下可用)。传递 `undefined` 或字符串 `"default"` 重置为[Claude Code 的默认模型](/docs/zh-CN/model-config) |641| `setModel()` | 更改模型(仅在流式输入模式下可用)。传递 `undefined` 或字符串 `"default"` 重置为[Claude Code 的默认模型](/docs/zh-CN/model-config) |

640| `setMaxThinkingTokens()` | *已弃用:* 改用 `thinking` 选项。更改最大思考令牌数。传递 `null` 会将思考重置为会话默认值:清除中期覆盖,对于禁用思考的会话思考保持关闭 |642| `setMaxThinkingTokens()` | *已弃用:* 改用 `thinking` 选项。更改最大思考令牌数。传递 `null` 会将思考重置为会话默认值:清除中期覆盖,对于禁用思考的会话思考保持关闭 |

641| `applyFlagSettings(settings)` | 在运行时将设置合并到会话的标志设置层中(仅在流式输入模式下可用)。请参阅 [`applyFlagSettings()`](#applyflagsettings) |643| `applyFlagSettings(settings)` | 在运行时将设置合并到会话的标志设置层中(仅在流式输入模式下可用)。请参阅 [`applyFlagSettings()`](#applyflagsettings) |

642| `updateSettings(source, settings)` | 将设置合并到项目的本地设置文件 `.claude/settings.local.json` 中;它们在下一个请求时生效。仅接受 `source: 'localSettings'` 和允许列表键集,目前为 `outputStyle`,带有字符串值;不支持删除键。在远程传输和 [`settingSources`](#options) 排除 `local` 的会话中拒绝。需要 TypeScript SDK v0.3.257 或更高版本,它捆绑 Claude Code v2.1.257 |644| `updateSettings(source, settings)` | 将一个允许列表键写入项目的本地设置文件或您的用户设置文件,以便该值对后续会话持久化。请参阅 [`updateSettings()`](#updatesettings)。需要 TypeScript SDK v0.3.257 或更高版本,它捆绑 Claude Code v2.1.257 |

643| `initializationResult()` | 返回完整的初始化结果,包括支持的命令、模型、帐户信息和输出样式配置 |645| `initializationResult()` | 返回完整的初始化结果,包括支持的命令、模型、帐户信息和输出样式配置 |

644| `reinitialize()` | 重新发送 `initialize` 控制请求到运行的 CLI,并返回新的结果而不是缓存的首次连接结果。在传输间隙后使用它,例如在断开连接后重新连接到会话,以便待处理的权限请求再次到达您的 `canUseTool` 回调。使回调对每个请求 ID 幂等,因为响应丢失的请求会再次分派。需要 Claude Code v2.1.195 或更高版本 |646| `reinitialize()` | 重新发送 `initialize` 控制请求到运行的 CLI,并返回新的结果而不是缓存的首次连接结果。在传输间隙后使用它,例如在断开连接后重新连接到会话,以便待处理的权限请求再次到达您的 `canUseTool` 回调。使回调对每个请求 ID 幂等,因为响应丢失的请求会再次分派。需要 Claude Code v2.1.195 或更高版本 |

645| `supportedCommands()` | 返回可用的 slash commands。从 Agent SDK v0.3.216 开始,列表反映中期命令更改;请参阅 [`SDKCommandsChangedMessage`](#sdkcommandschangedmessage) |647| `supportedCommands()` | 返回可用的 slash commands。从 Agent SDK v0.3.216 开始,列表反映中期命令更改;请参阅 [`SDKCommandsChangedMessage`](#sdkcommandschangedmessage) |

646| `supportedModels()` | 返回具有显示信息的可用模型 |648| `supportedModels()` | 返回具有显示信息的可用模型 |

647| `supportedAgents()` | 返回可用的 subagents 作为 [`AgentInfo`](#agentinfo)`[]` |649| `supportedAgents()` | 返回可用的 subagents 作为 [`AgentInfo`](#agentinfo)`[]` |

648| `mcpServerStatus()` | 返回连接的 MCP 服务器的状态 |650| `mcpServerStatus()` | 返回连接的 MCP 服务器的状态作为 [`McpServerStatus`](#mcpserverstatus)`[]` |

649| `getContextUsage(opts?)` | 返回 [`SDKControlGetContextUsageResponse`](#sdkcontrolgetcontextusageresponse),按类别、skill 和工具分解会话的上下文窗口使用情况。使用默认 `detail`,它与 `/context` 在交互式会话中显示的数据相同。[`detail` 选项](#sdkcontrolgetcontextusageresponse)需要 Agent SDK v0.3.257 或更高版本 |651| `getContextUsage(opts?)` | 返回 [`SDKControlGetContextUsageResponse`](#sdkcontrolgetcontextusageresponse),按类别、skill 和工具分解会话的上下文窗口使用情况。使用默认 `detail`,它与 `/context` 在交互式会话中显示的数据相同。[`detail` 选项](#sdkcontrolgetcontextusageresponse)需要 Agent SDK v0.3.257 或更高版本 |

650| `readFile(path, options?)` | 从会话的文件系统读取文件。Claude Code 根据 `cwd` 解析路径;[`readFile()` 可以读取什么](#what-readfile-can-read)列出它提供的文件。传递 `{ maxBytes }` 以更改读取上限(默认 1 MB,上限 10 MB)和 `{ encoding: 'base64' }` 用于二进制文件,如图像。使用 [`SDKControlReadFileResponse`](#sdkcontrolreadfileresponse) 进行解决,或在权限拒绝、文件丢失或传输错误时使用 `null`。需要 TypeScript SDK v0.2.121 或更高版本 |652| `readFile(path, options?)` | 从会话的文件系统读取文件。Claude Code 根据 `cwd` 解析路径;[`readFile()` 可以读取什么](#what-readfile-can-read)列出它提供的文件。传递 `{ maxBytes }` 以更改读取上限(默认 1 MB,上限 10 MB)和 `{ encoding: 'base64' }` 用于二进制文件,如图像。使用 [`SDKControlReadFileResponse`](#sdkcontrolreadfileresponse) 进行解决,或在权限拒绝、文件丢失或传输错误时使用 `null`。需要 TypeScript SDK v0.2.121 或更高版本 |

651| `reloadSkills()` | 从磁盘重新加载 skills,以便您在会话中期添加或编辑的 skills 对运行的会话可用。使用 [`SDKControlReloadSkillsResponse`](#sdkcontrolreloadskillsresponse) 进行解决,列出重新加载后可用的 skills。需要 Agent SDK v0.3.163 或更高版本 |653| `reloadSkills()` | 从磁盘重新加载 skills,以便您在会话中期添加或编辑的 skills 对运行的会话可用。使用 [`SDKControlReloadSkillsResponse`](#sdkcontrolreloadskillsresponse) 进行解决,列出重新加载后可用的 skills。需要 Agent SDK v0.3.163 或更高版本 |


653| `reconnectMcpServer(serverName)` | 按名称重新连接 MCP 服务器。如果名称也匹配设置文件(如 `.mcp.json` 或 `~/.claude.json`)中的条目,Claude Code 会重新连接您通过 [`mcpServers`](#options) 或 `setMcpServers()` 配置的服务器,而不是设置文件条目。该解析顺序需要 Claude Code v2.1.257 或更高版本 |655| `reconnectMcpServer(serverName)` | 按名称重新连接 MCP 服务器。如果名称也匹配设置文件(如 `.mcp.json` 或 `~/.claude.json`)中的条目,Claude Code 会重新连接您通过 [`mcpServers`](#options) 或 `setMcpServers()` 配置的服务器,而不是设置文件条目。该解析顺序需要 Claude Code v2.1.257 或更高版本 |

654| `toggleMcpServer(serverName, enabled)` | 按名称启用或禁用 MCP 服务器,名称解析与 `reconnectMcpServer()` 相同。禁用会断开服务器连接 |656| `toggleMcpServer(serverName, enabled)` | 按名称启用或禁用 MCP 服务器,名称解析与 `reconnectMcpServer()` 相同。禁用会断开服务器连接 |

655| `setMcpServers(servers)` | 动态替换此会话的 MCP 服务器集。使用 [`McpSetServersResult`](#mcpsetserversresult) 进行解决,命名添加和删除的服务器以及任何错误 |657| `setMcpServers(servers)` | 动态替换此会话的 MCP 服务器集。使用 [`McpSetServersResult`](#mcpsetserversresult) 进行解决,命名添加和删除的服务器以及任何错误 |

658| `readMcpResource(serverName, uri)` | *Alpha.* 从连接的 MCP 服务器读取一个 MCP Apps `ui://` 资源,以便您的应用程序可以呈现工具的小部件。使用 [`SDKControlMcpReadResourceResponse`](#sdkcontrolmcpreadresourceresponse) 进行解决。需要 TypeScript Agent SDK v0.3.280 或更高版本 |

656| `streamInput(stream)` | 将输入消息流式传输到查询以进行多轮对话 |659| `streamInput(stream)` | 将输入消息流式传输到查询以进行多轮对话 |

657| `stopTask(taskId)` | 按 ID 停止运行的后台任务 |660| `stopTask(taskId)` | 按 ID 停止运行的后台任务 |

658| `close()` | 关闭查询并终止底层进程。强制结束查询并清理所有资源 |661| `close()` | 关闭查询并终止底层进程。强制结束查询并清理所有资源 |


673 676 

674这些值被写入标志设置层,这是内联 `query()` 的 `settings` 选项在启动时填充的同一层。这与[优先级部分](#settings-precedence)称为编程选项的层相同。677这些值被写入标志设置层,这是内联 `query()` 的 `settings` 选项在启动时填充的同一层。这与[优先级部分](#settings-precedence)称为编程选项的层相同。

675 678 

676连续调用浅合并顶级键。第二次调用 `{ permissions: {...} }` 会替换先前调用中的整个 `permissions` 对象,而不是深度合并到其中。要从标志层清除键并回退到较低优先级源,请为该键传递 `null`。大多数键然后回退到较低优先级源。清除的 `model` 重置为[Claude Code 的默认模型](/docs/zh-CN/model-config),即使设置文件设置 `model`。传递 `undefined` 无效,因为 JSON 序列化会将其删除。679连续调用浅合并顶级键。第二次调用 `{ permissions: {...} }` 会替换先前调用中的整个 `permissions` 对象,而不是深度合并到其中。

680 

681要清除您使用 `applyFlagSettings()` 设置的键,请为该键传递 `null`。大多数键然后回退首先到 `query()` 的 `settings` 选项在启动时设置的值,然后到较低优先级源。清除的 `model` 重置为[Claude Code 的默认模型](/docs/zh-CN/model-config),即使设置文件设置 `model`。传递 `undefined` 无效,因为 JSON 序列化会将其删除。

682 

683除了 `model` 的三个键重置会话状态而不是回退:

684 

685* `effortLevel: null` 将会话返回到模型的默认努力级别,而不是 `query()` 的 `effort` 选项或设置文件中的 `effortLevel`。

686* `agent: null` 从下一个轮次开始在没有代理的情况下运行主线程,而不是恢复 `query()` 的 `agent` 选项或设置文件中的 `agent`。如果清除的代理应用了自己的模型,会话返回到在启动时解决的模型。

687* `ultracode: null` 关闭 ultracode,如 `false` 一样,而不是恢复设置文件中的 `ultracode` 值。会话保持其当前努力级别,因此在同一调用中传递 `effortLevel` 以更改它。

677 688 

678仅在流式输入模式下可用,与 `setModel()` 和 `setPermissionMode()` 的约束相同。689仅在流式输入模式下可用,与 `setModel()` 和 `setPermissionMode()` 的约束相同。

679 690 


695 `applyFlagSettings()` 仅适用于 TypeScript。Python SDK 不公开等效方法。706 `applyFlagSettings()` 仅适用于 TypeScript。Python SDK 不公开等效方法。

696</Note>707</Note>

697 708 

709<h4 id="updatesettings">

710 `updateSettings()`

711</h4>

712 

713将一个允许列表键写入设置文件,以便该值对加载该源的后续会话持久化。每个源接受一个键,具有字符串值:

714 

715* **`"localSettings"`**:接受 `outputStyle` 并将其合并到项目的本地设置文件 `.claude/settings.local.json` 中。新样式在会话的下一个请求时生效。

716* **`"userSettings"`**:接受 `effortLevel` 并将其保存为会话当前模型的默认[努力级别](/docs/zh-CN/model-config#adjust-effort-level),在您的用户设置文件中的 [`modelSettings`](/docs/zh-CN/settings-reference#modelsettings) 下。传递 `max` 不写任何内容,因为 `max` 仅限会话。运行的会话无论如何都保持其当前努力级别,因此当您也想更改它时调用 [`applyFlagSettings()`](#applyflagsettings)。此源需要 TypeScript SDK v0.3.277 或更高版本,它捆绑 Claude Code v2.1.277。

717 

718当请求携带任何其他键、会话通过远程传输运行以及会话的 [`settingSources`](#options) 排除您命名的源时,调用会拒绝。不支持删除键。

719 

698<h3 id="warmquery">720<h3 id="warmquery">

699 `WarmQuery`721 `WarmQuery`

700</h3>722</h3>


942 964 

943`skills` 列出重新加载后可用的 skills,采用 `supportedCommands()` 返回的相同 [`SlashCommand`](#slashcommand) 形状。965`skills` 列出重新加载后可用的 skills,采用 `supportedCommands()` 返回的相同 [`SlashCommand`](#slashcommand) 形状。

944 966 

967<h3 id="sdkcontrolmcpreadresourceresponse">

968 `SDKControlMcpReadResourceResponse`

969</h3>

970 

971[`readMcpResource()`](#query-object) 的返回类型,携带 MCP 服务器的 `resources/read` 结果。需要 TypeScript Agent SDK v0.3.280 或更高版本。

972 

973```typescript theme={null}

974type SDKControlMcpReadResourceResponse = {

975 contents: {

976 uri: string;

977 mimeType?: string;

978 text?: string;

979 blob?: string;

980 _meta?: Record<string, unknown>;

981 }[];

982};

983```

984 

985将 `readMcpResource()` 的服务器名称作为 `mcpServerStatus()` 报告的名称和 `ui://` URI(例如工具在其 [`_meta`](#mcpserverstatus) 中声明的 `ui.resourceUri`)传递。对于任何其他 URI 方案、您的应用程序自己托管的 [SDK MCP 服务器](#createsdkmcpserver) 以及未连接的服务器,调用会拒绝。当初始化消息的 [`capabilities`](#sdksystemmessage) 包含 `mcp_read_resource_v1` 时可用。

986 

987每个 `contents` 条目是服务器发送的一个内容项。`blob` 为二进制项保存 base64 数据,`_meta` 是项目自己的 `_meta`,其中 MCP Apps 服务器放置资源的 `ui.csp` 和 `ui.permissions`。内容是不受信任的第三方 HTML,因此在沙箱中呈现它们。

988 

945<h3 id="agentdefinition">989<h3 id="agentdefinition">

946 `AgentDefinition`990 `AgentDefinition`

947</h3>991</h3>


1328 type: "assistant";1372 type: "assistant";

1329 uuid: UUID;1373 uuid: UUID;

1330 session_id: string;1374 session_id: string;

1331 message: BetaMessage; // 来自 Anthropic SDK1375 message: BetaMessage; // From Anthropic SDK

1332 parent_tool_use_id: string | null;1376 parent_tool_use_id: string | null;

1333 error?: SDKAssistantMessageError;1377 error?: SDKAssistantMessageError;

1334 aborted?: true;1378 aborted?: true;


1339};1383};

1340```1384```

1341 1385 

1342`message` 字段是来自 Anthropic SDK 的 [`BetaMessage`](https://platform.claude.com/docs/zh-CN/api/messages/create)。它包括 `id`、`content`、`model`、`stop_reason` 和 `usage` 等字段。1386`message` 字段是来自 Anthropic SDK 的 [`BetaMessage`](https://platform.claude.com/docs/en/api/messages/create)。它包含 `id`、`content`、`model`、`stop_reason` 和 `usage` 等字段。

1343 1387 

1344`SDKAssistantMessageError` 是以下之一:`'authentication_failed'`、`'oauth_org_not_allowed'`、`'account_on_hold'`、`'billing_error'`、`'rate_limit'`、`'overloaded'`、`'invalid_request'`、`'model_not_found'`、`'server_error'`、`'max_output_tokens'`、`'cloud_credential_error'` 或 `'unknown'`。其中四个值的含义超出了它们的名称:1388`SDKAssistantMessageError` 是以下之一:`'authentication_failed'`、`'oauth_org_not_allowed'`、`'account_on_hold'`、`'billing_error'`、`'rate_limit'`、`'overloaded'`、`'invalid_request'`、`'model_not_found'`、`'server_error'`、`'max_output_tokens'`、`'cloud_credential_error'` 或 `'unknown'`。其中四个值的含义超出了它们的名称:

1345 1389 

1346* `'model_not_found'`:所选模型不存在或对您的账户或部署不可用1390* `'model_not_found'`:选定的模型不存在或对您的账户或部署不可用

1347* `'overloaded'`:API 返回了 529 错误,因为服务器处于容量限制,与 `'rate_limit'` 相对,后者是针对您的配额的 429 错误1391* `'overloaded'`:API 返回 529,因为服务器处于容量限制,与 `'rate_limit'` 不同,后者是针对您配额的 429

1348* `'account_on_hold'`:[您的账户被冻结](/docs/zh-CN/errors#your-account-is-on-hold)1392* `'account_on_hold'`:[您的账户被冻结](/docs/zh-CN/errors#your-account-is-on-hold)

1349* `'cloud_credential_error'`:Claude Code 无法在其运行的机器上获取可用的 AWS 或 Google Cloud 凭证,因此没有请求到达云提供商。通常原因是云登录在该机器上过期或从未完成,尽管暂时无法访问的凭证服务会报告相同的值。请参阅[无法加载 AWS 或 Google Cloud 凭证](/docs/zh-CN/errors#could-not-load-aws-or-google-cloud-credentials)。需要 TypeScript Agent SDK v0.3.267 或更高版本,其中包含 Claude Code v2.1.2671393* `'cloud_credential_error'`:Claude Code 无法在其运行的机器上获取可用的 AWS 或 Google Cloud 凭证,因此没有请求到达云提供商。通常原因是云登录已过期或从未在该机器上完成,但暂时无法访问的凭证服务会报告相同的值。请参阅[无法加载 AWS 或 Google Cloud 凭证](/docs/zh-CN/errors#could-not-load-aws-or-google-cloud-credentials)。需要 TypeScript Agent SDK v0.3.267 或更高版本,其中包含 Claude Code v2.1.267

1350 1394 

1351当中断或中止在流完成之前截断助手消息时,`aborted` 为 `true`:消息没有 `stop_reason`,内容可能在中间词处结束。该字段在正常完成的消息上不存在。它需要 Agent SDK v0.3.214 或更高版本。1395当中断或中止在流完成前截断助手消息时,`aborted` 为 `true`:消息没有 `stop_reason`,内容可能在单词中间结束。该字段在正常完成的消息上不存在。它需要 Agent SDK v0.3.214 或更高版本。

1352 1396 

1353Claude Code 在转轮的第一个助手消息上设置 `user_message_uuid` 和 `user_message_uuids`,条件在 [`user_message_uuid`](#user_message_uuid) 中。1397Claude Code 在该轮的第一条助手消息上设置 `user_message_uuid` 和 `user_message_uuids`,条件在 [`user_message_uuid`](#user_message_uuid) 中。

1354 1398 

1355`timestamp` 是生成消息内容的进程完成内容生成时的 ISO 8601 时间。该值来自该机器的时钟,因此仅用于显示,不要按其排序消息。一个 API 轮次可以产生多个共享 `message.id` 的助手消息,每个都有自己的 `timestamp`。当字段不存在时,回退到您收到消息的时间。1399`timestamp` 是消息内容在生成它的进程上完成生成的 ISO 8601 时间。该值来自该机器的时钟,因此仅用于显示,不要按它排序消息。一个 API 轮可以产生多条共享 `message.id` 的助手消息,每条都有自己的 `timestamp`。当字段不存在时,回退到您收到消息的时间。

1356 1400 

1357`context_usage` 是 `/context` 报告的结构化副本,类型为 [`SDKContextUsage`](#sdkcontextusage),需要 Agent SDK v0.3.232 或更高版本。当您发送 `/context` 作为提示时,Claude Code 将报告作为助手消息传递,其 `message.content` 包含 markdown 表格,并将 `context_usage` 附加到同一消息。Claude Code 不在任何其他助手消息上设置该字段,早期版本在没有它的情况下传递 `/context` 表格,因此当字段存在时从字段读取分解,当不存在时回退到 markdown 文本。1401`context_usage` 是 `/context` 报告的结构化副本,类型为 [`SDKContextUsage`](#sdkcontextusage),需要 Agent SDK v0.3.232 或更高版本。当您发送 `/context` 作为提示时,Claude Code 将报告作为助手消息传递,其 `message.content` 包含 markdown 表格,并将 `context_usage` 附加到同一消息。Claude Code 不在任何其他助手消息上设置该字段,早期版本在没有它的情况下传递 `/context` 表格,因此当字段存在时从字段读取分解,当不存在时回退到 markdown 文本。

1358 1402 


1367 type: "user";1411 type: "user";

1368 uuid?: UUID;1412 uuid?: UUID;

1369 session_id?: string;1413 session_id?: string;

1370 message: MessageParam; // 来自 Anthropic SDK1414 message: MessageParam; // From Anthropic SDK

1415 pasted_content?: MessageParam["content"][];

1371 parent_tool_use_id: string | null;1416 parent_tool_use_id: string | null;

1372 isSynthetic?: boolean;1417 isSynthetic?: boolean;

1373 shouldQuery?: boolean;1418 shouldQuery?: boolean;

1374 tool_use_result?: unknown;1419 tool_use_result?: unknown;

1375 origin?: SDKMessageOrigin;1420 origin?: SDKMessageOrigin;

1421 inline_pastes?: string[];

1376};1422};

1377```1423```

1378 1424 

1379将 `shouldQuery` 设置为 `false` 以将消息附加到记录中而不触发助手轮次。消息被保留并合并到下一个触发轮次的用户消息中。使用此方法注入上下文,例如您在带外运行的命令的输出,而无需在其上花费模型调用。1425设置 `pasted_content` 以发送用户粘贴到您的提示 UI 中而不是输入的内容,每个粘贴一个条目,每个条目是字符串或内容块数组。Claude Code 按顺序在输入的文本后追加每个条目的文本,并可能将每个粘贴包装在 `<pasted_content>` 标签中。除文本外的块被忽略,因此在 `message.content` 中发送图像和文档。需要 Agent SDK v0.3.277 或更高版本。

1426 

1427设置 `shouldQuery` 为 `false` 以将消息附加到记录中而不触发助手轮。消息被保留并合并到下一条触发轮的用户消息中。使用此方法注入上下文,例如您在带外运行的命令的输出,而无需在模型调用上花费。

1428 

1429在携带 `tool_result` 块的消息上,`tool_use_result` 是工具的结构化输出对象,而不是发送给模型的文本。其形状取决于匹配 `tool_use` 块命名的工具,因此该字段的类型为 `unknown`;内置形状列在[工具输出类型](#tool-output-types)下。

1380 1430 

1381在携带 `tool_result` 块的消息上,`tool_use_result` 是工具的结构化输出对象,而不是发送给模型的文本。其形状取决于匹配的 `tool_use` 块命名的工具,因此该字段被类型化为 `unknown`;内置形状列在[工具输出类型](#tool-output-types)下。1431对于 `Agent` 工具,`tool_use_result` 是 [`AgentOutput`](#agent-2)。在 `completed` 结果上,`content` 包含子代理的报告,不包含 Claude Code 附加到 `tool_result` 文本的代理 ID 和使用情况尾部,因此从 `tool_use_result` 渲染而不是解析该文本。

1382 1432 

1383对于 `Agent` 工具,`tool_use_result` 是 [`AgentOutput`](#agent-2)。在 `completed` 结果上,`content` 保存子代理的报告,不包含 Claude Code 附加到 `tool_result` 文本的代理 ID 和使用情况预告片,因此从 `tool_use_result` 呈现而不是解析该文本。1433对于结果包含 `resource_link` 块的 MCP 工具,`tool_use_result` 是一个对象,其中包含 [`SDKMcpResourceLink`](#sdkmcpresourcelink) 条目的 `resourceLinks` 数组。Claude 将每个链作为 `tool_result` 块中的一行文本接收,因此读取 `resourceLinks` 以渲染服务器返回的文件,而不是解析该文本。Claude Code 在结果没有链时省略 `resourceLinks`,在来自子代理的结果上省略,每个结果最多保留 50 个链,并在数组达到 64 KiB 序列化 JSON 后停止添加链。`resourceLinks` 需要 Agent SDK v0.3.257 或更高版本。

1384 1434 

1385对于其结果包含 `resource_link` 块的 MCP 工具,`tool_use_result` 是一个对象,其中包含 [`SDKMcpResourceLink`](#sdkmcpresourcelink) 条目的 `resourceLinks` 数组。Claude 将每个链接作为 `tool_result` 块中的一行文本接收,因此读取 `resourceLinks` 以呈现服务器返回的文件,而不是解析该文本。Claude Code 在结果没有链接时省略 `resourceLinks`,在来自子代理的结果上省略,每个结果最多保留 50 个链接,一旦数组达到 64 KiB 的序列化 JSON 就停止添加链接。`resourceLinks` 需要 Agent SDK v0.3.257 或更高版本。1435设置 `inline_pastes` 以告诉 Claude Code `message.content` 的哪些部分用户粘贴而不是输入,每个粘贴一个字符串。提示文本保留在用户放置的位置。Claude Code 可能会在其所在位置将每个列出的粘贴包装在 `<pasted_content>` 标签中,以便 Claude 可以区分粘贴的材料和用户自己的话。只有提示最后一个文本块中的粘贴被包装。需要 TypeScript Agent SDK v0.3.280 或更高版本。

1386 1436 

1387<h3 id="sdkusermessagereplay">1437<h3 id="sdkusermessagereplay">

1388 `SDKUserMessageReplay`1438 `SDKUserMessageReplay`

1389</h3>1439</h3>

1390 1440 

1391具有必需 UUID 的重放用户消息。1441带有必需 UUID 的重放用户消息。

1392 1442 

1393```typescript theme={null}1443```typescript theme={null}

1394type SDKUserMessageReplay = {1444type SDKUserMessageReplay = {


1404};1454};

1405```1455```

1406 1456 

1407从会话外部注入的用户轮次,其 [`origin`](#sdkmessageorigin) 类型为 `peer` 或 `channel`,无论是在活跃轮次期间交付还是在会话空闲时启动新轮次,都会作为重放到达流。在 v2.1.207 之前,在会话空闲时交付的注入轮次在流上不产生任何消息,仅在您重新读取记录时出现。1457从会话外部注入的用户轮,其 [`origin`](#sdkmessageorigin) 类型为 `peer` 或 `channel`,无论是在活跃轮期间传递还是在会话空闲时启动新轮,都作为重放到达流。在 v2.1.207 之前,在会话空闲时传递的注入轮在流上不产生消息,仅在您重新读取记录时出现。

1408 1458 

1409<h3 id="sdkresultmessage">1459<h3 id="sdkresultmessage">

1410 `SDKResultMessage`1460 `SDKResultMessage`


1479 1529 

1480结果上的多个字段除了 `subtype` 之外还提供诊断详情:1530结果上的多个字段除了 `subtype` 之外还提供诊断详情:

1481 1531 

1482* `api_error_status`:终止对话的 API 错误的 HTTP 状态码。当轮次在没有 API 错误的情况下结束时,该字段不存在或为 `null`。1532* `api_error_status`:终止对话的 API 错误的 HTTP 状态码。当轮在没有 API 错误的情况下结束时不存在或为 `null`。

1483* `ttft_ms`:首个令牌的时间(毫秒),在第一个完整的助手消息到达时测量。仅在成功分支上显示。1533* `ttft_ms`:首个令牌的时间(毫秒),在第一条完整助手消息到达时测量。仅在成功分支上存在。

1484* `ttft_stream_ms`:直到第一个 `message_start` 流事件的时间(毫秒),当响应流打开时。低于 `ttft_ms`;两者之间的差距是流式传输第一条消息所花费的时间。仅在成功分支上显示。1534* `ttft_stream_ms`:直到第一个 `message_start` 流事件(响应流打开时)的时间(毫秒)。低于 `ttft_ms`;两者之间的差距是流传输第一条消息所花费的时间。仅在成功分支上存在。

1485* `user_message_uuid`:此轮次回答的您发送的消息的 `uuid`。请参阅 [`user_message_uuid`](#user_message_uuid) 了解哪些结果携带它。1535* `user_message_uuid`:您发送的消息的 `uuid`,该轮回答了该消息。请参阅 [`user_message_uuid`](#user_message_uuid) 了解哪些结果携带它。

1486* `user_message_uuids`:Claude Code 在此轮次中回答的您发送的每条消息的 `uuid`。请参阅 [`user_message_uuids`](#user_message_uuids)。1536* `user_message_uuids`:您发送的每条消息的 `uuid`,Claude Code 在该轮中回答了这些消息。请参阅 [`user_message_uuids`](#user_message_uuids)。

1487* `request_sent_wall_ms`:Claude Code 分派 API 请求时的纪元毫秒,用于与服务器端时间戳的联接。仅与 [`user_message_uuid`](#user_message_uuid) 一起出现,在成功结果上,其中 `is_error` 为 false,轮次发送了 API 请求。1537* `request_sent_wall_ms`:Claude Code 分派 API 请求的纪元毫秒,用于与服务器端时间戳的连接。仅与 [`user_message_uuid`](#user_message_uuid) 一起存在,在成功结果上,其中 `is_error` 为 false,且轮发送了 API 请求。

1488* `first_content_frame_ms`:直到第一个 `content_block_start` 或 `content_block_delta` 流事件的时间(毫秒),计算思考块作为内容。仅在成功分支上显示,当 `is_error` 为 false 时。需要 Agent SDK v0.3.260 或更高版本。1538* `first_content_frame_ms`:直到第一个 `content_block_start` 或 `content_block_delta` 流事件的时间(毫秒),计算思考块作为内容。仅在成功分支上存在,当 `is_error` 为 false 时。需要 Agent SDK v0.3.260 或更高版本。

1489* `first_stream_post_ms`、`first_stream_post_ack_ms`、`first_stream_post_wall_ms`:上传轮次第一个流事件的时间。Claude Code 仅在它流式传输到 claude.ai 的会话中记录它们,例如[云会话](/docs/zh-CN/claude-code-on-the-web),`query()` 产生的结果不携带它们。需要 Agent SDK v0.3.260 或更高版本。1539* `first_stream_post_ms`、`first_stream_post_ack_ms`、`first_stream_post_wall_ms`:上传轮的第一个流事件的时间。Claude Code 仅在它流传输到 claude.ai 的会话中记录它们,例如[云会话](/docs/zh-CN/claude-code-on-the-web),`query()` 产生的结果不携带它们。需要 Agent SDK v0.3.260 或更高版本。

1490* `usage`:仅主代理循环。排除子代理和辅助模型调用,在流式输入会话中按轮次。优先使用 `modelUsage` 进行令牌/成本会计。1540* `usage`:仅主代理循环。排除子代理和辅助模型调用,在流式输入会话中按轮计算。对于令牌/成本会计,优先使用 `modelUsage`。

1491* `modelUsage`:在此 `query()` 调用期间通过查询管道进行的每个模型调用的每模型总计,包括主循环、子代理和内部调用(如压缩和 Workflow 代理)。该管道外的辅助调用(如权限分类器和令牌计数请求)被排除。在流式输入会话中,总计在轮次间累积,因此读取最新结果而不是跨结果求和。请参阅[在流式输入模式中跟踪成本](/docs/zh-CN/agent-sdk/cost-tracking#track-costs-in-streaming-input-mode)了解重置,以及[在会话崩溃后恢复总计](/docs/zh-CN/agent-sdk/cost-tracking#recover-totals-after-a-session-crash)了解零化结果。1541* `modelUsage`:在此 `query()` 调用期间通过查询管道进行的每个模型调用的每模型总计,包括主循环、子代理和内部调用(如压缩和 Workflow 代理)。该管道外的辅助调用(如权限分类器和令牌计数请求)被排除。恢复会话的调用也计算[从会话早期调用恢复的每模型总计](/docs/zh-CN/agent-sdk/cost-tracking#accumulate-costs-across-multiple-calls)。在流式输入会话中,总计在轮中是累积的,因此读取最新结果而不是跨结果求和。请参阅[在流式输入模式中跟踪成本](/docs/zh-CN/agent-sdk/cost-tracking#track-costs-in-streaming-input-mode)了解重置,以及[在会话崩溃后恢复总计](/docs/zh-CN/agent-sdk/cost-tracking#recover-totals-after-a-session-crash)了解零化结果。

1492* `total_cost_usd`:此 `query()` 调用的累积估计成本(美元),涵盖与 `modelUsage` 相同的调用并在相同点重置。这是一个估计值,不是账单声明。请参阅[跟踪成本和使用情况](/docs/zh-CN/agent-sdk/cost-tracking)了解准确性注意事项。1542* `total_cost_usd`:累积估计成本(美元),涵盖与 `modelUsage` 相同的调用并在相同点重置。恢复会话的调用也计算[从会话早期调用恢复的总计](/docs/zh-CN/agent-sdk/cost-tracking#accumulate-costs-across-multiple-calls)。这是一个估计值,不是账单声明。请参阅[跟踪成本和使用情况](/docs/zh-CN/agent-sdk/cost-tracking)了解准确性注意事项。

1493* `queued_turn_count`:您发送的带有 `origin: { kind: "human" }` 的消息数量,在 Claude Code 产生结果时仍在等待。请参阅 [`queued_turn_count`](#queued_turn_count) 了解 `0` 和缺失字段告诉您什么。1543* `queued_turn_count`:您发送的带有 `origin: { kind: "human" }` 的消息数,在 Claude Code 产生结果时仍在等待。请参阅 [`queued_turn_count`](#queued_turn_count) 了解 `0` 和缺失字段告诉您什么。

1494*1544* `startup_failure_reason`:Claude Code 拒绝启动的原因,在它在已知启动失败时退出前写入的 `error_during_execution` 结果上。请参阅 [`startup_failure_reason`](#startup_failure_reason) 了解值以及哪些失败携带它。需要 Agent SDK v0.3.274 或更高版本。

1495 1545* `terminal_reason`:循环结束的原因。`"completed"`、`"max_turns"`、`"tool_deferred"`、`"aborted_streaming"`、`"aborted_tools"`、`"hook_stopped"`、`"stop_hook_prevented"`、`"background_requested"`、`"blocking_limit"`、`"rapid_refill_breaker"`、`"prompt_too_long"`、`"image_error"`、`"model_error"`、`"api_error"`、`"malformed_tool_use_exhausted"`、`"budget_exhausted"`、`"structured_output_retry_exhausted"`、`"tool_deferred_unavailable"` 或 `"turn_setup_failed"` 之一。

1496`startup_failure_reason`:Claude Code 拒绝启动的原因,在它在已知启动失败时写入的 `error_during_execution` 结果上。请参阅 [`startup_failure_reason`](#startup_failure_reason) 了解值以及哪些失败携带它。需要 Agent SDK v0.3.274 或更高版本。1546* `fast_mode_state`:`"on"`、`"off"` 或 `"cooldown"` 之一。

1497 1547* `fast_mode_disabled_reason`:[快速模式](/docs/zh-CN/fast-mode)现在不可用的原因。当没有任何东西阻止快速模式时不存在,尽管请求仍可能以标准速度运行。在快速模式速率限制后的冷却期间,Claude Code 报告 `fast_mode_state: "cooldown"` 且没有原因代码,并在冷却期过期时重新启用快速模式。需要 Claude Code v2.1.219 或更高版本。

1498* `terminal_reason`:循环结束的原因。为 `"completed"`、`"max_turns"`、`"tool_deferred"`、`"aborted_streaming"`、`"aborted_tools"`、`"hook_stopped"`、`"stop_hook_prevented"`、`"background_requested"`、`"blocking_limit"`、`"rapid_refill_breaker"`、`"prompt_too_long"`、`"image_error"`、`"model_error"`、`"api_error"`、`"malformed_tool_use_exhausted"`、`"budget_exhausted"`、`"structured_output_retry_exhausted"`、`"tool_deferred_unavailable"` 或 `"turn_setup_failed"` 之一。

1499* `fast_mode_state`:为 `"on"`、`"off"` 或 `"cooldown"` 之一。

1500* `fast_mode_disabled_reason`:为什么[快速模式](/docs/zh-CN/fast-mode)现在不可用。当没有任何东西阻止快速模式时不存在,尽管请求仍可能以标准速度运行。在快速模式速率限制后的冷却期间,Claude Code 报告 `fast_mode_state: "cooldown"` 且没有原因代码,并在冷却期过期时重新启用快速模式。需要 Claude Code v2.1.219 或更高版本。

1501 1548 

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

1503 1550 

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

1505| ---------------------- | ------------------------------------------------------------------------------------------------------------ |1552| ---------------------- | ----------------------------------------------------------------------------------------------------------- |

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

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

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

1509| `network_error` | [可用性检查](/docs/zh-CN/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways)无法到达 `api.anthropic.com` |1556| `network_error` | [可用性检查](/docs/zh-CN/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways)无法到达 `api.anthropic.com` |


1511| `not_first_party` | 会话使用 Anthropic API 以外的提供商 |1558| `not_first_party` | 会话使用 Anthropic API 以外的提供商 |

1512| `disabled_by_env` | [`CLAUDE_CODE_DISABLE_FAST_MODE`](/docs/zh-CN/env-vars) 已设置 |1559| `disabled_by_env` | [`CLAUDE_CODE_DISABLE_FAST_MODE`](/docs/zh-CN/env-vars) 已设置 |

1513| `model_not_allowed` | 快速模式 Opus 模型不在组织的 [`availableModels`](/docs/zh-CN/model-config#restrict-model-selection) 允许列表中 |1560| `model_not_allowed` | 快速模式 Opus 模型不在组织的 [`availableModels`](/docs/zh-CN/model-config#restrict-model-selection) 允许列表中 |

1514| `sdk_opt_in_required` | 会话尚未选择加入快速模式:在 [`settings`](#options) 选项中或通过 [`applyFlagSettings()`](#applyflagsettings) 传递 `fastMode: true` |1561| `sdk_opt_in_required` | 会话未选择加入快速模式:在 [`settings`](#options) 选项中或通过 [`applyFlagSettings()`](#applyflagsettings) 传递 `fastMode: true` |

1515| `pending` | 可用性检查尚未完成 |1562| `pending` | 可用性检查尚未完成 |

1516 1563 

1517相同的字段对出现在 [`SDKSystemMessage`](#sdksystemmessage) 和 [`SDKControlInitializeResponse`](#sdkcontrolinitializeresponse) 上,因此您可以在第一个轮次之前读取快速模式状态。1564相同的字段对出现在 [`SDKSystemMessage`](#sdksystemmessage) 和 [`SDKControlInitializeResponse`](#sdkcontrolinitializeresponse) 上,因此您可以在第一轮之前读取快速模式状态。

1518 1565 

1519`origin` 字段转发触发此结果的用户消息的 [`SDKMessageOrigin`](#sdkmessageorigin)。当 SDK 注入合成后续轮次(例如对于完成的后台任务)时,生成的 `SDKResultMessage` 携带 `origin: { kind: "task-notification" }`。例程的触发器触发和来自您其他会话的服务器验证消息也会到达此类,每个都带有[任务通知子类型](#task-notification-subkinds)中描述的 `subkind`。检查 `kind` 以区分回答您的提示的结果与注入的后续操作,然后再路由或抑制它们。1566`origin` 字段转发触发此结果的用户消息的 [`SDKMessageOrigin`](#sdkmessageorigin)。当 SDK 注入合成后续轮(例如对于完成的后台任务)时,生成的 `SDKResultMessage` 携带 `origin: { kind: "task-notification" }`。触发器触发和服务器验证的来自您其他会话的消息到达时也带有此类型,每个都带有[任务通知子类型](#task-notification-subkinds)中描述的 `subkind`。检查 `kind` 以区分回答您提示的结果和注入的后续,然后在路由或抑制它们之前进行区分。如果您的应用程序[声明计划运行](#declare-a-scheduled-run),它们的结果也携带 `kind: "task-notification"`,因此不要仅在 `kind` 上抑制。

1520 1567 

1521对于在任何用户轮次之前发出的结果(例如启动错误),该字段不存在。1568当多个后台任务完成一起排队时,Claude Code 可以在一轮中回答它们,而不是每个一轮。每个完成仍然产生自己的结果与此来源。Claude Code 一起回答的完成中除最后一个外的所有完成产生空结果,其中 `num_turns: 0`,按顺序,最后一个的结果携带回答它们全部的轮。

1522 1569 

1523当 `PreToolUse` hook 返回 `permissionDecision: "defer"` 时,结果具有 `stop_reason: "tool_deferred"` 和 `deferred_tool_use` 携带待处理工具的 `id`、`name` 和 `input`。读取此字段以在您自己的 UI 中显示请求,然后使用相同的 `session_id` 恢复以继续。请参阅[稍后延迟工具调用](/docs/zh-CN/hooks#defer-a-tool-call-for-later)了解完整的往返过程。1570该字段在任何用户轮之前发出的结果上不存在,例如启动错误。

1571 

1572当 `PreToolUse` 钩子返回 `permissionDecision: "defer"` 时,结果具有 `stop_reason: "tool_deferred"` 和 `deferred_tool_use` 携带待处理工具的 `id`、`name` 和 `input`。读取此字段以在您自己的 UI 中显示请求,然后使用相同的 `session_id` 恢复以继续。请参阅[延迟工具调用以供稍后使用](/docs/zh-CN/hooks#defer-a-tool-call-for-later)了解完整往返。

1524 1573 

1525<h4 id="user_message_uuid">1574<h4 id="user_message_uuid">

1526 `user_message_uuid`1575 `user_message_uuid`

1527</h4>1576</h4>

1528 1577 

1529轮次回答的 [`SDKUserMessage`](#sdkusermessage) 的 `uuid`,回显以便您可以将 Claude Code 的回复与您发送的消息匹配。Claude Code 仅在您在消息上设置 uuid 时才回显 `uuid`。该字段在 `SDKUserMessage` 上是可选的,传递给 `query()` 的字符串提示不携带任何。1578轮回答的 [`SDKUserMessage`](#sdkusermessage) 的 `uuid`,回显以便您可以将 Claude Code 的回复与您发送的消息匹配。Claude Code 仅在您在消息上设置 uuid 时回显 `uuid`。该字段在 `SDKUserMessage` 上是可选的,传递给 `query()` 的字符串提示不携带任何。

1530 1579 

1531轮次回答的消息取决于轮次如何启动:1580轮回答的消息取决于轮如何启动:

1532 1581 

1533* **您发送的常规消息**,即没有 `isSynthetic: true` 的消息:轮次在其整个运行中回答该消息。当您紧密发送多条消息时,Claude Code 可以将它们合并为一个轮次,该字段然后仅携带最后一条消息的 `uuid`。要将回复与任何合并的消息匹配,请使用 [`user_message_uuids`](#user_message_uuids)。1582* **您发送的常规消息**,意思是没有 `isSynthetic: true` 的消息:轮在其整个运行中回答该消息。当您一起发送多条消息时,Claude Code 可以将它们合并为一轮,该字段然后仅携带最后一条消息的 `uuid`。要将回复与任何合并的消息匹配,请使用 [`user_message_uuids`](#user_message_uuids)。

1534* **您发送的带有 `isSynthetic: true` 的消息**:轮次最初回答该消息。如果 Claude Code 在工具调用之间拾取您的常规消息,轮次从那时起回答拾取的消息。回显合成消息的 `uuid` 需要 Agent SDK v0.3.265 或更高版本;早期版本在合成轮次上不回显任何内容。1583* **您发送的带有 `isSynthetic: true` 的消息**:轮最初回答该消息。如果 Claude Code 在工具调用之间拾取您的常规消息,轮从那时起回答拾取的消息。回显合成消息的 `uuid` 需要 Agent SDK v0.3.265 或更高版本;早期版本在合成轮上不回显任何内容。

1535* **Claude Code 自己生成的提示**,例如在会话重启后继续中断工作的轮次:轮次最初不回答您的任何消息,其帧不携带回显。如果 Claude Code 在工具调用之间拾取您的常规消息,轮次从那时起回答该消息。拾取回显需要 Agent SDK v0.3.265 或更高版本;早期版本在这些轮次上不回显任何内容。1584* **Claude Code 自己生成的提示**,例如在会话重启后继续中断工作的轮:轮最初不回答您的任何消息,其帧不携带回显。如果 Claude Code 在工具调用之间拾取您的常规消息,轮从那时起回答该消息。拾取回显需要 Agent SDK v0.3.265 或更高版本;早期版本在这些轮上不回显任何内容。

1536 1585 

1537Claude Code 在三种帧上回显回答的消息的 `uuid`:1586Claude Code 在三种帧上回显回答的消息的 `uuid`:

1538 1587 

1539* **结果**:回答您发送的消息的轮次的每个结果。在 Agent SDK v0.3.265 或更高版本上,每个这样的结果都携带它。在 v0.3.265 之前,常规消息启动的轮次的成功结果在轮次未发送 API 请求或以延迟工具调用结束时缺少它。在 v0.3.246 之前,错误结果也缺少它,在 v0.3.216 之前每个结果都缺少它。1588* **结果**:回答您发送的消息的轮的每个结果。在 Agent SDK v0.3.265 或更高版本上,每个这样的结果都携带它。在 v0.3.265 之前,常规消息启动的轮的成功结果在轮未发送 API 请求或以延迟工具调用结束时缺少它。在 v0.3.246 之前,错误结果也缺少它,在 v0.3.216 之前每个结果都缺少它。

1540* **轮次的第一个回复**:第一个[助手消息](#sdkassistantmessage),或使用 `includePartialMessages` 时第一个[流事件](#sdkpartialassistantmessage),其 `event.type` 不是 `ping`,因此您可以在结果到达之前绑定回复。当轮次不流式传输任何内容时,Claude Code 改为在第一个助手消息上设置它。第一个回复回显需要 Agent SDK v0.3.246 或更高版本。当轮次回答的消息在中途改变时,改变后的第一个回复也携带该字段,在 Agent SDK v0.3.265 或更高版本上;早期版本在每个轮次的一个回复帧上设置它。1589* **轮的第一个回复**:第一条[助手消息](#sdkassistantmessage),或使用 `includePartialMessages` 时第一条[流事件](#sdkpartialassistantmessage),其 `event.type` 不是 `ping`,因此您可以在结果到达之前绑定回复。当轮流传输任何内容时,Claude Code 改为在第一条助手消息上设置它。第一个回复回显需要 Agent SDK v0.3.246 或更高版本。当轮回答的消息在轮中间改变时,改变后的第一个回复携带该字段,在 Agent SDK v0.3.265 或更高版本上;早期版本在每轮一个回复帧上设置它。

1541* **轮次的每个 [`thinking_tokens`](#sdkthinkingtokensmessage) 帧**:因此您可以将思考进度归属于您发送的消息,而无需等待轮次的第一个回复。需要 Agent SDK v0.3.260 或更高版本。1590* **轮的每个 [`thinking_tokens`](#sdkthinkingtokensmessage) 帧**:以便您可以将思考进度归因于您发送的消息,而无需等待轮的第一个回复。需要 Agent SDK v0.3.260 或更高版本。

1542 1591 

1543Claude Code 在这些情况下省略该字段:1592Claude Code 在这些情况下省略该字段:

1544 1593 

1545* 除了那些第一个回复之外的回复帧1594* 除了那些第一个回复之外的回复帧

1546* 子代理帧1595* 子代理帧

1547* 回答没有 `uuid` 的消息的轮次:轮次回答了您发送的没有 uuid 的消息,或 Claude Code 启动了轮次本身并拾取了没有 uuid 的常规消息1596* 回答没有 `uuid` 的消息的轮:轮回答了您发送的没有 uuid 的消息,或 Claude Code 启动了轮本身并拾取了没有 uuid 的常规消息

1548* 回答您未发送的消息的结果,例如崩溃的工作进程后的零化结果1597* 回答您未发送的消息的结果,例如崩溃的工作进程后的零化结果

1549 1598 

1550<h4 id="user_message_uuids">1599<h4 id="user_message_uuids">

1551 `user_message_uuids`1600 `user_message_uuids`

1552</h4>1601</h4>

1553 1602 

1554Claude Code 在此轮次中回答的您发送的每条消息的 `uuid`。当您紧密发送多条消息时,Claude Code 可以将它们合并为一个轮次,`user_message_uuid` 然后仅命名其中的最后一个。要将回复与任何合并的消息匹配,请在此列表中的任何位置查找该消息的 `uuid`。需要 Agent SDK v0.3.259 或更高版本。1603Claude Code 在该轮中回答的您发送的每条消息的 `uuid`。当您一起发送多条消息时,Claude Code 可以将它们合并为一轮,`user_message_uuid` 然后仅命名其中的最后一个。要将回复与任何合并的消息匹配,在此列表中的任何位置查找该消息的 `uuid`。需要 Agent SDK v0.3.259 或更高版本。

1555 1604 

1556Claude Code 在携带该字段的每个回复帧和结果上与 `user_message_uuid` 一起设置列表。对于携带 `user_message_uuid` 的完整帧集以及每个需要的版本,请参阅 [`user_message_uuid`](#user_message_uuid)。列表始终包含 `user_message_uuid` 并最多包含 64 个条目。1605Claude Code 在携带该字段的每个回复帧和结果上一起设置列表与 `user_message_uuid`。对于携带 `user_message_uuid` 的完整帧集以及每个需要的版本,请参阅 [`user_message_uuid`](#user_message_uuid)。列表始终包含 `user_message_uuid` 并最多包含 64 个条目。

1557 1606 

1558当 Claude Code 在轮次运行时拾取您发送的常规消息时,它将该消息的 `uuid` 添加到结果的列表中。1607当 Claude Code 在轮运行时拾取您发送的常规消息时,它将该消息的 `uuid` 添加到结果的列表中。

1559 1608 

1560当第一个回复或结果携带 `user_message_uuid` 而没有列表时,它来自较早的 Claude Code 版本,因此回退到单个字段。1609当第一个回复或结果携带 `user_message_uuid` 而没有列表时,它来自早期的 Claude Code 版本,因此回退到单个字段。

1561 1610 

1562<h4 id="queued_turn_count">1611<h4 id="queued_turn_count">

1563 `queued_turn_count`1612 `queued_turn_count`

1564</h4>1613</h4>

1565 1614 

1566您发送的带有 [`origin: { kind: "human" }`](#sdkmessageorigin) 的消息数量,在 Claude Code 产生结果时仍在命令队列中等待。需要 Agent SDK v0.3.242 或更高版本。1615您发送的带有 [`origin: { kind: "human" }`](#sdkmessageorigin) 的消息数,在 Claude Code 产生结果时仍在命令队列中等待。需要 Agent SDK v0.3.242 或更高版本。

1567 1616 

1568`0` 和缺失字段告诉您什么:1617`0` 和缺失字段告诉您什么:

1569 1618 

1570* **`0`**:Claude Code 不计算您发送的没有该 `origin` 的消息,也不计算任务通知,因此轮次仍可能跟随。1619* **`0`**:Claude Code 不计算您发送的没有该 `origin` 的消息,也不计算任务通知,因此轮仍然可以跟随。

1571* **缺失**:Claude Code 在崩溃或致命启动错误后发出的最终结果省略该字段,并且[可能携带零化总计](/docs/zh-CN/agent-sdk/cost-tracking#recover-totals-after-a-session-crash)。1620* **缺失**:Claude Code 在崩溃或致命启动错误后发出的最终结果省略该字段,并[可能携带零化总计](/docs/zh-CN/agent-sdk/cost-tracking#recover-totals-after-a-session-crash)。

1572 1621 

1573<h4 id="startup_failure_reason">1622<h4 id="startup_failure_reason">

1574 `startup_failure_reason`1623 `startup_failure_reason`

1575</h4>1624</h4>

1576 1625 

1577Claude Code 拒绝启动的原因,以便您的应用程序可以提供修复而不是重试。Claude Code 在它在已知启动失败时写入的 `error_during_execution` 结果上设置它。该结果携带零化总计,其 `errors` 数组携带与 stderr 相同的文本。该字段在每个其他结果上不存在。需要 Agent SDK v0.3.274 或更高版本。1626Claude Code 拒绝启动的原因,以便您的应用程序可以提供修复而不是重试。Claude Code 在它在已知启动失败时退出前写入的 `error_during_execution` 结果上设置它。该结果携带零化总计,其 `errors` 数组携带与 stderr 相同的文本。该字段在所有其他结果上不存在。需要 Agent SDK v0.3.274 或更高版本。

1578 1627 

1579在 [`env`](#options) 中设置 `CLAUDE_CODE_STARTUP_FAILURE_RESULTS` 为 `1` 以接收每个 `SDKStartupFailureReason` 值的此结果。没有该变量,Claude Code 仅为这些失败写入结果,其余的以 stderr 输出、非零退出和无结果消息结束:1628在 [`env`](#options) 中设置 `CLAUDE_CODE_STARTUP_FAILURE_RESULTS` 为 `1` 以接收每个 `SDKStartupFailureReason` 值的此结果。没有该变量,Claude Code 仅为这些失败写入结果,其余的以 stderr 输出、非零退出和无结果消息结束:

1580 1629 

1581* 一个恢复,Claude Code 停止因为它[无法将会话返回到其 worktree](/docs/zh-CN/worktrees#the-session-resumes-outside-its-worktree),带有 `worktree_unverified` 或 `worktree_resume_refused`。该部分说明哪个错误携带哪个值。1630* Claude Code 停止的恢复,因为它[无法将会话返回到其工作树](/docs/zh-CN/worktrees#the-session-resumes-outside-its-worktree),带有 `worktree_unverified` 或 `worktree_resume_refused`。该部分说明哪个错误携带哪个值。

1582* 一个被拒绝的[继续](#options)后台会话持有的对话,带有 `session_held_by_background`。对于被拒绝的这样对话的[恢复](#options),Claude Code 仅在设置了变量时写入结果。1631* 拒绝后台会话持有的对话的 [`continue`](#options),带有 `session_held_by_background`。对于这样的对话的拒绝 [`resume`](#options),Claude Code 仅在设置了变量时写入结果。

1583 1632 

1584```typescript theme={null}1633```typescript theme={null}

1585type SDKStartupFailureReason =1634type SDKStartupFailureReason =


1603 1652 

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

1605 1654 

1606| 值 | 什么停止了会话 |1655| 值 | 停止会话的原因 |

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

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

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

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

1611| `managed_settings_invalid` | 托管策略设置无法读取,或 pin 未命名任何组织 |1660| `managed_settings_invalid` | 无法读取托管策略设置,或 pin 未命名任何组织 |

1612| `remote_settings_required_unavailable` | 组织需要的托管设置无法加载 |1661| `remote_settings_required_unavailable` | 组织需要的托管设置无法加载 |

1613| `gateway_signin_required` | [Cloud gateway](/docs/zh-CN/claude-apps-gateway)结束了此登录 |1662| `gateway_signin_required` | [Cloud 网关](/docs/zh-CN/claude-apps-gateway)结束了此登录 |

1614| `gateway_access_denied` | 对 Cloud gateway 的托管设置请求返回了 403,gateway 的[故障排除表](/docs/zh-CN/claude-apps-gateway-deploy#troubleshooting)涵盖了这一点 |1663| `gateway_access_denied` | 对 Cloud 网关的托管设置请求返回 403,网关的[故障排除表](/docs/zh-CN/claude-apps-gateway-deploy#troubleshooting)涵盖了这一点 |

1615| `proxy_invalid` | 代理设置不是完整的 URL |1664| `proxy_invalid` | 代理设置不是完整的 URL |

1616| `temp_dir_unusable` | 每用户临时目录不安全或无法创建 |1665| `temp_dir_unusable` | 每用户临时目录不安全或无法创建 |

1617| `cwd_unavailable` | 工作目录被删除、移动或无法读取 |1666| `cwd_unavailable` | 工作目录被删除、移动或无法读取 |

1618| `shell_tool_missing` | 在 Windows 上,没有可用的 shell 工具:Git Bash 缺失,PowerShell 缺失或使用 `CLAUDE_CODE_USE_POWERSHELL_TOOL` 关闭 |1667| `shell_tool_missing` | 在 Windows 上,没有可用的 shell 工具:Git Bash 缺失,PowerShell 缺失或使用 `CLAUDE_CODE_USE_POWERSHELL_TOOL` 关闭 |

1619| `session_held_by_background` | 要恢复或继续的对话作为[后台会话](/docs/zh-CN/agent-view)运行 |1668| `session_held_by_background` | 要恢复或继续的对话作为[后台会话](/docs/zh-CN/agent-view)运行 |

1620| `worktree_resume_refused` | 会话的 worktree 未通过其安全检查,或恢复是从其内部启动的。`errors` 说明运行相同恢复是否继续而不使用 worktree |1669| `worktree_resume_refused` | 会话的工作树未通过其安全检查,或恢复是从其内部启动的。`errors` 说明运行相同恢复是否继续而不使用工作树 |

1621| `worktree_unverified` | 会话的 worktree 现在无法验证,重试可能成功 |1670| `worktree_unverified` | 会话的工作树现在无法验证,重试可能成功 |

1622| `cli_version_too_old` | 此 Claude Code 版本低于 Anthropic 要求的最低版本 |1671| `cli_version_too_old` | 此 Claude Code 版本低于 Anthropic 需要的最低版本 |

1623| `bypass_root` | 在以 root 身份运行时请求了绕过权限模式 |1672| `bypass_root` | 在以 root 身份运行时请求了绕过权限模式 |

1624 1673 

1625<h3 id="sdksystemmessage">1674<h3 id="sdksystemmessage">


1663 1712 

1664`terminal_slash_commands` 命名 `slash_commands` 中的条目,其接口绑定到本地终端,例如 `exit`。您可以像 `slash_commands` 中的任何其他条目一样发送它们;该字段存在以便远程或移动客户端可以从其命令菜单中隐藏它们。该字段仅在非空时存在,需要 Agent SDK v0.3.229 或更高版本。1713`terminal_slash_commands` 命名 `slash_commands` 中的条目,其接口绑定到本地终端,例如 `exit`。您可以像 `slash_commands` 中的任何其他条目一样发送它们;该字段存在以便远程或移动客户端可以从其命令菜单中隐藏它们。该字段仅在非空时存在,需要 Agent SDK v0.3.229 或更高版本。

1665 1714 

1666*1715* `source` 在每个 `mcp_servers` 条目上:服务器定义的来源,与 [`McpServerStatus`](#mcpserverstatus) 的 `source` 值相同。需要 Agent SDK v0.3.274 或更高版本。

1667 1716* `effort`:[努力级别](/docs/zh-CN/model-config#adjust-effort-level) Claude Code 在会话的下一个请求上发送,或当它不发送任何时为 `null`。Claude Code 仅在它发送到[远程控制](/docs/zh-CN/remote-control)客户端的初始化消息上设置该字段,并从您的应用程序读取的初始化消息中省略它。需要 Agent SDK v0.3.234 或更高版本。

1668`source` 在每个 `mcp_servers` 条目上:服务器定义来自何处,与 [`McpServerStatus`](#mcpserverstatus) 的 `source` 值相同。需要 Agent SDK v0.3.274 或更高版本。

1669 1717 

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

1671 

1672`effort`:[努力级别](/docs/zh-CN/model-config#adjust-effort-level) Claude Code 在会话的下一个请求上发送,或当它不发送任何内容时为 `null`。Claude Code 仅在它发送到[远程控制](/docs/zh-CN/remote-control)客户端的初始化消息上设置该字段,并从您的应用程序读取的初始化消息中省略它。需要 Agent SDK v0.3.234 或更高版本。

1673 

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

1675 1719 

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

1677| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- |1721| ---------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

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

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

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

1681 1724 

1682<h3 id="sdkpartialassistantmessage">1725<h3 id="sdkpartialassistantmessage">

1683 `SDKPartialAssistantMessage`1726 `SDKPartialAssistantMessage`

1684</h3>1727</h3>

1685 1728 

1686流式部分消息(仅当 `includePartialMessages` 为 true 时)。`parent_tool_use_id` 字段始终为 `null`:流事件仅针对主会话发出。对于子代理归属,使用携带 `parent_tool_use_id` 的完整消息,或启用 [`forwardSubagentText`](#options) 以接收子代理文本和思考作为完整消息。1729流式部分消息(仅当 `includePartialMessages` 为 true 时)。`parent_tool_use_id` 字段始终为 `null`:流事件仅为主会话发出。对于子代理归因,使用完整消息,它们携带 `parent_tool_use_id`,或启用 [`forwardSubagentText`](#options) 以接收子代理文本和思考作为完整消息。

1687 1730 

1688```typescript theme={null}1731```typescript theme={null}

1689type SDKPartialAssistantMessage = {1732type SDKPartialAssistantMessage = {

1690 type: "stream_event";1733 type: "stream_event";

1691 event: BetaRawMessageStreamEvent; // 来自 Anthropic SDK1734 event: BetaRawMessageStreamEvent; // From Anthropic SDK

1692 parent_tool_use_id: string | null;1735 parent_tool_use_id: string | null;

1693 uuid: UUID;1736 uuid: UUID;

1694 session_id: string;1737 session_id: string;

1695 ttft_ms?: number; // 首个令牌的时间(毫秒),仅在 message_start 事件上显示1738 ttft_ms?: number; // Time to first token in ms, present only on message_start events

1696 user_message_uuid?: string;1739 user_message_uuid?: string;

1697 user_message_uuids?: string[];1740 user_message_uuids?: string[];

1698};1741};

1699```1742```

1700 1743 

1701Claude Code 在轮次的第一个非 ping 流事件上设置 `user_message_uuid` 和 `user_message_uuids`,以及当轮次回答的消息改变时,条件在 [`user_message_uuid`](#user_message_uuid) 中。1744Claude Code 在轮的第一个非 ping 流事件上设置 `user_message_uuid` 和 `user_message_uuids`,并在轮回答的消息改变时再次设置,条件在 [`user_message_uuid`](#user_message_uuid) 中。

1702 1745 

1703<h3 id="sdkcompactboundarymessage">1746<h3 id="sdkcompactboundarymessage">

1704 `SDKCompactBoundaryMessage`1747 `SDKCompactBoundaryMessage`


1723 `SDKInformationalMessage`1766 `SDKInformationalMessage`

1724</h3>1767</h3>

1725 1768 

1726由循环发出的通用文本横幅。携带非错误状态行、hook 反馈(例如 `UserPromptSubmit` hook 的阻止原因)和命令输出。在 Claude Code v2.1.227 或更高版本上,hook 的 [`systemMessage`](/docs/zh-CN/hooks#json-output) 可以作为此消息到达,每行前缀为 hook 的名称,例如 `PostToolUse:Bash says:`。hook 的 `systemMessage` 是否作为此消息到达取决于事件。每个[事件的部分](/docs/zh-CN/hooks#hook-events)在 hooks 页面上说明输出如何显示。将 `content` 呈现为给定 `level` 的纯文本。1769循环发出的通用文本横幅。携带非错误状态行、钩子反馈(例如 `UserPromptSubmit` 钩子的阻止原因)和命令输出。在 Claude Code v2.1.227 或更高版本上,钩子的 [`systemMessage`](/docs/zh-CN/hooks#json-output) 可以作为此消息到达,每行以钩子的名称为前缀,例如 `PostToolUse:Bash says:`。钩子的 `systemMessage` 是否作为此消息到达取决于事件。每个[事件的部分](/docs/zh-CN/hooks#hook-events)在钩子页面上说明输出如何显示。将 `content` 呈现为给定 `level` 的纯文本。

1727 1770 

1728```typescript theme={null}1771```typescript theme={null}

1729type SDKInformationalMessage = {1772type SDKInformationalMessage = {


1742 `SDKWorkerShuttingDownMessage`1785 `SDKWorkerShuttingDownMessage`

1743</h3>1786</h3>

1744 1787 

1745在优雅的 worker 拆卸时发出,以便远程客户端可以显示 worker 消失的原因,而不是等待心跳超时。`reason` 是由主机 CLI 设置的短 snake\_case 字符串,例如 `"host_exit"` 或 `"remote_control_disabled"`。仅在实时流式传输时对此采取行动。恢复的会话会重放此消息的过去实例,因此在这种情况下忽略它们。1788在优雅的工作进程拆卸上发出,以便远程客户端可以显示工作进程退出的原因,而不是等待心跳超时。`reason` 是由主机 CLI 设置的短 snake\_case 字符串,例如 `"host_exit"` 或 `"remote_control_disabled"`。仅在流式传输实时时对此采取行动。恢复的会话重放此消息的过去实例,因此在这种情况下忽略它们。

1746 1789 

1747```typescript theme={null}1790```typescript theme={null}

1748type SDKWorkerShuttingDownMessage = {1791type SDKWorkerShuttingDownMessage = {


1758 `SDKPluginInstallMessage`1801 `SDKPluginInstallMessage`

1759</h3>1802</h3>

1760 1803 

1761插件安装进度事件。当设置 [`CLAUDE_CODE_SYNC_PLUGIN_INSTALL`](/docs/zh-CN/env-vars) 时发出,以便您的 Agent SDK 应用程序可以在第一个轮次之前跟踪市场插件安装。`started` 和 `completed` 状态括起整体安装。`installed` 和 `failed` 状态报告单个市场并包括 `name`。1804插件安装进度事件。在设置 [`CLAUDE_CODE_SYNC_PLUGIN_INSTALL`](/docs/zh-CN/env-vars) 时发出,以便您的 Agent SDK 应用程序可以在第一轮之前跟踪市场插件安装。`started` 和 `completed` 状态括住整体安装。`installed` 和 `failed` 状态报告单个市场并包含 `name`。

1762 1805 

1763```typescript theme={null}1806```typescript theme={null}

1764type SDKPluginInstallMessage = {1807type SDKPluginInstallMessage = {


1776 `SDKPermissionDeniedMessage`1819 `SDKPermissionDeniedMessage`

1777</h3>1820</h3>

1778 1821 

1779当权限系统拒绝工具调用而不显示交互式提示时发出的流事件。使用它在发生时在您的 UI 中呈现拒绝,而不仅仅观察随后的 `is_error` 工具结果。它报告哪些拒绝取决于运行如何处理权限提示:1822当权限系统在没有交互式提示的情况下拒绝工具调用时发出的流事件。使用它在您的 UI 中实时呈现拒绝,而不是仅观察随后的 `is_error` 工具结果。它报告的拒绝取决于运行如何处理权限提示:

1780 1823 

1781* **使用 [`canUseTool`](#canusetool) 回调**和默认 [`permissionPrompts: 'host'`](#options):权限提示转到您的回调,此事件报告 Claude Code 自己决定的拒绝,而不调用它。1824* **使用 [`canUseTool`](#canusetool) 回调**和默认 [`permissionPrompts: 'host'`](#options):权限提示转到您的回调,此事件报告 Claude Code 自己决定的拒绝,而不调用它。

1782*1825* **都没有**:裸 `-p` 运行,或 `query()` 既不设置 `canUseTool` 也不设置 `permissionPromptToolName`,拒绝任何会提示的工具调用,此事件也报告这些拒绝以及 Claude Code 自己决定的拒绝。在 v2.1.223 之前,Claude Code 在没有回调的运行中不发出此事件。

1783 1826* **使用 MCP 提示工具**,使用 `permissionPromptToolName` 或 [`--permission-prompt-tool`](/docs/zh-CN/cli-reference#cli-flags) 标志设置,和默认 `permissionPrompts: 'host'`:Claude Code 根本不发出此事件,甚至不发出它自己决定的规则拒绝。

1784**都没有**:裸 `-p` 运行,或 `query()` 既不设置 `canUseTool` 也不设置 `permissionPromptToolName`,拒绝任何会提示的工具调用,此事件报告这些拒绝以及 Claude Code 自己决定的拒绝。在 v2.1.223 之前,Claude Code 在没有回调的运行中不发出此事件。1827* **使用 [`permissionPrompts: 'none'`](#options)**:Claude Code 拒绝会提示的调用,即使也设置了 `canUseTool` 或 MCP 提示工具,此事件也报告这些拒绝以及 Claude Code 自己决定的拒绝。需要 Claude Code v2.1.259 或更高版本。

1785 

1786* **使用 MCP 提示工具**,使用 `permissionPromptToolName` 或 [`--permission-prompt-tool`](/docs/zh-CN/cli-reference#cli-flags) 标志设置,以及默认 `permissionPrompts: 'host'`:Claude Code 根本不发出此事件,甚至不发出它自己决定的规则拒绝。

1787*

1788 

1789**使用 [`permissionPrompts: 'none'`](#options)**:Claude Code 拒绝会提示的调用,即使也设置了 `canUseTool` 或 MCP 提示工具,此事件报告这些拒绝以及 Claude Code 自己决定的拒绝。需要 Claude Code v2.1.259 或更高版本。

1790 1828 

1791在每个配置中,此事件跳过在 `PreToolUse` hook 路径上决定的任何拒绝,无论 hook 本身拒绝了调用还是拒绝规则覆盖了 hook 的允许或询问决定。该事件也是尽力而为的:偶尔 Claude Code 记录拒绝而不发出此事件,因此[结果消息](#sdkresultmessage)上的 `permission_denials` 是权威记录。1829在每个配置中,此事件跳过在 `PreToolUse` 钩子路径上决定的任何拒绝,无论钩子本身拒绝了调用还是拒绝规则覆盖了钩子的允许或询问决定。该事件也是尽力而为的:偶尔 Claude Code 记录拒绝而不发出此事件,因此[结果消息](#sdkresultmessage)上的 `permission_denials` 是权威记录。

1792 1830 

1793```typescript theme={null}1831```typescript theme={null}

1794type SDKPermissionDeniedMessage = {1832type SDKPermissionDeniedMessage = {


1809| ---------------------- | -------- | ------------------------------------------------------------- |1847| ---------------------- | -------- | ------------------------------------------------------------- |

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

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

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

1813| `decision_reason_type` | `string` | 决定组件的鉴别器,例如 `"rule"`、`"mode"`、`"classifier"` 或 `"asyncAgent"` |1851| `decision_reason_type` | `string` | 决定组件的鉴别器,例如 `"rule"`、`"mode"`、`"classifier"` 或 `"asyncAgent"` |

1814| `decision_reason` | `string` | 来自决定组件的人类可读原因(如果可用) |1852| `decision_reason` | `string` | 来自决定组件的人类可读原因,如果可用 |

1815| `message` | `string` | 在 `tool_result` 中返回给模型的拒绝消息 |1853| `message` | `string` | 在 `tool_result` 中返回给模型的拒绝消息 |

1816 1854 

1817<h3 id="sdkpermissiondenial">1855<h3 id="sdkpermissiondenial">

1818 `SDKPermissionDenial`1856 `SDKPermissionDenial`

1819</h3>1857</h3>

1820 1858 

1821有关被拒绝的工具使用的信息。1859关于被拒绝的工具使用的信息。

1822 1860 

1823```typescript theme={null}1861```typescript theme={null}

1824type SDKPermissionDenial = {1862type SDKPermissionDenial = {


1869};1907};

1870```1908```

1871 1909 

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

1873 1911 

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

1875| ---------------- | --------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |1913| ---------------- | --------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |


1879| `percentage` | `number` | `total_tokens` 作为 `raw_max_tokens` 的四舍五入百分比,因此当会话超过限制时可以超过 100 |1917| `percentage` | `number` | `total_tokens` 作为 `raw_max_tokens` 的四舍五入百分比,因此当会话超过限制时可以超过 100 |

1880| `over_limit` | `object` | 仅当 `total_tokens` 超过 `raw_max_tokens` 时存在。`tokens_over` 是超过的数量,`kind` 说明 Claude Code 如何解决窗口 |1918| `over_limit` | `object` | 仅当 `total_tokens` 超过 `raw_max_tokens` 时存在。`tokens_over` 是超过的数量,`kind` 说明 Claude Code 如何解决窗口 |

1881| `categories` | [`SDKContextUsageCategory`](#sdkcontextusagecategory)`[]` | 使用情况按类别分解的每一行一个条目 |1919| `categories` | [`SDKContextUsageCategory`](#sdkcontextusagecategory)`[]` | 使用情况按类别分解的每一行一个条目 |

1882| `mcp_tools` | `object[]` | 归属于每个 MCP 工具的令牌,带有其线路名称(例如 `mcp__linear__create_issue`)和其 `server_name` |1920| `mcp_tools` | `object[]` | 归因于每个 MCP 工具的令牌,带有其线路名称(例如 `mcp__linear__create_issue`)和其 `server_name` |

1883| `memory_files` | `object[]` | 归属于每个加载的内存文件的令牌,带有其 `path` 和源标签(例如 `Project` 或 `User`)在 `type` 中 |1921| `memory_files` | `object[]` | 归因于每个加载的内存文件的令牌,带有其 `path` 和源标签(例如 `Project` 或 `User`)在 `type` 中 |

1884| `agents` | `object[]` | 归属于每个自定义子代理定义的令牌,带有源标识符,例如 `projectSettings`、`userSettings` 或 `plugin`。内置子代理未列出 |1922| `agents` | `object[]` | 归因于每个自定义子代理定义的令牌,带有源标识符,例如 `projectSettings`、`userSettings` 或 `plugin`。内置子代理未列出 |

1885| `skills` | `object[]` | 归属于技能列表中每个技能的令牌,带有源标识符,对于插件技能,插件的名称在 `plugin_name` 中。当没有技能贡献令牌时不存在 |1923| `skills` | `object[]` | 归因于技能列表中每个技能的令牌,带有源标识符,对于插件技能,插件的名称在 `plugin_name` 中。当没有技能贡献令牌时不存在 |

1886 1924 

1887`over_limit.kind` 记录 Claude Code 如何解决窗口,而不是 API 是否接受下一个请求:1925`over_limit.kind` 记录 Claude Code 如何解决窗口,而不是 API 是否接受下一个请求:

1888 1926 


1905};1943};

1906```1944```

1907 1945 

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

1909 1947 

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

1911| -------- | -------- | ----------------------------------------------------------- |1949| -------- | -------- | ----------------------------------------------------------- |


1924 `SDKMessageOrigin`1962 `SDKMessageOrigin`

1925</h3>1963</h3>

1926 1964 

1927用户角色消息的来源。这在 [`SDKUserMessage`](#sdkusermessage) 上显示为 `origin`,并转发到相应的 [`SDKResultMessage`](#sdkresultmessage),以便您可以判断给定轮次的触发因素。1965用户角色消息的来源。这在 [`SDKUserMessage`](#sdkusermessage) 上显示为 `origin`,并转发到相应的 [`SDKResultMessage`](#sdkresultmessage),以便您可以告诉什么触发了给定的轮。

1928 1966 

1929```typescript theme={null}1967```typescript theme={null}

1930type SDKMessageOrigin =1968type SDKMessageOrigin =


1943 | {1981 | {

1944 kind: "task-notification";1982 kind: "task-notification";

1945 subkind?: "scheduled-trigger" | "peer-send-message";1983 subkind?: "scheduled-trigger" | "peer-send-message";

1984 fireReason?: string;

1946 }1985 }

1947 | { kind: "coordinator" }1986 | { kind: "coordinator" }

1948 | { kind: "auto-continuation" }1987 | { kind: "auto-continuation" }


1950```1989```

1951 1990 

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

1953| ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |1992| ------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

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

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

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

1957| `task-notification` | 为没有新用户提示的交付注入的合成轮次,例如完成的后台任务;请参阅 [`SDKTaskNotificationMessage`](#sdktasknotificationmessage) 了解该分支。可选的 `subkind` 标记引发通知的内容。请参阅[任务通知子类型](#task-notification-subkinds)。 |1996| `task-notification` | 为没有新鲜用户提示的传递注入的合成轮,例如完成的后台任务;请参阅 [`SDKTaskNotificationMessage`](#sdktasknotificationmessage) 了解该分支。您的应用程序[声明为计划运行](#declare-a-scheduled-run)的提示也携带此类型。可选的 `subkind` 标记引发通知的原因。请参阅[任务通知子类型](#task-notification-subkinds)。 |

1958| `coordinator` | 来自[代理团队](/docs/zh-CN/agent-teams)中的团队协调员的消息。 |1997| `coordinator` | 来自[代理团队](/docs/zh-CN/agent-teams)中的团队协调员的消息。 |

1959| `auto-continuation` | 当会话在没有新用户输入的情况下继续时注入的合成轮次,例如触发后续提示的命令结果。 |1998| `auto-continuation` | 当会话在没有新鲜用户输入的情况下继续时注入的合成轮,例如触发后续提示的命令结果。 |

1960| `unclassified` | 其来源无法确定的注入轮次。当 Claude Code 接收带有 `isSynthetic: true` 的 [`SDKUserMessage`](#sdkusermessage) 并无法将其分类为任何其他 `kind` 时,它在消息到达时设置此类型,并将轮次框架给模型作为非用户源,而不是将其视为人工输入。您的应用程序不应设置此值。 |1999| `unclassified` | 无法确定来源的注入轮。当 Claude Code 接收带有 `isSynthetic: true` 的 [`SDKUserMessage`](#sdkusermessage) 并无法将其分类为任何其他 `kind` 时,它在消息到达时设置此类型,并将轮框架化为非用户源而不是将其视为人类输入。您的应用程序不应设置此值。 |

1961 2000 

1962<h3 id="task-notification-subkinds">2001<h3 id="task-notification-subkinds">

1963 任务通知子类型2002 任务通知子类型

1964</h3>2003</h3>

1965 2004 

1966当 Claude Code 将任务通知传递到会话中时,它仅在 Anthropic 服务器验证该通知来自何处时才在通知的 `origin` 上设置 `subkind`。`subkind` 需要 Claude Code v2.1.213 或更高版本,它采用两个值之一:2005当 Claude Code 将任务通知传递到会话中时,如果 Anthropic 服务器验证了该通知的来源,它会在通知的 `origin` 上设置 `subkind`。当您的应用程序[自己声明消息为计划运行](#declare-a-scheduled-run)时,它也设置 `subkind`,这需要 TypeScript Agent SDK v0.3.280 或更高版本。`subkind` 需要 Claude Code v2.1.213 或更高版本,它采用两个值之一:

1967 2006 

1968* `scheduled-trigger`:通知是[例程](/docs/zh-CN/routines)的存储提示,因为例程的触发器之一触发而传递:其计划、其 [API 触发器](/docs/zh-CN/routines#add-an-api-trigger)、其 [GitHub 触发器](/docs/zh-CN/routines#add-a-github-trigger) 或**立即运行**。Claude Code 将这些框架给模型作为会话的分配任务,带有与[其他任务通知携带的通知](#sdktasknotificationmessage)不同的通知。2007* `scheduled-trigger`:通知是[例程](/docs/zh-CN/routines)的存储提示,因为例程的触发器之一触发而传递:其计划、其 [API 触发器](/docs/zh-CN/routines#add-an-api-trigger)、其 [GitHub 触发器](/docs/zh-CN/routines#add-a-github-trigger) 或**立即运行**。您的应用程序[声明为计划运行](#declare-a-scheduled-run)的提示也携带此值。Claude Code 将这些框架化为会话的分配任务,与[其他任务通知携带的通知](#sdktasknotificationmessage)不同。

1969*2008* `peer-send-message`:通知是另一个您的会话使用[云会话](/docs/zh-CN/claude-code-on-the-web)使用的服务器端 `send_message` 工具发送的消息,而不是[跨会话 `SendMessage` 工具](/docs/zh-CN/cross-session-messaging),并且 Anthropic 服务器验证了两个会话都属于同一私有会话组。需要 Claude Code v2.1.224 或更高版本。服务器未以这种方式验证的 `send_message` 传递没有 `subkind`。

1970 2009 

1971`peer-send-message`:通知是另一个您的会话使用服务器端 `send_message` 工具发送的消息,[Claude Code on the web](/docs/zh-CN/claude-code-on-the-web) 会话使用该工具相互消息,而不是[跨会话 `SendMessage` 工具](/docs/zh-CN/cross-session-messaging),Anthropic 服务器验证了两个会话都属于同一私人会话组。需要 Claude Code v2.1.224 或更高版本。服务器未以这种方式验证的 `send_message` 交付没有 subkind。2010每个其他任务通知都没有 `subkind`。这包括[PR 活动](/docs/zh-CN/claude-code-on-the-web#how-claude-responds-to-pr-activity)传递到会话和后台事件,例如完成的任务。来自[跨会话 `SendMessage` 工具](/docs/zh-CN/cross-session-messaging)的消息根本不是任务通知:无论它们来自同一机器上的会话还是通过 Anthropic 服务器来自另一台机器,Claude Code 都给它们 `kind: "peer"` 和[对等体来源字段](#peer-origin-fields)。

1972 2011 

1973每个其他任务通知都没有 `subkind`。这包括在您自己的机器上触发的[计划任务](/docs/zh-CN/scheduled-tasks)、[PR 活动](/docs/zh-CN/claude-code-on-the-web#how-claude-responds-to-pr-activity)传递到会话中,以及后台事件,例如完成的任务。来自[跨会话 `SendMessage` 工具](/docs/zh-CN/cross-session-messaging)的消息根本不是任务通知:无论它们来自同一机器上的会话还是通过 Anthropic 服务器来自另一台机器,Claude Code 都给它们 `kind: "peer"` 和[对等体来源字段](#peer-origin-fields)。2012`fireReason` 说明 `scheduled-trigger` 通知为什么触发,作为短小写令牌,例如 `scheduled`、`manual`、`retry`、`catch_up` 或 `api`。Anthropic 服务器在[例程](/docs/zh-CN/routines)的传递上设置它,您的应用程序在声明计划运行时设置它。当两者都未发送时不存在。需要 TypeScript Agent SDK v0.3.280 或更高版本。

2013 

2014<h4 id="declare-a-scheduled-run">

2015 声明计划运行

2016</h4>

2017 

2018如果您的应用程序按自己的计划运行提示,声明每个运行,以便 Claude Code 将轮框架化为计划任务而不是来自用户的实时输入。使用 [`env`](#options) 中设置为 `1` 的 `CLAUDE_CODE_HOST_SCHEDULED_RUN` 启动会话,然后发送运行的 [`SDKUserMessage`](#sdkusermessage),其中 `origin: { kind: "task-notification", subkind: "scheduled-trigger", fireReason: "scheduled" }` 且没有 `isSynthetic`。Claude Code 忽略在没有该变量启动的进程中的声明。它也在进程的环境携带 [`CLAUDECODE`](/docs/zh-CN/env-vars) 或 `CLAUDE_CODE_CHILD_SESSION` 时忽略它。Claude Code 仅在值为 1 到 32 个小写字母或下划线时保留 `fireReason`。需要 TypeScript Agent SDK v0.3.280 或更高版本。

1974 2019 

1975<h3 id="peer-origin-fields">2020<h3 id="peer-origin-fields">

1976 对等体来源字段2021 对等体来源字段

1977</h3>2022</h3>

1978 2023 

1979`peer` 来源标识哪个代理发送了消息:进程内[队友](/docs/zh-CN/agent-teams)使用 `SendMessage` 发送到 `main`,或[跨会话对等体](/docs/zh-CN/cross-session-messaging),您的另一个 Claude Code 会话。跨会话对等体需要 macOS 和 Linux 上的 Claude Code v2.1.224 或更高版本;请参阅[跨会话消息可用性](/docs/zh-CN/cross-session-messaging#availability)了解本机 Windows 要求。跨会话对等体可以在同一机器上运行,或在[您的另一台机器](/docs/zh-CN/cross-session-messaging#message-sessions-on-other-machines)或[Claude Code on the web](/docs/zh-CN/claude-code-on-the-web) 上,当其消息通过远程控制到达时。两种发送者类型填充字段的方式不同:2024`peer` 来源标识哪个代理发送了消息:进程内[队友](/docs/zh-CN/agent-teams)使用 `SendMessage` 发送到 `main`,或[跨会话对等体](/docs/zh-CN/cross-session-messaging),您的另一个 Claude Code 会话。跨会话对等体在 macOS 和 Linux 上需要 Claude Code v2.1.224 或更高版本;请参阅[跨会话消息传递可用性](/docs/zh-CN/cross-session-messaging#availability)了解本机 Windows 要求。跨会话对等体可以在同一机器上运行,或在[您的另一台机器](/docs/zh-CN/cross-session-messaging#message-sessions-on-other-machines)或[云中](/docs/zh-CN/claude-code-on-the-web)运行,当其消息通过远程控制到达时。两种发送者类型填充字段的方式不同:

1980 2025 

1981* `from`:队友的名称,或跨会话对等体的发送者地址。对于[单向跨机器消息](/docs/zh-CN/cross-session-messaging#message-sessions-on-other-machines),发送者没有回复地址,`from` 是 `"unknown"`。该值由发送者创作;`verifiedPeerPid` 是验证的身份。2026* `from`:队友的名称,或跨会话对等体的发送者地址。对于[单向跨机器消息](/docs/zh-CN/cross-session-messaging#message-sessions-on-other-machines),发送者没有回复地址,`from` 是 `"unknown"`。该值由发送者创作;`verifiedPeerPid` 是验证的身份。

1982*2027* `fromMode`:发送会话的权限类,`bypass` 或 `prompting`,由在您的会话之间中继对等消息的主机声明,例如[桌面应用](/docs/zh-CN/desktop#work-across-sessions)。Claude Code 在接收会话中应用[入站控制](/docs/zh-CN/cross-session-messaging#control-inbound-messages)时读取它。需要 Agent SDK v0.3.234 或更高版本。

1983 

1984`fromMode`:发送会话的权限类别,`bypass` 或 `prompting`,由在您的会话之间中继对等消息的主机声明,例如[桌面应用](/docs/zh-CN/desktop#work-across-sessions)。Claude Code 在接收会话中应用[入站控制](/docs/zh-CN/cross-session-messaging#control-inbound-messages)时读取它。需要 Agent SDK v0.3.234 或更高版本。

1985 

1986* `senderTaskId`:队友的任务 ID。对于跨会话对等体不存在。2028* `senderTaskId`:队友的任务 ID。对于跨会话对等体不存在。

1987*2029* `name`:发送者的显示名称,由 Claude Code 规范化:它删除 Unicode 控制、格式、代理和行或段落分隔符代码点,然后修剪结果并将其限制为 64 个代码点,带有省略号。需要 Claude Code v2.1.205 或更高版本。

1988 2030* `body`:解码的消息体,去除对等体信封,字节精确匹配模型看到的内容。始终存在于队友消息;对于跨会话对等体,仅当轮恰好是由 Claude Code 形成的一个对等体信封时存在。呈现 `name` 和 `body` 而不是重新解析消息文本。需要 Claude Code v2.1.205 或更高版本。

1989`name`:发送者的显示名称,由 Claude Code 规范化:它删除 Unicode 控制、格式、代理和行或段落分隔符代码点,然后修剪结果并将其限制为 64 个代码点,带有省略号。需要 Claude Code v2.1.205 或更高版本。2031* `fromSession`:发送者的主机可打开会话 ID,由发送者的主机设置,以便您的 UI 可以链接回发送会话。像 `from` 一样,它是发送者声称的:仅将其用作导航目标,不要将其视为发送者身份的证明。需要 Claude Code v2.1.216 或更高版本。

1990 2032* `verifiedPeerPid`:连接到此会话的跨会话消息传递套接字的进程的进程 ID,由内核验证并从连接本身读取,从不从有效负载读取。使用它,而不是 `from`,来标识发送者:`from` 可由任何同用户进程伪造。当 Claude Code 无法验证它时,该字段不存在,例如在 Windows 或非套接字入口上,因此缺失值意味着发送者未验证。对于中继流量,它标识中继而不是消息的作者,进程 ID 是可回收的,因此将其视为来源而不是身份验证令牌。需要 Claude Code v2.1.216 或更高版本。

1991*

1992 

1993`body`:解码的消息正文,去除对等信封,与模型看到的字节完全相同。对于队友消息始终存在;对于跨会话对等体,仅当轮次恰好是由 Claude Code 形成的一个对等信封时才存在。呈现 `name` 和 `body` 而不是重新解析消息文本。需要 Claude Code v2.1.205 或更高版本。

1994 

1995*

1996 

1997`fromSession`:发送者的主机可打开会话 ID,由发送者的主机设置,以便您的 UI 可以链接回发送会话。像 `from` 一样,它是发送者声称的:仅将其用作导航目标,不要将其视为发送者身份的证明。需要 Claude Code v2.1.216 或更高版本。

1998 

1999*

2000 

2001`verifiedPeerPid`:连接到此会话的跨会话消息套接字的进程的进程 ID,由内核验证并从连接本身读取,从不从有效负载读取。使用它,而不是 `from`,来标识发送者:`from` 可由任何同用户进程伪造。当 Claude Code 无法验证它时,该字段不存在,例如在 Windows 或非套接字入口上,因此缺失值意味着发送者未验证。对于中继流量,它标识中继而不是消息的作者,进程 ID 是可回收的,因此将其视为来源而不是身份验证令牌。需要 Claude Code v2.1.216 或更高版本。

2002 2033 

2003<h2 id="hook-types">2034<h2 id="hook-types">

2004 Hook 类型2035 Hook 类型


2862 | ReadMcpResourceInput2893 | ReadMcpResourceInput

2863 | RefreshMcpToolsInput2894 | RefreshMcpToolsInput

2864 | RemoteTriggerInput2895 | RemoteTriggerInput

2865 | REPLInput

2866 | ReportFindingsInput2896 | ReportFindingsInput

2867 | ScheduleWakeupInput2897 | ScheduleWakeupInput

2868 | ShowOnboardingRolePickerInput2898 | ShowOnboardingRolePickerInput

2869 | TaskCreateInput2899 | TaskCreateInput

2870 | TaskGetInput2900 | TaskGetInput

2871 | TaskListInput2901 | TaskListInput

2872 | TaskOutputInput

2873 | TaskStopInput2902 | TaskStopInput

2874 | TaskUpdateInput2903 | TaskUpdateInput

2875 | TodoWriteInput2904 | TodoWriteInput


2964 2993 

2965运行后台源并将每个事件传递给 Claude,以便它可以做出反应而无需轮询:`command` 运行脚本并为每个 stdout 行发出一个事件,`ws` 打开 WebSocket 并为每个文本帧发出一个事件。恰好提供 `command` 或 `ws` 之一。`ws` 源需要 Claude Code v2.1.195 或更高版本。2994运行后台源并将每个事件传递给 Claude,以便它可以做出反应而无需轮询:`command` 运行脚本并为每个 stdout 行发出一个事件,`ws` 打开 WebSocket 并为每个文本帧发出一个事件。恰好提供 `command` 或 `ws` 之一。`ws` 源需要 Claude Code v2.1.195 或更高版本。

2966 2995 

2967`timeout_ms` 是监视的截止时间(以毫秒为单位)。它默认为 300000,有效截止时间最多为 1800000,即 30 分钟。在截止时间,监视结束,Claude 收到一个通知,以便在仍需要时可以启动新的监视。2996`timeout_ms` 是监视的截止时间(以毫秒为单位)。它默认为 300000,接受最高 3600000 的值。有效截止时间最多为 1800000,即 30 分钟,因此更大的接受值会被缩短到该值。在截止时间,监视结束,Claude 收到一个通知,以便在仍需要时可以启动新的监视。

2968 2997 

2969导出的类型将 `timeout_ms` 标记为必需,因为架构填充了默认值;省略它的调用会验证通过。2998导出的类型将 `timeout_ms` 标记为必需,因为架构填充了默认值;省略它的调用会验证通过。

2970 2999 


2974 TaskOutput3003 TaskOutput

2975</h3>3004</h3>

2976 3005 

2977**工具名称:** `TaskOutput`3006在 Claude Code v2.1.277 中移除,连同其 `TaskOutputInput` 类型一起。之前从运行中或已完成的后台任务检索输出;Claude 改为使用 `Read` 读取后台任务的输出文件。

2978 

2979<Note>`TaskOutput` 已弃用;改为在任务的输出文件路径上使用 `Read`。以下架构对于遇到该工具的 hooks 和权限处理程序仍然有效。</Note>

2980 

2981```typescript theme={null}

2982type TaskOutputInput = {

2983 task_id: string;

2984 block: boolean;

2985 timeout: number;

2986};

2987```

2988 3007 

2989从运行中或已完成的后台任务检索输出。3008仍然命名 `TaskOutput` 的 `disallowedTools` 条目或拒绝规则会被忽略,不会发出警告。

2990 3009 

2991<h3 id="edit">3010<h3 id="edit">

2992 Edit3011 Edit


3481 REPL3500 REPL

3482</h3>3501</h3>

3483 3502 

3484**工具名称:** `REPL`3503在 v2.1.275 中移除。通过 v2.1.274,可以通过在 [`env` 选项](#options)中设置 `CLAUDE_CODE_REPL=1` 来打开实验性 `REPL` 工具。

3485 

3486```typescript theme={null}

3487type REPLInput = {

3488 code: string;

3489 description?: string;

3490 timeout?: number;

3491};

3492```

3493 

3494在持久 REPL 中执行 JavaScript 代码。状态在调用之间保持,并支持顶级 await。`timeout` 以毫秒为单位,默认为 30000,最大为 600000。

3495 

3496这些类型已导出,但除非您在 [`env` 选项](#options)中设置 `CLAUDE_CODE_REPL=1`,否则该工具在 SDK 会话中处于关闭状态。它还需要本机安装程序提供的基于 Bun 的 `claude` 可执行文件。

3497 3504 

3498<h3 id="reportfindings">3505<h3 id="reportfindings">

3499 ReportFindings3506 ReportFindings


3539 action?: "publish" | "list";3546 action?: "publish" | "list";

3540 file_path?: string;3547 file_path?: string;

3541 favicon?: string;3548 favicon?: string;

3549 icon?: string;

3542 limit?: number;3550 limit?: number;

3543 scope?: "mine" | "shared" | "all";3551 scope?: "mine" | "shared" | "all";

3544 title?: string;3552 title?: string;


3551};3559};

3552```3560```

3553 3561 

3554将本地 `.html` 或 `.md` 文件发布为托管的 artifact 页面,或列出用户发布的 artifacts。省略 `action` 或传递 `"publish"` 以发布 `file_path`,这对于发布操作是必需的,以及 `favicon`,一个或两个标记 artifact 在用户库中的表情符号。当 HTML 文件没有 `<title>` 标签时,`title` 在浏览器标签和库中命名发布的页面。`url` 针对现有 artifact 以就地更新,而不是创建新的。3562将本地 `.html` 或 `.md` 文件发布为托管的 artifact 页面,或列出用户发布的 artifacts。省略 `action` 或传递 `"publish"` 以发布 `file_path`,这对于发布操作是必需的。每个下面的字段适用于发布:

3563 

3564* `icon`:artifact 浏览器标签图标的一个短通用词,例如 `chart` 或 `map`。Claude 在首次发布时包含它,在更新时省略它,这会保留 artifact 的存储图标。

3565* `favicon`:已弃用,Claude 会省略它。

3566* `title`:当 HTML 文件没有 `<title>` 标签时,在浏览器标签和库中命名发布的页面。

3567* `url`:针对现有 artifact 以就地更新,而不是创建新的。

3555 3568 

3556`force` 是最后手段的覆盖,丢弃另一个会话发布的较新版本。在冲突时,失败的发布返回较新的内容;Claude 将其更改合并到该内容上,或重新读取 artifact,然后再次发布。仅当用户明确要求丢弃该版本时才传递 `force`。3569`force` 是最后手段的覆盖,丢弃另一个会话发布的较新版本。在冲突时,失败的发布返回较新的内容;Claude 将其更改合并到该内容上,或重新读取 artifact,然后再次发布。仅当用户明确要求丢弃该版本时才传递 `force`。

3557 3570 


3688 | ReadMcpResourceOutput3701 | ReadMcpResourceOutput

3689 | RefreshMcpToolsOutput3702 | RefreshMcpToolsOutput

3690 | RemoteTriggerOutput3703 | RemoteTriggerOutput

3691 | REPLOutput

3692 | ReportFindingsOutput3704 | ReportFindingsOutput

3693 | ScheduleWakeupOutput3705 | ScheduleWakeupOutput

3694 | ShowOnboardingRolePickerOutput3706 | ShowOnboardingRolePickerOutput


4538 4550 

4539返回传递详细信息,包括是否发送了推送或本地通知以及跳过传递的原因。4551返回传递详细信息,包括是否发送了推送或本地通知以及跳过传递的原因。

4540 4552 

4541<h3 id="repl-2">

4542 REPL

4543</h3>

4544 

4545**工具名称:** `REPL`

4546 

4547```typescript theme={null}

4548type REPLOutput = {

4549 code: string;

4550 result: {

4551 [k: string]: unknown;

4552 };

4553 stdout: string;

4554 stderr: string;

4555 error?: string;

4556 registeredTools?: string[];

4557 images?: {

4558 base64: string;

4559 mediaType: string;

4560 }[];

4561 documents?: {

4562 base64: string;

4563 }[];

4564};

4565```

4566 

4567返回执行结果、捕获的控制台输出以及内部 `Read` 调用显示的任何图像或文档。

4568 

4569<h3 id="reportfindings-2">4553<h3 id="reportfindings-2">

4570 ReportFindings4554 ReportFindings

4571</h3>4555</h3>


4889```4873```

4890 4874 

4891<Warning>4875<Warning>

4892 `context-1m-2025-08-07` beta 自 2026 年 4 月 30 日起已停用。使用 Claude Sonnet 4.5 或 Sonnet 4 传递此值无效,超过标准 200k 令牌上下文窗口的请求将返回错误。要使用 1M 令牌上下文窗口,请迁移到 [Claude Opus 5、Claude Sonnet 5、Claude Sonnet 4.6、Claude Opus 4.6、Claude Opus 4.7 或 Claude Opus 4.8](https://platform.claude.com/docs/en/about-claude/models/overview),这些模型在标准定价下包含 1M 上下文,无需 beta 标头。4876 `context-1m-2025-08-07` beta 自 2026 年 4 月 30 日起已停用。使用 Claude Sonnet 4.5 或 Sonnet 4 传递此值无效,超过标准 200k 令牌上下文窗口的请求将返回错误。要使用 1M 令牌上下文窗口,请迁移到 [Claude Opus 5.5、Claude Opus 5、Claude Sonnet 5、Claude Sonnet 4.6、Claude Opus 4.6、Claude Opus 4.7 或 Claude Opus 4.8](https://platform.claude.com/docs/en/about-claude/models/overview),这些模型在标准定价下包含 1M 上下文,无需 beta 标头。

4893</Warning>4877</Warning>

4894 4878 

4895<h3 id="slashcommand">4879<h3 id="slashcommand">


4904 description: string;4888 description: string;

4905 argumentHint: string;4889 argumentHint: string;

4906 aliases?: string[];4890 aliases?: string[];

4891 builtin?: boolean;

4907};4892};

4908```4893```

4909 4894 

4895当命令是 Claude Code 自己的命令且输入 `/name` 运行它时,`builtin` 为 `true`。对于由用户、项目、plugin 或 MCP 服务器定义的命令,以及由这些命令之一 [按名称替换](/docs/zh-CN/skills#resolve-skills-that-share-a-name) 的捆绑命令,它不存在。需要 Agent SDK v0.3.277 或更高版本。

4896 

4910<h3 id="modelinfo">4897<h3 id="modelinfo">

4911 `ModelInfo`4898 `ModelInfo`

4912</h3>4899</h3>


5013 destructive?: boolean;5000 destructive?: boolean;

5014 openWorld?: boolean;5001 openWorld?: boolean;

5015 };5002 };

5003 _meta?: Record<string, unknown>;

5016 }[];5004 }[];

5017};5005};

5018```5006```

5019 5007 

5020`source` 说明服务器定义的来源,具有与 [`McpServerProvenance`](#mcpserverprovenance) 的 `source` 相同的值和信任规则。该字段需要 Agent SDK v0.3.274 或更高版本,在早期版本中不存在。5008`source` 说明服务器定义的来源,具有与 [`McpServerProvenance`](#mcpserverprovenance) 的 `source` 相同的值和信任规则。该字段需要 Agent SDK v0.3.274 或更高版本,在早期版本中不存在。

5021 5009 

5010`_meta` 在 `tools` 条目上携带该工具的 `_meta` 的 MCP Apps 成员,因此您的应用程序可以找到 `ui://` 资源以使用 [`readMcpResource()`](#query-object) 呈现。Claude Code 传递 `ui` 对象和已弃用的平面 `ui/resourceUri` 字符串,并保留所有其他密钥。在 `ui` 内,`resourceUri` 是 `ui://` 字符串,`visibility` 是当服务器设置它们时的 `"model"` 和 `"app"` 数组,任何其他成员原样传递。Claude Code 在值格式不正确时删除任一密钥,并从既不声明任何一个的工具中省略 `_meta`。该字段仅在初始化消息的 [`capabilities`](#sdksystemmessage) 包含 `mcp_tool_ui_meta_v1` 时出现,并需要 TypeScript Agent SDK v0.3.280 或更高版本。

5011 

5022<h3 id="mcpserverstatusconfig">5012<h3 id="mcpserverstatusconfig">

5023 `McpServerStatusConfig`5013 `McpServerStatusConfig`

5024</h3>5014</h3>


5767| `enabled` | `boolean` | `false` | 为命令执行启用沙箱模式 |5757| `enabled` | `boolean` | `false` | 为命令执行启用沙箱模式 |

5768| `failIfUnavailable` | `boolean` | `true` | 如果 `enabled` 为 `true` 但沙箱无法启动,则在启动时停止。设置为 `false` 以回退到沙箱外执行,并在 stderr 上显示警告 |5758| `failIfUnavailable` | `boolean` | `true` | 如果 `enabled` 为 `true` 但沙箱无法启动,则在启动时停止。设置为 `false` 以回退到沙箱外执行,并在 stderr 上显示警告 |

5769| `autoAllowBashIfSandboxed` | `boolean` | `true` | 启用沙箱时自动批准 Bash 命令 |5759| `autoAllowBashIfSandboxed` | `boolean` | `true` | 启用沙箱时自动批准 Bash 命令 |

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

5771| `allowUnsandboxedCommands` | `boolean` | `true` | 允许模型请求在沙箱外运行命令。当为 `true` 时,模型可以在工具输入中设置 `dangerouslyDisableSandbox`,这会回退到[权限系统](#permissions-fallback-for-unsandboxed-commands) |5761| `allowUnsandboxedCommands` | `boolean` | `true` | 允许模型请求在沙箱外运行命令。当为 `true` 时,模型可以在工具输入中设置 `dangerouslyDisableSandbox`,这会回退到[权限系统](#permissions-fallback-for-unsandboxed-commands) |

5772| `network` | [`SandboxNetworkConfig`](#sandboxnetworkconfig) | `undefined` | 网络特定的沙箱配置 |5762| `network` | [`SandboxNetworkConfig`](#sandboxnetworkconfig) | `undefined` | 网络特定的沙箱配置 |

5773| `filesystem` | [`SandboxFilesystemConfig`](#sandboxfilesystemconfig) | `undefined` | 用于读/写限制的文件系统特定沙箱配置 |5763| `filesystem` | [`SandboxFilesystemConfig`](#sandboxfilesystemconfig) | `undefined` | 用于读/写限制的文件系统特定沙箱配置 |


5874 沙箱外命令的权限回退5864 沙箱外命令的权限回退

5875</h3>5865</h3>

5876 5866 

5877当 `allowUnsandboxedCommands` 启用时,模型可以通过在工具输入中设置 `dangerouslyDisableSandbox: true` 来请求在沙箱外运行命令。这些请求回退到现有权限系统,意味着您的 `canUseTool` 处理程序被调用,允许您实现自定义授权逻辑。在 `excludedCommands` 中列出的命令改为自动绕过沙箱,无需模型参与;请参阅 [`SandboxSettings`](#sandboxsettings)。5867当 `allowUnsandboxedCommands` 启用时,模型可以通过在工具输入中设置 `dangerouslyDisableSandbox: true` 来请求在沙箱外运行命令。这些请求回退到现有权限系统,意味着您的 `canUseTool` 处理程序被调用,允许您实现自定义授权逻辑。

5868 

5869您的 `excludedCommands` 条目改为自动绕过沙箱,无需模型参与;[`sandbox.excludedCommands`](/docs/zh-CN/settings-reference#sandbox-excludedcommands) 涵盖何时应用条目。

5878 5870 

5879在下面的示例中,`isCommandAuthorized` 代表您定义的授权检查。5871在下面的示例中,`isCommandAuthorized` 代表您定义的授权检查。

5880 5872 

agent-teams.md +0 −4

Details

14 14 

15在设置团队之前,请检查是否有更轻量级的选项可以完成工作。[Subagents](/docs/zh-CN/sub-agents) 在单个会话中工作,通过 [跨会话消息传递](/docs/zh-CN/cross-session-messaging),Claude 可以在你自己运行的会话之间传递发现。15在设置团队之前,请检查是否有更轻量级的选项可以完成工作。[Subagents](/docs/zh-CN/sub-agents) 在单个会话中工作,通过 [跨会话消息传递](/docs/zh-CN/cross-session-messaging),Claude 可以在你自己运行的会话之间传递发现。

16 16 

17<Note>

18 本页描述的是 v2.1.178 版本的 agent teams。设置 `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS` 后,生成队友不再需要设置步骤,会话退出时会自动清理。在 v2.1.178 之前,你需要要求 Claude 先创建并命名一个团队,Claude 使用 `TeamCreate` 和 `TeamDelete` 工具来设置和删除它。这两个工具已不再存在。Agent 工具上的 `team_name` 输入被接受但被忽略,`TaskCreated`、`TaskCompleted` 和 `TeammateIdle` [hook payloads](/docs/zh-CN/hooks#taskcreated) 中的 `team_name` 字段携带会话派生的名称,已被弃用。

19</Note>

20 

21<h2 id="when-to-use-agent-teams">17<h2 id="when-to-use-agent-teams">

22 何时使用 agent teams18 何时使用 agent teams

23</h2>19</h2>

Details

291 291 

292将这些环境变量设置为特定的 Amazon Bedrock 模型 ID。292将这些环境变量设置为特定的 Amazon Bedrock 模型 ID。

293 293 

294没有 `ANTHROPIC_DEFAULT_OPUS_MODEL` 时,Amazon Bedrock 上的 `opus` 别名解析为 Opus 5,没有 `ANTHROPIC_DEFAULT_SONNET_MODEL` 时,`sonnet` 别名解析为 Sonnet 4.5。此示例将每个别名固定到特定版本:294没有 `ANTHROPIC_DEFAULT_OPUS_MODEL` 时,Amazon Bedrock 上的 `opus` 别名解析为 Opus 5.5,没有 `ANTHROPIC_DEFAULT_SONNET_MODEL` 时,`sonnet` 别名解析为 Sonnet 4.5。此示例将每个别名固定到特定版本:

295 295 

296```bash theme={null}296```bash theme={null}

297export ANTHROPIC_DEFAULT_OPUS_MODEL='us.anthropic.claude-opus-4-8'297export ANTHROPIC_DEFAULT_OPUS_MODEL='us.anthropic.claude-opus-4-8'


304要保留内置默认模型并仅更改其首选前缀,请改为设置 [`ANTHROPIC_BEDROCK_REGION_PREFIX`](#cross-region-inference-profile-prefixes)。差异显示在 `opus` 别名解析为什么:304要保留内置默认模型并仅更改其首选前缀,请改为设置 [`ANTHROPIC_BEDROCK_REGION_PREFIX`](#cross-region-inference-profile-prefixes)。差异显示在 `opus` 别名解析为什么:

305 305 

306| 您设置 | `opus` 别名解析为 |306| 您设置 | `opus` 别名解析为 |

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

308| `ANTHROPIC_DEFAULT_OPUS_MODEL='us.anthropic.claude-opus-4-8'` | `us.anthropic.claude-opus-4-8`,您固定的确切 ID |308| `ANTHROPIC_DEFAULT_OPUS_MODEL='us.anthropic.claude-opus-4-8'` | `us.anthropic.claude-opus-4-8`,您固定的确切 ID |

309| `ANTHROPIC_BEDROCK_REGION_PREFIX=eu` | `eu.anthropic.claude-opus-5`,具有您首选前缀的内置默认值 |309| `ANTHROPIC_BEDROCK_REGION_PREFIX=eu` | `eu.anthropic.claude-opus-5-5`,具有您首选前缀的内置默认值 |

310 310 

311有关当前和旧版模型 ID,请参阅[模型概览](https://platform.claude.com/docs/en/about-claude/models/overview)。有关完整的固定环境变量列表,请参阅[模型配置](/docs/zh-CN/model-config#pin-models-for-third-party-deployments)。311有关当前和旧版模型 ID,请参阅[模型概览](https://platform.claude.com/docs/en/about-claude/models/overview)。有关完整的固定环境变量列表,请参阅[模型配置](/docs/zh-CN/model-config#pin-models-for-third-party-deployments)。

312 312 


314 314 

315| 模型类型 | 默认模型 |315| 模型类型 | 默认模型 |

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

317| 主要模型 | Opus 5,例如 `us-*` 区域中的 `us.anthropic.claude-opus-5` |317| 主要模型 | Opus 5.5,例如 `us-*` 区域中的 `us.anthropic.claude-opus-5-5` |

318| 小型/快速模型 | Sonnet 4.5,例如 `us-*` 区域中的 `us.anthropic.claude-sonnet-4-5-20250929-v1:0` |318| 小型/快速模型 | Sonnet 4.5,例如 `us-*` 区域中的 `us.anthropic.claude-sonnet-4-5-20250929-v1:0` |

319 319 

320后台任务(如会话标题生成)使用小型/快速模型,通常是 Haiku 级别的模型。在 Amazon Bedrock 上,Claude Code 为后台任务使用默认 Sonnet 模型,因为 Haiku 可能不会在每个账户或区域中启用。两个选择改变哪个模型执行它们:320后台任务(如会话标题生成)使用小型/快速模型,通常是 Haiku 级别的模型。在 Amazon Bedrock 上,Claude Code 为后台任务使用默认 Sonnet 模型,因为 Haiku 可能不会在每个账户或区域中启用。两个选择改变哪个模型执行它们:


326 Opus 模型的每令牌价格高于 Sonnet 模型,因此不固定主要模型的部署在更新到 v2.1.207 或更高版本后将按 Opus 费率计费。要将 Sonnet 4.5 保留为主要模型,请将 `ANTHROPIC_MODEL` 设置为其完整模型 ID。使用 `ANTHROPIC_DEFAULT_SONNET_MODEL` 引导默认值且不设置 `ANTHROPIC_DEFAULT_OPUS_MODEL` 的部署保留其引导的 Sonnet 模型作为默认值。326 Opus 模型的每令牌价格高于 Sonnet 模型,因此不固定主要模型的部署在更新到 v2.1.207 或更高版本后将按 Opus 费率计费。要将 Sonnet 4.5 保留为主要模型,请将 `ANTHROPIC_MODEL` 设置为其完整模型 ID。使用 `ANTHROPIC_DEFAULT_SONNET_MODEL` 引导默认值且不设置 `ANTHROPIC_DEFAULT_OPUS_MODEL` 的部署保留其引导的 Sonnet 模型作为默认值。

327</Warning>327</Warning>

328 328 

329在 v2.1.207 到 v2.1.218 上,Amazon Bedrock 上的主要模型默认为 Opus 4.8,`opus` 别名解析为 Opus 4.8。在 v2.1.207 之前,主要模型默认为 Sonnet 4.5,`opus` 别名解析为 Opus 4.6,后台任务始终使用主要模型。329在 v2.1.280 之前,Amazon Bedrock 上的主要模型默认为 Opus 5,`opus` 别名从 v2.1.219 解析为 Opus 5。在 v2.1.207 到 v2.1.218 上,Amazon Bedrock 上的主要模型默认为 Opus 4.8,`opus` 别名解析为 Opus 4.8。在 v2.1.207 之前,主要模型默认为 Sonnet 4.5,`opus` 别名解析为 Opus 4.6,后台任务始终使用主要模型。

330 330 

331要进一步自定义模型,请使用以下方法之一:331要进一步自定义模型,请使用以下方法之一:

332 332 


405```bash theme={null}405```bash theme={null}

406export ANTHROPIC_BEDROCK_REGION_PREFIX=global406export ANTHROPIC_BEDROCK_REGION_PREFIX=global

407# 在 us-* 区域中,主模型现在解析为407# 在 us-* 区域中,主模型现在解析为

408# global.anthropic.claude-opus-5 而不是 us.anthropic.claude-opus-5408# global.anthropic.claude-opus-5-5 而不是 us.anthropic.claude-opus-5-5

409```409```

410 410 

411首选前缀是一个偏好,而不是保证,无论它来自您的区域还是来自变量。Claude Code 如何应用它取决于它是否可以检查您账户中的配置文件可用性:411首选前缀是一个偏好,而不是保证,无论它来自您的区域还是来自变量。Claude Code 如何应用它取决于它是否可以检查您账户中的配置文件可用性:

artifacts.md +2 −2

Details

347Artifacts 需要以下所有条件。当不满足其中一个时,Claude 写入本地 HTML 文件或说它无法发布。347Artifacts 需要以下所有条件。当不满足其中一个时,Claude 写入本地 HTML 文件或说它无法发布。

348 348 

349| 要求 | 可用时间 |349| 要求 | 可用时间 |

350| :---- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |350| :---- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

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

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

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

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

355| 表面 | Claude Code CLI 版本 2.1.183 或更高版本,或 Claude 桌面应用版本 1.13576.0 或更高版本。当 Claude Tag 和 artifacts 都为组织启用时,[Claude Tag](https://claude.com/docs/claude-tag/overview) 会话也可以发布 artifacts。在 [Agent SDK](/docs/zh-CN/agent-sdk/overview)、GitHub Action 和 MCP-server 上下文中默认关闭,以及当设置 [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/zh-CN/env-vars) 时。 |355| 表面 | Claude Code CLI,或 Claude 桌面应用版本 1.13576.0 或更高版本。当 Claude Tag 和 artifacts 都为组织启用时,[Claude Tag](https://claude.com/docs/claude-tag/overview) 会话也可以发布 artifacts。在 [Agent SDK](/docs/zh-CN/agent-sdk/overview)、GitHub Action 和 MCP-server 上下文中默认关闭,以及当设置 [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/zh-CN/env-vars) 时。 |

356 356 

357<h2 id="disable-artifacts">357<h2 id="disable-artifacts">

358 禁用 artifacts358 禁用 artifacts

Details

53 53 

54[Claude for Teams](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=authentication_teams#team-&-enterprise) 和 [Claude for Enterprise](https://anthropic.com/contact-sales?utm_source=claude_code\&utm_medium=docs\&utm_content=authentication_enterprise) 为使用 Claude Code 的组织提供最佳体验。团队成员可以访问 Claude Code 和网络版 Claude,具有集中式计费和团队管理。54[Claude for Teams](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=authentication_teams#team-&-enterprise) 和 [Claude for Enterprise](https://anthropic.com/contact-sales?utm_source=claude_code\&utm_medium=docs\&utm_content=authentication_enterprise) 为使用 Claude Code 的组织提供最佳体验。团队成员可以访问 Claude Code 和网络版 Claude,具有集中式计费和团队管理。

55 55 

56* **Claude for Teams**:自助服务计划,具有协作功能、管理工具和计费管理。最适合较小的团队。56* **Claude for Teams**:自助服务计划,具有协作功能、管理工具、SSO、计费管理和 [服务器托管设置](/docs/zh-CN/server-managed-settings),用于组织范围的 Claude Code 配置。最适合较小的团队。

57* **Claude for Enterprise**:添加 SSO、域名捕获、基于角色的权限、合规性 API 和托管策略设置,用于组织范围的 Claude Code 配置。最适合具有安全和合规性要求的大型组织。57* **Claude for Enterprise**:添加域名捕获、基于角色的权限和合规性 API。最适合具有安全和合规性要求的大型组织。

58 58 

59<Steps>59<Steps>

60 <Step title="订阅">60 <Step title="订阅">

Details

250 250 

251云会话支持产生文本输出的[内置命令](/docs/zh-CN/commands)。仅在终端界面中运行的命令,如 `/plugin` 或 `/resume`,不可用。在云会话中打开选择器或面板的命令表现不同:251云会话支持产生文本输出的[内置命令](/docs/zh-CN/commands)。仅在终端界面中运行的命令,如 `/plugin` 或 `/resume`,不可用。在云会话中打开选择器或面板的命令表现不同:

252 252 

253* **`/model`、`/effort`、`/color` 和 `/rename`**:将值作为参数传递,例如 `/model sonnet`,而不是打开终端选择器或滑块。参数形式需要会话环境中的 Claude Code v2.1.205 或更高版本,并遵循每个命令的[可用性说明](/docs/zh-CN/commands#all-commands):`/effort` 在模型的[启动默认工作量保持](/docs/zh-CN/model-config#adjust-effort-level)生效时报告 `Not applied`。253* **`/model`、`/effort`、`/color` 和 `/rename`**:将值作为参数传递,例如 `/model sonnet`,而不是打开终端选择器或滑块。参数形式需要会话环境中的 Claude Code v2.1.205 或更高版本,并遵循每个命令的[可用性说明](/docs/zh-CN/commands#all-commands)。

254* **`/fast`**:当快速模式在[你的账户上可用](/docs/zh-CN/fast-mode#requirements)时,为会话切换[快速模式](/docs/zh-CN/fast-mode#use-fast-mode-in-cloud-sessions)。需要会话环境中的 Claude Code v2.1.271 或更高版本。254* **`/fast`**:当快速模式在[你的账户上可用](/docs/zh-CN/fast-mode#requirements)时,为会话切换[快速模式](/docs/zh-CN/fast-mode#use-fast-mode-in-cloud-sessions)。需要会话环境中的 Claude Code v2.1.271 或更高版本。

255* **`/config`**:在你的浏览器中的 claude.ai/code 上,打开你的设置的 Claude Code 部分,而不是设置值,命令后的文本(包括 `key=value`)被忽略。要更改云会话的设置,请设置[环境变量](/docs/zh-CN/cloud-environments#set-environment-variables),或在具有一个存储库的会话中,将密钥提交到该存储库的 `.claude/settings.json`。[云会话中的设置](/docs/zh-CN/settings#settings-in-cloud-sessions)列出了每个会话读取的内容。255* **`/config`**:在你的浏览器中的 claude.ai/code 上,打开你的设置的 Claude Code 部分,而不是设置值,命令后的文本(包括 `key=value`)被忽略。要更改云会话的设置,请设置[环境变量](/docs/zh-CN/cloud-environments#set-environment-variables),或在具有一个存储库的会话中,将密钥提交到该存储库的 `.claude/settings.json`。[云会话中的设置](/docs/zh-CN/settings#settings-in-cloud-sessions)列出了每个会话读取的内容。

256 256 

Details

1451浏览器涵盖您创作和编辑的文件。一些相关文件位于其他位置:1451浏览器涵盖您创作和编辑的文件。一些相关文件位于其他位置:

1452 1452 

1453| 文件 | 位置 | 用途 |1453| 文件 | 位置 | 用途 |

1454| ----------------------- | ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |1454| ----------------------- | ---------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

1455| `managed-settings.json` | 系统级别,因操作系统而异 | 企业强制执行的设置,您无法覆盖,除了[狭窄的例外](/docs/zh-CN/settings#security-keys-where-the-stricter-value-applies)。请参阅[保存文件的位置](/docs/zh-CN/managed-settings#deploy-a-managed-settings-file)和[Claude Code 使用的托管源](/docs/zh-CN/managed-settings#precedence-within-the-managed-tier)。 |1455| `managed-settings.json` | 系统级别,因操作系统而异 | 企业强制执行的设置,您无法覆盖,除了[狭窄的例外](/docs/zh-CN/settings#security-keys-where-the-stricter-value-applies)。请参阅[保存文件的位置](/docs/zh-CN/managed-settings#deploy-a-managed-settings-file)和[Claude Code 使用的托管源](/docs/zh-CN/managed-settings#precedence-within-the-managed-tier)。 |

1456| `CLAUDE.local.md` | 项目根目录 | 您对此项目的私人偏好,与 CLAUDE.md 一起加载。手动创建它并将其添加到 `.gitignore`。 |1456| `CLAUDE.local.md` | 项目根目录 | 您对此项目的私人偏好,与 CLAUDE.md 一起加载。手动创建它并将其添加到 `.gitignore`。 |

1457| `AGENTS.md` | 项目根目录、`.claude/` 或任何目录 | 您为 AI 编码代理编写的项目说明。Claude Code 可以[自行加载它](/docs/zh-CN/memory#agents-md)或与 `CLAUDE.md` 一起加载。 |1457| `AGENTS.md` | 项目根目录、`.claude/` 或任何目录 | 您为 AI 编码代理编写的项目说明。Claude Code 可以[自行加载它](/docs/zh-CN/memory#agents-md)或与 `CLAUDE.md` 一起加载。 |

1458| 已安装的 plugins | `~/.claude/plugins` | 克隆的市场、已安装的 plugin 版本和每个 plugin 的数据,由 `claude plugin` 命令管理。对于从市场[`command` 源](/docs/zh-CN/plugin-marketplaces#command-sources)以链接模式安装的 plugin,Claude Code 在此处存储链接而不是副本,plugin 的文件保留在命令打印的目录中。`command` 源需要 Claude Code v2.1.229 或更高版本。本地目录市场中按相对路径列出的 plugin 也会[从其源目录就地加载](/docs/zh-CN/plugins-reference#plugin-caching-and-file-resolution),而不是从缓存副本加载。请参阅 [plugin 缓存](/docs/zh-CN/plugins-reference#plugin-caching-and-file-resolution)了解孤立版本如何被清理。 |1458| 已安装的 plugins | `~/.claude/plugins` | 克隆的市场、已安装的 plugin 版本、`installed_plugins.json` 安装记录和每个 plugin 的数据,由 `claude plugin` 命令管理。从您的 claude.ai 账户[同步的 plugins](/docs/zh-CN/plugins-reference#synced-plugins) 下载到 `~/.claude/plugins/synced/`。对于从市场[`command` 源](/docs/zh-CN/plugin-marketplaces#command-sources)以链接模式安装的 plugin,Claude Code 在此处存储链接而不是副本,plugin 的文件保留在命令打印的目录中。`command` 源需要 Claude Code v2.1.229 或更高版本。本地目录市场中按相对路径列出的 plugin 也会[从其源目录就地加载](/docs/zh-CN/plugins-reference#plugin-caching-and-file-resolution),而不是从缓存副本加载。请参阅 [plugin 缓存](/docs/zh-CN/plugins-reference#plugin-caching-and-file-resolution)了解孤立版本如何被清理。 |

1459 1459 

1460`~/.claude` 还保存 Claude Code 在您工作时写入的数据:记录、提示历史、文件快照、缓存和日志。请参阅下面的[应用数据](#application-data)。1460`~/.claude` 还保存 Claude Code 在您工作时写入的数据:记录、提示历史、文件快照、缓存和日志。请参阅下面的[应用数据](#application-data)。

1461 1461 


1515| [`keybindings.json`](#ce-keybindings) | 仅全局 | | 自定义快捷键 | [快捷键](/docs/zh-CN/keybindings) |1515| [`keybindings.json`](#ce-keybindings) | 仅全局 | | 自定义快捷键 | [快捷键](/docs/zh-CN/keybindings) |

1516| [`themes/*.json`](#ce-themes) | 仅全局 | | 自定义颜色主题 | [自定义主题](/docs/zh-CN/terminal-config#create-a-custom-theme) |1516| [`themes/*.json`](#ce-themes) | 仅全局 | | 自定义颜色主题 | [自定义主题](/docs/zh-CN/terminal-config#create-a-custom-theme) |

1517 1517 

1518<h2 id="frontmatter-fields-by-file">

1519 按文件分类的 Frontmatter 字段

1520</h2>

1521 

1522Skills、命令文件、subagents、输出样式和规则从文件顶部的 YAML [frontmatter](/docs/zh-CN/glossary#frontmatter) 读取其配置,每个都接受自己的一组字段。此表列出了每个文件的字段名称,并链接到描述它们的参考资料。

1523 

1524| 文件 | Frontmatter 字段 | 参考资料 |

1525| ------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------- |

1526| `skills/<name>/SKILL.md` | `name`, `description`, `when_to_use`, `argument-hint`, `arguments`, `disable-model-invocation`, `user-invocable`, `allowed-tools`, `disallowed-tools`, `model`, `effort`, `context`, `agent`, `background`, `hooks`, `paths`, `shell`, `metadata`, `license`, `compatibility` | [Skill frontmatter](/docs/zh-CN/skills#frontmatter-reference) |

1527| `commands/*.md` | 除 `name` 和 `paths` 外的 skill 字段 | [Skill frontmatter](/docs/zh-CN/skills#frontmatter-reference) |

1528| `agents/*.md` | `name`, `description`, `tools`, `disallowedTools`, `model`, `permissionMode`, `maxTurns`, `skills`, `mcpServers`, `hooks`, `memory`, `background`, `effort`, `isolation`, `color`, `initialPrompt`, `omitClaudeMd`, `experimental` | [Subagent frontmatter](/docs/zh-CN/sub-agents#supported-frontmatter-fields) |

1529| `output-styles/*.md` | `name`, `description`, `keep-coding-instructions`, `force-for-plugin` | [Output style frontmatter](/docs/zh-CN/output-styles#frontmatter) |

1530| `rules/*.md` | `paths` | [Rule frontmatter](/docs/zh-CN/memory#rules-frontmatter-reference) |

1531 

1532在 [plugin](/docs/zh-CN/plugins-reference#plugin-agent-frontmatter) 中提供的 Agents 遵守 subagent 字段的一个子集。

1533 

1518<h2 id="troubleshoot-configuration">1534<h2 id="troubleshoot-configuration">

1519 排查配置问题1535 排查配置问题

1520</h2>1536</h2>


1534Claude Code 删除下面路径中的文件,一旦它们的年龄超过 [`cleanupPeriodDays`](/docs/zh-CN/settings-reference#cleanupperioddays),只要它能安全地确定保留期。默认值为 30 天,最小值为 1;设置 `0` 会导致验证错误。相同的年龄截止值也适用于 [孤立 worktrees](/docs/zh-CN/worktrees#clean-up-subagent-and-background-session-worktrees) 的自动删除。1550Claude Code 删除下面路径中的文件,一旦它们的年龄超过 [`cleanupPeriodDays`](/docs/zh-CN/settings-reference#cleanupperioddays),只要它能安全地确定保留期。默认值为 30 天,最小值为 1;设置 `0` 会导致验证错误。相同的年龄截止值也适用于 [孤立 worktrees](/docs/zh-CN/worktrees#clean-up-subagent-and-background-session-worktrees) 的自动删除。

1535 1551 

1536| `~/.claude/` 下的路径 | 内容 |1552| `~/.claude/` 下的路径 | 内容 |

1537| ------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |1553| ------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

1538| `projects/<project>/<session>.jsonl` | 完整的对话记录:每条消息、工具调用和工具结果 |1554| `projects/<project>/<session>.jsonl` | 完整的对话记录:每条消息、工具调用和工具结果 |

1539| `projects/<project>/<session>.orphaned-<timestamp>-<suffix>.jsonl`、`projects/<project>/<session>.jsonl.superseded-<timestamp>` | 会话的先前记录,Claude Code 将其搁置而不是覆盖或删除它。它不会出现在会话选择器中 |1555| `projects/<project>/<session>.orphaned-<timestamp>-<suffix>.jsonl`、`projects/<project>/<session>.jsonl.superseded-<timestamp>` | 会话的先前记录,Claude Code 将其搁置而不是覆盖或删除它。它不会出现在会话选择器中 |

1540| `projects/<project>/<session>/subagents/` | [Subagent](/docs/zh-CN/sub-agents) 对话记录,当父会话记录过期时被删除 |1556| `projects/<project>/<session>/subagents/` | [Subagent](/docs/zh-CN/sub-agents) 对话记录,当父会话记录过期时被删除 |


1543| `plans/` | 在 [Plan Mode](/docs/zh-CN/permission-modes#analyze-before-you-edit-with-plan-mode) 期间写入的计划文件 |1559| `plans/` | 在 [Plan Mode](/docs/zh-CN/permission-modes#analyze-before-you-edit-with-plan-mode) 期间写入的计划文件 |

1544| `debug/` | 每个会话的调试日志,在启用调试日志时写入,例如当您使用 [`--debug`](/docs/zh-CN/cli-reference#cli-flags) 启动或运行 `/debug` 时 |1560| `debug/` | 每个会话的调试日志,在启用调试日志时写入,例如当您使用 [`--debug`](/docs/zh-CN/cli-reference#cli-flags) 启动或运行 `/debug` 时 |

1545| `paste-cache/` | 大型粘贴的内容 |1561| `paste-cache/` | 大型粘贴的内容 |

1546| `image-cache/<session>/` | 附加的图像。在每次扫描时,Claude Code 删除所有其他会话的目录,无论其年龄如何。 |1562| `image-cache/<session>/` | Claude Code v2.1.274 及更早版本保存的附加图像。更高版本将粘贴和附加的图像保存在 `~/.claude` 之外,在 [`CLAUDE_CODE_TMPDIR`](/docs/zh-CN/env-vars) 控制的临时目录下每个会话的 `images/` 目录中。扫描会删除其他会话在此处留下的目录,无论其年龄如何。 |

1547| `uploads/<session>/` | 您从网络或移动应用附加的文件,以及从移动应用附加的照片,当向 [Remote Control](/docs/zh-CN/remote-control) 会话发送消息时。对 [cloud session](/docs/zh-CN/claude-code-on-the-web) 的附件保存在该会话自己的云环境中,而不是在您的机器上。 |1563| `uploads/<session>/` | 您从网络或移动应用附加的文件,以及从移动应用附加的照片,当向 [Remote Control](/docs/zh-CN/remote-control) 会话发送消息时。对 [cloud session](/docs/zh-CN/claude-code-on-the-web) 的附件保存在该会话自己的云环境中,而不是在您的机器上。 |

1548| `session-env/` | 每个会话的环境元数据 |1564| `session-env/` | 每个会话的环境元数据 |

1549| `tasks/` | 由 task 工具写入的任务列表,每个列表一个目录 |1565| `tasks/` | 由 task 工具写入的任务列表,每个列表一个目录 |


1552| `feedback-bundles/` | 由 `/feedback` 在第三方提供商上或当未配置 Anthropic 凭证时写入的编辑后的记录存档,用于发送到您的 Anthropic 账户团队 |1568| `feedback-bundles/` | 由 `/feedback` 在第三方提供商上或当未配置 Anthropic 凭证时写入的编辑后的记录存档,用于发送到您的 Anthropic 账户团队 |

1553| `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 删除最旧的草稿以腾出空间。 |

1554| `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) 写入的时间戳报告副本,加上用于构建它们的缓存的每个会话分析数据 |

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

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

1557 1573 

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


1610* `history.jsonl` 中的匹配提示行1626* `history.jsonl` 中的匹配提示行

1611* `~/.claude.json` 中的项目条目1627* `~/.claude.json` 中的项目条目

1612 1628 

1629您在项目会话中粘贴或附加的图像存储在 Claude Code 的临时目录下,而不是 `~/.claude`,因此清除不会删除它们。[保留扫描](#cleaned-up-automatically)会在它们的年龄超过 `cleanupPeriodDays` 时删除它们。

1630 

1613该命令打印完整的删除计划,并在删除任何内容之前要求确认。1631该命令打印完整的删除计划,并在删除任何内容之前要求确认。

1614 1632 

1615下面的示例使用 `~/work/my-repo` 作为占位符。将其替换为您的项目的路径。如果没有状态与路径匹配,该命令打印错误并以状态 1 退出。1633下面的示例使用 `~/work/my-repo` 作为占位符。将其替换为您的项目的路径。如果没有状态与路径匹配,该命令打印错误并以状态 1 退出。


1660您也可以手动删除上面的任何应用数据路径,除了 [state files to keep](#state-files-to-keep)。新会话不受影响。下表显示您对过去会话失去的内容。1678您也可以手动删除上面的任何应用数据路径,除了 [state files to keep](#state-files-to-keep)。新会话不受影响。下表显示您对过去会话失去的内容。

1661 1679 

1662| 删除 | 您失去 |1680| 删除 | 您失去 |

1663| ----------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ |1681| ---------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ |

1664| `~/.claude/projects/` | 恢复、继续和倒回过去的会话,以及每个项目的自动内存 |1682| `~/.claude/projects/` | 恢复、继续和倒回过去的会话,以及每个项目的自动内存 |

1665| `~/.claude/history.jsonl` | 向上箭头提示回忆、`Ctrl+R` 历史搜索和 `!` shell 命令补全 |1683| `~/.claude/history.jsonl` | 向上箭头提示回忆、`Ctrl+R` 历史搜索和 `!` shell 命令补全 |

1666| `~/.claude/paste-cache/` | 回忆的提示中的粘贴文本;请参阅 [paste large content](/docs/zh-CN/terminal-config#paste-large-content) |1684| `~/.claude/paste-cache/` | 回忆的提示中的粘贴文本;请参阅 [paste large content](/docs/zh-CN/terminal-config#paste-large-content) |


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

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

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

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

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

1680 1698 

1681不要删除 `~/.claude.json`、`~/.claude/settings.json` 或 `~/.claude/plugins/`:这些保存您的身份验证、偏好和已安装的 plugins。1699不要删除 `~/.claude.json`、`~/.claude/settings.json` 或 `~/.claude/plugins/`:这些保存您的身份验证、偏好和已安装的 plugins。

1682 1700 

Details

284 284 

285AWS 上的 Claude Platform 使用与直接 Claude API 相同的模型 ID。285AWS 上的 Claude Platform 使用与直接 Claude API 相同的模型 ID。

286 286 

287默认别名 `fable`、`opus`、`sonnet` 和 `haiku` 解析为 Claude Code 为 AWS 上的 Claude Platform 内置的默认值,这些值可能滞后于最新版本。如果没有 `ANTHROPIC_DEFAULT_OPUS_MODEL`,`opus` 别名解析为 Opus 5。在 v2.1.219 之前,它解析为 Opus 4.8,在 v2.1.207 之前解析为 Opus 4.7。287默认别名 `fable`、`opus`、`sonnet` 和 `haiku` 解析为 Claude Code 为 AWS 上的 Claude Platform 内置的默认值,这些值可能滞后于最新版本。如果没有 `ANTHROPIC_DEFAULT_OPUS_MODEL`,`opus` 别名解析为 Opus 5.5。在 v2.1.280 之前,它解析为从 v2.1.219 开始的 Opus 5,从 v2.1.207 开始的 Opus 4.8,以及在此之前的 Opus 4.7。

288 288 

289如果您将 Claude Code 部署到团队,请显式固定模型 ID,以便新版本不会一次性移动所有人:289如果您将 Claude Code 部署到团队,请显式固定模型 ID,以便新版本不会一次性移动所有人:

290 290 

Details

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

334</h3>334</h3>

335 335 

336每个线程克隆项目中的每个代码库并从所有代码库加载 `CLAUDE.md`、skills 和 plugins。权限规则、hooks 和 `env` 仅来自线程启动的目录中的 `.claude/settings.json`:在有一个代码库时在代码库内,在有多个时在克隆上方,其中没有代码库的文件被读取。336每个线程克隆项目中的每个代码库并从所有代码库加载 `CLAUDE.md` 和 skills。权限规则、hooks 和 `env` 仅来自线程启动的目录中的 `.claude/settings.json`:在有一个代码库时在代码库内,在有多个时在克隆上方,其中没有代码库的文件被读取。

337 337 

338| 在每个代码库中 | 一个代码库 | 多个代码库 |338| 在每个代码库中 | 一个代码库 | 多个代码库 |

339| :----------------------------------------------- | :-------------------------------------------------------------------------------------- | :---------------------------------------------------------------------- |339| :----------------------------------------------- | :-------------------------------------------------------------------------------------- | :------------------------------------------------ |

340| `CLAUDE.md` | 在线程启动时加载 | 在线程启动时从每个代码库加载 |340| `CLAUDE.md` | 在线程启动时加载 | 在线程启动时从每个代码库加载 |

341| `.claude/` 下的 Skills、agents 和 commands | 加载 | 从每个代码库加载 |341| `.claude/` 下的 Skills、agents 和 commands | 加载 | 从每个代码库加载 |

342| 在 `.claude/settings.json` 中启用的 Plugins | 加载 | 从每个代码库加载。如果两个代码库对 plugin 不同意,请在 **Project settings > Plugins** 中设置它,这优先 |342| 在 `.claude/settings.json` 中启用的 Plugins | 不加载。改为在 **Project settings > Plugins** 中添加 plugin | 不加载。改为在 **Project settings > Plugins** 中添加 plugin |

343| 在 `.claude/settings.json` 中定义的权限规则、hooks 和 `env` | 适用于线程,除了[没有云会话遵守](/docs/zh-CN/cloud-environments#what-carries-over-from-your-setup)的 `env` 键 | 不适用 |343| 在 `.claude/settings.json` 中定义的权限规则、hooks 和 `env` | 适用于线程,除了[没有云会话遵守](/docs/zh-CN/cloud-environments#what-carries-over-from-your-setup)的 `env` 键 | 不适用 |

344 344 

345在有多个代码库的项目中,每个克隆作为[附加目录](/docs/zh-CN/memory#load-from-additional-directories)附加到线程,`CLAUDE.md` 加载打开,这就是为什么每个代码库的 `CLAUDE.md` 和 skills 在启动时加载,即使线程在它们上方启动。在任何情况下,启用的 plugin 提供的 hooks 仍然运行,因为 plugins 从每个代码库加载。在有多个代码库的项目中,将常规规则放在项目说明中,并通过[云环境](#choose-an-environment-for-threads)为线程提供环境变量。345在有多个代码库的项目中,每个克隆作为[附加目录](/docs/zh-CN/memory#load-from-additional-directories)附加到线程,`CLAUDE.md` 加载打开,这就是为什么每个代码库的 `CLAUDE.md` 和 skills 在启动时加载,即使线程在它们上方启动。在这样的项目中,将常规规则放在项目说明中,并通过[云环境](#choose-an-environment-for-threads)为线程提供环境变量。

346 346 

347<h3 id="choose-an-environment-for-threads">347<h3 id="choose-an-environment-for-threads">

348 为线程选择环境348 为线程选择环境


359线程是云会话,因此它们没有仅在您机器上安装的 skills、MCP 服务器、plugins 和工具。要使这些中的每一个对线程可用:359线程是云会话,因此它们没有仅在您机器上安装的 skills、MCP 服务器、plugins 和工具。要使这些中的每一个对线程可用:

360 360 

361* Skills、subagents 和 commands:将它们提交到您添加到项目的代码库,例如 `.claude/skills/<skill-name>/SKILL.md` 处的 skill。每个线程克隆项目中的每个代码库并从每个代码库加载 `.claude/skills/`、`.claude/agents/` 和 `.claude/commands/`,因此提交到一个代码库的 skill 在每个新线程中可用。线程也加载您为 claude.ai 账户启用的 skills。361* Skills、subagents 和 commands:将它们提交到您添加到项目的代码库,例如 `.claude/skills/<skill-name>/SKILL.md` 处的 skill。每个线程克隆项目中的每个代码库并从每个代码库加载 `.claude/skills/`、`.claude/agents/` 和 `.claude/commands/`,因此提交到一个代码库的 skill 在每个新线程中可用。线程也加载您为 claude.ai 账户启用的 skills。

362* Plugins:在 **Project settings > Plugins** 中添加它们;它们加载到每个新线程中。代码库在其 `.claude/settings.json` 中声明的 Plugins 也加载;请参阅[什么从您的设置中进行](/docs/zh-CN/cloud-environments#what-carries-over-from-your-setup)。362* Plugins:在 **Project settings > Plugins** 中添加它们;它们加载到每个新线程中。代码库在其 `.claude/settings.json` 中声明的 Plugins [不在线程中加载](/docs/zh-CN/cloud-environments#what-carries-over-from-your-setup),因为线程是云会话。

363* MCP 服务器:线程从您 claude.ai 账户上的连接器获取其 MCP 工具,这些是您在 [claude.ai/customize/connectors](https://claude.ai/customize/connectors) 一次连接的 MCP 服务器,或通过 **Project settings > Environment** 中的 **Manage connectors** 链接。每个线程可以使用所有这些而无需每个项目的设置。项目对话本身没有连接器,因此将需要一个的工作作为线程的任务发送。在有一个代码库的项目中,线程也从该代码库的[`.mcp.json`](/docs/zh-CN/cloud-environments#what-carries-over-from-your-setup)加载 MCP 服务器。[连接器如何到达 Claude Code](/docs/zh-CN/mcp#how-connectors-reach-claude-code)列出了云会话的规则和关闭连接器的设置。363* MCP 服务器:线程从您 claude.ai 账户上的连接器获取其 MCP 工具,这些是您在 [claude.ai/customize/connectors](https://claude.ai/customize/connectors) 一次连接的 MCP 服务器,或通过 **Project settings > Environment** 中的 **Manage connectors** 链接。每个线程可以使用所有这些而无需每个项目的设置。项目对话本身没有连接器,因此将需要一个的工作作为线程的任务发送。在有一个代码库的项目中,线程也从该代码库的[`.mcp.json`](/docs/zh-CN/cloud-environments#what-carries-over-from-your-setup)加载 MCP 服务器。[连接器如何到达 Claude Code](/docs/zh-CN/mcp#how-connectors-reach-claude-code)列出了云会话的规则和关闭连接器的设置。

364* 命令行工具和包:在环境的[设置脚本](/docs/zh-CN/cloud-environments#setup-scripts)中安装它们。364* 命令行工具和包:在环境的[设置脚本](/docs/zh-CN/cloud-environments#setup-scripts)中安装它们。

365 365 

366要查看运行线程在 claude.ai/code 有哪些连接器,请打开线程并从其消息框旁的 **+** 菜单中选择 **Connectors**。在那里关闭连接器会将其从该线程中移除,并且在您重新打开它之前,它对之后启动的线程保持关闭。线程在您向其发送下一条消息后获取您添加或重新连接的连接器。366要查看运行线程在 claude.ai/code 有哪些连接器,请打开线程并从其消息框旁的 **+** 菜单中选择 **Connectors**。在那里关闭连接器会将其从该线程中移除,并且将其保存为您的账户默认值,因此新线程和 claude.ai 聊天在您重新打开它之前启动时没有它。线程在您向其发送下一条消息后获取您添加或重新连接的连接器。

367 367 

368<h2 id="project-settings-reference">368<h2 id="project-settings-reference">

369 项目设置参考369 项目设置参考

Details

60使用这些命令行标志自定义 Claude Code 的行为。`claude --help` 不会列出每个标志,因此标志在 `--help` 中不出现并不意味着它不可用。60使用这些命令行标志自定义 Claude Code 的行为。`claude --help` 不会列出每个标志,因此标志在 `--help` 中不出现并不意味着它不可用。

61 61 

62| 标志 | 描述 | 示例 |62| 标志 | 描述 | 示例 |

63| :---------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------- |63| :---------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------- |

64| `--add-dir` | 添加额外的工作目录供 Claude 读取和编辑文件。授予文件访问权限;Claude Code [不会发现](/docs/zh-CN/permissions#additional-directories-grant-file-access-not-configuration)这些目录中的大多数 `.claude/` 配置。验证每个路径是否作为目录存在。您不能添加大多数[网络路径](/docs/zh-CN/errors#working-directory-is-a-network-path),例如 `\\server\share`。要在会话之间保持这些目录,请在设置中设置 [`permissions.additionalDirectories`](/docs/zh-CN/settings-reference#permissions-additionaldirectories) | `claude --add-dir ../apps ../lib` |64| `--add-dir` | 添加额外的工作目录供 Claude 读取和编辑文件。授予文件访问权限;Claude Code [不会发现](/docs/zh-CN/permissions#additional-directories-grant-file-access-not-configuration)这些目录中的大多数 `.claude/` 配置。验证每个路径是否作为目录存在。您不能添加大多数[网络路径](/docs/zh-CN/errors#working-directory-is-a-network-path),例如 `\\server\share`。要在会话之间保持这些目录,请在设置中设置 [`permissions.additionalDirectories`](/docs/zh-CN/settings-reference#permissions-additionaldirectories) | `claude --add-dir ../apps ../lib` |

65| `--advisor <model>` | 使用模型别名 `fable`、`opus` 或 `sonnet`,或完整模型 ID 为此会话启用服务器端[顾问工具](/docs/zh-CN/advisor)。优先于会话的 `advisorModel` 设置。`fable` 需要[Fable 访问权限](/docs/zh-CN/advisor#choose-an-advisor-model) | `claude --advisor opus` |65| `--advisor <model>` | 使用模型别名 `fable`、`opus` 或 `sonnet`,或完整模型 ID 为此会话启用服务器端[顾问工具](/docs/zh-CN/advisor)。优先于会话的 `advisorModel` 设置。`fable` 需要[Fable 访问权限](/docs/zh-CN/advisor#choose-an-advisor-model) | `claude --advisor opus` |

66| `--agent` | 为当前会话指定代理(覆盖 `agent` 设置) | `claude --agent my-custom-agent` |66| `--agent` | 为当前会话指定代理(覆盖 `agent` 设置) | `claude --agent my-custom-agent` |


93| `--exec` | 运行 shell 命令作为 PTY 支持的后台作业,而不是启动 Claude 会话。与 `--bg` 一起使用以从 shell 启动 | `claude --bg --exec 'pytest -x'` |93| `--exec` | 运行 shell 命令作为 PTY 支持的后台作业,而不是启动 Claude 会话。与 `--bg` 一起使用以从 shell 启动 | `claude --bg --exec 'pytest -x'` |

94| `--fallback-model` | 启用当主模型过载或不可用时自动回退到指定的模型,例如已停用的模型。接受按顺序尝试的逗号分隔列表。请参阅[回退模型链](/docs/zh-CN/model-config#fallback-model-chains)。要在会话之间保持链,请使用此标志覆盖的 [`fallbackModel` 设置](/docs/zh-CN/settings-reference#fallbackmodel) | `claude --fallback-model sonnet,haiku` |94| `--fallback-model` | 启用当主模型过载或不可用时自动回退到指定的模型,例如已停用的模型。接受按顺序尝试的逗号分隔列表。请参阅[回退模型链](/docs/zh-CN/model-config#fallback-model-chains)。要在会话之间保持链,请使用此标志覆盖的 [`fallbackModel` 设置](/docs/zh-CN/settings-reference#fallbackmodel) | `claude --fallback-model sonnet,haiku` |

95| `--fork-session` | 恢复时,创建新的会话 ID 而不是重用原始 ID(与 `--resume` 或 `--continue` 一起使用) | `claude --resume abc123 --fork-session` |95| `--fork-session` | 恢复时,创建新的会话 ID 而不是重用原始 ID(与 `--resume` 或 `--continue` 一起使用) | `claude --resume abc123 --fork-session` |

96| `--forward-subagent-text` | 在输出流中发出[子代理](/docs/zh-CN/sub-agents)文本和思考块作为 `assistant` 和 `user` 消息,设置 `parent_tool_use_id`,以便您可以重建每个子代理的记录。没有此标志,Claude Code 会省略在[前台](/docs/zh-CN/sub-agents#run-subagents-in-foreground-or-background)运行的子代理的文本和思考块。需要 `--print` 和 `--output-format stream-json`。Claude Code 也转发来自[嵌套子代理](/docs/zh-CN/sub-agents#let-subagents-spawn-their-own-subagents)的消息,将 `parent_tool_use_id` 设置为生成每个子代理的 Agent 工具调用的 ID;这需要 Claude Code v2.1.219 或更高版本。[`CLAUDE_CODE_FORWARD_SUBAGENT_TEXT`](/docs/zh-CN/env-vars) 环境变量启用相同的行为。需要 Claude Code v2.1.211 或更高版本 | `claude -p --output-format stream-json --verbose --forward-subagent-text "query"` |96| `--forward-subagent-text` | 在输出流中发出[子代理](/docs/zh-CN/sub-agents)文本和思考块作为 `assistant` 和 `user` 消息,设置 `parent_tool_use_id`,以便您可以重建每个子代理的记录。没有此标志,Claude Code 会省略在[前台](/docs/zh-CN/sub-agents#run-subagents-in-foreground-or-background)运行的子代理的文本和思考块。需要 `--print` 和 `--output-format stream-json`。Claude Code 也转发来自[嵌套子代理](/docs/zh-CN/sub-agents#let-subagents-spawn-their-own-subagents)的消息,将 `parent_tool_use_id` 设置为生成每个子代理的 Agent 或 Skill 工具调用的 ID;这需要 Claude Code v2.1.219 或更高版本,分叉 skill 生成的子代理的消息以及嵌套分叉 skills 的消息需要 v2.1.275 或更高版本。[`CLAUDE_CODE_FORWARD_SUBAGENT_TEXT`](/docs/zh-CN/env-vars) 环境变量启用相同的行为。需要 Claude Code v2.1.211 或更高版本 | `claude -p --output-format stream-json --verbose --forward-subagent-text "query"` |

97| `--from-pr` | 打开会话选择器,过滤到链接到特定拉取请求的会话。接受 PR 编号、GitHub 或 GitHub Enterprise PR URL、GitLab 合并请求 URL 或 Bitbucket 拉取请求 URL。当 Claude 创建拉取请求时,会话会自动链接 | `claude --from-pr 123` |97| `--from-pr` | 打开会话选择器,过滤到链接到特定拉取请求的会话。接受 PR 编号、GitHub 或 GitHub Enterprise PR URL、GitLab 合并请求 URL 或 Bitbucket 拉取请求 URL。当 Claude 创建拉取请求时,会话会自动链接 | `claude --from-pr 123` |

98| `--ide` | 如果恰好有一个有效的 IDE 可用,在启动时自动连接到 IDE | `claude --ide` |98| `--ide` | 如果恰好有一个有效的 IDE 可用,在启动时自动连接到 IDE | `claude --ide` |

99| `--init` | 在会话之前使用 `init` 匹配器运行[Setup hooks](/docs/zh-CN/hooks#setup)(仅打印模式) | `claude -p --init "query"` |99| `--init` | 在会话之前使用 `init` 匹配器运行[Setup hooks](/docs/zh-CN/hooks#setup)(仅打印模式) | `claude -p --init "query"` |


103| `--input-format` | 为打印模式指定输入格式(选项:`text`、`stream-json`) | `claude -p --output-format json --input-format stream-json` |103| `--input-format` | 为打印模式指定输入格式(选项:`text`、`stream-json`) | `claude -p --output-format json --input-format stream-json` |

104| `--json-schema` | 在代理完成其工作流后获得与 JSON Schema 匹配的验证 JSON 输出(仅打印模式)。请参阅[结构化输出](/docs/zh-CN/agent-sdk/structured-outputs)。Claude Code 在无效架构上以错误退出,并接受 `format` 关键字作为注释而不进行客户端验证 | `claude -p --json-schema '{"type":"object","properties":{...}}' "query"` |104| `--json-schema` | 在代理完成其工作流后获得与 JSON Schema 匹配的验证 JSON 输出(仅打印模式)。请参阅[结构化输出](/docs/zh-CN/agent-sdk/structured-outputs)。Claude Code 在无效架构上以错误退出,并接受 `format` 关键字作为注释而不进行客户端验证 | `claude -p --json-schema '{"type":"object","properties":{...}}' "query"` |

105| `--maintenance` | 在会话之前使用 `maintenance` 匹配器运行[Setup hooks](/docs/zh-CN/hooks#setup)(仅打印模式) | `claude -p --maintenance "query"` |105| `--maintenance` | 在会话之前使用 `maintenance` 匹配器运行[Setup hooks](/docs/zh-CN/hooks#setup)(仅打印模式) | `claude -p --maintenance "query"` |

106| `--max-budget-usd` | 在停止之前在 API 调用上花费的最大美元金额(仅打印模式)。来自[子代理](/docs/zh-CN/sub-agents)的支出计入上限。一旦支出达到上限,生成另一个子代理失败,出现 `Budget limit reached`,Claude Code 停止仍在运行的后台子代理;上限执行行为需要 Claude Code v2.1.217 或更高版本 | `claude -p --max-budget-usd 5.00 "query"` |106| `--max-budget-usd` | 在停止之前在 API 调用上花费的最大美元金额(仅打印模式)。来自[子代理](/docs/zh-CN/sub-agents)的支出计入上限。当您使用 `--continue` 或 `--resume` 返回对话时,[从早期运行恢复的](/docs/zh-CN/agent-sdk/cost-tracking#accumulate-costs-across-multiple-calls)总数不计入它。一旦支出达到上限,生成另一个子代理失败,出现 `Budget limit reached`,Claude Code 停止仍在运行的后台子代理;上限执行行为需要 Claude Code v2.1.217 或更高版本 | `claude -p --max-budget-usd 5.00 "query"` |

107| `--max-turns` | 限制代理转数(仅打印模式)。达到限制时以错误退出。默认无限制。使用 `--input-format stream-json` 时,当限制结束转时仍排队的消息保持排队并以其自己的限制启动新转 | `claude -p --max-turns 3 "query"` |107| `--max-turns` | 限制代理转数(仅打印模式)。达到限制时以错误退出。默认无限制。使用 `--input-format stream-json` 时,当限制结束转时仍排队的消息保持排队并以其自己的限制启动新转 | `claude -p --max-turns 3 "query"` |

108| `--mcp-config` | 从 JSON 文件或字符串加载 MCP 服务器(空格分隔)。当您使用 `-p` 传递此标志时,Claude Code 在运行第一个转之前等待仍待处理的服务器连接,最多 [`MCP_TIMEOUT`](/docs/zh-CN/env-vars) 启动超时,默认 30 秒;具有[缓存工具列表](/docs/zh-CN/mcp#managing-your-servers)的服务器跳过等待并在首次使用时连接。等待需要 Claude Code v2.1.221 或更高版本 | `claude --mcp-config ./mcp.json` |108| `--mcp-config` | 从 JSON 文件或字符串加载 MCP 服务器(空格分隔)。当您使用 `-p` 传递此标志时,Claude Code 在运行第一个转之前等待仍待处理的服务器连接,最多 [`MCP_TIMEOUT`](/docs/zh-CN/env-vars) 启动超时,默认 30 秒;具有[缓存工具列表](/docs/zh-CN/mcp#managing-your-servers)的服务器跳过等待并在首次使用时连接。等待需要 Claude Code v2.1.221 或更高版本 | `claude --mcp-config ./mcp.json` |

109| `--model` | 使用[模型别名](/docs/zh-CN/model-config#model-aliases)(如 `sonnet`、`opus`、`haiku` 或 `fable`)或模型的完整名称为当前会话设置模型。覆盖 [`model`](/docs/zh-CN/settings-reference#model) 设置和 [`ANTHROPIC_MODEL`](/docs/zh-CN/model-config#environment-variables) | `claude --model claude-sonnet-5` |109| `--model` | 使用[模型别名](/docs/zh-CN/model-config#model-aliases)(如 `sonnet`、`opus`、`haiku` 或 `fable`)或模型的完整名称为当前会话设置模型。覆盖 [`model`](/docs/zh-CN/settings-reference#model) 设置和 [`ANTHROPIC_MODEL`](/docs/zh-CN/model-config#environment-variables) | `claude --model claude-sonnet-5` |


157 157 

158`--system-prompt` 和 `--system-prompt-file` 互斥。附加标志可以与任一替换标志组合。158`--system-prompt` 和 `--system-prompt-file` 互斥。附加标志可以与任一替换标志组合。

159 159 

160当替换文本将每次运行相同的指令与每次运行变化的上下文结合时,添加仅包含 `__SYSTEM_PROMPT_DYNAMIC_BOUNDARY__` 的行在指令和上下文之间。Claude Code 在第一个这样的行处分割提示并删除该行,因此上面的部分保持缓存而下面的部分变化。需要 Claude Code v2.1.275 或更高版本。[缓存自定义提示的静态部分](/docs/zh-CN/agent-sdk/modifying-system-prompts#cache-the-static-part-of-a-custom-prompt)列出应用分割的配置。

161 

160根据 Claude Code 的默认身份是否仍适合您的任务进行选择。当 Claude 应保持编码助手同时遵循您的额外规则时使用附加标志:每次调用指令、输出格式或 `-p` 脚本的域上下文。附加保留默认工具指导、安全指令和编码约定,因此您只需提供不同的内容。当表面、身份或权限模型与 Claude Code 的不同时使用替换标志,例如管道中没有人监视的非编码代理。替换删除整个默认提示,包括工具指导和安全指令,因此您对任务仍然需要的任何内容负责。162根据 Claude Code 的默认身份是否仍适合您的任务进行选择。当 Claude 应保持编码助手同时遵循您的额外规则时使用附加标志:每次调用指令、输出格式或 `-p` 脚本的域上下文。附加保留默认工具指导、安全指令和编码约定,因此您只需提供不同的内容。当表面、身份或权限模型与 Claude Code 的不同时使用替换标志,例如管道中没有人监视的非编码代理。替换删除整个默认提示,包括工具指导和安全指令,因此您对任务仍然需要的任何内容负责。

161 163 

162对于您可以在项目之间切换和共享的持久角色,请使用[输出样式](/docs/zh-CN/output-styles)。对于 Claude 应始终遵循的项目约定,请使用 [CLAUDE.md](/docs/zh-CN/memory)。[Agent SDK 关于系统提示的指南](/docs/zh-CN/agent-sdk/modifying-system-prompts#decide-on-a-starting-point)更深入地涵盖了相同的决定。164对于您可以在项目之间切换和共享的持久角色,请使用[输出样式](/docs/zh-CN/output-styles)。对于 Claude 应始终遵循的项目约定,请使用 [CLAUDE.md](/docs/zh-CN/memory)。[Agent SDK 关于系统提示的指南](/docs/zh-CN/agent-sdk/modifying-system-prompts#decide-on-a-starting-point)更深入地涵盖了相同的决定。

Details

300| 您的存储库的 `.mcp.json` MCP 服务器 | 是,在具有一个存储库的会话中 | 克隆的一部分,从会话的工作目录中找到 |300| 您的存储库的 `.mcp.json` MCP 服务器 | 是,在具有一个存储库的会话中 | 克隆的一部分,从会话的工作目录中找到 |

301| 您的存储库的 `.claude/rules/` | 是 | 克隆的一部分 |301| 您的存储库的 `.claude/rules/` | 是 | 克隆的一部分 |

302| 您的存储库的 `.claude/skills/`、`.claude/agents/`、`.claude/commands/` | 是 | 克隆的一部分 |302| 您的存储库的 `.claude/skills/`、`.claude/agents/`、`.claude/commands/` | 是 | 克隆的一部分 |

303| 在 `.claude/settings.json` 中声明的 Plugins | 是 | 在会话启动时从您声明的 [marketplace](/docs/zh-CN/plugin-marketplaces) 安装。需要网络访问以到达 marketplace 来源 |303| 在您的存储库的 `.claude/settings.json` 中声明的 Plugins 和 marketplaces | 否 | 云会话不会安装存储库在 [`enabledPlugins`](/docs/zh-CN/settings-reference#enabledplugins) 下启用的 plugins,包括来自它在 [`extraKnownMarketplaces`](/docs/zh-CN/settings-reference#extraknownmarketplaces) 下列出的 marketplaces 的 plugins。请改为为您的 claude.ai 账户启用 plugin,以便 Claude Code 将其作为[同步 plugin](/docs/zh-CN/plugins-reference#synced-plugins)加载 |

304| 您组织的[服务器管理的设置](/docs/zh-CN/server-managed-settings) | 是 | 在会话启动时从 Anthropic 的服务器获取。请参阅 [Surface coverage](/docs/zh-CN/model-config#surface-coverage) 了解 `availableModels` 在云会话中如何强制执行。通过 MDM 或管理配置文件部署到您设备的设置不适用,因为会话在 Anthropic 管理的 VM 上运行;在[自托管环境](/docs/zh-CN/self-hosted-environments)中,会话也会读取运行器镜像中的管理设置文件,根据 [Claude Code 如何组合管理来源](/docs/zh-CN/managed-settings#how-claude-code-combines-managed-sources) |304| 您组织的[服务器管理的设置](/docs/zh-CN/server-managed-settings) | 是 | 在会话启动时从 Anthropic 的服务器获取。请参阅 [Surface coverage](/docs/zh-CN/model-config#surface-coverage) 了解 `availableModels` 在云会话中如何强制执行。通过 MDM 或管理配置文件部署到您设备的设置不适用,因为会话在 Anthropic 管理的 VM 上运行;在[自托管环境](/docs/zh-CN/self-hosted-environments)中,会话也会读取运行器镜像中的管理设置文件,根据 [Claude Code 如何组合管理来源](/docs/zh-CN/managed-settings#how-claude-code-combines-managed-sources) |

305| 您的用户 `~/.claude/CLAUDE.md` | 否 | 位于您的机器上,不在存储库中 |305| 您的用户 `~/.claude/CLAUDE.md` | 否 | 位于您的机器上,不在存储库中 |

306| 您的用户 `~/.claude/skills/`、`~/.claude/agents/`、`~/.claude/commands/` | 否 | 位于您的机器上,不在存储库中。请改为将它们提交到存储库的 `.claude/` 目录。云会话会自动加载您在 claude.ai 上启用的技能 |306| 您的用户 `~/.claude/skills/`、`~/.claude/agents/`、`~/.claude/commands/` | 否 | 位于您的机器上,不在存储库中。请改为将它们提交到存储库的 `.claude/` 目录。云会话会自动加载您在 claude.ai 上启用的技能 |

307| 仅在您的用户设置中启用的 Plugins | 否 | 用户范围的 `enabledPlugins` 位于 `~/.claude/settings.json`。请改为在存储库的 `.claude/settings.json` 中声明它们,或在您的 claude.ai 账户中启用它们,以便 Claude Code 将它们作为[同步 Plugins](/docs/zh-CN/plugins-reference#synced-plugins)加载 |307| 仅在您的用户设置中启用的 Plugins | 否 | 用户范围的 `enabledPlugins` 位于您机器上的 `~/.claude/settings.json`。请改为为您的 claude.ai 账户启用它们,以便 Claude Code 将它们作为[同步 plugins](/docs/zh-CN/plugins-reference#synced-plugins)加载 |

308| 您使用 `claude mcp add` 在默认本地范围或用户范围添加的 MCP 服务器 | 否 | 这些写入您机器上的 `~/.claude.json`,而不是存储库。请使用 `claude mcp add --scope project` 添加服务器,它会写入存储库的 [`.mcp.json`](/docs/zh-CN/mcp#project-scope),并提交该文件。具有一个存储库的会话会加载它 |308| 您使用 `claude mcp add` 在默认本地范围或用户范围添加的 MCP 服务器 | 否 | 这些写入您机器上的 `~/.claude.json`,而不是存储库。请使用 `claude mcp add --scope project` 添加服务器,它会写入存储库的 [`.mcp.json`](/docs/zh-CN/mcp#project-scope),并提交该文件。具有一个存储库的会话会加载它 |

309| 您的存储库的 `.claude/settings.json` `env` 块中的传输变量,例如 `NODE_EXTRA_CA_CERTS` 和 [mTLS 客户端证书变量](/docs/zh-CN/network-config#mtls-authentication) | 否 | 托管环境管理会话的 API 连接,因此 Claude Code 忽略这些键,并在会话的调试日志中记录每个被忽略的键 |309| 您的存储库的 `.claude/settings.json` `env` 块中的传输变量,例如 `NODE_EXTRA_CA_CERTS` 和 [mTLS 客户端证书变量](/docs/zh-CN/network-config#mtls-authentication) | 否 | 托管环境管理会话的 API 连接,因此 Claude Code 忽略这些键,并在会话的调试日志中记录每个被忽略的键 |

310| Claude 调用的服务的 API 密钥和令牌 | 在 Pro 和 Max 计划中,作为 [API 凭证](#add-api-credentials) | 您在环境中添加一次密钥,代理会将其附加到您列出的主机的请求。代理[无法附加](#requests-that-never-get-the-credential)的密钥,或 Team 或 Enterprise 计划中的任何密钥,保留在环境变量中 |310| Claude 调用的服务的 API 密钥和令牌 | 在 Pro 和 Max 计划中,作为 [API 凭证](#add-api-credentials) | 您在环境中添加一次密钥,代理会将其附加到您列出的主机的请求。代理[无法附加](#requests-that-never-get-the-credential)的密钥,或 Team 或 Enterprise 计划中的任何密钥,保留在环境变量中 |

commands.md +3 −2

Details

69| `/chrome` | 配置 [Claude in Chrome](/docs/zh-CN/chrome) 设置 |69| `/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 或更高版本 |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 或更高版本 |

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

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 或更高版本 |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 或更高版本 |

74| `/compact [instructions]` | 通过总结到目前为止的对话来释放上下文。可选地为摘要传递焦点指令。请参阅[压缩如何处理规则、skill 和内存文件](/docs/zh-CN/context-window#what-survives-compaction) |74| `/compact [instructions]` | 通过总结到目前为止的对话来释放上下文。可选地为摘要传递焦点指令。请参阅[压缩如何处理规则、skill 和内存文件](/docs/zh-CN/context-window#what-survives-compaction) |

75| `/config [key=value ...]` | 打开[设置](/docs/zh-CN/settings)界面以调整主题、模型、[输出样式](/docs/zh-CN/output-styles)和其他首选项。传递一个或多个 `key=value` 对以直接设置设置而不打开界面,例如 `/config thinking=false`、`/config theme=dark` 或 `/config model=sonnet`。`key=value` 形式也适用于非交互模式 (`-p`) 和来自 Claude 移动应用的 [Remote Control](/docs/zh-CN/remote-control)。`key=value` 形式无法打开需要你在面板中确认的设置,例如 [`autoContinueAtUsageLimit`](/docs/zh-CN/interactive-mode#turn-automatic-continue-off),尽管它可以关闭一个。运行 `/config --help` 以列出它接受的键。别名:`/settings` |75| `/config [key=value ...]` | 打开[设置](/docs/zh-CN/settings)界面以调整主题、模型、[输出样式](/docs/zh-CN/output-styles)和其他首选项。传递一个或多个 `key=value` 对以直接设置设置而不打开界面,例如 `/config thinking=false`、`/config theme=dark` 或 `/config model=sonnet`。`key=value` 形式也适用于非交互模式 (`-p`) 和来自 Claude 移动应用的 [Remote Control](/docs/zh-CN/remote-control)。`key=value` 形式无法打开需要你在面板中确认的设置,例如 [`autoContinueAtUsageLimit`](/docs/zh-CN/interactive-mode#turn-automatic-continue-off),尽管它可以关闭一个。运行 `/config --help` 以列出它接受的键。别名:`/settings` |


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

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

87| `/doctor` | **[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`。`CLAUDE.md` 修剪检查需要 Claude Code v2.1.206 或更高版本。在 v2.1.205 之前,`/doctor` 打开一个只读诊断屏幕,按 `f` 将报告发送给 Claude |87| `/doctor` | **[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`。`CLAUDE.md` 修剪检查需要 Claude Code v2.1.206 或更高版本。在 v2.1.205 之前,`/doctor` 打开一个只读诊断屏幕,按 `f` 将报告发送给 Claude |

88| `/effort [level\|auto\|status]` | 设置[工作量级别](/docs/zh-CN/model-config#adjust-effort-level):`low` 到 `xhigh`、`max`、[`ultracode`](/docs/zh-CN/workflows#let-claude-decide-with-ultracode) 或 `auto`;`status` 打印它。`max` 和 `ultracode` 仅限会话;[`ultracode`](/docs/zh-CN/settings-reference#ultracode) 键持久化。在 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)上。在[工作量保持](/docs/zh-CN/model-config#adjust-effort-level)之外的 `-p` 中工作 |88| `/effort [level\|auto\|status]` | 设置[工作量级别](/docs/zh-CN/model-config#adjust-effort-level):`low` 到 `xhigh`、`max`、[`ultracode`](/docs/zh-CN/workflows#let-claude-decide-with-ultracode) 或 `auto`;`status` 打印它。`max` 和 `ultracode` 仅限会话;[`ultracode`](/docs/zh-CN/settings-reference#ultracode) 键持久化。在 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` |89| `/exit` | 退出 CLI。在附加的[后台会话](/docs/zh-CN/agent-view#attach-to-a-session)中,这会分离,会话继续运行。别名:`/quit` |

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


157| `/tui [default\|fullscreen]` | 设置终端 UI 渲染器并使用你的对话完整地重新启动到它。`fullscreen` 启用[无闪烁 alt-screen 渲染器](/docs/zh-CN/fullscreen)。没有参数时,打印活跃渲染器 |157| `/tui [default\|fullscreen]` | 设置终端 UI 渲染器并使用你的对话完整地重新启动到它。`fullscreen` 启用[无闪烁 alt-screen 渲染器](/docs/zh-CN/fullscreen)。没有参数时,打印活跃渲染器 |

158| `/ultraplan <prompt>` | 已移除。改用[计划模式](/docs/zh-CN/permission-modes#analyze-before-you-edit-with-plan-mode)。以前将规划任务发送到 [cloud session](/docs/zh-CN/claude-code-on-the-web) 以在你的浏览器中审查 |158| `/ultraplan <prompt>` | 已移除。改用[计划模式](/docs/zh-CN/permission-modes#analyze-before-you-edit-with-plan-mode)。以前将规划任务发送到 [cloud session](/docs/zh-CN/claude-code-on-the-web) 以在你的浏览器中审查 |

159| `/ultrareview [PR or branch]` | 在云沙箱中运行深度、多代理代码审查,使用 [ultrareview](/docs/zh-CN/ultrareview)。传递 PR 参考以审查该拉取请求,或分支名称以更改比较基础。首选调用现在是 `/code-review ultra`,`/ultrareview` 保留为别名。在 Pro 和 Max 上包括 3 次免费运行,然后需要[使用额度](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) |159| `/ultrareview [PR or branch]` | 在云沙箱中运行深度、多代理代码审查,使用 [ultrareview](/docs/zh-CN/ultrareview)。传递 PR 参考以审查该拉取请求,或分支名称以更改比较基础。首选调用现在是 `/code-review ultra`,`/ultrareview` 保留为别名。在 Pro 和 Max 上包括 3 次免费运行,然后需要[使用额度](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) |

160| `/update-config [request]` | **[Skill](/docs/zh-CN/skills#bundled-skills)。** 描述一个设置更改,例如允许一个命令、设置一个环境变量或添加一个 [hook](/docs/zh-CN/hooks),Claude 编辑匹配的 [`settings.json`](/docs/zh-CN/settings) 文件。对于主题和模型等选项,改用 `/config` |

160| `/upgrade` | 在浏览器中打开升级页面以切换到更高的计划层级。当浏览器无法打开时,命令显示登录提示而不打印 URL |161| `/upgrade` | 在浏览器中打开升级页面以切换到更高的计划层级。当浏览器无法打开时,命令显示登录提示而不打印 URL |

161| `/usage` | 显示会话成本、计划使用限制和活动统计。在 Pro、Max、Team 或 Enterprise 计划上,包括[计入你的计划限制的内容的细目](/docs/zh-CN/costs#plan-usage-breakdown)。`/cost` 和 `/stats` 是别名 |162| `/usage` | 显示会话成本、计划使用限制和活动统计。在 Pro、Max、Team 或 Enterprise 计划上,包括[计入你的计划限制的内容的细目](/docs/zh-CN/costs#plan-usage-breakdown)。`/cost` 和 `/stats` 是别名 |

162| `/usage-credits` | 配置使用额度,或在达到限制时从你的管理员请求它们。在浏览器中打开你的[使用额度计费设置](/docs/zh-CN/costs#add-usage-credits-to-your-subscription),除了没有计费访问权限的 Team 和 Enterprise 成员改为从 CLI 向其管理员发送使用额度请求,在对话框中确认请求通知其管理员后。当没有浏览器可以打开计费页面时,例如通过 SSH,命令改为打印 URL 以访问;这需要 Claude Code v2.1.205 或更高版本,早期版本在这种情况下没有显示任何内容。以前 `/extra-usage` |163| `/usage-credits` | 配置使用额度,或在达到限制时从你的管理员请求它们。在浏览器中打开你的[使用额度计费设置](/docs/zh-CN/costs#add-usage-credits-to-your-subscription),除了没有计费访问权限的 Team 和 Enterprise 成员改为从 CLI 向其管理员发送使用额度请求,在对话框中确认请求通知其管理员后。当没有浏览器可以打开计费页面时,例如通过 SSH,命令改为打印 URL 以访问;这需要 Claude Code v2.1.205 或更高版本,早期版本在这种情况下没有显示任何内容。以前 `/extra-usage` |

Details

93 📚 快速入门 · VS Code · 免费 1 小时课程93 📚 快速入门 · VS Code · 免费 1 小时课程

94 https://code.claude.com/docs/en/quickstart94 https://code.claude.com/docs/en/quickstart

95 https://code.claude.com/docs/en/vs-code95 https://code.claude.com/docs/en/vs-code

96 https://anthropic.skilljar.com/claude-code-in-action96 https://academy.claude.com/courses/claude-code-in-action

97 97 

98 问题 → 此线程。[所有者] 在处理。98 问题 → 此线程。[所有者] 在处理。

99 ```99 ```


196使用 Opus 修复打字错误会浪费计算。使用 Haiku 进行 12 文件重构196使用 Opus 修复打字错误会浪费计算。使用 Haiku 进行 12 文件重构

197是在要求重做。197是在要求重做。

198 198 

199Claude Code 在与 Claude 应用相同的模型上运行,您可以在会话中间切换。*Sonnet* 是日常功能工作、错误、测试和审查的主力默认值。在大型重构、复杂调试或任何高风险的事情上使用 *Opus*。对于快速问题、格式化和速度获胜的机械编辑,降低到 *Haiku*。*Fable* 是您最困难、最长时间运行任务的最强大模型;它不是默认值,所以使用 `/model fable` 选择它,请注意网络安全和生物学内容会自动回退到 Opus。Opus 5 运行自己的检查,所以标记的网络安全内容会切换模型,标记的生物学内容被拒绝。199Claude Code 在与 Claude 应用相同的模型上运行,您可以在会话中间切换。*Sonnet* 是日常功能工作、错误、测试和审查的主力默认值。在大型重构、复杂调试或任何高风险的事情上使用 *Opus*。对于快速问题、格式化和速度获胜的机械编辑,降低到 *Haiku*。*Fable* 是您最困难、最长时间运行任务的最强大模型;它不是默认值,所以使用 `/model fable` 选择它,请注意网络安全和生物学内容会自动回退到 Opus。Opus 5.5 和 Opus 5 运行自己的检查:标记的内容会切换到较早的 Opus,除了 Opus 5 上标记的生物学内容被拒绝。

200 200 

201*现在尝试:* 输入 `/model` 并选择 Sonnet(如果您还没有的话)。它是大多数任务的正确默认值。201*现在尝试:* 输入 `/model` 并选择 Sonnet(如果您还没有的话)。它是大多数任务的正确默认值。

202 202 


206| 模型 | 最适合 |206| 模型 | 最适合 |

207| ------ | ------------------------------------------------------------------------------------------------------------------ |207| ------ | ------------------------------------------------------------------------------------------------------------------ |

208| Fable | 最困难、最长时间运行的任务。仅选择加入:使用 `/model fable` 选择它。网络安全或生物学内容触发[自动模型回退到 Opus](/docs/zh-CN/model-config#automatic-model-fallback) |208| Fable | 最困难、最长时间运行的任务。仅选择加入:使用 `/model fable` 选择它。网络安全或生物学内容触发[自动模型回退到 Opus](/docs/zh-CN/model-config#automatic-model-fallback) |

209| Opus | 大规模重构、复杂调试、架构决策、高风险更改。在 Opus 5 上,网络安全或生物学内容触发[自动模型回退或拒绝](/docs/zh-CN/model-config#automatic-model-fallback) |209| Opus | 大规模重构、复杂调试、架构决策、高风险更改。在 Opus 5.5 和 Opus 5 上,网络安全或生物学内容触发[自动模型回退或拒绝](/docs/zh-CN/model-config#automatic-model-fallback) |

210| Sonnet | 日常功能工作、错误修复、测试、文档、代码审查。推荐默认值。 |210| Sonnet | 日常功能工作、错误修复、测试、文档、代码审查。推荐默认值。 |

211| Haiku | 快速问题、格式化、机械编辑、快速迭代 |211| Haiku | 快速问题、格式化、机械编辑、快速迭代 |

212 212 

Details

35 tokens: 280,35 tokens: 280,

36 color: '#6B6964',36 color: '#6B6964',

37 vis: 'hidden',37 vis: 'hidden',

38 desc: 'Working directory, platform, shell, OS version, and whether this is a git repo. Git branch, status, and recent commits load as a separate block at the very end of the system prompt.',38 desc: 'Working directory, platform, shell, OS version, and whether this is a git repo. Git branch, status, and recent commits load as a separate block.',

39 link: null39 link: null

40 }, {40 }, {

41 t: 0.08,41 t: 0.08,


1589* **在您输入任何内容之前**:CLAUDE.md、自动内存、MCP 工具名称和技能描述都加载到上下文中。[AGENTS.md 文件](/docs/zh-CN/memory#agents-md)也可以加载,无论是单独加载还是与 CLAUDE.md 一起加载。您自己的设置可能会在此处添加更多内容,例如[输出样式](/docs/zh-CN/output-styles)或来自 [`--append-system-prompt`](/docs/zh-CN/cli-reference) 的文本。1589* **在您输入任何内容之前**:CLAUDE.md、自动内存、MCP 工具名称和技能描述都加载到上下文中。[AGENTS.md 文件](/docs/zh-CN/memory#agents-md)也可以加载,无论是单独加载还是与 CLAUDE.md 一起加载。您自己的设置可能会在此处添加更多内容,例如[输出样式](/docs/zh-CN/output-styles)或来自 [`--append-system-prompt`](/docs/zh-CN/cli-reference) 的文本。

1590* **当 Claude 工作时**:每个文件读取都会添加到上下文中,[路径范围的规则](/docs/zh-CN/memory#path-specific-rules)会自动与匹配的文件一起加载,并且[PostToolUse hook](/docs/zh-CN/hooks-guide)在每次编辑后触发。1590* **当 Claude 工作时**:每个文件读取都会添加到上下文中,[路径范围的规则](/docs/zh-CN/memory#path-specific-rules)会自动与匹配的文件一起加载,并且[PostToolUse hook](/docs/zh-CN/hooks-guide)在每次编辑后触发。

1591* **后续提示**:[子代理](/docs/zh-CN/sub-agents)在其自己的单独上下文窗口中处理研究,因此大文件读取不会进入您的窗口。只有摘要和一个小的元数据预告片返回。1591* **后续提示**:[子代理](/docs/zh-CN/sub-agents)在其自己的单独上下文窗口中处理研究,因此大文件读取不会进入您的窗口。只有摘要和一个小的元数据预告片返回。

1592* **最后**:`/compact` 用结构化摘要替换对话。大多数启动内容会自动重新加载;下表显示了每个机制会发生什么。1592* **在演练结束时**:您运行 `/compact`,它用结构化摘要替换对话。大多数启动内容会自动重新加载;下表显示了每个机制会发生什么。

1593 1593 

1594<h2 id="what-survives-compaction">1594<h2 id="what-survives-compaction">

1595 压缩后保留的内容1595 压缩后保留的内容


1602| 系统提示和输出样式 | 两者仍然适用 |1602| 系统提示和输出样式 | 两者仍然适用 |

1603| 项目根目录 CLAUDE.md 和无范围规则 | 从磁盘重新注入 |1603| 项目根目录 CLAUDE.md 和无范围规则 | 从磁盘重新注入 |

1604| 自动内存 | 从磁盘重新注入 |1604| 自动内存 | 从磁盘重新注入 |

1605| [Git 状态快照](/docs/zh-CN/settings-reference#includegitinstructions) | Claude Code 从您的存储库读取一个新的 |

1605| Claude 在[计划模式](/docs/zh-CN/permission-modes#analyze-before-you-edit-with-plan-mode)中编写的计划 | 从磁盘重新注入 |1606| Claude 在[计划模式](/docs/zh-CN/permission-modes#analyze-before-you-edit-with-plan-mode)中编写的计划 | 从磁盘重新注入 |

1606| 带有 `paths:` frontmatter 的规则 | Claude Code 在读取匹配的文件时重新加载它们 |1607| 带有 `paths:` frontmatter 的规则 | Claude Code 在读取匹配的文件时重新加载它们 |

1607| 子目录中的嵌套 CLAUDE.md | Claude Code 在读取该子目录中的文件时重新加载它们 |1608| 子目录中的嵌套 CLAUDE.md | Claude Code 在读取该子目录中的文件时重新加载它们 |

costs.md +2 −2

Details

275 选择正确的模型275 选择正确的模型

276</h3>276</h3>

277 277 

278Sonnet 处理大多数编码任务效果很好,成本低于 Opus。为复杂的架构决策或多步推理保留 Opus。使用 `/model` 在会话中途切换模型,或在 `/config` 中设置默认值。对于简单的 subagent 任务,在您的 [subagent 配置](/docs/zh-CN/sub-agents#choose-a-model)中指定 `model: haiku`。278Sonnet 处理大多数编码任务效果很好,成本低于 Opus。为复杂的架构决策或多步推理保留 Opus。使用 `/model` 在会话中途切换模型,或在 `/config` 中设置默认值。对 Opus 的切换也适用于[继承您会话模型的 subagents](/docs/zh-CN/model-config#setting-your-model)。对于简单的 subagent 任务,在您的 [subagent 配置](/docs/zh-CN/sub-agents#choose-a-model)中指定 `model: haiku`。

279 279 

280<h3 id="reduce-mcp-server-overhead">280<h3 id="reduce-mcp-server-overhead">

281 减少 MCP server 开销281 减少 MCP server 开销


359 359 

360扩展思考默认启用,因为它显著改进了复杂规划和推理任务的性能。思考令牌作为输出令牌计费,默认预算可能是每个请求数万个令牌,具体取决于模型。360扩展思考默认启用,因为它显著改进了复杂规划和推理任务的性能。思考令牌作为输出令牌计费,默认预算可能是每个请求数万个令牌,具体取决于模型。

361 361 

362对于不需要深度推理的更简单任务,您可以通过在 `/effort` 中或在 `/model` 中降低 [effort level](/docs/zh-CN/model-config#adjust-effort-level)、或在 `/config` 中禁用思考来降低成本。您无法在 Fable 模型上关闭思考,它们始终使用扩展思考。362对于不需要深度推理的更简单任务,您可以通过在 `/effort` 中或在 `/model` 中降低 [effort level](/docs/zh-CN/model-config#adjust-effort-level)、或在 `/config` 中禁用思考来降低成本。您无法在 Opus 5.5 或 Fable 模型上关闭思考,它们始终使用扩展思考。

363 363 

364在具有[固定思考预算](/docs/zh-CN/model-config#adaptive-reasoning-and-fixed-thinking-budgets)的模型上,您也可以通过设置 `MAX_THINKING_TOKENS` [环境变量](/docs/zh-CN/env-vars)(例如 `MAX_THINKING_TOKENS=8000`)来降低预算。自适应推理模型忽略非零预算,因此请改用 effort levels。364在具有[固定思考预算](/docs/zh-CN/model-config#adaptive-reasoning-and-fixed-thinking-budgets)的模型上,您也可以通过设置 `MAX_THINKING_TOKENS` [环境变量](/docs/zh-CN/env-vars)(例如 `MAX_THINKING_TOKENS=8000`)来降低预算。自适应推理模型忽略非零预算,因此请改用 effort levels。

365 365 

desktop.md +2 −2

Details

508 508 

509你可以将插件限定到你的用户账户、特定项目或仅本地。如果你的组织集中管理插件,这些插件在桌面会话中的可用方式与在 CLI 中相同。509你可以将插件限定到你的用户账户、特定项目或仅本地。如果你的组织集中管理插件,这些插件在桌面会话中的可用方式与在 CLI 中相同。

510 510 

511插件浏览器在云会话中不可用,从桌面应用安装的插件不可用于云会话。要在云会话中使用插件,要么在存储库的 `.claude/settings.json` 中的 [`enabledPlugins`](/docs/zh-CN/settings-reference#enabledplugins) 下声明它,以便 Claude Code [在会话启动时安装它](/docs/zh-CN/cloud-environments#what-carries-over-from-your-setup),要么为你的 claude.ai 账户启用它,以便 Claude Code 将其作为[同步插件](/docs/zh-CN/plugins-reference#synced-plugins)加载。插件在 WSL 会话中不可用。有关完整的插件参考,包括创建你自己的插件,请参阅 [plugins](/docs/zh-CN/plugins)。511插件浏览器在云会话中不可用,从桌面应用安装的插件不可用于云会话。云会话也不会安装存储库的 `.claude/settings.json` 声明的插件,如[从你的设置中继承的内容](/docs/zh-CN/cloud-environments#what-carries-over-from-your-setup)所述。要在云会话中使用插件,为你的 claude.ai 账户启用它,以便 Claude Code 将其作为[同步插件](/docs/zh-CN/plugins-reference#synced-plugins)加载。插件在 WSL 会话中不可用。有关完整的插件参考,包括创建你自己的插件,请参阅 [plugins](/docs/zh-CN/plugins)。

512 512 

513<h3 id="configure-preview-servers">513<h3 id="configure-preview-servers">

514 配置预览服务器514 配置预览服务器


735 735 

736要在任何平台上为本地会话和开发服务器设置环境变量,在提示框中打开环境下拉菜单,将鼠标悬停在 **Local** 上,然后点击齿轮图标来打开本地环境编辑器。你在此处保存的变量在你的机器上加密存储,并适用于你启动的每个本地会话和预览服务器。你也可以将变量添加到你的 `~/.claude/settings.json` 文件中的 `env` 键,尽管这些仅到达 Claude 会话而不是开发服务器。有关支持的变量的完整列表,请参阅[环境变量](/docs/zh-CN/env-vars)。736要在任何平台上为本地会话和开发服务器设置环境变量,在提示框中打开环境下拉菜单,将鼠标悬停在 **Local** 上,然后点击齿轮图标来打开本地环境编辑器。你在此处保存的变量在你的机器上加密存储,并适用于你启动的每个本地会话和预览服务器。你也可以将变量添加到你的 `~/.claude/settings.json` 文件中的 `env` 键,尽管这些仅到达 Claude 会话而不是开发服务器。有关支持的变量的完整列表,请参阅[环境变量](/docs/zh-CN/env-vars)。

737 737 

738[Extended thinking](/docs/zh-CN/model-config#extended-thinking)默认启用,这改进了复杂推理任务的性能,但使用额外的令牌。在 Anthropic API 上,在本地环境编辑器中将 `MAX_THINKING_TOKENS` 设置为 `0` 来关闭思考;这对 Fable 模型没有影响,Fable 模型始终使用 extended thinking。在 Anthropic API 上关闭思考后,Claude Code 发送努力级别 `high` 而不是更高级别给它知道的[不接受该组合](/docs/zh-CN/errors#effort-isnt-available-with-thinking-turned-off)的模型,例如 Opus 5。738[Extended thinking](/docs/zh-CN/model-config#extended-thinking)默认启用,这改进了复杂推理任务的性能,但使用额外的令牌。在 Anthropic API 上,在本地环境编辑器中将 `MAX_THINKING_TOKENS` 设置为 `0` 来关闭思考;这对 Opus 5.5 或 Fable 模型没有影响,它们始终使用 extended thinking。在 Anthropic API 上关闭思考后,Claude Code 发送努力级别 `high` 而不是更高级别给它知道的[不接受该组合](/docs/zh-CN/errors#effort-isnt-available-with-thinking-turned-off)的模型,例如 Opus 5。

739 739 

740在具有[自适应推理](/docs/zh-CN/model-config#adjust-effort-level)的模型上,除 `0` 外的 `MAX_THINKING_TOKENS` 值被忽略,因为自适应推理控制思考深度。在 Opus 4.6 和 Sonnet 4.6 上,设置 `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` 为 `1` 来使用固定思考预算;Fable 模型、Sonnet 5 和 Opus 4.7 及更高版本始终使用自适应推理,没有固定预算模式。740在具有[自适应推理](/docs/zh-CN/model-config#adjust-effort-level)的模型上,除 `0` 外的 `MAX_THINKING_TOKENS` 值被忽略,因为自适应推理控制思考深度。在 Opus 4.6 和 Sonnet 4.6 上,设置 `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` 为 `1` 来使用固定思考预算;Fable 模型、Sonnet 5 和 Opus 4.7 及更高版本始终使用自适应推理,没有固定预算模式。

741 741 

Details

16 要求16 要求

17</h2>17</h2>

18 18 

19* Ubuntu 22.04 或更高版本,或 Debian 12 或更高版本19* 基于 Debian 的发行版:Ubuntu 22.04 或更高版本,或 Debian 12 或更高版本

20* x86\_64 或 arm6420* x86\_64 或 arm64

21 21 

22其他满足这些要求的基于 Debian 的发行版可能可以工作,但未经过官方测试。在非基于 Debian 的发行版上,例如 Fedora 或 Arch,请改为运行 [CLI](/docs/zh-CN/setup#system-requirements)。如果您在 WSL 2 上使用 Windows,请安装 Windows 桌面应用程序并在您的发行版内运行会话;请参阅 [Claude Code Desktop in WSL](/docs/zh-CN/desktop-wsl)。22其他满足这些要求的基于 Debian 的发行版可能可以工作,但未经过官方测试。在非基于 Debian 的发行版上,例如 Fedora 或 Arch,请改为运行 [CLI](/docs/zh-CN/setup#system-requirements)。如果您在 WSL 2 上使用 Windows,请安装 Windows 桌面应用程序并在您的发行版内运行会话;请参阅 [Claude Code Desktop in WSL](/docs/zh-CN/desktop-wsl)。

Details

42/plugin install github@claude-plugins-official42/plugin install github@claude-plugins-official

43```43```

44 44 

45`/plugin` 在终端 CLI 中打开一个交互式面板。如果 Claude 回复说 `/plugin` 在此环境中不可用,请使用 Claude 桌面应用中的[插件浏览器](/docs/zh-CN/desktop#install-plugins),或在 `.claude/settings.json` 中的 [`enabledPlugins`](/docs/zh-CN/settings-reference#enabledplugins) 下声明插件以用于云会话。45`/plugin` 在终端 CLI 中打开一个交互式面板。如果 Claude 回复说 `/plugin` 在此环境中不可用,请使用另一种方式安装插件:

46 

47* **Claude 桌面应用**:使用[插件浏览器](/docs/zh-CN/desktop#install-plugins)。

48* **VS Code 扩展**:从[**管理插件**对话框](/docs/zh-CN/vs-code#manage-plugins)安装。

49* **云会话**:为您的 claude.ai 账户启用插件,以便 Claude Code 将其作为[同步插件](/docs/zh-CN/plugins-reference#synced-plugins)加载。

46 50 

47如果安装失败,请匹配 Claude Code 报告的消息:51如果安装失败,请匹配 Claude Code 报告的消息:

48 52 


360Claude Code 在其本地市场目录副本中查找插件。您命名插件的方式控制 Claude Code 是否首先刷新该副本:364Claude Code 在其本地市场目录副本中查找插件。您命名插件的方式控制 Claude Code 是否首先刷新该副本:

361 365 

362* **带有市场名称**:当您安装 `plugin-name@marketplace-name` 时,在会话中或使用 `claude plugin install`,Claude Code 在查找前刷新该市场。即使您关闭了市场的[自动更新](#configure-auto-updates)或设置了 `DISABLE_AUTOUPDATER`,Claude Code 也会运行刷新。在 v2.1.232 之前,Claude Code 在查找前不刷新市场。Claude Code 在以下情况下跳过此刷新:366* **带有市场名称**:当您安装 `plugin-name@marketplace-name` 时,在会话中或使用 `claude plugin install`,Claude Code 在查找前刷新该市场。即使您关闭了市场的[自动更新](#configure-auto-updates)或设置了 `DISABLE_AUTOUPDATER`,Claude Code 也会运行刷新。在 v2.1.232 之前,Claude Code 在查找前不刷新市场。Claude Code 在以下情况下跳过此刷新:

363 * 市场未[从 GitHub、其他 Git 主机或远程 URL 添加](#add-marketplaces)。367 * 市场未[从 GitHub、其他 Git 主机、远程 URL](#add-marketplaces)或 [claude.ai](#add-from-claude-ai) 添加。

364 * [种子目录](/docs/zh-CN/plugin-marketplaces#pre-populate-plugins-for-containers)提供市场。368 * [种子目录](/docs/zh-CN/plugin-marketplaces#pre-populate-plugins-for-containers)提供市场。

365 * Claude Code 在过去 30 秒内刷新了市场。369 * Claude Code 在过去 30 秒内刷新了市场。

366 * 您设置了 [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/zh-CN/env-vars)。370 * 您设置了 [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/zh-CN/env-vars)。


395 399 

396该源采用与 [`/plugin marketplace add`](#add-marketplaces) 相同的形式,例如 GitHub `owner/repo`、git URL 或本地路径,除了它不能包含空格。给出插件名称时不带 `@marketplace` 后缀。400该源采用与 [`/plugin marketplace add`](#add-marketplaces) 相同的形式,例如 GitHub `owner/repo`、git URL 或本地路径,除了它不能包含空格。给出插件名称时不带 `@marketplace` 后缀。

397 401 

398如果您尚未添加该市场,Claude Code 会显示它解析的源并要求您在添加前确认。拒绝会取消安装并且不添加任何内容。一旦添加了市场,插件的详情会打开,您可以选择[安装范围](/docs/zh-CN/settings#where-settings-live)。402Claude Code 显示它解析的源并要求您在添加市场前确认。拒绝会取消安装并且不添加任何内容。一旦添加了市场,插件的详情会打开,您可以选择[安装范围](/docs/zh-CN/settings#where-settings-live)。如果源与您已添加的市场匹配,Claude Code 会跳过确认并在该市场中打开插件的详情。

399 403 

400<h2 id="manage-installed-plugins">404<h2 id="manage-installed-plugins">

401 管理已安装的插件405 管理已安装的插件

env-vars.md +250 −238

Details

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#requirements) 被禁用,与其在 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 或更高版本。[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) |

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` | 逗号分隔的固定 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) |

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` | 逗号分隔的固定 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) |

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` | 逗号分隔的固定 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) |

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` | 逗号分隔的固定 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) |

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) |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) |

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 身份验证的 Bearer 令牌,例如 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` | [工作负载身份联合](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` | [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) |

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) 之外的提供商上处于活跃状态。[流监视程序](/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 命令的默认超时时间(默认值:120000,或 2 分钟) |

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 命令设置的最大超时时间(默认值:600000,或 10 分钟)。有效的上限是此值和 `BASH_DEFAULT_TIMEOUT_MS` 中的较大者 |

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` 以从系统提示的开头省略 [attribution 块](/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`。在 [系统提示 attribution 块](/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 在 [自动模式](/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` |

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_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 或更高版本 |226| `CLAUDE_CODE_AUTO_MODE_SERVER` | 控制 Claude Code 是否要求服务器 [审查自动模式操作](/docs/zh-CN/permission-modes#server-side-classifier-review)。未设置时,Claude Code 在 Amazon Bedrock、Google Cloud's Agent Platform、Microsoft Foundry 和 Claude Platform on AWS 上要求服务器,以及当您将 `ANTHROPIC_BASE_URL` 指向 LLM 网关或代理时。设置为 `0` 以改用 Claude Code 自己的分类器请求。在直接连接到 Anthropic API 时不读取。需要 Claude Code v2.1.271 或更高版本;默认要求服务器需要 v2.1.278 或更高版本 |

227| `CLAUDE_CODE_BASH_EDIT_DIFF` | 设置为 `0` 以关闭 [Bash 命令更改的文件的 diff](/docs/zh-CN/hooks#bash),或 `1` 以在每个权限模式中记录它。优先于 [`bashEditDiffEnabled`](/docs/zh-CN/settings-reference#basheditdiffenabled) 设置。需要 Claude Code v2.1.269 或更高版本 |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_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` |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` 以保持运行状态 |

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` |

229| `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) |

230| `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` |

231| `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 或更高版本 |

232| `CLAUDE_CODE_CLIENT_CERT` | mTLS 身份验证的客户端证书文件的路径 |234| `CLAUDE_CODE_CLIENT_CERT` | mTLS 身份验证的客户端证书文件路径 |

233| `CLAUDE_CODE_CLIENT_KEY` | mTLS 身份验证的客户端私钥文件的路径 |235| `CLAUDE_CODE_CLIENT_KEY` | mTLS 身份验证的客户端私钥文件路径 |

234| `CLAUDE_CODE_CLIENT_KEY_PASSPHRASE` | 加密 CLAUDE\_CODE\_CLIENT\_KEY 的密码(可选) |236| `CLAUDE_CODE_CLIENT_KEY_PASSPHRASE` | 加密 CLAUDE\_CODE\_CLIENT\_KEY 的密码(可选) |

235| `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` |

236| `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` |

237| `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` 以减少噪音 |

238| `CLAUDE_CODE_DISABLE_1M_CONTEXT` | 设置为 `1` 以禁用 [1M 上下文窗口](/docs/zh-CN/model-config#extended-context) 支持。设置后,1M 模型变体在模型选择器中不可用,Claude Code 将具有本机 1M 窗口的模型上的会话保持在 200K 窗口,例如 [Sonnet 5](/docs/zh-CN/model-config#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 窗口的模型上的会话保持在 200K 窗口,例如 [Sonnet 5](/docs/zh-CN/model-config#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) |

239| `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 及更高版本无效,它们始终使用自适应推理 |

240| `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 或更高版本 |

241| `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` 标志被接受但无效,因此传递它的现有脚本继续工作而不出错 |

242| `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) 设置 |

243| `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) 打开的后台会话,它们始终使用全屏呈现 |

244| `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) 密钥也会关闭它 |

245| `CLAUDE_CODE_DISABLE_ATTACHMENTS` | 设置为 `1` 以禁用附件处理。带有 `@` 语法的文件提及作为纯文本发送,而不是扩展为文件内容 |247| `CLAUDE_CODE_DISABLE_ATTACHMENTS` | 设置为 `1` 以禁用附件处理。带有 `@` 语法的文件提及作为纯文本发送,而不是扩展为文件内容 |

246| `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 不创建或加载自动内存文件 |

247| `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 快捷键 |

248| `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 或更高版本 |

249| `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 或更高版本 |

250| `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 或更高版本 |

251| `CLAUDE_CODE_DISABLE_BG_SHELL_PRESSURE_REAP` | 设置为 `1` 以停止 Claude Code 在操作系统报告内存压力时终止 [后台 shell 命令](/docs/zh-CN/interactive-mode#background-bash-commands)。默认情况下,在 macOS 和 Linux 上,Claude Code 在会话空闲 30 分钟且没有转或子代理运行后,在内存压力信号上终止在主会话中启动的后台 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 或更高版本 |

252| `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) 设置 |

253| `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 或更高版本 |

254| `CLAUDE_CODE_DISABLE_CLAUDE_MDS` | 设置为 `1` 以防止将任何 CLAUDE.md 内存文件加载到上下文中,包括用户、项目和自动内存文件 |256| `CLAUDE_CODE_DISABLE_CLAUDE_MDS` | 设置为 `1` 以防止将任何 CLAUDE.md 内存文件加载到上下文中,包括用户、项目和自动内存文件 |

255| `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 工具变为不可用,任何已计划的任务停止触发,包括已在运行的任务 |

256| `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) 涵盖覆盖应用的位置 |258| `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) 涵盖覆盖应用的位置 |

257| `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 或更高版本 |259| `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 或更高版本 |

258| `CLAUDE_CODE_DISABLE_FAST_MODE` | 设置为 `1` 以禁用 [快速模式](/docs/zh-CN/fast-mode) |260| `CLAUDE_CODE_DISABLE_FAST_MODE` | 设置为 `1` 以禁用 [快速模式](/docs/zh-CN/fast-mode) |

259| `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) |261| `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) |

260| `CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING` | 设置为 `1` 以禁用文件 [checkpointing](/docs/zh-CN/checkpointing)。`/rewind` 命令将无法恢复代码更改。覆盖 [`fileCheckpointingEnabled`](/docs/zh-CN/settings-reference#filecheckpointingenabled) 设置 |262| `CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING` | 设置为 `1` 以禁用文件 [checkpointing](/docs/zh-CN/checkpointing)。`/rewind` 命令将无法恢复代码更改。覆盖 [`fileCheckpointingEnabled`](/docs/zh-CN/settings-reference#filecheckpointingenabled) 设置 |

261| `CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS` | 设置为 `1` 以从 Claude 的系统提示中删除内置提交和 PR 工作流指令以及 git 状态快照。在使用您自己的 git 工作流 skills 时很有用。当设置时优先于 [`includeGitInstructions`](/docs/zh-CN/settings-reference#includegitinstructions) 设置 |263| `CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS` | 设置为 `1` 以从 Claude 的系统提示中删除内置提交和 PR 工作流说明以及 git 状态快照。在使用您自己的 git 工作流 skills 时很有用。当设置时优先于 [`includeGitInstructions`](/docs/zh-CN/settings-reference#includegitinstructions) 设置 |

262| `CLAUDE_CODE_DISABLE_LEGACY_MODEL_REMAP` | 设置为 `1` 以防止在 Anthropic API 上自动重新映射 Opus 4.0 和 4.1 到当前 Opus 版本。在您想有意固定较旧模型时使用。重新映射不在 Amazon Bedrock、Google Cloud's Agent Platform 或 Microsoft Foundry 上运行 |264| `CLAUDE_CODE_DISABLE_LEGACY_MODEL_REMAP` | 设置为 `1` 以防止在 Anthropic API 上自动重新映射 Opus 4.0 和 4.1 到当前 Opus 版本。在您想有意固定较旧模型时使用。重新映射不在 Amazon Bedrock、Google Cloud's Agent Platform 或 Microsoft Foundry 上运行 |

263| `CLAUDE_CODE_DISABLE_MOUSE` | 设置为 `1` 以在 [全屏呈现](/docs/zh-CN/fullscreen) 中禁用鼠标跟踪。使用 `PgUp` 和 `PgDn` 的键盘滚动仍然有效。使用此选项保持您终端的本机选择复制行为 |265| `CLAUDE_CODE_DISABLE_MOUSE` | 设置为 `1` 以在 [全屏呈现](/docs/zh-CN/fullscreen) 中禁用鼠标跟踪。使用 `PgUp` 和 `PgDn` 的键盘滚动仍然有效。使用此选项保持您的终端的本机选择复制行为 |

264| `CLAUDE_CODE_DISABLE_MOUSE_CLICKS` | 设置为 `1` 以在 [全屏呈现](/docs/zh-CN/fullscreen) 中禁用点击、拖动和悬停处理,同时保持鼠标滚轮滚动。在您想要滚轮滚动在 Claude Code 内工作但不想要点击定位光标、展开工具输出或打开链接时使用此选项。当两者都设置时,`CLAUDE_CODE_DISABLE_MOUSE` 优先。需要 Claude Code v2.1.195 或更高版本 |266| `CLAUDE_CODE_DISABLE_MOUSE_CLICKS` | 设置为 `1` 以在 [全屏呈现](/docs/zh-CN/fullscreen) 中禁用点击、拖动和悬停处理,同时保持鼠标滚轮滚动。当您希望滚轮滚动在 Claude Code 内工作但不希望点击定位光标、展开工具输出或打开链接时使用。当两者都设置时,`CLAUDE_CODE_DISABLE_MOUSE` 优先。需要 Claude Code v2.1.195 或更高版本 |

265| `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 或更高版本 |267| `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 或更高版本 |

266| `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/plugin-marketplaces#when-claude-code-re-runs-the-command),这是本地命令而不是网络流量,因为它们可以触发依赖项安装。**将其设置为 `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),它有自己的选择加入 |268| `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/plugin-marketplaces#when-claude-code-re-runs-the-command),这是本地命令而不是网络流量,因为它们可以触发依赖项安装。**将其设置为 `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),它有自己的选择加入 |

267| `CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK` | 设置为 `1` 以禁用流式请求在中途失败时的非流式回退。流式错误传播到重试层。当代理或网关导致回退产生重复工具执行时很有用 |269| `CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK` | 设置为 `1` 以禁用流式请求在中途失败时的非流式回退。流式错误传播到重试层。当代理或网关导致回退产生重复工具执行时很有用 |

268| `CLAUDE_CODE_DISABLE_NOTIFICATION_PRESENCE_CHECK` | 设置为 `1` 以在您在终端中输入或聚焦时发送 `PushNotification` 工具的桌面通知。默认情况下,当工具检测到最近的键盘活动或终端焦点时,工具跳过桌面通知和 [移动推送](/docs/zh-CN/remote-control#mobile-push-notifications)。此变量仅禁用该本地检查,因此服务器在检测到您处于活跃状态时仍可以抑制移动推送。需要 Claude Code v2.1.193 或更高版本 |270| `CLAUDE_CODE_DISABLE_NOTIFICATION_PRESENCE_CHECK` | 设置为 `1` 以在您在终端中输入或专注时发送 `PushNotification` 工具的桌面通知。默认情况下,当工具检测到最近的键盘活动或终端焦点时,工具会跳过桌面通知和 [移动推送](/docs/zh-CN/remote-control#mobile-push-notifications)。此变量仅禁用该本地检查,因此服务器仍可在检测到您处于活跃状态时抑制移动推送。需要 Claude Code v2.1.193 或更高版本 |

269| `CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL` | 设置为 `1` 以禁用官方插件市场的自动注册。Claude Code 在即将注册市场时读取变量,通常在机器的第一次交互启动期间。如果变量在该点设置,Claude Code 永久跳过注册。稍后取消设置变量不会撤销跳过。随时运行 `claude plugin marketplace add anthropics/claude-plugins-official` 以注册市场 |271| `CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL` | 设置为 `1` 以禁用官方插件市场的自动注册。Claude Code 在即将注册市场时读取变量,通常在机器的第一次交互启动期间。如果变量在该点设置,Claude Code 永久跳过注册。稍后取消设置变量不会撤销跳过。随时运行 `claude plugin marketplace add anthropics/claude-plugins-official` 以注册市场 |

270| `CLAUDE_CODE_DISABLE_PERMISSION_PROMPT_NOTIFY_HOOKS` | 设置为 `1` 以停止 Claude Code 在 Claude Code 将它们发送到 Agent SDK 的 `canUseTool` 回调的会话中运行您的 [`Notification` 钩子用于未回答的权限请求](/docs/zh-CN/hooks#notification),这是 Claude Desktop 和 VS Code 扩展如何托管 Claude Code 的方式。在终端会话中无效。需要 Claude Code v2.1.233 或更高版本 |272| `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 或更高版本 |

271| `CLAUDE_CODE_DISABLE_POLICY_SKILLS` | 设置为 `1` 以跳过从系统范围的托管 skills 目录加载 skills。对于不应加载操作员配置的 skills 的容器或 CI 会话很有用 |273| `CLAUDE_CODE_DISABLE_POLICY_SKILLS` | 设置为 `1` 以跳过从系统范围的托管 skills 目录加载 skills。对于不应加载操作员配置的 skills 的容器或 CI 会话很有用 |

272| `CLAUDE_CODE_DISABLE_TERMINAL_TITLE` | 设置为 `1` 以禁用基于对话上下文的自动终端标题更新。在 Agent SDK 和 `claude -p` 会话中,这也跳过生成会话标题的后台小/快速模型请求 |274| `CLAUDE_CODE_DISABLE_TERMINAL_TITLE` | 设置为 `1` 以禁用基于对话上下文的自动终端标题更新。这也跳过生成 [会话标题](/docs/zh-CN/sessions#name-your-sessions) 的后台小/快速模型请求 |

273| `CLAUDE_CODE_DISABLE_THINKING` | 设置为 `1` 以从 API 请求中完全省略 `thinking` 参数。这是代理和网关拒绝该参数的兼容性选项。在默认思考的模型上,省略参数意味着模型仍可能思考。要在 Anthropic API 上明确禁用 [扩展思考](https://platform.claude.com/docs/en/build-with-claude/extended-thinking),请改用 `MAX_THINKING_TOKENS=0`。两个变量都不会在 Fable 模型上关闭思考,Fable 模型无法关闭思考。在 [第三方提供商](/docs/zh-CN/third-party-integrations) 上,`MAX_THINKING_TOKENS=0` 同样省略参数,因此两个变量在那里的行为相同 |275| `CLAUDE_CODE_DISABLE_THINKING` | 设置为 `1` 以从 API 请求中完全省略 `thinking` 参数。这是代理和网关拒绝该参数的兼容性选项。在默认思考的模型上,省略参数意味着模型仍可能思考。要在 Anthropic API 上明确禁用 [扩展思考](https://platform.claude.com/docs/en/build-with-claude/extended-thinking),请改用 `MAX_THINKING_TOKENS=0`。两个变量都不会在 Fable 模型上关闭思考,Fable 模型无法关闭思考。在 [第三方提供商](/docs/zh-CN/third-party-integrations) 上,`MAX_THINKING_TOKENS=0` 同样省略参数,因此两个变量在那里的行为相同 |

274| `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 或更高版本 |276| `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 或更高版本 |

275| `CLAUDE_CODE_DISABLE_VIRTUAL_SCROLL` | 设置为 `1` 以在 [全屏呈现](/docs/zh-CN/fullscreen) 中禁用虚拟滚动并呈现成绩单中的每条消息。如果全屏模式中的滚动显示应显示消息的空白区域,请使用此选项 |277| `CLAUDE_CODE_DISABLE_VIRTUAL_SCROLL` | 设置为 `1` 以在 [全屏呈现](/docs/zh-CN/fullscreen) 中禁用虚拟滚动并呈现转录中的每条消息。如果全屏模式中的滚动显示应显示消息的空白区域,请使用此选项 |

278| `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 或更高版本 |

276| `CLAUDE_CODE_DISABLE_WORKFLOWS` | 设置为 `1` 以禁用 [工作流](/docs/zh-CN/workflows#turn-workflows-off)。等同于 [`disableWorkflows`](/docs/zh-CN/settings-reference#disableworkflows) 设置 |279| `CLAUDE_CODE_DISABLE_WORKFLOWS` | 设置为 `1` 以禁用 [工作流](/docs/zh-CN/workflows#turn-workflows-off)。等同于 [`disableWorkflows`](/docs/zh-CN/settings-reference#disableworkflows) 设置 |

277| `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) |280| `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) |

278| `CLAUDE_CODE_ENABLE_APPEND_SUBAGENT_PROMPT` | 设置为 `1` 以启用将额外文本附加到除 [forked 子代理](/docs/zh-CN/sub-agents#fork-the-current-conversation) 之外的每个 [子代理](/docs/zh-CN/sub-agents) 的系统提示末尾。[`--append-subagent-system-prompt`](/docs/zh-CN/cli-reference#cli-flags) 和 [`--append-subagent-system-prompt-file`](/docs/zh-CN/cli-reference#cli-flags) 标志提供附加的文本并自动设置此变量,因此您不需要自己设置它。需要 Claude Code v2.1.205 或更高版本 |281| `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) |

279| `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) 可用所必需的 |

280| `CLAUDE_CODE_ENABLE_AWAY_SUMMARY` | 覆盖 [会话回顾](/docs/zh-CN/interactive-mode#session-recap) 可用性。设置为 `0` 以强制关闭回顾,无论 `/config` 切换如何。设置为 `1` 以在 [`awaySummaryEnabled`](/docs/zh-CN/settings-reference#awaysummaryenabled) 为 `false` 时强制打开回顾。优先于设置和 `/config` 切换 |282| `CLAUDE_CODE_ENABLE_AWAY_SUMMARY` | 覆盖 [会话回顾](/docs/zh-CN/interactive-mode#session-recap) 可用性。设置为 `0` 以强制关闭回顾,无论 `/config` 切换如何。设置为 `1` 以在 [`awaySummaryEnabled`](/docs/zh-CN/settings-reference#awaysummaryenabled) 为 `false` 时强制打开回顾。优先于设置和 `/config` 切换 |

281| `CLAUDE_CODE_ENABLE_BACKGROUND_PLUGIN_REFRESH` | 设置为 `1` 以在后台安装完成后在 [非交互模式](/docs/zh-CN/headless) 中的转边界处刷新插件状态。默认关闭,因为刷新在会话中期更改系统提示,这会使该转的 [提示缓存](/docs/zh-CN/prompt-caching) 失效 |283| `CLAUDE_CODE_ENABLE_BACKGROUND_PLUGIN_REFRESH` | 设置为 `1` 以在后台安装完成后在转弯边界处刷新 [非交互模式](/docs/zh-CN/headless) 中的插件状态。默认关闭,因为刷新在会话中期更改系统提示,这会使该转弯的 [提示缓存](/docs/zh-CN/prompt-caching) 失效 |

282| `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` 和组织产品反馈政策优先 |284| `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` 和组织产品反馈政策优先 |

283| `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) 连接上默认关闭 |285| `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) 连接上默认关闭 |

284| `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) |286| `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) |

285| `CLAUDE_CODE_ENABLE_OPUS_4_7_FAST_MODE` | 在 v2.1.142 中删除,当 [快速模式](/docs/zh-CN/fast-mode) 默认从 Opus 4.6 移到 Opus 4.7 时 |287| `CLAUDE_CODE_ENABLE_OPUS_4_7_FAST_MODE` | 在 v2.1.142 中删除,当 [快速模式](/docs/zh-CN/fast-mode) 默认从 Opus 4.6 移到 Opus 4.7 时 |

286| `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) |288| `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) |

287| `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) |289| `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) |

288| `CLAUDE_CODE_ENABLE_TELEMETRY` | 设置为 `1` 以启用指标和日志记录的 OpenTelemetry 数据收集。在配置 OTel 导出器之前需要。参见 [监控](/docs/zh-CN/monitoring-usage) |290| `CLAUDE_CODE_ENABLE_TELEMETRY` | 设置为 `1` 以启用指标和日志记录的 OpenTelemetry 数据收集。在配置 OTel 导出器之前需要。请参阅 [监控](/docs/zh-CN/monitoring-usage) |

289| `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 或更高版本 |291| `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 或更高版本 |

290| `CLAUDE_CODE_EXIT_AFTER_STOP_DELAY` | 查询循环变为空闲后等待多少毫秒后自动退出。对于使用 SDK 模式的自动化工作流和脚本很有用 |292| `CLAUDE_CODE_EXIT_AFTER_STOP_DELAY` | 查询循环变为空闲后自动退出前等待的时间(以毫秒为单位)。对自动化工作流和使用 SDK 模式的脚本很有用 |

291| `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS` | 设置为 `1` 以启用 [代理团队](/docs/zh-CN/agent-teams)。代理团队是实验性的,默认禁用 |293| `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS` | 设置为 `1` 以启用 [代理团队](/docs/zh-CN/agent-teams)。代理团队是实验性的,默认禁用 |

292| `CLAUDE_CODE_EXTRA_BODY` | JSON 对象以合并到每个 API 请求正文的顶级。对于传递 Claude Code 不直接公开的提供商特定参数很有用。在您的 shell 中导出的值也适用于您使用 `claude agents` 或 `--bg` 分派的 [后台会话](/docs/zh-CN/agent-view)。在 v2.1.206 之前,后台会话忽略了 shell 导出的值并使用了后台主管进程继承的任何副本 |294| `CLAUDE_CODE_EXTRA_BODY` | JSON 对象以合并到每个 API 请求正文的顶级。对于传递 Claude Code 不直接公开的提供商特定参数很有用。在您的 shell 中导出的值也适用于您使用 `claude agents` 或 `--bg` 分派的 [后台会话](/docs/zh-CN/agent-view)。在 v2.1.206 之前,后台会话忽略了 shell 导出的值,并使用后台主管进程继承的任何副本 |

293| `CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENS` | 覆盖文件读取的默认令牌限制。在您需要完整读取较大文件时很有用 |295| `CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENS` | 覆盖文件读取的默认令牌限制。当您需要完整读取较大文件时很有用 |

294| `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 无效,其中它覆盖的嵌套会话检测被删除 |296| `CLAUDE_CODE_FORCE_SESSION_PERSISTENCE` | 设置为 `1` 以强制转录持久性、提示历史和 `claude agents` 注册,即使此 `claude` 是从另一个 Claude Code 会话内启动的。当继承的 `CLAUDE_CODE_CHILD_SESSION` 值(例如来自 `screen` 会话或由 Claude Code 的 Bash 工具首先启动的后台启动器)导致真正的顶级会话被误分类为嵌套时使用。从 v2.1.178 开始,Claude Code 自动检测 tmux 情况并忽略继承的标记,因此 tmux 不再需要此变量。也在 v2.1.169 及更早版本上受尊重;对 v2.1.170 和 v2.1.171 无效,其中它覆盖的嵌套会话检测被删除 |

295| `CLAUDE_CODE_FORCE_STRIKETHROUGH` | 设置为 `1` 以在您的终端支持但未自动检测时强制 `~~text~~` 的删除线呈现,例如通过 SSH 而不转发 `TERM_PROGRAM`。没有这个,未检测到的终端显示文字 `~~` 标记而不是将文本呈现为删除线。需要 Claude Code v2.1.186 或更高版本 |297| `CLAUDE_CODE_FORCE_STRIKETHROUGH` | 设置为 `1` 以在您的终端支持但未自动检测时强制 `~~text~~` 的删除线呈现,例如通过 SSH 而不转发 `TERM_PROGRAM`。没有这个,未检测到的终端显示文字 `~~` 标记而不是呈现文本为删除线。需要 Claude Code v2.1.186 或更高版本 |

296| `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),这不改变渲染器 |298| `CLAUDE_CODE_FORCE_SYNC_OUTPUT` | 设置为 `1` 以在您的终端支持但未自动检测时强制启用 DEC 私有模式 2026 [同步输出](https://gist.github.com/christianparpart/d8a62cc1ab659194337d73e399004036)。对于实现 BSU/ESU 但不回复功能探针的模拟器(如 Emacs `eat`)很有用。在 tmux 下无效。与 [全屏呈现](/docs/zh-CN/fullscreen) 的 `CLAUDE_CODE_NO_FLICKER` 不同,这不会改变渲染器 |

297| `CLAUDE_CODE_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 模式 |299| `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 模式 |

298| `CLAUDE_CODE_FORWARD_SUBAGENT_TEXT` | 设置为 `1` 以在 `claude -p --output-format stream-json` 输出中发出 [子代理](/docs/zh-CN/sub-agents) 文本和思考块,与 [`--forward-subagent-text`](/docs/zh-CN/cli-reference#cli-flags) 标志相同的行为。当工具调用 `claude` 的工具无法自己传递标志时使用变量。与标志不同,标志在非交互模式下使用 stream-json 输出时以错误退出,变量在那里被忽略,以便嵌套调用在设置进程范围时继续工作。需要 Claude Code v2.1.211 或更高版本 |300| `CLAUDE_CODE_FORWARD_SUBAGENT_TEXT` | 设置为 `1` 以在 `claude -p --output-format stream-json` 输出中发出 [子代理](/docs/zh-CN/sub-agents) 文本和思考块,与 [`--forward-subagent-text`](/docs/zh-CN/cli-reference#cli-flags) 标志相同的行为。当启动 `claude` 的工具无法自己传递标志时使用变量。与标志不同,后者在非交互模式下使用 stream-json 输出时以错误退出,变量在那里被忽略,以便嵌套调用在设置进程范围时继续工作。需要 Claude Code v2.1.211 或更高版本 |

299| `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) |301| `CLAUDE_CODE_GATEWAY_HINT_HEADERS` | 设置为 `1` 以在自定义代理或第三方提供商(如 Amazon Bedrock 或 Claude Platform on AWS)上发送 [网关提示标头](/docs/zh-CN/llm-gateway-protocol#gateway-hint-headers)(如 `x-claude-code-request-class` 和 `x-claude-code-compaction`)。设置为 `0` 以停止在每个连接上发送它们,包括 Claude Code 默认发送它们的直接 Anthropic API 连接。需要 Claude Code v2.1.273 或更高版本 |

302| `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 或更高版本 |

303| `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) |

300| `CLAUDE_CODE_GLOB_HIDDEN` | 设置为 `false` 以在 Claude 调用 [Glob 工具](/docs/zh-CN/tools-reference#glob-tool-behavior) 时从结果中排除点文件。默认包含。不影响 `@` 文件自动完成、`ls`、Grep 或 Read |304| `CLAUDE_CODE_GLOB_HIDDEN` | 设置为 `false` 以在 Claude 调用 [Glob 工具](/docs/zh-CN/tools-reference#glob-tool-behavior) 时从结果中排除点文件。默认包含。不影响 `@` 文件自动完成、`ls`、Grep 或 Read |

301| `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) |305| `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) |

302| `CLAUDE_CODE_GLOB_TIMEOUT_SECONDS` | Glob 工具文件发现的超时时间(秒)。在大多数平台上默认为 20 秒,在 WSL 上为 60 秒 |306| `CLAUDE_CODE_GLOB_TIMEOUT_SECONDS` | Glob 工具文件发现的超时时间(以秒为单位)。在大多数平台上默认为 20 秒,在 WSL 上为 60 秒 |

303| `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 或更高版本 |307| `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 或更高版本 |

304| `CLAUDE_CODE_HIDE_CWD` | 设置为 `1` 以在启动徽标中隐藏工作目录。对于屏幕共享或录制,其中路径暴露您的 OS 用户名很有用 |308| `CLAUDE_CODE_HIDE_CWD` | 设置为 `1` 以在启动徽标中隐藏工作目录。对于屏幕共享或录制,其中路径暴露您的 OS 用户名很有用 |

305| `CLAUDE_CODE_IDE_HOST_OVERRIDE` | 覆盖用于连接到 IDE 扩展的主机地址。默认情况下 Claude Code 自动检测正确的地址,包括 WSL 到 Windows 路由 |309| `CLAUDE_CODE_IDE_HOST_OVERRIDE` | 覆盖用于连接到 IDE 扩展的主机地址。默认情况下 Claude Code 自动检测正确的地址,包括 WSL 到 Windows 路由 |

306| `CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL` | 设置为 `1` 以跳过 IDE 扩展的自动安装。等同于将 [`autoInstallIdeExtension`](/docs/zh-CN/settings-reference#autoinstallideextension) 设置为 `false` |310| `CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL` | 设置为 `1` 以跳过 IDE 扩展的自动安装。等同于将 [`autoInstallIdeExtension`](/docs/zh-CN/settings-reference#autoinstallideextension) 设置为 `false` |

307| `CLAUDE_CODE_IDE_SKIP_VALID_CHECK` | 设置为 `1` 以跳过连接期间 IDE 锁定文件条目的验证。在自动连接无法找到您的 IDE 时使用,尽管它正在运行 |311| `CLAUDE_CODE_IDE_SKIP_VALID_CHECK` | 设置为 `1` 以跳过连接期间 IDE 锁定文件条目的验证。当自动连接无法找到您的 IDE 尽管它正在运行时使用 |

308| `CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS` | 在 Agent 工具拒绝生成另一个之前,一个会话中可以运行多少个 [子代理](/docs/zh-CN/sub-agents#concurrent-subagent-limit)(默认值:20)。仅接受纯数字的正整数;任何其他值被忽略,因此变量可以调整上限但不能禁用它。需要 Claude Code v2.1.217 或更高版本 |312| `CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS` | 在一个会话中运行的 [子代理](/docs/zh-CN/sub-agents#concurrent-subagent-limit) 数量,在此之后 Agent 工具拒绝生成另一个(默认值:20)。仅接受纯数字的正整数;任何其他值都被忽略,因此变量可以调整上限但不能禁用它。需要 Claude Code v2.1.217 或更高版本 |

309| `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` 路由到其上下文窗口与其名称的内置大小不匹配的模型时使用此选项 |313| `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` 路由到其上下文窗口与其名称的内置大小不匹配的模型时使用 |

310| `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) 触发之前可用的有效上下文窗口 |314| `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) 触发前可用的有效上下文窗口 |

311| `CLAUDE_CODE_MAX_RETRIES` | 覆盖重试失败 API 请求的次数(默认值:10)。从 v2.1.186 开始上限为 15;从 v2.1.199 开始,`CLAUDE_CODE_RETRY_WATCHDOG` 提高默认值并删除上限。对于需要等待更长中断的无人值守会话,改为设置 `CLAUDE_CODE_RETRY_WATCHDOG` |315| `CLAUDE_CODE_MAX_RETRIES` | 覆盖重试失败 API 请求的次数(默认值:10)。从 v2.1.186 开始上限为 15;从 v2.1.199 开始,`CLAUDE_CODE_RETRY_WATCHDOG` 提高默认值并删除上限。对于需要等待更长中断的无人值守会话,改为设置 `CLAUDE_CODE_RETRY_WATCHDOG` |

312| `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) 仍然适用 |316| `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) 仍然适用 |

313| `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 或更高版本 |317| `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 或更高版本 |

314| `CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCY` | 可以并行执行的只读工具和子代理的最大数量(默认值:10)。较高的值增加并行性但消耗更多资源 |318| `CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCY` | 可以并行执行的只读工具和子代理的最大数量(默认值:10)。较高的值增加并行性但消耗更多资源 |

315| `CLAUDE_CODE_MAX_TURNS` | 当没有传递显式限制时,上限代理转数。等同于传递 [`--max-turns`](/docs/zh-CN/cli-reference#cli-flags),当两者都设置时优先。不是正整数的值在启动时被拒绝,显示错误,而不是视为无上限 |319| `CLAUDE_CODE_MAX_TURNS` | 当没有传递显式限制时,限制代理转弯的数量。等同于传递 [`--max-turns`](/docs/zh-CN/cli-reference#cli-flags),当两者都设置时优先。不是正整数的值在启动时被拒绝,显示错误,而不是视为无上限 |

316| `CLAUDE_CODE_MAX_WEB_SEARCHES_PER_SESSION` | 一个会话可以进行的 [WebSearch](/docs/zh-CN/tools-reference#websearch-tool-behavior) 调用总数的上限(默认值:200)。当 Claude 达到上限时,进一步的 WebSearch 调用返回通知,告诉它继续使用已收集的信息。接受没有上限的正整数。任何其他值被忽略,默认值适用,因此上限可以提高但不能关闭。需要 Claude Code v2.1.212 或更高版本 |320| `CLAUDE_CODE_MAX_WEB_SEARCHES_PER_SESSION` | 一个会话可以进行的 [WebSearch](/docs/zh-CN/tools-reference#websearch-tool-behavior) 调用总数的上限(默认值:200)。当 Claude 达到上限时,进一步的 WebSearch 调用返回通知,告诉它继续使用已收集的信息。接受没有上限的正整数。任何其他值都被忽略,默认值适用,因此上限可以提高但不能关闭。需要 Claude Code v2.1.212 或更高版本 |

317| `CLAUDE_CODE_MCP_ALLOWLIST_ENV` | 设置为 `1` 以使用仅安全基线环境加上服务器的配置 `env` 生成 stdio MCP 服务器,而不是继承您的 shell 环境 |321| `CLAUDE_CODE_MCP_ALLOWLIST_ENV` | 设置为 `1` 以使用仅安全基线环境加上服务器的配置 `env` 生成 stdio MCP 服务器,而不是继承您的 shell 环境 |

318| `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 或更高版本 |322| `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 或更高版本 |

319| `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 服务器免除空闲超时 |323| `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 或更高版本 |

320| `CLAUDE_CODE_MESSAGING_SOCKET` | 由 Claude Code 设置,不由您设置:在绑定 [收件箱套接字](/docs/zh-CN/cross-session-messaging#the-sessions-inbox-socket) 的会话中,Claude Code 在绑定套接字时将该套接字的路径导出到钩子和 Bash 命令。在以消息打开启动的会话中,Claude Code 在任何钩子运行之前绑定套接字。机器上的其他会话将消息传递到此路径。每个会话导出自己的套接字,而不是从父级继承的套接字,到达它的消息通过会话的 [入站控制](/docs/zh-CN/cross-session-messaging#control-inbound-messages) 进行。设置 `env` 块无法设置它。需要 Claude Code v2.1.224 或更高版本 |324| `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 服务器免除空闲超时 |

321| `CLAUDE_CODE_MESSAGING_TOKEN` | 由 Claude Code 设置,不由您设置:在绑定 [收件箱套接字](/docs/zh-CN/cross-session-messaging#the-sessions-inbox-socket) 的会话中,Claude Code 将此每个会话令牌导出到钩子和 Bash 命令,与 `CLAUDE_CODE_MESSAGING_SOCKET` 一起。发布到套接字的脚本可以发送 `{"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 或更高版本 |325| `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 或更高版本 |

322| `CLAUDE_CODE_NATIVE_CURSOR` | 设置为 `1` 以在输入插入符处显示终端自己的光标,而不是绘制的块。光标尊重终端的闪烁、形状和焦点设置 |326| `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 或更高版本 |

323| `CLAUDE_CODE_NEW_INIT` | 设置为 `1` 以使 `/init` 运行交互式设置流程。流程在探索代码库并写入它们之前询问要生成哪些文件,包括 CLAUDE.md、skills 和钩子。没有此变量,`/init` 自动生成 CLAUDE.md 而不提示 |327| `CLAUDE_CODE_NATIVE_CURSOR` | 设置为 `1` 以在输入插入符处显示终端自己的光标而不是绘制的块。光标尊重终端的闪烁、形状和焦点设置 |

328| `CLAUDE_CODE_NEW_INIT` | 设置为 `1` 以使 `/init` 运行交互式设置流程。流程在探索代码库并写入它们之前询问要生成哪些文件,包括 CLAUDE.md、skills 和 hooks。没有此变量,`/init` 自动生成 CLAUDE.md 而不提示 |

324| `CLAUDE_CODE_NONBLOCKING_STDOUT` | 设置为 `1` 以通过第二个非阻塞文件描述符写入终端输出,因此停止读取的终端(如暂停的 tmux 控制模式窗格或停滞的 SSH 连接)无法在会话中期冻结 Claude Code。在 macOS、Linux 和 WSL 上应用,当 stdout 是终端时。需要 Claude Code v2.1.261 或更高版本 |329| `CLAUDE_CODE_NONBLOCKING_STDOUT` | 设置为 `1` 以通过第二个非阻塞文件描述符写入终端输出,因此停止读取的终端(如暂停的 tmux 控制模式窗格或停滞的 SSH 连接)无法在会话中期冻结 Claude Code。在 macOS、Linux 和 WSL 上应用,当 stdout 是终端时。需要 Claude Code v2.1.261 或更高版本 |

325| `CLAUDE_CODE_NO_FLICKER` | 设置为 `1` 以启用 [全屏呈现](/docs/zh-CN/fullscreen),一个减少闪烁并在长对话中保持内存平坦的研究预览。覆盖 [`tui`](/docs/zh-CN/settings-reference#tui) 设置;您也可以使用 `/tui fullscreen` 切换 |330| `CLAUDE_CODE_NO_FLICKER` | 设置为 `1` 以启用 [全屏呈现](/docs/zh-CN/fullscreen),一个减少闪烁并在长对话中保持内存平坦的研究预览。覆盖 [`tui`](/docs/zh-CN/settings-reference#tui) 设置;您也可以使用 `/tui fullscreen` 切换 |

326| `CLAUDE_CODE_OAUTH_REFRESH_TOKEN` | Claude.ai 身份验证的 OAuth 刷新令牌。设置后,`claude auth login` 直接交换此令牌,而不是打开浏览器。需要 `CLAUDE_CODE_OAUTH_SCOPES`。对于在自动化环境中配置身份验证很有用 |331| `CLAUDE_CODE_OAUTH_REFRESH_TOKEN` | Claude.ai 身份验证的 OAuth 刷新令牌。设置时,`claude auth login` 直接交换此令牌而不是打开浏览器。需要 `CLAUDE_CODE_OAUTH_SCOPES`。对于在自动化环境中配置身份验证很有用 |

327| `CLAUDE_CODE_OAUTH_SCOPES` | 刷新令牌颁发的空格分隔 OAuth 范围,例如 `"user:profile user:inference user:sessions:claude_code"`。设置 `CLAUDE_CODE_OAUTH_REFRESH_TOKEN` 时需要 |332| `CLAUDE_CODE_OAUTH_SCOPES` | 刷新令牌颁发的空格分隔 OAuth 范围,例如 `"user:profile user:inference user:sessions:claude_code"`。设置 `CLAUDE_CODE_OAUTH_REFRESH_TOKEN` 时需要 |

328| `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 为整个会话使用您设置的令牌。要替换过期的令牌,生成一个新令牌并重启 |333| `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 为整个会话使用您设置的令牌。要替换过期的令牌,生成一个新令牌并重启 |

329| `CLAUDE_CODE_OPUS_4_6_FAST_MODE_OVERRIDE` | 在 v2.1.160 中删除,现在是无操作。以前将 [快速模式](/docs/zh-CN/fast-mode) 固定到 Claude Opus 4.6,而不是当前默认值。Opus 4.6 不再支持快速模式 |334| `CLAUDE_CODE_OPUS_4_6_FAST_MODE_OVERRIDE` | 在 v2.1.160 中删除,现在是无操作。以前将 [快速模式](/docs/zh-CN/fast-mode) 固定到 Claude Opus 4.6 而不是当前默认值。Opus 4.6 不再支持快速模式 |

330| `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) |335| `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) |

331| `CLAUDE_CODE_OTEL_DIAG_STDERR` | 设置为 `1` 以将 OpenTelemetry 导出器诊断错误写入 stderr。默认情况下这些错误仅与 `--debug` 一起出现,因此配置错误的导出器(如 Prometheus 端口冲突)否则会无声地失败。需要 Claude Code v2.1.179 或更高版本。参见 [监控](/docs/zh-CN/monitoring-usage) |336| `CLAUDE_CODE_OTEL_DIAG_STDERR` | 设置为 `1` 以将 OpenTelemetry 导出器诊断错误写入 stderr。默认情况下这些错误仅与 `--debug` 一起出现,因此配置错误的导出器(如 Prometheus 端口冲突)否则会无声地失败。需要 Claude Code v2.1.179 或更高版本。请参阅 [监控](/docs/zh-CN/monitoring-usage) |

332| `CLAUDE_CODE_OTEL_FLUSH_TIMEOUT_MS` | 刷新待处理 OpenTelemetry 跨度的超时时间(毫秒)(默认值:5000)。参见 [监控](/docs/zh-CN/monitoring-usage) |337| `CLAUDE_CODE_OTEL_FLUSH_TIMEOUT_MS` | 刷新待处理 OpenTelemetry 跨度的超时时间(以毫秒为单位)(默认值:5000)。请参阅 [监控](/docs/zh-CN/monitoring-usage) |

333| `CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS` | 刷新动态 OpenTelemetry 标头的间隔(毫秒)(默认值:1740000 / 29 分钟)。参见 [动态标头](/docs/zh-CN/monitoring-usage#dynamic-headers) |338| `CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS` | 刷新动态 OpenTelemetry 标头的间隔(以毫秒为单位)(默认值:1740000 / 29 分钟)。请参阅 [动态标头](/docs/zh-CN/monitoring-usage#dynamic-headers) |

334| `CLAUDE_CODE_OTEL_SHUTDOWN_TIMEOUT_MS` | OpenTelemetry 导出器在关闭时完成的超时时间(毫秒)(默认值:2000)。如果指标在退出时被删除,请增加。参见 [监控](/docs/zh-CN/monitoring-usage) |339| `CLAUDE_CODE_OTEL_SHUTDOWN_TIMEOUT_MS` | OpenTelemetry 导出器在关闭时完成的超时时间(以毫秒为单位)(默认值:2000)。如果指标在退出时被删除,请增加。请参阅 [监控](/docs/zh-CN/monitoring-usage) |

335| `CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATE` | 设置为 `1` 以让 Claude Code 在新版本可用时在后台运行您的包管理器的升级命令。适用于 Homebrew 和 WinGet 安装。其他包管理器继续显示升级命令而不运行它。参见 [自动更新](/docs/zh-CN/setup#auto-updates) |340| `CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATE` | 设置为 `1` 以让 Claude Code 在新版本可用时在后台运行您的包管理器的升级命令。适用于 Homebrew 和 WinGet 安装。其他包管理器继续显示升级命令而不运行它。请参阅 [自动更新](/docs/zh-CN/setup#auto-updates) |

336| `CLAUDE_CODE_PERFORCE_MODE` | 设置为 `1` 以启用 Perforce 感知写保护。设置后,如果目标文件缺少所有者写位(Perforce 在同步文件上清除,直到 `p4 edit` 打开它们),Edit、Write 和 NotebookEdit 失败,显示 `p4 edit <file>` 提示。这防止 Claude Code 绕过 Perforce 更改跟踪 |341| `CLAUDE_CODE_PERFORCE_MODE` | 设置为 `1` 以启用 Perforce 感知写入保护。设置时,如果目标文件缺少所有者写入位(Perforce 在同步文件上清除,直到 `p4 edit` 打开它们),Edit、Write 和 NotebookEdit 会失败,显示 `p4 edit <file>` 提示。这防止 Claude Code 绕过 Perforce 更改跟踪 |

337| `CLAUDE_CODE_PLUGIN_CACHE_DIR` | 覆盖插件根目录。尽管名称如此,这设置了父目录,而不是缓存本身:市场和插件缓存位于此路径下的子目录中。默认为 `~/.claude/plugins` |342| `CLAUDE_CODE_PLUGIN_CACHE_DIR` | 覆盖插件根目录。尽管名称如此,这设置了父目录,而不是缓存本身:市场和插件缓存位于此路径下的子目录中。默认为 `~/.claude/plugins` |

338| `CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS` | 安装或更新插件时 git 操作的超时时间(毫秒)(默认值:120000)。对于大型存储库或缓慢网络连接,增加此值。参见 [Git 操作超时](/docs/zh-CN/plugin-marketplaces#git-operations-time-out) |343| `CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS` | 安装或更新插件时 git 操作的超时时间(以毫秒为单位)(默认值:120000)。对于大型存储库或缓慢网络连接,增加此值。请参阅 [Git 操作超时](/docs/zh-CN/plugin-marketplaces#git-operations-time-out) |

339| `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE` | 设置为 `1` 以在 `git pull` 失败时跳过重新克隆尝试并继续使用现有市场缓存。在离线或隔离环境中很有用,其中重新克隆会以相同方式失败。参见 [市场更新在离线环境中失败](/docs/zh-CN/plugin-marketplaces#marketplace-updates-fail-in-offline-environments) |344| `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE` | 设置为 `1` 以在市场刷新无法到达或验证远程时跳过重新克隆尝试并继续使用现有市场检出。在离线或隔离环境中很有用,其中重新克隆会以相同方式失败。请参阅 [市场更新在离线环境中失败](/docs/zh-CN/plugin-marketplaces#marketplace-updates-fail-in-offline-environments) |

340| `CLAUDE_CODE_PLUGIN_PREFER_HTTPS` | 设置为 `1` 以通过 HTTPS 而不是 SSH 克隆 GitHub `owner/repo` 速记源。适用于插件安装和更新,以及 `/plugin marketplace add` 和 `update`。在 CI 运行器、容器或任何没有为 `github.com` 配置 SSH 密钥的环境中很有用 |345| `CLAUDE_CODE_PLUGIN_PREFER_HTTPS` | 设置为 `1` 以通过 HTTPS 而不是 SSH 克隆 GitHub `owner/repo` 速记源。适用于插件安装和更新,以及 `/plugin marketplace add` 和 `update`。在 CI 运行器、容器或任何没有为 `github.com` 配置 SSH 密钥的环境中很有用 |

341| `CLAUDE_CODE_PLUGIN_SEED_DIR` | 一个或多个只读插件种子目录的路径,在 Unix 上用 `:` 分隔,在 Windows 上用 `;` 分隔。使用此选项将预填充的插件目录捆绑到容器镜像中。Claude Code 在启动时从这些目录注册市场,并使用预缓存的插件而不重新克隆。参见 [为容器预填充插件](/docs/zh-CN/plugin-marketplaces#pre-populate-plugins-for-containers) |346| `CLAUDE_CODE_PLUGIN_SEED_DIR` | 一个或多个只读插件种子目录的路径,在 Unix 上用 `:` 分隔,在 Windows 上用 `;` 分隔。使用此选项将预填充的插件目录捆绑到容器镜像中。Claude Code 在启动时从这些目录注册市场,并使用预缓存的插件而不重新克隆。请参阅 [为容器预填充插件](/docs/zh-CN/plugin-marketplaces#pre-populate-plugins-for-containers) |

342| `CLAUDE_CODE_POWERSHELL_RESPECT_EXECUTION_POLICY` | 设置为 `1` 以停止 Claude Code 在为工具调用、钩子和状态行命令生成 PowerShell 时传递 `-ExecutionPolicy Bypass`,并改为尊重机器的有效执行策略。默认情况下 Claude Code 在进程范围内绕过执行策略,以便 `.ps1` 脚本和模块导入在默认受限 Windows 安装上工作。进程范围绕过从不覆盖组策略 `MachinePolicy` 或 `UserPolicy`,无论此设置如何 |347| `CLAUDE_CODE_POWERSHELL_RESPECT_EXECUTION_POLICY` | 设置为 `1` 以停止 Claude Code 在为工具调用、hooks 和状态行命令生成 PowerShell 时传递 `-ExecutionPolicy Bypass`,并改为尊重机器的有效执行策略。默认情况下 Claude Code 在进程范围内绕过执行策略,以便 `.ps1` 脚本和模块导入在默认受限的 Windows 安装上工作。进程范围绕过从不覆盖 Group Policy `MachinePolicy` 或 `UserPolicy`,无论此设置如何 |

343| `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 或更高版本 |348| `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 或更高版本 |

344| `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 或更高版本 |349| `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 或更高版本 |

345| `CLAUDE_CODE_PROJECT_DIR_NAME` | 与 `CLAUDE_CONFIG_DIR` 一起设置以选择 Claude Code 存储该会话的成绩单和自动内存的 `projects/` 目录名称,代替从工作目录路径派生的名称。例如,使用 `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 或更高版本 |350| `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-your-project-directory-yourself)。需要 Claude Code v2.1.234 或更高版本 |

346| `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 或更高版本 |351| `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 或更高版本 |

347| `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) |352| `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) |

348| `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) |353| `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) |

349| `CLAUDE_CODE_PROXY_RESOLVES_HOSTS` | 设置为 `1` 以允许代理执行 DNS 解析而不是调用者。对于代理应处理主机名解析的环境选择加入 |354| `CLAUDE_CODE_PROXY_RESOLVES_HOSTS` | 设置为 `1` 以允许代理执行 DNS 解析而不是调用者。对于代理应处理主机名解析的环境选择加入 |

350| `CLAUDE_CODE_REMOTE` | 当 Claude Code 作为 [云会话](/docs/zh-CN/claude-code-on-the-web) 运行时自动设置为 `true`。从钩子或设置脚本读取此项以检测您是否在云会话中 |355| `CLAUDE_CODE_REMOTE` | 当 Claude Code 作为 [云会话](/docs/zh-CN/claude-code-on-the-web) 运行时自动设置为 `true`。从 hook 或设置脚本读取此项以检测您是否在云会话中 |

351| `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) |356| `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) |

352| `CLAUDE_CODE_RESTRICTED` | 设置为 `1` 以在受限模式下启动会话,与传递 [`--restricted`](/docs/zh-CN/cli-reference#cli-flags) 相同。Claude Code 在设置文件的 `env` 块中忽略此变量。需要 Claude Code v2.1.248 或更高版本 |357| `CLAUDE_CODE_RESTRICTED` | 设置为 `1` 以在受限模式下启动会话,与传递 [`--restricted`](/docs/zh-CN/cli-reference#cli-flags) 相同。Claude Code 在设置文件的 `env` 块中忽略此变量。需要 Claude Code v2.1.248 或更高版本 |

353| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` | 设置为 `1` 以在上一个会话在转中期结束时自动恢复。在 SDK 模式中使用,以便模型继续而无需 SDK 重新发送提示。要关闭此功能,取消设置变量或将其设置为 `0`。在 v2.1.221 之前,Claude Code 忽略 `0` 和其他虚假值,因此在非交互模式中设置 `0` 仍然触发恢复,取消设置变量是关闭它的唯一方法 |358| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` | 设置为 `1` 以在前一个会话在转弯中期结束时自动恢复。在 SDK 模式中使用,以便模型继续而不需要 SDK 重新发送提示。要关闭此功能,取消设置变量或将其设置为 `0`。在 v2.1.221 之前,Claude Code 忽略 `0` 和其他虚假值,因此在非交互模式中设置 `0` 仍会触发恢复,取消设置变量是关闭它的唯一方法 |

354| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN_MAX_AGE_MS` | 最后成绩单消息的最大年龄(毫秒),用于在恢复时继续在转中期结束的会话。当最后消息比此界限更旧时,Claude Code 跳过 `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` 自动恢复和注入的 `CLAUDE_CODE_RESUME_PROMPT` 继续消息,会话启动空闲,以便您显式继续。未设置或 `0` 意味着无界限;负值或非数值值应用一小时界限。长时间运行的代理的生成脚本可以设置此项,以便针对旧成绩单的重启不重新运行陈旧的提示。Claude Code 在重启崩溃的 [代理视图](/docs/zh-CN/agent-view) 会话时自己设置一小时界限,该会话从交互式会话继承其对话。需要 Claude Code v2.1.211 或更高版本 |359| `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 或更高版本 |

355| `CLAUDE_CODE_RESUME_PROMPT` | 覆盖在恢复在转中期结束的会话时注入的继续消息。默认为 `Continue from where you left off.`。长时间运行的代理的生成脚本可以设置此项为更指令性的启动消息。空字符串使用默认值 |360| `CLAUDE_CODE_RESUME_PROMPT` | 覆盖在恢复在转弯中期结束的会话时注入的继续消息。默认为 `Continue from where you left off.`。长时间运行的代理的生成脚本可以设置此项为更指令性的启动消息。空字符串使用默认值 |

356| `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 或更高版本 |361| `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 或更高版本 |

357| `CLAUDE_CODE_SAFE_MODE` | 设置为 `1` 以在安全模式下启动:CLAUDE.md、skills、插件、钩子、MCP 服务器、自定义命令和代理、输出样式、工作流、自定义主题、自定义快捷键、状态行和文件建议命令、LSP 服务器和自动内存不加载,用于故障排除破损的配置。托管设置策略仍然适用,包括策略配置的钩子、状态行和文件建议命令;托管插件、托管 skills、托管 CLAUDE.md 和策略配置的 MCP 服务器不加载。等同于传递 [`--safe-mode`](/docs/zh-CN/cli-reference#cli-flags)。直接生成的子进程继承变量 |362| `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)。直接生成的子进程继承变量 |

358| `CLAUDE_CODE_SCRIPT_CAPS` | JSON 对象限制当 `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` 设置时特定脚本在每个会话中可能被调用多少次。键是与命令文本匹配的子字符串;值是整数调用限制。例如,`{"deploy.sh": 2}` 允许 `deploy.sh` 最多被调用两次。匹配是基于子字符串的,因此 shell 扩展技巧(如 `./scripts/deploy.sh $(evil)`)仍然计入上限。通过 `xargs` 或 `find -exec` 的运行时扇出未被检测;这是深度防御控制 |363| `CLAUDE_CODE_SCRIPT_CAPS` | JSON 对象限制当设置 `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` 时特定脚本在每个会话中可能被调用的次数。密钥是与命令文本匹配的子字符串;值是整数调用限制。例如,`{"deploy.sh": 2}` 允许 `deploy.sh` 最多被调用两次。匹配是基于子字符串的,因此 shell 扩展技巧(如 `./scripts/deploy.sh $(evil)`)仍然计入上限。运行时通过 `xargs` 或 `find -exec` 的扇出未被检测;这是深度防御控制 |

359| `CLAUDE_CODE_SCROLL_SPEED` | 在 [全屏呈现](/docs/zh-CN/fullscreen#mouse-wheel-scrolling) 中设置鼠标滚轮滚动乘数。接受任何正值到 20,包括低于 1 的分数值(如 `0.5`)以减慢已放大的触控板和滚轮滚动在已放大滚轮事件的终端中。设置为 `3` 以匹配 `vim`,如果您的终端在没有放大的情况下每个凹口发送一个滚轮事件。在 JetBrains IDE 终端中被忽略,Claude Code 在其中使用自己的滚动处理 |364| `CLAUDE_CODE_SCROLL_SPEED` | 在 [全屏呈现](/docs/zh-CN/fullscreen#mouse-wheel-scrolling) 中设置鼠标滚轮滚动乘数。接受任何正值最多 20,包括低于 1 的分数值(如 `0.5`)以减慢已经放大滚轮和轨迹板事件的终端中的加速滚轮和轨迹板滚动。设置为 `3` 以匹配 `vim`(如果您的终端在没有放大的情况下每个凹口发送一个滚轮事件)。在 JetBrains IDE 终端中被忽略,Claude Code 在那里使用自己的滚动处理 |

360| `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` 值)仍然适用 |365| `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` 值)仍然适用 |

361| `CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS` | 覆盖 [SessionEnd](/docs/zh-CN/hooks#sessionend) 钩子的时间预算(毫秒)。值也是未设置自己 `timeout` 的每个钩子的超时。适用于会话退出、`/clear` 和通过交互式 `/resume` 切换会话。默认情况下预算为 1.5 秒,自动提高到设置文件中配置的最高每个钩子 `timeout`,最多 60 秒。插件提供的钩子上的超时不提高预算 |366| `CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS` | 覆盖 [SessionEnd](/docs/zh-CN/hooks#sessionend) hooks 的时间预算(以毫秒为单位)。值也是未设置自己 `timeout` 的每个 hook 的超时。适用于会话退出、`/clear` 和通过交互式 `/resume` 切换会话。默认预算为 1.5 秒,自动提高到设置文件中配置的最高每个 hook `timeout`,最多 60 秒。插件提供的 hooks 上的超时不提高预算 |

362| `CLAUDE_CODE_SESSION_ID` | 在 Bash 和 PowerShell 工具子进程、[hook 命令](/docs/zh-CN/hooks) 子进程和 stdio [MCP 服务器](/docs/zh-CN/mcp) 子进程中自动设置为当前会话 ID。对于 Bash、PowerShell 和钩子,这匹配钩子 JSON 输入中的 `session_id` 字段,在 `/clear` 上更新。MCP 服务器子进程保留它生成时的 ID。在 `--resume <session-id>` 上它接收恢复的 ID,匹配钩子和 Bash。在 `--continue` 或 `--resume` 没有显式 ID 上它可能接收初始启动 ID。用于将脚本和外部工具与启动它们的 Claude Code 会话相关联 |367| `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 会话相关联 |

363| `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` |368| `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` |

364| `CLAUDE_CODE_SHELL_PREFIX` | 命令前缀,包装 Claude Code 生成的 shell 命令:Bash 工具调用、[hook](/docs/zh-CN/hooks) 命令、[状态行](/docs/zh-CN/statusline) 命令和 stdio [MCP 服务器](/docs/zh-CN/mcp) 启动命令。PowerShell 钩子和 exec 形式钩子运行而不带前缀。对于日志记录或审计很有用。设置裸可执行文件路径(如 `/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 运行的命令 |369| `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 运行的命令 |

365| `CLAUDE_CODE_SIMPLE` | 设置为 `1` 以使用最小系统提示和仅 Bash、文件读取和文件编辑工具运行。来自 `--mcp-config` 的 MCP 工具仍然可用。禁用钩子、skills、自定义命令、子代理、插件、MCP 服务器、自动内存和 CLAUDE.md 的自动发现。您使用 `--add-dir` 传递的目录中的 Skills 仍然加载。OAuth 令牌和钥匙链凭证未被读取,因此 Anthropic 身份验证必须来自 `ANTHROPIC_API_KEY` 或 `--settings` 中的 `apiKeyHelper`。等同于传递 [`--bare`](/docs/zh-CN/headless#start-faster-with-bare-mode) |370| `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) |

366| `CLAUDE_CODE_SIMPLE_SYSTEM_PROMPT` | 设置为 `1` 以在任何模型上使用较短的系统提示和缩写的工具描述。设置为 `0`、`false`、`no` 或 `off` 以选择退出,即使实验或服务器配置会否则启用它。完整工具集、钩子、MCP 服务器和 CLAUDE.md 发现保持启用 |371| `CLAUDE_CODE_SIMPLE_SYSTEM_PROMPT` | 设置为 `1` 以在任何模型上使用较短的系统提示和缩写的工具描述。设置为 `0`、`false`、`no` 或 `off` 以选择退出,即使在实验或服务器配置会启用它的模型上。完整的工具集、hooks、MCP 服务器和 CLAUDE.md 发现保持启用 |

367| `CLAUDE_CODE_SKIP_ANTHROPIC_AWS_AUTH` | 跳过 [Claude Platform on AWS](/docs/zh-CN/claude-platform-on-aws) 的客户端身份验证,用于自己签署请求的网关 |372| `CLAUDE_CODE_SKIP_ANTHROPIC_AWS_AUTH` | 跳过 [Claude Platform on AWS](/docs/zh-CN/claude-platform-on-aws) 的客户端身份验证,用于自己签署请求的网关 |

368| `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 或更高版本 |373| `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 或更高版本 |

369| `CLAUDE_CODE_SKIP_BEDROCK_AUTH` | 跳过 Amazon Bedrock 的 AWS 身份验证(例如,使用 LLM 网关时) |374| `CLAUDE_CODE_SKIP_BEDROCK_AUTH` | 跳过 Amazon Bedrock 的 AWS 身份验证(例如,使用 LLM 网关时) |

370| `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 仍然尊重"您的组织禁用了快速模式"响应 |375| `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 仍然尊重"您的组织禁用了快速模式"响应 |

371| `CLAUDE_CODE_SKIP_FAST_MODE_ORG_CHECK` | 设置为 `1` 以跳过客户端 [快速模式](/docs/zh-CN/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) 可用性检查,用于拦截检查请求的代理而不是拒绝它。API 在您的组织禁用快速模式时仍然拒绝快速模式请求 |376| `CLAUDE_CODE_SKIP_FAST_MODE_ORG_CHECK` | 设置为 `1` 以跳过客户端 [快速模式](/docs/zh-CN/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) 可用性检查,用于拦截检查请求的代理而不是拒绝它。API 仍然在您的组织禁用快速模式时拒绝快速模式请求 |

372| `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 密钥 |377| `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 密钥 |

373| `CLAUDE_CODE_SKIP_MANTLE_AUTH` | 跳过 Amazon Bedrock Mantle 的 AWS 身份验证(例如,使用 LLM 网关时) |378| `CLAUDE_CODE_SKIP_MANTLE_AUTH` | 跳过 Amazon Bedrock Mantle 的 AWS 身份验证(例如,使用 LLM 网关时) |

374| `CLAUDE_CODE_SKIP_PROMPT_HISTORY` | 设置为 `1` 以跳过将提示历史和会话成绩单写入磁盘。使用此变量启动的会话不出现在 `--resume`、`--continue` 或向上箭头历史中。对于临时脚本会话很有用 |379| `CLAUDE_CODE_SKIP_PROMPT_HISTORY` | 设置为 `1` 以跳过将提示历史和会话转录写入磁盘。使用此变量启动的会话不出现在 `--resume`、`--continue` 或向上箭头历史中。对于临时脚本会话很有用 |

375| `CLAUDE_CODE_SKIP_VERTEX_AUTH` | 跳过 Google Cloud's Agent Platform 的 Google 身份验证(例如,使用 LLM 网关时) |380| `CLAUDE_CODE_SKIP_VERTEX_AUTH` | 跳过 Google Cloud's Agent Platform 的 Google 身份验证(例如,使用 LLM 网关时) |

376| `CLAUDE_CODE_STOP_HOOK_BLOCK_CAP` | [Stop](/docs/zh-CN/hooks#stop) 或 [SubagentStop](/docs/zh-CN/hooks#subagentstop) 钩子可能在 Claude Code 覆盖它并结束转之前阻止转结束的最大连续次数(默认值:8)。设置为 `0` 以禁用上限。如果您的钩子合法需要更多迭代来解决,请提高此值 |381| `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 或更高版本 |

377| `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` 字段 |382| `CLAUDE_CODE_STOP_HOOK_BLOCK_CAP` | [Stop](/docs/zh-CN/hooks#stop) 或 [SubagentStop](/docs/zh-CN/hooks#subagentstop) hook 可能在 Claude Code 覆盖它并结束转弯之前阻止转弯结束的最大连续次数(默认值:8)。设置为 `0` 以禁用上限。如果您的 hook 合理需要更多迭代来解决,请提高此值 |

378| `CLAUDE_CODE_SUBAGENT_MODEL_FORCE` | 设置为 `1` 以强制一个模型到子代理、队友和工作流代理。[在一个模型上运行每个子代理](/docs/zh-CN/sub-agents#run-every-subagent-on-one-model) 说明那是哪个模型。需要 Claude Code v2.1.257 或更高版本 |383| `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` 字段 |

379| `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 或更高版本 |384| `CLAUDE_CODE_SUBAGENT_MODEL_FORCE` | 设置为 `1` 以强制一个模型到子代理、队友和工作流代理。[在一个模型上运行每个子代理](/docs/zh-CN/sub-agents#run-every-subagent-on-one-model) 说明那是哪个。需要 Claude Code v2.1.257 或更高版本 |

380| `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` | 设置为 `1` 以从子进程环境中删除凭证(Bash 工具、钩子、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` 时自动设置此项 |385| `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 或更高版本 |

381| `CLAUDE_CODE_SYNC_PLUGIN_INSTALL` | 在非交互模式(`-p` 标志)中设置为 `1` 以等待插件安装完成,然后进行第一个查询。没有这个,插件在后台安装,可能在第一个转上不可用。与 `CLAUDE_CODE_SYNC_PLUGIN_INSTALL_TIMEOUT_MS` 结合以限制等待 |386| `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` 时自动设置此项 |

382| `CLAUDE_CODE_SYNC_PLUGIN_INSTALL_TIMEOUT_MS` | 同步插件安装的超时时间(毫秒)。超过时,Claude Code 继续而不使用插件并记录错误。无默认值:没有此变量,同步安装等待直到完成 |387| `CLAUDE_CODE_SYNC_PLUGIN_INSTALL` | 在非交互模式(`-p` 标志)中设置为 `1` 以等待插件安装完成,然后第一个查询。没有这个,插件在后台安装,可能在第一个转弯上不可用。与 `CLAUDE_CODE_SYNC_PLUGIN_INSTALL_TIMEOUT_MS` 结合以界限等待 |

383| `CLAUDE_CODE_SYNC_SKILLS` | 设置为 `1` 以将您启用的 claude.ai skills 下载到 `~/.claude/skills/synced/` 并每 10 分钟重新同步。在运行第一个查询之前,Claude Code 等待最多 `CLAUDE_CODE_SYNC_SKILLS_WAIT_TIMEOUT_MS` 以获取您的 skills 列表。下载本身在后台完成,Claude 在调用该 skill 时等待 skill 的下载。`synced` 文件夹名称是 [为此下载保留的](/docs/zh-CN/skills#where-skills-live)。在 v2.1.227 之前,skills 直接下载到 `~/.claude/skills/` 中。仅在非交互模式中应用 `-p` 标志。需要 claude.ai 身份验证。[云会话](/docs/zh-CN/claude-code-on-the-web) 自动接收您启用的 claude.ai skills;您不需要在那里设置此项。Claude Code 对下载的 skills 应用 [额外规则](/docs/zh-CN/skills#how-synced-skills-behave),例如不在您的机器上运行它们的 `!` 命令 |388| `CLAUDE_CODE_SYNC_PLUGIN_INSTALL_TIMEOUT_MS` | 同步插件安装的超时时间(以毫秒为单位)。超过时,Claude Code 继续而不带插件并记录错误。无默认值:没有此变量,同步安装等待直到完成 |

384| `CLAUDE_CODE_SYNC_SKILLS_INSTALL_TIMEOUT_MS` | 当设置 `CLAUDE_CODE_SYNC_SKILLS` 时,会话中期 skills 重新同步的超时时间(毫秒)(默认值:30000)。限制在主机请求 skill 重新加载期间触发的下载。超过时,重新同步停止,剩余下载在后台继续 |389| `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),例如不在您的机器上运行它们的 `!` 命令 |

385| `CLAUDE_CODE_SYNC_SKILLS_WAIT_TIMEOUT_MS` | 当设置 `CLAUDE_CODE_SYNC_SKILLS` 时,第一个查询等待初始 skill 列表的超时时间(毫秒)(默认值:5000)。超过时,第一个查询使用已到达的任何 skills 运行。下载无论如何都在后台完成,Claude 在调用该 skill 时等待 skill 的下载 |390| `CLAUDE_CODE_SYNC_SKILLS_INSTALL_TIMEOUT_MS` | 当 [Agent SDK](/docs/zh-CN/agent-sdk/typescript) 上构建的应用重新加载 skills 时运行的 skills 重新同步的超时时间(以毫秒为单位)(默认值:30000)。超过时,重新加载继续使用已到达的任何 skills,剩余下载在后台完成 |

386| `CLAUDE_CODE_SYNTAX_HIGHLIGHT` | 设置为 `false` 以在 diff 输出中禁用语法突出显示。当颜色干扰您的终端设置时很有用。要也禁用代码块和文件预览中的突出显示,请使用 [`syntaxHighlightingDisabled`](/docs/zh-CN/settings-reference#syntaxhighlightingdisabled) 设置 |391| `CLAUDE_CODE_SYNC_SKILLS_WAIT_TIMEOUT_MS` | 当设置 `CLAUDE_CODE_SYNC_SKILLS` 时第一个查询等待初始 skill 列表的超时时间(以毫秒为单位)(默认值:5000)。超过时,第一个查询使用已到达的任何 skills 运行。下载无论如何都在后台完成,Claude 在调用 skill 时等待 skill 的下载 |

387| `CLAUDE_CODE_TASK_LIST_ID` | 跨会话共享任务列表。在多个 Claude Code 实例中设置相同的 ID 以在 [具有 Task 工具的会话](/docs/zh-CN/tools-reference#task-tool-availability) 中协调共享任务列表。参见 [任务列表](/docs/zh-CN/interactive-mode#task-list) |392| `CLAUDE_CODE_SYNTAX_HIGHLIGHT` | 设置为 `false` 以在差异输出中禁用语法突出显示。当颜色干扰您的终端设置时很有用。要也在代码块和文件预览中禁用突出显示,请使用 [`syntaxHighlightingDisabled`](/docs/zh-CN/settings-reference#syntaxhighlightingdisabled) 设置 |

388| `CLAUDE_CODE_TEAM_TEARDOWN_PARK_TIMEOUT_MS` | 覆盖,以毫秒为单位,非交互式会话在退出时等待其 [代理团队](/docs/zh-CN/agent-teams) 完成拆卸的时间。接受 1000 到 60000;超出范围的值被忽略,默认值 10000 适用。需要 Claude Code v2.1.206 或更高版本 |393| `CLAUDE_CODE_TASK_LIST_ID` | 跨会话共享任务列表。在多个 Claude Code 实例中设置相同的 ID 以在 [具有 Task 工具的会话](/docs/zh-CN/tools-reference#task-tool-availability) 中协调共享任务列表。请参阅 [任务列表](/docs/zh-CN/interactive-mode#task-list) |

389| `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) 中被忽略 |394| `CLAUDE_CODE_TEAM_TEARDOWN_PARK_TIMEOUT_MS` | 覆盖非交互式会话在退出时等待其 [代理团队](/docs/zh-CN/agent-teams) 完成拆卸的毫秒数。接受 1000 到 60000;超出范围的值被忽略,默认值 10000 适用。需要 Claude Code v2.1.206 或更高版本 |

390| `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 设置 |395| `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) 中被忽略 |

391| `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 或更高版本 |396| `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 设置 |

392| `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 或更高版本 |397| `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 或更高版本 |

393| `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` 或负值禁用截止时间 |398| `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 或更高版本 |

399| `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` 或负值禁用截止时间 |

394| `CLAUDE_CODE_USE_ANTHROPIC_AWS` | 使用 [Claude Platform on AWS](/docs/zh-CN/claude-platform-on-aws) |400| `CLAUDE_CODE_USE_ANTHROPIC_AWS` | 使用 [Claude Platform on AWS](/docs/zh-CN/claude-platform-on-aws) |

395| `CLAUDE_CODE_USE_BEDROCK` | 使用 [Amazon Bedrock](/docs/zh-CN/amazon-bedrock) |401| `CLAUDE_CODE_USE_BEDROCK` | 使用 [Amazon Bedrock](/docs/zh-CN/amazon-bedrock) |

396| `CLAUDE_CODE_USE_FOUNDRY` | 使用 [Microsoft Foundry](/docs/zh-CN/microsoft-foundry) |402| `CLAUDE_CODE_USE_FOUNDRY` | 使用 [Microsoft Foundry](/docs/zh-CN/microsoft-foundry) |

397| `CLAUDE_CODE_USE_MANTLE` | 使用 Amazon Bedrock [Mantle 端点](/docs/zh-CN/amazon-bedrock#use-the-mantle-endpoint) |403| `CLAUDE_CODE_USE_MANTLE` | 使用 Amazon Bedrock [Mantle 端点](/docs/zh-CN/amazon-bedrock#use-the-mantle-endpoint) |

398| `CLAUDE_CODE_USE_NATIVE_FILE_SEARCH` | 设置为 `1` 以使用 Node.js 文件 API 而不是 ripgrep 发现自定义命令、子代理和输出样式。如果捆绑的 ripgrep 二进制文件在您的环境中不可用或被阻止,请设置此项。不影响 Grep 或文件搜索工具 |404| `CLAUDE_CODE_USE_NATIVE_FILE_SEARCH` | 设置为 `1` 以使用 Node.js 文件 API 而不是 ripgrep 发现自定义命令、子代理和输出样式。如果捆绑的 ripgrep 二进制文件在您的环境中不可用或被阻止,请设置此项。不影响 Grep 或文件搜索工具 |

399| `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) |405| `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) |

400| `CLAUDE_CODE_USE_VERTEX` | 使用 [Google Cloud's Agent Platform](/docs/zh-CN/google-vertex-ai) |406| `CLAUDE_CODE_USE_VERTEX` | 使用 [Google Cloud's Agent Platform](/docs/zh-CN/google-vertex-ai) |

401| `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 或更高版本 |407| `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 或更高版本 |

402| `CLAUDE_CODE_WEBFETCH_DEADLINE_MS` | [WebFetch](/docs/zh-CN/tools-reference#webfetch-tool-behavior) 等待页面下载的上限(毫秒),包括它遵循的任何重定向。未在那时完成的下载失败,显示截止时间错误。默认值为 `300000`,即五分钟。设置为 `0` 以删除限制。仅接受纯数字;小数或任何其他拼写保持默认值。需要 Claude Code v2.1.268 或更高版本 |408| `CLAUDE_CODE_WEBFETCH_DEADLINE_MS` | [WebFetch](/docs/zh-CN/tools-reference#webfetch-tool-behavior) 等待页面下载的上限(以毫秒为单位),包括它遵循的任何重定向。未在那时完成的下载因截止时间错误而失败。默认值为 `300000`,即五分钟。设置为 `0` 以删除限制。仅接受纯数字;小数或任何其他拼写保持默认值。需要 Claude Code v2.1.268 或更高版本 |

403| `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 或更高版本 |409| `CLAUDE_CODE_WORKFLOW_MAX_CONCURRENT_AGENTS` | 单个 [工作流](/docs/zh-CN/workflows) 运行一次执行的代理数量,从 `1` 到 `256`。默认情况下,运行一次执行最多 16 个代理,当 Claude Code 有更少 CPU 可用时更少;排队的 `agent()` 调用等待空闲槽。每个运行中的代理的转录保留在 Claude Code 的内存中,因此较高的值提高内存使用。仅接受纯数字;超出范围的值和其他拼写保持默认值。需要 Claude Code v2.1.269 或更高版本 |

404| `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) 中被忽略 |410| `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 或更高版本 |

405| `CLAUDE_DISABLE_ADOPT` | 设置为 `1` 以在通过按 `←` 或 [`/background`](/docs/zh-CN/agent-view#from-inside-a-session) 后台处理会话时停止进行中的后台工作,而不是进行中的工作。Claude Code 要求您在后台处理前确认,然后停止会否则进行中的任务。需要 Claude Code v2.1.195 或更高版本 |411| `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) 中被忽略 |

406| `CLAUDE_EFFORT` | 在 Bash 工具子进程和 hook 命令中自动设置为子进程启动时生效的 [effort 级别](/docs/zh-CN/model-config#adjust-effort-level):`low`、`medium`、`high`、`xhigh` 或 `max`。Ultracode 不是不同的级别,报告为 `xhigh`。匹配传递给 [钩子](/docs/zh-CN/hooks) 的 `effort.level` 字段。仅在当前模型支持 effort 参数时设置 |412| `CLAUDE_DISABLE_ADOPT` | 设置为 `1` 以在通过按 `←` 或使用 [`/background`](/docs/zh-CN/agent-view#from-inside-a-session) 后台处理会话时停止进行中的后台工作,而不是进行中的工作。Claude Code 要求您在后台处理前确认,然后停止否则会进行的任务。需要 Claude Code v2.1.195 或更高版本 |

407| `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) |413| `CLAUDE_EFFORT` | 在 Bash 工具子进程和 hook 命令中自动设置为启动子进程时生效的 [effort 级别](/docs/zh-CN/model-config#adjust-effort-level):`low`、`medium`、`high`、`xhigh` 或 `max`。Ultracode 不是不同的级别,报告为 `xhigh`。与传递给 [hooks](/docs/zh-CN/hooks) 的 `effort.level` 字段匹配。仅在当前模型支持 effort 参数时设置 |

408| `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` 配置超时 |414| `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) |

409| `CLAUDE_ENABLE_STREAM_WATCHDOG` | 设置为 `0` 以强制禁用事件级流式空闲监视狗,或设置为 `1` 以强制启用它。未设置时,监视狗对所有提供商默认打开。在 v2.1.196 之前,未设置默认值由服务器在直接 Anthropic API 上控制,在其他提供商上关闭。使用 `CLAUDE_STREAM_IDLE_TIMEOUT_MS` 配置超时;对于与此一起运行的其他停滞计时器,参见 [流式空闲监视狗](/docs/zh-CN/network-config#streaming-idle-watchdogs) |415| `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` 配置超时 |

410| `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) 钩子动态填充 |416| `CLAUDE_ENABLE_STREAM_WATCHDOG` | 设置为 `0` 以强制禁用事件级流式空闲监视程序,或设置为 `1` 以强制启用它。未设置时,监视程序在所有提供商上默认打开。在 v2.1.196 之前,未设置默认值在直接 Anthropic API 上由服务器控制,在其他提供商上关闭。使用 `CLAUDE_STREAM_IDLE_TIMEOUT_MS` 配置超时;对于与此一起运行的其他停滞计时器,请参阅 [流式空闲监视程序](/docs/zh-CN/network-config#streaming-idle-watchdogs) |

411| `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` 调用那里不提示权限,目录在会话被删除时被删除 |417| `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 动态填充 |

412| `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 或更高版本 |418| `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` 调用那里不提示权限,目录在会话被删除时被删除 |

419| `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 或更高版本 |

413| `CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX` | 当未提供显式名称时,自动生成的 [Remote Control](/docs/zh-CN/remote-control) 会话名称的前缀。默认为您的机器的主机名,生成名称如 `myhost-graceful-unicorn`。`--remote-control-session-name-prefix` CLI 标志为单个调用设置相同的值 |420| `CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX` | 当未提供显式名称时,自动生成的 [Remote Control](/docs/zh-CN/remote-control) 会话名称的前缀。默认为您的机器的主机名,生成名称如 `myhost-graceful-unicorn`。`--remote-control-session-name-prefix` CLI 标志为单个调用设置相同的值 |

414| `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 或更高版本 |421| `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 或更高版本 |

415| `CLAUDE_STREAM_IDLE_TIMEOUT_MS` | 事件级和字节级流式空闲监视狗在关闭停滞连接之前的超时时间(毫秒)。当您显式设置此变量时,最小值为 `300000`(5 分钟);较低的值无声地限制到吸收扩展思考暂停和代理缓冲,字节级监视狗将值上限为 30 分钟。`CLAUDE_BYTE_STREAM_IDLE_TIMEOUT_MS` 优先于此变量用于字节级监视狗。对于每个监视狗未设置默认值,参见 [流式空闲监视狗](/docs/zh-CN/network-config#streaming-idle-watchdogs) |422| `CLAUDE_STREAM_IDLE_TIMEOUT_MS` | 事件级和字节级流式空闲监视程序在关闭停滞连接之前的超时时间(以毫秒为单位)。当您明确设置此变量时,最小值为 `300000`(5 分钟);较低的值被无声地限制以吸收扩展思考暂停和代理缓冲,字节级监视程序将值上限为 30 分钟。`CLAUDE_BYTE_STREAM_IDLE_TIMEOUT_MS` 优先于此变量用于字节级监视程序。对于每个监视程序未设置默认值,请参阅 [流式空闲监视程序](/docs/zh-CN/network-config#streaming-idle-watchdogs) |

416| `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) |423| `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) |

417| `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:*`)不触发它 |424| `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:*`)不会触发它 |

418| `DISABLE_AUTOUPDATER` | 设置为 `1` 以禁用自动后台更新。手动 `claude update` 仍然有效。使用 `DISABLE_UPDATES` 以阻止两者 |425| `DISABLE_AUTOUPDATER` | 设置为 `1` 以禁用自动后台更新。手动 `claude update` 仍然有效。使用 `DISABLE_UPDATES` 阻止两者 |

419| `DISABLE_AUTO_COMPACT` | 设置为 `1` 以在接近上下文限制时禁用自动压缩。手动 `/compact` 命令保持可用。在您想要显式控制何时压缩时使用。覆盖 [`autoCompactEnabled`](/docs/zh-CN/settings-reference#autocompactenabled) 设置 |426| `DISABLE_AUTO_COMPACT` | 设置为 `1` 以在接近上下文限制时禁用自动压缩。手动 `/compact` 命令保持可用。当您想明确控制何时压缩时使用。覆盖 [`autoCompactEnabled`](/docs/zh-CN/settings-reference#autocompactenabled) 设置 |

420| `DISABLE_COMPACT` | 设置为 `1` 以禁用所有压缩:自动压缩和手动 `/compact` 命令 |427| `DISABLE_COMPACT` | 设置为 `1` 以禁用所有压缩:自动压缩和手动 `/compact` 命令 |

421| `DISABLE_COST_WARNINGS` | 设置为 `1` 以禁用成本警告消息 |428| `DISABLE_COST_WARNINGS` | 设置为 `1` 以禁用成本警告消息 |

422| `DISABLE_DOCTOR_COMMAND` | 设置为 `1` 以隐藏 [`/doctor`](/docs/zh-CN/commands#all-commands) 设置检查 skill 及其 `/checkup` 别名。对于用户不应从会话运行设置诊断的托管部署很有用。不影响 `claude doctor` 终端命令。在 v2.1.205 之前,此变量隐藏了 `/doctor` 诊断屏幕命令 |429| `DISABLE_DOCTOR_COMMAND` | 设置为 `1` 以隐藏 [`/doctor`](/docs/zh-CN/commands#all-commands) 设置检查 skill 及其 `/checkup` 别名。对于用户不应从会话运行设置诊断的托管部署很有用。不影响 `claude doctor` 终端命令。在 v2.1.205 之前,此变量隐藏了 `/doctor` 诊断屏幕命令 |


434| `DISABLE_PROMPT_CACHING_HAIKU` | 设置为 `1` 以为 Haiku 模型禁用提示缓存 |441| `DISABLE_PROMPT_CACHING_HAIKU` | 设置为 `1` 以为 Haiku 模型禁用提示缓存 |

435| `DISABLE_PROMPT_CACHING_OPUS` | 设置为 `1` 以为 Opus 模型禁用提示缓存 |442| `DISABLE_PROMPT_CACHING_OPUS` | 设置为 `1` 以为 Opus 模型禁用提示缓存 |

436| `DISABLE_PROMPT_CACHING_SONNET` | 设置为 `1` 以为 Sonnet 模型禁用提示缓存 |443| `DISABLE_PROMPT_CACHING_SONNET` | 设置为 `1` 以为 Sonnet 模型禁用提示缓存 |

437| `DISABLE_TELEMETRY` | 设置为任何非空值(如 `1`)以选择退出遥测。**将其设置为 `0` 或 `false` 仍会选择退出**,与大多数打开/关闭变量不同;取消设置变量以重新打开遥测。遥测事件不包括用户数据,如代码、文件路径或 bash 命令。也禁用功能标志获取,效果与 `DISABLE_GROWTHBOOK` 相同,这使 [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) |444| `DISABLE_TELEMETRY` | 设置为任何非空值(如 `1`)以选择退出遥测。**将其设置为 `0` 或 `false` 仍会选择退出**,与大多数打开/关闭变量不同;取消设置变量以重新打开遥测。遥测事件不包括用户数据,如代码、文件路径或 bash 命令。也禁用功能标志获取,效果与 `DISABLE_GROWTHBOOK` 相同,这使 [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) |

438| `DISABLE_UPDATES` | 设置为 `1` 以阻止所有更新,包括手动 `claude update` 和 `claude install`。比 `DISABLE_AUTOUPDATER` 更严格。在通过您自己的渠道分发 Claude Code 且用户不应自我更新时使用 |445| `DISABLE_UPDATES` | 设置为 `1` 以阻止所有更新,包括手动 `claude update` 和 `claude install`。比 `DISABLE_AUTOUPDATER` 更严格。在通过您自己的渠道分发 Claude Code 且用户不应自我更新时使用 |

439| `DISABLE_UPGRADE_COMMAND` | 设置为 `1` 以隐藏 `/upgrade` 命令 |446| `DISABLE_UPGRADE_COMMAND` | 设置为 `1` 以隐藏 `/upgrade` 命令 |

440| `DO_NOT_TRACK` | 设置为 `1` 以选择退出遥测,效果与 `DISABLE_TELEMETRY` 相同,包括使 [Remote Control](/docs/zh-CN/remote-control#requirements) 和其他 [需要功能标志获取的功能](#features-that-need-feature-flag-fetching) 不可用。Claude Code 将此变量读作标准布尔值,因此 `0` 保持遥测打开,并将其视为许多开发者 CLI 识别的跨工具约定 |447| `DO_NOT_TRACK` | 设置为 `1` 以选择退出遥测,效果与 `DISABLE_TELEMETRY` 相同,包括使 [Remote Control](/docs/zh-CN/remote-control#requirements) 和其他 [需要功能标志获取的功能](#features-that-need-feature-flag-fetching) 不可用。Claude Code 将此变量读作标准布尔值,因此 `0` 保持遥测打开,并将其视为许多开发者 CLI 识别的跨工具约定 |

441| `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) 中被忽略 |448| `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) 中被忽略 |

442| `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) |449| `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) |

443| `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`,它们优先于此变量 |450| `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`,它们优先于此变量 |

444| `ENABLE_PROMPT_CACHING_1H_BEDROCK` | 已弃用。改用 `ENABLE_PROMPT_CACHING_1H` |451| `ENABLE_PROMPT_CACHING_1H_BEDROCK` | 已弃用。改用 `ENABLE_PROMPT_CACHING_1H` |

445| `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` |452| `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` |

446| `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) 用于任何主模型,因此此变量不影响切换到回退模型 |453| `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),用于任何主模型,因此此变量不影响切换到回退模型 |

447| `FORCE_AUTOUPDATE_PLUGINS` | 设置为 `1` 以强制插件自动更新,即使主自动更新通过 `DISABLE_AUTOUPDATER` 禁用 |454| `FORCE_AUTOUPDATE_PLUGINS` | 设置为 `1` 以强制插件自动更新,即使主自动更新器通过 `DISABLE_AUTOUPDATER` 禁用 |

448| `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` 以将徽章呈现为纯文本 |455| `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` 以呈现徽章为纯文本 |

449| `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` 设置 |456| `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` 设置 |

450| `HTTP_PROXY` | 为网络连接指定 HTTP 代理服务器 |457| `HTTP_PROXY` | 为网络连接指定 HTTP 代理服务器 |

451| `HTTPS_PROXY` | 为网络连接指定 HTTPS 代理服务器 |458| `HTTPS_PROXY` | 为网络连接指定 HTTPS 代理服务器 |

452| `IS_DEMO` | 设置为任何非空值(如 `1`)以启用演示模式:从标头和 `/status` 输出中隐藏您的电子邮件和组织名称,并跳过入职。**将其设置为 `0` 或 `false` 仍启用演示模式**,与大多数打开/关闭变量不同;取消设置变量以关闭它。在流式传输或录制会话时很有用 |459| `IS_DEMO` | 设置为任何非空值(如 `1`)以启用演示模式:从标头和 `/status` 输出隐藏您的电子邮件和组织名称,并跳过入职。**将其设置为 `0` 或 `false` 仍会启用演示模式**,与大多数打开/关闭变量不同;取消设置变量以关闭它。在流式传输或录制会话时很有用 |

453| `MAX_MCP_OUTPUT_TOKENS` | MCP 工具响应中允许的最大令牌数。当输出超过 10,000 令牌时 Claude Code 显示警告。声明 [`anthropic/maxResultSizeChars`](/docs/zh-CN/mcp#raise-the-limit-for-a-specific-tool) 的工具对文本内容使用该字符限制,但来自这些工具的图像内容仍受此变量约束(默认值:25000) |460| `MAX_MCP_OUTPUT_TOKENS` | MCP 工具响应中允许的最大令牌数。Claude Code 在输出超过 10,000 令牌时显示警告。声明 [`anthropic/maxResultSizeChars`](/docs/zh-CN/mcp#raise-the-limit-for-a-specific-tool) 的工具对文本内容使用该字符限制,但来自这些工具的图像内容仍受此变量约束(默认值:25000) |

454| `MAX_STRUCTURED_OUTPUT_RETRIES` | 当模型的响应未能针对非交互模式中的 [`--json-schema`](/docs/zh-CN/cli-reference#cli-flags) 进行验证时,Claude Code 允许的尝试次数,使用 `-p` 标志;在那么多失败的尝试后没有有效输出,运行失败。当 [工作流](/docs/zh-CN/workflows) 子代理的结构化输出未能验证时,相同的上限适用。默认为 5,第一次尝试加四次重试 |461| `MAX_STRUCTURED_OUTPUT_RETRIES` | 当模型的响应在非交互模式下使用 `-p` 标志的 [`--json-schema`](/docs/zh-CN/cli-reference#cli-flags) 验证失败时,Claude Code 允许的尝试次数;在那么多失败的尝试后没有有效输出,运行失败。当 [工作流](/docs/zh-CN/workflows) 子代理的结构化输出验证失败时,相同的上限适用。默认为 5,第一次尝试加四次重试 |

455| `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 上禁用思考,除了 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 关闭自适应推理的模型 |462| `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 上禁用思考,除了 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`) |

456| `MCP_CLIENT_SECRET` | 需要 [预配置凭证](/docs/zh-CN/mcp#use-pre-configured-oauth-credentials) 的 MCP 服务器的 OAuth 客户端密钥。在使用 `--client-secret` 添加服务器时避免交互式提示 |463| `MCP_CLIENT_SECRET` | 需要 [预配置凭证](/docs/zh-CN/mcp#use-pre-configured-oauth-credentials) 的 MCP 服务器的 OAuth 客户端密钥。在使用 `--client-secret` 添加服务器时避免交互式提示 |

457| `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`)中,Claude Code 也在第一个转之前等待仍然待处理的服务器,当您显式传递 [`--mcp-config`](/docs/zh-CN/cli-reference#cli-flags) 时有更长的截止时间;参见该标志的条目了解缓存服务器异常 |464| `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) 时,等待有更长的截止时间;请参阅该标志的条目了解缓存服务器异常 |

458| `MCP_CONNECT_TIMEOUT_MS` | 阻塞 MCP 启动等待连接批次的时间(毫秒),然后快照工具列表(默认值:5000)。当 `MCP_CONNECTION_NONBLOCKING=0` 或对于标记为 [`alwaysLoad: true`](/docs/zh-CN/mcp#exempt-a-server-from-deferral) 的服务器时应用。仍然待处理的服务器在截止时间处继续在后台连接。与 `MCP_TIMEOUT` 不同,后者限制单个服务器的连接尝试 |465| `MCP_CONNECT_TIMEOUT_MS` | 阻塞 MCP 启动在快照工具列表之前等待连接批次的时间(以毫秒为单位)(默认值:5000)。当 `MCP_CONNECTION_NONBLOCKING=0` 或对于标记为 [`alwaysLoad: true`](/docs/zh-CN/mcp#exempt-a-server-from-deferral) 的服务器时应用。仍然待处理的服务器在截止时间处继续在后台连接。与 `MCP_TIMEOUT` 不同,后者界限单个服务器的连接尝试 |

459| `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 或更高版本 |466| `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 或更高版本 |

460| `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 没有上限值 |467| `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 没有上限值 |

461| `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 或更高版本 |468| `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 或更高版本 |

462| `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 没有上限值 |469| `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 没有上限值 |

463| `MCP_OAUTH_CALLBACK_PORT` | OAuth 重定向回调的固定端口,作为在添加具有 [预配置凭证](/docs/zh-CN/mcp#use-pre-configured-oauth-credentials) 的 MCP 服务器时 `--callback-port` 的替代方案 |470| `MCP_OAUTH_CALLBACK_PORT` | OAuth 重定向回调的固定端口,作为在使用 [预配置凭证](/docs/zh-CN/mcp#use-pre-configured-oauth-credentials) 添加 MCP 服务器时 `--callback-port` 的替代方案 |

464| `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 在 Claude Code v2.1.232 或更高版本上探测 HTTP 和 claude.ai 连接器服务器,[MCP 客户端运行时](/docs/zh-CN/mcp#mcp-client-runtimes) 部分列出的异常除外。任何其他值被忽略,调试日志中显示警告。需要 Claude Code v2.1.221 或更高版本 |471| `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 或更高版本 |

465| `MCP_REMOTE_SERVER_CONNECTION_BATCH_SIZE` | 启动期间并行连接的远程 MCP 服务器(HTTP/SSE)的最大数量(默认值:20) |472| `MCP_REMOTE_SERVER_CONNECTION_BATCH_SIZE` | 启动期间并行连接的远程 MCP 服务器(HTTP/SSE)的最大数量(默认值:20) |

466| `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 在 Claude Code v2.1.232 或更高版本上使用 v2,除了该部分说它使用 v1 的地方。在 Claude Code v2.1.221 或更高版本上,v2 运行时检查 MCP OAuth 服务器在其授权响应中返回的发行者,当它不匹配时以以 `Issuer mismatch in authorization response` 开头的错误失败登录。v1 运行时不运行此检查。如果您设置无法识别的值,Claude Code 忽略它并在调试日志中写入警告。Claude Code 每个进程读取一次值。需要 Claude Code v2.1.218 或更高版本 |473| `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 或更高版本 |

467| `MCP_SERVER_CONNECTION_BATCH_SIZE` | 启动期间并行连接的本地 MCP 服务器(stdio)的最大数量(默认值:3) |474| `MCP_SERVER_CONNECTION_BATCH_SIZE` | 启动期间并行连接的本地 MCP 服务器(stdio)的最大数量(默认值:3) |

468| `MCP_TIMEOUT` | MCP 服务器启动的超时时间(毫秒)(默认值:30000,或 30 秒) |475| `MCP_TIMEOUT` | MCP 服务器启动的超时时间(以毫秒为单位)(默认值:30000,或 30 秒) |

469| `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 的值被忽略 |476| `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 的值被忽略 |

470| `NO_PROXY` | 请求将直接发出的域和 IP 列表,绕过代理 |477| `NO_PROXY` | 请求将直接发出的域和 IP 列表,绕过代理 |

471| `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) |478| `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) |

472| `OTEL_LOG_ASSISTANT_RESPONSES` | 设置为 `1` 以在 `assistant_response` OpenTelemetry 日志事件上包含模型的响应文本。未设置时,使用 `OTEL_LOG_USER_PROMPTS` 的值。设置为 `0` 以保持响应被编辑,即使 `OTEL_LOG_USER_PROMPTS` 被设置。需要 Claude Code v2.1.193 或更高版本。参见 [监控](/docs/zh-CN/monitoring-usage#assistant-response-event) |479| `OTEL_LOG_ASSISTANT_RESPONSES` | 设置为 `1` 以在 `assistant_response` OpenTelemetry 日志事件上包含模型的响应文本。未设置时,使用 `OTEL_LOG_USER_PROMPTS` 的值。设置为 `0` 以保持响应被编辑,即使 `OTEL_LOG_USER_PROMPTS` 被设置。需要 Claude Code v2.1.193 或更高版本。请参阅 [监控](/docs/zh-CN/monitoring-usage#assistant-response-event) |

473| `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) |480| `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) |

474| `OTEL_LOG_TOOL_CONTENT` | 设置为 `1` 以在 OpenTelemetry 跨度事件中包含工具输入和输出内容。默认禁用以保护敏感数据。参见 [监控](/docs/zh-CN/monitoring-usage) |481| `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) |

475| `OTEL_LOG_TOOL_DETAILS` | 设置为 `1` 以在 OpenTelemetry 跟踪和日志中包含工具输入参数、MCP 服务器名称、用户创作的工作流名称、工具失败上的原始错误字符串、`api_refusal` 事件上的拒绝 `category` 和其他工具详情。默认禁用以保护 PII。参见 [监控](/docs/zh-CN/monitoring-usage) |482| `OTEL_LOG_TOOL_CONTENT` | 设置为 `1` 以在 `tool.output` OpenTelemetry 跨度事件中包含工具内容。跨度属性在 [自己的门](/docs/zh-CN/monitoring-usage#new-context-gates) 下携带工具内容。需要 [跟踪](/docs/zh-CN/monitoring-usage#traces-beta)。默认禁用以保护敏感数据。请参阅 [监控](/docs/zh-CN/monitoring-usage#tool-output-span-event) |

476| `OTEL_LOG_USER_PROMPTS` | 设置为 `1` 以在 OpenTelemetry 跟踪和日志中包含用户提示文本。默认禁用(提示被编辑)。参见 [监控](/docs/zh-CN/monitoring-usage) |483| `OTEL_LOG_TOOL_DETAILS` | 设置为 `1` 以在 OpenTelemetry 跟踪和日志中包含工具输入参数、MCP 服务器名称、用户创作的工作流名称、工具失败上的原始错误字符串、`api_refusal` 事件上的拒绝 `category` 和其他工具详情。默认禁用以保护 PII。请参阅 [监控](/docs/zh-CN/monitoring-usage) |

477| `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` | 设置为 `false` 以从指标属性中排除帐户 UUID(默认值:包含)。参见 [监控](/docs/zh-CN/monitoring-usage) |484| `OTEL_LOG_USER_PROMPTS` | 设置为 `1` 以在 OpenTelemetry 跟踪和日志中包含用户提示文本。默认禁用(提示被编辑)。请参阅 [监控](/docs/zh-CN/monitoring-usage) |

478| `OTEL_METRICS_INCLUDE_ENTRYPOINT` | 设置为 `true` 以在指标属性中包含会话入口点(默认值:排除)。在 v2.1.152 中添加。参见 [监控](/docs/zh-CN/monitoring-usage) |485| `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` | 设置为 `false` 以从指标属性中排除帐户 UUID(默认值:包含)。请参阅 [监控](/docs/zh-CN/monitoring-usage) |

479| `OTEL_METRICS_INCLUDE_REPOSITORY` | 设置为 `true` 以使用标识会话存储库的 `vcs.*` 属性标记 OpenTelemetry 指标和事件(默认值:排除)。需要 Claude Code v2.1.269 或更高版本。参见 [存储库属性](/docs/zh-CN/monitoring-usage#repository-attributes) |486| `OTEL_METRICS_INCLUDE_ENTRYPOINT` | 设置为 `true` 以在指标属性中包含会话入口点(默认值:排除)。在 v2.1.152 中添加。请参阅 [监控](/docs/zh-CN/monitoring-usage) |

480| `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES` | 从 v2.1.161 开始,Claude Code 将 `OTEL_RESOURCE_ATTRIBUTES` 键附加到指标数据点标签。设置为 `false` 以排除它们(默认值:包含)。参见 [监控](/docs/zh-CN/monitoring-usage#multi-team-organization-support) |487| `OTEL_METRICS_INCLUDE_REPOSITORY` | 设置为 `true` 以使用标识会话存储库的 `vcs.*` 属性标记 OpenTelemetry 指标和事件(默认值:排除)。需要 Claude Code v2.1.269 或更高版本。请参阅 [存储库属性](/docs/zh-CN/monitoring-usage#repository-attributes) |

481| `OTEL_METRICS_INCLUDE_SESSION_ID` | 设置为 `false` 以从指标属性中排除会话 ID(默认值:包含)。参见 [监控](/docs/zh-CN/monitoring-usage) |488| `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES` | 从 v2.1.161 开始,Claude Code 将 `OTEL_RESOURCE_ATTRIBUTES` 密钥附加到指标数据点标签。设置为 `false` 以排除它们(默认值:包含)。请参阅 [监控](/docs/zh-CN/monitoring-usage#multi-team-organization-support) |

482| `OTEL_METRICS_INCLUDE_VERSION` | 设置为 `true` 以在指标属性中包含 Claude Code 版本(默认值:排除)。参见 [监控](/docs/zh-CN/monitoring-usage) |489| `OTEL_METRICS_INCLUDE_SESSION_ID` | 设置为 `false` 以从指标属性中排除会话 ID(默认值:包含)。请参阅 [监控](/docs/zh-CN/monitoring-usage) |

483| `SLASH_COMMAND_TOOL_CHAR_BUDGET` | 覆盖 [Skill 工具](/docs/zh-CN/skills#control-who-invokes-a-skill) 显示的 skill 元数据的字符预算。预算在 1% 的上下文窗口处动态缩放,回退为 8,000 字符。为了向后兼容保留的旧名称 |490| `OTEL_METRICS_INCLUDE_VERSION` | 设置为 `true` 以在指标属性中包含 Claude Code 版本(默认值:排除)。请参阅 [监控](/docs/zh-CN/monitoring-usage) |

484| `TASK_MAX_OUTPUT_LENGTH` | [后台任务](/docs/zh-CN/tools-reference#background-commands) 输出的最大字符数,`TaskOutput` 工具保持(默认值:32000;最大值:160000)。如果您设置 [`taskOutputMaxChars`](/docs/zh-CN/settings-reference#taskoutputmaxchars) 设置,Claude Code 忽略此变量 |491| `SLASH_COMMAND_TOOL_CHAR_BUDGET` | 覆盖 [Skill 工具](/docs/zh-CN/skills#control-who-invokes-a-skill) 显示的 skill 元数据的字符预算。预算在上下文窗口的 1% 处动态缩放,回退为 8,000 字符。为了向后兼容保留的旧名称 |

492| `TASK_MAX_OUTPUT_LENGTH` | 在 v2.1.277 中删除,现在是无操作,与它大小的 `TaskOutput` 工具一起。以前设置 [后台任务](/docs/zh-CN/tools-reference#background-commands) 的最大字符数,`TaskOutput` 工具保留。Claude 改为使用 `Read` 读取后台任务的输出文件 |

485| `USE_BUILTIN_RIPGREP` | 设置为 `0` 以使用系统安装的 `rg` 而不是 Claude Code 包含的 `rg` |493| `USE_BUILTIN_RIPGREP` | 设置为 `0` 以使用系统安装的 `rg` 而不是 Claude Code 包含的 `rg` |

486| `VERTEX_REGION_CLAUDE_3_5_HAIKU` | 使用 Google Cloud's Agent Platform 时覆盖 Claude 3.5 Haiku 的区域 |494| `VERTEX_REGION_CLAUDE_3_5_HAIKU` | 使用 Google Cloud's Agent Platform 时覆盖 Claude 3.5 Haiku 的区域 |

487| `VERTEX_REGION_CLAUDE_3_5_SONNET` | 使用 Google Cloud's Agent Platform 时覆盖 Claude 3.5 Sonnet 的区域 |495| `VERTEX_REGION_CLAUDE_3_5_SONNET` | 使用 Google Cloud's Agent Platform 时覆盖 Claude 3.5 Sonnet 的区域 |


495| `VERTEX_REGION_CLAUDE_4_6_SONNET` | 使用 Google Cloud's Agent Platform 时覆盖 Claude Sonnet 4.6 的区域 |503| `VERTEX_REGION_CLAUDE_4_6_SONNET` | 使用 Google Cloud's Agent Platform 时覆盖 Claude Sonnet 4.6 的区域 |

496| `VERTEX_REGION_CLAUDE_4_7_OPUS` | 使用 Google Cloud's Agent Platform 时覆盖 Claude Opus 4.7 的区域 |504| `VERTEX_REGION_CLAUDE_4_7_OPUS` | 使用 Google Cloud's Agent Platform 时覆盖 Claude Opus 4.7 的区域 |

497| `VERTEX_REGION_CLAUDE_4_8_OPUS` | 使用 Google Cloud's Agent Platform 时覆盖 Claude Opus 4.8 的区域 |505| `VERTEX_REGION_CLAUDE_4_8_OPUS` | 使用 Google Cloud's Agent Platform 时覆盖 Claude Opus 4.8 的区域 |

506| `VERTEX_REGION_CLAUDE_5_5_OPUS` | 使用 Google Cloud's Agent Platform 时覆盖 Claude Opus 5.5 的区域。在 v2.1.280 中添加 |

498| `VERTEX_REGION_CLAUDE_5_OPUS` | 使用 Google Cloud's Agent Platform 时覆盖 Claude Opus 5 的区域。在 v2.1.219 中添加 |507| `VERTEX_REGION_CLAUDE_5_OPUS` | 使用 Google Cloud's Agent Platform 时覆盖 Claude Opus 5 的区域。在 v2.1.219 中添加 |

499| `VERTEX_REGION_CLAUDE_5_SONNET` | 使用 Google Cloud's Agent Platform 时覆盖 Claude Sonnet 5 的区域。在 v2.1.197 中添加 |508| `VERTEX_REGION_CLAUDE_5_SONNET` | 使用 Google Cloud's Agent Platform 时覆盖 Claude Sonnet 5 的区域。在 v2.1.197 中添加 |

500| `VERTEX_REGION_CLAUDE_FABLE_5` | 使用 Google Cloud's Agent Platform 时覆盖 Claude Fable 5 的区域。在 v2.1.170 中添加 |509| `VERTEX_REGION_CLAUDE_FABLE_5` | 使用 Google Cloud's Agent Platform 时覆盖 Claude Fable 5 的区域。在 v2.1.170 中添加 |

501| `VERTEX_REGION_CLAUDE_FABLE_5_1` | 使用 Google Cloud's Agent Platform 时覆盖 Claude Fable 5.1 的区域。在 v2.1.257 中添加 |510| `VERTEX_REGION_CLAUDE_FABLE_5_1` | 使用 Google Cloud's Agent Platform 时覆盖 Claude Fable 5.1 的区域。在 v2.1.257 中添加 |

502| `VERTEX_REGION_CLAUDE_HAIKU_4_5` | 使用 Google Cloud's Agent Platform 时覆盖 Claude Haiku 4.5 的区域 |511| `VERTEX_REGION_CLAUDE_HAIKU_4_5` | 使用 Google Cloud's Agent Platform 时覆盖 Claude Haiku 4.5 的区域 |

503 512 

504标准 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) 了解配置详情。513标准 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) 了解配置详情。

505 514 

506<h2 id="features-that-need-feature-flag-fetching">515<h2 id="features-that-need-feature-flag-fetching">

507 需要特性标志获取的功能516 需要特性标志获取的功能


515 524 

516关闭获取后,你无法:525关闭获取后,你无法:

517 526 

527* 让 Claude Code [读取 `AGENTS.md` 文件](/docs/zh-CN/memory#agents-md)作为项目说明;它仅加载 `CLAUDE.md` 文件

518* 在 Pro、Max 和 Team 计划上[默认以自动模式启动会话](/docs/zh-CN/permission-modes#which-mode-a-session-starts-in)528* 在 Pro、Max 和 Team 计划上[默认以自动模式启动会话](/docs/zh-CN/permission-modes#which-mode-a-session-starts-in)

519* 让 VS Code 扩展[读取设置文件以获取起始权限模式](/docs/zh-CN/permission-modes#switch-permission-modes)529* 让 VS Code 扩展[读取设置文件以获取起始权限模式](/docs/zh-CN/permission-modes#switch-permission-modes)

520* 运行 [`/auto-mode-setup`](/docs/zh-CN/auto-mode-config#generate-environment-entries) 来草拟 `autoMode.environment` 条目530* 运行 [`/auto-mode-setup`](/docs/zh-CN/auto-mode-config#generate-environment-entries) 来草拟 `autoMode.environment` 条目


522* [消息会话超出此机器](/docs/zh-CN/cross-session-messaging#message-sessions-on-other-machines);此机器上会话之间的消息传递在关闭获取的情况下也能工作532* [消息会话超出此机器](/docs/zh-CN/cross-session-messaging#message-sessions-on-other-machines);此机器上会话之间的消息传递在关闭获取的情况下也能工作

523* 运行 [`claude import` 或 `/import` 命令](/docs/zh-CN/cli-reference#cli-commands)533* 运行 [`claude import` 或 `/import` 命令](/docs/zh-CN/cli-reference#cli-commands)

524* 运行 [`/skill-doctor`](/docs/zh-CN/skills#find-unused-skills) 或在 `/plugin` **Stats** 标签中打开其报告534* 运行 [`/skill-doctor`](/docs/zh-CN/skills#find-unused-skills) 或在 `/plugin` **Stats** 标签中打开其报告

535* 同步为你的 claude.ai 账户启用的[技能](/docs/zh-CN/skills#where-synced-skills-load)和[插件](/docs/zh-CN/plugins-reference#synced-plugins)到你的终端会话中

525* 使用[顾问工具](/docs/zh-CN/advisor#requirements)536* 使用[顾问工具](/docs/zh-CN/advisor#requirements)

526* 读取或回复[工件上的评论](/docs/zh-CN/artifacts#collect-comments-on-an-artifact)537* 读取或回复[工件上的评论](/docs/zh-CN/artifacts#collect-comments-on-an-artifact)

527* 获取 [v2 MCP 客户端运行时](/docs/zh-CN/mcp#mcp-client-runtimes)及其协议探针,除非设置 `MCP_SDK_GENERATION` 和 `MCP_PROTOCOL_NEGOTIATION`;Claude Code 使用 v1 运行时,除非你设置 `MCP_SDK_GENERATION=v2`,并且除非你设置 `MCP_PROTOCOL_NEGOTIATION=auto` 否则跳过探针538* 让 Claude Code 探测 claude.ai 连接器服务器以获取 [MCP 协议修订版本 2026-07-28](/docs/zh-CN/mcp#mcp-client-runtimes),除非你设置 `MCP_PROTOCOL_NEGOTIATION=auto`

528* 默认为 claude.ai 和 Console 账户在安装了 Git Bash 的 Windows 上获取 [PowerShell 工具](/docs/zh-CN/tools-reference#powershell-tool);Claude Code 通过 Git Bash 路由 shell 命令,除非你设置 `CLAUDE_CODE_USE_POWERSHELL_TOOL=1`。在没有 Git Bash 的 Windows 上,该工具保持启用539* 默认为 claude.ai 和 Console 账户在安装了 Git Bash 的 Windows 上获取 [PowerShell 工具](/docs/zh-CN/tools-reference#powershell-tool);Claude Code 通过 Git Bash 路由 shell 命令,除非你设置 `CLAUDE_CODE_USE_POWERSHELL_TOOL=1`。在没有 Git Bash 的 Windows 上,该工具保持启用

529* 获取 [Claude 草拟的反馈](/docs/zh-CN/tools-reference#sendfeedback-tool-behavior),Claude Code 通过获取的标志来启用它540* 获取 [Claude 草拟的反馈](/docs/zh-CN/tools-reference#sendfeedback-tool-behavior),Claude Code 通过获取的标志来启用它

541* 让 Claude [将大型粘贴视为粘贴而非输入的文本](/docs/zh-CN/terminal-config#how-claude-treats-pasted-text);`[Pasted text #N]` 占位符后面的内容到达 Claude 时未标记

530* 让 Claude Code [排除 MCP 工具,其输入架构 API 会拒绝](/docs/zh-CN/mcp#tools-with-invalid-input-schemas);它仍然发送架构,包含它的请求失败并显示[按工具位置命名的 400 错误](/docs/zh-CN/errors#tool-input-schema-is-invalid)542* 让 Claude Code [排除 MCP 工具,其输入架构 API 会拒绝](/docs/zh-CN/mcp#tools-with-invalid-input-schemas);它仍然发送架构,包含它的请求失败并显示[按工具位置命名的 400 错误](/docs/zh-CN/errors#tool-input-schema-is-invalid)

531 543 

532<h3 id="first-session-after-an-install-or-upgrade">544<h3 id="first-session-after-an-install-or-upgrade">

fast-mode.md +12 −7

Details

12 12 

13快速模式是 Claude Opus 的高速配置,使模型速度提高最多 2.5 倍,但每个令牌的成本更高。当您需要速度进行交互式工作(如快速迭代或实时调试)时,使用 `/fast` 将其打开,当成本比延迟更重要时,将其关闭。13快速模式是 Claude Opus 的高速配置,使模型速度提高最多 2.5 倍,但每个令牌的成本更高。当您需要速度进行交互式工作(如快速迭代或实时调试)时,使用 `/fast` 将其打开,当成本比延迟更重要时,将其关闭。

14 14 

15快速模式不是一个不同的模型。它使用 Claude Opus,但采用不同的 API 配置,优先考虑速度而不是成本效率。您获得相同的质量和功能,只是响应速度更快。快速模式在 Opus 5 和 Opus 4.8 上受支持。它在 Sonnet、Haiku 或其他模型上不可用。15快速模式不是一个不同的模型。它使用 Claude Opus,但采用不同的 API 配置,优先考虑速度而不是成本效率。您获得相同的质量和功能,只是响应速度更快。快速模式在 Opus 5.5、Opus 5 和 Opus 4.8 上受支持。它在 Sonnet、Haiku 或其他模型上不可用。

16 16 

17Claude Code 将 Opus 4.7 视为任何其他不支持快速模式的模型:切换到它会关闭快速模式。Opus 4.7 的快速模式已于 2026 年 6 月 25 日弃用,并于 2026 年 7 月 24 日移除。17Opus 4.7 不支持快速模式,因此切换到它会关闭快速模式。Opus 4.7 的快速模式已于 2026 年 6 月 25 日弃用,并于 2026 年 7 月 24 日移除。

18 18 

19需要了解的内容:19需要了解的内容:

20 20 

21* 使用 `/fast` 在 Claude Code CLI 中切换快速模式。VS Code 扩展遵循您的 [`fastMode` 设置](#toggle-fast-mode),并在选定的模型支持快速模式时提供**切换快速模式**命令。21* 使用 `/fast` 在 Claude Code CLI 中切换快速模式。[VS Code 扩展](/docs/zh-CN/vs-code)在选定的模型支持快速模式时提供**切换快速模式**命令。Claude Code 将该切换保存到您的 [`fastMode` 设置](#toggle-fast-mode)。

22* 快速模式定价在 Opus 5 和 Opus 4.8 上为 $10/$50 MTok 输入/输出。22* 快速模式定价在 Opus 5.5 上为 $8/$40 MTok 输入/输出,在 Opus 5 和 Opus 4.8 上为 $10/$50 MTok 输入/输出。

23* 可供订阅计划(Pro/Max/Team/Enterprise)上的 Claude Code 用户和 Claude 控制台使用。Team 和 Enterprise 组织需要所有者先启用它,Console 组织需要先配置访问权限,两者都在[要求](#requirements)下描述。23* 可供订阅计划(Pro/Max/Team/Enterprise)上的 Claude Code 用户和 Claude 控制台使用。Team 和 Enterprise 组织需要所有者先启用它,Console 组织需要先配置访问权限,两者都在[要求](#requirements)下描述。

24* 对于订阅计划(Pro/Max/Team/Enterprise)上的 Claude Code 用户,快速模式仅通过使用额度提供,不包含在订阅速率限制中。24* 对于订阅计划(Pro/Max/Team/Enterprise)上的 Claude Code 用户,快速模式仅通过使用额度提供,不包含在订阅速率限制中。

25 25 


29 29 

30在 CLI 中,通过以下任一方式切换快速模式:30在 CLI 中,通过以下任一方式切换快速模式:

31 31 

32* 输入 `/fast` 并按 Tab 键打开或关闭32* 运行 `/fast`,按空格键打开或关闭,然后按 Enter 键确认

33* 在您的[用户设置文件](/docs/zh-CN/settings)中设置 `"fastMode": true`33* 在您的[用户设置文件](/docs/zh-CN/settings)中设置 `"fastMode": true`

34 34 

35默认情况下,在交互式会话中打开的快速模式在会话之间保持。您可以配置快速模式在每个会话时重置。有关详细信息,请参阅[要求每个会话选择加入](#require-per-session-opt-in)。35默认情况下,在交互式会话中打开的快速模式在会话之间保持。您可以配置快速模式在每个会话时重置。有关详细信息,请参阅[要求每个会话选择加入](#require-per-session-opt-in)。


47* 快速模式处于活动状态时,提示旁边会出现一个小的 `↯` 图标47* 快速模式处于活动状态时,提示旁边会出现一个小的 `↯` 图标

48* 随时再次运行 `/fast` 以检查快速模式是否打开或关闭48* 随时再次运行 `/fast` 以检查快速模式是否打开或关闭

49 49 

50Opus 5 是 Claude Code v2.1.219 及更高版本中的快速模式默认值。在 v2.1.219 之前,快速模式在 v2.1.154 到 v2.1.218 版本中默认为 Opus 4.8,在 v2.1.142 到 v2.1.153 版本中默认为 Opus 4.7。50Opus 5.5 是 Claude Code v2.1.280 及更高版本中的快速模式默认值。在 v2.1.280 之前,快速模式在 v2.1.219 版本中默认为 Opus 5,在 v2.1.154 到 v2.1.218 版本中默认为 Opus 4.8,在 v2.1.142 到 v2.1.153 版本中默认为 Opus 4.7。

51 51 

52当您再次使用 `/fast` 禁用快速模式时,您仍然保持在 Opus 上。要切换到不同的模型,请使用 `/model`。52当您再次使用 `/fast` 禁用快速模式时,您仍然保持在 Opus 上。要切换到不同的模型,请使用 `/model`。

53 53 


80 80 

81| 模型 | 输入 (MTok) | 输出 (MTok) |81| 模型 | 输入 (MTok) | 输出 (MTok) |

82| -------- | --------- | --------- |82| -------- | --------- | --------- |

83| Opus 5.5 | \$8 | \$40 |

83| Opus 5 | \$10 | \$50 |84| Opus 5 | \$10 | \$50 |

84| Opus 4.8 | \$10 | \$50 |85| Opus 4.8 | \$10 | \$50 |

85 86 


145* **团队和企业的所有者启用**:快速模式默认对团队和企业组织禁用。所有者必须明确[启用快速模式](#enable-fast-mode-for-your-organization),用户才能访问它。146* **团队和企业的所有者启用**:快速模式默认对团队和企业组织禁用。所有者必须明确[启用快速模式](#enable-fast-mode-for-your-organization),用户才能访问它。

146 147 

147<Note>148<Note>

148 两个组织设置可以阻止使用 `/fast` 启用快速模式:149 四个组织设置可以阻止使用 `/fast` 启用快速模式:

149 150 

150 * **快速模式未启用**:如果您的组织尚未启用快速模式,使用 `/fast` 启用快速模式会显示"Fast mode has been disabled by your organization."。151 * **快速模式未启用**:如果您的组织尚未启用快速模式,使用 `/fast` 启用快速模式会显示"Fast mode has been disabled by your organization."。

152 * **快速模式被托管设置关闭**:如果您的组织部署[托管设置](/docs/zh-CN/managed-settings),设置 [`fastMode: false`](/docs/zh-CN/settings-reference#fastmode),使用 `/fast` 启用快速模式会显示相同的"Fast mode has been disabled by your organization"消息。

153 * **需要每个会话选择加入**:托管设置设置 [`fastModePerSessionOptIn: true`](#require-per-session-opt-in) 在除交互式终端会话外的任何地方都拒绝 `/fast on`,显示相同的消息。

151 * **快速模式模型不允许**:如果您的组织的 [`availableModels`](/docs/zh-CN/model-config#restrict-model-selection) 允许列表排除了快速模式 Opus 模型,启用它会被拒绝,显示"is not in your organization's allowed models"。在已在支持快速模式的允许 Opus 模型上运行的会话中,`/fast` 改为在您当前的模型上启用快速模式,而不是切换模型。154 * **快速模式模型不允许**:如果您的组织的 [`availableModels`](/docs/zh-CN/model-config#restrict-model-selection) 允许列表排除了快速模式 Opus 模型,启用它会被拒绝,显示"is not in your organization's allowed models"。在已在支持快速模式的允许 Opus 模型上运行的会话中,`/fast` 改为在您当前的模型上启用快速模式,而不是切换模型。

152</Note>155</Note>

153 156 


204 207 

205这对于在用户运行多个并发会话的组织中控制成本很有用。用户的快速模式偏好仍然被保存,因此删除此设置会恢复默认的持久行为。208这对于在用户运行多个并发会话的组织中控制成本很有用。用户的快速模式偏好仍然被保存,因此删除此设置会恢复默认的持久行为。

206 209 

210当托管设置设置该密钥时,`/fast on` 仅在交互式终端会话中有效。在其他任何地方,包括[非交互式模式](/docs/zh-CN/headless)、[VS Code 扩展](/docs/zh-CN/vs-code)和[云会话](#use-fast-mode-in-cloud-sessions),它会被拒绝,显示您的组织已禁用快速模式的消息。

211 

207<h2 id="handle-rate-limits">212<h2 id="handle-rate-limits">

208 处理速率限制213 处理速率限制

209</h2>214</h2>

Details

21扩展插入代理循环的不同部分:21扩展插入代理循环的不同部分:

22 22 

23* **[CLAUDE.md](/docs/zh-CN/memory)** 添加 Claude 每个会话都能看到的持久上下文23* **[CLAUDE.md](/docs/zh-CN/memory)** 添加 Claude 每个会话都能看到的持久上下文

24* **[输出样式](/docs/zh-CN/output-styles)** 为会话中的每个响应设置 Claude 的角色、语气和响应格式

24* **[Skills](/docs/zh-CN/skills)** 添加可重用的知识和可调用的工作流25* **[Skills](/docs/zh-CN/skills)** 添加可重用的知识和可调用的工作流

25* **[代码智能](/docs/zh-CN/tools-reference#lsp-tool-behavior)** 将 Claude 连接到语言服务器,用于符号级导航和实时类型错误26* **[代码智能](/docs/zh-CN/tools-reference#lsp-tool-behavior)** 将 Claude 连接到语言服务器,用于符号级导航和实时类型错误

26* **[MCP](/docs/zh-CN/mcp)** 将 Claude 连接到外部服务和工具27* **[MCP](/docs/zh-CN/mcp)** 将 Claude 连接到外部服务和工具


39功能范围从 Claude 每个会话都能看到的始终开启的上下文,到您或 Claude 可以调用的按需功能,再到在特定事件上运行的后台自动化。下表显示了可用的功能以及何时使用每个功能。40功能范围从 Claude 每个会话都能看到的始终开启的上下文,到您或 Claude 可以调用的按需功能,再到在特定事件上运行的后台自动化。下表显示了可用的功能以及何时使用每个功能。

40 41 

41| 功能 | 作用 | 何时使用 | 示例 |42| 功能 | 作用 | 何时使用 | 示例 |

42| ----------------------------------------------------------------- | -------------------------------------- | ------------------------------- | --------------------------------------- |43| ----------------------------------------------------------------- | -------------------------------------- | ------------------------------------------- | ---------------------------------------- |

43| **CLAUDE.md** | 每次对话加载的持久上下文 | 项目约定、"始终执行 X" 规则 | "使用 pnpm,而不是 npm。提交前运行测试。" |44| **CLAUDE.md** | 每次对话加载的持久上下文 | 项目约定、"始终执行 X" 规则 | "使用 pnpm,而不是 npm。提交前运行测试。" |

45| **[Output style](/docs/zh-CN/output-styles)** | 为整个会话设置 Claude 的角色、语气和响应格式的说明 | 您想在每个响应中使用的声音、长度或格式,或 Claude 作为软件工程师以外的角色工作 | 用于较短响应的内置 Concise 风格;一个自定义风格,首先用图表回答每个问题 |

44| **Skill** | Claude 可以使用的说明、知识和工作流 | 可重用内容、参考文档、可重复的任务 | `/deploy` 运行您的部署清单;包含端点模式的 API 文档 skill |46| **Skill** | Claude 可以使用的说明、知识和工作流 | 可重用内容、参考文档、可重复的任务 | `/deploy` 运行您的部署清单;包含端点模式的 API 文档 skill |

45| **Subagent** | 返回摘要结果的隔离执行上下文 | 上下文隔离、并行任务、专门的工作者 | 读取许多文件但仅返回关键发现的研究任务 |47| **Subagent** | 返回摘要结果的隔离执行上下文 | 上下文隔离、并行任务、专门的工作者 | 读取许多文件但仅返回关键发现的研究任务 |

46| **[Dynamic workflow](/docs/zh-CN/workflows)** | Claude 编写的脚本,在后台运行许多 subagents | 超出少数 subagents 范围的工作,或您想交叉检查的发现 | 审计整个代码库,第二组代理验证每个发现 |48| **[Dynamic workflow](/docs/zh-CN/workflows)** | Claude 编写的脚本,在后台运行许多 subagents | 超出少数 subagents 范围的工作,或您想交叉检查的发现 | 审计整个代码库,第二组代理验证每个发现 |


59您不需要提前配置所有内容。每个功能都有一个可识别的触发器,大多数团队大致按以下顺序添加它们:61您不需要提前配置所有内容。每个功能都有一个可识别的触发器,大多数团队大致按以下顺序添加它们:

60 62 

61| 触发器 | 添加 |63| 触发器 | 添加 |

62| :-------------------------- | :---------------------------------------------------------------------------- |64| :----------------------------- | :---------------------------------------------------------------------------- |

63| Claude 两次出错约定或命令 | 将其添加到 [CLAUDE.md](/docs/zh-CN/memory) |65| Claude 两次出错约定或命令 | 将其添加到 [CLAUDE.md](/docs/zh-CN/memory) |

66| 您一直在要求 Claude 更简洁、解释更多或以相同格式回答 | 设置 [output style](/docs/zh-CN/output-styles) |

64| 您一直在输入相同的提示来启动任务 | 将其保存为用户可调用的 [skill](/docs/zh-CN/skills) |67| 您一直在输入相同的提示来启动任务 | 将其保存为用户可调用的 [skill](/docs/zh-CN/skills) |

65| 您第三次将相同的剧本或多步骤过程粘贴到聊天中 | 将其捕获为 [skill](/docs/zh-CN/skills) |68| 您第三次将相同的剧本或多步骤过程粘贴到聊天中 | 将其捕获为 [skill](/docs/zh-CN/skills) |

66| 您一直在从 Claude 看不到的浏览器标签页复制数据 | 将该系统连接为 [MCP server](/docs/zh-CN/mcp) |69| 您一直在从 Claude 看不到的浏览器标签页复制数据 | 将该系统连接为 [MCP server](/docs/zh-CN/mcp) |


115 **经验法则:** 保持 CLAUDE.md 在 200 行以下。如果它在增长,将参考内容移到 skills 或拆分为 [`.claude/rules/`](/docs/zh-CN/memory#organize-rules-with-claude%2Frules%2F) 文件。118 **经验法则:** 保持 CLAUDE.md 在 200 行以下。如果它在增长,将参考内容移到 skills 或拆分为 [`.claude/rules/`](/docs/zh-CN/memory#organize-rules-with-claude%2Frules%2F) 文件。

116 </Tab>119 </Tab>

117 120 

121 <Tab title="CLAUDE.md vs Output style">

122 两者都给 Claude 常设说明。CLAUDE.md 包含 Claude 应该知道的内容,output style 设置 Claude 如何响应。

123 

124 | 方面 | CLAUDE.md | Output style |

125 | ------- | --------------------- | -------------------------------------------------------------- |

126 | **包含** | 关于您的项目的事实和规则 | 角色、语气和响应格式 |

127 | **切换** | 始终加载 | 一次一个活跃;[随时切换风格](/docs/zh-CN/output-styles#change-your-output-style) |

128 | **最适合** | 构建命令、约定、"永远不要执行 X" 规则 | 更短的响应、代码旁边的解释、非工程角色 |

129 

130 **如果它对项目为真,无论您使用什么风格,请将其放在 CLAUDE.md 中**:编码约定、构建命令、项目结构。

131 

132 **如果它关于响应本身,您可能想再次关闭它,请使用 output style**:长度、格式、Claude 解释多少,或不同的角色,如写作助手。Claude Code 包括 [内置风格](/docs/zh-CN/output-styles#built-in-output-styles),您可以编写自己的。

133 

134 **它们结合。** CLAUDE.md 保持加载,无论您选择什么风格。Claude 遵循两者作为说明,所以都不是强制执行的。对于必须每次都发生的任何事情,使用 [hook](/docs/zh-CN/hooks-guide)。

135 </Tab>

136 

118 <Tab title="CLAUDE.md vs Rules vs Skills">137 <Tab title="CLAUDE.md vs Rules vs Skills">

119 所有三者都存储说明,但它们的加载方式不同:138 所有三者都存储说明,但它们的加载方式不同:

120 139 


187 206 

188功能可以在多个级别定义:用户范围、每个项目、通过 plugins 或通过托管策略。您还可以在子目录中嵌套 CLAUDE.md 文件或在 monorepo 的特定包中放置 skills。当相同的功能存在于多个级别时,以下是它们的分层方式:207功能可以在多个级别定义:用户范围、每个项目、通过 plugins 或通过托管策略。您还可以在子目录中嵌套 CLAUDE.md 文件或在 monorepo 的特定包中放置 skills。当相同的功能存在于多个级别时,以下是它们的分层方式:

189 208 

190* **CLAUDE.md 文件** 是累加的:所有级别同时向 Claude 的上下文贡献内容。来自您的工作目录及以上的文件在启动时加载;子目录在您在其中工作时加载。当说明冲突时,Claude 使用判断来协调它们,更具体的说明通常优先。有关详细信息,请参阅 [CLAUDE.md 文件如何加载](/docs/zh-CN/memory#how-claude-md-files-load)。209* **CLAUDE.md 文件** 是累加的:所有级别同时向 Claude 的上下文贡献内容。来自您的工作目录及以上的文件在启动时加载;子目录在您在其中工作时加载。当说明冲突时,Claude 使用判断来协调它们。有关详细信息,请参阅 [CLAUDE.md 文件如何加载](/docs/zh-CN/memory#how-claude-md-files-load)。

191* **Skills 和 subagents** 按名称覆盖:当相同的名称存在于多个级别时,一个定义根据优先级获胜(对于 skills 为托管 > 用户 > 项目;对于 subagents 为托管 > CLI 标志 > 项目 > 用户 > plugin)。Plugin skills 是 [命名空间的](/docs/zh-CN/plugins#add-skills-to-your-plugin) 以避免冲突。有关详细信息,请参阅 [skill 发现](/docs/zh-CN/skills#resolve-skills-that-share-a-name) 和 [subagent 范围](/docs/zh-CN/sub-agents#choose-the-subagent-scope)。210* **Skills 和 subagents** 按名称覆盖:当相同的名称存在于多个级别时,一个定义根据优先级获胜(对于 skills 为托管 > 用户 > 项目;对于 subagents 为托管 > CLI 标志 > 项目 > 用户 > plugin)。Plugin skills 是 [命名空间的](/docs/zh-CN/plugins#add-skills-to-your-plugin) 以避免冲突。有关详细信息,请参阅 [skill 发现](/docs/zh-CN/skills#resolve-skills-that-share-a-name) 和 [subagent 范围](/docs/zh-CN/sub-agents#choose-the-subagent-scope)。

192* **MCP 服务器** 按名称覆盖:本地 > 项目 > 用户。有关详细信息,请参阅 [MCP 范围](/docs/zh-CN/mcp#scope-hierarchy-and-precedence)。211* **MCP 服务器** 按名称覆盖:本地 > 项目 > 用户。有关详细信息,请参阅 [MCP 范围](/docs/zh-CN/mcp#scope-hierarchy-and-precedence)。

193* **Hooks** 合并:所有注册的 hooks 为其匹配的事件触发,无论来源如何。有关详细信息,请参阅 [hooks](/docs/zh-CN/hooks)。212* **Hooks** 合并:所有注册的 hooks 为其匹配的事件触发,无论来源如何。有关详细信息,请参阅 [hooks](/docs/zh-CN/hooks)。


220每个功能都有不同的加载策略和上下文成本:239每个功能都有不同的加载策略和上下文成本:

221 240 

222| 功能 | 何时加载 | 加载内容 | 上下文成本 |241| 功能 | 何时加载 | 加载内容 | 上下文成本 |

223| --------------------- | ---------- | ----------------------------------------------------------------------------------- | ----------------- |242| --------------------- | ------------------ | ----------------------------------------------------------------------------------- | ----------------- |

224| **CLAUDE.md** | 会话开始 | 完整内容 | 每个请求 |243| **CLAUDE.md** | 会话开始 | 完整内容 | 每个请求 |

244| **Output styles** | 会话开始,以及当您切换样式时再次加载 | 活跃样式的完整说明;默认样式无内容 | 每个请求 |

225| **Skills** | 会话开始 + 使用时 | 启动时的描述,使用时的完整内容 | 低(每个请求的描述)\* |245| **Skills** | 会话开始 + 使用时 | 启动时的描述,使用时的完整内容 | 低(每个请求的描述)\* |

226| **MCP 服务器** | 会话开始 | 工具名称;完整架构按需 | 低,直到使用工具 |246| **MCP 服务器** | 会话开始 | 工具名称;完整架构按需 | 低,直到使用工具 |

227| **Code intelligence** | 文件编辑后和按需 | 编辑后的诊断;符号查找时的位置信息 | 低;减少其他地方的文件读取 |247| **Code intelligence** | 文件编辑后和按需 | 编辑后的诊断;符号查找时的位置信息 | 低;减少其他地方的文件读取 |

fullscreen.md +2 −2

Details

234 234 

235运行 `/clear` 来开始新的对话。235运行 `/clear` 来开始新的对话。

236 236 

237要清除屏幕并保留对话,请按 `Ctrl+L`。之前的消息会向上滚出视图,你可以用 `PgUp` 或鼠标滚轮向上滚动来重新阅读它们。在 v2.1.260 之前,`Ctrl+L` 会重绘屏幕而不清除它。在 v2.1.238 之前,在两秒内按两次会运行 `/clear`。237如果显示看起来混乱或部分空白,按 `Ctrl+L` 来重绘屏幕。重绘会保持对话和你的输入原位。

238 238 

239当你的终端将 `Cmd+K` 传递给 Claude Code 时,它的作用与 `Ctrl+L` 相同。iTerm2 和 Terminal.app 自己处理 `Cmd+K`,Claude Code 会重绘对话而不是清除它,所以在这些终端上请按 `Ctrl+L`。239`Cmd+K` 在你的终端将其传递给 Claude Code 时的作用与 `Ctrl+L` 相同。iTerm2 和 Terminal.app 自己处理 `Cmd+K` 并清除自己的屏幕,Claude Code 检测到清除的屏幕并重新绘制对话。在 v2.1.280 之前,从 v2.1.260 开始,按 `Ctrl+L` 或 `Cmd+K`(到达 Claude Code 的地方)会在全屏渲染中清除屏幕。在 v2.1.238 之前,在两秒内按两次 `Ctrl+L` 会运行 `/clear`。

240 240 

241<h2 id="use-with-tmux">241<h2 id="use-with-tmux">

242 与 tmux 一起使用242 与 tmux 一起使用

Details

300 anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}300 anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}

301 prompt: "Generate a summary of yesterday's commits and open issues"301 prompt: "Generate a summary of yesterday's commits and open issues"

302 claude_args: |302 claude_args: |

303 --model claude-opus-4-8303 --model claude-opus-5-5

304 --allowedTools "mcp__github__list_commits,mcp__github__list_issues"304 --allowedTools "mcp__github__list_commits,mcp__github__list_issues"

305```305```

306 306 

glossary.md +12 −0

Details

208 208 

209了解更多:[使用 extended thinking](/docs/zh-CN/model-config#extended-thinking)209了解更多:[使用 extended thinking](/docs/zh-CN/model-config#extended-thinking)

210 210 

211<h2 id="f">

212 F

213</h2>

214 

215<h3 id="frontmatter">

216 Frontmatter

217</h3>

218 

219Markdown 文件最顶部的一个 YAML 设置块,位于开头的 `---` 行和结尾的 `---` 行之间。Skills、subagents、output styles 和 rules 各自从 frontmatter 读取其配置,例如 skill 的 `description` 或 subagent 的 `tools`,并将结尾 `---` 之后的所有内容视为说明。开头的 `---` 必须是文件的第一行。每种文件类型都接受其自己的一组字段。

220 

221了解更多:[Skill frontmatter](/docs/zh-CN/skills#frontmatter-reference)、[Subagent frontmatter](/docs/zh-CN/sub-agents#supported-frontmatter-fields)、[Output style frontmatter](/docs/zh-CN/output-styles#frontmatter)、[Rule frontmatter](/docs/zh-CN/memory#rules-frontmatter-reference)

222 

211<h2 id="h">223<h2 id="h">

212 H224 H

213</h2>225</h2>

Details

238 238 

239将这些环境变量设置为特定的 Google Cloud 的 Agent Platform 模型 ID。239将这些环境变量设置为特定的 Google Cloud 的 Agent Platform 模型 ID。

240 240 

241如果没有 `ANTHROPIC_DEFAULT_OPUS_MODEL`,Google Cloud 的 Agent Platform 上的 `opus` 别名会解析为 Opus 5,如果没有 `ANTHROPIC_DEFAULT_SONNET_MODEL`,`sonnet` 别名会解析为 Sonnet 4.5。此示例将每个别名固定到特定版本:241如果没有 `ANTHROPIC_DEFAULT_OPUS_MODEL`,Google Cloud 的 Agent Platform 上的 `opus` 别名会解析为 Opus 5.5,如果没有 `ANTHROPIC_DEFAULT_SONNET_MODEL`,`sonnet` 别名会解析为 Sonnet 4.5。此示例将每个别名固定到特定版本:

242 242 

243```bash theme={null}243```bash theme={null}

244export ANTHROPIC_DEFAULT_OPUS_MODEL='claude-opus-4-8'244export ANTHROPIC_DEFAULT_OPUS_MODEL='claude-opus-4-8'


252 252 

253| 模型类型 | 默认值 |253| 模型类型 | 默认值 |

254| :------ | :--------------------------- |254| :------ | :--------------------------- |

255| 主模型 | `claude-opus-5` |255| 主模型 | `claude-opus-5-5` |

256| 小型/快速模型 | `claude-sonnet-4-5@20250929` |256| 小型/快速模型 | `claude-sonnet-4-5@20250929` |

257 257 

258后台任务(如会话标题生成)使用小型/快速模型,通常是 Haiku 级别的模型。在 Google Cloud 的 Agent Platform 上,Claude Code 为后台任务使用默认的 Sonnet 模型,因为 Haiku 可能不会在每个项目或区域中启用。两个选择会改变哪个模型执行这些任务:258后台任务(如会话标题生成)使用小型/快速模型,通常是 Haiku 级别的模型。在 Google Cloud 的 Agent Platform 上,Claude Code 为后台任务使用默认的 Sonnet 模型,因为 Haiku 可能不会在每个项目或区域中启用。两个选择会改变哪个模型执行这些任务:


264 Opus 模型的每个令牌价格高于 Sonnet 模型,因此不固定主模型的部署在更新到 v2.1.207 或更高版本后将按 Opus 费率计费。要将 Sonnet 4.5 保持为主模型,请将 `ANTHROPIC_MODEL` 设置为其完整模型 ID。使用 `ANTHROPIC_DEFAULT_SONNET_MODEL` 引导默认值且不设置 `ANTHROPIC_DEFAULT_OPUS_MODEL` 的部署会保持其引导的 Sonnet 模型作为默认值。264 Opus 模型的每个令牌价格高于 Sonnet 模型,因此不固定主模型的部署在更新到 v2.1.207 或更高版本后将按 Opus 费率计费。要将 Sonnet 4.5 保持为主模型,请将 `ANTHROPIC_MODEL` 设置为其完整模型 ID。使用 `ANTHROPIC_DEFAULT_SONNET_MODEL` 引导默认值且不设置 `ANTHROPIC_DEFAULT_OPUS_MODEL` 的部署会保持其引导的 Sonnet 模型作为默认值。

265</Warning>265</Warning>

266 266 

267在 v2.1.207 到 v2.1.218 上,Google Cloud 的 Agent Platform 上的主模型默认为 Opus 4.8,`opus` 别名解析为 Opus 4.8。在 v2.1.207 之前,主模型默认为 Sonnet 4.5,`opus` 别名解析为 Opus 4.6,后台任务始终使用主模型。267在 v2.1.280 之前,Google Cloud 的 Agent Platform 上的主模型默认为 Opus 5,`opus` 别名从 v2.1.219 解析为 Opus 5。在 v2.1.207 到 v2.1.218 上,Google Cloud 的 Agent Platform 上的主模型默认为 Opus 4.8,`opus` 别名解析为 Opus 4.8。在 v2.1.207 之前,主模型默认为 Sonnet 4.5,`opus` 别名解析为 Opus 4.6,后台任务始终使用主模型。

268 268 

269要进一步自定义模型:269要进一步自定义模型:

270 270 

headless.md +2 −2

Details

109cat build-error.txt | claude -p 'concisely explain the root cause of this build error' > output.txt109cat build-error.txt | claude -p 'concisely explain the root cause of this build error' > output.txt

110```110```

111 111 

112使用 `--output-format json`,响应有效负载包括 `total_cost_usd` 和按模型的成本分解,因此脚本调用者可以跟踪每次调用的支出,而无需查询 [使用情况仪表板](/docs/zh-CN/costs)。两个数字都是 [客户端估计](/docs/zh-CN/agent-sdk/cost-tracking),可能与您的实际账单不同。112使用 `--output-format json`,响应有效负载包括 `total_cost_usd` 和按模型的成本分解,因此脚本调用者可以跟踪支出而无需查询 [使用情况仪表板](/docs/zh-CN/costs)。当您使用 `--continue` 或 `--resume` 继续较早的对话时,运行报告对话的整体总计,[包括较早运行的支出](/docs/zh-CN/agent-sdk/cost-tracking#accumulate-costs-across-multiple-calls)。两个数字都是 [客户端估计](/docs/zh-CN/agent-sdk/cost-tracking),可能与您的实际账单不同。

113 113 

114<Note>114<Note>

115 管道 stdin 的上限为 10MB。如果超过上限,Claude Code 会以清晰的错误和非零状态退出。要处理更大的输入,请将内容写入文件并在提示中引用文件路径,而不是管道传输它。115 管道 stdin 的上限为 10MB。如果超过上限,Claude Code 会以清晰的错误和非零状态退出。要处理更大的输入,请将内容写入文件并在提示中引用文件路径,而不是管道传输它。


212* **默认情况下**:subagent 的 `tool_use` 和 `tool_result` 块。212* **默认情况下**:subagent 的 `tool_use` 和 `tool_result` 块。

213* **使用 [`--forward-subagent-text`](/docs/zh-CN/cli-reference#cli-flags) 或 [`CLAUDE_CODE_FORWARD_SUBAGENT_TEXT`](/docs/zh-CN/env-vars)**:subagent 的文本和思考块也是如此,因此您可以重建每个 subagent 的记录。这需要 Claude Code v2.1.211 或更高版本。213* **使用 [`--forward-subagent-text`](/docs/zh-CN/cli-reference#cli-flags) 或 [`CLAUDE_CODE_FORWARD_SUBAGENT_TEXT`](/docs/zh-CN/env-vars)**:subagent 的文本和思考块也是如此,因此您可以重建每个 subagent 的记录。这需要 Claude Code v2.1.211 或更高版本。

214 214 

215当您启用任一选项时,Claude Code 从 [每个嵌套深度的 subagents](/docs/zh-CN/sub-agents#let-subagents-spawn-their-own-subagents) 转发消息:当 subagent 生成其自己的 subagent 时,嵌套 subagent 的消息在 `parent_tool_use_id` 中携带生成它的 Agent 工具调用的 ID,因此您可以通过跟踪这些 ID 来重建完整的嵌套树。在 v2.1.219 之前,来自嵌套 subagents 的消息不会出现在流中。215当您启用任一选项时,Claude Code 从 [每个嵌套深度的 subagents](/docs/zh-CN/sub-agents#let-subagents-spawn-their-own-subagents) 转发消息,无论每个 subagent 是使用 Agent 工具生成的还是作为 [forked skill](/docs/zh-CN/skills#run-skills-in-a-subagent) 启动的。forked skill 生成的 subagents 的消息,以及在 subagent 或另一个 forked skill 内启动的 forked skills,需要 Claude Code v2.1.275 或更高版本。在 `parent_tool_use_id` 中,嵌套 subagent 的消息携带启动它的 Agent 或 Skill 工具调用的 ID,因此您可以通过跟踪这些 ID 来重建完整的嵌套树。在 v2.1.219 之前,来自嵌套 subagents 的消息不会出现在流中。

216 216 

217[在 subagent 中运行](/docs/zh-CN/skills#run-skills-in-a-subagent) 的 Skills 在流中以相同的方式出现:forked skill 的第一条消息是携带驱动运行的 skill 内容的 `user` 消息。如果您启用任一选项,流也会携带 forked skill 的文本和思考块。在 v2.1.265 之前,只有 forked skill 的 `tool_use` 和 `tool_result` 块出现在流中。217[在 subagent 中运行](/docs/zh-CN/skills#run-skills-in-a-subagent) 的 Skills 在流中以相同的方式出现:forked skill 的第一条消息是携带驱动运行的 skill 内容的 `user` 消息。如果您启用任一选项,流也会携带 forked skill 的文本和思考块。在 v2.1.265 之前,只有 forked skill 的 `tool_use` 和 `tool_result` 块出现在流中。

218 218 

hooks.md +240 −237

Details

268| [Skill](/docs/zh-CN/skills) frontmatter | 调用 skill 后的会话其余部分。请参阅[Skills 和代理中的 Hooks](#hooks-in-skills-and-agents) | 是,在 skill 文件中定义 |268| [Skill](/docs/zh-CN/skills) frontmatter | 调用 skill 后的会话其余部分。请参阅[Skills 和代理中的 Hooks](#hooks-in-skills-and-agents) | 是,在 skill 文件中定义 |

269| [Subagent](/docs/zh-CN/sub-agents) frontmatter | 该 subagent 运行时 | 是,在 subagent 文件中定义 |269| [Subagent](/docs/zh-CN/sub-agents) frontmatter | 该 subagent 运行时 | 是,在 subagent 文件中定义 |

270 270 

271[Cloud sessions](/docs/zh-CN/claude-code-on-the-web)不读取您的本地 `~/.claude/settings.json`;那里的 hooks 来自仓库,意味着其 `.claude/settings.json` 在具有一个仓库的会话中以及它在任何会话中声明的插件,以及来自您组织的服务器管理的设置。在[自托管环境](/docs/zh-CN/self-hosted-environments-configuration#permissions-and-tool-approval)中,Claude Code 也运行操作员从运行程序主机的 `~/.claude/` 中播种的 hooks,并且当该文件在[Claude Code 应用的托管源](/docs/zh-CN/managed-settings#how-claude-code-combines-managed-sources)中时,它运行运行程序镜像的托管设置文件中的 hooks,默认情况下仅当服务器管理的设置和 MDM 交付的 Claude Code 策略都不提供托管层时。有关哪些文件到达云会话,请参阅[您的设置中携带的内容](/docs/zh-CN/cloud-environments#what-carries-over-from-your-setup)。271[Cloud sessions](/docs/zh-CN/claude-code-on-the-web)不读取您的本地 `~/.claude/settings.json`;那里的 hooks 来自仓库的 `.claude/settings.json` 在具有一个仓库的会话中,来自[从您的 claude.ai 账户同步的插件](/docs/zh-CN/plugins-reference#synced-plugins),以及来自您组织的服务器管理的设置。在[自托管环境](/docs/zh-CN/self-hosted-environments-configuration#permissions-and-tool-approval)中,Claude Code 也运行操作员从运行程序主机的 `~/.claude/` 中播种的 hooks,并且当该文件在[Claude Code 应用的托管源](/docs/zh-CN/managed-settings#how-claude-code-combines-managed-sources)中时,它运行运行程序镜像的托管设置文件中的 hooks,默认情况下仅当服务器管理的设置和 MDM 交付的 Claude Code 策略都不提供托管层时。有关哪些文件到达云会话,请参阅[您的设置中携带的内容](/docs/zh-CN/cloud-environments#what-carries-over-from-your-setup)。

272 272 

273有关设置文件解析的详细信息,请参阅[设置](/docs/zh-CN/settings)。273有关设置文件解析的详细信息,请参阅[设置](/docs/zh-CN/settings)。

274 274 


1181 Hook 事件1181 Hook 事件

1182</h2>1182</h2>

1183 1183 

1184每个事件对应于 Claude Code 生命周期中的一个点,hooks 可以在该点运行。下面的部分按照生命周期顺序排列:从会话设置到 agentic 循环再到会话结束。每个部分描述事件何时触发、它支持的匹配器、它接收的 JSON 输入,以及如何通过输出控制行为。1184每个事件对应于 Claude Code 生命周期中的一个点,hooks 可以在该点运行。下面的部分按照生命周期顺序排列:从会话设置到 agentic 循环再到会话结束。每个部分描述事件何时触发、它支持哪些匹配器、它接收的 JSON 输入,以及如何通过输出控制行为。

1185 1185 

1186<h3 id="sessionstart">1186<h3 id="sessionstart">

1187 SessionStart1187 SessionStart


1203 1203 

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

1205 1205 

1206当您启动交互式会话、使用 `--continue` 或 `--resume` 在启动时恢复对话、或运行 `/clear` 时,SessionStart hooks 在后台运行。您可以立即输入,恢复的对话出现时无需等待 hooks。Claude 的第一个响应仍然等待 hooks 完成,因此它们的上下文到达 Claude。1206当您启动交互式会话、使用 `--continue` 或 `--resume` 在启动时恢复对话、或运行 `/clear` 时,SessionStart hooks 在后台运行。您可以立即输入,恢复的对话显示时无需等待 hooks。Claude 的第一个响应仍然等待 hooks 完成,因此它们的上下文到达 Claude。

1207 1207 

1208当您在会话内使用 `/resume` 切换对话时,切换等待 hooks 完成。如果您在后台 hooks 仍在运行时运行 `/clear` 或切换到另一个对话,它们返回的任何内容都不适用于会话。1208当您在会话内使用 `/resume` 切换对话时,切换等待 hooks 完成。如果您在后台 hooks 仍在运行时运行 `/clear` 或切换到另一个对话,它们返回的任何内容都不适用于会话。

1209 1209 


1219 1219 

1220| 字段 | 描述 |1220| 字段 | 描述 |

1221| :-------------- | :------------------------------------------------------------------------------------------------------ |1221| :-------------- | :------------------------------------------------------------------------------------------------------ |

1222| `source` | 会话如何启动:新会话为 `"startup"`、恢复的会话为 `"resume"`、`/clear` 后为 `"clear"`、压缩后为 `"compact"`、或从现有会话分叉的新会话为 `"fork"` |1222| `source` | 会话如何启动:新会话为 `"startup"`、恢复的会话为 `"resume"`、`/clear` 后为 `"clear"`、压缩后为 `"compact"`,或从现有会话分叉的新会话为 `"fork"` |

1223| `model` | 活跃的模型标识符。例如在 `/clear` 后或通过对话恢复恢复会话时可能被省略,因此在读取前检查该字段 |1223| `model` | 活跃的模型标识符。它可以被省略,例如在 `/clear` 后或通过对话恢复恢复会话时,因此在读取它之前检查该字段 |

1224| `agent_type` | agent 名称,当您使用 `claude --agent <name>` 启动 Claude Code 时出现 |1224| `agent_type` | agent 名称,当您使用 `claude --agent <name>` 启动 Claude Code 时出现 |

1225| `session_title` | 当前会话标题(如果已设置),例如通过 `--name` 或 `/rename`。发出 `sessionTitle` 的 hook 可以先检查 `session_title` 以避免覆盖用户明确设置的标题 |1225| `session_title` | 当前会话标题(如果已设置),例如通过 `--name` 或 `/rename`。一个发出 `sessionTitle` 的 hook 可以先检查 `session_title` 以避免覆盖用户明确设置的标题 |

1226 1226 

1227当 `source` 为 `"resume"` 或 `"fork"` 且成绩单包含至少一个来自 Claude 的响应时,SessionStart hooks 也会接收下面的四个字段。您的 hook 可以使用它们来报告在第一个请求之前恢复陈旧对话的成本,例如在 [`systemMessage`](#json-output) 中。这些字段需要 Claude Code v2.1.251 或更高版本。1227当 `source` 为 `"resume"` 或 `"fork"` 且成绩单包含至少一个来自 Claude 的响应时,SessionStart hooks 还接收下面的四个字段。您的 hook 可以使用它们在第一个请求之前报告恢复陈旧对话的成本,例如在 [`systemMessage`](#json-output) 中。这些字段需要 Claude Code v2.1.251 或更高版本。

1228 1228 

1229| 字段 | 描述 |1229| 字段 | 描述 |

1230| :---------------------------- | :--------------------------------------------------------------------------------------------- |1230| :---------------------------- | :--------------------------------------------------------------------------------------------- |


1261| `additionalContext` | 在对话开始时添加到 Claude 上下文的字符串,在第一个提示之前。有关文本如何传递以及放入其中的内容,请参阅 [为 Claude 添加上下文](#add-context-for-claude) |1261| `additionalContext` | 在对话开始时添加到 Claude 上下文的字符串,在第一个提示之前。有关文本如何传递以及放入其中的内容,请参阅 [为 Claude 添加上下文](#add-context-for-claude) |

1262| `initialUserMessage` | 用作会话第一个用户消息的字符串。适用于 [非交互模式](/docs/zh-CN/headless),带有 `-p` 标志,即使未提供提示,它也成为第一个回合。如果提供了提示,它作为下一个回合跟随。与 `additionalContext` 不同,后者附加到现有回合,这会创建回合 |1262| `initialUserMessage` | 用作会话第一个用户消息的字符串。适用于 [非交互模式](/docs/zh-CN/headless),带有 `-p` 标志,即使未提供提示,它也成为第一个回合。如果提供了提示,它作为下一个回合跟随。与 `additionalContext` 不同,后者附加到现有回合,这会创建回合 |

1263| `sessionTitle` | 设置会话标题,与 `/rename` 效果相同。用于从启动文件夹、git 分支或 worktree 名称自动命名会话。当 `source` 为 `"startup"`、`"resume"` 或 `"fork"` 时适用;在 `"clear"` 和 `"compact"` 上被忽略 |1263| `sessionTitle` | 设置会话标题,与 `/rename` 效果相同。用于从启动文件夹、git 分支或 worktree 名称自动命名会话。当 `source` 为 `"startup"`、`"resume"` 或 `"fork"` 时适用;在 `"clear"` 和 `"compact"` 上被忽略 |

1264| `watchPaths` | 绝对路径数组,用于在此会话期间监视 [FileChanged](#filechanged) 事件 |1264| `watchPaths` | 要在此会话期间监视 [FileChanged](#filechanged) 事件的绝对路径数组 |

1265| `reloadSkills` | 布尔值。当为 `true` 时,Claude Code 在 SessionStart hooks 完成后重新扫描 [skill](/docs/zh-CN/skills) 和命令目录,因此 hook 安装的 skills 在同一会话中可用,从第一个提示开始 |1265| `reloadSkills` | 布尔值。当为 `true` 时,Claude Code 在 SessionStart hooks 完成后重新扫描 [skill](/docs/zh-CN/skills) 和命令目录,因此 hook 安装的 skills 在同一会话中可用,从第一个提示开始 |

1266 1266 

1267```json theme={null}1267```json theme={null}


1274}1274}

1275```1275```

1276 1276 

1277由于纯 stdout 已经为此事件到达 Claude,仅加载上下文的 hook 可以直接打印到 stdout 而无需构建 JSON。当您需要将上下文与其他字段(如 `sessionTitle`)结合时,使用 JSON 形式。1277由于纯 stdout 已经为此事件到达 Claude,仅加载上下文的 hook 可以直接打印到 stdout,而无需构建 JSON。当您需要将上下文与其他字段(如 `sessionTitle`)结合时,使用 JSON 形式。

1278 1278 

1279当 SessionStart hook 安装或更新 skills 时使用 `reloadSkills`。Skill 发现通常在 SessionStart hooks 完成之前运行,因此 hook 写入 `~/.claude/skills/` 或 `.claude/skills/` 的文件否则只会在下一个会话中出现。此示例同步共享 skills 存储库并请求重新扫描:1279当 SessionStart hook 安装或更新 skills 时使用 `reloadSkills`。Skill 发现通常在 SessionStart hooks 完成之前运行,因此 hook 写入 `~/.claude/skills/` 或 `.claude/skills/` 的文件否则只会在下一个会话中出现。此示例同步共享 skills 存储库并请求重新扫描:

1280 1280 


1287echo '{"hookSpecificOutput": {"hookEventName": "SessionStart", "reloadSkills": true}}'1287echo '{"hookSpecificOutput": {"hookEventName": "SessionStart", "reloadSkills": true}}'

1288```1288```

1289 1289 

1290存储库 URL 是占位符;将其替换为您自己的 skills 存储库。使用占位符,克隆失败并打印 `fatal:` 消息到 stderr。来自以 0 退出的 SessionStart hook 的 Stderr 仅供参考,因此 `reloadSkills` 请求仍然适用。1290存储库 URL 是占位符;将其替换为您自己的 skills 存储库。使用占位符,克隆失败并打印 `fatal:` 消息到 stderr。来自退出 0 的 SessionStart hook 的 stderr 仅供参考,因此 `reloadSkills` 请求仍然适用。

1291 1291 

1292<h4 id="persist-environment-variables">1292<h4 id="persist-environment-variables">

1293 持久化环境变量1293 持久化环境变量


1351 1351 

1352成功时,`--init-only` 不向终端打印任何内容。要确认 hooks 运行,请使用 `claude --debug-file <path> --init-only` 启动,将 `<path>` 替换为日志文件位置,并检查日志中的 Setup 和 SessionStart hook 条目。1352成功时,`--init-only` 不向终端打印任何内容。要确认 hooks 运行,请使用 `claude --debug-file <path> --init-only` 启动,将 `<path>` 替换为日志文件位置,并检查日志中的 Setup 和 SessionStart hook 条目。

1353 1353 

1354由于 Setup 不会在每次启动时触发,需要安装依赖的插件不能仅依赖 Setup。实际的模式是在首次使用时检查依赖,如果缺失则安装,例如测试 `${CLAUDE_PLUGIN_DATA}/node_modules` 的 hook 或 skill,如果不存在则运行 `npm install`。有关存储已安装依赖的位置,请参阅 [持久数据目录](/docs/zh-CN/plugins-reference#persistent-data-directory)。如果您通过市场分发插件,您可能不需要此模式:Claude Code [在缓存插件时自动安装符合条件的 Node.js 包依赖](/docs/zh-CN/plugins-reference#node-js-package-dependencies)。1354由于 Setup 不会在每次启动时触发,需要安装依赖的插件不能仅依赖 Setup。实际的模式是在首次使用时检查依赖,如果缺失则安装,例如测试 `${CLAUDE_PLUGIN_DATA}/node_modules` 的 hook 或 skill,如果不存在则运行 `npm install`。有关在何处存储已安装的依赖,请参阅 [持久数据目录](/docs/zh-CN/plugins-reference#persistent-data-directory)。如果您通过市场分发插件,您可能不需要此模式:Claude Code [在缓存插件时自动安装符合条件的 Node.js 包依赖](/docs/zh-CN/plugins-reference#node-js-package-dependencies)。

1355 1355 

1356<h4 id="setup-input">1356<h4 id="setup-input">

1357 Setup 输入1357 Setup 输入


1381 InstructionsLoaded1381 InstructionsLoaded

1382</h3>1382</h3>

1383 1383 

1384在加载 `CLAUDE.md` 或 `.claude/rules/*.md` 文件到上下文时触发。此事件在会话启动时对于急切加载的文件触发,稍后当文件被懒加载时再次触发,例如当 Claude 访问包含嵌套 `CLAUDE.md` 的子目录或当带有 `paths:` frontmatter 的条件规则匹配时。hook 不支持阻止或决策控制。它异步运行用于可观测性目的。1384在加载 `CLAUDE.md` 或 `.claude/rules/*.md` 文件到上下文时触发。此事件在会话启动时为急切加载的文件触发,稍后当文件被懒加载时再次触发,例如当 Claude 访问包含嵌套 `CLAUDE.md` 的子目录或当带有 `paths:` frontmatter 的条件规则匹配时。hook 不支持阻止或决策控制。它异步运行以用于可观测性目的。

1385 1385 

1386当 Claude [直接通过 **Project instructions** 设置读取 `AGENTS.md`](/docs/zh-CN/memory#agents-md) 时,此事件不触发。当 `CLAUDE.md` 导入您的 `AGENTS.md` 时它确实触发,`load_reason` 设置为 `include`(与任何其他导入文件一样),以及当 `CLAUDE.md` 是它的符号链接时,作为正常的 `CLAUDE.md` 加载。1386当 Claude [直接通过 **Project instructions** 设置读取 `AGENTS.md`](/docs/zh-CN/memory#agents-md) 时,此事件不触发。当 `CLAUDE.md` 导入您的 `AGENTS.md` 时,它会触发,`load_reason` 设置为 `include`(与任何其他导入文件一样),以及当 `CLAUDE.md` 是它的符号链接时,作为正常的 `CLAUDE.md` 加载。

1387 1387 

1388匹配器针对 `load_reason` 运行。例如,使用 `"matcher": "session_start"` 仅对会话启动时加载的文件触发,或 `"matcher": "path_glob_match|nested_traversal"` 仅对懒加载触发。1388匹配器针对 `load_reason` 运行。例如,使用 `"matcher": "session_start"` 仅为在会话启动时加载的文件触发,或 `"matcher": "path_glob_match|nested_traversal"` 仅为懒加载触发。

1389 1389 

1390<h4 id="instructionsloaded-input">1390<h4 id="instructionsloaded-input">

1391 InstructionsLoaded 输入1391 InstructionsLoaded 输入


1398| `file_path` | 加载的指令文件的绝对路径 |1398| `file_path` | 加载的指令文件的绝对路径 |

1399| `memory_type` | 文件的范围:`"User"`、`"Project"`、`"Local"` 或 `"Managed"` |1399| `memory_type` | 文件的范围:`"User"`、`"Project"`、`"Local"` 或 `"Managed"` |

1400| `load_reason` | 文件加载的原因:`"session_start"`、`"nested_traversal"`、`"path_glob_match"`、`"include"` 或 `"compact"`。`"compact"` 值在压缩事件后重新加载指令文件时触发 |1400| `load_reason` | 文件加载的原因:`"session_start"`、`"nested_traversal"`、`"path_glob_match"`、`"include"` 或 `"compact"`。`"compact"` 值在压缩事件后重新加载指令文件时触发 |

1401| `globs` | 文件 `paths:` frontmatter 中的路径 glob 模式(如果有)。仅对 `path_glob_match` 加载出现 |1401| `globs` | 文件的 `paths:` frontmatter 中的路径 glob 模式(如果有)。仅对 `path_glob_match` 加载出现 |

1402| `trigger_file_path` | 触发此加载的文件的路径,用于懒加载 |1402| `trigger_file_path` | 其访问触发此加载的文件的路径,用于懒加载 |

1403| `parent_file_path` | 包含此文件的父指令文件的路径,用于 `include` 加载 |1403| `parent_file_path` | 包含此文件的父指令文件的路径,用于 `include` 加载 |

1404 1404 

1405```json theme={null}1405```json theme={null}


1426 1426 

1427在用户提交提示时运行,在 Claude 处理它之前。这允许您根据提示/对话添加额外上下文、验证提示或阻止某些类型的提示。1427在用户提交提示时运行,在 Claude 处理它之前。这允许您根据提示/对话添加额外上下文、验证提示或阻止某些类型的提示。

1428 1428 

1429`UserPromptSubmit` hooks 对 `command`、`http` 和 `mcp_tool` 类型的默认超时为 30 秒,比大多数其他事件的 600 秒默认值更短。因为此 hook 在每个提示之前运行并阻止模型处理直到它完成,卡住的 hook 会停滞会话。如果您的 hook 需要更多时间,请在 hook 条目中设置 `timeout` 字段。1429`UserPromptSubmit` hooks 对 `command`、`http` 和 `mcp_tool` 类型的默认超时为 30 秒,比大多数其他事件上这些类型的 600 秒默认值更短。因为此 hook 在每个提示之前运行并阻止模型处理直到它完成,卡住的 hook 会停滞会话。如果您的 hook 需要更多时间,请在 hook 条目中设置 `timeout` 字段。

1430 1430 

1431除了您使用 [`async: true`](#run-hooks-in-the-background) 运行的命令 hook 外,达到其超时的 `UserPromptSubmit` 命令、HTTP 或 MCP tool hook 被取消,其输出(包括任何 `additionalContext`)被丢弃。提示仍然到达 Claude 而没有该上下文。成绩单显示一个通知,命名 hook、触发的超时以及输出被丢弃。1431除了您使用 [`async: true`](#run-hooks-in-the-background) 运行的命令 hook 外,达到其超时的 `UserPromptSubmit` 命令、HTTP 或 MCP tool hook 被取消,其输出(包括任何 `additionalContext`)被丢弃。提示仍然到达 Claude 而没有该上下文。成绩单显示一个通知,命名 hook、触发的超时以及输出被丢弃。

1432 1432 

1433在 `UserPromptSubmit` 上达到其超时的 [Agent SDK 回调 hook](/docs/zh-CN/agent-sdk/hooks) 用命名 hook 和超时的消息阻止提示,因为那里的回调可以充当不能失败打开的策略门。会话继续。在 v2.1.208 之前,该事件上的回调超时以执行错误结束回合。1433在 `UserPromptSubmit` 上达到其超时的 [Agent SDK 回调 hook](/docs/zh-CN/agent-sdk/hooks) 用命名 hook 和超时的消息阻止提示,因为那里的回调可以充当不能失败开放的策略门。会话继续。在 v2.1.208 之前,该事件上的回调超时以执行错误结束回合。

1434 1434 

1435<h4 id="userpromptsubmit-input">1435<h4 id="userpromptsubmit-input">

1436 UserPromptSubmit 输入1436 UserPromptSubmit 输入

1437</h4>1437</h4>

1438 1438 

1439除了 [常见输入字段](#common-input-fields) 外,UserPromptSubmit hooks 接收包含用户提交的文本的 `prompt` 字段。1439除了 [常见输入字段](#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 解析提示,请考虑这些行。

1440 1440 

1441```json theme={null}1441```json theme={null}

1442{1442{


1462 1462 

1463两个通道都不产生可见的成绩单条目。纯 stdout 和 `additionalContext` 值各自作为以 hook 名称开头的系统提醒注入;Claude 读取两者。要确认传递,请检查 [调试日志](#debug-hooks)。1463两个通道都不产生可见的成绩单条目。纯 stdout 和 `additionalContext` 值各自作为以 hook 名称开头的系统提醒注入;Claude 读取两者。要确认传递,请检查 [调试日志](#debug-hooks)。

1464 1464 

1465要阻止提示,返回一个 JSON 对象,其中 `decision` 设置为 `"block"`:1465要阻止提示,返回一个 `decision` 设置为 `"block"` 的 JSON 对象:

1466 1466 

1467| 字段 | 描述 |1467| 字段 | 描述 |

1468| :----------------------- | :----------------------------------------------------------------------------------------- |1468| :----------------------- | :------------------------------------------------------------------------------ |

1469| `decision` | `"block"` 防止提示被处理并从上下文中删除它。省略以允许提示继续 |1469| `decision` | `"block"` 防止提示被处理并从上下文中删除它。省略以允许提示继续 |

1470| `reason` | 当 `decision` 为 `"block"` 时显示给用户。不添加到上下文 |1470| `reason` | 当 `decision` 为 `"block"` 时显示给用户。不添加到上下文 |

1471| `additionalContext` | 与提交的提示一起添加到 Claude 上下文的字符串。有关文本如何传递以及放入其中的内容,请参阅 [为 Claude 添加上下文](#add-context-for-claude) |1471| `additionalContext` | 与提交的提示一起添加到 Claude 上下文的字符串。有关详细信息,请参阅 [为 Claude 添加上下文](#add-context-for-claude) |

1472| `sessionTitle` | 设置会话标题。用于根据提示内容自动命名会话 |1472| `sessionTitle` | 设置会话标题。用于根据提示内容自动命名会话 |

1473| `suppressOriginalPrompt` | 如果在 `decision` 为 `"block"` 时为 `true`,则从显示给用户的阻止消息中省略原始提示文本 |1473| `suppressOriginalPrompt` | 如果在 `decision` 为 `"block"` 时为 `true`,则从显示给用户的阻止消息中省略原始提示文本 |

1474 1474 


1494 1494 

1495此事件涵盖 `PreToolUse` 不涵盖的路径:匹配 `Skill` 工具的 `PreToolUse` hook 仅在 Claude 调用工具时触发,但直接输入 `/skillname` 绕过 `PreToolUse`。`UserPromptExpansion` 在该直接路径上触发。1495此事件涵盖 `PreToolUse` 不涵盖的路径:匹配 `Skill` 工具的 `PreToolUse` hook 仅在 Claude 调用工具时触发,但直接输入 `/skillname` 绕过 `PreToolUse`。`UserPromptExpansion` 在该直接路径上触发。

1496 1496 

1497匹配 `command_name`。将匹配器留空以对每个提示类型命令触发。1497匹配 `command_name`。将匹配器留空以在每个提示类型命令上触发。

1498 1498 

1499<h4 id="userpromptexpansion-input">1499<h4 id="userpromptexpansion-input">

1500 UserPromptExpansion 输入1500 UserPromptExpansion 输入


1524`UserPromptExpansion` hooks 可以阻止扩展或添加上下文。所有 [JSON 输出字段](#json-output) 都可用。1524`UserPromptExpansion` hooks 可以阻止扩展或添加上下文。所有 [JSON 输出字段](#json-output) 都可用。

1525 1525 

1526| 字段 | 描述 |1526| 字段 | 描述 |

1527| :------------------ | :----------------------------------------------------------------------------------------- |1527| :------------------ | :------------------------------------------------------------------------------ |

1528| `decision` | `"block"` 防止命令扩展。省略以允许它继续 |1528| `decision` | `"block"` 防止命令扩展。省略以允许它继续 |

1529| `reason` | 当 `decision` 为 `"block"` 时显示给用户 |1529| `reason` | 当 `decision` 为 `"block"` 时显示给用户 |

1530| `additionalContext` | 与扩展的提示一起添加到 Claude 上下文的字符串。有关文本如何传递以及放入其中的内容,请参阅 [为 Claude 添加上下文](#add-context-for-claude) |1530| `additionalContext` | 与扩展的提示一起添加到 Claude 上下文的字符串。有关详细信息,请参阅 [为 Claude 添加上下文](#add-context-for-claude) |

1531 1531 

1532通过退出 2 阻止的 hook 路由方式与 `reason` 相同:阻止消息向用户显示 stderr 文本。1532通过退出 2 阻止的 hook 路由方式与 `reason` 相同:阻止消息向用户显示 stderr 文本。

1533 1533 


1546 MessageDisplay1546 MessageDisplay

1547</h3>1547</h3>

1548 1548 

1549在助手消息流向屏幕时运行。Claude Code 分批显示消息:每次一批新完成的行准备好渲染时,hook 运行一次,这些行,Claude Code 用 hook 的替换文本渲染它们的位置。长消息产生多个调用;短消息可能只产生一个。1549在助手消息流向屏幕时运行。Claude Code 分批显示消息:每次一批新完成的行准备好渲染时,hook 运行一次,这些行,Claude Code 用 hook 的替换文本替换它们。长消息产生多个调用;短消息可能只产生一个。

1550 1550 

1551使用 MessageDisplay 来:1551使用 MessageDisplay 来:

1552 1552 


1556 1556 

1557Claude Code 保持每个批次直到您的 hook 返回,因此保持 hook 快速。如果 hook 失败或超时,Claude Code 显示原始文本。此事件的默认超时为 10 秒;如果您的 hook 需要更多时间,请在 hook 条目中设置 `timeout` 字段。1557Claude Code 保持每个批次直到您的 hook 返回,因此保持 hook 快速。如果 hook 失败或超时,Claude Code 显示原始文本。此事件的默认超时为 10 秒;如果您的 hook 需要更多时间,请在 hook 条目中设置 `timeout` 字段。

1558 1558 

1559MessageDisplay 仅用于显示:替换文本仅更改屏幕上呈现的内容。成绩单和 Claude 看到的内容保持原始文本,因此 Claude 永远看不到替换,详细模式显示原始。hook 仅接收助手消息文本,因此工具结果和您输入的文本呈现不变。1559MessageDisplay 仅用于显示:替换文本仅更改屏幕上呈现的内容。成绩单和 Claude 看到的内容保持原始文本,因此 Claude 永远看不到替换,详细模式显示原始文本。hook 仅接收助手消息文本,因此工具结果和您输入的文本呈现不变。

1560 1560 

1561MessageDisplay 不支持匹配器,对每个流式传输文本的助手消息触发;没有文本的消息(如仅工具调用响应)不触发它。1561MessageDisplay 不支持匹配器,对每个流式传输文本的助手消息触发;没有文本的消息(如仅工具调用响应)不触发它。

1562 1562 

1563在非交互式运行中,包括 Agent SDK 查询和 `claude -p`,MessageDisplay 每个助手消息运行一次而不是每批行一次。单个调用在消息完成后到达并携带完整消息文本:`index` 为 `0`,`final` 为 `true`,`delta` 保持整个消息。为每个消息收集 `delta` 文本的 hook 在两种模式中接收相同的总文本。1563在非交互式运行中,包括 Agent SDK 查询和 `claude -p`,MessageDisplay 每个助手消息运行一次,而不是每批行运行一次。单个调用在消息完成后到达,并携带完整消息文本:`index` 为 `0`,`final` 为 `true`,`delta` 保持整个消息。为每个消息收集 `delta` 文本的 hook 在两种模式中接收相同的总文本。

1564 1564 

1565<h4 id="messagedisplay-input">1565<h4 id="messagedisplay-input">

1566 MessageDisplay 输入1566 MessageDisplay 输入

1567</h4>1567</h4>

1568 1568 

1569除了 [常见输入字段](#common-input-fields) 外,MessageDisplay hooks 接收回合和消息的标识符、此调用在消息中的位置以及 `delta` 中的新文本。批次边界取决于文本流的方式,因此使用 `index` 和 `final` 来跟踪通过消息的进度,而不是期望行以特定方式分组。1569除了 [常见输入字段](#common-input-fields) 外,MessageDisplay hooks 接收回合和消息的标识符、此调用在消息中的位置以及 `delta` 中的新文本。批次边界取决于文本如何流式传输,因此使用 `index` 和 `final` 来跟踪通过消息的进度,而不是期望行以特定方式分组。

1570 1570 

1571| 字段 | 描述 |1571| 字段 | 描述 |

1572| :----------- | :----------------------------------------------------------------------------------------------------------------------------------------------------- |1572| :----------- | :------------------------------------------------------------------------------------------------------------------------------------------------------ |

1573| `turn_id` | 当前回合的 UUID |1573| `turn_id` | 当前回合的 UUID |

1574| `message_id` | 正在显示的助手消息的 UUID。在同一消息的每个批次中稳定。这不是 API `msg_…` id,因此无法与成绩单消息 id 关联 |1574| `message_id` | 正在显示的助手消息的 UUID。在同一消息的每个批次中稳定。这不是 API `msg_…` id,因此无法与成绩单消息 id 关联 |

1575| `index` | 此批次在消息中的零基索引 |1575| `index` | 此批次在消息中的零基索引 |

1576| `final` | 在消息的最后一个批次上为 `true`。每个消息恰好有一个最终批次 |1576| `final` | 在消息的最后一个批次上为 `true`。每个消息恰好有一个最终批次 |

1577| `delta` | 自上一个批次以来新完成的行,包括终止换行符。始终是完整行,除了最终批次可能在行中间结束。在交互式运行中,当消息以换行符结束时最终批次的 delta 为空,因此将 `final` 而不是非空 delta 视为消息结束信号。在 Agent SDK 和 `claude -p` 运行中,单个调用携带整个消息 |1577| `delta` | 自上一个批次以来新完成的行,包括终止换行符。始终是完整行,除了最终批次可能在行中间结束。在交互式运行中,当消息以换行符结束时,最终批次的 delta 为空,因此将 `final` 而不是非空 delta 视为消息结束信号。在 Agent SDK 和 `claude -p` 运行中,单个调用携带整个消息 |

1578 1578 

1579```json theme={null}1579```json theme={null}

1580{1580{


1597除了所有 hooks 可用的 [JSON 输出字段](#json-output) 外,MessageDisplay hooks 可以返回 `displayContent` 来替换屏幕上的 delta:1597除了所有 hooks 可用的 [JSON 输出字段](#json-output) 外,MessageDisplay hooks 可以返回 `displayContent` 来替换屏幕上的 delta:

1598 1598 

1599| 字段 | 描述 |1599| 字段 | 描述 |

1600| :--------------- | :--------------------- |1600| :--------------- | :----------------------- |

1601| `displayContent` | 显示代替 delta 的文本。省略以显示原始 |1601| `displayContent` | 显示代替 delta 的文本。省略以显示原始文本 |

1602 1602 

1603MessageDisplay hooks 没有决策控制。它们无法阻止消息或更改成绩单中存储或发送给 Claude 的内容。Claude Code 作用于它们的 JSON 输出中的 `displayContent` 并丢弃 `systemMessage` 和 `continue`。1603MessageDisplay hooks 没有决策控制。它们无法阻止消息或更改成绩单中存储或发送给 Claude 的内容。Claude Code 从其 JSON 输出中作用于 `displayContent` 并丢弃 `systemMessage` 和 `continue`。

1604 1604 

1605此示例从 Claude 的响应中剥离 markdown 格式以获得纯文本显示。脚本从 stdin 读取每个批次,从 `delta` 中删除粗体标记和内联代码反引号,并将结果作为 `displayContent` 返回。1605此示例从 Claude 的响应中剥离 markdown 格式以获得纯文本显示。脚本从 stdin 读取每个批次,从 `delta` 中删除粗体标记和内联代码反引号,并将结果作为 `displayContent` 返回。

1606 1606 


1684 PreToolUse1684 PreToolUse

1685</h3>1685</h3>

1686 1686 

1687在 Claude 创建工具参数之后和处理工具调用之前运行。匹配除 `EndConversation` 外的任何工具名称:内置工具如 `Bash`、`PowerShell`、`Edit`、`Write`、`Read`、`Glob`、`Grep`、`Agent`、`Workflow`、`WebFetch`、`WebSearch`、`AskUserQuestion` 和 `ExitPlanMode`,以及任何 [MCP 工具名称](#match-mcp-tools)。1687在 Claude 创建工具参数之后和处理工具调用之前运行。匹配除 `EndConversation` 外的任何工具名称:内置工具,如 Bash、PowerShell、Edit、Write、Read、Glob、Grep、Agent、Workflow、WebFetch、WebSearch、AskUserQuestion 和 ExitPlanMode,以及任何 [MCP 工具名称](#match-mcp-tools)。

1688 1688 

1689要在特定文件在磁盘上更改时运行 hook,无论什么写入它,请使用 [FileChanged](#filechanged) 而不是按名称匹配文件编辑工具。与 PreToolUse 不同,Claude Code 在更改后运行 FileChanged hooks,它们没有决策控制,因此无法阻止写入。1689要在特定文件在磁盘上更改时运行 hook,无论什么写入它,请改用 [FileChanged](#filechanged) 而不是按名称匹配文件编辑工具。与 PreToolUse 不同,Claude Code 在更改后运行 FileChanged hooks,它们没有决策控制,因此无法阻止写入。

1690 1690 

1691<Warning>1691<Warning>

1692 PreToolUse 仅在 Claude 调用工具时运行。您 [在提示中使用 `@` 引用的文件](/docs/zh-CN/common-workflows#reference-files-and-directories) 添加时没有任何工具调用:Claude Code 在构建提示时插入它们的内容,因此没有 PreToolUse hook 为它们触发,包括匹配 `Read` 的 hooks。要阻止特定路径的 `@` 引用,请改用 [`Read` 拒绝规则](/docs/zh-CN/permissions#read-and-edit)。1692 PreToolUse 仅在 Claude 调用工具时运行。您 [在提示中使用 `@` 引用的文件](/docs/zh-CN/common-workflows#reference-files-and-directories) 添加时没有任何工具调用:Claude Code 在构建提示时插入其内容,因此没有 PreToolUse hook 为它们触发,包括匹配 `Read` 的 hooks。要阻止特定路径的 `@` 引用,请改用 [`Read` 拒绝规则](/docs/zh-CN/permissions#read-and-edit)。

1693 1693 

1694 PreToolUse 也不为 [`EndConversation`](/docs/zh-CN/tools-reference#endconversation-tool-behavior) 触发。1694 PreToolUse 也不为 [`EndConversation`](/docs/zh-CN/tools-reference#endconversation-tool-behavior) 触发。

1695</Warning>1695</Warning>


1704 1704 

1705除了 [常见输入字段](#common-input-fields) 外,PreToolUse hooks 接收 `tool_name`、`tool_input` 和 `tool_use_id`。1705除了 [常见输入字段](#common-input-fields) 外,PreToolUse hooks 接收 `tool_name`、`tool_input` 和 `tool_use_id`。

1706 1706 

1707对于 [MCP 工具](#match-mcp-tools),输入还携带 `mcp_server`,一个包含服务器 `name` 和 `source` 的对象,说明服务器定义来自何处。`source` 值包括 `plugin`、`sdk` 和配置范围如 `user` 和 `project`。[Agent SDK 参考中的 `McpServerProvenance`](/docs/zh-CN/agent-sdk/typescript#mcpserverprovenance) 列出了所有内容并说明如何处理您不认识的内容。基于 `source` 而不是 `name` 或 `mcp__<server>__` 工具名称前缀做出信任决定。`mcp_server` 字段需要 Claude Code v2.1.274 或更高版本。1707对于 [MCP 工具](#match-mcp-tools),输入还携带 `mcp_server`,一个包含服务器 `name` 和 `source` 的对象,说明服务器定义来自何处。`source` 值包括 `plugin`、`sdk` 和配置范围,如 `user` 和 `project`。[Agent SDK 参考](/docs/zh-CN/agent-sdk/typescript#mcpserverprovenance) 中的 [`McpServerProvenance`](/docs/zh-CN/agent-sdk/typescript#mcpserverprovenance) 列出了所有内容并说明如何处理您不认识的内容。基于 `source` 而不是 `name` 或 `mcp__<server>__` 工具名称前缀做出信任决定。`mcp_server` 字段需要 Claude Code v2.1.274 或更高版本。

1708 1708 

1709对于文件工具 `Write`、`Edit` 和 `Read`,`tool_input.file_path` 始终是绝对的:1709对于文件工具 Write、Edit 和 Read,`tool_input.file_path` 始终是绝对的:

1710 1710 

1711* Claude Code 在 hooks 运行之前扩展 `~` 和相对路径,因此匹配路径的 hook 无法通过 `~` 或相同路径的相对拼写绕过1711* Claude Code 在 hooks 运行之前扩展 `~` 和相对路径,因此匹配路径的 hook 无法通过 `~` 或相同路径的相对拼写绕过

1712* 在 Windows 上,路径到达时带有反斜杠分隔符,即使您的 hook 在 Git Bash 下运行,其中 `$PWD` 看起来像 `/c/project`1712* 在 Windows 上,路径到达时带有反斜杠分隔符,即使您的 hook 在 Git Bash 下运行,其中 `$PWD` 看起来像 `/c/project`

1713* 使用正斜杠编写的比较(如 `/src/` 检查)永远不会匹配反斜杠路径,工具调用继续进行,就像 hook 没有什么要阻止的一样1713* 使用正斜杠编写的比较(如 `/src/` 检查)永远不会匹配反斜杠路径,工具调用继续,就像 hook 没有什么要阻止的一样

1714* 在比较前规范化分隔符:Bash 中的 `FILE_PATH="${FILE_PATH//\\//}"` 或 Python 中的 `file_path.replace("\\", "/")`,然后匹配路径段如 `/src/` 而不是用 `^` 锚定,因为路径是绝对的1714* 在比较之前规范化分隔符:Bash 中的 `FILE_PATH="${FILE_PATH//\\//}"`,或 Python 中的 `file_path.replace("\\", "/")`,然后匹配路径段,如 `/src/`,而不是使用 `^` 锚定,因为路径是绝对的

1715 1715 

1716Windows 上的 `Write` 调用传递:1716Windows 上的 Write 调用传递:

1717 1717 

1718```json theme={null}1718```json theme={null}

1719{1719{


1741| :------------------ | :------ | :----------------- | :--------------------------------------------------------------------------- |1741| :------------------ | :------ | :----------------- | :--------------------------------------------------------------------------- |

1742| `command` | string | `"npm test"` | 要执行的 shell 命令 |1742| `command` | string | `"npm test"` | 要执行的 shell 命令 |

1743| `description` | string | `"Run test suite"` | 命令执行操作的可选描述 |1743| `description` | string | `"Run test suite"` | 命令执行操作的可选描述 |

1744| `timeout` | number | `120000` | 可选超时(毫秒)。高于 [最大值](/docs/zh-CN/tools-reference#bash-tool-behavior) 的值被减少到最大值而不是被拒绝 |1744| `timeout` | number | `120000` | 可选超时(毫秒)。超过 [最大值](/docs/zh-CN/tools-reference#bash-tool-behavior) 的值被减少到最大值而不是被拒绝 |

1745| `run_in_background` | boolean | `false` | 是否在后台运行命令 |1745| `run_in_background` | boolean | `false` | 是否在后台运行命令 |

1746 1746 

1747当 Bash 命令更改 Git 存储库中的文件时,Claude Code 可以记录更改的内容。当 [`bashEditDiffEnabled`](/docs/zh-CN/settings-reference#basheditdiffenabled) 设置打开记录时,它在每个权限模式中记录;该设置的条目说明哪些文件可以设置它。否则它仅在自动模式和 `bypassPermissions` 模式中记录,仅当 Claude Code 指导 Claude 通过 Bash 编辑文件时。设置 `bashEditDiffEnabled` 为 `false` 以关闭记录。后台命令和只读命令不携带 diff。1747当 Bash 命令更改 Git 存储库中的文件时,Claude Code 可以记录更改的内容。当 [`bashEditDiffEnabled`](/docs/zh-CN/settings-reference#basheditdiffenabled) 设置打开记录时,它在每个权限模式中记录更改;该设置的条目说明哪些文件可以设置它。否则它仅在自动模式和 `bypassPermissions` 模式中记录它们,并且仅当 Claude Code 指导 Claude 通过 Bash 编辑文件时。设置 `bashEditDiffEnabled` 为 `false` 以关闭记录。后台命令和只读命令不携带 diff。

1748 1748 

1749您的 [PostToolUse hook](#posttooluse) 然后在 `tool_response.bashEditDiff` 中接收更改的文件。列表涵盖命令运行时在存储库下更改的内容。Git 忽略的文件和子模块中的文件不被列出。需要 Claude Code v2.1.269 或更高版本。1749您的 [PostToolUse hook](#posttooluse) 然后在 `tool_response.bashEditDiff` 中接收更改的文件。列表涵盖命令运行时在存储库下更改的内容。Git 忽略的文件和子模块中的文件不被列出。需要 Claude Code v2.1.269 或更高版本。

1750 1750 


1755`changedFiles` 和 `files` 列出命令更改的内容;其余字段说明该列表的完整性和可靠性。1755`changedFiles` 和 `files` 列出命令更改的内容;其余字段说明该列表的完整性和可靠性。

1756 1756 

1757| 字段 | 类型 | 示例 | 描述 |1757| 字段 | 类型 | 示例 | 描述 |

1758| :------------- | :------ | :------------------------------------------------------ | :----------------------------------------------------------------------- |1758| :------------- | :------ | :------------------------------------------------------ | :---------------------------------------------------------------------- |

1759| `changedFiles` | array | `["/path/to/src/app.ts"]` | 命令更改的文件的绝对路径,最多 200 个。每当 `files` 保持 diff 或 `moreFiles` 高于零时出现 |1759| `changedFiles` | array | `["/path/to/src/app.ts"]` | 命令更改的文件的绝对路径,最多 200 个。每当 `files` 保持 diff 或 `moreFiles` 高于零时出现 |

1760| `files` | array | `[{"filePath": "/path/to/src/app.ts", "hunks": [...]}]` | 最多 5 个更改文件的 diffs,用于显示。对于命令添加或删除的文件,`created` 或 `deleted` 为 `true` |1760| `files` | array | `[{"filePath": "/path/to/src/app.ts", "hunks": [...]}]` | 最多 5 个更改文件的 diffs,用于显示。对于命令添加或删除的文件,`created` 或 `deleted` 为 `true` |

1761| `moreFiles` | number | `2` | 在 `files` 中没有 diff 的更改文件的计数 |1761| `moreFiles` | number | `2` | 在 `files` 中没有 diff 的更改文件的计数 |

1762| `unavailable` | boolean | `true` | 当 diff 不完整或无法获取时设置 |1762| `unavailable` | boolean | `true` | 当 diff 不完整或无法获取时设置 |

1763| `skipped` | boolean | `true` | 对于移动工作树的 Git 命令设置,如 `git checkout` 或 `git stash`,因此 Claude Code 不获取 diff |1763| `skipped` | boolean | `true` | 为移动工作树的 Git 命令设置,如 `git checkout` 或 `git stash`,因此 Claude Code 不获取 diff |

1764| `shared` | boolean | `true` | 当另一个 Bash 工具调用(如子 agent 的)同时在同一存储库中运行时设置,因此某些列出的更改可能是该命令的 |1764| `shared` | boolean | `true` | 当另一个 Bash 工具调用(如子代理的)在同一存储库中同时运行时设置,因此某些列出的更改可能是该命令的 |

1765 1765 

1766<a id="powershell" />1766<a id="powershell" />

1767 1767 


1875 Agent1875 Agent

1876</h5>1876</h5>

1877 1877 

1878生成 [子 agent](/docs/zh-CN/sub-agents)。1878生成 [子代理](/docs/zh-CN/sub-agents)。

1879 1879 

1880| 字段 | 类型 | 示例 | 描述 |1880| 字段 | 类型 | 示例 | 描述 |

1881| :-------------- | :----- | :------------------------- | :-------------- |1881| :-------------- | :----- | :------------------------- | :-------------- |


1884| `subagent_type` | string | `"Explore"` | 要使用的专门 agent 类型 |1884| `subagent_type` | string | `"Explore"` | 要使用的专门 agent 类型 |

1885| `model` | string | `"sonnet"` | 可选模型别名以覆盖默认值 |1885| `model` | string | `"sonnet"` | 可选模型别名以覆盖默认值 |

1886 1886 

1887当前台 Agent 调用完成时,您的 [PostToolUse hook](#posttooluse) 在 `tool_response` 中接收子 agent 的结果和运行遥测。读取这些字段以检查运行;对于跨子 agent 的令牌和成本汇总,使用 [令牌和成本计数器](/docs/zh-CN/monitoring-usage#token-counter) 过滤到 `query_source` `"subagent"`,因为 `totalTokens` 和 `usage` 仅涵盖最终请求:1887当前台 Agent 调用完成时,您的 [PostToolUse hook](#posttooluse) 在 `tool_response` 中接收子代理的结果和运行遥测。读取这些字段以检查运行;对于跨子代理的令牌和成本汇总,使用 [令牌和成本计数器](/docs/zh-CN/monitoring-usage#token-counter) 过滤到 `query_source` `"subagent"`,因为 `totalTokens` 和 `usage` 仅涵盖最终请求:

1888 1888 

1889| 字段 | 类型 | 示例 | 描述 |1889| 字段 | 类型 | 示例 | 描述 |

1890| :------------------ | :----- | :---------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------- |1890| :------------------ | :----- | :---------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------- |

1891| `status` | string | `"completed"` | 前台子 agent 为 `"completed"`,后台子 agent 为 `"async_launched"`。从 v2.1.198 起,子 agent 默认在后台运行,因此省略的 `run_in_background` 也产生 `"async_launched"` |1891| `status` | string | `"completed"` | 前台子代理为 `"completed"`,后台子代理为 `"async_launched"`。从 v2.1.198 起,子代理默认在后台运行,因此省略的 `run_in_background` 也产生 `"async_launched"` |

1892| `agentId` | string | `"a4d2c8f1e0b3a297"` | 子 agent 运行的标识符 |1892| `agentId` | string | `"a4d2c8f1e0b3a297"` | 子代理运行的标识符 |

1893| `content` | array | `[{"type": "text", "text": "Found 12 endpoints..."}]` | 子 agent 的最终文本块,或对于其报告通过 `SubagentHandback` 的子 agent,关于该交接的简短说明代替 |1893| `content` | array | `[{"type": "text", "text": "Found 12 endpoints..."}]` | 子代理的最终文本块,或对于其报告通过 `SubagentHandback` 的子代理,关于该交接的简短说明代替 |

1894| `resolvedModel` | string | `"claude-sonnet-4-5"` | 子 agent 启动的模型,可能与请求的模型不同 |1894| `resolvedModel` | string | `"claude-sonnet-4-5"` | 子代理启动的模型,可能与请求的模型不同 |

1895| `modelsUsed` | array | `["claude-sonnet-4-5", "claude-haiku-4-5"]` | 按顺序使用的模型,连续重复折叠;仅在模型在运行中交换时设置。需要 Claude Code v2.1.212 或更高版本 |1895| `modelsUsed` | array | `["claude-sonnet-4-5", "claude-haiku-4-5"]` | 按顺序使用的模型,连续重复折叠;仅在模型在运行中交换时设置。需要 Claude Code v2.1.212 或更高版本 |

1896| `totalTokens` | number | `12450` | 子 agent 最终 API 请求的令牌计数:输入、输出和缓存令牌合并。这不是整个运行的总计 |1896| `totalTokens` | number | `12450` | 来自子代理最终 API 请求的令牌计数:输入、输出和缓存令牌合并。这不是整个运行的总计 |

1897| `totalDurationMs` | number | `48211` | 子 agent 运行的挂钟持续时间 |1897| `totalDurationMs` | number | `48211` | 子代理运行的挂钟持续时间 |

1898| `totalToolUseCount` | number | `7` | 子 agent 进行的工具调用计数 |1898| `totalToolUseCount` | number | `7` | 子代理进行的工具调用计数 |

1899| `usage` | object | `{"input_tokens": 8320, ...}` | 最终 API 请求的每类型令牌分解:`input_tokens`、`output_tokens`、`cache_creation_input_tokens`、`cache_read_input_tokens` |1899| `usage` | object | `{"input_tokens": 8320, ...}` | 最终 API 请求的每类型令牌分解:`input_tokens`、`output_tokens`、`cache_creation_input_tokens`、`cache_read_input_tokens` |

1900 1900 

1901在 Claude Code v2.1.271 或更高版本上,使用 [`SubagentHandback`](/docs/zh-CN/tools-reference) 工具运行的子 agent(Claude Code 在 [自动模式](/docs/zh-CN/permission-modes#eliminate-prompts-with-auto-mode) 中提供)通过该工具而不是作为文本返回其报告。其 `completed` 结果的 `content` 字段然后携带关于该交接的简短说明而不是报告本身。要读取报告,匹配 `PreToolUse` 或 `PostToolUse` hook 在 `SubagentHandback` 上并读取 `tool_input.message`。1901在 Claude Code v2.1.271 或更高版本上,使用 [`SubagentHandback`](/docs/zh-CN/tools-reference) 工具运行的子代理(Claude Code 在 [自动模式](/docs/zh-CN/permission-modes#eliminate-prompts-with-auto-mode) 中提供)通过该工具而不是作为文本返回其报告。其 `completed` 结果的 `content` 字段然后携带关于该交接的简短说明,而不是报告本身。要读取报告,匹配 `PreToolUse` 或 `PostToolUse` hook 在 `SubagentHandback` 上并读取 `tool_input.message`。

1902 1902 

1903对于后台子 agent,工具在任务移到后台时返回,因此 `tool_response` 不携带使用字段:后台启动立即返回,前台任务在运行中被 Claude Code 后台化时返回。它有 `status: "async_launched"`、`agentId`、`description`、`prompt`、`outputFile` 和 `resolvedModel`。1903对于后台子代理,工具在任务移到后台时返回,因此 `tool_response` 不携带使用字段:后台启动立即返回,前台任务在运行中被后台化时返回。它有 `status: "async_launched"`、`agentId`、`description`、`prompt`、`outputFile` 和 `resolvedModel`。

1904 1904 

1905在 `completed` 响应上,`resolvedModel` 命名子 agent 启动的模型,可能与 `tool_input` 中的 `model` 值不同,如 `availableModels` 或其他覆盖适用时。在 `async_launched` 响应上,`resolvedModel` 命名 agent 移到后台时使用的模型,因此在后台化之前发生的交换反映在那里。`modelsUsed` 和后台化时间 `resolvedModel` 行为需要 Claude Code v2.1.212 或更高版本。1905在 `completed` 响应上,`resolvedModel` 命名子代理启动的模型,可能与 `tool_input` 中的 `model` 值不同,例如当 `availableModels` 或另一个覆盖适用时。在 `async_launched` 响应上,`resolvedModel` 命名代理移到后台时使用的模型,因此在该之前发生的交换反映在那里。`modelsUsed` 和后台化时间 `resolvedModel` 行为需要 Claude Code v2.1.212 或更高版本。

1906 1906 

1907<a id="askuserquestion" />1907<a id="askuserquestion" />

1908 1908 


1921 ExitPlanMode1921 ExitPlanMode

1922</h5>1922</h5>

1923 1923 

1924呈现计划并要求用户在 Claude 离开 [plan mode](/docs/zh-CN/permission-modes#analyze-before-you-edit-with-plan-mode) 之前批准它。Claude 在调用工具之前将计划写入磁盘上的文件,因此来自模型的字面 `tool_input` 通常为空。Claude Code 在将输入传递给 hooks 之前注入计划内容和文件路径。1924呈现计划并要求用户在 Claude 离开 [plan mode](/docs/zh-CN/permission-modes#analyze-before-you-edit-with-plan-mode) 之前批准它。Claude 在调用工具之前将计划写入磁盘上的文件,因此来自模型的文字 `tool_input` 通常为空。Claude Code 在将输入传递给 hooks 之前注入计划内容和文件路径。

1925 1925 

1926| 字段 | 类型 | 示例 | 描述 |1926| 字段 | 类型 | 示例 | 描述 |

1927| :--------------- | :----- | :------------------------------------------ | :----------------------------------------------------------------- |1927| :--------------- | :----- | :------------------------------------------ | :---------------------------------------------------------------- |

1928| `plan` | string | `"## Refactor auth\n1. Extract..."` | Markdown 中的计划内容。从磁盘上的计划文件注入 |1928| `plan` | string | `"## Refactor auth\n1. Extract..."` | Markdown 中的计划内容。从磁盘上的计划文件注入 |

1929| `planFilePath` | string | `"/Users/.../plans/refactor-auth.md"` | 计划文件的路径。注入 |1929| `planFilePath` | string | `"/Users/.../plans/refactor-auth.md"` | 计划文件的路径。注入 |

1930| `allowedPrompts` | array | `[{"tool": "Bash", "prompt": "run tests"}]` | 已弃用。Claude Code 接受该字段但忽略它。在 v2.1.205 之前,它携带 Claude 请求以实现计划的基于提示的权限 |1930| `allowedPrompts` | array | `[{"tool": "Bash", "prompt": "run tests"}]` | 已弃用。Claude Code 接受该字段但忽略它。在 v2.1.205 之前,它携带 Claude 请求实现计划的基于提示的权限 |

1931 1931 

1932在 `PostToolUse` 中,`tool_response` 是一个包含 `plan` 和 `filePath` 字段的对象,保持批准的计划,加上内部状态标志。读取 `tool_response.plan` 以获取计划内容,而不是从磁盘重新读取文件。1932在 `PostToolUse` 中,`tool_response` 是一个包含 `plan` 和 `filePath` 字段的对象,保持批准的计划,加上内部状态标志。读取 `tool_response.plan` 以获取计划内容,而不是从磁盘重新读取文件。

1933 1933 


1938`PreToolUse` hooks 可以控制工具调用是否继续。与使用顶级 `decision` 字段的其他 hooks 不同,PreToolUse 在 `hookSpecificOutput` 对象内返回其决策。这给了它更丰富的控制:四个结果(允许、拒绝、询问或延迟)加上在执行前修改工具输入的能力。1938`PreToolUse` hooks 可以控制工具调用是否继续。与使用顶级 `decision` 字段的其他 hooks 不同,PreToolUse 在 `hookSpecificOutput` 对象内返回其决策。这给了它更丰富的控制:四个结果(允许、拒绝、询问或延迟)加上在执行前修改工具输入的能力。

1939 1939 

1940| 字段 | 描述 |1940| 字段 | 描述 |

1941| :------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |1941| :------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

1942| `permissionDecision` | `"allow"` 跳过权限提示,除了 [任何模式自动批准的操作](/docs/zh-CN/permission-modes#actions-no-mode-auto-approves) 和对于 `AskUserQuestion` 和 `ExitPlanMode`,需要 [`updatedInput` 与其配对](#allow-with-updatedinput)。`"deny"` 防止工具调用。`"ask"` 提示用户确认。`"defer"` 优雅地退出以便工具稍后可以恢复。[拒绝和询问规则](/docs/zh-CN/permissions#manage-permissions) 仍然被评估,无论 hook 返回什么 |1942| `permissionDecision` | `"allow"` 跳过权限提示,除了 [任何模式自动批准的操作](/docs/zh-CN/permission-modes#actions-no-mode-auto-approves) 和对于 `AskUserQuestion` 和 `ExitPlanMode`,它们需要 [`updatedInput` 与其配对](#allow-with-updatedinput)。`"deny"` 防止工具调用。`"ask"` 提示用户确认。`"defer"` 优雅地退出,以便稍后可以恢复工具。[拒绝和询问规则](/docs/zh-CN/permissions#manage-permissions) 仍然被评估,无论 hook 返回什么 |

1943| `permissionDecisionReason` | 对于 `"allow"` 和 `"ask"`,显示给用户但不显示给 Claude。对于 `"deny"`,显示给 Claude。对于 `"defer"`,被忽略 |1943| `permissionDecisionReason` | 对于 `"allow"` 和 `"ask"`,显示给用户但不显示给 Claude。对于 `"deny"`,显示给 Claude。对于 `"defer"`,被忽略 |

1944| `updatedInput` | 在执行前修改工具的输入参数。替换整个输入对象,因此在修改的输入旁边包含未更改的字段。Claude Code 根据您的 hook 返回的输入而不是 Claude 发送的输入评估权限规则和 Bash 命令的 [自动后台资格](/docs/zh-CN/tools-reference#background-commands)。与 `"allow"` 结合以自动批准,或与 `"ask"` 结合以向用户显示修改的输入。对于 `"defer"`,被忽略 |1944| `updatedInput` | 在执行前修改工具的输入参数。替换整个输入对象,因此在修改的字段旁边包含未更改的字段。Claude Code 根据您的 hook 返回的输入而不是 Claude 发送的输入评估权限规则和 Bash 命令的 [自动后台资格](/docs/zh-CN/tools-reference#background-commands)。与 `"allow"` 结合以自动批准,或与 `"ask"` 结合以向用户显示修改的输入。对于 `"defer"`,被忽略 |

1945| `additionalContext` | 与工具结果一起添加到 Claude 上下文的字符串。当 `permissionDecision` 为 `"defer"` 时被忽略。有关文本如何传递以及放入其中的内容,请参阅 [为 Claude 添加上下文](#add-context-for-claude) |1945| `additionalContext` | 与工具结果一起添加到 Claude 上下文的字符串。当 `permissionDecision` 为 `"defer"` 时被忽略。有关详细信息,请参阅 [为 Claude 添加上下文](#add-context-for-claude) |

1946 1946 

1947当多个 PreToolUse hooks 返回不同的决策时,优先级为 `deny` > `defer` > `ask` > `allow`。1947当多个 PreToolUse hooks 返回不同的决策时,优先级为 `deny` > `defer` > `ask` > `allow`。

1948 1948 


1968 1968 

1969<span id="allow-with-updatedinput" />1969<span id="allow-with-updatedinput" />

1970 1970 

1971在 [非交互模式](/docs/zh-CN/headless) 中使用 `-p` 标志,Claude Code 仅在运行有 [权限主机](/docs/zh-CN/headless#turn-off-permission-prompts-in-unattended-runs) 来接收提示时提供 `AskUserQuestion` 和 `ExitPlanMode`,如 Agent SDK `canUseTool` 回调。这些工具需要用户交互。返回 `permissionDecision: "allow"` 与 `updatedInput` 一起满足该要求:hook 从 stdin 读取工具的输入,通过您自己的 UI 收集答案,并在 `updatedInput` 中返回它,以便工具运行而不提示。仅返回 `"allow"` 对这些工具不充分。对于 `AskUserQuestion`,回显原始 `questions` 数组并添加一个 [`answers`](#askuserquestion) 对象,将每个问题的文本映射到选定的答案。1971在 [非交互模式](/docs/zh-CN/headless) 中使用 `-p` 标志,Claude Code 仅在运行有 [权限主机](/docs/zh-CN/headless#turn-off-permission-prompts-in-unattended-runs) 来接收提示时提供 `AskUserQuestion` 和 `ExitPlanMode`,例如 Agent SDK `canUseTool` 回调。这些工具需要用户交互。返回 `permissionDecision: "allow"` 与 `updatedInput` 一起满足该要求:hook 从 stdin 读取工具的输入,通过您自己的 UI 收集答案,并在 `updatedInput` 中返回它,以便工具运行而不提示。仅返回 `"allow"` 对这些工具不充分。对于 `AskUserQuestion`,回显原始 `questions` 数组并添加一个 [`answers`](#askuserquestion) 对象,将每个问题的文本映射到选定的答案。

1972 1972 

1973从 v2.1.199 起,其服务器用 [`_meta["anthropic/requiresUserInteraction"]`](/docs/zh-CN/mcp#require-approval-for-a-specific-tool) 标记的 MCP 工具更严格:hook 无法用 `"allow"` 跳过其批准提示,无论是否有 `updatedInput`,因为 Claude Code 无法确认 hook 收集了工具需要的交互。1973从 v2.1.199 起,一个 MCP 工具,其服务器用 [`_meta["anthropic/requiresUserInteraction"]`](/docs/zh-CN/mcp#require-approval-for-a-specific-tool) 标记它,更严格:hook 无法用 `"allow"` 跳过其批准提示,无论是否有 `updatedInput`,因为 Claude Code 无法确认 hook 收集了工具需要的交互。

1974 1974 

1975<Note>1975<Note>

1976 PreToolUse 之前使用顶级 `decision` 和 `reason` 字段,但这些对此事件已弃用。改用 `hookSpecificOutput.permissionDecision` 和 `hookSpecificOutput.permissionDecisionReason`。已弃用的值 `"approve"` 和 `"block"` 映射到 `"allow"` 和 `"deny"` 分别。PostToolUse 和 Stop 等其他事件继续使用顶级 `decision` 和 `reason` 作为其当前格式。1976 PreToolUse 之前使用顶级 `decision` 和 `reason` 字段,但这些对此事件已弃用。改用 `hookSpecificOutput.permissionDecision` 和 `hookSpecificOutput.permissionDecisionReason`。已弃用的值 `"approve"` 和 `"block"` 映射到 `"allow"` 和 `"deny"`。PostToolUse 和 Stop 等其他事件继续使用顶级 `decision` 和 `reason` 作为其当前格式。

1977</Note>1977</Note>

1978 1978 

1979<h4 id="defer-a-tool-call-for-later">1979<h4 id="defer-a-tool-call-for-later">

1980 延迟工具调用以供稍后使用1980 延迟工具调用以供稍后使用

1981</h4>1981</h4>

1982 1982 

1983`"defer"` 用于运行 `claude -p` 作为子进程并读取其 JSON 输出的集成,如 Agent SDK 应用或构建在 Claude Code 之上的自定义 UI。它让该调用进程在工具调用处暂停 Claude,通过其自己的界面收集输入,并从中断处恢复。Claude Code 仅在 [非交互模式](/docs/zh-CN/headless) 中使用 `-p` 标志时尊重此值。在交互式会话中,它记录警告并忽略 hook 结果。1983`"defer"` 用于运行 `claude -p` 作为子进程并读取其 JSON 输出的集成,例如 Agent SDK 应用或构建在 Claude Code 之上的自定义 UI。它让该调用进程在工具调用处暂停 Claude,通过其自己的界面收集输入,并从中断处恢复。Claude Code 仅在 [非交互模式](/docs/zh-CN/headless) 中使用 `-p` 标志时尊重此值。在交互式会话中,它记录警告并忽略 hook 结果。

1984 1984 

1985`AskUserQuestion` 工具是典型情况:Claude 想问用户什么,但没有终端来回答。`-p` 运行仅在有 [权限主机](/docs/zh-CN/headless#turn-off-permission-prompts-in-unattended-runs) 时提供 `AskUserQuestion`,如您使用 `--permission-prompt-tool` 传递的 MCP 工具,因此使用一个启动运行。往返工作如下:1985`AskUserQuestion` 工具是典型情况:Claude 想问用户什么,但没有终端来回答。`-p` 运行仅在有 [权限主机](/docs/zh-CN/headless#turn-off-permission-prompts-in-unattended-runs) 时提供 `AskUserQuestion`,例如您使用 `--permission-prompt-tool` 传递的 MCP 工具,因此使用一个启动运行。往返工作如下:

1986 1986 

19871. Claude 调用 `AskUserQuestion`。`PreToolUse` hook 触发。19871. Claude 调用 `AskUserQuestion`。`PreToolUse` hook 触发。

19882. hook 返回 `permissionDecision: "defer"`。工具不执行。进程以 `stop_reason: "tool_deferred"` 退出,待处理的工具调用保留在成绩单中。19882. hook 返回 `permissionDecision: "defer"`。工具不执行。进程以 `stop_reason: "tool_deferred"` 退出,待处理的工具调用保留在成绩单中。


2006}2006}

2007```2007```

2008 2008 

2009没有超时或重试限制。会话保留在磁盘上直到您恢复它,受 [`cleanupPeriodDays`](/docs/zh-CN/settings-reference#cleanupperioddays) 保留扫描的约束,默认情况下在 30 天后删除会话文件,遵循 [保留扫描规则](/docs/zh-CN/claude-directory#cleaned-up-automatically)。如果答案在您恢复时还没有准备好,hook 可以再次返回 `"defer"`,进程以相同的方式退出。调用进程通过最终从 hook 返回 `"allow"` 或 `"deny"` 来控制何时打破循环。2009没有超时或重试限制。会话保留在磁盘上,直到您恢复它,受 [`cleanupPeriodDays`](/docs/zh-CN/settings-reference#cleanupperioddays) 保留扫描的约束,默认情况下在 30 天后删除会话文件,遵循 [保留扫描规则](/docs/zh-CN/claude-directory#cleaned-up-automatically)。如果恢复时答案还没准备好,hook 可以再次返回 `"defer"`,进程以相同的方式退出。调用进程通过最终从 hook 返回 `"allow"` 或 `"deny"` 来控制何时打破循环。

2010 2010 

2011`"defer"` 仅在 Claude 在回合中进行单个工具调用时有效。如果 Claude 一次进行多个工具调用,`"defer"` 被忽略并显示警告,工具通过正常权限流程进行。约束存在是因为恢复只能重新运行一个工具:没有办法延迟批次中的一个调用而不留下其他未解决的。2011`"defer"` 仅在 Claude 在回合中进行单个工具调用时有效。如果 Claude 一次进行多个工具调用,`"defer"` 被忽略并显示警告,工具通过正常权限流程进行。约束存在是因为恢复只能重新运行一个工具:没有办法从批次中延迟一个调用而不留下其他未解决的。

2012 2012 

2013如果恢复时延迟的工具不再可用,进程以 `stop_reason: "tool_deferred_unavailable"` 和 `is_error: true` 退出,hook 触发前。这发生在为恢复的会话未连接提供工具的 MCP 服务器时。`deferred_tool_use` 有效负载仍然包含,以便您可以识别哪个工具丢失。2013如果恢复时延迟的工具不再可用,进程以 `stop_reason: "tool_deferred_unavailable"` 和 `is_error: true` 退出,hook 触发前。这发生在提供工具的 MCP 服务器对于恢复的会话未连接时。`deferred_tool_use` 有效负载仍然包含,以便您可以识别哪个工具丢失。

2014 2014 

2015<Note>2015<Note>

2016 要在 plan mode 中恢复延迟会话,请与 `--resume` 一起传递 [`--permission-prompt-tool`](/docs/zh-CN/cli-reference#cli-flags),以便 Claude Code 可以呈现计划以供批准。没有它,Claude Code 不会恢复 plan mode。需要 Claude Code v2.1.246 或更高版本。2016 要在 plan mode 中恢复延迟会话,请与 `--resume` 一起传递 [`--permission-prompt-tool`](/docs/zh-CN/cli-reference#cli-flags),以便 Claude Code 可以呈现计划以供批准。没有它,Claude Code 不会恢复 plan mode。需要 Claude Code v2.1.246 或更高版本。

2017 2017 

2018 当您使用 `-p` 恢复时,Claude Code 不会恢复任何其他存储的权限模式。它启动运行在新 `claude -p` 运行会启动的权限模式中,因此如果延迟会话使用了一个,请再次传递 `--permission-mode` 或 `--dangerously-skip-permissions`。当您使用 `claude --resume <session-id>` 恢复而不使用 `-p` 时,Claude Code 恢复存储的权限模式,除了 [恢复时的权限模式](/docs/zh-CN/sessions#permission-mode-on-resume) 中列出的例外。2018 当您使用 `-p` 恢复时,Claude Code 不会恢复任何其他存储的权限模式。它在新 `claude -p` 运行会启动的权限模式中启动运行,因此如果延迟会话使用了一个,请再次传递 `--permission-mode` 或 `--dangerously-skip-permissions`。当您使用 `claude --resume <session-id>` 恢复而不使用 `-p` 时,Claude Code 恢复存储的权限模式,除了 [恢复时的权限模式](/docs/zh-CN/sessions#permission-mode-on-resume) 中列出的例外。

2019</Note>2019</Note>

2020 2020 

2021<h3 id="permissionrequest">2021<h3 id="permissionrequest">

2022 PermissionRequest2022 PermissionRequest

2023</h3>2023</h3>

2024 2024 

2025在 Claude Code 即将要求您许可使用工具时运行。在无法显示提示的会话中,如 [非交互模式](/docs/zh-CN/headless) 中的后台子 agent,Claude Code 仍然运行这些 hooks,如果没有 hook 返回决策,它拒绝工具调用。2025在 Claude Code 即将要求您获得工具使用权限时运行。在无法显示提示的会话中,例如 [非交互模式](/docs/zh-CN/headless) 中的后台子代理,Claude Code 仍然运行这些 hooks,如果没有 hook 返回决策,它拒绝工具调用。

2026使用 [PermissionRequest 决策控制](#permissionrequest-decision-control) 代表用户允许或拒绝。2026使用 [PermissionRequest 决策控制](#permissionrequest-decision-control) 代表用户允许或拒绝。

2027 2027 

2028当您需要在 Claude 要求许可使用工具时立即获得信号时使用此事件。Claude Code 仅在提示等待约六秒后运行 [Notification](#notification) hook,其中 `permission_prompt` 类型。2028当您需要 Claude 要求使用工具权限时的信号时使用此事件。Claude Code 仅在提示等待约六秒后运行带有 `permission_prompt` 类型的 [Notification](#notification) hook。

2029 2029 

2030Claude Code 不为沙箱命令的 [网络请求](/docs/zh-CN/sandboxing#network-isolation) 运行 PermissionRequest hooks。要获得该提示的信号,请使用 `permission_prompt` 通知类型。2030Claude Code 不为沙箱命令的 [网络请求](/docs/zh-CN/sandboxing#network-isolation) 运行 PermissionRequest hooks。要获得该提示的信号,请使用 `permission_prompt` 通知类型。

2031 2031 


2035 PermissionRequest 输入2035 PermissionRequest 输入

2036</h4>2036</h4>

2037 2037 

2038PermissionRequest hooks 接收 `tool_name` 和 `tool_input` 字段,如 PreToolUse hooks,但没有 `tool_use_id`。对于 MCP 工具,它们也接收 [`mcp_server`](#pretooluse-input) 对象。可选的 `permission_suggestions` 数组包含 Claude Code 为此请求建议的 [权限更新](#permission-update-entries),如添加允许规则或更改权限模式。2038PermissionRequest hooks 接收 `tool_name` 和 `tool_input` 字段,如 PreToolUse hooks,但没有 `tool_use_id`。对于 MCP 工具,它们也接收 [`mcp_server`](#pretooluse-input) 对象。可选的 `permission_suggestions` 数组包含 Claude Code 为此请求建议的 [权限更新](#permission-update-entries),例如添加允许规则或更改权限模式。

2039 2039 

2040`permission_suggestions` 数组不是您看到的选项的精确列表,因为每个权限对话构建自己的选项。某些对话(如文件编辑的对话)根本不读取数组,并从请求本身派生其选项。读取它的对话仍然可以保留一个选项,其建议保留在数组中,例如当 [`allowManagedPermissionRulesOnly`](/docs/zh-CN/settings-reference#allowmanagedpermissionrulesonly) 隐藏规则保存选项时。它也可以提供没有建议条目的选项,如 [**Yes, and switch to auto mode**](/docs/zh-CN/permission-modes#switch-permission-modes),它直接更改权限模式而不是通过权限更新。2040`permission_suggestions` 数组不是您看到的选项的确切列表,因为每个权限对话都构建自己的选项。某些对话(例如文件编辑的对话)根本不读取数组,并从请求本身派生其选项。读取它的对话仍然可以保留一个选项,其建议保留在数组中,例如当 [`allowManagedPermissionRulesOnly`](/docs/zh-CN/settings-reference#allowmanagedpermissionrulesonly) 隐藏规则保存选项时。它也可以提供数组中没有建议条目的选项,例如 [**Yes, and switch to auto mode**](/docs/zh-CN/permission-modes#switch-permission-modes),它直接更改权限模式而不是通过权限更新。

2041 2041 

2042PreToolUse hooks 在每个工具调用之前运行,无论它是否需要权限。PermissionRequest hooks 仅在 Claude Code 即将要求您许可时运行,或当它否则会自动拒绝无法提示的调用时。两个事件都不为 [`EndConversation`](/docs/zh-CN/tools-reference#endconversation-tool-behavior) 触发。2042PreToolUse hooks 在每个工具调用之前运行,无论它是否需要权限。PermissionRequest hooks 仅在 Claude Code 即将要求您获得权限时运行,或当它否则会自动拒绝无法提示的调用时。两个事件都不为 [`EndConversation`](/docs/zh-CN/tools-reference#endconversation-tool-behavior) 触发。

2043 2043 

2044```json theme={null}2044```json theme={null}

2045{2045{


2068 PermissionRequest 决策控制2068 PermissionRequest 决策控制

2069</h4>2069</h4>

2070 2070 

2071`PermissionRequest` hooks 可以允许或拒绝权限请求。除了所有 hooks 可用的 [JSON 输出字段](#json-output) 外,您的 hook 脚本可以返回一个 `decision` 对象,其中包含这些事件特定的字段:2071`PermissionRequest` hooks 可以允许或拒绝权限请求。除了所有 hooks 可用的 [JSON 输出字段](#json-output) 外,您的 hook 脚本可以返回一个带有这些事件特定字段的 `decision` 对象:

2072 2072 

2073| 字段 | 描述 |2073| 字段 | 描述 |

2074| :------------------- | :------------------------------------------------------------------------------------------------------------------- |2074| :------------------- | :------------------------------------------------------------------------------------------------------------------- |

2075| `behavior` | `"allow"` 授予权限,`"deny"` 拒绝它。[拒绝和询问规则](/docs/zh-CN/permissions#manage-permissions) 仍然被评估,因此返回 `"allow"` 的 hook 不会覆盖匹配的拒绝规则 |2075| `behavior` | `"allow"` 授予权限,`"deny"` 拒绝它。[拒绝和询问规则](/docs/zh-CN/permissions#manage-permissions) 仍然被评估,因此返回 `"allow"` 的 hook 不会覆盖匹配的拒绝规则 |

2076| `updatedInput` | 仅对 `"allow"`:在执行前修改工具的输入参数。替换整个输入对象,因此在修改的输入旁边包含未更改的字段。修改的输入针对拒绝和询问规则重新评估 |2076| `updatedInput` | 仅对 `"allow"`:在执行前修改工具的输入参数。替换整个输入对象,因此在修改的字段旁边包含未更改的字段。修改的输入针对拒绝和询问规则重新评估 |

2077| `updatedPermissions` | 仅对 `"allow"`:[权限更新条目](#permission-update-entries) 数组以应用,如添加允许规则或更改会话权限模式 |2077| `updatedPermissions` | 仅对 `"allow"`:要应用的 [权限更新条目](#permission-update-entries) 数组,例如添加允许规则或更改会话权限模式 |

2078| `message` | 仅对 `"deny"`:告诉 Claude 为什么权限被拒绝 |2078| `message` | 仅对 `"deny"`:告诉 Claude 为什么权限被拒绝 |

2079| `interrupt` | 仅对 `"deny"`:如果 `true`,停止 Claude |2079| `interrupt` | 仅对 `"deny"`:如果为 `true`,停止 Claude |

2080 2080 

2081不带 `decision` 对象退出 2 的 hook 保持权限流程不变,其 stderr 被丢弃。仅 `decision` 对象可以授予或拒绝请求。2081不带 `decision` 对象退出 2 的 hook 保持权限流程不变,其 stderr 被丢弃。仅 `decision` 对象可以授予或拒绝请求。

2082 2082 


2098 权限更新条目2098 权限更新条目

2099</h4>2099</h4>

2100 2100 

2101`updatedPermissions` 输出字段和 [`permission_suggestions` 输入字段](#permissionrequest-input) 都使用相同的条目对象数组。每个条目有一个 `type` 来确定其他字段,以及一个 `destination` 来控制更改写入的位置。2101`updatedPermissions` 输出字段和 [`permission_suggestions` 输入字段](#permissionrequest-input) 都使用相同的条目对象数组。每个条目有一个 `type` 来确定其他字段,以及一个 `destination` 来控制更改的写入位置。

2102 2102 

2103| `type` | 字段 | 效果 |2103| `type` | 字段 | 效果 |

2104| :------------------ | :------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------- |2104| :------------------ | :------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------- |


2110| `removeDirectories` | `directories`、`destination` | 删除工作目录 |2110| `removeDirectories` | `directories`、`destination` | 删除工作目录 |

2111 2111 

2112<Note>2112<Note>

2113 `setMode` 与 `bypassPermissions` 仅在您已经使用 bypass mode 启动会话时生效:`--dangerously-skip-permissions`、`--permission-mode bypassPermissions`、`--allow-dangerously-skip-permissions` 或 [用户、`--settings` 或托管设置](/docs/zh-CN/settings-reference#permissions-defaultmode) 中的 `permissions.defaultMode: "bypassPermissions"`。否则更新是无操作。当 [`permissions.disableBypassPermissionsMode`](/docs/zh-CN/permissions#managed-settings) 禁用模式或会话在 [受限模式](/docs/zh-CN/cli-reference#cli-flags) 中启动时,更新也是无操作。2113 `setMode` 与 `bypassPermissions` 仅在您使用已可用的 bypass mode 启动会话时生效:`--dangerously-skip-permissions`、`--permission-mode bypassPermissions`、`--allow-dangerously-skip-permissions` 或 [用户、`--settings` 或托管设置](/docs/zh-CN/settings-reference#permissions-defaultmode) 中的 `permissions.defaultMode: "bypassPermissions"`。否则更新是无操作。当 [`permissions.disableBypassPermissionsMode`](/docs/zh-CN/permissions#managed-settings) 禁用模式或会话在 [受限模式](/docs/zh-CN/cli-reference#cli-flags) 中启动时,更新也是无操作。

2114 2114 

2115 `bypassPermissions` 永远不会作为 `defaultMode` 持久化,无论 `destination` 如何。2115 `bypassPermissions` 永远不会作为 `defaultMode` 持久化,无论 `destination` 如何。

2116</Note>2116</Note>


2137当工具名称不是正确的过滤器时更广泛地匹配:2137当工具名称不是正确的过滤器时更广泛地匹配:

2138 2138 

2139* 要在任何工具成功完成后运行 hook,省略 `matcher` 或将其设置为 `"*"`。您的 hook 然后可以自己发现更改了什么,例如通过运行 `git status --porcelain`,它也列出 `git diff` 错过的未跟踪文件。对于失败的工具调用,在 [PostToolUseFailure](#posttoolusefailure) 下添加相同的 hook。2139* 要在任何工具成功完成后运行 hook,省略 `matcher` 或将其设置为 `"*"`。您的 hook 然后可以自己发现更改了什么,例如通过运行 `git status --porcelain`,它也列出 `git diff` 错过的未跟踪文件。对于失败的工具调用,在 [PostToolUseFailure](#posttoolusefailure) 下添加相同的 hook。

2140* 要在特定文件更改时运行 hook,无论什么写入它,请使用 [FileChanged](#filechanged)。当 `Bash` 命令或 Claude Code 外的进程重写同一文件时,Claude Code 不运行匹配 `Edit|Write` 的 `PostToolUse` hook。2140* 要在特定文件在磁盘上更改时运行 hook,无论什么写入它,请使用 [FileChanged](#filechanged)。当 `Bash` 命令或 Claude Code 外的进程重写相同文件时,Claude Code 不运行匹配 `Edit|Write` 的 `PostToolUse` hook。

2141 2141 

2142<h4 id="posttooluse-input">2142<h4 id="posttooluse-input">

2143 PostToolUse 输入2143 PostToolUse 输入


2180| :--------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |2180| :--------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

2181| `decision` | `"block"` 在工具结果旁边添加 `reason`。Claude 仍然看到原始输出;要替换它,请使用 `updatedToolOutput` |2181| `decision` | `"block"` 在工具结果旁边添加 `reason`。Claude 仍然看到原始输出;要替换它,请使用 `updatedToolOutput` |

2182| `reason` | 当 `decision` 为 `"block"` 时显示给 Claude 的解释 |2182| `reason` | 当 `decision` 为 `"block"` 时显示给 Claude 的解释 |

2183| `additionalContext` | 与工具结果一起添加到 Claude 上下文的字符串。有关文本如何传递以及放入其中的内容,请参阅 [为 Claude 添加上下文](#add-context-for-claude) |2183| `additionalContext` | 与工具结果一起添加到 Claude 上下文的字符串。有关详细信息,请参阅 [为 Claude 添加上下文](#add-context-for-claude) |

2184| `classifierContext` | 关于此调用结果的简短说明,用于 [自动模式](/docs/zh-CN/permission-modes#eliminate-prompts-with-auto-mode) 分类器而不是 Claude。有关详细信息,请参阅 [为自动模式分类器注释结果](#annotate-a-result-for-the-auto-mode-classifier)。需要 Claude Code v2.1.236 或更高版本 |2184| `classifierContext` | 关于此调用结果的简短说明,用于 [自动模式](/docs/zh-CN/permission-modes#eliminate-prompts-with-auto-mode) 分类器而不是 Claude。有关详细信息,请参阅 [为自动模式分类器注释结果](#annotate-a-result-for-the-auto-mode-classifier)。需要 Claude Code v2.1.236 或更高版本 |

2185| `updatedToolOutput` | 在将工具的输出发送给 Claude 之前用提供的值替换它。该值必须与工具的输出形状匹配 |2185| `updatedToolOutput` | 在将工具的输出发送给 Claude 之前用提供的值替换它。该值必须与工具的输出形状匹配 |

2186| `updatedMCPToolOutput` | 仅替换 [MCP 工具](#match-mcp-tools) 的输出。优先使用 `updatedToolOutput`,它适用于所有工具 |2186| `updatedMCPToolOutput` | 仅替换 [MCP 工具](#match-mcp-tools) 的输出。优先使用 `updatedToolOutput`,它适用于所有工具 |


2203```2203```

2204 2204 

2205<Warning>2205<Warning>

2206 `updatedToolOutput` 仅更改 Claude 看到的内容。工具已经在 hook 触发时运行,因此任何写入的文件、执行的命令或发送的网络请求已经生效。遥测如 OpenTelemetry 工具跨度和分析事件也在 hook 运行之前捕获原始输出。要在运行前防止或修改工具调用,请改用 [PreToolUse](#pretooluse) hook。2206 `updatedToolOutput` 仅更改 Claude 看到的内容。工具已经在 hook 触发时运行,因此任何写入的文件、执行的命令或发送的网络请求已经生效。遥测(如 OpenTelemetry 工具跨度和分析事件)也在 hook 运行之前捕获原始输出。要在运行前防止或修改工具调用,请改用 [PreToolUse](#pretooluse) hook。

2207 2207 

2208 替换值必须与工具的输出形状匹配。内置工具返回结构化对象而不是纯字符串。例如,`Bash` 返回一个带有 `stdout`、`stderr`、`interrupted` 和 `isImage` 字段的对象。对于内置工具,不与工具的输出模式匹配的值被忽略,使用原始输出。MCP 工具输出通过而不进行模式验证。剥离 Claude 需要的错误详情可能导致它基于错误的假设继续。2208 替换值必须与工具的输出形状匹配。内置工具返回结构化对象而不是纯字符串。例如,`Bash` 返回一个带有 `stdout`、`stderr`、`interrupted` 和 `isImage` 字段的对象。对于内置工具,与工具的输出模式不匹配的值被忽略,使用原始输出。MCP 工具输出通过而不进行模式验证。剥离 Claude 需要的错误详细信息可能导致它在错误的假设下继续。

2209</Warning>2209</Warning>

2210 2210 

2211<h4 id="annotate-a-result-for-the-auto-mode-classifier">2211<h4 id="annotate-a-result-for-the-auto-mode-classifier">

2212 为自动模式分类器注释结果2212 为自动模式分类器注释结果

2213</h4>2213</h4>

2214 2214 

2215返回 `classifierContext` 以向 [自动模式](/docs/zh-CN/permission-modes#eliminate-prompts-with-auto-mode) 分类器发送关于工具调用结果的简短说明,而不是向 Claude。分类器 [永远不会接收工具结果本身](/docs/zh-CN/permission-modes#how-the-classifier-evaluates-actions),因此此字段是告诉它在审查后续操作之前关于调用返回的内容的支持方式。该字段需要 Claude Code v2.1.236 或更高版本。2215返回 `classifierContext` 以向 [自动模式](/docs/zh-CN/permission-modes#eliminate-prompts-with-auto-mode) 分类器而不是 Claude 发送关于工具调用结果的简短说明。分类器 [永远不会接收工具结果本身](/docs/zh-CN/permission-modes#how-the-classifier-evaluates-actions),因此此字段是告诉它在审查后续操作之前关于调用返回的内容的支持方式。该字段需要 Claude Code v2.1.236 或更高版本。

2216 2216 

2217下面的示例告诉分类器查询的输出来自何处:2217下面的示例告诉分类器查询的输出来自何处:

2218 2218 


2227 2227 

2228分类器给予说明的权重取决于您配置 hook 的位置:2228分类器给予说明的权重取决于您配置 hook 的位置:

2229 2229 

2230* **在 Claude Code 中配置的 Hooks**:对于来自设置文件、插件、skills 和 agent frontmatter 的 hooks,分类器将说明视为未验证的、应用提供的上下文。说明永远不会建立用户意图,如果它声称您批准或请求了什么,分类器会根据您在对话中的自己的消息检查该声明2230* **在 Claude Code 中配置的 Hooks**:对于来自设置文件、插件、skills 和 agent frontmatter 的 hooks,分类器将说明视为未验证的、应用程序提供的上下文。说明永远不会建立用户意图,如果它声称您批准或请求了什么,分类器会根据您在对话中的自己的消息检查该声明

2231* **进程内 Agent SDK 回调**:当应用嵌入 Claude Code 将 hook 注册为 [TypeScript SDK 回调](/docs/zh-CN/agent-sdk/hooks) 并在实时会话期间返回说明时,分类器可能会将用户声明中继的说明视为用户意图。这样的声明可以满足分类器会接受来自您发送的消息的同意要求,但它永远不会解除您自己的消息也无法解除的阻止。会话恢复后,Claude Code 将恢复的说明视为未验证的上下文。当来自两个组的 hooks 注释同一调用时,分类器将组合说明视为未验证2231* **进程内 Agent SDK 回调**:当应用程序嵌入 Claude Code 并将 hook 注册为 [TypeScript SDK 回调](/docs/zh-CN/agent-sdk/hooks) 并在实时会话期间返回说明时,分类器可能会将用户声明中继的说明视为用户意图。这样的声明可以满足分类器会从您发送的消息接受的同意要求,但它永远不会解除您自己的消息也无法解除的阻止。会话恢复后,Claude Code 将恢复的说明视为未验证的上下文。当两个组的 hooks 注释相同的调用时,分类器将组合说明视为未验证

2232 2232 

2233Claude Code 在传递说明时应用这些限制:2233Claude Code 在传递说明时应用这些限制:

2234 2234 

2235* **长度**:Claude Code 将一个工具调用的说明上限为 2,000 个字符,并截断其余部分。上限在响应该调用的每个 hook 中共享2235* **长度**:Claude Code 将一个工具调用的说明上限为 2,000 个字符,并截断其余部分。上限在响应该调用的每个 hook 中共享

2236* **仅同步响应**:Claude Code 忽略 [在后台运行](#run-hooks-in-the-background) 的 hook 响应中的字段,因为该响应在 Claude Code 记录工具结果后到达2236* **仅同步响应**:Claude Code 忽略 [在后台运行](#run-hooks-in-the-background) 的 hook 响应中的字段,因为该响应在 Claude Code 记录工具结果后到达

2237* **分类器不记录的调用**:分类器的成绩单省略只读查找如文件读取和搜索。Claude Code 丢弃附加到其中一个调用的说明2237* **分类器不记录的调用**:分类器的成绩单省略只读查找,例如文件读取和搜索。Claude Code 丢弃附加到其中一个调用的说明

2238* **与重写的交互**:当说明描述您用 `updatedToolOutput` 替换的输出时,在同一 hook 响应中返回两个字段。如果该重写被拒绝或另一个 hook 的重写替换它,Claude Code 丢弃说明。Claude Code 传递您返回的说明而不重写,即使另一个 hook 重写输出2238* **与重写的交互**:当说明描述您用 `updatedToolOutput` 替换的输出时,在同一 hook 响应中返回两个字段。如果该重写被拒绝或另一个 hook 的重写替换它,Claude Code 丢弃说明。Claude Code 传递您返回的说明而不重写,即使另一个 hook 重写输出

2239 2239 

2240<Warning>2240<Warning>

2241 分类器读取您放在 `classifierContext` 中的内容作为来自托管会话的应用的信息,因此不要将不受信任的工具输出或第三方文本复制到其中。将说明保持为关于此一个调用的简短断言,如关于其来源的事实或关于它的用户声明;不要使用该字段传递不相关的消息或事件流。2241 分类器将您放在 `classifierContext` 中的内容读取为来自托管会话的应用程序的信息,因此不要将不受信任的工具输出或第三方文本复制到其中。将说明保持为关于此一个调用的简短断言,例如关于其来源的事实或用户关于它的声明;不要使用该字段传递不相关的消息或事件流。

2242</Warning>2242</Warning>

2243 2243 

2244<h3 id="posttoolusefailure">2244<h3 id="posttoolusefailure">


2280 2280 

2281| 字段 | 描述 |2281| 字段 | 描述 |

2282| :------------- | :------------------------------------------------------------------------ |2282| :------------- | :------------------------------------------------------------------------ |

2283| `error` | 描述出错内容的字符串。格式取决于失败的工具 |2283| `error` | 描述出错的字符串。格式取决于失败的工具 |

2284| `is_interrupt` | 可选布尔值。当失败作为中止而不是工具报告的错误到达 Claude Code 时为 True。取消运行的工具不触发此 hook;工具结果携带中断消息 |2284| `is_interrupt` | 可选布尔值。当失败作为中止而不是工具报告的错误到达 Claude Code 时为 True。取消运行的工具不触发此 hook;工具结果携带中断消息 |

2285| `duration_ms` | 可选。工具执行时间(毫秒)。不包括权限提示和 PreToolUse hooks 中花费的时间 |2285| `duration_ms` | 可选。工具执行时间(毫秒)。不包括权限提示和 PreToolUse hooks 中花费的时间 |

2286 2286 


2288 2288 

2289* 对于 Bash 和 PowerShell,运行并退出的命令产生第一行 `Exit code N`,然后是命令产生的任何输出作为一个块,stdout 和 stderr 交错2289* 对于 Bash 和 PowerShell,运行并退出的命令产生第一行 `Exit code N`,然后是命令产生的任何输出作为一个块,stdout 和 stderr 交错

2290* 有效负载也可能携带裸失败消息,没有退出代码行,当 Claude Code 无法启动 shell 进程本身时2290* 有效负载也可能携带裸失败消息,没有退出代码行,当 Claude Code 无法启动 shell 进程本身时

2291* Claude Code 中间截断长字符串,围绕 `... [N characters truncated] ...` 标记,并可以插入自己的行,如 `Command timed out after 2m 0s`2291* Claude Code 中间截断长字符串,围绕 `... [N characters truncated] ...` 标记,并可以插入自己的行,例如 `Command timed out after 2m 0s`

2292 2292 

2293<h4 id="posttoolusefailure-decision-control">2293<h4 id="posttoolusefailure-decision-control">

2294 PostToolUseFailure 决策控制2294 PostToolUseFailure 决策控制


2297`PostToolUseFailure` hooks 可以在工具失败后向 Claude 提供上下文。除了所有 hooks 可用的 [JSON 输出字段](#json-output) 外,您的 hook 脚本可以返回这些事件特定的字段:2297`PostToolUseFailure` hooks 可以在工具失败后向 Claude 提供上下文。除了所有 hooks 可用的 [JSON 输出字段](#json-output) 外,您的 hook 脚本可以返回这些事件特定的字段:

2298 2298 

2299| 字段 | 描述 |2299| 字段 | 描述 |

2300| :------------------ | :-------------------------------------------------------------------------------------- |2300| :------------------ | :--------------------------------------------------------------------------- |

2301| `additionalContext` | 与错误一起添加到 Claude 上下文的字符串。有关文本如何传递以及放入其中的内容,请参阅 [为 Claude 添加上下文](#add-context-for-claude) |2301| `additionalContext` | 与错误一起添加到 Claude 上下文的字符串。有关详细信息,请参阅 [为 Claude 添加上下文](#add-context-for-claude) |

2302 2302 

2303```json theme={null}2303```json theme={null}

2304{2304{


2345}2345}

2346```2346```

2347 2347 

2348`tool_response` 包含模型在相应 `tool_result` 块中接收的相同内容。该值是序列化的字符串或内容块数组,完全如工具发出的一样。对于 `Read`,这意味着行号前缀的文本而不是原始文件内容。响应可能很大,因此仅解析您需要的字段。2348`tool_response` 包含模型在相应 `tool_result` 块中接收的相同内容。该值是序列化字符串或内容块数组,完全如工具发出的那样。对于 `Read`,这意味着行号前缀文本而不是原始文件内容。响应可能很大,因此仅解析您需要的字段。

2349 2349 

2350<Note>2350<Note>

2351 `tool_response` 形状与 `PostToolUse` 的不同。`PostToolUse` 传递工具的结构化 `Output` 对象,如 `Write` 的 `{filePath: "...", type: "create"}`;`PostToolBatch` 传递模型看到的序列化 `tool_result` 内容。2351 `tool_response` 形状与 `PostToolUse` 的不同。`PostToolUse` 传递工具的结构化 `Output` 对象,例如 `Write` 的 `{filePath: "...", type: "create"}`;`PostToolBatch` 传递序列化 `tool_result` 内容模型看到的。

2352</Note>2352</Note>

2353 2353 

2354<h4 id="posttoolbatch-decision-control">2354<h4 id="posttoolbatch-decision-control">


2358`PostToolBatch` hooks 可以为 Claude 注入上下文。除了所有 hooks 可用的 [JSON 输出字段](#json-output) 外,您的 hook 脚本可以返回这些事件特定的字段:2358`PostToolBatch` hooks 可以为 Claude 注入上下文。除了所有 hooks 可用的 [JSON 输出字段](#json-output) 外,您的 hook 脚本可以返回这些事件特定的字段:

2359 2359 

2360| 字段 | 描述 |2360| 字段 | 描述 |

2361| :------------------ | :------------------------------------------------------------------------------------------------ |2361| :------------------ | :-------------------------------------------------------------------------------------------------- |

2362| `additionalContext` | 在下一个模型调用之前注入一次的上下文字符串。有关传递详情、放入其中的内容以及恢复的会话如何处理过去的值,请参阅 [为 Claude 添加上下文](#add-context-for-claude) |2362| `additionalContext` | 在下一个模型调用之前注入一次的上下文字符串。有关传递详细信息、放入其中的内容以及恢复的会话如何处理过去的值,请参阅 [为 Claude 添加上下文](#add-context-for-claude) |

2363 2363 

2364```json theme={null}2364```json theme={null}

2365{2365{


2370}2370}

2371```2371```

2372 2372 

2373返回 `decision: "block"` 或 `continue: false` 在下一个模型调用之前停止 agentic 循环。阻止消息来自 JSON `reason` 或 `stopReason`,或来自退出 2 时的 stderr。您在成绩单中看到它作为警告,它保留在对话中,因此 Claude 在对话继续时看到它。2373返回 `decision: "block"` 或 `continue: false` 在下一个模型调用之前停止 agentic 循环。阻止消息来自 JSON `reason` 或 `stopReason`,或来自退出 2 的 stderr。您在成绩单中看到它作为警告,它保留在对话中,因此当对话继续时 Claude 看到它。

2374 2374 

2375<h3 id="permissiondenied">2375<h3 id="permissiondenied">

2376 PermissionDenied2376 PermissionDenied

2377</h3>2377</h3>

2378 2378 

2379在 [自动模式](/docs/zh-CN/permission-modes#eliminate-prompts-with-auto-mode) 拒绝工具调用时运行,包括当它拒绝而没有分类器判决时,因为 [与自动模式分开的安全检查拒绝了分类器自己的请求](/docs/zh-CN/errors#auto-mode-cannot-determine-the-safety-of-an-action) 或其响应没有解析。此 hook 仅在自动模式中触发:当您手动拒绝权限对话、`PreToolUse` hook 阻止调用或 `deny` 规则匹配时不运行。使用它来记录拒绝、调整配置或告诉模型它可能重试工具调用。2379在 [自动模式](/docs/zh-CN/permission-modes#eliminate-prompts-with-auto-mode) 拒绝工具调用时运行,包括当它拒绝而没有分类器判决时,因为 [独立于自动模式的安全检查拒绝了分类器自己的请求](/docs/zh-CN/errors#auto-mode-cannot-determine-the-safety-of-an-action) 或其响应没有解析。此 hook 仅在自动模式中触发:当您手动拒绝权限对话、`PreToolUse` hook 阻止调用或 `deny` 规则匹配时,它不运行。使用它来记录拒绝、调整配置或告诉模型它可能重试工具调用。

2380 2380 

2381匹配工具名称,与 PreToolUse 相同的值。2381匹配工具名称,与 PreToolUse 相同的值。

2382 2382 


2404```2404```

2405 2405 

2406| 字段 | 描述 |2406| 字段 | 描述 |

2407| :------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |2407| :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

2408| `reason` | 拒绝原因。对于分类器判决,在大多数会话中它命名方括号中的匹配规则,如 `[Data Exfiltration]`;有关其他形式,请参阅 [审查拒绝](/docs/zh-CN/auto-mode-config#review-denials)。对于 [无判决拒绝](#permissiondenied-decision-control),它以 `Auto mode could not evaluate this action and is blocking it for safety` 开头。对于因分类器模型不可用而拒绝,它是固定文本 `Classifier unavailable` |2408| `reason` | 拒绝原因。对于分类器判决,在大多数会话中它命名方括号中的匹配规则,例如 `[Data Exfiltration]`;有关其他形式,请参阅 [审查拒绝](/docs/zh-CN/auto-mode-config#review-denials)。对于 [无判决拒绝](#permissiondenied-decision-control),它以 `Auto mode could not evaluate this action and is blocking it for safety` 开头。对于拒绝因为分类器模型不可用,它是固定文本 `Classifier unavailable` |

2409 2409 

2410<h4 id="permissiondenied-decision-control">2410<h4 id="permissiondenied-decision-control">

2411 PermissionDenied 决策控制2411 PermissionDenied 决策控制

2412</h4>2412</h4>

2413 2413 

2414PermissionDenied hooks 可以告诉模型它可能重试被拒绝的工具调用。返回一个 JSON 对象,其中 `hookSpecificOutput.retry` 设置为 `true`:2414PermissionDenied hooks 可以告诉模型它可能重试被拒绝的工具调用。返回一个 `hookSpecificOutput.retry` 设置为 `true` 的 JSON 对象:

2415 2415 

2416```json theme={null}2416```json theme={null}

2417{2417{


2424 2424 

2425当 `retry` 为 `true` 时,Claude Code 向对话添加一条消息,告诉模型它可能重试工具调用。Claude Code 不反转拒绝本身。如果您的 hook 不返回 JSON,或返回 `retry: false`,拒绝成立,模型接收原始拒绝消息。2425当 `retry` 为 `true` 时,Claude Code 向对话添加一条消息,告诉模型它可能重试工具调用。Claude Code 不反转拒绝本身。如果您的 hook 不返回 JSON,或返回 `retry: false`,拒绝成立,模型接收原始拒绝消息。

2426 2426 

2427当分类器对操作产生 [无判决](/docs/zh-CN/errors#auto-mode-cannot-determine-the-safety-of-an-action) 时,Claude Code 忽略 `retry: true`:其响应没有解析,或与自动模式分开的安全检查拒绝了分类器自己的请求。对于这些拒绝,Claude Code 已经在拒绝消息中告诉模型是否稍后重试或继续。2427当分类器对操作 [产生无判决](/docs/zh-CN/errors#auto-mode-cannot-determine-the-safety-of-an-action) 时,Claude Code 忽略 `retry: true`:其响应没有解析,或独立于自动模式的安全检查拒绝了分类器自己的请求。对于这些拒绝,Claude Code 已经在拒绝消息中告诉模型是否稍后重试或继续。

2428 2428 

2429<h3 id="notification">2429<h3 id="notification">

2430 Notification2430 Notification

2431</h3>2431</h3>

2432 2432 

2433在 Claude Code 发送通知时运行。匹配通知类型。省略匹配器以对所有通知类型运行 hooks。2433在 Claude Code 发送通知时运行。匹配通知类型。省略匹配器以为所有通知类型运行 hooks。

2434 2434 

2435您即使在关闭桌面通知时也接收这些 hook 事件:`preferredNotifChannel` 设置,包括 `notifications_disabled`,仅更改您如何被警告,而不是您的 hook 是否运行。2435即使关闭了桌面通知,您也会接收这些 hook 事件:`preferredNotifChannel` 设置(包括 `notifications_disabled`)仅更改您如何被警告,而不是您的 hook 是否运行。

2436 2436 

2437| 匹配器 | 何时触发 |2437| 匹配器 | 何时触发 |

2438| :--------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |2438| :--------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |


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

2446| `agent_needs_input` | 后台会话在 [agent view](/docs/zh-CN/agent-view) 在终端中打开时开始等待您的输入,或当前会话询问您 [agent team](/docs/zh-CN/agent-teams) 队友的终端设置问题,您约六秒没有输入 |2446| `agent_needs_input` | 后台会话在 [agent view](/docs/zh-CN/agent-view) 在终端中打开时开始等待您的输入,或当前会话询问您 [agent team](/docs/zh-CN/agent-teams) 队友的终端设置问题,您约六秒没有输入 |

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

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

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

2450| `quota_auto_resume_disabled` | Claude Code 结束其对 claude.ai 使用限制的等待而不继续您的任务:[`autoContinueAtUsageLimit`](/docs/zh-CN/settings-reference#autocontinueatusagelimit) 关闭或重置在 Claude Code 自己启动的等待期间移动超过 24 小时,继续的任务继续命中限制,或继续在到达模型之前被阻止。当您按 `Esc` 或 `Ctrl+C` 或选择 **Don't continue automatically** 时不触发 |2450| `quota_auto_resume_disabled` | Claude Code 结束其对 claude.ai 使用限制的等待而不继续您的任务:[`autoContinueAtUsageLimit`](/docs/zh-CN/settings-reference#autocontinueatusagelimit) 关闭或重置在 Claude Code 自己启动的等待期间移动超过 24 小时,继续的任务继续命中限制,或继续在到达模型之前被阻止。当您按 `Esc` 或 `Ctrl+C` 或选择 **Don't continue automatically** 时不触发 |

2451 2451 


2460<Note>2460<Note>

2461 `permission_prompt`、`idle_prompt`、`elicitation_dialog` 和 `elicitation_url_dialog` 类型与桌面通知共享其时序,因此在终端会话中您仅在您似乎远离终端时看到它们:2461 `permission_prompt`、`idle_prompt`、`elicitation_dialog` 和 `elicitation_url_dialog` 类型与桌面通知共享其时序,因此在终端会话中您仅在您似乎远离终端时看到它们:

2462 2462 

2463 * 期望 `permission_prompt` 一旦您约六秒没有输入。计时器在权限提示出现时启动,每次按键推迟它。要在 Claude 要求许可使用工具时立即运行 hook,请改用 [PermissionRequest](#permissionrequest)。2463 * 期望 `permission_prompt` 一旦您约六秒没有输入。计时器在权限提示出现时启动,每次按键推迟它。要在 Claude 要求使用工具权限时立即运行 hook,请改用 [PermissionRequest](#permissionrequest)。

2464 * 期望 `idle_prompt` 约 60 秒后 Claude 完成响应,仅当您自那以后没有输入时。Claude Code 在等待 claude.ai 使用限制重置时不发送 `idle_prompt`。当等待自己结束时,其中一个 `quota_auto_resume_*` 类型触发。2464 * 期望 `idle_prompt` 约 60 秒后 Claude 完成响应,仅当您自那以后没有输入时。Claude Code 在等待 claude.ai 使用限制重置时不发送 `idle_prompt`。当等待自己结束时,其中一个 `quota_auto_resume_*` 类型触发。

2465 * 期望 `elicitation_dialog` 用于引出表单,或 `elicitation_url_dialog` 用于浏览器 URL 请求,一旦您约六秒没有输入。两者共享与 `permission_prompt` 相同的六秒门:计时器在对话出现时启动,每次按键推迟它。2465 * 期望 `elicitation_dialog` 用于引出表单,或 `elicitation_url_dialog` 用于浏览器 URL 请求,一旦您约六秒没有输入。两者共享与 `permission_prompt` 相同的六秒门:计时器在对话出现时启动,每次按键推迟它。

2466 2466 

2467 在另一个对话在屏幕上时到达的权限请求或引出保持相同的六秒门,从请求到达时计时。其通知可以在请求仍然等待时到达,同时打开的对话仍然在屏幕上。2467 权限请求或引出在另一个对话在屏幕上时到达保持相同的六秒门,从请求到达时计时。其通知可以在请求仍然等待打开的对话后面时到达您。

2468</Note>2468</Note>

2469 2469 

2470Claude Code 在会话中以不同方式计时 `permission_prompt`,其中它向 Agent SDK 的 [`canUseTool` 回调](/docs/zh-CN/agent-sdk/user-input) 发送权限请求,这是 Claude Desktop 和 VS Code 扩展如何托管 Claude Code 的方式:2470Claude Code 在发送权限请求给 Agent SDK 的 [`canUseTool` 回调](/docs/zh-CN/agent-sdk/user-input) 的会话中以不同方式计时 `permission_prompt`,这是 Claude Desktop 和 VS Code 扩展如何托管 Claude Code 的方式:

2471 2471 

2472* 期望 `permission_prompt` 约六秒后 Claude 要求许可。Claude Code 在您输入时不推迟它。2472* 期望 `permission_prompt` 约六秒后 Claude 要求权限。Claude Code 在您输入时不推迟它。

2473* 如果您或 [PermissionRequest](#permissionrequest) hook 更早回答,Claude Code 不运行 `permission_prompt`。2473* 如果您或 [PermissionRequest](#permissionrequest) hook 更早回答,Claude Code 不运行 `permission_prompt`。

2474* 设置 [`CLAUDE_CODE_DISABLE_PERMISSION_PROMPT_NOTIFY_HOOKS`](/docs/zh-CN/env-vars) 为 `1` 以在这些会话中关闭 `permission_prompt`。2474* 设置 [`CLAUDE_CODE_DISABLE_PERMISSION_PROMPT_NOTIFY_HOOKS`](/docs/zh-CN/env-vars) 为 `1` 以在这些会话中关闭 `permission_prompt`。

2475 2475 

2476在 v2.1.233 之前,`permission_prompt` 在这些会话中不触发。2476在 v2.1.233 之前,`permission_prompt` 在这些会话中不触发。

2477 2477 

2478使用单独的匹配器根据通知类型运行不同的处理程序。此配置在 Claude 需要权限批准时触发权限特定的警报脚本,在 Claude 空闲时触发不同的通知:2478使用单独的匹配器根据通知类型运行不同的处理程序。此配置在 Claude 需要权限批准时触发权限特定的警报脚本,以及当 Claude 空闲时触发不同的通知:

2479 2479 

2480```json theme={null}2480```json theme={null}

2481{2481{


2522}2522}

2523```2523```

2524 2524 

2525Notification hooks 无法阻止或修改通知。Claude Code 丢弃它们的 `systemMessage` 和 `continue` 字段,但仍然发出 [`terminalSequence`](#emit-terminal-notifications),这是桌面通知示例所依赖的。Notification hooks 用于副作用,如将通知转发到外部服务。2525Notification hooks 无法阻止或修改通知。Claude Code 丢弃它们的 `systemMessage` 和 `continue` 字段,但仍然发出 [`terminalSequence`](#emit-terminal-notifications),这是桌面通知示例所依赖的。Notification hooks 用于副作用,例如将通知转发到外部服务。

2526 2526 

2527<h3 id="subagentstart">2527<h3 id="subagentstart">

2528 SubagentStart2528 SubagentStart

2529</h3>2529</h3>

2530 2530 

2531在 Claude 使用 Agent 工具生成子 agent 时运行,当 Claude [恢复子 agent](/docs/zh-CN/sub-agents#resume-subagents) 时,以及每次进程内 [agent team](/docs/zh-CN/agent-teams) 队友处理新消息时。支持匹配器以按 agent 类型名称过滤。对于内置 agent,这是 agent 名称如 `general-purpose`、`Explore` 或 `Plan`。对于 [自定义子 agent](/docs/zh-CN/sub-agents),这是 agent 的 frontmatter 中的 `name` 字段,而不是文件名。2531在 Claude 使用 Agent 工具生成子代理时运行,当 Claude [恢复子代理](/docs/zh-CN/sub-agents#resume-subagents) 时,以及每次进程内 [agent team](/docs/zh-CN/agent-teams) 队友处理新消息时。支持匹配器以按 agent 类型名称过滤。对于内置 agents,这是 agent 名称,如 `general-purpose`、`Explore` 或 `Plan`。对于 [自定义子代理](/docs/zh-CN/sub-agents),这是 agent 的 frontmatter 中的 `name` 字段,而不是文件名。

2532 2532 

2533对于由 [插件](/docs/zh-CN/plugins) 提供的子 agent,agent 类型是插件范围的标识符如 `my-plugin:reviewer`,而不是裸 frontmatter 名称。冒号将插件范围的名称放在正则表达式路径上,因此用 `^` 和 `$` 锚定匹配器以获得精确匹配:`^my-plugin:reviewer$`。2533对于由 [插件](/docs/zh-CN/plugins) 提供的子代理,agent 类型是插件范围的标识符,例如 `my-plugin:reviewer`,而不是裸 frontmatter 名称。冒号将插件范围的名称放在正则表达式路径上,因此用 `^` 和 `$` 锚定匹配器以获得精确匹配:`^my-plugin:reviewer$`。

2534 2534 

2535<h4 id="subagentstart-input">2535<h4 id="subagentstart-input">

2536 SubagentStart 输入2536 SubagentStart 输入

2537</h4>2537</h4>

2538 2538 

2539除了 [常见输入字段](#common-input-fields) 外,SubagentStart hooks 接收 `agent_id` 与子 agent 的唯一标识符和 `agent_type` 与匹配器过滤的 agent 名称。2539除了 [常见输入字段](#common-input-fields) 外,SubagentStart hooks 接收 `agent_id` 与子代理的唯一标识符和 `agent_type` 与匹配器过滤的 agent 名称。

2540 2540 

2541```json theme={null}2541```json theme={null}

2542{2542{


2549}2549}

2550```2550```

2551 2551 

2552SubagentStart hooks 无法阻止子 agent 创建,但它们可以向子 agent 注入上下文。除了所有 hooks 可用的 [JSON 输出字段](#json-output) 外,您可以返回:2552SubagentStart hooks 无法阻止子代理创建,但它们可以向子代理注入上下文。除了所有 hooks 可用的 [JSON 输出字段](#json-output) 外,您可以返回:

2553 2553 

2554| 字段 | 描述 |2554| 字段 | 描述 |

2555| :------------------ | :--------------------------------------------------------------------------------------------------------- |2555| :------------------ | :------------------------------------------------------------------------------------ |

2556| `additionalContext` | 在子 agent 对话开始时添加到子 agent 上下文的字符串,在其第一个提示之前。有关文本如何传递以及放入其中的内容,请参阅 [为 Claude 添加上下文](#add-context-for-claude) |2556| `additionalContext` | 在子代理对话开始时添加到子代理上下文的字符串,在其第一个提示之前。有关详细信息,请参阅 [为 Claude 添加上下文](#add-context-for-claude) |

2557 2557 

2558```json theme={null}2558```json theme={null}

2559{2559{


2564}2564}

2565```2565```

2566 2566 

2567当 hook 再次为同一子 agent 运行时,Claude Code 仅在子 agent 的上下文还不包含来自早期运行的副本时注入返回的上下文。在启动时注入的副本保留在位置,保持子 agent 的 [prompt cache](/docs/zh-CN/prompt-caching#subagents-and-the-cache) 完整。在 [自动压缩](/docs/zh-CN/sub-agents#auto-compaction) 丢弃该副本后,Claude Code 再次注入下一个运行的上下文。2567当 hook 再次为同一子代理运行时,Claude Code 仅在子代理的上下文还不包含早期运行副本时注入返回的上下文。在启动时注入的副本保留在位置,保持子代理的 [prompt cache](/docs/zh-CN/prompt-caching#subagents-and-the-cache) 完整。在 [自动压缩](/docs/zh-CN/sub-agents#auto-compaction) 丢弃该副本后,Claude Code 再次注入下一个运行的上下文。

2568 2568 

2569<h3 id="subagentstop">2569<h3 id="subagentstop">

2570 SubagentStop2570 SubagentStop

2571</h3>2571</h3>

2572 2572 

2573在 Claude Code 子 agent 完成响应时运行。匹配 agent 类型,与 SubagentStart 相同的值。2573在 Claude Code 子代理完成响应时运行。匹配 agent 类型,与 SubagentStart 相同的值。

2574 2574 

2575<h4 id="subagentstop-input">2575<h4 id="subagentstop-input">

2576 SubagentStop 输入2576 SubagentStop 输入

2577</h4>2577</h4>

2578 2578 

2579除了 [常见输入字段](#common-input-fields) 外,SubagentStop hooks 接收 `stop_hook_active`、`agent_id`、`agent_type`、`agent_transcript_path` 和 `last_assistant_message`。`agent_type` 字段是用于匹配器过滤的值。`transcript_path` 是主会话的成绩单,而 `agent_transcript_path` 是子 agent 自己的成绩单,存储在嵌套 `subagents/` 文件夹中。`last_assistant_message` 字段包含子 agent 最终响应的文本内容,因此 hooks 可以访问它而无需解析成绩单文件。2579除了 [常见输入字段](#common-input-fields) 外,SubagentStop hooks 接收 `stop_hook_active`、`agent_id`、`agent_type`、`agent_transcript_path` 和 `last_assistant_message`。`agent_type` 字段是用于匹配器过滤的值。`transcript_path` 是主会话的成绩单,而 `agent_transcript_path` 是子代理自己的成绩单,存储在嵌套 `subagents/` 文件夹中。`last_assistant_message` 字段包含子代理最终响应的文本内容,因此 hooks 可以访问它而无需解析成绩单文件。

2580 2580 

2581在 Claude Code v2.1.271 或更高版本上,使用 [`SubagentHandback`](/docs/zh-CN/tools-reference) 工具运行的子 agent 在停止之前通过该工具传递其报告。`last_assistant_message` 字段然后保持子 agent 的结束文本(如果有),这不是传递的报告。报告是该调用的 `message` 输入,`PreToolUse` 或 `PostToolUse` hook 匹配 `SubagentHandback` 接收为 `tool_input.message`。2581不是每个 SubagentStop 事件都来自 Claude 生成的子代理。Claude Code 也为其某些自己的功能运行内部 agents,例如 [prompt suggestions](/docs/zh-CN/interactive-mode#prompt-suggestions) 和 [`/btw` side questions](/docs/zh-CN/interactive-mode#side-questions-with-%2Fbtw),当其中一个完成时 SubagentStop 触发。对于这些事件,`agent_type` 是会话本身运行的 agent 名称,例如使用 [`--agent`](/docs/zh-CN/cli-reference#cli-flags) 或 [`agent` 设置](/docs/zh-CN/settings-reference#agent) 设置的,以及当会话运行时没有一个时的空字符串。

2582 2582 

2583SubagentStop hooks 也接收 [Stop 输入](#stop-input) 下描述的 `background_tasks` 和 `session_crons` 数组。两个数组都限定于父会话,而不是子 agent。2583不匹配空 `agent_type` 的命名 agent 类型的 `matcher`。一个其匹配器被省略、`""`、`"*"` 或是匹配空字符串的正则表达式的 hook 也为带有空 `agent_type` 的事件运行。

2584 

2585在 Claude Code v2.1.271 或更高版本上,使用 [`SubagentHandback`](/docs/zh-CN/tools-reference) 工具运行的子代理在停止之前通过该工具传递其报告。`last_assistant_message` 字段然后保持子代理的结束文本(如果有),这不是传递的报告。报告是该调用的 `message` 输入,`PreToolUse` 或 `PostToolUse` hook 匹配 `SubagentHandback` 接收作为 `tool_input.message`。

2586 

2587SubagentStop hooks 也接收 [Stop input](#stop-input) 下描述的 `background_tasks` 和 `session_crons` 数组。两个数组都限定于父会话,而不是子代理。

2584 2588 

2585```json theme={null}2589```json theme={null}

2586{2590{


2599}2603}

2600```2604```

2601 2605 

2602SubagentStop hooks 使用与 [Stop hooks](#stop-decision-control) 相同的决策控制格式,包括 `hookSpecificOutput.additionalContext`,其中 `hookEventName` 设置为 `"SubagentStop"`,用于保持子 agent 运行的非错误反馈。返回 `decision: "block"` 与 `reason` 保持子 agent 运行并将 `reason` 作为其下一个指令传递给子 agent。通过退出 2 阻止的 hook 以相同方式传递其 stderr 消息。要在子 agent 返回后向父会话注入上下文,请改用 `Agent` 工具上的 [`PostToolUse`](#posttooluse) hook。2606SubagentStop hooks 使用与 [Stop hooks](#stop-decision-control) 相同的决策控制格式,包括 `hookSpecificOutput.additionalContext`,`hookEventName` 设置为 `"SubagentStop"`,用于保持子代理运行的非错误反馈。返回 `decision: "block"` 与 `reason` 保持子代理运行并将 `reason` 作为其下一个指令传递给子代理。通过退出 2 阻止的 hook 以相同方式传递其 stderr 消息。要在子代理返回后向父会话注入上下文,请改用 [`PostToolUse`](#posttooluse) hook 在 `Agent` 工具上。

2603 2607 

2604<h3 id="taskcreated">2608<h3 id="taskcreated">

2605 TaskCreated2609 TaskCreated


2607 2611 

2608在通过 `TaskCreate` 工具创建任务时运行。使用此来强制命名约定、要求任务描述或防止某些任务被创建。在 [没有 Task 工具的会话](/docs/zh-CN/tools-reference#task-tool-availability) 中,此事件不触发。2612在通过 `TaskCreate` 工具创建任务时运行。使用此来强制命名约定、要求任务描述或防止某些任务被创建。在 [没有 Task 工具的会话](/docs/zh-CN/tools-reference#task-tool-availability) 中,此事件不触发。

2609 2613 

2610TaskCreated hooks 不支持匹配器,对每个出现触发。2614TaskCreated hooks 不支持匹配器,在每个出现时触发。

2611 2615 

2612<h4 id="taskcreated-input">2616<h4 id="taskcreated-input">

2613 TaskCreated 输入2617 TaskCreated 输入


2641 TaskCreated 决策控制2645 TaskCreated 决策控制

2642</h4>2646</h4>

2643 2647 

2644TaskCreated hook 可以通过两种方式阻止创建。任一方式,Claude Code 删除任务并将您的消息作为工具的错误返回给 Claude。Claude Code 忽略此事件的 `continue: false`,Claude 继续工作。2648TaskCreated hook 可以通过两种方式阻止创建。无论哪种方式,Claude Code 删除任务并将您的消息作为工具的错误返回给 Claude。Claude Code 忽略此事件的 `continue: false`,Claude 继续工作。

2645 2649 

2646* **退出代码 2**:Claude Code 将 stderr 文本作为消息返回。2650* **退出代码 2**:Claude Code 将 stderr 文本作为消息返回。

2647* **JSON `{"decision": "block", "reason": "..."}`**:Claude Code 将 `reason` 作为消息返回。2651* **JSON `{"decision": "block", "reason": "..."}`**:Claude Code 将 `reason` 作为消息返回。


2665 TaskCompleted2669 TaskCompleted

2666</h3>2670</h3>

2667 2671 

2668在任务被标记为完成时运行。这在两种情况下触发:当任何 agent 通过 TaskUpdate 工具显式标记任务为完成时,或当 [agent team](/docs/zh-CN/agent-teams) 队友完成其回合时有进行中的任务。使用此来强制完成标准,如通过测试或 lint 检查,然后任务才能关闭。2672在任务被标记为完成时运行。这在两种情况下触发:当任何 agent 通过 TaskUpdate 工具显式标记任务为完成时,或当 [agent team](/docs/zh-CN/agent-teams) 队友完成其回合与进行中的任务时。使用此来强制完成标准,如通过测试或 lint 检查,然后任务才能关闭。

2669 2673 

2670TaskCompleted hooks 不支持匹配器,对每个出现触发。2674TaskCompleted hooks 不支持匹配器,在每个出现时触发。

2671 2675 

2672<h4 id="taskcompleted-input">2676<h4 id="taskcompleted-input">

2673 TaskCompleted 输入2677 TaskCompleted 输入


2739 2743 

2740除了 [常见输入字段](#common-input-fields) 外,Stop hooks 接收 `stop_hook_active`、`last_assistant_message`、`background_tasks` 和 `session_crons`。`stop_hook_active` 字段在 Claude Code 已经作为 stop hook 的结果继续时为 `true`。检查此值或处理成绩单以避免在永远不会解决的条件上阻止。Claude Code 在 8 个连续阻止后覆盖 hook 并结束回合。2744除了 [常见输入字段](#common-input-fields) 外,Stop hooks 接收 `stop_hook_active`、`last_assistant_message`、`background_tasks` 和 `session_crons`。`stop_hook_active` 字段在 Claude Code 已经作为 stop hook 的结果继续时为 `true`。检查此值或处理成绩单以避免在永远不会解决的条件上阻止。Claude Code 在 8 个连续阻止后覆盖 hook 并结束回合。

2741 2745 

2742`last_assistant_message` 字段包含 Claude 最终响应的文本内容,因此 hooks 可以访问它而无需解析成绩单文件。对于作用于刚完成的回合的 hooks,如朗读或通知 hooks,使用此字段而不是读取 `transcript_path`:成绩单文件不保证在所有版本的 Stop 时间包含最终消息。2746`last_assistant_message` 字段包含 Claude 最终响应的文本内容,因此 hooks 可以访问它而无需解析成绩单文件。对于作用于刚完成的回合的 hooks,例如朗读或通知 hooks,使用此字段而不是读取 `transcript_path`:成绩单文件不保证在所有版本的 Stop 时包含最终消息。

2743 2747 

2744`background_tasks` 和 `session_crons` 数组让 hooks 区分"会话完成"与"会话暂停等待后台工作唤醒它"。当任务注册表可达时两个数组都出现,当没有任何东西在飞行或计划时为空。2748`background_tasks` 和 `session_crons` 数组让 hooks 区分"会话完成"与"会话暂停等待后台工作唤醒它"。当任务注册表可达时两个数组都出现,当没有任何东西在飞行或计划时为空。

2745 2749 

2746`background_tasks` 中的每个条目描述一个进行中的任务,并使用这些字段:2750`background_tasks` 中的每个条目描述一个进行中的任务,并使用这些字段:

2747 2751 

2748| 字段 | 描述 |2752| 字段 | 描述 |

2749| :------------ | :---------------------------------------------------------------------------------------------------------------------------------------- |2753| :------------ | :------------------------------------------------------------------------------------------------------------------------------------------ |

2750| `id` | 任务标识符 |2754| `id` | 任务标识符 |

2751| `type` | 友好的任务类型标签如 `shell`、`subagent`、`monitor`、`workflow`、`teammate`、`cloud session` 或 `MCP task`。每个标签标识哪个 Claude Code 功能创建了任务。对于无法识别的类型回退到原始判别式 |2755| `type` | 友好的任务类型标签,例如 `shell`、`subagent`、`monitor`、`workflow`、`teammate`、`cloud session` 或 `MCP task`。每个标签标识哪个 Claude Code 功能创建了任务。对于无法识别的类型回退到原始判别式 |

2752| `status` | 当前任务状态 |2756| `status` | 当前任务状态 |

2753| `description` | 自由文本描述,上限为 1000 个字符,当被剪切时在字符串中有 `… [+N chars]` 标记 |2757| `description` | 自由文本描述,上限为 1000 个字符,当剪裁时带有字符串内 `… [+N chars]` 标记 |

2754| `command` | Shell 命令行,上限为 1000 个字符。仅对 `shell` 任务出现 |2758| `command` | Shell 命令行,上限为 1000 个字符。仅对 `shell` 任务出现 |

2755| `agent_type` | 子 agent 类型名称。仅对 `subagent` 任务出现 |2759| `agent_type` | 子代理类型名称。仅对 `subagent` 任务出现 |

2756| `server` | MCP 服务器名称。仅对 `monitor` 和 `MCP task` 任务出现 |2760| `server` | MCP 服务器名称。仅对 `monitor` 和 `MCP task` 任务出现 |

2757| `tool` | MCP 工具名称。仅对 `monitor` 和 `MCP task` 任务出现 |2761| `tool` | MCP 工具名称。仅对 `monitor` 和 `MCP task` 任务出现 |

2758| `name` | Workflow 名称。仅对 `workflow` 任务出现 |2762| `name` | 工作流名称。仅对 `workflow` 任务出现 |

2759 2763 

2760`session_crons` 中的每个条目描述一个会话范围的计划唤醒,来自 `CronCreate`、`ScheduleWakeup` 和 `/loop`:2764`session_crons` 中的每个条目描述一个会话范围的计划唤醒,来自 `CronCreate`、`ScheduleWakeup` 和 `/loop`:

2761 2765 


2766| `recurring` | 对于一次性唤醒(其计划编码单个触发时间)为 `false`,对于在每个匹配上重新触发的任务为 `true` |2770| `recurring` | 对于一次性唤醒(其计划编码单个触发时间)为 `false`,对于在每个匹配上重新触发的任务为 `true` |

2767| `prompt` | 当 cron 触发时提交的提示,上限为 1000 个字符,带有相同的 `… [+N chars]` 标记 |2771| `prompt` | 当 cron 触发时提交的提示,上限为 1000 个字符,带有相同的 `… [+N chars]` 标记 |

2768 2772 

2769此示例显示了一个 Stop 输入,带有一个进行中的 shell 任务和一个循环 cron:2773此示例显示了一个进行中的 shell 任务和一个循环 cron 的 Stop 输入:

2770 2774 

2771```json theme={null}2775```json theme={null}

2772{2776{


2804`Stop` 和 `SubagentStop` hooks 可以控制 Claude 是否继续。除了所有 hooks 可用的 [JSON 输出字段](#json-output) 外,您的 hook 脚本可以返回这些事件特定的字段:2808`Stop` 和 `SubagentStop` hooks 可以控制 Claude 是否继续。除了所有 hooks 可用的 [JSON 输出字段](#json-output) 外,您的 hook 脚本可以返回这些事件特定的字段:

2805 2809 

2806| 字段 | 描述 |2810| 字段 | 描述 |

2807| :------------------------------------- | :---------------------------------------------------------------------------------------- |2811| :------------------------------------- | :--------------------------------------------------------------------------------------------- |

2808| `decision` | `"block"` 防止 Claude 停止。省略以允许 Claude 停止 |2812| `decision` | `"block"` 防止 Claude 停止。省略以允许 Claude 停止 |

2809| `reason` | 当 `decision` 为 `"block"` 时需要。告诉 Claude 为什么它应该继续 |2813| `reason` | 当 `decision` 为 `"block"` 时需要。告诉 Claude 为什么它应该继续 |

2810| `hookSpecificOutput.additionalContext` | Claude 的非错误反馈。对话继续以便 Claude 可以作用于它,但与 `decision: "block"` 不同,它在成绩单中显示为 hook 反馈而不是 hook 错误 |2814| `hookSpecificOutput.additionalContext` | 对 Claude 的非错误反馈。对话继续,以便 Claude 可以对其采取行动,但与 `decision: "block"` 不同,它在成绩单中显示为 hook 反馈而不是 hook 错误 |

2811 2815 

2812通过退出 2 阻止的 hook 路由方式与 `reason` 相同:Claude 接收 stderr 消息作为为什么它应该继续的解释。2816通过退出 2 阻止的 hook 路由方式与 `reason` 相同:Claude 接收 stderr 消息作为为什么它应该继续的解释。

2813 2817 


2818}2822}

2819```2823```

2820 2824 

2821当 hook 按设计工作并给 Claude 指导时使用 `additionalContext`,如"在完成前运行测试套件"。它通过与 `decision: "block"` 相同的循环保护保持对话进行,即 `stop_hook_active` 输入和 8 个连续继续上限,但成绩单将其标记为 `Stop hook feedback`,不显示 hook 错误通知:2825当 hook 按设计工作并给 Claude 指导时使用 `additionalContext`,例如"在完成前运行测试套件"。它通过与 `decision: "block"` 相同的循环保护保持对话进行,即 `stop_hook_active` 输入和 8 个连续继续上限,但成绩单将其标记为 `Stop hook feedback`,不显示 hook 错误通知:

2822 2826 

2823```json theme={null}2827```json theme={null}

2824{2828{


2833 StopFailure2837 StopFailure

2834</h3>2838</h3>

2835 2839 

2836在回合由于 API 错误而结束时运行,而不是 [Stop](#stop)。Claude Code 忽略 hook 的输出和退出代码,除了 [`terminalSequence`](#emit-terminal-notifications)。使用此来记录失败、发送警报或在 Claude 由于速率限制、身份验证问题或其他 API 错误无法完成响应时采取恢复操作。2840在回合由于 API 错误而结束时运行,而不是 [Stop](#stop)。Claude Code 忽略 hook 的输出和退出代码,除了 [`terminalSequence`](#emit-terminal-notifications)。使用此来记录失败、发送警报或在 Claude 由于速率限制、身份验证问题或其他 API 错误而无法完成响应时采取恢复操作。

2837 2841 

2838<h4 id="stopfailure-input">2842<h4 id="stopfailure-input">

2839 StopFailure 输入2843 StopFailure 输入


2844| 字段 | 描述 |2848| 字段 | 描述 |

2845| :----------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |2849| :----------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

2846| `error` | 错误类型:`rate_limit`、`overloaded`、`authentication_failed`、`oauth_org_not_allowed`、`account_on_hold`、`billing_error`、`invalid_request`、`model_not_found`、`server_error`、`max_output_tokens`、`cloud_credential_error` 或 `unknown` |2850| `error` | 错误类型:`rate_limit`、`overloaded`、`authentication_failed`、`oauth_org_not_allowed`、`account_on_hold`、`billing_error`、`invalid_request`、`model_not_found`、`server_error`、`max_output_tokens`、`cloud_credential_error` 或 `unknown` |

2847| `error_details` | 关于错误的其他详情,当可用时 |2851| `error_details` | 关于错误的其他详细信息(如果可用) |

2848| `last_assistant_message` | 在对话中显示的呈现错误文本。与 `Stop` 和 `SubagentStop` 不同,其中此字段保持 Claude 的对话输出,对于 `StopFailure` 它包含 API 错误字符串本身,如 `"API Error: Rate limit reached"` |2852| `last_assistant_message` | 在对话中显示的呈现错误文本。与 `Stop` 和 `SubagentStop` 不同,其中此字段保持 Claude 的对话输出,对于 `StopFailure` 它包含 API 错误字符串本身,例如 `"API Error: Rate limit reached"` |

2849 2853 

2850```json theme={null}2854```json theme={null}

2851{2855{


2859}2863}

2860```2864```

2861 2865 

2862StopFailure hooks 没有决策控制。它们仅用于通知和日志记录目的运行。2866StopFailure hooks 没有决策控制。它们仅为通知和日志记录目的运行。

2863 2867 

2864<h3 id="teammateidle">2868<h3 id="teammateidle">

2865 TeammateIdle2869 TeammateIdle

2866</h3>2870</h3>

2867 2871 

2868在 [agent team](/docs/zh-CN/agent-teams) 队友完成其回合后即将空闲时运行。使用此来强制质量门,如在队友停止工作之前要求通过 lint 检查或验证输出文件存在。2872在 [agent team](/docs/zh-CN/agent-teams) 队友完成其回合后即将空闲时运行。使用此来强制质量门,如要求通过 lint 检查或验证输出文件存在。

2869 2873 

2870TeammateIdle hooks 不支持匹配器,对每个出现触发。2874TeammateIdle hooks 不支持匹配器,在每个出现时触发。

2871 2875 

2872<h4 id="teammateidle-input">2876<h4 id="teammateidle-input">

2873 TeammateIdle 输入2877 TeammateIdle 输入


2901* **退出代码 2**:队友接收 stderr 消息作为反馈并继续工作而不是空闲。2905* **退出代码 2**:队友接收 stderr 消息作为反馈并继续工作而不是空闲。

2902* **JSON `{"continue": false, "stopReason": "..."}`**:完全停止队友,匹配 `Stop` hook 行为。`stopReason` 显示给用户。2906* **JSON `{"continue": false, "stopReason": "..."}`**:完全停止队友,匹配 `Stop` hook 行为。`stopReason` 显示给用户。

2903 2907 

2904此示例检查构建工件存在,然后允许队友空闲:2908此示例检查构建工件是否存在,然后允许队友空闲:

2905 2909 

2906```bash theme={null}2910```bash theme={null}

2907#!/bin/bash2911#!/bin/bash


2920 2924 

2921在会话期间配置文件更改时运行。使用此来审计设置更改、强制安全策略或阻止对配置文件的未授权修改。2925在会话期间配置文件更改时运行。使用此来审计设置更改、强制安全策略或阻止对配置文件的未授权修改。

2922 2926 

2923Claude Code 在设置文件、托管策略文件或 skill 文件更改时运行 ConfigChange hooks。对于托管策略,它仅在 `managed-settings.json` 或 `managed-settings.d/` 中的文件更改时运行。它应用 [服务器托管设置](/docs/zh-CN/server-managed-settings) 和对 macOS 托管首选项或 Windows 注册表策略的更改而不运行它们。在带有 [`wslInheritsWindowsSettings`](/docs/zh-CN/settings-reference#wslinheritswindowssettings) 的 WSL 上,它也在其策略轮询上应用更改的 Windows 端托管设置文件而不运行它们。2927Claude Code 在设置文件、托管策略文件或 skill 文件更改时运行 ConfigChange hooks。对于托管策略,它仅在 `managed-settings.json` 或 `managed-settings.d/` 中的文件更改时运行它们。它应用 [服务器托管设置](/docs/zh-CN/server-managed-settings) 和对 macOS 托管首选项或 Windows 注册表策略的更改而不运行它们。在 WSL 上使用 [`wslInheritsWindowsSettings`](/docs/zh-CN/settings-reference#wslinheritswindowssettings),它也在其策略轮询上应用更改的 Windows 端托管设置文件而不运行它们。

2924 2928 

2925匹配器过滤配置源:2929匹配器过滤配置源:

2926 2930 


2978| 字段 | 描述 |2982| 字段 | 描述 |

2979| :--------- | :-------------------------- |2983| :--------- | :-------------------------- |

2980| `decision` | `"block"` 防止配置更改被应用。省略以允许更改 |2984| `decision` | `"block"` 防止配置更改被应用。省略以允许更改 |

2981| `reason` | 被接受但永远不显示 |2985| `reason` | 接受但永远不显示 |

2982 2986 

2983```json theme={null}2987```json theme={null}

2984{2988{


2987}2991}

2988```2992```

2989 2993 

2990`policy_settings` 更改无法被阻止。当机器上的托管设置文件更改时,hooks 仍然为 `policy_settings` 源触发,因此您可以使用它们来记录这些编辑,但任何阻止决策都被忽略。这确保企业托管设置始终生效。当 [服务器托管设置](/docs/zh-CN/server-managed-settings) 到达或刷新时,Claude Code 不运行 `ConfigChange` hooks。2994`policy_settings` 更改无法被阻止。当机器上的托管设置文件更改时,Hooks 仍然为 `policy_settings` 源触发,因此您可以使用它们来记录这些编辑,但任何阻止决策都被忽略。这确保企业托管设置始终生效。当 [服务器托管设置](/docs/zh-CN/server-managed-settings) 到达或刷新时,Claude Code 不运行 `ConfigChange` hooks。

2991 2995 

2992Claude Code 作用于 ConfigChange hook 的 JSON 输出中的阻止决策,并丢弃 `systemMessage` 和 `continue`。被阻止的更改不向您或 Claude 显示任何消息,无论您是用 `reason` 还是退出 2 时的 stderr 阻止。Claude Code 仅向调试日志写入一行。2996Claude Code 从 ConfigChange hook 的 JSON 输出中作用于阻止决策,并丢弃 `systemMessage` 和 `continue`。被阻止的更改不向您或 Claude 显示任何消息,无论您是用 `reason` 还是退出 2 的 stderr 阻止。Claude Code 仅向调试日志写入一行。

2993 2997 

2994<h3 id="cwdchanged">2998<h3 id="cwdchanged">

2995 CwdChanged2999 CwdChanged

2996</h3>3000</h3>

2997 3001 

2998在主对话中的 shell 命令更改工作目录时运行,例如当 Claude 执行 `cd` 命令时。使用此来对目录更改做出反应:重新加载环境变量、激活项目特定的工具链或自动运行设置脚本。与 [FileChanged](#filechanged) 配对,用于像 [direnv](https://direnv.net/) 这样管理每个目录环境的工具。3002在主对话中的 shell 命令更改工作目录时运行,例如当 Claude 执行 `cd` 命令时。使用此来对目录更改做出反应:重新加载环境变量、激活项目特定的工具链或自动运行设置脚本。与 [FileChanged](#filechanged) 配对,用于 [direnv](https://direnv.net/) 等管理每个目录环境的工具。

2999 3003 

3000CwdChanged hooks 可以访问 [`CLAUDE_ENV_FILE`](#persist-environment-variables)。写入该文件的变量持久化到后续 Bash 命令,直到下一个 CwdChanged 事件,当 Claude Code 清除它们时。3004CwdChanged hooks 可以访问 [`CLAUDE_ENV_FILE`](#persist-environment-variables)。写入该文件的变量持久化到后续 Bash 命令,直到下一个 CwdChanged 事件,当 Claude Code 清除它们时。

3001 3005 

3002CwdChanged 不支持匹配器,对每个出现触发。3006CwdChanged 不支持匹配器,在每个出现时触发。

3003 3007 

3004<h4 id="cwdchanged-input">3008<h4 id="cwdchanged-input">

3005 CwdChanged 输入3009 CwdChanged 输入


3022 CwdChanged 输出3026 CwdChanged 输出

3023</h4>3027</h4>

3024 3028 

3025除了所有 hooks 可用的 [JSON 输出字段](#json-output) 外,CwdChanged hooks 可以返回 `watchPaths` 来动态设置 [FileChanged](#filechanged) 监视的文件路径:3029除了所有 hooks 可用的 [JSON 输出字段](#json-output) 外,CwdChanged hooks 可以返回 `watchPaths` 来动态设置哪些文件路径 [FileChanged](#filechanged) 监视:

3026 3030 

3027| 字段 | 描述 |3031| 字段 | 描述 |

3028| :----------- | :--------------------------------------------------------- |3032| :----------- | :------------------------------------------------------------------- |

3029| `watchPaths` | 绝对路径数组。替换当前动态监视列表。来自您 `matcher` 配置的路径始终被监视。进入新目录时返回空数组是典型的 |3033| `watchPaths` | 绝对路径的数组。替换当前动态监视列表。来自您 `matcher` 配置的路径始终被监视。返回空数组清除动态列表,这在进入新目录时是典型的 |

3030 3034 

3031CwdChanged hooks 没有决策控制。它们无法阻止目录更改。3035CwdChanged hooks 没有决策控制。它们无法阻止目录更改。

3032 3036 

3033Claude Code 从它们的 JSON 输出读取 `watchPaths` 和 `systemMessage`,并丢弃 `continue`。在交互式会话中,它显示 `systemMessage` 作为简短的终端通知。消息不到达 SDK 消息流。3037Claude Code 从其 JSON 输出读取 `watchPaths` 和 `systemMessage`,并丢弃 `continue`。在交互式会话中,它显示 `systemMessage` 作为简短的终端通知。消息不到达 SDK 消息流。

3034 3038 

3035<h3 id="directoryadded">3039<h3 id="directoryadded">

3036 DirectoryAdded3040 DirectoryAdded

3037</h3>3041</h3>

3038 3042 

3039在您使用 `/add-dir` 命令在会话中添加工作目录后运行,或在 SDK 客户端使用 `register_repo_root` 控制请求添加一个后运行。使用此来准备新添加的存储库,例如安装其依赖。3043在您使用 `/add-dir` 命令或 SDK 客户端使用 `register_repo_root` 控制请求在会话中添加工作目录后运行。使用此来准备新添加的存储库,例如安装其依赖。

3040 3044 

3041Claude Code 在以下情况下不触发此事件:3045Claude Code 在以下情况下不触发此事件:

3042 3046 

3043* 您使用 `--add-dir` 启动标志传递目录;[SessionStart](#sessionstart) 涵盖这些目录3047* 您使用 `--add-dir` 启动标志传递目录;[SessionStart](#sessionstart) 涵盖这些目录

3044* 您在 `/permissions` Workspace 标签上添加目录3048* 您在 `/permissions` Workspace 选项卡上添加目录

3045* 您添加已经是工作目录或在其中的目录3049* 您添加已经是工作目录或在其中的目录

3046 3050 

3047Claude Code 在刷新沙箱和权限状态后触发 DirectoryAdded,因此沙箱工具已经在您的 hook 运行时看到新目录。Hook 命令本身运行未沙箱化。3051Claude Code 在刷新沙箱和权限状态后触发 DirectoryAdded,因此沙箱工具已经在您的 hook 运行时看到新目录。Hook 命令本身运行未沙箱化。

3048 3052 

3049Claude Code 不等待 hook:添加立即完成,hook 在后台以 600 秒默认超时运行。3053Claude Code 不等待 hook:添加立即完成,hook 在后台以 600 秒默认超时运行。

3050 3054 

3051匹配器过滤目录添加的方式:3055匹配器过滤目录的添加方式:

3052 3056 

3053| 匹配器 | 何时触发 |3057| 匹配器 | 何时触发 |

3054| :------------------- | :-------------------------------------- |3058| :------------------- | :-------------------------------------- |


3062除了 [常见输入字段](#common-input-fields) 外,DirectoryAdded hooks 接收 `directory` 和 `source`。3066除了 [常见输入字段](#common-input-fields) 外,DirectoryAdded hooks 接收 `directory` 和 `source`。

3063 3067 

3064| 字段 | 描述 |3068| 字段 | 描述 |

3065| :---------- | :----------------------------------------------------------------------- |3069| :---------- | :------------------------------------------------------------------------ |

3066| `directory` | 添加的目录的绝对路径 |3070| `directory` | 添加的目录的绝对路径 |

3067| `source` | 目录如何添加,`/add-dir` 为 `"slash_command"` 或 SDK 控制请求为 `"register_repo_root"` |3071| `source` | 目录如何被添加,`/add-dir` 为 `"slash_command"` 或 SDK 控制请求为 `"register_repo_root"` |

3068 3072 

3069```json theme={null}3073```json theme={null}

3070{3074{


3077}3081}

3078```3082```

3079 3083 

3080DirectoryAdded hooks 没有决策控制。它们无法阻止添加,这在 hook 运行时已经完成。Claude Code 从它们的 JSON 输出丢弃 `continue` 字段,并根据源以不同方式呈现其余部分:3084DirectoryAdded hooks 没有决策控制。它们无法阻止添加,这在 hook 运行时已经完成。Claude Code 根据源以不同方式处理其 JSON 输出中的 `systemMessage` 和失败输出:

3081 3085 

3082* `slash_command`:Claude Code 将 hook 的 `systemMessage` 作为对话的下一个回合的上下文传递给 Claude,而不是向您显示它。失败 hooks 的计数出现在成绩单中。完整失败输出进入调试日志3086* `slash_command`:Claude Code 将 hook 的 `systemMessage` 传递给 Claude 作为下一个对话回合的上下文,而不是向您显示它。失败 hooks 的计数出现在成绩单中。完整失败输出进入调试日志

3083* `register_repo_root`:Claude Code 仅将 `systemMessage` 输出和失败输出写入调试日志3087* `register_repo_root`:Claude Code 仅将 `systemMessage` 输出和失败输出写入调试日志

3084 3088 

3085<h3 id="filechanged">3089<h3 id="filechanged">

3086 FileChanged3090 FileChanged

3087</h3>3091</h3>

3088 3092 

3089在监视的文件在磁盘上更改时运行。Claude Code 使用文件系统监视器检测更改,而不是通过检查工具调用,因此它运行 hook,无论什么更改了文件:`Edit` 或 `Write` 工具调用、Claude 使用 `Bash` 运行的脚本或 Claude Code 外的进程。常见用途是在项目配置文件更改时重新加载环境变量。3093在监视的文件在磁盘上更改时运行。Claude Code 使用文件系统监视器检测更改,而不是通过检查工具调用,因此无论什么更改文件,它都运行 hook:Write 或 Edit 工具调用、Claude 使用 Bash 运行的脚本或 Claude Code 外的进程。常见用途是在项目配置文件更改时重新加载环境变量。

3090 3094 

3091此事件的 `matcher` 有两个角色:3095此事件的 `matcher` 有两个角色:

3092 3096 

3093* **构建监视列表**:值在 `|` 上分割,每个段注册为工作目录中的字面文件名,因此 `".envrc|.env"` 恰好监视这两个文件。正则表达式模式在这里不有用:像 `^\.env` 这样的值会监视字面名为 `^\.env` 的文件。3097* **构建监视列表**:值在 `|` 上分割,每个段注册为工作目录中的文字文件名,因此 `".envrc|.env"` 恰好监视这两个文件。正则表达式模式在这里不有用:像 `^\.env` 这样的值会监视一个字面上命名为 `^\.env` 的文件。

3094* **过滤哪些 hooks 运行**:当监视的文件更改时,相同的值使用标准 [匹配器规则](#matcher-patterns) 针对更改文件的基名过滤哪些 hook 组运行。3098* **过滤哪些 hooks 运行**:当监视的文件更改时,相同的值使用标准 [匹配器规则](#matcher-patterns) 针对更改文件的基名过滤哪些 hook 组运行。

3095 3099 

3096此示例在任何更改后规范化 `data.csv` 中的行结尾,包括 `Bash` 命令或外部脚本重写文件:3100此示例在任何更改后规范化 `data.csv` 中的行结尾,包括 Bash 命令或外部脚本重写文件:

3097 3101 

3098```json theme={null}3102```json theme={null}

3099{3103{


3113}3117}

3114```3118```

3115 3119 

3116hook 从 [JSON 输入](#filechanged-input) 的 `file_path` 字段读取更改文件的绝对路径,在 stdin 上。其 `grep` 守卫测试与 `perl` 删除的相同内容,行末的 CR,因此规范化后的运行退出而不触及文件。更松散的守卫循环永远,因为 `perl -i` 重写文件即使它替换了什么都没有,Claude Code 在每次重写后运行 hook。保存此脚本到 `/path/to/normalize-line-endings.sh` 并使其可执行:3120hook 从 stdin 上的 [JSON 输入](#filechanged-input) 的 `file_path` 字段读取更改文件的绝对路径。其 `grep` 守卫测试与 `perl` 删除的相同内容,行末的 CR,因此规范化后的运行退出而不触及文件。更松散的守卫循环永远,因为 `perl -i` 重写文件,即使它替换了什么,Claude Code 在每次重写后运行 hook。将此脚本保存在 `/path/to/normalize-line-endings.sh` 并使其可执行:

3117 3121 

3118```bash theme={null}3122```bash theme={null}

3119#!/bin/bash3123#!/bin/bash


3123fi3127fi

3124```3128```

3125 3129 

3126要确认 hook 工作,要求 Claude 使用 Bash 命令向 `data.csv` 追加 CRLF 行。Claude Code 运行 hook,文件最终以 LF 结尾。3130要确认 hook 有效,要求 Claude 使用 Bash 命令将 CRLF 行附加到 `data.csv`。Claude Code 运行 hook,文件最终以 LF 结尾。

3127 3131 

3128要监视您无法提前命名的文件,从 hook 返回 [`watchPaths`](#filechanged-output) 来动态更新监视列表。Claude Code 仅在某些东西命名要监视的文件时启动监视器,因此使用至少命名一个文件的 FileChanged 组为列表播种,或使用 [SessionStart](#sessionstart-decision-control) 或 [CwdChanged](#cwdchanged) hook 返回 `watchPaths`。匹配器仍然过滤当监视的文件更改时哪些 hook 组运行,因此给处理动态路径的组一个省略的匹配器,它匹配每个监视的文件并不向监视列表添加任何内容。`"*"` 匹配器也匹配每个文件,但 Claude Code 像任何其他值一样在监视列表中注册它,作为字面名为 `*` 的文件。3132要监视您无法提前命名的文件,从 hook 返回 [`watchPaths`](#filechanged-output) 来动态更新监视列表。Claude Code 仅在某些东西命名要监视的文件时启动监视器,因此使用至少命名一个文件的 FileChanged 组为列表播种,或使用 [SessionStart](#sessionstart-decision-control) 或 [CwdChanged](#cwdchanged) hook 返回 `watchPaths`。匹配器仍然过滤当监视的文件更改时哪些 hook 组运行,因此给处理动态路径的组一个省略的匹配器,它匹配每个监视的文件并不向监视列表添加任何内容。`"*"` 匹配器也匹配每个文件,但 Claude Code 像任何其他值一样在监视列表中注册它,作为一个字面上命名为 `*` 的文件。

3129 3133 

3130FileChanged hooks 可以访问 [`CLAUDE_ENV_FILE`](#persist-environment-variables)。写入该文件的变量持久化到后续 Bash 命令,直到下一个 [CwdChanged](#cwdchanged) 事件,当 Claude Code 清除它们时。3134FileChanged hooks 可以访问 [`CLAUDE_ENV_FILE`](#persist-environment-variables)。写入该文件的变量持久化到后续 Bash 命令,直到下一个 [CwdChanged](#cwdchanged) 事件,当 Claude Code 清除它们时。

3131 3135 


3155 FileChanged 输出3159 FileChanged 输出

3156</h4>3160</h4>

3157 3161 

3158除了所有 hooks 可用的 [JSON 输出字段](#json-output) 外,FileChanged hooks 可以返回 `watchPaths` 来动态更新监视的文件路径:3162除了所有 hooks 可用的 [JSON 输出字段](#json-output) 外,FileChanged hooks 可以返回 `watchPaths` 来动态更新哪些文件路径被监视:

3159 3163 

3160| 字段 | 描述 |3164| 字段 | 描述 |

3161| :----------- | :-------------------------------------------------------------------------- |3165| :----------- | :--------------------------------------------------------------------------- |

3162| `watchPaths` | 绝对路径数组。替换当前动态监视列表。来自您 `matcher` 配置的路径始终被监视。当您的 hook 脚本根据更改的文件发现要监视的其他文件时使用此 |3166| `watchPaths` | 绝对路径的数组。替换当前动态监视列表。来自您 `matcher` 配置的路径始终被监视。当您的 hook 脚本根据更改的文件发现要监视的其他文件时使用此 |

3163 3167 

3164FileChanged hooks 没有决策控制。它们无法阻止文件更改发生。3168FileChanged hooks 没有决策控制。它们无法阻止文件更改发生。

3165 3169 

3166Claude Code 从它们的 JSON 输出读取 `watchPaths` 和 `systemMessage`,并丢弃 `continue`。在交互式会话中,它显示 `systemMessage` 作为简短的终端通知。消息不到达 SDK 消息流。3170Claude Code 从其 JSON 输出读取 `watchPaths` 和 `systemMessage`,并丢弃 `continue`。在交互式会话中,它显示 `systemMessage` 作为简短的终端通知。消息不到达 SDK 消息流。

3167 3171 

3168<h3 id="worktreecreate">3172<h3 id="worktreecreate">

3169 WorktreeCreate3173 WorktreeCreate

3170</h3>3174</h3>

3171 3175 

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

3173 3177 

3174因为 hook 完全替换默认行为,[`.worktreeinclude`](/docs/zh-CN/worktrees#copy-gitignored-files-into-worktrees) 不被处理。如果您需要将本地配置文件如 `.env` 复制到新 worktree,请在您的 hook 脚本内执行。3178因为 hook 完全替换默认行为,[`.worktreeinclude`](/docs/zh-CN/worktrees#copy-gitignored-files-into-worktrees) 不被处理。如果您需要将本地配置文件(如 `.env`)复制到新 worktree,请在您的 hook 脚本中执行。

3175 3179 

3176hook 必须返回创建的 worktree 目录的路径。Claude Code 使用此路径作为隔离会话的工作目录。有关每个 hook 类型如何返回路径,请参阅 [WorktreeCreate 输出](#worktreecreate-output)。3180hook 必须返回创建的 worktree 目录的路径。Claude Code 使用此路径作为隔离会话的工作目录。有关每个 hook 类型如何返回路径,请参阅 [WorktreeCreate 输出](#worktreecreate-output)。

3177 3181 


3196}3200}

3197```3201```

3198 3202 

3199hook 从 stdin 上的 JSON 输入读取 worktree `name`,检出一个新副本到新目录,并打印目录路径。最后一行的 `echo` 是 Claude Code 读取为 worktree 路径的内容。将任何其他输出重定向到 stderr,以便它不干扰路径。3203hook 从 stdin 上的 JSON 输入读取 worktree `name`,检出一个新副本到新目录,并打印目录路径。最后一行的 `echo` 是 Claude Code 读取为 worktree 路径的内容。将任何其他输出重定向到 stderr,以便它不会干扰路径。

3200 3204 

3201<h4 id="worktreecreate-input">3205<h4 id="worktreecreate-input">

3202 WorktreeCreate 输入3206 WorktreeCreate 输入


3220 3224 

3221WorktreeCreate hooks 不使用标准允许/阻止决策模型。相反,hook 的成功或失败确定结果。hook 必须返回创建的 worktree 目录的路径:3225WorktreeCreate hooks 不使用标准允许/阻止决策模型。相反,hook 的成功或失败确定结果。hook 必须返回创建的 worktree 目录的路径:

3222 3226 

3223* **命令 hooks** (`type: "command"`):将路径打印为 stdout 的最后一个非空行。Claude Code 在读取该行之前剥离 ANSI 转义代码,因此在您的 `echo` 之前打印的 shell 启动横幅被忽略。将任何其他 hook 输出重定向到 stderr。3227* **命令 hooks** (`type: "command"`):将路径打印为 stdout 的最后一个非空行。Claude Code 在读取该行之前剥离 ANSI 转义代码,因此在您的 `echo` 之前打印的 shell 启动横幅被忽略。将任何其他 hook 输出重定向到 stderr。

3224* **HTTP hooks** (`type: "http"`):在响应体中返回 `{ "hookSpecificOutput": { "hookEventName": "WorktreeCreate", "worktreePath": "/absolute/path" } }`。3228* **HTTP hooks** (`type: "http"`):在响应体中返回 `{ "hookSpecificOutput": { "hookEventName": "WorktreeCreate", "worktreePath": "/absolute/path" } }`。

3225 3229 

3226如果 hook 失败或产生无路径,worktree 创建失败并出现错误。3230如果 hook 失败或产生无路径,worktree 创建失败并出现错误。

3227 3231 


3236在删除 worktree 时运行。这是 [WorktreeCreate](#worktreecreate) 的清理对应物。事件在以下情况下触发:3240在删除 worktree 时运行。这是 [WorktreeCreate](#worktreecreate) 的清理对应物。事件在以下情况下触发:

3237 3241 

3238* 您退出 `--worktree` 会话并选择删除它3242* 您退出 `--worktree` 会话并选择删除它

3239* 带有 `isolation: "worktree"` 的子 agent 完成3243* 带有 `isolation: "worktree"` 的子代理完成

3240* 您删除 [后台会话](/docs/zh-CN/agent-view#what-deleting-a-session-removes),其 worktree hook 创建3244* 您删除 [后台会话](/docs/zh-CN/agent-view#what-deleting-a-session-removes),其 worktree hook 创建

3241 3245 

3242对于基于 git 的 worktrees,Claude Code 使用 `git worktree remove` 自动处理清理。如果您为非 git 版本控制系统配置了 WorktreeCreate hook,将其与 WorktreeRemove hook 配对来处理清理。没有它,worktree 目录留在磁盘上。3246对于基于 git 的 worktrees,Claude Code 使用 `git worktree remove` 自动处理清理。如果您为非 git 版本控制系统配置了 WorktreeCreate hook,请将其与 WorktreeRemove hook 配对以处理清理。没有它,worktree 目录留在磁盘上。

3243 

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

3245 3247 

3246对于后台会话删除,Claude Code 在运行 hook 之前验证存储的 worktree 路径,并拒绝是符号链接或通过存储库根下的符号链接的路径。hook 仅对仍包含文件的 worktree 运行,当您在 [agent view](/docs/zh-CN/agent-view#what-deleting-a-session-removes) 中确认删除时;对于这样的 worktree,[`claude rm`](/docs/zh-CN/agent-view#manage-sessions-from-the-shell) 保持会话和 worktree。在 v2.1.216 之前,hook 在存储的路径上运行而不进行这些检查。3248对于后台会话删除,Claude Code 在运行 hook 之前验证存储的 worktree 路径,并拒绝是符号链接或通过存储库根下的符号链接的路径。hook 仅对仍包含文件的 worktree 运行,当您在 [agent view](/docs/zh-CN/agent-view#what-deleting-a-session-removes) 中确认删除时;对于这样的 worktree,[`claude rm`](/docs/zh-CN/agent-view#manage-sessions-from-the-shell) 保持会话和 worktree。在 v2.1.216 之前,hook 在存储的路径上运行而不进行这些检查。

3247 3249 


3280}3282}

3281```3283```

3282 3284 

3283WorktreeRemove hook 的退出代码决定结果。当 hook 以非零退出且 `worktree_path` 处的目录之后仍然存在时,删除失败:3285WorktreeRemove hook 的退出代码决定结果。当 hook 退出非零且 `worktree_path` 处的目录仍然存在时,删除失败:

3284 3286 

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

3286* 如果您删除后台会话,会话也保留。[agent view](/docs/zh-CN/agent-view#what-deleting-a-session-removes) 中的拒绝消息报告 hook 如何结束,如 `exited 1`,引用其 stderr 的开头,并说删除会话再次是否无论如何删除目录。3288* 如果您删除后台会话,会话也保留。[agent view](/docs/zh-CN/agent-view#what-deleting-a-session-removes) 中的拒绝消息报告 hook 如何结束,例如 `exited 1`,引用其 stderr 的开头,并说是否再次删除会话无论如何删除目录。

3287 3289 

3288<h3 id="precompact">3290<h3 id="precompact">

3289 PreCompact3291 PreCompact


3291 3293 

3292在 Claude Code 即将运行压缩操作之前运行。3294在 Claude Code 即将运行压缩操作之前运行。

3293 3295 

3294匹配器值指示压缩是手动触发还是自动触发:3296匹配器值指示压缩是手动还是自动触发:

3295 3297 

3296| 匹配器 | 何时触发 |3298| 匹配器 | 何时触发 |

3297| :------- | :-------------------------------------------------------------------- |3299| :------- | :-------------------------------------------------------------------- |

3298| `manual` | `/compact` |3300| `manual` | `/compact` |

3299| `auto` | 当对话到达 [自动压缩窗口](/docs/zh-CN/model-config#set-the-auto-compact-window) 时自动压缩 |3301| `auto` | 当对话达到 [自动压缩窗口](/docs/zh-CN/model-config#set-the-auto-compact-window) 时自动压缩 |

3300 3302 

3301以代码 2 退出以阻止压缩。对于手动 `/compact`,stderr 消息显示给用户。您也可以通过返回 JSON 与 `"decision": "block"` 来阻止。3303使用代码 2 退出以阻止压缩。对于手动 `/compact`,stderr 消息显示给用户。您也可以通过返回带有 `"decision": "block"` 的 JSON 来阻止。

3302 3304 

3303阻止自动压缩根据何时触发有不同的效果。如果压缩在上下文限制之前主动触发,Claude Code 跳过它,对话继续未压缩。如果压缩被触发以从 API 已经返回的上下文限制错误恢复,底层错误浮出,当前请求失败。3305阻止自动压缩根据何时触发有不同的效果。如果压缩在上下文限制之前主动触发,Claude Code 跳过它,对话继续未压缩。如果压缩被触发以从 API 已返回的上下文限制错误恢复,基础错误浮出并且当前请求失败。

3304 3306 

3305Claude Code 丢弃 PreCompact hook 的 `systemMessage` 和 `continue` 字段。3307Claude Code 丢弃 PreCompact hook 的 `systemMessage` 和 `continue` 字段。

3306 3308 


3308 PreCompact 输入3310 PreCompact 输入

3309</h4>3311</h4>

3310 3312 

3311除了 [常见输入字段](#common-input-fields) 外,PreCompact hooks 接收 `trigger` 和 `custom_instructions`。对于 `manual`,`custom_instructions` 包含用户传递到 `/compact` 的内容,当他们传递什么都没有时为 `null`。对于 `auto`,`custom_instructions` 为 `null`。3313除了 [常见输入字段](#common-input-fields) 外,PreCompact hooks 接收 `trigger` 和 `custom_instructions`。对于 `manual`,`custom_instructions` 包含用户传递到 `/compact` 的内容,当他们传递什么都不传递时为 `null`。对于 `auto`,`custom_instructions` 为 `null`。

3312 3314 

3313```json theme={null}3315```json theme={null}

3314{3316{


3332| 匹配器 | 何时触发 |3334| 匹配器 | 何时触发 |

3333| :------- | :--------------------------------------------------------------------- |3335| :------- | :--------------------------------------------------------------------- |

3334| `manual` | 在 `/compact` 后 |3336| `manual` | 在 `/compact` 后 |

3335| `auto` | 在自动压缩后,当对话到达 [自动压缩窗口](/docs/zh-CN/model-config#set-the-auto-compact-window) |3337| `auto` | 当对话达到 [自动压缩窗口](/docs/zh-CN/model-config#set-the-auto-compact-window) 时自动压缩后 |

3336 3338 

3337<h4 id="postcompact-input">3339<h4 id="postcompact-input">

3338 PostCompact 输入3340 PostCompact 输入


3357 PreModelSwitch3359 PreModelSwitch

3358</h3>3360</h3>

3359 3361 

3360在 Claude Code 应用您或客户端请求的模型切换之前运行。使用它来阻止切换、要求确认或在切换发生之前显示它将花费什么。3362在 Claude Code 应用您或客户端请求的模型切换之前运行。使用它来阻止切换、要求确认或在切换发生之前显示成本。

3361 3363 

3362PreModelSwitch 需要 Claude Code v2.1.251 或更高版本。Claude Code 为这些请求运行它:3364PreModelSwitch 需要 Claude Code v2.1.251 或更高版本。Claude Code 为这些请求运行它:

3363 3365 

3364* `/model <name>` 和 `/model` 选择器3366* `/model <name>` 和 `/model` 选择器

3365* `Option+P` 或 `Alt+P` 模型选择器3367* `Option+P` 或 `Alt+P` 模型选择器

3366* `/config` 中的 Model 设置3368* `/config` 中的 Model 设置

3367* 当那改变会话的模型时打开 [快速模式](/docs/zh-CN/fast-mode)3369* 当那改变会话的模型时打开 [fast mode](/docs/zh-CN/fast-mode)

3368* 来自 [Agent SDK](/docs/zh-CN/agent-sdk/typescript#query-object) 主机或 [Remote Control](/docs/zh-CN/remote-control) 的 `set_model` 请求,或 `apply_flag_settings` 请求中的模型更改3370* 来自 [Agent SDK](/docs/zh-CN/agent-sdk/typescript#query-object) 主机或 [Remote Control](/docs/zh-CN/remote-control) 的 `set_model` 请求,或 `apply_flag_settings` 请求中的模型更改

3369 3371 

3370Claude Code 不为它自己进行的切换运行 PreModelSwitch hooks,如 [自动模型回退](/docs/zh-CN/model-config#automatic-model-fallback) 或恢复会话时恢复模型。这些更改仅到达 [PostModelSwitch](#postmodelswitch)。3372Claude Code 不为它自己进行的切换运行 PreModelSwitch hooks,例如 [自动模型回退](/docs/zh-CN/model-config#automatic-model-fallback) 或恢复会话时恢复模型。这些更改仅到达 [PostModelSwitch](#postmodelswitch)。

3371 3373 

3372Claude Code 将匹配器与会话切换到的模型的规范名称进行比较,忽略任何 `[1m]` 后缀。别名如 `opus`、日期模型 ID 和提供商特定 ID 如 Amazon Bedrock 模型 ID 都匹配它们解析到的一个规范名称,因此 `claude-opus-5` 涵盖 Opus 5 的每个拼写。3374Claude Code 将匹配器与会话切换到的模型的规范名称进行比较,忽略任何 `[1m]` 后缀。别名(如 `opus`)、日期模型 ID 和提供商特定 ID(如 Amazon Bedrock 模型 ID)都匹配它们解析到的一个规范名称,因此 `claude-opus-5` 涵盖 Opus 5 的每个拼写。

3373 3375 

3374当 Claude Code 无法确定目标的规范名称时,例如仅您的 [LLM 网关](/docs/zh-CN/llm-gateway) 知道的自定义模型 ID,它运行每个 PreModelSwitch hook,无论匹配器如何。阻止的 hook 应该从其输入检查 `to_model` 而不是仅依赖匹配器。3376当 Claude Code 无法确定目标的规范名称时,例如仅您的 [LLM gateway](/docs/zh-CN/llm-gateway) 知道的自定义模型 ID,它运行每个 PreModelSwitch hook,无论匹配器如何。阻止的 hook 应该从其输入检查 `to_model` 而不是仅依赖匹配器。

3375 3377 

3376将匹配器写为精确名称、`|` 分隔列表如 `claude-opus-4-6|claude-opus-5` 或正则表达式如 `.*opus.*`。此示例使用精确名称匹配器,也从 hook 输入检查 `to_model`,因此它拒绝切换到 Opus 4.6,通过以代码 2 退出,并让任何其他目标通过:3378将匹配器写为精确名称、`|` 分隔列表(如 `claude-opus-4-6|claude-opus-5`)或正则表达式(如 `.*opus.*`)。此示例使用精确名称匹配器,也从 hook 输入检查 `to_model`,因此它拒绝切换到 Opus 4.6,通过退出代码 2,并让任何其他目标通过:

3377 3379 

3378<Tabs>3380<Tabs>

3379 <Tab title="macOS/Linux">3381 <Tab title="macOS/Linux">


3439 </Tab>3441 </Tab>

3440</Tabs>3442</Tabs>

3441 3443 

3442要确认 hook 工作,从运行不同模型的会话运行 `/model claude-opus-4-6`。Claude Code 保持当前模型并报告 PreModelSwitch hook 阻止了切换,您的消息作为原因。3444要确认 hook 有效,从运行不同模型的会话运行 `/model claude-opus-4-6`。Claude Code 保持当前模型并报告 PreModelSwitch hook 阻止了切换,以您的消息作为原因。

3443 3445 

3444<h4 id="premodelswitch-input">3446<h4 id="premodelswitch-input">

3445 PreModelSwitch 输入3447 PreModelSwitch 输入


3448除了 [常见输入字段](#common-input-fields) 外,PreModelSwitch hooks 接收此表中的字段。最后五个描述重新发送对话到新模型的成本,因此 hook 可以在切换发生之前显示该数字。3450除了 [常见输入字段](#common-input-fields) 外,PreModelSwitch hooks 接收此表中的字段。最后五个描述重新发送对话到新模型的成本,因此 hook 可以在切换发生之前显示该数字。

3449 3451 

3450| 字段 | 类型 | 描述 |3452| 字段 | 类型 | 描述 |

3451| :-------------------------- | :--------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |3453| :-------------------------- | :--------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

3452| `from_model` | string | 切换改变的模型 ID |3454| `from_model` | string | 切换更改的模型 ID |

3453| `to_model` | string | 切换改变到的模型 ID。匹配器与此模型的规范名称进行比较 |3455| `to_model` | string | 切换更改为的模型 ID。匹配器与此模型的规范名称进行比较 |

3454| `requested_model` | string or `null` | 请求命名的模型:别名如 `opus`、完整模型 ID 或当请求是默认模型时 `null` |3456| `requested_model` | string or `null` | 请求命名的模型:别名(如 `opus`)、完整模型 ID 或当请求为默认模型时 `null` |

3455| `source` | string | 请求来自何处:`"command"` 对于 `/model <name>`、`/config` 中的 Model 设置或打开快速模式;`"picker"` 对于模型选择器;`"sdk"` 对于 `set_model` 请求,或来自 Agent SDK 主机或 Remote Control 的 `apply_flag_settings` 请求中的模型更改 |3457| `source` | string | 请求来自何处:`"command"` 用于 `/model <name>`、`/config` 中的 Model 设置或打开 fast mode;`"picker"` 用于模型选择器;`"sdk"` 用于 `set_model` 请求,或来自 Agent SDK 主机或 Remote Control 的 `apply_flag_settings` 请求中的模型更改 |

3456| `context_tokens` | number | 下一个请求重新发送作为其提示的令牌:主对话中最后响应的输入、缓存读取、缓存创建和输出令牌,合并。第一个响应前为 `0` |3458| `context_tokens` | number | 下一个请求重新发送作为其提示的令牌:主对话中最后响应的输入、缓存读取、缓存创建和输出令牌,合并。第一个响应前为 `0` |

3457| `prompt_cache_warm` | boolean | 当前模型的 prompt cache 是否可能仍然温暖,意味着切换放弃它 |3459| `prompt_cache_warm` | boolean | 当前模型的 prompt cache 是否可能仍然温暖,意味着切换放弃它 |

3458| `cache_ttl` | string | [Prompt cache 生命周期](/docs/zh-CN/prompt-caching#cache-lifetime) Claude Code 为此会话请求:`"5m"` 或 `"1h"` |3460| `cache_ttl` | string | [Prompt cache 生命周期](/docs/zh-CN/prompt-caching#cache-lifetime) Claude Code 为此会话请求:`"5m"` 或 `"1h"` |

3459| `estimated_cache_write_usd` | number | 将 `context_tokens` 写入 `to_model` 上的 prompt cache 的估计成本(美元),以 `cache_ttl` 速率,不包括下一个响应。服务器可能不需要重新缓存整个上下文,因此将其视为估计 |3461| `estimated_cache_write_usd` | number | 将 `context_tokens` 写入 `to_model` 上的 prompt cache 的估计成本(美元),以 `cache_ttl` 速率,不包括下一个响应 |

3460| `pricing` | string | Claude Code 如何定价 `estimated_cache_write_usd`:当您的组织配置了自己的速率时为 `"configured"`,列表价格为 `"catalog"`,或当 `to_model` 没有已知价格且 Claude Code 假设默认速率时为 `"default"` |3462| `pricing` | string | Claude Code 如何定价 `estimated_cache_write_usd`:当您的组织配置了它们时在您的组织自己的速率处为 `"configured"`,在列表价格处为 `"catalog"`,或当 `to_model` 没有已知价格且 Claude Code 假设默认速率时为 `"default"` |

3461 3463 

3462此示例显示了在运行 Sonnet 5 的会话中 `/model opus` 的输入:3464此示例显示了在运行 Sonnet 5 的会话中 `/model opus` 的输入:

3463 3465 


3485 3487 

3486`PreModelSwitch` hooks 可以取消切换、要求用户确认或让它继续。退出代码 2 或顶级 `decision: "block"` 取消切换。3488`PreModelSwitch` hooks 可以取消切换、要求用户确认或让它继续。退出代码 2 或顶级 `decision: "block"` 取消切换。

3487 3489 

3488为了更精细的控制,在 `hookSpecificOutput` 对象中返回 `permissionDecision` 和 `permissionDecisionReason`,如 [PreToolUse](#pretooluse-decision-control)。`PreModelSwitch` 接受 `"allow"`、`"deny"` 和 `"ask"`。它不接受 `"defer"`、`updatedInput` 或 `additionalContext`。下表描述两个字段:3490为了更精细的控制,在 `hookSpecificOutput` 对象中返回 `permissionDecision` 和 `permissionDecisionReason`,如 [PreToolUse](#pretooluse-decision-control) 上。`PreModelSwitch` 接受 `"allow"`、`"deny"` 和 `"ask"`。它不接受 `"defer"`、`updatedInput` 或 `additionalContext`。下表描述两个字段:

3489 3491 

3490| 字段 | 描述 |3492| 字段 | 描述 |

3491| :------------------------- | :--------------------------------------------------------------------------------------------------------------------------- |3493| :------------------------- | :-------------------------------------------------------------------------------------------------------------------------- |

3492| `permissionDecision` | `"allow"` 继续并跳过 [当 prompt cache 温暖时 Claude Code 显示的确认](/docs/zh-CN/prompt-caching#switching-models)。`"deny"` 取消切换。`"ask"` 提示用户确认它 |3494| `permissionDecision` | `"allow"` 继续并跳过 [Claude Code 在 prompt cache 温暖时显示的确认](/docs/zh-CN/prompt-caching#switching-models)。`"deny"` 取消切换。`"ask"` 提示用户确认它 |

3493| `permissionDecisionReason` | 对于 `"deny"`,显示给用户作为切换被阻止的原因,或作为 `set_model` 请求的错误返回。对于 `"ask"`,显示在确认提示中。对于 `"allow"` 被忽略 |3495| `permissionDecisionReason` | 对于 `"deny"`,显示给用户作为切换被阻止的原因,或为 `set_model` 请求返回为错误。对于 `"ask"`,显示在确认提示中。对于 `"allow"` 被忽略 |

3494 3496 

3495仅交互式会话中的 `/model` 可以显示 `"ask"` 提示。在每个其他表面,包括带 `-p` 标志的非交互模式、`/config` 和 `set_model` 请求,Claude Code 将 `"ask"` 视为拒绝。3497仅交互式会话中的 `/model` 可以显示 `"ask"` 提示。在每个其他表面,包括带 `-p` 标志的非交互模式、`/config` 和 `set_model` 请求,Claude Code 将 `"ask"` 视为拒绝。

3496 3498 


3508 3510 

3509当多个 PreModelSwitch hooks 返回不同的决策时,优先级为 `deny` > `ask` > `allow`。3511当多个 PreModelSwitch hooks 返回不同的决策时,优先级为 `deny` > `ask` > `allow`。

3510 3512 

3511Claude Code 显示用户您的 hook 返回的任何 `systemMessage`,无论决策如何,因此成本报告 hook 可以返回 `{"systemMessage": "..."}` 并退出 0。3513Claude Code 显示您的 hook 返回的任何 `systemMessage` 给用户,无论决策如何,因此成本报告 hook 可以返回 `{"systemMessage": "..."}` 并退出 0。

3512 3514 

3513在其超时之前不响应的 PreModelSwitch hook 阻止切换。在 [PreToolUse](#timeouts) 上,相比之下,超时的命令 hook 让工具调用继续。此事件的默认超时为 30 秒。`PreModelSwitch` 仅运行 `command`、`http` 和 `mcp_tool` hooks,因此 `prompt` 和 `agent` 默认不适用。3515在其超时前不响应的 PreModelSwitch hook 阻止切换。在 [PreToolUse](#timeouts) 上,相比之下,超时的命令 hook 让工具调用继续。此事件的默认超时为 30 秒。`PreModelSwitch` 仅运行 `command`、`http` 和 `mcp_tool` hooks,因此 `prompt` 和 `agent` 默认不适用。

3514 3516 

3515以 0 或 2 以外的代码退出且不打印 JSON 决策的 hook 不阻止:Claude Code 显示其 stderr 并应用切换,如 [其他退出代码](#other-exit-codes) 下所述。3517退出代码不是 0 或 2 且不打印 JSON 决策的 hook 不阻止:Claude Code 显示其 stderr 并应用切换,如 [其他退出代码](#other-exit-codes) 下所述。

3516 3518 

3517<h3 id="postmodelswitch">3519<h3 id="postmodelswitch">

3518 PostModelSwitch3520 PostModelSwitch

3519</h3>3521</h3>

3520 3522 

3521在会话的模型更改后运行。使用它来给 Claude 模型特定的指导,而不编辑每个 CLAUDE.md。3523在会话的模型更改后运行。使用它来给 Claude 模型特定的指导,而不编辑每个 CLAUDE.md,例如仅在某些模型上适用的组织范围指令。

3522 3524 

3523PostModelSwitch 需要 Claude Code v2.1.251 或更高版本。它无法阻止,因为模型已经更改。Claude Code 在任何这些更改后运行 PostModelSwitch hooks:3525PostModelSwitch 需要 Claude Code v2.1.251 或更高版本。它无法阻止,因为模型已经更改。Claude Code 在这些更改后运行 PostModelSwitch hooks:

3524 3526 

3525* 您或客户端请求的切换3527* 您或客户端请求的切换

3526* [自动模型回退](/docs/zh-CN/model-config#automatic-model-fallback),改变会话的模型3528* [自动模型回退](/docs/zh-CN/model-config#automatic-model-fallback),改变会话的模型

3527* 设置如 [`opusplan`](/docs/zh-CN/model-config#opusplan-model-setting) 进入或离开 plan mode3529* 设置(如 [`opusplan`](/docs/zh-CN/model-config#opusplan-model-setting))进入或离开 plan mode

3528* Claude Code 恢复会话时恢复模型3530* Claude Code 恢复会话时恢复模型

3529 3531 

3530Claude Code 不为来自 [回退模型链](/docs/zh-CN/model-config#fallback-model-chains) 的模型运行 PostModelSwitch hooks,因为该替换持续一个回合并保持会话的模型不变。3532当 [回退模型链](/docs/zh-CN/model-config#fallback-model-chains) 中的模型服务回合时,Claude Code 不运行 PostModelSwitch hooks,因为该替换持续一个回合并保持会话的模型不变。

3531 3533 

3532匹配器遵循与 [PreModelSwitch](#premodelswitch) 相同的规则:Claude Code 将其与会话切换到的模型的规范名称进行比较。3534匹配器遵循与 [PreModelSwitch](#premodelswitch) 相同的规则:Claude Code 将其与会话切换到的模型的规范名称进行比较。

3533 3535 


3551}3553}

3552```3554```

3553 3555 

3554要确认 hook 工作,从运行不同模型的会话切换到 Opus 模型,例如从 Sonnet 会话运行 `/model opus`,然后询问 Claude 它对当前模型有什么指导。3556要确认 hook 有效,从运行不同模型的会话切换到 Opus 模型,例如从 Sonnet 会话运行 `/model opus`,然后询问 Claude 它对当前模型有什么指导。

3555 3557 

3556<h4 id="postmodelswitch-input">3558<h4 id="postmodelswitch-input">

3557 PostModelSwitch 输入3559 PostModelSwitch 输入

3558</h4>3560</h4>

3559 3561 

3560PostModelSwitch hooks 接收与 [PreModelSwitch](#premodelswitch-input) 相同的字段,其中 `hook_event_name` 设置为 `"PostModelSwitch"` 和两个更多 `source` 值:`"auto"` 对于自动回退或 Claude Code 自己进行的其他更改,以及 `"resume"` 对于恢复会话时恢复的模型。3562PostModelSwitch hooks 接收与 [PreModelSwitch](#premodelswitch-input) 相同的字段,`hook_event_name` 设置为 `"PostModelSwitch"` 和两个更多 `source` 值:`"auto"` 用于自动回退或 Claude Code 自己进行的其他更改,以及 `"resume"` 用于恢复会话时恢复的模型。

3561 3563 

3562当 `source` 为 `"auto"` 时,`requested_model` 为 `null`。当 `source` 为 `"resume"` 时,它是 Claude Code 恢复的保存模型设置。3564当 `source` 为 `"auto"` 时,`requested_model` 为 `null`。当 `source` 为 `"resume"` 时,它是 Claude Code 恢复的保存模型设置。

3563 3565 


3565 PostModelSwitch 决策控制3567 PostModelSwitch 决策控制

3566</h4>3568</h4>

3567 3569 

3568Claude Code 获取您的 hook 在退出 0 时的 [纯文本 stdout](#exit-code-0),或来自 JSON 输出的 `additionalContext`,并在切换后的下一个请求中将其传递给 Claude。除了所有 hooks 可用的 [JSON 输出字段](#json-output) 外,您可以返回:3570Claude Code 在切换后的下一个请求中获取您的 hook 的 [纯文本 stdout](#exit-code-0) 退出 0,或 JSON 输出中的 `additionalContext`,并将其传递给 Claude。除了所有 hooks 可用的 [JSON 输出字段](#json-output) 外,您可以返回:

3569 3571 

3570| 字段 | 描述 |3572| 字段 | 描述 |

3571| :------------------ | :----------------------------------------------------------------------------------------- |3573| :------------------ | :------------------------------------------------------------------------------ |

3572| `additionalContext` | 与下一个请求一起添加到 Claude 上下文的字符串。有关文本如何传递以及放入其中的内容,请参阅 [为 Claude 添加上下文](#add-context-for-claude) |3574| `additionalContext` | 与下一个请求一起添加到 Claude 上下文的字符串。有关详细信息,请参阅 [为 Claude 添加上下文](#add-context-for-claude) |

3573 3575 

3574如果 hook 在您发送下一个提示后五秒内未完成,Claude Code 发送该请求而不输出,并将其附加到以下请求。如果模型在下一个请求之前更改多次,Claude Code 仅传递最后一个切换目标模型的输出。3576如果 hook 在您发送下一个提示后五秒内未完成,Claude Code 发送该请求而不输出,并将其附加到以下请求。如果模型在下一个请求之前更改多次,Claude Code 仅传递最后一个切换目标模型的输出。

3575 3577 


3583 3585 

3584| 原因 | 描述 |3586| 原因 | 描述 |

3585| :---------------------------- | :------------------------------------------------------- |3587| :---------------------------- | :------------------------------------------------------- |

3586| `clear` | 使用 `/clear` 命令清除会话 |3588| `clear` | 会话使用 `/clear` 命令清除 |

3587| `resume` | 通过交互式 `/resume` 切换会话 |3589| `resume` | 会话通过交互式 `/resume` 切换 |

3588| `logout` | 用户登出 |3590| `logout` | 用户登出 |

3589| `prompt_input_exit` | 用户在提示输入可见时退出 |3591| `prompt_input_exit` | 用户在提示输入可见时退出 |

3590| `other` | 其他退出原因 |3592| `other` | 其他退出原因 |


3608 3610 

3609SessionEnd hooks 没有决策控制。它们无法阻止会话终止,但可以执行清理任务。Claude Code 丢弃它们的 [JSON 输出字段](#json-output),如 `systemMessage`。3611SessionEnd hooks 没有决策控制。它们无法阻止会话终止,但可以执行清理任务。Claude Code 丢弃它们的 [JSON 输出字段](#json-output),如 `systemMessage`。

3610 3612 

3611SessionEnd hooks 的默认超时为 1.5 秒。当您退出、运行 `/clear` 或使用交互式 `/resume` 切换会话时它适用。您可以通过两种方式给 hook 更多时间:3613SessionEnd hooks 的默认超时为 1.5 秒。当您退出、运行 `/clear` 或使用交互式 `/resume` 切换会话时适用。您可以通过两种方式给 hook 更多时间:

3612 3614 

3613* **每个 hook `timeout`**:在该 hook 的配置中设置 `timeout`。整体预算自动上升以匹配您的设置文件中最高的每个 hook `timeout`,最多 60 秒。如果您以这种方式提高预算,没有自己的 `timeout` 的 hook 仍然保持默认值。在插件提供的 hooks 上设置的超时不提高预算。3615* **每个 hook `timeout`**:在该 hook 的配置中设置 `timeout`。整体预算自动上升以匹配您设置文件中最高的每个 hook `timeout`,最多 60 秒。如果您以这种方式提高预算,没有自己的 `timeout` 的 hook 仍然保持默认值。在插件提供的 hooks 上设置的超时不提高预算。

3614* **`CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS`**:设置此环境变量(毫秒)以显式覆盖预算。您设置的值也成为每个没有自己的 `timeout` 的 hook 的超时。3616* **`CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS`**:以毫秒为单位设置此环境变量以显式覆盖预算。您设置的值也成为每个没有自己的 `timeout` 的 hook 的超时。

3615 3617 

3616此示例将预算设置为 5 秒:3618此示例将预算设置为 5 秒:

3617 3619 


3627 3629 

3628在 MCP 服务器请求用户输入中任务时运行。默认情况下,Claude Code 显示交互式对话供用户响应。Hooks 可以拦截此请求并以编程方式响应,完全跳过对话。3630在 MCP 服务器请求用户输入中任务时运行。默认情况下,Claude Code 显示交互式对话供用户响应。Hooks 可以拦截此请求并以编程方式响应,完全跳过对话。

3629 3631 

3630匹配器字段匹配 MCP 服务器名称。3632匹配器字段与 MCP 服务器名称匹配。

3631 3633 

3632<h4 id="elicitation-input">3634<h4 id="elicitation-input">

3633 Elicitation 输入3635 Elicitation 输入


3695 3697 

3696退出代码 2 拒绝引出。Claude Code 不在任何地方显示您的 stderr 消息。3698退出代码 2 拒绝引出。Claude Code 不在任何地方显示您的 stderr 消息。

3697 3699 

3698Claude Code 作用于 Elicitation hook 的 JSON 输出中的 `hookSpecificOutput`,并丢弃 `systemMessage` 和 `continue`。3700Claude Code 从 Elicitation hook 的 JSON 输出中作用于 `hookSpecificOutput`,并丢弃 `systemMessage` 和 `continue`。

3699 3701 

3700<h3 id="elicitationresult">3702<h3 id="elicitationresult">

3701 ElicitationResult3703 ElicitationResult


3703 3705 

3704在用户响应 MCP 引出后运行。Hooks 可以观察、修改或阻止响应,然后将其发送回 MCP 服务器。3706在用户响应 MCP 引出后运行。Hooks 可以观察、修改或阻止响应,然后将其发送回 MCP 服务器。

3705 3707 

3706匹配器字段匹配 MCP 服务器名称。3708匹配器字段与 MCP 服务器名称匹配。

3707 3709 

3708<h4 id="elicitationresult-input">3710<h4 id="elicitationresult-input">

3709 ElicitationResult 输入3711 ElicitationResult 输入


3748 3750 

3749退出代码 2 阻止响应,将有效操作更改为 `decline`。Claude Code 不在任何地方显示您的 stderr 消息。3751退出代码 2 阻止响应,将有效操作更改为 `decline`。Claude Code 不在任何地方显示您的 stderr 消息。

3750 3752 

3751Claude Code 作用于 ElicitationResult hook 的 JSON 输出中的 `hookSpecificOutput`,并丢弃 `systemMessage` 和 `continue`。3753Claude Code 从 ElicitationResult hook 的 JSON 输出中作用于 `hookSpecificOutput`,并丢弃 `systemMessage` 和 `continue`。

3752 3754 

3753<h2 id="prompt-based-hooks">3755<h2 id="prompt-based-hooks">

3754 基于提示的 hooks3756 基于提示的 hooks


3759支持所有五种 hook 类型(`command`、`http`、`mcp_tool`、`prompt` 和 `agent`)的事件:3761支持所有五种 hook 类型(`command`、`http`、`mcp_tool`、`prompt` 和 `agent`)的事件:

3760 3762 

3761* `PermissionDenied`3763* `PermissionDenied`

3762* `PermissionRequest`

3763* `PostToolBatch`3764* `PostToolBatch`

3764* `PostToolUse`3765* `PostToolUse`

3765* `PostToolUseFailure`3766* `PostToolUseFailure`


3772* `UserPromptExpansion`3773* `UserPromptExpansion`

3773* `UserPromptSubmit`3774* `UserPromptSubmit`

3774 3775 

3776`PermissionRequest` 支持 `command`、`http`、`mcp_tool` 和 `prompt` hooks,但不支持 `agent` hooks。如果您在此事件上配置代理 hook,Claude Code 会跳过它,权限流程保持不变。要从 hook 允许或拒绝,请从命令或 HTTP hook 返回[决定对象](#permissionrequest-decision-control)。

3777 

3775支持 `command`、`http` 和 `mcp_tool` hooks 但不支持 `prompt` 或 `agent` 的事件:3778支持 `command`、`http` 和 `mcp_tool` hooks 但不支持 `prompt` 或 `agent` 的事件:

3776 3779 

3777* `ConfigChange`3780* `ConfigChange`


3904 代理 hooks 是实验性的。行为和配置可能在未来版本中更改。对于生产工作流,建议使用[命令 hooks](#command-hook-fields)。3907 代理 hooks 是实验性的。行为和配置可能在未来版本中更改。对于生产工作流,建议使用[命令 hooks](#command-hook-fields)。

3905</Warning>3908</Warning>

3906 3909 

3907基于代理的 hooks(`type: "agent"`)类似于基于提示的 hooks,但具有多轮工具访问。代理 hook 生成一个可以读取文件、搜索代码和检查代码库以验证条件的 subagent,而不是单个 LLM 调用。代理 hooks 支持与基于提示的 hooks 相同的事件。3910基于代理的 hooks(`type: "agent"`)类似于基于提示的 hooks,但具有多轮工具访问。代理 hook 生成一个可以读取文件、搜索代码和检查代码库以验证条件的 subagent,而不是单个 LLM 调用。代理 hooks 支持与[基于提示的 hooks](#prompt-based-hooks) 相同的事件,除了 `PermissionRequest`。

3908 3911 

3909<h3 id="how-agent-hooks-work">3912<h3 id="how-agent-hooks-work">

3910 基于代理的 hooks 如何工作3913 基于代理的 hooks 如何工作

Details

24 24 

25您也是这个循环的一部分。您可以在任何时刻中断以引导 Claude 朝不同的方向发展、提供额外的上下文或要求它尝试不同的方法。Claude 自主工作但对您的输入保持响应。25您也是这个循环的一部分。您可以在任何时刻中断以引导 Claude 朝不同的方向发展、提供额外的上下文或要求它尝试不同的方法。Claude 自主工作但对您的输入保持响应。

26 26 

27代理循环由两个组件驱动:[模型](#models)进行推理和[工具](#tools)采取行动。Claude Code 充当 Claude 周围的**代理框架**:它提供工具、上下文管理和执行环境,将语言模型转变为能够进行编码的代理。27代理循环由两个组件驱动:[模型](#models)进行推理和[工具](#tools)采取行动。Claude Code 是围绕模型的层,提供工具并管理模型看到的上下文。这个周围层就是术语代理框架所指的。

28 28 

29<h3 id="models">29<h3 id="models">

30 模型30 模型


238 中断和引导238 中断和引导

239</h4>239</h4>

240 240 

241您可以在任何时刻重定向 Claude,无需等待轮次完成或重新开始:241您可以在任何时刻重定向 Claude,无需重新开始。执行以下任一操作:

242 242 

243* **按 `Esc`** 立即停止 Claude。正在运行的工具调用被取消,Claude 等待您的下一条指令。如果您有排队的消息,Claude Code [会接下来发送它们](/docs/zh-CN/interactive-mode#queue-messages-while-claude-works)。243* **按 `Esc`** 立即停止 Claude。正在运行的工具调用被取消,Claude 等待您的下一条指令。如果您有排队的消息,Claude Code [会接下来发送它们](/docs/zh-CN/interactive-mode#queue-messages-while-claude-works)。

244* **输入更正并按 `Enter`** 在不停止正在运行的工具的情况下发送。Claude 在当前操作完成后立即读取它,并在决定下一步之前进行调整。244* **输入更正并按 `Enter`** 在不停止 Claude 的情况下。消息显示为在输入框上方排队。如果 Claude 正在运行工具调用,它会在这些调用完成后立即读取消息,在同一轮内,并在下一步之前进行调整。[在 Claude 工作时排队消息](/docs/zh-CN/interactive-mode#queue-messages-while-claude-works)涵盖何时发送其他排队条目。

245 245 

246<h3 id="delegate-don’t-dictate">246<h3 id="delegate-don’t-dictate">

247 委派,不要指示247 委派,不要指示

Details

26| `Ctrl+X Ctrl+K` | 停止此会话中所有正在运行的[后台子代理](/docs/zh-CN/sub-agents#run-subagents-in-foreground-or-background),并关闭[工件自动回复](/docs/zh-CN/artifacts#let-claude-reply-to-comments-on-its-own)。在 3 秒内按两次以确认 | 子代理控制 |26| `Ctrl+X Ctrl+K` | 停止此会话中所有正在运行的[后台子代理](/docs/zh-CN/sub-agents#run-subagents-in-foreground-or-background),并关闭[工件自动回复](/docs/zh-CN/artifacts#let-claude-reply-to-comments-on-its-own)。在 3 秒内按两次以确认 | 子代理控制 |

27| `Ctrl+D` | 退出 Claude Code 会话 | 第一次按下显示确认提示,第二次在 800ms 内按下会退出。当提示有文本时,`Ctrl+D` 会删除光标后的字符 |27| `Ctrl+D` | 退出 Claude Code 会话 | 第一次按下显示确认提示,第二次在 800ms 内按下会退出。当提示有文本时,`Ctrl+D` 会删除光标后的字符 |

28| `Ctrl+G` 或 `Ctrl+X Ctrl+E` | 在默认文本编辑器中打开 | 在默认文本编辑器中编辑您的提示或自定义响应。`Ctrl+X Ctrl+E` 是 readline 原生绑定。在 `/config` 中打开**在外部编辑器中显示最后一个响应**,以在您的提示上方将 Claude 的前一个回复作为 `#` 注释上下文预置;Claude Code 在您保存时会删除注释块 |28| `Ctrl+G` 或 `Ctrl+X Ctrl+E` | 在默认文本编辑器中打开 | 在默认文本编辑器中编辑您的提示或自定义响应。`Ctrl+X Ctrl+E` 是 readline 原生绑定。在 `/config` 中打开**在外部编辑器中显示最后一个响应**,以在您的提示上方将 Claude 的前一个回复作为 `#` 注释上下文预置;Claude Code 在您保存时会删除注释块 |

29| `Ctrl+L` | 重绘或清除屏幕 | 强制完整的终端重绘,保持输入和对话历史。如果显示变得混乱或部分空白,请使用此选项恢复。在[全屏渲染](/docs/zh-CN/fullscreen#clear-the-conversation)中,它也会清除屏幕,您可以向上滚动查看早期消息 |29| `Ctrl+L` | 重绘屏幕 | 强制完整的终端重绘,保持输入和对话历史。如果显示变得混乱或部分空白,请使用此选项恢复。请参阅[清除对话](/docs/zh-CN/fullscreen#clear-the-conversation)了解全屏渲染 |

30| `Ctrl+O` | 切换记录查看器 | 显示详细的工具使用和执行情况,每条助手消息上都有时间戳和使用的模型。还会展开默认折叠的行,例如 MCP 调用,显示为单个 `Called slack 3 times` 行,以及[来自您其他会话的消息](/docs/zh-CN/cross-session-messaging#what-a-message-looks-like),显示为单行 `Message from @<sender>` 预览 |30| `Ctrl+O` | 切换记录查看器 | 显示详细的工具使用和执行情况,每条助手消息上都有时间戳和使用的模型。还会展开默认折叠的行,例如 MCP 调用,显示为单个 `Called slack 3 times` 行,以及[来自您其他会话的消息](/docs/zh-CN/cross-session-messaging#what-a-message-looks-like),显示为单行 `Message from @<sender>` 预览 |

31| `Ctrl+R` | 反向搜索命令历史 | 交互式搜索以前的命令 |31| `Ctrl+R` | 反向搜索命令历史 | 交互式搜索以前的命令 |

32| `Ctrl+V` 或 `Cmd+V`(iTerm2)或 `Alt+V`(Windows 和 WSL) | 从剪贴板粘贴图像 | 在光标处插入 `[Image #N]` 芯片,以便您可以在提示中按位置引用它。在 WSL 上,`Ctrl+V` 和 `Alt+V` 都被绑定;如果您的终端拦截 `Ctrl+V`,请使用 `Alt+V` |32| `Ctrl+V` 或 `Cmd+V`(iTerm2)或 `Alt+V`(Windows 和 WSL) | 从剪贴板粘贴图像 | 在光标处插入 `[Image #N]` 芯片,以便您可以在提示中按位置引用它。在 WSL 上,`Ctrl+V` 和 `Alt+V` 都被绑定;如果您的终端拦截 `Ctrl+V`,请使用 `Alt+V` |


42| `Ctrl+Enter` 或 `Ctrl+X Ctrl+S` | 立即发送排队的消息 | 中断当前轮次,以便您的[排队的消息](#queue-messages-while-claude-works)和您的草稿与它们一起立即发出,而不是在轮次结束时发出。在[shell 模式](#shell-mode-with-prefix)中,该键会排队您的命令而不中断。在不报告扩展键的终端中,`Ctrl+Enter` 作为普通 `Enter` 到达;`Ctrl+X Ctrl+S` 在任何终端中都有效。需要 Claude Code v2.1.275 或更高版本 |42| `Ctrl+Enter` 或 `Ctrl+X Ctrl+S` | 立即发送排队的消息 | 中断当前轮次,以便您的[排队的消息](#queue-messages-while-claude-works)和您的草稿与它们一起立即发出,而不是在轮次结束时发出。在[shell 模式](#shell-mode-with-prefix)中,该键会排队您的命令而不中断。在不报告扩展键的终端中,`Ctrl+Enter` 作为普通 `Enter` 到达;`Ctrl+X Ctrl+S` 在任何终端中都有效。需要 Claude Code v2.1.275 或更高版本 |

43| `Shift+Tab` 或在 Node 或 Bun 运行时不启用 VT 输入模式时在 Windows 上使用 `Alt+M` | 循环权限模式 | 循环通过 `default`(在模式指示器中标记为 Manual)、`acceptEdits`、`plan` 和(如果可用)`bypassPermissions` 然后 `auto`。从 `auto`,第一次按下切换到 `default`。请参阅[权限模式](/docs/zh-CN/permission-modes)。在文件权限提示上,相同的键会关闭打开的[注释字段](/docs/zh-CN/permissions#add-a-comment-when-you-answer-a-permission-prompt)。如果没有字段打开,它会选择允许该操作在会话其余部分的选项,当提示提供该选项时 |43| `Shift+Tab` 或在 Node 或 Bun 运行时不启用 VT 输入模式时在 Windows 上使用 `Alt+M` | 循环权限模式 | 循环通过 `default`(在模式指示器中标记为 Manual)、`acceptEdits`、`plan` 和(如果可用)`bypassPermissions` 然后 `auto`。从 `auto`,第一次按下切换到 `default`。请参阅[权限模式](/docs/zh-CN/permission-modes)。在文件权限提示上,相同的键会关闭打开的[注释字段](/docs/zh-CN/permissions#add-a-comment-when-you-answer-a-permission-prompt)。如果没有字段打开,它会选择允许该操作在会话其余部分的选项,当提示提供该选项时 |

44| `Option+P`(macOS)或 `Alt+P`(Windows/Linux) | 切换模型 | 在不清除提示的情况下切换模型 |44| `Option+P`(macOS)或 `Alt+P`(Windows/Linux) | 切换模型 | 在不清除提示的情况下切换模型 |

45| `Option+T`(macOS)或 `Alt+T`(Windows/Linux) | 切换扩展思考 | 启用或禁用扩展思考模式。对 Fable 5.1 或 Fable 5 无效,它们始终使用扩展思考。在 macOS 上无需配置 Option 为 Meta 即可工作 |45| `Option+T`(macOS)或 `Alt+T`(Windows/Linux) | 切换扩展思考 | 启用或禁用扩展思考模式。对 Opus 5.5 或 Fable 模型无效,它们始终使用扩展思考。在 macOS 上无需配置 Option 为 Meta 即可工作 |

46| `Option+O`(macOS)或 `Alt+O`(Windows/Linux) | 切换快速模式 | 启用或禁用[快速模式](/docs/zh-CN/fast-mode) |46| `Option+O`(macOS)或 `Alt+O`(Windows/Linux) | 切换快速模式 | 启用或禁用[快速模式](/docs/zh-CN/fast-mode) |

47 47 

48<h3 id="text-editing">48<h3 id="text-editing">


593 593 

594要找出发生了哪种情况,请使用 `claude --debug` 启动拼写检查并输入一个单词。然后在 `~/.claude/debug/<session-id>.txt` 的调试日志中查找 `[spellcheck]` 行。一行命名 Claude Code 启动的程序,或列出它查找但未找到的程序。后面的行说明它为什么停止。那里的缺少字典错误意味着检查器没有您的 `language` 值的字典,或当 `language` 未设置时没有默认字典。安装一个,或将 `language` 设置为您拥有的字典。594要找出发生了哪种情况,请使用 `claude --debug` 启动拼写检查并输入一个单词。然后在 `~/.claude/debug/<session-id>.txt` 的调试日志中查找 `[spellcheck]` 行。一行命名 Claude Code 启动的程序,或列出它查找但未找到的程序。后面的行说明它为什么停止。那里的缺少字典错误意味着检查器没有您的 `language` 值的字典,或当 `language` 未设置时没有默认字典。安装一个,或将 `language` 设置为您拥有的字典。

595 595 

596<h2 id="invisible-characters-in-prompts">

597 提示词中的隐形字符

598</h2>

599 

600粘贴的文本可能包含 Unicode 字符,这些字符在终端中显示为空白,例如标签字符、双向控制字符和零宽空格,因此提示词可能包含您看不到的文本。为了防止复制的文本携带终端无法显示的指令,Claude Code 在您按 Enter 时会移除这些字符,然后再发送任何内容。它会清理提示词和提示词包含的任何折叠的[粘贴文本引用](/docs/zh-CN/terminal-config#paste-large-content)的内容。Claude Code 会保留波斯语和印度文字使用的连接符以及表情符号序列中的选择器。

601 

602如果 Claude Code 移除了任何内容,该 Enter 将不发送任何内容。清理后的提示词会返回到输入框中,并显示类似 `Removed 3 invisible characters · review and press Enter to send` 的通知,再次按 Enter 会发送显示的文本。

603 

604当您在命令行上传递提示词时,例如 `claude "fix the login bug"`,或将其管道传输到交互式会话中,Claude Code 不会等待第二次 Enter。它会移除这些字符,显示通知,并发送清理后的提示词。如果清理后的提示词以 `/` 开头,Claude Code 会将其放在输入框中供您审查和发送。

605 

596<h2 id="review-changes-with-/diff">606<h2 id="review-changes-with-/diff">

597 使用 /diff 查看更改607 使用 /diff 查看更改

598</h2>608</h2>

keybindings.md +118 −92

Details

77 可用操作77 可用操作

78</h2>78</h2>

79 79 

80操作遵循 `namespace:action` 格式,例如 `chat:submit` 发送消息或 `app:toggleTodos` 显示任务列表。每个上下文都有特定的可用操作。80操作遵循 `namespace:action` 格式,例如 `chat:submit` 用于发送消息或 `app:toggleTodos` 用于显示任务列表。每个上下文都有特定的可用操作。

81 81 

82<h3 id="app-actions">82<h3 id="app-actions">

83 应用程序操作83 App 操作

84</h3>84</h3>

85 85 

86在 `Global` 上下文中可用的操作:86在 `Global` 上下文中可用的操作:


89| :--------------------- | :----- | :---------------------------------------------------------- |89| :--------------------- | :----- | :---------------------------------------------------------- |

90| `app:interrupt` | Ctrl+C | 取消当前操作 |90| `app:interrupt` | Ctrl+C | 取消当前操作 |

91| `app:exit` | Ctrl+D | 退出 Claude Code。在 800ms 内按两次以确认 |91| `app:exit` | Ctrl+D | 退出 Claude Code。在 800ms 内按两次以确认 |

92| `app:redraw` | (未绑定) | 强制终端重绘 |92| `app:redraw` | (未绑定) | 强制终端重绘 |

93| `app:toggleTodos` | Ctrl+T | 切换 Claude 待办事项清单的可见性。这不是 [`/tasks`](/docs/zh-CN/commands) 后台任务视图 |93| `app:toggleTodos` | Ctrl+T | 切换 Claude 待办事项清单的可见性。这不是 [`/tasks`](/docs/zh-CN/commands) 后台任务视图 |

94| `app:toggleTranscript` | Ctrl+O | 切换详细记录 |94| `app:toggleTranscript` | Ctrl+O | 切换详细记录 |

95 95 

96<h3 id="history-actions">96<h3 id="history-actions">

97 历史操作97 History 操作

98</h3>98</h3>

99 99 

100用于导航命令历史的操作:100用于导航命令历史的操作:


106| `history:next` | Down | 下一个历史项 |106| `history:next` | Down | 下一个历史项 |

107 107 

108<h3 id="chat-actions">108<h3 id="chat-actions">

109 聊天操作109 Chat 操作

110</h3>110</h3>

111 111 

112在 `Chat` 上下文中可用的操作:112在 `Chat` 上下文中可用的操作:

113 113 

114| 操作 | 默认 | 描述 |114| 操作 | 默认 | 描述 |

115| :-------------------- | :----------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |115| :-------------------- | :------------------------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

116| `chat:cancel` | Escape | 取消当前输入 |116| `chat:cancel` | Escape | 取消当前输入 |

117| `chat:clearInput` | Ctrl+L | 强制全屏重绘,保留输入和对话。在[全屏渲染](/docs/zh-CN/fullscreen#clear-the-conversation)中,也清除屏幕 |117| `chat:clearInput` | Ctrl+L | 强制全屏重绘,保留输入和对话 |

118| `chat:clearScreen` | Cmd+K | 与 `chat:clearInput` 相同。请参阅[清除对话](/docs/zh-CN/fullscreen#clear-the-conversation)了解 Cmd+K 在 iTerm2 和 Terminal.app 上的行为 |118| `chat:clearScreen` | Cmd+K | 与 `chat:clearInput` 相同。请参阅 [清除对话](/docs/zh-CN/fullscreen#clear-the-conversation) 了解 Cmd+K 在 iTerm2 和 Terminal.app 上的行为 |

119| `chat:killAgents` | Ctrl+X Ctrl+K | 停止此会话中所有运行中的[后台子代理](/docs/zh-CN/sub-agents#run-subagents-in-foreground-or-background)并关闭[工件自动回复](/docs/zh-CN/artifacts#let-claude-reply-to-comments-on-its-own) |119| `chat:killAgents` | Ctrl+X Ctrl+K | 停止此会话中所有运行的 [后台子代理](/docs/zh-CN/sub-agents#run-subagents-in-foreground-or-background),并在会话的其余部分关闭 [artifact 自动回复](/docs/zh-CN/artifacts#let-claude-reply-to-comments-on-its-own) |

120| `chat:cycleMode` | Shift+Tab\* | 循环权限模式 |120| `chat:cycleMode` | Shift+Tab\* | 循环权限模式 |

121| `chat:modelPicker` | Meta+P | 打开模型选择器 |121| `chat:modelPicker` | Meta+P | 打开模型选择器 |

122| `chat:fastMode` | Meta+O | 切换快速模式 |122| `chat:fastMode` | Meta+O | 切换快速模式 |

123| `chat:thinkingToggle` | Meta+T | 切换扩展思考 |123| `chat:thinkingToggle` | Meta+T | 切换扩展思考 |

124| `chat:submit` | Enter | 提交消息 |124| `chat:submit` | Enter | 提交消息 |

125| `chat:queueSubmit` | Ctrl+X Enter | 提交消息,标记为等待其轮次:当 Claude 工作时,Claude Code [将其排队](/docs/zh-CN/interactive-mode#queue-messages-while-claude-works)并且永远不会中断轮次。与 `chat:submit` 不同,即使自动完成建议被突出显示,它也会提交草稿。需要 v2.1.247 或更高版本 |125| `chat:queueSubmit` | Ctrl+X Enter | 提交消息,标记为等待其轮次:当 Claude 工作时,Claude Code [将其排队](/docs/zh-CN/interactive-mode#queue-messages-while-claude-works),永远不会中断轮次。与 `chat:submit` 不同,即使自动完成建议被突出显示,它也会提交草稿。需要 v2.1.247 或更高版本 |

126| `chat:sendNow` | Ctrl+Enter, Ctrl+X Ctrl+S | 中断运行中的轮次,以便您的[排队消息](/docs/zh-CN/interactive-mode#queue-messages-while-claude-works)及其草稿立即发出。当没有任何内容运行时,它会提交草稿,在[shell 模式](/docs/zh-CN/interactive-mode#shell-mode-with-prefix)中它会排队命令而不中断。不报告扩展键的终端将 `Ctrl+Enter` 传递为纯 `Enter`,因此 `Ctrl+X Ctrl+S` 是在任何终端中都有效的绑定。需要 v2.1.275 或更高版本 |126| `chat:sendNow` | Ctrl+Enter, Ctrl+X Ctrl+S | 中断运行的轮次,以便您的 [排队消息](/docs/zh-CN/interactive-mode#queue-messages-while-claude-works) 和您的草稿与它们一起立即发出。当没有任何内容运行时,它提交草稿,在 [shell 模式](/docs/zh-CN/interactive-mode#shell-mode-with-prefix) 中,它在不中断的情况下排队命令。不报告扩展键的终端将 `Ctrl+Enter` 传递为纯 `Enter`,因此 `Ctrl+X Ctrl+S` 是在任何终端中都有效的绑定。需要 v2.1.275 或更高版本 |

127| `chat:newline` | Ctrl+J | 插入换行符而不提交 |127| `chat:newline` | Ctrl+J | 插入换行符而不提交 |

128| `chat:undo` | Ctrl+\_, Ctrl+Shift+- | 撤销上一个操作 |128| `chat:undo` | Ctrl+\_, Ctrl+Shift+- | 撤销上一个操作 |

129| `chat:externalEditor` | Ctrl+G, Ctrl+X Ctrl+E | 在外部编辑器中打开。[代理视图调度输入](/docs/zh-CN/agent-view#keyboard-shortcuts)也遵循此操作的单键击绑定 |129| `chat:externalEditor` | Ctrl+G, Ctrl+X Ctrl+E | 在外部编辑器中打开。[agent 视图调度输入](/docs/zh-CN/agent-view#keyboard-shortcuts) 也遵循此操作的单键击绑定 |

130| `chat:stash` | Ctrl+S | 隐藏当前提示 |130| `chat:stash` | Ctrl+S | 隐藏当前提示 |

131| `chat:imagePaste` | Ctrl+V(Windows 和 WSL 上为 Alt+V) | 从剪贴板粘贴图像。在 WSL 上,默认情况下两个快捷键都已绑定 |131| `chat:imagePaste` | Ctrl+V (Windows 和 WSL 上为 Alt+V) | 从剪贴板粘贴图像。在 WSL 上,默认绑定两个快捷键 |

132 132 

133\*在没有 VT 模式的 Windows 上(Node \<24.2.0/\<22.17.0,Bun \<1.2.23),默认为 Meta+M。133\*在没有 VT 模式的 Windows 上 (Node \<24.2.0/\<22.17.0, Bun \<1.2.23),默认为 Meta+M。

134 134 

135<h3 id="autocomplete-actions">135<h3 id="autocomplete-actions">

136 自动完成操作136 Autocomplete 操作

137</h3>137</h3>

138 138 

139在 `Autocomplete` 上下文中可用的操作:139在 `Autocomplete` 上下文中可用的操作:


146| `autocomplete:next` | Down | 下一个建议 |146| `autocomplete:next` | Down | 下一个建议 |

147 147 

148<h3 id="confirmation-actions">148<h3 id="confirmation-actions">

149 确认操作149 Confirmation 操作

150</h3>150</h3>

151 151 

152在 `Confirmation` 上下文中可用的操作:152在 `Confirmation` 上下文中可用的操作:

153 153 

154| 操作 | 默认 | 描述 |154| 操作 | 默认 | 描述 |

155| :---------------------- | :---------- | :------------------------------------------------------------------------------------------------------------------------------------- |155| :---------------------- | :---------- | :------------------------------------------------------------------------------------------------------------------------------------- |

156| `confirm:yes` | Y, Enter | 确认操作 |156| `confirm:yes` | Enter | 确认操作 |

157| `confirm:no` | N, Escape | 拒绝操作 |157| `confirm:no` | Escape | 拒绝操作 |

158| `confirm:previous` | Up | 上一个选项 |158| `confirm:previous` | Up | 上一个选项 |

159| `confirm:next` | Down | 下一个选项 |159| `confirm:next` | Down | 下一个选项 |

160| `confirm:nextField` | Tab | 下一个字段 |160| `confirm:nextField` | Tab | 下一个字段 |

161| `confirm:previousField` | (未绑定) | 上一个字段 |161| `confirm:previousField` | (未绑定) | 上一个字段 |

162| `confirm:toggle` | Space | 切换选择 |162| `confirm:toggle` | Space | 切换选择 |

163| `confirm:cycleMode` | Shift+Tab\* | 循环权限模式。在文件权限提示上,关闭打开的[注释字段](/docs/zh-CN/permissions#add-a-comment-when-you-answer-a-permission-prompt);没有打开的字段时,选择允许此会话其余部分操作的选项(当提示提供该选项时) |163| `confirm:cycleMode` | Shift+Tab\* | 循环权限模式。在文件权限提示上,关闭打开的 [注释字段](/docs/zh-CN/permissions#add-a-comment-when-you-answer-a-permission-prompt);没有打开的字段时,选择允许会话其余部分操作的选项(当提示提供该选项时) |

164 164 

165\*在没有 VT 模式的 Windows 上(Node \<24.2.0/\<22.17.0,Bun \<1.2.23),默认为 Meta+M。165\*在没有 VT 模式的 Windows 上 (Node \<24.2.0/\<22.17.0, Bun \<1.2.23),默认为 Meta+M。

166 166 

167在 v2.1.257 之前,`confirm:toggleExplanation` 操作(默认绑定到 `Ctrl+E`)在 Bash 和 PowerShell 权限提示上显示模型生成的命令说明。167在 v2.1.257 之前,`confirm:toggleExplanation` 操作绑定到默认的 `Ctrl+E`,在 Bash 和 PowerShell 权限提示上显示模型生成的命令说明。

168 

169对话框使用 `confirm:yes` 和 `confirm:no` 来接受和取消,即使它们不提出是或否的问题。如果您在此上下文中绑定裸字母(例如 `y` 或 `n`),该字母也会作用于从不将其显示为键的对话框。显示 `y` 和 `n` 作为其键的对话框会自己读取这些字母,不需要绑定。

170 

171此示例将 `y` 绑定到 `confirm:yes`,将 `n` 绑定到 `confirm:no`:

172 

173```json theme={null}

174{

175 "bindings": [

176 {

177 "context": "Confirmation",

178 "bindings": {

179 "y": "confirm:yes",

180 "n": "confirm:no"

181 }

182 }

183 ]

184}

185```

186 

187在 v2.1.280 之前,`y` 也默认绑定到 `confirm:yes`,`n` 绑定到 `confirm:no`。如果您在 v2.1.280 之前使用 `/keybindings` 创建了 `keybindings.json`,该文件会列出两个绑定,它们会保持有效,直到您删除这两行。

168 188 

169<h3 id="permission-actions">189<h3 id="permission-actions">

170 权限操作190 Permission 操作

171</h3>191</h3>

172 192 

173在 `Confirmation` 上下文中可用的权限对话框操作:193在 `Confirmation` 上下文中可用的权限对话框操作:

174 194 

175| 操作 | 默认 | 描述 |195| 操作 | 默认 | 描述 |

176| :----------------------- | :---- | :-------------------------------------------------------- |196| :----------------------- | :---- | :-------------------------------------------------------- |

177| `permission:toggleDebug` | (未绑定) | 切换权限调试信息。之前的 Ctrl+D 默认值在 v2.1.146 中被移除,因为它与 `app:exit` 冲突 |197| `permission:toggleDebug` | (未绑定) | 切换权限调试信息。之前的 Ctrl+D 默认值在 v2.1.146 中被移除,因为它与 `app:exit` 冲突 |

178 198 

179<h3 id="transcript-actions">199<h3 id="transcript-actions">

180 记录操作200 Transcript 操作

181</h3>201</h3>

182 202 

183在 `Transcript` 上下文中可用的操作:203在 `Transcript` 上下文中可用的操作:


185| 操作 | 默认 | 描述 |205| 操作 | 默认 | 描述 |

186| :------------------------- | :---------------- | :------- |206| :------------------------- | :---------------- | :------- |

187| `transcript:toggleShowAll` | Ctrl+E | 切换显示所有内容 |207| `transcript:toggleShowAll` | Ctrl+E | 切换显示所有内容 |

188| `transcript:exit` | q, Ctrl+C, Escape | 退出记录查看 |208| `transcript:exit` | q, Ctrl+C, Escape | 退出记录视图 |

189 209 

190`transcript:toggleShowAll` 仅在经典渲染器中应用;在[全屏渲染](/docs/zh-CN/fullscreen)中,记录查看器不提供显示全部切换。210`transcript:toggleShowAll` 仅在经典渲染器中应用;在 [全屏渲染](/docs/zh-CN/fullscreen) 中,记录查看器不提供显示全部切换。

191 211 

192<h3 id="history-search-actions">212<h3 id="history-search-actions">

193 历史搜索操作213 History search 操作

194</h3>214</h3>

195 215 

196在 `HistorySearch` 上下文中可用的操作:216在 `HistorySearch` 上下文中可用的操作:


203| `historySearch:execute` | Enter | 执行选定的命令 |223| `historySearch:execute` | Enter | 执行选定的命令 |

204| `historySearch:cycleScope` | Ctrl+S | 循环范围:会话、项目、任何地方 |224| `historySearch:cycleScope` | Ctrl+S | 循环范围:会话、项目、任何地方 |

205 225 

206`historySearch:next`、`historySearch:accept`、`historySearch:cancel` 和 `historySearch:execute` 默认值适用于经典渲染器中的内联历史搜索,它始终搜索来自所有项目的提示。`historySearch:cycleScope` 仅在[全屏渲染](/docs/zh-CN/fullscreen)中生效,其中 `Ctrl+R` 打开搜索对话框,`Ctrl+S` 循环其范围。对话框的其他键是固定的,无法重新绑定:`Enter` 或 `Tab` 将突出显示的匹配项放在提示输入中,`Esc` 取消。226`historySearch:next`、`historySearch:accept`、`historySearch:cancel` 和 `historySearch:execute` 默认值适用于经典渲染器中的内联历史搜索,它始终搜索来自所有项目的提示。`historySearch:cycleScope` 仅在 [全屏渲染](/docs/zh-CN/fullscreen) 中生效,其中 `Ctrl+R` 打开搜索对话框,`Ctrl+S` 循环其范围。对话框的其他键是固定的,无法重新绑定:`Enter` 或 `Tab` 将突出显示的匹配项放在提示输入中,`Esc` 取消。

207 227 

208<h3 id="task-actions">228<h3 id="task-actions">

209 任务操作229 Task 操作

210</h3>230</h3>

211 231 

212在 `Task` 上下文中可用的操作:232在 `Task` 上下文中可用的操作:

213 233 

214| 操作 | 默认 | 描述 |234| 操作 | 默认 | 描述 |

215| :---------------- | :-------------------- | :----------------------------------- |235| :---------------- | :-------------------- | :--------------------------------- |

216| `task:background` | Ctrl+B, Ctrl+X Ctrl+B | 后台当前任务。Ctrl+X Ctrl+B 组合键避免 tmux 前缀冲突 |236| `task:background` | Ctrl+B, Ctrl+X Ctrl+B | 后台当前任务。Ctrl+X Ctrl+B 弦避免 tmux 前缀冲突 |

217 237 

218<h3 id="theme-actions">238<h3 id="theme-actions">

219 主题操作239 Theme 操作

220</h3>240</h3>

221 241 

222在 `ThemePicker` 上下文中可用的操作:242在 `ThemePicker` 上下文中可用的操作:


226| `theme:toggleSyntaxHighlighting` | Ctrl+T | 切换语法高亮 |246| `theme:toggleSyntaxHighlighting` | Ctrl+T | 切换语法高亮 |

227 247 

228<h3 id="help-actions">248<h3 id="help-actions">

229 帮助操作249 Help 操作

230</h3>250</h3>

231 251 

232在 `Help` 上下文中可用的操作:252在 `Help` 上下文中可用的操作:


243 263 

244| 操作 | 默认 | 描述 |264| 操作 | 默认 | 描述 |

245| :-------------- | :-------------- | :----- |265| :-------------- | :-------------- | :----- |

246| `tabs:next` | Tab, Right | 下一个选项卡 |266| `tabs:next` | Tab, Right | 下一个标签页 |

247| `tabs:previous` | Shift+Tab, Left | 上一个选项卡 |267| `tabs:previous` | Shift+Tab, Left | 上一个标签页 |

248 268 

249<h3 id="attachments-actions">269<h3 id="attachments-actions">

250 附件操作270 Attachments 操作

251</h3>271</h3>

252 272 

253在 `Attachments` 上下文中可用的操作:273在 `Attachments` 上下文中可用的操作:


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

257| `attachments:next` | Right | 下一个附件 |277| `attachments:next` | Right | 下一个附件 |

258| `attachments:previous` | Left | 上一个附件 |278| `attachments:previous` | Left | 上一个附件 |

259| `attachments:remove` | Backspace, Delete | 删除选定的附件 |279| `attachments:remove` | Backspace, Delete | 移除选定的附件 |

260| `attachments:exit` | Down, Escape | 退出附件导航 |280| `attachments:exit` | Down, Escape | 退出附件导航 |

261 281 

262<h3 id="footer-actions">282<h3 id="footer-actions">

263 页脚操作283 Footer 操作

264</h3>284</h3>

265 285 

266在 `Footer` 上下文中可用的操作:286在 `Footer` 上下文中可用的操作:

267 287 

268| 操作 | 默认 | 描述 |288| 操作 | 默认 | 描述 |

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

270| `footer:next` | Right | 下一个页脚项 |290| `footer:next` | Right | 下一个页脚项 |

271| `footer:previous` | Left | 上一个页脚项 |291| `footer:previous` | Left | 上一个页脚项 |

272| `footer:up` | Up | 在页脚中向上导航(在顶部取消选择) |292| `footer:up` | Up | 在页脚中向上导航(在顶部取消选择) |

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

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

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

276| `footer:dismiss` | Backspace, Delete | 从页脚中关闭选定的[工件](/docs/zh-CN/artifacts)链接;已发布的工件本身不受影响。在其他页脚行上,这些键无效。需要 v2.1.217 或更高版本 |296| `footer:dismiss` | Backspace, Delete | 从页脚中关闭选定的 [artifact](/docs/zh-CN/artifacts) 链接;已发布的 artifact 本身不受影响。在其他页脚行上,这些键无效。需要 v2.1.217 或更高版本 |

297 

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

299 

300`Chat` 绑定在 `Footer` 上下文未绑定的键上(例如 `Shift+Tab` 用于 `chat:cycleMode`)在选定项时继续工作。

277 301 

278<h3 id="message-selector-actions">302<h3 id="message-selector-actions">

279 消息选择器操作303 Message selector 操作

280</h3>304</h3>

281 305 

282在 `MessageSelector` 上下文中可用的操作:306在 `MessageSelector` 上下文中可用的操作:


296在 `DiffDialog` 上下文中可用的操作:320在 `DiffDialog` 上下文中可用的操作:

297 321 

298| 操作 | 默认 | 描述 |322| 操作 | 默认 | 描述 |

299| :-------------------- | :------ | :------------------------------------------------------------------------- |323| :-------------------- | :------ | :------------------------------------------------------------------------------ |

300| `diff:dismiss` | Escape | 关闭差异查看器;从详情视图返回到文件列表 |324| `diff:dismiss` | Escape | 关闭 diff 查看器;从详细视图返回到文件列表 |

301| `diff:previousSource` | Left | 上一个差异源 |325| `diff:previousSource` | Left | 上一个 diff 源 |

302| `diff:nextSource` | Right | 下一个差异源 |326| `diff:nextSource` | Right | 下一个 diff 源 |

303| `diff:previousFile` | Up, K | 文件列表中的上一个文件;在详情视图中向上滚动一行 |327| `diff:previousFile` | Up, K | 文件列表中的上一个文件;在详细视图中向上滚动一行 |

304| `diff:nextFile` | Down, J | 文件列表中的下一个文件;在详情视图中向下滚动一行 |328| `diff:nextFile` | Down, J | 文件列表中的下一个文件;在详细视图中向下滚动一行 |

305| `diff:viewDetails` | Enter | 查看差异详情 |329| `diff:viewDetails` | Enter | 查看 diff 详情 |

306| `diff:back` | (未绑定) | 在差异查看器中返回。Escape 通过 `diff:dismiss` 执行返回操作。详情视图中之前的 Left 默认值在 v2.1.203 中被移除 |330| `diff:back` | (未绑定) | 在 diff 查看器中返回。Escape 通过 `diff:dismiss` 执行返回操作。之前在详细视图中的 Left 默认值在 v2.1.203 中被移除 |

307 331 

308差异详情视图还将寻呼机风格的快捷键绑定到标准[滚动操作](#scroll-actions)。这些绑定是 `DiffDialog` 上下文的一部分,仅在详情视图中应用;[滚动操作](#scroll-actions)下列出的 `Scroll` 上下文默认值保持不变。332diff 详细视图还将寻呼机样式的键绑定到标准 [滚动操作](#scroll-actions)。这些绑定是 `DiffDialog` 上下文的一部分,仅在详细视图中应用;[滚动操作](#scroll-actions) 下列出的 `Scroll` 上下文默认值保持不变。

309 333 

310| 操作 | 默认 | 描述 |334| 操作 | 默认 | 描述 |

311| :-------------------- | :------------- | :-------- |335| :-------------------- | :------------- | :------- |

312| `scroll:pageUp` | PageUp | 向上滚动视口的一半 |336| `scroll:pageUp` | PageUp | 向上滚动半个视口 |

313| `scroll:pageDown` | PageDown | 向下滚动视口的一半 |337| `scroll:pageDown` | PageDown | 向下滚动半个视口 |

314| `scroll:fullPageUp` | Shift+Space, B | 向上滚动整个视口 |338| `scroll:fullPageUp` | Shift+Space, B | 向上滚动整个视口 |

315| `scroll:fullPageDown` | Space | 向下滚动整个视口 |339| `scroll:fullPageDown` | Space | 向下滚动整个视口 |

316| `scroll:top` | G, Home | 跳到顶部 |340| `scroll:top` | G, Home | 跳到顶部 |

317| `scroll:bottom` | Shift+G, End | 跳到底部 |341| `scroll:bottom` | Shift+G, End | 跳到底部 |

318 342 

319<h3 id="diff-panel-actions">343<h3 id="diff-panel-actions">

320 Diff 面板操作344 Diff panel 操作

321</h3>345</h3>

322 346 

323用于 `/diff` 在全屏渲染中打开的 [diff 面板](/docs/zh-CN/interactive-mode#diff-panel)的操作。`app:cycleDiffBase` 在 `DiffPanel` 上下文中,在面板打开时处于活动状态;其他的在 `Global` 中。面板需要 Claude Code v2.1.260 或更高版本。347用于 [diff 面板](/docs/zh-CN/interactive-mode#diff-panel) 的操作,`/diff` 在全屏渲染中打开。`app:cycleDiffBase` 在 `DiffPanel` 上下文中,在面板打开时处于活动状态;其他的在 `Global` 中。该面板需要 Claude Code v2.1.260 或更高版本。

324 348 

325| 操作 | 默认 | 描述 |349| 操作 | 默认 | 描述 |

326| :-------------------------- | :------------------- | :--------------------------- |350| :-------------------------- | :------------------- | :--------------------------- |

327| `app:toggleReplTab` | (未绑定) | 打开或关闭 diff 面板,与运行 `/diff` 相同 |351| `app:toggleReplTab` | (未绑定) | 打开或关闭 diff 面板,与运行 `/diff` 相同 |

328| `app:cycleDiffBase` | Ctrl+X B | 循环面板的比较基础:此会话、未提交、然后分支 |352| `app:cycleDiffBase` | Ctrl+X B | 循环面板的比较基础:此会话、未提交、然后分支 |

329| `app:diffFileListUp` | Ctrl+Up, Meta+Up | 当面板的文件列表溢出时向上滚动 |353| `app:diffFileListUp` | Ctrl+Up, Meta+Up | 当面板的文件列表溢出时向上滚动 |

330| `app:diffFileListDown` | Ctrl+Down, Meta+Down | 当面板的文件列表溢出时向下滚动 |354| `app:diffFileListDown` | Ctrl+Down, Meta+Down | 当面板的文件列表溢出时向下滚动 |

331| `app:toggleDiffNoiseFilter` | (未绑定) | 在面板中显示或隐藏测试和生成的文件 |355| `app:toggleDiffNoiseFilter` | (未绑定) | 在面板中显示或隐藏测试和生成的文件 |

332| `app:toggleDiffPreSession` | (未绑定) | 展开或折叠此会话之前的更改 |356| `app:toggleDiffPreSession` | (未绑定) | 展开或折叠此会话之前的更改 |

333 357 

334<h3 id="model-picker-actions">358<h3 id="model-picker-actions">

335 模型选择器操作359 Model picker 操作

336</h3>360</h3>

337 361 

338在 `ModelPicker` 上下文中可用的操作:362在 `ModelPicker` 上下文中可用的操作:

339 363 

340| 操作 | 默认 | 描述 |364| 操作 | 默认 | 描述 |

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

342| `modelPicker:decreaseEffort` | Left | 降低工作量级别 |366| `modelPicker:decreaseEffort` | Left | 降低努力级别 |

343| `modelPicker:increaseEffort` | Right | 提高工作量级别 |367| `modelPicker:increaseEffort` | Right | 提高努力级别 |

344| `modelPicker:thisSessionOnly` | s | 仅将突出显示的模型应用于此会话 |368| `modelPicker:thisSessionOnly` | s | 仅将突出显示的模型应用于此会话 |

345 369 

346<h3 id="effort-slider-actions">370<h3 id="effort-slider-actions">

347 工作量滑块操作371 Effort slider 操作

348</h3>372</h3>

349 373 

350在 `EffortSlider` 上下文中可用的操作,这是运行不带参数的 `/effort` 时打开的滑块。滑块的 Left、Right、Enter 和 Escape 键无法重新绑定。374在 `EffortSlider` 上下文中可用的操作,当您运行不带参数的 `/effort` 时打开的滑块。滑块的 Left、Right、Enter 和 Escape 键无法重新绑定。

351 375 

352| 操作 | 默认 | 描述 |376| 操作 | 默认 | 描述 |

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

354| `effortSlider:thisSessionOnly` | s | 仅将聚焦的[工作量级别](/docs/zh-CN/model-config#adjust-effort-level)应用于此会话。需要 v2.1.257 或更高版本 |378| `effortSlider:thisSessionOnly` | s | 仅将焦点 [努力级别](/docs/zh-CN/model-config#adjust-effort-level) 应用于此会话。需要 v2.1.257 或更高版本 |

355 379 

356<h3 id="select-actions">380<h3 id="select-actions">

357 选择操作381 Select 操作

358</h3>382</h3>

359 383 

360在 `Select` 上下文中可用的操作:384在 `Select` 上下文中可用的操作:


370| `select:accept` | Enter | 接受选择 |394| `select:accept` | Enter | 接受选择 |

371| `select:cancel` | Escape | 取消选择 |395| `select:cancel` | Escape | 取消选择 |

372 396 

373Claude Code 在 `/skills` 菜单中应用您的 `select:pageUp`、`select:pageDown`、`select:first` 和 `select:last` 绑定。在大多数其他列表中,例如 `/model` 选择器,Claude Code 使用 PageUp 和 PageDown 进行分页,无论您的绑定如何,并忽略 Home 和 End。397Claude Code 在 `/skills` 菜单中应用您的 `select:pageUp`、`select:pageDown`、`select:first` 和 `select:last` 绑定。在大多数其他列表中,例如 `/model` 选择器,您的 `select:first` 和 `select:last` 绑定适用。PageUp 和 PageDown 在这些列表中进行分页,无论您的绑定如何。

398 

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

374 400 

375<h3 id="plugin-actions">401<h3 id="plugin-actions">

376 Plugin 操作402 Plugin 操作


379在 `Plugin` 上下文中可用的操作:405在 `Plugin` 上下文中可用的操作:

380 406 

381| 操作 | 默认 | 描述 |407| 操作 | 默认 | 描述 |

382| :---------------- | :---- | :---------------------------- |408| :---------------- | :---- | :---------------------- |

383| `plugin:toggle` | Space | 切换插件选择 |409| `plugin:toggle` | Space | 切换插件选择 |

384| `plugin:install` | I | 安装选定的插件 |410| `plugin:install` | I | 安装选定的插件 |

385| `plugin:favorite` | F | 将选定的插件标记为收藏,使其在"已安装"选项卡顶部附近排序 |411| `plugin:favorite` | F | 收藏选定的插件,使其在"已安装"标签页附近排序 |

386 412 

387<h3 id="settings-actions">413<h3 id="settings-actions">

388 设置操作414 Settings 操作

389</h3>415</h3>

390 416 

391在 `Settings` 上下文中可用的操作。`select:accept` 和 `confirm:no` 操作从[选择](#select-actions)和[确认](#confirmation-actions)上下文中重用,具有特定于设置的行为:更改会在您更改时立即应用于每个设置,因此 Escape 关闭面板并保存您的更改,而不是拒绝。417在 `Settings` 上下文中可用的操作。`select:accept` 和 `confirm:no` 操作从 [Select](#select-actions) 和 [Confirmation](#confirmation-actions) 上下文重用,具有特定于设置的行为:更改在您更改时立即应用于每个设置,因此 Escape 关闭面板并保存您的更改,而不是拒绝。

392 418 

393| 操作 | 默认 | 描述 |419| 操作 | 默认 | 描述 |

394| :---------------- | :----------- | :------------- |420| :---------------- | :----------- | :------------- |

395| `settings:search` | / | 进入搜索模式 |421| `settings:search` | / | 进入搜索模式 |

396| `settings:retry` | R | 重试加载使用数据(出错时) |422| `settings:retry` | R | 在错误时重试加载使用数据 |

397| `select:accept` | Enter, Space | 更改选定的设置或打开其子菜单 |423| `select:accept` | Enter, Space | 更改选定的设置或打开其子菜单 |

398| `confirm:no` | Escape | 关闭面板。更改已保存 |424| `confirm:no` | Escape | 关闭面板。更改已保存 |

399 425 

400<h3 id="agents-actions">426<h3 id="agents-actions">

401 代理操作427 Agents 操作

402</h3>428</h3>

403 429 

404在 `Agents` 上下文中可用的操作,该上下文适用于[代理视图](/docs/zh-CN/agent-view),使用 `claude agents` 打开。需要 v2.1.257 或更高版本。430在 `Agents` 上下文中可用的操作,适用于 [agent 视图](/docs/zh-CN/agent-view),使用 `claude agents` 打开。需要 v2.1.257 或更高版本。

405 431 

406| 操作 | 默认 | 描述 |432| 操作 | 默认 | 描述 |

407| :------------------ | :----- | :---------------------------------------------------- |433| :------------------ | :----- | :----------------------------------------------------- |

408| `agents:switchView` | Ctrl+S | 在状态和目录之间切换[会话分组](/docs/zh-CN/agent-view#organize-the-list) |434| `agents:switchView` | Ctrl+S | 在状态和目录之间切换 [会话分组](/docs/zh-CN/agent-view#organize-the-list) |

409| `agents:togglePin` | Ctrl+T | [固定或取消固定](/docs/zh-CN/agent-view#organize-the-list)选定的会话 |435| `agents:togglePin` | Ctrl+T | [固定或取消固定](/docs/zh-CN/agent-view#organize-the-list) 选定的会话 |

410 436 

411当代理视图打开时,Claude Code 对 `Agents` 上下文绑定的任何键使用 `Agents` 绑定,并忽略同一键上的 `Chat` 或 `Global` 绑定。例如,在代理视图中按 Ctrl+S 会切换会话分组,而不是触发默认的 `chat:stash`。437当 agent 视图打开时,Claude Code 对 `Agents` 上下文绑定的任何键使用 `Agents` 绑定,并忽略同一键上的 `Chat` 或 `Global` 绑定。例如,在 agent 视图中按 Ctrl+S 会切换会话分组,而不是触发默认的 `chat:stash`。

412 438 

413调度输入的外部编辑器快捷键不是 `Agents` 操作。代理视图遵循 `Chat` 上下文的 `chat:externalEditor` 绑定,默认为 Ctrl+G。439调度输入的外部编辑器快捷键不是 `Agents` 操作。Agent 视图遵循 `Chat` 上下文的 `chat:externalEditor` 绑定,默认为 Ctrl+G。

414 440 

415绑定在代理视图中的单个按键上触发,因此绑定到 `chat:externalEditor` 的 Ctrl+X Ctrl+E 组合键不会在那里打开编辑器。441绑定在 agent 视图中的单个按键上触发,因此绑定到 `chat:externalEditor` 的 Ctrl+X Ctrl+E 弦不会在那里打开编辑器。

416 442 

417<h3 id="voice-actions">443<h3 id="voice-actions">

418 语音操作444 Voice 操作

419</h3>445</h3>

420 446 

421在启用[语音听写](/docs/zh-CN/voice-dictation)时,在 `Chat` 上下文中可用的操作:447当 [语音听写](/docs/zh-CN/voice-dictation) 启用时,在 `Chat` 上下文中可用的操作:

422 448 

423| 操作 | 默认 | 描述 |449| 操作 | 默认 | 描述 |

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

425| `voice:pushToTalk` | Space | 听写提示。根据 `/voice` 模式按住或点击 |451| `voice:pushToTalk` | Space | 听写提示。根据 `/voice` 模式按住或点击 |

426 452 

427<h3 id="scroll-actions">453<h3 id="scroll-actions">

428 滚动操作454 Scroll 操作

429</h3>455</h3>

430 456 

431在启用[全屏渲染](/docs/zh-CN/fullscreen)时,在 `Scroll` 上下文中可用的操作:457当 [全屏渲染](/docs/zh-CN/fullscreen) 启用时,在 `Scroll` 上下文中可用的操作:

432 458 

433| 操作 | 默认 | 描述 |459| 操作 | 默认 | 描述 |

434| :-------------------------- | :------------------- | :--------------------------------------------------- |460| :-------------------------- | :------------------- | :------------------------------------------------- |

435| `scroll:lineUp` | `wheelup` | 向上滚动一行。鼠标滚轮滚动触发此操作 |461| `scroll:lineUp` | `wheelup` | 向上滚动一行。鼠标滚轮滚动触发此操作 |

436| `scroll:lineDown` | `wheeldown` | 向下滚动一行。鼠标滚轮滚动触发此操作 |462| `scroll:lineDown` | `wheeldown` | 向下滚动一行。鼠标滚轮滚动触发此操作 |

437| `scroll:pageUp` | PageUp | 向上滚动视口高度的一半 |463| `scroll:pageUp` | PageUp | 向上滚动半个视口高度 |

438| `scroll:pageDown` | PageDown | 向下滚动视口高度的一半 |464| `scroll:pageDown` | PageDown | 向下滚动半个视口高度 |

439| `scroll:top` | Ctrl+Home | 跳到对话的开始 |465| `scroll:top` | Ctrl+Home | 跳到对话的开始 |

440| `scroll:bottom` | Ctrl+End | 跳到最新消息并重新启用自动跟随 |466| `scroll:bottom` | Ctrl+End | 跳到最新消息并重新启用自动跟随 |

441| `scroll:halfPageUp` | (未绑定) | 向上滚动视口高度的一半。与 `scroll:pageUp` 相同的行为,为 vi 风格的重新绑定提供 |467| `scroll:halfPageUp` | (未绑定) | 向上滚动半个视口高度。与 `scroll:pageUp` 相同的行为,为 vi 样式重新绑定提供 |

442| `scroll:halfPageDown` | (未绑定) | 向下滚动视口高度的一半。与 `scroll:pageDown` 相同的行为,为 vi 风格的重新绑定提供 |468| `scroll:halfPageDown` | (未绑定) | 向下滚动半个视口高度。与 `scroll:pageDown` 相同的行为,为 vi 样式重新绑定提供 |

443| `scroll:fullPageUp` | (未绑定) | 向上滚动整个视口高度 |469| `scroll:fullPageUp` | (未绑定) | 向上滚动整个视口高度 |

444| `scroll:fullPageDown` | (未绑定) | 向下滚动整个视口高度 |470| `scroll:fullPageDown` | (未绑定) | 向下滚动整个视口高度 |

445| `selection:copy` | Ctrl+Shift+C / Cmd+C | 将选定的文本复制到剪贴板 |471| `selection:copy` | Ctrl+Shift+C / Cmd+C | 将选定的文本复制到剪贴板 |

446| `selection:clear` | (未绑定) | 清除活动的文本选择。需要 v2.1.234 或更高版本 |472| `selection:clear` | (未绑定) | 清除活动的文本选择。需要 v2.1.234 或更高版本 |

447| `selection:extendLeft` | Shift+Left | 将活动选择向左扩展一列 |473| `selection:extendLeft` | Shift+Left | 将活动选择向左扩展一列 |

448| `selection:extendRight` | Shift+Right | 将活动选择向右扩展一列 |474| `selection:extendRight` | Shift+Right | 将活动选择向右扩展一列 |

449| `selection:extendUp` | Shift+Up | 将活动选择向上扩展一行。当选择到达顶部边缘时滚动视口 |475| `selection:extendUp` | Shift+Up | 将活动选择向上扩展一行。当选择到达顶部边缘时滚动视口 |

Details

255 255 

256这对于[子代理 worktree 隔离](/docs/zh-CN/worktrees#isolate-subagents-with-worktrees)特别有用。子代理是为子任务生成的并行 Claude 实例,每个在 worktree 中运行的都获得轻量级检出而不是完整树。会话中的所有 worktrees 共享相同的 `sparsePaths`,所以如果一个子代理需要 `packages/api/` 而另一个需要 `packages/web/`,列出两者。256这对于[子代理 worktree 隔离](/docs/zh-CN/worktrees#isolate-subagents-with-worktrees)特别有用。子代理是为子任务生成的并行 Claude 实例,每个在 worktree 中运行的都获得轻量级检出而不是完整树。会话中的所有 worktrees 共享相同的 `sparsePaths`,所以如果一个子代理需要 `packages/api/` 而另一个需要 `packages/web/`,列出两者。

257 257 

258在 `sparsePaths` 中列出目录,而不是单个文件。根级文件如 `package.json`、`tsconfig.base.json` 和锁文件始终与你列出的目录一起检出。根级目录不是,所以如果你想要存储库根目录的 `.claude/settings.json`、`.claude/rules/` 或 `.claude/skills/` 在 worktree 内可用,请在列表中包含 `.claude`。258在 `sparsePaths` 中列出目录,而不是单个文件。根级文件如 `package.json`、`tsconfig.base.json` 和锁文件始终与你列出的目录一起检出。根级目录不是,所以如果你想要存储库根目录的 `.claude/settings.json` 或 `.claude/rules/` 在 worktree 内可用,请在列表中包含 `.claude`。对于项目 skills、代理和命令,请参阅[worktrees 与主检出共享的内容](/docs/zh-CN/worktrees#what-worktrees-share-with-the-main-checkout)。

259 259 

260Sparse checkout 需要 git 在存在 sparse worktree 时在存储库的共享 `.git/config` 中启用 `extensions.worktreeConfig`。Claude Code 在删除最后一个 worktree 后会删除该条目,但仅当 Claude Code 添加了它时。它永远不会删除你自己设置的值。在 v2.1.207 之前,该条目在删除最后一个 worktree 后仍然存在,基于 go-git 的工具(如 `tea`)无法打开存储库,直到你运行 `git config --unset extensions.worktreeConfig`。260Sparse checkout 需要 git 在存在 sparse worktree 时在存储库的共享 `.git/config` 中启用 `extensions.worktreeConfig`。Claude Code 在删除最后一个 worktree 后会删除该条目,但仅当 Claude Code 添加了它时。它永远不会删除你自己设置的值。在 v2.1.207 之前,该条目在删除最后一个 worktree 后仍然存在,基于 go-git 的工具(如 `tea`)无法打开存储库,直到你运行 `git config --unset extensions.worktreeConfig`。

261 261 

Details

578这些是通过网关运行 Claude Code 时最常见的错误,包括网关端的原因和修复:578这些是通过网关运行 Claude Code 时最常见的错误,包括网关端的原因和修复:

579 579 

580| 错误 | 原因 | 修复 |580| 错误 | 原因 | 修复 |

581| :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |581| :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

582| 启动警告命名两个凭证源并以 `auth may not work as expected` 结尾。较旧的版本显示 `Auth conflict: Both a token (SOURCE) and an API key (SOURCE) are set` 代替。 | 网关凭证和保存的登录都处于活动状态;变量用于请求,但过时的登录可能导致意外的身份验证行为 | 取消设置变量以使用保存的登录,或运行 `/logout` 以使用网关凭证 |582| 启动警告命名两个凭证源并以 `auth may not work as expected` 结尾。较旧的版本显示 `Auth conflict: Both a token (SOURCE) and an API key (SOURCE) are set` 代替。 | 网关凭证和保存的登录都处于活动状态;变量用于请求,但过时的登录可能导致意外的身份验证行为 | 取消设置变量以使用保存的登录,或运行 `/logout` 以使用网关凭证 |

583| `401` 错误命名无效或无法识别的令牌 | 凭证不是网关颁发的,或它处于网关不读取的标头中 | 确认变量与[凭证表](#set-the-credential-variable)中的凭证类型匹配,如果凭证被撤销,请在网关处重新生成密钥 |583| `401` 错误命名无效或无法识别的令牌 | 凭证不是网关颁发的,或它处于网关不读取的标头中 | 确认变量与[凭证表](#set-the-credential-variable)中的凭证类型匹配,如果凭证被撤销,请在网关处重新生成密钥 |

584| `Your apiKeyHelper script is failing`,或在非交互模式下 stderr 上的 `apiKeyHelper failed:` | [`apiKeyHelper`](/docs/zh-CN/settings-reference#apikeyhelper) 设置中的命令未生成可用的密钥,因此请求携带占位符密钥 | 直接运行该命令以查看失败原因,如果报告会话过期,请使用您的凭证提供商重新身份验证;请参阅[错误参考](/docs/zh-CN/errors#your-apikeyhelper-script-is-failing) |584| `Your apiKeyHelper script is failing`,或在非交互模式下 stderr 上的 `apiKeyHelper failed:` | [`apiKeyHelper`](/docs/zh-CN/settings-reference#apikeyhelper) 设置中的命令未生成可用的密钥,因此请求携带占位符密钥 | 直接运行该命令以查看失败原因,如果报告会话过期,请使用您的凭证提供商重新身份验证;请参阅[错误参考](/docs/zh-CN/errors#your-apikeyhelper-script-is-failing) |


588| `400` 错误命名 `thinking` 或 `adaptive`,例如 `Input tag 'adaptive' found` | 上游模型构建不接受自适应推理,Claude Code 为 Claude 4.6 及更高版本的模型请求 | 升级网关的上游。在 Opus 4.6 和 Sonnet 4.6 上,`CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1` 代替有效。[模型配置](/docs/zh-CN/model-config)能力变量仅适用于提供商配置,例如 `CLAUDE_CODE_USE_BEDROCK` 和 `CLAUDE_CODE_USE_VERTEX`,不在 `ANTHROPIC_BASE_URL` 网关后面 |588| `400` 错误命名 `thinking` 或 `adaptive`,例如 `Input tag 'adaptive' found` | 上游模型构建不接受自适应推理,Claude Code 为 Claude 4.6 及更高版本的模型请求 | 升级网关的上游。在 Opus 4.6 和 Sonnet 4.6 上,`CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1` 代替有效。[模型配置](/docs/zh-CN/model-config)能力变量仅适用于提供商配置,例如 `CLAUDE_CODE_USE_BEDROCK` 和 `CLAUDE_CODE_USE_VERTEX`,不在 `ANTHROPIC_BASE_URL` 网关后面 |

589| `400` 错误声明网关自己的措辞中的上下文或令牌限制,例如 `ContextWindowExceededError` 或 `prompt token count of N exceeds the limit of M` | 网关强制执行比模型的本机窗口更小的上下文,并重写上游错误,因此 Claude Code 不会将其识别为[过长错误](/docs/zh-CN/errors#prompt-is-too-long),也不会自动紧凑和重试 | 运行 `/compact` 以恢复会话。要防止它,请将 `CLAUDE_CODE_AUTO_COMPACT_WINDOW` 设置为网关的限制;Claude Code 将该值限制在至少 100,000 令牌和最多模型的上下文窗口,因此您无法匹配低于 100,000 的网关限制,`/compact` 仍然是那里的恢复。还要将 `CLAUDE_CODE_MAX_OUTPUT_TOKENS` 设置为低于网关模型的输出限制 |589| `400` 错误声明网关自己的措辞中的上下文或令牌限制,例如 `ContextWindowExceededError` 或 `prompt token count of N exceeds the limit of M` | 网关强制执行比模型的本机窗口更小的上下文,并重写上游错误,因此 Claude Code 不会将其识别为[过长错误](/docs/zh-CN/errors#prompt-is-too-long),也不会自动紧凑和重试 | 运行 `/compact` 以恢复会话。要防止它,请将 `CLAUDE_CODE_AUTO_COMPACT_WINDOW` 设置为网关的限制;Claude Code 将该值限制在至少 100,000 令牌和最多模型的上下文窗口,因此您无法匹配低于 100,000 的网关限制,`/compact` 仍然是那里的恢复。还要将 `CLAUDE_CODE_MAX_OUTPUT_TOKENS` 设置为低于网关模型的输出限制 |

590| `400` 错误在每个请求上,在网关自己的措辞中拒绝工具的输入架构或其 `pattern`,在 Claude Code v2.1.265 到 v2.1.267 上 | 在这些版本的逐步推出中,[Artifact 工具](/docs/zh-CN/artifacts#availability)架构携带带有 `\p{...}` Unicode 字符类的正则表达式。Anthropic API 接受它,但检查每个工具架构的 `pattern` 的网关或上游使用其自己的正则表达式引擎拒绝整个请求 | 更新到 v2.1.268 或更高版本,它不发送正则表达式。在受影响的版本上,[关闭 artifacts](/docs/zh-CN/artifacts#disable-artifacts),这会从请求中删除工具及其架构 |590| `400` 错误在每个请求上,在网关自己的措辞中拒绝工具的输入架构或其 `pattern`,在 Claude Code v2.1.265 到 v2.1.267 上 | 在这些版本的逐步推出中,[Artifact 工具](/docs/zh-CN/artifacts#availability)架构携带带有 `\p{...}` Unicode 字符类的正则表达式。Anthropic API 接受它,但检查每个工具架构的 `pattern` 的网关或上游使用其自己的正则表达式引擎拒绝整个请求 | 更新到 v2.1.268 或更高版本,它不发送正则表达式。在受影响的版本上,[关闭 artifacts](/docs/zh-CN/artifacts#disable-artifacts),这会从请求中删除工具及其架构 |

591| `400` 错误在每个请求上,在网关自己的措辞中拒绝无法识别的工具类型,例如 `Input tag 'advisor_20260301'`,在 Claude Code v2.1.275 上 | 在该版本的逐步推出中,即使关闭了 advisor,请求也会携带 [advisor 工具](/docs/zh-CN/advisor)条目。Anthropic API 接受它,但验证工具类型的网关或上游拒绝整个请求;一个[按原样转发请求正文字段](/docs/zh-CN/llm-gateway-protocol#forward-as-open-lists)的网关不受影响地通过它。该条目是一个不携带任何对话内容的声明 | 更新到 v2.1.276 或更高版本,除非您打开 advisor,否则它不会在 `ANTHROPIC_BASE_URL` 网关后面发送该条目。在 v2.1.275 上,设置 [`CLAUDE_CODE_DISABLE_ADVISOR_TOOL=1`](/docs/zh-CN/env-vars),这会从请求中删除该条目 |

591| 模型从 `/model` 选择器中缺失 | 网关模型名称不在 Claude Code 的内置列表中,或 Claude Code 显示替换内置选项的 [`modelPicker`](/docs/zh-CN/settings-reference#modelpicker) 阵容 | 启用[网关模型发现](#add-gateway-models-to-the-model-picker)或使用[模型配置](/docs/zh-CN/model-config)变量添加名称。如果 Claude Code 显示替换 `modelPicker` 阵容,请将网关模型添加到其中,或在托管设置提供时要求您的管理员添加它们 |592| 模型从 `/model` 选择器中缺失 | 网关模型名称不在 Claude Code 的内置列表中,或 Claude Code 显示替换内置选项的 [`modelPicker`](/docs/zh-CN/settings-reference#modelpicker) 阵容 | 启用[网关模型发现](#add-gateway-models-to-the-model-picker)或使用[模型配置](/docs/zh-CN/model-config)变量添加名称。如果 Claude Code 显示替换 `modelPicker` 阵容,请将网关模型添加到其中,或在托管设置提供时要求您的管理员添加它们 |

592| `/fast` 报告 `Fast mode unavailable due to network connectivity issues`,而推理请求有效 | [快速模式](/docs/zh-CN/fast-mode)可用性检查直接转到 `api.anthropic.com`,不遵循 `ANTHROPIC_BASE_URL`,因此阻止的直接出口会导致检查失败。当检查呈现来自 `ANTHROPIC_API_KEY` 或 `apiKeyHelper` 的网关颁发的密钥且 Anthropic 拒绝它时,在开放网络上也会出现相同的消息 | 如果出口被阻止,请将 `api.anthropic.com` 列入白名单,或设置跳过变量;对于被拒绝的网关密钥,只有跳过变量有帮助。请参阅[在代理和 LLM 网关后面使用快速模式](/docs/zh-CN/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) |593| `/fast` 报告 `Fast mode unavailable due to network connectivity issues`,而推理请求有效 | [快速模式](/docs/zh-CN/fast-mode)可用性检查直接转到 `api.anthropic.com`,不遵循 `ANTHROPIC_BASE_URL`,因此阻止的直接出口会导致检查失败。当检查呈现来自 `ANTHROPIC_API_KEY` 或 `apiKeyHelper` 的网关颁发的密钥且 Anthropic 拒绝它时,在开放网络上也会出现相同的消息 | 如果出口被阻止,请将 `api.anthropic.com` 列入白名单,或设置跳过变量;对于被拒绝的网关密钥,只有跳过变量有帮助。请参阅[在代理和 LLM 网关后面使用快速模式](/docs/zh-CN/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) |

593| `/fast` 在使用 `ANTHROPIC_AUTH_TOKEN` 进行身份验证的会话中报告 `Fast mode has been disabled by your organization`,即使组织已启用快速模式 | 可用性检查需要 claude.ai 登录或 Anthropic API 密钥;仅使用持有者令牌,Claude Code 会将快速模式视为已禁用,而不发送检查 | 设置 `CLAUDE_CODE_SKIP_FAST_MODE_ORG_CHECK=1`;请参阅[在代理和 LLM 网关后面使用快速模式](/docs/zh-CN/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) |594| `/fast` 在使用 `ANTHROPIC_AUTH_TOKEN` 进行身份验证的会话中报告 `Fast mode has been disabled by your organization`,即使组织已启用快速模式 | 可用性检查需要 claude.ai 登录或 Anthropic API 密钥;仅使用持有者令牌,Claude Code 会将快速模式视为已禁用,而不发送检查 | 设置 `CLAUDE_CODE_SKIP_FAST_MODE_ORG_CHECK=1`;请参阅[在代理和 LLM 网关后面使用快速模式](/docs/zh-CN/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) |

Details

144 144 

145如果您的开发者设置了 `ANTHROPIC_CUSTOM_HEADERS`,这些请求头也会出现在请求上。145如果您的开发者设置了 `ANTHROPIC_CUSTOM_HEADERS`,这些请求头也会出现在请求上。

146 146 

147<h3 id="gateway-hint-headers">

148 Gateway 提示请求头

149</h3>

150 

151Claude Code 还可以发送路由提示:gateway 或路由器可以用来调度、缓存或归属请求的每个请求事实。需要 Claude Code v2.1.273 或更高版本。

152 

153请求是否携带它们取决于 Claude Code 将其发送到何处:

154 

155* 直接连接到 Anthropic API:默认发送

156* 自定义基础 URL:默认关闭,因为拒绝未知请求头的代理会导致请求失败。要接收它们,请为您的开发者设置 [`CLAUDE_CODE_GATEWAY_HINT_HEADERS=1`](/docs/zh-CN/env-vars),例如在[托管设置](/docs/zh-CN/managed-settings)的 `env` 块中

157* 任何其他后端,包括 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 和 AWS 上的 Claude Platform:仅当设置 `CLAUDE_CODE_GATEWAY_HINT_HEADERS=1` 时发送

158 

159将 `CLAUDE_CODE_GATEWAY_HINT_HEADERS` 设置为 `0` 会在每个连接上停止这些请求头。

160 

161这些请求头仅携带下面行列出的内容:固定词汇、工具名称和持续时间,从不包含提示文本或文件内容。每个值都是可打印的 ASCII。

162 

163| 请求头 | 描述 |

164| :---------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

165| `x-claude-code-request-class` | 这是什么类型的请求:`main` 表示主对话的一个回合,`subagent` 表示[子代理](/docs/zh-CN/sub-agents)的一个回合,`workflow` 表示在工作流内运行的代理,`compaction` 表示压缩对话的总结请求,或 `auxiliary` 表示会话标题、分类器和摘要等辅助请求。在每个请求上发送 |

166| `x-claude-code-agent-type` | 发出请求的子代理的类型:内置代理类型名称,如 `Explore`、`Plan` 或 `general-purpose`,或 `custom` 表示用户定义的代理,`teammate` 表示在主导的进程中运行的[代理团队](/docs/zh-CN/agent-teams)成员,或 `fork` 表示[分叉](/docs/zh-CN/sub-agents#fork-the-current-conversation)。仅在子代理自己的回合上存在;子代理的压缩或辅助请求保留代理 ID 但不携带类型。用户选择的代理名称永远不会被发送 |

167| `x-claude-code-compaction` | 在[压缩](/docs/zh-CN/prompt-caching#compacting-the-conversation)期间总结对话的请求上存在。该值说明触发了什么:`auto` 表示上下文窗口接近容量,`manual` 表示 `/compact`,或 `reactive` 表示 API 拒绝请求过长。在所有其他请求上不存在 |

168| `x-claude-code-context-compacted` | 在压缩后的第一个主对话请求上出现一次,值与 `x-claude-code-compaction` 相同。此请求之前的对话前缀不再使用,因此可以删除以其为键的缓存 |

169| `x-claude-code-prev-tool-durations` | 此请求携带的结果的工具调用的测量运行时间,格式为 `<name>=<ms>;<name>=<ms>`,例如 `Bash=742;Read=9`。在同一对话的下一个请求中发送,来自主会话或子代理,在一批工具调用之后 |

170 

171在解析 `x-claude-code-prev-tool-durations` 之前,检查 Claude Code 如何构建该值以及它遗漏了什么:

172 

173* 条目:每个运行的工具调用一个,按其结果被收集的顺序,以整毫秒为单位

174* 上限:Claude Code 最多发送 32 个条目和 4 KB,保留第一个条目

175* 编码:工具名称是百分比编码的,涵盖 `%`、`;`、`=`、逗号、空格和任何可打印 ASCII 之外的字符

176* 解析:在 `;` 上分割,然后在 `=` 上分割,并解码每个名称

177* 缺失:压缩调用、辅助请求和新提示的第一个请求不携带它。不要将缺失的请求头读作运行无工具的回合

178* 时间:每个时间都排除权限提示和 hooks,并行工具调用各自报告自己的时间,因此条目不会加起来等于请求之间的间隔

179 

147<h3 id="forward-as-open-lists">180<h3 id="forward-as-open-lists">

148 作为开放列表转发181 作为开放列表转发

149</h3>182</h3>


221 254 

222* 当上游拒绝 `thinking` 字段、中途对话系统消息或这些消息之一上的 `cache_control` 标记时,Claude Code 会重试请求并为对话的其余部分禁用被拒绝的功能255* 当上游拒绝 `thinking` 字段、中途对话系统消息或这些消息之一上的 `cache_control` 标记时,Claude Code 会重试请求并为对话的其余部分禁用被拒绝的功能

223* 当上游拒绝[思考签名](https://platform.claude.com/docs/en/build-with-claude/extended-thinking)时,包括带有 `400` 的拒绝,其消息说该块被 `bound to a different conversation`,Claude Code 会从请求中删除早期思考块,重试,并将其排除在每个后续请求之外。新响应仍然包括思考256* 当上游拒绝[思考签名](https://platform.claude.com/docs/en/build-with-claude/extended-thinking)时,包括带有 `400` 的拒绝,其消息说该块被 `bound to a different conversation`,Claude Code 会从请求中删除早期思考块,重试,并将其排除在每个后续请求之外。新响应仍然包括思考

257* 当 gateway 或其上游将[顾问工具](/docs/zh-CN/advisor)条目在 `tools` 中拒绝为无法识别的工具类型时,Claude Code 会重试一次请求,不包含该条目及其 `anthropic-beta` 值。对该基础 URL 的后续请求会将顾问排除在外,直到 Claude Code 退出,在该时间内 `/advisor` 对开发者不可用。Claude Code 通过 `400` 或 `422` 响应识别此拒绝,其消息在 `Input tag` 之后命名工具类型,例如 `Input tag 'advisor_20260301'`。在 v2.1.280 之前,Claude Code 没有重试此拒绝

224* Claude Code 不重试上下文管理或工具架构字段拒绝,因此这些 `400` 错误到达开发者258* Claude Code 不重试上下文管理或工具架构字段拒绝,因此这些 `400` 错误到达开发者

225 259 

226`bound to a different conversation` 拒绝来自 API 的[保留思考](https://platform.claude.com/docs/en/build-with-claude/preserved-thinking)检查,当 `system`、`tools` 或早期 `messages` 内容与产生思考的请求不同时,该检查失败。重写任何该内容的 gateway 可能会导致拒绝本身;[库、代理和网关](https://platform.claude.com/docs/en/build-with-claude/preserved-thinking#libraries-proxies-gateways)涵盖了要原封不动地传递的内容。260`bound to a different conversation` 拒绝来自 API 的[保留思考](https://platform.claude.com/docs/en/build-with-claude/preserved-thinking)检查,当 `system`、`tools` 或早期 `messages` 内容与产生思考的请求不同时,该检查失败。重写任何该内容的 gateway 可能会导致拒绝本身;[库、代理和网关](https://platform.claude.com/docs/en/build-with-claude/preserved-thinking#libraries-proxies-gateways)涵盖了要原封不动地传递的内容。

Details

184| `ANTHROPIC_BASE_URL` | 将 Claude Code 的 API 请求发送到网关而不是 `api.anthropic.com` | 总是 |184| `ANTHROPIC_BASE_URL` | 将 Claude Code 的 API 请求发送到网关而不是 `api.anthropic.com` | 总是 |

185| `apiKeyHelper`,或 `ANTHROPIC_AUTH_TOKEN` 或 `ANTHROPIC_API_KEY` 中的凭证 | 对网关的每个请求进行身份验证。助手运行命令来获取密钥;变量保存静态密钥,分别作为 `Authorization: Bearer` 和 `x-api-key` 发送 | 总是;三个中的一个 |185| `apiKeyHelper`,或 `ANTHROPIC_AUTH_TOKEN` 或 `ANTHROPIC_API_KEY` 中的凭证 | 对网关的每个请求进行身份验证。助手运行命令来获取密钥;变量保存静态密钥,分别作为 `Authorization: Bearer` 和 `x-api-key` 发送 | 总是;三个中的一个 |

186| `ANTHROPIC_CUSTOM_HEADERS` | 向每个 API 请求添加额外的 HTTP 标头 | 您的网关在每个请求上需要租户或路由标头 |186| `ANTHROPIC_CUSTOM_HEADERS` | 向每个 API 请求添加额外的 HTTP 标头 | 您的网关在每个请求上需要租户或路由标头 |

187| `CLAUDE_CODE_GATEWAY_HINT_HEADERS` | 发送[网关提示标头](/docs/zh-CN/llm-gateway-protocol#gateway-hint-headers),它们为网关处的路由和调度决策对每个请求进行分类。需要 Claude Code v2.1.273 或更高版本 | 您的网关读取提示标头 |

187| `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY` | 在启动时查询网关的 `/v1/models` 并将返回的名称添加到 `/model` 选择器 | 您的网关提供 `/v1/models` 并且您希望开发者的选择器从中填充 |188| `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY` | 在启动时查询网关的 `/v1/models` 并将返回的名称添加到 `/model` 选择器 | 您的网关提供 `/v1/models` 并且您希望开发者的选择器从中填充 |

188| `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` | 停止 Claude Code 发送预发布功能标头和正文字段。[禁用预发布功能](/docs/zh-CN/llm-gateway-protocol#disable-pre-release-capabilities)涵盖了确切的范围 | 您的网关转发到拒绝 beta 字段的 Amazon Bedrock 或 Google Cloud 的 Agent Platform 上游。请参阅[网关要求](#gateway-requirements) |189| `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` | 停止 Claude Code 发送预发布功能标头和正文字段。[禁用预发布功能](/docs/zh-CN/llm-gateway-protocol#disable-pre-release-capabilities)涵盖了确切的范围 | 您的网关转发到拒绝 beta 字段的 Amazon Bedrock 或 Google Cloud 的 Agent Platform 上游。请参阅[网关要求](#gateway-requirements) |

189| `CLAUDE_CODE_SKIP_FAST_MODE_NETWORK_ERRORS` 或 `CLAUDE_CODE_SKIP_FAST_MODE_ORG_CHECK` | 当其可用性检查(直接调用 `api.anthropic.com` 而不是遵循 `ANTHROPIC_BASE_URL`)失败、被拦截或因缺少 Anthropic 凭证而被跳过时,恢复[快速模式](/docs/zh-CN/fast-mode) | 您的组织使用快速模式,开发者仅使用 `ANTHROPIC_AUTH_TOKEN` 进行身份验证,在 `ANTHROPIC_API_KEY` 中使用网关颁发的密钥或来自 `apiKeyHelper`,或您的网络阻止或拦截对 `api.anthropic.com` 的直接请求;[在代理和 LLM 网关后面使用快速模式](/docs/zh-CN/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways)涵盖了哪两个变量中的哪一个与您的配置匹配 |190| `CLAUDE_CODE_SKIP_FAST_MODE_NETWORK_ERRORS` 或 `CLAUDE_CODE_SKIP_FAST_MODE_ORG_CHECK` | 当其可用性检查(直接调用 `api.anthropic.com` 而不是遵循 `ANTHROPIC_BASE_URL`)失败、被拦截或因缺少 Anthropic 凭证而被跳过时,恢复[快速模式](/docs/zh-CN/fast-mode) | 您的组织使用快速模式,开发者仅使用 `ANTHROPIC_AUTH_TOKEN` 进行身份验证,在 `ANTHROPIC_API_KEY` 中使用网关颁发的密钥或来自 `apiKeyHelper`,或您的网络阻止或拦截对 `api.anthropic.com` 的直接请求;[在代理和 LLM 网关后面使用快速模式](/docs/zh-CN/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways)涵盖了哪两个变量中的哪一个与您的配置匹配 |

Details

366| `allowedHttpHookUrls` | Claude Code 强制执行空的[允许列表](/docs/zh-CN/settings-reference#allowedhttphookurls),直到您修复该值,因此 HTTP hook 仅在另一个设置文件列出其 URL 时运行。如果只有单个条目无效,Claude Code 会剥离该条目并强制执行其余的。 |366| `allowedHttpHookUrls` | Claude Code 强制执行空的[允许列表](/docs/zh-CN/settings-reference#allowedhttphookurls),直到您修复该值,因此 HTTP hook 仅在另一个设置文件列出其 URL 时运行。如果只有单个条目无效,Claude Code 会剥离该条目并强制执行其余的。 |

367| `httpHookAllowedEnvVars` | Claude Code 强制执行空的[允许列表](/docs/zh-CN/settings-reference#httphookallowedenvvars),直到您修复该值,因此仅当另一个设置文件命名标头变量时才会插值。如果只有单个条目无效,Claude Code 会剥离该条目并强制执行其余的。 |367| `httpHookAllowedEnvVars` | Claude Code 强制执行空的[允许列表](/docs/zh-CN/settings-reference#httphookallowedenvvars),直到您修复该值,因此仅当另一个设置文件命名标头变量时才会插值。如果只有单个条目无效,Claude Code 会剥离该条目并强制执行其余的。 |

368| `allowedChannelPlugins` | Claude Code 强制执行空的允许列表,直到您修复该值,因此传递给 `--channels` 的任何通道插件都不被允许。如果只有单个条目无效,它会剥离该条目并强制执行其余的。 |368| `allowedChannelPlugins` | Claude Code 强制执行空的允许列表,直到您修复该值,因此传递给 `--channels` 的任何通道插件都不被允许。如果只有单个条目无效,它会剥离该条目并强制执行其余的。 |

369| `strictKnownMarketplaces` | 强制执行为空的允许列表,直到修复该值,因此不允许任何[市场源](/docs/zh-CN/plugin-marketplaces#managed-marketplace-restrictions)。无效或无法强制执行的单个条目(例如无法编译的 `hostPattern` 正则表达式)被剥离,有效子集被强制执行。 |

369| `allowManagedHooksOnly` | 视为 `true`,直到修复:[hook 限制](/docs/zh-CN/settings-reference#allowmanagedhooksonly)适用,除非 `disableCommandPluginSources` 明确为 `false`,否则命令源插件被禁用。 |370| `allowManagedHooksOnly` | 视为 `true`,直到修复:[hook 限制](/docs/zh-CN/settings-reference#allowmanagedhooksonly)适用,除非 `disableCommandPluginSources` 明确为 `false`,否则命令源插件被禁用。 |

370| `allowManagedMcpServersOnly` | 视为 `true`。 |371| `allowManagedMcpServersOnly` | 视为 `true`。 |

371| `disableCommandPluginSources` | 视为 `true`,因此命令源插件保持禁用,直到修复该值。 |372| `disableCommandPluginSources` | 视为 `true`,因此命令源插件保持禁用,直到修复该值。 |

373| `disableSideloadFlags` | 视为 `true`,直到修复该值,具有为 [`disableSideloadFlags`](/docs/zh-CN/settings-reference#disablesideloadflags) 列出的效果。 |

372| `availableModels` | 强制执行为空的允许列表,直到修复,因此只有默认模型可用;非字符串条目被剥离,有效子集被强制执行。 |374| `availableModels` | 强制执行为空的允许列表,直到修复,因此只有默认模型可用;非字符串条目被剥离,有效子集被强制执行。 |

373| `enforceAvailableModels` | 视为 `true`。 |375| `enforceAvailableModels` | 视为 `true`。 |

376| `syncClaudeAiPlugins` | 视为 `false`,因此[claude.ai 插件](/docs/zh-CN/settings-reference#syncclaudeaiplugins)的同步关闭,直到修复该值。 |

374| `forceLoginOrgUUID` | 在修复该值之前,不允许任何组织登录。 |377| `forceLoginOrgUUID` | 在修复该值之前,不允许任何组织登录。 |

375| `gatewayInternalNetworks` | 当无效值来自机器上最高的托管源时,`/login` 拒绝该机器上的每个新[云网关](/docs/zh-CN/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own)登录,直到修复该值。 |378| `gatewayInternalNetworks` | 当无效值来自机器上最高的托管源时,`/login` 拒绝该机器上的每个新[云网关](/docs/zh-CN/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own)登录,直到修复该值。 |

376| `crossSessionInbound` | 视为 `refuse`,最严格的值,因此入站[跨会话消息](/docs/zh-CN/cross-session-messaging#control-inbound-messages)被拒绝,直到修复该值。开发人员看到[警告](/docs/zh-CN/errors#crosssessioninbound-must-be-one-of-accept-hold-refuse)。 |379| `crossSessionInbound` | 视为 `refuse`,最严格的值,因此入站[跨会话消息](/docs/zh-CN/cross-session-messaging#control-inbound-messages)被拒绝,直到修复该值。开发人员看到[警告](/docs/zh-CN/errors#crosssessioninbound-must-be-one-of-accept-hold-refuse)。 |

377| `deniedMcpServers` | 单个无效条目被剥离,有效子集被强制执行。完全无效的值被丢弃并带有警告,因为拒绝每个服务器会阻止策略从未命名的服务器。 |380| `deniedMcpServers` | 单个无效条目被剥离,有效子集被强制执行。完全无效的值被丢弃并带有警告,因为拒绝每个服务器会阻止策略从未命名的服务器。 |

381| `blockedMarketplaces` | 单个无效条目被剥离,有效子集被强制执行。解析但永远无法匹配的条目(例如无法编译的 `hostPattern` 正则表达式)被保留并带有警告。在修复之前它不会阻止任何内容,但[市场限制](/docs/zh-CN/plugin-marketplaces#managed-marketplace-restrictions)保持活跃。完全无效的值被丢弃并带有警告,因为阻止每个市场会阻止策略从未命名的源。 |

378| `sandbox.credentials` | 可恢复的无效条目降级为 `mode: "deny"` 并带有警告;不可恢复的条目被剥离;有效条目保持强制执行。请参阅[托管设置中的无效凭据条目](/docs/zh-CN/settings-reference#invalid-credential-entries-in-managed-settings) |382| `sandbox.credentials` | 可恢复的无效条目降级为 `mode: "deny"` 并带有警告;不可恢复的条目被剥离;有效条目保持强制执行。请参阅[托管设置中的无效凭据条目](/docs/zh-CN/settings-reference#invalid-credential-entries-in-managed-settings) |

379 383 

380`allowedHttpHookUrls` 和 `httpHookAllowedEnvVars` 跨设置文件合并,因此您的用户、项目或本地设置中的条目在托管列表为空时仍然适用。这两个密钥和 `allowedChannelPlugins` 的回退需要 Claude Code v2.1.267 或更高版本;早期版本在其值或任何条目无效时整体丢弃该密钥。384`allowedHttpHookUrls` 和 `httpHookAllowedEnvVars` 跨设置文件合并,因此您的用户、项目或本地设置中的条目在托管列表为空时仍然适用。

385 

386这两个密钥和 `allowedChannelPlugins` 的回退需要 Claude Code v2.1.267 或更高版本;早期版本在其值或任何条目无效时整体丢弃该密钥。`strictKnownMarketplaces`、`blockedMarketplaces` 和 `disableSideloadFlags` 的回退需要 Claude Code v2.1.277 或更高版本;早期版本在其值或任何条目无效时整体丢弃该密钥。

381 387 

382`requiredMinimumVersion` 和 `requiredMaximumVersion` 按设计失败开放:无效值被丢弃而不是强制执行。388`requiredMinimumVersion` 和 `requiredMaximumVersion` 按设计失败开放:无效值被丢弃而不是强制执行。

383 389 

memory.md +24 −7

Details

82<Tip>82<Tip>

83 运行 `/init` 自动生成起始 CLAUDE.md。Claude 分析您的代码库并创建一个包含构建命令、测试指令和它发现的项目约定的文件。如果 CLAUDE.md 已存在,`/init` 会建议改进而不是覆盖它。从那里进行细化,添加 Claude 不会自己发现的指令。83 运行 `/init` 自动生成起始 CLAUDE.md。Claude 分析您的代码库并创建一个包含构建命令、测试指令和它发现的项目约定的文件。如果 CLAUDE.md 已存在,`/init` 会建议改进而不是覆盖它。从那里进行细化,添加 Claude 不会自己发现的指令。

84 84 

85 设置 `CLAUDE_CODE_NEW_INIT=1` 以启用交互式多阶段流程。`/init` 询问要设置哪些工件:CLAUDE.md 文件、skills 和 hooks。然后它使用子代理探索您的代码库,通过后续问题填补空白,并在写入任何文件之前呈现可审查的提案。85 为了启用交互式多阶段流程,请在运行 `/init` 之前将 `CLAUDE_CODE_NEW_INIT` 环境变量设置为 `1`。在您的 shell 中或在设置文件的 `env` 块中设置它,如 [设置环境变量](/docs/zh-CN/env-vars#set-environment-variables) 中所示。设置后,`/init` 会询问要设置哪些工件:CLAUDE.md 文件、skills 和 hooks。然后它使用子代理探索您的代码库,通过后续问题填补空白,并在写入任何文件之前呈现可审查的提案。该变量仅改变 `/init` 的运行方式,因此您可以保持它的设置。

86</Tip>86</Tip>

87 87 

88<h3 id="write-effective-instructions">88<h3 id="write-effective-instructions">


165CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD=1 claude --add-dir ../shared-config165CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD=1 claude --add-dir ../shared-config

166```166```

167 167 

168内联形式为该单次启动在 Bash 或 Zsh 中设置变量。要为每个会话保持它,请将其添加到 `~/.claude/settings.json` 中的 `env` 块,如 [设置环境变量](/docs/zh-CN/env-vars#set-environment-variables) 中所示。

169 

168这从其他目录加载 `CLAUDE.md`、`.claude/CLAUDE.md`、`.claude/rules/*.md` 和 `CLAUDE.local.md`。如果您从 [`--setting-sources`](/docs/zh-CN/cli-reference) 中排除 `local`,则跳过 `CLAUDE.local.md`。170这从其他目录加载 `CLAUDE.md`、`.claude/CLAUDE.md`、`.claude/rules/*.md` 和 `CLAUDE.local.md`。如果您从 [`--setting-sources`](/docs/zh-CN/cli-reference) 中排除 `local`,则跳过 `CLAUDE.local.md`。

169 171 

170<h3 id="organize-rules-with-claude/rules/">172<h3 id="organize-rules-with-claude/rules/">


244 246 

245Glob 语法将 `[` 视为括号表达式的开始,例如 `[abc]`。具有无法读作括号表达式的 `[` 的模式,例如 `photos [2024/**`,是无效的:它不匹配任何内容,规则的其他模式继续工作。要匹配文件名中的字面 `[`,请将其转义为 `photos \[2024/**`。在 v2.1.207 之前,一个无效模式使 Read 工具对规则被评估的每个文件失败,而不是不匹配任何内容。247Glob 语法将 `[` 视为括号表达式的开始,例如 `[abc]`。具有无法读作括号表达式的 `[` 的模式,例如 `photos [2024/**`,是无效的:它不匹配任何内容,规则的其他模式继续工作。要匹配文件名中的字面 `[`,请将其转义为 `photos \[2024/**`。在 v2.1.207 之前,一个无效模式使 Read 工具对规则被评估的每个文件失败,而不是不匹配任何内容。

246 248 

249<h4 id="rules-frontmatter-reference">

250 规则 frontmatter 参考

251</h4>

252 

253使用 YAML [frontmatter](/docs/zh-CN/glossary#frontmatter) 在文件顶部的 `---` 标记之间配置规则。`paths` 是 Claude Code 从规则中读取的唯一字段;任何其他字段都被忽略而不出现错误。Claude Code 在将规则加载到上下文之前删除 frontmatter。

254 

255| 字段 | 必需 | 描述 |

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

257| `paths` | 否 | Glob 模式,[将规则范围限定到匹配文件](#path-specific-rules)。接受 YAML 列表或逗号分隔的字符串 |

258 

259如果标记之间的 YAML 不解析,Claude Code 忽略 frontmatter 并加载规则,就像它没有 `paths` 一样。运行 `claude --debug` 查看解析错误。

260 

247<h4 id="share-rules-across-projects-with-symlinks">261<h4 id="share-rules-across-projects-with-symlinks">

248 使用符号链接在项目间共享规则262 使用符号链接在项目间共享规则

249</h4>263</h4>


271└── workflows.md # Your preferred workflows285└── workflows.md # Your preferred workflows

272```286```

273 287 

274用户级规则在项目规则之前加载,给予项目规则更高的优先级。288Claude Code 在项目规则之前加载用户级规则,因此项目规则在 Claude 的上下文中出现在用户规则之后。两个集合都不会覆盖另一个:如果用户规则和项目规则冲突,Claude 可能会遵循任一个,因此保持两者一致。

275 289 

276<h3 id="manage-claude-md-for-large-teams">290<h3 id="manage-claude-md-for-large-teams">

277 为大型团队管理 CLAUDE.md291 为大型团队管理 CLAUDE.md


424* 您使用的是 v2.1.277 之前的 Claude Code 版本438* 您使用的是 v2.1.277 之前的 Claude Code 版本

425* 您的会话不会[从 Anthropic 获取功能标志](/docs/zh-CN/env-vars#features-that-need-feature-flag-fetching),例如因为您使用 Amazon Bedrock 或其他第三方提供商,或您禁用了遥测。链接的部分有完整列表439* 您的会话不会[从 Anthropic 获取功能标志](/docs/zh-CN/env-vars#features-that-need-feature-flag-fetching),例如因为您使用 Amazon Bedrock 或其他第三方提供商,或您禁用了遥测。链接的部分有完整列表

426* 这是您[安装或升级](/docs/zh-CN/env-vars#first-session-after-an-install-or-upgrade)到具有 `AGENTS.md` 支持的版本后的第一个会话。Claude 从您的下一个会话开始读取 `AGENTS.md`440* 这是您[安装或升级](/docs/zh-CN/env-vars#first-session-after-an-install-or-upgrade)到具有 `AGENTS.md` 支持的版本后的第一个会话。Claude 从您的下一个会话开始读取 `AGENTS.md`

427* 您或您的组织设置了 [`disableAllHooks`](/docs/zh-CN/settings-reference#disableallhooks) 或 [`allowManagedHooksOnly`](/docs/zh-CN/settings-reference#allowmanagedhooksonly),或您在 `/plugin` 中禁用了内置 `agents-md` 插件441* 您在 `/plugin` 中禁用了内置 `agents-md` 插件

428 442 

429要在这些会话中向 Claude 提供您的 `AGENTS.md`,请[从 `CLAUDE.md` 中导入它](#share-one-file-with-other-coding-tools)。443要在这些会话中向 Claude 提供您的 `AGENTS.md`,请[从 `CLAUDE.md` 中导入它](#share-one-file-with-other-coding-tools)。

430 444 


435通过**项目说明**设置读取的 `AGENTS.md` 与 `CLAUDE.md` 在以下方面有所不同:449通过**项目说明**设置读取的 `AGENTS.md` 与 `CLAUDE.md` 在以下方面有所不同:

436 450 

437| | `CLAUDE.md` | 通过设置读取的 `AGENTS.md` |451| | `CLAUDE.md` | 通过设置读取的 `AGENTS.md` |

438| :--------------------------------------------------------------------------------------------------------------- | :------------------------------------------------ | :---------------------------------------------------------------------------------------------------------- |452| :--------------------------------------------------------------------------------------------------------------- | :------------------------------------------------ | :--------------------------------------------- |

439| `/memory` 和 `/context` 中的**内存文件**列表 | 已列出 | 未列出。要确认 Claude 读取了它,请查找默认值下的 [`AGENTS.md loaded` 行](#when-claude-code-reads-agents-md),或询问 Claude 其项目说明说了什么 |

440| [`InstructionsLoaded` hooks](/docs/zh-CN/hooks#instructionsloaded) | 触发 | 不触发。它们照常为 `CLAUDE.md` 导入或符号链接到的 `AGENTS.md` 触发 |453| [`InstructionsLoaded` hooks](/docs/zh-CN/hooks#instructionsloaded) | 触发 | 不触发。它们照常为 `CLAUDE.md` 导入或符号链接到的 `AGENTS.md` 触发 |

441| 当设置了 [`CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD`](#load-from-additional-directories) 时,您使用 `--add-dir` 添加的目录 | 它们的 `CLAUDE.md` 加载 | 它们的 `AGENTS.md` 不加载 |454| 当设置了 [`CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD`](#load-from-additional-directories) 时,您使用 `--add-dir` 添加的目录 | 它们的 `CLAUDE.md` 加载 | 它们的 `AGENTS.md` 不加载 |

442| `@path` 导入工作目录外的文件 | Claude Code 要求您批准[外部导入](#import-additional-files) | 仅在您已为此项目批准外部导入时加载,无提示 |455| `@path` 导入工作目录外的文件 | Claude Code 要求您批准[外部导入](#import-additional-files) | 仅在您已为此项目批准外部导入时加载,无提示 |


604 617 

605要调试:618要调试:

606 619 

607* 运行 `/context` 并检查 **Memory files** 下的列表,以验证你的 CLAUDE.md 和 CLAUDE.local.md 文件已加载。如果 `CLAUDE.md` 文件未列出,Claude 看不到它。`AGENTS.md` 仅在 `CLAUDE.md` 导入它时出现,而不是当 Claude [直接读取它](#where-agents-md-differs-from-claude-md) 时。使用 `/memory` 打开和编辑文件。620* 运行 `/context` 并检查 **Memory files** 下的列表,以验证你的 CLAUDE.md 和 CLAUDE.local.md 文件已加载。如果 `CLAUDE.md` 文件未列出,Claude 看不到它。使用 `/memory` 打开和编辑文件。

608* 检查相关 CLAUDE.md 是否在为你的会话加载的位置(参见 [选择 CLAUDE.md 文件的位置](#choose-where-to-put-claude-md-files))。621* 检查相关 CLAUDE.md 是否在为你的会话加载的位置(参见 [选择 CLAUDE.md 文件的位置](#choose-where-to-put-claude-md-files))。

609* 使指令更具体。"使用 2 空格缩进"比"格式化代码很好"效果更好。622* 使指令更具体。"使用 2 空格缩进"比"格式化代码很好"效果更好。

610* 查找跨 CLAUDE.md 文件的冲突指令。如果两个文件为相同行为提供不同的指导,Claude 可能会任意选择一个。623* 查找跨 CLAUDE.md 文件的冲突指令。如果两个文件为相同行为提供不同的指导,Claude 可能会任意选择一个。


6283. 检查你的会话是否是 [无法加载 `AGENTS.md`](#when-agents-md-support-is-unavailable) 的会话,例如第三方提供商上的会话或禁用遥测的会话。6413. 检查你的会话是否是 [无法加载 `AGENTS.md`](#when-agents-md-support-is-unavailable) 的会话,例如第三方提供商上的会话或禁用遥测的会话。

6294. 在你的会话中输入 `/config` 以打开设置面板,并确认 **Project instructions** 未设置为 `claude-md` 或 `managed-only`。如果你根本看不到该设置,你的会话是 [无法加载 `AGENTS.md`](#when-agents-md-support-is-unavailable) 的会话。6424. 在你的会话中输入 `/config` 以打开设置面板,并确认 **Project instructions** 未设置为 `claude-md` 或 `managed-only`。如果你根本看不到该设置,你的会话是 [无法加载 `AGENTS.md`](#when-agents-md-support-is-unavailable) 的会话。

630 643 

631当 Claude 直接读取 `AGENTS.md` 时,你不会在 `/memory` 或 `/context` 中看到它,所以检查 `AGENTS.md loaded` 行或询问 Claude 其项目指令说什么。如果你想保留你找到的 `CLAUDE.md`,或你的会话无法加载 `AGENTS.md`,[添加一个 `CLAUDE.md` 在你的 `AGENTS.md` 旁边来导入它](#share-one-file-with-other-coding-tools)。644要检查 Claude 是否读取了你的 `AGENTS.md`,运行 `/memory` 并在列表中查找其路径。

645 

646在 v2.1.280 之前,`/memory` 和 `/context` 没有列出 Claude 直接读取的 `AGENTS.md`。在这些版本上,改为询问 Claude 其项目指令说什么。

647 

648如果你想保留你找到的 `CLAUDE.md`,或你的会话无法加载 `AGENTS.md`,[添加一个 `CLAUDE.md` 在你的 `AGENTS.md` 旁边来导入它](#share-one-file-with-other-coding-tools)。

632 649 

633<h3 id="i-don’t-know-what-auto-memory-saved">650<h3 id="i-don’t-know-what-auto-memory-saved">

634 我不知道自动记忆保存了什么651 我不知道自动记忆保存了什么

model-config.md +41 −43

Details

47 47 

48| 提供商 | `opus` | `sonnet` |48| 提供商 | `opus` | `sonnet` |

49| :------------------------------------------------------ | :------- | :--------- |49| :------------------------------------------------------ | :------- | :--------- |

50| Anthropic API | Opus 5 | Sonnet 5 |50| Anthropic API | Opus 5.5 | Sonnet 5 |

51| [Claude Platform on AWS](/docs/zh-CN/claude-platform-on-aws) | Opus 5 | Sonnet 4.6 |51| [Claude Platform on AWS](/docs/zh-CN/claude-platform-on-aws) | Opus 5.5 | Sonnet 4.6 |

52| Amazon Bedrock、Google Cloud 的 Agent Platform | Opus 5 | Sonnet 4.5 |52| Amazon Bedrock、Google Cloud 的 Agent Platform | Opus 5.5 | Sonnet 4.5 |

53| Microsoft Foundry | Opus 4.6 | Sonnet 4.5 |53| Microsoft Foundry | Opus 4.6 | Sonnet 4.5 |

54 54 

55<span id="fable-alias-resolution" />55<span id="fable-alias-resolution" />


60 60 

61当别名解析到较旧的模型时,可以通过显式选择完整模型名称或设置 `ANTHROPIC_DEFAULT_OPUS_MODEL` 或 `ANTHROPIC_DEFAULT_SONNET_MODEL` 来获得较新的模型。61当别名解析到较旧的模型时,可以通过显式选择完整模型名称或设置 `ANTHROPIC_DEFAULT_OPUS_MODEL` 或 `ANTHROPIC_DEFAULT_SONNET_MODEL` 来获得较新的模型。

62 62 

63在 v2.1.219 之前,`opus` 在 Anthropic API 上从 v2.1.154 开始解析到 Opus 4.8,在 Claude Platform on AWS、Amazon Bedrock 和 Google Cloud 的 Agent Platform 上从 v2.1.207 开始解析到 Opus 4.8。在 v2.1.207 之前,`opus` 在 Claude Platform on AWS 上解析到 Opus 4.7,在 Amazon Bedrock 和 Google Cloud 的 Agent Platform 上解析到 Opus 4.6。63在 v2.1.280 之前,`opus` 在 Anthropic API、Claude Platform on AWS、Amazon Bedrock 和 Google Cloud 的 Agent Platform 上从 v2.1.219 开始解析到 Opus 5。在 v2.1.219 之前,`opus` 在 Anthropic API 上从 v2.1.154 开始解析到 Opus 4.8,在 Claude Platform on AWS、Amazon Bedrock 和 Google Cloud 的 Agent Platform 上从 v2.1.207 开始解析到 Opus 4.8。在 v2.1.207 之前,`opus` 在 Claude Platform on AWS 上解析到 Opus 4.7,在 Amazon Bedrock 和 Google Cloud 的 Agent Platform 上解析到 Opus 4.6。

64 64 

65别名指向你的提供商的推荐版本,并随时间更新。要固定到特定版本,请使用完整模型名称,例如 `claude-opus-5`,或设置相应的环境变量,如 `ANTHROPIC_DEFAULT_OPUS_MODEL`。65别名指向你的提供商的推荐版本,并随时间更新。要固定到特定版本,请使用完整模型名称,例如 `claude-opus-5-5`,或设置相应的环境变量,如 `ANTHROPIC_DEFAULT_OPUS_MODEL`。

66 66 

67<Note>67<Note>

68 Opus 5 需要 Claude Code v2.1.219 或更高版本。Sonnet 5 需要 v2.1.197 或更高版本。Opus 4.8 需要 v2.1.154 或更高版本。运行 `claude update` 进行升级。68 Opus 5.5 需要 Claude Code v2.1.280 或更高版本。Opus 5 需要 v2.1.219 或更高版本。Sonnet 5 需要 v2.1.197 或更高版本。运行 `claude update` 进行升级。

69</Note>69</Note>

70 70 

71<h3 id="work-with-fable">71<h3 id="work-with-fable">


94 Fable 5.1 需要 Claude Code v2.1.257 或更高版本。如果来自较旧版本的请求失败,请参阅 [Claude Code does not support this model](/docs/zh-CN/errors#claude-code-does-not-support-this-model)。运行 `claude update` 进行升级。有关零数据保留下的可用性,请参阅 [Model availability under ZDR](/docs/zh-CN/zero-data-retention#model-availability-under-zdr)。94 Fable 5.1 需要 Claude Code v2.1.257 或更高版本。如果来自较旧版本的请求失败,请参阅 [Claude Code does not support this model](/docs/zh-CN/errors#claude-code-does-not-support-this-model)。运行 `claude update` 进行升级。有关零数据保留下的可用性,请参阅 [Model availability under ZDR](/docs/zh-CN/zero-data-retention#model-availability-under-zdr)。

95</Note>95</Note>

96 96 

97在 Anthropic API 上,`/model` 选择器仅在服务器报告它对你的组织可用后才列出 Fable 模型。当你输入 `/model fable` 或 Fable 模型 ID 时,Claude Code 直接与服务器检查可用性,所以即使选择器未列出该条目,输入的选择也可以成功。97在 Anthropic API 上,Fable 模型仅在 `/model` 选择器中列出,除非 [`availableModels`](#restrict-model-selection) 或[组织模型限制](#organization-model-restrictions)排除它。当你的组织根本无法使用 Fable 时,例如在[零数据保留](/docs/zh-CN/zero-data-retention#model-availability-under-zdr)下,该行在选择器中保持灰显,并附有说明原因的注释。

98 98 

99<h4 id="fable-and-usage-credits">99<h4 id="fable-and-usage-credits">

100 Fable 和使用额度100 Fable 和使用额度


138 138 

139直接输入 `/model <name>` 的行为类似于 `Enter`。要仅为此会话切换,请使用 `/model` 打开选择器,并在模型的行上按 `s`。139直接输入 `/model <name>` 的行为类似于 `Enter`。要仅为此会话切换,请使用 `/model` 打开选择器,并在模型的行上按 `s`。

140 140 

141如果你使用 `/model` 切换模型,该切换也会到达[继承主对话模型的子代理](/docs/zh-CN/sub-agents#choose-a-model),因为 Claude Code 在 Claude 启动它们时从你的会话使用的模型解析它们的模型。在 Claude 将研究或测试运行委托给其中一个之前切换到 Opus,该工作也会在 Opus 上运行。要保持自定义子代理在较小的模型上,在其定义中设置 `model`。

142 

141如果你在[非交互模式](/docs/zh-CN/headless)中使用 `-p` 标志设置带有 `/model` 的模型,你的选择仅适用于当前会话,不会保存为你的默认值;该模式中的 `/model` 需要 Claude Code v2.1.205 或更高版本。项目和托管设置仍然优先,并在下次启动时重新应用。你的管理员配置的[组织默认模型](#organization-default-model)也会在下次启动时重新应用。143如果你在[非交互模式](/docs/zh-CN/headless)中使用 `-p` 标志设置带有 `/model` 的模型,你的选择仅适用于当前会话,不会保存为你的默认值;该模式中的 `/model` 需要 Claude Code v2.1.205 或更高版本。项目和托管设置仍然优先,并在下次启动时重新应用。你的管理员配置的[组织默认模型](#organization-default-model)也会在下次启动时重新应用。

142 144 

143在 v2.1.144 到 v2.1.152 中,`/model` 仅适用于当前会话,选择器中的 `d` 保存默认值。145在 v2.1.144 到 v2.1.152 中,`/model` 仅适用于当前会话,选择器中的 `d` 保存默认值。


443 445 

444`default` 的行为取决于您的账户类型:446`default` 的行为取决于您的账户类型:

445 447 

446* **Max、Team Premium、Enterprise 和 Anthropic API**:默认为 Opus 5448* **Pro、Max、Team、Enterprise 和 Anthropic API**:默认为 Opus 5.5

447* **Claude Platform on AWS、Amazon Bedrock 和 Google Cloud's Agent Platform**:默认为 Opus 5449* **Claude Platform on AWS、Amazon Bedrock 和 Google Cloud's Agent Platform**:默认为 Opus 5.5

448* **Pro 和 Team Standard**:默认为 Sonnet 5

449* **Microsoft Foundry**:默认为 Sonnet 4.5450* **Microsoft Foundry**:默认为 Sonnet 4.5

450 451 

451在 v2.1.219 之前,`default` 在 Anthropic API 上解析为 Opus 4.8,在 Max、Team Premium 和 Enterprise 按量付费上从 v2.1.154 开始解析为 Opus 4.8,在 Claude Platform on AWS、Amazon Bedrock 和 Google Cloud's Agent Platform 上从 v2.1.207 开始解析为 Opus 4.8。在 v2.1.207 之前,`default` 在 Claude Platform on AWS 上解析为 Opus 4.7,在 Amazon Bedrock 和 Google Cloud's Agent Platform 上解析为 Sonnet 4.5。452在 v2.1.280 之前,`default` 在 Pro 和 Team Standard 上解析为 Sonnet 5,在 Max、Team Premium、Enterprise、Anthropic API、Claude Platform on AWS、Amazon Bedrock 和 Google Cloud's Agent Platform 上从 v2.1.219 开始解析为 Opus 5。在 v2.1.219 之前,`default` 在 Anthropic API、Max、Team Premium 和 Enterprise 按量付费上从 v2.1.154 开始解析为 Opus 4.8,在 Claude Platform on AWS、Amazon Bedrock 和 Google Cloud's Agent Platform 上从 v2.1.207 开始解析为 Opus 4.8。在 v2.1.207 之前,`default` 在 Claude Platform on AWS 上解析为 Opus 4.7,在 Amazon Bedrock 和 Google Cloud's Agent Platform 上解析为 Sonnet 4.5。

452 453 

453当管理员设置了[组织默认模型](#organization-default-model)时,`default` 会解析为该模型,而不是上面的账户类型默认值。需要 Claude Code v2.1.196 或更高版本。`default` 也可以解析为您使用 [`ANTHROPIC_DEFAULT_MODEL`](#set-a-default-model-for-new-sessions) 设置的模型,具体条件见其部分说明。454当管理员设置了[组织默认模型](#organization-default-model)时,`default` 会解析为该模型,而不是上面的账户类型默认值。需要 Claude Code v2.1.196 或更高版本。`default` 也可以解析为您使用 [`ANTHROPIC_DEFAULT_MODEL`](#set-a-default-model-for-new-sessions) 设置的模型,具体条件见其部分说明。

454 455 


462 463 

463`opusplan` 模型别名提供了一种自动化混合方法:464`opusplan` 模型别名提供了一种自动化混合方法:

464 465 

465* **在计划模式下**:使用 `opus` 进行复杂推理和架构决策466* **在 Plan Mode 中**:使用 `opus` 进行复杂推理和架构决策

466* **在执行模式下**:自动切换到 `sonnet` 进行代码生成和实现467* **在执行模式中**:自动切换到 `sonnet` 进行代码生成和实现

467 468 

468这将 Opus 的推理能力与 Sonnet 的执行效率相结合。469这将 Opus 的推理能力与 Sonnet 的执行效率相结合。

469 470 

470计划模式 Opus 阶段使用与 `opus` 模型设置相同的上下文窗口,执行阶段使用与 `sonnet` 相同的窗口。当 `opus` 和 `sonnet` 解析为默认运行[1M 上下文窗口](#extended-context)的模型时,如当前模型在 Anthropic API 上所做的那样,两个阶段都使用它运行。要在它们不这样做的地方为两个阶段请求 1M 上下文,[设置模型](#setting-your-model)为 `opusplan[1m]`,例如使用 `/model opusplan[1m]`。使用 `/model` 设置它需要 Claude Code v2.1.265 或更高版本;在早期版本上,使用 `--model` 标志或 `model` 设置。471Plan Mode Opus 阶段使用与 `opus` 模型设置相同的上下文窗口,执行阶段使用与 `sonnet` 相同的窗口。当 `opus` 和 `sonnet` 解析为默认运行[1M 上下文窗口](#extended-context)的模型时,如当前模型在 Anthropic API 上所做的那样,两个阶段都使用它运行。要在它们不这样做的地方为两个阶段请求 1M 上下文,[设置模型](#setting-your-model)为 `opusplan[1m]`,例如使用 `/model opusplan[1m]`。使用 `/model` 设置它需要 Claude Code v2.1.265 或更高版本;在早期版本上,使用 `--model` 标志或 `model` 设置。

471 472 

472当 [`availableModels`](#restrict-model-selection) 排除最新的 Opus 但允许较旧版本时,例如 `["sonnet", "claude-opus-4-6"]`,`opusplan` 使用最新的允许的 Opus 进行规划,仅当每个 Opus 都被排除时才保持在 Sonnet 上。在计划模式下通常会升级到 Sonnet 的 Haiku 会话同样使用最新的允许的 Sonnet,仅当每个 Sonnet 都被排除时才保持在 Haiku 上。在 v2.1.205 之前,当升级系列的最新版本被排除时,计划模式会保持在会话的模型上,即使允许列表允许较旧的版本。473当 [`availableModels`](#restrict-model-selection) 排除最新的 Opus 但允许较旧版本时,例如 `["sonnet", "claude-opus-4-6"]`,`opusplan` 使用最新的允许的 Opus 进行规划,仅当每个 Opus 都被排除时才保持在 Sonnet 上。在 Plan Mode 中通常会升级到 Sonnet 的 Haiku 会话同样使用最新的允许的 Sonnet,仅当每个 Sonnet 都被排除时才保持在 Haiku 上。在 v2.1.205 之前,当升级系列的最新版本被排除时,Plan Mode 会保持在会话的模型上,即使允许列表允许较旧的版本。

473 474 

474较旧的允许版本的替换适用于 Anthropic API 和 [Claude Platform on AWS](/docs/zh-CN/claude-platform-on-aws)。在 Amazon Bedrock、Google Cloud's Agent Platform、Microsoft Foundry 和 Mantle 上,其部署使用提供商特定的模型 ID,当升级模型被排除时,计划模式会保持在会话的模型上。475较旧的允许版本的替换适用于 Anthropic API 和 [Claude Platform on AWS](/docs/zh-CN/claude-platform-on-aws)。在 Amazon Bedrock、Google Cloud's Agent Platform、Microsoft Foundry 和 Mantle 上,其部署使用提供商特定的模型 ID,当升级模型被排除时,Plan Mode 会保持在会话的模型上。

475 476 

476关于 Claude 在任务中途决定何时咨询第二个模型而不是在计划边界处切换的混合方法,请参阅[顾问工具](/docs/zh-CN/advisor)。477关于 Claude 在任务中途决定何时咨询第二个模型而不是在 Plan Mode 边界处切换的混合方法,请参阅[顾问工具](/docs/zh-CN/advisor)。

477 478 

478<h3 id="fallback-model-chains">479<h3 id="fallback-model-chains">

479 回退模型链480 回退模型链


512 自动模型回退513 自动模型回退

513</h3>514</h3>

514 515 

515本部分涵盖来自 Fable 模型和 Opus 5 的基于内容的回退。关于模型过载或不可用时的基于可用性的回退,请参阅[回退模型链](#fallback-model-chains)。516本部分涵盖来自 Fable 模型、Opus 5.5 和 Opus 5 的基于内容的回退。关于模型过载或不可用时的基于可用性的回退,请参阅[回退模型链](#fallback-model-chains)。

516 517 

517Fable 模型和 Opus 5 运行安全分类器,最常标记网络安全和生物学内容。当分类器标记请求且标记的类别有回退模型时,Claude Code 在该模型上重新运行请求并在记录中显示通知。对于这两个类别,回退模型取决于哪个模型拒绝:518Fable 模型、Opus 5.5 和 Opus 5 运行安全分类器,最常标记网络安全和生物学内容。当分类器标记请求且标记的类别有回退模型时,Claude Code 在该模型上重新运行请求并在记录中显示通知。对于这两个类别,回退模型取决于哪个模型拒绝:

518 519 

519* **Fable 5.1 和 Fable 5**:生物学标记的请求在 Opus 5 上重新运行,网络安全标记的请求在 Opus 4.8 上重新运行。520* **Fable 5.1、Fable 5 和 Opus 5.5**:生物学标记的请求在 Opus 5 上重新运行,网络安全标记的请求在 Opus 4.8 上重新运行。

520* **Opus 5**:网络安全标记的请求在 Opus 4.8 上重新运行。生物学标记的请求以拒绝结束,因为 Opus 5 运行自己的生物学分类器,没有回退模型。521* **Opus 5**:网络安全标记的请求在 Opus 4.8 上重新运行。生物学标记的请求以拒绝结束,因为 Opus 5 运行自己的生物学分类器,没有回退模型。

521 522 

522在 Amazon Bedrock、Google Cloud's Agent Platform 和 Microsoft Foundry 上,Claude Code 通过您的部署解析这些目标,如果您设置了 `ANTHROPIC_DEFAULT_OPUS_MODEL`,具有回退的类别会在固定模型上重新运行;请参阅[在 Bedrock、Agent Platform 和 Foundry 上启用回退](#enable-fallback-on-bedrock-agent-platform-and-foundry)。523在 Amazon Bedrock、Google Cloud's Agent Platform 和 Microsoft Foundry 上,Claude Code 通过您的部署解析这些目标,如果您设置了 `ANTHROPIC_DEFAULT_OPUS_MODEL`,具有回退的类别会在固定模型上重新运行;请参阅[在 Bedrock、Agent Platform 和 Foundry 上启用回退](#enable-fallback-on-bedrock-agent-platform-and-foundry)。


545 546 

546* 当标记的类别没有回退模型时,例如 Opus 5 上的生物学标记,Claude Code 不显示提示,请求以拒绝结束。547* 当标记的类别没有回退模型时,例如 Opus 5 上的生物学标记,Claude Code 不显示提示,请求以拒绝结束。

547* 如果两个模型都标记相同的请求,您可以编辑提示并重试,或启动新会话。548* 如果两个模型都标记相同的请求,您可以编辑提示并重试,或启动新会话。

548* 在移动[网络上的 Claude Code](/docs/zh-CN/claude-code-on-the-web)会话上,不支持编辑和重试。切换模型,或从桌面浏览器或桌面应用继续会话。549* 在移动应用上的[云会话](/docs/zh-CN/claude-code-on-the-web)中,不支持编辑和重试。切换模型,或从桌面浏览器或桌面应用继续会话。

549* 在[非交互模式](/docs/zh-CN/cli-reference#cli-flags)和无法显示提示的 SDK 集成中,标记的请求以拒绝结束轮次。550* 在[非交互模式](/docs/zh-CN/cli-reference#cli-flags)和无法显示提示的 SDK 集成中,标记的请求以拒绝结束轮次。

550* 当回退目标被 [`availableModels`](#restrict-model-selection) 阻止时,Claude Code 不显示提示。标记的请求以拒绝结束,与目标被阻止时的自动回退相同。551* 当回退目标被 [`availableModels`](#restrict-model-selection) 阻止时,Claude Code 不显示提示。标记的请求以拒绝结束,与目标被阻止时的自动回退相同。

551 552 


555 556 

556在 [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) 上,模型 ID 是提供商特定的,因此自动回退仅在 Claude Code 可以识别两个涉及的模型时运行:557在 [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) 上,模型 ID 是提供商特定的,因此自动回退仅在 Claude Code 可以识别两个涉及的模型时运行:

557 558 

558* Claude Code 必须将当前模型识别为回退源。当模型 ID 包含 `claude-fable-5`、匹配 `ANTHROPIC_DEFAULT_FABLE_MODEL` 的值或使用 [`modelOverrides`](#override-model-ids-per-version) 映射时,Fable 5.1 和 Fable 5 被识别。Opus 5 通过其提供商模型 ID 或 [`modelOverrides`](#override-model-ids-per-version) 映射被识别。559* Claude Code 必须将当前模型识别为回退源。当模型 ID 包含 `claude-fable-5`、匹配 `ANTHROPIC_DEFAULT_FABLE_MODEL` 的值或使用 [`modelOverrides`](#override-model-ids-per-version) 映射时,Fable 5.1 和 Fable 5 被识别。Opus 5.5 和 Opus 5 通过其提供商模型 ID 或 [`modelOverrides`](#override-model-ids-per-version) 映射被识别。

559* 回退模型必须在您的部署中解析。如果您设置了 `ANTHROPIC_DEFAULT_OPUS_MODEL`,标记的请求会在该模型上为每个具有回退的类别重新运行;Opus 5 上的生物学标记仍以拒绝结束。如果您没有设置它,网络安全标记的请求会在提供商模型列表中的 Opus 4.8 条目上重新运行,来自 Fable 模型的生物学标记请求会在 Opus 5 条目上重新运行。560* 回退模型必须在您的部署中解析。如果您设置了 `ANTHROPIC_DEFAULT_OPUS_MODEL`,标记的请求会在该模型上为每个具有回退的类别重新运行;Opus 5 上的生物学标记仍以拒绝结束。如果您没有设置它,网络安全标记的请求会在提供商模型列表中的 Opus 4.8 条目上重新运行,来自 Fable 模型或 Opus 5.5 的生物学标记请求会在 Opus 5 条目上重新运行。

560 561 

561如果任一模型无法识别,Claude Code 不会自动切换。标记的请求以拒绝消息结束,您可以使用 [`/model`](#setting-your-model) 切换模型并重试。将 `ANTHROPIC_DEFAULT_FABLE_MODEL` 设置为您的 Fable 模型 ID 可启用 Fable 识别。将 `ANTHROPIC_DEFAULT_OPUS_MODEL` 设置为 Opus 模型 ID 为标记的类别提供回退目标,除非固定值命名 Opus 系列外的模型或拒绝的模型;然后 Claude Code 不会切换,拒绝成立。562如果任一模型无法识别,Claude Code 不会自动切换。标记的请求以拒绝消息结束,您可以使用 [`/model`](#setting-your-model) 切换模型并重试。将 `ANTHROPIC_DEFAULT_FABLE_MODEL` 设置为您的 Fable 模型 ID 可启用 Fable 识别。将 `ANTHROPIC_DEFAULT_OPUS_MODEL` 设置为 Opus 模型 ID 为标记的类别提供回退目标,除非固定值命名 Opus 系列外的模型或拒绝的模型;然后 Claude Code 不会切换,拒绝成立。

562 563 


564 安全研究和生物学工作负载565 安全研究和生物学工作负载

565</h4>566</h4>

566 567 

567进攻性安全或生物学中的工作负载,包括渗透测试、Capture the Flag (CTF) 练习和生物学相邻代码库,经常触发回退,通常在第一个请求上。对于 Fable 5.1 或 Fable 5 上的实质性生物学工作,Claude Code 在第一个标记的请求处将会话移动到 Opus 5,后来的生物学标记请求在那里以拒绝结束,因为 Opus 5 没有生物学回退。在 Opus 5 上,您从第一个标记的请求获得这些拒绝。568进攻性安全或生物学中的工作负载,包括渗透测试、Capture the Flag (CTF) 练习和生物学相邻代码库,经常触发回退,通常在第一个请求上。对于 Fable 5.1、Fable 5 或 Opus 5.5 上的实质性生物学工作,Claude Code 在第一个标记的请求处将会话移动到 Opus 5,后来的生物学标记请求在那里以拒绝结束,因为 Opus 5 没有生物学回退。在 Opus 5 上,您从第一个标记的请求获得这些拒绝。

568 569 

569这是这些域的预期路由,不是账户标记。如果您的组织需要 Fable 级别的能力来完成这项工作,请向您的 Anthropic 账户团队询问受信任的访问计划。570这是这些域的预期路由,不是账户标记。如果您的组织需要 Fable 级别的能力来完成这项工作,请向您的 Anthropic 账户团队询问受信任的访问计划。

570 571 


577可用的努力级别取决于模型。此处未列出的模型不支持努力:578可用的努力级别取决于模型。此处未列出的模型不支持努力:

578 579 

579| 模型 | 级别 |580| 模型 | 级别 |

580| :---------------------------------- | :---------------------------------- |581| :------------------------------------------- | :---------------------------------- |

581| Fable 5.1 和 Fable 5 | `low`、`medium`、`high`、`xhigh`、`max` |582| Fable 5.1 和 Fable 5 | `low`、`medium`、`high`、`xhigh`、`max` |

582| Opus 5、Sonnet 5、Opus 4.8 和 Opus 4.7 | `low`、`medium`、`high`、`xhigh`、`max` |583| Opus 5.5、Opus 5、Sonnet 5、Opus 4.8 和 Opus 4.7 | `low`、`medium`、`high`、`xhigh`、`max` |

583| Opus 4.6 和 Sonnet 4.6 | `low`、`medium`、`high`、`max` |584| Opus 4.6 和 Sonnet 4.6 | `low`、`medium`、`high`、`max` |

584 585 

585如果您设置活动模型不支持的级别,Claude Code 会回退到该模型支持的最高级别或以下。例如,`xhigh` 在 Opus 4.6 上运行为 `high`。您的组织或您自己的设置也可以限制模型提供的级别;请参阅[组织努力限制](#organization-effort-limits)。586如果您设置活动模型不支持的级别,Claude Code 会回退到该模型支持的最高级别或以下。例如,`xhigh` 在 Opus 4.6 上运行为 `high`。您的组织或您自己的设置也可以限制模型提供的级别;请参阅[组织努力限制](#organization-effort-limits)。


587关闭 [`ultracode`](/docs/zh-CN/settings-reference#ultracode) 设置时,Claude Code 按此顺序解析会话的努力级别,采用首先适用的:588关闭 [`ultracode`](/docs/zh-CN/settings-reference#ultracode) 设置时,Claude Code 按此顺序解析会话的努力级别,采用首先适用的:

588 589 

5891. 明确选择:[`CLAUDE_CODE_EFFORT_LEVEL`](/docs/zh-CN/env-vars#variables) 环境变量、使用 `--effort` 启动或会话中的 `/effort`([非交互式 `/effort` 的效果更窄](#non-interactive-effort))5901. 明确选择:[`CLAUDE_CODE_EFFORT_LEVEL`](/docs/zh-CN/env-vars#variables) 环境变量、使用 `--effort` 启动或会话中的 `/effort`([非交互式 `/effort` 的效果更窄](#non-interactive-effort))

5902. 模型的默认努力,在 Fable 5、Opus 4.8 或 Opus 4.7 上:从您第一次运行这些模型之一开始,Claude Code 在会话间保持该模型的默认努力,即使您的设置解析不同的级别。Opus 5 和 Fable 5.1 没有这样的保持。您设置的级别是否结束保持取决于您如何设置它,例如:5912. 您的设置:您为模型保存的级别或 [`effortLevel`](/docs/zh-CN/settings-reference#effortlevel) 键,在 [`modelSettings`](/docs/zh-CN/settings-reference#modelsettings) 中说明它们之间和跨设置文件的优先级

591 * **结束保持**:交互式确认级别,在 `/effort` 滑块或 `/model` 选择器中使用 `Enter` 或在 `/effort` 后键入的级别,或从连接设备的[远程控制](/docs/zh-CN/remote-control#what-connected-devices-see)努力控制中选择级别5923. 模型的默认努力:在支持努力的每个模型上为 `high`,除了 Opus 5.5 默认为 `medium`、Opus 4.7 默认为 `xhigh`,当您的组织为其[组织默认模型](#organization-default-model)设置默认努力级别时,当您运行该模型时该级别是默认值

592 * **为后续会话保留保持**:启动时的 `--effort`,或在 `/effort` 滑块或 `/model` 选择器中的 `s`593 

5933. 您的设置:您为模型保存的级别或 [`effortLevel`](/docs/zh-CN/settings-reference#effortlevel) 键,在 [`modelSettings`](/docs/zh-CN/settings-reference#modelsettings) 中说明它们之间和跨设置文件的优先级594Opus 5.5 从 `medium` 开始,除非上面的源之一为其设置级别,您的用户设置文件中的顶级 `effortLevel` 不计入 Opus 5.5。该键是较旧的形式 `/effort` 在 Claude Code 按模型保存级别之前写入的:它继续在它之前应用的地方应用,在 Opus 5、Fable 5.1 和更早的模型上,而 Opus 5.5 和在它之后发布的模型从它们自己的默认开始,直到您使用 `/effort` 或 `/model` 选择器为它们选择级别。项目、本地或托管设置中的顶级 `effortLevel`,或使用 `--settings` 传递的,适用于每个模型。

5944. 模型的默认努力:在支持努力的每个模型上为 `high`,除了 Opus 4.7 默认为 `xhigh`,当您的组织为其[组织默认模型](#organization-default-model)设置默认努力级别时,当您运行该模型时该级别是默认值

595 595 

596当您在机器上的交互式会话中设置 `low`、`medium`、`high` 或 `xhigh` 时,您通过如何确认它来选择它持续多长时间:596当您在机器上的交互式会话中设置 `low`、`medium`、`high` 或 `xhigh` 时,您通过如何确认它来选择它持续多长时间:

597 597 


608 608 

609<span id="non-interactive-effort" />609<span id="non-interactive-effort" />

610 610 

611当您在 [`-p` 运行](/docs/zh-CN/headless)中使用 `/effort` 设置级别时,Claude Code 仅将其应用于该会话,不将其保存为您的默认值。在 Fable 5、Opus 4.8 和 Opus 4.7 上,该级别也既不结束模型默认努力的保持,也不为会话覆盖它。当该保持有效时,非交互式 `/effort` 报告 `Not applied`,因此改为在启动时传递 `--effort`。611当您在 [`-p` 运行](/docs/zh-CN/headless)中使用 `/effort` 设置级别时,Claude Code 仅将其应用于该会话,不将其保存为您的默认值。

612 612 

613`/effort` 菜单也提供 `ultracode`。Ultracode 是 Claude Code 设置而不是模型努力级别:它向模型发送 `xhigh`,并另外让 Claude 为实质性任务编排[动态工作流](/docs/zh-CN/workflows)。关于它可以在哪里持久设置,请参阅 [`ultracode`](/docs/zh-CN/settings-reference#ultracode) 设置。613`/effort` 菜单也提供 `ultracode`。Ultracode 是 Claude Code 设置而不是模型努力级别:它向模型发送 `xhigh`,并另外让 Claude 为实质性任务编排[动态工作流](/docs/zh-CN/workflows)。关于它可以在哪里持久设置,请参阅 [`ultracode`](/docs/zh-CN/settings-reference#ultracode) 设置。

614 614 


642| 级别 | 何时使用 |642| 级别 | 何时使用 |

643| :---------- | :-------------------------------------------------------------------- |643| :---------- | :-------------------------------------------------------------------- |

644| `low` | 保留用于短的、范围有限的、延迟敏感的、不是智能敏感的任务 |644| `low` | 保留用于短的、范围有限的、延迟敏感的、不是智能敏感的任务 |

645| `medium` | 减少成本敏感工作的令牌使用,可以权衡一些智能 |645| `medium` | 减少成本敏感工作的令牌使用,可以权衡一些智能。Opus 5.5 上的默认值 |

646| `high` | 平衡令牌使用和智能。除 Opus 4.7 外,每个模型上的默认值 |646| `high` | 平衡令牌使用和智能。除 Opus 5.5 和 Opus 4.7 外,每个模型上的默认值 |

647| `xhigh` | 更高令牌支出的更深推理。Opus 4.7 上的默认值 |647| `xhigh` | 更高令牌支出的更深推理。Opus 4.7 上的默认值 |

648| `max` | 可以改进要求任务的性能,但可能显示收益递减,容易过度思考。在广泛采用前测试 |648| `max` | 可以改进要求任务的性能,但可能显示收益递减,容易过度思考。在广泛采用前测试 |

649| `ultracode` | 一个 Claude Code 设置,为每个实质性任务规划[动态工作流](/docs/zh-CN/workflows),每条消息 `xhigh` 推理 |649| `ultracode` | 一个 Claude Code 设置,为每个实质性任务规划[动态工作流](/docs/zh-CN/workflows),每条消息 `xhigh` 推理 |


667* **`--effort` 标志**:启动 Claude Code 时传递级别名称以为单个会话设置它667* **`--effort` 标志**:启动 Claude Code 时传递级别名称以为单个会话设置它

668* **环境变量**:将 `CLAUDE_CODE_EFFORT_LEVEL` 设置为级别名称或 `auto`668* **环境变量**:将 `CLAUDE_CODE_EFFORT_LEVEL` 设置为级别名称或 `auto`

669* **设置**:在 [`modelSettings`](/docs/zh-CN/settings-reference#modelsettings) 中设置每个模型的级别,或将 [`effortLevel`](/docs/zh-CN/settings-reference#effortlevel) 设置为 `low`、`medium`、`high` 或 `xhigh` 作为没有级别的模型的默认值。`max` 在任一键中都不被接受为级别,`ultracode` 有其自己的 [`ultracode`](/docs/zh-CN/settings-reference#ultracode) 键669* **设置**:在 [`modelSettings`](/docs/zh-CN/settings-reference#modelsettings) 中设置每个模型的级别,或将 [`effortLevel`](/docs/zh-CN/settings-reference#effortlevel) 设置为 `low`、`medium`、`high` 或 `xhigh` 作为没有级别的模型的默认值。`max` 在任一键中都不被接受为级别,`ultracode` 有其自己的 [`ultracode`](/docs/zh-CN/settings-reference#ultracode) 键

670* **从连接的设备**:在[远程控制](/docs/zh-CN/remote-control#what-connected-devices-see)会话中,从您的手机或浏览器上的努力控制中选择级别。该级别仅适用于当前会话,尽管它也结束[对模型默认努力的保持](#adjust-effort-level)。需要 Claude Code v2.1.234 或更高版本670* **从连接的设备**:在[远程控制](/docs/zh-CN/remote-control#what-connected-devices-see)会话中,从您的手机或浏览器上的努力控制中选择级别。该级别仅适用于当前会话。需要 Claude Code v2.1.234 或更高版本

671* **Skill 和子代理 frontmatter**:在 [skill](/docs/zh-CN/skills#frontmatter-reference) 或[子代理](/docs/zh-CN/sub-agents#supported-frontmatter-fields) markdown 文件中设置 `effort` 以在该 skill 或子代理运行时覆盖努力级别671* **Skill 和子代理 frontmatter**:在 [skill](/docs/zh-CN/skills#frontmatter-reference) 或[子代理](/docs/zh-CN/sub-agents#supported-frontmatter-fields) markdown 文件中设置 `effort` 以在该 skill 或子代理运行时覆盖努力级别

672 672 

673Frontmatter 努力在该 skill 或子代理活跃时应用,覆盖会话级别但不覆盖环境变量。一个 [`maxEffortLevel`](/docs/zh-CN/settings-reference#maxeffortlevel) 或[组织努力上限](#organization-effort-limits)仍然限制 skill 或子代理运行的级别。673Frontmatter 努力在该 skill 或子代理活跃时应用,覆盖会话级别但不覆盖环境变量。一个 [`maxEffortLevel`](/docs/zh-CN/settings-reference#maxeffortlevel) 或[组织努力上限](#organization-effort-limits)仍然限制 skill 或子代理运行的级别。

674 674 

675在 Fable 5、Opus 4.8 和 Opus 4.7 上,frontmatter 努力也在[对模型默认努力的保持](#adjust-effort-level)有效时应用。在 v2.1.267 之前,保持优先,Claude Code 在保持活跃时忽略 frontmatter 级别。

676 

677如果您在[托管设置](/docs/zh-CN/managed-settings)中设置 `effortLevel`,Claude Code 在[努力解析顺序](#adjust-effort-level)的设置步骤处应用它,用户仍然可以使用 `/effort` 或 `--effort` 更改级别。要将用户保持在或低于某个级别,设置 [`maxEffortLevel`](/docs/zh-CN/settings-reference#maxeffortlevel)。675如果您在[托管设置](/docs/zh-CN/managed-settings)中设置 `effortLevel`,Claude Code 在[努力解析顺序](#adjust-effort-level)的设置步骤处应用它,用户仍然可以使用 `/effort` 或 `--effort` 更改级别。要将用户保持在或低于某个级别,设置 [`maxEffortLevel`](/docs/zh-CN/settings-reference#maxeffortlevel)。

678 676 

679努力滑块在选择支持的模型时出现在 `/model` 中。当前努力级别也显示在会话标题中模型名称旁边,例如"with low effort",因此您可以确认哪个设置处于活跃状态,而无需打开 `/model`。页脚也在启动和更改时简要显示努力级别。677努力滑块在选择支持的模型时出现在 `/model` 中。当前努力级别也显示在会话标题中模型名称旁边,例如"with low effort",因此您可以确认哪个设置处于活跃状态,而无需打开 `/model`。页脚也在启动和更改时简要显示努力级别。


695扩展思考是 Claude 在响应前发出的推理。在支持[自适应推理](#adjust-effort-level)的模型上,努力级别是对发生多少思考的主要控制;下面的设置打开或关闭思考并控制它如何显示。在 Anthropic API 上关闭思考时,Claude Code 向它知道[不接受该组合](/docs/zh-CN/errors#effort-isnt-available-with-thinking-turned-off)的模型(如 Opus 5)发送努力 `high` 而不是更高级别。693扩展思考是 Claude 在响应前发出的推理。在支持[自适应推理](#adjust-effort-level)的模型上,努力级别是对发生多少思考的主要控制;下面的设置打开或关闭思考并控制它如何显示。在 Anthropic API 上关闭思考时,Claude Code 向它知道[不接受该组合](/docs/zh-CN/errors#effort-isnt-available-with-thinking-turned-off)的模型(如 Opus 5)发送努力 `high` 而不是更高级别。

696 694 

697| 控制 | 如何设置 |695| 控制 | 如何设置 |

698| :------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |696| :------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

699| 当前会话的切换 | 在 macOS 上按 `Option+T` 或在 Windows 和 Linux 上按 `Alt+T` |697| 当前会话的切换 | 在 macOS 上按 `Option+T` 或在 Windows 和 Linux 上按 `Alt+T` |

700| 设置全局默认值 | 运行 `/config` 并切换思考模式。保存为 `~/.claude/settings.json` 中的 `alwaysThinkingEnabled` |698| 设置全局默认值 | 运行 `/config` 并切换思考模式。保存为 `~/.claude/settings.json` 中的 `alwaysThinkingEnabled` |

701| 通过环境变量禁用 | 设置 [`MAX_THINKING_TOKENS=0`](/docs/zh-CN/env-vars),这在 Anthropic API 上关闭思考,除了 Fable 模型。在[第三方提供商](/docs/zh-CN/third-party-integrations)上,Claude Code 改为省略 `thinking` 参数,自适应推理模型可能仍然思考。其他值仅适用于[固定思考预算](#adaptive-reasoning-and-fixed-thinking-budgets) |699| 通过环境变量禁用 | 设置 [`MAX_THINKING_TOKENS=0`](/docs/zh-CN/env-vars),这在 Anthropic API 上关闭思考,除了 Opus 5.5 和 Fable 模型。在[第三方提供商](/docs/zh-CN/third-party-integrations)上,Claude Code 改为省略 `thinking` 参数,自适应推理模型可能仍然思考。其他值仅适用于[固定思考预算](#adaptive-reasoning-and-fixed-thinking-budgets) |

702 700 

703您不能在 Fable 模型上关闭思考。会话切换、`alwaysThinkingEnabled` 和 `MAX_THINKING_TOKENS=0` 在那里没有效果,Fable 模型根据努力级别按步骤决定思考多少。701您不能在 Opus 5.5 或 Fable 模型上关闭思考。会话切换、`alwaysThinkingEnabled` 和 `MAX_THINKING_TOKENS=0` 在那里没有效果,模型根据努力级别按步骤决定思考多少。

704 702 

705Claude Code 默认折叠思考输出。按 `Ctrl+O` 切换详细模式并将推理视为灰色斜体文本。Anthropic API 上的交互式会话默认接收编辑的思考块,因此如果您想要完整摘要在展开时可用,在[设置](/docs/zh-CN/settings)中设置 `showThinkingSummaries: true`。您需要为所有生成的思考令牌付费,即使折叠或编辑。703Claude Code 默认折叠思考输出。按 `Ctrl+O` 切换详细模式并将推理视为灰色斜体文本。Anthropic API 上的交互式会话默认接收编辑的思考块,因此如果您想要完整摘要在展开时可用,在[设置](/docs/zh-CN/settings)中设置 `showThinkingSummaries: true`。您需要为所有生成的思考令牌付费,即使折叠或编辑。

706 704 


786如果您没有设置自动压缩窗口,Claude Code 会在对话达到模型的上下文限制时进行压缩,除了以下会话:784如果您没有设置自动压缩窗口,Claude Code 会在对话达到模型的上下文限制时进行压缩,除了以下会话:

787 785 

788* [云会话](/docs/zh-CN/claude-code-on-the-web)在对话接近模型限制时进行压缩786* [云会话](/docs/zh-CN/claude-code-on-the-web)在对话接近模型限制时进行压缩

789* Sonnet 4.6 和 Opus 4.6(不带[扩展上下文](#extended-context))在 200K 边界处进行压缩,Opus 4.8 和 Opus 5 在使用 200K 上下文窗口运行时也是如此,例如在 Amazon Bedrock、Google Cloud 的 Agent Platform 和 Microsoft Foundry 上787* Sonnet 4.6 和 Opus 4.6(不带[扩展上下文](#extended-context))在 200K 边界处进行压缩,Opus 4.8 和更高版本在使用 200K 上下文窗口运行时也是如此,例如在 Amazon Bedrock、Google Cloud 的 Agent Platform 和 Microsoft Foundry 上

790* 当您设置 [`CLAUDE_CODE_DISABLE_1M_CONTEXT=1`](/docs/zh-CN/env-vars) 时,具有原生 1M 窗口的模型(例如 Sonnet 5 和 Fable 模型)在 200K 边界处进行压缩788* 当您设置 [`CLAUDE_CODE_DISABLE_1M_CONTEXT=1`](/docs/zh-CN/env-vars) 时,具有原生 1M 窗口的模型(例如 Sonnet 5 和 Fable 模型)在 200K 边界处进行压缩

791* 使用原生 1M 窗口运行的模型(例如 Sonnet 5、Fable 模型以及 Anthropic API 上的 Opus 4.7 及更高版本)在窗口填满之前进行压缩,默认情况下约为 967K 令牌。在 Amazon Bedrock、Google Cloud 的 Agent Platform 和 Microsoft Foundry 上,[为第三方部署固定模型](#pin-models-for-third-party-deployments)说明了哪些模型使用该窗口;对于将 Sonnet 5 预算为 200K 的配置,请参阅 [Sonnet 5 上下文窗口](#sonnet-5-context-window)789* 使用原生 1M 窗口运行的模型(例如 Sonnet 5、Fable 模型以及 Anthropic API 上的 Opus 4.7 及更高版本)在窗口填满之前进行压缩,默认情况下约为 967K 令牌。在 Amazon Bedrock、Google Cloud 的 Agent Platform 和 Microsoft Foundry 上,[为第三方部署固定模型](#pin-models-for-third-party-deployments)说明了哪些模型使用该窗口;对于将 Sonnet 5 预算为 200K 的配置,请参阅 [Sonnet 5 上下文窗口](#sonnet-5-context-window)

792* 在 Claude Code 不识别的模型 ID(例如 [LLM 网关](/docs/zh-CN/llm-gateway)别名)上的会话在 Claude Code 为该 ID 假设的上下文窗口处进行压缩;请参阅[为网关或自定义模型 ID 更正窗口](#correct-the-window-for-a-gateway-or-custom-model-id)790* 在 Claude Code 不识别的模型 ID(例如 [LLM 网关](/docs/zh-CN/llm-gateway)别名)上的会话在 Claude Code 为该 ID 假设的上下文窗口处进行压缩;请参阅[为网关或自定义模型 ID 更正窗口](#correct-the-window-for-a-gateway-or-custom-model-id)


831此示例设置所有三个变量以使网关路由的 Opus 部署可选择。Claude Code 在启动时读取环境变量,因此在启动 `claude` 之前运行导出,或重启现有会话以获取它们:829此示例设置所有三个变量以使网关路由的 Opus 部署可选择。Claude Code 在启动时读取环境变量,因此在启动 `claude` 之前运行导出,或重启现有会话以获取它们:

832 830 

833```bash theme={null}831```bash theme={null}

834export ANTHROPIC_CUSTOM_MODEL_OPTION="my-gateway/claude-opus-5"832export ANTHROPIC_CUSTOM_MODEL_OPTION="my-gateway/claude-opus-5-5"

835export ANTHROPIC_CUSTOM_MODEL_OPTION_NAME="Opus via Gateway"833export ANTHROPIC_CUSTOM_MODEL_OPTION_NAME="Opus via Gateway"

836export ANTHROPIC_CUSTOM_MODEL_OPTION_DESCRIPTION="Custom deployment routed through the internal LLM gateway"834export ANTHROPIC_CUSTOM_MODEL_OPTION_DESCRIPTION="Custom deployment routed through the internal LLM gateway"

837```835```


847 845 

848当设置 [`availableModels`](#restrict-model-selection) 时,也要在允许列表中包含自定义模型 ID。否则 Claude Code 会从选择器中过滤自定义条目,并拒绝对其进行 `--model` 选择,就像任何其他被排除的模型一样。846当设置 [`availableModels`](#restrict-model-selection) 时,也要在允许列表中包含自定义模型 ID。否则 Claude Code 会从选择器中过滤自定义条目,并拒绝对其进行 `--model` 选择,就像任何其他被排除的模型一样。

849 847 

850嵌入了系列名称的自定义 ID(例如 `my-gateway/claude-opus-5`)计为该系列的特定条目并禁用其通配符,因此还要列出您打算保持可选择的版本。请参阅 [合并行为](#merge-behavior)。848嵌入了系列名称的自定义 ID(例如 `my-gateway/claude-opus-5-5`),计为该系列的特定条目并禁用其通配符,因此还要列出您打算保持可选择的版本。请参阅 [合并行为](#merge-behavior)。

851 849 

852<h2 id="environment-variables">850<h2 id="environment-variables">

853 环境变量851 环境变量

Details

123| `OTEL_LOG_ASSISTANT_RESPONSES` | 在 `assistant_response` 事件上启用助手响应文本的日志记录(默认值:禁用)。未设置时,回退到 `OTEL_LOG_USER_PROMPTS` 的值。需要 Claude Code v2.1.193 或更高版本 | `1` 启用,`0` 保持编辑 |123| `OTEL_LOG_ASSISTANT_RESPONSES` | 在 `assistant_response` 事件上启用助手响应文本的日志记录(默认值:禁用)。未设置时,回退到 `OTEL_LOG_USER_PROMPTS` 的值。需要 Claude Code v2.1.193 或更高版本 | `1` 启用,`0` 保持编辑 |

124| `OTEL_LOG_TOOL_DETAILS` | 启用工具事件和跟踪跨度属性中的工具参数和输入参数的日志记录:Bash 命令、MCP 服务器和工具名称、技能名称、用户编写的工作流名称和工具输入。还在 `user_prompt` 事件上启用自定义、插件和 MCP 命令名称(默认值:禁用)。对于 Claude Desktop 的内置服务器,在 Claude Desktop 拥有的会话中,即使关闭该标志,`mcp_server_name`/`mcp_tool_name` 也会在 `tool_decision`/`tool_result` 上发出。该异常需要 Claude Code v2.1.214 或更高版本 | `1` 启用 |124| `OTEL_LOG_TOOL_DETAILS` | 启用工具事件和跟踪跨度属性中的工具参数和输入参数的日志记录:Bash 命令、MCP 服务器和工具名称、技能名称、用户编写的工作流名称和工具输入。还在 `user_prompt` 事件上启用自定义、插件和 MCP 命令名称(默认值:禁用)。对于 Claude Desktop 的内置服务器,在 Claude Desktop 拥有的会话中,即使关闭该标志,`mcp_server_name`/`mcp_tool_name` 也会在 `tool_decision`/`tool_result` 上发出。该异常需要 Claude Code v2.1.214 或更高版本 | `1` 启用 |

125| `OTEL_LOG_TOOL_CONTENT` | 启用 [`tool.output` 跨度事件](#tool-output-span-event)中工具内容的日志记录(默认值:禁用)。跨度属性在[其自己的门控](#new-context-gates)下携带工具内容。需要[跟踪](#traces-beta)。内容在内容限制处截断(默认值:60 KB) | `1` 启用 |125| `OTEL_LOG_TOOL_CONTENT` | 启用 [`tool.output` 跨度事件](#tool-output-span-event)中工具内容的日志记录(默认值:禁用)。跨度属性在[其自己的门控](#new-context-gates)下携带工具内容。需要[跟踪](#traces-beta)。内容在内容限制处截断(默认值:60 KB) | `1` 启用 |

126| `OTEL_LOG_MANAGED_SETTINGS` | 将编辑的托管设置和编辑前设置的 SHA-256 摘要添加到[托管设置已解决](#managed-settings-resolved-event)事件(默认值:禁用)。项目或本地设置中的值不会将其打开。需要 Claude Code v2.1.274 或更高版本 | `1` 启用 |

126| `OTEL_LOG_RAW_API_BODIES` | 将完整的 Anthropic Messages API 请求和响应 JSON 作为 `api_request_body` / `api_response_body` 日志事件发出(默认值:禁用)。正文包括整个对话历史记录。启用此选项意味着同意 `OTEL_LOG_USER_PROMPTS`、`OTEL_LOG_TOOL_DETAILS` 和 `OTEL_LOG_TOOL_CONTENT` 会透露的所有内容 | `1` 表示在内容限制处截断的内联正文(默认值:60 KB),或 `file:<dir>` 表示磁盘上未截断的正文,事件中带有 `body_ref` 指针 |127| `OTEL_LOG_RAW_API_BODIES` | 将完整的 Anthropic Messages API 请求和响应 JSON 作为 `api_request_body` / `api_response_body` 日志事件发出(默认值:禁用)。正文包括整个对话历史记录。启用此选项意味着同意 `OTEL_LOG_USER_PROMPTS`、`OTEL_LOG_TOOL_DETAILS` 和 `OTEL_LOG_TOOL_CONTENT` 会透露的所有内容 | `1` 表示在内容限制处截断的内联正文(默认值:60 KB),或 `file:<dir>` 表示磁盘上未截断的正文,事件中带有 `body_ref` 指针 |

127| `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` | 内容限制:内容承载属性(如模型响应、工具内容、系统提示和原始 API 正文)的最大长度,包括截断标记,以 UTF-16 代码单位为单位(默认值:61440,即 60 KB)。默认值针对将属性值上限设为 64 KB 的后端进行了调整;仅当您的后端接受更大的值时才提高它,或降低它以减少遥测量。当设置了 OpenTelemetry SDK 属性限制 `OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT` 或其日志记录和跨度变体之一时,Claude Code 会在该较小的值处截断,以便 `[TRUNCATED ...]` 标记保持在 SDK 限制内。需要 Claude Code v2.1.214 或更高版本 | `262144` |128| `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` | 内容限制:内容承载属性(如模型响应、工具内容、系统提示和原始 API 正文)的最大长度,包括截断标记,以 UTF-16 代码单位为单位(默认值:61440,即 60 KB)。默认值针对将属性值上限设为 64 KB 的后端进行了调整;仅当您的后端接受更大的值时才提高它,或降低它以减少遥测量。当设置了 OpenTelemetry SDK 属性限制 `OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT` 或其日志记录和跨度变体之一时,Claude Code 会在该较小的值处截断,以便 `[TRUNCATED ...]` 标记保持在 SDK 限制内。需要 Claude Code v2.1.214 或更高版本 | `262144` |

128| `OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE` | 指标时间性偏好(默认值:`delta`)。如果您的后端期望累积时间性,请设置为 `cumulative` | `delta`、`cumulative` |129| `OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE` | 指标时间性偏好(默认值:`delta`)。如果您的后端期望累积时间性,请设置为 `cumulative` | `delta`、`cumulative` |


161较低的基数通常意味着更好的性能和更低的存储成本,但数据分析的粒度较低。162较低的基数通常意味着更好的性能和更低的存储成本,但数据分析的粒度较低。

162 163 

163<h3 id="traces-beta">164<h3 id="traces-beta">

164 跟踪(测试版)165 Traces(测试版)

165</h3>166</h3>

166 167 

167分布式跟踪导出跨度,将每个用户提示链接到它触发的 API 请求和工具执行,因此您可以在跟踪后端中将完整请求视为单个跟踪。168分布式跟踪导出跨度,将每个用户提示链接到它触发的 API 请求和工具执行,因此您可以在跟踪后端中将完整请求视为单个跟踪。


241| `workflow.run_id` | 生成此代理的[工作流](/docs/zh-CN/workflows)工具运行的运行标识符,前缀为 `wf_`。对于不是由工作流生成的代理不存在 | |242| `workflow.run_id` | 生成此代理的[工作流](/docs/zh-CN/workflows)工具运行的运行标识符,前缀为 `wf_`。对于不是由工作流生成的代理不存在 | |

242| `workflow.name` | 生成此代理的工作流的名称。用户编写的名称被替换为 `custom`,除非设置了门控 | `OTEL_LOG_TOOL_DETAILS` |243| `workflow.name` | 生成此代理的工作流的名称。用户编写的名称被替换为 `custom`,除非设置了门控 | `OTEL_LOG_TOOL_DETAILS` |

243| `speed` | `fast` 或 `normal` | |244| `speed` | `fast` 或 `normal` | |

245| `effort` | [应用于请求的工作量级别](/docs/zh-CN/model-config#adjust-effort-level):`low`、`medium`、`high`、`xhigh` 或 `max`。当 Claude Code 不发送工作量级别时不存在,例如在不支持工作量的模型上。需要 Claude Code v2.1.274 或更高版本 | |

244| `llm_request.context` | `interaction`、`tool` 或 `standalone`,取决于父跨度 | |246| `llm_request.context` | `interaction`、`tool` 或 `standalone`,取决于父跨度 | |

245| `duration_ms` | 包括重试的挂钟持续时间 | |247| `duration_ms` | 包括重试的挂钟持续时间 | |

246| `ttft_ms` | 首个令牌的时间(毫秒) | |248| `ttft_ms` | 首个令牌的时间(毫秒) | |


385echo "{\"Authorization\": \"Bearer $(get-token.sh)\", \"X-API-Key\": \"$(get-api-key.sh)\"}"387echo "{\"Authorization\": \"Bearer $(get-token.sh)\", \"X-API-Key\": \"$(get-api-key.sh)\"}"

386```388```

387 389 

388如果助手失败或打印不符合这些要求的输出,Claude Code 会在以下位置报告错误:390如果助手失败或打印不符合这些要求的输出,导出会失败,您的遥测后端在助手再次工作之前不会从会话接收任何内容。Claude Code 在以下位置报告失败:

389 391 

392* 交互式会话中的警告通知,[`otelHeadersHelper failed; telemetry is not being exported`](/docs/zh-CN/errors#otelheadershelper-failed),在助手首次失败时每个会话显示一次

390* `/status` 输出393* `/status` 输出

391* 调试日志,当使用 [`--debug`](/docs/zh-CN/cli-reference#cli-flags) 运行或在会话中运行 `/debug` 后394* 调试日志,当使用 [`--debug`](/docs/zh-CN/cli-reference#cli-flags) 运行或在会话中运行 `/debug` 后

392* stderr,在使用 `-p` 启动的非交互式会话中395* stderr,在使用 `-p` 启动的非交互式会话中


709当用户提交提示时,Claude Code 可能会进行多个 API 调用并运行多个工具。`prompt.id` 属性让您将所有这些事件与触发它们的单个提示联系起来。712当用户提交提示时,Claude Code 可能会进行多个 API 调用并运行多个工具。`prompt.id` 属性让您将所有这些事件与触发它们的单个提示联系起来。

710 713 

711| 属性 | 描述 |714| 属性 | 描述 |

712| ------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |715| ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

713| `prompt.id` | UUID v4 标识符,链接处理单个用户提示时生成的所有事件 |716| `prompt.id` | UUID v4 标识符,链接处理单个用户提示时生成的所有事件 |

714| `event.sequence` | 0 开始的计数器,用于排序事件,按 Claude Code 进程而不是按会话计数 |717| `event.sequence` | 0 开始的计数器,用于排序事件,按 Claude Code 进程而不是按会话计数 |

715| `message.uuid` | 消息的 UUID,如会话记录中保存的那样,`~/.claude/projects/*/*.jsonl` 文件。在 `assistant_response` 上存在,在 `user_prompt` 上存在,除了命令分派,它可以产生零个或多个消息。在 `assistant_response` 上,这是响应的最终记录条目,下一轮的 `parentUuid` 从其链接。需要 Claude Code v2.1.214 或更高版本 |718| `message.uuid` | 消息的 UUID,如会话记录中保存的那样,`~/.claude/projects/*/*.jsonl` 文件。在 `assistant_response` 上存在,在 `api_response_body` 上存在,在 `user_prompt` 上存在,除了命令分派,它可以产生零个或多个消息。在 `assistant_response` 和 `api_response_body` 上,这是响应的最终记录条目,下一轮的 `parentUuid` 从其链接。需要 Claude Code v2.1.214 或更高版本,或在 `api_response_body` 上需要 v2.1.274 或更高版本 |

716| `client_request_id` | 客户端生成的 UUID,作为 `x-client-request-id` 请求标头发送。在第一方 API 连接上的 `api_request` 和 `api_error` 上存在;在第三方提供商后端上不存在,当请求通过非流式回退重试时。将请求与其响应配对,并对于从未产生服务器 `request_id` 的超时等失败保持可用。与 `llm_request` 跟踪跨度上的相同属性匹配。需要 Claude Code v2.1.214 或更高版本 |719| `client_request_id` | 客户端生成的 UUID,作为 `x-client-request-id` 请求标头发送。在第一方 API 连接上的 `api_request` 和 `api_error` 上存在;在第三方提供商后端上不存在,当请求通过非流式回退重试时。将请求与其响应配对,并对于从未产生服务器 `request_id` 的超时等失败保持可用。与 `llm_request` 跟踪跨度上的相同属性匹配。需要 Claude Code v2.1.214 或更高版本 |

717 720 

718要跟踪由单个提示触发的所有活动,请按特定 `prompt.id` 值过滤您的事件。这会返回 user\_prompt 事件、任何 api\_request 事件以及处理该提示时发生的任何 tool\_result 事件。721要跟踪由单个提示触发的所有活动,请按特定 `prompt.id` 值过滤您的事件。这会返回 user\_prompt 事件、任何 api\_request 事件以及处理该提示时发生的任何 tool\_result 事件。


721 724 

722对于消息级别的重建,每个事件类都携带与会话记录中的字段匹配的键。记录条目格式是 [Claude Code 内部的](/docs/zh-CN/sessions#where-transcripts-are-stored),在版本之间变化,因此在这些字段上联接的管道可能在任何版本上中断;将联接视为版本特定的而不是稳定的合同:725对于消息级别的重建,每个事件类都携带与会话记录中的字段匹配的键。记录条目格式是 [Claude Code 内部的](/docs/zh-CN/sessions#where-transcripts-are-stored),在版本之间变化,因此在这些字段上联接的管道可能在任何版本上中断;将联接视为版本特定的而不是稳定的合同:

723 726 

724* `message.uuid` 在 `user_prompt` 和 `assistant_response` 上727* `message.uuid` 在 `user_prompt`、`assistant_response` 和 `api_response_body` 上

725* `request_id` 在 API 事件上,在记录的助手条目上保存为 `requestId`728* `request_id` 在 API 事件上,在记录的助手条目上保存为 `requestId`

726* `tool_use_id` 在 `tool_result` 和 `tool_decision` 事件上729* `tool_use_id` 在 `tool_result` 和 `tool_decision` 事件上

727 730 


1341* `files_past_cutoff`:超过保留期的文件,扫描未能删除,例如因为权限错误或文件被打开。值高于零表示文件超过了配置的保留期;零不是证明没有任何文件,因为整个目录删除失败计入 `error_count` 而不是1344* `files_past_cutoff`:超过保留期的文件,扫描未能删除,例如因为权限错误或文件被打开。值高于零表示文件超过了配置的保留期;零不是证明没有任何文件,因为整个目录删除失败计入 `error_count` 而不是

1342* `error_count`:扫描在列出或删除文件时遇到的错误数1345* `error_count`:扫描在列出或删除文件时遇到的错误数

1343 1346 

1347<h4 id="managed-settings-resolved-event">

1348 托管设置已解析事件

1349</h4>

1350 

1351在会话解析的 [托管设置](/docs/zh-CN/managed-settings) 时记录:在会话开始时一次,当托管设置或 [策略助手](/docs/zh-CN/managed-settings#compute-the-policy-with-a-helper-program) 的状态在会话期间更改时再次,以及当 Claude Code 拒绝启动或因 `error.type` 属性列出的原因之一而结束会话时。

1352使用此事件查找在意外托管来源上运行的机器、策略助手失败的机器以及机器拒绝启动的原因。

1353需要 Claude Code v2.1.274 或更高版本。

1354 

1355默认情况下,事件携带托管来源和策略助手的状态,但不携带设置本身。要添加编辑的 `managed_settings.settings` 属性和 `managed_settings.resolved_sha256` 摘要,设置 `OTEL_LOG_MANAGED_SETTINGS=1`:

1356 

1357* 在托管设置、用户设置或 `--settings` 的 `env` 块中设置它,或在启动 Claude Code 的环境中。项目或本地设置中的值不会打开它,因为克隆的存储库可以写入它们。

1358* 服务器托管设置可以在不显示 [安全批准对话](/docs/zh-CN/server-managed-settings#security-approval-dialogs) 的情况下设置它,因为变量仅将您组织自己的编辑策略添加到您的组织已接收的事件。

1359 

1360在您尚未 [信任](/docs/zh-CN/permissions#what-runs-before-you-trust-a-folder) 的文件夹中的交互式会话中,Claude Code 不会导出拒绝事件,因为项目和本地设置可能会在信任前将导出指向不同的收集器。

1361 

1362**事件名称**:`claude_code.managed_settings_resolved`

1363 

1364**属性**:

1365 

1366* 所有 [标准属性](#standard-attributes)

1367* `event.name`:`"managed_settings_resolved"`

1368* `event.timestamp`:ISO 8601 时间戳

1369* `event.sequence`:用于排序事件的单调递增计数器,在 [事件关联属性](#event-correlation-attributes) 下描述

1370* `managed_settings.trigger`:`"startup"` 用于会话启动事件,`"change"` 当托管设置或策略助手的状态在会话后期更改时,或 `"refused"` 当托管设置策略停止会话时。Claude Code 仅在属性与它发送的最后一个事件不同时发送 `change` 事件,更改的设置值计数即使 `OTEL_LOG_MANAGED_SETTINGS` 关闭时也计数

1371* `error.type`:Claude Code 停止会话的原因。仅在 `refused` 事件上存在:

1372 * `"helper_failed"`:[策略助手运行失败](/docs/zh-CN/settings-reference#helper-failures)

1373 * `"policy_invalid"`:托管设置包含阻止 Claude Code 启动的错误,或管理员来源无法加载,因此 Claude Code 无法检查组织登录强制

1374 * `"consent_rejected"`:用户拒绝了 [安全批准对话](/docs/zh-CN/server-managed-settings#security-approval-dialogs) 用于服务器托管设置

1375 * `"force_refresh_failed"`:[`forceRemoteSettingsRefresh`](/docs/zh-CN/settings-reference#forceremotesettingsrefresh) 需要的设置获取失败

1376 * `"gateway_rejected"`:[Claude apps gateway](/docs/zh-CN/claude-apps-gateway) 用 HTTP 403 回答托管设置加载

1377 * `"version_below_minimum"`:此版本的 Claude Code 低于 [`requiredMinimumVersion`](/docs/zh-CN/settings-reference#requiredminimumversion) 或高于 [`requiredMaximumVersion`](/docs/zh-CN/settings-reference#requiredmaximumversion)

1378 * `"_OTHER"`:Claude apps gateway 托管设置加载因另一个原因失败

1379* `managed_settings.sources`:每个传递至少一个 [策略键](/docs/zh-CN/managed-settings#how-claude-code-combines-managed-sources) 的托管来源,优先级最高的优先,包括其键在 `first-wins` 下不生效的来源。值为 `"remote"`、`"plist"` 或 `"hklm"` 用于 MDM 或 OS 级策略、`"file"` 用于托管设置文件和放置、`"parent"` 当 [嵌入主机](/docs/zh-CN/managed-settings#let-an-embedding-host-add-policy) 提供设置时,以及 `"hkcu"` 用于 [Windows HKCU 注册表值](/docs/zh-CN/managed-settings#where-each-mechanism-stores-the-policy) 当 Claude Code [读取它](/docs/zh-CN/managed-settings#how-claude-code-combines-managed-sources) 时。仅携带控制键的来源或 Claude Code 无法读取的来源不被列出。作为字符串数组发出,当没有托管来源传递策略键时为空

1380* `managed_settings.source_behavior`:Claude Code 读取的 [`managedSourcesBehavior`](/docs/zh-CN/settings-reference#managedsourcesbehavior) 值,`"first-wins"` 或 `"merge"`。当没有来源设置键时为 `"first-wins"`

1381* `managed_settings.helper.state`:所选 MDM 或文件来源配置的策略助手的状态:

1382 * `"ok"`:助手的输出作为托管设置提供

1383 * `"bad_path"`、`"not_a_file"`、`"exit_nonzero"`、`"timed_out"`、`"oversize"`、`"parse_failed"`、`"envelope_invalid"` 或 `"schema_rejected"`:助手的最后一次运行失败。[助手失败](/docs/zh-CN/settings-reference#helper-failures) 描述了这些情况

1384 * `"none"`:没有配置助手,或配置它的来源不是 MDM 策略或托管设置文件

1385* `managed_settings.helper.applied`:`"output"` 当助手自己的输出作为托管设置提供时,`"none"` 当它不提供时

1386* `managed_settings.helper.entry`:当 Claude Code 选择了 [`policyHelper`](/docs/zh-CN/settings-reference#policyhelper) 时为 `"policyHelper"`。当它选择了没有助手时不存在

1387* `managed_settings.helper.path`:助手的配置 [`path`](/docs/zh-CN/settings-reference#policyhelper-path)。每当 Claude Code 选择了助手时存在,无论 `OTEL_LOG_MANAGED_SETTINGS` 是否设置

1388* `managed_settings.resolved_sha256`(当 `OTEL_LOG_MANAGED_SETTINGS=1` 时):解析的托管设置在编辑前的 SHA-256,序列化为 JSON,键递归排序且无空格。具有相同摘要的机器运行相同的策略。Claude Code 仅使用选择加入发送摘要,因为短策略可以通过哈希猜测恢复。当没有托管设置解析时不存在,在 `refused` 事件上不存在

1389* `managed_settings.settings`(当 `OTEL_LOG_MANAGED_SETTINGS=1` 时):解析的托管设置的名称和形状作为 JSON 字符串,值被编辑。在 `refused` 事件上不存在。Claude Code 从其设置架构构建它:

1390 

1391 * 架构声明导出的设置名称,架构不声明的键被留出

1392 * 布尔值、数字和字符串值,架构限制为固定选项集,例如 `permissions.defaultMode`,按原样导出。`sandbox.network.httpProxyPort` 和 `sandbox.network.socksProxyPort` 导出为 `"[REDACTED]"`

1393 * 每个其他字符串,例如 `model`、`apiKeyHelper`、每个 `env` 值、每个 URL 和每个命令,导出为 `"[REDACTED]"`

1394 * 地图的条目名称,例如 `env` 变量名称和插件 ID,按原样导出。架构不键入其条目的设置,例如 `vimInsertModeRemaps`,导出为单个 `"[REDACTED]"`,`sandbox.ignoreViolations` 导出为其路径列表的列表,不带命令模式

1395 * 列表保留其长度,每个条目按相同规则编辑

1396 * `permissions.allow`、`permissions.deny` 或 `permissions.ask` 规则导出为其工具名称,内容编辑,例如 `Read([REDACTED])`,当工具内置于此版本的 Claude Code 或是 `mcp__` 参考(例如 `mcp__jira__create_issue`)时。任何其他规则导出为 `"[REDACTED]"`

1397 * Hooks 遵循相同的规则,因此固定选项和数值字段(例如 `type` 和 `timeout`)显示,而每个命令、URL、`matcher` 和 `if` 条件导出为 `"[REDACTED]"`

1398 

1399 例如,具有 `apiKeyHelper`、两个 `env` 变量和拒绝规则的托管设置导出为 `{"apiKeyHelper":"[REDACTED]","env":{"HTTPS_PROXY":"[REDACTED]","CLAUDE_CODE_ENABLE_TELEMETRY":"[REDACTED]"},"permissions":{"deny":["Read([REDACTED])"]}}`.

1400 

1401 Claude Code 在 8 KB UTF-8 处切割值,切割值不是有效的 JSON

1402* `managed_settings.settings_truncated`(当 `managed_settings.settings` 存在时):当 Claude Code 在 8 KB 处切割 `managed_settings.settings` 时为 `true`,否则为 `false`。作为布尔值而不是字符串发出。

1403 

1344<h2 id="interpret-metrics-and-events-data">1404<h2 id="interpret-metrics-and-events-data">

1345 解释指标和事件数据1405 解释指标和事件数据

1346</h2>1406</h2>


1460构建检测规则时,查找您想要监控的信号并查询您的后端以获取相应的事件和属性:1520构建检测规则时,查找您想要监控的信号并查询您的后端以获取相应的事件和属性:

1461 1521 

1462| 信号 | 事件 | 关键属性 |1522| 信号 | 事件 | 关键属性 |

1463| ----------------- | --------------------------------------------------------------------- | ---------------------------------------------------------- |1523| ---------------------------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

1464| 工具调用被允许或拒绝,以及通过什么 | `tool_decision` | `decision`、`source`、`tool_name`、`tool_parameters` |1524| 工具调用被允许或拒绝,以及通过什么 | `tool_decision` | `decision`、`source`、`tool_name`、`tool_parameters` |

1465| 权限模式升级 | `permission_mode_changed` | `from_mode`、`to_mode`、`trigger` |1525| 权限模式升级 | `permission_mode_changed` | `from_mode`、`to_mode`、`trigger` |

1466| 策略 hook 阻止了操作 | `hook_execution_complete` | `hook_event`、`num_blocking` |1526| 策略 hook 阻止了操作 | `hook_execution_complete` | `hook_event`、`num_blocking` |


1468| MCP 服务器连接或失败 | `mcp_server_connection` | `status`、`server_name`、`is_plugin`、`error_code` |1528| MCP 服务器连接或失败 | `mcp_server_connection` | `status`、`server_name`、`is_plugin`、`error_code` |

1469| 插件已安装及其来源 | `plugin_installed` | `plugin.name`、`marketplace.name`、`marketplace.is_official` |1529| 插件已安装及其来源 | `plugin_installed` | `plugin.name`、`marketplace.name`、`marketplace.is_official` |

1470| 运行的命令和触及的文件 | `tool_result`(已执行)或 `tool_decision`(已拒绝),带有 `OTEL_LOG_TOOL_DETAILS=1` | `tool_parameters`;`tool_input`(仅 `tool_result`) |1530| 运行的命令和触及的文件 | `tool_result`(已执行)或 `tool_decision`(已拒绝),带有 `OTEL_LOG_TOOL_DETAILS=1` | `tool_parameters`;`tool_input`(仅 `tool_result`) |

1531| 托管设置源机器运行的内容、其策略助手是否健康,以及机器拒绝启动的原因 | `managed_settings_resolved` | `managed_settings.trigger`、`managed_settings.sources`、`managed_settings.source_behavior`、`managed_settings.helper.state`、`error.type`;`managed_settings.settings` 和 `managed_settings.resolved_sha256`,带有 `OTEL_LOG_MANAGED_SETTINGS=1` |

1471 1532 

1472Claude Code 仅发出原始事件流。异常检测、基线化、跨会话关联和警报是您的 SIEM 或可观测性后端的责任。1533Claude Code 仅发出原始事件流。异常检测、基线化、跨会话关联和警报是您的 SIEM 或可观测性后端的责任。

1473 1534 

Details

245| `registry.npmjs.org` | 插件安装(获取 npm 源插件包和安装插件的 Node.js 包依赖项)、`npx` 启动的 MCP 服务器以及 npm 和 bun 安装 Claude Code 本身的包注册表 |245| `registry.npmjs.org` | 插件安装(获取 npm 源插件包和安装插件的 Node.js 包依赖项)、`npx` 启动的 MCP 服务器以及 npm 和 bun 安装 Claude Code 本身的包注册表 |

246| `bridge.claudeusercontent.com` | [Chrome 中的 Claude](/docs/zh-CN/chrome) 扩展 WebSocket 桥接 |246| `bridge.claudeusercontent.com` | [Chrome 中的 Claude](/docs/zh-CN/chrome) 扩展 WebSocket 桥接 |

247| `*.frame.claudeusercontent.com` | [Artifact](/docs/zh-CN/artifacts) 内容读取。当 Claude 打开 Artifact 时,CLI 从此主机获取 Artifact 的文件,仅当 Artifact 工具对您的账户[可用](/docs/zh-CN/artifacts#availability)时。要关闭该工具并删除此要求,请设置 [`"enableArtifact": false`](/docs/zh-CN/settings-reference#enableartifact) 或 [`CLAUDE_CODE_DISABLE_ARTIFACT=1`](/docs/zh-CN/env-vars);Claude Code 也遵守已弃用的 [`disableArtifact`](/docs/zh-CN/settings-reference#disableartifact) 设置。有关这些设置如何相互作用,请参阅[禁用 Artifact](/docs/zh-CN/artifacts#disable-artifacts) |247| `*.frame.claudeusercontent.com` | [Artifact](/docs/zh-CN/artifacts) 内容读取。当 Claude 打开 Artifact 时,CLI 从此主机获取 Artifact 的文件,仅当 Artifact 工具对您的账户[可用](/docs/zh-CN/artifacts#availability)时。要关闭该工具并删除此要求,请设置 [`"enableArtifact": false`](/docs/zh-CN/settings-reference#enableartifact) 或 [`CLAUDE_CODE_DISABLE_ARTIFACT=1`](/docs/zh-CN/env-vars);Claude Code 也遵守已弃用的 [`disableArtifact`](/docs/zh-CN/settings-reference#disableartifact) 设置。有关这些设置如何相互作用,请参阅[禁用 Artifact](/docs/zh-CN/artifacts#disable-artifacts) |

248| `github.com` | 克隆 GitHub 托管的[插件市场](/docs/zh-CN/plugin-marketplaces)和插件,包括官方 Anthropic 市场,通过 HTTPS 或 SSH。要仅通过 HTTPS 克隆 GitHub `owner/repo` 源,请设置 [`CLAUDE_CODE_PLUGIN_PREFER_HTTPS=1`](/docs/zh-CN/env-vars) |

248| `raw.githubusercontent.com` | [`/release-notes`](/docs/zh-CN/commands) 的更新日志源。在交互式会话中,当 Claude Code 的缓存更新日志尚未涵盖运行版本时(例如更新后的首次启动),Claude Code 也会在启动时在后台获取它;非交互式和云会话永远不会获取它 |249| `raw.githubusercontent.com` | [`/release-notes`](/docs/zh-CN/commands) 的更新日志源。在交互式会话中,当 Claude Code 的缓存更新日志尚未涵盖运行版本时(例如更新后的首次启动),Claude Code 也会在启动时在后台获取它;非交互式和云会话永远不会获取它 |

249| `*-review.googlesource.com` | `googlesource.com` 检出上的 Gerrit 更改查询。当 Claude Desktop Code 标签会话在[受信任](/docs/zh-CN/permissions#project-allow-rules-and-workspace-trust)的检出上启动或恢复,且其 `origin` 是 `googlesource.com` 主机时,Claude Code 会匿名向该主机的 `-review` 服务器查询与 HEAD 的 `Change-Id` 匹配的开放更改,每次启动或恢复一次。其他会话类型跳过查询,不会联系其他 Gerrit 主机。可选:使用 [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/zh-CN/env-vars) 禁用 |250| `*-review.googlesource.com` | `googlesource.com` 检出上的 Gerrit 更改查询。当 Claude Desktop Code 标签会话在[受信任](/docs/zh-CN/permissions#project-allow-rules-and-workspace-trust)的检出上启动或恢复,且其 `origin` 是 `googlesource.com` 主机时,Claude Code 会匿名向该主机的 `-review` 服务器查询与 HEAD 的 `Change-Id` 匹配的开放更改,每次启动或恢复一次。其他会话类型跳过查询,不会联系其他 Gerrit 主机。可选:使用 [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/zh-CN/env-vars) 禁用 |

250| `http-intake.logs.us5.datadoghq.com` | 操作遥测事件,仅在 CLI 直接使用 Anthropic API 时发送,不适用于 Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry。可选:使用 [`DISABLE_TELEMETRY`](/docs/zh-CN/data-usage#telemetry-services) 或 `DO_NOT_TRACK` 禁用 |251| `http-intake.logs.us5.datadoghq.com` | 操作遥测事件,仅在 CLI 直接使用 Anthropic API 时发送,不适用于 Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry。可选:使用 [`DISABLE_TELEMETRY`](/docs/zh-CN/data-usage#telemetry-services) 或 `DO_NOT_TRACK` 禁用 |

output-styles.md +124 −42

Details

4 4 

5# 输出样式5# 输出样式

6 6 

7> 将 Claude Code 适配用于软件工程之外的用途7> 通过内置输出样式(如简洁或解释性)或自定义样式来改变 Claude Code 的角色、语气和响应格式。

8 8 

9输出样式改变 Claude 的响应方式,而不是 Claude 知道什么。它们设置 Claude 的角色、语气和输出格式,用于每个响应。当你在每个回合中不断重新提示相同的语音或格式时,或者当你希望 Claude 充当软件工程师以外的角色时,请使用一个。9输出样式是一组指令,为会话中的每个响应设置 Claude 的角色、语气和响应格式。Claude Code 包括四种内置样式(除了默认样式),你也可以编写自己的样式。

10 10 

11自定义输出样式为 Claude 提供你自己的说明,并让你选择是否保留 Claude Code 的内置软件工程说明。当你改变 Claude 的通信方式但仍在编码时(例如总是用图表回答),请保留它们。当 Claude 根本不进行软件工程时(例如写作助手或数据分析师),请省略它们。11使用输出样式来改变 Claude 在整个会话中的响应和工作方式,这样你就不需要在每个提示中重复请求。例如,内置样式可以使响应更短、为每个更改添加解释,或让 Claude 在不提出常规问题的情况下开始工作。自定义样式也可以将 Claude 转变为软件工程师以外的角色,例如写作助手或数据分析师。

12 12 

13有关你的项目、约定或代码库的说明,请改用 [CLAUDE.md](/docs/zh-CN/memory)。13* 要使用内置样式,请从[内置输出样式](#built-in-output-styles)中选择一个,然后[切换到它](#change-your-output-style)。

14* 要编写自己的指令,请[创建自定义输出样式](#create-a-custom-output-style)。

15 

16<Note>

17 输出样式为 Claude 提供要遵循的指令。它不保证某些事情总是发生或永远不会发生。某些需求适合不同的功能:

18 

19 * 对于 Claude 应该了解的关于你的项目的内容,请使用 [CLAUDE.md](/docs/zh-CN/memory)。

20 * 对于必须每次都发生的事情,例如每次编辑后的格式化或阻止命令,请使用 [hook](/docs/zh-CN/hooks-guide)。

21 * 对于技能、子代理和其他选项,请参阅[在输出样式和其他功能之间选择](#choose-between-an-output-style-and-other-features)。

22</Note>

14 23 

15<h2 id="built-in-output-styles">24<h2 id="built-in-output-styles">

16 内置输出样式25 内置输出样式

17</h2>26</h2>

18 27 

19Claude Code 的**默认**输出样式是其标准指令集,旨在帮助你高效地完成软件工程任务。28Claude Code 从[**默认**](#default)样式开始,这是其完成软件工程任务的标准指令。其他四种内置样式保留这些指令并添加各自的特定内容。

29 

30此表显示每种样式改变了什么以及何时适合使用:

31 

32| 样式 | 改变内容 | 何时使用 |

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

34| [Proactive](#proactive) | Claude 立即开始工作,对常规决策做出合理的假设,而不是询问 | 你希望 Claude 通过常规决策继续工作,如果假设有误,你可以纠正方向 |

35| [Concise](#concise) | 响应以结果开头,省略前言、叙述和总结 | 默认响应比你想要的要长 |

36| [Explanatory](#explanatory) | Claude 添加简短的 `Insight` 块,解释其编写代码背后的选择 | 你正在了解一个代码库或想要随着更改一起获得推理 |

37| [Learning](#learning) | Claude 解释其选择,并留下小段代码供你自己编写 | 你想要在完成任务的同时获得实践编码经验 |

38 

39<h3 id="default">

40 默认

41</h3>

42 

43默认意味着未选择任何输出样式。Claude Code 不添加样式指令,Claude 从 Claude Code 的标准系统提示工作,该提示是为软件工程任务编写的。

44 

45`default` 出现在 `/output-style` 列表中与其他样式一起,所以你[以相同的方式选择它](#change-your-output-style)。

46 

47<h3 id="proactive">

48 Proactive

49</h3>

50 

51在 Proactive 样式中,Claude 在你发送任务后立即开始实现。它对常规决策做出合理的假设,而不是停下来询问,除非你要求制定计划,否则不会切换到计划模式。你可以在任何时刻重定向它。

52 

53该样式的指令还告诉 Claude 在删除数据或更改共享或生产系统的操作之前在对话中与你核实。该核实是 Claude 遵循的指令,与权限提示分开。

54 

55切换到 Proactive 样式不会改变你的[权限模式](/docs/zh-CN/permission-modes)。你的权限模式仍然决定哪些工具调用在不询问你的情况下运行,所以权限提示的显示方式与你切换之前相同。

56 

57<h3 id="concise">

58 Concise

59</h3>

60 

61在 Concise 样式中,响应的第一句陈述发生了什么或答案是什么。Claude 省略了引言、逐步叙述和结尾总结,并用一到三句话回答简单问题。它以与默认样式相同的彻底程度完成工程工作。需要 Claude Code v2.1.237 或更高版本。

62 

63Claude 在以下情况下仍然会完整编写:

64 

65* **你要求的任何内容**:当你要求解释或更多细节时,Claude 会完整回答。

66* **你安全行动所需的任何内容**:错误报告、失败的测试输出、安全警告和破坏性操作的确认保留其完整内容。

67 

68<h3 id="explanatory">

69 Explanatory

70</h3>

71 

72在 Explanatory 样式中,Claude 以与默认样式相同的方式完成任务,并添加关于其做出选择原因的简短解释。每个解释出现在对话中,在其相关代码之前或之后,在标记为 `Insight` 的块中。这些解释不会作为注释写入你的文件中。

73 

74`Insight` 块包含关于你的代码库或 Claude 编写的代码的两到三个要点,例如添加 API 端点后的这个:

75 

76```text theme={null}

77★ Insight ─────────────────────────────────────

78- Every route in this repo goes through the withAuth wrapper, so the new endpoint gets session checks without its own middleware.

79- Rate limits are set per route in limits.ts, which is why this change adds an entry there rather than a global default.

80─────────────────────────────────────────────────

81```

82 

83<h3 id="learning">

84 Learning

85</h3>

86 

87在 Learning 样式中,Claude 添加与 [Explanatory 样式](#explanatory)相同的 `Insight` 块,并且还要求你编写一些代码。Claude 自己处理常规实现。当它到达具有真实设计决策的部分时,例如错误处理、数据结构或具有多个有效方法的业务逻辑,它会为你留下几行代码。

20 88 

21还有四种额外的内置输出样式:89Claude 用文件中的 `TODO(human)` 注释标记该位置,然后发送一个请求,说明已经构建的内容、要编写的内容以及要权衡的内容:

22 90 

23* **Proactive**:Claude 立即执行,做出合理的假设而不是暂停进行常规决策,并倾向于行动而非规划。这提供了比[自动模式](/docs/zh-CN/permission-modes#eliminate-prompts-with-auto-mode)更强的自主执行指导,并且无需更改你的权限模式即可工作,因此你的权限模式仍然决定什么在不询问的情况下运行。91```text theme={null}

92● Learn by Doing

24 93 

25* **Concise**:Claude 以结果开头,跳过前言和叙述,默认保持响应简洁,同时以与默认样式相同的彻底程度完成工程工作。当你要求解释或更多细节时,Claude 会完整回答。Claude 始终保留错误报告、安全警告和破坏性操作确认的完整内容。需要 Claude Code v2.1.237 或更高版本。94Context: The upload form is in place and calls validateFile() before accepting a file. Size and type checks work for images, but the switch statement has no handling for documents yet.

26 95 

27* **Explanatory**:在帮助你完成软件工程任务的同时提供教育性的"Insights"。帮助你理解实现选择和代码库模式。96Your Task: In upload.js, implement the case "document" branch inside validateFile(). Look for TODO(human).

28 97 

29* **Learning**:协作式的边学边做模式,Claude 不仅会在编码时分享"Insights",还会要求你自己贡献小的、战略性的代码片段。Claude Code 将在你的代码中添加 `TODO(human)` 标记供你实现。98Guidance: Decide on a size limit for documents and whether the file extension has to match the MIME type. Return {valid: boolean, error?: string}.

99```

100 

101Claude 然后停止并等待。在 `TODO(human)` 注释处编写你的代码,并告诉 Claude 你已完成。Claude 用一个关于你的代码的 `Insight` 进行响应并继续该任务。

30 102 

31<h2 id="change-your-output-style">103<h2 id="change-your-output-style">

32 更改你的输出样式104 更改你的输出样式

33</h2>105</h2>

34 106 

35通过以下方式之一选择样式:107通过命令、菜单或设置文件选择样式。命令和两个菜单都会将你的选择保存到[本地项目级别](/docs/zh-CN/settings)的 `.claude/settings.local.json`。

36 108 

37* **`/output-style` 命令**:运行 `/output-style <style>` 来切换,例如 `/output-style concise`。不带参数时,该命令列出你可以选择的样式并标记当前样式。Claude Code 将你的选择保存到[本地项目级别](/docs/zh-CN/settings)的 `.claude/settings.local.json`。109* **`/output-style` 命令**:运行 `/output-style <style>` 来切换,例如 `/output-style concise`。不带参数时,该命令列出你可以选择的样式并标记当前样式。

38 110 

39 该命令也适用于[非交互模式](/docs/zh-CN/headless)和 Agent SDK 会话,以及来自移动应用或网页的[远程控制](/docs/zh-CN/remote-control#limitations),其中你只能列出和选择[内置样式](#built-in-output-styles)。需要 Claude Code v2.1.269 或更高版本。111 该命令也适用于[非交互模式](/docs/zh-CN/headless)和 Agent SDK 会话,以及来自移动应用或网页的[远程控制](/docs/zh-CN/remote-control#limitations),其中你只能列出和选择[内置样式](#built-in-output-styles)。需要 Claude Code v2.1.269 或更高版本。

40* **Terminal**:运行 `/config` 并选择**输出样式**从菜单中选择一种样式。Claude Code 将你的选择保存到[本地项目级别](/docs/zh-CN/settings)的 `.claude/settings.local.json`。112* **Terminal 菜单**:运行 `/config` 并选择**输出样式**从菜单中选择一种样式。

41* **VS Code extension**:使用 `/` 打开[命令菜单](/docs/zh-CN/vs-code#use-the-prompt-box)并选择**输出样式**来选择一种样式,包括你的自定义样式。Claude Code 将你的选择保存到 `.claude/settings.local.json`,这是终端菜单写入的同一个文件。需要 Claude Code v2.1.257 或更高版本。113* **VS Code extension**:使用 `/` 打开[命令菜单](/docs/zh-CN/vs-code#use-the-prompt-box)并选择**输出样式**来选择一种样式,包括你的自定义样式。需要 Claude Code v2.1.257 或更高版本。

42* **Desktop app**:在设置文件中设置 `outputStyle` 字段,例如 `.claude/settings.local.json`,这是终端菜单写入的文件。当你在那里运行 `/config` 时,Claude Code [打开**设置 > Claude Code**](/docs/zh-CN/desktop#what%E2%80%99s-not-available-in-desktop)而不是菜单。114* **Desktop app**:在设置文件中设置 `outputStyle` 字段,例如 `.claude/settings.local.json`,这是终端菜单写入的文件。当你在那里运行 `/config` 时,Claude Code [打开**设置 > Claude Code**](/docs/zh-CN/desktop#what%E2%80%99s-not-available-in-desktop)而不是菜单。

43 115 

44要在不使用菜单的情况下设置样式,直接编辑设置文件中的 `outputStyle` 字段:116要在不使用菜单的情况下设置样式,直接编辑设置文件中的 `outputStyle` 字段:


49}121}

50```122```

51 123 

124该值区分大小写,因此请将内置名称写为 `Proactive`、`Concise`、`Explanatory` 和 `Learning`。与样式名称不完全匹配的值(例如 `explanatory`)会给你默认样式。`/output-style` 命令忽略大小写。

125 

126要在项目间将样式设置为默认值,请在 `~/.claude/settings.json` 中设置 `outputStyle`。项目自己的设置文件[优先于](/docs/zh-CN/settings#settings-precedence)该值。

127 

52当你在会话中途切换样式时,Claude 从你的下一条消息开始使用新样式。关于该第一条消息在 prompt caching 中的成本,请参阅[更改输出样式](/docs/zh-CN/prompt-caching#changing-output-style)。在 v2.1.251 之前,新样式仅在你运行 `/clear` 或开始新会话后才会应用。128当你在会话中途切换样式时,Claude 从你的下一条消息开始使用新样式。关于该第一条消息在 prompt caching 中的成本,请参阅[更改输出样式](/docs/zh-CN/prompt-caching#changing-output-style)。在 v2.1.251 之前,新样式仅在你运行 `/clear` 或开始新会话后才会应用。

53 129 

54<h2 id="create-a-custom-output-style">130<h2 id="create-a-custom-output-style">


98[Plugins](/docs/zh-CN/plugins-reference) 也可以在 `output-styles/` 目录中提供输出样式。174[Plugins](/docs/zh-CN/plugins-reference) 也可以在 `output-styles/` 目录中提供输出样式。

99 175 

100<h3 id="frontmatter">176<h3 id="frontmatter">

101 Frontmatter177 Frontmatter 参考

102</h3>178</h3>

103 179 

104输出样式文件支持这些 frontmatter 字段:180使用位于文件顶部 `---` 标记之间的 YAML [frontmatter](/docs/zh-CN/glossary#frontmatter) 配置输出样式。所有字段都是可选的,字段名称使用由连字符分隔的小写单词。拼写错误的字段会被忽略而不会出现错误。如果 YAML 无法解析,样式仍会以其文件名加载,且不设置任何字段;运行 `claude --debug` 以查看解析错误。

105 181 

106| Frontmatter | 目的 | 默认值 |182| 字段 | 必需 | 描述 |

107| :------------------------- | :------------------------------------------------------------------------------------------------------------- | :------ |183| :------------------------- | :- | :------------------------------------------------------------------------------------------------------------------------------------ |

108| `name` | 输出样式的名称,如果不是文件名 | 从文件名继承 |184| `name` | 否 | 输出样式的名称,在 `/config` 选择器中显示。默认值:文件名 |

109| `description` | 输出样式的描述,在 `/config` 选择器中显示 | 无 |185| `description` | 否 | 输出样式的描述,在 `/config` 选择器中显示 |

110| `keep-coding-instructions` | 保留 Claude Code 的内置软件工程说明 | `false` |186| `keep-coding-instructions` | 否 | 设置为 `true` 以在你的样式旁边保留 Claude Code 的内置软件工程说明。默认值:`false` |

111| `force-for-plugin` | 仅限 Plugin 输出样式:在启用 plugin 时自动应用此样式,无需要求用户选择它。覆盖用户的 `outputStyle` 设置。如果多个启用的 plugin 设置了此项,Claude Code 使用第一个加载的。 | `false` |187| `force-for-plugin` | 否 | 仅限 Plugin 输出样式。设置为 `true` 以在启用 plugin 时自动应用此样式,无需要求用户选择它。覆盖用户的 `outputStyle` 设置。如果多个启用的 plugin 设置了此项,Claude Code 使用第一个加载的。默认值:`false` |

112 188 

113<h2 id="how-output-styles-work">189<span id="comparisons-to-related-features" />

114 输出样式如何工作

115</h2>

116 190 

117输出样式改变了 Claude Code 给予 Claude 的指令。191<h2 id="choose-between-an-output-style-and-other-features">

192 在输出样式和其他功能之间选择

193</h2>

118 194 

119* Claude Code 在每个请求中发送活跃样式的指令。195输出样式适用于会话中的每个响应。这是 Claude 遵循的指令,所以没有任何东西强制执行它。当你想要的内容比每个响应更狭窄,或者必须无一例外地发生时,另一个功能更合适。

120* 当你[选择除 Default 以外的样式](#change-your-output-style)时,Claude Code 也会在对话期间提醒 Claude 该样式。

121* 自定义输出样式排除了 Claude Code 的内置软件工程说明,例如如何限定更改范围、编写注释和验证工作,除非 `keep-coding-instructions` 设置为 `true`。

122 196 

123输出样式适用于主对话和[分支](/docs/zh-CN/sub-agents#fork-the-current-conversation),分支继承父级的完整对话和系统提示。其他[子代理运行自己的系统提示](/docs/zh-CN/sub-agents#what-loads-at-startup),所以样式不会改变它们的响应方式。197此表将你想要的内容与执行该操作的功能相匹配:

124 198 

125令牌使用情况取决于样式。样式的指令会增加输入令牌,尽管 prompt caching 在会话中的第一个请求之后会降低这个成本。199| 你想要 | 使用 | 为什么合适 |

200| :---------------------------------- | :------------------------------------------------------------------- | :------------------------------------------------ |

201| 每个响应都采用特定的语气、长度或格式,或 Claude 采用不同的角色 | 输出样式 | 它适用于整个会话,你可以用一个命令切换样式 |

202| Claude 了解你的项目的约定、命令和结构 | [CLAUDE.md](/docs/zh-CN/memory) | 它保存了 Claude 应该了解的关于代码库的内容,无论你选择哪种样式,它都保持加载状态 |

203| 针对一种任务的指令,例如发布清单或审查程序 | 一个 [skill](/docs/zh-CN/skills) | Claude 仅在你调用它或任务匹配时加载它,所以它不会影响无关的响应 |

204| 每次都无一例外地发生的事情,例如每次编辑后的格式化或阻止命令 | 一个 [hook](/docs/zh-CN/hooks-guide) | Claude Code 在生命周期事件中自己运行 hook,所以它不依赖于 Claude 遵循指令 |

205| 一个具有自己的指令、模型和工具的助手,用于专注任务 | 一个 [subagent](/docs/zh-CN/sub-agents) | 它在具有自己的系统提示的单独上下文中运行,并将摘要返回到你的对话 |

206| 你启动 Claude Code 时传递的对 Claude 指令的补充 | [`--append-system-prompt`](/docs/zh-CN/cli-reference#system-prompt-flags) | 它附加到系统提示而不删除任何内容 |

126 207 

127内置的 Explanatory 和 Learning 样式在设计上比 Default 产生更长的响应,这会增加输出令牌。Concise 样式则相反,通过指示 Claude 默认保持响应简洁来实现。对于自定义样式,输出令牌使用情况取决于你的指令告诉 Claude 生成什么。208这些功能可以组合使用。例如,你可以使用 CLAUDE.md 来说明 Claude 应该了解的内容,使用输出样式来说明它如何响应,以及使用 hook 来保证任何必须保证的事情。[扩展 Claude Code](/docs/zh-CN/features-overview) 比较了其余的扩展功能。

128 209 

129<h2 id="comparisons-to-related-features">210<h2 id="how-output-styles-work">

130 与相关功能的比较211 输出样式的工作原理

131</h2>212</h2>

132 213 

133多个功能自定义 Claude Code 的行为方式。输出样式改变 Claude Code 的默认说明并应用于每个响应。其他功能添加说明而不改变默认设置,或将其范围限定为特定任务。214输出样式改变 Claude Code 给予 Claude 的指令。

215 

216* Claude Code 在每个请求中发送活跃样式的指令。

217* 自定义输出样式会省略 Claude Code 的内置软件工程指令,例如如何限定更改范围、编写注释和验证工作,除非 `keep-coding-instructions` 设置为 `true`。

218 

219输出样式适用于主对话和[分支](/docs/zh-CN/sub-agents#fork-the-current-conversation),分支继承父级的完整对话和系统提示。其他[子代理运行自己的系统提示](/docs/zh-CN/sub-agents#what-loads-at-startup),因此样式不会改变它们的响应方式。

220 

221令牌使用情况取决于样式。样式的指令会增加输入令牌,尽管提示缓存在会话中的第一个请求之后会降低这个成本。

134 222 

135| 功能 | 工作原理 | 何时使用 |223内置的 Explanatory 和 Learning 样式按设计会产生比 Default 更长的响应,这会增加输出令牌。Concise 样式则相反,通过指示 Claude 默认保持响应简短来实现。对于自定义样式,输出令牌使用情况取决于你的指令告诉 Claude 生成什么。

136| :-------------------------- | :------------------- | :----------------------------------------------------------------------- |

137| 输出样式 | 改变 Claude Code 的默认说明 | 你想要每个回合都有不同的角色、语气或默认响应格式 |

138| [CLAUDE.md](/docs/zh-CN/memory) | 在系统提示之后添加用户消息 | Claude 应该始终了解你的项目约定和代码库上下文 |

139| `--append-system-prompt` | 附加到系统提示而不删除任何内容 | 你想要一次性添加单个调用,作为[启动时的 CLI 标志](/docs/zh-CN/cli-reference#system-prompt-flags)传递 |

140| [Agents](/docs/zh-CN/sub-agents) | 使用自己的系统提示、模型和工具运行子代理 | 你想要一个单独作用域的辅助工具来完成专注的任务 |

141| [Skills](/docs/zh-CN/skills) | 在调用时或相关时加载特定于任务的说明 | 你有一个可重用的工作流 |

142 224 

143<h2 id="related-resources">225<h2 id="related-resources">

144 相关资源226 相关资源

overview.md +1 −0

Details

251* [快速入门](/docs/zh-CN/quickstart):通过你的第一个真实任务,从探索代码库到提交修复251* [快速入门](/docs/zh-CN/quickstart):通过你的第一个真实任务,从探索代码库到提交修复

252* [存储说明和内存](/docs/zh-CN/memory):使用 CLAUDE.md 文件和自动内存为 Claude 提供持久说明252* [存储说明和内存](/docs/zh-CN/memory):使用 CLAUDE.md 文件和自动内存为 Claude 提供持久说明

253* [常见工作流](/docs/zh-CN/common-workflows)和[最佳实践](/docs/zh-CN/best-practices):充分利用 Claude Code 的模式253* [常见工作流](/docs/zh-CN/common-workflows)和[最佳实践](/docs/zh-CN/best-practices):充分利用 Claude Code 的模式

254* [Claude Academy](https://academy.claude.com/):免费自主学习课程,包括 [Claude Code 101](https://academy.claude.com/courses/claude-code-101) 和 [Claude Code in Action](https://academy.claude.com/courses/claude-code-in-action)

254* [每项任务的框架](https://claude.com/blog/a-harness-for-every-task-dynamic-workflows-in-claude-code):Claude Code 团队如何使用[动态工作流](/docs/zh-CN/workflows)大规模编排子代理255* [每项任务的框架](https://claude.com/blog/a-harness-for-every-task-dynamic-workflows-in-claude-code):Claude Code 团队如何使用[动态工作流](/docs/zh-CN/workflows)大规模编排子代理

255* [设置](/docs/zh-CN/settings):为你的工作流自定义 Claude Code256* [设置](/docs/zh-CN/settings):为你的工作流自定义 Claude Code

256* [故障排除](/docs/zh-CN/troubleshooting):常见问题的解决方案257* [故障排除](/docs/zh-CN/troubleshooting):常见问题的解决方案

Details

267 267 

268当计划准备好时,Claude 会呈现它并询问如何继续。从该提示中,您可以选择:268当计划准备好时,Claude 会呈现它并询问如何继续。从该提示中,您可以选择:

269 269 

270* **是的,并使用自动模式**:批准并以[自动模式](#eliminate-prompts-with-auto-mode)启动。当自动模式不可用时,此选项读取**是的,自动接受编辑**。如果您使用启用的绕过权限启动会话,该选项读取**是的,并为此会话切换到绕过权限(无进一步提示)**。270* **是的,并使用自动模式**:批准并以[自动模式](#eliminate-prompts-with-auto-mode)启动。如果自动模式不[可用于您的会话](#eliminate-prompts-with-auto-mode),例如因为您的组织关闭了它,此选项读取**是的,自动接受编辑**。如果您使用启用的绕过权限启动会话,该选项读取**是的,并为此会话切换到绕过权限(无进一步提示)**。

271* **是的,手动批准编辑**:批准并逐个审查每个编辑。271* **是的,手动批准编辑**:批准并逐个审查每个编辑。

272* **否,继续规划**:保持在 plan mode 并告诉 Claude 要更改什么。272* **否,继续规划**:保持在 plan mode 并告诉 Claude 要更改什么。

273 273 


457 457 

458边界不存储为规则。分类器在每次检查时从记录中重新读取它们,因此如果[上下文压缩](/docs/zh-CN/costs#reduce-token-usage)删除了陈述它的消息,边界可能会丢失。为了获得硬保证,请改为添加[拒绝规则](/docs/zh-CN/permissions#permission-rule-syntax)。458边界不存储为规则。分类器在每次检查时从记录中重新读取它们,因此如果[上下文压缩](/docs/zh-CN/costs#reduce-token-usage)删除了陈述它的消息,边界可能会丢失。为了获得硬保证,请改为添加[拒绝规则](/docs/zh-CN/permissions#permission-rule-syntax)。

459 459 

460<h3 id="approvals-you-state-in-conversation">

461 您在对话中陈述的批准

462</h3>

463 

464如果您告诉 Claude 被阻止的操作是允许的,分类器会将其读取为您的批准并可以清除阻止。您如何措辞决定了操作是否运行,以及批准的范围有多远:

465 

466* **命名操作及其具体情况**:您的消息必须命名操作和使其危险的具体事项,例如强制推送的分支。仅命名动词不会清除任何内容,因此"您可以强制推送"会使阻止保持原位。

467* **期望它涵盖一个操作**:批准涵盖您命名的破坏性操作,因此后续操作会再次被阻止,除非您将批准授予为常设。要停止一次一个地批准常规模式,请将其添加到 [`autoMode.allow`](/docs/zh-CN/auto-mode-config#override-the-block-and-allow-rules)。

468* **某些阻止保持原位**:[分类器的优先级顺序](/docs/zh-CN/auto-mode-config#override-the-block-and-allow-rules)规定了您的批准可以到达哪些阻止。要运行它不会清除的步骤,[离开自动模式](#switch-permission-modes)并回答权限提示。

469 

460<h3 id="when-auto-mode-falls-back">470<h3 id="when-auto-mode-falls-back">

461 自动模式何时回退471 自动模式何时回退

462</h3>472</h3>


508 1. 在子代理启动之前,委托的任务描述被评估,因此危险看起来的任务在生成时被阻止。518 1. 在子代理启动之前,委托的任务描述被评估,因此危险看起来的任务在生成时被阻止。

509 2. 当子代理运行时,其每个操作都通过分类器,使用与父会话相同的规则,子代理 frontmatter 中的任何 `permissionMode` 都被忽略。519 2. 当子代理运行时,其每个操作都通过分类器,使用与父会话相同的规则,子代理 frontmatter 中的任何 `permissionMode` 都被忽略。

510 3. 当子代理完成时,分类器审查其工作和最终报告,然后父会话读取报告。当分类器标记子代理的工作或报告时,或单独的 API 安全检查拒绝审查时,报告仍然被交付,前面加上安全警告。当分类器不可用于审查时,报告到达时带有说明在对其采取行动之前验证子代理工作的说明。520 3. 当子代理完成时,分类器审查其工作和最终报告,然后父会话读取报告。当分类器标记子代理的工作或报告时,或单独的 API 安全检查拒绝审查时,报告仍然被交付,前面加上安全警告。当分类器不可用于审查时,报告到达时带有说明在对其采取行动之前验证子代理工作的说明。

511 

512 步骤 1 需要 Claude Code v2.1.178 或更高版本。较早的版本在步骤 2 和 3 应用分类器,但在子代理启动之前没有评估任务描述。

513 </Accordion>521 </Accordion>

514 522 

515 <Accordion title="成本和延迟">523 <Accordion title="成本和延迟">


660 668 

661Claude Code 也将直接在 shell 变量下的 glob 或尾部斜杠视为关键路径移除,如 `rm -rf "$DIR"/*`,因为当变量为空时命令变成从文件系统根目录的移除。669Claude Code 也将直接在 shell 变量下的 glob 或尾部斜杠视为关键路径移除,如 `rm -rf "$DIR"/*`,因为当变量为空时命令变成从文件系统根目录的移除。

662 670 

671此变量情况的提示命名被标记的 `rm` 并说明如何重写它以便检查通过:

672 

673* 对于诸如 `$DIR` 之类的变量,保护每个扩展,以便当变量未设置或为空时 shell 停止出错,如 `rm -rf "${DIR:?}"/*`,或使用文字路径

674* 对于通常设置的变量,如 `$HOME`,使用文字路径

675 

676其扩展都以这种方式保护的移除不是关键路径移除,因此在 `bypassPermissions` 模式下它运行而不提示。

677 

663使用 `(...)` 中的子 shell、`{ ...; }` 中的大括号组、`$(...)` 或反引号中的命令替换,或 `<(...)` 中的进程替换隐藏移除,不会跳过检查。Claude Code 找到关键路径移除,无论它位于嵌套形式内部(如 `(rm -rf ~)` 或 `echo "$(rm -rf ~)"`),还是位于同一命令中的其他地方。678使用 `(...)` 中的子 shell、`{ ...; }` 中的大括号组、`$(...)` 或反引号中的命令替换,或 `<(...)` 中的进程替换隐藏移除,不会跳过检查。Claude Code 找到关键路径移除,无论它位于嵌套形式内部(如 `(rm -rf ~)` 或 `echo "$(rm -rf ~)"`),还是位于同一命令中的其他地方。

664 679 

665<h3 id="remove-item-in-powershell">680<h3 id="remove-item-in-powershell">

permissions.md +1 −9

Details

26 26 

27在 v2.1.211 之前,Claude Code 总是在启动目录中保存规则,因此在工作树或子目录中授予的批准不适用于项目的其余部分。早期版本在子目录或工作树中保存的规则仍然适用于在那里启动的会话。27在 v2.1.211 之前,Claude Code 总是在启动目录中保存规则,因此在工作树或子目录中授予的批准不适用于项目的其余部分。早期版本在子目录或工作树中保存的规则仍然适用于在那里启动的会话。

28 28 

29有时权限提示仅提供一次性批准,没有"不再询问"选项,也没有允许操作在会话的其余部分进行的选项。Claude Code 仅在提示可以向您显示它们允许的所有内容时才提供这些选项,因此您从提示保存的规则仅涵盖其选项命名的内容。29有时权限提示仅提供一次性批准,没有"不再询问"选项,也没有允许操作在会话的其余部分进行的选项。Claude Code 仅在提示可以向您显示它们允许的所有内容时才提供这些选项,因此您从提示保存的规则仅涵盖其选项命名的内容。当提示仅提供一次性批准时,批准该操作一次,或在 [`/permissions`](#manage-permissions) 中自己添加规则。

30 

31当您启动 Claude Code 的目录是使选项标签过长的原因时,Claude Code 会在标签中缩短它,用 `~` 替换您的主目录,然后用 `…` 替换路径的末尾,并保留该选项。您仍然保存相同的规则。Claude Code 在三种情况下省略选项:

32 

33* **命令或编辑:** 太大而无法完整显示。

34* **规则将涵盖的命令或路径:** 标签无法容纳它们全部。

35* **启动目录过长,未缩短:** 它包含 Claude Code 无法安全显示的字符,或者即使是其开头也无法容纳。

36 

37批准该操作一次,或在 [`/permissions`](#manage-permissions) 中自己添加规则。

38 30 

39<h3 id="add-a-comment-when-you-answer-a-permission-prompt">31<h3 id="add-a-comment-when-you-answer-a-permission-prompt">

40 在回答权限提示时添加注释32 在回答权限提示时添加注释

plugin-evals.md +1 −1

Details

339 授予工具339 授予工具

340</h3>340</h3>

341 341 

342运行永远不会停下来请求权限。需要授予但你没有授予的内置工具,例如 `Bash`、`Write`、`Edit`、`WebFetch` 和 `WebSearch`,会从会话中移除,所以 Claude 根本无法调用它们。允许列表是用例在 `allowed_tools` 中列出的只读工具,来自 `Read`、`Glob`、`Grep`、`NotebookRead`、`Skill`、`Agent`、`TodoWrite` 和任务工具 `TaskCreate`、`TaskGet`、`TaskList`、`TaskUpdate`、`TaskStop` 和 `TaskOutput`,加上你使用 `--allow-tools` 授予的任何工具,这适用于运行中的每个用例。要让用例使用 `Bash`、`Write`、`Edit`、`WebFetch` 或 `WebSearch`,请自己授予它们:342运行永远不会停下来请求权限。需要授予但你没有授予的内置工具,例如 `Bash`、`Write`、`Edit`、`WebFetch` 和 `WebSearch`,会从会话中移除,所以 Claude 根本无法调用它们。允许列表是用例在 `allowed_tools` 中列出的只读工具,来自 `Read`、`Glob`、`Grep`、`NotebookRead`、`Skill`、`Agent`、`TodoWrite` 和任务工具 `TaskCreate`、`TaskGet`、`TaskList`、`TaskUpdate` 和 `TaskStop`,加上你使用 `--allow-tools` 授予的任何工具。该授予适用于运行中的每个用例。要让用例使用 `Bash`、`Write`、`Edit`、`WebFetch` 或 `WebSearch`,请自己授予它们:

343 343 

344```bash theme={null}344```bash theme={null}

345claude plugin eval . --allow-tools Write Edit "Bash(npm test *)"345claude plugin eval . --allow-tools Write Edit "Bash(npm test *)"

plugins-reference.md +174 −100

Details

40 40 

41安装插件时会自动发现 Skills 和 commands。41安装插件时会自动发现 Skills 和 commands。

42 42 

43如果插件没有 `skills/` 目录且没有 `skills` manifest 字段,则插件根目录中的 `SKILL.md` 会作为单个 skill 加载。设置 frontmatter `name` 字段来控制 skill 的调用名称。如果没有设置,Claude Code 会回退到安装目录名称,对于从市场安装的插件,这是一个在每次更新时都会改变的版本字符串。对于包含多个 skill 的插件,请使用上面所示的 `skills/` 目录布局。43如果插件没有 `skills/` 目录且没有 `skills` manifest 字段,则插件根目录中的 `SKILL.md` 会作为单个 skill 加载。设置 frontmatter `name` 字段来控制 skill 的调用名称。如果没有设置,Claude Code 会回退到安装目录名称。对于 [复制到缓存中](#plugin-caching-and-file-resolution) 的插件,该名称是一个在每次更新时都会改变的版本字符串。对于包含多个 skill 的插件,请使用上面所示的 `skills/` 目录布局。

44 44 

45在插件 skills 和 commands 中,Boolean frontmatter 字段(如 `disable-model-invocation`)接受 `yes`、`no`、`on`、`off`、`1` 和 `0`(任何字母大小写),以及 `true` 和 `false`。在 v2.1.218 之前,Claude Code 仅识别 `true` 和 `false`。45在插件 skills 和 commands 中,Boolean frontmatter 字段(如 `disable-model-invocation`)接受 `yes`、`no`、`on`、`off`、`1` 和 `0`(任何字母大小写),以及 `true` 和 `false`。在 v2.1.218 之前,Claude Code 仅识别 `true` 和 `false`。

46 46 


71Detailed system prompt for the agent describing its role, expertise, and behavior.71Detailed system prompt for the agent describing its role, expertise, and behavior.

72```72```

73 73 

74插件代理支持 `name`、`description`、`model`、`effort`、`maxTurns`、`tools`、`disallowedTools`、`skills`、`memory`、`background`、[`omitClaudeMd`](/docs/zh-CN/sub-agents#supported-frontmatter-fields) 和 `isolation` frontmatter 字段。唯一有效的 `isolation` 值是 `"worktree"`。74<h4 id="plugin-agent-frontmatter">

75 插件代理 frontmatter

76</h4>

77 

78插件代理文件使用与 [子代理文件相同的 frontmatter 字段](/docs/zh-CN/sub-agents#supported-frontmatter-fields),但当代理来自插件时,Claude Code 仅支持其中的某些字段:

79 

80* **支持**:`name`、`description`、`model`、`effort`、`maxTurns`、`tools`、`disallowedTools`、`skills`、`memory`、`background`、`omitClaudeMd`、`isolation`、`color` 和 `experimental`。唯一有效的 `isolation` 值是 `"worktree"`。

81* **出于安全原因不支持**:`hooks`、`mcpServers` 和 `permissionMode`。Claude Code 在从插件加载代理时会忽略这些。要使用它们,请将代理文件复制到 `.claude/agents/` 或 `~/.claude/agents/`。

82* **不支持**:`initialPrompt`。

83 

84您可以将插件代理文件放在 `agents/` 的子文件夹中。Claude Code [递归加载它们](/docs/zh-CN/sub-agents#choose-the-subagent-scope),并使用冒号连接插件名称、每个子文件夹名称和文件名来形成代理的作用域名称。例如,名为 `my-plugin` 的插件中的 `agents/review/security.md` 加载为 `my-plugin:review:security`。两个设置会改变该名称:

75 85 

76出于安全原因,插件提供的代理不支持 `hooks`、`mcpServers` 或 `permissionMode`。86* Frontmatter `name`:它仅替换文件名,因此 `agents/review/security.md` 中的 `name: audit` 加载为 `my-plugin:review:audit`

87* Manifest [`agents`](#component-path-fields) 字段:您在其中列出的文件加载时不带子文件夹名称,因此 `"agents": "./custom/review/security.md"` 加载为 `my-plugin:security`

77 88 

78Claude Code 会加载插件代理,即使其 frontmatter 没有 `name` 或无法解析:89Claude Code 加载插件代理,即使其 frontmatter 没有 `name` 或无法解析:

79 90 

80* 没有 `name`:Claude Code 根据文件名命名代理,因此名为 `my-plugin` 的插件中的 `agents/reviewer.md` 会加载为 `my-plugin:reviewer`91* 没有 `name`:Claude Code 根据文件名命名代理,因此名为 `my-plugin` 的插件中的 `agents/reviewer.md` 加载为 `my-plugin:reviewer`

81* Frontmatter 无法解析:Claude Code 根据文件名命名代理,使用 `Agent from my-plugin plugin` 作为其描述,并忽略文件中的每个字段92* Frontmatter 无法解析:Claude Code 根据文件名命名代理,使用 `Agent from my-plugin plugin` 作为其描述,并忽略文件中的每个字段

82 93 

83相比之下,Claude Code 会跳过其 frontmatter 没有 `name` 或无法解析的项目、用户或托管代理文件。94相比之下,Claude Code 会跳过其 frontmatter 没有 `name` 或无法解析的项目、用户或托管代理文件。


101 112 

102**格式**:具有事件匹配器和操作的 JSON 配置113**格式**:具有事件匹配器和操作的 JSON 配置

103 114 

115`hooks/hooks.json` 可以包含一个顶级 `$schema` 键,该键命名一个 JSON Schema URL 以用于编辑器自动完成和验证。Claude Code 在加载时忽略该键。

116 

104**Hook 配置**:117**Hook 配置**:

105 118 

106```json theme={null}119```json theme={null}


442 从 claude.ai 同步的插件455 从 claude.ai 同步的插件

443</h2>456</h2>

444 457 

445在 [Cowork](https://claude.com/product/cowork) 和[云会话](/docs/zh-CN/cloud-environments#what-carries-over-from-your-setup)中,Claude Code 会将为你的 claude.ai 账户启用的插件下载到会话自身环境中的 `~/.claude/plugins/synced/` 目录,并将每个插件加载为 `<name>@synced`,没有 marketplace 和没有安装记录。Claude Code 不会在你在自己的终端中启动的会话中加载它们。在该 Cowork 或云环境中,`claude plugin list` 会在 `Synced from claude.ai` 标题下显示下载的副本。在 v2.1.239 之前,Claude Code 将这些插件加载为 `<name>@inline`,这是 `--plugin-dir` 插件使用的身份。458Claude Code 加载为你的 claude.ai 账户启用的插件,包括你的组织为其成员启用的插件,以及你从 marketplace 安装的插件。它将每个插件下载到 `~/.claude/plugins/synced/` 中,并将其加载为 `<name>@synced`,没有 marketplace 和没有安装记录。同步的插件运行时具有与你安装的 marketplace 插件相同的信任级别:其 skills、agents、hooks、MCP servers 和 LSP servers 都会加载。

459 

460Claude Code 同步这些插件的位置取决于会话类型:

461 

462* 在 [Cowork](https://claude.com/product/cowork) 和[云会话](/docs/zh-CN/cloud-environments#what-carries-over-from-your-setup)中,Claude Code 在会话启动时将它们下载到会话自身的环境中。在 v2.1.239 之前,Claude Code 将这些插件加载为 `<name>@inline`,这是 `--plugin-dir` 插件使用的身份。

463* 在你使用 claude.ai 账户登录的终端会话中,Claude Code 每次启动时检查你的账户一次,然后在后台下载新的和更新的插件,并删除你或你的组织关闭的插件。在终端会话中同步需要 Claude Code v2.1.273 或更高版本。

464 

465启动检查在后台运行,因此可以在你的会话启动后完成。当它在交互式会话中添加、更新或删除同步插件时,Claude Code 会显示 `Plugins changed. Run /reload-plugins to activate.` 运行 [`/reload-plugins`](/docs/zh-CN/discover-plugins#apply-plugin-changes-without-restarting) 以在该会话中加载更改,或者等待下次启动 Claude Code 时加载。如果你在会话运行时在 claude.ai 上启用插件,Claude Code 会在下次启动时下载它。

446 466 

447通过 `claude plugin list` 打印的 `<name>@synced` ID 来管理同步的插件:467终端会话中的插件同步在与[从 claude.ai 同步的 skills](/docs/zh-CN/skills#where-synced-skills-load)相同的登录条件下运行。它还需要一个授予 Claude Code 访问你账户插件权限的登录。

448 468 

449* **关闭一个插件**:在同步会话中,运行 `claude plugin disable <name>@synced`,或要求 Claude 运行它。Claude Code 会将该选择保存为该环境的用户级 [`enabledPlugins`](/docs/zh-CN/settings-reference#enabledplugins) 中的 `"<name>@synced": false`。你的组织要求的同步插件无法通过这种方式关闭。该命令会报告该插件是你的组织所需的,并且不会保存任何内容。要重新打开该插件,在同一会话中运行 `claude plugin enable <name>@synced`。469来自早期版本 Claude Code 的登录会在 Claude Code 在后台更新该登录时(通常在几小时内)或如果你再次运行 `/login` 时立即获取插件访问权限。在此之后,下次启动 Claude Code 时插件同步就会开始。

450* **将一个插件排除在同步会话之外**:要将一个插件排除在每个同步会话之外,[为你的 claude.ai 账户关闭它](/docs/zh-CN/desktop#extend-claude-code)。要将其排除在一个项目的每个环境中的同步会话之外,在该项目的已提交 `.claude/settings.json` 中的 `enabledPlugins` 下设置 `"<name>@synced": false`。

451* **在 claude.ai 上管理插件本身**:`claude plugin install`、`update` 和 `uninstall` 不适用于同步的插件。要删除一个,为你的 claude.ai 账户关闭该插件;下一个同步会话将在没有它的情况下启动。

452 470 

453当来自任何其他来源的启用插件(例如 marketplace 安装、[skills-directory 插件](#skills-directory-plugins)或 `--plugin-dir` 插件)与同步插件的名称匹配时,Claude Code 会加载该插件并报告同步副本未加载。要改用 claude.ai 副本,请禁用你自己的副本。在 v2.1.239 之前,Claude Code 会加载同步副本而不是同名的 marketplace 安装。471`claude plugin list` 在 `Synced from claude.ai` 标题下显示同步的插件,`/plugin` **Installed** 标签页将它们列出,其来源为 `synced`。通过 `claude plugin list` 打印的 `<name>@synced` ID 来管理同步的插件:

472 

473* **关闭一个插件**:运行 `claude plugin disable <name>@synced`,或从 `/plugin` **Installed** 标签页禁用它。Claude Code 会将该选择保存为你用户级 [`enabledPlugins`](/docs/zh-CN/settings-reference#enabledplugins) 中的 `"<name>@synced": false`。要重新打开该插件,运行 `claude plugin enable <name>@synced`。

474* **在任何地方都排除一个插件**:[为你的 claude.ai 账户关闭该插件](/docs/zh-CN/desktop#extend-claude-code)。要在每个环境中将其排除在一个项目之外,在该项目的已提交 `.claude/settings.json` 中的 `enabledPlugins` 下设置 `"<name>@synced": false`。

475* **在 claude.ai 上管理插件本身**:`claude plugin install`、`update` 和 `uninstall` 不适用于同步的插件。Claude Code 在下次同步时下载插件的更新。要删除一个,为你的 claude.ai 账户关闭该插件,Claude Code 会在下次同步时删除它。

476* **停止在一台机器上同步**:在你的用户设置中将 [`syncClaudeAiPlugins`](/docs/zh-CN/settings-reference#syncclaudeaiplugins) 设置为 `false`。Claude Code 停止下载,下次启动时会将它已同步的插件移动到 `~/.claude/plugins/.trash/` 并不再加载它们。你的组织可以在[托管设置](/docs/zh-CN/managed-settings)中设置相同的键,或关闭 claude.ai 上的 Skills,这也会停止插件同步。

477 

478你无法关闭你的组织在 claude.ai 上标记为必需的插件。Claude Code 会加载它,即使你之前禁用了它,`claude plugin disable` 会拒绝并显示 `Plugin "<name>@synced" is required by your organization and can't be disabled here. Contact your admin to change it.` 在 `claude plugin list` 中,这些插件被标记为 `required by your org`。

479 

480当来自任何其他来源的启用插件与同步插件的名称匹配时,Claude Code 会加载该插件并报告同步副本未加载。其他来源包括 marketplace 安装、[skills-directory 插件](#skills-directory-plugins)、`--plugin-dir` 插件和 Claude Code 内置的插件。要改用 claude.ai 副本,请禁用你自己的副本。在 v2.1.239 之前,Claude Code 会加载同步副本而不是同名的 marketplace 安装。

454 481 

455***482***

456 483 


458 Plugin manifest schema485 Plugin manifest schema

459</h2>486</h2>

460 487 

461`.claude-plugin/plugin.json` 文件定义了你的 plugin 的元数据和配置。488`.claude-plugin/plugin.json` 文件定义了你的插件的元数据和配置。

462 489 

463manifest 是可选的。如果省略,Claude Code 会在[默认位置](#file-locations-reference)自动发现组件,并从目录名称派生 plugin 名称。当你需要提供元数据或自定义组件路径时,使用 manifest。490manifest 是可选的。如果省略,Claude Code 会在[默认位置](#file-locations-reference)自动发现组件,并从目录名称派生插件名称。当你需要提供元数据或自定义组件路径时,使用 manifest。

464 491 

465<h3 id="complete-schema">492<h3 id="complete-schema">

466 Complete schema493 Complete schema


508如果你包含 manifest,`name` 是唯一必需的字段。535如果你包含 manifest,`name` 是唯一必需的字段。

509 536 

510| 字段 | 类型 | 描述 | 示例 |537| 字段 | 类型 | 描述 | 示例 |

511| :----- | :----- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------- |538| :----- | :----- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------- |

512| `name` | string | 唯一标识符,采用 kebab-case,不包含空格、控制字符或双向格式化字符。当[marketplace 条目](/docs/zh-CN/plugin-marketplaces#plugin-entries)以不同的名称列出 plugin 时,marketplace 条目名称是 `enabledPlugins` 键和 `/plugin` 使用的名称 | `"deployment-tools"` |539| `name` | string | 唯一标识符,采用 kebab-case,不包含空格、控制字符或双向格式化字符。当[marketplace 条目](/docs/zh-CN/plugin-marketplaces#plugin-entries)以不同的名称列出插件时,marketplace 条目名称是 `enabledPlugins` 键和 `/plugin` 使用的名称 | `"deployment-tools"` |

513 540 

514此名称用于命名空间组件。例如,在 UI 中,名为 `plugin-dev` 的 plugin 的 agent `agent-creator` 将显示为 `plugin-dev:agent-creator`。541此名称用于命名空间组件。例如,在 UI 中,名称为 `plugin-dev` 的插件的代理 `agent-creator` 将显示为 `plugin-dev:agent-creator`。

515 542 

516<h3 id="unrecognized-fields">543<h3 id="unrecognized-fields">

517 无法识别的字段544 无法识别的字段

518</h3>545</h3>

519 546 

520Claude Code 忽略它不识别的顶级字段。你可以在 `plugin.json` 中保留来自另一个生态系统的元数据,plugin 仍然会加载。这使得维护一个 manifest 作为 VS Code 或 Cursor 扩展 manifest、npm `package.json` 或 MCPB/DXT bundle manifest 变得实用。547Claude Code 忽略它不识别的顶级字段。你可以在 `plugin.json` 中保留来自另一个生态系统的元数据,插件仍然会加载。这使得维护一个 manifest 作为 VS Code 或 Cursor 扩展 manifest、npm `package.json` 或 MCPB/DXT bundle manifest 变得实用。

521 548 

522`claude plugin validate` 将无法识别的字段报告为警告,而不是错误。如果一个字段与识别的字段相差一两个字符,警告会建议可能的预期名称。仅具有无法识别字段警告的 plugin 仍然通过验证并在运行时加载。549`claude plugin validate` 将无法识别的字段报告为警告,而不是错误。如果一个字段与识别的字段相差一两个字符,警告会建议可能的预期名称。仅具有无法识别字段警告的插件仍然通过验证并在运行时加载。

523 550 

524Claude Code 如何处理值类型错误的识别字段取决于该字段:551Claude Code 如何处理值类型错误的识别字段取决于该字段:

525 552 

526* **大多数字段**:plugin 无法加载。例如,`keywords` 值是字符串而不是数组是加载错误,`claude plugin validate` 会将其报告为错误。553* **大多数字段**:插件无法加载。例如,`keywords` 值是字符串而不是数组是加载错误,`claude plugin validate` 会将其报告为错误。

527* **`experimental` 和 `metadata`**:Claude Code 忽略非对象值,`claude plugin validate` 报告警告。554* **`experimental` 和 `metadata`**:Claude Code 忽略非对象值,`claude plugin validate` 报告警告。

528 555 

529传递 `--strict` 以将警告视为错误。在 CI 中使用它来捕获拼写错误的字段名称或来自另一个工具的 manifest 中遗留的字段,然后再发布,即使 plugin 在运行时会加载。556传递 `--strict` 以将警告视为错误。在 CI 中使用它来捕获拼写错误的字段名称或在发布前留下的来自另一个工具的 manifest 的字段,即使插件在运行时会加载。

530 557 

531```bash theme={null}558```bash theme={null}

532claude plugin validate ./my-plugin --strict559claude plugin validate ./my-plugin --strict


537</h3>564</h3>

538 565 

539| 字段 | 类型 | 描述 | 示例 |566| 字段 | 类型 | 描述 | 示例 |

540| :--------------- | :------ | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------- |567| :--------------- | :------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------- |

541| `$schema` | string | JSON Schema URL,用于编辑器自动完成和验证。Claude Code 在加载时忽略此字段。 | `"https://json.schemastore.org/claude-code-plugin-manifest.json"` |568| `$schema` | string | JSON Schema URL,用于编辑器自动完成和验证。Claude Code 在加载时忽略此字段。 | `"https://json.schemastore.org/claude-code-plugin-manifest.json"` |

542| `displayName` | string | 在 `/plugin` 选择器和其他 UI 表面中显示的人类可读名称。对于 marketplace 安装的 plugin,[marketplace 条目](/docs/zh-CN/plugin-marketplaces#optional-plugin-fields)上的 `displayName` 优先于此值。当两个地方都未设置显示名称时,用户会看到 `name`。与 `name` 不同,可以包含空格和任何大小写。不用于命名空间或查找。 | `"Deployment Tools"` |569| `displayName` | string | 在 `/plugin` 选择器和其他 UI 表面中显示的人类可读名称。对于 marketplace 安装的插件,[marketplace 条目](/docs/zh-CN/plugin-marketplaces#optional-plugin-fields)上的 `displayName` 优先于此值。当两个地方都未设置显示名称时,用户会看到 `name`。与 `name` 不同,可以包含空格和任何大小写。不用于命名空间或查找。 | `"Deployment Tools"` |

543| `version` | string | 可选。语义版本。设置此项会将 plugin 固定到该版本字符串,因此用户仅在你提升版本时才会收到更新,除了[`command` 源](/docs/zh-CN/plugin-marketplaces#command-sources)外;请参阅[版本管理](#version-management)。如果也在 marketplace 条目中设置,`plugin.json` 优先。如果省略,版本来自[版本管理](#version-management)中的下一个源。 | `"2.1.0"` |570| `version` | string | 可选。语义版本。设置此项会将插件固定到该版本字符串,因此用户仅在你提升版本时才会收到更新,除了[`command` 源](/docs/zh-CN/plugin-marketplaces#command-sources)或[加载到位](#plugin-caching-and-file-resolution)的插件;请参阅[版本管理](#version-management)。如果也在 marketplace 条目中设置,`plugin.json` 优先。如果省略,版本来自[版本管理](#version-management)中的下一个源。 | `"2.1.0"` |

544| `description` | string | plugin 用途的简要说明 | `"Deployment automation tools"` |571| `description` | string | 插件用途的简要说明 | `"Deployment automation tools"` |

545| `author` | object | 作者信息 | `{"name": "Dev Team", "email": "dev@company.com"}` |572| `author` | object | 作者信息 | `{"name": "Dev Team", "email": "dev@company.com"}` |

546| `homepage` | string | 文档 URL | `"https://docs.example.com"` |573| `homepage` | string | 文档 URL | `"https://docs.example.com"` |

547| `repository` | string | 源代码 URL | `"https://github.com/user/plugin"` |574| `repository` | string | 源代码 URL | `"https://github.com/user/plugin"` |

548| `license` | string | 许可证标识符 | `"MIT"`、`"Apache-2.0"` |575| `license` | string | 许可证标识符 | `"MIT"`、`"Apache-2.0"` |

549| `keywords` | array | 发现标签 | `["deployment", "ci-cd"]` |576| `keywords` | array | 发现标签 | `["deployment", "ci-cd"]` |

550| `metadata` | object | 自由格式对象,用于你自己的数据,例如权利或目录字段。Claude Code 不读取它,因此值永远不会影响 plugin 行为。Claude Code 忽略非对象值,`claude plugin validate` 将其报告为警告。在 v2.1.222 之前,Claude Code 将该键视为[无法识别的字段](#unrecognized-fields)。 | `{"catalogId": "cat-123"}` |577| `metadata` | object | 自由格式对象,用于你自己的数据,例如权利或目录字段。Claude Code 不读取它,因此值永远不会影响插件行为。Claude Code 忽略非对象值,`claude plugin validate` 报告警告。在 v2.1.222 之前,Claude Code 将该键视为[无法识别的字段](#unrecognized-fields)。 | `{"catalogId": "cat-123"}` |

551| `defaultEnabled` | boolean | 当用户未设置 plugin 状态时,plugin 是否以启用状态启动。默认为 `true`。请参阅[默认启用](#default-enablement)。 | `false` |578| `defaultEnabled` | boolean | 当用户未设置插件状态时,插件是否以启用状态启动。默认为 `true`。请参阅[默认启用](#default-enablement)。 | `false` |

552 579 

553<h3 id="default-enablement">580<h3 id="default-enablement">

554 默认启用581 默认启用

555</h3>582</h3>

556 583 

557在 `plugin.json` 中设置 `defaultEnabled: false` 以发布已禁用安装的 plugin。用户使用 `claude plugin enable <plugin>` 或 `/plugin` 界面将其打开。对于添加成本或用户应该选择加入的范围的 plugin 使用此选项,例如连接到外部服务的 plugin。584在 `plugin.json` 中设置 `defaultEnabled: false` 以发布禁用状态下安装的插件。用户使用 `claude plugin enable <plugin>` 或 `/plugin` 界面将其打开。对于添加成本或用户应该选择加入的范围的插件(例如连接到外部服务的插件),使用此选项。

558 585 

559`defaultEnabled` 是当没有其他因素决定 plugin 状态时的后备。用户的设置和依赖项要求优先于它:586`defaultEnabled` 是当没有其他因素决定插件状态时的后备。用户的设置和依赖项要求优先于它:

560 587 

561* **用户的设置**:任何设置范围内 `enabledPlugins` 中的 plugin 条目。一旦写入,它会在 plugin 更新和重新安装中持续存在,因此在后续版本中更改 `defaultEnabled` 不会翻转现有用户。588* **用户的设置**:任何设置范围内 `enabledPlugins` 中的插件条目。一旦写入,它会在插件更新和重新安装中持续存在,因此在后续版本中更改 `defaultEnabled` 不会翻转现有用户。

562* **依赖项要求**:当 plugin 被另一个活跃的 plugin 需要时,Claude Code 在安装或启用时为其写入 `true`。这给了它一个显式设置,所以它自己的默认值不再适用。请参阅[启用或禁用具有依赖项的 plugin](/docs/zh-CN/plugin-dependencies#enable-or-disable-a-plugin-with-dependencies)。589* **依赖项要求**:当插件被活跃的另一个插件所需时,Claude Code 在安装或启用时为其写入 `true`。这给了它一个显式设置,所以它自己的默认值不再适用。请参阅[启用或禁用具有依赖项的插件](/docs/zh-CN/plugin-dependencies#enable-or-disable-a-plugin-with-dependencies)。

563 590 

564同一字段可以出现在 plugin 的 marketplace 条目中,其中它优先于 `plugin.json` 中的值。请参阅[可选 plugin 字段](/docs/zh-CN/plugin-marketplaces#optional-plugin-fields)。591同一字段也可以出现在插件的 marketplace 条目中,其中它优先于 `plugin.json` 中的值。请参阅[可选插件字段](/docs/zh-CN/plugin-marketplaces#optional-plugin-fields)。

565 592 

566<h3 id="component-path-fields">593<h3 id="component-path-fields">

567 组件路径字段594 组件路径字段

568</h3>595</h3>

569 596 

570| 字段 | 类型 | 描述 | 示例 |597| 字段 | 类型 | 描述 | 示例 |

571| :---------------------- | :-------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------- |598| :---------------------- | :-------------------- | :------------------------------------------------------------------------------------------------------------------------------ | :--------------------------------------------------- |

572| `skills` | string\|array | 包含 `<name>/SKILL.md` 的自定义 skill 目录。添加到默认 `skills/` 扫描。请参阅[路径行为规则](#path-behavior-rules)了解 marketplace-root 异常 | `"./custom/skills/"` |599| `skills` | string\|array | 包含 `<name>/SKILL.md` 的自定义 skill 目录。添加到默认 `skills/` 扫描。请参阅[路径行为规则](#path-behavior-rules)了解 marketplace-root 异常 | `"./custom/skills/"` |

573| `commands` | string\|array | 自定义平面 `.md` skill 文件或目录(替换默认 `commands/`) | `"./custom/cmd.md"` 或 `["./cmd1.md"]` |600| `commands` | string\|array | 自定义平面 `.md` skill 文件或目录(替换默认 `commands/`) | `"./custom/cmd.md"` 或 `["./cmd1.md"]` |

574| `agents` | string\|array | 自定义 agent 文件(替换默认 `agents/`) | `"./custom/agents/reviewer.md"` |601| `agents` | string\|array | 自定义代理文件(替换默认 `agents/`) | `"./custom/agents/reviewer.md"` |

575| `workflows` | string\|array | 自定义[workflow](/docs/zh-CN/workflows) 脚本文件或目录(替换默认 `workflows/`) | `"./custom/workflows/"` |602| `workflows` | string\|array | 自定义[工作流](/docs/zh-CN/workflows)脚本文件或目录(替换默认 `workflows/`) | `"./custom/workflows/"` |

576| `hooks` | string\|array\|object | Hook 配置路径或内联配置 | `"./my-extra-hooks.json"` |603| `hooks` | string\|array\|object | Hook 配置路径或内联配置 | `"./my-extra-hooks.json"` |

577| `mcpServers` | string\|array\|object | MCP 配置路径或内联配置 | `"./my-extra-mcp-config.json"` |604| `mcpServers` | string\|array\|object | MCP 配置路径或内联配置 | `"./my-extra-mcp-config.json"` |

578| `outputStyles` | string\|array | 自定义输出样式文件/目录(替换默认 `output-styles/`) | `"./styles/"` |605| `outputStyles` | string\|array | 自定义输出样式文件/目录(替换默认 `output-styles/`) | `"./styles/"` |

579| `lspServers` | string\|array\|object | [Language Server Protocol](https://microsoft.github.io/language-server-protocol/) 配置,用于代码智能(转到定义、查找引用等) | `"./.lsp.json"` |606| `lspServers` | string\|array\|object | [Language Server Protocol](https://microsoft.github.io/language-server-protocol/) 配置,用于代码智能(转到定义、查找引用等) | `"./.lsp.json"` |

580| `experimental.themes` | string\|array | 颜色主题文件/目录(替换默认 `themes/`)。请参阅[主题](#themes) | `"./themes/"` |607| `experimental.themes` | string\|array | 颜色主题文件/目录(替换默认 `themes/`)。请参阅[主题](#themes) | `"./themes/"` |

581| `experimental.monitors` | string\|array | 后台[Monitor](/docs/zh-CN/tools-reference#monitor-tool) 配置,在 plugin 活跃时自动启动。请参阅[监视器](#monitors) | `"./monitors.json"` |608| `experimental.monitors` | string\|array | 后台[Monitor](/docs/zh-CN/tools-reference#monitor-tool)配置,在插件活跃时自动启动。请参阅[监视器](#monitors) | `"./monitors.json"` |

582| `experimental.evals` | string\|array | plugin 根目录下的目录,当不是默认 `evals/` 时,保存 plugin 的[eval cases](/docs/zh-CN/plugin-evals#use-a-different-eval-directory)。`claude plugin eval --eval-dir` 会覆盖它 | `"quality/evals"` |609| `experimental.evals` | string\|array | 插件根目录下的目录,保存插件的[评估案例](/docs/zh-CN/plugin-evals#use-a-different-eval-directory),当它不是默认 `evals/` 时。`claude plugin eval --eval-dir` 覆盖它 | `"quality/evals"` |

583| `userConfig` | object | 在启用时提示的用户可配置值。请参阅[用户配置](#user-configuration) | |610| `userConfig` | object | 在启用时提示的用户可配置值。请参阅[用户配置](#user-configuration) | |

584| `channels` | array | 消息注入的频道声明(Telegram、Slack、Discord 风格)。请参阅[频道](#channels) | |611| `channels` | array | 消息注入的频道声明(Telegram、Slack、Discord 风格)。请参阅[频道](#channels) | |

585| `dependencies` | array | 此 plugin 需要的其他 plugin,可选择带有 semver 版本约束。请参阅[约束 plugin 依赖项版本](/docs/zh-CN/plugin-dependencies) | `[{ "name": "secrets-vault", "version": "~2.1.0" }]` |612| `dependencies` | array | 此插件需要的其他插件,可选择带有 semver 版本约束。请参阅[约束插件依赖项版本](/docs/zh-CN/plugin-dependencies) | `[{ "name": "secrets-vault", "version": "~2.1.0" }]` |

586 613 

587<h3 id="experimental-components">614<h3 id="experimental-components">

588 实验性组件615 实验性组件

589</h3>616</h3>

590 617 

591`experimental` 键下的组件 `themes` 和 `monitors` 具有在版本之间可能会改变的 manifest schema,同时它们稳定下来。你声明它们的位置是一个单独的迁移:顶级仍然有效,`claude plugin validate` 发出警告,未来版本将需要 `experimental.*`。618`experimental` 键下的组件、`themes` 和 `monitors` 具有在稳定期间可能在版本之间更改的 manifest schema。你声明它们的位置是一个单独的迁移:顶级仍然有效,`claude plugin validate` 警告,未来版本将需要 `experimental.*`。

592 619 

593<h3 id="user-configuration">620<h3 id="user-configuration">

594 用户配置621 用户配置

595</h3>622</h3>

596 623 

597`userConfig` 字段声明当 plugin 启用时 Claude Code 提示用户的值。使用此选项而不是要求用户手动编辑 `settings.json`。624`userConfig` 字段声明当插件启用时 Claude Code 提示用户的值。使用此选项而不是要求用户手动编辑 `settings.json`。

598 625 

599```json theme={null}626```json theme={null}

600{627{


617键必须是有效的标识符。每个选项支持这些字段:644键必须是有效的标识符。每个选项支持这些字段:

618 645 

619| 字段 | 必需 | 描述 |646| 字段 | 必需 | 描述 |

620| :------------ | :- | :---------------------------------------------------------------------- |647| :------------ | :- | :-------------------------------------------------------------------------------------------------------------------------- |

621| `type` | 是 | `string`、`number`、`boolean`、`directory` 或 `file` 之一 |648| `type` | 是 | `string`、`number`、`boolean`、`directory` 或 `file` 之一 |

622| `title` | 是 | 在配置对话框中显示的标签 |649| `title` | 是 | 在配置对话框中显示的标签 |

623| `description` | 是 | 在字段下方显示的帮助文本 |650| `description` | 是 | 显示在字段下方的帮助文本 |

624| `sensitive` | 否 | 如果为 `true`,掩盖输入并将值存储在安全存储中而不是 `settings.json` |651| `sensitive` | 否 | 如果为 `true`,掩盖输入并将值存储在安全存储中而不是 `settings.json` |

625| `required` | 否 | 如果为 `true`,当字段为空时验证失败 |652| `required` | 否 | 如果为 `true`,当字段为空时验证失败 |

626| `default` | 否 | 当用户未提供任何内容时使用的值 |653| `default` | 否 | 当用户未提供任何内容时使用的值 |

627| `options` | 否 | 对于 `string` 类型,字段接受的值,在 `/config` 中显示为选择器。需要 Claude Code v2.1.271 或更高版本 |654| `options` | 否 | 对于 `string` 类型,字段接受的值,在 `/config` 中显示为它们的选择器。请参阅[将字段限制为固定选项](#limit-a-field-to-fixed-options)。需要 Claude Code v2.1.271 或更高版本 |

628| `multiple` | 否 | 对于 `string` 类型,允许字符串数组 |655| `multiple` | 否 | 对于 `string` 类型,允许字符串数组 |

629| `min` / `max` | 否 | `number` 类型的边界 |656| `min` / `max` | 否 | `number` 类型的边界 |

630 657 

631除了 `sensitive` 字段和 `multiple` 列表外,每个启用的 plugin 的每个字段也作为一行出现在 `/config` 面板中。这些行需要 Claude Code v2.1.269 或更高版本。658除了 `sensitive` 字段和 `multiple` 列表,每个启用插件的每个字段也显示为 `/config` 面板中的一行。这些行需要 Claude Code v2.1.269 或更高版本。

632 659 

633每个值都可用于在 MCP 和 LSP 服务器配置以及 hook 命令中作为 `${user_config.KEY}` 进行替换。非敏感值也可以在 skill 和 agent 内容中替换。所有值都作为 `CLAUDE_PLUGIN_OPTION_<KEY>` 环境变量导出到 hook 进程,其中 `<KEY>` 是选项键的大写形式。660每个值都可用于在 MCP 和 LSP 服务器配置以及 hook 命令中作为 `${user_config.KEY}` 进行替换。非敏感值也可以在 skill 和代理内容中替换。所有值都导出到 hook 进程作为 `CLAUDE_PLUGIN_OPTION_<KEY>` 环境变量,其中 `<KEY>` 是选项键的大写形式。

634 661 

635在 shell 中运行的字段拒绝 `${user_config.*}`:将配置的值替换到 shell 命令中会让 shell 运行该值包含的任何内容,因此组件失败并出现[错误](/docs/zh-CN/errors#plugin-command-references-user-config)。每个被拒绝的字段都有一种替代方式来传递值:662在 shell 中运行的字段拒绝 `${user_config.*}`:将配置的值替换到 shell 命令中会让 shell 运行该值包含的任何内容,因此组件失败并出现[错误](/docs/zh-CN/errors#plugin-command-references-user-config)。每个被拒绝的字段都有一种替代方式来传递值:

636 663 


640| [Monitor](#monitors) 命令 | 从脚本中的配置文件读取值 |667| [Monitor](#monitors) 命令 | 从脚本中的配置文件读取值 |

641| MCP [`headersHelper`](/docs/zh-CN/mcp#use-dynamic-headers-for-custom-authentication) | 从脚本中的配置文件读取值 |668| MCP [`headersHelper`](/docs/zh-CN/mcp#use-dynamic-headers-for-custom-authentication) | 从脚本中的配置文件读取值 |

642 669 

643在 v2.1.207 之前,这些字段替换了 `${user_config.KEY}` 值;更新依赖此功能的 plugin。670在 v2.1.207 之前,这些字段替换了 `${user_config.KEY}` 值;更新依赖此的插件。

644 671 

645非敏感值存储在用户 `settings.json` 中 [`pluginConfigs`](/docs/zh-CN/settings-reference#pluginconfigs) 键下,作为 `pluginConfigs[<plugin-id>].options`。672非敏感值存储在用户 `settings.json` 中的 [`pluginConfigs`](/docs/zh-CN/settings-reference#pluginconfigs) 键下,作为 `pluginConfigs[<plugin-id>].options`。

646 673 

647在 macOS 上,Claude Code 将敏感值存储在 macOS Keychain 中,当 Keychain 拒绝写入时回退到 `~/.claude/.credentials.json`。在没有支持的 keychain 的平台上,它将它们存储在 `~/.claude/.credentials.json` 中。Keychain 存储与 OAuth 令牌共享,总限制约为 2 KB,因此保持敏感值较小。674在 macOS 上,Claude Code 将敏感值存储在 macOS Keychain 中,当 Keychain 拒绝写入时回退到 `~/.claude/.credentials.json`。在没有支持的 keychain 的平台上,它将它们存储在 `~/.claude/.credentials.json` 中。Keychain 存储与 OAuth 令牌共享,总限制约为 2 KB,因此保持敏感值较小。

648 675 


652* **`--settings`**:CLI 标志或 SDK 内联设置679* **`--settings`**:CLI 标志或 SDK 内联设置

653* **托管设置**:[组织控制的策略](/docs/zh-CN/permissions#managed-settings)680* **托管设置**:[组织控制的策略](/docs/zh-CN/permissions#managed-settings)

654 681 

655当多个源设置相同的键时,托管设置优先,然后是 `--settings`,然后是用户设置。你可以从此列表中删除的唯一源是用户设置:传递不包含 `user` 的 [`--setting-sources`](/docs/zh-CN/cli-reference#cli-flags),Claude Code 会跳过它们。托管设置和 `--settings` 保持你传递的任何内容。SDK 的 [`settingSources`](/docs/zh-CN/agent-sdk/claude-code-features#what-settingsources-does-not-control) 选项设置相同的列表。682当多个源设置相同的键时,托管设置优先,然后是 `--settings`,然后是用户设置。你可以从此列表中删除的唯一源是用户设置:传递不带 `user` 的 [`--setting-sources`](/docs/zh-CN/cli-reference#cli-flags),Claude Code 会跳过它们。托管设置和 `--settings` 保持你传递的任何内容。SDK 的 [`settingSources`](/docs/zh-CN/agent-sdk/claude-code-features#what-settingsources-does-not-control) 选项设置相同的列表。

683 

684项目的 `.claude/settings.json` 或 `.claude/settings.local.json` 中的条目被忽略。两个文件都位于工作区中,因此克隆的存储库可以在那里提供值,这些值会流入插件 hook 命令、MCP 服务器配置、LSP 命令和监视器命令。在 v2.1.207 之前,这些条目被读取。限制特定于 `pluginConfigs`:[`enabledPlugins`](/docs/zh-CN/settings-reference#enabledplugins) 仍然遵守项目和本地设置。

685 

686<h4 id="limit-a-field-to-fixed-options">

687 将字段限制为固定选项

688</h4>

689 

690在 `userConfig` 字段上设置 `options` 以使用户从固定列表中选择其值。

691 

692要将 `tone` 字段限制为三个选项,在 `options` 中列出它们并将 `default` 设置为其中之一:

656 693 

657项目的 `.claude/settings.json` 或 `.claude/settings.local.json` 中的条目被忽略。两个文件都位于工作区中,因此克隆的存储库可以在那里提供值,这些值会流入 plugin hook 命令、MCP 服务器配置、LSP 命令和监视器命令。在 v2.1.207 之前,这些条目被读取。限制特定于 `pluginConfigs`:[`enabledPlugins`](/docs/zh-CN/settings-reference#enabledplugins) 仍然遵守项目和本地设置。694```json theme={null}

695{

696 "userConfig": {

697 "tone": {

698 "type": "string",

699 "title": "Tone",

700 "description": "Voice for generated replies",

701 "options": ["neutral", "warm", "formal"],

702 "default": "neutral"

703 }

704 }

705}

706```

707 

708如果你在任何字段上声明 `options`,Claude Code v2.1.271 之前版本的用户无法加载插件。

709 

710当你在字段上设置 `options` 时,遵循这些规则:

711 

712* 将 `type` 设置为 `string`

713* 不要将 `multiple` 或 `sensitive` 设置为 `true`

714* 将 `default` 设置为其中一个选项

715* 如果你不设置 `default`,将 `required` 设置为 `true`

716* 列出至少一个选项,每个 1 到 64 个字符长

717* 不要以空格开始或结束选项

718* 不要在选项中使用控制字符、不可见字符、改变文本方向的字符或除常规空格外的空格

719* 不要列出相同的选项两次,即使是不同的字母大小写

720 

721如果你违反任何这些规则,插件无法加载。运行 `claude plugin validate` 以查看哪个字段违反了哪个规则。

658 722 

659<h3 id="channels">723<h3 id="channels">

660 频道724 频道

661</h3>725</h3>

662 726 

663`channels` 字段让 plugin 声明一个或多个消息频道,将内容注入到对话中。每个频道绑定到 plugin 提供的 MCP 服务器。727`channels` 字段让插件声明一个或多个消息频道,将内容注入到对话中。每个频道绑定到插件提供的 MCP 服务器。

664 728 

665```json theme={null}729```json theme={null}

666{730{


685}749}

686```750```

687 751 

688`server` 字段是必需的,必须与 plugin 的 `mcpServers` 中的键匹配。可选的每个频道 `userConfig` 使用与顶级字段相同的 schema,让 plugin 在启用时提示输入机器人令牌或所有者 ID。752`server` 字段是必需的,必须与插件的 `mcpServers` 中的键匹配。可选的每个频道 `userConfig` 使用与顶级字段相同的 schema,让插件在启用插件时提示输入机器人令牌或所有者 ID。

689 753 

690<h3 id="path-behavior-rules">754<h3 id="path-behavior-rules">

691 路径行为规则755 路径行为规则

692</h3>756</h3>

693 757 

694自定义路径是替换还是扩展 plugin 的默认目录取决于该字段:758自定义路径是替换还是扩展插件的默认目录取决于该字段:

695 759 

696* **替换默认值**:`commands`、`agents`、`workflows`、`outputStyles`、`experimental.themes`、`experimental.monitors`。例如,当 manifest 指定 `commands` 时,不会扫描默认 `commands/` 目录。要保留默认值并添加更多,请明确列出:`"commands": ["./commands/", "./extras/"]`760* **替换默认值**:`commands`、`agents`、`workflows`、`outputStyles`、`experimental.themes`、`experimental.monitors`。例如,当 manifest 指定 `commands` 时,默认 `commands/` 目录不被扫描。要保留默认值并添加更多,明确列出它:`"commands": ["./commands/", "./extras/"]`

697* **添加到默认值**:`skills`。默认 `skills/` 目录始终被扫描,`skills` 中列出的目录与其一起加载。异常:对于[源解析为 marketplace 根的 marketplace 条目](/docs/zh-CN/plugin-marketplaces#advanced-plugin-entries),声明特定子目录会替换默认 `skills/` 扫描761* **添加到默认值**:`skills`。默认 `skills/` 目录始终被扫描,`skills` 中列出的目录与它一起加载。异常:对于[其 `source` 解析为 marketplace 根的 marketplace 条目](/docs/zh-CN/plugin-marketplaces#advanced-plugin-entries),声明特定子目录替换默认 `skills/` 扫描

698* **自己的合并规则**:[hooks](#hooks)、[MCP 服务器](#mcp-servers) 和 [LSP 服务器](#lsp-servers)。请参阅每个部分了解多个源如何组合762* **自己的合并规则**:[hooks](#hooks)、[MCP 服务器](#mcp-servers) 和 [LSP 服务器](#lsp-servers)。请参阅每个部分了解多个源如何组合

699 763 

700当 plugin 同时具有默认文件夹和匹配的 manifest 键时,Claude Code 在 `claude plugin list` 和 `/plugin` 详细视图中警告被忽略的文件夹。plugin 仍然使用 manifest 路径加载。当 manifest 键指向默认文件夹时,Claude Code 不会发出警告,例如 `"commands": ["./commands/deploy.md"]`,因为该路径明确命名了文件夹。764当插件同时具有默认文件夹和匹配的 manifest 键时,Claude Code 在 `claude plugin list` 和 `/plugin` 详细视图中警告被忽略的文件夹。插件仍然使用 manifest 路径加载。当 manifest 键指向默认文件夹时,Claude Code 不会警告,例如 `"commands": ["./commands/deploy.md"]`,因为该路径明确命名了文件夹。

701 765 

702对于所有路径字段:766对于所有路径字段:

703 767 

704* 所有路径必须相对于 plugin 根目录并以 `./` 开头,除了 `skills` 字段也接受 `"."`768* 所有路径必须相对于插件根目录并以 `./` 开头,除了 `skills` 字段也接受 `"."`

705 * `"."` 和 `"./"` 都表示 plugin 根目录本身769 * `"."` 和 `"./"` 都表示插件根目录本身

706 * 在 v2.1.221 之前,`"."` 无法通过 manifest 验证,plugin 无法加载,因此使用 `"./"` 来支持早期版本770 * 在 v2.1.221 之前,`"."` 无法通过 manifest 验证,插件无法加载,因此使用 `"./"` 以支持早期版本

707* 来自自定义路径的组件使用相同的命名和命名空间规则771* 来自自定义路径的组件使用相同的命名和命名空间规则,除了代理文件。请参阅[代理](#agents)了解代理名称如何工作

708* 可以将多个路径指定为数组772* 多个路径可以指定为数组

709* skill 路径可以指向直接包含 `SKILL.md` 的目录,例如 `"skills": ["."]` 用于 plugin 根目录773* skill 路径可以指向直接包含 `SKILL.md` 的目录,例如 `"skills": ["."]` 用于插件根目录

710 * Claude Code 从 `SKILL.md` 中的 frontmatter `name` 字段获取 skill 的调用名称,因此无论安装目录的名称如何,名称都保持稳定774 * Claude Code 从 `SKILL.md` 中的 frontmatter `name` 字段获取 skill 的调用名称,因此无论安装目录的名称如何,名称都保持稳定

711 * 如果 frontmatter 中未设置 `name`,Claude Code 会回退到目录基名775 * 如果 frontmatter 中未设置 `name`,Claude Code 回退到目录基名

712 776 

713具有根目录中的 `SKILL.md`、没有 `skills/` 子目录且没有 `skills` manifest 字段的 plugin 会自动作为单 skill plugin 加载。对于此布局,你不需要在 `plugin.json` 中设置 `"skills": ["./"]`。777具有根目录中的 `SKILL.md`、没有 `skills/` 子目录且没有 `skills` manifest 字段的插件会自动作为单一 skill 插件加载。你不需要为此布局在 `plugin.json` 中设置 `"skills": ["./"]`。

714 778 

715**路径示例**:779**路径示例**:

716 780 


734Claude Code 提供三个变量用于引用路径:798Claude Code 提供三个变量用于引用路径:

735 799 

736| 变量 | 解析为 | 用途 |800| 变量 | 解析为 | 用途 |

737| :---------------------- | :--------------------------------------------------------- | :----------------------------------------------- |801| :---------------------- | :--------------------------------------------------- | :----------------------------------------------- |

738| `${CLAUDE_PLUGIN_ROOT}` | plugin 安装目录的绝对路径 | 与 plugin 捆绑的脚本、二进制文件和配置文件 |802| `${CLAUDE_PLUGIN_ROOT}` | 插件安装目录的绝对路径 | 与插件捆绑的脚本、二进制文件和配置文件 |

739| `${CLAUDE_PLUGIN_DATA}` | [持久目录](#persistent-data-directory),在首次引用时创建,在 plugin 更新中存活 | 已安装的依赖项,例如 `node_modules` 或 Python 虚拟环境、生成的代码和缓存 |803| `${CLAUDE_PLUGIN_DATA}` | [持久目录](#persistent-data-directory),在首次引用时创建,在插件更新中存活 | 已安装的依赖项,例如 `node_modules` 或 Python 虚拟环境、生成的代码和缓存 |

740| `${CLAUDE_PROJECT_DIR}` | 项目根目录 | 项目本地脚本和配置文件 |804| `${CLAUDE_PROJECT_DIR}` | 项目根目录 | 项目本地脚本和配置文件 |

741 805 

742所有三个都作为环境变量导出到 hook 进程以及 MCP 和 LSP 服务器子进程。哪些字段内联替换它们取决于 plugin 组件:806所有三个都导出为环境变量到 hook 进程以及 MCP 和 LSP 服务器子进程。它们不存在于 Claude 通过 Bash 工具运行的命令的环境中,无论是在主会话还是在子代理中。在插件内容中,写入占位符,Claude Code 在加载内容时内联替换路径。哪些字段内联替换它们取决于插件组件:

743 807 

744| Plugin 组件 | 占位符解析的字段 |808| 插件组件 | 占位符解析的字段 |

745| :------------------------ | :--------------------------------------- |809| :------------------------ | :--------------------------------------- |

746| Skill 和 agent 内容 | 占位符出现的任何地方 |810| Skill 和代理内容 | 占位符出现的任何地方 |

747| Hook 和 monitor 命令 | 占位符出现的任何地方 |811| Hook 和监视器命令 | 占位符出现的任何地方 |

748| MCP `stdio` 服务器 | `command`、`args`、`env` |812| MCP `stdio` 服务器 | `command`、`args`、`env` |

749| MCP `http`、`sse`、`ws` 服务器 | `url`、`headers`、`headersHelper` |813| MCP `http`、`sse`、`ws` 服务器 | `url`、`headers`、`headersHelper` |

750| LSP 服务器 | `command`、`args`、`env`、`workspaceFolder` |814| LSP 服务器 | `command`、`args`、`env`、`workspaceFolder` |

751 815 

752在 hook 命令中,使用带有 `args` 的 [exec 形式](/docs/zh-CN/hooks#exec-form-and-shell-form),以便每个路径作为一个参数传递,无需引用。在 shell 形式的 hooks 和 monitor 命令中,用双引号包装变量,如 `"${CLAUDE_PROJECT_DIR}/scripts/server.sh"`。此 shell 形式的 hook 运行与 plugin 捆绑的脚本:816在 hook 命令中,使用带有 `args` 的 [exec 形式](/docs/zh-CN/hooks#exec-form-and-shell-form),以便每个路径作为一个参数传递,无需引用。在 shell 形式的 hooks 和监视器命令中,用双引号包装变量,如 `"${CLAUDE_PROJECT_DIR}/scripts/server.sh"`。此 shell 形式的 hook 运行与插件捆绑的脚本:

753 817 

754```json theme={null}818```json theme={null}

755{819{


768}832}

769```833```

770 834 

771`${CLAUDE_PLUGIN_ROOT}` 在 plugin 更新时改变。前一个版本的目录在更新后的宽限期内保留在磁盘上,但将其视为临时的,不要在那里写入状态。请参阅 [plugin 缓存](#plugin-caching-and-file-resolution)了解清理语义。835对于复制的插件,`${CLAUDE_PLUGIN_ROOT}` 在插件更新时更改。前一个版本的目录在更新后的宽限期内保留在磁盘上,但将其视为临时的,不要在那里写入状态。对于从本地目录 marketplace 加载到位的插件,变量指向稳定的源目录。请参阅[插件缓存](#plugin-caching-and-file-resolution)了解哪些插件被复制以及清理语义。

772 836 

773当 plugin 在会话中期更新时,hook 命令、monitors、MCP 服务器和 LSP 服务器继续使用前一个版本的路径。运行 `/reload-plugins` 将 hooks、MCP 服务器和 LSP 服务器切换到新路径;monitors 需要会话重启。在没有交互式终端的会话中,重新加载会将 plugin MCP 服务器保留在旧路径上,直到下一个会话。837当复制的插件在会话中期更新时,hook 命令、监视器、MCP 服务器和 LSP 服务器继续使用前一个版本的路径。运行 `/reload-plugins` 以将 hooks、MCP 服务器和 LSP 服务器切换到新路径;监视器需要会话重启。在没有交互式终端的会话中,重新加载会将插件 MCP 服务器保留在旧路径上,直到下一个会话。

774 838 

775对于具有 `command` 源的 plugin,Claude Code [可以重新加载 plugin 本身](/docs/zh-CN/plugin-marketplaces#when-claude-code-re-runs-the-command)。839对于具有 `command` 源的插件,Claude Code [可以重新加载插件本身](/docs/zh-CN/plugin-marketplaces#when-claude-code-re-runs-the-command)。

776 840 

777MCP 服务器也可以调用 `roots/list` 请求在运行时读取会话的工作目录。请参阅[`roots/list` 返回的内容以及 Claude Code 何时通知服务器更改](/docs/zh-CN/mcp#option-3-add-a-local-stdio-server)。841MCP 服务器也可以调用 `roots/list` 请求以在运行时读取会话的工作目录。请参阅[`roots/list` 返回的内容以及 Claude Code 何时通知服务器更改](/docs/zh-CN/mcp#option-3-add-a-local-stdio-server)。

778 842 

779<h4 id="persistent-data-directory">843<h4 id="persistent-data-directory">

780 持久数据目录844 持久数据目录

781</h4>845</h4>

782 846 

783`${CLAUDE_PLUGIN_DATA}` 目录解析为 `~/.claude/plugins/data/{id}/`,其中 `{id}` 是 plugin 标识符,其中 `a-z`、`A-Z`、`0-9`、`_` 和 `-` 之外的字符被替换为 `-`。对于作为 `formatter@my-marketplace` 安装的 plugin,目录是 `~/.claude/plugins/data/formatter-my-marketplace/`。847`${CLAUDE_PLUGIN_DATA}` 目录解析为 `~/.claude/plugins/data/{id}/`,其中 `{id}` 是插件标识符,其中 `a-z`、`A-Z`、`0-9`、`_` 和 `-` 之外的字符被替换为 `-`。对于作为 `formatter@my-marketplace` 安装的插件,目录是 `~/.claude/plugins/data/formatter-my-marketplace/`。

784 848 

785常见用途是一次安装语言依赖项并在会话和 plugin 更新中重复使用它们。将其用于 Python 依赖项、使用 Yarn 或 pnpm 锁定的依赖项以及生命周期脚本必须运行的包。对于 marketplace 安装的 plugin,你可能根本不需要它:Claude Code 在缓存 plugin 时自动安装符合条件的 [Node.js 包依赖项](#node-js-package-dependencies)。849常见用途是一次安装语言依赖项并在会话和插件更新中重用它们。将其用于 Python 依赖项、使用 Yarn 或 pnpm 锁定的依赖项以及其生命周期脚本必须运行的包。对于 marketplace 安装的插件,你可能根本不需要它:Claude Code 在缓存插件时自动安装符合条件的 [Node.js 包依赖项](#node-js-package-dependencies)。

786 850 

787因为数据目录的生命周期超过任何单个 plugin 版本,仅检查目录存在性无法检测到更新何时更改 plugin 的依赖项 manifest。推荐的模式是将捆绑的 manifest 与数据目录中的副本进行比较,并在它们不同时重新安装。851因为数据目录比任何单个插件版本更长寿,仅检查目录存在无法检测更新何时更改插件的依赖项 manifest。推荐的模式是将捆绑的 manifest 与数据目录中的副本进行比较,并在它们不同时重新安装。

788 852 

789此 `SessionStart` hook 在首次运行时安装 `node_modules`,并在 plugin 更新包含更改的 `package.json` 时再次安装:853此 `SessionStart` hook 在第一次运行时安装 `node_modules`,并在插件更新包含更改的 `package.json` 时再次安装:

790 854 

791```json theme={null}855```json theme={null}

792{856{


805}869}

806```870```

807 871 

808当存储的副本缺失或与捆绑的副本不同时,`diff` 退出非零,涵盖首次运行和依赖项更改更新。如果 `npm install` 失败,尾部 `rm` 会删除复制的 manifest,以便下一个会话重试。872当存储的副本丢失或与捆绑的副本不同时,`diff` 退出非零,涵盖首次运行和依赖项更改更新。如果 `npm install` 失败,尾部 `rm` 删除复制的 manifest,以便下一个会话重试。

809 873 

810捆绑在 `${CLAUDE_PLUGIN_ROOT}` 中的脚本可以针对持久化的 `node_modules` 运行:874捆绑在 `${CLAUDE_PLUGIN_ROOT}` 中的脚本可以针对持久化的 `node_modules` 运行:

811 875 


823}887}

824```888```

825 889 

826当你从最后一个安装 plugin 的范围卸载 plugin 时,数据目录会自动删除。`/plugin` 界面显示目录大小并在删除前提示。CLI 默认删除;传递 [`--keep-data`](#plugin-uninstall) 以保留它。890当你从最后一个安装它的范围卸载插件时,数据目录会自动删除。`/plugin` 界面显示目录大小并在删除前提示。CLI 默认删除;传递 [`--keep-data`](#plugin-uninstall) 以保留它。

827 891 

828***892***

829 893 


831 Plugin 缓存和文件解析895 Plugin 缓存和文件解析

832</h2>896</h2>

833 897 

834Plugin 可以通过以下两种方式指定:898Plugin 可以通过以下三种方式指定:

835 899 

836* 通过 `claude --plugin-dir` 或 `claude --plugin-url`,在会话期间使用。900* 通过 `claude --plugin-dir` 或 `claude --plugin-url`,在会话期间使用。

837* 通过 marketplace,为未来的会话安装。901* 通过 marketplace,为未来的会话安装。

902* 通过你的 claude.ai 账户,[同步](#synced-plugins)到 `~/.claude/plugins/synced/`。

838 903 

839出于安全和验证目的,Claude Code 将 *marketplace* plugin 复制到用户的本地 **plugin 缓存**(`~/.claude/plugins/cache`)中,而不是就地使用它们,除了 [link 模式下的 `command` 源](/docs/zh-CN/plugin-marketplaces#copy-mode-and-link-mode),Claude Code 通过缓存条目中的链接就地使用这些源。904出于安全和验证目的,Claude Code 将 *marketplace* plugin 复制到用户的本地 **plugin 缓存**(`~/.claude/plugins/cache`),除非 plugin 就地加载。[link 模式下的 `command` 源](/docs/zh-CN/plugin-marketplaces#copy-mode-and-link-mode)通过缓存条目中的链接就地加载。来自本地目录添加的 marketplace 的[相对路径源](/docs/zh-CN/plugin-marketplaces#relative-paths)从 marketplace 文件夹就地加载。

840 905 

841对于复制的 plugin,每个已安装的版本都是缓存中的一个单独目录,按 marketplace 和 plugin 分组,并以解析的版本命名,包含 plugin 文件和 [Node.js 包依赖](#node-js-package-dependencies) 的自己的副本。从 [release tag](/docs/zh-CN/plugin-dependencies#tag-plugin-releases-for-version-resolution) 解析的依赖会获得一个带有 commit-SHA 后缀的目录名。906对于从本地目录 marketplace 就地加载的 plugin,你对源目录的编辑在下一个会话启动或 `/reload-plugins` 时生效。你不需要版本号提升。plugin 的 hook 进程和 MCP 和 LSP 服务器接收指向源目录的 `CLAUDE_PLUGIN_ROOT`。Claude Code 不会将 plugin 的 [Node.js 包依赖](#node-js-package-dependencies)安装到源目录中。自己在那里安装它们,或从 hook 安装到[持久数据目录](#persistent-data-directory)。

907 

908对于复制的 plugin,每个已安装的版本都是缓存中的一个单独目录,按 marketplace 和 plugin 分组,并以解析的版本命名,包含 plugin 文件和 [Node.js 包依赖](#node-js-package-dependencies)的自己的副本。从[release tag](/docs/zh-CN/plugin-dependencies#tag-plugin-releases-for-version-resolution)解析的依赖会获得一个带有 commit-SHA 后缀的目录名。

842 909 

843当你更新或卸载 plugin 时,Claude Code 会将之前的版本目录标记为孤立,并在大约 14 天后的后台扫描中将其删除。宽限期允许已加载旧版本的并发 Claude Code 会话继续运行而不出错。Claude Code 仅在至少安装了一个 plugin 时才运行扫描;在卸载最后一个 plugin 后,孤立目录会保留在磁盘上,直到你再次安装 plugin。910当你更新或卸载 plugin 时,Claude Code 会将之前的版本目录标记为孤立,并在大约 14 天后的后台扫描中将其删除。宽限期允许已加载旧版本的并发 Claude Code 会话继续运行而不出错。Claude Code 仅在至少安装了一个 plugin 时才运行扫描;在卸载最后一个 plugin 后,孤立目录会保留在磁盘上,直到你再次安装 plugin。

844 911 


850 Node.js 包依赖917 Node.js 包依赖

851</h3>918</h3>

852 919 

853当 Claude Code 将 plugin 复制到缓存中时,它也会在那里安装 plugin 的 Node.js 包依赖,以便 plugin 的 hooks 和 MCP 服务器可以加载它们。本节涵盖 plugin 在其自己的 `package.json` 中声明的 npm 和 Bun 包。对于依赖其他 plugin 的 plugin,请参阅 [plugin 依赖版本](/docs/zh-CN/plugin-dependencies)。920当 Claude Code 将 plugin 复制到缓存中时,它也会在那里安装 plugin 的 Node.js 包依赖,以便 plugin 的 hooks 和 MCP 服务器可以加载它们。本节涵盖 plugin 在其自己的 `package.json` 中声明的 npm 和 Bun 包。对于依赖其他 plugin 的 plugin,请参阅[plugin 依赖版本](/docs/zh-CN/plugin-dependencies)。

854 921 

855Claude Code 在每次创建复制的版本目录时在其中运行安装:当你安装 plugin 时、当 Claude Code 将 plugin 更新到新版本时,以及在会话启动时当启用的 plugin 尚未缓存时(例如在新机器上)。仅当 plugin 的根目录同时包含 `package.json` 和受支持的 lockfile 时,安装才会运行:922Claude Code 在每次创建复制的版本目录时在其中运行安装:当你安装 plugin 时、当 Claude Code 将 plugin 更新到新版本时,以及在会话启动时当启用的 plugin 尚未缓存时(例如在新机器上)。仅当 plugin 的根目录同时包含 `package.json` 和受支持的 lockfile 时,安装才会运行:

856 923 


859| `bun.lock` 或 `bun.lockb` | `bun install --frozen-lockfile --ignore-scripts` |926| `bun.lock` 或 `bun.lockb` | `bun install --frozen-lockfile --ignore-scripts` |

860| `npm-shrinkwrap.json` 或 `package-lock.json` | `npm ci --ignore-scripts` |927| `npm-shrinkwrap.json` 或 `package-lock.json` | `npm ci --ignore-scripts` |

861 928 

862如果 plugin 包含多个这些 lockfile,Claude Code 使用第一个匹配项,按顺序检查:`bun.lock`、`bun.lockb`、`npm-shrinkwrap.json`、`package-lock.json`。Claude Code 跳过 `yarn.lock` 和 `pnpm-lock.yaml`,因为 Yarn 和 pnpm 支持绕过 `--ignore-scripts` 的分辨率时间配置钩子。929如果 plugin 包含多个这些 lockfile,Claude Code 使用第一个匹配项,按顺序检查:`bun.lock`、`bun.lockb`、`npm-shrinkwrap.json`、`package-lock.json`。

930 

931Claude Code 在两种情况下跳过安装,每种情况都有自己的修复方法:

932 

933* 如果你的 plugin 仅提供 `yarn.lock` 或 `pnpm-lock.yaml`,请将其替换为 npm lockfile。

934* 如果 `bunfig.toml` 位于 bun lockfile 旁边,请删除 `bunfig.toml`,或将 bun lockfile 替换为 npm lockfile。

863 935 

864为了获得最广泛的覆盖范围,请提供 npm lockfile。Claude Code 从用户的 PATH 运行匹配的 lockfile 的包管理器,如果缺少其他 lockfile,不会回退到它。对于通过 npm 源分发的 plugin,使用 `npm-shrinkwrap.json`;npm 从已发布的包中排除 `package-lock.json`。936为了获得最广泛的覆盖范围,请提供 npm lockfile。Claude Code 从用户的 PATH 运行匹配的 lockfile 的包管理器,如果缺少其他 lockfile,不会回退到它。对于通过 npm 源分发的 plugin,使用 `npm-shrinkwrap.json`;npm 从已发布的包中排除 `package-lock.json`。

865 937 


869* **无生命周期脚本:** `--ignore-scripts` 防止 `preinstall`、`install` 和 `postinstall` 脚本运行,因此在这些脚本中构建本机模块的依赖会下载但在此安装期间不会编译。941* **无生命周期脚本:** `--ignore-scripts` 防止 `preinstall`、`install` 和 `postinstall` 脚本运行,因此在这些脚本中构建本机模块的依赖会下载但在此安装期间不会编译。

870* **60 秒超时:** Claude Code 停止运行时间较长的安装并将其视为失败。942* **60 秒超时:** Claude Code 停止运行时间较长的安装并将其视为失败。

871 943 

872获取 npm 源 plugin 本身会在此依赖安装运行之前运行启用了生命周期脚本的 `npm install`。944Claude Code 在此依赖安装之前获取 npm 源 plugin,并且包自己的任何安装脚本在获取期间都不会运行。请参阅 [npm 包](/docs/zh-CN/plugin-marketplaces#npm-packages)。

873 945 

874失败或跳过的安装永远不会阻止 plugin。当安装失败或 Claude Code 跳过 yarn 或 pnpm lockfile 时,它会在 [debug 输出](#debugging-commands) 中将原因记录为警告。具有 `package.json` 但没有 lockfile 的 plugin 会被跳过而不记录日志条目。超时的安装可能会在缓存副本中留下部分 `node_modules` 树。946失败或跳过的安装永远不会阻止 plugin。当安装失败或 Claude Code 跳过它因为 yarn 或 pnpm lockfile 或 `bunfig.toml` 时,它会在[调试输出](#debugging-commands)中将原因记录为警告。具有 `package.json` 但没有 lockfile 的 plugin 会被跳过而不记录日志条目。超时的安装可能会在缓存副本中留下部分 `node_modules` 树。

875 947 

876你无法关闭自动安装;没有设置或环境变量可以禁用它。在受限网络中,请参阅 [网络访问要求](/docs/zh-CN/network-config#network-access-requirements) 以了解要允许的主机。948你无法关闭自动安装;没有设置或环境变量可以禁用它。在受限网络中,请参阅[网络访问要求](/docs/zh-CN/network-config#network-access-requirements)以了解要允许的主机。

877 949 

878对于自动安装无法提供的依赖,例如需要其生命周期脚本来构建的包、Python 依赖或使用 Yarn 或 pnpm 锁定的 plugin,请从 hook 将它们安装到 [持久数据目录](#persistent-data-directory)。950对于自动安装无法提供的依赖,例如需要其生命周期脚本来构建的包、Python 依赖或使用 Yarn 或 pnpm 锁定的 plugin,请从 hook 将它们安装到[持久数据目录](#persistent-data-directory)。

879 951 

880<h3 id="path-traversal-limitations">952<h3 id="path-traversal-limitations">

881 路径遍历限制953 路径遍历限制

882</h3>954</h3>

883 955 

884Claude Code 不允许 plugin 引用其自己目录之外的文件。它拒绝解析到 plugin 根目录之外的组件路径,无论该路径是在 `plugin.json` 中声明还是在 [marketplace 条目](/docs/zh-CN/plugin-marketplaces#plugin-entries) 中声明。这涵盖指向 plugin 外部的路径(如 `../shared-utils`)和导向 plugin 外部的符号链接,除了 [一个 marketplace 内的链接](#share-files-within-a-marketplace-with-symlinks)。956Claude Code 不允许 plugin 引用其自己目录之外的文件。它拒绝解析到 plugin 根目录之外的组件路径,无论该路径是在 `plugin.json` 中声明还是在[marketplace 条目](/docs/zh-CN/plugin-marketplaces#plugin-entries)中声明。这涵盖指向 plugin 外部的路径(如 `../shared-utils`)和导向 plugin 外部的符号链接,除了[一个 marketplace 内的链接](#share-files-within-a-marketplace-with-symlinks)。

885 957 

886在 macOS 和 Linux 上,Claude Code 也拒绝包含反斜杠的组件路径,即使该路径保留在 plugin 内。因此,使用反斜杠路径声明的组件仅在 Windows 上加载。使用正斜杠编写组件路径,例如 `./commands/deploy.md`。958在 macOS 和 Linux 上,Claude Code 也拒绝包含反斜杠的组件路径,即使该路径保留在 plugin 内。因此,使用反斜杠路径声明的组件仅在 Windows 上加载。使用正斜杠编写组件路径,例如 `./commands/deploy.md`。

887 959 


899* **在同一 marketplace 内的其他位置:** 符号链接被解引用。目标的内容被复制到缓存中以代替它。这允许元 plugin 的 `skills/` 目录链接到 marketplace 中其他 plugin 定义的技能。971* **在同一 marketplace 内的其他位置:** 符号链接被解引用。目标的内容被复制到缓存中以代替它。这允许元 plugin 的 `skills/` 目录链接到 marketplace 中其他 plugin 定义的技能。

900* **在 marketplace 外:** 符号链接出于安全原因被跳过。这防止 plugin 将任意主机文件(如系统路径)拉入缓存。972* **在 marketplace 外:** 符号链接出于安全原因被跳过。这防止 plugin 将任意主机文件(如系统路径)拉入缓存。

901 973 

902对于使用 `--plugin-dir` 安装的 plugin、来自本地路径的 plugin 或 来自 [copy 模式下的 `command` 源](/docs/zh-CN/plugin-marketplaces#copy-mode-and-link-mode) 的 plugin,仅保留解析到 plugin 自己目录内的符号链接。所有其他的都被跳过。974对于使用 `--plugin-dir` 安装的 plugin、来自本地路径的 plugin 或 来自 [copy 模式下的 `command` 源](/docs/zh-CN/plugin-marketplaces#copy-mode-and-link-mode)的 plugin,仅保留解析到 plugin 自己目录内的符号链接。所有其他的都被跳过。

903 975 

904以下命令创建从 marketplace plugin 内部到由兄弟 plugin 定义的共享技能的链接。在 Windows 上,从提升的命令提示符使用 `mklink /D` 或启用开发者模式:976以下命令创建从 marketplace plugin 内部到由兄弟 plugin 定义的共享技能的链接。在 Windows 上,从提升的命令提示符使用 `mklink /D` 或启用开发者模式:

905 977 


935├── agents/ # Subagent 定义1007├── agents/ # Subagent 定义

936│ ├── security-reviewer.md1008│ ├── security-reviewer.md

937│ ├── performance-tester.md1009│ ├── performance-tester.md

938│ └── compliance-checker.md1010│ ├── compliance-checker.md

1011│ └── review/ # 此处的 Agents 加载为 enterprise-plugin:review:<name>

1012│ └── accessibility.md

939├── workflows/ # Workflow 脚本1013├── workflows/ # Workflow 脚本

940│ └── release-audit.js1014│ └── release-audit.js

941├── output-styles/ # 输出样式定义1015├── output-styles/ # 输出样式定义


975| **清单** | `.claude-plugin/plugin.json` | Plugin 元数据和配置(可选) |1049| **清单** | `.claude-plugin/plugin.json` | Plugin 元数据和配置(可选) |

976| **Skills** | `skills/` | 具有 `<name>/SKILL.md` 结构的 Skills |1050| **Skills** | `skills/` | 具有 `<name>/SKILL.md` 结构的 Skills |

977| **Commands** | `commands/` | 作为平面 Markdown 文件的 Skills。新 plugins 请使用 `skills/` |1051| **Commands** | `commands/` | 作为平面 Markdown 文件的 Skills。新 plugins 请使用 `skills/` |

978| **Agents** | `agents/` | Subagent Markdown 文件 |1052| **Agents** | `agents/` | Subagent Markdown 文件。子文件夹是 [agent 名称](#agents) 的一部分 |

979| **Workflows** | `workflows/` | [Workflow](/docs/zh-CN/workflows) 脚本文件 |1053| **Workflows** | `workflows/` | [Workflow](/docs/zh-CN/workflows) 脚本文件 |

980| **输出样式** | `output-styles/` | 输出样式定义 |1054| **输出样式** | `output-styles/` | 输出样式定义 |

981| **主题** | `themes/` | 颜色主题定义 |1055| **主题** | `themes/` | 颜色主题定义 |


1170 1244 

1171该命令接受这些参数:1245该命令接受这些参数:

1172 1246 

1173* `<plugin>`:插件名称或 `plugin-name@marketplace-name`1247* `<plugin>`:插件名称、`plugin-name@marketplace-name` 或 `plugin-name@synced` 用于 [plugin synced from claude.ai](#synced-plugins)

1174 1248 

1175该命令接受这些选项:1249该命令接受这些选项:

1176 1250 


1196 1270 

1197该命令接受这些参数:1271该命令接受这些参数:

1198 1272 

1199* `[plugin]`:插件名称或 `plugin-name@marketplace-name`。使用 `--all` 时可选1273* `[plugin]`:插件名称、`plugin-name@marketplace-name` 或 `plugin-name@synced` 用于 [plugin synced from claude.ai](#synced-plugins)。使用 `--all` 时可选

1200 1274 

1201该命令接受这些选项:1275该命令接受这些选项:

1202 1276 


1258在交互式会话中,`/plugin list` 打印类似的列表内联,但仅涵盖市场安装的插件:1332在交互式会话中,`/plugin list` 打印类似的列表内联,但仅涵盖市场安装的插件:

1259 1333 

1260* 从技能目录加载的插件出现在 `/plugin` 界面和 `claude plugin list` 中,但不出现在内联 `/plugin list` 输出中。1334* 从技能目录加载的插件出现在 `/plugin` 界面和 `claude plugin list` 中,但不出现在内联 `/plugin list` 输出中。

1261* 在 Claude Code v2.1.239 或更高版本上,[从 claude.ai 同步的插件](#synced-plugins) 在您在同步会话下载它们的环境中运行 `claude plugin list` 时出现。它们不出现在内联 `/plugin list` 输出中。1335* [从 claude.ai 同步的插件](#synced-plugins) 在 Claude Code v2.1.239 或更高版本上出现在 `claude plugin list` 中,并在 `/plugin` 界面中出现,但不出现在内联 `/plugin list` 输出中。

1262* 使用 `--plugin-dir` 或 `--plugin-url` 为会话加载的插件出现在 `/plugin` 界面中,仅当相同标志在子命令前时才出现在 `claude plugin list` 中,如 `claude --plugin-dir <dir> plugin list`。仅标志名称标识其位置,因此裸 `claude plugin list` 无法找到它们,不同于同步插件和技能目录插件,其固定目录 Claude Code 扫描。1336* 使用 `--plugin-dir` 或 `--plugin-url` 为会话加载的插件出现在 `/plugin` 界面中,仅当相同标志在子命令前时才出现在 `claude plugin list` 中,如 `claude --plugin-dir <dir> plugin list`。仅标志名称标识其位置,因此裸 `claude plugin list` 无法找到它们,不同于同步插件和技能目录插件,其固定目录 Claude Code 扫描。

1263 1337 

1264交互式形式接受 `--enabled` 或 `--disabled` 以仅显示该状态中的插件,以及 `ls` 作为 `list` 的简写。1338交互式形式接受 `--enabled` 或 `--disabled` 以仅显示该状态中的插件,以及 `ls` 作为 `list` 的简写。


1536 版本管理1610 版本管理

1537</h3>1611</h3>

1538 1612 

1539Claude Code 使用插件的版本作为缓存键,以确定是否有可用的更新。当你运行 `/plugin update` 或自动更新触发时,Claude Code 会计算当前版本,如果与已安装的版本匹配,则跳过更新。1613Claude Code 使用插件的版本作为缓存键,以确定是否有可用的更新。当你运行 `/plugin update` 或自动更新触发时,Claude Code 会计算当前版本,如果与已安装的版本匹配,则跳过更新。从[本地目录市场](#plugin-caching-and-file-resolution)加载的插件会在每个会话开始时加载其当前源文件,无论其版本字符串如何。

1540 1614 

1541对于除 `command` 之外的每种源类型,Claude Code 从以下第一个设置的项中解析版本:1615对于除 `command` 之外的每种源类型,Claude Code 从以下第一个设置的项中解析版本:

1542 1616 


15442. 插件在 `marketplace.json` 中的市场条目中的 `version` 字段16182. 插件在 `marketplace.json` 中的市场条目中的 `version` 字段

15453. 插件源的 git 提交 SHA,适用于 git 托管市场中的 `github`、`url`、`git-subdir` 和相对路径源16193. 插件源的 git 提交 SHA,适用于 git 托管市场中的 `github`、`url`、`git-subdir` 和相对路径源

15464. SHA-256 摘要,适用于 [`archive` 源](/docs/zh-CN/plugin-marketplaces#zip-archives):市场条目中的 `sha256` 固定值,或当你未设置固定值时下载文件的摘要。Claude Code 将其缩短为前 12 个字符16204. SHA-256 摘要,适用于 [`archive` 源](/docs/zh-CN/plugin-marketplaces#zip-archives):市场条目中的 `sha256` 固定值,或当你未设置固定值时下载文件的摘要。Claude Code 将其缩短为前 12 个字符

15475. `unknown`,适用于 `npm` 源或不在 git 仓库内的本地目录16215. `unknown`,适用于 `npm` 源或不在 git 仓库内的本地目录。Claude Code 不会从包含安装路径的仓库(例如 git 管理的 `~/.claude`)中获取版本

1548 1622 

1549对于 [`command` 源](/docs/zh-CN/plugin-marketplaces#command-sources),Claude Code 始终从命令生成的内容中派生版本:单独的 12 字符内容哈希,或在设置了版本时附加到 `plugin.json` 版本作为 `<version>-<hash>`。Claude Code 忽略命令源的市场条目中的 `version` 字段。因此,命令的哈希输出发生变化会产生新版本,即使编写的版本字符串保持不变。在 [link mode](/docs/zh-CN/plugin-marketplaces#copy-mode-and-link-mode) 中,哈希覆盖打印目录的真实路径及其顶级条目,而不是文件内容。1623对于 [`command` 源](/docs/zh-CN/plugin-marketplaces#command-sources),Claude Code 始终从命令生成的内容中派生版本:单独的 12 字符内容哈希,或在设置了版本时附加到 `plugin.json` 版本作为 `<version>-<hash>`。Claude Code 忽略命令源的市场条目中的 `version` 字段。因此,命令的哈希输出发生变化会产生新版本,即使编写的版本字符串保持不变。在 [link mode](/docs/zh-CN/plugin-marketplaces#copy-mode-and-link-mode) 中,哈希覆盖打印目录的真实路径及其顶级条目,而不是文件内容。

1550 1624 

1551对于这些源类型,这为你提供了三种版本控制插件的方式:1625对于这些源类型,这为你提供了三种版本控制插件的方式:

1552 1626 

1553| 方法 | 如何操作 | 更新行为 | 最适合 |1627| 方法 | 如何操作 | 更新行为 | 最适合 |

1554| :------------ | :--------------------------------------------------------------------------------------------- | :--------------------------------------------------------------- | :------------------------ |1628| :------------ | :--------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------- | :------------------------ |

1555| **显式版本** | 在 `plugin.json` 中设置 `"version": "2.1.0"` | 用户仅在你更新此字段时获得更新。推送新提交而不更新它没有效果,`/plugin update` 报告"已是最新版本"。 | 具有稳定发布周期的已发布插件 |1629| **显式版本** | 在 `plugin.json` 中设置 `"version": "2.1.0"` | 用户仅在你更新此字段时获得更新。推送新提交而不更新它没有效果,`/plugin update` 报告"已是最新版本"。对于[从本地加载](#plugin-caching-and-file-resolution)的插件,新内容仍会加载。 | 具有稳定发布周期的已发布插件 |

1556| **提交 SHA 版本** | 从 `plugin.json` 和市场条目中都省略 `version` | 每当源的已解析提交发生变化时,用户获得更新 | 正在积极开发的内部或团队插件 |1630| **提交 SHA 版本** | 从 `plugin.json` 和市场条目中都省略 `version` | 每当源的已解析提交发生变化时,用户获得更新 | 正在积极开发的内部或团队插件 |

1557| **摘要版本** | 使用 [`archive` 源](/docs/zh-CN/plugin-marketplaces#zip-archives) 并从 `plugin.json` 和市场条目中都省略 `version` | 使用 `sha256` 固定值时,当你更改固定值时用户获得更新。没有固定值时,每当托管 zip 文件的字节发生变化时用户获得更新 | 作为 zip 文件发布到静态服务器或工件仓库的插件 |1631| **摘要版本** | 使用 [`archive` 源](/docs/zh-CN/plugin-marketplaces#zip-archives) 并从 `plugin.json` 和市场条目中都省略 `version` | 使用 `sha256` 固定值时,当你更改固定值时用户获得更新。没有固定值时,每当托管 zip 文件的字节发生变化时用户获得更新 | 作为 zip 文件发布到静态服务器或工件仓库的插件 |

1558 1632 

Details

96 96 

97[`opusplan` 模型设置](/docs/zh-CN/model-config#opusplan-model-setting)在计划模式下解析为 Opus,在执行期间解析为 Sonnet,因此每个计划模式切换都是一个模型切换并启动新的缓存。97[`opusplan` 模型设置](/docs/zh-CN/model-config#opusplan-model-setting)在计划模式下解析为 Opus,在执行期间解析为 Sonnet,因此每个计划模式切换都是一个模型切换并启动新的缓存。

98 98 

99[自动模型回退](/docs/zh-CN/model-config#automatic-model-fallback)在 Fable 模型和 Opus 5 上也是一个模型切换。当安全分类器在具有回退模型的类别中标记请求时,Claude Code 会在该模型上重新运行请求,会话会在那里继续。99[自动模型回退](/docs/zh-CN/model-config#automatic-model-fallback)在 Fable 模型、Opus 5.5 和 Opus 5 上也是一个模型切换。当安全分类器在具有回退模型的类别中标记请求时,Claude Code 会在该模型上重新运行请求,会话会在那里继续。

100 100 

101当技能或命令的 frontmatter 命名一个[`model`](/docs/zh-CN/skills#frontmatter-reference)不同于会话当前模型的模型时,该回合也是一个模型切换:下一个请求会读取整个对话历史记录而没有缓存命中。会话模型在您的下一个提示时恢复。`context: fork` 技能会设置[分叉子代理的模型](/docs/zh-CN/skills#run-skills-in-a-subagent)。101当技能或命令的 frontmatter 命名一个[`model`](/docs/zh-CN/skills#frontmatter-reference)不同于会话当前模型的模型时,该回合也是一个模型切换:下一个请求会读取整个对话历史记录而没有缓存命中。会话模型在您的下一个提示时恢复。`context: fork` 技能会设置[分叉子代理的模型](/docs/zh-CN/skills#run-skills-in-a-subagent)。

102 102 

Details

1384* [Anthropic 团队如何使用 Claude Code](https://claude.com/blog/how-anthropic-teams-use-claude-code):来自工程、产品、设计和数据团队的真实工作流,深入探讨[法律](https://claude.com/blog/how-anthropic-uses-claude-legal)、[营销](https://claude.com/blog/how-anthropic-uses-claude-marketing)和[网络安全](https://claude.com/blog/how-anthropic-uses-claude-cybersecurity)1384* [Anthropic 团队如何使用 Claude Code](https://claude.com/blog/how-anthropic-teams-use-claude-code):来自工程、产品、设计和数据团队的真实工作流,深入探讨[法律](https://claude.com/blog/how-anthropic-uses-claude-legal)、[营销](https://claude.com/blog/how-anthropic-uses-claude-marketing)和[网络安全](https://claude.com/blog/how-anthropic-uses-claude-cybersecurity)

1385* [扩展代理编码指南](https://resources.anthropic.com/hubfs/Scaling%20agentic%20coding%20across%20your%20organization.pdf):企业采用指南1385* [扩展代理编码指南](https://resources.anthropic.com/hubfs/Scaling%20agentic%20coding%20across%20your%20organization.pdf):企业采用指南

1386 1386 

1387有关这些模式的视频演练,请参阅 Anthropic Academy 上的免费 [Claude Code in Action](https://anthropic.skilljar.com/claude-code-in-action) 课程。1387有关这些模式的视频演练,请参阅 [Claude Academy](https://academy.claude.com/) 上的免费 [Claude Code in Action](https://academy.claude.com/courses/claude-code-in-action) 课程。

1388 1388 

1389<h2 id="related-resources">1389<h2 id="related-resources">

1390 相关资源1390 相关资源

quickstart.md +1 −0

Details

383 383 

384* **在 Claude Code 中**:输入 `/help` 或询问"我如何..."384* **在 Claude Code 中**:输入 `/help` 或询问"我如何..."

385* **文档**:您在这里!浏览其他指南385* **文档**:您在这里!浏览其他指南

386* **课程**:参加 [Claude Code 101](https://academy.claude.com/courses/claude-code-101) 和 [Claude Academy](https://academy.claude.com/) 上的其他免费自学课程

386* **社区**:加入我们的 [Discord](https://www.anthropic.com/discord) 获取提示和支持387* **社区**:加入我们的 [Discord](https://www.anthropic.com/discord) 获取提示和支持

Details

187* **使用 `/teleport` 拉取会话**:当您使用 `/teleport` 将[云会话](/docs/zh-CN/claude-code-on-the-web#from-cloud-to-terminal)拉入您的终端时,连接的设备不会接收拉取的对话的早期历史记录。双向的新消息会进出拉取的对话,这现在是您的终端中打开的对话。187* **使用 `/teleport` 拉取会话**:当您使用 `/teleport` 将[云会话](/docs/zh-CN/claude-code-on-the-web#from-cloud-to-terminal)拉入您的终端时,连接的设备不会接收拉取的对话的早期历史记录。双向的新消息会进出拉取的对话,这现在是您的终端中打开的对话。

188* **来自您其他会话的消息**:使用[跨会话消息传递](/docs/zh-CN/cross-session-messaging),相同的连接在您不同机器上的自己的会话之间以及来自您的[云会话](/docs/zh-CN/claude-code-on-the-web)的消息,通过 Anthropic 服务器,就像其余 Remote Control 流量一样。[在其他机器上的消息会话](/docs/zh-CN/cross-session-messaging#message-sessions-on-other-machines)涵盖传递规则,[控制入站消息](/docs/zh-CN/cross-session-messaging#control-inbound-messages)涵盖入站控制。需要 Claude Code v2.1.224 或更高版本。188* **来自您其他会话的消息**:使用[跨会话消息传递](/docs/zh-CN/cross-session-messaging),相同的连接在您不同机器上的自己的会话之间以及来自您的[云会话](/docs/zh-CN/claude-code-on-the-web)的消息,通过 Anthropic 服务器,就像其余 Remote Control 流量一样。[在其他机器上的消息会话](/docs/zh-CN/cross-session-messaging#message-sessions-on-other-machines)涵盖传递规则,[控制入站消息](/docs/zh-CN/cross-session-messaging#control-inbound-messages)涵盖入站控制。需要 Claude Code v2.1.224 或更高版本。

189* **您在回合中途发送的提示**:当您在当前回合结束之前从连接的设备发送提示时,Claude Code 会将其排队并在该回合完成后将其保留在设备的记录中。189* **您在回合中途发送的提示**:当您在当前回合结束之前从连接的设备发送提示时,Claude Code 会将其排队并在该回合完成后将其保留在设备的记录中。

190* **您的更改的差异**:当会话的目录在 git 存储库中时,连接的设备的差异窗格显示您未提交更改的差异。设备通过连接请求差异,Claude Code 在您的机器上计算它。当您的工作树是干净的时,Claude Code 改为提供您的分支自从它从默认分支分叉以来的更改。在 v2.1.247 之前,Claude Code 仅向由 `claude remote-control` 提供的会话中的连接设备报告差异。190* **您的更改的差异**:当会话的目录在 git 存储库中时,连接的设备的差异窗格显示您的更改。设备通过连接请求差异,Claude Code 在您的机器上计算它。在分支上有提交领先于存储库的默认分支时,窗格显示自分支从它分叉以来的更改,包括您未提交的编辑。在默认分支本身上,或在不领先于它的分支上,窗格仅显示您未提交的更改。在 v2.1.247 之前,Claude Code 仅向由 `claude remote-control` 提供的会话中的连接设备报告差异。

191* **模型**:当您从连接的设备选择[模型](/docs/zh-CN/model-config)时,Claude Code 在该模型上运行会话。终端的 `/model` 选择器、`/status` 和 `/config` 显示该模型。需要 Claude Code v2.1.238 或更高版本。191* **模型**:当您从连接的设备选择[模型](/docs/zh-CN/model-config)时,Claude Code 在该模型上运行会话。终端的 `/model` 选择器、`/status` 和 `/config` 显示该模型。需要 Claude Code v2.1.238 或更高版本。

192 * 您从设备的模型控制中选择的模型仅适用于当前会话。当您从设备向交互式会话发送 `/model <name>` 时,Claude Code 也会为新会话设置您的默认值。192 * 您从设备的模型控制中选择的模型仅适用于当前会话。当您从设备向交互式会话发送 `/model <name>` 时,Claude Code 也会为新会话设置您的默认值。

193 * 如果您发送 Claude Code 无法识别的名称,例如预期模型 ID 的显示名称,Claude Code [拒绝选择](/docs/zh-CN/errors#model-is-not-a-recognized-model-id),会话保留其当前模型。在 v2.1.260 之前,Claude Code 从设备的模型控制中保存无法识别的选择,您的下一条消息失败。193 * 如果您发送 Claude Code 无法识别的名称,例如预期模型 ID 的显示名称,Claude Code [拒绝选择](/docs/zh-CN/errors#model-is-not-a-recognized-model-id),会话保留其当前模型。在 v2.1.260 之前,Claude Code 从设备的模型控制中保存无法识别的选择,您的下一条消息失败。

sandboxing.md +13 −9

Details

142* 显式 [拒绝规则](/docs/zh-CN/permissions) 始终被尊重142* 显式 [拒绝规则](/docs/zh-CN/permissions) 始终被尊重

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

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

145* 裸 `Bash` 询问规则,或等效的 `Bash(*)` 形式,对于运行沙箱化的命令会被跳过;它仍然适用于回退到常规权限流程的命令。在 [plan mode](/docs/zh-CN/permission-modes#analyze-before-you-edit-with-plan-mode) 中,该规则不会被跳过:它也会对沙箱化命令提示,包括只读命令。在 v2.1.212 之前,跳过也适用于 plan mode145* 裸 `Bash` 询问规则,或等效的 `Bash(*)` 形式,对于运行沙箱化的命令会被跳过;它仍然适用于回退到常规权限流程的命令。在 [Plan Mode](/docs/zh-CN/permission-modes#analyze-before-you-edit-with-plan-mode) 中,该规则不会被跳过:它也会对沙箱化命令提示,包括只读命令。在 v2.1.212 之前,跳过也适用于 Plan Mode

146 146 

147<Info>147<Info>

148 自动允许模式独立于你的权限模式设置工作,除了在 [plan mode](/docs/zh-CN/permission-modes#analyze-before-you-edit-with-plan-mode) 中,以及在自动模式中,对于携带 [per-command allowed domains](#per-command-allowed-domains-in-auto-mode) 的命令。即使你不在"接受编辑"模式中,启用自动允许时沙箱化的 Bash 命令也会自动运行。这意味着在沙箱边界内修改文件的 Bash 命令将执行而不提示,即使在 Manual 模式下,文件编辑工具会提示。148 自动允许模式独立于你的权限模式设置工作,除了在 [Plan Mode](/docs/zh-CN/permission-modes#analyze-before-you-edit-with-plan-mode) 中,以及在自动模式中,对于携带 [per-command allowed domains](#per-command-allowed-domains-in-auto-mode) 的命令。即使你不在"接受编辑"模式中,启用自动允许时沙箱化的 Bash 命令也会自动运行。这意味着在沙箱边界内修改文件的 Bash 命令将执行而不提示,即使在 Manual 模式下,文件编辑工具会提示。

149 149 

150 在 plan mode 中,自动允许不会扩大批准;请参阅 [plan mode](/docs/zh-CN/permission-modes#analyze-before-you-edit-with-plan-mode) 了解 Claude Code 如何在你计划时限制命令。在 v2.1.212 之前,自动允许在 plan mode 中也无需提示地运行沙箱化命令。150 在 Plan Mode 中,自动允许不会扩大批准;请参阅 [Plan Mode](/docs/zh-CN/permission-modes#analyze-before-you-edit-with-plan-mode) 了解 Claude Code 如何在你计划时限制命令。在 v2.1.212 之前,自动允许在 Plan Mode 中也无需提示地运行沙箱化命令。

151</Info>151</Info>

152 152 

153<h4 id="regular-permissions-mode">153<h4 id="regular-permissions-mode">


177 临时目录177 临时目录

178</h4>178</h4>

179 179 

180会话临时目录在沙箱内默认可写,与工作目录一起。除非你 [禁用文件系统隔离](#disable-filesystem-isolation),Claude Code 为沙箱化命令设置 `$TMPDIR` 为此目录,因此写入临时文件的工具无需额外配置即可工作。非沙箱化命令继承你的 shell 的 `$TMPDIR` 不变,因此当文件系统隔离打开时,沙箱化和非沙箱化命令将 `$TMPDIR` 解析为不同的目录。要在两者之间传递临时文件,请改为在工作目录下写入它们。180会话临时目录在沙箱内默认可写,与工作目录一起。除非你 [禁用文件系统隔离](#disable-filesystem-isolation),Claude Code 为沙箱化命令设置 `$TMPDIR` 为此目录,因此写入临时文件的工具无需额外配置即可工作。非沙箱化命令继承你的 shell 的 `$TMPDIR` 不变,因此当文件系统隔离打开时,沙箱化和非沙箱化命令将 `$TMPDIR` 解析为不同的目录。如果你的 shell 将 `$TMPDIR` 留空或未设置,引用 `$TMPDIR` 的非沙箱化命令会接收你的 [`CLAUDE_CODE_TMPDIR`](/docs/zh-CN/env-vars) 覆盖,或当你未设置覆盖或覆盖是长路径时接收操作系统的临时目录,因此变量不会展开为空字符串。要在两者之间传递临时文件,请改为在工作目录下写入它们。

181 181 

182<h2 id="configure-sandboxing">182<h2 id="configure-sandboxing">

183 配置沙箱183 配置沙箱


307 307 

308* 沙箱化命令继承你的 shell 的 `$TMPDIR`,而不是会话临时目录,因为每个临时目录都是可写的,Claude Code 不再将命令重定向到会话临时目录。308* 沙箱化命令继承你的 shell 的 `$TMPDIR`,而不是会话临时目录,因为每个临时目录都是可写的,Claude Code 不再将命令重定向到会话临时目录。

309 309 

310 在 Linux 上,该变量通常在父 shell 中未设置,因此它可能在沙箱化命令内展开为空;Claude Code 通过其 Bash 工具指导告诉 Claude 使用 `mktemp -d` 创建临时目录,而不是依赖 `$TMPDIR`。310 在 Linux 上,该变量通常在父 shell 中未设置。Bash 工具指导告诉 Claude 使用 `mktemp -d` 创建临时目录,而不是依赖 `$TMPDIR`。

311* [`autoAllowBashIfSandboxed`](/docs/zh-CN/settings-reference#sandbox-autoallowbashifsandboxed) 仍默认为 `true`,因此沙箱化命令继续运行而无需提示。设置为 `false` 以提示沙箱化命令。311* [`autoAllowBashIfSandboxed`](/docs/zh-CN/settings-reference#sandbox-autoallowbashifsandboxed) 仍默认为 `true`,因此沙箱化命令继续运行而无需提示。设置为 `false` 以提示沙箱化命令。

312 312 

313<h3 id="protect-credentials">313<h3 id="protect-credentials">


741 741 

742* **命令因主机不允许错误而失败**:许多 CLI 工具需要到达特定的主机。在提示时授予权限会将主机添加到你的允许列表,以便该工具在将来在沙箱内运行。742* **命令因主机不允许错误而失败**:许多 CLI 工具需要到达特定的主机。在提示时授予权限会将主机添加到你的允许列表,以便该工具在将来在沙箱内运行。

743* **`jest` 挂起或失败**:`watchman` 与沙箱不兼容。改为运行 `jest --no-watchman`。743* **`jest` 挂起或失败**:`watchman` 与沙箱不兼容。改为运行 `jest --no-watchman`。

744* **Go 基础 CLI 在 macOS 上 TLS 验证失败**:`gh`、`gcloud` 和 `terraform` 等工具在 Seatbelt 下可能无法进行 TLS 验证。在 `excludedCommands` 中列出这些工具以在沙箱外运行它们。如果你使用 `httpProxyPort` 与 MITM 代理和自定义 CA,请改为将 [`enableWeakerNetworkIsolation`](/docs/zh-CN/settings-reference#sandbox-enableweakernetworkisolation) 设置为 `true`。744* **Go 基础 CLI 在 macOS 上 TLS 验证失败**:`gh`、`gcloud` 和 `terraform` 等工具在 Seatbelt 下可能无法进行 TLS 验证。在 [`excludedCommands`](/docs/zh-CN/settings-reference#sandbox-excludedcommands) 中列出这些工具。如果你使用 `httpProxyPort` 与 MITM 代理和自定义 CA,请改为将 [`enableWeakerNetworkIsolation`](/docs/zh-CN/settings-reference#sandbox-enableweakernetworkisolation) 设置为 `true`。

745* **`open`、`osascript` 或基于浏览器的身份验证流在 macOS 上因错误 `-600` 失败**:沙箱默认阻止 Apple Events。在你的用户、托管或 CLI 设置中将 [`allowAppleEvents`](/docs/zh-CN/settings-reference#sandbox-allowappleevents) 设置为 `true` 以允许它们。项目设置对此密钥被忽略。启用它会移除代码执行隔离,因为沙箱化命令随后可以在没有用户提示的情况下启动其他未沙箱化的应用程序,并向运行的应用程序发送 AppleScript 命令,受 macOS 自动化同意提示 (TCC) 的约束。或者,将命令添加到 `excludedCommands` 以在沙箱外运行它。745* **`open`、`osascript` 或基于浏览器的身份验证流在 macOS 上因错误 `-600` 失败**:沙箱默认阻止 Apple Events。在你的用户、托管或 CLI 设置中将 [`allowAppleEvents`](/docs/zh-CN/settings-reference#sandbox-allowappleevents) 设置为 `true` 以允许它们。项目设置对此密钥被忽略。启用它会移除代码执行隔离,因为沙箱化命令随后可以在没有用户提示的情况下启动其他未沙箱化的应用程序,并向运行的应用程序发送 AppleScript 命令,受 macOS 自动化同意提示 (TCC) 的约束。或者,将命令添加到 [`excludedCommands`](/docs/zh-CN/settings-reference#sandbox-excludedcommands)。

746* **`docker` 命令失败**:`docker` 与沙箱不兼容。将 `docker *` 添加到 `excludedCommands` 以在沙箱外运行它。746* **`docker` 命令失败**:`docker` 与沙箱不兼容。将 `docker *` 添加到 [`excludedCommands`](/docs/zh-CN/settings-reference#sandbox-excludedcommands)。

747* **`pbcopy`、`xclip` 或 `wl-copy` 不更新剪贴板**:这些剪贴板实用程序可能无法从沙箱内到达系统剪贴板,在这种情况下,管道传输到它们的文本不会到达。要将 Claude 的输出放在你的剪贴板上,请要求 Claude 在其响应中打印它,然后运行 [`/copy`](/docs/zh-CN/commands),它从 Claude Code 进程而不是从沙箱化命令写入剪贴板。或者,将 `pbcopy *`、`wl-copy *` 或 `xclip *` 添加到 `excludedCommands` 以在沙箱外运行该命令。747* **`pbcopy`、`xclip` 或 `wl-copy` 不更新剪贴板**:这些剪贴板实用程序可能无法从沙箱内到达系统剪贴板,在这种情况下,管道传输到它们的文本不会到达。

748 

749 要将 Claude 的输出放在你的剪贴板上,请要求 Claude 在其响应中打印它,然后运行 [`/copy`](/docs/zh-CN/commands)。`/copy` 从 Claude Code 进程而不是从沙箱化命令写入剪贴板。

750 

751 当 Claude 将文本管道传输到这些工具之一时,将该工具添加到 [`excludedCommands`](/docs/zh-CN/settings-reference#sandbox-excludedcommands) 本身不会将该调用从沙箱中取出。

748* **git 命令因 `unable to unlink old` 失败**:`git merge`、`git checkout` 和类似命令在需要替换沙箱拒绝写入的文件时以这种方式失败,无论该文件是在 [protected path](#protected-paths) 下(如 `.claude/skills`),在你的 `denyWrite` 条目之一下,还是在沙箱允许命令写入的目录之外。在 Linux 和 WSL2 上,错误以 `Read-only file system` 结尾。752* **git 命令因 `unable to unlink old` 失败**:`git merge`、`git checkout` 和类似命令在需要替换沙箱拒绝写入的文件时以这种方式失败,无论该文件是在 [protected path](#protected-paths) 下(如 `.claude/skills`),在你的 `denyWrite` 条目之一下,还是在沙箱允许命令写入的目录之外。在 Linux 和 WSL2 上,错误以 `Read-only file system` 结尾。

749 753 

750 失败后,Claude 可能会 [提供在沙箱外重新运行命令](#the-unsandboxed-retry-escape-hatch);批准该重试,或在另一个终端中自己运行 git 命令。如果你已将 `allowUnsandboxedCommands` 设置为 `false`,Claude 无法提供重试,所以自己运行该命令。如果相同的 git 命令经常失败,将其添加到 [`excludedCommands`](/docs/zh-CN/settings-reference#sandbox-excludedcommands)。754 失败后,Claude 可能会 [提供在沙箱外重新运行命令](#the-unsandboxed-retry-escape-hatch);批准该重试,或在另一个终端中自己运行 git 命令。如果你已将 `allowUnsandboxedCommands` 设置为 `false`,Claude 无法提供重试,所以自己运行该命令。如果相同的 git 命令经常失败,将其添加到 [`excludedCommands`](/docs/zh-CN/settings-reference#sandbox-excludedcommands)。

Details

34`/plugin` 打开一个交互式面板,仅在终端 CLI 中可用。如果 Claude 回复说 `/plugin` 在此环境中不可用,请以其他方式安装:34`/plugin` 打开一个交互式面板,仅在终端 CLI 中可用。如果 Claude 回复说 `/plugin` 在此环境中不可用,请以其他方式安装:

35 35 

36* **Claude 桌面应用、本地或 SSH 会话**:通过点击提示旁边的 **+** 按钮,然后点击 **Plugins**,再点击 **Add plugin** 来打开 [插件浏览器](/docs/zh-CN/desktop#install-plugins)36* **Claude 桌面应用、本地或 SSH 会话**:通过点击提示旁边的 **+** 按钮,然后点击 **Plugins**,再点击 **Add plugin** 来打开 [插件浏览器](/docs/zh-CN/desktop#install-plugins)

37* **云会话**:在 `.claude/settings.json` 中声明插件,如 [在云会话和共享存储库中启用](#enable-in-cloud-sessions-and-shared-repositories) 下所示37* **VS Code 扩展**:从 [**管理插件** 对话框](/docs/zh-CN/vs-code#manage-plugins) 安装

38* **云会话**:为您的 claude.ai 账户启用该插件,以便 Claude Code 将其作为 [同步插件](/docs/zh-CN/plugins-reference#synced-plugins) 加载。云会话不会从您的用户设置或存储库的 `.claude/settings.json` 加载插件,如 [从您的设置中继承的内容](/docs/zh-CN/cloud-environments#what-carries-over-from-your-setup) 所解释的那样

38 39 

39终端安装会提示输入范围。选择用户范围以将插件写入您的用户设置,这样它会在您在此计算机上启动的每个新本地会话中加载。40终端安装会提示输入范围。选择用户范围以将插件写入您的用户设置,这样它会在您在此计算机上启动的每个新本地会话中加载。

40 41 


45 46 

46检查安装摘要。如果它报告 `Run /reload-plugins to activate.`,请参阅 [无需重启即可应用插件更改](/docs/zh-CN/discover-plugins#apply-plugin-changes-without-restarting) 以在当前会话中激活插件。47检查安装摘要。如果它报告 `Run /reload-plugins to activate.`,请参阅 [无需重启即可应用插件更改](/docs/zh-CN/discover-plugins#apply-plugin-changes-without-restarting) 以在当前会话中激活插件。

47 48 

48<h3 id="enable-in-cloud-sessions-and-shared-repositories">49<h3 id="enable-for-your-team-in-local-sessions">

49 在云会话和共享存储库中启用50 在本地会话中为您的团队启用

50</h3>51</h3>

51 52 

52用户范围的插件不会进入 [云会话](/docs/zh-CN/claude-code-on-the-web),因为这些会话不在您的计算机上运行。要在那里启用该插件,或为克隆存储库的所有人打开它,请在项目的已检入设置中声明它:53要在您的团队在存储库中启动的本地会话中打开该插件,请在项目的已检入设置中声明它:

53 54 

54```json .claude/settings.json theme={null}55```json .claude/settings.json theme={null}

55{56{

Details

184 184 

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 主机。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 主机。

186 186 

187运行器还在注册时向 Anthropic 报告选择加入,在启动时打印 `Registering as opted in to Anthropic-managed git (--use-anthropic-git-proxy)`。选择加入运行器上的每个会话然后使用 Anthropic 管理的 git 或按会话代理 URL。当会话使用按会话代理 URL 时,运行器记录一行 `[runner:warn]` 说明这一点。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]` 说明这一点。

188 188 

189<h3 id="rewrite-git-urls-for-private-networks">189<h3 id="rewrite-git-urls-for-private-networks">

190 为专用网络重写 git URL190 为专用网络重写 git URL


223如果您的节点是 ARM,将 `linux-x64` 交换为 `linux-arm64`,或在 Alpine 等 musl 基础镜像上交换为 `linux-x64-musl` 或 `linux-arm64-musl`;请参阅 [Alpine Linux 设置](/docs/zh-CN/setup#alpine-linux-and-musl-based-distributions)了解 musl 镜像需要的额外包。URL 是标准 Claude Code 发布位置,因此您可以根据[二进制完整性和代码签名](/docs/zh-CN/setup#binary-integrity-and-code-signing)中描述的发布的已签名清单验证下载的二进制文件。使用 Claude Code 版本 2.1.224 或更高版本构建镜像,然后将其推送到您的注册表并在下面的配方中引用它:223如果您的节点是 ARM,将 `linux-x64` 交换为 `linux-arm64`,或在 Alpine 等 musl 基础镜像上交换为 `linux-x64-musl` 或 `linux-arm64-musl`;请参阅 [Alpine Linux 设置](/docs/zh-CN/setup#alpine-linux-and-musl-based-distributions)了解 musl 镜像需要的额外包。URL 是标准 Claude Code 发布位置,因此您可以根据[二进制完整性和代码签名](/docs/zh-CN/setup#binary-integrity-and-code-signing)中描述的发布的已签名清单验证下载的二进制文件。使用 Claude Code 版本 2.1.224 或更高版本构建镜像,然后将其推送到您的注册表并在下面的配方中引用它:

224 224 

225```bash theme={null}225```bash theme={null}

226docker build --build-arg CLAUDE_CODE_VERSION=2.1.224 -t <your-registry>/claude-runner:latest .226docker build --build-arg CLAUDE_CODE_VERSION=2.1.267 -t <your-registry>/claude-runner:latest .

227```227```

228 228 

229<h2 id="size-cpu-and-memory-for-sessions">229<h2 id="size-cpu-and-memory-for-sessions">

Details

171* **`env` 块**:除了与凭证键配对的遥测单元和路由变量(下面涵盖)外,它在管理员控制的源之间按键合并。对于每个环境变量,定义它的最高优先级源获胜,较低的管理员源填充较高源未设置的变量。因此,端点管理的 `env` 条目在服务器管理的配置未设置该变量时应用,或在该变量的缓存服务器值[等待服务器确认而被暂扣](#fetch-and-caching-behavior)期间应用。需要 Claude Code v2.1.223 或更高版本。在 v2.1.223 之前,Claude Code 仅应用选定源的整个 `env` 块。171* **`env` 块**:除了与凭证键配对的遥测单元和路由变量(下面涵盖)外,它在管理员控制的源之间按键合并。对于每个环境变量,定义它的最高优先级源获胜,较低的管理员源填充较高源未设置的变量。因此,端点管理的 `env` 条目在服务器管理的配置未设置该变量时应用,或在该变量的缓存服务器值[等待服务器确认而被暂扣](#fetch-and-caching-behavior)期间应用。需要 Claude Code v2.1.223 或更高版本。在 v2.1.223 之前,Claude Code 仅应用选定源的整个 `env` 块。

172 * **遥测单元**:`OTEL_EXPORTER_OTLP_*` 导出器键、`OTEL_LOG_*` 内容捕获切换、`OTEL_LOGS_EXPORTER` 以及测试版跟踪变量 `ENABLE_BETA_TRACING_DETAILED` 和 `BETA_TRACING_ENDPOINT` 遵循设置其中任何一个的最高源作为一个单元。传递 `otelHeadersHelper` 凭证键的源也声称该单元,但仅在它是选定源时才放置这些变量:未被选定但传递该键的源不贡献其中任何一个,仍然阻止较低源填充它们。无论哪种方式,来自一个源的导出器端点永远不能与来自另一个源的凭证配对。172 * **遥测单元**:`OTEL_EXPORTER_OTLP_*` 导出器键、`OTEL_LOG_*` 内容捕获切换、`OTEL_LOGS_EXPORTER` 以及测试版跟踪变量 `ENABLE_BETA_TRACING_DETAILED` 和 `BETA_TRACING_ENDPOINT` 遵循设置其中任何一个的最高源作为一个单元。传递 `otelHeadersHelper` 凭证键的源也声称该单元,但仅在它是选定源时才放置这些变量:未被选定但传递该键的源不贡献其中任何一个,仍然阻止较低源填充它们。无论哪种方式,来自一个源的导出器端点永远不能与来自另一个源的凭证配对。

173 * **凭证配对的路由**:将路由变量与选定源专用凭证键(例如 `apiKeyHelper` 或 `otelHeadersHelper`)配对的源仅在它赢得该槽位时贡献这些路由变量。173 * **凭证配对的路由**:将路由变量与选定源专用凭证键(例如 `apiKeyHelper` 或 `otelHeadersHelper`)配对的源仅在它赢得该槽位时贡献这些路由变量。

174* **网关登录键**:Claude Code 永远不会从服务器管理的设置中读取 [`forceLoginGatewayUrl`](/docs/zh-CN/settings-reference#forcelogingatewayurl) 或 [`forceLoginMethod`](/docs/zh-CN/settings-reference#forceloginmethod) 的 `"gateway"` 值,因此选择服务器管理的设置既不提供网关登录也不隐藏在 MDM 策略或托管设置文件中设置的网关登录。[`managedSourcesBehavior` 条目](/docs/zh-CN/settings-reference#managedsourcesbehavior)说明机器上的哪个管理员源提供它们。174* **网关登录键**:Claude Code 永远不会从服务器管理的设置中读取 [`forceLoginGatewayUrl`](/docs/zh-CN/settings-reference#forcelogingatewayurl)、[`gatewayInternalNetworks`](/docs/zh-CN/settings-reference#gatewayinternalnetworks) 或 [`forceLoginMethod`](/docs/zh-CN/settings-reference#forceloginmethod) 的 `"gateway"` 值,因此服务器管理的设置中的值既不适用也不隐藏在 MDM 策略或托管设置文件中设置的值。[`managedSourcesBehavior` 条目](/docs/zh-CN/settings-reference#managedsourcesbehavior)说明机器上的哪个管理员源提供它们。

175 175 

176<h3 id="fetch-and-caching-behavior">176<h3 id="fetch-and-caching-behavior">

177 获取和缓存行为177 获取和缓存行为

sessions.md +8 −2

Details

134| 从 claude.ai 或 Claude 应用 | 重命名 [Remote Control 会话](/docs/zh-CN/remote-control#connect-from-another-device);Claude Code 在 CLI 中应用相同的名称。需要 Claude Code v2.1.221 或更高版本 |134| 从 claude.ai 或 Claude 应用 | 重命名 [Remote Control 会话](/docs/zh-CN/remote-control#connect-from-another-device);Claude Code 在 CLI 中应用相同的名称。需要 Claude Code v2.1.221 或更高版本 |

135| 从桌面应用 | 在 [桌面应用](/docs/zh-CN/desktop#work-in-parallel-with-sessions) 中重命名会话 |135| 从桌面应用 | 在 [桌面应用](/docs/zh-CN/desktop#work-in-parallel-with-sessions) 中重命名会话 |

136 136 

137会话命名后,使用 `claude --resume <name>` 或 `/resume <name>` 返回到它;桌面应用会话在应用中恢复,该应用保持自己的会话历史记录。有关名称解析如何跨 worktrees 工作的信息,请参阅[恢复会话](#resume-a-session)。137通过 CLI 路由或从 claude.ai 命名会话后,使用 `claude --resume <name>` 或 `/resume <name>` 返回到它;桌面应用会话在应用中恢复,该应用保持自己的会话历史记录。有关名称解析如何跨 worktrees 工作的信息,请参阅[恢复会话](#resume-a-session)。

138 138 

139当您使用此计算机上另一个活跃会话已经使用的名称启动或恢复交互式会话,或将会话重命名为这样的名称时,Claude Code 会将该名称保留给已经拥有它的会话,将您的会话重命名为带有两个单词后缀的变体,例如 `auth-refactor-graceful-unicorn`,并告知您。如果您想自己选择一个名称,请使用新名称运行 `/rename`。在 v2.1.232 之前,两个会话都保留该名称。139当您使用此计算机上另一个活跃会话已经使用的名称启动或恢复交互式会话,或将会话重命名为这样的名称时,Claude Code 会将该名称保留给已经拥有它的会话,将您的会话重命名为带有两个单词后缀的变体,例如 `auth-refactor-graceful-unicorn`,并告知您。如果您想自己选择一个名称,请使用新名称运行 `/rename`。在 v2.1.232 之前,两个会话都保留该名称。

140 140 


147您未命名的会话仍会获得 Claude Code 分配的两个标签。只有生成的标题可用作恢复句柄:147您未命名的会话仍会获得 Claude Code 分配的两个标签。只有生成的标题可用作恢复句柄:

148 148 

149* 默认显示名称:您从未命名的交互式会话在启动时仍会获得默认显示名称。需要 Claude Code v2.1.196 或更高版本。默认名称将工作目录的名称与两个字符的后缀组合在一起,例如 `my-app-3f`,并在运行会话的列表中标识会话,例如 [agent view](/docs/zh-CN/agent-view) 和 `claude agents --json` 输出。默认名称不是恢复句柄。如果您将其传递给 `claude --resume` 或 `/resume`,Claude Code 不会找到该会话。命名会话会替换这些列表中的默认名称,接受计划也会这样做。149* 默认显示名称:您从未命名的交互式会话在启动时仍会获得默认显示名称。需要 Claude Code v2.1.196 或更高版本。默认名称将工作目录的名称与两个字符的后缀组合在一起,例如 `my-app-3f`,并在运行会话的列表中标识会话,例如 [agent view](/docs/zh-CN/agent-view) 和 `claude agents --json` 输出。默认名称不是恢复句柄。如果您将其传递给 `claude --resume` 或 `/resume`,Claude Code 不会找到该会话。命名会话会替换这些列表中的默认名称,接受计划也会这样做。

150* 生成的标题:如果您不命名会话,Claude Code 会为其生成会话标题。该标题是您第一个提示的简短摘要,由对小型/快速模型(通常是 Haiku 级别的模型)的后台请求编写。接受计划会将其替换为基于计划的标题。命名会话会替换生成的标题。您可以在 [会话选择器](#use-the-session-picker) 中和未设置名称时的状态行 [`session_name`](/docs/zh-CN/statusline) 字段中看到第一个提示标题。计划标题显示在相同的两个位置,也显示在运行会话的列表中,其中它取代了默认显示名称。您可以将任一标题传递给 `claude --resume` 或 `/resume`,Claude Code 会以与您设置的名称相同的方式解析它。150* 生成的标题:如果您不命名会话,Claude Code 会为其生成会话标题。该标题是您第一个提示的简短摘要,由对小型/快速模型(通常是 Haiku 级别的模型)的后台请求编写。您直接从 shell 或脚本启动的 `claude -p` 运行不会获得一个。

151 

152 接受计划会将生成的标题替换为基于计划的标题。命名会话也会替换它。

153 

154 您可以在 [会话选择器](#use-the-session-picker) 中和未设置名称时的状态行 [`session_name`](/docs/zh-CN/statusline) 字段中看到第一个提示标题。计划标题显示在相同的两个位置,也显示在运行会话的列表中,其中它取代了默认显示名称。

155 

156 您可以将任一标题传递给 `claude --resume` 或 `/resume`,Claude Code 会以与您设置的名称相同的方式解析它。

151 157 

152<h2 id="use-the-session-picker">158<h2 id="use-the-session-picker">

153 使用会话选择器159 使用会话选择器

settings.md +3 −3

Details

468 将个人设置保留在仓库之外468 将个人设置保留在仓库之外

469</h3>469</h3>

470 470 

471要在一个项目中为自己更改设置而不为队友更改,请在项目内的 `.claude/settings.local.json` 中保存它。Claude Code 在提交的 `.claude/settings.json` 上应用该文件,因此如果你的团队文件设置 `"model": "claude-sonnet-5"` 而你想要 Opus,在你的本地文件中放入 `"model": "claude-opus-4-8"`,只有你的会话会改变。471要在一个项目中为自己更改设置而不为队友更改,请在项目内的 `.claude/settings.local.json` 中保存它。Claude Code 在提交的 `.claude/settings.json` 上应用该文件,因此如果你的团队文件设置 `"model": "claude-sonnet-5"` 而你想要 Opus,在你的本地文件中放入 `"model": "claude-opus-5-5"`,只有你的会话会改变。

472 472 

473Claude Code 也会写入此文件,将其保留在你的提交之外,并应用其允许规则而无需信任步骤:473Claude Code 也会写入此文件,将其保留在你的提交之外,并应用其允许规则而无需信任步骤:

474 474 


598例如,要在 Opus 上启动一个会话而不更改您的默认值:598例如,要在 Opus 上启动一个会话而不更改您的默认值:

599 599 

600```bash theme={null}600```bash theme={null}

601claude --settings '{"model": "claude-opus-4-8"}'601claude --settings '{"model": "claude-opus-5-5"}'

602```602```

603 603 

604<h3 id="when-edits-take-effect">604<h3 id="when-edits-take-effect">


803 803 

804[云会话](/docs/zh-CN/claude-code-on-the-web)在[云环境](/docs/zh-CN/cloud-environments)中运行在您的存储库的新克隆上,而不是在您的机器上。这改变了哪些设置到达它:804[云会话](/docs/zh-CN/claude-code-on-the-web)在[云环境](/docs/zh-CN/cloud-environments)中运行在您的存储库的新克隆上,而不是在您的机器上。这改变了哪些设置到达它:

805 805 

806* **共享项目设置** (`.claude/settings.json`):在一个存储库的会话中读取,因为该文件是克隆的一部分,会话在其中启动。在那里提交设置以在这些会话中应用它。具有多个存储库的会话在克隆上方启动,因此从每个存储库的 `.claude/settings.json` 它仅加载该文件声明的插件和市场,而不是权限规则、hooks、`env` 或其他键;请参阅[从您的设置中携带什么](/docs/zh-CN/cloud-environments#what-carries-over-from-your-setup)。806* **共享项目设置** (`.claude/settings.json`):在一个存储库的会话中读取,因为该文件是克隆的一部分,会话在其中启动。在那里提交设置以在这些会话中应用它。具有多个存储库的会话在克隆上方启动,因此从每个存储库的 `.claude/settings.json` 仅读取 `enabledPlugins` 和 `extraKnownMarketplaces` 键,而不是权限规则、hooks、`env` 或其他键。这些两个键声明的市场和插件仍然[不在云会话中加载](/docs/zh-CN/cloud-environments#what-carries-over-from-your-setup)。

807* **用户和项目本地设置** (`~/.claude/settings.json` 和 `.claude/settings.local.json`):不读取。两者都保持在您的机器上,本地文件不在克隆中。807* **用户和项目本地设置** (`~/.claude/settings.json` 和 `.claude/settings.local.json`):不读取。两者都保持在您的机器上,本地文件不在克隆中。

808* **托管设置**:仅[服务器管理设置](/docs/zh-CN/server-managed-settings)到达云会话;您设备上的 `managed-settings.json` 文件或 MDM 配置文件不会。[自托管环境](/docs/zh-CN/self-hosted-environments)也读取其运行器镜像中的托管设置文件。[Claude Code 如何组合托管来源](/docs/zh-CN/managed-settings#how-claude-code-combines-managed-sources)说该文件何时适用。808* **托管设置**:仅[服务器管理设置](/docs/zh-CN/server-managed-settings)到达云会话;您设备上的 `managed-settings.json` 文件或 MDM 配置文件不会。[自托管环境](/docs/zh-CN/self-hosted-environments)也读取其运行器镜像中的托管设置文件。[Claude Code 如何组合托管来源](/docs/zh-CN/managed-settings#how-claude-code-combines-managed-sources)说该文件何时适用。

809* **`/config`**:在您的浏览器中的 claude.ai/code,打开您的 claude.ai 设置的 Claude Code 部分而不是更改值。要为云会话更改设置,在环境上设置[环境变量](/docs/zh-CN/cloud-environments#set-environment-variables),或在具有一个存储库的会话中,将键提交到该存储库的 `.claude/settings.json`。809* **`/config`**:在您的浏览器中的 claude.ai/code,打开您的 claude.ai 设置的 Claude Code 部分而不是更改值。要为云会话更改设置,在环境上设置[环境变量](/docs/zh-CN/cloud-environments#set-environment-variables),或在具有一个存储库的会话中,将键提交到该存储库的 `.claude/settings.json`。

Details

29 ```json ~/.claude/settings.json theme={null}29 ```json ~/.claude/settings.json theme={null}

30 {30 {

31 "model": "claude-sonnet-5",31 "model": "claude-sonnet-5",

32 "effortLevel": "xhigh",32 "modelSettings": {

33 "claude-sonnet-5": { "effortLevel": "xhigh" }

34 },

33 "editorMode": "vim",35 "editorMode": "vim",

34 "theme": "light-daltonized",36 "theme": "light-daltonized",

35 "statusLine": {37 "statusLine": {


58 {60 {

59 // 在 Sonnet 5 上启动每个会话61 // 在 Sonnet 5 上启动每个会话

60 "model": "claude-sonnet-5",62 "model": "claude-sonnet-5",

61 // 在没有保存级别的模型上比默认高级别进行更深入的推理;/effort 为每个模型保存一个级别,--effort 为单个会话设置一个级别63 // 在 Sonnet 5 上运行高于其默认高级别;/effort 为每个模型保存一个级别,--effort 为单个会话设置一个级别

62 "effortLevel": "xhigh",64 "modelSettings": {

65 "claude-sonnet-5": { "effortLevel": "xhigh" }

66 },

63 // 提示中的 Vim 快捷键67 // 提示中的 Vim 快捷键

64 "editorMode": "vim",68 "editorMode": "vim",

65 // 色盲友好的浅色主题69 // 色盲友好的浅色主题

settings-reference.md +173 −162

Details

685| [`hooks`](#hooks) | 在 Claude Code 生命周期中的点运行您自己的命令作为 [hooks](/docs/zh-CN/hooks) | Hooks 和自动化 | Any file |685| [`hooks`](#hooks) | 在 Claude Code 生命周期中的点运行您自己的命令作为 [hooks](/docs/zh-CN/hooks) | Hooks 和自动化 | Any file |

686| [`httpHookAllowedEnvVars`](#httphookallowedenvvars) | 限制[HTTP hooks](/docs/zh-CN/hooks)可以在标头中放入的环境变量 | Hooks 和自动化 | Any file |686| [`httpHookAllowedEnvVars`](#httphookallowedenvvars) | 限制[HTTP hooks](/docs/zh-CN/hooks)可以在标头中放入的环境变量 | Hooks 和自动化 | Any file |

687| [`includeCoAuthoredBy`](#includecoauthoredby) | 已弃用;使用 `attribution` 隐藏或更改提交和 PR 属性 | Git 和属性 | Any file |687| [`includeCoAuthoredBy`](#includecoauthoredby) | 已弃用;使用 `attribution` 隐藏或更改提交和 PR 属性 | Git 和属性 | Any file |

688| [`includeGitInstructions`](#includegitinstructions) | 从[系统提示](/docs/zh-CN/sub-agents#what-loads-at-startup)中删除内置的提交和 PR 指令 | Git 和属性 | Any file |688| [`includeGitInstructions`](#includegitinstructions) | 从 Claude 的上下文中删除内置的提交和 PR 指令 | Git 和属性 | Any file |

689| [`inputNeededNotifEnabled`](#inputneedednotifenabled) | 当 Claude 在等待您时获得[推送通知](/docs/zh-CN/remote-control#mobile-push-notifications) | 远程、桌面和通知 | Any file |689| [`inputNeededNotifEnabled`](#inputneedednotifenabled) | 当 Claude 在等待您时获得[推送通知](/docs/zh-CN/remote-control#mobile-push-notifications) | 远程、桌面和通知 | Any file |

690| [`isolatePeerMachines`](#isolatepeermachines) | 在 Claude [向您在另一台机器上的会话发送消息](/docs/zh-CN/cross-session-messaging#require-approval-for-cross-machine-messages)之前询问您 | 代理、会话和工作树 | Any file |690| [`isolatePeerMachines`](#isolatepeermachines) | 在 Claude [向您在另一台机器上的会话发送消息](/docs/zh-CN/cross-session-messaging#require-approval-for-cross-machine-messages)之前询问您 | 代理、会话和工作树 | Any file |

691| [`keybindingFlavor`](#keybindingflavor) | 已弃用且无效;单词编辑快捷键始终[遵循 readline 约定](/docs/zh-CN/interactive-mode#make-ctrl-w-delete-back-to-whitespace) | 界面和终端 | Any file |691| [`keybindingFlavor`](#keybindingflavor) | 已弃用且无效;单词编辑快捷键始终[遵循 readline 约定](/docs/zh-CN/interactive-mode#make-ctrl-w-delete-back-to-whitespace) | 界面和终端 | Any file |


797| [`syncClaudeAiPlugins`](#syncclaudeaiplugins) | 停止加载[在您的 claude.ai 帐户上启用的插件](/docs/zh-CN/plugins-reference#synced-plugins)并停止下载新的 | 插件和技能 | User, local, or managed |797| [`syncClaudeAiPlugins`](#syncclaudeaiplugins) | 停止加载[在您的 claude.ai 帐户上启用的插件](/docs/zh-CN/plugins-reference#synced-plugins)并停止下载新的 | 插件和技能 | User, local, or managed |

798| [`syncClaudeAiSkills`](#syncclaudeaiskills) | 停止加载[在您的 claude.ai 帐户上启用的技能](/docs/zh-CN/skills#how-synced-skills-behave)并停止下载新的 | 插件和技能 | User, local, or managed |798| [`syncClaudeAiSkills`](#syncclaudeaiskills) | 停止加载[在您的 claude.ai 帐户上启用的技能](/docs/zh-CN/skills#how-synced-skills-behave)并停止下载新的 | 插件和技能 | User, local, or managed |

799| [`syntaxHighlightingDisabled`](#syntaxhighlightingdisabled) | 关闭 diffs 和代码块中的语法突出显示 | 界面和终端 | Any file |799| [`syntaxHighlightingDisabled`](#syntaxhighlightingdisabled) | 关闭 diffs 和代码块中的语法突出显示 | 界面和终端 | Any file |

800| [`taskOutputMaxChars`](#taskoutputmaxchars) | 设置[后台任务](/docs/zh-CN/tools-reference#background-commands)的输出有多少 Claude 内联接收 | 内存和上下文 | Any file |800| [`taskOutputMaxChars`](#taskoutputmaxchars) | 在 v2.1.277 中删除,以及它调整大小的 `TaskOutput` 工具 | 内存和上下文 | Any file |

801| [`teammateDefaultModel`](#teammatedefaultmodel) | 在 v2.1.234 中删除;请参阅[指定队友和模型](/docs/zh-CN/agent-teams#specify-teammates-and-models)了解 Claude Code 如何选择队友的模型 | 全局配置设置 | Global config |801| [`teammateDefaultModel`](#teammatedefaultmodel) | 在 v2.1.234 中删除;请参阅[指定队友和模型](/docs/zh-CN/agent-teams#specify-teammates-and-models)了解 Claude Code 如何选择队友的模型 | 全局配置设置 | Global config |

802| [`teammateMode`](#teammatemode) | 选择[代理团队队友显示](/docs/zh-CN/agent-teams#choose-a-display-mode)的方式 | 代理、会话和工作树 | Any file |802| [`teammateMode`](#teammatemode) | 选择[代理团队队友显示](/docs/zh-CN/agent-teams#choose-a-display-mode)的方式 | 代理、会话和工作树 | Any file |

803| [`terminalProgressBarEnabled`](#terminalprogressbarenabled) | 在支持它的终端中隐藏终端进度条 | 界面和终端 | Any file |803| [`terminalProgressBarEnabled`](#terminalprogressbarenabled) | 在支持它的终端中隐藏终端进度条 | 界面和终端 | Any file |


833 `advisorModel`833 `advisorModel`

834</h3>834</h3>

835 835 

836选择当 Claude 调用服务器端[顾问工具](/docs/zh-CN/advisor)时哪个模型来回答。取消设置它以关闭顾问。顾问的能力必须至少与您的主模型一样强。请参阅[选择顾问模型](/docs/zh-CN/advisor#choose-an-advisor-model)以了解接受的配对以及当您选择未被接受的配对时会发生什么。836选择当 Claude 调用服务器端[顾问工具](/docs/zh-CN/advisor)时哪个模型来回答。取消设置它以关闭顾问。顾问的能力必须至少与您的主模型一样强。请参阅[选择顾问模型](/docs/zh-CN/advisor#choose-an-advisor-model)了解接受的配对以及选择未被接受的配对时会发生什么。

837 837 

838您通常不会手动编辑此键。运行 `/advisor` 以打开一个选择器,显示当前选择、可以提供建议的模型和**无顾问**。Claude Code 将您的选择保存到 `~/.claude/settings.json` 中的此键。如果您从[远程控制](/docs/zh-CN/remote-control)客户端或附加到远程工作者的会话中选择,该选择仅适用于该会话,不会更改此键。838您通常不会手动编辑此键。运行 `/advisor` 打开一个选择器,显示当前选择、可以提供建议的模型和**无顾问**。Claude Code 将您的选择保存到 `~/.claude/settings.json` 中的此键。如果您从[远程控制](/docs/zh-CN/remote-control)客户端或附加到远程工作者的会话中选择,该选择仅适用于该会话,不会更改此键。

839 839 

840如果您的账户需要[使用额度同意](/docs/zh-CN/advisor#fable-advisor-and-usage-credits),请先通过运行 `/model fable` 来接受它。在您这样做之前,在 `/advisor` 中选择 Fable 不会保存任何内容,Claude Code 会告诉您先运行 `/model fable`。840如果您的账户需要[使用额度同意](/docs/zh-CN/advisor#fable-advisor-and-usage-credits),请先通过运行 `/model fable` 来接受。在您这样做之前,在 `/advisor` 中选择 Fable 不会保存任何内容,Claude Code 会告诉您先运行 `/model fable`。

841 841 

842* **范围**: [`任何文件`](#scopes)842* **Scope**: [`Any file`](#scopes)

843* **类型**: 字符串,别名之一 `"fable"`、`"opus"` 或 `"sonnet"`,它们解析为 Claude Code 当前该模型系列的默认版本,或完整模型 ID,如 `"claude-opus-5"`843* **Type**: string,别名之一 `"fable"`、`"opus"` 或 `"sonnet"`,它们解析为 Claude Code 当前该模型系列的默认版本,或完整模型 ID,如 `"claude-opus-5-5"`

844* **默认值**: 未设置,因此顾问已关闭844* **Default**: 未设置,因此顾问已关闭

845* **每会话覆盖**: `--advisor` 对此键的优先级更高,适用于一个会话。[`CLAUDE_CODE_DISABLE_ADVISOR_TOOL`](/docs/zh-CN/env-vars) 关闭顾问,此键无法将其重新打开845* **Per-session overrides**: `--advisor` 对此键优先一个会话。[`CLAUDE_CODE_DISABLE_ADVISOR_TOOL`](/docs/zh-CN/env-vars)关闭顾问,此键无法将其重新打开

846 846 

847```json settings.json theme={null}847```json settings.json theme={null}

848{848{


850}850}

851```851```

852 852 

853该键对顾问[不可用](/docs/zh-CN/advisor#requirements)的提供商(如 Amazon Bedrock 和 AWS 上的 Claude Platform)没有影响。`"fable"` 需要[Fable 访问权限](/docs/zh-CN/advisor#choose-an-advisor-model)。853该键对顾问[不可用](/docs/zh-CN/advisor#requirements)的提供商没有影响,例如 Amazon Bedrock 和 AWS 上的 Claude Platform。`"fable"` 需要[Fable 访问权限](/docs/zh-CN/advisor#choose-an-advisor-model)。

854 854 

855<h3 id="alwaysthinkingenabled">855<h3 id="alwaysthinkingenabled">

856 `alwaysThinkingEnabled`856 `alwaysThinkingEnabled`


858 858 

859通过将其设置为 `false` 来为每个会话关闭[扩展思考](/docs/zh-CN/model-config#extended-thinking)。默认情况下思考是打开的,所以 `true` 不会改变任何内容。大多数人通过 `/config` 而不是编辑文件来设置这个。859通过将其设置为 `false` 来为每个会话关闭[扩展思考](/docs/zh-CN/model-config#extended-thinking)。默认情况下思考是打开的,所以 `true` 不会改变任何内容。大多数人通过 `/config` 而不是编辑文件来设置这个。

860 860 

861在始终思考的模型上,例如 Fable 模型,`false` 没有效果。在[第三方提供商](/docs/zh-CN/third-party-integrations)上,Claude Code 省略 `thinking` 参数而不是关闭思考,因此自适应推理模型可能仍然会思考。在 Anthropic API 上关闭思考时,Claude Code 会向它知道[不接受该组合](/docs/zh-CN/errors#effort-isnt-available-with-thinking-turned-off)的模型(如 Opus 5)发送努力 `high` 而不是更高级别。861在始终思考的模型上,例如 Opus 5.5 和 Fable 模型,`false` 没有效果。在[第三方提供商](/docs/zh-CN/third-party-integrations)上,Claude Code 省略 `thinking` 参数而不是关闭思考,因此自适应推理模型可能仍然会思考。在 Anthropic API 上关闭思考时,Claude Code 向它知道[不接受该组合](/docs/zh-CN/errors#effort-isnt-available-with-thinking-turned-off)的模型(例如 Opus 5)发送努力 `high` 而不是更高级别。

862 862 

863* **范围**: [`任何文件`](#scopes)863* **Scope**: [`Any file`](#scopes)

864* **类型**: 布尔值864* **Type**: Boolean

865 * `true`: 无效果;思考已经打开865 * `true`: 无效果;思考已经打开

866 * `false`: Claude Code 为每个会话关闭扩展思考866 * `false`: Claude Code 为每个会话关闭扩展思考

867* **默认值**: 未设置,因此对支持它的模型思考已打开867* **Default**: 未设置,因此对支持它的模型思考是打开的

868* **每会话覆盖**: [`MAX_THINKING_TOKENS`](/docs/zh-CN/env-vars) 对此键的优先级更高,适用于一个会话:`0` 关闭思考,受相同的模型和提供商限制如 `false`,正值打开思考,即使此键是 `false`。在自适应推理模型上,数字本身被忽略868* **Per-session overrides**: [`MAX_THINKING_TOKENS`](/docs/zh-CN/env-vars)对此键优先一个会话:`0` 关闭思考,在与 `false` 相同的模型和提供商限制下,正值打开思考,即使此键是 `false`。在自适应推理模型上,数字本身被忽略

869 869 

870```json settings.json theme={null}870```json settings.json theme={null}

871{871{


877 `availableModels`877 `availableModels`

878</h3>878</h3>

879 879 

880限制人们可以为主会话、[子代理](/docs/zh-CN/sub-agents)、[技能](/docs/zh-CN/skills)和[顾问](/docs/zh-CN/advisor)选择的模型。托管列表限制 `/model`、`--model` 和开发者自己文件中的 `model` 键;列表外的模型无法选择。单独来说,这不会触及默认选项;将其与 [`enforceAvailableModels`](#enforceavailablemodels) 配对以实现这一点。880限制人们可以为主会话、[子代理](/docs/zh-CN/sub-agents)、[skills](/docs/zh-CN/skills) 和[顾问](/docs/zh-CN/advisor)选择的模型。托管列表限制 `/model`、`--model` 和开发人员自己文件中的 `model` 键;列表外的模型无法选择。单独来说,这不会触及默认选项;将其与[`enforceAvailableModels`](#enforceavailablemodels)配对以实现该目的。

881 881 

882* **范围**: [`任何文件`](#scopes)。在托管设置中部署它以为组织强制执行。882* **Scope**: [`Any file`](#scopes)。在托管设置中部署它以为组织强制执行。

883* **类型**: 模型别名或 ID 的数组883* **Type**: 模型别名或 ID 的数组

884* **默认值**: 未设置,因此每个模型都可用884* **Default**: 未设置,因此每个模型都可用

885 885 

886此示例仅允许人们选择 Sonnet 和 Haiku 模型:886此示例仅允许人们选择 Sonnet 和 Haiku 模型:

887 887 


899 899 

900为您尚未保存级别的模型设置默认[努力级别](/docs/zh-CN/model-config#adjust-effort-level)。较低的级别在直接任务上更快且更便宜,较高的级别在复杂问题上推理更深入。900为您尚未保存级别的模型设置默认[努力级别](/docs/zh-CN/model-config#adjust-effort-level)。较低的级别在直接任务上更快且更便宜,较高的级别在复杂问题上推理更深入。

901 901 

902当您在您的机器上的交互式会话中运行 `/effort low`、`medium`、`high` 或 `xhigh` 时,Claude Code 将该级别保存到 [`modelSettings`](#modelsettings) 下的活动模型,而不是写入此键。在 v2.1.251 之前,`/effort` 写入此键。902当您在您的机器上的交互式会话中运行 `/effort low`、`medium`、`high` 或 `xhigh` 时,Claude Code 将该级别保存到[`modelSettings`](#modelsettings)下的活动模型,而不是写入此键。在 v2.1.251 之前,`/effort` 写入此键。

903 903 

904在同一设置文件中,Claude Code 使用模型的保存级别而不是此键。[`modelSettings`](#modelsettings) 说明跨文件优先级。904在同一设置文件中,Claude Code 使用模型的保存级别而不是此键。[`modelSettings`](#modelsettings)说明跨文件优先级。

905 905 

906在附加到远程工作者的会话中,`/effort` 仅适用于该会话。在 `-p` 运行或 Agent SDK 中,它也仅适用于该会话,[除非对模型的默认努力有保留](/docs/zh-CN/model-config#non-interactive-effort)。[调整努力级别](/docs/zh-CN/model-config#adjust-effort-level)列出也仅适用于该会话的交互式选择。`/effort` 打印的消息说明发生了什么。906在附加到远程工作者的会话中、在 `-p` 运行中以及在 Agent SDK 中,`/effort` 仅适用于该会话。[调整努力级别](/docs/zh-CN/model-config#adjust-effort-level)列出也仅适用于该会话的交互式选择。`/effort` 打印的消息说明发生了什么。

907 907 

908* **范围**: [`任何文件`](#scopes)908* **Scope**: [`Any file`](#scopes)

909* **类型**: 字符串,之一:909* **Type**: string,其中之一:

910 * `"low"`: 最少推理,用于短的、有范围的、延迟敏感的、不是智能敏感的任务910 * `"low"`: 最少推理,用于短的、范围内的、延迟敏感的、不是智能敏感的任务

911 * `"medium"`: 减少成本敏感工作的令牌使用,可以权衡一些智能911 * `"medium"`: 减少成本敏感工作的令牌使用,可以权衡一些智能

912 * `"high"`: 平衡令牌使用和智能912 * `"high"`: 平衡令牌使用和智能

913 * `"xhigh"`: 更深入的推理,更高的令牌支出913 * `"xhigh"`: 更深入的推理,更高的令牌支出

914* **默认值**: 未设置914* **Default**: 未设置

915* **每会话覆盖**: `--effort` 对此键的优先级更高,适用于一个会话,[`CLAUDE_CODE_EFFORT_LEVEL`](/docs/zh-CN/env-vars) 对两者的优先级都更高915* **Per-session overrides**: `--effort` 对此键优先一个会话,[`CLAUDE_CODE_EFFORT_LEVEL`](/docs/zh-CN/env-vars)对两者都优先

916 916 

917```json settings.json theme={null}917```json settings.json theme={null}

918{918{


920}920}

921```921```

922 922 

923在 Opus 4.7、Opus 4.8 和 Fable 5 上,Claude Code 保留该模型的默认努力,组织设置或内置;[调整努力级别](/docs/zh-CN/model-config#adjust-effort-level)说明哪些设置级别的方式结束保留,哪些保留它。一旦保留结束,Claude Code 通过 [`modelSettings`](#modelsettings) 中说明的优先级解析努力。923在您的用户设置文件 `~/.claude/settings.json` 中,此键是 `/effort` 在按模型保存级别之前写入的较旧形式,它继续在之前应用的地方应用,在 Opus 5、Fable 5.1 和更早的模型上。Opus 5.5 和之后发布的模型忽略它,并从它们自己的默认值开始,直到您为它们保存一个级别,`/effort` 在[`modelSettings`](#modelsettings)下写入。在项目、本地和托管设置中,以及使用 `--settings` 时,此键适用于每个模型。

924 924 

925<h3 id="enforceavailablemodels">925<h3 id="enforceavailablemodels">

926 `enforceAvailableModels`926 `enforceAvailableModels`

927</h3>927</h3>

928 928 

929`/model` 选择器有一个**默认**选项,当适用时解析为您的[组织默认模型](/docs/zh-CN/model-config#organization-default-model),否则解析为您的账户类型的默认值。[`availableModels`](#availablemodels) 允许列表限制您可以命名的模型,但单独来说它保留**默认**不变,因此**默认**仍然可以解析为列表外的模型。此键关闭了该漏洞。需要 Claude Code v2.1.175 或更高版本。929`/model` 选择器有一个**默认**选项,当应用时解析为您的[组织默认模型](/docs/zh-CN/model-config#organization-default-model),否则解析为您的账户类型的默认值。[`availableModels`](#availablemodels)允许列表限制您可以命名的模型,但单独来说它不会改变**默认**,因此**默认**仍然可以解析为列表外的模型。此键关闭了该间隙。需要 Claude Code v2.1.175 或更高版本。

930 930 

931当您的组织部署任何托管设置时,Claude Code 仅从托管源读取此键,并在您的其他文件中忽略它。931当您的组织部署任何托管设置时,Claude Code 仅从托管源读取此键,并在您的其他文件中忽略它。

932 932 

933* **范围**: [`任何文件`](#scopes)933* **Scope**: [`Any file`](#scopes)

934* **类型**: 布尔值934* **Type**: Boolean

935 * `true`: 当**默认**会解析为 `availableModels` 外的模型时,Claude Code 将其解析为列表中第一个可用的模型935 * `true`: 当**默认**将解析为 `availableModels` 外的模型时,Claude Code 将其解析为列表中第一个可用的模型

936 * `false`: **默认**照常解析,即使是列表外的模型936 * `false`: **默认**照常解析,即使是列表外的模型

937* **默认值**: `false`937* **Default**: `false`

938 938 

939此示例将命名选择限制为 Sonnet 和 Haiku 模型,并使**默认**解析为其中第一个可用的:939此示例将命名选择限制为 Sonnet 和 Haiku 模型,并使**默认**解析为其中第一个可用的:

940 940 


945}945}

946```946```

947 947 

948当 `availableModels` 未设置或为空时,此键没有效果。请参阅[为默认模型强制执行允许列表](/docs/zh-CN/model-config#enforce-the-allowlist-for-the-default-model)。需要 Claude Code v2.1.175 或更高版本。948当 `availableModels` 未设置或为空时,此键无效。请参阅[为默认模型强制执行允许列表](/docs/zh-CN/model-config#enforce-the-allowlist-for-the-default-model)。需要 Claude Code v2.1.175 或更高版本。

949 949 

950<h3 id="fallbackmodel">950<h3 id="fallbackmodel">

951 `fallbackModel`951 `fallbackModel`

952</h3>952</h3>

953 953 

954命名备用模型供 Claude Code 在您的主模型过载或不可用时按顺序尝试。Claude Code 切换到链中下一个可用的模型以完成该轮,并显示通知。没有链的情况下,Claude Code 重试同一模型,然后显示服务器的错误,您重试或自己切换模型。954命名备份模型供 Claude Code 在您的主模型过载或不可用时按顺序尝试。Claude Code 在链中的下一个可用模型上切换以完成该轮,并显示通知。没有链的情况下,Claude Code 重试同一模型,然后显示服务器的错误,您重试或自己切换模型。

955 955 

956切换意味着在备用模型上进行一轮冷[提示缓存](/docs/zh-CN/prompt-caching#switching-models);您的下一条消息首先再次尝试主模型。956切换意味着在备用模型上进行一轮冷[提示缓存](/docs/zh-CN/prompt-caching#switching-models);您的下一条消息首先再次尝试主模型。

957 957 

958* **范围**: [`任何文件`](#scopes)958* **Scope**: [`Any file`](#scopes)

959* **类型**: 模型别名或 ID 的数组;`"default"` 扩展为默认模型959* **Type**: 模型别名或 ID 的数组;`"default"` 扩展为默认模型

960* **默认值**: 未设置,因此失败的请求不会在另一个模型上重试960* **Default**: 未设置,因此失败的请求不会在另一个模型上重试

961* **每会话覆盖**: `--fallback-model` 对此键的优先级更高,适用于一个会话961* **Per-session overrides**: `--fallback-model` 对此键优先一个会话

962 962 

963此示例在您的主模型失败时首先尝试 Sonnet 5,然后尝试 Haiku 4.5:963此示例在您的主模型失败时首先尝试 Sonnet 5,然后尝试 Haiku 4.5:

964 964 


974 `fastMode`974 `fastMode`

975</h3>975</h3>

976 976 

977为可用的会话打开[快速模式](/docs/zh-CN/fast-mode),用于交互式工作,如快速迭代或实时调试,您希望以更高的每令牌成本获得速度。您通常不会手动编辑此键:运行 `/fast` 将 `fastMode: true` 写入 `~/.claude/settings.json`,再次运行它以关闭快速模式会删除该键。快速模式仅在 Opus 5 和 Opus 4.8 上运行:从另一个模型打开它会切换您到 Opus,切换到不支持的模型会关闭它。请参阅[在快速模式打开时切换模型](/docs/zh-CN/fast-mode#switch-models-while-fast-mode-is-on)。977为可用的会话打开[快速模式](/docs/zh-CN/fast-mode),用于交互式工作,如快速迭代或实时调试,您希望以更高的每令牌成本获得速度。您通常不会手动编辑此键:运行 `/fast` 将 `fastMode: true` 写入 `~/.claude/settings.json`,再次运行它以关闭快速模式会删除该键。快速模式仅在 Opus 5.5、Opus 5 和 Opus 4.8 上运行:从另一个模型打开它会将您切换到 Opus,切换到不支持的模型会关闭它。请参阅[在快速模式打开时切换模型](/docs/zh-CN/fast-mode#switch-models-while-fast-mode-is-on)。

978 978 

979* **范围**: [`任何文件`](#scopes)979* **Scope**: [`Any file`](#scopes)

980* **类型**: 布尔值980* **Type**: Boolean

981 * `true`: Claude Code 为可用的会话打开快速模式981 * `true`: Claude Code 为可用的会话打开快速模式

982 * `false`: 快速模式保持关闭982 * `false`: 快速模式保持关闭

983* **默认值**: 未设置,因此快速模式已关闭983* **Default**: 未设置,因此快速模式已关闭

984* **每会话覆盖**: [`CLAUDE_CODE_DISABLE_FAST_MODE`](/docs/zh-CN/env-vars) 为一个会话关闭快速模式,此键无法将其重新打开984* **Per-session overrides**: [`CLAUDE_CODE_DISABLE_FAST_MODE`](/docs/zh-CN/env-vars)为一个会话关闭快速模式,此键无法将其重新打开

985 985 

986```json settings.json theme={null}986```json settings.json theme={null}

987{987{


993 `fastModePerSessionOptIn`993 `fastModePerSessionOptIn`

994</h3>994</h3>

995 995 

996通常,运行 `/fast` 将 [`fastMode`](#fastmode) 保存到一个人的用户设置,因此快速模式在之后每个会话的开始时打开。将此键设置为 `true` 以停止这种情况:保存的 `fastMode: true` 不再在会话开始时打开快速模式,每个人必须在他们想要它的每个会话中运行 `/fast`。Claude Code 在他们的文件中保留 `fastMode` 键,因此关闭此键会恢复旧行为。Team 或 Enterprise 计划的所有者可以通过[服务器托管设置](/docs/zh-CN/server-managed-settings)在组织范围内部署它。996通常,运行 `/fast` 将[`fastMode`](#fastmode)保存到一个人的用户设置,因此快速模式在之后每个会话的开始时打开。将此键设置为 `true` 以停止这种情况:保存的 `fastMode: true` 不再在会话开始时打开快速模式,每个人必须在他们想要它的每个会话中运行 `/fast`。Claude Code 在他们的文件中保留 `fastMode` 键,因此关闭此键会恢复旧行为。

997 997 

998* **范围**: [`任何文件`](#scopes)998Team 或 Enterprise 计划的所有者可以通过[服务器托管设置](/docs/zh-CN/server-managed-settings)在组织范围内部署它。当托管设置设置该键时,`/fast on` 在交互式终端会话外被拒绝,并报告您的组织已禁用快速模式。这涵盖[非交互式模式](/docs/zh-CN/headless)、[VS Code 扩展](/docs/zh-CN/vs-code)和[云会话](/docs/zh-CN/claude-code-on-the-web)。

999* **类型**: 布尔值999 

1000 * `true`: 保存的 `fastMode: true` 不再在会话开始时打开快速模式,因此每个人在他们想要它的每个会话中运行 `/fast`;与 `--settings` 一起传递的 `fastMode: true` 仍然对该会话计数,除非托管设置设置此键1000* **Scope**: [`Any file`](#scopes)

1001* **Type**: Boolean

1002 * `true`: 保存的 `fastMode: true` 不再在会话开始时打开快速模式,因此每个人在他们想要它的每个会话中运行 `/fast`;使用 `--settings` 传递的 `fastMode: true` 仍然对该会话计数,除非托管设置设置此键

1001 * `false`: 保存的 `fastMode: true` 在之后每个会话的开始时打开快速模式1003 * `false`: 保存的 `fastMode: true` 在之后每个会话的开始时打开快速模式

1002* **默认值**: `false`1004* **Default**: `false`

1003 1005 

1004```json settings.json theme={null}1006```json settings.json theme={null}

1005{1007{


1007}1009}

1008```1010```

1009 1011 

1010请参阅[需要每会话选择加入](/docs/zh-CN/fast-mode#require-per-session-opt-in)。1012请参阅[需要按会话选择加入](/docs/zh-CN/fast-mode#require-per-session-opt-in)。

1011 1013 

1012<h3 id="language">1014<h3 id="language">

1013 `language`1015 `language`

1014</h3>1016</h3>

1015 1017 

1016默认情况下让 Claude 用英语以外的语言响应。响应没有固定列表:Claude Code 将值逐字添加到系统提示中,作为始终用该语言响应的指令,因此任何 Claude 可以读取的语言名称都有效。Claude Code 不检查该值,因此拼写错误的名称按原样到达 Claude,而不是产生错误。相同的值为[语音听写](/docs/zh-CN/voice-dictation#change-the-dictation-language)设置语言,它有一个固定的[支持的听写语言](/docs/zh-CN/voice-dictation#change-the-dictation-language)列表,以及自动生成的会话标题。1018默认情况下让 Claude 用英语以外的语言响应。响应没有固定列表:Claude Code 将值逐字传递给 Claude 作为始终用该语言响应的指令,因此任何 Claude 可以读取的语言名称都有效。Claude Code 不检查该值,因此拼写错误的名称按原样到达 Claude,而不是产生错误。相同的值为[语音听写](/docs/zh-CN/voice-dictation#change-the-dictation-language)设置语言,它有一个固定的[支持的听写语言](/docs/zh-CN/voice-dictation#change-the-dictation-language)列表,以及自动生成的会话标题。

1017 1019 

1018* **范围**: [`任何文件`](#scopes)1020* **Scope**: [`Any file`](#scopes)

1019* **类型**: 字符串,任何语言名称,如 `"japanese"`、`"spanish"` 或 `"french"`;Claude Code 不验证它1021* **Type**: string,任何语言名称,例如 `"japanese"`、`"spanish"` 或 `"french"`;Claude Code 不验证它

1020* **默认值**: 未设置;会话标题然后匹配您的对话语言1022* **Default**: 未设置;会话标题然后匹配您的对话语言

1021 1023 

1022```json settings.json theme={null}1024```json settings.json theme={null}

1023{1025{


1029 `maxEffortLevel`1031 `maxEffortLevel`

1030</h3>1032</h3>

1031 1033 

1032限制[努力级别](/docs/zh-CN/model-config#adjust-effort-level)会话可以使用,保留较低的级别可用。任何更高的级别都在上限处运行,包括来自 `/effort`、`/model` 选择器、`--effort`、[`CLAUDE_CODE_EFFORT_LEVEL`](/docs/zh-CN/env-vars)、技能或子代理的 `effort` frontmatter 或模型自己的默认值。Claude Code 在每个请求之前应用上限本身,因此它在每个提供商上保留,包括 Amazon Bedrock、Google Cloud 的 Agent Platform 和 Microsoft Foundry。需要 Claude Code v2.1.267 或更高版本。1034限制会话可以使用的[努力级别](/docs/zh-CN/model-config#adjust-effort-level),保留较低的级别可用。任何更高的级别都在上限处运行,包括来自 `/effort`、`/model` 选择器、`--effort`、[`CLAUDE_CODE_EFFORT_LEVEL`](/docs/zh-CN/env-vars)、skill 或 subagent 的 `effort` frontmatter 或模型自己的默认值。Claude Code 在每个请求之前应用上限本身,因此它在每个提供商上都有效,包括 Amazon Bedrock、Google Cloud 的 Agent Platform 和 Microsoft Foundry。需要 Claude Code v2.1.267 或更高版本。

1033 1035 

1034* **范围**: [`任何文件`](#scopes)。在托管设置中部署它以为组织强制执行。当多个范围设置上限时,最低的适用,因此在一个范围中设置的上限无法从另一个范围提高1036* **Scope**: [`Any file`](#scopes)。在托管设置中部署它以为组织强制执行。当多个范围设置上限时,最低的适用,因此在一个范围中设置的上限无法从另一个范围提高

1035* **类型**: 字符串,之一 `"low"`、`"medium"`、`"high"`、`"xhigh"` 或 `"max"`。`"max"` 值不设置上限1037* **Type**: string,其中之一 `"low"`、`"medium"`、`"high"`、`"xhigh"` 或 `"max"`。`"max"` 值不设置上限

1036* **默认值**: 未设置,因此不适用上限1038* **Default**: 未设置,因此不适用上限

1037* **对 ultracode 的影响**: 低于 `xhigh` 的上限使[ultracode](#ultracode)在上限适用的模型上不可用1039* **Effect on ultracode**: 低于 `xhigh` 的上限使[ultracode](#ultracode)在上限适用的模型上不可用

1038* **每模型上限**: 将 `maxEffortLevel` 添加到模型的 [`modelSettings`](#modelsettings) 条目。该条目仅在设置源(如您的用户设置或一个[托管源](/docs/zh-CN/managed-settings#how-claude-code-combines-managed-sources))中同时设置两者的范围内替换此键。在那里设置 `"max"` 以豁免该模型免受该源的上限;Claude Code 仍然应用来自其他源的上限1040* **Per-model caps**: 将 `maxEffortLevel` 添加到模型的[`modelSettings`](#modelsettings)条目。该条目仅在设置源中替换此键,该源同时设置两者,例如您的用户设置或一个[托管源](/docs/zh-CN/managed-settings#how-claude-code-combines-managed-sources)。在那里设置 `"max"` 以豁免该模型不受该源的上限;Claude Code 仍然应用来自其他源的上限

1039 1041 

1040此示例将每个模型限制在 `medium`,并豁免 Sonnet 4.6:1042此示例将每个模型限制在 `medium`,并豁免 Sonnet 4.6:

1041 1043 


1056 `model`1058 `model`

1057</h3>1059</h3>

1058 1060 

1059设置每个新会话使用的模型,因此您不必每次都用 `/model` 选择一个。在此处设置它不会阻止您在会话中期切换。如果您的管理员设置了[组织默认模型](/docs/zh-CN/model-config#organization-default-model)以覆盖用户选择,即使您在用户、项目或本地设置中设置此键,您也会获得该模型。1061设置每个新会话使用的模型,因此您不必每次都使用 `/model` 选择一个。在此处设置它不会阻止您在会话中期切换。如果您的管理员设置了[组织默认模型](/docs/zh-CN/model-config#organization-default-model)以覆盖用户选择,即使您在用户、项目或本地设置中设置此键,您也会获得该模型。

1060 1062 

1061* **范围**: [`任何文件`](#scopes)1063* **Scope**: [`Any file`](#scopes)

1062* **类型**: 字符串,模型别名或完整模型 ID1064* **Type**: string,模型别名或完整模型 ID

1063* **默认值**: 未设置,因此 Claude Code 使用您账户的默认模型1065* **Default**: 未设置,因此 Claude Code 使用您账户的默认模型

1064* **每会话覆盖**: `--model` 对 [`ANTHROPIC_MODEL`](/docs/zh-CN/env-vars) 的优先级更高,两者对此键的优先级都更高,适用于一个会话,包括对托管 `model`;[`availableModels`](#availablemodels) 列表仍然适用于选择1066* **Per-session overrides**: `--model` 优先于[`ANTHROPIC_MODEL`](/docs/zh-CN/env-vars),两者都优先于此键一个会话,包括优先于托管 `model`;[`availableModels`](#availablemodels)列表仍然适用于选择

1065 1067 

1066```json settings.json theme={null}1068```json settings.json theme={null}

1067{1069{


1069}1071}

1070```1072```

1071 1073 

1072此处的值优先于 [`ANTHROPIC_DEFAULT_MODEL`](/docs/zh-CN/model-config#set-a-default-model-for-new-sessions),Claude Code 仅在没有其他内容选择模型时使用。1074此处的值优先于[`ANTHROPIC_DEFAULT_MODEL`](/docs/zh-CN/model-config#set-a-default-model-for-new-sessions),Claude Code 仅在没有其他内容选择模型时使用。

1073 1075 

1074<h3 id="modeloverrides">1076<h3 id="modeloverrides">

1075 `modelOverrides`1077 `modelOverrides`

1076</h3>1078</h3>

1077 1079 

1078将 Anthropic 模型 ID 映射到提供商特定的模型 ID,如 Amazon Bedrock 推理配置文件 ARN。然后每个模型选择器条目在调用提供商 API 时使用其映射值。管理员在[Amazon Bedrock、Google Cloud 的 Agent Platform 和 Microsoft Foundry](/docs/zh-CN/model-config#override-model-ids-per-version)上使用这个来将每个模型版本路由到特定的推理配置文件、版本名称或部署,以实现治理、成本分配或区域路由。1080将 Anthropic 模型 ID 映射到提供商特定的模型 ID,例如 Amazon Bedrock 推理配置文件 ARN。然后每个模型选择器条目在调用提供商 API 时使用其映射值。管理员在[Amazon Bedrock、Google Cloud 的 Agent Platform 和 Microsoft Foundry](/docs/zh-CN/model-config#override-model-ids-per-version)上使用这个来将每个模型版本路由到特定的推理配置文件、版本名称或部署,以实现治理、成本分配或区域路由。

1079 1081 

1080* **范围**: [`任何文件`](#scopes)1082* **Scope**: [`Any file`](#scopes)

1081* **类型**: 将模型 ID 映射到提供商模型 ID 的对象1083* **Type**: 将模型 ID 映射到提供商模型 ID 的对象

1082* **默认值**: 未设置1084* **Default**: 未设置

1083 1085 

1084此示例将 Opus 4.6 的每个调用路由到命名的 Bedrock 推理配置文件:1086此示例将 Opus 4.6 的每个调用路由到命名的 Bedrock 推理配置文件:

1085 1087 


1097 `modelPicker`1099 `modelPicker`

1098</h3>1100</h3>

1099 1101 

1100列出 `/model` 选择器提供的模型,按您写入它们的顺序和您选择的标签下,因此选择器列出您的组织运行的模型,在内置阵容之后或代替它。每行的 `model` 逐字获取,因此它接受 `--model` 接受的任何内容:别名如 `opus`、Anthropic 模型 ID 或 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 或 LLM 网关的提供商格式 ID。需要 Claude Code v2.1.242 或更高版本。1102列出 `/model` 选择器提供的模型,按您写入它们的顺序和您选择的标签下,因此选择器列出您的组织运行的模型,在内置阵容之后或代替它。每行的 `model` 按字面意思取用,因此它接受 `--model` 接受的任何内容:别名如 `opus`、Anthropic 模型 ID 或 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 或 LLM 网关的提供商格式 ID。需要 Claude Code v2.1.242 或更高版本。

1101 1103 

1102* **范围**: [`用户或托管`](#scopes)。Claude Code 从托管设置、`--settings` 和用户设置读取键,并在项目和本地设置中忽略它,因此您克隆的存储库无法重新标记选择器。这三个中最高的设置键的提供整个阵容,Claude Code 从不合并来自两个源的阵容。1104* **Scope**: [`User or managed`](#scopes)。Claude Code 从托管设置、`--settings` 和用户设置读取该键,并在项目和本地设置中忽略它,因此您克隆的存储库无法重新标记选择器。这三个中最高的设置该键的提供整个阵容,Claude Code 从不合并来自两个源的阵容。

1103* **类型**: 具有 `options` 数组的行和可选 `replaceBuiltInOptions` 布尔值的对象1105* **Type**: 具有 `options` 数组和可选 `replaceBuiltInOptions` Boolean 的对象

1104* **默认值**: 未设置,因此选择器显示内置阵容1106* **Default**: 未设置,因此选择器显示内置阵容

1105 1107 

1106此示例在内置阵容之后添加两个 Bedrock 部署,在您的团队识别的名称下:1108此示例在内置阵容之后添加两个 Bedrock 部署,在您的团队识别的名称下:

1107 1109 


1130 1132 

1131该键采用两个字段,一个用于行本身,一个用于它们是替换内置阵容还是添加到它。1133该键采用两个字段,一个用于行本身,一个用于它们是替换内置阵容还是添加到它。

1132 1134 

1133| 字段 | 类型 | 它做什么 |1135| Field | Type | What it does |

1134| :---------------------- | :------------------------------------------------ | :--------------------------------------------------------------------------------------------------- |1136| :---------------------- | :------------------------------------------------ | :--------------------------------------------------------------------------------------------------- |

1135| `options` | 行的数组,每个都有必需的 `model` 和可选的 `label` 和 `description` | 选择器显示的行,按此顺序,除了灰显的行移到底部。没有 `label`,Claude Code 用它知道的模型的内置名称标记行,或模型 ID 否则,没有 `description` 它写一个通用的第二行 |1137| `options` | 行的数组,每个都有必需的 `model` 和可选的 `label` 和 `description` | 选择器显示的行,按此顺序,除了灰显的行移到底部。没有 `label`,Claude Code 用它知道的模型的内置名称标记行,或模型 ID 否则,没有 `description` 它写一个通用的第二行 |

1136| `replaceBuiltInOptions` | 布尔值,默认 `false` | 将其设置为 `true` 以仅显示这些行、**默认**和会话已在使用的模型的行。保留未设置以在内置阵容之后添加这些行 |1138| `replaceBuiltInOptions` | Boolean,默认 `false` | 将其设置为 `true` 以仅显示这些行、**默认**和会话已在使用的模型的行。保留未设置以在内置阵容之后添加这些行 |

1137 1139 

1138打开 `replaceBuiltInOptions` 时,Claude Code 隐藏每个其他行:内置阵容、它为 [`availableModels`](#availablemodels) 条目添加的行、[网关发现](/docs/zh-CN/llm-gateway-protocol#model-discovery)找到的模型和 [`ANTHROPIC_CUSTOM_MODEL_OPTION`](/docs/zh-CN/model-config#add-a-custom-model-option)。关闭时,Claude Code 跳过内置阵容已覆盖的列出的模型。标签改变选择器显示的内容,而不是 Claude Code 运行的模型。1140启用 `replaceBuiltInOptions` 时,Claude Code 隐藏每个其他行:内置阵容、它为[`availableModels`](#availablemodels)条目添加的行、[网关发现](/docs/zh-CN/llm-gateway-protocol#model-discovery)找到的模型和[`ANTHROPIC_CUSTOM_MODEL_OPTION`](/docs/zh-CN/model-config#add-a-custom-model-option)。关闭时,Claude Code 跳过内置阵容已覆盖的列出的模型。标签改变选择器显示的内容,而不是 Claude Code 运行的模型。

1139 1141 

1140[`availableModels`](#availablemodels) 允许列表仍然适用于这些行。在将列出的模型添加到允许列表之前,请阅读[合并行为](/docs/zh-CN/model-config#merge-behavior):特定模型 ID 缩小其系列的通配符条目。Claude Code 还在显示选择器之前检查每行与会话:1142[`availableModels`](#availablemodels)允许列表仍然适用于这些行。在将列出的模型添加到允许列表之前,请阅读[合并行为](/docs/zh-CN/model-config#merge-behavior):特定模型 ID 缩小其系列的通配符条目。Claude Code 还在显示选择器之前检查每行与会话:

1141 1143 

1142* **删除**: Claude Code 无法提供的行,如已停用的模型或您的组织无权访问的模型1144* **Dropped**: Claude Code 无法提供的行,例如已停用的模型或您的组织无权访问的模型

1143* **灰显**: 您还无法选择的行,显示原因1145* **Grayed out**: 您还无法选择的行,显示原因

1144* **没有行存活**: Claude Code 保留内置阵容,按允许列表过滤如常1146* **No row survives**: Claude Code 保留内置阵容,按允许列表过滤如常

1145 1147 

1146Claude Code 删除它无法解析的行并保留其余的。请参阅[修复损坏的设置文件](/docs/zh-CN/settings#fix-a-broken-settings-file)。1148Claude Code 删除它无法解析的行并保留其余的。请参阅[修复损坏的设置文件](/docs/zh-CN/settings#fix-a-broken-settings-file)。

1147 1149 


1149 `modelPricing`1151 `modelPricing`

1150</h3>1152</h3>

1151 1153 

1152按您的组织支付的费率而不是列表价格报告支出。当您的组织有合同费率时设置它,因此开发者看到的美元数字与您的账单匹配。Claude Code 在 `/usage`、[状态行](/docs/zh-CN/statusline)、Agent SDK 的 `total_cost_usd`、[`--max-budget-usd`](/docs/zh-CN/cli-reference) 限制和[OpenTelemetry](/docs/zh-CN/monitoring-usage) 成本指标和事件中应用费率。您提供费率:Claude Code 不从您的合同或 Claude 控制台读取它们。需要 Claude Code v2.1.242 或更高版本。1154以您的组织支付的费率而不是列表价格报告支出。当您的组织有合同费率时设置它,因此开发人员看到的美元数字与您的账单相匹配。Claude Code 在 `/usage`、[状态行](/docs/zh-CN/statusline)、Agent SDK 的 `total_cost_usd`、[`--max-budget-usd`](/docs/zh-CN/cli-reference)限制和[OpenTelemetry](/docs/zh-CN/monitoring-usage)成本指标和事件中应用费率。您提供费率:Claude Code 不从您的合同或 Claude Console 读取它们。需要 Claude Code v2.1.242 或更高版本。

1153 1155 

1154* **范围**: [`托管`](#scopes)。通过服务器托管设置、MDM 策略、`managed-settings.json` 文件或[策略助手](/docs/zh-CN/managed-settings#compute-the-policy-with-a-helper-program)部署键。Claude Code 在用户、项目和本地设置中忽略它,在 `--settings` 中,以及在 Windows 中的用户可写[HKCU 注册表](/docs/zh-CN/managed-settings#where-each-mechanism-stores-the-policy)中。使用服务器托管设置,每个会话以列表价格报告成本,直到该会话的[设置获取](/docs/zh-CN/server-managed-settings#fetch-and-caching-behavior)已确认设置。嵌入 Claude Code 并设置 [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](/docs/zh-CN/env-vars) 的主机应用程序可以通过 SDK [`managedSettings`](/docs/zh-CN/agent-sdk/typescript#options) 选项提供自己的表,Claude Code 仅在没有托管源设置键时使用,仅在 Claude Code v2.1.246 或更高版本中。1156* **Scope**: [`Managed`](#scopes)。通过服务器托管设置、MDM 策略、`managed-settings.json` 文件或[策略助手](/docs/zh-CN/managed-settings#compute-the-policy-with-a-helper-program)部署该键。Claude Code 在用户、项目和本地设置中、在 `--settings` 中以及在 Windows 中的用户可写[HKCU 注册表](/docs/zh-CN/managed-settings#where-each-mechanism-stores-the-policy)中忽略它。使用服务器托管设置,每个会话以列表价格报告成本,直到该会话的[设置获取](/docs/zh-CN/server-managed-settings#fetch-and-caching-behavior)已确认该设置。嵌入 Claude Code 的主机应用程序,设置[`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](/docs/zh-CN/env-vars)可以通过 SDK [`managedSettings`](/docs/zh-CN/agent-sdk/typescript#options)选项提供自己的表,Claude Code 仅在没有托管源设置该键时使用,仅在 Claude Code v2.1.246 或更高版本中。

1155* **类型**: 具有可选 `multiplier` 和可选 `overrides` 映射的对象1157* **Type**: 具有可选 `multiplier` 和可选 `overrides` 映射的对象

1156* **默认值**: 未设置,因此 Claude Code 报告列表价格,除非主机应用程序提供表1158* **Default**: 未设置,因此 Claude Code 报告列表价格,除非主机应用程序提供表

1157 1159 

1158单独设置 `multiplier` 以获得统一折扣或加价,单独设置 `overrides` 以获得每模型费率,或两者。1160单独设置 `multiplier` 以获得固定折扣或加价,单独设置 `overrides` 以获得按模型费率,或两者都设置。

1159 1161 

1160此示例为 Sonnet 4.6 设置合同费率,然后将每个数字减少 15%,包括 Sonnet 行:1162此示例为 Sonnet 4.6 设置合同费率,然后将每个数字(包括 Sonnet 行)减少 15%:

1161 1163 

1162```json managed-settings.json theme={null}1164```json managed-settings.json theme={null}

1163{1165{


1175}1177}

1176```1178```

1177 1179 

1178将 `multiplier` 设置为 1 以上,最多 10,以标记每个数字。加价需要 Claude Code v2.1.271 或更高版本。早期版本忽略 `multiplier` 大于 1 的警告,并保留设置的其余部分。1180将 `multiplier` 设置为 1 以上,最多 10,以标记每个数字。加价需要 Claude Code v2.1.271 或更高版本。较早的版本忽略 `multiplier` 大于 1 的警告并保留设置的其余部分。

1179 1181 

1180有关步骤,包括如何确认费率有效,请参阅[按您的合同费率报告支出](/docs/zh-CN/costs#report-spend-at-your-contracted-rates)。1182有关步骤,包括如何确认费率有效,请参阅[以您的合同费率报告支出](/docs/zh-CN/costs#report-spend-at-your-contracted-rates)。

1181 1183 

1182<span id="modelpricing-multiplier" />1184<span id="modelpricing-multiplier" />

1183 1185 


1187 `modelPricing` 的字段1189 `modelPricing` 的字段

1188</h4>1190</h4>

1189 1191 

1190| 字段 | 类型 | 它做什么 |1192| Field | Type | What it does |

1191| :----------- | :-------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------ |1193| :----------- | :-------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------ |

1192| `multiplier` | 大于 0 且最多 10 的数字 | 缩放 Claude Code 计算的每个成本,无论 `overrides` 行是否覆盖它。低于 1 是折扣,高于 1 是加价 |1194| `multiplier` | 大于 0 且最多 10 的数字 | 缩放 Claude Code 计算的每个成本,无论 `overrides` 行是否覆盖它。低于 1 是折扣,高于 1 是加价 |

1193| `overrides` | 模型 ID 到具有 `input`、`output`、`cacheRead` 和 `cacheWrite` 的费率对象的映射,每个 0 到 10000 | 该模型的美元每百万令牌费率,全部四个必需。`cacheWrite` 涵盖五分钟和一小时缓存写入。请参阅[`modelPricing` 行适用于哪些模型](#which-models-a-modelpricing-row-applies-to) |1195| `overrides` | 模型 ID 到具有 `input`、`output`、`cacheRead` 和 `cacheWrite` 的费率对象的映射,每个 0 到 10000 | 该模型的美元每百万令牌费率,全部四个必需。`cacheWrite` 涵盖五分钟和一小时缓存写入。请参阅[`modelPricing` 行适用于哪些模型](#which-models-a-modelpricing-row-applies-to) |

1194 1196 

1195Claude Code 完全按照您写入的方式使用行的费率,不添加快速模式附加费或[仅限美国推理费率](https://platform.claude.com/docs/en/about-claude/pricing)。如果您也设置 `multiplier`,Claude Code 在行的费率之上应用它。Claude Code 删除具有它无法解析的费率或无法解析的 `multiplier` 的行,并保留其余的;请参阅[修复损坏的设置文件](/docs/zh-CN/settings#fix-a-broken-settings-file)。1197Claude Code 完全按照您写入的方式使用行的费率,不添加快速模式附加费或[仅限美国推理费率](https://platform.claude.com/docs/en/about-claude/pricing)。如果您也设置 `multiplier`,Claude Code 在行的费率之上应用它。Claude Code 删除具有它无法解析的费率或 `multiplier` 的行,并保留其余的;请参阅[修复损坏的设置文件](/docs/zh-CN/settings#fix-a-broken-settings-file)。

1196 1198 

1197<h4 id="which-models-a-modelpricing-row-applies-to">1199<h4 id="which-models-a-modelpricing-row-applies-to">

1198 `modelPricing` 行适用于哪些模型1200 `modelPricing` 行适用于哪些模型


1200 1202 

1201Claude Code 从行的键决定行适用于哪些模型:1203Claude Code 从行的键决定行适用于哪些模型:

1202 1204 

1203* **内置模型的 ID**: Claude Code 本身为内置模型使用的键,无论该键是模型自己的 ID,如 `claude-sonnet-4-6`,还是其 Bedrock、Agent Platform 或 Foundry ID。Claude Code 将行应用于该模型的每个日期快照 ID 和提供商特定 ID。1205* **内置模型的 ID**: Claude Code 本身为内置模型使用的键,无论该键是模型自己的 ID(如 `claude-sonnet-4-6`)还是其 Bedrock、Agent Platform 或 Foundry ID。Claude Code 将行应用于该模型的每个日期快照 ID 和提供商特定 ID。

1204* **任何其他键**: 不是内置模型 ID 的键,如网关模型别名。Claude Code 仅将行应用于该一个 ID。当模型 ID 完全匹配您的一个键,也落在由内置模型 ID 键入的行下时,Claude Code 使用精确匹配。1206* **任何其他键**: 不是内置模型 ID 的键,例如网关模型别名。Claude Code 仅将行应用于该一个 ID。当模型 ID 与您的一个键完全匹配,也属于由内置模型 ID 键入的行时,Claude Code 使用精确匹配。

1205* **Bedrock 应用推理配置文件**: 一旦 Claude Code 通过您的 [`modelOverrides`](#modeloverrides) 映射或 [`bedrock:GetInferenceProfile` 查找](/docs/zh-CN/amazon-bedrock#iam-configuration)将配置文件解析为它路由到的模型,Claude Code 将该模型的行应用于配置文件。1207* **Bedrock 应用推理配置文件**: 一旦 Claude Code 通过您的[`modelOverrides`](#modeloverrides)映射或[`bedrock:GetInferenceProfile` 查找](/docs/zh-CN/amazon-bedrock#iam-configuration)将配置文件解析为它路由到的模型,Claude Code 将该模型的行应用于配置文件。

1206 1208 

1207<h3 id="modelsettings">1209<h3 id="modelsettings">

1208 `modelSettings`1210 `modelSettings`

1209</h3>1211</h3>

1210 1212 

1211为您使用的每个模型保存[努力级别](/docs/zh-CN/model-config#adjust-effort-level)。在您的机器上的交互式会话中,当您用 `/effort` 或 `/model` 选择器的努力滑块将 `low`、`medium`、`high` 或 `xhigh` 保存为您的默认值时,Claude Code 在您使用的模型下将该级别写入此处,因此您很少手动编辑此键。[`effortLevel`](#effortlevel) 条目列出 `/effort` 仅适用于该会话的会话。需要 Claude Code v2.1.251 或更高版本。1213为您使用的每个模型保存[努力级别](/docs/zh-CN/model-config#adjust-effort-level)。需要 Claude Code v2.1.251 或更高版本。

1212 1214 

1213手动编辑键以更改或删除您保存的级别。1215在您的机器上的交互式会话中,当您使用 `/effort` 或 `/model` 选择器的努力滑块将 `low`、`medium`、`high` 或 `xhigh` 保存为您的默认值时,Claude Code 在您使用的模型下在此处写入该级别,因此您很少自己编辑此键。当您在[VS Code 扩展的模型选择器](/docs/zh-CN/vs-code#use-the-prompt-box)中选择这些级别之一时,Claude Code 以相同的方式在此处保存它。[`effortLevel`](#effortlevel)条目列出 `/effort` 仅适用于该会话的会话。

1214 1216 

1215此处模型的 `effortLevel` 优先于同一设置文件中的顶级 [`effortLevel`](#effortlevel)。跨文件,Claude Code 分别解析每个模型:最高优先级[设置文件](/docs/zh-CN/settings#settings-precedence)设置该模型的 `effortLevel` 或顶级 `effortLevel` 决定,因此托管设置中的 `effortLevel` 优先于您在用户设置中保存的级别。[调整努力级别](/docs/zh-CN/model-config#adjust-effort-level)列出还可以覆盖保存级别的内容,如启动时的 `--effort`。1217手动编辑该键以更改或删除您保存的级别。

1216 1218 

1217要限制一个模型的努力而不是设置其级别,将 [`maxEffortLevel`](#maxeffortlevel) 字段添加到该模型的条目。该字段需要 Claude Code v2.1.267 或更高版本。1219此处模型的 `effortLevel` 优先于同一设置文件中的顶级[`effortLevel`](#effortlevel)。跨文件,Claude Code 分别解析每个模型:最高优先级[设置文件](/docs/zh-CN/settings#settings-precedence),为该模型设置 `effortLevel` 或[适用于该模型](#effortlevel)的顶级 `effortLevel` 决定,因此托管设置中的 `effortLevel` 优先于您在用户设置中保存的级别。[调整努力级别](/docs/zh-CN/model-config#adjust-effort-level)列出还可以覆盖保存级别的内容,例如启动时的 `--effort`。

1218 1220 

1219* **范围**: [`任何文件`](#scopes)1221要限制一个模型的努力而不是设置其级别,请将[`maxEffortLevel`](#maxeffortlevel)字段添加到该模型的条目。该字段需要 Claude Code v2.1.267 或更高版本。

1220* **类型**: 将模型名称映射到具有 `effortLevel` 字段的对象,之一 `"low"`、`"medium"`、`"high"` 或 `"xhigh"`、[`maxEffortLevel`](#maxeffortlevel) 字段或两者

1221* **默认值**: 未设置

1222 1222 

1223Claude Code 在模型的规范名称下写入每个条目,如 `claude-opus-5`,并将该模型的别名、日期后缀、`[1m]` 和识别的提供商特定 ID 匹配到同一条目。1223* **Scope**: [`Any file`](#scopes)

1224* **Type**: 将模型名称映射到具有 `effortLevel` 字段的对象的对象,其中之一 `"low"`、`"medium"`、`"high"` 或 `"xhigh"`、[`maxEffortLevel`](#maxeffortlevel)字段或两者

1225* **Default**: 未设置

1224 1226 

1225此示例将 Opus 5 保持在 `medium`,而其他模型使用它们自己的保存或默认级别:1227Claude Code 在模型的规范名称下写入每个条目,例如 `claude-opus-5-5`,并将该模型的别名、日期后缀、`[1m]` 和识别的提供商特定 ID 匹配到同一条目。

1228 

1229此示例将 Opus 5.5 保持在 `high`,而其他模型使用它们自己的保存或默认级别:

1226 1230 

1227```json settings.json theme={null}1231```json settings.json theme={null}

1228{1232{

1229 "modelSettings": {1233 "modelSettings": {

1230 "claude-opus-5": {1234 "claude-opus-5-5": {

1231 "effortLevel": "medium"1235 "effortLevel": "high"

1232 }1236 }

1233 }1237 }

1234}1238}


1240 `outputStyle`1244 `outputStyle`

1241</h3>1245</h3>

1242 1246 

1243按名称选择[输出样式](/docs/zh-CN/output-styles)。输出样式是一组保存的指令,改变 Claude 的角色、语气和输出格式,如内置的 Explanatory 和 Learning 样式或您自己写的。1247按名称选择[输出样式](/docs/zh-CN/output-styles)。输出样式是一组保存的指令,改变 Claude 的角色、语气和输出格式,例如内置的 Explanatory 和 Learning 样式或您自己写的。

1244 1248 

1245如果您在会话期间更改此键,Claude 从您的下一条消息开始使用新样式。关于该消息在提示缓存中的成本,请参阅[更改输出样式](/docs/zh-CN/prompt-caching#changing-output-style)。在 v2.1.251 之前,编辑仅在您运行 `/clear` 或启动新会话后应用。1249如果您在会话期间更改此键,Claude 从您的下一条消息开始使用新样式。有关该消息在提示缓存中的成本,请参阅[更改输出样式](/docs/zh-CN/prompt-caching#changing-output-style)。在 v2.1.251 之前,编辑仅在您运行 `/clear` 或启动新会话后应用。

1246 1250 

1247* **范围**: [`任何文件`](#scopes)1251* **Scope**: [`Any file`](#scopes)

1248* **类型**: 字符串,[内置](/docs/zh-CN/output-styles#built-in-output-styles)或[自定义](/docs/zh-CN/output-styles#create-a-custom-output-style)输出样式的名称1252* **Type**: string,[内置](/docs/zh-CN/output-styles#built-in-output-styles)或[自定义](/docs/zh-CN/output-styles#create-a-custom-output-style)输出样式的名称

1249* **默认值**: 未设置,因此 Claude Code 使用默认样式1253* **Default**: 未设置,因此 Claude Code 使用默认样式

1250 1254 

1251此示例选择内置的 Explanatory 样式,它在任务之间添加教育见解:1255此示例选择内置的 Explanatory 样式,它在任务之间添加教育见解:

1252 1256 


1260 `promptCacheTtl`1264 `promptCacheTtl`

1261</h3>1265</h3>

1262 1266 

1263选择[提示缓存](/docs/zh-CN/prompt-caching)保留主对话的时间长度。此键适用于您的交互式、`-p` 和 Agent SDK 轮,以及 Claude Code 与它们内联运行的助手。一小时的生命周期在较长的中断中保持缓存温暖,API [在五分钟生命周期的更高费率下为每个缓存写入计费](https://platform.claude.com/docs/en/build-with-claude/prompt-caching#pricing)。需要 Claude Code v2.1.242 或更高版本。1267选择[提示缓存](/docs/zh-CN/prompt-caching)保持主对话的时间长度。此键适用于您的交互式、`-p` 和 Agent SDK 轮,以及 Claude Code 与它们内联运行的助手。一小时的生命周期在较长的中断中保持缓存温暖,API [以比五分钟生命周期更高的费率为每个缓存写入计费](https://platform.claude.com/docs/en/build-with-claude/prompt-caching#pricing)。需要 Claude Code v2.1.242 或更高版本。

1264 1268 

1265* **范围**: [`任何文件`](#scopes)1269* **Scope**: [`Any file`](#scopes)

1266* **类型**: 字符串,之一:1270* **Type**: string,其中之一:

1267 * `"5m"`: 缓存保留五分钟1271 * `"5m"`: 缓存保持五分钟

1268 * `"1h"`: 缓存保留一小时1272 * `"1h"`: 缓存保持一小时

1269* **默认值**: 未设置,因此每个主对话请求获得[其默认生命周期](/docs/zh-CN/prompt-caching#which-ttl-each-request-gets)1273* **Default**: 未设置,因此每个主对话请求获得[其默认生命周期](/docs/zh-CN/prompt-caching#which-ttl-each-request-gets)

1270* **每会话覆盖**: [`FORCE_PROMPT_CACHING_5M`](/docs/zh-CN/env-vars) 优先于所有其他,然后 [`CLAUDE_CODE_PROMPT_CACHE_TTL`](/docs/zh-CN/env-vars),然后此键,最后 [`ENABLE_PROMPT_CACHING_1H`](/docs/zh-CN/env-vars)1274* **Per-session overrides**: [`FORCE_PROMPT_CACHING_5M`](/docs/zh-CN/env-vars)优先于所有其他,然后[`CLAUDE_CODE_PROMPT_CACHE_TTL`](/docs/zh-CN/env-vars),然后此键,最后[`ENABLE_PROMPT_CACHING_1H`](/docs/zh-CN/env-vars)

1271 1275 

1272此示例将主对话保持在一小时生命周期,并将子代理保留在五分钟:1276此示例将主对话保持在一小时生命周期,并将 subagent 保留在五分钟:

1273 1277 

1274```json settings.json theme={null}1278```json settings.json theme={null}

1275{1279{


1278}1282}

1279```1283```

1280 1284 

1281关于每个生命周期的成本,请参阅[缓存生命周期](/docs/zh-CN/prompt-caching#cache-lifetime)。1285有关每个生命周期的成本,请参阅[缓存生命周期](/docs/zh-CN/prompt-caching#cache-lifetime)。

1282 1286 

1283<h3 id="showthinkingsummaries">1287<h3 id="showthinkingsummaries">

1284 `showThinkingSummaries`1288 `showThinkingSummaries`

1285</h3>1289</h3>

1286 1290 

1287在交互式会话中查看 Claude 的[扩展思考](/docs/zh-CN/model-config#extended-thinking)摘要。如果您想在用 `Ctrl+O` 展开思考时看到完整摘要,请设置它。未设置或 `false` 时,Anthropic API 编辑思考块,Claude Code 显示折叠的存根;第三方提供商不编辑。1291在交互式会话中查看 Claude 的[扩展思考](/docs/zh-CN/model-config#extended-thinking)摘要。如果您想在使用 `Ctrl+O` 展开思考时看到完整摘要,请设置它。未设置或 `false` 时,Anthropic API 编辑思考块,Claude Code 显示折叠的存根;第三方提供商不编辑。

1288 1292 

1289* **范围**: [`任何文件`](#scopes)1293* **Scope**: [`Any file`](#scopes)

1290* **类型**: 布尔值1294* **Type**: Boolean

1291 * `true`: 当您用 `Ctrl+O` 展开思考时,您看到完整的思考摘要1295 * `true`: 当您使用 `Ctrl+O` 展开思考时,您看到完整的思考摘要

1292 * `false`: Anthropic API 编辑思考块,Claude Code 显示折叠的存根1296 * `false`: Anthropic API 编辑思考块,Claude Code 显示折叠的存根

1293* **默认值**: `false`1297* **Default**: `false`

1294 1298 

1295```json settings.json theme={null}1299```json settings.json theme={null}

1296{1300{


1304 `subagentPromptCacheTtl`1308 `subagentPromptCacheTtl`

1305</h3>1309</h3>

1306 1310 

1307选择[提示缓存](/docs/zh-CN/prompt-caching)保留 Claude Code 在主对话外进行的请求的时间长度。此键适用于[子代理](/docs/zh-CN/sub-agents)、[工作流](/docs/zh-CN/workflows)和 Claude Code 自己的后台和助手请求,如压缩和会话标题。一小时的生命周期在较长的中断中保持缓存温暖,API [在五分钟生命周期的更高费率下为每个缓存写入计费](https://platform.claude.com/docs/en/build-with-claude/prompt-caching#pricing)。需要 Claude Code v2.1.242 或更高版本。1311选择[提示缓存](/docs/zh-CN/prompt-caching)保持 Claude Code 在主对话外进行的请求的时间长度。此键适用于[subagent](/docs/zh-CN/sub-agents)、[工作流](/docs/zh-CN/workflows)和 Claude Code 自己的后台和助手请求,例如压缩和会话标题。一小时的生命周期在较长的中断中保持缓存温暖,API [以比五分钟生命周期更高的费率为每个缓存写入计费](https://platform.claude.com/docs/en/build-with-claude/prompt-caching#pricing)。需要 Claude Code v2.1.242 或更高版本。

1308 1312 

1309* **范围**: [`任何文件`](#scopes)1313* **Scope**: [`Any file`](#scopes)

1310* **类型**: 字符串,之一:1314* **Type**: string,其中之一:

1311 * `"5m"`: 缓存保留五分钟1315 * `"5m"`: 缓存保持五分钟

1312 * `"1h"`: 缓存保留一小时1316 * `"1h"`: 缓存保持一小时

1313* **默认值**: 未设置,因此这些请求中的每一个都获得[其默认生命周期](/docs/zh-CN/prompt-caching#which-ttl-each-request-gets)1317* **Default**: 未设置,因此这些请求中的每一个都获得[其默认生命周期](/docs/zh-CN/prompt-caching#which-ttl-each-request-gets)

1314* **每会话覆盖**: [`FORCE_PROMPT_CACHING_5M`](/docs/zh-CN/env-vars) 优先于所有其他,然后 [`CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL`](/docs/zh-CN/env-vars),然后此键,然后 [`ENABLE_PROMPT_CACHING_1H`](/docs/zh-CN/env-vars),它要求每个请求的一小时生命周期。关于子代理自己的 frontmatter 值的排名,请参阅[自己选择 TTL](/docs/zh-CN/prompt-caching#choose-the-ttl-yourself)1318* **Per-session overrides**: [`FORCE_PROMPT_CACHING_5M`](/docs/zh-CN/env-vars)优先于所有其他,然后[`CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL`](/docs/zh-CN/env-vars),然后此键,然后[`ENABLE_PROMPT_CACHING_1H`](/docs/zh-CN/env-vars),它要求每个请求的一小时生命周期。有关 subagent 自己的 frontmatter 值的排名,请参阅[自己选择 TTL](/docs/zh-CN/prompt-caching#choose-the-ttl-yourself)

1315 1319 

1316此示例为子代理和主对话外的其他请求提供一小时生命周期:1320此示例为 subagent 和主对话外的其他请求提供一小时生命周期:

1317 1321 

1318```json settings.json theme={null}1322```json settings.json theme={null}

1319{1323{


1321}1325}

1322```1326```

1323 1327 

1324此键涵盖 [`promptCacheTtl`](#promptcachettl) 不涵盖的请求,因此设置两者以为 Claude Code 进行的每个请求选择生命周期。关于子代理的缓存与主对话的缓存的不同之处,请参阅[子代理和缓存](/docs/zh-CN/prompt-caching#subagents-and-the-cache)。1328此键涵盖[`promptCacheTtl`](#promptcachettl)不涵盖的请求,因此设置两者以为 Claude Code 进行的每个请求选择生命周期。有关 subagent 的缓存与主对话的缓存的不同之处,请参阅[Subagent 和缓存](/docs/zh-CN/prompt-caching#subagents-and-the-cache)。

1325 1329 

1326<h3 id="switchmodelsonflag">1330<h3 id="switchmodelsonflag">

1327 `switchModelsOnFlag`1331 `switchModelsOnFlag`


1329 1333 

1330选择当[安全分类器标记请求](/docs/zh-CN/model-config#automatic-model-fallback)时会发生什么:切换到备用模型并继续,或暂停以便您可以在切换和编辑提示之间选择。1334选择当[安全分类器标记请求](/docs/zh-CN/model-config#automatic-model-fallback)时会发生什么:切换到备用模型并继续,或暂停以便您可以在切换和编辑提示之间选择。

1331 1335 

1332* **范围**: [`任何文件`](#scopes)。在 `/config` 中显示为**标记消息时切换模型**。1336* **Scope**: [`Any file`](#scopes)。在 `/config` 中显示为**消息被标记时切换模型**。

1333* **类型**: 布尔值1337* **Type**: Boolean

1334 * `true`: Claude Code 切换到备用模型并继续1338 * `true`: Claude Code 切换到备用模型并继续

1335 * `false`: 在交互式会话中,Claude Code 暂停以便您可以在切换和编辑提示之间选择;在无法显示对话的地方,如 `-p` 运行,标记的请求以错误结束1339 * `false`: 在交互式会话中,Claude Code 暂停以便您可以在切换和编辑提示之间选择;在无法显示对话的地方,例如 `-p` 运行,标记的请求以错误结束

1336* **默认值**: `true`,自动切换1340* **Default**: `true`,自动切换

1337 1341 

1338```json settings.json theme={null}1342```json settings.json theme={null}

1339{1343{


1347 `ultracode`1351 `ultracode`

1348</h3>1352</h3>

1349 1353 

1350为[ultracode](/docs/zh-CN/workflows#let-claude-decide-with-ultracode)可用的会话启动它。打开时,Claude 为每个实质性任务规划工作流,而不是等待您要求。Claude 仅在[动态工作流](/docs/zh-CN/workflows)为您启用、您的模型支持 `xhigh` 努力且没有[努力上限](/docs/zh-CN/model-config#organization-effort-limits)低于 `xhigh` 时规划工作流。无论如何,`ultracode: true` 在 `xhigh` 努力或当努力上限更低时在上限处运行会话。Claude Code 读取此键但从不写入它:`/effort ultracode` 仅为当前会话打开 ultracode。1354使用[ultracode](/docs/zh-CN/workflows#let-claude-decide-with-ultracode)启动会话。启用它后,Claude 为每个实质性任务规划工作流,而不是等待您要求。Claude 仅在为您启用[动态工作流](/docs/zh-CN/workflows)、您的模型支持 `xhigh` 努力且没有[努力上限](/docs/zh-CN/model-config#organization-effort-limits)低于 `xhigh` 时规划工作流。无论如何,`ultracode: true` 在 `xhigh` 努力或当努力上限较低时在上限处运行会话。Claude Code 读取此键但从不写入它:`/effort ultracode` 仅为当前会话打开 ultracode。

1351 1355 

1352* **范围**: [`任何文件`](#scopes)1356* **Scope**: [`Any file`](#scopes)

1353* **类型**: 布尔值1357* **Type**: Boolean

1354 * `true`: 会话以 `xhigh` 努力启动,当动态工作流为您启用、您的模型支持 `xhigh` 且没有努力上限低于 `xhigh` 时,ultracode 打开1358 * `true`: 会话以 `xhigh` 努力启动,当为您启用动态工作流、您的模型支持 `xhigh` 且没有努力上限低于 `xhigh` 时,ultracode 打开

1355 * `false`: 会话以 ultracode 关闭启动1359 * `false`: 会话以 ultracode 关闭启动

1356* **默认值**: 未设置,因此 ultracode 已关闭1360* **Default**: 未设置,因此 ultracode 已关闭

1357* **每会话覆盖**: `/effort ultracode` 为一个会话打开 ultracode,不需要此键。`--effort ultracode` 也是,需要 Claude Code v2.1.203 或更高版本1361* **Per-session overrides**: `/effort ultracode` 在没有此键的情况下为一个会话打开 ultracode。`--effort ultracode` 标志也为一个会话打开它,需要 Claude Code v2.1.203 或更高版本

1358 1362 

1359```json settings.json theme={null}1363```json settings.json theme={null}

1360{1364{


1362}1366}

1363```1367```

1364 1368 

1365Ultracode 在 `xhigh` 努力处运行会话,优先于 `effortLevel` 和 [`modelSettings`](#modelsettings) 条目。如果[努力上限](/docs/zh-CN/model-config#organization-effort-limits)低于 `xhigh` 适用于模型,如 [`maxEffortLevel`](#maxeffortlevel) 设置,会话在上限处运行,ultracode 保持关闭。Claude 然后不自己规划工作流,`/effort` 不提供 `ultracode`。Agent SDK `apply_flag_settings` 控制请求也接受该键。1369Ultracode 在 `xhigh` 努力处运行会话,优先于 `effortLevel` 和[`modelSettings`](#modelsettings)条目。如果[努力上限](/docs/zh-CN/model-config#organization-effort-limits)低于 `xhigh` 适用于模型,例如[`maxEffortLevel`](#maxeffortlevel)设置,会话改为在上限处运行,ultracode 保持关闭。Claude 然后不会自己规划工作流,`/effort` 不提供 `ultracode`。Agent SDK `apply_flag_settings` 控制请求也接受该键。

1366 1370 

1367<h2 id="permission-settings">1371<h2 id="permission-settings">

1368 权限设置1372 权限设置


1837 `sandbox.excludedCommands`1841 `sandbox.excludedCommands`

1838</h3>1842</h3>

1839 1843 

1840命名 Claude Code 始终在沙箱外运行的命令,例如在沙箱下不工作的工具。每个条目使用与 `Bash(...)` [permission rule](/docs/zh-CN/permissions#permission-rule-syntax) 内容相同的语法:精确命令、前缀(如 `docker *` )或通配符模式。当复合命令的任何部分与条目匹配时,Claude Code 运行整个命令而不进行沙箱处理。1844命名 Claude Code 在沙箱外运行的命令,例如在沙箱下不工作的工具。每个条目使用与 `Bash(...)` [permission rule](/docs/zh-CN/permissions#permission-rule-syntax) 内容相同的语法:精确命令、前缀(如 `docker *` )或通配符模式。

1845 

1846您的条目仅当它们覆盖复合命令中的每个命令时才将 Bash 调用从沙箱中取出,某些调用形式即使这样也保持沙箱化。单独的 `docker *` 条目不会将 `npm ci && docker build .` 从沙箱中取出。

1841 1847 

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

1843* **Type**: 命令模式数组1849* **Type**: 命令模式数组


1851}1857}

1852```1858```

1853 1859 

1860Claude Code 在具有以下形式之一时保持 Bash 调用沙箱化,以及其他形式:

1861 

1862* 以 `sudo`、`eval` 或 `xargs` 开头的命令

1863* `cd`、`pushd` 或 `popd`,无论它在调用中的任何位置出现

1864* 命令替换、子 shell 或控制流块,例如 `if` 或 `for`

1865* 重定向,例如 `docker build . > build.log`,除了仅复制文件描述符的重定向,如 `2>&1` 所做的

1866* 来自变量的命令名称

1867 

1868例如,`cd build && docker compose up` 在 `docker *` 条目下保持沙箱化,添加 `cd` 条目不会改变这一点。

1869 

1854排除的命令仍会通过常规权限流程。排除是一种便利,而不是安全边界:当工具只需要在特定位置写入时,优先使用 [`filesystem.allowWrite`](#sandbox-filesystem-allowwrite)。Claude Code 在会话加载的每个设置范围中合并条目,此列表没有仅限托管的锁,因此保持托管列表狭窄。1870排除的命令仍会通过常规权限流程。排除是一种便利,而不是安全边界:当工具只需要在特定位置写入时,优先使用 [`filesystem.allowWrite`](#sandbox-filesystem-allowwrite)。Claude Code 在会话加载的每个设置范围中合并条目,此列表没有仅限托管的锁,因此保持托管列表狭窄。

1855 1871 

1856<h3 id="sandbox-allowunsandboxedcommands">1872<h3 id="sandbox-allowunsandboxedcommands">


1903}1919}

1904```1920```

1905 1921 

1906Claude Code 在操作系统沙箱边界强制执行这些列表,因此它们适用于沙箱化命令启动的每个子进程,例如 `kubectl`、`terraform` 或 `npm`,而不仅仅是 Claude 的文件工具。Claude Code 将您的 [permission rules](/docs/zh-CN/sandboxing#permission-rules) 添加到相同的列表:`Edit` 允许和拒绝规则到 `allowWrite` 和 `denyWrite`,`Read` 拒绝规则到 `denyRead`,以及 `WebFetch(domain:...)` 允许和拒绝规则到 [`network`](#sandbox-network) 域列表。1922Claude Code 在操作系统沙箱边界强制执行这些列表,因此它们适用于沙箱化命令启动的每个子进程,例如 `kubectl`、`terraform` 或 `npm`。Claude Code 将您的 [permission rules](/docs/zh-CN/sandboxing#permission-rules) 添加到相同的列表:`Edit` 允许和拒绝规则到 `allowWrite` 和 `denyWrite`,`Read` 拒绝规则到 `denyRead`,以及 `WebFetch(domain:...)` 允许和拒绝规则到 [`network`](#sandbox-network) 域列表。

1907 1923 

1908除非设置了仅限托管的锁,否则 Claude Code 在会话加载的设置文件中合并每个列表。[`allowManagedReadPathsOnly`](#sandbox-filesystem-allowmanagedreadpathsonly) 将 `allowRead` 限制为托管设置中的条目,[`allowManagedDomainsOnly`](#sandbox-network-allowmanageddomainsonly) 对允许的域执行相同操作。1924除非设置了仅限托管的锁,否则 Claude Code 在会话加载的设置文件中合并每个列表。[`allowManagedReadPathsOnly`](#sandbox-filesystem-allowmanagedreadpathsonly) 将 `allowRead` 限制为托管设置中的条目,[`allowManagedDomainsOnly`](#sandbox-network-allowmanageddomainsonly) 对允许的域执行相同操作。

1909 1925 


3064 `taskOutputMaxChars`3080 `taskOutputMaxChars`

3065</h3>3081</h3>

3066 3082 

3067设置[后台任务](/docs/zh-CN/tools-reference#background-commands)的输出字符数,当 Claude 使用 `TaskOutput` 工具读取任务时 Claude 内联接收。当完成的任务的输出更长时,Claude 接收最近的字符。当您的后台任务经常产生比默认值更多的输出时,提高限制。需要 Claude Code v2.1.261 或更高版本。3083<Warning>

3068 3084 在 v2.1.277 中删除,连同它调整大小的 `TaskOutput` 工具一起。设置它对当前版本没有影响。Claude 使用 `Read` 读取后台任务的[输出文件](/docs/zh-CN/tools-reference#background-commands)。

3069* **Scope**: [`Any file`](#scopes)3085</Warning>

3070* **Type**: 字符数,正整数。Claude Code 将值限制在 `4000` 到 `128000` 范围内

3071* **Default**: 未设置,因此 Claude 内联接收最多 32,000 个字符

3072 

3073```json settings.json theme={null}

3074{

3075 "taskOutputMaxChars": 100000

3076}

3077```

3078 3086 

3079设置此键时,Claude Code 忽略 [`TASK_MAX_OUTPUT_LENGTH`](/docs/zh-CN/env-vars) 环境变量。3087通过 v2.1.276,您将此键设置为[后台任务](/docs/zh-CN/tools-reference#background-commands)的输出字符数,当 Claude 使用 `TaskOutput` 工具读取任务时 Claude 内联接收。

3080 3088 

3081<h2 id="interface-and-terminal">3089<h2 id="interface-and-terminal">

3082 界面和终端3090 界面和终端


3992 4000 

3993要隐藏所有归属,请将 [`commit`](#attribution-commit) 和 [`pr`](#attribution-pr) 设置为空字符串,并将 [`sessionUrl`](#attribution-sessionurl) 设置为 `false`。一旦设置 `commit` 或 `pr`,Claude Code 将忽略已弃用的 `includeCoAuthoredBy` 设置,并对未设置的两个中的任何一个使用其默认文本。4001要隐藏所有归属,请将 [`commit`](#attribution-commit) 和 [`pr`](#attribution-pr) 设置为空字符串,并将 [`sessionUrl`](#attribution-sessionurl) 设置为 `false`。一旦设置 `commit` 或 `pr`,Claude Code 将忽略已弃用的 `includeCoAuthoredBy` 设置,并对未设置的两个中的任何一个使用其默认文本。

3994 4002 

4003Claude Code 告诉 Claude,您自己关于归属的说明(例如 CLAUDE.md 或 [memory](/docs/zh-CN/memory) 规则)优先于这些提交和 PR 行,除非该行在 [managed settings](/docs/zh-CN/managed-settings) 中设置。

4004 

3995<h3 id="includecoauthoredby">4005<h3 id="includecoauthoredby">

3996 `includeCoAuthoredBy`4006 `includeCoAuthoredBy`

3997</h3>4007</h3>


4020 `includeGitInstructions`4030 `includeGitInstructions`

4021</h3>4031</h3>

4022 4032 

4023在会话开始时,Claude Code 向 Claude 的提示添加两个与 git 相关的部分:其内置的关于如何编写提交和拉取请求的说明(在 Bash 工具的描述中),以及您的存储库的 git 状态快照(在系统提示中),意味着当前分支、主分支、`git status` 输出和最近的提交。将此键设置为 `false` 以将两者都排除,例如当您使用自己的 git 工作流技能时。4033Claude Code 向 Claude 提供两个与 git 相关的上下文片段:其内置的关于如何编写提交和拉取请求的说明(在 Bash 工具的描述中),以及您的存储库的 git 状态快照。快照包含当前分支、主分支、`git status` 输出和最近的提交。Claude Code 在会话开始时读取它。

4034 

4035将此键设置为 `false` 以将两者都排除,例如当您使用自己的 git 工作流技能时。

4024 4036 

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

4026* **Type**: 布尔值4038* **Type**: 布尔值


4039 `prUrlTemplate`4051 `prUrlTemplate`

4040</h3>4052</h3>

4041 4053 

4042将 Claude Code 呈现的 PR 链接(在页脚徽章和工具结果摘要中)指向内部代码审查工具而不是 `github.com`。Claude Code 从 PR URL 替换 `{host}`、`{owner}`、`{repo}`、`{number}` 和 `{url}`。[GitLab 合并请求](/docs/zh-CN/interactive-mode#gitlab-merge-requests)两个表面上的链接保持其 GitLab URL。4054将 Claude Code 呈现的 PR 链接(在页脚徽章和工具结果摘要中)指向内部代码审查工具而不是 `github.com`。Claude Code 从 PR URL 替换 `{host}`、`{owner}`、`{repo}`、`{number}` 和 `{url}`。[GitLab 合并请求](/docs/zh-CN/interactive-mode#gitlab-merge-requests) 两个表面上的链接保持其 GitLab URL。

4043 4055 

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

4045* **Type**: 字符串,使用五个占位符中任何一个的 URL 模板4057* **Type**: 字符串,使用五个占位符中任何一个的 URL 模板


4625| `github` | `{ "source": "github", "repo": "acme-corp/plugins", "ref": "main", "path": "marketplace" }` | `repo` 必需;`ref` 是分支或标签;`path` 是子目录 |4637| `github` | `{ "source": "github", "repo": "acme-corp/plugins", "ref": "main", "path": "marketplace" }` | `repo` 必需;`ref` 是分支或标签;`path` 是子目录 |

4626| `git` | `{ "source": "git", "url": "https://gitlab.example.com/tools/plugins.git", "ref": "production" }` | `url` 必需;`ref` 和 `path` 与 `github` 相同 |4638| `git` | `{ "source": "git", "url": "https://gitlab.example.com/tools/plugins.git", "ref": "production" }` | `url` 必需;`ref` 和 `path` 与 `github` 相同 |

4627| `url` | `{ "source": "url", "url": "https://plugins.example.com/marketplace.json", "headers": { "Authorization": "Bearer ${TOKEN}" } }` | `url` 必需;`headers` 为经过身份验证的访问添加 HTTP 标头 |4639| `url` | `{ "source": "url", "url": "https://plugins.example.com/marketplace.json", "headers": { "Authorization": "Bearer ${TOKEN}" } }` | `url` 必需;`headers` 为经过身份验证的访问添加 HTTP 标头 |

4628| `npm` | `{ "source": "npm", "package": "@acme-corp/claude-plugins" }` | `package` 必需,包含 `marketplace.json` 的 npm 包 |

4629| `file` | `{ "source": "file", "path": "/opt/acme-corp/plugins/marketplace.json" }` | `path` 必需,`marketplace.json` 文件的绝对路径 |4640| `file` | `{ "source": "file", "path": "/opt/acme-corp/plugins/marketplace.json" }` | `path` 必需,`marketplace.json` 文件的绝对路径 |

4630| `directory` | `{ "source": "directory", "path": "/opt/acme-corp/approved-marketplaces" }` | `path` 必需,包含 `.claude-plugin/marketplace.json` 的目录的绝对路径 |4641| `directory` | `{ "source": "directory", "path": "/opt/acme-corp/approved-marketplaces" }` | `path` 必需,包含 `.claude-plugin/marketplace.json` 的目录的绝对路径 |

4631| `hostPattern` | `{ "source": "hostPattern", "hostPattern": "^github\\.example\\.com$" }` | `hostPattern` 必需,针对市场主机匹配的正则表达式 |4642| `hostPattern` | `{ "source": "hostPattern", "hostPattern": "^github\\.example\\.com$" }` | `hostPattern` 必需,针对市场主机匹配的正则表达式 |


5938防止背景自动更新和 `claude update` 安装低于此版本的任何版本,因此移动到 `"stable"` 渠道不会从较新的 `"latest"` 构建中降级您。当您在 `/config` 中选择在切换渠道时保持当前版本时,Claude Code 会为您写入此键,当您切换回 `"latest"` 时会清除它。5949防止背景自动更新和 `claude update` 安装低于此版本的任何版本,因此移动到 `"stable"` 渠道不会从较新的 `"latest"` 构建中降级您。当您在 `/config` 中选择在切换渠道时保持当前版本时,Claude Code 会为您写入此键,当您切换回 `"latest"` 时会清除它。

5939 5950 

5940* **Scope**: [`Any file`](#scopes)。在托管设置中设置以固定组织范围的最小值,用户和项目设置无法降低。5951* **Scope**: [`Any file`](#scopes)。在托管设置中设置以固定组织范围的最小值,用户和项目设置无法降低。

5941* **Type**: string,版本号,例如 `"2.1.100"`5952* **Type**: string,版本号,例如 `"2.1.100"`;不是有效版本的值会被忽略

5942* **Default**: 未设置,所以更新可以安装渠道提供的任何版本5953* **Default**: 未设置,所以更新可以安装渠道提供的任何版本

5943 5954 

5944此示例遵循稳定渠道,并拒绝安装低于 2.1.100 的任何版本:5955此示例遵循稳定渠道,并拒绝安装低于 2.1.100 的任何版本:

skills.md +89 −85

Details

117</Steps>117</Steps>

118 118 

119<h2 id="where-skills-live">119<h2 id="where-skills-live">

120 选择技能加载的位置120 选择 skills 的加载位置

121</h2>121</h2>

122 122 

123技能的保存位置决定了哪些会话会加载它。将其保存在主目录下可以在每个项目中使用,将其提交到存储库可以与在那里工作的每个人共享,或通过插件或托管设置分发以覆盖整个团队。123保存 skill 的位置决定了哪些会话会加载它。将其保存在主目录下可以在每个项目中使用,将其提交到存储库可以与在那里工作的所有人共享,或通过 plugin 或托管设置分发以覆盖整个团队。

124 124 

125| 位置 | 路径 | 加载位置 |125| 位置 | 路径 | 加载位置 |

126| :------------------- | :--------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------ |126| :------------------- | :----------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------ |

127| Enterprise | `.claude/skills/<skill-name>/SKILL.md` 在 [托管设置目录](/docs/zh-CN/managed-settings#delivery-mechanisms) | 您的组织部署它的机器上的所有用户 |127| Enterprise | `.claude/skills/<skill-name>/SKILL.md` 在 [托管设置目录](/docs/zh-CN/managed-settings#delivery-mechanisms) 中 | 您的组织部署它的所有机器上的所有用户 |

128| Personal | `~/.claude/skills/<skill-name>/SKILL.md` | 此机器上的所有项目,但不包括 [Cowork 或云会话](#skills-in-cowork-and-cloud-sessions) |128| Personal | `~/.claude/skills/<skill-name>/SKILL.md` | 此机器上的所有项目,但不包括 [Cowork 或云会话](#skills-in-cowork-and-cloud-sessions) |

129| Project | `.claude/skills/<skill-name>/SKILL.md` | 此存储库中的会话。提交它以便您的团队也能获得它 |129| Project | `.claude/skills/<skill-name>/SKILL.md` | 此存储库中的会话。提交它以便您的团队也能获得它 |

130| Nested | `<subdir>/.claude/skills/<skill-name>/SKILL.md` | 在 `<subdir>` 中或下方启动的会话。在其上方启动的会话在 Claude 处理那里的文件时加载技能。请参阅 [monorepos 和子目录](#discovery-from-parent-and-nested-directories) |130| Nested | `<subdir>/.claude/skills/<skill-name>/SKILL.md` | 在 `<subdir>` 中或其下方启动的会话。在其上方启动的会话在 Claude 处理那里的文件时加载该 skill。请参阅 [monorepos 和子目录](#discovery-from-parent-and-nested-directories) |

131| Additional directory | `.claude/skills/<skill-name>/SKILL.md` 在您使用 `--add-dir` 传递的目录中 | 该会话。请参阅 [项目外的目录](#skills-from-additional-directories) |131| Additional directory | `.claude/skills/<skill-name>/SKILL.md` 在您使用 `--add-dir` 传递的目录中 | 该会话。请参阅 [项目外的目录](#skills-from-additional-directories) |

132| Plugin | `<plugin>/skills/<skill-name>/SKILL.md` | 启用 [插件](/docs/zh-CN/plugins) 的任何地方,作为 `/plugin-name:skill-name` |132| Plugin | `<plugin>/skills/<skill-name>/SKILL.md` | 启用 [plugin](/docs/zh-CN/plugins) 的任何地方,作为 `/plugin-name:skill-name` |

133| claude.ai account | 为您的 claude.ai 账户启用的技能 | Cowork 会话、云会话和您使用该账户登录的终端会话。请参阅 [从 claude.ai 同步的技能](#how-synced-skills-behave) |133| claude.ai account | 为您的 claude.ai 账户启用的 Skills | Cowork 会话、云会话和您使用该账户登录的终端会话。请参阅 [从 claude.ai 同步的 Skills](#how-synced-skills-behave) |

134 134 

135技能文件夹还遵循以下规则:135Skill 文件夹还遵循以下规则:

136 136 

137* **符号链接文件夹**:企业、个人或项目位置中的 `<skill-name>` 条目可以是指向磁盘上其他位置的目录的符号链接。Claude Code 从目标读取 `SKILL.md` 并加载技能一次,即使多个位置指向同一目标。插件技能 [以不同方式处理符号链接](/docs/zh-CN/plugins-reference#share-files-within-a-marketplace-with-symlinks)。137* **符号链接文件夹**:enterprise、personal 或 project 位置中的 `<skill-name>` 条目可以是指向磁盘上其他位置的目录的符号链接。Claude Code 从目标读取 `SKILL.md` 并加载 skill,即使多个位置指向同一目标也只加载一次。Plugin skills [以不同方式处理符号链接](/docs/zh-CN/plugins-reference#share-files-within-a-marketplace-with-symlinks)。

138* **保留名称**:不要将技能文件夹命名为 `synced`,无论大小写如何。Claude Code 使用 `~/.claude/skills/synced/` 来存放 [从 claude.ai 下载的技能](#where-synced-skills-load),并跳过您在企业、个人和项目位置中以该名称创作的技能。138* **保留名称**:不要将 skill 文件夹命名为 `synced`,无论大小写如何。Claude Code 使用 `~/.claude/skills/synced/` 来存放 [从 claude.ai 下载的 skills](#where-synced-skills-load),并跳过您在 enterprise、personal 和 project 位置中以该名称创建的 skill。

139* **命令文件**:`.claude/commands/` 中的 Markdown 文件是较旧的格式,仍然有效。它支持相同的 [frontmatter](#frontmatter-reference),除了 `name` 和 `paths`。要找到您输入以调用它的名称,请参阅 [技能如何获得其命令名称](#how-a-skill-gets-its-command-name)。对于新工作,更倾向于使用技能,因为技能还支持 [支持文件](#add-supporting-files)。139* **命令文件**:`.claude/commands/` 中的 Markdown 文件是较旧的格式,仍然有效。它支持相同的 [frontmatter](#frontmatter-reference),除了 `name` 和 `paths`。要找到您输入以调用它的名称,请参阅 [Skill 如何获得其命令名称](#how-a-skill-gets-its-command-name)。对于新工作,更倾向于使用 skill,因为 skills 还支持 [支持文件](#add-supporting-files)。

140* **技能文件夹作为插件**:将 `.claude-plugin/plugin.json` 添加到技能文件夹,它将作为 [插件](/docs/zh-CN/plugins-reference#skills-directory-plugins) 加载,名称为 `<name>@skills-dir`,因此它可以捆绑代理、hooks 和 MCP 服务器。在项目的 `.claude/skills/` 中,这需要首先接受工作区信任对话框。140* **Skill 文件夹作为 plugin**:将 `.claude-plugin/plugin.json` 添加到 skill 文件夹,它将作为 [plugin](/docs/zh-CN/plugins-reference#skills-directory-plugins) 加载,名称为 `<name>@skills-dir`,因此它可以捆绑 agents、hooks 和 MCP 服务器。在项目的 `.claude/skills/` 中,这需要首先接受工作区信任对话框。

141 141 

142<h3 id="discovery-from-parent-and-nested-directories">142<h3 id="discovery-from-parent-and-nested-directories">

143 在 monorepos 和子目录中加载技能143 在 monorepos 和子目录中加载 skills

144</h3>144</h3>

145 145 

146Claude Code 从启动它的目录中的 `.claude/skills/` 以及直到存储库根目录的每个父目录中加载项目技能,因此在 `packages/frontend/` 中启动仍然会获取在根目录中定义的技能。当您在 v2.1.246 或更高版本上 [使用 `/cd` 移动会话](/docs/zh-CN/permissions#move-the-session-to-another-directory) 时,Claude Code 会添加新目录的项目技能。146Claude Code 从启动它的目录中的 `.claude/skills/` 以及直到存储库根目录的每个父目录中加载项目 skills,因此在 `packages/frontend/` 中启动仍然会获取在根目录中定义的 skills。当您在 v2.1.246 或更高版本上 [使用 `/cd` 移动会话](/docs/zh-CN/permissions#move-the-session-to-another-directory) 时,Claude Code 会添加新目录的项目 skills。

147 147 

148`.claude/skills/` 目录中启动位置下方的技能在启动时不会加载。它们在 Claude 首次读取或编辑该子目录中的文件时加载,并在会话的其余部分保持可用。在此之前,它们不会出现在 `/` 菜单中,您也无法按名称调用它们。要更早加载它们,请使用子目录的路径运行 `/add-dir`,这需要 Claude Code v2.1.257 或更高版本。148在链接的 [git worktree](/docs/zh-CN/worktrees) 中运行的会话中,Claude Code 仅在 worktree 根目录之前搜索父目录。在 Claude Code v2.1.277 或更高版本上,当 worktree 检出在其根目录处没有 `.claude/skills` 目录时,Claude Code 会改为加载主检出的项目 skills。请参阅 [Worktrees 与主检出共享的内容](/docs/zh-CN/worktrees#what-worktrees-share-with-the-main-checkout)。

149 149 

150当嵌套技能与另一个技能共享名称时,两者都保持可用。在存储库根目录和 `apps/web/.claude/skills/` 中都有一个 `deploy` 技能:150`.claude/skills/` 目录中启动位置下方的 Skills 在启动时不会加载。它们在 Claude 首次读取或编辑该子目录中的文件时加载,并在会话的其余时间保持可用。在此之前,它们不会出现在 `/` 菜单中,您也无法按名称调用它们。要更早加载它们,请使用子目录的路径运行 `/add-dir`,这需要 Claude Code v2.1.257 或更高版本。

151 151 

152* `/deploy` 运行根技能。Claude Code 还为 Claude 列出目录限定的变体,并带有说明以调用其目录包含它正在处理的文件的变体,因此嵌套技能仍然适用于 `apps/web/` 中的工作。152当嵌套 skill 与另一个 skill 共享名称时,两者都保持可用。在存储库根目录和 `apps/web/.claude/skills/` 中都有一个 `deploy` skill 的情况下:

153* `/apps/web:deploy` 单独运行嵌套技能。其描述命名了它适用的目录。153 

154* `/deploy` 运行根 skill。Claude Code 还为 Claude 列出目录限定的变体,并提供说明以调用其目录包含它正在处理的文件的那个,因此嵌套 skill 仍然适用于 `apps/web/` 中的工作。

155* `/apps/web:deploy` 单独运行嵌套 skill。其描述命名了它适用的目录。

154 156 

155<h3 id="skills-from-additional-directories">157<h3 id="skills-from-additional-directories">

156 从项目外的目录加载技能158 从项目外的目录加载 skills

157</h3>159</h3>

158 160 

159当您使用 `--add-dir` 或 `/add-dir` 添加目录时,Claude Code 会加载该目录的 `.claude/skills/` 中的技能,以及其 `.claude/commands/` 和 `.claude/agents/`。Agent SDK 通过 TypeScript 中的 [`additionalDirectories`](/docs/zh-CN/agent-sdk/typescript#options) 或 Python 中的 [`add_dirs`](/docs/zh-CN/agent-sdk/python#claudeagentoptions) 添加的目录以相同方式加载,因为 SDK 将它们作为 `--add-dir` 传递。`settings.json` 中的 `permissions.additionalDirectories` 设置仅授予文件访问权限,不加载这些中的任何一个。161当您使用 `--add-dir` 或 `/add-dir` 添加目录时,Claude Code 会加载该目录的 `.claude/skills/` 中的 skills,以及其 `.claude/commands/` 和 `.claude/agents/`。Agent SDK 通过 TypeScript 中的 [`additionalDirectories`](/docs/zh-CN/agent-sdk/typescript#options) 或 Python 中的 [`add_dirs`](/docs/zh-CN/agent-sdk/python#claudeagentoptions) 添加的目录以相同方式加载,因为 SDK 将它们作为 `--add-dir` 传递。`settings.json` 中的 `permissions.additionalDirectories` 设置仅授予文件访问权限,不加载这些中的任何一个。

160 162 

161Claude Code 在启动时使用 `--add-dir` 传递的目录中的 `.claude/skills/` 进行监视,如 [在会话期间编辑技能](#live-change-detection) 所述。它不监视添加目录的 `.claude/commands/` 或 `.claude/agents/`,因此在更改那里的文件后重新启动会话。163Claude Code 监视您在启动时使用 `--add-dir` 传递的目录中的 `.claude/skills/`,如 [在会话期间编辑 skill](#live-change-detection) 所述。它不监视添加目录的 `.claude/commands/` 或 `.claude/agents/`,因此在更改那里的文件后重新启动会话。

162 164 

163这些加载取决于 `project` [设置源](/docs/zh-CN/agent-sdk/claude-code-features#control-filesystem-settings-with-settingsources),默认情况下处于启用状态。[`strictPluginOnlyCustomization`](/docs/zh-CN/settings-reference#strictpluginonlycustomization) 策略、[bare mode](/docs/zh-CN/headless#start-faster-with-bare-mode) 和 [`--safe-mode`](/docs/zh-CN/cli-reference#cli-flags) 各自进一步限制它们,如这些页面所述。请参阅 [其他目录授予文件访问权限,而不是配置](/docs/zh-CN/permissions#additional-directories-grant-file-access-not-configuration) 了解添加目录加载的完整表格,包括 `CLAUDE.md` 和插件设置。165这些加载取决于 `project` [设置源](/docs/zh-CN/agent-sdk/claude-code-features#control-filesystem-settings-with-settingsources),默认情况下处于启用状态。[`strictPluginOnlyCustomization`](/docs/zh-CN/settings-reference#strictpluginonlycustomization) 策略、[bare mode](/docs/zh-CN/headless#start-faster-with-bare-mode) 和 [`--safe-mode`](/docs/zh-CN/cli-reference#cli-flags) 各自进一步限制它们,如这些页面所述。请参阅 [额外目录授予文件访问权限,而不是配置](/docs/zh-CN/permissions#additional-directories-grant-file-access-not-configuration) 以获取添加目录加载的完整表格,包括 `CLAUDE.md` 和 plugin 设置。

164 166 

165<h3 id="resolve-skills-that-share-a-name">167<h3 id="resolve-skills-that-share-a-name">

166 解决共享名称的技能168 解决共享名称的 skills

167</h3>169</h3>

168 170 

169当两个技能共享名称时,每个技能来自的位置决定了 `/name` 运行哪一个。该表涵盖企业、个人、项目、嵌套、插件和 claude.ai 位置、捆绑技能和命令文件:171当两个 skills 共享名称时,每个来自的位置决定了 `/name` 运行哪一个。该表涵盖 enterprise、personal、project、nested、plugin 和 claude.ai 位置、捆绑的 skills 和命令文件:

170 172 

171| 相同名称在 | 运行哪一个 |173| 相同名称在 | 运行哪一个 |

172| :--------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------- |174| :------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------- |

173| 企业、个人和项目中的两个 | Enterprise 优于 personal,personal 优于 project。在 `~/.claude/skills/` 和项目的 `.claude/skills/` 中都有 `deploy` 时,`/deploy` 运行 personal 的 |175| Enterprise、personal 和 project 中的两个 | Enterprise 优于 personal,personal 优于 project。在 `~/.claude/skills/` 和项目的 `.claude/skills/` 中都有 `deploy` 时,`/deploy` 运行 personal 的 |

174| 这些位置中的任何一个和 [捆绑技能](#bundled-skills) | 您的技能替换捆绑命令,但不替换其别名。项目 `code-review` 技能替换 `/code-review`,捆绑别名 `/review` 永远不会运行您的技能 |176| 这些位置中的任何一个和 [捆绑 skill](#bundled-skills) | 您的 skill 替换捆绑的命令,但不替换其别名。项目 `code-review` skill 替换 `/code-review`,捆绑的别名 `/review` 永远不会运行您的 skill |

175| 技能和 `.claude/commands/` 中的文件 | 技能 |177| Skill 和 `.claude/commands/` 中的文件 | Skill |

176| 项目根技能和嵌套技能 | 两者都加载。请参阅 [monorepos 和子目录](#discovery-from-parent-and-nested-directories) |178| 项目根 skill 和嵌套 skill | 两者都加载。请参阅 [monorepos 和子目录](#discovery-from-parent-and-nested-directories) |

177| 插件技能和上述任何位置的技能 | 两者都加载,因为插件技能被命名为 `/plugin-name:skill-name` |179| Plugin skill 和上述位置中的 skill | 两者都加载,因为 plugin skills 被命名为 `/plugin-name:skill-name` |

178| 上述任何一个和 [从您的 claude.ai 账户同步的技能](#how-synced-skills-behave) | 其他技能或命令。同步的技能仍然作为 `/anthropic-skills:<name>` 运行。请参阅 [当同步的技能名称与另一个命令匹配时](#when-a-synced-skill-name-matches-another-command) |180| 上述任何一个和 [从您的 claude.ai 账户同步的 skill](#how-synced-skills-behave) | 另一个 skill 或命令。同步的 skill 仍然作为 `/anthropic-skills:<name>` 运行。请参阅 [当同步的 skill 名称与另一个命令匹配时](#when-a-synced-skill-name-matches-another-command) |

179 181 

180<h3 id="skills-in-cowork-and-cloud-sessions">182<h3 id="skills-in-cowork-and-cloud-sessions">

181 在 Cowork 和云会话中使用技能183 在 Cowork 和云会话中使用 skills

182</h3>184</h3>

183 185 

184[Cowork](https://claude.com/product/cowork) 会话和 [云会话](/docs/zh-CN/cloud-environments#what-carries-over-from-your-setup),包括 [routines](/docs/zh-CN/routines),不会读取您机器上的 `~/.claude/skills/`。交互式和计划的 Cowork 会话都加载为您的 claude.ai 账户启用的技能,在会话开始时同步;从 Desktop 应用侧边栏中的 **Customize** 或从 claude.ai 上的技能设置管理它们。云会话还加载提交到克隆存储库的 `.claude/skills/` 的项目技能。186[Cowork](https://claude.com/product/cowork) 会话和 [云会话](/docs/zh-CN/cloud-environments#what-carries-over-from-your-setup),包括 [routines](/docs/zh-CN/routines),不会读取您机器上的 `~/.claude/skills/`。交互式和计划的 Cowork 会话都加载为您的 claude.ai 账户启用的 skills,在会话启动时同步;从 Desktop 应用侧边栏中的 **Customize** 或从 claude.ai 上的 skills 设置管理它们。云会话还加载提交到克隆存储库的 `.claude/skills/` 的项目 skills。

185 187 

186如果技能仅存在于您机器上的 `~/.claude/skills/` 中,当 [routine](/docs/zh-CN/routines) 调用它时,Claude Code 会报告找不到该技能,因为每个 routine 运行都作为新的云会话启动。要在这些会话中使用个人技能:188如果 skill 仅存在于您机器上的 `~/.claude/skills/` 中,当 [routine](/docs/zh-CN/routines) 调用它时,Claude Code 会报告找不到该 skill,因为每个 routine 运行都作为新的云会话启动。要在这些会话中使用个人 skill:

187 189 

188* 对于 Cowork 和云会话,为您的 claude.ai 账户启用该技能。190* 对于 Cowork 和云会话,为您的 claude.ai 账户启用该 skill。

189* 对于云会话,您可以改为将技能提交到存储库的 `.claude/skills/`,或在存储库的 `.claude/settings.json` 中声明的插件中提供它。Repo 声明的插件 [在会话开始时安装](/docs/zh-CN/cloud-environments#what-carries-over-from-your-setup);仅在您的用户设置中启用的插件不会转移。191* 对于云会话,您可以改为将 skill 提交到存储库的 `.claude/skills/`。在存储库的 `.claude/settings.json` 中声明的 plugins 和仅在您的用户设置中启用的 plugins [不会在云会话中加载](/docs/zh-CN/cloud-environments#what-carries-over-from-your-setup)。

190 192 

191[Desktop scheduled tasks](/docs/zh-CN/desktop-scheduled-tasks) 在您的机器上本地运行,因此它们确实加载 `~/.claude/skills/`。193[Desktop 计划任务](/docs/zh-CN/desktop-scheduled-tasks) 在您的机器上本地运行,因此它们确实加载 `~/.claude/skills/`。

192 194 

193<h3 id="how-synced-skills-behave">195<h3 id="how-synced-skills-behave">

194 从 claude.ai 同步的技能196 从 claude.ai 同步的 Skills

195</h3>197</h3>

196 198 

197如果您使用 Cowork 或云会话,或在终端中使用 claude.ai 账户登录 Claude Code,本部分适用于您。在这些会话中,Claude Code 加载为您的 claude.ai 账户启用的技能,无需您进行任何设置,如 [同步技能加载的位置](#where-synced-skills-load) 所述。这些技能包括您在 claude.ai 设置中创建或启用的技能、您的组织在那里提供的技能,以及 Anthropic 的内置技能,例如 `pdf` 和 `xlsx`。199如果您使用 Cowork 或云会话,或在终端中使用 claude.ai 账户登录 Claude Code,本部分适用于您。在这些会话中,Claude Code 加载为您的 claude.ai 账户启用的 skills,无需您进行任何设置,如 [同步的 skills 加载位置](#where-synced-skills-load) 所述。这些 skills 包括您在 claude.ai 设置中创建或打开的 skills、您的组织在那里提供的 skills 以及 Anthropic 的内置 skills,如 `pdf` 和 `xlsx`。

198 200 

199Claude Code 从您的账户下载同步的技能,而不是读取您在会话运行的机器上编写的文件,因此它对同步技能应用不适用于您存储在 [技能位置](#where-skills-live) 中的技能的规则。201Claude Code 从您的账户下载同步的 skill,而不是读取您在会话运行的机器上编写的文件,因此它对同步的 skills 应用不适用于您存储在 [skills 位置](#where-skills-live) 中的 skills 的规则。

200 202 

201<h4 id="where-synced-skills-load">203<h4 id="where-synced-skills-load">

202 同步技能加载的位置204 同步的 skills 加载位置

203</h4>205</h4>

204 206 

205在 Cowork 或云会话中,Claude Code 加载为您的 claude.ai 账户启用的技能,[Cowork 和云会话中的技能](#skills-in-cowork-and-cloud-sessions) 说明了如何选择这些会话获得哪些技能。207在 Cowork 或云会话中,Claude Code 加载为您的 claude.ai 账户启用的 skills,[Cowork 和云会话中的 Skills](#skills-in-cowork-and-cloud-sessions) 说明了如何选择这些会话获得哪些 skills。

206 208 

207在您的终端中,Claude Code 在您使用 claude.ai 账户登录的会话中同步这些技能。当会话启动时,Claude Code 在后台将您账户的技能下载到 `~/.claude/skills/synced/`,然后在会话运行时大约每 10 分钟检查一次 claude.ai 是否有更改。当检查发现技能在 claude.ai 上被添加、编辑或关闭时,Claude Code 在运行的会话中添加、更新或删除它,无需重新启动。终端会话中的同步需要 Claude Code v2.1.273 或更高版本。209在您的终端中,Claude Code 在您使用 claude.ai 账户登录的会话中同步这些 skills。当会话启动时,Claude Code 在后台将您账户的 skills 下载到 `~/.claude/skills/synced/` 中,然后在会话运行时大约每 10 分钟检查一次 claude.ai 的更改。当检查发现 skill 在 claude.ai 上被添加、编辑或关闭时,Claude Code 在运行的会话中添加、更新或删除它,无需重新启动。终端会话中的同步需要 Claude Code v2.1.273 或更高版本。

208 210 

209同步永远不会延迟启动,因为 Claude 仅在调用技能时等待技能的下载。因此,短 [非交互式](/docs/zh-CN/headless) 运行可能在新添加的技能下载之前完成,在这种情况下,稍后的会话会下载它。要使非交互式运行下载您的技能并在回答提示之前等待列表,请将 [`CLAUDE_CODE_SYNC_SKILLS`](/docs/zh-CN/env-vars#variables) 设置为 `1`。211同步永远不会延迟启动,因为 Claude 仅在调用 skill 时等待其下载。因此,短的 [非交互式](/docs/zh-CN/headless) 运行可以在新添加的 skill 下载之前完成,在这种情况下,稍后的会话会下载它。要使非交互式运行下载您的 skills 并在回答提示之前等待列表,请将 [`CLAUDE_CODE_SYNC_SKILLS`](/docs/zh-CN/env-vars#variables) 设置为 `1`。

210 212 

211Claude Code 仅在使用您的 claude.ai 账户登录的会话中同步,并 [从 Anthropic 获取功能标志](/docs/zh-CN/env-vars#features-that-need-feature-flag-fetching)。它不在这些会话中同步:213Claude Code 仅在使用您的 claude.ai 账户登录并 [从 Anthropic 获取功能标志](/docs/zh-CN/env-vars#features-that-need-feature-flag-fetching) 的会话中同步。它不在这些会话中同步:

212 214 

213* 不使用 `/login` 存储的登录的会话,例如使用 API 密钥进行身份验证的会话,或 `ANTHROPIC_AUTH_TOKEN`、`CLAUDE_CODE_OAUTH_TOKEN` 或 `apiKeyHelper` 脚本提供凭证的会话215* 不使用 `/login` 存储的登录的会话,例如使用 API 密钥进行身份验证的会话,或 `ANTHROPIC_AUTH_TOKEN`、`CLAUDE_CODE_OAUTH_TOKEN` 或 `apiKeyHelper` 脚本提供凭证的会话

214* 不获取功能标志的会话,例如 Amazon Bedrock 上的会话或您设置 `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` 的会话216* 不获取功能标志的会话,例如 Amazon Bedrock 上的会话或您设置 `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` 的会话

215* [bare mode](/docs/zh-CN/headless#start-faster-with-bare-mode) 中的会话或您使用 `--safe-mode` 启动的会话217* [bare mode](/docs/zh-CN/headless#start-faster-with-bare-mode) 中的会话或您使用 `--safe-mode` 启动的会话

216* 您的组织的托管设置 [将技能锁定到插件源](/docs/zh-CN/settings-reference#strictpluginonlycustomization-skills) 的会话,或您使用 [`--setting-sources`](/docs/zh-CN/cli-reference#cli-flags) 列表启动的会话,该列表省略了 `user`218* 您的组织的托管设置 [将 skills 锁定到 plugin 源](/docs/zh-CN/settings-reference#strictpluginonlycustomization-skills) 的会话,或您使用 [`--setting-sources`](/docs/zh-CN/cli-reference#cli-flags) 列表启动的会话,该列表省略了 `user`

219 

220如果您在会话期间使用 `/login` 登录,重新启动 Claude Code 以开始同步。

217 221 

218如果您在会话期间使用 `/login` 登录,请重新启动 Claude Code 以开始同步。222较早会话同步的 Skills 保留在磁盘上。Claude Code 在登录到同一账户的后续会话中加载它们,即使它无法到达 claude.ai。

219 223 

220较早会话同步的技能保留在磁盘上。Claude Code 在稍后登录到同一账户的会话中加载它们,即使它无法到达 claude.ai。224Claude Code 下载同步的 skills,从不上传它们。如果您或 Claude 编辑 `~/.claude/skills/synced/` 下的文件,更改不会保存到您的 claude.ai 账户,稍后的同步可能会覆盖或删除它。要更改同步的 skill,在 claude.ai 上更新它;下一次同步会下载新版本。

221 225 

222要查看哪些技能已同步,请运行 `/skills`。菜单在 `claude.ai sync` 下列出它们。226要查看哪些 skills 已同步,请运行 `/skills`。菜单在 `claude.ai sync` 下列出它们。

223 227 

224Anthropic 的某些技能,例如 `pdf` 和 `xlsx`,始终同步。对于其余的,在 claude.ai 上的技能设置中打开或关闭技能以更改是否同步。228Anthropic 的某些 skills,如 `pdf` 和 `xlsx`,总是同步。对于其余的,在 claude.ai 上的 skills 设置中打开或关闭 skill 以更改它是否同步。

225 229 

226要停止在机器上同步,请在您的用户设置中将 [`syncClaudeAiSkills`](/docs/zh-CN/settings-reference#syncclaudeaiskills) 设置为 `false`。Claude Code 停止下载,下次启动时,它将已同步的技能移动到 `~/.claude/skills/.trash/`,不再加载它们。您的组织可以通过关闭 claude.ai 上的 Skills 来为所有人关闭同步。要在保持 Skills 打开的情况下停止同步,它可以在 [托管设置](/docs/zh-CN/managed-settings) 中设置相同的密钥。230要停止在机器上同步,请在您的用户设置中将 [`syncClaudeAiSkills`](/docs/zh-CN/settings-reference#syncclaudeaiskills) 设置为 `false`。Claude Code 停止下载,下次启动时它会将已同步的 skills 移动到 `~/.claude/skills/.trash/`,不再加载它们。您的组织可以通过在 claude.ai 上关闭 Skills 来为所有人关闭同步。要在保持 Skills 打开的情况下停止同步,它可以在 [托管设置](/docs/zh-CN/managed-settings) 中设置相同的密钥。

227 231 

228如果您的组织关闭 claude.ai 上的 Skills,Claude Code 会删除下载的技能,它们停止加载。删除的技能移动到 `~/.claude/skills/.trash/`,您可以在 [保留扫描](/docs/zh-CN/claude-directory#cleaned-up-automatically) 删除它们之前恢复这些文件。一旦您的组织重新打开 Skills,Claude Code 会在下次同步时下载您启用的技能。232如果您的组织在 claude.ai 上关闭 Skills,Claude Code 会删除下载的 skills,它们停止加载。删除的 skills 移动到 `~/.claude/skills/.trash/`,您可以在 [保留扫描](/docs/zh-CN/claude-directory#cleaned-up-automatically) 删除它们之前恢复文件。一旦您的组织重新打开 Skills,Claude Code 会在下一次同步时下载您启用的 skills。

229 233 

230<h4 id="when-a-synced-skill-name-matches-another-command">234<h4 id="when-a-synced-skill-name-matches-another-command">

231 当同步的技能名称与另一个命令匹配时235 当同步的 skill 名称与另一个命令匹配时

232</h4>236</h4>

233 237 

234您可以通过其完整名称 `/anthropic-skills:<name>` 或其短名称 `/<name>` 调用同步的技能。当另一个命令使用该短名称时,`/<name>` 运行其他命令,同步的技能仅作为 `/anthropic-skills:<name>` 运行。使用本地 `deploy` 技能和同步的 `deploy`,`/deploy` 运行本地技能,`/anthropic-skills:deploy` 运行同步的技能。在 v2.1.269 之前,同步的技能仅有其短名称。238您可以通过其完整名称 `/anthropic-skills:<name>` 或其短名称 `/<name>` 调用同步的 skill。当另一个命令使用该短名称时,`/<name>` 运行另一个命令,同步的 skill 仅作为 `/anthropic-skills:<name>` 运行。使用本地 `deploy` skill 和同步的 `deploy` 时,`/deploy` 运行本地 skill,`/anthropic-skills:deploy` 运行同步的。在 v2.1.269 之前,同步的 skill 仅有其短名称。

235 239 

236其他命令可以是以下任何一个:240另一个命令可以是以下任何一个:

237 241 

238* 内置命令或 [捆绑技能](#bundled-skills),包括在您的会话中不可用的,例如在您关闭捆绑技能后242* 内置命令或 [捆绑 skill](#bundled-skills),包括在您的会话中不可用的,例如在您关闭捆绑 skills 后

239* 任何 [本地级别](#where-skills-live) 的技能或 `.claude/commands/` 中的文件243* 任何 [本地级别](#where-skills-live) 的 skill 或 `.claude/commands/` 中的文件

240* 插件技能244* Plugin skill

241* [MCP 提示](/docs/zh-CN/mcp#use-mcp-prompts-as-commands)245* [MCP prompt](/docs/zh-CN/mcp#use-mcp-prompts-as-commands)

242 246 

243Claude Code 标记同步的技能,以便您可以看出它们来自哪里。`/skills` 菜单和 `/context` 在 `claude.ai sync` 下分组同步的技能,`/` 命令菜单将它们标记为来自 claude.ai。247Claude Code 标记同步的 skills,以便您可以看出它们来自何处。`/skills` 菜单和 `/context` 在 `claude.ai sync` 下分组同步的 skills,`/` 命令菜单将它们标记为来自 claude.ai。

244 248 

245比较名称时,Claude Code 忽略大小写、间距和不可见字符,并将兼容性形式(如全宽字母和破折号变体)视为其纯等效形式。例如,名为 `Commit` 的同步技能和名为 `commit` 的本地技能计为相同名称,因此 `/commit` 继续运行您的本地技能。249比较名称时,Claude Code 忽略大小写、间距和不可见字符,并将兼容性形式(如全宽字母和破折号变体)视为其纯等效形式。例如,名为 `Commit` 的同步 skill 和名为 `commit` 的本地 skill 计为相同名称,因此 `/commit` 继续运行您的本地 skill。

246 250 

247仅因来自另一个字母表的相似字母而不同的名称计为不同名称,`claude.ai sync` 标签是您区分两者的方式。这些检查和标签需要 Claude Code v2.1.228 或更高版本。251仅因来自另一个字母表的相似字母而不同的名称计为不同名称,`claude.ai sync` 标签是您区分两者的方式。这些检查和标签需要 Claude Code v2.1.228 或更高版本。

248 252 

249<h4 id="how-claude-code-handles-the-frontmatter-of-a-synced-skill">253<h4 id="how-claude-code-handles-the-frontmatter-of-a-synced-skill">

250 Claude Code 如何处理同步技能的 frontmatter254 Claude Code 如何处理同步 skill 的 frontmatter

251</h4>255</h4>

252 256 

253Claude Code 对同步技能的 frontmatter 应用两条规则:257Claude Code 对同步 skill 的 frontmatter 应用两条规则:

254 258 

255* Claude Code 在每种会话中都遵守 frontmatter,因此 `allowed-tools` 授予通过正常的 [权限流](/docs/zh-CN/permissions)。259* Claude Code 在每种会话中都遵守 frontmatter,因此 `allowed-tools` 授权通过正常的 [权限流](/docs/zh-CN/permissions) 进行。

256* Claude Code 清理技能提供的显示文本,例如其描述。它删除控制字符,在到达 Claude 的文本(如描述)中,它还转义尖括号,以便文本无法模仿 Claude Code 的内部格式。此清理需要 Claude Code v2.1.228 或更高版本。260* Claude Code 清理 skill 提供的显示文本,如其描述。它删除控制字符,在到达 Claude 的文本(如描述)中,它还转义尖括号,以便文本无法模仿 Claude Code 的内部格式。此清理需要 Claude Code v2.1.228 或更高版本。

257 261 

258<h4 id="how-claude-code-handles-the-body-of-a-synced-skill">262<h4 id="how-claude-code-handles-the-body-of-a-synced-skill">

259 Claude Code 如何处理同步技能的正文263 Claude Code 如何处理同步 skill 的正文

260</h4>264</h4>

261 265 

262Claude Code 对同步技能的正文的处理取决于会话运行的位置:266Claude Code 对同步 skill 的正文的处理取决于会话运行的位置:

263 267 

264* 在云会话中,正文保持本地技能具有的行为,因为会话在隔离容器中运行。268* 在云会话中,正文保持本地 skill 具有的行为,因为会话在隔离的容器中运行。

265* 在您桌面上的 Cowork 会话中,正文保持本地技能具有的行为,除了 Claude Code 将每个 `!` 命令行替换为 [`disableSkillShellExecution` 占位符](#inject-dynamic-context),就像它对您在那里提供的每个技能所做的那样。269* 在您桌面上的 Cowork 会话中,正文保持本地 skill 具有的行为,除了 Claude Code 将每个 `!` 命令行替换为 [`disableSkillShellExecution` 占位符](#inject-dynamic-context),就像它对您在那里提供的每个 skill 所做的那样。

266* 在您机器上的任何其他会话中,Claude Code 不运行 [`!` 命令](#inject-dynamic-context),不附加 `@` 引用命名的文件,就像它对本地技能所做的那样,不替换 `${CLAUDE_PROJECT_DIR}` 和 `${CLAUDE_SESSION_ID}` 占位符,因此 `@` 引用和两个占位符都作为文字文本到达 Claude。`!` 命令行也作为文字文本到达 Claude,或当 `disableSkillShellExecution` 打开时作为该占位符。此处理需要 Claude Code v2.1.228 或更高版本。270* 在您机器上的任何其他会话中,Claude Code 不运行 [`!` 命令](#inject-dynamic-context),不附加 `@` 引用命名的文件(就像它对本地 skill 所做的那样),不替换 `${CLAUDE_PROJECT_DIR}` 和 `${CLAUDE_SESSION_ID}` 占位符,因此 `@` 引用和两个占位符都作为文字文本到达 Claude。`!` 命令行也作为文字文本到达 Claude,或当 `disableSkillShellExecution` 打开时作为该占位符。此处理需要 Claude Code v2.1.228 或更高版本。

267 271 

268<h3 id="live-change-detection">272<h3 id="live-change-detection">

269 在会话期间编辑技能273 在会话期间编辑 skill

270</h3>274</h3>

271 275 

272Claude Code 监视技能目录的文件更改,除了在 [bare mode](/docs/zh-CN/headless#start-faster-with-bare-mode) 中。当您在 `~/.claude/skills/`、项目 `.claude/skills/` 或 `--add-dir` 目录内的 `.claude/skills/` 下添加、编辑或删除技能时,Claude Code 在当前会话中获取更改,无需重新启动。如果您创建了会话启动时不存在的顶级技能目录,请重新启动 Claude Code,以便它可以监视新目录。276Claude Code 监视 skill 目录的文件更改,除了在 [bare mode](/docs/zh-CN/headless#start-faster-with-bare-mode) 中。当您在 `~/.claude/skills/`、项目 `.claude/skills/` 或 `--add-dir` 目录内的 `.claude/skills/` 中添加、编辑或删除 skill 时,Claude Code 在当前会话中获取更改,无需重新启动。如果您创建会话启动时不存在的顶级 skills 目录,重新启动 Claude Code 以便它可以监视新目录。

273 277 

274实时更改检测仅涵盖 `SKILL.md` 文本。对于也是 [插件](/docs/zh-CN/plugins-reference#skills-directory-plugins) 的技能文件夹,对 `hooks/`、`.mcp.json`、`agents/` 和 `output-styles/` 的更改需要 `/reload-plugins` 才能生效。278实时更改检测仅涵盖 `SKILL.md` 文本。对于也是 [plugin](/docs/zh-CN/plugins-reference#skills-directory-plugins) 的 skill 文件夹,对 `hooks/`、`.mcp.json`、`agents/` 和 `output-styles/` 的更改需要 `/reload-plugins` 才能生效。

275 279 

276<h3 id="remove-a-skill">280<h3 id="remove-a-skill">

277 删除技能281 删除 skill

278</h3>282</h3>

279 283 

280删除技能的方式取决于它来自哪里:284删除 skill 的方式取决于它来自何处:

281 285 

282* **Personal 或 project 技能**:删除技能的目录,`~/.claude/skills/<skill-name>/` 或 `.claude/skills/<skill-name>/`。Claude Code [在当前会话中从 `/skills` 中删除它](#live-change-detection);Claude Code 已从中加载的内容遵循 [技能内容生命周期](#skill-content-lifecycle)。286* **Personal 或 project skill**:删除 skill 的目录,`~/.claude/skills/<skill-name>/` 或 `.claude/skills/<skill-name>/`。Claude Code [在当前会话中从 `/skills` 中删除它](#live-change-detection);Claude Code 已从中加载的内容遵循 [skill 内容生命周期](#skill-content-lifecycle)。

283* **Enterprise 技能**:管理员从 [托管设置目录](/docs/zh-CN/managed-settings#delivery-mechanisms) 内的 `.claude/skills/` 中删除技能的目录,例如 Linux 上的 `/etc/claude-code/.claude/skills/<skill-name>/`。287* **Enterprise skill**:管理员从 [托管设置目录](/docs/zh-CN/managed-settings#delivery-mechanisms) 内的 `.claude/skills/` 中删除 skill 的目录,例如 Linux 上的 `/etc/claude-code/.claude/skills/<skill-name>/`。

284* **Plugin 技能**:从 `/plugin` 菜单禁用或卸载提供它的插件,或使用 `/plugin uninstall <plugin-name>@<marketplace-name>`。Claude Code 在 [更改应用](/docs/zh-CN/discover-plugins#apply-plugin-changes-without-restarting) 时或重新启动时卸载插件的技能。288* **Plugin skill**:从 `/plugin` 菜单禁用或卸载提供它的 plugin,或使用 `/plugin uninstall <plugin-name>@<marketplace-name>`。Claude Code 在 [更改应用](/docs/zh-CN/discover-plugins#apply-plugin-changes-without-restarting) 时或重新启动时卸载 plugin 的 skills。

285* **从 claude.ai 同步的技能**:在您 [启用它](#skills-in-cowork-and-cloud-sessions) 的同一位置为您的 claude.ai 账户关闭该技能。Claude Code 在下次 [同步您的技能](#where-synced-skills-load) 时将其从 `~/.claude/skills/synced/` 中删除。如果您改为手动删除目录,下次同步会在技能在 claude.ai 上保持启用时再次下载它。289* **从 claude.ai 同步的 Skill**:在您 [启用它](#skills-in-cowork-and-cloud-sessions) 的同一位置为您的 claude.ai 账户关闭该 skill。Claude Code 在下一次 [同步您的 skills](#where-synced-skills-load) 时从 `~/.claude/skills/synced/` 中删除它。如果您改为手动删除目录,下一次同步会在 skill 在 claude.ai 上保持启用的情况下再次下载它。

286* **Bundled 技能**:将 [`disableBundledSkills`](#bundled-skills) 设置为 `true` 以关闭捆绑技能,或在 [`skillOverrides`](#override-skill-visibility-from-settings) 中将一个技能设置为 `"off"` 以隐藏它。290* **捆绑 skill**:将 [`disableBundledSkills`](#bundled-skills) 设置为 `true` 以关闭捆绑 skills,或在 [`skillOverrides`](#override-skill-visibility-from-settings) 中将一个 skill 设置为 `"off"` 以隐藏它。

287 291 

288要保留个人或项目技能但阻止 Claude 自动调用它,请在其 frontmatter 中设置 [`disable-model-invocation: true`](#control-who-invokes-a-skill),或在 [`skillOverrides`](#override-skill-visibility-from-settings) 中设置 `"user-invocable-only"`,当您不想编辑文件时。292要保留 personal 或 project skill 但阻止 Claude 自动调用它,请在其 frontmatter 中设置 [`disable-model-invocation: true`](#control-who-invokes-a-skill),或在 [`skillOverrides`](#override-skill-visibility-from-settings) 中设置 `"user-invocable-only"`(当您不想编辑文件时)。

289 293 

290<h2 id="configure-skills">294<h2 id="configure-skills">

291 配置 skills295 配置 skills


335 Frontmatter 参考339 Frontmatter 参考

336</h3>340</h3>

337 341 

338除了 markdown 内容外,你可以使用位于 `SKILL.md` 文件顶部 `---` 标记之间的 YAML frontmatter 字段来配置 skill 行为:342使用位于 `SKILL.md` 文件顶部 `---` 标记之间的 YAML [frontmatter](/docs/zh-CN/glossary#frontmatter) 配置 skill,并在关闭 `---` 后将 skill 的说明写成 Markdown。字段名称使用由连字符分隔的小写单词,除了 `when_to_use`。`.claude/commands/` 中的[命令文件](#where-skills-live)接受相同的字段,除了 `name` 和 `paths`。此示例设置四个字段:

339 343 

340```yaml theme={null}344```yaml theme={null}

341---345---


348Your skill instructions here...352Your skill instructions here...

349```353```

350 354 

351所有字段都是可选的。只有 `description` 是推荐的,以便 Claude 知道何时使用该 skill。355所有字段都是可选的。只有 `description` 是推荐的,以便 Claude 知道何时使用该 skill。字段名称必须与表格完全匹配,包括连字符:Claude Code 会忽略它不识别的字段而不报告错误。

352 356 

353Claude Code 仅在开始 `---` 是文件的第一行时读取 frontmatter。否则,它将整个文件(包括 `---` 标记)视为 skill 内容。357Claude Code 仅在开始 `---` 是文件的第一行时读取 frontmatter。否则,它将整个文件(包括 `---` 标记)视为 skill 内容。如果标记之间的 YAML 无法解析,skill 仍然加载但没有设置字段;请参阅[Skill 未触发](#skill-not-triggering)以查找并修复错误。

354 358 

355布尔字段接受 `yes`、`no`、`on`、`off`、`1` 和 `0`(任何字母大小写),以及 `true` 和 `false`。在 v2.1.218 之前,Claude Code 仅识别 `true` 和 `false`。359布尔字段接受 `yes`、`no`、`on`、`off`、`1` 和 `0`(任何字母大小写),以及 `true` 和 `false`。在 v2.1.218 之前,Claude Code 仅识别 `true` 和 `false`。

356 360 

357| 字段 | 必需 | 描述 |361| 字段 | 必需 | 描述 |

358| :------------------------- | :- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |362| :------------------------- | :- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

359| `name` | 否 | 在 skill 列表中显示的显示名称。默认为目录名称。请参阅[skill 如何获得其命令名称](#how-a-skill-gets-its-command-name)以了解该字段如何与你键入以调用 skill 的名称交互。 |363| `name` | 否 | 在 skill 列表中显示的显示名称。默认为目录名称。请参阅[skill 如何获得其命令名称](#how-a-skill-gets-its-command-name)以了解该字段如何与你键入以调用 skill 的名称交互。 |

360| `description` | 推荐 | skill 的功能以及何时使用它。Claude 使用此信息来决定何时应用该 skill。如果省略,则使用 markdown 内容的第一段。首先放置关键用例:组合的 `description` 和 `when_to_use` 文本在 skill 列表中被截断为 1,536 个字符以减少上下文使用。 |364| `description` | 推荐 | skill 的功能以及何时使用它。Claude 使用此信息来决定何时应用该 skill。如果省略,则使用 markdown 内容的第一个非空行。首先放置关键用例:组合的 `description` 和 `when_to_use` 文本在 skill 列表中被截断为 1,536 个字符以减少上下文使用。 |

361| `when_to_use` | 否 | 关于 Claude 何时应调用该 skill 的其他上下文,例如触发短语或示例请求。附加到 skill 列表中的 `description`,并计入 1,536 字符的上限。 |365| `when_to_use` | 否 | 关于 Claude 何时应调用该 skill 的其他上下文,例如触发短语或示例请求。附加到 skill 列表中的 `description`,并计入 1,536 字符的上限。 |

362| `argument-hint` | 否 | 在自动完成期间显示的提示,以指示预期的参数。示例:`[issue-number]` 或 `[filename] [format]`。 |366| `argument-hint` | 否 | 在自动完成期间显示的提示,以指示预期的参数。示例:`[issue-number]` 或 `[filename] [format]`。 |

363| `arguments` | 否 | 用于 skill 内容中[`$name` 替换](#available-string-substitutions)的命名位置参数。接受以空格分隔的字符串或 YAML 列表。名称按顺序映射到参数位置。 |367| `arguments` | 否 | 用于 skill 内容中[`$name` 替换](#available-string-substitutions)的命名位置参数。接受以空格分隔的字符串或 YAML 列表。名称按顺序映射到参数位置。 |

statusline.md +1 −1

Details

236 "prompt_id": "550e8400-e29b-41d4-a716-446655440000",236 "prompt_id": "550e8400-e29b-41d4-a716-446655440000",

237 "transcript_path": "/path/to/transcript.jsonl",237 "transcript_path": "/path/to/transcript.jsonl",

238 "model": {238 "model": {

239 "id": "claude-opus-5",239 "id": "claude-opus-5-5",

240 "display_name": "Opus"240 "display_name": "Opus"

241 },241 },

242 "workspace": {242 "workspace": {

sub-agents.md +30 −16

Details

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 

37<Tabs>37<Tabs>

38 <Tab title="Explore">38 <Tab title="Explore">


230 </Tab>230 </Tab>

231</Tabs>231</Tabs>

232 232 

233`--agents` 标志接受 JSON,具有 `prompt` 字段加上这些 [frontmatter](#supported-frontmatter-fields) 字段:`description`、`tools`、`disallowedTools`、`model`、`permissionMode`、`mcpServers`、`hooks`、`maxTurns`、`skills`、`initialPrompt`、`memory`、`effort`、`background`、`omitClaudeMd` 和 `isolation`。对系统提示使用 `prompt`,等同于基于文件的 subagents 中的 markdown 正文。233`--agents` 标志接受 JSON,具有 `prompt` 字段加上这些 [frontmatter](#supported-frontmatter-fields) 字段:`description`、`tools`、`disallowedTools`、`model`、`permissionMode`、`mcpServers`、`hooks`、`maxTurns`、`skills`、`initialPrompt`、`memory`、`effort`、`background`、`omitClaudeMd` 和 `isolation`。对系统提示使用 `prompt`,等同于基于文件的 subagents 中的 markdown 正文。`color` 和 `experimental` 在此处不被接受,被忽略而不是拒绝。

234 234 

235JSON 中的每个顶级键是代理的名称。不要以 `-` 开头的名称。235JSON 中的每个顶级键是代理的名称。不要以 `-` 开头的名称。

236 236 


295 295 

296当主对话本身在 worktree 中隔离运行时,Claude Code 对会话和它生成的每个 subagent 应用相同的检查,包括没有 `isolation: worktree` 的 subagents;请参阅 [How Claude Code enforces isolation](/docs/zh-CN/worktrees#how-claude-code-enforces-isolation)。296当主对话本身在 worktree 中隔离运行时,Claude Code 对会话和它生成的每个 subagent 应用相同的检查,包括没有 `isolation: worktree` 的 subagents;请参阅 [How Claude Code enforces isolation](/docs/zh-CN/worktrees#how-claude-code-enforces-isolation)。

297 297 

298<h4 id="supported-frontmatter-fields">298<h3 id="supported-frontmatter-fields">

299 支持的 frontmatter 字段299 Frontmatter 参考

300</h4>300</h3>

301 

302使用 YAML [frontmatter](/docs/zh-CN/glossary#frontmatter) 在其文件顶部的 `---` 标记之间配置 subagent,并在关闭 `---` 后将其系统提示写为 Markdown。只有 `name` 和 `description` 是必需的。

301 303 

302以下字段可以在 YAML frontmatter 中使用。只有 `name` 和 `description` 是必需的。304多字段名称使用 camelCase,例如 `maxTurns` 和 `disallowedTools`,必须与表格完全匹配:Claude Code 忽略它不识别的字段而不报告错误。要找出为什么 subagent 文件没有加载,请参阅 [Subagent files Claude Code skips](#subagent-files-claude-code-skips)。

303 305 

304| Field | 必需 | Description |306| Field | 必需 | Description |

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

306| `name` | 是 | 使用小写字母和连字符的唯一标识符。[Hooks](/docs/zh-CN/hooks#subagentstart) 将此值作为 `agent_type` 接收。文件名不必匹配。名称不能包含 `:`,这是为 [plugin-scoped identifiers](/docs/zh-CN/plugins) 保留的,例如 `my-plugin:reviewer`。Claude Code 不加载名称包含一个的文件,并向调试日志记录错误。在 v2.1.218 之前,这样的名称被接受 |308| `name` | 是 | 唯一标识符,例如 `code-reviewer` 或 `reviewer-v2`。[Hooks](/docs/zh-CN/hooks#subagentstart) 将此值作为 `agent_type` 接收。文件名不必匹配。名称不能包含 `:`,这是为 [plugin-scoped identifiers](/docs/zh-CN/plugins) 保留的,例如 `my-plugin:reviewer`。Claude Code 不加载名称包含一个的文件,并向调试日志记录错误。在 v2.1.218 之前,这样的名称被接受 |

307| `description` | 是 | Claude 何时应该委托给此 subagent |309| `description` | 是 | Claude 何时应该委托给此 subagent |

308| `tools` | 否 | [Tools](#available-tools) subagent 可以使用。如果省略,继承 subagents 可用的每个工具。如果列表中没有条目解析为工具,subagent 通常 [fails to launch](/docs/zh-CN/errors#agent-would-be-spawned-with-zero-tools) 并出现错误,命名条目。要将 Skills 预加载到上下文中,请使用 `skills` 字段而不是在此处列出 `Skill` |310| `tools` | 否 | [Tools](#available-tools) subagent 可以使用,作为逗号分隔的字符串,例如 `Read, Grep, Bash` 或 YAML 列表。如果省略,继承 subagents 可用的每个工具。如果列表中没有条目解析为工具,subagent 通常 [fails to launch](/docs/zh-CN/errors#agent-would-be-spawned-with-zero-tools) 并出现错误,命名条目。要将 Skills 预加载到上下文中,请使用 `skills` 字段而不是在此处列出 `Skill` |

309| `disallowedTools` | 否 | 要拒绝的工具,从继承或指定的列表中删除。带有说明符的条目,例如 `Bash(git push *)`,仍然 [removes the whole tool](#available-tools) |311| `disallowedTools` | 否 | 要拒绝的工具,从继承或指定的列表中删除。格式与 `tools` 相同。带有说明符的条目,例如 `Bash(git push *)`,仍然 [removes the whole tool](#available-tools) |

310| `model` | 否 | [Model](#choose-a-model) 使用:`sonnet`、`opus`、`haiku`、`fable`、完整模型 ID(例如,`claude-opus-5`)或 `inherit`。当您省略它时,Claude Code 在 [subagent model order](#choose-a-model) 中选择模型 |312| `model` | 否 | [Model](#choose-a-model) 使用:`sonnet`、`opus`、`haiku`、`fable`、完整模型 ID(例如,`claude-opus-5-5`)或 `inherit`。当您省略它时,Claude Code 在 [subagent model order](#choose-a-model) 中选择模型 |

311| `permissionMode` | 否 | [Permission mode](#permission-modes):`default`、`acceptEdits`、`auto`、`dontAsk`、`bypassPermissions`、`plan` 或 `manual` 作为 `default` 的别名。`manual` 别名需要 Claude Code v2.1.200 或更高版本。对于 [plugin subagents](#choose-the-subagent-scope) 被忽略 |313| `permissionMode` | 否 | [Permission mode](#permission-modes):`default`、`acceptEdits`、`auto`、`dontAsk`、`bypassPermissions`、`plan` 或 `manual` 作为 `default` 的别名。`manual` 别名需要 Claude Code v2.1.200 或更高版本。对于 [plugin subagents](#choose-the-subagent-scope) 被忽略 |

312| `maxTurns` | 否 | subagent 停止前的最大代理轮数。当 subagent 达到限制时,Claude Code 返回其输出标记为部分,Claude 可以 [resume it](#resume-subagents) 继续。部分标记需要 Claude Code v2.1.246 或更高版本 |314| `maxTurns` | 否 | subagent 停止前的最大代理轮数。当 subagent 达到限制时,Claude Code 返回其输出标记为部分,Claude 可以 [resume it](#resume-subagents) 继续。部分标记需要 Claude Code v2.1.246 或更高版本 |

313| `skills` | 否 | [Skills](/docs/zh-CN/skills) 在启动时预加载到 subagent 的上下文中。注入完整的技能内容,而不仅仅是描述。Subagents 仍然可以通过 Skill 工具调用未列出的项目、用户和 plugin 技能 |315| `skills` | 否 | [Skills](/docs/zh-CN/skills) 在启动时预加载到 subagent 的上下文中。注入完整的技能内容,而不仅仅是描述。Subagents 仍然可以通过 Skill 工具调用未列出的项目、用户和 plugin 技能 |


319| `effort` | 否 | 此 subagent 活跃时的努力级别。覆盖会话努力级别。默认:从会话继承。选项:`low`、`medium`、`high`、`xhigh`、`max`;可用级别取决于模型 |321| `effort` | 否 | 此 subagent 活跃时的努力级别。覆盖会话努力级别。默认:从会话继承。选项:`low`、`medium`、`high`、`xhigh`、`max`;可用级别取决于模型 |

320| `isolation` | 否 | 设置为 `worktree` 以在临时 [git worktree](/docs/zh-CN/worktrees) 中运行 subagent,为其提供存储库的隔离副本,默认从您的 [default branch](/docs/zh-CN/worktrees#choose-the-base-branch) 分支,而不是父会话的 `HEAD`。如果 subagent 不进行任何更改,worktree 会自动清理 |322| `isolation` | 否 | 设置为 `worktree` 以在临时 [git worktree](/docs/zh-CN/worktrees) 中运行 subagent,为其提供存储库的隔离副本,默认从您的 [default branch](/docs/zh-CN/worktrees#choose-the-base-branch) 分支,而不是父会话的 `HEAD`。如果 subagent 不进行任何更改,worktree 会自动清理 |

321| `color` | 否 | Subagent 在任务列表和转录中的显示颜色。接受 `red`、`blue`、`green`、`yellow`、`purple`、`orange`、`pink` 或 `cyan` |323| `color` | 否 | Subagent 在任务列表和转录中的显示颜色。接受 `red`、`blue`、`green`、`yellow`、`purple`、`orange`、`pink` 或 `cyan` |

322| `initialPrompt` | 否 | 当此代理作为主会话代理运行时(通过 `--agent` 或 `agent` 设置),自动提交为第一个用户轮次。[Commands](/docs/zh-CN/commands) 和 [skills](/docs/zh-CN/skills) 被处理。前置于任何用户提供的提示 |324| `initialPrompt` | 否 | 当此代理作为主会话代理运行时(通过 `--agent` 或 `agent` 设置),自动提交为第一个用户轮次。[Commands](/docs/zh-CN/commands) 和 [skills](/docs/zh-CN/skills) 被处理。前置于任何用户提供的提示。对于 [plugin subagents](#choose-the-subagent-scope) 被忽略 |

323| `experimental` | 否 | 实验选项的映射。将其 `cacheTtl` 键设置为 `5m` 或 `1h` 以选择此 subagent 请求的 [prompt cache lifetime](/docs/zh-CN/prompt-caching#choose-the-ttl-yourself),在 frontmatter 的 [cache lifetime precedence](/docs/zh-CN/prompt-caching#choose-the-ttl-yourself) 中的位置。Claude Code 忽略任何其他值,在您的 Claude 订阅使用使用额度时忽略 `1h`,并仅从 subagent 文件读取字段。需要 Claude Code v2.1.248 或更高版本 |325| `experimental` | 否 | 实验选项的映射。将其 `cacheTtl` 键设置为 `5m` 或 `1h` 以选择此 subagent 请求的 [prompt cache lifetime](/docs/zh-CN/prompt-caching#choose-the-ttl-yourself),在 frontmatter 的 [cache lifetime precedence](/docs/zh-CN/prompt-caching#choose-the-ttl-yourself) 中的位置。Claude Code 忽略任何其他值,在您的 Claude 订阅使用使用额度时忽略 `1h`,并仅从 subagent 文件读取字段。需要 Claude Code v2.1.248 或更高版本 |

324 326 

325在 `experimental` 映射内写入 `cacheTtl`,而不是在 frontmatter 的顶级。327在 `experimental` 映射内写入 `cacheTtl`,而不是在 frontmatter 的顶级。


362`model` 字段控制 subagent 使用的模型:364`model` 字段控制 subagent 使用的模型:

363 365 

364* **Model alias**:使用可用的别名之一:`sonnet`、`opus`、`haiku` 或 `fable`366* **Model alias**:使用可用的别名之一:`sonnet`、`opus`、`haiku` 或 `fable`

365* **Full model ID**:使用完整的模型 ID,例如 `claude-opus-5` 或 `claude-sonnet-5`。接受与 `--model` 标志相同的值367* **Full model ID**:使用完整的模型 ID,例如 `claude-opus-5-5` 或 `claude-sonnet-5`。接受与 `--model` 标志相同的值

366* **inherit**:使用与主对话相同的模型368* **inherit**:使用与主对话相同的模型

367 369 

368当 Claude 调用 subagent 时,它也可以为该特定调用传递 `model` 参数。Claude Code 按以下顺序解析 subagent 的模型:370当 Claude 调用 subagent 时,它也可以为该特定调用传递 `model` 参数。Claude Code 按以下顺序解析 subagent 的模型:


3723. [`CLAUDE_CODE_SUBAGENT_MODEL`](/docs/zh-CN/model-config#environment-variables) 环境变量,当您将其设置为模型别名或模型 ID 时3743. [`CLAUDE_CODE_SUBAGENT_MODEL`](/docs/zh-CN/model-config#environment-variables) 环境变量,当您将其设置为模型别名或模型 ID 时

3734. 主对话的模型3754. 主对话的模型

374 376 

377在两种情况下,家族别名(例如 frontmatter 或每次调用的参数中的 `opus`)解析到主对话的模型,而不是 [alias points to](/docs/zh-CN/model-config#model-aliases) 的版本:

378 

379* **主对话的模型属于该家族**:subagent 在主对话的确切模型上运行,包括任何 `[1m]` 后缀,因此它获得与主对话相同的 [extended context](/docs/zh-CN/model-config#extended-context) 窗口。

380* **Claude Code 无法告诉主对话的模型家族,在 [a provider other than the Anthropic API](/docs/zh-CN/third-party-integrations) 上**:这可能发生在 Amazon Bedrock 上的 [application inference profile ARN](/docs/zh-CN/amazon-bedrock#iam-configuration),Claude Code 尚未解析为支持模型。这种情况仅涵盖 `opus` 别名,当您设置 [`ANTHROPIC_DEFAULT_OPUS_MODEL`](/docs/zh-CN/model-config#environment-variables) 时不适用,因为 `opus` 然后解析到您设置的模型。

381 

382`CLAUDE_CODE_SUBAGENT_MODEL` 中的别名始终解析到别名指向的版本,即使它命名主对话的家族。

383 

375设置 `CLAUDE_CODE_SUBAGENT_MODEL` 本身不会改变内置 Explore 和 Plan subagents 运行的模型。要改变它,请参阅 [Run every subagent on one model](#run-every-subagent-on-one-model)。384设置 `CLAUDE_CODE_SUBAGENT_MODEL` 本身不会改变内置 Explore 和 Plan subagents 运行的模型。要改变它,请参阅 [Run every subagent on one model](#run-every-subagent-on-one-model)。

376 385 

377在 v2.1.251 之前,`CLAUDE_CODE_SUBAGENT_MODEL` 在此顺序中排在第一位,并覆盖每次调用的参数和 frontmatter,包括 `model: inherit`。386在 v2.1.251 之前,`CLAUDE_CODE_SUBAGENT_MODEL` 在此顺序中排在第一位,并覆盖每次调用的参数和 frontmatter,包括 `model: inherit`。


438* `EnterPlanMode`447* `EnterPlanMode`

439* `ExitPlanMode`,除非 subagent 的 [`permissionMode`](#permission-modes) 是 `plan`448* `ExitPlanMode`,除非 subagent 的 [`permissionMode`](#permission-modes) 是 `plan`

440* `ScheduleWakeup`449* `ScheduleWakeup`

441* `TaskOutput`

442* `WaitForMcpServers`450* `WaitForMcpServers`

443* `Workflow`451* `Workflow`

444 452 

445第二个过滤器适用于在后台运行的 subagents。除了 `Agent` 和 `ExitPlanMode`,它们遵循第一个过滤器的条件,无论 subagent 在哪里运行,后台 subagent 保留每个 MCP 工具但仅这些内置工具:`Read`、`Grep`、`Glob`、`Bash`、`PowerShell`、`Edit`、`Write`、`NotebookEdit`、`WebFetch`、`WebSearch`、`TodoWrite`、`Skill`、`ToolSearch`、`EnterWorktree`、`ExitWorktree`、`Monitor`、`TaskStop`、`SendMessage` 和 `Artifact`,加上 [`SubagentHandback`](/docs/zh-CN/tools-reference) 用于通过它报告的 subagent。Claude Code 从后台 subagent 删除每个其他内置工具,无论继承还是在 `tools` 字段中列出,因此相同的定义可以在前台和后台解析为不同的工具。删除报告没有错误,除非它使 `tools` 列表 [resolving to nothing](/docs/zh-CN/errors#agent-would-be-spawned-with-zero-tools)。453第二个过滤器适用于在后台运行的 subagents。除了 `Agent` 和 `ExitPlanMode`,它们遵循第一个过滤器的条件,无论 subagent 在哪里运行,后台 subagent 保留每个 MCP 工具但仅这些内置工具:`Read`、`Grep`、`Glob`、`LSP`、`Bash`、`PowerShell`、`Edit`、`Write`、`NotebookEdit`、`WebFetch`、`WebSearch`、`TodoWrite`、`Skill`、`ToolSearch`、`EnterWorktree`、`ExitWorktree`、`Monitor`、`TaskStop`、`SendMessage` 和 `Artifact`,加上 [`SubagentHandback`](/docs/zh-CN/tools-reference) 用于通过它报告的 subagent。Claude Code 从后台 subagent 删除每个其他内置工具,无论继承还是在 `tools` 字段中列出,因此相同的定义可以在前台和后台解析为不同的工具。删除报告没有错误,除非它使 `tools` 列表 [resolving to nothing](/docs/zh-CN/errors#agent-would-be-spawned-with-zero-tools)。

454 

455在 v2.1.280 之前,后台 subagents 无法使用 `LSP`。

446 456 

447[`ListAgents`](/docs/zh-CN/cross-session-messaging) 遵循这些过滤器,如任何内置工具:前台 subagent 在启用跨会话消息的会话中继承它,后台 subagent 不保留它。457[`ListAgents`](/docs/zh-CN/cross-session-messaging) 遵循这些过滤器,如任何内置工具:前台 subagent 在启用跨会话消息的会话中继承它,后台 subagent 不保留它。

448 458 


987 997 

988扫描不判断内容是否恶意,它不改变报告中的指令能做什么:报告导致 Claude 进行的工具调用仍然通过会话的 [权限检查](/docs/zh-CN/permissions) 和 [沙箱](/docs/zh-CN/sandboxing)。它不是 [限制 subagent 可以到达的内容](#control-subagent-capabilities) 的替代品。998扫描不判断内容是否恶意,它不改变报告中的指令能做什么:报告导致 Claude 进行的工具调用仍然通过会话的 [权限检查](/docs/zh-CN/permissions) 和 [沙箱](/docs/zh-CN/sandboxing)。它不是 [限制 subagent 可以到达的内容](#control-subagent-capabilities) 的替代品。

989 999 

1000返回给 Claude 的报告作为 subagent 的结果也在标题下到达,标记为 subagent 输出。标题说明报告中的指令或批准声明是 subagent 的话语,不从您那里获得任何权限。

1001 

1002[后台 subagent 的报告](#run-subagents-in-foreground-or-background) 在完成通知内到达,标记为自动化事件而不是来自您的消息。

1003 

990<Note>1004<Note>

991 Subagent 输出扫描需要 Claude Code v2.1.210 或更高版本。1005 Subagent 输出扫描需要 Claude Code v2.1.210 或更高版本。

992</Note>1006</Note>


1114 1128 

1115* **系统提示**:代理自己的提示加上 Claude Code 附加的环境详情,而不是 Claude Code 系统提示。自定义 subagents 在 [markdown 正文](#write-subagent-files) 或 `prompt` 字段中定义它们。内置代理有预定义的提示。1129* **系统提示**:代理自己的提示加上 Claude Code 附加的环境详情,而不是 Claude Code 系统提示。自定义 subagents 在 [markdown 正文](#write-subagent-files) 或 `prompt` 字段中定义它们。内置代理有预定义的提示。

1116* **任务消息**:Claude 在移交工作时编写的委托提示。1130* **任务消息**:Claude 在移交工作时编写的委托提示。

1117* **CLAUDE.md 文件**:主对话加载的 [CLAUDE.md 层次结构](/docs/zh-CN/memory#how-claude-md-files-load) 的每个级别,包括 `~/.claude/CLAUDE.md`、项目规则、`CLAUDE.local.md` 和托管策略文件。内置的 Explore 和 Plan 代理跳过这个。Subagent 的定义设置 [`omitClaudeMd`](#supported-frontmatter-fields) 时仅加载托管策略文件,或当定义来自 [托管设置](#choose-the-subagent-scope) 时不加载任何文件。还包括任何 [`AGENTS.md` 文件](/docs/zh-CN/memory#agents-md) 作为项目指令加载。1131* **CLAUDE.md 文件**:主对话加载的 [CLAUDE.md 层次结构](/docs/zh-CN/memory#how-claude-md-files-load) 的每个级别,包括 `~/.claude/CLAUDE.md`、项目规则、`CLAUDE.local.md`、托管策略文件和任何 [`AGENTS.md` 文件](/docs/zh-CN/memory#agents-md) 作为项目指令加载。内置的 Explore 和 Plan 代理跳过这个。Subagent 的定义设置 [`omitClaudeMd`](#supported-frontmatter-fields) 时仅加载托管策略文件,或当定义来自 [托管设置](#choose-the-subagent-scope) 时不加载任何文件。

1118* **Git 状态**:在父会话开始时拍摄的快照。当工作目录不是 Git 存储库或 [`includeGitInstructions`](/docs/zh-CN/settings-reference#includegitinstructions) 为 `false` 时不存在。Explore 和 Plan 无论如何都跳过它。1132* **Git 状态**:在 subagent 启动时从您的存储库读取的快照。在 Git 存储库外或每当快照关闭时不存在;请参阅 [`includeGitInstructions`](/docs/zh-CN/settings-reference#includegitinstructions)。Explore 和 Plan 无论如何都跳过它。

1119* **预加载的技能**:代理的 [`skills` 字段](#preload-skills-into-subagents) 中命名的任何技能的完整内容。内置代理不预加载技能。1133* **预加载的技能**:代理的 [`skills` 字段](#preload-skills-into-subagents) 中命名的任何技能的完整内容。内置代理不预加载技能。

1120* **兄弟名单**:系统提醒,列出 `main` 和会话中的每个其他命名代理,每个都是 [`SendMessage`](#resume-subagents) 的有效 `to` 值。需要 Claude Code v2.1.206 或更高版本。名单仅在 subagent 的工具包括 `SendMessage` 且至少有一个其他代理有名称时出现,无论 Claude 在生成时命名它还是它作为 [agent team](/docs/zh-CN/agent-teams) 队友运行。它是 subagent 启动时拍摄的快照,所以稍后命名的代理不会出现。1134* **兄弟名单**:系统提醒,列出 `main` 和会话中的每个其他命名代理,每个都是 [`SendMessage`](#resume-subagents) 的有效 `to` 值。需要 Claude Code v2.1.206 或更高版本。名单仅在 subagent 的工具包括 `SendMessage` 且至少有一个其他代理有名称时出现,无论 Claude 在生成时命名它还是它作为 [agent team](/docs/zh-CN/agent-teams) 队友运行。它是 subagent 启动时拍摄的快照,所以稍后命名的代理不会出现。

1121 1135 

Details

343 粘贴大型内容343 粘贴大型内容

344</h2>344</h2>

345 345 

346当您粘贴超过 800 个字符或超过三行的内容到提示框时,Claude Code 会将输入折叠为占位符,例如 `[Pasted text #1 +120 lines]`,以保持输入框的可用性。在短于 12 行的终端窗口中,行限制会降低,因此 Claude Code 在 11 行时会折叠三行粘贴,在 10 行或更少行时会折叠任何多行粘贴。Claude Code 在您提交时仍会发送完整内容。346当您粘贴超过 800 个字符或超过三行的内容到提示框时,Claude Code 会将输入折叠为占位符,例如 `[Pasted text #1 +120 lines]`,以保持输入框的可用性,并在您提交时仍会发送完整内容。对于非常大的输入(如整个文件或长日志),将内容写入文件并要求 Claude 读取它,而不是粘贴。对话记录保持可读性,Claude 可以在后续轮次中按路径引用文件。VS Code 集成终端也可能在非常大的粘贴到达 Claude Code 之前丢弃字符,因此在那里使用文件。

347 347 

348当您使用单词或行快捷键(如 `Ctrl+W` 或 `Ctrl+K`)删除,或通过 vim 删除(如 `df]` 这样的 `f`/`t` 动作),且删除范围到达占位符内部时,Claude Code 会完全移除占位符。您可以粘贴删除的内容来恢复它,在单词或行快捷键后使用 [`Ctrl+Y`](/docs/zh-CN/interactive-mode#text-editing),或在 vim 删除后使用 [`p` 在 NORMAL 模式下](/docs/zh-CN/interactive-mode#editing-normal-mode)。348如果粘贴包含[不可见的 Unicode 字符](/docs/zh-CN/interactive-mode#invisible-characters-in-prompts),Claude Code 会在您按 Enter 时移除它们,并将清理后的提示放回输入框供您再次按 Enter 发送。

349 349 

350Claude Code 将折叠的内容保存在 `~/.claude/paste-cache/` 下,因此当您从[命令历史](/docs/zh-CN/interactive-mode#command-history)中调用提示并重新提交时,Claude Code 会再次发送完整的粘贴内容,包括在后续会话中,直到保留扫描移除缓存文件。350<h3 id="how-claude-treats-pasted-text">

351 Claude 如何处理粘贴的文本

352</h3>

353 

354当您提交时,Claude 会看到每个 `[Pasted text #N]` 占位符后面的内容,标记为您从其他地方粘贴而不是输入的文本。Claude 被告知粘贴可能包含您没有写的指令,并且仅在您输入的消息要求时才遵循其中的指令。在不[获取功能标志](/docs/zh-CN/env-vars#features-that-need-feature-flag-fetching)的会话中,粘贴不会被标记。

351 355 

352Claude Code 删除早于 [`cleanupPeriodDays`](/docs/zh-CN/settings-reference#cleanupperioddays) 的缓存文件,遵循[保留扫描规则](/docs/zh-CN/claude-directory#cleaned-up-automatically),因此调用的提示可能引用不再存在的粘贴文本。当您提交这样的提示时,Claude Code 永远不会发送字面上的 `[Pasted text #N]` 字符串,而是显示一个通知,命名缺失的粘贴:356<h3 id="delete-and-restore-a-collapsed-paste">

357 删除和恢复折叠的粘贴

358</h3>

359 

360当您使用单词或行快捷键(如 `Ctrl+W` 或 `Ctrl+K`)删除,或通过 vim 删除(如 `df]` 这样的 `f`/`t` 动作),且删除范围到达 `[Pasted text #N]` 占位符内部时,Claude Code 会完全移除占位符。要恢复它,在单词或行快捷键后使用 [`Ctrl+Y`](/docs/zh-CN/interactive-mode#text-editing) 粘贴删除的内容,或在 vim 删除后使用 [`p` 在 NORMAL 模式下](/docs/zh-CN/interactive-mode#editing-normal-mode)。

361 

362<h3 id="recall-a-prompt-that-had-pasted-text">

363 调用包含粘贴文本的提示

364</h3>

365 

366Claude Code 将每个 `[Pasted text #N]` 占位符后面的内容保存在 `~/.claude/paste-cache/` 下,因此当您从[命令历史](/docs/zh-CN/interactive-mode#command-history)中调用提示并重新提交时,完整的粘贴内容会再次发送,包括在后续会话中。

367 

368早于 [`cleanupPeriodDays`](/docs/zh-CN/settings-reference#cleanupperioddays) 的缓存文件会根据[保留扫描规则](/docs/zh-CN/claude-directory#cleaned-up-automatically)被删除,因此调用的提示可能引用不再存在的粘贴文本。当您提交这样的提示时,Claude Code 永远不会发送字面上的 `[Pasted text #N]` 字符串,而是显示一个通知,命名缺失的粘贴:

353 369 

354* 在包含剩余文本的纯提示中,Claude Code 移除占位符并发送剩余文本。370* 在包含剩余文本的纯提示中,Claude Code 移除占位符并发送剩余文本。

355* 在[shell 模式](/docs/zh-CN/interactive-mode#shell-mode-with-prefix)命令或 `/` 命令中,其中移除会改变运行内容,以及在任何移除会留下空白的提示中,Claude Code 取消提交并在输入中保留原始文本,占位符仍在其中。删除占位符或编辑命令,然后重新提交。371* 在[shell 模式](/docs/zh-CN/interactive-mode#shell-mode-with-prefix)命令或 `/` 命令中,其中移除会改变运行内容,以及在任何移除会留下空白的提示中,Claude Code 取消提交并在输入中保留原始文本,占位符仍在其中。删除占位符或编辑命令,然后重新提交。

356 372 

357VS Code 集成终端可能会在非常大的粘贴到达 Claude Code 之前丢弃字符,因此在那里更倾向于基于文件的工作流。对于非常大的输入(如整个文件或长日志),将内容写入文件并要求 Claude 读取它,而不是粘贴。这样可以保持对话记录的可读性,并让 Claude 在后续轮次中按路径引用文件。

358 

359<h2 id="edit-prompts-with-vim-keybindings">373<h2 id="edit-prompts-with-vim-keybindings">

360 使用 Vim 快捷键编辑提示词374 使用 Vim 快捷键编辑提示词

361</h2>375</h2>

Details

86 86 

87对于大多数组织,Claude for Teams 或 Claude for Enterprise 提供最佳体验。团队成员可以通过单一订阅访问 Claude Code 和网页版 Claude,具有集中计费和无需基础设施设置的优势。87对于大多数组织,Claude for Teams 或 Claude for Enterprise 提供最佳体验。团队成员可以通过单一订阅访问 Claude Code 和网页版 Claude,具有集中计费和无需基础设施设置的优势。

88 88 

89**Claude for Teams** 是自助服务,包括协作功能、管理工具和计费管理。最适合需要快速启动的小型团队。89**Claude for Teams** 是自助服务,包括协作功能、管理工具、SSO、计费管理和[服务器管理的设置](/docs/zh-CN/server-managed-settings),用于组织范围内的 Claude Code 配置。最适合需要快速启动的小型团队。

90 90 

91**Claude for Enterprise** 增加了 SSO 和域名捕获、基于角色的权限、合规性 API 访问以及用于部署组织范围内 Claude Code 配置的托管策略设置。最适合具有安全和合规性要求的大型组织。91**Claude for Enterprise** 增加了域名捕获、基于角色的权限和合规性 API 访问。最适合具有安全和合规性要求的大型组织。

92 92 

93了解更多关于 [Team 计划](https://support.claude.com/en/articles/9266767-what-is-the-team-plan) 和 [Enterprise 计划](https://support.claude.com/en/articles/9797531-what-is-the-enterprise-plan)。93了解更多关于 [Team 计划](https://support.claude.com/en/articles/9266767-what-is-the-team-plan) 和 [Enterprise 计划](https://support.claude.com/en/articles/9797531-what-is-the-enterprise-plan)。

94 94 

Details

24| 安装期间 `Raw mode is not supported` | [重新运行安装程序](#raw-mode-is-not-supported-during-install) |24| 安装期间 `Raw mode is not supported` | [重新运行安装程序](#raw-mode-is-not-supported-during-install) |

25| `TLS connect error` 或 `SSL/TLS secure channel` | [更新 CA 证书](#tls-or-ssl-connection-errors) |25| `TLS connect error` 或 `SSL/TLS secure channel` | [更新 CA 证书](#tls-or-ssl-connection-errors) |

26| `Failed to fetch version` 或无法访问下载服务器 | [检查网络和代理设置](#check-network-connectivity) |26| `Failed to fetch version` 或无法访问下载服务器 | [检查网络和代理设置](#check-network-connectivity) |

27| `irm is not recognized` 或 `&& is not valid` | [对您的 shell 使用正确的命令](#wrong-install-command-on-windows) |27| `irm is not recognized` 或 `The token '&&' is not a valid statement separator` | [对您的 shell 使用正确的命令](#wrong-install-command-on-windows) |

28| `Cask 'claude-code' is unavailable: No Cask with this name exists` | [更新 Homebrew](#homebrew-cask-unavailable-or-outdated) |28| `Cask 'claude-code' is unavailable: No Cask with this name exists` | [更新 Homebrew](#homebrew-cask-unavailable-or-outdated) |

29| `'bash' is not recognized as the name of a cmdlet` | [使用 Windows 安装程序命令](#wrong-install-command-on-windows) |29| `'bash' is not recognized as the name of a cmdlet` | [使用 Windows 安装程序命令](#wrong-install-command-on-windows) |

30| `A parameter cannot be found that matches parameter name 'fsSL'` | [使用 Windows 安装程序命令](#wrong-install-command-on-windows) |30| `A parameter cannot be found that matches parameter name 'fsSL'` | [使用 Windows 安装程序命令](#wrong-install-command-on-windows) |


353bash: line 1: `<!DOCTYPE html>'353bash: line 1: `<!DOCTYPE html>'

354```354```

355 355 

356在 PowerShell 上,同样的问题显示为解析错误,指向返回的页面,`iex` 尝试将 HTML 和 CSS 作为 PowerShell 运行:356在 PowerShell 上,同样的问题表现为指向返回页面的解析错误,`iex` 尝试将 HTML 和 CSS 作为 PowerShell 运行:

357 357 

358```text theme={null}358```text theme={null}

359iex : At line:1 char:2310359iex : At line:1 char:2310


362...362...

363```363```

364 364 

365措辞因 PowerShell 版本和系统语言而异:您可能会看到 `Missing expression after unary operator '--'` 或带有 `ParseException` 的 `ParserError`。引用文本中的 HTML 标签或 CSS 标识此故障。如果您改用 `-OutFile install.ps1` 下载,保存的文件是相同的网页,所以这也无法帮助。365措辞因 PowerShell 版本和系统语言而异:您可能会看到 `Missing expression after unary operator '--'` 或带有 `ParseException` 的 `ParserError`。引用文本中的 HTML 标签或 CSS 标识此失败。如果您改用 `-OutFile install.ps1` 下载,保存的文件是同一网页,所以这也无法帮助。

366 366 

367根据请求的路由方式,您可能会看到 403 错误且没有 HTML 正文:367根据请求的路由方式,您可能会看到 403 错误且没有 HTML 正文:

368 368 


370curl: (22) The requested URL returned error: 403370curl: (22) The requested URL returned error: 403

371```371```

372 372 

373这些都意味着安装 URL 返回了 HTML 页面或错误状态而不是安装脚本。如果 HTML 页面显示"App unavailable in region",Claude Code 在您的国家/地区不可用。请参阅 [supported countries](https://www.anthropic.com/supported-countries)。373这些都意味着安装 URL 返回了 HTML 页面或错误状态,而不是安装脚本。如果 HTML 页面显示"应用在该地区不可用",则 Claude Code 在您的国家/地区不可用。请参阅[支持的国家/地区](https://www.anthropic.com/supported-countries)。

374 374 

375没有正文的 403 错误通常有相同的原因,但也可能来自企业代理或防火墙阻止下载。如果您在受支持的国家/地区但仍然看到 403,在尝试下面的替代安装程序之前,请先完成 [Check network connectivity](#check-network-connectivity),因为这些安装程序访问相同的主机。375没有正文的单纯 403 通常有相同的原因,但也可能来自公司代理或防火墙阻止下载。如果您在支持的国家/地区但仍然看到 403,请在尝试下面的替代安装程序之前完成[检查网络连接](#check-network-connectivity),因为这些安装程序访问相同的主机。

376 376 

377否则,这可能由于网络问题、区域路由或临时服务中断而发生。377否则,这可能由网络问题、区域路由或临时服务中断引起。

378 378 

379**解决方案:**379**解决方案:**

380 380 


392 winget install Anthropic.ClaudeCode392 winget install Anthropic.ClaudeCode

393 ```393 ```

394 394 

395 然后运行 `claude --version` 以确认:该命令打印版本号,例如 `2.1.211 (Claude Code)`。如果 shell 报告找不到 `claude`,打开一个新的终端窗口并重试:您安装的会话保留其旧的 `PATH`。395 然后运行 `claude --version` 确认:该命令打印版本号,例如 `2.1.211 (Claude Code)`。如果 shell 报告找不到 `claude`,请打开新的终端窗口并重试:您安装的会话保留其旧的 `PATH`。

396 396 

3972. **几分钟后重试**:问题通常是暂时的。等待并再次尝试原始命令。3972. **几分钟后重试**:该问题通常是临时的。等待并重新尝试原始命令。

398 398 

399<h3 id="command-not-found-claude-after-installation">399<h3 id="command-not-found-claude-after-installation">

400 安装后 `command not found: claude`400 安装后 `command not found: claude`


409| Windows CMD | `'claude' is not recognized as an internal or external command` |409| Windows CMD | `'claude' is not recognized as an internal or external command` |

410| PowerShell | `claude : The term 'claude' is not recognized as the name of a cmdlet` |410| PowerShell | `claude : The term 'claude' is not recognized as the name of a cmdlet` |

411 411 

412这意味着安装目录不在您的 shell 搜索路径中。请参阅 [Verify your PATH](#verify-your-path) 以获取每个平台上的修复。412这意味着安装目录不在您的 shell 搜索路径中。请参阅[验证您的 PATH](#verify-your-path) 了解每个平台上的修复。

413 413 

414<h3 id="curl-56-failure-writing-output-to-destination">414<h3 id="curl-56-failure-writing-output-to-destination">

415 `curl: (56) Failure writing output to destination`415 `curl: (56) Failure writing output to destination`

416</h3>416</h3>

417 417 

418`curl ... | bash` 命令下载脚本并将其传送到 Bash 以执行。此错误以及相关的 `curl: (23) Failure writing output to destination` 意味着 Bash 没有收到完整的脚本。退出代码 56 表示下载本身被中断,退出代码 23 表示 curl 无法将其接收的内容写入管道,通常是因为 Bash 提前退出。418`curl ... | bash` 命令下载脚本并将其管道传输到 Bash 以执行。此错误以及相关的 `curl: (23) Failure writing output to destination` 意味着 Bash 没有收到完整的脚本。退出代码 56 表示下载本身被中断,退出代码 23 表示 curl 无法将其接收的内容写入管道,通常是因为 Bash 提前退出。

419 419 

420测试您是否可以使用 [Check network connectivity](#check-network-connectivity) 中的检查访问 `downloads.claude.ai`。如果您到达了服务器,原始故障可能是间歇性的;重试安装命令。您也可以 [try an alternative install method](/docs/zh-CN/setup#install-claude-code)。420使用[检查网络连接](#check-network-connectivity)中的检查来测试您是否可以访问 `downloads.claude.ai`。如果您访问了服务器,原始失败可能是间歇性的;重试安装命令。您也可以[尝试替代安装方法](/docs/zh-CN/setup#install-claude-code)。

421 421 

422<h3 id="homebrew-cask-unavailable-or-outdated">422<h3 id="homebrew-cask-unavailable-or-outdated">

423 Homebrew cask 不可用或过时423 Homebrew cask 不可用或过时

424</h3>424</h3>

425 425 

426Homebrew 报告 `Error: Cask 'claude-code' is unavailable: No Cask with this name exists` 当您的 Homebrew cask 索引本地副本早于 cask 的发布时间。刷新索引并重试:426当您的 Homebrew cask 索引本地副本早于 cask 发布时,Homebrew 报告 `Error: Cask 'claude-code' is unavailable: No Cask with this name exists`。刷新索引并重试:

427 427 

428```bash theme={null}428```bash theme={null}

429brew update429brew update

430brew install --cask claude-code430brew install --cask claude-code

431```431```

432 432 

433如果 Homebrew 安装的 Claude Code 版本比您预期的要旧,通常是相同的过时索引导致的。`claude-code` cask 跟踪稳定频道,通常比最新版本晚约一周;对于最新版本,请改为运行 `brew install --cask claude-code@latest`。请参阅 [Configure release channel](/docs/zh-CN/setup#configure-release-channel) 了解两个 cask 之间的区别。433如果 Homebrew 安装的 Claude Code 版本比您预期的要旧,通常是相同的过时索引导致的。`claude-code` cask 跟踪稳定频道,通常比最新版本晚约一周;对于最新版本,请改为运行 `brew install --cask claude-code@latest`。请参阅[配置发布频道](/docs/zh-CN/setup#configure-release-channel)了解两个 cask 之间的区别。

434 434 

435<h3 id="tls-or-ssl-connection-errors">435<h3 id="tls-or-ssl-connection-errors">

436 TLS 或 SSL 连接错误436 TLS 或 SSL 连接错误


450 450 

451 在 macOS 上,系统 curl 使用 Keychain 信任存储;更新 macOS 本身会更新根证书。451 在 macOS 上,系统 curl 使用 Keychain 信任存储;更新 macOS 本身会更新根证书。

452 452 

4532. **在 Windows 上,在运行安装程序前在 PowerShell 中启用 TLS 1.2**:4532. **在 Windows 上,在运行安装程序之前在 PowerShell 中启用 TLS 1.2**:

454 ```powershell theme={null}454 ```powershell theme={null}

455 [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12455 [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12

456 irm https://claude.ai/install.ps1 | iex456 irm https://claude.ai/install.ps1 | iex

457 ```457 ```

458 458 

4593. **检查代理或防火墙干扰**:执行 TLS 检查的企业代理可能导致这些错误,包括 `unable to get local issuer certificate` 和 `SELF_SIGNED_CERT_IN_CHAIN`。对于安装步骤,使安装下载信任您的企业代理的 CA:4593. **检查代理或防火墙干扰**:执行 TLS 检查的公司代理可能会导致这些错误,包括 `unable to get local issuer certificate` 和 `SELF_SIGNED_CERT_IN_CHAIN`。对于安装步骤,使安装下载信任您的公司代理的 CA:

460 460 

461 <Tabs>461 <Tabs>

462 <Tab title="macOS/Linux">462 <Tab title="macOS/Linux">


466 </Tab>466 </Tab>

467 467 

468 <Tab title="Windows PowerShell">468 <Tab title="Windows PowerShell">

469 PowerShell 安装程序通过 .NET 下载,该 .NET 针对 Windows 证书存储验证 TLS。如果代理的 CA 证书还不在 Windows 存储中,请要求您的 IT 团队将其添加到 Windows 存储中,然后运行安装程序:469 PowerShell 安装程序通过 .NET 下载,该 .NET 针对 Windows 证书存储验证 TLS。如果代理的 CA 证书尚未在 Windows 存储中,请要求您的 IT 团队添加它,然后运行安装程序:

470 470 

471 ```powershell theme={null}471 ```powershell theme={null}

472 irm https://claude.ai/install.ps1 | iex472 irm https://claude.ai/install.ps1 | iex


490 </Tab>490 </Tab>

491 </Tabs>491 </Tabs>

492 492 

493 如果您没有证书文件,请向您的 IT 团队询问。您也可以尝试直接连接以确认代理是原因。493 如果您没有证书文件,请向您的 IT 团队索取。您也可以尝试直接连接来确认代理是原因。

494 494 

4954. **在 Windows 上,解决被阻止的撤销检查**。错误 `CRYPT_E_NO_REVOCATION_CHECK (0x80092012)` 和 `CRYPT_E_REVOCATION_OFFLINE (0x80092013)` 意味着 curl 到达了服务器,但您的网络阻止了证书撤销查询,这在企业防火墙后很常见。如果失败的命令是下载 `install.cmd` 的 `curl`,从命令提示符重新运行它,添加 `--ssl-revoke-best-effort`:4954. **在 Windows 上,解决被阻止的撤销检查**。错误 `CRYPT_E_NO_REVOCATION_CHECK (0x80092012)` 和 `CRYPT_E_REVOCATION_OFFLINE (0x80092013)` 意味着 curl 到达了服务器,但您的网络阻止了证书撤销查询,这在公司防火墙后很常见。如果失败的命令是下载 `install.cmd` 的 `curl`,请从命令提示符重新运行它,添加 `--ssl-revoke-best-effort`:

496 ```batch theme={null}496 ```batch theme={null}

497 curl --ssl-revoke-best-effort -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd497 curl --ssl-revoke-best-effort -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd

498 ```498 ```

499 当脚本自己的下载遇到相同的错误时,它会自动使用最佳努力撤销检查重试它们,因此该标志仅在您自己运行的命令上需要。最佳努力检查容许无法访问的撤销服务器,但仍然拒绝已知被撤销的证书,与浏览器处理撤销的方式相匹配。您也可以通过从 PowerShell 运行 PowerShell 安装程序来完全避免 curl 的撤销检查,该安装程序通过 .NET 下载,当撤销服务器无法访问时不会失败:499 当脚本自己的下载遇到相同的错误时,它会自动使用最佳努力撤销检查重试它们,因此该标志仅在您自己运行的命令上需要。最佳努力检查容忍无法访问的撤销服务器,但仍然拒绝已知被撤销的证书,与浏览器处理撤销的方式相匹配。您也可以通过从 PowerShell 运行 PowerShell 安装程序来完全避免 curl 的撤销检查,该安装程序通过 .NET 下载,当撤销服务器无法访问时不会失败:

500 ```powershell theme={null}500 ```powershell theme={null}

501 irm https://claude.ai/install.ps1 | iex501 irm https://claude.ai/install.ps1 | iex

502 ```502 ```


506 `Failed to fetch version from downloads.claude.ai`506 `Failed to fetch version from downloads.claude.ai`

507</h3>507</h3>

508 508 

509安装程序无法访问下载服务器。这通常意味着 `downloads.claude.ai` 在您的网络上被阻止。请参阅 [Check network connectivity](#check-network-connectivity)。509安装程序无法访问下载服务器。这通常意味着 `downloads.claude.ai` 在您的网络上被阻止。请参阅[检查网络连接](#check-network-connectivity)。

510 510 

511<h3 id="wrong-install-command-on-windows">511<h3 id="wrong-install-command-on-windows">

512 Windows 上的错误安装命令512 Windows 上的错误安装命令

513</h3>513</h3>

514 514 

515如果您看到 `'irm' is not recognized`、`The token '&&' is not valid`、`A parameter cannot be found that matches parameter name 'fsSL'` 或 `'bash' is not recognized as the name of a cmdlet`,您复制了不同 shell 或操作系统的安装命令。如果该命令打印脚本的文本而不是安装任何内容,您只运行了其中的一部分。515如果您看到 `'irm' is not recognized`、`The token '&&' is not a valid statement separator`、`A parameter cannot be found that matches parameter name 'fsSL'` 或 `'bash' is not recognized as the name of a cmdlet`,您复制了不同 shell 或操作系统的安装命令。如果该命令打印脚本的文本而不是安装任何内容,您只运行了其中的一部分。

516 516 

517* **`irm` 未识别**:您在 CMD 中,而不是 PowerShell。您有两个选项:517* **`irm` 无法识别**:您在 CMD 中,而不是 PowerShell。您有两个选项:

518 518 

519 通过在开始菜单中搜索"PowerShell"打开 PowerShell,然后运行原始安装命令:519 通过在"开始"菜单中搜索"PowerShell"打开 PowerShell,然后运行原始安装命令:

520 520 

521 ```powershell theme={null}521 ```powershell theme={null}

522 irm https://claude.ai/install.ps1 | iex522 irm https://claude.ai/install.ps1 | iex


528 curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd528 curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd

529 ```529 ```

530 530 

531* **`&&` 无效**:您在 PowerShell 中但运行了 CMD 安装程序命令。使用 PowerShell 安装程序:531* **`&&` 不是有效的语句分隔符**:您在 PowerShell 中但运行了 CMD 安装程序命令。使用 PowerShell 安装程序:

532 ```powershell theme={null}532 ```powershell theme={null}

533 irm https://claude.ai/install.ps1 | iex533 irm https://claude.ai/install.ps1 | iex

534 ```534 ```

535 535 

536* **`A parameter cannot be found that matches parameter name 'fsSL'`**:您在 Windows PowerShell 中运行了 macOS/Linux `curl -fsSL ... | bash` 安装程序,其中 `curl` 是 `Invoke-WebRequest` 的别名并拒绝 `-fsSL` 标志。改用 PowerShell 安装程序:536* **`A parameter cannot be found that matches parameter name 'fsSL'`**:您在 Windows PowerShell 中运行了 macOS/Linux `curl -fsSL ... | bash` 安装程序,其中 `curl` 是 `Invoke-WebRequest` 的别名,拒绝 `-fsSL` 标志。改用 PowerShell 安装程序:

537 ```powershell theme={null}537 ```powershell theme={null}

538 irm https://claude.ai/install.ps1 | iex538 irm https://claude.ai/install.ps1 | iex

539 ```539 ```

540 540 

541* **`bash` 未识别**:您在 Windows 上运行了 macOS/Linux 安装程序。改用 PowerShell 安装程序:541* **`bash` 无法识别**:您在 Windows 上运行了 macOS/Linux 安装程序。改用 PowerShell 安装程序:

542 ```powershell theme={null}542 ```powershell theme={null}

543 irm https://claude.ai/install.ps1 | iex543 irm https://claude.ai/install.ps1 | iex

544 ```544 ```

545 545 

546* **该命令打印脚本文本而不是安装**:您运行了命令的下载部分,而没有运行执行它的部分。`irm https://claude.ai/install.ps1` 单独会将下载的脚本打印到终端。将其传送到 `iex` 以运行它:546* **该命令打印脚本文本而不是安装**:您运行了命令的下载部分,而没有运行执行它的部分。`irm https://claude.ai/install.ps1` 单独会将下载的脚本打印到终端。将其管道传输到 `iex` 以运行它:

547 547 

548 ```powershell theme={null}548 ```powershell theme={null}

549 irm https://claude.ai/install.ps1 | iex549 irm https://claude.ai/install.ps1 | iex


555 curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd555 curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd

556 ```556 ```

557 557 

558无论您使用哪个安装程序,都要确认它有效:打开一个新终端并运行 `claude --version`,它打印版本号,例如 `2.1.211 (Claude Code)`。558无论您使用哪个安装程序,请确认它有效:打开新终端并运行 `claude --version`,它打印版本号,例如 `2.1.211 (Claude Code)`。

559 559 

560<h3 id="running-scripts-is-disabled-on-this-system">560<h3 id="running-scripts-is-disabled-on-this-system">

561 `running scripts is disabled on this system`561 `running scripts is disabled on this system`


569 + CategoryInfo : SecurityError: (:) [], PSSecurityException569 + CategoryInfo : SecurityError: (:) [], PSSecurityException

570```570```

571 571 

572当您在 npm 安装后运行 `claude` 时,同样的错误名称 `claude.ps1`。PowerShell 的执行策略正在阻止 npm 为其命令创建的 `.ps1` 启动程序脚本。该策略适用于脚本文件,因此它不影响 PowerShell 安装程序 `irm https://claude.ai/install.ps1 | iex`,它直接运行下载的文本。572当您在 npm 安装后运行 `claude` 时,同样的错误会命名 `claude.ps1`。PowerShell 的执行策略阻止了 npm 为其命令创建的 `.ps1` 启动程序脚本。该策略适用于脚本文件,因此不会影响 PowerShell 安装程序 `irm https://claude.ai/install.ps1 | iex`,它直接运行下载的文本。

573 573 

574**解决方案:**574**解决方案:**

575 575 


578 Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser578 Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

579 ```579 ```

5802. **改为调用 `.cmd` 启动程序**:`npm.cmd` 和 `claude.cmd` 做同样的工作,该策略不涵盖它们。5802. **改为调用 `.cmd` 启动程序**:`npm.cmd` 和 `claude.cmd` 做同样的工作,该策略不涵盖它们。

5813. **改用 [PowerShell installer](/docs/zh-CN/setup#install-claude-code)**,而不是 npm。它安装二进制文件而不是 `.ps1` 脚本。5813. **改用 [PowerShell 安装程序](/docs/zh-CN/setup#install-claude-code)** 而不是 npm。它安装二进制文件而不是 `.ps1` 脚本。

582 582 

583<h3 id="the-process-cannot-access-the-file-during-windows-install">583<h3 id="the-process-cannot-access-the-file-during-windows-install">

584 Windows 安装期间 `The process cannot access the file`584 Windows 安装期间 `The process cannot access the file`

585</h3>585</h3>

586 586 

587如果 PowerShell 安装程序失败,显示 `Failed to download binary: The process cannot access the file ... because it is being used by another process`,安装程序无法写入 `%USERPROFILE%\.claude\downloads`。这通常意味着之前的安装尝试仍在运行,或防病毒软件正在扫描该文件夹中部分下载的二进制文件。587如果 PowerShell 安装程序失败,出现 `Failed to download binary: The process cannot access the file ... because it is being used by another process`,安装程序无法写入 `%USERPROFILE%\.claude\downloads`。这通常意味着之前的安装尝试仍在运行,或防病毒软件正在扫描该文件夹中部分下载的二进制文件。

588 588 

589关闭任何其他运行安装程序的 PowerShell 窗口,并等待防病毒扫描释放该文件。然后删除下载文件夹并再次运行安装程序:589关闭任何其他运行安装程序的 PowerShell 窗口,并等待防病毒扫描释放该文件。然后删除下载文件夹并再次运行安装程序:

590 590 


594```594```

595 595 

596<h3 id="install-killed-on-low-memory-linux-servers">596<h3 id="install-killed-on-low-memory-linux-servers">

597 低内存 Linux 服务器上安装被杀死597 在低内存 Linux 服务器上安装被杀死

598</h3>598</h3>

599 599 

600在安装期间看到 `Killed` 消息通常意味着 Linux 内存不足 (OOM) 杀手终止了 `claude install` 步骤,因为系统内存不足。这在小型 VPS 和云实例上很常见。安装脚本报告原因并以代码 137 退出。在此示例中,行号和进程 ID 因版本和运行而异:600安装期间的 `Killed` 消息通常意味着 Linux 内存不足 (OOM) 杀手终止了 `claude install` 步骤,因为系统内存不足。这在小型 VPS 和云实例上很常见。安装脚本报告原因并以代码 137 退出。在此示例中,行号和进程 ID 因版本和运行而异:

601 601 

602```text theme={null}602```text theme={null}

603Setting up Claude Code...603Setting up Claude Code...


606Claude Code needs roughly 512MB of free memory to install. Free up memory, then run this script again.606Claude Code needs roughly 512MB of free memory to install. Free up memory, then run this script again.

607```607```

608 608 

609安装需要大约 512 MB 的可用内存,运行 Claude Code 需要更多。请参阅 [system requirements](/docs/zh-CN/setup#system-requirements)。609安装需要大约 512 MB 的可用内存,运行 Claude Code 需要更多。请参阅[系统要求](/docs/zh-CN/setup#system-requirements)。

610 610 

611**解决方案:**611**解决方案:**

612 612 

6131. **添加交换空间**(如果您的服务器 RAM 有限)。交换使用磁盘空间作为溢出内存,让安装即使在低物理 RAM 的情况下也能完成。6131. **添加交换空间**,如果您的服务器 RAM 有限。交换使用磁盘空间作为溢出内存,即使物理 RAM 较低也能让安装完成。

614 614 

615 创建 2 GB 交换文件并启用它:615 创建 2 GB 交换文件并启用它:

616 616 


629 629 

6302. **关闭其他进程**以在安装前释放内存。6302. **关闭其他进程**以在安装前释放内存。

631 631 

6323. **如果可能,使用更大的实例**。Claude Code 需要至少 4 GB 的 RAM。6323. **使用更大的实例**,如果可能的话。Claude Code 需要至少 4 GB 的 RAM。

633 633 

634<h3 id="install-hangs-in-docker">634<h3 id="install-hangs-in-docker">

635 Docker 中安装挂起635 在 Docker 中安装挂起

636</h3>636</h3>

637 637 

638在 Docker 容器中安装 Claude Code 时,以 root 身份安装到 `/` 可能导致挂起。638在 Docker 容器中安装 Claude Code 时,以 root 身份安装到 `/` 可能会导致挂起。

639 639 

640**解决方案:**640**解决方案:**

641 641 

6421. **在运行安装程序前设置工作目录**。从 `/` 运行时,安装程序扫描整个文件系统,这导致过度的内存使用。设置 `WORKDIR` 将扫描限制在小目录:6421. **在运行安装程序之前设置工作目录**。从 `/` 运行时,安装程序扫描整个文件系统,这会导致过度的内存使用。设置 `WORKDIR` 将扫描限制在小目录:

643 ```dockerfile theme={null}643 ```dockerfile theme={null}

644 WORKDIR /tmp644 WORKDIR /tmp

645 RUN curl -fsSL https://claude.ai/install.sh | bash645 RUN curl -fsSL https://claude.ai/install.sh | bash

646 ```646 ```

647 647 

6482. **给 Docker 更多内存**(如果使用 Docker Desktop)。构建容器共享分配给 Docker Desktop 虚拟机的内存,因此打开 Docker Desktop 中的 **Settings > Resources**,提高内存限制,然后重新运行构建。6482. **给 Docker 更多内存**,如果使用 Docker Desktop。构建容器共享分配给 Docker Desktop 虚拟机的内存,因此打开 Docker Desktop 中的 **Settings > Resources**,提高内存限制,然后重新运行构建。

649 649 

650<h3 id="raw-mode-is-not-supported-during-install">650<h3 id="raw-mode-is-not-supported-during-install">

651 安装期间 `Raw mode is not supported`651 安装期间 `Raw mode is not supported`

652</h3>652</h3>

653 653 

654当您的组织的 [server-managed settings](/docs/zh-CN/server-managed-settings) 包括需要 [security approval](/docs/zh-CN/server-managed-settings#security-approval-dialogs) 的更改时,Claude Code 2.1.246 之前的版本尝试在 `claude install` 期间显示批准对话框。该对话框需要 stdin 上的终端。当安装程序从管道运行 `claude install` 时,如 `curl -fsSL https://claude.ai/install.sh | bash` 所做的那样,stdin 是管道而不是终端,因此安装失败,错误包含 `Raw mode is not supported`。654当您的组织的[服务器管理的设置](/docs/zh-CN/server-managed-settings)包括需要[安全批准](/docs/zh-CN/server-managed-settings#security-approval-dialogs)的更改时,2.1.246 之前的 Claude Code 版本尝试在 `claude install` 期间显示批准对话框。对话框需要 stdin 上的终端。当安装程序从管道运行 `claude install` 时,如 `curl -fsSL https://claude.ai/install.sh | bash` 所做的那样,stdin 是管道而不是终端,因此安装失败,错误包含 `Raw mode is not supported`。

655 655 

656Claude Code v2.1.246 及更高版本在 `claude install` 或 `claude update` 期间不显示对话框。该命令使用您上次批准的设置运行,Claude Code 在您的下一个交互式会话中显示对话框。如果您的组织的启动配置 [waits for the settings fetch](/docs/zh-CN/server-managed-settings#enforce-fail-closed-startup),例如当它设置 `forceRemoteSettingsRefresh` 时,对话框仍然在这些命令期间出现,从管道运行的安装仍然会失败。656Claude Code v2.1.246 及更高版本在 `claude install` 或 `claude update` 期间不显示对话框。该命令使用您上次批准的设置运行,Claude Code 在您的下一个交互式会话中显示对话框。如果您的组织的启动配置[等待设置获取](/docs/zh-CN/server-managed-settings#enforce-fail-closed-startup),例如当它设置 `forceRemoteSettingsRefresh` 时,对话框仍会在这些命令期间出现,从管道运行的安装仍会失败。

657 657 

658在所有其他配置中,重新运行安装程序会绕过此错误,因为即使您要求它安装较旧版本,脚本也会运行最新版本的 `install` 命令。为您的平台重新运行命令:658在所有其他配置中,重新运行安装程序会绕过此错误,因为即使您要求它安装较旧版本,脚本也会运行最新版本的 `install` 命令。为您的平台重新运行命令:

659 659 


685ls -ld ~/.zshrc ~/.bashrc ~/.bash_profile ~/.bash_login ~/.profile ~/.config/fish/config.fish685ls -ld ~/.zshrc ~/.bashrc ~/.bash_profile ~/.bash_login ~/.profile ~/.config/fish/config.fish

686```686```

687 687 

688将目录移到一边,或更新到 v2.1.214 或更高版本。由于 `claude update` 在受影响的版本上挂起,请改为重新运行 [install script](/docs/zh-CN/setup#install-claude-code) 来更新。688将目录移到一边,或更新到 v2.1.214 或更高版本。由于 `claude update` 在受影响的版本上挂起,请改为通过重新运行[安装脚本](/docs/zh-CN/setup#install-claude-code)来更新。

689 689 

690<h3 id="claude-desktop-overrides-the-claude-command-on-windows">690<h3 id="claude-desktop-overrides-the-claude-command-on-windows">

691 Claude Desktop 在 Windows 上覆盖 `claude` 命令691 Claude Desktop 在 Windows 上覆盖 `claude` 命令

692</h3>692</h3>

693 693 

694如果您安装了较旧版本的 Claude Desktop,它可能在 `WindowsApps` 目录中注册 `Claude.exe`,其 PATH 优先级高于 Claude Code CLI。运行 `claude` 会打开 Desktop 应用而不是 CLI。694如果您安装了较旧版本的 Claude Desktop,它可能会在 `WindowsApps` 目录中注册一个 `Claude.exe`,该目录在 PATH 中优先于 Claude Code CLI。运行 `claude` 会打开 Desktop 应用而不是 CLI。

695 695 

696更新 Claude Desktop 到最新版本以修复此问题。696更新 Claude Desktop 到最新版本以修复此问题。

697 697 


699 Windows 上的 Claude Code 需要 Git for Windows(用于 bash)或 PowerShell699 Windows 上的 Claude Code 需要 Git for Windows(用于 bash)或 PowerShell

700</h3>700</h3>

701 701 

702Git for Windows 是可选的。Claude Code 在缺少 Git Bash 时使用 [PowerShell tool](/docs/zh-CN/tools-reference#powershell-tool),因此此错误意味着两个 shell 都未找到。702Git for Windows 是可选的。Claude Code 在没有 Git Bash 时使用 [PowerShell 工具](/docs/zh-CN/tools-reference#powershell-tool),因此此错误意味着找不到任何 shell。

703 703 

704**如果 PowerShell 从您的 PATH 中缺失**,其默认位置是 `C:\Windows\System32\WindowsPowerShell\v1.0\`。将该目录添加到您的 `PATH`,或安装 [PowerShell 7](https://aka.ms/powershell),它提供 `pwsh`。704**如果 PowerShell 不在您的 PATH 中**,其默认位置是 `C:\Windows\System32\WindowsPowerShell\v1.0\`。将该目录添加到您的 `PATH`,或安装 [PowerShell 7](https://aka.ms/powershell),它提供 `pwsh`。

705 705 

706**要改为安装 Git for Windows**,从 [git-scm.com/downloads/win](https://git-scm.com/downloads/win) 下载它。在设置期间,选择"Add to PATH"。安装后重启您的终端。安装它启用了 Bash 工具,在使用基于 Bash 的脚本和工具时很有用。706**要改为安装 Git for Windows**,请从 [git-scm.com/downloads/win](https://git-scm.com/downloads/win) 下载它。在设置期间,选择"Add to PATH"。安装后重启您的终端。安装它启用了 Bash 工具,在使用基于 Bash 的脚本和工具时很有用。

707 707 

708**如果 Git 已安装**但 Claude Code 找不到它,请比较其位置与 Claude Code 检查的位置。当 `CLAUDE_CODE_GIT_BASH_PATH` 未设置时,Claude Code 按此顺序查找 `bash.exe`:708**如果 Git 已安装**但 Claude Code 找不到它,请将其位置与 Claude Code 检查的位置进行比较。当未设置 `CLAUDE_CODE_GIT_BASH_PATH` 时,Claude Code 按此顺序查找 `bash.exe`:

709 709 

7101. 默认安装位置 `C:\Program Files\Git` 和 `C:\Program Files (x86)\Git`。7101. 默认安装位置 `C:\Program Files\Git` 和 `C:\Program Files (x86)\Git`。

7112. 您的 `PATH` 上的 `git`,使用该 Git 安装中的 `bin\bash.exe`。7112. 您的 `PATH` 上的 `git`,使用该 Git 安装中的 `bin\bash.exe`。

712 712 

713在第 2 步中,Claude Code 跳过位于您启动 Claude Code 的文件夹中或其下方的 `git`,其路径包含 `node_modules` 或虚拟环境文件夹(如 `.venv` 或 `env`),例如当您从 `C:\dev\env\myproject` 启动时的 `C:\dev\env\myproject\Git`。这防止 Claude Code 运行项目放在那里的可执行文件。如果您的 Git 在这样的位置,请将 `CLAUDE_CODE_GIT_BASH_PATH` 指向它。713在第 2 步中,Claude Code 跳过位于您启动 Claude Code 的文件夹中的 `git`,或在包含 `node_modules` 或虚拟环境文件夹(如 `.venv` 或 `env`)的路径下方的 `git`,例如当您从 `C:\dev\env\myproject` 启动时的 `C:\dev\env\myproject\Git`。这防止 Claude Code 运行项目放在那里的可执行文件。如果您的 Git 在这样的位置,请将 `CLAUDE_CODE_GIT_BASH_PATH` 指向它。

714 714 

715**要将 Claude Code 指向特定的 Git 安装**,通过在 PowerShell 中运行 `where.exe git` 找到它,然后在您的 [settings.json file](/docs/zh-CN/settings) 中将该安装中的 `bin\bash.exe` 路径设置为 `CLAUDE_CODE_GIT_BASH_PATH`:715**要将 Claude Code 指向特定的 Git 安装**,通过在 PowerShell 中运行 `where.exe git` 找到它,然后将该安装中的 `bin\bash.exe` 路径设置为您的[settings.json 文件](/docs/zh-CN/settings)中的 `CLAUDE_CODE_GIT_BASH_PATH`:

716 716 

717```json theme={null}717```json theme={null}

718{718{


722}722}

723```723```

724 724 

725**如果 `CLAUDE_CODE_GIT_BASH_PATH` 设置为正确的路径且文件存在**但 Claude Code 仍然不使用它,请首先检查文件的名称。Claude Code 仅接受名为 `bash.exe`、`sh.exe`、`bash` 或 `sh` 的文件;使用任何其他名称(如 Git for Windows 的 `git-bash.exe` 启动程序),它会忽略该变量并自动检测 Git Bash,就像它未设置一样,记录 `--debug` 可见的警告。不存在的路径会获得相同的回退和警告。在 v2.1.219 之前,Claude Code 使用任何现有文件作为 shell,而不检查其名称,当路径不存在时在启动时以 `Claude Code was unable to find CLAUDE_CODE_GIT_BASH_PATH path` 退出。725**如果 `CLAUDE_CODE_GIT_BASH_PATH` 设置为正确的路径且文件存在**但 Claude Code 仍然不使用它,请首先检查文件的名称。Claude Code 仅接受名为 `bash.exe`、`sh.exe`、`bash` 或 `sh` 的文件;对于任何其他名称,例如 Git for Windows 的 `git-bash.exe` 启动程序,它会忽略该变量并自动检测 Git Bash,就像它未设置一样,记录 `--debug` 可见的警告。不存在的路径会获得相同的回退和警告。在 v2.1.219 之前,Claude Code 使用任何现有文件作为 shell,而不检查其名称,当路径不存在时在启动时以 `Claude Code was unable to find CLAUDE_CODE_GIT_BASH_PATH path` 退出。

726 726 

727如果文件的名称正确,端点安全软件(如 AppLocker、Group Policy 软件限制策略或 EDR 代理)可能会干扰。要求您的 IT 团队在您的端点保护策略中将 `claude.exe` 及其生成的进程(包括 `cmd.exe` 和 `bash.exe`)列入白名单。727如果文件的名称正确,端点安全软件(如 AppLocker、组策略软件限制策略或 EDR 代理)可能会干扰。要求您的 IT 团队在您的端点保护策略中将 `claude.exe` 和它生成的进程(包括 `cmd.exe` 和 `bash.exe`)列入白名单。

728 728 

729<h3 id="claude-code-does-not-support-32-bit-windows">729<h3 id="claude-code-does-not-support-32-bit-windows">

730 Claude Code 不支持 32 位 Windows730 Claude Code 不支持 32 位 Windows

731</h3>731</h3>

732 732 

733Windows 在开始菜单中包含两个 PowerShell 条目:`Windows PowerShell` 和 `Windows PowerShell (x86)`。x86 条目以 32 位进程运行,即使在 64 位机器上也会触发此错误。要检查您处于哪种情况,请在产生错误的同一窗口中运行此命令:733Windows 在"开始"菜单中包括两个 PowerShell 条目:`Windows PowerShell` 和 `Windows PowerShell (x86)`。x86 条目作为 32 位进程运行,即使在 64 位机器上也会触发此错误。要检查您处于哪种情况,请在产生错误的同一窗口中运行此命令:

734 734 

735```powershell theme={null}735```powershell theme={null}

736[Environment]::Is64BitOperatingSystem736[Environment]::Is64BitOperatingSystem


738 738 

739如果这打印 `True`,您的操作系统没问题。关闭窗口,打开不带 x86 后缀的 `Windows PowerShell`,然后再次运行安装命令。739如果这打印 `True`,您的操作系统没问题。关闭窗口,打开不带 x86 后缀的 `Windows PowerShell`,然后再次运行安装命令。

740 740 

741如果这打印 `False`,您在 32 位版本的 Windows 上。Claude Code 需要 64 位操作系统。请参阅 [system requirements](/docs/zh-CN/setup#system-requirements)。741如果这打印 `False`,您在 32 位版本的 Windows 上。Claude Code 需要 64 位操作系统。请参阅[系统要求](/docs/zh-CN/setup#system-requirements)。

742 742 

743<h3 id="linux-musl-or-glibc-binary-mismatch">743<h3 id="linux-musl-or-glibc-binary-mismatch">

744 Linux musl 或 glibc 二进制文件不匹配744 Linux musl 或 glibc 二进制不匹配

745</h3>745</h3>

746 746 

747如果在安装后看到关于缺失共享库(如 `libstdc++.so.6` 或 `libgcc_s.so.1`)的错误,安装程序可能为您的系统下载了错误的二进制变体。747如果在安装后看到有关缺失共享库的错误,例如 `libstdc++.so.6` 或 `libgcc_s.so.1`,安装程序可能为您的系统下载了错误的二进制变体。

748 748 

749```text theme={null}749```text theme={null}

750Error loading shared library libstdc++.so.6: No such file or directory750Error loading shared library libstdc++.so.6: No such file or directory


758 ```bash theme={null}758 ```bash theme={null}

759 ldd --version 2>&1 | head -1759 ldd --version 2>&1 | head -1

760 ```760 ```

761 提及 `GNU libc` 或 `GLIBC` 的输出表示 glibc。提及 `musl` 的输出表示 musl。761 提及 `GNU libc` 或 `GLIBC` 的输出意味着 glibc。提及 `musl` 的输出意味着 musl。

762 762 

7632. **如果您在 glibc 上但获得了 musl 二进制文件**,删除安装并重新安装。您也可以使用 `https://downloads.claude.ai/claude-code-releases/{VERSION}/manifest.json` 处的清单手动下载正确的二进制文件。使用 `ldd --version` 和 `ls /lib/libc.musl*` 的输出提交 [GitHub issue](https://github.com/anthropics/claude-code/issues)。7632. **如果您在 glibc 上但获得了 musl 二进制文件**,删除安装并重新安装。您也可以使用 `https://downloads.claude.ai/claude-code-releases/{VERSION}/manifest.json` 处的清单手动下载正确的二进制文件。使用 `ldd --version` 和 `ls /lib/libc.musl*` 的输出提交 [GitHub 问题](https://github.com/anthropics/claude-code/issues)。

764 764 

7653. **如果您实际上在 musl 上**,例如 Alpine Linux,请安装所需的包:7653. **如果您实际上在 musl 上**,例如 Alpine Linux,请安装所需的包:

766 ```bash theme={null}766 ```bash theme={null}

767 apk add libgcc libstdc++ ripgrep767 apk add libgcc libstdc++ ripgrep

768 ```768 ```

769 在 Alpine 上,`ripgrep` 在社区存储库中。如果 `apk` 报告包缺失,请参阅 [Alpine Linux setup](/docs/zh-CN/setup#alpine-linux-and-musl-based-distributions)。769 在 Alpine 上,`ripgrep` 在社区存储库中。如果 `apk` 报告包丢失,请参阅 [Alpine Linux 设置](/docs/zh-CN/setup#alpine-linux-and-musl-based-distributions)。

770 770 

771<h3 id="illegal-instruction">771<h3 id="illegal-instruction">

772 `Illegal instruction`772 `Illegal instruction`


774 774 

775如果运行 `claude` 或安装程序打印 `Illegal instruction`,本机二进制文件使用您的处理器不支持的 CPU 指令。有两个不同的原因。775如果运行 `claude` 或安装程序打印 `Illegal instruction`,本机二进制文件使用您的处理器不支持的 CPU 指令。有两个不同的原因。

776 776 

777**架构不匹配。** 安装程序下载了错误的二进制文件,例如在 ARM 服务器上的 x86。在 macOS 或 Linux 上使用 `uname -m` 检查,或在 PowerShell 中使用 `$env:PROCESSOR_ARCHITECTURE`。如果结果与您收到的二进制文件不匹配,请 [file a GitHub issue](https://github.com/anthropics/claude-code/issues) 并提供输出。777**架构不匹配。** 安装程序下载了错误的二进制文件,例如在 ARM 服务器上的 x86。在 macOS 或 Linux 上使用 `uname -m` 检查,或在 PowerShell 中使用 `$env:PROCESSOR_ARCHITECTURE`。如果结果与您收到的二进制文件不匹配,请[提交 GitHub 问题](https://github.com/anthropics/claude-code/issues)并附上输出。

778 778 

779**缺失 AVX 指令集。** 如果您的架构正确但仍然看到 `Illegal instruction`,您的 CPU 可能缺少二进制文件需要的 AVX 或其他指令。这影响大约 2013 年之前的英特尔和 AMD 处理器,以及虚拟机(其中虚拟机管理程序不将 AVX 传递给客户机)。779**缺少 AVX 指令集。** 如果您的架构正确但仍然看到 `Illegal instruction`,您的 CPU 可能缺少 AVX 或二进制文件需要的其他指令。这影响大约 2013 年之前的英特尔和 AMD 处理器,以及超级管理程序不将 AVX 传递给来宾的虚拟机。

780 780 

781在 VPS 或 VM 上,运行 `grep -m1 -ow avx /proc/cpuinfo`;空结果意味着 AVX 对客户机不可用。781在 VPS 或 VM 上,运行 `grep -m1 -ow avx /proc/cpuinfo`;空结果意味着 AVX 对来宾不可用。

782 782 

783没有本机二进制文件解决方法;跟踪 [issue #50384](https://github.com/anthropics/claude-code/issues/50384) 以获取状态,并在报告时包括您的 CPU 型号(来自 Linux 上的 `grep -m1 "model name" /proc/cpuinfo` 或 macOS 上的 `sysctl -n machdep.cpu.brand_string`)。783没有本机二进制文件解决方法;跟踪 [issue #50384](https://github.com/anthropics/claude-code/issues/50384) 了解状态,并在报告时包括来自 Linux 上 `grep -m1 "model name" /proc/cpuinfo` 或 macOS 上 `sysctl -n machdep.cpu.brand_string` 的您的 CPU 型号。

784 784 

785替代安装方法下载相同的本机二进制文件,不会解决任一原因。785替代安装方法下载相同的本机二进制文件,不会解决任何一个原因。

786 786 

787<h3 id="dyld-cannot-load-on-macos">787<h3 id="dyld-cannot-load-on-macos">

788 macOS 上的 `dyld: cannot load`788 macOS 上的 `dyld: cannot load`


790 790 

791如果在安装期间看到 `dyld: Symbol not found`、`dyld: cannot load` 或 `Abort trap: 6`,二进制文件与您的 macOS 版本或硬件不兼容。791如果在安装期间看到 `dyld: Symbol not found`、`dyld: cannot load` 或 `Abort trap: 6`,二进制文件与您的 macOS 版本或硬件不兼容。

792 792 

793引用 `libicucore` 的 `Symbol not found` 错误意味着您的 macOS 版本比二进制文件支持的版本更旧:793引用 `libicucore` 的 `Symbol not found` 错误意味着您的 macOS 版本比二进制文件支持的要旧:

794 794 

795```text theme={null}795```text theme={null}

796dyld: Symbol not found: _ubrk_clone796dyld: Symbol not found: _ubrk_clone


809 809 

8101. **检查您的 macOS 版本**:Claude Code 需要 macOS 13.0 或更高版本。打开 Apple 菜单并选择"About This Mac"以检查您的版本。8101. **检查您的 macOS 版本**:Claude Code 需要 macOS 13.0 或更高版本。打开 Apple 菜单并选择"About This Mac"以检查您的版本。

811 811 

8122. **更新 macOS**(如果您在较旧版本上)。二进制文件使用较旧 macOS 版本不支持的加载命令和系统库。Homebrew 等替代安装方法下载相同的二进制文件,不会解决此错误。8122. **更新 macOS**,如果您在较旧版本上。二进制文件使用较旧 macOS 版本不支持的加载命令和系统库。Homebrew 等替代安装方法下载相同的二进制文件,不会解决此错误。

813 813 

814<h3 id="exec-format-error-on-wsl1">814<h3 id="exec-format-error-on-wsl1">

815 WSL1 上的 `Exec format error`815 WSL1 上的 `Exec format error`

816</h3>816</h3>

817 817 

818如果在 WSL 中运行 `claude` 打印 `cannot execute binary file: Exec format error`,您在 WSL1 上并遇到了在 [issue #38788](https://github.com/anthropics/claude-code/issues/38788) 中跟踪的已知本机二进制文件回归。二进制文件的程序头以 WSL1 的加载程序无法处理的方式改变。818如果在 WSL 中运行 `claude` 打印 `cannot execute binary file: Exec format error`,您在 WSL1 上,遇到了在 [issue #38788](https://github.com/anthropics/claude-code/issues/38788) 中跟踪的已知本机二进制文件回归。二进制文件的程序头以 WSL1 的加载程序无法处理的方式改变。

819 819 

820最干净的修复是从 PowerShell 将您的发行版转换为 WSL2:820最干净的修复是从 PowerShell 将您的发行版转换为 WSL2:

821 821 


823wsl --set-version <DistroName> 2823wsl --set-version <DistroName> 2

824```824```

825 825 

826如果您需要留在 WSL1 上,通过动态链接器调用二进制文件。将此函数添加到 WSL 内的 `~/.bashrc`,如果您的主目录不同,请替换路径:826如果您需要留在 WSL1 上,请通过动态链接器调用二进制文件。将此函数添加到 WSL 内的 `~/.bashrc`,如果您的主目录不同,请替换路径:

827 827 

828```bash theme={null}828```bash theme={null}

829claude() {829claude() {


837 WSL 中的 npm 安装错误837 WSL 中的 npm 安装错误

838</h3>838</h3>

839 839 

840如果您在 WSL 内使用 `npm install -g` 安装了 Claude Code,这些问题适用。如果您使用了 [native installer](/docs/zh-CN/setup),请跳过此部分。840如果您在 WSL 内使用 `npm install -g` 安装了 Claude Code,这些问题适用。如果您使用了[本机安装程序](/docs/zh-CN/setup),请跳过本部分。

841 841 

842**OS 或平台检测问题。** 如果 npm 在安装期间报告平台不匹配,WSL 可能正在选择 Windows `npm`。首先运行 `npm config set os linux`,然后使用 `npm install -g @anthropic-ai/claude-code --force` 安装。不要使用 `sudo`。842**OS 或平台检测问题。** 如果 npm 在安装期间报告平台不匹配,WSL 可能正在选择 Windows `npm`。首先运行 `npm config set os linux`,然后使用 `npm install -g @anthropic-ai/claude-code --force` 安装。不要使用 `sudo`。

843 843 

844**运行 `claude` 时 `exec: node: not found`。** 您的 WSL 环境可能使用 Node.js 的 Windows 安装。使用 `which npm` 和 `which node` 确认:以 `/mnt/c/` 开头的路径是 Windows 二进制文件,而 Linux 路径以 `/usr/` 开头。要修复此问题,通过您的 Linux 发行版的包管理器或通过 [`nvm`](https://github.com/nvm-sh/nvm) 安装 Node。844**运行 `claude` 时 `exec: node: not found`。** 您的 WSL 环境可能使用 Node.js 的 Windows 安装。使用 `which npm` 和 `which node` 确认:以 `/mnt/c/` 开头的路径是 Windows 二进制文件,而 Linux 路径以 `/usr/` 开头。要修复此问题,请通过您的 Linux 发行版的包管理器或通过 [`nvm`](https://github.com/nvm-sh/nvm) 安装 Node。

845 845 

846**nvm 版本冲突。** 如果您在 WSL 和 Windows 中都安装了 nvm,在 WSL 中切换 Node 版本可能会中断,因为 WSL 默认导入 Windows PATH,Windows nvm 优先。最常见的原因是 nvm 未在您的 shell 中加载。将 nvm 加载程序添加到 `~/.bashrc` 或 `~/.zshrc`:846**nvm 版本冲突。** 如果您在 WSL 和 Windows 中都安装了 nvm,在 WSL 中切换 Node 版本可能会中断,因为 WSL 默认导入 Windows PATH,Windows nvm 优先。最常见的原因是 nvm 未在您的 shell 中加载。将 nvm 加载程序添加到 `~/.bashrc` 或 `~/.zshrc`:

847 847 


857source ~/.nvm/nvm.sh857source ~/.nvm/nvm.sh

858```858```

859 859 

860如果 nvm 已加载但 Windows 路径仍然优先,显式预置您的 Linux Node 路径:860如果 nvm 已加载但 Windows 路径仍然优先,请显式预置您的 Linux Node 路径:

861 861 

862```bash theme={null}862```bash theme={null}

863export PATH="$HOME/.nvm/versions/node/$(node -v)/bin:$PATH"863export PATH="$HOME/.nvm/versions/node/$(node -v)/bin:$PATH"


871 安装期间的权限错误871 安装期间的权限错误

872</h3>872</h3>

873 873 

874如果本机安装程序因权限错误而失败,目标目录可能不可写。请参阅 [Check directory permissions](#check-directory-permissions)。874如果本机安装程序因权限错误失败,目标目录可能不可写。请参阅[检查目录权限](#check-directory-permissions)。

875 875 

876如果您之前使用 npm 安装并遇到 npm 特定的权限错误,请切换到本机安装程序:876如果您之前使用 npm 安装并遇到 npm 特定的权限错误,请切换到本机安装程序:

877 877 


880```880```

881 881 

882<h3 id="native-binary-not-found-after-npm-install">882<h3 id="native-binary-not-found-after-npm-install">

883 npm 安装后未找到本机二进制文件883 npm 安装后找不到本机二进制文件

884</h3>884</h3>

885 885 

886`@anthropic-ai/claude-code` npm 包通过每个平台的可选依赖项(如 `@anthropic-ai/claude-code-darwin-arm64`)下载本机二进制文件。然后 npm 运行包的 postinstall 脚本,该脚本将该二进制文件复制到位作为 `claude` 命令;在它运行之前,`claude` 是一个占位符脚本。如果下载或 postinstall 步骤被跳过,占位符会保留,在 macOS 和 Linux 上运行 `claude` 会打印:886`@anthropic-ai/claude-code` npm 包下载本机二进制文件作为每个平台的可选依赖项,例如 `@anthropic-ai/claude-code-darwin-arm64`。npm 然后运行包的 postinstall 脚本,将该二进制文件复制到位作为 `claude` 命令;在它运行之前,`claude` 是一个占位符脚本。如果下载或 postinstall 步骤被跳过,占位符保留在位,在 macOS 和 Linux 上运行 `claude` 打印:

887 887 

888```text theme={null}888```text theme={null}

889Error: claude native binary not installed.889Error: claude native binary not installed.


902 902 

903检查以下原因:903检查以下原因:

904 904 

905* **可选依赖项被禁用。** 从您的 npm install 命令中删除 `--omit=optional`,从 pnpm 中删除 `--no-optional`,或从 yarn 中删除 `--ignore-optional`,并检查 `.npmrc` 是否未设置 `optional=false`。然后重新安装。本机二进制文件仅作为可选依赖项提供,因此如果跳过它,就没有 JavaScript 回退,重新运行 `install.cjs` 无法放置从未下载的二进制文件。905* **可选依赖项被禁用。** 从您的 npm install 命令中删除 `--omit=optional`,从 pnpm 中删除 `--no-optional`,或从 yarn 中删除 `--ignore-optional`,并检查 `.npmrc` 不设置 `optional=false`。然后重新安装。本机二进制文件仅作为可选依赖项交付,因此如果跳过它,没有 JavaScript 回退,再次运行 `install.cjs` 无法放置从未下载的二进制文件。

906* **安装脚本被禁用。** `--ignore-scripts` 和某些 pnpm 配置跳过 postinstall 步骤,但仍然下载平台包。按照消息的建议运行 `node node_modules/@anthropic-ai/claude-code/install.cjs`,或不使用该标志重新安装。如果 postinstall 在您的环境中根本无法运行,`node node_modules/@anthropic-ai/claude-code/cli-wrapper.cjs` 会找到下载的包并启动它,代价是每次启动时额外的 Node 进程。如果包装器改为打印 `Could not find native binary package`,平台包从未被下载,因此首先修复上面的可选依赖项原因。906* **安装脚本被禁用。** `--ignore-scripts` 和某些 pnpm 配置跳过 postinstall 步骤但仍然下载平台包。运行 `node node_modules/@anthropic-ai/claude-code/install.cjs`,如消息所示,或不使用该标志重新安装。如果 postinstall 在您的环境中根本无法运行,`node node_modules/@anthropic-ai/claude-code/cli-wrapper.cjs` 找到下载的包并启动它,代价是每次启动时额外的 Node 进程。如果包装器改为打印 `Could not find native binary package`,平台包从未被下载,因此首先修复上面的可选依赖项原因。

907* **不支持的平台。** 预构建的二进制文件为 `darwin-arm64`、`darwin-x64`、`linux-x64`、`linux-arm64`、`linux-x64-musl`、`linux-arm64-musl`、`win32-x64` 和 `win32-arm64` 发布。Claude Code 不为其他平台提供二进制文件;请参阅 [system requirements](/docs/zh-CN/setup#system-requirements)。在 FreeBSD 上,安装程序报告平台不受支持。在 v2.1.205 之前,它将 FreeBSD 视为 Linux 并下载了无法运行的二进制文件。907* **不支持的平台。** 为 `darwin-arm64`、`darwin-x64`、`linux-x64`、`linux-arm64`、`linux-x64-musl`、`linux-arm64-musl`、`win32-x64` 和 `win32-arm64` 发布预构建二进制文件。Claude Code 不为其他平台提供二进制文件;请参阅[系统要求](/docs/zh-CN/setup#system-requirements)。在 FreeBSD 上,安装程序将平台报告为不支持。在 v2.1.205 之前,它将 FreeBSD 视为 Linux 并下载了无法运行的二进制文件。

908* **企业 npm 镜像缺少平台包。** 确保您的注册表除了元包外还镜像所有八个 `@anthropic-ai/claude-code-*` 平台包。908* **公司 npm 镜像缺少平台包。** 确保您的注册表除了元包外还镜像所有八个 `@anthropic-ai/claude-code-*` 平台包。

909 909 

910<h3 id="npm-enotempty-during-update-or-reinstall">910<h3 id="npm-enotempty-during-update-or-reinstall">

911 npm `ENOTEMPTY` 错误在更新或重新安装期间911 npm `ENOTEMPTY` 更新或重新安装期间的错误

912</h3>912</h3>

913 913 

914当您在现有安装上运行 `npm install -g @anthropic-ai/claude-code` 时,npm 在移动旧包目录时可能会失败:914当您在现有安装上运行 `npm install -g @anthropic-ai/claude-code` 时,npm 在移动旧包目录时可能会失败:


922npm error ENOTEMPTY: directory not empty, rename '...'922npm error ENOTEMPTY: directory not empty, rename '...'

923```923```

924 924 

925`npm error path` 行命名 npm 无法移动的目录。删除该目录和其旁边的任何剩余 `.claude-code-*` 目录,这些目录早期中断的运行可能会留下。下面的命令使用 `npm root -g` 找到您的全局包目录;如果 `npm error path` 行命名的目录不在 `npm root -g` 打印的目录下,例如因为您使用 nvm 切换了 Node 版本,请删除错误命名的目录:925`npm error path` 行命名 npm 无法移动的目录。删除该目录和其旁边的任何剩余 `.claude-code-*` 目录,这些目录可能由较早的中断运行留下。以下命令使用 `npm root -g` 找到您的全局包目录;如果 `npm error path` 行命名的目录不在 `npm root -g` 打印的目录下,例如因为您使用 nvm 切换了 Node 版本,请改为删除错误命名的目录:

926 926 

927<Tabs>927<Tabs>

928 <Tab title="macOS/Linux">928 <Tab title="macOS/Linux">


930 rm -rf "$(npm root -g)/@anthropic-ai/claude-code"930 rm -rf "$(npm root -g)/@anthropic-ai/claude-code"

931 ```931 ```

932 932 

933 然后删除任何剩余的临时目录。如果 zsh 打印 `no matches found`,则没有要删除的目录:933 然后删除任何剩余的临时目录。如果 Zsh 打印 `no matches found`,则没有要删除的目录:

934 934 

935 ```bash theme={null}935 ```bash theme={null}

936 rm -rf "$(npm root -g)/@anthropic-ai/.claude-code-"*936 rm -rf "$(npm root -g)/@anthropic-ai/.claude-code-"*

Details

413. 考虑将大型构建目录添加到您的 `.gitignore` 文件413. 考虑将大型构建目录添加到您的 `.gitignore` 文件

424. 使用 [`claude --safe-mode`](/docs/zh-CN/cli-reference#cli-flags) 重启以检查插件、MCP 服务器或 hook 是否是源头。它禁用会话的所有自定义;如果使用量下降,请参阅[调试您的配置](/docs/zh-CN/debug-your-config#test-against-a-clean-configuration)以找出是哪一个424. 使用 [`claude --safe-mode`](/docs/zh-CN/cli-reference#cli-flags) 重启以检查插件、MCP 服务器或 hook 是否是源头。它禁用会话的所有自定义;如果使用量下降,请参阅[调试您的配置](/docs/zh-CN/debug-your-config#test-against-a-clean-configuration)以找出是哪一个

43 43 

44如果会话的堆内存超过 2.5GB,会出现严重内存使用警告。要释放内存,请重启 Claude Code 并运行 [`claude --continue`](/docs/zh-CN/cli-reference#cli-flags) 以在新进程中恢复对话。

45 

46在[全屏渲染](/docs/zh-CN/fullscreen)之外,运行 `/compact` 也会释放内存。一旦内存使用量降至 2.5GB 以下,警告就会消失。

47 

44如果内存使用在这些步骤后仍然很高,请运行 `/heapdump` 以将两个文件写入 `~/Desktop`:一个名为 `<session-id>.heapsnapshot` 的 JavaScript 堆快照和一个名为 `<session-id>-diagnostics.json` 的内存分解。Claude Code [从命令菜单中隐藏该命令](/docs/zh-CN/commands#how-the-command-menu-matches-what-you-type);请完整输入它。在没有 Desktop 文件夹的 Linux 上,文件被写入您的主目录。48如果内存使用在这些步骤后仍然很高,请运行 `/heapdump` 以将两个文件写入 `~/Desktop`:一个名为 `<session-id>.heapsnapshot` 的 JavaScript 堆快照和一个名为 `<session-id>-diagnostics.json` 的内存分解。Claude Code [从命令菜单中隐藏该命令](/docs/zh-CN/commands#how-the-command-menu-matches-what-you-type);请完整输入它。在没有 Desktop 文件夹的 Linux 上,文件被写入您的主目录。

45 49 

46<Warning>50<Warning>


108 112 

109要将 Claude 的输出放在您的剪贴板上,请要求 Claude 在其响应中打印内容,然后运行 [`/copy`](/docs/zh-CN/commands)。`/copy` 从 Claude Code 进程本身而不是从沙箱化命令写入剪贴板,因此沙箱不会阻止它。它可以复制单个代码块而不是整个响应,它还将复制的内容写入文件并打印路径,这在剪贴板写入无法到达您的终端时提供回退,例如通过 SSH。113要将 Claude 的输出放在您的剪贴板上,请要求 Claude 在其响应中打印内容,然后运行 [`/copy`](/docs/zh-CN/commands)。`/copy` 从 Claude Code 进程本身而不是从沙箱化命令写入剪贴板,因此沙箱不会阻止它。它可以复制单个代码块而不是整个响应,它还将复制的内容写入文件并打印路径,这在剪贴板写入无法到达您的终端时提供回退,例如通过 SSH。

110 114 

111要让管道命令直接到达剪贴板,请将 `pbcopy *`、`wl-copy *` 或 `xclip *` 添加到 [`excludedCommands`](/docs/zh-CN/settings-reference#sandbox-excludedcommands),以便命令在沙箱外运行。115当 Claude 将文本管道到这些工具之一时,将 `pbcopy *`、`wl-copy *` 或 `xclip *` 添加到 [`excludedCommands`](/docs/zh-CN/settings-reference#sandbox-excludedcommands) 本身不会将该调用从沙箱中取出。

112 116 

113<h3 id="copied-text-doesn’t-reach-your-local-clipboard-over-ssh">117<h3 id="copied-text-doesn’t-reach-your-local-clipboard-over-ssh">

114 复制的文本在 SSH 上无法到达您的本地剪贴板118 复制的文本在 SSH 上无法到达您的本地剪贴板

ultrareview.md +10 −3

Details

50 50 

51基础分支不需要存在于您的本地克隆中;Claude Code 从 `origin` 获取它。如果名称有拼写错误,Claude Code 会在错误中建议最接近的分支名称。51基础分支不需要存在于您的本地克隆中;Claude Code 从 `origin` 获取它。如果名称有拼写错误,Claude Code 会在错误中建议最接近的分支名称。

52 52 

53提交 id 或标签也可以作为基础,审查将涵盖您的分支自该提交以来的更改。

54 

53<h3 id="review-a-pull-request">55<h3 id="review-a-pull-request">

54 审查拉取请求56 审查拉取请求

55</h3>57</h3>


114Ultrareview 在任何审查工作运行之前检查差异,并在无法按原样审查时告诉您:116Ultrareview 在任何审查工作运行之前检查差异,并在无法按原样审查时告诉您:

115 117 

116* **差异过大**:分支审查默认最多可包括 500 个更改的文件和 8,000 个更改的行。确切的值可能会改变,[拒绝](/docs/zh-CN/errors#diff-is-too-large-for-ultrareview)会说明生效的值、您的差异大小以及更改行数最多的文件。Claude Code 以相同的方式拒绝过大的拉取请求,说明其文件和行数,但不说明每个文件的细分118* **差异过大**:分支审查默认最多可包括 500 个更改的文件和 8,000 个更改的行。确切的值可能会改变,[拒绝](/docs/zh-CN/errors#diff-is-too-large-for-ultrareview)会说明生效的值、您的差异大小以及更改行数最多的文件。Claude Code 以相同的方式拒绝过大的拉取请求,说明其文件和行数,但不说明每个文件的细分

117* **没有要审查的内容**:当针对基础的差异为空时,Claude Code 会说明这一点,并建议暂存或提交本地编辑,或传递不同的基础119* **没有要审查的内容**:当针对基础的差异为空时,ultrareview 拒绝并说明它比较的分支或提交以及您所处的情况,例如在基础分支本身上且没有未提交的内容,或一个分支的所有提交都已是基础的一部分。它还为该情况建议解决方法,例如切换到您的工作分支、暂存或提交本地编辑,或传递不同的基础

118* **没有合并基础**:当您的分支与基础分支没有共享历史时,Claude Code 回退到审查存储库中的每个跟踪文件;回退需要完整克隆并应用相同的大小限制。在没有分支或其他引用的检出上,如通过在获取 URL 后检出 `FETCH_HEAD` 创建的分离 HEAD,Claude Code [拒绝审查](/docs/zh-CN/errors#your-checkout-has-no-branches)并建议首先创建分支120* **首次提交**:存储库的首次提交没有更早的内容可比较,因此 ultrareview 在您在启动对话框中确认后审查其中的每个文件。如果您有未跟踪的文件,它会拒绝并告诉您 `git add` 您想审查的文件。相同的大小限制适用。

121 

122 首次提交仅在该确认后才被整体审查,因此 `claude ultrareview` 子命令和 `claude -p` 拒绝它并指向您使用交互式会话。需要 Claude Code v2.1.277 或更高版本

123* **没有合并基础**:当您的分支与基础分支没有共享历史时,或存储库没有基础分支可比较时,ultrareview 审查存储库中的每个跟踪文件。回退需要完整克隆并应用相同的大小限制。它仅在您在启动对话框中确认或自己运行 `claude ultrareview` 子命令时启动。在 `claude -p` 和任何其他两者都不发生的地方,ultrareview 拒绝,说审查将涵盖每个文件,并指向您使用交互式会话。

124 

125 在没有分支或其他引用的检出上,例如通过在获取 URL 后检出 `FETCH_HEAD` 创建的分离 HEAD,Claude Code [拒绝审查](/docs/zh-CN/errors#your-checkout-has-no-branches)并建议首先创建分支

119 126 

120<h2 id="pricing-and-free-runs">127<h2 id="pricing-and-free-runs">

121 定价和免费运行128 定价和免费运行


166 173 

167不带参数时,该子命令审查您当前分支与默认分支之间的差异,当不存在合并基础时具有与 `/code-review ultra` 相同的[整个存储库回退](#diff-limits-and-fallbacks)。传递 PR 编号来审查拉取请求,或传递基础分支来审查与该分支的差异;[基础分支处理](#review-against-a-different-base)与交互式命令匹配。174不带参数时,该子命令审查您当前分支与默认分支之间的差异,当不存在合并基础时具有与 `/code-review ultra` 相同的[整个存储库回退](#diff-limits-and-fallbacks)。传递 PR 编号来审查拉取请求,或传递基础分支来审查与该分支的差异;[基础分支处理](#review-against-a-different-base)与交互式命令匹配。

168 175 

169运行该子命令时,您同意整个存储库回退以及计费和条款提示,因此运行开始时无需等待输入。176运行该子命令时,您同意整个存储库回退以及计费和条款提示,因此运行开始时无需等待输入。运行它本身就是您的同意。当 Claude 代替您运行该子命令时,例如通过 Bash 工具,Claude Code 会拒绝整个存储库审查。

170 177 

171在 Claude Code v2.1.218 或更高版本上,您也可以通过在非交互式会话中运行 `/code-review ultra` 来启动云审查,例如 `claude -p '/code-review ultra'`。Claude Code 启动审查并打印跟踪链接,无需等待发现,与 `claude ultrareview` 不同,后者会阻止直到发现到达。当审查会计费使用额度时,Claude Code 在启动前停止并指向 `claude ultrareview`,因为计费确认需要交互式会话。在 v2.1.218 之前,非交互式会话中的 `/code-review ultra` 运行本地审查。178在 Claude Code v2.1.218 或更高版本上,您也可以通过在非交互式会话中运行 `/code-review ultra` 来启动云审查,例如 `claude -p '/code-review ultra'`。Claude Code 启动审查并打印跟踪链接,无需等待发现,与 `claude ultrareview` 不同,后者会阻止直到发现到达。当审查会计费使用额度时,Claude Code 在启动前停止并指向 `claude ultrareview`,因为计费确认需要交互式会话。在 v2.1.218 之前,非交互式会话中的 `/code-review ultra` 运行本地审查。

172 179 

vs-code.md +80 −15

Details

90 * 在手动模式下,当 Claude 想要编辑文件时,它会显示原始内容和建议更改的并排比较,然后要求权限。您可以接受、拒绝或告诉 Claude 改为做什么。如果您在接受之前直接在差异视图中编辑建议的内容,Claude 会被告知您修改了它,因此它不会假设文件与其原始建议相匹配。90 * 在手动模式下,当 Claude 想要编辑文件时,它会显示原始内容和建议更改的并排比较,然后要求权限。您可以接受、拒绝或告诉 Claude 改为做什么。如果您在接受之前直接在差异视图中编辑建议的内容,Claude 会被告知您修改了它,因此它不会假设文件与其原始建议相匹配。

91 91 

92 <img src="https://mintcdn.com/claude-code/FVYz38sRY-VuoGHA/images/vs-code-edits.png?fit=max&auto=format&n=FVYz38sRY-VuoGHA&q=85&s=e005f9b41c541c5c7c59c082f7c4841c" alt="VS Code 显示 Claude 建议更改的差异,以及询问是否进行编辑的权限提示" width="3292" height="1876" data-path="images/vs-code-edits.png" />92 <img src="https://mintcdn.com/claude-code/FVYz38sRY-VuoGHA/images/vs-code-edits.png?fit=max&auto=format&n=FVYz38sRY-VuoGHA&q=85&s=e005f9b41c541c5c7c59c082f7c4841c" alt="VS Code 显示 Claude 建议更改的差异,以及询问是否进行编辑的权限提示" width="3292" height="1876" data-path="images/vs-code-edits.png" />

93 

94 要逐个审查建议的编辑,请使用差异中每个更改下的**接受此更改**和**拒绝此更改**按钮。拒绝更改会在建议的内容中还原它;接受会将其标记为已审查。接受或拒绝整个文件仍会完成审查。具有超过 100 个更改的差异会在没有按更改按钮的情况下打开,因此请将其作为整个文件进行审查。按更改审查需要 Claude Code v2.1.275 或更高版本。

95 

96 相同的操作可从编辑器的上下文菜单和命令面板中获得,分别为**Claude Code: Accept Change at Cursor** 和**Claude Code: Reject Change at Cursor**。

93 </Step>97 </Step>

94</Steps>98</Steps>

95 99 


110 * **Manual**:Claude 在文件编辑和大多数 shell 命令之前请求权限。114 * **Manual**:Claude 在文件编辑和大多数 shell 命令之前请求权限。

111 * **Plan**:Claude 描述它将做什么,并在进行更改之前等待批准。VS Code 自动将计划作为完整的 Markdown 文档打开,您可以在其中添加内联注释以在 Claude 开始之前提供反馈。115 * **Plan**:Claude 描述它将做什么,并在进行更改之前等待批准。VS Code 自动将计划作为完整的 Markdown 文档打开,您可以在其中添加内联注释以在 Claude 开始之前提供反馈。

112 * **Edit automatically**:Claude 进行编辑而不询问。116 * **Edit automatically**:Claude 进行编辑而不询问。

113* **Model**:从命令菜单中选择 **Switch model…** 以在会话中途更改模型。您也可以点击提示框底部的模型名称来打开相同的选择器。当当前模型支持[工作量级别](/docs/zh-CN/model-config#adjust-effort-level)时,选择器还会显示 **Effort** 行和模型名称按钮显示选定的级别。模型名称按钮和 **Effort** 行需要 Claude Code v2.1.257 或更高版本。117* **Model**:从命令菜单中选择 **Switch model…** 以在会话中途更改模型。您也可以点击提示框底部的模型名称来打开相同的选择器。

114* **Command menu**:点击 `/` 或输入 `/` 来打开命令菜单。选项包括附加文件、切换模型和切换扩展思考。Customize 部分提供对 MCP 服务器、slash commands、输出样式、hooks、memory、权限和插件的访问。带有终端图标的项目在集成终端中打开。118 

119 当当前模型支持[工作量级别](/docs/zh-CN/model-config#adjust-effort-level)时,选择器还会显示 **Effort** 行和模型名称按钮显示选定的级别。当您选择除 `max` 之外的级别时,Claude Code 会在 [`modelSettings`](/docs/zh-CN/settings-reference#modelsettings) 下的用户设置中将其保存为当前模型的默认值;`max` 仅适用于当前会话。模型名称按钮和 **Effort** 行需要 Claude Code v2.1.257 或更高版本。

120* **Command menu**:点击 `/` 或输入 `/` 来打开命令菜单。选项包括附加文件、切换模型和切换扩展思考。

121 

122 Customize 部分提供对 MCP 服务器、slash commands、输出样式、hooks、memory、instructions、permissions 和 plugins 的访问。带有终端图标的项目在集成终端中打开。

123 

115 * 要浏览 `/usage` 或 [`/remote-control`](/docs/zh-CN/remote-control) 等命令,请在 Customize 部分中选择 **Slash commands**。对话框会列出它们并带有过滤框。选择一个来运行它。在提示框中输入 `/` 仍会内联建议命令。需要 Claude Code v2.1.257 或更高版本。124 * 要浏览 `/usage` 或 [`/remote-control`](/docs/zh-CN/remote-control) 等命令,请在 Customize 部分中选择 **Slash commands**。对话框会列出它们并带有过滤框。选择一个来运行它。在提示框中输入 `/` 仍会内联建议命令。需要 Claude Code v2.1.257 或更高版本。

116 * 在 Customize 部分中选择 **Output styles** 来选择[输出样式](/docs/zh-CN/output-styles),包括您的自定义样式。需要 Claude Code v2.1.257 或更高版本。125 * 在 Customize 部分中选择 **Output styles** 来选择[输出样式](/docs/zh-CN/output-styles),包括您的自定义样式。需要 Claude Code v2.1.257 或更高版本。

117 126 

118 要创建自定义样式,请从 **Output styles** 菜单中选择 **Build a custom style**。Claude Code 会在项目或用户级别为您编写[样式文件](/docs/zh-CN/output-styles#create-a-custom-output-style)。需要 Claude Code v2.1.261 或更高版本。127 要创建自定义样式,请从 **Output styles** 菜单中选择 **Build a custom style**。Claude Code 会在项目或用户级别为您编写[样式文件](/docs/zh-CN/output-styles#create-a-custom-output-style)。需要 Claude Code v2.1.261 或更高版本。

119 * 在 Customize 部分中选择 **Hooks** 来查看[hooks](/docs/zh-CN/hooks)在会话中加载,按事件分组。您可以添加、编辑或删除保存在您的用户、项目和本地设置文件中的 hooks。来自其他来源的 Hooks,例如托管设置或插件,是只读的。需要 Claude Code v2.1.269 或更高版本。128 * 在 Customize 部分中选择 **Hooks** 来查看在会话中加载的 [hooks](/docs/zh-CN/hooks),按事件分组。您可以添加、编辑或删除保存在您的用户、项目和本地设置文件中的 hooks。来自其他来源的 Hooks,例如托管设置或插件,是只读的。需要 Claude Code v2.1.269 或更高版本。

120 * 在 Customize 部分中选择 **Permissions** 来查看会话的[权限规则](/docs/zh-CN/permissions),分组为 Allow、Ask 和 Deny。您可以向您的用户、项目或本地设置添加规则,并删除保存在那里的规则。来自其他来源的规则,例如托管设置或仅为此会话进行的批准,是只读的。需要 Claude Code v2.1.269 或更高版本。129 * 在 Customize 部分中选择 **Permissions** 来查看会话的[权限规则](/docs/zh-CN/permissions),分组为 Allow、Ask 和 Deny。您可以向您的用户、项目或本地设置添加规则,并删除保存在那里的规则。来自其他来源的规则,例如托管设置或仅为此会话进行的批准,是只读的。需要 Claude Code v2.1.269 或更高版本。

130 * 在 Customize 部分中选择 **Memory** 来打开或关闭[自动 memory](/docs/zh-CN/memory#auto-memory)。当它打开时,您也可以浏览 Claude 保存的 memories 并在您的文件管理器中显示存储它们的文件夹。需要 Claude Code v2.1.274 或更高版本。

131 

132 点击保存的 memory 来在对话框中读取它,您可以在其中编辑文本、删除 memory 或在编辑器中打开其文件。在对话框中查看、编辑和删除 memory 需要 Claude Code v2.1.275 或更高版本。

133 * 在 Customize 部分中选择 **Instructions** 来编辑 Claude 读取的 [CLAUDE.md 文件](/docs/zh-CN/memory#claude-md-files)。选择一个文件来在编辑器中打开它。如果文件还不存在,Claude Code 会先创建它。需要 Claude Code v2.1.274 或更高版本。

121 * Settings 部分包括 **Enable Remote Control for all sessions**,它设置 [`remoteControlAtStartup`](/docs/zh-CN/settings-reference#remotecontrolatstartup) 来控制[新的交互式会话是否自动连接到 Remote Control](/docs/zh-CN/remote-control#enable-remote-control-for-all-sessions)。需要 Claude Code v2.1.203 或更高版本。134 * Settings 部分包括 **Enable Remote Control for all sessions**,它设置 [`remoteControlAtStartup`](/docs/zh-CN/settings-reference#remotecontrolatstartup) 来控制[新的交互式会话是否自动连接到 Remote Control](/docs/zh-CN/remote-control#enable-remote-control-for-all-sessions)。需要 Claude Code v2.1.203 或更高版本。

122 135 

123 当您在 VS Code 窗口中打开或关闭切换开关时,更改适用于该 VS Code 窗口中已打开的会话,而不仅仅是您之后启动的会话。如果您关闭它,打开的会话将断开连接。使用 Claude Code v2.1.261 或更高版本,更改也会到达您其他 VS Code 窗口中打开的会话。136 当您在 VS Code 窗口中打开或关闭切换开关时,更改适用于该 VS Code 窗口中已打开的会话,而不仅仅是您之后启动的会话。如果您关闭它,打开的会话将断开连接。使用 Claude Code v2.1.261 或更高版本,更改也会到达您其他 VS Code 窗口中打开的会话。

124 * Settings 部分还包括 **Focus view**,它隐藏工具调用、工具结果和思考在可展开的行后面,只留下您的提示和 Claude 的响应。在那里切换它,使用 `Ctrl+Option+F`(Mac)/ `Ctrl+Alt+F`(Windows/Linux),或从命令面板使用 **Claude Code: Toggle Focus view**。更改适用于每个打开的会话并在会话之间持续。需要 Claude Code v2.1.221 或更高版本。137 * Settings 部分还包括 **Focus view**,它隐藏工具调用、工具结果和思考在可展开的行后面,只留下您的提示和 Claude 的响应。在那里切换它,使用 `Ctrl+Option+F`(Mac)/ `Ctrl+Alt+F`(Windows/Linux),或从命令面板使用 **Claude Code: Toggle Focus view**。更改适用于每个打开的会话并在会话之间持续。需要 Claude Code v2.1.221 或更高版本。

125 138 

126 Claude 的最新待办事项列表保持可见,Claude 提出的待处理问题的文本也保持可见;这需要 Claude Code v2.1.225 或更高版本。当 Claude 运行[子代理](/docs/zh-CN/sub-agents)时,带有其最新活动的实时进度行出现在启动它们的工具调用组下。这需要 Claude Code v2.1.269 或更高版本。139 Claude 的最新待办事项列表保持可见,Claude 提出的待处理问题的文本也保持可见;这需要 Claude Code v2.1.225 或更高版本。当 Claude 运行[子代理](/docs/zh-CN/sub-agents)时,带有其最新活动的实时进度行出现在启动它们的工具调用组下。这需要 Claude Code v2.1.269 或更高版本。

140 * 要登出您的 Anthropic 账户,请在 Settings 部分中选择 **Sign out**,或输入 `/logout`。在[第三方提供商](#use-third-party-providers)上,菜单不提供任何一个。需要 Claude Code v2.1.277 或更高版本。

127 * 要报告错误,请点击菜单底部的 **Report a problem**,或输入 `/bug` 或 `/feedback` 以及可选的描述来预填充报告。当您提交报告并且您在第一方连接上登录到 Anthropic 时,Claude Code 会将其发送给 Anthropic。在第三方提供商上,或没有 Anthropic 凭证的情况下,对话框仍会打开,但提交会显示错误并不发送任何内容:与 CLI 的 `/bug` 不同,扩展程序不会写入本地存档。需要 Claude Code v2.1.229 或更高版本。141 * 要报告错误,请点击菜单底部的 **Report a problem**,或输入 `/bug` 或 `/feedback` 以及可选的描述来预填充报告。当您提交报告并且您在第一方连接上登录到 Anthropic 时,Claude Code 会将其发送给 Anthropic。在第三方提供商上,或没有 Anthropic 凭证的情况下,对话框仍会打开,但提交会显示错误并不发送任何内容:与 CLI 的 `/bug` 不同,扩展程序不会写入本地存档。需要 Claude Code v2.1.229 或更高版本。

128 142 

129 如果您的组织的策略关闭了产品反馈,**Report a problem** 不会出现在菜单中,`/bug` 和 `/feedback` 会显示 `Feedback is turned off by your organization's policy or this environment's settings.` 通知,而不是打开报告。143 如果您的组织的策略关闭了产品反馈,**Report a problem** 不会出现在菜单中,`/bug` 和 `/feedback` 会显示 `Feedback is turned off by your organization's policy or this environment's settings.` 通知,而不是打开报告。

130* **Side questions**:输入 `/btw` 后跟一个问题来提问您的会话[而不添加到对话](/docs/zh-CN/interactive-mode#side-questions-with-%2Fbtw)。答案在聊天旁边的面板中打开,您可以在其中提出后续问题。线程在窗口重新加载后仍然存在。Claude Code 保留最新的 20 个交换,并根据 [`cleanupPeriodDays`](/docs/zh-CN/settings-reference#cleanupperioddays) 计划过期存储的线程,只要 Claude Code 可以[安全地确定保留期](/docs/zh-CN/claude-directory#cleaned-up-automatically)。要清除线程,请点击面板中的垃圾箱图标。需要 Claude Code v2.1.227 或更高版本。144* **Side questions**:输入 `/btw` 后跟一个问题来提问您的会话[而不添加到对话](/docs/zh-CN/interactive-mode#side-questions-with-%2Fbtw)。答案在聊天旁边的面板中打开,您可以在其中提出后续问题。线程在窗口重新加载后仍然存在。Claude Code 保留最新的 20 个交换,并根据 [`cleanupPeriodDays`](/docs/zh-CN/settings-reference#cleanupperioddays) 计划过期存储的线程,只要 Claude Code 可以[安全地确定保留期](/docs/zh-CN/claude-directory#cleaned-up-automatically)。要清除线程,请点击面板中的垃圾箱图标。需要 Claude Code v2.1.227 或更高版本。

145* **Copy a response**:将鼠标悬停在响应上并点击 **Copy response** 来将其复制到您的剪贴板,或输入 `/copy` 来复制最新的响应。`/copy 2` 复制倒数第二个。需要 Claude Code v2.1.277 或更高版本。

131* **Context indicator**:提示框显示您使用了多少 Claude 的上下文窗口。Claude 在需要时自动压缩,或者您可以手动运行 `/compact`。146* **Context indicator**:提示框显示您使用了多少 Claude 的上下文窗口。Claude 在需要时自动压缩,或者您可以手动运行 `/compact`。

132* **Prompt cache clock**:上下文指示器旁边的时钟图标估计对话的 [prompt cache](/docs/zh-CN/prompt-caching) 在过期前还剩多少时间。它从缓存的五分钟或一小时[生命周期](/docs/zh-CN/prompt-caching#cache-lifetime)倒计时,每个使用缓存的响应都会重新启动倒计时。除了压缩外,[使缓存失效的操作](/docs/zh-CN/prompt-caching#actions-that-invalidate-the-cache)不会重置时钟,因此在您切换模型后它仍然可以显示剩余的分钟数。147* **Prompt cache clock**:上下文指示器旁边的时钟图标估计对话的 [prompt cache](/docs/zh-CN/prompt-caching) 在过期前还剩多少时间。它从缓存的五分钟或一小时[生命周期](/docs/zh-CN/prompt-caching#cache-lifetime)倒计时,每个使用缓存的响应都会重新启动倒计时。除了压缩外,[使缓存失效的操作](/docs/zh-CN/prompt-caching#actions-that-invalidate-the-cache)不会重置时钟,因此在您切换模型后它仍然可以显示剩余的分钟数。

133 * 在倒计时结束之前,图标显示剩余的分钟数,例如 **12m**。148 * 在倒计时结束之前,图标显示剩余的分钟数,例如 **12m**。


136* **Agent map**:当对话包括[子代理](/docs/zh-CN/sub-agents)时,代理计数(例如 **2 agents**)出现在提示框的底部。其点显示任何子代理是否正在工作或等待您的权限。151* **Agent map**:当对话包括[子代理](/docs/zh-CN/sub-agents)时,代理计数(例如 **2 agents**)出现在提示框的底部。其点显示任何子代理是否正在工作或等待您的权限。

137 152 

138 点击代理计数来打开代理地图,它将对话的子代理绘制为主代理下的树,每个都有其状态、经过的时间和令牌计数。点击子代理来查看其提示和工具调用、打开其只读记录,或在其运行时停止它。需要 Claude Code v2.1.269 或更高版本。153 点击代理计数来打开代理地图,它将对话的子代理绘制为主代理下的树,每个都有其状态、经过的时间和令牌计数。点击子代理来查看其提示和工具调用、打开其只读记录,或在其运行时停止它。需要 Claude Code v2.1.269 或更高版本。

154 

155 地图还列出了会话的其他[后台任务](/docs/zh-CN/tools-reference#background-commands),例如后台 shell 命令和[监视器](/docs/zh-CN/tools-reference#monitor-tool),在代理下方。点击一行来打开任务的卡片并在那里停止它。

156 

157 要在没有显示代理计数时打开地图,例如当 Claude 已启动后台 shell 但没有子代理时,请在提示框中输入 `/tasks`。地图中的后台任务和输入的 `/tasks` 需要 Claude Code v2.1.277 或更高版本。

139* **Extended thinking**:让 Claude 花更多时间推理复杂问题。通过命令菜单(`/`)打开它。Claude 的推理在对话中显示为折叠块:点击一个块来阅读它,或按 `Ctrl+O` 来展开或折叠会话中的每个思考块。有关详细信息,请参阅[Extended thinking](/docs/zh-CN/model-config#extended-thinking)。158* **Extended thinking**:让 Claude 花更多时间推理复杂问题。通过命令菜单(`/`)打开它。Claude 的推理在对话中显示为折叠块:点击一个块来阅读它,或按 `Ctrl+O` 来展开或折叠会话中的每个思考块。有关详细信息,请参阅[Extended thinking](/docs/zh-CN/model-config#extended-thinking)。

140* **Multi-line input**:按 `Shift+Enter` 添加新行而不发送。这也适用于问题对话框的"Other"自由文本输入。159* **Multi-line input**:按 `Shift+Enter` 添加新行而不发送。这也适用于问题对话框的"Other"自由文本输入。

141 160 


154 173 

155当您在编辑器中选择文本时,Claude 可以自动看到您突出显示的代码。提示框页脚显示选择了多少行。按 `Option+K`(Mac)/ `Alt+K`(Windows/Linux)来插入带有文件路径和行号的 @-mention(例如 `@app.ts#5-10`)。点击选择指示器上的 **X** 来删除它,这样 Claude 就不会收到选择。当您选择其他文本时,指示器会重新出现。174当您在编辑器中选择文本时,Claude 可以自动看到您突出显示的代码。提示框页脚显示选择了多少行。按 `Option+K`(Mac)/ `Alt+K`(Windows/Linux)来插入带有文件路径和行号的 @-mention(例如 `@app.ts#5-10`)。点击选择指示器上的 **X** 来删除它,这样 Claude 就不会收到选择。当您选择其他文本时,指示器会重新出现。

156 175 

176扩展程序从某些文件中隐瞒选定的文本。当文件在您的工作区内并匹配您的 `files.exclude` 或 `search.exclude` 设置时,Claude 最多接收文件的路径而不是您选择的文本。同样适用于 git 忽略的文件,只要 VS Code 的 `search.useIgnoreFiles` 设置和扩展程序的 [`respectGitIgnore` 设置](#extension-settings)都打开,这是默认值。此过滤器仅覆盖聊天面板:当 Claude Code 在集成终端中运行时,CLI 会发送您选择的文本,无论文件如何,因此添加 [`Read` deny 规则](#the-built-in-ide-mcp-server)来防止文件的内容从 Claude 那里被发送。

177 

157Claude 也会看到您在编辑器中打开的文件,即使没有选择任何内容,提示框也会显示其名称。要仅添加您选择的文本,请关闭[附加打开文件设置](vscode://settings/claudeCode.attachOpenFile)。该设置需要 Claude Code v2.1.271 或更高版本。178Claude 也会看到您在编辑器中打开的文件,即使没有选择任何内容,提示框也会显示其名称。要仅添加您选择的文本,请关闭[附加打开文件设置](vscode://settings/claudeCode.attachOpenFile)。该设置需要 Claude Code v2.1.271 或更高版本。

158 179 

159要附加图像,请从剪贴板将其粘贴到提示框中。您也可以在将文件拖入提示框时按住 `Shift` 来将它们添加为附件。点击任何附件上的 X 来从上下文中删除它。180您也可以将图像和文件附加到您的消息:

181 

182* 要附加图像,请从剪贴板将其粘贴到提示框中。

183* 要附加文件,请在将它们拖入提示框时按住 `Shift`。

184* 要从上下文中删除附件,请点击它上面的 X。

160 185 

161<h3 id="resume-past-conversations">186<h3 id="resume-past-conversations">

162 恢复过去的对话187 恢复过去的对话


171 196 

172默认情况下,14 天内没有活动的会话会自动移动到 **Archived sessions**,除非它是打开的、未读的或在[组](#organize-sessions-into-groups)中。自动存档需要 Claude Code v2.1.265 或更高版本。要更改期间或关闭它,请打开[存档非活动会话设置](vscode://settings/claudeCode.archiveInactiveSessions)并选择天数或 **Never**。197默认情况下,14 天内没有活动的会话会自动移动到 **Archived sessions**,除非它是打开的、未读的或在[组](#organize-sessions-into-groups)中。自动存档需要 Claude Code v2.1.265 或更高版本。要更改期间或关闭它,请打开[存档非活动会话设置](vscode://settings/claudeCode.archiveInactiveSessions)并选择天数或 **Never**。

173 198 

174要恢复存档的会话,请展开 **Archived sessions** 并点击 **Unarchive session**。在 v2.1.257 之前,该操作是 **Delete session**,它隐藏了一个会话而无法恢复。您之前删除的会话在升级后会出现在 **Archived sessions** 下。199要恢复存档的会话,请展开 **Archived sessions** 并点击 **Unarchive session**。要一次恢复每个存档的会话,请将鼠标悬停在活动栏中会话列表中的 **Archived sessions** 标题上,并点击其取消存档图标,这需要 Claude Code v2.1.277 或更高版本。在 v2.1.257 之前,该操作是 **Delete session**,它隐藏了一个会话而无法恢复。您之前删除的会话在升级后会出现在 **Archived sessions** 下。

175 200 

176当您恢复的对话以 Plan 模式结束时,Claude Code 会恢复 Plan 模式。需要 Claude Code v2.1.246 或更高版本。Claude Code 在两种情况下不会恢复它:201当您恢复的对话以 Plan 模式结束时,Claude Code 会恢复 Plan 模式。需要 Claude Code v2.1.246 或更高版本。Claude Code 在两种情况下不会恢复它:

177 202 


206 检查账户和使用情况231 检查账户和使用情况

207</h3>232</h3>

208 233 

209运行 `/usage` 来打开 Account & usage 对话框。对话框需要 claude.ai 登录,因此在[第三方提供商](#use-third-party-providers)上不提供。它显示您登录的账户、您的计划以及您计划限制的使用条形图,例如当前会话和周。每个条形图显示距离其限制重置还有多长时间。234运行 `/usage` 来打开 Account & usage 对话框。它显示您登录的账户,使用情况报告因登录而异:

210 235 

211对话框还分解了对您的计划限制有贡献的内容。它标记占最近使用量 10% 或更多的行为,例如缓存未命中、长上下文和子代理密集或高度并行的会话,每个都有减少它的提示。Attribution 表显示了每个 skill、subagent、plugin 和 MCP 服务器贡献了多少使用量。236* **claude.ai plan**:您的计划限制的使用条形图,例如当前会话和周。每个条形图显示距离其限制重置还有多长时间。

212 237 

213使用 Day 和 Week 切换来在过去 24 小时和过去 7 天之间切换。这些数字是近似的,并从此机器上的本地会话计算,因此不包括来自其他设备或 claude.ai 的使用情况。有关跟踪和减少使用情况的更多信息,请参阅[跟踪您的成本](/docs/zh-CN/costs#track-your-costs)。238 对话框还分解了对您的计划限制有贡献的内容。它标记占最近使用量 10% 或更多的行为,例如缓存未命中、长上下文和子代理密集或高度并行的会话,每个都有减少它的提示。Attribution 表显示了每个 skill、subagent、plugin 和 MCP 服务器贡献了多少使用量。

239 

240 使用 Day 和 Week 切换来在过去 24 小时和过去 7 天之间切换。这些数字是近似的,并从此机器上的本地会话计算,因此不包括来自其他设备或 claude.ai 的使用情况。

241* **Other sign-ins**:当计划限制不适用于您的登录时,例如在[第三方提供商](#use-third-party-providers)上或使用 API 密钥时,Usage 部分显示会话自己的成本和令牌使用情况。CLI 的 `/usage` 在其[会话块](/docs/zh-CN/costs#track-your-costs)中显示相同的总计。活动栏中的会话列表也在其 **Account & usage** 标题下显示活跃会话的总计。需要 Claude Code v2.1.277 或更高版本。

242 

243有关跟踪和减少使用情况的更多信息,请参阅[跟踪您的成本](/docs/zh-CN/costs#track-your-costs)。

214 244 

215<h2 id="customize-your-workflow">245<h2 id="customize-your-workflow">

216 自定义您的工作流246 自定义您的工作流


228* **主侧边栏**:左侧边栏,带有 Explorer、Search 等图标。258* **主侧边栏**:左侧边栏,带有 Explorer、Search 等图标。

229* **编辑器区域**:将 Claude 作为选项卡打开,与您的文件并排显示。适用于辅助任务。259* **编辑器区域**:将 Claude 作为选项卡打开,与您的文件并排显示。适用于辅助任务。

230 260 

261当 Claude 在新编辑器组中打开选项卡时,该扩展会锁定该组,因此当 Claude 选项卡处于焦点时打开的文件会转到另一个组,而不是在其旁边。

262 

263要停止扩展锁定组,请关闭 [Lock Editor Groups setting](vscode://settings/claudeCode.lockEditorGroups)。已锁定的组将保持锁定状态,直到您解锁它们。该设置需要 Claude Code v2.1.274 或更高版本。

264 

231<Tip>265<Tip>

232 将侧边栏用于您的主要 Claude 会话,并为辅助任务打开其他选项卡。Claude 会记住您首选的位置。Activity Bar 会话列表图标与 Claude 面板分开:会话列表始终在 Activity Bar 中可见,而 Claude 面板图标仅在面板停靠到左侧边栏时才出现在那里。266 将侧边栏用于您的主要 Claude 会话,并为辅助任务打开其他选项卡。Claude 会记住您首选的位置。Activity Bar 会话列表图标与 Claude 面板分开:会话列表始终在 Activity Bar 中可见,而 Claude 面板图标仅在面板停靠到左侧边栏时才出现在那里。

233</Tip>267</Tip>


237* **编辑器选项卡**:对话会随其选项卡返回。271* **编辑器选项卡**:对话会随其选项卡返回。

238* **侧边栏**:如果您在过去 10 分钟内发送了消息或 Claude 在其中做出了响应,对话会返回。如果它没有返回,请从 [Session history](#resume-past-conversations) 恢复对话。272* **侧边栏**:如果您在过去 10 分钟内发送了消息或 Claude 在其中做出了响应,对话会返回。如果它没有返回,请从 [Session history](#resume-past-conversations) 恢复对话。

239 273 

274如果重新加载中断了 Claude 的中间步骤,当对话返回时 Claude 会继续该步骤,聊天中的通知会标记该继续。需要 Claude Code v2.1.274 或更高版本。如果步骤在一小时前被中断或会话在其他地方打开,对话会返回为空闲状态。

275 

276要关闭继续功能,请打开 [Continue After Reload setting](vscode://settings/claudeCode.continueAfterReload) 并取消勾选它。

277 

240<h3 id="run-multiple-conversations">278<h3 id="run-multiple-conversations">

241 运行多个对话279 运行多个对话

242</h3>280</h3>


304该 URL 接受两个查询参数:342该 URL 接受两个查询参数:

305 343 

306| 参数 | 描述 |344| 参数 | 描述 |

307| ------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |345| ------------- | -------------------------------------------------------------------------------------------------------------------------------------- |

308| `plugin` | 插件的名称,如其市场所列。必需。 |346| `plugin` | 插件的名称,如其市场所列。必需。 |

309| `marketplace` | 插件的来源,采用 [Marketplaces 选项卡](#manage-marketplaces) 接受的任何形式,例如 GitHub `owner/repo` 或 git URL。如果包含 `&` 等字符,请对其进行 URL 编码。省略时默认为 `anthropics/claude-plugins-official`。 |347| `marketplace` | 插件的来源:GitHub `owner/repo`、`https://` URL 或 git SSH URL,例如 `git@github.com:owner/repo.git`。省略时默认为 `anthropics/claude-plugins-official`。 |

348 

349[Marketplaces 选项卡](#manage-marketplaces)接受的某些值在链接中不起作用,例如本地路径或 `http://` 地址。对于这些,VS Code 会显示错误消息,对话框不会打开。

310 350 

311两种情况在对话框中以消息结束,而不是范围选择:351两种情况在对话框中以消息结束,而不是范围选择:

312 352 


364</Note>404</Note>

365 405 

366| 命令 | 快捷键 | 描述 |406| 命令 | 快捷键 | 描述 |

367| -------------------------- | -------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- |407| -------------------------- | -------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- |

368| Focus Input | `Cmd+Esc` (Mac) / `Ctrl+Esc` (Windows/Linux) | 在编辑器和 Claude 之间切换焦点 |408| Focus Input | `Cmd+Esc` (Mac) / `Ctrl+Esc` (Windows/Linux) | 在编辑器和 Claude 之间切换焦点 |

409| Focus last message | - | 将键盘焦点移动到对话中的最新消息,或移动到等待权限提示,以便您可以使用键盘或屏幕阅读器从那里读取。在[终端模式](#switch-to-terminal-mode)中不可用。需要 Claude Code v2.1.268 或更高版本 |

369| Open in Side Bar | - | 在侧边栏中打开 Claude |410| Open in Side Bar | - | 在侧边栏中打开 Claude |

370| Open in Terminal | - | 在终端模式下打开 Claude |411| Open in Terminal | - | 在终端模式下打开 Claude |

371| Open in New Tab | `Cmd+Shift+Esc` (Mac) / `Ctrl+Shift+Esc` (Windows/Linux) | 以编辑器选项卡形式打开新对话 |412| Open in New Tab | `Cmd+Shift+Esc` (Mac) / `Ctrl+Shift+Esc` (Windows/Linux) | 以编辑器选项卡形式打开新对话 |


373| New Conversation | `Cmd+N` (Mac) / `Ctrl+N` (Windows/Linux) | 开始新对话。需要 Claude 处于焦点状态且 `enableNewConversationShortcut` 设置为 `true` |414| New Conversation | `Cmd+N` (Mac) / `Ctrl+N` (Windows/Linux) | 开始新对话。需要 Claude 处于焦点状态且 `enableNewConversationShortcut` 设置为 `true` |

374| Reopen Closed Session | `Cmd+Shift+T` (Mac) / `Ctrl+Shift+T` (Windows/Linux) | 重新打开最近关闭的 Claude 会话选项卡。当最后关闭的选项卡不是 Claude 会话时,会回退到 VS Code 的正常重新打开关闭编辑器功能。使用 `enableReopenClosedSessionShortcut` 禁用 |415| Reopen Closed Session | `Cmd+Shift+T` (Mac) / `Ctrl+Shift+T` (Windows/Linux) | 重新打开最近关闭的 Claude 会话选项卡。当最后关闭的选项卡不是 Claude 会话时,会回退到 VS Code 的正常重新打开关闭编辑器功能。使用 `enableReopenClosedSessionShortcut` 禁用 |

375| Insert @-Mention Reference | `Option+K` (Mac) / `Alt+K` (Windows/Linux) | 插入对当前文件和选择的引用(需要编辑器处于焦点状态) |416| Insert @-Mention Reference | `Option+K` (Mac) / `Alt+K` (Windows/Linux) | 插入对当前文件和选择的引用(需要编辑器处于焦点状态) |

417| Accept Change at Cursor | - | 在[审查建议编辑](#get-started)时,一次接受光标处的更改。需要 Claude Code v2.1.275 或更高版本 |

418| Reject Change at Cursor | - | 在审查建议编辑时,一次拒绝光标处的更改。需要 Claude Code v2.1.275 或更高版本 |

376| Toggle Focus view | `Ctrl+Option+F` (Mac) / `Ctrl+Alt+F` (Windows/Linux) | 隐藏或显示对话中的工具活动。在 Claude 面板或侧边栏可见时有效。需要 Claude Code v2.1.221 或更高版本 |419| Toggle Focus view | `Ctrl+Option+F` (Mac) / `Ctrl+Alt+F` (Windows/Linux) | 隐藏或显示对话中的工具活动。在 Claude 面板或侧边栏可见时有效。需要 Claude Code v2.1.221 或更高版本 |

377| Rename Session Tab | - | 重命名活动 Claude 选项卡中的会话。需要 Claude Code v2.1.257 或更高版本 |420| Rename Session Tab | - | 重命名活动 Claude 选项卡中的会话。需要 Claude Code v2.1.257 或更高版本 |

378| Add Session Tab to Group | - | 将活动 Claude 选项卡中的会话添加到您选择或创建的[会话组](#organize-sessions-into-groups)。需要 Claude Code v2.1.257 或更高版本 |421| Add Session Tab to Group | - | 将活动 Claude 选项卡中的会话添加到您选择或创建的[会话组](#organize-sessions-into-groups)。需要 Claude Code v2.1.257 或更高版本 |


457| `useTerminal` | `false` | 在终端模式而不是图形面板中启动 Claude |500| `useTerminal` | `false` | 在终端模式而不是图形面板中启动 Claude |

458| `initialPermissionMode` | - | 控制新对话的批准提示:`default`、`plan`、`acceptEdits` 或 `bypassPermissions`。`manual` 是 `default` 的别名,选择模式指示器中标记为 **Manual** 的模式。当您将其留空时,扩展会选择起始权限模式,如[切换权限模式](/docs/zh-CN/permission-modes#switch-permission-modes)中所述。 |501| `initialPermissionMode` | - | 控制新对话的批准提示:`default`、`plan`、`acceptEdits` 或 `bypassPermissions`。`manual` 是 `default` 的别名,选择模式指示器中标记为 **Manual** 的模式。当您将其留空时,扩展会选择起始权限模式,如[切换权限模式](/docs/zh-CN/permission-modes#switch-permission-modes)中所述。 |

459| `preferredLocation` | `panel` | Claude 打开的位置:`sidebar`(右侧)或 `panel`(新标签页) |502| `preferredLocation` | `panel` | Claude 打开的位置:`sidebar`(右侧)或 `panel`(新标签页) |

503| `lockEditorGroups` | `true` | [锁定 Claude 为其标签页启动的编辑器组](#choose-where-claude-lives),以便您在 Claude 标签页获得焦点时打开的文件转到另一个组。关闭时,扩展永远不会锁定编辑器组。需要 Claude Code v2.1.274 或更高版本 |

460| `autosave` | `true` | Claude 读取或写入文件前自动保存文件 |504| `autosave` | `true` | Claude 读取或写入文件前自动保存文件 |

461| `attachOpenFile` | `true` | 将编辑器中打开的文件添加到您的消息中,并在提示框中显示它。关闭时,仅添加您选择的文本。需要 Claude Code v2.1.271 或更高版本 |505| `attachOpenFile` | `true` | 将编辑器中打开的文件添加到您的消息中,并在提示框中显示它。关闭时,仅添加您选择的文本。需要 Claude Code v2.1.271 或更高版本 |

462| `useCtrlEnterToSend` | `false` | 使用 Ctrl/Cmd+Enter 而不是 Enter 来发送提示 |506| `useCtrlEnterToSend` | `false` | 使用 Ctrl/Cmd+Enter 而不是 Enter 来发送提示 |

507| `scrollToBottomOnSend` | `true` | 当您发送消息时,将对话滚动到底部。关闭时,对话保持在您离开的位置。需要 Claude Code v2.1.275 或更高版本 |

463| `enableNewConversationShortcut` | `false` | 启用 Cmd/Ctrl+N 来开始新对话 |508| `enableNewConversationShortcut` | `false` | 启用 Cmd/Ctrl+N 来开始新对话 |

464| `enableReopenClosedSessionShortcut` | `true` | 使用 Cmd/Ctrl+Shift+T 重新打开最近关闭的 Claude 会话标签页。当最后关闭的标签页不是 Claude 会话时,快捷键会运行 VS Code 的正常重新打开关闭编辑器命令。 |509| `enableReopenClosedSessionShortcut` | `true` | 使用 Cmd/Ctrl+Shift+T 重新打开最近关闭的 Claude 会话标签页。当最后关闭的标签页不是 Claude 会话时,快捷键会运行 VS Code 的正常重新打开关闭编辑器命令。 |

465| `archiveInactiveSessions` | `14` | 在无活动的这么多天后[自动存档会话](#resume-past-conversations):`1`、`2`、`7` 或 `14`。设置为 `0` 以关闭。需要 Claude Code v2.1.265 或更高版本 |510| `archiveInactiveSessions` | `14` | 在无活动的这么多天后[自动存档会话](#resume-past-conversations):`1`、`2`、`7` 或 `14`。设置为 `0` 以关闭。需要 Claude Code v2.1.265 或更高版本 |

511| `continueAfterReload` | `true` | 窗口重新加载后,Claude [继续在恢复的会话中被中断的步骤](#choose-where-claude-lives)。需要 Claude Code v2.1.274 或更高版本 |

466| `hideOnboarding` | `false` | 隐藏入门清单(毕业帽图标) |512| `hideOnboarding` | `false` | 隐藏入门清单(毕业帽图标) |

467| `focusView` | `false` | 将工具调用、工具结果和思考隐藏在可展开的行后面,只留下您的提示和 Claude 的响应。Claude 的最新待办事项列表保持可见;这需要 Claude Code v2.1.225 或更高版本。您也可以从命令菜单切换焦点视图。需要 Claude Code v2.1.221 或更高版本 |513| `focusView` | `false` | 将工具调用、工具结果和思考隐藏在可展开的行后面,只留下您的提示和 Claude 的响应。Claude 的最新待办事项列表保持可见;这需要 Claude Code v2.1.225 或更高版本。您也可以从命令菜单切换焦点视图。需要 Claude Code v2.1.221 或更高版本 |

468| `respectGitIgnore` | `true` | 从文件搜索中排除 .gitignore 模式 |514| `respectGitIgnore` | `true` | 从文件搜索和[选择上下文](#reference-files-and-folders)中排除 .gitignore 模式 |

469| `usePythonEnvironment` | `true` | 运行 Claude 时激活工作区的 Python 环境。需要 Python 扩展。 |515| `usePythonEnvironment` | `true` | 运行 Claude 时激活工作区的 Python 环境。需要 Python 扩展。 |

470| `environmentVariables` | `[]` | 为 Claude 进程设置环境变量。对于共享配置,请改用 Claude Code 设置。 |516| `environmentVariables` | `[]` | 为 Claude 进程设置环境变量。对于共享配置,请改用 Claude Code 设置。 |

471| `disableLoginPrompt` | `false` | 跳过身份验证提示(用于第三方提供商设置) |517| `disableLoginPrompt` | `false` | 跳过身份验证提示(用于第三方提供商设置) |


487* **状态更改**:当 Claude 开始工作、Claude 准备好接收您的输入以及 Claude Code 开始压缩对话时,该扩展会宣布。533* **状态更改**:当 Claude 开始工作、Claude 准备好接收您的输入以及 Claude Code 开始压缩对话时,该扩展会宣布。

488* **错误和模型提示**:该扩展宣布对话中的错误,并在 [使用额度同意提示](/docs/zh-CN/model-config#fable-and-usage-credits) 或 [标记请求提示](/docs/zh-CN/model-config#ask-before-switching) 出现时宣布。534* **错误和模型提示**:该扩展宣布对话中的错误,并在 [使用额度同意提示](/docs/zh-CN/model-config#fable-and-usage-credits) 或 [标记请求提示](/docs/zh-CN/model-config#ask-before-switching) 出现时宣布。

489 535 

490记录中的每个回合都以视觉隐藏的标题开头,标题标记为启动该回合的提示,因此您可以使用屏幕阅读器的标题导航在回合之间跳转。您也可以使用 `Tab` 将焦点移动到记录本身,因为该扩展将其公开为标记的区域,并按您自己的速度读取。当 Claude 工作时,您的屏幕阅读器会读取一个文本标签来代替进度旋转器的动画。536当 Claude 工作时,您的屏幕阅读器会读取一个文本标签来代替进度旋转器的动画。

491 537 

492当您重新打开会话或切换到另一个会话时,该扩展不会宣布任何内容:恢复的历史记录、待处理的权限提示和进行中的状态保持沉默,直到发生新的事情。538当您重新打开会话或切换到另一个会话时,该扩展不会宣布任何内容:恢复的历史记录、待处理的权限提示和进行中的状态保持沉默,直到发生新的事情。

493 539 

540<h3 id="use-the-chat-panel-from-the-keyboard">

541 从键盘使用聊天面板

542</h3>

543 

544记录中的每个回合都以视觉隐藏的标题开头,标题标记为启动该回合的提示,因此您可以使用屏幕阅读器的标题导航在回合之间跳转。

545 

546在回合内,当您在其中移动时,您的屏幕阅读器会宣布您所在的消息来自谁:

547 

548* **您的消息**:"您"

549* **Claude 的消息**:"Claude"

550* **工具步骤**:"Claude"加上工具名称,例如"Claude,Bash"

551* **思考块**:"Claude,思考"

552 

553因为该扩展将记录公开为标记的区域,您也可以使用 `Tab` 将焦点移动到记录本身,并按您自己的速度读取。要将焦点移动到最新消息或等待的权限提示,请从 [命令面板](#vs-code-commands-and-shortcuts) 运行 **Claude Code: Focus last message**。

554 

555当权限提示上的选项保存权限规则或目录访问时,其标签末尾会命名批准的保存位置,例如"所有项目"或"此会话"。当该选项获得焦点时,按 `Left` 或 `Right` 箭头键以更改目标,该扩展会在您移动到每个目标时宣布。您也可以单击标签中的目标。箭头键需要 Claude Code v2.1.268 或更高版本。

556 

494<h2 id="vs-code-extension-vs-claude-code-cli">557<h2 id="vs-code-extension-vs-claude-code-cli">

495 VS Code extension vs. Claude Code CLI558 VS Code extension vs. Claude Code CLI

496</h2>559</h2>


543 Monitor background processes606 Monitor background processes

544</h3>607</h3>

545 608 

546与 CLI 相比,extension 中后台任务的可见性受限。为了获得更好的可见性,让 Claude 输出命令,以便您可以在 VS Code 的集成终端中运行它。609在提示框中输入 `/tasks` 以打开[代理地图](#use-the-prompt-box),它列出会话的后台任务,例如 Claude 作为后台 shell 命令留下运行的开发服务器。单击任务以打开其卡片并在那里停止它。需要 Claude Code v2.1.277 或更高版本。

547 610 

548<h3 id="connect-to-external-tools-with-mcp">611<h3 id="connect-to-external-tools-with-mcp">

549 Connect to external tools with MCP612 Connect to external tools with MCP


610 </Step>673 </Step>

611</Steps>674</Steps>

612 675 

613在第三方提供商上,扩展不提供需要 claude.ai 账户的功能,例如使用情况跟踪、[语音听写](/docs/zh-CN/voice-dictation)和用于[从 Claude.ai 恢复云会话](#resume-cloud-sessions-from-claude-ai)的 Web 标签页。来自早期 `/login` 的 claude.ai 登录会保留下来但未被使用:扩展不会在任何请求中发送它。676在第三方提供商上,扩展不提供需要 claude.ai 账户的功能,例如计划使用情况栏、[语音听写](/docs/zh-CN/voice-dictation)和用于[从 Claude.ai 恢复云会话](#resume-cloud-sessions-from-claude-ai)的 Web 标签页。有关这些登录时"账户和使用情况"对话框显示的内容,请参阅[检查账户和使用情况](#check-account-and-usage)。

677 

678来自早期 `/login` 的 claude.ai 登录会保留下来但未被使用:扩展不会在任何请求中发送它。

614 679 

615<h2 id="security-and-privacy">680<h2 id="security-and-privacy">

616 安全和隐私681 安全和隐私

workflows.md +4 −2

Details

231 231 

232在 v2.1.216 之前,Claude Code 跟随链接,这可能会将文件放在您选择的位置之外。232在 v2.1.216 之前,Claude Code 跟随链接,这可能会将文件放在您选择的位置之外。

233 233 

234在具有多个 `.claude/` 目录的单体仓库中,您可以将工作流保存在它们适用的包旁边。截至 v2.1.178,保存到项目位置会写入您的工作目录和仓库根之间已存在的最近的 `.claude/workflows/` 目录,或如果尚不存在则写入仓库根。项目工作流也从该路径上的每个 `.claude/workflows/` 加载,当多个定义相同名称时 Claude Code 运行最接近工作目录的那个。234在具有多个 `.claude/` 目录的单体仓库中,您可以将工作流保存在它们适用的包旁边。保存到项目位置会写入您的工作目录和仓库根之间已存在的最近的 `.claude/workflows/` 目录,或如果尚不存在则写入仓库根。项目工作流也从该路径上的每个 `.claude/workflows/` 加载,当多个定义相同名称时 Claude Code 运行最接近工作目录的那个。

235 235 

236如果项目工作流和个人工作流共享名称,项目工作流运行。236如果项目工作流和个人工作流共享名称,项目工作流运行。

237 237 


348 348 

349主体是带有顶级 `await` 的纯 JavaScript。`agent()` 生成一个子代理,`pipeline()` 为列表中的每个项目运行一个,`parallel()` 同时运行一组代理任务并等待所有任务完成。349主体是带有顶级 `await` 的纯 JavaScript。`agent()` 生成一个子代理,`pipeline()` 为列表中的每个项目运行一个,`parallel()` 同时运行一组代理任务并等待所有任务完成。

350 350 

351如果您在运行中途停止 `agent()` 调用或它遇到不可恢复的 API 错误,则 `agent()` 调用解析为 `null`。在[自动模式](/docs/zh-CN/permission-modes#eliminate-prompts-with-auto-mode)中,分类器可以在子代理启动之前阻止 `agent()` 调用。被阻止的调用解析为 `null` 并在运行的进度视图中显示原因。`pipeline()` 在结果数组中保留每个 `null`,这就是为什么示例以 `.filter(Boolean)` 结尾以删除这些条目。351如果您在运行中途停止 `agent()` 调用或它遇到不可恢复的 API 错误,则 `agent()` 调用解析为 `null`。`pipeline()` 在结果数组中保留每个 `null`,这就是为什么示例以 `.filter(Boolean)` 结尾以删除这些条目。

352 

353在[自动模式](/docs/zh-CN/permission-modes#eliminate-prompts-with-auto-mode)中,您的脚本传递给 `agent()` 的提示不会计为您的请求,当分类器审查该子代理的操作时,因为 Claude Code 将其标记为脚本计算的文本。

352 354 

353如果您在 `agent()` 调用上传递 `schema`,该子代理将返回与形状匹配的 JSON 而不是散文。Claude Code 在启动子代理之前检查架构:当它可以证明架构自相矛盾时,调用失败并显示一个错误,命名矛盾,子代理永远不会启动。它可以证明的一个矛盾是 `additionalProperties: false` 排除的 `required` 键。355如果您在 `agent()` 调用上传递 `schema`,该子代理将返回与形状匹配的 JSON 而不是散文。Claude Code 在启动子代理之前检查架构:当它可以证明架构自相矛盾时,调用失败并显示一个错误,命名矛盾,子代理永远不会启动。它可以证明的一个矛盾是 `additionalProperties: false` 排除的 `required` 键。

354 356 

worktrees.md +10 −5

Details

59 清理 worktrees59 清理 worktrees

60</h2>60</h2>

61 61 

62当您退出交互式 worktree 会话时,Claude 会检查 worktree 中的工作,删除会丢失这些工作:已更改或未跟踪的文件,以及新提交。62当您退出交互式 worktree 会话时,Claude 会检查 worktree 中的工作,删除会丢失这些工作:已更改或未跟踪的文件、已检出子模块内的未提交工作以及新提交。

63 63 

64* **worktree 是干净的**:对于未命名的会话,Claude 会自动删除 worktree 及其分支。[命名](/docs/zh-CN/sessions#name-your-sessions)的会话会提示您,以便您可以稍后保留 worktree64* **worktree 是干净的**:对于未命名的会话,Claude 会自动删除 worktree 及其分支。[命名](/docs/zh-CN/sessions#name-your-sessions)的会话会提示您,以便您可以稍后保留 worktree

65* **worktree 中有工作**:Claude 提示您保留或删除 worktree。保留会保留目录和分支,以便您稍后可以返回。删除会删除 worktree 目录及其分支,以及其中的所有工作65* **worktree 中有工作**:Claude 提示您保留或删除 worktree。保留会保留目录和分支,以便您稍后可以返回。删除会删除 worktree 目录及其分支,以及其中的所有工作

66* **worktree 的状态无法验证**:当 Claude Code 无法计算 worktree 的更改或无法检查其子模块检出时,它会提示您而不是自动删除 worktree。提示会说明它无法检查的内容

66 67 

67使用 `-p` 的非交互式运行没有退出提示,因此 Claude 不会清理它们的 worktrees,Claude Code 会保留它在创建时对每个 worktree 所取的锁,直到稍后会话的[陈旧锁扫描](#clean-up-subagent-and-background-session-worktrees)释放它。要删除一个,请运行 `git worktree remove`;如果 git 拒绝因为 worktree 被锁定,请先在其上运行 `git worktree unlock`。68使用 `-p` 的非交互式运行没有退出提示,因此 Claude 不会清理它们的 worktrees,Claude Code 会保留它在创建时对每个 worktree 所取的锁,直到稍后会话的[陈旧锁扫描](#clean-up-subagent-and-background-session-worktrees)释放它。要删除一个,请运行 `git worktree remove`;如果 git 拒绝因为 worktree 被锁定,请先在其上运行 `git worktree unlock`。

68 69 


101* **文件编辑**:Claude Code 阻止针对主检出中的路径的 `Edit`、`Write` 或 `NotebookEdit`。102* **文件编辑**:Claude Code 阻止针对主检出中的路径的 `Edit`、`Write` 或 `NotebookEdit`。

102* **命令工作目录**:Claude Code 阻止其工作目录解析为主检出的 Bash、PowerShell 或 Monitor 命令,或其工作目录它无法验证保持在其外的命令。103* **命令工作目录**:Claude Code 阻止其工作目录解析为主检出的 Bash、PowerShell 或 Monitor 命令,或其工作目录它无法验证保持在其外的命令。

103* **Git 重定向**:Claude Code 阻止将 git 重定向到主检出的 Bash 或 Monitor 命令。重定向可以通过 `git -C`、`--git-dir`、`GIT_DIR` 或 `GIT_WORK_TREE` 变量,或在运行 git 之前 `cd` 到主检出来进行。104* **Git 重定向**:Claude Code 阻止将 git 重定向到主检出的 Bash 或 Monitor 命令。重定向可以通过 `git -C`、`--git-dir`、`GIT_DIR` 或 `GIT_WORK_TREE` 变量,或在运行 git 之前 `cd` 到主检出来进行。

104* **命令形状**:当 Claude Code 无法从命令文本验证命令运行的任何 git 保持在 worktree 内时,它会阻止 Bash 或 Monitor 命令,例如当命令名称在运行时计算或语法无法解析时。Claude Code 告诉 Claude 如何重写被拒绝的命令,例如将其分割成普通的单独命令。您无法关闭此检查。105* **命令形状**:当 Claude Code 无法从命令文本验证命令运行的任何 git 保持在 worktree 内时,它会阻止 Bash 或 Monitor 命令。例如,当命令名称在运行时计算、语法无法解析,或当诸如 `${!name}` 或 `${ command; }` 之类的扩展可能运行文本中未明确说明的命令时,就会发生这种情况。Claude Code 告诉 Claude 如何重写被拒绝的命令,例如将其分割成普通的单独命令。您无法关闭此检查。

105 106 

106检查适用于您启动 Claude Code 的存储库。它们也涵盖链接的 worktree 链接自的主检出。对于 PowerShell 命令,Claude Code 仅应用工作目录检查。107检查适用于您启动 Claude Code 的存储库。它们也涵盖链接的 worktree 链接自的主检出。对于 PowerShell 命令,Claude Code 仅应用工作目录检查。

107 108 

108Claude 将每个拒绝视为命名 worktree 并说明如何继续的工具错误。109Claude 将每个拒绝视为命名 worktree 并说明如何继续的工具错误。有关被拒绝的命令,请参阅[拒绝消息的含义以及如何清除它](/docs/zh-CN/errors#command-blocked-by-the-worktree-isolation-checks)。

109 110 

110<h2 id="isolate-subagents-with-worktrees">111<h2 id="isolate-subagents-with-worktrees">

111 使用 worktrees 隔离子代理112 使用 worktrees 隔离子代理


139当您[后台](/docs/zh-CN/agent-view#send-the-session-to-the-background)一个 `--worktree` 会话时,其 worktree 变成后台会话 worktree,扫描可以删除。扫描在这些情况下保留 worktree:140当您[后台](/docs/zh-CN/agent-view#send-the-session-to-the-background)一个 `--worktree` 会话时,其 worktree 变成后台会话 worktree,扫描可以删除。扫描在这些情况下保留 worktree:

140 141 

141* worktree 仍然保留工作:已更改或未跟踪的文件,或未推送的提交。142* worktree 仍然保留工作:已更改或未跟踪的文件,或未推送的提交。

143* worktree 中已检出的子模块保留已更改或未跟踪的文件,或 Claude Code 无法检查 worktree 的子模块。此检查需要 Claude Code v2.1.274 或更高版本。

142* Claude Code 无法确定存储库配置定义的过滤驱动程序,或在其中找到它无法关闭的设置,或[四种也阻止 worktree 创建的情况](#git-lfs-content-is-missing-from-a-worktree-claude-code-created)中的任何一种适用。144* Claude Code 无法确定存储库配置定义的过滤驱动程序,或在其中找到它无法关闭的设置,或[四种也阻止 worktree 创建的情况](#git-lfs-content-is-missing-from-a-worktree-claude-code-created)中的任何一种适用。

143* worktree 属于您未后台的 `--worktree` 会话,无论其年龄如何。145* worktree 属于您未后台的 `--worktree` 会话,无论其年龄如何。

144* 您自己使用 `git worktree add` 创建了 worktree,即使您随后在其中运行了 `--worktree <name>` 会话并后台了该会话。146* 您自己使用 `git worktree add` 创建了 worktree,即使您随后在其中运行了 `--worktree <name>` 会话并后台了该会话。


251 Worktrees 与主检出共享的内容253 Worktrees 与主检出共享的内容

252</h2>254</h2>

253 255 

254Worktree 获得自己的文件和分支,但它与存储库的 `.git` 目录、项目范围的插件和保存的权限批准与主检出共享:256Worktree 获得自己的文件和分支,但它与主检出共享以下内容:

255 257 

256* **存储库的 `.git` 目录**:worktree 中的 git 命令写入主存储库的共享 `.git` 目录,[沙箱](/docs/zh-CN/sandboxing#filesystem-isolation)允许这些写入,因此 `git commit` 等命令可以从启用沙箱的 worktree 内部工作。258* **存储库的 `.git` 目录**:worktree 中的 git 命令写入主存储库的共享 `.git` 目录,[沙箱](/docs/zh-CN/sandboxing#filesystem-isolation)允许这些写入,因此 `git commit` 等命令可以从启用沙箱的 worktree 内部工作。

257* **插件**:从主检出在[项目范围](/docs/zh-CN/plugins-reference#plugin-installation-scopes)安装的插件也会在同一存储库的 worktrees 中加载,因此您无需为每个 worktree 重新安装它们。需要 Claude Code v2.1.200 或更高版本。259* **插件**:从主检出在[项目范围](/docs/zh-CN/plugins-reference#plugin-installation-scopes)安装的插件也会在同一存储库的 worktrees 中加载,因此您无需为每个 worktree 重新安装它们。需要 Claude Code v2.1.200 或更高版本。

258* **权限批准**:在 worktree 会话中为 Bash 命令选择"是,不再询问"会将规则保存到主检出的 `.claude/settings.local.json`,因此它适用于主检出和存储库的每个其他 worktree,并在 worktree 的删除后存活。在 Windows 和 Claude Code [不使用存储库根](/docs/zh-CN/settings#where-claude-code-looks-for-each-file)的其他情况下,规则与该 worktree 保持一致。在 v2.1.211 之前,在 worktree 中授予的批准被保存在该 worktree 内,不适用于其他地方,并在 worktree 被删除时丢失。请参阅[批准保存的位置](/docs/zh-CN/permissions#permission-system)。260* **权限批准**:在 worktree 会话中为 Bash 命令选择"是,不再询问"会将规则保存到主检出的 `.claude/settings.local.json`,因此它适用于主检出和存储库的每个其他 worktree,并在 worktree 的删除后存活。在 Windows 和 Claude Code [不使用存储库根](/docs/zh-CN/settings#where-claude-code-looks-for-each-file)的其他情况下,规则与该 worktree 保持一致。在 v2.1.211 之前,在 worktree 中授予的批准被保存在该 worktree 内,不适用于其他地方,并在 worktree 被删除时丢失。请参阅[批准保存的位置](/docs/zh-CN/permissions#permission-system)。

261* **未跟踪的 skills、agents 和 commands**:当 worktree 检出在其根目录没有 `.claude/skills` 目录时(例如因为您的 `.claude/skills` 被 gitignored),Claude Code 会在 worktree 会话中加载主检出的[项目 skills](/docs/zh-CN/skills#where-skills-live)。在具有自己的 `.claude/skills` 目录的 worktree 中,只加载该副本。

259 262 

260所有三个都适用于您是使用 `--worktree`、使用 `git worktree add` 还是通过[桌面应用](/docs/zh-CN/desktop#work-in-parallel-with-sessions)创建 worktree。263 相同的读取覆盖也适用于 `.claude/agents` 和 `.claude/commands`。对于 skills,读取覆盖需要 Claude Code v2.1.277 或更高版本。

264 

265无论您是使用 `--worktree`、使用 `git worktree add` 还是通过[桌面应用](/docs/zh-CN/desktop#work-in-parallel-with-sessions)创建 worktree,所有这些都适用。

261 266 

262<h2 id="manage-worktrees-manually">267<h2 id="manage-worktrees-manually">

263 手动管理 worktrees268 手动管理 worktrees