SpyBara
Go Premium

Documentation 2026-10-02 22:59 UTC to 2026-10-03 01:57 UTC

12 files changed +168 −86. View all changes and history on the product overview
2026
Sat 3 01:57 Fri 2 22:59 Thu 1 23:59

chrome.md +1 −1

Details

130在 VS Code 会话中,Claude Code 是否在浏览器操作前询问您,取决于该会话连接到您浏览器的方式:130在 VS Code 会话中,Claude Code 是否在浏览器操作前询问您,取决于该会话连接到您浏览器的方式:

131 131 

132* **您键入了 `@browser`**:扩展程序会批准 Claude Code 原本会询问您的每个浏览器操作。132* **您键入了 `@browser`**:扩展程序会批准 Claude Code 原本会询问您的每个浏览器操作。

133* **[Enabled by default](#enable-chrome-by-default) 设置在启动时建立了连接**:在 Manual、Edit automatically、Auto 和 Bypass permissions 模式下,Claude Code 会在浏览器操作前询问您,直到您在该会话中键入 `@browser`。133* **[Enabled by default](#enable-chrome-by-default) 设置在启动时建立了连接**:在 Manual、Edit automatically、Auto 和 Bypass permissions 模式下,对于您尚未允许的网站,Claude Code 会在浏览器操作前询问您,直到您在该会话中键入 `@browser`。

134 134 

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

136 Plan Mode 中的浏览器工具136 Plan Mode 中的浏览器工具

Details

79| 字段 | 必需 | 描述 |79| 字段 | 必需 | 描述 |

80| - | - | - |80| - | - | - |

81| `issuer` | 是 | OIDC 发现基础。必须在 `/.well-known/openid-configuration` 提供发现。在生产中使用 HTTPS;网关接受 `http://` 发行者。环回发行者(如 `http://localhost:8081`)被[SSRF 防护](/docs/zh-CN/claude-apps-gateway-deploy#threat-model-summary)拒绝,除非在网关的环境中设置了 `CLAUDE_GATEWAY_ALLOW_LOOPBACK=1`。 |81| `issuer` | 是 | OIDC 发现基础。必须在 `/.well-known/openid-configuration` 提供发现。在生产中使用 HTTPS;网关接受 `http://` 发行者。环回发行者(如 `http://localhost:8081`)被[SSRF 防护](/docs/zh-CN/claude-apps-gateway-deploy#threat-model-summary)拒绝,除非在网关的环境中设置了 `CLAUDE_GATEWAY_ALLOW_LOOPBACK=1`。 |

82| `client_id` / `client_secret` | 是 | 来自您的 OAuth 客户端注册 |82| `client_id` | 是 | 来自您的 OAuth 客户端注册 |

83| `client_secret` | 除非 `token_endpoint_auth_method` 为 `private_key_jwt` | 来自您的 OAuth 客户端注册。使用[证书客户端身份验证](#certificate-client-authentication)时省略此项。 |

83| `allowed_email_domains` | 否 | 拒绝 `email` 声明不在这些域之一中的 id\_tokens,不区分大小写。针对多租户 IdP 配置错误的深度防御。独立于此设置,`email_verified` 声明明确为 `false` 的 id\_token 总是被拒绝。 |84| `allowed_email_domains` | 否 | 拒绝 `email` 声明不在这些域之一中的 id\_tokens,不区分大小写。针对多租户 IdP 配置错误的深度防御。独立于此设置,`email_verified` 声明明确为 `false` 的 id\_token 总是被拒绝。 |

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

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


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

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

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

94| `token_endpoint_auth_method` | 否 | 覆盖令牌端点身份验证方法。接受 `client_secret_basic` 或 `client_secret_post`。默认自动协商。 |95| `token_endpoint_auth_method` | 否 | 网关向 IdP 令牌端点进行身份验证的方式:`client_secret_basic`、`client_secret_post`,或用于[证书客户端身份验证](#certificate-client-authentication)的 `private_key_jwt`。默认情况下,网关根据 IdP 公布的内容从两种 `client_secret` 方法中选择一种。 |

96| `client_assertion` | 使用 `private_key_jwt` 时 | 包含 `private_key_pem` 和 `certificate_pem` 的块:用于[证书客户端身份验证](#certificate-client-authentication)的私钥和证书。需要 v2.1.284 或更高版本。 |

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

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

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


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

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

101 103 

104<h4 id="certificate-client-authentication">

105 证书客户端身份验证

106</h4>

107 

108如果您的身份提供商使用证书而不是客户端密钥对 OAuth 客户端进行身份验证(如 Microsoft Entra 使用证书凭据),请设置 `token_endpoint_auth_method: private_key_jwt`。需要网关服务器上的 Claude Code v2.1.284 或更高版本。

109 

110使用此配置时,网关不发送任何密钥。当开发人员登录时以及网关每次刷新其会话时,网关使用由证书私钥签名的短期 JWT 向 IdP 的令牌端点进行身份验证。该 JWT 使用 RS256 签名,并通过 `x5t` 和 `x5t#S256` 指纹标头而不是 `kid` 来标识证书。您的 IdP 必须能够按指纹找到已注册的证书。

111 

112<Steps>

113 <Step title="创建密钥和证书">

114 创建一个至少 2048 位的未加密 RSA 私钥(PKCS#8 或 PKCS#1 PEM 格式),并为其创建证书。对于任何不满足这些条件的密钥,网关都会拒绝启动。以下 `openssl` 命令会创建这样的密钥以及有效期为一年的自签名证书:

115 

116 ```bash theme={null}

117 openssl req -x509 -newkey rsa:2048 -nodes -keyout idp-client.key -out idp-client.crt -days 365 -subj "/CN=claude-gateway"

118 ```

119 

120 它会将 `idp-client.key` 和 `idp-client.crt` 写入当前目录。将这两个文件复制或挂载到网关可以读取的位置。第 3 步中的示例使用 `/etc/gateway/`。

121 </Step>

122 

123 <Step title="将证书上传到 IdP">

124 将证书(而不是私钥)上传到 IdP 上网关的应用注册。

125 </Step>

126 

127 <Step title="将密钥和证书添加到 gateway.yaml">

128 在 `client_assertion` 块中向网关提供私钥和证书。省略 `client_secret`,因为当它与 `private_key_jwt` 一起设置时,网关会拒绝启动。以下 `oidc` 块使用证书向 Microsoft Entra 租户对网关进行身份验证:

129 

130 ```yaml theme={null}

131 oidc:

132 issuer: https://login.microsoftonline.com/<tenant-id>/v2.0

133 client_id: <application-id>

134 token_endpoint_auth_method: private_key_jwt

135 client_assertion:

136 private_key_pem: ${file:/etc/gateway/idp-client.key}

137 certificate_pem: ${file:/etc/gateway/idp-client.crt}

138 ```

139 

140 这两个值都是 PEM 内容,而不是文件路径,因此请像示例那样使用 `${file:/path}` 加载挂载的文件。除非 `certificate_pem` 是单个 PEM 证书(不含证书链的其余部分)且其公钥与 `private_key_pem` 匹配,否则网关会拒绝启动。

141 </Step>

142 

143 <Step title="重启网关并检查启动日志">

144 重启网关,并在启动日志中找到以下行:

145 

146 ```text theme={null}

147 [gateway] 2026-10-01T23:07:40.512Z info oidc: client authentication private_key_jwt; certificate CN=claude-gateway, SHA-1 thumbprint DE92821854EE8BAA1D98C758FAA04AABE80B9F57, expires Oct 1 23:07:31 2027 GMT

148 ```

149 

150 将该 SHA-1 指纹与 IdP 为您上传的证书显示的指纹进行比较。如果证书已过期或尚未生效,网关仍会启动,但会记录一条警告,说明在您替换证书之前登录和刷新都将失败。要确认 IdP 接受该证书,请让一位开发人员通过网关登录。

151 </Step>

152</Steps>

153 

154<h4 id="rotate-the-client-certificate">

155 轮换客户端证书

156</h4>

157 

158网关在启动时读取一次密钥和证书,因此更改后的文件仅在重启后生效。请按以下顺序轮换,以确保任何令牌请求都不会出示 IdP 中不存在的证书:

159 

1601. 将新证书与旧证书一起上传到 IdP。

1612. 替换 `gateway.yaml` 加载的密钥和证书文件,然后重启网关。

1623. 从 IdP 中删除旧证书。

163 

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

103 通过前向代理的 IdP 请求165 通过前向代理的 IdP 请求

104</h4>166</h4>

Details

25 身份提供商设置25 身份提供商设置

26</h2>26</h2>

27 27 

28向身份提供商注册一个机密 OAuth/OpenID Connect (OIDC) Web 应用程序,使用单个重定向 URI `https://<gateway>/oauth/callback`,并将其分配给应该有网关访问权限的用户或组。28向身份提供商注册一个机密 OAuth/OpenID Connect (OIDC) Web 应用程序,使用单个重定向 URI `https://<gateway>/oauth/callback`,并将其分配给应该有网关访问权限的用户或组。网关使用该注册的客户端密钥向 IdP 进行身份验证;如果您的 IdP 改用[证书凭据](/docs/zh-CN/claude-apps-gateway-config#certificate-client-authentication),则使用您上传到该注册的证书进行身份验证。

29 29 

30任何符合 OIDC 的 IdP 都可以工作:Okta、Microsoft Entra ID、Google Workspace、Keycloak、Dex、PingFederate 等。IdP 必须满足三个要求:30任何符合 OIDC 的 IdP 都可以工作:Okta、Microsoft Entra ID、Google Workspace、Keycloak、Dex、PingFederate 等。IdP 必须满足三个要求:

31 31 

Details

176 会话如何处理传入消息176 会话如何处理传入消息

177</h2>177</h2>

178 178 

179当会话 A 向会话 B 发送消息时,Claude Code 告诉 B 的 Claude 消息来自另一个会话,而不是来自您,并限制消息可以做什么:179当会话 A 向会话 B 发送消息时,Claude Code 会告诉 B 的 Claude 该消息来自另一个会话,而不是来自您,并限制该消息可以做什么:

180 180 

181* **它不能批准任何内容**:来自另一个会话的消息永远不计为您的同意,因此它不能代表您回答待处理的权限提示。181* **它不能批准任何内容**:来自另一个会话的消息永远不会被视为您的同意,因此它不能代表您回答待处理的权限提示。

182* **它不能改变配置**:Claude Code 指示接收 Claude 永远不要改变权限设置、`CLAUDE.md` 或其他配置,因为另一个会话要求。182* **它不能更改配置**:Claude Code 指示接收方 Claude 永远不要因为另一个会话的要求而更改权限设置、`CLAUDE.md` 或其他配置。

183* **命令不运行**:消息文本中的命令,如 `/compact`,作为纯文本到达。Claude Code 永远不执行它。183* **命令不会运行**:消息文本中的命令(如 `/compact`)以纯文本形式到达。Claude Code 永远不会执行它。

184* **权限提示仍然触发**:如果对消息进行操作需要接收会话没有的权限,您会看到与任何其他工作相同的提示。184* **权限提示仍会触发**:如果处理该消息需要接收会话不具备的权限,您会看到与任何其他工作相同的提示。

185 185 

186<h3 id="what-a-message-looks-like">186<h3 id="what-a-message-looks-like">

187 消息的样子187 消息的样子

188</h3>188</h3>

189 189 

190当消息到达时,Claude Code 在对话中将其显示为暗淡的单行预览,预览行之后保留在对话中。预览包含发送者的名称和消息的第一行,当它很长时用 `…` 切割,如 `› Message from @api-worker: Schema migration finished (ctrl+o to expand)`。190当消息到达时,Claude Code 会在对话中将其显示为暗淡的单行预览,该预览行之后会保留在对话中。预览包含发送者的名称和消息的第一行,消息较长时会用 `…` 截断,例如 `› Message from @api-worker: Schema migration finished (ctrl+o to expand)`。

191 191 

192这两个中的任何一个都显示您完整的文本:192以下任一方式都会向您显示完整文本:

193 193 

194* 按 `Ctrl+O` 打开[成绩单查看器](/docs/zh-CN/interactive-mode#transcript-viewer)并在发送者的会话名称下读取完整文本。194* 按 `Ctrl+O` 打开[会话记录查看器](/docs/zh-CN/interactive-mode#transcript-viewer),并在发送者的会话名称下阅读完整文本。

195* 在使用 [`--verbose`](/docs/zh-CN/cli-reference#cli-flags) 启动的会话中,Claude Code 显示完整文本而不是预览。195* 在使用 [`--verbose`](/docs/zh-CN/cli-reference#cli-flags) 启动的会话中,Claude Code 会显示完整文本而不是预览。

196 196 

197预览仅缩短您看到的内容。无论您是否展开它,Claude 都读取完整消息。197预览仅缩短您看到的内容。无论您是否展开它,Claude 都会读取完整消息。

198 198 

199Claude 接收消息时带有发送者的名称和回复地址,除了[单向跨机器消息](#message-sessions-on-other-machines),它不携带回复地址。199Claude 接收消息时会附带发送者的名称和回复地址,但[单向跨机器消息](#message-sessions-on-other-machines)除外,它不携带回复地址。

200 200 

201这个例子是一个 Claude 写给另一个的消息,当您展开它时其完整文本读作:201以下示例是一个 Claude 写给另一个 Claude 的消息,展示了展开后的完整文本:

202 202 

203```text wrap theme={null}203```text wrap theme={null}

204架构迁移已完成204Schema migration finished

205新列是 tenant_id,在 main 上变基现在是安全的。205The new column is tenant_id, and rebasing on main is safe now.

206```206```

207 207 

208<h3 id="control-inbound-messages">208<h3 id="control-inbound-messages">

209 控制入站消息209 控制入站消息

210</h3>210</h3>

211 211 

212设置 [`crossSessionInbound`](/docs/zh-CN/settings-reference#crosssessioninbound) 以选择会话对来自您的其他会话的到达消息做什么:212设置 [`crossSessionInbound`](/docs/zh-CN/settings-reference#crosssessioninbound) 以选择会话如何处理来自您其他会话的消息:

213 213 

214| 值 | 行为 |214| 值 | 行为 |

215| :- | :- |215| :- | :- |

216| `accept` | Claude Code 将每条消息传递给 Claude |216| `accept` | Claude Code 将每条消息传递给 Claude |

217| `hold` | Claude Code 为每条消息显示通知,不传递它。如果稍后应用 `accept`,根据[优先级规则](/docs/zh-CN/settings-reference#crosssessioninbound),Claude Code 释放保留的消息 |217| `hold` | Claude Code 为每条消息显示通知,但不传递它。如果之后根据[优先级规则](/docs/zh-CN/settings-reference#crosssessioninbound)适用 `accept`,Claude Code 会释放被保留的消息 |

218| `refuse` | Claude Code 删除每条消息而不传递它 |218| `refuse` | Claude Code 丢弃每条消息而不传递它 |

219 219 

220除了编辑设置文件,您可以在 `/config` 行**来自您的其他会话的消息**中选择值。Claude Code 将您选择的值写入您的用户设置。该行需要 Claude Code v2.1.232 或更高版本,当托管设置或 `--settings` 标志设置密钥时不出现,因为用户设置值不会应用。Claude Code 拒绝此密钥的 `/config crossSessionInbound=value` 快捷方式。220除了编辑设置文件,您还可以在 `/config` 的 **Messages from your other sessions** 行中选择该值。Claude Code 会将您选择的值写入您的用户设置。该行需要 Claude Code v2.1.232 或更高版本,并且当托管设置或 `--settings` 标志设置了该设置项时不会出现,因为此时用户设置中的值不会生效。对于此设置项,Claude Code 会拒绝 `/config crossSessionInbound=value` 简写形式。

221 221 

222要查看哪个值适用,请遵循[设置参考](/docs/zh-CN/settings-reference#crosssessioninbound)中的 `crossSessionInbound` 优先级规则。当没有值适用时,Claude Code 根据两个会话的权限模式按消息决定。它将[绕过权限提示](/docs/zh-CN/permission-modes#skip-all-checks-with-bypasspermissions-mode)的会话分组为一个类,每个其他会话分组为另一个。Plan Mode 在具有可用绕过权限的交互式终端会话中计为绕过,[auto](/docs/zh-CN/permission-modes#eliminate-prompts-with-auto-mode)、`acceptEdits` 和 `dontAsk` 计为提示:222要查看哪个值适用,请遵循[设置参考](/docs/zh-CN/settings-reference#crosssessioninbound)中的 `crossSessionInbound` 优先级规则。

223 223 

224* **接收会话提示权限**:Claude Code 传递每条消息。它仅当发送会话将自己标识为绕过权限提示时才为您的批准保留一条。224当没有值适用时,Claude Code 会根据两个会话的权限模式逐条消息做出决定。它将[绕过权限提示](/docs/zh-CN/permission-modes#skip-all-checks-with-bypasspermissions-mode)的会话归为一类,将其他所有会话归为另一类。在可使用绕过权限的交互式终端会话中,计划模式被视为绕过,而 [auto](/docs/zh-CN/permission-modes#eliminate-prompts-with-auto-mode)、`acceptEdits` 和 `dontAsk` 被视为提示:

225* **接收会话绕过权限提示**:Claude Code 为您的批准保留每条消息。它仅当发送会话也标识为绕过时才传递一条。

226 225 

227当默认保留消息时,Claude Code 在接收会话中打开批准对话。对话显示发送者和预览:226* **接收会话会提示权限**:Claude Code 传递每条消息。仅当发送会话将自身标识为绕过权限提示时,它才会保留该消息以等待您的批准。

227* **接收会话绕过权限提示**:Claude Code 保留每条消息以等待您的批准。仅当发送会话也将自身标识为绕过时,它才会传递该消息。

228 228 

229* **批准**将该条消息传递给 Claude。229当默认行为在交互式终端会话中保留消息时,Claude Code 会在该会话中打开批准对话框。对话框显示发送者和预览:

230* **拒绝**,或关闭对话,删除它。

231* 当对话在 [`dialogExpiry`](/docs/zh-CN/settings-reference#dialogexpiry) 截止日期后保持无答案时,Claude Code 关闭它并删除消息。截止日期默认为五分钟。

232* 当没有终端附加到[后台会话](/docs/zh-CN/agent-view)时,Claude Code 将对话保留在截止日期之后。在您附加后,如果对话在完整截止日期期间保持无答案,Claude Code 关闭它并删除消息。

233* 如果此会话的权限模式类在消息被保留时改变,Claude Code 重新应用入站规则,传递它们现在接受的消息,并显示通知。

234 230 

235Claude Code 最多保留 100 条消息,超过那个删除最旧的。231* **Approve** 将该条消息传递给 Claude。

232* **Deny** 或关闭对话框会丢弃该消息。

233* 当对话框在 [`dialogExpiry`](/docs/zh-CN/settings-reference#dialogexpiry) 截止时间后仍未得到回应时,Claude Code 会关闭它并丢弃消息。截止时间默认为五分钟。

234* 当没有终端连接到[后台会话](/docs/zh-CN/agent-view)时,Claude Code 会让对话框在截止时间之后保持打开。在您连接后,如果对话框在一个完整的截止时间段内仍未得到回应,Claude Code 会关闭它并丢弃消息。

235* 如果在消息被保留期间此会话的权限模式类别发生变化,Claude Code 会重新应用入站规则,传递现在被接受的消息,并显示通知。

236 

237VS Code 扩展或 Desktop 应用中的会话无法显示该对话框。在这些会话中,Claude Code 会将被保留的消息保留到相同的截止时间,如[非交互式会话](#non-interactive-sessions)中所述。

238 

239Claude Code 最多保留 100 条消息,超出后会丢弃最旧的消息。

236 240 

237<h3 id="non-interactive-sessions">241<h3 id="non-interactive-sessions">

238 非交互式会话242 非交互式会话

239</h3>243</h3>

240 244 

241Claude Code 为 [`claude -p`](/docs/zh-CN/headless) 会话绑定收件箱套接字,如交互式会话,因此长期运行的 `-p` 工作者可以接收消息并出现在列表中。当您在[裸模式](/docs/zh-CN/headless#start-faster-with-bare-mode)中启动会话时,Claude Code 不绑定套接字,因此该会话无法接收消息,不出现在代理列表中。245Claude Code 会像交互式会话一样为 [`claude -p`](/docs/zh-CN/headless) 会话绑定收件箱套接字,因此长期运行的 `-p` 工作进程可以接收消息并出现在列表中。当您在 [bare 模式](/docs/zh-CN/headless#start-faster-with-bare-mode)下启动会话时,Claude Code 不会绑定套接字,因此该会话无法接收消息,也不会出现在 Agent 列表中。

242 246 

243`-p` 会话无法显示批准对话。当[入站默认](#control-inbound-messages)在那里保留消息时,Claude Code 为相同的 [`dialogExpiry`](/docs/zh-CN/settings-reference#dialogexpiry) 截止日期保留它,对话使用的默认值为五分钟:247`-p` 会话无法显示批准对话框。当[入站默认行为](#control-inbound-messages)在此类会话中保留消息时,Claude Code 会将其保留到对话框所使用的相同 [`dialogExpiry`](/docs/zh-CN/settings-reference#dialogexpiry) 截止时间,默认为五分钟:

244 248 

245* **在截止日期之前**:如果模式或设置更改允许消息,Claude Code 传递它。249* **截止时间之前**:如果模式或设置的更改允许该消息,Claude Code 会传递它。

246* **在截止日期之后**:Claude Code 删除消息并向它可以到达的发送者报告它已过期。250* **截止时间之后**:Claude Code 会丢弃该消息,并向其能够联系到的发送者报告该消息已过期。

247 251 

248设置 `dialogExpiry` 为 `"never"` 以保留默认保留的消息直到会话结束。由显式 `hold` 设置保留的消息不过期;Claude Code 仅当稍后应用 `accept` 时才传递它。252将 `dialogExpiry` 设置为 `"never"` 可将默认保留的消息保留到会话结束。由显式 `hold` 设置保留的消息不会过期;仅当之后适用 `accept` 时,Claude Code 才会传递它。

249 253 

250要让 `-p` 工作者无人值守地接收消息,使用 `crossSessionInbound` 设置为 `accept` 在其 `--settings` 值中启动它。您的用户设置中的 `accept` 也有效,但适用于您运行的每个会话。254要让 `-p` 工作进程在无人值守的情况下接收消息,请在其 `--settings` 值中将 `crossSessionInbound` 设置为 `accept` 来启动它。在您的用户设置中设置 `accept` 也有效,但会应用于您运行的每个会话。

251 255 

252<h3 id="the-sessions-inbox-socket">256<h3 id="the-sessions-inbox-socket">

253 会话的收件箱套接字257 会话的收件箱套接字

254</h3>258</h3>

255 259 

256当您期望的会话不在代理列表中时,当您想要脚本或钩子发布到会话中时,或当沙箱命令无法到达套接字时,阅读本部分。260当您预期的会话不在 Agent 列表中、当您希望脚本或 hook 向会话发布消息,或者当沙箱中的命令无法访问套接字时,请阅读本节。

257 261 

258Claude Code 为启用跨会话消息传递的每个会话绑定收件箱套接字,同一机器上的其他会话在其中传递消息。套接字是 macOS 和 Linux 上的 Unix 域套接字,包括 WSL 2 内的 Linux,以及原生 Windows 上的命名管道。对于哪些会话类型绑定一个,请参阅[非交互式会话](#non-interactive-sessions)。262Claude Code 会为每个启用了跨会话消息传递的会话绑定一个收件箱套接字,同一机器上的其他会话通过它传递消息。在 macOS 和 Linux(包括 WSL 2 内的 Linux)上,该套接字是 Unix 域套接字;在原生 Windows 上则是命名管道。关于哪些类型的会话会绑定套接字,请参阅[非交互式会话](#non-interactive-sessions)。

259 263 

260您可以在两个地方找到套接字的路径:264您可以在两个地方找到套接字的路径:

261 265 

262* `/status` 在 `Peer address` 行中显示它。路径以 `uds:` 为前缀。266* `/status` 在 `Peer address` 行中显示它。路径以 `uds:` 为前缀。

263* Claude Code 将其导出到[钩子](/docs/zh-CN/hooks)和 Bash 命令作为 [`CLAUDE_CODE_MESSAGING_SOCKET`](/docs/zh-CN/env-vars#variables) 环境变量:267* Claude Code 会将其作为 [`CLAUDE_CODE_MESSAGING_SOCKET`](/docs/zh-CN/env-vars#variables) 环境变量导出给 [hook](/docs/zh-CN/hooks) 和 Bash 命令:

264 * 在以消息传递启动的会话中,Claude Code 在任何钩子运行之前导出变量,包括 `SessionStart`。268 * 在启动时即开启消息传递的会话中,Claude Code 会在任何 hook 运行之前导出该变量,包括 `SessionStart`。

265 269 

266在 macOS 和 Linux 上,Claude Code 将套接字限制为您的操作系统用户。在原生 Windows 上,它改为要求每个连接首先使用只有您的操作系统用户可以读取的密钥进行身份验证。无论哪种方式,在共享机器上,另一个用户的会话无法传递给它。270在 macOS 和 Linux 上,Claude Code 将套接字限制为仅供您的操作系统用户使用。在原生 Windows 上,它改为要求每个连接首先使用只有您的操作系统用户才能读取的密钥进行身份验证。无论哪种方式,在共享机器上,其他用户的会话都无法向其传递消息。

267 271 

268在 macOS 和 Linux 上,Claude Code 也拒绝在它无法接受的目录中创建套接字,例如另一个用户拥有的目录,并改为使用私有的每用户目录 `/tmp/cc-socks-<uid>`。当它无法接受任何目录时,会话运行而没有收件箱:Claude Code 显示通知,`/status` 在其 `Peer address` 行中显示 `unavailable` 和原因,[`--debug`](/docs/zh-CN/cli-reference#cli-flags) 日志记录完整拒绝。272在 macOS 和 Linux 上,Claude Code 还会拒绝在它无法接受的目录(例如由其他用户拥有的目录)中创建套接字,而是改用私有的每用户目录 `/tmp/cc-socks-<uid>`。当它无法接受任何目录时,会话将在没有收件箱的情况下运行:Claude Code 显示通知,`/status` 在其 `Peer address` 行中显示 `unavailable` 及原因,[`--debug`](/docs/zh-CN/cli-reference#cli-flags) 日志会记录完整的拒绝信息。

269 273 

270除了套接字的路径,Claude Code 导出每个会话令牌作为 [`CLAUDE_CODE_MESSAGING_TOKEN`](/docs/zh-CN/env-vars#variables)。发布到自己会话的套接字的脚本可以发送 `{"type":"auth","token":"<token>"}` 作为其连接的第一行,其中 `<token>` 是 `CLAUDE_CODE_MESSAGING_TOKEN` 的值。Claude Code 是否需要该行取决于平台:274除了套接字的路径,Claude Code 还会将每个会话的令牌导出为 [`CLAUDE_CODE_MESSAGING_TOKEN`](/docs/zh-CN/env-vars#variables)。向其自身会话的套接字发布消息的脚本可以将 `{"type":"auth","token":"<token>"}` 作为其连接的第一行发送,其中 `<token>` 是 `CLAUDE_CODE_MESSAGING_TOKEN` 的值。Claude Code 是否要求该行取决于平台:

271 275 

272* **macOS 和 Linux,包括 WSL 2**:该行是可选的。Claude Code 接受有或没有它的连接。276* **macOS 和 Linux,包括 WSL 2**:该行是可选的。无论是否包含该行,Claude Code 都会接受连接。

273* **原生 Windows**:该行是必需的。Claude Code 关闭任何第一行不是有效身份验证行的连接,不从该连接传递任何内容。277* **原生 Windows**:该行是必需的。Claude Code 会关闭第一行不是有效身份验证行的任何连接,并且不会传递来自该连接的任何内容。

274 278 

275仅在您发布的消息准备好时打开连接。Claude Code 关闭在 30 秒内未发送完整行的连接,因此首先捕获慢速命令的输出,然后打开连接以发送它。279仅在您要发布的消息准备就绪时才打开连接。Claude Code 会关闭在 30 秒内未发送完整一行的连接,因此请先捕获慢速命令的输出,然后再打开连接发送它。

276 280 

277<span id="own-child-messages" />Claude Code 通过套接字上到达的消息运行与任何其他对等消息相同的[入站控制](#control-inbound-messages),有一个例外和一个先决条件:281<span id="own-child-messages" />对于通过套接字到达的消息,Claude Code 会应用与任何其他对等消息相同的[入站控制](#control-inbound-messages),但有一个例外和一个前提条件:

278 282 

279* **自己的子消息**:当没有 `crossSessionInbound` 值适用时,Claude Code 传递它验证来自会话自己的子进程的消息,如钩子或 Bash 命令发布回自己会话的套接字。283* **自身子进程的消息**:当没有 `crossSessionInbound` 值适用时,Claude Code 会传递经其验证来自会话自身子进程的消息,例如 hook 或 Bash 命令向其自身会话的套接字回发的消息。

280 * 在 Linux 上,包括 WSL 2 内,Claude Code 可以通过进程证据验证,即使对于已经退出的子进程。在 macOS 上,它只能在发布进程仍在运行时通过这种方式验证,在 Claude Code 作为进程 ID 1 运行的容器中,它根本没有进程证据。在原生 Windows 上它也没有。284 * 在 Linux 上(包括 WSL 2 内),即使子进程已经退出,Claude Code 也可以通过进程证据进行验证。在 macOS 上,它只能在发布进程仍在运行时以这种方式验证;而在 Claude Code 以进程 ID 1 运行的容器中,它完全没有进程证据。在原生 Windows 上它也没有进程证据。

281 * 在 macOS 上发布进程已退出后,在 Claude Code 作为进程 ID 1 运行的容器中,该进程证据丢失,Claude Code 改为验证发送会话导出的 [`CLAUDE_CODE_MESSAGING_TOKEN`](/docs/zh-CN/env-vars#variables) 在打开其连接的身份验证行中的子进程。在原生 Windows 上,该令牌是 Claude Code 验证自己的子消息的唯一方式。285 * 在 macOS 上发布进程退出之后,以及在 Claude Code 以进程 ID 1 运行的容器中,该进程证据缺失,Claude Code 改为验证在打开其连接的身份验证行中发送了会话所导出的 [`CLAUDE_CODE_MESSAGING_TOKEN`](/docs/zh-CN/env-vars#variables) 的子进程。在原生 Windows 上,该令牌是 Claude Code 验证自身子进程消息的唯一方式。

282 * 当 Claude Code 无法以任何方式验证时,它将消息视为任何其他声称没有权限类的消息,因此绕过权限提示的会话为您的批准保留它。286 * 当 Claude Code 无法通过任何一种方式验证时,它会像对待任何其他未声明权限类别的消息一样对待该消息,因此绕过权限提示的会话会保留它以等待您的批准。

283* **沙箱会话**:使用沙箱的 Unix 套接字设置 [`sandbox.network.allowAllUnixSockets` 和 `sandbox.network.allowUnixSockets`](/docs/zh-CN/settings-reference#sandbox-settings) 控制 Bash 命令是否可以从[沙箱](/docs/zh-CN/sandboxing)内到达套接字。287* **沙箱中的会话**:使用沙箱的 Unix 套接字设置 [`sandbox.network.allowAllUnixSockets` 和 `sandbox.network.allowUnixSockets`](/docs/zh-CN/settings-reference#sandbox-settings) 控制 Bash 命令能否从[沙箱](/docs/zh-CN/sandboxing)内部访问套接字。

284 288 

285<h2 id="restrict-cross-session-messaging">289<h2 id="restrict-cross-session-messaging">

286 限制跨会话消息传递290 限制跨会话消息传递

env-vars.md +1 −0

Details

275| `CLAUDE_CODE_DISABLE_PERMISSION_PROMPT_NOTIFY_HOOKS` | 设置为 `1` 以停止 Claude Code 在 Claude Code 将它们发送到 Agent SDK 的 `canUseTool` 回调的会话中运行您的 [`Notification` hooks 用于未回答的权限请求](/docs/zh-CN/hooks#notification),这是 Claude Desktop 和 VS Code 扩展如何托管 Claude Code 的方式。在终端会话中无效。需要 Claude Code v2.1.233 或更高版本 |275| `CLAUDE_CODE_DISABLE_PERMISSION_PROMPT_NOTIFY_HOOKS` | 设置为 `1` 以停止 Claude Code 在 Claude Code 将它们发送到 Agent SDK 的 `canUseTool` 回调的会话中运行您的 [`Notification` hooks 用于未回答的权限请求](/docs/zh-CN/hooks#notification),这是 Claude Desktop 和 VS Code 扩展如何托管 Claude Code 的方式。在终端会话中无效。需要 Claude Code v2.1.233 或更高版本 |

276| `CLAUDE_CODE_DISABLE_POLICY_SKILLS` | 设置为 `1` 以跳过从系统范围的托管 skills 目录加载 skills。对于不应加载操作员配置的 skills 的容器或 CI 会话很有用 |276| `CLAUDE_CODE_DISABLE_POLICY_SKILLS` | 设置为 `1` 以跳过从系统范围的托管 skills 目录加载 skills。对于不应加载操作员配置的 skills 的容器或 CI 会话很有用 |

277| `CLAUDE_CODE_DISABLE_POWERSHELL_CMD_RM_DENY` | 设置为 `1` 以关闭 [PowerShell 工具](/docs/zh-CN/tools-reference#powershell-tool) 检查,该检查在 [系统路径](/docs/zh-CN/permission-modes#remove-item-in-powershell)(如驱动器根目录或您的主目录)上拒绝 `cmd` 内置命令 `rd`、`rmdir`、`del` 和 `erase`。Claude Code 在设置文件的 `env` 块中忽略此变量。需要 Claude Code v2.1.283 或更高版本 |277| `CLAUDE_CODE_DISABLE_POWERSHELL_CMD_RM_DENY` | 设置为 `1` 以关闭 [PowerShell 工具](/docs/zh-CN/tools-reference#powershell-tool) 检查,该检查在 [系统路径](/docs/zh-CN/permission-modes#remove-item-in-powershell)(如驱动器根目录或您的主目录)上拒绝 `cmd` 内置命令 `rd`、`rmdir`、`del` 和 `erase`。Claude Code 在设置文件的 `env` 块中忽略此变量。需要 Claude Code v2.1.283 或更高版本 |

278| `CLAUDE_CODE_DISABLE_STRUCTURED_OUTPUTS` | 设置为 `1` 可阻止 Claude Code 发送结构化输出的 `output_config.format` 字段以及与之配对的 `anthropic-beta` 值,适用于上游会拒绝它们的 [LLM 网关](/docs/zh-CN/llm-gateway-protocol#feature-pass-through)。这会保留 [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS`](/docs/zh-CN/llm-gateway-protocol#disable-pre-release-capabilities) 会关闭的其他预发布功能。需要 Claude Code v2.1.288 或更高版本 |

278| `CLAUDE_CODE_DISABLE_SUBSTITUTION_RM_PROMPT` | 设置为 `1` 以关闭 [关键路径](/docs/zh-CN/permission-modes#critical-paths) 检查,用于递归 `rm`,其目标完全是命令替换的输出,例如 `rm -rf "$(pwd)"`。其他关键路径检查继续运行。在启动 Claude Code 的环境中设置它,因为 Claude Code 忽略通过设置 `env` 块传递的副本。需要 Claude Code v2.1.281 或更高版本 |279| `CLAUDE_CODE_DISABLE_SUBSTITUTION_RM_PROMPT` | 设置为 `1` 以关闭 [关键路径](/docs/zh-CN/permission-modes#critical-paths) 检查,用于递归 `rm`,其目标完全是命令替换的输出,例如 `rm -rf "$(pwd)"`。其他关键路径检查继续运行。在启动 Claude Code 的环境中设置它,因为 Claude Code 忽略通过设置 `env` 块传递的副本。需要 Claude Code v2.1.281 或更高版本 |

279| `CLAUDE_CODE_DISABLE_TERMINAL_TITLE` | 设置为 `1` 以禁用基于对话上下文的自动终端标题更新。这也跳过生成 [会话标题](/docs/zh-CN/sessions#name-your-sessions) 的后台小/快速模型请求 |280| `CLAUDE_CODE_DISABLE_TERMINAL_TITLE` | 设置为 `1` 以禁用基于对话上下文的自动终端标题更新。这也跳过生成 [会话标题](/docs/zh-CN/sessions#name-your-sessions) 的后台小/快速模型请求 |

280| `CLAUDE_CODE_DISABLE_THINKING` | 设置为 `1` 以从 API 请求中完全省略 `thinking` 参数。这是代理和网关拒绝该参数的兼容性选项。在默认思考的模型上,省略参数意味着模型仍可能思考。要在 Anthropic API 上明确禁用 [扩展思考](https://platform.claude.com/docs/en/build-with-claude/extended-thinking),请改用 `MAX_THINKING_TOKENS=0`。两个变量都不会在 Opus 5.5、Sonnet 5.5 或 Fable 模型上关闭思考,这些模型无法关闭思考。在 [第三方提供商](/docs/zh-CN/third-party-integrations) 上,`MAX_THINKING_TOKENS=0` 同样省略参数,因此两个变量在那里的行为相同 |281| `CLAUDE_CODE_DISABLE_THINKING` | 设置为 `1` 以从 API 请求中完全省略 `thinking` 参数。这是代理和网关拒绝该参数的兼容性选项。在默认思考的模型上,省略参数意味着模型仍可能思考。要在 Anthropic API 上明确禁用 [扩展思考](https://platform.claude.com/docs/en/build-with-claude/extended-thinking),请改用 `MAX_THINKING_TOKENS=0`。两个变量都不会在 Opus 5.5、Sonnet 5.5 或 Fable 模型上关闭思考,这些模型无法关闭思考。在 [第三方提供商](/docs/zh-CN/third-party-integrations) 上,`MAX_THINKING_TOKENS=0` 同样省略参数,因此两个变量在那里的行为相同 |

hooks.md +1 −1

Details

1931| 字段 | 描述 |1931| 字段 | 描述 |

1932| :- | :- |1932| :- | :- |

1933| `permissionDecision` | `"allow"` 跳过权限提示,除了 [任何模式自动批准的操作](/docs/zh-CN/permission-modes#actions-no-mode-auto-approves) 和 `AskUserQuestion` 和 `ExitPlanMode`,它们需要 [`updatedInput` 与其配对](#allow-with-updatedinput)。`"deny"` 防止工具调用。`"ask"` 提示用户确认。`"defer"` 优雅地退出,以便稍后可以恢复工具。[拒绝和询问规则](/docs/zh-CN/permissions#manage-permissions) 仍然被评估,无论 hook 返回什么 |1933| `permissionDecision` | `"allow"` 跳过权限提示,除了 [任何模式自动批准的操作](/docs/zh-CN/permission-modes#actions-no-mode-auto-approves) 和 `AskUserQuestion` 和 `ExitPlanMode`,它们需要 [`updatedInput` 与其配对](#allow-with-updatedinput)。`"deny"` 防止工具调用。`"ask"` 提示用户确认。`"defer"` 优雅地退出,以便稍后可以恢复工具。[拒绝和询问规则](/docs/zh-CN/permissions#manage-permissions) 仍然被评估,无论 hook 返回什么 |

1934| `permissionDecisionReason` | 对于 `"ask"`,显示给用户但不显示给 Claude。对于 `"deny"`,显示给 Claude。对于 `"allow"` 和 `"defer"`,仅写入 [调试日志](#debug-hooks) |1934| `permissionDecisionReason` | 对于 `"ask"`,在权限提示中向用户显示。当 Claude Code 在无人能回应该提示的 `-p` 运行中[拒绝该调用](/docs/zh-CN/headless#turn-off-permission-prompts-in-unattended-runs)时,Claude 会改为在工具结果中读取该原因。对于 `"deny"`,向 Claude 显示。对于 `"allow"` 和 `"defer"`,仅写入[调试日志](#debug-hooks) |

1935| `updatedInput` | 在执行前修改工具的输入参数。替换整个输入对象,因此在修改的输入旁边包含未更改的字段。Claude Code 根据您的 hook 返回的输入而不是 Claude 发送的输入评估权限规则和 Bash 命令的 [自动后台资格](/docs/zh-CN/tools-reference#background-commands)。与 `"allow"` 结合以自动批准,或与 `"ask"` 结合以向用户显示修改的输入。对于 `"defer"`,被忽略 |1935| `updatedInput` | 在执行前修改工具的输入参数。替换整个输入对象,因此在修改的输入旁边包含未更改的字段。Claude Code 根据您的 hook 返回的输入而不是 Claude 发送的输入评估权限规则和 Bash 命令的 [自动后台资格](/docs/zh-CN/tools-reference#background-commands)。与 `"allow"` 结合以自动批准,或与 `"ask"` 结合以向用户显示修改的输入。对于 `"defer"`,被忽略 |

1936| `additionalContext` | 与工具结果一起添加到 Claude 上下文的字符串。当 `permissionDecision` 为 `"defer"` 时被忽略。有关如何传递文本以及放入其中的内容,请参阅 [为 Claude 添加上下文](#add-context-for-claude) |1936| `additionalContext` | 与工具结果一起添加到 Claude 上下文的字符串。当 `permissionDecision` 为 `"defer"` 时被忽略。有关如何传递文本以及放入其中的内容,请参阅 [为 Claude 添加上下文](#add-context-for-claude) |

1937 1937 

Details

245| [上下文管理](https://platform.claude.com/docs/en/build-with-claude/context-editing) | 上下文管理 beta 请求头与 `context_management` 请求体字段配对 | `400` 带有 `Extra inputs are not permitted`。常见于网关接受 Anthropic 格式请求但将其转发到 Amazon Bedrock 时 | 转发两者,或 [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](#disable-pre-release-capabilities) |245| [上下文管理](https://platform.claude.com/docs/en/build-with-claude/context-editing) | 上下文管理 beta 请求头与 `context_management` 请求体字段配对 | `400` 带有 `Extra inputs are not permitted`。常见于网关接受 Anthropic 格式请求但将其转发到 Amazon Bedrock 时 | 转发两者,或 [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](#disable-pre-release-capabilities) |

246| [扩展上下文](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model)和[交错思考](https://platform.claude.com/docs/en/build-with-claude/extended-thinking#interleaved-thinking) | 仅 Beta 请求头,无请求体字段 | 当请求头被删除时无声地不可用;上游永远不会看到功能请求 | 逐字转发 `anthropic-beta` |246| [扩展上下文](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model)和[交错思考](https://platform.claude.com/docs/en/build-with-claude/extended-thinking#interleaved-thinking) | 仅 Beta 请求头,无请求体字段 | 当请求头被删除时无声地不可用;上游永远不会看到功能请求 | 逐字转发 `anthropic-beta` |

247| Beta [工具字段](https://platform.claude.com/docs/en/agents-and-tools/tool-use/overview) | 工具相关的 beta 请求头与工具架构字段(如 `strict` 和 `defer_loading`)配对 | 当请求体通过而没有其请求头时,命名无法识别的工具架构字段的 `400` | 转发两者,或 [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](#disable-pre-release-capabilities) |247| Beta [工具字段](https://platform.claude.com/docs/en/agents-and-tools/tool-use/overview) | 工具相关的 beta 请求头与工具架构字段(如 `strict` 和 `defer_loading`)配对 | 当请求体通过而没有其请求头时,命名无法识别的工具架构字段的 `400` | 转发两者,或 [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](#disable-pre-release-capabilities) |

248| [努力](https://platform.claude.com/docs/en/build-with-claude/effort)和[结构化输出](https://platform.claude.com/docs/en/build-with-claude/structured-outputs) | `output_config` 请求体字段携带努力、结构化输出格式和任务预算设置;每个都与自己的 beta 请求头配对 | 在 Amazon Bedrock 和 Google Cloud 的 Agent Platform 上游上命名 `output_config` 的 `400`,通常是 `Extra inputs are not permitted` | 一起转发该字段及其请求头,或让开发者设置 [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](#disable-pre-release-capabilities),这会移除格式和任务预算设置,但不会移除努力 |248| [努力](https://platform.claude.com/docs/en/build-with-claude/effort)和[结构化输出](https://platform.claude.com/docs/en/build-with-claude/structured-outputs) | `output_config` 请求体字段携带努力、结构化输出格式和任务预算设置;每个都与自己的 beta 请求头配对 | 在 Amazon Bedrock 和 Google Cloud 的 Agent Platform 上游上命名 `output_config` 的 `400`,通常是 `Extra inputs are not permitted` | 一起转发该字段及其请求头,或让开发者设置 [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](#disable-pre-release-capabilities),这会移除格式和任务预算设置,但不会移除努力。若只想移除格式,开发者可以改为设置 [`CLAUDE_CODE_DISABLE_STRUCTURED_OUTPUTS=1`](/docs/zh-CN/env-vars),这需要 v2.1.288 或更高版本 |

249| [提示缓存](/docs/zh-CN/prompt-caching) | 无 beta 配对。Claude Code 将 `cache_control` 标记附加到 `system` 块和 `messages` 条目,包括在对话中途附加的 `role: "system"` 条目 | 无错误:对话在每个回合都作为未缓存的输入计费,在 `usage` 中可见为高 `input_tokens` 且缓存活动很少或没有 | 在任何地方原封不动地转发 `cache_control`,并且不要将块形式的 `system` 或消息内容转换为纯字符串 |249| [提示缓存](/docs/zh-CN/prompt-caching) | 无 beta 配对。Claude Code 将 `cache_control` 标记附加到 `system` 块和 `messages` 条目,包括在对话中途附加的 `role: "system"` 条目 | 无错误:对话在每个回合都作为未缓存的输入计费,在 `usage` 中可见为高 `input_tokens` 且缓存活动很少或没有 | 在任何地方原封不动地转发 `cache_control`,并且不要将块形式的 `system` 或消息内容转换为纯字符串 |

250| [令牌计数](https://platform.claude.com/docs/en/build-with-claude/token-counting) | 无 beta 配对;使用 `count_tokens` 端点 | 无错误:Claude Code 回退到基于字符的估计,因此 `/context` 显示近似计数 | 公开该端点以获得精确的令牌计数 |250| [令牌计数](https://platform.claude.com/docs/en/build-with-claude/token-counting) | 无 beta 配对;使用 `count_tokens` 端点 | 无错误:Claude Code 回退到基于字符的估计,因此 `/context` 显示近似计数 | 公开该端点以获得精确的令牌计数 |

251 251 

model-config.md +4 −3

Details

794 794 

795<span id="context-window-behind-a-gateway" />795<span id="context-window-behind-a-gateway" />

796 796 

797如果您将 `ANTHROPIC_BASE_URL` 设置为 [LLM 网关](/docs/zh-CN/llm-gateway)或另一个代理,Claude Code 给每个它识别的模型与该模型在 Anthropic API 上具有的相同上下文窗口。Fable 5.1、Fable 5、Sonnet 5 及更高版本和 Opus 4.7 及更高版本获得 1M 窗口,没有 `[1m]` 变体可选择,仅通过其 `[1m]` 变体达到 1M 的模型(如 Opus 4.6)在没有它的情况下运行在 200K。Claude Code 无法检测网关或其后面的服务器强制的更低限制。如果您的网关拒绝超过 200K token 的请求,运行 [`/autocompact 200k`](#set-the-auto-compact-window) 以便会话在该边界处压缩。797如果您将 `ANTHROPIC_BASE_URL` 设置为 [LLM 网关](/docs/zh-CN/llm-gateway)或另一个代理,Claude Code 给每个它识别的模型与该模型在 Anthropic API 上具有的相同上下文窗口。Fable 5.1、Fable 5、Sonnet 5 及更高版本和 Opus 4.7 及更高版本获得 1M 窗口,没有 `[1m]` 变体可选择,仅通过其 `[1m]` 变体达到 1M 的模型(如 Opus 4.6)在没有它的情况下运行在 200K。Claude Code 无法检测网关或其后面的服务器强制的更低限制。如果您的网关拒绝超过 200K token 的请求,请在启动 Claude Code 的环境中设置 [`CLAUDE_CODE_AUTO_COMPACT_WINDOW=200000`](/docs/zh-CN/env-vars),以便所有模型上的会话都[在该边界处压缩](#set-the-auto-compact-window)。

798 798 

799要关闭 1M 上下文,设置 `CLAUDE_CODE_DISABLE_1M_CONTEXT=1`。Claude Code 从模型选择器中删除 1M 模型变体。在具有原生 1M 窗口的模型上,例如 Sonnet 5 和 Fable 模型,它也将模型视为具有 200K 上下文窗口:799要关闭 1M 上下文,设置 `CLAUDE_CODE_DISABLE_1M_CONTEXT=1`。Claude Code 从模型选择器中删除 1M 模型变体。在具有原生 1M 窗口的模型上,例如 Sonnet 5 和 Fable 模型,它也将模型视为具有 200K 上下文窗口:

800 800 


840 设置自动压缩窗口840 设置自动压缩窗口

841</h3>841</h3>

842 842 

843您可以在三个地方设置自动压缩窗口:843您可以在以下位置设置自动压缩窗口:

844 844 

845* **对于此会话及以后的会话**:运行 `/autocompact` 命令并指定一个值,例如 `/autocompact 500k`。Claude Code 将其保存到您的用户设置中作为 [`autoCompactWindow`](/docs/zh-CN/settings-reference#autocompactwindow),并将其应用于当前会话;如果更高优先级的[设置范围](/docs/zh-CN/settings#settings-precedence)(例如托管设置)设置了该键,该命令会保存您的值,但会话会保持该范围的窗口,命令会说明这一点。运行 `/autocompact auto` 以返回为您的模型调整的窗口。845* **对于当前模型,在此会话及以后的会话中**:运行 `/autocompact` 命令并指定一个值,例如 `/autocompact 500k`。Claude Code 将其保存到您的用户设置中 [`modelSettings`](/docs/zh-CN/settings-reference#modelsettings) 下的当前模型条目,并将其应用于当前会话。如果更高优先级的[设置作用域](/docs/zh-CN/settings#settings-precedence)(例如托管设置)为该模型或所有模型设置了自己的窗口,该命令会保存您的值,但会话会保持该作用域的窗口,命令会说明这一点。运行 `/autocompact auto` 以返回为您的模型调整的窗口。在 v2.1.288 之前,该命令会为所有模型保存同一个窗口,即顶层的 `autoCompactWindow`。

846* **对于所有模型**:在设置文件中设置 [`autoCompactWindow`](/docs/zh-CN/settings-reference#autocompactwindow),例如在 `~/.claude/settings.json` 中设置 `"autoCompactWindow": 200000`。对于某个模型,您使用 `/autocompact` 为该模型保存的窗口优先于同一文件中的此键。

846* **对于一次启动**:启动 Claude Code 时传递 [`--autocompact`](/docs/zh-CN/cli-reference#cli-flags)。该标志会为该次启动覆盖您保存的设置,而不会更改它,`claude --autocompact auto` 会以调整的窗口运行会话,即使您保存的设置有一个值。与 `/autocompact` 不同,该标志不会被更高优先级的设置范围(例如托管设置)抢占。847* **对于一次启动**:启动 Claude Code 时传递 [`--autocompact`](/docs/zh-CN/cli-reference#cli-flags)。该标志会为该次启动覆盖您保存的设置,而不会更改它,`claude --autocompact auto` 会以调整的窗口运行会话,即使您保存的设置有一个值。与 `/autocompact` 不同,该标志不会被更高优先级的设置范围(例如托管设置)抢占。

847* **在脚本和云环境中**:设置 [`CLAUDE_CODE_AUTO_COMPACT_WINDOW`](/docs/zh-CN/env-vars)。设置后,它优先于命令、标志和设置,`/autocompact` 会报告该覆盖而不是更改窗口。848* **在脚本和云环境中**:设置 [`CLAUDE_CODE_AUTO_COMPACT_WINDOW`](/docs/zh-CN/env-vars)。设置后,它优先于命令、标志和设置,`/autocompact` 会报告该覆盖而不是更改窗口。

848 849 

plugins/publish.md +26 −11

Details

145 提交到 Anthropic 的目录145 提交到 Anthropic 的目录

146</h2>146</h2>

147 147 

148Anthropic 的目录是人们在 claude.ai 和 Cowork 中浏览以添加插件和连接器的目录。在那里的一个列表可以覆盖 claude.ai、Cowork 和 Claude Code 上的用户。您可以从开发者门户 [claude.ai/directory/manage](https://claude.ai/directory/manage) 提交;claude.com 上的 [Prepare for review](https://claude.com/docs/directory/publish#prepare-for-review) 描述了每个版本在发布前会发生什么。148[Anthropic 的目录](https://claude.ai/directory)是人们在 claude.ai 和 Cowork 中浏览以添加插件和连接器的目录。在那里的一个列表可以覆盖 claude.ai、Cowork 和 Claude Code 上的用户。您可以从开发者门户 [claude.ai/directory/manage](https://claude.ai/directory/manage) 提交,claude.com 上的 [Submit a plugin](https://claude.com/docs/plugins/submit#submit-a-plugin) 逐步介绍了门户的使用方法。

149 149 

150提交需要付费的 claude.ai 计划。在 Pro 和 Max 上,您可以从自己的账户提交。在 Team 和 Enterprise 上,Owner 可以提交,在 Enterprise 上,Owner 还可以通过 **Organization settings > Roles** 下的自定义角色向其他成员授予 **Directory** 权限。请参阅 [Confirm you can submit to the directory](https://claude.com/docs/directory/publish#confirm-you-can-submit-to-the-directory)。150Anthropic 的官方市场 `claude-plugins-official` 不通过目录门户接受提交。如果您与 Anthropic 合作伙伴联系合作,请询问他们关于官方市场列表的信息。

151 151 

152提交步骤、每个版本必须通过的检查以及发布后会发生什么都记录在 claude.com 上,因为无论您的用户在哪个平台上,这些都是相同的:152要提交插件:

153 153 

154* [Publish to the directory](https://claude.com/docs/directory/publish#before-you-submit-to-the-directory):您可以提交什么以及谁可以提交154<Steps>

155* [Submit a plugin](https://claude.com/docs/plugins/submit#submit-a-plugin):门户步骤和 [updating a published plugin](https://claude.com/docs/plugins/submit#update-a-published-plugin)155 <Step title="确认您可以提交">

156* [Plugin pre-submission checklist](https://claude.com/docs/plugins/pre-submission-checklist#run-the-checks-before-you-submit):提交前要运行和修复的检查156 提交需要付费的 claude.ai 计划。在 Pro 和 Max 上,您可以从自己的账户提交。在 Team 和 Enterprise 上,Owner 可以提交,在 Enterprise 上,Owner 还可以通过 **Organization settings > Roles** 下的自定义角色向其他成员授予 **Directory** 权限。请参阅 [Confirm you can submit to the directory](https://claude.com/docs/directory/publish#confirm-you-can-submit-to-the-directory)。

157* [Move an earlier submission to the developer portal](https://claude.com/docs/directory/publish#move-an-earlier-submission-to-the-developer-portal):如果您通过早期提交表单之一提交了插件(在门户存在之前),该怎么办157 </Step>

158 158 

159在打开门户之前,在本地验证并检查您的哪些组件在 Claude Code 之外加载:159 <Step title="在本地验证插件">

160 在您的 shell 中运行 `claude plugin validate ./your-plugin --strict`。用您的插件目录的路径替换 `./your-plugin`。该命令在本地捕获清单错误;[plugin validate](/docs/zh-CN/plugins/cli-reference#plugin-validate) 列出了每次运行读取的文件。门户应用了 CLI 不检查的额外目录规则,因此本地运行清晰并不保证门户验证清晰。

160 161 

161* **在您的 shell 中运行 `claude plugin validate ./your-plugin --strict`**:用您的插件目录的路径替换 `./your-plugin`。该命令在本地捕获清单错误;[plugin validate](/docs/zh-CN/plugins/cli-reference#plugin-validate) 列出了每次运行读取的文件。门户应用了 CLI 不检查的额外目录规则,因此本地运行清晰并不保证门户验证清晰。162 claude.com 上的 [plugin pre-submission checklist](https://claude.com/docs/plugins/pre-submission-checklist#run-the-checks-before-you-submit) 列出了提交前要运行和修复的检查。

162* **检查在哪里加载**:某些插件组件仅限 Claude Code,不在 claude.ai 或 Cowork 中加载。[component support table](https://claude.com/docs/plugins/platform-support#compare-component-support-by-app) 按应用列出了每个组件,因此您知道 Claude Code 之外的用户会获得什么。163 </Step>

163 164 

164Anthropic 的官方市场 `claude-plugins-official` 不通过目录门户接受提交。如果您与 Anthropic 合作伙伴联系合作,请询问他们关于官方市场列表的信息。165 <Step title="检查在哪里加载">

166 某些插件组件仅限 Claude Code,不在 claude.ai 或 Cowork 中加载。[component support table](https://claude.com/docs/plugins/platform-support#compare-component-support-by-app) 按应用列出了每个组件,因此您知道 Claude Code 之外的用户会获得什么。

167 </Step>

168 

169 <Step title="在开发者门户中提交">

170 打开开发者门户 [claude.ai/directory/manage](https://claude.ai/directory/manage),并按照 claude.com 上的 [Submit a plugin](https://claude.com/docs/plugins/submit#submit-a-plugin) 操作。

171 </Step>

172</Steps>

173 

174流程的其余部分记录在 claude.com 上:

175 

176* [Prepare for review](https://claude.com/docs/directory/publish#prepare-for-review):每个版本在发布前会发生什么

177* [Update a published plugin](https://claude.com/docs/plugins/submit#update-a-published-plugin):新版本如何到达已安装您插件的用户

178* [Submit your plugin, and your MCP server as a connector](https://claude.com/docs/directory/publish#submit-your-plugin-and-your-mcp-server-as-a-connector):您可以提交什么

179* [Move an earlier submission to the developer portal](https://claude.com/docs/directory/publish#move-an-earlier-submission-to-the-developer-portal):如果您通过早期提交表单之一提交了插件(在门户存在之前),该怎么办

165 180 

166<h3 id="how-a-listed-plugin-reaches-claude-code-users">181<h3 id="how-a-listed-plugin-reaches-claude-code-users">

167 列出的插件如何到达 Claude Code 用户182 列出的插件如何到达 Claude Code 用户

Details

708| [`modelOverrides`](#modeloverrides) | [将模型 ID 映射](/docs/zh-CN/model-config#override-model-ids-per-version)到您的提供商的 ID,例如 Bedrock ARN | 模型和响应 | Any file |708| [`modelOverrides`](#modeloverrides) | [将模型 ID 映射](/docs/zh-CN/model-config#override-model-ids-per-version)到您的提供商的 ID,例如 Bedrock ARN | 模型和响应 | Any file |

709| [`modelPicker`](#modelpicker) | 选择 [`/model` 选择器](/docs/zh-CN/model-config#available-models)列出的模型,按您自己的顺序和您自己的标签 | 模型和响应 | User or managed |709| [`modelPicker`](#modelpicker) | 选择 [`/model` 选择器](/docs/zh-CN/model-config#available-models)列出的模型,按您自己的顺序和您自己的标签 | 模型和响应 | User or managed |

710| [`modelPricing`](#modelpricing) | 按您的组织合同费率而不是列表价格报告支出 | 模型和响应 | Managed |710| [`modelPricing`](#modelpricing) | 按您的组织合同费率而不是列表价格报告支出 | 模型和响应 | Managed |

711| [`modelSettings`](#modelsettings) | 为每个模型保留保存的[努力级别](/docs/zh-CN/model-config#adjust-effort-level),或限制一个模型的努力 | 模型和响应 | Any file |711| [`modelSettings`](#modelsettings) | 为每个模型保留已保存的 [effort 级别](/docs/zh-CN/model-config#adjust-effort-level)或[自动压缩窗口](/docs/zh-CN/model-config#set-the-auto-compact-window),或限制某个模型的 effort | 模型和响应 | Any file |

712| [`otelHeadersHelper`](#otelheadershelper) | 使用您自己的命令生成旋转的 [OpenTelemetry](/docs/zh-CN/monitoring-usage#dynamic-headers) 标头 | 身份验证和提供商 | Any file |712| [`otelHeadersHelper`](#otelheadershelper) | 使用您自己的命令生成旋转的 [OpenTelemetry](/docs/zh-CN/monitoring-usage#dynamic-headers) 标头 | 身份验证和提供商 | Any file |

713| [`outputStyle`](#outputstyle) | 使用[输出样式](/docs/zh-CN/output-styles)更改 Claude 的角色、语气和输出格式 | 模型和响应 | Any file |713| [`outputStyle`](#outputstyle) | 使用[输出样式](/docs/zh-CN/output-styles)更改 Claude 的角色、语气和输出格式 | 模型和响应 | Any file |

714| [`parentSettingsBehavior`](#parentsettingsbehavior) | 应用或删除[SDK 或 IDE 主机](/docs/zh-CN/managed-settings#let-an-embedding-host-add-policy)在您部署[托管设置](/docs/zh-CN/managed-settings)时传递的限制 | 企业和托管设置 | Managed |714| [`parentSettingsBehavior`](#parentsettingsbehavior) | 应用或删除[SDK 或 IDE 主机](/docs/zh-CN/managed-settings#let-an-embedding-host-add-policy)在您部署[托管设置](/docs/zh-CN/managed-settings)时传递的限制 | 企业和托管设置 | Managed |


1282要限制一个模型的努力而不是设置其级别,将[`maxEffortLevel`](#maxeffortlevel)字段添加到该模型的条目。该字段需要 Claude Code v2.1.267 或更高版本。1282要限制一个模型的努力而不是设置其级别,将[`maxEffortLevel`](#maxeffortlevel)字段添加到该模型的条目。该字段需要 Claude Code v2.1.267 或更高版本。

1283 1283 

1284* **Scope**: [`Any file`](#scopes)1284* **Scope**: [`Any file`](#scopes)

1285* **Type**: 将模型名称映射到具有 `effortLevel` 字段的对象,其中一个 `"low"`、`"medium"`、`"high"` 或 `"xhigh"`、[`maxEffortLevel`](#maxeffortlevel)字段或两者1285* **Type**: 将模型名称映射到对象的对象,该对象可包含以下任意字段:

1286 * `effortLevel`: 其中一个 `"low"`、`"medium"`、`"high"` 或 `"xhigh"`

1287 * [`maxEffortLevel`](#maxeffortlevel): 该模型可以运行的最高 effort 级别

1288 * `autoCompactWindow`: 从 `100000` 到 `1000000` 的 token 数,或 `"auto"` 表示为该模型调优的窗口。[`/autocompact`](/docs/zh-CN/model-config#set-the-auto-compact-window) 保存到此处。对于该模型,该值优先于同一设置文件中的顶级 [`autoCompactWindow`](#autocompactwindow)。需要 Claude Code v2.1.288 或更高版本

1286* **Default**: 未设置1289* **Default**: 未设置

1287 1290 

1288Claude Code 在模型的规范名称下写入每个条目,如 `claude-opus-5-5`,并将该模型的别名、日期后缀、`[1m]` 和识别的提供商特定 ID 匹配到同一条目。1291Claude Code 在模型的规范名称下写入每个条目,如 `claude-opus-5-5`,并将该模型的别名、日期后缀、`[1m]` 和识别的提供商特定 ID 匹配到同一条目。


2967}2970}

2968```2971```

2969 2972 

2970使用 [`/autocompact`](/docs/zh-CN/commands#all-commands) 命令设置它,该命令将此键写入您的用户设置。[设置自动压缩窗口](/docs/zh-CN/model-config#set-the-auto-compact-window)涵盖了命令、标志、变量和设置如何相互作用。2973[`/autocompact`](/docs/zh-CN/commands#all-commands) 命令会在 [`modelSettings`](#modelsettings) 下为当前模型保存一个窗口,对于该模型,它优先于同一文件中的此键。[设置自动压缩窗口](/docs/zh-CN/model-config#set-the-auto-compact-window)涵盖了命令、标志、变量和设置如何相互作用。

2971 2974 

2972<h3 id="automemorydirectory">2975<h3 id="automemorydirectory">

2973 `autoMemoryDirectory`2976 `autoMemoryDirectory`


3229 `askUserQuestionTimeout`3232 `askUserQuestionTimeout`

3230</h3>3233</h3>

3231 3234 

3232让未回答的 [`AskUserQuestion`](/docs/zh-CN/tools-reference) 对话框在空闲一段时间后自动继续,提交您已选择的任何选项。当您离开时设置此项,让 Claude 在没有您的情况下继续。使用默认设置时,问题会等待您回答。需要 Claude Code v2.1.200 或更高版本。3235让未回答的 [`AskUserQuestion`](/docs/zh-CN/tools-reference) 对话框在空闲一段时间后自动继续,提交您已选择的任何选项。当您离开时设置此项,让 Claude 在没有您的情况下继续。使用默认设置时,问题会等待您回答。关于计时器何时暂停或从不启动,请参阅[问题自动继续超时](/docs/zh-CN/tools-reference#question-auto-continue-timeout)。需要 Claude Code v2.1.200 或更高版本。

3233 3236 

3234* **Scope**: [`User or managed`](#scopes)3237* **Scope**: [`User or managed`](#scopes)

3235* **Type**: string,值为 `"60s"`、`"5m"`、`"10m"` 或 `"never"` 之一3238* **Type**: string,值为 `"60s"`、`"5m"`、`"10m"` 或 `"never"` 之一


4842| Rule | `strictKnownMarketplaces` | `blockedMarketplaces` |4845| Rule | `strictKnownMarketplaces` | `blockedMarketplaces` |

4843| - | - | - |4846| - | - | - |

4844| 匹配源拼写 | 仅 `owner/repo` 形式。克隆同一存储库的 git URL 不匹配 | 任何拼写,包括解析为同一 github.com 存储库的 git URL |4847| 匹配源拼写 | 仅 `owner/repo` 形式。克隆同一存储库的 git URL 不匹配 | 任何拼写,包括解析为同一 github.com 存储库的 git URL |

4845| Owner 大小写 | 区分大小写,如精确条目匹配 | 不区分大小写 |4848| Owner 大小写 | 区分大小写 | 不区分大小写 |

4846| `ref` | 遵循精确条目规则:带 `ref` 的条目仅匹配具有该精确 ref 的源,没有的条目仅匹配不指定 ref 的源 | 没有 `ref` 的条目阻止它匹配的存储库的所有 refs |4849| `ref` | 遵循精确条目规则:带 `ref` 的条目仅匹配具有该精确 ref 的源,没有的条目仅匹配不指定 ref 的源 | 没有 `ref` 的条目阻止它匹配的存储库的所有 refs |

4847| `path` | 比精确条目规则更宽松:带 `path` 的条目需要该精确值,而没有的条目匹配存储库内的任何路径 | 没有 `path` 的条目阻止它匹配的存储库的所有路径 |4850| `path` | 比精确条目规则更宽松:带 `path` 的条目需要该精确值,而没有的条目匹配存储库内的任何路径 | 没有 `path` 的条目阻止它匹配的存储库的所有路径 |

4848 4851 


5653 `worktree.bgIsolation`5656 `worktree.bgIsolation`

5654</h3>5657</h3>

5655 5658 

5656选择 [background sessions](/docs/zh-CN/agent-view#how-file-edits-are-isolated) 如何隔离其文件编辑。使用 `"worktree"`,Claude Code 在会话调用 `EnterWorktree` 之前阻止主检出中的 `Edit` 和 `Write`;使用 `"none"`,后台作业直接编辑工作副本。对于 git worktrees 不切实际的存储库,设置 `"none"`。5659选择[后台会话](/docs/zh-CN/agent-view#how-file-edits-are-isolated)如何隔离其文件编辑。如果您是通过 `←` 或 `/background` 将会话移至后台的,则无论此键如何设置,该会话都会就地编辑文件。使用 `"worktree"` 时,Claude Code 会在会话调用 `EnterWorktree` 之前阻止在主检出中使用 `Edit` 和 `Write`;使用 `"none"` 时,后台作业直接编辑工作副本。对于不适合使用 git worktree 的仓库,请设置 `"none"`。

5657 5660 

5658* **Scope**: [`Any file`](#scopes)5661* **Scope**: [`Any file`](#scopes)

5659* **Type**: string,以下之一:5662* **Type**: string,以下之一:

setup.md +5 −5

Details

45 <Tab title="原生安装(推荐)">45 <Tab title="原生安装(推荐)">

46 **macOS、Linux、WSL:**46 **macOS、Linux、WSL:**

47 47 

48 ```bash theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null}48 ```bash theme={null}

49 curl -fsSL https://claude.ai/install.sh | bash49 curl -fsSL https://claude.ai/install.sh | bash

50 ```50 ```

51 51 

52 **Windows PowerShell:**52 **Windows PowerShell:**

53 53 

54 ```powershell theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null}54 ```powershell theme={null}

55 irm https://claude.ai/install.ps1 | iex55 irm https://claude.ai/install.ps1 | iex

56 ```56 ```

57 57 

58 **Windows CMD:**58 **Windows CMD:**

59 59 

60 ```batch theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null}60 ```batch theme={null}

61 curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd61 curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd

62 ```62 ```

63 63 


75 </Tab>75 </Tab>

76 76 

77 <Tab title="Homebrew">77 <Tab title="Homebrew">

78 ```bash theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null}78 ```bash theme={null}

79 brew install --cask claude-code79 brew install --cask claude-code

80 ```80 ```

81 81 


87 </Tab>87 </Tab>

88 88 

89 <Tab title="WinGet">89 <Tab title="WinGet">

90 ```powershell theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null}90 ```powershell theme={null}

91 winget install Anthropic.ClaudeCode91 winget install Anthropic.ClaudeCode

92 ```92 ```

93 93 

ultrareview.md +1 −5

Details

134| - | - | - |134| - | - | - |

135| Pro | 3 次免费运行 | 按 [额外使用量](https://support.claude.com/zh-CN/articles/12429409-extra-usage-for-paid-claude-plans) 计费 |135| Pro | 3 次免费运行 | 按 [额外使用量](https://support.claude.com/zh-CN/articles/12429409-extra-usage-for-paid-claude-plans) 计费 |

136| Max | 3 次免费运行 | 按 [额外使用量](https://support.claude.com/zh-CN/articles/12429409-extra-usage-for-paid-claude-plans) 计费 |136| Max | 3 次免费运行 | 按 [额外使用量](https://support.claude.com/zh-CN/articles/12429409-extra-usage-for-paid-claude-plans) 计费 |

137| Team 和 Enterprise | 无 | 按 [额外使用量](https://support.claude.com/zh-CN/articles/12429409-extra-usage-for-paid-claude-plans) 计费 |

138 137 

139* **免费运行**:Pro 和 Max 的三次运行是每个账户的一次性分配,不会刷新。138* **免费运行**:Pro 和 Max 的三次运行是每个账户的一次性分配,不会刷新。

140* **每次审查的成本**:使用完免费运行后,通常花费 \$5 到 \$25 的使用额度,具体取决于更改的大小,与启动对话框在每次运行前显示的估计相匹配。139* **每次审查的成本**:使用完免费运行后,通常花费 \$5 到 \$25 的使用额度,具体取决于更改的大小,与启动对话框在每次运行前显示的估计相匹配。

141* **何时计数一次运行**:一旦云会话启动。您提前停止或未能完成的审查仍然会使用一次免费运行;付费审查仅对运行的部分计费。140* **何时计数一次运行**:一旦云会话启动。您提前停止或未能完成的审查仍然会使用一次免费运行;付费审查仅对运行的部分计费。

142 141 

143由于 ultrareview 在免费运行之外始终按使用额度计费,您的账户或组织必须在启动付费审查之前启用使用额度。如果未启用使用额度,Claude Code 会阻止启动,启用方式取决于您的计费访问权限:142由于 ultrareview 在免费运行之外始终按使用额度计费,您的账户或组织必须在启动付费审查之前启用使用额度。如果未启用使用额度,Claude Code 会阻止启动。如果您可以管理您账户的计费,Claude Code 会将您链接到计费设置,您可以在那里启用使用额度。

144 

145* 如果您可以管理您账户的计费,Claude Code 会将您链接到计费设置,您可以在那里启用使用额度。

146* 在 Team 和 Enterprise 计划上,没有计费访问权限的成员可以从 CLI 发送请求,要求其管理员启用使用额度。

147 143 

148您也可以运行 `/usage-credits` 来检查或更改您的使用额度设置。144您也可以运行 `/usage-credits` 来检查或更改您的使用额度设置。

149 145