SpyBara
Go Premium

Documentation 2026-10-01 23:59 UTC to 2026-10-02 02:02 UTC

33 files changed +1,262 −1,030. View all changes and history on the product overview
2026
Fri 2 03:00 Thu 1 23:59

accessibility.md +11 −5

Details

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

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

46| [`CLAUDE_AX_STARTUP_QUIET_MS`](/docs/zh-CN/env-vars#variables) | 环境变量 | Claude Code 在确认行之后等待多长时间才能在屏幕阅读器模式下绘制第一个提示。需要 Claude Code v2.1.217 或更高版本。 |46| [`CLAUDE_AX_STARTUP_QUIET_MS`](/docs/zh-CN/env-vars#variables) | 环境变量 | Claude Code 在确认行之后等待多长时间才能在屏幕阅读器模式下绘制第一个提示。需要 Claude Code v2.1.217 或更高版本。 |

47| [`CLAUDE_AX_PREPARK_MS`](/docs/zh-CN/env-vars#variables) | 环境变量 | Claude Code 在屏幕阅读器模式下,光标位于行首时,等待多长时间才能写入新行或更改的行。需要 Claude Code v2.1.233 或更高版本。 |47| [`CLAUDE_AX_PREPARK_MS`](/docs/zh-CN/env-vars#variables) | 环境变量 | 设置后,Claude Code 在屏幕阅读器模式下写入新行或更改的行之前,将终端光标停留在当前行行首的毫秒数。需要 Claude Code v2.1.233 或更高版本。 |

48| [`CLAUDE_CODE_ACCESSIBILITY`](/docs/zh-CN/env-vars#variables) | 环境变量 | 当您将其设置为 `1` 时,终端光标对屏幕放大镜(如 macOS Zoom)保持可见。光标跟随输入插入符号,在 Claude Code v2.1.218 或更高版本上,跟随菜单和面板(如 `/config` 和 `/plugin`)中的突出显示行。 |48| [`CLAUDE_CODE_ACCESSIBILITY`](/docs/zh-CN/env-vars#variables) | 环境变量 | 当您将其设置为 `1` 时,终端光标对屏幕放大镜(如 macOS Zoom)保持可见。光标跟随输入插入符号,在 Claude Code v2.1.218 或更高版本上,跟随菜单和面板(如 `/config` 和 `/plugin`)中的突出显示行。 |

49| [`prefersReducedMotion`](/docs/zh-CN/settings-reference#prefersreducedmotion) | 设置 | 当为 `true` 时,减少或没有旋转器、闪烁和其他动画。 |49| [`prefersReducedMotion`](/docs/zh-CN/settings-reference#prefersreducedmotion) | 设置 | 当为 `true` 时,减少或没有旋转器、闪烁和其他动画。 |

50| [`theme`](/docs/zh-CN/settings-reference#theme) | 设置 | 界面颜色,包括色盲友好的 `dark-daltonized` 和 `light-daltonized` 主题。您也可以使用 [`/theme`](/docs/zh-CN/commands#all-commands) 选择一个。 |50| [`theme`](/docs/zh-CN/settings-reference#theme) | 设置 | 界面颜色,包括色盲友好的 `dark-daltonized` 和 `light-daltonized` 主题。您也可以使用 [`/theme`](/docs/zh-CN/commands#all-commands) 选择一个。 |


60* 没有仅限颜色的提示60* 没有仅限颜色的提示

61* 没有未更改内容的重绘。进度旋转器呈现为静态文本61* 没有未更改内容的重绘。进度旋转器呈现为静态文本

62* Claude 回复中的表格读作 `Header: value` 句子而不是方框字符网格62* Claude 回复中的表格读作 `Header: value` 句子而不是方框字符网格

63* diff 以纯文本形式逐行读出,用 `+` 和 `-` 标记添加和删除的行,因此您可以在回答文件编辑批准提示之前听到建议的更改

63 64 

64Claude Code 将其打印到终端滚动条中的所有内容都保留下来,因此您可以使用屏幕阅读器的审查命令或终端的搜索功能重新阅读之前的回合。Claude Code 在屏幕阅读器模式下忽略 [`tui` 设置](/docs/zh-CN/settings-reference#tui)。除了在[已知限制](#known-limitations)下列出的附加后台会话外,它打印滚动文本而不是[全屏渲染](/docs/zh-CN/fullscreen)。65Claude Code 将其打印到终端滚动条中的所有内容都保留下来,因此您可以使用屏幕阅读器的审查命令或终端的搜索功能重新阅读之前的回合。Claude Code 在屏幕阅读器模式下忽略 [`tui` 设置](/docs/zh-CN/settings-reference#tui)。除了在[已知限制](#known-limitations)下列出的附加后台会话外,它打印滚动文本而不是[全屏渲染](/docs/zh-CN/fullscreen)。

65 66 

66Claude Code 还在两个点等待,以便屏幕阅读器能够跟上:67Claude Code 在启动时打印[确认行](#turn-on-screen-reader-mode)后,会在绘制输入框之前等待 3 秒,以便屏幕阅读器可以读完该行。按任意键结束等待。要更改等待的长度,请设置 [`CLAUDE_AX_STARTUP_QUIET_MS`](/docs/zh-CN/env-vars#variables)。

67 

68* Claude Code 打印确认行后,在绘制提示之前等待 3 秒,以便屏幕阅读器可以完成该行。按任意键结束等待。要更改等待的长度,请设置 [`CLAUDE_AX_STARTUP_QUIET_MS`](/docs/zh-CN/env-vars#variables)。

69* 在 Claude Code 写入新行或更改的行(例如提示或更多 Claude 的回复)之前,它将光标移到行的开始处并等待 50 毫秒。然后屏幕阅读器从其第一个字符读取该行。您在输入行末尾键入或删除的字符立即出现。要更改等待的长度,请设置 [`CLAUDE_AX_PREPARK_MS`](/docs/zh-CN/env-vars#variables)。

70 68 

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

72 70 


94 92 

95当您使用 `Shift+Tab` 循环[权限模式](/docs/zh-CN/permission-modes)时,Claude Code 宣布您登陆的权限模式,例如 `[plan mode on]` 或 `[accept edits on]`。Claude Code 打印公告一次,不会在以后的重绘中重复。93当您使用 `Shift+Tab` 循环[权限模式](/docs/zh-CN/permission-modes)时,Claude Code 宣布您登陆的权限模式,例如 `[plan mode on]` 或 `[accept edits on]`。Claude Code 打印公告一次,不会在以后的重绘中重复。

96 94 

95<h3 id="read-earlier-output-without-losing-your-place">

96 阅读之前的输出而不丢失位置

97</h3>

98 

99如果您在阅读之前的输出时屏幕阅读器跳回到输入框,说明它正在跟随终端光标。Claude Code 每次写入新文本时都会将终端光标移回输入框。

100 

101要在阅读时保持位置,请让屏幕阅读器停止跟随终端光标。在 NVDA 中,按 `NVDA+6` 可让浏览光标停止跟随终端光标。再次按 `NVDA+6` 可重新开启跟随。

102 

97<h3 id="jump-between-turns">103<h3 id="jump-between-turns">

98 在回合之间跳转104 在回合之间跳转

99</h3>105</h3>

Details

325 325 

326对于长时间运行的代理的几个策略:326对于长时间运行的代理的几个策略:

327 327 

328* **为子任务使用子代理。** 每个子代理以新鲜对话开始(没有先前的消息历史,尽管它确实加载自己的系统提示和项目级上下文,如 CLAUDE.md)。它看不到父级的轮次,只有其最终响应作为工具结果返回给父级。主代理的上下文增长该摘要,而不是完整的子任务成绩单。有关详情,请参阅[子代理继承什么](/docs/zh-CN/agent-sdk/subagents#what-subagents-inherit)。328* **为子任务使用子代理。** 每个子代理以全新的对话开始(没有先前的消息历史,但它确实会加载自己的系统提示词和项目级上下文,如 CLAUDE.md)。它看不到父级的轮次,只有其最终回复会返回给父级。主 Agent 的上下文只会增加该摘要,而不是完整的子任务会话记录。有关详情,请参阅[子代理继承什么](/docs/zh-CN/agent-sdk/subagents#what-subagents-inherit)。

329* **对工具有选择性。** 每个工具定义占用上下文空间。在 [`AgentDefinition`](/docs/zh-CN/agent-sdk/subagents#agentdefinition-configuration) 上使用 `tools` 字段将子代理限制在它们需要的最小集合。329* **对工具有选择性。** 每个工具定义占用上下文空间。在 [`AgentDefinition`](/docs/zh-CN/agent-sdk/subagents#agentdefinition-configuration) 上使用 `tools` 字段将子代理限制在它们需要的最小集合。

330* **监视 MCP 服务器成本。** [MCP 工具搜索](/docs/zh-CN/agent-sdk/mcp#mcp-tool-search)默认延迟 MCP 工具架构,并按需加载它们。当工具搜索关闭或已回退到预先加载时,每个 MCP 服务器将其所有工具架构添加到每个请求,因此具有许多工具的几个服务器可以在代理执行任何工作之前消耗大量上下文。有关应用回退的配置,请参阅[配置工具搜索](/docs/zh-CN/agent-sdk/tool-search#configure-tool-search)。330* **监视 MCP 服务器成本。** [MCP 工具搜索](/docs/zh-CN/agent-sdk/mcp#mcp-tool-search)默认延迟 MCP 工具架构,并按需加载它们。当工具搜索关闭或已回退到预先加载时,每个 MCP 服务器将其所有工具架构添加到每个请求,因此具有许多工具的几个服务器可以在代理执行任何工作之前消耗大量上下文。有关应用回退的配置,请参阅[配置工具搜索](/docs/zh-CN/agent-sdk/tool-search#configure-tool-search)。

331* **对常规任务使用较低的努力。** 为仅需要读取文件或列出目录的代理设置[努力](#effort-level)为 `"low"`。这减少了令牌使用和成本。331* **对常规任务使用较低的努力。** 为仅需要读取文件或列出目录的代理设置[努力](#effort-level)为 `"low"`。这减少了令牌使用和成本。

Details

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

1489 1489 

1490<Warning>1490<Warning>

1491 `context-1m-2025-08-07` 测试版自 2026 年 4 月 30 日起已停用。使用 Claude Sonnet 4.5 或 Sonnet 4 传递此标头无效,超过标准 200k 令牌上下文窗口的请求返回错误。要使用 1M 令牌上下文窗口,请迁移到 [Claude Opus 5.5、Claude Opus 5、Claude Sonnet 5、Claude Sonnet 4.6、Claude Opus 4.6、Claude Opus 4.7 或 Claude Opus 4.8](https://platform.claude.com/docs/en/about-claude/models/overview),它们以标准定价包括 1M 上下文,无需测试版标头。1491 在 Claude API 上,`context-1m-2025-08-07` 测试版已针对 Claude Sonnet 4.5 和 Claude Sonnet 4 停用。如果您在使用其中任一模型时仍传递它,超过标准 200K token 上下文窗口的请求会返回错误,因此请将其从 `betas` 中移除。要运行具有 1M token 上下文窗口的会话,请将 `model` 设置为[默认以 1M 窗口运行](/docs/zh-CN/model-config#extended-context)的模型,例如 `claude-sonnet-5-5` 或 `claude-opus-5-5`。对于仅通过其 `[1m]` 变体才能达到 1M 的模型,请在模型 ID 后追加该后缀,例如 `claude-opus-4-6[1m]`。

1492</Warning>1492</Warning>

1493 1493 

1494<h3 id="mcpsdkserverconfig">1494<h3 id="mcpsdkserverconfig">

Details

166 166 

167当您运行该示例时,TypeScript 版本会在每个响应完成时打印它。Python 版本的 `receive_response()` 循环在第一条结果消息处结束,因此它会打印安全分析;要读取两个响应,请使用一对 `query()` 和 `receive_response()`,如 [Python 参考中继续对话的示例](/docs/zh-CN/agent-sdk/python#example-continuing-a-conversation)所示。167当您运行该示例时,TypeScript 版本会在每个响应完成时打印它。Python 版本的 `receive_response()` 循环在第一条结果消息处结束,因此它会打印安全分析;要读取两个响应,请使用一对 `query()` 和 `receive_response()`,如 [Python 参考中继续对话的示例](/docs/zh-CN/agent-sdk/python#example-continuing-a-conversation)所示。

168 168 

169如果图像块的 `source` 缺失或不是对象,SDK 不会报告错误。Claude Code 会向 Claude 发送一条文本说明来代替该图像,例如 `[Image could not be processed: image block has no source object]`,并且会话会继续进行。

170 

169<Note>171<Note>

170 在 TypeScript SDK 中,如果您的消息生成器抛出异常,例如当它读取的文件丢失时,流会以一条错误消息结束,内容为 `Claude Code process aborted by user`,而不是原始错误,因此当您看到该消息时,请先检查生成器内部的代码。该错误前面可能还有一长行捆绑 SDK 源代码的缩小代码,因此请阅读输出末尾的错误文本。172 在 TypeScript SDK 中,如果您的消息生成器抛出异常,例如当它读取的文件丢失时,流会以一条错误消息结束,内容为 `Claude Code process aborted by user`,而不是原始错误,因此当您看到该消息时,请先检查生成器内部的代码。该错误前面可能还有一长行捆绑 SDK 源代码的缩小代码,因此请阅读输出末尾的错误文本。

171 173 

Details

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

205 205 

206<Note>206<Note>

207 父代理接收子代理的最终消息作为 Agent 工具结果,但可能在其自己的响应中对其进行总结。要在面向用户的响应中逐字保留子代理输出,请在传递给主 `query()` 调用的提示或 `systemPrompt` 选项中包含执行此操作的指令。207 父 Agent 接收子代理的最终报告,但可能在其自己的回复中对其进行总结。要在面向用户的回复中逐字保留子代理输出,请在传递给主 `query()` 调用的提示词或 `systemPrompt` 选项中包含执行此操作的指令。

208 208 

209 在 v2.1.210 及更高版本中,Claude Code [在父代理读取最终消息之前扫描它以查找指令形状的模式](/docs/zh-CN/sub-agents#subagent-output-scanning)。扫描以三种不同的方式处理三种模式:209 在 v2.1.210 及更高版本中,Claude Code [在父代理读取最终消息之前扫描它以查找指令形状的模式](/docs/zh-CN/sub-agents#subagent-output-scanning)。扫描以三种不同的方式处理三种模式:

210 210 

Details

1596 1596 

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

1598 1598 

1599对于 `Agent` 工具,`tool_use_result` 是 [`AgentOutput`](#agent-2)。在 `completed` 结果上,`content` 包含子代理的报告,不包含 Claude Code 附加到 `tool_result` 文本的代理 ID 和使用情况尾部,因此从 `tool_use_result` 渲染而不是解析该文本。1599对于 `Agent` 工具,`tool_use_result` 是 [`AgentOutput`](#agent-2)。请从它渲染,而不是解析 `tool_result` 文本。`completed` 结果的 `content` 包含子代理的报告;对于通过 `SubagentHandback` 工具调用交回报告的子代理,则包含一条关于该交回的简短说明来代替报告。在 Claude Code v2.1.271 或更高版本的[自动模式](/docs/zh-CN/permission-modes#eliminate-prompts-with-auto-mode)下,每个产生 `completed` 结果的子代理都以这种方式报告,除非它是一个 [fork](/docs/zh-CN/sub-agents#fork-the-current-conversation),并且 Claude 会将该报告作为来自子代理的单独消息接收。

1600 1600 

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

1602 1602 


5090```5090```

5091 5091 

5092<Warning>5092<Warning>

5093 `context-1m-2025-08-07` beta 自 2026 年 4 月 30 日起已停用。使用 Claude Sonnet 4.5 或 Sonnet 4 传递此值无效,超过标准 200k 令牌上下文窗口的请求将返回错误。要使用 1M 令牌上下文窗口,请迁移到 [Claude Opus 5.5、Claude Opus 5、Claude Sonnet 5、Claude Sonnet 4.6、Claude Opus 4.6、Claude Opus 4.7 或 Claude Opus 4.8](https://platform.claude.com/docs/en/about-claude/models/overview),这些模型在标准定价下包含 1M 上下文,无需 beta 标头。5093 在 Claude API 上,`context-1m-2025-08-07` beta 已针对 Claude Sonnet 4.5 和 Claude Sonnet 4 停用。如果您在使用这两个模型之一时仍传递它,超过标准 200K token 上下文窗口的请求将返回错误,因此请将其从 `betas` 中移除。要以 1M token 上下文窗口运行会话,请将 `model` 设置为[默认以 1M 窗口运行](/docs/zh-CN/model-config#extended-context)的模型,例如 `claude-sonnet-5-5` 或 `claude-opus-5-5`。对于仅通过其 `[1m]` 变体才能达到 1M 的模型,请在模型 ID 后附加该后缀,例如 `claude-opus-4-6[1m]`。

5094</Warning>5094</Warning>

5095 5095 

5096<h3 id="slashcommand">5096<h3 id="slashcommand">


5109};5109};

5110```5110```

5111 5111 

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

5113 5113 

5114<h3 id="modelinfo">5114<h3 id="modelinfo">

5115 `ModelInfo`5115 `ModelInfo`


5134| 字段 | 类型 | 描述 |5134| 字段 | 类型 | 描述 |

5135| :- | :- | :- |5135| :- | :- | :- |

5136| `value` | `string` | 在 API 调用中传递的模型标识符 |5136| `value` | `string` | 在 API 调用中传递的模型标识符 |

5137| `resolvedModel` | `string \| undefined` | 此条目的 `value` 解析到的规范线路模型 ID。别名条目(如 `sonnet`)解析为显式模型 ID(如 `claude-sonnet-5`),因此主机可以将存储的显式模型 ID 与覆盖它的别名条目匹配。需要 Claude Code v2.1.197 或更高版本。 |5137| `resolvedModel` | `string \| undefined` | 此条目的 `value` 解析到的模型 ID,例如 `sonnet` 别名条目对应 `claude-sonnet-5-5`。需要 Claude Code v2.1.197 或更高版本。 |

5138| `displayName` | `string` | 人类可读的显示名称 |5138| `displayName` | `string` | 人类可读的显示名称 |

5139| `description` | `string` | 模型功能的描述 |5139| `description` | `string` | 模型功能的描述 |

5140| `supportsEffort` | `boolean \| undefined` | 此模型是否支持努力级别 |5140| `supportsEffort` | `boolean \| undefined` | 此模型是否支持 effort 级别 |

5141| `supportedEffortLevels` | `("low" \| "medium" \| "high" \| "xhigh" \| "max")[] \| undefined` | 此模型接受的努力级别 |5141| `supportedEffortLevels` | `("low" \| "medium" \| "high" \| "xhigh" \| "max")[] \| undefined` | 此模型接受的 effort 级别 |

5142| `supportsAdaptiveThinking` | `boolean \| undefined` | 此模型是否支持自适应思考,其中 Claude 决定何时以及思考多少 |5142| `supportsAdaptiveThinking` | `boolean \| undefined` | 此模型是否支持自适应思考,其中 Claude 决定何时以及思考多少 |

5143| `supportsFastMode` | `boolean \| undefined` | 此模型是否支持快速模式 |5143| `supportsFastMode` | `boolean \| undefined` | 此模型是否支持快速模式 |

5144| `supportsAutoMode` | `boolean \| undefined` | 此模型是否支持自动模式 |5144| `supportsAutoMode` | `boolean \| undefined` | 此模型是否支持自动模式 |


5159 5159 

5160| 字段 | 类型 | 描述 |5160| 字段 | 类型 | 描述 |

5161| :- | :- | :- |5161| :- | :- | :- |

5162| `name` | `string` | 代理类型标识符(例如 `"Explore"`、`"general-purpose"`) |5162| `name` | `string` | Agent 类型标识符(例如 `"Explore"`、`"general-purpose"`) |

5163| `description` | `string` | 何时使用此代理的描述 |5163| `description` | `string` | 何时使用此 Agent 的描述 |

5164| `model` | `string \| undefined` | 此代理使用的模型:别名或模型 ID,或 `'inherit'` 表示父级的模型。当为 `undefined` 时,Claude Code 选择 [子代理模型顺序](/docs/zh-CN/sub-agents#choose-a-model) 中的模型 |5164| `model` | `string \| undefined` | 此 Agent 使用的模型:别名或模型 ID,或 `'inherit'` 表示父级的模型。当为 `undefined` 时,Claude Code 选择 [子代理模型顺序](/docs/zh-CN/sub-agents#choose-a-model) 中的模型 |

5165 5165 

5166<h3 id="mcpserverprovenance">5166<h3 id="mcpserverprovenance">

5167 `McpServerProvenance`5167 `McpServerProvenance`

5168</h3>5168</h3>

5169 5169 

5170提供 `mcp__*` 工具的 MCP 服务器,以及该服务器定义的来源。[`PreToolUse`](#pretoolusehookinput)、`PostToolUse`、`PostToolUseFailure`、`PermissionRequest` 和 `PermissionDenied` 钩子输入将其作为 `mcp_server` 携带,[`CanUseTool`](#canusetool) 选项将其作为 `mcpServer` 携带。对于不来自 MCP 服务器的工具,两者都省略它。5170提供 `mcp__*` 工具的 MCP 服务器,以及该服务器定义的来源。[`PreToolUse`](#pretoolusehookinput)、`PostToolUse`、`PostToolUseFailure`、`PermissionRequest` 和 `PermissionDenied` hook 输入将其作为 `mcp_server` 携带,[`CanUseTool`](#canusetool) 选项将其作为 `mcpServer` 携带。对于不来自 MCP 服务器的工具,两者都省略它。

5171 5171 

5172```typescript theme={null}5172```typescript theme={null}

5173type McpServerProvenance = {5173type McpServerProvenance = {


5179| 字段 | 类型 | 描述 |5179| 字段 | 类型 | 描述 |

5180| :- | :- | :- |5180| :- | :- | :- |

5181| `name` | `string` | 服务器注册时使用的名称,与 [`mcpServerStatus()`](#query-object) 为其报告的值相同 |5181| `name` | `string` | 服务器注册时使用的名称,与 [`mcpServerStatus()`](#query-object) 为其报告的值相同 |

5182| `source` | `string` | 服务器定义的来源:`sdk`、`plugin` 或配置范围 |5182| `source` | `string` | 服务器定义的来源:`sdk`、`plugin` 或配置作用域 |

5183 5183 

5184`source` 采用以下值之一。该集合是开放的,因此将您不认识的值视为配置的来源,而不是 `sdk`:5184`source` 采用以下值之一。该集合是开放的,因此将您不认识的值视为配置的来源,而不是 `sdk`:

5185 5185 

5186* **`sdk`**:您的应用程序注册的进程内服务器。只有 SDK 主机应用程序可以注册一个,因此配置的服务器永远不会报告 `sdk`,无论其名称如何。5186* **`sdk`**:您的应用程序注册的进程内服务器。只有 SDK 主机应用程序可以注册一个,因此配置的服务器永远不会报告 `sdk`,无论其名称如何。

5187* **`plugin`**:[plugin](/docs/zh-CN/agent-sdk/plugins) 提供的服务器。其 `name` 是 [plugin-provided MCP servers](/docs/zh-CN/mcp#plugin-provided-mcp-servers) 下描述的作用域 `plugin:<plugin-name>:<server-name>` 形式。5187* **`plugin`**:[插件](/docs/zh-CN/agent-sdk/plugins) 提供的服务器。其 `name` 是 [插件提供的 MCP 服务器](/docs/zh-CN/mcp#plugin-provided-mcp-servers) 下描述的作用域 `plugin:<plugin-name>:<server-name>` 形式。

5188* **配置范围**:`user`、`project`、`local`、`dynamic`、`managed`、`enterprise`、`claudeai` 或 `agent`。`.mcp.json` 服务器报告 `project`,[MCP installation scopes](/docs/zh-CN/mcp#mcp-installation-scopes) 定义 `local`、`project` 和 `user`。您的应用程序在 [`mcpServers` 选项](#options) 中传递的服务器(除了进程内 SDK 服务器外)报告 `dynamic`。5188* **配置作用域**:`user`、`project`、`local`、`dynamic`、`managed`、`enterprise`、`claudeai` 或 `agent`。`.mcp.json` 服务器报告 `project`,[MCP installation scopes](/docs/zh-CN/mcp#mcp-installation-scopes) 定义 `local`、`project` 和 `user`。您的应用程序在 [`mcpServers` 选项](#options) 中传递的服务器(除了进程内 SDK 服务器外)报告 `dynamic`。

5189 5189 

5190基于 `source` 做出信任决策,而不是基于 `name` 或 `mcp__<server>__` 工具名称前缀。对于除 `sdk` 之外的任何来源,`name` 是不受信任的文本:在显示前对其进行转义。5190基于 `source` 做出信任决策,而不是基于 `name` 或 `mcp__<server>__` 工具名称前缀。对于除 `sdk` 之外的任何来源,`name` 是不受信任的文本:在显示前对其进行转义。

5191 5191 


5224 5224 

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

5226 5226 

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

5228 5228 

5229<h3 id="mcpserverstatusconfig">5229<h3 id="mcpserverstatusconfig">

5230 `McpServerStatusConfig`5230 `McpServerStatusConfig`


5282};5282};

5283```5283```

5284 5284 

5285`thinkingTokens` 计算此模型生成的思考令牌。`outputTokens` 已包含它们,因此不要将两者相加。该字段在运行在记录它的 Claude Code 版本上的轮次之前不存在,因此在早期版本上开始的已恢复会话报告部分计数。`thinkingTokens` 需要 Agent SDK v0.3.257 或更高版本。5285`thinkingTokens` 计算此模型生成的思考 token。`outputTokens` 已包含它们,因此不要将两者相加。该字段在运行在记录它的 Claude Code 版本上的轮次之前不存在,因此在早期版本上开始的已恢复会话报告部分计数。`thinkingTokens` 需要 Agent SDK v0.3.257 或更高版本。

5286 5286 

5287`canonicalModel` 和 `provider` 字段需要 Claude Code v2.1.218 或更高版本。`canonicalModel` 是定价查询使用的规范模型 ID;它可能与键入条目的原始模型字符串不同,例如当该字符串是提供商特定的 ID 或别名时。5287`canonicalModel` 和 `provider` 字段需要 Claude Code v2.1.218 或更高版本。`canonicalModel` 是定价查询使用的规范模型 ID;它可能与键入条目的原始模型字符串不同,例如当该字符串是提供商特定的 ID 或别名时。

5288 5288 


5314 `Usage`5314 `Usage`

5315</h3>5315</h3>

5316 5316 

5317令牌使用统计信息。这是来自 `@anthropic-ai/sdk` 的 `BetaUsage` 类型。5317token 使用统计信息。这是来自 `@anthropic-ai/sdk` 的 `BetaUsage` 类型。

5318 5318 

5319```typescript theme={null}5319```typescript theme={null}

5320type Usage = {5320type Usage = {


5337 5337 

5338`BetaServerToolUsage`、`BetaIterationsUsage` 和 `BetaOutputTokensDetails` 在 `@anthropic-ai/sdk` 中定义。5338`BetaServerToolUsage`、`BetaIterationsUsage` 和 `BetaOutputTokensDetails` 在 `@anthropic-ai/sdk` 中定义。

5339 5339 

5340`output_tokens_details` 按类别分解计费输出。它目前携带一个字段 `thinking_tokens: number`,计算模型生成的作为内部推理的输出令牌,包括思考块分隔符。`output_tokens_details` 字段需要 TypeScript SDK v0.3.228 或更高版本,它捆绑了 Claude Code v2.1.228。5340`output_tokens_details` 按类别分解计费输出。它目前携带一个字段 `thinking_tokens: number`,计算模型生成的作为内部推理的输出 token,包括思考块分隔符。`output_tokens_details` 字段需要 TypeScript SDK v0.3.228 或更高版本,它捆绑了 Claude Code v2.1.228。

5341 5341 

5342* **计费**:读取分解以进行观察,而不是用于计费。`output_tokens` 保持为权威总数,`output_tokens - thinking_tokens` 近似非推理输出。5342* **计费**:读取分解以进行观察,而不是用于计费。`output_tokens` 保持为权威总数,`output_tokens - thinking_tokens` 近似非推理输出。

5343* **计数涵盖的内容**:模型生成的原始推理,可能比响应体中返回的思考文本更长。API 通过重新标记该原始文本来计算它,因此它可能与模型的精确生成计数相差几个令牌。5343* **计数涵盖的内容**:模型生成的原始推理,可能比响应体中返回的思考文本更长。API 通过重新对该原始文本进行 token 化来计算它,因此它可能与模型的精确生成计数相差几个 token。

5344* **流式传输**:在流式助手消息上,此分解与 `output_tokens` 一样是 `message_start` 占位符,不携带真实计数,因此从结果消息的 `usage` 读取它,如 [Read output tokens from the result message](/docs/zh-CN/agent-sdk/cost-tracking#read-output-tokens-from-the-result-message) 所述。在结果消息上,当模型或提供商不报告分解时,`thinking_tokens` 读取 `0`。5344* **流式输出**:在流式助手消息上,此分解与 `output_tokens` 一样是 `message_start` 占位符,不携带真实计数,因此从结果消息的 `usage` 读取它,如 [Read output tokens from the result message](/docs/zh-CN/agent-sdk/cost-tracking#read-output-tokens-from-the-result-message) 所述。在结果消息上,当模型或提供商不报告分解时,`thinking_tokens` 读取 `0`。

5345* **`null` 情况**:`output_tokens_details` 本身在 Claude Code 合成的助手消息上为 `null`,例如 API 错误消息。5345* **`null` 情况**:`output_tokens_details` 本身在 Claude Code 合成的助手消息上为 `null`,例如 API 错误消息。

5346 5346 

5347<h3 id="calltoolresult">5347<h3 id="calltoolresult">


5477 5477 

5478当您调用 `setMcpServers()` 时,Claude Code 应用这些规则:5478当您调用 `setMcpServers()` 时,Claude Code 应用这些规则:

5479 5479 

5480* **调用未命名的服务器**:Claude Code 保持 plugin 提供的服务器运行。需要 Agent SDK v0.3.210 或更高版本。5480* **调用未命名的服务器**:Claude Code 保持插件提供的服务器运行。需要 Agent SDK v0.3.210 或更高版本。

5481* **调用命名的服务器**:除了 CLI 在启动时启动的内置服务器外,Claude Code 仅在其配置与您传递的配置不同时才替换运行中的服务器。5481* **调用命名的服务器**:除了 CLI 在启动时启动的内置服务器外,Claude Code 仅在其配置与您传递的配置不同时才替换运行中的服务器。

5482* **CLI 在启动时启动的内置服务器**:如果调用命名了一个,Claude Code 会删除该条目并在 `errors` 中报告它。5482* **CLI 在启动时启动的内置服务器**:如果调用命名了一个,Claude Code 会删除该条目并在 `errors` 中报告它。

5483 5483 

5484承诺在新添加的 stdio、HTTP 和 SSE 服务器连接或失败后解决,因此来自已连接服务器的工具在下一轮可用。5484该 Promise 在新添加的 stdio、HTTP 和 SSE 服务器连接或失败后解析,因此来自已连接服务器的工具在下一轮可用。

5485 5485 

5486`added` 列出 Claude Code 添加或替换的服务器,无论它们是否连接。连接失败的服务器同时出现在 `added` 和 `errors` 中,`errors` 下有失败文本,[`mcpServerStatus()`](#methods) 中有 `failed` 行。在 Claude Code v2.1.257 之前,连接尝试抛出的服务器仅在 `errors` 下报告。5486`added` 列出 Claude Code 添加或替换的服务器,无论它们是否连接。连接失败的服务器同时出现在 `added` 和 `errors` 中,`errors` 下有失败文本,[`mcpServerStatus()`](#methods) 中有 `failed` 行。在 Claude Code v2.1.257 之前,连接尝试抛出的服务器仅在 `errors` 下报告。

5487 5487 


5574 `SDKHookStartedMessage`5574 `SDKHookStartedMessage`

5575</h3>5575</h3>

5576 5576 

5577在钩子开始执行时发出。5577在 hook 开始执行时发出。

5578 5578 

5579Claude Code 将此消息、[`SDKHookProgressMessage`](#sdkhookprogressmessage) 和 [`SDKHookResponseMessage`](#sdkhookresponsemessage) 立即传递到消息流,包括在会话启动期间 `SessionStart` 或 `Setup` 钩子仍在运行时。Claude Code v2.1.169 至 v2.1.203 在 `SessionStart` 或 `Setup` 钩子完成后分批传递这些消息;v2.1.204 恢复了实时传递。5579Claude Code 将此消息、[`SDKHookProgressMessage`](#sdkhookprogressmessage) 和 [`SDKHookResponseMessage`](#sdkhookresponsemessage) 立即传递到消息流,包括在会话启动期间 `SessionStart` 或 `Setup` hook 仍在运行时。Claude Code v2.1.169 至 v2.1.203 在 `SessionStart` 或 `Setup` hook 完成后分批传递这些消息;v2.1.204 恢复了实时传递。

5580 5580 

5581```typescript theme={null}5581```typescript theme={null}

5582type SDKHookStartedMessage = {5582type SDKHookStartedMessage = {


5594 `SDKHookProgressMessage`5594 `SDKHookProgressMessage`

5595</h3>5595</h3>

5596 5596 

5597在钩子运行时发出,带有 stdout/stderr 输出。5597在 hook 运行时发出,带有 stdout/stderr 输出。

5598 5598 

5599```typescript theme={null}5599```typescript theme={null}

5600type SDKHookProgressMessage = {5600type SDKHookProgressMessage = {


5615 `SDKHookResponseMessage`5615 `SDKHookResponseMessage`

5616</h3>5616</h3>

5617 5617 

5618在钩子完成执行时发出。5618在 hook 完成执行时发出。

5619 5619 

5620```typescript theme={null}5620```typescript theme={null}

5621type SDKHookResponseMessage = {5621type SDKHookResponseMessage = {


5671 5671 

5672* 按 `parent_tool_use_id` 跟踪指示器,这对每个子代理是唯一的。`tool_use_id` 由来自一个助手轮次的并行子代理共享,因此按它跟踪会让一个子代理的更新清除另一个的指示器。5672* 按 `parent_tool_use_id` 跟踪指示器,这对每个子代理是唯一的。`tool_use_id` 由来自一个助手轮次的并行子代理共享,因此按它跟踪会让一个子代理的更新清除另一个的指示器。

5673* 当同一 `parent_tool_use_id` 的后续 `tool_progress` 到达时清除指示器,既不带 `subagent_retry` 也不带 `heartbeat: true`,或当工具的结果消息到达时。带 `heartbeat: true` 的帧仅报告活跃性,因此在一个到达时保持指示器。`attempt` 可能在持续重试下超过 `max_retries`,因此不要从计数器派生清除。5673* 当同一 `parent_tool_use_id` 的后续 `tool_progress` 到达时清除指示器,既不带 `subagent_retry` 也不带 `heartbeat: true`,或当工具的结果消息到达时。带 `heartbeat: true` 的帧仅报告活跃性,因此在一个到达时保持指示器。`attempt` 可能在持续重试下超过 `max_retries`,因此不要从计数器派生清除。

5674* 将 `error_category` 视为选择您自己的消息文本的令牌,而不是显示文本。值为 `rate_limit`、`overloaded`、`authentication_failed`、`server_error`、`cloud_credential_error` 和 `unknown`。处理您不认识的值的方式与处理 `unknown` 的方式相同,因为后续版本可以添加值。5674* 将 `error_category` 视为用于选择您自己的消息文本的标识符,而不是显示文本。值为 `rate_limit`、`overloaded`、`authentication_failed`、`server_error`、`cloud_credential_error` 和 `unknown`。处理您不认识的值的方式与处理 `unknown` 的方式相同,因为后续版本可以添加值。

5675 5675 

5676<h3 id="sdkauthstatusmessage">5676<h3 id="sdkauthstatusmessage">

5677 `SDKAuthStatusMessage`5677 `SDKAuthStatusMessage`

5678</h3>5678</h3>

5679 5679 

5680在身份验证流期间发出。5680在身份验证流程期间发出。

5681 5681 

5682```typescript theme={null}5682```typescript theme={null}

5683type SDKAuthStatusMessage = {5683type SDKAuthStatusMessage = {


5727 `SDKTaskProgressMessage`5727 `SDKTaskProgressMessage`

5728</h3>5728</h3>

5729 5729 

5730在子代理或后台任务运行时定期发出。对于子代理任务,`summary` 字段仅在启用 [`agentProgressSummaries`](#options) 时填充。对于 [backgrounded MCP tool call](/docs/zh-CN/mcp#automatic-backgrounding-of-long-tool-calls),`summary` 携带 MCP 服务器的最新报告进度,不依赖于该选项。5730在子代理或后台任务运行时定期发出。

5731 

5732对于子代理任务,`summary` 字段携带模型生成的进度摘要,并且仅在启用 [`agentProgressSummaries`](#options) 时填充。对于 [backgrounded MCP tool call](/docs/zh-CN/mcp#automatic-backgrounding-of-long-tool-calls),`summary` 携带 MCP 服务器的最新报告进度,不依赖于该选项。

5731 5733 

5732```typescript theme={null}5734```typescript theme={null}

5733type SDKTaskProgressMessage = {5735type SDKTaskProgressMessage = {


5777 `SDKBackgroundTasksChangedMessage`5779 `SDKBackgroundTasksChangedMessage`

5778</h3>5780</h3>

5779 5781 

5780每当实时后台任务集更改时发出:任务启动、完成、被杀死、前台代理被后台化,或任务的 `description` 或 `ambient` 字段更改。5782每当实时后台任务集更改时发出:任务启动、完成、被杀死、前台 Agent 被后台化,或任务的 `description` 或 `ambient` 字段更改。

5781 5783 

5782`tasks` 数组是完整的实时集。用每个有效负载替换任何缓存的集,而不是配对 `task_started` 和 `task_notification` 事件,以便下一个成员资格更改纠正您错过的任何事件。5784`tasks` 数组是完整的实时集。用每个负载替换任何缓存的集,而不是配对 `task_started` 和 `task_notification` 事件,以便下一个成员资格更改纠正您错过的任何事件。

5783 5785 

5784相对于这些每任务事件的顺序是未指定的,因此不要关联两个流。5786相对于这些每任务事件的顺序是未指定的,因此不要关联两个流。

5785 5787 


5808 `SDKThinkingTokensMessage`5810 `SDKThinkingTokensMessage`

5809</h3>5811</h3>

5810 5812 

5811在 Claude 生成思考块时发出,包括编辑过的块。`estimated_tokens` 是当前块中迄今为止生成的思考令牌的运行估计,`estimated_tokens_delta` 是此帧携带的增量。使用这些估计进行进度显示。5813在 Claude 生成思考块时发出,包括编辑过的块。`estimated_tokens` 是当前块中迄今为止生成的思考 token 的运行估计,`estimated_tokens_delta` 是此帧携带的增量。使用这些估计进行进度显示。

5812 5814 

5813当模型或提供商报告分解时,顶级代理循环的最终计数是结果消息的 [`usage.output_tokens_details.thinking_tokens`](#usage),它 [不包括子代理令牌](/docs/zh-CN/agent-sdk/cost-tracking#get-the-total-cost-of-a-query)。5815当模型或提供商报告分解时,顶级 Agent 循环的最终计数是结果消息的 [`usage.output_tokens_details.thinking_tokens`](#usage),它 [不包括子代理 token](/docs/zh-CN/agent-sdk/cost-tracking#get-the-total-cost-of-a-query)。

5814 5816 

5815需要 Claude Code v2.1.153 或更高版本。5817需要 Claude Code v2.1.153 或更高版本。

5816 5818 


5866};5868};

5867```5869```

5868 5870 

5869当 `errorCode` 为 `"credits_required"` 时,拒绝来自 claude.ai 订阅,其包含的使用已耗尽,会话在用户购买使用额度之前无法继续。`canUserPurchaseCredits` 指示经过身份验证的用户是否可以为账户购买额度,`hasChargeableSavedPaymentMethod` 指示是否有保存的付款方式在文件中。所有三个字段在不是额度必需拒绝的速率限制事件上不存在。需要 Claude Code v2.1.181 或更高版本。5871当 `errorCode` 为 `"credits_required"` 时,拒绝来自 claude.ai 订阅,其包含的用量已耗尽,会话在用户购买使用额度之前无法继续。`canUserPurchaseCredits` 指示经过身份验证的用户是否可以为账户购买额度,`hasChargeableSavedPaymentMethod` 指示是否有已保存的付款方式。所有三个字段在不是需要额度拒绝的速率限制事件上不存在。需要 Claude Code v2.1.181 或更高版本。

5870 5872 

5871<h3 id="sdklocalcommandoutputmessage">5873<h3 id="sdklocalcommandoutputmessage">

5872 `SDKLocalCommandOutputMessage`5874 `SDKLocalCommandOutputMessage`

5873</h3>5875</h3>

5874 5876 

5875Claude Code 不发出此消息类型。当您发送命令(如 `/context` 或 `/usage`)作为提示时,其输出作为 [`SDKAssistantMessage`](#sdkassistantmessage) 到达。5877Claude Code 不发出此消息类型。当您将命令(如 `/context` 或 `/usage`)作为提示词发送时,其输出作为 [`SDKAssistantMessage`](#sdkassistantmessage) 到达。

5876 5878 

5877```typescript theme={null}5879```typescript theme={null}

5878type SDKLocalCommandOutputMessage = {5880type SDKLocalCommandOutputMessage = {


5888 `SDKCommandsChangedMessage`5890 `SDKCommandsChangedMessage`

5889</h3>5891</h3>

5890 5892 

5891当可用命令集在会话中期更改时发出,例如当 Claude Code 在代理进入子目录时发现技能时。`commands` 数组是完整的更新列表,因此用此有效负载替换任何缓存的命令列表。在此消息后调用 [`supportedCommands()`](#query-object) 返回相同的更新列表,因为该方法跟踪最新推送;这需要 Agent SDK v0.3.216 或更高版本。在早期 SDK 版本中,`supportedCommands()` 返回在初始化时捕获的快照,永远不会反映会话中期的更改。5893当可用命令集在会话中途更改时发出,例如当 Claude Code 在 Agent 进入子目录时发现 skill 时。`commands` 数组是完整的更新列表,因此用此负载替换任何缓存的命令列表。在此消息后调用 [`supportedCommands()`](#query-object) 返回相同的更新列表,因为该方法跟踪最新推送;这需要 Agent SDK v0.3.216 或更高版本。在早期 SDK 版本中,`supportedCommands()` 返回在初始化时捕获的快照,永远不会反映会话中途的更改。

5892 5894 

5893Claude Code 也在 MCP 服务器的 [prompts](/docs/zh-CN/mcp#use-mcp-prompts-as-commands) 加入或离开列表时发出此消息,例如当服务器在会话启动后完成连接时。这需要 Claude Code v2.1.281 或更高版本。5895Claude Code 也在 MCP 服务器的 [提示词](/docs/zh-CN/mcp#use-mcp-prompts-as-commands) 加入或离开列表时发出此消息,例如当服务器在会话启动后完成连接时。这需要 Claude Code v2.1.281 或更高版本。

5894 5896 

5895```typescript theme={null}5897```typescript theme={null}

5896type SDKCommandsChangedMessage = {5898type SDKCommandsChangedMessage = {


5906 `SDKPromptSuggestionMessage`5908 `SDKPromptSuggestionMessage`

5907</h3>5909</h3>

5908 5910 

5909在启用 [`promptSuggestions`](#options) 且 Claude Code 为该轮生成建议时,在轮次后发出。包含预测的下一个用户提示。对于未获得任何建议的轮次,请参阅 [When Claude Code skips suggestions](/docs/zh-CN/interactive-mode#when-claude-code-skips-suggestions)。5911在启用 [`promptSuggestions`](#options) 且 Claude Code 为该轮生成建议时,在轮次后发出。包含预测的下一个用户提示词。对于未获得任何建议的轮次,请参阅 [When Claude Code skips suggestions](/docs/zh-CN/interactive-mode#when-claude-code-skips-suggestions)。

5910 5912 

5911```typescript theme={null}5913```typescript theme={null}

5912type SDKPromptSuggestionMessage = {5914type SDKPromptSuggestionMessage = {


5921 `SDKConversationResetMessage`5923 `SDKConversationResetMessage`

5922</h3>5924</h3>

5923 5925 

5924在会话的对话被替换而不结束会话时发出。在 `query()` 调用中,只有 `/clear` 及其别名产生此消息。在 `new_conversation_id` 下挂载空成绩单并丢弃任何缓存的会话标题。5926在会话的对话被替换而不结束会话时发出。在 `query()` 调用中,只有 `/clear` 及其别名产生此消息。在 `new_conversation_id` 下挂载空会话记录并丢弃任何缓存的会话标题。

5925 5927 

5926```typescript theme={null}5928```typescript theme={null}

5927type SDKConversationResetMessage = {5929type SDKConversationResetMessage = {


5937 5939 

5938可选字段描述重置:5940可选字段描述重置:

5939 5941 

5940* `trigger`:什么丢弃了对话。在每个 `conversation_reset` 消息上重置您的成绩单,包括此字段不存在或携带您不认识的值的消息。5942* `trigger`:什么丢弃了对话。在每个 `conversation_reset` 消息上重置您的会话记录,包括此字段不存在或携带您不认识的值的消息。

5941* `user_message_uuid`:携带 `/clear` 的用户消息的 `uuid`。使用它将重置与该消息匹配。5943* `user_message_uuid`:携带 `/clear` 的用户消息的 `uuid`。使用它将重置与该消息匹配。

5942* `timestamp`:重置发生的时间,作为 UTC 中的 ISO 8601 字符串。使用它进行显示,而不是用于排序消息。5944* `timestamp`:重置发生的时间,作为 UTC 中的 ISO 8601 字符串。使用它进行显示,而不是用于排序消息。

5943 5945 

5944`trigger`、`user_message_uuid` 和 `timestamp` 字段需要 Claude Code v2.1.281 或更高版本。5946`trigger`、`user_message_uuid` 和 `timestamp` 字段需要 Claude Code v2.1.281 或更高版本。

5945 5947 

5946SDK 的已发布类型在 Claude Code v2.1.203 及更高版本中声明 `SDKConversationResetMessage`。在 v2.1.203 之前,`SDKMessage` 引用了该类型而不声明它,因此当 `skipLibCheck` 被禁用时,在 `type === "conversation_reset"` 上缩小范围失败类型检查。5948SDK 的已发布类型在 Claude Code v2.1.203 及更高版本中声明 `SDKConversationResetMessage`。在 v2.1.203 之前,`SDKMessage` 引用了该类型而不声明它,因此当 `skipLibCheck` 被禁用时,在 `type === "conversation_reset"` 上缩小范围无法通过类型检查。

5947 5949 

5948<h3 id="aborterror">5950<h3 id="aborterror">

5949 `AbortError`5951 `AbortError`


5955class AbortError extends Error {}5957class AbortError extends Error {}

5956```5958```

5957 5959 

5958`AbortError` 是 SDK 的类型化 API 中唯一的错误类。其他失败,例如 Claude Code 进程退出或启动失败,使用不携带 SDK 类以匹配的错误拒绝消息迭代。[Troubleshooting](/docs/zh-CN/agent-sdk/troubleshooting) 按消息键入这些错误,每个都有原因和修复。5960`AbortError` 是 SDK 的类型化 API 中唯一的错误类。其他失败,例如 Claude Code 进程退出或启动失败,使用不携带可供匹配的 SDK 类的错误拒绝消息迭代。[故障排除](/docs/zh-CN/agent-sdk/troubleshooting) 按消息列出这些错误,并给出每个错误的原因和修复方法。

5959 5961 

5960<h2 id="sandbox-configuration">5962<h2 id="sandbox-configuration">

5961 沙箱配置5963 沙箱配置

Details

526 526 

527如果您的组织通过 [Claude apps gateway](/docs/zh-CN/claude-apps-gateway) 策略传递 guardrail 标头,它们将被视为[需要批准的设置](/docs/zh-CN/server-managed-settings#environment-variables-and-the-approval-dialog)。527如果您的组织通过 [Claude apps gateway](/docs/zh-CN/claude-apps-gateway) 策略传递 guardrail 标头,它们将被视为[需要批准的设置](/docs/zh-CN/server-managed-settings#environment-variables-and-the-approval-dialog)。

528 528 

529当 guardrail 在中途阻止响应时,已流式传输的文本会保留,并且回复将以 guardrail 上为被阻止响应配置的消息结尾。

530 

529<h2 id="use-the-mantle-endpoint">531<h2 id="use-the-mantle-endpoint">

530 使用 Mantle 端点532 使用 Mantle 端点

531</h2>533</h2>

cli-reference.md +10 −2

Details

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

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

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

29| `claude auth status` | 以 JSON 格式显示身份验证状态。使用 `--text` 获取人类可读的输出。如果已登录,则以代码 0 退出,如果未登录,则以代码 1 退出。JSON 包含一个 `configDirectory` 字段,命名 CLI 使用的 [配置目录](/docs/zh-CN/claude-directory)。该字段需要 Claude Code v2.1.268 或更高版本 | `claude auth status` |29| `claude auth status` | 以 JSON 格式显示身份验证状态。使用 `--text` 获取人类可读的输出。如果已登录,则以代码 0 退出,如果未登录,则以代码 1 退出。JSON 包含一个 `configDirectory` 字段,命名 CLI 使用的 [配置目录](/docs/zh-CN/claude-directory)。该字段需要 Claude Code v2.1.268 或更高版本。JSON 的 `authMethod` 字段取值为 `none`、`claude.ai`、`oauth_token`、`api_key`、`api_key_helper` 或 `third_party` 之一 | `claude auth status` |

30| `claude agents` | 打开 [agent view](/docs/zh-CN/agent-view) 以监控和分派并行后台会话。使用 `--cwd <path>` 仅显示在该目录下启动的会话,或使用 `--json` 将实时会话打印为 JSON 数组以供脚本使用(`--json --all` 也包括已完成的后台会话)。传递 `--permission-mode`、`--model`、`--effort` 或 `--agent` 以设置 [分派会话的默认值](/docs/zh-CN/agent-view#permission-mode-model-and-effort)。接受 `--settings`、`--add-dir`、`--plugin-dir` 和 `--mcp-config`,如顶级 `claude` 命令。打开 agent view 需要交互式终端 | `claude agents --json` |30| `claude agents` | 打开 [agent view](/docs/zh-CN/agent-view) 以监控和分派并行后台会话。使用 `--cwd <path>` 仅显示在该目录下启动的会话,或使用 `--json` 将实时会话打印为 JSON 数组以供脚本使用(`--json --all` 也包括已完成的后台会话)。传递 `--permission-mode`、`--model`、`--effort` 或 `--agent` 以设置 [分派会话的默认值](/docs/zh-CN/agent-view#permission-mode-model-and-effort)。接受 `--settings`、`--add-dir`、`--plugin-dir` 和 `--mcp-config`,如顶级 `claude` 命令。打开 agent view 需要交互式终端 | `claude agents --json` |

31| `claude attach <id>` | 在此终端中附加到 [后台会话](/docs/zh-CN/agent-view#manage-sessions-from-the-shell) | `claude attach 7c5dcf5d` |31| `claude attach <id>` | 在此终端中附加到 [后台会话](/docs/zh-CN/agent-view#manage-sessions-from-the-shell) | `claude attach 7c5dcf5d` |

32| `claude auto-mode defaults` | 以 JSON 格式打印内置 [auto mode](/docs/zh-CN/permission-modes#eliminate-prompts-with-auto-mode) 分类器规则。使用 `claude auto-mode config` 查看应用了设置的有效配置。`--label <prefix>` 仅打印标签以该前缀开头的规则,不区分大小写匹配。需要 Claude Code v2.1.208 或更高版本 | `claude auto-mode defaults --label 'Git Destructive'` |32| `claude auto-mode defaults` | 以 JSON 格式打印内置 [auto mode](/docs/zh-CN/permission-modes#eliminate-prompts-with-auto-mode) 分类器规则。使用 `claude auto-mode config` 查看应用了设置的有效配置。`--label <prefix>` 仅打印标签以该前缀开头的规则,不区分大小写匹配。需要 Claude Code v2.1.208 或更高版本 | `claude auto-mode defaults --label 'Git Destructive'` |


156| `--append-system-prompt-file` | 将文件内容附加到默认提示 | `claude --append-system-prompt-file ./style-rules.txt` |156| `--append-system-prompt-file` | 将文件内容附加到默认提示 | `claude --append-system-prompt-file ./style-rules.txt` |

157| `--system-prompt-snapshot` | 使用 `off`,在每个请求上重建提示。使用 `on`(默认),重用[记录应用的](#system-prompt-flags-in-resumed-conversations)记录的提示 | `claude --append-system-prompt "Draft rules" --system-prompt-snapshot off` |157| `--system-prompt-snapshot` | 使用 `off`,在每个请求上重建提示。使用 `on`(默认),重用[记录应用的](#system-prompt-flags-in-resumed-conversations)记录的提示 | `claude --append-system-prompt "Draft rules" --system-prompt-snapshot off` |

158 158 

159`--system-prompt` 和 `--system-prompt-file` 互斥。附加标志可以与任一替换标志组合。159您可以组合使用这些标志。要替换默认提示词并仍然附加您自己的文本,请将 `--append-system-prompt` 或 `--append-system-prompt-file` 与 `--system-prompt` 或 `--system-prompt-file` 一起传递。在 Claude Code v2.1.283 或更高版本中,您还可以将某个标志与其自身的文件形式一起传递,例如将 `--append-system-prompt` 与 `--append-system-prompt-file` 一起使用,Claude Code 会同时使用两者。

160 

161例如,在 shell 中运行以下命令,以同时附加来自文件的样式指南和一条额外的指令:

162 

163```bash theme={null}

164claude -p --append-system-prompt-file ./style.md --append-system-prompt "Always reply in French" "Summarize README.md"

165```

166 

167Claude 收到的是默认系统提示词,后跟 `style.md` 的内容、一个空行,然后是 `Always reply in French`。即使您在 `--append-system-prompt-file` 之前传递 `--append-system-prompt`,文件的内容也会排在前面。

160 168 

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

162 170 

commands.md +119 −119

Details

36 所有命令36 所有命令

37</h2>37</h2>

38 38 

39下表列出了 Claude Code 中包含的所有命令。大多数是内置命令,其行为被编码到 CLI 中。两种条目被标记:39下表列出了 Claude Code 中包含的所有命令。大多数是内置命令,其行为编码在 CLI 中。有两类条目带有标记:

40 40 

41* **[Skill](/docs/zh-CN/skills#bundled-skills)**:一个捆绑的 skill。它的工作方式与你自己编写的 skill 相同:一个提示词交给 Claude。41* **[Skill](/docs/zh-CN/skills#bundled-skills)**:随附 skill。它的工作方式与您自己编写的 skill 相同:是交给 Claude 的提示词。

42 * `/verify` 仅在你调用它时运行。在 v2.1.215 之前,Claude 也可以自己运行 `/verify`。42 * `/verify` 仅在您调用时运行。在 v2.1.215 之前,Claude 也可以自行运行 `/verify`。

43* **[Workflow](/docs/zh-CN/workflows#bundled-workflows)**:一个捆绑的[动态 workflow](/docs/zh-CN/workflows),它将工作分散到许多子代理中,并在后台运行。43* **[工作流](/docs/zh-CN/workflows#bundled-workflows)**:随附的[动态工作流](/docs/zh-CN/workflows),会将工作分发到多个子代理并在后台运行。

44 * `/deep-research` 仅在你调用它时运行。在 v2.1.218 之前,Claude 也可以自己启动它。44 * `/deep-research` 仅在您调用时运行。在 v2.1.218 之前,Claude 也可以自行启动它。

45 45 

46要添加你自己的命令,请参阅 [skills](/docs/zh-CN/skills)。46要添加您自己的命令,请参阅 [skill](/docs/zh-CN/skills)。

47 47 

48在下表中,`<arg>` 表示必需的参数,`[arg]` 表示可选参数。48在下表中,`<arg>` 表示必需参数,`[arg]` 表示可选参数。

49 49 

50<Note>50<Note>

51 并非每个命令都对每个用户显示。可用性取决于你的平台、计划和环境。例如,`/desktop` 仅在 macOS 和 x64 Windows 上使用 Claude 订阅登录时显示,`/upgrade` 在企业计划上不显示。51 并非每个命令都会对每个用户显示。可用性取决于您的平台、套餐和环境。例如,`/desktop` 仅在使用 Claude 订阅登录时才会在 macOS 和 x64 Windows 上显示,而 `/upgrade` 不会在 Enterprise 套餐上显示。

52</Note>52</Note>

53 53 

54| 命令 | 目的 |54| 命令 | 用途 |

55| :- | :- |55| :- | :- |

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

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

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

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

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

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

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

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

64| `/autofix-pr [prompt]` | 生成一个 [cloud session](/docs/zh-CN/claude-code-on-the-web#auto-fix-pull-requests) 会话,监视当前分支的 PR 并在 CI 失败或审阅者留下评论时推送修复。使用 `gh pr view` 从你的检出分支检测打开的 PR;要监视不同的 PR,请先检出其分支。默认情况下,云会话被告知修复每个 CI 失败和审阅评论;传递一个提示词以给它不同的指令,例如 `/autofix-pr only fix lint and type errors`。需要 `gh` CLI 和访问 [cloud sessions](/docs/zh-CN/claude-code-on-the-web) |64| `/autofix-pr [prompt]` | 生成一个[云端会话](/docs/zh-CN/claude-code-on-the-web#auto-fix-pull-requests),监视当前分支的 PR,并在 CI 失败或审阅者留下评论时推送修复。通过 `gh pr view` 从您检出的分支检测打开的 PR;要监视其他 PR,请先检出其分支。默认情况下,云端会话会被指示修复每个 CI 失败和审阅评论;传递提示词可给出不同的指令,例如 `/autofix-pr only fix lint and type errors`。需要 `gh` CLI 以及[云端会话](/docs/zh-CN/claude-code-on-the-web)访问权限 |

65| `/background [prompt]` | 分离当前会话以作为[后台代理](/docs/zh-CN/agent-view)运行并释放此终端。传递一个提示词以在分离前发送一个更多指令。使用 `claude agents` 监视会话。要将对话复制到新的后台会话中,同时此会话继续运行,请使用 `/fork`。别名:`/bg` |65| `/background [prompt]` | 将当前会话分离,作为[后台 Agent](/docs/zh-CN/agent-view) 运行,并释放此终端。传递提示词可在分离前再发送一条指令。使用 `claude agents` 监视该会话。要将对话复制到新的后台会话中,同时让当前会话继续运行,请使用 `/fork`。别名:`/bg` |

66| `/batch <instruction>` | **[Skill](/docs/zh-CN/skills#bundled-skills)。** 在整个代码库中并行编排大规模更改。研究代码库,将工作分解为 5 到 30 个独立单元,并呈现一个计划。获得批准后,在隔离的 [worktree](/docs/zh-CN/worktrees) 中为每个单元生成一个[后台子代理](/docs/zh-CN/sub-agents#run-subagents-in-foreground-or-background)。每个子代理实现其单元,运行测试,并发布其更改。需要一个 git 存储库或一个[`WorktreeCreate` hook](/docs/zh-CN/worktrees#non-git-version-control)来创建 worktree。在 git 存储库之外,`/batch` 需要 Claude Code v2.1.281 或更高版本。示例:`/batch migrate src/ from JavaScript to TypeScript` |66| `/batch <instruction>` | **[Skill](/docs/zh-CN/skills#bundled-skills)。** 在代码库中并行编排大规模更改。研究代码库,将工作分解为 5 到 30 个独立单元,并呈现计划。获得批准后,为每个单元在隔离的 [worktree](/docs/zh-CN/worktrees) 中生成一个[后台子代理](/docs/zh-CN/sub-agents#run-subagents-in-foreground-or-background)。每个子代理实现其单元、运行测试并发布其更改。需要 git 仓库,或一个用于创建 worktree 的 [`WorktreeCreate` hook](/docs/zh-CN/worktrees#non-git-version-control)。在 git 仓库之外,`/batch` 需要 Claude Code v2.1.281 或更高版本。示例:`/batch migrate src/ from JavaScript to TypeScript` |

67| `/branch [name]` | 在此点创建当前对话的一个分支,以便你可以尝试不同的方向而不会丢失对话。切换到分支并保留原始分支,你可以使用 `/resume` 返回到它。要运行一个副本作为单独的[后台会话](/docs/zh-CN/agent-view)而不是切换到它,请使用 `/fork`;要将一个侧面任务交给一个[子代理](/docs/zh-CN/sub-agents),它报告回这个对话,请使用 `/subtask` |67| `/branch [name]` | 在此处创建当前对话的分支,以便您可以尝试不同的方向而不丢失当前的对话。会将您切换到该分支并保留原始对话,您可以使用 `/resume` 返回原始对话。要将副本作为单独的[后台会话](/docs/zh-CN/agent-view)运行而不切换进去,请使用 `/fork`;要将附带任务交给会向此对话汇报结果的[子代理](/docs/zh-CN/sub-agents),请使用 `/subtask` |

68| `/btw [question]` | 询问一个[侧面问题](/docs/zh-CN/interactive-mode#side-questions-with-%2Fbtw)关于当前会话而不添加到对话中。如果你运行 `/btw` 而没有问题,Claude Code 会显示你最近的侧面问题,以便你可以浏览早期的答案;如果你还没有问过,Claude Code 会打印一条使用行。在 v2.1.212 之前,`/btw` 需要一个问题 |68| `/btw [question]` | 询问有关当前会话的[附带问题](/docs/zh-CN/interactive-mode#side-questions-with-%2Fbtw),而不将其添加到对话中。如果不带问题运行 `/btw`,Claude Code 会显示您最近的附带问题,以便您浏览之前的回答;如果您还没有提问过,Claude Code 会输出一行用法说明。在 v2.1.212 之前,`/btw` 必须提供问题 |

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

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

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

72| `/claude-api [migrate\|upgrade\|managed-agents-onboard\|prompt-audit\|cost-optimize\|build-eval\|hillclimb\|preserved-thinking-migration]` | **[Skill](/docs/zh-CN/skills#bundled-skills)。** 为你的项目的语言加载 [Claude API](https://platform.claude.com/docs/en/api/overview) 和 [Managed Agents](https://platform.claude.com/docs/en/managed-agents/overview) 参考资料。当你的代码导入 `anthropic` 或 `@anthropic-ai/sdk` 时也会自动激活。有关每个子命令的作用和它需要的版本,请参阅[在 Claude API 项目上工作](/docs/zh-CN/skills#work-on-claude-api-projects) |72| `/claude-api [migrate\|upgrade\|managed-agents-onboard\|prompt-audit\|cost-optimize\|build-eval\|hillclimb\|preserved-thinking-migration]` | **[Skill](/docs/zh-CN/skills#bundled-skills)。** 加载适用于您项目语言的 [Claude API](https://platform.claude.com/docs/en/api/overview) 和 [Managed Agents](https://platform.claude.com/docs/en/managed-agents/overview) 参考资料。当您的代码导入 `anthropic` 或 `@anthropic-ai/sdk` 时也会自动激活。有关每个子命令的作用及其所需版本,请参阅[处理 Claude API 项目](/docs/zh-CN/skills#work-on-claude-api-projects) |

73| `/claude-in-chrome [task]` | **[Skill](/docs/zh-CN/skills#bundled-skills)。** 让 Claude 通过 [Claude in Chrome](/docs/zh-CN/chrome) 在你的浏览器中执行任务,例如测试页面、填充表单或读取控制台日志。当为会话启用 Chrome 集成时可用,例如使用 `claude --chrome`,或当 Claude Code 可以提供[安装扩展](/docs/zh-CN/chrome#install-the-extension-when-claude-asks)时 |73| `/claude-in-chrome [task]` | **[Skill](/docs/zh-CN/skills#bundled-skills)。** 让 Claude 通过 [Claude in Chrome](/docs/zh-CN/chrome) 在您的浏览器中执行任务,例如测试页面、填写表单或读取控制台日志。当会话启用了 Chrome 集成时可用(例如使用 `claude --chrome`),或者当 Claude Code 可以提议[安装扩展](/docs/zh-CN/chrome#install-the-extension-when-claude-asks)时可用 |

74| `/clear [name]` | 使用空上下文启动新对话。传递一个名称以在 `/resume` 选择器中标记上一个对话。要在继续同一对话的同时释放上下文,请改用 `/compact`。使用 `/resume` 恢复上一个对话,或在同一 Claude Code 进程中,从[倒带菜单的上一个会话条目](/docs/zh-CN/checkpointing#rewind-past-a-cleared-conversation)恢复它。别名:`/reset`、`/new` |74| `/clear [name]` | 使用空上下文开始新对话。传递名称可在 `/resume` 选择器中为之前的对话添加标签。要在继续同一对话的同时释放上下文,请改用 `/compact`。使用 `/resume` 恢复之前的对话,或者在同一 Claude Code 进程中,从[回退菜单的上一个会话条目](/docs/zh-CN/checkpointing#rewind-past-a-cleared-conversation)恢复。别名:`/reset`、`/new` |

75| `/code-review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [pr#\|branch\|path]` | **[Skill](/docs/zh-CN/skills#bundled-skills)。** 审查当前差异,或你传递的 PR 号、分支或路径,以查找正确性错误。根据你的模型和工作量级别,审查也涵盖清理机会。传递 `--fix` 以应用发现,`--comment` 以在 GitHub PR 或 GitLab 合并请求上发布它们,或 `ultra` 以运行深度[云审查](/docs/zh-CN/ultrareview)。发布到 GitLab 合并请求需要 Claude Code v2.1.257 或更高版本。在 `github.com` PR 目标上使用 `ultra` 时,传递 `--post` 以在启动对话框中预选[将完成的发现发布到 PR](/docs/zh-CN/ultrareview#post-findings-to-the-pull-request);`--post` 需要 Claude Code v2.1.227 或更高版本。有关工作量级别、目标和它与 `/simplify` 的关系,请参阅[本地审查差异](/docs/zh-CN/code-review#review-a-diff-locally)。别名:`/review` |75| `/code-review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [pr#\|branch\|path]` | **[Skill](/docs/zh-CN/skills#bundled-skills)。** 审查当前 diff,或您传递的 PR 编号、分支或路径,查找正确性 bug。根据您的模型和 effort 级别,审查还会涵盖清理机会。传递 `--fix` 可应用发现的问题,传递 `--comment` 可将其发布到 GitHub PR 或 GitLab Merge Request 上,传递 `ultra` 可运行深度[云端审查](/docs/zh-CN/ultrareview)。发布到 GitLab Merge Request 需要 Claude Code v2.1.257 或更高版本。在以 `github.com` PR 为目标使用 `ultra` 时,传递 `--post` 可在启动对话框中预先选择[将完成的发现发布到 PR](/docs/zh-CN/ultrareview#post-findings-to-the-pull-request);`--post` 需要 Claude Code v2.1.227 或更高版本。有关 effort 级别、目标指定方式以及它与 `/simplify` 的关系,请参阅[在本地审查 diff](/docs/zh-CN/code-review#review-a-diff-locally)。别名:`/review` |

76| `/color [color\|default]` | 为当前会话设置提示栏颜色。可用颜色:`red`、`blue`、`green`、`yellow`、`purple`、`orange`、`pink`、`cyan`。使用 `default` 重置,或运行不带参数以选择随机颜色。当 [Remote Control](/docs/zh-CN/remote-control) 连接时,颜色同步到 claude.ai/code。也可在非交互模式 (`-p`) 中使用;需要 Claude Code v2.1.205 或更高版本 |76| `/color [color\|default]` | 设置当前会话的提示栏颜色。可用颜色:`red`、`blue`、`green`、`yellow`、`purple`、`orange`、`pink`、`cyan`。使用 `default` 重置,或不带参数运行以随机选择一种颜色。连接 [Remote Control](/docs/zh-CN/remote-control) 时,颜色会同步到 claude.ai/code。也可在非交互模式(`-p`)中使用;需要 Claude Code v2.1.205 或更高版本 |

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

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

79| `/context [all]` | 将当前上下文使用情况可视化为彩色网格。显示上下文繁重工具、内存膨胀和容量警告的优化建议。当对话超过上下文窗口时,输出包括一个[警告](/docs/zh-CN/errors#context-exceeds-the-token-limit),显示你超过限制的距离以及哪个命令释放空间。在[全屏模式](/docs/zh-CN/fullscreen)中,`/context` 折叠每项细目以保持网格可见。传递 `all` 以展开它 |79| `/context [all]` | 以彩色网格形式可视化当前上下文使用情况。显示针对占用大量上下文的工具、记忆膨胀的优化建议以及容量警告。当对话超出上下文窗口时,输出会包含一条[警告](/docs/zh-CN/errors#context-exceeds-the-token-limit),显示超出限制多少以及哪个命令可以释放空间。在[全屏模式](/docs/zh-CN/fullscreen)下,`/context` 会折叠逐项明细以保持网格可见。传递 `all` 可将其展开 |

80| `/copy [N]` | 将最后的助手响应复制到剪贴板。传递一个数字 `N` 以复制第 N 个最新响应:`/copy 2` 复制倒数第二个。当存在代码块时,显示一个交互式选择器以选择单个块或完整响应。在选择器中按 `w` 以将选择写入文件而不是剪贴板,这在 SSH 上很有用 |80| `/copy [N]` | 将最后一条助手回复复制到剪贴板。传递数字 `N` 可复制倒数第 N 条回复:`/copy 2` 复制倒数第二条。当存在代码块时,会显示交互式选择器,以选择单个代码块或完整回复。在选择器中按 `w` 可将所选内容写入文件而不是剪贴板,这在通过 SSH 使用时很有用 |

81| `/cost` | `/usage` 的别名 |81| `/cost` | `/usage` 的别名 |

82| `/dataviz [request]` | **[Skill](/docs/zh-CN/skills#bundled-skills)。** 为图表、图形和仪表板提供设计指导。Claude 为数据选择图表形式,按角色分配颜色,使用捆绑脚本验证调色板的色盲安全性和对比度,并应用标记、交互和可访问性规则。使用一个品牌中立的占位符调色板,你用自己的替换。需要 Claude Code v2.1.198 或更高版本 |82| `/dataviz [request]` | **[Skill](/docs/zh-CN/skills#bundled-skills)。** 图表、图形和仪表板的设计指导。Claude 会为数据选择图表形式,按角色分配颜色,使用随附脚本验证调色板的色盲安全性和对比度,并应用标记、交互和无障碍规则。使用品牌中立的占位调色板,供您替换为自己的调色板。需要 Claude Code v2.1.198 或更高版本 |

83| `/debug [description]` | **[Skill](/docs/zh-CN/skills#bundled-skills)。** 为当前会话启用调试日志记录并通过读取会话调试日志来排查问题。调试日志记录默认关闭,除非你使用 `claude --debug` 启动,所以在会话中期运行 `/debug` 会从该点开始捕获日志。可选地描述问题以集中分析 |83| `/debug [description]` | **[Skill](/docs/zh-CN/skills#bundled-skills)。** 为当前会话启用调试日志记录,并通过读取会话调试日志来排除问题。除非您使用 `claude --debug` 启动,否则调试日志记录默认关闭,因此在会话中途运行 `/debug` 会从该时刻开始捕获日志。可选择描述问题以聚焦分析 |

84| `/deep-research <question>` | **[Workflow](/docs/zh-CN/workflows#bundled-workflows)。** 在问题上扇出网络搜索,获取和交叉检查来源,并综合一个引用的报告 |84| `/deep-research <question>` | **[工作流](/docs/zh-CN/workflows#bundled-workflows)。** 针对一个问题分散进行网络搜索,获取并交叉核对来源,并综合生成带引用的报告 |

85| `/design [brief]` | **[Skill](/docs/zh-CN/skills#bundled-skills)。** 在一个画布上起草 UI 模型、屏幕流、登陆页面或海报作为画板,发布为一个 Claude Design [工件](/docs/zh-CN/artifacts#draft-a-design-canvas),例如 `/design a settings screen for a mobile banking app`。你在桌面浏览器中编辑画板,你的编辑会自动保存。你可以将每个画板导出为 PNG 或 PDF。需要 Claude Code v2.1.265 或更高版本、一个[工件可用](/docs/zh-CN/artifacts#availability)的会话,以及一个[设计模板可用](/docs/zh-CN/artifacts#start-from-a-slides-design-or-docs-template)的账户;如果你的组织已关闭该模板,`/design` 不会起草设计。在 Anthropic API 上可用。在 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 和 Claude Platform on AWS 上,工件不可用,所以命令在那里不可用 |85| `/design [brief]` | **[Skill](/docs/zh-CN/skills#bundled-skills)。** 在一个画布上以画板形式起草 UI 模型、屏幕流程、着陆页或海报,并发布为 Claude Design [Artifact](/docs/zh-CN/artifacts#draft-a-design-canvas),例如 `/design a settings screen for a mobile banking app`。您可以在桌面浏览器中编辑画板,编辑内容会自动保存。您可以将每个画板导出为 PNG 或 PDF。需要 Claude Code v2.1.265 或更高版本、[Artifact 可用](/docs/zh-CN/artifacts#availability)的会话,以及 [Design 模板可用](/docs/zh-CN/artifacts#start-from-a-slides-design-or-docs-template)的账户;如果您的组织已关闭该模板,`/design` 不会起草设计。可在 Anthropic API 上使用。在 Amazon Bedrock、Google Cloud's Agent Platform、Microsoft Foundry 和 Claude Platform on AWS 上,Artifact 不可用,因此该命令在这些平台上不可用 |

86| `/design-login` | 使用你的 claude.ai 账户授权 `/design-sync` 的设计系统访问 |86| `/design-login` | 使用您的 claude.ai 账户为 `/design-sync` 授权设计系统访问 |

87| `/design-sync [hint]` | **[Skill](/docs/zh-CN/skills#bundled-skills)。** 转换你的 repo 的 React 设计系统并将其上传到 [Claude Design](https://claude.ai/design),以便它生成的设计使用你的真实组件。可选地命名设计系统,例如 `/design-sync Acme DS`。首次同步验证每个组件,在大型 repo 上可能需要几个小时。在 Anthropic API 上可用。它需要 claude.ai,CLI 在 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 或 Claude Platform on AWS 上不联系,或通过 [Claude apps gateway](/docs/zh-CN/claude-apps-gateway#availability-and-limitations),所以命令在那里不可用 |87| `/design-sync [hint]` | **[Skill](/docs/zh-CN/skills#bundled-skills)。** 转换您仓库中的 React 设计系统并将其上传到 [Claude Design](https://claude.ai/design),使其生成的设计使用您的真实组件。可选择为设计系统命名,例如 `/design-sync Acme DS`。首次同步会验证每个组件,在大型仓库上可能需要几个小时。可在 Anthropic API 上使用。它需要 claude.ai,而 CLI 在 Amazon Bedrock、Google Cloud's Agent Platform、Microsoft Foundry 或 Claude Platform on AWS 上,或通过 [Claude apps gateway](/docs/zh-CN/claude-apps-gateway#availability-and-limitations) 使用时不会连接 claude.ai,因此该命令在这些情况下不可用 |

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

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

90| `/doctor [prompt-audit [path]]` | **[Skill](/docs/zh-CN/skills#bundled-skills)。** 运行一个设置检查,诊断问题并可以修复它们。检查安装健康状况,包括重复或遗留安装、`PATH` 问题和无法解析的设置文件。查找未使用的 skill、MCP 服务器和插件与其上下文成本,标记缓慢的 [hooks](/docs/zh-CN/hooks),并检查你的[发布频道](/docs/zh-CN/setup#configure-release-channel)上是否有更新版本。根据检入的本地 `CLAUDE.md` 文件进行重复数据删除,通过削减 Claude 可以从代码库派生的内容来修剪检入的 [`CLAUDE.md`](/docs/zh-CN/memory#my-claude-md-is-too-large) 文件,并将保留的始终加载的指导迁移到[skill](/docs/zh-CN/skills) 和按需加载的嵌套 `CLAUDE.md` 文件中。还提供使[自动模式](/docs/zh-CN/permissions#permission-modes)成为你的默认值和[预先批准](/docs/zh-CN/permissions)经常被拒绝的只读命令。首先报告发现并在更改任何内容之前要求确认。从终端,`claude doctor` 打印只读安装诊断而不启动会话。别名:`/checkup`。运行 `/doctor prompt-audit` 以让 Claude [审计你的 `CLAUDE.md` 文件、skill 和其他配置](/docs/zh-CN/memory#audit-your-instruction-files)以查找过时或冲突的指令,而不是运行检查。`prompt-audit` 子命令需要 Claude Code v2.1.283 或更高版本。`CLAUDE.md` 修剪检查需要 Claude Code v2.1.206 或更高版本。在 v2.1.205 之前,`/doctor` 打开一个只读诊断屏幕,按 `f` 将报告发送给 Claude |90| `/doctor [prompt-audit [path]]` | **[Skill](/docs/zh-CN/skills#bundled-skills)。** 运行设置检查,诊断问题并可以修复它们。检查安装健康状况,包括重复或残留的安装、`PATH` 问题以及无法解析的设置文件。找出未使用的 skill、MCP 服务器和插件,并与其上下文开销进行对比,标记运行缓慢的 [hook](/docs/zh-CN/hooks),并检查您的[发布渠道](/docs/zh-CN/setup#configure-release-channel)上是否有较新版本。将本地 `CLAUDE.md` 文件与已签入的文件进行去重,通过删除 Claude 可以从代码库推导出的内容来精简已签入的 [`CLAUDE.md`](/docs/zh-CN/memory#my-claude-md-is-too-large) 文件,并将剩余的始终加载的指导迁移到按需加载的 [skill](/docs/zh-CN/skills) 和嵌套 `CLAUDE.md` 文件中。还会提议将[自动模式](/docs/zh-CN/permissions#permission-modes)设为默认模式,并[预先批准](/docs/zh-CN/permissions)经常被拒绝的只读命令。先报告发现的问题,并在更改任何内容之前请求确认。在终端中,`claude doctor` 会输出只读的安装诊断信息而不启动会话。别名:`/checkup`。运行 `/doctor prompt-audit` 可让 Claude [审计您的 `CLAUDE.md` 文件、skill 和其他配置](/docs/zh-CN/memory#audit-your-instruction-files),查找过时或相互冲突的指令,而不是运行设置检查。`prompt-audit` 子命令需要 Claude Code v2.1.283 或更高版本。`CLAUDE.md` 精简检查需要 Claude Code v2.1.206 或更高版本。在 v2.1.205 之前,`/doctor` 会打开只读诊断屏幕,按 `f` 会将报告发送给 Claude |

91| `/effort [level\|auto\|status\|ultracode [on\|off]]` | 设置[工作量级别](/docs/zh-CN/model-config#adjust-effort-level):`low` 到 `xhigh`、`max` 或 `auto`;`status` 打印它。`ultracode` 或 `ultracode on` 在当前级别为会话打开 [ultracode](/docs/zh-CN/workflows#let-claude-decide-with-ultracode),`ultracode off` 关闭它;[`ultracode`](/docs/zh-CN/settings-reference#ultracode) 键持久化。`max` 仅限会话。使用 `on` 和 `off` 参数以及保持当前级别需要 Claude Code v2.1.284 或更高版本。在 v2.1.284 之前,`/effort ultracode` 将会话设置为 `xhigh`,`/effort ultracode off` 失败并显示 `Invalid argument`。在 Claude 响应时运行它,一旦你确认[缓存警告](/docs/zh-CN/prompt-caching#changing-effort-level)(如果 Claude Code 显示一个),Claude Code 会将新级别应用于该轮中的下一个请求。在 v2.1.242 之前,Claude Code 从它从 Anthropic 获取的功能标志决定是在轮中期运行命令还是将其排队直到轮次完成,并始终在不[获取功能标志](/docs/zh-CN/env-vars#features-that-need-feature-flag-fetching)的会话中排队它,例如在[第三方提供商](/docs/zh-CN/third-party-integrations)上。在 `-p` 中工作 |91| `/effort [level\|auto\|status\|ultracode [on\|off]]` | 设置 [effort 级别](/docs/zh-CN/model-config#adjust-effort-level):`low` 到 `xhigh`、`max` 或 `auto`;`status` 会输出当前级别。`ultracode` 或 `ultracode on` 会以当前级别为会话开启 [ultracode](/docs/zh-CN/workflows#let-claude-decide-with-ultracode),`ultracode off` 会将其关闭;[`ultracode`](/docs/zh-CN/settings-reference#ultracode) 键会持久保存。`max` 仅对当前会话有效。`on` 和 `off` 参数以及保持当前级别需要 Claude Code v2.1.284 或更高版本。在 v2.1.284 之前,`/effort ultracode` 会将会话设置为 `xhigh`,而 `/effort ultracode off` 会失败并报告 `Invalid argument`。在 Claude 回复时运行此命令,一旦您确认[缓存警告](/docs/zh-CN/prompt-caching#changing-effort-level)(如果 Claude Code 显示了该警告),Claude Code 就会将新级别应用于该轮次中的下一个请求。在 v2.1.242 之前,Claude Code 会根据从 Anthropic 获取的功能标志来决定是在轮次中途运行该命令,还是将其排队直到轮次结束,并且在不[获取功能标志](/docs/zh-CN/env-vars#features-that-need-feature-flag-fetching)的会话中(例如在[第三方提供商](/docs/zh-CN/third-party-integrations)上)始终将其排队。可在 `-p` 中使用 |

92| `/exit` | 退出 CLI。在附加的[后台会话](/docs/zh-CN/agent-view#attach-to-a-session)中,这会分离,会话继续运行。别名:`/quit` |92| `/exit` | 退出 CLI。在已附加的[后台会话](/docs/zh-CN/agent-view#attach-to-a-session)中,此操作会分离,会话继续运行。别名:`/quit` |

93| `/export [filename]` | 将当前对话导出为纯文本。使用文件名,直接写入该文件。没有,打开一个对话框以复制到剪贴板或保存到文件 |93| `/export [filename]` | 将当前对话导出为纯文本。提供文件名时,直接写入该文件。不提供时,打开对话框以复制到剪贴板或保存到文件 |

94| `/fast [on\|off]` | 切换[快速模式](/docs/zh-CN/fast-mode)打开或关闭。在 Claude 响应时运行它,Claude Code 切换快速模式而不等待轮次结束,尽管运行的轮次以其原始速度完成。在 v2.1.242 之前,Claude Code 从它从 Anthropic 获取的功能标志决定是在轮中期运行命令还是将其排队直到轮次完成,并始终在不[获取功能标志](/docs/zh-CN/env-vars#features-that-need-feature-flag-fetching)的会话中排队它。非交互模式中的可用性受限于 `-p`;请参阅[切换快速模式](/docs/zh-CN/fast-mode#toggle-fast-mode)。需要 Claude Code v2.1.205 或更高版本 |94| `/fast [on\|off]` | 开启或关闭[快速模式](/docs/zh-CN/fast-mode)。在 Claude 回复时运行此命令,Claude Code 会切换快速模式而无需等待轮次结束,但正在运行的轮次仍会以其原始速度完成。在 v2.1.242 之前,Claude Code 会根据从 Anthropic 获取的功能标志来决定是在轮次中途运行该命令,还是将其排队直到轮次结束,并且在不[获取功能标志](/docs/zh-CN/env-vars#features-that-need-feature-flag-fetching)的会话中始终将其排队。在使用 `-p` 的非交互模式中可用性有限;请参阅[切换快速模式](/docs/zh-CN/fast-mode#toggle-fast-mode)。需要 Claude Code v2.1.205 或更高版本 |

95| `/feedback [report]` | 发送关于 Claude Code 的产品反馈。打开与 [`/bug`](#all-commands) 相同的对话框,具有相同的同意步骤、发送规则和轮中期行为。在具有 [Claude 起草的反馈](/docs/zh-CN/tools-reference#sendfeedback-tool-behavior)的会话中,不带参数的 `/feedback` 打开草稿队列,你可以在其中审查、编辑、发送或丢弃 Claude 排队的草稿;队列包括一个选项来在对话框中写入新报告。使用参数,对于 `/bug` 总是,对话框直接打开 |95| `/feedback [report]` | 发送有关 Claude Code 的产品反馈。打开与 [`/bug`](#all-commands) 相同的对话框,具有相同的同意步骤、发送规则和轮次中途行为。在具有 [Claude 起草的反馈](/docs/zh-CN/tools-reference#sendfeedback-tool-behavior)的会话中,不带参数的 `/feedback` 会改为打开草稿队列,您可以在其中审阅、编辑、发送或丢弃 Claude 排入队列的草稿;该队列包含一个在对话框中撰写新报告的选项。带参数时,以及对于 `/bug` 始终如此,对话框会直接打开 |

96| `/fewer-permission-prompts` | **[Skill](/docs/zh-CN/skills#bundled-skills)。** 扫描你的记录以查找常见的只读 Bash 和 MCP 工具调用,然后将优先级允许列表添加到项目 `.claude/settings.json` 以减少权限提示 |96| `/fewer-permission-prompts` | **[Skill](/docs/zh-CN/skills#bundled-skills)。** 扫描您的会话记录,查找常见的只读 Bash 和 MCP 工具调用,然后将按优先级排序的允许列表添加到项目的 `.claude/settings.json` 中,以减少权限提示 |

97| `/focus` | 切换焦点视图,仅显示你的最后一个提示、一行工具调用摘要和最终响应。工具调用摘要也计算在轮中启动的子代理数量,并将完成的后台任务通知折叠为单个计数。选择在会话中持久化;在设置中设置 [`viewMode`](/docs/zh-CN/settings-reference#viewmode) 以覆盖它。仅在[全屏渲染](/docs/zh-CN/fullscreen)中可用。从 [Remote Control](/docs/zh-CN/remote-control) 客户端,运行 `/focus [on\|off]` 以仅为当前会话打开或关闭焦点视图,而不更改你的保存选择;这需要 Claude Code v2.1.281 或更高版本。[VS Code 扩展](/docs/zh-CN/vs-code#use-the-prompt-box)提供其自己的焦点视图作为命令菜单切换,存储为扩展设置,独立于 `viewMode` |97| `/focus` | 切换专注视图,该视图仅显示您的最后一条提示词、带有编辑 diffstat 的单行工具调用摘要以及最终回复。工具调用摘要还会统计该轮次中启动的子代理数量,并将已完成的后台任务通知合并为单个计数。该选择会跨会话保持;在设置中设置 [`viewMode`](/docs/zh-CN/settings-reference#viewmode) 可覆盖它。仅在[全屏渲染](/docs/zh-CN/fullscreen)中可用。在 [Remote Control](/docs/zh-CN/remote-control) 客户端中,运行 `/focus [on\|off]` 可仅为当前会话开启或关闭专注视图,而不更改您保存的选择;这需要 Claude Code v2.1.281 或更高版本。[VS Code 扩展](/docs/zh-CN/vs-code#use-the-prompt-box)提供其自己的 Focus 视图,作为命令菜单中的开关,存储为扩展设置,独立于 `viewMode` |

98| `/fork [prompt]` | [将当前对话复制](/docs/zh-CN/agent-view#copy-the-session-with-%2Ffork)到新的后台会话并继续在这里工作。传递一个提示词,副本立即开始处理它;没有它,它在代理视图中等待其第一个提示词。除非副本[就地编辑](/docs/zh-CN/agent-view#how-file-edits-are-isolated),Claude Code 指示它在进行代码更改之前创建自己的 worktree;隔离指令需要 Claude Code v2.1.221 或更高版本。要将侧面任务交给一个子代理,其结果返回到这个对话,请使用 `/subtask`;要自己切换到副本,请使用 `/branch`。需要 Claude Code v2.1.212 或更高版本;在 v2.1.161 到 v2.1.211,以及每当[代理视图关闭](/docs/zh-CN/agent-view#turn-off-agent-view)时,`/fork` 启动一个[分叉子代理](/docs/zh-CN/sub-agents#fork-the-current-conversation) |98| `/fork [prompt]` | [将当前对话复制](/docs/zh-CN/agent-view#copy-the-session-with-%2Ffork)到新的后台会话中,并在此处继续工作。传递提示词后,副本会立即开始处理;不传递时,副本会在 Agent 视图中等待其第一条提示词。除非副本[就地编辑](/docs/zh-CN/agent-view#how-file-edits-are-isolated),否则 Claude Code 会指示它在进行代码更改之前创建自己的 worktree;该隔离指令需要 Claude Code v2.1.221 或更高版本。要将附带任务交给结果会返回到此对话的子代理,请使用 `/subtask`;要自己切换到副本中,请使用 `/branch`。需要 Claude Code v2.1.212 或更高版本;在 v2.1.161 至 v2.1.211 上,以及每当[关闭 Agent 视图](/docs/zh-CN/agent-view#turn-off-agent-view)时,`/fork` 会改为启动[分叉子代理](/docs/zh-CN/sub-agents#fork-the-current-conversation) |

99| `/goal [condition\|clear]` | 设置一个[目标](/docs/zh-CN/goal):Claude 跨轮继续工作直到条件满足或目标[因另一个原因清除](/docs/zh-CN/goal#how-evaluation-works)。没有参数时,显示当前或最近实现的目标。`clear`、`stop`、`off`、`reset`、`none` 或 `cancel` 提前移除活跃目标 |99| `/goal [condition\|clear]` | 设置[目标](/docs/zh-CN/goal):Claude 会跨轮次持续工作,直到满足条件或目标[因其他原因被清除](/docs/zh-CN/goal#how-evaluation-works)。不带参数时,显示当前目标或最近达成的目标。`clear`、`stop`、`off`、`reset`、`none` 或 `cancel` 可提前移除活动目标 |

100| `/heapdump` | 写入 JavaScript 堆快照和内存细目到 `~/Desktop`,或 Linux 上没有 Desktop 文件夹的主目录,用于诊断高内存使用。报告内存问题时仅附加 `-diagnostics.json` 文件;`.heapsnapshot` 包含你的完整对话和凭证,所以不要共享它。[从命令菜单隐藏](#how-the-command-menu-matches-what-you-type);完整输入它。请参阅[如何处理输出](/docs/zh-CN/troubleshooting#high-cpu-or-memory-usage) |100| `/heapdump` | 将 JavaScript 堆快照和内存明细写入 `~/Desktop`(在没有 Desktop 文件夹的 Linux 上则写入主目录),用于诊断高内存使用率。报告内存问题时只附加 `-diagnostics.json` 文件;`.heapsnapshot` 包含您的完整对话和凭据,因此请勿分享它。[在命令菜单中隐藏](#how-the-command-menu-matches-what-you-type);需要完整输入。请参阅[如何处理输出](/docs/zh-CN/troubleshooting#high-cpu-or-memory-usage) |

101| `/help` | 显示帮助和可用命令 |101| `/help` | 显示帮助和可用命令 |

102| `/hooks` | 查看工具事件的 [hook](/docs/zh-CN/hooks) 配置 |102| `/hooks` | 查看 [hook](/docs/zh-CN/hooks#the-%2Fhooks-menu) 配置 |

103| `/ide` | 管理 IDE 集成并显示状态 |103| `/ide` | 管理 IDE 集成并显示状态 |

104| `/import [codex\|gemini\|cursor] [--dry-run] [--yes]` | 将配置从你的机器上的 OpenAI Codex、Google Gemini CLI 或 Cursor 引入 Claude Code,包括指令文件、MCP 服务器、命令、子代理和 skill。在[非交互模式](/docs/zh-CN/headless)中使用 `-p`,`/import` 列出它找到的内容并给你确认导入的命令。添加 `--dry-run` 以预览而不写入任何内容,或 `--yes` 以跳过交互式选择器。在 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 或 Claude Platform on AWS 上不可用,或通过 [Claude apps gateway](/docs/zh-CN/claude-apps-gateway#availability-and-limitations)。当你关闭[功能标志获取](/docs/zh-CN/env-vars#features-that-need-feature-flag-fetching)时也不可用。需要 Claude Code v2.1.213 或更高版本。从 Cursor 导入需要 v2.1.265 或更高版本 |104| `/import [codex\|gemini\|cursor] [--dry-run] [--yes]` | 将您计算机上 OpenAI Codex、Google Gemini CLI 或 Cursor 中的配置导入 Claude Code,包括指令文件、MCP 服务器、命令、子代理和 skill。在使用 `-p` 的[非交互模式](/docs/zh-CN/headless)中,`/import` 会列出它找到的内容,并给出用于确认导入的命令。添加 `--dry-run` 可预览而不写入任何内容,或添加 `--yes` 以跳过交互式选择器。在 Amazon Bedrock、Google Cloud's Agent Platform、Microsoft Foundry 或 Claude Platform on AWS 上,或通过 [Claude apps gateway](/docs/zh-CN/claude-apps-gateway#availability-and-limitations) 使用时不可用。当您关闭[功能标志获取](/docs/zh-CN/env-vars#features-that-need-feature-flag-fetching)时也不可用。需要 Claude Code v2.1.213 或更高版本。从 Cursor 导入需要 v2.1.265 或更高版本 |

105| `/init` | 使用 `CLAUDE.md` 指南初始化项目。设置 `CLAUDE_CODE_NEW_INIT=1` 以获得交互式流程,也会引导你完成 skill、hook 和个人内存文件。如果 `/init` 找到 OpenAI Codex 或 Google Gemini CLI 配置,它提供使用 `/import` 进行转移 |105| `/init` | 使用 `CLAUDE.md` 指南初始化项目。设置 `CLAUDE_CODE_NEW_INIT=1` 可使用交互式流程,该流程还会引导您完成 skill、hook 和个人记忆文件的设置。如果 `/init` 发现 OpenAI Codex 或 Google Gemini CLI 配置,它会提议使用 `/import` 将其迁移过来 |

106| `/insights` | 生成一个 HTML 报告,分析你在这台机器上的最近会话:你在哪些项目中工作、你如何使用 Claude Code、事情出错的地方以及要尝试的功能。在[cloud sessions](/docs/zh-CN/claude-code-on-the-web)中不可用。有关报告位置、保留和成本,请参阅[分析你的使用模式](/docs/zh-CN/costs#analyze-your-usage-patterns) |106| `/insights` | 生成 HTML 报告,分析您在此计算机上的最近会话:您在哪些项目中工作、如何使用 Claude Code、哪里出现问题,以及值得尝试的功能。在[云端会话](/docs/zh-CN/claude-code-on-the-web)中不可用。有关报告位置、保留期限和开销,请参阅[分析您的使用模式](/docs/zh-CN/costs#analyze-your-usage-patterns) |

107| `/install-github-app` | 为存储库安装 Claude GitHub App,可选步骤设置 [GitHub Actions](/docs/zh-CN/github-actions) 工作流和秘密。引导你完成选择 repo 和配置集成。仅适用于 github.com 存储库。当你的存储库的 git 远程在 gitlab.com 或 bitbucket.org 上时,命令打印通知并退出而不是启动设置。要从 GitLab 管道运行 Claude Code,请参阅 [GitLab CI/CD](/docs/zh-CN/gitlab-ci-cd) |107| `/install-github-app` | 为仓库安装 Claude GitHub App,并可选择设置 [GitHub Actions](/docs/zh-CN/github-actions) 工作流和密钥。引导您选择仓库并配置集成。仅适用于 github.com 仓库。当您仓库的 git 远程位于 gitlab.com 或 bitbucket.org 上时,该命令会输出一条通知并退出,而不是开始设置。要从 GitLab 流水线运行 Claude Code,请参阅 [GitLab CI/CD](/docs/zh-CN/gitlab-ci-cd) |

108| `/install-slack-app` | 安装 Claude Slack 应用。打开浏览器以完成 OAuth 流程 |108| `/install-slack-app` | 安装 Claude Slack 应用。打开浏览器以完成 OAuth 流程 |

109| `/keybindings` | 打开你的[快捷键](/docs/zh-CN/keybindings)文件 |109| `/keybindings` | 打开您的[快捷键](/docs/zh-CN/keybindings)文件 |

110| `/list-agents` | 列出子代理、[代理团队](/docs/zh-CN/agent-teams)队友和其他 Claude Code 会话 Claude 可以消息,以及每个要使用的名称。请参阅[跨会话消息](/docs/zh-CN/cross-session-messaging)。也可用作 `/peers`。需要 Claude Code v2.1.224 或更高版本;早期版本报告 `Unknown command: /list-agents`。队友行和显示此会话自己名称的第一行需要 v2.1.239 或更高版本。仅在[启用跨会话消息](/docs/zh-CN/cross-session-messaging#availability)的会话中可用 |110| `/list-agents` | 列出 Claude 可以向其发送消息的子代理、[agent team](/docs/zh-CN/agent-teams) 队友以及其他 Claude Code 会话,并显示每一项应使用的名称。请参阅[跨会话消息传递](/docs/zh-CN/cross-session-messaging)。也可作为 `/peers` 使用。需要 Claude Code v2.1.224 或更高版本;更早版本会报告 `Unknown command: /list-agents`。队友行以及显示此会话自身名称的第一行需要 v2.1.239 或更高版本。仅在[已启用跨会话消息传递](/docs/zh-CN/cross-session-messaging#availability)的会话中可用 |

111| `/login` | 登录到你的 Anthropic 账户 |111| `/login` | 登录您的 Anthropic 账户 |

112| `/logout` | 从你的 Anthropic 账户登出 |112| `/logout` | 从您的 Anthropic 账户注销 |

113| `/loop [interval] [prompt]` | **[Skill](/docs/zh-CN/skills#bundled-skills)。** 在会话保持打开时重复运行提示词。省略间隔,Claude [自我调整迭代之间的步伐](/docs/zh-CN/scheduled-tasks#let-claude-choose-the-interval)。省略提示词,Claude 运行[内置维护提示词](/docs/zh-CN/scheduled-tasks#run-the-built-in-maintenance-prompt)或你的 [`loop.md`](/docs/zh-CN/scheduled-tasks#customize-the-default-prompt-with-loop-md)。示例:`/loop 5m check if the deploy finished`。请参阅[按计划运行提示词](/docs/zh-CN/scheduled-tasks)。别名:`/proactive` |113| `/loop [interval] [prompt]` | **[Skill](/docs/zh-CN/skills#bundled-skills)。** 在会话保持打开期间重复运行提示词。省略间隔时,Claude 会[自行决定迭代之间的节奏](/docs/zh-CN/scheduled-tasks#let-claude-choose-the-interval)。省略提示词时,Claude 会运行[内置维护提示词](/docs/zh-CN/scheduled-tasks#run-the-built-in-maintenance-prompt)或您的 [`loop.md`](/docs/zh-CN/scheduled-tasks#customize-the-default-prompt-with-loop-md)。示例:`/loop 5m check if the deploy finished`。请参阅[按计划运行提示词](/docs/zh-CN/scheduled-tasks)。别名:`/proactive` |

114| `/mcp [reconnect <server>\|enable\|disable [<server>\|all]]` | 管理 MCP 服务器连接和 OAuth 身份验证。运行不带参数以打开交互式列表,传递 `reconnect <server>` 以重新连接一个断开连接的服务器,或传递 `enable`/`disable` 带有服务器名称或 `all` 以更改连接状态而不打开对话框。也可在非交互模式 (`-p`) 中使用,其中运行不带参数会打印服务器状态的文本摘要而不是打开列表;需要 Claude Code v2.1.205 或更高版本 |114| `/mcp [reconnect <server>\|enable\|disable [<server>\|all]]` | 管理 MCP 服务器连接和 OAuth 身份验证。不带参数运行可打开交互式列表,传递 `reconnect <server>` 可重新连接一个已断开的服务器,或传递 `enable`/`disable` 以及服务器名称或 `all`,可在不打开对话框的情况下更改连接状态。也可在非交互模式(`-p`)中使用,在该模式下不带参数运行会输出服务器状态的文本摘要,而不是打开列表;需要 Claude Code v2.1.205 或更高版本 |

115| `/memory` | 编辑 `CLAUDE.md` 文件,启用或禁用[自动内存](/docs/zh-CN/memory#auto-memory),并查看自动内存条目 |115| `/memory` | 编辑 `CLAUDE.md` 文件,启用或禁用[自动记忆](/docs/zh-CN/memory#auto-memory),并查看自动记忆条目 |

116| `/mobile` | 显示 QR 代码以下载 Claude 移动应用。别名:`/ios`、`/android` |116| `/mobile` | 显示用于下载 Claude 移动应用的二维码。别名:`/ios`、`/android` |

117| `/model [model]` | 切换 AI 模型并将其保存为新会话的默认值。对于支持它的模型,使用左/右箭头来[调整工作量级别](/docs/zh-CN/model-config#adjust-effort-level)。没有参数时,打开选择器;在行上按 `s` 仅为当前会话切换。请参阅[当 Claude Code 要求你确认切换时](/docs/zh-CN/prompt-caching#switching-models)。一旦你确认切换,如果 Claude Code 要求,Claude Code 会应用更改而不等待当前响应完成。在 v2.1.242 之前,Claude Code 从它从 Anthropic 获取的功能标志决定是在轮中期运行命令还是将其排队直到轮次完成,并始终在不[获取功能标志](/docs/zh-CN/env-vars#features-that-need-feature-flag-fetching)的会话中排队它,例如在[第三方提供商](/docs/zh-CN/third-party-integrations)上。也可在非交互模式 (`-p`) 中使用模型参数而不是选择器,其中它仅应用于当前会话并不保存为你的默认值;需要 Claude Code v2.1.205 或更高版本 |117| `/model [model]` | 切换 AI 模型并将其保存为新会话的默认模型。对于支持的模型,使用左/右箭头[调整 effort 级别](/docs/zh-CN/model-config#adjust-effort-level)。不带参数时,打开选择器;在某一行上按 `s` 可仅为当前会话切换。请参阅 [Claude Code 何时会要求您确认切换](/docs/zh-CN/prompt-caching#switching-models)。一旦您确认切换(如果 Claude Code 询问),Claude Code 会应用更改,而无需等待当前回复完成。在 v2.1.242 之前,Claude Code 会根据从 Anthropic 获取的功能标志来决定是在轮次中途运行该命令,还是将其排队直到轮次结束,并且在不[获取功能标志](/docs/zh-CN/env-vars#features-that-need-feature-flag-fetching)的会话中(例如在[第三方提供商](/docs/zh-CN/third-party-integrations)上)始终将其排队。也可在非交互模式(`-p`)中通过模型参数(而非选择器)使用,此时仅应用于当前会话,不会保存为默认模型;需要 Claude Code v2.1.205 或更高版本 |

118| `/output-style [style]` | 列出[输出样式](/docs/zh-CN/output-styles)或切换到一个,例如 `/output-style concise`。请参阅[更改你的输出样式](/docs/zh-CN/output-styles#change-your-output-style)。需要 Claude Code v2.1.269 或更高版本 |118| `/output-style [style]` | 列出[输出样式](/docs/zh-CN/output-styles)或切换到其中一种,例如 `/output-style concise`。请参阅[更改输出样式](/docs/zh-CN/output-styles#change-your-output-style)。需要 Claude Code v2.1.269 或更高版本 |

119| `/passes` | 与朋友分享 Claude Code 的免费一周。仅在你的账户符合条件时可见 |119| `/passes` | 与朋友分享一周免费的 Claude Code。仅在您的账户符合条件时可见 |

120| `/permissions` | 管理工具权限的允许、询问和拒绝规则。打开一个交互式对话框,你可以按范围查看规则、添加或移除规则、管理工作目录,以及审查[最近的自动模式拒绝](/docs/zh-CN/auto-mode-config#review-denials)。你也可以从对话框的**自动模式**选项卡查看和编辑[自动模式分类器规则](/docs/zh-CN/auto-mode-config#edit-rules-from-permissions)。当你在 Claude 响应时运行它时,Claude Code 立即打开对话框并从 Claude 在同一轮中的下一个工具调用开始应用你的更改。在 v2.1.234 之前,Claude Code 会将命令排队直到轮次完成。别名:`/allowed-tools` |120| `/permissions` | 管理工具权限的允许、询问和拒绝规则。打开交互式对话框,您可以在其中按作用域查看规则、添加或删除规则、管理工作目录,以及查看[最近的自动模式拒绝记录](/docs/zh-CN/auto-mode-config#review-denials)。您还可以从对话框的 **Auto mode** 选项卡查看和编辑[自动模式分类器规则](/docs/zh-CN/auto-mode-config#edit-rules-from-permissions)。如果在 Claude 回复时运行此命令,Claude Code 会立即打开对话框,并从 Claude 在同一轮次中的下一次工具调用开始应用您的更改。在 v2.1.234 之前,Claude Code 会将该命令排队,直到该轮次结束。别名:`/allowed-tools` |

121| `/plan [description]` | 直接从提示词进入计划模式。传递可选描述以进入计划模式并立即开始该任务,例如 `/plan fix the auth bug` |121| `/plan [description]` | 直接从输入框进入计划模式。传递可选描述可进入计划模式并立即开始处理该任务,例如 `/plan fix the auth bug` |

122| `/plugin [subcommand]` | 管理 Claude Code [plugins](/docs/zh-CN/plugins/overview)。运行不带参数以打开插件菜单,或传递子命令如 `list`、`install`、`enable` 或 `disable` 以直接操作。Claude Code 可以在安装期间激活插件;[安装摘要](/docs/zh-CN/plugins/install#install-a-plugin)告诉你它是否做了或是否运行 `/reload-plugins` |122| `/plugin [subcommand]` | 管理 Claude Code [插件](/docs/zh-CN/plugins/overview)。不带参数运行可打开插件菜单,或传递 `list`、`install`、`enable` 或 `disable` 等子命令以直接执行操作。Claude Code 可以在安装期间激活插件;[安装摘要](/docs/zh-CN/plugins/install#install-a-plugin)会告诉您插件是否已激活,或是否需要运行 `/reload-plugins` |

123| `/powerup` | 通过带有动画演示的快速交互式课程发现 Claude Code 功能 |123| `/powerup` | 通过带有动画演示的快速交互式课程了解 Claude Code 功能 |

124| `/pr-comments [PR]` | 在 v2.1.91 中移除。直接要求 Claude 查看拉取请求评论。在早期版本上,从 GitHub 拉取请求获取和显示评论;自动检测当前分支的 PR,或传递 PR URL 或号码。需要 `gh` CLI |124| `/pr-comments [PR]` | 已在 v2.1.91 中移除。请改为直接让 Claude 查看 Pull Request 评论。在更早版本中,获取并显示 GitHub Pull Request 中的评论;自动检测当前分支的 PR,或传递 PR URL 或编号。需要 `gh` CLI |

125| `/privacy-settings` | 查看和更新你的隐私设置。仅对 Pro 和 Max 计划订阅者可用 |125| `/privacy-settings` | 查看和更新您的隐私设置。仅适用于 Pro 和 Max 套餐订阅者 |

126| `/radio` | 在浏览器中打开 Claude FM lo-fi 电台。当没有浏览器可用时打印流 URL |126| `/radio` | 在浏览器中打开 Claude FM lo-fi 电台。没有可用浏览器时输出流 URL |

127| `/rate-limit-options` | 显示在 claude.ai 使用限制阻止请求时继续工作的方法:等待并[在限制重置时自动继续](/docs/zh-CN/interactive-mode#wait-for-a-usage-limit-to-reset)、添加[使用额度](/docs/zh-CN/costs#add-usage-credits-to-your-subscription)或升级你的计划。Claude Code 也可以在你在自己的终端上达到限制时自己打开此菜单。请参阅[关闭自动继续](/docs/zh-CN/interactive-mode#turn-automatic-continue-off)。需要 claude.ai 订阅。等待和继续行需要 Claude Code v2.1.234 或更高版本 |127| `/rate-limit-options` | 显示当 claude.ai 用量限制阻止请求时继续工作的方法:等待并[在限制重置时自动继续](/docs/zh-CN/interactive-mode#wait-for-a-usage-limit-to-reset)、添加[使用额度](/docs/zh-CN/costs#add-usage-credits-to-your-subscription),或升级您的套餐。当您在自己的终端中遇到限制时,Claude Code 也可能会自行打开此菜单。请参阅[关闭自动继续](/docs/zh-CN/interactive-mode#turn-automatic-continue-off)。需要 claude.ai 订阅。等待并继续的选项行需要 Claude Code v2.1.234 或更高版本 |

128| `/recap` | 按需生成当前会话的一行摘要。请参阅[会话摘要](/docs/zh-CN/interactive-mode#session-recap)以获得你离开后出现的自动摘要 |128| `/recap` | 按需生成当前会话的单行摘要。有关您离开一段时间后出现的自动回顾,请参阅[会话回顾](/docs/zh-CN/interactive-mode#session-recap) |

129| `/release-notes` | 在交互式版本选择器中查看更改日志。选择特定版本以查看其发布说明,或选择显示所有版本。说明出现在你的记录中而不进入 Claude 看到的对话 |129| `/release-notes` | 在交互式版本选择器中查看更新日志。选择特定版本以查看其发布说明,或选择显示所有版本。这些说明会出现在您的会话记录中,但不会进入 Claude 看到的对话 |

130| `/reload-plugins [--force]` | 重新加载所有活跃[插件](/docs/zh-CN/plugins/overview)以应用待处理更改而不重新启动。报告每个重新加载组件的计数并标记任何加载错误。当重新加载会改变加载哪些 MCP 工具并使提示词缓存失效时,命令警告并跳过,除非你传递 `--force`。也可在非交互模式 (`-p`)、Agent SDK 和桌面应用中使用,其中它仅在直接输入到会话的输入上运行,不应用插件 MCP 服务器更改;需要 Claude Code v2.1.260 或更高版本。请参阅[应用插件更改而不重新启动](/docs/zh-CN/plugins/cli-reference#reload-plugins) |130| `/reload-plugins [--force]` | 重新加载所有活动[插件](/docs/zh-CN/plugins/overview)以应用待处理的更改,无需重启。报告每个重新加载组件的数量,并标记任何加载错误。当重新加载会改变已加载的 MCP 工具并使提示缓存失效时,该命令会发出警告并跳过,除非您传递 `--force`。也可在非交互模式(`-p`)、Agent SDK 和桌面应用中使用,在这些环境中它仅对直接输入到会话中的内容运行,并且不会应用插件 MCP 服务器的更改;需要 Claude Code v2.1.260 或更高版本。请参阅[无需重启即可应用插件更改](/docs/zh-CN/plugins/cli-reference#reload-plugins) |

131| `/reload-skills` | 重新扫描 [skill](/docs/zh-CN/skills) 和命令目录,以便在会话期间添加或更改的 skill 在磁盘上变得可用而不重新启动。报告有多少 skill 可用以及添加或移除了多少 |131| `/reload-skills` | 重新扫描 [skill](/docs/zh-CN/skills) 和命令目录,使会话期间在磁盘上添加或更改的 skill 无需重启即可使用。报告可用的 skill 数量以及添加或移除的数量 |

132| `/remote-control` | 使此会话可从 claude.ai 进行 [Remote Control](/docs/zh-CN/remote-control)。在未登录时运行它会打印 Remote Control 需要 claude.ai 订阅并告诉你如何登录;在 v2.1.206 之前它报告 `Unknown command: /remote-control`。别名:`/rc` |132| `/remote-control` | 使此会话可通过 claude.ai 进行 [Remote Control](/docs/zh-CN/remote-control)。在未登录时运行,会输出 Remote Control 需要 claude.ai 订阅的提示,并告诉您如何登录;在 v2.1.206 之前,它会报告 `Unknown command: /remote-control`。别名:`/rc` |

133| `/remote-env` | 为你从 CLI 启动的 cloud sessions 选择默认[云环境](/docs/zh-CN/cloud-environments#select-an-environment-from-the-cli) |133| `/remote-env` | 为您从 CLI 启动的云端会话选择默认[云环境](/docs/zh-CN/cloud-environments#select-an-environment-from-the-cli) |

134| `/rename [name]` | 重命名当前会话并在提示栏上显示名称。没有名称,从对话历史自动生成一个。也可在非交互模式 (`-p`) 中使用;需要 Claude Code v2.1.205 或更高版本。从每个重命名表面,包括 claude.ai 和桌面应用,Claude Code 用空格替换新名称中的控制和不可见字符,并将名称限制在 200 个字符。如果名称在移除不可见字符后为空,Claude Code 拒绝它并显示 `That name is empty once invisible characters are removed. Usage: /rename <name>`。字符替换和长度限制需要 Claude Code v2.1.221 或更高版本。如果这台机器上的另一个活跃会话已经使用你传递的名称,Claude Code 应用[它的变体](/docs/zh-CN/sessions#name-your-sessions) |134| `/rename [name]` | 重命名当前会话并在提示栏上显示名称。不提供名称时,根据对话历史自动生成一个名称。也可在非交互模式(`-p`)中使用;需要 Claude Code v2.1.205 或更高版本。在所有重命名入口(包括 claude.ai 和桌面应用)中,Claude Code 都会将新名称中的控制字符和不可见字符替换为空格,并将名称长度上限设为 200 个字符。如果移除不可见字符后名称为空,Claude Code 会拒绝该名称并显示 `That name is empty once invisible characters are removed. Usage: /rename <name>`。字符替换和长度上限需要 Claude Code v2.1.221 或更高版本。如果此计算机上另一个活动会话已使用您传递的名称,Claude Code 会改为应用[该名称的变体](/docs/zh-CN/sessions#name-your-sessions) |

135| `/resume [session]` | 按 ID 或名称恢复对话,或打开会话选择器。[后台会话](/docs/zh-CN/agent-view)在选择器中标记为 `bg` 出现。恢复仍在运行的会话,从选择器或按 ID 或名称,[打开该会话](/docs/zh-CN/sessions#resume-a-running-background-session):你的当前对话移到后台,此终端附加到运行的会话。在空提示符上按 `←` 返回代理视图,它也列出你离开的对话。在 v2.1.285 之前,Claude Code 拒绝并告诉你使用 `claude attach` 打开会话或先停止它。别名:`/continue` |135| `/resume [session]` | 通过 ID 或名称恢复对话,或打开会话选择器。[后台会话](/docs/zh-CN/agent-view)在选择器中以 `bg` 标记显示。恢复仍在运行的后台会话时(无论是从选择器还是通过 ID 或名称),会[打开该会话](/docs/zh-CN/sessions#resume-a-running-background-session):您当前的对话会移到后台,此终端会附加到正在运行的会话。在空输入框中按 `←` 可返回 Agent 视图,其中也会列出您离开的对话。在 v2.1.285 之前,Claude Code 会拒绝并告诉您使用 `claude attach` 打开该会话,或先停止它。别名:`/continue` |

136| `/review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [pr#\|branch\|path]` | [`/code-review`](/docs/zh-CN/code-review#review-a-diff-locally) 的别名:审查当前差异,或你传递的 PR 号、分支或路径,例如 `/review 1234`,并采用相同的工作量级别和标志。没有给定级别时,审查重用你输入的最后一个 `low` 到 `max` 级别;有关确切规则,请参阅[本地审查差异](/docs/zh-CN/code-review#review-a-diff-locally)。对于深度云审查,使用 [`/code-review ultra`](/docs/zh-CN/ultrareview)。在 v2.1.223 之前,`/review` 是一个单独的命令,运行 GitHub 拉取请求号的单遍、只读审查,在运行不带参数时列出打开的 PR 以选择;从 v2.1.186 到 v2.1.201,它运行与 `/code-review medium` 相同的多代理引擎 |136| `/review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [pr#\|branch\|path]` | [`/code-review`](/docs/zh-CN/code-review#review-a-diff-locally) 的别名:审查当前 diff,或您传递的 PR 编号、分支或路径(例如 `/review 1234`),并接受相同的 effort 级别和标志。未指定级别时,审查会沿用您上次输入的 `low` 到 `max` 级别;有关确切规则,请参阅[在本地审查 diff](/docs/zh-CN/code-review#review-a-diff-locally)。要进行深度云端审查,请使用 [`/code-review ultra`](/docs/zh-CN/ultrareview)。在 v2.1.223 之前,`/review` 是一个单独的命令,按编号对 GitHub Pull Request 运行单次只读审查,不带参数运行时会列出打开的 PR 供选择;从 v2.1.186 到 v2.1.201,它运行与 `/code-review medium` 相同的多 Agent 引擎 |

137| `/rewind` | 倒带对话和/或代码到上一个点,或从选定的消息总结。请参阅[检查点](/docs/zh-CN/checkpointing)。别名:`/checkpoint`、`/undo` |137| `/rewind` | 将对话和/或代码回退到之前的某个时间点,或从选定的消息开始总结。请参阅[检查点功能](/docs/zh-CN/checkpointing)。别名:`/checkpoint`、`/undo` |

138| `/run` | **[Skill](/docs/zh-CN/skills#bundled-skills)。** 启动并驱动你的项目应用以查看更改工作,而不仅仅是通过测试。请参阅[运行和验证你的应用](/docs/zh-CN/skills#run-and-verify-your-app) |138| `/run` | **[Skill](/docs/zh-CN/skills#bundled-skills)。** 启动并操作您项目的应用,以查看更改是否实际生效,而不仅仅是通过测试。请参阅[运行并验证您的应用](/docs/zh-CN/skills#run-and-verify-your-app) |

139| `/run-skill-generator` | **[Skill](/docs/zh-CN/skills#bundled-skills)。** 通过从干净环境编写每个项目的 [skill](/docs/zh-CN/skills#run-and-verify-your-app) 来教 `/run` 和 `/verify` 如何构建、启动和驱动你的项目应用 |139| `/run-skill-generator` | **[Skill](/docs/zh-CN/skills#bundled-skills)。** 通过编写一个项目专属的 [skill](/docs/zh-CN/skills#run-and-verify-your-app),教会 `/run` 和 `/verify` 如何在干净的环境中构建、启动和操作您项目的应用 |

140| `/sandbox` | 切换[沙箱模式](/docs/zh-CN/sandboxing)。仅在支持的平台上可用 |140| `/sandbox` | 切换[沙箱模式](/docs/zh-CN/sandboxing)。仅在支持的平台上可用 |

141| `/schedule [description]` | 创建、更新、列出或运行在云中执行的[例程](/docs/zh-CN/routines)。Claude 以对话方式引导你完成设置。你也可以询问[例程的最近运行](/docs/zh-CN/routines#manage-routines-from-the-cli)。别名:`/routines` |141| `/schedule [description]` | 创建、更新、列出或运行在云端执行的 [Routine](/docs/zh-CN/routines)。Claude 会以对话方式引导您完成设置。您还可以询问 [Routine 的最近运行情况](/docs/zh-CN/routines#manage-routines-from-the-cli)。别名:`/routines` |

142| `/scroll-speed` | 交互式调整鼠标滚轮[滚动速度](/docs/zh-CN/fullscreen#mouse-wheel-scrolling),带有一个标尺,你可以在对话框打开时滚动以预览更改。仅在[全屏渲染](/docs/zh-CN/fullscreen)中可用,在 JetBrains IDE 终端中不可用 |142| `/scroll-speed` | 以交互方式调整鼠标滚轮[滚动速度](/docs/zh-CN/fullscreen#mouse-wheel-scrolling),对话框打开时可以滚动标尺来预览更改。仅在[全屏渲染](/docs/zh-CN/fullscreen)中可用,在 JetBrains IDE 终端中不可用 |

143| `/security-review` | 分析当前分支上的更改以查找安全漏洞。审查你的分支和 origin 默认分支之间的差异,识别注入、身份验证问题和数据暴露等风险。需要 `origin` 远程;如果审查失败并出现 `ambiguous argument` 错误,请参阅[错误参考](/docs/zh-CN/errors#security-review-fails-without-origin-head) |143| `/security-review` | 分析当前分支上的更改是否存在安全漏洞。审查您的分支与 origin 默认分支之间的 diff,识别注入、身份验证问题和数据泄露等风险。需要 `origin` 远程;如果审查因 `ambiguous argument` 错误而失败,请参阅[错误参考](/docs/zh-CN/errors#security-review-fails-without-origin-head) |

144| `/setup-bedrock` | 通过交互式向导配置 [Amazon Bedrock](/docs/zh-CN/amazon-bedrock) 身份验证、区域和模型引脚。[从命令菜单隐藏](#how-the-command-menu-matches-what-you-type)直到设置 `CLAUDE_CODE_USE_BEDROCK=1`;完整输入它。首次 Amazon Bedrock 用户也可以从登录屏幕访问此向导 |144| `/setup-bedrock` | 通过交互式向导配置 [Amazon Bedrock](/docs/zh-CN/amazon-bedrock) 身份验证、区域和模型固定。在设置 `CLAUDE_CODE_USE_BEDROCK=1` 之前[在命令菜单中隐藏](#how-the-command-menu-matches-what-you-type);需要完整输入。首次使用 Amazon Bedrock 的用户也可以从登录屏幕访问此向导 |

145| `/setup-vertex` | 通过交互式向导配置 [Google Cloud 的 Agent Platform](/docs/zh-CN/google-vertex-ai) 身份验证、项目、区域和模型引脚。[从命令菜单隐藏](#how-the-command-menu-matches-what-you-type)直到设置 `CLAUDE_CODE_USE_VERTEX=1`;完整输入它。首次 Google Cloud 的 Agent Platform 用户也可以从登录屏幕访问此向导 |145| `/setup-vertex` | 通过交互式向导配置 [Google Cloud's Agent Platform](/docs/zh-CN/google-vertex-ai) 身份验证、项目、区域和模型固定。在设置 `CLAUDE_CODE_USE_VERTEX=1` 之前[在命令菜单中隐藏](#how-the-command-menu-matches-what-you-type);需要完整输入。首次使用 Google Cloud's Agent Platform 的用户也可以从登录屏幕访问此向导 |

146| `/simplify [target]` | **[Skill](/docs/zh-CN/skills#bundled-skills)。** 审查更改的代码以查找清理机会并应用修复。四个审查[代理](/docs/zh-CN/sub-agents)并行运行,涵盖现有帮助程序的重用、简化、效率以及更改是否处于正确的抽象级别。审查不查找正确性错误。使用 `/code-review` 查找错误。传递路径或 PR 参考以审查特定目标 |146| `/simplify [target]` | **[Skill](/docs/zh-CN/skills#bundled-skills)。** 审查已更改的代码以寻找清理机会并应用修复。四个审查 [Agent](/docs/zh-CN/sub-agents) 并行运行,涵盖现有辅助函数的复用、简化、效率,以及更改是否处于合适的抽象层级。该审查不查找正确性 bug。使用 `/code-review` 查找 bug。传递路径或 PR 引用可审查特定目标 |

147| `/skill-doctor` | 显示你的每个 [skill](/docs/zh-CN/skills) 在上下文中的成本以及它被使用的频率,以便你可以[找到要关闭的 skill](/docs/zh-CN/skills#find-unused-skills)。需要 Claude Code v2.1.252 或更高版本和[功能标志获取](/docs/zh-CN/env-vars#features-that-need-feature-flag-fetching) |147| `/skill-doctor` | 显示您的每个 [skill](/docs/zh-CN/skills) 在上下文中的开销以及使用频率,以便您[找到可以关闭的 skill](/docs/zh-CN/skills#find-unused-skills)。需要 Claude Code v2.1.252 或更高版本以及[功能标志获取](/docs/zh-CN/env-vars#features-that-need-feature-flag-fetching) |

148| `/skills` | 列出可用的 [skill](/docs/zh-CN/skills)。输入以按名称、描述或来源过滤列表。按 `t` 按令牌计数排序,`Space` 或 `Enter` 以[循环 skill 对 Claude 和 `/` 菜单的可见性](/docs/zh-CN/skills#override-skill-visibility-from-settings),`Esc` 保存并关闭。你无法循环插件 skill、frontmatter 设置 `disable-model-invocation: true` 的 skill 或在托管设置或 `--settings` 标志中有 `skillOverrides` 条目的 skill |148| `/skills` | 列出可用的 [skill](/docs/zh-CN/skills)。输入内容可按名称、描述或来源筛选列表。按 `t` 按 token 数排序,按 `Space` 或 `Enter` [循环切换 skill 对 Claude 和 `/` 菜单的可见性](/docs/zh-CN/skills#override-skill-visibility-from-settings),按 `Esc` 保存并关闭。您无法循环切换插件 skill、frontmatter 设置了 `disable-model-invocation: true` 的 skill,或在托管设置或 `--settings` 标志中具有 `skillOverrides` 条目的 skill |

149| `/slides [brief]` | **[Skill](/docs/zh-CN/skills#bundled-skills)。** 制作一个新的演示文稿作为 Claude Slides [工件](/docs/zh-CN/artifacts#make-a-slide-deck),从你的简介中填充,例如 `/slides a quarterly review of the platform team`。需要 Claude Code v2.1.265 或更高版本、一个[工件可用](/docs/zh-CN/artifacts#availability)的会话,以及一个[Slides 模板可用](/docs/zh-CN/artifacts#start-from-a-slides-design-or-docs-template)的账户;否则命令不会出现。在 Anthropic API 上可用。在 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 和 Claude Platform on AWS 上,工件不可用,所以命令在那里不可用 |149| `/slides [brief]` | **[Skill](/docs/zh-CN/skills#bundled-skills)。** 根据您的简介创建一个新的演示文稿,作为 Claude Slides [Artifact](/docs/zh-CN/artifacts#make-a-slide-deck),例如 `/slides a quarterly review of the platform team`。需要 Claude Code v2.1.265 或更高版本、[Artifact 可用](/docs/zh-CN/artifacts#availability)的会话,以及 [Slides 模板可用](/docs/zh-CN/artifacts#start-from-a-slides-design-or-docs-template)的账户;否则该命令不会出现。可在 Anthropic API 上使用。在 Amazon Bedrock、Google Cloud's Agent Platform、Microsoft Foundry 和 Claude Platform on AWS 上,Artifact 不可用,因此该命令在这些平台上不可用 |

150| `/stats` | `/usage` 的别名。在 Stats 选项卡上打开 |150| `/stats` | `/usage` 的别名。在 Stats 选项卡上打开 |

151| `/status` | 在 Status 选项卡上打开设置界面,显示版本、模型、账户和连接性。一个 `Session kind` 行在[后台会话](/docs/zh-CN/agent-view)中读取 `background job · attached` 或 `background job · unattended`,取决于是否附加了终端,在任何其他会话中读取 `interactive`。在 v2.1.221 之前,`/status` 没有显示此行。在 Claude 响应时工作 |151| `/status` | 在 Status 选项卡上打开设置界面,显示版本、模型、账户和连接状态。在[后台会话](/docs/zh-CN/agent-view)中,`Session kind` 行会显示 `background job · attached` 或 `background job · unattended`(取决于是否附加了终端),在其他任何会话中显示 `interactive`。在 v2.1.221 之前,`/status` 不显示此行。在 Claude 回复时也可使用 |

152| `/statusline` | 配置 Claude Code 的[状态行](/docs/zh-CN/statusline)。描述你想要的内容,或运行不带参数以从你的 shell 提示符自动配置 |152| `/statusline` | 配置 Claude Code 的[状态栏](/docs/zh-CN/statusline)。描述您想要的内容,或不带参数运行以根据您的 shell 提示符自动配置 |

153| `/stickers` | 订购 Claude Code 贴纸 |153| `/stickers` | 订购 Claude Code 贴纸 |

154| `/stop` | 停止当前[后台会话](/docs/zh-CN/agent-view)。仅在附加到后台会话时可用;记录和任何 worktree 都被保留。要分离而不停止,请使用 `/exit` 或按 `←` |154| `/stop` | 停止当前[后台会话](/docs/zh-CN/agent-view)。仅在附加到后台会话时可用;会话记录和任何 worktree 都会保留。要分离而不停止,请使用 `/exit` 或按 `←` |

155| `/subtask <task>` | 生成一个[分叉子代理](/docs/zh-CN/sub-agents#fork-the-current-conversation):一个继承完整对话的后台子代理,在你继续工作时处理任务。其结果在完成时返回到这个对话。要将对话复制到单独的后台会话,请改用 `/fork`。需要 Claude Code v2.1.212 或更高版本;在 v2.1.161 到 v2.1.211,这个命令是 `/fork`。当[代理视图关闭](/docs/zh-CN/agent-view#turn-off-agent-view)时,`/subtask` 不可用,`/fork` 保持分叉子代理行为 |155| `/subtask <task>` | 生成一个[分叉子代理](/docs/zh-CN/sub-agents#fork-the-current-conversation):一个继承完整对话的后台子代理,在您继续工作的同时处理该任务。完成后,其结果会返回到此对话。要改为将对话复制到单独的后台会话中,请使用 `/fork`。需要 Claude Code v2.1.212 或更高版本;在 v2.1.161 至 v2.1.211 上,此命令为 `/fork`。当[关闭 Agent 视图](/docs/zh-CN/agent-view#turn-off-agent-view)时,`/subtask` 不可用,`/fork` 保留分叉子代理行为 |

156| `/tasks` | 查看和管理当前会话中的后台工作,包括已完成的子代理。也可用作 `/bashes` |156| `/tasks` | 查看和管理当前会话中的后台工作,包括已完成的子代理。也可作为 `/bashes` 使用 |

157| `/team-onboarding` | 从你的 Claude Code 使用历史生成团队入职指南。Claude 分析你过去 30 天的会话、命令和 MCP 服务器使用情况,并生成一个 markdown 指南,队友可以粘贴为第一条消息以快速设置。对于 Pro、Max、Team 和 Enterprise 计划上的 claude.ai 订阅者,也返回一个共享链接,队友可以直接在 Claude Code 中打开 |157| `/team-onboarding` | 根据您的 Claude Code 使用历史生成团队入门指南。Claude 会分析您过去 30 天的会话、命令和 MCP 服务器使用情况,并生成一份 markdown 指南,队友可以将其作为第一条消息粘贴以快速完成设置。对于 Pro、Max、Team 和 Enterprise 套餐的 claude.ai 订阅者,还会返回一个分享链接,队友可以直接在 Claude Code 中打开 |

158| `/teleport` | 将 [cloud session](/docs/zh-CN/claude-code-on-the-web#from-cloud-to-terminal) 拉入此终端。打开选择器,然后获取分支和对话。也可用作 `/tp`。需要 claude.ai 订阅 |158| `/teleport` | 将[云端会话](/docs/zh-CN/claude-code-on-the-web#from-cloud-to-terminal)拉取到此终端。打开选择器,然后获取分支和对话。也可作为 `/tp` 使用。需要 claude.ai 订阅 |

159| `/terminal-setup` | [在 VS Code、Cursor、Devin Desktop、Alacritty 或 Zed 中安装 Shift+Enter 快捷键以输入多行](/docs/zh-CN/terminal-config#enter-multiline-prompts)。在 Apple Terminal 中,[改为启用 Option+Enter 以输入多行并关闭可听铃声](/docs/zh-CN/terminal-config#enable-option-key-shortcuts-on-macos)。在 iTerm2 中,[打开剪贴板访问以便 `/copy` 工作](/docs/zh-CN/terminal-config#enable-option-key-shortcuts-on-macos) |159| `/terminal-setup` | 在 VS Code、Cursor、Devin Desktop、Alacritty 或 Zed 中[安装用于换行的 Shift+Enter 快捷键](/docs/zh-CN/terminal-config#enter-multiline-prompts)。在 Apple Terminal 中,则改为[启用 Option+Enter 换行并关闭提示音](/docs/zh-CN/terminal-config#enable-option-key-shortcuts-on-macos)。在 iTerm2 中,[开启剪贴板访问,使 `/copy` 能够正常工作](/docs/zh-CN/terminal-config#enable-option-key-shortcuts-on-macos) |

160| `/theme` | 更改颜色主题。包括与你的终端的浅色或深色背景匹配的 `auto` 选项、浅色和深色变体、色盲无障碍(daltonized)主题、使用你的终端颜色调色板的 ANSI 主题,以及来自 `~/.claude/themes/` 或插件的任何[自定义主题](/docs/zh-CN/terminal-config#create-a-custom-theme)。选择\*\*新建自定义主题…\*\*以创建一个 |160| `/theme` | 更改颜色主题。包括与终端浅色或深色背景匹配的 `auto` 选项、浅色和深色变体、色盲友好(daltonized)主题、使用终端调色板的 ANSI 主题,以及来自 `~/.claude/themes/` 或插件的任何[自定义主题](/docs/zh-CN/terminal-config#create-a-custom-theme)。选择 **New custom theme…** 可创建一个主题 |

161| `/tui [default\|fullscreen]` | 设置终端 UI 渲染器并使用你的对话完整地重新启动到它。`fullscreen` 启用[无闪烁 alt-screen 渲染器](/docs/zh-CN/fullscreen)。没有参数时,打印活跃渲染器 |161| `/tui [default\|fullscreen]` | 设置终端 UI 渲染器,并在保持对话完整的情况下重新启动到该渲染器。`fullscreen` 会启用[无闪烁备用屏幕渲染器](/docs/zh-CN/fullscreen)。不带参数时,输出当前活动的渲染器 |

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

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

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

165| `/upgrade` | 在浏览器中打开升级页面以切换到更高的计划层级。当浏览器无法打开时,命令显示登录提示而不打印 URL |165| `/upgrade` | 在浏览器中打开升级页面,以切换到更高的套餐级别。当浏览器无法打开时,该命令会显示登录提示,但不会输出 URL |

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

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

168| `/verify` | **[Skill](/docs/zh-CN/skills#bundled-skills)。** 通过构建你的项目应用、运行它并观察结果来确认代码更改做了它应该做的事,而不是依赖测试或类型检查。请参阅[运行和验证你的应用](/docs/zh-CN/skills#run-and-verify-your-app) |168| `/verify` | **[Skill](/docs/zh-CN/skills#bundled-skills)。** 通过构建、运行您项目的应用并观察结果来确认代码更改是否按预期工作,而不是依赖测试或类型检查。请参阅[运行并验证您的应用](/docs/zh-CN/skills#run-and-verify-your-app) |

169| `/vim` | 在 v2.1.92 中移除。要在 Vim 和 Normal 编辑模式之间切换,请使用 `/config` → 编辑器模式 |169| `/vim` | 已在 v2.1.92 中移除。要在 Vim 和 Normal 编辑模式之间切换,请使用 `/config` → Editor mode |

170| `/voice [hold\|tap\|off]` | 切换[语音听写](/docs/zh-CN/voice-dictation),或在特定模式下启用它。需要 Claude.ai 账户 |170| `/voice [hold\|tap\|off]` | 切换[语音听写](/docs/zh-CN/voice-dictation),或以特定模式启用它。需要 Claude.ai 账户 |

171| `/web-setup` | 使用你的本地 `gh` CLI 凭证将你的 GitHub 账户连接到 [cloud sessions](/docs/zh-CN/web-quickstart#connect-from-your-terminal) |171| `/web-setup` | 使用本地 `gh` CLI 凭据为[云端会话](/docs/zh-CN/web-quickstart#connect-from-your-terminal)连接您的 GitHub 账户 |

172| `/workflow-authoring` | **[Skill](/docs/zh-CN/skills#bundled-skills)。** 加载编写[动态 workflow](/docs/zh-CN/workflows) 脚本的参考:脚本 API、恢复行为、质量模式和工作示例。Claude 通常在编写脚本之前自己加载它;在[手动编辑保存的脚本](/docs/zh-CN/workflows#edit-a-saved-script)之前自己运行它。在启用动态 workflow 时可用,需要 Claude Code v2.1.248 或更高版本 |172| `/workflow-authoring` | **[Skill](/docs/zh-CN/skills#bundled-skills)。** 加载编写[动态工作流](/docs/zh-CN/workflows)脚本的参考:脚本 API、恢复行为、质量模式和完整示例。Claude 通常会在编写脚本之前自行加载它;在[手动编辑已保存的脚本](/docs/zh-CN/workflows#edit-a-saved-script)之前,请自行运行它。在启用动态工作流时可用,需要 Claude Code v2.1.248 或更高版本 |

173| `/workflows` | 打开 [workflow](/docs/zh-CN/workflows#watch-the-run) 进度视图以监视、暂停、恢复或保存运行和已完成的 workflow |173| `/workflows` | 打开[工作流](/docs/zh-CN/workflows#watch-the-run)进度视图,以监视、暂停、恢复或保存正在运行和已完成的工作流 |

174 174 

175<h2 id="how-the-command-menu-matches-what-you-type">175<h2 id="how-the-command-menu-matches-what-you-type">

176 命令菜单如何匹配你输入的内容176 命令菜单如何匹配你输入的内容

Details

62对于配置位置和范围规则,请参阅 [MCP](/docs/zh-CN/mcp)。62对于配置位置和范围规则,请参阅 [MCP](/docs/zh-CN/mcp)。

63 63 

64<h2 id="check-hooks">64<h2 id="check-hooks">

65 检查 hooks65 检查 hook

66</h2>66</h2>

67 67 

68运行 `/hooks` 来列出当前会话注册的每个 hook,按事件分组。如果你定义的 hook 没有出现,它没有被读取:hooks 在设置文件中的 `"hooks"` 键下,而不是在独立文件中。68运行 `/hooks` 来列出当前会话注册的每个 hook,按事件分组。如果您定义的 hook 没有出现,说明 Claude Code 没有加载它。请检查以下原因:

69 

70* 该 hook 定义在独立文件中。hook 应位于[设置文件](/docs/zh-CN/settings#settings-files)中的 `"hooks"` 键下。

71* `matcher` 值是数组而不是单个字符串。在您启动交互式会话时以及在 `claude doctor` 中,Claude Code 会将该条目列为无效设置。如果该数组位于 `PreToolUse` 或 `PermissionRequest` 下,该文件中的其他 hook 也都不会加载。

69 72 

70如果 hook 出现但没有触发,匹配器通常是原因。检查它是否有这些错误:73如果 hook 出现但没有触发,匹配器通常是原因。检查它是否有这些错误:

71 74 

72* `matcher` 字段是一个使用 `|` 来匹配多个工具名称的单个字符串,例如 `"Edit|Write"`。`,` 分隔符是等效的,所以 `"Edit,Write"` 匹配相同的工具。在 v2.1.191 之前,逗号会进入正则表达式评估,匹配器永远不会匹配,所以如果你不在 v2.1.191 上,请使用 `|`。75* `matcher` 字段是一个使用 `|` 来匹配多个工具名称的单个字符串,例如 `"Edit|Write"`。`,` 分隔符是等效的,所以 `"Edit,Write"` 匹配相同的工具。在 v2.1.191 之前,逗号会进入正则表达式评估,匹配器永远不会匹配,所以如果您尚未使用 v2.1.191,请使用 `|`。

73* 拼写错误的工具名称会产生一个不匹配任何内容的匹配器,所以 hook 会无声地失败。76* 拼写错误的工具名称会产生一个不匹配任何内容的匹配器,所以 hook 会无声地失败。

74* 数组值是一个 schema 错误:Claude Code 显示设置错误通知并拒绝整个用户、项目或本地设置文件,`claude doctor` 报告验证失败,该文件中没有 hook 出现在 `/hooks` 中。在[托管设置](/docs/zh-CN/managed-settings)中,Claude Code 从包含数组的文件中删除整个 `hooks` 键,所以该文件的 hooks 都不适用。文件的其他设置仍然适用,`claude doctor` 列出删除的键。

75 77 

76当你编辑 `settings.json` 时,更改在短暂的文件稳定延迟后在运行的会话中生效,即使你在会话启动后创建了文件或项目的 `.claude/` 文件夹。你不需要重新启动。在 v2.1.257 之前,Claude Code 没有检测到在会话启动后创建的 `.claude/` 文件夹中的编辑。78当您编辑 `settings.json` 时,更改在短暂的文件稳定延迟后在运行的会话中生效,即使您在会话启动后创建了文件或项目的 `.claude/` 文件夹。您不需要重新启动。在 v2.1.257 之前,Claude Code 没有检测到在会话启动后创建的 `.claude/` 文件夹中的编辑。

77 79 

78如果保存后几秒钟 `/hooks` 仍然显示旧定义,再次运行 `/hooks` 来刷新视图。80如果保存后几秒钟 `/hooks` 仍然显示旧定义,再次运行 `/hooks` 来刷新视图。

79 81 

80如果 `/hooks` 显示 hook 但它仍然没有触发,下一步是实时观察 hook 评估。使用 `claude --debug` 启动会话并触发工具调用。调试日志记录每个事件、检查了哪些匹配器以及 hook 的退出代码和输出。有关日志格式,请参阅[调试 hooks](/docs/zh-CN/hooks#debug-hooks),有关常见失败模式,请参阅[hooks 故障排除](/docs/zh-CN/hooks-guide#limitations-and-troubleshooting)。82如果 `/hooks` 显示 hook 但它仍然没有触发,下一步是实时观察 hook 评估。使用 `claude --debug` 启动会话并触发工具调用。调试日志记录每个事件、检查了哪些匹配器以及 hook 的退出码和输出。有关日志格式,请参阅[调试 hook](/docs/zh-CN/hooks#debug-hooks),有关常见失败模式,请参阅[hook 故障排除](/docs/zh-CN/hooks-guide#limitations-and-troubleshooting)。

81 83 

82<h2 id="test-against-a-clean-configuration">84<h2 id="test-against-a-clean-configuration">

83 针对干净配置进行测试85 针对干净配置进行测试

env-vars.md +2 −1

Details

205| `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS` | 子代理的停滞超时(毫秒)。默认 `600000`(10 分钟);如果您在流监视程序打开时提高 `CLAUDE_STREAM_IDLE_TIMEOUT_MS`,默认值会随之上升,如 [处理缓慢或停滞的 API 响应](/docs/zh-CN/agent-sdk/typescript#handle-slow-or-stalled-api-responses) 所述。计时器在每个流式进度事件上重置;如果窗口内没有进度到达,Claude Code 会中止子代理并向父级报告停滞 |205| `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS` | 子代理的停滞超时(毫秒)。默认 `600000`(10 分钟);如果您在流监视程序打开时提高 `CLAUDE_STREAM_IDLE_TIMEOUT_MS`,默认值会随之上升,如 [处理缓慢或停滞的 API 响应](/docs/zh-CN/agent-sdk/typescript#handle-slow-or-stalled-api-responses) 所述。计时器在每个流式进度事件上重置;如果窗口内没有进度到达,Claude Code 会中止子代理并向父级报告停滞 |

206| `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE` | 设置自动压缩窗口的百分比(1-100),自动压缩在该百分比处触发。使用较低的值(如 `50`)以更早压缩;变量无法提高阈值,因此高于默认百分比的值被忽略。它仅适用于在模型的上下文限制之前 [压缩](/docs/zh-CN/model-config#context-window-and-auto-compaction) 的会话。适用于主对话和子代理 |206| `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE` | 设置自动压缩窗口的百分比(1-100),自动压缩在该百分比处触发。使用较低的值(如 `50`)以更早压缩;变量无法提高阈值,因此高于默认百分比的值被忽略。它仅适用于在模型的上下文限制之前 [压缩](/docs/zh-CN/model-config#context-window-and-auto-compaction) 的会话。适用于主对话和子代理 |

207| `CLAUDE_AUTO_BACKGROUND_TASKS` | 设置为 `1` 以强制启用长时间运行的代理任务的自动后台处理。启用后,子代理在运行约两分钟后移至后台。在 Claude Code v2.1.212 或更高版本上,也启用 [长 MCP 工具调用的自动后台处理](/docs/zh-CN/mcp#automatic-backgrounding-of-long-tool-calls)(非交互模式) |207| `CLAUDE_AUTO_BACKGROUND_TASKS` | 设置为 `1` 以强制启用长时间运行的代理任务的自动后台处理。启用后,子代理在运行约两分钟后移至后台。在 Claude Code v2.1.212 或更高版本上,也启用 [长 MCP 工具调用的自动后台处理](/docs/zh-CN/mcp#automatic-backgrounding-of-long-tool-calls)(非交互模式) |

208| `CLAUDE_AX_PREPARK_MS` | 在 [屏幕阅读器模式](/docs/zh-CN/accessibility#what-your-screen-reader-hears) 中,Claude Code 在光标位于行首时等待的毫秒数,然后写入新行或更改的行。默认 `50`。设置 `0` 以立即写入。Claude Code 将等待上限设置为 `5000`。需要 Claude Code v2.1.233 或更高版本 |208| `CLAUDE_AX_PREPARK_MS` | 在[屏幕阅读器模式](/docs/zh-CN/accessibility)下,Claude Code 在写入新行或已更改行之前等待的毫秒数。默认为 `0`,因此 Claude Code 不会等待。在 v2.1.287 之前,默认值为 `50`。Claude Code 将等待时间上限设为 `5000`。需要 Claude Code v2.1.233 或更高版本 |

209| `CLAUDE_AX_SCREEN_READER` | 设置为 `1` 以呈现屏幕阅读器友好的输出:没有装饰性边框或动画的平面文本。设置为 `0` 以强制关闭屏幕阅读器模式,即使 [`axScreenReader`](/docs/zh-CN/settings-reference#axscreenreader) 为 `true`。[`--ax-screen-reader`](/docs/zh-CN/cli-reference#cli-flags) 标志优先。需要 Claude Code v2.1.181 或更高版本 |209| `CLAUDE_AX_SCREEN_READER` | 设置为 `1` 以呈现屏幕阅读器友好的输出:没有装饰性边框或动画的平面文本。设置为 `0` 以强制关闭屏幕阅读器模式,即使 [`axScreenReader`](/docs/zh-CN/settings-reference#axscreenreader) 为 `true`。[`--ax-screen-reader`](/docs/zh-CN/cli-reference#cli-flags) 标志优先。需要 Claude Code v2.1.181 或更高版本 |

210| `CLAUDE_AX_STARTUP_QUIET_MS` | 在 [屏幕阅读器模式](/docs/zh-CN/accessibility) 中,Claude Code 在启动确认行之后保持第一个界面呈现的毫秒数,以便您的屏幕阅读器可以在新输出中断之前完整地说出该行。默认 `3000`。设置 `0` 以立即呈现。Claude Code 将保持上限设置为 `600000`(10 分钟)。您的第一次按键会提前结束保持。需要 Claude Code v2.1.217 或更高版本 |210| `CLAUDE_AX_STARTUP_QUIET_MS` | 在 [屏幕阅读器模式](/docs/zh-CN/accessibility) 中,Claude Code 在启动确认行之后保持第一个界面呈现的毫秒数,以便您的屏幕阅读器可以在新输出中断之前完整地说出该行。默认 `3000`。设置 `0` 以立即呈现。Claude Code 将保持上限设置为 `600000`(10 分钟)。您的第一次按键会提前结束保持。需要 Claude Code v2.1.217 或更高版本 |

211| `CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR` | 在主会话中每个 Bash 或 PowerShell 命令后返回到原始工作目录 |211| `CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR` | 在主会话中每个 Bash 或 PowerShell 命令后返回到原始工作目录 |


245| `CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN` | 设置为 `1` 以禁用 [全屏呈现](/docs/zh-CN/fullscreen) 并使用经典主屏幕渲染器。对话保留在您终端的本机滚动条中,因此 `Cmd+f` 和 tmux 复制模式照常工作。优先于 `CLAUDE_CODE_NO_FLICKER` 和 [`tui`](/docs/zh-CN/settings-reference#tui) 设置。您也可以使用 `/tui default` 切换。不适用于从 [代理视图](/docs/zh-CN/agent-view) 打开的后台会话,它们始终使用全屏呈现 |245| `CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN` | 设置为 `1` 以禁用 [全屏呈现](/docs/zh-CN/fullscreen) 并使用经典主屏幕渲染器。对话保留在您终端的本机滚动条中,因此 `Cmd+f` 和 tmux 复制模式照常工作。优先于 `CLAUDE_CODE_NO_FLICKER` 和 [`tui`](/docs/zh-CN/settings-reference#tui) 设置。您也可以使用 `/tui default` 切换。不适用于从 [代理视图](/docs/zh-CN/agent-view) 打开的后台会话,它们始终使用全屏呈现 |

246| `CLAUDE_CODE_DISABLE_ARTIFACT` | 设置为 `1` 以关闭 [Artifact](/docs/zh-CN/artifacts) 工具,该工具将会话输出发布为 claude.ai 上的私有网页。设置后,没有设置文件会打开该工具。要改为从设置文件关闭该工具,请将 [`enableArtifact`](/docs/zh-CN/settings-reference#enableartifact) 设置为 `false`;已弃用的 [`disableArtifact`](/docs/zh-CN/settings-reference#disableartifact) 密钥也会关闭它 |246| `CLAUDE_CODE_DISABLE_ARTIFACT` | 设置为 `1` 以关闭 [Artifact](/docs/zh-CN/artifacts) 工具,该工具将会话输出发布为 claude.ai 上的私有网页。设置后,没有设置文件会打开该工具。要改为从设置文件关闭该工具,请将 [`enableArtifact`](/docs/zh-CN/settings-reference#enableartifact) 设置为 `false`;已弃用的 [`disableArtifact`](/docs/zh-CN/settings-reference#disableartifact) 密钥也会关闭它 |

247| `CLAUDE_CODE_DISABLE_ATTACHMENTS` | 设置为 `1` 以禁用附件处理。带有 `@` 语法的文件提及作为纯文本发送,而不是扩展为文件内容 |247| `CLAUDE_CODE_DISABLE_ATTACHMENTS` | 设置为 `1` 以禁用附件处理。带有 `@` 语法的文件提及作为纯文本发送,而不是扩展为文件内容 |

248| `CLAUDE_CODE_DISABLE_AUTH_REFRESH_LOCK` | 设置为 `1` 可让 Claude Code 进程自行运行其 [`gcpAuthRefresh`](/docs/zh-CN/settings-reference#gcpauthrefresh) 或 [`awsAuthRefresh`](/docs/zh-CN/settings-reference#awsauthrefresh) 命令,而不是在另一个进程运行该命令时等待。需要 Claude Code v2.1.286 或更高版本 |

248| `CLAUDE_CODE_DISABLE_AUTO_MEMORY` | 设置为 `1` 以禁用 [自动内存](/docs/zh-CN/memory#auto-memory)。设置为 `0` 以强制启用自动内存,即使 `--bare` 模式或 [`autoMemoryEnabled: false`](/docs/zh-CN/settings-reference#automemoryenabled) 会禁用它。禁用时,Claude 不创建或加载自动内存文件 |249| `CLAUDE_CODE_DISABLE_AUTO_MEMORY` | 设置为 `1` 以禁用 [自动内存](/docs/zh-CN/memory#auto-memory)。设置为 `0` 以强制启用自动内存,即使 `--bare` 模式或 [`autoMemoryEnabled: false`](/docs/zh-CN/settings-reference#automemoryenabled) 会禁用它。禁用时,Claude 不创建或加载自动内存文件 |

249| `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` | 设置为 `1` 以禁用所有后台任务功能,包括 Bash 和子代理工具上的 `run_in_background` 参数、自动后台处理和 Ctrl+B 快捷键 |250| `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` | 设置为 `1` 以禁用所有后台任务功能,包括 Bash 和子代理工具上的 `run_in_background` 参数、自动后台处理和 Ctrl+B 快捷键 |

250| `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_DEFAULT` | 设置为 `1` 以停止 Claude Code 将缺少或空的 `Content-Type` 标头的 [Amazon Bedrock](/docs/zh-CN/amazon-bedrock) 流式响应视为 Amazon Bedrock 的二进制事件流。默认情况下,Claude Code 假设网关从其他未修改的响应中删除了标头,因此它解码正文,流式处理继续工作。仅为也将流重新发出为服务器发送事件的网关设置此选项;Claude Code 随后将无标头正文读作服务器发送事件。需要 Claude Code v2.1.239 或更高版本 |251| `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_DEFAULT` | 设置为 `1` 以停止 Claude Code 将缺少或空的 `Content-Type` 标头的 [Amazon Bedrock](/docs/zh-CN/amazon-bedrock) 流式响应视为 Amazon Bedrock 的二进制事件流。默认情况下,Claude Code 假设网关从其他未修改的响应中删除了标头,因此它解码正文,流式处理继续工作。仅为也将流重新发出为服务器发送事件的网关设置此选项;Claude Code 随后将无标头正文读作服务器发送事件。需要 Claude Code v2.1.239 或更高版本 |

errors.md +761 −736

Details

8 8 

9本页列出 Claude Code 显示的运行时错误以及如何从每个错误中恢复,以及当响应似乎有问题但没有错误时要检查的内容。对于安装错误(如 `command not found` 或设置期间的 TLS 失败),请参阅[排查安装和登录问题](/docs/zh-CN/troubleshoot-install)。9本页列出 Claude Code 显示的运行时错误以及如何从每个错误中恢复,以及当响应似乎有问题但没有错误时要检查的内容。对于安装错误(如 `command not found` 或设置期间的 TLS 失败),请参阅[排查安装和登录问题](/docs/zh-CN/troubleshoot-install)。

10 10 

11除了[包装器和 IDE 错误](#wrapper-and-ide-errors)(由启动程序打印而不是 Claude Code 本身打印)外,这些错误和恢复命令适用于 CLI、[桌面应用](/docs/zh-CN/desktop)和[云会话](/docs/zh-CN/claude-code-on-the-web),因为这三个都包装相同的 Claude Code CLI。对于其他表面特定的问题,请参阅该表面页面上的故障排除部分。11除了[包装器和 IDE 错误](#wrapper-and-ide-errors)(由启动程序打印而不是 Claude Code 本身打印)外,这些错误和恢复命令适用于 CLI、[桌面应用](/docs/zh-CN/desktop)和[云端会话](/docs/zh-CN/claude-code-on-the-web),因为这三个都包装相同的 Claude Code CLI。对于其他特定于使用入口的问题,请参阅该使用入口页面上的故障排除部分。

12 12 

13<Note>13<Note>

14 Claude Code 调用 Claude API 来获取模型响应,因此大多数运行时错误映射到底层 API 错误代码。本页介绍每个错误在 Claude Code 中的含义以及如何恢复。有关原始 HTTP 状态代码定义,请参阅 [Claude Platform 错误参考](https://platform.claude.com/docs/en/api/errors)。14 Claude Code 调用 Claude API 来获取模型响应,因此大多数运行时错误映射到底层 API 错误代码。本页介绍每个错误在 Claude Code 中的含义以及如何恢复。有关原始 HTTP 状态代码定义,请参阅 [Claude Platform 错误参考](https://platform.claude.com/docs/en/api/errors)。


186| `The connection dropped while downloading the update` | [安装错误](#the-connection-dropped-while-downloading-the-update) |186| `The connection dropped while downloading the update` | [安装错误](#the-connection-dropped-while-downloading-the-update) |

187| `Download timed out: exceeded the total deadline` | [安装错误](#the-connection-dropped-while-downloading-the-update) |187| `Download timed out: exceeded the total deadline` | [安装错误](#the-connection-dropped-while-downloading-the-update) |

188| `--bg and --print conflict` | [命令行错误](#conflict-between-bg-and-print) |188| `--bg and --print conflict` | [命令行错误](#conflict-between-bg-and-print) |

189| `Error: Cannot use both --append-subagent-system-prompt and --append-subagent-system-prompt-file. Please use only one.` | [命令行错误](#conflict-between-a-system-prompt-flag-and-its-file-form) |

189| `Cloud sessions cannot be created from a --restricted session` | [命令行错误](#cloud-sessions-cannot-be-created-from-a-restricted-session) |190| `Cloud sessions cannot be created from a --restricted session` | [命令行错误](#cloud-sessions-cannot-be-created-from-a-restricted-session) |

190| `Cloud sessions are disabled by your organization's policy` | [命令行错误](#cloud-sessions-are-disabled-by-your-organizations-policy) |191| `Cloud sessions are disabled by your organization's policy` | [命令行错误](#cloud-sessions-are-disabled-by-your-organizations-policy) |

191| `Couldn't verify your organization's policy for cloud sessions` | [命令行错误](#cloud-sessions-are-disabled-by-your-organizations-policy) |192| `Couldn't verify your organization's policy for cloud sessions` | [命令行错误](#cloud-sessions-are-disabled-by-your-organizations-policy) |


250| `Monitor "<name>" from plugin <plugin> references ${user_config.*} in its command` | [Plugin 错误](#plugin-command-references-user-config) |251| `Monitor "<name>" from plugin <plugin> references ${user_config.*} in its command` | [Plugin 错误](#plugin-command-references-user-config) |

251| `headersHelper for MCP server '<name>' references ${user_config.*}` | [Plugin 错误](#plugin-command-references-user-config) |252| `headersHelper for MCP server '<name>' references ${user_config.*}` | [Plugin 错误](#plugin-command-references-user-config) |

252| `Plugin archive integrity check failed` | [Plugin 错误](#plugin-archive-integrity-check-failed) |253| `Plugin archive integrity check failed` | [Plugin 错误](#plugin-archive-integrity-check-failed) |

254| `An npm plugin source must name a registry package` | [Plugin 故障排除](/docs/zh-CN/plugins/troubleshooting#an-npm-plugin-source-must-name-a-registry-package) |

253| `path escapes plugin directory` | [Plugin 错误](#path-escapes-plugin-directory) |255| `path escapes plugin directory` | [Plugin 错误](#path-escapes-plugin-directory) |

254| `path could not be checked` | [Plugin 错误](#path-could-not-be-checked) |256| `path could not be checked` | [Plugin 错误](#path-could-not-be-checked) |

255| `its marketplace entry path does not stay inside the marketplace directory` | [Plugin 错误](#marketplace-entry-path-does-not-stay-inside-the-marketplace-directory) |257| `its marketplace entry path does not stay inside the marketplace directory` | [Plugin 错误](#marketplace-entry-path-does-not-stay-inside-the-marketplace-directory) |


418 服务器错误420 服务器错误

419</h2>421</h2>

420 422 

421这些错误中的大多数来自推理提供商:Anthropic API 上的 Anthropic 服务,以及 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 或自定义网关上该提供商端点后面的服务。[Auto mode 无法确定操作的安全性](#auto-mode-cannot-determine-the-safety-of-an-action)和[Agent 因 API 错误而提前终止](#agent-terminated-early-due-to-an-api-error)也涵盖了您这一方的原因,例如无法调用分类器模型的 Amazon Bedrock 账户或达到使用限制的子代理。423这些错误中的大多数来自推理提供商:Anthropic API 上的 Anthropic 服务,以及 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 或自定义网关上该提供商端点后面的服务。[自动模式无法确定操作的安全性](#auto-mode-cannot-determine-the-safety-of-an-action)和[Agent 因 API 错误而提前终止](#agent-terminated-early-due-to-an-api-error)也涵盖了您这一方的原因,例如无法调用分类器模型的 Amazon Bedrock 账户或达到用量限制的子代理。

422 424 

423<h3 id="api-error-500-internal-server-error">425<h3 id="api-error-500-internal-server-error">

424 API Error: 500 Internal server error426 API Error: 500 Internal server error


432 434 

433尾部句子指出了检查服务健康状况的位置,因提供商而异。Amazon Bedrock、Google Cloud 的 Agent Platform 和 Microsoft Foundry 配置会指出该提供商的服务状态。自定义 `ANTHROPIC_BASE_URL` 会指出网关主机。435尾部句子指出了检查服务健康状况的位置,因提供商而异。Amazon Bedrock、Google Cloud 的 Agent Platform 和 Microsoft Foundry 配置会指出该提供商的服务状态。自定义 `ANTHROPIC_BASE_URL` 会指出网关主机。

434 436 

435API 本身的 5xx 表示 API 内部出现了意外故障。它不是由您的提示、设置或账户引起的。437API 本身的 5xx 表示 API 内部出现了意外故障。它不是由您的提示词、设置或账户引起的。

436 438 

437当代理、负载均衡器或网关用 HTML 错误页面回复时,消息显示状态代码和页面的标题,例如 `API Error: 502 Bad Gateway`。对于没有标题的页面,消息显示状态代码及其标准名称。在 v2.1.281 之前,当页面有标题时状态代码被丢弃,当页面没有标题时打印页面的原始标记。439当代理、负载均衡器或网关用 HTML 错误页面回复时,消息显示状态代码和页面的标题,例如 `API Error: 502 Bad Gateway`。对于没有标题的页面,消息显示状态代码及其标准名称。在 v2.1.281 之前,当页面有标题时状态代码被丢弃,当页面没有标题时打印页面的原始标记。

438 440 

439**应该做什么:**441**应该做什么:**

440 442 

441* 检查 [status.claude.com](https://status.claude.com) 或消息中指出的提供商状态页面,查看是否有活跃事件443* 检查 [status.claude.com](https://status.claude.com) 或消息中指出的提供商状态页面,查看是否有活跃事件

442* 等待一分钟,然后再次发送您的消息。您的原始消息仍在对话中,因此对于较长的提示,您可以输入 `try again` 而不是粘贴整个内容。444* 等待一分钟,然后再次发送您的消息。您的原始消息仍在对话中,因此对于较长的提示词,您可以输入 `try again` 而不是粘贴整个内容。

443* 如果错误持续存在且没有发布事件,请运行 `/feedback` 以便 Anthropic 可以使用您的请求详情进行调查。如果您的环境中 `/feedback` 不可用,请参阅[报告错误](#report-an-error)。445* 如果错误持续存在且没有发布事件,请运行 `/feedback` 以便 Anthropic 可以使用您的请求详情进行调查。如果您的环境中 `/feedback` 不可用,请参阅[报告错误](#report-an-error)。

444 446 

445<h3 id="api-error-repeated-529-overloaded-errors">447<h3 id="api-error-repeated-529-overloaded-errors">


454 456 

455尾部句子因提供商而异,方式与上面的 500 错误相同。457尾部句子因提供商而异,方式与上面的 500 错误相同。

456 458 

457529 不是您的使用限制,也不会计入您的配额。459529 不是您的用量限制,也不会计入您的配额。

458 460 

459**应该做什么:**461**应该做什么:**

460 462 


474Request timed out476Request timed out

475```477```

476 478 

477这可能在高负载期间或模型生成非常大的响应时发生。默认请求超时为 10 分钟。479这可能在高负载期间或模型生成非常大的响应时发生。默认请求超时时间为 10 分钟。

478 480 

479**应该做什么:**481**应该做什么:**

480 482 


486 No response from API488 No response from API

487</h3>489</h3>

488 490 

489Claude Code 发送了流式请求,API 在第一个字节的截止时间内没有返回响应头,因此 Claude Code 中止了请求,而不是等待完整的 `API_TIMEOUT_MS` 请求超时(默认为 10 分钟)。Claude Code 最多再发送一次请求,如果[重试预算](#tune-retry-behavior)允许的话。当重试也没有得到回复时,该轮次以此消息结束,该消息显示每次尝试等待了多长时间。当您设置 [`CLAUDE_CODE_RETRY_WATCHDOG`](/docs/zh-CN/env-vars) 时,一次重试的上限不适用,Claude Code 在[调整重试行为](#tune-retry-behavior)中描述的预算下重试。491Claude Code 发送了流式请求,API 在第一个字节的截止时间内没有返回响应头,因此 Claude Code 中止了请求,而不是等待完整的 `API_TIMEOUT_MS` 请求超时时间(默认为 10 分钟)。Claude Code 最多再发送一次请求,如果[重试预算](#tune-retry-behavior)允许的话。当重试也没有得到回复时,该轮次以此消息结束,该消息显示每次尝试等待了多长时间。当您设置 [`CLAUDE_CODE_RETRY_WATCHDOG`](/docs/zh-CN/env-vars) 时,一次重试的上限不适用,Claude Code 在[调整重试行为](#tune-retry-behavior)中描述的预算下重试。

490 492 

491```text theme={null}493```text theme={null}

492API Error: No response from API (waited 3m, then 10m on the retry). If a proxy or gateway on your network holds responses until they complete, raise API_TIMEOUT_MS or CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS to wait longer.494API Error: No response from API (waited 3m, then 10m on the retry). If a proxy or gateway on your network holds responses until they complete, raise API_TIMEOUT_MS or CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS to wait longer.


494 496 

495Claude Code 分别为第一次尝试的等待响应头和重试的等待设置:497Claude Code 分别为第一次尝试的等待响应头和重试的等待设置:

496 498 

497* **第一次尝试**:当您将其设置为 1 或更多时使用 [`CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS`](/docs/zh-CN/env-vars),限制在 10 秒到 30 分钟之间。否则 Claude Code 使用[流式空闲监视程序](/docs/zh-CN/network-config#streaming-idle-watchdogs)中列出的字节级监视程序超时,因此改变该超时的变量也会改变此等待。无论哪种方式,Claude Code 为请求体的每 32KB 添加一秒。499* **第一次尝试**:当您将其设置为 1 或更多时使用 [`CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS`](/docs/zh-CN/env-vars),限制在 10 秒到 30 分钟之间。否则 Claude Code 使用[流式空闲监视程序](/docs/zh-CN/network-config#streaming-idle-watchdogs)中列出的字节级监视程序超时时间,因此改变该超时时间的变量也会改变此等待。无论哪种方式,Claude Code 为请求体的每 32KB 添加一秒。

498* **重试**:比 `API_TIMEOUT_MS` 少一秒,默认略低于 10 分钟,以便重试可以超过保持响应直到生成完成的代理或网关。在 Amazon Bedrock 上,重试使用与第一次尝试相同的截止时间,消息显示一个持续时间而不是两个。500* **重试**:比 `API_TIMEOUT_MS` 少一秒,默认略低于 10 分钟,以便重试可以超过保持响应直到生成完成的代理或网关。在 Amazon Bedrock 上,重试使用与第一次尝试相同的截止时间,消息显示一个持续时间而不是两个。

499 501 

500两个等待都不超过正 `API_TIMEOUT_MS` 少一秒,正 `API_TIMEOUT_MS` 低于 11 秒会关闭截止时间。字节级监视程序仅在响应头到达后才开始,因此在此之后停止发送字节的响应遵循[停滞流规则](#automatic-retries)而不是此截止时间。502两个等待都不超过正 `API_TIMEOUT_MS` 少一秒,正 `API_TIMEOUT_MS` 低于 11 秒会关闭截止时间。字节级监视程序仅在响应头到达后才开始,因此在此之后停止发送字节的响应遵循[停滞流规则](#automatic-retries)而不是此截止时间。

501 503 

502**应该做什么:**504**应该做什么:**

503 505 

504* 再次发送您的消息。您的原始消息仍在对话中,因此对于较长的提示,您可以输入 `try again` 而不是粘贴整个内容。506* 再次发送您的消息。您的原始消息仍在对话中,因此对于较长的提示词,您可以输入 `try again` 而不是粘贴整个内容。

505* 如果重复出现,将其视为[网络或代理问题](#unable-to-connect-to-api)。507* 如果重复出现,将其视为[网络或代理问题](#unable-to-connect-to-api)。

506* 如果您网络上的代理或网关保持响应直到完成,请提高 `API_TIMEOUT_MS` 以便重试等待更长时间。在 Amazon Bedrock 上,也提高 `CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS`。508* 如果您网络上的代理或网关保持响应直到完成,请提高 `API_TIMEOUT_MS` 以便重试等待更长时间。在 Amazon Bedrock 上,也提高 `CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS`。

507* 如果第一次尝试持续超时,然后重试成功,请提高 `CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS` 以便第一次尝试也等待足够长的时间。509* 如果第一次尝试持续超时,然后重试成功,请提高 `CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS` 以便第一次尝试也等待足够长的时间。

508 510 

509在 v2.1.242 之前,Claude Code 在未回复的流式请求失败之前等待完整的 `API_TIMEOUT_MS` 请求超时(默认为 10 分钟)。在 v2.1.261 之前,重试等待与第一次尝试相同的截止时间,消息没有显示持续时间。511在 v2.1.242 之前,Claude Code 在未回复的流式请求失败之前等待完整的 `API_TIMEOUT_MS` 请求超时时间(默认为 10 分钟)。在 v2.1.261 之前,重试等待与第一次尝试相同的截止时间,消息没有显示持续时间。

510 512 

511<h3 id="the-response-above-may-be-incomplete">513<h3 id="the-response-above-may-be-incomplete">

512 The response above may be incomplete514 The response above may be incomplete


527* `Connection lost mid-response`:连接断开。您也会在代理或网关在响应完成之前干净地结束响应体时看到此变体。529* `Connection lost mid-response`:连接断开。您也会在代理或网关在响应完成之前干净地结束响应体时看到此变体。

528* `Your computer went to sleep mid-response`:Claude Code 检测到您的计算机在响应流式传输时进入睡眠状态。一旦您的计算机唤醒,Claude Code 会将连接视为断开并停止从中读取。530* `Your computer went to sleep mid-response`:Claude Code 检测到您的计算机在响应流式传输时进入睡眠状态。一旦您的计算机唤醒,Claude Code 会将连接视为断开并停止从中读取。

529* `Part of the response never arrived`:流事件在 API 和 Claude Code 之间被丢弃,因此后来的事件引用了从未到达的内容。在 v2.1.281 之前,此情况以 `API Error: Content block not found` 结束轮次。531* `Part of the response never arrived`:流事件在 API 和 Claude Code 之间被丢弃,因此后来的事件引用了从未到达的内容。在 v2.1.281 之前,此情况以 `API Error: Content block not found` 结束轮次。

530* `The response stream was malformed`:为已完成的内容块到达了事件,或事件到达时已损坏。损坏的事件是指其数据不是有效 JSON、其内容缺失或其内容与事件类型不匹配的事件。在 v2.1.284 之前,当具有无效 JSON 的事件在 Claude 完成其思考、文本块或工具调用后到达时,解析器的原始错误(例如以 `API Error: JSON Parse error` 开头的错误)出现。532* `The response stream was malformed`:为已完成的内容块到达了事件,或事件到达时已损坏。损坏的事件是指其数据不是有效 JSON、其内容缺失或其内容与事件类型不匹配的事件。在 v2.1.284 之前,当具有无效 JSON 的事件在 Claude 完成其思考、文本块或工具调用后到达时,解析器的原始错误(例如以 `API Error: JSON Parse error` 开头的错误)出现。在 v2.1.287 之前,当 [Amazon Bedrock guardrail](/docs/zh-CN/amazon-bedrock#aws-guardrails) 阻止了已经流式输出思考和部分文本的响应时,出现的是此变体,而不是 guardrail 的消息。

531* `The response stopped arriving`:连接保持打开但停止传递数据,因此流式空闲监视程序中止了它。在 v2.1.222 之前,Claude Code 也可能在通过 `ANTHROPIC_BASE_URL` 或 `ANTHROPIC_AWS_BASE_URL` 到达的[网关](/docs/zh-CN/gateways)连接上报告此故障,同时服务器的保活 ping 仍在到达,因为它只在那里计算已解析的响应事件;升级会停止这些虚假超时。通过提供商基础 URL(如 `ANTHROPIC_BEDROCK_BASE_URL`)到达的网关不被字节监视程序包装;请参阅[流式空闲监视程序](/docs/zh-CN/network-config#streaming-idle-watchdogs)。533* `The response stopped arriving`:连接保持打开但停止传递数据,因此流式空闲监视程序中止了它。在 v2.1.222 之前,Claude Code 也可能在通过 `ANTHROPIC_BASE_URL` 或 `ANTHROPIC_AWS_BASE_URL` 到达的[网关](/docs/zh-CN/gateways)连接上报告此故障,同时服务器的保活 ping 仍在到达,因为它只在那里计算已解析的响应事件;升级会在这些路由上停止这些虚假超时。通过提供商基础 URL(如 `ANTHROPIC_BEDROCK_BASE_URL`)到达的网关不被字节监视程序包装;请参阅[流式空闲监视程序](/docs/zh-CN/network-config#streaming-idle-watchdogs)。

532 534 

533在 v2.1.227 之前,`Connection lost mid-response` 读作 `Connection closed mid-response`,`The response stopped arriving` 读作 `Response stalled mid-stream`。535在 v2.1.227 之前,`Connection lost mid-response` 读作 `Connection closed mid-response`,`The response stopped arriving` 读作 `Response stalled mid-stream`。

534 536 


541 543 

542* 在响应的早期,Claude Code 要么重试故障,要么以不同的错误结束轮次。请参阅[自动重试](#automatic-retries)。544* 在响应的早期,Claude Code 要么重试故障,要么以不同的错误结束轮次。请参阅[自动重试](#automatic-retries)。

543* 当这些故障之一在 Claude 完成响应后到达时,Claude Code 保留完整响应并正常结束轮次,没有此通知。在 v2.1.222 之前,当连接在响应完成后断开或停滞时,Claude Code 显示此通知,并将轮次报告为错误,即使响应是完整的。545* 当这些故障之一在 Claude 完成响应后到达时,Claude Code 保留完整响应并正常结束轮次,没有此通知。在 v2.1.222 之前,当连接在响应完成后断开或停滞时,Claude Code 显示此通知,并将轮次报告为错误,即使响应是完整的。

544* 在[非交互式会话](/docs/zh-CN/headless)中,例如 `-p` 运行、[Agent SDK](/docs/zh-CN/agent-sdk/overview) 运行或[云会话](/docs/zh-CN/claude-code-on-the-web),当截断响应在主对话中且包含文本但没有工具调用时,您不必自己发送 `continue`:Claude Code 保留部分输出并提示 Claude 从停止的地方继续,最多连续三次。您只有在 Claude Code 用完这些继续后才会看到此通知。在 v2.1.246 之前,Claude Code 在第一次截断时以此通知结束非交互式轮次。546* 在[非交互式会话](/docs/zh-CN/headless)中,例如 `-p` 运行、[Agent SDK](/docs/zh-CN/agent-sdk/overview) 运行或[云端会话](/docs/zh-CN/claude-code-on-the-web),当截断响应在主对话中且包含文本但没有工具调用时,您不必自己发送 `continue`:Claude Code 保留部分输出并提示 Claude 从停止的地方继续,最多连续三次。您只有在 Claude Code 用完这些继续后才会看到此通知。在 v2.1.246 之前,Claude Code 在第一次截断时以此通知结束非交互式轮次。

545* 在[子代理](/docs/zh-CN/sub-agents#api-errors-in-subagents)中,无论会话是否交互式:当其截断响应包含文本但没有工具调用时,Claude Code 提示子代理继续。通知仅在这些继续用完后才成为子代理的最后一条消息。在 v2.1.257 之前,子代理在第一次截断时显示此通知。547* 在[子代理](/docs/zh-CN/sub-agents#api-errors-in-subagents)中,无论会话是否交互式:当其截断响应包含文本但没有工具调用时,Claude Code 提示子代理继续。通知仅在这些继续用完后才成为子代理的最后一条消息。在 v2.1.257 之前,子代理在第一次截断时显示此通知。

546 548 

547**应该做什么:**549**应该做什么:**

548 550 

549* 在交互式会话中,阅读屏幕上剩余的响应:Claude Code 保留 Claude 在错误前完成的每个块,但当轮次结束时丢弃中断的最后块,因此最后的句子或工具调用可能会丢失。回复 `continue` 以让 Claude 从其最后完成的块继续。551* 在交互式会话中,阅读屏幕上剩余的响应:Claude Code 保留 Claude 在错误前完成的每个块,但当轮次结束时丢弃中断的最后块,因此最后的句子或工具调用可能会丢失。回复 `continue` 以让 Claude 从其最后完成的块继续。

550* 在[非交互式模式](/docs/zh-CN/headless)(`-p`)中:552* 在[非交互模式](/docs/zh-CN/headless)(`-p`)中:

551 * 使用默认文本输出,Claude Code 打印它仍然从轮次早期保留的最后完成的文本块,然后是此消息。当它不保留任何内容时,Claude Code 仅打印此消息,例如因为 Claude Code 在轮次中间压缩了对话并清除了该文本。在 v2.1.219 之前,Claude Code 仅在 `-p` 文本输出中打印此消息并丢弃它已经生成的响应。553 * 使用默认文本输出,Claude Code 打印它仍然从轮次早期保留的最后完成的文本块,然后是此消息。当它不保留任何内容时,Claude Code 仅打印此消息,例如因为 Claude Code 在轮次中间压缩了对话并清除了该文本。在 v2.1.219 之前,Claude Code 仅在 `-p` 文本输出中打印此消息并丢弃它已经生成的响应。

552 * 使用 `--output-format json` 或 `stream-json`,Claude Code 在 `result` 字段中报告此消息。554 * 使用 `--output-format json` 或 `stream-json`,Claude Code 在 `result` 字段中报告此消息。

553 * 一旦连接稳定,要继续该轮次,请恢复会话并按照[继续对话](/docs/zh-CN/headless#continue-conversations)中的说明发送 `continue`。555 * 一旦连接稳定,要继续该轮次,请恢复会话并按照[继续对话](/docs/zh-CN/headless#continue-conversations)中的说明发送 `continue`。


556 Auto mode cannot determine the safety of an action558 Auto mode cannot determine the safety of an action

557</h3>559</h3>

558 560 

559[auto mode](/docs/zh-CN/permission-modes#eliminate-prompts-with-auto-mode) 使用的模型无法对操作进行分类,因此 auto mode 没有自动批准该操作。您看到的消息取决于分类器如何失败。561[自动模式](/docs/zh-CN/permission-modes#eliminate-prompts-with-auto-mode)使用的模型无法对操作进行分类,因此自动模式没有自动批准该操作。您看到的消息取决于分类器如何失败。

560 562 

561对工作目录内的读取、搜索和编辑会跳过分类器,因此它们在所有这些情况下都继续工作。563对工作目录内的读取、搜索和编辑会跳过分类器,因此它们在所有这些情况下都继续工作。

562 564 


572 574 

573**应该做什么:**575**应该做什么:**

574 576 

575* 几秒后重试;Claude 看到相同的消息,通常会自动重试。暂时故障与 [auto mode 资格](/docs/zh-CN/permission-modes#eliminate-prompts-with-auto-mode)无关;您不需要更改设置577* 几秒后重试;Claude 看到相同的消息,通常会自动重试。暂时故障与[自动模式资格](/docs/zh-CN/permission-modes#eliminate-prompts-with-auto-mode)无关;您不需要更改设置

576* 如果重试持续失败,继续进行只读任务,稍后回到被阻止的操作578* 如果重试持续失败,继续进行只读任务,稍后回到被阻止的操作

577* 在 Amazon Bedrock 上,如果消息在每次重试时返回,请检查您的账户是否可以调用它指出的模型:对于标准 Amazon Bedrock 模型,确认您的 [IAM 策略](/docs/zh-CN/amazon-bedrock#iam-configuration)允许调用它;对于 Mantle 模型 ID,[联系您的 AWS 账户团队](/docs/zh-CN/amazon-bedrock#mantle-endpoint-errors)579* 在 Amazon Bedrock 上,如果消息在每次重试时返回,请检查您的账户是否可以调用它指出的模型:对于标准 Amazon Bedrock 模型,确认您的 [IAM 策略](/docs/zh-CN/amazon-bedrock#iam-configuration)允许调用它;对于 Mantle 模型 ID,[联系您的 AWS 账户团队](/docs/zh-CN/amazon-bedrock#mantle-endpoint-errors)

578 580 

579当分类器请求失败是因为您的 OAuth 令牌过期或被另一个会话轮换时,Claude Code 刷新令牌并重试请求一次,因此例行令牌过期不会显示为此消息。在 v2.1.216 之前,过期或轮换的令牌会导致每个分类器请求失败,auto mode 会拒绝每个检查的操作,直到令牌被刷新。581当分类器请求失败是因为您的 OAuth 令牌过期或被另一个会话轮换时,Claude Code 刷新令牌并重试请求一次,因此常规的令牌过期不会显示为此消息。在 v2.1.216 之前,过期或轮换的令牌会导致每个分类器请求失败,自动模式会以此消息拒绝每个检查的操作,直到令牌被刷新。

580 582 

581当分类器返回无法解析的响应时:583当分类器返回无法解析的响应时:

582 584 


595Auto mode could not evaluate this action and is blocking it for safety — a safety check separate from auto mode blocked this request because of earlier conversation content — it isn't about the action itself — run with --debug for details597Auto mode could not evaluate this action and is blocking it for safety — a safety check separate from auto mode blocked this request because of earlier conversation content — it isn't about the action itself — run with --debug for details

596```598```

597 599 

598Claude Code 拒绝该操作,但告诉 Claude 这不是对该操作不安全的判断,并继续进行其他任务而不是重试。这些拒绝不计入 [auto mode 的暂停阈值](/docs/zh-CN/permission-modes#when-auto-mode-falls-back)。在[非交互式](/docs/zh-CN/headless) `-p` 运行中,Claude Code 不会停止运行。Claude 接收的内容取决于它请求操作的位置:600Claude Code 拒绝该操作,但告诉 Claude 这不是对该操作不安全的判断,并继续进行其他任务而不是重试。这些拒绝不计入[自动模式的暂停阈值](/docs/zh-CN/permission-modes#when-auto-mode-falls-back)。在[非交互式](/docs/zh-CN/headless) `-p` 运行中,Claude Code 不会停止运行。Claude 接收的内容取决于它请求操作的位置:

599 601 

600* 对于 `-p` 运行中没有 `--input-format stream-json` 的[后台子代理](/docs/zh-CN/sub-agents#run-subagents-in-foreground-or-background),Claude Code 返回包含 `Agent aborted: auto mode classifier request refused by the safety safeguard in headless mode` 的错误结果602* 对于 `-p` 运行中没有 `--input-format stream-json` 的[后台子代理](/docs/zh-CN/sub-agents#run-subagents-in-foreground-or-background),Claude Code 返回包含 `Agent aborted: auto mode classifier request refused by the safety safeguard in headless mode` 的错误结果

601* 在其他地方,包括交互式会话和 `-p` 运行的主对话,Claude Code 将该拒绝返回给 Claude603* 在其他地方,包括交互式会话和 `-p` 运行的主对话,Claude Code 将该拒绝返回给 Claude

602 604 

603在 v2.1.225 之前,Claude Code 将这些拒绝计入暂停阈值,并返回与真正分类器块相同的拒绝消息。605在 v2.1.225 之前,Claude Code 将这些拒绝计入暂停阈值,并返回与真正分类器阻止相同的拒绝消息。

604 606 

605**应该做什么:**607**应该做什么:**

606 608 

607* 这不是对您的操作的决定。您对话中已有的内容在 auto mode 将对话发送给分类器时触发了 API 上的安全过滤器609* 这不是对您的操作的决定。您对话中已有的内容在自动模式将对话发送给分类器时触发了 API 上的安全过滤器

608* 重试无法帮助;相同的对话内容将再次触发过滤器610* 重试无法帮助;相同的对话内容将再次触发过滤器

609* 在交互式会话中,切换到不同的[权限模式](/docs/zh-CN/permission-modes),以便您可以在提示时批准该操作611* 在交互式会话中,切换到不同的[权限模式](/docs/zh-CN/permission-modes),以便您可以在提示时批准该操作

610* 开始一个新对话,不包含触发内容612* 开始一个新对话,不包含触发内容


617 619 

618操作发生的情况取决于 Claude 请求它的位置:620操作发生的情况取决于 Claude 请求它的位置:

619 621 

620* 在交互式会话中,auto mode 回退到该操作的正常权限提示,以便您可以手动批准或拒绝它622* 在交互式会话中,自动模式回退到该操作的正常权限提示,以便您可以手动批准或拒绝它

621* 对于[非交互式](/docs/zh-CN/headless) `-p` 运行中没有 `--input-format stream-json` 的[后台子代理](/docs/zh-CN/sub-agents#run-subagents-in-foreground-or-background),Claude Code 返回包含 `Agent aborted: auto mode classifier transcript exceeded context window in headless mode` 的错误结果,运行继续623* 对于[非交互式](/docs/zh-CN/headless) `-p` 运行中没有 `--input-format stream-json` 的[后台子代理](/docs/zh-CN/sub-agents#run-subagents-in-foreground-or-background),Claude Code 返回包含 `Agent aborted: auto mode classifier transcript exceeded context window in headless mode` 的错误结果,运行继续

622* 在 `-p` 运行中的其他地方,没有 [`--permission-prompt-tool`](/docs/zh-CN/cli-reference#cli-flags),没有提示可以回退到,因此操作不运行,运行继续624* 在 `-p` 运行中的其他地方,没有 [`--permission-prompt-tool`](/docs/zh-CN/cli-reference#cli-flags),没有提示可以回退到,因此操作不运行,运行继续

623 625 


630 The server returned no safety verdict632 The server returned no safety verdict

631</h3>633</h3>

632 634 

633在[服务器端分类器审查](/docs/zh-CN/permission-modes#server-side-classifier-review)下,当服务器对操作没有给出判决时,auto mode 拒绝该操作。当 Claude Code 可以确定一个类别时,拒绝会在括号中指出一个类别,例如 `(timed out)`:635在[服务器端分类器审查](/docs/zh-CN/permission-modes#server-side-classifier-review)下,当服务器对操作没有给出判决时,自动模式拒绝该操作。当 Claude Code 可以确定一个类别时,拒绝会在括号中指出一个类别,例如 `(timed out)`:

634 636 

635```text theme={null}637```text theme={null}

636The server-side auto mode classifier gave no verdict (timed out), so auto mode cannot determine the safety of <tool>.638The server-side auto mode classifier gave no verdict (timed out), so auto mode cannot determine the safety of <tool>.


638 640 

639消息的其余部分告诉 Claude 一次重试是否可以帮助。在某些这些拒绝之前,Claude Code 会等待,以便 Claude 的下一次尝试不会立即跟随。在交互式会话中等待期间,微调器显示 `Auto mode check unavailable` 和倒计时,按 `Esc` 会中断轮次。641消息的其余部分告诉 Claude 一次重试是否可以帮助。在某些这些拒绝之前,Claude Code 会等待,以便 Claude 的下一次尝试不会立即跟随。在交互式会话中等待期间,微调器显示 `Auto mode check unavailable` 和倒计时,按 `Esc` 会中断轮次。

640 642 

641在连续十个响应都没有判决后,auto mode 停止轮次:643在连续十个响应都没有判决后,自动模式停止轮次:

642 644 

643```text theme={null}645```text theme={null}

644Auto mode is unavailable — the server returned no safety verdict for the last 10 responses, so Claude stopped. Send a message to try again, or switch out of auto mode.646Auto mode is unavailable — the server returned no safety verdict for the last 10 responses, so Claude stopped. Send a message to try again, or switch out of auto mode.


646 648 

647停止消息在每种会话中出现在不同的位置:649停止消息在每种会话中出现在不同的位置:

648 650 

649* 在交互式会话中,消息作为警告出现在记录中,轮次结束651* 在交互式会话中,消息作为警告出现在会话记录中,轮次结束

650* 在[非交互式](/docs/zh-CN/headless) `-p` 运行中,运行结束并报告执行错误。使用默认文本输出,消息在 stderr 上打印。652* 在[非交互式](/docs/zh-CN/headless) `-p` 运行中,运行结束并报告执行错误。使用默认文本输出,消息在 stderr 上打印。

651* 当[子代理](/docs/zh-CN/sub-agents)达到限制时,子代理在完成之前停止,Claude 接收它生成的任何内容,并附带 auto mode 停止它的说明653* 当[子代理](/docs/zh-CN/sub-agents)达到限制时,子代理在完成之前停止,Claude 接收它生成的任何内容,并附带自动模式停止它的说明

652 654 

653**应该做什么:**655**应该做什么:**

654 656 

655* 发送另一条消息以让 Claude 重试。响应计数重新开始。657* 发送另一条消息以让 Claude 重试。响应计数重新开始。

656* 如果停止重复且您的请求通过[LLM 网关或代理](/docs/zh-CN/llm-gateway),检查它是否截断流式响应或重写它们。[服务器端分类器审查](/docs/zh-CN/permission-modes#server-side-classifier-review)说明哪种网关行为会导致拒绝,[网关兼容性指南](/docs/zh-CN/llm-gateway-protocol#feature-pass-through)列出了要保持不变的内容。658* 如果停止重复且您的请求通过[LLM 网关或代理](/docs/zh-CN/llm-gateway),检查它是否截断流式响应或重写它们。[服务器端分类器审查](/docs/zh-CN/permission-modes#server-side-classifier-review)说明哪种网关行为会导致拒绝,[网关兼容性指南](/docs/zh-CN/llm-gateway-protocol#feature-pass-through)列出了要保持不变的内容。

657* 在启动 Claude Code 之前设置 `CLAUDE_CODE_AUTO_MODE_SERVER=0` 以改用其自己的分类器请求。在 v2.1.281 之前,Claude Code 在直接连接到 Anthropic API 时不读取该变量。659* 在启动 Claude Code 之前设置 `CLAUDE_CODE_AUTO_MODE_SERVER=0` 以改用其自己的分类器请求。在 v2.1.281 之前,Claude Code 在直接连接到 Anthropic API 时不读取该变量。

658* 要自己批准操作,请改为[切换出 auto mode](/docs/zh-CN/permission-modes#switch-permission-modes)660* 要自己批准操作,请改为[切换出自动模式](/docs/zh-CN/permission-modes#switch-permission-modes)

659 661 

660在 v2.1.280 之前,Claude Code 立即拒绝来自没有判决的响应的每个操作,从不停止轮次。662在 v2.1.280 之前,Claude Code 立即拒绝来自没有判决的响应的每个操作,从不停止轮次。

661 663 


663 Agent terminated early due to an API error665 Agent terminated early due to an API error

664</h3>666</h3>

665 667 

666[子代理](/docs/zh-CN/sub-agents)的 API 请求终止失败,例如因为达到了使用限制或服务器错误的重试用尽,因此子代理在完成其任务之前停止。此消息需要 Claude Code v2.1.199 或更高版本;在此之前,API 错误文本被返回给 Claude,就像它是子代理的结果一样。668[子代理](/docs/zh-CN/sub-agents)的 API 请求终止失败,例如因为达到了用量限制或服务器错误的重试用尽,因此子代理在完成其任务之前停止。此消息需要 Claude Code v2.1.199 或更高版本;在此之前,API 错误文本被返回给 Claude,就像它是子代理的结果一样。

667 669 

668```text theme={null}670```text theme={null}

669Agent terminated early due to an API error: <error detail>671Agent terminated early due to an API error: <error detail>


671 673 

672**应该做什么:**674**应该做什么:**

673 675 

674* 将冒号后的错误详情与此页面上的其自己的部分匹配,例如[使用限制](#usage-limits)或[服务器错误](#server-errors),并按照该部分的步骤操作676* 将冒号后的错误详情与此页面上的其自己的部分匹配,例如[用量限制](#usage-limits)或[服务器错误](#server-errors),并按照该部分的步骤操作

675* 一旦底层错误清除,请要求 Claude 重试任务或[恢复子代理](/docs/zh-CN/sub-agents#resume-subagents)677* 一旦底层错误清除,请要求 Claude 重试任务或[恢复子代理](/docs/zh-CN/sub-agents#resume-subagents)

676 678 

677当速率限制、过载或服务器错误中断已经生成文本输出的前台子代理时,Claude 接收该部分输出标记为不完整,而不是此错误。仅输出为工具调用的子代理也会收到此错误;在 v2.1.199 中,该形状返回了空的部分结果。请参阅[子代理中的 API 错误](/docs/zh-CN/sub-agents#api-errors-in-subagents)。679当速率限制、过载或服务器错误中断已经生成文本输出的前台子代理时,Claude 接收该部分输出标记为不完整,而不是此错误。仅输出为工具调用的子代理也会收到此错误;在 v2.1.199 中,该形状返回了空的部分结果。请参阅[子代理中的 API 错误](/docs/zh-CN/sub-agents#api-errors-in-subagents)。


885 身份验证错误887 身份验证错误

886</h2>888</h2>

887 889 

888这些错误意味着 Claude Code 无法向 API 证明您的身份。随时运行 `/status` 查看当前活跃的凭证。890这些错误表示 Claude Code 无法向 API 证明您的身份。随时运行 `/status` 可查看当前生效的是哪个凭据。

889 891 

890<h3 id="not-logged-in">892<h3 id="not-logged-in">

891 未登录893 未登录

892</h3>894</h3>

893 895 

894此会话没有可用的有效凭证。896此会话没有可用的有效凭据。

895 897 

896```text theme={null}898```text theme={null}

897Not logged in · Please run /login899Not logged in · Please run /login

898```900```

899 901 

900在 Claude Desktop 应用运行的会话中,例如 Code 标签页或 Cowork,消息读作 `Authentication required · Sign in again to continue`,您从应用中再次登录。902在由 Claude Desktop 应用运行的会话中(例如 Code 标签页或 Cowork),消息显示为 `Authentication required · Sign in again to continue`,您需要从应用中重新登录。

901 903 

902**应该做什么:**904如果您在另一个使用相同[配置目录](/docs/zh-CN/claude-directory)的 Claude Code 窗口中使用 claude.ai 账户登录,显示此消息的交互式会话会自动开始使用该登录,无需重启。

905 

906在 macOS 上的 v2.1.286 之前的版本中,您从另一个窗口登录后,会话可能仍持续显示此消息。在这些版本中,请重启显示该消息的会话。

903 907 

904* 运行 `/login` 以使用您的 Claude 订阅或 Console 账户进行身份验证908**解决方法:**

905* 如果您期望使用环境变量进行身份验证,请确认 `ANTHROPIC_API_KEY` 已在启动 `claude` 的 shell 中设置并导出

906* 对于无法进行交互式登录的 CI 或自动化,配置一个 [`apiKeyHelper`](/docs/zh-CN/settings-reference#apikeyhelper) 脚本,在启动时获取密钥

907* 查看 [身份验证优先级](/docs/zh-CN/authentication#authentication-precedence) 以了解当存在多个凭证时 Claude Code 使用哪个凭证

908 909 

909如果您被重复提示登录,请参阅 [未登录或令牌过期](/docs/zh-CN/troubleshoot-install#not-logged-in-or-token-expired) 了解系统时钟检查和 macOS 凭证存储恢复步骤。910* 运行 `/login`,使用您的 Claude 订阅或 Console 账户进行身份验证

911* 如果您期望通过环境变量进行身份验证,请确认在启动 `claude` 的 shell 中已设置并导出 `ANTHROPIC_API_KEY`

912* 对于无法进行交互式登录的 CI 或自动化场景,请配置一个在启动时获取密钥的 [`apiKeyHelper`](/docs/zh-CN/settings-reference#apikeyhelper) 脚本

913* 请参阅[身份验证优先级](/docs/zh-CN/authentication#authentication-precedence),了解存在多个凭据时 Claude Code 使用哪一个

914 

915如果系统反复提示您登录,请参阅[未登录或令牌已过期](/docs/zh-CN/troubleshoot-install#not-logged-in-or-token-expired),了解系统时钟检查以及 macOS 凭据存储的恢复步骤。

910 916 

911<h3 id="could-not-resolve-authentication-method">917<h3 id="could-not-resolve-authentication-method">

912 无法解析身份验证方法918 无法解析身份验证方法

913</h3>919</h3>

914 920 

915会话到达 API 客户端时没有任何凭证。[后台会话](/docs/zh-CN/agent-view) 和云会话在 worker 启动时没有凭证时显示此消息。交互式、`-p` 和 Agent SDK 运行报告与 [未登录](#not-logged-in) 相同的条件,并仅将此字符串写入其调试日志,因此如果您在那里找到它,请改为遵循该条目。921会话在没有任何凭据的情况下到达了 API 客户端。当 worker 在没有凭据的情况下启动时,[后台会话](/docs/zh-CN/agent-view)和云端会话会显示此消息。交互式、`-p` 和 Agent SDK 运行会将同样的情况报告为[未登录](#not-logged-in),并且只会将此字符串写入其调试日志;因此如果您是在调试日志中发现的,请改为按照该条目处理。

916 922 

917```text theme={null}923```text theme={null}

918Could not resolve authentication method. Expected one of apiKey, authToken, credentials, config, or profile to be set. Or for one of the "X-Api-Key" or "Authorization" headers to be explicitly omitted924Could not resolve authentication method. Expected one of apiKey, authToken, credentials, config, or profile to be set. Or for one of the "X-Api-Key" or "Authorization" headers to be explicitly omitted

919```925```

920 926 

921在当前版本上,该错误意味着 worker 进程没有可用的凭证。在 v2.1.174 之前,分配给空闲预初始化 worker 的后台会话即使配置了有效凭证也可能以这种方式失败。在 v2.1.176 之前,在被声明之前处于空闲状态的云会话也可能失败。升级以恢复。927在当前版本中,此错误表示 worker 进程没有可用的凭据。在 v2.1.174 之前,分配给空闲的预初始化 worker 的后台会话即使已配置有效凭据,也可能以这种方式失败。在 v2.1.176 之前,在被认领前处于空闲状态的云端会话也可能如此。升级即可恢复。

922 928 

923**应该做什么:**929**解决方法:**

924 930 

925* 如果这出现在后台或云会话中且您的凭证已配置,请升级到 v2.1.176 或更高版本931* 如果此错误出现在后台或云端会话中,且您的凭据已经配置好,请升级到 v2.1.176 或更高版本

926* 确认 `ANTHROPIC_API_KEY`、`CLAUDE_CODE_OAUTH_TOKEN` 或您的云提供商凭证已在启动 worker 的环境中设置,而不仅仅在您的交互式 shell 中932* 确认 `ANTHROPIC_API_KEY`、`CLAUDE_CODE_OAUTH_TOKEN` 或您的云服务提供商凭据设置在启动 worker 的环境中,而不仅仅是在您的交互式 shell 中

927* 对于 Agent SDK,请参阅 [快速入门中的身份验证设置](/docs/zh-CN/agent-sdk/quickstart#setup)933* 对于 Agent SDK,请参阅[快速入门中的身份验证设置](/docs/zh-CN/agent-sdk/quickstart#setup)

928* 在同一环境中的交互式会话中运行 `/status` 以确认哪个凭证源可解析934* 在同一环境的交互式会话中运行 `/status`,确认解析到的是哪个凭据来源

929 935 

930<h3 id="invalid-api-key">936<h3 id="invalid-api-key">

931 无效的 API 密钥937 API 密钥无效

932</h3>938</h3>

933 939 

934`ANTHROPIC_API_KEY` 环境变量或 `apiKeyHelper` 脚本返回了 API 拒绝的密钥,或 Claude Code 在发送前阻止了来自 `ANTHROPIC_API_KEY` 的密钥。940`ANTHROPIC_API_KEY` 环境变量或 `apiKeyHelper` 脚本返回了一个被 API 拒绝的密钥,或者 Claude Code 在发送之前拦截了来自 `ANTHROPIC_API_KEY` 的密钥。

935 941 

936```text theme={null}942```text theme={null}

937Invalid API key · Fix external API key943Invalid API key · Fix external API key

938```944```

939 945 

940当消息在 `Fix external API key` 之后继续,并带有描述如 `Invalid X-Api-Key header value from ANTHROPIC_API_KEY: it contains a line break at character 41 (120 characters on 2 lines).` 时,API 从未看到该密钥。Claude Code 发现了 HTTP 标头无法传输的字符,并在发送前停止了请求。请参阅 [无效的请求标头值](#invalid-request-header-value) 了解如何读取描述并修复该值。946当消息在 `Fix external API key` 之后还附带一段描述,例如 `Invalid X-Api-Key header value from ANTHROPIC_API_KEY: it contains a line break at character 41 (120 characters on 2 lines).` 时,说明 API 从未收到该密钥。Claude Code 发现了 HTTP 标头无法承载的字符,并在发送前停止了请求。请参阅[请求标头值无效](#invalid-request-header-value),了解如何理解该描述并修正该值。

941 947 

942**应该做什么:**948**解决方法:**

943 949 

944* 检查拼写错误并确认密钥未在 [Console](https://platform.claude.com/settings/keys) 中被撤销950* 检查是否有拼写错误,并在 [Console](https://platform.claude.com/settings/keys) 中确认该密钥未被撤销

945* 在同一 shell 中,运行 `env | grep ANTHROPIC`,或在 PowerShell 中运行 `Get-ChildItem Env:ANTHROPIC*`。direnv、dotenv shell 插件和 IDE 终端等工具可以从项目中的 `.env` 文件加载过时的密钥,而无需您显式设置它951* 在同一个 shell 中运行 `env | grep ANTHROPIC`,或在 PowerShell 中运行 `Get-ChildItem Env:ANTHROPIC*`。direnv、dotenv shell 插件和 IDE 终端等工具可能会从项目中的 `.env` 文件加载过期的密钥,而您并未显式设置它。

946* 取消设置 `ANTHROPIC_API_KEY` 并运行 `/login` 以改用订阅身份验证952* 取消设置 `ANTHROPIC_API_KEY` 并运行 `/login`,改用订阅身份验证

947* 如果密钥来自 [`apiKeyHelper`](/docs/zh-CN/settings-reference#apikeyhelper) 脚本,请直接运行该脚本以确认它在 stdout 上打印有效密钥953* 如果密钥来自 [`apiKeyHelper`](/docs/zh-CN/settings-reference#apikeyhelper) 脚本,请直接运行该脚本,确认它会在 stdout 上输出有效的密钥

948* 运行 `/status` 以确认 Claude Code 实际使用的凭证源954* 运行 `/status`,确认 Claude Code 实际使用的是哪个凭据来源

949 955 

950<h3 id="your-apikeyhelper-script-is-failing">956<h3 id="your-apikeyhelper-script-is-failing">

951 您的 apiKeyHelper 脚本失败957 您的 apiKeyHelper 脚本运行失败

952</h3>958</h3>

953 959 

954Claude Code 运行了您的 [`apiKeyHelper`](/docs/zh-CN/settings-reference#apikeyhelper) 设置中的命令,但没有获得密钥。没有密钥,请求会到达 API,并带有占位符凭证,API 会以 `401` 拒绝它。终端中的 `Authentication` 面板显示发生了以下哪种情况:960Claude Code 运行了您的 [`apiKeyHelper`](/docs/zh-CN/settings-reference#apikeyhelper) 设置中的命令,但没有获得密钥。没有密钥时,请求会带着一个占位凭据到达 API,API 会以 `401` 拒绝它。终端中的 `Authentication` 面板会显示发生的是以下哪种情况:

955 961 

956* 命令以错误退出或超时962* 命令以错误退出或超时

957* 命令未向 stdout 打印任何内容963* 命令没有向 stdout 输出任何内容

958* 命令打印了除密钥之外的内容,例如登录横幅或日志行。该面板显示 `returned output that cannot be used as an API key` 并说明了问题所在,而不重复输出。在 v2.1.227 之前,Claude Code 发送命令打印的任何内容,在修剪周围空格后。964* 命令输出了密钥以外的内容,例如登录横幅或日志行。面板会显示 `returned output that cannot be used as an API key` 并说明问题所在,但不会重复输出内容。在 v2.1.227 之前,Claude Code 会在去除首尾空白后发送命令输出的任何内容。

959 965 

960```text theme={null}966```text theme={null}

961Your apiKeyHelper script is failing · This usually means you need to re-authenticate with your provider · Run /status to see the script's error output967Your apiKeyHelper script is failing · This usually means you need to re-authenticate with your provider · Run /status to see the script's error output

962```968```

963 969 

964在 [非交互式模式](/docs/zh-CN/headless) 中,stderr 也带有具体原因,前缀为 `apiKeyHelper failed:`。970在[非交互模式](/docs/zh-CN/headless)下,stderr 也会输出具体原因,并以 `apiKeyHelper failed:` 为前缀。

965 971 

966Claude Code 重新运行脚本并在显示此消息之前最多重试请求两次,因此故障在三次尝试内出现。在 v2.1.208 之前,Claude Code 花费完整的 [重试预算](#automatic-retries) 使用占位符凭证重新发送请求,然后报告通用 `401` 身份验证错误而不是脚本故障。972Claude Code 会重新运行脚本并重试请求,最多再重试两次,然后才显示此消息,因此失败会在三次尝试内暴露出来。在 v2.1.208 之前,Claude Code 会用完全部[重试额度](#automatic-retries),使用占位凭据重复发送请求,然后报告一个通用的 `401` 身份验证错误,而不是脚本失败。

967 973 

968运行 `/login` 在这里没有帮助:只要设置存在,helper 的输出 [优先于](/docs/zh-CN/authentication#authentication-precedence) 保存的登录。974此时运行 `/login` 没有帮助:只要该设置存在,辅助脚本的输出就[优先于](/docs/zh-CN/authentication#authentication-precedence)已保存的登录。

969 975 

970**应该做什么:**976**解决方法:**

971 977 

972* 直接在您的 shell 中运行在 `apiKeyHelper` 中配置的命令以重现故障978* 在您的 shell 中直接运行 `apiKeyHelper` 中配置的命令,以重现该失败

973* 如果命令报告会话过期,请使用您的凭证提供商重新身份验证,例如再次登录您的 SSO 或密钥保管库979* 如果命令报告会话已过期,请重新向您的凭据提供商进行身份验证,例如重新登录您的 SSO 或密钥保管库

974* 修复命令,使其仅将密钥打印到 stdout,作为单个可打印 ASCII 令牌,最多 16,384 个字符,并以代码 0 退出。请参阅 [使用 apiKeyHelper 轮换凭证](/docs/zh-CN/llm-gateway-connect#rotate-credentials-with-apikeyhelper) 了解工作设置。980* 修正命令,使其仅向 stdout 输出密钥(一个由可打印 ASCII 字符组成、最长 16,384 个字符的单一令牌),并以退出码 0 退出。有关可用的配置,请参阅[使用 apiKeyHelper 轮换凭据](/docs/zh-CN/llm-gateway-connect#rotate-credentials-with-apikeyhelper)。

975* 运行 `/status` 查看故障并确认 `apiKeyHelper` 是活跃凭证源。`apiKeyHelper` 行显示 `Failing` 以及最后一次故障的详细信息,例如退出代码和命令的错误输出,并在下一次成功运行后消失。在 v2.1.274 之前,`/status` 仅显示凭证源,而不是故障。981* 运行 `/status` 查看失败情况,并确认 `apiKeyHelper` 是当前生效的凭据来源。`apiKeyHelper` 行会显示 `Failing` 以及上一次失败的详细信息(例如退出码和命令的错误输出),并在下一次成功运行后消失。在 v2.1.274 之前,`/status` 只显示凭据来源,不显示失败情况。

976* 每次命令失败时,其退出代码和错误输出也会出现在终端中的 `Authentication` 面板中。在 v2.1.212 之前,该面板的标题为 `Cloud authentication`。982* 每次命令失败时,其退出码和错误输出也会出现在终端的 `Authentication` 面板中。在 v2.1.212 之前,该面板的标题为 `Cloud authentication`。

977 983 

978<h3 id="invalid-request-header-value">984<h3 id="invalid-request-header-value">

979 无效的请求标头值985 请求标头值无效

980</h3>986</h3>

981 987 

982Claude Code 即将作为请求标头发送的值包含 HTTP 标头无法传输的字符:换行符、NUL 字节或 `U+00FF` 以上的字符,例如弯引号或零宽空格。Claude Code 在发送任何内容之前停止请求,并命名要修复的变量或设置。通常的原因是从文档或聊天粘贴的凭证,其中包含不可见字符或杂散换行符。988Claude Code 即将作为请求标头发送的某个值包含 HTTP 标头无法承载的字符:换行符、NUL 字节,或高于 `U+00FF` 的字符(例如弯引号或零宽空格)。Claude Code 会在发送任何内容之前停止请求,并指出需要修正的变量或设置。常见原因是从文档或聊天中粘贴的凭据带有不可见字符或多余的换行符。

983 989 

984Claude Code 在直接向 Claude API 或通过 [LLM 网关](/docs/zh-CN/llm-gateway) 发送请求时运行此检查。在第三方云提供商(如 [Amazon Bedrock](/docs/zh-CN/amazon-bedrock))上,Claude Code 在发送前不运行它。990当 Claude Code 直接或通过 [LLM 网关](/docs/zh-CN/llm-gateway)向 Claude API 发送请求时,会运行此检查。在 [Amazon Bedrock](/docs/zh-CN/amazon-bedrock) 等第三方云服务提供商上,Claude Code 在发送前不会运行此检查。

985 991 

986```text theme={null}992```text theme={null}

987Invalid auth token · Fix external auth token993Invalid auth token · Fix external auth token


989Invalid request header from the environment · Fix the environment variable995Invalid request header from the environment · Fix the environment variable

990```996```

991 997 

992消息的第一部分取决于坏值来自何处:998消息的第一部分取决于错误值的来源:

993 999 

994* `Invalid auth token`:来自 [`ANTHROPIC_AUTH_TOKEN`](/docs/zh-CN/env-vars) 或 [`CLAUDE_CODE_OAUTH_TOKEN`](/docs/zh-CN/env-vars) 的持有者令牌1000* `Invalid auth token`:来自 [`ANTHROPIC_AUTH_TOKEN`](/docs/zh-CN/env-vars) 或 [`CLAUDE_CODE_OAUTH_TOKEN`](/docs/zh-CN/env-vars) 的 bearer 令牌

995* `Invalid ANTHROPIC_CUSTOM_HEADERS`:您在 [`ANTHROPIC_CUSTOM_HEADERS`](/docs/zh-CN/env-vars) 中设置的标头名称或值。描述计算哪个 `Name: Value` 对有问题,例如 `distinct header 2 of 3 parsed from ANTHROPIC_CUSTOM_HEADERS`,而不重复名称或值,因为您选择了两者。1001* `Invalid ANTHROPIC_CUSTOM_HEADERS`:您在 [`ANTHROPIC_CUSTOM_HEADERS`](/docs/zh-CN/env-vars) 中设置的标头名称或值。描述会指出是第几个 `Name: Value` 对出了问题,例如 `distinct header 2 of 3 parsed from ANTHROPIC_CUSTOM_HEADERS`,但不会重复名称或值,因为两者都是您自己选择的。

996* `Invalid request header from the environment`:Claude Code 从另一个环境变量(如 `CLAUDE_AGENT_SDK_CLIENT_APP`)复制到请求标头中的值。描述命名要修复的变量。1002* `Invalid request header from the environment`:Claude Code 从另一个环境变量(例如 `CLAUDE_AGENT_SDK_CLIENT_APP`)复制到请求标头中的值。描述会指出需要修正的变量。

997 1003 

998Claude Code 将此检查捕获的坏 `ANTHROPIC_API_KEY` 报告为 [无效的 API 密钥](#invalid-api-key),具有相同的尾部描述。它将坏的保存 `/login` 凭证报告为 [未登录](#not-logged-in);运行 `/login` 以保存新凭证。[`apiKeyHelper`](/docs/zh-CN/settings-reference#apikeyhelper) 脚本的输出永远不会到达此检查:Claude Code 在脚本运行时验证它,并且输出 HTTP 标头无法传输的失败会导致 [您的 apiKeyHelper 脚本失败](#your-apikeyhelper-script-is-failing)。1004Claude Code 会将此检查捕获到的错误 `ANTHROPIC_API_KEY` 报告为 [API 密钥无效](#invalid-api-key),并附带相同的尾部描述。对于已保存的错误 `/login` 凭据,则会报告为[未登录](#not-logged-in);请运行 `/login` 保存新的凭据。[`apiKeyHelper`](/docs/zh-CN/settings-reference#apikeyhelper) 脚本的输出永远不会经过此检查:Claude Code 会在脚本运行时对其进行验证,HTTP 标头无法承载的输出会以[您的 apiKeyHelper 脚本运行失败](#your-apikeyhelper-script-is-failing)报错。

999 1005 

1000在第二个 `·` 之后,消息描述问题,如以下完整示例:1006在第二个 `·` 之后,消息会描述问题,如以下完整示例所示:

1001 1007 

1002```text theme={null}1008```text theme={null}

1003Invalid auth token · Fix external auth token · Invalid Authorization header value from ANTHROPIC_AUTH_TOKEN: it contains a line break at character 41 (120 characters on 2 lines).1009Invalid auth token · Fix external auth token · Invalid Authorization header value from ANTHROPIC_AUTH_TOKEN: it contains a line break at character 41 (120 characters on 2 lines).

1004```1010```

1005 1011 

1006位置从 1 开始计算字符。描述由固定短语和字符计数构建,因此它永远不包括值本身。它仅在字符是众所周知的不可见或排版字符(如字节顺序标记、零宽空格或弯引号)时命名该字符,并将其他任何内容报告为 `a non-ASCII character`。1012位置从 1 开始按字符计数。描述由固定短语和字符计数构成,因此绝不会包含值本身。只有当问题字符是众所周知的不可见字符或排版字符(例如字节顺序标记、零宽空格或弯引号)时,描述才会指出具体字符,其他字符一律报告为 `a non-ASCII character`。

1007 1013 

1008**应该做什么:**1014**解决方法:**

1009 1015 

1010* 重新设置消息命名的变量或设置,重新输入报告位置周围的字符,而不是从同一来源再次粘贴1016* 重新设置消息中指出的变量或设置,手动重新输入所报告位置附近的字符,而不是再次从同一来源粘贴

1011* 对于 `ANTHROPIC_CUSTOM_HEADERS`,每行保留一个 `Name: Value` 对,并重写消息计数的对1017* 对于 `ANTHROPIC_CUSTOM_HEADERS`,每行保留一个 `Name: Value` 对,并重写消息所指出的那一对

1012* 运行 `/status` 以确认哪个凭证源处于活跃状态1018* 运行 `/status`,确认当前生效的凭据来源

1013 1019 

1014<h3 id="this-organization-has-been-disabled">1020<h3 id="this-organization-has-been-disabled">

1015 此组织已被禁用1021 此组织已被停用

1016</h3>1022</h3>

1017 1023 

1018Claude Code 正在使用来自已禁用 Console 组织的过时 `ANTHROPIC_API_KEY`。当您有保存的订阅登录时,密钥会覆盖它。1024Claude Code 正在使用来自已停用 Console 组织的过期 `ANTHROPIC_API_KEY`。当您有已保存的订阅登录时,该密钥会覆盖它。

1019 1025 

1020```text theme={null}1026```text theme={null}

1021Your ANTHROPIC_API_KEY belongs to a disabled organization · Unset the environment variable to use your subscription instead1027Your ANTHROPIC_API_KEY belongs to a disabled organization · Unset the environment variable to use your subscription instead


1023API Error: 400 ... This organization has been disabled.1029API Error: 400 ... This organization has been disabled.

1024```1030```

1025 1031 

1026`·` 之后的提示取决于您保存的凭证:当存储的 `/login` 可以在您取消设置密钥后接管时出现第一种形式,当密钥是您唯一的凭证时出现第二种形式。1032`·` 之后的提示取决于您已保存的凭据:当取消设置密钥后已存储的 `/login` 可以接管时,会出现第一种形式;当该密钥是您唯一的凭据时,会出现第二种形式。

1027 1033 

1028环境变量优先于 `/login`,因此在您的 shell 配置文件中导出或从 `.env` 文件加载的密钥即使您有有效的 Pro 或 Max 订阅也会被使用。在非交互式模式 (`-p`) 中,当存在密钥时始终使用该密钥。1034环境变量优先于 `/login`,因此即使您拥有可用的 Pro 或 Max 订阅,在 shell 配置文件中导出或从 `.env` 文件加载的密钥仍会被使用。在非交互模式(`-p`)下,只要存在该密钥就总会使用它。

1029 1035 

1030**应该做什么:**1036**解决方法:**

1031 1037 

1032* 在当前 shell 中取消设置 `ANTHROPIC_API_KEY` 并从您的 shell 配置文件中删除它,然后重新启动 `claude`1038* 在当前 shell 中取消设置 `ANTHROPIC_API_KEY`,并将其从 shell 配置文件中删除,然后重新启动 `claude`

1033* 如果消息说 `Update or unset`,您没有保存的登录可以回退。取消设置密钥并运行 `/login`,或将密钥替换为来自活跃 Console 组织的密钥。1039* 如果消息显示 `Update or unset`,说明您没有可回退使用的已保存登录。请取消设置该密钥并运行 `/login`,或将其替换为来自有效 Console 组织的密钥。

1034* 之后运行 `/status` 以确认活跃凭证是您的订阅1040* 之后运行 `/status`,确认当前生效的凭据是您的订阅

1035* 如果未设置环境变量且错误仍然存在,请联系支持或使用不同账户登录。1041* 如果没有设置任何环境变量但错误仍然存在,请联系支持团队或使用其他账户登录。

1036 1042 

1037<h3 id="your-organization-has-disabled-api-key-authentication">1043<h3 id="your-organization-has-disabled-api-key-authentication">

1038 您的组织已禁用 API 密钥身份验证1044 您的组织已禁用 API 密钥身份验证

1039</h3>1045</h3>

1040 1046 

1041此消息需要 Claude Code v2.1.169 或更高版本。您的 Console 组织的管理员已关闭 API 密钥身份验证,因此 API 拒绝 Claude Code 正在发送的密钥。`·` 之后的恢复提示因密钥来自何处而异:1047此消息需要 Claude Code v2.1.169 或更高版本。您的 Console 组织管理员已关闭 API 密钥身份验证,因此 API 会拒绝 Claude Code 发送的密钥。`·` 之后的恢复提示因密钥来源而异:

1042 1048 

1043```text theme={null}1049```text theme={null}

1044Your organization has disabled API key authentication · Run /login to sign in with your claude.ai account1050Your organization has disabled API key authentication · Run /login to sign in with your claude.ai account


1048Your organization has disabled API key authentication · Sign in again with your claude.ai account1054Your organization has disabled API key authentication · Sign in again with your claude.ai account

1049```1055```

1050 1056 

1051最后一种形式出现在 Claude Desktop 应用运行的会话中,例如 Code 标签页或 Cowork,您从应用中再次登录。1057最后一种形式出现在由 Claude Desktop 应用运行的会话中(例如 Code 标签页或 Cowork),您需要从应用中重新登录。

1052 1058 

1053环境变量和 `apiKeyHelper` 优先于 `/login`,因此仅运行 `/login` 在任一仍在提供密钥时没有帮助。请参阅 [身份验证优先级](/docs/zh-CN/authentication#authentication-precedence)。1059环境变量和 `apiKeyHelper` 优先于 `/login`,因此只要其中任何一个仍在提供密钥,仅运行 `/login` 是没有帮助的。请参阅[身份验证优先级](/docs/zh-CN/authentication#authentication-precedence)。

1054 1060 

1055**应该做什么:**1061**解决方法:**

1056 1062 

1057* 如果消息命名 `ANTHROPIC_API_KEY`,在当前 shell 中取消设置它并从您的 shell 配置文件或 `.env` 文件中删除它,然后重新启动 `claude`1063* 如果消息指出 `ANTHROPIC_API_KEY`,请在当前 shell 中取消设置它,并将其从 shell 配置文件或 `.env` 文件中删除,然后重新启动 `claude`

1058* 如果消息命名 `apiKeyHelper`,从您的 `settings.json` 中删除 [`apiKeyHelper`](/docs/zh-CN/settings-reference#apikeyhelper) 设置1064* 如果消息指出 `apiKeyHelper`,请从您的 `settings.json` 中删除 [`apiKeyHelper`](/docs/zh-CN/settings-reference#apikeyhelper) 设置

1059* 运行 `/login` 以使用您的 claude.ai 账户登录1065* 运行 `/login`,使用您的 claude.ai 账户登录

1060* 之后运行 `/status` 以确认活跃凭证是您的订阅而不是 API 密钥1066* 之后运行 `/status`,确认当前生效的凭据是您的订阅而不是 API 密钥

1061* 如果您需要 API 密钥身份验证用于自动化,请要求您的组织管理员在 Console 中重新启用它1067* 如果您需要在自动化中使用 API 密钥身份验证,请让组织管理员在 Console 中重新启用它

1062 1068 

1063<h3 id="your-organization-has-disabled-claude-subscription-access">1069<h3 id="your-organization-has-disabled-claude-subscription-access">

1064 您的组织已禁用 Claude 订阅访问1070 您的组织已禁用 Claude 订阅访问

1065</h3>1071</h3>

1066 1072 

1067您的 Claude 组织不允许使用订阅登录登录 Claude Code。使用同一账户再次运行 `/login` 会返回相同的错误。1073您的 Claude 组织不允许使用订阅登录来登录 Claude Code。使用同一账户再次运行 `/login` 会返回相同的错误。

1068 1074 

1069```text theme={null}1075```text theme={null}

1070Your organization has disabled Claude subscription access for Claude Code · Use an Anthropic API key instead, or ask your admin to enable access1076Your organization has disabled Claude subscription access for Claude Code · Use an Anthropic API key instead, or ask your admin to enable access

1071```1077```

1072 1078 

1073这是服务器端组织设置,因此无法从本地设置、环境变量或 CLI 标志覆盖。1079这是服务器端的组织设置,因此无法通过本地设置、环境变量或 CLI 标志覆盖。

1074 1080 

1075Agent SDK 和 `-p` 非交互式模式将此显示为 `oauth_org_not_allowed` 错误代码。1081Agent SDK 和 `-p` 非交互模式会将其显示为 `oauth_org_not_allowed` 错误码。

1076 1082 

1077**应该做什么:**1083**解决方法:**

1078 1084 

1079* 要求您的管理员为您的组织启用 Claude Code 访问1085* 请管理员为您的组织启用 Claude Code 访问

1080* 使用 Console API 密钥而不是您的订阅进行身份验证。请参阅 [Claude Console 身份验证](/docs/zh-CN/authentication#claude-console-authentication) 了解设置。1086* 改用 Console API 密钥而不是订阅进行身份验证。有关设置,请参阅 [Claude Console 身份验证](/docs/zh-CN/authentication#claude-console-authentication)。

1081* 如果您是管理员且看不到启用访问的选项,请联系 [Anthropic 支持](https://support.claude.com)1087* 如果您是管理员但看不到启用访问的选项,请联系 [Anthropic 支持](https://support.claude.com)

1082 1088 

1083<h3 id="routines-are-disabled-by-your-organizations-policy">1089<h3 id="routines-are-disabled-by-your-organizations-policy">

1084 例程被您的组织的策略禁用1090 您的组织策略已禁用 Routine

1085</h3>1091</h3>

1086 1092 

1087您的 Team 或 Enterprise 组织中的所有者已在组织级别关闭例程。当您尝试创建或运行例程时会出现错误,例如从 [Routines](/docs/zh-CN/routines) UI on claude.ai/code。在 Claude Code v2.1.227 或更高版本上,相同的设置也 [隐藏 `/schedule`](/docs/zh-CN/routines#troubleshooting) 在 CLI 中。1093您所在 Team 或 Enterprise 组织中的 Owner 已在组织级别关闭了 Routine。当您尝试创建或运行 Routine 时(例如从 claude.ai/code 上的 [Routines](/docs/zh-CN/routines) UI)会出现此错误。在 Claude Code v2.1.227 或更高版本中,同一设置还会在 CLI 中[隐藏 `/schedule`](/docs/zh-CN/routines#troubleshooting)。

1088 1094 

1089```text theme={null}1095```text theme={null}

1090Routines are disabled by your organization's policy.1096Routines are disabled by your organization's policy.

1091```1097```

1092 1098 

1093这是服务器端设置,因此无法从本地设置、环境变量或 CLI 标志覆盖。1099这是服务器端设置,因此无法通过本地设置、环境变量或 CLI 标志覆盖。

1094 1100 

1095**应该做什么:**1101**解决方法:**

1096 1102 

1097* 要求您的组织中的所有者在 [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code) 启用 **Routines** 切换1103* 请组织中的 Owner 在 [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code) 启用 **Routines** 开关

1098* 对于不需要组织级例程的一次性计划工作,请参阅 [计划任务](/docs/zh-CN/scheduled-tasks)1104* 对于不需要组织级 Routine 的一次性定时工作,请参阅[定时任务](/docs/zh-CN/scheduled-tasks)

1099 1105 

1100<h3 id="remote-control-requires-the-anthropic-api">1106<h3 id="remote-control-requires-the-anthropic-api">

1101 Remote Control 需要 Anthropic API1107 Remote Control 需要 Anthropic API

1102</h3>1108</h3>

1103 1109 

1104会话不是直接与 Anthropic API 通信,因此 [Remote Control](/docs/zh-CN/remote-control) 需要。1110该会话没有直接与 Anthropic API 通信,而这是 [Remote Control](/docs/zh-CN/remote-control) 所必需的。

1105 1111 

1106```text theme={null}1112```text theme={null}

1107Remote Control is only available when using Claude via api.anthropic.com. CLAUDE_CODE_USE_BEDROCK is set, so this session is using Amazon Bedrock — unset it (or run in a shell without it) to use Remote Control.1113Remote Control is only available when using Claude via api.anthropic.com. CLAUDE_CODE_USE_BEDROCK is set, so this session is using Amazon Bedrock — unset it (or run in a shell without it) to use Remote Control.

1108```1114```

1109 1115 

1110第二句解释了什么将会话路由离开 Anthropic API;在 v2.1.219 之前,消息仅为第一句。根据原因,消息命名:1116第二句话说明了是什么让会话绕开了 Anthropic API;在 v2.1.219 之前,消息只有第一句话。根据原因不同,消息会指出:

1111 1117 

1112* `CLAUDE_CODE_USE_*` 提供商变量,例如 [Amazon Bedrock](/docs/zh-CN/amazon-bedrock) 的 `CLAUDE_CODE_USE_BEDROCK` 或 [Google Cloud 的 Agent Platform](/docs/zh-CN/google-vertex-ai) 的 `CLAUDE_CODE_USE_VERTEX`1118* 一个 `CLAUDE_CODE_USE_*` 提供商变量,例如用于 [Amazon Bedrock](/docs/zh-CN/amazon-bedrock) 的 `CLAUDE_CODE_USE_BEDROCK`,或用于 [Google Cloud's Agent Platform](/docs/zh-CN/google-vertex-ai) 的 `CLAUDE_CODE_USE_VERTEX`

1113* [`ANTHROPIC_BASE_URL`](/docs/zh-CN/env-vars) 指向 `api.anthropic.com` 以外的主机,例如 [LLM 网关](/docs/zh-CN/llm-gateway) 或代理,即使您使用 claude.ai 登录;在 v2.1.196 之前,自定义基础 URL 不会阻止 Remote Control1119* [`ANTHROPIC_BASE_URL`](/docs/zh-CN/env-vars) 指向 `api.anthropic.com` 以外的主机,例如 [LLM 网关](/docs/zh-CN/llm-gateway)或代理,即使您使用 claude.ai 登录也是如此;在 v2.1.196 之前,自定义 base URL 不会阻止 Remote Control

1114* `ANTHROPIC_UNIX_SOCKET` 已设置,因此会话通过本地套接字而不是 `api.anthropic.com` 发送其请求1120* 设置了 `ANTHROPIC_UNIX_SOCKET`,因此会话通过本地套接字发送请求,而不是发送到 `api.anthropic.com`

1115* 企业 [云网关](/docs/zh-CN/claude-apps-gateway) 通过 `/login` 登录,不支持 Remote Control,没有变量可取消设置1121* 通过 `/login` 进行的企业[云网关](/docs/zh-CN/claude-apps-gateway)登录,它不支持 Remote Control,也没有可以取消设置的变量

1116 1122 

1117**应该做什么:**1123**解决方法:**

1118 1124 

1119* 取消设置消息命名的变量,例如 `CLAUDE_CODE_USE_BEDROCK` 或 `ANTHROPIC_BASE_URL`,并重新启动会话,或从直接与 Anthropic API 通信的会话启动 Remote Control1125* 取消设置消息中指出的变量(例如 `CLAUDE_CODE_USE_BEDROCK` 或 `ANTHROPIC_BASE_URL`)并重启会话,或者从直接与 Anthropic API 通信的会话中启动 Remote Control

1120* 如果变量未在您的 shell 中设置,请检查您的 [设置文件](/docs/zh-CN/settings#where-settings-live) 中的 `env` 键,该键将环境变量应用于每个会话1126* 如果该变量没有在您的 shell 中设置,请检查[设置文件](/docs/zh-CN/settings#where-settings-live)中的 `env` 键,它会将环境变量应用到每个会话

1121* 对于此和其他 Remote Control 启动消息,请参阅 [Remote Control 故障排除](/docs/zh-CN/remote-control#troubleshooting)1127* 有关此消息及其他 Remote Control 启动消息,请参阅 [Remote Control 故障排除](/docs/zh-CN/remote-control#troubleshooting)

1122 1128 

1123<h3 id="remote-control-couldnt-refresh-your-login">1129<h3 id="remote-control-couldnt-refresh-your-login">

1124 Remote Control 无法刷新您的登录1130 Remote Control 无法刷新您的登录

1125</h3>1131</h3>

1126 1132 

1127Claude Code 在短期凭证上运行实时 [Remote Control](/docs/zh-CN/remote-control) 连接,它使用您保存的 claude.ai 登录获取和更新这些凭证。当 claude.ai 停止接受该登录或 Claude Code 没有保存的登录时,Claude Code 停止 Remote Control 并需要您再次登录。任一故障都可能在 Claude Code 仍在连接时或稍后在更新凭证时发生。1133Claude Code 使用短期凭据运行实时 [Remote Control](/docs/zh-CN/remote-control) 连接,这些凭据是它利用您已保存的 claude.ai 登录获取和续期的。当 claude.ai 不再接受该登录,或 Claude Code 已没有任何已保存的登录时,Claude Code 会停止 Remote Control,并需要您重新登录。这两种失败都可能发生在 Claude Code 仍在连接时,也可能发生在之后续期凭据时。

1128 1134 

1129当 Claude Code 要求登录服务刷新您保存的登录并且没有得到答复时,它会保持 Remote Control 运行并在连接的当前凭证仍然有效时再次尝试刷新。当 Claude Code 无法到达登录服务、请求超时或服务在不拒绝您的登录的情况下失败时,刷新会得不到答复。如果当该凭证过期时登录服务仍然没有答复,Claude Code 会停止 Remote Control 并报告 `OAuth token refresh failed`。1135当 Claude Code 请求登录服务刷新您已保存的登录但没有得到应答时,它会保持 Remote Control 运行,并在连接当前凭据仍然有效期间再次尝试刷新。当 Claude Code 无法连接到登录服务、请求超时,或服务失败但并未拒绝您的登录时,刷新就会得不到应答。如果在该凭据过期时登录服务仍未应答,Claude Code 会停止 Remote Control 并报告 `OAuth token refresh failed`。

1130 1136 

1131当 Claude Code 停止 Remote Control 时,它在警告和以 `Remote Control disconnected` 开头的成绩单行中显示原因。您的本地会话继续运行而没有 Remote Control。本部分涵盖这些行:1137当 Claude Code 停止 Remote Control 时,会在警告以及一行以 `Remote Control disconnected` 开头的会话记录中显示原因。您的本地会话会在没有 Remote Control 的情况下继续运行。本节涵盖以下几行:

1132 1138 

1133```text theme={null}1139```text theme={null}

1134Remote Control disconnected — Claude.ai login expired — run /login to restore Remote Control1140Remote Control disconnected — Claude.ai login expired — run /login to restore Remote Control


1140Remote Control disconnected — Signed out of Claude — run /login, then /remote-control1146Remote Control disconnected — Signed out of Claude — run /login, then /remote-control

1141```1147```

1142 1148 

1143Claude Code 在消息中间命名原因:1149Claude Code 会在消息中间说明原因:

1144 1150 

1145* ` Claude.ai login expired` 和 `Claude.ai login was rejected`:claude.ai 不再接受您保存的登录令牌,因为它已过期或被撤销1151* `Claude.ai login expired` 和 `Claude.ai login was rejected`:claude.ai 不再接受您已保存的登录令牌,因为它已过期或被撤销

1146* ` OAuth token unavailable`:当连接的凭证到期需要更新时,Claude Code 没有保存的登录令牌1152* `OAuth token unavailable`:当连接的凭据需要续期时,Claude Code 没有已保存的登录令牌

1147* `OAuth token refresh failed`:claude.ai 在 Claude Code 重新连接时拒绝了您保存的登录令牌,刷新令牌没有产生新令牌1153* `OAuth token refresh failed`:在 Claude Code 重新连接时,claude.ai 拒绝了您已保存的登录令牌,且刷新该令牌未能生成新令牌

1148* `JWT refresh failed: no OAuth token`:Claude Code 找不到保存的登录令牌来更新1154* `JWT refresh failed: no OAuth token`:Claude Code 没有找到可用于续期的已保存登录令牌

1149* ` Signed out of Claude`:您在此机器上登出,例如在另一个终端中运行 `/logout`,因此 Claude Code 没有保存的登录来更新连接1155* `Signed out of Claude`:您在这台机器上注销了登录(例如在另一个终端中运行了 `/logout`),因此 Claude Code 已没有可用于续期连接的已保存登录

1150 1156 

1151**应该做什么:**1157**解决方法:**

1152 1158 

1153* 运行 `/login` 再次登录1159* 运行 `/login` 重新登录

1154* 运行 `/remote-control` 重新连接会话。以 `run /login to restore Remote Control` 结尾的消息不需要此步骤:Claude Code 在您登录后自动重新连接。1160* 运行 `/remote-control` 重新连接会话。以 `run /login to restore Remote Control` 结尾的消息不需要此步骤:您登录后 Claude Code 会自动重新连接。

1155 1161 

1156在 v2.1.224 之前,`OAuth token refresh failed — run /login to re-authenticate` 读作 `OAuth token refresh failed — re-authenticate, then re-enable Remote Control`,`JWT refresh failed: no OAuth token — run /login` 读作 `no OAuth token available for recovery (code <N>)`。` Claude.ai login expired`、`Claude.ai login was rejected` 和 `OAuth token unavailable` 消息在 v2.1.225 中添加。1162在 v2.1.224 之前,`OAuth token refresh failed — run /login to re-authenticate` 显示为 `OAuth token refresh failed — re-authenticate, then re-enable Remote Control`,`JWT refresh failed: no OAuth token — run /login` 显示为 `no OAuth token available for recovery (code <N>)`。`Claude.ai login expired`、`Claude.ai login was rejected` 和 `OAuth token unavailable` 消息是在 v2.1.225 中添加的。

1157 1163 

1158在 v2.1.238 之前,Claude Code 将现在说 `Signed out of Claude` 的情况报告为 `JWT refresh failed: no OAuth token — run /login`,并在一次登录刷新没有得到答复后立即停止 Remote Control,显示 `Claude.ai login expired — run /login to restore Remote Control`。1164在 v2.1.238 之前,Claude Code 会将现在显示为 `Signed out of Claude` 的情况报告为 `JWT refresh failed: no OAuth token — run /login`,并且只要一次登录刷新没有得到应答,就会以 `Claude.ai login expired — run /login to restore Remote Control` 停止 Remote Control。

1159 1165 

1160<h3 id="remote-control-stopped-because-the-signed-in-account-changed">1166<h3 id="remote-control-stopped-because-the-signed-in-account-changed">

1161 Remote Control 停止,因为登录账户已更改1167 由于已登录账户发生变化,Remote Control 已停止

1162</h3>1168</h3>

1163 1169 

1164Claude Code 在 [Remote Control](/docs/zh-CN/remote-control) 会话期间显示此行,当您在此机器上登录到不同的 claude.ai 账户或组织时。您在 Claude Code 会话外进行了切换,例如在另一个终端中运行 `/login`。1170当您在这台机器上登录到另一个 claude.ai 账户或组织时,Claude Code 会在 [Remote Control](/docs/zh-CN/remote-control) 会话期间显示此行。这次切换是在 Claude Code 会话之外进行的,例如在另一个终端中运行了 `/login`。

1165 1171 

1166您在通过 `/login` 登录时启动的 Remote Control 会话属于当时登录的 claude.ai 账户和组织。1172您通过 `/login` 登录期间启动的 Remote Control 会话,属于当时已登录的 claude.ai 账户和组织。

1167 1173 

1168```text theme={null}1174```text theme={null}

1169Remote Control disconnected — signed-in claude.ai account or organization changed on this machine — run /remote-control to start a session for the current account, or /login to switch back, then /remote-control1175Remote Control disconnected — signed-in claude.ai account or organization changed on this machine — run /remote-control to start a session for the current account, or /login to switch back, then /remote-control

1170```1176```

1171 1177 

1172Claude Code 在 claude.ai 确认账户或组织已更改后立即停止 Remote Control 会话。您的本地会话继续运行而没有 Remote Control。1178一旦 claude.ai 确认账户或组织发生了变化,Claude Code 就会停止 Remote Control 会话。您的本地会话会在没有 Remote Control 的情况下继续运行。

1173 1179 

1174**应该做什么:**1180**解决方法:**

1175 1181 

1176* 运行 `/remote-control` 在当前账户或组织下启动新的 Remote Control 会话1182* 运行 `/remote-control`,在当前账户或组织下启动新的 Remote Control 会话

1177* 要切换回去,运行 `/login` 并再次登录到之前的账户或组织。然后运行 `/remote-control`。1183* 要切换回去,请运行 `/login` 并重新登录之前的账户或组织,然后运行 `/remote-control`。

1178 1184 

1179在 v2.1.234 之前,Claude Code 在您在 Claude Code 会话外切换到不同账户或组织时没有注意到。Claude Code 保持 Remote Control 会话连接,直到稍后对 Remote Control 服务器的请求失败,显示 `Remote Control server rejected the request (HTTP 404)`。该故障可能在切换后数小时发生。1185在 v2.1.234 之前,当您在 Claude Code 会话之外切换到其他账户或组织时,Claude Code 不会察觉。Claude Code 会保持 Remote Control 会话连接,直到之后发往 Remote Control 服务器的请求以 `Remote Control server rejected the request (HTTP 404)` 失败。该失败可能在切换后数小时才出现。

1180 1186 

1181<h3 id="remote-control-stopped-because-the-app-running-the-session-signed-out-or-switched-accounts">1187<h3 id="remote-control-stopped-because-the-app-running-the-session-signed-out-or-switched-accounts">

1182 Remote Control 停止,因为运行会话的应用登出或切换了账户1188 由于运行会话的应用已注销或切换账户,Remote Control 已停止

1183</h3>1189</h3>

1184 1190 

1185当 Claude 桌面应用或 IDE 托管您的会话时,Claude Code 从该应用而不是从 `/login` 获取其登录令牌。当 claude.ai 拒绝该令牌时,Claude Code 要求应用提供新令牌。如果应用回答说它已登出或现在登录到不同的 Claude 账户,Claude Code 结束 [Remote Control](/docs/zh-CN/remote-control) 会话并向应用发送以下行之一:1191当 Claude 桌面应用或 IDE 托管您的会话时,Claude Code 会从该应用而不是 `/login` 获取登录令牌。当 claude.ai 拒绝该令牌时,Claude Code 会向应用请求新令牌。如果应用回复它已注销,或现在已登录到另一个 Claude 账户,Claude Code 会结束 [Remote Control](/docs/zh-CN/remote-control) 会话,并向应用发送以下其中一行:

1186 1192 

1187```text theme={null}1193```text theme={null}

1188Remote Control stopped — the app running this session is now signed in to a different Claude account1194Remote Control stopped — the app running this session is now signed in to a different Claude account

1189Remote Control stopped — the app running this session is signed out of Claude. Sign in there, then turn Remote Control back on1195Remote Control stopped — the app running this session is signed out of Claude. Sign in there, then turn Remote Control back on

1190```1196```

1191 1197 

1192您的本地会话继续运行而没有 Remote Control。1198您的本地会话会在没有 Remote Control 的情况下继续运行。

1193 1199 

1194**应该做什么:**1200**解决方法:**

1195 1201 

1196* 如果应用已登出,再次登录,然后在应用中重新打开 Remote Control1202* 如果应用已注销,请重新登录该应用,然后在应用中重新打开 Remote Control

1197* 如果应用切换了账户,Claude Code 无法在新账户下继续已结束的会话。在该账户下启动新的 Remote Control 会话。1203* 如果应用切换了账户,Claude Code 无法在新账户下继续已结束的会话。请在该账户下启动新的 Remote Control 会话。

1198 1204 

1199在 v2.1.238 之前,Claude Code 在两种情况下都向应用发送了 [Remote Control 无法刷新您的登录](#remote-control-couldnt-refresh-your-login) 下列出的 `run /login` 消息。1205在 v2.1.238 之前,Claude Code 在这两种情况下都会向应用发送 [Remote Control 无法刷新您的登录](#remote-control-couldnt-refresh-your-login)中列出的 `run /login` 消息。

1200 1206 

1201<h3 id="oauth-token-revoked-or-expired">1207<h3 id="oauth-token-revoked-or-expired">

1202 OAuth 令牌被撤销或过期1208 OAuth 令牌已撤销或已过期

1203</h3>1209</h3>

1204 1210 

1205您保存的登录不再有效。被撤销的令牌意味着您在任何地方登出或管理员删除了访问权限;过期的令牌意味着自动刷新在会话中失败。1211您已保存的登录不再有效。令牌被撤销意味着您在所有地方注销了登录,或管理员移除了访问权限;令牌过期意味着会话期间的自动刷新失败了。

1206 1212 

1207两条消息都报告 API 为 Claude Code 发送的请求返回的拒绝。当保存的登录在失败的刷新后已被清除时,您会看到 [登录过期](#login-expired)。如果您使用 [`CLAUDE_CODE_OAUTH_TOKEN`](/docs/zh-CN/env-vars) 中的长期令牌进行身份验证,当该令牌过期或被撤销时,您会看到相同的消息。1213这两条消息报告的都是 API 针对 Claude Code 所发送请求返回的拒绝。如果在刷新失败后已保存的登录已被清除,您会看到[登录已过期](#login-expired)。如果您使用 [`CLAUDE_CODE_OAUTH_TOKEN`](/docs/zh-CN/env-vars) 中的长期令牌进行身份验证,当该令牌过期或被撤销时,您也会看到相同的消息。

1208 1214 

1209```text theme={null}1215```text theme={null}

1210OAuth token revoked · Please run /login1216OAuth token revoked · Please run /login

1211Please run /login · API Error: 401 OAuth token has expired ...1217Please run /login · API Error: 401 OAuth token has expired ...

1212```1218```

1213 1219 

1214**应该做什么:**1220**解决方法:**

1215 1221 

1216* 运行 `/login` 再次登录1222* 运行 `/login` 重新登录

1217* 如果您使用 `CLAUDE_CODE_OAUTH_TOKEN` 环境变量进行身份验证,Claude Code 在请求失败并显示 401 后会继续发送您设置的值,而不是切换到保存的登录的令牌。[`/status`](/docs/zh-CN/commands) 将此凭证显示为读取 `CLAUDE_CODE_OAUTH_TOKEN` 的 `Auth token` 行。使用 [`claude setup-token`](/docs/zh-CN/authentication#generate-a-long-lived-token) 生成新令牌并使用它重新启动,或取消设置变量并运行 `/login`。在 v2.1.225 之前,Claude Code 可以在会话中用保存的登录的短期访问令牌替换变量的值,一旦该令牌过期,会话再次失败并显示 401 错误。1223* 如果您使用 `CLAUDE_CODE_OAUTH_TOKEN` 环境变量进行身份验证,在请求以 401 失败后,Claude Code 会继续发送您设置的值,而不会切换到已存储登录的令牌。[`/status`](/docs/zh-CN/commands) 会将此凭据显示为一行 `Auth token`,内容为 `CLAUDE_CODE_OAUTH_TOKEN`。请使用 [`claude setup-token`](/docs/zh-CN/authentication#generate-a-long-lived-token) 生成新令牌并使用它重新启动,或者取消设置该变量并运行 `/login`。在 v2.1.225 之前,Claude Code 可能会在会话期间用已存储登录中的短期访问令牌替换该变量的值,一旦该令牌过期,会话就会再次因 401 错误而失败。

1218* 对于跨启动的重复登录提示,请参阅 [故障排除](/docs/zh-CN/troubleshoot-install#not-logged-in-or-token-expired) 中的系统时钟检查和 macOS 凭证存储恢复步骤1224* 如果多次启动时反复提示登录,请参阅[故障排除](/docs/zh-CN/troubleshoot-install#not-logged-in-or-token-expired)中的系统时钟检查和 macOS 凭据存储恢复步骤

1219* 对于其他故障,包括 `403 Forbidden` 和 OAuth 浏览器问题,请参阅 [登录和身份验证](/docs/zh-CN/troubleshoot-install#login-and-authentication)1225* 对于包括 `403 Forbidden` 和 OAuth 浏览器问题在内的其他失败,请参阅[登录和身份验证](/docs/zh-CN/troubleshoot-install#login-and-authentication)

1220 1226 

1221<h3 id="api-error-401-invalid-authentication-credentials">1227<h3 id="api-error-401-invalid-authentication-credentials">

1222 API 错误:401 无效的身份验证凭证1228 API Error: 401 Invalid authentication credentials

1223</h3>1229</h3>

1224 1230 

1225API 识别了您凭证的格式,但拒绝了其背后的账户或组织。当凭证最近被撤销、组织被禁用或删除了您的访问权限或账户本身被停用时,Anthropic 返回此消息,因此过期的令牌不是原因。凭证可以是您保存的登录或批准的 `ANTHROPIC_API_KEY`,修复方式不同,因此首先运行 `/status` 查看哪个处于活跃状态。1231API 识别了您的凭据格式,但拒绝了其背后的账户或组织。当凭据最近被撤销、组织被停用或移除了您的访问权限,或账户本身被停用时,Anthropic 会返回此消息,因此原因并非令牌过期。该凭据可能是您已保存的登录,也可能是已批准的 `ANTHROPIC_API_KEY`,两者的修复方法不同,因此请先运行 `/status` 查看哪一个处于生效状态。

1226 1232 

1227```text theme={null}1233```text theme={null}

1228Please run /login · API Error: 401 Invalid authentication credentials1234Please run /login · API Error: 401 Invalid authentication credentials

1229```1235```

1230 1236 

1231**应该做什么:**1237**解决方法:**

1232 1238 

1233* 如果 `/status` 显示未标记为未使用的 `API key` 行,则批准的 [`ANTHROPIC_API_KEY`](/docs/zh-CN/authentication#authentication-precedence) 是活跃凭证并优先于您的登录,因此 `/login` 不会替换它。在 Claude Console 中轮换密钥,或通过运行 `unset ANTHROPIC_API_KEY` 回退到您的订阅,或在 PowerShell 中运行 `Remove-Item Env:ANTHROPIC_API_KEY`。1239* 如果 `/status` 显示了一行未标记为未使用的 `API key`,说明已批准的 [`ANTHROPIC_API_KEY`](/docs/zh-CN/authentication#authentication-precedence) 是当前生效的凭据,并且优先于您的登录,因此 `/login` 不会替换它。请在 Claude Console 中轮换该密钥,或运行 `unset ANTHROPIC_API_KEY`(在 PowerShell 中运行 `Remove-Item Env:ANTHROPIC_API_KEY`)以回退到您的订阅。

1234* 如果 `/status` 仅显示您的登录,运行 `/login` 一次。如果凭证被撤销,新登录会替换它。1240* 如果 `/status` 只显示您的登录,请运行一次 `/login`。如果凭据已被撤销,新的登录会替换它。

1235* 如果相同的消息对相同的登录账户返回,则该账户或组织不再活跃。检查 `/status` 报告的账户和组织,并要求您的组织管理员恢复访问。1241* 如果同一登录账户再次出现相同消息,说明该账户或组织已不再有效。请检查 `/status` 报告的账户和组织,并请组织管理员恢复访问。

1236* 如果 [`ANTHROPIC_BASE_URL`](/docs/zh-CN/env-vars) 指向 [LLM 网关](/docs/zh-CN/llm-gateway),`401` 之后的文本是您网关的消息而不是 Anthropic 的,`/login` 不会改变它。改为修复您的网关期望的凭证。1242* 如果 [`ANTHROPIC_BASE_URL`](/docs/zh-CN/env-vars) 指向 [LLM 网关](/docs/zh-CN/llm-gateway),`401` 之后的文本是您的网关而非 Anthropic 的消息,`/login` 无法改变它。请改为修正网关所需的凭据。

1237 1243 

1238<h3 id="login-expired">1244<h3 id="login-expired">

1239 登录过期1245 登录已过期

1240</h3>1246</h3>

1241 1247 

1242Claude Code 尝试更新您保存的 claude.ai 登录,OAuth 服务拒绝了存储的刷新令牌,因此 Claude Code 清除了保存的凭证。之后,每个模型请求在到达 API 之前都会在本地停止,显示此消息,因为只有 `/login` 可以创建新凭证。1248Claude Code 尝试续期您已保存的 claude.ai 登录,但 OAuth 服务拒绝了已存储的刷新令牌,因此 Claude Code 清除了已保存的凭据。此后,每个模型请求都会在到达 API 之前于本地以此消息停止,因为只有 `/login` 才能创建新的凭据。

1243 1249 

1244在 v2.1.206 之前,Claude Code 无论如何都会发送模型请求,使用环境中剩余的任何凭证,每个模型都会失败,显示 [所选模型有问题](#theres-an-issue-with-the-selected-model) 或 401,而不是登录提示。1250在 v2.1.206 之前,Claude Code 仍会使用环境中剩余的任何凭据发送模型请求,随后每个模型都会以[所选模型存在问题](#theres-an-issue-with-the-selected-model)或 401 失败,而不是提示您登录。

1245 1251 

1246```text theme={null}1252```text theme={null}

1247Login expired · Please run /login1253Login expired · Please run /login

1248```1254```

1249 1255 

1250在 [非交互式模式](/docs/zh-CN/headless) (`-p`) 和 [Agent SDK](/docs/zh-CN/agent-sdk/overview) 中,消息如下所示,结构化错误代码为 `authentication_failed`:1256在[非交互模式](/docs/zh-CN/headless)(`-p`)和 [Agent SDK](/docs/zh-CN/agent-sdk/overview) 中,消息如下,结构化错误码为 `authentication_failed`:

1251 1257 

1252```text theme={null}1258```text theme={null}

1253Failed to authenticate: OAuth session expired and could not be refreshed1259Failed to authenticate: OAuth session expired and could not be refreshed

1254```1260```

1255 1261 

1256这与 [OAuth 令牌被撤销或过期](#oauth-token-revoked-or-expired) 的状态不同。这些消息报告 API 返回的拒绝。Claude Code 本身为已失败更新的登录生成 `Login expired`,因此它不发送请求。当更新失败是因为账户本身被暂停而不是登录过时时,Claude Code 改为显示 [您的账户被冻结](#your-account-is-on-hold)。1262这与 [OAuth 令牌已撤销或已过期](#oauth-token-revoked-or-expired)不是同一种状态。那些消息报告的是 API 返回的拒绝。而 `Login expired` 是 Claude Code 自身针对已续期失败的登录生成的,因此它不会发送请求。如果续期失败是因为账户本身被暂停,而非登录已失效,Claude Code 会改为显示[您的账户已被暂停](#your-account-is-on-hold)。

1257 1263 

1258使用 API 密钥、[`CLAUDE_CODE_OAUTH_TOKEN`](/docs/zh-CN/env-vars) 或第三方提供商进行身份验证的会话不使用保存的登录,永远不会看到此消息。1264使用 API 密钥、[`CLAUDE_CODE_OAUTH_TOKEN`](/docs/zh-CN/env-vars) 或第三方提供商进行身份验证的会话不使用已保存的登录,因此永远不会看到此消息。

1259 1265 

1260您可以在请求失败之前检查此状态:[`/status`](/docs/zh-CN/commands) 显示读取 `Expired — log in again` 的 `Login` 行,加上它为过期登录保存的组织和电子邮件。该行仅在保存的登录是您的活跃凭证且无法再刷新时出现。以其他方式进行身份验证的会话不显示该行,即使过期的登录仍然保存。在 v2.1.210 之前,`/status` 在此状态下没有指示登录曾经存在过,因为清除的凭证使其无法报告。1266您可以在请求失败之前检查此状态:[`/status`](/docs/zh-CN/commands) 会显示一行 `Login`,内容为 `Expired — log in again`,以及为该过期登录保存的组织和电子邮件。只有当已保存的登录是您当前生效的凭据且无法再刷新时,才会出现该行。以其他方式进行身份验证的会话不会显示该行,即使仍保存有过期的登录。在 v2.1.210 之前,`/status` 在此状态下不会显示任何曾经存在登录的迹象,因为被清除的凭据使其无可报告。

1261 1267 

1262**应该做什么:**1268**解决方法:**

1263 1269 

1264* 运行 `/login` 再次登录。在不登录的情况下重试会在每个请求上显示相同的消息。1270* 运行 `/login` 重新登录。不登录而直接重试,每个请求都会显示相同的消息。

1265* 在非交互式模式中,在同一环境中运行 `claude`,完成 `/login`,然后重新运行您的命令。对于无法交互式登录的自动化,使用 `ANTHROPIC_API_KEY` 进行身份验证或 [使用 `claude setup-token` 生成长期令牌](/docs/zh-CN/authentication#generate-a-long-lived-token)。1271* 如果您在另一个 Claude Code 窗口中使用 claude.ai 账户登录,请参阅[未登录](#not-logged-in),了解此会话何时会自动开始使用该登录。

1266* 如果登录持续失败,请参阅 [登录和身份验证](/docs/zh-CN/troubleshoot-install#login-and-authentication)1272* 在非交互模式下,请在同一环境中运行 `claude`,完成 `/login`,然后重新运行您的命令。对于无法交互式登录的自动化场景,请使用 `ANTHROPIC_API_KEY` 进行身份验证,或[使用 `claude setup-token` 生成长期令牌](/docs/zh-CN/authentication#generate-a-long-lived-token)。

1273* 如果登录持续失败,请参阅[登录和身份验证](/docs/zh-CN/troubleshoot-install#login-and-authentication)

1267 1274 

1268<h3 id="could-not-refresh-your-login">1275<h3 id="could-not-refresh-your-login">

1269 无法刷新您的登录,因为另一个 Claude Code 进程正在刷新它1276 无法刷新您的登录,因为另一个 Claude Code 进程正在刷新

1270</h3>1277</h3>

1271 1278 

1272此消息不意味着您的登录被拒绝。您保存的 claude.ai 登录已过期,需要更新。另一个 Claude Code 进程在同一机器上持有共享刷新锁,或退出并留下它,刷新在此会话等待时没有进展。Claude Code 在发送前停止请求:1279此消息并不表示您的登录被拒绝。您已保存的 claude.ai 登录已过期,需要续期。同一台机器上的另一个 Claude Code 进程持有共享的刷新锁,或在退出时遗留了该锁,而在此会话等待期间刷新没有任何进展。Claude Code 会在发送请求之前停止它:

1273 1280 

1274```text theme={null}1281```text theme={null}

1275Could not refresh your login because another Claude Code process is refreshing it (or exited mid-refresh) · Try again in a minute; if it keeps happening, close other Claude Code windows or sign in again with /login1282Could not refresh your login because another Claude Code process is refreshing it (or exited mid-refresh) · Try again in a minute; if it keeps happening, close other Claude Code windows or sign in again with /login

1276```1283```

1277 1284 

1278在 [非交互式模式](/docs/zh-CN/headless) (`-p`) 和 [Agent SDK](/docs/zh-CN/agent-sdk/overview) 中,消息如下所示,结构化错误代码为 `server_error`:1285在[非交互模式](/docs/zh-CN/headless)(`-p`)和 [Agent SDK](/docs/zh-CN/agent-sdk/overview) 中,消息如下,结构化错误码为 `server_error`:

1279 1286 

1280```text theme={null}1287```text theme={null}

1281Failed to refresh OAuth token: another Claude Code process is refreshing it or exited mid-refresh. This is usually transient; retry in a minute, and if it persists close other Claude Code processes or sign in again1288Failed to refresh OAuth token: another Claude Code process is refreshing it or exited mid-refresh. This is usually transient; retry in a minute, and if it persists close other Claude Code processes or sign in again

1282```1289```

1283 1290 

1284使用 API 密钥、[`CLAUDE_CODE_OAUTH_TOKEN`](/docs/zh-CN/env-vars) 或第三方提供商进行身份验证的会话不使用保存的登录,永远不会看到此消息。1291使用 API 密钥、[`CLAUDE_CODE_OAUTH_TOKEN`](/docs/zh-CN/env-vars) 或第三方提供商进行身份验证的会话不使用已保存的登录,因此永远不会看到此消息。

1285 1292 

1286**应该做什么:**1293**解决方法:**

1287 1294 

1288* 一分钟后重试。如果另一个进程首先完成刷新,此会话使用更新的登录。1295* 一分钟后重试。如果另一个进程先完成了刷新,此会话会使用续期后的登录。

1289* 如果消息持续返回,关闭其他 Claude Code 窗口和进程,然后重试。1296* 如果该消息反复出现,请关闭其他 Claude Code 窗口和进程,然后重试。

1290* 如果在没有其他 Claude Code 进程运行的情况下返回,运行 `/login`。再次登录不会等待刷新锁。1297* 如果在没有其他 Claude Code 进程运行的情况下仍然出现,请运行 `/login`。重新登录不会等待刷新锁。

1291 1298 

1292<h3 id="couldnt-save-your-login">1299<h3 id="couldnt-save-your-login">

1293 无法保存您的登录1300 无法保存您的登录

1294</h3>1301</h3>

1295 1302 

1296您使用 claude.ai 登录,但 Claude Code 无法将登录保存到其凭证存储,因此登录未完成。在 macOS 上,当登录钥匙链锁定时(例如在睡眠或空闲时),在 Claude Code 已在同一会话中读取或保存凭证之后,可能会发生这种情况。1303您已使用 claude.ai 登录,但 Claude Code 无法将登录保存到其凭据存储中,因此登录未完成。在 macOS 上,如果 Claude Code 在同一会话中已经读取或保存过登录钥匙串中的凭据,而之后登录钥匙串被锁定(例如在睡眠或空闲时),就可能发生这种情况。

1297 1304 

1298```text theme={null}1305```text theme={null}

1299Couldn't save your login. If your Mac's keychain is locked, unlock it and log in again.1306Couldn't save your login. If your Mac's keychain is locked, unlock it and log in again.

1300Couldn't save your login. Try logging in again.1307Couldn't save your login. Try logging in again.

1301```1308```

1302 1309 

1303第一种形式出现在 macOS 上,第二种形式出现在其他地方。临时凭证存储故障(例如超时或不可读的存储)会产生相同的消息。1310第一种形式出现在 macOS 上,第二种形式出现在其他所有平台上。临时性的凭据存储故障(例如超时或存储无法读取)也会产生相同的消息。

1304 1311 

1305**应该做什么:**1312**解决方法:**

1306 1313 

1307* 在 macOS 上,解锁登录钥匙链,然后再次运行 `/login`1314* 在 macOS 上,解锁登录钥匙串,然后再次运行 `/login`

1308* 在其他平台上,再次运行 `/login`1315* 在其他平台上,再次运行 `/login`

1309* 如果登录仍然不保存,请参阅 [未登录或令牌过期](/docs/zh-CN/troubleshoot-install#not-logged-in-or-token-expired) 了解钥匙链解锁命令和其他凭证存储恢复步骤1316* 如果登录仍然无法保存,请参阅[未登录或令牌已过期](/docs/zh-CN/troubleshoot-install#not-logged-in-or-token-expired),了解钥匙串解锁命令及其他凭据存储恢复步骤

1310 1317 

1311<h3 id="failed-to-start-oauth-callback-server">1318<h3 id="failed-to-start-oauth-callback-server">

1312 Failed to start OAuth callback server1319 无法启动 OAuth 回调服务器

1313</h3>1320</h3>

1314 1321 

1315当 `/login`、`claude auth login` 或 `claude setup-token` 通过浏览器登录您时,Claude Code 在 `127.0.0.1` 上打开一个监听端口,以便您的浏览器可以将登录结果返回给它。此消息意味着 Claude Code 无法打开该端口,登录在浏览器窗口或登录 URL 出现之前停止:1322当 `/login`、`claude auth login` 或 `claude setup-token` 通过浏览器为您登录时,Claude Code 会在 `127.0.0.1` 上打开一个监听端口,以便浏览器将登录结果返回给它。此消息表示 Claude Code 无法打开该端口,登录会在浏览器窗口或登录 URL 出现之前停止:

1316 1323 

1317```text theme={null}1324```text theme={null}

1318Failed to start OAuth callback server: Failed to start server. Is port 0 in use?1325Failed to start OAuth callback server: Failed to start server. Is port 0 in use?

1319```1326```

1320 1327 

1321如果您的消息以 `Is port 0 in use?` 结尾,尝试在 IPv4 环回地址 `127.0.0.1` 上监听的尝试完全失败。因为故障发生在登录 URL 存在之前,`Paste code here if prompted` 流不可用作解决方法。1328如果您的消息以 `Is port 0 in use?` 结尾,说明在 IPv4 回环地址 `127.0.0.1` 上监听的尝试直接失败了。由于失败发生在登录 URL 生成之前,因此无法使用 `Paste code here if prompted` 流程作为变通方法。

1322 1329 

1323**应该做什么:**1330**解决方法:**

1324 1331 

1325* 要立即登录而不需要本地监听器:如果您使用 claude.ai 订阅,在登录有效的机器上运行 [`claude setup-token`](/docs/zh-CN/authentication#generate-a-long-lived-token) 并将其打印的令牌设置为此机器上的 `CLAUDE_CODE_OAUTH_TOKEN`。否则将 `ANTHROPIC_API_KEY` 设置为来自 [Claude Console](https://platform.claude.com/settings/keys) 的密钥。[身份验证优先级](/docs/zh-CN/authentication#authentication-precedence) 解释了 Claude Code 在存在多个凭证时如何选择。1332* 要在不使用本地监听器的情况下立即登录:如果您使用 claude.ai 订阅,请在可以正常登录的机器上运行 [`claude setup-token`](/docs/zh-CN/authentication#generate-a-long-lived-token),并在这台机器上将它输出的令牌设置为 `CLAUDE_CODE_OAUTH_TOKEN`。否则,请将 `ANTHROPIC_API_KEY` 设置为来自 [Claude Console](https://platform.claude.com/settings/keys) 的密钥。[身份验证优先级](/docs/zh-CN/authentication#authentication-precedence)说明了 Claude Code 如何在多个凭据之间进行选择。

1326* 要在此机器上改用浏览器登录,Claude Code 必须能够在 `127.0.0.1` 上监听。如果它在沙箱内运行,检查沙箱的策略是否允许在本地端口上监听,然后再次运行 `/login`。如果它应该能够但仍然失败,运行 `/feedback` 以便报告包含您的环境详细信息。1333* 如果想在这台机器上改用浏览器登录,Claude Code 必须能够在 `127.0.0.1` 上监听。如果它在沙箱中运行,请检查沙箱策略是否允许监听本地端口,然后再次运行 `/login`。如果本应可以监听但仍然失败,请运行 `/feedback`,以便报告中包含您的环境详细信息。

1327 1334 

1328<h3 id="claude-login-not-accepted">1335<h3 id="claude-login-not-accepted">

1329 Claude login not accepted1336 Claude 登录未被接受

1330</h3>1337</h3>

1331 1338 

1332您尝试启动 [云会话](/docs/zh-CN/claude-code-on-the-web),服务器拒绝使用 401 创建它:它不接受此机器发送的 Claude 登录,通常是因为登录过期或被撤销。1339您尝试启动[云端会话](/docs/zh-CN/claude-code-on-the-web),但服务器以 401 拒绝创建它:它不接受这台机器发送的 Claude 登录,通常是因为登录已过期或被撤销。

1333 1340 

1334当服务器给出自己的原因时,行的第一部分是该原因。否则该行读作:1341如果服务器给出了原因,该行的第一部分就是服务器自己的原因。否则该行显示为:

1335 1342 

1336```text theme={null}1343```text theme={null}

1337Claude login not accepted · Run /login, then try again1344Claude login not accepted · Run /login, then try again

1338```1345```

1339 1346 

1340**应该做什么:**1347**解决方法:**

1341 1348 

1342* 运行 `/login`,完成登录,然后再次启动会话1349* 运行 `/login`,完成登录,然后重新启动会话

1343 1350 

1344<h3 id="artifacts-need-a-claude-ai-login">1351<h3 id="artifacts-need-a-claude-ai-login">

1345 工件需要 claude.ai 登录1352 Artifact 需要 claude.ai 登录

1346</h3>1353</h3>

1347 1354 

1348Claude Code 拒绝了 [工件](/docs/zh-CN/artifacts) 发布或读取,因为会话没有可用于工件的 claude.ai 登录。1355Claude Code 拒绝了 [Artifact](/docs/zh-CN/artifacts) 的发布或读取,因为该会话没有可用于 Artifact 的 claude.ai 登录。

1349 1356 

1350消息的每种形式都以相同的词开头,然后是取决于您的会话如何进行身份验证的补救措施。没有竞争凭证时,它读作:1357该消息的每种形式都以相同的文字开头,后面跟着取决于会话身份验证方式的解决办法。在没有竞争凭据的情况下,它显示为:

1351 1358 

1352```text theme={null}1359```text theme={null}

1353Artifacts need a claude.ai login. Run /login and select "Claude account with subscription", then retry — the "Anthropic Console account" option does not provide claude.ai credentials.1360Artifacts need a claude.ai login. Run /login and select "Claude account with subscription", then retry — the "Anthropic Console account" option does not provide claude.ai credentials.

1354```1361```

1355 1362 

1356**应该做什么:**1363**解决方法:**

1357 1364 

1358* 运行 `/login` 并选择 **Claude account with subscription**。**Anthropic Console account** 选项不提供 claude.ai 凭证。1365* 运行 `/login` 并选择 **Claude account with subscription**。**Anthropic Console account** 选项不提供 claude.ai 凭据。

1359* 当消息命名优先的凭证(如 `ANTHROPIC_API_KEY`、`apiKeyHelper` 设置或之前 `/login` 保存的 Console 密钥)时,按消息说的方式删除它,然后运行 `/login`1366* 当消息指出某个优先级更高的凭据时,例如 `ANTHROPIC_API_KEY`、`apiKeyHelper` 设置或之前 `/login` 保存的 Console 密钥,请按消息所述将其删除,然后运行 `/login`

1360* 当消息说此远程会话通过启动它的机器进行身份验证时,在该机器上登录到 claude.ai,然后重新连接会话1367* 当消息表示此远程会话通过启动它的机器进行身份验证时,请在那台机器上登录 claude.ai,然后重新连接会话

1361* 当消息说凭证由会话的主机环境注入时,您无法在该会话中更改它;启动登录到 claude.ai 的会话1368* 当消息表示凭据由会话的宿主环境注入时,您无法在该会话中更改它;请启动一个已登录 claude.ai 的会话

1362* 请参阅 [可用性](/docs/zh-CN/artifacts#availability) 了解工件具有的其他要求,例如计划、模型提供商和组织策略1369* 有关 Artifact 的其他要求(例如套餐、模型提供商和组织策略),请参阅[可用性](/docs/zh-CN/artifacts#availability)

1363 1370 

1364<h3 id="administrator-policy-requires-a-cloud-gateway-sign-in">1371<h3 id="administrator-policy-requires-a-cloud-gateway-sign-in">

1365 管理员策略需要 Cloud gateway 登录1372 管理员策略要求使用云网关登录

1366</h3>1373</h3>

1367 1374 

1368管理员在此机器上的 [托管设置](/docs/zh-CN/managed-settings) 将 [`forceLoginMethod`](/docs/zh-CN/settings-reference#forceloginmethod) 设置为 `"gateway"` 或设置 [`forceLoginGatewayUrl`](/docs/zh-CN/settings-reference#forcelogingatewayurl)。除非您通过 `CLAUDE_CODE_USE_BEDROCK` 等变量选择云提供商,Claude Code 仅接受 [Claude apps gateway](/docs/zh-CN/claude-apps-gateway) 登录。您会看到两条消息之一:1375这台机器上管理员的[托管设置](/docs/zh-CN/managed-settings)将 [`forceLoginMethod`](/docs/zh-CN/settings-reference#forceloginmethod) 设置为 `"gateway"`,或设置了 [`forceLoginGatewayUrl`](/docs/zh-CN/settings-reference#forcelogingatewayurl)。除非您通过 `CLAUDE_CODE_USE_BEDROCK` 等变量选择了云服务提供商,否则 Claude Code 只接受 [Claude apps gateway](/docs/zh-CN/claude-apps-gateway) 登录。您会看到以下两条消息之一:

1369 1376 

1370```text theme={null}1377```text theme={null}

1371Not signed in to the Cloud gateway — run /login.1378Not signed in to the Cloud gateway — run /login.

1372```1379```

1373 1380 

1374当会话没有网关登录时,模型请求失败,显示此消息,例如因为您自策略到达机器后未运行 `/login`。1381当会话没有网关登录时(例如自该策略下发到这台机器以来您还没有运行过 `/login`),模型请求会以此消息失败。

1375 1382 

1376如果机器还持有 Anthropic 颁发的凭证且托管设置设置了 `forceLoginMethod` 或 `forceLoginOrgUUID`,Claude Code 在启动时改为以此消息退出:1383如果这台机器上还存在 Anthropic 颁发的凭据,且托管设置设置了 `forceLoginMethod` 或 `forceLoginOrgUUID`,Claude Code 会改为在启动时退出。该凭据可以是 `ANTHROPIC_API_KEY` 或 `ANTHROPIC_AUTH_TOKEN` 变量、`apiKeyHelper` 设置,或之前 Claude Console 登录保存的 API 密钥。消息开头如下:

1377 1384 

1378```text theme={null}1385```text theme={null}

1379Administrator policy requires a Cloud gateway sign-in on this machine; the1386Administrator policy requires a Cloud gateway sign-in on this machine; the


1381ANTHROPIC_AUTH_TOKEN, or apiKeyHelper) is not used.1388ANTHROPIC_AUTH_TOKEN, or apiKeyHelper) is not used.

1382```1389```

1383 1390 

1384**应该做什么:**1391**解决方法:**

1385 1392 

1386* 运行 `/login` 并在 **Cloud gateway** 屏幕上完成登录1393* 运行 `/login`,并在 **Cloud gateway** 屏幕上完成登录

1387* 对于启动消息,删除您配置的 `ANTHROPIC_API_KEY`、`ANTHROPIC_AUTH_TOKEN` 或 `apiKeyHelper` 设置。要删除保存的 Console API 密钥,运行 `claude auth logout`,这也会删除保存的 claude.ai 登录。如果您使用 `CLAUDE_CODE_USE_*` 选择云提供商,会话然后以无登录启动。否则启动 `claude` 并运行 `/login`1394* 对于启动时的消息,请删除您配置的 `ANTHROPIC_API_KEY`、`ANTHROPIC_AUTH_TOKEN` 或 `apiKeyHelper` 设置。要删除已保存的 Console API 密钥,请运行 `claude auth logout`,这也会删除已保存的 claude.ai 登录。如果您使用 `CLAUDE_CODE_USE_*` 选择了云服务提供商,会话随后会在没有登录的情况下启动。否则,请启动 `claude` 并运行 `/login`

1388* 如果您认为机器不应该需要网关,请要求管理该机器的管理员从其托管设置中删除 `forceLoginMethod` 和 `forceLoginGatewayUrl`1395* 如果您认为这台机器不应要求网关,请让管理该机器的管理员从其托管设置中删除 `forceLoginMethod` 和 `forceLoginGatewayUrl`

1389 1396 

1390在 v2.1.265 上,回归也在某些 LLM 网关和代理配置中显示第一条消息,这些配置使用 API 密钥、`apiKeyHelper` 或自定义标头进行身份验证,即使机器上没有管理员要求。更新到 v2.1.266 或更高版本。您不需要更改您的配置。1397在 v2.1.265 中,一个回归问题导致某些使用 API 密钥、`apiKeyHelper` 或自定义标头进行身份验证的 LLM 网关和代理配置也会显示第一条消息,即使机器上没有管理员要求。请更新到 v2.1.266 或更高版本。您无需更改配置。

1391 1398 

1392在 v2.1.261 之前,在将 `forceLoginMethod` 设置为 `"gateway"` 的机器上,Claude Code 使用剩余的保存登录而不是失败模型请求,并使用 `This machine's managed settings require a first-party login` 而不是启动消息报告配置的环境凭证。在 v2.1.265 之前,其托管设置仅设置 `forceLoginGatewayUrl` 的机器不需要网关登录,Claude Code 在那里使用剩余凭证。1399在 v2.1.261 之前,在将 `forceLoginMethod` 设置为 `"gateway"` 的机器上,Claude Code 会使用遗留的已保存登录,而不是让模型请求失败,并且会以 `This machine's managed settings require a first-party login` 而非启动消息报告已配置的环境凭据。在 v2.1.265 之前,托管设置中只设置了 `forceLoginGatewayUrl` 的机器不会要求网关登录,Claude Code 会在那里使用遗留的凭据。

1393 1400 

1394<h3 id="your-account-is-on-hold">1401<h3 id="your-account-is-on-hold">

1395 您的账户被冻结1402 您的账户已被暂停

1396</h3>1403</h3>

1397 1404 

1398您的 Claude 账户背后的登录已被暂停。Claude Code 在尝试更新您保存的登录并了解冻结时显示第一条消息,在您在浏览器中完成的登录报告时显示第二条消息:1405您登录所用的 Claude 账户已被暂停。当 Claude Code 尝试续期您已保存的登录并得知账户被暂停时,会显示第一条消息;当您在浏览器中完成的登录报告该情况时,会显示第二条消息:

1399 1406 

1400```text theme={null}1407```text theme={null}

1401Your account is on hold and can't use Claude Code. View details or appeal: https://claude.ai/restricted1408Your account is on hold and can't use Claude Code. View details or appeal: https://claude.ai/restricted

1402Your account is on hold and can't sign in to Claude Code. View details or appeal: https://claude.ai/restricted1409Your account is on hold and can't sign in to Claude Code. View details or appeal: https://claude.ai/restricted

1403```1410```

1404 1411 

1405使用同一账户再次登录不会清除消息,因为冻结是在账户上而不是登录上。在 [非交互式模式](/docs/zh-CN/headless) (`-p`) 和 [Agent SDK](/docs/zh-CN/agent-sdk/overview) 中,结构化错误代码为 `account_on_hold`。在 v2.1.235 之前,Claude Code 将被冻结的账户报告为 [登录过期 · 请运行 /login](#login-expired),其恢复步骤无法清除冻结。1412使用同一账户重新登录不会清除该消息,因为暂停针对的是账户而非登录。在[非交互模式](/docs/zh-CN/headless)(`-p`)和 [Agent SDK](/docs/zh-CN/agent-sdk/overview) 中,结构化错误码为 `account_on_hold`。在 v2.1.235 之前,Claude Code 会将被暂停的账户报告为 [Login expired · Please run /login](#login-expired),而其恢复步骤无法解除暂停。

1406 1413 

1407**应该做什么:**1414**解决方法:**

1408 1415 

1409* 打开消息中的链接以查看冻结的详细信息或对其提出上诉1416* 打开消息中的链接,查看暂停的详细信息或提出申诉

1410* 如果您有另一个 Claude 账户或不受冻结影响的 API 密钥,您可以在冻结解决期间继续工作:使用该账户运行 `/login`,或使用 `ANTHROPIC_API_KEY` 设置密钥1417* 如果您有另一个不受此暂停影响的 Claude 账户或 API 密钥,可以在暂停处理期间继续工作:使用该账户运行 `/login`,或通过 `ANTHROPIC_API_KEY` 设置该密钥

1411 1418 

1412<h3 id="anthropic-profile-login-expired">1419<h3 id="anthropic-profile-login-expired">

1413 Anthropic 配置文件登录过期1420 Anthropic 配置档案登录已过期

1414</h3>1421</h3>

1415 1422 

1416Claude Code 通过 Anthropic 凭证配置文件进行身份验证,其保存的登录凭证已过期,且配置文件不包含 Claude Code 可用于更新它的刷新凭证。Claude Code 在本地停止每个请求而不重试,因为重试会读取相同的过期凭证。1423Claude Code 正在通过一个 Anthropic 凭据配置档案进行身份验证,该配置档案中保存的登录凭据已过期,并且其中没有 Claude Code 可用于续期的刷新凭据。Claude Code 会在本地停止每个请求而不重试,因为重试会读取同一个已过期的凭据。

1417 1424 

1418```text theme={null}1425```text theme={null}

1419Anthropic profile login expired · Re-authenticate your Anthropic profile1426Anthropic profile login expired · Re-authenticate your Anthropic profile

1420Anthropic profile login expired · Run /login to use your claude.ai account instead, or re-authenticate the profile1427Anthropic profile login expired · Run /login to use your claude.ai account instead, or re-authenticate the profile

1421```1428```

1422 1429 

1423这仅在活跃凭证来自 Anthropic 凭证配置文件时出现,您使用 `ANTHROPIC_PROFILE` 环境变量选择该文件,Claude Code 从您的 Anthropic 配置目录中发现为活跃配置文件,或 Claude Code 在您 [不使用 API 密钥登录](/docs/zh-CN/authentication#sign-in-without-an-api-key) 时写入。使用 `/login` 的 claude.ai 选项、API 密钥、持有者令牌(如 `ANTHROPIC_AUTH_TOKEN`)或第三方提供商进行身份验证的会话永远不会看到此消息。1430只有当生效的凭据来自 Anthropic 凭据配置档案时才会出现此消息,这类配置档案包括:您通过 `ANTHROPIC_PROFILE` 环境变量选择的配置档案、Claude Code 在您的 Anthropic 配置目录中发现的当前配置档案,或 Claude Code 在您[无需 API 密钥登录](/docs/zh-CN/authentication#sign-in-without-an-api-key)时写入的配置档案。使用 API 密钥、bearer 令牌(例如 `ANTHROPIC_AUTH_TOKEN`)或第三方提供商进行身份验证的会话永远不会看到此消息。

1424 1431 

1425在 [提供无密钥登录](/docs/zh-CN/authentication#sign-in-without-an-api-key) 的机器上,运行 `/login`,选择 Anthropic Console 账户,并再次登录以更新无密钥 Console 登录或 Claude Platform CLI 的 `ant auth login` 写入的配置文件。Claude Code 替换该配置文件中的过期凭证。对于联合配置文件或另一个工具创建的配置文件,`/login` 不会更新凭证。您看到的形式取决于您是否显式选择了配置文件或 Claude Code 发现了它:1432在[提供无密钥登录](/docs/zh-CN/authentication#sign-in-without-an-api-key)的机器上,运行 `/login`,选择 Anthropic Console 账户并重新登录,即可续期由无密钥 Console 登录或 Claude Platform CLI 的 `ant auth login` 写入的配置档案。Claude Code 会替换该配置档案中已过期的凭据。对于联合身份配置档案或由其他工具创建的配置档案,`/login` 不会续期其凭据。您看到哪种形式取决于配置档案是由您选择的还是由 Claude Code 发现的:

1426 1433 

1427* 当您显式设置 `ANTHROPIC_PROFILE` 时,消息以 `Re-authenticate your Anthropic profile` 结尾。1434* 当您显式设置 `ANTHROPIC_PROFILE` 时,消息以 `Re-authenticate your Anthropic profile` 结尾。

1428* 当 Claude Code 从您的配置目录发现配置文件时,消息提供 `/login`,因为 Claude Code 给予工作的 `/login` 优先于发现的配置文件,然后改为使用您的 claude.ai 或 Console 账户进行身份验证。在 v2.1.234 之前,Claude Code 在这种情况下也显示 `Re-authenticate your Anthropic profile` 形式。1435* 当 Claude Code 从您的配置目录中发现该配置档案时,消息会提供 `/login` 选项,因为 Claude Code 会让可用的 `/login` 优先于发现的配置档案,然后改用您的 claude.ai 或 Console 账户进行身份验证。在 v2.1.234 之前,Claude Code 在这种情况下也会显示 `Re-authenticate your Anthropic profile` 形式。

1429 1436 

1430**应该做什么:**1437**解决方法:**

1431 1438 

1432* 再次登录到配置文件,然后重试:在 [提供无密钥登录](/docs/zh-CN/authentication#sign-in-without-an-api-key) 的机器上,运行 `/login` 并为无密钥 Console 登录或 Claude Platform CLI 的 `ant auth login` 写入的配置文件选择 Anthropic Console 账户;对于其他配置文件,使用创建它们的工具1439* 重新登录该配置档案,然后重试:在[提供无密钥登录](/docs/zh-CN/authentication#sign-in-without-an-api-key)的机器上,对于由无密钥 Console 登录或 Claude Platform CLI 的 `ant auth login` 写入的配置档案,请运行 `/login` 并选择 Anthropic Console 账户;对于其他配置档案,请使用创建它们的工具

1433* 如果管理员配置了配置文件的凭证,请要求他们颁发新凭证1440* 如果该配置档案的凭据是由管理员分发的,请让管理员颁发新的凭据

1434* 运行 `/status` 以确认活跃凭证源和配置文件名称1441* 运行 `/status`,确认当前生效的凭据来源和配置档案名称

1435* 要停止使用配置文件,如果您设置了 `ANTHROPIC_PROFILE`,则取消设置它,然后以其他方式进行身份验证,例如 `/login` 或 `ANTHROPIC_API_KEY`1442* 要停止使用该配置档案,如果您设置了 `ANTHROPIC_PROFILE`,请取消设置它,然后通过其他方式进行身份验证,例如 `/login` 或 `ANTHROPIC_API_KEY`

1436 1443 

1437<h3 id="oauth-scope-requirement">1444<h3 id="oauth-scope-requirement">

1438 OAuth 范围要求1445 OAuth 作用域要求

1439</h3>1446</h3>

1440 1447 

1441存储的令牌早于较新功能需要的权限范围:1448已存储的令牌早于某个新功能所需的权限作用域:

1442 1449 

1443```text theme={null}1450```text theme={null}

1444OAuth token does not meet scope requirement: user:profile1451OAuth token does not meet scope requirement: user:profile

1445```1452```

1446 1453 

1447**应该做什么:**1454**解决方法:**

1448 1455 

1449* 运行 `/login` 以获取具有当前范围的新令牌。您不需要先登出。1456* 运行 `/login` 获取具有当前作用域的新令牌。无需先注销。

1450 1457 

1451<h3 id="claude-ai-rejected-the-session-token">1458<h3 id="claude-ai-rejected-the-session-token">

1452 claude.ai 拒绝了会话令牌1459 claude.ai 拒绝了会话令牌

1453</h3>1460</h3>

1454 1461 

1455[claude.ai 连接器](/docs/zh-CN/mcp#use-mcp-servers-from-claude-ai) 请求失败,因为 claude.ai 拒绝了您的 Claude Code 登录中的令牌。被拒绝的令牌是您的登录,而不是连接器在 claude.ai 中的自己的授权,因此再次授权连接器不会解决它。在 `/mcp` 中,连接器显示为 `session token rejected`,其详细视图读作:1462一个 [claude.ai 连接器](/docs/zh-CN/mcp#use-mcp-servers-from-claude-ai)请求失败,因为 claude.ai 拒绝了来自您 Claude Code 登录的令牌。被拒绝的令牌是您的登录,而不是连接器自身在 claude.ai 中的授权,因此重新授权连接器并不能解决问题。在 `/mcp` 中,该连接器显示为 `session token rejected`,其详细信息视图显示:

1456 1463 

1457```text theme={null}1464```text theme={null}

1458claude.ai rejected the session token. Run /login, then reconnect.1465claude.ai rejected the session token. Run /login, then reconnect.

1459```1466```

1460 1467 

1461**应该做什么:**1468**解决方法:**

1462 1469 

1463* 运行 `/login` 再次登录1470* 运行 `/login` 重新登录

1464* 从 `/mcp` 重新连接连接器,或运行 `/mcp reconnect <server>`。在您再次登录之前重新连接会使连接器处于相同状态。`/mcp` 面板的 **Reconnect** 选项报告 `your claude.ai session token was rejected`;输入的 `/mcp reconnect <server>` 形式报告成功重新连接,即使令牌仍然被拒绝。1471* 从 `/mcp` 重新连接该连接器,或运行 `/mcp reconnect <server>`。在重新登录之前重新连接,连接器会保持相同状态。`/mcp` 面板的 **Reconnect** 选项会报告 `your claude.ai session token was rejected`;而输入的 `/mcp reconnect <server>` 形式会报告重新连接成功,即使令牌仍被拒绝。

1465 1472 

1466在 v2.1.222 之前,Claude Code 改为将连接器标记为需要身份验证,这指向您连接器的授权流程,即使完成它也不会解决状态。1473在 v2.1.222 之前,Claude Code 会将该连接器标记为需要身份验证,从而引导您进入连接器的授权流程,但完成该流程并不能解决此状态。

1467 1474 

1468<h3 id="mcp-server-needs-you-to-sign-in-again">1475<h3 id="mcp-server-needs-you-to-sign-in-again">

1469 MCP 服务器需要您再次登录1476 MCP 服务器需要您重新登录

1470</h3>1477</h3>

1471 1478 

1472远程 [MCP 服务器](/docs/zh-CN/mcp) 在会话中期拒绝了工具调用上的凭证,通常是因为登录或令牌过期或令牌缺少工具需要的权限。工具调用失败,`/mcp` 将服务器标记为 [需要身份验证](/docs/zh-CN/mcp#authenticate-with-remote-mcp-servers)。1479远程 [MCP 服务器](/docs/zh-CN/mcp)在会话期间的一次工具调用中拒绝了凭据,通常是因为登录或令牌已过期,或者令牌缺少工具所需的权限。该工具调用会失败,`/mcp` 会将该服务器标记为[需要身份验证](/docs/zh-CN/mcp#authenticate-with-remote-mcp-servers)。

1473 1480 

1474对于您从 Claude Code 登录的服务器,包括 claude.ai 连接器,登录已过期或被撤销:1481对于您从 Claude Code 登录的服务器(包括 claude.ai 连接器),说明登录已过期或被撤销:

1475 1482 

1476```text theme={null}1483```text theme={null}

1477MCP server "<name>" needs you to sign in again (run /mcp to re-authenticate)1484MCP server "<name>" needs you to sign in again (run /mcp to re-authenticate)

1478```1485```

1479 1486 

1480运行 `/mcp`,选择服务器,并从其菜单再次登录。1487运行 `/mcp`,选择该服务器,然后从其菜单中重新登录。

1481 1488 

1482对于使用 [`headersHelper`](/docs/zh-CN/mcp#use-dynamic-headers-for-custom-authentication) 脚本配置的服务器,Claude Code 已在显示此之前重新运行 helper 并重试调用一次:1489对于配置了 [`headersHelper`](/docs/zh-CN/mcp#use-dynamic-headers-for-custom-authentication) 脚本的服务器,Claude Code 在显示以下消息之前已经重新运行过辅助脚本并重试过一次调用:

1483 1490 

1484```text theme={null}1491```text theme={null}

1485MCP server "<name>" rejected the credential from its headersHelper (check the helper and run /mcp to reconnect, or to authenticate if the server also uses OAuth)1492MCP server "<name>" rejected the credential from its headersHelper (check the helper and run /mcp to reconnect, or to authenticate if the server also uses OAuth)

1486```1493```

1487 1494 

1488检查 helper 返回服务器接受的凭证,然后从 `/mcp` 重新连接,这会再次运行 helper。1495检查辅助脚本返回的凭据是否被服务器接受,然后从 `/mcp` 重新连接,这会再次运行辅助脚本。

1489 1496 

1490对于在其配置中具有静态 `Authorization` 标头的服务器:1497对于配置中带有静态 `Authorization` 标头的服务器:

1491 1498 

1492```text theme={null}1499```text theme={null}

1493MCP server "<name>" rejected the Authorization header in its config (update it, then run /mcp to reconnect)1500MCP server "<name>" rejected the Authorization header in its config (update it, then run /mcp to reconnect)

1494```1501```

1495 1502 

1496在配置服务器的位置更新标头值,然后从 `/mcp` 重新连接。1503在配置该服务器的位置更新标头值,然后从 `/mcp` 重新连接。

1497 1504 

1498在 v2.1.273 之前,过期的登录、`headersHelper` 和 `Authorization` 标头情况都显示 `MCP server "<name>" requires re-authorization (token expired)`。1505在 v2.1.273 之前,登录过期、`headersHelper` 和 `Authorization` 标头这几种情况都会显示 `MCP server "<name>" requires re-authorization (token expired)`。

1499 1506 

1500服务器也可以使用 HTTP 403 `insufficient_scope` 拒绝工具调用,以要求您授权范围,有时是您的令牌已列出的范围。消息命名该范围:1507服务器也可能以 HTTP 403 `insufficient_scope` 拒绝工具调用,要求您授权某个作用域,有时是您的令牌已经列出的作用域。消息会指出该作用域:

1501 1508 

1502```text theme={null}1509```text theme={null}

1503MCP server "<name>" needs additional permissions (scope: "<scope>") — run /mcp to re-authenticate1510MCP server "<name>" needs additional permissions (scope: "<scope>") — run /mcp to re-authenticate

1504```1511```

1505 1512 

1506运行 `/mcp`,选择服务器,并从其菜单再次进行身份验证。1513运行 `/mcp`,选择该服务器,然后从其菜单中重新进行身份验证。

1507 1514 

1508当服务器的配置既不设置 [`oauth.scopes`](/docs/zh-CN/mcp#restrict-oauth-scopes) 也不设置 [`authServerMetadataUrl`](/docs/zh-CN/mcp#override-oauth-metadata-discovery) 时,Claude Code 请求服务器命名的范围。使用任一设置,Claude Code 改为请求该设置的范围。如果您固定了 `oauth.scopes`,在再次进行身份验证之前将缺失的范围添加到该列表。1515当服务器的配置既未设置 [`oauth.scopes`](/docs/zh-CN/mcp#restrict-oauth-scopes) 也未设置 [`authServerMetadataUrl`](/docs/zh-CN/mcp#override-oauth-metadata-discovery) 时,Claude Code 会请求服务器指出的作用域。如果设置了其中任何一项,Claude Code 会改为请求该设置中的作用域。如果您固定了 `oauth.scopes`,请在重新进行身份验证之前将缺少的作用域添加到该列表中。

1509 1516 

1510在 v2.1.274 之前,这种情况显示 `needs you to sign in again` 消息,在 v2.1.273 之前它显示 `requires re-authorization (token expired)`,如其他情况。1517在 v2.1.274 之前,这种情况会显示 `needs you to sign in again` 消息;在 v2.1.273 之前,它与其他情况一样显示 `requires re-authorization (token expired)`。

1511 1518 

1512<h3 id="mcp-server-url-is-missing-or-not-a-valid-url">1519<h3 id="mcp-server-url-is-missing-or-not-a-valid-url">

1513 MCP 服务器 URL 缺失或不是有效的 URL1520 MCP 服务器 URL 缺失或不是有效的 URL

1514</h3>1521</h3>

1515 1522 

1516Claude Code 拒绝为远程 MCP 服务器启动 OAuth 登录,因为服务器的配置 `url` 不解析为 URL。除非 Claude Code 有更具体的配置问题要为服务器报告,否则在您的 shell 中运行 [`claude mcp login <name>`](/docs/zh-CN/mcp#authenticate-from-the-command-line) 会将拒绝打印为:1523Claude Code 拒绝为远程 MCP 服务器启动 OAuth 登录,因为该服务器配置的 `url` 无法解析为 URL。除非 Claude Code 有针对该服务器更具体的配置问题需要报告,否则在 shell 中运行 [`claude mcp login <name>`](/docs/zh-CN/mcp#authenticate-from-the-command-line) 会输出如下拒绝信息:

1517 1524 

1518```text theme={null}1525```text theme={null}

1519Couldn't complete authentication for "<name>": This server's URL is missing or not a valid URL, so sign-in can't start. Fix the URL in its MCP config (or set the environment variable it uses) and try again.1526Couldn't complete authentication for "<name>": This server's URL is missing or not a valid URL, so sign-in can't start. Fix the URL in its MCP config (or set the environment variable it uses) and try again.

1520```1527```

1521 1528 

1522**应该做什么:**1529**解决方法:**

1523 1530 

1524* 将条目的 `url` 设置为服务器的真实端点,其中配置服务器,或设置其 [`${VAR}` 引用](/docs/zh-CN/mcp#environment-variable-expansion-in-mcp-json) 命名的环境变量,然后再次运行登录。1531* 在配置该服务器的位置,将该条目的 `url` 设置为服务器的真实端点,或设置其 [`${VAR}` 引用](/docs/zh-CN/mcp#environment-variable-expansion-in-mcp-json)所指的环境变量,然后再次运行登录。

1525 1532 

1526<h3 id="issuer-mismatch-in-authorization-response">1533<h3 id="issuer-mismatch-in-authorization-response">

1527 授权响应中的发行者不匹配1534 授权响应中的颁发者不匹配

1528</h3>1535</h3>

1529 1536 

1530在 [MCP OAuth 登录](/docs/zh-CN/mcp#authenticate-with-remote-mcp-servers) 期间,授权服务器重定向回 Claude Code,其中 `iss` 参数不命名 Claude Code 从服务器的 OAuth 元数据期望的发行者。此步骤中的错误发行者是授权服务器混合攻击的样子,因此 Claude Code 失败登录而不是交换授权代码。Claude Code 在浏览器登录后在 `/mcp` 服务器菜单中显示错误:1537在 [MCP OAuth 登录](/docs/zh-CN/mcp#authenticate-with-remote-mcp-servers)期间,授权服务器重定向回 Claude Code 时携带的 `iss` 参数与 Claude Code 根据服务器 OAuth 元数据所预期的颁发者不符。在这一步出现错误的颁发者,正是授权服务器混淆攻击的表现,因此 Claude Code 会让登录失败,而不是交换授权码。浏览器登录后,Claude Code 会在 `/mcp` 服务器菜单中显示该错误:

1531 1538 

1532```text theme={null}1539```text theme={null}

1533Issuer mismatch in authorization response (RFC 9207): expected "https://auth.example.com", received "https://other.example.com"1540Issuer mismatch in authorization response (RFC 9207): expected "https://auth.example.com", received "https://other.example.com"

1534```1541```

1535 1542 

1536`expected` 是来自服务器的 OAuth 元数据的发行者,`received` 是重定向携带的 `iss` 值。其重定向不携带 `iss` 参数的登录通过检查,除非服务器的元数据设置 `authorization_response_iss_parameter_supported`,在这种情况下 Claude Code 失败登录。1543`expected` 是来自服务器 OAuth 元数据的颁发者,`received` 是重定向携带的 `iss` 值。重定向不携带 `iss` 参数的登录会通过检查,除非服务器的元数据设置了 `authorization_response_iss_parameter_supported`,此时 Claude Code 会让登录失败。

1537 1544 

1538**应该做什么:**1545**解决方法:**

1539 1546 

1540* 从 `/mcp` 再次尝试登录1547* 从 `/mcp` 再次尝试登录

1541* 如果错误重复,将其报告给服务器操作员。修复是服务器端的:授权服务器必须在 `iss` 参数中返回与在其元数据中宣传的相同发行者1548* 如果错误重复出现,请报告给服务器运营方。修复需在服务器端进行:授权服务器必须在 `iss` 参数中返回与其元数据中公布的相同的颁发者

1542* 要在修复服务器时连接,使用 [`MCP_SDK_GENERATION=v1`](/docs/zh-CN/env-vars) 启动 Claude Code,其 [运行时](/docs/zh-CN/mcp#mcp-client-runtimes) 不运行此检查。这消除了对混合攻击的保护,因此更喜欢服务器端修复1549* 要在服务器修复期间进行连接,请使用 [`MCP_SDK_GENERATION=v1`](/docs/zh-CN/env-vars) 启动 Claude Code,其[运行时](/docs/zh-CN/mcp#mcp-client-runtimes)不会执行此检查。这会移除针对混淆攻击的一项保护,因此应优先采用服务器端修复

1543 1550 

1544在 v2.1.232 之前,Claude Code 仅在逐步推出中或当您设置 `MCP_SDK_GENERATION=v2` 时使用 v2 运行时。1551在 v2.1.232 之前,Claude Code 仅在逐步推出期间或您设置了 `MCP_SDK_GENERATION=v2` 时才使用 v2 运行时。

1545 1552 

1546<h3 id="refusing-to-send-credentials-to-non-https-token-endpoint">1553<h3 id="refusing-to-send-credentials-to-non-https-token-endpoint">

1547 拒绝向非 https 令牌端点发送凭证1554 拒绝向非 https 令牌端点发送凭据

1548</h3>1555</h3>

1549 1556 

1550在 [v2 运行时](/docs/zh-CN/mcp#mcp-client-runtimes) 上,Claude Code 仅向通过 HTTPS 或在 `localhost`、`127.0.0.1` 或 `::1` 处提供的令牌端点发送 [MCP OAuth](/docs/zh-CN/mcp#authenticate-with-remote-mcp-servers) 令牌请求。此消息意味着服务器的令牌端点都不是,因此 Claude Code 在发送请求前停止。这发生在浏览器登录之后,因此浏览器步骤首先成功,并且每当 Claude Code 刷新服务器的令牌时再次发生。1557在 [v2 运行时](/docs/zh-CN/mcp#mcp-client-runtimes)上,Claude Code 只会将 [MCP OAuth](/docs/zh-CN/mcp#authenticate-with-remote-mcp-servers) 令牌请求发送到通过 HTTPS 提供服务、或位于 `localhost`、`127.0.0.1` 或 `::1` 的令牌端点。此消息表示服务器的令牌端点两者都不是,因此 Claude Code 在发送请求之前停止了。这发生在浏览器登录之后,因此浏览器步骤会先成功;此外每当 Claude Code 刷新服务器的令牌时也会再次发生。

1551 1558 

1552在其完整形式中,消息来自 MCP SDK 并引用它拒绝的令牌端点。在调试日志中,它遵循 `Error during auth completion:` 用于登录或 `Token refresh failed:` 用于刷新。在您的 shell 中,`claude mcp login <name>` 在 `Couldn't complete authentication for "<name>":` 之后打印它,在会话中,`/mcp` 在服务器的菜单下显示它:1559该消息的完整形式来自 MCP SDK,并会引用它所拒绝的令牌端点。在调试日志中,登录时它跟在 `Error during auth completion:` 之后,刷新时跟在 `Token refresh failed:` 之后。在您的 shell 中,`claude mcp login <name>` 会在 `Couldn't complete authentication for "<name>":` 之后输出它;在会话中,`/mcp` 会在服务器菜单下显示它:

1553 1560 

1554```text theme={null}1561```text theme={null}

1555Refusing to send credentials to non-https token endpoint 'http://192.168.1.50:8123/oauth/token'. OAuth token requests MUST use TLS (localhost / 127.0.0.1 / ::1 are exempt).1562Refusing to send credentials to non-https token endpoint 'http://192.168.1.50:8123/oauth/token'. OAuth token requests MUST use TLS (localhost / 127.0.0.1 / ::1 are exempt).

1556```1563```

1557 1564 

1558Claude Code 将具有查询字符串或长随机外观路径段的服务器 URL 视为可能的秘密。对于这样的服务器,它在显示或记录它们之前会编辑 MCP SDK 引发的登录错误。此错误然后读作可能在版本之间更改的短名称,例如 `io`,后跟 `from the MCP SDK for` 和编辑的服务器 URL。MCP SDK 的其他错误在那里采用相同的形状。编辑的消息只能是此错误,当服务器的令牌端点是纯 `http://` 在 `localhost`、`127.0.0.1` 或 `::1` 以外的地址时。1565Claude Code 会将带有查询字符串或较长的随机外观路径段的服务器 URL 视为可能包含机密。对于此类服务器,它会在显示或记录 MCP SDK 抛出的登录错误之前对其进行脱敏处理。此时该错误会显示为一个可能随版本变化的简短名称(例如 `io`),后跟 `from the MCP SDK for` 和经过脱敏的服务器 URL。来自 MCP SDK 的其他错误在这种情况下也会呈现相同的形式。只有当服务器的令牌端点是位于 `localhost`、`127.0.0.1` 或 `::1` 以外地址的普通 `http://` 时,经过脱敏的消息才可能是此错误。

1559 1566 

1560**应该做什么:**1567**解决方法:**

1561 1568 

1562* 通过 HTTPS 提供该令牌端点,例如通过将服务器放在终止 TLS 的反向代理或隧道后面,并配置服务器以宣传 `https://` 地址1569* 通过 HTTPS 提供该令牌端点,例如将服务器置于终止 TLS 的反向代理或隧道之后,并配置服务器公布 `https://` 地址

1563* 要在不更改服务器的情况下连接,使用 [`MCP_SDK_GENERATION=v1`](/docs/zh-CN/env-vars) 启动 Claude Code,其 [运行时](/docs/zh-CN/mcp#mcp-client-runtimes) 不应用此规则并通过纯 HTTP 发送令牌请求。该选择持续到您退出并应用于每个服务器。v1 运行时也跳过 [发行者检查](#issuer-mismatch-in-authorization-response),因此更喜欢通过 HTTPS 提供端点1570* 要在不更改服务器的情况下进行连接,请使用 [`MCP_SDK_GENERATION=v1`](/docs/zh-CN/env-vars) 启动 Claude Code,其[运行时](/docs/zh-CN/mcp#mcp-client-runtimes)不应用此规则,会通过普通 HTTP 发送令牌请求。该选择在您退出前一直有效,并适用于所有服务器。v1 运行时还会跳过[颁发者检查](#issuer-mismatch-in-authorization-response),因此应优先通过 HTTPS 提供该端点

1564 1571 

1565<h3 id="aws-credentials-expired-or-invalid">1572<h3 id="aws-credentials-expired-or-invalid">

1566 AWS 凭证已过期或无效1573 AWS 凭据已过期或无效

1567</h3>1574</h3>

1568 1575 

1569您的 AWS 会话令牌已过期或被拒绝。此消息出现在来自 [Claude Platform on AWS](/docs/zh-CN/claude-platform-on-aws) 或 [Mantle 端点](/docs/zh-CN/amazon-bedrock#use-the-mantle-endpoint) 的 401,这是这些提供商报告过期安全令牌的方式。1576您的 AWS 会话令牌已过期或被拒绝。当 [Claude Platform on AWS](/docs/zh-CN/claude-platform-on-aws) 或 [Mantle 端点](/docs/zh-CN/amazon-bedrock#use-the-mantle-endpoint)返回 401 时会出现此消息,这是这些提供商报告安全令牌过期的方式。

1570 1577 

1571中间的操作提示因您的设置而异。稳定部分是前导 `AWS credentials expired or invalid`:1578中间的操作提示因您的配置而异。稳定不变的部分是开头的 `AWS credentials expired or invalid`:

1572 1579 

1573```text theme={null}1580```text theme={null}

1574AWS credentials expired or invalid · run /login and select "Claude Platform on AWS · refresh credentials", or run `aws sso login --profile myprofile` in another terminal · API Error: 401 ...1581AWS credentials expired or invalid · run /login and select "Claude Platform on AWS · refresh credentials", or run `aws sso login --profile myprofile` in another terminal · API Error: 401 ...

1575```1582```

1576 1583 

1577在 v2.1.273 之前,仅当配置了 `awsAuthRefresh` 时才出现此消息。1584在 v2.1.273 之前,只有在配置了 `awsAuthRefresh` 时才会出现此消息。

1578 1585 

1579**应该做什么:**1586**解决方法:**

1580 1587 

1581* 如果提示说凭证由此环境管理,启动 Claude Code 的应用拥有凭证,此处的其他步骤不适用:重试或联系您的管理员1588* 如果提示表示凭据由此环境管理,说明启动 Claude Code 的应用拥有该凭据,此处的其他步骤不适用:请重试,或联系您的管理员

1582* 如果设置了 [`awsAuthRefresh`](/docs/zh-CN/amazon-bedrock#advanced-credential-configuration),在另一个终端中运行消息中命名的命令,例如 `aws sso login --profile myprofile`,并完成浏览器登录,然后重试。否则自己刷新您使用的 AWS 凭证:您的 SSO 登录、访问密钥、API 密钥或代理令牌1589* 如果设置了 [`awsAuthRefresh`](/docs/zh-CN/amazon-bedrock#advanced-credential-configuration),请在另一个终端中运行消息中指出的命令(例如 `aws sso login --profile myprofile`)并完成浏览器登录,然后重试。否则,请自行刷新您使用的 AWS 凭据:您的 SSO 登录、访问密钥、API 密钥或代理令牌

1583* 在交互式会话中设置 `awsAuthRefresh`,您可以改为运行 `/login`,选择 **3rd-party platform**,然后在 **Using 3rd-party platforms** 下选择 **Claude Platform on AWS · refresh credentials** 以运行相同的命令而不重新启动 Claude Code。请参阅 [配置 AWS 凭证](/docs/zh-CN/claude-platform-on-aws#1-configure-aws-credentials)1590* 在设置了 `awsAuthRefresh` 的交互式会话中,您也可以运行 `/login`,选择 **3rd-party platform**,然后在 **Using 3rd-party platforms** 下选择 **Claude Platform on AWS · refresh credentials**,即可在不重启 Claude Code 的情况下运行同一命令。请参阅[配置 AWS 凭据](/docs/zh-CN/claude-platform-on-aws#1-configure-aws-credentials)

1584* 如果刷新命令成功后错误重复,通过在同一 shell 和配置文件中使用 `aws sts get-caller-identity` 在 Claude Code 外确认身份有效1591* 如果刷新命令成功后错误仍然重复出现,请在同一 shell 和配置档案中运行 `aws sts get-caller-identity`,确认该身份在 Claude Code 之外有效

1585 1592 

1586<h3 id="aws-authentication-failed">1593<h3 id="aws-authentication-failed">

1587 AWS 身份验证失败1594 AWS 身份验证失败


1589 1596 

1590您的 AWS 提供商返回了 403,或 [Amazon Bedrock](/docs/zh-CN/amazon-bedrock) 返回了 401。1597您的 AWS 提供商返回了 403,或 [Amazon Bedrock](/docs/zh-CN/amazon-bedrock) 返回了 401。

1591 1598 

1592Amazon Bedrock 将过期的安全令牌报告为 403,但 403 也是它报告授权拒绝的方式,例如来自缺失 IAM 权限的 `AccessDeniedException`。Claude Code 无法区分这两个原因。1599Amazon Bedrock 会将安全令牌过期报告为 403,但 403 也是它报告授权拒绝的方式,例如因缺少 IAM 权限而产生的 `AccessDeniedException`。Claude Code 无法区分这两种原因。

1593 1600 

1594来自 Amazon Bedrock 的 401 也在这里而不是在 [AWS 凭证已过期或无效](#aws-credentials-expired-or-invalid) 下,因为 Amazon Bedrock 不将过期令牌报告为 401。来自该端点的 401 通常来自请求路径中的其他内容,例如公司代理。1601来自 Amazon Bedrock 的 401 也会归入此处,而不是[AWS 凭据已过期或无效](#aws-credentials-expired-or-invalid),因为 Amazon Bedrock 不会将令牌过期报告为 401。来自该端点的 401 通常源自请求路径中的其他环节,例如企业代理。

1595 1602 

1596凭证刷新修复过期令牌,无法修复其他原因,因此消息提供两者:1603刷新凭据可以解决令牌过期问题,但无法解决其他原因,因此消息会同时给出两种建议:

1597 1604 

1598```text theme={null}1605```text theme={null}

1599AWS authentication failed · run /login and select "Claude Platform on AWS · refresh credentials", or run `aws sso login --profile myprofile` in another terminal · if credentials are current, check AWS permissions and model access · API Error: 403 ...1606AWS authentication failed · run /login and select "Claude Platform on AWS · refresh credentials", or run `aws sso login --profile myprofile` in another terminal · if credentials are current, check AWS permissions and model access · API Error: 403 ...

1600```1607```

1601 1608 

1602中间的操作提示因您的设置而异。稳定部分是前导 `AWS authentication failed`。1609中间的操作提示因您的配置而异。稳定不变的部分是开头的 `AWS authentication failed`。

1603 1610 

1604当 403 是 Amazon Bedrock 的答案,说您无权访问具有指定模型 ID 的模型时,提示改为告诉您在 Amazon Bedrock 控制台中为您的账户和区域启用模型。1611当该 403 是 Amazon Bedrock 表示您无权访问指定模型 ID 的模型时,提示会改为告诉您在 Amazon Bedrock 控制台中为您的账户和区域启用该模型。

1605 1612 

1606在 v2.1.273 之前,仅当配置了 `awsAuthRefresh` 时才出现此消息。1613在 v2.1.273 之前,只有在配置了 `awsAuthRefresh` 时才会出现此消息。

1607 1614 

1608**应该做什么:**1615**解决方法:**

1609 1616 

1610* 如果提示说凭证由此环境管理,启动 Claude Code 的应用拥有凭证,此处的其他步骤不适用:重试或联系您的管理员1617* 如果提示表示凭据由此环境管理,说明启动 Claude Code 的应用拥有该凭据,此处的其他步骤不适用:请重试,或联系您的管理员

1611* 刷新您的 AWS 凭证以防过期凭证是原因:运行消息中命名的 [`awsAuthRefresh`](/docs/zh-CN/amazon-bedrock#advanced-credential-configuration) 命令(当设置时),或自己刷新您的 SSO 登录、访问密钥、API 密钥或代理令牌1618* 刷新您的 AWS 凭据,以防原因是凭据过期:如果设置了 [`awsAuthRefresh`](/docs/zh-CN/amazon-bedrock#advanced-credential-configuration) 命令,请运行消息中指出的该命令,或自行刷新您的 SSO 登录、访问密钥、API 密钥或代理令牌

1612* 如果您的凭证是最新的,确认 [IAM 配置](/docs/zh-CN/amazon-bedrock#iam-configuration) 中的 IAM 权限已附加到您使用的身份,并且所选模型已为您的账户和区域启用1619* 如果您的凭据是最新的,请确认 [IAM 配置](/docs/zh-CN/amazon-bedrock#iam-configuration)中的 IAM 权限已附加到您使用的身份上,并且所选模型已为您的账户和区域启用

1613* 运行 `aws sts get-caller-identity` 以确认您的请求使用哪个身份1620* 运行 `aws sts get-caller-identity`,确认您的请求使用的是哪个身份

1614 1621 

1615<h3 id="google-cloud-credentials-expired-or-invalid">1622<h3 id="google-cloud-credentials-expired-or-invalid">

1616 Google Cloud 凭证已过期或无效1623 Google Cloud 凭据已过期或无效

1617</h3>1624</h3>

1618 1625 

1619您的 [Google Cloud 的 Agent Platform](/docs/zh-CN/google-vertex-ai) Google Cloud 凭证已过期或被拒绝:请求返回了 401,这是 Agent Platform 报告凭证过期的方式。1626您用于 [Google Cloud's Agent Platform](/docs/zh-CN/google-vertex-ai) 的 Google Cloud 凭据已过期或被拒绝:请求返回了 401,这是 Agent Platform 报告凭据过期的方式。

1620 1627 

1621中间的操作提示因您的设置而异。稳定部分是前导 `Google Cloud credentials expired or invalid`:1628中间的操作提示因您的配置而异。稳定不变的部分是开头的 `Google Cloud credentials expired or invalid`:

1622 1629 

1623```text theme={null}1630```text theme={null}

1624Google Cloud credentials expired or invalid · refresh your Google Cloud credentials (application default sign-in, or the key file in GOOGLE_APPLICATION_CREDENTIALS) and retry · API Error: 401 ...1631Google Cloud credentials expired or invalid · refresh your Google Cloud credentials (application default sign-in, or the key file in GOOGLE_APPLICATION_CREDENTIALS) and retry · API Error: 401 ...

1625```1632```

1626 1633 

1627**应该做什么:**1634**解决方法:**

1628 1635 

1629* 如果提示说凭证由此环境管理,启动 Claude Code 的应用拥有凭证,此处的其他步骤不适用:重试或联系您的管理员1636* 如果提示表示凭据由此环境管理,说明启动 Claude Code 的应用拥有该凭据,此处的其他步骤不适用:请重试,或联系您的管理员

1630* 如果您使用应用默认凭证进行身份验证,运行消息中命名的 [`gcpAuthRefresh`](/docs/zh-CN/google-vertex-ai#advanced-credential-configuration) 命令或 `gcloud auth application-default login`,并完成登录,然后重试1637* 如果您使用应用默认凭据进行身份验证,请运行消息中指出的 [`gcpAuthRefresh`](/docs/zh-CN/google-vertex-ai#advanced-credential-configuration) 命令或 `gcloud auth application-default login`,完成登录,然后重试

1631* 如果您通过设置了 `CLAUDE_CODE_SKIP_VERTEX_AUTH` 的 [LLM 网关](/docs/zh-CN/llm-gateway) 路由,刷新 `ANTHROPIC_AUTH_TOKEN` 或 `ANTHROPIC_CUSTOM_HEADERS` 中的网关令牌,然后重试1638* 如果您在设置了 `CLAUDE_CODE_SKIP_VERTEX_AUTH` 的情况下通过 [LLM 网关](/docs/zh-CN/llm-gateway)路由,请刷新 `ANTHROPIC_AUTH_TOKEN` 或 `ANTHROPIC_CUSTOM_HEADERS` 中的网关令牌,然后重试

1632* 如果您使用服务账户密钥文件进行身份验证,确认 `GOOGLE_APPLICATION_CREDENTIALS` 指向有效密钥。请参阅 [配置 GCP 凭证](/docs/zh-CN/google-vertex-ai#3-configure-gcp-credentials)1639* 如果您使用服务账号密钥文件进行身份验证,请确认 `GOOGLE_APPLICATION_CREDENTIALS` 指向有效的密钥。请参阅[配置 GCP 凭据](/docs/zh-CN/google-vertex-ai#3-configure-gcp-credentials)

1633* 如果刷新后错误重复,通过在同一 shell 中使用 `gcloud auth application-default print-access-token` 在 Claude Code 外确认身份有效1640* 如果刷新后错误仍然重复出现,请在同一 shell 中运行 `gcloud auth application-default print-access-token`,确认该身份在 Claude Code 之外可以正常使用

1634 1641 

1635在 v2.1.273 之前,来自 Agent Platform 的 401 显示通用 `Please run /login` 或 `Failed to authenticate` 消息,无法刷新 Google Cloud 凭证。1642在 v2.1.273 之前,来自 Agent Platform 的 401 会显示通用的 `Please run /login` 或 `Failed to authenticate` 消息,而这些方法无法刷新 Google Cloud 凭据。

1636 1643 

1637<h3 id="google-cloud-authentication-failed">1644<h3 id="google-cloud-authentication-failed">

1638 Google Cloud 身份验证失败1645 Google Cloud 身份验证失败

1639</h3>1646</h3>

1640 1647 

1641[Google Cloud 的 Agent Platform](/docs/zh-CN/google-vertex-ai) 返回了 403,它用于授权拒绝而不是过期凭证。通常您进行身份验证的身份缺少 IAM 权限,或模型未为您的项目启用。1648[Google Cloud's Agent Platform](/docs/zh-CN/google-vertex-ai) 返回了 403,它使用 403 表示授权拒绝,而非凭据过期。通常是您用于身份验证的身份缺少某项 IAM 权限,或者该模型未在您的项目中启用。

1642 1649 

1643中间的操作提示因您的设置而异。稳定部分是前导 `Google Cloud authentication failed`:1650中间的操作提示因您的配置而异。稳定不变的部分是开头的 `Google Cloud authentication failed`:

1644 1651 

1645```text theme={null}1652```text theme={null}

1646Google Cloud authentication failed · refresh your Google Cloud credentials (application default sign-in, or the key file in GOOGLE_APPLICATION_CREDENTIALS) and retry · if credentials are current, check GCP IAM permissions and Vertex AI model access · API Error: 403 ...1653Google Cloud authentication failed · refresh your Google Cloud credentials (application default sign-in, or the key file in GOOGLE_APPLICATION_CREDENTIALS) and retry · if credentials are current, check GCP IAM permissions and Vertex AI model access · API Error: 403 ...

1647```1654```

1648 1655 

1649**应该做什么:**1656**解决方法:**

1650 1657 

1651* 如果提示说凭证由此环境管理,启动 Claude Code 的应用拥有凭证,此处的其他步骤不适用:重试或联系您的管理员1658* 如果提示表示凭据由此环境管理,说明启动 Claude Code 的应用拥有该凭据,此处的其他步骤不适用:请重试,或联系您的管理员

1652* 确认 [IAM 配置](/docs/zh-CN/google-vertex-ai#iam-configuration) 中的角色已授予您进行身份验证的身份1659* 确认 [IAM 配置](/docs/zh-CN/google-vertex-ai#iam-configuration)中的角色已授予您用于身份验证的身份

1653* 确认模型已为您的项目启用。请参阅 [请求模型访问](/docs/zh-CN/google-vertex-ai#2-request-model-access)1660* 确认该模型已在您的项目中启用。请参阅[申请模型访问权限](/docs/zh-CN/google-vertex-ai#2-request-model-access)

1654 1661 

1655在 v2.1.273 之前,来自 Agent Platform 的 403 显示通用 `Please run /login` 或 `Failed to authenticate` 消息,无法刷新 Google Cloud 凭证。1662在 v2.1.273 之前,来自 Agent Platform 的 403 会显示通用的 `Please run /login` 或 `Failed to authenticate` 消息,而这些方法无法刷新 Google Cloud 凭据。

1656 1663 

1657<h3 id="microsoft-foundry-authentication-failed">1664<h3 id="microsoft-foundry-authentication-failed">

1658 Microsoft Foundry 身份验证失败1665 Microsoft Foundry 身份验证失败

1659</h3>1666</h3>

1660 1667 

1661[Microsoft Foundry](/docs/zh-CN/microsoft-foundry) 返回了 401 或 403:请求上的 Azure 凭证被拒绝,或其背后的身份无权访问 Foundry 资源。`/login` 无法铸造 Azure 凭证。中间的操作提示因您的设置而异。稳定部分是前导 `Microsoft Foundry authentication failed`:1668[Microsoft Foundry](/docs/zh-CN/microsoft-foundry) 返回了 401 或 403:请求中的 Azure 凭据被拒绝,或者其背后的身份无权访问 Foundry 资源。`/login` 无法生成 Azure 凭据。中间的操作提示会因您的设置而异。稳定不变的部分是开头的 `Microsoft Foundry authentication failed`:

1662 1669 

1663```text theme={null}1670```text theme={null}

1664Microsoft Foundry authentication failed · refresh your Foundry credential (ANTHROPIC_FOUNDRY_AUTH_TOKEN, ANTHROPIC_FOUNDRY_API_KEY, Azure sign-in for Entra, or your proxy token) and retry · if credentials are current, check access to the Foundry resource · API Error: 401 ...1671Microsoft Foundry authentication failed · refresh your Foundry credential (ANTHROPIC_FOUNDRY_AUTH_TOKEN, ANTHROPIC_FOUNDRY_API_KEY, Azure sign-in for Entra, or your proxy token) and retry · if credentials are current, check access to the Foundry resource · API Error: 401 ...

1665```1672```

1666 1673 

1667**应该做什么:**1674**解决方法:**

1668 1675 

1669* 如果提示说凭证由此环境管理,启动 Claude Code 的应用拥有凭证,此处的其他步骤不适用:重试或联系您的管理员1676* 如果提示表明凭据由此环境管理,则凭据归启动 Claude Code 的应用所有,此处的其他步骤不适用:请重试,或联系您的管理员

1670* 刷新您在 [配置 Azure 凭证](/docs/zh-CN/microsoft-foundry#2-configure-azure-credentials) 中配置的凭证:轮换 `ANTHROPIC_FOUNDRY_API_KEY`、铸造新的 `ANTHROPIC_FOUNDRY_AUTH_TOKEN` 或运行 `az login` 以便默认 Microsoft Entra 凭证链可以再次登录1677* 刷新您在[配置 Azure 凭据](/docs/zh-CN/microsoft-foundry#2-configure-azure-credentials)中配置的凭据:轮换 `ANTHROPIC_FOUNDRY_API_KEY`、生成新的 `ANTHROPIC_FOUNDRY_AUTH_TOKEN`,或运行 `az login`,以便默认的 Microsoft Entra 凭据链可以重新登录

1671* 如果凭证是最新的,确认身份有权访问 Foundry 资源。请参阅 [Azure RBAC 配置](/docs/zh-CN/microsoft-foundry#azure-rbac-configuration)1678* 如果凭据是最新的,请确认该身份有权访问 Foundry 资源。请参阅 [Azure RBAC 配置](/docs/zh-CN/microsoft-foundry#azure-rbac-configuration)

1672 1679 

1673在 v2.1.273 之前,来自 Microsoft Foundry 的 401 或 403 显示通用 `Please run /login` 或 `Failed to authenticate` 消息,无法刷新 Azure 凭证。1680在 v2.1.273 之前,来自 Microsoft Foundry 的 401 或 403 会显示通用的 `Please run /login` 或 `Failed to authenticate` 消息,而该方式无法刷新 Azure 凭据。

1674 1681 

1675<h3 id="could-not-load-aws-or-google-cloud-credentials">1682<h3 id="could-not-load-aws-or-google-cloud-credentials">

1676 无法加载 AWS 或 Google Cloud 凭证1683 无法加载 AWS 或 Google Cloud 凭据

1677</h3>1684</h3>

1678 1685 

1679Claude Code 无法从 AWS 凭证提供商链或从它运行的机器上的 Google 应用默认凭证获取可用凭证,因此没有请求到达您的云提供商。Claude Code 清除其缓存凭证并在显示此消息之前重试两次。`·` 之后的详细信息命名具体原因,例如过期的 SSO 会话、缺失的应用默认凭证报告为 `Could not load the default credentials` 或被撤销的登录报告为 `invalid_grant`:1686Claude Code 无法在其运行的机器上从 AWS 凭据提供程序链或您的 Google 应用默认凭据中获取可用的凭据,因此没有任何请求到达您的云提供商。Claude Code 会清除其缓存的凭据并重试两次,然后才显示此消息。`·` 之后的详细信息会指明具体原因,例如 SSO 会话已过期、缺少应用默认凭据(报告为 `Could not load the default credentials`),或登录已被撤销(报告为 `invalid_grant`):

1680 1687 

1681```text theme={null}1688```text theme={null}

1682API Error: Could not load AWS credentials · Could not load credentials from any providers. Check or refresh your AWS credentials and try again.1689API Error: Could not load AWS credentials · Could not load credentials from any providers. Check or refresh your AWS credentials and try again.

1683API Error: Could not load Google Cloud credentials · invalid_grant. Check or refresh your Google Cloud credentials and try again.1690API Error: Could not load Google Cloud credentials · invalid_grant. Check or refresh your Google Cloud credentials and try again.

1684```1691```

1685 1692 

1686在 [非交互式模式](/docs/zh-CN/headless) 中使用 `-p` 和在 [Agent SDK](/docs/zh-CN/agent-sdk/overview) 中,结构化错误代码为 `cloud_credential_error`。在 v2.1.267 之前,消息仅显示 `API Error:` 之后的详细信息文本,结构化代码为 `server_error` 或 `unknown`。1693在使用 `-p` 的[非交互模式](/docs/zh-CN/headless)和 [Agent SDK](/docs/zh-CN/agent-sdk/overview) 中,结构化错误代码为 `cloud_credential_error`。在 v2.1.267 之前,消息仅显示 `API Error:` 之后的详细文本,结构化代码为 `server_error` 或 `unknown`。

1687 1694 

1688**应该做什么:**1695**解决方法:**

1689 1696 

1690* 运行您的提供商的登录命令,例如 `aws sso login --profile myprofile` 或 `gcloud auth application-default login`,然后重试。[Bedrock、Agent Platform 或 Foundry 凭证未加载](/docs/zh-CN/troubleshoot-install#bedrock-agent-platform-or-foundry-credentials-not-loading) 显示如何在 Claude Code 外确认凭证1697* 运行您的提供商的登录命令,例如 `aws sso login --profile myprofile` 或 `gcloud auth application-default login`,然后重试。[Bedrock、Agent Platform 或 Foundry 凭据无法加载](/docs/zh-CN/troubleshoot-install#bedrock-agent-platform-or-foundry-credentials-not-loading)介绍了如何在 Claude Code 之外确认凭据

1691* 如果详细信息读作 `AWS default-chain credential resolve timed out`,链挂起而不是失败,因此改为遵循 [AWS default-chain credential resolve timed out](#aws-default-chain-credential-resolve-timed-out)1698* 如果详细信息为 `AWS default-chain credential resolve timed out`,则表示凭据链是挂起而非失败,请改为按照 [AWS 默认链凭据解析超时](#aws-default-chain-credential-resolve-timed-out)进行处理

1692 1699 

1693<h3 id="aws-default-chain-credential-resolve-timed-out">1700<h3 id="aws-default-chain-credential-resolve-timed-out">

1694 AWS default-chain credential resolve 超时1701 AWS 默认链凭据解析超时

1695</h3>1702</h3>

1696 1703 

1697AWS 默认凭证提供商链在 60 秒内未生成凭证,因此 Claude Code 停止了解析并失败了请求。此超时是 [无法加载 AWS 或 Google Cloud 凭证](#could-not-load-aws-or-google-cloud-credentials) 的一个原因。故障是本地凭证解析:请求从未到达 [Amazon Bedrock](/docs/zh-CN/amazon-bedrock)、[Claude Platform on AWS](/docs/zh-CN/claude-platform-on-aws) 或 [Mantle 端点](/docs/zh-CN/amazon-bedrock#use-the-mantle-endpoint)。Claude Code 在此错误出现之前清除其 [凭证缓存](/docs/zh-CN/amazon-bedrock#credential-caching-and-resolution-timeout) 并重试,因此当您看到它时链已在重复尝试中停滞。1704AWS 默认凭据提供程序链未能在 60 秒内生成凭据,因此 Claude Code 停止了解析并使请求失败。此超时是[无法加载 AWS 或 Google Cloud 凭据](#could-not-load-aws-or-google-cloud-credentials)的原因之一。失败发生在本地凭据解析阶段:请求从未到达 [Amazon Bedrock](/docs/zh-CN/amazon-bedrock)、[Claude Platform on AWS](/docs/zh-CN/claude-platform-on-aws) 或 [Mantle 端点](/docs/zh-CN/amazon-bedrock#use-the-mantle-endpoint)。Claude Code 会在此错误出现之前清除其[凭据缓存](/docs/zh-CN/amazon-bedrock#credential-caching-and-resolution-timeout)并重试,因此当您看到此错误时,凭据链已在多次尝试中停滞。

1698 1705 

1699```text theme={null}1706```text theme={null}

1700API Error: Could not load AWS credentials · AWS default-chain credential resolve timed out. Check or refresh your AWS credentials and try again.1707API Error: Could not load AWS credentials · AWS default-chain credential resolve timed out. Check or refresh your AWS credentials and try again.

1701```1708```

1702 1709 

1703常见原因是您的 AWS 配置文件中的 `credential_process` 命令等待它无法接收的输入,以及其实例元数据服务 (IMDS) 从不回答链探针的容器或 VM。1710常见原因包括:AWS 配置文件中的 `credential_process` 命令在等待其无法接收的输入,以及容器或虚拟机的实例元数据服务(IMDS)始终不响应凭据链的探测。

1704 1711 

1705在 v2.1.267 之前,消息读作 `API Error: AWS default-chain credential resolve timed out`。1712在 v2.1.267 之前,消息为 `API Error: AWS default-chain credential resolve timed out`。

1706在 v2.1.207 之前,停滞的链使请求无限期等待而不是失败。1713在 v2.1.207 之前,停滞的凭据链会使请求无限期等待,而不是失败。

1707 1714 

1708**应该做什么:**1715**解决方法:**

1709 1716 

1710* 在同一 shell 中使用相同的 `AWS_PROFILE` 运行 `aws sts get-caller-identity`。如果它也挂起,修复配置文件;提示交互式的 `credential_process` 命令是常见原因。1717* 在同一 shell 中使用相同的 `AWS_PROFILE` 运行 `aws sts get-caller-identity`。如果它也挂起,请修复该配置文件;以交互方式提示输入的 `credential_process` 命令是常见原因。

1711* 在启动 Claude Code 之前完成登录步骤,例如 `aws sso login --profile myprofile`,以便链从本地 SSO 缓存而不是等待浏览器流解析1718* 在启动 Claude Code 之前完成登录步骤,例如 `aws sso login --profile myprofile`

1712* 如果您的链运行合法需要超过 60 秒的交互式登录,例如通过 `aws-vault` 等包装器的 SSO 与 MFA,使用 [`CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS`](/docs/zh-CN/env-vars) 以毫秒为单位提高限制1719* 如果您的凭据链运行的交互式登录确实需要超过 60 秒,例如通过 `aws-vault` 等包装器进行带 MFA 的 SSO,请使用 [`CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS`](/docs/zh-CN/env-vars) 以毫秒为单位提高限制

1713 1720 

1714<h3 id="bedrock-setup-verification-timed-out-waiting-for-aws">1721<h3 id="bedrock-setup-verification-timed-out-waiting-for-aws">

1715 Bedrock 设置验证超时等待 AWS1722 Bedrock 设置验证在等待 AWS 时超时

1716</h3>1723</h3>

1717 1724 

1718在 [Bedrock 设置向导](/docs/zh-CN/amazon-bedrock#sign-in-with-bedrock) 的凭证验证期间对 AWS 的调用,例如凭证查找或身份检查,未在 60 秒限制内完成。向导停止等待并失败验证步骤:1725在 [Bedrock 设置向导](/docs/zh-CN/amazon-bedrock#sign-in-with-bedrock)的凭据验证过程中,对 AWS 的某个调用(例如凭据查找或身份检查)未能在 60 秒限制内完成。向导会停止等待,并使验证步骤失败:

1719 1726 

1720```text theme={null}1727```text theme={null}

1721Timed out after 60s waiting for AWS. Check your network and proxy settings; if a credential helper needs longer to prompt you, raise CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS.1728Timed out after 60s waiting for AWS. Check your network and proxy settings; if a credential helper needs longer to prompt you, raise CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS.

1722```1729```

1723 1730 

1724该数字反映您的限制:默认 60 秒,或您在 [`CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS`](/docs/zh-CN/env-vars) 中设置的值。1731其中的数字反映您的限制:默认为 60 秒,或为您在 [`CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS`](/docs/zh-CN/env-vars) 中设置的值。

1725 1732 

1726常见原因是停滞对 AWS 的请求的网络或代理,包括 SSO 令牌刷新,以及仍在等待您看不到的输入的凭证 helper。仅当 helper 合法需要更多时间时才提高限制。1733常见原因包括:网络或代理使发往 AWS 的请求(包括 SSO 令牌刷新)停滞,以及凭据帮助程序仍在等待您看不到的输入。仅当帮助程序确实需要更多时间时才提高限制。

1727 1734 

1728对 AWS 的单个停滞请求也可能在其自己的每请求超时上失败,这在同一步骤上显示较短的消息:1735单个发往 AWS 的停滞请求也可能因其自身的单请求超时而失败,这会在同一步骤中显示一条较短的消息:

1729 1736 

1730```text theme={null}1737```text theme={null}

1731A request to AWS timed out. Check your network and proxy settings, then try again.1738A request to AWS timed out. Check your network and proxy settings, then try again.

1732```1739```

1733 1740 

1734当相同的超时在模型固定步骤上发生时,向导将模型标记为 `unreachable` 而不是显示任一消息。1741当相同的超时发生在模型固定步骤时,向导会将模型标记为 `unreachable`,而不是显示上述任一消息。

1735 1742 

1736**应该做什么:**1743**解决方法:**

1737 1744 

1738* 在同一 shell 中运行 `aws sts get-caller-identity`。如果它也挂起,停滞在 Claude Code 外,在您的网络、您的代理或您的 AWS 配置文件中的凭证 helper 中;首先修复它。1745* 在同一 shell 中运行 `aws sts get-caller-identity`。如果它也挂起,则停滞发生在 Claude Code 之外,位于您的网络、代理或 AWS 配置文件中的凭据帮助程序中;请先修复该问题。

1739* 在打开向导之前完成任何交互式登录,例如 `aws sso login --profile myprofile`1746* 在打开向导之前完成所有交互式登录,例如 `aws sso login --profile myprofile`

1740* 如果您的 AWS 配置文件中的凭证 helper 合法需要超过 60 秒来提示您,使用 [`CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS`](/docs/zh-CN/env-vars) 以毫秒为单位提高限制1747* 如果 AWS 配置文件中的凭据帮助程序确实需要超过 60 秒来提示您,请使用 [`CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS`](/docs/zh-CN/env-vars) 以毫秒为单位提高限制

1741 1748 

1742<h3 id="cloud-gateway-session-expired">1749<h3 id="cloud-gateway-session-expired">

1743 Cloud gateway 会话已过期1750 云网关会话已过期

1744</h3>1751</h3>

1745 1752 

1746您通过 [Claude apps gateway](/docs/zh-CN/claude-apps-gateway) 登录,此机器上保存的网关会话已过期且无法更新,或网关不再接受它,例如在网关的 [JWT 密钥被替换](/docs/zh-CN/claude-apps-gateway-deploy#jwt-secret-rotation) 后。如果您在交互式启动 `claude` 时看到此行,会话已打开且未登录网关:1753您通过 [Claude apps 网关](/docs/zh-CN/claude-apps-gateway)登录,而此机器上保存的网关会话已过期且无法续期,或者网关不再接受该会话,例如在网关的 [JWT 密钥被替换](/docs/zh-CN/claude-apps-gateway-deploy#jwt-secret-rotation)之后。如果您在以交互方式启动 `claude` 时看到此行,则会话在未登录网关的状态下打开:

1747 1754 

1748```text theme={null}1755```text theme={null}

1749Cloud gateway session expired — run /login to reconnect.1756Cloud gateway session expired — run /login to reconnect.

1750```1757```

1751 1758 

1752相同的行可能在会话中期出现,当网关凭证过期且 Claude Code 无法更新它时。1759当网关凭据过期且 Claude Code 无法续期时,同一行也可能在会话中途出现。

1753 1760 

1754在 [非交互式](/docs/zh-CN/headless) 运行、后台或其他无人值守会话或 `claude` 子命令(除 `claude auth` 外)中,Claude Code 改为在网关不再接受会话时以此消息退出:1761在[非交互](/docs/zh-CN/headless)运行、后台或其他无人值守的会话,或 `claude auth` 以外的 `claude` 子命令中,当网关不再接受该会话时,Claude Code 会改为显示以下消息并退出:

1755 1762 

1756```text theme={null}1763```text theme={null}

1757Cloud gateway <url> no longer accepts this session. Start `claude` and sign in again with /login.1764Cloud gateway <url> no longer accepts this session. Start `claude` and sign in again with /login.

1758```1765```

1759 1766 

1760**应该做什么:**1767**解决方法:**

1761 1768 

1762* 在会话中运行 `/login` 并完成浏览器登录1769* 在会话中运行 `/login` 并完成浏览器登录

1763* 对于非交互式启动,在同一环境中启动 `claude`,运行 `/login`,然后重新运行您的命令1770* 对于非交互式启动,请在同一环境中启动 `claude`,运行 `/login`,然后重新运行您的命令

1764 1771 

1765<h3 id="sign-in-timed-out-while-waiting-for-you-to-continue">1772<h3 id="sign-in-timed-out-while-waiting-for-you-to-continue">

1766 登录超时,等待您继续1773 等待您继续时登录超时

1767</h3>1774</h3>

1768 1775 

1769在 [Claude apps gateway](/docs/zh-CN/claude-apps-gateway) 登录期间,网关命名了登录的账户,Claude Code 要求您在保存凭证之前确认它。您将确认保持打开状态超过登录自己的过期,网关未颁发可更新它的刷新令牌,因此当您继续时 Claude Code 未存储任何内容:1776在 [Claude apps 网关](/docs/zh-CN/claude-apps-gateway)登录过程中,网关给出了已登录的账户,Claude Code 在保存凭据之前请您确认该账户。您让确认保持打开的时间超过了登录本身的有效期,而网关未颁发可用于续期的刷新令牌,因此您继续操作时 Claude Code 没有存储任何内容:

1770 1777 

1771```text theme={null}1778```text theme={null}

1772Sign-in timed out while waiting for you to continue. Try again.1779Sign-in timed out while waiting for you to continue. Try again.

1773```1780```

1774 1781 

1775**应该做什么:**1782**解决方法:**

1776 1783 

1777* 再次运行 `/login` 并在登录过期之前确认账户1784* 再次运行 `/login`,并在登录过期之前确认账户

1778 1785 

1779<h3 id="gateway-refused-the-request">1786<h3 id="gateway-refused-the-request">

1780 Gateway 拒绝了请求1787 网关拒绝了请求

1781</h3>1788</h3>

1782 1789 

1783您通过 [Claude apps gateway](/docs/zh-CN/claude-apps-gateway) 登录,请求返回了 403:网关或其背后的上游拒绝了它。再次登录不会改变拒绝,因此消息指向您的网关管理员:1790您通过 [Claude apps 网关](/docs/zh-CN/claude-apps-gateway)登录,而某个请求返回了 403:网关或其背后的上游拒绝了该请求。重新登录不会改变拒绝结果,因此消息会提示您联系网关管理员:

1784 1791 

1785```text theme={null}1792```text theme={null}

1786Gateway refused the request · signing in again won't change this — check with your gateway administrator · API Error: 403 ...1793Gateway refused the request · signing in again won't change this — check with your gateway administrator · API Error: 403 ...

1787```1794```

1788 1795 

1789**应该做什么:**1796**解决方法:**

1790 1797 

1791* 要求您的网关管理员查找请求。`API Error:` 尾部携带网关返回的拒绝1798* 请您的网关管理员查询该请求。`API Error:` 之后的部分包含网关返回的拒绝信息

1792* 对于管理员:网关上的 [访问控制规则](/docs/zh-CN/claude-apps-gateway-config#http-tuning) 返回 403,[审计日志](/docs/zh-CN/claude-apps-gateway-deploy#logs) 记录其原因,上游的授权拒绝按 [上游错误消息](/docs/zh-CN/claude-apps-gateway-config#upstream-error-messages) 传递1799* 对于管理员:网关上的[访问控制规则](/docs/zh-CN/claude-apps-gateway-config#http-tuning)会返回 403,[审计日志](/docs/zh-CN/claude-apps-gateway-deploy#logs)会记录该 403 及其原因;上游的授权拒绝会按照[上游错误消息](/docs/zh-CN/claude-apps-gateway-config#upstream-error-messages)中的说明透传

1793 1800 

1794在 v2.1.273 之前,网关会话上的 403 显示通用 `Please run /login` 或 `Failed to authenticate` 消息,再次登录不会清除拒绝。1801在 v2.1.273 之前,网关会话上的 403 会显示通用的 `Please run /login` 或 `Failed to authenticate` 消息,并且重新登录无法消除该拒绝。

1795 1802 

1796<h2 id="network-and-connection-errors">1803<h2 id="network-and-connection-errors">

1797 网络和连接错误1804 网络和连接错误


2852 命令行错误2859 命令行错误

2853</h2>2860</h2>

2854 2861 

2855这些错误来自 `claude` 命令行及其子命令、您在提示符处提交的命令名称,以及诸如 `/security-review` 之类的命令,这些命令在运行其提示之前通过运行 shell 命令来收集上下文。它们也来自 `/tui`,它会重新启动 CLI。2862这些错误来自 `claude` 命令行及其子命令、您在提示符处提交的命令名称,以及 `/security-review` 等在提示词运行前通过执行 shell 命令收集上下文的命令。它们也来自会重新启动 CLI 的 `/tui`。

2856 2863 

2857<h3 id="conflict-between-bg-and-print">2864<h3 id="conflict-between-bg-and-print">

2858 `--bg` 和 `--print` 之间的冲突2865 `--bg` 与 `--print` 冲突

2859</h3>2866</h3>

2860 2867 

2861此消息需要 Claude Code v2.1.198 或更高版本。您在同一个 `claude` 调用中将 `--bg` 与 `-p` 或 `--print` 结合使用。`--bg` 启动一个[后台会话](/docs/zh-CN/agent-view#from-your-shell),您稍后可以使用 `claude agents` 附加到该会话,而 `--print` 以[非交互方式](/docs/zh-CN/headless)运行,永远不会启动 `claude agents` 附加到的交互会话。在 v2.1.198 之前,此组合会以静默方式创建一个永远无法附加的后台作业。2868此消息需要 Claude Code v2.1.198 或更高版本。您在同一次 `claude` 调用中将 `--bg` 与 `-p` 或 `--print` 组合使用。`--bg` 会启动一个[后台会话](/docs/zh-CN/agent-view#from-your-shell),之后您可以通过 `claude agents` 连接到它;而 `--print` 以[非交互方式](/docs/zh-CN/headless)运行,永远不会启动 `claude agents` 所连接的交互式会话。在 v2.1.198 之前,这种组合会静默创建一个永远无法连接的后台任务。

2862 2869 

2863```text theme={null}2870```text theme={null}

2864--bg and --print conflict: --print never starts the interactive session that `claude agents` attaches to, so the job would be unattachable. The prompt is the positional — drop --print: `claude --bg '<task>'`.2871--bg and --print conflict: --print never starts the interactive session that `claude agents` attaches to, so the job would be unattachable. The prompt is the positional — drop --print: `claude --bg '<task>'`.

2865```2872```

2866 2873 

2867**应该做什么:**2874**解决方法:**

2875 

2876* 去掉 `-p` 或 `--print`。`--bg` 将提示词作为位置参数接收,因此 `claude --bg "<task>"` 就是完整的命令。请参阅[从 shell 调度新 Agent](/docs/zh-CN/agent-view#from-your-shell)。

2877* 如果要以非交互方式运行提示词并打印结果,而不是创建后台会话,请去掉 `--bg` 并运行 `claude -p "<task>"`

2878 

2879<h3 id="conflict-between-a-system-prompt-flag-and-its-file-form">

2880 系统提示词标志与其文件形式冲突

2881</h3>

2882 

2883您在一次 `claude` 调用中同时传入了 [`--append-subagent-system-prompt`](/docs/zh-CN/cli-reference#cli-flags) 和 `--append-subagent-system-prompt-file`,因此 `claude` 以退出码 1 退出,而不是启动会话:

2884 

2885```text theme={null}

2886Error: Cannot use both --append-subagent-system-prompt and --append-subagent-system-prompt-file. Please use only one.

2887```

2888 

2889在 v2.1.283 之前,当您将 `--system-prompt` 与 `--system-prompt-file` 一起传入,或将 `--append-system-prompt` 与 `--append-system-prompt-file` 一起传入时,`claude` 也会以同样的方式退出,因为这些标志对会相互冲突,而不是[组合使用](/docs/zh-CN/cli-reference#system-prompt-flags)。在这些版本中,消息会指出您组合使用的标志对。

2868 2890 

2869* 删除 `-p` 或 `--print`。`--bg` 将提示作为其位置参数,所以 `claude --bg "<task>"` 是完整的命令。请参阅[从您的 shell 分派新代理](/docs/zh-CN/agent-view#from-your-shell)。2891**解决方法:**

2870* 要以非交互方式运行提示并打印结果而不是创建后台会话,请删除 `--bg` 并运行 `claude -p "<task>"`2892 

2893* 保留该标志的一种形式,去掉另一种。如果要将固定的提示词文件与每次运行的文本组合,请在启动前将文本合并到文件中,而不是同时传入两个标志

2871 2894 

2872<h3 id="invalid-agents-configuration">2895<h3 id="invalid-agents-configuration">

2873 无效的 `--agents` 配置2896 无效的 `--agents` 配置

2874</h3>2897</h3>

2875 2898 

2876您传递给 `--agents` 的值无效,所以 `claude` 以代码 1 退出,而不是启动会话。当您传递 `--safe-mode` 或设置 [`CLAUDE_CODE_SAFE_MODE`](/docs/zh-CN/env-vars#variables) 时,Claude Code 会完全忽略 `--agents`。使用 `--resume` 或 `--continue` 时,不会检查内联 JSON 值,会话会启动;从文件读取的值在每次启动时都会被检查。在 v2.1.242 之前,Claude Code 无论如何都会启动会话。2899您传给 `--agents` 的值无效,因此 `claude` 以退出码 1 退出,而不是启动会话。当您传入 `--safe-mode` 或设置 [`CLAUDE_CODE_SAFE_MODE`](/docs/zh-CN/env-vars#variables) 时,Claude Code 会完全忽略 `--agents`。使用 `--resume` 或 `--continue` 时,内联 JSON 值不会被检查,会话会照常启动;而从文件读取的值在每次启动时都会被检查。在 v2.1.242 之前,Claude Code 无论如何都会启动会话。

2877 2900 

2878```text theme={null}2901```text theme={null}

2879Error: Invalid --agents configuration:2902Error: Invalid --agents configuration:

2880<what failed>2903<what failed>

2881```2904```

2882 2905 

2883第一行之后的内容取决于值如何失败。Claude Code 按顺序运行这些检查,并在第一个失败的检查处停止。如果您的值有两种问题,您只有在修复第一个问题后才会看到第二个问题:2906第一行之后的内容取决于该值失败的方式。Claude Code 按顺序执行以下检查,并在第一个失败的检查处停止。如果您的值存在两类问题,只有在修复第一类问题后才会看到第二类:

2884 2907 

28851. 当值以 `{` 开头但不能解析为 JSON,或 `--agents` 文件的内容不能解析时,Claude Code 会打印一行 `invalid JSON:`,其中包含 JSON 解析器自己的消息29081. 当值以 `{` 开头但无法解析为 JSON,或 `--agents` 文件的内容无法解析时,Claude Code 会打印一行 `invalid JSON:`,其中包含 JSON 解析器自身的消息

28862. 当它解析但代理定义与 [CLI 定义的子代理](/docs/zh-CN/sub-agents#choose-the-subagent-scope)的架构不匹配时,Claude Code 会为每个问题打印一行29092. 当值可以解析,但某个 Agent 定义不符合 [CLI 定义的子代理](/docs/zh-CN/sub-agents#choose-the-subagent-scope)的 schema 时,Claude Code 会为每个问题打印一行

28873. 当代理名称以 `-` 开头时,Claude Code 会打印 `<name>: agent names must not start with '-'`29103. 当 Agent 名称以 `-` 开头时,Claude Code 会打印 `<name>: agent names must not start with '-'`

2888 2911 

2889当有超过 20 行问题时,Claude Code 会打印前 20 行,并用 `…and N more` 替换其余部分。2912当问题行超过 20 行时,Claude Code 会打印前 20 行,并将其余部分替换为 `…and N more`。

2890 2913 

2891使用 `--print` 时,`--agents` 也接受 [JSON 文件的路径](/docs/zh-CN/sub-agents#choose-the-subagent-scope)代替内联对象。在 v2.1.281 之前,`--agents` 仅接受内联 JSON,并将文件路径视为无效 JSON。文件形式有其自己的拒绝,打印在此消息的位置,包括这些:2914使用 `--print` 时,`--agents` 也接受 [JSON 文件路径](/docs/zh-CN/sub-agents#choose-the-subagent-scope)来代替内联对象。在 v2.1.281 之前,`--agents` 仅接受内联 JSON,并将文件路径视为无效 JSON。文件形式有其自身的拒绝情况,会代替此消息打印出来,包括以下几种:

2892 2915 

2893* **`Error: --agents takes a JSON object, or a file path only with --print (-p)`**:Claude Code 在交互会话中将值读取为文件路径。将定义作为内联 JSON 传递,或添加 `-p` 从文件读取它们。2916* **`Error: --agents takes a JSON object, or a file path only with --print (-p)`**:Claude Code 在交互式会话中将该值读取为文件路径。请将定义作为内联 JSON 传入,或添加 `-p` 以从文件读取。

2894* **`Error: --agents file not found: <path>`**:该路径不存在任何文件。不以 `{` 开头且不是有效 JSON 的值被读取为路径,所以您的 shell 损坏的内联 JSON 也可能以这种方式失败。检查路径或引号,然后再次运行命令。2917* **`Error: --agents file not found: <path>`**:该路径下不存在文件。不以 `{` 开头且不是有效 JSON 的值会被读取为路径,因此被 shell 破坏的内联 JSON 也可能以这种方式失败。请检查路径或引号,然后再次运行命令。

2895 2918 

2896**应该做什么:**2919**解决方法:**

2897 2920 

2898* 修复消息列出的每个问题,然后再次运行命令。请参阅 [CLI 定义的子代理采用的字段](/docs/zh-CN/sub-agents#choose-the-subagent-scope)。2921* 修复消息中列出的每个问题,然后再次运行命令。请参阅 [CLI 定义的子代理可接受的字段](/docs/zh-CN/sub-agents#choose-the-subagent-scope)。

2899 2922 

2900<h3 id="cloud-sessions-cannot-be-created-from-a-restricted-session">2923<h3 id="cloud-sessions-cannot-be-created-from-a-restricted-session">

2901 无法从 `--restricted` 会话创建云会话2924 无法从 `--restricted` 会话创建云端会话

2902</h3>2925</h3>

2903 2926 

2904当您使用 [`--restricted`](/docs/zh-CN/cli-reference#cli-flags) 启动会话时,Claude Code 拒绝从中创建[云会话](/docs/zh-CN/claude-code-on-the-web#from-terminal-to-cloud),因为新会话将在受限进程之外运行,不会强制执行受限模式。Claude Code 在客户端拒绝,在联系服务器之前,所以不会创建云会话:2927当您使用 [`--restricted`](/docs/zh-CN/cli-reference#cli-flags) 启动会话时,Claude Code 会拒绝从该会话创建[云端会话](/docs/zh-CN/claude-code-on-the-web#from-terminal-to-cloud),因为新会话将在受限进程之外运行,不会强制执行受限模式。Claude Code 在客户端拒绝,不会联系服务器,因此不会创建任何云端会话:

2905 2928 

2906```text theme={null}2929```text theme={null}

2907Cloud sessions cannot be created from a --restricted session: they would not enforce it.2930Cloud sessions cannot be created from a --restricted session: they would not enforce it.

2908```2931```

2909 2932 

2910**应该做什么:**2933**解决方法:**

2911 2934 

2912* 在受限会话中本地运行任务2935* 在受限会话中本地运行该任务

2913* 如果您控制会话的启动方式,请启动一个没有 `--restricted` 的新 `claude` 会话,并从那里创建云会话2936* 如果您能控制会话的启动方式,请在不使用 `--restricted` 的情况下启动新的 `claude` 会话,并从那里创建云端会话

2914 2937 

2915在 v2.1.248 之前,Claude Code 没有 `--restricted` 标志;较早的版本会以未知选项错误拒绝该标志本身。2938在 v2.1.248 之前,Claude Code 没有 `--restricted` 标志;更早的版本会以未知选项错误拒绝该标志本身。

2916 2939 

2917<h3 id="cloud-sessions-are-disabled-by-your-organizations-policy">2940<h3 id="cloud-sessions-are-disabled-by-your-organizations-policy">

2918 您的组织的策略禁用了云会话2941 云端会话已被您组织的策略禁用

2919</h3>2942</h3>

2920 2943 

2921您的组织的 `allow_remote_sessions` 策略已关闭,所以[云会话](/docs/zh-CN/claude-code-on-the-web)和使用它们的命令不可用:2944您组织的 `allow_remote_sessions` 策略已关闭,因此[云端会话](/docs/zh-CN/claude-code-on-the-web)以及使用云端会话的命令不可用:

2922 2945 

2923```text theme={null}2946```text theme={null}

2924Cloud sessions are disabled by your organization's policy. Contact your organization admin to enable them.2947Cloud sessions are disabled by your organization's policy. Contact your organization admin to enable them.

2925```2948```

2926 2949 

2927当您[从终端创建云会话](/docs/zh-CN/claude-code-on-the-web#from-terminal-to-cloud)时,消息会出现,当您提交需要云会话的命令时,例如 `/teleport`、`/remote-env` 或 `/web-setup`。在 v2.1.268 之前,提交其中一个命令会返回[`Unknown command`](#unknown-command)。2950当您[从终端创建云端会话](/docs/zh-CN/claude-code-on-the-web#from-terminal-to-cloud)时,以及当您提交需要云端会话的命令(例如 `/teleport`、`/remote-env` 或 `/web-setup`)时,会出现此消息。在 v2.1.268 之前,提交这些命令之一会返回 [`Unknown command`](#unknown-command)。

2928 2951 

2929这是一个服务器端组织策略,所以它不能从本地设置、环境变量或 CLI 标志中被覆盖。2952这是服务器端的组织策略,因此无法通过本地设置、环境变量或 CLI 标志覆盖。

2930 2953 

2931如果 Claude Code 还没有加载您的组织策略或无法获取它,这些命令会回答 `Couldn't verify your organization's policy for cloud sessions. Check your network connection, then restart Claude Code and try again.`。2954如果 Claude Code 尚未加载您组织的策略或无法获取该策略,这些命令会改为回复 `Couldn't verify your organization's policy for cloud sessions. Check your network connection, then restart Claude Code and try again.`。

2932 2955 

2933**应该做什么:**2956**解决方法:**

2934 2957 

2935* 请您的组织中的[所有者](/docs/zh-CN/server-managed-settings#access-control)在 [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code) 的 Claude Code 管理员设置中启用云会话2958* 请您组织中的 [Owner](/docs/zh-CN/server-managed-settings#access-control) 在 [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code) 的 Claude Code 管理设置中启用云端会话

2936* 如果消息说它无法验证策略,请检查您的网络连接,然后重新启动 Claude Code 并重试2959* 如果消息显示无法验证策略,请检查您的网络连接,然后重启 Claude Code 并重试

2937 2960 

2938<h3 id="the-json-schema-value-is-not-a-valid-json-schema">2961<h3 id="the-json-schema-value-is-not-a-valid-json-schema">

2939 `--json-schema` 值不是有效的 JSON Schema2962 `--json-schema` 的值不是有效的 JSON Schema

2940</h3>2963</h3>

2941 2964 

2942您传递给 [`--json-schema`](/docs/zh-CN/cli-reference#cli-flags) 的架构在[非交互模式](/docs/zh-CN/headless#get-structured-output)中失败了 JSON Schema 编译,所以 `claude` 以代码 1 退出,而不是运行提示。在 v2.1.205 之前,无效的架构会产生无结构的输出,没有错误,任何使用 `format` 关键字的架构都被视为无效。2965您在[非交互模式](/docs/zh-CN/headless#get-structured-output)下传给 [`--json-schema`](/docs/zh-CN/cli-reference#cli-flags) 的 schema 未能通过 JSON Schema 编译,因此 `claude` 以退出码 1 退出,而不是运行提示词。在 v2.1.205 之前,无效的 schema 会产生非结构化输出且不报错,并且任何使用 `format` 关键字的 schema 都会被视为无效。

2943 2966 

2944```text theme={null}2967```text theme={null}

2945Error: --json-schema is not a valid JSON Schema: data/type must be equal to one of the allowed values2968Error: --json-schema is not a valid JSON Schema: data/type must be equal to one of the allowed values

2946```2969```

2947 2970 

2948第二个冒号后的文本是验证器的诊断,并命名失败的关键字或位置。使用 `format` 关键字的架构,例如 `"format": "email"`,是有效的:Claude Code 接受 `format` 作为注释,不强制执行它。2971第二个冒号之后的文本是验证器的诊断信息,会指出失败的关键字或位置。使用 `format` 关键字的 schema(例如 `"format": "email"`)是有效的:Claude Code 将 `format` 作为注解接受,但不会强制执行。

2949 2972 

2950Claude Code 在架构编译之前运行两个检查:它拒绝不可解析的 JSON 值,显示 `Error: --json-schema is not valid JSON`,以及不是对象的有效 JSON,显示 `Error: --json-schema must be a JSON object`。2973Claude Code 在 schema 编译之前会执行两项检查:对于无法解析为 JSON 的值,会以 `Error: --json-schema is not valid JSON` 拒绝;对于不是对象的有效 JSON,会以 `Error: --json-schema must be a JSON object` 拒绝。

2951 2974 

2952**应该做什么:**2975**解决方法:**

2953 2976 

2954* 修复诊断命名的架构部分,然后重新运行命令2977* 修复诊断信息所指出的 schema 部分,然后重新运行命令

2955* 请参阅[获取结构化输出](/docs/zh-CN/headless#get-structured-output)以获取工作架构和命令2978* 请参阅[获取结构化输出](/docs/zh-CN/headless#get-structured-output),了解可用的 schema 和命令

2956 2979 

2957<h3 id="settings-file-exceeds-the-2mib-limit">2980<h3 id="settings-file-exceeds-the-2mib-limit">

2958 设置文件超过 2MiB 限制2981 设置文件超过 2MiB 限制

2959</h3>2982</h3>

2960 2983 

2961您传递给 [`--settings`](/docs/zh-CN/cli-reference#cli-flags) 的文件大于 2 MiB,所以 `claude` 在启动时以代码 1 退出,而不是加载它。在 v2.1.214 之前,Claude Code 读取文件时没有大小检查,多 GB 文件或诸如 `/dev/zero` 之类的设备文件会无限增长内存。2984您传给 [`--settings`](/docs/zh-CN/cli-reference#cli-flags) 的文件大于 2 MiB,因此 `claude` 在启动时以退出码 1 退出,而不是加载该文件。在 v2.1.214 之前,Claude Code 读取该文件时不检查大小,数 GB 的文件或 `/dev/zero` 等设备文件会导致内存无限增长。

2962 2985 

2963```text theme={null}2986```text theme={null}

2964Error: Settings file exceeds the 2MiB limit: /path/to/settings.json2987Error: Settings file exceeds the 2MiB limit: /path/to/settings.json

2965```2988```

2966 2989 

2967Claude Code 以相同的方式拒绝不是常规文件的 `--settings` 路径:设备、FIFO 或套接字报告 `Error: Cannot use settings file (Not a regular file (device, FIFO, or socket))`,后跟路径,目录报告 `EISDIR` 原因。2990对于不是常规文件的 `--settings` 路径,Claude Code 会以同样的方式拒绝:设备、FIFO 或套接字会报告 `Error: Cannot use settings file (Not a regular file (device, FIFO, or socket))`,后跟路径;目录则会报告 `EISDIR` 原因。

2968 2991 

2969**应该做什么:**2992**解决方法:**

2970 2993 

2971* 将 `--settings` 指向 2 MiB 以下的常规 JSON 设置文件。请参阅[设置](/docs/zh-CN/settings)了解格式。2994* 将 `--settings` 指向小于 2 MiB 的常规 JSON 设置文件。有关格式,请参阅[设置](/docs/zh-CN/settings)。

2972 2995 

2973<h3 id="the-current-directory-no-longer-exists">2996<h3 id="the-current-directory-no-longer-exists">

2974 当前目录不再存在2997 当前目录已不存在

2975</h3>2998</h3>

2976 2999 

2977您从一个在您的 shell 进入后被删除或移动的目录启动了 `claude`,例如另一个 shell 删除的 worktree 或临时目录。Claude Code 无法读取其工作目录,所以它在启动会话之前以代码 1 退出,在交互和[非交互](/docs/zh-CN/headless)模式中都是如此。在 v2.1.239 之前,Claude Code 会因缩小的捆绑源和原始 `ENOENT ... uv_cwd` 堆栈在 stderr 上崩溃,而不是显示此消息。3000您在一个目录中启动了 `claude`,但该目录在 shell 进入后被删除或移动,例如被另一个 shell 删除的 worktree 或临时目录。Claude Code 无法读取其工作目录,因此在启动会话之前以退出码 1 退出,交互模式和[非交互模式](/docs/zh-CN/headless)均是如此。在 v2.1.239 之前,Claude Code 会崩溃,并在 stderr 上输出压缩后的打包源码和原始的 `ENOENT ... uv_cwd` 堆栈,而不是此消息。

2978 3001 

2979```text theme={null}3002```text theme={null}

2980The current directory no longer exists (it was deleted or moved). Start Claude Code from an existing directory.3003The current directory no longer exists (it was deleted or moved). Start Claude Code from an existing directory.

2981error: The current working directory was deleted, so that command didn't work. Please cd into a different directory and try again.3004error: The current working directory was deleted, so that command didn't work. Please cd into a different directory and try again.

2982```3005```

2983 3006 

2984两种形式的原因和修复是相同的。3007两种形式的原因和修复方法相同。

2985 3008 

2986当 Claude Code 因其他原因(例如权限更改)无法读取工作目录时,消息会命名错误代码:`Can't read the current directory (EACCES). Start Claude Code from a different directory.`3009当 Claude Code 因其他原因(例如权限变更)无法读取工作目录时,消息会改为指出错误代码:`Can't read the current directory (EACCES). Start Claude Code from a different directory.`

2987 3010 

2988在 macOS 上,`~/Desktop`、`~/Documents`、`~/Downloads` 或 iCloud Drive 中目录的 `EPERM` 通常意味着 macOS 阻止您的终端应用访问该文件夹。读取该文件夹的其他命令也会以相同的方式失败:即使使用 `sudo`,`ls` 也会报告 `Operation not permitted`。3011在 macOS 上,对于 `~/Desktop`、`~/Documents`、`~/Downloads` 或 iCloud Drive 中的目录出现 `EPERM`,通常意味着 macOS 正在阻止您的终端应用访问该文件夹。读取该文件夹的其他命令也会以同样的方式失败:在那里运行 `ls` 会报告 `Operation not permitted`,即使使用 `sudo` 也是如此。

2989 3012 

2990**应该做什么:**3013**解决方法:**

2991 3014 

2992* 更改为存在的目录,例如您的主目录或项目目录,然后再次运行 `claude`3015* 切换到一个存在的目录,例如您的主目录或项目目录,然后再次运行 `claude`

2993* 如果目录在同一路径被重新创建,您的 shell 仍然持有已删除的目录。运行 `cd "$PWD"` 或离开并重新进入目录,然后再次运行 `claude`3016* 如果该目录已在相同路径下重新创建,您的 shell 仍持有已删除的那个目录。请运行 `cd "$PWD"`,或离开并重新进入该目录,然后再次运行 `claude`

2994* 对于 macOS 上的 `EPERM`,使用 Cmd+Q 退出您的终端应用,重新打开它,返回该文件夹,然后运行 `claude`。如果该文件夹中的 `ls` 仍然失败,请打开**系统设置 > 隐私和安全 > 文件和文件夹**,为您的终端应用打开该文件夹,然后重新打开终端3017* 对于 macOS 上的 `EPERM`,请使用 Cmd+Q 退出终端应用,重新打开它,返回该文件夹并运行 `claude`。如果在该文件夹中运行 `ls` 仍然失败,请打开 **System Settings > Privacy & Security > Files and Folders**,为您的终端应用启用该文件夹,然后重新打开终端

2995 3018 

2996<h3 id="temp-directory-refused-or-cannot-be-created">3019<h3 id="temp-directory-refused-or-cannot-be-created">

2997 临时目录被拒绝或无法创建3020 临时目录被拒绝或无法创建

2998</h3>3021</h3>

2999 3022 

3000在 macOS 和 Linux 上,Claude Code 在启动时创建一个私有临时目录 `claude-<uid>`,位于系统临时目录或 [`CLAUDE_CODE_TMPDIR`](/docs/zh-CN/env-vars) 覆盖下。当目录无法创建,或该路径处的现有条目未通过安全检查时,Claude Code 将失败打印到 stderr 并以代码 1 退出,而不是启动会话:3023在 macOS 和 Linux 上,Claude Code 会在启动时创建一个私有临时目录,即系统临时目录或 [`CLAUDE_CODE_TMPDIR`](/docs/zh-CN/env-vars) 覆盖路径下的 `claude-<uid>`。当该目录无法创建,或者该路径上已存在的条目未通过安全检查时,Claude Code 会将失败信息打印到 stderr 并以退出码 1 退出,而不是启动会话:

3001 3024 

3002```text wrap theme={null}3025```text wrap theme={null}

3003ENOSPC: no space left on device, mkdir '/tmp/claude-501'3026ENOSPC: no space left on device, mkdir '/tmp/claude-501'


3009Temp directory /tmp/claude-501 is not readable (its mode may have been altered, or a path component denies search). Refusing to use it — restore its permissions (chmod 0700) or remove it. Set CLAUDE_CODE_TMPDIR to a directory you control, or ask an administrator to remove it.3032Temp directory /tmp/claude-501 is not readable (its mode may have been altered, or a path component denies search). Refusing to use it — restore its permissions (chmod 0700) or remove it. Set CLAUDE_CODE_TMPDIR to a directory you control, or ask an administrator to remove it.

3010```3033```

3011 3034 

3012**应该做什么:**3035**解决方法:**

3013 3036 

3014* 对于 `ENOSPC`,释放保存临时目录的卷上的磁盘空间3037* 对于 `ENOSPC`,请释放存放临时目录的卷上的磁盘空间

3015* 对于 `Refusing to use it` 形式,删除命名的条目本身,而不是链接指向的内容,然后再次启动 Claude Code;对于 `owned by uid` 形式,只有管理员或该用户可以删除它3038* 对于 `Refusing to use it` 形式,请删除所指出的条目本身(而不是链接所指向的内容),然后再次启动 Claude Code;对于 `owned by uid` 形式,只有管理员或该用户才能删除它

3016* 对于 `is not readable`,在命名目录上运行 `chmod 0700`,或删除它并重新启动3039* 对于 `is not readable`,请对所指出的目录运行 `chmod 0700`,或删除它后重新启动

3017* 在任何这些情况下,将 [`CLAUDE_CODE_TMPDIR`](/docs/zh-CN/env-vars) 设置为您控制的目录并启动 Claude Code,保留被拒绝的路径不变3040* 在上述任何情况下,都可以将 [`CLAUDE_CODE_TMPDIR`](/docs/zh-CN/env-vars) 设置为您控制的目录,然后再次启动 Claude Code,不必理会被拒绝的路径

3018 3041 

3019<h3 id="directory-couldnt-be-resolved-to-a-real-location">3042<h3 id="directory-couldnt-be-resolved-to-a-real-location">

3020 目录无法解析为真实位置3043 目录无法解析为真实位置

3021</h3>3044</h3>

3022 3045 

3023您为工作目录的子目录运行了 `/add-dir`,Claude Code 无法将目录解析为其真实位置。3046您对工作目录的某个子目录运行了 `/add-dir`,而 Claude Code 无法将该目录解析为其真实位置。

3024 3047 

3025您已经可以访问工作目录的子目录,所以 `/add-dir` 只加载其 skills、命令和代理。在加载它们之前,Claude Code 检查目录的真实位置(解析任何符号链接)是否在工作目录内。当 Claude Code 无法解析该位置时,它不加载任何内容并显示此消息:3048您已经拥有工作目录子目录的文件访问权限,因此 `/add-dir` 只会加载其中的 skill、命令和 Agent。在加载之前,Claude Code 会检查该目录的真实位置(解析所有符号链接后)是否位于工作目录内。当 Claude Code 无法解析该位置时,它不会加载任何内容,并显示以下消息:

3026 3049 

3027```text theme={null}3050```text theme={null}

3028packages/app couldn't be resolved to a real location, so its skills, commands, and agents weren't loaded. Check that it is a directory inside the working directory and try again.3051packages/app couldn't be resolved to a real location, so its skills, commands, and agents weren't loaded. Check that it is a directory inside the working directory and try again.

3029```3052```

3030 3053 

3031**应该做什么:**3054**解决方法:**

3032 3055 

3033* 检查路径是否命名工作目录内的真实目录,然后再次运行 `/add-dir`3056* 检查该路径是否指向工作目录内的真实目录,然后再次运行 `/add-dir`

3034* 消息不会改变您的文件访问权限;它只报告目录的 `.claude/` 内容未被加载3057* 此消息不会改变您的文件访问权限;它仅报告该目录的 `.claude/` 内容未被加载

3035 3058 

3036在 v2.1.261 之前,当工作目录在 `/net/<host>` 自动挂载上时,此消息也会为每个 `/add-dir <subdirectory>` 出现,Claude Code 按设计拒绝解析路径;目录很好,重试无法帮助。3059在 v2.1.261 之前,当工作目录位于 `/net/<host>` 自动挂载点上时,每次运行 `/add-dir <subdirectory>` 都会出现此消息,因为 Claude Code 在设计上不会解析这类路径;该目录本身没有问题,重试也无济于事。

3037 3060 

3038<h3 id="workspace-not-trusted-when-starting-remote-control">3061<h3 id="workspace-not-trusted-when-starting-remote-control">

3039 启动远程控制时工作区不受信任3062 启动 Remote Control 时工作区不受信任

3040</h3>3063</h3>

3041 3064 

3042您在未信任的目录中使用 `claude remote-control` 或其 `claude rc` 别名启动了[远程控制](/docs/zh-CN/remote-control)服务器模式,命令无法询问您是否信任它。例如,命令的标准输入或标准输出不是终端,因为其中一个被重定向或管道化。命令以代码 1 退出:3065您在尚未信任的目录中使用 `claude remote-control` 或其别名 `claude rc` 启动了 [Remote Control](/docs/zh-CN/remote-control) 服务器模式,而该命令无法询问您是否信任该目录。例如,命令的标准输入或标准输出不是终端,因为其中之一被重定向或通过管道传输。命令以退出码 1 退出:

3043 3066 

3044```text theme={null}3067```text theme={null}

3045Error: Workspace not trusted. Please run `claude` in /Users/you/project first to review and accept the workspace trust dialog.3068Error: Workspace not trusted. Please run `claude` in /Users/you/project first to review and accept the workspace trust dialog.

3046```3069```

3047 3070 

3048两个也以 `Error: Workspace not trusted.` 开头的变体也出现在足够小的终端中,无法显示信任目录会打开什么,或一个没有报告其大小的终端。放大窗口或切换到正常终端窗口,然后再次运行 `claude rc`。3071另外两种同样以 `Error: Workspace not trusted.` 开头的变体,会出现在终端窗口太小而无法显示信任该目录会启用哪些内容,或终端未报告其尺寸的情况下。请放大窗口或切换到普通终端窗口,然后再次运行 `claude rc`。

3049 3072 

3050在您的主目录中,消息是不同的,因为工作区信任对话永远不会为主目录保存信任,所以在那里接受它无法满足此检查。在 v2.1.214 之前,主目录显示上面的消息,其建议在那里无法成功。3073在您的主目录中,消息有所不同,因为工作区信任对话框从不保存对主目录的信任,所以在那里接受信任无法满足此检查。在 v2.1.214 之前,主目录中显示的是上面的消息,而其建议在那里无法奏效。

3051 3074 

3052```text theme={null}3075```text theme={null}

3053Error: Workspace not trusted. /Users/you is your home directory, and for security home-directory trust is never saved, so running `claude` here first won't help. Run `claude rc` from a project directory instead (run `claude` there once to accept the trust dialog).3076Error: Workspace not trusted. /Users/you is your home directory, and for security home-directory trust is never saved, so running `claude` here first won't help. Run `claude rc` from a project directory instead (run `claude` there once to accept the trust dialog).

3054```3077```

3055 3078 

3056如果您在 [`Trust <directory>?` 问题](/docs/zh-CN/remote-control#requirements)处回答 `n` 或按 Enter,命令会打印一条 `Remote Control did not start` 消息,命名目录并以代码 1 退出。再次运行 `claude rc` 以回答 `y`。3079如果您在 [`Trust <directory>?` 问题](/docs/zh-CN/remote-control#requirements)处回答 `n` 或按 Enter,命令会打印一条指出该目录的 `Remote Control did not start` 消息,并以退出码 1 退出。请再次运行 `claude rc` 并回答 `y`。

3057 3080 

3058**应该做什么:**3081**解决方法:**

3059 3082 

3060* 首先从终端信任目录:在那里运行 `claude rc` 并回答 `y`,或运行 `claude` 并接受[工作区信任对话](/docs/zh-CN/permissions#project-allow-rules-and-workspace-trust),然后再次运行您的原始命令3083* 先在终端中信任该目录:在那里运行 `claude rc` 并回答 `y`,或在那里运行 `claude` 并接受[工作区信任对话框](/docs/zh-CN/permissions#project-allow-rules-and-workspace-trust),然后再次运行您原来的命令

3061* 在您的主目录中,更改为项目目录并在那里启动远程控制3084* 如果在主目录中,请切换到项目目录并在那里启动 Remote Control

3062 3085 

3063在 v2.1.284 之前,命令从不询问,即使在终端中也是如此。3086在 v2.1.284 之前,即使在终端中,该命令也从不询问。

3064 3087 

3065<h3 id="not-carried-over-to-the-sessions-remote-control-starts">3088<h3 id="not-carried-over-to-the-sessions-remote-control-starts">

3066 未被远程控制启动的会话继承3089 不会传递到 Remote Control 启动的会话

3067</h3>3090</h3>

3068 3091 

3069您使用全局 `claude` 标志在 `remote-control` 动词之前启动了[远程控制](/docs/zh-CN/remote-control),该标志会限制或配置远程控制启动的会话,例如 `--settings`、`--setting-sources`、`--permission-mode`、`--disallowed-tools` 或 `--mcp-config`。放在动词之前的标志永远不会到达这些会话。Claude Code 拒绝启动,命名标志:3092您在 `remote-control` 动词之前使用了一个全局 `claude` 标志来启动 [Remote Control](/docs/zh-CN/remote-control),而该标志会限制或配置 Remote Control 启动的会话,例如 `--settings`、`--setting-sources`、`--permission-mode`、`--disallowed-tools` 或 `--mcp-config`。放在动词之前的标志永远不会传递到这些会话。Claude Code 会拒绝启动,并指出该标志:

3070 3093 

3071```text theme={null}3094```text theme={null}

3072Error: `--settings` before `remote-control` is not carried over to the sessions Remote Control starts, so Remote Control refuses to start rather than drop it — remove it, and give Remote Control's own options after the verb (see `claude remote-control --help`).3095Error: `--settings` before `remote-control` is not carried over to the sessions Remote Control starts, so Remote Control refuses to start rather than drop it — remove it, and give Remote Control's own options after the verb (see `claude remote-control --help`).

3073```3096```

3074 3097 

3075Claude Code 不拒绝无害的全局标志,例如 `--verbose`、`--model` 或包装器注入的 `--session-id` 或 `--plugin-dir`:它忽略它们,远程控制启动。3098对于丢弃后无害的全局标志,例如 `--verbose`、`--model`,或由包装器注入的 `--session-id` 或 `--plugin-dir`,Claude Code 不会拒绝:它会忽略这些标志,Remote Control 照常启动。

3076 3099 

3077Claude Code 也拒绝启动一个它还不认识为无害的全局标志,所以较新版本中添加的标志可能会出现在此消息中,直到稍后的版本将其标记为无害。3100对于尚未被识别为无害的全局标志,Claude Code 也会拒绝启动,因此较新版本中新增的标志可能会出现在此消息中,直到后续版本将其标记为无害。

3078 3101 

3079**应该做什么:**3102**解决方法:**

3080 3103 

3081* 从动词之前删除标志,并在其后传递[远程控制自己的选项](/docs/zh-CN/remote-control#start-a-remote-control-session);`claude remote-control --help` 列出它们3104* 从动词之前移除该标志,并在动词之后传入 [Remote Control 自身的选项](/docs/zh-CN/remote-control#start-a-remote-control-session);`claude remote-control --help` 会列出这些选项

3082* 当被拒绝的标志是 `--permission-mode` 时,运行 `claude remote-control --permission-mode <mode>` 为远程控制启动的会话设置权限模式3105* 当被拒绝的标志是 `--permission-mode` 时,请运行 `claude remote-control --permission-mode <mode>` 来为 Remote Control 启动的会话设置权限模式

3083 3106 

3084在 v2.1.248 之前,当全局标志首先出现时,`claude remote-control` 不接受其自己的标志,命令失败并显示未知选项错误。3107在 v2.1.248 之前,当全局标志在前时,`claude remote-control` 不接受其自身的标志,命令会以 `unknown option` 错误失败。

3085 3108 

3086<h3 id="claude-import-is-not-yet-available-in-this-build">3109<h3 id="claude-import-is-not-yet-available-in-this-build">

3087 claude import 在此构建中尚不可用3110 此构建版本中尚不支持 claude import

3088</h3>3111</h3>

3089 3112 

3090您运行了 [`claude import`](/docs/zh-CN/cli-reference#cli-commands),Claude Code 发现导入流已关闭,所以命令以代码 1 退出,而不是启动导入。在 v2.1.222 之前,关闭导入流的构建将 `import` 视为提示并启动交互会话,而不是打印此消息。3113您运行了 [`claude import`](/docs/zh-CN/cli-reference#cli-commands),而 Claude Code 发现导入流程处于关闭状态,因此命令以退出码 1 退出,而不是开始导入。在 v2.1.222 之前,导入流程关闭的构建版本会将 `import` 视为提示词并启动交互式会话,而不是打印此消息。

3091 3114 

3092```text theme={null}3115```text theme={null}

3093`claude import` is not yet available in this build. Run `claude` and use /mcp or edit ~/.claude/settings.json directly.3116`claude import` is not yet available in this build. Run `claude` and use /mcp or edit ~/.claude/settings.json directly.

3094```3117```

3095 3118 

3096Claude Code 通过从 Anthropic 获取并在磁盘上缓存的功能标志打开 `claude import`。此消息意味着缓存的值已关闭。原因通常是以下之一:3119Claude Code 通过从 Anthropic 获取并缓存在磁盘上的功能标志来启用 `claude import`。此消息表示缓存的值为关闭。原因通常是以下之一:

3097 3120 

3098* 您自安装以来还没有启动会话,所以 Claude Code 还没有获取标志。第一个 `claude import` 即使功能对您可用,也可能打印此消息。3121* 您自安装以来尚未启动过会话,因此 Claude Code 还没有获取该标志。即使该功能对您可用,第一次运行 `claude import` 也可能打印此消息。

3099* 您通过 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 或 AWS 上的 Claude Platform,或通过[Claude 应用网关](/docs/zh-CN/claude-apps-gateway#availability-and-limitations)使用 Claude Code。Claude Code 在这些会话中不获取功能标志,所以 `claude import` 保持不可用。3122* 您通过 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 或 Claude Platform on AWS 使用 Claude Code,或通过 [Claude apps 网关](/docs/zh-CN/claude-apps-gateway#availability-and-limitations)使用。Claude Code 在这些会话中不获取功能标志,因此 `claude import` 始终不可用。

3100* 您设置了 `DISABLE_TELEMETRY`、`DO_NOT_TRACK`、`DISABLE_GROWTHBOOK` 或 [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/zh-CN/env-vars),它们关闭功能标志获取,所以 `claude import` 保持不可用。3123* 您设置了 `DISABLE_TELEMETRY`、`DO_NOT_TRACK`、`DISABLE_GROWTHBOOK` 或 [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/zh-CN/env-vars),这些会关闭功能标志获取,因此 `claude import` 始终不可用。

3101 3124 

3102**应该做什么:**3125**解决方法:**

3103 3126 

3104* 在新安装上,启动 `claude`,等待会话加载,退出,然后再次运行 `claude import`3127* 在全新安装上,启动 `claude`,等待会话加载完成后退出,然后再次运行 `claude import`

3105* 在功能标志获取保持关闭的地方,自己设置配置:使用 [`claude mcp add`](/docs/zh-CN/mcp#installing-mcp-servers) 添加 MCP 服务器,并创建您想要继承的 [`CLAUDE.md` 文件](/docs/zh-CN/memory#how-claude-md-files-load)、[skills 和命令](/docs/zh-CN/skills#where-skills-live)以及[子代理](/docs/zh-CN/sub-agents#choose-the-subagent-scope)。消息也命名 `~/.claude/settings.json`。在 `claude import` 继承的配置中,该文件仅保存[权限模式](/docs/zh-CN/settings-reference#permission-settings);Claude Code 不从中读取 MCP 服务器。3128* 在功能标志获取始终关闭的情况下,请自行完成配置:使用 [`claude mcp add`](/docs/zh-CN/mcp#installing-mcp-servers) 添加 MCP 服务器,并创建您想要迁移的 [`CLAUDE.md` 文件](/docs/zh-CN/memory#how-claude-md-files-load)、[skill 和命令](/docs/zh-CN/skills#where-skills-live)以及[子代理](/docs/zh-CN/sub-agents#choose-the-subagent-scope)。消息中还提到了 `~/.claude/settings.json`。在 `claude import` 迁移的配置中,该文件只保存[权限模式](/docs/zh-CN/settings-reference#permission-settings);Claude Code 不会从中读取 MCP 服务器。

3106 3129 

3107<h3 id="could-not-read-claude-code-config">3130<h3 id="could-not-read-claude-code-config">

3108 无法读取 Claude Code 配置3131 无法读取 Claude Code 配置

3109</h3>3132</h3>

3110 3133 

3111您在 Claude Code 无法解析 `~/.claude.json` 时运行了 [`claude import`](/docs/zh-CN/cli-reference#cli-commands),这是它存储您的登录和每个项目状态的文件。子命令读取该文件以检查可用性,但不显示交互会话显示的恢复对话,所以它以代码 1 退出。在 v2.1.222 之前,`claude import` 使用不可读的配置文件启动交互会话,其恢复对话处理该文件。3134您在 Claude Code 无法解析 `~/.claude.json`(它存储您的登录信息和各项目状态的文件)时运行了 [`claude import`](/docs/zh-CN/cli-reference#cli-commands)。该子命令会读取此文件以检查可用性,但不会显示交互式会话中的恢复对话框,因此它以退出码 1 退出。在 v2.1.222 之前,在配置文件无法读取时运行 `claude import` 会启动交互式会话,由其恢复对话框处理该文件。

3112 3135 

3113```text theme={null}3136```text theme={null}

3114Could not read Claude Code config — run `claude` with no arguments to recover it.3137Could not read Claude Code config — run `claude` with no arguments to recover it.

3115```3138```

3116 3139 

3117**应该做什么:**3140**解决方法:**

3118 3141 

3119* 运行不带参数的 `claude`。Claude Code 检测无效文件并提供重置它。然后再次运行 `claude import`。3142* 不带参数运行 `claude`。Claude Code 会检测到无效文件并提供重置选项。然后再次运行 `claude import`。

3120* 要保留您所做的手动编辑,请在编辑器中修复 `~/.claude.json` 中的 JSON 语法,然后重新运行 `claude import`3143* 如果要保留您手动做的编辑,请改为在编辑器中修复 `~/.claude.json` 中的 JSON 语法,然后重新运行 `claude import`

3121 3144 

3122<h3 id="could-not-import-a-server-from-claude-desktop">3145<h3 id="could-not-import-a-server-from-claude-desktop">

3123 无法从 Claude Desktop 导入服务器3146 无法从 Claude Desktop 导入服务器

3124</h3>3147</h3>

3125 3148 

3126Claude Code 无法添加您在 `claude mcp add-from-claude-desktop` 中选择的其中一个服务器。命令仍然导入其他选定的服务器,并为每个无法添加的服务器打印一行。在 v2.1.205 之前,第一个失败的服务器停止了导入。3149Claude Code 无法添加您在 `claude mcp add-from-claude-desktop` 中选择的某个服务器。该命令仍会导入其他选中的服务器,并为每个无法添加的服务器打印一行。在 v2.1.205 之前,第一个失败的服务器会中止整个导入。

3127 3150 

3128```text theme={null}3151```text theme={null}

3129Could not import my server: Invalid name my server. Names can only contain letters, numbers, hyphens, and underscores.3152Could not import my server: Invalid name my server. Names can only contain letters, numbers, hyphens, and underscores.

3130```3153```

3131 3154 

3132服务器名称后的文本是原因。最常见的是名称检查:Claude Desktop 允许服务器名称中的字符,例如空格和句号,而 `claude mcp` 限制为字母、数字、连字符和下划线。其他原因包括失败验证的服务器配置和被您的组织的 [MCP 策略](/docs/zh-CN/managed-mcp)阻止的服务器。3155服务器名称之后的文本是原因。最常见的是名称检查:Claude Desktop 允许服务器名称中包含空格和句点等字符,而 `claude mcp` 将其限制为字母、数字、连字符和下划线。其他原因包括服务器配置未通过验证,以及服务器被您组织的 [MCP 策略](/docs/zh-CN/managed-mcp)阻止。

3133 3156 

3134**应该做什么:**3157**解决方法:**

3135 3158 

3136* 在 `claude_desktop_config.json` 中重命名服务器以仅使用字母、数字、连字符和下划线,然后再次运行 `claude mcp add-from-claude-desktop`3159* 在 `claude_desktop_config.json` 中将服务器重命名为仅使用字母、数字、连字符和下划线,然后再次运行 `claude mcp add-from-claude-desktop`

3137* 使用 `claude mcp add` 或 `claude mcp add-json` 在有效名称下直接添加该服务器。请参阅[从 Claude Desktop 导入 MCP 服务器](/docs/zh-CN/mcp#import-mcp-servers-from-claude-desktop)。3160* 使用 `claude mcp add` 或 `claude mcp add-json` 以有效名称直接添加该服务器。请参阅[从 Claude Desktop 导入 MCP 服务器](/docs/zh-CN/mcp#import-mcp-servers-from-claude-desktop)。

3138 3161 

3139<h3 id="cannot-add-mcp-server-to-the-managed-scope">3162<h3 id="cannot-add-mcp-server-to-the-managed-scope">

3140 无法将 MCP 服务器添加到托管范围3163 无法将 MCP 服务器添加到 managed 作用域

3141</h3>3164</h3>

3142 3165 

3143您使用 `--scope managed` 运行了 `claude mcp add` 或 `claude mcp add-json`。该范围保存您的组织通过 [`managedMcpServers`](/docs/zh-CN/settings-reference#managedmcpservers) 托管设置提供的服务器。Claude Code 仅从托管设置读取它们,所以命令无法向该范围写入服务器。3166您使用 `--scope managed` 运行了 `claude mcp add` 或 `claude mcp add-json`。该作用域保存的是您的组织通过 [`managedMcpServers`](/docs/zh-CN/settings-reference#managedmcpservers) 托管设置提供的服务器。Claude Code 仅从托管设置中读取这些服务器,因此该命令无法将服务器写入此作用域。

3144 3167 

3145```text theme={null}3168```text theme={null}

3146Cannot add MCP server to scope: managed3169Cannot add MCP server to scope: managed

3147```3170```

3148 3171 

3149**应该做什么:**3172**解决方法:**

3150 3173 

3151* 将服务器添加到您可以写入的范围:`local`、`user` 或 `project`。不带 `--scope` 时,命令使用 `local`。请参阅 [MCP 安装范围](/docs/zh-CN/mcp#mcp-installation-scopes)3174* 将服务器添加到您可以写入的作用域:`local`、`user` 或 `project`。不使用 `--scope` 时,命令使用 `local`。请参阅 [MCP 安装作用域](/docs/zh-CN/mcp#mcp-installation-scopes)

3152* 要为您的组织中的每个用户提供服务器,请将其添加到您部署的托管设置中的 [`managedMcpServers`](/docs/zh-CN/settings-reference#managedmcpservers)3175* 如果要向组织中的每个用户提供该服务器,请将其添加到您部署的托管设置中的 [`managedMcpServers`](/docs/zh-CN/settings-reference#managedmcpservers)

3153 3176 

3154<h3 id="cant-read-mcp-json">3177<h3 id="cant-read-mcp-json">

3155 无法读取 .mcp.json3178 无法读取 .mcp.json

3156</h3>3179</h3>

3157 3180 

3158读取项目的 [`.mcp.json`](/docs/zh-CN/mcp#project-scope) 的命令,例如 `claude mcp add` 或 `claude mcp add-json` 使用 `--scope project`,或 `claude mcp remove`,发现您当前目录中的文件不是常规文件或大于 2 MiB,所以它以此错误退出,而不是读取文件。3181读取项目 [`.mcp.json`](/docs/zh-CN/mcp#project-scope) 的命令(例如使用 `--scope project` 的 `claude mcp add` 或 `claude mcp add-json`,或 `claude mcp remove`)发现当前目录中的该文件不是常规文件或大于 2 MiB,因此以此错误退出,而不是读取该文件。

3159 3182 

3160```text theme={null}3183```text theme={null}

3161Can't read .mcp.json: it isn't a regular file or is larger than 2097152 bytes. Fix or remove it, then run the command again.3184Can't read .mcp.json: it isn't a regular file or is larger than 2097152 bytes. Fix or remove it, then run the command again.

3162```3185```

3163 3186 

3164在 v2.1.257 之前,`.mcp.json` 处的 FIFO 使命令永远等待,没有输出,指向诸如 `/dev/zero` 之类的设备文件的符号链接会增长内存,直到进程被杀死。3187在 v2.1.257 之前,位于 `.mcp.json` 的 FIFO 会使命令无限期等待且没有任何输出,而指向 `/dev/zero` 等设备文件的符号链接会导致内存不断增长,直到进程被终止。

3165 3188 

3166**应该做什么:**3189**解决方法:**

3167 3190 

3168* 检查您当前目录中 `.mcp.json` 处的内容。将其替换为 [project-scope 格式](/docs/zh-CN/mcp#project-scope)中的普通 JSON 文件,或删除它,然后再次运行命令。3191* 检查当前目录中 `.mcp.json` 位置上的内容。将其替换为符合[项目作用域格式](/docs/zh-CN/mcp#project-scope)的普通 JSON 文件,或将其删除,然后再次运行命令。

3169 3192 

3170<h3 id="mcp-server-was-not-saved-or-removed">3193<h3 id="mcp-server-was-not-saved-or-removed">

3171 MCP 服务器未被保存或删除3194 MCP 服务器未被保存或移除

3172</h3>3195</h3>

3173 3196 

3174您为 `user` 或 `local` [范围](/docs/zh-CN/mcp#mcp-installation-scopes)中的服务器运行了 `claude mcp add`、`claude mcp add-json` 或 `claude mcp remove`。两个范围都存储在 `~/.claude.json` 中,当 Claude Code 在写入后读取该文件时,更改不在该文件中。命令以此错误退出,而不是其成功行。3197您为 `user` 或 `local` [作用域](/docs/zh-CN/mcp#mcp-installation-scopes)中的服务器运行了 `claude mcp add`、`claude mcp add-json` 或 `claude mcp remove`。这两个作用域都存储在 `~/.claude.json` 中,而 Claude Code 在写入后回读该文件时,发现更改并不在其中。命令以此错误退出,而不是输出成功信息。

3175 3198 

3176```text theme={null}3199```text theme={null}

3177MCP 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.3200MCP 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.

3178```3201```

3179 3202 

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

3181 3204 

3182在 v2.1.283 之前,`claude mcp add`、`claude mcp add-json` 和 `claude mcp remove` 即使更改没有到达文件也报告成功。3205在 v2.1.283 之前,即使更改没有写入文件,`claude mcp add`、`claude mcp add-json` 和 `claude mcp remove` 也会报告成功。

3183 3206 

3184**应该做什么:**3207**解决方法:**

3185 3208 

3186* 使消息命名的文件可写,或在沙箱外运行命令,然后再次运行相同的添加或删除命令。3209* 使消息中指出的文件可写,或在沙箱之外运行命令,然后再次运行相同的添加或移除命令。

3187 3210 

3188<h3 id="mcp-server-may-not-have-been-saved-or-removed">3211<h3 id="mcp-server-may-not-have-been-saved-or-removed">

3189 MCP 服务器可能未被保存或删除3212 MCP 服务器可能未被保存或移除

3190</h3>3213</h3>

3191 3214 

3192您为 `user` 或 `local` [范围](/docs/zh-CN/mcp#mcp-installation-scopes)中的服务器运行了 `claude mcp add`、`claude mcp add-json` 或 `claude mcp remove`,Claude Code 无法读取 `~/.claude.json` 回来确认更改。更改可能在磁盘上,也可能不在。括号中的文本是该读取的错误。3215您为 `user` 或 `local` [作用域](/docs/zh-CN/mcp#mcp-installation-scopes)中的服务器运行了 `claude mcp add`、`claude mcp add-json` 或 `claude mcp remove`,而 Claude Code 无法回读 `~/.claude.json` 以确认更改。更改可能已经写入磁盘,也可能没有。括号中的文本是该读取操作的错误。

3193 3216 

3194```text theme={null}3217```text theme={null}

3195MCP 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.3218MCP 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.

3196```3219```

3197 3220 

3198删除后,消息读取 `may not have been removed` 并以 `then remove the server again if it is still listed` 结尾。3221执行移除操作后,消息会显示为 `may not have been removed`,并以 `then remove the server again if it is still listed` 结尾。

3199 3222 

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

3201 3224 

3202**应该做什么:**3225**解决方法:**

3203 3226 

3204* 运行 `claude mcp get <name>` 检查更改是否在磁盘上。对于 `local` 范围服务器,从服务器所属的项目目录运行它,因为本地范围是每个项目的。3227* 运行 `claude mcp get <name>` 检查更改是否已写入磁盘。对于 `local` 作用域的服务器,请在该服务器所属的项目目录中运行,因为 local 作用域是按项目区分的。

3205* 如果服务器在添加后丢失,或在删除后仍然列出,请再次运行相同的添加或删除命令。3228* 如果添加后服务器不存在,或移除后服务器仍被列出,请再次运行相同的添加或移除命令。

3206 3229 

3207<h3 id="anthropic-hosted-and-doesnt-support-local-oauth">3230<h3 id="anthropic-hosted-and-doesnt-support-local-oauth">

3208 服务器是 Anthropic 托管的,不支持本地 OAuth3231 服务器由 Anthropic 托管,不支持本地 OAuth

3209</h3>3232</h3>

3210 3233 

3211您为 MCP 服务器启动了登录,其 URL 指向通过第三方身份提供商进行身份验证的 Anthropic 托管连接器主机。这些主机包括 `microsoft365.mcp.claude.com`、`gmail.mcp.claude.com` 和 `gcal.mcp.claude.com`。Claude Code 拒绝为这些主机从 `/mcp` 面板和 `claude mcp login` 启动其本地 OAuth 流,因为[它们的登录仅通过 claude.ai 工作](/docs/zh-CN/mcp#use-mcp-servers-from-claude-ai)。3234您为某个 MCP 服务器发起了登录,而该服务器的 URL 指向一个通过第三方身份提供商进行身份验证的 Anthropic 托管连接器主机。这些主机包括 `microsoft365.mcp.claude.com`、`gmail.mcp.claude.com` 和 `gcal.mcp.claude.com`。无论是从 `/mcp` 面板还是 `claude mcp login`,Claude Code 都会拒绝为这些主机启动本地 OAuth 流程,因为[它们的登录只能通过 claude.ai 进行](/docs/zh-CN/mcp#use-mcp-servers-from-claude-ai)。

3212 3235 

3213```text theme={null}3236```text theme={null}

3214"gmail" is Anthropic-hosted and doesn't support local OAuth. Connect it via Settings → Connectors on claude.ai (requires `claude login`), then it'll be available here automatically.3237"gmail" is Anthropic-hosted and doesn't support local OAuth. Connect it via Settings → Connectors on claude.ai (requires `claude login`), then it'll be available here automatically.

3215```3238```

3216 3239 

3217**应该做什么:**3240**解决方法:**

3218 3241 

3219* 使用 `claude mcp remove <name>` 删除您的条目,以便它不能隐藏同一 URL 处的 claude.ai 连接器3242* 使用 `claude mcp remove <name>` 移除您的条目,以免它遮蔽同一 URL 的 claude.ai 连接器

3220* 删除后,在 [claude.ai/customize/connectors](https://claude.ai/customize/connectors) 连接服务,同时登录到您在 Claude Code 中使用的帐户。连接后,如果您的活跃身份验证方法是 claude.ai 订阅登录,[连接器会自动出现在 Claude Code 中](/docs/zh-CN/mcp#use-mcp-servers-from-claude-ai)3243* 移除后,在登录您在 Claude Code 中使用的账户的情况下,在 [claude.ai/customize/connectors](https://claude.ai/customize/connectors) 连接该服务。连接完成后,如果您当前的身份验证方式是 claude.ai 订阅登录,[该连接器会自动出现在 Claude Code 中](/docs/zh-CN/mcp#use-mcp-servers-from-claude-ai)

3221 3244 

3222<h3 id="server-rejected-the-authorization-header-minted-by-the-configured-headershelper">3245<h3 id="server-rejected-the-authorization-header-minted-by-the-configured-headershelper">

3223 服务器拒绝了由配置的 headersHelper 生成的 Authorization 标头3246 服务器拒绝了由已配置的 headersHelper 生成的 Authorization 标头

3224</h3>3247</h3>

3225 3248 

3226其 [`headersHelper`](/docs/zh-CN/mcp#use-dynamic-headers-for-custom-authentication) 提供 `Authorization` 标头的 MCP 服务器以 HTTP 401 或 403 回答连接,所以 Claude Code 将连接报告为失败。因为助手提供 `Authorization` 标头,Claude Code [不会回退到 OAuth](/docs/zh-CN/mcp#authenticate-with-remote-mcp-servers) 对于服务器:3249某个由 [`headersHelper`](/docs/zh-CN/mcp#use-dynamic-headers-for-custom-authentication) 提供 `Authorization` 标头的 MCP 服务器以 HTTP 401 或 403 响应了连接,因此 Claude Code 报告连接失败。由于该辅助程序提供了 `Authorization` 标头,Claude Code 不会为该服务器[回退到 OAuth](/docs/zh-CN/mcp#authenticate-with-remote-mcp-servers):

3227 3250 

3228```text theme={null}3251```text theme={null}

3229Server rejected the Authorization header minted by the configured headersHelper (HTTP 401). Check that the helper command returns a valid credential for this MCP endpoint — OAuth fallback is disabled when the helper supplies Authorization.3252Server rejected the Authorization header minted by the configured headersHelper (HTTP 401). Check that the helper command returns a valid credential for this MCP endpoint — OAuth fallback is disabled when the helper supplies Authorization.

3230```3253```

3231 3254 

3232Claude Code 在每次连接尝试时重新运行助手,所以在短暂拒绝后重试,例如令牌轮换竞争,可以使用新凭证成功。3255Claude Code 会在每次连接尝试时重新运行该辅助程序,因此在暂时性拒绝(例如令牌轮换竞争)之后重试,可能会凭借新的凭据成功连接。

3233 3256 

3234**应该做什么:**3257**解决方法:**

3235 3258 

3236* 按照 Claude Code 运行它的方式自己运行 `headersHelper` 命令:从 [Claude Code 运行它的目录](/docs/zh-CN/mcp#where-the-helper-runs),使用 [Claude Code 为其设置的环境变量](/docs/zh-CN/mcp#use-dynamic-headers-for-custom-authentication),以及不使用 [Claude Code 为来自项目 `.mcp.json`、插件或项目代理文件的服务器删除的凭证变量](/docs/zh-CN/mcp#which-variables-a-helper-can-read)。检查它是否打印服务器端点接受的 `Authorization` 值3259* 按照 Claude Code 运行的方式自行运行 `headersHelper` 命令:在 [Claude Code 运行它的目录](/docs/zh-CN/mcp#where-the-helper-runs)中运行,使用 [Claude Code 为其设置的环境变量](/docs/zh-CN/mcp#use-dynamic-headers-for-custom-authentication),并且对于来自项目 `.mcp.json`、插件或项目 Agent 文件的服务器,不带上 [Claude Code 会移除的凭据变量](/docs/zh-CN/mcp#which-variables-a-helper-can-read)。检查它是否打印出服务器端点可接受的 `Authorization` 值

3237* 修复助手或其凭证源后,在 `/mcp` 中选择服务器并选择**重新连接**3260* 修复辅助程序或其凭据来源后,在 `/mcp` 中选择该服务器并选择 **Reconnect**

3238 3261 

3239在 v2.1.248 之前,Claude Code 为其助手提供 `Authorization` 标头的服务器运行 OAuth 发现。该发现可能失败,显示 `Incompatible auth server: does not support dynamic client registration` 而不是报告被拒绝的凭证。3262在 v2.1.248 之前,对于辅助程序提供 `Authorization` 标头的服务器,Claude Code 也会运行 OAuth 发现。该发现过程可能会以 `Incompatible auth server: does not support dynamic client registration` 失败,而不是报告被拒绝的凭据。

3240 3263 

3241<h3 id="mcp-permission-prompt-tool-not-found">3264<h3 id="mcp-permission-prompt-tool-not-found">

3242 未找到 MCP 权限提示工具3265 未找到 MCP 权限提示工具

3243</h3>3266</h3>

3244 3267 

3245您传递给 [`--permission-prompt-tool`](/docs/zh-CN/cli-reference#cli-flags) 的工具在运行首次需要权限决定时不在连接的 MCP 工具中,要么因为其服务器从未连接,要么因为没有连接的服务器公开该名称的工具。Claude Code 仍然发送您的提示:[非交互](/docs/zh-CN/headless)运行在第一个工具调用时以此错误和退出代码 1 退出,所以即使请求已发出,它也不会产生答案。在第一个提示之前,Claude Code 等待最多由 [`MCP_TIMEOUT`](/docs/zh-CN/env-vars) 设置的每个服务器连接超时 30 秒,以便该服务器连接。在 v2.1.206 之前,启动不等待服务器完成连接,所以启动缓慢但健康的服务器也会产生此错误。3268当运行首次需要权限决策时,您传给 [`--permission-prompt-tool`](/docs/zh-CN/cli-reference#cli-flags) 的工具不在已连接的 MCP 工具之中,原因可能是其服务器从未连接,或者没有任何已连接的服务器公开该名称的工具。Claude Code 仍会发送您的提示词:[非交互](/docs/zh-CN/headless)运行会在第一次工具调用时以此错误和退出码 1 退出,因此即使请求已经发出,也不会产生任何回答。在第一次提示之前,Claude Code 会等待该服务器连接,最长等待由 [`MCP_TIMEOUT`](/docs/zh-CN/env-vars) 设置的每服务器连接超时时间 30 秒。在 v2.1.206 之前,启动时不会等待服务器完成连接,因此启动缓慢但运行正常的服务器也会产生此错误。

3246 3269 

3247```text theme={null}3270```text theme={null}

3248Error: MCP tool mcp__permissions__approve (passed via --permission-prompt-tool) not found. Available MCP tools: none3271Error: MCP tool mcp__permissions__approve (passed via --permission-prompt-tool) not found. Available MCP tools: none

3249```3272```

3250 3273 

3251`Available MCP tools:` 后的列表命名已连接的 MCP 工具。3274`Available MCP tools:` 之后的列表指出了已连接的 MCP 工具。

3252 3275 

3253**应该做什么:**3276**解决方法:**

3254 3277 

3255* 检查服务器启动并保持连接:在同一目录中运行 `claude mcp list` 并确认服务器列为已连接3278* 检查服务器能否启动并保持连接:在同一目录中运行 `claude mcp list`,确认该服务器显示为已连接

3256* 确认工具名称与服务器公开的 `mcp__<server>__<tool>` 名称匹配3279* 确认工具名称与服务器公开的 `mcp__<server>__<tool>` 名称一致

3257* 如果服务器需要超过 30 秒才能启动,请提高 [`MCP_TIMEOUT`](/docs/zh-CN/env-vars)3280* 如果服务器需要超过 30 秒才能启动,请调大 [`MCP_TIMEOUT`](/docs/zh-CN/env-vars)

3258 3281 

3259<h3 id="oauth-callback-port-is-already-in-use">3282<h3 id="oauth-callback-port-is-already-in-use">

3260 OAuth 回调端口已在使用中3283 OAuth 回调端口已被占用

3261</h3>3284</h3>

3262 3285 

3263当您使用 OAuth 登录远程 MCP 服务器时,Claude Code 启动本地侦听器以接收登录回调。如果该侦听器需要的端口被另一个进程持有,登录失败,显示此消息。这主要发生在[固定回调端口](/docs/zh-CN/mcp#use-a-fixed-oauth-callback-port)通过 [`MCP_OAUTH_CALLBACK_PORT`](/docs/zh-CN/env-vars) 变量或 `--callback-port` 设置时,因为没有一个 Claude Code 会选择可用端口。3286当您使用 OAuth 登录远程 MCP 服务器时,Claude Code 会启动一个本地监听器来接收登录回调。如果该监听器需要的端口被另一个进程占用,登录会失败并显示此消息。这种情况主要发生在通过 [`MCP_OAUTH_CALLBACK_PORT`](/docs/zh-CN/env-vars) 变量或 `--callback-port` 设置了[固定回调端口](/docs/zh-CN/mcp#use-a-fixed-oauth-callback-port)时,因为如果不设置,Claude Code 会自行选择可用端口。

3264 3287 

3265```text theme={null}3288```text theme={null}

3266OAuth callback port <port> is already in use — another process may be holding it. Run `lsof -ti:<port> -sTCP:LISTEN` to find it.3289OAuth callback port <port> is already in use — another process may be holding it. Run `lsof -ti:<port> -sTCP:LISTEN` to find it.

3267```3290```

3268 3291 

3269在 Windows 上,建议的命令是 `netstat -ano | findstr :<port>`。3292在 Windows 上,建议的命令改为 `netstat -ano | findstr :<port>`。

3270 3293 

3271**应该做什么:**3294**解决方法:**

3272 3295 

3273* 运行消息中的命令以找到持有端口的进程,并停止它或等待它完成3296* 运行消息中的命令,找到占用该端口的进程,然后停止它或等待它结束

3274* 如果另一个程序永久需要该端口,请向服务器注册不同的重定向 URI,并使用 `MCP_OAUTH_CALLBACK_PORT` 或 `--callback-port` 设置其端口,以及您使用的任何一个3297* 如果另一个程序需要长期占用该端口,请向服务器注册一个不同的重定向 URI,并通过 `MCP_OAUTH_CALLBACK_PORT` 或 `--callback-port`(取决于您使用哪一个)设置其端口

3275* 然后再次启动登录,例如通过在 `/mcp` 中选择服务器3298* 然后重新发起登录,例如在 `/mcp` 中选择该服务器

3276 3299 

3277<h3 id="no-available-ports-for-oauth-redirect">3300<h3 id="no-available-ports-for-oauth-redirect">

3278 OAuth 重定向没有可用的端口3301 没有可用于 OAuth 重定向的端口

3279</h3>3302</h3>

3280 3303 

3281当您使用[OAuth](/docs/zh-CN/mcp#authenticate-with-remote-mcp-servers)登录远程 MCP 服务器时,Claude Code 启动本地侦听器以接收登录回调。当 Claude Code 无法为其绑定本地端口时,登录失败,显示此消息。机器上的某些内容阻止它在 `127.0.0.1` 上侦听,例如安全软件或拒绝本地侦听器的沙箱策略。3304当您使用 [OAuth](/docs/zh-CN/mcp#authenticate-with-remote-mcp-servers) 登录远程 MCP 服务器时,Claude Code 会启动一个本地监听器来接收登录回调。当 Claude Code 无法为其绑定本地端口时,登录会失败并显示此消息。这说明机器上有某些因素阻止它在 `127.0.0.1` 上监听,例如安全软件或拒绝本地监听器的沙箱策略。

3282 3305 

3283```text theme={null}3306```text theme={null}

3284No available ports for OAuth redirect3307No available ports for OAuth redirect

3285```3308```

3286 3309 

3287在 v2.1.268 之前,Claude Code 不会回退到操作系统分配的端口,所以消息也会在仅其自选端口无法绑定时出现。这可能发生在 Hyper-V 保留覆盖 Claude Code 选择的端口的端口范围的 Windows 主机上。3310在 v2.1.268 之前,Claude Code 不会回退到由操作系统分配的端口,因此当仅仅是它自行选择的端口无法绑定时,也会出现此消息。这种情况可能发生在 Windows 主机上,因为 Hyper-V 会保留覆盖 Claude Code 选择范围的端口段。

3288 3311 

3289**应该做什么:**3312**解决方法:**

3290 3313 

3291* 检查安全软件或沙箱策略是否阻止进程在 `127.0.0.1` 上侦听,并允许 Claude Code 绑定本地端口3314* 检查是否有安全软件或沙箱策略阻止进程在 `127.0.0.1` 上监听,并允许 Claude Code 绑定本地端口

3292* 然后再次启动登录,例如通过在 `/mcp` 中选择服务器3315* 然后重新发起登录,例如在 `/mcp` 中选择该服务器

3293 3316 

3294<h3 id="security-review-fails-without-origin-head">3317<h3 id="security-review-fails-without-origin-head">

3295 /security-review 在没有 origin/HEAD 时失败3318 缺少 origin/HEAD 时 /security-review 失败

3296</h3>3319</h3>

3297 3320 

3298[`/security-review`](/docs/zh-CN/commands#all-commands) 通过将您的分支与 `origin/HEAD` 进行比较来构建其审查上下文,这是记录您的 `origin` 远程上哪个分支是默认分支的本地 ref。当该 ref 不存在时,收集差异的 git 命令失败,审查在启动前停止。3321[`/security-review`](/docs/zh-CN/commands#all-commands) 通过将您的分支与 `origin/HEAD` 进行 diff 来构建审查上下文,`origin/HEAD` 是记录您的 `origin` 远程默认分支的本地引用。当该引用不存在时,收集 diff 的 git 命令会失败,审查在开始之前就会停止。

3299 3322 

3300```text theme={null}3323```text theme={null}

3301Error: Shell command failed for pattern "!`git diff --name-only origin/HEAD...`": [stderr]3324Error: Shell command failed for pattern "!`git diff --name-only origin/HEAD...`": [stderr]


3304'git <command> [<revision>...] -- [<file>...]'3327'git <command> [<revision>...] -- [<file>...]'

3305```3328```

3306 3329 

3307消息可能引用 `git log` 或不同的 `git diff`。Git 仅在远程通告默认分支且您的获取 refspec 覆盖它时创建 `origin/HEAD`,完整的远程克隆带有提交时会这样做。在这些设置中 ref 丢失:3330消息中引用的也可能是 `git log` 或其他 `git diff` 命令。只有当远程公布了默认分支且您的 fetch refspec 覆盖了它时,Git 才会创建 `origin/HEAD`;对有提交的远程执行完整的 `git clone` 就满足这一条件。在以下情况下该引用会缺失:

3308 3331 

3309* 单分支或 CI 检出,它获取太窄的 refspec3332* 单分支检出或 CI 检出,其 fetch 的 refspec 范围过窄

3310* 远程服务器端 HEAD 指向没有人推送的分支3333* 远程服务器端的 HEAD 指向一个无人推送过的分支

3311* 没有 `origin` 远程的存储库,或您从未获取的存储库3334* 仓库没有 `origin` 远程,或者您从未执行过 fetch

3312 3335 

3313Claude Code 为任何 [injects dynamic context](/docs/zh-CN/skills#when-an-injected-command-fails) 的 skill 显示相同的错误,失败的注入命令会中止该 skill 的调用。两个兄弟字符串在命令运行之前就会触发:3336对于任何[注入动态上下文](/docs/zh-CN/skills#when-an-injected-command-fails)的 skill,Claude Code 都会显示相同的错误,并且注入的命令失败会中止该 skill 的调用。还有两个相关的消息会在命令运行之前就触发:

3314 3337 

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

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

3317 3340 

3318**应该做什么:**3341**解决方法:**

3319 3342 

3320* 通过命名您的远程默认分支创建 ref:`git remote set-head origin <default-branch>`。只要本地跟踪 ref `origin/<default-branch>` 存在,这就有效。如果它不存在,如在单分支克隆中,首先获取分支:运行 `git remote set-branches --add origin <branch>`,然后 `git fetch origin`,然后重新运行 set-head 命令。重新运行 `/security-review`。3343* 通过指定远程的默认分支来创建该引用:`git remote set-head origin <default-branch>`。只要本地跟踪引用 `origin/<default-branch>` 存在,此方法就有效。如果它不存在(例如在单分支克隆中),请先 fetch 该分支:运行 `git remote set-branches --add origin <branch>`,然后运行 `git fetch origin`,再重新运行 set-head 命令。最后重新运行 `/security-review`。

3321* 如果您不想命名分支,运行 `git fetch origin` 然后 `git remote set-head origin --auto`,它询问远程其默认分支是什么。当远程不通告默认分支时它失败,显示 `error: Cannot determine remote HEAD`,因为它是空的或其 HEAD 指向没有人推送的分支;改为显式命名分支。当您的克隆不获取该分支时它失败,显示 `error: Not a valid ref`;首先按上面的方式扩大 refspec。3344* 如果您不想指定分支名,请运行 `git fetch origin`,然后运行 `git remote set-head origin --auto`,它会向远程查询其默认分支。当远程没有公布默认分支(因为它是空的,或其 HEAD 指向无人推送过的分支)时,它会以 `error: Cannot determine remote HEAD` 失败;此时请明确指定分支名。当您的克隆没有 fetch 该分支时,它会以 `error: Not a valid ref` 失败;请先按上述方法扩大 refspec。

3322* 如果存储库没有远程,使用 `git remote add origin <url>` 添加一个并在创建 ref 之前获取。如果远程是空的,首先使用 `git push -u origin HEAD` 推送您的分支,并在 set-head 命令中命名该分支;`origin/HEAD` 然后指向您刚推送的分支,所以 `/security-review` 看到空差异,直到分支与其分歧。3345* 如果仓库没有远程,请使用 `git remote add origin <url>` 添加一个,并在创建引用之前执行 fetch。如果远程是空的,请先使用 `git push -u origin HEAD` 推送您的分支,并在 set-head 命令中指定该分支;此时 `origin/HEAD` 指向您刚推送的分支,因此在您的分支与其产生分歧之前,`/security-review` 看到的是空 diff。

3323 3346 

3324<h3 id="input-must-be-provided-when-using-print">3347<h3 id="input-must-be-provided-when-using-print">

3325 使用 `--print` 时必须提供输入3348 使用 `--print` 时必须提供输入

3326</h3>3349</h3>

3327 3350 

3328裸 `claude` 需要 stdout 是终端才能启动交互 UI。当 stdout 被重定向,或控制台不是真实终端时,例如 PowerShell ISE 和某些 IDE 输出窗格,`claude` 改为以[非交互](/docs/zh-CN/headless)模式运行。这与 `claude -p` 相同,它需要提示,所以消息命名 `--print`,即使您没有传递标志。在任何地方传递 `-p`/`--print` 而不带提示且 stdin 上没有任何内容会产生相同的错误。3351直接运行 `claude` 需要 stdout 是终端才能启动交互式 UI。当 stdout 被重定向,或控制台不是真正的终端(例如 PowerShell ISE 和某些 IDE 输出窗格)时,`claude` 会改为以[非交互方式](/docs/zh-CN/headless)运行。这与 `claude -p` 是同一种模式,它需要提示词,因此即使您没有传入该标志,消息中也会提到 `--print`。在任何环境中,传入 `-p`/`--print` 但不提供提示词、stdin 也没有管道输入时,都会产生相同的错误。

3329 3352 

3330```text theme={null}3353```text theme={null}

3331Error: Input must be provided either through stdin or as a prompt argument when using --print3354Error: Input must be provided either through stdin or as a prompt argument when using --print

3332```3355```

3333 3356 

3334**应该做什么:**3357**解决方法:**

3335 3358 

3336* 对于交互使用,在真实终端中运行 `claude`:Windows Terminal 或 PowerShell 控制台而不是 ISE,以及您的 IDE 的集成终端而不是输出窗格3359* 对于交互式使用,请在真正的终端中运行 `claude`:使用 Windows Terminal 或 PowerShell 控制台而不是 ISE,使用 IDE 的集成终端而不是输出窗格

3337* 对于一次性使用,传递提示:`claude -p "your question"`,或使用 `echo "your question" | claude -p` 管道它3360* 对于一次性使用,请传入提示词:`claude -p "your question"`,或通过管道传入:`echo "your question" | claude -p`

3338 3361 

3339<h3 id="input-contained-only-whitespace">3362<h3 id="input-contained-only-whitespace">

3340 输入仅包含空格3363 输入仅包含空白字符

3341</h3>3364</h3>

3342 3365 

3343在[非交互模式](/docs/zh-CN/headless)中,Claude Code 拒绝完全由空格、制表符或换行符组成的提示,而不是发送它,因为 API 拒绝没有可见文本的消息。您看到的消息取决于空白提示来自何处:3366在[非交互模式](/docs/zh-CN/headless)下,Claude Code 会拒绝完全由空格、制表符或换行符组成的提示词,而不是发送它,因为 API 会拒绝没有可见文本的消息。您看到的消息取决于空白提示词的来源:

3344 3367 

3345* **`claude -p` 的提示参数或管道 stdin**:`claude` 以 `Error: Input contained only whitespace. Provide a prompt with text through stdin or as a prompt argument when using --print` 退出3368* **`claude -p` 的提示词参数或管道 stdin**:`claude` 以 `Error: Input contained only whitespace. Provide a prompt with text through stdin or as a prompt argument when using --print` 退出

3346* **提交给运行 `--input-format stream-json` 或 [Agent SDK](/docs/zh-CN/agent-sdk/overview) 会话的消息**:Claude Code 在不调用模型的情况下结束轮次,会话保持可用。拒绝作为信息消息和轮次的结果文本到达:`Blank prompt — the message was only whitespace, so nothing was sent to the model.`3369* **提交到正在运行的 `--input-format stream-json` 或 [Agent SDK](/docs/zh-CN/agent-sdk/overview) 会话的消息**:Claude Code 在不调用模型的情况下结束该轮次,会话仍可继续使用。拒绝信息会以一条提示性消息的形式到达,同时作为该轮次的结果文本:`Blank prompt — the message was only whitespace, so nothing was sent to the model.`

3347 3370 

3348在 v2.1.229 之前,Claude Code 将仅空格消息发送到 API,API 以 400 错误拒绝请求。3371在 v2.1.229 之前,Claude Code 会将仅含空白字符的消息发送到 API,API 会以 400 错误拒绝该请求。

3349 3372 

3350**应该做什么:**3373**解决方法:**

3351 3374 

3352* 在提示中包含可见文本。如果脚本从变量或文件构建提示,请在调用 Claude Code 之前检查源是否不为空。3375* 在提示词中包含可见文本。如果脚本从变量或文件构建提示词,请在调用 Claude Code 之前检查来源是否为空。

3353 3376 

3354<h3 id="stream-json-input-carried-over-256m-characters-with-no-newline">3377<h3 id="stream-json-input-carried-over-256m-characters-with-no-newline">

3355 stream-json 输入在没有换行符的情况下超过 256M 个字符3378 stream-json 输入中超过 256M 个字符没有换行符

3356</h3>3379</h3>

3357 3380 

3358您的程序在没有换行符的情况下在 stdin 上发送了超过 268,435,456 个字符到 `claude -p --input-format stream-json` 运行,所以 Claude Code 将此错误打印到 stderr 并以代码 1 退出,而不是缓冲更多输入。消息将该预算表示为 `256M`。在 v2.1.257 之前,Claude Code 无限制地缓冲此类输入,增长内存直到进程崩溃或被杀死。3381您的程序向 `claude -p --input-format stream-json` 运行的 stdin 发送了超过 268,435,456 个字符且没有换行符,因此 Claude Code 将此错误打印到 stderr 并以退出码 1 退出,而不是继续缓冲更多输入。消息中将该上限表述为 `256M`。在 v2.1.257 之前,Claude Code 会无限制地缓冲此类输入,导致内存不断增长,直到进程崩溃或被终止。

3359 3382 

3360```text theme={null}3383```text theme={null}

3361Error: stream-json input carried over 256M characters with no newline. Each stream-json message must be a single newline-terminated JSON line: either the producer is not newline-terminating its messages, or one message exceeded this budget.3384Error: stream-json input carried over 256M characters with no newline. Each stream-json message must be a single newline-terminated JSON line: either the producer is not newline-terminating its messages, or one message exceeded this budget.

3362```3385```

3363 3386 

3364没有换行符的这么长的输入通常意味着生产者根本不是 stream-json 生产者,例如二进制文件或意外管道的纯日志输出。超过预算的单个消息失败相同的检查。3387如此长的输入却没有换行符,通常意味着生产者根本不是 stream-json 生产者,例如意外通过管道传入的二进制文件或纯日志输出。单条超过上限的消息也会触发同样的检查失败。

3365 3388 

3366**应该做什么:**3389**解决方法:**

3367 3390 

3368* 检查什么被管道到 stdin。使用 [`--input-format stream-json`](/docs/zh-CN/cli-reference#cli-flags),每条消息必须是一个换行符终止的 JSON 行3391* 检查通过管道传入 stdin 的内容。使用 [`--input-format stream-json`](/docs/zh-CN/cli-reference#cli-flags) 时,每条消息都必须是一行以换行符结尾的 JSON

3369* 要改为发送纯文本,请删除 `--input-format stream-json`;`claude -p` 默认从 stdin 读取纯文本提示3392* 如果要改为发送纯文本,请去掉 `--input-format stream-json`;`claude -p` 默认从 stdin 读取纯文本提示词

3370 3393 

3371<h3 id="unknown-command">3394<h3 id="unknown-command">

3372 未知命令3395 Unknown command

3373</h3>3396</h3>

3374 3397 

3375在交互终端会话中,您提交了一个 `/` 名称,它与此会话中的任何命令都不匹配,所以 Claude Code 报告该名称而不是运行任何内容:3398在交互式终端会话中,您提交的 `/` 名称与此会话中的任何命令都不匹配,因此 Claude Code 会报告该名称,而不是运行任何内容:

3376 3399 

3377```text theme={null}3400```text theme={null}

3378Unknown command: /hepl. Did you mean /help?3401Unknown command: /hepl. Did you mean /help?

3379```3402```

3380 3403 

3381Claude Code 建议此会话中菜单列出的最接近的命令名称或别名。当没有接近的时候,消息在名称后结束。原因通常是以下之一:3404Claude Code 会建议菜单在此会话中列出的最接近的命令名称或别名。如果没有相近的名称,消息会在名称之后结束。原因通常是以下之一:

3382 3405 

3383* 打字错误,例如 `/hepl` 代替 `/help`。[How the command menu matches what you type](/docs/zh-CN/commands#how-the-command-menu-matches-what-you-type) 涵盖在提交前选择接近的匹配3406* 拼写错误,例如将 `/help` 输成 `/hepl`。[命令菜单如何匹配您的输入](/docs/zh-CN/commands#how-the-command-menu-matches-what-you-type)介绍了如何在提交前选择相近的匹配项

3384* 存在但在此会话中不可用的命令,因为不满足要求,例如您的平台、计划或身份验证方法。[`/web-setup`](/docs/zh-CN/web-quickstart#web-setup-shows-no-commands-match-or-unknown-command) 和 [`/schedule`](/docs/zh-CN/routines#schedule-returns-unknown-command) 的故障排除条目演示两个常见情况。某些命令在您的组织的策略禁用它们时用自己的消息回答,例如 [`Cloud sessions are disabled by your organization's policy`](#cloud-sessions-are-disabled-by-your-organizations-policy)3407* 命令存在,但因为某项要求未满足(例如您的平台、套餐或身份验证方式)而在此会话中不可用。[`/web-setup`](/docs/zh-CN/web-quickstart#web-setup-shows-no-commands-match-or-unknown-command) 和 [`/schedule`](/docs/zh-CN/routines#schedule-returns-unknown-command) 的故障排除条目介绍了两种常见情况。当您组织的策略禁用某些命令时,这些命令会以它们自己的消息回复,例如 [`Cloud sessions are disabled by your organization's policy`](#cloud-sessions-are-disabled-by-your-organizations-policy)

3385* 来自[插件](/docs/zh-CN/plugins/overview)或[MCP 服务器](/docs/zh-CN/mcp#use-mcp-prompts-as-commands)的命令,在此会话中未安装或连接3408* 来自[插件](/docs/zh-CN/plugins/overview)或 [MCP 服务器](/docs/zh-CN/mcp#use-mcp-prompts-as-commands)的命令,而该插件或服务器未在此会话中安装或连接

3386 3409 

3387Claude Code 仅在交互终端会话中以这种方式回答不匹配的 `/` 名称。在所有其他会话中,它将提示作为正常消息发送给 Claude,并注意命令未运行以及 Claude 可以在会话中运行的命令列表。这些会话包括:3410只有在交互式终端会话中,Claude Code 才会以这种方式回应不匹配的 `/` 名称。在其他所有会话中,它会将提示词作为普通消息发送给 Claude,并附上命令未运行的说明以及 Claude 在该会话中可以运行的命令列表。这些会话包括:

3388 3411 

3389* `-p` 运行3412* `-p` 运行

3390* [Agent SDK](/docs/zh-CN/agent-sdk/overview) 应用程序3413* [Agent SDK](/docs/zh-CN/agent-sdk/overview) 应用程序

3391* [Desktop 应用](/docs/zh-CN/desktop)的代码选项卡3414* [桌面应用](/docs/zh-CN/desktop)的 Code 标签页

3392* [VS Code 扩展](/docs/zh-CN/vs-code)的聊天面板3415* [VS Code 扩展](/docs/zh-CN/vs-code)的聊天面板

3393* [云会话](/docs/zh-CN/claude-code-on-the-web)和[例程](/docs/zh-CN/routines)3416* [云端会话](/docs/zh-CN/claude-code-on-the-web)和 [Routine](/docs/zh-CN/routines)

3394 3417 

3395对于无法在这些会话之一中运行的内置命令,Claude Code 仍然回答命令不可用,而不是将其发送给 Claude。在 v2.1.274 之前,仅云会话和例程将不匹配的名称发送给 Claude。在 v2.1.273 之前,它们也回答 `Unknown command`。3418对于无法在上述会话中运行的内置命令,Claude Code 仍会回复该命令不可用,而不是将其发送给 Claude。在 v2.1.274 之前,只有云端会话和 Routine 会将不匹配的名称发送给 Claude。在 v2.1.273 之前,它们也会回复 `Unknown command`。

3396 3419 

3397Claude Code 不将每个以 `/` 开头的提示视为命令。当 `/` 后的第一个单词以标点符号开头时,它将提示作为正常消息发送给 Claude,例如打开 Lean doc 注释的 `/--`,或是路径,例如 `/var/log/syslog`。3420Claude Code 不会将每个以 `/` 开头的提示词都视为命令。当 `/` 之后的第一个单词以标点符号开头(例如开启 Lean 文档注释的 `/--`),或者是 `/var/log/syslog` 这样的路径时,它会将提示词作为普通消息发送给 Claude。

3398 3421 

3399在 v2.1.236 之前,如果您在命令菜单列出您键入的名称的接近匹配时按 `Enter`,Claude Code 会运行该匹配,所以 `/hepl` 之类的打字错误会运行 `/help` 而不是产生此消息。3422在 v2.1.236 之前,如果命令菜单列出了与您输入的名称相近的匹配项,而您按下了 `Enter`,Claude Code 会运行该匹配项,因此像 `/hepl` 这样的拼写错误会运行 `/help`,而不是产生此消息。

3400 3423 

3401**应该做什么:**3424**解决方法:**

3402 3425 

3403* 运行建议的名称,或键入 `/` 后跟名称的一部分以查看此会话中可用的内容3426* 运行建议的名称,或输入 `/` 后跟名称的一部分,查看此会话中可用的命令

3404* 如果 Claude Code 将记录的命令报告为未知,请检查[命令参考](/docs/zh-CN/commands)中的其行以了解它命名的要求3427* 如果 Claude Code 将某个文档中记载的命令报告为未知,请在[命令参考](/docs/zh-CN/commands)中查看该命令所在行列出的要求

3405 3428 

3406<h3 id="diff-is-too-large-for-ultrareview">3429<h3 id="diff-is-too-large-for-ultrareview">

3407 Diff 对于 ultrareview 来说太大了3430 diff 过大,无法进行 ultrareview

3408</h3>3431</h3>

3409 3432 

3410您的分支和基础分支之间的差异,包括未提交和暂存的更改,超过了 [ultrareview](/docs/zh-CN/ultrareview) 的大小限制,所以 `/code-review ultra` 和 `claude ultrareview` 子命令在云会话启动前拒绝审查。被拒绝的审查不使用免费运行,也不计费使用信用。消息命名有效的限制、您的差异大小以及贡献最多更改行的文件。在 v2.1.216 之前,消息仅显示原始差异统计。3433您的分支与基础分支之间的 diff(包括未提交和已暂存的更改)超出了 [ultrareview](/docs/zh-CN/ultrareview) 的大小限制,因此 `/code-review ultra` 和 `claude ultrareview` 子命令会在云端会话启动之前拒绝审查。被拒绝的审查不会消耗免费次数,也不会计入使用额度。消息会指出当前生效的限制、您的 diff 大小,以及贡献最多更改行数的文件。在 v2.1.216 之前,消息仅显示原始的 diff 统计信息。

3411 3434 

3412```text theme={null}3435```text theme={null}

3413Diff is too large for ultrareview: 812 files, 96,410 lines changed (limits: 500 files, 8,000 lines). Largest files: package-lock.json (41,904 lines), dist/bundle.js (18,210 lines), src/generated/api.ts (9,876 lines). Pass a closer base branch (`/code-review ultra <branch>`) to narrow the scope, or split the change.3436Diff is too large for ultrareview: 812 files, 96,410 lines changed (limits: 500 files, 8,000 lines). Largest files: package-lock.json (41,904 lines), dist/bundle.js (18,210 lines), src/generated/api.ts (9,876 lines). Pass a closer base branch (`/code-review ultra <branch>`) to narrow the scope, or split the change.

3414```3437```

3415 3438 

3416审查拉取请求应用相同的限制;该形式的消息以 `PR #<N> is too large for ultrareview` 开头,并命名 PR 的文件和行数。3439审查 Pull Request 时适用相同的限制;该形式的消息以 `PR #<N> is too large for ultrareview` 开头,并指出该 PR 的文件数和行数。

3417 3440 

3418**应该做什么:**3441**解决方法:**

3419 3442 

3420* 传递更接近您的工作的基础分支,例如 `/code-review ultra develop`,以便审查仅涵盖与该分支的差异3443* 传入一个更接近您工作内容的基础分支,例如 `/code-review ultra develop`,使审查仅覆盖与该分支之间的 diff

3421* 将更改分成较小的分支并审查每一个。消息命名的文件贡献最多更改行,所以首先将这些移到它们自己的分支。3444* 将更改拆分为更小的分支,并分别审查。消息中指出的文件贡献了最多的更改行数,因此可以先将这些文件移到单独的分支。

3422 3445 

3423<h3 id="could-not-find-merge-base-with-the-base-branch">3446<h3 id="could-not-find-merge-base-with-the-base-branch">

3424 无法找到与基础分支的合并基础3447 无法找到与基础分支的 merge-base

3425</h3>3448</h3>

3426 3449 

3427`/code-review ultra` 和 `claude ultrareview` 子命令审查您的分支和基础分支之间的差异,这需要两者共享的提交。当 `git merge-base` 找不到时,Claude Code 在云会话启动前拒绝审查。在 Claude Code 可以验证完整的克隆上,至少有一个分支,它改为回退到[审查每个跟踪文件](/docs/zh-CN/ultrareview#diff-limits-and-fallbacks)而不是拒绝。您在基础分支根本找不到时、Claude Code 无法验证您的克隆完整时,或在罕见的存储库中看到此拒绝,其中整个树差异不可能,例如 SHA-256 对象格式。3450`/code-review ultra` 和 `claude ultrareview` 子命令会审查您的分支与基础分支之间的 diff,这需要两者有一个共同的提交。当 `git merge-base` 找不到共同提交时,Claude Code 会在云端会话启动之前拒绝审查。对于 Claude Code 能够确认是完整克隆且至少有一个分支的仓库,它会回退为[审查所有被跟踪的文件](/docs/zh-CN/ultrareview#diff-limits-and-fallbacks),而不是拒绝。当完全找不到基础分支、Claude Code 无法确认您的克隆是否完整,或者在少数无法进行整棵树 diff 的仓库中(例如使用 SHA-256 对象格式的仓库),您会看到此拒绝信息。

3428 3451 

3429```text theme={null}3452```text theme={null}

3430Could not find merge-base with main. Pass the base branch explicitly (e.g. `/code-review ultra develop`) or make sure you're in a git repo with a main branch.3453Could not find merge-base with main. Pass the base branch explicitly (e.g. `/code-review ultra develop`) or make sure you're in a git repo with a main branch.

3431```3454```

3432 3455 

3433第一句后的提示取决于 Claude Code 观察到的内容:3456第一句之后的提示取决于 Claude Code 观察到的情况:

3434 3457 

3435* **您没有传递基础分支**:Claude Code 与存储库的默认分支进行了比较,并建议显式传递您的基础,如上面的示例3458* **您没有传入基础分支**:Claude Code 与仓库的默认分支进行了比较,并建议您明确传入基础分支,如上例所示

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

3437* **您传递的基础分支不在您的克隆中**: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`。3460* **您传入的基础分支不在您的克隆中**: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` 失败。

3438 3461 

3439**应该做什么:**3462**解决方法:**

3440 3463 

3441* 如果另一个分支是您的真实基础,显式传递它:`/code-review ultra <branch>`3464* 如果另一个分支才是您真正的基础分支,请明确传入:`/code-review ultra <branch>`

3442* 如果您的克隆可能没有完整历史,运行 `git fetch --unshallow origin` 并重新运行审查3465* 如果您的克隆可能没有完整历史,请运行 `git fetch --unshallow origin` 并重新运行审查

3443 3466 

3444<h3 id="your-checkout-has-no-branches">3467<h3 id="your-checkout-has-no-branches">

3445 您的检出没有分支3468 您的检出没有分支

3446</h3>3469</h3>

3447 3470 

3448检出可以有提交但没有分支:如果您运行 `git init` 后跟 `git fetch <url>` 和 `git checkout FETCH_HEAD`,您会得到一个分离的 HEAD,没有 refs。Claude Code 将您的存储库打包为 git 包以上传它进行 [ultrareview](/docs/zh-CN/ultrareview),它无法打包没有分支或其他 refs 的存储库,所以 `/code-review ultra` 和 `claude ultrareview` 子命令在云会话启动前拒绝审查。3471检出可以有提交但没有分支:如果您运行 `git init`,然后运行 `git fetch <url>` 和 `git checkout FETCH_HEAD`,就会得到一个没有任何引用的分离 HEAD。Claude Code 会将您的仓库打包为 git bundle,以便上传进行 [ultrareview](/docs/zh-CN/ultrareview),而它无法打包没有分支或其他引用的仓库,因此 `/code-review ultra` 和 `claude ultrareview` 子命令会在云端会话启动之前拒绝审查。

3449 3472 

3450```text theme={null}3473```text theme={null}

3451Your checkout has no branches (detached HEAD only), which cloud review can't bundle. Create one first — `git checkout -b <name>` — then rerun /code-review ultra.3474Your checkout has no branches (detached HEAD only), which cloud review can't bundle. Create one first — `git checkout -b <name>` — then rerun /code-review ultra.

3452```3475```

3453 3476 

3454在 v2.1.221 之前,Claude Code 尝试审查此检出中的每个跟踪文件,上传失败。3477在 v2.1.221 之前,Claude Code 会尝试审查此检出中所有被跟踪的文件,而上传会失败。

3455 3478 

3456**应该做什么:**3479**解决方法:**

3457 3480 

3458* 使用 `git checkout -b <name>` 在您当前的提交处创建分支,然后重新运行审查3481* 使用 `git checkout -b <name>` 在当前提交上创建一个分支,然后重新运行审查

3459 3482 

3460<h3 id="no-github-account-is-connected-to-your-claude-account">3483<h3 id="no-github-account-is-connected-to-your-claude-account">

3461 没有 GitHub 帐户连接到您的 Claude 帐户3484 您的 Claude 账户未连接 GitHub 账户

3462</h3>3485</h3>

3463 3486 

3464您运行了 `/code-review ultra <PR#>` 或 `claude ultrareview <PR#>`,在创建云会话前 Claude Code 询问服务器[连接到您的 Claude 帐户的 GitHub 帐户](/docs/zh-CN/ultrareview#review-a-pull-request)是否可以到达 PR 的存储库。没有帐户连接,或连接已过期,所以云克隆会失败,Claude Code 拒绝启动。Claude Code 不为被拒绝的启动花费免费运行或计费使用信用。3487您运行了 `/code-review ultra <PR#>` 或 `claude ultrareview <PR#>`,在创建云端会话之前,Claude Code 会询问服务器[连接到您 Claude 账户的 GitHub 账户](/docs/zh-CN/ultrareview#review-a-pull-request)能否访问该 PR 的仓库。由于没有连接任何账户,或连接已过期,云端克隆将会失败,因此 Claude Code 拒绝启动。对于被拒绝的启动,Claude Code 不会消耗免费次数,也不会计入使用额度。

3465 3488 

3466```text theme={null}3489```text theme={null}

3467Ultrareview clones <owner>/<repo> in the cloud with the GitHub account connected to your Claude account, and none is connected (or the connection expired). To fix: run /web-setup to reuse your GitHub CLI login, or connect an account at https://claude.ai/connect-github — then re-run /code-review ultra 1234 (allow a minute after connecting).3490Ultrareview clones <owner>/<repo> in the cloud with the GitHub account connected to your Claude account, and none is connected (or the connection expired). To fix: run /web-setup to reuse your GitHub CLI login, or connect an account at https://claude.ai/connect-github — then re-run /code-review ultra 1234 (allow a minute after connecting).

3468```3491```

3469 3492 

3470当 [`/web-setup`](/docs/zh-CN/web-quickstart#connect-from-your-terminal) 在您的会话中不可用时,消息仅命名 claude.ai 链接。3493当 [`/web-setup`](/docs/zh-CN/web-quickstart#connect-from-your-terminal) 在您的会话中不可用时,消息只会给出 claude.ai 链接。

3471 3494 

3472**应该做什么:**3495**解决方法:**

3473 3496 

3474* 运行 `/web-setup` 将您的 GitHub CLI 登录连接到您的 Claude 帐户,或在 [claude.ai/connect-github](https://claude.ai/connect-github) 连接帐户3497* 运行 `/web-setup` 将您的 GitHub CLI 登录连接到 Claude 账户,或在 [claude.ai/connect-github](https://claude.ai/connect-github) 连接账户

3475* 连接后一分钟重新运行审查3498* 连接后等待一分钟再重新运行审查

3476 3499 

3477在 v2.1.248 之前,Claude Code 在启动前不检查这个。3500在 v2.1.248 之前,Claude Code 在启动前不会进行此检查。

3478 3501 

3479<h3 id="your-connected-github-account-cant-see-the-repository">3502<h3 id="your-connected-github-account-cant-see-the-repository">

3480 您连接的 GitHub 帐户看不到存储库3503 您连接的 GitHub 账户无法访问该仓库

3481</h3>3504</h3>

3482 3505 

3483您运行了 `/code-review ultra <PR#>` 或 `claude ultrareview <PR#>`,[连接到您的 Claude 帐户的 GitHub 帐户](/docs/zh-CN/ultrareview#review-a-pull-request)无法读取 PR 的存储库,所以云克隆会失败,Claude Code 拒绝启动。Claude Code 不为被拒绝的启动花费免费运行或计费使用信用。3506您运行了 `/code-review ultra <PR#>` 或 `claude ultrareview <PR#>`,而[连接到您 Claude 账户的 GitHub 账户](/docs/zh-CN/ultrareview#review-a-pull-request)无法读取该 PR 的仓库,因此云端克隆将会失败,Claude Code 拒绝启动。对于被拒绝的启动,Claude Code 不会消耗免费次数,也不会计入使用额度。

3484 3507 

3485```text theme={null}3508```text theme={null}

3486Your connected GitHub account can't see <owner>/<repo> — usually the Claude GitHub app isn't installed on <owner> or wasn't granted this repo (web-connected accounts need it for private repos), or a different GitHub account is connected. To fix: run /web-setup to reuse your GitHub CLI login, or install the app at https://github.com/apps/claude/installations/new — then re-run /code-review ultra 1234.3509Your connected GitHub account can't see <owner>/<repo> — usually the Claude GitHub app isn't installed on <owner> or wasn't granted this repo (web-connected accounts need it for private repos), or a different GitHub account is connected. To fix: run /web-setup to reuse your GitHub CLI login, or install the app at https://github.com/apps/claude/installations/new — then re-run /code-review ultra 1234.

3487```3510```

3488 3511 

3489当 [`/web-setup`](/docs/zh-CN/web-quickstart#connect-from-your-terminal) 在您的会话中不可用时,消息仅命名应用安装。3512当 [`/web-setup`](/docs/zh-CN/web-quickstart#connect-from-your-terminal) 在您的会话中不可用时,消息只会给出应用安装方式。

3490 3513 

3491**应该做什么:**3514**解决方法:**

3492 3515 

3493* 如果您的本地 `gh` CLI 可以读取存储库,运行 `/web-setup` 将该登录连接到您的 Claude 帐户3516* 如果您本地的 `gh` CLI 能够读取该仓库,请运行 `/web-setup` 将该登录连接到您的 Claude 账户

3494* 更改后重新运行审查3517* 完成更改后重新运行审查

3495 3518 

3496在 v2.1.248 之前,Claude Code 在启动前不检查这个。3519在 v2.1.248 之前,Claude Code 在启动前不会进行此检查。

3497 3520 

3498<h3 id="the-github-app-preflight-failed-transiently">3521<h3 id="the-github-app-preflight-failed-transiently">

3499 GitHub App 预检暂时失败3522 GitHub App 预检暂时失败

3500</h3>3523</h3>

3501 3524 

3502您从本地存储库启动了[云会话](/docs/zh-CN/claude-code-on-the-web),两个步骤一起失败了。Claude Code 无法构建或上传您的存储库包。在上传之前,它检查了云服务是否可以从 GitHub 克隆存储库,而不是明确的答案,该检查以重试可能清除的错误结束,例如网络错误、超时或临时服务器错误。完整消息以停止包的内容开头,例如 `Could not upload repo bundle (<error>)`,并以预检句子结尾:3525您从本地仓库启动了一个[云端会话](/docs/zh-CN/claude-code-on-the-web),而两个步骤同时失败了。Claude Code 无法构建或上传您仓库的 bundle。在上传之前,它检查了云服务能否从 GitHub 克隆该仓库,而该检查没有得出明确结果,而是以一个重试可能消除的错误结束,例如网络错误、超时或临时服务器错误。完整消息以导致 bundle 失败的原因开头,例如 `Could not upload repo bundle (<error>)`,并以预检相关的句子结尾:

3503 3526 

3504```text theme={null}3527```text theme={null}

3505Could not upload repo bundle (<error>). The GitHub App preflight failed transiently (network or service hiccup) — retry in a moment to start from GitHub instead3528Could not upload repo bundle (<error>). The GitHub App preflight failed transiently (network or service hiccup) — retry in a moment to start from GitHub instead

3506```3529```

3507 3530 

3508**应该做什么:**3531**解决方法:**

3509 3532 

3510* 片刻后重新运行命令。当 GitHub 检查通过时,Claude Code 可以从 GitHub 克隆启动会话,所以失败的上传不再阻止启动3533* 稍后重新运行命令。当 GitHub 检查通过时,Claude Code 可以从 GitHub 克隆启动会话,因此上传失败不再阻止启动

3511* 如果重试继续失败,消息的开头命名停止上传的内容。当该原因是您可以修复的内容时,修复它以便会话可以从您的本地存储库启动3534* 如果重试持续失败,消息开头会指出导致上传失败的原因。如果该原因是您可以修复的,请修复它,以便会话可以从您的本地仓库启动

3512 3535 

3513在 v2.1.251 之前,Claude Code 以 `Please set up GitHub on https://claude.ai/code` 结束消息,即使 GitHub 检查仅暂时失败,设置建议无法清除暂时失败。3536在 v2.1.251 之前,即使 GitHub 检查只是暂时失败,Claude Code 也会在消息结尾加上 `Please set up GitHub on https://claude.ai/code`,而设置建议无法解决暂时性失败。

3514 3537 

3515<h3 id="the-repository-upload-cant-follow-a-git-setting">3538<h3 id="the-repository-upload-cant-follow-a-git-setting">

3516 存储库上传无法遵循 git 设置3539 仓库上传无法遵循某项 git 设置

3517</h3>3540</h3>

3518 3541 

3519您启动了[上传您的本地存储库的云会话](/docs/zh-CN/claude-code-on-the-web#send-local-repositories-without-github),或分支的 [ultrareview](/docs/zh-CN/ultrareview),上传无法遵循决定哪个属性规则适用于您的文件的 git 设置之一。如果上传继续并错过了规则,git 在存储它之前转换的文件,例如清理过滤器加密的文件,可能会到达云端,因为它在磁盘上。Claude Code 拒绝上传,什么都不上传:3542您启动了一个[上传本地仓库的云端会话](/docs/zh-CN/claude-code-on-the-web#send-local-repositories-without-github),或对某个分支启动了 [ultrareview](/docs/zh-CN/ultrareview),而上传无法遵循决定哪些属性规则适用于您文件的某项 git 设置。如果上传继续进行并遗漏了某条规则,那么 git 在存储前会进行转换的文件(例如由 clean 过滤器加密的文件)可能会以磁盘上的原样到达云端。因此 Claude Code 会拒绝上传,不会上传任何内容:

3520 3543 

3521```text theme={null}3544```text theme={null}

3522Not uploading this working tree: core.ignoreCase (which decides whether .gitattributes patterns match file names regardless of letter case) is set in <file>, and the upload cannot follow that setting, so a file git would change before storing it (to encrypt it, for example) could be uploaded as it is on disk. Move the core.ignoreCase line into this repository's .git/config or directly into your ~/.gitconfig, then retry.3545Not uploading this working tree: core.ignoreCase (which decides whether .gitattributes patterns match file names regardless of letter case) is set in <file>, and the upload cannot follow that setting, so a file git would change before storing it (to encrypt it, for example) could be uploaded as it is on disk. Move the core.ignoreCase line into this repository’s .git/config or directly into your ~/.gitconfig, then retry.

3523```3546```

3524 3547 

3525消息命名设置和它的设置位置,并以该情况的修复结尾。相同的拒绝出现在 `core.attributesFile` 和 `attr.tree`,每个都有自己的修复。3548消息会指出该设置及其设置位置,并在结尾给出针对您所遇情况的修复方法。`core.attributesFile` 和 `attr.tree` 也会出现相同的拒绝,并各自附带相应的修复方法。

3526 3549 

3527消息可以命名您的 git 配置通过 `include` 或 `includeIf` 指令拉入的配置文件,即使该指令的条件不适用于此存储库。3550消息可能会指出一个由您的 git 配置通过 `include` 或 `includeIf` 指令引入的配置文件,即使该指令的条件并不适用于此仓库。

3528 3551 

3529**应该做什么:**3552**解决方法:**

3530 3553 

3531* 应用消息最后一句中的修复3554* 按照消息最后一句中的修复方法操作

3532 3555 

3533<h3 id="github-isnt-connected-to-your-claude-account">3556<h3 id="github-isnt-connected-to-your-claude-account">

3534 GitHub 未连接到您的 Claude 帐户3557 GitHub 未连接到您的 Claude 账户

3535</h3>3558</h3>

3536 3559 

3537您从本地存储库启动了[云会话](/docs/zh-CN/claude-code-on-the-web),例如使用 `/autofix-pr`。没有 GitHub 帐户连接到您的 Claude 帐户,或连接已过期,所以 Claude Code 拒绝启动:3560您从本地仓库启动了一个[云端会话](/docs/zh-CN/claude-code-on-the-web),例如使用 `/autofix-pr`。由于您的 Claude 账户没有连接任何 GitHub 账户,或连接已过期,Claude Code 拒绝启动:

3538 3561 

3539```text theme={null}3562```text theme={null}

3540GitHub isn't connected to your Claude account, so this repository can't be cloned in the cloud. Run /web-setup to connect with your GitHub CLI login, or connect on the web at https://claude.ai/connect-github3563GitHub isn't connected to your Claude account, so this repository can't be cloned in the cloud. Run /web-setup to connect with your GitHub CLI login, or connect on the web at https://claude.ai/connect-github

3541```3564```

3542 3565 

3543当您使用 [`/schedule`](/docs/zh-CN/routines) 创建例程时,相同的消息作为命名存储库的设置注释出现;注释不会阻止创建例程。3566当您使用 [`/schedule`](/docs/zh-CN/routines) 创建 Routine 时,相同的消息会以指出该仓库的设置说明形式出现;该说明不会阻止创建 Routine。

3544 3567 

3545**应该做什么:**3568**解决方法:**

3546 3569 

3547* 运行 `/web-setup` 将您的 GitHub CLI 登录连接到您的 Claude 帐户,或在 [claude.ai/connect-github](https://claude.ai/connect-github) 连接帐户。请参阅[GitHub 身份验证选项](/docs/zh-CN/claude-code-on-the-web#github-authentication-options)了解两者的区别。3570* 运行 `/web-setup` 将您的 GitHub CLI 登录连接到 Claude 账户,或在 [claude.ai/connect-github](https://claude.ai/connect-github) 连接账户。有关两者的区别,请参阅 [GitHub 身份验证选项](/docs/zh-CN/claude-code-on-the-web#github-authentication-options)。

3548* 连接后一分钟重新运行命令3571* 连接后等待一分钟再重新运行命令

3549 3572 

3550在 v2.1.268 之前,Claude Code 将此报告为 Claude GitHub App 检查的临时失败,并建议重试或安装应用;两者都不连接 GitHub 帐户。3573在 v2.1.268 之前,Claude Code 会将此情况报告为 Claude GitHub App 检查的暂时失败,并建议重试或安装该应用;但这两种做法都无法连接 GitHub 账户。

3551 3574 

3552<h3 id="single-sign-on-authorization-needed">3575<h3 id="single-sign-on-authorization-needed">

3553 需要单点登录授权3576 需要单点登录授权

3554</h3>3577</h3>

3555 3578 

3556您运行了 [`/install-github-app`](/docs/zh-CN/github-actions#quick-setup),并选择了其组织强制执行 SAML 单点登录的存储库。在设置之前,Claude Code 使用 GitHub CLI 检查您对存储库的访问权限,GitHub 拒绝了该检查,因为您的 `gh` 令牌还没有为组织授权。向导显示警告和授权步骤:3579您运行了 [`/install-github-app`](/docs/zh-CN/github-actions#quick-setup),并选择了一个其组织强制实施 SAML 单点登录的仓库。在设置之前,Claude Code 会使用 GitHub CLI 检查您对该仓库的访问权限,而 GitHub 拒绝了该检查,因为您的 `gh` 令牌尚未获得该组织的授权。向导会显示警告以及授权步骤:

3557 3580 

3558```text theme={null}3581```text theme={null}

3559Single sign-on authorization needed3582Single sign-on authorization needed

3560<owner>/<repo> belongs to an organization that enforces SAML single sign-on, and your GitHub CLI token isn't authorized for it yet.3583<owner>/<repo> belongs to an organization that enforces SAML single sign-on, and your GitHub CLI token isn't authorized for it yet.

3561```3584```

3562 3585 

3563**应该做什么:**3586**解决方法:**

3564 3587 

3565* 通过运行 `gh auth refresh -h github.com -s repo,workflow` 使用 `repo` 和 `workflow` 范围重新授权您的 GitHub CLI 登录,并在 GitHub 提示单点登录时授权组织3588* 运行 `gh auth refresh -h github.com -s repo,workflow`,以 `repo` 和 `workflow` 作用域重新授权您的 GitHub CLI 登录,并在 GitHub 提示单点登录时授权该组织

3566* 如果您使用 `GH_TOKEN` 中的个人访问令牌进行身份验证,请打开 [github.com/settings/tokens](https://github.com/settings/tokens),在令牌上选择**配置 SSO**,并授权组织3589* 如果您在 `GH_TOKEN` 中使用个人访问令牌进行身份验证,请打开 [github.com/settings/tokens](https://github.com/settings/tokens),在该令牌上选择 **Configure SSO**,然后授权该组织

3567* 再次运行 `/install-github-app`3590* 再次运行 `/install-github-app`

3568 3591 

3569在 v2.1.273 之前,Claude Code 为此条件显示 `Admin permissions required` 警告。3592在 v2.1.273 之前,Claude Code 在这种情况下会改为显示 `Admin permissions required` 警告。

3570 3593 

3571<h3 id="failed-to-resume-the-conversation">3594<h3 id="failed-to-resume-the-conversation">

3572 无法恢复对话3595 无法恢复对话

3573</h3>3596</h3>

3574 3597 

3575Claude Code 无法读取或处理您从 [`claude --resume` 选择器](/docs/zh-CN/sessions#use-the-session-picker)选择的会话的保存成绩单,所以它结束进程而不是在部分加载状态下继续。消息包括重试的命令:3598Claude Code 无法读取或处理您从 [`claude --resume` 选择器](/docs/zh-CN/sessions#use-the-session-picker)中选择的会话所保存的会话记录,因此它会结束进程,而不是在部分加载的状态下继续。消息中包含重试命令:

3576 3599 

3577```text theme={null}3600```text theme={null}

3578Failed to resume the conversation.3601Failed to resume the conversation.

3579Run claude --resume <session-id> to retry, or claude to start a new session.3602Run claude --resume <session-id> to retry, or claude to start a new session.

3580```3603```

3581 3604 

3582Claude Code 显示消息后以代码 1 退出。运行会话内的 `/resume` 选择器报告对话中的 `Failed to resume conversation`,您当前的会话保持运行。在 v2.1.216 之前,来自 `claude --resume` 选择器的失败恢复在 `Resuming conversation…` 微调器上无限期停留,而不是显示此消息。3605显示消息后,Claude Code 以退出码 1 退出。而在运行中的会话内使用 `/resume` 选择器时,会在对话中报告 `Failed to resume conversation`,您当前的会话会继续运行。在 v2.1.216 之前,从 `claude --resume` 选择器恢复失败时,会一直停留在 `Resuming conversation…` 加载动画上,而不是显示此消息。

3583 3606 

3584**应该做什么:**3607**解决方法:**

3585 3608 

3586* 使用消息中的会话 ID 运行 `claude --resume <session-id>` 重试3609* 使用消息中的会话 ID 运行 `claude --resume <session-id>` 进行重试

3587* 如果每次重试都以相同的方式失败,运行 `claude update` 并再次恢复。v2.1.275 之前的版本在保存的成绩单包含它们无法读取的条目时恢复失败。3610* 如果每次重试都以同样的方式失败,请运行 `claude update` 后再次恢复。v2.1.275 之前的版本在保存的会话记录包含它们无法读取的条目时,会导致恢复失败。

3588* 如果重试再次失败,运行 `claude` 启动新会话3611* 如果重试再次失败,请运行 `claude` 启动新会话

3589 3612 

3590<h3 id="no-conversation-found-with-the-session-id">3613<h3 id="no-conversation-found-with-the-session-id">

3591 未找到具有会话 ID 的对话3614 未找到与该会话 ID 对应的对话

3592</h3>3615</h3>

3593 3616 

3594您将会话 ID 传递给 `claude --resume <session-id>`,没有保存的成绩单与其匹配:3617您向 `claude --resume <session-id>` 传入了一个会话 ID,但没有匹配的已保存会话记录:

3595 3618 

3596```text theme={null}3619```text theme={null}

3597No conversation found with session ID: <session-id>3620No conversation found with session ID: <session-id>

3598```3621```

3599 3622 

3600Claude Code 显示消息后以代码 1 退出。Claude Code [首先搜索当前项目,然后搜索此机器上的所有其他项目](/docs/zh-CN/sessions#resume-a-session)以查找 ID。在 v2.1.223 之前,查找停止在当前项目目录及其 git worktrees,所以从会话最后工作的目录恢复。3623显示消息后,Claude Code 以退出码 1 退出。Claude Code 会[先在当前项目中查找该 ID,然后在此机器上的其他所有项目中查找](/docs/zh-CN/sessions#resume-a-session)。在 v2.1.223 之前,查找仅限于当前项目目录及其 git worktree,因此需要在会话最后工作的目录中恢复。

3601 3624 

3602常见原因:3625常见原因:

3603 3626 

3604* **打字错误的 ID**:对于非交互运行,ID 是 [`--output-format json` 输出](/docs/zh-CN/headless#get-structured-output)的 `session_id` 字段3627* **ID 输入错误**:对于非交互运行,ID 是 [`--output-format json` 输出](/docs/zh-CN/headless#get-structured-output)中的 `session_id` 字段

3605* **删除的成绩单**:Claude Code 在[保留期](/docs/zh-CN/sessions#where-transcripts-are-stored)后删除成绩单,默认 30 天,遵循[保留扫描规则](/docs/zh-CN/claude-directory#cleaned-up-automatically)3628* **会话记录已删除**:Claude Code 会在[保留期](/docs/zh-CN/sessions#where-transcripts-are-stored)(默认 30 天)过后,按照[保留清理规则](/docs/zh-CN/claude-directory#cleaned-up-automatically)删除会话记录

3606* **不同的机器**:Claude Code 在本地存储成绩单,所以在运行它的机器上恢复会话3629* **不同的机器**:Claude Code 将会话记录存储在本地,因此请在运行该会话的机器上恢复它

3607* **重复副本**:如果您在 `~/.claude/projects` 下复制了项目目录,所以两个成绩单携带相同的 ID,Claude Code 报告此消息而不是任意恢复一个副本3630* **重复的副本**:如果您复制了 `~/.claude/projects` 下的项目目录,导致两个会话记录带有相同的 ID,Claude Code 会报告此消息,而不是任意恢复其中一个副本

3608 3631 

3609**应该做什么:**3632**解决方法:**

3610 3633 

3611* 对于交互会话,使用 `claude --resume` 打开[会话选择器](/docs/zh-CN/sessions#use-the-session-picker),按 `Ctrl+A` 将其扩展到此机器上的每个项目,然后选择会话3634* 对于交互式会话,使用 `claude --resume` 打开[会话选择器](/docs/zh-CN/sessions#use-the-session-picker),按 `Ctrl+A` 将范围扩大到此机器上的所有项目,然后选择该会话

3612* 使用 `claude -p` 或 [Agent SDK](/docs/zh-CN/agent-sdk/overview) 创建的会话不会出现在选择器中,所以重新检查 ID 与您的原始运行打印的 `session_id`3635* 使用 `claude -p` 或 [Agent SDK](/docs/zh-CN/agent-sdk/overview) 创建的会话不会出现在选择器中,因此请对照您原始运行所打印的 `session_id` 重新检查 ID

3613 3636 

3614<h3 id="windows-reported-an-error-ebadf">3637<h3 id="windows-reported-an-error-ebadf">

3615 Windows 在 Claude Code 读取此会话的成绩单文件时报告了错误 (EBADF)3638 Windows reported an error (EBADF) when Claude Code read this session's transcript file

3616</h3>3639</h3>

3617 3640 

3618您在 Windows 上恢复了会话,其保存的[成绩单文件](/docs/zh-CN/sessions#where-transcripts-are-stored)正常打开,读取它然后失败,显示系统错误 EBADF。系统错误没有说读取失败的原因,所以消息建议可能的原因和要尝试的内容:3641您在 Windows 上恢复了一个会话,其保存的[会话记录文件](/docs/zh-CN/sessions#where-transcripts-are-stored)可以正常打开,但随后读取时因系统错误 EBADF 而失败。该系统错误并未说明读取失败的原因,因此消息会提示可能的原因以及可以尝试的操作:

3619 3642 

3620```text theme={null}3643```text theme={null}

3621Windows reported an error (EBADF) when Claude Code read this session's transcript file, although the file had opened normally. This can happen when other software intercepts file reads — security, encryption or endpoint-management tools, for example. If it keeps happening for this conversation, try excluding the folder that holds Claude Code's session transcripts from such software (the .claude folder in your user profile, unless the app or CLAUDE_CONFIG_DIR points Claude Code elsewhere), or adding Claude Code to its allowed applications, then resume again.3644Windows reported an error (EBADF) when Claude Code read this session's transcript file, although the file had opened normally. This can happen when other software intercepts file reads — security, encryption or endpoint-management tools, for example. If it keeps happening for this conversation, try excluding the folder that holds Claude Code's session transcripts from such software (the .claude folder in your user profile, unless the app or CLAUDE_CONFIG_DIR points Claude Code elsewhere), or adding Claude Code to its allowed applications, then resume again.

3622```3645```

3623 3646 

3624消息遵循命令自己的失败行,例如 `Failed to resume session <session-id>`。`claude --resume` 或 [`claude -p`](/docs/zh-CN/headless) 命令显示它后以代码 1 退出。在会话内的 `/resume` 后,您当前的会话保持运行。3647该消息显示在命令自身的失败行之后,例如 `Failed to resume session <session-id>`。`claude --resume` 或 [`claude -p`](/docs/zh-CN/headless) 命令在显示该消息后以代码 1 退出。在会话内执行 `/resume` 后,当前会话会继续运行。

3625 3648 

3626**应该做什么:**3649**解决方法:**

3627 3650 

3628* 从扫描或拦截文件读取的软件(例如安全、加密或端点管理工具)中排除保存会话成绩单的文件夹。成绩单默认位于 `%USERPROFILE%\.claude\projects` 下,或位于 [`CLAUDE_CONFIG_DIR`](/docs/zh-CN/env-vars) 命名的目录下3651* 将存放会话记录的文件夹从会扫描或拦截文件读取的软件(例如安全、加密或终端管理工具)中排除。会话记录默认位于 `%USERPROFILE%\.claude\projects` 下,或位于 [`CLAUDE_CONFIG_DIR`](/docs/zh-CN/env-vars) 所指定的目录下

3629* 如果您无法添加排除,请改为将 Claude Code 添加到该软件的允许应用程序3652* 如果无法添加排除项,请改为将 Claude Code 添加到该软件的允许应用程序中

3630* 再次恢复会话3653* 再次恢复会话

3631 3654 

3632在 v2.1.282 之前,失败没有解释:`claude --resume <session-id>` 在 `Failed to resume session <session-id>` 处结束,`-p` 运行仅打印系统错误文本,例如 `Failed to resume session: EBADF: bad file descriptor, read`。3655在 v2.1.282 之前,该失败不附带任何说明:`claude --resume <session-id>` 以 `Failed to resume session <session-id>` 结束,而 `-p` 运行仅打印系统错误文本,例如 `Failed to resume session: EBADF: bad file descriptor, read`。

3633 3656 

3634<h3 id="cannot-switch-renderers-in-this-session">3657<h3 id="cannot-switch-renderers-in-this-session">

3635 无法在此会话中切换渲染器3658 Cannot switch renderers in this session

3636</h3>3659</h3>

3637 3660 

3638当您切换渲染器时,Claude Code 重新启动其进程。您在 Claude Code 拒绝重新启动的会话中运行了 [`/tui`](/docs/zh-CN/fullscreen#enable-fullscreen-rendering),所以它不切换并保存任何内容。您看到的消息告诉您原因:3661切换渲染器时,Claude Code 会重启其进程。您在一个 Claude Code 拒绝重启的会话中运行了 [`/tui`](/docs/zh-CN/fullscreen#enable-fullscreen-rendering),因此它不会切换,也不会保存任何内容。您看到的消息会指明原因:

3639 3662 

3640* `Cannot switch renderers while work is running in the background`:您有在后台运行的工作,重新启动会放弃,例如后台 shell 或子代理。等待工作完成或使用 [`/tasks`](/docs/zh-CN/commands) 停止它,然后再次运行 `/tui fullscreen` 或 `/tui default`3663* `Cannot switch renderers while work is running in the background`:您有正在后台运行的工作,重启会将其放弃,例如后台 shell 或子代理。请等待工作完成,或使用 [`/tasks`](/docs/zh-CN/commands) 将其停止,然后再次运行 `/tui fullscreen` 或 `/tui default`

3641* `Cannot switch renderers in this session`:会话有 Claude Code 无法传递给重新启动的进程的限制。在 v2.1.234 之前,Claude Code 无论如何都会重新启动,重新启动的会话运行时没有它们3664* `Cannot switch renderers in this session`:该会话具有 Claude Code 无法传递给重启后进程的限制。在 v2.1.234 之前,Claude Code 仍会重启,而重新启动的会话将在没有这些限制的情况下运行

3642 3665 

3643在限制消息中,括号中的部分命名 Claude Code 找到的限制:3666在限制消息中,括号内的部分列出了 Claude Code 检测到的限制:

3644 3667 

3645```text theme={null}3668```text theme={null}

3646Cannot switch renderers in this session — it has restrictions a restart can't carry over (permission rules set for this session only). Nothing was changed. Running /tui fullscreen in a session started without them switches every later session too.3669Cannot switch renderers in this session — it has restrictions a restart can't carry over (permission rules set for this session only). Nothing was changed. Running /tui fullscreen in a session started without them switches every later session too.

3647```3670```

3648 3671 

3649消息可以在括号中显示的每个原因:3672消息括号中可能显示的各项原因:

3650 3673 

3651* `launch flags: a custom system prompt, a tool allowlist, or restricted settings`:您使用 Claude Code 不传递回重新启动的进程的标志启动了会话。这些标志包括 [`--system-prompt`](/docs/zh-CN/cli-reference#cli-flags)、`--system-prompt-file`、`--append-system-prompt-file`、[`--tools`](/docs/zh-CN/cli-reference#cli-flags) 允许列表、[`--setting-sources`](/docs/zh-CN/cli-reference#cli-flags) 和 [`--permission-prompt-tool`](/docs/zh-CN/cli-reference#cli-flags)3674* `launch flags: a custom system prompt, a tool allowlist, or restricted settings`:您启动会话时使用了 Claude Code 不会传回给重启后进程的标志。这些标志包括 [`--system-prompt`](/docs/zh-CN/cli-reference#cli-flags)、`--system-prompt-file`、`--append-system-prompt-file`、[`--tools`](/docs/zh-CN/cli-reference#cli-flags) 允许列表、[`--setting-sources`](/docs/zh-CN/cli-reference#cli-flags) 以及 [`--permission-prompt-tool`](/docs/zh-CN/cli-reference#cli-flags)

3652* `permission rules set for this session only`:来自钩子或 SDK 调用者的[权限更新](/docs/zh-CN/hooks#permission-update-entries)添加了带有 `session` 目标的拒绝或询问规则。会话范围的允许规则不会触发拒绝。重新启动会删除它们,Claude Code 改为再次提示3675* `permission rules set for this session only`:来自 hook 或 SDK 调用方的[权限更新](/docs/zh-CN/hooks#permission-update-entries)添加了目标为 `session` 的 deny 或 ask 规则。会话范围的 allow 规则不会触发拒绝。重启会丢弃这些规则,Claude Code 会改为再次提示

3653* `ask-before-running rules with no command-line form`:来自钩子或 SDK 调用者的权限更新添加了询问规则以及 Claude Code 作为 `--allowed-tools` 和 `--disallowed-tools` 传递回的规则。不存在询问规则的标志3676* `ask-before-running rules with no command-line form`:来自 hook 或 SDK 调用方的权限更新添加了 ask 规则,与 Claude Code 以 `--allowed-tools` 和 `--disallowed-tools` 传回的规则并存。ask 规则没有对应的标志

3654* `permission rules a command line cannot carry intact` 和 `added directories a command line cannot carry intact`:权限更新在会话中期添加了规则或目录路径。重新启动的进程的命令行无法将其文本作为相同的值继承3677* `permission rules a command line cannot carry intact` 和 `added directories a command line cannot carry intact`:某个权限更新在会话中途添加了规则或目录路径。重启后进程的命令行无法将其文本作为相同的值传递

3655 3678 

3656**应该做什么:**3679**解决方法:**

3657 3680 

3658* 在没有这些限制的会话中,运行 `/tui fullscreen`,或 `/tui default` 切换回。Claude Code 在那里保存 [`tui` 设置](/docs/zh-CN/settings-reference#tui)3681* 在未带这些限制启动的会话中运行 `/tui fullscreen`,或运行 `/tui default` 切换回来。Claude Code 会在该会话中保存 [`tui` 设置](/docs/zh-CN/settings-reference#tui)

3659 3682 

3660<h3 id="couldnt-open-claude-desktop">3683<h3 id="couldnt-open-claude-desktop">

3661 无法打开 Claude Desktop3684 Couldn't open Claude Desktop

3662</h3>3685</h3>

3663 3686 

3664您在会话中运行了 [`/desktop`](/docs/zh-CN/desktop#coming-from-the-cli) 或其别名 `/app`,或在您的 shell 中运行了 [`claude --desktop`](/docs/zh-CN/cli-reference#cli-flags),Claude Code 用来打开 Claude Desktop 的系统命令失败了。在 `/desktop` 后,会话保持在终端中;`claude --desktop` 打印消息而不带 `Error:` 前缀,并以状态 1 退出。3687您在会话中运行了 [`/desktop`](/docs/zh-CN/desktop#coming-from-the-cli) 或其别名 `/app`,或在 shell 中运行了 [`claude --desktop`](/docs/zh-CN/cli-reference#cli-flags),而 Claude Code 用于打开 Claude Desktop 的系统命令失败了。执行 `/desktop` 后,会话会保留在终端中;`claude --desktop` 会打印不带 `Error:` 前缀的消息,并以状态 1 退出。

3665 3688 

3666括号中的文本命名失败的命令,带有其退出状态和其错误输出的第一行(如果它产生了)。在 macOS 上该命令是 `open`,如本例所示;在 Windows 上它是 `rundll32`:3689括号中的文本列出了失败的命令,如果有的话,还会附上其退出状态和错误输出的第一行。在 macOS 上,该命令是 `open`,如本例所示;在 Windows 上则是 `rundll32`:

3667 3690 

3668```text theme={null}3691```text theme={null}

3669Error: Couldn't open Claude Desktop (`open` exited 1: LSOpenURLsWithRole() failed for the URL claude://resume?session=<session-id> with error -10814). Open Claude Desktop and try again.3692Error: Couldn't open Claude Desktop (`open` exited 1: LSOpenURLsWithRole() failed for the URL claude://resume?session=<session-id> with error -10814). Open Claude Desktop and try again.

3670```3693```

3671 3694 

3672**应该做什么:**3695**解决方法:**

3673 3696 

3674* 自己打开 Claude Desktop,然后再次运行 `/desktop` 或 `claude --desktop`3697* 手动打开 Claude Desktop,然后再次运行 `/desktop` 或 `claude --desktop`

3675* 要读取失败命令的完整错误输出,使用 `/debug` 打开调试日志并再次运行 `/desktop`,或运行 `claude --desktop --debug-file <path>`,然后检查调试日志3698* 要查看失败命令的完整错误输出,请使用 `/debug` 启用调试日志并再次运行 `/desktop`,或运行 `claude --desktop --debug-file <path>`,然后查看调试日志

3676 3699 

3677在 v2.1.285 之前,消息以 `Open Claude Desktop and run /desktop again.` 结尾。在 v2.1.275 之前,它是 `Failed to open Claude Desktop. Please try opening it manually.`,没有说什么失败了。3700在 v2.1.285 之前,该消息以 `Open Claude Desktop and run /desktop again.` 结尾。在 v2.1.275 之前,消息为 `Failed to open Claude Desktop. Please try opening it manually.`,且不会说明失败的内容。

3678 3701 

3679<h3 id="terminal-setup-left-your-zed-keymap-unchanged">3702<h3 id="terminal-setup-left-your-zed-keymap-unchanged">

3680 /terminal-setup 保持您的 Zed 快捷键不变3703 /terminal-setup left your Zed keymap unchanged

3681</h3>3704</h3>

3682 3705 

3683您在 Zed 中运行了 [`/terminal-setup`](/docs/zh-CN/terminal-config#enter-multiline-prompts),Claude Code 无法完成对您的 Zed `keymap.json` 的更新,所以它保持文件不变。3706您在 Zed 中运行了 [`/terminal-setup`](/docs/zh-CN/terminal-config#enter-multiline-prompts),而 Claude Code 无法完成对 Zed `keymap.json` 的更新,因此保留了该文件原样。

3684 3707 

3685每条消息命名您的快捷键的路径,并以您自己添加的快捷键块结尾:3708每条消息都会列出您的 keymap 路径,并在末尾附上供您自行添加的快捷键块:

3686 3709 

3687```text theme={null}3710```text theme={null}

3688Couldn't update your Zed keymap, so it was left unchanged.3711Couldn't update your Zed keymap, so it was left unchanged.


3690{ "context": "Terminal", "bindings": { "shift-enter": ["terminal::SendText", "\u001b\r"] } }3713{ "context": "Terminal", "bindings": { "shift-enter": ["terminal::SendText", "\u001b\r"] } }

3691```3714```

3692 3715 

3693消息的第一行命名原因:3716消息的第一行指明了原因:

3694 3717 

3695* `Couldn't read your Zed keymap, so it was left unchanged.`:Claude Code 无法读取文件,例如由于文件权限3718* `Couldn't read your Zed keymap, so it was left unchanged.`:Claude Code 无法读取该文件,例如由于文件权限问题

3696* `Your Zed keymap isn't a readable list of keybindings, so it was left unchanged.`:文件读取正常但不解析为快捷键块数组,即使允许 `//` 注释和尾随逗号3719* `Your Zed keymap isn't a readable list of keybindings, so it was left unchanged.`:文件可以正常读取,但即使允许 `//` 注释和尾随逗号,也无法解析为快捷键块数组

3697* `Couldn't back up your Zed keymap; not modifying it.`:Claude Code 无法将文件复制到其旁边的 `.bak` 备份,所以它没有更改任何内容3720* `Couldn't back up your Zed keymap; not modifying it.`:Claude Code 无法将该文件复制为其旁边的 `.bak` 备份,因此未做任何更改

3698* `Couldn't update your Zed keymap, so it was left unchanged.`:合并的结果没有验证为携带绑定的有效快捷键,所以 Claude Code 丢弃它而不是写入。具有重复键的快捷键块可能导致这种情况3721* `Couldn't update your Zed keymap, so it was left unchanged.`:合并后的结果未能通过验证,不是包含该快捷键的有效 keymap,因此 Claude Code 将其丢弃而未写入。包含重复键的快捷键块可能导致此问题

3699 3722 

3700**应该做什么:**3723**解决方法:**

3701 3724 

3702* 将消息中的块复制到消息命名的路径处 `keymap.json` 中的顶级数组3725* 将消息中的块复制到消息所指路径下 `keymap.json` 的顶层数组中

3703* 对于 `isn't a readable list of keybindings`,修复语法错误,或使文件的顶级值成为数组,然后再次运行 `/terminal-setup`3726* 对于 `isn't a readable list of keybindings`,请修复语法错误,或将文件的顶层值改为数组,然后再次运行 `/terminal-setup`

3704 3727 

3705在 v2.1.247 之前,`/terminal-setup` 无法解析使用 `//` 注释或尾随逗号的 Zed 快捷键,它用仅其自己的绑定替换整个文件,同时报告绑定已安装。要恢复较早版本替换的快捷键,请使用[输入多行提示](/docs/zh-CN/terminal-config#enter-multiline-prompts)下描述的 `.bak` 备份文件。3728在 v2.1.247 之前,`/terminal-setup` 无法解析使用了 `//` 注释或尾随逗号的 Zed keymap,并且会将整个文件替换为仅包含其自身快捷键的内容,同时报告快捷键已安装。要恢复被早期版本替换的 keymap,请使用[输入多行提示词](/docs/zh-CN/terminal-config#enter-multiline-prompts)中所述的 `.bak` 备份文件。

3706 3729 

3707<h3 id="skill-usage-reports-are-not-available-on-this-connection">3730<h3 id="skill-usage-reports-are-not-available-on-this-connection">

3708 Skill 使用报告在此连接上不可用3731 Skill usage reports are not available on this connection

3709</h3>3732</h3>

3710 3733 

3711您在[远程控制](/docs/zh-CN/remote-control)上、从您的手机或浏览器运行了 [`/skill-doctor`](/docs/zh-CN/skills#find-unused-skills)。Claude Code 不通过远程控制发送 skill 使用报告,改为用此消息回复:3734您通过 [Remote Control](/docs/zh-CN/remote-control) 从手机或浏览器运行了 [`/skill-doctor`](/docs/zh-CN/skills#find-unused-skills)。Claude Code 不会通过 Remote Control 发送 skill 使用情况报告,而是回复以下消息:

3712 3735 

3713```text theme={null}3736```text theme={null}

3714Skill usage reports are not available on this connection.3737Skill usage reports are not available on this connection.

3715```3738```

3716 3739 

3717**应该做什么:**3740**解决方法:**

3718 3741 

3719* 在会话运行的机器上的终端中运行 `/skill-doctor`,或在那里运行 `claude -p "/skill-doctor"`3742* 在运行该会话的机器的终端中运行 `/skill-doctor`,或在该机器上运行 `claude -p "/skill-doctor"`

3720 3743 

3721<h3 id="custom-output-styles-cant-be-selected-over-remote-control">3744<h3 id="custom-output-styles-cant-be-selected-over-remote-control">

3722 无法通过远程控制选择自定义输出样式3745 Custom output styles can't be selected over Remote Control

3723</h3>3746</h3>

3724 3747 

3725您从移动应用或网络通过[远程控制](/docs/zh-CN/remote-control)运行了 [`/output-style`](/docs/zh-CN/output-styles#change-your-output-style),或命令在中继到会话的消息中到达。因为此类轮次可能不来自帐户所有者,Claude Code 仅在其上列出并选择[内置样式](/docs/zh-CN/output-styles#built-in-output-styles),并在命令列出样式或不识别您给出的名称时添加此通知。[自定义样式](/docs/zh-CN/output-styles#create-a-custom-output-style)名称获得与不存在的名称相同的回复:3748您通过 [Remote Control](/docs/zh-CN/remote-control) 从移动应用或网页运行了 [`/output-style`](/docs/zh-CN/output-styles#change-your-output-style),或者该命令来自转发到会话中的消息。由于此类轮次可能并非来自账户所有者,Claude Code 在其中仅列出和选择[内置样式](/docs/zh-CN/output-styles#built-in-output-styles),并且每当命令列出样式或无法识别您提供的名称时,都会附加此通知。[自定义样式](/docs/zh-CN/output-styles#create-a-custom-output-style)名称得到的回复与不存在的名称相同:

3726 3749 

3727```text theme={null}3750```text theme={null}

3728Custom output styles can't be selected over Remote Control or from a relayed message. Select one in the session itself, or pick a built-in style here.3751Custom output styles can't be selected over Remote Control or from a relayed message. Select one in the session itself, or pick a built-in style here.

3729```3752```

3730 3753 

3731**应该做什么:**3754**解决方法:**

3732 3755 

3733* 选择内置样式,例如 `/output-style concise`3756* 选择一个内置样式,例如 `/output-style concise`

3734* 要使用自定义样式,在项目的 `.claude/settings.local.json` 中设置 [`outputStyle`](/docs/zh-CN/settings-reference#outputstyle),或在会话自己的终端中运行 `/output-style <style>`(如果它有的话)3757* 要使用自定义样式,请在项目的 `.claude/settings.local.json` 中设置 [`outputStyle`](/docs/zh-CN/settings-reference#outputstyle),或者如果会话有自己的终端,则在该终端中运行 `/output-style <style>`

3735 3758 

3736<h3 id="output-styles-are-saved-to-local-settings-which-this-session-doesnt-load">3759<h3 id="output-styles-are-saved-to-local-settings-which-this-session-doesnt-load">

3737 输出样式保存到此会话不加载的本地设置3760 Output styles are saved to local settings which this session doesn't load

3738</h3>3761</h3>

3739 3762 

3740您尝试在其设置源排除 `local` 的会话中使用 `/output-style <style>` 或 `/config outputStyle=<style>` 切换[输出样式](/docs/zh-CN/output-styles)。示例是 [`settingSources`](/docs/zh-CN/agent-sdk/typescript#options) 留出 `"local"` 的 [Agent SDK](/docs/zh-CN/agent-sdk/typescript) 会话,以及使用 [`--setting-sources`](/docs/zh-CN/cli-reference#cli-flags) 值启动的 CLI 会话,该值留出 `local`。两个命令都将样式保存到 `.claude/settings.local.json`,此类会话从不读取回的文件,所以 Claude Code 拒绝而不是写入无效的设置:3763您在设置来源不包含 `local` 的会话中尝试使用 `/output-style <style>` 或 `/config outputStyle=<style>` 切换[输出样式](/docs/zh-CN/output-styles)。例如,[`settingSources`](/docs/zh-CN/agent-sdk/typescript#options) 中未包含 `"local"` 的 [Agent SDK](/docs/zh-CN/agent-sdk/typescript) 会话,以及使用不包含 `local` 的 [`--setting-sources`](/docs/zh-CN/cli-reference#cli-flags) 值启动的 CLI 会话。这两个命令都会将样式保存到 `.claude/settings.local.json`,而此类会话从不读取该文件,因此 Claude Code 会拒绝操作,而不是写入一个不会生效的设置:

3741 3764 

3742```text theme={null}3765```text theme={null}

3743Output styles are saved to local settings (.claude/settings.local.json), which this session doesn't load, so the style can't be changed here.3766Output styles are saved to local settings (.claude/settings.local.json), which this session doesn't load, so the style can't be changed here.

3744```3767```

3745 3768 

3746**应该做什么:**3769**解决方法:**

3747 3770 

3748* 将 `local` 添加到会话的设置源并再次切换3771* 将 `local` 添加到会话的设置来源中,然后再次切换

3749* 在会话确实加载的设置文件中设置 [`outputStyle`](/docs/zh-CN/settings-reference#outputstyle) 键,例如项目中的 `.claude/settings.json` 或 `~/.claude/settings.json`。在 TypeScript SDK 中,改为在内联 `settings` 对象内设置 `outputStyle`;请参阅[激活输出样式](/docs/zh-CN/agent-sdk/modifying-system-prompts#activate-an-output-style)3772* 在会话确实会加载的设置文件中设置 [`outputStyle`](/docs/zh-CN/settings-reference#outputstyle) 键,例如项目中的 `.claude/settings.json` 或 `~/.claude/settings.json`。在 TypeScript SDK 中,请改为在内联 `settings` 对象中设置 `outputStyle`;请参阅[激活输出样式](/docs/zh-CN/agent-sdk/modifying-system-prompts#activate-an-output-style)

3750 3773 

3751<h2 id="plugin-errors">3774<h2 id="plugin-errors">

3752 插件错误3775 插件错误


4474 后台会话错误4497 后台会话错误

4475</h2>4498</h2>

4476 4499 

4477[后台会话](/docs/zh-CN/agent-view)在没有自己的交互式终端的情况下运行,因此需要终端的命令在那里的行为会有所不同。这些消息出现在后台会话的记录中、附加到后台会话的终端中、您分派的会话或 shell 中,或者对于下面的[worktree-guard 条目](#write-or-command-blocked-because-the-path-cannot-be-safely-resolved),出现在任何在 worktree 中隔离的会话或运行 worktree 隔离子代理中;当消息特定于一个表面时,其条目会说明这一点。4500[后台会话](/docs/zh-CN/agent-view)在没有自己的交互式终端的情况下运行,因此需要终端的命令在那里的行为会有所不同。这些消息出现在后台会话的会话记录中、附加到后台会话的终端中、您分派的会话或 shell 中,或者对于下面的[worktree-guard 条目](#write-or-command-blocked-because-the-path-cannot-be-safely-resolved),出现在任何在 worktree 中隔离的会话或运行 worktree 隔离子代理中;当消息特定于一个使用入口时,其条目会说明这一点。

4478 4501 

4479<h3 id="commands-refused-in-a-background-session">4502<h3 id="commands-refused-in-a-background-session">

4480 后台会话中拒绝的命令4503 后台会话中拒绝的命令

4481</h3>4504</h3>

4482 4505 

4483打开交互式对话框的命令在没有终端附加到后台会话时无法执行。`/install-github-app`、`/mcp` 设置列表和 MCP 服务器菜单中的身份验证操作会响应一条消息。对于 `/install-github-app` 和 `/mcp` 设置列表,该会话也在[代理视图](/docs/zh-CN/agent-view)中的**需要输入**下显示,以便您可以找到它、附加并再次运行该命令。附加终端时,这些命令正常工作。4506打开交互式对话框的命令在没有终端附加到后台会话时无法执行。`/install-github-app`、`/mcp` 设置列表和 MCP 服务器菜单中的身份验证操作会响应一条消息。对于 `/install-github-app` 和 `/mcp` 设置列表,该会话也在 [Agent 视图](/docs/zh-CN/agent-view)中的**需要输入**下显示,以便您可以找到它、附加并再次运行该命令。附加终端时,这些命令正常工作。

4484 4507 

4485在 v2.1.216 之前,会话在拒绝 `/install-github-app` 或 `/mcp` 设置列表后不会在**需要输入**下显示。在 v2.1.213 到 v2.1.215 中,附加终端时命令仍然有效,拒绝消息告诉您附加并再次运行该命令。从 v2.1.208 到 v2.1.212,Claude Code 即使附加了终端也拒绝了它们,消息如 `Can't open MCP settings in a background session`;在这些版本上,从常规 `claude` 会话运行该命令,或升级。在 v2.1.208 之前,它们在后台会话内打开了对话框。在仅 v2.1.208 中,Claude Code 也拒绝了后台会话中的 `/model` 选择器,`/upgrade` 打印了升级 URL 而不是打开浏览器。4508在 v2.1.216 之前,会话在拒绝 `/install-github-app` 或 `/mcp` 设置列表后不会在**需要输入**下显示。在 v2.1.213 到 v2.1.215 中,附加终端时命令仍然有效,拒绝消息告诉您附加并再次运行该命令。从 v2.1.208 到 v2.1.212,Claude Code 即使附加了终端也拒绝了它们,消息如 `Can't open MCP settings in a background session`;在这些版本上,从常规 `claude` 会话运行该命令,或升级。在 v2.1.208 之前,它们在后台会话内打开了对话框。在仅 v2.1.208 中,Claude Code 也拒绝了后台会话中的 `/model` 选择器,`/upgrade` 打印了升级 URL 而不是打开浏览器。

4486 4509 


4492 4515 

4493**要做什么:**4516**要做什么:**

4494 4517 

4495* 从代理视图附加到会话并再次运行该命令4518* 从 Agent 视图附加到会话并再次运行该命令

4496* 或使用消息命名的形式,例如 `/mcp reconnect <server>`、`/mcp enable` 或 `/mcp disable`,这些不需要附加即可工作4519* 或使用消息命名的形式,例如 `/mcp reconnect <server>`、`/mcp enable` 或 `/mcp disable`,这些不需要附加即可工作

4497 4520 

4498<h3 id="write-or-command-blocked-because-the-path-cannot-be-safely-resolved">4521<h3 id="write-or-command-blocked-because-the-path-cannot-be-safely-resolved">


4509 4532 

4510**要做什么:**4533**要做什么:**

4511 4534 

4512* 通常什么都不做:完整消息作为工具错误发送给 Claude,Claude 使用它命名的直接路径重试。对于被阻止的文件编辑,对话视图仅显示简短的 `Error editing file` 行;完整消息出现在您使用 `Ctrl+O` 打开的记录视图中。被阻止的命令在其命令输出中打印它。4535* 通常什么都不做:完整消息作为工具错误发送给 Claude,Claude 使用它命名的直接路径重试。对于被阻止的文件编辑,对话视图仅显示简短的 `Error editing file` 行;完整消息出现在您使用 `Ctrl+O` 打开的会话记录视图中。被阻止的命令在其命令输出中打印它。

4513* 如果同一文件上的块重复,路径可能通过包含 `..` 的已提交符号链接运行,例如 `docs/current -> ../README.md`;要求 Claude 通过其真实路径而不是通过链接编辑目标文件4536* 如果同一文件上的阻止重复出现,路径可能通过包含 `..` 的已提交符号链接运行,例如 `docs/current -> ../README.md`;要求 Claude 通过其真实路径而不是通过链接编辑目标文件

4514 4537 

4515<h3 id="write-or-command-blocked-because-the-path-names-a-network-location">4538<h3 id="write-or-command-blocked-because-the-path-names-a-network-location">

4516 写入或命令被阻止,因为路径命名网络位置4539 写入或命令被阻止,因为路径命名网络位置


4550* 要有意对主检出采取行动,在会话外的终端中自己运行该命令4573* 要有意对主检出采取行动,在会话外的终端中自己运行该命令

4551 4574 

4552<h3 id="this-session-has-no-saved-transcript">4575<h3 id="this-session-has-no-saved-transcript">

4553 此会话没有保存的记录4576 此会话没有保存的会话记录

4554</h3>4577</h3>

4555 4578 

4556您附加到一个停止的[后台会话](/docs/zh-CN/agent-view),该会话从另一个对话中用 `←` 或 `/background` 后台化,并在其第一个响应完成之前停止。在该第一个响应完成之前,对话仍然仅存在于后台化它的会话中,因此 `claude attach` 拒绝启动停止的会话,而不是在相同的会话 ID 下开始空白对话。消息以此会话的 `claude respawn` 命令结尾:4579您附加到一个停止的[后台会话](/docs/zh-CN/agent-view),该会话从另一个对话中用 `←` 或 `/background` 后台化,并在其第一个回复完成之前停止。在该第一个回复完成之前,对话仍然仅存在于后台化它的会话中,因此 `claude attach` 拒绝启动停止的会话,而不是在相同的会话 ID 下开始空白对话。消息以此会话的 `claude respawn` 命令结尾:

4557 4580 

4558```text theme={null}4581```text theme={null}

4559This session has no saved transcript — it was stopped before its first response finished. If it was backgrounded from another conversation, that one is still intact; `claude respawn <id>` starts this one fresh.4582This session has no saved transcript — it was stopped before its first response finished. If it was backgrounded from another conversation, that one is still intact; `claude respawn <id>` starts this one fresh.

4560```4583```

4561 4584 

4562在[代理视图](/docs/zh-CN/agent-view)中打开相同会话的行显示 `Press enter again to restart this session fresh` 在列表下方,在该行上第二次 `Enter` 使用空对话重启会话。在 v2.1.212 之前,打开该行显示拒绝消息,无法从代理视图重启。在 v2.1.211 之前,打开停止的会话无声地启动了该空白对话,并可能重新运行会话的原始提示。4585在 [Agent 视图](/docs/zh-CN/agent-view)中打开相同会话的行会在列表下方显示 `Press enter again to restart this session fresh`,在该行上第二次按 `Enter` 会使用空对话重启会话。在 v2.1.212 之前,打开该行显示拒绝消息,无法从 Agent 视图重启。在 v2.1.211 之前,打开停止的会话会无声地启动该空白对话,并可能重新运行会话的原始提示词。

4563 4586 

4564**要做什么:**4587**要做什么:**

4565 4588 

4566* 您后台化的对话是完整的:使用 [`claude --resume`](/docs/zh-CN/sessions) 恢复它或继续在其中工作4589* 您后台化的对话是完整的:使用 [`claude --resume`](/docs/zh-CN/sessions) 恢复它或继续在其中工作

4567* 要无论如何启动停止的会话,请使用消息中的 ID 运行 `claude respawn <id>`,或在代理视图中的其行上按 `Enter` 两次4590* 要无论如何启动停止的会话,请使用消息中的 ID 运行 `claude respawn <id>`,或在 Agent 视图中的其行上按 `Enter` 两次

4568* 如果会话确实完成了响应,您仍然在 v2.1.214 之前的版本上看到此拒绝,`~/.claude/projects` 中的不可读文件夹可能会使记录扫描错过保存的对话;更新到 v2.1.214 或更高版本,它在扫描期间容忍不可读的文件夹4591* 如果会话确实完成了回复,您仍然在 v2.1.214 之前的版本上看到此拒绝,`~/.claude/projects` 中的不可读文件夹可能会使会话记录扫描错过保存的对话;更新到 v2.1.214 或更高版本,它在扫描期间容忍不可读的文件夹

4569 4592 

4570<h3 id="this-session-is-running-in-another-terminal">4593<h3 id="this-session-is-running-in-another-terminal">

4571 此会话在另一个终端中运行4594 此会话在另一个终端中运行

4572</h3>4595</h3>

4573 4596 

4574您在[代理视图](/docs/zh-CN/agent-view)中打开了停止的会话的行,其保存的对话已在此机器上的另一个实时 Claude Code 进程中打开,因此 Claude Code 拒绝启动将写入相同记录的第二个进程。您看到的消息取决于[什么持有对话](/docs/zh-CN/agent-view#opening-a-session-says-the-conversation-is-already-open):4597您在 [Agent 视图](/docs/zh-CN/agent-view)中打开了停止的会话的行,其保存的对话已在此机器上的另一个实时 Claude Code 进程中打开,因此 Claude Code 拒绝启动将写入相同会话记录的第二个进程。您看到的消息取决于[什么持有对话](/docs/zh-CN/agent-view#opening-a-session-says-the-conversation-is-already-open):

4575 4598 

4576```text theme={null}4599```text theme={null}

4577Can't open — this session is running in another terminal4600Can't open — this session is running in another terminal


4581* **`running in another terminal`**:终端持有对话,例如您使用 `claude --resume` 或 `/resume` 恢复它的终端。该行也显示 `Open in a terminal`。4604* **`running in another terminal`**:终端持有对话,例如您使用 `claude --resume` 或 `/resume` 恢复它的终端。该行也显示 `Open in a terminal`。

4582* **`already open in another running Claude session`**:另一个非交互式 Claude Code 进程持有它,例如相同对话的[后台会话](/docs/zh-CN/agent-view#the-supervisor-process)进程尚未退出。4605* **`already open in another running Claude session`**:另一个非交互式 Claude Code 进程持有它,例如相同对话的[后台会话](/docs/zh-CN/agent-view#the-supervisor-process)进程尚未退出。

4583 4606 

4584Claude Code 保存您在打开行时键入的回复,并在会话下次启动时将其作为会话的下一个提示发送。4607Claude Code 保存您在打开行时键入的回复,并在会话下次启动时将其作为会话的下一个提示词发送。

4585 4608 

4586**要做什么:**4609**要做什么:**

4587 4610 


4593 此会话的保存对话不再在磁盘上4616 此会话的保存对话不再在磁盘上

4594</h3>4617</h3>

4595 4618 

4596您打开了一个[后台会话](/docs/zh-CN/agent-view),该会话在后台服务关闭时结束,[记录清理](/docs/zh-CN/settings-reference#cleanupperioddays)随后删除了其保存的对话,例如在机器关闭数周后。通常打开这样的行会[恢复其保存的对话](/docs/zh-CN/agent-view#sessions-show-as-failed-after-shutdown)。没有什么可恢复的,Claude Code 拒绝而不是在不询问的情况下重新运行会话的原始提示:4619您打开了一个[后台会话](/docs/zh-CN/agent-view),该会话在后台服务关闭时结束,[会话记录清理](/docs/zh-CN/settings-reference#cleanupperioddays)随后删除了其保存的对话,例如在机器关闭数周后。通常打开这样的行会[恢复其保存的对话](/docs/zh-CN/agent-view#sessions-show-as-failed-after-shutdown)。没有什么可恢复的,Claude Code 拒绝而不是在不询问的情况下重新运行会话的原始提示词:

4597 4620 

4598```text theme={null}4621```text theme={null}

4599This session's saved conversation is no longer on disk (it ended while the background service was off, and old transcripts are cleaned up), so there is nothing to resume. `claude rm 7c5dcf5d` deletes the row; `claude respawn 7c5dcf5d` runs its original prompt again instead.4622This session's saved conversation is no longer on disk (it ended while the background service was off, and old transcripts are cleaned up), so there is nothing to resume. `claude rm 7c5dcf5d` deletes the row; `claude respawn 7c5dcf5d` runs its original prompt again instead.

4600```4623```

4601 4624 

4602`claude attach <id>` 打印此文本。在代理视图中,页脚更短,以 `ctrl+x deletes the row` 结尾。4625`claude attach <id>` 打印此文本。在 Agent 视图中,页脚更短,以 `ctrl+x deletes the row` 结尾。

4603 4626 

4604**要做什么:**4627**要做什么:**

4605 4628 

4606* 运行 `claude rm <id>` 删除该行。当[保留的情况](/docs/zh-CN/agent-view#what-deleting-a-session-removes)之一适用时,`claude rm` 保留该行和 worktree,并命名原因4629* 运行 `claude rm <id>` 删除该行。当[保留的情况](/docs/zh-CN/agent-view#what-deleting-a-session-removes)之一适用时,`claude rm` 保留该行和 worktree,并命名原因

4607* 要再次运行会话的原始提示作为新对话,请运行 `claude respawn <id>`4630* 要再次运行会话的原始提示词作为新对话,请运行 `claude respawn <id>`

4608 4631 

4609在 v2.1.248 之前,打开这样的行会重新运行会话的原始提示,而不是拒绝,将数周前的任务拉回前景。4632在 v2.1.248 之前,打开这样的行会重新运行会话的原始提示词,而不是拒绝,将数周前的任务拉回前台。

4610 4633 

4611<h3 id="worktree-has-commits-that-are-not-pushed-anywhere">4634<h3 id="worktree-has-commits-that-are-not-pushed-anywhere">

4612 Worktree 有未推送到任何地方的提交4635 Worktree 有未推送到任何地方的提交

4613</h3>4636</h3>

4614 4637 

4615您尝试删除一个[后台会话](/docs/zh-CN/agent-view#what-deleting-a-session-removes),其 worktree 持有 Claude Code 无法确认保存在其他地方的提交。Claude Code 保留 worktree 和会话行,而不是销毁提交。`claude rm` 命名分支和未推送的提交,并说明如何继续:4638您尝试删除一个[后台会话](/docs/zh-CN/agent-view#what-deleting-a-session-removes),其 worktree 持有 Claude Code 无法确认保存在其他地方的提交。Claude Code 保留 worktree 和会话行,而不是在未查看的情况下销毁提交。`claude rm` 命名分支和未推送的提交,并说明如何继续:

4616 4639 

4617```text theme={null}4640```text theme={null}

4618kept 7c5dcf5d — its worktree is still at "/home/you/project/.claude/worktrees/fix-login"4641kept 7c5dcf5d — its worktree is still at “/home/you/project/.claude/worktrees/fix-login”

4619 2 unpushed commits on "claude/fix-login": a1b2c3d "Fix login flow" and 1 more. They exist on no remote, so deleting the worktree would lose them.4642 2 unpushed commits on “claude/fix-login”: a1b2c3d “Fix login flow” and 1 more. They exist on no remote, so deleting the worktree would lose them.

4620 push them and run 'claude rm 7c5dcf5d' again, or discard the worktree and its commits: claude rm 7c5dcf5d --discard-unpushed a1b2c3d000000000000000000000000000000000@0123456789abcdef0123456789abcdef4643 push them and run 'claude rm 7c5dcf5d' again, or discard the worktree and its commits: claude rm 7c5dcf5d --discard-unpushed a1b2c3d000000000000000000000000000000000@0123456789abcdef0123456789abcdef

4621```4644```

4622 4645 

4623当 Claude Code 无法总结提交时,详细行读取 `The worktree has unpushed commits`。在[代理视图](/docs/zh-CN/agent-view)中,会话的行显示 `not deleted` 和相同的原因。4646当 Claude Code 无法总结提交时,详细行读取 `The worktree has unpushed commits`。在 [Agent 视图](/docs/zh-CN/agent-view)中,会话的行显示 `not deleted` 和相同的原因。

4624 4647 

4625远程上的提交不会阻止删除。本地副本中您的 `origin` 远程的默认分支上的提交也不会,只要该分支在您的主检出中检出,即存储库目录本身而不是 worktree。4648远程上的提交不会阻止删除。本地副本中您的 `origin` 远程的默认分支上的提交也不会,只要该分支在您的主检出中检出,即仓库目录本身而不是 worktree。

4626 4649 

4627**要做什么:**4650**要做什么:**

4628 4651 

4629* 要保留提交,推送 worktree 的分支,或将其合并到在主检出中检出的默认分支,然后再次删除会话4652* 要保留提交,推送 worktree 的分支,或将其合并到在主检出中检出的默认分支,然后再次删除会话

4630* 要丢弃提交,运行消息打印的 `claude rm <id> --discard-unpushed` 命令,或在代理视图中的会话行上再次按 `Ctrl+X`。这会删除会话和 worktree 以及其分支、未推送的提交和任何未提交的更改。如果 worktree 自拒绝以来获得了提交,Claude Code 再次保留它并显示更新的状态4653* 要丢弃提交,运行消息打印的 `claude rm <id> --discard-unpushed` 命令,或在 Agent 视图中的会话行上再次按 `Ctrl+X` 两次。这会删除会话和 worktree 以及其分支、未推送的提交和任何未提交的更改。如果 worktree 自拒绝以来获得了提交,Claude Code 再次保留它并显示更新的状态

4631* 当消息说 worktree 也由另一个完成的会话记录时,再次删除不会丢弃它:推送提交,然后再次删除会话4654* 当消息说 worktree 也由另一个完成的会话记录时,再次删除不会丢弃它:推送提交,然后再次删除会话

4632 4655 

4633在 v2.1.268 之前,`claude rm` 将提交摘要放在 `kept` 行本身上。当 `claude rm` 无法总结提交时,`kept` 行读取 `worktree has commits that are not pushed anywhere` 代替摘要。4656在 v2.1.268 之前,`claude rm` 将提交摘要放在 `kept` 行本身上。当 `claude rm` 无法总结提交时,`kept` 行读取 `worktree has commits that are not pushed anywhere` 代替摘要。


4642 4665 

4643每个[后台会话的](/docs/zh-CN/agent-view)终端在后台服务下的主机进程中运行,该进程在服务仍然持有其连接时死亡,因此无法到达会话。4666每个[后台会话的](/docs/zh-CN/agent-view)终端在后台服务下的主机进程中运行,该进程在服务仍然持有其连接时死亡,因此无法到达会话。

4644 4667 

4645在 Linux 和 WSL 上,后台服务每隔几秒检查每个主机进程,当进程已退出但其与服务的连接从未关闭时标记会话失败,并在[代理视图](/docs/zh-CN/agent-view#read-session-state)中的其行上显示原因:4668在 Linux 和 WSL 上,后台服务每隔几秒检查每个主机进程,当进程已退出但其与服务的连接从未关闭时标记会话失败,并在 [Agent 视图](/docs/zh-CN/agent-view#read-session-state)中的其行上显示原因:

4646 4669 

4647```text theme={null}4670```text theme={null}

4648terminal host process died — press Enter to restart4671terminal host process died — press Enter to restart


4656 4679 

4657对话无论如何都被保存。4680对话无论如何都被保存。

4658 4681 

4659运行[shell 命令](/docs/zh-CN/agent-view#run-a-shell-command)的行显示 `terminal host process died — its output is gone; the command was not run again`,`claude attach` 打印 `This command's terminal host process died — its output is gone and the command was not run again`。Claude Code 从不为您重新运行该命令。4682运行 [shell 命令](/docs/zh-CN/agent-view#run-a-shell-command)的行显示 `terminal host process died — its output is gone; the command was not run again`,`claude attach` 打印 `This command's terminal host process died — its output is gone and the command was not run again`。Claude Code 从不为您重新运行该命令。

4660 4683 

4661**要做什么:**4684**要做什么:**

4662 4685 

4663* 在代理视图中,在失败的行上按 `Enter`;会话在新的主机进程上重启,对话恢复4686* 在 Agent 视图中,在失败的行上按 `Enter`;会话在新的主机进程上重启,对话恢复

4664* 从 shell,再次运行 `claude attach <id>`。Claude Code 打印 `Session <id>'s terminal host died — restarting it on a fresh one…` 并重新打开会话4687* 从 shell,再次运行 `claude attach <id>`。Claude Code 打印 `Session <id>'s terminal host died — restarting it on a fresh one…` 并重新打开会话

4665* 您无法以这种方式重启 shell 命令行;再次分派命令以重新运行它4688* 您无法以这种方式重启 shell 命令行;再次分派命令以重新运行它

4666 4689 


4672 4695 

4673您打开了一个[后台会话](/docs/zh-CN/agent-view),后台服务接受了打开,但大约十秒钟内没有输出到达,因此 Claude Code 得出结论,中继会话终端的进程无法传递输出,并结束尝试而不是等待。4696您打开了一个[后台会话](/docs/zh-CN/agent-view),后台服务接受了打开,但大约十秒钟内没有输出到达,因此 Claude Code 得出结论,中继会话终端的进程无法传递输出,并结束尝试而不是等待。

4674 4697 

4675在代理视图中,Claude Code 在页脚中提供重启:4698在 Agent 视图中,Claude Code 在页脚中提供重启:

4676 4699 

4677```text theme={null}4700```text theme={null}

4678Press enter again to restart this session — it isn't responding (its conversation is saved and resumes).4701Press enter again to restart this session — it isn't responding (its conversation is saved and resumes).


4684Couldn't attach to <id> — Session isn't responding — `claude stop <id>`, then `claude attach <id>` restarts it (the conversation is saved).4707Couldn't attach to <id> — Session isn't responding — `claude stop <id>`, then `claude attach <id>` restarts it (the conversation is saved).

4685```4708```

4686 4709 

4687Claude Code 从不为您重启运行[shell 命令](/docs/zh-CN/agent-view#run-a-shell-command)的行,因为重启会再次运行该命令。4710Claude Code 从不为您重启运行 [shell 命令](/docs/zh-CN/agent-view#run-a-shell-command)的行,因为重启会再次运行该命令。

4688 4711 

4689**要做什么:**4712**要做什么:**

4690 4713 

4691* 在代理视图中,在同一行上再次按 `Enter`。Claude Code 停止无响应的进程并重启会话,对话恢复。没有第二次按下就不会停止任何东西4714* 在 Agent 视图中,在同一行上再次按 `Enter`。Claude Code 停止无响应的进程并重启会话,对话恢复。没有第二次按下就不会停止任何东西

4692* 从 shell,运行 `claude stop <id>`,然后 `claude attach <id>`4715* 从 shell,运行 `claude stop <id>`,然后 `claude attach <id>`

4693* 对于 shell 命令行,在代理视图中按 `Ctrl+X` 或运行 `claude stop <id>` 停止它;再次分派命令以重新运行它4716* 对于 shell 命令行,在 Agent 视图中按 `Ctrl+X` 或运行 `claude stop <id>` 停止它;再次分派命令以重新运行它

4694 4717 

4695<h3 id="session-was-stopped-while-the-respawn-was-in-flight">4718<h3 id="session-was-stopped-while-the-respawn-was-in-flight">

4696 会话在 respawn 进行中时被停止4719 会话在 respawn 进行中时被停止


4702Session <id> was stopped while the respawn was in flight4725Session <id> was stopped while the respawn was in flight

4703```4726```

4704 4727 

4705打开您刚刚分派的会话,当其进程仍在启动时,等待进程。在 v2.1.246 之前,在那一刻打开它可能会停止它并显示此消息。4728打开您刚刚分派的会话,当其进程仍在启动时,会改为等待进程。在 v2.1.246 之前,在那一刻打开它可能会停止它并显示此消息。

4706 4729 

4707**要做什么:**4730**要做什么:**

4708 4731 

4709* 如果您没有停止会话,在代理视图中再次打开其行或运行 `claude respawn <id>` 重启它4732* 如果您没有停止会话,在 Agent 视图中再次打开其行或运行 `claude respawn <id>` 重启它

4710* 如果您自己停止了它,没有什么剩下要做的:会话保持停止4733* 如果您自己停止了它,没有什么剩下要做的:会话保持停止

4711 4734 

4712<h3 id="session-agent-no-longer-available">4735<h3 id="session-agent-no-longer-available">

4713 会话代理不再可用4736 会话 Agent 不再可用

4714</h3>4737</h3>

4715 4738 

4716您恢复了一个正在运行[自定义代理](/docs/zh-CN/sub-agents#invoke-subagents-explicitly)的会话,使用 `--agent` 或 `agent` 设置启动,Claude Code 没有找到具有该名称的代理。它首先搜索会话的原始目录,当您[信任该工作区](/docs/zh-CN/permissions#project-allow-rules-and-workspace-trust)时,然后搜索您恢复的目录。会话仍然恢复,但使用默认工具,因此代理的工具限制不再适用:4739您恢复了一个正在运行[自定义 Agent](/docs/zh-CN/sub-agents#invoke-subagents-explicitly) 的会话,该会话使用 `--agent` 或 `agent` 设置启动,Claude Code 没有找到具有该名称的 Agent。它首先搜索会话的原始目录(当您已[信任该工作区](/docs/zh-CN/permissions#project-allow-rules-and-workspace-trust)时),然后搜索您恢复的目录。会话仍然恢复,但使用默认工具,因此 Agent 的工具限制不再适用:

4717 4740 

4718```text theme={null}4741```text theme={null}

4719This session was running agent 'code-reviewer', which is no longer available (no agent by that name in /home/you/project). Continuing with the default tools and system prompt — the agent's tool restrictions no longer apply. To restore it, re-create the agent, or resume with an explicit --agent <name>.4742This session was running agent 'code-reviewer', which is no longer available (no agent by that name in /home/you/project). Continuing with the default tools and system prompt — the agent's tool restrictions no longer apply. To restore it, re-create the agent, or resume with an explicit --agent <name>.

4720```4743```

4721 4744 

4722警告仅命名 Claude Code 搜索的目录,它出现在恢复的对话中,无论您唤醒[后台会话](/docs/zh-CN/agent-view)、运行 `/resume` 或 `claude --resume`,还是在[非交互式模式](/docs/zh-CN/headless)中恢复,它也发送到 stderr。使用 `--input-format stream-json` 的会话不显示它,因为 Agent SDK 在启动后提供代理。4745警告仅命名 Claude Code 搜索的目录,它出现在恢复的对话中,无论您唤醒[后台会话](/docs/zh-CN/agent-view)、运行 `/resume` 或 `claude --resume`,还是在[非交互模式](/docs/zh-CN/headless)中恢复,在非交互模式中它也会发送到 stderr。使用 `--input-format stream-json` 的会话不显示它,因为 Agent SDK 在启动后提供 Agent。

4723 4746 

4724Claude Code 不保存回退到会话,因此警告在每次恢复时重复,直到您采取行动。内置 `claude` 代理不触发警告,因为回退到默认工具集对它没有改变。在 v2.1.216 之前,Claude Code 无声地继续作为默认代理,查找仅覆盖您恢复的目录,因此项目范围的代理在从另一个目录恢复时丢失。4747Claude Code 不会将回退保存到会话,因此警告在每次恢复时重复,直到您采取行动。内置 `claude` Agent 不触发警告,因为回退到默认工具集对它没有改变。在 v2.1.216 之前,Claude Code 无声地继续作为默认 Agent,查找仅覆盖您恢复的目录,因此项目范围的 Agent 在从另一个目录恢复时丢失。

4725 4748 

4726**要做什么:**4749**要做什么:**

4727 4750 

4728* 在会话的项目中的 `.claude/agents/<name>.md` 或个人代理的 `~/.claude/agents/<name>.md` 重新创建代理文件,然后再次恢复4751* 在会话的项目中的 `.claude/agents/<name>.md` 或个人 Agent 的 `~/.claude/agents/<name>.md` 重新创建 Agent 文件,然后再次恢复

4729* 或使用 `--agent <name>` 恢复,命名确实存在的代理,以改为作为该代理运行会话4752* 或使用 `--agent <name>` 恢复,命名确实存在的 Agent,以改为作为该 Agent 运行会话

4730* 如果代理是项目范围的,您还没有信任会话的原始目录,在那里运行一次 Claude Code,接受信任对话,然后再次恢复4753* 如果 Agent 是项目范围的,您还没有信任会话的原始目录,在那里运行一次 Claude Code,接受信任对话框,然后再次恢复

4731 4754 

4732<h3 id="claude_code_process_wrapper-launcher-errors">4755<h3 id="claude_code_process_wrapper-launcher-errors">

4733 CLAUDE\_CODE\_PROCESS\_WRAPPER 启动器错误4756 CLAUDE\_CODE\_PROCESS\_WRAPPER 启动器错误


4739CLAUDE_CODE_PROCESS_WRAPPER: launcher `/opt/corp/launcher` is not an executable regular file4762CLAUDE_CODE_PROCESS_WRAPPER: launcher `/opt/corp/launcher` is not an executable regular file

4740```4763```

4741 4764 

4742启动但在用 Claude Code 替换自己之前退出的启动器会使其启动的会话失败,会话在代理视图中的行报告启动器 `must exec, not daemonize`,后跟启动器打印的任何内容。无法启动或到达后台服务的会话因启动器报告启动器问题作为 `Couldn't reach the background service (...)` 内的原因。4765启动但在用 Claude Code 替换自己之前退出的启动器会使其启动的会话失败,会话在 Agent 视图中的行报告启动器 `must exec, not daemonize`,后跟启动器打印的任何内容。因启动器而无法启动或到达后台服务的会话会将启动器问题作为 `Couldn't reach the background service (...)` 内的原因报告。

4743 4766 

4744**要做什么:**4767**要做什么:**

4745 4768 

4746* 将变量设置为以调用 `exec "$@"` 结尾的可执行文件的绝对路径。有关完整合同,请参阅[启动器合同](/docs/zh-CN/corporate-launcher#the-launcher-contract)4769* 将变量设置为以调用 `exec "$@"` 结尾的可执行文件的绝对路径。有关完整合同,请参阅[启动器合同](/docs/zh-CN/corporate-launcher#the-launcher-contract)

4747* 检查 `/status`,它在其 Self-exec 条目中显示解析的启动命令,并在运行的后台服务不匹配时警告,或从 shell 运行 `claude daemon status`4770* 检查 `/status`,它在其 Self-exec 条目中显示解析的启动命令,并在运行的后台服务不匹配时警告,或从 shell 运行 `claude daemon status`

4748* 在[设置](/docs/zh-CN/corporate-launcher#set-up-the-launcher)的 `env` 块中修复值后,使用 `claude daemon stop --any` 重启后台服务,以便下一次分派启动一个包装的4771* 在[设置](/docs/zh-CN/corporate-launcher#set-up-the-launcher)的 `env` 块中修复值后,使用 `claude daemon stop --any` 重启后台服务,以便下一次分派启动一个包装的后台服务

4749 4772 

4750<h3 id="eunknown-when-starting-a-background-session">4773<h3 id="eunknown-when-starting-a-background-session">

4751 启动后台会话时 EUNKNOWN4774 启动后台会话时 EUNKNOWN


4767 4790 

4768**要做什么:**4791**要做什么:**

4769 4792 

4770* 如果消息读取 `Couldn't start the session`,升级到 v2.1.212 或更高版本。在早期版本上,您也可以在单独的终端中首先运行 `claude daemon run`,然后再次启动后台会话。该命令在终端的前景中运行后台服务,因此服务仅在该终端保持打开时持续。4793* 如果消息读取 `Couldn't start the session`,升级到 v2.1.212 或更高版本。在早期版本上,您也可以在单独的终端中首先运行 `claude daemon run`,然后再次启动后台会话。该命令在终端的前台运行后台服务,因此服务仅在该终端保持打开时持续。

4771* 如果 npm 安装正在替换二进制文件,等待它完成,然后再次启动后台会话4794* 如果 npm 安装正在替换二进制文件,等待它完成,然后再次启动后台会话

4772* 如果错误在 v2.1.212 或更高版本上出现,而没有 npm 安装运行,请要求您的 Windows 管理员在限制策略中允许 Claude Code 可执行文件4795* 如果错误在 v2.1.212 或更高版本上出现,而没有 npm 安装运行,请向您的 Windows 管理员确认是否有限制策略阻止了 Claude Code 可执行文件

4773* 如果关闭终端时后台服务停止,Claude Code 在没有 PowerShell 的情况下启动了它。安装 PowerShell 7,或要求您的管理员解除对 PowerShell 的阻止,以便服务可以超越终端。4796* 如果关闭终端时后台服务停止,Claude Code 在没有 PowerShell 的情况下启动了它。安装 PowerShell 7,或要求您的管理员解除对 PowerShell 的阻止,以便服务可以超越终端。

4774 4797 

4775<h3 id="eacces-when-starting-a-background-session">4798<h3 id="eacces-when-starting-a-background-session">

4776 启动后台会话时 EACCES4799 启动后台会话时 EACCES

4777</h3>4800</h3>

4778 4801 

4779Claude Code 无法运行其自己的二进制文件来启动[后台服务](/docs/zh-CN/agent-view#the-supervisor-process),该服务托管后台会话。在 npm 安装上,这通常意味着 `npm install -g @anthropic-ai/claude-code` 在那一刻替换二进制文件,无论您运行它还是[自动更新程序](/docs/zh-CN/setup#auto-updates)运行。当您从[代理视图](/docs/zh-CN/agent-view)打开会话时,错误出现:4802Claude Code 无法运行其自己的二进制文件来启动[后台服务](/docs/zh-CN/agent-view#the-supervisor-process),该服务托管后台会话。在 npm 安装上,这通常意味着 `npm install -g @anthropic-ai/claude-code` 在那一刻替换二进制文件,无论您运行它还是[自动更新程序](/docs/zh-CN/setup#auto-updates)运行。当您从 [Agent 视图](/docs/zh-CN/agent-view)打开会话时,错误出现:

4780 4803 

4781```text theme={null}4804```text theme={null}

4782Couldn't start the background service — spawn background service: EACCES: permission denied, posix_spawn '/usr/local/lib/node_modules/@anthropic-ai/claude-code/bin/claude'4805Couldn't start the background service — spawn background service: EACCES: permission denied, posix_spawn '/usr/local/lib/node_modules/@anthropic-ai/claude-code/bin/claude'


4795**要做什么:**4818**要做什么:**

4796 4819 

4797* 等待几秒钟,然后打开会话或再次分派。当消息说 Claude Code 正在更新时,在更新完成后重试。4820* 等待几秒钟,然后打开会话或再次分派。当消息说 Claude Code 正在更新时,在更新完成后重试。

4798* 如果错误在没有 npm 安装运行时持续,您的用户无法运行已安装的二进制文件。检查其权限及其目录的,或重新安装 Claude Code。4821* 如果错误在没有 npm 安装运行时持续,您的用户无法运行已安装的二进制文件。检查其权限及其目录的权限,或重新安装 Claude Code。

4799 4822 

4800<h3 id="background-service-exited-before-it-became-reachable">4823<h3 id="background-service-exited-before-it-became-reachable">

4801 后台服务在变得可达之前退出4824 后台服务在变得可达之前退出

4802</h3>4825</h3>

4803 4826 

4804Claude Code 启动的进程作为[后台服务](/docs/zh-CN/agent-view#the-supervisor-process)在变得可达之前退出,因此 Claude Code 无法打开您的会话。当服务在退出前打印错误时,括号中的原因给出退出代码或信号以及服务打印的第一行,它命名停止它的内容:4827Claude Code 作为[后台服务](/docs/zh-CN/agent-view#the-supervisor-process)启动的进程在接受连接之前退出,因此 Claude Code 无法打开您的会话。当服务在退出前打印错误时,括号中的原因给出退出码或信号以及服务打印的第一行,它命名停止它的内容:

4805 4828 

4806```text theme={null}4829```text theme={null}

4807Couldn't reach the background service (background service exited before it became reachable (exit code N): <the service's first error line>) — run 'claude daemon status'4830Couldn't reach the background service (background service exited before it became reachable (exit code N): <the service's first error line>) — run 'claude daemon status'

4808```4831```

4809 4832 

4810当您从[代理视图](/docs/zh-CN/agent-view)打开会话时,相同的原因跟随 `Couldn't start the background service —`。当服务在退出前没有打印任何内容时,消息说 `nothing on stderr`。4833当您从 [Agent 视图](/docs/zh-CN/agent-view)打开会话时,相同的原因跟随 `Couldn't start the background service —`。当服务在退出前没有打印任何内容时,消息说 `nothing on stderr`。

4811 4834 

4812Claude Code 使用服务的错误行报告失败。在 v2.1.246 之前,失败仅在 45 秒等待后显示,作为 `background service did not become reachable within 45s`,没有服务的错误行。4835Claude Code 使用服务的错误行报告失败。在 v2.1.246 之前,失败仅在 45 秒等待后显示,作为 `background service did not become reachable within 45s`,没有服务的错误行。

4813 4836 

4814两个引用的原因有已知的原因:4837两个引用的原因有已知的成因:

4815 4838 

4816* `Error: claude native binary not installed.`:npm 安装在那一刻替换 Claude Code 二进制文件,因此服务运行了 npm 的占位符。在安装完成后重试;如果没有安装运行的行持续,[完成 npm 安装](/docs/zh-CN/troubleshoot-install#native-binary-not-found-after-npm-install)。在 v2.1.257 之前,macOS npm 自更新在安装窗口期间的每次启动时产生此失败。4839* `Error: claude native binary not installed.`:npm 安装在那一刻替换 Claude Code 二进制文件,因此服务运行了 npm 的占位符。在安装完成后重试;如果在没有安装运行时该行持续出现,[完成 npm 安装](/docs/zh-CN/troubleshoot-install#native-binary-not-found-after-npm-install)。在 v2.1.257 之前,macOS npm 自更新在安装窗口期间的每次启动时产生此失败。

4817* 在 Windows 上,`nothing on stderr` 和退出代码 1,每次启动:`daemon.lock` 命名一个 Claude Code 既无法发信号也无法证明已消失的进程,因此每个新服务得出结论另一个持有锁并退出。Claude Code 可以证明其编写者已消失的锁会自动替换,不会产生此失败。当失败在每次启动时重复时,删除 `~/.claude/daemon.lock`,然后打开会话或再次分派。在 v2.1.257 之前,这样的锁阻止了每次启动,直到您删除了文件。4840* 在 Windows 上,`nothing on stderr` 和退出码 1,每次启动:`daemon.lock` 命名一个 Claude Code 既无法发信号也无法证明已消失的进程,因此每个新服务得出结论另一个持有锁并退出。Claude Code 可以证明其编写者已消失的锁会自动替换,不会产生此失败。当失败在每次启动时重复时,删除 `~/.claude/daemon.lock`,然后打开会话或再次分派。在 v2.1.257 之前,这样的锁阻止了每次启动,直到您删除了文件。

4818 4841 

4819**要做什么:**4842**要做什么:**

4820 4843 


4825 启动后台会话时工作目录不再存在4848 启动后台会话时工作目录不再存在

4826</h3>4849</h3>

4827 4850 

4828您尝试在不再存在的目录中启动[后台会话](/docs/zh-CN/agent-view)。Claude Code 不启动会话,消息命名缺失的目录:4851您启动[后台会话](/docs/zh-CN/agent-view)所在的目录在会话启动期间被删除。Claude Code 不启动会话,消息命名缺失的目录:

4829 4852 

4830```text theme={null}4853```text theme={null}

4831Couldn't start a background session (working directory no longer exists or is not accessible: /tmp/demo)4854Couldn't start a background session (working directory no longer exists or is not accessible: /tmp/demo)

4832```4855```

4833 4856 

4834在 v2.1.257 之前,会话似乎启动,然后在代理视图中显示为具有相同原因的失败行。4857在 v2.1.257 之前,会话似乎启动,然后在 Agent 视图中显示为具有相同原因的失败行。

4835 4858 

4836在 v2.1.281 之前,当您启动会话之前目录已经消失时,此消息也出现。该情况报告[`could not be resolved on disk`](#workspace-not-trusted-when-dispatching-a-background-session)。4859在 v2.1.281 之前,当您启动会话之前目录已经消失时,此消息也出现。该情况报告 [`could not be resolved on disk`](#workspace-not-trusted-when-dispatching-a-background-session)。

4837 4860 

4838**要做什么:**4861**要做什么:**

4839 4862 


4843 分派后台会话时工作区不受信任4866 分派后台会话时工作区不受信任

4844</h3>4867</h3>

4845 4868 

4846您在未[信任](/docs/zh-CN/permissions#project-allow-rules-and-workspace-trust)的目录中启动或重启[后台会话](/docs/zh-CN/agent-view),工作区信任对话无法出现以询问您。Claude Code 不启动会话:4869您在未[信任](/docs/zh-CN/permissions#project-allow-rules-and-workspace-trust)的目录中启动或重启[后台会话](/docs/zh-CN/agent-view),工作区信任对话框无法出现以询问您。Claude Code 不启动会话:

4847 4870 

4848```text theme={null}4871```text theme={null}

4849Workspace not trusted. Run `claude` in /path/to/project once and accept the trust prompt, then retry.4872Workspace not trusted. Run `claude` in /path/to/project once and accept the trust prompt, then retry.

4850```4873```

4851 4874 

4852从会话自己的目录中的终端,相同的命令显示信任对话,并在您接受后启动会话。此消息出现在无法显示对话的地方,例如在脚本中,或当您从不同于其自己的目录重启会话时。4875从会话自己的目录中的终端,相同的命令会改为显示信任对话框,并在您接受后启动会话。此消息出现在无法显示对话框的地方,例如在脚本中,或当您从不同于其自己的目录重启会话时。

4853 4876 

4854两个变体命名不同的原因:4877两个变体命名不同的原因:

4855 4878 

4856* **`The home directory is trusted one session at a time`**:会话的目录是您的主目录。Claude Code 从不保存主目录的信任,因此在早期会话中接受那里的对话不计数。4879* **`The home directory is trusted one session at a time`**:会话的目录是您的主目录。Claude Code 从不保存主目录的信任,因此在早期会话中在那里接受对话框不计数。

4857* **`<path> could not be resolved on disk`**:Claude Code 无法在磁盘上找到会话的目录。4880* **`<path> could not be resolved on disk`**:Claude Code 无法在磁盘上找到会话的目录。

4858 4881 

4882在 v2.1.286 之前,在 Windows 上,如果某个您已信任的目录的信任记录是以不同字母大小写的路径保存的,此消息也可能在该目录中出现。请更新到 v2.1.286 或更高版本。

4883 

4859**要做什么:**4884**要做什么:**

4860 4885 

4861* 在消息命名的目录中运行 `claude` 并接受信任对话,然后再次运行该命令4886* 在消息命名的目录中运行 `claude` 并接受信任对话框,然后再次运行该命令

4862* 对于主目录消息,从您的主目录中的终端运行该命令,以便对话可以出现,或改为从项目目录启动会话4887* 对于主目录消息,从您的主目录中的终端运行该命令,以便对话框可以出现,或改为从项目目录启动会话

4863* 对于 `could not be resolved on disk` 消息,重新创建目录,或从存在的目录启动新会话4888* 对于 `could not be resolved on disk` 消息,重新创建目录,或从存在的目录启动新会话

4864 4889 

4865<h2 id="wrapper-and-ide-errors">4890<h2 id="wrapper-and-ide-errors">

hooks.md +4 −10

Details

731 `/hooks` 菜单731 `/hooks` 菜单

732</h3>732</h3>

733 733 

734在 Claude Code 中键入 `/hooks` 来打开已配置 hooks 的只读浏览器。菜单显示每个 hook 事件及其配置的 hooks 计数,让您深入了解匹配器,并显示每个 hook 处理程序的完整详细信息。使用它来验证配置、检查 hook 来自哪个设置文件,或检查 hook 的命令、提示或 URL。734在 Claude Code 中键入 `/hooks` 来打开已配置 hook 的只读浏览器。列表为每个 hook 标注其来源,如用户设置、项目设置、本地设置、插件或当前会话。

735 735 

736菜单显示所有五种 hook 类型:`command`、`prompt`、`agent`、`http` 和 `mcp_tool`。每个 hook 都标有 `[type]` 前缀和指示其定义位置的源:736选择一个 hook 可查看其运行内容的完整文本以及其定义位置,如其设置文件的路径或其插件的名称。

737 737 

738* `User Settings`:来自 `~/.claude/settings.json`738要浏览所有 hook 事件,包括未配置任何 hook 的事件,请选择列表末尾的 `All events`。

739* `Project Settings`:来自 `.claude/settings.json`

740* `Local Settings`:来自 `.claude/settings.local.json`

741* `Plugin Hooks`:来自插件的 `hooks/hooks.json`

742* `Session Hooks`:为当前会话在内存中注册

743 

744选择 hook 打开详细视图,显示其事件、匹配器、类型、源文件以及完整的命令、提示或 URL。菜单是只读的:要添加、修改或删除 hooks,直接编辑设置 JSON 或要求 Claude 进行更改。

745 739 

746<h3 id="disable-or-remove-hooks">740<h3 id="disable-or-remove-hooks">

747 禁用或删除 hooks741 禁用或删除 hooks

748</h3>742</h3>

749 743 

750要删除 hook,从设置 JSON 文件中删除其条目。744要删除在设置文件中定义的 hook,请从该文件中删除其条目。

751 745 

752要临时禁用所有 hooks 而不删除它们,在设置文件中设置 `"disableAllHooks": true`。Claude Code 读取 [设置优先级](/docs/zh-CN/settings#settings-precedence) 应用后留下的值,所以项目的 `.claude/settings.json` 中的 `"disableAllHooks": false` 覆盖用户设置中的 `true`。要无论项目的设置如何关闭一次运行的 hooks,传递 `--settings '{"disableAllHooks": true}'`,这优先于项目和本地设置。没有办法在保持 hook 在配置中的同时禁用单个 hook。746要临时禁用所有 hooks 而不删除它们,在设置文件中设置 `"disableAllHooks": true`。Claude Code 读取 [设置优先级](/docs/zh-CN/settings#settings-precedence) 应用后留下的值,所以项目的 `.claude/settings.json` 中的 `"disableAllHooks": false` 覆盖用户设置中的 `true`。要无论项目的设置如何关闭一次运行的 hooks,传递 `--settings '{"disableAllHooks": true}'`,这优先于项目和本地设置。没有办法在保持 hook 在配置中的同时禁用单个 hook。

753 747 

hooks-guide.md +14 −11

Details

65 }65 }

66 ```66 ```

67 67 

68 你也可以通过在 CLI 中描述你想要的内容来要求 Claude 为你编写 hook。68 您也可以通过在 CLI 中描述您想要的内容来要求 Claude 为您编写 hook。

69 </Step>69 </Step>

70 70 

71 <Step title="验证配置">71 <Step title="验证配置">

72 输入 `/hooks` 打开 hooks 浏览器。你将看到所有可用 hook 事件的列表,每个配置了 hooks 的事件旁边都有一个计数。选择 `Notification` 以确认你的新 hook 出现在列表中。选择 hook 会显示其详细信息:事件、匹配器、类型、源文件和命令。72 在 Claude Code 输入框中输入 `/hooks` 以打开 hook 浏览器。您的新 hook 会出现在 `Notification` 下的列表中。

73 </Step>73 </Step>

74 74 

75 <Step title="测试 hook">75 <Step title="测试 hook">

76 按 `Esc` 返回 CLI。按 `Shift+Tab` 直到状态栏显示 `⏸ manual mode on`,要求 Claude 做需要权限的事情,然后切换离开终端。你应该会收到桌面通知。76 按 `Esc` 返回 CLI。按 `Shift+Tab` 直到状态栏显示 `⏸ manual mode on`,要求 Claude 做需要权限的事情,然后切换离开终端。您应该会收到桌面通知。

77 </Step>77 </Step>

78</Steps>78</Steps>

79 79 

80<Tip>

81 `/hooks` 菜单是只读的。要添加、修改或删除 hooks,请直接编辑你的设置 JSON 或要求 Claude 进行更改。

82</Tip>

83 

84<h2 id="what-you-can-automate">80<h2 id="what-you-can-automate">

85 你可以自动化什么81 你可以自动化什么

86</h2>82</h2>


97 93 

98每当 Claude 完成工作并需要你的输入时获得桌面通知,这样你可以切换到其他任务而无需检查终端。94每当 Claude 完成工作并需要你的输入时获得桌面通知,这样你可以切换到其他任务而无需检查终端。

99 95 

100此 hook 使用 `Notification` 事件,当 Claude 等待输入或权限时触发。请参阅[每个通知类型何时触发](/docs/zh-CN/hooks#notification)以了解确切的时间。下面的每个选项卡使用平台的原生通知命令。将其添加到 `~/.claude/settings.json`:96此 hook 使用 `Notification` 事件,Claude Code 会在 Claude 等待输入或权限时触发该事件。请参阅[每个通知类型何时触发](/docs/zh-CN/hooks#notification)以了解确切的时间。

97 

98下面的每个选项卡使用平台的原生通知命令。将其添加到 `~/.claude/settings.json`:

101 99 

102<Tabs>100<Tabs>

103 <Tab title="macOS">101 <Tab title="macOS">


120 ```118 ```

121 119 

122 <Accordion title="如果没有通知出现">120 <Accordion title="如果没有通知出现">

123 `osascript` 通过内置的 Script Editor 应用程序路由通知。如果 Script Editor 没有通知权限,命令会静默失败,macOS 不会提示你授予它。在 Terminal 中运行一次以使 Script Editor 出现在你的通知设置中:121 `osascript` 通过内置的 Script Editor 应用程序路由通知。如果 Script Editor 没有通知权限,命令会静默失败,macOS 也不会提示您授予该权限。

122 

123 在 Terminal 中运行一次以下命令,使 Script Editor 出现在您的通知设置中:

124 124 

125 ```bash theme={null}125 ```bash theme={null}

126 osascript -e 'display notification "test"'126 osascript -e 'display notification "test"'


180 ```180 ```

181 181 

182 <Accordion title="如果没有对话框出现">182 <Accordion title="如果没有对话框出现">

183 此命令打开一个对话框而不是屏幕角落的通知,因此对话框可能会在你的终端窗口后面打开。首先在 PowerShell 中直接测试该命令。如果你在 WSL 中运行 Claude Code,`powershell.exe` 必须通过 Windows 互操作在你的 `PATH` 上可用。183 此命令打开一个对话框而不是屏幕角落的通知,因此对话框可能会在您的终端窗口后面打开。首先在 PowerShell 中直接测试该命令。

184 

185 如果您在 WSL 中运行 Claude Code,`powershell.exe` 必须通过 Windows 互操作在您的 `PATH` 上可用。

184 </Accordion>186 </Accordion>

185 </Tab>187 </Tab>

186</Tabs>188</Tabs>


212 214 

213队友的终端设置问题的 `agent_needs_input` 需要 Claude Code v2.1.248 或更高版本。215队友的终端设置问题的 `agent_needs_input` 需要 Claude Code v2.1.248 或更高版本。

214 216 

215输入 `/hooks` 并选择 `Notification` 以确认 hook 已注册。有关完整的事件架构,请参阅 [Notification 参考](/docs/zh-CN/hooks#notification)。217在 Claude Code 输入框中输入 `/hooks`,并确认该 hook 出现在 `Notification` 下。

216 218 

217<h3 id="auto-format-code-after-edits">219<h3 id="auto-format-code-after-edits">

218 编辑后自动格式化代码220 编辑后自动格式化代码


1055* 文件编辑通常会自动拾取。如果几秒钟后它们还没有出现,文件监视器可能错过了更改:重新启动你的会话以强制重新加载。1057* 文件编辑通常会自动拾取。如果几秒钟后它们还没有出现,文件监视器可能错过了更改:重新启动你的会话以强制重新加载。

1056* 验证你的 JSON 有效:不允许尾随逗号和注释1058* 验证你的 JSON 有效:不允许尾随逗号和注释

1057* 确认设置文件在正确的位置:`.claude/settings.json` 用于项目 hooks,`~/.claude/settings.json` 用于全局 hooks1059* 确认设置文件在正确的位置:`.claude/settings.json` 用于项目 hooks,`~/.claude/settings.json` 用于全局 hooks

1060* 如果菜单显示 `Only hooks from managed settings run here`,说明您的组织设置了 [`allowManagedHooksOnly`](/docs/zh-CN/settings-reference#allowmanagedhooksonly)。您的用户、项目和本地设置文件中的 hook 不会运行,也不会列出

1058 1061 

1059<h3 id="stop-hook-hits-the-block-cap">1062<h3 id="stop-hook-hits-the-block-cap">

1060 Stop hook 达到阻止上限1063 Stop hook 达到阻止上限

Details

73 73 

74流式传输推理响应。Claude Code 在流到达时读取流,因此如果您的网关在中继之前缓冲完整响应,Claude Code 会停滞。74流式传输推理响应。Claude Code 在流到达时读取流,因此如果您的网关在中继之前缓冲完整响应,Claude Code 会停滞。

75 75 

76传递每个响应的完整事件序列,不要丢弃、重复或重新排序事件。当事件引用的内容块的 `content_block_start` 从未到达,或块的 `content_block_stop` 已经到达时,Claude Code 会在该事件处停止读取流,而不是应用它,因此重复的 `content_block_stop` 不能运行相同的工具调用两次。[上述响应可能不完整](/docs/zh-CN/errors#the-response-above-may-be-incomplete)描述了用户看到的内容,在 `部分响应从未到达` 和 `响应流格式错误` 变体下。76传递每个响应的完整事件序列,不要丢弃、重复或重新排序事件。当 Amazon Bedrock 护栏拦截回复时,原样转发它发送的事件,即使这些事件引用的内容块的 `content_block_stop` 已经到达。[AWS Guardrails](/docs/zh-CN/amazon-bedrock#aws-guardrails) 描述了该回复如何结束。当任何其他事件引用的内容块的 `content_block_start` 从未到达,或块的 `content_block_stop` 已经到达时,Claude Code 会在该事件处停止读取流,而不是应用它,因此重复的 `content_block_stop` 不能运行相同的工具调用两次。[上述响应可能不完整](/docs/zh-CN/errors#the-response-above-may-be-incomplete)描述了用户看到的内容,见 `Part of the response never arrived` 和 `The response stream was malformed` 变体。

77 77 

78在结束正文之前,通过每个响应的最终 `message_delta` 和 `message_stop` 事件中继每个响应。在 `message_delta` 携带 `stop_reason` 之后结束的正文,没有内容块仍然打开,该帧之后没有内容块事件,即使 `message_stop` 缺失,也计为完整。您的网关更早结束的正文,一旦内容块已启动,就被视为与断开连接相同:[自动重试](/docs/zh-CN/errors#automatic-retries)说明 Claude Code 何时重新发出请求,[上述响应可能不完整](/docs/zh-CN/errors#the-response-above-may-be-incomplete)涵盖了一旦可见内容到达它保留的内容。Claude Code 保留 `message_delta` 传递的 `stop_reason`,因此稍后仅使用情况的 `message_delta`,其 `delta` 具有 `stop_reason: null` 或没有 `stop_reason` 键,不会清除它。78在结束正文之前,通过每个响应的最终 `message_delta` 和 `message_stop` 事件中继每个响应。在 `message_delta` 携带 `stop_reason` 之后结束的正文,没有内容块仍然打开,该帧之后没有内容块事件,即使 `message_stop` 缺失,也计为完整。您的网关更早结束的正文,一旦内容块已启动,就被视为与断开连接相同:[自动重试](/docs/zh-CN/errors#automatic-retries)说明 Claude Code 何时重新发出请求,[上述响应可能不完整](/docs/zh-CN/errors#the-response-above-may-be-incomplete)涵盖了一旦可见内容到达它保留的内容。Claude Code 保留 `message_delta` 传递的 `stop_reason`,因此稍后仅使用情况的 `message_delta`,其 `delta` 具有 `stop_reason: null` 或没有 `stop_reason` 键,不会清除它。

79 79 

memory.md +18 −16

Details

41 CLAUDE.md 文件41 CLAUDE.md 文件

42</h2>42</h2>

43 43 

44CLAUDE.md 文件是 markdown 文件,为 Claude 提供项目、个人工作流或整个组织的持久指令。您用纯文本编写这些文件;Claude 在每个会话开始时读取它们。如果您的存储库改用 `AGENTS.md`,请参阅 [AGENTS.md](#agents-md)。44CLAUDE.md 文件是 markdown 文件,为 Claude 提供项目、个人工作流或整个组织的持久指令。您用纯文本编写这些文件;Claude 在每个会话开始时读取它们。如果您的仓库改用 `AGENTS.md`,请参阅 [AGENTS.md](#agents-md)。

45 45 

46<h3 id="when-to-add-to-claude-md">46<h3 id="when-to-add-to-claude-md">

47 何时添加到 CLAUDE.md47 何时添加到 CLAUDE.md


82<Tip>82<Tip>

83 运行 `/init` 自动生成起始 CLAUDE.md。Claude 分析您的代码库并创建一个包含构建命令、测试指令和它发现的项目约定的文件。如果 CLAUDE.md 已存在,`/init` 会建议改进而不是覆盖它。从那里进行细化,添加 Claude 不会自己发现的指令。83 运行 `/init` 自动生成起始 CLAUDE.md。Claude 分析您的代码库并创建一个包含构建命令、测试指令和它发现的项目约定的文件。如果 CLAUDE.md 已存在,`/init` 会建议改进而不是覆盖它。从那里进行细化,添加 Claude 不会自己发现的指令。

84 84 

85 为了启用交互式多阶段流程,请在运行 `/init` 之前将 `CLAUDE_CODE_NEW_INIT` 环境变量设置为 `1`。在您的 shell 中或在设置文件的 `env` 块中设置它,如 [设置环境变量](/docs/zh-CN/env-vars#set-environment-variables) 中所示。设置后,`/init` 会询问要设置哪些工件:CLAUDE.md 文件、skills 和 hooks。然后它使用子代理探索您的代码库,通过后续问题填补空白,并在写入任何文件之前呈现可审查的提案。该变量仅改变 `/init` 的运行方式,因此您可以保持它的设置。85 为了启用交互式多阶段流程,请在运行 `/init` 之前将 `CLAUDE_CODE_NEW_INIT` 环境变量设置为 `1`。在您的 shell 中或在设置文件的 `env` 块中设置它,如 [设置环境变量](/docs/zh-CN/env-vars#set-environment-variables) 中所示。设置后,`/init` 会询问要设置哪些制品:CLAUDE.md 文件、skill 和 hook。然后它使用子代理探索您的代码库,通过后续问题填补空白,并在写入任何文件之前呈现可审查的提案。该变量仅改变 `/init` 的运行方式,因此您可以保持它的设置。

86</Tip>86</Tip>

87 87 

88<h3 id="write-effective-instructions">88<h3 id="write-effective-instructions">


99 99 

100* **大小**:每个 CLAUDE.md 文件目标在 200 行以下。较长的文件消耗更多上下文并降低遵守度。将仅对代码库的一部分重要的指令移至 [path-scoped rules](#path-specific-rules),这样它们仅在 Claude 处理匹配文件时加载。[导入](#import-additional-files) 帮助您组织一个长文件,但不会减少其上下文成本,因为导入的文件也在启动时加载。100* **大小**:每个 CLAUDE.md 文件目标在 200 行以下。较长的文件消耗更多上下文并降低遵守度。将仅对代码库的一部分重要的指令移至 [path-scoped rules](#path-specific-rules),这样它们仅在 Claude 处理匹配文件时加载。[导入](#import-additional-files) 帮助您组织一个长文件,但不会减少其上下文成本,因为导入的文件也在启动时加载。

101* **结构**:使用 markdown 标题和项目符号来分组相关指令。有组织的部分比密集段落更容易让 Claude 遵循。101* **结构**:使用 markdown 标题和项目符号来分组相关指令。有组织的部分比密集段落更容易让 Claude 遵循。

102* **一致性**:如果两条指令相互矛盾,Claude 可能会任意选择一条。定期审查您的 CLAUDE.md 文件、子目录中的嵌套 CLAUDE.md 文件和 [`.claude/rules/`](#organize-rules-with-claude/rules/),以删除过时或冲突的指令。要让 Claude 为您找到它们,请 [运行提示审计](#audit-your-instruction-files)。102* **一致性**:如果两条指令相互矛盾,Claude 可能会任意选择一条。定期审查您的 CLAUDE.md 文件、子目录中的嵌套 CLAUDE.md 文件和 [`.claude/rules/`](#organize-rules-with-claude/rules/),以删除过时或冲突的指令。要让 Claude 为您找到它们,请 [运行提示词审计](#audit-your-instruction-files)。

103 103 

104<h4 id="audit-your-instruction-files">104<h4 id="audit-your-instruction-files">

105 审计您的指令文件105 审计您的指令文件


107 107 

108要让 Claude 检查您的指令文件是否有过时或冲突的内容,请在会话中运行 `/doctor prompt-audit`。Claude 查找问题,例如为旧模型编写的指令、对不存在的文件或命令的引用,以及相互矛盾的文件。您会获得一份发现报告和一组建议的编辑,在您要求 Claude 应用它们之前,您的文件中不会有任何更改。108要让 Claude 检查您的指令文件是否有过时或冲突的内容,请在会话中运行 `/doctor prompt-audit`。Claude 查找问题,例如为旧模型编写的指令、对不存在的文件或命令的引用,以及相互矛盾的文件。您会获得一份发现报告和一组建议的编辑,在您要求 Claude 应用它们之前,您的文件中不会有任何更改。

109 109 

110默认情况下,审计涵盖您的 CLAUDE.md、CLAUDE.local.md 和 AGENTS.md 文件,以及 `.claude/` 和 `~/.claude/` 下的规则、skills、命令、子代理和输出样式。要审计一个文件或目录,请改为传递其路径,例如 `/doctor prompt-audit .claude/skills/deploy`。110默认情况下,审计涵盖您的 CLAUDE.md、CLAUDE.local.md 和 AGENTS.md 文件,以及 `.claude/` 和 `~/.claude/` 下的规则、skill、命令、子代理和输出样式。要审计一个文件或目录,请改为传递其路径,例如 `/doctor prompt-audit .claude/skills/deploy`。

111 111 

112审计通过捆绑的 `/claude-api` skill 运行。当该 skill 在 [`skillOverrides`](/docs/zh-CN/skills#override-skill-visibility-from-settings) 中关闭或使用 [`disableBundledSkills`](/docs/zh-CN/settings-reference#disablebundledskills) 时,它不可用。`/doctor prompt-audit` 需要 Claude Code v2.1.283 或更高版本。112审计通过捆绑的 `/claude-api` skill 运行。当该 skill 在 [`skillOverrides`](/docs/zh-CN/skills#override-skill-visibility-from-settings) 中关闭或使用 [`disableBundledSkills`](/docs/zh-CN/settings-reference#disablebundledskills) 时,它不可用。`/doctor prompt-audit` 需要 Claude Code v2.1.283 或更高版本。

113 113 


138 138 

139对于不应该检入版本控制的私人项目特定偏好,请在项目根目录创建 `CLAUDE.local.md`。它与 `CLAUDE.md` 一起加载并以相同方式处理。将 `CLAUDE.local.md` 添加到您的 `.gitignore` 以便不提交它。设置 `CLAUDE_CODE_NEW_INIT=1` 后,运行 `/init` 并选择个人选项会为您执行此操作。139对于不应该检入版本控制的私人项目特定偏好,请在项目根目录创建 `CLAUDE.local.md`。它与 `CLAUDE.md` 一起加载并以相同方式处理。将 `CLAUDE.local.md` 添加到您的 `.gitignore` 以便不提交它。设置 `CLAUDE_CODE_NEW_INIT=1` 后,运行 `/init` 并选择个人选项会为您执行此操作。

140 140 

141如果您在同一存储库的多个 git worktrees 中工作,gitignored `CLAUDE.local.md` 仅存在于您创建它的 worktree 中。要在 worktrees 中共享个人指令,请改为从您的主目录导入文件:141如果您在同一仓库的多个 git worktree 中工作,gitignored `CLAUDE.local.md` 仅存在于您创建它的 worktree 中。要在 worktree 之间共享个人指令,请改为从您的主目录导入文件:

142 142 

143```text theme={null}143```text theme={null}

144# Individual Preferences144# Individual Preferences


146```146```

147 147 

148<Warning>148<Warning>

149 项目级内存文件中的导入是外部的,当其路径解析到工作目录外时,例如上面的主目录导入。Claude Code 首次在项目中遇到外部导入时,会显示一个批准对话框,列出文件。如果您拒绝,导入保持禁用状态,对话框不会再出现。149 项目级记忆文件中的导入是外部的,当其路径解析到工作目录外时,例如上面的主目录导入。Claude Code 首次在项目中遇到外部导入时,会显示一个批准对话框,列出文件。如果您拒绝,导入保持禁用状态,对话框不会再出现。

150 150 

151 Claude Code 显示对话框以保护您免受其他人提交到共享项目的文件。用户范围内存文件,例如 `~/.claude/CLAUDE.md` 和 `~/.claude/rules/`,是您自己编写的文件。除了在您的桌面上的 [Cowork](https://claude.com/product/cowork) 会话中,Claude Code 加载它们的导入而不显示对话框,并像信任您的其余个人配置一样信任它们。151 Claude Code 显示对话框以保护您免受其他人提交到共享项目的文件。用户范围记忆文件,例如 `~/.claude/CLAUDE.md` 和 `~/.claude/rules/`,是您自己编写的文件。除了在您的桌面上的 [Cowork](https://claude.com/product/cowork) 会话中,Claude Code 加载它们的导入而不显示对话框,并像信任您的其余个人配置一样信任它们。

152 152 

153 在您的桌面上的 Cowork 会话中,Claude Code 跳过用户范围文件中解析到会话工作目录外的路径的任何导入,并加载文件的其余部分。在这些会话中,它也跳过本身是符号链接或硬链接的 `~/.claude/CLAUDE.md`,以及指向工作目录外的符号链接 `~/.claude/rules/` 目录或规则文件。153 在您的桌面上的 Cowork 会话中,Claude Code 跳过用户范围文件中解析到会话工作目录外的路径的任何导入,并加载文件的其余部分。在这些会话中,它也跳过本身是符号链接或硬链接的 `~/.claude/CLAUDE.md`,以及指向工作目录外的符号链接 `~/.claude/rules/` 目录或规则文件。

154</Warning>154</Warning>


161 161 

162所有发现的文件被连接到上下文中,而不是相互覆盖。在目录树中,内容从文件系统根目录向下排序到您的工作目录。对于 `foo/bar/` 示例,`foo/CLAUDE.md` 在上下文中出现在 `foo/bar/CLAUDE.md` 之前,因此更接近您启动 Claude 的位置的指令最后读取。在每个目录中,`CLAUDE.local.md` 附加在 `CLAUDE.md` 之后,因此您的个人笔记是 Claude 在该级别读取的最后一件事。162所有发现的文件被连接到上下文中,而不是相互覆盖。在目录树中,内容从文件系统根目录向下排序到您的工作目录。对于 `foo/bar/` 示例,`foo/CLAUDE.md` 在上下文中出现在 `foo/bar/CLAUDE.md` 之前,因此更接近您启动 Claude 的位置的指令最后读取。在每个目录中,`CLAUDE.local.md` 附加在 `CLAUDE.md` 之后,因此您的个人笔记是 Claude 在该级别读取的最后一件事。

163 163 

164Claude 还发现当前工作目录下子目录中的 `CLAUDE.md` 和 `CLAUDE.local.md` 文件。它们不是在启动时加载,而是在 Claude 读取这些子目录中的文件时包含。164Claude 还发现当前工作目录下子目录中的 `CLAUDE.md` 和 `CLAUDE.local.md` 文件。它们不是在启动时加载,而是在 Claude 读取这些子目录中的文件时包含。对于 `.claude/worktrees/` 下 worktree 中的文件,请参阅 [使用 worktree 隔离子代理](/docs/zh-CN/worktrees#isolate-subagents-with-worktrees)。

165 165 

166如果您在大型 monorepo 中工作,其中其他团队的 CLAUDE.md 文件被拾取,请使用 [`claudeMdExcludes`](#exclude-specific-claude-md-files) 跳过它们。有关根目录和每目录 CLAUDE.md 文件和规则的完整布局,请参阅 [Monorepos 和大型存储库](/docs/zh-CN/large-codebases)。166如果您在大型 monorepo 中工作,其中其他团队的 CLAUDE.md 文件被拾取,请使用 [`claudeMdExcludes`](#exclude-specific-claude-md-files) 跳过它们。有关根目录和每目录 CLAUDE.md 文件和规则的完整布局,请参阅 [Monorepos 和大型仓库](/docs/zh-CN/large-codebases)。

167 167 

168CLAUDE.md 文件中的块级 HTML 注释(`<!-- maintainer notes -->`)在内容注入到 Claude 的上下文之前被剥离。使用它们为人类维护者留下笔记,而不在注释上花费上下文令牌。代码块内的注释被保留。当您直接使用 Read 工具打开 CLAUDE.md 文件时,注释保持可见。168CLAUDE.md 文件中的块级 HTML 注释(`<!-- maintainer notes -->`)在内容注入到 Claude 的上下文之前被剥离。使用它们为人类维护者留下笔记,而不在注释上花费上下文 token。代码块内的注释被保留。当您直接使用 Read 工具打开 CLAUDE.md 文件时,注释保持可见。

169 169 

170<h4 id="load-from-additional-directories">170<h4 id="load-from-additional-directories">

171 从其他目录加载171 从其他目录加载


173 173 

174`--add-dir` 标志使 Claude 能够访问主工作目录外的其他目录。默认情况下,这些目录中的 CLAUDE.md 文件不加载。174`--add-dir` 标志使 Claude 能够访问主工作目录外的其他目录。默认情况下,这些目录中的 CLAUDE.md 文件不加载。

175 175 

176要也从其他目录加载内存文件,请设置 `CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD` 环境变量:176要也从其他目录加载记忆文件,请设置 `CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD` 环境变量:

177 177 

178```bash theme={null}178```bash theme={null}

179CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD=1 claude --add-dir ../shared-config179CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD=1 claude --add-dir ../shared-config


190对于较大的项目,您可以使用 `.claude/rules/` 目录将指令组织到多个文件中。这使指令模块化并更容易让团队维护。规则也可以 [范围限定到特定文件路径](#path-specific-rules),因此它们仅在 Claude 处理匹配文件时加载到上下文中,减少噪音并节省上下文空间。190对于较大的项目,您可以使用 `.claude/rules/` 目录将指令组织到多个文件中。这使指令模块化并更容易让团队维护。规则也可以 [范围限定到特定文件路径](#path-specific-rules),因此它们仅在 Claude 处理匹配文件时加载到上下文中,减少噪音并节省上下文空间。

191 191 

192<Note>192<Note>

193 规则在每个会话或打开匹配文件时加载到上下文中。对于不需要始终在上下文中的特定任务指令,请改用 [skills](/docs/zh-CN/skills),它仅在您调用它们或 Claude 确定它们与您的提示相关时加载。193 规则在每个会话或打开匹配文件时加载到上下文中。对于不需要始终在上下文中的特定任务指令,请改用 [skills](/docs/zh-CN/skills),它仅在您调用它们或 Claude 确定它们与您的提示词相关时加载。

194</Note>194</Note>

195 195 

196<h4 id="set-up-rules">196<h4 id="set-up-rules">


232- Include OpenAPI documentation comments232- Include OpenAPI documentation comments

233```233```

234 234 

235没有 `paths` 字段的规则无条件加载并适用于所有文件。路径范围规则在 Claude 读取与模式匹配的文件时触发,而不是在每个工具使用时。从 v2.1.198 开始,当 Claude 通过项目目录的符号链接路径到达文件时,匹配也有效,例如在符号链接检出中。235没有 `paths` 字段的规则无条件加载并适用于所有文件。路径范围规则在 Claude 读取与模式匹配的文件时触发,而不是在每个工具使用时。当 Claude 通过项目目录的符号链接路径到达文件时,匹配也有效,例如在符号链接检出中。

236 236 

237在 `paths` 字段中使用 glob 模式按扩展名、目录或任何组合匹配文件:237在 `paths` 字段中使用 glob 模式按扩展名、目录或任何组合匹配文件:

238 238 


278 278 

279`.claude/rules/` 目录支持符号链接,因此您可以维护一组共享规则并将它们链接到多个项目中。循环符号链接被检测并妥善处理。279`.claude/rules/` 目录支持符号链接,因此您可以维护一组共享规则并将它们链接到多个项目中。循环符号链接被检测并妥善处理。

280 280 

281Claude Code 将其目标在工作目录外的符号链接视为 [external import](#import-additional-files)。链接的规则不加载,直到您批准项目的外部导入,之后仅加载没有 [`paths` 字段](#path-specific-rules) 的规则。Claude Code 仅当项目内存文件使用 `@path` 导入工作目录外的文件时才要求该批准,而不是仅针对符号链接。要加载共享规则而不需要该批准,请将它们保存在 [`~/.claude/rules/`](#user-level-rules) 中,它们适用于您机器上的每个项目。281Claude Code 将其目标在工作目录外的符号链接视为 [external import](#import-additional-files)。链接的规则不加载,直到您批准项目的外部导入,之后仅加载没有 [`paths` 字段](#path-specific-rules) 的规则。Claude Code 仅当项目记忆文件使用 `@path` 导入工作目录外的文件时才要求该批准,而不是仅针对符号链接。要加载共享规则而不需要该批准,请将它们保存在 [`~/.claude/rules/`](#user-level-rules) 中,它们适用于您机器上的每个项目。

282 282 

283此示例链接共享目录和单个文件:283此示例链接共享目录和单个文件:

284 284 


329 329 

330`claudeMd` 键允许您将托管 CLAUDE.md 内容直接放入 `managed-settings.json` 中,而不是部署单独的文件。330`claudeMd` 键允许您将托管 CLAUDE.md 内容直接放入 `managed-settings.json` 中,而不是部署单独的文件。

331 331 

332**范围**:机器上的每个 Claude Code 会话,在每个存储库中。对于存储库特定的指导,改为提交项目 CLAUDE.md。332**范围**:机器上的每个 Claude Code 会话,在每个仓库中。对于仓库特定的指导,改为提交项目 CLAUDE.md。

333 333 

334**优先级**:与托管 CLAUDE.md 文件相同。在用户和项目 CLAUDE.md 之前加载。334**优先级**:与托管 CLAUDE.md 文件相同。在用户和项目 CLAUDE.md 之前加载。

335 335 


538 启用或禁用自动记忆538 启用或禁用自动记忆

539</h3>539</h3>

540 540 

541自动记忆默认开启。要切换它,在会话中打开 `/memory` 并使用自动记忆切换,它将 `autoMemoryEnabled` 保存到你的用户设置 `~/.claude/settings.json`。要为单个项目关闭它,在该项目的设置中设置 `autoMemoryEnabled`:541自动记忆在本地会话中默认开启。在 [Claude Tag](https://claude.com/docs/claude-tag/overview) 会话之外,[自托管环境](/docs/zh-CN/self-hosted-environments-configuration#how-each-session’s-config-is-assembled)中的会话默认关闭自动记忆。

542 

543要切换它,在会话中打开 `/memory` 并使用自动记忆切换,它将 `autoMemoryEnabled` 保存到您的用户设置 `~/.claude/settings.json`。要为单个项目关闭它,在该项目的设置中设置 `autoMemoryEnabled`:

542 544 

543```json theme={null}545```json theme={null}

544{546{

Details

524 3. 其他所有内容都进入分类器,除了[关键路径删除](#critical-paths)在其默认处理下。在步骤 1 中直接提示您的连接器工具和 `requiresUserInteraction` MCP 工具永远不会到达分类器,因此既不是组织要求的批准也不是同意步骤被自动批准524 3. 其他所有内容都进入分类器,除了[关键路径删除](#critical-paths)在其默认处理下。在步骤 1 中直接提示您的连接器工具和 `requiresUserInteraction` MCP 工具永远不会到达分类器,因此既不是组织要求的批准也不是同意步骤被自动批准

525 4. 如果分类器阻止,Claude 接收原因。在大多数会话中,原因命名分类器匹配的规则,例如 `[Data Exfiltration]`,而不是给出书面解释;请参阅[审查拒绝](/docs/zh-CN/auto-mode-config#review-denials)525 4. 如果分类器阻止,Claude 接收原因。在大多数会话中,原因命名分类器匹配的规则,例如 `[Data Exfiltration]`,而不是给出书面解释;请参阅[审查拒绝](/docs/zh-CN/auto-mode-config#review-denials)

526 526 

527 您安装的通过 hook 接入 `tool.check` 的 [mod](/docs/zh-CN/plugins/mods/overview) 可以在步骤 3 之前批准操作,分类器不会检查该 mod 批准的操作。请参阅[使用 hook 扩展权限](/docs/zh-CN/permissions#extend-permissions-with-hooks)。

528 

527 进入自动模式时,授予任意代码执行的广泛允许规则被丢弃:529 进入自动模式时,授予任意代码执行的广泛允许规则被丢弃:

528 530 

529 * 空白 `Bash(*)` 或 `PowerShell(*)`531 * 空白 `Bash(*)` 或 `PowerShell(*)`


667* `.yarn`669* `.yarn`

668* `.mvn`670* `.mvn`

669* `.claude`,除了 `.claude/worktrees`,Claude 在其中存储自己的 git worktrees671* `.claude`,除了 `.claude/worktrees`,Claude 在其中存储自己的 git worktrees

672* 使用 [`--plugin-dir`](/docs/zh-CN/plugins/mods/create#change-a-mod-with-claude) 加载的目录,因为当文件发生更改时,Claude Code 会从该目录重新加载并运行 mod 的代码

670 673 

671受保护的文件:674受保护的文件:

672 675 

plugins/loading.md +20 −14

Details

244 依赖项安装何时运行244 依赖项安装何时运行

245</h4>245</h4>

246 246 

247Claude Code 在创建复制的版本目录时在其内部运行安装:247Claude Code 每次创建复制的版本目录时,都会将依赖项安装到其中:

248 248 

249* 当您安装插件时249* 当您安装插件时

250* 当 Claude Code 将插件更新到新版本时250* 当 Claude Code 将插件更新到新版本时


252 252 

253对于从本地目录市场[就地加载](#in-place-and-copied-plugins)的相对路径插件,Claude Code 不会将依赖项安装到源目录中。自己在那里安装它们,或从 hook 安装到[`${CLAUDE_PLUGIN_DATA}`](/docs/zh-CN/plugins/components#path-variables-and-persistent-data)。253对于从本地目录市场[就地加载](#in-place-and-copied-plugins)的相对路径插件,Claude Code 不会将依赖项安装到源目录中。自己在那里安装它们,或从 hook 安装到[`${CLAUDE_PLUGIN_DATA}`](/docs/zh-CN/plugins/components#path-variables-and-persistent-data)。

254 254 

255安装仅在插件的根目录同时包含 `package.json` 和支持的锁定文件时运行。锁定文件决定 Claude Code 运行的命令:255安装仅在插件的根目录同时包含 `package.json` 和支持的锁定文件时运行。

256 256 

257| 锁定文件 | 命令 |257锁定文件决定 Claude Code 运行哪个包管理器:

258 

259| 锁定文件 | 包管理器 |

258| :- | :- |260| :- | :- |

259| `bun.lock` 或 `bun.lockb` | `bun install --frozen-lockfile --ignore-scripts` |261| `bun.lock` | Bun |

260| `npm-shrinkwrap.json` 或 `package-lock.json` | `npm ci --ignore-scripts` |262| `npm-shrinkwrap.json` 或 `package-lock.json` | npm |

261 263 

262如果插件包含这些锁定文件中的多个,Claude Code 使用第一个匹配项,按顺序检查:`bun.lock`、`bun.lockb`、`npm-shrinkwrap.json`、`package-lock.json`。264如果插件包含这些锁定文件中的多个,Claude Code 使用第一个匹配项,按顺序检查:`bun.lock`、`npm-shrinkwrap.json`、`package-lock.json`。

263 265 

264Claude Code 跳过 Yarn 和 pnpm 锁定文件以及 Bun 锁定文件旁边的 `bunfig.toml` 的安装:266在以下锁定文件情况下,Claude Code 会跳过安装:

265 267 

266* 如果您的插件仅有 `yarn.lock` 或 `pnpm-lock.yaml`,请将其替换为 npm 锁定文件268* **`bun.lockb`**:Bun 的二进制锁定文件无法被检查。请改为提供文本格式的 `bun.lock` 或 npm 锁定文件

267* 如果 `bunfig.toml` 与 Bun 锁定文件在同一目录中,请删除 `bunfig.toml`,或将 Bun 锁定文件替换为 npm 锁定文件269* **`yarn.lock` 或 `pnpm-lock.yaml`**:请将其替换为 npm 锁定文件

270* **Claude Code 无法读取的格式的锁定文件**:npm 锁定文件需要 `lockfileVersion` 为 `2` 或 `3`(由 npm 7 或更高版本写入),`bun.lock` 需要 `lockfileVersion` 不高于 `2`

268 271 

269包含 npm 锁定文件以到达最多用户。Claude Code 从用户的 PATH 运行匹配的锁定文件的包管理器,如果缺少该包管理器,不会尝试其他锁定文件。272包含 npm 锁定文件以到达最多用户。Claude Code 从用户的 PATH 运行匹配的锁定文件的包管理器,如果缺少该包管理器,不会尝试其他锁定文件。

270 273 


276 279 

277Claude Code 限制此依赖项安装,以便插件或其包中的任何代码在安装期间不执行,并限制其运行时间:280Claude Code 限制此依赖项安装,以便插件或其包中的任何代码在安装期间不执行,并限制其运行时间:

278 281 

279* **冻结解析**:Bun 和 npm 安装锁定文件精确固定的内容,当 `package.json` 和锁定文件不一致时失败而不是重新解析版本282* **仅限注册表包**:每个依赖项都必须是在锁定文件中固定到精确版本的注册表包。具有 git、GitHub、文件夹、工作区或链接依赖项的插件不会进行安装。

283* **`https` 下载**:锁定文件中的下载链接必须使用 `https`,除非它指向执行安装的用户自己的默认 npm 注册表。

284* **单独的安装文件夹**:包管理器在其专用的文件夹中运行,该文件夹仅包含经过检查的依赖项列表的副本,因此 npm 和 Bun 不会读取插件的 `.npmrc`、`.env` 或 `bunfig.toml`。安装成功后,Claude Code 会将生成的 `node_modules` 移入插件中。

285* **冻结解析**:安装严格使用锁定文件固定的版本,当 `package.json` 和锁定文件列出的依赖项不一致时,Claude Code 会跳过安装

280* **无生命周期脚本**:`--ignore-scripts` 防止 `preinstall`、`install` 和 `postinstall` 脚本运行,因此在这些脚本中构建本机模块的依赖项在此安装期间下载但不编译286* **无生命周期脚本**:`--ignore-scripts` 防止 `preinstall`、`install` 和 `postinstall` 脚本运行,因此在这些脚本中构建本机模块的依赖项在此安装期间下载但不编译

287* **无覆盖或补丁**:`package.json` 设置了 npm `overrides` 的插件不会从 npm 锁定文件进行安装,设置了 Bun `patchedDependencies` 的插件不会从 `bun.lock` 进行安装

281* **60 秒超时**:Claude Code 停止运行超过 60 秒的安装并将其视为失败288* **60 秒超时**:Claude Code 停止运行超过 60 秒的安装并将其视为失败

282 289 

283Claude Code 在此依赖项安装之前获取 npm 源插件,包的任何自己的安装脚本在获取期间不运行。请参阅 [npm 插件源](/docs/zh-CN/plugins/marketplace-reference#npm-plugin-source)。290Claude Code 在此依赖项安装之前获取 npm 源插件,包的任何自己的安装脚本在获取期间不运行。请参阅 [npm 插件源](/docs/zh-CN/plugins/marketplace-reference#npm-plugin-source)。


290 依赖项安装失败或被跳过时297 依赖项安装失败或被跳过时

291</h4>298</h4>

292 299 

293失败或跳过的安装永远不会阻止插件,每种情况都留下不同的迹象:300失败或跳过的安装永远不会阻止插件,插件随后会在没有这些依赖项的情况下加载。每种情况都留下不同的迹象:

294 301 

295* 失败的安装或因 Yarn 或 pnpm 锁定文件或 `bunfig.toml` 而跳过的安装在 `claude --debug` 输出中显示为警告302* 失败的安装,或因其锁定文件或某项[安装限制](#limits-on-the-dependency-install)而跳过的安装,会在 `claude --debug` 输出中显示为一行说明原因的 `Plugin dependency install warning`

296* 具有 `package.json` 且没有锁定文件的插件被跳过,没有日志条目303* 具有 `package.json` 且没有锁定文件的插件被跳过,没有日志条目

297* 超时的安装可能在缓存副本中留下部分 `node_modules` 树

298 304 

299当自动安装无法提供依赖项时,从 hook 安装到[持久数据目录](/docs/zh-CN/plugins/components#path-variables-and-persistent-data)。这包括需要其生命周期脚本来构建的包、Python 依赖项以及使用 Yarn 或 pnpm 锁定的插件。305当自动安装无法提供依赖项时,从 hook 安装到[持久数据目录](/docs/zh-CN/plugins/components#path-variables-and-persistent-data)。这包括需要其生命周期脚本来构建的包、Python 依赖项、使用 Yarn 或 pnpm 锁定的插件,以及不是注册表包的依赖项(例如 git 依赖项)。

300 306 

301<h2 id="versions-and-updates">307<h2 id="versions-and-updates">

302 版本和更新308 版本和更新

Details

155| `github` | `repo`, `ref`, `sha` | GitHub 仓库,格式为 `owner/repo` |155| `github` | `repo`, `ref`, `sha` | GitHub 仓库,格式为 `owner/repo` |

156| `url` | `url`, `ref`, `sha` | 任何 git 仓库的 URL |156| `url` | `url`, `ref`, `sha` | 任何 git 仓库的 URL |

157| `git-subdir` | `url`, `path`, `ref`, `sha` | git 仓库的一个子目录,使用稀疏部分克隆获取 |157| `git-subdir` | `url`, `path`, `ref`, `sha` | git 仓库的一个子目录,使用稀疏部分克隆获取 |

158| `npm` | `package`, `version`, `registry` | npm 包,使用你的 npm 客户端获取并解包,不运行安装脚本 |158| `npm` | `package`, `version`, `registry` | npm registry 包或 tarball 链接,使用您的 npm 客户端获取并解包,不运行安装脚本 |

159| `archive` | `url`, `sha256` | HTTPS 上的 Zip 存档。需要 Claude Code v2.1.224 或更高版本 |159| `archive` | `url`, `sha256` | HTTPS 上的 Zip 存档。需要 Claude Code v2.1.224 或更高版本 |

160| `command` | `command`, `timeout`, `mode` | 由 Claude Code 在用户机器上运行的命令打印的目录。需要 Claude Code v2.1.229 或更高版本 |160| `command` | `command`, `timeout`, `mode` | 由 Claude Code 在用户机器上运行的命令打印的目录。需要 Claude Code v2.1.229 或更高版本 |

161 161 


258 258 

259一个 `npm` 源采用这些字段:259一个 `npm` 源采用这些字段:

260 260 

261* `package`:一个包名,或一个作用域名,如 `@your-org/formatter`261* `package`:一个 registry 包名,如 `@your-org/formatter`;一个附加了版本的名称,如 `@your-org/formatter@2.0.0`;或一个指向包 tarball 文件的 `https` 链接

262* `version`:一个版本或范围262* `version`:一个版本、一个 semver 范围或一个 dist-tag,在 `package` 是未附加版本的包名时使用。省略它则获取 `latest`

263* `registry`:一个不在默认 registry 上的包的 registry URL263* `registry`:一个不在默认 registry 上的包的 registry URL

264 264 

265Claude Code 使用你的 npm 客户端获取包。包的安装脚本,如 `preinstall` 或 `postinstall`,永远不会运行,其依赖项在获取期间不会被安装。如果包在其 `package.json` 旁边有一个支持的 lockfile,Claude Code 在单独的步骤中安装这些 [Node.js 包依赖项](/docs/zh-CN/plugins/loading#node-js-package-dependencies),也禁用脚本。265Claude Code 使用你的 npm 客户端获取包。包的安装脚本,如 `preinstall` 或 `postinstall`,永远不会运行,其依赖项在获取期间不会被安装。如果包在其 `package.json` 旁边有一个支持的 lockfile,Claude Code 在单独的步骤中安装这些 [Node.js 包依赖项](/docs/zh-CN/plugins/loading#node-js-package-dependencies),也禁用脚本。

266 266 

267Claude Code 在获取任何内容之前会检查 `package` 值。被拒绝的值会导致安装失败,并显示一条指明该值及原因的消息。被拒绝的值包括:

268 

269* **git 地址、文件夹或 `file:` 路径,或 `npm:` 别名**:对于 git 仓库,请使用 [`github`、`url` 或 `git-subdir` 源](#plugin-sources);对于市场中的文件夹,请使用相对路径;对于别名,请使用包自身的名称

270* **位于 github.com、gist.github.com、gitlab.com、bitbucket.org 或 git.sr.ht 上的 tarball 链接**:即使该链接是 GitHub release 下载链接也会被拒绝,除非它是 `gitlab.com/api/v4/` 下的 GitLab npm registry 链接

271* **通过 `http` 的 tarball 链接**:除非它指向安装用户自己的默认 npm registry,否则会被拒绝

272 

273`registry` URL 必须使用 `https`,除非它是安装用户自己的默认 npm registry。对于任何其他 `http` registry,安装会在 npm 与其联系之前失败。

274 

267```json theme={null}275```json theme={null}

268{276{

269 "name": "formatter",277 "name": "formatter",

Details

167 167 

168mod 未加载的用户在其调试日志中找到原因。[拒绝消息](/docs/zh-CN/plugins/mods/troubleshoot#refusal-messages)列出了 `allowManagedHooksOnly` 和 `disableAllHooks` 的行,[来自内置保护程序的消息](/docs/zh-CN/plugins/mods/troubleshoot#messages-from-the-built-in-guard)有 `allowManagedModsOnly` 的行。168mod 未加载的用户在其调试日志中找到原因。[拒绝消息](/docs/zh-CN/plugins/mods/troubleshoot#refusal-messages)列出了 `allowManagedHooksOnly` 和 `disableAllHooks` 的行,[来自内置保护程序的消息](/docs/zh-CN/plugins/mods/troubleshoot#messages-from-the-built-in-guard)有 `allowManagedModsOnly` 的行。

169 169 

170<h3 id="allow-only-your-organization’s-mods">

171 仅允许您组织的 mods

172</h3>

173 

174要运行您组织的 mods 并阻止用户带来的 mods,请部署[策略表](#choose-how-much-to-allow)中 **仅您组织的 mods** 一行的设置,再加上 `disableSideloadFlags`。使用以下完整的 `managed-settings.json`,Claude Code 会拒绝用户自己的 mods,因此他们的 hooks 都不会运行,而您的策略 mod 会先于其他 mods 运行:

175 

176```json managed-settings.json theme={null}

177{

178 "extraKnownMarketplaces": {

179 "acme-tools": {

180 "source": { "source": "directory", "path": "/opt/acme/claude-plugins" }

181 }

182 },

183 "enabledPlugins": { "acme-guard@acme-tools": true },

184 "prependPlugins": ["acme-guard@acme-tools", "sec-default@builtin"],

185 "pluginConfigs": {

186 "cc-plugin-sec-default@builtin": {

187 "options": { "allowManagedModsOnly": true }

188 }

189 },

190 "disableSideloadFlags": true

191}

192```

193 

194每组键各负责一项工作:

195 

196* **`extraKnownMarketplaces`、`enabledPlugins` 和 `prependPlugins`**:安装您的 mod 以便它计为您的,并让它首先运行,保护程序紧随其后。[安装您组织的 mods 并设置顺序](#install-your-organizations-mods)涵盖这些键所指向的目录。

197* **`pluginConfigs`**:设置保护程序的 `allowManagedModsOnly` 选项,因此 Claude Code 会拒绝用户自己的 mods。他们的设置 hooks、状态栏和 `/goal` 继续工作。

198* **`disableSideloadFlags`**:有关它在启动时拒绝的标志,请参阅 [`disableSideloadFlags`](/docs/zh-CN/settings-reference#disablesideloadflags)

199 

200要在测试机器上确认该策略,请在您的 shell 中使用 `claude --debug` 启动会话并阅读调试日志:

201 

202* **您的 mod**:其 `hooks module` 行带有 `tier prepend`

203* **用户安装的 mod**:有一行显示 `refused by cc-plugin-sec-default: mods are limited to your organization's by policy (allowManagedModsOnly)`。更早的一行会显示该 mod 的 hooks module 已 `loaded`,因此请查找拒绝信息。

204* **插件目录**:`claude --plugin-dir ./any-mod` 会退出,并显示以 `--plugin-dir is disabled by your organization's managed settings (disableSideloadFlags)` 开头的消息

205 

206要同时限制用户可以添加哪些市场,请将此文件与您的[市场限制](/docs/zh-CN/plugins/org#restrict-what-users-can-install)结合使用。

207 

208<h3 id="apply-your-plugin-controls-to-mods">

209 将您的插件控制应用于 mods

210</h3>

211 

212mod 就是插件,因此您[为组织管理插件](/docs/zh-CN/plugins/org)的方式同样适用于包含 mod 的插件:

213 

214* **查看整个设备群中加载了哪些插件**:[审计和审查](/docs/zh-CN/plugins/org#audit-and-review)

215* **决定您审查过的插件何时可以更新**:[设置更新策略](/docs/zh-CN/plugins/org#set-update-policy)

216* **为某个群组(例如试点群组)提供不同的策略**:[为托管设置无法强制执行的内容做好规划](/docs/zh-CN/plugins/org#plan-for-what-managed-settings-can’t-enforce)

217* **检查哪些应用和会话类型会应用插件键**:[各使用入口何时应用插件键](/docs/zh-CN/plugins/org#when-each-surface-applies-the-plugin-keys)

218* **设置 CI 和容器**:[为容器和 CI 预置内容](/docs/zh-CN/plugins/org#seed-containers-and-ci)

219* **提供用户可以安装的 mods**:[托管市场](/docs/zh-CN/plugins/host-marketplace)。Claude Code 从 GitHub、git、URL 或 npm 源复制的 mod 计为用户的,而不是[您组织的](#install-your-organizations-mods)。

220 

170<h3 id="set-options-on-the-built-in-guard">221<h3 id="set-options-on-the-built-in-guard">

171 在内置保护程序上设置选项222 在内置保护程序上设置选项

172</h3>223</h3>

Details

190 190 

191将等待保持在 mods API 调用(如 `$.ui.ask`)内,因为该时间不计入 hook 的[10 秒时间限制](/docs/zh-CN/plugins/mods/reference#limits)。花在等待你自己的承诺上的时间确实计入。Claude Code 跳过超时的 hook,因此保持的命令会运行。191将等待保持在 mods API 调用(如 `$.ui.ask`)内,因为该时间不计入 hook 的[10 秒时间限制](/docs/zh-CN/plugins/mods/reference#limits)。花在等待你自己的承诺上的时间确实计入。Claude Code 跳过超时的 hook,因此保持的命令会运行。

192 192 

193<h4 id="approve-or-refuse-a-tool-call-before-the-user-is-asked">

194 在询问用户之前批准或拒绝工具调用

195</h4>

196 

197要决定某个工具调用是否可以运行,请处理 [`tool.check`](/docs/zh-CN/plugins/mods/reference#tools),即 Claude Code 做出该决定的事件。它在权限规则和设置 hook 做出决定之后触发,`next(e)` 解析为它们的决定:`allow`、`ask` 或 `deny`。您的 hook 返回该决定或另一个决定。`e.input` 保存工具的参数,例如 Bash 的 `command`。

198 

199对于固定的命令或路径,请使用[权限规则](/docs/zh-CN/permissions#permission-rule-syntax),例如 `Bash(npm test)`,无需编写代码。当决定取决于当时的实际情况(例如当前的 Git 分支或另一个 hook 记录的值)时,请处理 `tool.check`。

200 

201此 hook 在当前分支为 `main` 时拒绝 `git push`:

202 

203```javascript theme={null}

204on('tool.check', { tool: 'Bash' }, async ($, e, next) => {

205 // 权限规则和设置 hook 做出的决定:'allow'、'ask' 或 'deny'

206 const decided = await next(e)

207 if (!e.input.command.includes('git push')) return decided

208 const branch = await $.process.run(['git', 'branch', '--show-current'])

209 if (branch.stdout.trim() !== 'main') return decided

210 return { decision: 'deny', reason: 'Push from a branch other than main' }

211})

212```

213 

214在 `main` 上,即使某条规则允许 `git push`,hook 也会返回 `deny`。在其他分支上以及对于其他命令,调用会得到没有 mod 时同样的决定。

215 

216该 hook 匹配的是命令的文本,因此请将其视为对 Claude 的提醒。要为所有人阻止向 `main` 推送,请在您的 Git 托管平台上保护该分支。

217 

218hook 可以返回三种决定中的任何一种,因此它也可以批准被托管设置之外的 `PreToolUse` hook 阻止的调用。[使用 hook 扩展权限](/docs/zh-CN/permissions#extend-permissions-with-hooks)列出了哪些决定会优先于 mod。

219 

193<h3 id="rewrite-or-add-to-a-prompt">220<h3 id="rewrite-or-add-to-a-prompt">

194 重写或添加到提示221 重写或添加到提示

195</h3>222</h3>


301* **来自托管设置的 `PreToolUse` hooks**:在第一个 mod 的 `tool.call` hook 之前运行,其中一个的块是最终的,因此没有 mod 看到调用。328* **来自托管设置的 `PreToolUse` hooks**:在第一个 mod 的 `tool.call` hook 之前运行,其中一个的块是最终的,因此没有 mod 看到调用。

302* **来自每个其他设置文件和插件的 `hooks/hooks.json` 的 `PreToolUse` hooks**:在最后一个 mod 调用 `next` 后运行,作为 Claude Code 自己的行为的一部分。回答 `tool.call` 而不调用 `next` 的 mod 会阻止它们运行,调用 `next` 的 mod 在它返回的结果中看到它们的决定。329* **来自每个其他设置文件和插件的 `hooks/hooks.json` 的 `PreToolUse` hooks**:在最后一个 mod 调用 `next` 后运行,作为 Claude Code 自己的行为的一部分。回答 `tool.call` 而不调用 `next` 的 mod 会阻止它们运行,调用 `next` 的 mod 在它返回的结果中看到它们的决定。

303 330 

304[`tool.check`](/docs/zh-CN/plugins/mods/reference#tools) 是 Claude Code 决定是否允许工具调用运行的事件。它在这些 hooks 和权限规则决定后触发,`next(e)` 解析为它们的决定。`tool.check` 上的 hook 可以返回不同的决定,例如 `{ decision: 'allow' }`,因此它可以批准第二组中的 hook 阻止的调用。[使用 hooks 扩展权限](/docs/zh-CN/permissions#extend-permissions-with-hooks)列出哪些决定对 mod 有效。331[`tool.check`](#approve-or-refuse-a-tool-call-before-the-user-is-asked) 在这些 hook 和权限规则做出决定后触发,因此其上的 hook 可以批准第二组中的 hook 所阻止的调用。

305 332 

306<h3 id="handle-a-hook-that-fails">333<h3 id="handle-a-hook-that-fails">

307 处理失败的 hook334 处理失败的 hook

Details

407 ```407 ```

408 408 

409 ```text theme={null}409 ```text theme={null}

410 Note: Type a note and press Enter ⏎ add410 Note: Type a note and press Enter

411 ```411 ```

412 </Tab>412 </Tab>

413</Tabs>413</Tabs>

414 414 

415此表列出了每个元素:415[界面图库](/docs/zh-CN/plugins/mods/gallery)提供了大多数元素的示例和屏幕截图。此表列出了每个元素:

416 416 

417| 元素 | 它绘制什么 | 位置 |417| 元素 | 它绘制什么 | 位置 |

418| :- | :- | :- |418| :- | :- | :- |

Details

72* **在不询问你的情况下行动**:在被询问之前批准工具调用72* **在不询问你的情况下行动**:在被询问之前批准工具调用

73* **花费你的使用量**:在你的计划或 API 密钥上调用模型73* **花费你的使用量**:在你的计划或 API 密钥上调用模型

74 74 

75Mod 不在沙箱中运行。如果您启用[沙箱隔离](/docs/zh-CN/sandboxing),沙箱会隔离 Claude 运行的 Bash 命令,而 mod 启动的进程在沙箱之外运行。

76 

75批准工具调用的 mod 可以批准 `ask` 规则会提示的工具调用,或你自己的 `PreToolUse` hooks 阻止的工具调用。[使用 hooks 扩展权限](/docs/zh-CN/permissions#extend-permissions-with-hooks)列出了这样的 mod 可以批准的内容,包括它何时可以批准 `deny` 规则拒绝的调用。77批准工具调用的 mod 可以批准 `ask` 规则会提示的工具调用,或你自己的 `PreToolUse` hooks 阻止的工具调用。[使用 hooks 扩展权限](/docs/zh-CN/permissions#extend-permissions-with-hooks)列出了这样的 mod 可以批准的内容,包括它何时可以批准 `deny` 规则拒绝的调用。

76 78 

77Mod 可以重新设置 Claude Code 界面的大部分样式,但不能重新设置权限提示。它不能改变提示显示给你的内容。79Mod 可以重新设置 Claude Code 界面的大部分样式,但不能重新设置权限提示。它不能改变提示显示给你的内容。


102 104 

103如果你通过组织使用 Claude Code,管理员也可以限制哪些 mods 加载。管理员从[停止用户安装的 mods 加载](/docs/zh-CN/plugins/mods/admin#stop-user-installed-mods-from-loading)开始。105如果你通过组织使用 Claude Code,管理员也可以限制哪些 mods 加载。管理员从[停止用户安装的 mods 加载](/docs/zh-CN/plugins/mods/admin#stop-user-installed-mods-from-loading)开始。

104 106 

107`disableAllHooks` 和您组织的 `allowManagedModsOnly` 会停止 mod,但保留其插件的其余部分:插件保持安装状态,其 skill、命令、Agent 和 MCP 服务器照常加载。其他设置和标志的影响范围更广。[`disableAllHooks`](/docs/zh-CN/settings-reference#disableallhooks) 和[`allowManagedHooksOnly` 下运行的内容](/docs/zh-CN/settings-reference#what-runs-under-allowmanagedhooksonly)列出了每一项对插件及其设置 hook 的影响。

108 

105要了解 mods 是否可以为你加载,请参阅[检查 mods 是否可以加载](/docs/zh-CN/plugins/mods/troubleshoot#check-whether-mods-can-load)。109要了解 mods 是否可以为你加载,请参阅[检查 mods 是否可以加载](/docs/zh-CN/plugins/mods/troubleshoot#check-whether-mods-can-load)。

106 110 

107<Note>111<Note>

Details

56 56 

57读取冒号后的原因。[拒绝消息](#refusal-messages) 部分列出了每一个。如果日志中没有这样的行,请逐一处理此组中的其他条目。57读取冒号后的原因。[拒绝消息](#refusal-messages) 部分列出了每一个。如果日志中没有这样的行,请逐一处理此组中的其他条目。

58 58 

59某些设置会阻止 mod,同时让其插件的其余部分继续工作。[启用或关闭 mod](/docs/zh-CN/plugins/mods/overview#turn-mods-on-or-off) 列出了这些设置。

60 

59<h3 id="a-claude-p-run-prints-hooks-module-not-loaded">61<h3 id="a-claude-p-run-prints-hooks-module-not-loaded">

60 `claude -p` 运行打印 `hooks module not loaded`62 `claude -p` 运行打印 `hooks module not loaded`

61</h3>63</h3>

Details

37 37 

38Claude Code 的[权限规则](/docs/zh-CN/permissions)和[沙箱](/docs/zh-CN/sandboxing)涵盖 Claude 进行的工具调用,而不是插件自己运行的代码:38Claude Code 的[权限规则](/docs/zh-CN/permissions)和[沙箱](/docs/zh-CN/sandboxing)涵盖 Claude 进行的工具调用,而不是插件自己运行的代码:

39 39 

40* **Hooks 和服务器进程**:命令 hooks 使用您的完整用户权限执行 shell 命令。Claude Code 在沙箱外运行 hooks 和 MCP 服务器。40* **Hooks 和服务器进程**:命令 hooks 使用您的完整用户权限执行 shell 命令。Claude Code 在沙箱外运行 hook、MCP 服务器以及 [mod](/docs/zh-CN/plugins/mods/overview#what-a-mod-can-reach) 启动的进程。

41* **Claude 的工具调用**:对插件的 MCP 工具之一的调用,以及运行插件 `bin/` 中的可执行文件的 Bash 命令,都是工具调用,所以您的权限规则适用于它们。关于 mod 对工具调用可以做什么,请参阅[决定是否信任 mod](/docs/zh-CN/plugins/mods/overview#decide-whether-to-trust-a-mod)。41* **Claude 的工具调用**:对插件的 MCP 工具之一的调用,以及运行插件 `bin/` 中的可执行文件的 Bash 命令,都是工具调用,所以您的权限规则适用于它们。关于 mod 对工具调用可以做什么,请参阅[决定是否信任 mod](/docs/zh-CN/plugins/mods/overview#decide-whether-to-trust-a-mod)。

42 42 

43安装插件也会启用它,除非其清单或市场条目设置了 [`defaultEnabled: false`](/docs/zh-CN/plugins/install#choose-an-install-scope),并且您自己没有启用它。43安装插件也会启用它,除非其清单或市场条目设置了 [`defaultEnabled: false`](/docs/zh-CN/plugins/install#choose-an-install-scope),并且您自己没有启用它。

Details

460* **您发布插件**:重新计算 URL 提供的确切文件的摘要,并更新市场条目中的 `sha256`。使用 `shasum -a 256 my-plugin.zip`,或在 PowerShell 中使用 `Get-FileHash -Algorithm SHA256 my-plugin.zip`460* **您发布插件**:重新计算 URL 提供的确切文件的摘要,并更新市场条目中的 `sha256`。使用 `shasum -a 256 my-plugin.zip`,或在 PowerShell 中使用 `Get-FileHash -Algorithm SHA256 my-plugin.zip`

461* **您安装插件**:在会话中运行 `/plugin marketplace update <name>` 以刷新目录以防条目已更正,然后重试安装。如果刷新后摘要仍然不同,请在安装前询问市场所有者他们引脚了哪个文件461* **您安装插件**:在会话中运行 `/plugin marketplace update <name>` 以刷新目录以防条目已更正,然后重试安装。如果刷新后摘要仍然不同,请在安装前询问市场所有者他们引脚了哪个文件

462 462 

463<h3 id="an-npm-plugin-source-must-name-a-registry-package">

464 `An npm plugin source must name a registry package`

465</h3>

466 

467市场条目使用 [`npm` 源](/docs/zh-CN/plugins/marketplace-reference#npm-plugin-source) 的插件安装、更新或加载失败,且消息中包含这句话。Claude Code 在获取任何内容之前检查了该条目的 `package` 值并拒绝了它。消息会指出该值和原因:

468 

469```text theme={null}

470"github:acme/formatter" was not installed: it is not an http or https link. An npm plugin source must name a registry package (name or name@version) or link to a tarball file. For a plugin in a git repository, use a "github", "url" or "git-subdir" source.

471```

472 

473市场的所有者必须更改该条目:

474 

475* **如果那是您**:将 `package` 更改为 [npm 插件源参考](/docs/zh-CN/plugins/marketplace-reference#npm-plugin-source) 接受的值,或将该条目切换为 `github`、`url` 或 `git-subdir` 源

476* **如果不是您**:向市场所有者报告消息

477 

463<h3 id="marketplace-is-registered-from-an-untrusted-source">478<h3 id="marketplace-is-registered-from-an-untrusted-source">

464 `Marketplace "<name>" is registered from an untrusted source`479 `Marketplace "<name>" is registered from an untrusted source`

465</h3>480</h3>

Details

220 220 

221这些命令在服务器停止后约四小时内有效。之后,运行 `claude remote-control` 以启动新会话。如果您在此期间存档了会话,`--continue` 和 `--session-id` 在 Claude Code v2.1.228 或更高版本上取消存档它。221这些命令在服务器停止后约四小时内有效。之后,运行 `claude remote-control` 以启动新会话。如果您在此期间存档了会话,`--continue` 和 `--session-id` 在 Claude Code v2.1.228 或更高版本上取消存档它。

222 222 

223要恢复您使用 `claude --remote-control` 或 `/remote-control` 启动的会话,请使用 `claude --continue` 或 `claude --resume` 恢复对话。如果远程控制无法重新连接,请参阅[无法重新连接到您的远程控制会话](#couldnt-reconnect-to-your-remote-control-session)。223要恢复您使用 `claude --remote-control` 或 `/remote-control` 启动的会话,请使用 `claude --continue` 或 `claude --resume` 恢复对话。有关恢复的对话以何种权限模式启动,请参阅[恢复时的权限模式](/docs/zh-CN/sessions#permission-mode-on-resume)。如果 Remote Control 无法重新连接,请参阅[无法重新连接到您的 Remote Control 会话](#couldnt-reconnect-to-your-remote-control-session)。

224 224 

225如果您在第一个终端仍然打开远程控制的情况下在第二个终端中恢复对话,Claude Code 会在第二个终端中打印 `Remote Control not started here` 通知,并改为在那里关闭远程控制,而不是从第一个终端取走会话。在第二个终端中运行 `/remote-control` 以将远程控制移动到它。225如果您在第一个终端仍然打开远程控制的情况下在第二个终端中恢复对话,Claude Code 会在第二个终端中打印 `Remote Control not started here` 通知,并改为在那里关闭远程控制,而不是从第一个终端取走会话。在第二个终端中运行 `/remote-control` 以将远程控制移动到它。

226 226 

Details

107 107 

108* 您的项目目录。108* 您的项目目录。

109* Claude Code 的配置路径 `~/.claude` 和 `~/.claude.json`。109* Claude Code 的配置路径 `~/.claude` 和 `~/.claude.json`。

110* `/tmp`,Claude Code 在其中写入运行时文件。110* Claude Code 写入运行时文件的目录。除非您设置了 [`CLAUDE_CODE_TMPDIR`](/docs/zh-CN/env-vars),否则该目录为:

111 * **Linux 和 WSL2**:`/tmp`

112 * **macOS**:`/private/tmp`。`/tmp` 是指向该目录的符号链接,而 Seatbelt 检查的是解析后的路径。

111 113 

112允许您的会话需要的网络域:114允许您的会话需要的网络域:

113 115 

sandboxing.md +1 −0

Details

800* **计算机使用**:当 Claude 打开应用程序并控制你的屏幕时,它在你的实际桌面上运行,而不是在隔离的环境中。每个应用程序的权限提示控制每个应用程序。请参阅 [CLI 中的计算机使用](/docs/zh-CN/computer-use) 或 [Desktop 中的计算机使用](/docs/zh-CN/desktop#let-claude-use-your-computer)。800* **计算机使用**:当 Claude 打开应用程序并控制你的屏幕时,它在你的实际桌面上运行,而不是在隔离的环境中。每个应用程序的权限提示控制每个应用程序。请参阅 [CLI 中的计算机使用](/docs/zh-CN/computer-use) 或 [Desktop 中的计算机使用](/docs/zh-CN/desktop#let-claude-use-your-computer)。

801* **环境变量**:沙箱化 Bash 命令默认继承父进程环境,包括在那里设置的任何凭证。使用 [`sandbox.credentials`](#protect-credentials) 为沙箱化命令取消设置或掩盖特定变量,或设置 [`CLAUDE_CODE_SUBPROCESS_ENV_SCRUB`](/docs/zh-CN/env-vars) 以从所有子进程中删除凭证。801* **环境变量**:沙箱化 Bash 命令默认继承父进程环境,包括在那里设置的任何凭证。使用 [`sandbox.credentials`](#protect-credentials) 为沙箱化命令取消设置或掩盖特定变量,或设置 [`CLAUDE_CODE_SUBPROCESS_ENV_SCRUB`](/docs/zh-CN/env-vars) 以从所有子进程中删除凭证。

802* **子代理**:[subagents](/docs/zh-CN/sub-agents) 在与父会话相同的进程中运行,并使用相同的沙箱配置。当在父会话中启用沙箱时,子代理内的 Bash 命令被沙箱化。802* **子代理**:[subagents](/docs/zh-CN/sub-agents) 在与父会话相同的进程中运行,并使用相同的沙箱配置。当在父会话中启用沙箱时,子代理内的 Bash 命令被沙箱化。

803* **Mods**:[mod](/docs/zh-CN/plugins/mods/overview) 是一种在 Claude Code 内运行自身代码的插件,由 mod 启动的进程在沙箱外运行。请参阅 [mod 可以访问的内容](/docs/zh-CN/plugins/mods/overview#what-a-mod-can-reach)。

803 804 

804<Warning>805<Warning>

805 有效的沙箱需要同时进行文件系统和网络隔离。没有网络隔离,被破坏的代理可能会泄露敏感文件,如 SSH 密钥。没有文件系统隔离,无论是来自宽泛的策略还是来自 [disabling the filesystem layer](#disable-filesystem-isolation),被破坏的代理可能会后门系统资源以获得网络访问权限。当你扩大默认值时,检查 `allowWrite` 路径、广泛的 `allowedDomains` 条目或 `excludedCommands` 异常是否不会撤销另一侧的限制。806 有效的沙箱需要同时进行文件系统和网络隔离。没有网络隔离,被破坏的代理可能会泄露敏感文件,如 SSH 密钥。没有文件系统隔离,无论是来自宽泛的策略还是来自 [disabling the filesystem layer](#disable-filesystem-isolation),被破坏的代理可能会后门系统资源以获得网络访问权限。当你扩大默认值时,检查 `allowWrite` 路径、广泛的 `allowedDomains` 条目或 `excludedCommands` 异常是否不会撤销另一侧的限制。

Details

4 4 

5# 在自托管环境中自定义会话5# 在自托管环境中自定义会话

6 6 

7> 使用包装脚本在自托管环境会话中自定义每个会话的凭证、生命周期钩子和按需运行程序生成。7> 使用包装脚本在自托管环境会话中自定义每个会话的凭据、生命周期 hook 和按需运行程序生成。

8 8 

9<Note>9<Note>

10 自托管环境在 Team 和 Enterprise 计划中处于公开测试阶段;[Owner](/docs/zh-CN/cloud-environments#organization-shared-environments) 通过在 [**Cloud environments** 管理页面](https://claude.ai/admin-settings/cloud-environments) 上打开 **Allow self-hosted environments** 来启用它们。本页面假设您已有一个正常运行的运行程序;有关设置,请参阅 [quickstart](/docs/zh-CN/self-hosted-environments-quickstart),有关 fleet recipes,请参阅 [Deploy to production](/docs/zh-CN/self-hosted-environments-deploy)。10 自托管环境在 Team 和 Enterprise 计划中处于公开测试阶段;[Owner](/docs/zh-CN/cloud-environments#organization-shared-environments) 通过在 [**Cloud environments** 管理页面](https://claude.ai/admin-settings/cloud-environments) 上打开 **Allow self-hosted environments** 来启用它们。本页面假设您已有一个正常运行的运行程序;有关设置,请参阅[快速入门](/docs/zh-CN/self-hosted-environments-quickstart),有关集群部署方案,请参阅[部署到生产环境](/docs/zh-CN/self-hosted-environments-deploy)。

11</Note>11</Note>

12 12 

13[self-hosted environment](/docs/zh-CN/self-hosted-environments) 在您自己的基础设施上运行 Claude Code [cloud sessions](/docs/zh-CN/claude-code-on-the-web),由您部署的运行程序进程执行。在没有配置的情况下,该运行程序克隆会话的存储库,生成 Claude Code,然后进行清理。本页面适用于操作运行程序的平台工程师:它涵盖了当这些默认值不适用时的扩展点,从每个会话的凭证配置到完全替换检出。包装脚本和钩子作为运行程序主机上的可执行文件运行,该主机是 Linux 或 macOS,本页面上的示例假设使用 POSIX shell。13[自托管环境](/docs/zh-CN/self-hosted-environments)在您自己的基础设施上运行 Claude Code [云端会话](/docs/zh-CN/claude-code-on-the-web),由您部署的运行程序进程执行。在没有配置的情况下,该运行程序克隆会话的仓库,生成 Claude Code,然后进行清理。本页面适用于操作运行程序的平台工程师:它涵盖了当这些默认值不适用时的扩展点,从每个会话的凭据配置到完全替换检出。包装脚本和 hook 作为运行程序主机上的可执行文件运行,该主机是 Linux 或 macOS,本页面上的示例假设使用 POSIX shell。

14 14 

15本页面上的一些钩子环境变量仍然使用 `pool`,例如 `CLAUDE_RUNNER_POOL_ID`;CLI 标志和环境变量名称使用 `environment`,例如 `--environment-secret-file`。15本页面上的一些 hook 环境变量仍然使用 `pool`,例如 `CLAUDE_RUNNER_POOL_ID`;CLI 标志和环境变量名称使用 `environment`,例如 `--environment-secret-file`。

16 16 

17<h2 id="wrapper-scripts">17<h2 id="wrapper-scripts">

18 包装脚本18 包装脚本

19</h2>19</h2>

20 20 

21当每个会话需要运行器无法自行完成的设置时,使用包装脚本:为会话创建者配置作用域的短期凭证、导出特定于环境的密钥、准备语言工具链或围绕子进程应用资源限制。运行器每个会话启动一次您的包装脚本,而不是 Claude Code 二进制文件。通过 `exec` 进入 `$CLAUDE_RUNNER_CLAUDE_BIN`(运行器自己的二进制文件)来结束包装脚本,以便信号和退出代码正确传播。21当每个会话需要运行器无法自行完成的设置时,使用包装脚本:为会话创建者配置作用域的短期凭证、导出特定于环境的密钥、准备语言工具链或围绕子进程应用资源限制。运行器每个会话启动一次您的包装脚本,而不是 Claude Code 二进制文件。通过 `exec` 进入 `$CLAUDE_RUNNER_CLAUDE_BIN`(运行器自己的二进制文件)来结束包装脚本,以便信号和退出码正确传播。

22 22 

23启动运行器时,使用 `--exec-path` 或 `SELF_HOSTED_RUNNER_EXEC_PATH` 指向包装脚本:23启动运行器时,使用 `--exec-path` 或 `SELF_HOSTED_RUNNER_EXEC_PATH` 指向包装脚本:

24 24 


35| `CLAUDE_RUNNER_CLIENT_PLATFORM` | 创建会话的客户端表面,例如 `web_claude_ai`、`desktop_app`、`ios`、`claude_code_cli` 或 `scheduled_trigger`。Anthropic 在会话创建时记录该值一次,因此包装脚本和每个生命周期钩子都看到相同的值。仅将其用于采用分析和标记,不用作授权信号。当会话没有记录或识别的表面时未设置,因此在 `set -u` 下将其引用为 `${CLAUDE_RUNNER_CLIENT_PLATFORM:-}`。需要 Claude Code v2.1.229 或更高版本。 |35| `CLAUDE_RUNNER_CLIENT_PLATFORM` | 创建会话的客户端表面,例如 `web_claude_ai`、`desktop_app`、`ios`、`claude_code_cli` 或 `scheduled_trigger`。Anthropic 在会话创建时记录该值一次,因此包装脚本和每个生命周期钩子都看到相同的值。仅将其用于采用分析和标记,不用作授权信号。当会话没有记录或识别的表面时未设置,因此在 `set -u` 下将其引用为 `${CLAUDE_RUNNER_CLIENT_PLATFORM:-}`。需要 Claude Code v2.1.229 或更高版本。 |

36| `CLAUDE_RUNNER_CLAUDE_BIN` | 运行器自己的 Claude Code 二进制文件的绝对路径。使用 `exec "$CLAUDE_RUNNER_CLAUDE_BIN" "$@"` 结束您的包装脚本,以移交到固定的二进制文件,而无需硬编码安装路径。 |36| `CLAUDE_RUNNER_CLAUDE_BIN` | 运行器自己的 Claude Code 二进制文件的绝对路径。使用 `exec "$CLAUDE_RUNNER_CLAUDE_BIN" "$@"` 结束您的包装脚本,以移交到固定的二进制文件,而无需硬编码安装路径。 |

37| `CLAUDE_CODE_REMOTE_SESSION_ID` | 会话 ID,采用标记的 `cse_...` 形式。这与[生命周期钩子](#lifecycle-hooks)以 `session_...` 形式在 `CLAUDE_RUNNER_SESSION_ID` 中看到的是同一个会话;UUID 变量在两者之间匹配,将 `cse_` 前缀替换为 `session_` 会产生会话 URL 中显示的 ID。 |37| `CLAUDE_CODE_REMOTE_SESSION_ID` | 会话 ID,采用标记的 `cse_...` 形式。这与[生命周期钩子](#lifecycle-hooks)以 `session_...` 形式在 `CLAUDE_RUNNER_SESSION_ID` 中看到的是同一个会话;UUID 变量在两者之间匹配,将 `cse_` 前缀替换为 `session_` 会产生会话 URL 中显示的 ID。 |

38| `CLAUDE_CODE_REMOTE_SESSION_UUID` | 相同的会话 ID,采用规范 UUID 形式。 |38| `CLAUDE_CODE_REMOTE_SESSION_UUID` | 相同的会话 ID,采用规范 UUID 形式,供以 UUID 作为键的系统使用。 |

39| `CLAUDE_SESSION_INGRESS_TOKEN_FILE` | 绝对路径,指向保存当前会话 JWT 的按会话文件,在令牌刷新时保持最新。Shell 子进程在下载用户添加到会话的附件时从中读取其 `Authorization` 标头。`exec` 自动保留该变量;重建子进程环境的包装脚本必须携带该变量,否则附件下载会无声地停止工作。 |39| `CLAUDE_SESSION_INGRESS_TOKEN_FILE` | 绝对路径,指向保存当前会话 JWT 的按会话文件,在令牌刷新时保持最新。Shell 子进程在下载用户添加到会话的附件时从中读取其 `Authorization` 标头。`exec` 自动保留该变量;重建子进程环境的包装脚本必须携带该变量,否则附件下载会无声地停止工作。 |

40| `CLAUDE_CONFIG_DIR` | 按会话 Claude 配置目录,在会话启动时从运行器在启动时捕获的运行器主机配置快照中写入;请参阅 [Permissions and tool approval](#permissions-and-tool-approval)。此处的写入仅限于此会话。 |40| `CLAUDE_CONFIG_DIR` | 按会话 Claude 配置目录,在会话启动时从运行器在启动时捕获的运行器主机配置快照中写入;请参阅 [Permissions and tool approval](#permissions-and-tool-approval)。此处的写入仅限于此会话。除非您使用 [`--remove-session-state`](/docs/zh-CN/self-hosted-environments-reference#runner-cli-flags) 启动运行器,否则会话结束后该目录仍会保留在 `<base-dir>/_sessions/` 下;请参阅 [Reuse a pre-warmed checkout](/docs/zh-CN/self-hosted-environments-deploy#reuse-a-pre-warmed-checkout)。 |

41| `ANTHROPIC_BASE_URL` | 子进程将使用的 API 基础 URL,由控制平面按会话交付,通常为 `https://api.anthropic.com`。不要覆盖它:会话的推理凭证是 Anthropic 颁发的 OAuth 令牌,其他提供者不接受,因此自托管环境中的推理无法路由到其他地方。 |41| `ANTHROPIC_BASE_URL` | 子进程将使用的 API 基础 URL,由控制平面按会话交付,通常为 `https://api.anthropic.com`。不要覆盖它:会话的推理凭证是 Anthropic 颁发的 OAuth 令牌,其他提供者不接受,因此自托管环境中的推理无法路由到其他地方。 |

42| `CLAUDE_CODE_OAUTH_TOKEN` | 子进程用于模型推理的短期 OAuth 访问令牌,作用域仅限于模型推理和文件上传,生命周期约为 30 分钟。运行器在过期前重新生成它,并通过子进程的 stdin 交付轮换,因此不 [keep stdin attached](#keep-stdin-and-file-descriptor-3-attached) 的包装脚本只看到初始值。不要依赖您的组织 IP 允许列表来限制此令牌的使用:将其视为持有者凭证,如果泄露,大约 30 分钟内仍可使用,不要记录它、写入磁盘或在会话容器外转发它。 |42| `CLAUDE_CODE_OAUTH_TOKEN` | 子进程用于模型推理的短期 OAuth 访问令牌,作用域仅限于模型推理和文件上传,生命周期约为 30 分钟。运行器在过期前重新生成它,并通过子进程的 stdin 交付轮换,因此不 [keep stdin attached](#keep-stdin-and-file-descriptor-3-attached) 的包装脚本只看到初始值。不要依赖您的组织 IP 允许列表来限制此令牌的使用:将其视为持有者凭证,如果泄露,大约 30 分钟内仍可使用,不要记录它、写入磁盘或在会话容器外转发它。 |

43 43 


61 61 

62不要在包装脚本中关闭或重用文件描述符 3。重定向子进程的 stdout 和 stderr 是可以的。62不要在包装脚本中关闭或重用文件描述符 3。重定向子进程的 stdout 和 stderr 是可以的。

63 63 

64<h3 id="pass-the-system-prompt-flags-through">

65 透传系统提示词标志

66</h3>

67 

68Anthropic 控制平面为会话发送的系统提示词和追加系统提示词以文件路径的形式(而不是内联文本)到达您的包装脚本。运行器将每个提示词写入会话配置目录 `CLAUDE_CONFIG_DIR` 中的文件,并在您的包装脚本接收的参数中传递其路径,形式为 [`--system-prompt-file <path>` 或 `--append-system-prompt-file <path>`](/docs/zh-CN/cli-reference#system-prompt-flags)。

69 

70Claude Code v2.1.281 或更高版本上的运行器以文件形式传递提示词。在 v2.1.281 之前,运行器以 `--system-prompt <text>` 和 `--append-system-prompt <text>` 的形式传递它们。

71 

72在您的包装脚本或 [`command` hook](#command) 中,按如下方式处理这些标志:

73 

74* **透传它们**:使用 `exec "$CLAUDE_RUNNER_CLAUDE_BIN" "$@"` 结束包装脚本,这会将文件标志与其他所有参数一起转发。不要丢弃或改写它们。如果会话丢失了某个提示词文件标志,它将在没有控制平面为其发送的指令的情况下运行。

75* **在 v2.1.281 或更高版本的运行器上,您追加的文件标志会替换服务器的标志,而不会叠加**:每个提示词文件标志只接受单个值,Claude Code 保留最后一次出现的值,因此如果您在 `"$@"` 之后追加 `--append-system-prompt-file <path>`,您文件的内容将替换服务器追加的指令。要在服务器指令之上添加指令,请将其放入运行器镜像的 `CLAUDE.md` 中,运行器会将其[植入每个会话的用户级配置](#how-each-session’s-config-is-assembled)。

76 

64<h3 id="provision-credentials-scoped-to-the-session-creator">77<h3 id="provision-credentials-scoped-to-the-session-creator">

65 配置作用域限定为会话创建者的凭证78 配置作用域限定为会话创建者的凭证

66</h3>79</h3>


81exec "$CLAUDE_RUNNER_CLAUDE_BIN" "$@"94exec "$CLAUDE_RUNNER_CLAUDE_BIN" "$@"

82```95```

83 96 

84在提取的声明控制身份验证决策时,使用 `jq -re` 而不是 `jq -r`,以便缺失的声明以非零状态退出,而不是将字面字符串 `null` 传递给下游。由组织服务身份(例如机器人和代理会话)创建的会话携带 `agent:` 主题而不是 `user:`,因此此示例拒绝它们;如果您的环境为这些会话提供服务,请明确决定包装脚本是否为它们回退到默认凭证,而不是退出。当您的凭证交换需要 SSO 主题或电子邮件时,读取 `.act.attested_by.sub` 或 `.act.email` 并处理它们的缺失:令牌仅在创建表面记录它们时才携带它们,[CLI 分派的会话](/docs/zh-CN/self-hosted-environments-testing#run-the-test-loop) 可能两者都缺少。有关完整的声明参考和来自运行器外部服务的验证,请参阅 [Verify session identity](/docs/zh-CN/self-hosted-environments-identity)。97在提取的声明控制身份验证决策时,使用 `jq -re` 而不是 `jq -r`,以便缺失的声明以非零状态退出,而不是将字面字符串 `null` 传递给下游。由组织服务身份(例如机器人和 Agent 会话)创建的会话携带 `agent:` 主题而不是 `user:`,因此此示例拒绝它们;如果您的环境为这些会话提供服务,请明确决定包装脚本是否为它们回退到默认凭证,而不是退出。当您的凭证交换需要 SSO 主题或电子邮件时,读取 `.act.attested_by.sub` 或 `.act.email` 并处理它们的缺失:令牌仅在创建表面记录它们时才携带它们,[CLI 分派的会话](/docs/zh-CN/self-hosted-environments-testing#run-the-test-loop) 可能两者都缺少。有关完整的声明参考和来自运行器外部服务的验证,请参阅 [Verify session identity](/docs/zh-CN/self-hosted-environments-identity)。

85 98 

86<h2 id="lifecycle-hooks">99<h2 id="lifecycle-hooks">

87 生命周期钩子100 生命周期钩子


199 按需运行器212 按需运行器

200</h2>213</h2>

201 214 

202您可以为每个会话启动一个运行器,而不是运行固定的队列。编排器是一个单独的、无状态的子命令,它轮询 Anthropic 以获取生成请求(每个没有可用运行器的排队会话一个),并为每个运行您的 `spawn-runner` 钩子。您的钩子向您的平台提交工作负载:Kubernetes Job、EC2 实例、Nomad dispatch。215您可以为每个会话启动一个运行器,而不是运行固定的队列。编排器是一个单独的、无状态的子命令,它轮询 Anthropic 以获取生成请求(每个没有可用运行器的排队会话一个),并为每个请求运行您的 `spawn-runner` hook。您的 hook 向您的平台提交工作负载:Kubernetes Job、EC2 实例、Nomad dispatch。

203 216 

204按需运行器改进了凭证卫生。在固定队列上,环境密钥存在于每个运行器主机上,这是运行用户会话的同一主机。使用编排器,环境密钥仅保留在编排器主机上,该主机从不运行用户代码;每个生成的运行器接收一个单次使用的工作单,恰好注册一个运行器,然后过期。217按需运行器改进了凭据卫生。在固定队列上,环境密钥存在于每个运行器主机上,这是运行用户会话的同一主机。使用编排器,环境密钥仅保留在编排器主机上,该主机从不运行用户代码;每个生成的运行器接收一个单次使用的工作单,恰好注册一个运行器,然后过期。

205 218 

206要启动编排器,请传递环境密钥和包含可执行 `spawn-runner` 脚本的钩子目录:219要启动编排器,请传递环境密钥和包含可执行 `spawn-runner` 脚本的 hook 目录:

207 220 

208```bash theme={null}221```bash theme={null}

209claude self-hosted-runner orchestrator \222claude self-hosted-runner orchestrator \


211 --hooks-dir /etc/claude/hooks224 --hooks-dir /etc/claude/hooks

212```225```

213 226 

214编排器在轮询之间保持无状态,因此您可以针对同一环境运行两个或多个副本以实现可用性。每个生成请求由服务器端的恰好一个副本声称。所有副本必须使用相同的 `--expected-spawn-seconds` 值;请参阅 [hook contract](#the-spawn-runner-hook)。227编排器在轮询之间保持无状态,因此您可以针对同一环境运行两个或多个副本以实现可用性。每个生成请求由服务器端的恰好一个副本声称。所有副本必须使用相同的 `--expected-spawn-seconds` 值;请参阅 [hook 约定](#the-spawn-runner-hook)。

215 228 

216<h3 id="the-spawn-runner-hook">229<h3 id="the-spawn-runner-hook">

217 spawn-runner 钩子230 spawn-runner hook

218</h3>231</h3>

219 232 

220编排器为每个生成请求运行一次 `${hooks-dir}/spawn-runner`。钩子必须异步提交工作,不等待运行器启动,并在 `--hook-timeout`(默认 60 秒)内返回。钩子接收:233编排器为每个生成请求运行一次 `${hooks-dir}/spawn-runner`。hook 必须异步提交工作,不等待运行器启动,并在 `--hook-timeout`(默认 60 秒)内返回。hook 接收:

221 234 

222| 变量 | 描述 |235| 变量 | 描述 |

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

224| `CLAUDE_RUNNER_WORK_ORDER_FILE` | 包含新运行器注册的已签名工作单 JWT 的临时文件的路径。钩子退出后删除。不要记录文件的内容。 |237| `CLAUDE_RUNNER_WORK_ORDER_FILE` | 包含新运行器注册所用的已签名工作单 JWT 的临时文件的路径。hook 退出后删除。不要记录文件的内容。 |

225| `CLAUDE_RUNNER_ORDER_ID` | 不透明的幂等性密钥,每个生成请求唯一,对 Kubernetes 资源名称安全。将其用作您的配置器的去重密钥。 |238| `CLAUDE_RUNNER_ORDER_ID` | 不透明的幂等性密钥,每个生成请求唯一,对 Kubernetes 资源名称安全。仅将订单 ID 用作您的配置器的去重密钥。 |

226| `CLAUDE_RUNNER_SESSION_ID` | 此请求所针对的会话。对于预热请求为空,当设置 [`--min-idle`](/docs/zh-CN/self-hosted-environments-reference#orchestrator-cli-flags) 时启动待命运行器,在任何特定会话之前,因此不要假设变量已设置。 |239| `CLAUDE_RUNNER_SESSION_ID` | 此请求所针对的会话。该会话的每次重新请求都会重复此值,因此请将其用于日志记录和路由,而不要用作去重密钥。对于预热请求为空,预热请求在设置 [`--min-idle`](/docs/zh-CN/self-hosted-environments-reference#orchestrator-cli-flags) 时于任何特定会话之前启动待命运行器,因此不要假设变量已设置。 |

227| `CLAUDE_RUNNER_SESSION_UUID` | 相同的会话 ID,采用规范 UUID 形式。对于预热请求为空。 |240| `CLAUDE_RUNNER_SESSION_UUID` | 相同的会话 ID,采用规范 UUID 形式。对于预热请求为空。 |

228| `CLAUDE_RUNNER_ATTEMPT` | 此会话已有多少个生成请求。对于预热请求为 `0`。 |241| `CLAUDE_RUNNER_ATTEMPT` | 此会话已有多少个生成请求。对于预热请求为 `0`。 |

229| `CLAUDE_RUNNER_ORDER_SERVER_TIME` | 来自轮询响应的 HTTP `Date` 标头的服务器时间。当钩子验证工作单 JWT 的 `exp` 时,与此值进行比较而不是本地时钟,以容忍时钟偏差。当网关省略标头时为空。 |242| `CLAUDE_RUNNER_ORDER_SERVER_TIME` | 来自轮询响应的 HTTP `Date` 标头的服务器时间。当 hook 验证工作单 JWT 的 `exp` 时,与此值进行比较而不是本地时钟,以容忍时钟偏差。当网关省略标头时为空。 |

230| `CLAUDE_RUNNER_POOL_ID` | 新运行器应加入的环境的 ID,采用 `ccpool_...` 形式 |243| `CLAUDE_RUNNER_POOL_ID` | 新运行器应加入的环境的 ID,采用 `ccpool_...` 形式 |

231| `CLAUDE_RUNNER_ACCOUNT_ID` | 排队会话的帐户的标记 ID,用于按帐户路由、配额或退款。当不可用时为空,对于 Claude Tag 频道会话始终为空,这些会话没有帐户排队。 |244| `CLAUDE_RUNNER_ACCOUNT_ID` | 排队会话的帐户的标记 ID,用于按帐户路由、配额或退款。当不可用时为空,对于 Claude Tag 频道会话始终为空,这些会话没有帐户排队。 |

232| `CLAUDE_RUNNER_ACCOUNT_EMAIL` | 排队会话的帐户的电子邮件。当不可用时为空。将电子邮件视为个人可识别信息,不要记录它。 |245| `CLAUDE_RUNNER_ACCOUNT_EMAIL` | 排队会话的帐户的电子邮件。当不可用时为空。将电子邮件视为个人可识别信息,不要记录它。 |

233| `CLAUDE_RUNNER_PRIMARY_REPO_URL` | 会话的第一个 git 源的 URL,用于路由到具有该存储库预热的运行器。当会话没有 git 源时为空。 |246| `CLAUDE_RUNNER_PRIMARY_REPO_URL` | 会话的第一个 git 源的 URL,用于路由到已预热该仓库的运行器。当会话没有 git 源时为空。 |

234| `CLAUDE_RUNNER_PRIMARY_REPO_REVISION` | 会话的第一个 git 源的修订版本:分支、SHA 或标签。当未指定时为空。 |247| `CLAUDE_RUNNER_PRIMARY_REPO_REVISION` | 会话的第一个 git 源的修订版本:分支、SHA 或标签。当未指定时为空。 |

235| `CLAUDE_RUNNER_REPO_SOURCES` | 所有会话的 git 源的 `{url, revision}` 的 JSON 数组,用于在辅助存储库上路由的钩子。当没有源时为空。 |248| `CLAUDE_RUNNER_REPO_SOURCES` | 所有会话的 git 源的 `{url, revision}` 的 JSON 数组,用于根据辅助仓库进行路由的 hook。当没有源时为空。 |

236| `CLAUDE_RUNNER_CORRELATION_ID` | 在会话创建时提供的关联 ID,回显以便钩子可以将此工作单映射到创建会话的请求。当会话没有时为空。 |249| `CLAUDE_RUNNER_CORRELATION_ID` | 在会话创建时提供的关联 ID,回显以便 hook 可以将此工作单映射到创建会话的请求。当会话没有时为空。 |

237| `CLAUDE_RUNNER_CLIENT_PLATFORM` | 创建会话的客户端表面,例如 `web_claude_ai`、`desktop_app`、`ios` 或 `scheduled_trigger`,用于采用分析。当会话没有记录或识别的表面时未设置,对于预热请求也未设置;使用 `[ -n "${CLAUDE_RUNNER_CLIENT_PLATFORM:-}" ]` 检查它,这在 `set -u` 下保持安全。 |250| `CLAUDE_RUNNER_CLIENT_PLATFORM` | 创建会话的客户端使用入口,例如 `web_claude_ai`、`desktop_app`、`ios` 或 `scheduled_trigger`,用于采用分析。当会话没有记录或识别的使用入口时未设置,对于预热请求也未设置;使用 `[ -n "${CLAUDE_RUNNER_CLIENT_PLATFORM:-}" ]` 检查它,这在 `set -u` 下保持安全。 |

238 251 

239生成的运行器使用工作单代替环境密钥进行注册:252生成的运行器使用工作单代替环境密钥进行注册:

240 253 

241* **使用工作单启动它**:将 [`--environment-secret-file`](/docs/zh-CN/self-hosted-environments-reference#runner-cli-flags) 指向包含工作单 JWT 的文件,或将 `SELF_HOSTED_RUNNER_ENVIRONMENT_SECRET` 设置为 JWT 值。254* **使用工作单启动它**:将 [`--environment-secret-file`](/docs/zh-CN/self-hosted-environments-reference#runner-cli-flags) 指向包含工作单 JWT 的文件,或将 `SELF_HOSTED_RUNNER_ENVIRONMENT_SECRET` 设置为 JWT 值。

242* **在钩子退出前复制 JWT**:编排器在钩子退出后删除工作单文件,因此将 JWT 复制到您提交的工作负载中,例如生成的 Job 上的 Kubernetes Secret,而不是通过文件路径。255* **在 hook 退出前复制 JWT**:编排器在 hook 退出后删除工作单文件,因此将 JWT 复制到您提交的工作负载中,例如生成的 Job 上的 Kubernetes Secret,而不是传递文件路径。

243* **在生成的运行器上使用 `--capacity 1`**:会话绑定的工作单恰好注册一个绑定到该会话的运行器,因此更高的容量添加永远不会接收工作的插槽,运行器在启动时记录警告。256* **在生成的运行器上使用 `--capacity 1`**:会话绑定的工作单恰好注册一个绑定到该会话的运行器,因此更高的容量添加永远不会接收工作的插槽,运行器在启动时记录警告。

244* **预热工作单注册未绑定**:待命运行器未绑定到会话,并像固定队列运行器一样声称排队的工作。257* **预热工作单注册未绑定**:待命运行器未绑定到会话,并像固定队列运行器一样声称排队的工作。

245 258 

246合同有四个配置器不可知的规则:259约定有四个与配置器无关的规则:

247 260 

2481. **在 `CLAUDE_RUNNER_ORDER_ID` 上是幂等的。** 相同请求的重新交付必须最多生成一个运行器。从 ID 派生确定性资源名称,让您的平台拒绝重复。2611. **在 `CLAUDE_RUNNER_ORDER_ID` 上保持幂等。** 相同请求的重新交付必须最多生成一个运行器。从订单 ID 派生确定性资源名称,让您的平台拒绝重复。不要改为以 `CLAUDE_RUNNER_SESSION_ID` 作为键。会话的每次重新请求都携带相同的会话 ID 和新的订单 ID,因此按会话 ID 命名或去重的工作负载只会创建一次,之后该会话再也不会创建。

2492. **不要重试工作负载。** 一个订单 ID 意味着最多创建一个工作负载。如果运行器从不注册,Anthropic 在 `--expected-spawn-seconds` 后使用新订单 ID 重新请求。2622. **不要重试工作负载。** 一个订单 ID 意味着最多创建一个工作负载。如果运行器从不注册,Anthropic 在 `--expected-spawn-seconds` 后使用新订单 ID 重新请求。

2503. **使用退出代码合同。** 退出 0 表示已提交。退出 1 表示可重试失败;会话退避并被重新提供。退出 2 或更高表示不可重试;会话被阻止再次生成,直到 [Owner](/docs/zh-CN/cloud-environments#organization-shared-environments) 在环境的 **Activity** 标签中选择 **Retry**。在非零退出时,钩子的 stderr 尾部出现在那里作为失败原因,因此将可操作的错误写入 stderr,永远不要写密钥。对于预热请求,没有会话失败:编排器仅在本地记录非零退出,服务器在租约后重新请求生成。2633. **使用退出码约定。** 退出 0 表示已提交。退出 1 表示可重试失败;会话退避并被重新提供。退出 2 或更高表示不可重试;会话被阻止再次生成,直到 [Owner](/docs/zh-CN/cloud-environments#organization-shared-environments) 在环境的 **Activity** 标签中选择 **Retry**。在非零退出时,hook 的 stderr 尾部出现在那里作为失败原因,因此将可操作的错误写入 stderr,永远不要写密钥。对于预热请求,没有会话失败:编排器仅在本地记录非零退出,服务器在租约后重新请求生成。

2514. **将 `--expected-spawn-seconds` 设置为至少您的 p99 启动时间。** 这是服务器端租约。所有编排器副本必须使用相同的值。2644. **将 `--expected-spawn-seconds` 设置为至少您的 p99 启动时间。** 这是服务器端租约。所有编排器副本必须使用相同的值。

252 265 

253钩子写入 stdout 或 stderr 的所有内容都出现在编排器的日志中,凭证自动删除。如果会话保持排队,检查编排器的 `/healthz` 正文以获取队列计数,然后在 [**Cloud environments** 管理页面](https://claude.ai/admin-settings/cloud-environments) 上打开您的环境的 **Activity** 标签:在那里展开失败的会话以获取其生成错误,并选择 **Retry** 以重新请求它。266hook 写入 stdout 或 stderr 的所有内容都出现在编排器的日志中,凭据会自动脱敏。如果会话保持排队,检查编排器的 `/healthz` 正文以获取队列计数,然后在 [**Cloud environments** 管理页面](https://claude.ai/admin-settings/cloud-environments) 上打开您的环境的 **Activity** 标签:在那里展开失败的会话以获取其生成错误,并选择 **Retry** 以重新请求它。

267 

268如果会话保持排队,且 **Activity** 标签中没有生成错误,可能意味着 hook 以会话 ID 作为键。要确认这一点,请检查您的平台是否存在该会话第一次生成请求对应的工作负载,而重新请求却没有对应的工作负载。如果是这样,请改为以 `CLAUDE_RUNNER_ORDER_ID` 作为工作负载的键。

254 269 

255<h2 id="mcp-servers">270<h2 id="mcp-servers">

256 MCP 服务器271 MCP 服务器


267 282 

268Claude Code 还从其他源加载 MCP 服务器:283Claude Code 还从其他源加载 MCP 服务器:

269 284 

270* 企业范围的 [managed MCP file](/docs/zh-CN/managed-mcp) 在其标准系统路径:Linux 运行器主机上的 `/etc/claude-code/managed-mcp.json`,macOS 主机上的 `/Library/Application Support/ClaudeCode/managed-mcp.json`。将其用于锁定的队列,其中只有管理员列出的服务器可能加载。有关优先级规则,请参阅 [exclusive control with managed-mcp.json](/docs/zh-CN/managed-mcp#exclusive-control-with-managed-mcp-json)。当此文件在运行器主机上时,Claude Code 跳过 Anthropic 的控制平面交付给会话的 MCP 服务器(包括 claude.ai 连接器),并在会话子进程的 stderr 上命名它们,运行器在 `debug` 日志级别记录。在 v2.1.229 之前,这些会话在启动时以 `You cannot dynamically configure MCP servers when an enterprise MCP config is present` 退出。285* 企业作用域的 [managed MCP file](/docs/zh-CN/managed-mcp) 在其标准系统路径:Linux 运行器主机上的 `/etc/claude-code/managed-mcp.json`,macOS 主机上的 `/Library/Application Support/ClaudeCode/managed-mcp.json`。将其用于锁定的队列,其中只有管理员列出的服务器可能加载。有关优先级规则,请参阅 [exclusive control with managed-mcp.json](/docs/zh-CN/managed-mcp#exclusive-control-with-managed-mcp-json)。当此文件在运行器主机上时,Claude Code 跳过 Anthropic 的控制平面交付给会话的 MCP 服务器(包括 claude.ai 连接器),并在会话子进程的 stderr 上的警告中列出它们的名称,运行器在 `debug` 日志级别记录该警告。在 v2.1.229 之前,这些会话在启动时以 `You cannot dynamically configure MCP servers when an enterprise MCP config is present` 退出。

271* 运行器主机上 [managed settings](/docs/zh-CN/managed-settings) 中的 [`managedMcpServers`](/docs/zh-CN/settings-reference#managedmcpservers) 密钥:提供 HTTP 和 SSE 服务器而不获得独占控制,因此来自其他源的服务器仍然加载。需要 Claude Code v2.1.259 或更高版本。286* 运行器主机上 [managed settings](/docs/zh-CN/managed-settings) 中的 [`managedMcpServers`](/docs/zh-CN/settings-reference#managedmcpservers) 密钥:提供 HTTP 和 SSE 服务器而不获得独占控制,因此来自其他源的服务器仍然加载。需要 Claude Code v2.1.259 或更高版本。

272* `<repo>/.mcp.json`:项目范围。将文件提交到存储库;其服务器在云会话中自动批准。287* `<repo>/.mcp.json`:项目作用域。将文件提交到仓库;其服务器在云端会话中自动批准。

273 288 

274当为您的组织启用连接器交付时,Anthropic 的控制平面将您在 claude.ai 上配置的连接器交付给通过服务器提供的 MCP 配置路由的交互式创建的会话,通过 `api.anthropic.com` 路由。以编程方式创建的会话(例如 [CLI dispatches](/docs/zh-CN/self-hosted-environments-testing#run-the-test-loop))不接收连接器交付;通过本节列出的任何其他源为它们提供 MCP 服务器。子进程的 OAuth 令牌不携带直接获取连接器的作用域,因此子进程不尝试该获取本身;交付是服务器驱动的。289当为您的组织启用连接器交付时,Anthropic 的控制平面将您在 claude.ai 上配置的连接器通过服务器提供的 MCP 配置交付给交互式创建的会话,通过 `api.anthropic.com` 路由。以编程方式创建的会话(例如 [CLI dispatches](/docs/zh-CN/self-hosted-environments-testing#run-the-test-loop))不接收连接器交付;请改为通过本节列出的任何其他源为它们提供 MCP 服务器。子进程的 OAuth 令牌不携带直接获取连接器的作用域,因此子进程不尝试该获取本身;交付是服务器驱动的。

275 290 

276`settings.json` 不携带 MCP 服务器定义,设置架构中没有顶级 `mcpServers` 字段。在托管设置中,使用 [`managedMcpServers`](/docs/zh-CN/settings-reference#managedmcpservers) 密钥提供服务器。291`settings.json` 不携带 MCP 服务器定义,设置 schema 中没有顶级 `mcpServers` 字段。在托管设置中,请改用 [`managedMcpServers`](/docs/zh-CN/settings-reference#managedmcpservers) 密钥提供服务器。

277 292 

278会话继承运行器的环境,因此在那里设置 [`ENABLE_TOOL_SEARCH`](/docs/zh-CN/mcp#scale-with-mcp-tool-search) 以控制运行器生成的每个会话的 MCP 工具搜索;MCP 页面涵盖了这些值。293会话继承运行器的环境,因此在那里设置 [`ENABLE_TOOL_SEARCH`](/docs/zh-CN/mcp#scale-with-mcp-tool-search) 以控制运行器生成的每个会话的 MCP 工具搜索;MCP 页面涵盖了这些值。

279 294 

295<h3 id="turn-off-built-in-session-tools">

296 关闭内置会话工具

297</h3>

298 

299Anthropic 的控制平面会将其自己的 MCP 服务器(名为 Claude Code Remote)附加到云端会话。Claude 使用该服务器的工具来安排 [Routine](/docs/zh-CN/routines)、启动和引导其他云端会话、附加更多仓库,以及跟踪 Pull Request 活动。

300 

301要关闭整个服务器,请在设置中添加一条[服务器级拒绝规则](/docs/zh-CN/permissions#mcp)。控制平面会根据会话的创建方式,以三个名称之一注册该服务器。Claude Code 会精确匹配规则中的名称(包括大小写),因此请按如下所示为每个名称各写一条规则:

302 

303```json theme={null}

304{

305 "permissions": {

306 "deny": [

307 "mcp__Claude_Code_Remote",

308 "mcp__claude-code-remote",

309 "mcp__bf7c680d-5fdc-5ef4-b4a0-abadb619bf0a"

310 ]

311 }

312}

313```

314 

315指定整个服务器的规则也会覆盖该服务器之后新增的工具。要关闭某一个工具而保留其余工具,请在每条规则后追加两个下划线和工具名称,例如 `mcp__Claude_Code_Remote__add_repo`。如果要完全阻止该服务器连接,而不只是移除其工具,请改为将这三个名称(不带 `mcp__` 前缀)作为 `serverName` 条目添加到 [`deniedMcpServers`](/docs/zh-CN/managed-mcp#policy-based-control-with-allowlists-and-denylists) 下。

316 

317将这些规则放在[服务器托管设置](/docs/zh-CN/server-managed-settings)中,即可在不更改运行器的情况下作用于每个会话;也可以放在运行器上的 `~/.claude/settings.json` 中。[权限和工具批准](#permissions-and-tool-approval)说明了运行器上的设置如何到达会话。

318 

319要确认规则已生效,请在该环境上启动一个会话,并要求 Claude 列出其 MCP 工具。Claude Code 会从 Claude 的上下文中移除被拒绝的工具,因此这些被拒绝的工具不会出现在其回答中。

320 

280<h2 id="prompt-sessions-to-push-their-work">321<h2 id="prompt-sessions-to-push-their-work">

281 提示会话推送其工作322 提示会话推送其工作

282</h2>323</h2>


388 权限和工具批准429 权限和工具批准

389</h2>430</h2>

390 431 

391自托管会话没有连接的终端,因此未回答的权限提示会停止轮次,直到用户在 UI 中响应。Anthropic 的控制平面使用工作负载发送每个会话的工具列表和权限规则;默认配置预批准例行工具调用(包括 `Bash`),云会话 [pre-approve file edits regardless of mode](/docs/zh-CN/permission-modes#switch-permission-modes)。没有任何东西预批准的调用通过会话 UI 提示。432自托管会话没有连接的终端,因此未回答的权限提示会使当前轮次停滞,直到用户在 UI 中响应。Anthropic 的控制平面随工作负载一起发送每个会话的工具列表和权限规则;默认配置预批准常规工具调用(包括 `Bash`),并且云端会话[无论处于何种模式都会预批准文件编辑](/docs/zh-CN/permission-modes#switch-permission-modes)。任何未被预批准的调用都会通过会话 UI 进行提示。

392 433 

393<Note>434<Note>

394 仅在会话容器运行 [default-deny network egress](/docs/zh-CN/self-hosted-environments-deploy#default-deny-egress) 和 [hardening section](/docs/zh-CN/self-hosted-environments-deploy#harden-your-deployment) 中其余部分的环境上固定自动模式。例行工具调用(包括 `Bash` 网络请求)在默认预批准工具集和自动模式中都无需人工干预运行,因此网络边界是限制这些调用可以到达的位置的原因。435 仅在会话容器运行时启用了[默认拒绝网络出口](/docs/zh-CN/self-hosted-environments-deploy#default-deny-egress)并落实了[加固部分](/docs/zh-CN/self-hosted-environments-deploy#harden-your-deployment)中其余措施的环境上固定自动模式。在默认预批准工具集和自动模式下,常规工具调用(包括 `Bash` 网络请求)都会在无人参与的情况下运行,因此网络边界才是限制这些调用可访问范围的关键。

395</Note>436</Note>

396 437 

397要无论控制平面发送什么都将提示保持在最低限度,请从您的包装脚本或 [`command` 钩子](#command) 固定 [auto mode](/docs/zh-CN/permission-modes#eliminate-prompts-with-auto-mode)。自动模式让会话无需例行权限提示运行:单独的分类器模型在运行前审查操作并阻止它拒绝的操作,显式询问规则仍然强制提示;权限模式页面涵盖分类器检查的内容。运行器在调用包装脚本前追加服务器计算的标志,对于单值标志(如 `--permission-mode`),解析器尊重最后出现的标志,因此您在 `"$@"` 后追加的标志覆盖服务器发送的值:438要无论控制平面发送什么都将提示保持在最低限度,请从您的包装脚本或 [`command` hook](#command) 固定[自动模式](/docs/zh-CN/permission-modes#eliminate-prompts-with-auto-mode)。自动模式让会话无需常规权限提示即可运行:单独的分类器模型在操作运行前对其进行审查,并阻止它拒绝的操作,而显式的询问规则仍会强制提示;权限模式页面介绍了分类器检查的内容。运行器在调用包装脚本前追加服务器计算的标志,对于单值标志(如 `--permission-mode`),解析器以最后一次出现的值为准,因此您在 `"$@"` 之后追加的标志会覆盖服务器发送的值:

398 439 

399```bash theme={null}440```bash theme={null}

400#!/bin/bash441#!/bin/bash

401exec "$CLAUDE_RUNNER_CLAUDE_BIN" "$@" --permission-mode auto442exec "$CLAUDE_RUNNER_CLAUDE_BIN" "$@" --permission-mode auto

402```443```

403 444 

404要预批准特定工具,请改为追加 `--allowed-tools` 和您的规则,例如 `--allowed-tools "Bash(bazel *) Bash(yarn *) mcp__internal__*"`。列表标志(如 `--allowed-tools` 和 `--disallowed-tools`)在出现时累积而不是覆盖,因此您的规则应用在控制平面发送的任何规则之上。要缩小范围,请追加 `--disallowed-tools`,即使另一个规则允许工具也拒绝工具。445要改为预批准特定工具,请追加 `--allowed-tools` 和您的规则,例如 `--allowed-tools "Bash(bazel *) Bash(yarn *) mcp__internal__*"`。列表标志(如 `--allowed-tools` 和 `--disallowed-tools`)会在多次出现时累积而不是覆盖,因此您的规则会叠加在控制平面发送的任何规则之上。要缩小范围,请追加 `--disallowed-tools`,即使其他规则允许某些工具,它也会拒绝这些工具。

405 446 

406<h3 id="how-each-session’s-config-is-assembled">447<h3 id="how-each-session’s-config-is-assembled">

407 每个会话的配置如何组装448 每个会话的配置如何组装

408</h3>449</h3>

409 450 

410运行器为每个会话提供自己的配置目录,从运行器在启动时捕获的主机 `~/.claude/` 的快照中播种:`settings.json`、`CLAUDE.md`、钩子、代理、命令和技能在您的运行器镜像中应用于每个会话作为用户级基线。如果您更改运行主机上的配置,更改仅在您重启运行器后生效。451运行器为每个会话提供自己的配置目录,该目录以运行器在启动时一次性捕获的主机 `~/.claude/` 快照为初始内容:您的运行器镜像中的 `settings.json`、`CLAUDE.md`、hook、Agent、命令和 skill 会作为用户级基线应用于每个会话。如果您更改正在运行的主机上的配置,更改仅在您重启运行器后生效。

452 

453设置 `SELF_HOSTED_RUNNER_HOST_CONFIG_DIR` 可从其他路径获取初始内容,或将其指向空目录以禁用初始内容填充。

454 

455仓库中提交的 `.claude/settings.json` 会作为项目设置叠加在其上。会话还会从运行器镜像中的标准系统路径读取 [`managed-settings.json`](/docs/zh-CN/settings#where-settings-live)。其中的键是否与[服务器托管设置](/docs/zh-CN/server-managed-settings)一起应用,取决于 [Claude Code 如何合并托管来源](/docs/zh-CN/managed-settings#how-claude-code-combines-managed-sources):默认情况下,当您的组织下发了任何服务器托管的键时,会话会忽略运行器镜像中的该文件,但 [Claude Code 从每个管理员来源读取的键](/docs/zh-CN/managed-settings#keys-read-from-every-admin-source)除外,例如 `env` 块、沙箱锁定、沙箱二进制路径和 `forceRemoteSettingsRefresh`。请参阅[设置优先级](/docs/zh-CN/settings#settings-precedence)。

411 456 

412设置 `SELF_HOSTED_RUNNER_HOST_CONFIG_DIR` 以从不同路径播种,或将其指向空目录以禁用播种。457当 Anthropic 的控制平面为会话提供 [Claude Code hook](/docs/zh-CN/hooks) 时,运行器会将它们与您自己的配置并行安装,而不是覆盖您的配置。需要 Claude Code v2.1.229 或更高版本。

413 458 

414存储库提交的 `.claude/settings.json` 作为项目设置分层。会话还从运行器镜像中的标准系统路径读取 [`managed-settings.json`](/docs/zh-CN/settings#where-settings-live)。其密钥是否与 [server-managed settings](/docs/zh-CN/server-managed-settings) 一起应用遵循 [how Claude Code combines managed sources](/docs/zh-CN/managed-settings#how-claude-code-combines-managed-sources):默认情况下,当您的组织交付任何服务器管理的密钥时,会话忽略运行器镜像的文件,除了 [keys Claude Code reads from every admin source](/docs/zh-CN/managed-settings#keys-read-from-every-admin-source),例如 `env` 块、沙箱锁、沙箱二进制路径和 `forceRemoteSettingsRefresh`。请参阅 [settings precedence](/docs/zh-CN/settings#settings-precedence)。459* **安装位置**:运行器将提供的每个 hook 脚本写入会话配置目录中保留的 `hooks/.ccr-launcher/` 子目录,并在一个单独的设置文件中注册这些脚本,该文件通过 `--settings` 传递给会话,从而使初始填充的 `settings.json` 以及您位于 `hooks/<name>` 的脚本保持不变。运行器会为每个会话重新创建该保留子目录,并且不会将主机上 `~/.claude/hooks/.ccr-launcher/` 中的内容填充到会话中。

460* **编写者**:控制平面使用其自身部署中的固定常量填充这些脚本,绝不使用按会话或第三方的输入。

461* **仍然适用的管控**:通过 `--settings` 下发的 hook 会进入普通的合并 hook 配置,而不是托管层,因此您的托管设置仍然适用。`disableAllHooks` 会禁用它们,并且它们不属于 [`allowManagedHooksOnly`](/docs/zh-CN/settings-reference#allowmanagedhooksonly) 保持加载的类别。

415 462 

416当 Anthropic 的控制平面为会话提供 [Claude Code hooks](/docs/zh-CN/hooks) 时,运行器将它们安装在旁边,而不是覆盖您自己的配置。需要 Claude Code v2.1.229 或更高版本。463除 [Claude Tag](https://claude.com/docs/claude-tag/overview) 会话外,自托管环境中的会话默认关闭[自动记忆](/docs/zh-CN/memory#auto-memory)。对于需要跨会话保留的指令,请使用运行器镜像或仓库中的 `CLAUDE.md`。

417 464 

418* **它们落在哪里**:运行器将每个提供的钩子脚本写入会话配置目录的保留 `hooks/.ccr-launcher/` 子目录,并在单独的设置文件中注册脚本,它使用 `--settings` 传递给会话,保留播种的 `settings.json` 和您自己的脚本在 `hooks/<name>` 不变。运行器为每个会话重新创建保留的子目录,不播种主机内容在 `~/.claude/hooks/.ccr-launcher/` 到会话。465运行器对主机 `~/.claude/` 的快照不包含 `projects/` 目录。自动记忆的默认存储位置就在该目录下。如果您将记忆文件放在那里,运行器不会将它们填充到会话中,它们也不会启用自动记忆。

419* **谁编写它们**:控制平面从其自己部署中的固定常量填充脚本,永远不从按会话或第三方输入。

420* **什么仍然管理它们**:通过 `--settings` 交付的钩子进入普通合并的钩子配置,而不是托管层,因此您的托管设置仍然适用。`disableAllHooks` 禁用它们,它们不在 [`allowManagedHooksOnly`](/docs/zh-CN/settings-reference#allowmanagedhooksonly) 保持加载的类别中。

421 466 

422<h3 id="repository-committed-permission-rules">467<h3 id="repository-committed-permission-rules">

423 存储库提交的权限规则468 仓库中提交的权限规则

424</h3>469</h3>

425 470 

426不要在存储库提交的 `permissions.allow` 中放置裸 `"Edit"`、`"Write"` 或 `"NotebookEdit"` 条目。裸文件工具规则匹配工具,无论路径如何,授予主机任何地方的写入而不仅仅是工作区,因此运行器的写入范围限制守卫标记会话;使用 [`--confine-repo-settings enforce`](/docs/zh-CN/self-hosted-environments-reference#runner-cli-flags) 它拒绝生成会话而不是记录并继续。请参阅 [hardening section](/docs/zh-CN/self-hosted-environments-deploy#harden-your-deployment)。471不要在仓库中提交的 `permissions.allow` 中放置不带限定的 `"Edit"`、`"Write"` 或 `"NotebookEdit"` 条目。不带限定的文件工具规则会匹配该工具而不论路径如何,从而授予在主机上任意位置写入的权限,而不仅限于工作区,因此运行器的写入范围限制守卫会标记该会话;使用 [`--confine-repo-settings enforce`](/docs/zh-CN/self-hosted-environments-reference#runner-cli-flags) 时,它会拒绝生成该会话,而不是记录日志后继续。请参阅[加固部分](/docs/zh-CN/self-hosted-environments-deploy#harden-your-deployment)。

427 472 

428存储库根本不需要文件工具规则:云会话 [pre-approve file edits regardless of mode](/docs/zh-CN/permission-modes#switch-permission-modes)。如果您确实提交规则,将其作用域限制到工作区,例如 `"Edit(/**)"`;单个前导斜杠相对于项目根目录,这是会话的工作区。裸文件工具规则在操作员的主机级 `settings.json` 中很好,因为该文件不是存储库提交的。473仓库根本不需要文件工具规则:云端会话[无论处于何种模式都会预批准文件编辑](/docs/zh-CN/permission-modes#switch-permission-modes)。如果您确实要提交规则,请将其限定到工作区,例如 `"Edit(/**)"`;单个前导斜杠相对于项目根目录,即会话的工作区。不带限定的文件工具规则可以放在操作员的主机级 `settings.json` 中,因为该文件不是在仓库中提交的。

429 474 

430`defaultMode` 为 `auto` 仅从镜像范围或用户级设置文件中受尊重,因此检出的存储库无法为自己授予自动模式。有关云会话接受的模式和完整规则语法,请参阅 [permission modes](/docs/zh-CN/permission-modes)。475`defaultMode` 为 `auto` 的设置仅在来自镜像范围或用户级设置文件时才会生效,因此检出的仓库无法为自己授予自动模式。有关云端会话接受哪些模式以及完整的规则语法,请参阅[权限模式](/docs/zh-CN/permission-modes)。

431 476 

432<h2 id="what’s-next">477<h2 id="what’s-next">

433 接下来478 接下来

Details

22| `curl: (23)` 或 `curl: (56) Failure writing output to destination` | [检查连接或使用替代安装程序](#curl-56-failure-writing-output-to-destination) |22| `curl: (23)` 或 `curl: (56) Failure writing output to destination` | [检查连接或使用替代安装程序](#curl-56-failure-writing-output-to-destination) |

23| Linux 上安装期间 `Killed`,或 `Installation was killed before it could finish (exit code 137)` | [释放内存或添加交换空间](#install-killed-on-low-memory-linux-servers) |23| Linux 上安装期间 `Killed`,或 `Installation was killed before it could finish (exit code 137)` | [释放内存或添加交换空间](#install-killed-on-low-memory-linux-servers) |

24| 安装期间 `Raw mode is not supported` | [重新运行安装程序](#raw-mode-is-not-supported-during-install) |24| 安装期间 `Raw mode is not supported` | [重新运行安装程序](#raw-mode-is-not-supported-during-install) |

25| 安装期间 `EACCES: permission denied` | [修复安装目录的权限](#permission-errors-during-installation) |

25| `TLS connect error` 或 `SSL/TLS secure channel` | [更新 CA 证书](#tls-or-ssl-connection-errors) |26| `TLS connect error` 或 `SSL/TLS secure channel` | [更新 CA 证书](#tls-or-ssl-connection-errors) |

26| `Failed to fetch version` 或无法访问下载服务器 | [检查网络和代理设置](#check-network-connectivity) |27| `Failed to fetch version` 或无法访问下载服务器 | [检查网络和代理设置](#check-network-connectivity) |

27| `irm is not recognized` 或 `The token '&&' is not a valid statement separator` | [对您的 shell 使用正确的命令](#wrong-install-command-on-windows) |28| `irm is not recognized` 或 `The token '&&' is not a valid statement separator` | [对您的 shell 使用正确的命令](#wrong-install-command-on-windows) |


295 检查目录权限296 检查目录权限

296</h3>297</h3>

297 298 

298安装程序需要对 macOS 和 Linux 上的 `~/.local/bin/` 和 `~/.claude/` 有写入权限。在 Windows 上,安装位置在 `%USERPROFILE%` 下,默认情况下您的用户可以写入,因此此部分很少适用于那里。299因权限问题而失败的安装会指出其无法创建或写入的路径。在 Windows 上,安装会写入 `%USERPROFILE%` 下,默认情况下您的用户可以写入该位置,因此此部分很少适用于那里。

300 

301在 macOS 和 Linux 上,安装会写入以下位置:

302 

303* `~/.claude/downloads/`:安装命令存放下载的二进制文件的位置

304* `~/.local/bin/`:`claude` 启动程序

305* `~/.local/share/claude/`:其下载的每个版本

306* `~/.local/state/claude/`:其锁文件

307* `~/.cache/claude/`:暂存的下载内容

308* [`~/.claude.json`](/docs/zh-CN/claude-directory):您的全局配置文件,安装程序在其中记录安装方式

309 

310如果您设置了 `XDG_DATA_HOME`、`XDG_STATE_HOME` 或 `XDG_CACHE_HOME`,安装将使用这些位置来代替 `~/.local/share`、`~/.local/state` 和 `~/.cache`。如果您设置了 [`CLAUDE_CONFIG_DIR`](/docs/zh-CN/env-vars),全局配置文件将位于该目录下,而不是您的主目录下。

299 311 

300检查目录是否可写:312检查目录是否可写:

301 313 


1045 1057 

1046如果您看到 `API Error: 400 ... "This organization has been disabled"`,尽管有活跃的 Claude 订阅,`ANTHROPIC_API_KEY` 环境变量正在覆盖您的订阅。这通常发生在来自前一个雇主或项目的旧 API 密钥仍在您的 shell 配置文件中设置时。1058如果您看到 `API Error: 400 ... "This organization has been disabled"`,尽管有活跃的 Claude 订阅,`ANTHROPIC_API_KEY` 环境变量正在覆盖您的订阅。这通常发生在来自前一个雇主或项目的旧 API 密钥仍在您的 shell 配置文件中设置时。

1047 1059 

1048当 `ANTHROPIC_API_KEY` 存在且您已批准它时,Claude Code 使用该密钥而不是您的订阅的 OAuth 凭证。在使用 `-p` 标志的非交互模式下,当存在时始终使用该密钥。有关完整的解决顺序,请参阅 [authentication precedence](/docs/zh-CN/authentication#authentication-precedence)。1060当 `ANTHROPIC_API_KEY` 存在且您已批准它时,Claude Code 使用该密钥而不是您的订阅的 OAuth 凭据。在使用 `-p` 标志的非交互模式下,当存在时始终使用该密钥。有关完整的解决顺序,请参阅 [authentication precedence](/docs/zh-CN/authentication#authentication-precedence)。

1049 1061 

1050要改用您的订阅,请取消设置环境变量并从您的 shell 配置文件中删除它:1062要改用您的订阅,请取消设置环境变量并从您的 shell 配置文件中删除它:

1051 1063 


1098 1110 

1099运行 `/login` 重新身份验证。如果这经常发生,检查您的系统时钟是否准确,因为令牌验证取决于正确的时间戳。1111运行 `/login` 重新身份验证。如果这经常发生,检查您的系统时钟是否准确,因为令牌验证取决于正确的时间戳。

1100 1112 

1101一台机器上的并行会话共享已保存的登录并协调其续期,以便只有一个进程一次刷新令牌。在 v2.1.211 之前,从睡眠状态唤醒机器可能导致两个会话使用相同令牌续期,这会撤销已保存的登录并提示每个打开的会话立即再次登录。1113一台机器上的并行会话共享已保存的登录并协调其续期,以便只有一个进程一次刷新令牌。有关在其中一个会话中重新登录后其他会话的行为,请参阅[未登录](/docs/zh-CN/errors#not-logged-in)。

1114 

1115在 v2.1.211 之前,从睡眠状态唤醒机器可能导致两个会话使用相同令牌续期,这会撤销已保存的登录并提示每个打开的会话立即再次登录。

1102 1116 

1103在 macOS 上,Claude Code 将凭证保存到登录 Keychain。当 Keychain 拒绝写入时,例如当它在 SSH 会话中被锁定或其密码与您的账户密码不同步时,Claude Code 改为将您的登录保存到纯文本 `~/.claude/.credentials.json` 文件。Console 登录创建 API 密钥会失败,直到 Keychain 再次可写。1117在 macOS 上,Claude Code 将凭据保存到登录 Keychain。当 Keychain 拒绝写入时,例如当它在 SSH 会话中被锁定或其密码与您的账户密码不同步时,Claude Code 改为将您的登录保存到纯文本 `~/.claude/.credentials.json` 文件。Console 登录创建 API 密钥会失败,直到 Keychain 再次可写。

1104 1118 

1105要使 Keychain 再次可写并将您的登录移回加密的 Keychain:1119要使 Keychain 再次可写并将您的登录移回加密的 Keychain:

1106 1120 


1122 </Step>1136 </Step>

1123 1137 

1124 <Step title="注销并重新登录">1138 <Step title="注销并重新登录">

1125 一旦 Keychain 再次可写,Claude Code 在下次写入凭证时将凭证移回。要立即强制执行,请运行 `/logout` 然后 `/login`。注销会删除所有存储的凭证,包括纯文本文件的内容、已保存的 MCP 服务器登录和插件敏感值,因此预期之后需要重新授权 MCP 服务器和重新输入插件密钥。再次登录会将您的登录存储在 Keychain 中。1139 一旦 Keychain 再次可写,Claude Code 在下次写入凭据时将凭据移回。要立即强制执行,请运行 `/logout` 然后 `/login`。注销会删除所有存储的凭据,包括纯文本文件的内容、已保存的 MCP 服务器登录和插件敏感值,因此预期之后需要重新授权 MCP 服务器和重新输入插件密钥。再次登录会将您的登录存储在 Keychain 中。

1126 </Step>1140 </Step>

1127</Steps>1141</Steps>

1128 1142 

1129<h3 id="bedrock-agent-platform-or-foundry-credentials-not-loading">1143<h3 id="bedrock-agent-platform-or-foundry-credentials-not-loading">

1130 Bedrock、Agent Platform 或 Foundry 凭证未加载1144 Bedrock、Agent Platform 或 Foundry 凭据未加载

1131</h3>1145</h3>

1132 1146 

1133如果您配置了 Claude Code 以使用云提供商,并在 Amazon Bedrock 上看到 `Could not load credentials from any providers`、在 Google Cloud 的 Agent Platform 上看到 `Could not load the default credentials` 或在 Microsoft Foundry 上看到 `ChainedTokenCredential authentication failed`,您的云提供商 CLI 可能在当前 shell 中未进行身份验证。1147如果您配置了 Claude Code 以使用云提供商,并在 Amazon Bedrock 上看到 `Could not load credentials from any providers`、在 Google Cloud 的 Agent Platform 上看到 `Could not load the default credentials` 或在 Microsoft Foundry 上看到 `ChainedTokenCredential authentication failed`,您的云提供商 CLI 可能在当前 shell 中未进行身份验证。

1134 1148 

1135对于 Amazon Bedrock,确认您的 AWS 凭证有效:1149对于 Amazon Bedrock,确认您的 AWS 凭据有效:

1136 1150 

1137```bash theme={null}1151```bash theme={null}

1138aws sts get-caller-identity1152aws sts get-caller-identity

1139```1153```

1140 1154 

1141对于 Google Cloud 的 Agent Platform,确认 `ANTHROPIC_VERTEX_PROJECT_ID` 和 `CLOUD_ML_REGION` 在您的 shell 中设置,然后设置应用默认凭证:1155对于 Google Cloud 的 Agent Platform,确认 `ANTHROPIC_VERTEX_PROJECT_ID` 和 `CLOUD_ML_REGION` 在您的 shell 中设置,然后设置应用默认凭据:

1142 1156 

1143```bash theme={null}1157```bash theme={null}

1144gcloud auth application-default login1158gcloud auth application-default login

1145```1159```

1146 1160 

1147对于 Microsoft Foundry,确认 `ANTHROPIC_FOUNDRY_API_KEY` 已设置,或使用 Azure CLI 登录以便默认凭证链可以找到您的账户:1161对于 Microsoft Foundry,确认 `ANTHROPIC_FOUNDRY_API_KEY` 已设置,或使用 Azure CLI 登录以便默认凭据链可以找到您的账户:

1148 1162 

1149```bash theme={null}1163```bash theme={null}

1150az login1164az login

1151```1165```

1152 1166 

1153如果凭证在您的终端中有效但在 VS Code 或 JetBrains 扩展中无效,IDE 进程可能未继承您的 shell 环境。在 IDE 自己的设置中设置提供商环境变量,或从已导出它们的终端启动 IDE。1167如果凭据在您的终端中有效但在 VS Code 或 JetBrains 扩展中无效,IDE 进程可能未继承您的 shell 环境。在 IDE 自己的设置中设置提供商环境变量,或从已导出它们的终端启动 IDE。

1154 1168 

1155有关完整的提供商设置,请参阅 [Amazon Bedrock](/docs/zh-CN/amazon-bedrock)、[Google Cloud 的 Agent Platform](/docs/zh-CN/google-vertex-ai) 或 [Microsoft Foundry](/docs/zh-CN/microsoft-foundry)。1169有关完整的提供商设置,请参阅 [Amazon Bedrock](/docs/zh-CN/amazon-bedrock)、[Google Cloud 的 Agent Platform](/docs/zh-CN/google-vertex-ai) 或 [Microsoft Foundry](/docs/zh-CN/microsoft-foundry)。

1156 1170 

Details

803. 将大文件工作移到 [subagent](/docs/zh-CN/sub-agents),以便它在单独的上下文窗口中运行803. 将大文件工作移到 [subagent](/docs/zh-CN/sub-agents),以便它在单独的上下文窗口中运行

814. 如果早期对话不再需要,运行 `/clear`814. 如果早期对话不再需要,运行 `/clear`

82 82 

83如果在 `/clear` 之后错误再次出现,请运行 [`/context`](/docs/zh-CN/debug-your-config) 并将 `Messages` 行与其上方的行进行比较:

84 

85* **`Messages` 是最大的行**:新对话中的文件或工具输出正在重新填满窗口,因此请再次执行步骤 1 到 3

86* **其他行加起来更大**:会话启动时加载的内容留下的工作空间太少,因此请[精简启动时加载的内容](/docs/zh-CN/errors#prompt-is-too-long)

87 

83<h3 id="command-hangs-or-freezes">88<h3 id="command-hangs-or-freezes">

84 命令挂起或冻结89 命令挂起或冻结

85</h3>90</h3>

worktrees.md +2 −0

Details

131 131 

132子代理 worktrees 使用与 `--worktree` 相同的[基础分支](#choose-the-base-branch),因此它们从您的存储库的默认分支分支,除非 `worktree.baseRef` 设置为 `"head"`。132子代理 worktrees 使用与 `--worktree` 相同的[基础分支](#choose-the-base-branch),因此它们从您的存储库的默认分支分支,除非 `worktree.baseRef` 设置为 `"head"`。

133 133 

134在自己的 worktree 中运行的子代理会从您的主对话中获取其[启动时加载](/docs/zh-CN/sub-agents#what-loads-at-startup)的指令文件,而不是从其 worktree 中获取。当该 worktree 位于 `.claude/worktrees/` 下的默认位置时,子代理在读取其中的文件时也不会加载 worktree 根目录下的 `CLAUDE.md` 文件或 `.claude/rules/` 目录,即使它们在 worktree 的分支上有所不同。

135 

134<h3 id="clean-up-subagent-and-background-session-worktrees">136<h3 id="clean-up-subagent-and-background-session-worktrees">

135 清理子代理和后台会话 worktrees137 清理子代理和后台会话 worktrees

136</h3>138</h3>