SpyBara
Go Premium

Documentation 2026-11-05 23:03 UTC to 2026-11-06 23:01 UTC

47 files changed +539 −380. View all changes and history on the product overview
2026
Fri 13 02:00 Thu 12 23:02 Wed 11 22:59 Tue 10 21:57 Mon 9 23:02 Sun 8 22:58 Sat 7 23:58 Fri 6 23:01 Thu 5 23:03 Wed 4 23:59 Tue 3 23:58 Mon 2 23:57 Sun 1 23:57
Details

167 167 

168### 工具权限168### 工具权限

169 169 

170Claude 根据任务确定调用哪些工具,但你控制这些调用是否被允许执行。你可以自动批准特定工具、完全阻止其他工具,或要求对所有工具进行批准。三个选项一起工作以确定什么运行:170Claude 根据任务确定调用哪些工具,但您控制这些调用是否被允许执行。使用以下选项可以自动批准工具、阻止工具以及设置权限模式:

171 171 

172* **`allowed_tools` / `allowedTools`** 自动批准列出的工具。允许工具列表中包含 `["Read", "Glob", "Grep"]` 的只读 Agent 会运行这些工具而不提示,但从[网络路径](https://code.claude.com/docs/zh-CN/permissions.md#network-paths)读取的情况除外。未列出的工具仍然可用,对它们的调用如果需要批准会转到权限模式和 `canUseTool`。172* **`allowed_tools` / `allowedTools`** 自动批准列出的工具。允许工具列表中包含 `["Read", "Glob", "Grep"]` 的只读 Agent 会运行这些工具而不提示,但从[网络路径](https://code.claude.com/docs/zh-CN/permissions.md#network-paths)读取的情况除外。未列出的工具仍然可用,对它们的调用如果需要批准会转到权限模式和 `canUseTool`。

173* **`disallowed_tools` / `disallowedTools`** 阻止列出的工具,无论其他设置如何。有关在工具运行前检查规则的顺序,请参阅 [权限](https://code.claude.com/docs/zh-CN/agent-sdk/permissions.md)。173* **`disallowed_tools` / `disallowedTools`** 阻止列出的工具,无论其他设置如何。有关在工具运行前检查规则的顺序,请参阅 [权限](https://code.claude.com/docs/zh-CN/agent-sdk/permissions.md)。

Details

303 303 

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

305 305 

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

307 

308### 跟踪失败对话的成本306### 跟踪失败对话的成本

309 307 

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

Details

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

227| `onFailure` | `"continue" \| "block"` | `undefined` | 回调失败时的行为。设置为 `"block"` 可[在回调失败时阻止操作](#block-the-action-when-a-callback-fails)。在 Python 中,使用 `on_failure` |227| `onFailure` | `"continue" \| "block"` | `undefined` | 回调失败时的行为。设置为 `"block"` 可[在回调失败时阻止操作](#block-the-action-when-a-callback-fails)。在 Python 中,使用 `on_failure` |

228 228 

229尽可能使用 `matcher` 模式来针对特定工具。带有 `'Bash'` 的匹配器仅对 Bash 命令运行,而省略模式会为事件的每次出现运行您的回调。229尽可能使用 `matcher` 模式来针对特定工具。使用 `'Bash'` 匹配器时,您的回调会针对 Bash 命令运行。在 Claude Code v2.1.314 或更高版本上,它们还会针对 Monitor 命令在 `PreToolUse` 和 `PermissionRequest` 上运行,对于这些命令,回调[可以拒绝但不能批准](https://code.claude.com/docs/zh-CN/hooks.md#match-monitor-commands)。如果没有匹配器,它们会在事件每次出现时运行。

230 230 

231### 回调函数231### 回调函数

232 232 

Details

70>70>

71> 路径应指向 plugin 的根目录:`skills/`、`agents/`、`hooks/`、`commands/` 或 `.claude-plugin/` 的父目录。71> 路径应指向 plugin 的根目录:`skills/`、`agents/`、`hooks/`、`commands/` 或 `.claude-plugin/` 的父目录。

72 72 

73### 在运行中的会话中重新加载插件

74 

75要在不启动新会话的情况下应用对插件的 skill、命令、Agent 或 hook 所做的更改,请在 TypeScript SDK 的 `Query` 对象上调用 [`reloadPlugins()`](https://code.claude.com/docs/zh-CN/agent-sdk/typescript#query-object)。Python SDK 未提供等效方法;请改为在会话中将 [`/reload-plugins`](https://code.claude.com/docs/zh-CN/plugins/cli-reference#reload-plugins) 作为提示词发送。

76 

73### 向运行中的会话添加插件77### 向运行中的会话添加插件

74 78 

75在 TypeScript SDK 中,对 `query()` 返回的 `Query` 对象调用 [`reloadPlugins()`](https://code.claude.com/docs/zh-CN/agent-sdk/typescript#load-more-plugin-folders-with-addplugins),并在该调用的 `addPlugins` 选项中列出插件目录。每个 `addPlugins` 条目都是一个带有绝对 `path` 的 `{ type: "local", path }` 对象。需要 TypeScript Agent SDK v0.3.301 或更高版本。79在 TypeScript SDK 中,对 `query()` 返回的 `Query` 对象调用 [`reloadPlugins()`](https://code.claude.com/docs/zh-CN/agent-sdk/typescript#load-more-plugin-folders-with-addplugins),并在该调用的 `addPlugins` 选项中列出插件目录。每个 `addPlugins` 条目都是一个带有绝对 `path` 的 `{ type: "local", path }` 对象。需要 TypeScript Agent SDK v0.3.301 或更高版本。

Details

1385| `enabled` | `type`, `budget_tokens`, `display` | 启用具有特定 token 预算的思考 |1385| `enabled` | `type`, `budget_tokens`, `display` | 启用具有特定 token 预算的思考 |

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

1387 1387 

1388可选的 `display` 字段控制思考文本以 `"summarized"` 还是 `"omitted"` 形式返回。在 Claude Opus 4.7 及更高版本上,API 默认值为 `"omitted"`,因此请设置 `"summarized"` 以在 [`ThinkingBlock`](#thinkingblock) 输出中接收思考内容。Claude Code 不会将您的 `display` 值传递给某些提供商,例如 Amazon Bedrock 和 Google Cloud 的 Agent Platform。在这些提供商上,即使您将 `display` 设置为 `"summarized"`,Opus 4.7 及更高版本也会返回空的 `ThinkingBlock` 输出。1388可选的 `display` 字段控制思考文本以 `"summarized"` 还是 `"omitted"` 形式返回。在 Claude Opus 4.7 及更高版本上,API 默认值为 `"omitted"`,因此请设置 `"summarized"` 以在 [`ThinkingBlock`](#thinkingblock) 输出中接收思考内容。在 Amazon Bedrock 和 Google Cloud 的 Agent Platform 等提供商上,对于其能识别的较早模型,Claude Code 不会传递 `display`。这些模型包括 Opus 4.6、Sonnet 4.6、Haiku 4.5 及更早的模型,它们使用各自的默认值。

1389 1389 

1390因为这些是 `TypedDict` 类,它们在运行时是普通字典。可以将它们构造为字典字面量,也可以像调用构造函数一样调用类;两者都产生 `dict`。使用 `config["budget_tokens"]` 访问字段,而不是 `config.budget_tokens`:1390因为这些是 `TypedDict` 类,它们在运行时是普通字典。可以将它们构造为字典字面量,也可以像调用构造函数一样调用类;两者都产生 `dict`。使用 `config["budget_tokens"]` 访问字段,而不是 `config.budget_tokens`:

1391 1391 


2517 2517 

2518### Hook 使用示例2518### Hook 使用示例

2519 2519 

2520此示例注册两个 hook:一个阻止危险的 Bash 命令(如 `rm -rf /`),另一个记录所有工具使用以进行审计。安全 hook 仅在 Bash 命令上运行(通过 `matcher`),而日志 hook 在所有工具上运行。2520此示例注册两个 hook:一个阻止危险的 Bash 命令(如 `rm -rf /`),另一个记录所有工具使用以进行审计。借助其 [`Bash` 匹配器](https://code.claude.com/docs/zh-CN/agent-sdk/hooks#matchers),安全 hook 在 Bash 工具调用上运行。日志 hook 没有匹配器,因此会在每次工具调用时运行。

2521 2521 

2522```python theme={null}2522```python theme={null}

2523import asyncio2523import asyncio


3668 3668 

3669### `SandboxIgnoreViolations`3669### `SandboxIgnoreViolations`

3670 3670 

3671用于忽略特定沙箱违规的配置。3671要从沙箱违规报告中排除的违规。每个键匹配命令的一部分,或使用 `*` 匹配所有命令;每个值列出要在违规行中匹配的文本:`{"*": ["/etc/hosts"]}` 会隐藏提及 `/etc/hosts` 的违规。匹配的访问仍会被阻止。请参阅 [`sandbox.ignoreViolations`](https://code.claude.com/docs/zh-CN/settings-reference#sandbox-ignoreviolations)。

3672 3672 

3673```python theme={null}3673```python theme={null}

3674class SandboxIgnoreViolations(TypedDict, total=False):3674SandboxIgnoreViolations = dict[str, list[str]]

3675 file: list[str]

3676 network: list[str]

3677```3675```

3678 3676 

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

3680| :- | :- | :- | :- |

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

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

3683 

3684### 沙箱外命令的权限回退3677### 沙箱外命令的权限回退

3685 3678 

3686当 `allowUnsandboxedCommands` 启用时,模型可以通过在工具输入中设置 `dangerouslyDisableSandbox: True` 来请求在沙箱外运行命令。这些请求回退到现有权限系统,意味着你的 `can_use_tool` 处理程序将被调用,允许你实现自定义授权逻辑。3679当 `allowUnsandboxedCommands` 启用时,模型可以通过在工具输入中设置 `dangerouslyDisableSandbox: True` 来请求在沙箱外运行命令。这些请求回退到现有权限系统,意味着你的 `can_use_tool` 处理程序将被调用,允许你实现自定义授权逻辑。

Details

1931 1931 

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

1933 1933 

1934`origin` 字段转发触发此结果的用户消息的 [`SDKMessageOrigin`](#sdkmessageorigin)。携带 `origin: { kind: "task-notification" }` 的结果包括:1934`origin` 字段包含 Claude Code 为触发此结果的用户消息分配的 [`SDKMessageOrigin`](#sdkmessageorigin),而不是您所发送 `origin` 的副本。携带 `origin: { kind: "task-notification" }` 的结果包括:

1935 1935 

1936* **合成的后续轮次**:当 SDK 注入一个合成的后续轮次时(例如针对已完成的后台任务),所产生的 `SDKResultMessage` 会携带此 kind1936* **合成的后续轮次**:当 SDK 注入一个合成的后续轮次时(例如针对已完成的后台任务),所产生的 `SDKResultMessage` 会携带此 kind

1937* **已触发的定时任务以及来自其他会话的消息**:触发器已触发的云端定时任务,以及来自您其他会话且经服务器验证的消息,也会以此 kind 到达,各自带有[任务通知 subkind](#task-notification-subkinds) 中所述的 `subkind`1937* **已触发的定时任务以及来自其他会话的消息**:触发器已触发的云端定时任务,以及来自您其他会话且经服务器验证的消息,也会以此 kind 到达,各自带有[任务通知 subkind](#task-notification-subkinds) 中所述的 `subkind`


1940 1940 

1941当多个后台任务完成一起排队时,Claude Code 可以在一轮中回答它们,而不是每个一轮。每个完成仍然产生自己的结果与此来源。Claude Code 一起回答的完成中除最后一个外的所有完成产生空结果,其中 `num_turns: 0`,按顺序,最后一个的结果携带回答它们全部的轮。1941当多个后台任务完成一起排队时,Claude Code 可以在一轮中回答它们,而不是每个一轮。每个完成仍然产生自己的结果与此来源。Claude Code 一起回答的完成中除最后一个外的所有完成产生空结果,其中 `num_turns: 0`,按顺序,最后一个的结果携带回答它们全部的轮。

1942 1942 

1943该字段在任何用户轮之前发出的结果上不存在,例如启动错误。1943当 Claude Code 未分配 origin 时,`origin` 不存在,例如:

1944 

1945* 在您以既无 `origin` 也无 [`isSynthetic`](#sdkusermessage) 的消息开启的轮次上

1946* 在任何用户轮次之前发出的结果上,例如启动错误

1944 1947 

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

1946 1949 


2435 2438 

2436### `SDKMessageOrigin`2439### `SDKMessageOrigin`

2437 2440 

2438用户角色消息的来源。这在 [`SDKUserMessage`](#sdkusermessage) 上显示为 `origin`,并转发到相应的 [`SDKResultMessage`](#sdkresultmessage),以便您可以告诉什么触发了给定的轮。2441用户角色消息的来源。它作为 `origin` 出现在 [`SDKUserMessage`](#sdkusermessage) 上。某一轮次的 [`SDKResultMessage`](#sdkresultmessage) 会携带 Claude Code 分配的 `origin`,因此您可以判断是什么触发了该轮次。

2439 2442 

2440```typescript theme={null}2443```typescript theme={null}

2441type SDKMessageOrigin =2444type SDKMessageOrigin =


2462 | { kind: "unclassified" };2465 | { kind: "unclassified" };

2463```2466```

2464 2467 

2468您的应用程序可以在其发送的消息上设置以下类型的 `origin`:

2469 

2470* `{ kind: "human" }`:用户输入的内容

2471* `{ kind: "task-notification", subkind: "scheduled-trigger" }`:[您声明的定时运行](#declare-a-scheduled-run)

2472 

2473其他类型请留给 Claude Code 和 Anthropic 服务器设置。如果您设置了其中某种类型,Claude 默认会将该消息视为用户的消息。

2474 

2475要发送并非用户编写的文本(例如抓取的页面或另一个 Agent 的输出),请将其作为单独的消息发送,将 [`isSynthetic`](#sdkusermessage) 设置为 `true` 并且不设置 `origin`。同时将 [`client_composed`](#sdkusermessage) 设置为 `true`,以免以 `/` 开头的文本作为命令运行。

2476 

2465| `kind` | 含义 |2477| `kind` | 含义 |

2466| - | - |2478| - | - |

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

2468| `channel` | 在[频道](https://code.claude.com/docs/zh-CN/channels.md)上到达的消息。`server` 是源 MCP 服务器名称。 |2480| `channel` | 在[频道](https://code.claude.com/docs/zh-CN/channels.md)上到达的消息。`server` 是源 MCP 服务器名称。 |

2469| `peer` | 来自另一个 Agent 的消息:进程内[队友](https://code.claude.com/docs/zh-CN/agent-teams.md)或[跨会话对等体](https://code.claude.com/docs/zh-CN/cross-session-messaging.md),您的另一个 Claude Code 会话。请参阅[对等体来源字段](#peer-origin-fields)了解每个字段的语义和信任模型。 |2481| `peer` | 来自另一个 Claude Code Agent 的消息:进程内的[队友](https://code.claude.com/docs/zh-CN/agent-teams.md),或[跨会话对等方](https://code.claude.com/docs/zh-CN/cross-session-messaging.md)(即您的另一个 Claude Code 会话)。在您的各会话之间中继此类消息的[桌面应用](https://code.claude.com/docs/zh-CN/desktop.md#work-across-sessions)会使用 [`fromMode`](#peer-origin-fields) 声明此类型。若要从您自己的应用程序中继另一个 Agent 的输出,请改为设置 `isSynthetic` 和 `client_composed`。有关各字段的语义和信任模型,请参阅[对等方来源字段](#peer-origin-fields)。 |

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

2471| `coordinator` | 来自 [agent team](https://code.claude.com/docs/zh-CN/agent-teams.md) 中的团队协调员的消息。 |2483| `coordinator` | 来自 [agent team](https://code.claude.com/docs/zh-CN/agent-teams.md) 中的团队协调员的消息。 |

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

2473| `unclassified` | 无法确定来源的注入轮。需要 Claude Code v2.1.223 或更高版本。当 Claude Code 接收带有 `isSynthetic: true` 的 [`SDKUserMessage`](#sdkusermessage) 并无法将其分类为任何其他 `kind` 时,它在消息到达时设置此类型,并将轮作为非用户来源呈现给模型,而不是将其视为人类输入。您的应用程序不应设置此值。 |2485| `unclassified` | 被标记为并非来自用户的消息,例如您以 `isSynthetic: true` 发送的 [`SDKUserMessage`](#sdkusermessage)。需要 Claude Code v2.1.223 或更高版本。 |

2474 2486 

2475### 任务通知子类型2487### 任务通知子类型

2476 2488 


2494`peer` 来源标识发送消息的 Agent:使用 `SendMessage` 向 `main` 发送消息的进程内[队友](https://code.claude.com/docs/zh-CN/agent-teams.md),或[跨会话对等方](https://code.claude.com/docs/zh-CN/cross-session-messaging.md)(即您的另一个 Claude Code 会话)。在 macOS 和 Linux 上,跨会话对等方需要 Claude Code v2.1.224 或更高版本;有关原生 Windows 的要求,请参阅[跨会话消息的可用性](https://code.claude.com/docs/zh-CN/cross-session-messaging.md#availability)。跨会话对等方可以在同一台机器上运行,也可以在[您的另一台机器](https://code.claude.com/docs/zh-CN/cross-session-messaging.md#message-sessions-on-other-machines)上运行,此时其消息通过 [Remote Control](https://code.claude.com/docs/zh-CN/remote-control.md) 到达。2506`peer` 来源标识发送消息的 Agent:使用 `SendMessage` 向 `main` 发送消息的进程内[队友](https://code.claude.com/docs/zh-CN/agent-teams.md),或[跨会话对等方](https://code.claude.com/docs/zh-CN/cross-session-messaging.md)(即您的另一个 Claude Code 会话)。在 macOS 和 Linux 上,跨会话对等方需要 Claude Code v2.1.224 或更高版本;有关原生 Windows 的要求,请参阅[跨会话消息的可用性](https://code.claude.com/docs/zh-CN/cross-session-messaging.md#availability)。跨会话对等方可以在同一台机器上运行,也可以在[您的另一台机器](https://code.claude.com/docs/zh-CN/cross-session-messaging.md#message-sessions-on-other-machines)上运行,此时其消息通过 [Remote Control](https://code.claude.com/docs/zh-CN/remote-control.md) 到达。

2495 2507 

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

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

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

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

2500* `body`:去除对等方信封后的已解码消息正文,与模型所见内容逐字节一致。对于单条队友消息,该字段存在;当多条消息被合并时,该字段不存在;对于跨会话对等方,仅当该轮次恰好是由 Claude Code 构成的一个对等方信封时才存在。请渲染 `name` 和 `body`,而不要重新解析消息文本。在 v2.1.299 之前,合并的消息会保留第一条消息的 `body`。需要 Claude Code v2.1.205 或更高版本。2512* `body`:去除对等方信封后的已解码消息正文,与模型所见内容逐字节一致。对于单条队友消息,该字段存在;当多条消息被合并时,该字段不存在;对于跨会话对等方,仅当该轮次恰好是由 Claude Code 构成的一个对等方信封时才存在。请渲染 `name` 和 `body`,而不要重新解析消息文本。在 v2.1.299 之前,合并的消息会保留第一条消息的 `body`。需要 Claude Code v2.1.205 或更高版本。


5419 | { type: "disabled" }; // No extended thinking5431 | { type: "disabled" }; // No extended thinking

5420```5432```

5421 5433 

5422可选的 `display` 字段控制思考文本以 `"summarized"` 还是 `"omitted"` 方式返回。在 Claude Opus 4.7 及更高版本上,API 默认值为 `"omitted"`,因此请设置 `"summarized"` 以在 `thinking` 块中接收思考内容。Claude Code 不会将您的 `display` 值传递给某些提供商,例如 Amazon Bedrock 和 Google Cloud 的 Agent Platform。在这些提供商上,即使您将 `display` 设置为 `"summarized"`,Opus 4.7 及更高版本也会返回空的 `thinking` 块。5434可选的 `display` 字段控制思考文本以 `"summarized"` 还是 `"omitted"` 方式返回。在 Claude Opus 4.7 及更高版本上,API 默认值为 `"omitted"`,因此请设置 `"summarized"` 以在 `thinking` 块中接收思考内容。在 Amazon Bedrock 和 Google Cloud 的 Agent Platform 等提供商上,对于 Claude Code 能识别的较早模型,Claude Code 不会传递 `display`。这些模型是 Opus 4.6、Sonnet 4.6、Haiku 4.5 及更早的模型,它们使用各自的默认值。

5423 5435 

5424### `SpawnedProcess`5436### `SpawnedProcess`

5425 5437 


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

6041| `network` | [`SandboxNetworkConfig`](#sandboxnetworkconfig) | `undefined` | 网络相关的沙箱配置 |6053| `network` | [`SandboxNetworkConfig`](#sandboxnetworkconfig) | `undefined` | 网络相关的沙箱配置 |

6042| `filesystem` | [`SandboxFilesystemConfig`](#sandboxfilesystemconfig) | `undefined` | 用于读/写限制的文件系统相关沙箱配置 |6054| `filesystem` | [`SandboxFilesystemConfig`](#sandboxfilesystemconfig) | `undefined` | 用于读/写限制的文件系统相关沙箱配置 |

6043| `ignoreViolations` | `Record<string, string[]>` | `undefined` | 从命令子字符串(或表示所有命令的 `*`)到要忽略的违规文本子字符串的映射,例如 `{ "*": ['/etc/hosts'] }`;请参阅 [`sandbox.ignoreViolations`](https://code.claude.com/docs/zh-CN/settings-reference#sandbox-ignoreviolations) |6055| `ignoreViolations` | `Record<string, string[]>` | `undefined` | 要从沙箱违规报告中排除的违规。每个键匹配命令的一部分(或使用 `*` 表示所有命令),每个值列出要在违规行中匹配的文本:`{ "*": ['/etc/hosts'] }` 会隐藏提及 `/etc/hosts` 的违规。请参阅 [`sandbox.ignoreViolations`](https://code.claude.com/docs/zh-CN/settings-reference#sandbox-ignoreviolations) |

6044| `enableWeakerNestedSandbox` | `boolean` | `false` | 为兼容性启用较弱的嵌套沙箱 |6056| `enableWeakerNestedSandbox` | `boolean` | `false` | 为兼容性启用较弱的嵌套沙箱 |

6045| `allowNestedUserNamespaces` | `boolean` | `false` | 允许 Linux 和 WSL2 上在沙箱中运行的命令创建用户命名空间。在将其设置为 `true` 之前,请阅读 [`sandbox.allowNestedUserNamespaces`](https://code.claude.com/docs/zh-CN/settings-reference#sandbox-allownestedusernamespaces),其中介绍了需要此设置的工具以及您将关闭的安全边界。需要 Claude Code v2.1.305 或更高版本 |6057| `allowNestedUserNamespaces` | `boolean` | `false` | 允许 Linux 和 WSL2 上在沙箱中运行的命令创建用户命名空间。在将其设置为 `true` 之前,请阅读 [`sandbox.allowNestedUserNamespaces`](https://code.claude.com/docs/zh-CN/settings-reference#sandbox-allownestedusernamespaces),其中介绍了需要此设置的工具以及您将关闭的安全边界。需要 Claude Code v2.1.305 或更高版本 |

6046| `ripgrep` | `{ command: string; args?: string[] }` | `undefined` | 用于沙箱环境的自定义 ripgrep 二进制文件配置 |6058| `ripgrep` | `{ command: string; args?: string[] }` | `undefined` | 用于沙箱环境的自定义 ripgrep 二进制文件配置 |

agent-teams.md +1 −1

Details

296>296>

297> 要让它在编辑前询问,请在 Agent 面板中的 `main` 行上按 Enter,并将负责人也切换到 Manual 模式。之后负责人也会询问,任何其他处于 Manual 模式的队友同样如此。297> 要让它在编辑前询问,请在 Agent 面板中的 `main` 行上按 Enter,并将负责人也切换到 Manual 模式。之后负责人也会询问,任何其他处于 Manual 模式的队友同样如此。

298 298 

299您无法在生成时设置每个队友的权限模式。新队友以负责人的模式启动,包括由 `--dangerously-skip-permissions` 开启的 `bypassPermissions` 模式。如果负责人处于 [`dontAsk` 模式](https://code.claude.com/docs/zh-CN/permission-modes#allow-only-pre-approved-tools-with-dontask-mode),队友则改为以 [Manual 模式](https://code.claude.com/docs/zh-CN/permission-modes.md#available-modes) 启动。299您无法在生成时设置每个队友的权限模式。新队友以负责人的模式启动,包括由 `--dangerously-skip-permissions` 开启的 `bypassPermissions` 模式。如果负责人处于 [`dontAsk` 模式](https://code.claude.com/docs/zh-CN/permission-modes#allow-only-pre-approved-tools-with-dontask-mode),队友则改为以 [Manual 模式](https://code.claude.com/docs/zh-CN/permission-modes.md#available-modes) 启动。对于负责人处于 Manual 或 `dontAsk` 模式的分割窗格队友,这需要 Claude Code v2.1.317 或更高版本。

300 300 

301[进程内](#choose-a-display-mode)队友在负责人实时的允许和拒绝规则下运行,因此 [`--disallowedTools`](https://code.claude.com/docs/zh-CN/cli-reference#cli-flags)、`--tools` 和 `--allowedTools` 都适用于它。对于分割窗格队友,请逐一检查各个标志:301[进程内](#choose-a-display-mode)队友在负责人实时的允许和拒绝规则下运行,因此 [`--disallowedTools`](https://code.claude.com/docs/zh-CN/cli-reference#cli-flags)、`--tools` 和 `--allowedTools` 都适用于它。对于分割窗格队友,请逐一检查各个标志:

302 302 

artifacts.md +1 −1

Details

141 141 

142* **没有网络访问权限的云端会话**:对于[云环境](https://code.claude.com/docs/zh-CN/cloud-environments.md#access-levels),即 **None** 级别。在[自动模式](https://code.claude.com/docs/zh-CN/permission-modes.md#eliminate-prompts-with-auto-mode)下,可以改由分类器进行批准;在 [Cowork](https://claude.com/product/cowork) 会话中,只能由您本人批准。142* **没有网络访问权限的云端会话**:对于[云环境](https://code.claude.com/docs/zh-CN/cloud-environments.md#access-levels),即 **None** 级别。在[自动模式](https://code.claude.com/docs/zh-CN/permission-modes.md#eliminate-prompts-with-auto-mode)下,可以改由分类器进行批准;在 [Cowork](https://claude.com/product/cowork) 会话中,只能由您本人批准。

143* **其他组织的公开 Artifact**:即使在自动模式下,Claude Code 也会先询问您。在 Claude Code 无法询问您的情况下(例如在 `bypassPermissions` 模式下),Claude 无法读取该 Artifact。只有在[功能标志获取](https://code.claude.com/docs/zh-CN/env-vars.md#features-that-need-feature-flag-fetching)开启时,Claude 才能读取这些 Artifact。143* **其他组织的公开 Artifact**:即使在自动模式下,Claude Code 也会先询问您。在 Claude Code 无法询问您的情况下(例如在 `bypassPermissions` 模式下),Claude 无法读取该 Artifact。只有在[功能标志获取](https://code.claude.com/docs/zh-CN/env-vars.md#features-that-need-feature-flag-fetching)开启时,Claude 才能读取这些 Artifact。

144* **无法确认所有者或网络设置**:当 Claude Code 无法确认 Artifact 的创建者,或无法确认云端会话的网络设置时,它会进行询问,且您的批准仅适用于该次请求。144* **无法确认所有者或网络设置**:当 Claude Code 无法确认 Artifact 的创建者,或无法确认云端会话的网络设置时,它会进行询问,且您的批准仅适用于该次请求。在[自动模式](https://code.claude.com/docs/zh-CN/permission-modes.md#eliminate-prompts-with-auto-mode)下,可以改由分类器批准或阻止该读取操作,而不是询问您。

145* **计划模式**:在[计划模式](https://code.claude.com/docs/zh-CN/permission-modes.md#analyze-before-you-edit-with-plan-mode)下,Claude Code 会在 Artifact 工具读取您组织中其他人创建的 Artifact 之前进行询问。145* **计划模式**:在[计划模式](https://code.claude.com/docs/zh-CN/permission-modes.md#analyze-before-you-edit-with-plan-mode)下,Claude Code 会在 Artifact 工具读取您组织中其他人创建的 Artifact 之前进行询问。

146 146 

147当 Claude 使用 WebFetch 读取 Artifact 时,WebFetch 自身的[提示规则](https://code.claude.com/docs/zh-CN/tools-reference.md#webfetch-tool-behavior)仍然适用。147当 Claude 使用 WebFetch 读取 Artifact 时,WebFetch 自身的[提示规则](https://code.claude.com/docs/zh-CN/tools-reference.md#webfetch-tool-behavior)仍然适用。

Details

29 29 

30## 使会话符合条件30## 使会话符合条件

31 31 

32如果网关是原因,请要求您公司的管理员或网关提供商原封不动地传递请求和回复。这意味着按原样转发请求头和正文字段,包括网关不识别的字段,例如 `safeguards` 请求字段,以及返回响应和流式事件而不删除键(例如 `safeguard_results` 字段)或重写工具使用 ID,如[网关兼容性指南](https://code.claude.com/docs/zh-CN/llm-gateway-protocol.md#feature-pass-through)所述。以这种方式传递流量的网关可继续与此功能和未来功能配合使用。新会话随后再次使用服务器的检查。32如果网关导致自动模式的服务器端检查无法到达您的会话,而您并不负责运行该网关,请将以下要求发送给您公司的管理员或网关提供商。在[上游接受网关所收到的格式](https://code.claude.com/docs/zh-CN/llm-gateway-protocol.md#format-mismatch-with-the-upstream)的情况下,Claude Code 要求网关原封不动地传递请求和响应,如[网关兼容性指南](https://code.claude.com/docs/zh-CN/llm-gateway-protocol.md#feature-pass-through)所述:

33 

34* **请求**:为了让检查通过,网关需原封不动地转发 `anthropic-beta` 请求头和 `safeguards` 正文字段,因为[两者是成对传递的](https://code.claude.com/docs/zh-CN/llm-gateway-protocol.md#beta-header-and-body-field-pairs)。在 [Amazon Bedrock InvokeModel 格式](https://code.claude.com/docs/zh-CN/llm-gateway-protocol.md#api-formats)上,网关转发 `anthropic_beta` 正文字段来代替该请求头。

35* **响应**:网关返回响应和流式事件时,不得删除字段或重写工具使用 ID。为了让检查结果通过,网关需保留 `safeguard_results` 字段。

36 

37以这种方式传递流量的网关可继续与此功能和未来功能配合使用。新会话随后再次使用服务器的检查。

33 38 

34如果您已经知道您的网关无法提供服务器的检查,请在启动会话之前通过在 shell 中或在 [`env` 设置键](https://code.claude.com/docs/zh-CN/settings-reference#env)中将 `CLAUDE_CODE_AUTO_MODE_SERVER` 设置为 `0` 来告诉 Claude Code 不要在那里请求它们:39如果您已经知道您的网关无法提供服务器的检查,请在启动会话之前通过在 shell 中或在 [`env` 设置键](https://code.claude.com/docs/zh-CN/settings-reference#env)中将 `CLAUDE_CODE_AUTO_MODE_SERVER` 设置为 `0` 来告诉 Claude Code 不要在那里请求它们:

35 40 

channels.md +1 −1

Details

354| 功能 | 它做什么 | 适合 |354| 功能 | 它做什么 | 适合 |

355| - | - | - |355| - | - | - |

356| [云端会话](https://code.claude.com/docs/zh-CN/claude-code-on-the-web.md) | 在新的云沙箱中运行任务,从 GitHub 克隆 | 委派您稍后检查的自包含异步工作 |356| [云端会话](https://code.claude.com/docs/zh-CN/claude-code-on-the-web.md) | 在新的云沙箱中运行任务,从 GitHub 克隆 | 委派您稍后检查的自包含异步工作 |

357| [Slack 中的 Claude](https://code.claude.com/docs/zh-CN/slack.md) | 从频道或线程中的 `@Claude` 提及生成云端会话 | 直接从团队对话上下文启动任务 |357| [Slack 中的 Claude](https://code.claude.com/docs/zh-CN/slack.md) | 从频道或线程中的 `@Claude` 提及生成云端会话 | 直接从团队对话中启动任务 |

358| 标准 [MCP 服务器](https://code.claude.com/docs/zh-CN/mcp.md) | Claude 在任务期间查询它;没有任何内容被推送到会话 | 给 Claude 按需访问以读取或查询系统 |358| 标准 [MCP 服务器](https://code.claude.com/docs/zh-CN/mcp.md) | Claude 在任务期间查询它;没有任何内容被推送到会话 | 给 Claude 按需访问以读取或查询系统 |

359| [Remote Control](https://code.claude.com/docs/zh-CN/remote-control.md) | 您从 claude.ai 或 Claude 移动应用程序驱动您的本地会话 | 在离开您的办公桌时指导进行中的会话 |359| [Remote Control](https://code.claude.com/docs/zh-CN/remote-control.md) | 您从 claude.ai 或 Claude 移动应用程序驱动您的本地会话 | 在离开您的办公桌时指导进行中的会话 |

360 360 

Details

350 350 

351### 向 Claude Desktop 会话传递策略351### 向 Claude Desktop 会话传递策略

352 352 

353Claude Desktop 的 Cowork 和 Code 标签页(以及启用后的 Chat)运行在嵌入式 Claude Code 会话之上,并通过网关发送其模型请求。它会向每个这样的会话传递策略,这些策略基于网关在 `/user/bootstrap` 处提供给它的配置构建:即从匹配策略的 `cli` 或 `code` 块派生出的模型允许列表、禁用的工具和出站允许列表,外加 [`desktop` 覆盖层](https://code.claude.com/docs/zh-CN/claude-apps-gateway-config#claude-desktop-overlay)。353Claude Desktop 的各个标签页运行在嵌入式 Claude Code 会话之上,并通过网关发送其模型请求。它会向每个这样的会话传递策略,这些策略基于网关在 `/user/bootstrap` 处提供给它的配置构建。该配置包含从匹配策略的 `cli` 或 `code` 块派生出的模型允许列表、禁用的工具和出站允许列表,外加 [`desktop` 覆盖层](https://code.claude.com/docs/zh-CN/claude-apps-gateway-config#claude-desktop-overlay)。

354 354 

355该块中的其他键,例如 hook、`env` 以及 `Bash(npm *)` 这类限定范围的权限规则,会到达通过 `/login` 登录的客户端。在 `code` 下,当满足 [Code 标签页的条件](https://code.claude.com/docs/zh-CN/claude-apps-gateway-config.md#apply-code-settings-in-the-code-tab)时,它们也会到达 Code 标签页的会话。它们不会到达 Cowork 或 Chat 会话。Claude Desktop 从其自身的托管配置中读取网关 URL,并使用自己的流程登录,与[设置网关 URL](#set-the-gateway-url) 中的 `forceLoginMethod` 和 `forceLoginGatewayUrl` 键无关。355该块中的其他键,例如 hook、`env` 以及 `Bash(npm *)` 这类限定范围的权限规则,会到达通过 `/login` 登录的客户端。在 `code` 下,当满足 [Code 标签页的条件](https://code.claude.com/docs/zh-CN/claude-apps-gateway-config.md#apply-code-settings-in-the-code-tab)时,它们也会到达 Code 标签页的会话。它们不会到达 Cowork 或 Chat 会话。Claude Desktop 从其自身的托管配置中读取网关 URL,并使用自己的流程登录,与[设置网关 URL](#set-the-gateway-url) 中的 `forceLoginMethod` 和 `forceLoginGatewayUrl` 键无关。

356 356 


476 476 

477### 连接 Claude Desktop477### 连接 Claude Desktop

478 478 

479[Claude Desktop](https://code.claude.com/docs/zh-CN/desktop.md) 通过另一个 MDM 键连接到同一网关:在 Claude Desktop 的[托管配置](https://claude.com/docs/third-party/claude-desktop/configuration)中将 `bootstrapUrl` 设置为 `<listen.public_url>/user/bootstrap`,并通过 `desktop` 键让用户的策略启用该功能。[Claude Desktop 覆盖层](https://code.claude.com/docs/zh-CN/claude-apps-gateway-config.md#claude-desktop-overlay)介绍了这两部分。需要网关服务器上的 Claude Code 为 v2.1.203 或更高版本。479[Claude Desktop](https://code.claude.com/docs/zh-CN/desktop.md) 通过另一个 MDM 键连接到同一网关:在 Claude Desktop 的[托管配置](https://claude.com/docs/third-party/claude-desktop/configuration)中将 `bootstrapUrl` 设置为 `<listen.public_url>/user/bootstrap`,并通过 `desktop` 键让用户的策略启用该功能。[Claude Desktop 覆盖层](https://code.claude.com/docs/zh-CN/claude-apps-gateway-config.md#claude-desktop-overlay)介绍了这两部分。需要网关服务器上的 Claude Code 为 v2.1.203 或更高版本。连接后,Claude Desktop 会通过网关发送来自每个已启用标签页的模型请求。

480 480 

481Claude Desktop 通过网关的身份提供商、使用相同的浏览器 SSO 步骤让开发人员登录,然后从网关而不是从 Anthropic 获取其配置。模型访问和策略遵循与 CLI 相同的按组规则。同时使用 CLI 和 Claude Desktop 的开发人员需要分别登录两者;网关会话不会在它们之间共享。481Claude Desktop 通过网关的身份提供商、使用相同的浏览器 SSO 步骤让开发人员登录,然后从网关而不是从 Anthropic 获取其配置。模型访问和策略遵循与 CLI 相同的按组规则。同时使用 CLI 和 Claude Desktop 的开发人员需要分别登录两者;网关会话不会在它们之间共享。

482 482 

483连接后,Claude Desktop 会通过网关发送来自每个已启用标签页的模型请求。它默认显示 Cowork 和 Code 标签页。要同时提供 Chat,请在运行 Claude Code v2.1.227 或更高版本的网关上,在策略的 [`desktop` 块](https://code.claude.com/docs/zh-CN/claude-apps-gateway-config#claude-desktop-overlay)中将 `chatTabEnabled` 设置为 `true`。开启 Cowork 时,Claude Desktop 随后会在一个标签页中同时显示 Chat 和 Cowork。

484 

485### CI 流水线和远程机器483### CI 流水线和远程机器

486 484 

487没有面向无人值守流水线的服务令牌流程。网关登录始终运行浏览器设备流程,因此没有开发人员批准登录的 CI 作业无法完成身份验证;请将这些作业直接配置为使用您的提供商。请将 `forceLoginMethod` 和 `forceLoginGatewayUrl` 部署到开发人员机器上,不要部署到 CI 运行器上。在托管设置中设置了这两个键的机器上,使用 `ANTHROPIC_API_KEY`、`ANTHROPIC_AUTH_TOKEN` 或 `apiKeyHelper` 进行身份验证的会话会[在启动时退出](https://code.claude.com/docs/zh-CN/errors.md#administrator-policy-requires-a-cloud-gateway-sign-in)。485没有面向无人值守流水线的服务令牌流程。网关登录始终运行浏览器设备流程,因此没有开发人员批准登录的 CI 作业无法完成身份验证;请将这些作业直接配置为使用您的提供商。请将 `forceLoginMethod` 和 `forceLoginGatewayUrl` 部署到开发人员机器上,不要部署到 CI 运行器上。在托管设置中设置了这两个键的机器上,使用 `ANTHROPIC_API_KEY`、`ANTHROPIC_AUTH_TOKEN` 或 `apiKeyHelper` 进行身份验证的会话会[在启动时退出](https://code.claude.com/docs/zh-CN/errors.md#administrator-policy-requires-a-cloud-gateway-sign-in)。


523| 推理转发 (Amazon Bedrock、Claude Platform on AWS、Google Cloud 的 Agent Platform、Microsoft Foundry、Anthropic) | 可用 | 具有按上游模型转换和故障转移。Amazon Bedrock 上游使用 `bedrock-runtime` 端点和 AWS 默认凭据链。[Amazon Bedrock Mantle 上游](https://code.claude.com/docs/zh-CN/claude-apps-gateway-config.md#amazon-bedrock-mantle-endpoint)需要网关服务器上的 Claude Code v2.1.283 或更高版本,[Claude Platform on AWS 上游](https://code.claude.com/docs/zh-CN/claude-apps-gateway-config.md#claude-platform-on-aws)需要 v2.1.198 或更高版本。 |521| 推理转发 (Amazon Bedrock、Claude Platform on AWS、Google Cloud 的 Agent Platform、Microsoft Foundry、Anthropic) | 可用 | 具有按上游模型转换和故障转移。Amazon Bedrock 上游使用 `bedrock-runtime` 端点和 AWS 默认凭据链。[Amazon Bedrock Mantle 上游](https://code.claude.com/docs/zh-CN/claude-apps-gateway-config.md#amazon-bedrock-mantle-endpoint)需要网关服务器上的 Claude Code v2.1.283 或更高版本,[Claude Platform on AWS 上游](https://code.claude.com/docs/zh-CN/claude-apps-gateway-config.md#claude-platform-on-aws)需要 v2.1.198 或更高版本。 |

524| 1M token 上下文窗口 | 可用 | Fable 模型、Sonnet 5 及更高版本以及 Opus 4.7 及更高版本默认使用 1M 窗口运行;请参阅[扩展上下文](https://code.claude.com/docs/zh-CN/model-config.md#extended-context)。Fable 和 Opus 模型的 1M 默认值需要开发人员机器上的 Claude Code v2.1.287 或更高版本 |522| 1M token 上下文窗口 | 可用 | Fable 模型、Sonnet 5 及更高版本以及 Opus 4.7 及更高版本默认使用 1M 窗口运行;请参阅[扩展上下文](https://code.claude.com/docs/zh-CN/model-config.md#extended-context)。Fable 和 Opus 模型的 1M 默认值需要开发人员机器上的 Claude Code v2.1.287 或更高版本 |

525| 按 IdP 组的模型访问和托管设置 | 可用 | 模型访问在服务器端强制执行;托管设置按 IdP 组交付,由 CLI 在[托管设置层](https://code.claude.com/docs/zh-CN/settings.md#settings-precedence)应用 |523| 按 IdP 组的模型访问和托管设置 | 可用 | 模型访问在服务器端强制执行;托管设置按 IdP 组交付,由 CLI 在[托管设置层](https://code.claude.com/docs/zh-CN/settings.md#settings-precedence)应用 |

526| Claude Desktop | 可用(需要选择加入) | 一旦策略[使用 `desktop` 键选择加入](https://code.claude.com/docs/zh-CN/claude-apps-gateway-config#claude-desktop-overlay),网关就会在 `/user/bootstrap` 处提供 Claude Desktop 的配置,并且 Claude Desktop 会通过网关发送其模型请求。要启用 Chat,请参阅[连接 Claude Desktop](#connect-claude-desktop)。需要网关服务器上的 Claude Code v2.1.203 或更高版本。 |524| Claude Desktop | 可用(需要选择加入) | 使用 [`desktop` 键](https://code.claude.com/docs/zh-CN/claude-apps-gateway-config#claude-desktop-overlay)让策略选择加入。需要网关服务器上的 Claude Code v2.1.203 或更高版本。 |

527| 遥测扇出 (OTLP/HTTP) | 可用 | 按导出标识戳;protobuf 和 JSON 编码 |525| 遥测扇出 (OTLP/HTTP) | 可用 | 按导出标识戳;protobuf 和 JSON 编码 |

528| OIDC 身份提供商 | 可用 | 任何符合 OIDC 的 IdP;网关运行标准 OIDC 发现和授权代码流。请参阅[身份提供商设置](https://code.claude.com/docs/zh-CN/claude-apps-gateway-deploy.md#identity-provider-setup)了解每个 IdP 的配置 |526| OIDC 身份提供商 | 可用 | 任何符合 OIDC 的 IdP;网关运行标准 OIDC 发现和授权代码流。请参阅[身份提供商设置](https://code.claude.com/docs/zh-CN/claude-apps-gateway-deploy.md#identity-provider-setup)了解每个 IdP 的配置 |

529| 按用户和按组支出限制 | 可用 | 请参阅[支出限制](https://code.claude.com/docs/zh-CN/claude-apps-gateway-spend-limits.md) |527| 按用户和按组支出限制 | 可用 | 请参阅[支出限制](https://code.claude.com/docs/zh-CN/claude-apps-gateway-spend-limits.md) |


540| 多租户(多个 OIDC 发行者) | 不支持 | 每个网关一个发行者。运行单独的实例 |538| 多租户(多个 OIDC 发行者) | 不支持 | 每个网关一个发行者。运行单独的实例 |

541| Windows 服务器 | 不支持 | 在 Linux 上部署。仅本地开发的 macOS |539| Windows 服务器 | 不支持 | 在 Linux 上部署。仅本地开发的 macOS |

542| Helm 图表 | 不可用 | 网关作为标准无状态 Deployment 运行;请参阅[部署指南](https://code.claude.com/docs/zh-CN/claude-apps-gateway-deploy.md#kubernetes) |540| Helm 图表 | 不可用 | 网关作为标准无状态 Deployment 运行;请参阅[部署指南](https://code.claude.com/docs/zh-CN/claude-apps-gateway-deploy.md#kubernetes) |

543| 管理员 UI | 不可用 | 配置是 YAML 文件;重新部署以更改它 |541| 管理员 UI | 仅支出限制 | 在[连接到网关](#connect-claude-desktop)的 Claude Desktop 4.23118.0 或更高版本中,[`admin.admin_groups`](https://code.claude.com/docs/zh-CN/claude-apps-gateway-config#admin) 的成员可以管理支出限制。其他配置是 YAML 文件;重新部署以更改它 |

544 542 

545## 后续步骤543## 后续步骤

546 544 

Details

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

1652| `reply_seconds` | 否 | 默认 `9.5`。一条流式回复所需的时间,取值为 0 到 600。`0` 会一次性发送整条回复。对非流式请求的回复始终一次性返回。 |1652| `reply_seconds` | 否 | 默认 `9.5`。一条流式回复所需的时间,取值为 0 到 600。`0` 会一次性发送整条回复。对非流式请求的回复始终一次性返回。 |

1653 1653 

1654此模式下的负载测试涵盖网关、您的 Postgres 以及网关前面的所有组件。它不涵盖提供商的限制、速度或网络路径。1654在此模式下的负载测试涵盖网关、您的 Postgres 以及网关前面的所有组件。它不涵盖提供商的限制、速度和网络路径,也不涵盖每个副本在[并发上游请求限制](https://code.claude.com/docs/zh-CN/claude-apps-gateway-deploy.md#concurrent-upstream-requests)处的等待。当打开的请求数超过该限制(即生产请求开始等待的临界点)时,副本仍会记录 `client requests are open` 警告。

1655 1655 

1656由于不会向提供商发送模型请求,副本每个请求的 CPU 用量只是估算值,且读数低于生产环境,因为生产环境还需要加密发往提供商的流量。请针对真实提供商进行小规模试点,以确认副本数量。在 v2.1.283 之前,该估算值读数会低得多。1656由于不会向提供商发送模型请求,副本每个请求的 CPU 用量只是估算值,且读数低于生产环境,因为生产环境还需要加密发往提供商的流量。请针对真实提供商进行小规模试点,以确认副本数量。在 v2.1.283 之前,该估算值读数会低得多。

1657 1657 

Details

202>202>

203> 每个打开的请求在网关进程中持有内存,同时它流式传输,同时它等待一个槽位。如果您将限制保持在 256,过载副本上的内存仍然增长,因为等待请求保持其请求体。根据峰值时打开的请求数调整容器的内存,当您更改限制时观察内存。耗尽内存的副本被杀死并丢弃它持有的每个流。203> 每个打开的请求在网关进程中持有内存,同时它流式传输,同时它等待一个槽位。如果您将限制保持在 256,过载副本上的内存仍然增长,因为等待请求保持其请求体。根据峰值时打开的请求数调整容器的内存,当您更改限制时观察内存。耗尽内存的副本被杀死并丢弃它持有的每个流。

204 204 

205在使用 [`load_test_mode`](https://code.claude.com/docs/zh-CN/claude-apps-gateway-config#load_test_mode) 的负载测试中,请求不会在此限制处等待,但副本仍会记录 `client requests are open` 警告。

206 

205### 使 `API_TIMEOUT_MS` 高于网关的首字节时间207### 使 `API_TIMEOUT_MS` 高于网关的首字节时间

206 208 

207如果您降低 [`API_TIMEOUT_MS`](https://code.claude.com/docs/zh-CN/network-config#streaming-idle-watchdogs) 以便更快地重试未得到应答的请求,请使其高于网关发送流式响应首批字节所需的时间。等待时间更长的请求会超时,同样等待那么久的每次重试也会超时,直到该轮次以 `Request timed out` 结束,除非[首字节截止时间](#retry-an-unanswered-request-sooner-with-the-first-byte-deadline)先将其结束。209如果您降低 [`API_TIMEOUT_MS`](https://code.claude.com/docs/zh-CN/network-config#streaming-idle-watchdogs) 以便更快地重试未得到应答的请求,请使其高于网关发送流式响应首批字节所需的时间。等待时间更长的请求会超时,同样等待那么久的每次重试也会超时,直到该轮次以 `Request timed out` 结束,除非[首字节截止时间](#retry-an-unanswered-request-sooner-with-the-first-byte-deadline)先将其结束。

Details

628 628 

629* [配置参考](https://code.claude.com/docs/zh-CN/claude-apps-gateway-config.md):每个 `gateway.yaml` 选项,包括 `managed.policies` 和 `telemetry`629* [配置参考](https://code.claude.com/docs/zh-CN/claude-apps-gateway-config.md):每个 `gateway.yaml` 选项,包括 `managed.policies` 和 `telemetry`

630* [部署和操作](https://code.claude.com/docs/zh-CN/claude-apps-gateway-deploy.md):IdP 设置、健康检查、JWT 机密轮换、升级和安全模型630* [部署和操作](https://code.claude.com/docs/zh-CN/claude-apps-gateway-deploy.md):IdP 设置、健康检查、JWT 机密轮换、升级和安全模型

631* [负载测试模式](https://code.claude.com/docs/zh-CN/claude-apps-gateway-config.md#load_test_mode):在不调用模型提供商的情况下对网关进行负载测试

631* [Claude apps gateway 概述](https://code.claude.com/docs/zh-CN/claude-apps-gateway):快速入门和连接开发人员632* [Claude apps gateway 概述](https://code.claude.com/docs/zh-CN/claude-apps-gateway):快速入门和连接开发人员

632* [Claude apps gateway 的 AWS 示例](https://github.com/aws-samples/anthropic-on-aws/tree/main/claude-apps-gateway):AWS 维护的部署示例,涵盖一系列客户环境633* [Claude apps gateway 的 AWS 示例](https://github.com/aws-samples/anthropic-on-aws/tree/main/claude-apps-gateway):AWS 维护的部署示例,涵盖一系列客户环境

Details

316 316 

317* [配置参考](https://code.claude.com/docs/zh-CN/claude-apps-gateway-config.md):每个 `gateway.yaml` 选项,包括 `managed.policies` 和 `telemetry`317* [配置参考](https://code.claude.com/docs/zh-CN/claude-apps-gateway-config.md):每个 `gateway.yaml` 选项,包括 `managed.policies` 和 `telemetry`

318* [部署和操作](https://code.claude.com/docs/zh-CN/claude-apps-gateway-deploy.md):IdP 设置、健康检查、JWT 密钥轮换、升级和安全模型318* [部署和操作](https://code.claude.com/docs/zh-CN/claude-apps-gateway-deploy.md):IdP 设置、健康检查、JWT 密钥轮换、升级和安全模型

319* [负载测试模式](https://code.claude.com/docs/zh-CN/claude-apps-gateway-config.md#load_test_mode):在不调用模型提供商的情况下对网关进行负载测试

319* [Claude apps gateway 概述](https://code.claude.com/docs/zh-CN/claude-apps-gateway):快速入门和连接开发人员320* [Claude apps gateway 概述](https://code.claude.com/docs/zh-CN/claude-apps-gateway):快速入门和连接开发人员

Details

95将项目范围限定为一个您将继续添加的工作流,例如保持一个 API 在其延迟目标下所需的一切。[何时使用项目](#when-to-use-a-project)有更多示例。然后填写对话框的字段:95将项目范围限定为一个您将继续添加的工作流,例如保持一个 API 在其延迟目标下所需的一切。[何时使用项目](#when-to-use-a-project)有更多示例。然后填写对话框的字段:

96 96 

97* **Name**:项目在 **Projects** 列表中的显示方式。97* **Name**:项目在 **Projects** 列表中的显示方式。

98* **Goal**(可选):您试图完成的一行内容,例如"将 p95 API 延迟保持在 200 毫秒以下"。对话中的 Claude 朝着它工作。没有目标的情况下,Claude 从您发送的任务工作,您可以稍后在 **Project settings > General** 中添加目标。98* **What do you want to work on?**(可选):成为项目目标的一行内容,例如"将 p95 API 延迟保持在 200 毫秒以下"。对话中的 Claude 朝着它工作。没有目标的情况下,Claude 从您发送的任务工作,您可以稍后在 **Project settings > General** 中添加目标。

99* **Context**(可选):此项目处理的 GitHub 代码库,加上任何线程应该读取的文件、文件夹或 Google Drive 文件夹。为每个点击 **Add**。添加大多数任务需要的代码库而不是工作可能涉及的每一个;[决定要添加哪些代码库](#decide-which-repositories-to-add)涵盖了选择,您可以稍后在 **Project settings > Environment** 中添加更多。99* **Context**(可选):此项目处理的 GitHub 仓库,加上任何线程应该读取的文件、文件夹或 Google Drive 文件夹。为每个点击 **Add**。添加大多数任务需要的仓库而不是工作可能涉及的每一个;[决定要添加哪些仓库](#decide-which-repositories-to-add)涵盖了选择,您可以稍后在 **Project settings > Environment** 中添加更多。

100 100 

101关于线程应该如何工作的常规规则在[项目说明](#give-a-project-standing-context)中,您在项目存在后设置。101关于线程应该如何工作的常规规则在[项目说明](#give-a-project-standing-context)中,您在项目存在后设置。

102 102 


388| Plugins | Plugins | 加载到每个新线程的 plugins |388| Plugins | Plugins | 加载到每个新线程的 plugins |

389| Usage | Usage | 按线程和按模型的[令牌使用](#usage-and-cost) |389| Usage | Usage | 按线程和按模型的[令牌使用](#usage-and-cost) |

390| Memory | Memory | 项目的[记忆文件](#give-a-project-standing-context) |390| Memory | Memory | 项目的[记忆文件](#give-a-project-standing-context) |

391| Auto-continue when usage limits reset | General | [因用量限制而停止](#usage-limit-reached)的线程或项目对话是否在限制重置时自行继续。默认开启。 |

391| Restart Claude | General | 当[Claude 在那里停止响应](#claude-hasnt-responded)时重启项目对话 |392| Restart Claude | General | 当[Claude 在那里停止响应](#claude-hasnt-responded)时重启项目对话 |

392| Pause、Archive、Delete | General | 停止、隐藏或删除项目;请参阅[暂停、存档或删除项目](#pause-archive-or-delete-a-project) |393| Pause、Archive、Delete | General | 停止、隐藏或删除项目;请参阅[暂停、存档或删除项目](#pause-archive-or-delete-a-project) |

393 394 


403 404 

404项目使用计入与您其他 Claude Code 会话相同的[计划限制](https://code.claude.com/docs/zh-CN/errors.md#youve-hit-your-session-limit),项目本身无法超过这些限制。405项目使用计入与您其他 Claude Code 会话相同的[计划限制](https://code.claude.com/docs/zh-CN/errors.md#youve-hit-your-session-limit),项目本身无法超过这些限制。

405 406 

406达到您计划限制的线程等待并在限制重置时自己继续,因此您留下运行的工作在您的下一个使用窗口中开始使用,无需来自您的消息。[线程达到使用限制](#usage-limit-reached)涵盖了您看到的内容、如何停止它,以及不等待的一种情况。407在达到您计划限制时停止的线程会等待,并默认在限制重置时自行继续。其工作随后计入您的下一个使用窗口。若要阻止线程继续,请参阅[线程达到用量限制](#usage-limit-reached)。

407 408 

408工作仅在您为您的账户打开[使用信用](https://code.claude.com/docs/zh-CN/costs.md#add-usage-credits-to-your-subscription)时才超过您的计划限制。线程无法为您打开它们。409工作仅在您为您的账户打开[使用信用](https://code.claude.com/docs/zh-CN/costs.md#add-usage-credits-to-your-subscription)时才超过您的计划限制。线程无法为您打开它们。

409 410 


484 485 

485### 线程达到使用限制486### 线程达到使用限制

486 487 

487当线程或项目对话达到您套餐的五小时或每周限制时,它会自动持续重试,并在限制重置后继续。由定时任务启动的线程不会等待:其轮次会因限制错误而停止,您需要在限制重置后向其发送消息。488当线程或项目对话因达到您套餐的五小时或每周限制而停止时,它会等待,并默认在限制重置时自动继续。

488 489 

489线程等待期间,会显示 **Service is busy** 以及"Claude is still retrying and will continue automatically."。您无需执行任何操作,工作即可继续。如果您不希望它占用您的下一个用量窗口,请点击线程中的 **Stop**,或[暂停项目](#pause-archive-or-delete-a-project)以暂停所有线程。[用量限制错误](https://code.claude.com/docs/zh-CN/errors.md#youve-hit-your-session-limit)解释了这些限制及其重置时间。490若要阻止线程或对话在其消息显示的重置时间继续,请在此之前于 [**Project settings > General**](#project-settings-reference) 中关闭 **Auto-continue when usage limits reset**。该设置作用于整个项目,而不仅是您正在查看的线程。若要在关闭该设置的情况下继续,请在重置后向线程或对话发送消息。[用量限制错误](https://code.claude.com/docs/zh-CN/errors.md#youve-hit-your-session-limit)解释了这些限制及其重置时间。

490 491 

491### 需要额外的使用信用492### 需要额外的使用信用

492 493 


509| "Unable to connect to repository",带有"Claude couldn't access your repository or environment" | 您的 GitHub 账户需要对代码库的推送访问,环境必须仍然存在。在 **Project settings > Environment** 中检查两者,然后重试 |510| "Unable to connect to repository",带有"Claude couldn't access your repository or environment" | 您的 GitHub 账户需要对代码库的推送访问,环境必须仍然存在。在 **Project settings > Environment** 中检查两者,然后重试 |

510| "Couldn't show the setup proposal" | 您打开的应用比 Claude 发送的 **Setup recommendations** 更旧。刷新页面或重启桌面应用,或要求 Claude 再次提议设置 |511| "Couldn't show the setup proposal" | 您打开的应用比 Claude 发送的 **Setup recommendations** 更旧。刷新页面或重启桌面应用,或要求 Claude 再次提议设置 |

511| "The project's environment was removed" | 在 **Project settings > Environment** 中选择不同的环境;更改适用于新线程 |512| "The project's environment was removed" | 在 **Project settings > Environment** 中选择不同的环境;更改适用于新线程 |

512| "Setup script failed" | 点击错误上的 **Edit setup script**,在环境中修复脚本,然后发送另一条消息。[设置脚本失败](https://code.claude.com/docs/zh-CN/web-quickstart.md#setup-script-failed)列出常见原因 |513| "Setup script failed" | [设置脚本失败](https://code.claude.com/docs/zh-CN/web-quickstart.md#setup-script-failed)列出了常见原因。在环境中修复脚本,然后在项目对话中要求 Claude 在新线程中运行该任务,以便脚本再次运行 |

513| "Claude ran out of context on this turn" | 线程填满了其上下文窗口。如果消息说线程在新会话中继续,它自己继续;否则在项目对话中要求 Claude 为剩余工作启动新线程 |514| "Claude ran out of context on this turn" | 线程填满了其上下文窗口。如果消息说线程在新会话中继续,它自己继续;否则在项目对话中要求 Claude 为剩余工作启动新线程 |

514| "Couldn't start in" 后跟您的文件夹名称 | 您允许线程在您的计算机上运行,但会话无法在那里启动。当消息下的一行给出原因时,修复它,然后要求 Claude 再次运行任务 |515| "Couldn't start in" 后跟您的文件夹名称 | 您允许线程在您的计算机上运行,但会话无法在那里启动。当消息下的一行给出原因时,修复它,然后要求 Claude 再次运行任务 |

515| "Claude is out of date on your device" | 您选择运行线程的计算机具有比 v2.1.280 更旧的 Claude Code 版本。在那里更新 Claude Code,或如果这是连接文件夹的内容,则更新桌面应用,然后要求 Claude 再次运行任务 |516| "Claude is out of date on your device" | 您选择运行线程的计算机具有比 v2.1.280 更旧的 Claude Code 版本。在那里更新 Claude Code,或如果这是连接文件夹的内容,则更新桌面应用,然后要求 Claude 再次运行任务 |

Details

120 120 

121选择 **Add secret**(在管理设置中标记为 **Add**)并填写表单。对于在请求头中传输的 API 密钥,保留默认的 **Secret type**,即 **Bearer**,并填写以下字段:121选择 **Add secret**(在管理设置中标记为 **Add**)并填写表单。对于在请求头中传输的 API 密钥,保留默认的 **Secret type**,即 **Bearer**,并填写以下字段:

122 122 

123* **Name**:机密的标签,例如 `Internal billing API`

124* **Allowed websites**:API 的主机,例如 `api.example.com`。前导 `*.` 匹配所有子域123* **Allowed websites**:API 的主机,例如 `api.example.com`。前导 `*.` 匹配所有子域

125* **Custom headers**:用于携带密钥的请求头占一行。该行默认以 `Authorization` 作为请求头的 **Name**,以 `Bearer` 作为其 **Prefix**;将密钥本身粘贴为 **Value**。对于接受裸值的请求头(如 `X-Api-Key`),请更改名称并清除前缀124* **Custom headers**:用于携带密钥的请求头占一行。该行默认以 `Authorization` 作为 **Header name**,以 `Bearer` 作为 **Prefix**;将密钥本身粘贴为 **Value**。对于接受裸值的请求头(如 `X-Api-Key`),请更改名称并清除前缀

126 125 

127对于以其他方式进行身份验证的 API,请选择不同的 **Secret type**。该列表与 [Claude Tag](https://claude.com/docs/claude-tag/overview)(适用于 Team 和 Enterprise 计划的 Slack 集成)为 [connections](https://claude.com/docs/claude-tag/admins/add-connections) 提供的列表相同。126对于以其他方式进行身份验证的 API,请选择不同的 **Secret type**。该列表与 [Claude Tag](https://claude.com/docs/claude-tag/overview)(适用于 Team 和 Enterprise 计划的 Slack 集成)为 [connections](https://claude.com/docs/claude-tag/admins/add-connections) 提供的列表相同。

128 127 


137如果您使用的是 Team 或 Enterprise 计划且不持有[组织管理员角色](#requirements),**Add secret** 表单只接受针对一个主机的一个机密。选择您环境的 [**Network secrets** 行](#add-a-credential),然后选择 **Add secret**。填写以下字段,然后选择表单中的 **Add secret** 按钮:136如果您使用的是 Team 或 Enterprise 计划且不持有[组织管理员角色](#requirements),**Add secret** 表单只接受针对一个主机的一个机密。选择您环境的 [**Network secrets** 行](#add-a-credential),然后选择 **Add secret**。填写以下字段,然后选择表单中的 **Add secret** 按钮:

138 137 

139* **Host**:获得该机密的唯一主机,例如 `api.example.com`。该表单不接受 `*.` 通配符138* **Host**:获得该机密的唯一主机,例如 `api.example.com`。该表单不接受 `*.` 通配符

140* **Name**:机密的可选标签139* **Secret type**:对于在请求头中传输的密钥选择 **Token**,或选择 **Username and password**。对于令牌,请将密钥粘贴到 **Token** 字段中。对于 `Authorization` 以外的请求头(例如 `X-Api-Key`),请将 **Header** 更改为该请求头的名称

141* **Secret type**:对于在请求头中传输的密钥选择 **Token**,或选择 **Username and password**。对于令牌,请将密钥粘贴为 **Value**

142 140 

143#### 哪些请求会获得机密141#### 哪些请求会获得机密

144 142 


445 443 

446设置脚本有四个需要考虑的约束:444设置脚本有四个需要考虑的约束:

447 445 

448* **以零退出**:如果脚本以非零状态结束,会话将无法启动。在非关键命令后附加 `|| true`,以便间歇性安装失败不会阻止会话。446* **以零退出**:如果脚本以非零状态退出,会话将[无法启动](https://code.claude.com/docs/zh-CN/web-quickstart.md#setup-script-failed),或者在缺少脚本未能安装的内容的情况下启动。在非关键命令后附加 `|| true`,以便间歇性安装失败不会导致脚本失败。

449* **在五分钟内完成**:将脚本的总运行时间保持在大约五分钟以内,以便[环境缓存](#environment-caching)可以建立。当设置耗时超过五分钟时,环境不会被缓存。使用 `&` 和 `wait` 并行运行独立的安装,并将任何无法容纳的单个下载移至 [SessionStart hook](#setup-scripts-vs-sessionstart-hooks),在后台启动它。如果新会话在设置期间停滞或失败,请参阅[新会话在设置期间挂起或超时](https://code.claude.com/docs/zh-CN/web-quickstart.md#new-sessions-hang-or-time-out-during-setup)。447* **在五分钟内完成**:将脚本的总运行时间保持在大约五分钟以内,以便[环境缓存](#environment-caching)可以建立。当设置耗时超过五分钟时,环境不会被缓存。使用 `&` 和 `wait` 并行运行独立的安装,并将任何无法容纳的单个下载移至 [SessionStart hook](#setup-scripts-vs-sessionstart-hooks),在后台启动它。如果新会话在设置期间停滞或失败,请参阅[新会话在设置期间挂起或超时](https://code.claude.com/docs/zh-CN/web-quickstart.md#new-sessions-hang-or-time-out-during-setup)。

450* **安装需要网络访问**:包安装需要连接到注册表。默认的 **Trusted** 级别涵盖[常见包注册表](#default-allowed-domains),包括 npm、PyPI、RubyGems 和 crates.io;使用 **None** 网络访问时,安装会失败。448* **安装需要网络访问**:包安装需要连接到注册表。默认的 **Trusted** 级别涵盖[常见包注册表](#default-allowed-domains),包括 npm、PyPI、RubyGems 和 crates.io;使用 **None** 网络访问时,安装会失败。

451* **环境的变量尚未设置**:脚本在会话设置环境的[环境变量](#set-environment-variables)之前运行。请在脚本本身中设置脚本所需的任何值。449* **环境的变量尚未设置**:脚本在会话设置环境的[环境变量](#set-environment-variables)之前运行。请在脚本本身中设置脚本所需的任何值。

Details

25 25 

26## 使用 REVIEW\.md 设置仅用于审查的规则26## 使用 REVIEW\.md 设置仅用于审查的规则

27 27 

28`REVIEW.md` 是位于仓库根目录的文件,用于针对您的仓库定制 Code Review。您还可以在子目录中添加 `REVIEW.md`,在根文件的基础上为该路径下的更改添加检查项。28`REVIEW.md` 是位于仓库根目录的文件,用于针对您的仓库定制 Code Review。在[受保护分支](#what-a-review-reads-for-each-branch-setup)上,您还可以在[大多数子目录](#when-a-subdirectory-review-md-doesnt-apply)中添加 `REVIEW.md`,在根文件的基础上为该子目录下的更改添加检查项。

29 29 

30负责发现问题的 Agent 和负责验证问题的 Agent 会将其内容作为您仓库的审查指令接收,同时接收 Code Review 的默认审查指导。撰写最终审查的步骤会在确定严重程度和撰写摘要之前参考该文件。30负责发现问题的 Agent 和负责验证问题的 Agent 会将其内容作为您仓库的审查指令接收,同时接收 Code Review 的默认审查指导。撰写最终审查的步骤会在确定严重程度和撰写摘要之前参考该文件。

31 31 


46>46>

47> Code Review 服务和本地 [`/code-review` 命令](https://code.claude.com/docs/zh-CN/code-review-local)是两个独立的工具,它们读取的文件不同。该服务会同时读取 `CLAUDE.md` 和 `REVIEW.md`。`/code-review` 命令在您自己机器上的 Claude Code 会话中运行,它读取您的 `CLAUDE.md` 文件,但不读取 `REVIEW.md`。请将希望在两处都生效的指导放在 `CLAUDE.md` 中,并将 `REVIEW.md` 留给 Pull Request 审查专用的规则。47> Code Review 服务和本地 [`/code-review` 命令](https://code.claude.com/docs/zh-CN/code-review-local)是两个独立的工具,它们读取的文件不同。该服务会同时读取 `CLAUDE.md` 和 `REVIEW.md`。`/code-review` 命令在您自己机器上的 Claude Code 会话中运行,它读取您的 `CLAUDE.md` 文件,但不读取 `REVIEW.md`。请将希望在两处都生效的指导放在 `CLAUDE.md` 中,并将 `REVIEW.md` 留给 Pull Request 审查专用的规则。

48 48 

49### 子目录 REVIEW\.md 不适用的情况

50 

51对于位于以下名称的子目录中或其下方的 `REVIEW.md`,无论该子目录包含什么内容,Code Review 都不会应用。子目录名称仅在整体匹配时才算匹配,不区分大小写,且适用于任意深度,因此 `Tests` 匹配,而 `integration-tests` 不匹配:

52 

53* **测试**:`test`、`tests`、`__tests__`、`testdata`、`fixtures`、`__fixtures__`、`golden`、`corpus`、`snapshots`、`__snapshots__`

54* **示例**:`example`、`examples`、`sample`、`samples`、`demo`、`demos`

55* **生成的代码**:`generated`

56* **第三方代码**:`vendor`、`third_party`、`third-party`、`thirdparty`、`node_modules`、`bower_components`、`external`、`extern`、`deps`、`godeps`、`pods`、`carthage`、`site-packages`、`contrib`

57 

58请将针对这些子目录的检查项写在根目录的 `REVIEW.md` 中,或者写在某个父子目录的 `REVIEW.md` 中(前提是该父目录及其上方的任何目录都不在此列表中)。

59 

60Pull Request 所更改路径上的其余子目录 `REVIEW.md` 文件共享 150,000 字节的上限,根文件不计入其中。如果[检查运行](https://code.claude.com/docs/zh-CN/code-review-pull-requests.md#check-run-output)报告其中某些文件未能容纳,请缩短这些文件以符合该上限。

61 

49### REVIEW\.md 示例62### REVIEW\.md 示例

50 63 

51此 `REVIEW.md` 为一个后端服务重新校准了严重程度、限制了 nit 数量、跳过了生成文件,并添加了仓库特定的检查项。64此 `REVIEW.md` 为一个后端服务重新校准了严重程度、限制了 nit 数量、跳过了生成文件,并添加了仓库特定的检查项。


217 230 

218| 分支保护 | 读取的副本 | 读取的文件 |231| 分支保护 | 读取的副本 | 读取的文件 |

219| :- | :- | :- |232| :- | :- | :- |

220| 默认分支受保护,且 Pull Request 以其为目标,或以未受任何规则集保护的分支为目标 | 默认分支 | 根文件、其包含的文件和子目录文件 |233| 默认分支受保护,且 Pull Request 以其为目标,或以未受任何规则集保护的分支为目标 | 默认分支 | 根文件、其包含的文件和[大多数子目录文件](#when-a-subdirectory-review-md-doesnt-apply) |

221| Pull Request 以另一个受规则集保护的分支为目标 | 该基础分支 | 根文件、其包含的文件和子目录文件 |234| Pull Request 以另一个受规则集保护的分支为目标 | 该基础分支 | 根文件、其包含的文件和[大多数子目录文件](#when-a-subdirectory-review-md-doesnt-apply) |

222| 默认分支未受保护,且基础分支没有任何一种保护规则 | 默认分支 | 根文件 |235| 默认分支未受保护,且基础分支没有任何一种保护规则 | 默认分支 | 根文件 |

223| Code Review 无法确认保护设置。这包括默认分支未受保护、而基础分支仅有经典规则的情况 | 无 | 无 |236| Code Review 无法确认保护设置。这包括默认分支未受保护、而基础分支仅有经典规则的情况 | 无 | 无 |

224 237 

Details

4 4 

5# 在模拟器中测试 iOS 应用5# 在模拟器中测试 iOS 应用

6 6 

7> Claude Code Desktop 在 Claude 构建、运行或检查应用时,会在 iOS Simulator 窗格中打开你的应用,每个会话都有一个单独的模拟器。7> Claude Code Desktop 在 Claude 构建、运行或检查应用时,会在 iOS Simulator 窗格中打开您的应用。

8 8 

9> [!NOTE]9> [!NOTE]

10>10>


63 63 

64当应用在模拟器中启动时,iOS Simulator 窗格会在对话旁边打开。Claude 第一次使用设备时,桌面应用会要求你允许它;请参阅[授予 Claude 对设备的访问权限](#grant-claude-access-to-a-device)。Claude 安装应用、点击浏览它,并读取屏幕以验证自己的更改,同时你观看。64当应用在模拟器中启动时,iOS Simulator 窗格会在对话旁边打开。Claude 第一次使用设备时,桌面应用会要求你允许它;请参阅[授予 Claude 对设备的访问权限](#grant-claude-access-to-a-device)。Claude 安装应用、点击浏览它,并读取屏幕以验证自己的更改,同时你观看。

65 65 

66模拟器窗格在 Claude 在会话中的任何时刻在模拟器中启动应用时打开。当你的请求是关于查看应用时,例如"新屏幕看起来对吗?",Claude 在开始工作之前启动模拟器。在 Claude 修复错误或更改屏幕后,要求它验证更改:重新启动应用会重新打开窗格(如果它未打开)。66当您的请求是关于查看应用时,例如"新屏幕看起来对吗?",Claude 会在开始工作之前启动模拟器。在 Claude 修复错误或更改屏幕后,请要求它验证更改。

67 67 

68模拟器窗格显示应用实际启动的任何设备。要在特定设备上测试,在你的请求中命名它,例如"在 iPhone SE 模拟器上运行它",Claude 在构建和启动时会针对该设备。68模拟器窗格显示应用实际启动的任何设备。要在特定设备上测试,在你的请求中命名它,例如"在 iPhone SE 模拟器上运行它",Claude 在构建和启动时会针对该设备。

69 69 


86 86 

87你和 Claude 驱动同一设备,因此你的点击会改变 Claude 看到的应用状态。要让 Claude 检查特定屏幕,通过点击导航到它,然后提出要求。当 Claude 驱动设备时,窗格在屏幕上方显示**Claude is using this device** 徽章;在徽章清除之前暂停点击,以便结果反映应用而不是你的输入。87你和 Claude 驱动同一设备,因此你的点击会改变 Claude 看到的应用状态。要让 Claude 检查特定屏幕,通过点击导航到它,然后提出要求。当 Claude 驱动设备时,窗格在屏幕上方显示**Claude is using this device** 徽章;在徽章清除之前暂停点击,以便结果反映应用而不是你的输入。

88 88 

89### 最小化或关闭模拟器窗格

90 

91您可以最小化或关闭模拟器窗格,无论哪种方式,Claude 仍然可以使用该设备。

92 

93* 如果最小化窗格,设备会以较小尺寸保持在视图中。要最小化窗格或再次展开它,请参阅[最小化窗格](https://code.claude.com/docs/zh-CN/desktop.md#minimize-a-pane)。

94* 如果关闭全尺寸或已最小化的窗格,设备仍保持连接并继续运行。要再次显示设备,请单击会话标题栏中的 **iOS Simulator**。

95 

89## 会话如何管理设备96## 会话如何管理设备

90 97 

91每个设备属于启动它的会话,因此[并行会话](https://code.claude.com/docs/zh-CN/desktop.md#work-in-parallel-with-sessions)不共享设备:你在一个会话的窗格中看到的内容反映的是该会话的工作,而不是另一个会话的工作。在侧边栏中切换会话会同时切换模拟器视图和对话,切换回来会恢复同一设备停止的地方。如果 Claude 使用多个设备,每个设备都会打开自己的窗格,每个会话最多 4 个。98如果提示词中未指定模拟器,Claude 会使用一个已在运行的模拟器,即使它是由另一个[并行会话](https://code.claude.com/docs/zh-CN/desktop.md#work-in-parallel-with-sessions)打开的。要为每个会话分配各自的模拟器,请在每个会话的提示词中指定不同的模拟器。

92 99 

93Claude Code Desktop 会在模拟器不再使用时关闭它启动的模拟器:当你退出应用时、当你归档会话时,或在你从窗格中分离设备后 10 分钟。你在 Claude Code Desktop 外启动的设备,例如在 Apple 的 Simulator 应用或 Device Hub 中启动的设备,永远不会自动关闭。要立即关闭附加的设备,请使用窗格中的关闭按钮。100Claude Code Desktop 会在模拟器不再使用时关闭它启动的模拟器:当你退出应用时、当你归档会话时,或在你从窗格中分离设备后 10 分钟。你在 Claude Code Desktop 外启动的设备,例如在 Apple 的 Simulator 应用或 Device Hub 中启动的设备,永远不会自动关闭。要立即关闭附加的设备,请使用窗格中的关闭按钮。

94 101 

95## 授予 Claude 对设备的访问权限102## 授予 Claude 对设备的访问权限

96 103 

97Claude 在控制设备之前会征求您的同意,而在设备上构建或启动应用、打开 URL 则遵循您会话的权限模式。您或您的组织也可以完全关闭 Claude 的访问。104Claude 在控制设备之前会征求您的同意,而构建或启动应用、在设备上打开 URL 则遵循您会话的权限模式。您或您的组织也可以完全关闭 Claude 的访问。

98 105 

99### 第一次允许设备106### 第一次允许设备

100 107 


102 109 

103在您允许设备后,Claude 对其执行的操作(例如点击、输入和拍摄屏幕截图)无需提示即可运行,但启动应用需要按照您的[权限模式](#actions-that-follow-your-permission-mode)的要求进行批准。这些操作具有与您在窗格中单击相同的信任级别,并且仅作用于模拟设备,因此窗格不需要计算机使用所需的 macOS 辅助功能和屏幕录制权限。110在您允许设备后,Claude 对其执行的操作(例如点击、输入和拍摄屏幕截图)无需提示即可运行,但启动应用需要按照您的[权限模式](#actions-that-follow-your-permission-mode)的要求进行批准。这些操作具有与您在窗格中单击相同的信任级别,并且仅作用于模拟设备,因此窗格不需要计算机使用所需的 macOS 辅助功能和屏幕录制权限。

104 111 

105如果你拒绝,设备仍会启动,窗格仍可用于你自己的点击;只有 Claude 的访问保持关闭。要稍后改变主意,请在窗格中单击**Let Claude use it**。112如果您拒绝 Claude 的请求,设备不会连接,Desktop 也不会启动它。要自己使用该设备:

113 

1141. 在窗格中单击 **Attach simulator**。

1152. 在权限屏幕上单击 **Continue**。

1163. 在随后出现的对话框中单击 **Cancel**。

117 

118设备会连接并可用于您自己的点击,而 Claude 的访问保持关闭。之后,要授予 Claude 访问权限,请在窗格中单击 **Let Claude use it**。

106 119 

107### 遵循你的权限模式的操作120### 遵循你的权限模式的操作

108 121 

Details

53gpg --show-keys /usr/share/keyrings/claude-desktop-archive-keyring.asc53gpg --show-keys /usr/share/keyrings/claude-desktop-archive-keyring.asc

54```54```

55 55 

56gpg 打印的指纹应该是 `31DDDE24DDFAB679F42D7BD2BAA929FF1A7ECACE`。如果 gpg 报告文件无法打开或不包含有效的 OpenPGP 数据,则下载失败或返回了错误的内容:确认您的网络可以访问 `downloads.claude.ai`,然后重新运行下载命令。56gpg 打印的唯一指纹应该是 `31DDDE24DDFAB679F42D7BD2BAA929FF1A7ECACE`。如果 gpg 报告文件无法打开或不包含有效的 OpenPGP 数据,则下载失败或返回了错误的内容。请确认您的网络可以访问 `downloads.claude.ai`,然后重新运行下载命令。

57 57 

58注册存储库:58注册存储库:

59 59 

Details

160 160 

161## 定期任务的权限161## 定期任务的权限

162 162 

163每个任务都有自己的权限模式,您在创建或编辑任务时设置。来自 `~/.claude/settings.json` 的允许规则也适用于定时任务会话。如果任务在 [Manual 模式](https://code.claude.com/docs/zh-CN/desktop.md#choose-a-permission-mode)下运行并需要运行它没有权限的工具,运行将停滞,直到您批准它。要批准它,请[找到该运行的会话](#find-a-runs-session)并在其中回答权限提示。163每个任务都有自己的[权限模式](https://code.claude.com/docs/zh-CN/desktop.md#choose-a-permission-mode),您在创建或编辑任务时设置。来自 `~/.claude/settings.json` 的允许规则也适用于定时任务会话。当某次运行因权限提示而停滞时,请[找到该运行的会话](#find-a-runs-session)并在其中回答该提示。

164 164 

165为了避免停滞,在创建任务后单击 **Run now**,查看权限提示,并为每个提示选择"always allow"。该任务的未来运行会自动批准相同的工具,无需提示。您可以从任务的详细信息页面查看和撤销这些批准。165为了避免停滞,在创建任务后单击 **Run now**,查看权限提示,并为每个提示选择"always allow"。之后的运行会跳过其中大部分提示。您可以从任务的详细信息页面查看和撤销这些批准。如果您对任务文件夹中的文件编辑选择"always allow",只有该会话会切换到 **Accept edits**,因此请将任务的权限模式设置为 **Accept edits**。

166 166 

167标记为 [`requiresUserInteraction`](https://code.claude.com/docs/zh-CN/mcp#require-approval-for-a-specific-tool) 的 MCP 工具在每次调用时都会提示,并且不提供"always allow"选项。调用这些工具的运行每次都会停滞。167标记为 [`requiresUserInteraction`](https://code.claude.com/docs/zh-CN/mcp#require-approval-for-a-specific-tool) 的 MCP 工具在每次调用时都会提示,并且不提供"always allow"选项。调用这些工具的运行每次都会停滞。

168 168 


179 179 

180您也可以通过在任何 Desktop 会话中询问 Claude 来列出、创建、编辑和暂停任务。例如,"pause my dependency-audit task"或"show me my scheduled tasks"。要删除任务,请使用其详细信息页面上的 **Delete** 按钮。180您也可以通过在任何 Desktop 会话中询问 Claude 来列出、创建、编辑和暂停任务。例如,"pause my dependency-audit task"或"show me my scheduled tasks"。要删除任务,请使用其详细信息页面上的 **Delete** 按钮。

181 181 

182定期任务还可以使用 `update_scheduled_task` MCP 工具从运行中的会话内修改其自己的调度或提示。这让任务可以根据它发现的内容重新调度自己,例如,当它检测到发布分支已创建时,将代码审查重新调度为更早运行。182要让任务使用 `update_scheduled_task` MCP 工具更改其自己的调度或提示词,请单击 **Run now** 并每次批准该调用。

183 183 

184要在磁盘上编辑任务的提示,请打开 `~/.claude/scheduled-tasks/<task-name>/SKILL.md`(如果设置了 [`CLAUDE_CONFIG_DIR`](https://code.claude.com/docs/zh-CN/env-vars),则在其下)。该文件使用 YAML frontmatter 表示 `name` 和 `description`,提示作为正文。更改在下一次运行时生效。Schedule、folder、model 和 enabled 状态不在此文件中:通过 Edit 表单更改它们或询问 Claude。184要在磁盘上编辑任务的提示,请打开 `~/.claude/scheduled-tasks/<task-name>/SKILL.md`(如果设置了 [`CLAUDE_CONFIG_DIR`](https://code.claude.com/docs/zh-CN/env-vars),则在其下)。该文件使用 YAML frontmatter 表示 `name` 和 `description`,提示作为正文。更改在下一次运行时生效。Schedule、folder、model 和 enabled 状态不在此文件中:通过 Edit 表单更改它们或询问 Claude。

185 185 

env-vars.md +5 −3

Details

221| `CLAUDE_CODE_CLIENT_CERT` | 用于 mTLS 身份验证的客户端证书文件路径 |221| `CLAUDE_CODE_CLIENT_CERT` | 用于 mTLS 身份验证的客户端证书文件路径 |

222| `CLAUDE_CODE_CLIENT_KEY` | 用于 mTLS 身份验证的客户端私钥文件路径 |222| `CLAUDE_CODE_CLIENT_KEY` | 用于 mTLS 身份验证的客户端私钥文件路径 |

223| `CLAUDE_CODE_CLIENT_KEY_PASSPHRASE` | 加密的 CLAUDE\_CODE\_CLIENT\_KEY 的密码(可选) |223| `CLAUDE_CODE_CLIENT_KEY_PASSPHRASE` | 加密的 CLAUDE\_CODE\_CLIENT\_KEY 的密码(可选) |

224| `CLAUDE_CODE_CONFIG_LOCK_WAIT_MS` | 添加或删除 `user` 或 `local` 作用域 MCP 服务器的命令(例如 `claude mcp add`)在[失败](https://code.claude.com/docs/zh-CN/errors.md#mcp-server-was-not-saved-or-removed)之前持续尝试获取 `~/.claude.json` 锁的毫秒数。未设置时,该命令会等待约 10 到 20 秒,设置更短的值不会产生任何改变。需要 Claude Code v2.1.318 或更高版本 |

224| `CLAUDE_CODE_CONNECT_TIMEOUT_MS` | 已在 v2.1.186 中移除,现在不起作用。以前用于为流式 API 请求的连接、TLS 和响应标头阶段设置单独的超时。请改用 `API_TIMEOUT_MS`。关于流式请求的响应标头阶段,请参阅 `CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS` |225| `CLAUDE_CODE_CONNECT_TIMEOUT_MS` | 已在 v2.1.186 中移除,现在不起作用。以前用于为流式 API 请求的连接、TLS 和响应标头阶段设置单独的超时。请改用 `API_TIMEOUT_MS`。关于流式请求的响应标头阶段,请参阅 `CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS` |

225| `CLAUDE_CODE_DEBUG_LOGS_DIR` | 覆盖调试日志文件路径。尽管名称如此,这是一个文件路径,而不是目录。需要通过 `--debug`、`/debug` 或 `DEBUG` 环境变量单独启用调试模式:仅设置此变量不会启用日志记录。[`--debug-file`](https://code.claude.com/docs/zh-CN/cli-reference#cli-flags) 标志可同时完成这两项操作。默认为 `~/.claude/debug/<session-id>.txt` |226| `CLAUDE_CODE_DEBUG_LOGS_DIR` | 覆盖调试日志文件路径。尽管名称如此,这是一个文件路径,而不是目录。需要通过 `--debug`、`/debug` 或 `DEBUG` 环境变量单独启用调试模式:仅设置此变量不会启用日志记录。[`--debug-file`](https://code.claude.com/docs/zh-CN/cli-reference#cli-flags) 标志可同时完成这两项操作。默认为 `~/.claude/debug/<session-id>.txt` |

226| `CLAUDE_CODE_DEBUG_LOG_LEVEL` | 写入调试日志文件的最低日志级别。取值:`verbose`、`debug`(默认)、`info`、`warn`、`error`。设置为 `verbose` 可包含大量诊断信息,例如完整的状态栏命令输出;或提高到 `error` 以减少干扰信息 |227| `CLAUDE_CODE_DEBUG_LOG_LEVEL` | 写入调试日志文件的最低日志级别。取值:`verbose`、`debug`(默认)、`info`、`warn`、`error`。设置为 `verbose` 可包含大量诊断信息,例如完整的状态栏命令输出;或提高到 `error` 以减少干扰信息 |


277| `CLAUDE_CODE_DISABLE_WEB_FETCH` | 设置为 `1` 可关闭 [WebFetch](https://code.claude.com/docs/zh-CN/tools-reference.md#webfetch-tool-behavior) 工具。[WebSearch](https://code.claude.com/docs/zh-CN/tools-reference.md#websearch-tool-behavior) 工具仍然可用。需要 Claude Code v2.1.285 或更高版本 |278| `CLAUDE_CODE_DISABLE_WEB_FETCH` | 设置为 `1` 可关闭 [WebFetch](https://code.claude.com/docs/zh-CN/tools-reference.md#webfetch-tool-behavior) 工具。[WebSearch](https://code.claude.com/docs/zh-CN/tools-reference.md#websearch-tool-behavior) 工具仍然可用。需要 Claude Code v2.1.285 或更高版本 |

278| `CLAUDE_CODE_DISABLE_WINDOWS_SHELL_LAUNCHER` | 设置为 `1` 可在 Windows 上直接启动 [PowerShell 工具](https://code.claude.com/docs/zh-CN/tools-reference.md#powershell-tool)命令,而不是通过 `cmd.exe` 启动器。默认情况下,该启动器允许[在后台运行](https://code.claude.com/docs/zh-CN/tools-reference.md#background-commands)的 PowerShell 命令[延续到会话的下一个进程](https://code.claude.com/docs/zh-CN/agent-view.md#the-supervisor-process),例如当您[将会话转入后台](https://code.claude.com/docs/zh-CN/agent-view.md#from-inside-a-session)时。如果设置了该变量,转入后台的 PowerShell 命令会在会话进程退出时停止。Bash 命令不受影响。需要 Claude Code v2.1.269 或更高版本 |279| `CLAUDE_CODE_DISABLE_WINDOWS_SHELL_LAUNCHER` | 设置为 `1` 可在 Windows 上直接启动 [PowerShell 工具](https://code.claude.com/docs/zh-CN/tools-reference.md#powershell-tool)命令,而不是通过 `cmd.exe` 启动器。默认情况下,该启动器允许[在后台运行](https://code.claude.com/docs/zh-CN/tools-reference.md#background-commands)的 PowerShell 命令[延续到会话的下一个进程](https://code.claude.com/docs/zh-CN/agent-view.md#the-supervisor-process),例如当您[将会话转入后台](https://code.claude.com/docs/zh-CN/agent-view.md#from-inside-a-session)时。如果设置了该变量,转入后台的 PowerShell 命令会在会话进程退出时停止。Bash 命令不受影响。需要 Claude Code v2.1.269 或更高版本 |

279| `CLAUDE_CODE_DISABLE_WORKFLOWS` | 设置为 `1` 可禁用[工作流](https://code.claude.com/docs/zh-CN/workflows.md#turn-workflows-off)。等同于 [`disableWorkflows`](https://code.claude.com/docs/zh-CN/settings-reference#disableworkflows) 设置 |280| `CLAUDE_CODE_DISABLE_WORKFLOWS` | 设置为 `1` 可禁用[工作流](https://code.claude.com/docs/zh-CN/workflows.md#turn-workflows-off)。等同于 [`disableWorkflows`](https://code.claude.com/docs/zh-CN/settings-reference#disableworkflows) 设置 |

281| `CLAUDE_CODE_DROP_UNAVAILABLE_DEFERRED_TOOL` | 设置为 `1`,在使用 `-p` 恢复时,丢弃其工具不可用的[延迟工具调用](https://code.claude.com/docs/zh-CN/hooks.md#resume-when-a-deferred-tool-is-unavailable)。未设置此变量时,该调用会保持挂起状态,您发送的提示词不会到达 Claude。需要 Claude Code v2.1.319 或更高版本 |

280| `CLAUDE_CODE_EFFORT_LEVEL` | 为支持的模型设置 effort 级别。取值:`low`、`medium`、`high`、`xhigh` 或 `max`。可用级别取决于模型。优先于 `--effort`、`/effort` 以及 `modelSettings` 和 `effortLevel` 设置。[`maxEffortLevel`](https://code.claude.com/docs/zh-CN/settings-reference#maxeffortlevel) 上限仍然适用。设置为 `auto` 或 `unset` 可让 Claude Code [不发送 effort 级别](https://code.claude.com/docs/zh-CN/model-config.md#send-no-effort-level),从而由 API 为该模型应用其自身的默认值。请参阅[调整 effort 级别](https://code.claude.com/docs/zh-CN/model-config.md#adjust-effort-level) |282| `CLAUDE_CODE_EFFORT_LEVEL` | 为支持的模型设置 effort 级别。取值:`low`、`medium`、`high`、`xhigh` 或 `max`。可用级别取决于模型。优先于 `--effort`、`/effort` 以及 `modelSettings` 和 `effortLevel` 设置。[`maxEffortLevel`](https://code.claude.com/docs/zh-CN/settings-reference#maxeffortlevel) 上限仍然适用。设置为 `auto` 或 `unset` 可让 Claude Code [不发送 effort 级别](https://code.claude.com/docs/zh-CN/model-config.md#send-no-effort-level),从而由 API 为该模型应用其自身的默认值。请参阅[调整 effort 级别](https://code.claude.com/docs/zh-CN/model-config.md#adjust-effort-level) |

281| `CLAUDE_CODE_EMIT_SESSION_STATE_EVENTS` | 设置为 `1` 可在消息流中添加携带会话状态的 [`session_state_changed`](https://code.claude.com/docs/zh-CN/agent-sdk/typescript#sdksessionstatechangedmessage) 消息。需要使用 [Agent SDK](https://code.claude.com/docs/zh-CN/agent-sdk/overview.md),或同时使用 `--print`、`--output-format stream-json` 和 `--verbose` |283| `CLAUDE_CODE_EMIT_SESSION_STATE_EVENTS` | 设置为 `1` 可在消息流中添加携带会话状态的 [`session_state_changed`](https://code.claude.com/docs/zh-CN/agent-sdk/typescript#sdksessionstatechangedmessage) 消息。需要使用 [Agent SDK](https://code.claude.com/docs/zh-CN/agent-sdk/overview.md),或同时使用 `--print`、`--output-format stream-json` 和 `--verbose` |

282| `CLAUDE_CODE_ENABLE_AUTO_MODE` | 为兼容旧版本而保留,不产生任何效果。自动模式在所有提供商上默认可用,包括 Amazon Bedrock、Google Cloud's Agent Platform、Microsoft Foundry 以及已登录的 [Claude apps gateway](https://code.claude.com/docs/zh-CN/claude-apps-gateway) 会话。在 v2.1.158 至 v2.1.206 中,需要将此变量设置为 `1` 才能在这些提供商上使用[自动模式](https://code.claude.com/docs/zh-CN/permission-modes.md#eliminate-prompts-with-auto-mode) |284| `CLAUDE_CODE_ENABLE_AUTO_MODE` | 为兼容旧版本而保留,不产生任何效果。自动模式在所有提供商上默认可用,包括 Amazon Bedrock、Google Cloud's Agent Platform、Microsoft Foundry 以及已登录的 [Claude apps gateway](https://code.claude.com/docs/zh-CN/claude-apps-gateway) 会话。在 v2.1.158 至 v2.1.206 中,需要将此变量设置为 `1` 才能在这些提供商上使用[自动模式](https://code.claude.com/docs/zh-CN/permission-modes.md#eliminate-prompts-with-auto-mode) |


295| `CLAUDE_CODE_EVEN_MORE_DANGEROUSLY_SKIP_PERMISSIONS` | 设置为 `1` 可在 `bypassPermissions` 模式下[无提示地运行危险的 `rm` 命令](https://code.claude.com/docs/zh-CN/permission-modes#turn-off-the-critical-path-removal-prompt-in-bypasspermissions-mode),这会移除针对破坏性删除的安全提示。链接的章节列出了该变量不生效的情况。[请在启动 Claude Code 的环境中设置它](#set-variables-in-your-shell),因为 Claude Code [会忽略设置 `env` 块中的该变量](https://code.claude.com/docs/zh-CN/settings-reference#variables-claude-code-ignores-in-env)。需要 Claude Code v2.1.311 或更高版本 |297| `CLAUDE_CODE_EVEN_MORE_DANGEROUSLY_SKIP_PERMISSIONS` | 设置为 `1` 可在 `bypassPermissions` 模式下[无提示地运行危险的 `rm` 命令](https://code.claude.com/docs/zh-CN/permission-modes#turn-off-the-critical-path-removal-prompt-in-bypasspermissions-mode),这会移除针对破坏性删除的安全提示。链接的章节列出了该变量不生效的情况。[请在启动 Claude Code 的环境中设置它](#set-variables-in-your-shell),因为 Claude Code [会忽略设置 `env` 块中的该变量](https://code.claude.com/docs/zh-CN/settings-reference#variables-claude-code-ignores-in-env)。需要 Claude Code v2.1.311 或更高版本 |

296| `CLAUDE_CODE_EXIT_AFTER_STOP_DELAY` | 查询循环进入空闲状态后、自动退出前等待的时间(毫秒)。适用于使用 SDK 模式的自动化工作流和脚本 |298| `CLAUDE_CODE_EXIT_AFTER_STOP_DELAY` | 查询循环进入空闲状态后、自动退出前等待的时间(毫秒)。适用于使用 SDK 模式的自动化工作流和脚本 |

297| `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS` | 设置为 `1` 可启用 [agent team](https://code.claude.com/docs/zh-CN/agent-teams.md)。agent team 为实验性功能,默认禁用 |299| `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS` | 设置为 `1` 可启用 [agent team](https://code.claude.com/docs/zh-CN/agent-teams.md)。agent team 为实验性功能,默认禁用 |

298| `CLAUDE_CODE_EXTRA_BODY` | 要合并到每个 API 请求体顶层的 JSON 对象。适用于传递 Claude Code 未直接公开的提供商特定参数。在 shell 中导出的值也会应用于您通过 `claude agents` 或 `--bg` 分派的[后台会话](https://code.claude.com/docs/zh-CN/agent-view.md)。在 v2.1.206 之前,后台会话会忽略 shell 导出的值,而使用后台监管进程所继承的副本 |300| `CLAUDE_CODE_EXTRA_BODY` | 要合并到模型请求体顶层的 JSON 对象,但对话之外的某些请求(例如 `/model` 检查)除外。适用于传递 Claude Code 未直接公开的提供商特定参数。在 shell 中导出的值也会应用于您通过 `claude agents` 或 `--bg` 分派的[后台会话](https://code.claude.com/docs/zh-CN/agent-view.md)。在 v2.1.206 之前,后台会话会忽略 shell 导出的值,而使用后台监管进程所继承的副本 |

299| `CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENS` | 覆盖[文件读取](https://code.claude.com/docs/zh-CN/tools-reference.md#large-files)的默认 token 限制,默认值为 25,000 个 token。适用于需要完整读取较大文件的情况。当上下文窗口有余量时,Claude 使用 `allow_large` 参数进行的读取可以超过此限制 |301| `CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENS` | 覆盖[文件读取](https://code.claude.com/docs/zh-CN/tools-reference.md#large-files)的默认 token 限制,默认值为 25,000 个 token。适用于需要完整读取较大文件的情况。当上下文窗口有余量时,Claude 使用 `allow_large` 参数进行的读取可以超过此限制 |

300| `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 中不起作用,因为这两个版本移除了它所覆盖的嵌套会话检测 |302| `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 中不起作用,因为这两个版本移除了它所覆盖的嵌套会话检测 |

301| `CLAUDE_CODE_FORCE_STRIKETHROUGH` | 当终端支持删除线但未被自动检测到时(例如通过 SSH 连接且未转发 `TERM_PROGRAM`),设置为 `1` 可强制将 Claude 回复中的 `~~text~~` 渲染为删除线。如果不设置,未被检测到的终端会显示字面的 `~~` 标记,而不是将文本渲染为删除线。需要 Claude Code v2.1.186 或更高版本 |303| `CLAUDE_CODE_FORCE_STRIKETHROUGH` | 当终端支持删除线但未被自动检测到时(例如通过 SSH 连接且未转发 `TERM_PROGRAM`),设置为 `1` 可强制将 Claude 回复中的 `~~text~~` 渲染为删除线。如果不设置,未被检测到的终端会显示字面的 `~~` 标记,而不是将文本渲染为删除线。需要 Claude Code v2.1.186 或更高版本 |


313| `CLAUDE_CODE_GZIP_REQUEST_BODIES` | 设置为 `0` 可关闭对发送到 `api.anthropic.com` 的 Claude API、遥测和 [Artifact](https://code.claude.com/docs/zh-CN/artifacts.md) 发布请求体的 gzip 压缩。默认情况下,Claude Code 会在直接连接时压缩较大的请求体,而在您通过代理发送请求、配置客户端证书或设置 `NODE_EXTRA_CA_CERTS` 时跳过压缩。如果 Claude Code 无法检测到的 [TLS 检查代理](https://code.claude.com/docs/zh-CN/network-config.md#ca-certificate-store)无法正确处理压缩请求,请使用 `0` |315| `CLAUDE_CODE_GZIP_REQUEST_BODIES` | 设置为 `0` 可关闭对发送到 `api.anthropic.com` 的 Claude API、遥测和 [Artifact](https://code.claude.com/docs/zh-CN/artifacts.md) 发布请求体的 gzip 压缩。默认情况下,Claude Code 会在直接连接时压缩较大的请求体,而在您通过代理发送请求、配置客户端证书或设置 `NODE_EXTRA_CA_CERTS` 时跳过压缩。如果 Claude Code 无法检测到的 [TLS 检查代理](https://code.claude.com/docs/zh-CN/network-config.md#ca-certificate-store)无法正确处理压缩请求,请使用 `0` |

314| `CLAUDE_CODE_HIDE_CWD` | 设置为 `1` 可在启动徽标中隐藏工作目录。适用于路径会暴露您操作系统用户名的屏幕共享或录制场景 |316| `CLAUDE_CODE_HIDE_CWD` | 设置为 `1` 可在启动徽标中隐藏工作目录。适用于路径会暴露您操作系统用户名的屏幕共享或录制场景 |

315| `CLAUDE_CODE_IDE_HOST_OVERRIDE` | 覆盖用于连接 IDE 扩展的主机地址。默认情况下,Claude Code 会自动检测正确的地址,包括 WSL 到 Windows 的路由 |317| `CLAUDE_CODE_IDE_HOST_OVERRIDE` | 覆盖用于连接 IDE 扩展的主机地址。默认情况下,Claude Code 会自动检测正确的地址,包括 WSL 到 Windows 的路由 |

316| `CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL` | 设置为 `1` 可阻止 `/ide` 安装 IDE 扩展。等同于将 [`autoInstallIdeExtension`](https://code.claude.com/docs/zh-CN/settings-reference#autoinstallideextension) 设置为 `false` |318| `CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL` | 设置为 `1` 可阻止 `/ide` 安装 IDE 扩展。等同于将 [`autoInstallIdeExtension`](https://code.claude.com/docs/zh-CN/settings-reference#autoinstallideextension) 设置为 `false`。v2.1.318 之前的 Claude Code 版本在您于 VS Code、Cursor 或 Devin Desktop 终端中启动 `claude` 时也会安装或更新该扩展。此变量也会阻止这一行为 |

317| `CLAUDE_CODE_IDE_SKIP_VALID_CHECK` | 设置为 `1` 可在连接时跳过对 IDE 锁文件条目的验证。当 IDE 正在运行但自动连接仍找不到它时使用 |319| `CLAUDE_CODE_IDE_SKIP_VALID_CHECK` | 设置为 `1` 可在连接时跳过对 IDE 锁文件条目的验证。当 IDE 正在运行但自动连接仍找不到它时使用 |

318| `CLAUDE_CODE_IDLE_COMPACT_MIN_TOKENS` | 对对话应用[空闲压缩](https://code.claude.com/docs/zh-CN/settings-reference.md#idlecompaction)的上下文大小(以 token 计)(默认值:`200000`)。接受正整数,其他值会被忽略。低于 `100000` 的值会被提高到最低阈值 `100000`。对于满足条件的对话,空闲压缩默认开启。要关闭它,请将 `idleCompaction` 设置为 `false`。需要 Claude Code v2.1.290 或更高版本 |320| `CLAUDE_CODE_IDLE_COMPACT_MIN_TOKENS` | 对对话应用[空闲压缩](https://code.claude.com/docs/zh-CN/settings-reference.md#idlecompaction)的上下文大小(以 token 计)(默认值:`200000`)。接受正整数,其他值会被忽略。低于 `100000` 的值会被提高到最低阈值 `100000`。对于满足条件的对话,空闲压缩默认开启。要关闭它,请将 `idleCompaction` 设置为 `false`。需要 Claude Code v2.1.290 或更高版本 |

319| `CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS` | 一个会话中最多可同时运行多少个[子代理](https://code.claude.com/docs/zh-CN/sub-agents.md#concurrent-subagent-limit),超过后 Agent 工具将拒绝再生成新的子代理(默认:20)。接受以纯数字表示的正整数;其他值会被忽略,因此此变量可以调整上限,但不能禁用它。需要 Claude Code v2.1.217 或更高版本 |321| `CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS` | 一个会话中最多可同时运行多少个[子代理](https://code.claude.com/docs/zh-CN/sub-agents.md#concurrent-subagent-limit),超过后 Agent 工具将拒绝再生成新的子代理(默认:20)。接受以纯数字表示的正整数;其他值会被忽略,因此此变量可以调整上限,但不能禁用它。需要 Claude Code v2.1.217 或更高版本 |


486| `MCP_DISCOVERY_CACHE_STRIKES` | 在启动时如果某个[发现缓存](https://code.claude.com/docs/zh-CN/mcp.md#server-status-detail)条目早于 `MCP_DISCOVERY_CACHE_TTL_S`,Claude Code 会在后台刷新它。此变量设置在 Claude Code 丢弃该条目并改为在下次启动时连接服务器之前,允许连续失败的刷新次数(默认:1)。如果您的网络连接偶尔中断,请调高此值,以免一次失败的刷新就丢弃该条目。需要 Claude Code v2.1.238 或更高版本 |488| `MCP_DISCOVERY_CACHE_STRIKES` | 在启动时如果某个[发现缓存](https://code.claude.com/docs/zh-CN/mcp.md#server-status-detail)条目早于 `MCP_DISCOVERY_CACHE_TTL_S`,Claude Code 会在后台刷新它。此变量设置在 Claude Code 丢弃该条目并改为在下次启动时连接服务器之前,允许连续失败的刷新次数(默认:1)。如果您的网络连接偶尔中断,请调高此值,以免一次失败的刷新就丢弃该条目。需要 Claude Code v2.1.238 或更高版本 |

487| `MCP_DISCOVERY_CACHE_TTL_S` | Claude Code 在不刷新的情况下使用[发现缓存](https://code.claude.com/docs/zh-CN/mcp.md#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 不对该值设上限 |489| `MCP_DISCOVERY_CACHE_TTL_S` | Claude Code 在不刷新的情况下使用[发现缓存](https://code.claude.com/docs/zh-CN/mcp.md#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 不对该值设上限 |

488| `MCP_OAUTH_CALLBACK_PORT` | OAuth 重定向回调的固定端口,在使用[预配置凭据](https://code.claude.com/docs/zh-CN/mcp.md#use-pre-configured-oauth-credentials)添加 MCP 服务器时可作为 `--callback-port` 的替代方案 |490| `MCP_OAUTH_CALLBACK_PORT` | OAuth 重定向回调的固定端口,在使用[预配置凭据](https://code.claude.com/docs/zh-CN/mcp.md#use-pre-configured-oauth-credentials)添加 MCP 服务器时可作为 `--callback-port` 的替代方案 |

489| `MCP_PROTOCOL_NEGOTIATION` | 仅在 [v2 MCP 客户端运行时](https://code.claude.com/docs/zh-CN/mcp.md#mcp-client-runtimes)上,控制 Claude Code 是否探测服务器对 MCP 协议修订版 2026-07-28 的支持。设置为 `legacy` 可跳过探测,使每个服务器都使用该修订版之前的握手方式连接。设置为 `auto` 可探测支持探测的服务器类型:HTTP 和 stdio 服务器、claude.ai 连接器,以及云端会话和 Remote Control 会话的连接器。变量未设置时,Claude Code 默认探测这些相同的类型;请参阅 [MCP 客户端运行时](https://code.claude.com/docs/zh-CN/mcp.md#mcp-client-runtimes)。任何其他值都会被忽略,并在调试日志中记录警告。需要 Claude Code v2.1.221 或更高版本 |491| `MCP_PROTOCOL_NEGOTIATION` | 仅在 [v2 MCP 客户端运行时](https://code.claude.com/docs/zh-CN/mcp.md#mcp-client-runtimes)上,控制 Claude Code 是否探测服务器是否支持 MCP 协议修订版 2026-07-28。设为 `legacy` 可让所有服务器保持使用较早的握手,设为 `auto` 可探测支持该修订版的服务器类型。未设置时,Claude Code 会探测它们,但可能会[跳过某些服务器](https://code.claude.com/docs/zh-CN/mcp.md#mcp-client-runtimes)。任何其他值都会被忽略,并在调试日志中记录警告。需要 Claude Code v2.1.221 或更高版本 |

490| `MCP_REMOTE_SERVER_CONNECTION_BATCH_SIZE` | 启动期间并行连接的远程 MCP 服务器(HTTP/SSE)的最大数量(默认:20) |492| `MCP_REMOTE_SERVER_CONNECTION_BATCH_SIZE` | 启动期间并行连接的远程 MCP 服务器(HTTP/SSE)的最大数量(默认:20) |

491| `MCP_SDK_GENERATION` | 固定此进程连接 MCP 服务器所使用的 [MCP 客户端运行时](https://code.claude.com/docs/zh-CN/mcp.md#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 或更高版本 |493| `MCP_SDK_GENERATION` | 固定此进程连接 MCP 服务器所使用的 [MCP 客户端运行时](https://code.claude.com/docs/zh-CN/mcp.md#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 或更高版本 |

492| `MCP_SERVER_CONNECTION_BATCH_SIZE` | 启动期间并行连接的本地 MCP 服务器(stdio)的最大数量(默认:3) |494| `MCP_SERVER_CONNECTION_BATCH_SIZE` | 启动期间并行连接的本地 MCP 服务器(stdio)的最大数量(默认:3) |

errors.md +27 −17

Details

61| `Could not resolve authentication method` | [身份验证](#could-not-resolve-authentication-method) |61| `Could not resolve authentication method` | [身份验证](#could-not-resolve-authentication-method) |

62| `Invalid API key` | [身份验证](#invalid-api-key) |62| `Invalid API key` | [身份验证](#invalid-api-key) |

63| `Your apiKeyHelper script is failing` | [身份验证](#your-apikeyhelper-script-is-failing) |63| `Your apiKeyHelper script is failing` | [身份验证](#your-apikeyhelper-script-is-failing) |

64| `Claude Code didn't send your claude.ai login, because the API key helper your administrator set isn't in effect` | [身份验证](#claude-code-didnt-send-your-claude-ai-login) |64| `Your organization's settings need an update` | [身份验证](#claude-code-didnt-send-your-claude-ai-login) |

65| `Couldn't load your organization's settings. Check your connection` | [身份验证](#claude-code-didnt-send-your-claude-ai-login) |

66| `Restart Claude Code to finish signing in` | [身份验证](#claude-code-didnt-send-your-claude-ai-login) |

65| `Invalid auth token · Fix external auth token` | [身份验证](#invalid-request-header-value) |67| `Invalid auth token · Fix external auth token` | [身份验证](#invalid-request-header-value) |

66| `Invalid ANTHROPIC_CUSTOM_HEADERS · Fix the environment variable` | [身份验证](#invalid-request-header-value) |68| `Invalid ANTHROPIC_CUSTOM_HEADERS · Fix the environment variable` | [身份验证](#invalid-request-header-value) |

67| `Invalid request header from the environment · Fix the environment variable` | [身份验证](#invalid-request-header-value) |69| `Invalid request header from the environment · Fix the environment variable` | [身份验证](#invalid-request-header-value) |


1117 1119 

1118### Claude Code didn't send your claude.ai login1120### Claude Code didn't send your claude.ai login

1119 1121 

1120请将这条完整消息发送给您的管理员,其中列出了他们可以进行的更改。此消息表示 Claude Code 拒绝了您的提示词。在您使用 claude.ai 登录期间,Claude Code 会持续拒绝提示词,重启后也是如此:1122这些消息表示 Claude Code 拒绝了您的请求,并且没有发送您的 claude.ai 登录信息:

1121 1123 

1122```text theme={null}1124```text theme={null}

1123Claude Code didn't send your claude.ai login, because the API key helper your administrator set isn't in effect. Your organization's managed settings may be overriding it. Ask your administrator to keep the key helper and its API address in effect, to name Anthropic's API address in those managed settings, or to remove the key helper. Run /status to see your setting sources.1125Your organization's settings need an update. Ask your administrator to fix the API key helper configuration.

1126Couldn't load your organization's settings. Check your connection, then restart Claude Code.

1127Restart Claude Code to finish signing in.

1124```1128```

1125 1129 

1126**处理方法:**1130**处理方法:**

1127 1131 

1128* 要告诉管理员您的机器有哪些托管来源,请在 Claude Code 提示符处运行 `/status`,并复制 [`Setting sources` 行](https://code.claude.com/docs/zh-CN/managed-settings#read-the-source-in-/status)。如果出现 `Skipped sources` 行,也请一并复制1132* `Your organization's settings need an update`:请您的管理员修复 API key helper 配置

1129* 如果您负责管理这些设置,请参阅[为什么机器的密钥 helper 未生效](https://code.claude.com/docs/zh-CN/server-managed-settings.md#machine-apikeyhelper-not-in-effect)1133 * 要告知管理员您的计算机有哪些托管来源,请在 Claude Code 提示符处运行 `/status`,并复制 [`Setting sources` 行](https://code.claude.com/docs/zh-CN/managed-settings#read-the-source-in-/status)。如果出现 `Skipped sources` 行,也请一并复制

1134 * 如果您负责管理这些设置,并且 helper 位于计算机的托管设置文件或 MDM 策略中,请参阅[当计算机的 `apiKeyHelper` 未生效时](https://code.claude.com/docs/zh-CN/server-managed-settings#machine-apikeyhelper-not-in-effect)

1135* `Couldn't load your organization's settings`:检查网络连接,然后重启 Claude Code。如果重启后消息再次出现,请告知您的管理员

1136* `Restart Claude Code to finish signing in`:重启 Claude Code

1137 

1138在 v2.1.315 之前,被拒绝的提示词或文件上传会输出一条以 `Claude Code didn't send your claude.ai login` 开头的消息。

1130 1139 

1131### 请求标头值无效1140### 请求标头值无效

1132 1141 


3422* **`Error: Workspace not trusted. <folder> is your home directory`**:由于主目录的信任从不保存,先在那里运行 `claude` 也无济于事。请改为在项目目录中运行 `claude ultrareview`(先在那里运行一次 `claude` 以接受信任对话框),或追加 `--trust-workspace`。3431* **`Error: Workspace not trusted. <folder> is your home directory`**:由于主目录的信任从不保存,先在那里运行 `claude` 也无济于事。请改为在项目目录中运行 `claude ultrareview`(先在那里运行一次 `claude` 以接受信任对话框),或追加 `--trust-workspace`。

3423* **`No answer in time.` 后跟 `Error: Workspace not trusted`**:`Trust <folder>? [y/N]` 问题在 5 分钟内未得到回答。再次运行 `claude ultrareview` 并回答该问题。3432* **`No answer in time.` 后跟 `Error: Workspace not trusted`**:`Trust <folder>? [y/N]` 问题在 5 分钟内未得到回答。再次运行 `claude ultrareview` 并回答该问题。

3424* **`Ultrareview did not start: <folder> is not trusted`**:您在 `Trust <folder>? [y/N]` 问题处拒绝了,例如回答 `n` 或按 Enter。若要开始审查,请再次运行 `claude ultrareview` 并回答 `y`。3433* **`Ultrareview did not start: <folder> is not trusted`**:您在 `Trust <folder>? [y/N]` 问题处拒绝了,例如回答 `n` 或按 Enter。若要开始审查,请再次运行 `claude ultrareview` 并回答 `y`。

3425* **``Ultrareview did not start: `--trust-workspace` takes no value``**:`--trust-workspace` 后面跟了标志以外的内容,例如 PR 编号或 `false`。如果您不信任该文件夹,请不要使用该标志。若要在本次运行中信任它,请将 PR 编号或基础分支放在该标志之前:`claude ultrareview 1234 --trust-workspace`。3434* **``Ultrareview did not start: `--trust-workspace` takes no value``**:`--trust-workspace` 后面跟了非标志的内容,例如 PR 编号或 `false`。如果您不信任该文件夹,请去掉该标志。要在本次运行中信任它,请将 PR 编号或基准分支放在该标志之前:`claude ultrareview 1234 --trust-workspace`。

3426 3435 

3427在 v2.1.309 之前,`claude ultrareview` 不接受 `--trust-workspace`。3436在 v2.1.309 之前,`claude ultrareview` 不接受 `--trust-workspace`。

3428 3437 


3554 3563 

3555### MCP 服务器未被保存或移除3564### MCP 服务器未被保存或移除

3556 3565 

3557您对 `user` 或 `local` [作用域](https://code.claude.com/docs/zh-CN/mcp.md#mcp-installation-scopes)中的服务器运行了 `claude mcp add`、`claude mcp add-json` 或 `claude mcp remove`。这两个作用域都存储在 `~/.claude.json` 中,而 Claude Code 在写入后回读该文件时,发现更改并不在其中。该命令以此错误退出,而不是输出成功信息。3566此错误表示 `claude mcp add` 或 `claude mcp remove` 等命令未能将您的更改写入 `~/.claude.json`。可能是其他 Claude Code 进程一直锁定着该文件,也可能是该文件为只读或受沙箱保护。

3558 3567 

3559```text theme={null}3568```text theme={null}

3560MCP server "example" was not saved to /home/user/.claude.json. If that file is read-only or protected by a sandbox, make it writable or run the command outside the sandbox, then add the server again.3569MCP server "example" was not saved to /home/user/.claude.json. If other Claude Code processes use that file, they may have kept it locked: add the server again, with CLAUDE_CODE_CONFIG_LOCK_WAIT_MS=60000 set to wait up to a minute. If that file is read-only or protected by a sandbox, make it writable or run the command outside the sandbox first.

3561```3570```

3562 3571 

3563移除操作之后,消息会显示为 `was not removed from`,并以 `then remove the server again` 结尾。对于 `local` 作用域的服务器,路径之后会跟上该条目所属的项目目录,形式为 `(local scope for /path/to/project)`。3572执行移除操作后,消息中的 `was not saved to` 会变为 `was not removed from`,`add the server again` 会变为 `remove the server again`。对于 `local` 作用域的服务器,路径后面会跟上该条目所属的项目目录,形式为 `(local scope for /path/to/project)`。

3564 

3565在 v2.1.283 之前,即使更改未写入文件,`claude mcp add`、`claude mcp add-json` 和 `claude mcp remove` 也会报告成功。

3566 3573 

3567**解决方法:**3574**解决方法:**

3568 3575 

3569* 使消息中指出的文件可写,或在沙箱之外运行命令,然后再次运行相同的添加或移除命令。3576* **有其他 Claude Code 进程正在运行**:该命令会等待文件锁约 10 到 20 秒,然后放弃且不写入。请将 [`CLAUDE_CODE_CONFIG_LOCK_WAIT_MS`](https://code.claude.com/docs/zh-CN/env-vars#variables) 设置为以毫秒为单位的更长等待时间(例如 `60000`),再次运行同一命令。

3577* **文件为只读或受沙箱保护**:使消息所指的文件可写,然后再次运行同一添加或移除命令,或在沙箱之外运行该命令。

3578 

3579在 v2.1.283 之前,即使更改未写入文件,`claude mcp add`、`claude mcp add-json` 和 `claude mcp remove` 也会报告成功。在 v2.1.318 之前,消息中不会提及锁,Claude Code 也不会读取 [`CLAUDE_CODE_CONFIG_LOCK_WAIT_MS`](https://code.claude.com/docs/zh-CN/env-vars#variables)。

3570 3580 

3571### MCP 服务器可能未被保存或移除3581### MCP 服务器可能未被保存或移除

3572 3582 

3573您对 `user` 或 `local` [作用域](https://code.claude.com/docs/zh-CN/mcp.md#mcp-installation-scopes)中的服务器运行了 `claude mcp add`、`claude mcp add-json` 或 `claude mcp remove`,而 Claude Code 无法回读 `~/.claude.json` 来确认更改。更改可能已写入磁盘,也可能没有。括号中的文本是该读取操作的错误。3583您对 `user` 或 `local` [作用域](https://code.claude.com/docs/zh-CN/mcp.md#mcp-installation-scopes)中的服务器运行了 `claude mcp add`、`claude mcp add-json` 或 `claude mcp remove`,而 Claude Code 无法回读 `~/.claude.json` 以确认更改。该更改可能已写入磁盘,也可能没有。`to confirm the change` 之后的括号中给出了原因。

3574 3584 

3575```text theme={null}3585```text theme={null}

3576MCP server "example" may not have been saved: /home/user/.claude.json could not be read to confirm the change (EACCES: permission denied, open '/home/user/.claude.json'). Run `claude mcp get example` to check, then add the server again if it is missing.3586MCP server "example" may not have been saved: /home/user/.claude.json could not be read to confirm the change (EACCES: permission denied, open '/home/user/.claude.json'). Run `claude mcp get example` to check, then add the server again if it is missing.

3577```3587```

3578 3588 

3579移除操作之后,消息会显示为 `may not have been removed`,并以 `then remove the server again if it is still listed` 结尾。3589执行移除操作后,消息为 `may not have been removed`,并以 `then remove the server again if it is still listed` 结尾。如果原因是 `the file was not found`,该服务器可能仍处于已配置状态。

3580 3590 

3581在 v2.1.283 之前,即使无法确认更改,这些命令也会报告成功。3591在 v2.1.283 之前,即使无法确认更改,这些命令也会报告成功。

3582 3592 


3714 3724 

3715以下相关消息会在命令运行之前就出现:3725以下相关消息会在命令运行之前就出现:

3716 3726 

3717* `Shell command permission check failed for pattern "..."`:该命令的权限检查未允许它运行。[注入命令的权限检查](https://code.claude.com/docs/zh-CN/skills.md#permission-checks-on-injected-commands)介绍了在每种权限模式下哪些结果会导致中止,以及如何通过 `allowed-tools` 预先批准命令3727* `Shell command permission check failed for pattern "..."`:该命令的权限检查未允许它运行。[注入命令的权限检查](https://code.claude.com/docs/zh-CN/skills.md#permission-checks-on-injected-commands)介绍了在每种权限模式下哪些结果会导致中止,以及如何使用 `allowed-tools` 预先批准命令

3718* ``Skill <name> requires bash (`shell: bash` in frontmatter) but Git Bash was not found``:该 skill 的 frontmatter 要求 bash,而机器上没有安装 bash。请安装 Git for Windows,或将 frontmatter 改为 `shell: powershell`。请参阅[注入命令的运行方式](https://code.claude.com/docs/zh-CN/skills.md#how-injected-commands-run)3728* ``Skill <name> requires bash (`shell: bash` in frontmatter) but Git Bash was not found``:该 skill 的 frontmatter 要求 bash,但机器上没有 bash。请安装 Git for Windows,或将 frontmatter 改为 `shell: powershell`。请参阅[注入命令如何运行](https://code.claude.com/docs/zh-CN/skills.md#how-injected-commands-run)

3719 3729 

3720**解决方法:**3730**解决方法:**

3721 3731 


3868 3878 

3869* **您没有传入基础分支**:Claude Code 与仓库的默认分支进行了比较,并建议您显式传入基础分支,如上例所示3879* **您没有传入基础分支**:Claude Code 与仓库的默认分支进行了比较,并建议您显式传入基础分支,如上例所示

3870* **您传入的基础分支已存在于您的克隆中**:提示为 ``Make sure <branch> exists locally or on origin (try `git fetch origin <branch>`)``3880* **您传入的基础分支已存在于您的克隆中**:提示为 ``Make sure <branch> exists locally or on origin (try `git fetch origin <branch>`)``

3871* **您传入的基础分支不在您的克隆中**:Claude Code 在比较前从 origin 获取了该分支。提示内容为 ``<branch> was fetched from origin but shares no history with HEAD. If another branch is your real base, pass it explicitly (`/code-review ultra <branch>`)``;当 Claude Code 无法判断您的克隆是否为浅克隆时,它会改为建议 `git fetch --unshallow origin`。在 v2.1.221 之前,对于每个获取的基础分支,提示都会建议 `git fetch --unshallow origin`,而在完整克隆上该命令会失败,报错 `fatal: --unshallow on a complete repository does not make sense`。3881* **您传入的基础分支不在您的克隆中**:Claude Code 在比较前已从 origin 获取该分支。提示内容为 ``<branch> was fetched from origin but shares no history with HEAD. If another branch is your real base, pass it explicitly (`/code-review ultra <branch>`)``;当 Claude Code 无法判断您的克隆是否为浅克隆时,它会改为建议 `git fetch --unshallow origin`。在 v2.1.221 之前,对于每个获取的基础分支,提示都会建议 `git fetch --unshallow origin`,而在完整克隆上,该命令会失败并显示 `fatal: --unshallow on a complete repository does not make sense`。

3872 3882 

3873**解决方法:**3883**解决方法:**

3874 3884 

fast-mode.md +5 −5

Details

35在 CLI 中,可以通过以下任一方式切换快速模式:35在 CLI 中,可以通过以下任一方式切换快速模式:

36 36 

37* 运行 `/fast`,按 Space 切换开启或关闭,然后按 Enter 确认37* 运行 `/fast`,按 Space 切换开启或关闭,然后按 Enter 确认

38* 在[用户设置文件](https://code.claude.com/docs/zh-CN/settings.md)中设置 `"fastMode": true`38* 在支持快速模式的模型上,在[用户设置文件](https://code.claude.com/docs/zh-CN/settings.md)中设置 `"fastMode": true`。如果您在其他任何模型上设置此项,您将继续使用该模型,且快速模式保持关闭。

39 39 

40默认情况下,在交互式会话中开启的快速模式会跨会话保留。您可以将快速模式配置为每个会话重置。有关详细信息,请参阅[要求按会话选择启用](#require-per-session-opt-in)。40默认情况下,在受支持的模型上,在交互式会话中开启的快速模式会跨会话保留。您可以将快速模式配置为每个会话重置。有关详细信息,请参阅[要求按会话选择启用](#require-per-session-opt-in)。

41 41 

42在[云端会话](#use-fast-mode-in-cloud-sessions)之外,在使用 `-p` 标志的[非交互模式](https://code.claude.com/docs/zh-CN/headless.md)下,`/fast` 仅在其 [`--settings`](https://code.claude.com/docs/zh-CN/cli-reference#cli-flags) 值中包含快速模式的会话中有效,例如 `claude -p --settings '{"fastMode": true}'`;此时切换仅适用于该会话,不会保存为您的默认设置。`-p` 形式需要 Claude Code v2.1.205 或更高版本。在非交互模式的其他情况下,该命令会报告快速模式不可用。42在[云端会话](#use-fast-mode-in-cloud-sessions)之外,在使用 `-p` 标志的[非交互模式](https://code.claude.com/docs/zh-CN/headless.md)下,`/fast` 仅在其 [`--settings`](https://code.claude.com/docs/zh-CN/cli-reference#cli-flags) 值中包含快速模式的会话中有效,例如 `claude -p --settings '{"fastMode": true}'`;此时切换仅适用于该会话,不会保存为您的默认设置。`-p` 形式需要 Claude Code v2.1.205 或更高版本。在非交互模式的其他情况下,该命令会报告快速模式不可用。

43 43 


45 45 

46为获得最佳成本效益,请在会话开始时启用快速模式,而不是在对话中途切换。有关详细信息,请参阅[了解成本权衡](#understand-the-cost-tradeoff)。46为获得最佳成本效益,请在会话开始时启用快速模式,而不是在对话中途切换。有关详细信息,请参阅[了解成本权衡](#understand-the-cost-tradeoff)。

47 47 

48启用快速模式时:48使用 `/fast` 启用快速模式时:

49 49 

50* 如果您当前的模型不支持快速模式,Claude Code 会切换到 Opus50* 如果您当前的模型不支持快速模式,Claude Code 会切换到 Opus

51* 您将看到一条确认消息:"Fast mode ON"51* 您将看到一条确认消息:"Fast mode ON"


196 196 

197### 要求每个会话选择加入197### 要求每个会话选择加入

198 198 

199默认情况下,用户在交互式会话中启用的快速模式会在会话之间保持。要更改此行为,在任何[设置文件](https://code.claude.com/docs/zh-CN/settings.md#where-settings-live)中将 `fastModePerSessionOptIn` 设置为 `true`,这会导致每个会话以快速模式关闭开始,并要求用户使用 `/fast` 明确启用它。[Team](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=fast_mode_teams#team-&-enterprise) 或 [Enterprise](https://anthropic.com/contact-sales?utm_source=claude_code\&utm_medium=docs\&utm_content=fast_mode_enterprise) 计划上的所有者可以通过[服务器托管设置](https://code.claude.com/docs/zh-CN/server-managed-settings.md)在组织范围内部署它。199默认情况下,用户在交互式会话中启用的快速模式会在支持的模型上跨会话保持。要更改此行为,在任何[设置文件](https://code.claude.com/docs/zh-CN/settings.md#where-settings-live)中将 `fastModePerSessionOptIn` 设置为 `true`,这会导致每个会话以快速模式关闭开始,并要求用户使用 `/fast` 明确启用它。[Team](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=fast_mode_teams#team-&-enterprise) 或 [Enterprise](https://anthropic.com/contact-sales?utm_source=claude_code\&utm_medium=docs\&utm_content=fast_mode_enterprise) 计划上的所有者可以通过[服务器托管设置](https://code.claude.com/docs/zh-CN/server-managed-settings.md)在组织范围内部署它。

200 200 

201```json theme={null}201```json theme={null}

202{202{


221 221 

222如果您在会话中途用完使用额度,Claude Code 会在标准速度和定价下重试每个被拒绝的快速模式请求,因此您可以继续工作,没有冷却。您看到拒绝的方式取决于会话类型:222如果您在会话中途用完使用额度,Claude Code 会在标准速度和定价下重试每个被拒绝的快速模式请求,因此您可以继续工作,没有冷却。您看到拒绝的方式取决于会话类型:

223 223 

224* 在交互式会话中,Claude Code 显示"快速模式已禁用 · 使用额度已耗尽"通知,并在会话的其余部分关闭快速模式。您保存的快速模式偏好设置不会改变;运行 `/fast` 以重新打开快速模式。224* 在交互式会话中,Claude Code 显示"快速模式已禁用 · 使用额度已耗尽"通知,并关闭快速模式。您保存的快速模式偏好设置不会改变;运行 `/fast` 以重新打开快速模式。

225* 在[非交互式模式](https://code.claude.com/docs/zh-CN/headless.md)中使用 `--output-format stream-json`,以及通过 Agent SDK,Claude Code 在消息流上作为 `system` 消息发出相同的文本,子类型为 `notification`,在您用完使用额度时每轮一次。快速模式保持打开。需要 Claude Code v2.1.221 或更高版本。225* 在[非交互式模式](https://code.claude.com/docs/zh-CN/headless.md)中使用 `--output-format stream-json`,以及通过 Agent SDK,Claude Code 在消息流上作为 `system` 消息发出相同的文本,子类型为 `notification`,在您用完使用额度时每轮一次。快速模式保持打开。需要 Claude Code v2.1.221 或更高版本。

226 226 

227## 研究预览227## 研究预览

hooks.md +63 −21

Details

70 70 

71> [tab] macOS/Linux71> [tab] macOS/Linux

72>72>

73> `matcher` 缩小到 Bash 工具调用,`if` 条件进一步缩小到匹配 `rm *` 的 Bash 子命令,因此 `block-rm.sh` 仅在两个过滤器都匹配时生成:73> `matcher` 缩小到 Bash 工具调用和 [Monitor 命令](#match-monitor-commands),`if` 条件进一步缩小到匹配 `rm *` 的 Bash 子命令,因此 `block-rm.sh` 仅在两个过滤器都匹配时生成:

74>74>

75> ```json theme={null}75> ```json theme={null}

76> {76> {


116 116 

117> [tab] Windows (PowerShell)117> [tab] Windows (PowerShell)

118>118>

119> 匹配器 `Bash|PowerShell` 涵盖 [PowerShell 工具](#powershell)以及 Bash。单个 `if` 规则仅匹配一个工具的调用,因此每个工具都有自己的处理程序:第一个缩小到匹配 `rm *` 的 Bash 子命令,第二个缩小到匹配 `Remove-Item *` 的 PowerShell 命令。两者都通过 `powershell.exe` 运行相同的脚本:119> 匹配器 `Bash|PowerShell` 涵盖 [PowerShell 工具](#powershell)以及 Bash。单个 `if` 规则只指定一个工具,因此每个工具都有自己的处理程序:第一个缩小到匹配 `rm *` 的 Bash 子命令,第二个缩小到匹配 `Remove-Item *` 的 PowerShell 命令。两者都通过 `powershell.exe` 运行相同的脚本:

120>120>

121> ```json theme={null}121> ```json theme={null}

122> {122> {


225Hooks 在 JSON 设置文件中定义。配置有三个嵌套级别:225Hooks 在 JSON 设置文件中定义。配置有三个嵌套级别:

226 226 

2271. 选择一个 [hook 事件](#hook-events) 来响应,如 `PreToolUse` 或 `Stop`2271. 选择一个 [hook 事件](#hook-events) 来响应,如 `PreToolUse` 或 `Stop`

2282. 添加一个 [匹配器组](#matcher-patterns) 来过滤何时触发,如"仅针对 Bash 工具"2282. 添加一个[匹配器组](#matcher-patterns)来筛选其触发时机,例如"针对 Bash 工具"

2293. 定义一个或多个 [hook 处理程序](#hook-handler-fields) 在匹配时运行2293. 定义一个或多个 [hook 处理程序](#hook-handler-fields) 在匹配时运行

230 230 

231有关完整的演练和带注释的示例,请参阅上面的 [Hook 如何解析](#how-a-hook-resolves)。231有关完整的演练和带注释的示例,请参阅上面的 [Hook 如何解析](#how-a-hook-resolves)。


277| 匹配器值 | 评估为 | 示例 |277| 匹配器值 | 评估为 | 示例 |

278| :- | :- | :- |278| :- | :- | :- |

279| `"*"`、`""` 或省略 | 匹配所有 | 在事件的每次出现时触发 |279| `"*"`、`""` 或省略 | 匹配所有 | 在事件的每次出现时触发 |

280| 仅字母、数字、`_`、`-`、空格、`,` 和 `\|` | 精确字符串或由 `\|` 或 `,` 分隔的精确字符串列表,可选周围空格 | `Bash` 仅匹配 Bash 工具;`Edit\|Write` 和 `Edit, Write` 各自精确匹配任一工具;`code-reviewer` 仅匹配该代理类型 |280| 仅字母、数字、`_`、`-`、空格、`,` 和 `\|` | 精确字符串或由 `\|` 或 `,` 分隔的精确字符串列表,可选周围空格 | `Bash` 匹配 Bash 工具,在 `PreToolUse` 和 `PermissionRequest` 上还匹配 [Monitor 命令](#match-monitor-commands);`Edit\|Write` 和 `Edit, Write` 各自精确匹配任一工具;`code-reviewer` 仅匹配该 Agent 类型 |

281| 包含任何其他字符 | JavaScript 正则表达式,未锚定 | `^Notebook` 匹配任何名称以 `Notebook` 开头的工具;`mcp__memory__.*` 匹配来自 `memory` 服务器的每个工具 |281| 包含任何其他字符 | JavaScript 正则表达式,未锚定 | `^Notebook` 匹配任何名称以 `Notebook` 开头的工具;`mcp__memory__.*` 匹配来自 `memory` 服务器的每个工具 |

282 282 

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


294| `SessionStart` | 会话如何启动 | `startup`、`resume`、`clear`、`compact`、`fork` |294| `SessionStart` | 会话如何启动 | `startup`、`resume`、`clear`、`compact`、`fork` |

295| `Setup` | 哪个 CLI 标志触发了设置 | `init`、`maintenance` |295| `Setup` | 哪个 CLI 标志触发了设置 | `init`、`maintenance` |

296| `SessionEnd` | 会话为何结束 | `clear`、`resume`、`logout`、`prompt_input_exit`、`other` |296| `SessionEnd` | 会话为何结束 | `clear`、`resume`、`logout`、`prompt_input_exit`、`other` |

297| `Notification` | 通知类型 | `permission_prompt`、`idle_prompt`、`auth_success`、`elicitation_dialog`、`elicitation_url_dialog`、`elicitation_complete`、`elicitation_response`、`agent_needs_input`、`agent_completed`、`quota_auto_resume_fired`、`quota_auto_resume_stale`、`quota_auto_resume_disabled`、`plugin_notification` |297| `Notification` | 通知类型 | `permission_prompt`、`idle_prompt`、`auth_success`、`auth_storage_failure`、`elicitation_dialog`、`elicitation_url_dialog`、`elicitation_complete`、`elicitation_response`、`agent_needs_input`、`agent_completed`、`quota_auto_resume_fired`、`quota_auto_resume_stale`、`quota_auto_resume_disabled`、`plugin_notification` |

298| `SubagentStart` | 代理类型 | `general-purpose`、`Explore`、`Plan`、自定义代理名称或插件范围的名称如 `^my-plugin:reviewer$` |298| `SubagentStart` | 代理类型 | `general-purpose`、`Explore`、`Plan`、自定义代理名称或插件范围的名称如 `^my-plugin:reviewer$` |

299| `PreCompact`、`PostCompact` | 什么触发了压缩 | `manual`、`auto` |299| `PreCompact`、`PostCompact` | 什么触发了压缩 | `manual`、`auto` |

300| `PreModelSwitch`、`PostModelSwitch` | 会话切换到的模型的规范名称,如 [PreModelSwitch](#premodelswitch) 下所述 | `claude-opus-5`、`claude-opus-4-6\|claude-opus-5`、`.*opus.*` |300| `PreModelSwitch`、`PostModelSwitch` | 会话切换到的模型的规范名称,如 [PreModelSwitch](#premodelswitch) 下所述 | `claude-opus-5`、`claude-opus-4-6\|claude-opus-5`、`.*opus.*` |


385}385}

386```386```

387 387 

388#### 匹配 Monitor 命令

389 

390带有 `Bash` 匹配器的 [`PreToolUse`](#pretooluse) 或 [`PermissionRequest`](#permissionrequest) hook 也会在 Claude 通过 [Monitor 工具](https://code.claude.com/docs/zh-CN/tools-reference.md#monitor-tool) 启动的 shell 命令上运行,但其 `allow` 和 [`updatedInput`](#pretooluse-decision-control) 对这些命令无效。需要 Claude Code v2.1.314 或更高版本。`Bash|PowerShell`、`^Bash$` 和 `Bash.*` 等匹配器也属于 `Bash` 匹配器。带有 `Bash` 匹配器的 hook 不会为 [WebSocket 监视](https://code.claude.com/docs/zh-CN/tools-reference.md#websocket-source) 运行,带有此类匹配器的 `PostToolUse` hook 也不会为 Monitor 运行。

391 

392为 Monitor 命令运行的 hook 可以拒绝该命令,或让 Claude Code 就此询问您。要允许或重写该命令,请将 `Bash` 匹配器换成包含 Monitor 的匹配器:

393 

394* **包含 Monitor 的匹配器**:使用 `Bash|Monitor` 或 `.*` 等匹配器,或不设置匹配器时,hook 会获得 Monitor 调用本身的输入,且 `allow` 和 `updatedInput` 生效。在 [`if`](#common-fields) 中指定 Monitor,如 `Monitor(tail *)`,它按照 [`Bash(tail *)` 所遵循的规则](#bash-if-matching) 进行匹配。如果其 `if` 指定的是 Bash,hook 仍会获得 Monitor 调用的输入,但 `allow` 和 `updatedInput` 无效

395* **`Bash` 匹配器**:hook 获得的是 Bash 调用。在 `if` 中指定 Bash,如 `Bash(tail *)`。如果其 `if` 指定的是 Monitor,hook 不会运行

396 

388### Hook 处理程序字段397### Hook 处理程序字段

389 398 

390内部 `hooks` 数组中的每个对象都是一个 hook 处理程序:当匹配器匹配时运行的 shell 命令、HTTP 端点、MCP 工具、LLM 提示或代理。有五种类型:399内部 `hooks` 数组中的每个对象都是一个 hook 处理程序:当匹配器匹配时运行的 shell 命令、HTTP 端点、MCP 工具、LLM 提示或代理。有五种类型:


811* **两行或更多行,每行本身都可解析为 JSON,且第一行以 `{` 开头、最后一行以 `}` 结尾**:如果没有任何一行是设置了字段的 JSON 输出对象,则为纯文本。如果有一行是,则输出为解析失败,因此请只在 stdout 上打印该对象,不要打印其他内容。820* **两行或更多行,每行本身都可解析为 JSON,且第一行以 `{` 开头、最后一行以 `}` 结尾**:如果没有任何一行是设置了字段的 JSON 输出对象,则为纯文本。如果有一行是,则输出为解析失败,因此请只在 stdout 上打印该对象,不要打印其他内容。

812* **其他任何以 `{` 开头并以 `}` 结尾但不是有效 JSON 的内容**:解析失败。821* **其他任何以 `{` 开头并以 `}` 结尾但不是有效 JSON 的内容**:解析失败。

813 822 

814对于大多数事件,Claude Code 将 stdout 写入调试日志,不在会话记录中显示。例外是 `UserPromptSubmit`、`UserPromptExpansion`、`SessionStart` 和 `PostModelSwitch`,其中 Claude Code 添加纯文本 stdout 作为 Claude 可以看到并据此行动的上下文。在这些事件上,Claude Code 不会添加它未能解析的 stdout。823对于大多数事件,Claude Code 将 stdout 写入调试日志,不在会话记录中显示。在以下事件上,您的 stdout 会到达 Claude 或压缩摘要:

824 

825* **`UserPromptSubmit`、`UserPromptExpansion`、`SessionStart` 和 `PostModelSwitch`**:Claude Code 添加纯文本 stdout 作为 Claude 可以看到并据此行动的上下文。它不会添加未能解析的 stdout。

826* **`PreCompact`**:您的 stdout 成为[压缩摘要的指令](#precompact-output)

815 827 

816Claude 从不看到以 0 退出的 hook 的 stderr。要在 `PreToolUse` 等事件上自己读取它,请启用[调试日志](#debug-hooks)。要从 `PostToolUse` 或 `PostToolUseFailure` hook 向 Claude 显示警告,请改为退出 2,以便 [Claude 看到 stderr](#exit-code-2-behavior-per-event),即使工具已经运行。828Claude 从不看到以 0 退出的 hook 的 stderr。要在 `PreToolUse` 等事件上自己读取它,请启用[调试日志](#debug-hooks)。要从 `PostToolUse` 或 `PostToolUseFailure` hook 向 Claude 显示警告,请改为退出 2,以便 [Claude 看到 stderr](#exit-code-2-behavior-per-event),即使工具已经运行。

817 829 


1050hook 的 `additionalContext`、`systemMessage` 和 `initialUserMessage` 字符串,以及其纯 stdout,限制为 10,000 个字符:1062hook 的 `additionalContext`、`systemMessage` 和 `initialUserMessage` 字符串,以及其纯 stdout,限制为 10,000 个字符:

1051 1063 

1052* **范围**:Claude Code 单独测量每个字符串,即使多个 hook 为同一事件运行。对于 JSON 输出,每个字段单独测量;纯 stdout 整体测量。1064* **范围**:Claude Code 单独测量每个字符串,即使多个 hook 为同一事件运行。对于 JSON 输出,每个字段单独测量;纯 stdout 整体测量。

1053* **超过限制**:Claude Code 将输出保存到会话目录中的文件,并用文件路径和最多前 2,000 个字符的预览替换它。大型有效 Bash 结果的处理方式相同,在[输出限制](https://code.claude.com/docs/zh-CN/tools-reference.md#output-limits)下描述。与该 Bash 上限不同,此上限没有可提高它的设置或环境变量。1065* **超过限制**:除 [PreCompact stdout](#precompact-output) 外,Claude Code 将输出保存到会话目录中的文件,并用文件路径和最多前 2,000 个字符的预览替换它。大型有效 Bash 结果的处理方式相同,在[输出限制](https://code.claude.com/docs/zh-CN/tools-reference.md#output-limits)下描述。与该 Bash 上限不同,此上限没有可提高它的设置或环境变量。

1054* **读取文件**:Claude Code 不要求 Claude 读取文件,因此请将 Claude 必须始终看到的任何内容保持在上限内。1066* **读取文件**:Claude Code 不要求 Claude 读取文件,因此请将 Claude 必须始终看到的任何内容保持在上限内。

1055 1067 

1056JSON 对象支持三种字段:1068JSON 对象支持三种字段:


1954 1966 

1955#### PreToolUse 决策控制1967#### PreToolUse 决策控制

1956 1968 

1957`PreToolUse` hook 可以控制工具调用是否继续。与使用顶层 `decision` 字段的其他 hook 不同,PreToolUse 在 `hookSpecificOutput` 对象中返回其决策。这为其提供了更丰富的控制:四种结果(允许、拒绝、询问或延迟),以及在执行前修改工具输入的能力。1969`PreToolUse` hook 可以控制工具调用是否继续。与其他使用顶层 `decision` 字段的 hook 不同,PreToolUse 在 `hookSpecificOutput` 对象中返回其决策。这为其提供了更丰富的控制:四种结果(允许、拒绝、询问或延迟),以及在执行前修改工具输入的能力。要允许或改写 Monitor 命令,请参阅[匹配 Monitor 命令](#match-monitor-commands)。

1958 1970 

1959| 字段 | 说明 |1971| 字段 | 说明 |

1960| :- | :- |1972| :- | :- |


2051 2063 

2052#### 延迟工具调用2064#### 延迟工具调用

2053 2065 

2054`"defer"` 适用于将 `claude -p` 作为子进程运行并读取其 JSON 输出的集成,例如 Agent SDK 应用或基于 Claude Code 构建的自定义 UI。它允许调用进程在某个工具调用处暂停 Claude,通过自己的界面收集输入,然后从中断处恢复。Claude Code 仅在使用 `-p` 标志的[非交互模式](https://code.claude.com/docs/zh-CN/headless.md)下遵守此值。在交互式会话中,它会记录一条警告并忽略该 hook 结果。2066`"defer"` 适用于以子进程方式运行 `claude -p` 并读取其 JSON 输出的集成,例如 Agent SDK 应用或基于 Claude Code 构建的自定义 UI。它让调用进程可以在某个工具调用处暂停 Claude,通过自己的界面收集输入,然后从中断处继续。

2067 

2068Claude Code 仅在使用 `-p` 标志的[非交互模式](https://code.claude.com/docs/zh-CN/headless.md)下、且 Claude 在该轮次中只进行一次工具调用时,才会遵循 `"defer"`:

2069 

2070* **在交互式会话中**:记录一条警告并忽略 hook 结果

2071* **同时进行多个工具调用**:`"defer"` 会被忽略并给出警告,工具按正常的权限流程继续

2055 2072 

2056`AskUserQuestion` 工具是典型场景:Claude 想向用户提问,但没有可供作答的终端。`-p` 运行只有在具有[权限宿主](https://code.claude.com/docs/zh-CN/headless.md#turn-off-permission-prompts-in-unattended-runs)(例如您通过 `--permission-prompt-tool` 传入的 MCP 工具)时才会提供 `AskUserQuestion`,因此请在启动运行时提供一个。完整的往返流程如下:2073`AskUserQuestion` 工具是典型场景:Claude 想向用户提问,但没有可供作答的终端。`-p` 运行只有在具有[权限宿主](https://code.claude.com/docs/zh-CN/headless.md#turn-off-permission-prompts-in-unattended-runs)(例如您通过 `--permission-prompt-tool` 传入的 MCP 工具)时才会提供 `AskUserQuestion`,因此请在启动运行时提供一个。完整的往返流程如下:

2057 2074 


20614. 调用进程使用相同的权限宿主运行 `claude -p --resume <session-id>`。同一工具调用会再次触发 `PreToolUse`。20784. 调用进程使用相同的权限宿主运行 `claude -p --resume <session-id>`。同一工具调用会再次触发 `PreToolUse`。

20625. hook 返回 `permissionDecision: "allow"`,并在 `updatedInput` 中附带答案。工具执行,Claude 继续。20795. hook 返回 `permissionDecision: "allow"`,并在 `updatedInput` 中附带答案。工具执行,Claude 继续。

2063 2080 

2064`deferred_tool_use` 字段携带工具的 `id`、`name` 和 `input`。`input` 是 Claude 为该工具调用生成的参数,在执行前捕获:2081`deferred_tool_use` 字段包含工具的 `id`、`name` 和 `input`:

2065 2082 

2066```json theme={null}2083```json theme={null}

2067{2084{


2077}2094}

2078```2095```

2079 2096 

2080没有超时或重试次数限制。会话会保留在磁盘上,直到您恢复它,但会受 [`cleanupPeriodDays`](https://code.claude.com/docs/zh-CN/settings-reference#cleanupperioddays) 保留期清理的影响:该清理默认在 30 天后删除会话文件,并遵循[保留期清理规则](https://code.claude.com/docs/zh-CN/claude-directory.md#cleaned-up-automatically)。2097没有超时或重试次数限制。会话会保留在磁盘上,直到 [`cleanupPeriodDays`](https://code.claude.com/docs/zh-CN/settings-reference#cleanupperioddays) [保留期清理](https://code.claude.com/docs/zh-CN/claude-directory.md#cleaned-up-automatically)将其删除,默认为 30 天之后。

2081 

2082如果在您恢复时被延迟的工具已不可用,恢复后的第一个结果会带有 `stop_reason: "tool_deferred_unavailable"` 和 `is_error: true`,且 hook 不会触发。当提供该工具的 MCP 服务器未在恢复的会话中连接时,就会发生这种情况。`deferred_tool_use` 数据仍会包含在内,以便您确定缺失的是哪个工具。

2083 

2084* **如果您在恢复时或恢复之后没有发送提示词**,该调用仍处于待处理状态。在工具可用时再次恢复,它会首先运行。

2085* **如果您在恢复时或恢复之后发送了提示词**,Claude Code 会在没有该工具结果的情况下回答它,并丢弃被延迟的调用。如果您仍需调用该工具,请在工具可用后发送新的提示词。

2086 2098 

2087如果在您不带提示词恢复时,您等待的答案尚未就绪,hook 可以再次返回 `"defer"`。如果您发送了提示词而 hook 再次延迟,Claude Code 会以同样的方式处理该提示词:在没有工具结果的情况下回答,并丢弃该调用。请不带提示词地恢复,直到 hook 返回 `"allow"` 或 `"deny"`,调用进程正是以此跳出循环。2099如果恢复时回答尚未就绪,hook 可以再次返回 `"defer"`。如果您在该次恢复时发送了提示词,Claude 会在没有工具结果的情况下回答它,并且不会运行该调用。请在不带提示词的情况下恢复,直到 hook 返回 `"allow"` 或 `"deny"`。

2088 

2089`"defer"` 仅在 Claude 在该轮次中进行单个工具调用时有效。如果 Claude 同时进行多个工具调用,`"defer"` 会被忽略并给出警告,工具将通过正常的权限流程继续。存在此限制是因为恢复只能重新运行一个工具:无法在不让其他调用悬而未决的情况下,从一批调用中延迟其中一个。

2090 2100 

2091> [!NOTE]2101> [!NOTE]

2092>2102>

2093> 要在计划模式下恢复延迟的会话,请将 [`--permission-prompt-tool`](https://code.claude.com/docs/zh-CN/cli-reference#cli-flags) 与 `--resume` 一起传入,以便 Claude Code 可以呈现计划供批准。有关其他条件,请参阅[使用 `-p` 在计划模式下恢复](https://code.claude.com/docs/zh-CN/sessions#resume-in-plan-mode-with-p)。需要 Claude Code v2.1.246 或更高版本。2103> 要在计划模式下恢复延迟的会话,请将 [`--permission-prompt-tool`](https://code.claude.com/docs/zh-CN/cli-reference#cli-flags) 与 `--resume` 一起传入,以便 Claude Code 可以呈现计划供批准。有关其他条件,请参阅[使用 `-p` 在计划模式下恢复](https://code.claude.com/docs/zh-CN/sessions#resume-in-plan-mode-with-p)。需要 Claude Code v2.1.246 或更高版本。

2094>2104>

2095> 当您使用 `-p` 恢复时,Claude Code 不会还原任何其他已存储的权限模式。它会以新的 `claude -p` 运行所使用的权限模式启动运行,因此如果延迟的会话使用了 `--permission-mode` 或 `--dangerously-skip-permissions`,请再次传入。当您不带 `-p` 使用 `claude --resume <session-id>` 恢复时,Claude Code 会还原已存储的权限模式,但[恢复时的权限模式](https://code.claude.com/docs/zh-CN/sessions.md#permission-mode-on-resume)中列出的例外情况除外。2105> 使用 `-p` 恢复时,Claude Code 不会恢复任何其他已存储的权限模式。它会以新的 `claude -p` 运行所使用的权限模式启动本次运行,因此如果被推迟的会话使用了 `--permission-mode` 或 `--dangerously-skip-permissions`,请再次传入。

2106 

2107##### 被推迟的工具不可用时的恢复

2108 

2109带有 `stop_reason: "tool_deferred_unavailable"` 的结果表示被推迟调用的工具在恢复后的会话中不可用,例如因为其 MCP 服务器未连接。您的 `PreToolUse` hook 不会触发,结果中的 `deferred_tool_use` 字段会指明该工具。

2110 

2111在调用处于待处理状态时,您发送的任何提示词都不会到达 Claude,运行以退出码 1 退出。`result` 字段以 `<tool> isn't available, so its deferred call didn't run.` 开头。您可以运行该调用,或将其丢弃使其不再运行:

2112 

2113* **运行该调用**:使工具可用后再次恢复。

2114* **丢弃该调用**:带提示词恢复,并将 [`CLAUDE_CODE_DROP_UNAVAILABLE_DEFERRED_TOOL`](https://code.claude.com/docs/zh-CN/env-vars#variables) 设为 `1`。Claude 会收到一个错误作为该调用的结果,并回答您的提示词。之后再恢复时,将不再有待处理的调用。

2115 

2116丢弃调用时,运行会先写出一个 `result` 字段为空的 `tool_deferred_unavailable` 结果,然后在第二个结果中写出 Claude 的回答。除非该回答是错误,否则以退出码 0 退出。如果您设置了该变量但未发送提示词,运行仍会丢弃该调用,并以退出码 1 退出。

2117 

2118在 v2.1.319 之前,Claude Code 会在没有工具结果的情况下回答提示词并丢弃该调用。在这些版本上,请在工具可用后发送新的提示词。

2096 2119 

2097### PermissionRequest2120### PermissionRequest

2098 2121 


2148| `message` | 仅适用于 `"deny"`:告知 Claude 权限被拒绝的原因 |2171| `message` | 仅适用于 `"deny"`:告知 Claude 权限被拒绝的原因 |

2149| `interrupt` | 仅适用于 `"deny"`:如果为 `true`,则停止 Claude |2172| `interrupt` | 仅适用于 `"deny"`:如果为 `true`,则停止 Claude |

2150 2173 

2174要允许或重写 Monitor 命令,请参阅[匹配 Monitor 命令](#match-monitor-commands)。

2175 

2151以退出码 2 退出但未返回 `decision` 对象的 hook 不会改变权限流程,其 stderr 会被丢弃。要授予或拒绝请求,请返回 `decision` 对象。2176以退出码 2 退出但未返回 `decision` 对象的 hook 不会改变权限流程,其 stderr 会被丢弃。要授予或拒绝请求,请返回 `decision` 对象。

2152 2177 

2153```json theme={null}2178```json theme={null}


2205* 要在任何工具成功完成后运行 hook,请省略 `matcher` 或将其设置为 `"*"`。然后您的 hook 可以自行发现发生了哪些更改,例如运行 `git status --porcelain`,它还会列出 `git diff` 遗漏的未跟踪文件。对于失败的工具调用,请在 [PostToolUseFailure](#posttoolusefailure) 下添加相同的 hook。2230* 要在任何工具成功完成后运行 hook,请省略 `matcher` 或将其设置为 `"*"`。然后您的 hook 可以自行发现发生了哪些更改,例如运行 `git status --porcelain`,它还会列出 `git diff` 遗漏的未跟踪文件。对于失败的工具调用,请在 [PostToolUseFailure](#posttoolusefailure) 下添加相同的 hook。

2206* 要在特定文件在磁盘上发生更改时运行 hook(无论由谁写入),请使用 [FileChanged](#filechanged)。当 `Bash` 命令或 Claude Code 之外的进程重写同一文件时,Claude Code 不会运行匹配 `Edit|Write` 的 `PostToolUse` hook。2231* 要在特定文件在磁盘上发生更改时运行 hook(无论由谁写入),请使用 [FileChanged](#filechanged)。当 `Bash` 命令或 Claude Code 之外的进程重写同一文件时,Claude Code 不会运行匹配 `Edit|Write` 的 `PostToolUse` hook。

2207 2232 

2233#### 中断后的 PostToolUse

2234 

2235如果在工具调用期间您发送消息或中断后,`PostToolUse` hook 提前停止,请检查您按下的是 `Ctrl+Enter`、`Enter` 还是 `Esc`:

2236 

2237* **`Ctrl+Enter`**:如果在工具运行期间按下它[结束了该轮次](https://code.claude.com/docs/zh-CN/interactive-mode.md#when-claude-code-sends-what-you-queued)且工具完成,您的 `PostToolUse` hook 会基于其结果运行,并有 10 秒时间完成。如果您在消息之前排队了一个 `!` 命令,或后台任务被禁用(例如通过 [`CLAUDE_CODE_DISABLE_BACKGROUND_TASKS`](https://code.claude.com/docs/zh-CN/env-vars#variables)),该按键将等同于 `Esc`。

2238* **`Enter`**:使用 `Enter` 排队的消息不会中断该轮次,因此 hook 保留其通常的 `timeout`。

2239* **`Esc`**:会立即取消 hook,因此当 hook 必须运行时,请使用 `Enter` 或 `Ctrl+Enter` 发送消息。

2240 

224110 秒结束时,Claude Code 会终止仍在运行的命令 hook,无论其 [`timeout`](#common-fields) 为何。要让耗时更长的命令 hook 完成,请使用 [`async: true`](#run-hooks-in-the-background) 运行它,这意味着该 hook 无法阻止或改写结果。

2242 

2243在 v2.1.319 之前,您用消息中断该轮次后 hook 不会启动,正在运行的 hook 也会被停止。

2244 

2208#### PostToolUse 输入2245#### PostToolUse 输入

2209 2246 

2210`PostToolUse` hook 在工具已成功执行后触发。输入同时包含 `tool_input`(发送给工具的参数)和 `tool_response`(工具返回的结果)。两者的确切 schema 取决于具体工具。文件工具的 `tool_input` 路径格式与 [PreToolUse](#pretooluse-input) 相同:始终为绝对路径,并使用平台原生的分隔符,因此在 Windows 上为反斜杠。对于 MCP 工具,输入还会携带 [`mcp_server`](#pretooluse-input) 对象。2247`PostToolUse` hook 在工具已成功执行后触发。输入同时包含 `tool_input`(发送给工具的参数)和 `tool_response`(工具返回的结果)。两者的确切 schema 取决于具体工具。文件工具的 `tool_input` 路径格式与 [PreToolUse](#pretooluse-input) 相同:始终为绝对路径,并使用平台原生的分隔符,因此在 Windows 上为反斜杠。对于 MCP 工具,输入还会携带 [`mcp_server`](#pretooluse-input) 对象。


2479| `permission_prompt` | Claude 需要您批准工具使用或沙箱中命令的[网络请求](https://code.claude.com/docs/zh-CN/sandboxing.md#network-isolation),且该提示已等待约六秒 |2516| `permission_prompt` | Claude 需要您批准工具使用或沙箱中命令的[网络请求](https://code.claude.com/docs/zh-CN/sandboxing.md#network-isolation),且该提示已等待约六秒 |

2480| `idle_prompt` | Claude 大约 60 秒前完成回复,且此后您未进行输入 |2517| `idle_prompt` | Claude 大约 60 秒前完成回复,且此后您未进行输入 |

2481| `auth_success` | 身份验证完成 |2518| `auth_success` | 身份验证完成 |

2519| `auth_storage_failure` | 您的登录已完成,但 Claude Code 无法将新凭据保存到其[凭据存储](https://code.claude.com/docs/zh-CN/authentication.md#credential-management)中。代替 `auth_success` 触发 |

2482| `elicitation_dialog` | MCP 服务器打开 elicitation 表单,且您约六秒未进行输入 |2520| `elicitation_dialog` | MCP 服务器打开 elicitation 表单,且您约六秒未进行输入 |

2483| `elicitation_url_dialog` | MCP 服务器要求您打开浏览器 URL,且您约六秒未进行输入 |2521| `elicitation_url_dialog` | MCP 服务器要求您打开浏览器 URL,且您约六秒未进行输入 |

2484| `elicitation_complete` | MCP 服务器报告 [URL 模式 elicitation](#elicitation-input) 已完成 |2522| `elicitation_complete` | MCP 服务器报告 [URL 模式 elicitation](#elicitation-input) 已完成 |


2490| `quota_auto_resume_disabled` | Claude Code 结束对 claude.ai 用量限制的等待,但未继续您的任务:在 Claude Code 自行开始的等待期间,[`autoContinueAtUsageLimit`](https://code.claude.com/docs/zh-CN/settings-reference#autocontinueatusagelimit) 被关闭或重置时间推迟到 24 小时以后;继续执行的任务不断触及限制;或继续执行在到达模型之前被阻止。当您按下 `Esc` 或 `Ctrl+C`,或选择 **Don't continue automatically** 时不会触发 |2528| `quota_auto_resume_disabled` | Claude Code 结束对 claude.ai 用量限制的等待,但未继续您的任务:在 Claude Code 自行开始的等待期间,[`autoContinueAtUsageLimit`](https://code.claude.com/docs/zh-CN/settings-reference#autocontinueatusagelimit) 被关闭或重置时间推迟到 24 小时以后;继续执行的任务不断触及限制;或继续执行在到达模型之前被阻止。当您按下 `Esc` 或 `Ctrl+C`,或选择 **Don't continue automatically** 时不会触发 |

2491| `plugin_notification` | 某个 [mod](https://code.claude.com/docs/zh-CN/plugins/mods/api.md#show-something-without-starting-a-turn) 通过 `$.ui.notify` 发出通知。hook 的 `title` 为该 mod 的名称,除非 mod 自行设置了标题 |2529| `plugin_notification` | 某个 [mod](https://code.claude.com/docs/zh-CN/plugins/mods/api.md#show-something-without-starting-a-turn) 通过 `$.ui.notify` 发出通知。hook 的 `title` 为该 mod 的名称,除非 mod 自行设置了标题 |

2492 2530 

2493`quota_auto_resume_fired`、`quota_auto_resume_stale` 和 `quota_auto_resume_disabled` 类型需要 Claude Code v2.1.234 或更高版本。2531`quota_auto_resume_fired`、`quota_auto_resume_stale` 和 `quota_auto_resume_disabled` 类型需要 Claude Code v2.1.234 或更高版本。`auth_storage_failure` 类型需要 v2.1.288 或更高版本。

2494 2532 

2495在终端会话中,针对沙箱中命令网络请求的 `permission_prompt` 需要 Claude Code v2.1.246 或更高版本。2533在终端会话中,针对沙箱中命令网络请求的 `permission_prompt` 需要 Claude Code v2.1.246 或更高版本。

2496 2534 


3325}3363}

3326```3364```

3327 3365 

3366#### PreCompact 输出

3367 

3368当 PreCompact hook 以 0 退出且未阻止压缩时,Claude Code 会将其 stdout 用作压缩摘要的指令。请将每个 hook 的 stdout 控制在 10,000 个字符以内。更长的输出会被 Claude Code 在上限处截断并附加一个标记。

3369 

3328### PostCompact3370### PostCompact

3329 3371 

3330在 Claude Code 完成压缩操作后运行。使用此事件对压缩后的新状态作出反应,例如记录生成的摘要或更新外部状态。Claude Code 会丢弃 PostCompact hook 的 `systemMessage` 和 `continue` 字段。3372在 Claude Code 完成压缩操作后运行。使用此事件对压缩后的新状态作出反应,例如记录生成的摘要或更新外部状态。Claude Code 会丢弃 PostCompact hook 的 `systemMessage` 和 `continue` 字段。

hooks-guide.md +4 −3

Details

177> >177> >

178> > 如果您在 WSL 中运行 Claude Code,则 `powershell.exe` 必须能够通过 Windows 互操作在您的 `PATH` 中使用。178> > 如果您在 WSL 中运行 Claude Code,则 `powershell.exe` 必须能够通过 Windows 互操作在您的 `PATH` 中使用。

179 179 

180空的 `matcher` 会对所有通知类型触发。若只想在特定事件时触发,请将其设置为以下值之一:180空的 `matcher` 会对所有通知类型触发。若要仅在特定事件上触发,请将其设置为某个通知类型,例如以下类型之一:

181 181 

182| 匹配器 | 触发时机 |182| 匹配器 | 触发时机 |

183| :- | :- |183| :- | :- |

184| `permission_prompt` | Claude 需要您批准某次工具使用或某个沙箱命令的[网络请求](https://code.claude.com/docs/zh-CN/sandboxing.md#network-isolation),且该提示已等待约六秒 |184| `permission_prompt` | Claude 需要您批准某次工具使用或某个沙箱命令的[网络请求](https://code.claude.com/docs/zh-CN/sandboxing.md#network-isolation),且该提示已等待约六秒 |

185| `idle_prompt` | Claude 大约 60 秒前已完成回复,且您此后一直没有输入 |185| `idle_prompt` | Claude 大约 60 秒前已完成回复,且您此后一直没有输入 |

186| `auth_success` | 身份验证完成 |186| `auth_success` | 身份验证完成 |

187| `auth_storage_failure` | 您的登录已完成,但 Claude Code 无法将新凭据保存到其[凭据存储](https://code.claude.com/docs/zh-CN/authentication.md#credential-management)中。此时会代替 `auth_success` 触发 |

187| `elicitation_dialog` | MCP 服务器打开了一个信息征询表单,且您约六秒没有输入 |188| `elicitation_dialog` | MCP 服务器打开了一个信息征询表单,且您约六秒没有输入 |

188| `elicitation_url_dialog` | MCP 服务器要求您在浏览器中打开某个 URL,且您约六秒没有输入 |189| `elicitation_url_dialog` | MCP 服务器要求您在浏览器中打开某个 URL,且您约六秒没有输入 |

189| `elicitation_complete` | MCP 服务器报告某个 [URL 模式信息征询](https://code.claude.com/docs/zh-CN/hooks.md#elicitation-input)已完成 |190| `elicitation_complete` | MCP 服务器报告某个 [URL 模式信息征询](https://code.claude.com/docs/zh-CN/hooks.md#elicitation-input)已完成 |


197 198 

198在终端中,与在 Claude Desktop、VS Code 扩展以及其他通过 Agent SDK 响应权限请求的宿主中,Claude Code 对 `permission_prompt` 的计时方式不同。有关两种计时方式,请参阅[各通知类型的触发时机](https://code.claude.com/docs/zh-CN/hooks.md#notification)。199在终端中,与在 Claude Desktop、VS Code 扩展以及其他通过 Agent SDK 响应权限请求的宿主中,Claude Code 对 `permission_prompt` 的计时方式不同。有关两种计时方式,请参阅[各通知类型的触发时机](https://code.claude.com/docs/zh-CN/hooks.md#notification)。

199 200 

200`quota_auto_resume_fired`、`quota_auto_resume_stale` 和 `quota_auto_resume_disabled` 匹配器需要 Claude Code v2.1.234 或更高版本。201`quota_auto_resume_fired`、`quota_auto_resume_stale` 和 `quota_auto_resume_disabled` 匹配器需要 Claude Code v2.1.234 或更高版本。`auth_storage_failure` 匹配器需要 v2.1.288 或更高版本。

201 202 

202在终端会话中,针对沙箱命令网络请求的 `permission_prompt` 需要 Claude Code v2.1.246 或更高版本。203在终端会话中,针对沙箱命令网络请求的 `permission_prompt` 需要 Claude Code v2.1.246 或更高版本。

203 204 


688| `SessionStart` | 会话如何启动 | `startup`、`resume`、`clear`、`compact`、`fork` |689| `SessionStart` | 会话如何启动 | `startup`、`resume`、`clear`、`compact`、`fork` |

689| `Setup` | 哪个 CLI 标志触发了设置 | `init`、`maintenance` |690| `Setup` | 哪个 CLI 标志触发了设置 | `init`、`maintenance` |

690| `SessionEnd` | 会话为什么结束 | `clear`、`resume`、`logout`、`prompt_input_exit`、`other` |691| `SessionEnd` | 会话为什么结束 | `clear`、`resume`、`logout`、`prompt_input_exit`、`other` |

691| `Notification` | 通知类型 | `permission_prompt`、`idle_prompt`、`auth_success`、`elicitation_dialog`、`elicitation_url_dialog`、`elicitation_complete`、`elicitation_response`、`agent_needs_input`、`agent_completed`、`quota_auto_resume_fired`、`quota_auto_resume_stale`、`quota_auto_resume_disabled`、`plugin_notification` |692| `Notification` | 通知类型 | `permission_prompt`、`idle_prompt`、`auth_success`、`auth_storage_failure`、`elicitation_dialog`、`elicitation_url_dialog`、`elicitation_complete`、`elicitation_response`、`agent_needs_input`、`agent_completed`、`quota_auto_resume_fired`、`quota_auto_resume_stale`、`quota_auto_resume_disabled`、`plugin_notification` |

692| `SubagentStart` | 代理类型 | `general-purpose`、`Explore`、`Plan` 或自定义代理名称 |693| `SubagentStart` | 代理类型 | `general-purpose`、`Explore`、`Plan` 或自定义代理名称 |

693| `PreCompact`、`PostCompact` | 什么触发了压缩 | `manual`、`auto` |694| `PreCompact`、`PostCompact` | 什么触发了压缩 | `manual`、`auto` |

694| `PreModelSwitch`、`PostModelSwitch` | 会话切换到的模型的规范名称,如 [PreModelSwitch](https://code.claude.com/docs/zh-CN/hooks.md#premodelswitch) 下所述 | `claude-opus-5`、`claude-opus-4-6\|claude-opus-5`、`.*opus.*` |695| `PreModelSwitch`、`PostModelSwitch` | 会话切换到的模型的规范名称,如 [PreModelSwitch](https://code.claude.com/docs/zh-CN/hooks.md#premodelswitch) 下所述 | `claude-opus-5`、`claude-opus-4-6\|claude-opus-5`、`.*opus.*` |

mcp.md +13 −3

Details

252 252 

253此列表中的状态报告配置决策而不是连接尝试,因此 Claude Code 在不连接到服务器的情况下打印它们:253此列表中的状态报告配置决策而不是连接尝试,因此 Claude Code 在不连接到服务器的情况下打印它们:

254 254 

255* ``⏸ Pending approval (run `claude` to approve)``:来自 `.mcp.json` 且您尚未批准的项目作用域服务器。Claude Code 会在 `claude mcp list` 和 `claude mcp get <name>` 中都显示它。以交互方式运行 `claude` 以审查并批准它。255* ``⏸ Pending approval (run `claude` to approve)``:来自 `.mcp.json` 的项目作用域服务器,您尚未批准。Claude Code 会在 `claude mcp list` 和 `claude mcp get <name>` 中都显示它。以交互方式运行 `claude` 来审查并批准它。

256* `✘ Rejected (see disabledMcpjsonServers in settings)`:由 [`disabledMcpjsonServers`](https://code.claude.com/docs/zh-CN/settings-reference#disabledmcpjsonservers) 条目拒绝的 `.mcp.json` 服务器。Claude Code 仅在 `claude mcp get <name>` 中显示它。256* `✘ Rejected (see disabledMcpjsonServers in settings)`:由 [`disabledMcpjsonServers`](https://code.claude.com/docs/zh-CN/settings-reference#disabledmcpjsonservers) 条目拒绝的 `.mcp.json` 服务器。Claude Code 仅在 `claude mcp get <name>` 中显示它。

257* `⊘ Disabled for this project (re-enable via /mcp)`:项目的 [`disabledMcpServers`](#disable-a-server-without-removing-it) 列表命名的服务器。Claude Code 在 `claude mcp list` 和 `claude mcp get <name>` 中都显示它。从 `/mcp` 面板重新打开服务器。257* `⊘ Disabled for this project (re-enable via /mcp)`:项目的 [`disabledMcpServers`](#disable-a-server-without-removing-it) 列表命名的服务器。Claude Code 在 `claude mcp list` 和 `claude mcp get <name>` 中都显示它。从 `/mcp` 面板重新打开服务器。

258* `✘ Blocked by enterprise managed policy`:被您组织的某项策略拒绝的服务器。Claude Code 会在 `claude mcp list` 和 `claude mcp get <name>` 中都显示它。被[托管 MCP 配置](https://code.claude.com/docs/zh-CN/managed-mcp.md#how-restrictions-appear-to-users)中的允许列表、拒绝列表或其他限制阻止的服务器,会在这两个命令中都被隐藏,而不是以此状态显示。请询问您的管理员是哪项策略阻止了该服务器。258* `✘ Blocked by enterprise managed policy`:被您组织的某项策略拒绝的服务器。Claude Code 会在 `claude mcp list` 和 `claude mcp get <name>` 中都显示它。被[托管 MCP 配置](https://code.claude.com/docs/zh-CN/managed-mcp.md#how-restrictions-appear-to-users)中的允许列表、拒绝列表或其他限制阻止的服务器,会在这两个命令中都被隐藏,而不是以此状态显示。请询问您的管理员是哪项策略阻止了该服务器。


306 306 

307`/mcp` 面板在每个连接的服务器旁边显示工具计数,并标记声称工具能力但不公开工具的服务器。307`/mcp` 面板在每个连接的服务器旁边显示工具计数,并标记声称工具能力但不公开工具的服务器。

308 308 

309##### 云端会话中的工具数量

310 

311在[云端会话](https://code.claude.com/docs/zh-CN/claude-code-on-the-web.md)中,诸如 `3 of 13 tools available` 之类的计数表示 Claude 无法使用另外 10 个工具。请检查以下原因(以及其他可能的原因):

312 

313* **仓库 `.claude/settings.json` 中的拒绝规则指定了该工具或其整个服务器**:如果[您的会话会读取该文件](https://code.claude.com/docs/zh-CN/settings.md#settings-in-cloud-sessions),请移除该[规则](https://code.claude.com/docs/zh-CN/permissions.md#mcp)

314* **工具的完整名称超过 128 个字符**:按照[名称过长的处理步骤](https://code.claude.com/docs/zh-CN/errors.md#mcp-tool-name-over-128-characters)操作

315* **服务器是为其自身界面而非为 Claude 列出该工具**:如果您维护该服务器,请将 `model` 添加到该工具的 `_meta.ui.visibility` 中,以便将该工具提供给 Claude。否则,无需修复任何内容。

316 

317##### 来自仍在连接中的服务器的工具

318 

309如果您的请求需要来自仍在后台连接的服务器的工具,Claude 会在继续之前等待该服务器。等待的方式取决于您的配置:319如果您的请求需要来自仍在后台连接的服务器的工具,Claude 会在继续之前等待该服务器。等待的方式取决于您的配置:

310 320 

311* **使用 [工具搜索](#scale-with-mcp-tool-search)(默认)**:等待发生在 `ToolSearch` 调用内。321* **使用 [工具搜索](#scale-with-mcp-tool-search)(默认)**:等待发生在 `ToolSearch` 调用内。


349* 当授权响应指明意外的发行者时,使 [MCP OAuth 登录](#authenticate-with-remote-mcp-servers) 失败。359* 当授权响应指明意外的发行者时,使 [MCP OAuth 登录](#authenticate-with-remote-mcp-servers) 失败。

350* 仅将 [MCP OAuth](#authenticate-with-remote-mcp-servers) 凭据发送到通过 HTTPS 或在 `localhost`、`127.0.0.1` 或 `::1` 上提供的令牌端点。对于令牌端点在其他任何地方为纯 `http://` 的服务器(例如本地网络上的设备),登录失败。请参阅 [拒绝向非 https 令牌端点发送凭据](https://code.claude.com/docs/zh-CN/errors.md#refusing-to-send-credentials-to-non-https-token-endpoint)。360* 仅将 [MCP OAuth](#authenticate-with-remote-mcp-servers) 凭据发送到通过 HTTPS 或在 `localhost`、`127.0.0.1` 或 `::1` 上提供的令牌端点。对于令牌端点在其他任何地方为纯 `http://` 的服务器(例如本地网络上的设备),登录失败。请参阅 [拒绝向非 https 令牌端点发送凭据](https://code.claude.com/docs/zh-CN/errors.md#refusing-to-send-credentials-to-non-https-token-endpoint)。

351 361 

352Anthropic 可以通过 Claude Code 获取的功能标志,将特定服务器保持在较早的协议上,或不使用该流。362Anthropic 可以通过 Claude Code 获取的功能标志,让特定服务器保持使用较早的协议,或不使用该流。要自行选择运行时,请将 [`MCP_SDK_GENERATION`](https://code.claude.com/docs/zh-CN/env-vars) 设置为 `v1` 或 `v2`。

353 363 

354要自己选择运行时,请设置 [`MCP_SDK_GENERATION`](https://code.claude.com/docs/zh-CN/env-vars) 为 `v1` 或 `v2`。要决定 Claude Code 是否询问,请设置 [`MCP_PROTOCOL_NEGOTIATION`](https://code.claude.com/docs/zh-CN/env-vars) 为 `auto` 或 `legacy`。364要决定 Claude Code 是否向服务器询问较新的修订版,请将 [`MCP_PROTOCOL_NEGOTIATION`](https://code.claude.com/docs/zh-CN/env-vars) 设置为 `auto` 或 `legacy`。如果未设置该变量,Claude Code 可能会在 7 天内跳过对某个 stdio 服务器的询问,例如在服务器被询问时退出之后。要让已升级的服务器更早被询问,请设置 `auto`。

355 365 

356### 动态工具更新366### 动态工具更新

357 367 

mobile.md +1 −1

Details

66 66 

67### 获取推送通知67### 获取推送通知

68 68 

69当远程控制处于活动状态时,Claude 可以向您的手机发送推送通知,通常在长时间运行的任务完成或需要您做出决定时。您也可以在提示中请求一个,例如 `notify me when the tests finish`。有关两个 `/config` 切换和交付故障排除,请参阅[移动推送通知](https://code.claude.com/docs/zh-CN/remote-control.md#mobile-push-notifications)。69当 Remote Control 处于活动状态时,Claude 可以在长时间运行的任务完成或需要您做出决定时向您的手机发送推送通知。您也可以在提示词中请求一个,例如 `notify me when the tests finish`。有关两个 `/config` 切换和交付故障排除,请参阅[移动推送通知](https://code.claude.com/docs/zh-CN/remote-control.md#mobile-push-notifications)。

70 70 

71Dispatch 在其生成的 Code 会话完成或需要您的批准时发送自己的通知,如[来自 Dispatch 的会话](https://code.claude.com/docs/zh-CN/desktop.md#sessions-from-dispatch)中所述。71Dispatch 在其生成的 Code 会话完成或需要您的批准时发送自己的通知,如[来自 Dispatch 的会话](https://code.claude.com/docs/zh-CN/desktop.md#sessions-from-dispatch)中所述。

72 72 

model-config.md +10 −1

Details

566* 如果两个模型都标记相同的请求,您可以编辑提示词并重试,或启动新会话。566* 如果两个模型都标记相同的请求,您可以编辑提示词并重试,或启动新会话。

567* 在移动应用上的[云端会话](https://code.claude.com/docs/zh-CN/claude-code-on-the-web.md)中,不支持编辑和重试。切换模型,或从桌面浏览器或桌面应用继续会话。567* 在移动应用上的[云端会话](https://code.claude.com/docs/zh-CN/claude-code-on-the-web.md)中,不支持编辑和重试。切换模型,或从桌面浏览器或桌面应用继续会话。

568* 在[非交互模式](https://code.claude.com/docs/zh-CN/cli-reference.md#cli-flags)和无法显示提示的 SDK 集成中,标记的请求以拒绝结束轮次。568* 在[非交互模式](https://code.claude.com/docs/zh-CN/cli-reference.md#cli-flags)和无法显示提示的 SDK 集成中,标记的请求以拒绝结束轮次。

569* 在[子代理](https://code.claude.com/docs/zh-CN/sub-agents.md)中,Claude Code 不显示提示,将要切换模型的标记请求会在备用模型上重新运行。569* 在 Claude 通过 [Agent 工具](https://code.claude.com/docs/zh-CN/tools-reference.md#agent-tool-behavior)启动的子代理中,Claude Code 不会暂停询问,子代理会失败而不是切换模型。请参阅[子代理不经询问即切换或失败](#subagents-switch-or-fail-without-asking)。

570* 当回退目标被 [`availableModels`](#restrict-model-selection) 阻止时,Claude Code 不显示提示。标记的请求以拒绝结束,与目标被阻止时的自动回退相同。570* 当回退目标被 [`availableModels`](#restrict-model-selection) 阻止时,Claude Code 不显示提示。标记的请求以拒绝结束,与目标被阻止时的自动回退相同。

571 571 

572#### 子代理不经询问即切换或失败

573 

574在 Claude 通过 [Agent 工具](https://code.claude.com/docs/zh-CN/tools-reference.md#agent-tool-behavior)启动的内置或自定义[子代理](https://code.claude.com/docs/zh-CN/sub-agents.md)中,Claude Code 不会在被标记的请求处[暂停询问](#ask-before-switching)。如果有可用的备用模型,则根据您在 `/config` 中对 **Switch models when a message is flagged** 的选择,该请求会在备用模型上重新运行,或者子代理失败:

575 

576* **Switch automatically**,或尚未做出选择:请求在备用模型上重新运行,您的会话模型保持不变

577* **Ask each time**:子代理失败,并显示 [`Agent terminated early due to an API error`](https://code.claude.com/docs/zh-CN/errors#agent-terminated-early-due-to-an-api-error) 和拒绝消息。Claude 会收到该错误,并决定如何处理未完成的任务。要允许子代理切换模型,请选择 **Switch automatically**。之后您的主对话也会不经询问即切换。

578 

579当没有可用的备用模型时,无论选择哪一项,子代理都会以相同方式失败。在 v2.1.318 之前,无论您如何选择,子代理被标记的请求都会在可用的备用模型上重新运行。

580 

572#### 在 Bedrock、Agent Platform 和 Foundry 上启用回退581#### 在 Bedrock、Agent Platform 和 Foundry 上启用回退

573 582 

574在 [Amazon Bedrock](https://code.claude.com/docs/zh-CN/amazon-bedrock.md)、[Google Cloud's Agent Platform](https://code.claude.com/docs/zh-CN/google-vertex-ai.md) 和 [Microsoft Foundry](https://code.claude.com/docs/zh-CN/microsoft-foundry.md) 上,模型 ID 是提供商特定的,因此自动回退仅在 Claude Code 可以识别每个涉及的模型时运行:583在 [Amazon Bedrock](https://code.claude.com/docs/zh-CN/amazon-bedrock.md)、[Google Cloud's Agent Platform](https://code.claude.com/docs/zh-CN/google-vertex-ai.md) 和 [Microsoft Foundry](https://code.claude.com/docs/zh-CN/microsoft-foundry.md) 上,模型 ID 是提供商特定的,因此自动回退仅在 Claude Code 可以识别每个涉及的模型时运行:

Details

89export NODE_EXTRA_CA_CERTS=/path/to/ca-cert.pem89export NODE_EXTRA_CA_CERTS=/path/to/ca-cert.pem

90```90```

91 91 

92如果您看到以下任一警告,则表示 Claude Code 无法完整加载 `NODE_EXTRA_CA_CERTS` 文件,需要使用被跳过证书的连接可能会失败:

93 

94* `Claude Code used only the certificates that it could read in full from the NODE_EXTRA_CA_CERTS file`

95* `Claude Code ignored all of the NODE_EXTRA_CA_CERTS file: it holds no certificate that Claude Code can read`

96 

97每条警告的完整文本都说明了如何修复该文件。被跳过的证书如果同时存在于 [CA 证书存储](#ca-certificate-store)中,则仍然可以正常使用。

98 

92## mTLS 身份验证99## mTLS 身份验证

93 100 

94对于需要客户端证书身份验证的企业环境:101对于需要客户端证书身份验证的企业环境:

Details

154 154 

155### HIPAA 配置下的权限模式155### HIPAA 配置下的权限模式

156 156 

157在已应用 [HIPAA 配置](https://code.claude.com/docs/zh-CN/hipaa-setup.md)的组织中,内置 `auto` 默认值不适用。当没有其他方式选择起始权限模式时,终端或 VS Code 会话以 Manual 模式启动。终端会话还会显示 `Auto mode isn't the default for your organization · Shift+Tab to switch`,而 VS Code 扩展不显示任何通知。[检查开发人员如何登录和连接](https://code.claude.com/docs/zh-CN/hipaa-setup.md#check-how-developers-sign-in-and-connect)列出了适用此规则的会话。157在已应用 [HIPAA 配置](https://code.claude.com/docs/zh-CN/hipaa-setup.md)的组织中,[内置 `auto` 默认值](#which-mode-a-session-starts-in)不适用。当没有其他方式选择起始权限模式时,终端或 VS Code 会话以 Manual 模式启动。终端会话还会显示 `Auto mode isn't the default for your organization · Shift+Tab to switch`,而 VS Code 扩展不显示任何通知。[检查开发人员如何登录和连接](https://code.claude.com/docs/zh-CN/hipaa-setup.md#check-how-developers-sign-in-and-connect)列出了适用此规则的会话。

158 158 

159自动模式和 `bypassPermissions` 仍然可用:159自动模式和 `bypassPermissions` 仍然可用:

160 160 


163* **移除自动模式**:在托管设置中将 [`permissions.disableAutoMode`](https://code.claude.com/docs/zh-CN/settings-reference#disableautomode) 设置为 `"disable"`163* **移除自动模式**:在托管设置中将 [`permissions.disableAutoMode`](https://code.claude.com/docs/zh-CN/settings-reference#disableautomode) 设置为 `"disable"`

164* **阻止 `bypassPermissions`**:在托管设置中将 [`permissions.disableBypassPermissionsMode`](https://code.claude.com/docs/zh-CN/settings-reference#permissions-disablebypasspermissionsmode) 设置为 `"disable"`164* **阻止 `bypassPermissions`**:在托管设置中将 [`permissions.disableBypassPermissionsMode`](https://code.claude.com/docs/zh-CN/settings-reference#permissions-disablebypasspermissionsmode) 设置为 `"disable"`

165 165 

166需要 Claude Code v2.1.285 或更高版本,即 [HIPAA 配置的最低版本](https://code.claude.com/docs/zh-CN/hipaa-setup.md#update-claude-code-and-claude-desktop)。

167 

168## 切换权限模式166## 切换权限模式

169 167 

170每个界面都有自己的控件用于在会话期间切换权限模式,以及自己的方式来选择新会话启动的权限模式。选择您的界面以查看其控件。168每个界面都有自己的控件用于在会话期间切换权限模式,以及自己的方式来选择新会话启动的权限模式。选择您的界面以查看其控件。


253>251>

254> 在 [claude.ai/code](https://claude.ai/code) 上,使用输入框下方那一行中的模式下拉菜单。在移动应用中,点击输入框中的 **+** 按钮,然后点击 **Permission**。云端会话和 Remote Control 会话提供不同的权限模式:252> 在 [claude.ai/code](https://claude.ai/code) 上,使用输入框下方那一行中的模式下拉菜单。在移动应用中,点击输入框中的 **+** 按钮,然后点击 **Permission**。云端会话和 Remote Control 会话提供不同的权限模式:

255>253>

256> * **[云端会话](https://code.claude.com/docs/zh-CN/claude-code-on-the-web.md)**:Accept edits、Plan 和 Auto。Accept edits 对应于 `default` 模式:云端会话预先批准文件编辑,无论模式如何,因此下拉菜单显示 Accept edits 而不是 Manual。云端会话仍然遵守设置中的 `defaultMode: "acceptEdits"`。Auto 模式仅在您的组织允许且所选模型支持时出现。Bypass permissions 不可用。254> * **[云端会话](https://code.claude.com/docs/zh-CN/claude-code-on-the-web.md)**:Accept edits、Plan 和 Auto。Accept edits 对应于 `default` 模式:云端会话预先批准文件编辑,无论模式如何,因此下拉菜单显示 Accept edits 而不是 Manual。云端会话仍然遵守设置中的 `defaultMode: "acceptEdits"`。除非您的组织将其关闭,否则自动模式会出现;在 claude.ai/code 上,如果所选模型不[支持该模式](#eliminate-prompts-with-auto-mode),它会显示为灰色。Bypass permissions 不可用。

257> * 您本地机器上的 **[Remote Control](https://code.claude.com/docs/zh-CN/remote-control.md) 会话**:Manual、Accept edits、Plan 和 Auto(对于您自己启动的会话),您无法从应用中选择 Bypass permissions。要使用 Auto,会话必须满足自动模式的[可用性要求](#eliminate-prompts-with-auto-mode)。对于在您的计算机上运行的项目线程,请参阅[在您自己的计算机上运行线程](https://code.claude.com/docs/zh-CN/claude-projects.md#run-a-thread-on-your-own-computer)。255> * 您本地机器上的 **[Remote Control](https://code.claude.com/docs/zh-CN/remote-control.md) 会话**:Manual、Accept edits、Plan 和 Auto(对于您自己启动的会话),您无法从应用中选择 Bypass permissions。要使用 Auto,会话必须满足自动模式的[可用性要求](#eliminate-prompts-with-auto-mode)。对于在您的计算机上运行的项目线程,请参阅[在您自己的计算机上运行线程](https://code.claude.com/docs/zh-CN/claude-projects.md#run-a-thread-on-your-own-computer)。

258> * 除了 Bypass permissions,下拉菜单显示本地会话所在的权限模式,包括从终端设置的模式。它在应用或终端中权限模式更改时更新。256> * 除了 Bypass permissions,下拉菜单显示本地会话所在的权限模式,包括从终端设置的模式。它在应用或终端中权限模式更改时更新。

259> * 由[桌面应用](https://code.claude.com/docs/zh-CN/desktop.md)或 [VS Code 扩展](https://code.claude.com/docs/zh-CN/vs-code.md)托管的会话在权限模式更改时向 claude.ai 报告,与在终端中托管的会话相同。257> * 由[桌面应用](https://code.claude.com/docs/zh-CN/desktop.md)或 [VS Code 扩展](https://code.claude.com/docs/zh-CN/vs-code.md)托管的会话在权限模式更改时向 claude.ai 报告,与在终端中托管的会话相同。


433claude --permission-mode auto --debug-file classifier-debug.log431claude --permission-mode auto --debug-file classifier-debug.log

434```432```

435 433 

436让 Claude 运行一个非只读的 shell 命令,然后在日志中搜索 `classifier_request_started`:434为了给分类器提供一个需要审查的命令,请让 Claude 运行 `curl https://example.com`,然后在日志中搜索 `classifier_request_started`:

437 435 

438* **`model=` 之后是您的模型**:该变量已生效436* **`model=` 之后是您的模型**:该变量已生效

439* **`model=` 之后是其他模型**:在日志中搜索 `ignoring CLAUDE_CODE_AUTO_MODE_MODEL`,其中会给出原因以及需要采取的步骤437* **`model=` 之后是其他模型**:在日志中搜索 `ignoring CLAUDE_CODE_AUTO_MODE_MODEL`,其中会给出原因以及需要采取的步骤

440* **没有这样的行**:在 Claude Code 提示符下查看 `/status` 中的 `Auto mode server`:438* **没有这样的行**:在 Claude Code 提示符下查看 `/status` 中的 `Auto mode server`:

441 * **`Enabled`**:[服务器](#server-side-classifier-review)已设置为审查此会话的调用。439 * **`Enabled`**:[服务器](#server-side-classifier-review)已设置为审查此会话的调用。

442 * **`Disabled`**:确保[权限模式](#switch-permission-modes)为 auto,然后让 Claude 再运行一个非只读的命令。440 * **`Disabled`**:此检查尚未测试到您的模型。请确保[权限模式](#switch-permission-modes)为 auto,且没有任何[权限规则](https://code.claude.com/docs/zh-CN/permissions.md#manage-permissions)匹配 `curl`,然后在关闭[沙箱](https://code.claude.com/docs/zh-CN/sandboxing.md)的情况下再次运行该检查。

443 441 

444### 分类器默认阻止的内容442### 分类器默认阻止的内容

445 443 

permissions.md +7 −4

Details

338 338 

339#### `Read` 和 `Edit` 规则涵盖的范围339#### `Read` 和 `Edit` 规则涵盖的范围

340 340 

341`Edit` 规则适用于所有编辑文件的内置工具。Claude 尽力将 `Read` 规则应用于所有读取文件的内置工具,如 Grep 和 Glob,以及您提示词中的 `@file` 提及,以及连接的 [IDE](https://code.claude.com/docs/zh-CN/vs-code.md#the-built-in-ide-mcp-server) 与 Claude 共享的选择和打开文件上下文。341`Edit` 规则适用于所有编辑文件的内置工具。Claude 尽力将 `Read(path)` deny 规则应用于所有读取文件的内置工具,如 Grep 和 Glob。它也会同样尽力将 `Read(path)` deny 规则应用于您提示词中的 `@file` 提及,以及连接的 [IDE](https://code.claude.com/docs/zh-CN/vs-code.md#the-built-in-ide-mcp-server) 与 Claude 共享的选择和打开文件上下文。

342 342 

343`Read(path)` deny 规则也适用于您粘贴到提示词中的图片路径以及您 @ 提及的目录:343`Read(path)` deny 规则也适用于您粘贴到提示词中的图片路径以及您 @ 提及的目录:

344 344 


353>353>

354> Read 和 Edit deny 规则适用于 Claude 的内置文件工具、Claude Code 在 Bash 中识别的文件命令(如 `cat`、`head`、`tail`、`sed` 和 `tee`)以及 Bash [重定向](#redirections)的目标(如 `> file` 和 `< file`)。它们不适用于读取文件而不命名它们的命令,如从保存文件的目录运行的 `grep -r pattern .`,或间接读取或写入文件的任意子进程,如打开文件本身的 Python 或 Node 脚本。对于阻止所有进程访问路径的 OS 级别强制执行,请[启用沙箱](https://code.claude.com/docs/zh-CN/sandboxing.md)。354> Read 和 Edit deny 规则适用于 Claude 的内置文件工具、Claude Code 在 Bash 中识别的文件命令(如 `cat`、`head`、`tail`、`sed` 和 `tee`)以及 Bash [重定向](#redirections)的目标(如 `> file` 和 `< file`)。它们不适用于读取文件而不命名它们的命令,如从保存文件的目录运行的 `grep -r pattern .`,或间接读取或写入文件的任意子进程,如打开文件本身的 Python 或 Node 脚本。对于阻止所有进程访问路径的 OS 级别强制执行,请[启用沙箱](https://code.claude.com/docs/zh-CN/sandboxing.md)。

355 355 

356#### `Write(path)`、`NotebookEdit(path)` 和 `Glob(path)` 规则从不匹配356#### `Write(path)`、`Glob(path)` 和 `Grep(path)` 规则不匹配

357 357 

358Claude Code 仅根据 `Edit(path)` 和 `Read(path)` 规则检查文件权限。如果您为 `Write`、`NotebookEdit`、`Glob` 或旧版 `MultiEdit` 编写路径规则,Claude Code 会接受该规则,但从不将任何读取或编辑与其匹配。358Claude Code 根据 `Edit(path)` 和 `Read(path)` 规则检查文件权限。对于下列工具之一,它会接受路径不是 `*` 的规则,但不会将任何读取、搜索或编辑与其匹配。`Grep(docs/**)` deny 规则不会阻止 Grep 搜索 `docs`。请改为编写 `Edit` 或 `Read` 规则:

359 359 

360使用 `Edit(docs/**)` 代替 `Write(docs/**)`、`NotebookEdit(docs/**)` 或 `MultiEdit(docs/**)`,以及 `Read(docs/**)` 代替 `Glob(docs/**)`。要匹配 Write、NotebookEdit 或 Glob 工具的每次使用(无论路径如何),请只编写工具名称。360* **`Write`、`NotebookEdit` 或旧版 `MultiEdit`**:使用 `Edit(docs/**)` 代替 `Write(docs/**)`。

361* **`Glob` 或 `Grep`**:使用 `Read(docs/**)` 代替 `Grep(docs/**)`。作为 ask 规则,当 Claude 对匹配的路径调用 Grep 或 Glob 时,`Read(docs/**)` 会提示,但当对其上层工作目录的搜索返回匹配文件时不会提示。

362 

363要匹配这些工具之一的每次使用(无论路径如何),请[只编写工具名称](#match-all-uses-of-a-tool)。

361 364 

362#### 路径模式如何匹配365#### 路径模式如何匹配

363 366 

Details

20 20 

21## claude plugin 命令21## claude plugin 命令

22 22 

23在 Claude Code 会话外部,从 shell 或脚本运行 `claude plugin <subcommand>`。这些子命令用于安装和管理插件,无需打开 [`/plugin`](#plugin-in-a-session) 面板。23在 Claude Code 会话之外,从 shell 或脚本中运行 `claude plugin <subcommand>`。这些子命令无需打开 [`/plugin`](#plugin-in-a-session) 面板即可安装和管理插件。

24 24 

25`claude plugins` 是 `claude plugin` 的别名。25`claude plugins` 是 `claude plugin` 的别名。

26 26 

27每个子命令共享以下退出码、插件参数和作用域值:27所有子命令共享以下退出码、插件参数和作用域值:

28 28 

29* **退出码**:成功时为 `0`,失败时为 `1`。`validate` 额外使用退出码 `2` 表示意外错误,`eval` 额外使用[其章节](#plugin-eval)中列出的退出码。29* **退出码**:成功时为 `0`,失败时为 `1`。`validate` 额外使用退出码 `2` 表示意外错误,`eval` 额外使用[其章节](#plugin-eval)中列出的退出码。

30* **插件参数**:`<plugin>` 参数是插件 `name` 或 `name@marketplace`。当两个市场提供相同的名称时,请使用限定形式。`configure` 仅接受限定形式。30* **插件参数**:`<plugin>` 参数是插件的 `name` 或 `name@marketplace`。当两个市场提供同名插件时,请使用限定形式。`configure` 只接受限定形式。

31* **作用域**:`--scope` 接受 `user`、`project` 或 `local`,用于指定命令写入的设置文件。`update` 还接受 `managed`。31* **作用域**:`--scope` 接受 `user`、`project` 或 `local`,用于指定命令写入的设置文件。`update` 还接受 `managed`。

32 32 

33### plugin init33### plugin init

34 34 

35在 `~/.claude/skills/<name>/` 处搭建新插件。除非您的管理员已[阻止 skills-directory 插件](https://code.claude.com/docs/zh-CN/plugins/loading.md#skills-directory-plugins-blocked-by-managed-settings),否则它会在您的下一个会话中作为 `<name>@skills-dir` 加载,无需安装步骤。35在 `~/.claude/skills/<name>/` 创建新插件的脚手架。除非您的管理员已[阻止 skills 目录插件](https://code.claude.com/docs/zh-CN/plugins/loading.md#skills-directory-plugins-blocked-by-managed-settings),否则它会在您的下一个会话中以 `<name>@skills-dir` 的形式加载,无需安装步骤。

36 36 

37`new` 是 `init` 的别名。37`new` 是 `init` 的别名。

38 38 


42claude plugin init <name> [options]42claude plugin init <name> [options]

43```43```

44 44 

45`<name>` 将成为 `~/.claude/skills/` 下的目录名称以及插件清单中的 `name`。45`<name>` 会成为 `~/.claude/skills/` 下的目录名,以及插件清单中的 `name`。

46 46 

47该命令没有用于指定其他位置的标志。如需在项目内搭建,请参阅[创建插件](https://code.claude.com/docs/zh-CN/plugins/create.md)。47该命令没有用于指定其他位置的标志。如需改为在项目内创建脚手架,请参阅[创建插件](https://code.claude.com/docs/zh-CN/plugins/create.md)。

48 48 

49| 标志 | 描述 |49| 标志 | 说明 |

50| :- | :- |50| :- | :- |

51| `--description <text>` | 清单描述 |51| `--description <text>` | 清单描述 |

52| `--author <name>` | 作者名称。默认为 `git config user.name` |52| `--author <name>` | 作者名称。默认为 `git config user.name` |

53| `--author-email <email>` | 作者电子邮件。默认为 `git config user.email` |53| `--author-email <email>` | 作者邮箱。默认为 `git config user.email` |

54| `--with <components...>` | 同时为 `skills`、`agents`、`hooks`、`mcp`、`lsp`、`output-style` 或 `channel` 搭建起始文件 |54| `--with <components...>` | 同时为 `skills`、`agents`、`hooks`、`mcp`、`lsp`、`output-style` 或 `channel` 创建初始文件 |

55| `-f, --force` | 覆盖目标处现有的 `.claude-plugin/` |55| `-f, --force` | 覆盖目标位置已有的 `.claude-plugin/` |

56 56 

57搭建带有起始 skill 和 hook 文件的插件:57创建带有初始 skill 和 hook 文件的插件脚手架:

58 58 

59```bash theme={null}59```bash theme={null}

60claude plugin init my-helper --with skills hooks60claude plugin init my-helper --with skills hooks

61```61```

62 62 

63Claude Code 会验证其写入的内容并打印 `Created plugin "my-helper" at ~/.claude/skills/my-helper`,随后打印其加载时使用的 id,以及用于关闭它的 `claude plugin disable` 命令。63Claude Code 会验证其写入的内容并打印 `Created plugin "my-helper" at ~/.claude/skills/my-helper`,随后显示该插件加载时使用的 id,以及用于关闭它的 `claude plugin disable` 命令。

64 64 

65当 Claude Code 无法安全搭建时,它会以 `1` 退出且不写入任何内容,并在消息中说明原因。常见原因如下:65当 Claude Code 无法安全地创建脚手架时,它会以 `1` 退出且不写入任何内容,消息中会说明原因。常见原因如下:

66 66 

67* 未知的 `--with` 值67* 未知的 `--with` 值

68* 目标处已存在搭建内容,且未使用 `--force`68* 目标位置已有脚手架,且未指定 `--force`

69* 托管的市场允许列表未包含 `skills-dir` 来源,或拒绝列表中列出了该来源。消息为 [`Plugins from ~/.claude/skills/ are blocked by your organization's managed settings`](https://code.claude.com/docs/zh-CN/plugins/troubleshooting#plugins-from-claude-skills-are-blocked-by-your-organizations-managed-s)。69* 托管的市场允许列表不包含 `skills-dir` 来源,或拒绝列表中列出了该来源。消息为 [`Plugins from ~/.claude/skills/ are blocked by your organization's managed settings`](https://code.claude.com/docs/zh-CN/plugins/troubleshooting#plugins-from-claude-skills-are-blocked-by-your-organizations-managed-s)。

70 70 

71### plugin install71### plugin install

72 72 

73从您已添加的市场安装插件。`i` 是 `install` 的别名。73从您的某个市场安装插件。`i` 是 `install` 的别名。

74 74 

75```bash theme={null}75```bash theme={null}

76claude plugin install <plugin> [options]76claude plugin install <plugin> [options]

77```77```

78 78 

79大多数插件无需提示即可安装。对于其市场条目[通过运行命令来安装](https://code.claude.com/docs/zh-CN/plugins/host-marketplace.md)或[为下载设置了 `headersHelper`](https://code.claude.com/docs/zh-CN/plugins/host-marketplace#how-users-accept-a-headershelper-command) 的插件,Claude Code 会先打印该命令并询问 `Run this command now? [y/N]`。79大多数插件在安装时不会出现提示。对于其市场条目[通过运行命令来安装](https://code.claude.com/docs/zh-CN/plugins/host-marketplace.md)或[为下载设置了 `headersHelper`](https://code.claude.com/docs/zh-CN/plugins/host-marketplace#how-users-accept-a-headershelper-command) 的插件,Claude Code 会先打印该命令并询问 `Run this command now? [y/N]`。

80 80 

81| 标志 | 描述 |81| 标志 | 说明 |

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

83| `-s, --scope <scope>` | 安装作用域:`user`、`project` 或 `local`。默认为 `user` |83| `-s, --scope <scope>` | 安装作用域:`user`、`project` 或 `local`。默认为 `user` |

84| `--config <key=value>` | 设置插件清单声明的 [`userConfig`](https://code.claude.com/docs/zh-CN/plugins/manifest-reference) 选项。每个选项重复一次该标志。写作 `<server>.<key>` 的键改为设置[捆绑 MCP 服务器](https://code.claude.com/docs/zh-CN/plugins/components.md#include-a-packaged-mcpb-server)在其自身 `user_config` 中声明的设置,适用于随插件附带的捆绑文件。`<server>.<key>` 形式需要 Claude Code v2.1.285 或更高版本 |84| `--config <key=value>` | 设置插件清单中声明的 [`userConfig`](https://code.claude.com/docs/zh-CN/plugins/manifest-reference) 选项。每个选项重复使用一次该标志。写作 `<server>.<key>` 的键会改为设置[捆绑的 MCP 服务器](https://code.claude.com/docs/zh-CN/plugins/components.md#include-a-packaged-mcpb-server)在其自身 `user_config` 中声明的设置项,适用于随插件一起提供的 bundle 文件。`<server>.<key>` 形式需要 Claude Code v2.1.285 或更高版本 |

85| `-y, --yes` | 接受显示的安装命令,不出现 `Run this command now?` 提示。在 Claude Code 会话内运行命令时(例如从 Bash 工具或 hook 运行)会被忽略。需要 Claude Code v2.1.229 或更高版本 |85| `-y, --yes` | 接受所显示的安装命令,不出现 `Run this command now?` 提示。当命令在 Claude Code 会话内运行时(例如通过 Bash 工具或 hook 运行)会被忽略。需要 Claude Code v2.1.229 或更高版本 |

86| `--accept-command <sha256>` | 代替 `-y`,接受之前某次 [`--json` 运行](#plugin-json-result)在 `shownCommand` 中报告了其 `sha256` 的显示安装命令。不能与 `-y` 组合使用。请参阅[接受显示的安装命令](#accept-a-displayed-install-command)。需要 Claude Code v2.1.271 或更高版本 |86| `--accept-command <sha256>` | 代替 `-y`,接受之前某次 [`--json` 运行](#plugin-json-result)在 `shownCommand` 中报告了其 `sha256` 的已显示安装命令。不能与 `-y` 同时使用。请参阅[接受已显示的安装命令](#accept-a-displayed-install-command)。需要 Claude Code v2.1.271 或更高版本 |

87| `--json` | 将结果作为一个 JSON 对象打印在 stdout 的最后一行,而不是人类可读的消息,供脚本使用。请参阅 [JSON 结果格式](#plugin-json-result)。需要 Claude Code v2.1.268 或更高版本 |87| `--json` | 在 stdout 的最后一行以一个 JSON 对象打印结果,而不是人类可读的消息,便于在脚本中使用。请参阅 [JSON 结果格式](#plugin-json-result)。需要 Claude Code v2.1.268 或更高版本 |

88| `--marketplace <source>` | 从位于 `<source>` 的市场安装以裸名称指定的 `<plugin>`,如果您尚未添加该市场,则先添加它。请参阅[通过一条命令添加市场并安装](https://code.claude.com/docs/zh-CN/plugins/install.md#add-a-marketplace-and-install-in-one-command)。需要 Claude Code v2.1.292 或更高版本 |88| `--marketplace <source>` | 从位于 `<source>` 的市场安装以裸名称指定的 `<plugin>`,如果您尚未添加该市场,则会先添加它。请参阅[用一条命令添加市场并安装](https://code.claude.com/docs/zh-CN/plugins/install.md#add-a-marketplace-and-install-in-one-command)。需要 Claude Code v2.1.292 或更高版本 |

89 89 

90在 shell 中运行 `claude plugin install --help`,可查看您的版本支持的所有选项。90在 shell 中运行 `claude plugin install --help` 可查看您的版本支持的所有选项。

91 91 

92从您自己的终端传递 `-y`,即可接受显示的命令而不出现提示。以下是没有 TTY 以及由 Claude 运行命令时的情况:92从您自己的终端传入 `-y`,即可接受所显示的命令而不出现提示。以下是在没有 TTY 时以及由 Claude 运行该命令时的情况:

93 93 

94* **stdin 或 stdout 不是 TTY,且既未传递 `-y` 也未传递 `--accept-command`**:安装被拒绝。输出会说明命令仅被显示,退出码为 `1`94* **stdin 或 stdout 不是 TTY,且您既未传入 `-y` 也未传入 `--accept-command`**:安装会被拒绝。输出会说明该命令仅被显示,退出码为 `1`

95* **Claude 通过其 Bash 工具运行命令**:`-y` 会被忽略。请改为从您自己的终端运行该命令95* **Claude 通过其 Bash 工具运行该命令**:`-y` 会被忽略。请改为从您自己的终端运行该命令

96 96 

97为克隆该项目的所有人安装插件:97为克隆该项目的所有人安装插件:

98 98 


100claude plugin install formatter@my-marketplace --scope project100claude plugin install formatter@my-marketplace --scope project

101```101```

102 102 

103Claude Code 打印 `Successfully installed plugin: formatter@my-marketplace (scope: project)`。当没有安装任何新内容时,输出会说明原因:103Claude Code 会打印 `Successfully installed plugin: formatter@my-marketplace (scope: project)`。当没有安装任何新内容时,输出会说明原因:

104 104 

105* **已在该作用域安装**:输出为 `Plugin "formatter@my-marketplace" is already installed (scope: project)`,退出码为 `0`105* **已在该作用域安装**:输出为 `Plugin "formatter@my-marketplace" is already installed (scope: project)`,退出码为 `0`

106* **您拒绝了命令源提示**:输出为 `Aborted.`,退出码为 `1`106* **您拒绝了命令来源的提示**:输出为 `Aborted.`,退出码为 `1`

107* **您拒绝了 `headersHelper` 提示,或在没有 TTY 的情况下无法确认**:输出为 `Aborted — the command was not run.`,退出码为 `1`107* **您拒绝了 `headersHelper` 提示,或在没有 TTY 时无法确认**:输出为 `Aborted — the command was not run.`,退出码为 `1`

108 108 

109#### JSON 结果格式109#### JSON 结果格式

110 110 

111向 `plugin install` 传递 `--json` 时,stdout 的最后一行是一个 JSON 对象。请仅解析该行,因为 Claude Code 会在其之前打印市场声明的任何命令。111当您向 `plugin install` 传入 `--json` 时,stdout 的最后一行是一个 JSON 对象。请只解析这一行,因为 Claude Code 会在其之前打印市场声明的任何命令。

112 112 

113以下三个字段始终存在:113以下三个字段始终存在:

114 114 

115* `command`:运行的子命令,例如 `install`115* `command`:运行的子命令,例如 `install`

116* `outcome`:`ok` 或 `failed`116* `outcome`:`ok` 或 `failed`

117* `message`:结果的人类可读描述117* `message`:对结果的人类可读描述

118 118 

119其他字段(例如 `pluginId`、`scope` 和 `failureCode`)仅在适用时出现。119其他字段(例如 `pluginId`、`scope` 和 `failureCode`)仅在适用时出现。

120 120 

121`plugin uninstall`、`plugin update`、`plugin enable` 和 `plugin disable` 上的 `--json` 选项会打印相同的对象,并带有各子命令自己的字段。121`plugin uninstall`、`plugin update`、`plugin enable` 和 `plugin disable` 上的 `--json` 选项会打印相同的对象,并带有该子命令自身的字段。

122 122 

123使用错误(例如无效的 `--scope`)不会打印结果行,而是以 `1` 退出,并在 stderr 上给出原因。123用法错误(例如无效的 `--scope`)不会打印结果行,并以 `1` 退出,原因输出到 stderr。

124 124 

125#### 市场命令的 JSON 结果125#### 市场命令的 JSON 结果

126 126 


137 137 

138当参数为[保留名称](https://code.claude.com/docs/zh-CN/plugins/marketplace-reference.md#reserved-names) `anthropic-plugin-directory` 时,`plugin marketplace add` 和 `plugin marketplace remove` 可能不打印结果行,因此对于该名称请检查退出码。138当参数为[保留名称](https://code.claude.com/docs/zh-CN/plugins/marketplace-reference.md#reserved-names) `anthropic-plugin-directory` 时,`plugin marketplace add` 和 `plugin marketplace remove` 可能不打印结果行,因此对于该名称请检查退出码。

139 139 

140#### 接受显示的安装命令140#### 接受已显示的安装命令

141 141 

142当 `--json` 运行显示了市场声明的命令但未运行它时,`failed` 结果还会携带一个 `shownCommand` 对象。其字段包括显示的命令、该命令所属的插件以及命令的 `sha256`。142当某次 `--json` 运行显示了市场声明的命令但未运行它时,`failed` 结果还会带有一个 `shownCommand` 对象。其字段包括所显示的命令、该命令所属的插件,以及该命令的 `sha256`。

143 143 

144要恰好接受该命令,请从您自己的终端重新运行,并将该 `sha256` 作为 `--accept-command` 传入,因为该标志在 Claude Code 会话内无效。需要 Claude Code v2.1.271 或更高版本。144要精确接受该命令,请从您自己的终端以该 `sha256` 作为 `--accept-command` 重新运行,因为该标志在 Claude Code 会话内无效。需要 Claude Code v2.1.271 或更高版本。

145 145 

146`sha256` 仅对完全相同的命令、插件和市场目录视为接受。如果自命令显示以来其中任何一项发生了变化,Claude Code 不会接受该 `sha256`,并会再次显示命令。运行自身的市场刷新所获取的更改也算作此类变化。146该 `sha256` 仅对完全相同的命令、插件和市场目录视为接受。如果自命令显示以来其中任何一项发生了变化,Claude Code 不会接受该 `sha256`,而是再次显示该命令。本次运行自身的市场刷新所获取到的变化也算作此类变化。

147 147 

148如果 `shownCommand.acceptCommandMatched` 为 `false`,则您传递的 `sha256` 与当前显示的命令不匹配。请在使用其 `sha256` 重新运行之前检查该命令。148如果 `shownCommand.acceptCommandMatched` 为 `false`,则您传入的 `sha256` 与当前显示的命令不匹配。请先检查该命令,再以其 `sha256` 重新运行。

149 149 

150### plugin uninstall150### plugin uninstall

151 151 

152从一个作用域移除已安装的插件。`remove` 和 `rm` 是 `uninstall` 的别名。152从某个作用域移除已安装的插件。`remove` 和 `rm` 是 `uninstall` 的别名。

153 153 

154```bash theme={null}154```bash theme={null}

155claude plugin uninstall <plugin> [options]155claude plugin uninstall <plugin> [options]

156```156```

157 157 

158| 标志 | 描述 |158| 标志 | 说明 |

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

160| `-s, --scope <scope>` | 从指定作用域卸载:`user`、`project` 或 `local`。默认为 `user` |160| `-s, --scope <scope>` | 从以下作用域卸载:`user`、`project` 或 `local`。默认为 `user` |

161| `--keep-data` | 保留插件的持久数据目录 `~/.claude/plugins/data/<id>/` |161| `--keep-data` | 保留插件的持久数据目录 `~/.claude/plugins/data/<id>/` |

162| `--prune` | 同时移除不再被任何剩余插件需要的自动安装[依赖项](https://code.claude.com/docs/zh-CN/plugins/dependencies.md) |162| `--prune` | 同时移除剩余插件都不再需要的自动安装的[依赖](https://code.claude.com/docs/zh-CN/plugins/dependencies.md) |

163| `-y, --yes` | 跳过 `--prune` 确认提示。当 stdin 或 stdout 不是 TTY 时,与 `--prune` 一起使用时必须提供 |163| `-y, --yes` | 跳过 `--prune` 的确认提示。当 stdin 或 stdout 不是 TTY 时,与 `--prune` 一起使用是必需的 |

164| `--json` | 将结果作为一个 JSON 对象打印在 stdout 的最后一行,格式与 [`plugin install --json`](#plugin-json-result) 相同。不能与 `--prune` 组合使用。需要 Claude Code v2.1.268 或更高版本 |164| `--json` | 在 stdout 的最后一行以一个 JSON 对象打印结果,格式[与 `plugin install --json` 相同](#plugin-json-result)。不能与 `--prune` 同时使用。需要 Claude Code v2.1.268 或更高版本 |

165 165 

166从项目作用域卸载插件:166从项目作用域卸载插件:

167 167 


169claude plugin uninstall formatter@my-marketplace --scope project169claude plugin uninstall formatter@my-marketplace --scope project

170```170```

171 171 

172Claude Code 打印 `Successfully uninstalled plugin: formatter (scope: project)`。当插件未在该作用域安装时,命令会打印以 `Failed to uninstall plugin "formatter@my-marketplace":` 开头的行并以 `1` 退出。172Claude Code 会打印 `Successfully uninstalled plugin: formatter (scope: project)`。当插件未在该作用域安装时,命令会打印以 `Failed to uninstall plugin "formatter@my-marketplace":` 开头的一行,并以 `1` 退出。

173 173 

174如果失败行后接 `"formatter" was not uninstalled:` 并指出某个设置文件,说明 Claude Code 无法确认该作用域的设置已不再启用该插件,因此插件保持安装状态,其保存的所有内容也都保留。使用 `--json` 时,结果携带 `failureCode: "settings_still_on"`。此设置检查需要 Claude Code v2.1.282 或更高版本。174如果失败行后续为 `"formatter" was not uninstalled:` 并指出某个设置文件,说明 Claude Code 无法确认该作用域的设置不再启用该插件,因此插件及其保存的所有内容都保持安装状态。使用 `--json` 时,结果会带有 `failureCode: "settings_still_on"`。此设置检查需要 Claude Code v2.1.282 或更高版本。

175 175 

176#### 卸载会删除和保留的内容176#### 卸载会删除和保留的内容

177 177 

178当您从插件安装所在的最后一个作用域卸载插件时,Claude Code 还会删除插件存储的[选项和密钥](https://code.claude.com/docs/zh-CN/plugins/manifest-reference.md#user-configuration)及其数据目录 `~/.claude/plugins/data/<id>/`。有三个例外:178当您从插件安装所在的最后一个作用域卸载该插件时,Claude Code 还会删除插件存储的[选项和密钥](https://code.claude.com/docs/zh-CN/plugins/manifest-reference.md#user-configuration)及其数据目录 `~/.claude/plugins/data/<id>/`。有三种例外情况:

179 179 

180* 使用 `--keep-data` 时,数据目录会保留180* 使用 `--keep-data` 时,数据目录会保留

181* 当另一个已安装的插件使用相同的文件夹时(例如其 ID 与此插件仅在字母大小写上不同),数据目录会保留181* 当另一个已安装的插件使用同一文件夹时(例如其 ID 与此插件仅在字母大小写上不同),数据目录会保留

182* 当 Claude Code 从该作用域移除插件后无法读回已安装插件列表时,选项、密钥和数据目录都会保留,因为插件可能仍安装在另一个作用域。卸载仍然成功。消息会列出保留的内容以及如何删除它们,使用 `--json` 时结果携带 `savedKept: "install_records_unreadable"`182* 当 Claude Code 从该作用域移除插件后无法重新读取已安装插件列表时,选项、密钥和数据目录都会保留,因为该插件可能仍安装在其他作用域。卸载仍会成功。消息会列出保留的内容以及删除方法,使用 `--json` 时结果会带有 `savedKept: "install_records_unreadable"`

183 183 

184使用 `--json` 时,`keptData` 报告目录是否保留,目录保留时 `/plugin` 会显示 `· data preserved`。对于未使用 `--keep-data` 却保留的目录,此报告需要 Claude Code v2.1.281 或更高版本。`savedKept` 字段需要 Claude Code v2.1.282 或更高版本。184使用 `--json` 时,`keptData` 会报告目录是否被保留;若被保留,`/plugin` 会显示 `· data preserved`。对于未使用 `--keep-data` 而被保留的目录,此报告需要 Claude Code v2.1.281 或更高版本。`savedKept` 字段需要 Claude Code v2.1.282 或更高版本。

185 185 

186### plugin enable186### plugin enable

187 187 

188启用已禁用的插件。对于[从 claude.ai 同步的插件](https://code.claude.com/docs/zh-CN/plugins/loading.md#synced-plugins),请传递 `<name>@synced` 作为插件。188启用已禁用的插件。对于[从 claude.ai 同步的插件](https://code.claude.com/docs/zh-CN/plugins/loading.md#synced-plugins),请传入 `<name>@synced` 作为插件。

189 189 

190```bash theme={null}190```bash theme={null}

191claude plugin enable <plugin> [options]191claude plugin enable <plugin> [options]

192```192```

193 193 

194| 标志 | 描述 |194| 标志 | 说明 |

195| :- | :- |195| :- | :- |

196| `-s, --scope <scope>` | 启用的作用域:`user`、`project` 或 `local`。省略时自动检测 |196| `-s, --scope <scope>` | 启用所在的作用域:`user`、`project` 或 `local`。省略时自动检测 |

197| `--json` | 将结果作为一个 JSON 对象打印在 stdout 的最后一行,格式与 [`plugin install --json`](#plugin-json-result) 相同。需要 Claude Code v2.1.268 或更高版本 |197| `--json` | 在 stdout 的最后一行以一个 JSON 对象打印结果,格式[与 `plugin install --json` 相同](#plugin-json-result)。需要 Claude Code v2.1.268 或更高版本 |

198 198 

199不使用 `--scope` 时,命令按 local、project、user 的顺序检查您的设置文件,并使用第一个提及该插件的作用域。199未指定 `--scope` 时,命令会按 local、project、user 的顺序检查您的设置文件,并使用第一个提及该插件的作用域。

200 200 

201如果传递的 `--scope` 并非插件声明所在的作用域,命令要么写入覆盖,要么失败:201如果您传入的 `--scope` 中未声明该插件,命令会写入覆盖或失败:

202 202 

203* **[优先级高于](https://code.claude.com/docs/zh-CN/plugins/loading.md)声明作用域的作用域**:Claude Code 在您传递的作用域写入覆盖。例如,`claude plugin disable formatter --scope local` 仅为您自己关闭在项目中启用的插件203* **[优先于](https://code.claude.com/docs/zh-CN/plugins/loading.md)声明所在作用域的作用域**:Claude Code 会在您传入的作用域写入覆盖。例如,`claude plugin disable formatter --scope local` 仅为您自己关闭在项目中启用的插件

204* **任何其他作用域**:命令失败,并显示 `Plugin "formatter" is installed at project scope, not user. Use --scope project or omit --scope to auto-detect.`204* **任何其他作用域**:命令失败并显示 `Plugin "formatter" is installed at project scope, not user. Use --scope project or omit --scope to auto-detect.`

205 205 

206如果插件已在解析出的作用域中启用,命令会打印 `Plugin "formatter" is already enabled` 并以 `1` 退出。使用 `--json` 时,结果包含 `"failureCode": "already_in_goal_state"` 和 `"alreadyInGoalState": true`,因此脚本可以将这种情况视为成功。206如果插件在解析出的作用域中已启用,命令会打印 `Plugin "formatter" is already enabled` 并以 `1` 退出。使用 `--json` 时,结果带有 `"failureCode": "already_in_goal_state"` 和 `"alreadyInGoalState": true`,因此脚本可以将这种情况视为成功。

207 207 

208当插件声明了[依赖](https://code.claude.com/docs/zh-CN/plugins/dependencies.md)时,Claude Code 也会启用这些依赖。在以下情况下命令会失败:208当插件声明了[依赖](https://code.claude.com/docs/zh-CN/plugins/dependencies.md)时,Claude Code 也会启用它们。在以下情况下命令会失败:

209 209 

210* **某个依赖未安装**:启用失败,并为每个缺失的依赖打印 `claude plugin install` 命令210* **某个依赖未安装**:启用失败,并为每个缺失的依赖打印 `claude plugin install` 命令

211* **某个依赖被您组织的插件策略阻止**:启用失败,并指出被阻止的依赖211* **某个依赖被您组织的插件策略阻止**:启用失败,并指出被阻止的依赖

212* **某个依赖在优先级高于目标作用域的作用域中被设置为 `false`**:启用失败。请在该作用域启用该依赖,或传递 `--scope` 以写入该作用域212* **某个依赖在优先级高于目标作用域的作用域中被设为 `false`**:启用失败。请在该作用域启用该依赖,或传入 `--scope` 写入该作用域

213 213 

214在插件声明所在的任何位置重新启用插件:214在插件声明所在的任何位置重新启用插件:

215 215 


217claude plugin enable formatter217claude plugin enable formatter

218```218```

219 219 

220Claude Code 打印 `Successfully enabled plugin: formatter (scope: project)`,并指出它检测到的作用域。220Claude Code 会打印 `Successfully enabled plugin: formatter (scope: project)`,并指出其检测到的作用域。

221 221 

222### plugin disable222### plugin disable

223 223 

224禁用插件而不卸载它。对于[从 claude.ai 同步的插件](https://code.claude.com/docs/zh-CN/plugins/loading.md#synced-plugins),请传递 `<name>@synced` 作为插件。224禁用插件但不卸载。对于[从 claude.ai 同步的插件](https://code.claude.com/docs/zh-CN/plugins/loading.md#synced-plugins),请传入 `<name>@synced` 作为插件。

225 225 

226```bash theme={null}226```bash theme={null}

227claude plugin disable [plugin] [options]227claude plugin disable [plugin] [options]

228```228```

229 229 

230| 标志 | 描述 |230| 标志 | 说明 |

231| :- | :- |231| :- | :- |

232| `-a, --all` | 禁用所有已启用的插件。不能与插件名称或 `--scope` 组合使用 |232| `-a, --all` | 禁用所有已启用的插件。不能与插件名称或 `--scope` 同时使用 |

233| `-s, --scope <scope>` | 禁用的作用域:`user`、`project` 或 `local`。省略时自动检测 |233| `-s, --scope <scope>` | 禁用所在的作用域:`user`、`project` 或 `local`。省略时自动检测 |

234| `--json` | 将结果作为一个 JSON 对象打印在 stdout 的最后一行,格式与 [`plugin install --json`](#plugin-json-result) 相同。需要 Claude Code v2.1.268 或更高版本 |234| `--json` | 在 stdout 的最后一行以一个 JSON 对象打印结果,格式[与 `plugin install --json` 相同](#plugin-json-result)。需要 Claude Code v2.1.268 或更高版本 |

235 235 

236不使用 `--scope` 时,作用域按与 [`plugin enable`](#plugin-enable) 相同的 local、project、user 顺序自动检测。236未指定 `--scope` 时,作用域会按与 [`plugin enable`](#plugin-enable) 相同的 local、project、user 顺序自动检测。

237 237 

238如果既未传递插件名称也未传递 `--all`,Claude Code 会打印 `Please specify a plugin name or use --all to disable all plugins` 并以 `1` 退出。禁用已禁用的插件会打印 `Plugin "formatter" is already disabled` 并以 `1` 退出,与 [`plugin enable`](#plugin-enable) 对已启用插件的处理方式相同。238如果您既未传入插件名称也未传入 `--all`,Claude Code 会打印 `Please specify a plugin name or use --all to disable all plugins` 并以 `1` 退出。禁用已禁用的插件会打印 `Plugin "formatter" is already disabled` 并以 `1` 退出,这与 [`plugin enable`](#plugin-enable) 对已启用插件的处理方式相同。

239 239 

240对于仍被需要的插件,命令会失败:240对于仍被需要的插件,命令会失败:

241 241 

242* **另一个已启用的插件[依赖](https://code.claude.com/docs/zh-CN/plugins/dependencies.md)它**:命令失败,并列出需要先禁用的依赖方插件242* **另一个已启用的插件[依赖](https://code.claude.com/docs/zh-CN/plugins/dependencies.md)它**:命令失败,并指出需要先禁用的依赖方

243* **您的组织要求将其作为同步插件**:命令失败且不保存任何内容243* **您的组织要求将其作为同步插件**:命令失败且不保存任何内容

244 244 

245禁用一个插件:245禁用一个插件:


248claude plugin disable formatter248claude plugin disable formatter

249```249```

250 250 

251Claude Code 打印 `Successfully disabled plugin: formatter (scope: project)`。251Claude Code 会打印 `Successfully disabled plugin: formatter (scope: project)`。

252 252 

253### plugin update253### plugin update

254 254 


258claude plugin update <plugin> [options]258claude plugin update <plugin> [options]

259```259```

260 260 

261| 标志 | 描述 |261| 标志 | 说明 |

262| :- | :- |262| :- | :- |

263| `-s, --scope <scope>` | 要更新的作用域:`user`、`project`、`local` 或 `managed`。省略时自动检测 |263| `-s, --scope <scope>` | 要更新的作用域:`user`、`project`、`local` 或 `managed`。省略时自动检测 |

264| `-y, --yes` | 接受[命令源](https://code.claude.com/docs/zh-CN/plugins/host-marketplace.md)插件已更改的安装命令,不出现提示。当 stdin 或 stdout 不是 TTY 时必须提供,除非传递了 `--accept-command`。需要 Claude Code v2.1.229 或更高版本 |264| `-y, --yes` | 接受[命令来源](https://code.claude.com/docs/zh-CN/plugins/host-marketplace.md)插件已更改的安装命令,不出现提示。当 stdin 或 stdout 不是 TTY 时为必需,除非您传入 `--accept-command`。需要 Claude Code v2.1.229 或更高版本 |

265| `--accept-command <sha256>` | 代替 `-y`,接受之前某次 [`--json` 运行](#plugin-json-result)在 `shownCommand` 中报告了其 `sha256` 的市场声明命令。不能与 `-y` 组合使用。需要 Claude Code v2.1.271 或更高版本 |265| `--accept-command <sha256>` | 代替 `-y`,接受之前某次 [`--json` 运行](#plugin-json-result)在 `shownCommand` 中报告了其 `sha256` 的市场声明命令。不能与 `-y` 同时使用。需要 Claude Code v2.1.271 或更高版本 |

266| `--json` | 将结果作为一个 JSON 对象打印在 stdout 的最后一行,格式与 [`plugin install --json`](#plugin-json-result) 相同。需要 Claude Code v2.1.268 或更高版本 |266| `--json` | 在 stdout 的最后一行以一个 JSON 对象打印结果,格式[与 `plugin install --json` 相同](#plugin-json-result)。需要 Claude Code v2.1.268 或更高版本 |

267 267 

268更新插件:268更新插件:

269 269 


271claude plugin update formatter@my-marketplace271claude plugin update formatter@my-marketplace

272```272```

273 273 

274Claude Code 打印 `Checking for updates for plugin "formatter@my-marketplace"…`,然后打印结果。当没有更新的版本时,它会打印 `formatter is already at the latest version (1.0.0).` 并以 `0` 退出,除非它[重试插件的依赖安装](#retry-an-unfinished-dependency-install)且该安装失败。274Claude Code 会打印 `Checking for updates for plugin "formatter@my-marketplace"…`,然后显示结果。当没有更新的版本时,它会打印 `formatter is already at the latest version (1.0.0).` 并以 `0` 退出,除非它[重试了插件的依赖安装](#retry-an-unfinished-dependency-install)且该安装失败。

275 275 

276#### 命令更新哪个作用域276#### 命令更新哪个作用域

277 277 

278如果省略 `--scope`,命令会在当前项目中插件安装所在的最具体作用域更新插件,依次检查 local、project、user,然后是 managed。278如果您省略 `--scope`,命令会在当前项目中该插件安装所在的最具体作用域更新插件,依次检查 local、project、user,然后是 managed。

279 279 

280在 v2.1.281 之前,省略 `--scope` 时命令使用 `user`,因此更新仅安装在 project 或 local 作用域的插件会失败,并显示 `Plugin "<name>" is not installed at scope user`。在这些版本上,请传递 `--scope`。280在 v2.1.281 之前,省略 `--scope` 时命令使用 `user`,因此更新仅安装在 project 或 local 作用域的插件会失败并显示 `Plugin "<name>" is not installed at scope user`。在这些版本上,请传入 `--scope`。

281 281 

282`managed` 是唯一可以更新但不能安装到的作用域。有关管理员安装的插件,请参阅[为组织管理插件](https://code.claude.com/docs/zh-CN/plugins/org.md)。282`managed` 是唯一一个可以更新但不能安装到的作用域。对于管理员安装的插件,请参阅[为您的组织管理插件](https://code.claude.com/docs/zh-CN/plugins/org.md)。

283 283 

284#### 按裸名称更新284#### 按裸名称更新

285 285 

286您可以传递不带市场的插件名称,命令会将其与已安装的插件进行匹配。当来自不同市场的已安装插件同名时,命令会拒绝更新,并列出应改为运行的限定 `plugin-name@marketplace-name` 命令。按裸名称更新需要 Claude Code v2.1.246 或更高版本。286您可以传入裸插件名称,命令会将其与您已安装的插件进行匹配。当来自不同市场的已安装插件同名时,命令会拒绝更新,并列出应改为运行的限定形式 `plugin-name@marketplace-name` 命令。按裸名称更新需要 Claude Code v2.1.246 或更高版本。

287 287 

288#### 重试未完成的依赖安装288#### 重试未完成的依赖安装

289 289 

290当插件已是最新版本时,该命令还可以在其缓存副本中重试未完成的依赖安装。有关该重试会运行或被跳过的情况,请参阅[其列出的软件包未安装](https://code.claude.com/docs/zh-CN/plugins/troubleshooting.md#the-packages-it-lists-are-not-installed)。如果重试失败,输出为 `Failed to update plugin "formatter@my-marketplace"` 及原因,退出码为 `1`。在 v2.1.287 之前,该命令会报告插件已是最新版本,而不重试安装。290当插件已是最新版本时,命令还可以在其缓存副本中重试未完成的依赖安装。有关该重试何时运行或被跳过,请参阅[其列出的软件包未安装](https://code.claude.com/docs/zh-CN/plugins/troubleshooting.md#the-packages-it-lists-are-not-installed)。如果重试失败,输出为带有原因的 `Failed to update plugin "formatter@my-marketplace"`,退出码为 `1`。在 v2.1.287 之前,命令会报告插件已是最新版本,而不重试安装。

291 291 

292### plugin list292### plugin list

293 293 


297claude plugin list [options]297claude plugin list [options]

298```298```

299 299 

300| 标志 | 描述 |300| 标志 | 说明 |

301| :- | :- |301| :- | :- |

302| `--json` | 以 JSON 格式打印列表 |302| `--json` | 以 JSON 格式打印列表 |

303| `--available` | 同时列出您的市场提供但尚未安装的插件。不使用 `--json` 时无效 |303| `--available` | 同时列出您的市场提供但您尚未安装的插件。不使用 `--json` 时无效 |

304| `--data-size [plugin]` | 测量每个已安装插件的[已保存数据目录](#what-an-uninstall-deletes-and-keeps),或仅测量以 `name@marketplace` 形式指定的插件。不使用 `--json` 时无效。如果该名称没有安装记录,命令会打印 `--data-size names a plugin that is not installed` 并以 `1` 退出,而不是打印列表。需要 Claude Code v2.1.285 或更高版本 |304| `--data-size [plugin]` | 测量每个已安装插件的[已保存数据目录](#what-an-uninstall-deletes-and-keeps),或仅测量以 `name@marketplace` 指定的插件。不使用 `--json` 时无效。如果该名称没有安装记录,命令会打印 `--data-size names a plugin that is not installed` 并以 `1` 退出,而不打印列表。需要 Claude Code v2.1.285 或更高版本 |

305 305 

306Claude Code 按各插件的加载方式对人类可读的输出进行分组:306Claude Code 按每个插件的加载方式对人类可读输出进行分组:

307 307 

308* **`Installed plugins:`**:您从市场安装的插件308* **`Installed plugins:`**:您从市场安装的插件

309* **`Session-only plugins (--plugin-dir / --plugin-url):`**:由同一命令中的这些标志加载的插件,如 `claude --plugin-dir ./my-plugin plugin list`309* **`Session-only plugins (--plugin-dir / --plugin-url):`**:在同一命令中通过这些标志加载的插件,例如 `claude --plugin-dir ./my-plugin plugin list`

310* **`Skills-directory plugins (.claude/skills/*):`**:Claude Code 在 skills 目录中找到的插件310* **`Skills-directory plugins (.claude/skills/*):`**:Claude Code 在 skills 目录中发现的插件

311* **`Synced from claude.ai`**:[从您的 claude.ai 账户同步的插件](https://code.claude.com/docs/zh-CN/plugins/loading.md#synced-plugins)311* **`Synced from claude.ai`**:[从您的 claude.ai 账户同步的插件](https://code.claude.com/docs/zh-CN/plugins/loading.md#synced-plugins)

312 312 

313当所有分组都为空时,Claude Code 打印 ``No plugins installed. Use `claude plugin install` to install a plugin.``313当所有分组都为空时,Claude Code 会打印 ``No plugins installed. Use `claude plugin install` to install a plugin.``

314 314 

315#### JSON 输出315#### JSON 输出

316 316 

317使用 `--json` 时,Claude Code 打印一个数组,每个安装对应一个对象。每个对象携带以下字段。`id`、`version`、`scope`、`enabled` 和 `installPath` 始终存在,其他字段仅在适用时出现。317使用 `--json` 时,Claude Code 会打印一个数组,每个安装对应一个对象。每个对象带有以下字段。`id`、`version`、`scope`、`enabled` 和 `installPath` 始终存在,其他字段仅在适用时出现。

318 318 

319| 字段 | 类型 | 描述 |319| 字段 | 类型 | 说明 |

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

321| `id` | string | 安装的插件为 `name@marketplace`,仅限会话的插件为 `name@inline`,skills-directory 插件为 `name@skills-dir`,从 claude.ai 同步的插件为 `name@synced` |321| `id` | string | 安装的插件为 `name@marketplace`,仅限会话的插件为 `name@inline`,skills 目录插件为 `name@skills-dir`,从 claude.ai 同步的插件为 `name@synced` |

322| `version` | string | 对于市场安装,为 [Claude Code 在安装时计算的版本](https://code.claude.com/docs/zh-CN/plugins/loading.md#versions-and-updates)。对于仅限会话、skills-directory 或同步插件,为清单的 `version`,未声明时为 `unknown` |322| `version` | string | 对于市场安装,为安装时 [Claude Code 计算出的版本](https://code.claude.com/docs/zh-CN/plugins/loading.md#versions-and-updates)。对于仅限会话、skills 目录或同步的插件,为清单中的 `version`,未声明时为 `unknown` |

323| `scope` | string | 安装的插件为 `user`、`project`、`local` 或 `managed`;skills-directory 插件为 `user` 或 `project`;仅限会话的插件为 `session`;从 claude.ai 同步的插件为 `synced` |323| `scope` | string | 安装的插件为 `user`、`project`、`local` 或 `managed`;skills 目录插件为 `user` 或 `project`;仅限会话的插件为 `session`;从 claude.ai 同步的插件为 `synced` |

324| `enabled` | boolean | 插件在合并后的设置中是否启用 |324| `enabled` | boolean | 插件在您合并后的设置中是否已启用 |

325| `installPath` | string | 插件加载所在的目录,但会话从其市场文件夹中[就地加载](https://code.claude.com/docs/zh-CN/plugins/loading.md#in-place-and-copied-plugins)的插件除外 |325| `installPath` | string | 插件加载所在的目录,但会话从其市场文件夹[就地加载](https://code.claude.com/docs/zh-CN/plugins/loading.md#in-place-and-copied-plugins)的插件除外 |

326| `readFromFolder` | string | 对于会话从其市场文件夹中[就地加载](https://code.claude.com/docs/zh-CN/plugins/loading.md#in-place-and-copied-plugins)的插件,为该文件夹内插件的源目录。需要 Claude Code v2.1.289 或更高版本 |326| `readFromFolder` | string | 对于会话从其市场文件夹[就地加载](https://code.claude.com/docs/zh-CN/plugins/loading.md#in-place-and-copied-plugins)的插件,为该插件在该文件夹内的源目录。需要 Claude Code v2.1.289 或更高版本 |

327| `folderVersion` | string | 与 `readFromFolder` 一起出现,为 Claude Code 从该文件夹加载插件时插件的 `version`,可能与上面的 `version` 字段不同。插件未加载或未声明版本时不存在。需要 Claude Code v2.1.289 或更高版本 |327| `folderVersion` | string | 与 `readFromFolder` 一起出现,为 Claude Code 从该文件夹加载的插件 `version`,可能与上面的 `version` 字段不同。当插件未加载或未声明版本时不存在。需要 Claude Code v2.1.289 或更高版本 |

328| `installedAt` | string | 安装的 ISO 时间戳。仅限市场安装 |328| `installedAt` | string | 安装的 ISO 时间戳。仅限市场安装 |

329| `lastUpdated` | string | 最后更新的 ISO 时间戳。仅限市场安装 |329| `lastUpdated` | string | 上次更新的 ISO 时间戳。仅限市场安装 |

330| `projectPath` | string | 安装所属的项目。仅限 `project` 和 `local` 作用域 |330| `projectPath` | string | 安装所属的项目。仅限 `project` 和 `local` 作用域 |

331| `mcpServers` | object | 插件的 MCP 服务器定义,仅当市场安装的插件包含 MCP 服务器时出现 |331| `mcpServers` | object | 插件的 MCP 服务器定义,当从市场安装的插件有定义时出现 |

332| `errors` | array of strings | 加载错误,仅当插件加载失败时出现 |332| `errors` | array of strings | 加载错误,当插件加载失败时出现 |

333| `notes` | array of strings | 非加载错误的警告,例如编写问题或[未安装的软件包](https://code.claude.com/docs/zh-CN/plugins/loading.md#when-the-dependency-install-fails-or-is-skipped) |333| `notes` | array of strings | 非加载错误的警告,例如编写问题或[未安装的软件包](https://code.claude.com/docs/zh-CN/plugins/loading.md#when-the-dependency-install-fails-or-is-skipped) |

334| `errorDetails` | array of objects | 每个 `errors` 条目对应一个对象,给出其诊断 `type` 以及它所引用的名称,例如插件、市场、服务器或文件。需要 Claude Code v2.1.268 或更高版本 |334| `errorDetails` | array of objects | 每个 `errors` 条目对应一个对象,给出其诊断 `type` 及其引用的名称,例如插件、市场、服务器或文件。需要 Claude Code v2.1.268 或更高版本 |

335| `noteDetails` | array of objects | 每个 `notes` 条目对应的相同详细对象。需要 Claude Code v2.1.268 或更高版本 |335| `noteDetails` | array of objects | 每个 `notes` 条目对应的相同详情对象。需要 Claude Code v2.1.268 或更高版本 |

336| `hasUserConfig` | boolean | 当插件已加载且其清单声明了 [`userConfig` 选项](https://code.claude.com/docs/zh-CN/plugins/manifest-reference#user-configuration)时存在且为 `true`。对于加载失败的插件,无论其清单声明什么,该字段都不存在。永远不包含已保存的值。需要 Claude Code v2.1.285 或更高版本 |336| `hasUserConfig` | boolean | 当插件已加载且其清单声明了 [`userConfig` 选项](https://code.claude.com/docs/zh-CN/plugins/manifest-reference#user-configuration)时存在且为 `true`。对于加载失败的插件,无论其清单声明了什么都不存在。从不包含已保存的值。需要 Claude Code v2.1.285 或更高版本 |

337| `projectEnabled` | boolean | 项目共享的 `.claude/settings.json` 是否启用该插件。仅限市场安装。需要 Claude Code v2.1.285 或更高版本 |337| `projectEnabled` | boolean | 项目共享的 `.claude/settings.json` 是否启用该插件。仅限市场安装。需要 Claude Code v2.1.285 或更高版本 |

338| `dataDirSize` | object | 使用 `--data-size` 时,以 `bytes` 和 `human` 表示的插件[已保存数据目录](#what-an-uninstall-deletes-and-keeps)大小;目录缺失或为空时不存在。仅限市场安装。需要 Claude Code v2.1.285 或更高版本 |338| `dataDirSize` | object | 使用 `--data-size` 时,插件[已保存数据目录](#what-an-uninstall-deletes-and-keeps)的大小,以 `bytes` 和 `human` 表示;当目录缺失或为空时不存在。仅限市场安装。需要 Claude Code v2.1.285 或更高版本 |

339| `dataDirUnreadable` | boolean | 使用 `--data-size` 时,如果已保存的数据目录存在但无法测量,则为 `true`。仅限市场安装。需要 Claude Code v2.1.285 或更高版本 |339| `dataDirUnreadable` | boolean | 使用 `--data-size` 时,如果已保存数据目录存在但无法测量,则为 `true`。仅限市场安装。需要 Claude Code v2.1.285 或更高版本 |

340 340 

341使用 `--json --available` 时,Claude Code 打印一个对象而不是数组。其 `installed` 字段包含已安装插件对象的数组,其 `available` 字段为每个未安装的市场插件包含一个对象,带有以下字段。341使用 `--json --available` 时,Claude Code 会打印一个对象而不是数组。其 `installed` 字段包含已安装插件对象的数组,其 `available` 字段为每个未安装的市场插件包含一个对象,带有以下字段。

342 342 

343| 字段 | 类型 | 描述 |343| 字段 | 类型 | 说明 |

344| :- | :- | :- |344| :- | :- | :- |

345| `pluginId` | string | `name@marketplace` |345| `pluginId` | string | `name@marketplace` |

346| `name` | string | 插件在市场中的名称 |346| `name` | string | 插件在市场中的名称 |

347| `marketplaceName` | string | 提供该插件的市场 |347| `marketplaceName` | string | 提供该插件的市场 |

348| `source` | string or object | 市场条目的 [source](https://code.claude.com/docs/zh-CN/plugins/marketplace-reference.md):相对路径为字符串,否则为对象 |348| `source` | string or object | 市场条目的[来源](https://code.claude.com/docs/zh-CN/plugins/marketplace-reference.md):相对路径为字符串,否则为对象 |

349| `description` | string | 条目的描述(如有) |349| `description` | string | 条目的描述(如有) |

350| `version` | string | 条目的版本(如有声明) |350| `version` | string | 条目的版本(如有声明) |

351| `installCount` | number | 安装次数(当 Claude Code 有该插件的安装次数时) |351| `installCount` | number | 安装次数(当 Claude Code 有该插件的数据时) |

352 352 

353### plugin details353### plugin details

354 354 

355显示插件的组件清单及其预计 token 成本。355显示插件的组件清单及其预估 token 开销。

356 356 

357插件必须已加载:已安装、在 skills 目录中找到,或在同一命令中通过 `--plugin-dir` 或 `--plugin-url` 传入。`<name>` 是插件 `name` 或 `name@marketplace`。357插件必须已加载:已安装、在 skills 目录中被发现,或在同一命令中通过 `--plugin-dir` 或 `--plugin-url` 传入。`<name>` 是插件的 `name` 或 `name@marketplace`。

358 358 

359```bash theme={null}359```bash theme={null}

360claude plugin details <name>360claude plugin details <name>


362 362 

363该命令除 `--help` 外不接受任何标志。363该命令除 `--help` 外不接受任何标志。

364 364 

365显示已安装插件提供的内容:365显示已安装插件所提供的内容:

366 366 

367```bash theme={null}367```bash theme={null}

368claude plugin details formatter368claude plugin details formatter

369```369```

370 370 

371Claude Code 打印插件的名称、版本、描述和来源,然后打印以下部分:371Claude Code 会打印插件的名称、版本、描述和来源,然后显示以下部分:

372 372 

373* **`Component inventory`**:插件的 skill、Agent、hook、MCP 服务器和 LSP 服务器373* **`Component inventory`**:插件的 skill、Agent、hook、MCP 服务器和 LSP 服务器

374* **`Projected token cost`**:插件添加到每个会话的常驻 token374* **`Projected token cost`**:插件在每个会话中添加的常驻 token

375* **`Per-component (rounded)`**:每个 skill、Agent 和命令的常驻和调用时估算值。插件没有这些组件时省略375* **`Per-component (rounded)`**:每个 skill、Agent 和命令的常驻及调用时估算值。插件没有这些组件时省略

376 376 

377有关这两个成本数字的含义,请参阅[衡量插件成本和使用情况](https://code.claude.com/docs/zh-CN/plugins/measure.md)。377有关这两个开销数字的含义,请参阅[衡量插件开销和使用情况](https://code.claude.com/docs/zh-CN/plugins/measure.md)。

378 378 

379对于未加载的插件,Claude Code 打印以下消息并以 `1` 退出:379对于未加载的插件,Claude Code 会打印以下消息并以 `1` 退出:

380 380 

381```text theme={null}381```text theme={null}

382Plugin "formatter" not found. Run `claude plugin list` to see installed plugins, or pass --plugin-dir <path> to load one from disk.382Plugin "formatter" not found. Run `claude plugin list` to see installed plugins, or pass --plugin-dir <path> to load one from disk.

383```383```

384 384 

385以 `@builtin` 结尾的 ID 指代某个 [Claude Code 内置插件](https://code.claude.com/docs/zh-CN/plugins/mods/overview.md#mods-built-into-claude-code)。如果您传递此类 ID 而 Claude Code 找不到该插件,消息将改为:385以 `@builtin` 结尾的 ID 指向某个 [Claude Code 内置插件](https://code.claude.com/docs/zh-CN/plugins/mods/overview.md#mods-built-into-claude-code)。如果您传入这样的 ID 而 Claude Code 未找到该插件,消息会改为:

386 386 

387```text theme={null}387```text theme={null}

388Plugin "<name>@builtin" not found. Built-in plugins don't appear in `claude plugin list`. To see the ones available in a session, run /plugin in Claude Code and open the Installed tab.388Plugin "<name>@builtin" not found. Built-in plugins don't appear in `claude plugin list`. To see the ones available in a session, run /plugin in Claude Code and open the Installed tab.


390 390 

391### plugin configure391### plugin configure

392 392 

393显示已安装插件的 [`userConfig`](https://code.claude.com/docs/zh-CN/plugins/manifest-reference#user-configuration) 选项及哪些已设置,或保存通过 stdin 管道传入的值。需要 Claude Code v2.1.285 或更高版本。393显示已安装插件的 [`userConfig`](https://code.claude.com/docs/zh-CN/plugins/manifest-reference#user-configuration) 选项及其中哪些已设置,或保存通过 stdin 传入的值。需要 Claude Code v2.1.285 或更高版本。

394 394 

395```bash theme={null}395```bash theme={null}

396claude plugin configure <plugin>396claude plugin configure <plugin>

397```397```

398 398 

399| 标志 | 描述 |399| 标志 | 说明 |

400| :- | :- |400| :- | :- |

401| `--values-stdin` | 从 stdin 读取以单行字符串组成的 JSON 对象形式的选项值并保存。未提供的选项保留其已保存的值 |401| `--values-stdin` | 从 stdin 读取选项值(一个由单行字符串组成的 JSON 对象)并保存。您未提供的选项会保留其已保存的值 |

402| `--json` | 将结果作为一个 JSON 对象打印在 stdout 上。不使用 `--values-stdin` 时,该对象携带选项的 `schema` 和 `choices`、它们的初始 `inputs`,以及 `configured` 和 `unconfigured` 选项名称。使用 `--values-stdin` 时,它携带 `saved` 选项名称,以及在可读回时的 `unconfigured` 选项名称 |402| `--json` | 在 stdout 上以一个 JSON 对象打印结果。不使用 `--values-stdin` 时,该对象带有选项的 `schema` 和 `choices`、其初始 `inputs`,以及 `configured` 和 `unconfigured` 选项名称。使用 `--values-stdin` 时,它带有 `saved` 选项名称,以及(在能够读回时)`unconfigured` 选项名称 |

403 403 

404不使用标志时,命令列出每个选项,最多带三个标签:`required` 或 `optional`,然后是用于清单声明为敏感的选项的 `sensitive`,然后是 `set` 或 `not set`。它不打印已保存的值。使用 `--json` 时,输出包括非敏感选项的已保存值,但永远不包括敏感选项的文本。404不带标志时,命令会列出每个选项,并最多带有三个标签:先是 `required` 或 `optional`,然后对于清单声明为敏感的选项显示 `sensitive`,最后是 `set` 或 `not set`。它不会打印已保存的值。使用 `--json` 时,输出包含非敏感选项的已保存值,但从不包含敏感选项的文本。

405 405 

406要保存值,请将其写入一个文件,作为将选项键映射到字符串值的 JSON 对象,然后通过 stdin 传入该文件。将 `formatter@my-marketplace` 替换为 `claude plugin list` 中显示的您自己插件的 id。此示例从包含 `{"api_url": "https://example.com"}` 的文件 `values.json` 设置一个名为 `api_url` 的选项:406要保存值,请将其写入一个文件,内容为将选项键映射到字符串值的 JSON 对象,然后通过 stdin 传入该文件。将 `formatter@my-marketplace` 替换为 `claude plugin list` 所显示的您自己插件的 id。此示例从包含 `{"api_url": "https://example.com"}` 的文件 `values.json` 设置一个名为 `api_url` 的选项:

407 407 

408```bash theme={null}408```bash theme={null}

409claude plugin configure formatter@my-marketplace --values-stdin < values.json409claude plugin configure formatter@my-marketplace --values-stdin < values.json

410```410```

411 411 

412Claude Code 根据选项声明的类型验证每个值,并打印 `Configuration saved. Restart Claude Code to apply it.` 如果传递了清单未声明的键,或未通过验证的值,命令不保存任何内容,打印 `Failed to save configuration:` 及原因,并以 `1` 退出。使用 `--json` 时,被拒绝的值还会在 stdout 上打印一个对象,其 `refused` 字段携带 `message`,以及在某个选项出错时该选项的 `option` 键。412Claude Code 会根据选项声明的类型验证每个值,并打印 `Configuration saved. Restart Claude Code to apply it.` 如果您传入了清单未声明的键,或者某个值未通过验证,命令不会保存任何内容,会打印带有原因的 `Failed to save configuration:`,并以 `1` 退出。使用 `--json` 时,被拒绝的值还会在 stdout 上打印一个对象,其 `refused` 字段带有 `message`,以及(当问题出在某一个选项时)该选项的 `option` 键。

413 413 

414请传递 `claude plugin list` 中显示的插件完整 `name@marketplace` id。`configure` 不接受裸 `name`。当没有已加载的插件具有该 id 时,命令打印 `No installed plugin has the id "<plugin>".` 并以 `1` 退出。414请按照 `claude plugin list` 显示的那样传入插件完整的 `name@marketplace` id。`configure` 不接受裸 `name`。当没有已加载的插件具有该 id 时,命令会打印 `No installed plugin has the id "<plugin>".` 并以 `1` 退出。

415 415 

416有关捆绑 MCP 服务器的设置,请参阅 [`plugin install --config`](#plugin-install) 或 `/plugin` 中的 **Configure** 项。416有关捆绑的 MCP 服务器的设置,请参阅 [`plugin install --config`](#plugin-install) 或 `/plugin` 中的 **Configure** 项。

417 417 

418### plugin prune418### plugin prune

419 419 

420移除不再被任何已安装插件需要的自动安装[依赖项](https://code.claude.com/docs/zh-CN/plugins/dependencies.md)。该命令永远不会移除您自己安装的插件。`autoremove` 是 `prune` 的别名。420移除已没有任何已安装插件需要的自动安装的[依赖](https://code.claude.com/docs/zh-CN/plugins/dependencies.md)。该命令绝不会移除您自己安装的插件。`autoremove` 是 `prune` 的别名。

421 421 

422```bash theme={null}422```bash theme={null}

423claude plugin prune [options]423claude plugin prune [options]

424```424```

425 425 

426| 标志 | 描述 |426| 标志 | 说明 |

427| :- | :- |427| :- | :- |

428| `-s, --scope <scope>` | 在指定作用域清理:`user`、`project` 或 `local`。默认为 `user` |428| `-s, --scope <scope>` | 在以下作用域清理:`user`、`project` 或 `local`。默认为 `user` |

429| `--dry-run` | 列出将被移除的内容,但不实际移除 |429| `--dry-run` | 列出将被移除的内容,但不实际移除 |

430| `-y, --yes` | 跳过确认提示。当 stdin 或 stdout 不是 TTY 时必须提供 |430| `-y, --yes` | 跳过确认提示。当 stdin 或 stdout 不是 TTY 时为必需 |

431 431 

432预览清理将移除的内容:432预览清理将移除的内容:

433 433 


435claude plugin prune --dry-run435claude plugin prune --dry-run

436```436```

437 437 

438Claude Code 列出孤立的依赖项,并以 `(dry run — nothing removed)` 结尾。没有可移除的内容时,它会打印以 `Nothing to prune` 开头的行。438Claude Code 会列出孤立的依赖,并以 `(dry run — nothing removed)` 结尾。如果没有可移除的内容,它会打印以 `Nothing to prune` 开头的一行。

439 439 

440不使用 `--dry-run` 时,命令仅在您于提示处确认或传递 `-y` 后才移除孤立的依赖项。440不使用 `--dry-run` 时,命令仅在您在提示中确认或传入 `-y` 后才移除孤立的依赖。

441 441 

442无论您在提示处如何回答,退出码都是 `0`。442无论您在提示中如何回答,退出码都是 `0`。

443 443 

444`prune` 的行为取决于是否连接了终端以及是否传递了 `-y`:444`prune` 的行为取决于是否连接了终端以及您是否传入 `-y`:

445 445 

446| 终端和标志 | 发生的情况 |446| 终端和标志 | 结果 |

447| :- | :- |447| :- | :- |

448| 交互式终端,无 `-y` | 列出孤立的依赖项并询问 `Remove? [y/N]` |448| 交互式终端,未传入 `-y` | 列出孤立的依赖并询问 `Remove? [y/N]` |

449| 任何终端,`-y` | 移除它们并打印 `Removed N auto-installed plugins: <names>` |449| 任意终端,传入 `-y` | 移除它们并打印 `Removed N auto-installed plugins: <names>` |

450| 非 TTY stdin 或 stdout,无 `-y` | 打印列表并显示 ``Not a TTY — run `claude plugin prune -y` to remove.``,不移除任何内容 |450| stdin 或 stdout 不是 TTY,未传入 `-y` | 打印列表和 ``Not a TTY — run `claude plugin prune -y` to remove.``,不移除任何内容 |

451 451 

452### plugin eval452### plugin eval

453 453 

454运行插件的 [eval 案例](https://code.claude.com/docs/zh-CN/plugin-evals.md)并报告评分结果。需要 Claude Code v2.1.269 或更高版本。454运行插件的 [eval 用例](https://code.claude.com/docs/zh-CN/plugin-evals.md)并报告评分结果。需要 Claude Code v2.1.269 或更高版本。

455 455 

456每个案例由一个提示词加评分器组成。Claude Code 在仅加载目标插件的隔离会话中多次运行它,并且默认还会在不加载插件的情况下运行,以便报告显示两者的差异。456每个用例由一个提示词加上评分器组成。Claude Code 会在仅加载目标插件的隔离会话中多次运行它,并且默认还会在不加载该插件的情况下运行,以便报告显示差异。

457 457 

458有关案例格式、评分器、结果和 CI 用法,请参阅[使用 evals 测试插件](https://code.claude.com/docs/zh-CN/plugin-evals.md)。458有关用例格式、评分器、结果和 CI 用法,请参阅[使用 eval 测试插件](https://code.claude.com/docs/zh-CN/plugin-evals.md)。

459 459 

460```bash theme={null}460```bash theme={null}

461claude plugin eval [target] [options]461claude plugin eval [target] [options]


465 465 

466* 插件目录466* 插件目录

467* 单个 `prompt.md` 或 `case.yaml` 文件467* 单个 `prompt.md` 或 `case.yaml` 文件

468* 以 `name` 或 `name@marketplace` 形式指定的已安装插件468* 以 `name` 或 `name@marketplace` 表示的已安装插件

469* `name@skills-dir`469* `name@skills-dir`

470 470 

471请将目标放在 `--tag`、`--allow-tools` 和 `--json` 之前。这些选项会将其后的单词都作为自己的值,因此写在它们之后的目标会被读作标签、工具名称或 JSON 输出路径,而不是目标。471请将目标放在 `--tag`、`--allow-tools` 和 `--json` 之前。这些选项中的每一个都会把其后的词作为自己的值,因此写在其中某个选项之后的目标会被读作标签、工具名称或 JSON 输出路径,而不是目标。

472 472 

473此表列出大多数运行使用的选项。运行 `claude plugin eval --help` 可查看完整选项集,包括 `--case`、`--tag`、`--output-dir`、`--report`、`--allow-real-servers`、`--keep-temp` 和 `--verbose`。473下表列出了大多数运行会用到的选项。运行 `claude plugin eval --help` 可查看完整的选项集,包括 `--case`、`--tag`、`--output-dir`、`--report`、`--allow-real-servers`、`--keep-temp` 和 `--verbose`。

474 474 

475| 选项 | 描述 | 默认值 |475| 选项 | 说明 | 默认值 |

476| :- | :- | :- |476| :- | :- | :- |

477| `--runs <n>` | 每个 [arm](https://code.claude.com/docs/zh-CN/plugin-evals.md#compare-against-a-no-plugin-baseline) 中每个案例的运行次数 | 每个案例的 `runs`,否则为 3 |477| `--runs <n>` | 每个[分组](https://code.claude.com/docs/zh-CN/plugin-evals.md#compare-against-a-no-plugin-baseline)中每个用例的运行次数 | 每个用例的 `runs`,否则为 3 |

478| `-j, --concurrency <n>` | 同时运行的 Agent 会话数,1 到 8。它们共享您的速率限制 | `1` |478| `-j, --concurrency <n>` | 同时运行的 Agent 会话数,1 到 8。它们共享您的速率限制 | `1` |

479| `--model <model>` | 被测 Agent 使用的模型 | 每个案例的 `model`;否则如已设置则为 `ANTHROPIC_MODEL`;否则为 Claude Code 的默认模型 |479| `--model <model>` | 被测 Agent 使用的模型 | 每个用例的 `model`,否则为 `ANTHROPIC_MODEL`(如已设置),否则为 Claude Code 的默认模型 |

480| `--judge-model <model>` | `llm` 和 `baseline` 评分器使用的模型 | [后台任务](https://code.claude.com/docs/zh-CN/plugin-evals.md#grade-the-result)使用的模型 |480| `--judge-model <model>` | `llm` 和 `baseline` 评分器使用的模型 | 用于[后台任务](https://code.claude.com/docs/zh-CN/plugin-evals.md#grade-the-result)的模型 |

481| `--ablation <mode>` | `none` 或 `with-without`。请参阅[根据无插件基线评分](https://code.claude.com/docs/zh-CN/plugin-evals.md#compare-against-a-no-plugin-baseline) | 按案例决定,如该章节所述 |481| `--ablation <mode>` | `none` 或 `with-without`。请参阅[与无插件基线进行对比评分](https://code.claude.com/docs/zh-CN/plugin-evals.md#compare-against-a-no-plugin-baseline) | 按用例决定,如该章节所述 |

482| `--threshold <0..1>` | 如果任何案例的得分低于此值,则以 1 退出 | `1.0` |482| `--threshold <0..1>` | 如果任何用例的得分低于此值,则以 1 退出 | `1.0` |

483| `--max-cost-usd <usd>` | 一旦支出达到此值,在下一次运行前停止,以 2 退出,并报告部分结果 | 无限制 |483| `--max-cost-usd <usd>` | 当花费达到此值时,在下一次运行前停止,以 2 退出,并报告部分结果 | 无限制 |

484| `--allow-tools <tools...>` | 授予只读工具集之外的工具,例如 `Bash`、`Write`、`Edit` 或 `"mcp__plugin_<plugin>_<server>__*"`。请参阅[授予工具](https://code.claude.com/docs/zh-CN/plugin-evals.md#grant-tools) | |484| `--allow-tools <tools...>` | 授予只读集合之外的工具,例如 `Bash`、`Write`、`Edit` 或 `"mcp__plugin_<plugin>_<server>__*"`。请参阅[授予工具](https://code.claude.com/docs/zh-CN/plugin-evals.md#grant-tools) | |

485| `--scaffold` | 运行每个案例的 [`scaffold_script`](https://code.claude.com/docs/zh-CN/plugin-evals#add-setup-or-history-with-case-yaml) | 关闭 |485| `--scaffold` | 运行每个用例的 [`scaffold_script`](https://code.claude.com/docs/zh-CN/plugin-evals#add-setup-or-history-with-case-yaml) | 关闭 |

486| `--trust-plugin` | 跳过首次运行的信任提示,用于 CI。请参阅[运行可以访问的内容](https://code.claude.com/docs/zh-CN/plugin-evals.md#security) | 关闭 |486| `--trust-plugin` | 跳过首次运行的信任提示,适用于 CI。请参阅[运行可以访问的内容](https://code.claude.com/docs/zh-CN/plugin-evals.md#security) | 关闭 |

487| `--mocks <mode>` | `record` 或 `off`。请参阅[模拟 MCP 服务器](https://code.claude.com/docs/zh-CN/plugin-evals.md#mock-mcp-servers) | `record` |487| `--mocks <mode>` | `record` 或 `off`。请参阅[模拟 MCP 服务器](https://code.claude.com/docs/zh-CN/plugin-evals.md#mock-mcp-servers) | `record` |

488| `--eval-dir <dir>` | 插件下存放案例的目录 | 清单的 `experimental.evals`,否则为 `evals` |488| `--eval-dir <dir>` | 插件下存放用例的目录 | 清单中的 `experimental.evals`,否则为 `evals` |

489| `--json [path]` | 将[结果文档](https://code.claude.com/docs/zh-CN/plugin-evals.md#json-result)打印到 stdout,或写入 `.json` 路径 | |489| `--json [path]` | 将[结果文档](https://code.claude.com/docs/zh-CN/plugin-evals.md#json-result)打印到 stdout,或写入某个 `.json` 路径 | |

490| `--no-publish` | 将 HTML 报告保留在本地 | |490| `--no-publish` | 将 HTML 报告保留在本地 | |

491 491 

492退出码反映运行的结束方式。如需在流水线中据此采取操作,请参阅[在 CI 中运行 evals](https://code.claude.com/docs/zh-CN/plugin-evals.md#run-evals-in-ci)。492退出码报告运行的结束方式。要在流水线中据此采取行动,请参阅[在 CI 中运行 eval](https://code.claude.com/docs/zh-CN/plugin-evals.md#run-evals-in-ci)。

493 493 

494| 退出码 | 含义 |494| 退出码 | 含义 |

495| :- | :- |495| :- | :- |

496| `0` | 套件通过:每个案例都达到阈值,且没有其他原因导致运行失败 |496| `0` | 套件通过:每个用例都达到阈值,且没有其他原因导致运行失败 |

497| `1` | 存在失败的案例、加载错误、不受信任的插件目录、[因 API 错误而结束](https://code.claude.com/docs/zh-CN/plugin-evals.md#runs-ended-on-an-api-error)的运行,或[在 CI 中运行 evals](https://code.claude.com/docs/zh-CN/plugin-evals.md#run-evals-in-ci) 下列出的其他原因 |497| `1` | 存在失败的用例、加载错误、不受信任的插件目录、[因 API 错误结束](https://code.claude.com/docs/zh-CN/plugin-evals.md#runs-ended-on-an-api-error)的运行,或[在 CI 中运行 eval](https://code.claude.com/docs/zh-CN/plugin-evals.md#run-evals-in-ci) 下列出的其他原因 |

498| `2` | 部分运行 |498| `2` | 部分运行 |

499| `130` | 被中断 |499| `130` | 被中断 |

500| `143` | 被终止 |500| `143` | 被终止 |


507claude plugin eval init [name] [options]507claude plugin eval init [name] [options]

508```508```

509 509 

510请从插件的根文件夹运行该命令,即包含 `.claude-plugin/plugin.json` 或 skill 的 `SKILL.md` 的目录。如需有意在其他目录中搭建套件,请传递 `--eval-dir`。510请从插件的根文件夹运行该命令,即包含 `.claude-plugin/plugin.json` 或 skill 的 `SKILL.md` 的目录。如需有意在其他目录中创建套件脚手架,请传入 `--eval-dir`。

511 511 

512在终端中,该命令会打开一个交互式 Claude Code 会话进行编写访谈。在访谈中,Claude 会执行以下操作:512在终端中,该命令会打开一个交互式 Claude Code 会话进行编写访谈。在访谈中,Claude 会执行以下操作:

513 513 

5141. 读取插件5141. 读取插件

5152. 询问您插件应擅长做什么5152. 询问您它应该擅长做什么

5163. 提议案例和评分器5163. 提出用例和评分器

5174. 写入案例文件5174. 编写用例文件

5185. 运行案例并与您一起审查评分,以检查评分器的打分方式是否与您一致5185. 运行用例并与您一起审查评分,以检查评分器的打分方式是否与您一致

519 519 

520使用 `--bare` 或没有终端时,该命令改为写入一个空白的单案例模板。当 Claude 从 Claude Code 会话内运行该命令时,命令会打印供该会话遵循的访谈说明,而不是写入模板。520使用 `--bare` 或没有终端时,命令会改为写入一个空白的单用例模板。当 Claude 在 Claude Code 会话内运行该命令时,命令会打印访谈说明供该会话遵循,而不是写入模板。

521 521 

522可选的 `name` 是案例名称。使用 `--bare` 或没有终端时必须提供,因为命令会为该案例写入空白模板。案例名称以字母或数字开头,且仅包含字母、数字、`.`、`_` 和 `-`。在所有平台上,命令还会拒绝 Windows 无法存储的名称,例如 `con` 或以 `.` 结尾的名称。522可选的 `name` 是用例名称。使用 `--bare` 或没有终端时它是必需的,因为命令会为该用例写入空白模板。用例名称以字母或数字开头,且仅包含字母、数字、`.`、`_` 和 `-`。在所有平台上,命令还会拒绝 Windows 无法存储的名称,例如 `con` 或以 `.` 结尾的名称。

523 523 

524该命令接受以下选项:524该命令接受以下选项:

525 525 

526| 选项 | 描述 | 默认值 |526| 选项 | 说明 | 默认值 |

527| :- | :- | :- |527| :- | :- | :- |

528| `--bare` | 为 `<name>` 写入空白的 `prompt.md` 和 `graders/criteria.md`,而不是运行访谈 | |528| `--bare` | 为 `<name>` 写入空白的 `prompt.md` 和 `graders/criteria.md`,而不是运行访谈 | |

529| `-i, --interactive` | 要求进行访谈。没有终端时失败,而不是写入模板 | |529| `-i, --interactive` | 要求进行访谈。没有终端时会失败,而不是写入模板 | |

530| `--eval-dir <dir>` | 当前目录下写入案例的目录 | 清单的 `experimental.evals`,否则为 `evals` |530| `--eval-dir <dir>` | 当前目录下用于写入用例的目录 | 清单中的 `experimental.evals`,否则为 `evals` |

531 531 

532### plugin tag532### plugin tag

533 533 

534为插件发布创建名为 `<name>--v<version>` 的带注释 git 标签。在打标签之前,命令会检查插件的 `plugin.json` 与列出该插件的任何市场条目在版本上是否一致。534为插件发布创建名为 `<name>--v<version>` 的附注 git 标签。在打标签之前,命令会检查插件的 `plugin.json` 与列出该插件的任何市场条目在版本上是否一致。

535 535 

536有关何时为发布打标签,请参阅[发布插件](https://code.claude.com/docs/zh-CN/plugins/publish.md)。536有关何时为发布打标签,请参阅[发布插件](https://code.claude.com/docs/zh-CN/plugins/publish.md)。

537 537 


539claude plugin tag [path] [options]539claude plugin tag [path] [options]

540```540```

541 541 

542`[path]` 是插件目录,默认为当前目录。命令从该目录向上查找,直到找到列出该插件的 `.claude-plugin/marketplace.json`,以此定位市场条目。542`[path]` 是插件目录,默认为当前目录。命令从该目录向上查找列出该插件的 `.claude-plugin/marketplace.json`,以找到市场条目。

543 543 

544| 标志 | 描述 |544| 标志 | 说明 |

545| :- | :- |545| :- | :- |

546| `--push` | 创建标签后将其推送到 `--remote` |546| `--push` | 创建标签后将其推送到 `--remote` |

547| `--dry-run` | 打印将要打的标签,但不创建标签 |547| `--dry-run` | 打印将要打的标签,但不创建标签 |

548| `-f, --force` | 跳过工作树不干净和标签已存在的检查 |548| `-f, --force` | 跳过工作树不干净和标签已存在的检查 |

549| `-m, --message <msg>` | 标签注释消息。`%s` 代表版本。默认为 `<name> <version>` |549| `-m, --message <msg>` | 标签附注消息。`%s` 代表版本。默认为 `<name> <version>` |

550| `--remote <name>` | 使用 `--push` 时推送到的远程。默认为 `origin` |550| `--remote <name>` | 使用 `--push` 时推送到的远程。默认为 `origin` |

551 551 

552预览市场检出中某个插件的标签:552在市场检出中预览插件的标签:

553 553 

554```bash theme={null}554```bash theme={null}

555claude plugin tag plugins/formatter --dry-run555claude plugin tag plugins/formatter --dry-run

556```556```

557 557 

558Claude Code 打印计划:558Claude Code 会打印计划:

559 559 

560* 插件名称560* 插件名称

561* 版本及其来源文件561* 版本及其来源文件


563* 标签名称563* 标签名称

564* 它将运行的 `git tag` 和 `git push` 命令564* 它将运行的 `git tag` 和 `git push` 命令

565 565 

566不使用 `--dry-run` 时,Claude Code 打印 `Created tag formatter--v1.0.0`,并打印 `Pushed to origin` 或需要您自己运行的推送命令。如果推送失败,标签仍会在本地创建,命令以错误退出。566不使用 `--dry-run` 时,Claude Code 会打印 `Created tag formatter--v1.0.0`,以及 `Pushed to origin` 或需要您自行运行的推送命令。如果推送失败,标签仍会在本地创建,命令会以错误退出。

567 567 

568当无法安全打标签时,命令以 `1` 退出并打印原因。常见原因如下:568当无法安全地打标签时,命令会以 `1` 退出并打印原因。常见原因有:

569 569 

570* `plugin.json` 或市场条目中没有 `version`570* `plugin.json` 或市场条目中没有 `version`

571* 标签已存在571* 标签已存在


573 573 

574### plugin test574### plugin test

575 575 

576运行 [mod](https://code.claude.com/docs/zh-CN/plugins/mods/overview.md) 的测试,mod 是通过代码注册事件处理程序的插件。该命令无需会话、登录或网络。有关如何编写测试,请参阅[测试 mod](https://code.claude.com/docs/zh-CN/plugins/mods/test.md)。576运行 [mod](https://code.claude.com/docs/zh-CN/plugins/mods/overview.md)(即其代码会注册事件处理程序的插件)的测试。该命令不需要会话、登录或网络。有关如何编写测试,请参阅[测试 mod](https://code.claude.com/docs/zh-CN/plugins/mods/test.md)。

577 577 

578```bash theme={null}578```bash theme={null}

579claude plugin test [directory]579claude plugin test [directory]

580```580```

581 581 

582`[directory]` 是 mod 的目录,默认为当前目录。该命令会运行其下所有名称以 `.test.ts` 或 `.test.tsx` 结尾的文件,并在有测试失败时以状态 1 退出。582`[directory]` 是 mod 的目录,默认为当前目录。命令会运行其下名称以 `.test.ts` 或 `.test.tsx` 结尾的每个文件,并在测试失败时以状态 1 退出。

583 583 

584运行 `./first-mod` 中 mod 的测试:584运行 `./first-mod` 中 mod 的测试:

585 585 


589 589 

590### plugin validate590### plugin validate

591 591 

592验证插件清单、市场清单或目录中的 skill、Agent 和命令,并以 CI 作业可据此操作的退出码退出。有关创建、测试和编辑工作流,请参阅[创建插件](https://code.claude.com/docs/zh-CN/plugins/create.md)。有关验证器在各清单中检查的内容,请参阅[插件清单参考](https://code.claude.com/docs/zh-CN/plugins/manifest-reference.md)和[市场参考](https://code.claude.com/docs/zh-CN/plugins/marketplace-reference.md)。592验证插件清单、市场清单或某个目录中的 skill、Agent 和命令,并以 CI 作业可据以操作的退出码退出。有关创建、测试和编辑工作流,请参阅[创建插件](https://code.claude.com/docs/zh-CN/plugins/create.md)。有关验证器在每种清单中检查的内容,请参阅[插件清单参考](https://code.claude.com/docs/zh-CN/plugins/manifest-reference.md)和[市场参考](https://code.claude.com/docs/zh-CN/plugins/marketplace-reference.md)。

593 593 

594```bash theme={null}594```bash theme={null}

595claude plugin validate <path> [options]595claude plugin validate <path> [options]

596```596```

597 597 

598| 标志 | 描述 |598| 标志 | 说明 |

599| :- | :- |599| :- | :- |

600| `--strict` | 将警告视为错误,使运行时可容忍的未识别字段和缺失元数据导致运行失败 |600| `--strict` | 将警告视为错误,使运行时可容忍的无法识别字段和缺失元数据导致运行失败 |

601| `--json` | 将验证报告输出为一个 JSON 对象,退出码相同。需要 Claude Code v2.1.259 或更高版本 |601| `--json` | 将验证报告输出为一个 JSON 对象,退出码相同。需要 Claude Code v2.1.259 或更高版本 |

602 602 

603在提交前验证插件:603在提交前验证插件:


608 608 

609#### 验证目录609#### 验证目录

610 610 

611`<path>` 是清单文件或目录。给定目录时,Claude Code 根据在其中找到的内容选择要验证的对象:611`<path>` 是一个[清单文件](#validate-a-manifest-file)或目录。给定目录时,Claude Code 根据在其中找到的内容决定要验证什么:

612 612 

613* `.claude-plugin/marketplace.json`(如果存在)613* `.claude-plugin/marketplace.json`(如果存在)

614* 否则为 `.claude-plugin/plugin.json`614* 否则为 `.claude-plugin/plugin.json`


619 619 

620当目录同时包含 `.claude-plugin/marketplace.json` 和 `.claude-plugin/plugin.json` 时,Claude Code 会验证市场,同时也验证插件的清单和组件文件。这需要 Claude Code v2.1.289 或更高版本。620当目录同时包含 `.claude-plugin/marketplace.json` 和 `.claude-plugin/plugin.json` 时,Claude Code 会验证市场,同时也验证插件的清单和组件文件。这需要 Claude Code v2.1.289 或更高版本。

621 621 

622Claude Code 不会跟随您指定的目录内的符号链接。其行为取决于链接所在的位置:622Claude Code 不会跟随您所指定目录内的符号链接。其行为取决于链接所在的位置:

623 623 

624* **插件或 `.claude` 根目录下作为链接的 `skills`、`agents` 或 `commands` 目录**:Claude Code 会警告其中的任何内容都未被读取。624* **插件或 `.claude` 根目录下的 `skills`、`agents` 或 `commands` 目录是链接**:Claude Code 会警告其中的任何内容都未被读取。

625* **`skills`、`agents` 或 `commands` 目录内的链接条目**:Claude Code 会跳过它,并按目录警告跳过了多少会话本会加载的条目。625* **`skills`、`agents` 或 `commands` 目录内的某个条目是链接**:Claude Code 会跳过它,并按目录警告跳过了多少个会话本会加载的条目。

626* **您指定的 `skills`、`agents` 或 `commands` 目录本身是符号链接,或其父级 `.claude` 目录是符号链接**:Claude Code 报告错误,不检查其中的任何内容。请改为指定真实目录。626* **您指定的 `skills`、`agents` 或 `commands` 目录本身是符号链接,或其父目录 `.claude` 是符号链接**:Claude Code 会报告错误,且不检查其中任何内容。请改为指定真实目录。

627 627 

628有少数文件不会被验证运行读取:628验证运行不会读取以下几类文件:

629 629 

630* **插件根目录下的 `SKILL.md`**:针对插件目录运行 `claude plugin validate` 时,Claude Code 不会检查插件根目录下的 `SKILL.md`630* **插件根目录下的 `SKILL.md`**:当您针对插件目录运行 `claude plugin validate` 时,Claude Code 不会检查插件根目录下的 `SKILL.md`

631* **插件根目录下的 `CLAUDE.md`**:在插件运行中,Claude Code 还会对插件根目录下的 `CLAUDE.md` 发出警告631* **插件根目录下的 `CLAUDE.md`**:在插件运行中,Claude Code 还会对插件根目录下的 `CLAUDE.md` 发出警告

632* **市场运行中的插件文件**:从市场目录运行时,Claude Code 不会打开市场在其他目录中列出的插件的 skill、Agent、命令或 hook 文件,也不会打开它们捆绑的 MCP 服务器文件。要查找这些文件中的错误,请分别验证每个插件目录632* **市场运行中的插件文件**:从市场目录运行时,Claude Code 不会打开该市场在其他目录中列出的插件的 skill、Agent、命令或 hook 文件,也不会打开它们捆绑的 MCP 服务器文件。要查找这些文件中的错误,请逐一验证每个插件目录

633 

634#### 验证清单文件

635 

636当文件既不名为 `plugin.json` 或 `marketplace.json`,也不在 `.claude-plugin` 目录中时,Claude Code 会根据其字段判断它是什么。在以下情况下,它会将文件作为市场进行验证,否则作为插件清单进行验证:

637 

638* `plugins` 是一个数组

639* `plugins` 和 `owner` 同时存在

640* 文件具有仅 `marketplace.json` 定义的字段(例如 `owner`),且没有仅 `plugin.json` 定义的字段(例如 `author`)

641 

642要自行选择检查类型,请将文件命名为 `plugin.json` 或 `marketplace.json`。Claude Code 会将 `.claude-plugin` 目录中的任何其他文件作为插件清单进行验证。

633 643 

634#### 输出和退出码644#### 输出和退出码

635 645 

636Claude Code 打印所验证的文件、所有错误和警告及其路径,以及一行结论。退出码与结论一致:646Claude Code 会打印其验证的文件、带有路径的所有错误和警告,以及一行结论。退出码与结论一致:

637 647 

638| 退出码 | 结论行 | 含义 |648| 退出码 | 结论行 | 含义 |

639| :- | :- | :- |649| :- | :- | :- |

640| `0` | `Validation passed` 或 `Validation passed with warnings` | 清单可以加载。使用 `--strict` 时,也没有警告 |650| `0` | `Validation passed` 或 `Validation passed with warnings` | 清单可以加载。使用 `--strict` 时,也没有警告 |

641| `1` | `Validation failed` 或 `Validation failed (--strict treats warnings as errors)` | 存在错误,或在 `--strict` 下存在警告。无论是否使用 `--strict`,[建议](#advice-on-the-readme)都不计入 |651| `1` | `Validation failed` 或 `Validation failed (--strict treats warnings as errors)` | 存在错误,或在 `--strict` 下存在警告。无论是否使用 `--strict`,[建议](#advice-on-the-readme)都不计入 |

642| `2` | `Unexpected error during validation: <reason>` | 验证器本身失败,例如遇到不可读的路径 |652| `2` | `Unexpected error during validation: <reason>` | 验证器本身失败,例如遇到无法读取的路径 |

643 653 

644使用 `--json` 时,Claude Code 将报告作为一个 JSON 对象写入 stdout,包含以下顶级字段:654使用 `--json` 时,Claude Code 会将报告以一个 JSON 对象写入 stdout,包含以下顶层字段:

645 655 

646* `success`:与退出码相同的结论656* `success`:与退出码相同的结论

647* `strict`:运行是否将警告视为错误657* `strict`:本次运行是否将警告视为错误

648* `target`:Claude Code 验证的解析后路径658* `target`:Claude Code 验证的已解析路径

649* `manifest`:清单自身的结果,对于没有清单的运行为 `null`659* `manifest`:清单自身的结果,对于没有清单的运行为 `null`

650* `contents`:每个文件的结果,各自指明其 `file`,并携带 `errors`、`warnings` 和 `notes` 数组。没有错误、警告或说明的文件不会有条目,因此没有可报告的内容时 `contents` 为空。对于[同时包含 `marketplace.json` 和 `plugin.json` 的目录](#validate-a-directory),`manifest` 为 `marketplace.json` 的结果,`plugin.json` 的结果放在 `contents` 中660* `contents`:按文件的结果,每项指明其 `file`,并带有 `errors`、`warnings` 和 `notes` 数组。没有错误、警告或说明的文件没有条目,因此当没有可报告的内容时 `contents` 为空。对于[同时含有 `marketplace.json` 和 `plugin.json` 的目录](#validate-a-directory),`manifest` 是 `marketplace.json` 的结果,`plugin.json` 的结果放在 `contents` 中

651 * `gatingHooks`:每个可以拒绝操作的 [mod](https://code.claude.com/docs/zh-CN/plugins/mods/overview.md) hook(例如 `tool.call` hook)是否具有 [`.catch` 处理程序](https://code.claude.com/docs/zh-CN/plugins/mods/events#handle-a-hook-that-fails)。每一项给出 `module`、`pattern`、`hook` 和 `hasCatch`。需要 Claude Code v2.1.290 或更高版本661 * `gatingHooks`:每个可以拒绝操作的 [mod](https://code.claude.com/docs/zh-CN/plugins/mods/overview.md) hook(例如 `tool.call` hook)是否具有 [`.catch` 处理程序](https://code.claude.com/docs/zh-CN/plugins/mods/events#handle-a-hook-that-fails)。每项给出 `module`、`pattern`、`hook` 和 `hasCatch`。需要 Claude Code v2.1.290 或更高版本

652* `advice`:本次运行给出的[建议](#advice-on-the-readme),每个条目以 `file` 指明 README,并携带 `message` 以及要粘贴的 `installLine`。没有建议时为空。需要 Claude Code v2.1.295 或更高版本662* `advice`:本次运行的[建议](#advice-on-the-readme),每个条目以 `file` 指明 README,并带有 `message` 和可粘贴的 `installLine`。没有建议时为空。需要 Claude Code v2.1.295 或更高版本

653 663 

654以 `2` 退出时,命令不向 stdout 写入任何内容。错误消息输出到 stderr。664以 `2` 退出时,命令不会向 stdout 写入任何内容。错误消息输出到 stderr。

655 665 

656#### 关于 README 的建议666#### 关于 README 的建议

657 667 

658`claude plugin validate` 输出中的 `Advice` 块表示某个插件的 README 中没有从市场安装该插件的行,并为您提供一行可添加的内容。建议既不是错误也不是警告。无论是否使用 `--strict`,它都不会改变结论行或退出码。它需要 Claude Code v2.1.295 或更高版本。668`claude plugin validate` 输出中的 `Advice` 块表示插件的 README 中没有从市场安装该插件的行,并会给出一行供您添加。建议既不是错误也不是警告。无论是否使用 `--strict`,它都不会改变结论行或退出码。它需要 Claude Code v2.1.295 或更高版本。

659 669 

660例如,验证 `acme-tools` 市场的目录时,会为其 `deploy-helper` 插件打印以下建议:670例如,验证 `acme-tools` 市场的目录时,会为其 `deploy-helper` 插件打印以下建议:

661 671 


670✔ Validation passed680✔ Validation passed

671```681```

672 682 

673要清除该建议,请将建议的行粘贴到其指出的 README 中,然后在 shell 中再次运行 `claude plugin validate`。`Advice` 块将消失。683要清除该建议,请将建议的行粘贴到其指出的 README 中,然后在 shell 中再次运行 `claude plugin validate`。`Advice` 块就会消失。

674 684 

675如果建议的行包含占位符 `<owner>/<repo>`,原样粘贴不会清除该建议。请先获取真实来源:685如果建议的行包含占位符 `<owner>/<repo>`,原样粘贴不会清除该建议。请先获取真实来源:

676 686 

677* **您验证的是插件自身的目录**:当市场从其自身内部的某个目录列出该插件时,请改为验证该市场的目录。当市场从其他位置(例如 GitHub 仓库)列出该插件时,请自行填写 `<owner>/<repo>`687* **您验证的是插件自身的目录**:当市场从其自身目录内的某个目录列出该插件时,请改为验证市场自身目录内的那个目录。当市场从其他位置(例如 GitHub 仓库)列出该插件时,请自行填写 `<owner>/<repo>`

678* **您验证的是市场的目录**:Claude Code 会根据该目录顶层 `.git` 目录的 `origin` 远程填写来源。当无法使用该远程时(例如不存在远程),请自行将 `<owner>/<repo>` 替换为您市场的来源688* **您验证的是市场的目录**:Claude Code 会根据该目录顶层 `.git` 目录的 `origin` 远程填写来源。当它无法使用该远程时(例如不存在远程),请自行将 `<owner>/<repo>` 替换为您市场的来源

679 689 

680当 `plugin install` 或其简写形式 `plugin i` 在同一行后接以下任一内容时,您已编写的安装行会被计入。`/plugin` 和 `claude plugin` 两种写法都计入:690当您已写的安装行中,`plugin install` 或其简写 `plugin i` 在同一行后跟以下任一内容时,该行即被计入。`/plugin` 和 `claude plugin` 两种写法均可:

681 691 

682* `<plugin>@<marketplace>`,例如 `/plugin install deploy-helper@acme-tools`692* `<plugin>@<marketplace>`,例如 `/plugin install deploy-helper@acme-tools`

683* 插件名称和 `--marketplace <source>`,例如 `/plugin install deploy-helper --marketplace acme/tools`693* 插件名称加 `--marketplace <source>`,例如 `/plugin install deploy-helper --marketplace acme/tools`

684 694 

685## claude plugin marketplace 命令695## claude plugin marketplace 命令

686 696 

Details

455 455 

456## 验证消息456## 验证消息

457 457 

458`claude plugin validate <path>` 接受 marketplace 根目录或 marketplace 文件本身。它打印错误和警告。有关退出代码和 `--strict`,请参阅 [plugin validate](https://code.claude.com/docs/zh-CN/plugins/cli-reference.md#plugin-validate)。458`claude plugin validate <path>` 接受市场根目录或市场文件本身。若要让该文件[作为市场进行验证](https://code.claude.com/docs/zh-CN/plugins/cli-reference.md#validate-a-manifest-file)而不是作为插件 manifest 进行验证,请将其命名为 `marketplace.json`。有关退出码和 `--strict`,请参阅 [plugin validate](https://code.claude.com/docs/zh-CN/plugins/cli-reference.md#plugin-validate)。

459 459 

460消息通过索引命名插件条目,写作 `plugins.1.source` 或 `plugins[1].source`。460消息通过索引命名插件条目,写作 `plugins.1.source` 或 `plugins[1].source`。

461 461 

Details

103[快速模式](https://code.claude.com/docs/zh-CN/fast-mode.md)和标准速度各自保留独立的缓存,因此在您启用或关闭快速模式后,下一个请求无法使用另一种速度所缓存的内容。在一个对话中第一次启用快速模式时,下一个请求会以未缓存的方式读取到目前为止的整个对话,并按[快速模式费率](https://code.claude.com/docs/zh-CN/fast-mode.md#understand-the-cost-tradeoff)计费。为了使该成本保持较小,请在会话开始时启用它。103[快速模式](https://code.claude.com/docs/zh-CN/fast-mode.md)和标准速度各自保留独立的缓存,因此在您启用或关闭快速模式后,下一个请求无法使用另一种速度所缓存的内容。在一个对话中第一次启用快速模式时,下一个请求会以未缓存的方式读取到目前为止的整个对话,并按[快速模式费率](https://code.claude.com/docs/zh-CN/fast-mode.md#understand-the-cost-tradeoff)计费。为了使该成本保持较小,请在会话开始时启用它。

104 104 

105* 如果您在 Claude 工作时启用它,该轮次会以标准速度完成,任何未缓存读取的费用会在您下一轮次的第一个请求上产生。105* 如果您在 Claude 工作时启用它,该轮次会以标准速度完成,任何未缓存读取的费用会在您下一轮次的第一个请求上产生。

106* 如果您当前的模型不支持快速模式,启用快速模式也会[将您切换到 Opus](https://code.claude.com/docs/zh-CN/fast-mode.md#toggle-fast-mode)。该[模型切换](#switching-models)本身会从当前运行轮次中的下一个请求开始启动新的缓存。106* 如果您当前的模型不支持快速模式,运行 `/fast` 也会[将您切换到 Opus](https://code.claude.com/docs/zh-CN/fast-mode.md#toggle-fast-mode)。该[模型切换](#switching-models)本身会从当前运行轮次中的下一个请求开始启动新的缓存。

107 107 

108之后的每次切换都会以未缓存的方式读取您所切换到的速度尚未缓存的内容。Claude Code 自行进行的速度更改,例如[速率限制后回退到标准速度](https://code.claude.com/docs/zh-CN/fast-mode.md#handle-rate-limits)以及稍后返回快速模式,也算作切换。108之后的每次切换都会以未缓存的方式读取您所切换到的速度尚未缓存的内容。Claude Code 自行进行的速度更改,例如[速率限制后回退到标准速度](https://code.claude.com/docs/zh-CN/fast-mode.md#handle-rate-limits)以及稍后返回快速模式,也算作切换。

109 109 

Details

147* **This session was ended or archived from another device or app**:仅当您想恢复该会话时才运行 `/remote-control`。Claude Code 会重新打开已归档的会话。147* **This session was ended or archived from another device or app**:仅当您想恢复该会话时才运行 `/remote-control`。Claude Code 会重新打开已归档的会话。

148* **The server no longer reports this session**:该会话可能已从另一台设备或应用中删除。148* **The server no longer reports this session**:该会话可能已从另一台设备或应用中删除。

149 149 

150如果 `/remote-control` 打开一个显示 `Remote Control isn't connected.` 的对话框,请按照对话框给出的步骤操作,例如运行 `/login`,或选择 **Continue** 后重试。

151 

150### 从另一台设备连接152### 从另一台设备连接

151 153 

152Remote Control 会话处于活动状态后,您可以通过以下几种方式从另一台设备连接:154Remote Control 会话处于活动状态后,您可以通过以下几种方式从另一台设备连接:


318 320 

319当远程控制处于活跃状态时,Claude 可以向您的手机发送推送通知。321当远程控制处于活跃状态时,Claude 可以向您的手机发送推送通知。

320 322 

321Claude 决定何时推送。它通常在长时间运行的任务完成时或需要您做出决定以继续时发送一条通知。您也可以在提示中请求推送,例如 `notify me when the tests finish`。除了下面的两个开/关切换外,没有按事件配置。323当长时间运行的任务完成时,或当 Claude 需要您做出决定时,您可能会收到推送。您也可以在提示词中请求推送,例如 `notify me when the tests finish`。除了下面的两个开/关切换外,没有按事件配置。

322 324 

323要设置移动推送通知:325要设置移动推送通知:

324 326 

Details

25| [Dev container](#dev-containers) | 完整开发环境 | 是 | 中等 |25| [Dev container](#dev-containers) | 完整开发环境 | 是 | 中等 |

26| [Custom container](#custom-container) | 完整开发环境 | 是 | 中等到高 |26| [Custom container](#custom-container) | 完整开发环境 | 是 | 中等到高 |

27| [Virtual machine](#virtual-machine) | 完整操作系统 | 否 | 高 |27| [Virtual machine](#virtual-machine) | 完整操作系统 | 否 | 高 |

28| [Cloud sessions](#cloud-sessions) | 完整操作系统,由 Anthropic 托管 | 否 | 无;需要 Claude 订阅和已连接的 GitHub 账户,除非您使用 `claude --cloud` 启动 |28| [Cloud sessions](#cloud-sessions) | 完整操作系统,由 Anthropic 托管 | 否 | 无;需要 Claude 订阅,克隆 GitHub 仓库时还需要已连接的 GitHub 账户 |

29 29 

30[Sandboxed Bash tool](https://code.claude.com/docs/zh-CN/sandboxing.md) 内置于 Claude Code 中,仅限制 Bash 命令。内置文件工具、MCP 服务器和 hooks 仍直接在您的主机上运行。表中的所有其他方法都将整个 Claude Code 进程放在隔离边界内,因此文件工具、MCP 服务器和 hooks 也受到限制。30[Sandboxed Bash tool](https://code.claude.com/docs/zh-CN/sandboxing.md) 内置于 Claude Code 中,仅限制 Bash 命令。内置文件工具、MCP 服务器和 hooks 仍直接在您的主机上运行。表中的所有其他方法都将整个 Claude Code 进程放在隔离边界内,因此文件工具、MCP 服务器和 hooks 也受到限制。

31 31 


46| 隔离 MCP 服务器和 hooks 以及 Bash,不使用 Docker | sandbox runtime |46| 隔离 MCP 服务器和 hooks 以及 Bash,不使用 Docker | sandbox runtime |

47| 在不受信任的存储库上工作 | 专用虚拟机,或 [cloud session](https://code.claude.com/docs/zh-CN/claude-code-on-the-web.md)(如果您有 Claude 订阅);使用 `claude --cloud` 启动时不需要 GitHub |47| 在不受信任的存储库上工作 | 专用虚拟机,或 [cloud session](https://code.claude.com/docs/zh-CN/claude-code-on-the-web.md)(如果您有 Claude 订阅);使用 `claude --cloud` 启动时不需要 GitHub |

48| 在团队中标准化沙箱环境 | 预配置的 [dev container](https://code.claude.com/docs/zh-CN/devcontainer.md),复制到您的存储库中 |48| 在团队中标准化沙箱环境 | 预配置的 [dev container](https://code.claude.com/docs/zh-CN/devcontainer.md),复制到您的存储库中 |

49| 从没有本地设置的设备使用 Claude Code | [cloud session](https://code.claude.com/docs/zh-CN/claude-code-on-the-web.md),需要 Claude 订阅和连接的 GitHub 账户 |49| 从没有本地设置的设备使用 Claude Code | [cloud session](https://code.claude.com/docs/zh-CN/claude-code-on-the-web.md),需要 Claude 订阅;如需克隆 GitHub 仓库,还需要连接的 GitHub 账户 |

50| 为组织中的每个开发人员要求隔离 | [在整个组织中强制实施隔离](#enforce-isolation-across-an-organization) |50| 为组织中的每个开发人员要求隔离 | [在整个组织中强制实施隔离](#enforce-isolation-across-an-organization) |

51| 在本机 Windows 主机上工作 | 容器或虚拟机,或在 WSL2 内运行 Bash 沙箱 |51| 在本机 Windows 主机上工作 | 容器或虚拟机,或在 WSL2 内运行 Bash 沙箱 |

52 52 


165 165 

166[云会话](https://code.claude.com/docs/zh-CN/claude-code-on-the-web.md)在隔离的、由 Anthropic 管理的虚拟机中运行。网络代理强制执行默认允许列表,单独的代理在沙箱外保存您的 GitHub 令牌,同时在其内部为存储库访问发出作用域凭据。您的组织路由到[自托管环境](https://code.claude.com/docs/zh-CN/self-hosted-environments)的会话在您配置的基础设施上运行,其中隔离、出站控制和 git 凭据是您部署的责任。166[云会话](https://code.claude.com/docs/zh-CN/claude-code-on-the-web.md)在隔离的、由 Anthropic 管理的虚拟机中运行。网络代理强制执行默认允许列表,单独的代理在沙箱外保存您的 GitHub 令牌,同时在其内部为存储库访问发出作用域凭据。您的组织路由到[自托管环境](https://code.claude.com/docs/zh-CN/self-hosted-environments)的会话在您配置的基础设施上运行,其中隔离、出站控制和 git 凭据是您部署的责任。

167 167 

168当您想要完整的虚拟机隔离而无需自己配置基础设施,或当您从没有本地开发环境的设备委派任务时,使用此方法。它需要 Claude 订阅。除非您从 CLI 启动,否则您还需要一个连接的 GitHub 账户,以便沙箱可以克隆您的存储库。当您使用 `--cloud` 从 CLI 启动时,Claude Code 可以[捆绑并上传您的本地存储库](https://code.claude.com/docs/zh-CN/claude-code-on-the-web.md#send-local-repositories-without-github)。有关计划可用性和 GitHub 身份验证选项,请参阅[在云中使用 Claude Code](https://code.claude.com/docs/zh-CN/claude-code-on-the-web.md)。168当您想要完整的虚拟机隔离而无需自己配置基础设施,或当您从没有本地开发环境的设备委派任务时,使用此方法。它需要:

169 

170* **订阅**:Claude 订阅

171* **GitHub**:已连接的 GitHub 账户,以便在 GitHub 仓库中工作。当您使用 `--cloud` 从 CLI 启动时,如果 Claude Code [捆绑并上传您的本地仓库](https://code.claude.com/docs/zh-CN/claude-code-on-the-web.md#send-local-repositories-without-github),则无需 GitHub 账户

172 

173有关套餐可用性和 GitHub 身份验证选项,请参阅[在云端使用 Claude Code](https://code.claude.com/docs/zh-CN/claude-code-on-the-web.md)。

169 174 

170## 在整个组织中强制实施隔离175## 在整个组织中强制实施隔离

171 176 

Details

46| `CLAUDE_CODE_REMOTE_SLACK_CHANNEL_ID` | 对于 Claude Tag 会话,为该会话所服务的、或其线程所在的 Slack 频道或私信的 ID,例如 `C0123ABCDE`。Slack 时间戳只在单个频道内标识一条消息,因此请将此 ID 与 `CLAUDE_CODE_REMOTE_SLACK_THREAD_TS` 一起记录。其他会话未设置此变量,Claude Tag 会话也可能未设置。 |46| `CLAUDE_CODE_REMOTE_SLACK_CHANNEL_ID` | 对于 Claude Tag 会话,为该会话所服务的、或其线程所在的 Slack 频道或私信的 ID,例如 `C0123ABCDE`。Slack 时间戳只在单个频道内标识一条消息,因此请将此 ID 与 `CLAUDE_CODE_REMOTE_SLACK_THREAD_TS` 一起记录。其他会话未设置此变量,Claude Tag 会话也可能未设置。 |

47| `CLAUDE_SESSION_INGRESS_TOKEN_FILE` | 绝对路径,指向保存当前会话 JWT 的按会话文件,在令牌刷新时保持最新。Shell 子进程在下载用户添加到会话的附件时从中读取其 `Authorization` 标头。`exec` 自动保留该变量;重建子进程环境的包装脚本必须携带该变量,否则附件下载会无声地停止工作。 |47| `CLAUDE_SESSION_INGRESS_TOKEN_FILE` | 绝对路径,指向保存当前会话 JWT 的按会话文件,在令牌刷新时保持最新。Shell 子进程在下载用户添加到会话的附件时从中读取其 `Authorization` 标头。`exec` 自动保留该变量;重建子进程环境的包装脚本必须携带该变量,否则附件下载会无声地停止工作。 |

48| `CLAUDE_CONFIG_DIR` | 按会话 Claude 配置目录,在会话启动时从运行器在启动时捕获的运行器主机配置快照中写入;请参阅 [Permissions and tool approval](#permissions-and-tool-approval)。此处的写入仅限于此会话。除非您使用 [`--remove-session-state`](https://code.claude.com/docs/zh-CN/self-hosted-environments-reference#runner-cli-flags) 启动运行器,否则会话结束后该目录仍会保留在 `<base-dir>/_sessions/` 下;请参阅 [Reuse a pre-warmed checkout](https://code.claude.com/docs/zh-CN/self-hosted-environments-deploy.md#reuse-a-pre-warmed-checkout)。 |48| `CLAUDE_CONFIG_DIR` | 按会话 Claude 配置目录,在会话启动时从运行器在启动时捕获的运行器主机配置快照中写入;请参阅 [Permissions and tool approval](#permissions-and-tool-approval)。此处的写入仅限于此会话。除非您使用 [`--remove-session-state`](https://code.claude.com/docs/zh-CN/self-hosted-environments-reference#runner-cli-flags) 启动运行器,否则会话结束后该目录仍会保留在 `<base-dir>/_sessions/` 下;请参阅 [Reuse a pre-warmed checkout](https://code.claude.com/docs/zh-CN/self-hosted-environments-deploy.md#reuse-a-pre-warmed-checkout)。 |

49| `CLAUDE_CODE_REMOTE_MCP_CONFIG` | 指向 `CLAUDE_CONFIG_DIR` 中某个文件的路径,该文件保存 Anthropic 控制平面为此会话交付的 MCP 服务器定义。如果您的包装脚本重建子进程的环境,请携带此变量。如果缺少此变量,当控制平面更新交付的服务器时,子进程会关闭您的包装脚本通过 [`--mcp-config`](https://code.claude.com/docs/zh-CN/cli-reference#cli-flags) 添加但不在更新中的任何 stdio、HTTP 或 SSE 服务器。需要 Claude Code v2.1.299 或更高版本。 |49| `CLAUDE_CODE_REMOTE_MCP_CONFIG` | 指向 `CLAUDE_CONFIG_DIR` 中某个文件的路径,该文件保存控制平面交付的 MCP 服务器。如果您的包装脚本重建子进程的环境,请原样携带此变量、[`CLAUDE_CODE_REMOTE`](https://code.claude.com/docs/zh-CN/env-vars#variables) 和 `CLAUDE_CODE_ENVIRONMENT_KIND`;运行器会设置这三个变量。如果 `CLAUDE_CODE_REMOTE` 已传入,但此变量或 `CLAUDE_CODE_ENVIRONMENT_KIND` 未传入,那么对于您的包装脚本通过 [`--mcp-config`](https://code.claude.com/docs/zh-CN/cli-reference#cli-flags) 添加、但交付服务器的更新中未包含的 stdio、HTTP 和 SSE 服务器,子进程会将其停止。需要 Claude Code v2.1.299 或更高版本。 |

50| `ANTHROPIC_BASE_URL` | 子进程将使用的 API 基础 URL,由控制平面按会话交付,通常为 `https://api.anthropic.com`。不要覆盖它:会话的推理凭据是 Anthropic 颁发的 OAuth 令牌,其他提供者不接受。 |50| `ANTHROPIC_BASE_URL` | 子进程将使用的 API 基础 URL,由控制平面按会话交付,通常为 `https://api.anthropic.com`。不要覆盖它:会话的推理凭据是 Anthropic 颁发的 OAuth 令牌,其他提供者不接受。 |

51| `CLAUDE_CODE_OAUTH_TOKEN` | 子进程用于模型推理的短期 OAuth 访问令牌,生命周期约为 30 分钟。运行器在过期前重新生成它,并通过子进程的 stdin 交付轮换,因此不 [keep stdin attached](#keep-stdin-and-file-descriptor-3-attached) 的包装脚本只看到初始值。不要依赖您的组织 IP 允许列表来限制此令牌的使用:将其视为持有者凭据,如果泄露,大约 30 分钟内仍可使用,不要记录它、写入磁盘或在会话容器外转发它。 |51| `CLAUDE_CODE_OAUTH_TOKEN` | 子进程用于模型推理的短期 OAuth 访问令牌,生命周期约为 30 分钟。运行器在过期前重新生成它,并通过子进程的 stdin 交付轮换,因此不 [keep stdin attached](#keep-stdin-and-file-descriptor-3-attached) 的包装脚本只看到初始值。不要依赖您的组织 IP 允许列表来限制此令牌的使用:将其视为持有者凭据,如果泄露,大约 30 分钟内仍可使用,不要记录它、写入磁盘或在会话容器外转发它。 |

52| `CLAUDE_RUNNER_ALIVE_EVERY_MS` | 当[轮次在子进程初始化之前开始](https://code.claude.com/docs/zh-CN/self-hosted-environments-reference.md#session-startup-timeout)时,运行器通过此变量设置子进程报告自身存活的频率(以毫秒为单位)。如果您的包装脚本重建子进程的环境,请携带此变量,否则运行器可能会在该轮次期间释放会话并记录 `no child output for <n> — releasing`。需要运行器和子进程均为 v2.1.309 或更高版本。 |52| `CLAUDE_RUNNER_ALIVE_EVERY_MS` | 当[轮次在子进程初始化之前开始](https://code.claude.com/docs/zh-CN/self-hosted-environments-reference.md#session-startup-timeout)时,运行器通过此变量设置子进程报告自身存活的频率(以毫秒为单位)。如果您的包装脚本重建子进程的环境,请携带此变量,否则运行器可能会在该轮次期间释放会话并记录 `no child output for <n> — releasing`。需要运行器和子进程均为 v2.1.309 或更高版本。 |


329| `CLAUDE_RUNNER_REPO_SOURCES` | 所有会话的 git 源的 `{url, revision}` 的 JSON 数组,用于根据辅助仓库进行路由的 hook。当没有源时为空。 |329| `CLAUDE_RUNNER_REPO_SOURCES` | 所有会话的 git 源的 `{url, revision}` 的 JSON 数组,用于根据辅助仓库进行路由的 hook。当没有源时为空。 |

330| `CLAUDE_RUNNER_CORRELATION_ID` | 在会话创建时提供的关联 ID,回显以便 hook 可以将此工作单映射到创建会话的请求。当会话没有时为空。 |330| `CLAUDE_RUNNER_CORRELATION_ID` | 在会话创建时提供的关联 ID,回显以便 hook 可以将此工作单映射到创建会话的请求。当会话没有时为空。 |

331| `CLAUDE_RUNNER_CLIENT_PLATFORM` | 创建会话的客户端使用入口,例如 `web_claude_ai`、`desktop_app`、`ios` 或 `scheduled_trigger`,用于采用分析。当会话没有记录或识别的使用入口时未设置,对于预热请求也未设置;使用 `[ -n "${CLAUDE_RUNNER_CLIENT_PLATFORM:-}" ]` 检查它,这在 `set -u` 下保持安全。 |331| `CLAUDE_RUNNER_CLIENT_PLATFORM` | 创建会话的客户端使用入口,例如 `web_claude_ai`、`desktop_app`、`ios` 或 `scheduled_trigger`,用于采用分析。当会话没有记录或识别的使用入口时未设置,对于预热请求也未设置;使用 `[ -n "${CLAUDE_RUNNER_CLIENT_PLATFORM:-}" ]` 检查它,这在 `set -u` 下保持安全。 |

332| `CLAUDE_RUNNER_SPAWN_REASON` | [Anthropic 发送此生成请求的原因](#find-out-why-a-spawn-request-was-sent),例如 `runner_lost` 或 `resumed`。当请求未携带格式正确的原因时未设置,因此请以 `"${CLAUDE_RUNNER_SPAWN_REASON:-}"` 形式读取它。需要编排器上安装 Claude Code v2.1.318 或更高版本 |

332 333 

333生成的运行器使用工作单代替环境密钥进行注册:334生成的运行器使用工作单代替环境密钥进行注册:

334 335 


828 829 

829自托管会话没有连接的终端,因此未回答的权限提示会使当前轮次停滞,直到用户在 UI 中响应。Anthropic 的控制平面随工作负载一起发送每个会话的工具列表和权限规则;默认配置预批准常规工具调用(包括 `Bash`),并且云端会话[无论处于何种模式都会预批准文件编辑](https://code.claude.com/docs/zh-CN/permission-modes.md#switch-permission-modes)。任何未被预批准的调用都会通过会话 UI 进行提示。830自托管会话没有连接的终端,因此未回答的权限提示会使当前轮次停滞,直到用户在 UI 中响应。Anthropic 的控制平面随工作负载一起发送每个会话的工具列表和权限规则;默认配置预批准常规工具调用(包括 `Bash`),并且云端会话[无论处于何种模式都会预批准文件编辑](https://code.claude.com/docs/zh-CN/permission-modes.md#switch-permission-modes)。任何未被预批准的调用都会通过会话 UI 进行提示。

830 831 

832### 从包装脚本固定权限模式

833 

831> [!NOTE]834> [!NOTE]

832>835>

833> 仅在会话容器运行时启用了[默认拒绝网络出口](https://code.claude.com/docs/zh-CN/self-hosted-environments-deploy.md#default-deny-egress)并落实了[加固部分](https://code.claude.com/docs/zh-CN/self-hosted-environments-deploy.md#harden-your-deployment)中其余措施的环境上固定自动模式。在默认预批准工具集和自动模式下,常规工具调用(包括 `Bash` 网络请求)都会在无人参与的情况下运行,因此网络边界才是限制这些调用可访问范围的关键。836> 仅在会话容器运行时启用了[默认拒绝网络出口](https://code.claude.com/docs/zh-CN/self-hosted-environments-deploy.md#default-deny-egress)并落实了[加固部分](https://code.claude.com/docs/zh-CN/self-hosted-environments-deploy.md#harden-your-deployment)中其余措施的环境上固定自动模式。在默认预批准工具集和自动模式下,常规工具调用(包括 `Bash` 网络请求)都会在无人参与的情况下运行,因此网络边界才是限制这些调用可访问范围的关键。

834 837 

835要无论控制平面发送什么都将提示保持在最低限度,请从您的包装脚本或 [`command` hook](#command) 固定[自动模式](https://code.claude.com/docs/zh-CN/permission-modes.md#eliminate-prompts-with-auto-mode)。自动模式让会话无需常规权限提示即可运行:单独的分类器模型在操作运行前对其进行审查,并阻止它拒绝的操作,而显式的询问规则仍会强制提示;权限模式页面介绍了分类器检查的内容。运行器在调用包装脚本前追加服务器计算的标志,对于单值标志(如 `--permission-mode`),解析器以最后一次出现的值为准,因此您在 `"$@"` 之后追加的标志会覆盖服务器发送的值:838要让会话以[自动模式](https://code.claude.com/docs/zh-CN/permission-modes.md#eliminate-prompts-with-auto-mode)启动,直到 claude.ai/code 或其他客户端为其设置权限模式为止,请从您的包装脚本或 [`command` hook](#command) 固定该模式。运行器以其自身的标志作为参数调用包装脚本,而 Claude Code 采用命令行上最后一个 `--permission-mode`,因此请将您的标志追加在 `"$@"` 之后:

836 839 

837```bash theme={null}840```bash theme={null}

838#!/bin/bash841#!/bin/bash

839exec "$CLAUDE_RUNNER_CLAUDE_BIN" "$@" --permission-mode auto842exec "$CLAUDE_RUNNER_CLAUDE_BIN" "$@" --permission-mode auto

840```843```

841 844 

842要改为预批准特定工具,请追加 `--allowed-tools` 和您的规则,例如 `--allowed-tools "Bash(bazel *) Bash(yarn *) mcp__internal__*"`。列表标志(如 `--allowed-tools` 和 `--disallowed-tools`)会在多次出现时累积而不是覆盖,因此您的规则会叠加在控制平面发送的任何规则之上。要缩小范围,请追加 `--disallowed-tools`,即使其他规则允许某些工具,它也会拒绝这些工具。845一旦客户端设置了模式,您追加的模式便不再适用,即使会话在运行器上重新启动后也是如此。例如,当 claude.ai/code 的模式下拉菜单显示 Auto,或有人在其中选择了某个模式时,claude.ai/code 会随会话的第一条消息设置模式。

846 

847在自动模式下,单独的分类器模型会在操作运行前对其进行审查,并阻止它拒绝的操作。显式的询问规则仍会强制提示。被[拒绝规则](https://code.claude.com/docs/zh-CN/permissions.md#manage-permissions)阻止的调用在任何模式下都保持被阻止。

848 

849### 预批准特定工具

850 

851要预批准特定工具,请在包装脚本中的 `"$@"` 之后追加 `--allowed-tools` 和您的规则,例如 `--allowed-tools "Bash(bazel *) Bash(yarn *) mcp__internal__*"`。列表标志(如 `--allowed-tools` 和 `--disallowed-tools`)会在多次出现时累积而不是覆盖,因此您的规则会叠加在控制平面发送的任何规则之上。要缩小范围,请追加 `--disallowed-tools`,即使其他规则允许某些工具,它也会拒绝这些工具。

843 852 

844### 每个会话的配置如何组装853### 每个会话的配置如何组装

845 854 

Details

195* 缓存的 [`prependPlugins`](https://code.claude.com/docs/zh-CN/settings-reference#prependplugins)、[`appendPlugins`](https://code.claude.com/docs/zh-CN/settings-reference#appendplugins) 或 [`enabledPlugins`](https://code.claude.com/docs/zh-CN/settings-reference#enabledplugins) 值在会话的获取确认负载之前,无法移除内置守卫、更改其位置或将其关闭195* 缓存的 [`prependPlugins`](https://code.claude.com/docs/zh-CN/settings-reference#prependplugins)、[`appendPlugins`](https://code.claude.com/docs/zh-CN/settings-reference#appendplugins) 或 [`enabledPlugins`](https://code.claude.com/docs/zh-CN/settings-reference#enabledplugins) 值在会话的获取确认负载之前,无法移除内置守卫、更改其位置或将其关闭

196* 在[端点托管来源](https://code.claude.com/docs/zh-CN/managed-settings.md#choose-a-delivery-mechanism)自行列出或启用插件的机器上,仅由缓存列表启用的插件在获取确认负载之前被视为[用户的](https://code.claude.com/docs/zh-CN/plugins/mods/admin.md#install-your-organizations-mods)插件,而不是您组织的插件196* 在[端点托管来源](https://code.claude.com/docs/zh-CN/managed-settings.md#choose-a-delivery-mechanism)自行列出或启用插件的机器上,仅由缓存列表启用的插件在获取确认负载之前被视为[用户的](https://code.claude.com/docs/zh-CN/plugins/mods/admin.md#install-your-organizations-mods)插件,而不是您组织的插件

197* Claude Code 在后台获取最新设置197* Claude Code 在后台获取最新设置

198* 如果会话的提供商不在缓存的 [`allowedProviders`](https://code.claude.com/docs/zh-CN/settings-reference#allowedproviders) 列表中,Claude Code 可能会等待该获取完成并再次检查,然后才决定是否拒绝。如果获取失败,会话将被拒绝

198* 缓存的设置在网络故障期间保持有效。如果启动时的获取失败,Claude Code 会在交互式会话和 Code 标签页中警告缓存的策略正在生效199* 缓存的设置在网络故障期间保持有效。如果启动时的获取失败,Claude Code 会在交互式会话和 Code 标签页中警告缓存的策略正在生效

199* 在获取成功之前,启动时暂缓的值保持暂缓200* 在获取成功之前,启动时暂缓的值保持暂缓

200 201 

Details

111| [`footerLinksRegexes`](#footerlinksregexes) | 将输出中的 issue 或审查 ID 转换为输入框下方的[可点击链接](https://code.claude.com/docs/zh-CN/statusline.md#clickable-links) | 界面与终端 | 用户或托管 |111| [`footerLinksRegexes`](#footerlinksregexes) | 将输出中的 issue 或审查 ID 转换为输入框下方的[可点击链接](https://code.claude.com/docs/zh-CN/statusline.md#clickable-links) | 界面与终端 | 用户或托管 |

112| [`forceLoginGatewayUrl`](#forcelogingatewayurl) | 设置登录界面连接的[网关 URL](https://code.claude.com/docs/zh-CN/claude-apps-gateway#set-the-gateway-url) | 身份验证与提供商 | 用户或托管 |112| [`forceLoginGatewayUrl`](#forcelogingatewayurl) | 设置登录界面连接的[网关 URL](https://code.claude.com/docs/zh-CN/claude-apps-gateway#set-the-gateway-url) | 身份验证与提供商 | 用户或托管 |

113| [`forceLoginMethod`](#forceloginmethod) | 将[登录限制](https://code.claude.com/docs/zh-CN/authentication.md#restrict-login-to-your-organization)为 claude.ai、Claude Console 或[云网关](https://code.claude.com/docs/zh-CN/claude-apps-gateway) | 身份验证与提供商 | 任意文件 |113| [`forceLoginMethod`](#forceloginmethod) | 将[登录限制](https://code.claude.com/docs/zh-CN/authentication.md#restrict-login-to-your-organization)为 claude.ai、Claude Console 或[云网关](https://code.claude.com/docs/zh-CN/claude-apps-gateway) | 身份验证与提供商 | 任意文件 |

114| [`forceLoginOrgUUID`](#forceloginorguuid) | [将 claude.ai 登录限定到您的组织](https://code.claude.com/docs/zh-CN/authentication.md#restrict-login-to-your-organization);仅托管来源会强制执行此设置 | 身份验证与提供商 | 任意文件 |114| [`forceLoginOrgUUID`](#forceloginorguuid) | [将 claude.ai 登录限定到您的组织](https://code.claude.com/docs/zh-CN/authentication.md#restrict-login-to-your-organization);仅托管设置会强制执行此设置 | 身份验证与提供商 | 任意文件 |

115| [`forceRemoteSettingsRefresh`](#forceremotesettingsrefresh) | 阻塞启动,直到成功获取最新的[服务器托管设置](https://code.claude.com/docs/zh-CN/server-managed-settings.md)为止 | 企业与托管设置 | 托管 |115| [`forceRemoteSettingsRefresh`](#forceremotesettingsrefresh) | 阻塞启动,直到成功获取最新的[服务器托管设置](https://code.claude.com/docs/zh-CN/server-managed-settings.md)为止 | 企业与托管设置 | 托管 |

116| [`gatewayInternalNetworks`](#gatewayinternalnetworks) | 允许 `/login` 访问位于您组织内部使用的公共 IPv4 地址空间上的[云网关](https://code.claude.com/docs/zh-CN/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own) | 身份验证与提供商 | 托管 |116| [`gatewayInternalNetworks`](#gatewayinternalnetworks) | 允许 `/login` 访问位于您组织内部使用的公共 IPv4 地址空间上的[云网关](https://code.claude.com/docs/zh-CN/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own) | 身份验证与提供商 | 托管 |

117| [`gcpAuthRefresh`](#gcpauthrefresh) | 使用您自己的命令刷新 [Google Cloud 凭据](https://code.claude.com/docs/zh-CN/google-vertex-ai.md#advanced-credential-configuration) | 身份验证与提供商 | 任意文件 |117| [`gcpAuthRefresh`](#gcpauthrefresh) | 使用您自己的命令刷新 [Google Cloud 凭据](https://code.claude.com/docs/zh-CN/google-vertex-ai.md#advanced-credential-configuration) | 身份验证与提供商 | 任意文件 |


446 446 

447### `fastMode`447### `fastMode`

448 448 

449在可用的会话中开启[快速模式](https://code.claude.com/docs/zh-CN/fast-mode.md),适用于快速迭代或实时调试等需要以更高的每 token 成本换取速度的交互式工作。通常无需手动编辑此键:运行 `/fast` 会将 `fastMode: true` 写入 `~/.claude/settings.json`,再次运行以关闭快速模式则会移除该键。快速模式仅在 Opus 5.5、Opus 5 和 Opus 4.8 上运行:在其他模型上开启它会将您切换到 Opus,而切换到不受支持的模型则会将其关闭。请参阅[在快速模式开启时切换模型](https://code.claude.com/docs/zh-CN/fast-mode.md#switch-models-while-fast-mode-is-on)。449在可用的会话中开启[快速模式](https://code.claude.com/docs/zh-CN/fast-mode.md),适用于快速迭代或实时调试等需要以更高的每 token 成本换取速度的交互式工作。通常无需手动编辑此键。运行 `/fast` 会将 `fastMode: true` 写入 `~/.claude/settings.json`,再次运行以关闭快速模式则会移除该键。

450 

451只有 Opus 5.5、Opus 5 和 Opus 4.8 支持快速模式。在其他模型上运行 `/fast` 会将您切换到 Opus,而切换到不受支持的模型则会关闭快速模式。请参阅[在快速模式开启时切换模型](https://code.claude.com/docs/zh-CN/fast-mode.md#switch-models-while-fast-mode-is-on)。

450 452 

451* **作用域**:[`Any file`](#scopes)453* **作用域**:[`Any file`](#scopes)

452* **类型**:Boolean454* **类型**:Boolean


463 465 

464### `fastModePerSessionOptIn`466### `fastModePerSessionOptIn`

465 467 

466通常,运行 `/fast` 会将 [`fastMode`](#fastmode) 保存到个人的用户设置中,因此之后每个会话开始时快速模式都会开启。将此键设置为 `true` 可阻止这种行为:已保存的 `fastMode: true` 不再在会话开始时开启快速模式,每个人需要在每个想要使用快速模式的会话中运行 `/fast`。Claude Code 会保留其文件中的 `fastMode` 键,因此关闭此键即可恢复原来的行为。468通常,运行 `/fast` 会将 [`fastMode`](#fastmode) 保存到个人的用户设置中,因此在受支持模型上的新会话开始时快速模式都会开启。将此键设置为 `true` 可阻止这种行为:已保存的 `fastMode: true` 不再在会话开始时开启快速模式,每个人需要在每个想要使用快速模式的会话中运行 `/fast`。Claude Code 会保留其文件中的 `fastMode`,因此关闭此键即可恢复原来的行为。

467 469 

468Team 或 Enterprise 计划的所有者可以通过[服务器托管设置](https://code.claude.com/docs/zh-CN/server-managed-settings.md)在整个组织中部署此项。当托管设置设置了此键时,`/fast on` 在交互式终端会话之外会被拒绝,并报告您的组织已禁用快速模式。这涵盖[非交互模式](https://code.claude.com/docs/zh-CN/headless.md)、[VS Code 扩展](https://code.claude.com/docs/zh-CN/vs-code.md)和[云端会话](https://code.claude.com/docs/zh-CN/claude-code-on-the-web.md)。470Team 或 Enterprise 计划的所有者可以通过[服务器托管设置](https://code.claude.com/docs/zh-CN/server-managed-settings.md)在整个组织中部署此项。当托管设置设置了此键时,`/fast on` 在交互式终端会话之外会被拒绝,并报告您的组织已禁用快速模式。这涵盖[非交互模式](https://code.claude.com/docs/zh-CN/headless.md)、[VS Code 扩展](https://code.claude.com/docs/zh-CN/vs-code.md)和[云端会话](https://code.claude.com/docs/zh-CN/claude-code-on-the-web.md)。

469 471 

470* **作用域**:[`Any file`](#scopes)472* **作用域**:[`Any file`](#scopes)

471* **类型**:Boolean473* **类型**:Boolean

472 * `true`:已保存的 `fastMode: true` 不再在会话开始时开启快速模式,因此每个人需要在每个想要使用快速模式的会话中运行 `/fast`;通过 `--settings` 传入的 `fastMode: true` 仍对该会话有效,除非托管设置设置了此键474 * `true`:已保存的 `fastMode: true` 不再在会话开始时开启快速模式,因此每个人需要在每个想要使用快速模式的会话中运行 `/fast`;通过 `--settings` 传入的 `fastMode: true` 仍对该会话有效,除非托管设置设置了此键

473 * `false`:已保存的 `fastMode: true` 会在之后每个会话开始时开启快速模式475 * `false`:已保存的 `fastMode: true` 会在受支持模型上的每个新会话开始时开启快速模式

474* **默认值**:`false`476* **默认值**:`false`

475 477 

476```json settings.json theme={null}478```json settings.json theme={null}


4827 4829 

4828### `agentPushNotifEnabled`4830### `agentPushNotifEnabled`

4829 4831 

4830允许 Claude 在认为值得发送时向您的手机发送推送通知,例如在长时间任务完成时。Claude 可以在 [Remote Control](https://code.claude.com/docs/zh-CN/remote-control.md) 已连接时发送通知。在 `/config` 中显示为 **Push when Claude decides**。在该处更改时,Claude Code 还会将该值保存到您的账户。4832允许 Claude 在认为值得发送时向您的手机发送推送通知,例如在长时间任务完成时。在本地会话中,Claude 可以在 [Remote Control](https://code.claude.com/docs/zh-CN/remote-control.md) 已连接时发送通知。在 `/config` 中显示为 **Push when Claude decides**。在该处更改时,Claude Code 还会将该值保存到您的账户。

4831 4833 

4832* **作用域**:[`Any file`](#scopes)。Claude Code 也会读取旧版本遗留在 `~/.claude.json` 中的值。4834* **作用域**:[`Any file`](#scopes)。Claude Code 也会读取旧版本遗留在 `~/.claude.json` 中的值。

4833* **类型**:Boolean4835* **类型**:Boolean


4964 4966 

4965### `inputNeededNotifEnabled`4967### `inputNeededNotifEnabled`

4966 4968 

4967当权限提示或问题正在等待您输入时,在手机上接收推送通知。Claude Code 仅在 [Remote Control](https://code.claude.com/docs/zh-CN/remote-control.md) 已连接时发送这些通知。在 `/config` 中显示为 **Push when actions required**。4969当权限提示或问题正在等待您输入时,在手机上接收推送通知。在本地会话中,Claude Code 仅在 [Remote Control](https://code.claude.com/docs/zh-CN/remote-control.md) 已连接时发送这些通知。在 `/config` 中显示为 **Push when actions required**。

4968 4970 

4969* **作用域**:[`Any file`](#scopes)。Claude Code 也会读取旧版本遗留在 `~/.claude.json` 中的值。4971* **作用域**:[`Any file`](#scopes)。Claude Code 也会读取旧版本遗留在 `~/.claude.json` 中的值。

4970* **类型**:Boolean4972* **类型**:Boolean

4971 * `true`:在 Remote Control 已连接时,如有权限提示或问题正在等待,您会在手机上收到推送通知

4972 * `false`:Claude Code 不发送此类通知

4973* **默认值**:`false`4973* **默认值**:`false`

4974 4974 

4975```json settings.json theme={null}4975```json settings.json theme={null}


4986 4986 

4987* **作用域**:[`Any file`](#scopes)。Claude Code 也会读取旧版本遗留在 `~/.claude.json` 中的值。4987* **作用域**:[`Any file`](#scopes)。Claude Code 也会读取旧版本遗留在 `~/.claude.json` 中的值。

4988* **类型**:字符串,取以下值之一:4988* **类型**:字符串,取以下值之一:

4989 * `"auto"`:Claude Code 在 iTerm2、Ghostty 和 Kitty 中发送桌面通知,在 Terminal.app 中仅当其响铃提示音关闭时才响铃,在其他终端中不执行任何操作4989 * `"auto"`:Claude Code 在检测到 iTerm2、Ghostty 或 Kitty 时发送桌面通知,在 Terminal.app 中仅当其响铃提示音关闭时才响铃,在其他终端中不执行任何操作

4990 * `"terminal_bell"`:Claude Code 在任何终端中发出响铃字符4990 * `"terminal_bell"`:Claude Code 在任何终端中发出响铃字符

4991 * `"iterm2"`:Claude Code 发送 iTerm2 桌面通知4991 * `"iterm2"`:Claude Code 发送 iTerm2 桌面通知

4992 * `"iterm2_with_bell"`:Claude Code 发送 iTerm2 桌面通知并响铃4992 * `"iterm2_with_bell"`:Claude Code 发送 iTerm2 桌面通知并响铃


5001}5001}

5002```5002```

5003 5003 

5004使用 `"auto"` 时,Claude Code 会在 iTerm2、Ghostty 和 Kitty 中发送桌面通知。在 Terminal.app 中,仅当您关闭了 Terminal 的响铃提示音时它才会发出响铃字符,而在其他终端中不执行任何操作。设置 `"terminal_bell"` 可在任何终端中发出响铃字符。请参阅[获取终端响铃或通知](https://code.claude.com/docs/zh-CN/terminal-config.md#get-a-terminal-bell-or-notification)。5004使用 `"auto"` 时,Claude Code 会在检测到 iTerm2、Ghostty 或 Kitty 时发送桌面通知。在 Terminal.app 中,仅当您关闭了 Terminal 的响铃提示音时它才会发出响铃字符,而在其他终端中不执行任何操作。设置 `"terminal_bell"` 可在任何终端中发出响铃字符。请参阅[获取终端响铃或通知](https://code.claude.com/docs/zh-CN/terminal-config.md#get-a-terminal-bell-or-notification)。

5005 5005 

5006### `remote.defaultEnvironmentId`5006### `remote.defaultEnvironmentId`

5007 5007 


5176 5176 

5177* 缓存有效期过后,默认为五分钟,或为您通过 [`CLAUDE_CODE_API_KEY_HELPER_TTL_MS`](https://code.claude.com/docs/zh-CN/env-vars) 设置的间隔。5177* 缓存有效期过后,默认为五分钟,或为您通过 [`CLAUDE_CODE_API_KEY_HELPER_TTL_MS`](https://code.claude.com/docs/zh-CN/env-vars) 设置的间隔。

5178* 当直接或通过 [LLM 网关](https://code.claude.com/docs/zh-CN/llm-gateway)发往 Anthropic API 的请求以 `401` 或 `403` 失败时。5178* 当直接或通过 [LLM 网关](https://code.claude.com/docs/zh-CN/llm-gateway)发往 Anthropic API 的请求以 `401` 或 `403` 失败时。

5179* 当通过 LLM 网关发送的请求以 `401`(而非 `403`)失败,并且您设置了 [`CLAUDE_CODE_SKIP_VERTEX_AUTH`](https://code.claude.com/docs/zh-CN/env-vars)(用于 Google Cloud 的 Agent Platform)、`CLAUDE_CODE_SKIP_ANTHROPIC_AWS_AUTH`(用于 Claude Platform on AWS)或 `CLAUDE_CODE_SKIP_MANTLE_AUTH`(用于 Amazon Bedrock Mantle)时。需要 Claude Code v2.1.318 或更高版本。

5179* 在直接或通过 LLM 网关向 Anthropic API 发送请求之前,如果缓存的输出是一个在辅助程序生成后已过期的 JWT。需要 Claude Code v2.1.246 或更高版本。5180* 在直接或通过 LLM 网关向 Anthropic API 发送请求之前,如果缓存的输出是一个在辅助程序生成后已过期的 JWT。需要 Claude Code v2.1.246 或更高版本。

5180 5181 

5181后两种情况仅在辅助程序的输出就是 Claude Code 发送的凭据且未设置 `ANTHROPIC_AUTH_TOKEN` 时适用。5182后三种情况仅在辅助程序的输出就是 Claude Code 发送的凭据且未设置 `ANTHROPIC_AUTH_TOKEN` 时适用。

5182 5183 

5183在交互式会话中,如果该命令来自项目设置或本地设置,Claude Code 会在您接受工作区信任提示后才运行它。请参阅[凭据管理](https://code.claude.com/docs/zh-CN/authentication.md#credential-management)。5184在交互式会话中,如果该命令来自项目设置或本地设置,Claude Code 会在您接受工作区信任提示后才运行它。请参阅[凭据管理](https://code.claude.com/docs/zh-CN/authentication.md#credential-management)。

5184 5185 


5261 5262 

5262在托管来源中,要求 claude.ai 账户登录必须属于某一个 Anthropic 组织(以单个 UUID 给出),或属于多个组织中的任意一个(以数组给出)。在任何设置文件中,Claude Code 还会使用单个 UUID 在 claude.ai 或 Claude Console 登录期间预先选择该组织;对于数组则不预先选择任何组织。如果您在任何设置文件中设置了此项,Claude Code 还会在该文件适用的会话中停止提供[无密钥 Console 登录](https://code.claude.com/docs/zh-CN/authentication.md#sign-in-without-an-api-key),并改为创建 API 密钥。5263在托管来源中,要求 claude.ai 账户登录必须属于某一个 Anthropic 组织(以单个 UUID 给出),或属于多个组织中的任意一个(以数组给出)。在任何设置文件中,Claude Code 还会使用单个 UUID 在 claude.ai 或 Claude Console 登录期间预先选择该组织;对于数组则不预先选择任何组织。如果您在任何设置文件中设置了此项,Claude Code 还会在该文件适用的会话中停止提供[无密钥 Console 登录](https://code.claude.com/docs/zh-CN/authentication.md#sign-in-without-an-api-key),并改为创建 API 密钥。

5263 5264 

5264* **作用域**:[`Any file`](#scopes)。只有托管来源会强制执行该限制;其他任何设置文件中的单个 UUID 只会在登录期间预先选择该组织,而不进行限制。5265* **作用域**:[`Any file`](#scopes)。在非托管来源的设置文件中,Claude Code 不会检查登录所属的组织,单个 UUID 会在登录期间预先选择该组织。

5265* **类型**:字符串(一个 UUID),或字符串数组(多个 UUID)5266* **类型**:字符串(一个 UUID),或字符串数组(多个 UUID)

5266* **默认值**:未设置,因此任何组织都可以登录5267* **默认值**:未设置,因此任何组织都可以登录

5267 5268 


5827 5828 

5828### `autoInstallIdeExtension`5829### `autoInstallIdeExtension`

5829 5830 

5830从外部终端运行 [`/ide`](https://code.claude.com/docs/zh-CN/commands) 命令时,允许该命令在正在运行的 VS Code、Cursor 或 Devin Desktop 中安装 Claude Code IDE 扩展。Claude Code 启动时不会安装该扩展。在 VS Code 或 JetBrains 终端内运行 Claude Code 时,此项在 `/config` 中显示为 **Auto-install IDE extension**。5831从外部终端运行 [`/ide`](https://code.claude.com/docs/zh-CN/commands) 命令时,允许该命令在正在运行的 VS Code、Cursor 或 Devin Desktop 中安装 Claude Code IDE 扩展。启动 `claude` 时,Claude Code 不会安装或更新该扩展。在 v2.1.318 之前,在上述任一编辑器的终端中启动 `claude` 时,Claude Code 会安装或更新该扩展,除非此键为 `false`。

5832 

5833在 VS Code 或 JetBrains 终端内运行 Claude Code 时,此项在 `/config` 中显示为 **Auto-install IDE extension**。

5831 5834 

5832* **作用域**:[`Global config`](#scopes)5835* **作用域**:[`Global config`](#scopes)

5833* **类型**:Boolean5836* **类型**:Boolean

setup.md +4 −4

Details

389> gpg --show-keys /etc/apt/keyrings/claude-code.asc389> gpg --show-keys /etc/apt/keyrings/claude-code.asc

390> ```390> ```

391>391>

392> gpg 打印的指纹应该是 `31DDDE24DDFAB679F42D7BD2BAA929FF1A7ECACE`。如果 gpg 报告文件无法打开或不包含有效的 OpenPGP 数据,则下载失败或返回了错误的内容:确认您的网络可以到达 `downloads.claude.ai`,然后重新运行下载命令。392> gpg 打印的唯一指纹应该是 `31DDDE24DDFAB679F42D7BD2BAA929FF1A7ECACE`。如果 gpg 报告文件无法打开或不包含有效的 OpenPGP 数据,则下载失败或返回了错误的内容。确认您的网络可以到达 `downloads.claude.ai`,然后重新运行下载命令。

393>393>

394> 在 `stable` 渠道上注册存储库并安装:394> 在 `stable` 渠道上注册存储库并安装:

395>395>


536针对清单验证分离的签名。536针对清单验证分离的签名。

537 537 

538```bash theme={null}538```bash theme={null}

539gpg --verify manifest.json.sig manifest.json539gpg --with-fingerprint --verify manifest.json.sig manifest.json

540```540```

541 541 

542有效的结果报告 `Good signature from "Anthropic Claude Code Release Signing <security@anthropic.com>"`。542有效的结果报告 `Good signature from "Anthropic Claude Code Release Signing <security@anthropic.com>"`。在默认设置下,`gpg` 还会为新导入的密钥打印 `WARNING: This key is not certified with a trusted signature!`。这是预期的。`Good signature` 行确认密码学检查通过。

543 543 

544`gpg` 也会为任何新导入的密钥打印 `WARNING: This key is not certified with a trusted signature!`。这是预期的。`Good signature` 行确认密码学检查通过。第 1 步中的指纹比较确认密钥本身是真实的。544要确认清单由 Anthropic 的密钥签名,请将输出末尾的 `Primary key fingerprint` 行与本页第 1 步中列出的指纹进行比较。如果两者匹配且输出中没有 `BAD signature`,请继续执行第 4 步。否则,请勿使用此清单。

545 545 

546**4. 根据清单检查二进制文件**546**4. 根据清单检查二进制文件**

547 547 

slack.md +7 −10

Details

20 20 

21## 用例21## 用例

22 22 

23* **Bug 调查和修复**:要求 Claude 在 Slack 频道中报告 Bug 时立即调查和修复。23* **Bug 调查和修复**:描述一个 Bug,并要求 Claude 调查和修复它。

24* **快速代码审查和修改**:让 Claude 根据团队反馈实现小功能或重构代码。24* **快速代码审查和修改**:让 Claude 实现小功能或重构代码。

25* **协作调试**:当团队讨论提供关键背景信息(例如错误重现或用户报告)时,Claude 可以使用该信息来指导其调试方法。

26* **并行任务执行**:在 Slack 中启动编码任务,同时继续其他工作,完成时收到通知。25* **并行任务执行**:在 Slack 中启动编码任务,同时继续其他工作,完成时收到通知。

27 26 

28## 前提条件27## 前提条件


91 90 

92### 上下文收集91### 上下文收集

93 92 

94**来自线程**:当您在线程中 @mention Claude 时,它会从该线程中的所有消息收集上下文以理解完整的对话。93* **来自线程**:当您首次在线程中 @mention Claude 时,它会从该线程中您的消息及其自身的消息收集上下文。

94* **来自频道**:当您直接在频道中 @mention Claude 时,它会查看您在该频道中最近的消息及其自身的消息,以及频道的名称、主题和描述。

95 95 

96**来自频道**:当直接在频道中提及时,Claude 会查看最近的频道消息以获取相关上下文。96此上下文帮助 Claude 理解问题、选择适当的仓库并指导其任务方法。要向 Claude 提供队友编写的内容(例如错误报告),请将其文本粘贴到您 @mention Claude 的消息中。

97 

98此上下文帮助 Claude 理解问题、选择适当的存储库并指导其任务方法。

99 97 

100> [!WARNING]98> [!WARNING]

101>99>


160### 编写有效的请求158### 编写有效的请求

161 159 

162* **具体说明**:在相关时包括文件名、函数名或错误消息。160* **具体说明**:在相关时包括文件名、函数名或错误消息。

163* **提供上下文**:如果从对话中不清楚,请提及存储库或项目。161* **提供上下文**:请提及仓库或项目。

164* **定义成功**:解释"完成"的样子。Claude 应该编写测试吗?更新文档?创建 PR?162* **定义成功**:解释"完成"的样子。Claude 应该编写测试吗?更新文档?创建 PR?

165* **使用线程**:在讨论 Bug 或功能时在线程中回复,以便 Claude 可以收集完整的上下文。

166 163 

167### 何时使用 Slack 与网络164### 何时使用 Slack 与网络

168 165 

169**在以下情况下使用 Slack**:上下文已存在于 Slack 讨论中,您想异步启动任务,或者您正在与需要可见性的团队成员协作。166**在以下情况下使用 Slack**:您想异步启动任务,或者您正在与需要可见性的团队成员协作。

170 167 

171**直接在网络上使用**:当您需要上传文件、想要在开发过程中进行实时交互或处理更长、更复杂的任务时。168**直接在网络上使用**:当您需要上传文件、想要在开发过程中进行实时交互或处理更长、更复杂的任务时。

172 169 

Details

74 74 

75默认情况下,Claude Code 在某些终端中发送桌面通知,在其他终端中则发送铃声字符或不发送任何内容:75默认情况下,Claude Code 在某些终端中发送桌面通知,在其他终端中则发送铃声字符或不发送任何内容:

76 76 

77* **Ghostty、Kitty 和 iTerm2**:发送桌面通知,其中 iTerm2 仅在您启用其警报设置后才会显示。77* **Ghostty、Kitty 和 iTerm2(当 Claude Code 检测到它们时)**:发送桌面通知,其中 iTerm2 仅在您启用其警报设置后才会显示。

78* **Apple Terminal**:没有声音;当 Claude Code 发现最前方 Terminal 窗口的描述文件中"Audible bell"已关闭时,发送静音铃声字符,否则不发送任何内容。如果该描述文件的"Visual bell"或 Dock 弹跳选项已启用,该铃声字符会显示为窗口闪烁,或在 Terminal 处于后台时显示为 Dock 图标弹跳。78* **Apple Terminal**:没有声音;当 Claude Code 发现最前方 Terminal 窗口的描述文件中"Audible bell"已关闭时,发送静音铃声字符,否则不发送任何内容。如果该描述文件的"Visual bell"或 Dock 弹跳选项已启用,该铃声字符会显示为窗口闪烁,或在 Terminal 处于后台时显示为 Dock 图标弹跳。

79* **其他终端**:不发送任何内容。79* **其他终端**:不发送任何内容。

80 80 


86}86}

87```87```

88 88 

89桌面通知通过 SSH 到达您的本地计算机,因此远程会话仍然可以提醒您。Ghostty 和 Kitty 将其转发到您的操作系统通知中心,无需进一步设置。iTerm2 要求您启用转发:89当您从未在 tmux 中运行的终端通过 SSH 连接时,请在运行 Claude Code 的计算机上将 [`preferredNotifChannel`](https://code.claude.com/docs/zh-CN/settings-reference#preferrednotifchannel) 设置为您本地终端对应的值:`"iterm2"`、`"kitty"` 或 `"ghostty"`。这样桌面通知就会到达您的本地计算机。Ghostty 和 Kitty 将其转发到您的操作系统通知中心,无需进一步设置。iTerm2 要求您启用转发:

90 90 

91**1. 打开 iTerm2 通知设置**91**1. 打开 iTerm2 通知设置**

92 92 


131 131 

132## 配置 tmux132## 配置 tmux

133 133 

134当 Claude Code 在 tmux 中运行时,默认情况下 Shift+Enter 提交而不是插入换行符,桌面通知和[进度条](https://code.claude.com/docs/zh-CN/settings-reference.md#terminalprogressbarenabled)永远无法到达外部终端。将这些行添加到 `~/.tmux.conf`,然后运行 `tmux source-file ~/.tmux.conf` 将其应用到运行中的服务器:134当 Claude Code 在 tmux 中运行时,默认情况下 Shift+Enter 提交而不是插入换行符,桌面通知也无法到达外部终端。将这些行添加到 `~/.tmux.conf`,然后运行 `tmux source-file ~/.tmux.conf` 将其应用到运行中的服务器:

135 135 

136```bash ~/.tmux.conf theme={null}136```bash ~/.tmux.conf theme={null}

137set -g allow-passthrough on137set -g allow-passthrough on


140set -as terminal-features 'xterm*:extkeys'140set -as terminal-features 'xterm*:extkeys'

141```141```

142 142 

143`allow-passthrough` 行允许通知和进度更新到达外部终端,而不是被 tmux 吞掉。`extended-keys` 行让 tmux 区分 Shift+Enter 和普通 Enter,这样换行快捷键就能工作。143要将通知从可见窗格发送到外部终端,请保留 `allow-passthrough` 行,并将 [`preferredNotifChannel`](https://code.claude.com/docs/zh-CN/settings-reference#preferrednotifchannel) 设置为 `"iterm2"`、`"kitty"` 或 `"ghostty"`。使用此示例时,位于您未查看的窗口中的窗格不会发送任何通知。`extended-keys` 行让 tmux 区分 Shift+Enter 和普通 Enter,这样换行快捷键就能工作。

144 144 

145[mod 的 `Image`](https://code.claude.com/docs/zh-CN/plugins/mods/reference#elements) 需要 `allow-passthrough` 和 `focus-events` 行,以及其他[在 tmux 中绘制的要求](https://code.claude.com/docs/zh-CN/plugins/mods/gallery.md#draw-an-image-inside-tmux)。添加这些行后,还需要从 tmux 分离、重新连接,然后重启 Claude Code。145[mod 的 `Image`](https://code.claude.com/docs/zh-CN/plugins/mods/reference#elements) 需要 `allow-passthrough` 和 `focus-events` 行,以及其他[在 tmux 中绘制的要求](https://code.claude.com/docs/zh-CN/plugins/mods/gallery.md#draw-an-image-inside-tmux)。添加这些行后,还需要从 tmux 分离、重新连接,然后重启 Claude Code。

146 146 

Details

39| `Monitor` | 在后台运行命令并将每个输出行反馈给 Claude,以便它可以在对话过程中对日志条目、文件更改或轮询状态做出反应。还可以打开 WebSocket 并将每条传入消息视为事件。请参阅 [Monitor 工具](#monitor-tool) | 是 |39| `Monitor` | 在后台运行命令并将每个输出行反馈给 Claude,以便它可以在对话过程中对日志条目、文件更改或轮询状态做出反应。还可以打开 WebSocket 并将每条传入消息视为事件。请参阅 [Monitor 工具](#monitor-tool) | 是 |

40| `NotebookEdit` | 修改 Jupyter notebook 单元格。请参阅 [NotebookEdit 工具行为](#notebookedit-tool-behavior) | 是 |40| `NotebookEdit` | 修改 Jupyter notebook 单元格。请参阅 [NotebookEdit 工具行为](#notebookedit-tool-behavior) | 是 |

41| `PowerShell` | 本地执行 PowerShell 命令。请参阅 [PowerShell 工具](#powershell-tool)了解可用性 | 是 |41| `PowerShell` | 本地执行 PowerShell 命令。请参阅 [PowerShell 工具](#powershell-tool)了解可用性 | 是 |

42| `PushNotification` | 发送桌面通知,以及当 [Remote Control](https://code.claude.com/docs/zh-CN/remote-control.md) 连接时的手机推送,以便长时间运行的任务或[会话级定时任务](https://code.claude.com/docs/zh-CN/scheduled-tasks.md)可以在您离开时联系您。推送传递通过 Anthropic 托管的基础设施运行,无法从 Amazon Bedrock、AWS 上的 Claude Platform、Google Cloud 的 Agent Platform 或 Microsoft Foundry 访问 | 否 |42| `PushNotification` | 从本地会话发送桌面通知,并在使用 [Remote Control](https://code.claude.com/docs/zh-CN/remote-control.md) 时或在[云端会话](https://code.claude.com/docs/zh-CN/claude-code-on-the-web.md)中发送手机推送。推送传递通过 Anthropic 托管的基础设施运行,无法从 Amazon Bedrock、AWS 上的 Claude Platform、Google Cloud 的 Agent Platform 或 Microsoft Foundry 访问 | 否 |

43| `Read` | 读取文件的内容。请参阅 [Read 工具行为](#read-tool-behavior) | 否 |43| `Read` | 读取文件的内容。请参阅 [Read 工具行为](#read-tool-behavior) | 否 |

44| `ReadMcpResourceTool` | 按 URI 读取特定 MCP 资源 | 否 |44| `ReadMcpResourceTool` | 按 URI 读取特定 MCP 资源 | 否 |

45| `RemoteTrigger` | 在 claude.ai 上创建、更新、运行和列出[云端定时任务](https://code.claude.com/docs/zh-CN/routines.md)(以前称为 Routine)。支持 `/schedule` 命令。[`RemoteTrigger` 输入参考](https://code.claude.com/docs/zh-CN/agent-sdk/typescript#remotetrigger)记录了每个操作和删除该工具的组织策略。云端定时任务位于 claude.ai 上,需要 Pro、Max、Ultra、Team 或 Enterprise 计划。因此,此工具无法从 Amazon Bedrock、AWS 上的 Claude Platform、Google Cloud 的 Agent Platform 或 Microsoft Foundry 访问 | 否 |45| `RemoteTrigger` | 在 claude.ai 上创建、更新、运行和列出[云端定时任务](https://code.claude.com/docs/zh-CN/routines.md)(以前称为 Routine)。支持 `/schedule` 命令。[`RemoteTrigger` 输入参考](https://code.claude.com/docs/zh-CN/agent-sdk/typescript#remotetrigger)记录了每个操作和删除该工具的组织策略。云端定时任务位于 claude.ai 上,需要 Pro、Max、Ultra、Team 或 Enterprise 计划。因此,此工具无法从 Amazon Bedrock、AWS 上的 Claude Platform、Google Cloud 的 Agent Platform 或 Microsoft Foundry 访问 | 否 |

vs-code.md +12 −3

Details

818 818 

819### 在 VS Code 中运行 CLI819### 在 VS Code 中运行 CLI

820 820 

821如需在不离开 VS Code 的情况下使用 CLI,请在 Windows/Linux 上按 `` Ctrl+` ``,或在 Mac 上按 `` Cmd+` `` 打开集成终端,然后运行 `claude`。启动 `claude` 并不会安装扩展。如果没有安装扩展,在集成终端中运行 `/ide` 会报告 "No available IDEs detected",而 `/status` 会将 IDE 显示为 "Not connected"。821如需在不离开 VS Code 的情况下使用 CLI,请在 Windows/Linux 上按 `` Ctrl+` ``,或在 Mac 上按 `` Cmd+` `` 打开集成终端,然后运行 `claude`。

822 822 

823如需获得 diff 查看和诊断信息共享等功能,请从集成终端或外部终端将 CLI 连接到扩展:823如需获得 diff 查看和诊断信息共享等功能,请从集成终端或外部终端将 CLI 连接到扩展:

824 824 

825* **集成终端**:[安装扩展](#install-the-extension),然后启动 `claude`。CLI 会自动连接。825* **集成终端**:[安装扩展](#install-the-extension),然后启动 `claude`。CLI 会自动连接。Claude Code v2.1.318 或更高版本不会为您安装扩展,因此在您安装扩展之前,`/ide` 会报告 "No available IDEs detected",而 `/status` 会将 IDE 显示为 "Not connected"。

826* **外部终端**:在 Claude Code 中运行 `/ide` 以连接到 VS Code。如果 VS Code 正在运行但未安装扩展,`/ide` 会自动安装扩展,除非您关闭了 [`autoInstallIdeExtension`](https://code.claude.com/docs/zh-CN/settings-reference#autoinstallideextension)。826* **外部终端**:在 Claude Code 中运行 `/ide` 以连接到 VS Code。如果 VS Code 正在运行但未安装扩展,`/ide` 会自动安装扩展,除非您关闭了 [`autoInstallIdeExtension`](https://code.claude.com/docs/zh-CN/settings-reference#autoinstallideextension)。

827 827 

828安装扩展并不会将 `claude` 添加到您的 shell PATH 中。扩展为其聊天面板捆绑了一份私有的 CLI 副本,但要在终端中输入 `claude`,需要进行[独立 CLI 安装](https://code.claude.com/docs/zh-CN/setup.md)。只需安装一次,本页中的命令(包括 `claude mcp add` 和 `claude --resume`)即可在任何终端中使用。如果安装后仍然找不到 `claude`,请[验证您的 PATH](https://code.claude.com/docs/zh-CN/troubleshoot-install.md#verify-your-path)。828安装扩展并不会将 `claude` 添加到您的 shell PATH 中。扩展为其聊天面板捆绑了一份私有的 CLI 副本,但要在终端中输入 `claude`,需要进行[独立 CLI 安装](https://code.claude.com/docs/zh-CN/setup.md)。只需安装一次,本页中的命令(包括 `claude mcp add` 和 `claude --resume`)即可在任何终端中使用。如果安装后仍然找不到 `claude`,请[验证您的 PATH](https://code.claude.com/docs/zh-CN/troubleshoot-install.md#verify-your-path)。


10912. 搜索"Claude Code"10912. 搜索"Claude Code"

10923. 点击 **Uninstall**10923. 点击 **Uninstall**

1093 1093 

1094启动 `claude` 时,该扩展会保持卸载状态。如果您在 VS Code 运行期间从外部终端运行 `/ide`,Claude Code 会重新安装该扩展。要阻止这种情况,请在 `~/.claude.json` 中将 [`autoInstallIdeExtension`](https://code.claude.com/docs/zh-CN/settings-reference#autoinstallideextension) 设置为 `false`,或在集成终端中通过 `/config` 关闭 **Auto-install IDE extension**。您也可以将 [`CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL`](https://code.claude.com/docs/zh-CN/env-vars) 环境变量设置为 `1`。1094如果您在卸载后执行以下任一操作,该扩展会被重新安装:

1095 

1096* 在 VS Code 运行期间从外部终端运行 `/ide`

1097* 在 v2.1.318 之前的 Claude Code 版本中,于集成终端内启动 `claude`

1098 

1099要阻止该扩展被重新安装,请执行以下任一操作;如果扩展已被重新安装,请再次将其卸载:

1100 

1101* 在 `~/.claude.json` 中将 [`autoInstallIdeExtension`](https://code.claude.com/docs/zh-CN/settings-reference#autoinstallideextension) 设置为 `false`

1102* 在[设置文件](https://code.claude.com/docs/zh-CN/env-vars.md#in-settings-files)的 `env` 下将 [`CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL`](https://code.claude.com/docs/zh-CN/env-vars#variables) 设置为 `1`

1103* 在集成终端中,通过 `/config` 关闭 **Auto-install IDE extension**

1095 1104 

1096如果还要删除扩展数据并重置所有设置,请删除您所用平台上该扩展的存储目录。1105如果还要删除扩展数据并重置所有设置,请删除您所用平台上该扩展的存储目录。

1097 1106 

Details

12 12 

13云会话在云基础设施上运行 Claude Code,而不是在您的机器上,默认由 Anthropic 管理。此快速入门从浏览器中的 [claude.ai/code](https://claude.ai/code) 启动一个会话。您也可以从 Claude 移动应用、Desktop 应用或终端使用 `claude --cloud` 启动一个会话。13云会话在云基础设施上运行 Claude Code,而不是在您的机器上,默认由 Anthropic 管理。此快速入门从浏览器中的 [claude.ai/code](https://claude.ai/code) 启动一个会话。您也可以从 Claude 移动应用、Desktop 应用或终端使用 `claude --cloud` 启动一个会话。

14 14 

15您需要一个 GitHub 仓库来[开始使用](#connect-github)。Claude 将其克隆到隔离的虚拟机中,进行更改,并为您推送一个分支以供审查。会话在设备间持久化,因此您在笔记本电脑上开始的任务稍后可以从手机上审查。每个会话都会与您的其他 Claude 和 Claude Code 用量一起计入您计划的用量限制,云端虚拟机不会单独收费。15Claude 将您选择的 [GitHub 仓库](#connect-github)克隆到隔离的虚拟机中,进行更改,并为您推送一个分支以供审查。会话在设备间持久化,因此您在笔记本电脑上开始的任务稍后可以从手机上审查。每个会话都会与您的其他 Claude 和 Claude Code 用量一起计入您计划的用量限制,云端虚拟机不会单独收费。

16 16 

17云会话适用于:17云会话适用于:

18 18 


44| **您从以下位置启动它** | claude.ai/code、Claude 移动应用、选择了 **Cloud** 的 Desktop 应用,或 `claude --cloud` | 您的终端、您的 IDE,或选择了 **Local** 的 Desktop 应用 | 您的终端、VS Code 扩展,或 Desktop 应用 |44| **您从以下位置启动它** | claude.ai/code、Claude 移动应用、选择了 **Cloud** 的 Desktop 应用,或 `claude --cloud` | 您的终端、您的 IDE,或选择了 **Local** 的 Desktop 应用 | 您的终端、VS Code 扩展,或 Desktop 应用 |

45| **您从以下位置聊天** | claude.ai、移动应用,或 Desktop 应用 | 您启动它的位置 | claude.ai 或移动应用,以及您启动它的位置 |45| **您从以下位置聊天** | claude.ai、移动应用,或 Desktop 应用 | 您启动它的位置 | claude.ai 或移动应用,以及您启动它的位置 |

46| **使用您的本地配置** | 否,仅限仓库 | 是 | 是 |46| **使用您的本地配置** | 否,仅限仓库 | 是 | 是 |

47| **需要 GitHub** | 是,或通过 `--cloud` [捆绑本地仓库](https://code.claude.com/docs/zh-CN/claude-code-on-the-web.md#send-local-repositories-without-github) | 否 | 否 |47| **需要 GitHub** | 对于 GitHub 仓库为是,除非 `--cloud` [捆绑您的本地仓库](https://code.claude.com/docs/zh-CN/claude-code-on-the-web.md#send-local-repositories-without-github) | 否 | 否 |

48| **断开连接时继续运行** | 是 | 否 | 当会话在您的机器上保持打开时 |48| **断开连接时继续运行** | 是 | 否 | 当会话在您的机器上保持打开时 |

49| **[权限模式](https://code.claude.com/docs/zh-CN/permission-modes.md)** | 接受编辑、Plan、自动 | 终端中的所有模式;请参阅 [切换权限模式](https://code.claude.com/docs/zh-CN/permission-modes.md#switch-permission-modes) 了解 IDE 和 Desktop 应用 | 从 claude.ai 和移动应用中的手动、接受编辑、Plan 或自动 |49| **[权限模式](https://code.claude.com/docs/zh-CN/permission-modes.md)** | 接受编辑、Plan、自动 | 终端中的所有模式;请参阅 [切换权限模式](https://code.claude.com/docs/zh-CN/permission-modes.md#switch-permission-modes) 了解 IDE 和 Desktop 应用 | 从 claude.ai 和移动应用中的手动、接受编辑、Plan 或自动 |

50| **网络访问** | 每个环境可配置 | 您的机器网络 | 您的机器网络 |50| **网络访问** | 每个环境可配置 | 您的机器网络 | 您的机器网络 |


138 138 

139[权限模式控件](https://code.claude.com/docs/zh-CN/permission-modes.md#switch-permission-modes)显示会话将在其中运行的权限模式:139[权限模式控件](https://code.claude.com/docs/zh-CN/permission-modes.md#switch-permission-modes)显示会话将在其中运行的权限模式:

140 140 

141* **Auto**:分类器审查 Claude 的操作,而不是询问您。当您的组织允许自动模式且所选模型支持它时出现141* **Auto**:分类器审查 Claude 的操作,而不是询问您。除非您的组织关闭了[自动模式](https://code.claude.com/docs/zh-CN/permission-modes.md#eliminate-prompts-with-auto-mode),否则会显示此选项。在 claude.ai/code 上,如果它显示为灰色,请选择支持自动模式的模型

142* **Accept edits**:Claude 进行更改并推送分支而无需停止以获得批准142* **Accept edits**:Claude 进行更改并推送分支而无需停止以获得批准

143* **Plan**:Claude 提出方法并等待您批准后再编辑文件143* **Plan**:Claude 提出方法并等待您批准后再编辑文件

144 144 


209 209 

210### 页面仅显示 GitHub 登录按钮210### 页面仅显示 GitHub 登录按钮

211 211 

212云会话需要连接的 GitHub 账户。通过上面的浏览器流程连接,或如果您使用 GitHub CLI,从您的终端运行 `/web-setup`。如果您根本不想连接 GitHub,请参阅 [Remote Control](https://code.claude.com/docs/zh-CN/remote-control.md) 以在您自己的机器上运行 Claude Code 并从浏览器或手机监控它。212要在云端会话中处理 GitHub 仓库,请[连接您的 GitHub 账户](#connect-github),或者如果您使用 GitHub CLI,从您的终端运行 `/web-setup`。如果您根本不想连接 GitHub,请参阅 [Remote Control](https://code.claude.com/docs/zh-CN/remote-control.md) 以在您自己的机器上运行 Claude Code 并从浏览器或手机监控它。

213 213 

214### "Claude Code isn't available on your account"214### "Claude Code isn't available on your account"

215 215 


242 242 

243### 设置脚本失败243### 设置脚本失败

244 244 

245设置脚本以非零状态退出,这会阻止会话启动。常见原因:245[设置脚本](https://code.claude.com/docs/zh-CN/cloud-environments.md#setup-scripts)以非零状态退出,因此会话未能启动,或者虽已启动但缺少脚本未能安装的内容。如果会话已启动,您可以继续在其中工作。

246 

247常见原因:

246 248 

247* 包安装失败,因为注册表不在您的[网络访问级别](https://code.claude.com/docs/zh-CN/cloud-environments.md#access-levels)中。`Trusted` 涵盖大多数包管理器;`None` 阻止它们全部。249* 包安装失败,因为注册表不在您的[网络访问级别](https://code.claude.com/docs/zh-CN/cloud-environments.md#access-levels)中。`Trusted` 涵盖大多数包管理器;`None` 阻止它们全部。

248* 脚本引用在新鲜克隆中不存在的文件或路径。250* 脚本引用在新鲜克隆中不存在的文件或路径。

249* 在本地工作的命令在 Ubuntu 上需要不同的调用。251* 在本地工作的命令在 Ubuntu 上需要不同的调用。

250 252 

251要调试,在脚本顶部添加 `set -x` 以查看哪个命令失败。对于非关键命令,附加 `|| true` 以便它们不会阻止会话启动。253要调试,在脚本顶部添加 `set -x` 以查看哪个命令失败。对于非关键命令,附加 `|| true`,以免它们导致脚本失败。修复原因后,启动新会话以便脚本再次运行。如果未能启动的是[云端定时任务](https://code.claude.com/docs/zh-CN/routines.md)的一次运行,请在该任务的详情页面上点击**立即运行**,而不是启动新会话。

252 254 

253### 新会话在设置期间挂起或超时255### 新会话在设置期间挂起或超时

254 256