SpyBara
Go Premium

Documentation 2026-08-03 20:02 UTC to 2026-08-04 01:59 UTC

72 files changed +2,224 −2,236. View all changes and history on the product overview
2026
Tue 4 01:59 Mon 3 20:02 Sun 2 19:00

accessibility.md +18 −18

Details

22 22 

23* 对于一个会话:运行 `claude --ax-screen-reader`。23* 对于一个会话:运行 `claude --ax-screen-reader`。

24* 对于从一个 shell 启动的会话:将 `CLAUDE_AX_SCREEN_READER` 环境变量设置为 `1`。在 Bash 或 Zsh 中,运行 `export CLAUDE_AX_SCREEN_READER=1`;在 PowerShell 中,运行 `$env:CLAUDE_AX_SCREEN_READER = "1"`。将该行添加到您的 shell 配置文件以覆盖每个 shell。24* 对于从一个 shell 启动的会话:将 `CLAUDE_AX_SCREEN_READER` 环境变量设置为 `1`。在 Bash 或 Zsh 中,运行 `export CLAUDE_AX_SCREEN_READER=1`;在 PowerShell 中,运行 `$env:CLAUDE_AX_SCREEN_READER = "1"`。将该行添加到您的 shell 配置文件以覆盖每个 shell。

25* 对于机器上的每个会话:将 `"axScreenReader": true` 添加到您的用户[设置文件](/zh-CN/settings)。这涵盖任何终端,包括 VS Code 集成终端。25* 对于机器上的每个会话:将 `"axScreenReader": true` 添加到您的用户[设置文件](/docs/zh-CN/settings)。这涵盖任何终端,包括 VS Code 集成终端。

26 26 

27<Note>27<Note>

28 这些方法按优先级顺序列出:[`--ax-screen-reader`](/zh-CN/cli-reference#cli-flags) 标志覆盖 [`CLAUDE_AX_SCREEN_READER`](/zh-CN/env-vars) 环境变量,后者覆盖 [`axScreenReader`](/zh-CN/settings#available-settings) 设置。28 这些方法按优先级顺序列出:[`--ax-screen-reader`](/docs/zh-CN/cli-reference#cli-flags) 标志覆盖 [`CLAUDE_AX_SCREEN_READER`](/docs/zh-CN/env-vars) 环境变量,后者覆盖 [`axScreenReader`](/docs/zh-CN/settings#available-settings) 设置。

29</Note>29</Note>

30 30 

31如果您通过 SSH 使用 Claude Code,请在运行 Claude Code 的远程机器上设置环境变量或设置。31如果您通过 SSH 使用 Claude Code,请在运行 Claude Code 的远程机器上设置环境变量或设置。

32 32 

33当模式打开时,Claude Code 打印的第一件事是一条确认行,命名打开它的方法:`[Screen Reader Mode: on via flag]`、`[Screen Reader Mode: on via env]` 或 `[Screen Reader Mode: on via settings]`。此方法命名格式需要 Claude Code v2.1.206 或更高版本。当 Claude Code 重新启动自身时(例如完成安装更新),新进程通过 `CLAUDE_AX_SCREEN_READER` 环境变量继承该模式,因此其确认行读取 `[Screen Reader Mode: on via env]`,无论您使用了哪种方法。33当模式打开时,Claude Code 打印的第一件事是一条确认行,命名打开它的方法:`[Screen Reader Mode: on via flag]`、`[Screen Reader Mode: on via env]` 或 `[Screen Reader Mode: on via settings]`。此方法命名格式需要 Claude Code v2.1.206 或更高版本。当 Claude Code 重新启动自身时(例如完成安装更新),新进程通过 `CLAUDE_AX_SCREEN_READER` 环境变量继承该模式,因此其确认行读取 `[Screen Reader Mode: on via env]`,无论您使用了哪种方法。

34{/* max-version: 2.1.205 */}早期版本打印 `[Accessible screen reader mode: on]`。34早期版本打印 `[Accessible screen reader mode: on]`。

35 35 

36<h2 id="turn-off-screen-reader-mode">36<h2 id="turn-off-screen-reader-mode">

37 关闭屏幕阅读器模式37 关闭屏幕阅读器模式


48* 界面装饰没有制表符绘制字符48* 界面装饰没有制表符绘制字符

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

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

51* Claude 回复中的表格读作 `Header: value` 句子而不是制表符字符网格。{/* min-version: 2.1.198 */}需要 Claude Code v2.1.198 或更高版本;早期版本即使在屏幕阅读器模式下也将表格绘制为网格。51* Claude 回复中的表格读作 `Header: value` 句子而不是制表符字符网格。需要 Claude Code v2.1.198 或更高版本;早期版本即使在屏幕阅读器模式下也将表格绘制为网格。

52 52 

53输出在您的终端滚动缓冲区中累积,因此您可以使用屏幕阅读器的查看命令或终端的搜索功能重新阅读早期的轮次。53输出在您的终端滚动缓冲区中累积,因此您可以使用屏幕阅读器的查看命令或终端的搜索功能重新阅读早期的轮次。

54 54 

55屏幕阅读器模式呈现为纯滚动文本,即使您已使用 [`tui` 设置](/zh-CN/settings#available-settings)打开[全屏渲染](/zh-CN/fullscreen);当模式处于活动状态时,该设置无效。附加的后台会话仍呈现全屏;请参阅[已知限制](#known-limitations)。55屏幕阅读器模式呈现为纯滚动文本,即使您已使用 [`tui` 设置](/docs/zh-CN/settings#available-settings)打开[全屏渲染](/docs/zh-CN/fullscreen);当模式处于活动状态时,该设置无效。附加的后台会话仍呈现全屏;请参阅[已知限制](#known-limitations)。

56 56 

57成绩单中的每条消息都以您的屏幕阅读器宣布的标签开头,命名它是什么:您的消息、Claude 的回复、工具活动、错误和提示。这些标签也是可搜索的,因此您可以通过搜索终端的滚动缓冲区在成绩单的各个部分之间跳转:57成绩单中的每条消息都以您的屏幕阅读器宣布的标签开头,命名它是什么:您的消息、Claude 的回复、工具活动、错误和提示。这些标签也是可搜索的,因此您可以通过搜索终端的滚动缓冲区在成绩单的各个部分之间跳转:

58 58 


64| `tool error:` | 失败的工具 |64| `tool error:` | 失败的工具 |

65| `error:` | 对话中的错误,例如失败的 API 请求 |65| `error:` | 对话中的错误,例如失败的 API 请求 |

66| `Permission Required:` | 等待您回答的权限提示 |66| `Permission Required:` | 等待您回答的权限提示 |

67| `Cost:` | Claude Code 退出时的会话成本摘要,如果您的帐户[显示成本](/zh-CN/costs) |67| `Cost:` | Claude Code 退出时的会话成本摘要,如果您的帐户[显示成本](/docs/zh-CN/costs) |

68 68 

69终端光标跟随输入插入符号,因此屏幕阅读器的读取当前行命令用您正在编辑的提示回答"我在哪里"。69终端光标跟随输入插入符号,因此屏幕阅读器的读取当前行命令用您正在编辑的提示回答"我在哪里"。

70 70 


102* 出现权限提示102* 出现权限提示

103* 运行时间超过 5 秒的工具完成103* 运行时间超过 5 秒的工具完成

104 104 

105铃声是您的终端的标准警报。要使其静音,请更改您的终端应用程序中的铃声设置。铃声不需要屏幕阅读器模式:在模式外,将 [`preferredNotifChannel`](/zh-CN/settings#available-settings) 设置为 `"terminal_bell"` 以在 Claude 等待您时获得类似的警报。请参阅[获取终端铃声或通知](/zh-CN/terminal-config#get-a-terminal-bell-or-notification)。105铃声是您的终端的标准警报。要使其静音,请更改您的终端应用程序中的铃声设置。铃声不需要屏幕阅读器模式:在模式外,将 [`preferredNotifChannel`](/docs/zh-CN/settings#available-settings) 设置为 `"terminal_bell"` 以在 Claude 等待您时获得类似的警报。请参阅[获取终端铃声或通知](/docs/zh-CN/terminal-config#get-a-terminal-bell-or-notification)。

106 106 

107<h2 id="accessibility-settings-beyond-screen-reader-mode">107<h2 id="accessibility-settings-beyond-screen-reader-mode">

108 屏幕阅读器模式之外的辅助功能设置108 屏幕阅读器模式之外的辅助功能设置


110 110 

111这些选项解决屏幕阅读器模式之外的辅助功能需求。所有这些都与它一起工作。111这些选项解决屏幕阅读器模式之外的辅助功能需求。所有这些都与它一起工作。

112 112 

113* `CLAUDE_CODE_ACCESSIBILITY` [环境变量](/zh-CN/env-vars)用于屏幕放大镜。设置 `CLAUDE_CODE_ACCESSIBILITY=1` 以保持本机终端光标可见,以便放大镜(如 macOS Zoom)可以跟踪光标位置。113* `CLAUDE_CODE_ACCESSIBILITY` [环境变量](/docs/zh-CN/env-vars)用于屏幕放大镜。设置 `CLAUDE_CODE_ACCESSIBILITY=1` 以保持本机终端光标可见,以便放大镜(如 macOS Zoom)可以跟踪光标位置。

114* `prefersReducedMotion` [设置](/zh-CN/settings#available-settings)减少或禁用旋转器、闪烁和其他动画,而不改变界面的其余部分。114* `prefersReducedMotion` [设置](/docs/zh-CN/settings#available-settings)减少或禁用旋转器、闪烁和其他动画,而不改变界面的其余部分。

115* `theme` [设置](/zh-CN/settings#available-settings)选择界面颜色,包括色盲友好的 `dark-daltonized` 和 `light-daltonized` 主题。115* `theme` [设置](/docs/zh-CN/settings#available-settings)选择界面颜色,包括色盲友好的 `dark-daltonized` 和 `light-daltonized` 主题。

116 116 

117<h2 id="known-limitations">117<h2 id="known-limitations">

118 已知限制118 已知限制


121某些行为不适应屏幕阅读器模式:121某些行为不适应屏幕阅读器模式:

122 122 

123* 屏幕阅读器模式在屏幕阅读器运行时不会自动打开。123* 屏幕阅读器模式在屏幕阅读器运行时不会自动打开。

124* 模式更改(例如进入[计划模式](/zh-CN/permission-modes#analyze-before-you-edit-with-plan-mode))尚未宣布。124* 模式更改(例如进入[计划模式](/docs/zh-CN/permission-modes#analyze-before-you-edit-with-plan-mode))尚未宣布。

125* 使用 `claude attach` 或从代理视图附加到[后台会话](/zh-CN/agent-view)会进入终端的备用屏幕,该屏幕没有本机滚动缓冲区。这与[其他附加会话的行为相同](/zh-CN/fullscreen)。要退出,请在空提示上按左箭头,或如果对话框有焦点,请按 Ctrl+Z。125* 使用 `claude attach` 或从代理视图附加到[后台会话](/docs/zh-CN/agent-view)会进入终端的备用屏幕,该屏幕没有本机滚动缓冲区。这与[其他附加会话的行为相同](/docs/zh-CN/fullscreen)。要退出,请在空提示上按左箭头,或如果对话框有焦点,请按 Ctrl+Z。

126* Claude Code 在退出时打印的摘要中宣布成本,而不是每轮。126* Claude Code 在退出时打印的摘要中宣布成本,而不是每轮。

127* 屏幕阅读器模式不改变带有 `-p` 标志的[非交互模式](/zh-CN/headless)。非交互模式已经写入纯文本,并且仍然是脚本编写的替代方案。127* 屏幕阅读器模式不改变带有 `-p` 标志的[非交互模式](/docs/zh-CN/headless)。非交互模式已经写入纯文本,并且仍然是脚本编写的替代方案。

128 128 

129<h2 id="report-an-issue">129<h2 id="report-an-issue">

130 报告问题130 报告问题


138 138 

139这些页面包含此页面涵盖内容的完整参考条目和相关设置:139这些页面包含此页面涵盖内容的完整参考条目和相关设置:

140 140 

141* [Settings](/zh-CN/settings#available-settings):`axScreenReader`、`prefersReducedMotion`、`theme` 和 `preferredNotifChannel` 条目141* [Settings](/docs/zh-CN/settings#available-settings):`axScreenReader`、`prefersReducedMotion`、`theme` 和 `preferredNotifChannel` 条目

142* [Environment variables](/zh-CN/env-vars):`CLAUDE_AX_SCREEN_READER` 和 `CLAUDE_CODE_ACCESSIBILITY` 条目142* [Environment variables](/docs/zh-CN/env-vars):`CLAUDE_AX_SCREEN_READER` 和 `CLAUDE_CODE_ACCESSIBILITY` 条目

143* [CLI reference](/zh-CN/cli-reference#cli-flags):`--ax-screen-reader` 标志143* [CLI reference](/docs/zh-CN/cli-reference#cli-flags):`--ax-screen-reader` 标志

144* [Terminal configuration](/zh-CN/terminal-config):屏幕阅读器模式外的铃声、通知和主题144* [Terminal configuration](/docs/zh-CN/terminal-config):屏幕阅读器模式外的铃声、通知和主题

145* [Non-interactive mode](/zh-CN/headless):脚本化 `claude -p` 运行,写入纯文本而不使用屏幕阅读器模式145* [Non-interactive mode](/docs/zh-CN/headless):脚本化 `claude -p` 运行,写入纯文本而不使用屏幕阅读器模式

advisor.md +17 −17

Details

22 22 

23顾问适合长期、多步骤的任务,其中大多数轮次是常规的,但计划质量决定了结果。示例包括大型重构、错误不断重复的调试会话,以及您希望在 Claude 声明完成之前独立检查的任务。23顾问适合长期、多步骤的任务,其中大多数轮次是常规的,但计划质量决定了结果。示例包括大型重构、错误不断重复的调试会话,以及您希望在 Claude 声明完成之前独立检查的任务。

24 24 

25在短任务上(几乎没有计划的地方)或需要每一轮都使用最强模型的工作上,它的价值较少。对于这些情况,[切换主模型](/zh-CN/model-config#setting-your-model),或查看[顾问与 opusplan 和子代理的比较](#compare-with-related-features)以获取其他获取第二意见的方式。25在短任务上(几乎没有计划的地方)或需要每一轮都使用最强模型的工作上,它的价值较少。对于这些情况,[切换主模型](/docs/zh-CN/model-config#setting-your-model),或查看[顾问与 opusplan 和子代理的比较](#compare-with-related-features)以获取其他获取第二意见的方式。

26 26 

27<h2 id="enable-the-advisor">27<h2 id="enable-the-advisor">

28 启用顾问28 启用顾问


31您可以通过三种方式设置顾问模型:31您可以通过三种方式设置顾问模型:

32 32 

33* **`/advisor` 命令**:在会话中途设置或更改顾问,并将其保存为默认值33* **`/advisor` 命令**:在会话中途设置或更改顾问,并将其保存为默认值

34* **`advisorModel` 设置**:在您的[设置文件](/zh-CN/settings)中配置持久默认值34* **`advisorModel` 设置**:在您的[设置文件](/docs/zh-CN/settings)中配置持久默认值

35* **`--advisor` 标志**:在启动时为单个会话设置顾问35* **`--advisor` 标志**:在启动时为单个会话设置顾问

36 36 

37如果其中任何一个设置了顾问模型,则对于主模型[支持它](#choose-an-advisor-model)的会话,顾问是启用的。要停止使用它,请参阅[关闭顾问](#turn-the-advisor-off)。37如果其中任何一个设置了顾问模型,则对于主模型[支持它](#choose-an-advisor-model)的会话,顾问是启用的。要停止使用它,请参阅[关闭顾问](#turn-the-advisor-off)。

38 38 

39<Note>39<Note>

40 要使用 Fable 5 作为顾问,您需要 Claude Code v2.1.170 或更高版本以及您的组织的 [Fable 5 访问权限](/zh-CN/model-config#work-with-fable-5)。40 要使用 Fable 5 作为顾问,您需要 Claude Code v2.1.170 或更高版本以及您的组织的 [Fable 5 访问权限](/docs/zh-CN/model-config#work-with-fable-5)。

41</Note>41</Note>

42 42 

43<h3 id="use-the-/advisor-command">43<h3 id="use-the-/advisor-command">


50/advisor opus50/advisor opus

51```51```

52 52 

53您的选择被保存到用户设置中的 `advisorModel`,并在会话之间持久化。如果您的组织的 [`availableModels`](/zh-CN/model-config#restrict-model-selection) 允许列表排除了保存的顾问模型,则在您使用 `/advisor` 选择允许的模型之前,顾问不会被调用。如果您当前的主模型不支持顾问,选择仍然被保存,并在您使用 [`/model`](/zh-CN/model-config#setting-your-model) 切换到[兼容的主模型](#choose-an-advisor-model)时激活。53您的选择被保存到用户设置中的 `advisorModel`,并在会话之间持久化。如果您的组织的 [`availableModels`](/docs/zh-CN/model-config#restrict-model-selection) 允许列表排除了保存的顾问模型,则在您使用 `/advisor` 选择允许的模型之前,顾问不会被调用。如果您当前的主模型不支持顾问,选择仍然被保存,并在您使用 [`/model`](/docs/zh-CN/model-config#setting-your-model) 切换到[兼容的主模型](#choose-an-advisor-model)时激活。

54 54 

55<h3 id="set-advisormodel-in-settings">55<h3 id="set-advisormodel-in-settings">

56 在设置中设置 `advisorModel`56 在设置中设置 `advisorModel`


74claude --advisor opus74claude --advisor opus

75```75```

76 76 

77该标志在该会话中优先于 `advisorModel` 设置。如果会话的主模型不支持顾问,或者请求的顾问模型被您的组织的 [`availableModels`](/zh-CN/model-config#restrict-model-selection) 允许列表排除,它会以错误退出。77该标志在该会话中优先于 `advisorModel` 设置。如果会话的主模型不支持顾问,或者请求的顾问模型被您的组织的 [`availableModels`](/docs/zh-CN/model-config#restrict-model-selection) 允许列表排除,它会以错误退出。

78 78 

79<h2 id="choose-an-advisor-model">79<h2 id="choose-an-advisor-model">

80 选择顾问模型80 选择顾问模型


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

84 84 

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

86| ----------------------------------------------- | ----------------------- | ------------------------------------------------------------------------------------- |86| ------------------- | ----------------------- | ------------------------------------------------------------------------------------- |

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

88| Sonnet 4.6 | Fable、Opus、Sonnet | |88| Sonnet 4.6 | Fable、Opus、Sonnet | |

89| Sonnet 5 | Fable、Opus、Sonnet 5 | Sonnet 4.6 顾问被拒绝 |89| Sonnet 5 | Fable、Opus、Sonnet 5 | Sonnet 4.6 顾问被拒绝 |

90| Opus 4.6 | Fable、Opus、Sonnet 5 | Sonnet 5 和 Opus 4.6 的能力排名相同,因此 Opus 4.6 主模型接受 Sonnet 5 顾问 |90| Opus 4.6 | Fable、Opus、Sonnet 5 | Sonnet 5 和 Opus 4.6 的能力排名相同,因此 Opus 4.6 主模型接受 Sonnet 5 顾问 |

91| Opus 4.7 或更高版本 | Fable、Opus 4.7、Opus 4.8 | Opus 4.7 和 Opus 4.8 的能力排名相同,因此任一个都可以接受另一个作为顾问。Opus 4.7 主模型与 Opus 4.6 或 Sonnet 5 顾问被拒绝 |91| Opus 4.7 或更高版本 | Fable、Opus 4.7、Opus 4.8 | Opus 4.7 和 Opus 4.8 的能力排名相同,因此任一个都可以接受另一个作为顾问。Opus 4.7 主模型与 Opus 4.6 或 Sonnet 5 顾问被拒绝 |

92| Fable 5 ({/* min-version: 2.1.170 */}v2.1.170+) | Fable | Opus 或 Sonnet 顾问被拒绝 |92| Fable 5 (v2.1.170+) | Fable | Opus 或 Sonnet 顾问被拒绝 |

93 93 

94Fable 5 需要 Claude Code v2.1.170 或更高版本以及 Fable 5 访问权限,无论它是充当主模型还是顾问。94Fable 5 需要 Claude Code v2.1.170 或更高版本以及 Fable 5 访问权限,无论它是充当主模型还是顾问。

95 95 


141 141 

142每个顾问调用都会将对话发送到顾问模型,因此除了主模型的使用外,它还会以顾问模型的费率消耗令牌。使用 API 计费,顾问令牌按顾问模型的输入和输出费率计费。在订阅计划上,顾问使用计入您的计划使用限制。142每个顾问调用都会将对话发送到顾问模型,因此除了主模型的使用外,它还会以顾问模型的费率消耗令牌。使用 API 计费,顾问令牌按顾问模型的输入和输出费率计费。在订阅计划上,顾问使用计入您的计划使用限制。

143 143 

144Claude 在决策点而不是每一轮都调用顾问,因此将更快的主模型与更强的顾问配对通常比全程运行更强的模型成本更低。顾问使用计入由 [`/usage`](/zh-CN/costs#track-your-costs) 显示的会话总计。144Claude 在决策点而不是每一轮都调用顾问,因此将更快的主模型与更强的顾问配对通常比全程运行更强的模型成本更低。顾问使用计入由 [`/usage`](/docs/zh-CN/costs#track-your-costs) 显示的会话总计。

145 145 

146有关顾问令牌如何在 API 响应中报告的信息,请参阅 Claude API 文档中的[使用和计费](https://platform.claude.com/docs/en/agents-and-tools/tool-use/advisor-tool#usage-and-billing)。146有关顾问令牌如何在 API 响应中报告的信息,请参阅 Claude API 文档中的[使用和计费](https://platform.claude.com/docs/en/agents-and-tools/tool-use/advisor-tool#usage-and-billing)。

147 147 


149 对提示缓存的影响149 对提示缓存的影响

150</h2>150</h2>

151 151 

152在会话中途启用或禁用顾问不会使主模型的[提示缓存](/zh-CN/prompt-caching)失效。与[更改模型或努力级别](/zh-CN/prompt-caching#actions-that-invalidate-the-cache)不同,切换 `/advisor` 会保持缓存的前缀完整,顾问返回的指导在后续轮次中作为成绩单的一部分被缓存。152在会话中途启用或禁用顾问不会使主模型的[提示缓存](/docs/zh-CN/prompt-caching)失效。与[更改模型或努力级别](/docs/zh-CN/prompt-caching#actions-that-invalidate-the-cache)不同,切换 `/advisor` 会保持缓存的前缀完整,顾问返回的指导在后续轮次中作为成绩单的一部分被缓存。

153 153 

154顾问模型自己对对话的读取不被缓存。每个顾问调用都会重新处理完整的成绩单,调用之间没有重用。154顾问模型自己对对话的读取不被缓存。每个顾问调用都会重新处理完整的成绩单,调用之间没有重用。

155 155 


159 159 

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

161 161 

162* **仅 Anthropic API**:顾问是服务器执行的工具。它在 Amazon Bedrock、Claude Platform on AWS、Google Cloud 的 Agent Platform 或 Microsoft Foundry 上不可用。通过配置了 `ANTHROPIC_BASE_URL` 的 [LLM 网关](/zh-CN/llm-gateway),可用性取决于网关是否将请求完整转发到 Anthropic API。162* **仅 Anthropic API**:顾问是服务器执行的工具。它在 Amazon Bedrock、Claude Platform on AWS、Google Cloud 的 Agent Platform 或 Microsoft Foundry 上不可用。通过配置了 `ANTHROPIC_BASE_URL` 的 [LLM 网关](/docs/zh-CN/llm-gateway),可用性取决于网关是否将请求完整转发到 Anthropic API。

163* **支持的主模型**:Opus 4.6 或更高版本、Sonnet 4.6 或更高版本,或 Haiku 4.5。{/* min-version: 2.1.170 */}Fable 5 在 Claude Code v2.1.170 或更高版本上也符合条件。163* **支持的主模型**:Opus 4.6 或更高版本、Sonnet 4.6 或更高版本,或 Haiku 4.5。Fable 5 在 Claude Code v2.1.170 或更高版本上也符合条件。

164 164 

165<h2 id="turn-the-advisor-off">165<h2 id="turn-the-advisor-off">

166 关闭顾问166 关闭顾问


172/advisor off172/advisor off

173```173```

174 174 

175要完全禁用顾问工具,设置 `CLAUDE_CODE_DISABLE_ADVISOR_TOOL=1`。`/advisor` 命令变为不可用,任何配置的 `advisorModel` 都会被忽略。`--advisor` 标志被接受但没有效果;传递它的现有脚本继续工作而不会出现错误。请参阅[环境变量](/zh-CN/env-vars)。175要完全禁用顾问工具,设置 `CLAUDE_CODE_DISABLE_ADVISOR_TOOL=1`。`/advisor` 命令变为不可用,任何配置的 `advisorModel` 都会被忽略。`--advisor` 标志被接受但没有效果;传递它的现有脚本继续工作而不会出现错误。请参阅[环境变量](/docs/zh-CN/env-vars)。

176 176 

177<h2 id="compare-with-related-features">177<h2 id="compare-with-related-features">

178 与相关功能比较178 与相关功能比较


183| 方法 | 更强的模型何时运行 | 如何启动 |183| 方法 | 更强的模型何时运行 | 如何启动 |

184| -------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | ----------------- |184| -------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | ----------------- |

185| 顾问工具 | 在任务中途的决策点 | Claude 在需要指导时调用它 |185| 顾问工具 | 在任务中途的决策点 | Claude 在需要指导时调用它 |

186| [`opusplan`](/zh-CN/model-config#opusplan-model-setting) | 在计划模式期间当[由 `availableModels` 允许](/zh-CN/model-config#restrict-model-selection)时,然后切换到 Sonnet 执行 | 您进入计划模式 |186| [`opusplan`](/docs/zh-CN/model-config#opusplan-model-setting) | 在计划模式期间当[由 `availableModels` 允许](/docs/zh-CN/model-config#restrict-model-selection)时,然后切换到 Sonnet 执行 | 您进入计划模式 |

187| [子代理](/zh-CN/sub-agents#choose-a-model),设置了 `model` | 对于整个委派的子任务 | Claude 委派,或您调用子代理 |187| [子代理](/docs/zh-CN/sub-agents#choose-a-model),设置了 `model` | 对于整个委派的子任务 | Claude 委派,或您调用子代理 |

188| [`/model`](/zh-CN/model-config#setting-your-model) | 对于所有后续轮次 | 您切换模型 |188| [`/model`](/docs/zh-CN/model-config#setting-your-model) | 对于所有后续轮次 | 您切换模型 |

189 189 

190<h2 id="see-also">190<h2 id="see-also">

191 另请参阅191 另请参阅

192</h2>192</h2>

193 193 

194* [模型配置](/zh-CN/model-config):切换模型、设置努力级别并使用 `opusplan`194* [模型配置](/docs/zh-CN/model-config):切换模型、设置努力级别并使用 `opusplan`

195* [有效管理成本](/zh-CN/costs):跨模型跟踪令牌使用情况195* [有效管理成本](/docs/zh-CN/costs):跨模型跟踪令牌使用情况

196* [Claude API 中的顾问工具](https://platform.claude.com/docs/en/agents-and-tools/tool-use/advisor-tool):了解底层服务器工具,或直接从 Messages API 使用它196* [Claude API 中的顾问工具](https://platform.claude.com/docs/en/agents-and-tools/tool-use/advisor-tool):了解底层服务器工具,或直接从 Messages API 使用它

197* [顾问策略](https://claude.com/blog/the-advisor-strategy):为什么将快速主模型与更强的顾问配对有效197* [顾问策略](https://claude.com/blog/the-advisor-strategy):为什么将快速主模型与更强的顾问配对有效

agent-sdk/hooks.md +21 −21

Details

26 </Step>26 </Step>

27 27 

28 <Step title="SDK 收集已注册的 hooks">28 <Step title="SDK 收集已注册的 hooks">

29 SDK 检查为该事件类型注册的 hooks。这包括您在 `options.hooks` 中传递的回调 hooks 和来自设置文件的 shell 命令 hooks,当相应的 [`settingSources`](/zh-CN/agent-sdk/typescript#settingsource) 或 [`setting_sources`](/zh-CN/agent-sdk/python#settingsource) 条目启用时(默认 `query()` 选项就是这样)。29 SDK 检查为该事件类型注册的 hooks。这包括您在 `options.hooks` 中传递的回调 hooks 和来自设置文件的 shell 命令 hooks,当相应的 [`settingSources`](/docs/zh-CN/agent-sdk/typescript#settingsource) 或 [`setting_sources`](/docs/zh-CN/agent-sdk/python#settingsource) 条目启用时(默认 `query()` 选项就是这样)。

30 </Step>30 </Step>

31 31 

32 <Step title="匹配器过滤哪些 hooks 运行">32 <Step title="匹配器过滤哪些 hooks 运行">


155| `PostToolUseFailure` | 是 | 是 | 工具执行失败 | 处理或记录工具错误 |155| `PostToolUseFailure` | 是 | 是 | 工具执行失败 | 处理或记录工具错误 |

156| `PostToolBatch` | 否 | 是 | 一整批工具调用解决,每批一次,在下一个模型调用之前 | 为整个批次注入约定 |156| `PostToolBatch` | 否 | 是 | 一整批工具调用解决,每批一次,在下一个模型调用之前 | 为整个批次注入约定 |

157| `UserPromptSubmit` | 是 | 是 | 用户提示提交 | 将额外上下文注入到提示中 |157| `UserPromptSubmit` | 是 | 是 | 用户提示提交 | 将额外上下文注入到提示中 |

158| [`UserPromptExpansion`](/zh-CN/hooks#userpromptexpansion) | 否 | 是 | 用户输入的命令在到达 Claude 之前扩展为提示 | 阻止命令直接调用或在输入 skill 时添加上下文 |158| [`UserPromptExpansion`](/docs/zh-CN/hooks#userpromptexpansion) | 否 | 是 | 用户输入的命令在到达 Claude 之前扩展为提示 | 阻止命令直接调用或在输入 skill 时添加上下文 |

159| `MessageDisplay` | 否 | 是 | 助手消息包含文本完成,每条消息一次,包含完整消息文本 | 编辑或重新格式化显示的文本而不改变记录 |159| `MessageDisplay` | 否 | 是 | 助手消息包含文本完成,每条消息一次,包含完整消息文本 | 编辑或重新格式化显示的文本而不改变记录 |

160| `Stop` | 是 | 是 | 代理执行停止 | 在退出前保存会话状态 |160| `Stop` | 是 | 是 | 代理执行停止 | 在退出前保存会话状态 |

161| `SubagentStart` | 是 | 是 | 子代理初始化 | 跟踪并行任务生成 |161| `SubagentStart` | 是 | 是 | 子代理初始化 | 跟踪并行任务生成 |


213 匹配器213 匹配器

214</h3>214</h3>

215 215 

216使用匹配器来过滤您的回调何时触发。`matcher` 字段根据 hook 事件类型匹配不同的值。例如,基于工具的 hooks 匹配工具名称,而 `Notification` hooks 匹配通知类型。请参阅 [Claude Code hooks 参考](/zh-CN/hooks#matcher-patterns)以获取每个事件类型的匹配器值的完整列表。216使用匹配器来过滤您的回调何时触发。`matcher` 字段根据 hook 事件类型匹配不同的值。例如,基于工具的 hooks 匹配工具名称,而 `Notification` hooks 匹配通知类型。请参阅 [Claude Code hooks 参考](/docs/zh-CN/hooks#matcher-patterns)以获取每个事件类型的匹配器值的完整列表。

217 217 

218SDK 匹配器遵循与[设置文件中的匹配器](/zh-CN/hooks#matcher-patterns)相同的规则。仅包含字母、数字、`_`、`-`、空格、`,` 和 `|` 的匹配器作为精确字符串进行比较,替代项由 `|` 或 `,` 分隔,可选的周围空格,因此 `Write|Edit` 和 `Write, Edit` 各自精确匹配这两个工具,`code-reviewer` 仅匹配该代理类型。`*` 的匹配器、空字符串或完全省略匹配器会匹配事件的每次出现。218SDK 匹配器遵循与[设置文件中的匹配器](/docs/zh-CN/hooks#matcher-patterns)相同的规则。仅包含字母、数字、`_`、`-`、空格、`,` 和 `|` 的匹配器作为精确字符串进行比较,替代项由 `|` 或 `,` 分隔,可选的周围空格,因此 `Write|Edit` 和 `Write, Edit` 各自精确匹配这两个工具,`code-reviewer` 仅匹配该代理类型。`*` 的匹配器、空字符串或完全省略匹配器会匹配事件的每次出现。

219 219 

220包含任何其他字符的匹配器被评估为非锚定正则表达式,因此 `^mcp__` 匹配每个 MCP 工具,`Edit.*` 匹配 `Edit` 和 `NotebookEdit`。当您需要全字符串匹配时,用 `^` 和 `$` 包装正则表达式。220包含任何其他字符的匹配器被评估为非锚定正则表达式,因此 `^mcp__` 匹配每个 MCP 工具,`Edit.*` 匹配 `Edit` 和 `NotebookEdit`。当您需要全字符串匹配时,用 `^` 和 `$` 包装正则表达式。

221 221 


225 225 

226| 选项 | 类型 | 默认值 | 描述 |226| 选项 | 类型 | 默认值 | 描述 |

227| --------- | ---------------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |227| --------- | ---------------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

228| `matcher` | `string` | `undefined` | 针对事件的过滤字段匹配的模式,遵循上述比较规则。对于工具 hooks,这是工具名称。内置工具包括 `Bash`、`Read`、`Write`、`Edit`、`Glob`、`Grep`、`WebFetch`、`Agent` 等(请参阅[工具输入类型](/zh-CN/agent-sdk/typescript#tool-input-types)以获取完整列表)。MCP 工具使用模式 `mcp__<server>__<action>`。 |228| `matcher` | `string` | `undefined` | 针对事件的过滤字段匹配的模式,遵循上述比较规则。对于工具 hooks,这是工具名称。内置工具包括 `Bash`、`Read`、`Write`、`Edit`、`Glob`、`Grep`、`WebFetch`、`Agent` 等(请参阅[工具输入类型](/docs/zh-CN/agent-sdk/typescript#tool-input-types)以获取完整列表)。MCP 工具使用模式 `mcp__<server>__<action>`。 |

229| `hooks` | `HookCallback[]` | - | 必需。当模式匹配时执行的回调函数数组 |229| `hooks` | `HookCallback[]` | - | 必需。当模式匹配时执行的回调函数数组 |

230| `timeout` | `number` | `60` | 超时时间(秒) |230| `timeout` | `number` | `60` | 超时时间(秒) |

231 231 


234对于基于工具的 hooks,匹配器仅按工具名称过滤,而不是按文件路径或其他参数。要按文件路径过滤,请在回调内检查 `tool_input.file_path`。234对于基于工具的 hooks,匹配器仅按工具名称过滤,而不是按文件路径或其他参数。要按文件路径过滤,请在回调内检查 `tool_input.file_path`。

235 235 

236<Tip>236<Tip>

237 **发现工具名称:** 请参阅[工具输入类型](/zh-CN/agent-sdk/typescript#tool-input-types)以获取内置工具名称的完整列表,或添加没有匹配器的 hook 来记录您的会话进行的所有工具调用。237 **发现工具名称:** 请参阅[工具输入类型](/docs/zh-CN/agent-sdk/typescript#tool-input-types)以获取内置工具名称的完整列表,或添加没有匹配器的 hook 来记录您的会话进行的所有工具调用。

238 238 

239 **MCP 工具命名:** MCP 工具始终以 `mcp__` 开头,后跟服务器名称和操作:`mcp__<server>__<action>`。例如,如果您配置一个名为 `playwright` 的服务器,其工具将被命名为 `mcp__playwright__browser_screenshot`、`mcp__playwright__browser_click` 等。服务器名称来自您在 `mcpServers` 配置中使用的键。239 **MCP 工具命名:** MCP 工具始终以 `mcp__` 开头,后跟服务器名称和操作:`mcp__<server>__<action>`。例如,如果您配置一个名为 `playwright` 的服务器,其工具将被命名为 `mcp__playwright__browser_screenshot`、`mcp__playwright__browser_click` 等。服务器名称来自您在 `mcpServers` 配置中使用的键。

240</Tip>240</Tip>


249 249 

250每个 hook 回调接收三个参数:250每个 hook 回调接收三个参数:

251 251 

252* **输入数据:** 一个包含事件详细信息的类型化对象。每个 hook 类型都有自己的输入形状。例如,`PreToolUseHookInput` 包括 `tool_name` 和 `tool_input`,而 `NotificationHookInput` 包括 `message`。请参阅 [TypeScript](/zh-CN/agent-sdk/typescript#hookinput) 和 [Python](/zh-CN/agent-sdk/python#hookinput) SDK 参考中的完整类型定义。252* **输入数据:** 一个包含事件详细信息的类型化对象。每个 hook 类型都有自己的输入形状。例如,`PreToolUseHookInput` 包括 `tool_name` 和 `tool_input`,而 `NotificationHookInput` 包括 `message`。请参阅 [TypeScript](/docs/zh-CN/agent-sdk/typescript#hookinput) 和 [Python](/docs/zh-CN/agent-sdk/python#hookinput) SDK 参考中的完整类型定义。

253 * 所有 hook 输入共享 `session_id`、`cwd` 和 `hook_event_name`。253 * 所有 hook 输入共享 `session_id`、`cwd` 和 `hook_event_name`。

254 * 当 hook 在子代理内触发时,`agent_id` 和 `agent_type` 被填充。在 TypeScript 中,这些在基础 hook 输入上,对所有 hook 类型都可用。在 Python 中,它们是 `PreToolUse`、`PostToolUse`、`PostToolUseFailure` 和 `PermissionRequest` 上的可选字段,以及 `SubagentStart` 和 `SubagentStop` 上的必需字段。254 * 当 hook 在子代理内触发时,`agent_id` 和 `agent_type` 被填充。在 TypeScript 中,这些在基础 hook 输入上,对所有 hook 类型都可用。在 Python 中,它们是 `PreToolUse`、`PostToolUse`、`PostToolUseFailure` 和 `PermissionRequest` 上的可选字段,以及 `SubagentStart` 和 `SubagentStop` 上的必需字段。

255* **工具使用 ID**(`str | None` / `string | undefined`):关联同一工具调用的 `PreToolUse` 和 `PostToolUse` 事件。255* **工具使用 ID**(`str | None` / `string | undefined`):关联同一工具调用的 `PreToolUse` 和 `PostToolUse` 事件。


262您的回调返回一个具有两类字段的对象:262您的回调返回一个具有两类字段的对象:

263 263 

264* **顶级字段**在每个事件上的工作方式相同:`systemMessage` 向用户显示消息,`continue`(Python 中的 `continue_`)确定代理在此 hook 后是否继续运行。264* **顶级字段**在每个事件上的工作方式相同:`systemMessage` 向用户显示消息,`continue`(Python 中的 `continue_`)确定代理在此 hook 后是否继续运行。

265* **`hookSpecificOutput`** 控制当前操作。内部的字段取决于 hook 事件类型。对于 `PreToolUse` hooks,这是您设置 `permissionDecision`(`"allow"`、`"deny"`、`"ask"` 或 `"defer"`)、`permissionDecisionReason` 和 `updatedInput` 的地方。返回 `"defer"` 结束查询,以便您可以[稍后恢复它](/zh-CN/hooks#defer-a-tool-call-for-later)。对于 `PostToolUse` hooks,您可以设置 `additionalContext` 以将信息附加到工具结果。要在 Claude 看到之前替换工具的输出,请设置 `updatedToolOutput`,这适用于两个 SDK 中的任何工具。较旧的 `updatedMCPToolOutput` 字段仅替换 MCP 工具输出,已弃用。265* **`hookSpecificOutput`** 控制当前操作。内部的字段取决于 hook 事件类型。对于 `PreToolUse` hooks,这是您设置 `permissionDecision`(`"allow"`、`"deny"`、`"ask"` 或 `"defer"`)、`permissionDecisionReason` 和 `updatedInput` 的地方。返回 `"defer"` 结束查询,以便您可以[稍后恢复它](/docs/zh-CN/hooks#defer-a-tool-call-for-later)。对于 `PostToolUse` hooks,您可以设置 `additionalContext` 以将信息附加到工具结果。要在 Claude 看到之前替换工具的输出,请设置 `updatedToolOutput`,这适用于两个 SDK 中的任何工具。较旧的 `updatedMCPToolOutput` 字段仅替换 MCP 工具输出,已弃用。

266 266 

267返回 `{}` 以允许操作而不进行更改。SDK 回调 hooks 使用与 [Claude Code shell 命令 hooks](/zh-CN/hooks#json-output) 相同的 JSON 输出格式,其中记录了每个字段和事件特定的选项。对于 SDK 类型定义,请参阅 [TypeScript](/zh-CN/agent-sdk/typescript#synchookjsonoutput) 和 [Python](/zh-CN/agent-sdk/python#synchookjsonoutput) SDK 参考。267返回 `{}` 以允许操作而不进行更改。SDK 回调 hooks 使用与 [Claude Code shell 命令 hooks](/docs/zh-CN/hooks#json-output) 相同的 JSON 输出格式,其中记录了每个字段和事件特定的选项。对于 SDK 类型定义,请参阅 [TypeScript](/docs/zh-CN/agent-sdk/typescript#synchookjsonoutput) 和 [Python](/docs/zh-CN/agent-sdk/python#synchookjsonoutput) SDK 参考。

268 268 

269<Note>269<Note>

270 当多个 hooks 或权限规则适用时,`deny` 优先于 `defer`,`defer` 优先于 `ask`,`ask` 优先于 `allow`。如果任何 hook 返回 `deny`,操作将被阻止,无论其他 hooks 如何。270 当多个 hooks 或权限规则适用时,`deny` 优先于 `defer`,`defer` 优先于 `ask`,`ask` 优先于 `allow`。如果任何 hook 返回 `deny`,操作将被阻止,无论其他 hooks 如何。


539 跟踪子代理活动539 跟踪子代理活动

540</h3>540</h3>

541 541 

542使用 `SubagentStop` hooks 监控子代理何时完成其工作。请参阅 [TypeScript](/zh-CN/agent-sdk/typescript#hookinput) 和 [Python](/zh-CN/agent-sdk/python#hookinput) SDK 参考中的完整输入类型。此示例在每次子代理完成时记录摘要:542使用 `SubagentStop` hooks 监控子代理何时完成其工作。请参阅 [TypeScript](/docs/zh-CN/agent-sdk/typescript#hookinput) 和 [Python](/docs/zh-CN/agent-sdk/python#hookinput) SDK 参考中的完整输入类型。此示例在每次子代理完成时记录摘要:

543 543 

544<CodeGroup>544<CodeGroup>

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


791* 验证 hook 事件名称正确且区分大小写(`PreToolUse`,而不是 `preToolUse`)791* 验证 hook 事件名称正确且区分大小写(`PreToolUse`,而不是 `preToolUse`)

792* 检查您的匹配器模式是否与工具名称完全匹配792* 检查您的匹配器模式是否与工具名称完全匹配

793* 确保 hook 在 `options.hooks` 中的正确事件类型下793* 确保 hook 在 `options.hooks` 中的正确事件类型下

794* 对于支持匹配器的非工具 hooks,如 `Notification` 和 `SubagentStop`,匹配器匹配不同的字段,而 `Stop` 完全忽略匹配器(请参阅[匹配器模式](/zh-CN/hooks#matcher-patterns))794* 对于支持匹配器的非工具 hooks,如 `Notification` 和 `SubagentStop`,匹配器匹配不同的字段,而 `Stop` 完全忽略匹配器(请参阅[匹配器模式](/docs/zh-CN/hooks#matcher-patterns))

795* 当代理达到 [`max_turns`](/zh-CN/agent-sdk/python#claudeagentoptions) 限制时,hooks 可能不会触发,因为会话在 hooks 可以执行前结束795* 当代理达到 [`max_turns`](/docs/zh-CN/agent-sdk/python#claudeagentoptions) 限制时,hooks 可能不会触发,因为会话在 hooks 可以执行前结束

796 796 

797<h3 id="matcher-not-filtering-as-expected">797<h3 id="matcher-not-filtering-as-expected">

798 匹配器未按预期过滤798 匹配器未按预期过滤


818* 增加 `HookMatcher` 配置中的 `timeout` 值818* 增加 `HookMatcher` 配置中的 `timeout` 值

819* 在 TypeScript 中使用第三个回调参数中的 `AbortSignal` 来优雅地处理取消819* 在 TypeScript 中使用第三个回调参数中的 `AbortSignal` 来优雅地处理取消

820 820 

821{/* min-version: 2.1.208 */}超过超时时间的 `UserPromptSubmit` 或 [`UserPromptExpansion`](/zh-CN/hooks#userpromptexpansion) 回调会用超时消息阻止该提示,会话继续进行。在回调待处理时中断查询会取消待处理的工具调用。在 v2.1.208 之前,这些事件上的回调超时会以 `error_during_execution` 结束查询,在待处理的 `PreToolUse` 回调期间中断可能会让工具调用继续进行。821超过超时时间的 `UserPromptSubmit` 或 [`UserPromptExpansion`](/docs/zh-CN/hooks#userpromptexpansion) 回调会用超时消息阻止该提示,会话继续进行。在回调待处理时中断查询会取消待处理的工具调用。在 v2.1.208 之前,这些事件上的回调超时会以 `error_during_execution` 结束查询,在待处理的 `PreToolUse` 回调期间中断可能会让工具调用继续进行。

822 822 

823<h3 id="tool-blocked-unexpectedly">823<h3 id="tool-blocked-unexpectedly">

824 工具意外被阻止824 工具意外被阻止


852 Python 中不可用会话 hooks852 Python 中不可用会话 hooks

853</h3>853</h3>

854 854 

855`SessionStart` 和 `SessionEnd` 可以在 TypeScript 中注册为 SDK 回调 hooks,但在 Python SDK 中不可用,因为其 `HookEvent` 类型省略了它们。在 Python 中,它们仅作为[shell 命令 hooks](/zh-CN/hooks#hook-events)在设置文件中定义,例如 `.claude/settings.json`。要从您的 SDK 应用程序加载 shell 命令 hooks,请使用 [`setting_sources`](/zh-CN/agent-sdk/python#settingsource) 或 [`settingSources`](/zh-CN/agent-sdk/typescript#settingsource) 包括适当的设置源:855`SessionStart` 和 `SessionEnd` 可以在 TypeScript 中注册为 SDK 回调 hooks,但在 Python SDK 中不可用,因为其 `HookEvent` 类型省略了它们。在 Python 中,它们仅作为[shell 命令 hooks](/docs/zh-CN/hooks#hook-events)在设置文件中定义,例如 `.claude/settings.json`。要从您的 SDK 应用程序加载 shell 命令 hooks,请使用 [`setting_sources`](/docs/zh-CN/agent-sdk/python#settingsource) 或 [`settingSources`](/docs/zh-CN/agent-sdk/typescript#settingsource) 包括适当的设置源:

856 856 

857<CodeGroup>857<CodeGroup>

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


890 systemMessage 未出现在输出中890 systemMessage 未出现在输出中

891</h3>891</h3>

892 892 

893`systemMessage` 字段向用户显示消息,而不是模型。默认情况下,SDK 仅在消息流中为 `SessionStart` 和 `Setup` hooks 显示 hook 输出,因此除非您设置 `includeHookEvents`(Python 中为 `include_hook_events`),否则来自任何其他 hook 事件的消息不会出现。要改为将上下文传递给模型,请返回 [`additionalContext`](/zh-CN/hooks#add-context-for-claude)。893`systemMessage` 字段向用户显示消息,而不是模型。默认情况下,SDK 仅在消息流中为 `SessionStart` 和 `Setup` hooks 显示 hook 输出,因此除非您设置 `includeHookEvents`(Python 中为 `include_hook_events`),否则来自任何其他 hook 事件的消息不会出现。要改为将上下文传递给模型,请返回 [`additionalContext`](/docs/zh-CN/hooks#add-context-for-claude)。

894 894 

895如果您需要可靠地将 hook 决定呈现给您的应用程序,请单独记录它们或使用专用输出通道。895如果您需要可靠地将 hook 决定呈现给您的应用程序,请单独记录它们或使用专用输出通道。

896 896 


898 相关资源898 相关资源

899</h2>899</h2>

900 900 

901* [Claude Code hooks 参考](/zh-CN/hooks):完整的 JSON 输入/输出架构、事件文档和匹配器模式901* [Claude Code hooks 参考](/docs/zh-CN/hooks):完整的 JSON 输入/输出架构、事件文档和匹配器模式

902* [Claude Code hooks 指南](/zh-CN/hooks-guide):shell 命令 hook 示例和演练902* [Claude Code hooks 指南](/docs/zh-CN/hooks-guide):shell 命令 hook 示例和演练

903* [TypeScript SDK 参考](/zh-CN/agent-sdk/typescript):hook 类型、输入/输出定义和配置选项903* [TypeScript SDK 参考](/docs/zh-CN/agent-sdk/typescript):hook 类型、输入/输出定义和配置选项

904* [Python SDK 参考](/zh-CN/agent-sdk/python):hook 类型、输入/输出定义和配置选项904* [Python SDK 参考](/docs/zh-CN/agent-sdk/python):hook 类型、输入/输出定义和配置选项

905* [权限](/zh-CN/agent-sdk/permissions):控制您的代理可以做什么905* [权限](/docs/zh-CN/agent-sdk/permissions):控制您的代理可以做什么

906* [自定义工具](/zh-CN/agent-sdk/custom-tools):构建工具以扩展代理功能906* [自定义工具](/docs/zh-CN/agent-sdk/custom-tools):构建工具以扩展代理功能

Details

6 6 

7> 使用权限模式、hooks 和声明式允许/拒绝规则来控制您的代理如何使用工具。7> 使用权限模式、hooks 和声明式允许/拒绝规则来控制您的代理如何使用工具。

8 8 

9Claude Agent SDK 提供权限控制来管理 Claude 如何使用工具。使用权限模式和规则来定义自动允许的内容,以及使用 [`canUseTool` 回调](/zh-CN/agent-sdk/user-input) 在运行时处理其他所有情况。9Claude Agent SDK 提供权限控制来管理 Claude 如何使用工具。使用权限模式和规则来定义自动允许的内容,以及使用 [`canUseTool` 回调](/docs/zh-CN/agent-sdk/user-input) 在运行时处理其他所有情况。

10 10 

11<Note>11<Note>

12 本页面涵盖权限模式和规则。要构建交互式批准流程,其中用户在运行时批准或拒绝工具请求,请参阅 [处理批准和用户输入](/zh-CN/agent-sdk/user-input)。12 本页面涵盖权限模式和规则。要构建交互式批准流程,其中用户在运行时批准或拒绝工具请求,请参阅 [处理批准和用户输入](/docs/zh-CN/agent-sdk/user-input)。

13</Note>13</Note>

14 14 

15<h2 id="how-permissions-are-evaluated">15<h2 id="how-permissions-are-evaluated">


20 20 

21<Steps>21<Steps>

22 <Step title="Hooks">22 <Step title="Hooks">

23 首先运行 [hooks](/zh-CN/agent-sdk/hooks)。一个 hook 可以直接拒绝调用或将其传递下去。返回 `allow` 的 hook 不会跳过下面的拒绝和询问规则;无论 hook 结果如何,这些规则都会被评估。23 首先运行 [hooks](/docs/zh-CN/agent-sdk/hooks)。一个 hook 可以直接拒绝调用或将其传递下去。返回 `allow` 的 hook 不会跳过下面的拒绝和询问规则;无论 hook 结果如何,这些规则都会被评估。

24 </Step>24 </Step>

25 25 

26 <Step title="拒绝规则">26 <Step title="拒绝规则">

27 检查 `deny` 规则(来自 `disallowed_tools` 和 [settings.json](/zh-CN/settings#permission-settings))。如果拒绝规则匹配,工具被阻止,即使在 `bypassPermissions` 模式下也是如此。裸名称拒绝规则(如 `Bash`)在此评估开始之前将工具从 Claude 的上下文中移除,因此只有作用域规则(如 `Bash(rm *)`)在此步骤中被检查。27 检查 `deny` 规则(来自 `disallowed_tools` 和 [settings.json](/docs/zh-CN/settings#permission-settings))。如果拒绝规则匹配,工具被阻止,即使在 `bypassPermissions` 模式下也是如此。裸名称拒绝规则(如 `Bash`)在此评估开始之前将工具从 Claude 的上下文中移除,因此只有作用域规则(如 `Bash(rm *)`)在此步骤中被检查。

28 </Step>28 </Step>

29 29 

30 <Step title="询问规则">30 <Step title="询问规则">

31 检查来自 [settings.json](/zh-CN/settings#permission-settings) 的 `ask` 规则。如果询问规则匹配,调用会传递到您的 [`canUseTool` 回调](/zh-CN/agent-sdk/user-input) 以获得确认,即使在 `bypassPermissions` 模式下也是如此。31 检查来自 [settings.json](/docs/zh-CN/settings#permission-settings) 的 `ask` 规则。如果询问规则匹配,调用会传递到您的 [`canUseTool` 回调](/docs/zh-CN/agent-sdk/user-input) 以获得确认,即使在 `bypassPermissions` 模式下也是如此。

32 32 

33 需要用户交互的工具行为相同:`AskUserQuestion` 和 MCP 工具,其服务器设置 [`_meta["anthropic/requiresUserInteraction"]`](/zh-CN/mcp#require-approval-for-a-specific-tool) 总是传递到回调,即使当允许规则匹配时。在 `dontAsk` 模式下,两种情况都被拒绝,因为该模式从不提示。{/* min-version: 2.1.199 */}MCP 注解需要 Claude Code v2.1.199 或更高版本。33 需要用户交互的工具行为相同:`AskUserQuestion` 和 MCP 工具,其服务器设置 [`_meta["anthropic/requiresUserInteraction"]`](/docs/zh-CN/mcp#require-approval-for-a-specific-tool) 总是传递到回调,即使当允许规则匹配时。在 `dontAsk` 模式下,两种情况都被拒绝,因为该模式从不提示。MCP 注解需要 Claude Code v2.1.199 或更高版本。

34 34 

35 [claude.ai connector](/zh-CN/mcp#organization-controls-on-connector-tools) 工具,您的组织已设置为 `ask` 也会在此步骤离开流程。每个调用都会传递到回调,即使在 `bypassPermissions` 模式下,即使当允许规则匹配时。回调接收原因 `Your organization requires approval for this tool`。在 `dontAsk` 模式下,调用被拒绝,因为该模式从不提示。35 [claude.ai connector](/docs/zh-CN/mcp#organization-controls-on-connector-tools) 工具,您的组织已设置为 `ask` 也会在此步骤离开流程。每个调用都会传递到回调,即使在 `bypassPermissions` 模式下,即使当允许规则匹配时。回调接收原因 `Your organization requires approval for this tool`。在 `dontAsk` 模式下,调用被拒绝,因为该模式从不提示。

36 </Step>36 </Step>

37 37 

38 <Step title="权限模式">38 <Step title="权限模式">


44 </Step>44 </Step>

45 45 

46 <Step title="canUseTool 回调">46 <Step title="canUseTool 回调">

47 如果上述任何步骤都未解决,调用您的 [`canUseTool` 回调](/zh-CN/agent-sdk/user-input) 以获得决定。在 `dontAsk` 模式下,此步骤被跳过,工具被拒绝。47 如果上述任何步骤都未解决,调用您的 [`canUseTool` 回调](/docs/zh-CN/agent-sdk/user-input) 以获得决定。在 `dontAsk` 模式下,此步骤被跳过,工具被拒绝。

48 </Step>48 </Step>

49</Steps>49</Steps>

50 50 


57 57 

58带有说明符的条目(如 `Bash(ls *)`)和 `acceptEdits` 模式不会触发它,来自设置文件的允许规则对检查不可见。58带有说明符的条目(如 `Bash(ls *)`)和 `acceptEdits` 模式不会触发它,来自设置文件的允许规则对检查不可见。

59 59 

60使用 `process.on('warning', ...)` 监听并匹配代码以记录或抑制它。要无论模式和规则如何都控制每个工具调用,请改用 [`PreToolUse` hook](/zh-CN/agent-sdk/hooks)。60使用 `process.on('warning', ...)` 监听并匹配代码以记录或抑制它。要无论模式和规则如何都控制每个工具调用,请改用 [`PreToolUse` hook](/docs/zh-CN/agent-sdk/hooks)。

61 61 

62本页面重点关注 **允许和拒绝规则** 以及 **权限模式**。对于其他步骤:62本页面重点关注 **允许和拒绝规则** 以及 **权限模式**。对于其他步骤:

63 63 

64* **Hooks:** 运行自定义代码以允许、拒绝或修改工具请求。请参阅 [使用 hooks 控制执行](/zh-CN/agent-sdk/hooks)。64* **Hooks:** 运行自定义代码以允许、拒绝或修改工具请求。请参阅 [使用 hooks 控制执行](/docs/zh-CN/agent-sdk/hooks)。

65* **canUseTool 回调:** 在运行时提示用户批准,当没有更早的步骤解决调用时。请参阅 [处理批准和用户输入](/zh-CN/agent-sdk/user-input)。65* **canUseTool 回调:** 在运行时提示用户批准,当没有更早的步骤解决调用时。请参阅 [处理批准和用户输入](/docs/zh-CN/agent-sdk/user-input)。

66 66 

67<h2 id="allow-and-deny-rules">67<h2 id="allow-and-deny-rules">

68 允许和拒绝规则68 允许和拒绝规则


81 81 

82范围化规则用于 `Read` 和 `Edit` 采用路径模式。`Edit(path)` 规则管理所有写入文件的内置工具,包括 `Write` 和 `NotebookEdit`;`Write(path)` 规则永远不会被文件权限检查匹配。82范围化规则用于 `Read` 和 `Edit` 采用路径模式。`Edit(path)` 规则管理所有写入文件的内置工具,包括 `Write` 和 `NotebookEdit`;`Write(path)` 规则永远不会被文件权限检查匹配。

83 83 

84使用 `//path` 表示绝对文件系统路径:`Edit(//secrets/**)` 的拒绝规则阻止在磁盘上 `/secrets` 下任何位置的写入。使用单个前导斜杠,`Edit(/secrets/**)` 在规则的源处锚定。对于通过 `allowed_tools` 或 `disallowed_tools` 传递的规则,这意味着会话的工作目录,因此规则不会阻止磁盘上的 `/secrets`。请参阅 [Read 和 Edit 规则](/zh-CN/permissions#read-and-edit) 了解四种锚定形式以及来自设置文件的规则如何解析。84使用 `//path` 表示绝对文件系统路径:`Edit(//secrets/**)` 的拒绝规则阻止在磁盘上 `/secrets` 下任何位置的写入。使用单个前导斜杠,`Edit(/secrets/**)` 在规则的源处锚定。对于通过 `allowed_tools` 或 `disallowed_tools` 传递的规则,这意味着会话的工作目录,因此规则不会阻止磁盘上的 `/secrets`。请参阅 [Read 和 Edit 规则](/docs/zh-CN/permissions#read-and-edit) 了解四种锚定形式以及来自设置文件的规则如何解析。

85 85 

86<Warning>86<Warning>

87 **自动批准的工具永远不会到达 `canUseTool`。** 在任何早期步骤中批准的工具调用,通过 `acceptEdits` 或 `bypassPermissions`,或通过允许规则,会跳过您的 `canUseTool` 回调,因此您在那里放置的权限检查对该工具被静默绕过。`AskUserQuestion`、标记有 [`_meta["anthropic/requiresUserInteraction"]`](/zh-CN/mcp#require-approval-for-a-specific-tool) 的 MCP 工具,以及连接器工具[您的组织设置为 `ask`](/zh-CN/mcp#organization-controls-on-connector-tools) 仍然到达回调,即使允许规则匹配。87 **自动批准的工具永远不会到达 `canUseTool`。** 在任何早期步骤中批准的工具调用,通过 `acceptEdits` 或 `bypassPermissions`,或通过允许规则,会跳过您的 `canUseTool` 回调,因此您在那里放置的权限检查对该工具被静默绕过。`AskUserQuestion`、标记有 [`_meta["anthropic/requiresUserInteraction"]`](/docs/zh-CN/mcp#require-approval-for-a-specific-tool) 的 MCP 工具,以及连接器工具[您的组织设置为 `ask`](/docs/zh-CN/mcp#organization-controls-on-connector-tools) 仍然到达回调,即使允许规则匹配。

88 88 

89 覆盖范围取决于条目的形式:像 `Read` 或 `mcp__github__get_issue` 这样的裸名称自动批准对该工具的每个调用,而像 `Bash(ls *)` 这样的范围化规则仅自动批准匹配的调用,其他 `Bash` 调用仍然继续进行回调。对于必须在每个工具调用上运行的检查,请使用 [`PreToolUse` hook](/zh-CN/agent-sdk/hooks):hooks 在每个其他步骤之前运行,hook 拒绝甚至在 `bypassPermissions` 模式中也适用。89 覆盖范围取决于条目的形式:像 `Read` 或 `mcp__github__get_issue` 这样的裸名称自动批准对该工具的每个调用,而像 `Bash(ls *)` 这样的范围化规则仅自动批准匹配的调用,其他 `Bash` 调用仍然继续进行回调。对于必须在每个工具调用上运行的检查,请使用 [`PreToolUse` hook](/docs/zh-CN/agent-sdk/hooks):hooks 在每个其他步骤之前运行,hook 拒绝甚至在 `bypassPermissions` 模式中也适用。

90</Warning>90</Warning>

91 91 

92对于锁定的代理,将 `allowedTools` 与 `permissionMode: "dontAsk"` 配对。列出的工具被批准,除了上面警告中的始终提示工具;其他任何内容都被直接拒绝,而不是提示:92对于锁定的代理,将 `allowedTools` 与 `permissionMode: "dontAsk"` 配对。列出的工具被批准,除了上面警告中的始终提示工具;其他任何内容都被直接拒绝,而不是提示:


102 **`allowed_tools` 不约束 `bypassPermissions`。** `allowed_tools` 仅预批准您列出的工具。未列出的工具不与任何允许规则匹配,并继续进行权限模式,其中 `bypassPermissions` 批准它们。设置 `allowed_tools=["Read"]` 与 `permission_mode="bypassPermissions"` 一起仍然批准每个工具,包括 `Bash`、`Write` 和 `Edit`。如果您需要 `bypassPermissions` 但想要阻止特定工具,请使用 `disallowed_tools`。102 **`allowed_tools` 不约束 `bypassPermissions`。** `allowed_tools` 仅预批准您列出的工具。未列出的工具不与任何允许规则匹配,并继续进行权限模式,其中 `bypassPermissions` 批准它们。设置 `allowed_tools=["Read"]` 与 `permission_mode="bypassPermissions"` 一起仍然批准每个工具,包括 `Bash`、`Write` 和 `Edit`。如果您需要 `bypassPermissions` 但想要阻止特定工具,请使用 `disallowed_tools`。

103</Warning>103</Warning>

104 104 

105您也可以在 `.claude/settings.json` 中声明式地配置允许、拒绝和询问规则。当启用 `project` 设置源时,这些规则被读取,默认 `query()` 选项就是这样。如果您显式设置 `setting_sources`(TypeScript:`settingSources`),请包含 `"project"` 以使其应用。请参阅 [权限设置](/zh-CN/settings#permission-settings) 了解规则语法。105您也可以在 `.claude/settings.json` 中声明式地配置允许、拒绝和询问规则。当启用 `project` 设置源时,这些规则被读取,默认 `query()` 选项就是这样。如果您显式设置 `setting_sources`(TypeScript:`settingSources`),请包含 `"project"` 以使其应用。请参阅 [权限设置](/docs/zh-CN/settings#permission-settings) 了解规则语法。

106 106 

107<h2 id="permission-modes">107<h2 id="permission-modes">

108 权限模式108 权限模式


119| 模式 | 描述 | 工具行为 |119| 模式 | 描述 | 工具行为 |

120| :------------------ | :------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------- |120| :------------------ | :------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------- |

121| `default` | 标准权限行为 | 无自动批准;不匹配的工具触发您的 `canUseTool` 回调 |121| `default` | 标准权限行为 | 无自动批准;不匹配的工具触发您的 `canUseTool` 回调 |

122| `dontAsk` | 拒绝而不是提示 | 任何未被 `allowed_tools` 或规则预批准的内容都被拒绝;连接器工具[您的组织设置为 `ask`](/zh-CN/mcp#organization-controls-on-connector-tools)和需要用户交互的工具即使您已预批准它们也被拒绝。`canUseTool` 永远不会被调用 |122| `dontAsk` | 拒绝而不是提示 | 任何未被 `allowed_tools` 或规则预批准的内容都被拒绝;连接器工具[您的组织设置为 `ask`](/docs/zh-CN/mcp#organization-controls-on-connector-tools)和需要用户交互的工具即使您已预批准它们也被拒绝。`canUseTool` 永远不会被调用 |

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

124| `bypassPermissions` | 绕过权限检查 | 工具运行而无需权限提示,除了显式 [`ask` 规则](#how-permissions-are-evaluated)匹配的工具、连接器工具[您的组织设置为 `ask`](/zh-CN/mcp#organization-controls-on-connector-tools)和需要用户交互的工具(谨慎使用) |124| `bypassPermissions` | 绕过权限检查 | 工具运行而无需权限提示,除了显式 [`ask` 规则](#how-permissions-are-evaluated)匹配的工具、连接器工具[您的组织设置为 `ask`](/docs/zh-CN/mcp#organization-controls-on-connector-tools)和需要用户交互的工具(谨慎使用) |

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

126| `auto` | 模型分类批准 | 模型分类器批准或拒绝每个工具调用。请参阅 [Auto 模式](/zh-CN/permission-modes#eliminate-prompts-with-auto-mode) 了解可用性 |126| `auto` | 模型分类批准 | 模型分类器批准或拒绝每个工具调用。请参阅 [Auto 模式](/docs/zh-CN/permission-modes#eliminate-prompts-with-auto-mode) 了解可用性 |

127 127 

128<Warning>128<Warning>

129 **子代理继承:** 当父代理使用 `bypassPermissions`、`acceptEdits` 或 `auto` 时,所有子代理继承该模式,并且不能按子代理覆盖。子代理可能有不同的系统提示和行为约束较少,比您的主代理,所以继承 `bypassPermissions` 授予它们完整的、自主的系统访问权限。显式 [`ask` 规则](#how-permissions-are-evaluated)、连接器工具[您的组织设置为 `ask`](/zh-CN/mcp#organization-controls-on-connector-tools)和需要用户交互的工具仍然会强制提示。129 **子代理继承:** 当父代理使用 `bypassPermissions`、`acceptEdits` 或 `auto` 时,所有子代理继承该模式,并且不能按子代理覆盖。子代理可能有不同的系统提示和行为约束较少,比您的主代理,所以继承 `bypassPermissions` 授予它们完整的、自主的系统访问权限。显式 [`ask` 规则](#how-permissions-are-evaluated)、连接器工具[您的组织设置为 `ask`](/docs/zh-CN/mcp#organization-controls-on-connector-tools)和需要用户交互的工具仍然会强制提示。

130</Warning>130</Warning>

131 131 

132<h3 id="set-permission-mode">132<h3 id="set-permission-mode">


260 不询问模式(`dontAsk`)260 不询问模式(`dontAsk`)

261</h4>261</h4>

262 262 

263将任何权限提示转换为拒绝。由 `allowed_tools`、`settings.json` 允许规则或作为 hook 运行的工具正常运行。连接器工具[您的组织设置为 `ask`](/zh-CN/mcp#organization-controls-on-connector-tools)和需要用户交互的工具即使允许规则匹配也被拒绝。其他所有内容都被拒绝,无需调用 `canUseTool`。263将任何权限提示转换为拒绝。由 `allowed_tools`、`settings.json` 允许规则或作为 hook 运行的工具正常运行。连接器工具[您的组织设置为 `ask`](/docs/zh-CN/mcp#organization-controls-on-connector-tools)和需要用户交互的工具即使允许规则匹配也被拒绝。其他所有内容都被拒绝,无需调用 `canUseTool`。

264 264 

265**使用时机:** 您想要为无头代理提供固定的、明确的工具表面,并且更喜欢硬拒绝而不是默默依赖 `canUseTool` 不存在。265**使用时机:** 您想要为无头代理提供固定的、明确的工具表面,并且更喜欢硬拒绝而不是默默依赖 `canUseTool` 不存在。

266 266 


273<Warning>273<Warning>

274 谨慎使用。Claude 在此模式下具有完整的系统访问权限。仅在您信任所有可能操作的受控环境中使用。274 谨慎使用。Claude 在此模式下具有完整的系统访问权限。仅在您信任所有可能操作的受控环境中使用。

275 275 

276 `allowed_tools` 不约束此模式。每个工具都被批准,而不仅仅是您列出的工具。拒绝规则(`disallowed_tools`)、显式 `ask` 规则和 hooks 在模式检查之前被评估,仍然可以阻止工具。连接器工具[您的组织设置为 `ask`](/zh-CN/mcp#organization-controls-on-connector-tools)和需要用户交互的工具仍然会通过您的 `canUseTool` 回调。276 `allowed_tools` 不约束此模式。每个工具都被批准,而不仅仅是您列出的工具。拒绝规则(`disallowed_tools`)、显式 `ask` 规则和 hooks 在模式检查之前被评估,仍然可以阻止工具。连接器工具[您的组织设置为 `ask`](/docs/zh-CN/mcp#organization-controls-on-connector-tools)和需要用户交互的工具仍然会通过您的 `canUseTool` 回调。

277</Warning>277</Warning>

278 278 

279<h4 id="plan-mode-plan">279<h4 id="plan-mode-plan">

280 规划模式(`plan`)280 规划模式(`plan`)

281</h4>281</h4>

282 282 

283Claude 探索代码库并生成计划而不编辑您的源文件。只读工具在默认模式下运行。文件编辑在规划模式下永远不会自动批准,即使允许规则匹配。它们通过您的 `canUseTool` 回调提示。Claude 可能使用 `AskUserQuestion` 在最终确定计划之前澄清需求。请参阅 [处理批准和用户输入](/zh-CN/agent-sdk/user-input#handle-clarifying-questions) 以处理这些提示。283Claude 探索代码库并生成计划而不编辑您的源文件。只读工具在默认模式下运行。文件编辑在规划模式下永远不会自动批准,即使允许规则匹配。它们通过您的 `canUseTool` 回调提示。Claude 可能使用 `AskUserQuestion` 在最终确定计划之前澄清需求。请参阅 [处理批准和用户输入](/docs/zh-CN/agent-sdk/user-input#handle-clarifying-questions) 以处理这些提示。

284 284 

285**使用时机:** 您想要 Claude 提议更改而不执行它们,例如在代码审查期间或当您需要在进行更改之前批准更改时。285**使用时机:** 您想要 Claude 提议更改而不执行它们,例如在代码审查期间或当您需要在进行更改之前批准更改时。

286 286 


290 290 

291对于权限评估流程中的其他步骤:291对于权限评估流程中的其他步骤:

292 292 

293* [处理批准和用户输入](/zh-CN/agent-sdk/user-input):交互式批准提示和澄清问题293* [处理批准和用户输入](/docs/zh-CN/agent-sdk/user-input):交互式批准提示和澄清问题

294* [Hooks 指南](/zh-CN/agent-sdk/hooks):在代理生命周期中的关键点运行自定义代码294* [Hooks 指南](/docs/zh-CN/agent-sdk/hooks):在代理生命周期中的关键点运行自定义代码

295* [权限规则](/zh-CN/settings#permission-settings):`settings.json` 中的声明式允许/拒绝规则295* [权限规则](/docs/zh-CN/settings#permission-settings):`settings.json` 中的声明式允许/拒绝规则

Details

18pip install claude-agent-sdk18pip install claude-agent-sdk

19```19```

20 20 

21有关 uv、Windows PowerShell 和 API 密钥设置,请参阅 [Agent SDK 概述中的入门](/zh-CN/agent-sdk/overview#get-started)。21有关 uv、Windows PowerShell 和 API 密钥设置,请参阅 [Agent SDK 概述中的入门](/docs/zh-CN/agent-sdk/overview#get-started)。

22 22 

23<h2 id="choosing-between-query-and-claudesdkclient">23<h2 id="choosing-between-query-and-claudesdkclient">

24 在 `query()` 和 `ClaudeSDKClient` 之间选择24 在 `query()` 和 `ClaudeSDKClient` 之间选择


73 `query()`73 `query()`

74</h3>74</h3>

75 75 

76为每次与 Claude Code 的交互创建一个新会话。默认情况下返回一个异步迭代器,当消息到达时产生消息。每次调用 `query()` 都会重新开始,不记得之前的交互,除非你传递 `continue_conversation=True` 或在 [`ClaudeAgentOptions`](#claudeagentoptions) 中传递 `resume`。参见 [Sessions](/zh-CN/agent-sdk/sessions)。76为每次与 Claude Code 的交互创建一个新会话。默认情况下返回一个异步迭代器,当消息到达时产生消息。每次调用 `query()` 都会重新开始,不记得之前的交互,除非你传递 `continue_conversation=True` 或在 [`ClaudeAgentOptions`](#claudeagentoptions) 中传递 `resume`。参见 [Sessions](/docs/zh-CN/agent-sdk/sessions)。

77 77 

78```python theme={null}78```python theme={null}

79async def query(79async def query(


565| `interrupt()` | 发送中断信号(仅在流式模式下工作) |565| `interrupt()` | 发送中断信号(仅在流式模式下工作) |

566| `set_permission_mode(mode)` | 更改当前会话的权限模式 |566| `set_permission_mode(mode)` | 更改当前会话的权限模式 |

567| `set_model(model)` | 更改当前会话的模型。传递 `None` 以重置为默认值 |567| `set_model(model)` | 更改当前会话的模型。传递 `None` 以重置为默认值 |

568| `rewind_files(user_message_id)` | 将文件恢复到指定用户消息时的状态。需要 `enable_file_checkpointing=True`。见 [文件检查点](/zh-CN/agent-sdk/file-checkpointing) |568| `rewind_files(user_message_id)` | 将文件恢复到指定用户消息时的状态。需要 `enable_file_checkpointing=True`。见 [文件检查点](/docs/zh-CN/agent-sdk/file-checkpointing) |

569| `get_mcp_status()` | 获取所有配置的 MCP 服务器的状态。返回 [`McpStatusResponse`](#mcpstatusresponse) |569| `get_mcp_status()` | 获取所有配置的 MCP 服务器的状态。返回 [`McpStatusResponse`](#mcpstatusresponse) |

570| `reconnect_mcp_server(server_name)` | 重试连接到失败或断开连接的 MCP 服务器 |570| `reconnect_mcp_server(server_name)` | 重试连接到失败或断开连接的 MCP 服务器 |

571| `toggle_mcp_server(server_name, enabled)` | 在会话中启用或禁用 MCP 服务器。禁用会移除其工具 |571| `toggle_mcp_server(server_name, enabled)` | 在会话中启用或禁用 MCP 服务器。禁用会移除其工具 |


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

908| :---------------------------- | :--------------------------------------------------------------------------------------- | :------------------ | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |908| :---------------------------- | :--------------------------------------------------------------------------------------- | :------------------ | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

909| `tools` | `list[str] \| ToolsPreset \| None` | `None` | 工具配置。使用 `{"type": "preset", "preset": "claude_code"}` 获取 Claude Code 的默认工具 |909| `tools` | `list[str] \| ToolsPreset \| None` | `None` | 工具配置。使用 `{"type": "preset", "preset": "claude_code"}` 获取 Claude Code 的默认工具 |

910| `allowed_tools` | `list[str]` | `[]` | 无需提示即可自动批准的工具。这不会限制 Claude 仅使用这些工具;未列出的工具会通过 `permission_mode` 和 `can_use_tool` 处理。使用 `disallowed_tools` 阻止工具。见 [权限](/zh-CN/agent-sdk/permissions#allow-and-deny-rules) |910| `allowed_tools` | `list[str]` | `[]` | 无需提示即可自动批准的工具。这不会限制 Claude 仅使用这些工具;未列出的工具会通过 `permission_mode` 和 `can_use_tool` 处理。使用 `disallowed_tools` 阻止工具。见 [权限](/docs/zh-CN/agent-sdk/permissions#allow-and-deny-rules) |

911| `system_prompt` | `str \| SystemPromptPreset \| SystemPromptFile \| None` | `None` | 系统提示配置。传递字符串以获取自定义提示,`{"type": "preset", "preset": "claude_code"}` 获取 Claude Code 的系统提示(带可选 `"append"`),或 `{"type": "file", "path": "..."}` 从磁盘加载大型提示。见 [`SystemPromptPreset`](#systempromptpreset) 和 [`SystemPromptFile`](#systempromptfile) |911| `system_prompt` | `str \| SystemPromptPreset \| SystemPromptFile \| None` | `None` | 系统提示配置。传递字符串以获取自定义提示,`{"type": "preset", "preset": "claude_code"}` 获取 Claude Code 的系统提示(带可选 `"append"`),或 `{"type": "file", "path": "..."}` 从磁盘加载大型提示。见 [`SystemPromptPreset`](#systempromptpreset) 和 [`SystemPromptFile`](#systempromptfile) |

912| `mcp_servers` | `dict[str, McpServerConfig] \| str \| Path` | `{}` | MCP 服务器配置或配置文件路径 |912| `mcp_servers` | `dict[str, McpServerConfig] \| str \| Path` | `{}` | MCP 服务器配置或配置文件路径 |

913| `strict_mcp_config` | `bool` | `False` | 当为 `True` 时,仅使用在 `mcp_servers` 中传递的服务器,忽略项目 `.mcp.json`、用户设置、插件提供的 MCP 服务器和 [claude.ai 连接器](/zh-CN/mcp#use-mcp-servers-from-claude-ai)。映射到 CLI `--strict-mcp-config` 标志 |913| `strict_mcp_config` | `bool` | `False` | 当为 `True` 时,仅使用在 `mcp_servers` 中传递的服务器,忽略项目 `.mcp.json`、用户设置、插件提供的 MCP 服务器和 [claude.ai 连接器](/docs/zh-CN/mcp#use-mcp-servers-from-claude-ai)。映射到 CLI `--strict-mcp-config` 标志 |

914| `permission_mode` | `PermissionMode \| None` | `None` | 工具使用的权限模式 |914| `permission_mode` | `PermissionMode \| None` | `None` | 工具使用的权限模式 |

915| `continue_conversation` | `bool` | `False` | 继续最近的对话 |915| `continue_conversation` | `bool` | `False` | 继续最近的对话 |

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

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

918| `max_budget_usd` | `float \| None` | `None` | 当客户端成本估计达到此 USD 值时停止查询。与 `total_cost_usd` 的相同估计进行比较;见 [跟踪成本和使用](/zh-CN/agent-sdk/cost-tracking) 了解准确性注意事项 |918| `max_budget_usd` | `float \| None` | `None` | 当客户端成本估计达到此 USD 值时停止查询。与 `total_cost_usd` 的相同估计进行比较;见 [跟踪成本和使用](/docs/zh-CN/agent-sdk/cost-tracking) 了解准确性注意事项 |

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

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

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

922| `fallback_model` | `str \| None` | `None` | 主模型失败时使用的备用模型 |922| `fallback_model` | `str \| None` | `None` | 主模型失败时使用的备用模型 |

923| `betas` | `list[SdkBeta]` | `[]` | 要启用的测试功能。见 [`SdkBeta`](#sdkbeta) 了解可用选项 |923| `betas` | `list[SdkBeta]` | `[]` | 要启用的测试功能。见 [`SdkBeta`](#sdkbeta) 了解可用选项 |

924| `output_format` | `dict[str, Any] \| None` | `None` | 结构化响应的输出格式(例如 `{"type": "json_schema", "schema": {...}}`)。见 [结构化输出](/zh-CN/agent-sdk/structured-outputs) 了解详情 |924| `output_format` | `dict[str, Any] \| None` | `None` | 结构化响应的输出格式(例如 `{"type": "json_schema", "schema": {...}}`)。见 [结构化输出](/docs/zh-CN/agent-sdk/structured-outputs) 了解详情 |

925| `permission_prompt_tool_name` | `str \| None` | `None` | 权限提示的 MCP 工具名称 |925| `permission_prompt_tool_name` | `str \| None` | `None` | 权限提示的 MCP 工具名称 |

926| `cwd` | `str \| Path \| None` | `None` | 当前工作目录 |926| `cwd` | `str \| Path \| None` | `None` | 当前工作目录 |

927| `cli_path` | `str \| Path \| None` | `None` | Claude Code CLI 可执行文件的自定义路径 |927| `cli_path` | `str \| Path \| None` | `None` | Claude Code CLI 可执行文件的自定义路径 |

928| `settings` | `str \| None` | `None` | 设置文件的路径 |928| `settings` | `str \| None` | `None` | 设置文件的路径 |

929| `add_dirs` | `list[str \| Path]` | `[]` | Claude 可以访问的其他目录 |929| `add_dirs` | `list[str \| Path]` | `[]` | Claude 可以访问的其他目录 |

930| `env` | `dict[str, str]` | `{}` | 环境变量合并到继承的进程环境之上。见 [环境变量](/zh-CN/env-vars) 了解底层 CLI 读取的变量,以及 [处理缓慢或停滞的 API 响应](#handle-slow-or-stalled-api-responses) 了解超时相关变量 |930| `env` | `dict[str, str]` | `{}` | 环境变量合并到继承的进程环境之上。见 [环境变量](/docs/zh-CN/env-vars) 了解底层 CLI 读取的变量,以及 [处理缓慢或停滞的 API 响应](#handle-slow-or-stalled-api-responses) 了解超时相关变量 |

931| `extra_args` | `dict[str, str \| None]` | `{}` | 直接传递给 CLI 的其他 CLI 参数 |931| `extra_args` | `dict[str, str \| None]` | `{}` | 直接传递给 CLI 的其他 CLI 参数 |

932| `max_buffer_size` | `int \| None` | `None` | 缓冲 CLI stdout 时的最大字节数 |932| `max_buffer_size` | `int \| None` | `None` | 缓冲 CLI stdout 时的最大字节数 |

933| `debug_stderr` | `Any` | `sys.stderr` | *已弃用* - 用于调试输出的类文件对象。改用 `stderr` 回调 |933| `debug_stderr` | `Any` | `sys.stderr` | *已弃用* - 用于调试输出的类文件对象。改用 `stderr` 回调 |

934| `stderr` | `Callable[[str], None] \| None` | `None` | CLI 中 stderr 输出的回调函数 |934| `stderr` | `Callable[[str], None] \| None` | `None` | CLI 中 stderr 输出的回调函数 |

935| `can_use_tool` | [`CanUseTool`](#canusetool) ` \| None` | `None` | 工具权限回调,仅在[权限流](/zh-CN/agent-sdk/permissions#how-permissions-are-evaluated)落到提示时调用。不会为 `allowed_tools` 自动批准的调用、允许规则或 `permission_mode` 调用。见 [`CanUseTool`](#canusetool) 了解详情 |935| `can_use_tool` | [`CanUseTool`](#canusetool) ` \| None` | `None` | 工具权限回调,仅在[权限流](/docs/zh-CN/agent-sdk/permissions#how-permissions-are-evaluated)落到提示时调用。不会为 `allowed_tools` 自动批准的调用、允许规则或 `permission_mode` 调用。见 [`CanUseTool`](#canusetool) 了解详情 |

936| `hooks` | `dict[HookEvent, list[HookMatcher]] \| None` | `None` | 用于拦截事件的 hooks 配置 |936| `hooks` | `dict[HookEvent, list[HookMatcher]] \| None` | `None` | 用于拦截事件的 hooks 配置 |

937| `user` | `str \| None` | `None` | 用户标识符 |937| `user` | `str \| None` | `None` | 用户标识符 |

938| `include_partial_messages` | `bool` | `False` | 包括部分消息流式事件。启用时,会产生 [`StreamEvent`](#streamevent) 消息 |938| `include_partial_messages` | `bool` | `False` | 包括部分消息流式事件。启用时,会产生 [`StreamEvent`](#streamevent) 消息 |

939| `include_hook_events` | `bool` | `False` | 在消息流中包括 hooks 生命周期事件作为 `HookEventMessage` 对象 |939| `include_hook_events` | `bool` | `False` | 在消息流中包括 hooks 生命周期事件作为 `HookEventMessage` 对象 |

940| `fork_session` | `bool` | `False` | 使用 `resume` 恢复时,分叉到新会话 ID 而不是继续原始会话 |940| `fork_session` | `bool` | `False` | 使用 `resume` 恢复时,分叉到新会话 ID 而不是继续原始会话 |

941| `agents` | `dict[str, AgentDefinition] \| None` | `None` | 以编程方式定义的子代理 |941| `agents` | `dict[str, AgentDefinition] \| None` | `None` | 以编程方式定义的子代理 |

942| `plugins` | `list[SdkPluginConfig]` | `[]` | 从本地路径加载自定义插件。见 [Plugins](/zh-CN/agent-sdk/plugins) 了解详情 |942| `plugins` | `list[SdkPluginConfig]` | `[]` | 从本地路径加载自定义插件。见 [Plugins](/docs/zh-CN/agent-sdk/plugins) 了解详情 |

943| `sandbox` | [`SandboxSettings`](#sandboxsettings) ` \| None` | `None` | 以编程方式配置沙箱行为。见 [沙箱设置](#sandboxsettings) 了解详情 |943| `sandbox` | [`SandboxSettings`](#sandboxsettings) ` \| None` | `None` | 以编程方式配置沙箱行为。见 [沙箱设置](#sandboxsettings) 了解详情 |

944| `setting_sources` | `list[SettingSource] \| None` | `None`(CLI 默认值:所有源) | 控制加载哪些文件系统设置。传递 `[]` 以禁用用户、项目和本地设置。无论如何都会加载托管策略设置;当会话使用组织凭证在[符合条件的配置](/zh-CN/server-managed-settings#platform-availability)上进行身份验证时,会获取服务器管理的设置。见 [使用 Claude Code 功能](/zh-CN/agent-sdk/claude-code-features#what-settingsources-does-not-control) 了解无论此选项如何都会读取的输入,以及如何禁用它们 |944| `setting_sources` | `list[SettingSource] \| None` | `None`(CLI 默认值:所有源) | 控制加载哪些文件系统设置。传递 `[]` 以禁用用户、项目和本地设置。无论如何都会加载托管策略设置;当会话使用组织凭证在[符合条件的配置](/docs/zh-CN/server-managed-settings#platform-availability)上进行身份验证时,会获取服务器管理的设置。见 [使用 Claude Code 功能](/docs/zh-CN/agent-sdk/claude-code-features#what-settingsources-does-not-control) 了解无论此选项如何都会读取的输入,以及如何禁用它们 |

945| `skills` | `list[str] \| Literal["all"] \| None` | `None` | 会话可用的技能。传递 `"all"` 以启用每个发现的技能,或传递技能名称列表。设置时,SDK 会自动将 Skill 工具添加到 `allowed_tools`。如果你也传递 `tools`,在该列表中包含 `"Skill"`。见 [Skills](/zh-CN/agent-sdk/skills) |945| `skills` | `list[str] \| Literal["all"] \| None` | `None` | 会话可用的技能。传递 `"all"` 以启用每个发现的技能,或传递技能名称列表。设置时,SDK 会自动将 Skill 工具添加到 `allowed_tools`。如果你也传递 `tools`,在该列表中包含 `"Skill"`。见 [Skills](/docs/zh-CN/agent-sdk/skills) |

946| `max_thinking_tokens` | `int \| None` | `None` | *已弃用* - 思考块的最大令牌数。改用 `thinking` |946| `max_thinking_tokens` | `int \| None` | `None` | *已弃用* - 思考块的最大令牌数。改用 `thinking` |

947| `thinking` | [`ThinkingConfig`](#thinkingconfig) ` \| None` | `None` | 控制扩展思考行为。优先于 `max_thinking_tokens` |947| `thinking` | [`ThinkingConfig`](#thinkingconfig) ` \| None` | `None` | 控制扩展思考行为。优先于 `max_thinking_tokens` |

948| `effort` | [`EffortLevel`](#effortlevel) ` \| None` | `None` | 思考深度的努力级别。见 [调整努力级别](/zh-CN/model-config#adjust-effort-level) |948| `effort` | [`EffortLevel`](#effortlevel) ` \| None` | `None` | 思考深度的努力级别。见 [调整努力级别](/docs/zh-CN/model-config#adjust-effort-level) |

949| `session_store` | [`SessionStore`](/zh-CN/agent-sdk/session-storage#the-sessionstore-interface) ` \| None` | `None` | 将会话记录镜像到外部后端,以便任何主机都可以恢复它们。见 [将会话持久化到外部存储](/zh-CN/agent-sdk/session-storage) |949| `session_store` | [`SessionStore`](/docs/zh-CN/agent-sdk/session-storage#the-sessionstore-interface) ` \| None` | `None` | 将会话记录镜像到外部后端,以便任何主机都可以恢复它们。见 [将会话持久化到外部存储](/docs/zh-CN/agent-sdk/session-storage) |

950| `session_store_flush` | `Literal["batched", "eager"]` | `"batched"` | 何时将镜像的记录条目刷新到 `session_store`。`"batched"` 每轮刷新一次或当缓冲区填满时;`"eager"` 在每帧后触发后台刷新。当 `session_store` 为 `None` 时忽略 |950| `session_store_flush` | `Literal["batched", "eager"]` | `"batched"` | 何时将镜像的记录条目刷新到 `session_store`。`"batched"` 每轮刷新一次或当缓冲区填满时;`"eager"` 在每帧后触发后台刷新。当 `session_store` 为 `None` 时忽略 |

951 951 

952<h4 id="handle-slow-or-stalled-api-responses">952<h4 id="handle-slow-or-stalled-api-responses">


966```966```

967 967 

968* `API_TIMEOUT_MS`:Anthropic 客户端上的每个请求超时,以毫秒为单位。默认 `600000`。适用于主循环和所有子代理。968* `API_TIMEOUT_MS`:Anthropic 客户端上的每个请求超时,以毫秒为单位。默认 `600000`。适用于主循环和所有子代理。

969* `CLAUDE_CODE_MAX_RETRIES`:最大 API 重试次数。默认 `10`,上限为 `15`。每次重试都有自己的 `API_TIMEOUT_MS` 窗口,因此最坏情况下的实际时间大约是 `API_TIMEOUT_MS × (CLAUDE_CODE_MAX_RETRIES + 1)` 加上退避。对于需要等待更长时间中断的无人值守运行,设置 `CLAUDE_CODE_RETRY_WATCHDOG=1`:它无限期重试容量错误,{/* min-version: 2.1.199 */}自 Claude Code v2.1.199 起,对其他瞬时错误将默认值提高到 `300` 并移除此变量的上限。969* `CLAUDE_CODE_MAX_RETRIES`:最大 API 重试次数。默认 `10`,上限为 `15`。每次重试都有自己的 `API_TIMEOUT_MS` 窗口,因此最坏情况下的实际时间大约是 `API_TIMEOUT_MS × (CLAUDE_CODE_MAX_RETRIES + 1)` 加上退避。对于需要等待更长时间中断的无人值守运行,设置 `CLAUDE_CODE_RETRY_WATCHDOG=1`:它无限期重试容量错误,自 Claude Code v2.1.199 起,对其他瞬时错误将默认值提高到 `300` 并移除此变量的上限。

970* `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS`:使用 `run_in_background` 启动的子代理的停滞监视器。默认 `600000`。在每个流事件时重置;停滞时中止子代理,将任务标记为失败,并将错误与任何部分结果一起呈现给父代理。不适用于同步子代理。970* `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS`:使用 `run_in_background` 启动的子代理的停滞监视器。默认 `600000`。在每个流事件时重置;停滞时中止子代理,将任务标记为失败,并将错误与任何部分结果一起呈现给父代理。不适用于同步子代理。

971* `CLAUDE_ENABLE_STREAM_WATCHDOG` 与 `CLAUDE_STREAM_IDLE_TIMEOUT_MS`:当标头已到达但响应体停止流式传输时中止请求。监视器对所有提供商默认启用;设置 `CLAUDE_ENABLE_STREAM_WATCHDOG=0` 以禁用它。`CLAUDE_STREAM_IDLE_TIMEOUT_MS` 默认为 `300000` 并被限制为该最小值。中止的请求通过正常重试路径进行。971* `CLAUDE_ENABLE_STREAM_WATCHDOG` 与 `CLAUDE_STREAM_IDLE_TIMEOUT_MS`:当标头已到达但响应体停止流式传输时中止请求。监视器对所有提供商默认启用;设置 `CLAUDE_ENABLE_STREAM_WATCHDOG=0` 以禁用它。`CLAUDE_STREAM_IDLE_TIMEOUT_MS` 默认为 `300000` 并被限制为该最小值。中止的请求通过正常重试路径进行。

972 972 


1008| `type` | 是 | 必须是 `"preset"` 以使用预设系统提示 |1008| `type` | 是 | 必须是 `"preset"` 以使用预设系统提示 |

1009| `preset` | 是 | 必须是 `"claude_code"` 以使用 Claude Code 的系统提示 |1009| `preset` | 是 | 必须是 `"claude_code"` 以使用 Claude Code 的系统提示 |

1010| `append` | 否 | 要追加到预设系统提示的其他说明 |1010| `append` | 否 | 要追加到预设系统提示的其他说明 |

1011| `exclude_dynamic_sections` | 否 | 将每个会话的上下文(如工作目录、git 状态和内存路径)从系统提示移到第一条用户消息。改进跨用户和机器的提示缓存重用。见 [修改系统提示](/zh-CN/agent-sdk/modifying-system-prompts#improve-prompt-caching-across-users-and-machines) |1011| `exclude_dynamic_sections` | 否 | 将每个会话的上下文(如工作目录、git 状态和内存路径)从系统提示移到第一条用户消息。改进跨用户和机器的提示缓存重用。见 [修改系统提示](/docs/zh-CN/agent-sdk/modifying-system-prompts#improve-prompt-caching-across-users-and-machines) |

1012 1012 

1013<h3 id="systempromptfile">1013<h3 id="systempromptfile">

1014 `SystemPromptFile`1014 `SystemPromptFile`

1015</h3>1015</h3>

1016 1016 

1017从文件加载自定义系统提示而不是作为字符串传递的配置。SDK 将其映射到 CLI [`--system-prompt-file`](/zh-CN/cli-reference#system-prompt-flags) 标志。当提示很大时使用文件形式:SDK 在 CLI 子进程 argv 上传递字符串 `system_prompt`,这受到 OS 命令行长度限制的限制,然后 SDK 才能发送任何 API 请求。在 Linux 上,单个参数长于大约 128 KB 会在进程生成时失败,出现 `Argument list too long`。在 Windows 上,整个命令行被限制为大约 32 KB,因此字符串形式在更低的阈值处失败。1017从文件加载自定义系统提示而不是作为字符串传递的配置。SDK 将其映射到 CLI [`--system-prompt-file`](/docs/zh-CN/cli-reference#system-prompt-flags) 标志。当提示很大时使用文件形式:SDK 在 CLI 子进程 argv 上传递字符串 `system_prompt`,这受到 OS 命令行长度限制的限制,然后 SDK 才能发送任何 API 请求。在 Linux 上,单个参数长于大约 128 KB 会在进程生成时失败,出现 `Argument list too long`。在 Windows 上,整个命令行被限制为大约 32 KB,因此字符串形式在更低的阈值处失败。

1018 1018 

1019```python theme={null}1019```python theme={null}

1020class SystemPromptFile(TypedDict):1020class SystemPromptFile(TypedDict):


1047 默认行为1047 默认行为

1048</h4>1048</h4>

1049 1049 

1050当 `setting_sources` 被省略或为 `None` 时,`query()` 加载与 Claude Code CLI 相同的文件系统设置:用户、项目和本地。无论如何都会加载托管策略设置;当会话使用组织凭证在[符合条件的配置](/zh-CN/server-managed-settings#platform-availability)上进行身份验证时,会获取服务器管理的设置。见 [settingSources 不控制什么](/zh-CN/agent-sdk/claude-code-features#what-settingsources-does-not-control) 了解无论此选项如何都会读取的输入,以及如何禁用它们。1050当 `setting_sources` 被省略或为 `None` 时,`query()` 加载与 Claude Code CLI 相同的文件系统设置:用户、项目和本地。无论如何都会加载托管策略设置;当会话使用组织凭证在[符合条件的配置](/docs/zh-CN/server-managed-settings#platform-availability)上进行身份验证时,会获取服务器管理的设置。见 [settingSources 不控制什么](/docs/zh-CN/agent-sdk/claude-code-features#what-settingsources-does-not-control) 了解无论此选项如何都会读取的输入,以及如何禁用它们。

1051 1051 

1052<h4 id="why-use-setting_sources">1052<h4 id="why-use-setting_sources">

1053 为什么使用 setting\_sources1053 为什么使用 setting\_sources


1257 1257 

1258返回 `PermissionResult`(`PermissionResultAllow` 或 `PermissionResultDeny`)。1258返回 `PermissionResult`(`PermissionResultAllow` 或 `PermissionResultDeny`)。

1259 1259 

1260回调是 SDK 对交互式权限提示的替代:它仅在[权限评估流](/zh-CN/agent-sdk/permissions#how-permissions-are-evaluated)解析为提示时调用。已由 `allowed_tools` 条目、设置允许规则或权限模式(如 `acceptEdits` 或 `bypassPermissions`)批准的工具调用永远不会调用它。要限制每个工具调用,改用 [`PreToolUse` hook](/zh-CN/agent-sdk/hooks)。1260回调是 SDK 对交互式权限提示的替代:它仅在[权限评估流](/docs/zh-CN/agent-sdk/permissions#how-permissions-are-evaluated)解析为提示时调用。已由 `allowed_tools` 条目、设置允许规则或权限模式(如 `acceptEdits` 或 `bypassPermissions`)批准的工具调用永远不会调用它。要限制每个工具调用,改用 [`PreToolUse` hook](/docs/zh-CN/agent-sdk/hooks)。

1261 1261 

1262`AskUserQuestion`、标记为 [`requiresUserInteraction`](/zh-CN/mcp#require-approval-for-a-specific-tool) 的 MCP 工具,以及你的组织[设置为 `ask`](/zh-CN/mcp#organization-controls-on-connector-tools) 的连接器工具即使允许规则匹配也会到达回调。在 `dontAsk` 模式下,这些调用被拒绝,不调用回调。1262`AskUserQuestion`、标记为 [`requiresUserInteraction`](/docs/zh-CN/mcp#require-approval-for-a-specific-tool) 的 MCP 工具,以及你的组织[设置为 `ask`](/docs/zh-CN/mcp#organization-controls-on-connector-tools) 的连接器工具即使允许规则匹配也会到达回调。在 `dontAsk` 模式下,这些调用被拒绝,不调用回调。

1263 1263 

1264<h3 id="toolpermissioncontext">1264<h3 id="toolpermissioncontext">

1265 `ToolPermissionContext`1265 `ToolPermissionContext`


1606]1606]

1607```1607```

1608 1608 

1609有关创建和使用插件的完整信息,见 [Plugins](/zh-CN/agent-sdk/plugins)。1609有关创建和使用插件的完整信息,见 [Plugins](/docs/zh-CN/agent-sdk/plugins)。

1610 1610 

1611<h2 id="message-types">1611<h2 id="message-types">

1612 消息类型1612 消息类型


1749 1749 

1750| 键 | 类型 | 描述 |1750| 键 | 类型 | 描述 |

1751| ----------------------------- | ----- | ----------------------------------------------------------------------------------------------------------------- |1751| ----------------------------- | ----- | ----------------------------------------------------------------------------------------------------------------- |

1752| `input_tokens` | `int` | 顶级代理循环消耗的输入令牌。[子代理令牌不包括在内](/zh-CN/agent-sdk/cost-tracking#get-the-total-cost-of-a-query);使用 `model_usage` 进行整树计费。 |1752| `input_tokens` | `int` | 顶级代理循环消耗的输入令牌。[子代理令牌不包括在内](/docs/zh-CN/agent-sdk/cost-tracking#get-the-total-cost-of-a-query);使用 `model_usage` 进行整树计费。 |

1753| `output_tokens` | `int` | 顶级代理循环生成的输出令牌。子代理令牌不包括在内。 |1753| `output_tokens` | `int` | 顶级代理循环生成的输出令牌。子代理令牌不包括在内。 |

1754| `cache_creation_input_tokens` | `int` | 用于创建新缓存条目的令牌。 |1754| `cache_creation_input_tokens` | `int` | 用于创建新缓存条目的令牌。 |

1755| `cache_read_input_tokens` | `int` | 从现有缓存条目读取的令牌。 |1755| `cache_read_input_tokens` | `int` | 从现有缓存条目读取的令牌。 |

1756 1756 

1757`model_usage` 字典将模型名称映射到每个模型的使用情况。内部字典键使用 camelCase,因为该值从底层 CLI 进程未修改地传递,匹配 TypeScript [`ModelUsage`](/zh-CN/agent-sdk/typescript#modelusage) 类型:1757`model_usage` 字典将模型名称映射到每个模型的使用情况。内部字典键使用 camelCase,因为该值从底层 CLI 进程未修改地传递,匹配 TypeScript [`ModelUsage`](/docs/zh-CN/agent-sdk/typescript#modelusage) 类型:

1758 1758 

1759| 键 | 类型 | 描述 |1759| 键 | 类型 | 描述 |

1760| -------------------------- | ------- | ------------------------------------------------------------------------ |1760| -------------------------- | ------- | ------------------------------------------------------------------------ |


1763| `cacheReadInputTokens` | `int` | 此模型的缓存读取令牌。 |1763| `cacheReadInputTokens` | `int` | 此模型的缓存读取令牌。 |

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

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

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

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

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

1769 1769 


2090 Hook 类型2090 Hook 类型

2091</h2>2091</h2>

2092 2092 

2093有关使用 hooks 的综合指南,包括示例和常见模式,见 [Hooks 指南](/zh-CN/agent-sdk/hooks)。2093有关使用 hooks 的综合指南,包括示例和常见模式,见 [Hooks 指南](/docs/zh-CN/agent-sdk/hooks)。

2094 2094 

2095<h3 id="hookevent">2095<h3 id="hookevent">

2096 `HookEvent`2096 `HookEvent`


2474 `HookSpecificOutput`2474 `HookSpecificOutput`

2475</h4>2475</h4>

2476 2476 

2477包含 hook 事件名称和事件特定字段的 `TypedDict`。形状取决于 `hookEventName` 值。有关每个 hook 事件的可用字段的完整详情,见 [使用 hooks 控制执行](/zh-CN/agent-sdk/hooks#outputs)。2477包含 hook 事件名称和事件特定字段的 `TypedDict`。形状取决于 `hookEventName` 值。有关每个 hook 事件的可用字段的完整详情,见 [使用 hooks 控制执行](/docs/zh-CN/agent-sdk/hooks#outputs)。

2478 2478 

2479事件特定输出类型的判别联合。`hookEventName` 字段确定哪些字段有效。2479事件特定输出类型的判别联合。`hookEventName` 字段确定哪些字段有效。

2480 2480 


2639 2639 

2640**工具名称:** `AskUserQuestion`2640**工具名称:** `AskUserQuestion`

2641 2641 

2642在执行期间向用户提出澄清问题。见 [处理批准和用户输入](/zh-CN/agent-sdk/user-input#handle-clarifying-questions) 了解使用详情。2642在执行期间向用户提出澄清问题。见 [处理批准和用户输入](/docs/zh-CN/agent-sdk/user-input#handle-clarifying-questions) 了解使用详情。

2643 2643 

2644**输入:**2644**输入:**

2645 2645 


2717 2717 

2718运行后台源并将每个事件传递给 Claude,以便它可以做出反应而无需轮询:`command` 运行脚本并每个 stdout 行发出一个事件,`ws` 打开 WebSocket 并每个文本帧发出一个事件。恰好提供 `command` 或 `ws` 中的一个。2718运行后台源并将每个事件传递给 Claude,以便它可以做出反应而无需轮询:`command` 运行脚本并每个 stdout 行发出一个事件,`ws` 打开 WebSocket 并每个文本帧发出一个事件。恰好提供 `command` 或 `ws` 中的一个。

2719 2719 

2720当 Monitor 运行命令时,它遵循与 Bash 相同的权限规则;WebSocket 监视会单独提示批准。{/* min-version: 2.1.195 */}`ws` 源需要 Claude Code v2.1.195 或更高版本。见 [Monitor 工具参考](/zh-CN/tools-reference#monitor-tool) 了解行为和提供商可用性。2720当 Monitor 运行命令时,它遵循与 Bash 相同的权限规则;WebSocket 监视会单独提示批准。`ws` 源需要 Claude Code v2.1.195 或更高版本。见 [Monitor 工具参考](/docs/zh-CN/tools-reference#monitor-tool) 了解行为和提供商可用性。

2721 2721 

2722**输入:**2722**输入:**

2723 2723 


2995**工具名称:** `TodoWrite`2995**工具名称:** `TodoWrite`

2996 2996 

2997<Note>2997<Note>

2998 自 Claude Code v2.1.142 起,`TodoWrite` 默认被禁用。改用 `TaskCreate`、`TaskGet`、`TaskUpdate` 和 `TaskList`。见 [迁移到 Task 工具](/zh-CN/agent-sdk/todo-tracking#migrate-to-task-tools) 更新您的监视代码,或设置 `CLAUDE_CODE_ENABLE_TASKS=0` 以恢复到 `TodoWrite`。2998 自 Claude Code v2.1.142 起,`TodoWrite` 默认被禁用。改用 `TaskCreate`、`TaskGet`、`TaskUpdate` 和 `TaskList`。见 [迁移到 Task 工具](/docs/zh-CN/agent-sdk/todo-tracking#migrate-to-task-tools) 更新您的监视代码,或设置 `CLAUDE_CODE_ENABLE_TASKS=0` 以恢复到 `TodoWrite`。

2999</Note>2999</Note>

3000 3000 

3001**输入:**3001**输入:**


3699 `SandboxNetworkConfig`3699 `SandboxNetworkConfig`

3700</h3>3700</h3>

3701 3701 

3702沙箱模式的网络特定配置。这些设置适用于当父 [`SandboxSettings`](#sandboxsettings) 中的 `enabled` 为 `True` 时的沙箱化 Bash 命令。它们不限制 WebFetch 工具,该工具改用 [权限规则](/zh-CN/permissions#webfetch)。3702沙箱模式的网络特定配置。这些设置适用于当父 [`SandboxSettings`](#sandboxsettings) 中的 `enabled` 为 `True` 时的沙箱化 Bash 命令。它们不限制 WebFetch 工具,该工具改用 [权限规则](/docs/zh-CN/permissions#webfetch)。

3703 3703 

3704```python theme={null}3704```python theme={null}

3705class SandboxNetworkConfig(TypedDict, total=False):3705class SandboxNetworkConfig(TypedDict, total=False):


3727| `socksProxyPort` | `int` | `None` | 网络请求的 SOCKS 代理端口 |3727| `socksProxyPort` | `int` | `None` | 网络请求的 SOCKS 代理端口 |

3728 3728 

3729<Note>3729<Note>

3730 内置沙箱代理基于请求的主机名强制执行网络允许列表,不会终止或检查 TLS 流量,因此 [域名前置](https://en.wikipedia.org/wiki/Domain_fronting) 等技术可能会绕过它。有关详细信息,请参阅 [沙箱安全限制](/zh-CN/sandboxing#security-limitations),以及 [安全部署](/zh-CN/agent-sdk/secure-deployment#traffic-forwarding) 以配置 TLS 终止代理。3730 内置沙箱代理基于请求的主机名强制执行网络允许列表,不会终止或检查 TLS 流量,因此 [域名前置](https://en.wikipedia.org/wiki/Domain_fronting) 等技术可能会绕过它。有关详细信息,请参阅 [沙箱安全限制](/docs/zh-CN/sandboxing#security-limitations),以及 [安全部署](/docs/zh-CN/agent-sdk/secure-deployment#traffic-forwarding) 以配置 TLS 终止代理。

3731</Note>3731</Note>

3732 3732 

3733<h3 id="sandboxignoreviolations">3733<h3 id="sandboxignoreviolations">


3831 另见3831 另见

3832</h2>3832</h2>

3833 3833 

3834* [SDK 概述](/zh-CN/agent-sdk/overview) - 一般 SDK 概念3834* [SDK 概述](/docs/zh-CN/agent-sdk/overview) - 一般 SDK 概念

3835* [TypeScript SDK 参考](/zh-CN/agent-sdk/typescript) - TypeScript SDK 文档3835* [TypeScript SDK 参考](/docs/zh-CN/agent-sdk/typescript) - TypeScript SDK 文档

3836* [CLI 参考](/zh-CN/cli-reference) - 命令行界面3836* [CLI 参考](/docs/zh-CN/cli-reference) - 命令行界面

3837* [常见工作流](/zh-CN/common-workflows) - 分步指南3837* [常见工作流](/docs/zh-CN/common-workflows) - 分步指南

Details

17 17 

18您可以通过三种方式创建子代理:18您可以通过三种方式创建子代理:

19 19 

20* **以编程方式**:在您的 `query()` 选项中使用 `agents` 参数。请参阅 [TypeScript](/zh-CN/agent-sdk/typescript#agentdefinition) 和 [Python](/zh-CN/agent-sdk/python#agentdefinition) 参考文档20* **以编程方式**:在您的 `query()` 选项中使用 `agents` 参数。请参阅 [TypeScript](/docs/zh-CN/agent-sdk/typescript#agentdefinition) 和 [Python](/docs/zh-CN/agent-sdk/python#agentdefinition) 参考文档

21* **基于文件系统**:在 `.claude/agents/` 目录中将代理定义为 markdown 文件。请参阅[将子代理定义为文件](/zh-CN/sub-agents)21* **基于文件系统**:在 `.claude/agents/` 目录中将代理定义为 markdown 文件。请参阅[将子代理定义为文件](/docs/zh-CN/sub-agents)

22* **内置通用代理**:Claude 可以随时通过 Agent 工具调用内置的 `general-purpose` 子代理,无需您定义任何内容22* **内置通用代理**:Claude 可以随时通过 Agent 工具调用内置的 `general-purpose` 子代理,无需您定义任何内容

23 23 

24本指南重点介绍编程方法,这是 SDK 应用程序的推荐方法。24本指南重点介绍编程方法,这是 SDK 应用程序的推荐方法。


197| `effort` | `'low' \| 'medium' \| 'high' \| 'xhigh' \| 'max' \| number` | 否 | 此代理的推理工作量级别 |197| `effort` | `'low' \| 'medium' \| 'high' \| 'xhigh' \| 'max' \| number` | 否 | 此代理的推理工作量级别 |

198| `permissionMode` | `PermissionMode` | 否 | 此代理内工具执行的权限模式 |198| `permissionMode` | `PermissionMode` | 否 | 此代理内工具执行的权限模式 |

199 199 

200在 Python SDK 中,多字词字段名称(如 `disallowedTools` 和 `mcpServers`)保持其 camelCase 拼写以匹配线路格式,而不是遵循 Python 的 snake\_case 约定。有关详细信息,请参阅 [`AgentDefinition` 参考](/zh-CN/agent-sdk/python#agentdefinition)。200在 Python SDK 中,多字词字段名称(如 `disallowedTools` 和 `mcpServers`)保持其 camelCase 拼写以匹配线路格式,而不是遵循 Python 的 snake\_case 约定。有关详细信息,请参阅 [`AgentDefinition` 参考](/docs/zh-CN/agent-sdk/python#agentdefinition)。

201 201 

202Claude Code v2.1.198 中的两个子代理行为发生了变化:202Claude Code v2.1.198 中的两个子代理行为发生了变化:

203 203 

204* 子代理默认在后台运行。省略 [`run_in_background`](/zh-CN/agent-sdk/typescript) 输入的 Agent 工具调用会启动后台子代理,当 Claude 需要结果后才继续时,它会设置 `run_in_background: false`。在 v2.1.198 之前,省略 `run_in_background` 会同步运行子代理。设置 `background` 字段为 `true` 以强制特定代理进行后台执行,无论 Claude 请求什么。204* 子代理默认在后台运行。省略 [`run_in_background`](/docs/zh-CN/agent-sdk/typescript) 输入的 Agent 工具调用会启动后台子代理,当 Claude 需要结果后才继续时,它会设置 `run_in_background: false`。在 v2.1.198 之前,省略 `run_in_background` 会同步运行子代理。设置 `background` 字段为 `true` 以强制特定代理进行后台执行,无论 Claude 请求什么。

205* 子代理继承主会话的扩展思考配置。在早期版本中,无论主会话的设置如何,扩展思考在子代理内被禁用。205* 子代理继承主会话的扩展思考配置。在早期版本中,无论主会话的设置如何,扩展思考在子代理内被禁用。

206 206 

207<Note>207<Note>

208 {/* min-version: 2.1.172 */}自 Claude Code v2.1.172 起,子代理可以生成自己的子代理。位于主代理下方五个级别的子代理无法生成进一步的子代理,无论其是在前台还是后台运行。要防止子代理生成其他子代理,请从其 `tools` 数组中省略 `Agent` 或将其添加到 `disallowedTools`。有关完整的深度规则,请参阅[嵌套子代理](/zh-CN/sub-agents#spawn-nested-subagents)。208 自 Claude Code v2.1.172 起,子代理可以生成自己的子代理。位于主代理下方五个级别的子代理无法生成进一步的子代理,无论其是在前台还是后台运行。要防止子代理生成其他子代理,请从其 `tools` 数组中省略 `Agent` 或将其添加到 `disallowedTools`。有关完整的深度规则,请参阅[嵌套子代理](/docs/zh-CN/sub-agents#spawn-nested-subagents)。

209</Note>209</Note>

210 210 

211<h3 id="filesystem-based-definition-alternative">211<h3 id="filesystem-based-definition-alternative">

212 基于文件系统的定义(替代方案)212 基于文件系统的定义(替代方案)

213</h3>213</h3>

214 214 

215您也可以在 `.claude/agents/` 目录中将子代理定义为 markdown 文件。有关此方法的详细信息,请参阅 [Claude Code 子代理文档](/zh-CN/sub-agents)。以编程方式定义的代理优先于具有相同名称的基于文件系统的代理。215您也可以在 `.claude/agents/` 目录中将子代理定义为 markdown 文件。有关此方法的详细信息,请参阅 [Claude Code 子代理文档](/docs/zh-CN/sub-agents)。以编程方式定义的代理优先于具有相同名称的基于文件系统的代理。

216 216 

217<Note>217<Note>

218 即使不定义自定义子代理,Claude 也可以生成内置的 `general-purpose` 子代理。这对于委派研究或探索任务而无需创建专门的代理很有用。在 `allowedTools` 中包含 `Agent` 以便这些调用自动批准,无需权限提示。218 即使不定义自定义子代理,Claude 也可以生成内置的 `general-purpose` 子代理。这对于委派研究或探索任务而无需创建专门的代理很有用。在 `allowedTools` 中包含 `Agent` 以便这些调用自动批准,无需权限提示。


224 224 

225子代理的上下文窗口从新开始,没有父对话,但不是空的。从父代理到子代理的唯一内容是 Agent 工具的提示词字符串,因此请直接在该提示词中包含子代理需要的任何文件路径、错误消息或决策。225子代理的上下文窗口从新开始,没有父对话,但不是空的。从父代理到子代理的唯一内容是 Agent 工具的提示词字符串,因此请直接在该提示词中包含子代理需要的任何文件路径、错误消息或决策。

226 226 

227{/* min-version: 2.1.206 */}具有 [`SendMessage`](/zh-CN/tools-reference) 工具的子代理会从会话中运行的其他命名代理列表开始,因此它知道可以向哪些名称发送消息。Claude Code 会自动在子代理的第一轮中添加该列表。[fork](/zh-CN/sub-agents#fork-the-current-conversation) 不会获得该列表,因为它继承了父对话。该列表需要 Claude Code v2.1.206 或更高版本。227具有 [`SendMessage`](/docs/zh-CN/tools-reference) 工具的子代理会从会话中运行的其他命名代理列表开始,因此它知道可以向哪些名称发送消息。Claude Code 会自动在子代理的第一轮中添加该列表。[fork](/docs/zh-CN/sub-agents#fork-the-current-conversation) 不会获得该列表,因为它继承了父对话。该列表需要 Claude Code v2.1.206 或更高版本。

228 228 

229| 子代理接收 | 子代理不接收 |229| 子代理接收 | 子代理不接收 |

230| :---------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------- |230| :---------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------- |

231| 其自己的系统提示词(`AgentDefinition.prompt`)和 Agent 工具的提示词 | 父代理的对话历史或工具结果 |231| 其自己的系统提示词(`AgentDefinition.prompt`)和 Agent 工具的提示词 | 父代理的对话历史或工具结果 |

232| 项目 CLAUDE.md(通过 [`settingSources`](/zh-CN/agent-sdk/claude-code-features#control-filesystem-settings-with-settingsources) 加载) | 预加载的 skill 内容,除非在 `AgentDefinition.skills` 中列出 |232| 项目 CLAUDE.md(通过 [`settingSources`](/docs/zh-CN/agent-sdk/claude-code-features#control-filesystem-settings-with-settingsources) 加载) | 预加载的 skill 内容,除非在 `AgentDefinition.skills` 中列出 |

233| 工具定义(从父代理继承,或 `tools` 中的子集) | 父代理的系统提示词 |233| 工具定义(从父代理继承,或 `tools` 中的子集) | 父代理的系统提示词 |

234 234 

235<Note>235<Note>

236 父代理逐字接收子代理的最终消息作为 Agent 工具结果,但可能在其自己的响应中总结它。要在面向用户的响应中逐字保留子代理输出,请在您传递给主 `query()` 调用的提示词或 `systemPrompt` 选项中包含一条指令。236 父代理逐字接收子代理的最终消息作为 Agent 工具结果,但可能在其自己的响应中总结它。要在面向用户的响应中逐字保留子代理输出,请在您传递给主 `query()` 调用的提示词或 `systemPrompt` 选项中包含一条指令。

237</Note>237</Note>

238 238 

239{/* min-version: 2.1.199 */}结束子代理早期的 API 错误(例如速率限制)永远不会作为其结果传递。如果速率限制、过载或服务器错误中断了已经产生文本输出的前台子代理,Agent 工具会返回该部分输出并注明子代理未完成。{/* min-version: 2.1.200 */}未产生任何内容的子代理,或其唯一输出仅为工具调用且没有文本的子代理,会失败并显示错误消息 `Agent terminated early due to an API error`,后跟错误详情。有关前台和后台行为,请参阅 [API errors in subagents](/zh-CN/sub-agents#api-errors-in-subagents)。239结束子代理早期的 API 错误(例如速率限制)永远不会作为其结果传递。如果速率限制、过载或服务器错误中断了已经产生文本输出的前台子代理,Agent 工具会返回该部分输出并注明子代理未完成。未产生任何内容的子代理,或其唯一输出仅为工具调用且没有文本的子代理,会失败并显示错误消息 `Agent terminated early due to an API error`,后跟错误详情。有关前台和后台行为,请参阅 [API errors in subagents](/docs/zh-CN/sub-agents#api-errors-in-subagents)。

240 240 

241这种部分输出处理需要 Claude Code v2.1.199 或更高版本。在 v2.1.199 中,速率限制、过载或服务器错误会导致仅工具调用的形状出现空的部分结果,仅包含中断注记。241这种部分输出处理需要 Claude Code v2.1.199 或更高版本。在 v2.1.199 中,速率限制、过载或服务器错误会导致仅工具调用的形状出现空的部分结果,仅包含中断注记。

242 242 


441 441 

442您可以恢复子代理以继续中断的地方,而不是重新开始。恢复的子代理保留其完整的对话历史,包括所有先前的工具调用、结果和推理。442您可以恢复子代理以继续中断的地方,而不是重新开始。恢复的子代理保留其完整的对话历史,包括所有先前的工具调用、结果和推理。

443 443 

444当子代理完成时,Agent 工具结果包含一个包含 `agentId: <id>` 的文本块。内置的 [`Explore` 和 `Plan` 代理](/zh-CN/sub-agents#built-in-subagents) 是一次性的,不返回 `agentId`,因此当您需要恢复时,请使用自定义代理或 `general-purpose`。要以编程方式恢复子代理:444当子代理完成时,Agent 工具结果包含一个包含 `agentId: <id>` 的文本块。内置的 [`Explore` 和 `Plan` 代理](/docs/zh-CN/sub-agents#built-in-subagents) 是一次性的,不返回 `agentId`,因此当您需要恢复时,请使用自定义代理或 `general-purpose`。要以编程方式恢复子代理:

445 445 

4461. **捕获会话 ID**:在第一个查询期间从消息中提取 `session_id`4461. **捕获会话 ID**:在第一个查询期间从消息中提取 `session_id`

4472. **提取代理 ID**:从 Agent 工具结果文本中解析 `agentId`4472. **提取代理 ID**:从 Agent 工具结果文本中解析 `agentId`


661 使用动态工作流进行扩展661 使用动态工作流进行扩展

662</h2>662</h2>

663 663 

664子代理适用于每轮委派的几个任务。对于协调数十到数百个代理的运行,请使用 `Workflow` 工具,它将编排移到运行时在对话上下文外执行的脚本中。请参阅[动态工作流](/zh-CN/workflows)以了解工作流与逐轮子代理委派的区别。664子代理适用于每轮委派的几个任务。对于协调数十到数百个代理的运行,请使用 `Workflow` 工具,它将编排移到运行时在对话上下文外执行的脚本中。请参阅[动态工作流](/docs/zh-CN/workflows)以了解工作流与逐轮子代理委派的区别。

665 665 

666`Workflow` 工具在 TypeScript Agent SDK v0.3.149 及更高版本中可用。在 `allowedTools` 中包含 `Workflow` 以自动批准工作流运行。工具输入和输出架构列在 [TypeScript 参考](/zh-CN/agent-sdk/typescript#workflow)中。666`Workflow` 工具在 TypeScript Agent SDK v0.3.149 及更高版本中可用。在 `allowedTools` 中包含 `Workflow` 以自动批准工作流运行。工具输入和输出架构列在 [TypeScript 参考](/docs/zh-CN/agent-sdk/typescript#workflow)中。

667 667 

668<h2 id="troubleshooting">668<h2 id="troubleshooting">

669 故障排除669 故障排除


690* **`--disable-slash-commands`**:使用此标志启动的会话不监视这些目录,始终需要重启以加载新文件。690* **`--disable-slash-commands`**:使用此标志启动的会话不监视这些目录,始终需要重启以加载新文件。

691* **具有相同名称的程序化代理**:传递给 `query()` 的 `agents` 会覆盖具有相同名称的文件系统代理。691* **具有相同名称的程序化代理**:传递给 `query()` 的 `agents` 会覆盖具有相同名称的文件系统代理。

692 692 

693有关文件格式,请参阅[如何编写子代理文件](/zh-CN/sub-agents#write-subagent-files)。693有关文件格式,请参阅[如何编写子代理文件](/docs/zh-CN/sub-agents#write-subagent-files)。

694 694 

695<h3 id="long-prompt-failures-on-windows">695<h3 id="long-prompt-failures-on-windows">

696 Windows 上的长提示词失败696 Windows 上的长提示词失败


702 相关文档702 相关文档

703</h2>703</h2>

704 704 

705* [Claude Code 子代理](/zh-CN/sub-agents):包括基于文件系统的定义的全面子代理文档705* [Claude Code 子代理](/docs/zh-CN/sub-agents):包括基于文件系统的定义的全面子代理文档

706* [动态工作流](/zh-CN/workflows):从脚本编排许多子代理,用于对话过大的工作706* [动态工作流](/docs/zh-CN/workflows):从脚本编排许多子代理,用于对话过大的工作

707* [SDK 概述](/zh-CN/agent-sdk/overview):Claude Agent SDK 入门707* [SDK 概述](/docs/zh-CN/agent-sdk/overview):Claude Agent SDK 入门

Details

38 示例38 示例

39</h2>39</h2>

40 40 

41在运行这些示例之前,请按照[快速入门](/zh-CN/agent-sdk/quickstart)安装 Claude Agent SDK。41在运行这些示例之前,请按照[快速入门](/docs/zh-CN/agent-sdk/quickstart)安装 Claude Agent SDK。

42 42 

43每个示例运行到代理完成并产生其最终结果消息为止。如果会话首先达到其轮次限制,该结果消息将具有 `error_max_turns` 子类型。检查 `subtype` 以检测该结束。43每个示例运行到代理完成并产生其最终结果消息为止。如果会话首先达到其轮次限制,该结果消息将具有 `error_max_turns` 子类型。检查 `subtype` 以检测该结束。

44 44 

45这些示例使用单次 `query()` 调用。在产生 `error_max_turns` 结果后,`query()` 会抛出一个包含 `Reached maximum number of turns` 的错误。每个示例都将其循环包装在 try 块中,以便在发生这种情况时干净地退出。45这些示例使用单次 `query()` 调用。在产生 `error_max_turns` 结果后,`query()` 会抛出一个包含 `Reached maximum number of turns` 的错误。每个示例都将其循环包装在 try 块中,以便在发生这种情况时干净地退出。

46 46 

47有关结果子类型,请参阅[处理结果](/zh-CN/agent-sdk/agent-loop#handle-the-result)。47有关结果子类型,请参阅[处理结果](/docs/zh-CN/agent-sdk/agent-loop#handle-the-result)。

48 48 

49<h3 id="monitoring-todo-changes">49<h3 id="monitoring-todo-changes">

50 监控待办事项变化50 监控待办事项变化


251 迁移到 Task 工具251 迁移到 Task 工具

252</h2>252</h2>

253 253 

254Task 工具将单个 `TodoWrite` 调用分为 `TaskCreate`(用于每个新项目)和 `TaskUpdate`(用于每个状态更改),`TaskList` 和 `TaskGet` 可供模型读取当前列表。您的监控代码仍然检查助手流中的 `tool_use` 块,但维护一个由任务 ID 键入的映射,而不是在每次调用时替换整个列表。{/* min-version: 2.1.142 */}Task 工具是 TypeScript Agent SDK 0.3.142 和 Claude Code v2.1.142 的默认工具,因此不需要更改 `options.env`。254Task 工具将单个 `TodoWrite` 调用分为 `TaskCreate`(用于每个新项目)和 `TaskUpdate`(用于每个状态更改),`TaskList` 和 `TaskGet` 可供模型读取当前列表。您的监控代码仍然检查助手流中的 `tool_use` 块,但维护一个由任务 ID 键入的映射,而不是在每次调用时替换整个列表。Task 工具是 TypeScript Agent SDK 0.3.142 和 Claude Code v2.1.142 的默认工具,因此不需要更改 `options.env`。

255 255 

256| 使用 `TodoWrite` | 使用 Task 工具 |256| 使用 `TodoWrite` | 使用 Task 工具 |

257| -------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |257| -------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |


336 相关文档336 相关文档

337</h2>337</h2>

338 338 

339* [TypeScript SDK 参考](/zh-CN/agent-sdk/typescript)339* [TypeScript SDK 参考](/docs/zh-CN/agent-sdk/typescript)

340* [Python SDK 参考](/zh-CN/agent-sdk/python)340* [Python SDK 参考](/docs/zh-CN/agent-sdk/python)

341* [流式模式与单一模式](/zh-CN/agent-sdk/streaming-vs-single-mode)341* [流式模式与单一模式](/docs/zh-CN/agent-sdk/streaming-vs-single-mode)

342* [自定义工具](/zh-CN/agent-sdk/custom-tools)342* [自定义工具](/docs/zh-CN/agent-sdk/custom-tools)

Details

6 6 

7> TypeScript Agent SDK 的完整 API 参考,包括所有函数、类型和接口。7> TypeScript Agent SDK 的完整 API 参考,包括所有函数、类型和接口。

8 8 

9<script src="/components/typescript-sdk-type-links.js" defer />9<script src="/docs/components/typescript-sdk-type-links.js" defer />

10 10 

11<h2 id="installation">11<h2 id="installation">

12 安装12 安装


296</h4>296</h4>

297 297 

298| 属性 | 类型 | 描述 |298| 属性 | 类型 | 描述 |

299| :------------------- | :---------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |299| :------------------- | :---------------------- | :------------------------------------------------------------------------------------------------------------------------------------------- |

300| `type` | `"user" \| "assistant"` | 消息角色 |300| `type` | `"user" \| "assistant"` | 消息角色 |

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

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

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

304| `parent_tool_use_id` | `string \| null` | 对于子代理消息,生成 `Agent` 工具调用的 `tool_use_id`。对于主会话消息和较旧的会话为 `null` |304| `parent_tool_use_id` | `string \| null` | 对于子代理消息,生成 `Agent` 工具调用的 `tool_use_id`。对于主会话消息和较旧的会话为 `null` |

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

306 306 

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

308 示例308 示例


422| 参数 | 类型 | 默认值 | 描述 |422| 参数 | 类型 | 默认值 | 描述 |

423| :------------------------------ | :------------------------------------ | :-------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------- |423| :------------------------------ | :------------------------------------ | :-------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------- |

424| `options.cwd` | `string` | `process.cwd()` | 用于解析项目和本地设置的相对目录 |424| `options.cwd` | `string` | `process.cwd()` | 用于解析项目和本地设置的相对目录 |

425| `options.settingSources` | [`SettingSource`](#settingsource)`[]` | 所有源 | 要加载的文件系统源。传递 `[]` 以跳过用户、项目和本地设置。[端点管理的策略](/zh-CN/settings#settings-files)在所有情况下都会加载。服务器管理的设置取自主机传递的 `serverManagedSettings`,或从 CLI 的磁盘缓存中读取;快照不会从网络获取它们 |425| `options.settingSources` | [`SettingSource`](#settingsource)`[]` | 所有源 | 要加载的文件系统源。传递 `[]` 以跳过用户、项目和本地设置。[端点管理的策略](/docs/zh-CN/settings#settings-files)在所有情况下都会加载。服务器管理的设置取自主机传递的 `serverManagedSettings`,或从 CLI 的磁盘缓存中读取;快照不会从网络获取它们 |

426| `options.managedSettings` | `Settings` | `undefined` | 由嵌入主机提供的限制性策略层设置。当存在管理员部署的托管层时被删除;当 [`parentSettingsBehavior`](/zh-CN/settings#available-settings) 为 `"merge"` 时在该层下合并。非限制性密钥(如 `model`)会被静默删除,以便此选项可以加强托管策略但不能放松它 |426| `options.managedSettings` | `Settings` | `undefined` | 由嵌入主机提供的限制性策略层设置。当存在管理员部署的托管层时被删除;当 [`parentSettingsBehavior`](/docs/zh-CN/settings#available-settings) 为 `"merge"` 时在该层下合并。非限制性密钥(如 `model`)会被静默删除,以便此选项可以加强托管策略但不能放松它 |

427| `options.serverManagedSettings` | `Settings` | `undefined` | 来自 `/api/claude_code/settings` 的服务器托管设置有效负载。非限制性密钥不经过滤地通过 |427| `options.serverManagedSettings` | `Settings` | `undefined` | 来自 `/api/claude_code/settings` 的服务器托管设置有效负载。非限制性密钥不经过滤地通过 |

428 428 

429<h4 id="return-type-resolvedsettings">429<h4 id="return-type-resolvedsettings">


474| `agents` | `Record<string, [`AgentDefinition`](#agentdefinition)>` | `undefined` | 以编程方式定义子代理 |474| `agents` | `Record<string, [`AgentDefinition`](#agentdefinition)>` | `undefined` | 以编程方式定义子代理 |

475| `agentProgressSummaries` | `boolean` | `false` | 当为 `true` 时,为子代理生成单行进度摘要,并通过 `summary` 字段在 [`task_progress`](#sdktaskprogressmessage) 事件上转发它们。适用于前台和后台子代理 |475| `agentProgressSummaries` | `boolean` | `false` | 当为 `true` 时,为子代理生成单行进度摘要,并通过 `summary` 字段在 [`task_progress`](#sdktaskprogressmessage) 事件上转发它们。适用于前台和后台子代理 |

476| `allowDangerouslySkipPermissions` | `boolean` | `false` | 启用绕过权限。使用 `permissionMode: 'bypassPermissions'` 时需要 |476| `allowDangerouslySkipPermissions` | `boolean` | `false` | 启用绕过权限。使用 `permissionMode: 'bypassPermissions'` 时需要 |

477| `allowedTools` | `string[]` | `[]` | 无需提示即可自动批准的工具。这不会将 Claude 限制为仅这些工具;未列出的工具会通过 `permissionMode` 和 `canUseTool` 进行处理。使用 `disallowedTools` 阻止工具。请参阅[权限](/zh-CN/agent-sdk/permissions#allow-and-deny-rules) |477| `allowedTools` | `string[]` | `[]` | 无需提示即可自动批准的工具。这不会将 Claude 限制为仅这些工具;未列出的工具会通过 `permissionMode` 和 `canUseTool` 进行处理。使用 `disallowedTools` 阻止工具。请参阅[权限](/docs/zh-CN/agent-sdk/permissions#allow-and-deny-rules) |

478| `betas` | [`SdkBeta`](#sdkbeta)`[]` | `[]` | 启用测试功能 |478| `betas` | [`SdkBeta`](#sdkbeta)`[]` | `[]` | 启用测试功能 |

479| `canUseTool` | [`CanUseTool`](#canusetool) | `undefined` | 自定义权限函数,仅在[权限流](/zh-CN/agent-sdk/permissions#how-permissions-are-evaluated)落到提示时调用。不会为 `allowedTools`、allow 规则或 `permissionMode` 自动批准的调用调用。`AskUserQuestion`、connector 工具[您的组织设置为 `ask`](/zh-CN/mcp#organization-controls-on-connector-tools)和标记为 [`requiresUserInteraction`](/zh-CN/mcp#require-approval-for-a-specific-tool) 的 MCP 工具即使您已允许它们也会到达它;在 `dontAsk` 模式下这些会被拒绝。请参阅 [`CanUseTool`](#canusetool) 了解详情 |479| `canUseTool` | [`CanUseTool`](#canusetool) | `undefined` | 自定义权限函数,仅在[权限流](/docs/zh-CN/agent-sdk/permissions#how-permissions-are-evaluated)落到提示时调用。不会为 `allowedTools`、allow 规则或 `permissionMode` 自动批准的调用调用。`AskUserQuestion`、connector 工具[您的组织设置为 `ask`](/docs/zh-CN/mcp#organization-controls-on-connector-tools)和标记为 [`requiresUserInteraction`](/docs/zh-CN/mcp#require-approval-for-a-specific-tool) 的 MCP 工具即使您已允许它们也会到达它;在 `dontAsk` 模式下这些会被拒绝。请参阅 [`CanUseTool`](#canusetool) 了解详情 |

480| `continue` | `boolean` | `false` | 继续最近的对话 |480| `continue` | `boolean` | `false` | 继续最近的对话 |

481| `cwd` | `string` | `process.cwd()` | 当前工作目录 |481| `cwd` | `string` | `process.cwd()` | 当前工作目录 |

482| `debug` | `boolean` | `false` | 为 Claude Code 进程启用调试模式 |482| `debug` | `boolean` | `false` | 为 Claude Code 进程启用调试模式 |

483| `debugFile` | `string` | `undefined` | 将调试日志写入特定文件路径。隐式启用调试模式 |483| `debugFile` | `string` | `undefined` | 将调试日志写入特定文件路径。隐式启用调试模式 |

484| `disallowedTools` | `string[]` | `[]` | 要拒绝的工具。裸名称如 `"Bash"` 会从 Claude 的上下文中移除该工具。作用域规则如 `"Bash(rm *)"` 会保留该工具可用,并在每个权限模式(包括 `bypassPermissions`)中拒绝匹配的调用。请参阅[权限](/zh-CN/agent-sdk/permissions#allow-and-deny-rules) |484| `disallowedTools` | `string[]` | `[]` | 要拒绝的工具。裸名称如 `"Bash"` 会从 Claude 的上下文中移除该工具。作用域规则如 `"Bash(rm *)"` 会保留该工具可用,并在每个权限模式(包括 `bypassPermissions`)中拒绝匹配的调用。请参阅[权限](/docs/zh-CN/agent-sdk/permissions#allow-and-deny-rules) |

485| `effort` | `'low' \| 'medium' \| 'high' \| 'xhigh' \| 'max'` | 模型默认值 | 控制 Claude 在其响应中投入的努力程度。与自适应思考一起工作以指导思考深度。请参阅[调整努力级别](/zh-CN/model-config#adjust-effort-level) |485| `effort` | `'low' \| 'medium' \| 'high' \| 'xhigh' \| 'max'` | 模型默认值 | 控制 Claude 在其响应中投入的努力程度。与自适应思考一起工作以指导思考深度。请参阅[调整努力级别](/docs/zh-CN/model-config#adjust-effort-level) |

486| `enableFileCheckpointing` | `boolean` | `false` | 启用文件更改跟踪以进行回滚。请参阅[文件 checkpointing](/zh-CN/agent-sdk/file-checkpointing) |486| `enableFileCheckpointing` | `boolean` | `false` | 启用文件更改跟踪以进行回滚。请参阅[文件 checkpointing](/docs/zh-CN/agent-sdk/file-checkpointing) |

487| `env` | `Record<string, string \| undefined>` | `process.env` | 环境变量。设置此选项时,这会替换子进程环境而不是与 `process.env` 合并,因此请传递 `{ ...process.env, YOUR_VAR: 'value' }` 以保留继承的变量如 `PATH`。请参阅[处理缓慢或停滞的 API 响应](#handle-slow-or-stalled-api-responses)了解此模式的示例,以及[环境变量](/zh-CN/env-vars)了解底层 CLI 读取的变量。设置 `CLAUDE_AGENT_SDK_CLIENT_APP` 以在 User-Agent 标头中标识您的应用 |487| `env` | `Record<string, string \| undefined>` | `process.env` | 环境变量。设置此选项时,这会替换子进程环境而不是与 `process.env` 合并,因此请传递 `{ ...process.env, YOUR_VAR: 'value' }` 以保留继承的变量如 `PATH`。请参阅[处理缓慢或停滞的 API 响应](#handle-slow-or-stalled-api-responses)了解此模式的示例,以及[环境变量](/docs/zh-CN/env-vars)了解底层 CLI 读取的变量。设置 `CLAUDE_AGENT_SDK_CLIENT_APP` 以在 User-Agent 标头中标识您的应用 |

488| `executable` | `'bun' \| 'deno' \| 'node'` | 自动检测 | 要使用的 JavaScript 运行时 |488| `executable` | `'bun' \| 'deno' \| 'node'` | 自动检测 | 要使用的 JavaScript 运行时 |

489| `executableArgs` | `string[]` | `[]` | 传递给可执行文件的参数 |489| `executableArgs` | `string[]` | `[]` | 传递给可执行文件的参数 |

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


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

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

498| `managedSettings` | `Settings` | `undefined` | 由生成的父进程提供的策略层设置。当机器上已存在 IT 控制的托管设置层时删除,除非该管理员选择使用 `parentSettingsBehavior: 'merge'`。无论如何都会过滤为仅限制性键 |498| `managedSettings` | `Settings` | `undefined` | 由生成的父进程提供的策略层设置。当机器上已存在 IT 控制的托管设置层时删除,除非该管理员选择使用 `parentSettingsBehavior: 'merge'`。无论如何都会过滤为仅限制性键 |

499| `maxBudgetUsd` | `number` | `undefined` | 当客户端成本估计达到此 USD 值时停止查询。与 `total_cost_usd` 的相同估计进行比较;请参阅[跟踪成本和使用情况](/zh-CN/agent-sdk/cost-tracking)了解准确性注意事项 |499| `maxBudgetUsd` | `number` | `undefined` | 当客户端成本估计达到此 USD 值时停止查询。与 `total_cost_usd` 的相同估计进行比较;请参阅[跟踪成本和使用情况](/docs/zh-CN/agent-sdk/cost-tracking)了解准确性注意事项 |

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

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

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

503| `model` | `string` | CLI 的默认值 | Claude 模型别名或完整模型名称。请参阅[接受的值和特定于提供商的 ID](/zh-CN/model-config#available-models) |503| `model` | `string` | CLI 的默认值 | Claude 模型别名或完整模型名称。请参阅[接受的值和特定于提供商的 ID](/docs/zh-CN/model-config#available-models) |

504| `onElicitation` | `(request: ElicitationRequest, options: { signal: AbortSignal }) => Promise<ElicitationResult>` | `undefined` | 用于处理 MCP 引出请求的回调。当 MCP 服务器请求用户输入且没有 hook 首先处理它时调用。未提供时,未处理的引出请求会自动被拒绝 |504| `onElicitation` | `(request: ElicitationRequest, options: { signal: AbortSignal }) => Promise<ElicitationResult>` | `undefined` | 用于处理 MCP 引出请求的回调。当 MCP 服务器请求用户输入且没有 hook 首先处理它时调用。未提供时,未处理的引出请求会自动被拒绝 |

505| `outputFormat` | `{ type: 'json_schema', schema: JSONSchema }` | `undefined` | 为代理结果定义输出格式。请参阅[结构化输出](/zh-CN/agent-sdk/structured-outputs)了解详情 |505| `outputFormat` | `{ type: 'json_schema', schema: JSONSchema }` | `undefined` | 为代理结果定义输出格式。请参阅[结构化输出](/docs/zh-CN/agent-sdk/structured-outputs)了解详情 |

506| `outputStyle` | `string` | `undefined` | 不是 `Options` 字段。改为在内联 [`settings`](/zh-CN/settings) 对象或设置文件中设置 `outputStyle`。请参阅[激活输出样式](/zh-CN/agent-sdk/modifying-system-prompts#activate-an-output-style) |506| `outputStyle` | `string` | `undefined` | 不是 `Options` 字段。改为在内联 [`settings`](/docs/zh-CN/settings) 对象或设置文件中设置 `outputStyle`。请参阅[激活输出样式](/docs/zh-CN/agent-sdk/modifying-system-prompts#activate-an-output-style) |

507| `pathToClaudeCodeExecutable` | `string` | 从捆绑的本地二进制文件自动解析 | Claude Code 可执行文件的路径。仅在安装期间跳过可选依赖项或您的平台不在支持的集合中时需要 |507| `pathToClaudeCodeExecutable` | `string` | 从捆绑的本地二进制文件自动解析 | Claude Code 可执行文件的路径。仅在安装期间跳过可选依赖项或您的平台不在支持的集合中时需要 |

508| `permissionMode` | [`PermissionMode`](#permissionmode) | `'default'` | 会话的权限模式 |508| `permissionMode` | [`PermissionMode`](#permissionmode) | `'default'` | 会话的权限模式 |

509| `permissionPromptToolName` | `string` | `undefined` | 权限提示的 MCP 工具名称 |509| `permissionPromptToolName` | `string` | `undefined` | 权限提示的 MCP 工具名称 |

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

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

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

513| `promptSuggestions` | `boolean` | `false` | 启用提示建议。在每个轮次后发出 `prompt_suggestion` 消息,包含预测的下一个用户提示 |513| `promptSuggestions` | `boolean` | `false` | 启用提示建议。在每个轮次后发出 `prompt_suggestion` 消息,包含预测的下一个用户提示 |

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

515| `resumeSessionAt` | `string` | `undefined` | 在特定消息 UUID 处恢复会话 |515| `resumeSessionAt` | `string` | `undefined` | 在特定消息 UUID 处恢复会话 |

516| `sandbox` | [`SandboxSettings`](#sandboxsettings) | `undefined` | 以编程方式配置 sandbox 行为。请参阅[Sandbox 设置](#sandboxsettings)了解详情 |516| `sandbox` | [`SandboxSettings`](#sandboxsettings) | `undefined` | 以编程方式配置 sandbox 行为。请参阅[Sandbox 设置](#sandboxsettings)了解详情 |

517| `sessionId` | `string` | 自动生成 | 为会话使用特定的 UUID 而不是自动生成一个 |517| `sessionId` | `string` | 自动生成 | 为会话使用特定的 UUID 而不是自动生成一个 |

518| `sessionStore` | [`SessionStore`](/zh-CN/agent-sdk/session-storage#the-sessionstore-interface) | `undefined` | 将会话记录镜像到外部后端,以便任何主机都可以恢复它们。请参阅[将会话持久化到外部存储](/zh-CN/agent-sdk/session-storage) |518| `sessionStore` | [`SessionStore`](/docs/zh-CN/agent-sdk/session-storage#the-sessionstore-interface) | `undefined` | 将会话记录镜像到外部后端,以便任何主机都可以恢复它们。请参阅[将会话持久化到外部存储](/docs/zh-CN/agent-sdk/session-storage) |

519| `sessionStoreFlush` | `'batched' \| 'eager'` | `'batched'` | *Alpha.* `sessionStore` 的刷新模式。未设置 `sessionStore` 时忽略 |519| `sessionStoreFlush` | `'batched' \| 'eager'` | `'batched'` | *Alpha.* `sessionStore` 的刷新模式。未设置 `sessionStore` 时忽略 |

520| `settings` | `string \| Settings` | `undefined` | 内联[设置](/zh-CN/settings)对象或设置文件的路径。填充[优先级顺序](/zh-CN/settings#settings-precedence)中的标志设置层。使用 [`applyFlagSettings()`](#applyflagsettings) 在运行时更改 |520| `settings` | `string \| Settings` | `undefined` | 内联[设置](/docs/zh-CN/settings)对象或设置文件的路径。填充[优先级顺序](/docs/zh-CN/settings#settings-precedence)中的标志设置层。使用 [`applyFlagSettings()`](#applyflagsettings) 在运行时更改 |

521| `settingSources` | [`SettingSource`](#settingsource)`[]` | CLI 默认值(所有源) | 控制加载哪些文件系统设置。传递 `[]` 以禁用用户、项目和本地设置。[端点管理的策略](/zh-CN/settings#settings-files)无论如何都会加载;当会话使用组织凭证在[符合条件的配置](/zh-CN/server-managed-settings#platform-availability)上进行身份验证时,会获取服务器管理的设置。请参阅[使用 Claude Code 功能](/zh-CN/agent-sdk/claude-code-features#what-settingsources-does-not-control) |521| `settingSources` | [`SettingSource`](#settingsource)`[]` | CLI 默认值(所有源) | 控制加载哪些文件系统设置。传递 `[]` 以禁用用户、项目和本地设置。[端点管理的策略](/docs/zh-CN/settings#settings-files)无论如何都会加载;当会话使用组织凭证在[符合条件的配置](/docs/zh-CN/server-managed-settings#platform-availability)上进行身份验证时,会获取服务器管理的设置。请参阅[使用 Claude Code 功能](/docs/zh-CN/agent-sdk/claude-code-features#what-settingsources-does-not-control) |

522| `skills` | `string[] \| 'all'` | `undefined` | 会话可用的 skills。传递 `'all'` 以启用每个发现的 skill,或传递 skill 名称列表。设置后,SDK 会自动将 Skill 工具添加到 `allowedTools`。如果您也传递 `tools`,请在该列表中包含 `'Skill'`。请参阅[Skills](/zh-CN/agent-sdk/skills) |522| `skills` | `string[] \| 'all'` | `undefined` | 会话可用的 skills。传递 `'all'` 以启用每个发现的 skill,或传递 skill 名称列表。设置后,SDK 会自动将 Skill 工具添加到 `allowedTools`。如果您也传递 `tools`,请在该列表中包含 `'Skill'`。请参阅[Skills](/docs/zh-CN/agent-sdk/skills) |

523| `spawnClaudeCodeProcess` | `(options: SpawnOptions) => SpawnedProcess` | `undefined` | 用于生成 Claude Code 进程的自定义函数。用于在 VM、容器或远程环境中运行 Claude Code |523| `spawnClaudeCodeProcess` | `(options: SpawnOptions) => SpawnedProcess` | `undefined` | 用于生成 Claude Code 进程的自定义函数。用于在 VM、容器或远程环境中运行 Claude Code |

524| `stderr` | `(data: string) => void` | `undefined` | stderr 输出的回调 |524| `stderr` | `(data: string) => void` | `undefined` | stderr 输出的回调 |

525| `strictMcpConfig` | `boolean` | `false` | 仅使用在 `mcpServers` 中传递的服务器,并忽略项目 `.mcp.json`、用户设置、plugin 提供的 MCP 服务器和[claude.ai connectors](/zh-CN/mcp#use-mcp-servers-from-claude-ai) |525| `strictMcpConfig` | `boolean` | `false` | 仅使用在 `mcpServers` 中传递的服务器,并忽略项目 `.mcp.json`、用户设置、plugin 提供的 MCP 服务器和[claude.ai connectors](/docs/zh-CN/mcp#use-mcp-servers-from-claude-ai) |

526| `systemPrompt` | `string \| { type: 'preset'; preset: 'claude_code'; append?: string; excludeDynamicSections?: boolean }` | `undefined`(最小提示) | 系统提示配置。传递字符串以获取自定义提示,或 `{ type: 'preset', preset: 'claude_code' }` 以使用 Claude Code 的系统提示。使用预设对象形式时,添加 `append` 以使用其他说明扩展它,并设置 `excludeDynamicSections: true` 以将每个会话上下文移到第一条用户消息中,以便[更好地跨机器重用提示缓存](/zh-CN/agent-sdk/modifying-system-prompts#improve-prompt-caching-across-users-and-machines) |526| `systemPrompt` | `string \| { type: 'preset'; preset: 'claude_code'; append?: string; excludeDynamicSections?: boolean }` | `undefined`(最小提示) | 系统提示配置。传递字符串以获取自定义提示,或 `{ type: 'preset', preset: 'claude_code' }` 以使用 Claude Code 的系统提示。使用预设对象形式时,添加 `append` 以使用其他说明扩展它,并设置 `excludeDynamicSections: true` 以将每个会话上下文移到第一条用户消息中,以便[更好地跨机器重用提示缓存](/docs/zh-CN/agent-sdk/modifying-system-prompts#improve-prompt-caching-across-users-and-machines) |

527| `taskBudget` | `{ total: number }` | `undefined` | *Alpha.* API 端任务预算(以令牌为单位)。设置后,模型会被告知其剩余令牌预算,以便它可以调整工具使用速度并在达到限制前完成 |527| `taskBudget` | `{ total: number }` | `undefined` | *Alpha.* API 端任务预算(以令牌为单位)。设置后,模型会被告知其剩余令牌预算,以便它可以调整工具使用速度并在达到限制前完成 |

528| `thinking` | [`ThinkingConfig`](#thinkingconfig) | 支持的模型为 `{ type: 'adaptive' }` | 控制 Claude 的思考/推理行为。请参阅 [`ThinkingConfig`](#thinkingconfig) 了解选项 |528| `thinking` | [`ThinkingConfig`](#thinkingconfig) | 支持的模型为 `{ type: 'adaptive' }` | 控制 Claude 的思考/推理行为。请参阅 [`ThinkingConfig`](#thinkingconfig) 了解选项 |

529| `title` | `string` | `undefined` | 会话的显示标题。通过 `resume` 或 `continue` 恢复时,恢复的会话的持久化标题优先;使用 [`renameSession()`](#renamesession) 重新标题现有会话 |529| `title` | `string` | `undefined` | 会话的显示标题。通过 `resume` 或 `continue` 恢复时,恢复的会话的持久化标题优先;使用 [`renameSession()`](#renamesession) 重新标题现有会话 |


552```552```

553 553 

554* `API_TIMEOUT_MS`:Anthropic 客户端上的每个请求超时,以毫秒为单位。默认 `600000`。适用于主循环和所有子代理。554* `API_TIMEOUT_MS`:Anthropic 客户端上的每个请求超时,以毫秒为单位。默认 `600000`。适用于主循环和所有子代理。

555* `CLAUDE_CODE_MAX_RETRIES`:最大 API 重试次数。默认 `10`,上限为 `15`。每次重试都有自己的 `API_TIMEOUT_MS` 窗口,因此最坏情况下的实际时间大约是 `API_TIMEOUT_MS × (CLAUDE_CODE_MAX_RETRIES + 1)` 加上退避。对于需要等待更长时间中断的无人值守运行,设置 `CLAUDE_CODE_RETRY_WATCHDOG=1`:它无限期重试容量错误,{/* min-version: 2.1.199 */}从 Claude Code v2.1.199 开始,为其他瞬时错误提高默认值至 `300` 并移除此变量的上限。555* `CLAUDE_CODE_MAX_RETRIES`:最大 API 重试次数。默认 `10`,上限为 `15`。每次重试都有自己的 `API_TIMEOUT_MS` 窗口,因此最坏情况下的实际时间大约是 `API_TIMEOUT_MS × (CLAUDE_CODE_MAX_RETRIES + 1)` 加上退避。对于需要等待更长时间中断的无人值守运行,设置 `CLAUDE_CODE_RETRY_WATCHDOG=1`:它无限期重试容量错误,从 Claude Code v2.1.199 开始,为其他瞬时错误提高默认值至 `300` 并移除此变量的上限。

556* `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS`:使用 `run_in_background` 启动的子代理的停滞监视程序。默认 `600000`。在每个流事件上重置;在停滞时中止子代理,将任务标记为失败,并将错误与任何部分结果一起呈现给父级。不适用于同步子代理。556* `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS`:使用 `run_in_background` 启动的子代理的停滞监视程序。默认 `600000`。在每个流事件上重置;在停滞时中止子代理,将任务标记为失败,并将错误与任何部分结果一起呈现给父级。不适用于同步子代理。

557* `CLAUDE_ENABLE_STREAM_WATCHDOG` 与 `CLAUDE_STREAM_IDLE_TIMEOUT_MS`:当标头已到达但响应正文停止流式传输时中止请求。监视程序对所有提供商默认启用;设置 `CLAUDE_ENABLE_STREAM_WATCHDOG=0` 以禁用它。`CLAUDE_STREAM_IDLE_TIMEOUT_MS` 默认为 `300000` 并被限制为该最小值。中止的请求通过正常重试路径进行。557* `CLAUDE_ENABLE_STREAM_WATCHDOG` 与 `CLAUDE_STREAM_IDLE_TIMEOUT_MS`:当标头已到达但响应正文停止流式传输时中止请求。监视程序对所有提供商默认启用;设置 `CLAUDE_ENABLE_STREAM_WATCHDOG=0` 以禁用它。`CLAUDE_STREAM_IDLE_TIMEOUT_MS` 默认为 `300000` 并被限制为该最小值。中止的请求通过正常重试路径进行。

558 558 


594</h4>594</h4>

595 595 

596| 方法 | 描述 |596| 方法 | 描述 |

597| :------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |597| :------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

598| `interrupt()` | 中断查询。仅在流式输入模式下可用。{/* min-version: 2.1.205 */}当 CLI 在 [`SDKSystemMessage.capabilities`](#sdksystemmessage) 中通告 `interrupt_receipt_v1` 功能时,使用列出存活中断的排队消息的 [`SDKControlInterruptResponse`](#sdkcontrolinterruptresponse) 进行解决。在 v2.1.205 之前的 CLI 上解决为 `undefined` |598| `interrupt()` | 中断查询。仅在流式输入模式下可用。当 CLI 在 [`SDKSystemMessage.capabilities`](#sdksystemmessage) 中通告 `interrupt_receipt_v1` 功能时,使用列出存活中断的排队消息的 [`SDKControlInterruptResponse`](#sdkcontrolinterruptresponse) 进行解决。在 v2.1.205 之前的 CLI 上解决为 `undefined` |

599| `rewindFiles(userMessageId, options?)` | 将文件恢复到指定用户消息时的状态。传递 `{ dryRun: true }` 以预览更改。需要 `enableFileCheckpointing: true`。请参阅[文件 checkpointing](/zh-CN/agent-sdk/file-checkpointing) |599| `rewindFiles(userMessageId, options?)` | 将文件恢复到指定用户消息时的状态。传递 `{ dryRun: true }` 以预览更改。需要 `enableFileCheckpointing: true`。请参阅[文件 checkpointing](/docs/zh-CN/agent-sdk/file-checkpointing) |

600| `setPermissionMode()` | 更改权限模式(仅在流式输入模式下可用) |600| `setPermissionMode()` | 更改权限模式(仅在流式输入模式下可用) |

601| `setModel()` | 更改模型(仅在流式输入模式下可用) |601| `setModel()` | 更改模型(仅在流式输入模式下可用) |

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

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

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

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

606| `supportedCommands()` | 返回可用的 slash commands |606| `supportedCommands()` | 返回可用的 slash commands |

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

608| `supportedAgents()` | 返回可用的子代理作为 [`AgentInfo`](#agentinfo)`[]` |608| `supportedAgents()` | 返回可用的子代理作为 [`AgentInfo`](#agentinfo)`[]` |


619 `applyFlagSettings()`619 `applyFlagSettings()`

620</h4>620</h4>

621 621 

622在运行的会话上更改任何[设置](/zh-CN/settings)而无需重新启动查询。当没有专用设置器的设置需要在会话中期更改时使用它,例如在代理读取不受信任的输入后收紧 `permissions`。`setModel()` 和 `setPermissionMode()` 是这两个键的专用设置器;`applyFlagSettings()` 是接受任何设置键子集的通用形式,在此处传递 `model` 的行为与 `setModel()` 相同。622在运行的会话上更改任何[设置](/docs/zh-CN/settings)而无需重新启动查询。当没有专用设置器的设置需要在会话中期更改时使用它,例如在代理读取不受信任的输入后收紧 `permissions`。`setModel()` 和 `setPermissionMode()` 是这两个键的专用设置器;`applyFlagSettings()` 是接受任何设置键子集的通用形式,在此处传递 `model` 的行为与 `setModel()` 相同。

623 623 

624仅某些键在会话中期生效:624仅某些键在会话中期生效:

625 625 

626* **在下一个轮次应用**:`model`、`effortLevel`、`ultracode`、`permissions`、`hooks`、`skillOverrides`、`fastMode`、`agent`。切换 `agent` 也会在下一个轮次应用该代理的模型覆盖、hooks 和系统提示。626* **在下一个轮次应用**:`model`、`effortLevel`、`ultracode`、`permissions`、`hooks`、`skillOverrides`、`fastMode`、`agent`。切换 `agent` 也会在下一个轮次应用该代理的模型覆盖、hooks 和系统提示。

627* **会话中期无效**:系统提示选项。这些在启动时解决一次,因此运行的会话保持原始值,即使调用成功。要更改它们,请启动新会话。627* **会话中期无效**:系统提示选项。这些在启动时解决一次,因此运行的会话保持原始值,即使调用成功。要更改它们,请启动新会话。

628 628 

629`effortLevel` 接受一个[努力级别](/zh-CN/model-config#adjust-effort-level)名称。它也接受 `"ultracode"`,它以 `xhigh` 努力运行会话并打开[ultracode](/zh-CN/workflows#let-claude-decide-with-ultracode)。`Settings` 类型声明 `effortLevel` 不包含该值,因此在 TypeScript 中传递等效的 `{ ultracode: true }`。{/* min-version: 2.1.203 */}`ultracode` 值需要 Claude Code v2.1.203 或更高版本,仅由 `applyFlagSettings()` 接受,不由设置文件中的 `effortLevel` 键接受。629`effortLevel` 接受一个[努力级别](/docs/zh-CN/model-config#adjust-effort-level)名称。它也接受 `"ultracode"`,它以 `xhigh` 努力运行会话并打开[ultracode](/docs/zh-CN/workflows#let-claude-decide-with-ultracode)。`Settings` 类型声明 `effortLevel` 不包含该值,因此在 TypeScript 中传递等效的 `{ ultracode: true }`。`ultracode` 值需要 Claude Code v2.1.203 或更高版本,仅由 `applyFlagSettings()` 接受,不由设置文件中的 `effortLevel` 键接受。

630 630 

631这些值被写入标志设置层,这是内联 `query()` 的 `settings` 选项在启动时填充的同一层。标志设置位于[设置优先级顺序](/zh-CN/settings#settings-precedence)的顶部附近:它们覆盖用户、项目和本地设置,只有托管策略设置可以覆盖它们。这与[优先级部分](#settings-precedence)称为编程选项的层相同。631这些值被写入标志设置层,这是内联 `query()` 的 `settings` 选项在启动时填充的同一层。标志设置位于[设置优先级顺序](/docs/zh-CN/settings#settings-precedence)的顶部附近:它们覆盖用户、项目和本地设置,只有托管策略设置可以覆盖它们。这与[优先级部分](#settings-precedence)称为编程选项的层相同。

632 632 

633连续调用浅合并顶级键。第二次调用 `{ permissions: {...} }` 会替换先前调用中的整个 `permissions` 对象,而不是深度合并到其中。要从标志层清除键并回退到较低优先级源,请为该键传递 `null`。传递 `undefined` 无效,因为 JSON 序列化会将其删除。633连续调用浅合并顶级键。第二次调用 `{ permissions: {...} }` 会替换先前调用中的整个 `permissions` 对象,而不是深度合并到其中。要从标志层清除键并回退到较低优先级源,请为该键传递 `null`。传递 `undefined` 无效,因为 JSON 序列化会将其删除。

634 634 


714 714 

715* 仅出现已使用 UUID 入队的消息。空数组并不意味着没有其他内容会运行。715* 仅出现已使用 UUID 入队的消息。空数组并不意味着没有其他内容会运行。

716* 仅列出主线程消息。寻址到子代理的消息超出范围。716* 仅列出主线程消息。寻址到子代理的消息超出范围。

717* 列表可以包括您的客户端从未发送的 UUID,例如[计划任务](/zh-CN/scheduled-tasks)触发器。忽略您不识别的 UUID,而不是将其视为错误。717* 列表可以包括您的客户端从未发送的 UUID,例如[计划任务](/docs/zh-CN/scheduled-tasks)触发器。忽略您不识别的 UUID,而不是将其视为错误。

718 718 

719收据是在处理中断时拍摄的快照,在干净中断时,它在中断轮次的 [`SDKResultMessage`](#sdkresultmessage) 之前到达。在该结果之后读取收据而不是检查队列:循环立即启动下一个排队的轮次,因此您在结果后检查的队列已经改变。719收据是在处理中断时拍摄的快照,在干净中断时,它在中断轮次的 [`SDKResultMessage`](#sdkresultmessage) 之前到达。在该结果之后读取收据而不是检查队列:循环立即启动下一个排队的轮次,因此您在结果后检查的队列已经改变。

720 720 


792 默认行为792 默认行为

793</h4>793</h4>

794 794 

795当 `settingSources` 被省略或 `undefined` 时,`query()` 加载与 Claude Code CLI 相同的文件系统设置:用户、项目和本地。在所有情况下都会加载[端点管理的策略](/zh-CN/settings#settings-files);当会话使用组织凭证在[符合条件的配置](/zh-CN/server-managed-settings#platform-availability)上进行身份验证时,会获取服务器管理的设置。请参阅[settingSources 不控制的内容](/zh-CN/agent-sdk/claude-code-features#what-settingsources-does-not-control)了解无论此选项如何都会读取的输入,以及如何禁用它们。795当 `settingSources` 被省略或 `undefined` 时,`query()` 加载与 Claude Code CLI 相同的文件系统设置:用户、项目和本地。在所有情况下都会加载[端点管理的策略](/docs/zh-CN/settings#settings-files);当会话使用组织凭证在[符合条件的配置](/docs/zh-CN/server-managed-settings#platform-availability)上进行身份验证时,会获取服务器管理的设置。请参阅[settingSources 不控制的内容](/docs/zh-CN/agent-sdk/claude-code-features#what-settingsources-does-not-control)了解无论此选项如何都会读取的输入,以及如何禁用它们。

796 796 

797<h4 id="why-use-settingsources">797<h4 id="why-use-settingsources">

798 为什么使用 settingSources798 为什么使用 settingSources


913 913 

914用于控制工具使用的自定义权限函数类型。914用于控制工具使用的自定义权限函数类型。

915 915 

916该函数是 SDK 替代交互式权限提示:仅当[权限评估流](/zh-CN/agent-sdk/permissions#how-permissions-are-evaluated)解决为提示时才调用它。已由 `allowedTools` 条目、设置 allow 规则或权限模式(如 `acceptEdits` 或 `bypassPermissions`)批准的工具调用永远不会调用它。要限制每个工具调用,请改用 [`PreToolUse` hook](/zh-CN/agent-sdk/hooks)。916该函数是 SDK 替代交互式权限提示:仅当[权限评估流](/docs/zh-CN/agent-sdk/permissions#how-permissions-are-evaluated)解决为提示时才调用它。已由 `allowedTools` 条目、设置 allow 规则或权限模式(如 `acceptEdits` 或 `bypassPermissions`)批准的工具调用永远不会调用它。要限制每个工具调用,请改用 [`PreToolUse` hook](/docs/zh-CN/agent-sdk/hooks)。

917 917 

918`AskUserQuestion`、标记为 [`requiresUserInteraction`](/zh-CN/mcp#require-approval-for-a-specific-tool) 的 MCP 工具和[您的组织设置为 `ask`](/zh-CN/mcp#organization-controls-on-connector-tools) 的 connector 工具即使 allow 规则匹配也会到达该函数。在 `dontAsk` 模式下这些调用会被拒绝,不调用它。918`AskUserQuestion`、标记为 [`requiresUserInteraction`](/docs/zh-CN/mcp#require-approval-for-a-specific-tool) 的 MCP 工具和[您的组织设置为 `ask`](/docs/zh-CN/mcp#organization-controls-on-connector-tools) 的 connector 工具即使 allow 规则匹配也会到达该函数。在 `dontAsk` 模式下这些调用会被拒绝,不调用它。

919 919 

920```typescript theme={null}920```typescript theme={null}

921type CanUseTool = (921type CanUseTool = (


985 985 

986| 字段 | 类型 | 描述 |986| 字段 | 类型 | 描述 |

987| :------------------------------ | :--------------------- | :---------------------------------------------------------------------------------------------------------------- |987| :------------------------------ | :--------------------- | :---------------------------------------------------------------------------------------------------------------- |

988| `askUserQuestion.previewFormat` | `'markdown' \| 'html'` | 选择加入 [`AskUserQuestion`](/zh-CN/agent-sdk/user-input#question-format) 选项上的 `preview` 字段并设置其内容格式。未设置时,Claude 不发出预览 |988| `askUserQuestion.previewFormat` | `'markdown' \| 'html'` | 选择加入 [`AskUserQuestion`](/docs/zh-CN/agent-sdk/user-input#question-format) 选项上的 `preview` 字段并设置其内容格式。未设置时,Claude 不发出预览 |

989 989 

990<h3 id="mcpserverconfig">990<h3 id="mcpserverconfig">

991 `McpServerConfig`991 `McpServerConfig`


1091];1091];

1092```1092```

1093 1093 

1094有关创建和使用 plugins 的完整信息,请参阅[Plugins](/zh-CN/agent-sdk/plugins)。1094有关创建和使用 plugins 的完整信息,请参阅[Plugins](/docs/zh-CN/agent-sdk/plugins)。

1095 1095 

1096<h2 id="message-types">1096<h2 id="message-types">

1097 消息类型1097 消息类型


1210};1210};

1211```1211```

1212 1212 

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

1214 1214 

1215<h3 id="sdkresultmessage">1215<h3 id="sdkresultmessage">

1216 `SDKResultMessage`1216 `SDKResultMessage`


1279 1279 

1280`origin` 字段转发触发此结果的用户消息的 [`SDKMessageOrigin`](#sdkmessageorigin)。当后台任务完成且 SDK 注入合成后续轮次时,生成的 `SDKResultMessage` 携带 `origin: { kind: "task-notification" }`。检查此字段以区分回答您的提示的结果与为后台任务后续操作发出的结果,以便您可以路由或抑制后者。对于在任何用户轮次之前发出的结果(例如启动错误),该字段不存在。1280`origin` 字段转发触发此结果的用户消息的 [`SDKMessageOrigin`](#sdkmessageorigin)。当后台任务完成且 SDK 注入合成后续轮次时,生成的 `SDKResultMessage` 携带 `origin: { kind: "task-notification" }`。检查此字段以区分回答您的提示的结果与为后台任务后续操作发出的结果,以便您可以路由或抑制后者。对于在任何用户轮次之前发出的结果(例如启动错误),该字段不存在。

1281 1281 

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

1283 1283 

1284<h3 id="sdksystemmessage">1284<h3 id="sdksystemmessage">

1285 `SDKSystemMessage`1285 `SDKSystemMessage`


1313};1313};

1314```1314```

1315 1315 

1316{/* min-version: 2.1.205 */}

1317 

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

1319 1317 

1320| 功能 | 含义 |1318| 功能 | 含义 |


1396 `SDKPluginInstallMessage`1394 `SDKPluginInstallMessage`

1397</h3>1395</h3>

1398 1396 

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

1400 1398 

1401```typescript theme={null}1399```typescript theme={null}

1402type SDKPluginInstallMessage = {1400type SDKPluginInstallMessage = {


1479```1477```

1480 1478 

1481| `kind` | 含义 |1479| `kind` | 含义 |

1482| ------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |1480| ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

1483| `human` | 来自最终用户的直接输入。在用户消息上,缺少的 `origin` 也表示人工输入。 |1481| `human` | 来自最终用户的直接输入。在用户消息上,缺少的 `origin` 也表示人工输入。 |

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

1485| `peer` | 来自另一个代理的消息。对于通过 `SendMessage` 发送到 `main` 的进程内[队友](/zh-CN/agent-teams),`from` 是队友的名称,`senderTaskId` 是其任务 ID。对于跨会话对等体(例如另一个本地 Claude Code 进程),`from` 是发送者地址,`senderTaskId` 不存在。{/* min-version: 2.1.205 */}}`name` 和 `body` 需要 Claude Code v2.1.205 或更高版本。`name` 是发送者的显示名称,由 Claude Code 规范化:它删除 Unicode 控制、格式、代理和行或段落分隔符代码点,然后修剪结果并将其限制为 64 个代码点,并带有省略号。`body` 是解码的消息正文,去除对等信封,与模型看到的字节完全相同。对于队友消息,`body` 始终存在;对于跨会话对等体,仅当轮次恰好是由 Claude Code 形成的一个对等信封时才存在。呈现 `name` 和 `body` 而不是重新解析消息文本。 |1483| `peer` | 来自另一个代理的消息。对于通过 `SendMessage` 发送到 `main` 的进程内[队友](/docs/zh-CN/agent-teams),`from` 是队友的名称,`senderTaskId` 是其任务 ID。对于跨会话对等体(例如另一个本地 Claude Code 进程),`from` 是发送者地址,`senderTaskId` 不存在。}`name` 和 `body` 需要 Claude Code v2.1.205 或更高版本。`name` 是发送者的显示名称,由 Claude Code 规范化:它删除 Unicode 控制、格式、代理和行或段落分隔符代码点,然后修剪结果并将其限制为 64 个代码点,并带有省略号。`body` 是解码的消息正文,去除对等信封,与模型看到的字节完全相同。对于队友消息,`body` 始终存在;对于跨会话对等体,仅当轮次恰好是由 Claude Code 形成的一个对等信封时才存在。呈现 `name` 和 `body` 而不是重新解析消息文本。 |

1486| `task-notification` | 后台任务完成后注入的合成轮次。请参阅 [`SDKTaskNotificationMessage`](#sdktasknotificationmessage)。 |1484| `task-notification` | 后台任务完成后注入的合成轮次。请参阅 [`SDKTaskNotificationMessage`](#sdktasknotificationmessage)。 |

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

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

1489 1487 

1490<h2 id="hook-types">1488<h2 id="hook-types">

1491 Hook 类型1489 Hook 类型

1492</h2>1490</h2>

1493 1491 

1494有关使用 hooks 的综合指南,包括示例和常见模式,请参阅 [Hooks 指南](/zh-CN/agent-sdk/hooks)。1492有关使用 hooks 的综合指南,包括示例和常见模式,请参阅 [Hooks 指南](/docs/zh-CN/agent-sdk/hooks)。

1495 1493 

1496<h3 id="hookevent">1494<h3 id="hookevent">

1497 `HookEvent`1495 `HookEvent`


1600};1598};

1601```1599```

1602 1600 

1603`prompt_id` 字段是一个 UUID,用于标识当前正在处理的用户提示。它与 [OpenTelemetry 事件上的 `prompt.id` 属性](/zh-CN/monitoring-usage#event-correlation-attributes)匹配,在第一个用户输入之前不存在。需要 Claude Code v2.1.196 或更高版本。1601`prompt_id` 字段是一个 UUID,用于标识当前正在处理的用户提示。它与 [OpenTelemetry 事件上的 `prompt.id` 属性](/docs/zh-CN/monitoring-usage#event-correlation-attributes)匹配,在第一个用户输入之前不存在。需要 Claude Code v2.1.196 或更高版本。

1604 1602 

1605<h4 id="pretoolusehookinput">1603<h4 id="pretoolusehookinput">

1606 `PreToolUseHookInput`1604 `PreToolUseHookInput`


2071};2069};

2072```2070```

2073 2071 

2074在执行期间向用户提出澄清问题。请参阅[处理批准和用户输入](/zh-CN/agent-sdk/user-input#handle-clarifying-questions)了解使用详情。2072在执行期间向用户提出澄清问题。请参阅[处理批准和用户输入](/docs/zh-CN/agent-sdk/user-input#handle-clarifying-questions)了解使用详情。

2075 2073 

2076<h3 id="bash">2074<h3 id="bash">

2077 Bash2075 Bash


2110};2108};

2111```2109```

2112 2110 

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

2114 2112 

2115为会话长度的监视(如日志尾部)设置 `persistent: true`。当 Monitor 运行命令时,它遵循与 Bash 相同的权限规则;WebSocket 监视会单独提示批准。请参阅 [Monitor 工具参考](/zh-CN/tools-reference#monitor-tool)了解行为和提供商可用性。2113为会话长度的监视(如日志尾部)设置 `persistent: true`。当 Monitor 运行命令时,它遵循与 Bash 相同的权限规则;WebSocket 监视会单独提示批准。请参阅 [Monitor 工具参考](/docs/zh-CN/tools-reference#monitor-tool)了解行为和提供商可用性。

2116 2114 

2117<h3 id="taskoutput">2115<h3 id="taskoutput">

2118 TaskOutput2116 TaskOutput


2234};2232};

2235```2233```

2236 2234 

2237按 ID 停止运行的后台任务或 shell。{/* min-version: 2.1.198 */}自 v2.1.198 起,`task_id` 也接受代理团队队友或按代理 ID 或名称的命名后台代理。2235按 ID 停止运行的后台任务或 shell。自 v2.1.198 起,`task_id` 也接受代理团队队友或按代理 ID 或名称的命名后台代理。

2238 2236 

2239<h3 id="notebookedit">2237<h3 id="notebookedit">

2240 NotebookEdit2238 NotebookEdit


2301};2299};

2302```2300```

2303 2301 

2304运行[动态工作流](/zh-CN/workflows):一个脚本,在后台协调许多子代理并返回一个统一的结果。Workflow 工具在 Agent SDK v0.3.149 及更高版本中可用。至少需要 `script`、`name` 或 `scriptPath` 之一。2302运行[动态工作流](/docs/zh-CN/workflows):一个脚本,在后台协调许多子代理并返回一个统一的结果。Workflow 工具在 Agent SDK v0.3.149 及更高版本中可用。至少需要 `script`、`name` 或 `scriptPath` 之一。

2305 2303 

2306| 字段 | 类型 | 描述 |2304| 字段 | 类型 | 描述 |

2307| ----------------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |2305| ----------------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |


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

2331 2329 

2332<Note>2330<Note>

2333 自 TypeScript Agent SDK 0.3.142 起,`TodoWrite` 默认被禁用。改用 `TaskCreate`、`TaskGet`、`TaskUpdate` 和 `TaskList`。请参阅[迁移到 Task 工具](/zh-CN/agent-sdk/todo-tracking#migrate-to-task-tools)以更新您的监视代码,或设置 `CLAUDE_CODE_ENABLE_TASKS=0` 以恢复为 `TodoWrite`。2331 自 TypeScript Agent SDK 0.3.142 起,`TodoWrite` 默认被禁用。改用 `TaskCreate`、`TaskGet`、`TaskUpdate` 和 `TaskList`。请参阅[迁移到 Task 工具](/docs/zh-CN/agent-sdk/todo-tracking#migrate-to-task-tools)以更新您的监视代码,或设置 `CLAUDE_CODE_ENABLE_TASKS=0` 以恢复为 `TodoWrite`。

2334</Note>2332</Note>

2335 2333 

2336<h3 id="taskcreate">2334<h3 id="taskcreate">


2570 2568 

2571返回来自子代理的结果。在 `status` 字段上进行区分:`"completed"` 表示已完成的任务,`"async_launched"` 表示后台任务,`"remote_launched"` 表示 Claude Code 分派到远程云会话的任务,其中 `sessionUrl` 链接到该会话,`taskId` 标识它。2569返回来自子代理的结果。在 `status` 字段上进行区分:`"completed"` 表示已完成的任务,`"async_launched"` 表示后台任务,`"remote_launched"` 表示 Claude Code 分派到远程云会话的任务,其中 `sessionUrl` 链接到该会话,`taskId` 标识它。

2572 2570 

2573`completed` 和 `async_launched` 变体上的 `resolvedModel` 字段命名子代理实际运行的模型,当应用 [`availableModels`](/zh-CN/model-config#restrict-model-selection) 或其他覆盖时,该模型可能与请求的 `model` 输入不同。{/* min-version: 2.1.174 */}此字段需要 Claude Code v2.1.174 或更高版本。2571`completed` 和 `async_launched` 变体上的 `resolvedModel` 字段命名子代理实际运行的模型,当应用 [`availableModels`](/docs/zh-CN/model-config#restrict-model-selection) 或其他覆盖时,该模型可能与请求的 `model` 输入不同。此字段需要 Claude Code v2.1.174 或更高版本。

2574 2572 

2575在 `completed` 变体上,当子代理在隔离的 git worktree 中运行时,`worktreePath` 被设置,`worktreeBranch` 在 Claude Code 创建该 worktree 时命名其分支。`usage.service_tier` 携带 API 为子代理的请求报告的服务层字符串。2573在 `completed` 变体上,当子代理在隔离的 git worktree 中运行时,`worktreePath` 被设置,`worktreeBranch` 在 Claude Code 创建该 worktree 时命名其分支。`usage.service_tier` 携带 API 为子代理的请求报告的服务层字符串。

2576 2574 


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

2937 2935 

2938<Note>2936<Note>

2939 自 TypeScript Agent SDK 0.3.142 起,`TodoWrite` 默认被禁用。改用 `TaskCreate`、`TaskGet`、`TaskUpdate` 和 `TaskList`。请参阅[迁移到 Task 工具](/zh-CN/agent-sdk/todo-tracking#migrate-to-task-tools)更新您的监视代码,或设置 `CLAUDE_CODE_ENABLE_TASKS=0` 以恢复为 `TodoWrite`。2937 自 TypeScript Agent SDK 0.3.142 起,`TodoWrite` 默认被禁用。改用 `TaskCreate`、`TaskGet`、`TaskUpdate` 和 `TaskList`。请参阅[迁移到 Task 工具](/docs/zh-CN/agent-sdk/todo-tracking#migrate-to-task-tools)更新您的监视代码,或设置 `CLAUDE_CODE_ENABLE_TASKS=0` 以恢复为 `TodoWrite`。

2940</Note>2938</Note>

2941 2939 

2942<h3 id="taskcreate-2">2940<h3 id="taskcreate-2">


3230```3228```

3231 3229 

3232| 字段 | 类型 | 描述 |3230| 字段 | 类型 | 描述 |

3233| :------------------------- | :----------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------ |3231| :------------------------- | :----------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------- |

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

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

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

3237| `description` | `string` | 模型功能的描述 |3235| `description` | `string` | 模型功能的描述 |

3238| `supportsEffort` | `boolean \| undefined` | 此模型是否支持工作量级别 |3236| `supportsEffort` | `boolean \| undefined` | 此模型是否支持工作量级别 |


3327 `ModelUsage`3325 `ModelUsage`

3328</h3>3326</h3>

3329 3327 

3330结果消息中返回的每个模型使用统计。`costUSD` 值是客户端估计。请参阅[跟踪成本和使用情况](/zh-CN/agent-sdk/cost-tracking)了解计费注意事项。3328结果消息中返回的每个模型使用统计。`costUSD` 值是客户端估计。请参阅[跟踪成本和使用情况](/docs/zh-CN/agent-sdk/cost-tracking)了解计费注意事项。

3331 3329 

3332```typescript theme={null}3330```typescript theme={null}

3333type ModelUsage = {3331type ModelUsage = {


3392 `CallToolResult`3390 `CallToolResult`

3393</h3>3391</h3>

3394 3392 

3395MCP 工具结果类型(来自 `@modelcontextprotocol/sdk/types.js`)。`structuredContent` 是一个 JSON 对象,可以与 `content` 一起返回,包括图像块。请参阅[返回结构化数据](/zh-CN/agent-sdk/custom-tools#return-structured-data)。3393MCP 工具结果类型(来自 `@modelcontextprotocol/sdk/types.js`)。`structuredContent` 是一个 JSON 对象,可以与 `content` 一起返回,包括图像块。请参阅[返回结构化数据](/docs/zh-CN/agent-sdk/custom-tools#return-structured-data)。

3396 3394 

3397```typescript theme={null}3395```typescript theme={null}

3398type CallToolResult = {3396type CallToolResult = {


3742 3740 

3743启动时不发出任何内容。每当会话的 CLI 进程启动或重新启动时重置为空集,并让下一个成员资格变化重新填充它。3741启动时不发出任何内容。每当会话的 CLI 进程启动或重新启动时重置为空集,并让下一个成员资格变化重新填充它。

3744 3742 

3745{/* min-version: 2.1.203 */}需要 Claude Code v2.1.203 或更高版本。3743需要 Claude Code v2.1.203 或更高版本。

3746 3744 

3747```typescript theme={null}3745```typescript theme={null}

3748type SDKBackgroundTasksChangedMessage = {3746type SDKBackgroundTasksChangedMessage = {


3762 `SDKThinkingTokensMessage`3760 `SDKThinkingTokensMessage`

3763</h3>3761</h3>

3764 3762 

3765在 Claude 生成思考块(包括编辑过的块)时发出,携带迄今为止生成的思考令牌的运行估计。`estimated_tokens` 是当前思考块的运行总计,`estimated_tokens_delta` 是此帧携带的增量。将其用于进度显示。顶级代理循环的最终计数是结果消息的 `usage.output_tokens`,它[不包括子代理令牌](/zh-CN/agent-sdk/cost-tracking#get-the-total-cost-of-a-query);使用 [`modelUsage`](#modelusage) 进行整树会计。3763在 Claude 生成思考块(包括编辑过的块)时发出,携带迄今为止生成的思考令牌的运行估计。`estimated_tokens` 是当前思考块的运行总计,`estimated_tokens_delta` 是此帧携带的增量。将其用于进度显示。顶级代理循环的最终计数是结果消息的 `usage.output_tokens`,它[不包括子代理令牌](/docs/zh-CN/agent-sdk/cost-tracking#get-the-total-cost-of-a-query);使用 [`modelUsage`](#modelusage) 进行整树会计。

3766 3764 

3767{/* min-version: 2.1.153 */}需要 Claude Code v2.1.153 或更高版本。3765需要 Claude Code v2.1.153 或更高版本。

3768 3766 

3769```typescript theme={null}3767```typescript theme={null}

3770type SDKThinkingTokensMessage = {3768type SDKThinkingTokensMessage = {


3817};3815};

3818```3816```

3819 3817 

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

3821 3819 

3822<h3 id="sdklocalcommandoutputmessage">3820<h3 id="sdklocalcommandoutputmessage">

3823 `SDKLocalCommandOutputMessage`3821 `SDKLocalCommandOutputMessage`


3881};3879};

3882```3880```

3883 3881 

3884{/* min-version: 2.1.203 */}SDK 的已发布类型在 Claude Code v2.1.203 及更高版本中声明 `SDKConversationResetMessage`。在 v2.1.203 之前,`SDKMessage` 引用该类型而不声明它,因此当 `skipLibCheck` 被禁用时,在 `type === "conversation_reset"` 上缩小范围失败类型检查。3882SDK 的已发布类型在 Claude Code v2.1.203 及更高版本中声明 `SDKConversationResetMessage`。在 v2.1.203 之前,`SDKMessage` 引用该类型而不声明它,因此当 `skipLibCheck` 被禁用时,在 `type === "conversation_reset"` 上缩小范围失败类型检查。

3885 3883 

3886<h3 id="aborterror">3884<h3 id="aborterror">

3887 `AbortError`3885 `AbortError`


3932| `ripgrep` | `{ command: string; args?: string[] }` | `undefined` | 沙箱环境中的自定义 ripgrep 二进制配置 |3930| `ripgrep` | `{ command: string; args?: string[] }` | `undefined` | 沙箱环境中的自定义 ripgrep 二进制配置 |

3933 3931 

3934<Note>3932<Note>

3935 沙箱取决于平台支持,在 Linux 上,还需要 `bubblewrap` 和 `socat` 等工具。当 `enabled` 为 `true` 且沙箱无法启动时,`query()` 报告一条 `result` 消息,其中 `subtype: "error_during_execution"`,原因在 `errors` 中。对于单个消息 `query()` 调用,SDK 在生成该错误结果后抛出异常,因此将循环包装在 try 块中以继续通过它。有关错误合约,请参阅[处理结果](/zh-CN/agent-sdk/agent-loop#handle-the-result)。3933 沙箱取决于平台支持,在 Linux 上,还需要 `bubblewrap` 和 `socat` 等工具。当 `enabled` 为 `true` 且沙箱无法启动时,`query()` 报告一条 `result` 消息,其中 `subtype: "error_during_execution"`,原因在 `errors` 中。对于单个消息 `query()` 调用,SDK 在生成该错误结果后抛出异常,因此将循环包装在 try 块中以继续通过它。有关错误合约,请参阅[处理结果](/docs/zh-CN/agent-sdk/agent-loop#handle-the-result)。

3936 3934 

3937 要改为运行沙箱外的命令,请设置 `failIfUnavailable: false`。3935 要改为运行沙箱外的命令,请设置 `failIfUnavailable: false`。

3938</Note>3936</Note>


3974 `SandboxNetworkConfig`3972 `SandboxNetworkConfig`

3975</h3>3973</h3>

3976 3974 

3977沙箱模式的网络特定配置。这些设置适用于当父级 [`SandboxSettings`](#sandboxsettings) 中的 `enabled` 为 `true` 时的沙箱化 Bash 命令。它们不限制 WebFetch 工具,该工具改用[权限规则](/zh-CN/permissions#webfetch)。3975沙箱模式的网络特定配置。这些设置适用于当父级 [`SandboxSettings`](#sandboxsettings) 中的 `enabled` 为 `true` 时的沙箱化 Bash 命令。它们不限制 WebFetch 工具,该工具改用[权限规则](/docs/zh-CN/permissions#webfetch)。

3978 3976 

3979```typescript theme={null}3977```typescript theme={null}

3980type SandboxNetworkConfig = {3978type SandboxNetworkConfig = {


3993| :------------------------ | :--------- | :---------- | :----------------------------------------------------------------------------------------------------------------------- |3991| :------------------------ | :--------- | :---------- | :----------------------------------------------------------------------------------------------------------------------- |

3994| `allowedDomains` | `string[]` | `[]` | 沙箱进程可以访问的域名 |3992| `allowedDomains` | `string[]` | `[]` | 沙箱进程可以访问的域名 |

3995| `deniedDomains` | `string[]` | `[]` | 沙箱进程无法访问的域名。优先于 `allowedDomains` |3993| `deniedDomains` | `string[]` | `[]` | 沙箱进程无法访问的域名。优先于 `allowedDomains` |

3996| `allowManagedDomainsOnly` | `boolean` | `false` | 仅限管理设置。在[管理设置](/zh-CN/permissions#managed-settings)中设置时,仅遵守来自管理设置的 `allowedDomains` 条目,来自用户、项目或本地设置的条目被忽略。通过 SDK 选项设置时无效 |3994| `allowManagedDomainsOnly` | `boolean` | `false` | 仅限管理设置。在[管理设置](/docs/zh-CN/permissions#managed-settings)中设置时,仅遵守来自管理设置的 `allowedDomains` 条目,来自用户、项目或本地设置的条目被忽略。通过 SDK 选项设置时无效 |

3997| `allowLocalBinding` | `boolean` | `false` | 允许进程绑定到本地端口(例如,用于开发服务器) |3995| `allowLocalBinding` | `boolean` | `false` | 允许进程绑定到本地端口(例如,用于开发服务器) |

3998| `allowUnixSockets` | `string[]` | `[]` | 进程可以访问的 Unix socket 路径(例如,Docker socket) |3996| `allowUnixSockets` | `string[]` | `[]` | 进程可以访问的 Unix socket 路径(例如,Docker socket) |

3999| `allowAllUnixSockets` | `boolean` | `false` | 允许访问所有 Unix sockets |3997| `allowAllUnixSockets` | `boolean` | `false` | 允许访问所有 Unix sockets |


4001| `socksProxyPort` | `number` | `undefined` | 网络请求的 SOCKS 代理端口 |3999| `socksProxyPort` | `number` | `undefined` | 网络请求的 SOCKS 代理端口 |

4002 4000 

4003<Note>4001<Note>

4004 内置沙箱代理基于请求的主机名强制执行 `allowedDomains`,不会终止或检查 TLS 流量,因此[域前置](https://en.wikipedia.org/wiki/Domain_fronting)等技术可能会绕过它。有关详细信息,请参阅[沙箱安全限制](/zh-CN/sandboxing#security-limitations),以及[安全部署](/zh-CN/agent-sdk/secure-deployment#traffic-forwarding)以配置 TLS 终止代理。4002 内置沙箱代理基于请求的主机名强制执行 `allowedDomains`,不会终止或检查 TLS 流量,因此[域前置](https://en.wikipedia.org/wiki/Domain_fronting)等技术可能会绕过它。有关详细信息,请参阅[沙箱安全限制](/docs/zh-CN/sandboxing#security-limitations),以及[安全部署](/docs/zh-CN/agent-sdk/secure-deployment#traffic-forwarding)以配置 TLS 终止代理。

4005</Note>4003</Note>

4006 4004 

4007<h3 id="sandboxfilesystemconfig">4005<h3 id="sandboxfilesystemconfig">


4079<Warning>4077<Warning>

4080 使用 `dangerouslyDisableSandbox: true` 运行的命令具有完整的系统访问权限。确保您的 `canUseTool` 处理程序仔细验证这些请求。4078 使用 `dangerouslyDisableSandbox: true` 运行的命令具有完整的系统访问权限。确保您的 `canUseTool` 处理程序仔细验证这些请求。

4081 4079 

4082 如果 `permissionMode` 设置为 `bypassPermissions` 且 `allowUnsandboxedCommands` 启用,模型可以自主执行沙箱外的命令,无需任何批准提示(显式的 [`ask` 规则](/zh-CN/agent-sdk/permissions#how-permissions-are-evaluated)仍会强制执行一个)。此组合实际上允许模型以静默方式逃离沙箱隔离。4080 如果 `permissionMode` 设置为 `bypassPermissions` 且 `allowUnsandboxedCommands` 启用,模型可以自主执行沙箱外的命令,无需任何批准提示(显式的 [`ask` 规则](/docs/zh-CN/agent-sdk/permissions#how-permissions-are-evaluated)仍会强制执行一个)。此组合实际上允许模型以静默方式逃离沙箱隔离。

4083</Warning>4081</Warning>

4084 4082 

4085<h2 id="see-also">4083<h2 id="see-also">

4086 另请参阅4084 另请参阅

4087</h2>4085</h2>

4088 4086 

4089* [SDK 概述](/zh-CN/agent-sdk/overview) - 常规 SDK 概念4087* [SDK 概述](/docs/zh-CN/agent-sdk/overview) - 常规 SDK 概念

4090* [Python SDK 参考](/zh-CN/agent-sdk/python) - Python SDK 文档4088* [Python SDK 参考](/docs/zh-CN/agent-sdk/python) - Python SDK 文档

4091* [CLI 参考](/zh-CN/cli-reference) - 命令行界面4089* [CLI 参考](/docs/zh-CN/cli-reference) - 命令行界面

4092* [常见工作流](/zh-CN/common-workflows) - 分步指南4090* [常见工作流](/docs/zh-CN/common-workflows) - 分步指南

Details

12 12 

13对于澄清问题,Claude 生成问题和选项。您的角色是向用户呈现这些问题,并返回他们的选择。您不能向此流程添加自己的问题;如果您需要自己询问用户某些内容,请在应用程序逻辑中单独进行。13对于澄清问题,Claude 生成问题和选项。您的角色是向用户呈现这些问题,并返回他们的选择。您不能向此流程添加自己的问题;如果您需要自己询问用户某些内容,请在应用程序逻辑中单独进行。

14 14 

15回调可以无限期地保持待处理状态。执行保持暂停状态,直到您的回调返回,SDK 仅在查询本身被取消时才取消等待。如果用户可能需要比您的进程能够合理保持运行的时间更长的时间来响应,请返回 [`defer` hook 决定](/zh-CN/hooks#defer-a-tool-call-for-later),它允许进程退出并稍后从持久化会话恢复。15回调可以无限期地保持待处理状态。执行保持暂停状态,直到您的回调返回,SDK 仅在查询本身被取消时才取消等待。如果用户可能需要比您的进程能够合理保持运行的时间更长的时间来响应,请返回 [`defer` hook 决定](/docs/zh-CN/hooks#defer-a-tool-call-for-later),它允许进程退出并稍后从持久化会话恢复。

16 16 

17本指南向您展示如何检测每种类型的请求并做出适当的响应。17本指南向您展示如何检测每种类型的请求并做出适当的响应。

18 18 


44 44 

45回调在两种情况下触发:45回调在两种情况下触发:

46 46 

471. **工具需要批准**:Claude 想要使用不被[权限规则](/zh-CN/agent-sdk/permissions)或权限模式自动批准的工具。检查 `tool_name` 以获取工具(例如 `"Bash"`、`"Write"`)。471. **工具需要批准**:Claude 想要使用不被[权限规则](/docs/zh-CN/agent-sdk/permissions)或权限模式自动批准的工具。检查 `tool_name` 以获取工具(例如 `"Bash"`、`"Write"`)。

482. **Claude 提出问题**:Claude 调用 `AskUserQuestion` 工具。检查 `tool_name == "AskUserQuestion"` 以不同方式处理它。如果您指定 `tools` 数组,请包含 `AskUserQuestion` 以使其工作。有关详细信息,请参阅[处理澄清问题](#handle-clarifying-questions)。482. **Claude 提出问题**:Claude 调用 `AskUserQuestion` 工具。检查 `tool_name == "AskUserQuestion"` 以不同方式处理它。如果您指定 `tools` 数组,请包含 `AskUserQuestion` 以使其工作。有关详细信息,请参阅[处理澄清问题](#handle-clarifying-questions)。

49 49 

50<Warning>50<Warning>

51 **回调永远不会对自动批准的工具触发。** [权限评估流程](/zh-CN/agent-sdk/permissions#how-permissions-are-evaluated)中任何较早的批准、允许规则或 `acceptEdits` 或 `bypassPermissions` 等模式会在咨询 `canUseTool` 之前解决调用。如果您在 `allowed_tools` 中列出一个工具,除非询问规则或 `plan` 模式将调用路由回提示,否则该工具的 `canUseTool` 检查永远不会运行。对于必须应用于每个工具调用的逻辑,请使用 [`PreToolUse` hook](/zh-CN/agent-sdk/hooks),它在流程的其余部分之前执行,可以允许、拒绝或修改请求。51 **回调永远不会对自动批准的工具触发。** [权限评估流程](/docs/zh-CN/agent-sdk/permissions#how-permissions-are-evaluated)中任何较早的批准、允许规则或 `acceptEdits` 或 `bypassPermissions` 等模式会在咨询 `canUseTool` 之前解决调用。如果您在 `allowed_tools` 中列出一个工具,除非询问规则或 `plan` 模式将调用路由回提示,否则该工具的 `canUseTool` 检查永远不会运行。对于必须应用于每个工具调用的逻辑,请使用 [`PreToolUse` hook](/docs/zh-CN/agent-sdk/hooks),它在流程的其余部分之前执行,可以允许、拒绝或修改请求。

52 52 

53 `AskUserQuestion`、标记为 [`requiresUserInteraction`](/zh-CN/mcp#require-approval-for-a-specific-tool) 的 MCP 工具以及连接器工具[您的组织设置为 `ask`](/zh-CN/mcp#organization-controls-on-connector-tools)即使在允许规则匹配时也会到达回调。在 `dontAsk` 模式下,这些调用会被拒绝,而不会调用回调。53 `AskUserQuestion`、标记为 [`requiresUserInteraction`](/docs/zh-CN/mcp#require-approval-for-a-specific-tool) 的 MCP 工具以及连接器工具[您的组织设置为 `ask`](/docs/zh-CN/mcp#organization-controls-on-connector-tools)即使在允许规则匹配时也会到达回调。在 `dontAsk` 模式下,这些调用会被拒绝,而不会调用回调。

54</Warning>54</Warning>

55 55 

56您还可以使用 [`PermissionRequest` hook](/zh-CN/agent-sdk/hooks#available-hooks) 在 Claude 等待批准时发送外部通知(Slack、电子邮件、推送)。56您还可以使用 [`PermissionRequest` hook](/docs/zh-CN/agent-sdk/hooks#available-hooks) 在 Claude 等待批准时发送外部通知(Slack、电子邮件、推送)。

57 57 

58<h2 id="handle-tool-approval-requests">58<h2 id="handle-tool-approval-requests">

59 处理工具批准请求59 处理工具批准请求


65| ----------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |65| ----------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

66| `toolName` | Claude 想要使用的工具的名称(例如 `"Bash"`、`"Write"`、`"Edit"`) |66| `toolName` | Claude 想要使用的工具的名称(例如 `"Bash"`、`"Write"`、`"Edit"`) |

67| `input` | Claude 传递给工具的参数。内容因工具而异。 |67| `input` | Claude 传递给工具的参数。内容因工具而异。 |

68| `options` (TS) / `context` (Python) | 附加上下文,包括可选的 `suggestions`(建议的 `PermissionUpdate` 条目以避免重新提示)和取消信号。在 TypeScript 中,`signal` 是 `AbortSignal`;在 Python 中,信号字段保留供将来使用。有关 Python,请参阅 [`ToolPermissionContext`](/zh-CN/agent-sdk/python#toolpermissioncontext)。 |68| `options` (TS) / `context` (Python) | 附加上下文,包括可选的 `suggestions`(建议的 `PermissionUpdate` 条目以避免重新提示)和取消信号。在 TypeScript 中,`signal` 是 `AbortSignal`;在 Python 中,信号字段保留供将来使用。有关 Python,请参阅 [`ToolPermissionContext`](/docs/zh-CN/agent-sdk/python#toolpermissioncontext)。 |

69 69 

70`input` 对象包含工具特定的参数。常见示例:70`input` 对象包含工具特定的参数。常见示例:

71 71 


76| `Edit` | `file_path`、`old_string`、`new_string` |76| `Edit` | `file_path`、`old_string`、`new_string` |

77| `Read` | `file_path`、`offset`、`limit` |77| `Read` | `file_path`、`offset`、`limit` |

78 78 

79有关完整的输入架构,请参阅 SDK 参考:[Python](/zh-CN/agent-sdk/python#tool-input%2Foutput-types) | [TypeScript](/zh-CN/agent-sdk/typescript#tool-input-types)。79有关完整的输入架构,请参阅 SDK 参考:[Python](/docs/zh-CN/agent-sdk/python#tool-input%2Foutput-types) | [TypeScript](/docs/zh-CN/agent-sdk/typescript#tool-input-types)。

80 80 

81您可以向用户显示此信息,以便他们可以决定是否允许或拒绝该操作,然后返回适当的响应。81您可以向用户显示此信息,以便他们可以决定是否允许或拒绝该操作,然后返回适当的响应。

82 82 


200</CodeGroup>200</CodeGroup>

201 201 

202<Note>202<Note>

203 在 Python 中,`can_use_tool` 需要[流模式](/zh-CN/agent-sdk/streaming-vs-single-mode)。当您通过 `query(prompt=generator)` 或 `ClaudeSDKClient.connect(prompt=async_iterable)` 传递有限的消息流时,SDK 会在最后一条消息后关闭输入流,在权限回调被调用之前,除非已注册的 hook 或进程内 MCP 服务器保持其打开。上面的示例使用返回 `{"continue_": True}` 的 `PreToolUse` hook 保持其打开。不带提示连接并通过 `ClaudeSDKClient.query()` 发送消息会自动保持流打开,不需要 hook。203 在 Python 中,`can_use_tool` 需要[流模式](/docs/zh-CN/agent-sdk/streaming-vs-single-mode)。当您通过 `query(prompt=generator)` 或 `ClaudeSDKClient.connect(prompt=async_iterable)` 传递有限的消息流时,SDK 会在最后一条消息后关闭输入流,在权限回调被调用之前,除非已注册的 hook 或进程内 MCP 服务器保持其打开。上面的示例使用返回 `{"continue_": True}` 的 `PreToolUse` hook 保持其打开。不带提示连接并通过 `ClaudeSDKClient.query()` 发送消息会自动保持流打开,不需要 hook。

204</Note>204</Note>

205 205 

206此示例使用 y/n 流,其中除 `y` 之外的任何输入都被视为拒绝。在实践中,您可能会构建一个更丰富的 UI,让用户修改请求、提供反馈或完全重定向 Claude。有关所有响应方式,请参阅[响应工具请求](#respond-to-tool-requests)。206此示例使用 y/n 流,其中除 `y` 之外的任何输入都被视为拒绝。在实践中,您可能会构建一个更丰富的 UI,让用户修改请求、提供反馈或完全重定向 Claude。有关所有响应方式,请参阅[响应工具请求](#respond-to-tool-requests)。


216| **允许** | `PermissionResultAllow(updated_input=...)` | `{ behavior: "allow", updatedInput }` |216| **允许** | `PermissionResultAllow(updated_input=...)` | `{ behavior: "allow", updatedInput }` |

217| **拒绝** | `PermissionResultDeny(message=...)` | `{ behavior: "deny", message }` |217| **拒绝** | `PermissionResultDeny(message=...)` | `{ behavior: "deny", message }` |

218 218 

219允许时,工具使用 Claude 请求的输入运行,除非您返回修改的输入,TypeScript 中的 `updatedInput` 或 Python 中的 `updated_input`。{/* min-version: 2.1.207 */}在 v2.1.207 之前,Claude Code 拒绝了省略 `updatedInput` 的允许结果,并以验证错误拒绝了工具调用。219允许时,工具使用 Claude 请求的输入运行,除非您返回修改的输入,TypeScript 中的 `updatedInput` 或 Python 中的 `updated_input`。在 v2.1.207 之前,Claude Code 拒绝了省略 `updatedInput` 的允许结果,并以验证错误拒绝了工具调用。

220 220 

221拒绝时,提供说明原因的消息。Claude 会看到此消息并可能调整其方法。221拒绝时,提供说明原因的消息。Claude 会看到此消息并可能调整其方法。

222 222 


247* **批准并记住**:回显建议的权限规则,以便匹配的调用在下次跳过提示247* **批准并记住**:回显建议的权限规则,以便匹配的调用在下次跳过提示

248* **拒绝**:阻止工具并告诉 Claude 原因248* **拒绝**:阻止工具并告诉 Claude 原因

249* **建议替代方案**:阻止但指导 Claude 朝向用户想要的方向249* **建议替代方案**:阻止但指导 Claude 朝向用户想要的方向

250* **完全重定向**:使用[流输入](/zh-CN/agent-sdk/streaming-vs-single-mode)向 Claude 发送全新指令250* **完全重定向**:使用[流输入](/docs/zh-CN/agent-sdk/streaming-vs-single-mode)向 Claude 发送全新指令

251 251 

252<Tabs>252<Tabs>

253 <Tab title="批准">253 <Tab title="批准">


311 </Tab>311 </Tab>

312 312 

313 <Tab title="批准并记住">313 <Tab title="批准并记住">

314 用户批准并且不想再被询问此类调用。第三个回调参数携带 `suggestions`,一个现成的 [`PermissionUpdate`](/zh-CN/agent-sdk/typescript#permissionupdate) 条目数组。在 `updatedPermissions` 中回显其中一个以应用它。带有 `localSettings` 目标的建议会将规则写入 `.claude/settings.local.json`,以便将来的会话跳过匹配调用的提示。314 用户批准并且不想再被询问此类调用。第三个回调参数携带 `suggestions`,一个现成的 [`PermissionUpdate`](/docs/zh-CN/agent-sdk/typescript#permissionupdate) 条目数组。在 `updatedPermissions` 中回显其中一个以应用它。带有 `localSettings` 目标的建议会将规则写入 `.claude/settings.local.json`,以便将来的会话跳过匹配调用的提示。

315 315 

316 Python 示例需要 `claude-agent-sdk` 0.1.80 或更高版本。316 Python 示例需要 `claude-agent-sdk` 0.1.80 或更高版本。

317 317 


415 </Tab>415 </Tab>

416 416 

417 <Tab title="完全重定向">417 <Tab title="完全重定向">

418 对于完全改变方向(不仅仅是轻推),使用[流输入](/zh-CN/agent-sdk/streaming-vs-single-mode)向 Claude 发送新指令。这绕过当前工具请求并为 Claude 提供全新指令来遵循。418 对于完全改变方向(不仅仅是轻推),使用[流输入](/docs/zh-CN/agent-sdk/streaming-vs-single-mode)向 Claude 发送新指令。这绕过当前工具请求并为 Claude 提供全新指令来遵循。

419 </Tab>419 </Tab>

420</Tabs>420</Tabs>

421 421 


426当 Claude 需要在具有多个有效方法的任务上获得更多指导时,它会调用 `AskUserQuestion` 工具。这会触发您的 `canUseTool` 回调,其中 `toolName` 设置为 `AskUserQuestion`。输入包含 Claude 的问题作为多选选项,您向用户显示这些问题并返回他们的选择。426当 Claude 需要在具有多个有效方法的任务上获得更多指导时,它会调用 `AskUserQuestion` 工具。这会触发您的 `canUseTool` 回调,其中 `toolName` 设置为 `AskUserQuestion`。输入包含 Claude 的问题作为多选选项,您向用户显示这些问题并返回他们的选择。

427 427 

428<Tip>428<Tip>

429 澄清问题在 [`plan` 模式](/zh-CN/agent-sdk/permissions#plan-mode-plan)中特别常见,其中 Claude 探索代码库并在提出计划前提出问题。这使 plan 模式非常适合交互式工作流,您希望 Claude 在进行更改前收集需求。429 澄清问题在 [`plan` 模式](/docs/zh-CN/agent-sdk/permissions#plan-mode-plan)中特别常见,其中 Claude 探索代码库并在提出计划前提出问题。这使 plan 模式非常适合交互式工作流,您希望 Claude 在进行更改前收集需求。

430</Tip>430</Tip>

431 431 

432以下步骤显示如何处理澄清问题:432以下步骤显示如何处理澄清问题:


864 流输入864 流输入

865</h3>865</h3>

866 866 

867当您需要以下情况时,使用[流输入](/zh-CN/agent-sdk/streaming-vs-single-mode):867当您需要以下情况时,使用[流输入](/docs/zh-CN/agent-sdk/streaming-vs-single-mode):

868 868 

869* **在任务中断代理**:在 Claude 工作时发送取消信号或改变方向869* **在任务中断代理**:在 Claude 工作时发送取消信号或改变方向

870* **提供额外上下文**:添加 Claude 需要的信息而无需等待它提出问题870* **提供额外上下文**:添加 Claude 需要的信息而无需等待它提出问题


876 自定义工具876 自定义工具

877</h3>877</h3>

878 878 

879当您需要以下情况时,使用[自定义工具](/zh-CN/agent-sdk/custom-tools):879当您需要以下情况时,使用[自定义工具](/docs/zh-CN/agent-sdk/custom-tools):

880 880 

881* **收集结构化输入**:构建超越 `AskUserQuestion` 多选格式的表单、向导或多步工作流881* **收集结构化输入**:构建超越 `AskUserQuestion` 多选格式的表单、向导或多步工作流

882* **集成外部批准系统**:连接到现有的票务、工作流或批准平台882* **集成外部批准系统**:连接到现有的票务、工作流或批准平台


888 相关资源888 相关资源

889</h2>889</h2>

890 890 

891* [配置权限](/zh-CN/agent-sdk/permissions):设置权限模式和规则891* [配置权限](/docs/zh-CN/agent-sdk/permissions):设置权限模式和规则

892* [使用 hooks 控制执行](/zh-CN/agent-sdk/hooks):在代理生命周期的关键点运行自定义代码892* [使用 hooks 控制执行](/docs/zh-CN/agent-sdk/hooks):在代理生命周期的关键点运行自定义代码

893* [TypeScript SDK 参考](/zh-CN/agent-sdk/typescript#canusetool):完整的 canUseTool API 文档893* [TypeScript SDK 参考](/docs/zh-CN/agent-sdk/typescript#canusetool):完整的 canUseTool API 文档

agent-teams.md +29 −29

Details

7> 协调多个 Claude Code 实例作为一个团队一起工作,具有共享任务、代理间消息传递和集中管理。7> 协调多个 Claude Code 实例作为一个团队一起工作,具有共享任务、代理间消息传递和集中管理。

8 8 

9<Warning>9<Warning>

10 Agent teams 是实验性功能,默认禁用。通过将 `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS` 添加到你的 [settings.json](/zh-CN/settings) 或环境变量来启用它们。如果没有该变量,会话启动时不会设置任何团队,不会写入团队目录,Claude 也不会生成或提议队友。Agent teams 在 [已知限制](#limitations) 中存在关于会话恢复、任务协调和关闭行为的问题。10 Agent teams 是实验性功能,默认禁用。通过将 `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS` 添加到你的 [settings.json](/docs/zh-CN/settings) 或环境变量来启用它们。如果没有该变量,会话启动时不会设置任何团队,不会写入团队目录,Claude 也不会生成或提议队友。Agent teams 在 [已知限制](#limitations) 中存在关于会话恢复、任务协调和关闭行为的问题。

11</Warning>11</Warning>

12 12 

13Agent teams 让你协调多个 Claude Code 实例一起工作。一个会话充当团队负责人,协调工作、分配任务和综合结果。队友独立工作,每个都在自己的 context window 中,并直接相互通信。13Agent teams 让你协调多个 Claude Code 实例一起工作。一个会话充当团队负责人,协调工作、分配任务和综合结果。队友独立工作,每个都在自己的 context window 中,并直接相互通信。

14 14 

15与 [subagents](/zh-CN/sub-agents) 不同,subagents 在单个会话中运行,只能向主代理报告,你也可以直接与个别队友互动,无需通过负责人。15与 [subagents](/docs/zh-CN/sub-agents) 不同,subagents 在单个会话中运行,只能向主代理报告,你也可以直接与个别队友互动,无需通过负责人。

16 16 

17<Note>17<Note>

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

19</Note>19</Note>

20 20 

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


29* **使用竞争假设进行调试**:队友并行测试不同的理论,更快地收敛到答案29* **使用竞争假设进行调试**:队友并行测试不同的理论,更快地收敛到答案

30* **跨层协调**:跨越前端、后端和测试的更改,每个由不同的队友负责30* **跨层协调**:跨越前端、后端和测试的更改,每个由不同的队友负责

31 31 

32Agent teams 增加了协调开销,使用的令牌数量明显多于单个会话。当队友可以独立运作时,它们效果最好。对于顺序任务、同一文件编辑或有许多依赖关系的工作,单个会话或 [subagents](/zh-CN/sub-agents) 更有效。32Agent teams 增加了协调开销,使用的令牌数量明显多于单个会话。当队友可以独立运作时,它们效果最好。对于顺序任务、同一文件编辑或有许多依赖关系的工作,单个会话或 [subagents](/docs/zh-CN/sub-agents) 更有效。

33 33 

34<h3 id="compare-with-subagents">34<h3 id="compare-with-subagents">

35 与 subagents 比较35 与 subagents 比较

36</h3>36</h3>

37 37 

38Agent teams 和 [subagents](/zh-CN/sub-agents) 都让你并行化工作,但它们的运作方式不同。根据你的工作人员是否需要相互通信来选择:38Agent teams 和 [subagents](/docs/zh-CN/sub-agents) 都让你并行化工作,但它们的运作方式不同。根据你的工作人员是否需要相互通信来选择:

39 39 

40<Frame caption="Subagents 仅向主代理报告结果,彼此不交谈。在 agent teams 中,队友共享任务列表、认领工作并直接相互通信。">40<Frame caption="Subagents 仅向主代理报告结果,彼此不交谈。在 agent teams 中,队友共享任务列表、认领工作并直接相互通信。">

41 <img src="https://mintcdn.com/claude-code/nsvRFSDNfpSU5nT7/images/subagents-vs-agent-teams-light.png?fit=max&auto=format&n=nsvRFSDNfpSU5nT7&q=85&s=2f8db9b4f3705dd3ab931fbe2d96e42a" className="dark:hidden" alt="比较 subagent 和 agent team 架构的图表。Subagents 由主代理生成、执行工作并报告结果。Agent teams 通过共享任务列表进行协调,队友彼此直接通信。" width="4245" height="1615" data-path="images/subagents-vs-agent-teams-light.png" />41 <img src="https://mintcdn.com/claude-code/nsvRFSDNfpSU5nT7/images/subagents-vs-agent-teams-light.png?fit=max&auto=format&n=nsvRFSDNfpSU5nT7&q=85&s=2f8db9b4f3705dd3ab931fbe2d96e42a" className="dark:hidden" alt="比较 subagent 和 agent team 架构的图表。Subagents 由主代理生成、执行工作并报告结果。Agent teams 通过共享任务列表进行协调,队友彼此直接通信。" width="4245" height="1615" data-path="images/subagents-vs-agent-teams-light.png" />


57 启用 agent teams57 启用 agent teams

58</h2>58</h2>

59 59 

60Agent teams 默认禁用。通过将 `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS` 环境变量设置为 `1`,在你的 shell 环境中或通过 [settings.json](/zh-CN/settings) 来启用它:60Agent teams 默认禁用。通过将 `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS` 环境变量设置为 `1`,在你的 shell 环境中或通过 [settings.json](/docs/zh-CN/settings) 来启用它:

61 61 

62```json settings.json theme={null}62```json settings.json theme={null}

63{63{


81one on UX, one on technical architecture, one playing devil's advocate.81one on UX, one on technical architecture, one playing devil's advocate.

82```82```

83 83 

84从那里,Claude 会填充一个 [共享任务列表](/zh-CN/interactive-mode#task-list),为每个角度生成队友,让他们探索问题,并在完成时综合发现。84从那里,Claude 会填充一个 [共享任务列表](/docs/zh-CN/interactive-mode#task-list),为每个角度生成队友,让他们探索问题,并在完成时综合发现。

85 85 

86负责人的终端在提示输入下方的 agent 面板中列出队友。从该面板中:86负责人的终端在提示输入下方的 agent 面板中列出队友。从该面板中:

87 87 


89* **Enter**:打开所选队友的记录并直接向其发送消息89* **Enter**:打开所选队友的记录并直接向其发送消息

90* **Escape**:中断所选队友的当前轮次90* **Escape**:中断所选队友的当前轮次

91 91 

92{/* min-version: 2.1.199 */}从 v2.1.199 开始,当任何队友或子 agent 仍在工作时,空闲队友的行会保留在面板中,因此你可以选择它来查看其记录或向其分配更多工作。一旦面板中的每个 agent 都处于空闲状态,空闲行会在 30 秒后隐藏,并在队友的下一轮时重新出现;队友在隐藏时仍然保持运行并可寻址。在 v2.1.181 到 v2.1.198 中,空闲行在其自己的轮次结束后 30 秒隐藏,即使其他队友仍在工作;v2.1.181 之前的版本不隐藏空闲行。92从 v2.1.199 开始,当任何队友或子 agent 仍在工作时,空闲队友的行会保留在面板中,因此你可以选择它来查看其记录或向其分配更多工作。一旦面板中的每个 agent 都处于空闲状态,空闲行会在 30 秒后隐藏,并在队友的下一轮时重新出现;队友在隐藏时仍然保持运行并可寻址。在 v2.1.181 到 v2.1.198 中,空闲行在其自己的轮次结束后 30 秒隐藏,即使其他队友仍在工作;v2.1.181 之前的版本不隐藏空闲行。

93 93 

94当超过三个队友同时处于空闲状态时,前三个之外的行会折叠成一行,计数折叠的队友,例如当五个处于空闲状态时显示 `2 idle agents`。选择它并按 Enter 展开折叠的行,或按 Esc 再次折叠它们。工作中的队友、失败的队友和你正在查看的队友始终保持自己的行。94当超过三个队友同时处于空闲状态时,前三个之外的行会折叠成一行,计数折叠的队友,例如当五个处于空闲状态时显示 `2 idle agents`。选择它并按 Enter 展开折叠的行,或按 Esc 再次折叠它们。工作中的队友、失败的队友和你正在查看的队友始终保持自己的行。

95 95 


116 116 

117默认值是 `"in-process"`。在 v2.1.179 之前,默认值是 `"auto"`,所以升级的会话如果之前打开了分割窗格,现在会保持在一个终端中,除非你显式设置模式。设置 `"auto"` 以在你已经在 tmux 会话中运行或你的终端是 iTerm2 时启用分割窗格,否则回退到 in-process。`"tmux"` 设置启用分割窗格模式,并根据你的终端自动检测是使用 tmux 还是 iTerm2。117默认值是 `"in-process"`。在 v2.1.179 之前,默认值是 `"auto"`,所以升级的会话如果之前打开了分割窗格,现在会保持在一个终端中,除非你显式设置模式。设置 `"auto"` 以在你已经在 tmux 会话中运行或你的终端是 iTerm2 时启用分割窗格,否则回退到 in-process。`"tmux"` 设置启用分割窗格模式,并根据你的终端自动检测是使用 tmux 还是 iTerm2。

118 118 

119{/* min-version: 2.1.186 */}从 v2.1.186 开始,设置 `"iterm2"` 以显式使用 iTerm2 原生分割窗格。此模式需要 [`it2` CLI](https://github.com/mkusaka/it2),如果 `it2` 缺失,会显示带有安装命令的错误。当你的终端是 iTerm2 且 tmux 可用作备选方案时,在 `"auto"` 或 `"tmux"` 下会出现提供安装 `it2` 或切换到 tmux 的设置提示。119从 v2.1.186 开始,设置 `"iterm2"` 以显式使用 iTerm2 原生分割窗格。此模式需要 [`it2` CLI](https://github.com/mkusaka/it2),如果 `it2` 缺失,会显示带有安装命令的错误。当你的终端是 iTerm2 且 tmux 可用作备选方案时,在 `"auto"` 或 `"tmux"` 下会出现提供安装 `it2` 或切换到 tmux 的设置提示。

120 120 

121要覆盖默认值,在 `~/.claude/settings.json` 中设置 [`teammateMode`](/zh-CN/settings#available-settings):121要覆盖默认值,在 `~/.claude/settings.json` 中设置 [`teammateMode`](/docs/zh-CN/settings#available-settings):

122 122 

123```json theme={null}123```json theme={null}

124{124{


150 150 

151队友默认不继承负责人的 `/model` 选择。要更改在提示未指定模型时使用的模型,在 `/config` 中设置**默认队友模型**。选择\*\*默认(负责人的模型)\*\*以让队友遵循负责人的当前模型。151队友默认不继承负责人的 `/model` 选择。要更改在提示未指定模型时使用的模型,在 `/config` 中设置**默认队友模型**。选择\*\*默认(负责人的模型)\*\*以让队友遵循负责人的当前模型。

152 152 

153{/* min-version: 2.1.186 */}队友继承负责人的[工作量级别](/zh-CN/model-config#adjust-effort-level)。在分割窗格模式中,这从 v2.1.186 开始适用;较早的版本没有将负责人的会话工作量传递给分割窗格队友。153队友继承负责人的[工作量级别](/docs/zh-CN/model-config#adjust-effort-level)。在分割窗格模式中,这从 v2.1.186 开始适用;较早的版本没有将负责人的会话工作量传递给分割窗格队友。

154 154 

155<h3 id="require-plan-approval-for-teammates">155<h3 id="require-plan-approval-for-teammates">

156 要求队友的计划批准156 要求队友的计划批准


176* **In-process 模式**:在 agent 面板中使用上下箭头键选择队友,然后按 Enter 查看其会话并输入以向其发送消息。在选定的队友上按 `x` 以停止它。按 Ctrl+T 切换任务列表。176* **In-process 模式**:在 agent 面板中使用上下箭头键选择队友,然后按 Enter 查看其会话并输入以向其发送消息。在选定的队友上按 `x` 以停止它。按 Ctrl+T 切换任务列表。

177* **Split-pane 模式**:点击队友的窗格以直接与他们的会话交互。每个队友都有自己终端的完整视图。177* **Split-pane 模式**:点击队友的窗格以直接与他们的会话交互。每个队友都有自己终端的完整视图。

178 178 

179当你查看 in-process 队友时,纯文本和 [skills](/zh-CN/skills) 会发送给该队友,但内置命令仍在负责人的会话中运行。179当你查看 in-process 队友时,纯文本和 [skills](/docs/zh-CN/skills) 会发送给该队友,但内置命令仍在负责人的会话中运行。

180 180 

181队友的模型和快速模式在它生成时是固定的,所以 `/model` 和 `/fast` 只改变负责人的设置。{/* min-version: 2.1.199 */}从 v2.1.199 开始,在查看队友时输入任一命令会显示一个通知,表示更改适用于负责人;较早的版本会将其应用于负责人而没有任何指示。`/effort` 仍然适用于所查看队友的后续轮次,因为队友遵循负责人的[工作量级别](/zh-CN/model-config#adjust-effort-level)。181队友的模型和快速模式在它生成时是固定的,所以 `/model` 和 `/fast` 只改变负责人的设置。从 v2.1.199 开始,在查看队友时输入任一命令会显示一个通知,表示更改适用于负责人;较早的版本会将其应用于负责人而没有任何指示。`/effort` 仍然适用于所查看队友的后续轮次,因为队友遵循负责人的[工作量级别](/docs/zh-CN/model-config#adjust-effort-level)。

182 182 

183<h3 id="assign-and-claim-tasks">183<h3 id="assign-and-claim-tasks">

184 分配和认领任务184 分配和认领任务


211 使用 hooks 强制质量门211 使用 hooks 强制质量门

212</h3>212</h3>

213 213 

214使用 [hooks](/zh-CN/hooks) 在队友完成工作或任务创建或完成时强制执行规则:214使用 [hooks](/docs/zh-CN/hooks) 在队友完成工作或任务创建或完成时强制执行规则:

215 215 

216* [`TeammateIdle`](/zh-CN/hooks#teammateidle):当队友即将空闲时运行。以代码 2 退出以发送反馈并保持队友工作。216* [`TeammateIdle`](/docs/zh-CN/hooks#teammateidle):当队友即将空闲时运行。以代码 2 退出以发送反馈并保持队友工作。

217* [`TaskCreated`](/zh-CN/hooks#taskcreated):当任务被创建时运行。以代码 2 退出以防止创建并发送反馈。217* [`TaskCreated`](/docs/zh-CN/hooks#taskcreated):当任务被创建时运行。以代码 2 退出以防止创建并发送反馈。

218* [`TaskCompleted`](/zh-CN/hooks#taskcompleted):当任务被标记为完成时运行。以代码 2 退出以防止完成并发送反馈。218* [`TaskCompleted`](/docs/zh-CN/hooks#taskcompleted):当任务被标记为完成时运行。以代码 2 退出以防止完成并发送反馈。

219 219 

220<h2 id="how-agent-teams-work">220<h2 id="how-agent-teams-work">

221 Agent teams 如何工作221 Agent teams 如何工作


258* **Team config**:`~/.claude/teams/{team-name}/config.json`258* **Team config**:`~/.claude/teams/{team-name}/config.json`

259* **Task list**:`~/.claude/tasks/{team-name}/`259* **Task list**:`~/.claude/tasks/{team-name}/`

260 260 

261Claude Code 在会话启动时自动生成这两个,并在队友加入、空闲或离开时更新它们。团队配置目录在会话结束时被删除。任务列表目录在本地持久化,永远不会上传,所以恢复的会话会保留它们的任务。保留期由你已经为会话记录控制的相同 [`cleanupPeriodDays`](/zh-CN/settings#available-settings) 管理。261Claude Code 在会话启动时自动生成这两个,并在队友加入、空闲或离开时更新它们。团队配置目录在会话结束时被删除。任务列表目录在本地持久化,永远不会上传,所以恢复的会话会保留它们的任务。保留期由你已经为会话记录控制的相同 [`cleanupPeriodDays`](/docs/zh-CN/settings#available-settings) 管理。

262 262 

263团队配置保存运行时状态,例如会话 ID 和 tmux 窗格 ID,所以不要手动编辑它或预先编写它:你的更改会在下一次状态更新时被覆盖。263团队配置保存运行时状态,例如会话 ID 和 tmux 窗格 ID,所以不要手动编辑它或预先编写它:你的更改会在下一次状态更新时被覆盖。

264 264 


272 为队友使用 subagent 定义272 为队友使用 subagent 定义

273</h3>273</h3>

274 274 

275当生成队友时,你可以引用来自任何 [subagent 范围](/zh-CN/sub-agents#choose-the-subagent-scope) 的 [subagent](/zh-CN/sub-agents) 类型:项目、用户、插件或 CLI 定义。这让你定义一个角色一次,例如安全审查员或测试运行器,并将其同时重用为委派的 subagent 和 agent team 队友。275当生成队友时,你可以引用来自任何 [subagent 范围](/docs/zh-CN/sub-agents#choose-the-subagent-scope) 的 [subagent](/docs/zh-CN/sub-agents) 类型:项目、用户、插件或 CLI 定义。这让你定义一个角色一次,例如安全审查员或测试运行器,并将其同时重用为委派的 subagent 和 agent team 队友。

276 276 

277要使用 subagent 定义,在要求 Claude 生成队友时按名称提及它:277要使用 subagent 定义,在要求 Claude 生成队友时按名称提及它:

278 278 


292 292 

293队友从负责人的权限设置开始。如果负责人使用 `--dangerously-skip-permissions` 运行,所有队友也会这样做。生成后,你可以更改个别队友模式,但在生成时无法设置每个队友的模式。293队友从负责人的权限设置开始。如果负责人使用 `--dangerously-skip-permissions` 运行,所有队友也会这样做。生成后,你可以更改个别队友模式,但在生成时无法设置每个队友的模式。

294 294 

295当一个代理通过 `SendMessage` 向另一个代理发送消息时,接收代理被告知它来自另一个 Claude 会话,而不是来自你。队友无法批准权限提示或代表你提供同意,被拒绝某项操作的队友无法将其转发给另一个队友以绕过检查。在 [auto mode](/zh-CN/permission-modes#eliminate-prompts-with-auto-mode) 中,分类器将从另一个代理转发的批准声明视为不受信任的输入,而不是来自你的确认。295当一个代理通过 `SendMessage` 向另一个代理发送消息时,接收代理被告知它来自另一个 Claude 会话,而不是来自你。队友无法批准权限提示或代表你提供同意,被拒绝某项操作的队友无法将其转发给另一个队友以绕过检查。在 [auto mode](/docs/zh-CN/permission-modes#eliminate-prompts-with-auto-mode) 中,分类器将从另一个代理转发的批准声明视为不受信任的输入,而不是来自你的确认。

296 296 

297队友权限提示会冒泡到负责人会话,所以请在那里自己批准它们。[Plan approval](#require-plan-approval-for-teammates) 是设计的例外:负责人会话授予队友计划批准,无需向你单独提示。297队友权限提示会冒泡到负责人会话,所以请在那里自己批准它们。[Plan approval](#require-plan-approval-for-teammates) 是设计的例外:负责人会话授予队友计划批准,无需向你单独提示。

298 298 


315 令牌使用315 令牌使用

316</h3>316</h3>

317 317 

318Agent teams 使用的令牌数量明显多于单个会话。每个队友都有自己的 context window,令牌使用量随活跃队友数量而增加。对于研究、审查和新功能工作,额外的令牌通常是值得的。对于日常任务,单个会话更具成本效益。有关使用指导,请参阅 [agent team 令牌成本](/zh-CN/costs#agent-team-token-costs)。318Agent teams 使用的令牌数量明显多于单个会话。每个队友都有自己的 context window,令牌使用量随活跃队友数量而增加。对于研究、审查和新功能工作,额外的令牌通常是值得的。对于日常任务,单个会话更具成本效益。有关使用指导,请参阅 [agent team 令牌成本](/docs/zh-CN/costs#agent-team-token-costs)。

319 319 

320<h2 id="use-case-examples">320<h2 id="use-case-examples">

321 用例示例321 用例示例


379 379 

380队友数量没有硬限制,但实际限制适用:380队友数量没有硬限制,但实际限制适用:

381 381 

382* **令牌成本线性增加**:每个队友都有自己的 context window 并独立消耗令牌。有关详细信息,请参阅 [agent team 令牌成本](/zh-CN/costs#agent-team-token-costs)。382* **令牌成本线性增加**:每个队友都有自己的 context window 并独立消耗令牌。有关详细信息,请参阅 [agent team 令牌成本](/docs/zh-CN/costs#agent-team-token-costs)。

383* **协调开销增加**:更多队友意味着更多通信、任务协调和潜在冲突383* **协调开销增加**:更多队友意味着更多通信、任务协调和潜在冲突

384* **收益递减**:超过一定点,额外的队友不会按比例加快工作384* **收益递减**:超过一定点,额外的队友不会按比例加快工作

385 385 

386对于大多数工作流,从 3-5 个队友开始。这平衡了并行工作和可管理的协调。本指南中的示例使用 3-5 个队友,因为该范围在不同任务类型中效果很好。386对于大多数工作流,从 3-5 个队友开始。这平衡了并行工作和可管理的协调。本指南中的示例使用 3-5 个队友,因为该范围在不同任务类型中效果很好。

387 387 

388每个队友有 5-6 个 [tasks](/zh-CN/agent-teams#architecture) 可以让每个人保持生产力,而不会过度的上下文切换。如果你有 15 个独立任务,3 个队友是一个很好的起点。388每个队友有 5-6 个 [tasks](/docs/zh-CN/agent-teams#architecture) 可以让每个人保持生产力,而不会过度的上下文切换。如果你有 15 个独立任务,3 个队友是一个很好的起点。

389 389 

390仅当工作真正受益于队友同时工作时才扩展。三个专注的队友通常胜过五个分散的队友。390仅当工作真正受益于队友同时工作时才扩展。三个专注的队友通常胜过五个分散的队友。

391 391 


452 过多权限提示452 过多权限提示

453</h3>453</h3>

454 454 

455队友权限请求冒泡到负责人,这可能会造成摩擦。在生成队友之前,在你的 [权限设置](/zh-CN/permissions) 中预批准常见操作,以减少中断。455队友权限请求冒泡到负责人,这可能会造成摩擦。在生成队友之前,在你的 [权限设置](/docs/zh-CN/permissions) 中预批准常见操作,以减少中断。

456 456 

457<h3 id="teammates-stopping-on-errors">457<h3 id="teammates-stopping-on-errors">

458 队友在错误后停止458 队友在错误后停止


463* 直接给他们额外的指示463* 直接给他们额外的指示

464* 生成一个替代队友来继续工作464* 生成一个替代队友来继续工作

465 465 

466{/* min-version: 2.1.198 */}从 v2.1.198 开始,来自负责人或另一个队友的消息会唤醒正在等待重试失败 API 请求的 in-process 队友,因此它会立即重试,而不是等待完整的重试延迟。466从 v2.1.198 开始,来自负责人或另一个队友的消息会唤醒正在等待重试失败 API 请求的 in-process 队友,因此它会立即重试,而不是等待完整的重试延迟。

467 467 

468<h3 id="lead-shuts-down-before-work-is-done">468<h3 id="lead-shuts-down-before-work-is-done">

469 负责人在工作完成前关闭469 负责人在工作完成前关闭


493* **关闭可能很慢**:队友在关闭前完成他们的当前请求或工具调用,这可能需要时间。493* **关闭可能很慢**:队友在关闭前完成他们的当前请求或工具调用,这可能需要时间。

494* **每个会话一个团队**:一个会话恰好有一个团队,作用域限于该会话。你无法创建额外的命名团队或在会话间共享团队。494* **每个会话一个团队**:一个会话恰好有一个团队,作用域限于该会话。你无法创建额外的命名团队或在会话间共享团队。

495* **没有嵌套团队**:队友无法生成自己的队友。只有负责人可以管理团队。495* **没有嵌套团队**:队友无法生成自己的队友。只有负责人可以管理团队。

496* **没有来自 in-process 队友的后台子代理**:in-process 队友自己的子代理在前台运行。无论是使用 `run_in_background` 还是设置 `background: true` 的子代理定义,请求后台子代理都会返回错误,因为队友的后台工作无法超越负责人的进程。从主对话启动的子代理遵循[后台默认值](/zh-CN/sub-agents#run-subagents-in-foreground-or-background)。496* **没有来自 in-process 队友的后台子代理**:in-process 队友自己的子代理在前台运行。无论是使用 `run_in_background` 还是设置 `background: true` 的子代理定义,请求后台子代理都会返回错误,因为队友的后台工作无法超越负责人的进程。从主对话启动的子代理遵循[后台默认值](/docs/zh-CN/sub-agents#run-subagents-in-foreground-or-background)。

497* **负责人是固定的**:主会话在其生命周期内是其团队的负责人。你无法将队友提升为负责人或转移领导权。497* **负责人是固定的**:主会话在其生命周期内是其团队的负责人。你无法将队友提升为负责人或转移领导权。

498* **权限在生成时设置**:所有队友从负责人的权限模式开始。你可以在生成后更改个别队友模式,但在生成时无法设置每个队友的模式。498* **权限在生成时设置**:所有队友从负责人的权限模式开始。你可以在生成后更改个别队友模式,但在生成时无法设置每个队友的模式。

499* **分割窗格需要 tmux 或 iTerm2**:默认 in-process 模式在任何终端中工作。VS Code 的集成终端、Windows Terminal 或 Ghostty 不支持分割窗格模式。499* **分割窗格需要 tmux 或 iTerm2**:默认 in-process 模式在任何终端中工作。VS Code 的集成终端、Windows Terminal 或 Ghostty 不支持分割窗格模式。


508 508 

509探索用于并行工作和委派的相关方法:509探索用于并行工作和委派的相关方法:

510 510 

511* **轻量级委派**:[subagents](/zh-CN/sub-agents) 在你的会话中生成辅助代理以进行研究或验证,更适合不需要代理间协调的任务511* **轻量级委派**:[subagents](/docs/zh-CN/sub-agents) 在你的会话中生成辅助代理以进行研究或验证,更适合不需要代理间协调的任务

512* **手动并行会话**:[Git worktrees](/zh-CN/worktrees) 让你自己运行多个 Claude Code 会话,无需自动化团队协调512* **手动并行会话**:[Git worktrees](/docs/zh-CN/worktrees) 让你自己运行多个 Claude Code 会话,无需自动化团队协调

513* **比较方法**:查看 [subagent vs agent team](/zh-CN/features-overview#compare-similar-features) 比较以获得并排分解513* **比较方法**:查看 [subagent vs agent team](/docs/zh-CN/features-overview#compare-similar-features) 比较以获得并排分解

agent-view.md +87 −87

Details

16 16 

17当你想在任何代理的会话中更直接地工作时,附加到该行以进入完整对话。17当你想在任何代理的会话中更直接地工作时,附加到该行以进入完整对话。

18 18 

19要比较 agent view 与 subagents、agent teams 和 worktrees,请参阅 [并行运行代理](/zh-CN/agents)。19要比较 agent view 与 subagents、agent teams 和 worktrees,请参阅 [并行运行代理](/docs/zh-CN/agents)。

20 20 

21<Note>21<Note>

22 Agent view 是研究预览版,需要 Claude Code v2.1.139 或更高版本。使用 `claude --version` 检查你的版本。随着功能的发展,界面和快捷键可能会改变。22 Agent view 是研究预览版,需要 Claude Code v2.1.139 或更高版本。使用 `claude --version` 检查你的版本。随着功能的发展,界面和快捷键可能会改变。


70 70 

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

72 72 

73{/* min-version: 2.1.205 */}在常规 `claude` 会话内,提示页脚的 `←` 提示计算正在等待你的后台 agent 数量,例如 `← 2 agents`,当没有 agent 需要输入时返回 `← for agents`。超过 99 的计数显示为 `99+`。当终端获得焦点时,计数大约每十秒刷新一次,当焦点返回时立即刷新。当计数移动和 agent 完成时,它会短暂改变颜色,除非启用了[`prefersReducedMotion` 设置](/zh-CN/settings#available-settings),并且在[屏幕阅读器模式](/zh-CN/accessibility)中隐藏。在 [Amazon Bedrock、Google Cloud 的 Agent Platform 和 Microsoft Foundry](/zh-CN/third-party-integrations) 上,提示保持其纯 `← for agents` 形式,没有计数。需要 Claude Code v2.1.205 或更高版本。73在常规 `claude` 会话内,提示页脚的 `←` 提示计算正在等待你的后台 agent 数量,例如 `← 2 agents`,当没有 agent 需要输入时返回 `← for agents`。超过 99 的计数显示为 `99+`。当终端获得焦点时,计数大约每十秒刷新一次,当焦点返回时立即刷新。当计数移动和 agent 完成时,它会短暂改变颜色,除非启用了[`prefersReducedMotion` 设置](/docs/zh-CN/settings#available-settings),并且在[屏幕阅读器模式](/docs/zh-CN/accessibility)中隐藏。在 [Amazon Bedrock、Google Cloud 的 Agent Platform 和 Microsoft Foundry](/docs/zh-CN/third-party-integrations) 上,提示保持其纯 `← for agents` 形式,没有计数。需要 Claude Code v2.1.205 或更高版本。

74 74 

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

76 使用 agent view 监控会话76 使用 agent view 监控会话


78 78 

79运行 `claude agents` 打开 agent view。它接管整个终端并列出按状态分组的每个会话,固定的会话和需要你的会话在顶部。每行显示会话的名称、当前活动和其年龄,从会话创建时开始计算;已完成的会话的年龄冻结在运行花费的时间。79运行 `claude agents` 打开 agent view。它接管整个终端并列出按状态分组的每个会话,固定的会话和需要你的会话在顶部。每行显示会话的名称、当前活动和其年龄,从会话创建时开始计算;已完成的会话的年龄冻结在运行花费的时间。

80 80 

81名称用该会话中由 [`/color`](/zh-CN/commands) 设置的颜色着色。{/* min-version: 2.1.199 */}从 v2.1.199 开始,当你用 `←` 或 `/background` [后台会话](#from-inside-a-session)时,颜色会保留。81名称用该会话中由 [`/color`](/docs/zh-CN/commands) 设置的颜色着色。从 v2.1.199 开始,当你用 `←` 或 `/background` [后台会话](#from-inside-a-session)时,颜色会保留。

82 82 

83默认情况下,列表显示你启动的每个后台会话,跨越所有项目。在一个存储库中工作的会话和在不同 worktree 中工作的另一个会话都会出现在这里,无论你从哪个目录打开 agent view。要将列表限制到一个项目,请传递 `--cwd`:83默认情况下,列表显示你启动的每个后台会话,跨越所有项目。在一个存储库中工作的会话和在不同 worktree 中工作的另一个会话都会出现在这里,无论你从哪个目录打开 agent view。要将列表限制到一个项目,请传递 `--cwd`:

84 84 


88 88 

89这只显示在该目录下启动的会话。已[移入 worktree](#how-file-edits-are-isolated) 到 `~/projects/my-app/.claude/worktrees/` 下的会话仍然算作属于 `~/projects/my-app`。89这只显示在该目录下启动的会话。已[移入 worktree](#how-file-edits-are-isolated) 到 `~/projects/my-app/.claude/worktrees/` 下的会话仍然算作属于 `~/projects/my-app`。

90 90 

91你在其他终端中打开的交互式会话不会出现,直到你[后台它们](#from-inside-a-session)。[Subagents](/zh-CN/sub-agents) 和 [teammates](/zh-CN/agent-teams) 会话生成的不会列为单独的行。91你在其他终端中打开的交互式会话不会出现,直到你[后台它们](#from-inside-a-session)。[Subagents](/docs/zh-CN/sub-agents) 和 [teammates](/docs/zh-CN/agent-teams) 会话生成的不会列为单独的行。

92 92 

93```text theme={null}93```text theme={null}

94Pinned94Pinned


131| :---------- | :----------------------------------------------------------- |131| :---------- | :----------------------------------------------------------- |

132| `✻` 或动画 `✽` | 会话进程处于活跃状态并立即回复 |132| `✻` 或动画 `✽` | 会话进程处于活跃状态并立即回复 |

133| `∙` | 进程已退出。你仍然可以窥视、回复或附加,Claude 从中断处重新启动 |133| `∙` | 进程已退出。你仍然可以窥视、回复或附加,Claude 从中断处重新启动 |

134| `✢` | 一个 [`/loop`](/zh-CN/scheduled-tasks) 会话在迭代之间休眠。该行显示其运行计数和倒计时 |134| `✢` | 一个 [`/loop`](/docs/zh-CN/scheduled-tasks) 会话在迭代之间休眠。该行显示其运行计数和倒计时 |

135 135 

136行右边缘可能出现的 `#N` 标签是[会话打开的拉取请求](#pull-request-status),不是状态图标的一部分。136行右边缘可能出现的 `#N` 标签是[会话打开的拉取请求](#pull-request-status),不是状态图标的一部分。

137 137 

138终端标签标题在 agent view 打开时显示等待输入的计数:当会话需要输入时显示 `2 awaiting input · claude agents`,或当没有会话需要输入时显示 `claude agents`。138终端标签标题在 agent view 打开时显示等待输入的计数:当会话需要输入时显示 `2 awaiting input · claude agents`,或当没有会话需要输入时显示 `claude agents`。

139 139 

140从 v2.1.198 开始,当 agent view 打开时,Claude Code 还会通过你配置的[终端通知频道](/zh-CN/terminal-config#get-a-terminal-bell-or-notification)发送通知,当本地后台会话开始需要你的输入、完成或失败时。在计划上运行的会话,例如 [`/loop`](/zh-CN/scheduled-tasks) 会话,仅在需要你的输入时通知。通知使用与 Claude Code 其余部分相同的 [`preferredNotifChannel` 设置](/zh-CN/settings#available-settings),并使用 `agent_needs_input` 或 `agent_completed` 类型触发 [`Notification` hook](/zh-CN/hooks#notification)。140从 v2.1.198 开始,当 agent view 打开时,Claude Code 还会通过你配置的[终端通知频道](/docs/zh-CN/terminal-config#get-a-terminal-bell-or-notification)发送通知,当本地后台会话开始需要你的输入、完成或失败时。在计划上运行的会话,例如 [`/loop`](/docs/zh-CN/scheduled-tasks) 会话,仅在需要你的输入时通知。通知使用与 Claude Code 其余部分相同的 [`preferredNotifChannel` 设置](/docs/zh-CN/settings#available-settings),并使用 `agent_needs_input` 或 `agent_completed` 类型触发 [`Notification` hook](/docs/zh-CN/hooks#notification)。

141 141 

142后台会话不需要任何打开的终端来继续工作。一个单独的[监督进程](#the-supervisor-process)运行它们,所以你可以关闭 agent view、关闭你的 shell 或启动一个新的交互式会话,你的调度工作继续进行。142后台会话不需要任何打开的终端来继续工作。一个单独的[监督进程](#the-supervisor-process)运行它们,所以你可以关闭 agent view、关闭你的 shell 或启动一个新的交互式会话,你的调度工作继续进行。

143 143 


149 行摘要149 行摘要

150</h3>150</h3>

151 151 

152每行中的单行摘要由 [Haiku-class 模型](/zh-CN/model-config)生成,所以该行可以告诉你会话正在做什么、需要什么或生成了什么,无需打开记录。当会话正在积极工作时,摘要最多每 15 秒从会话自己的最近输出刷新一次,无需发送模型请求,每个回合结束时模型写入新摘要。152每行中的单行摘要由 [Haiku-class 模型](/docs/zh-CN/model-config)生成,所以该行可以告诉你会话正在做什么、需要什么或生成了什么,无需打开记录。当会话正在积极工作时,摘要最多每 15 秒从会话自己的最近输出刷新一次,无需发送模型请求,每个回合结束时模型写入新摘要。

153 153 

154工作中的行显示会话说它正在做什么,被阻止的行显示它提出的问题。在长回合期间,模型也大约每分钟重写一次摘要,每次重写后等待时间加倍,最多四分钟,所以繁忙的行不会继续显示过时的摘要。在 v2.1.205 之前,工作中的行可能显示原始工具调用而不是报告,运行并行工作项的会话在文本之前显示 `done/total` 计数,例如 `2/5`。154工作中的行显示会话说它正在做什么,被阻止的行显示它提出的问题。在长回合期间,模型也大约每分钟重写一次摘要,每次重写后等待时间加倍,最多四分钟,所以繁忙的行不会继续显示过时的摘要。在 v2.1.205 之前,工作中的行可能显示原始工具调用而不是报告,运行并行工作项的会话在文本之前显示 `done/total` 计数,例如 `2/5`。

155 155 


157 157 

158当列表[按目录分组](#organize-the-list)时,摘要以会话的状态作为彩色单词开头,例如 `Needs input · double jump or wall climb?`。在默认状态分组中,组标题已经命名了状态,所以行只显示摘要。在 v2.1.205 之前,按目录分组的行不带状态单词。158当列表[按目录分组](#organize-the-list)时,摘要以会话的状态作为彩色单词开头,例如 `Needs input · double jump or wall climb?`。在默认状态分组中,组标题已经命名了状态,所以行只显示摘要。在 v2.1.205 之前,按目录分组的行不带状态单词。

159 159 

160整个输出不包含字母或数字的回合,例如打印单个符号的安静迭代的 [`/loop`](/zh-CN/scheduled-tasks) 会话,保持行的前一个摘要和状态。在 v2.1.205 之前,该回合被重新分类,可能将等待你输入的会话翻转回 `Working`。160整个输出不包含字母或数字的回合,例如打印单个符号的安静迭代的 [`/loop`](/docs/zh-CN/scheduled-tasks) 会话,保持行的前一个摘要和状态。在 v2.1.205 之前,该回合被重新分类,可能将等待你输入的会话翻转回 `Working`。

161 161 

162结束回合摘要和每次中途重写是通过你的正常提供商的一个短 Haiku-class 请求,按与会话本身相同的[数据使用条款](/zh-CN/data-usage)计费和处理。15 秒的模型重写之间的更新重用会话自己的输出,不发送请求。在第三方提供商(如 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 和自定义网关)上,当没有配置 Haiku 模型时,请求会回退到会话的主模型。设置 [`ANTHROPIC_DEFAULT_HAIKU_MODEL`](/zh-CN/model-config#environment-variables) 以在这些提供商上为这些摘要选择模型。162结束回合摘要和每次中途重写是通过你的正常提供商的一个短 Haiku-class 请求,按与会话本身相同的[数据使用条款](/docs/zh-CN/data-usage)计费和处理。15 秒的模型重写之间的更新重用会话自己的输出,不发送请求。在第三方提供商(如 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 和自定义网关)上,当没有配置 Haiku 模型时,请求会回退到会话的主模型。设置 [`ANTHROPIC_DEFAULT_HAIKU_MODEL`](/docs/zh-CN/model-config#environment-variables) 以在这些提供商上为这些摘要选择模型。

163 163 

164<h3 id="pull-request-status">164<h3 id="pull-request-status">

165 拉取请求状态165 拉取请求状态


204 204 

205无法传递的回复,因为后台服务无法访问或发送失败,会被保存并在其进程再次启动时作为其下一个提示发送到会话,错误消息说回复已保存。前缀为 `!` 的回复不会被保存,因为保存的文本会作为纯提示而不是 Bash 命令到达会话。205无法传递的回复,因为后台服务无法访问或发送失败,会被保存并在其进程再次启动时作为其下一个提示发送到会话,错误消息说回复已保存。前缀为 `!` 的回复不会被保存,因为保存的文本会作为纯提示而不是 Bash 命令到达会话。

206 206 

207启用[语音听写](/zh-CN/voice-dictation)后,在回复输入获得焦点时按住或点击你的推送通话键以听写回复而不是输入。同样的功能在 agent view 底部的调度输入中也有效。207启用[语音听写](/docs/zh-CN/voice-dictation)后,在回复输入获得焦点时按住或点击你的推送通话键以听写回复而不是输入。同样的功能在 agent view 底部的调度输入中也有效。

208 208 

209使用 `↑` 和 `↓` 窥视相邻会话而不关闭面板,或 `→` 附加。209使用 `↑` 和 `↓` 窥视相邻会话而不关闭面板,或 `→` 附加。

210 210 


214 214 

215在选定的行上按 `Enter` 或 `→` 附加。Agent view 被完整的交互式会话替换。当你附加时,Claude 发布一个关于你离开时发生的事情的简短回顾。215在选定的行上按 `Enter` 或 `→` 附加。Agent view 被完整的交互式会话替换。当你附加时,Claude 发布一个关于你离开时发生的事情的简短回顾。

216 216 

217附加时,会话的行为像任何其他 Claude Code 会话:[命令](/zh-CN/commands)、快捷键和功能都有效,除了下面的例外。217附加时,会话的行为像任何其他 Claude Code 会话:[命令](/docs/zh-CN/commands)、快捷键和功能都有效,除了下面的例外。

218 218 

219后台会话拒绝 `/install-github-app` 和 [`/mcp`](/zh-CN/mcp) 设置列表,包括其身份验证操作,无论你是附加还是从窥视面板回复。消息指导你到常规 `claude` 会话,`/mcp reconnect <server>`、`/mcp enable` 和 `/mcp disable` 仍然有效。219后台会话拒绝 `/install-github-app` 和 [`/mcp`](/docs/zh-CN/mcp) 设置列表,包括其身份验证操作,无论你是附加还是从窥视面板回复。消息指导你到常规 `claude` 会话,`/mcp reconnect <server>`、`/mcp enable` 和 `/mcp disable` 仍然有效。

220 220 

221附加的会话始终以[全屏模式](/zh-CN/fullscreen)呈现,无论你的 `tui` 设置如何,因为后台会话没有终端滚动历史可追加。使用 `PgUp`、`PgDn` 或鼠标滚轮滚动,按 `Ctrl+O` 进入记录模式。你的终端的原生滚动和 tmux 复制模式仅显示当前视口,与运行任何全屏应用程序时相同。221附加的会话始终以[全屏模式](/docs/zh-CN/fullscreen)呈现,无论你的 `tui` 设置如何,因为后台会话没有终端滚动历史可追加。使用 `PgUp`、`PgDn` 或鼠标滚轮滚动,按 `Ctrl+O` 进入记录模式。你的终端的原生滚动和 tmux 复制模式仅显示当前视口,与运行任何全屏应用程序时相同。

222 222 

223在空提示上按 `←` 或运行 `/exit` 分离并返回 agent view。从 v2.1.198 开始,这的工作方式与你从 agent view 打开会话或从 shell 用 `claude attach <id>` 运行相同。223在空提示上按 `←` 或运行 `/exit` 分离并返回 agent view。从 v2.1.198 开始,这的工作方式与你从 agent view 打开会话或从 shell 用 `claude attach <id>` 运行相同。

224 224 


232 232 

233如果在你按 `←` 时工具正在运行,Claude Code 会等待大约十秒钟让它完成,然后后台,响应在后台会话中继续。再按一次 `←` 以立即后台而不是等待。当进行中的工作无法转移到后台会话时,`Background this session?` 对话首先出现,与 [`/background`](#from-inside-a-session) 相同。233如果在你按 `←` 时工具正在运行,Claude Code 会等待大约十秒钟让它完成,然后后台,响应在后台会话中继续。再按一次 `←` 以立即后台而不是等待。当进行中的工作无法转移到后台会话时,`Background this session?` 对话首先出现,与 [`/background`](#from-inside-a-session) 相同。

234 234 

235十秒限制在 [subagents](/zh-CN/sub-agents) 运行时不适用。Claude Code 继续等待以便它们的工作转移,并在等待时显示 `Still backgrounding after the current tool` 通知;再按一次 `←` 以立即后台而不等待,这会从头重新启动 subagents。在 v2.1.203 之前,等待在十秒后结束,运行中的 subagents 在没有警告的情况下从头重新启动。235十秒限制在 [subagents](/docs/zh-CN/sub-agents) 运行时不适用。Claude Code 继续等待以便它们的工作转移,并在等待时显示 `Still backgrounding after the current tool` 通知;再按一次 `←` 以立即后台而不等待,这会从头重新启动 subagents。在 v2.1.203 之前,等待在十秒后结束,运行中的 subagents 在没有警告的情况下从头重新启动。

236 236 

237该行即使从没有对话历史的新会话也会被创建,所以 `→` 会返回到它。{/* max-version: 2.1.202 */}在 v2.1.203 之前,当该行是唯一的行时,agent view 在它下方显示一个入门提示。237该行即使从没有对话历史的新会话也会被创建,所以 `→` 会返回到它。在 v2.1.203 之前,当该行是唯一的行时,agent view 在它下方显示一个入门提示。

238 238 

239你可以在 `/config` 中用 `leftArrowOpensAgents` 设置关闭此快捷键。239你可以在 `/config` 中用 `leftArrowOpensAgents` 设置关闭此快捷键。

240 240 


313 313 

314在 agent view 底部的输入框中输入提示并按 `Enter` 启动新的后台会话。会话从提示自动命名;稍后可以用 `Ctrl+R` 重命名它。314在 agent view 底部的输入框中输入提示并按 `Enter` 启动新的后台会话。会话从提示自动命名;稍后可以用 `Ctrl+R` 重命名它。

315 315 

316会话稍后获得的名称也会出现在其行上,包括当你在该会话中 [接受计划](/zh-CN/permission-modes#review-and-approve-a-plan) 时 Claude 推导的名称。在 v2.1.207 之前,通过接受计划命名的后台会话在 `/status` 中显示该名称,但在你自己重命名之前不会在其 agent-view 行上显示。316会话稍后获得的名称也会出现在其行上,包括当你在该会话中 [接受计划](/docs/zh-CN/permission-modes#review-and-approve-a-plan) 时 Claude 推导的名称。在 v2.1.207 之前,通过接受计划命名的后台会话在 `/status` 中显示该名称,但在你自己重命名之前不会在其 agent-view 行上显示。

317 317 

318将图像粘贴到提示中以包含任务的屏幕截图或图表。318将图像粘贴到提示中以包含任务的屏幕截图或图表。

319 319 

320粘贴的文本长度超过 800 个字符或超过两行会折叠为 `[Pasted text #N]` 占位符,以便输入保持在一行;完整文本在你调度时发送。{/* min-version: 2.1.207 */}要在调度前查看或编辑折叠的文本,再次粘贴相同的文本,占位符会展开回输入。在至少 90 列宽的终端上,粘贴后会在输入下方出现 `paste again to expand` 提醒几秒钟。在 v2.1.207 之前,再次粘贴相同的文本会添加第二个占位符而不是展开第一个。320粘贴的文本长度超过 800 个字符或超过两行会折叠为 `[Pasted text #N]` 占位符,以便输入保持在一行;完整文本在你调度时发送。要在调度前查看或编辑折叠的文本,再次粘贴相同的文本,占位符会展开回输入。在至少 90 列宽的终端上,粘贴后会在输入下方出现 `paste again to expand` 提醒几秒钟。在 v2.1.207 之前,再次粘贴相同的文本会添加第二个占位符而不是展开第一个。

321 321 

322前缀或提及提示的部分以控制会话如何启动:322前缀或提及提示的部分以控制会话如何启动:

323 323 

324| 输入 | 效果 |324| 输入 | 效果 |

325| :---------------------- | :--------------------------------------------------------------------------------------- |325| :---------------------- | :--------------------------------------------------------------------------------------- |

326| `<agent-name> <prompt>` | 如果第一个单词匹配自定义 [subagent](/zh-CN/sub-agents) 名称,该 subagent 作为会话的主代理运行,使用其 frontmatter 中的配置 |326| `<agent-name> <prompt>` | 如果第一个单词匹配自定义 [subagent](/docs/zh-CN/sub-agents) 名称,该 subagent 作为会话的主代理运行,使用其 frontmatter 中的配置 |

327| `@<agent-name>` | 在提示中的任何地方提及自定义 subagent 以作为主代理运行它 |327| `@<agent-name>` | 在提示中的任何地方提及自定义 subagent 以作为主代理运行它 |

328| `@<repo>` | 提及一个存储库以在那里运行会话。参见 [调度到特定目录](#dispatch-to-a-specific-directory) 了解列出了哪些存储库 |328| `@<repo>` | 提及一个存储库以在那里运行会话。参见 [调度到特定目录](#dispatch-to-a-specific-directory) 了解列出了哪些存储库 |

329| `/<command>` | 建议 [skills](/zh-CN/skills) 和 [commands](/zh-CN/commands) 作为提示调度 |329| `/<command>` | 建议 [skills](/docs/zh-CN/skills) 和 [commands](/docs/zh-CN/commands) 作为提示调度 |

330| `! <command>` | 运行 shell 命令作为后台作业而不是启动 Claude 会话。该作业显示为一行,你可以附加到、观看和分离 |330| `! <command>` | 运行 shell 命令作为后台作业而不是启动 Claude 会话。该作业显示为一行,你可以附加到、观看和分离 |

331| `#<number>` 或拉取请求 URL | 如果会话已在处理该 PR,选择它而不是调度 |331| `#<number>` 或拉取请求 URL | 如果会话已在处理该 PR,选择它而不是调度 |

332| `Shift+Enter` | 调度并立即附加到新会话 |332| `Shift+Enter` | 调度并立即附加到新会话 |


336* `/exit` 和 `/quit` 关闭 agent view336* `/exit` 和 `/quit` 关闭 agent view

337* `/logout` 将你登出337* `/logout` 将你登出

338* `/model` 设置 [调度模型](#set-the-model)338* `/model` 设置 [调度模型](#set-the-model)

339* {/* min-version: 2.1.198 */}从 v2.1.198 开始,`/login` 打开登录对话框,以便你可以在不附加到会话的情况下再次登录339* 从 v2.1.198 开始,`/login` 打开登录对话框,以便你可以在不附加到会话的情况下再次登录

340 340 

341Skills、你自己的命令和提示扩展内置命令如 `/init` 作为其第一个提示发送到新的后台会话。其他内置命令显示 `attach to a session to run it` 提示。{/* min-version: 2.1.203 */}你输入的所有内容都保留在提示旁边的输入中,以便你可以编辑它。在 v2.1.203 之前,提示清除了输入,输入的文本丢失了。341Skills、你自己的命令和提示扩展内置命令如 `/init` 作为其第一个提示发送到新的后台会话。其他内置命令显示 `attach to a session to run it` 提示。你输入的所有内容都保留在提示旁边的输入中,以便你可以编辑它。在 v2.1.203 之前,提示清除了输入,输入的文本丢失了。

342 342 

343将重复任务打包为 [skill](/zh-CN/skills) 让你从 agent view 多次启动相同的工作流而无需重新输入提示。343将重复任务打包为 [skill](/docs/zh-CN/skills) 让你从 agent view 多次启动相同的工作流而无需重新输入提示。

344 344 

345当相同的 `@name` 同时匹配 subagent 和同级存储库时,subagent 优先。不带 `@` 的首字形式也适用,所以以匹配你的某个 subagent 名称的单词开头的提示会调度该 subagent 而不是将该单词视为纯文本。当你想要明确指定时,使用 `@` 形式,或以不同的单词开头提示以避免匹配。345当相同的 `@name` 同时匹配 subagent 和同级存储库时,subagent 优先。不带 `@` 的首字形式也适用,所以以匹配你的某个 subagent 名称的单词开头的提示会调度该 subagent 而不是将该单词视为纯文本。当你想要明确指定时,使用 `@` 形式,或以不同的单词开头提示以避免匹配。

346 346 


354* 在父目录中打开 `claude agents` 并在提示中用 `@<repo>` 提及一个子存储库。输入 `@` 会列出这些目标:354* 在父目录中打开 `claude agents` 并在提示中用 `@<repo>` 提及一个子存储库。输入 `@` 会列出这些目标:

355 355 

356 * 启动目录下一级的 Git 存储库356 * 启动目录下一级的 Git 存储库

357 * 你启动的存储库的已注册 [git worktrees](/zh-CN/worktrees),这些 worktrees 位于其目录树内,例如 Claude 在 `.claude/worktrees/` 下创建的那些,标记有其检出的分支。在存储库外添加的 worktrees,例如用 `git worktree add ../feature` 添加的,不会被列出357 * 你启动的存储库的已注册 [git worktrees](/docs/zh-CN/worktrees),这些 worktrees 位于其目录树内,例如 Claude 在 `.claude/worktrees/` 下创建的那些,标记有其检出的分支。在存储库外添加的 worktrees,例如用 `git worktree add ../feature` 添加的,不会被列出

358 * 任何已在列表中有会话的目录358 * 任何已在列表中有会话的目录

359 359 

360 名称包含空格的目录不会被列出。{/* min-version: 2.1.203 */}在 v2.1.203 之前,已注册的 worktrees 不会被列出,所以调度到其中意味着从该 worktree 的目录运行 `claude --bg`。360 名称包含空格的目录不会被列出。在 v2.1.203 之前,已注册的 worktrees 不会被列出,所以调度到其中意味着从该 worktree 的目录运行 `claude --bg`。

361* 从 shell,`cd` 进入目录并运行 `claude --bg "<prompt>"`。361* 从 shell,`cd` 进入目录并运行 `claude --bg "<prompt>"`。

362 362 

363当 agent view 按目录分组时,突出显示的行的目录成为调度目标,所以你可以滚动到一个组并在不重新输入路径的情况下调度到它。363当 agent view 按目录分组时,突出显示的行的目录成为调度目标,所以你可以滚动到一个组并在不重新输入路径的情况下调度到它。


368 368 

369运行 `/background` 或其别名 `/bg` 将当前对话移动到后台会话。传递提示如 `/bg run the test suite and fix any failures` 以在后台化前先给出一个更多指令。如果 Claude 在你运行 `/bg` 时正在响应,响应会在后台会话中继续。369运行 `/background` 或其别名 `/bg` 将当前对话移动到后台会话。传递提示如 `/bg run the test suite and fix any failures` 以在后台化前先给出一个更多指令。如果 Claude 在你运行 `/bg` 时正在响应,响应会在后台会话中继续。

370 370 

371退出仍有后台工作运行的交互式会话,例如 subagents、后台 shell 命令、工作流或 [monitors](/zh-CN/tools-reference#monitor-tool),会显示 `Background work is running` 对话而不是立即退出。{/* min-version: 2.1.198 */}从 v2.1.198 开始,对话提供 `Move to background and exit` 以及 `Exit anyway` 和 `Stay`。选择它会以与 `/background` 相同的方式将会话移动到后台,然后返回你的 shell,所以可以继续的工作保持运行,会话出现在 agent view 中。当 agent view 被 [关闭](#turn-off-agent-view) 时,不显示该选项。371退出仍有后台工作运行的交互式会话,例如 subagents、后台 shell 命令、工作流或 [monitors](/docs/zh-CN/tools-reference#monitor-tool),会显示 `Background work is running` 对话而不是立即退出。从 v2.1.198 开始,对话提供 `Move to background and exit` 以及 `Exit anyway` 和 `Stay`。选择它会以与 `/background` 相同的方式将会话移动到后台,然后返回你的 shell,所以可以继续的工作保持运行,会话出现在 agent view 中。当 agent view 被 [关闭](#turn-off-agent-view) 时,不显示该选项。

372 372 

373从交互式会话后台化启动一个新的进程,该进程从保存的对话恢复,进行中的工作会转移到它:运行后台 shell 命令、后台 subagents、动态工作流和你用 [`/loop`](/zh-CN/scheduled-tasks) 创建的计划任务会转移到后台会话并在那里继续运行。一个 subagent 与它启动的所有内容一起移动,所以它仅在所有工作都能转移时才转移,包括在 Windows 上。要停止进行中的工作而不是转移它,设置 [`CLAUDE_DISABLE_ADOPT=1`](/zh-CN/env-vars#variables) 环境变量;Claude Code 随后会要求你在后台化前确认。373从交互式会话后台化启动一个新的进程,该进程从保存的对话恢复,进行中的工作会转移到它:运行后台 shell 命令、后台 subagents、动态工作流和你用 [`/loop`](/docs/zh-CN/scheduled-tasks) 创建的计划任务会转移到后台会话并在那里继续运行。一个 subagent 与它启动的所有内容一起移动,所以它仅在所有工作都能转移时才转移,包括在 Windows 上。要停止进行中的工作而不是转移它,设置 [`CLAUDE_DISABLE_ADOPT=1`](/docs/zh-CN/env-vars#variables) 环境变量;Claude Code 随后会要求你在后台化前确认。

374 374 

375无法转移的工作,例如运行中的 [monitor](/zh-CN/tools-reference#monitor-tool),会被停止。拥有监视器的后台 subagent 会与它一起被停止。当任何此类工作正在运行时,Claude Code 显示 `Background this session?` 对话,以便你可以在它被停止前确认。375无法转移的工作,例如运行中的 [monitor](/docs/zh-CN/tools-reference#monitor-tool),会被停止。拥有监视器的后台 subagent 会与它一起被停止。当任何此类工作正在运行时,Claude Code 显示 `Background this session?` 对话,以便你可以在它被停止前确认。

376 376 

377一旦在后台,会话可以启动新的 subagents、monitors 和后台命令,这些会在后续的分离和重新附加中保持运行。377一旦在后台,会话可以启动新的 subagents、monitors 和后台命令,这些会在后续的分离和重新附加中保持运行。

378 378 


385* `--fallback-model`385* `--fallback-model`

386* `--allow-dangerously-skip-permissions`386* `--allow-dangerously-skip-permissions`

387 387 

388你在会话期间用 [`/add-dir`](/zh-CN/permissions#additional-directories-grant-file-access-not-configuration) 添加的目录也会传递。388你在会话期间用 [`/add-dir`](/docs/zh-CN/permissions#additional-directories-grant-file-access-not-configuration) 添加的目录也会传递。

389 389 

390传递 `--allow-dangerously-skip-permissions` 会在后台化的会话中保持 `bypassPermissions` 可访问,但它不会授予任何新权限。该模式仍然需要在任何会话使用它之前进行相同的一次性交互式接受,如 [权限模式、模型和工作量](#permission-mode-model-and-effort) 中所述。390传递 `--allow-dangerously-skip-permissions` 会在后台化的会话中保持 `bypassPermissions` 可访问,但它不会授予任何新权限。该模式仍然需要在任何会话使用它之前进行相同的一次性交互式接受,如 [权限模式、模型和工作量](#permission-mode-model-and-effort) 中所述。

391 391 


399claude --bg "investigate the flaky SettingsChangeDetector test"399claude --bg "investigate the flaky SettingsChangeDetector test"

400```400```

401 401 

402提示是位置参数,不是 `-p` 值。{/* min-version: 2.1.198 */}从 v2.1.198 开始,将 `--bg` 与 `-p` 或 `--print` 结合会在创建任何会话前被拒绝并显示错误,因为 `--print` 永远不会启动 `claude agents` 附加到的交互式会话。402提示是位置参数,不是 `-p` 值。从 v2.1.198 开始,将 `--bg` 与 `-p` 或 `--print` 结合会在创建任何会话前被拒绝并显示错误,因为 `--print` 永远不会启动 `claude agents` 附加到的交互式会话。

403 403 

404要运行特定的 subagent 作为会话的主代理,结合 `--bg` 和 `--agent`:404要运行特定的 subagent 作为会话的主代理,结合 `--bg` 和 `--agent`:

405 405 


447 文件编辑如何隔离447 文件编辑如何隔离

448</h3>448</h3>

449 449 

450每个后台会话,无论是从 agent view、`/bg` 还是 `claude --bg` 启动,都在你的工作目录中启动。在编辑文件前,Claude 将会话移动到 `.claude/worktrees/` 下的隔离 [git worktree](/zh-CN/worktrees) 中,所以并行会话可以读取相同的检出但每个都写入自己的。450每个后台会话,无论是从 agent view、`/bg` 还是 `claude --bg` 启动,都在你的工作目录中启动。在编辑文件前,Claude 将会话移动到 `.claude/worktrees/` 下的隔离 [git worktree](/docs/zh-CN/worktrees) 中,所以并行会话可以读取相同的检出但每个都写入自己的。

451 451 

452Claude 在以下情况下跳过 worktree:452Claude 在以下情况下跳过 worktree:

453 453 

454* 会话已经在链接的 git worktree 内,无论 Claude 是在 `.claude/worktrees/` 下创建的还是你用 `git worktree add` 在其他地方创建的454* 会话已经在链接的 git worktree 内,无论 Claude 是在 `.claude/worktrees/` 下创建的还是你用 `git worktree add` 在其他地方创建的

455* 工作目录不是 git 存储库且没有配置 [`WorktreeCreate` hook](/zh-CN/hooks#worktreecreate)455* 工作目录不是 git 存储库且没有配置 [`WorktreeCreate` hook](/docs/zh-CN/hooks#worktreecreate)

456* 写入在工作目录外456* 写入在工作目录外

457 457 

458要为 git worktree 不实用的存储库关闭 worktree 隔离,将 [`worktree.bgIsolation`](/zh-CN/settings#worktree-settings) 设置为 `"none"`。后台会话随后直接编辑你的工作副本而不先移动到 worktree。将设置添加到项目的 `.claude/settings.json`:458要为 git worktree 不实用的存储库关闭 worktree 隔离,将 [`worktree.bgIsolation`](/docs/zh-CN/settings#worktree-settings) 设置为 `"none"`。后台会话随后直接编辑你的工作副本而不先移动到 worktree。将设置添加到项目的 `.claude/settings.json`:

459 459 

460```json theme={null}460```json theme={null}

461{461{


465}465}

466```466```

467 467 

468在 git 存储库外,会话直接写入工作目录且彼此不隔离,所以避免调度编辑相同文件的并行会话。如果你使用不同的版本控制系统,配置一个 [`WorktreeCreate` hook](/zh-CN/worktrees#non-git-version-control),Claude 会以与 git 相同的方式隔离编辑。468在 git 存储库外,会话直接写入工作目录且彼此不隔离,所以避免调度编辑相同文件的并行会话。如果你使用不同的版本控制系统,配置一个 [`WorktreeCreate` hook](/docs/zh-CN/worktrees#non-git-version-control),Claude 会以与 git 相同的方式隔离编辑。

469 469 

470当 hook 在不是 git 存储库的目录中失败时,会话跳过该目录的隔离并就地编辑工作目录。在 git 存储库内,写入保持被阻止,直到会话隔离。在 v2.1.203 之前,处于该状态的后台会话无法编辑任何文件:每次写入都被拒绝,直到它隔离,hook 永远无法隔离该目录。470当 hook 在不是 git 存储库的目录中失败时,会话跳过该目录的隔离并就地编辑工作目录。在 git 存储库内,写入保持被阻止,直到会话隔离。在 v2.1.203 之前,处于该状态的后台会话无法编辑任何文件:每次写入都被拒绝,直到它隔离,hook 永远无法隔离该目录。

471 471 


478 478 

479要找到会话的 worktree 路径,查看会话或附加并检查其工作目录。479要找到会话的 worktree 路径,查看会话或附加并检查其工作目录。

480 480 

481[subagent](/zh-CN/sub-agents) 后台会话生成的继承会话的工作目录,所以其文件编辑落在会话的 worktree 中而不是你的工作副本。要给 subagent 其自己的单独 worktree,在其 frontmatter 中设置 [`isolation: worktree`](/zh-CN/sub-agents#supported-frontmatter-fields) 或在生成它时传递 `isolation: "worktree"`。481[subagent](/docs/zh-CN/sub-agents) 后台会话生成的继承会话的工作目录,所以其文件编辑落在会话的 worktree 中而不是你的工作副本。要给 subagent 其自己的单独 worktree,在其 frontmatter 中设置 [`isolation: worktree`](/docs/zh-CN/sub-agents#supported-frontmatter-fields) 或在生成它时传递 `isolation: "worktree"`。

482 482 

483从 v2.1.198 开始,隔离其代码更改在 worktree 中的后台会话也会提交、推送其自己的分支,并打开草稿拉取请求而不停止询问。当拉取请求打开时,[`#N` 标签](#pull-request-status) 出现在其行上。它永远不会推送到 `main` 或 `master`,永远不会强制推送或合并,当你告诉它不要打开拉取请求或存储库没有远程时,它会跳过拉取请求。483从 v2.1.198 开始,隔离其代码更改在 worktree 中的后台会话也会提交、推送其自己的分支,并打开草稿拉取请求而不停止询问。当拉取请求打开时,[`#N` 标签](#pull-request-status) 出现在其行上。它永远不会推送到 `main` 或 `master`,永远不会强制推送或合并,当你告诉它不要打开拉取请求或存储库没有远程时,它会跳过拉取请求。

484 484 


488 设置模型488 设置模型

489</h3>489</h3>

490 490 

491agent view 标题中显示的模型名称是调度默认值。你从输入启动的新会话使用此模型,这来自你的用户设置中的 [`model` 设置](/zh-CN/settings#available-settings)。通过在 [`/model` 选择器](/zh-CN/model-config) 中选择模型来设置它,或直接编辑设置。491agent view 标题中显示的模型名称是调度默认值。你从输入启动的新会话使用此模型,这来自你的用户设置中的 [`model` 设置](/docs/zh-CN/settings#available-settings)。通过在 [`/model` 选择器](/docs/zh-CN/model-config) 中选择模型来设置它,或直接编辑设置。

492 492 

493要为整个 agent view 会话覆盖调度默认值,在打开 agent view 时传递 `--model`。参见 [权限模式、模型和工作量](#permission-mode-model-and-effort)。493要为整个 agent view 会话覆盖调度默认值,在打开 agent view 时传递 `--model`。参见 [权限模式、模型和工作量](#permission-mode-model-and-effort)。

494 494 


505 505 

506* 从 shell,用 `claude --bg` 传递 `--model`。506* 从 shell,用 `claude --bg` 传递 `--model`。

507* 附加到运行中的会话并运行 `/model` 以切换:从选择器中选择,或输入 `/model <name>`,保存为你的新会话默认值,除非你在选择器中按 `s` 进行仅会话切换。如果会话被重新生成,仅会话切换会持续。507* 附加到运行中的会话并运行 `/model` 以切换:从选择器中选择,或输入 `/model <name>`,保存为你的新会话默认值,除非你在选择器中按 `s` 进行仅会话切换。如果会话被重新生成,仅会话切换会持续。

508* 调度一个 [subagent](/zh-CN/sub-agents),其 frontmatter 设置 `model` 字段。508* 调度一个 [subagent](/docs/zh-CN/sub-agents),其 frontmatter 设置 `model` 字段。

509 509 

510<h3 id="permission-mode-model-and-effort">510<h3 id="permission-mode-model-and-effort">

511 权限模式、模型和工作量511 权限模式、模型和工作量

512</h3>512</h3>

513 513 

514后台会话从它运行的目录读取其 [settings](/zh-CN/settings),就像你在那里启动了 `claude` 一样。这包括项目设置中的 [`env` 值](/zh-CN/settings#available-settings),所以在那里设置的 `ANTHROPIC_MODEL` 或提供商变量适用于该目录中的后台会话。514后台会话从它运行的目录读取其 [settings](/docs/zh-CN/settings),就像你在那里启动了 `claude` 一样。这包括项目设置中的 [`env` 值](/docs/zh-CN/settings#available-settings),所以在那里设置的 `ANTHROPIC_MODEL` 或提供商变量适用于该目录中的后台会话。

515 515 

516云提供商选择,如 `CLAUDE_CODE_USE_BEDROCK` 或 `CLAUDE_CODE_USE_VERTEX`,以及 `ANTHROPIC_DEFAULT_*_MODEL` 别名遵循调度会话的 shell。{/* min-version: 2.1.206 */}如果你在该 shell 中导出 [`CLAUDE_CODE_EXTRA_BODY`](/zh-CN/env-vars) 请求体覆盖,它会以相同的方式到达会话。在 v2.1.206 之前,后台工作进程忽略了 shell 导出的 `CLAUDE_CODE_EXTRA_BODY`。516云提供商选择,如 `CLAUDE_CODE_USE_BEDROCK` 或 `CLAUDE_CODE_USE_VERTEX`,以及 `ANTHROPIC_DEFAULT_*_MODEL` 别名遵循调度会话的 shell。如果你在该 shell 中导出 [`CLAUDE_CODE_EXTRA_BODY`](/docs/zh-CN/env-vars) 请求体覆盖,它会以相同的方式到达会话。在 v2.1.206 之前,后台工作进程忽略了 shell 导出的 `CLAUDE_CODE_EXTRA_BODY`。

517 517 

518如果你在调度 shell 中导出网关 `ANTHROPIC_BASE_URL`,它也会到达会话,以及 `ANTHROPIC_CUSTOM_HEADERS`,当监督者使用相同的网关环境运行且会话在你调度的目录中运行或是你自己的会话用 `←` 或 `/background` 后台化时。这是第一个 shell 打开 agent view 或调度后台会话时的正常情况,是网关 shell。用 `@repo` 或 `--cwd` 调度到不同目录不会携带 shell 的网关;该项目的 [settings](/zh-CN/settings) 提供端点。参见 [监督者进程](#the-supervisor-process) 了解后台会话如何获取提供商设置和凭证。518如果你在调度 shell 中导出网关 `ANTHROPIC_BASE_URL`,它也会到达会话,以及 `ANTHROPIC_CUSTOM_HEADERS`,当监督者使用相同的网关环境运行且会话在你调度的目录中运行或是你自己的会话用 `←` 或 `/background` 后台化时。这是第一个 shell 打开 agent view 或调度后台会话时的正常情况,是网关 shell。用 `@repo` 或 `--cwd` 调度到不同目录不会携带 shell 的网关;该项目的 [settings](/docs/zh-CN/settings) 提供端点。参见 [监督者进程](#the-supervisor-process) 了解后台会话如何获取提供商设置和凭证。

519 519 

520[permission mode](/zh-CN/permissions) 取决于你如何启动会话。用 `/bg` 或 `←` 后台化现有会话会保持当前权限模式,所以你切换到 `acceptEdits` 或 `auto` 的会话在分离后仍保持该模式。从 agent view 输入调度或从你的 shell 运行 `claude --bg` 使用该目录设置中的 `defaultMode`,或调度的 [subagent 的 frontmatter](/zh-CN/sub-agents#supported-frontmatter-fields) 中的 `permissionMode`。520[permission mode](/docs/zh-CN/permissions) 取决于你如何启动会话。用 `/bg` 或 `←` 后台化现有会话会保持当前权限模式,所以你切换到 `acceptEdits` 或 `auto` 的会话在分离后仍保持该模式。从 agent view 输入调度或从你的 shell 运行 `claude --bg` 使用该目录设置中的 `defaultMode`,或调度的 [subagent 的 frontmatter](/docs/zh-CN/sub-agents#supported-frontmatter-fields) 中的 `permissionMode`。

521 521 

522后台会话启动时的权限模式、模型和工作量,以及它携带的 [配置标志](#from-inside-a-session),在监督者稍后 [停止并重新启动](#the-supervisor-process) 其进程时都会持续。你用 `claude --bg --dangerously-skip-permissions` 或 `claude --bg --permission-mode bypassPermissions` 启动的会话在该重新启动后仍保持 `bypassPermissions` 而不是回退到目录的 `defaultMode`,以及你在会话中期用 `/model` 或 `/effort` 更改的模型或工作量会被保留。522后台会话启动时的权限模式、模型和工作量,以及它携带的 [配置标志](#from-inside-a-session),在监督者稍后 [停止并重新启动](#the-supervisor-process) 其进程时都会持续。你用 `claude --bg --dangerously-skip-permissions` 或 `claude --bg --permission-mode bypassPermissions` 启动的会话在该重新启动后仍保持 `bypassPermissions` 而不是回退到目录的 `defaultMode`,以及你在会话中期用 `/model` 或 `/effort` 更改的模型或工作量会被保留。

523 523 

524会话从 [`effortLevel` 设置](/zh-CN/settings#available-settings) 而不是从 `--effort` 或 `/effort` 获取的工作量不会在调度时固定:为会话启动的每个进程都会再次读取设置,所以在 `settings.json` 中编辑 `effortLevel` 会到达你用 `←` 或 `/bg` 后台化的会话及其后续重新启动。在 v2.1.203 之前,后台化会话会记录其设置派生的工作量,就像你传递了 `--effort` 一样,所以后续的 `effortLevel` 编辑永远无法到达它。524会话从 [`effortLevel` 设置](/docs/zh-CN/settings#available-settings) 而不是从 `--effort` 或 `/effort` 获取的工作量不会在调度时固定:为会话启动的每个进程都会再次读取设置,所以在 `settings.json` 中编辑 `effortLevel` 会到达你用 `←` 或 `/bg` 后台化的会话及其后续重新启动。在 v2.1.203 之前,后台化会话会记录其设置派生的工作量,就像你传递了 `--effort` 一样,所以后续的 `effortLevel` 编辑永远无法到达它。

525 525 

526你用 [`/rename`](/zh-CN/commands) 或 `Ctrl+R` 设置的名称也会在该重新启动中持续,所以 [`claude --resume <name>`](/zh-CN/sessions#name-your-sessions) 仍然解析会话。在 v2.1.202 之前,重新启动会将会话恢复为调度时的名称,新名称停止解析。526你用 [`/rename`](/docs/zh-CN/commands) 或 `Ctrl+R` 设置的名称也会在该重新启动中持续,所以 [`claude --resume <name>`](/docs/zh-CN/sessions#name-your-sessions) 仍然解析会话。在 v2.1.202 之前,重新启动会将会话恢复为调度时的名称,新名称停止解析。

527 527 

528要为从 agent view 调度的每个会话设置默认值,在打开它时传递 `--permission-mode`、`--model`、`--effort` 或 `--agent` 中的任何一个:528要为从 agent view 调度的每个会话设置默认值,在打开它时传递 `--permission-mode`、`--model`、`--effort` 或 `--agent` 中的任何一个:

529 529 


531claude agents --permission-mode plan --model opus --effort high531claude agents --permission-mode plan --model opus --effort high

532```532```

533 533 

534`--agent` 设置当调度提示未命名一个时使用的 [subagent](/zh-CN/sub-agents),无论是用 `@name` 还是作为第一个单词。如果设置了一个,它默认为 [`agent` 设置](/zh-CN/settings#available-settings),否则为内置的全能 `claude` 代理。在调度输入中命名 subagent 会覆盖两者。534`--agent` 设置当调度提示未命名一个时使用的 [subagent](/docs/zh-CN/sub-agents),无论是用 `@name` 还是作为第一个单词。如果设置了一个,它默认为 [`agent` 设置](/docs/zh-CN/settings#available-settings),否则为内置的全能 `claude` 代理。在调度输入中命名 subagent 会覆盖两者。

535 535 

536`claude agents` 也接受 `--dangerously-skip-permissions` 作为 `--permission-mode bypassPermissions` 的简写,以及 `--allow-dangerously-skip-permissions` 以在每个调度会话的 `Shift+Tab` 循环中使 `bypassPermissions` 可用而不带权限模式启动。两者都匹配 [顶级 CLI 标志](/zh-CN/cli-reference)。536`claude agents` 也接受 `--dangerously-skip-permissions` 作为 `--permission-mode bypassPermissions` 的简写,以及 `--allow-dangerously-skip-permissions` 以在每个调度会话的 `Shift+Tab` 循环中使 `bypassPermissions` 可用而不带权限模式启动。两者都匹配 [顶级 CLI 标志](/docs/zh-CN/cli-reference)。

537 537 

538活跃的默认值出现在调度输入下方的页脚中。538活跃的默认值出现在调度输入下方的页脚中。

539 539 

540没有这些标志,会话使用该目录设置中的 `defaultMode` 或调度的 [subagent 的 frontmatter](/zh-CN/sub-agents#supported-frontmatter-fields) 中的 `permissionMode`,以及 agent view 标题中显示的模型。540没有这些标志,会话使用该目录设置中的 `defaultMode` 或调度的 [subagent 的 frontmatter](/docs/zh-CN/sub-agents#supported-frontmatter-fields) 中的 `permissionMode`,以及 agent view 标题中显示的模型。

541 541 

542使用 `bypassPermissions` 与 `claude --bg --permission-mode` 被拒绝,直到你通过交互式运行 `claude --dangerously-skip-permissions` 一次接受了绕过免责声明,因为该模式让你没有看到的会话无需批准就能行动。传递 `--dangerously-skip-permissions` 或 `--permission-mode bypassPermissions` 到 `claude agents` 在你之前没有接受它时显示相同的免责声明,接受会将 `bypassPermissions` 应用到你从视图启动的会话。传递 `--allow-dangerously-skip-permissions` 也显示相同的免责声明,接受会在这些会话的 `Shift+Tab` 循环中使 `bypassPermissions` 可用而不在其中启动它们。542使用 `bypassPermissions` 与 `claude --bg --permission-mode` 被拒绝,直到你通过交互式运行 `claude --dangerously-skip-permissions` 一次接受了绕过免责声明,因为该模式让你没有看到的会话无需批准就能行动。传递 `--dangerously-skip-permissions` 或 `--permission-mode bypassPermissions` 到 `claude agents` 在你之前没有接受它时显示相同的免责声明,接受会将 `bypassPermissions` 应用到你从视图启动的会话。传递 `--allow-dangerously-skip-permissions` 也显示相同的免责声明,接受会在这些会话的 `Shift+Tab` 循环中使 `bypassPermissions` 可用而不在其中启动它们。

543 543 


549 549 

550| 标志 | 效果 |550| 标志 | 效果 |

551| :-------------------------------------------------------------------------------------------------- | :--------------------------------------------- |551| :-------------------------------------------------------------------------------------------------- | :--------------------------------------------- |

552| [`--settings <file-or-json>`](/zh-CN/settings) | 覆盖 agent view 和调度会话的 settings |552| [`--settings <file-or-json>`](/docs/zh-CN/settings) | 覆盖 agent view 和调度会话的 settings |

553| [`--add-dir <path>`](/zh-CN/permissions#additional-directories-grant-file-access-not-configuration) | 授予对额外目录的文件访问权限 |553| [`--add-dir <path>`](/docs/zh-CN/permissions#additional-directories-grant-file-access-not-configuration) | 授予对额外目录的文件访问权限 |

554| [`--plugin-dir <path>`](/zh-CN/plugins) | 从本地目录加载 plugin |554| [`--plugin-dir <path>`](/docs/zh-CN/plugins) | 从本地目录加载 plugin |

555| [`--mcp-config <file-or-json>`](/zh-CN/mcp) | 从配置文件或 JSON 字符串加载 MCP servers |555| [`--mcp-config <file-or-json>`](/docs/zh-CN/mcp) | 从配置文件或 JSON 字符串加载 MCP servers |

556| `--strict-mcp-config` | 仅使用来自 `--mcp-config` 的 MCP servers,忽略其他 MCP 配置 |556| `--strict-mcp-config` | 仅使用来自 `--mcp-config` 的 MCP servers,忽略其他 MCP 配置 |

557 557 

558对每个值重复 `--add-dir`、`--plugin-dir` 或 `--mcp-config`。空格分隔的形式,如 `--add-dir a b c`,不支持与 `claude agents` 一起使用。558对每个值重复 `--add-dir`、`--plugin-dir` 或 `--mcp-config`。空格分隔的形式,如 `--add-dir a b c`,不支持与 `claude agents` 一起使用。


603 603 

604调度 shell 的 `PATH` 以相同的方式应用到工作进程,因此会话运行的 shell 命令会找到你的终端所拥有的相同工具。在 v2.1.203 之前,后台会话保持启动监督进程的 shell 的 `PATH`,因此自那时以来添加到你的 `PATH` 的工具可能会丢失,最常见的是在 Windows 上。604调度 shell 的 `PATH` 以相同的方式应用到工作进程,因此会话运行的 shell 命令会找到你的终端所拥有的相同工具。在 v2.1.203 之前,后台会话保持启动监督进程的 shell 的 `PATH`,因此自那时以来添加到你的 `PATH` 的工具可能会丢失,最常见的是在 Windows 上。

605 605 

606后台会话不继承网关端点变量如 `ANTHROPIC_BASE_URL` 或等效的 Amazon Bedrock、Google Cloud 的 Agent Platform 和 Microsoft Foundry 基础 URL 变量,这些变量来自启动监督进程的 shell。如果没有在你调度的 shell 中导出网关,会话会使用你的存储凭证和项目目录的[设置](/zh-CN/settings)中 `env` 块中的任何 `env` 值。要在项目中指向[LLM 网关](/zh-CN/llm-gateway)的每个会话,在该项目的 `.claude/settings.json` `env` 块中设置 `ANTHROPIC_BASE_URL`。606后台会话不继承网关端点变量如 `ANTHROPIC_BASE_URL` 或等效的 Amazon Bedrock、Google Cloud 的 Agent Platform 和 Microsoft Foundry 基础 URL 变量,这些变量来自启动监督进程的 shell。如果没有在你调度的 shell 中导出网关,会话会使用你的存储凭证和项目目录的[设置](/docs/zh-CN/settings)中 `env` 块中的任何 `env` 值。要在项目中指向[LLM 网关](/docs/zh-CN/llm-gateway)的每个会话,在该项目的 `.claude/settings.json` `env` 块中设置 `ANTHROPIC_BASE_URL`。

607 607 

608{/* min-version: 2.1.203 */}如果你在调度的 shell 中导出网关 `ANTHROPIC_BASE_URL`,它会到达该会话的工作进程。`ANTHROPIC_CUSTOM_HEADERS` 和与它们一起导出的凭证会随之转发。这发生在监督进程从具有相同网关的环境启动时。监督进程从打开 agent view 或调度后台会话的第一个 shell 中捕获其环境,因此从网关 shell 启动会给它该环境。转发也仅适用于调度到你调度的目录中的会话,或从你自己的会话用 `←` 或 `/background` 后台化的会话:用 `@repo` 或 `--cwd` 调度到不同目录不会携带 shell 的网关,该项目的 `settings.json` `env` 块会改为提供端点。当监督进程的环境携带不同的网关或没有网关时,工作进程会针对默认端点保持你的存储凭证,而不是混合一个环境的凭证与另一个环境的端点。在 v2.1.203 之前,调度 shell 的 `ANTHROPIC_BASE_URL` 被丢弃,而与它一起导出的 `ANTHROPIC_API_KEY` 被保留,因此网关的密钥被发送到默认端点,每个请求都以 401 失败。608如果你在调度的 shell 中导出网关 `ANTHROPIC_BASE_URL`,它会到达该会话的工作进程。`ANTHROPIC_CUSTOM_HEADERS` 和与它们一起导出的凭证会随之转发。这发生在监督进程从具有相同网关的环境启动时。监督进程从打开 agent view 或调度后台会话的第一个 shell 中捕获其环境,因此从网关 shell 启动会给它该环境。转发也仅适用于调度到你调度的目录中的会话,或从你自己的会话用 `←` 或 `/background` 后台化的会话:用 `@repo` 或 `--cwd` 调度到不同目录不会携带 shell 的网关,该项目的 `settings.json` `env` 块会改为提供端点。当监督进程的环境携带不同的网关或没有网关时,工作进程会针对默认端点保持你的存储凭证,而不是混合一个环境的凭证与另一个环境的端点。在 v2.1.203 之前,调度 shell 的 `ANTHROPIC_BASE_URL` 被丢弃,而与它一起导出的 `ANTHROPIC_API_KEY` 被保留,因此网关的密钥被发送到默认端点,每个请求都以 401 失败。

609 609 

610转发的端点仅适用于该活跃进程,永远不会写入磁盘。当监督进程停止空闲会话并稍后重新启动它时,重新启动的进程会从你的设置中再次读取其端点:使用网关 `ANTHROPIC_AUTH_TOKEN` 它会回退到你的存储凭证,使用网关颁发的 `ANTHROPIC_API_KEY` 它可能会失败进行身份验证,直到网关在设置中设置。610转发的端点仅适用于该活跃进程,永远不会写入磁盘。当监督进程停止空闲会话并稍后重新启动它时,重新启动的进程会从你的设置中再次读取其端点:使用网关 `ANTHROPIC_AUTH_TOKEN` 它会回退到你的存储凭证,使用网关颁发的 `ANTHROPIC_API_KEY` 它可能会失败进行身份验证,直到网关在设置中设置。

611 611 


617 617 

618* 在此期间完成的后台 shell 命令会报告为已完成及其输出618* 在此期间完成的后台 shell 命令会报告为已完成及其输出

619* 动态工作流从中断处恢复619* 动态工作流从中断处恢复

620* [后台子代理](/zh-CN/sub-agents#run-subagents-in-foreground-or-background)从其自己的记录恢复620* [后台子代理](/docs/zh-CN/sub-agents#run-subagents-in-foreground-or-background)从其自己的记录恢复

621 621 

622{/* min-version: 2.1.198 */}从 v2.1.198 起,交付涵盖所有三项。在 v2.1.198 之前,它仅涵盖 shell 命令和工作流,因此后台子代理会随进程停止,并在下次唤醒时报告为失败。622从 v2.1.198 起,交付涵盖所有三项。在 v2.1.198 之前,它仅涵盖 shell 命令和工作流,因此后台子代理会随进程停止,并在下次唤醒时报告为失败。

623 623 

624其状态仅存在于进程内部的工作会随之停止而不是被交付。那是子代理启动的 shell 命令,恢复的子代理可以再次启动,以及运行中的[监视器](/zh-CN/tools-reference#monitor-tool),其事件流无法移动到另一个进程。624其状态仅存在于进程内部的工作会随之停止而不是被交付。那是子代理启动的 shell 命令,恢复的子代理可以再次启动,以及运行中的[监视器](/docs/zh-CN/tools-reference#monitor-tool),其事件流无法移动到另一个进程。

625 625 

626删除会话会停止它交付的所有内容。要让会话的所有后台工作随进程停止而不是被交付,将 [`CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF`](/zh-CN/env-vars#variables) 环境变量设置为 `1`。626删除会话会停止它交付的所有内容。要让会话的所有后台工作随进程停止而不是被交付,将 [`CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF`](/docs/zh-CN/env-vars#variables) 环境变量设置为 `1`。

627 627 

628重新启动的进程会找到[移入 worktree](#how-file-edits-are-isolated) 的会话的对话,该会话在任务中途移动:当记录不在会话启动的位置时,Claude Code 也会在存储库的已注册 worktree 下查找。在 v2.1.207 之前,在其进程停止后从 agent view 重新打开该会话可能会显示仅包含其原始提示的空对话,记录仍完整地保留在磁盘上;在 v2.1.207 或更高版本上再次打开会话会恢复它。628重新启动的进程会找到[移入 worktree](#how-file-edits-are-isolated) 的会话的对话,该会话在任务中途移动:当记录不在会话启动的位置时,Claude Code 也会在存储库的已注册 worktree 下查找。在 v2.1.207 之前,在其进程停止后从 agent view 重新打开该会话可能会显示仅包含其原始提示的空对话,记录仍完整地保留在磁盘上;在 v2.1.207 或更高版本上再次打开会话会恢复它。

629 629 


633 633 

634当主机内存不足时,监督进程首先停止空闲的非固定会话,仅在释放任何内容时才停止空闲的固定会话。634当主机内存不足时,监督进程首先停止空闲的非固定会话,仅在释放任何内容时才停止空闲的固定会话。

635 635 

636监督进程监视磁盘上安装的 Claude Code 二进制文件,在常规[自动更新程序](/zh-CN/setup#auto-updates)替换它后重新启动到新版本。这是本地文件监视,不是网络检查。后台会话是分离的进程,所以它们在重新启动期间继续运行,新的监督进程重新连接到它们。空闲的固定会话也会在原地重新启动到新版本,以便它获取更新而无需你重新附加。636监督进程监视磁盘上安装的 Claude Code 二进制文件,在常规[自动更新程序](/docs/zh-CN/setup#auto-updates)替换它后重新启动到新版本。这是本地文件监视,不是网络检查。后台会话是分离的进程,所以它们在重新启动期间继续运行,新的监督进程重新连接到它们。空闲的固定会话也会在原地重新启动到新版本,以便它获取更新而无需你重新附加。

637 637 

638一旦新的监督进程接管,它也会将剩余的空闲会话重新启动到新版本,在后台一次几个,在短暂延迟后,让在重新启动期间连接的终端首先重新连接。积极工作、等待你的输入或有终端连接的会话不会被中断;它在其进程下次重新启动时移动到新版本。在 v2.1.206 之前,监督进程每分钟仅将几个空闲会话移动到新版本,因此会话可能在更新后继续运行旧版本一段时间。638一旦新的监督进程接管,它也会将剩余的空闲会话重新启动到新版本,在后台一次几个,在短暂延迟后,让在重新启动期间连接的终端首先重新连接。积极工作、等待你的输入或有终端连接的会话不会被中断;它在其进程下次重新启动时移动到新版本。在 v2.1.206 之前,监督进程每分钟仅将几个空闲会话移动到新版本,因此会话可能在更新后继续运行旧版本一段时间。

639 639 


645 状态存储位置645 状态存储位置

646</h3>646</h3>

647 647 

648会话状态存储在你的 Claude Code 配置目录下。如果你设置了 [`CLAUDE_CONFIG_DIR`](/zh-CN/env-vars),监督进程使用该目录而不是 `~/.claude` 并作为单独的实例运行,具有其自己的会话。648会话状态存储在你的 Claude Code 配置目录下。如果你设置了 [`CLAUDE_CONFIG_DIR`](/docs/zh-CN/env-vars),监督进程使用该目录而不是 `~/.claude` 并作为单独的实例运行,具有其自己的会话。

649 649 

650| 路径 | 内容 |650| 路径 | 内容 |

651| :------------------------------- | :------------------------- |651| :------------------------------- | :------------------------- |


660 660 

661该命令还会在运行的监督进程版本与你调用的 `claude` 版本不同时发出警告,这发生在监督进程尚未重新启动到新版本的更新之后。警告显示两个版本,并告诉你运行 `claude daemon stop --any` 以获取新版本。当 Claude Code 作为操作系统服务安装时,建议的命令是 `claude daemon stop` 不带该标志。661该命令还会在运行的监督进程版本与你调用的 `claude` 版本不同时发出警告,这发生在监督进程尚未重新启动到新版本的更新之后。警告显示两个版本,并告诉你运行 `claude daemon stop --any` 以获取新版本。当 Claude Code 作为操作系统服务安装时,建议的命令是 `claude daemon stop` 不带该标志。

662 662 

663会话完整地保留该版本不匹配:更新会话 `state.json` 的较旧 Claude Code 版本会保留它不识别的字段并保持会话列出。{/* min-version: 2.1.200 */}`roster.json` 中的会话列表遵循相同的规则:重写它的较旧版本会保留较新版本写入的字段,因此由较新版本启动的会话保持可达并在监督进程重新启动后继续接受输入。在 v2.1.200 之前,较旧版本可能会在重写时删除这些字段。663会话完整地保留该版本不匹配:更新会话 `state.json` 的较旧 Claude Code 版本会保留它不识别的字段并保持会话列出。`roster.json` 中的会话列表遵循相同的规则:重写它的较旧版本会保留较新版本写入的字段,因此由较新版本启动的会话保持可达并在监督进程重新启动后继续接受输入。在 v2.1.200 之前,较旧版本可能会在重写时删除这些字段。

664 664 

665在 Windows 上,当守护进程的管道密钥文件被锁定或无法读取时,`claude daemon status` 会显示底层文件错误,而不是报告通用连接失败。665在 Windows 上,当守护进程的管道密钥文件被锁定或无法读取时,`claude daemon status` 会显示底层文件错误,而不是报告通用连接失败。

666 666 


668 关闭 agent view668 关闭 agent view

669</h3>669</h3>

670 670 

671要完全关闭后台代理和 agent view,将 `disableAgentView` [设置](/zh-CN/settings)设为 `true` 或设置 `CLAUDE_CODE_DISABLE_AGENT_VIEW` 环境变量。管理员可以通过[托管设置](/zh-CN/permissions#managed-settings)强制执行这个。671要完全关闭后台代理和 agent view,将 `disableAgentView` [设置](/docs/zh-CN/settings)设为 `true` 或设置 `CLAUDE_CODE_DISABLE_AGENT_VIEW` 环境变量。管理员可以通过[托管设置](/docs/zh-CN/permissions#managed-settings)强制执行这个。

672 672 

673<h2 id="troubleshooting">673<h2 id="troubleshooting">

674 故障排除674 故障排除


692 后台化显示 `Background this session?` 对话692 后台化显示 `Background this session?` 对话

693</h3>693</h3>

694 694 

695如果按 `←` 来后台当前会话显示 `Background this session?` 对话,会话有进行中的工作无法转移到后台会话,例如运行中的 [monitor](/zh-CN/tools-reference#monitor-tool),Claude Code 不会默默停止它。对话命名将被停止的工作,并分别计算转移的任务。运行 `/tasks` 查看正在运行的内容,然后确认无论如何后台或选择 `Stay` 让工作先完成。参见[从会话内部](#from-inside-a-session)了解哪些任务类型转移,哪些被停止。695如果按 `←` 来后台当前会话显示 `Background this session?` 对话,会话有进行中的工作无法转移到后台会话,例如运行中的 [monitor](/docs/zh-CN/tools-reference#monitor-tool),Claude Code 不会默默停止它。对话命名将被停止的工作,并分别计算转移的任务。运行 `/tasks` 查看正在运行的内容,然后确认无论如何后台或选择 `Stay` 让工作先完成。参见[从会话内部](#from-inside-a-session)了解哪些任务类型转移,哪些被停止。

696 696 

697<h3 id="prompt-rejected-as-too-short">697<h3 id="prompt-rejected-as-too-short">

698 提示被拒绝,因为太短698 提示被拒绝,因为太短


754 754 

755下一个 `claude agents` 或 `claude --bg` 启动一个新的监督进程,该进程读取你存储的凭证。如果你使用环境变量(如 `ANTHROPIC_API_KEY`)而不是 `/login` 进行身份验证,请从设置了该变量的 shell 运行下一个命令。755下一个 `claude agents` 或 `claude --bg` 启动一个新的监督进程,该进程读取你存储的凭证。如果你使用环境变量(如 `ANTHROPIC_API_KEY`)而不是 `/login` 进行身份验证,请从设置了该变量的 shell 运行下一个命令。

756 756 

757参见[错误参考](/zh-CN/errors#could-not-resolve-authentication-method)了解完整的原因和修复列表。757参见[错误参考](/docs/zh-CN/errors#could-not-resolve-authentication-method)了解完整的原因和修复列表。

758 758 

759<h3 id="background-sessions-can’t-read-desktop-documents-or-downloads-on-macos">759<h3 id="background-sessions-can’t-read-desktop-documents-or-downloads-on-macos">

760 后台会话无法在 macOS 上读取 Desktop、Documents 或 Downloads760 后台会话无法在 macOS 上读取 Desktop、Documents 或 Downloads


768 后台会话无法在 macOS 上访问本地网络主机768 后台会话无法在 macOS 上访问本地网络主机

769</h3>769</h3>

770 770 

771在 macOS 15 及更高版本上,系统会阻止进程访问你本地网络上的设备,直到你授予本地网络权限。在 v2.1.198 之前,后台会话主机从未请求该权限,所以针对 LAN 地址的命令失败,出现 `connect: no route to host`,即使相同的命令在前台终端中有效。{/* min-version: 2.1.198 */}从 v2.1.198 开始,后台会话中连接到本地网络地址的第一个命令会触发 Claude Code 的 macOS 本地网络权限提示。授予一次,这些命令就能像在前台终端中一样访问 LAN 主机。771在 macOS 15 及更高版本上,系统会阻止进程访问你本地网络上的设备,直到你授予本地网络权限。在 v2.1.198 之前,后台会话主机从未请求该权限,所以针对 LAN 地址的命令失败,出现 `connect: no route to host`,即使相同的命令在前台终端中有效。从 v2.1.198 开始,后台会话中连接到本地网络地址的第一个命令会触发 Claude Code 的 macOS 本地网络权限提示。授予一次,这些命令就能像在前台终端中一样访问 LAN 主机。

772 772 

773<h3 id="a-session-is-slow-to-respond-after-attaching">773<h3 id="a-session-is-slow-to-respond-after-attaching">

774 附加后会话响应缓慢774 附加后会话响应缓慢


782 `.claude/worktrees/` 填满了782 `.claude/worktrees/` 填满了

783</h3>783</h3>

784 784 

785在 agent view 中删除会话会删除 Claude 为其创建的 worktree,无法安全删除的 worktree [保持其会话行](#organize-the-list),这样它就不会被孤立。`claude rm` 保留具有未提交更改的 worktree 及其会话行,并打印保留的路径。在项目目录中用 `git worktree list` 列出剩余条目,并用 `git worktree remove <path>` 删除每个。参见[清理 worktrees](/zh-CN/worktrees#clean-up-worktrees)。785在 agent view 中删除会话会删除 Claude 为其创建的 worktree,无法安全删除的 worktree [保持其会话行](#organize-the-list),这样它就不会被孤立。`claude rm` 保留具有未提交更改的 worktree 及其会话行,并打印保留的路径。在项目目录中用 `git worktree list` 列出剩余条目,并用 `git worktree remove <path>` 删除每个。参见[清理 worktrees](/docs/zh-CN/worktrees#clean-up-worktrees)。

786 786 

787<h2 id="limitations">787<h2 id="limitations">

788 限制788 限制


800 800 

801有关以并行方式运行 Claude 的其他方法,请参阅:801有关以并行方式运行 Claude 的其他方法,请参阅:

802 802 

803* [并行运行代理](/zh-CN/agents):比较 agent view 与 subagents、agent teams 和 worktrees803* [并行运行代理](/docs/zh-CN/agents):比较 agent view 与 subagents、agent teams 和 worktrees

804* [Agent teams](/zh-CN/agent-teams):协调相互发送消息的多个会话804* [Agent teams](/docs/zh-CN/agent-teams):协调相互发送消息的多个会话

805* [Claude Code on the web](/zh-CN/claude-code-on-the-web):在托管的云环境中运行会话而不是本地805* [Claude Code on the web](/docs/zh-CN/claude-code-on-the-web):在托管的云环境中运行会话而不是本地

806 806 

807<h2 id="version-history">807<h2 id="version-history">

808 版本历史808 版本历史


811Agent view 在研究预览期间发展迅速。如果你使用较旧的 Claude Code 版本,本页上的某些行为可能会有所不同;特别是,`claude agents` 拒绝它尚不支持的标志,出现 `unknown option` 错误。下表列出了何时添加每个标志和行为。811Agent view 在研究预览期间发展迅速。如果你使用较旧的 Claude Code 版本,本页上的某些行为可能会有所不同;特别是,`claude agents` 拒绝它尚不支持的标志,出现 `unknown option` 错误。下表列出了何时添加每个标志和行为。

812 812 

813| 版本 | 更改 |813| 版本 | 更改 |

814| -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |814| -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

815| v2.1.208 | {/* min-version: 2.1.208 */}附加到一个进程已停止的会话会显示其记录的最后一屏,而进程启动,而不是仅显示 `Session is starting` 注记。无法传递的回复(因为后台服务无法访问或发送失败)会被保存,并在会话的进程再次启动时作为会话的下一个提示发送;在此版本之前,后台服务无法访问时丢失的回复会被丢弃。其自身二进制文件被更新替换的进程仍然可以从已安装的 `claude` 启动器或磁盘上的最新版本启动监督进程,而不是在 Claude Code 重新启动之前失败。运行较旧版本的监督进程永远不会将由较新版本启动的空闲会话重新启动到其自身的较旧二进制文件上。删除会话会删除其 worktree,即使会话将 worktree 移到了不同的分支,并在 worktree 有未推送到任何地方的提交或另一个会话声称它时将 worktree 与会话行保持在一起,而不是销毁提交或孤立 worktree。`/install-github-app` 和 `/mcp` 设置列表及其身份验证操作在后台会话中被拒绝,并显示替代方案的消息;仅在 v2.1.208 中,`/model` 选择器以相同方式被拒绝,键入的 `/model <name>` 仅切换该会话,而不是也保存你的默认模型。 |815| v2.1.208 | 附加到一个进程已停止的会话会显示其记录的最后一屏,而进程启动,而不是仅显示 `Session is starting` 注记。无法传递的回复(因为后台服务无法访问或发送失败)会被保存,并在会话的进程再次启动时作为会话的下一个提示发送;在此版本之前,后台服务无法访问时丢失的回复会被丢弃。其自身二进制文件被更新替换的进程仍然可以从已安装的 `claude` 启动器或磁盘上的最新版本启动监督进程,而不是在 Claude Code 重新启动之前失败。运行较旧版本的监督进程永远不会将由较新版本启动的空闲会话重新启动到其自身的较旧二进制文件上。删除会话会删除其 worktree,即使会话将 worktree 移到了不同的分支,并在 worktree 有未推送到任何地方的提交或另一个会话声称它时将 worktree 与会话行保持在一起,而不是销毁提交或孤立 worktree。`/install-github-app` 和 `/mcp` 设置列表及其身份验证操作在后台会话中被拒绝,并显示替代方案的消息;仅在 v2.1.208 中,`/model` 选择器以相同方式被拒绝,键入的 `/model <name>` 仅切换该会话,而不是也保存你的默认模型。 |

816| v2.1.207 | {/* min-version: 2.1.207 */}窥视面板以行截断的句子打开,例如等待你的会话的确切问题,并显示被阻止的会话已等待多长时间作为单个 `waiting 3m` 行,而不是将相同的时间戳前缀添加到状态句子和问题。在调度输入中再次粘贴相同的文本会展开折叠的 `[Pasted text #N]` 占位符,而不是添加第二个。按名称接受计划的后台会话在其行上显示该名称。移入 worktree 的后台会话在其进程从 agent view 重新启动时保持其对话。 |816| v2.1.207 | 窥视面板以行截断的句子打开,例如等待你的会话的确切问题,并显示被阻止的会话已等待多长时间作为单个 `waiting 3m` 行,而不是将相同的时间戳前缀添加到状态句子和问题。在调度输入中再次粘贴相同的文本会展开折叠的 `[Pasted text #N]` 占位符,而不是添加第二个。按名称接受计划的后台会话在其行上显示该名称。移入 worktree 的后台会话在其进程从 agent view 重新启动时保持其对话。 |

817| v2.1.206 | {/* min-version: 2.1.206 */}行摘要填充行的剩余宽度,仅在终端的右边缘截断,而不是在 64 列处。监督进程重新启动到新的 Claude Code 版本后,它在后台将剩余的空闲后台会话重新启动到该版本,而不是每分钟几个。使用 `Ctrl+X` 或 `claude rm` 删除会话也会将其从监督进程的会话列表中清除,因此行在监督进程重新启动后不再重新出现。 |817| v2.1.206 | 行摘要填充行的剩余宽度,仅在终端的右边缘截断,而不是在 64 列处。监督进程重新启动到新的 Claude Code 版本后,它在后台将剩余的空闲后台会话重新启动到该版本,而不是每分钟几个。使用 `Ctrl+X` 或 `claude rm` 删除会话也会将其从监督进程的会话列表中清除,因此行在监督进程重新启动后不再重新出现。 |

818| v2.1.205 | {/* min-version: 2.1.205 */}行摘要显示会话自己的单行报告,在 64 列处截断,而不是原始工具调用或 `done/total` 计数;按目录分组的行以彩色状态词打开。窥视面板以完整状态句子打开,对于等待你的会话,其精确问题显示在回复输入上方。编辑、评论、关闭或使用 `gh` 标记拉取请求为就绪的会话与其关联,不仅仅是创建或检出拉取请求的会话,推送即使本地分支名称不匹配也会关联拉取请求,创建命令的输出超过内联限制的拉取请求也会关联。没有可读文本的转向保持会话的前一个状态,而不是将其翻转回 `Working`。`claude attach` 等待重新启动的会话长达约 60 秒,带有命名原因的状态行,而不是失败。 |818| v2.1.205 | 行摘要显示会话自己的单行报告,在 64 列处截断,而不是原始工具调用或 `done/total` 计数;按目录分组的行以彩色状态词打开。窥视面板以完整状态句子打开,对于等待你的会话,其精确问题显示在回复输入上方。编辑、评论、关闭或使用 `gh` 标记拉取请求为就绪的会话与其关联,不仅仅是创建或检出拉取请求的会话,推送即使本地分支名称不匹配也会关联拉取请求,创建命令的输出超过内联限制的拉取请求也会关联。没有可读文本的转向保持会话的前一个状态,而不是将其翻转回 `Working`。`claude attach` 等待重新启动的会话长达约 60 秒,带有命名原因的状态行,而不是失败。 |

819| v2.1.203 | {/* min-version: 2.1.203 */}在调度 shell 中导出的网关 `ANTHROPIC_BASE_URL` 当监督进程共享该网关环境时,会到达从它调度的会话进入同一目录,而不是在保留随之导出的 API 密钥时被丢弃。调度 shell 的 `PATH` 应用于每个会话的工作进程。在子代理运行时按 `←` 会等待它们,而不是在十秒后重新启动它们。空列表始终显示部分标题及其下方的描述。在调度输入中键入 `@` 也会列出启动存储库内其目录树中的已注册 git worktrees。从 `effortLevel` 设置继承的工作量在该设置的后续编辑后跟随,而不是在调度时固定。打开一个已停止的会话(其对话已在另一个运行中的会话中打开)会被拒绝并显示消息,而不是导致行失败。在 agent view 中不可用的命令会在输入中保留已键入的文本。在 git 存储库外失败的 `WorktreeCreate` hook 不再阻止会话编辑文件。 |819| v2.1.203 | 在调度 shell 中导出的网关 `ANTHROPIC_BASE_URL` 当监督进程共享该网关环境时,会到达从它调度的会话进入同一目录,而不是在保留随之导出的 API 密钥时被丢弃。调度 shell 的 `PATH` 应用于每个会话的工作进程。在子代理运行时按 `←` 会等待它们,而不是在十秒后重新启动它们。空列表始终显示部分标题及其下方的描述。在调度输入中键入 `@` 也会列出启动存储库内其目录树中的已注册 git worktrees。从 `effortLevel` 设置继承的工作量在该设置的后续编辑后跟随,而不是在调度时固定。打开一个已停止的会话(其对话已在另一个运行中的会话中打开)会被拒绝并显示消息,而不是导致行失败。在 agent view 中不可用的命令会在输入中保留已键入的文本。在 git 存储库外失败的 `WorktreeCreate` hook 不再阻止会话编辑文件。 |

820| v2.1.202 | {/* min-version: 2.1.202 */}使用 `/rename` 或 `Ctrl+R` 在后台会话上设置的名称在监督进程停止并重新启动时保持不变,而不是恢复为会话调度时的名称。 |820| v2.1.202 | 使用 `/rename` 或 `Ctrl+R` 在后台会话上设置的名称在监督进程停止并重新启动时保持不变,而不是恢复为会话调度时的名称。 |

821| v2.1.200 | {/* min-version: 2.1.200 */}重写 `roster.json` 中会话列表的较旧 Claude Code 版本保留由较新版本写入的字段,与现有的 `state.json` 保证相匹配,因此由较新版本启动的会话在监督进程重新启动后继续接受输入。当你打开已停止响应的会话时,监督进程重新启动其进程,会话从中断处继续响应。 |821| v2.1.200 | 重写 `roster.json` 中会话列表的较旧 Claude Code 版本保留由较新版本写入的字段,与现有的 `state.json` 保证相匹配,因此由较新版本启动的会话在监督进程重新启动后继续接受输入。当你打开已停止响应的会话时,监督进程重新启动其进程,会话从中断处继续响应。 |

822| v2.1.199 | {/* min-version: 2.1.199 */}后台会话的进程在低内存主机上完成启动前退出时,其行状态显示 `possibly low memory — free some up and retry` 而不仅仅是裸退出原因。使用 `←` 或 `/background` 后台会话时将其 `/color` 转移到新行。 |822| v2.1.199 | 后台会话的进程在低内存主机上完成启动前退出时,其行状态显示 `possibly low memory — free some up and retry` 而不仅仅是裸退出原因。使用 `←` 或 `/background` 后台会话时将其 `/color` 转移到新行。 |

823| v2.1.198 | {/* min-version: 2.1.198 */}Agent view 在后台会话需要输入、完成或失败时通过 `preferredNotifChannel` 发送通知,并使用 `agent_needs_input` 或 `agent_completed` 类型触发 `Notification` hook。`←` 和 `/exit` 在 `claude attach <id>` 内返回 agent view 而不是退出到 shell;`Ctrl+Z` 返回到 shell。后台会话在 worktree 中隔离其工作,提交、推送其自己的隔离分支,从不 `main` 或 `master`,并在完成时打开草稿拉取请求而不是先询问。`/login` 在 agent view 中运行并打开登录对话框。`Background work is running` 退出对话框提供 `Move to background and exit`。退出交付也涵盖后台子代理,它们在下次唤醒时从其记录恢复,而不是被报告为失败。`claude --bg` 与 `-p` 或 `--print` 结合被拒绝并出现错误。 |823| v2.1.198 | Agent view 在后台会话需要输入、完成或失败时通过 `preferredNotifChannel` 发送通知,并使用 `agent_needs_input` 或 `agent_completed` 类型触发 `Notification` hook。`←` 和 `/exit` 在 `claude attach <id>` 内返回 agent view 而不是退出到 shell;`Ctrl+Z` 返回到 shell。后台会话在 worktree 中隔离其工作,提交、推送其自己的隔离分支,从不 `main` 或 `master`,并在完成时打开草稿拉取请求而不是先询问。`/login` 在 agent view 中运行并打开登录对话框。`Background work is running` 退出对话框提供 `Move to background and exit`。退出交付也涵盖后台子代理,它们在下次唤醒时从其记录恢复,而不是被报告为失败。`claude --bg` 与 `-p` 或 `--print` 结合被拒绝并出现错误。 |

824| v2.1.196 | {/* min-version: 2.1.196 */}单次 `←` 按压后台前台会话;早期版本需要两次按压,带有页脚提示和确认。`--dangerously-skip-permissions` 传递给 `claude agents` 显示绕过免责声明而不是被默默丢弃。你从未命名的交互式会话在会话列表和 `claude agents --json` 中携带默认名称,例如 `my-app-3f`。后台 shell 命令和动态工作流在会话的进程被停止、重新启动或更新时存活,包括在 Windows 上;设置 `CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF=1` 关闭交付。在重新启动时误读为空的记录被重命名为 `.orphaned-` 后缀而不是删除。 |824| v2.1.196 | 单次 `←` 按压后台前台会话;早期版本需要两次按压,带有页脚提示和确认。`--dangerously-skip-permissions` 传递给 `claude agents` 显示绕过免责声明而不是被默默丢弃。你从未命名的交互式会话在会话列表和 `claude agents --json` 中携带默认名称,例如 `my-app-3f`。后台 shell 命令和动态工作流在会话的进程被停止、重新启动或更新时存活,包括在 Windows 上;设置 `CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF=1` 关闭交付。在重新启动时误读为空的记录被重命名为 `.orphaned-` 后缀而不是删除。 |

825| v2.1.195 | {/* min-version: 2.1.195 */}进行中的工作在 Windows 上后台会话时也转移;设置 `CLAUDE_DISABLE_ADOPT=1` 改为停止它。`Completed` 组填充剩余的垂直空间,标题在短终端上压缩。较旧的 Claude Code 版本不再丢弃较新会话的 `state.json` 字段或从 `claude agents` 隐藏这些会话。附加到停止的会话立即切换而不是显示空白屏幕长达五秒。无法接受连接的监督进程自行退出并释放其锁。 |825| v2.1.195 | 进行中的工作在 Windows 上后台会话时也转移;设置 `CLAUDE_DISABLE_ADOPT=1` 改为停止它。`Completed` 组填充剩余的垂直空间,标题在短终端上压缩。较旧的 Claude Code 版本不再丢弃较新会话的 `state.json` 字段或从 `claude agents` 隐藏这些会话。附加到停止的会话立即切换而不是显示空白屏幕长达五秒。无法接受连接的监督进程自行退出并释放其锁。 |

826| v2.1.174 | {/* min-version: 2.1.174 */}后台会话不再从监督进程的启动 shell 继承网关端点变量如 `ANTHROPIC_BASE_URL`;监督进程向预热工作进程提供新的凭证快照,修复虚假的 `Could not resolve authentication method` 错误。 |826| v2.1.174 | 后台会话不再从监督进程的启动 shell 继承网关端点变量如 `ANTHROPIC_BASE_URL`;监督进程向预热工作进程提供新的凭证快照,修复虚假的 `Could not resolve authentication method` 错误。 |

827| v2.1.172 | {/* min-version: 2.1.172 */}调度输入中的 `/model` 设置会话范围的调度模型覆盖。 |827| v2.1.172 | 调度输入中的 `/model` 设置会话范围的调度模型覆盖。 |

828| v2.1.161 | {/* min-version: 2.1.161 */}行摘要显示并行工作项的 `done/total` 计数;窥视面板命名最长运行的并行工作项。 |828| v2.1.161 | 行摘要显示并行工作项的 `done/total` 计数;窥视面板命名最长运行的并行工作项。 |

829| v2.1.157 | {/* min-version: 2.1.157 */}`claude agents` 接受 `--agent`;调度的会话尊重 `agent` 设置。 |829| v2.1.157 | `claude agents` 接受 `--agent`;调度的会话尊重 `agent` 设置。 |

830| v2.1.145 | {/* min-version: 2.1.145 */}窥视面板回复输入和调度输入中支持语音听写。 |830| v2.1.145 | 窥视面板回复输入和调度输入中支持语音听写。 |

831| v2.1.143 | {/* min-version: 2.1.143 */}添加 `worktree.bgIsolation` 设置;`claude agents` 接受 `--allow-dangerously-skip-permissions`。 |831| v2.1.143 | 添加 `worktree.bgIsolation` 设置;`claude agents` 接受 `--allow-dangerously-skip-permissions`。 |

832| v2.1.142 | {/* min-version: 2.1.142 */}`claude agents` 接受 `--permission-mode`、`--model`、`--effort`、`--dangerously-skip-permissions`、`--settings`、`--add-dir`、`--plugin-dir`、`--mcp-config` 和 `--strict-mcp-config`。 |832| v2.1.142 | `claude agents` 接受 `--permission-mode`、`--model`、`--effort`、`--dangerously-skip-permissions`、`--settings`、`--add-dir`、`--plugin-dir`、`--mcp-config` 和 `--strict-mcp-config`。 |

833| v2.1.141 | {/* min-version: 2.1.141 */}`claude agents` 接受 `--cwd` 以将列表范围限定到一个项目。 |833| v2.1.141 | `claude agents` 接受 `--cwd` 以将列表范围限定到一个项目。 |

834| v2.1.139 | {/* min-version: 2.1.139 */}Agent view 作为研究预览版引入。 |834| v2.1.139 | Agent view 作为研究预览版引入。 |

agents.md +25 −25

Details

6 6 

7> 比较 Claude Code 同时处理多个任务的方式:子代理、代理视图、代理团队和动态工作流。7> 比较 Claude Code 同时处理多个任务的方式:子代理、代理视图、代理团队和动态工作流。

8 8 

9[子代理](/zh-CN/sub-agents)、[代理视图](/zh-CN/agent-view)、[代理团队](/zh-CN/agent-teams) 和 [动态工作流](/zh-CN/workflows) 各自以不同的方式并行化工作。正确的选择取决于您是否想在每个对话中保持参与、交付任务并稍后检查,或让 Claude 为您协调一组工作人员。9[子代理](/docs/zh-CN/sub-agents)、[代理视图](/docs/zh-CN/agent-view)、[代理团队](/docs/zh-CN/agent-teams) 和 [动态工作流](/docs/zh-CN/workflows) 各自以不同的方式并行化工作。正确的选择取决于您是否想在每个对话中保持参与、交付任务并稍后检查,或让 Claude 为您协调一组工作人员。

10 10 

11| 方法 | 它提供什么 | 何时使用 |11| 方法 | 它提供什么 | 何时使用 |

12| :------------------------- | :---------------------------------------------- | :----------------------------------------------------------------------- |12| :------------------------- | :---------------------------------------------- | :----------------------------------------------------------------------- |

13| [子代理](/zh-CN/sub-agents) | 在一个会话内的委派工作人员,在自己的上下文中执行辅助任务并返回摘要 | 辅助任务会用搜索结果、日志或文件内容淹没您的主对话,而您不会再次引用这些内容 |13| [子代理](/docs/zh-CN/sub-agents) | 在一个会话内的委派工作人员,在自己的上下文中执行辅助任务并返回摘要 | 辅助任务会用搜索结果、日志或文件内容淹没您的主对话,而您不会再次引用这些内容 |

14| [代理视图](/zh-CN/agent-view) | 一个屏幕来分派和监控在后台运行的会话,使用 `claude agents` 打开。研究预览 | 您有多个独立任务,想要交付它们,一目了然地检查状态,并仅在需要时介入 |14| [代理视图](/docs/zh-CN/agent-view) | 一个屏幕来分派和监控在后台运行的会话,使用 `claude agents` 打开。研究预览 | 您有多个独立任务,想要交付它们,一目了然地检查状态,并仅在需要时介入 |

15| [代理团队](/zh-CN/agent-teams) | 多个协调的会话,具有共享任务列表和代理间消息传递,由主导者管理。实验性功能,默认禁用 | 您希望 Claude 将项目分成多个部分、分配它们,并保持工作人员同步 |15| [代理团队](/docs/zh-CN/agent-teams) | 多个协调的会话,具有共享任务列表和代理间消息传递,由主导者管理。实验性功能,默认禁用 | 您希望 Claude 将项目分成多个部分、分配它们,并保持工作人员同步 |

16| [动态工作流](/zh-CN/workflows) | 一个脚本,运行许多子代理并交叉检查其结果,用于一个太大而无法一次协调的工作或需要多次处理的工作 | 一个任务对于少数几个子代理来说太大了,或者您想要对结果进行相互验证:代码库范围的审计、500 个文件的迁移、交叉检查的研究或从多个角度起草的计划 |16| [动态工作流](/docs/zh-CN/workflows) | 一个脚本,运行许多子代理并交叉检查其结果,用于一个太大而无法一次协调的工作或需要多次处理的工作 | 一个任务对于少数几个子代理来说太大了,或者您想要对结果进行相互验证:代码库范围的审计、500 个文件的迁移、交叉检查的研究或从多个角度起草的计划 |

17 17 

18在每种方法中,工作人员都是 Claude 会话。要涉及不同的工具,请将其作为 [MCP server](/zh-CN/mcp) 公开给 Claude。18在每种方法中,工作人员都是 Claude 会话。要涉及不同的工具,请将其作为 [MCP server](/docs/zh-CN/mcp) 公开给 Claude。

19 19 

20还有两个工具支持这项工作,但它们本身不是运行代理的方式:20还有两个工具支持这项工作,但它们本身不是运行代理的方式:

21 21 

22* [Worktrees](/zh-CN/worktrees) 为每个会话提供单独的 git 检出,因此并行会话永远不会编辑相同的文件。将它们用于您自己运行的会话。代理视图会自动将每个分派的会话移到自己的 worktree 中,您生成的子代理也可以各自获得一个。22* [Worktrees](/docs/zh-CN/worktrees) 为每个会话提供单独的 git 检出,因此并行会话永远不会编辑相同的文件。将它们用于您自己运行的会话。代理视图会自动将每个分派的会话移到自己的 worktree 中,您生成的子代理也可以各自获得一个。

23* [`/batch`](/zh-CN/commands) 是一个 [skill](/zh-CN/skills),它让 Claude 将一个大型更改分成 5 到 30 个 worktree 隔离的子代理,每个都打开一个拉取请求。它是子代理和 worktrees 的打包使用,不是一个单独的协调风格。23* [`/batch`](/docs/zh-CN/commands) 是一个 [skill](/docs/zh-CN/skills),它让 Claude 将一个大型更改分成 5 到 30 个 worktree 隔离的子代理,每个都打开一个拉取请求。它是子代理和 worktrees 的打包使用,不是一个单独的协调风格。

24 24 

25还有一些其他功能在没有您驱动每一步的情况下运行 Claude,但它们解决的问题与在代理之间分割工作不同:25还有一些其他功能在没有您驱动每一步的情况下运行 Claude,但它们解决的问题与在代理之间分割工作不同:

26 26 

27* [后台 bash 命令](/zh-CN/interactive-mode#background-bash-commands) 运行一个 shell 命令而不阻止对话。它不会生成代理。27* [后台 bash 命令](/docs/zh-CN/interactive-mode#background-bash-commands) 运行一个 shell 命令而不阻止对话。它不会生成代理。

28* [分叉子代理](/zh-CN/sub-agents#fork-the-current-conversation) 是一个继承您完整对话上下文而不是从头开始的子代理。它是生成子代理的一种方式,不是一个单独的界面。28* [分叉子代理](/docs/zh-CN/sub-agents#fork-the-current-conversation) 是一个继承您完整对话上下文而不是从头开始的子代理。它是生成子代理的一种方式,不是一个单独的界面。

29* [routine](/zh-CN/routines) 在 Anthropic 的云中按计划运行会话,而不是在您的机器上并行运行。29* [routine](/docs/zh-CN/routines) 在 Anthropic 的云中按计划运行会话,而不是在您的机器上并行运行。

30 30 

31<Note>31<Note>

32 同时运行多个会话或子代理会增加令牌使用量。有关使用情况和速率限制详情,请参阅 [Costs](/zh-CN/costs)。32 同时运行多个会话或子代理会增加令牌使用量。有关使用情况和速率限制详情,请参阅 [Costs](/docs/zh-CN/costs)。

33</Note>33</Note>

34 34 

35<h2 id="choose-an-approach">35<h2 id="choose-an-approach">


39正确的方法取决于谁协调工作、工作人员是否需要通信以及他们是否编辑相同的文件:39正确的方法取决于谁协调工作、工作人员是否需要通信以及他们是否编辑相同的文件:

40 40 

41* **谁协调工作?**41* **谁协调工作?**

42 * Claude 在一个对话中委派和收集结果:[子代理](/zh-CN/sub-agents)42 * Claude 在一个对话中委派和收集结果:[子代理](/docs/zh-CN/sub-agents)

43 * 您交付独立任务并稍后检查:[代理视图](/zh-CN/agent-view)43 * 您交付独立任务并稍后检查:[代理视图](/docs/zh-CN/agent-view)

44 * Claude 计划、分配和监督一组工作人员:[代理团队](/zh-CN/agent-teams),实验性功能,默认禁用44 * Claude 计划、分配和监督一组工作人员:[代理团队](/docs/zh-CN/agent-teams),实验性功能,默认禁用

45 * 脚本而不是 Claude 的逐轮判断来保持协调:[动态工作流](/zh-CN/workflows)。请参阅[工作流与子代理和 skills 的比较](/zh-CN/workflows#when-to-use-a-workflow)45 * 脚本而不是 Claude 的逐轮判断来保持协调:[动态工作流](/docs/zh-CN/workflows)。请参阅[工作流与子代理和 skills 的比较](/docs/zh-CN/workflows#when-to-use-a-workflow)

46* **工作人员需要相互交谈吗?** 子代理将结果报告回生成它们的对话,代理视图会话仅向您报告。代理团队中的队友共享任务列表并直接相互发送消息。46* **工作人员需要相互交谈吗?** 子代理将结果报告回生成它们的对话,代理视图会话仅向您报告。代理团队中的队友共享任务列表并直接相互发送消息。

47* **任务是否接触相同的文件?** 使用 [worktrees](/zh-CN/worktrees) 隔离工作。子代理和您自己运行的会话可以各自使用单独的 worktree。代理团队不会在 worktrees 中隔离队友,因此[分区工作](/zh-CN/agent-teams#avoid-file-conflicts),以便每个队友拥有不同的文件集。47* **任务是否接触相同的文件?** 使用 [worktrees](/docs/zh-CN/worktrees) 隔离工作。子代理和您自己运行的会话可以各自使用单独的 worktree。代理团队不会在 worktrees 中隔离队友,因此[分区工作](/docs/zh-CN/agent-teams#avoid-file-conflicts),以便每个队友拥有不同的文件集。

48 48 

49<h2 id="check-on-running-work">49<h2 id="check-on-running-work">

50 检查运行中的工作50 检查运行中的工作


52 52 

53检查运行中工作的命令取决于您使用的方法:53检查运行中工作的命令取决于您使用的方法:

54 54 

55* 对于后台会话,`claude agents` 打开 [代理视图](/zh-CN/agent-view):一个屏幕显示每个会话、其状态以及哪些需要您的输入。55* 对于后台会话,`claude agents` 打开 [代理视图](/docs/zh-CN/agent-view):一个屏幕显示每个会话、其状态以及哪些需要您的输入。

56* 对于当前会话中的子代理,命名的后台子代理出现在 @-mention 类型提前中,显示其状态。{/* min-version: 2.1.198 */}从 v2.1.198 开始,`/agents` 不再打开面板;它打印一个通知,指向子代理文件位置。要 [创建和编辑自定义子代理](/zh-CN/sub-agents#configure-subagents),请询问 Claude 或直接编辑文件。尽管名称相似,`/agents` 与 `claude agents` 是分开的。56* 对于当前会话中的子代理,命名的后台子代理出现在 @-mention 类型提前中,显示其状态。从 v2.1.198 开始,`/agents` 不再打开面板;它打印一个通知,指向子代理文件位置。要 [创建和编辑自定义子代理](/docs/zh-CN/sub-agents#configure-subagents),请询问 Claude 或直接编辑文件。尽管名称相似,`/agents` 与 `claude agents` 是分开的。

57* 对于当前会话后台运行的任何内容,`/tasks` 列出每个项目,让您检查、附加到或停止它。该列表还包括已完成的子代理。57* 对于当前会话后台运行的任何内容,`/tasks` 列出每个项目,让您检查、附加到或停止它。该列表还包括已完成的子代理。

58* 对于动态工作流,`/workflows` 列出运行和已完成的运行、每个运行所处的阶段以及有多少代理已完成。58* 对于动态工作流,`/workflows` 列出运行和已完成的运行、每个运行所处的阶段以及有多少代理已完成。

59 59 

60有关所有会话的桌面视图,请参阅 [桌面应用中的并行会话](/zh-CN/desktop#work-in-parallel-with-sessions)。60有关所有会话的桌面视图,请参阅 [桌面应用中的并行会话](/docs/zh-CN/desktop#work-in-parallel-with-sessions)。

61 61 

62<h2 id="learn-more">62<h2 id="learn-more">

63 了解更多63 了解更多


65 65 

66下面的每个指南涵盖一种方法的设置和配置:66下面的每个指南涵盖一种方法的设置和配置:

67 67 

68* [创建自定义子代理](/zh-CN/sub-agents):定义可重用的专家并控制他们可以使用的工具。68* [创建自定义子代理](/docs/zh-CN/sub-agents):定义可重用的专家并控制他们可以使用的工具。

69* [使用代理视图管理代理](/zh-CN/agent-view):分派会话、观察其状态,并在需要时附加。69* [使用代理视图管理代理](/docs/zh-CN/agent-view):分派会话、观察其状态,并在需要时附加。

70* [编排代理团队](/zh-CN/agent-teams):设置主导者和队友、分配任务并审查他们的工作。70* [编排代理团队](/docs/zh-CN/agent-teams):设置主导者和队友、分配任务并审查他们的工作。

71* [编排动态工作流](/zh-CN/workflows):运行捆绑的工作流或让 Claude 编写一个运行许多子代理并相互验证其发现的工作流。71* [编排动态工作流](/docs/zh-CN/workflows):运行捆绑的工作流或让 Claude 编写一个运行许多子代理并相互验证其发现的工作流。

72* [使用 worktrees 运行并行会话](/zh-CN/worktrees):在隔离的检出中启动 Claude、控制复制的内容并在之后清理。72* [使用 worktrees 运行并行会话](/docs/zh-CN/worktrees):在隔离的检出中启动 Claude、控制复制的内容并在之后清理。

amazon-bedrock.md +28 −28

Details

107 </Step>107 </Step>

108 108 

109 <Step title="按照向导提示操作">109 <Step title="按照向导提示操作">

110 选择您如何向 AWS 进行身份验证:从您的 `~/.aws` 目录检测到的 AWS 配置文件、Amazon Bedrock API 密钥、访问密钥和密钥,或已在您的环境中的凭证。向导会获取您的区域,验证您的账户可以调用哪些 Claude 模型,并让您固定它们。它将结果保存到您的[用户设置文件](/zh-CN/settings)的 `env` 块中,因此您无需自己导出环境变量。110 选择您如何向 AWS 进行身份验证:从您的 `~/.aws` 目录检测到的 AWS 配置文件、Amazon Bedrock API 密钥、访问密钥和密钥,或已在您的环境中的凭证。向导会获取您的区域,验证您的账户可以调用哪些 Claude 模型,并让您固定它们。它将结果保存到您的[用户设置文件](/docs/zh-CN/settings)的 `env` 块中,因此您无需自己导出环境变量。

111 </Step>111 </Step>

112</Steps>112</Steps>

113 113 

114登录后,随时运行 `/setup-bedrock` 重新打开向导并更改您的凭证、区域或模型固定。模型固定步骤从您当前固定的模型开始。向导写入 `~/.claude/settings.json`,或在设置了 [`CLAUDE_CONFIG_DIR`](/zh-CN/env-vars#variables) 时写入 `$CLAUDE_CONFIG_DIR/settings.json`。114登录后,随时运行 `/setup-bedrock` 重新打开向导并更改您的凭证、区域或模型固定。模型固定步骤从您当前固定的模型开始。向导写入 `~/.claude/settings.json`,或在设置了 [`CLAUDE_CONFIG_DIR`](/docs/zh-CN/env-vars#variables) 时写入 `$CLAUDE_CONFIG_DIR/settings.json`。

115 115 

116<h2 id="set-up-manually">116<h2 id="set-up-manually">

117 手动设置117 手动设置


162export AWS_PROFILE=your-profile-name162export AWS_PROFILE=your-profile-name

163```163```

164 164 

165Claude Code 从 IAM Identity Center 区域请求角色凭证,该区域由配置文件的 `sso_region` 命名,不需要与您运行 Amazon Bedrock 的区域匹配。{/* min-version: 2.1.208 */}在 v2.1.207 中,Amazon Bedrock 区域覆盖了 `sso_region`,因此其 IAM Identity Center 实例在不同区域的配置文件无法使用 `Session token not found or invalid` 错误进行身份验证。165Claude Code 从 IAM Identity Center 区域请求角色凭证,该区域由配置文件的 `sso_region` 命名,不需要与您运行 Amazon Bedrock 的区域匹配。在 v2.1.207 中,Amazon Bedrock 区域覆盖了 `sso_region`,因此其 IAM Identity Center 实例在不同区域的配置文件无法使用 `Session token not found or invalid` 错误进行身份验证。

166 166 

167**选项 D:AWS 管理控制台凭证**167**选项 D:AWS 管理控制台凭证**

168 168 


188 188 

189在 v2.1.207 之前,Claude Code 在每个 API 请求时解析链,因此 SSO 支持的配置文件每次都从 IAM Identity Center 请求新凭证,在大型部署中可能会被限流。189在 v2.1.207 之前,Claude Code 在每个 API 请求时解析链,因此 SSO 支持的配置文件每次都从 IAM Identity Center 请求新凭证,在大型部署中可能会被限流。

190 190 

191缓存涵盖上面的每个凭证选项,除了 Amazon Bedrock API 密钥,它不使用提供商链。要改为在每个请求时解析链,请设置 [`CLAUDE_CODE_SKIP_AWS_CRED_CACHE=1`](/zh-CN/env-vars)。191缓存涵盖上面的每个凭证选项,除了 Amazon Bedrock API 密钥,它不使用提供商链。要改为在每个请求时解析链,请设置 [`CLAUDE_CODE_SKIP_AWS_CRED_CACHE=1`](/docs/zh-CN/env-vars)。

192 192 

193链的每次解析在 60 秒后超时。如果链中的一个步骤停滞,例如等待无法接收的输入的 `credential_process` 帮助程序,请求会失败,显示 [`AWS default-chain credential resolve timed out`](/zh-CN/errors#aws-default-chain-credential-resolve-timed-out)。如果您的链运行合法需要更长时间的交互式登录,例如通过 `aws-vault` 等包装器进行基于浏览器的 SSO 和 MFA,请使用 [`CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS`](/zh-CN/env-vars) 以毫秒为单位提高限制。在 v2.1.207 之前,停滞的凭证解析会使请求无限期等待。193链的每次解析在 60 秒后超时。如果链中的一个步骤停滞,例如等待无法接收的输入的 `credential_process` 帮助程序,请求会失败,显示 [`AWS default-chain credential resolve timed out`](/docs/zh-CN/errors#aws-default-chain-credential-resolve-timed-out)。如果您的链运行合法需要更长时间的交互式登录,例如通过 `aws-vault` 等包装器进行基于浏览器的 SSO 和 MFA,请使用 [`CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS`](/docs/zh-CN/env-vars) 以毫秒为单位提高限制。在 v2.1.207 之前,停滞的凭证解析会使请求无限期等待。

194 194 

195<h4 id="advanced-credential-configuration">195<h4 id="advanced-credential-configuration">

196 高级凭证配置196 高级凭证配置

197</h4>197</h4>

198 198 

199Claude Code 支持 AWS SSO 和企业身份提供商的自动凭证刷新。将这些设置添加到您的 Claude Code 设置文件(请参阅[设置](/zh-CN/settings)了解文件位置)。199Claude Code 支持 AWS SSO 和企业身份提供商的自动凭证刷新。将这些设置添加到您的 Claude Code 设置文件(请参阅[设置](/docs/zh-CN/settings)了解文件位置)。

200 200 

201这两个设置有不同的触发条件:201这两个设置有不同的触发条件:

202 202 


235}235}

236```236```

237 237 

238{/* min-version: 2.1.181 */}从 Claude Code v2.1.181 开始,`aws configure export-credentials --format process` 的平面输出也被接受,具有相同的密钥在顶级而不是嵌套在 `Credentials` 下。238从 Claude Code v2.1.181 开始,`aws configure export-credentials --format process` 的平面输出也被接受,具有相同的密钥在顶级而不是嵌套在 `Credentials` 下。

239 239 

240`Expiration` 是可选的。{/* min-version: 2.1.176 */}从 Claude Code v2.1.176 开始,当命令返回有效的 ISO 8601 `Expiration` 时,Claude Code 会缓存凭证直到该时间前五分钟。没有它,或在更早的版本上,凭证被缓存一小时。240`Expiration` 是可选的。从 Claude Code v2.1.176 开始,当命令返回有效的 ISO 8601 `Expiration` 时,Claude Code 会缓存凭证直到该时间前五分钟。没有它,或在更早的版本上,凭证被缓存一小时。

241 241 

242当您配置 `awsCredentialExport` 而不配置 `awsAuthRefresh` 时,Claude Code 直接使用导出的凭证,不在启动时重新解析 AWS 默认凭证提供商链。在 v2.1.206 之前,启动也会重新解析默认提供商链,这会在您的代理配置之外进行实时 SSO 或 STS 调用,并可能在具有受限出口的网络上阻止第一个提示数分钟。242当您配置 `awsCredentialExport` 而不配置 `awsAuthRefresh` 时,Claude Code 直接使用导出的凭证,不在启动时重新解析 AWS 默认凭证提供商链。在 v2.1.206 之前,启动也会重新解析默认提供商链,这会在您的代理配置之外进行实时 SSO 或 STS 调用,并可能在具有受限出口的网络上阻止第一个提示数分钟。

243 243 


263 263 

264为 Claude Code 启用 Amazon Bedrock 时,请记住以下几点:264为 Claude Code 启用 Amazon Bedrock 时,请记住以下几点:

265 265 

266* {/* min-version: 2.1.172 */}从 v2.1.172 开始,您只需设置 `AWS_REGION` 来覆盖您的 AWS 配置文件的区域,或在您的配置文件没有区域时设置。Claude Code 按此顺序解析区域:266* 从 v2.1.172 开始,您只需设置 `AWS_REGION` 来覆盖您的 AWS 配置文件的区域,或在您的配置文件没有区域时设置。Claude Code 按此顺序解析区域:

267 267 

268 * `AWS_REGION`268 * `AWS_REGION`

269 * `AWS_DEFAULT_REGION`269 * `AWS_DEFAULT_REGION`


272 272 

273 活跃配置文件是 `AWS_PROFILE`(如果已设置),否则为 `default`。设置 `AWS_SHARED_CREDENTIALS_FILE` 或 `AWS_CONFIG_FILE` 以指向非默认文件路径。运行 `/status` 以查看解析的区域。当区域来自您的 AWS 配置文件或默认回退时,`/status` 也会注明来源。在 v2.1.171 及更早版本上,Claude Code 不读取 AWS 配置文件,因此请显式设置 `AWS_REGION`。273 活跃配置文件是 `AWS_PROFILE`(如果已设置),否则为 `default`。设置 `AWS_SHARED_CREDENTIALS_FILE` 或 `AWS_CONFIG_FILE` 以指向非默认文件路径。运行 `/status` 以查看解析的区域。当区域来自您的 AWS 配置文件或默认回退时,`/status` 也会注明来源。在 v2.1.171 及更早版本上,Claude Code 不读取 AWS 配置文件,因此请显式设置 `AWS_REGION`。

274* 使用 Amazon Bedrock 时,`/logout` 命令不可用,因为身份验证通过 AWS 凭证处理。274* 使用 Amazon Bedrock 时,`/logout` 命令不可用,因为身份验证通过 AWS 凭证处理。

275* WebSearch 工具在 Amazon Bedrock 上不可用。请参阅 [WebSearch 工具行为](/zh-CN/tools-reference#websearch-tool-behavior)。275* WebSearch 工具在 Amazon Bedrock 上不可用。请参阅 [WebSearch 工具行为](/docs/zh-CN/tools-reference#websearch-tool-behavior)。

276* 您可以使用设置文件来处理环境变量,如 `AWS_PROFILE`,您不希望泄露给其他进程。请参阅[设置](/zh-CN/settings)了解更多信息。276* 您可以使用设置文件来处理环境变量,如 `AWS_PROFILE`,您不希望泄露给其他进程。请参阅[设置](/docs/zh-CN/settings)了解更多信息。

277 277 

278<h3 id="4-pin-model-versions">278<h3 id="4-pin-model-versions">

279 4. 固定模型版本279 4. 固定模型版本


293export ANTHROPIC_DEFAULT_HAIKU_MODEL='us.anthropic.claude-haiku-4-5-20251001-v1:0'293export ANTHROPIC_DEFAULT_HAIKU_MODEL='us.anthropic.claude-haiku-4-5-20251001-v1:0'

294```294```

295 295 

296这些变量使用跨区域推理配置文件 ID(带有 `us.` 前缀)。如果您使用不同的区域前缀或应用推理配置文件,请相应调整。在 AWS GovCloud 区域中,使用 `us-gov.` 前缀。有关当前和旧版模型 ID,请参阅[模型概览](https://platform.claude.com/docs/en/about-claude/models/overview)。请参阅[模型配置](/zh-CN/model-config#pin-models-for-third-party-deployments)了解完整的环境变量列表。296这些变量使用跨区域推理配置文件 ID(带有 `us.` 前缀)。如果您使用不同的区域前缀或应用推理配置文件,请相应调整。在 AWS GovCloud 区域中,使用 `us-gov.` 前缀。有关当前和旧版模型 ID,请参阅[模型概览](https://platform.claude.com/docs/en/about-claude/models/overview)。请参阅[模型配置](/docs/zh-CN/model-config#pin-models-for-third-party-deployments)了解完整的环境变量列表。

297 297 

298Claude Code 使用这些默认模型当未设置固定变量时:298Claude Code 使用这些默认模型当未设置固定变量时:

299 299 


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

312</Warning>312</Warning>

313 313 

314{/* min-version: 2.1.207 */}在 v2.1.207 之前,Amazon Bedrock 上的主模型默认为 Sonnet 4.5,`opus` 别名解析为 Opus 4.6,后台任务始终使用主模型。314在 v2.1.207 之前,Amazon Bedrock 上的主模型默认为 Sonnet 4.5,`opus` 别名解析为 Opus 4.6,后台任务始终使用主模型。

315 315 

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

317 317 


330export ENABLE_PROMPT_CACHING_1H=1330export ENABLE_PROMPT_CACHING_1H=1

331```331```

332 332 

3331 小时缓存 TTL 的计费费率高于 5 分钟默认值。请参阅[缓存生命周期](/zh-CN/prompt-caching#cache-lifetime)。3331 小时缓存 TTL 的计费费率高于 5 分钟默认值。请参阅[缓存生命周期](/docs/zh-CN/prompt-caching#cache-lifetime)。

334 334 

335<Note>Prompt caching 可能在所有 Amazon Bedrock 区域都不可用。如果缓存令牌计数保持为零,请检查 Amazon Bedrock 文档中的[支持的模型、区域和限制](https://docs.aws.amazon.com/bedrock/latest/userguide/prompt-caching.html#prompt-caching-models)。</Note>335<Note>Prompt caching 可能在所有 Amazon Bedrock 区域都不可用。如果缓存令牌计数保持为零,请检查 Amazon Bedrock 文档中的[支持的模型、区域和限制](https://docs.aws.amazon.com/bedrock/latest/userguide/prompt-caching.html#prompt-caching-models)。</Note>

336 336 


338 将每个模型版本映射到推理配置文件338 将每个模型版本映射到推理配置文件

339</h4>339</h4>

340 340 

341`ANTHROPIC_DEFAULT_*_MODEL` 环境变量为每个模型系列配置一个推理配置文件。如果您的组织需要在 `/model` 选择器中公开同一系列的多个版本,每个版本路由到其自己的应用推理配置文件 ARN,请改用[设置文件](/zh-CN/settings#settings-files)中的 `modelOverrides` 设置。341`ANTHROPIC_DEFAULT_*_MODEL` 环境变量为每个模型系列配置一个推理配置文件。如果您的组织需要在 `/model` 选择器中公开同一系列的多个版本,每个版本路由到其自己的应用推理配置文件 ARN,请改用[设置文件](/docs/zh-CN/settings#settings-files)中的 `modelOverrides` 设置。

342 342 

343此示例将四个 Opus 版本映射到不同的 ARN,以便用户可以在它们之间切换,而无需绕过您组织的推理配置文件:343此示例将四个 Opus 版本映射到不同的 ARN,以便用户可以在它们之间切换,而无需绕过您组织的推理配置文件:

344 344 


353}353}

354```354```

355 355 

356当用户在 `/model` 中选择其中一个版本时,Claude Code 使用映射的 ARN 调用 Amazon Bedrock。{/* min-version: 2.1.200 */}当您通过 `--model` 或 `ANTHROPIC_MODEL` 直接传递 Anthropic 模型 ID 时,相同的映射也适用。没有覆盖的版本回退到内置的 Amazon Bedrock 模型 ID 或启动时发现的任何匹配推理配置文件。在 v2.1.200 之前,`--model` 和 `ANTHROPIC_MODEL` 值直接到达 Amazon Bedrock,不经过覆盖映射。请参阅[按版本覆盖模型 ID](/zh-CN/model-config#override-model-ids-per-version)了解覆盖如何与 `availableModels` 和其他模型设置交互的详情。356当用户在 `/model` 中选择其中一个版本时,Claude Code 使用映射的 ARN 调用 Amazon Bedrock。当您通过 `--model` 或 `ANTHROPIC_MODEL` 直接传递 Anthropic 模型 ID 时,相同的映射也适用。没有覆盖的版本回退到内置的 Amazon Bedrock 模型 ID 或启动时发现的任何匹配推理配置文件。在 v2.1.200 之前,`--model` 和 `ANTHROPIC_MODEL` 值直接到达 Amazon Bedrock,不经过覆盖映射。请参阅[按版本覆盖模型 ID](/docs/zh-CN/model-config#override-model-ids-per-version)了解覆盖如何与 `availableModels` 和其他模型设置交互的详情。

357 357 

358<h2 id="startup-model-checks">358<h2 id="startup-model-checks">

359 启动模型检查359 启动模型检查


361 361 

362当 Claude Code 启动并配置了 Amazon Bedrock 时,它会验证它打算使用的模型在您的账户中是否可访问。362当 Claude Code 启动并配置了 Amazon Bedrock 时,它会验证它打算使用的模型在您的账户中是否可访问。

363 363 

364如果您固定了一个比当前 Claude Code 默认值更旧的模型版本,并且您的账户可以调用较新版本,Claude Code 会提示您更新固定。接受会将新模型 ID 写入您的[用户设置文件](/zh-CN/settings)并重启 Claude Code。拒绝会被记住,直到下一个默认版本更改。指向[应用推理配置文件 ARN](#map-each-model-version-to-an-inference-profile) 的固定会被跳过,因为这些由您的管理员管理。364如果您固定了一个比当前 Claude Code 默认值更旧的模型版本,并且您的账户可以调用较新版本,Claude Code 会提示您更新固定。接受会将新模型 ID 写入您的[用户设置文件](/docs/zh-CN/settings)并重启 Claude Code。拒绝会被记住,直到下一个默认版本更改。指向[应用推理配置文件 ARN](#map-each-model-version-to-an-inference-profile) 的固定会被跳过,因为这些由您的管理员管理。

365 365 

366如果您没有固定模型,并且当前默认值在您的账户中不可用,Claude Code 会在当前会话中回退并显示通知。它首先尝试默认模型的早期版本,当默认值是 Opus 模型且没有 Opus 版本可用时,会回退到默认 Sonnet 模型。回退不会被持久化。在您的 Amazon Bedrock 账户中启用较新的模型或[固定一个版本](#4-pin-model-versions)以使选择永久化。366如果您没有固定模型,并且当前默认值在您的账户中不可用,Claude Code 会在当前会话中回退并显示通知。它首先尝试默认模型的早期版本,当默认值是 Opus 模型且没有 Opus 版本可用时,会回退到默认 Sonnet 模型。回退不会被持久化。在您的 Amazon Bedrock 账户中启用较新的模型或[固定一个版本](#4-pin-model-versions)以使选择永久化。

367 367 


426 426 

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

428 428 

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

430 430 

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

432 服务层级432 服务层级


444 AWS Guardrails444 AWS Guardrails

445</h2>445</h2>

446 446 

447[Amazon Bedrock Guardrails](https://docs.aws.amazon.com/bedrock/latest/userguide/guardrails.html) 让您为 Claude Code 实现内容过滤。在 [Amazon Bedrock 控制台](https://console.aws.amazon.com/bedrock/)中创建 Guardrail,发布一个版本,然后将 Guardrail 标头添加到您的[设置文件](/zh-CN/settings)。如果您使用跨区域推理配置文件,请在您的 Guardrail 上启用跨区域推理。447[Amazon Bedrock Guardrails](https://docs.aws.amazon.com/bedrock/latest/userguide/guardrails.html) 让您为 Claude Code 实现内容过滤。在 [Amazon Bedrock 控制台](https://console.aws.amazon.com/bedrock/)中创建 Guardrail,发布一个版本,然后将 Guardrail 标头添加到您的[设置文件](/docs/zh-CN/settings)。如果您使用跨区域推理配置文件,请在您的 Guardrail 上启用跨区域推理。

448 448 

449示例配置:449示例配置:

450 450 


473export AWS_REGION=us-east-1473export AWS_REGION=us-east-1

474```474```

475 475 

476Claude Code 从 AWS 区域构造端点 URL。{/* min-version: 2.1.172 */}从 v2.1.172 开始,区域的解析优先级与[上面的 Amazon Bedrock](#3-configure-claude-code) 相同;较早的版本仅使用 `AWS_REGION`。要为自定义端点或网关覆盖 URL,请设置 `ANTHROPIC_BEDROCK_MANTLE_BASE_URL`。476Claude Code 从 AWS 区域构造端点 URL。从 v2.1.172 开始,区域的解析优先级与[上面的 Amazon Bedrock](#3-configure-claude-code) 相同;较早的版本仅使用 `AWS_REGION`。要为自定义端点或网关覆盖 URL,请设置 `ANTHROPIC_BEDROCK_MANTLE_BASE_URL`。

477 477 

478在 Claude Code 内运行 `/status` 来确认。当 Mantle 处于活动状态时,提供者行显示 `Amazon Bedrock (Mantle)`。478在 Claude Code 内运行 `/status` 来确认。当 Mantle 处于活动状态时,提供者行显示 `Amazon Bedrock (Mantle)`。

479 479 


500export CLAUDE_CODE_USE_MANTLE=1500export CLAUDE_CODE_USE_MANTLE=1

501```501```

502 502 

503要在 `/model` 选择器中显示 Mantle 模型,请在您的[设置文件](/zh-CN/settings)中的 `availableModels` 中列出其 ID。此设置也将选择器限制为列出的条目。列出 `anthropic.claude-haiku-4-5` 会从选择器中移除裸 `haiku` 别名,因此也要列出版本前缀或您想保持可选择的版本的完整 ID。Mantle ID 和 `haiku` 别名解析为相同的模型族,因此合并仅保留更具体的条目。请参阅[合并行为](/zh-CN/model-config#merge-behavior):503要在 `/model` 选择器中显示 Mantle 模型,请在您的[设置文件](/docs/zh-CN/settings)中的 `availableModels` 中列出其 ID。此设置也将选择器限制为列出的条目。列出 `anthropic.claude-haiku-4-5` 会从选择器中移除裸 `haiku` 别名,因此也要列出版本前缀或您想保持可选择的版本的完整 ID。Mantle ID 和 `haiku` 别名解析为相同的模型族,因此合并仅保留更具体的条目。请参阅[合并行为](/docs/zh-CN/model-config#merge-behavior):

504 504 

505```json theme={null}505```json theme={null}

506{506{


508}508}

509```509```

510 510 

511带有 `anthropic.` 前缀的条目被添加为自定义选择器选项并路由到 Mantle。将 `anthropic.claude-haiku-4-5` 替换为您的账户被授予的模型 ID。请参阅[限制模型选择](/zh-CN/model-config#restrict-model-selection)了解 `availableModels` 如何与其他模型设置交互。511带有 `anthropic.` 前缀的条目被添加为自定义选择器选项并路由到 Mantle。将 `anthropic.claude-haiku-4-5` 替换为您的账户被授予的模型 ID。请参阅[限制模型选择](/docs/zh-CN/model-config#restrict-model-selection)了解 `availableModels` 如何与其他模型设置交互。

512 512 

513当两个提供商都处于活动状态时,`/status` 显示 `Amazon Bedrock + Amazon Bedrock (Mantle)`。513当两个提供商都处于活动状态时,`/status` 显示 `Amazon Bedrock + Amazon Bedrock (Mantle)`。

514 514 


516 通过网关路由 Mantle516 通过网关路由 Mantle

517</h3>517</h3>

518 518 

519如果您的组织通过集中式 [LLM 网关](/zh-CN/llm-gateway)路由模型流量,该网关在服务器端注入 AWS 凭证,请禁用客户端身份验证,以便 Claude Code 发送没有 SigV4 签名或 `x-api-key` 标头的请求:519如果您的组织通过集中式 [LLM 网关](/docs/zh-CN/llm-gateway)路由模型流量,该网关在服务器端注入 AWS 凭证,请禁用客户端身份验证,以便 Claude Code 发送没有 SigV4 签名或 `x-api-key` 标头的请求:

520 520 

521```bash theme={null}521```bash theme={null}

522export CLAUDE_CODE_USE_MANTLE=1522export CLAUDE_CODE_USE_MANTLE=1


528 Mantle 环境变量528 Mantle 环境变量

529</h3>529</h3>

530 530 

531这些变量特定于 Mantle 端点。请参阅[环境变量](/zh-CN/env-vars)了解完整列表。531这些变量特定于 Mantle 端点。请参阅[环境变量](/docs/zh-CN/env-vars)了解完整列表。

532 532 

533| 变量 | 目的 |533| 变量 | 目的 |

534| :-------------------------------------- | :---------------------------------------- |534| :-------------------------------------- | :---------------------------------------- |


545 使用 SSO 和企业代理的身份验证循环545 使用 SSO 和企业代理的身份验证循环

546</h3>546</h3>

547 547 

548如果在使用 AWS SSO 时浏览器标签页反复生成,请从您的[设置文件](/zh-CN/settings)中删除 `awsAuthRefresh` 设置。这可能发生在企业 VPN 或 TLS 检查代理中断 SSO 浏览器流时。Claude Code 将中断的连接视为身份验证失败,重新运行 `awsAuthRefresh`,并无限循环。548如果在使用 AWS SSO 时浏览器标签页反复生成,请从您的[设置文件](/docs/zh-CN/settings)中删除 `awsAuthRefresh` 设置。这可能发生在企业 VPN 或 TLS 检查代理中断 SSO 浏览器流时。Claude Code 将中断的连接视为身份验证失败,重新运行 `awsAuthRefresh`,并无限循环。

549 549 

550如果您的网络环境干扰自动基于浏览器的 SSO 流,请在启动 Claude Code 之前手动使用 `aws sso login`,而不是依赖 `awsAuthRefresh`。550如果您的网络环境干扰自动基于浏览器的 SSO 流,请在启动 Claude Code 之前手动使用 `aws sso login`,而不是依赖 `awsAuthRefresh`。

551 551 


573 573 

574在 v2.1.208 之前,相同的配置错误在整个响应被缓冲后显示为 `API Error: Truncated event message received`。574在 v2.1.208 之前,相同的配置错误在整个响应被缓冲后显示为 `API Error: Truncated event message received`。

575 575 

576要修复它,请配置网关以通过未修改的 `InvokeModelWithResponseStream` 响应正文及其 `Content-Type` 标头。如果网关仅重写标头并通过完整的二进制正文,请设置 [`CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_GUARD=1`](/zh-CN/env-vars) 以跳过检查,直到网关被修复。关闭检查后,被转换的响应正文再次失败,显示 `Truncated event message received`。576要修复它,请配置网关以通过未修改的 `InvokeModelWithResponseStream` 响应正文及其 `Content-Type` 标头。如果网关仅重写标头并通过完整的二进制正文,请设置 [`CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_GUARD=1`](/docs/zh-CN/env-vars) 以跳过检查,直到网关被修复。关闭检查后,被转换的响应正文再次失败,显示 `Truncated event message received`。

577 577 

578<h3 id="zero-token-counts-in-/context">578<h3 id="zero-token-counts-in-/context">

579 /context 中的零令牌计数579 /context 中的零令牌计数

580</h3>580</h3>

581 581 

582`/context` 命令通过将工具架构发送到 Amazon Bedrock count-tokens API 来计算每个工具组的令牌。{/* min-version: 2.1.196 */}在 Claude Code v2.1.196 之前的版本中,Amazon Bedrock 拒绝了该请求,因为架构包含其 count-tokens API 不接受的字段,因此每个工具组显示 0 个令牌。分解中的其他行(如消息和内存文件)不受影响。582`/context` 命令通过将工具架构发送到 Amazon Bedrock count-tokens API 来计算每个工具组的令牌。在 Claude Code v2.1.196 之前的版本中,Amazon Bedrock 拒绝了该请求,因为架构包含其 count-tokens API 不接受的字段,因此每个工具组显示 0 个令牌。分解中的其他行(如消息和内存文件)不受影响。

583 583 

584更新到 v2.1.196 或更高版本。584更新到 v2.1.196 或更高版本。

585 585 


587 Mantle 端点错误587 Mantle 端点错误

588</h3>588</h3>

589 589 

590如果在设置 `CLAUDE_CODE_USE_MANTLE` 后 `/status` 没有显示 `Amazon Bedrock (Mantle)`,则该变量没有到达进程。确认它在您启动 `claude` 的 shell 中被导出,或在您的[设置文件](/zh-CN/settings)的 `env` 块中设置它。590如果在设置 `CLAUDE_CODE_USE_MANTLE` 后 `/status` 没有显示 `Amazon Bedrock (Mantle)`,则该变量没有到达进程。确认它在您启动 `claude` 的 shell 中被导出,或在您的[设置文件](/docs/zh-CN/settings)的 `env` 块中设置它。

591 591 

592来自 Mantle 端点的 `403`(具有有效凭证)意味着您的 AWS 账户没有被授予访问您请求的模型的权限。联系您的 AWS 账户团队以请求访问。592来自 Mantle 端点的 `403`(具有有效凭证)意味着您的 AWS 账户没有被授予访问您请求的模型的权限。联系您的 AWS 账户团队以请求访问。

593 593 

artifacts.md +15 −19

Details

6 6 

7> Artifacts 将 Claude Code 的工作转化为实时交互式页面,可在 claude.ai 上保持私密、与您的组织共享或发布到公开链接。7> Artifacts 将 Claude Code 的工作转化为实时交互式页面,可在 claude.ai 上保持私密、与您的组织共享或发布到公开链接。

8 8 

9{/* plan-availability: feature=artifacts plans=pro,max,team,enterprise providers=anthropic */}

10 

11<Note>9<Note>

12 Artifacts 在 Pro、Max、Team 和 Enterprise 计划上可用,需要使用 [`/login`](/zh-CN/setup#authenticate) 登录的会话。有关完整的要求集,请参阅 [可用性](#availability)。10 Artifacts 在 Pro、Max、Team 和 Enterprise 计划上可用,需要使用 [`/login`](/docs/zh-CN/setup#authenticate) 登录的会话。有关完整的要求集,请参阅 [可用性](#availability)。

13</Note>11</Note>

14 12 

15Artifact 是一个实时交互式网页,Claude Code 从您的会话发布到 claude.ai 上的私有 URL。您可以在浏览器中打开它,当会话继续时它会就地更新。当您想让其他人也看到它时,可以从页面标题中共享它。例如,使用 artifact 来引导审阅者查看带有注释的 diff 的拉取请求、从会话数据构建仪表板,或维护一个随着 Claude 工作而填充的调查时间线。13Artifact 是一个实时交互式网页,Claude Code 从您的会话发布到 claude.ai 上的私有 URL。您可以在浏览器中打开它,当会话继续时它会就地更新。当您想让其他人也看到它时,可以从页面标题中共享它。例如,使用 artifact 来引导审阅者查看带有注释的 diff 的拉取请求、从会话数据构建仪表板,或维护一个随着 Claude 工作而填充的调查时间线。


22 何时使用 artifact20 何时使用 artifact

23</h2>21</h2>

24 22 

25当终端文本不是 Claude 生成的内容的合适媒介时,请使用 artifact:输出更容易查看和交互,而不是逐行阅读。Claude 从您的会话可以访问的任何内容构建页面,包括您的代码库和通过您的 [连接工具](/zh-CN/mcp) 拉取的数据,因此页面可以显示需要段落才能描述的内容。例如,要求 Claude:23当终端文本不是 Claude 生成的内容的合适媒介时,请使用 artifact:输出更容易查看和交互,而不是逐行阅读。Claude 从您的会话可以访问的任何内容构建页面,包括您的代码库和通过您的 [连接工具](/docs/zh-CN/mcp) 拉取的数据,因此页面可以显示需要段落才能描述的内容。例如,要求 Claude:

26 24 

27* 引导审阅者查看带有注释的 diff 的拉取请求25* 引导审阅者查看带有注释的 diff 的拉取请求

28* 从会话已拉取的数据呈现仪表板26* 从会话已拉取的数据呈现仪表板


104 使用 MCP 连接器拉取实时数据102 使用 MCP 连接器拉取实时数据

105</h2>103</h2>

106 104 

107{/* plan-availability: feature=artifact-mcp plans=pro,max,team,enterprise providers=anthropic */}105artifact 可以在每次有人查看它时调用 [MCP 连接器](/docs/zh-CN/mcp#use-mcp-servers-from-claude-ai),因此页面显示的是当前数据而不是构建它的会话中的快照。来自 artifact 的连接器调用在 Pro、Max、Team 和 Enterprise 计划上可用,需要 Claude Code v2.1.209 或更高版本。在早期版本上,Claude 会发布该页面,其中包含会话在构建时收集的任何数据。

108 

109artifact 可以在每次有人查看它时调用 [MCP 连接器](/zh-CN/mcp#use-mcp-servers-from-claude-ai),因此页面显示的是当前数据而不是构建它的会话中的快照。来自 artifact 的连接器调用在 Pro、Max、Team 和 Enterprise 计划上可用,需要 Claude Code v2.1.209 或更高版本。在早期版本上,Claude 会发布该页面,其中包含会话在构建时收集的任何数据。

110 106 

111要创建一个由连接器支持的页面,请在提示中命名连接器和您想要的数据:107要创建一个由连接器支持的页面,请在提示中命名连接器和您想要的数据:

112 108 


202 改进视觉设计198 改进视觉设计

203</h2>199</h2>

204 200 

205从 Claude Code v2.1.183 开始,Claude 在构建 artifact 时应用内置设计技能,因此页面获得深思熟虑的调色板、排版和布局,无需额外提示。该技能还在选择自己的设计之前查找项目中的现有设计系统。要保持 artifacts 与您产品的品牌一致,请在 Claude 可以找到的地方记录您的设计令牌,例如项目的 [CLAUDE.md](/zh-CN/memory) 或存储库中的主题文件:201从 Claude Code v2.1.183 开始,Claude 在构建 artifact 时应用内置设计技能,因此页面获得深思熟虑的调色板、排版和布局,无需额外提示。该技能还在选择自己的设计之前查找项目中的现有设计系统。要保持 artifacts 与您产品的品牌一致,请在 Claude 可以找到的地方记录您的设计令牌,例如项目的 [CLAUDE.md](/docs/zh-CN/memory) 或存储库中的主题文件:

206 202 

207```markdown theme={null}203```markdown theme={null}

208## Design system204## Design system


243| 要求 | 可用时间 |239| 要求 | 可用时间 |

244| :---- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |240| :---- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

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

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

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

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

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

250 246 

251<h2 id="disable-artifacts">247<h2 id="disable-artifacts">

252 禁用 artifacts248 禁用 artifacts


256 252 

257| 方法 | 设置 |253| 方法 | 设置 |

258| :------------------------- | :---------------------------------- |254| :------------------------- | :---------------------------------- |

259| [设置文件](/zh-CN/settings) | `"disableArtifact": true` |255| [设置文件](/docs/zh-CN/settings) | `"disableArtifact": true` |

260| [环境变量](/zh-CN/env-vars) | `CLAUDE_CODE_DISABLE_ARTIFACT=1` |256| [环境变量](/docs/zh-CN/env-vars) | `CLAUDE_CODE_DISABLE_ARTIFACT=1` |

261| [权限规则](/zh-CN/permissions) | 将 `Artifact` 添加到 `permissions.deny` |257| [权限规则](/docs/zh-CN/permissions) | 将 `Artifact` 添加到 `permissions.deny` |

262 258 

263<h2 id="manage-artifacts-for-your-organization">259<h2 id="manage-artifacts-for-your-organization">

264 为您的组织管理 artifacts260 为您的组织管理 artifacts


300 将查看器域列入允许列表296 将查看器域列入允许列表

301</h3>297</h3>

302 298 

303claude.ai 上的查看器从沙箱 `*.claudeusercontent.com` 源加载每个 artifact。如果您的组织限制出站网络访问,请将该域添加到您的允许列表中,与 `claude.ai` 一起。有关完整列表,请参阅 [网络访问要求](/zh-CN/network-config#network-access-requirements)。299claude.ai 上的查看器从沙箱 `*.claudeusercontent.com` 源加载每个 artifact。如果您的组织限制出站网络访问,请将该域添加到您的允许列表中,与 `claude.ai` 一起。有关完整列表,请参阅 [网络访问要求](/docs/zh-CN/network-config#network-access-requirements)。

304 300 

305<h3 id="list-and-delete-artifacts-with-the-compliance-api">301<h3 id="list-and-delete-artifacts-with-the-compliance-api">

306 使用 Compliance API 列出和删除 artifacts302 使用 Compliance API 列出和删除 artifacts


320 相关资源316 相关资源

321</h2>317</h2>

322 318 

323* 浏览与 artifacts 配对的 [提示模式和工作流](/zh-CN/prompt-library)319* 浏览与 artifacts 配对的 [提示模式和工作流](/docs/zh-CN/prompt-library)

324* 将您重复使用的 artifact 提示转换为 [skill](/zh-CN/skills),以便您可以将其作为命令调用320* 将您重复使用的 artifact 提示转换为 [skill](/docs/zh-CN/skills),以便您可以将其作为命令调用

325* [连接 MCP 服务器](/zh-CN/mcp),以便 Claude 可以在构建页面时将数据拉入 artifact321* [连接 MCP 服务器](/docs/zh-CN/mcp),以便 Claude 可以在构建页面时将数据拉入 artifact

authentication.md +28 −28

Details

12 登录 Claude Code12 登录 Claude Code

13</h2>13</h2>

14 14 

15[安装 Claude Code](/zh-CN/setup#install-claude-code) 后,在终端中运行 `claude`。首次启动时,Claude Code 会打开浏览器窗口供您登录。15[安装 Claude Code](/docs/zh-CN/setup#install-claude-code) 后,在终端中运行 `claude`。首次启动时,Claude Code 会打开浏览器窗口供您登录。

16 16 

17如果浏览器没有自动打开,请按 `c` 将登录 URL 复制到剪贴板,然后将其粘贴到浏览器中。17如果浏览器没有自动打开,请按 `c` 将登录 URL 复制到剪贴板,然后将其粘贴到浏览器中。

18 18 


25* **Claude Pro 或 Max 订阅**:使用您的 Claude.ai 账户登录。在 [claude.com/pricing](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=authentication_pro_max) 订阅。25* **Claude Pro 或 Max 订阅**:使用您的 Claude.ai 账户登录。在 [claude.com/pricing](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=authentication_pro_max) 订阅。

26* **Claude for Teams 或 Enterprise**:使用您的团队管理员邀请您的 Claude.ai 账户登录。26* **Claude for Teams 或 Enterprise**:使用您的团队管理员邀请您的 Claude.ai 账户登录。

27* **Claude Console**:使用您的 Console 凭证登录。您的管理员必须先 [邀请您](#claude-console-authentication)。27* **Claude Console**:使用您的 Console 凭证登录。您的管理员必须先 [邀请您](#claude-console-authentication)。

28* **云提供商**:如果您的组织使用 [Amazon Bedrock](/zh-CN/amazon-bedrock)、[Google Cloud's Agent Platform](/zh-CN/google-vertex-ai) 或 [Microsoft Foundry](/zh-CN/microsoft-foundry),请在运行 `claude` 之前设置所需的环境变量,或在登录提示符处选择 **3rd-party platform**,这将为 Bedrock 和 Vertex AI 启动交互式设置向导。不需要浏览器登录。28* **云提供商**:如果您的组织使用 [Amazon Bedrock](/docs/zh-CN/amazon-bedrock)、[Google Cloud's Agent Platform](/docs/zh-CN/google-vertex-ai) 或 [Microsoft Foundry](/docs/zh-CN/microsoft-foundry),请在运行 `claude` 之前设置所需的环境变量,或在登录提示符处选择 **3rd-party platform**,这将为 Bedrock 和 Vertex AI 启动交互式设置向导。不需要浏览器登录。

29* **云网关**:如果您的组织运行自托管的 [Claude apps gateway](/zh-CN/claude-apps-gateway),请通过 `/login` 使用企业 SSO 登录。网关颁发的令牌是会话的唯一凭证。29* **云网关**:如果您的组织运行自托管的 [Claude apps gateway](/docs/zh-CN/claude-apps-gateway),请通过 `/login` 使用企业 SSO 登录。网关颁发的令牌是会话的唯一凭证。

30 30 

31管理员可以使用 [`forceLoginMethod` 和 `forceLoginOrgUUID`](/zh-CN/settings#available-settings) 托管设置来限制交互式登录。当设置其中任何一个时,由 `ANTHROPIC_API_KEY`、`ANTHROPIC_AUTH_TOKEN` 或 `apiKeyHelper` 进行身份验证的会话在启动时会被阻止;云提供商会话不受影响。31管理员可以使用 [`forceLoginMethod` 和 `forceLoginOrgUUID`](/docs/zh-CN/settings#available-settings) 托管设置来限制交互式登录。当设置其中任何一个时,由 `ANTHROPIC_API_KEY`、`ANTHROPIC_AUTH_TOKEN` 或 `apiKeyHelper` 进行身份验证的会话在启动时会被阻止;云提供商会话不受影响。

32 32 

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

34 34 

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

36 36 

37<h2 id="set-up-team-authentication">37<h2 id="set-up-team-authentication">

38 设置团队身份验证38 设置团队身份验证


42 42 

43* [Claude for Teams 或 Enterprise](#claude-for-teams-or-enterprise),推荐用于大多数团队43* [Claude for Teams 或 Enterprise](#claude-for-teams-or-enterprise),推荐用于大多数团队

44* [Claude Console](#claude-console-authentication)44* [Claude Console](#claude-console-authentication)

45* [Claude apps gateway](/zh-CN/claude-apps-gateway),一个自托管网关,使用您的 IdP 为开发人员签名,并将推理路由到您配置的云提供商45* [Claude apps gateway](/docs/zh-CN/claude-apps-gateway),一个自托管网关,使用您的 IdP 为开发人员签名,并将推理路由到您配置的云提供商

46* [Amazon Bedrock](/zh-CN/amazon-bedrock)46* [Amazon Bedrock](/docs/zh-CN/amazon-bedrock)

47* [Google Cloud's Agent Platform](/zh-CN/google-vertex-ai)47* [Google Cloud's Agent Platform](/docs/zh-CN/google-vertex-ai)

48* [Microsoft Foundry](/zh-CN/microsoft-foundry)48* [Microsoft Foundry](/docs/zh-CN/microsoft-foundry)

49 49 

50<h3 id="claude-for-teams-or-enterprise">50<h3 id="claude-for-teams-or-enterprise">

51 Claude for Teams 或 Enterprise51 Claude for Teams 或 Enterprise


99 每个受邀用户需要:99 每个受邀用户需要:

100 100 

101 * 接受 Console 邀请101 * 接受 Console 邀请

102 * [检查系统要求](/zh-CN/setup#system-requirements)102 * [检查系统要求](/docs/zh-CN/setup#system-requirements)

103 * [安装 Claude Code](/zh-CN/setup#install-claude-code)103 * [安装 Claude Code](/docs/zh-CN/setup#install-claude-code)

104 * 使用 Console 账户凭证登录104 * 使用 Console 账户凭证登录

105 </Step>105 </Step>

106</Steps>106</Steps>


113 113 

114<Steps>114<Steps>

115 <Step title="遵循提供商设置">115 <Step title="遵循提供商设置">

116 遵循 [Amazon Bedrock 文档](/zh-CN/amazon-bedrock)、[Google Cloud's Agent Platform 文档](/zh-CN/google-vertex-ai) 或 [Microsoft Foundry 文档](/zh-CN/microsoft-foundry)。116 遵循 [Amazon Bedrock 文档](/docs/zh-CN/amazon-bedrock)、[Google Cloud's Agent Platform 文档](/docs/zh-CN/google-vertex-ai) 或 [Microsoft Foundry 文档](/docs/zh-CN/microsoft-foundry)。

117 </Step>117 </Step>

118 118 

119 <Step title="分发配置">119 <Step title="分发配置">

120 将环境变量和生成云凭证的说明分发给您的用户。阅读有关如何 [在此处管理配置](/zh-CN/settings) 的更多信息。120 将环境变量和生成云凭证的说明分发给您的用户。阅读有关如何 [在此处管理配置](/docs/zh-CN/settings) 的更多信息。

121 </Step>121 </Step>

122 122 

123 <Step title="安装 Claude Code">123 <Step title="安装 Claude Code">

124 用户可以 [安装 Claude Code](/zh-CN/setup#install-claude-code)。124 用户可以 [安装 Claude Code](/docs/zh-CN/setup#install-claude-code)。

125 </Step>125 </Step>

126</Steps>126</Steps>

127 127 


136 * 在 Linux 上,凭证存储在 `~/.claude/.credentials.json` 中,文件模式为 `0600`。136 * 在 Linux 上,凭证存储在 `~/.claude/.credentials.json` 中,文件模式为 `0600`。

137 * 在 Windows 上,凭证存储在 `%USERPROFILE%\.claude\.credentials.json` 中,并继承您的用户配置文件目录的访问控制,默认情况下将文件限制为您的用户帐户。137 * 在 Windows 上,凭证存储在 `%USERPROFILE%\.claude\.credentials.json` 中,并继承您的用户配置文件目录的访问控制,默认情况下将文件限制为您的用户帐户。

138 * 如果您在 Linux 或 Windows 上设置了 `CLAUDE_CONFIG_DIR` 环境变量,`.credentials.json` 文件将位于该目录下。138 * 如果您在 Linux 或 Windows 上设置了 `CLAUDE_CONFIG_DIR` 环境变量,`.credentials.json` 文件将位于该目录下。

139 * Claude Code 通过 `/login` 和 `/logout` 管理 `.credentials.json`。要通过自定义 API 端点路由请求,请改为设置 [`ANTHROPIC_BASE_URL`](/zh-CN/env-vars) 环境变量。139 * Claude Code 通过 `/login` 和 `/logout` 管理 `.credentials.json`。要通过自定义 API 端点路由请求,请改为设置 [`ANTHROPIC_BASE_URL`](/docs/zh-CN/env-vars) 环境变量。

140* **支持的身份验证类型**:Claude.ai 凭证、Claude API 凭证、Microsoft Foundry Auth、Bedrock Auth、Vertex Auth 和 [Claude apps gateway](/zh-CN/claude-apps-gateway) 会话令牌。140* **支持的身份验证类型**:Claude.ai 凭证、Claude API 凭证、Microsoft Foundry Auth、Bedrock Auth、Vertex Auth 和 [Claude apps gateway](/docs/zh-CN/claude-apps-gateway) 会话令牌。

141* **自定义凭证脚本**:[`apiKeyHelper`](/zh-CN/settings#available-settings) 设置可以配置为运行返回 API 密钥的 shell 脚本。141* **自定义凭证脚本**:[`apiKeyHelper`](/docs/zh-CN/settings#available-settings) 设置可以配置为运行返回 API 密钥的 shell 脚本。

142* **刷新间隔**:默认情况下,`apiKeyHelper` 在 5 分钟后或在 HTTP 401 响应时调用。设置 `CLAUDE_CODE_API_KEY_HELPER_TTL_MS` 环境变量以获得自定义刷新间隔。142* **刷新间隔**:默认情况下,`apiKeyHelper` 在 5 分钟后或在 HTTP 401 响应时调用。设置 `CLAUDE_CODE_API_KEY_HELPER_TTL_MS` 环境变量以获得自定义刷新间隔。

143* **缓慢助手通知**:如果 `apiKeyHelper` 返回密钥需要超过 10 秒,Claude Code 会在提示栏中显示警告通知,显示经过的时间。如果您经常看到此通知,请检查您的凭证脚本是否可以优化。143* **缓慢助手通知**:如果 `apiKeyHelper` 返回密钥需要超过 10 秒,Claude Code 会在提示栏中显示警告通知,显示经过的时间。如果您经常看到此通知,请检查您的凭证脚本是否可以优化。

144* **助手失败**:{/* min-version: 2.1.208 */}当脚本以错误退出、超时或不输出任何内容时,请求在三次尝试内失败,并显示 [`Your apiKeyHelper script is failing`](/zh-CN/errors#your-apikeyhelper-script-is-failing)。在 v2.1.208 之前,助手失败显示为通用 401,经过大约十次无声重试。144* **助手失败**:当脚本以错误退出、超时或不输出任何内容时,请求在三次尝试内失败,并显示 [`Your apiKeyHelper script is failing`](/docs/zh-CN/errors#your-apikeyhelper-script-is-failing)。在 v2.1.208 之前,助手失败显示为通用 401,经过大约十次无声重试。

145 145 

146`apiKeyHelper`、`ANTHROPIC_API_KEY` 和 `ANTHROPIC_AUTH_TOKEN` 适用于 CLI 和包装它的表面,包括 VS Code 扩展、Agent SDK 和 GitHub Actions。Claude Desktop 和云会话不会调用 `apiKeyHelper` 或读取这些环境变量:它们使用 OAuth,除了运行 [第三方推理配置](/zh-CN/llm-gateway-connect#desktop-app) 的桌面会话外,这些会话使用该配置的凭证进行身份验证。146`apiKeyHelper`、`ANTHROPIC_API_KEY` 和 `ANTHROPIC_AUTH_TOKEN` 适用于 CLI 和包装它的表面,包括 VS Code 扩展、Agent SDK 和 GitHub Actions。Claude Desktop 和云会话不会调用 `apiKeyHelper` 或读取这些环境变量:它们使用 OAuth,除了运行 [第三方推理配置](/docs/zh-CN/llm-gateway-connect#desktop-app) 的桌面会话外,这些会话使用该配置的凭证进行身份验证。

147 147 

148<h3 id="renew-an-expiring-login">148<h3 id="renew-an-expiring-login">

149 续期即将过期的登录149 续期即将过期的登录


153 153 

154运行 `/login` 以续期。该警告仅供参考,永远不会阻止请求:身份验证将继续工作,直到登录实际过期。登录生命周期本身不变;提前警告是 v2.1.203 添加的功能。154运行 `/login` 以续期。该警告仅供参考,永远不会阻止请求:身份验证将继续工作,直到登录实际过期。登录生命周期本身不变;提前警告是 v2.1.203 添加的功能。

155 155 

156{/* min-version: 2.1.206 */}一旦存储的登录过期且无法刷新,每个请求都会失败,显示 [`Login expired · Please run /login`](/zh-CN/errors#login-expired),直到您再次登录。在 v2.1.206 之前,过期的登录显示为模型错误。156一旦存储的登录过期且无法刷新,每个请求都会失败,显示 [`Login expired · Please run /login`](/docs/zh-CN/errors#login-expired),直到您再次登录。在 v2.1.206 之前,过期的登录显示为模型错误。

157 157 

158该警告仅在 claude.ai 或 Claude Console 登录是活跃凭证时出现,而不是在云提供商、`ANTHROPIC_API_KEY`、`ANTHROPIC_AUTH_TOKEN` 或 `apiKeyHelper` 提供凭证时出现。158该警告仅在 claude.ai 或 Claude Console 登录是活跃凭证时出现,而不是在云提供商、`ANTHROPIC_API_KEY`、`ANTHROPIC_AUTH_TOKEN` 或 `apiKeyHelper` 提供凭证时出现。

159 159 

160对于运行无人值守的会话,提前续期最为重要。在 [agent view 中的后台会话](/zh-CN/agent-view) 或 [Remote Control](/zh-CN/remote-control) 会话一旦登录过期,就会停止进行,并且在您再次登录之前无法恢复。160对于运行无人值守的会话,提前续期最为重要。在 [agent view 中的后台会话](/docs/zh-CN/agent-view) 或 [Remote Control](/docs/zh-CN/remote-control) 会话一旦登录过期,就会停止进行,并且在您再次登录之前无法恢复。

161 161 

162<h3 id="authentication-precedence">162<h3 id="authentication-precedence">

163 身份验证优先级163 身份验证优先级


165 165 

166当存在多个凭证时,Claude Code 按以下顺序选择一个:166当存在多个凭证时,Claude Code 按以下顺序选择一个:

167 167 

1681. 云提供商凭证,当设置了 `CLAUDE_CODE_USE_BEDROCK`、`CLAUDE_CODE_USE_VERTEX` 或 `CLAUDE_CODE_USE_FOUNDRY` 时。有关设置,请参阅 [第三方集成](/zh-CN/third-party-integrations)。1681. 云提供商凭证,当设置了 `CLAUDE_CODE_USE_BEDROCK`、`CLAUDE_CODE_USE_VERTEX` 或 `CLAUDE_CODE_USE_FOUNDRY` 时。有关设置,请参阅 [第三方集成](/docs/zh-CN/third-party-integrations)。

1692. `ANTHROPIC_AUTH_TOKEN` 环境变量。作为 `Authorization: Bearer` 标头发送。当通过 [LLM 网关或代理](/zh-CN/llm-gateway) 进行路由时使用此选项,该网关或代理使用持有者令牌而不是 Anthropic API 密钥进行身份验证。1692. `ANTHROPIC_AUTH_TOKEN` 环境变量。作为 `Authorization: Bearer` 标头发送。当通过 [LLM 网关或代理](/docs/zh-CN/llm-gateway) 进行路由时使用此选项,该网关或代理使用持有者令牌而不是 Anthropic API 密钥进行身份验证。

1703. `ANTHROPIC_API_KEY` 环境变量。作为 `X-Api-Key` 标头发送。用于直接 Anthropic API 访问,使用来自 [Claude Console](https://platform.claude.com) 的密钥。在交互模式下,系统会提示您一次批准或拒绝该密钥,您的选择会被记住。要稍后更改它,请使用 `/config` 中的"使用自定义 API 密钥"切换。该切换仅在 `ANTHROPIC_API_KEY` 在您的环境中设置时出现。在非交互模式(`-p`)下,当密钥存在时始终使用该密钥。1703. `ANTHROPIC_API_KEY` 环境变量。作为 `X-Api-Key` 标头发送。用于直接 Anthropic API 访问,使用来自 [Claude Console](https://platform.claude.com) 的密钥。在交互模式下,系统会提示您一次批准或拒绝该密钥,您的选择会被记住。要稍后更改它,请使用 `/config` 中的"使用自定义 API 密钥"切换。该切换仅在 `ANTHROPIC_API_KEY` 在您的环境中设置时出现。在非交互模式(`-p`)下,当密钥存在时始终使用该密钥。

1714. [`apiKeyHelper`](/zh-CN/settings#available-settings) 脚本输出。用于动态或轮换凭证,例如从保管库获取的短期令牌。1714. [`apiKeyHelper`](/docs/zh-CN/settings#available-settings) 脚本输出。用于动态或轮换凭证,例如从保管库获取的短期令牌。

1725. `CLAUDE_CODE_OAUTH_TOKEN` 环境变量。由 [`claude setup-token`](#generate-a-long-lived-token) 生成的长期 OAuth 令牌。用于 CI 管道和脚本,其中浏览器登录不可用。1725. `CLAUDE_CODE_OAUTH_TOKEN` 环境变量。由 [`claude setup-token`](#generate-a-long-lived-token) 生成的长期 OAuth 令牌。用于 CI 管道和脚本,其中浏览器登录不可用。

1736. 来自 `/login` 的订阅 OAuth 凭证。这是 Claude Pro、Max、Team 和 Enterprise 用户的默认设置。1736. 来自 `/login` 的订阅 OAuth 凭证。这是 Claude Pro、Max、Team 和 Enterprise 用户的默认设置。

174 174 

175一个已签名的 [Claude apps gateway](/zh-CN/claude-apps-gateway) 会话位于此列表之外:它是一个提供商选择,如 Amazon Bedrock 或 Google Cloud 的 Agent Platform,并且它优先于它们。当网关会话存在时,即使设置了 `CLAUDE_CODE_USE_BEDROCK`、`CLAUDE_CODE_USE_VERTEX` 或 `CLAUDE_CODE_USE_FOUNDRY`,CLI 也会使用网关令牌进行身份验证,上面的持有者令牌、API 密钥和 `apiKeyHelper` 条目不会被使用。175一个已签名的 [Claude apps gateway](/docs/zh-CN/claude-apps-gateway) 会话位于此列表之外:它是一个提供商选择,如 Amazon Bedrock 或 Google Cloud 的 Agent Platform,并且它优先于它们。当网关会话存在时,即使设置了 `CLAUDE_CODE_USE_BEDROCK`、`CLAUDE_CODE_USE_VERTEX` 或 `CLAUDE_CODE_USE_FOUNDRY`,CLI 也会使用网关令牌进行身份验证,上面的持有者令牌、API 密钥和 `apiKeyHelper` 条目不会被使用。

176 176 

177如果您有活跃的 Claude 订阅,但环境中也设置了 `ANTHROPIC_API_KEY`,则 API 密钥在批准后优先。如果密钥属于已禁用或过期的组织,这可能会导致身份验证失败。运行 `unset ANTHROPIC_API_KEY` 以回退到您的订阅,并检查 `/status` 以确认哪种方法处于活跃状态。`Login method` 行显示您的订阅帐户,当 API 密钥在使用时会出现 `API key` 行。177如果您有活跃的 Claude 订阅,但环境中也设置了 `ANTHROPIC_API_KEY`,则 API 密钥在批准后优先。如果密钥属于已禁用或过期的组织,这可能会导致身份验证失败。运行 `unset ANTHROPIC_API_KEY` 以回退到您的订阅,并检查 `/status` 以确认哪种方法处于活跃状态。`Login method` 行显示您的订阅帐户,当 API 密钥在使用时会出现 `API key` 行。

178 178 

179[Claude Code on the Web](/zh-CN/claude-code-on-the-web) 始终使用您的订阅凭证。如果您在沙箱环境中设置 `ANTHROPIC_API_KEY` 或 `ANTHROPIC_AUTH_TOKEN`,它不会覆盖您的订阅凭证。179[Claude Code on the Web](/docs/zh-CN/claude-code-on-the-web) 始终使用您的订阅凭证。如果您在沙箱环境中设置 `ANTHROPIC_API_KEY` 或 `ANTHROPIC_AUTH_TOKEN`,它不会覆盖您的订阅凭证。

180 180 

181<h3 id="generate-a-long-lived-token">181<h3 id="generate-a-long-lived-token">

182 生成长期令牌182 生成长期令牌


194export CLAUDE_CODE_OAUTH_TOKEN=your-token194export CLAUDE_CODE_OAUTH_TOKEN=your-token

195```195```

196 196 

197此令牌使用您的 Claude 订阅进行身份验证,需要 Pro、Max、Team 或 Enterprise 计划。它的范围仅限于推理,无法建立 [Remote Control](/zh-CN/remote-control) 会话。197此令牌使用您的 Claude 订阅进行身份验证,需要 Pro、Max、Team 或 Enterprise 计划。它的范围仅限于推理,无法建立 [Remote Control](/docs/zh-CN/remote-control) 会话。

198 198 

199[Bare mode](/zh-CN/headless#start-faster-with-bare-mode) 不读取 `CLAUDE_CODE_OAUTH_TOKEN`。如果您的脚本传递 `--bare`,请改用 `ANTHROPIC_API_KEY` 或 `apiKeyHelper` 进行身份验证。199[Bare mode](/docs/zh-CN/headless#start-faster-with-bare-mode) 不读取 `CLAUDE_CODE_OAUTH_TOKEN`。如果您的脚本传递 `--bare`,请改用 `ANTHROPIC_API_KEY` 或 `apiKeyHelper` 进行身份验证。

Details

6 6 

7> 告诉自动模式分类器您的组织信任哪些代码库、存储桶和域。设置环境上下文,覆盖默认的阻止和允许规则,并使用自动模式 CLI 子命令检查您的有效配置。7> 告诉自动模式分类器您的组织信任哪些代码库、存储桶和域。设置环境上下文,覆盖默认的阻止和允许规则,并使用自动模式 CLI 子命令检查您的有效配置。

8 8 

9[自动模式](/zh-CN/permission-modes#eliminate-prompts-with-auto-mode)让 Claude Code 无需常规权限提示即可运行,通过将工具调用路由到一个分类器,该分类器会阻止任何不可逆、破坏性或针对您环境外的操作。拒绝和显式询问规则在分类器之前进行评估,仍然会阻止或提示。使用 `autoMode` 设置块告诉该分类器您的组织信任哪些代码库、存储桶和域,以便它停止阻止常规内部操作。9[自动模式](/docs/zh-CN/permission-modes#eliminate-prompts-with-auto-mode)让 Claude Code 无需常规权限提示即可运行,通过将工具调用路由到一个分类器,该分类器会阻止任何不可逆、破坏性或针对您环境外的操作。拒绝和显式询问规则在分类器之前进行评估,仍然会阻止或提示。使用 `autoMode` 设置块告诉该分类器您的组织信任哪些代码库、存储桶和域,以便它停止阻止常规内部操作。

10 10 

11<Note>11<Note>

12 自动模式可供所有提供商上的所有用户使用,包括 Anthropic API、Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 和已登录的 [Claude 应用网关](/zh-CN/claude-apps-gateway)会话。如果 Claude Code 报告您的账户无法使用自动模式,请检查[完整要求](/zh-CN/permission-modes#eliminate-prompts-with-auto-mode),其中还涵盖了支持的模型和 Team 和 Enterprise 计划上的所有者启用。{/* min-version: 2.1.207 */}在 v2.1.158 到 v2.1.206 中,Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 和 Claude 应用网关会话上的自动模式需要设置 `CLAUDE_CODE_ENABLE_AUTO_MODE=1`;v2.1.207 移除了该要求。12 自动模式可供所有提供商上的所有用户使用,包括 Anthropic API、Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 和已登录的 [Claude 应用网关](/docs/zh-CN/claude-apps-gateway)会话。如果 Claude Code 报告您的账户无法使用自动模式,请检查[完整要求](/docs/zh-CN/permission-modes#eliminate-prompts-with-auto-mode),其中还涵盖了支持的模型和 Team 和 Enterprise 计划上的所有者启用。在 v2.1.158 到 v2.1.206 中,Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 和 Claude 应用网关会话上的自动模式需要设置 `CLAUDE_CODE_ENABLE_AUTO_MODE=1`;v2.1.207 移除了该要求。

13</Note>13</Note>

14 14 

15默认情况下,分类器仅信任工作目录和当前代码库的已配置远程。推送到您公司的源代码控制组织或写入团队云存储桶等操作会被阻止,直到您将它们添加到 `autoMode.environment`。15默认情况下,分类器仅信任工作目录和当前代码库的已配置远程。推送到您公司的源代码控制组织或写入团队云存储桶等操作会被阻止,直到您将它们添加到 `autoMode.environment`。

16 16 

17有关如何启用自动模式以及它默认阻止的内容,请参阅[权限模式](/zh-CN/permission-modes#eliminate-prompts-with-auto-mode)。本页是配置参考。17有关如何启用自动模式以及它默认阻止的内容,请参阅[权限模式](/docs/zh-CN/permission-modes#eliminate-prompts-with-auto-mode)。本页是配置参考。

18 18 

19本页涵盖如何:19本页涵盖如何:

20 20 


32 32 

33自动模式默认允许推送到您的工作分支、例行推送到存储库默认分支以及拉取请求创建。分类器仅在存在风险时(例如强制推送或绕过您设置的审查的内容)才会阻止推送。如果您想在每次推送或拉取请求之前进行人工检查点,请添加权限规则:以下配方将为其他所有操作保持自动模式开启。33自动模式默认允许推送到您的工作分支、例行推送到存储库默认分支以及拉取请求创建。分类器仅在存在风险时(例如强制推送或绕过您设置的审查的内容)才会阻止推送。如果您想在每次推送或拉取请求之前进行人工检查点,请添加权限规则:以下配方将为其他所有操作保持自动模式开启。

34 34 

35最直接的机制是 [`permissions.ask`](/zh-CN/permissions#permission-rule-syntax)。内容范围的 ask 规则(如下面的规则)在分类器之前进行评估,并且即使在自动模式下也始终强制权限提示,因为显式 ask 规则是您明确表示要对该操作进行提示的意图。在您的 [settings](/zh-CN/settings#settings-files) 中添加规则:35最直接的机制是 [`permissions.ask`](/docs/zh-CN/permissions#permission-rule-syntax)。内容范围的 ask 规则(如下面的规则)在分类器之前进行评估,并且即使在自动模式下也始终强制权限提示,因为显式 ask 规则是您明确表示要对该操作进行提示的意图。在您的 [settings](/docs/zh-CN/settings#settings-files) 中添加规则:

36 36 

37```json theme={null}37```json theme={null}

38{38{


51| :-------- | :-------------------- | :---------------------------------------------------------------------------------------------------------------- |51| :-------- | :-------------------- | :---------------------------------------------------------------------------------------------------------------- |

52| 在操作前提示 | `permissions.ask` | 始终为内容范围的规则(如上面的配方)提示。分类器无法自动批准匹配的操作。 |52| 在操作前提示 | `permissions.ask` | 始终为内容范围的规则(如上面的配方)提示。分类器无法自动批准匹配的操作。 |

53| 永不运行操作 | `permissions.deny` | 在咨询分类器之前阻止。分类器和用户意图都无法覆盖它。 |53| 永不运行操作 | `permissions.deny` | 在咨询分类器之前阻止。分类器和用户意图都无法覆盖它。 |

54| 此会话的一次性边界 | 在对话中说明,例如"在我审查之前不要推送" | 分类器阻止匹配的操作,但如果 [context compaction](/zh-CN/costs#reduce-token-usage) 删除了说明该边界的消息,边界可能会丢失。使用 ask 或 deny 规则以获得持久保证。 |54| 此会话的一次性边界 | 在对话中说明,例如"在我审查之前不要推送" | 分类器阻止匹配的操作,但如果 [context compaction](/docs/zh-CN/costs#reduce-token-usage) 删除了说明该边界的消息,边界可能会丢失。使用 ask 或 deny 规则以获得持久保证。 |

55 55 

56<h2 id="where-the-classifier-reads-configuration">56<h2 id="where-the-classifier-reads-configuration">

57 分类器读取配置的位置57 分类器读取配置的位置

58</h2>58</h2>

59 59 

60分类器读取与 Claude 本身加载的相同 [CLAUDE.md](/zh-CN/memory) 内容,因此项目的 CLAUDE.md 中的指令(如"从不强制推送")会同时引导 Claude 和分类器。从那里开始了解项目约定和行为规则。60分类器读取与 Claude 本身加载的相同 [CLAUDE.md](/docs/zh-CN/memory) 内容,因此项目的 CLAUDE.md 中的指令(如"从不强制推送")会同时引导 Claude 和分类器。从那里开始了解项目约定和行为规则。

61 61 

62对于跨项目应用的规则,例如受信任的基础设施或组织范围的拒绝规则,请使用 `autoMode` 设置块。分类器从以下范围读取 `autoMode`:62对于跨项目应用的规则,例如受信任的基础设施或组织范围的拒绝规则,请使用 `autoMode` 设置块。分类器从以下范围读取 `autoMode`:

63 63 

64| 范围 | 文件 | 用途 |64| 范围 | 文件 | 用途 |

65| :------------------------- | :------------------------------------- | :--------------- |65| :------------------------- | :------------------------------------- | :--------------- |

66| 单个开发者 | `~/.claude/settings.json` | 个人受信任的基础设施 |66| 单个开发者 | `~/.claude/settings.json` | 个人受信任的基础设施 |

67| 组织范围 | [托管设置](/zh-CN/server-managed-settings) | 分发给所有开发者的受信任基础设施 |67| 组织范围 | [托管设置](/docs/zh-CN/server-managed-settings) | 分发给所有开发者的受信任基础设施 |

68| `--settings` 标志或 Agent SDK | 内联 JSON | 自动化的每次调用覆盖 |68| `--settings` 标志或 Agent SDK | 内联 JSON | 自动化的每次调用覆盖 |

69 69 

70分类器不从 `.claude/settings.json` 或 `.claude/settings.local.json` 中的项目设置读取 `autoMode`。两个文件都位于仓库目录中,因此已检入的仓库或构建步骤可能会注入自己的允许规则。在 v2.1.207 之前,分类器也读取 `.claude/settings.local.json`;将该文件中的任何 `autoMode` 块移动到 `~/.claude/settings.json`。排除 `.claude/settings.local.json` 也解决了仓库提交该文件或本地工具或构建步骤写入该文件的情况。70分类器不从 `.claude/settings.json` 或 `.claude/settings.local.json` 中的项目设置读取 `autoMode`。两个文件都位于仓库目录中,因此已检入的仓库或构建步骤可能会注入自己的允许规则。在 v2.1.207 之前,分类器也读取 `.claude/settings.local.json`;将该文件中的任何 `autoMode` 块移动到 `~/.claude/settings.json`。排除 `.claude/settings.local.json` 也解决了仓库提交该文件或本地工具或构建步骤写入该文件的情况。


72来自每个范围的条目被合并。开发者可以使用个人条目扩展 `environment`、`allow`、`soft_deny` 和 `hard_deny`,但不能删除托管设置提供的条目。由于允许规则在分类器内充当软块规则的例外,开发者添加的 `allow` 条目可以覆盖组织的 `soft_deny` 条目:组合是累加的,而不是硬策略边界。72来自每个范围的条目被合并。开发者可以使用个人条目扩展 `environment`、`allow`、`soft_deny` 和 `hard_deny`,但不能删除托管设置提供的条目。由于允许规则在分类器内充当软块规则的例外,开发者添加的 `allow` 条目可以覆盖组织的 `soft_deny` 条目:组合是累加的,而不是硬策略边界。

73 73 

74<Note>74<Note>

75 分类器是在[权限系统](/zh-CN/permissions)之后运行的第二道门。对于必须永远不运行的操作,无论用户意图或分类器配置如何,请在托管设置中使用 `permissions.deny`,它在咨询分类器之前阻止操作,无法被覆盖。75 分类器是在[权限系统](/docs/zh-CN/permissions)之后运行的第二道门。对于必须永远不运行的操作,无论用户意图或分类器配置如何,请在托管设置中使用 `permissions.deny`,它在咨询分类器之前阻止操作,无法被覆盖。

76</Note>76</Note>

77 77 

78<h2 id="define-trusted-infrastructure">78<h2 id="define-trusted-infrastructure">


87 * **组织**87 * **组织**

88 * **Claude Code 的主要用途**:默认为软件开发88 * **Claude Code 的主要用途**:默认为软件开发

89 * **云提供商**89 * **云提供商**

90 * **代码库可见性**:除非其远程主机和名称另有说明,{/* min-version: 2.1.200 */}或会话中较早的可见性检查分类器读取的内容显示它是公开的,否则代码库被假定为私有。分类器读取您的消息和 Claude 运行的命令,而不是它们的输出,因此证据必须是它能读取的内容,例如您自己的消息将存储库命名为公开;单独的 `gh repo view` 的输出无法到达它。转录证据检查需要 Claude Code v2.1.200 或更高版本90 * **代码库可见性**:除非其远程主机和名称另有说明,或会话中较早的可见性检查分类器读取的内容显示它是公开的,否则代码库被假定为私有。分类器读取您的消息和 Claude 运行的命令,而不是它们的输出,因此证据必须是它能读取的内容,例如您自己的消息将存储库命名为公开;单独的 `gh repo view` 的输出无法到达它。转录证据检查需要 Claude Code v2.1.200 或更高版本

91 * **内部共享 / 代码片段托管**:公共粘贴和 gist 服务被视为在信任边界之外,直到您命名一个91 * **内部共享 / 代码片段托管**:公共粘贴和 gist 服务被视为在信任边界之外,直到您命名一个

92 * **特定于组织的 CLI**92 * **特定于组织的 CLI**

93 * **密钥管理**93 * **密钥管理**


96 * **网络态势**96 * **网络态势**

97 * **受保护的部署命名空间 / 环境**:回退到敏感远程目标启发式方法,直到您命名它们97 * **受保护的部署命名空间 / 环境**:回退到敏感远程目标启发式方法,直到您命名它们

98 * **数据保留 / 解密**98 * **数据保留 / 解密**

99* **信任槽**:命名分类器视为在您边界内的内容。槽位是受信任的代码库、源代码控制、受信任的内部域、受信任的云存储桶、关键内部服务和内部包注册表。代码库和源代码控制条目默认为工作代码库及其配置的远程。所有其他信任槽默认为 `None configured`,因此在您添加之前没有其他内容是受信任的。{/* min-version: 2.1.203 */}存储库的可见性仅限于机密材料:私有存储库是机密材料的可接受目标,但将存储库设为私有永远不会清除秘密、个人或受信任的数据进入其中,分类器将从工作存储库外部移植、重新指向或首次读取的内容视为不是该存储库自己的工作。此范围界定需要 Claude Code v2.1.203 或更高版本。99* **信任槽**:命名分类器视为在您边界内的内容。槽位是受信任的代码库、源代码控制、受信任的内部域、受信任的云存储桶、关键内部服务和内部包注册表。代码库和源代码控制条目默认为工作代码库及其配置的远程。所有其他信任槽默认为 `None configured`,因此在您添加之前没有其他内容是受信任的。存储库的可见性仅限于机密材料:私有存储库是机密材料的可接受目标,但将存储库设为私有永远不会清除秘密、个人或受信任的数据进入其中,分类器将从工作存储库外部移植、重新指向或首次读取的内容视为不是该存储库自己的工作。此范围界定需要 Claude Code v2.1.203 或更高版本。

100* **敏感性槽**:命名保护规则视为高风险的内容。槽位是敏感数据位置和受众、敏感远程目标和受保护的 IaC 范围。每个都默认为广泛的启发式方法,例如将任何名称中包含 `prod` 或 `production` 的主机或命名空间视为敏感远程目标,因此保护规则在您配置任何内容之前就处于活动状态。在敏感性槽中命名具体目标会使这些规则应用于命名的目标而不是启发式方法。100* **敏感性槽**:命名保护规则视为高风险的内容。槽位是敏感数据位置和受众、敏感远程目标和受保护的 IaC 范围。每个都默认为广泛的启发式方法,例如将任何名称中包含 `prod` 或 `production` 的主机或命名空间视为敏感远程目标,因此保护规则在您配置任何内容之前就处于活动状态。在敏感性槽中命名具体目标会使这些规则应用于命名的目标而不是启发式方法。

101 101 

102要在默认值旁边添加您自己的条目,请在数组中包含字面字符串 `"$defaults"`。默认条目会在该位置被拼接进去,因此您的自定义条目可以在它们之前或之后。102要在默认值旁边添加您自己的条目,请在数组中包含字面字符串 `"$defaults"`。默认条目会在该位置被拼接进去,因此您的自定义条目可以在它们之前或之后。


125* **受信任的内部域**:您网络内的 API、仪表板和服务的主机名,例如 `*.internal.example.com`125* **受信任的内部域**:您网络内的 API、仪表板和服务的主机名,例如 `*.internal.example.com`

126* **关键内部服务**:CI、工件注册表、内部包索引、事件工具126* **关键内部服务**:CI、工件注册表、内部包索引、事件工具

127* **内部包注册表**:私有 npm、PyPI 或其他注册表,安装应该通过它路由,因此绕过它安装到公共注册表的安装会被阻止127* **内部包注册表**:私有 npm、PyPI 或其他注册表,安装应该通过它路由,因此绕过它安装到公共注册表的安装会被阻止

128* **敏感数据位置和受众**:保存个人数据、机密业务数据、凭证、受管制数据或类似敏感材料的存储桶、数据库或路径,以及每个位置中的数据可能与之共享的受众,以便分类器保护这些位置而不是从内容猜测。{/* min-version: 2.1.195 */}{/* max-version: 2.1.197 */}Claude Code v2.1.195 至 v2.1.197 将此条目命名为 PII / 受管制数据位置,仅涵盖保存个人或受管制数据的位置,不包括受众维度128* **敏感数据位置和受众**:保存个人数据、机密业务数据、凭证、受管制数据或类似敏感材料的存储桶、数据库或路径,以及每个位置中的数据可能与之共享的受众,以便分类器保护这些位置而不是从内容猜测。Claude Code v2.1.195 至 v2.1.197 将此条目命名为 PII / 受管制数据位置,仅涵盖保存个人或受管制数据的位置,不包括受众维度

129* **敏感远程目标**:计为生产的命名空间、主机或容器,因此远程 shell 和端口转发到它们需要您的明确批准129* **敏感远程目标**:计为生产的命名空间、主机或容器,因此远程 shell 和端口转发到它们需要您的明确批准

130* **受保护的 IaC 范围**:其应用或销毁应始终需要您命名更改的基础设施资源130* **受保护的 IaC 范围**:其应用或销毁应始终需要您命名更改的基础设施资源

131* **其他上下文**:受管制行业的约束、多租户基础设施或影响分类器应将什么视为风险的合规要求131* **其他上下文**:受管制行业的约束、多租户基础设施或影响分类器应将什么视为风险的合规要求


165* `autoMode.soft_deny`:用户意图可以清除的破坏性操作165* `autoMode.soft_deny`:用户意图可以清除的破坏性操作

166* `autoMode.allow`:软阻止规则的例外166* `autoMode.allow`:软阻止规则的例外

167 167 

168每个都是散文描述的数组,读作自然语言规则。对于在分类器之前运行的基于工具模式的硬阻止,请使用 [`permissions.deny`](/zh-CN/permissions)。168每个都是散文描述的数组,读作自然语言规则。对于在分类器之前运行的基于工具模式的硬阻止,请使用 [`permissions.deny`](/docs/zh-CN/permissions)。

169 169 

170在分类器内,优先级分为四个层级:170在分类器内,优先级分为四个层级:

171 171 


250claude auto-mode defaults250claude auto-mode defaults

251```251```

252 252 

253{/* min-version: 2.1.208 */}要读取一条规则的完整措辞而不通过 `jq` 管道,请传递 `--label` 和规则标签的开头,例如 `claude auto-mode defaults --label 'Git Destructive'`。匹配是对每条规则标签的不区分大小写的前缀,没有匹配的部分打印为空列表。需要 Claude Code v2.1.208 或更高版本。253要读取一条规则的完整措辞而不通过 `jq` 管道,请传递 `--label` 和规则标签的开头,例如 `claude auto-mode defaults --label 'Git Destructive'`。匹配是对每条规则标签的不区分大小写的前缀,没有匹配的部分打印为空列表。需要 Claude Code v2.1.208 或更高版本。

254 254 

255打印分类器实际使用的内容作为 JSON,应用您的设置(如果设置)或使用默认值:255打印分类器实际使用的内容作为 JSON,应用您的设置(如果设置)或使用默认值:

256 256 


278 278 

279对同一目标的重复拒绝通常意味着分类器缺少上下文。将该目标添加到 `autoMode.environment`,然后运行 `claude auto-mode config` 确认它生效。279对同一目标的重复拒绝通常意味着分类器缺少上下文。将该目标添加到 `autoMode.environment`,然后运行 `claude auto-mode config` 确认它生效。

280 280 

281要以编程方式对拒绝做出反应,请使用 [`PermissionDenied` hook](/zh-CN/hooks#permissiondenied)。281要以编程方式对拒绝做出反应,请使用 [`PermissionDenied` hook](/docs/zh-CN/hooks#permissiondenied)。

282 282 

283<h2 id="see-also">283<h2 id="see-also">

284 另请参阅284 另请参阅

285</h2>285</h2>

286 286 

287* [权限模式](/zh-CN/permission-modes#eliminate-prompts-with-auto-mode):自动模式是什么、它默认阻止什么以及如何启用它287* [权限模式](/docs/zh-CN/permission-modes#eliminate-prompts-with-auto-mode):自动模式是什么、它默认阻止什么以及如何启用它

288* [托管设置](/zh-CN/server-managed-settings):在您的组织中部署 `autoMode` 配置288* [托管设置](/docs/zh-CN/server-managed-settings):在您的组织中部署 `autoMode` 配置

289* [权限](/zh-CN/permissions):在分类器运行之前应用的允许、询问和拒绝规则289* [权限](/docs/zh-CN/permissions):在分类器运行之前应用的允许、询问和拒绝规则

290* [设置](/zh-CN/settings):完整的设置参考,包括 `autoMode` 键290* [设置](/docs/zh-CN/settings):完整的设置参考,包括 `autoMode` 键

Details

21Claude Code 跟踪其文件编辑工具所做的所有更改:21Claude Code 跟踪其文件编辑工具所做的所有更改:

22 22 

23* 每个用户提示都会创建一个新的 checkpoint23* 每个用户提示都会创建一个新的 checkpoint

24* Claude Code 在一个会话中保留最近 100 个 checkpoint 的文件快照。丢弃较旧的 checkpoint 会删除没有其他 checkpoint 引用的快照文件,除了每个文件的第一个快照,VS Code 扩展将其用作会话 diffs 的基线。{/* min-version: 2.1.208 */}在 v2.1.208 之前,这些被取代的快照文件会保留在磁盘上,直到会话被清理。24* Claude Code 在一个会话中保留最近 100 个 checkpoint 的文件快照。丢弃较旧的 checkpoint 会删除没有其他 checkpoint 引用的快照文件,除了每个文件的第一个快照,VS Code 扩展将其用作会话 diffs 的基线。在 v2.1.208 之前,这些被取代的快照文件会保留在磁盘上,直到会话被清理。

25* Checkpoints 与对话一起保存,因此恢复的会话仍然可以 `/rewind` 到它们25* Checkpoints 与对话一起保存,因此恢复的会话仍然可以 `/rewind` 到它们

26* 在 30 天后自动清理(可配置)26* 在 30 天后自动清理(可配置)

27 27 


66在这两种情况下,原始消息都保存在会话记录中,因此 Claude 可以在需要时参考详细信息。您可以输入可选说明来指导摘要的重点。这类似于 `/compact`,但更有针对性:您不是总结整个对话,而是选择所选消息的哪一侧进行压缩。66在这两种情况下,原始消息都保存在会话记录中,因此 Claude 可以在需要时参考详细信息。您可以输入可选说明来指导摘要的重点。这类似于 `/compact`,但更有针对性:您不是总结整个对话,而是选择所选消息的哪一侧进行压缩。

67 67 

68<Note>68<Note>

69 总结将您保持在同一会话中并压缩上下文。如果您想尝试不同的方法,同时保持原始会话完整,请改用 [fork](/zh-CN/sessions#branch-a-session)(`claude --continue --fork-session`)。69 总结将您保持在同一会话中并压缩上下文。如果您想尝试不同的方法,同时保持原始会话完整,请改用 [fork](/docs/zh-CN/sessions#branch-a-session)(`claude --continue --fork-session`)。

70</Note>70</Note>

71 71 

72<h2 id="common-use-cases">72<h2 id="common-use-cases">


118 另请参阅118 另请参阅

119</h2>119</h2>

120 120 

121* [Interactive mode](/zh-CN/interactive-mode) - 快捷键和会话控制121* [Interactive mode](/docs/zh-CN/interactive-mode) - 快捷键和会话控制

122* [Commands](/zh-CN/commands) - 使用 `/rewind` 访问 checkpoints122* [Commands](/docs/zh-CN/commands) - 使用 `/rewind` 访问 checkpoints

123* [CLI reference](/zh-CN/cli-reference) - 命令行选项123* [CLI reference](/docs/zh-CN/cli-reference) - 命令行选项

Details

62<Note>62<Note>

63 **在您的私有网络上部署。** Claude Code 仅连接到地址为私有的网关。这是一个安全防护,因为受信任的网关可以推送在开发人员机器上运行命令的设置。将网关放在内部负载均衡器或 VPN 后面,并给它一个仅解析为私有 IP 的主机名。63 **在您的私有网络上部署。** Claude Code 仅连接到地址为私有的网关。这是一个安全防护,因为受信任的网关可以推送在开发人员机器上运行命令的设置。将网关放在内部负载均衡器或 VPN 后面,并给它一个仅解析为私有 IP 的主机名。

64 64 

65 Anthropic 运营的公共网关端点是例外:`/login` 通过 `https://` 接受它们。这些是 Anthropic 本身运营的一小组固定网关;它们不是您可以选择或配置的部署选项。该列表被编译到 Claude Code 中,因此没有配置可以向其添加主机名,您托管的任何网关都不符合豁免条件。{/* min-version: 2.1.206 */}在 v2.1.206 之前,`/login` 像拒绝任何其他公共地址一样拒绝这些端点。65 Anthropic 运营的公共网关端点是例外:`/login` 通过 `https://` 接受它们。这些是 Anthropic 本身运营的一小组固定网关;它们不是您可以选择或配置的部署选项。该列表被编译到 Claude Code 中,因此没有配置可以向其添加主机名,您托管的任何网关都不符合豁免条件。在 v2.1.206 之前,`/login` 像拒绝任何其他公共地址一样拒绝这些端点。

66</Note>66</Note>

67 67 

68<h3 id="prerequisites">68<h3 id="prerequisites">


72在开始之前,请准备好以下内容:72在开始之前,请准备好以下内容:

73 73 

74| 您需要 | 详情 |74| 您需要 | 详情 |

75| --------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |75| --------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

76| Claude Code v2.1.195 或更高版本 | `claude gateway` 子命令和网关登录流在 v2.1.195 中发布。早期的公开版本不包含它们。运行网关服务器的机器和每个开发人员的机器都必须是 v2.1.195 或更高版本;运行 `claude update` 获取最新版本。 {/* min-version: 2.1.198 */}[Claude Platform on AWS 上游](/docs/zh-CN/claude-apps-gateway-config#claude-platform-on-aws)在网关服务器上需要 Claude Code v2.1.198 或更高版本。 |76| Claude Code v2.1.195 或更高版本 | `claude gateway` 子命令和网关登录流在 v2.1.195 中发布。早期的公开版本不包含它们。运行网关服务器的机器和每个开发人员的机器都必须是 v2.1.195 或更高版本;运行 `claude update` 获取最新版本。 [Claude Platform on AWS 上游](/docs/zh-CN/claude-apps-gateway-config#claude-platform-on-aws)在网关服务器上需要 Claude Code v2.1.198 或更高版本。 |

77| OpenID Connect (OIDC) 身份提供商 | Okta、Microsoft Entra ID、Google Workspace、Keycloak 或 Dex,或任何其他符合 OIDC 的 IdP,如 PingFederate。网关针对它运行标准 OIDC 发现和授权代码流。不支持 SAML 和 LDAP。 |77| OpenID Connect (OIDC) 身份提供商 | Okta、Microsoft Entra ID、Google Workspace、Keycloak 或 Dex,或任何其他符合 OIDC 的 IdP,如 PingFederate。网关针对它运行标准 OIDC 发现和授权代码流。不支持 SAML 和 LDAP。 |

78| PostgreSQL 14 或更高版本 | 支持设备登录流,其中浏览器回调写入,轮询 CLI 读取,加上速率限制计数器。任何托管 Postgres 都可以,包括最小层级。在没有配置支出限制的情况下,网关存储几 KB 的短期身份验证状态;使用[支出限制](/docs/zh-CN/claude-apps-gateway-spend-limits),它还保存应备份的持久支出、审计和身份表。建议通过 `?sslmode=require` 使用 TLS。 |78| PostgreSQL 14 或更高版本 | 支持设备登录流,其中浏览器回调写入,轮询 CLI 读取,加上速率限制计数器。任何托管 Postgres 都可以,包括最小层级。在没有配置支出限制的情况下,网关存储几 KB 的短期身份验证状态;使用[支出限制](/docs/zh-CN/claude-apps-gateway-spend-limits),它还保存应备份的持久支出、审计和身份表。建议通过 `?sslmode=require` 使用 TLS。 |

79| 模型上游 | Amazon Bedrock 凭证、Claude Platform on AWS 凭证、Google Cloud 凭证、Microsoft Foundry 资源或 Anthropic API 密钥。支持多个上游和故障转移。 |79| 模型上游 | Amazon Bedrock 凭证、Claude Platform on AWS 凭证、Google Cloud 凭证、Microsoft Foundry 资源或 Anthropic API 密钥。支持多个上游和故障转移。 |

80| HTTPS | 网关必须可从开发人员笔记本电脑和用于登录的任何浏览器通过 `https://` 访问;网关在同一侦听器上提供设备验证页面。通过 `listen.tls` 提供 TLS 证书,或在 TLS 终止入口后运行并设置 `listen.public_url`。纯 `http://` 源仅在本地开发的环回上接受。 |80| HTTPS | 网关必须可从开发人员笔记本电脑和用于登录的任何浏览器通过 `https://` 访问;网关在同一侦听器上提供设备验证页面。通过 `listen.tls` 提供 TLS 证书,或在 TLS 终止入口后运行并设置 `listen.public_url`。纯 `http://` 源仅在本地开发的环回上接受。 |

81| 私有网络地址 | 在 `/login` 处,Claude Code 要求网关的主机名或 IP 地址仅解析为私有地址:RFC 1918、CGNAT `100.64.0.0/10`、IPv6 ULA `fc00::/7` 或本地开发的环回。检查在每个解析的 IP 上运行,因此如果名称解析到的任何地址是公共的,`/login` 会拒绝该 URL。如果开发人员机器通过公司代理路由 HTTPS,登录还要求代理主机解析为私有地址;如果不是,将网关主机添加到 `NO_PROXY`,以便 CLI 直接连接。{/* min-version: 2.1.206 */}Anthropic 运营的公共网关端点豁免于私有地址和代理检查:`/login` 通过精确主机名匹配接受它们通过 `https://`,因此私有网络要求仅适用于您自己托管的网关。在 v2.1.206 之前,`/login` 像拒绝任何其他公共地址一样拒绝 Anthropic 运营的端点。 |81| 私有网络地址 | 在 `/login` 处,Claude Code 要求网关的主机名或 IP 地址仅解析为私有地址:RFC 1918、CGNAT `100.64.0.0/10`、IPv6 ULA `fc00::/7` 或本地开发的环回。检查在每个解析的 IP 上运行,因此如果名称解析到的任何地址是公共的,`/login` 会拒绝该 URL。如果开发人员机器通过公司代理路由 HTTPS,登录还要求代理主机解析为私有地址;如果不是,将网关主机添加到 `NO_PROXY`,以便 CLI 直接连接。Anthropic 运营的公共网关端点豁免于私有地址和代理检查:`/login` 通过精确主机名匹配接受它们通过 `https://`,因此私有网络要求仅适用于您自己托管的网关。在 v2.1.206 之前,`/login` 像拒绝任何其他公共地址一样拒绝 Anthropic 运营的端点。 |

82| Linux 运行时 | 网关服务器仅在本机 Linux 二进制文件上运行。macOS 适用于本地开发。Windows 不支持作为服务器平台。 |82| Linux 运行时 | 网关服务器仅在本机 Linux 二进制文件上运行。macOS 适用于本地开发。Windows 不支持作为服务器平台。 |

83 83 

84网关服务器需要本机 `claude` 二进制文件;如[安装 Claude Code](/docs/zh-CN/setup) 中所述下载固定版本。服务器使用在 Claude Code 在 Node 下运行时不可用的运行时功能。如果您在启动时看到 `requires the native binary`,请切换到其中一种独立安装方法。84网关服务器需要本机 `claude` 二进制文件;如[安装 Claude Code](/docs/zh-CN/setup) 中所述下载固定版本。服务器使用在 Claude Code 在 Node 下运行时不可用的运行时功能。如果您在启动时看到 `requires the native binary`,请切换到其中一种独立安装方法。


326| 服务器端网络搜索 | 不可用 | CLI 无法看到网关路由到哪个上游提供商,因此无法验证网络搜索支持并在网关会话上禁用 WebSearch |326| 服务器端网络搜索 | 不可用 | CLI 无法看到网关路由到哪个上游提供商,因此无法验证网络搜索支持并在网关会话上禁用 WebSearch |

327| 标准提示缓存 | 可用 | `cache_control` 断点被转发到每个上游 |327| 标准提示缓存 | 可用 | `cache_control` 断点被转发到每个上游 |

328| 1 小时缓存 TTL | 不可用 | CLI 在网关会话上省略扩展缓存 TTL beta,因为并非网关可以路由到的每个上游都支持 1 小时 TTL,因此通过网关的提示缓存使用 5 分钟 TTL;请参阅上面的 beta 标头注释 |328| 1 小时缓存 TTL | 不可用 | CLI 在网关会话上省略扩展缓存 TTL beta,因为并非网关可以路由到的每个上游都支持 1 小时 TTL,因此通过网关的提示缓存使用 5 分钟 TTL;请参阅上面的 beta 标头注释 |

329| Auto 模式 | 可用 | 遵循[第三方提供商规则](/docs/zh-CN/permission-modes#enable-auto-mode-on-bedrock-agent-platform-or-foundry):仅第三方提供商上符合条件的模型可以使用它。{/* min-version: 2.1.207 */}在 v2.1.207 之前,网关会话上的 auto 模式需要设置 `CLAUDE_CODE_ENABLE_AUTO_MODE=1`,可通过托管策略 `env` 块交付 |329| Auto 模式 | 可用 | 遵循[第三方提供商规则](/docs/zh-CN/permission-modes#enable-auto-mode-on-bedrock-agent-platform-or-foundry):仅第三方提供商上符合条件的模型可以使用它。在 v2.1.207 之前,网关会话上的 auto 模式需要设置 `CLAUDE_CODE_ENABLE_AUTO_MODE=1`,可通过托管策略 `env` 块交付 |

330| 仅第一方优化,如全局缓存范围和令牌高效工具 | 不可用 | CLI 在网关会话上不启用它们;请参阅上面的 beta 标头注释 |330| 仅第一方优化,如全局缓存范围和令牌高效工具 | 不可用 | CLI 在网关会话上不启用它们;请参阅上面的 beta 标头注释 |

331| OTLP/gRPC | 不支持 | 仅 OTLP over HTTP |331| OTLP/gRPC | 不支持 | 仅 OTLP over HTTP |

332| SAML、LDAP 和其他非 OIDC 身份验证 | 不支持 | 仅 OIDC。如果需要,使用 OIDC 桥前置 |332| SAML、LDAP 和其他非 OIDC 身份验证 | 不支持 | 仅 OIDC。如果需要,使用 OIDC 桥前置 |

Details

20<Note>20<Note>

21 **在您的私有网络上部署。** Claude Code 仅连接到地址为私有的网关。这是一个安全防护,因为受信任的网关可以推送在开发者机器上运行命令的设置。将网关放在内部负载均衡器或 VPN 后面,并为其分配一个仅解析为私有 IP 的主机名。21 **在您的私有网络上部署。** Claude Code 仅连接到地址为私有的网关。这是一个安全防护,因为受信任的网关可以推送在开发者机器上运行命令的设置。将网关放在内部负载均衡器或 VPN 后面,并为其分配一个仅解析为私有 IP 的主机名。

22 22 

23 Anthropic 运营的公共网关端点是例外:`/login` 通过 `https://` 接受它们。这是一小组固定的由 Anthropic 本身运营的网关;它们不是您可以选择或配置的部署选项。该列表被编译到 Claude Code 中,因此没有配置可以向其添加主机名,您托管的任何网关都不符合豁免条件。{/* min-version: 2.1.206 */}在 v2.1.206 之前,`/login` 像拒绝任何其他公共地址一样拒绝这些端点。23 Anthropic 运营的公共网关端点是例外:`/login` 通过 `https://` 接受它们。这是一小组固定的由 Anthropic 本身运营的网关;它们不是您可以选择或配置的部署选项。该列表被编译到 Claude Code 中,因此没有配置可以向其添加主机名,您托管的任何网关都不符合豁免条件。在 v2.1.206 之前,`/login` 像拒绝任何其他公共地址一样拒绝这些端点。

24</Note>24</Note>

25 25 

26<h2 id="identity-provider-setup">26<h2 id="identity-provider-setup">

Details

138 138 

139每个云会话在 claude.ai 上都有一个成绩单 URL,会话可以从 `CLAUDE_CODE_REMOTE_SESSION_ID` 环境变量读取自己的 ID。使用这个在 PR 正文、提交消息、Slack 帖子或生成的报告中放置可追踪的链接,以便审查者可以打开生成它们的运行。139每个云会话在 claude.ai 上都有一个成绩单 URL,会话可以从 `CLAUDE_CODE_REMOTE_SESSION_ID` 环境变量读取自己的 ID。使用这个在 PR 正文、提交消息、Slack 帖子或生成的报告中放置可追踪的链接,以便审查者可以打开生成它们的运行。

140 140 

141从 v2.1.179 开始,Claude 在网络会话中创建的提交包括一个 `Claude-Session: <url>` git trailer,PR 正文包括会话 URL 在其自己的一行上。{/* min-version: 2.1.182 */}从 v2.1.182 开始,设置[`attribution.sessionUrl`](/docs/zh-CN/settings#attribution-settings)为 `false` 以省略 trailer 和 PR 正文链接。141从 v2.1.179 开始,Claude 在网络会话中创建的提交包括一个 `Claude-Session: <url>` git trailer,PR 正文包括会话 URL 在其自己的一行上。从 v2.1.182 开始,设置[`attribution.sessionUrl`](/docs/zh-CN/settings#attribution-settings)为 `false` 以省略 trailer 和 PR 正文链接。

142 142 

143要在提交或 PR 以外的其他内容中包含会话链接,如 Claude 发布的 Slack 消息或它写入的报告文件,请让 Claude 运行以下命令并使用其输出。该命令将环境变量值中的 `cse_` 前缀转换为成绩单 URL 期望的 `session_` 前缀:143要在提交或 PR 以外的其他内容中包含会话链接,如 Claude 发布的 Slack 消息或它写入的报告文件,请让 Claude 运行以下命令并使用其输出。该命令将环境变量值中的 `cse_` 前缀转换为成绩单 URL 期望的 `session_` 前缀:

144 144 


667 667 

668这在 claude.ai 上创建一个新的云会话。会话克隆你当前目录的 GitHub 远程,位于你的当前分支,所以如果你有本地提交,请先推送,因为 VM 从 GitHub 而不是你的机器克隆。`--cloud` 一次只能处理单个存储库。任务在云中运行,而你继续在本地工作。较旧的 `--remote` 拼写仍然作为 `--cloud` 的已弃用别名工作。668这在 claude.ai 上创建一个新的云会话。会话克隆你当前目录的 GitHub 远程,位于你的当前分支,所以如果你有本地提交,请先推送,因为 VM 从 GitHub 而不是你的机器克隆。`--cloud` 一次只能处理单个存储库。任务在云中运行,而你继续在本地工作。较旧的 `--remote` 拼写仍然作为 `--cloud` 的已弃用别名工作。

669 669 

670{/* min-version: 2.1.195 */}从 v2.1.195 开始,CLI 显示设置步骤的实时清单,例如克隆存储库和运行你的[设置脚本](#setup-scripts),同时云容器启动。你在容器配置期间输入的消息会被排队,并在会话准备好后发送。670从 v2.1.195 开始,CLI 显示设置步骤的实时清单,例如克隆存储库和运行你的[设置脚本](#setup-scripts),同时云容器启动。你在容器配置期间输入的消息会被排队,并在会话准备好后发送。

671 671 

672<Note>672<Note>

673 `--cloud` 创建云会话。`--remote-control` 无关:它公开本地 CLI 会话以从网络进行监控。请参阅[Remote Control](/docs/zh-CN/remote-control)。673 `--cloud` 创建云会话。`--remote-control` 无关:它公开本地 CLI 会话以从网络进行监控。请参阅[Remote Control](/docs/zh-CN/remote-control)。


746传送在恢复会话之前检查这些要求。如果任何要求未满足,你会看到错误或被提示解决问题。746传送在恢复会话之前检查这些要求。如果任何要求未满足,你会看到错误或被提示解决问题。

747 747 

748| 要求 | 详情 |748| 要求 | 详情 |

749| ---------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |749| ---------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

750| 干净的 git 状态 | 你的工作目录必须没有未提交的更改。如果需要,传送会提示你隐藏更改。 |750| 干净的 git 状态 | 你的工作目录必须没有未提交的更改。如果需要,传送会提示你隐藏更改。 |

751| 正确的存储库 | 你必须从同一存储库的检出运行 `--teleport`,而不是从分叉运行。{/* min-version: 2.1.199 */}从 v2.1.199 开始,Claude Code 接受检出,即使它无法将远程解析为主机名,例如 SSH 主机别名(如 `git@work:owner/repo.git`)或 `insteadOf` 重写的短形式。它首先显示确认提示,仅当远程的所有者和存储库名称与会话的存储库匹配时。 |751| 正确的存储库 | 你必须从同一存储库的检出运行 `--teleport`,而不是从分叉运行。从 v2.1.199 开始,Claude Code 接受检出,即使它无法将远程解析为主机名,例如 SSH 主机别名(如 `git@work:owner/repo.git`)或 `insteadOf` 重写的短形式。它首先显示确认提示,仅当远程的所有者和存储库名称与会话的存储库匹配时。 |

752| 分支可用 | 云会话中的分支必须已被推送到远程。传送会自动获取并检出它。 |752| 分支可用 | 云会话中的分支必须已被推送到远程。传送会自动获取并检出它。 |

753| 相同账户 | 你必须认证到云会话中使用的相同 claude.ai 账户。 |753| 相同账户 | 你必须认证到云会话中使用的相同 claude.ai 账户。 |

754 754 


770 770 

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

772 772 

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

774* **`/config`**:在网络上,打开你的设置的 Claude Code 部分,而不是设置值,命令后的文本(包括 `key=value`)被忽略。要更改云会话的设置,请使用[环境变量](#configure-your-environment)或将[设置文件](/docs/zh-CN/settings)提交到存储库。774* **`/config`**:在网络上,打开你的设置的 Claude Code 部分,而不是设置值,命令后的文本(包括 `key=value`)被忽略。要更改云会话的设置,请使用[环境变量](#configure-your-environment)或将[设置文件](/docs/zh-CN/settings)提交到存储库。

775 775 

776对于上下文管理特别是:776对于上下文管理特别是:

Details

188 188 

189<Experiment flag="docs-contact-sales-cta" treatment={<ContactSalesCard surface="claude_platform_on_aws" />} />189<Experiment flag="docs-contact-sales-cta" treatment={<ContactSalesCard surface="claude_platform_on_aws" />} />

190 190 

191AWS 上的 Claude Platform 是 Anthropic 运营的 Claude API,支持 AWS 身份验证、IAM 访问控制和 AWS Marketplace 计费。请求直接到达 Anthropic 的 API,因此您获得与 [Claude API](https://platform.claude.com/docs) 相同的模型和 API 功能,并遵循相同的发布计划。Claude Code 通过 Anthropic 的功能标志服务启用的客户端功能(例如 [`/loop` 自我调节](/zh-CN/scheduled-tasks#let-claude-choose-the-interval))默认处于关闭状态,[advisor 工具](/zh-CN/advisor)不可用。有关完整列表,请参阅[功能可用性矩阵](/zh-CN/feature-availability#summary-by-provider)。您可以使用 AWS 凭证或工作区 API 密钥进行身份验证,并通过 AWS Marketplace 付款。191AWS 上的 Claude Platform 是 Anthropic 运营的 Claude API,支持 AWS 身份验证、IAM 访问控制和 AWS Marketplace 计费。请求直接到达 Anthropic 的 API,因此您获得与 [Claude API](https://platform.claude.com/docs) 相同的模型和 API 功能,并遵循相同的发布计划。Claude Code 通过 Anthropic 的功能标志服务启用的客户端功能(例如 [`/loop` 自我调节](/docs/zh-CN/scheduled-tasks#let-claude-choose-the-interval))默认处于关闭状态,[advisor 工具](/docs/zh-CN/advisor)不可用。有关完整列表,请参阅[功能可用性矩阵](/docs/zh-CN/feature-availability#summary-by-provider)。您可以使用 AWS 凭证或工作区 API 密钥进行身份验证,并通过 AWS Marketplace 付款。

192 192 

193使用本指南将 Claude Code 指向您已通过 AWS 上的 Claude Platform 配置的工作区。有关在此之前的 AWS 订阅和工作区设置,请参阅 [AWS 上的 Claude Platform 文档](https://platform.claude.com/docs/en/build-with-claude/claude-platform-on-aws)。193使用本指南将 Claude Code 指向您已通过 AWS 上的 Claude Platform 配置的工作区。有关在此之前的 AWS 订阅和工作区设置,请参阅 [AWS 上的 Claude Platform 文档](https://platform.claude.com/docs/en/build-with-claude/claude-platform-on-aws)。

194 194 


230 230 

231对于 CI 和自动化,为运行程序提供具有调用 Anthropic 服务权限的 IAM 角色,并设置 `AWS_REGION`。凭证链会自动获取该角色。231对于 CI 和自动化,为运行程序提供具有调用 Anthropic 服务权限的 IAM 角色,并设置 `AWS_REGION`。凭证链会自动获取该角色。

232 232 

233如果您的 SSO 凭证在会话中途过期,请配置 [`awsAuthRefresh`](/zh-CN/amazon-bedrock#advanced-credential-configuration),以便 Claude Code 重新运行您的登录命令并重试,而不是失败。AWS 上的 Claude Platform 上的自动刷新需要 Claude Code v2.1.198 或更高版本;较早的版本会停止并提示运行 `/login`,这无法刷新 AWS 凭证。将命令添加到您的 `settings.json`:233如果您的 SSO 凭证在会话中途过期,请配置 [`awsAuthRefresh`](/docs/zh-CN/amazon-bedrock#advanced-credential-configuration),以便 Claude Code 重新运行您的登录命令并重试,而不是失败。AWS 上的 Claude Platform 上的自动刷新需要 Claude Code v2.1.198 或更高版本;较早的版本会停止并提示运行 `/login`,这无法刷新 AWS 凭证。将命令添加到您的 `settings.json`:

234 234 

235```json theme={null}235```json theme={null}

236{236{


250 250 

251该密钥作为 `x-api-key` 发送,优先于 SigV4,因此您环境中的任何 AWS 凭证都会被忽略。来自单独 Claude Console 组织的 API 密钥在此处不起作用。251该密钥作为 `x-api-key` 发送,优先于 SigV4,因此您环境中的任何 AWS 凭证都会被忽略。来自单独 Claude Console 组织的 API 密钥在此处不起作用。

252 252 

253像对待任何其他生产凭证一样对待工作区 API 密钥。[用户设置文件](/zh-CN/settings) `env` 块是一种方便的方式,可以将密钥限定于您的机器,而无需全局导出。253像对待任何其他生产凭证一样对待工作区 API 密钥。[用户设置文件](/docs/zh-CN/settings) `env` 块是一种方便的方式,可以将密钥限定于您的机器,而无需全局导出。

254 254 

255<Note>255<Note>

256 `/login` 和 `/logout` 命令不会将您登录到 Claude Platform on AWS 的 Claude.ai 订阅。身份验证通过您的 AWS 凭证或工作区 API 密钥运行。例外是当配置了 `awsAuthRefresh` 时,`/login` 显示的 **refresh credentials** 选项,它会重新读取您的 AWS 凭证,如上所述。256 `/login` 和 `/logout` 命令不会将您登录到 Claude Platform on AWS 的 Claude.ai 订阅。身份验证通过您的 AWS 凭证或工作区 API 密钥运行。例外是当配置了 `awsAuthRefresh` 时,`/login` 显示的 **refresh credentials** 选项,它会重新读取您的 AWS 凭证,如上所述。


278 278 

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

280 280 

281默认别名 `fable`、`opus`、`sonnet` 和 `haiku` 解析为 Claude Code 为 AWS 上的 Claude Platform 内置的默认值,这些值可能滞后于最新版本。如果没有 `ANTHROPIC_DEFAULT_OPUS_MODEL`,`opus` 别名解析为 Opus 4.8。{/* min-version: 2.1.207 */}在 v2.1.207 之前,它解析为 Opus 4.7。281默认别名 `fable`、`opus`、`sonnet` 和 `haiku` 解析为 Claude Code 为 AWS 上的 Claude Platform 内置的默认值,这些值可能滞后于最新版本。如果没有 `ANTHROPIC_DEFAULT_OPUS_MODEL`,`opus` 别名解析为 Opus 4.8。在 v2.1.207 之前,它解析为 Opus 4.7。

282 282 

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

284 284 


289export ANTHROPIC_DEFAULT_HAIKU_MODEL=claude-haiku-4-5289export ANTHROPIC_DEFAULT_HAIKU_MODEL=claude-haiku-4-5

290```290```

291 291 

292有关模型 ID 和别名的完整列表,请参阅 [Models overview](https://platform.claude.com/docs/en/about-claude/models/overview)。有关其他与模型相关的变量,请参阅 [Model configuration](/zh-CN/model-config)。292有关模型 ID 和别名的完整列表,请参阅 [Models overview](https://platform.claude.com/docs/en/about-claude/models/overview)。有关其他与模型相关的变量,请参阅 [Model configuration](/docs/zh-CN/model-config)。

293 293 

294[Prompt caching](/zh-CN/prompt-caching) 会自动启用。要请求 1 小时缓存 TTL 而不是 5 分钟默认值,请设置 `ENABLE_PROMPT_CACHING_1H=1`。API 按更高的费率对 1 小时缓存写入进行计费。有关费率,请参阅 [prompt caching pricing](https://platform.claude.com/docs/en/build-with-claude/prompt-caching#pricing)。294[Prompt caching](/docs/zh-CN/prompt-caching) 会自动启用。要请求 1 小时缓存 TTL 而不是 5 分钟默认值,请设置 `ENABLE_PROMPT_CACHING_1H=1`。API 按更高的费率对 1 小时缓存写入进行计费。有关费率,请参阅 [prompt caching pricing](https://platform.claude.com/docs/en/build-with-claude/prompt-caching#pricing)。

295 295 

296<h2 id="use-the-agent-sdk">296<h2 id="use-the-agent-sdk">

297 使用 Agent SDK297 使用 Agent SDK

298</h2>298</h2>

299 299 

300[Agent SDK](/zh-CN/agent-sdk/overview) 读取与 CLI 相同的环境变量,因此任何生成 Claude Code 子进程的程序都可以通过在调用前导出 `CLAUDE_CODE_USE_ANTHROPIC_AWS`、`ANTHROPIC_AWS_WORKSPACE_ID` 和 `ANTHROPIC_AWS_API_KEY` 或 AWS 凭证来针对 AWS 上的 Claude Platform。300[Agent SDK](/docs/zh-CN/agent-sdk/overview) 读取与 CLI 相同的环境变量,因此任何生成 Claude Code 子进程的程序都可以通过在调用前导出 `CLAUDE_CODE_USE_ANTHROPIC_AWS`、`ANTHROPIC_AWS_WORKSPACE_ID` 和 `ANTHROPIC_AWS_API_KEY` 或 AWS 凭证来针对 AWS 上的 Claude Platform。

301 301 

302```typescript theme={null}302```typescript theme={null}

303import { query } from "@anthropic-ai/claude-agent-sdk";303import { query } from "@anthropic-ai/claude-agent-sdk";


311}311}

312```312```

313 313 

314此示例依赖于环境 AWS 凭证链进行 SigV4。要改为使用工作区 API 密钥进行身份验证,请以相同方式设置 `ANTHROPIC_AWS_API_KEY`。有关更广泛的 Agent SDK 表面,请参阅 [Agent SDK overview](/zh-CN/agent-sdk/overview)。314此示例依赖于环境 AWS 凭证链进行 SigV4。要改为使用工作区 API 密钥进行身份验证,请以相同方式设置 `ANTHROPIC_AWS_API_KEY`。有关更广泛的 Agent SDK 表面,请参阅 [Agent SDK overview](/docs/zh-CN/agent-sdk/overview)。

315 315 

316<h2 id="route-through-a-corporate-proxy">316<h2 id="route-through-a-corporate-proxy">

317 通过企业代理路由317 通过企业代理路由

318</h2>318</h2>

319 319 

320要通过代理或 [LLM gateway](/zh-CN/llm-gateway) 路由流量,请将 `ANTHROPIC_AWS_BASE_URL` 设置为代理的地址。Claude Code 将请求发送到该 URL,并使用相同的工作区和身份验证标头,因此任何转发它们不变的网关都可以工作。320要通过代理或 [LLM gateway](/docs/zh-CN/llm-gateway) 路由流量,请将 `ANTHROPIC_AWS_BASE_URL` 设置为代理的地址。Claude Code 将请求发送到该 URL,并使用相同的工作区和身份验证标头,因此任何转发它们不变的网关都可以工作。

321 321 

322```bash theme={null}322```bash theme={null}

323export CLAUDE_CODE_USE_ANTHROPIC_AWS=1323export CLAUDE_CODE_USE_ANTHROPIC_AWS=1

cli-reference.md +68 −68

Details

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

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

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

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

26| `claude install [version]` | 安装或重新安装本机二进制文件。接受版本号如 `2.1.118`、`stable` 或 `latest`。请参阅 [安装特定版本](/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 退出 | `claude auth status` |29| `claude auth status` | 以 JSON 格式显示身份验证状态。使用 `--text` 获取人类可读的输出。如果已登录,则以代码 0 退出,如果未登录,则以代码 1 退出 | `claude auth status` |

30| `claude agents` | 打开 [agent view](/zh-CN/agent-view) 以监控和分派并行后台会话。使用 `--cwd <path>` 仅显示在该目录下启动的会话,或使用 `--json` 将实时会话打印为 JSON 数组以供脚本使用(`--json --all` 也包括已完成的后台会话)。传递 `--permission-mode`、`--model`、`--effort` 或 `--agent` 以设置 [分派会话的默认值](/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>` | 在此终端中附加到 [后台会话](/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](/zh-CN/permission-modes#eliminate-prompts-with-auto-mode) 分类器规则。使用 `claude auto-mode config` 查看应用了设置的有效配置。{/* min-version: 2.1.208 */}}`--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'` |

33| `claude daemon status` | 打印后台会话 [supervisor](/zh-CN/agent-view#the-supervisor-process) 的状态、版本、套接字目录和工作进程数以进行诊断。如果 supervisor 未运行,则退出代码 1 | `claude daemon status` |33| `claude daemon status` | 打印后台会话 [supervisor](/docs/zh-CN/agent-view#the-supervisor-process) 的状态、版本、套接字目录和工作进程数以进行诊断。如果 supervisor 未运行,则退出代码 1 | `claude daemon status` |

34| `claude daemon stop --any` | 停止后台会话 [supervisor](/zh-CN/agent-view#the-supervisor-process) 及其托管的会话。传递 `--keep-workers` 以保持后台会话运行,以便下一个 supervisor 重新连接到它们。`--any` 确认停止按需 supervisor,这是默认值。使用此命令从 [无响应的 supervisor](/zh-CN/agent-view#agent-view-says-the-background-service-did-not-respond) 恢复 | `claude daemon stop --any --keep-workers` |34| `claude daemon stop --any` | 停止后台会话 [supervisor](/docs/zh-CN/agent-view#the-supervisor-process) 及其托管的会话。传递 `--keep-workers` 以保持后台会话运行,以便下一个 supervisor 重新连接到它们。`--any` 确认停止按需 supervisor,这是默认值。使用此命令从 [无响应的 supervisor](/docs/zh-CN/agent-view#agent-view-says-the-background-service-did-not-respond) 恢复 | `claude daemon stop --any --keep-workers` |

35| `claude doctor` | 从终端打印只读安装和设置诊断,无需启动会话,包括安装健康状况、设置文件验证错误和远程控制资格。对于可以应用修复的会话内设置检查,请运行 [`/doctor`](/zh-CN/commands#all-commands) | `claude doctor` |35| `claude doctor` | 从终端打印只读安装和设置诊断,无需启动会话,包括安装健康状况、设置文件验证错误和远程控制资格。对于可以应用修复的会话内设置检查,请运行 [`/doctor`](/docs/zh-CN/commands#all-commands) | `claude doctor` |

36| `claude logs <id>` | 从 [后台会话](/zh-CN/agent-view#manage-sessions-from-the-shell) 打印最近的输出 | `claude logs 7c5dcf5d` |36| `claude logs <id>` | 从 [后台会话](/docs/zh-CN/agent-view#manage-sessions-from-the-shell) 打印最近的输出 | `claude logs 7c5dcf5d` |

37| `claude mcp` | 配置 Model Context Protocol (MCP) 服务器 | 请参阅 [Claude Code MCP 文档](/zh-CN/mcp)。 |37| `claude mcp` | 配置 Model Context Protocol (MCP) 服务器 | 请参阅 [Claude Code MCP 文档](/docs/zh-CN/mcp)。 |

38| `claude mcp login <name>` | {/* min-version: 2.1.186 */}运行配置的 MCP 服务器的 OAuth 流程而不打开交互式 `/mcp` 面板。适用于 HTTP、SSE 和 claude.ai 连接器服务器。在 SSH 上添加 `--no-browser` 以打印授权 URL 而不是打开浏览器,然后在提示处粘贴重定向 URL。需要 Claude Code v2.1.186 或更高版本。请参阅 [从命令行进行身份验证](/zh-CN/mcp#authenticate-from-the-command-line) | `claude mcp login sentry` |38| `claude mcp login <name>` | 运行配置的 MCP 服务器的 OAuth 流程而不打开交互式 `/mcp` 面板。适用于 HTTP、SSE 和 claude.ai 连接器服务器。在 SSH 上添加 `--no-browser` 以打印授权 URL 而不是打开浏览器,然后在提示处粘贴重定向 URL。需要 Claude Code v2.1.186 或更高版本。请参阅 [从命令行进行身份验证](/docs/zh-CN/mcp#authenticate-from-the-command-line) | `claude mcp login sentry` |

39| `claude mcp logout <name>` | {/* min-version: 2.1.186 */}清除 MCP 服务器的存储 OAuth 凭据。需要 Claude Code v2.1.186 或更高版本 | `claude mcp logout sentry` |39| `claude mcp logout <name>` | 清除 MCP 服务器的存储 OAuth 凭据。需要 Claude Code v2.1.186 或更高版本 | `claude mcp logout sentry` |

40| `claude plugin` | 管理 Claude Code [plugins](/zh-CN/plugins)。别名:`claude plugins`。请参阅 [plugin 参考](/zh-CN/plugins-reference#cli-commands-reference) 了解子命令 | `claude plugin install code-review@claude-plugins-official` |40| `claude plugin` | 管理 Claude Code [plugins](/docs/zh-CN/plugins)。别名:`claude plugins`。请参阅 [plugin 参考](/docs/zh-CN/plugins-reference#cli-commands-reference) 了解子命令 | `claude plugin install code-review@claude-plugins-official` |

41| `claude project purge [path]` | 删除项目的所有本地 Claude Code 状态:记录、任务列表、调试日志、文件编辑历史、提示历史行和项目在 `~/.claude.json` 中的条目。省略 `[path]` 以从交互式列表中选择。标志:`--dry-run` 预览,`-y`/`--yes` 跳过确认,`-i`/`--interactive` 确认每一项,`--all` 用于每个项目。请参阅 [清除本地数据](/zh-CN/claude-directory#clear-local-data) | `claude project purge ~/work/repo --dry-run` |41| `claude project purge [path]` | 删除项目的所有本地 Claude Code 状态:记录、任务列表、调试日志、文件编辑历史、提示历史行和项目在 `~/.claude.json` 中的条目。省略 `[path]` 以从交互式列表中选择。标志:`--dry-run` 预览,`-y`/`--yes` 跳过确认,`-i`/`--interactive` 确认每一项,`--all` 用于每个项目。请参阅 [清除本地数据](/docs/zh-CN/claude-directory#clear-local-data) | `claude project purge ~/work/repo --dry-run` |

42| `claude remote-control` | 启动 [Remote Control](/zh-CN/remote-control) 服务器以从 Claude.ai 或 Claude 应用控制 Claude Code。在服务器模式下运行(无本地交互式会话)。请参阅 [服务器模式标志](/zh-CN/remote-control#start-a-remote-control-session) | `claude remote-control --name "My Project"` |42| `claude remote-control` | 启动 [Remote Control](/docs/zh-CN/remote-control) 服务器以从 Claude.ai 或 Claude 应用控制 Claude Code。在服务器模式下运行(无本地交互式会话)。请参阅 [服务器模式标志](/docs/zh-CN/remote-control#start-a-remote-control-session) | `claude remote-control --name "My Project"` |

43| `claude respawn <id>` | 重启 [后台会话](/zh-CN/agent-view#manage-sessions-from-the-shell),运行或已停止,保持其对话完整。使用 `--all` 重启每个运行中的会话,例如以获取更新的 Claude Code 二进制文件 | `claude respawn 7c5dcf5d` |43| `claude respawn <id>` | 重启 [后台会话](/docs/zh-CN/agent-view#manage-sessions-from-the-shell),运行或已停止,保持其对话完整。使用 `--all` 重启每个运行中的会话,例如以获取更新的 Claude Code 二进制文件 | `claude respawn 7c5dcf5d` |

44| `claude rm <id>` | 从列表中删除 [后台会话](/zh-CN/agent-view#manage-sessions-from-the-shell)。对话记录保留在您的本地计算机上,可通过 `claude --resume` 访问 | `claude rm 7c5dcf5d` |44| `claude rm <id>` | 从列表中删除 [后台会话](/docs/zh-CN/agent-view#manage-sessions-from-the-shell)。对话记录保留在您的本地计算机上,可通过 `claude --resume` 访问 | `claude rm 7c5dcf5d` |

45| `claude setup-token` | 为 CI 和脚本生成长期 OAuth 令牌。将令牌打印到终端而不保存。需要 Claude 订阅。请参阅 [生成长期令牌](/zh-CN/authentication#generate-a-long-lived-token) | `claude setup-token` |45| `claude setup-token` | 为 CI 和脚本生成长期 OAuth 令牌。将令牌打印到终端而不保存。需要 Claude 订阅。请参阅 [生成长期令牌](/docs/zh-CN/authentication#generate-a-long-lived-token) | `claude setup-token` |

46| `claude stop <id>` | 停止 [后台会话](/zh-CN/agent-view#manage-sessions-from-the-shell)。也接受 `claude kill` | `claude stop 7c5dcf5d` |46| `claude stop <id>` | 停止 [后台会话](/docs/zh-CN/agent-view#manage-sessions-from-the-shell)。也接受 `claude kill` | `claude stop 7c5dcf5d` |

47| `claude ultrareview [target]` | 非交互式运行 [ultrareview](/zh-CN/ultrareview#run-ultrareview-non-interactively)。将发现结果打印到标准输出,成功时退出代码 0,失败时退出代码 1。使用 `--json` 获取原始有效负载,使用 `--timeout <minutes>` 覆盖 30 分钟的默认值 | `claude ultrareview 1234 --json` |47| `claude ultrareview [target]` | 非交互式运行 [ultrareview](/docs/zh-CN/ultrareview#run-ultrareview-non-interactively)。将发现结果打印到标准输出,成功时退出代码 0,失败时退出代码 1。使用 `--json` 获取原始有效负载,使用 `--timeout <minutes>` 覆盖 30 分钟的默认值 | `claude ultrareview 1234 --json` |

48 48 

49如果您输入错误的子命令,Claude Code 会建议最接近的匹配项并退出而不启动会话。例如,`claude udpate` 会打印 `Did you mean claude update?`。49如果您输入错误的子命令,Claude Code 会建议最接近的匹配项并退出而不启动会话。例如,`claude udpate` 会打印 `Did you mean claude update?`。

50 50 

51{/* min-version: 2.1.199 */}从 v2.1.199 开始,`claude --dangerously-skip-permissions daemon <subcommand>` 运行 `daemon` 子命令。早期版本将 `daemon <subcommand>` 视为新交互式会话的提示,因此当标志在前面时子命令永远不会运行,这是 `claude` 别名为包含该标志时的常见设置。只有前导 `--dangerously-skip-permissions` 或 `--allow-dangerously-skip-permissions` 以这种方式路由到 `daemon`;任何其他前导标志仍然启动交互式会话。51从 v2.1.199 开始,`claude --dangerously-skip-permissions daemon <subcommand>` 运行 `daemon` 子命令。早期版本将 `daemon <subcommand>` 视为新交互式会话的提示,因此当标志在前面时子命令永远不会运行,这是 `claude` 别名为包含该标志时的常见设置。只有前导 `--dangerously-skip-permissions` 或 `--allow-dangerously-skip-permissions` 以这种方式路由到 `daemon`;任何其他前导标志仍然启动交互式会话。

52 52 

53<h2 id="cli-flags">53<h2 id="cli-flags">

54 CLI 标志54 CLI 标志


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

58 58 

59| 标志 | 描述 | 示例 |59| 标志 | 描述 | 示例 |

60| :---------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :-------------------------------------------------------------------------------------------------- |60| :---------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------- |

61| `--add-dir` | 为 Claude 添加额外的工作目录以读取和编辑文件。授予文件访问权限;大多数 `.claude/` 配置 [不会从这些目录中发现](/zh-CN/permissions#additional-directories-grant-file-access-not-configuration)。验证每个路径是否存在为目录。要在会话间持久化这些目录,请在设置中设置 [`permissions.additionalDirectories`](/zh-CN/settings#permission-settings) | `claude --add-dir ../apps ../lib` |61| `--add-dir` | 为 Claude 添加额外的工作目录以读取和编辑文件。授予文件访问权限;大多数 `.claude/` 配置 [不会从这些目录中发现](/docs/zh-CN/permissions#additional-directories-grant-file-access-not-configuration)。验证每个路径是否存在为目录。要在会话间持久化这些目录,请在设置中设置 [`permissions.additionalDirectories`](/docs/zh-CN/settings#permission-settings) | `claude --add-dir ../apps ../lib` |

62| `--advisor <model>` | 为此会话启用服务器端 [advisor tool](/zh-CN/advisor),使用模型别名:`opus`、`sonnet` 或 `fable`({/* min-version: 2.1.170 */}v2.1.170+),或完整模型 ID。优先于会话的 `advisorModel` 设置 | `claude --advisor opus` |62| `--advisor <model>` | 为此会话启用服务器端 [advisor tool](/docs/zh-CN/advisor),使用模型别名:`opus`、`sonnet` 或 `fable`(v2.1.170+),或完整模型 ID。优先于会话的 `advisorModel` 设置 | `claude --advisor opus` |

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

64| `--agents` | 通过 JSON 动态定义自定义 subagents。使用与 subagent [frontmatter](/zh-CN/sub-agents#supported-frontmatter-fields) 相同的字段名称,加上代理指令的 `prompt` 字段 | `claude --agents '{"reviewer":{"description":"Reviews code","prompt":"You are a code reviewer"}}'` |64| `--agents` | 通过 JSON 动态定义自定义 subagents。使用与 subagent [frontmatter](/docs/zh-CN/sub-agents#supported-frontmatter-fields) 相同的字段名称,加上代理指令的 `prompt` 字段 | `claude --agents '{"reviewer":{"description":"Reviews code","prompt":"You are a code reviewer"}}'` |

65| `--allow-dangerously-skip-permissions` | 将 `bypassPermissions` 添加到 `Shift+Tab` 模式循环中而不启动它。允许您以不同的模式(如 `plan`)开始,稍后切换到 `bypassPermissions`。请参阅 [权限模式](/zh-CN/permission-modes#skip-all-checks-with-bypasspermissions-mode) | `claude --permission-mode plan --allow-dangerously-skip-permissions` |65| `--allow-dangerously-skip-permissions` | 将 `bypassPermissions` 添加到 `Shift+Tab` 模式循环中而不启动它。允许您以不同的模式(如 `plan`)开始,稍后切换到 `bypassPermissions`。请参阅 [权限模式](/docs/zh-CN/permission-modes#skip-all-checks-with-bypasspermissions-mode) | `claude --permission-mode plan --allow-dangerously-skip-permissions` |

66| `--allowedTools`, `--allowed-tools` | 无需提示权限即可执行的工具。请参阅 [权限规则语法](/zh-CN/settings#permission-rule-syntax) 了解模式匹配。要限制哪些工具可用,请改用 `--tools` | `"Bash(git log *)" "Bash(git diff *)" "Read"` |66| `--allowedTools`, `--allowed-tools` | 无需提示权限即可执行的工具。请参阅 [权限规则语法](/docs/zh-CN/settings#permission-rule-syntax) 了解模式匹配。要限制哪些工具可用,请改用 `--tools` | `"Bash(git log *)" "Bash(git diff *)" "Read"` |

67| `--append-subagent-system-prompt` | {/* min-version: 2.1.205 */}将自定义文本附加到每个 [subagent](/zh-CN/sub-agents) 的系统提示末尾,包括嵌套的 subagents。仅在非交互模式下与 `-p` 一起应用。需要 Claude Code v2.1.205 或更高版本 | `claude -p --append-subagent-system-prompt "Cite file paths in every answer" "query"` |67| `--append-subagent-system-prompt` | 将自定义文本附加到每个 [subagent](/docs/zh-CN/sub-agents) 的系统提示末尾,包括嵌套的 subagents。仅在非交互模式下与 `-p` 一起应用。需要 Claude Code v2.1.205 或更高版本 | `claude -p --append-subagent-system-prompt "Cite file paths in every answer" "query"` |

68| `--append-system-prompt` | 将自定义文本附加到默认系统提示的末尾 | `claude --append-system-prompt "Always use TypeScript"` |68| `--append-system-prompt` | 将自定义文本附加到默认系统提示的末尾 | `claude --append-system-prompt "Always use TypeScript"` |

69| `--append-system-prompt-file` | 从文件加载额外的系统提示文本并附加到默认提示 | `claude --append-system-prompt-file ./extra-rules.txt` |69| `--append-system-prompt-file` | 从文件加载额外的系统提示文本并附加到默认提示 | `claude --append-system-prompt-file ./extra-rules.txt` |

70| `--ax-screen-reader` | {/* min-version: 2.1.181 */}渲染屏幕阅读器友好的输出:没有装饰性边框或动画的平面文本。强制使用经典渲染器,因此 [`tui`](/zh-CN/settings#available-settings) 设置在会话期间无效;附加的 [后台会话](/zh-CN/agent-view) 仍然全屏渲染。优先于 [`CLAUDE_AX_SCREEN_READER`](/zh-CN/env-vars) 和 [`axScreenReader`](/zh-CN/settings#available-settings) 设置。需要 Claude Code v2.1.181 或更高版本 | `claude --ax-screen-reader` |70| `--ax-screen-reader` | 渲染屏幕阅读器友好的输出:没有装饰性边框或动画的平面文本。强制使用经典渲染器,因此 [`tui`](/docs/zh-CN/settings#available-settings) 设置在会话期间无效;附加的 [后台会话](/docs/zh-CN/agent-view) 仍然全屏渲染。优先于 [`CLAUDE_AX_SCREEN_READER`](/docs/zh-CN/env-vars) 和 [`axScreenReader`](/docs/zh-CN/settings#available-settings) 设置。需要 Claude Code v2.1.181 或更高版本 | `claude --ax-screen-reader` |

71| `--bare` | 最小模式:跳过 hooks、skills、plugins、MCP 服务器、自动内存和 CLAUDE.md 的自动发现,以便脚本化调用启动更快。Claude 可以访问 Bash、文件读取和文件编辑工具。设置 [`CLAUDE_CODE_SIMPLE`](/zh-CN/env-vars)。请参阅 [bare mode](/zh-CN/headless#start-faster-with-bare-mode) | `claude --bare -p "query"` |71| `--bare` | 最小模式:跳过 hooks、skills、plugins、MCP 服务器、自动内存和 CLAUDE.md 的自动发现,以便脚本化调用启动更快。Claude 可以访问 Bash、文件读取和文件编辑工具。设置 [`CLAUDE_CODE_SIMPLE`](/docs/zh-CN/env-vars)。请参阅 [bare mode](/docs/zh-CN/headless#start-faster-with-bare-mode) | `claude --bare -p "query"` |

72| `--betas` | 要包含在 API 请求中的 Beta 标头(仅限 API 密钥用户) | `claude --betas interleaved-thinking` |72| `--betas` | 要包含在 API 请求中的 Beta 标头(仅限 API 密钥用户) | `claude --betas interleaved-thinking` |

73| `--bg`, `--background` | 启动会话作为 [后台代理](/zh-CN/agent-view) 并立即返回。打印会话 ID 和管理命令。与 `--exec` 结合以作为后台作业运行 shell 命令而不是 Claude 会话,或与 `--agent` 结合以运行特定的 subagent。{/* min-version: 2.1.198 */}不能与 `-p`/`--print` 结合;请参阅 [错误参考](/zh-CN/errors#command-line-errors) | `claude --bg "investigate the flaky test"` |73| `--bg`, `--background` | 启动会话作为 [后台代理](/docs/zh-CN/agent-view) 并立即返回。打印会话 ID 和管理命令。与 `--exec` 结合以作为后台作业运行 shell 命令而不是 Claude 会话,或与 `--agent` 结合以运行特定的 subagent。不能与 `-p`/`--print` 结合;请参阅 [错误参考](/docs/zh-CN/errors#command-line-errors) | `claude --bg "investigate the flaky test"` |

74| `--channels` | (研究预览)MCP 服务器,其 [channel](/zh-CN/channels) 通知 Claude 应在此会话中侦听。以空格分隔的 `plugin:<name>@<marketplace>` 条目列表。需要 Claude.ai 身份验证 | `claude --channels plugin:my-notifier@my-marketplace` |74| `--channels` | (研究预览)MCP 服务器,其 [channel](/docs/zh-CN/channels) 通知 Claude 应在此会话中侦听。以空格分隔的 `plugin:<name>@<marketplace>` 条目列表。需要 Claude.ai 身份验证 | `claude --channels plugin:my-notifier@my-marketplace` |

75| `--chrome` | 启用 [Chrome 浏览器集成](/zh-CN/chrome) 以进行网络自动化和测试 | `claude --chrome` |75| `--chrome` | 启用 [Chrome 浏览器集成](/docs/zh-CN/chrome) 以进行网络自动化和测试 | `claude --chrome` |

76| `--cloud` | 在 claude.ai 上创建新的 [网络会话](/zh-CN/claude-code-on-the-web),提供任务描述 | `claude --cloud "Fix the login bug"` |76| `--cloud` | 在 claude.ai 上创建新的 [网络会话](/docs/zh-CN/claude-code-on-the-web),提供任务描述 | `claude --cloud "Fix the login bug"` |

77| `--continue`, `-c` | 加载当前目录中最近的对话。包括使用 `/add-dir` 添加此目录的会话 | `claude --continue` |77| `--continue`, `-c` | 加载当前目录中最近的对话。包括使用 `/add-dir` 添加此目录的会话 | `claude --continue` |

78| `--dangerously-load-development-channels` | 启用不在批准的允许列表中的 [channels](/zh-CN/channels-reference#test-during-the-research-preview),用于本地开发。接受 `plugin:<name>@<marketplace>` 和 `server:<name>` 条目。提示确认 | `claude --dangerously-load-development-channels server:webhook` |78| `--dangerously-load-development-channels` | 启用不在批准的允许列表中的 [channels](/docs/zh-CN/channels-reference#test-during-the-research-preview),用于本地开发。接受 `plugin:<name>@<marketplace>` 和 `server:<name>` 条目。提示确认 | `claude --dangerously-load-development-channels server:webhook` |

79| `--dangerously-skip-permissions` | 跳过权限提示。等同于 `--permission-mode bypassPermissions`。请参阅 [权限模式](/zh-CN/permission-modes#skip-all-checks-with-bypasspermissions-mode) 了解此操作跳过和不跳过的内容。对于使用 `--bg` 启动的会话,该模式 [在主管重启会话时持久化](/zh-CN/agent-view#permission-mode-model-and-effort) | `claude --dangerously-skip-permissions` |79| `--dangerously-skip-permissions` | 跳过权限提示。等同于 `--permission-mode bypassPermissions`。请参阅 [权限模式](/docs/zh-CN/permission-modes#skip-all-checks-with-bypasspermissions-mode) 了解此操作跳过和不跳过的内容。对于使用 `--bg` 启动的会话,该模式 [在主管重启会话时持久化](/docs/zh-CN/agent-view#permission-mode-model-and-effort) | `claude --dangerously-skip-permissions` |

80| `--debug` | 启用调试模式,可选类别过滤(例如,`"api,hooks"` 或 `"!statsig,!file"`) | `claude --debug "api,mcp"` |80| `--debug` | 启用调试模式,可选类别过滤(例如,`"api,hooks"` 或 `"!statsig,!file"`) | `claude --debug "api,mcp"` |

81| `--debug-file <path>` | 将调试日志写入特定文件路径。隐式启用调试模式。优先于 `CLAUDE_CODE_DEBUG_LOGS_DIR` | `claude --debug-file /tmp/claude-debug.log` |81| `--debug-file <path>` | 将调试日志写入特定文件路径。隐式启用调试模式。优先于 `CLAUDE_CODE_DEBUG_LOGS_DIR` | `claude --debug-file /tmp/claude-debug.log` |

82| `--disable-slash-commands` | 为此会话禁用所有 skills 和命令 | `claude --disable-slash-commands` |82| `--disable-slash-commands` | 为此会话禁用所有 skills 和命令 | `claude --disable-slash-commands` |

83| `--disallowedTools`, `--disallowed-tools` | 拒绝规则。裸工具名称从模型的上下文中删除匹配的工具:`"Edit"` 删除 Edit,`"*"` 删除每个工具,`"mcp__*"` 删除每个 MCP 工具。作用域规则(如 `Bash(rm *)` )使工具保持可用,仅拒绝匹配的调用 | `"Bash(git log *)" "Bash(git diff *)" "Edit"` |83| `--disallowedTools`, `--disallowed-tools` | 拒绝规则。裸工具名称从模型的上下文中删除匹配的工具:`"Edit"` 删除 Edit,`"*"` 删除每个工具,`"mcp__*"` 删除每个 MCP 工具。作用域规则(如 `Bash(rm *)` )使工具保持可用,仅拒绝匹配的调用 | `"Bash(git log *)" "Bash(git diff *)" "Edit"` |

84| `--effort` | 为当前会话设置 [工作量级别](/zh-CN/model-config#adjust-effort-level)。选项:`low`、`medium`、`high`、`xhigh`、`max` 或 {/* min-version: 2.1.203 */}}`ultracode`。可用级别取决于模型。`ultracode` 以 `xhigh` 工作量启动会话,并启用 [ultracode](/zh-CN/workflows#let-claude-decide-with-ultracode),需要 Claude Code v2.1.203 或更高版本。覆盖此会话的 [`effortLevel`](/zh-CN/settings#available-settings) 设置,不会持久化 | `claude --effort high` |84| `--effort` | 为当前会话设置 [工作量级别](/docs/zh-CN/model-config#adjust-effort-level)。选项:`low`、`medium`、`high`、`xhigh`、`max` 或 }`ultracode`。可用级别取决于模型。`ultracode` 以 `xhigh` 工作量启动会话,并启用 [ultracode](/docs/zh-CN/workflows#let-claude-decide-with-ultracode),需要 Claude Code v2.1.203 或更高版本。覆盖此会话的 [`effortLevel`](/docs/zh-CN/settings#available-settings) 设置,不会持久化 | `claude --effort high` |

85| `--enable-auto-mode` | {/* max-version: 2.1.110 */}在 v2.1.111 中移除。Auto mode 现在默认在 `Shift+Tab` 循环中;使用 `--permission-mode auto` 以它开始 | `claude --permission-mode auto` |85| `--enable-auto-mode` | 在 v2.1.111 中移除。Auto mode 现在默认在 `Shift+Tab` 循环中;使用 `--permission-mode auto` 以它开始 | `claude --permission-mode auto` |

86| `--exclude-dynamic-system-prompt-sections` | 将每台机器的部分从系统提示(工作目录、环境信息、内存路径、git 状态)移到第一条用户消息中。改进在运行相同任务的不同用户和机器之间的提示缓存重用。仅适用于默认系统提示;当设置 `--system-prompt` 或 `--system-prompt-file` 时忽略。与 `-p` 一起用于脚本化的多用户工作负载 | `claude -p --exclude-dynamic-system-prompt-sections "query"` |86| `--exclude-dynamic-system-prompt-sections` | 将每台机器的部分从系统提示(工作目录、环境信息、内存路径、git 状态)移到第一条用户消息中。改进在运行相同任务的不同用户和机器之间的提示缓存重用。仅适用于默认系统提示;当设置 `--system-prompt` 或 `--system-prompt-file` 时忽略。与 `-p` 一起用于脚本化的多用户工作负载 | `claude -p --exclude-dynamic-system-prompt-sections "query"` |

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

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

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

90| `--from-pr` | 恢复链接到特定拉取请求的会话。接受 PR 号、GitHub 或 GitHub Enterprise PR URL、GitLab 合并请求 URL 或 Bitbucket 拉取请求 URL。当 Claude 创建拉取请求时会自动链接会话 | `claude --from-pr 123` |90| `--from-pr` | 恢复链接到特定拉取请求的会话。接受 PR 号、GitHub 或 GitHub Enterprise PR URL、GitLab 合并请求 URL 或 Bitbucket 拉取请求 URL。当 Claude 创建拉取请求时会自动链接会话 | `claude --from-pr 123` |

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

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

93| `--init-only` | 运行 [Setup](/zh-CN/hooks#setup) 和 `SessionStart` hooks,然后退出而不启动对话 | `claude --init-only` |93| `--init-only` | 运行 [Setup](/docs/zh-CN/hooks#setup) 和 `SessionStart` hooks,然后退出而不启动对话 | `claude --init-only` |

94| `--include-hook-events` | 在输出流中包含所有 hook 生命周期事件。`SessionStart` 和 `Setup` hook 事件始终包含,不需要此标志。需要 `--output-format stream-json` | `claude -p --output-format stream-json --verbose --include-hook-events "query"` |94| `--include-hook-events` | 在输出流中包含所有 hook 生命周期事件。`SessionStart` 和 `Setup` hook 事件始终包含,不需要此标志。需要 `--output-format stream-json` | `claude -p --output-format stream-json --verbose --include-hook-events "query"` |

95| `--include-partial-messages` | 在输出中包含部分流事件。需要 `--print` 和 `--output-format stream-json` | `claude -p --output-format stream-json --verbose --include-partial-messages "query"` |95| `--include-partial-messages` | 在输出中包含部分流事件。需要 `--print` 和 `--output-format stream-json` | `claude -p --output-format stream-json --verbose --include-partial-messages "query"` |

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

97| `--json-schema` | 在代理完成其工作流后获得与 JSON Schema 匹配的验证 JSON 输出(仅打印模式)。请参阅 [结构化输出](/zh-CN/agent-sdk/structured-outputs)。{/* min-version: 2.1.205 */}Claude Code 在无效的 schema 上以错误退出,并接受 `format` 关键字作为注释而无需客户端验证。在 v2.1.205 之前,无效的 schema 产生无结构的输出且没有错误,使用 `format` 的 schemas 被视为无效 | `claude -p --json-schema '{"type":"object","properties":{...}}' "query"` |97| `--json-schema` | 在代理完成其工作流后获得与 JSON Schema 匹配的验证 JSON 输出(仅打印模式)。请参阅 [结构化输出](/docs/zh-CN/agent-sdk/structured-outputs)。Claude Code 在无效的 schema 上以错误退出,并接受 `format` 关键字作为注释而无需客户端验证。在 v2.1.205 之前,无效的 schema 产生无结构的输出且没有错误,使用 `format` 的 schemas 被视为无效 | `claude -p --json-schema '{"type":"object","properties":{...}}' "query"` |

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

99| `--max-budget-usd` | API 调用前停止的最大美元金额(仅打印模式) | `claude -p --max-budget-usd 5.00 "query"` |99| `--max-budget-usd` | API 调用前停止的最大美元金额(仅打印模式) | `claude -p --max-budget-usd 5.00 "query"` |

100| `--max-turns` | 限制代理转数(仅打印模式)。达到限制时以错误退出。默认无限制。{/* min-version: 2.1.205 */}使用 `--input-format stream-json` 时,在 Claude 工作时发送的消息保持排队,并在限制结束当前转时作为其自己的转运行,具有其自己的限制。在 v2.1.205 之前,Claude Code 丢弃该消息 | `claude -p --max-turns 3 "query"` |100| `--max-turns` | 限制代理转数(仅打印模式)。达到限制时以错误退出。默认无限制。使用 `--input-format stream-json` 时,在 Claude 工作时发送的消息保持排队,并在限制结束当前转时作为其自己的转运行,具有其自己的限制。在 v2.1.205 之前,Claude Code 丢弃该消息 | `claude -p --max-turns 3 "query"` |

101| `--mcp-config` | 从 JSON 文件或字符串加载 MCP 服务器(以空格分隔) | `claude --mcp-config ./mcp.json` |101| `--mcp-config` | 从 JSON 文件或字符串加载 MCP 服务器(以空格分隔) | `claude --mcp-config ./mcp.json` |

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

103| `--name`, `-n` | 为会话设置显示名称,显示在 `/resume` 和终端标题中。您可以使用 `claude --resume <name>` 恢复命名会话。<br /><br />[`/rename`](/zh-CN/commands) 在会话中更改名称,也会在提示栏中显示 | `claude -n "my-feature-work"` |103| `--name`, `-n` | 为会话设置显示名称,显示在 `/resume` 和终端标题中。您可以使用 `claude --resume <name>` 恢复命名会话。<br /><br />[`/rename`](/docs/zh-CN/commands) 在会话中更改名称,也会在提示栏中显示 | `claude -n "my-feature-work"` |

104| `--no-chrome` | 为此会话禁用 [Chrome 浏览器集成](/zh-CN/chrome) | `claude --no-chrome` |104| `--no-chrome` | 为此会话禁用 [Chrome 浏览器集成](/docs/zh-CN/chrome) | `claude --no-chrome` |

105| `--no-session-persistence` | 禁用会话持久化,以便会话不会保存到磁盘且无法恢复。仅打印模式。[`CLAUDE_CODE_SKIP_PROMPT_HISTORY`](/zh-CN/env-vars) 环境变量在任何模式下都做同样的事情 | `claude -p --no-session-persistence "query"` |105| `--no-session-persistence` | 禁用会话持久化,以便会话不会保存到磁盘且无法恢复。仅打印模式。[`CLAUDE_CODE_SKIP_PROMPT_HISTORY`](/docs/zh-CN/env-vars) 环境变量在任何模式下都做同样的事情 | `claude -p --no-session-persistence "query"` |

106| `--output-format` | 为打印模式指定输出格式(选项:`text`、`json`、`stream-json`) | `claude -p "query" --output-format json` |106| `--output-format` | 为打印模式指定输出格式(选项:`text`、`json`、`stream-json`) | `claude -p "query" --output-format json` |

107| `--permission-mode` | 以指定的 [权限模式](/zh-CN/permission-modes) 开始。接受 `default`、`acceptEdits`、`plan`、`auto`、`dontAsk`、`bypassPermissions` 或 {/* min-version: 2.1.200 */}}`manual` 作为 `default` 的别名。`manual` 别名选择 UI 标记为"手动"的模式,需要 Claude Code v2.1.200 或更高版本;`claude --help` 用它代替 `default` 列出它,两个值都有效。覆盖设置文件中的 `defaultMode` | `claude --permission-mode plan` |107| `--permission-mode` | 以指定的 [权限模式](/docs/zh-CN/permission-modes) 开始。接受 `default`、`acceptEdits`、`plan`、`auto`、`dontAsk`、`bypassPermissions` 或 }`manual` 作为 `default` 的别名。`manual` 别名选择 UI 标记为"手动"的模式,需要 Claude Code v2.1.200 或更高版本;`claude --help` 用它代替 `default` 列出它,两个值都有效。覆盖设置文件中的 `defaultMode` | `claude --permission-mode plan` |

108| `--permission-prompt-tool` | 指定 MCP 工具以在非交互模式下处理权限提示。{/* min-version: 2.1.206 */}Claude Code 等待该工具的 MCP 服务器连接后再运行第一轮,最多等待 [`MCP_TIMEOUT`](/zh-CN/env-vars) 启动超时 30 秒。在 v2.1.206 之前,启动缓慢的服务器可能会导致运行 [以错误退出,表示未找到 MCP 工具](/zh-CN/errors#mcp-permission-prompt-tool-not-found)。<br /><br />{/* min-version: 2.1.199 */}提示工具无法批准标记为 [需要用户交互](/zh-CN/mcp#require-approval-for-a-specific-tool) 的 MCP 工具:Claude Code 将其中一个的 `allow` 结果转换为拒绝。此限制需要 Claude Code v2.1.199 或更高版本 | `claude -p --permission-prompt-tool mcp_auth_tool "query"` |108| `--permission-prompt-tool` | 指定 MCP 工具以在非交互模式下处理权限提示。Claude Code 等待该工具的 MCP 服务器连接后再运行第一轮,最多等待 [`MCP_TIMEOUT`](/docs/zh-CN/env-vars) 启动超时 30 秒。在 v2.1.206 之前,启动缓慢的服务器可能会导致运行 [以错误退出,表示未找到 MCP 工具](/docs/zh-CN/errors#mcp-permission-prompt-tool-not-found)。<br /><br />提示工具无法批准标记为 [需要用户交互](/docs/zh-CN/mcp#require-approval-for-a-specific-tool) 的 MCP 工具:Claude Code 将其中一个的 `allow` 结果转换为拒绝。此限制需要 Claude Code v2.1.199 或更高版本 | `claude -p --permission-prompt-tool mcp_auth_tool "query"` |

109| `--plugin-dir` | 仅为此会话从目录或 `.zip` 存档加载插件。每个标志采用一个路径。重复该标志以获取多个插件:`--plugin-dir A --plugin-dir B.zip` | `claude --plugin-dir ./my-plugin` |109| `--plugin-dir` | 仅为此会话从目录或 `.zip` 存档加载插件。每个标志采用一个路径。重复该标志以获取多个插件:`--plugin-dir A --plugin-dir B.zip` | `claude --plugin-dir ./my-plugin` |

110| `--plugin-url` | 仅为此会话从 URL 获取插件 `.zip` 存档。重复该标志以获取多个插件,或在单个引用值中传递以空格分隔的 URL | `claude --plugin-url https://example.com/plugin.zip` |110| `--plugin-url` | 仅为此会话从 URL 获取插件 `.zip` 存档。重复该标志以获取多个插件,或在单个引用值中传递以空格分隔的 URL | `claude --plugin-url https://example.com/plugin.zip` |

111| `--print`, `-p` | 打印响应而不进入交互模式(请参阅 [Agent SDK 文档](/zh-CN/agent-sdk/overview) 了解编程使用详情) | `claude -p "query"` |111| `--print`, `-p` | 打印响应而不进入交互模式(请参阅 [Agent SDK 文档](/docs/zh-CN/agent-sdk/overview) 了解编程使用详情) | `claude -p "query"` |

112| `--prompt-suggestions` | 在每轮后发出 `prompt_suggestion` 消息,带有预测的下一个用户提示。需要 `--print`、`--output-format stream-json` 和 `--verbose`。请参阅 [提示建议](/zh-CN/interactive-mode#prompt-suggestions) | `claude -p --prompt-suggestions --output-format stream-json --verbose "query"` |112| `--prompt-suggestions` | 在每轮后发出 `prompt_suggestion` 消息,带有预测的下一个用户提示。需要 `--print`、`--output-format stream-json` 和 `--verbose`。请参阅 [提示建议](/docs/zh-CN/interactive-mode#prompt-suggestions) | `claude -p --prompt-suggestions --output-format stream-json --verbose "query"` |

113| `--remote` | 已弃用的 `--cloud` 别名 | `claude --remote "Fix the login bug"` |113| `--remote` | 已弃用的 `--cloud` 别名 | `claude --remote "Fix the login bug"` |

114| `--remote-control`, `--rc` | 启动启用了 [Remote Control](/zh-CN/remote-control#start-a-remote-control-session) 的交互式会话,以便您也可以从 claude.ai 或 Claude 应用控制它。可选地为会话传递名称 | `claude --remote-control "My Project"` |114| `--remote-control`, `--rc` | 启动启用了 [Remote Control](/docs/zh-CN/remote-control#start-a-remote-control-session) 的交互式会话,以便您也可以从 claude.ai 或 Claude 应用控制它。可选地为会话传递名称 | `claude --remote-control "My Project"` |

115| `--remote-control-session-name-prefix <prefix>` | 当未设置显式名称时,[Remote Control](/zh-CN/remote-control) 自动生成会话名称的前缀。默认为您的机器的主机名,生成名称如 `myhost-graceful-unicorn`。设置 `CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX` 以获得相同效果 | `claude remote-control --remote-control-session-name-prefix dev-box` |115| `--remote-control-session-name-prefix <prefix>` | 当未设置显式名称时,[Remote Control](/docs/zh-CN/remote-control) 自动生成会话名称的前缀。默认为您的机器的主机名,生成名称如 `myhost-graceful-unicorn`。设置 `CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX` 以获得相同效果 | `claude remote-control --remote-control-session-name-prefix dev-box` |

116| `--replay-user-messages` | 从 stdin 重新发出用户消息到 stdout 以进行确认。需要 `--input-format stream-json` 和 `--output-format stream-json` | `claude -p --input-format stream-json --output-format stream-json --verbose --replay-user-messages` |116| `--replay-user-messages` | 从 stdin 重新发出用户消息到 stdout 以进行确认。需要 `--input-format stream-json` 和 `--output-format stream-json` | `claude -p --input-format stream-json --output-format stream-json --verbose --replay-user-messages` |

117| `--resume`, `-r` | 按 ID 或名称恢复特定会话,或显示交互式选择器以选择会话。选择器和名称搜索包括使用 `/add-dir` 添加此目录的会话;传递会话 ID 仅搜索当前项目目录及其 git worktrees。截至 v2.1.144,[后台会话](/zh-CN/agent-view) 在选择器中显示,标记为 `bg` | `claude --resume auth-refactor` |117| `--resume`, `-r` | 按 ID 或名称恢复特定会话,或显示交互式选择器以选择会话。选择器和名称搜索包括使用 `/add-dir` 添加此目录的会话;传递会话 ID 仅搜索当前项目目录及其 git worktrees。截至 v2.1.144,[后台会话](/docs/zh-CN/agent-view) 在选择器中显示,标记为 `bg` | `claude --resume auth-refactor` |

118| `--safe-mode` | {/* min-version: 2.1.169 */}以所有自定义禁用的状态启动以排查损坏的配置:CLAUDE.md、skills、plugins、hooks、MCP 服务器、自定义命令和代理、输出样式、工作流、自定义主题、自定义快捷键、状态行和文件建议命令、LSP 服务器和自动内存不加载。身份验证、模型选择、内置工具和权限正常工作,这与 [`--bare`](/zh-CN/headless#start-faster-with-bare-mode) 不同。托管设置策略仍然适用,包括策略配置的 hooks、状态行和文件建议命令;托管插件、托管 skills、托管 CLAUDE.md 和策略配置的 MCP 服务器不适用。用于检查自定义是否触发 [从 Fable 5 自动回退](/zh-CN/model-config#automatic-model-fallback)。设置 [`CLAUDE_CODE_SAFE_MODE`](/zh-CN/env-vars) | `claude --safe-mode` |118| `--safe-mode` | 以所有自定义禁用的状态启动以排查损坏的配置:CLAUDE.md、skills、plugins、hooks、MCP 服务器、自定义命令和代理、输出样式、工作流、自定义主题、自定义快捷键、状态行和文件建议命令、LSP 服务器和自动内存不加载。身份验证、模型选择、内置工具和权限正常工作,这与 [`--bare`](/docs/zh-CN/headless#start-faster-with-bare-mode) 不同。托管设置策略仍然适用,包括策略配置的 hooks、状态行和文件建议命令;托管插件、托管 skills、托管 CLAUDE.md 和策略配置的 MCP 服务器不适用。用于检查自定义是否触发 [从 Fable 5 自动回退](/docs/zh-CN/model-config#automatic-model-fallback)。设置 [`CLAUDE_CODE_SAFE_MODE`](/docs/zh-CN/env-vars) | `claude --safe-mode` |

119| `--session-id` | 为对话使用特定的会话 ID(必须是有效的 UUID) | `claude --session-id "550e8400-e29b-41d4-a716-446655440000"` |119| `--session-id` | 为对话使用特定的会话 ID(必须是有效的 UUID) | `claude --session-id "550e8400-e29b-41d4-a716-446655440000"` |

120| `--setting-sources` | 逗号分隔的设置源列表以加载(`user`、`project`、`local`) | `claude --setting-sources user,project` |120| `--setting-sources` | 逗号分隔的设置源列表以加载(`user`、`project`、`local`) | `claude --setting-sources user,project` |

121| `--settings` | 设置 JSON 文件的路径或内联 JSON 字符串。您在此处设置的值会覆盖此会话的 `settings.json` 文件中的相同键。您省略的键保留其基于文件的值。请参阅 [设置优先级](/zh-CN/settings#settings-precedence) | `claude --settings ./settings.json` |121| `--settings` | 设置 JSON 文件的路径或内联 JSON 字符串。您在此处设置的值会覆盖此会话的 `settings.json` 文件中的相同键。您省略的键保留其基于文件的值。请参阅 [设置优先级](/docs/zh-CN/settings#settings-precedence) | `claude --settings ./settings.json` |

122| `--strict-mcp-config` | 仅使用来自 `--mcp-config` 的 MCP 服务器,忽略所有其他 MCP 配置 | `claude --strict-mcp-config --mcp-config ./mcp.json` |122| `--strict-mcp-config` | 仅使用来自 `--mcp-config` 的 MCP 服务器,忽略所有其他 MCP 配置 | `claude --strict-mcp-config --mcp-config ./mcp.json` |

123| `--system-prompt` | 用自定义文本替换整个系统提示 | `claude --system-prompt "You are a Python expert"` |123| `--system-prompt` | 用自定义文本替换整个系统提示 | `claude --system-prompt "You are a Python expert"` |

124| `--system-prompt-file` | 从文件加载系统提示,替换默认提示 | `claude --system-prompt-file ./custom-prompt.txt` |124| `--system-prompt-file` | 从文件加载系统提示,替换默认提示 | `claude --system-prompt-file ./custom-prompt.txt` |

125| `--teleport` | 在本地终端中恢复 [网络会话](/zh-CN/claude-code-on-the-web) | `claude --teleport` |125| `--teleport` | 在本地终端中恢复 [网络会话](/docs/zh-CN/claude-code-on-the-web) | `claude --teleport` |

126| `--teammate-mode` | 设置 [agent team](/zh-CN/agent-teams) 队友的显示方式:`in-process`(默认)、`auto`、`tmux` 或 {/* min-version: 2.1.186 */}}`iterm2`(在 v2.1.186 中添加)。默认值在 v2.1.179 中从 `auto` 更改。覆盖此会话的 [`teammateMode`](/zh-CN/settings#available-settings) 设置。请参阅 [选择显示模式](/zh-CN/agent-teams#choose-a-display-mode) | `claude --teammate-mode auto` |126| `--teammate-mode` | 设置 [agent team](/docs/zh-CN/agent-teams) 队友的显示方式:`in-process`(默认)、`auto`、`tmux` 或 }`iterm2`(在 v2.1.186 中添加)。默认值在 v2.1.179 中从 `auto` 更改。覆盖此会话的 [`teammateMode`](/docs/zh-CN/settings#available-settings) 设置。请参阅 [选择显示模式](/docs/zh-CN/agent-teams#choose-a-display-mode) | `claude --teammate-mode auto` |

127| `--tmux` | 为 worktree 创建 tmux 会话。需要 `--worktree`。在可用时使用 iTerm2 原生窗格;传递 `--tmux=classic` 以使用传统 tmux | `claude -w feature-auth --tmux` |127| `--tmux` | 为 worktree 创建 tmux 会话。需要 `--worktree`。在可用时使用 iTerm2 原生窗格;传递 `--tmux=classic` 以使用传统 tmux | `claude -w feature-auth --tmux` |

128| `--tools` | 限制 Claude 可以使用的内置工具。使用 `""` 禁用所有,`"default"` 表示全部,或工具名称如 `"Bash,Edit,Read"`。MCP 工具不受影响;要拒绝这些工具,请改用 `--disallowedTools "mcp__*"`,或传递 `--strict-mcp-config` 而不带 `--mcp-config` 以便不加载 MCP 服务器 | `claude --tools "Bash,Edit,Read"` |128| `--tools` | 限制 Claude 可以使用的内置工具。使用 `""` 禁用所有,`"default"` 表示全部,或工具名称如 `"Bash,Edit,Read"`。MCP 工具不受影响;要拒绝这些工具,请改用 `--disallowedTools "mcp__*"`,或传递 `--strict-mcp-config` 而不带 `--mcp-config` 以便不加载 MCP 服务器 | `claude --tools "Bash,Edit,Read"` |

129| `--verbose` | 启用详细日志记录,显示完整的逐轮输出。覆盖此会话的 [`viewMode`](/zh-CN/settings#available-settings) 设置 | `claude --verbose` |129| `--verbose` | 启用详细日志记录,显示完整的逐轮输出。覆盖此会话的 [`viewMode`](/docs/zh-CN/settings#available-settings) 设置 | `claude --verbose` |

130| `--version`, `-v` | 输出版本号 | `claude -v` |130| `--version`, `-v` | 输出版本号 | `claude -v` |

131| `--worktree`, `-w` | 在隔离的 [git worktree](/zh-CN/worktrees) 中启动 Claude,位于 `<repo>/.claude/worktrees/<name>`。如果未给出名称,则自动生成一个。传递 `#<number>` 或 GitHub 拉取请求 URL 以从 `origin` 获取该 PR 并从其分支 worktree | `claude -w feature-auth` |131| `--worktree`, `-w` | 在隔离的 [git worktree](/docs/zh-CN/worktrees) 中启动 Claude,位于 `<repo>/.claude/worktrees/<name>`。如果未给出名称,则自动生成一个。传递 `#<number>` 或 GitHub 拉取请求 URL 以从 `origin` 获取该 PR 并从其分支 worktree | `claude -w feature-auth` |

132 132 

133<h3 id="system-prompt-flags">133<h3 id="system-prompt-flags">

134 系统提示标志134 系统提示标志


147 147 

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

149 149 

150这些标志仅适用于当前调用。对于可以在项目中切换和共享的持久化角色,请使用 [输出样式](/zh-CN/output-styles)。对于 Claude 应该始终遵循的项目约定,请使用 [CLAUDE.md](/zh-CN/memory)。[Agent SDK 系统提示指南](/zh-CN/agent-sdk/modifying-system-prompts#decide-on-a-starting-point) 更深入地涵盖了相同的决策。150这些标志仅适用于当前调用。对于可以在项目中切换和共享的持久化角色,请使用 [输出样式](/docs/zh-CN/output-styles)。对于 Claude 应该始终遵循的项目约定,请使用 [CLAUDE.md](/docs/zh-CN/memory)。[Agent SDK 系统提示指南](/docs/zh-CN/agent-sdk/modifying-system-prompts#decide-on-a-starting-point) 更深入地涵盖了相同的决策。

151 151 

152<h2 id="see-also">152<h2 id="see-also">

153 另请参阅153 另请参阅

154</h2>154</h2>

155 155 

156* [Chrome 扩展](/zh-CN/chrome) - 浏览器自动化和网络测试156* [Chrome 扩展](/docs/zh-CN/chrome) - 浏览器自动化和网络测试

157* [交互模式](/zh-CN/interactive-mode) - 快捷键、输入模式和交互功能157* [交互模式](/docs/zh-CN/interactive-mode) - 快捷键、输入模式和交互功能

158* [快速入门指南](/zh-CN/quickstart) - Claude Code 入门158* [快速入门指南](/docs/zh-CN/quickstart) - Claude Code 入门

159* [常见工作流](/zh-CN/common-workflows) - 高级工作流和模式159* [常见工作流](/docs/zh-CN/common-workflows) - 高级工作流和模式

160* [设置](/zh-CN/settings) - 配置选项160* [设置](/docs/zh-CN/settings) - 配置选项

161* [Agent SDK 文档](/zh-CN/agent-sdk/overview) - 编程使用和集成161* [Agent SDK 文档](/docs/zh-CN/agent-sdk/overview) - 编程使用和集成

code-review.md +14 −14

Details

7> 设置自动化 PR 审查,通过对完整代码库的多代理分析来捕获逻辑错误、安全漏洞和回归问题7> 设置自动化 PR 审查,通过对完整代码库的多代理分析来捕获逻辑错误、安全漏洞和回归问题

8 8 

9<Note>9<Note>

10 Code Review 处于研究预览阶段,仅适用于 [Team 和 Enterprise](https://claude.ai/admin-settings/claude-code) 订阅。对于启用了 [Zero Data Retention](/zh-CN/zero-data-retention) 的组织,此功能不可用。10 Code Review 处于研究预览阶段,仅适用于 [Team 和 Enterprise](https://claude.ai/admin-settings/claude-code) 订阅。对于启用了 [Zero Data Retention](/docs/zh-CN/zero-data-retention) 的组织,此功能不可用。

11</Note>11</Note>

12 12 

13Code Review 分析您的 GitHub pull request,并在发现问题的代码行上发布内联评论。一支由专业代理组成的团队在完整代码库的上下文中检查代码更改,寻找逻辑错误、安全漏洞、破损的边界情况和微妙的回归问题。13Code Review 分析您的 GitHub pull request,并在发现问题的代码行上发布内联评论。一支由专业代理组成的团队在完整代码库的上下文中检查代码更改,寻找逻辑错误、安全漏洞、破损的边界情况和微妙的回归问题。

14 14 

15发现结果按严重程度标记,不会批准或阻止您的 PR,因此现有的审查工作流保持不变。您可以通过向存储库添加 `CLAUDE.md` 或 `REVIEW.md` 文件来调整 Claude 标记的内容。15发现结果按严重程度标记,不会批准或阻止您的 PR,因此现有的审查工作流保持不变。您可以通过向存储库添加 `CLAUDE.md` 或 `REVIEW.md` 文件来调整 Claude 标记的内容。

16 16 

17要在您自己的 CI 基础设施中运行 Claude 而不是使用此托管服务,请参阅 [GitHub Actions](/zh-CN/github-actions) 或 [GitLab CI/CD](/zh-CN/gitlab-ci-cd)。对于自托管 GitHub 实例上的存储库,请参阅 [GitHub Enterprise Server](/zh-CN/github-enterprise-server)。17要在您自己的 CI 基础设施中运行 Claude 而不是使用此托管服务,请参阅 [GitHub Actions](/docs/zh-CN/github-actions) 或 [GitLab CI/CD](/docs/zh-CN/gitlab-ci-cd)。对于自托管 GitHub 实例上的存储库,请参阅 [GitHub Enterprise Server](/docs/zh-CN/github-enterprise-server)。

18 18 

19本页涵盖:19本页涵盖:

20 20 


112 * **Issues**:读写112 * **Issues**:读写

113 * **Pull requests**:读写113 * **Pull requests**:读写

114 114 

115 Code Review 使用对内容的读取访问权限和对 pull request 的写入访问权限。更广泛的权限集也支持 [GitHub Actions](/zh-CN/github-actions),如果您稍后启用的话。115 Code Review 使用对内容的读取访问权限和对 pull request 的写入访问权限。更广泛的权限集也支持 [GitHub Actions](/docs/zh-CN/github-actions),如果您稍后启用的话。

116 </Step>116 </Step>

117 117 

118 <Step title="选择存储库">118 <Step title="选择存储库">


173 173 

174Code Review 读取您的存储库的 `CLAUDE.md` 文件,并将新引入的违规视为[小问题级别](#severity-levels)的发现。这是双向工作的:如果您的 PR 以使 `CLAUDE.md` 语句过时的方式更改代码,Claude 会标记文档需要更新。174Code Review 读取您的存储库的 `CLAUDE.md` 文件,并将新引入的违规视为[小问题级别](#severity-levels)的发现。这是双向工作的:如果您的 PR 以使 `CLAUDE.md` 语句过时的方式更改代码,Claude 会标记文档需要更新。

175 175 

176Claude 在目录层次结构的每个级别读取 `CLAUDE.md` 文件,因此子目录的 `CLAUDE.md` 中的规则仅适用于该路径下的文件。有关 `CLAUDE.md` 如何工作的更多信息,请参阅[内存文档](/zh-CN/memory)。176Claude 在目录层次结构的每个级别读取 `CLAUDE.md` 文件,因此子目录的 `CLAUDE.md` 中的规则仅适用于该路径下的文件。有关 `CLAUDE.md` 如何工作的更多信息,请参阅[内存文档](/docs/zh-CN/memory)。

177 177 

178对于您不想应用于常规 Claude Code 会话的仅审查指导,请改用 [`REVIEW.md`](#review-md)。178对于您不想应用于常规 Claude Code 会话的仅审查指导,请改用 [`REVIEW.md`](#review-md)。

179 179 


183 183 

184`REVIEW.md` 是位于您的存储库根目录的文件,它覆盖 Code Review 在您的存储库上的行为方式。其内容被注入到审查管道中每个代理的系统提示中,作为最高优先级指令块,优先于默认审查指导。184`REVIEW.md` 是位于您的存储库根目录的文件,它覆盖 Code Review 在您的存储库上的行为方式。其内容被注入到审查管道中每个代理的系统提示中,作为最高优先级指令块,优先于默认审查指导。

185 185 

186因为它是逐字粘贴的,`REVIEW.md` 是纯说明:[`@` 导入语法](/zh-CN/memory#import-additional-files)不会展开,引用的文件不会读入提示。将您想要强制执行的规则直接放在文件中。186因为它是逐字粘贴的,`REVIEW.md` 是纯说明:[`@` 导入语法](/docs/zh-CN/memory#import-additional-files)不会展开,引用的文件不会读入提示。将您想要强制执行的规则直接放在文件中。

187 187 

188<h4 id="what-you-can-tune">188<h4 id="what-you-can-tune">

189 您可以调整的内容189 您可以调整的内容


310 在本地审查差异310 在本地审查差异

311</h2>311</h2>

312 312 

313[`/code-review` 命令](/zh-CN/commands)在您的终端中审查差异,无需安装 GitHub App。在任何 Claude Code 会话中运行它:它报告正确性错误和{/* min-version: 2.1.151 */}重用、简化和效率清理。默认情况下,本地审查涵盖您分支相对于其上游的提前提交加上工作树中的任何未提交更改。传递 `--comment` 以将发现作为内联 PR 评论发布,或传递 `--fix` 以在审查后将发现应用到您的工作树。313[`/code-review` 命令](/docs/zh-CN/commands)在您的终端中审查差异,无需安装 GitHub App。在任何 Claude Code 会话中运行它:它报告正确性错误和重用、简化和效率清理。默认情况下,本地审查涵盖您分支相对于其上游的提前提交加上工作树中的任何未提交更改。传递 `--comment` 以将发现作为内联 PR 评论发布,或传递 `--fix` 以在审查后将发现应用到您的工作树。

314 314 

315较低的[工作量级别](/zh-CN/model-config#adjust-effort-level)返回较少、更高置信度的发现,而 `high` 到 `max` 提供更广泛的覆盖范围,可能包括不确定的发现。没有工作量参数,审查使用会话的当前工作量。要审查默认差异以外的内容,请传递一个目标:文件路径、PR 编号、分支名称或引用范围,例如 `main...my-feature`。引用范围形式审查从 `my-feature` 到 `main` 的拉取请求将包含的已提交差异,无论分支的上游如何配置。315较低的[工作量级别](/docs/zh-CN/model-config#adjust-effort-level)返回较少、更高置信度的发现,而 `high` 到 `max` 提供更广泛的覆盖范围,可能包括不确定的发现。没有工作量参数,审查使用会话的当前工作量。要审查默认差异以外的内容,请传递一个目标:文件路径、PR 编号、分支名称或引用范围,例如 `main...my-feature`。引用范围形式审查从 `my-feature` 到 `main` 的拉取请求将包含的已提交差异,无论分支的上游如何配置。

316 316 

317`/code-review ultra --fix` 在云中运行更深入的 [ultrareview](/zh-CN/ultrareview),然后在发现到达您的会话时将其应用到您的工作树。Ultrareview 使用其自己的范围:您当前的分支与存储库的默认分支,加上工作树中的任何未提交和暂存的更改。317`/code-review ultra --fix` 在云中运行更深入的 [ultrareview](/docs/zh-CN/ultrareview),然后在发现到达您的会话时将其应用到您的工作树。Ultrareview 使用其自己的范围:您当前的分支与存储库的默认分支,加上工作树中的任何未提交和暂存的更改。

318 318 

319该命令在 v2.1.147 之前被命名为 `/simplify`,当时它默认应用修复。{/* min-version: 2.1.154 */}从 v2.1.154 开始,`/simplify` 运行单独的仅清理审查,应用修复而不寻找错误。如果您为错误查找编写了 `/simplify` 脚本,请切换到 `/code-review --fix`,它保持不变。319该命令在 v2.1.147 之前被命名为 `/simplify`,当时它默认应用修复。从 v2.1.154 开始,`/simplify` 运行单独的仅清理审查,应用修复而不寻找错误。如果您为错误查找编写了 `/simplify` 脚本,请切换到 `/code-review --fix`,它保持不变。

320 320 

321<h2 id="related-resources">321<h2 id="related-resources">

322 相关资源322 相关资源


324 324 

325Code Review 旨在与 Claude Code 的其余部分一起工作。如果您想在打开 PR 之前在本地运行审查、需要自托管设置或想深入了解 `CLAUDE.md` 如何在工具中塑造 Claude 的行为,这些页面是很好的下一步:325Code Review 旨在与 Claude Code 的其余部分一起工作。如果您想在打开 PR 之前在本地运行审查、需要自托管设置或想深入了解 `CLAUDE.md` 如何在工具中塑造 Claude 的行为,这些页面是很好的下一步:

326 326 

327* [Commands](/zh-CN/commands):在本地 Claude Code 会话中运行 `/code-review` 以在推送前检查差异327* [Commands](/docs/zh-CN/commands):在本地 Claude Code 会话中运行 `/code-review` 以在推送前检查差异

328* [GitHub Actions](/zh-CN/github-actions):在您自己的 GitHub Actions 工作流中运行 Claude,以实现超越代码审查的自定义自动化328* [GitHub Actions](/docs/zh-CN/github-actions):在您自己的 GitHub Actions 工作流中运行 Claude,以实现超越代码审查的自定义自动化

329* [GitLab CI/CD](/zh-CN/gitlab-ci-cd):GitLab 管道的自托管 Claude 集成329* [GitLab CI/CD](/docs/zh-CN/gitlab-ci-cd):GitLab 管道的自托管 Claude 集成

330* [Memory](/zh-CN/memory):`CLAUDE.md` 文件如何在 Claude Code 中工作330* [Memory](/docs/zh-CN/memory):`CLAUDE.md` 文件如何在 Claude Code 中工作

331* [Analytics](/zh-CN/analytics):跟踪超越代码审查的 Claude Code 使用情况331* [Analytics](/docs/zh-CN/analytics):跟踪超越代码审查的 Claude Code 使用情况

commands.md +31 −31

Details

10 10 

11输入 `/` 可以查看所有可用命令,或输入 `/` 后跟字母来筛选。11输入 `/` 可以查看所有可用命令,或输入 `/` 后跟字母来筛选。

12 12 

13命令只在您的消息开头被识别。命令名称后面的文本作为参数传递给它。{/* min-version: 2.1.199 */}从 v2.1.199 开始,[skills](/docs/zh-CN/skills#pass-arguments-to-skills) 是例外:skill 调用后跟更多 skills,例如 `/skill-a /skill-b do XYZ`,会加载开头命名的每个 skill,并将尾部文本作为参数传递给每个 skill。最多可以链接六个 skills。13命令只在您的消息开头被识别。命令名称后面的文本作为参数传递给它。从 v2.1.199 开始,[skills](/docs/zh-CN/skills#pass-arguments-to-skills) 是例外:skill 调用后跟更多 skills,例如 `/skill-a /skill-b do XYZ`,会加载开头命名的每个 skill,并将尾部文本作为参数传递给每个 skill。最多可以链接六个 skills。

14 14 

15如果您在 Claude 正在响应时发送命令,它会排队并在当前轮次完成后运行。某些命令,例如 `/status`、`/tasks` 和 `/usage`,会立即运行而不中断响应。15如果您在 Claude 正在响应时发送命令,它会排队并在当前轮次完成后运行。某些命令,例如 `/status`、`/tasks` 和 `/usage`,会立即运行而不中断响应。

16 16 


50</Note>50</Note>

51 51 

52| 命令 | 用途 |52| 命令 | 用途 |

53| :--------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |53| :--------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

54| `/add-dir <path>` | 为当前会话期间的文件访问添加工作目录。输入部分路径会显示匹配的目录建议;按 `Tab` 接受一个。大多数 `.claude/` 配置[不会从添加的目录中发现](/docs/zh-CN/permissions#additional-directories-grant-file-access-not-configuration)。您可以稍后使用 `--continue` 或 `--resume` 从添加的目录恢复会话 |54| `/add-dir <path>` | 为当前会话期间的文件访问添加工作目录。输入部分路径会显示匹配的目录建议;按 `Tab` 接受一个。大多数 `.claude/` 配置[不会从添加的目录中发现](/docs/zh-CN/permissions#additional-directories-grant-file-access-not-configuration)。您可以稍后使用 `--continue` 或 `--resume` 从添加的目录恢复会话 |

55| `/advisor [model\|off]` | 启用或禁用[顾问工具](/docs/zh-CN/advisor),它在任务期间的关键时刻咨询第二个模型以获取指导。接受 `opus`、`sonnet`、`fable`({/* min-version: 2.1.170 */}v2.1.170+)或完整模型 ID。不带参数时,打开选择器 |55| `/advisor [model\|off]` | 启用或禁用[顾问工具](/docs/zh-CN/advisor),它在任务期间的关键时刻咨询第二个模型以获取指导。接受 `opus`、`sonnet`、`fable`(v2.1.170+)或完整模型 ID。不带参数时,打开选择器 |

56| `/agents` | {/* min-version: 2.1.198 */}从 v2.1.198 开始,运行 `/agents` 会打印一个提醒,要求您询问 Claude 创建或管理 [subagents](/docs/zh-CN/sub-agents),或直接编辑 `.claude/agents/` 或 `~/.claude/agents/`。{/* max-version: 2.1.197 */}在 v2.1.197 及更早版本中,打开用于创建和管理 subagent 配置的交互式界面 |56| `/agents` | 从 v2.1.198 开始,运行 `/agents` 会打印一个提醒,要求您询问 Claude 创建或管理 [subagents](/docs/zh-CN/sub-agents),或直接编辑 `.claude/agents/` 或 `~/.claude/agents/`。在 v2.1.197 及更早版本中,打开用于创建和管理 subagent 配置的交互式界面 |

57| `/autofix-pr [prompt]` | 生成一个[网络版 Claude Code](/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 和访问[网络版 Claude Code](/docs/zh-CN/claude-code-on-the-web) |57| `/autofix-pr [prompt]` | 生成一个[网络版 Claude Code](/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 和访问[网络版 Claude Code](/docs/zh-CN/claude-code-on-the-web) |

58| `/background [prompt]` | 将当前会话分离以作为[后台 agent](/docs/zh-CN/agent-view) 运行并释放此终端。传递一个提示以在分离前发送一条更多指令。使用 `claude agents` 监视会话。别名:`/bg` |58| `/background [prompt]` | 将当前会话分离以作为[后台 agent](/docs/zh-CN/agent-view) 运行并释放此终端。传递一个提示以在分离前发送一条更多指令。使用 `claude agents` 监视会话。别名:`/bg` |

59| `/batch <instruction>` | **[Skill](/docs/zh-CN/skills#bundled-skills).** 在整个代码库中并行编排大规模更改。研究代码库,将工作分解为 5 到 30 个独立单元,并呈现一个计划。获得批准后,在隔离的 [git worktree](/docs/zh-CN/worktrees) 中为每个单元生成一个[后台 subagent](/docs/zh-CN/sub-agents#run-subagents-in-foreground-or-background)。每个 subagent 实现其单元、运行测试并打开一个 pull request。需要一个 git 存储库。示例:`/batch migrate src/ from Solid to React` |59| `/batch <instruction>` | **[Skill](/docs/zh-CN/skills#bundled-skills).** 在整个代码库中并行编排大规模更改。研究代码库,将工作分解为 5 到 30 个独立单元,并呈现一个计划。获得批准后,在隔离的 [git worktree](/docs/zh-CN/worktrees) 中为每个单元生成一个[后台 subagent](/docs/zh-CN/sub-agents#run-subagents-in-foreground-or-background)。每个 subagent 实现其单元、运行测试并打开一个 pull request。需要一个 git 存储库。示例:`/batch migrate src/ from Solid to React` |

60| `/branch [name]` | 在此点创建当前对话的分支,以便您可以尝试不同的方向而不会丢失当前的对话。切换到分支并保留原始分支,您可以使用 `/resume` 返回。要将附加任务交给后台 subagent 而不是自己切换到副本,请使用 `/fork` |60| `/branch [name]` | 在此点创建当前对话的分支,以便您可以尝试不同的方向而不会丢失当前的对话。切换到分支并保留原始分支,您可以使用 `/resume` 返回。要将附加任务交给后台 subagent 而不是自己切换到副本,请使用 `/fork` |

61| `/btw <question>` | 提出快速[附加问题](/docs/zh-CN/interactive-mode#side-questions-with-%2Fbtw),无需添加到对话中 |61| `/btw <question>` | 提出快速[附加问题](/docs/zh-CN/interactive-mode#side-questions-with-%2Fbtw),无需添加到对话中 |

62| `/cd <path>` | {/* min-version: 2.1.169 */}将此会话移动到新的工作目录。对话的提示缓存被保留:新目录的 [`CLAUDE.md`](/docs/zh-CN/memory) 作为消息附加,而不是重建系统提示。会话被重新定位到新目录的项目存储,因此 `--resume` 和 `--continue` 从那里找到它。如果您之前未在该目录中工作过,会提示您信任该目录。{/* min-version: 2.1.206 */}输入部分路径会显示匹配的目录建议;按 `Tab` 接受一个。建议需要 Claude Code v2.1.206 或更高版本。要授予对额外目录的访问权限而不移动会话,请使用 `/add-dir`。使用 [`Cd` 权限规则](/docs/zh-CN/permissions#cd) 限制或禁用 `/cd` 目标。需要 Claude Code v2.1.169 或更高版本;早期版本报告 `Unknown command: /cd` |62| `/cd <path>` | 将此会话移动到新的工作目录。对话的提示缓存被保留:新目录的 [`CLAUDE.md`](/docs/zh-CN/memory) 作为消息附加,而不是重建系统提示。会话被重新定位到新目录的项目存储,因此 `--resume` 和 `--continue` 从那里找到它。如果您之前未在该目录中工作过,会提示您信任该目录。输入部分路径会显示匹配的目录建议;按 `Tab` 接受一个。建议需要 Claude Code v2.1.206 或更高版本。要授予对额外目录的访问权限而不移动会话,请使用 `/add-dir`。使用 [`Cd` 权限规则](/docs/zh-CN/permissions#cd) 限制或禁用 `/cd` 目标。需要 Claude Code v2.1.169 或更高版本;早期版本报告 `Unknown command: /cd` |

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

64| `/claude-api [migrate\|managed-agents-onboard]` | **[Skill](/docs/zh-CN/skills#bundled-skills).** 为您的项目语言(Python、TypeScript、Java、Go、Ruby、C#、PHP 或 cURL)和 Managed Agents 参考加载 Claude API 参考资料。涵盖工具使用、流式传输、批处理、结构化输出和常见陷阱。当您的代码导入 `anthropic` 或 `@anthropic-ai/sdk` 时也会自动激活。运行 `/claude-api migrate` 以将现有 Claude API 代码升级到更新的模型:Claude 询问要扫描哪些文件以及要针对哪个模型,然后更新在版本之间更改的模型 ID、thinking 配置和其他参数。运行 `/claude-api managed-agents-onboard` 以获得交互式演练,从头开始创建新的 Managed Agent |64| `/claude-api [migrate\|managed-agents-onboard]` | **[Skill](/docs/zh-CN/skills#bundled-skills).** 为您的项目语言(Python、TypeScript、Java、Go、Ruby、C#、PHP 或 cURL)和 Managed Agents 参考加载 Claude API 参考资料。涵盖工具使用、流式传输、批处理、结构化输出和常见陷阱。当您的代码导入 `anthropic` 或 `@anthropic-ai/sdk` 时也会自动激活。运行 `/claude-api migrate` 以将现有 Claude API 代码升级到更新的模型:Claude 询问要扫描哪些文件以及要针对哪个模型,然后更新在版本之间更改的模型 ID、thinking 配置和其他参数。运行 `/claude-api managed-agents-onboard` 以获得交互式演练,从头开始创建新的 Managed Agent |

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

66| `/code-review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [target]` | **[Skill](/docs/zh-CN/skills#bundled-skills).** 审阅当前差异以查找正确性错误以及重用、简化和效率清理。传递 `--fix` 以将发现应用到您的工作树,传递 `--comment` 以将其作为内联 GitHub PR 评论发布,或传递 `ultra` 以运行深度[云审阅](/docs/zh-CN/ultrareview)。{/* min-version: 2.1.154 */}从 v2.1.154 开始,`/simplify` 运行单独的仅清理审阅,应用修复而不寻找错误。有关工作量级别和目标,请参阅[本地审阅差异](/docs/zh-CN/code-review#review-a-diff-locally) |66| `/code-review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [target]` | **[Skill](/docs/zh-CN/skills#bundled-skills).** 审阅当前差异以查找正确性错误以及重用、简化和效率清理。传递 `--fix` 以将发现应用到您的工作树,传递 `--comment` 以将其作为内联 GitHub PR 评论发布,或传递 `ultra` 以运行深度[云审阅](/docs/zh-CN/ultrareview)。从 v2.1.154 开始,`/simplify` 运行单独的仅清理审阅,应用修复而不寻找错误。有关工作量级别和目标,请参阅[本地审阅差异](/docs/zh-CN/code-review#review-a-diff-locally) |

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

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

69| `/config [key=value ...]` | 打开[设置](/docs/zh-CN/settings)界面以调整主题、模型、[输出样式](/docs/zh-CN/output-styles)和其他偏好设置。{/* min-version: 2.1.181 */}从 v2.1.181 开始,传递一个或多个 `key=value` 对以直接设置设置而无需打开界面,例如 `/config thinking=false`。{/* min-version: 2.1.182 */}从 v2.1.182 开始,也接受命名的简写键,例如 `/config theme=dark` 或 `/config model=sonnet`。`key=value` 形式也适用于非交互模式(`-p`)和[远程控制](/docs/zh-CN/remote-control)。运行 `/config --help` 以列出每个可设置的键及其选项。别名:`/settings` |69| `/config [key=value ...]` | 打开[设置](/docs/zh-CN/settings)界面以调整主题、模型、[输出样式](/docs/zh-CN/output-styles)和其他偏好设置。从 v2.1.181 开始,传递一个或多个 `key=value` 对以直接设置设置而无需打开界面,例如 `/config thinking=false`。从 v2.1.182 开始,也接受命名的简写键,例如 `/config theme=dark` 或 `/config model=sonnet`。`key=value` 形式也适用于非交互模式(`-p`)和[远程控制](/docs/zh-CN/remote-control)。运行 `/config --help` 以列出每个可设置的键及其选项。别名:`/settings` |

70| `/context [all]` | 将当前上下文使用情况可视化为彩色网格。显示上下文密集型工具、内存膨胀和容量警告的优化建议。在[全屏模式](/docs/zh-CN/fullscreen)中,每项的分解被折叠以保持网格可见。传递 `all` 以展开它 |70| `/context [all]` | 将当前上下文使用情况可视化为彩色网格。显示上下文密集型工具、内存膨胀和容量警告的优化建议。在[全屏模式](/docs/zh-CN/fullscreen)中,每项的分解被折叠以保持网格可见。传递 `all` 以展开它 |

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

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

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

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

75| `/deep-research <question>` | **[Workflow](/docs/zh-CN/workflows#bundled-workflows).** 在问题上展开网络搜索,获取并交叉检查来源,并综合一份引用的报告 |75| `/deep-research <question>` | **[Workflow](/docs/zh-CN/workflows#bundled-workflows).** 在问题上展开网络搜索,获取并交叉检查来源,并综合一份引用的报告 |

76| `/design-login` | 使用您的 claude.ai 账户授权设计系统访问权限以供 `/design-sync` 使用 |76| `/design-login` | 使用您的 claude.ai 账户授权设计系统访问权限以供 `/design-sync` 使用 |

77| `/design-sync [hint]` | **[Skill](/docs/zh-CN/skills#bundled-skills).** 转换您的存储库的 React 设计系统并将其上传到 [Claude Design](https://claude.ai/design),以便它生成的设计使用您的真实组件。可选择性地命名设计系统,例如 `/design-sync Acme DS`。首次同步验证每个组件,在大型存储库上可能需要几个小时。在 Anthropic API 上可用;在 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 和 Claude Platform on AWS 上,底层工具无法访问 claude.ai,因此该命令不可用 |77| `/design-sync [hint]` | **[Skill](/docs/zh-CN/skills#bundled-skills).** 转换您的存储库的 React 设计系统并将其上传到 [Claude Design](https://claude.ai/design),以便它生成的设计使用您的真实组件。可选择性地命名设计系统,例如 `/design-sync Acme DS`。首次同步验证每个组件,在大型存储库上可能需要几个小时。在 Anthropic API 上可用;在 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 和 Claude Platform on AWS 上,底层工具无法访问 claude.ai,因此该命令不可用 |

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

79| `/diff` | 打开交互式差异查看器,显示未提交的更改和每轮差异。使用左/右箭头在当前 git 差异和单个 Claude 轮次之间切换,使用上/下浏览文件。按 Enter 打开所选文件的差异,使用上/下或 PageUp/PageDown 滚动,按 Esc 返回文件列表。{/* min-version: 2.1.198 */}从 v2.1.198 开始,打开的查看器也会在存储库的 git 状态在会话外发生变化时自动刷新,例如在另一个终端中进行分支切换或提交 |79| `/diff` | 打开交互式差异查看器,显示未提交的更改和每轮差异。使用左/右箭头在当前 git 差异和单个 Claude 轮次之间切换,使用上/下浏览文件。按 Enter 打开所选文件的差异,使用上/下或 PageUp/PageDown 滚动,按 Esc 返回文件列表。从 v2.1.198 开始,打开的查看器也会在存储库的 git 状态在会话外发生变化时自动刷新,例如在另一个终端中进行分支切换或提交 |

80| `/doctor` | **[Skill](/docs/zh-CN/skills#bundled-skills).** 运行设置检查以诊断问题并可以修复它们。检查安装健康状况,包括重复或遗留安装、`PATH` 问题和无法解析的设置文件。查找未使用的 skills、MCP servers 和 plugins 与其上下文成本,标记缓慢的 [hooks](/docs/zh-CN/hooks),并检查是否有更新版本。针对已检入的文件去重本地 `CLAUDE.md` 文件,通过删除 Claude 可以从代码库派生的内容来修剪已检入的 [`CLAUDE.md`](/docs/zh-CN/memory) 文件,并将保留的始终加载的指导迁移到 [skills](/docs/zh-CN/skills) 和按需加载的嵌套 `CLAUDE.md` 文件。修剪会删除目录布局、依赖列表和架构概览等部分,并保留陷阱、基本原理和与工具默认值不同的约定。还提供将 [auto mode](/docs/zh-CN/permissions#permission-modes) 设置为默认值的选项,以及[预先批准](/docs/zh-CN/permissions)经常被拒绝的只读命令。首先报告发现并在更改任何内容之前要求确认。从终端,`claude doctor` 打印只读安装诊断而不启动会话。别名:`/checkup`。{/* min-version: 2.1.206 */}CLAUDE.md 修剪检查需要 Claude Code v2.1.206 或更高版本。在 v2.1.206 之前,版本检查将 Homebrew 安装与 `autoUpdatesChannel` 设置进行比较,而不是[已安装 cask 的频道](/docs/zh-CN/setup#configure-release-channel)。{/* min-version: 2.1.205 */}在 v2.1.205 之前,`/doctor` 打开只读诊断屏幕,按 `f` 将报告发送给 Claude |80| `/doctor` | **[Skill](/docs/zh-CN/skills#bundled-skills).** 运行设置检查以诊断问题并可以修复它们。检查安装健康状况,包括重复或遗留安装、`PATH` 问题和无法解析的设置文件。查找未使用的 skills、MCP servers 和 plugins 与其上下文成本,标记缓慢的 [hooks](/docs/zh-CN/hooks),并检查是否有更新版本。针对已检入的文件去重本地 `CLAUDE.md` 文件,通过删除 Claude 可以从代码库派生的内容来修剪已检入的 [`CLAUDE.md`](/docs/zh-CN/memory) 文件,并将保留的始终加载的指导迁移到 [skills](/docs/zh-CN/skills) 和按需加载的嵌套 `CLAUDE.md` 文件。修剪会删除目录布局、依赖列表和架构概览等部分,并保留陷阱、基本原理和与工具默认值不同的约定。还提供将 [auto mode](/docs/zh-CN/permissions#permission-modes) 设置为默认值的选项,以及[预先批准](/docs/zh-CN/permissions)经常被拒绝的只读命令。首先报告发现并在更改任何内容之前要求确认。从终端,`claude doctor` 打印只读安装诊断而不启动会话。别名:`/checkup`。CLAUDE.md 修剪检查需要 Claude Code v2.1.206 或更高版本。在 v2.1.206 之前,版本检查将 Homebrew 安装与 `autoUpdatesChannel` 设置进行比较,而不是[已安装 cask 的频道](/docs/zh-CN/setup#configure-release-channel)。在 v2.1.205 之前,`/doctor` 打开只读诊断屏幕,按 `f` 将报告发送给 Claude |

81| `/effort [level\|auto]` | 设置模型[工作量级别](/docs/zh-CN/model-config#adjust-effort-level)。接受 `low`、`medium`、`high`、`xhigh`、`max` 或 `ultracode`;可用级别取决于模型,`max` 和 `ultracode` 仅限会话。`ultracode` 是一个 Claude Code 设置,它结合了 `xhigh` 推理和自动[工作流](/docs/zh-CN/workflows#let-claude-decide-with-ultracode)编排。`auto` 重置为模型默认值。不带参数时,打开交互式滑块;使用左右箭头选择级别,按 `Enter` 应用。立即生效,无需等待当前响应完成。{/* min-version: 2.1.205 */}也可在非交互模式(`-p`)中使用级别参数,其中它仅适用于当前会话且不保存为您的默认值;需要 Claude Code v2.1.205 或更高版本。在 Fable 5、Opus 4.8 和 Opus 4.7 上,当[模型默认工作量级别保持](/docs/zh-CN/model-config#adjust-effort-level)生效时,非交互 `/effort` 报告 `Not applied`,因此改为在启动时传递 `--effort` |81| `/effort [level\|auto]` | 设置模型[工作量级别](/docs/zh-CN/model-config#adjust-effort-level)。接受 `low`、`medium`、`high`、`xhigh`、`max` 或 `ultracode`;可用级别取决于模型,`max` 和 `ultracode` 仅限会话。`ultracode` 是一个 Claude Code 设置,它结合了 `xhigh` 推理和自动[工作流](/docs/zh-CN/workflows#let-claude-decide-with-ultracode)编排。`auto` 重置为模型默认值。不带参数时,打开交互式滑块;使用左右箭头选择级别,按 `Enter` 应用。立即生效,无需等待当前响应完成。也可在非交互模式(`-p`)中使用级别参数,其中它仅适用于当前会话且不保存为您的默认值;需要 Claude Code v2.1.205 或更高版本。在 Fable 5、Opus 4.8 和 Opus 4.7 上,当[模型默认工作量级别保持](/docs/zh-CN/model-config#adjust-effort-level)生效时,非交互 `/effort` 报告 `Not applied`,因此改为在启动时传递 `--effort` |

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

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

84| `/fast [on\|off]` | 切换[快速模式](/docs/zh-CN/fast-mode)开启或关闭。{/* min-version: 2.1.205 */}在非交互模式(`-p`)中,`/fast` 仅在使用快速模式在其 [`--settings`](/docs/zh-CN/cli-reference#cli-flags) 值中启动的会话中工作,例如 `claude -p --settings '{"fastMode": true}'`;切换然后仅适用于当前会话且不保存为您的默认值,在任何其他非交互会话中,该命令报告快速模式不可用。需要 Claude Code v2.1.205 或更高版本 |84| `/fast [on\|off]` | 切换[快速模式](/docs/zh-CN/fast-mode)开启或关闭。在非交互模式(`-p`)中,`/fast` 仅在使用快速模式在其 [`--settings`](/docs/zh-CN/cli-reference#cli-flags) 值中启动的会话中工作,例如 `claude -p --settings '{"fastMode": true}'`;切换然后仅适用于当前会话且不保存为您的默认值,在任何其他非交互会话中,该命令报告快速模式不可用。需要 Claude Code v2.1.205 或更高版本 |

85| `/feedback [report]` | 提交反馈、报告错误或分享您的对话。发送给 Anthropic 需要[身份验证](/docs/zh-CN/authentication)。别名:`/bug`、`/share` |85| `/feedback [report]` | 提交反馈、报告错误或分享您的对话。发送给 Anthropic 需要[身份验证](/docs/zh-CN/authentication)。别名:`/bug`、`/share` |

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

87| `/focus` | 切换焦点视图,仅显示您的最后一个提示、带有编辑 diffstats 的单行工具调用摘要和最终响应。{/* min-version: 2.1.198 */}从 v2.1.198 开始,工具调用摘要也计算在轮次中启动的 subagents 数量,并将已完成的后台任务通知折叠为单个计数。选择在会话间保持;设置 [`viewMode`](/docs/zh-CN/settings#available-settings) 在设置中以覆盖它。仅在[全屏渲染](/docs/zh-CN/fullscreen)中可用 |87| `/focus` | 切换焦点视图,仅显示您的最后一个提示、带有编辑 diffstats 的单行工具调用摘要和最终响应。从 v2.1.198 开始,工具调用摘要也计算在轮次中启动的 subagents 数量,并将已完成的后台任务通知折叠为单个计数。选择在会话间保持;设置 [`viewMode`](/docs/zh-CN/settings#available-settings) 在设置中以覆盖它。仅在[全屏渲染](/docs/zh-CN/fullscreen)中可用 |

88| `/fork <directive>` | {/* min-version: 2.1.161 */}生成一个[分叉的 subagent](/docs/zh-CN/sub-agents#fork-the-current-conversation):一个继承完整对话的后台 subagent,在您继续进行时处理该指令。其结果在完成时返回到您的对话。要自己切换到对话的副本,请使用 `/branch`。在 v2.1.161 之前,`/fork` 是 `/branch` 的别名 |88| `/fork <directive>` | 生成一个[分叉的 subagent](/docs/zh-CN/sub-agents#fork-the-current-conversation):一个继承完整对话的后台 subagent,在您继续进行时处理该指令。其结果在完成时返回到您的对话。要自己切换到对话的副本,请使用 `/branch`。在 v2.1.161 之前,`/fork` 是 `/branch` 的别名 |

89| `/goal [condition\|clear]` | 设置一个[目标](/docs/zh-CN/goal):Claude 在多个轮次中继续工作,直到满足条件。不带参数时,显示当前或最近实现的目标。`clear`、`stop`、`off`、`reset`、`none` 或 `cancel` 会提前移除活跃目标 |89| `/goal [condition\|clear]` | 设置一个[目标](/docs/zh-CN/goal):Claude 在多个轮次中继续工作,直到满足条件。不带参数时,显示当前或最近实现的目标。`clear`、`stop`、`off`、`reset`、`none` 或 `cancel` 会提前移除活跃目标 |

90| `/heapdump` | 将 JavaScript 堆快照和内存分解写入 `~/Desktop`,或在 Linux 上没有 Desktop 文件夹的情况下写入您的主目录,以诊断高内存使用情况。`.heapsnapshot` 文件包含您的完整对话和凭证,所以不要分享它。请参阅[故障排除](/docs/zh-CN/troubleshooting#high-cpu-or-memory-usage) |90| `/heapdump` | 将 JavaScript 堆快照和内存分解写入 `~/Desktop`,或在 Linux 上没有 Desktop 文件夹的情况下写入您的主目录,以诊断高内存使用情况。`.heapsnapshot` 文件包含您的完整对话和凭证,所以不要分享它。请参阅[故障排除](/docs/zh-CN/troubleshooting#high-cpu-or-memory-usage) |

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


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

100| `/logout` | 从您的 Anthropic 账户登出 |100| `/logout` | 从您的 Anthropic 账户登出 |

101| `/loop [interval] [prompt]` | **[Skill](/docs/zh-CN/skills#bundled-skills).** 在会话保持打开状态时重复运行提示。省略间隔,Claude 会在迭代之间自动调整步速。省略提示,[在可用的地方](/docs/zh-CN/scheduled-tasks#run-the-built-in-maintenance-prompt)Claude 运行自主维护检查或运行 `.claude/loop.md` 中的提示。示例:`/loop 5m check if the deploy finished`。请参阅[按计划运行提示](/docs/zh-CN/scheduled-tasks)。别名:`/proactive` |101| `/loop [interval] [prompt]` | **[Skill](/docs/zh-CN/skills#bundled-skills).** 在会话保持打开状态时重复运行提示。省略间隔,Claude 会在迭代之间自动调整步速。省略提示,[在可用的地方](/docs/zh-CN/scheduled-tasks#run-the-built-in-maintenance-prompt)Claude 运行自主维护检查或运行 `.claude/loop.md` 中的提示。示例:`/loop 5m check if the deploy finished`。请参阅[按计划运行提示](/docs/zh-CN/scheduled-tasks)。别名:`/proactive` |

102| `/mcp [reconnect <server>\|enable\|disable [<server>\|all]]` | 管理 MCP server 连接和 OAuth 身份验证。不带参数运行以打开交互式列表,传递 `reconnect <server>` 以重新连接一个断开连接的 server,或传递 `enable`/`disable` 与 server 名称或 `all` 以更改连接状态而不打开对话框。{/* min-version: 2.1.205 */}也可在非交互模式(`-p`)中使用,其中不带参数运行它会打印 server 状态的文本摘要而不是打开列表;需要 Claude Code v2.1.205 或更高版本 |102| `/mcp [reconnect <server>\|enable\|disable [<server>\|all]]` | 管理 MCP server 连接和 OAuth 身份验证。不带参数运行以打开交互式列表,传递 `reconnect <server>` 以重新连接一个断开连接的 server,或传递 `enable`/`disable` 与 server 名称或 `all` 以更改连接状态而不打开对话框。也可在非交互模式(`-p`)中使用,其中不带参数运行它会打印 server 状态的文本摘要而不是打开列表;需要 Claude Code v2.1.205 或更高版本 |

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

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

105| `/model [model]` | 切换 AI 模型并将其保存为新会话的默认值。对于支持的模型,使用左/右箭头[调整工作量级别](/docs/zh-CN/model-config#adjust-effort-level)。不带参数时,打开选择器;在一行上按 `s` 以仅为当前会话切换。当对话有先前输出时,选择器要求确认,因为下一个响应会重新读取完整历史记录而不使用缓存的上下文。确认后,更改立即生效,无需等待当前响应完成。{/* min-version: 2.1.205 */}也可在非交互模式(`-p`)中使用模型参数而不是选择器,其中它仅适用于当前会话且不保存为您的默认值;需要 Claude Code v2.1.205 或更高版本 |105| `/model [model]` | 切换 AI 模型并将其保存为新会话的默认值。对于支持的模型,使用左/右箭头[调整工作量级别](/docs/zh-CN/model-config#adjust-effort-level)。不带参数时,打开选择器;在一行上按 `s` 以仅为当前会话切换。当对话有先前输出时,选择器要求确认,因为下一个响应会重新读取完整历史记录而不使用缓存的上下文。确认后,更改立即生效,无需等待当前响应完成。也可在非交互模式(`-p`)中使用模型参数而不是选择器,其中它仅适用于当前会话且不保存为您的默认值;需要 Claude Code v2.1.205 或更高版本 |

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

107| `/permissions` | 管理工具权限的允许、询问和拒绝规则。打开交互式对话框,您可以按范围查看规则、添加或删除规则、管理工作目录,以及查看[最近的自动模式拒绝](/docs/zh-CN/auto-mode-config#review-denials)。别名:`/allowed-tools` |107| `/permissions` | 管理工具权限的允许、询问和拒绝规则。打开交互式对话框,您可以按范围查看规则、添加或删除规则、管理工作目录,以及查看[最近的自动模式拒绝](/docs/zh-CN/auto-mode-config#review-denials)。别名:`/allowed-tools` |

108| `/plan [description]` | 直接从提示进入 Plan Mode。传递可选描述以进入 Plan Mode 并立即开始该任务,例如 `/plan fix the auth bug` |108| `/plan [description]` | 直接从提示进入 Plan Mode。传递可选描述以进入 Plan Mode 并立即开始该任务,例如 `/plan fix the auth bug` |

109| `/plugin [subcommand]` | 管理 Claude Code [plugins](/docs/zh-CN/plugins)。不带参数运行以打开 plugin 菜单,或传递子命令如 `list`、`install`、`enable` 或 `disable` 以直接执行 |109| `/plugin [subcommand]` | 管理 Claude Code [plugins](/docs/zh-CN/plugins)。不带参数运行以打开 plugin 菜单,或传递子命令如 `list`、`install`、`enable` 或 `disable` 以直接执行 |

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

111| `/pr-comments [PR]` | {/* max-version: 2.1.90 */}在 v2.1.91 中移除。改为直接询问 Claude 以查看 pull request 评论。在早期版本中,从 GitHub pull request 获取并显示评论;自动检测当前分支的 PR,或传递 PR URL 或编号。需要 `gh` CLI |111| `/pr-comments [PR]` | 在 v2.1.91 中移除。改为直接询问 Claude 以查看 pull request 评论。在早期版本中,从 GitHub pull request 获取并显示评论;自动检测当前分支的 PR,或传递 PR URL 或编号。需要 `gh` CLI |

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

113| `/radio` | 在浏览器中打开 Claude FM lo-fi 电台。当浏览器不可用时打印流 URL。在 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 或 Claude Platform on AWS 上不可用 |113| `/radio` | 在浏览器中打开 Claude FM lo-fi 电台。当浏览器不可用时打印流 URL。在 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 或 Claude Platform on AWS 上不可用 |

114| `/recap` | 按需生成当前会话的单行摘要。请参阅[会话摘要](/docs/zh-CN/interactive-mode#session-recap)以了解您离开后出现的自动摘要 |114| `/recap` | 按需生成当前会话的单行摘要。请参阅[会话摘要](/docs/zh-CN/interactive-mode#session-recap)以了解您离开后出现的自动摘要 |

115| `/release-notes` | 在交互式版本选择器中查看更改日志。选择特定版本以查看其发布说明,或选择显示所有版本。{/* min-version: 2.1.208 */}这些说明出现在您的记录中,而不进入 Claude 看到的对话。在 v2.1.208 之前,查看的说明进入对话,包括显示所有版本时的整个更改日志 |115| `/release-notes` | 在交互式版本选择器中查看更改日志。选择特定版本以查看其发布说明,或选择显示所有版本。这些说明出现在您的记录中,而不进入 Claude 看到的对话。在 v2.1.208 之前,查看的说明进入对话,包括显示所有版本时的整个更改日志 |

116| `/reload-plugins [--force]` | 重新加载所有活跃 [plugins](/docs/zh-CN/plugins) 以应用待处理的更改而无需重启。报告每个已重新加载组件的计数并标记任何加载错误。当重新加载会改变加载哪些 MCP 工具并使提示缓存失效时,该命令会警告并跳过,除非您传递 `--force` |116| `/reload-plugins [--force]` | 重新加载所有活跃 [plugins](/docs/zh-CN/plugins) 以应用待处理的更改而无需重启。报告每个已重新加载组件的计数并标记任何加载错误。当重新加载会改变加载哪些 MCP 工具并使提示缓存失效时,该命令会警告并跳过,除非您传递 `--force` |

117| `/reload-skills` | {/* min-version: 2.1.152 */}重新扫描 [skill](/docs/zh-CN/skills) 和命令目录,以便在会话期间添加或更改的 skills 在磁盘上变得可用,无需重启。报告有多少 skills 可用以及添加或删除了多少 |117| `/reload-skills` | 重新扫描 [skill](/docs/zh-CN/skills) 和命令目录,以便在会话期间添加或更改的 skills 在磁盘上变得可用,无需重启。报告有多少 skills 可用以及添加或删除了多少 |

118| `/remote-control` | 使此会话可从 claude.ai 进行[远程控制](/docs/zh-CN/remote-control)。{/* min-version: 2.1.206 */}在未登录时运行它会打印远程控制需要 claude.ai 订阅并告诉您如何登录;在 v2.1.206 之前它报告 `Unknown command: /remote-control`。别名:`/rc` |118| `/remote-control` | 使此会话可从 claude.ai 进行[远程控制](/docs/zh-CN/remote-control)。在未登录时运行它会打印远程控制需要 claude.ai 订阅并告诉您如何登录;在 v2.1.206 之前它报告 `Unknown command: /remote-control`。别名:`/rc` |

119| `/remote-env` | 为[云 agents](/docs/zh-CN/claude-code-on-the-web#configure-your-environment) 选择默认环境 |119| `/remote-env` | 为[云 agents](/docs/zh-CN/claude-code-on-the-web#configure-your-environment) 选择默认环境 |

120| `/rename [name]` | 重命名当前会话并在提示栏上显示名称。不使用名称时,从对话历史记录自动生成一个。{/* min-version: 2.1.205 */}也可在非交互模式(`-p`)中使用;需要 Claude Code v2.1.205 或更高版本 |120| `/rename [name]` | 重命名当前会话并在提示栏上显示名称。不使用名称时,从对话历史记录自动生成一个。也可在非交互模式(`-p`)中使用;需要 Claude Code v2.1.205 或更高版本 |

121| `/resume [session]` | 按 ID 或名称恢复对话,或打开会话选择器。从 v2.1.144 起,[后台会话](/docs/zh-CN/agent-view)在选择器中显示,标记为 `bg`;仍在运行的会话无法在此处恢复,因此从 `claude agents` 附加到它或先在那里停止它。别名:`/continue` |121| `/resume [session]` | 按 ID 或名称恢复对话,或打开会话选择器。从 v2.1.144 起,[后台会话](/docs/zh-CN/agent-view)在选择器中显示,标记为 `bg`;仍在运行的会话无法在此处恢复,因此从 `claude agents` 附加到它或先在那里停止它。别名:`/continue` |

122| `/review [PR]` | {/* min-version: 2.1.202 */}按编号运行 GitHub pull request 的快速单遍、只读审阅。不带参数时,列出要选择的开放 PR;PR 编号后的文本成为额外的审阅说明。从 v2.1.186 到 v2.1.201,`/review` 改为运行与 `/code-review medium` 相同的多 agent 引擎。对于选定工作量级别的多 agent 审阅,使用 [`/code-review <level> <pr#>`](/docs/zh-CN/code-review#review-a-diff-locally);对于基于云的审阅,请参阅 [`/code-review ultra`](/docs/zh-CN/ultrareview) |122| `/review [PR]` | 按编号运行 GitHub pull request 的快速单遍、只读审阅。不带参数时,列出要选择的开放 PR;PR 编号后的文本成为额外的审阅说明。从 v2.1.186 到 v2.1.201,`/review` 改为运行与 `/code-review medium` 相同的多 agent 引擎。对于选定工作量级别的多 agent 审阅,使用 [`/code-review <level> <pr#>`](/docs/zh-CN/code-review#review-a-diff-locally);对于基于云的审阅,请参阅 [`/code-review ultra`](/docs/zh-CN/ultrareview) |

123| `/rewind` | 将对话和/或代码倒回到上一个点,或从选定的消息进行总结。请参阅 [checkpointing](/docs/zh-CN/checkpointing)。别名:`/checkpoint`、`/undo` |123| `/rewind` | 将对话和/或代码倒回到上一个点,或从选定的消息进行总结。请参阅 [checkpointing](/docs/zh-CN/checkpointing)。别名:`/checkpoint`、`/undo` |

124| `/run` | **[Skill](/docs/zh-CN/skills#bundled-skills).** 启动并驱动您的项目应用以在运行的应用中看到更改工作,而不仅仅是在测试中。请参阅[运行和验证您的应用](/docs/zh-CN/skills#run-and-verify-your-app)。{/* min-version: 2.1.145 */}需要 Claude Code v2.1.145 或更高版本 |124| `/run` | **[Skill](/docs/zh-CN/skills#bundled-skills).** 启动并驱动您的项目应用以在运行的应用中看到更改工作,而不仅仅是在测试中。请参阅[运行和验证您的应用](/docs/zh-CN/skills#run-and-verify-your-app)。需要 Claude Code v2.1.145 或更高版本 |

125| `/run-skill-generator` | **[Skill](/docs/zh-CN/skills#bundled-skills).** 通过从干净环境编写每个项目的 [skill](/docs/zh-CN/skills#run-and-verify-your-app),教 `/run` 和 `/verify` 如何构建、启动和驱动您的项目应用。{/* min-version: 2.1.145 */}需要 Claude Code v2.1.145 或更高版本 |125| `/run-skill-generator` | **[Skill](/docs/zh-CN/skills#bundled-skills).** 通过从干净环境编写每个项目的 [skill](/docs/zh-CN/skills#run-and-verify-your-app),教 `/run` 和 `/verify` 如何构建、启动和驱动您的项目应用。需要 Claude Code v2.1.145 或更高版本 |

126| `/sandbox` | 切换 [sandbox mode](/docs/zh-CN/sandboxing)。仅在支持的平台上可用 |126| `/sandbox` | 切换 [sandbox mode](/docs/zh-CN/sandboxing)。仅在支持的平台上可用 |

127| `/schedule [description]` | 创建、更新、列出或运行 [routines](/docs/zh-CN/routines),这些 routines 在 Anthropic 管理的云基础设施上执行。Claude 会以对话方式引导您完成设置。别名:`/routines` |127| `/schedule [description]` | 创建、更新、列出或运行 [routines](/docs/zh-CN/routines),这些 routines 在 Anthropic 管理的云基础设施上执行。Claude 会以对话方式引导您完成设置。别名:`/routines` |

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

129| `/security-review` | 分析当前分支上的待处理更改以查找安全漏洞。审查 git 差异并识别注入、身份验证问题和数据泄露等风险 |129| `/security-review` | 分析当前分支上的待处理更改以查找安全漏洞。审查 git 差异并识别注入、身份验证问题和数据泄露等风险 |

130| `/setup-bedrock` | 通过交互式向导配置 [Amazon Bedrock](/docs/zh-CN/amazon-bedrock) 身份验证、区域和模型固定。仅在设置 `CLAUDE_CODE_USE_BEDROCK=1` 时可见。首次 Amazon Bedrock 用户也可以从登录屏幕访问此向导 |130| `/setup-bedrock` | 通过交互式向导配置 [Amazon Bedrock](/docs/zh-CN/amazon-bedrock) 身份验证、区域和模型固定。仅在设置 `CLAUDE_CODE_USE_BEDROCK=1` 时可见。首次 Amazon Bedrock 用户也可以从登录屏幕访问此向导 |

131| `/setup-vertex` | 通过交互式向导配置 [Google Cloud 的 Agent Platform](/docs/zh-CN/google-vertex-ai) 身份验证、项目、区域和模型固定。仅在设置 `CLAUDE_CODE_USE_VERTEX=1` 时可见。首次 Google Cloud 的 Agent Platform 用户也可以从登录屏幕访问此向导 |131| `/setup-vertex` | 通过交互式向导配置 [Google Cloud 的 Agent Platform](/docs/zh-CN/google-vertex-ai) 身份验证、项目、区域和模型固定。仅在设置 `CLAUDE_CODE_USE_VERTEX=1` 时可见。首次 Google Cloud 的 Agent Platform 用户也可以从登录屏幕访问此向导 |

132| `/simplify [target]` | {/* min-version: 2.1.154 */}**[Skill](/docs/zh-CN/skills#bundled-skills).** 审阅更改的代码以查找清理机会并应用修复。四个审阅 [agents](/docs/zh-CN/sub-agents) 并行运行,涵盖现有帮助程序的重用、简化、效率和更改是否处于正确的抽象级别。从 v2.1.154 开始,审阅不寻找正确性错误。使用 `/code-review` 查找错误。在早期版本中,`/simplify` 等同于 `/code-review --fix`。传递路径或 PR 参考以审阅特定目标 |132| `/simplify [target]` | **[Skill](/docs/zh-CN/skills#bundled-skills).** 审阅更改的代码以查找清理机会并应用修复。四个审阅 [agents](/docs/zh-CN/sub-agents) 并行运行,涵盖现有帮助程序的重用、简化、效率和更改是否处于正确的抽象级别。从 v2.1.154 开始,审阅不寻找正确性错误。使用 `/code-review` 查找错误。在早期版本中,`/simplify` 等同于 `/code-review --fix`。传递路径或 PR 参考以审阅特定目标 |

133| `/skills` | 列出可用的 [skills](/docs/zh-CN/skills)。{/* min-version: 2.1.121 */}从 v2.1.121 开始,输入以按名称过滤列表。按 `t` 按令牌计数排序。按 `Space` 以[从 Claude 或 `/` 菜单中隐藏 skill](/docs/zh-CN/skills#override-skill-visibility-from-settings),然后按 `Enter` 保存 |133| `/skills` | 列出可用的 [skills](/docs/zh-CN/skills)。从 v2.1.121 开始,输入以按名称过滤列表。按 `t` 按令牌计数排序。按 `Space` 以[从 Claude 或 `/` 菜单中隐藏 skill](/docs/zh-CN/skills#override-skill-visibility-from-settings),然后按 `Enter` 保存 |

134| `/stats` | `/usage` 的别名。在统计选项卡上打开 |134| `/stats` | `/usage` 的别名。在统计选项卡上打开 |

135| `/status` | 打开设置界面(状态选项卡),显示版本、模型、账户和连接性。在 Claude 响应时工作 |135| `/status` | 打开设置界面(状态选项卡),显示版本、模型、账户和连接性。在 Claude 响应时工作 |

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


146| `/ultrareview [PR]` | 在云沙箱中运行深度、多 agent 代码审阅,使用 [ultrareview](/docs/zh-CN/ultrareview)。首选调用现在是 `/code-review ultra`,`/ultrareview` 仍然作为别名保留。Pro 和 Max 包括 3 次免费运行,然后需要[使用额度](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) |146| `/ultrareview [PR]` | 在云沙箱中运行深度、多 agent 代码审阅,使用 [ultrareview](/docs/zh-CN/ultrareview)。首选调用现在是 `/code-review ultra`,`/ultrareview` 仍然作为别名保留。Pro 和 Max 包括 3 次免费运行,然后需要[使用额度](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) |

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

148| `/usage` | 显示会话成本、计划使用限制和活动统计。在 Pro、Max、Team 或 Enterprise 计划上,包括按 skill、subagent、plugin 和 MCP server 的使用情况分解。有关详细信息,请参阅[成本跟踪指南](/docs/zh-CN/costs#using-the-%2Fusage-command)。`/cost` 和 `/stats` 是别名 |148| `/usage` | 显示会话成本、计划使用限制和活动统计。在 Pro、Max、Team 或 Enterprise 计划上,包括按 skill、subagent、plugin 和 MCP server 的使用情况分解。有关详细信息,请参阅[成本跟踪指南](/docs/zh-CN/costs#using-the-%2Fusage-command)。`/cost` 和 `/stats` 是别名 |

149| `/usage-credits` | 配置使用额度以在达到限制时继续工作。在 Pro 和 Max 计划上,打开[CLI 内对话框](/docs/zh-CN/costs#set-a-spend-limit-on-pro-and-max)以购买使用额度、设置每月支出限制和配置自动重新加载;在 Claude Code v2.1.207 之前的版本和其他计划上,打开使用额度计费页面在您的浏览器中,除了 Team 和 Enterprise 成员没有计费访问权限的情况下,改为从 CLI 向其管理员发送使用额度请求。{/* min-version: 2.1.205 */}当没有浏览器可以打开计费页面时,例如通过 SSH,该命令改为打印要访问的 URL;这需要 Claude Code v2.1.205 或更高版本,早期版本在这种情况下没有显示任何内容。之前为 `/extra-usage` |149| `/usage-credits` | 配置使用额度以在达到限制时继续工作。在 Pro 和 Max 计划上,打开[CLI 内对话框](/docs/zh-CN/costs#set-a-spend-limit-on-pro-and-max)以购买使用额度、设置每月支出限制和配置自动重新加载;在 Claude Code v2.1.207 之前的版本和其他计划上,打开使用额度计费页面在您的浏览器中,除了 Team 和 Enterprise 成员没有计费访问权限的情况下,改为从 CLI 向其管理员发送使用额度请求。当没有浏览器可以打开计费页面时,例如通过 SSH,该命令改为打印要访问的 URL;这需要 Claude Code v2.1.205 或更高版本,早期版本在这种情况下没有显示任何内容。之前为 `/extra-usage` |

150| `/verify` | **[Skill](/docs/zh-CN/skills#bundled-skills).** 通过构建您的项目应用、运行它并观察结果来确认代码更改是否按预期工作,而不是依赖测试或类型检查。请参阅[运行和验证您的应用](/docs/zh-CN/skills#run-and-verify-your-app)。{/* min-version: 2.1.145 */}需要 Claude Code v2.1.145 或更高版本 |150| `/verify` | **[Skill](/docs/zh-CN/skills#bundled-skills).** 通过构建您的项目应用、运行它并观察结果来确认代码更改是否按预期工作,而不是依赖测试或类型检查。请参阅[运行和验证您的应用](/docs/zh-CN/skills#run-and-verify-your-app)。需要 Claude Code v2.1.145 或更高版本 |

151| `/vim` | {/* max-version: 2.1.91 */}在 v2.1.92 中移除。要在 Vim 和普通编辑模式之间切换,请使用 `/config` → 编辑器模式 |151| `/vim` | 在 v2.1.92 中移除。要在 Vim 和普通编辑模式之间切换,请使用 `/config` → 编辑器模式 |

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

153| `/web-setup` | 使用您的本地 `gh` CLI 凭证将您的 GitHub 账户连接到[网络版 Claude Code](/docs/zh-CN/web-quickstart#connect-from-your-terminal)。如果 GitHub 未连接,`/schedule` 会自动提示此操作 |153| `/web-setup` | 使用您的本地 `gh` CLI 凭证将您的 GitHub 账户连接到[网络版 Claude Code](/docs/zh-CN/web-quickstart#connect-from-your-terminal)。如果 GitHub 未连接,`/schedule` 会自动提示此操作 |

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

computer-use.md +11 −11

Details

12 12 

13Computer use 让 Claude 能够打开应用、控制您的屏幕,并以您的方式在您的机器上工作。从 CLI 中,Claude 可以编译 Swift 应用、启动它、点击每个按钮,并截图结果,所有这些都在编写代码的同一对话中进行。13Computer use 让 Claude 能够打开应用、控制您的屏幕,并以您的方式在您的机器上工作。从 CLI 中,Claude 可以编译 Swift 应用、启动它、点击每个按钮,并截图结果,所有这些都在编写代码的同一对话中进行。

14 14 

15本页面介绍 computer use 在 CLI 中的工作原理。对于 macOS 或 Windows 上的 Desktop 应用,请参阅 [Desktop 中的 computer use](/zh-CN/desktop#let-claude-use-your-computer)。15本页面介绍 computer use 在 CLI 中的工作原理。对于 macOS 或 Windows 上的 Desktop 应用,请参阅 [Desktop 中的 computer use](/docs/zh-CN/desktop#let-claude-use-your-computer)。

16 16 

17<h2 id="what-you-can-do-with-computer-use">17<h2 id="what-you-can-do-with-computer-use">

18 您可以用 computer use 做什么18 您可以用 computer use 做什么


31 31 

32Claude 有多种方式与应用或服务交互。Computer use 是最广泛和最慢的,所以 Claude 首先尝试最精确的工具:32Claude 有多种方式与应用或服务交互。Computer use 是最广泛和最慢的,所以 Claude 首先尝试最精确的工具:

33 33 

34* 如果您有该服务的 [MCP server](/zh-CN/mcp),Claude 会使用它。34* 如果您有该服务的 [MCP server](/docs/zh-CN/mcp),Claude 会使用它。

35* 如果任务是 shell 命令,Claude 会使用 Bash。35* 如果任务是 shell 命令,Claude 会使用 Bash。

36* 如果任务是浏览器工作且您已设置 [Claude in Chrome](/zh-CN/chrome),Claude 会使用它。36* 如果任务是浏览器工作且您已设置 [Claude in Chrome](/docs/zh-CN/chrome),Claude 会使用它。

37* 如果以上都不适用,Claude 会使用 computer use。37* 如果以上都不适用,Claude 会使用 computer use。

38 38 

39屏幕控制保留用于其他工具无法到达的事物:原生应用、模拟器和没有 API 的工具。39屏幕控制保留用于其他工具无法到达的事物:原生应用、模拟器和没有 API 的工具。


98 98 

99这些应用不被阻止。警告让您决定任务是否值得那个级别的访问。99这些应用不被阻止。警告让您决定任务是否值得那个级别的访问。

100 100 

101Claude 的控制级别也因应用类别而异:浏览器和交易平台是仅查看的,终端和 IDE 是仅点击的,其他所有内容都获得完全控制。有关完整的分层细分,请参阅 [Desktop 中的应用权限](/zh-CN/desktop#app-permissions)。101Claude 的控制级别也因应用类别而异:浏览器和交易平台是仅查看的,终端和 IDE 是仅点击的,其他所有内容都获得完全控制。有关完整的分层细分,请参阅 [Desktop 中的应用权限](/docs/zh-CN/desktop#app-permissions)。

102 102 

103<h2 id="how-claude-works-on-your-screen">103<h2 id="how-claude-works-on-your-screen">

104 Claude 如何在您的屏幕上工作104 Claude 如何在您的屏幕上工作


110 一次一个会话110 一次一个会话

111</h3>111</h3>

112 112 

113Computer use 从第一个 computer use 操作开始持有机器范围的锁,直到执行该操作的会话退出。{/* min-version: 2.1.195 */}从 v2.1.195 开始,完成任务不会释放锁;只有退出会话才会释放锁。如果另一个 Claude Code 会话已在使用您的计算机,新的尝试会失败并显示一条消息,告诉您哪个会话持有锁。首先退出该会话。113Computer use 从第一个 computer use 操作开始持有机器范围的锁,直到执行该操作的会话退出。从 v2.1.195 开始,完成任务不会释放锁;只有退出会话才会释放锁。如果另一个 Claude Code 会话已在使用您的计算机,新的尝试会失败并显示一条消息,告诉您哪个会话持有锁。首先退出该会话。

114 114 

115<h3 id="apps-are-hidden-while-claude-works">115<h3 id="apps-are-hidden-while-claude-works">

116 Claude 工作时应用被隐藏116 Claude 工作时应用被隐藏


141</h2>141</h2>

142 142 

143<Warning>143<Warning>

144 与 [sandboxed Bash tool](/zh-CN/sandboxing) 不同,computer use 在您的实际桌面上运行,可以访问您批准的应用。Claude 检查每个操作并标记来自屏幕内容的潜在提示注入,但信任边界是不同的。有关最佳实践,请参阅 [computer use 安全指南](https://support.claude.com/en/articles/14128542)。144 与 [sandboxed Bash tool](/docs/zh-CN/sandboxing) 不同,computer use 在您的实际桌面上运行,可以访问您批准的应用。Claude 检查每个操作并标记来自屏幕内容的潜在提示注入,但信任边界是不同的。有关最佳实践,请参阅 [computer use 安全指南](https://support.claude.com/en/articles/14128542)。

145</Warning>145</Warning>

146 146 

147内置的护栏在不需要配置的情况下降低风险:147内置的护栏在不需要配置的情况下降低风险:


233 233 

234服务器仅在符合条件的设置上出现。检查:234服务器仅在符合条件的设置上出现。检查:

235 235 

236* 您在 macOS 上。Computer use 在 CLI 中在 Linux 或 Windows 上不可用。在 Windows 上,改用 [Desktop 中的 computer use](/zh-CN/desktop#let-claude-use-your-computer)。236* 您在 macOS 上。Computer use 在 CLI 中在 Linux 或 Windows 上不可用。在 Windows 上,改用 [Desktop 中的 computer use](/docs/zh-CN/desktop#let-claude-use-your-computer)。

237* 您在 Pro 或 Max 计划上。运行 `/status` 来确认您的订阅。237* 您在 Pro 或 Max 计划上。运行 `/status` 来确认您的订阅。

238* 您通过 claude.ai 进行身份验证。Computer use 不适用于第三方提供商,如 Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry。如果您仅通过第三方提供商访问 Claude,您需要单独的 claude.ai 账户来使用此功能。238* 您通过 claude.ai 进行身份验证。Computer use 不适用于第三方提供商,如 Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry。如果您仅通过第三方提供商访问 Claude,您需要单独的 claude.ai 账户来使用此功能。

239* 您在交互式会话中。Computer use 在使用 `-p` 标志的非交互式模式下不可用。239* 您在交互式会话中。Computer use 在使用 `-p` 标志的非交互式模式下不可用。


242 另请参阅242 另请参阅

243</h2>243</h2>

244 244 

245* [Desktop 中的 Computer use](/zh-CN/desktop#let-claude-use-your-computer):具有图形设置页面的相同功能245* [Desktop 中的 Computer use](/docs/zh-CN/desktop#let-claude-use-your-computer):具有图形设置页面的相同功能

246* [Claude in Chrome](/zh-CN/chrome):用于基于网络的任务的浏览器自动化246* [Claude in Chrome](/docs/zh-CN/chrome):用于基于网络的任务的浏览器自动化

247* [MCP](/zh-CN/mcp):将 Claude 连接到结构化工具和 API247* [MCP](/docs/zh-CN/mcp):将 Claude 连接到结构化工具和 API

248* [Sandboxing](/zh-CN/sandboxing):Claude 的 Bash 工具如何隔离文件系统和网络访问248* [Sandboxing](/docs/zh-CN/sandboxing):Claude 的 Bash 工具如何隔离文件系统和网络访问

249* [Computer use 安全指南](https://support.claude.com/en/articles/14128542):安全 computer use 的最佳实践249* [Computer use 安全指南](https://support.claude.com/en/articles/14128542):安全 computer use 的最佳实践

context-window.md +13 −13

Details

1578 1578 

1579该会话通过具有代表性的令牌计数演示了一个现实的流程:1579该会话通过具有代表性的令牌计数演示了一个现实的流程:

1580 1580 

1581* **在您输入任何内容之前**:CLAUDE.md、自动内存、MCP 工具名称和技能描述都加载到上下文中。您自己的设置可能会在此处添加更多内容,例如[输出样式](/zh-CN/output-styles)或来自 [`--append-system-prompt`](/zh-CN/cli-reference) 的文本,两者都以相同的方式进入系统提示。1581* **在您输入任何内容之前**:CLAUDE.md、自动内存、MCP 工具名称和技能描述都加载到上下文中。您自己的设置可能会在此处添加更多内容,例如[输出样式](/docs/zh-CN/output-styles)或来自 [`--append-system-prompt`](/docs/zh-CN/cli-reference) 的文本,两者都以相同的方式进入系统提示。

1582* **当 Claude 工作时**:每个文件读取都会添加到上下文中,[路径范围的规则](/zh-CN/memory#path-specific-rules)会自动与匹配的文件一起加载,并且[PostToolUse hook](/zh-CN/hooks-guide)在每次编辑后触发。1582* **当 Claude 工作时**:每个文件读取都会添加到上下文中,[路径范围的规则](/docs/zh-CN/memory#path-specific-rules)会自动与匹配的文件一起加载,并且[PostToolUse hook](/docs/zh-CN/hooks-guide)在每次编辑后触发。

1583* **后续提示**:[子代理](/zh-CN/sub-agents)在其自己的单独上下文窗口中处理研究,因此大文件读取不会进入您的窗口。只有摘要和一个小的元数据预告片返回。1583* **后续提示**:[子代理](/docs/zh-CN/sub-agents)在其自己的单独上下文窗口中处理研究,因此大文件读取不会进入您的窗口。只有摘要和一个小的元数据预告片返回。

1584* **最后**:`/compact` 用结构化摘要替换对话。大多数启动内容会自动重新加载;下表显示了每个机制会发生什么。1584* **最后**:`/compact` 用结构化摘要替换对话。大多数启动内容会自动重新加载;下表显示了每个机制会发生什么。

1585 1585 

1586<h2 id="what-survives-compaction">1586<h2 id="what-survives-compaction">

1587 压缩后保留的内容1587 压缩后保留的内容

1588</h2>1588</h2>

1589 1589 

1590当长会话压缩时,Claude Code 会总结对话历史以适应上下文窗口。{/* min-version: 2.1.198 */}从 v2.1.198 开始,总结请求继承您会话的[扩展思考](/zh-CN/model-config#extended-thinking)配置,因此当您的会话启用思考时,它会在启用思考的情况下进行推理,否则保持关闭。思考仅影响摘要的生成方式;您的会话设置之后保持不变。您的指令会发生什么取决于它们的加载方式:1590当长会话压缩时,Claude Code 会总结对话历史以适应上下文窗口。从 v2.1.198 开始,总结请求继承您会话的[扩展思考](/docs/zh-CN/model-config#extended-thinking)配置,因此当您的会话启用思考时,它会在启用思考的情况下进行推理,否则保持关闭。思考仅影响摘要的生成方式;您的会话设置之后保持不变。您的指令会发生什么取决于它们的加载方式:

1591 1591 

1592| 机制 | 压缩后 |1592| 机制 | 压缩后 |

1593| :-------------------------- | :------------------------------------------- |1593| :-------------------------- | :------------------------------------------- |


1607 当您的上下文填满时1607 当您的上下文填满时

1608</h2>1608</h2>

1609 1609 

1610Claude Code 在您接近限制时自动压缩,因此完整的上下文窗口不会结束您的会话。自动传递的工作方式与时间线中的 `/compact` 步骤相同。有关它保留的内容,请参阅[当上下文填满时](/zh-CN/how-claude-code-works#when-context-fills-up)。1610Claude Code 在您接近限制时自动压缩,因此完整的上下文窗口不会结束您的会话。自动传递的工作方式与时间线中的 `/compact` 步骤相同。有关它保留的内容,请参阅[当上下文填满时](/docs/zh-CN/how-claude-code-works#when-context-fills-up)。

1611 1611 

1612您也可以在自动传递运行之前采取行动:1612您也可以在自动传递运行之前采取行动:

1613 1613 

1614* **带有焦点的压缩**:在开始长时间的新任务之前,运行带有指令的 `/compact`,例如 `/compact focus on the auth bug fix`。摘要保留您选择的内容,而不是自动传递猜测的重要内容。1614* **带有焦点的压缩**:在开始长时间的新任务之前,运行带有指令的 `/compact`,例如 `/compact focus on the auth bug fix`。摘要保留您选择的内容,而不是自动传递猜测的重要内容。

1615* **在任务之间清除**:切换到不相关的工作时运行 `/clear`。旧对话会挤出您接下来需要的文件,并在每条消息上花费令牌。1615* **在任务之间清除**:切换到不相关的工作时运行 `/clear`。旧对话会挤出您接下来需要的文件,并在每条消息上花费令牌。

1616* **委托大型读取**:将研究发送给[子代理](/zh-CN/sub-agents),以便文件内容保留在其上下文窗口中,而不是您的。1616* **委托大型读取**:将研究发送给[子代理](/docs/zh-CN/sub-agents),以便文件内容保留在其上下文窗口中,而不是您的。

1617 1617 

1618如果您需要更大的窗口而不是更小的对话,Fable 5、Sonnet 5、Opus 4.6 及更高版本以及 Sonnet 4.6 支持 100 万令牌的上下文窗口。有关按计划的可用性以及如何选择 `[1m]` 模型变体,请参阅[扩展上下文](/zh-CN/model-config#extended-context)。Sonnet 5 以 1M 运行,无需选择 `[1m]` 变体;有关其自动压缩阈值和 LLM 网关异常,请参阅[Sonnet 5 上下文窗口](/zh-CN/model-config#sonnet-5-context-window)。压缩在更大的限制下以相同的方式工作。1618如果您需要更大的窗口而不是更小的对话,Fable 5、Sonnet 5、Opus 4.6 及更高版本以及 Sonnet 4.6 支持 100 万令牌的上下文窗口。有关按计划的可用性以及如何选择 `[1m]` 模型变体,请参阅[扩展上下文](/docs/zh-CN/model-config#extended-context)。Sonnet 5 以 1M 运行,无需选择 `[1m]` 变体;有关其自动压缩阈值和 LLM 网关异常,请参阅[Sonnet 5 上下文窗口](/docs/zh-CN/model-config#sonnet-5-context-window)。压缩在更大的限制下以相同的方式工作。

1619 1619 

1620<h2 id="check-your-own-session">1620<h2 id="check-your-own-session">

1621 检查您自己的会话1621 检查您自己的会话


1629 1629 

1630有关时间线中显示的功能的更深入覆盖,请参阅这些页面:1630有关时间线中显示的功能的更深入覆盖,请参阅这些页面:

1631 1631 

1632* [扩展 Claude Code](/zh-CN/features-overview):何时使用 CLAUDE.md 与技能与规则与 hooks 与 MCP1632* [扩展 Claude Code](/docs/zh-CN/features-overview):何时使用 CLAUDE.md 与技能与规则与 hooks 与 MCP

1633* [存储指令和内存](/zh-CN/memory):CLAUDE.md 层次结构和自动内存1633* [存储指令和内存](/docs/zh-CN/memory):CLAUDE.md 层次结构和自动内存

1634* [子代理](/zh-CN/sub-agents):将研究委托给单独的上下文窗口1634* [子代理](/docs/zh-CN/sub-agents):将研究委托给单独的上下文窗口

1635* [最佳实践](/zh-CN/best-practices):将上下文作为您的主要约束来管理1635* [最佳实践](/docs/zh-CN/best-practices):将上下文作为您的主要约束来管理

1636* [提示缓存](/zh-CN/prompt-caching):哪些操作会使缓存的前缀失效1636* [提示缓存](/docs/zh-CN/prompt-caching):哪些操作会使缓存的前缀失效

1637* [减少令牌使用](/zh-CN/costs#reduce-token-usage):保持上下文使用低的策略1637* [减少令牌使用](/docs/zh-CN/costs#reduce-token-usage):保持上下文使用低的策略

Details

8 8 

9当 Claude 忽略了一条指令或你配置的功能没有出现时,通常是因为文件没有加载、从你预期之外的位置加载,或者被另一个文件覆盖了。本指南展示了如何检查 Claude Code 实际加载了什么,以便你能够缩小范围。9当 Claude 忽略了一条指令或你配置的功能没有出现时,通常是因为文件没有加载、从你预期之外的位置加载,或者被另一个文件覆盖了。本指南展示了如何检查 Claude Code 实际加载了什么,以便你能够缩小范围。

10 10 

11对于安装、身份验证和连接问题,请参阅[故障排除安装和登录](/zh-CN/troubleshoot-install)。11对于安装、身份验证和连接问题,请参阅[故障排除安装和登录](/docs/zh-CN/troubleshoot-install)。

12 12 

13<h2 id="see-what-loaded-into-context">13<h2 id="see-what-loaded-into-context">

14 查看加载到上下文中的内容14 查看加载到上下文中的内容


25| `/hooks` | 活跃的 hook 配置 |25| `/hooks` | 活跃的 hook 配置 |

26| `/mcp` | 连接的 MCP 服务器及其状态 |26| `/mcp` | 连接的 MCP 服务器及其状态 |

27| `/permissions` | 当前生效的已解析允许和拒绝规则 |27| `/permissions` | 当前生效的已解析允许和拒绝规则 |

28| `/doctor` | 配置检查:安装健康状况、无效的设置文件、未使用的扩展、同一目录中重复的[子代理](/zh-CN/sub-agents)名称,以及建议的修复 |28| `/doctor` | 配置检查:安装健康状况、无效的设置文件、未使用的扩展、同一目录中重复的[子代理](/docs/zh-CN/sub-agents)名称,以及建议的修复 |

29| `/debug [issue]` | 为会话启用调试日志记录,并提示 Claude 使用日志输出和设置路径进行诊断 |29| `/debug [issue]` | 为会话启用调试日志记录,并提示 Claude 使用日志输出和设置路径进行诊断 |

30| `/status` | 活跃的设置源,包括是否启用了托管设置 |30| `/status` | 活跃的设置源,包括是否启用了托管设置 |

31 31 

32如果内存文件在 `/memory` 中缺失,请根据[CLAUDE.md 文件如何加载](/zh-CN/memory#how-claude-md-files-load)检查其位置。子目录 `CLAUDE.md` 文件在 Claude 使用 Read 工具读取该目录中的文件时按需加载,而不是在会话开始时加载。32如果内存文件在 `/memory` 中缺失,请根据[CLAUDE.md 文件如何加载](/docs/zh-CN/memory#how-claude-md-files-load)检查其位置。子目录 `CLAUDE.md` 文件在 Claude 使用 Read 工具读取该目录中的文件时按需加载,而不是在会话开始时加载。

33 33 

34如果 `/memory` 确认文件已加载但 Claude 仍然没有遵循特定指令,问题可能在于指令的编写方式,而不是是否加载。CLAUDE.md 适用于你会给新队友的指导类型,例如项目约定、构建命令和文件位置。34如果 `/memory` 确认文件已加载但 Claude 仍然没有遵循特定指令,问题可能在于指令的编写方式,而不是是否加载。CLAUDE.md 适用于你会给新队友的指导类型,例如项目约定、构建命令和文件位置。

35 35 

36当指令足够模糊以至于可以多种方式解释、两个文件给出相互矛盾的方向,或者文件变得足够长以至于单个规则获得较少关注时,遵守度会下降。[编写有效的指令](/zh-CN/memory#write-effective-instructions)涵盖了保持高遵守度的特异性、大小和结构模式。36当指令足够模糊以至于可以多种方式解释、两个文件给出相互矛盾的方向,或者文件变得足够长以至于单个规则获得较少关注时,遵守度会下降。[编写有效的指令](/docs/zh-CN/memory#write-effective-instructions)涵盖了保持高遵守度的特异性、大小和结构模式。

37 37 

38<Note>38<Note>

39 CLAUDE.md 和权限解决不同的问题。CLAUDE.md 告诉 Claude 你的项目如何工作,以便它做出好的决定。[权限](/zh-CN/permissions)和[hooks](/zh-CN/hooks)无论 Claude 决定什么都强制执行限制。对于"我们在这里这样做"使用 CLAUDE.md。对于安全边界和任何必须永远不会发生的事情,使用权限或 hooks,你需要一个保证而不是指导。39 CLAUDE.md 和权限解决不同的问题。CLAUDE.md 告诉 Claude 你的项目如何工作,以便它做出好的决定。[权限](/docs/zh-CN/permissions)和[hooks](/docs/zh-CN/hooks)无论 Claude 决定什么都强制执行限制。对于"我们在这里这样做"使用 CLAUDE.md。对于安全边界和任何必须永远不会发生的事情,使用权限或 hooks,你需要一个保证而不是指导。

40</Note>40</Note>

41 41 

42<h2 id="check-resolved-settings">42<h2 id="check-resolved-settings">

43 检查已解析的设置43 检查已解析的设置

44</h2>44</h2>

45 45 

46设置在托管、用户、项目和本地范围内合并。当存在时,托管设置总是优先。在其余的中,更接近的范围按本地、项目、用户的顺序覆盖更广泛的范围。某些设置也可以由命令行标志或[环境变量](/zh-CN/env-vars)设置,它们充当另一个覆盖层。当设置似乎不适用时,你设置的值通常被另一个范围或环境变量覆盖。46设置在托管、用户、项目和本地范围内合并。当存在时,托管设置总是优先。在其余的中,更接近的范围按本地、项目、用户的顺序覆盖更广泛的范围。某些设置也可以由命令行标志或[环境变量](/docs/zh-CN/env-vars)设置,它们充当另一个覆盖层。当设置似乎不适用时,你设置的值通常被另一个范围或环境变量覆盖。

47 47 

48运行 `/doctor` 来检查你的配置和安装。它报告它发现的内容,包括无效的设置文件、重复的安装、未使用的扩展,以及 {/* min-version: 2.1.206 */}已检入的 `CLAUDE.md` 内容 Claude 可以从代码库中推导出来,然后提议仅在你确认后应用的修复。`CLAUDE.md` 修剪检查需要 Claude Code v2.1.206 或更高版本。在 v2.1.205 之前,`/doctor` 打开一个只读诊断屏幕,按 `f` 将报告发送给 Claude 来修复。48运行 `/doctor` 来检查你的配置和安装。它报告它发现的内容,包括无效的设置文件、重复的安装、未使用的扩展,以及 已检入的 `CLAUDE.md` 内容 Claude 可以从代码库中推导出来,然后提议仅在你确认后应用的修复。`CLAUDE.md` 修剪检查需要 Claude Code v2.1.206 或更高版本。在 v2.1.205 之前,`/doctor` 打开一个只读诊断屏幕,按 `f` 将报告发送给 Claude 来修复。

49 49 

50从终端,`claude doctor` 打印只读安装和设置诊断,而不启动会话。50从终端,`claude doctor` 打印只读安装和设置诊断,而不启动会话。

51 51 

52运行 `/status` 来查看哪些设置源是活跃的,包括是否启用了托管设置。要了解给定键哪个范围优先,请参阅[范围如何交互](/zh-CN/settings#how-scopes-interact)。52运行 `/status` 来查看哪些设置源是活跃的,包括是否启用了托管设置。要了解给定键哪个范围优先,请参阅[范围如何交互](/docs/zh-CN/settings#how-scopes-interact)。

53 53 

54<h2 id="check-mcp-servers">54<h2 id="check-mcp-servers">

55 检查 MCP 服务器55 检查 MCP 服务器


61* 启动失败的服务器在 `/mcp` 中显示为失败。`command` 或 `args` 中的相对文件路径是一个常见原因,因为它们相对于你启动 Claude Code 的目录而不是 `.mcp.json` 的位置进行解析。61* 启动失败的服务器在 `/mcp` 中显示为失败。`command` 或 `args` 中的相对文件路径是一个常见原因,因为它们相对于你启动 Claude Code 的目录而不是 `.mcp.json` 的位置进行解析。

62* 显示为已连接但列出零个工具的服务器已成功启动但没有返回工具列表。从 `/mcp` 选择**重新连接**。如果计数保持为零,运行 `claude --debug mcp` 来查看服务器的 stderr 输出。62* 显示为已连接但列出零个工具的服务器已成功启动但没有返回工具列表。从 `/mcp` 选择**重新连接**。如果计数保持为零,运行 `claude --debug mcp` 来查看服务器的 stderr 输出。

63 63 

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

65 65 

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

67 检查 hooks67 检查 hooks


71 71 

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

73 73 

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

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

76* 数组值是一个 schema 错误:Claude Code 显示设置错误通知并拒绝整个用户、项目或本地设置文件,`claude doctor` 报告验证失败,该文件中没有 hook 出现在 `/hooks` 中。在[托管设置](/zh-CN/settings#settings-files)中,只有无效条目被删除,文件的其他 hooks 仍然适用。76* 数组值是一个 schema 错误:Claude Code 显示设置错误通知并拒绝整个用户、项目或本地设置文件,`claude doctor` 报告验证失败,该文件中没有 hook 出现在 `/hooks` 中。在[托管设置](/docs/zh-CN/settings#settings-files)中,只有无效条目被删除,文件的其他 hooks 仍然适用。

77 77 

78对 `settings.json` 的编辑在短暂的文件稳定延迟后在运行的会话中生效。你不需要重新启动。如果保存后几秒钟 `/hooks` 仍然显示旧定义,再次运行 `/hooks` 来刷新视图。78对 `settings.json` 的编辑在短暂的文件稳定延迟后在运行的会话中生效。你不需要重新启动。如果保存后几秒钟 `/hooks` 仍然显示旧定义,再次运行 `/hooks` 来刷新视图。

79 79 

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

81 81 

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

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

84</h2>84</h2>

85 85 

86{/* min-version: 2.1.169 */}使用 [`claude --safe-mode`](/zh-CN/cli-reference#cli-flags) 开始,它会启动一个会话,禁用所有自定义,包括 `CLAUDE.md`、skills、plugins、hooks、MCP 服务器以及自定义命令和代理。身份验证、模型选择、内置工具和权限正常工作。如果问题在安全模式下消失,则其中一个方面是原因;使用上面的针对性检查来找出是哪一个。安全模式仍然应用来自你的组织的托管 hooks 和设置策略。托管 plugins、skills、CLAUDE.md 和 MCP 服务器被关闭。86使用 [`claude --safe-mode`](/docs/zh-CN/cli-reference#cli-flags) 开始,它会启动一个会话,禁用所有自定义,包括 `CLAUDE.md`、skills、plugins、hooks、MCP 服务器以及自定义命令和代理。身份验证、模型选择、内置工具和权限正常工作。如果问题在安全模式下消失,则其中一个方面是原因;使用上面的针对性检查来找出是哪一个。安全模式仍然应用来自你的组织的托管 hooks 和设置策略。托管 plugins、skills、CLAUDE.md 和 MCP 服务器被关闭。

87 87 

88如果问题在安全模式下仍然存在,或你的设置本身可疑,请与从你的常规设置中不加载任何内容的会话进行比较。将 [`CLAUDE_CONFIG_DIR`](/zh-CN/env-vars) 指向一个空目录以绕过 `~/.claude` 下的所有内容,并从没有 `.claude` 文件夹、`.mcp.json` 或 `CLAUDE.md` 的目录启动,以便也跳过项目配置。88如果问题在安全模式下仍然存在,或你的设置本身可疑,请与从你的常规设置中不加载任何内容的会话进行比较。将 [`CLAUDE_CONFIG_DIR`](/docs/zh-CN/env-vars) 指向一个空目录以绕过 `~/.claude` 下的所有内容,并从没有 `.claude` 文件夹、`.mcp.json` 或 `CLAUDE.md` 的目录启动,以便也跳过项目配置。

89 89 

90```bash theme={null}90```bash theme={null}

91cd /tmp && CLAUDE_CONFIG_DIR=/tmp/claude-clean claude91cd /tmp && CLAUDE_CONFIG_DIR=/tmp/claude-clean claude


97* 在 Linux 和 Windows 上,你将被提示再次登录,因为凭证存储在配置目录下97* 在 Linux 和 Windows 上,你将被提示再次登录,因为凭证存储在配置目录下

98* 在 macOS 上,凭证在 Keychain 中,会转移到干净会话98* 在 macOS 上,凭证在 Keychain 中,会转移到干净会话

99 99 

100如果问题在这里消失,原因在你的真实 `~/.claude` 或项目 `.claude` 文件中的某处。一次重新引入一个,通过将文件复制到临时目录或从你的项目启动,来找到哪一个。如果它在干净会话中持续存在,原因在你的用户和项目配置之外。运行 `/status` 来检查是否启用了托管设置,查找影响 Claude Code 的[环境变量](/zh-CN/env-vars),然后参阅[故障排除](/zh-CN/troubleshooting)。100如果问题在这里消失,原因在你的真实 `~/.claude` 或项目 `.claude` 文件中的某处。一次重新引入一个,通过将文件复制到临时目录或从你的项目启动,来找到哪一个。如果它在干净会话中持续存在,原因在你的用户和项目配置之外。运行 `/status` 来检查是否启用了托管设置,查找影响 Claude Code 的[环境变量](/docs/zh-CN/env-vars),然后参阅[故障排除](/docs/zh-CN/troubleshooting)。

101 101 

102<h2 id="check-common-causes">102<h2 id="check-common-causes">

103 检查常见原因103 检查常见原因


107 107 

108| 症状 | 原因 | 修复 |108| 症状 | 原因 | 修复 |

109| :-------------------------------------------------- | :------------------------------------------------------------------------ | :-------------------------------------------------------------------------------------------------------------------------------------------------------------- |109| :-------------------------------------------------- | :------------------------------------------------------------------------ | :-------------------------------------------------------------------------------------------------------------------------------------------------------------- |

110| Hook 永远不触发 | `matcher` 是 JSON 数组而不是字符串 | 使用单个字符串,其中 `\|` 匹配多个工具,例如 `"Edit\|Write"`。请参阅[匹配器模式](/zh-CN/hooks#matcher-patterns)。 |110| Hook 永远不触发 | `matcher` 是 JSON 数组而不是字符串 | 使用单个字符串,其中 `\|` 匹配多个工具,例如 `"Edit\|Write"`。请参阅[匹配器模式](/docs/zh-CN/hooks#matcher-patterns)。 |

111| Hook 永远不触发 | `matcher` 在 v2.1.191 之前的版本中使用 `,` 作为分隔符 | {/* min-version: 2.1.191 */}Claude Code v2.1.191 或更高版本将 `,` 视为列表分隔符,如 `\|`。早期版本将逗号评估为字面字符,因此 `"Edit,Write"` 不匹配任何内容。改用 `\|`,或升级 Claude Code。 |111| Hook 永远不触发 | `matcher` 在 v2.1.191 之前的版本中使用 `,` 作为分隔符 | Claude Code v2.1.191 或更高版本将 `,` 视为列表分隔符,如 `\|`。早期版本将逗号评估为字面字符,因此 `"Edit,Write"` 不匹配任何内容。改用 `\|`,或升级 Claude Code。 |

112| Hook 永远不触发 | `matcher` 值是小写的,例如 `"bash"` | 匹配是区分大小写的。工具名称是大写的:`Bash`、`Edit`、`Write`、`Read`。 |112| Hook 永远不触发 | `matcher` 值是小写的,例如 `"bash"` | 匹配是区分大小写的。工具名称是大写的:`Bash`、`Edit`、`Write`、`Read`。 |

113| Hook 永远不触发 | Hooks 在独立文件而不是 `settings.json` 中定义 | 项目或用户配置没有独立的 hooks 文件。在 `settings.json` 中的 `"hooks"` 键下定义 hooks。只有[plugins](/zh-CN/plugins-reference#hooks)加载单独的 `hooks/hooks.json`。请参阅[hook 配置](/zh-CN/hooks)。 |113| Hook 永远不触发 | Hooks 在独立文件而不是 `settings.json` 中定义 | 项目或用户配置没有独立的 hooks 文件。在 `settings.json` 中的 `"hooks"` 键下定义 hooks。只有[plugins](/docs/zh-CN/plugins-reference#hooks)加载单独的 `hooks/hooks.json`。请参阅[hook 配置](/docs/zh-CN/hooks)。 |

114| 全局设置的权限、hooks 或 env 被忽略 | 配置被添加到 `~/.claude.json` | `~/.claude.json` 保存应用状态和 UI 切换。`permissions`、`hooks` 和 `env` 属于 `~/.claude/settings.json`。这是两个不同的文件。 |114| 全局设置的权限、hooks 或 env 被忽略 | 配置被添加到 `~/.claude.json` | `~/.claude.json` 保存应用状态和 UI 切换。`permissions`、`hooks` 和 `env` 属于 `~/.claude/settings.json`。这是两个不同的文件。 |

115| `settings.json` 值似乎被忽略 | 相同的键在 `settings.local.json` 中设置 | `settings.local.json` 覆盖 `settings.json`,两者都覆盖 `~/.claude/settings.json`。请参阅[设置优先级](/zh-CN/settings#how-scopes-interact)。 |115| `settings.json` 值似乎被忽略 | 相同的键在 `settings.local.json` 中设置 | `settings.local.json` 覆盖 `settings.json`,两者都覆盖 `~/.claude/settings.json`。请参阅[设置优先级](/docs/zh-CN/settings#how-scopes-interact)。 |

116| Skill 没有出现在 `/skills` 中 | Skill 文件在 `.claude/skills/name.md` 而不是在文件夹中 | 使用包含 `SKILL.md` 的文件夹:`.claude/skills/name/SKILL.md`。 |116| Skill 没有出现在 `/skills` 中 | Skill 文件在 `.claude/skills/name.md` 而不是在文件夹中 | 使用包含 `SKILL.md` 的文件夹:`.claude/skills/name/SKILL.md`。 |

117| Skill 出现在 `/skills` 中但 Claude 从不调用它 | Skill 在其 frontmatter 中有 `disable-model-invocation: true`,或其描述与你表述请求的方式不匹配 | 检查 `/skills` 中的徽章:一个"user-only"标签意味着 Claude 不会自动触发它。请参阅[skill 调用](/zh-CN/skills)。 |117| Skill 出现在 `/skills` 中但 Claude 从不调用它 | Skill 在其 frontmatter 中有 `disable-model-invocation: true`,或其描述与你表述请求的方式不匹配 | 检查 `/skills` 中的徽章:一个"user-only"标签意味着 Claude 不会自动触发它。请参阅[skill 调用](/docs/zh-CN/skills)。 |

118| 子目录 `CLAUDE.md` 指令似乎被忽略 | 子目录文件按需加载,而不是在会话开始时加载 | 它们在 Claude 使用 Read 工具读取该目录中的文件时加载,而不是在启动时,也不是在写入或创建文件时。请参阅[CLAUDE.md 文件如何加载](/zh-CN/memory#how-claude-md-files-load)。 |118| 子目录 `CLAUDE.md` 指令似乎被忽略 | 子目录文件按需加载,而不是在会话开始时加载 | 它们在 Claude 使用 Read 工具读取该目录中的文件时加载,而不是在启动时,也不是在写入或创建文件时。请参阅[CLAUDE.md 文件如何加载](/docs/zh-CN/memory#how-claude-md-files-load)。 |

119| 子代理忽略 `CLAUDE.md` 指令 | 内置的 Explore 和 Plan 代理跳过 `CLAUDE.md`。自定义子代理以与主对话相同的方式加载它 | 对于 Explore 或 Plan,在你的委派提示中重新陈述指令。对于自定义子代理,将关键指令放在代理文件体中,它成为代理的系统提示。请参阅[启动时加载的内容](/zh-CN/sub-agents#what-loads-at-startup)。 |119| 子代理忽略 `CLAUDE.md` 指令 | 内置的 Explore 和 Plan 代理跳过 `CLAUDE.md`。自定义子代理以与主对话相同的方式加载它 | 对于 Explore 或 Plan,在你的委派提示中重新陈述指令。对于自定义子代理,将关键指令放在代理文件体中,它成为代理的系统提示。请参阅[启动时加载的内容](/docs/zh-CN/sub-agents#what-loads-at-startup)。 |

120| 清理逻辑在会话结束时永远不运行 | 没有配置 `SessionEnd` hook | 在 `settings.json` 中添加 `SessionEnd` hook。请参阅[hook 事件列表](/zh-CN/hooks#hook-events)。 |120| 清理逻辑在会话结束时永远不运行 | 没有配置 `SessionEnd` hook | 在 `settings.json` 中添加 `SessionEnd` hook。请参阅[hook 事件列表](/docs/zh-CN/hooks#hook-events)。 |

121| `.mcp.json` 中的 MCP 服务器永远不加载 | 文件在 `.claude/` 下或使用 Claude Desktop 的配置格式 | 项目 MCP 配置在存储库根目录下作为 `.mcp.json`,而不是在 `.claude/` 内。请参阅[MCP 配置](/zh-CN/mcp)。 |121| `.mcp.json` 中的 MCP 服务器永远不加载 | 文件在 `.claude/` 下或使用 Claude Desktop 的配置格式 | 项目 MCP 配置在存储库根目录下作为 `.mcp.json`,而不是在 `.claude/` 内。请参阅[MCP 配置](/docs/zh-CN/mcp)。 |

122| 在 `settings.json` 中的 `mcpServers` 下添加的 MCP 服务器永远不出现 | `settings.json` 不读取 `mcpServers` 键 | 在存储库根目录的 `.mcp.json` 中定义项目服务器,或运行 `claude mcp add --scope user` 来添加用户范围的服务器。请参阅[MCP 配置](/zh-CN/mcp)。 |122| 在 `settings.json` 中的 `mcpServers` 下添加的 MCP 服务器永远不出现 | `settings.json` 不读取 `mcpServers` 键 | 在存储库根目录的 `.mcp.json` 中定义项目服务器,或运行 `claude mcp add --scope user` 来添加用户范围的服务器。请参阅[MCP 配置](/docs/zh-CN/mcp)。 |

123| 添加的项目 MCP 服务器没有出现 | 一次性批准提示被关闭 | 项目范围的服务器需要批准。运行 `/mcp` 来查看状态并批准。 |123| 添加的项目 MCP 服务器没有出现 | 一次性批准提示被关闭 | 项目范围的服务器需要批准。运行 `/mcp` 来查看状态并批准。 |

124| MCP 服务器从某些目录启动失败 | `command` 或 `args` 使用相对文件路径 | 对本地脚本使用绝对路径。你的 `PATH` 上的可执行文件如 `npx` 或 `uvx` 可以按原样工作。 |124| MCP 服务器从某些目录启动失败 | `command` 或 `args` 使用相对文件路径 | 对本地脚本使用绝对路径。你的 `PATH` 上的可执行文件如 `npx` 或 `uvx` 可以按原样工作。 |

125| MCP 服务器启动时没有预期的环境变量 | 变量在 `settings.json` `env` 中,不会传播到 MCP 子进程 | 在 `.mcp.json` 中设置每个服务器的 `env`。 |125| MCP 服务器启动时没有预期的环境变量 | 变量在 `settings.json` `env` 中,不会传播到 MCP 子进程 | 在 `.mcp.json` 中设置每个服务器的 `env`。 |

126| `Bash(rm *)` 拒绝规则不阻止 `/bin/rm` 或 `find -delete` | 前缀规则匹配字面命令字符串,而不是底层可执行文件 | 为每个变体添加显式模式,或使用[PreToolUse hook](/zh-CN/hooks-guide)或[sandbox](/zh-CN/sandboxing)来获得硬保证。 |126| `Bash(rm *)` 拒绝规则不阻止 `/bin/rm` 或 `find -delete` | 前缀规则匹配字面命令字符串,而不是底层可执行文件 | 为每个变体添加显式模式,或使用[PreToolUse hook](/docs/zh-CN/hooks-guide)或[sandbox](/docs/zh-CN/sandboxing)来获得硬保证。 |

127 127 

128<h2 id="related-resources">128<h2 id="related-resources">

129 相关资源129 相关资源


131 131 

132有关每个配置表面的完整参考,请参阅专用页面:132有关每个配置表面的完整参考,请参阅专用页面:

133 133 

134* **[`.claude` 目录参考](/zh-CN/claude-directory)**:每个配置文件位置及其读取方式134* **[`.claude` 目录参考](/docs/zh-CN/claude-directory)**:每个配置文件位置及其读取方式

135* **[Settings](/zh-CN/settings)**:优先级顺序和完整的键列表135* **[Settings](/docs/zh-CN/settings)**:优先级顺序和完整的键列表

136* **[Hooks 参考](/zh-CN/hooks)**:事件名称、有效负载和 `--debug hooks` 输出格式136* **[Hooks 参考](/docs/zh-CN/hooks)**:事件名称、有效负载和 `--debug hooks` 输出格式

137* **[MCP](/zh-CN/mcp)**:服务器配置、批准和 `/mcp` 输出137* **[MCP](/docs/zh-CN/mcp)**:服务器配置、批准和 `/mcp` 输出

138* **[故障排除安装和登录](/zh-CN/troubleshoot-install)**:`command not found`、PATH 和身份验证问题138* **[故障排除安装和登录](/docs/zh-CN/troubleshoot-install)**:`command not found`、PATH 和身份验证问题

139* **[故障排除](/zh-CN/troubleshooting)**:性能、挂起和搜索问题139* **[故障排除](/docs/zh-CN/troubleshooting)**:性能、挂起和搜索问题

desktop.md +72 −72

Details

17 For x64 processors17 For x64 processors

18 </Card>18 </Card>

19 19 

20 <Card title="Get Claude for Linux (beta)" icon="linux" href="/en/desktop-linux">20 <Card title="Get Claude for Linux (beta)" icon="linux" href="/docs/en/desktop-linux">

21 apt or .deb for Ubuntu and Debian21 apt or .deb for Ubuntu and Debian

22 </Card>22 </Card>

23</CardGroup>23</CardGroup>

24 24 

25For Windows ARM64, download the [ARM64 installer](https://claude.ai/api/desktop/win32/arm64/setup/latest/redirect?utm_source=claude_code\&utm_medium=docs). On Linux, install with apt; see [Claude Desktop on Linux](/en/desktop-linux).25For Windows ARM64, download the [ARM64 installer](https://claude.ai/api/desktop/win32/arm64/setup/latest/redirect?utm_source=claude_code\&utm_medium=docs). On Linux, install with apt; see [Claude Desktop on Linux](/docs/en/desktop-linux).

26 26 

27安装后,启动 Claude,登录,然后点击 **Code** 选项卡。第一次在 Windows 上打开它时,你需要安装 [Git for Windows](https://git-scm.com/downloads/win);安装后重启应用。有关首次会话的演练,请参阅[快速开始指南](/zh-CN/desktop-quickstart)。27安装后,启动 Claude,登录,然后点击 **Code** 选项卡。第一次在 Windows 上打开它时,你需要安装 [Git for Windows](https://git-scm.com/downloads/win);安装后重启应用。有关首次会话的演练,请参阅[快速开始指南](/docs/zh-CN/desktop-quickstart)。

28 28 

29在 Code 选项卡中,每个对话都是一个**会话**:它有自己的聊天历史、项目文件夹和代码更改,独立于任何其他会话。侧边栏列出你的会话,让你可以并行运行多个会话。在一个会话中,你可以:29在 Code 选项卡中,每个对话都是一个**会话**:它有自己的聊天历史、项目文件夹和代码更改,独立于任何其他会话。侧边栏列出你的会话,让你可以并行运行多个会话。在一个会话中,你可以:

30 30 


36* 让 Claude [打开应用和控制你的屏幕](#let-claude-use-your-computer)36* 让 Claude [打开应用和控制你的屏幕](#let-claude-use-your-computer)

37* 在你的机器上、[云中](#run-long-running-tasks-remotely)或通过 [SSH](#ssh-sessions) 运行37* 在你的机器上、[云中](#run-long-running-tasks-remotely)或通过 [SSH](#ssh-sessions) 运行

38 38 

39有关[计划的定期工作](/zh-CN/desktop-scheduled-tasks)、[快捷键](#keyboard-shortcuts)或[从手机发送任务](#sessions-from-dispatch),请参阅链接的页面和部分。如果你已经使用基于终端的 CLI,请参阅 [CLI 比较](#coming-from-the-cli)了解哪些内容可以继续使用。39有关[计划的定期工作](/docs/zh-CN/desktop-scheduled-tasks)、[快捷键](#keyboard-shortcuts)或[从手机发送任务](#sessions-from-dispatch),请参阅链接的页面和部分。如果你已经使用基于终端的 CLI,请参阅 [CLI 比较](#coming-from-the-cli)了解哪些内容可以继续使用。

40 40 

41<h2 id="start-a-session">41<h2 id="start-a-session">

42 启动会话42 启动会话


44 44 

45在发送第一条消息之前,在提示区域配置四件事:45在发送第一条消息之前,在提示区域配置四件事:

46 46 

47* **环境**:选择 Claude 运行的位置。选择 **Local** 用于你的机器,**Remote** 用于 Anthropic 托管的云会话,[**SSH 连接**](#ssh-sessions)用于你管理的远程机器,或在 Windows 上选择 [**WSL 发行版**](/zh-CN/desktop-wsl)。请参阅[环境配置](#environment-configuration)。47* **环境**:选择 Claude 运行的位置。选择 **Local** 用于你的机器,**Remote** 用于 Anthropic 托管的云会话,[**SSH 连接**](#ssh-sessions)用于你管理的远程机器,或在 Windows 上选择 [**WSL 发行版**](/docs/zh-CN/desktop-wsl)。请参阅[环境配置](#environment-configuration)。

48* **项目文件夹**:选择 Claude 工作的文件夹或存储库。对于远程会话,你可以添加[多个存储库](#run-long-running-tasks-remotely)。48* **项目文件夹**:选择 Claude 工作的文件夹或存储库。对于远程会话,你可以添加[多个存储库](#run-long-running-tasks-remotely)。

49* **模型**:从发送按钮旁的下拉菜单中选择一个[模型](/zh-CN/model-config#available-models)。你可以在会话期间更改此设置。49* **模型**:从发送按钮旁的下拉菜单中选择一个[模型](/docs/zh-CN/model-config#available-models)。你可以在会话期间更改此设置。

50* **权限模式**:从[模式选择器](#choose-a-permission-mode)中选择 Claude 拥有多少自主权。你可以在会话期间更改此设置。50* **权限模式**:从[模式选择器](#choose-a-permission-mode)中选择 Claude 拥有多少自主权。你可以在会话期间更改此设置。

51 51 

52输入你的任务并按 **Enter** 启动。每个会话独立跟踪其自己的上下文和更改。52输入你的任务并按 **Enter** 启动。每个会话独立跟踪其自己的上下文和更改。


80 80 

81权限模式控制 Claude 在会话期间拥有多少自主权:它是否在编辑文件、运行命令或两者之前询问。你可以随时使用发送按钮旁的模式选择器切换模式。从 Manual 开始以准确查看 Claude 的操作,然后随着你变得更舒适,转移到 Accept edits 或 Plan。81权限模式控制 Claude 在会话期间拥有多少自主权:它是否在编辑文件、运行命令或两者之前询问。你可以随时使用发送按钮旁的模式选择器切换模式。从 Manual 开始以准确查看 Claude 的操作,然后随着你变得更舒适,转移到 Accept edits 或 Plan。

82 82 

83要为新的本地会话设置默认模式,请将 `permissions.defaultMode` 添加到你的[设置文件](/zh-CN/settings#settings-files)。桌面应用读取与 CLI 相同的设置文件。你在选择器中选择的模式会被记住,每个文件夹都会优先于 `defaultMode`,除了 Plan,它仅适用于当前会话。83要为新的本地会话设置默认模式,请将 `permissions.defaultMode` 添加到你的[设置文件](/docs/zh-CN/settings#settings-files)。桌面应用读取与 CLI 相同的设置文件。你在选择器中选择的模式会被记住,每个文件夹都会优先于 `defaultMode`,除了 Plan,它仅适用于当前会话。

84 84 

85| 模式 | 设置键 | 行为 |85| 模式 | 设置键 | 行为 |

86| ---------------------- | ------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |86| ---------------------- | ------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |


88| **Accept edits** | `acceptEdits` | Claude 自动接受文件编辑和常见的文件系统命令,如 `mkdir`、`touch` 和 `mv`,但在运行其他终端命令之前仍然询问。当你信任文件更改并想要更快的迭代时,使用此选项。 |88| **Accept edits** | `acceptEdits` | Claude 自动接受文件编辑和常见的文件系统命令,如 `mkdir`、`touch` 和 `mv`,但在运行其他终端命令之前仍然询问。当你信任文件更改并想要更快的迭代时,使用此选项。 |

89| **Plan** | `plan` | Claude 读取文件并运行命令来探索,然后提出计划而不编辑你的源代码。适合复杂任务,你想先审查方法。 |89| **Plan** | `plan` | Claude 读取文件并运行命令来探索,然后提出计划而不编辑你的源代码。适合复杂任务,你想先审查方法。 |

90| **Auto** | `auto` | Claude 执行所有操作,并进行后台安全检查以验证与你的请求的一致性。减少权限提示,同时保持监督。在你的账户满足下面的[可用性要求](#auto-mode-availability)时出现;没有单独的设置切换。 |90| **Auto** | `auto` | Claude 执行所有操作,并进行后台安全检查以验证与你的请求的一致性。减少权限提示,同时保持监督。在你的账户满足下面的[可用性要求](#auto-mode-availability)时出现;没有单独的设置切换。 |

91| **Bypass permissions** | `bypassPermissions` | Claude 运行时没有权限提示,除了由显式[询问规则](/zh-CN/permissions#manage-permissions)强制的权限提示、连接器工具[你的组织设置为 `ask`](/zh-CN/mcp#organization-controls-on-connector-tools)、标记为 [`requiresUserInteraction`](/zh-CN/mcp#require-approval-for-a-specific-tool) 的 MCP 工具,或当 Claude [在外部网站上操作](#browse-external-sites)时由安全分类器强制的权限提示;等同于 CLI 中的 `--dangerously-skip-permissions`。在 Pro 和 Max 计划上,在你的设置 → Claude Code 中的"允许绕过权限模式"下启用;在 Team 和 Enterprise 计划上没有设置切换,组织政策控制它。仅在沙箱容器或虚拟机中使用。 |91| **Bypass permissions** | `bypassPermissions` | Claude 运行时没有权限提示,除了由显式[询问规则](/docs/zh-CN/permissions#manage-permissions)强制的权限提示、连接器工具[你的组织设置为 `ask`](/docs/zh-CN/mcp#organization-controls-on-connector-tools)、标记为 [`requiresUserInteraction`](/docs/zh-CN/mcp#require-approval-for-a-specific-tool) 的 MCP 工具,或当 Claude [在外部网站上操作](#browse-external-sites)时由安全分类器强制的权限提示;等同于 CLI 中的 `--dangerously-skip-permissions`。在 Pro 和 Max 计划上,在你的设置 → Claude Code 中的"允许绕过权限模式"下启用;在 Team 和 Enterprise 计划上没有设置切换,组织政策控制它。仅在沙箱容器或虚拟机中使用。 |

92 92 

93代码选项卡的早期版本将这些模式标记为 Ask permissions、Auto accept edits 和 Plan mode。93代码选项卡的早期版本将这些模式标记为 Ask permissions、Auto accept edits 和 Plan mode。

94 94 

95`dontAsk` 权限模式仅在 [CLI](/zh-CN/permission-modes#allow-only-pre-approved-tools-with-dontask-mode) 中可用。95`dontAsk` 权限模式仅在 [CLI](/docs/zh-CN/permission-modes#allow-only-pre-approved-tools-with-dontask-mode) 中可用。

96 96 

97<span id="auto-mode-availability" />97<span id="auto-mode-availability" />

98 98 

99Auto mode 在 Anthropic API 上对所有用户可用,需要 Claude Opus 4.6 或更高版本,或 Sonnet 4.6 或更高版本。在路由到 Google Cloud 的 Agent Platform 的企业部署中,auto mode [默认可用](/zh-CN/permission-modes#enable-auto-mode-on-bedrock-agent-platform-or-foundry),仅支持 Claude Sonnet 5、Opus 4.7 和 Opus 4.8。{/* min-version: 2.1.207 */}在 Claude Code v2.1.207 之前,Google Cloud 的 Agent Platform 上的企业部署必须设置 `CLAUDE_CODE_ENABLE_AUTO_MODE` 来启用 auto mode。99Auto mode 在 Anthropic API 上对所有用户可用,需要 Claude Opus 4.6 或更高版本,或 Sonnet 4.6 或更高版本。在路由到 Google Cloud 的 Agent Platform 的企业部署中,auto mode [默认可用](/docs/zh-CN/permission-modes#enable-auto-mode-on-bedrock-agent-platform-or-foundry),仅支持 Claude Sonnet 5、Opus 4.7 和 Opus 4.8。在 Claude Code v2.1.207 之前,Google Cloud 的 Agent Platform 上的企业部署必须设置 `CLAUDE_CODE_ENABLE_AUTO_MODE` 来启用 auto mode。

100 100 

101<Tip title="最佳实践">101<Tip title="最佳实践">

102 在 Plan 中启动复杂任务,以便 Claude 在进行更改之前制定方法。一旦你批准计划,切换到 Accept edits 或 Manual 来执行它。有关此工作流的更多信息,请参阅[先探索,然后计划,然后编码](/zh-CN/best-practices#explore-first-then-plan-then-code)。102 在 Plan 中启动复杂任务,以便 Claude 在进行更改之前制定方法。一旦你批准计划,切换到 Accept edits 或 Manual 来执行它。有关此工作流的更多信息,请参阅[先探索,然后计划,然后编码](/docs/zh-CN/best-practices#explore-first-then-plan-then-code)。

103</Tip>103</Tip>

104 104 

105云会话支持 Accept edits、Plan 和 Auto。Accept edits 对应于 `default` 模式:云会话预先批准文件编辑,所以选择器显示 Accept edits 而不是 Manual。Bypass permissions 不可用,因为云环境已经是沙箱化的。105云会话支持 Accept edits、Plan 和 Auto。Accept edits 对应于 `default` 模式:云会话预先批准文件编辑,所以选择器显示 Accept edits 而不是 Manual。Bypass permissions 不可用,因为云环境已经是沙箱化的。


143 143 

144Claude 第一次在外部网站上操作时,会出现一个权限卡,Claude 等待你的选择:**Allow once**、**Always allow** 或 **Deny**。**Allow once** 批准操作而不保存任何内容。**Always allow** 在你的设备上保存该网站的批准,你可以在设置中撤销它。每个网站都需要自己的批准,包括子域。你的本地开发服务器和项目文件不需要批准,所以[自动验证](#auto-verify-changes)继续工作而不提示。144Claude 第一次在外部网站上操作时,会出现一个权限卡,Claude 等待你的选择:**Allow once**、**Always allow** 或 **Deny**。**Allow once** 批准操作而不保存任何内容。**Always allow** 在你的设备上保存该网站的批准,你可以在设置中撤销它。每个网站都需要自己的批准,包括子域。你的本地开发服务器和项目文件不需要批准,所以[自动验证](#auto-verify-changes)继续工作而不提示。

145 145 

146即使在批准的网站上,Claude 也不会在没有你的输入的情况下购买物品、创建账户或绕过 CAPTCHA。在浏览器窗格中浏览使用与 [Chrome 中的 Claude 扩展](/zh-CN/chrome)相同的安全模型。有关 Claude 如何处理敏感网站和风险操作的信息,请参阅[安全使用 Chrome 中的 Claude](https://support.claude.com/en/articles/12902428-using-claude-in-chrome-safely)。146即使在批准的网站上,Claude 也不会在没有你的输入的情况下购买物品、创建账户或绕过 CAPTCHA。在浏览器窗格中浏览使用与 [Chrome 中的 Claude 扩展](/docs/zh-CN/chrome)相同的安全模型。有关 Claude 如何处理敏感网站和风险操作的信息,请参阅[安全使用 Chrome 中的 Claude](https://support.claude.com/en/articles/12902428-using-claude-in-chrome-safely)。

147 147 

148<h4 id="choose-between-the-browser-and-the-chrome-extension">148<h4 id="choose-between-the-browser-and-the-chrome-extension">

149 在浏览器和 Chrome 扩展之间选择149 在浏览器和 Chrome 扩展之间选择

150</h4>150</h4>

151 151 

152浏览器窗格使用干净的浏览器配置文件,与你的个人浏览器分开,没有你保存的登录或历史记录。使用它来构建和测试你的应用以及不需要你的身份的网站。当你想让 Claude 在你的登录会话中充当你时,改用 [Chrome 中的 Claude 扩展](/zh-CN/chrome),它共享你的浏览器的登录状态。152浏览器窗格使用干净的浏览器配置文件,与你的个人浏览器分开,没有你保存的登录或历史记录。使用它来构建和测试你的应用以及不需要你的身份的网站。当你想让 Claude 在你的登录会话中充当你时,改用 [Chrome 中的 Claude 扩展](/docs/zh-CN/chrome),它共享你的浏览器的登录状态。

153 153 

154<h4 id="restrict-external-browsing-for-your-organization">154<h4 id="restrict-external-browsing-for-your-organization">

155 限制你的组织的外部浏览155 限制你的组织的外部浏览


272| `Cmd` `Shift` `E` | 打开工作量菜单 |272| `Cmd` `Shift` `E` | 打开工作量菜单 |

273| `1`–`9` | 在打开的菜单中选择项目 |273| `1`–`9` | 在打开的菜单中选择项目 |

274 274 

275这些快捷键仅适用于 Code 选项卡。基于终端的[交互模式快捷键](/zh-CN/interactive-mode#keyboard-shortcuts)(如 `Shift+Tab` 来循环模式)在 Desktop 中不适用。275这些快捷键仅适用于 Code 选项卡。基于终端的[交互模式快捷键](/docs/zh-CN/interactive-mode#keyboard-shortcuts)(如 `Shift+Tab` 来循环模式)在 Desktop 中不适用。

276 276 

277<h3 id="check-usage">277<h3 id="check-usage">

278 检查使用情况278 检查使用情况


293计算机使用默认关闭。[在设置中启用它](#enable-computer-use),然后 Claude 才能控制你的屏幕。在 macOS 上,你还需要授予辅助功能和屏幕录制权限。293计算机使用默认关闭。[在设置中启用它](#enable-computer-use),然后 Claude 才能控制你的屏幕。在 macOS 上,你还需要授予辅助功能和屏幕录制权限。

294 294 

295<Warning>295<Warning>

296 与[沙箱化 Bash 工具](/zh-CN/sandboxing)不同,计算机使用在你的实际桌面上运行,可以访问你批准的任何内容。Claude 检查每个操作并标记来自屏幕内容的潜在提示注入,但信任边界不同。有关最佳实践,请参阅[计算机使用安全指南](https://support.claude.com/en/articles/14128542)。296 与[沙箱化 Bash 工具](/docs/zh-CN/sandboxing)不同,计算机使用在你的实际桌面上运行,可以访问你批准的任何内容。Claude 检查每个操作并标记来自屏幕内容的潜在提示注入,但信任边界不同。有关最佳实践,请参阅[计算机使用安全指南](https://support.claude.com/en/articles/14128542)。

297</Warning>297</Warning>

298 298 

299<h3 id="when-computer-use-applies">299<h3 id="when-computer-use-applies">


304 304 

305* 如果你有一个服务的[连接器](#connect-external-tools),Claude 使用连接器。305* 如果你有一个服务的[连接器](#connect-external-tools),Claude 使用连接器。

306* 如果任务是 shell 命令,Claude 使用 Bash。306* 如果任务是 shell 命令,Claude 使用 Bash。

307* 如果任务是浏览器工作且你已设置[Chrome 中的 Claude](/zh-CN/chrome),Claude 使用那个。307* 如果任务是浏览器工作且你已设置[Chrome 中的 Claude](/docs/zh-CN/chrome),Claude 使用那个。

308* 如果以上都不适用,Claude 使用计算机使用。308* 如果以上都不适用,Claude 使用计算机使用。

309 309 

310[按应用访问层](#app-permissions)强化了这一点:浏览器限制为仅查看,终端和 IDE 限制为仅点击,即使计算机使用处于活跃状态,也会引导 Claude 使用专用工具。屏幕控制保留给其他工具无法到达的东西,如原生应用、硬件控制面板、移动模拟器或没有 API 的专有工具。310[按应用访问层](#app-permissions)强化了这一点:浏览器限制为仅查看,终端和 IDE 限制为仅点击,即使计算机使用处于活跃状态,也会引导 Claude 使用专用工具。屏幕控制保留给其他工具无法到达的东西,如原生应用、硬件控制面板、移动模拟器或没有 API 的专有工具。


317 317 

318<Steps>318<Steps>

319 <Step title="更新桌面应用">319 <Step title="更新桌面应用">

320 确保你有最新版本的 Claude Desktop。在 macOS 和 Windows 上,在 [claude.com/download](https://claude.com/download) 下载或更新;在 Linux 上,通过你的包管理器更新([说明](/zh-CN/desktop-linux))。然后重启应用。320 确保你有最新版本的 Claude Desktop。在 macOS 和 Windows 上,在 [claude.com/download](https://claude.com/download) 下载或更新;在 Linux 上,通过你的包管理器更新([说明](/docs/zh-CN/desktop-linux))。然后重启应用。

321 </Step>321 </Step>

322 322 

323 <Step title="打开切换">323 <Step title="打开切换">


367 使用会话并行工作367 使用会话并行工作

368</h3>368</h3>

369 369 

370点击侧边栏中的 **+ New session**,或在 macOS 上按 **Cmd+N** 或在 Windows 上按 **Ctrl+N**,来并行处理多个任务。按 **Ctrl+Tab** 和 **Ctrl+Shift+Tab** 来循环侧边栏中的会话。对于 Git 存储库,每个会话使用 [Git worktrees](/zh-CN/worktrees) 获得自己的项目隔离副本,因此一个会话中的更改不会影响其他会话,直到你提交它们。370点击侧边栏中的 **+ New session**,或在 macOS 上按 **Cmd+N** 或在 Windows 上按 **Ctrl+N**,来并行处理多个任务。按 **Ctrl+Tab** 和 **Ctrl+Shift+Tab** 来循环侧边栏中的会话。对于 Git 存储库,每个会话使用 [Git worktrees](/docs/zh-CN/worktrees) 获得自己的项目隔离副本,因此一个会话中的更改不会影响其他会话,直到你提交它们。

371 371 

372要同时查看两个会话,在 macOS 上按住 **Cmd** 或在 Windows 上按住 **Ctrl** 并点击侧边栏中的会话。会话在第二个窗格中打开,与你已经打开的窗格并排。当分割处于活跃状态时,点击另一个侧边栏会话会替换具有焦点的窗格。在 macOS 上按 **Cmd+\\** 或在 Windows 上按 **Ctrl+\\** 来关闭焦点窗格并返回到单个会话。372要同时查看两个会话,在 macOS 上按住 **Cmd** 或在 Windows 上按住 **Ctrl** 并点击侧边栏中的会话。会话在第二个窗格中打开,与你已经打开的窗格并排。当分割处于活跃状态时,点击另一个侧边栏会话会替换具有焦点的窗格。在 macOS 上按 **Cmd+\\** 或在 Windows 上按 **Ctrl+\\** 来关闭焦点窗格并返回到单个会话。

373 373 

374Worktrees 默认存储在 `<project-root>/.claude/worktrees/` 中。你可以在设置 → Claude Code 中的"Worktree location"下将其更改为自定义目录。你也可以设置一个分支前缀,该前缀会添加到每个 worktree 分支名称前面,这对于保持 Claude 创建的分支有组织很有用。要在完成后删除 worktree,请将鼠标悬停在侧边栏中的会话上并点击存档图标。要在 PR 合并或关闭时让会话自动存档,在设置 → Claude Code 中打开 **Auto-archive after PR merge or close**。自动存档仅适用于已完成运行的本地会话。374Worktrees 默认存储在 `<project-root>/.claude/worktrees/` 中。你可以在设置 → Claude Code 中的"Worktree location"下将其更改为自定义目录。你也可以设置一个分支前缀,该前缀会添加到每个 worktree 分支名称前面,这对于保持 Claude 创建的分支有组织很有用。要在完成后删除 worktree,请将鼠标悬停在侧边栏中的会话上并点击存档图标。要在 PR 合并或关闭时让会话自动存档,在设置 → Claude Code 中打开 **Auto-archive after PR merge or close**。自动存档仅适用于已完成运行的本地会话。

375 375 

376要在新 worktrees 中包含 gitignored 文件(如 `.env`),在你的项目根目录中创建一个 [`.worktreeinclude` 文件](/zh-CN/worktrees#copy-gitignored-files-into-worktrees)。376要在新 worktrees 中包含 gitignored 文件(如 `.env`),在你的项目根目录中创建一个 [`.worktreeinclude` 文件](/docs/zh-CN/worktrees#copy-gitignored-files-into-worktrees)。

377 377 

378<Note>378<Note>

379 会话隔离需要 [Git](https://git-scm.com/downloads)。大多数 Mac 默认包含 Git。在终端中运行 `git --version` 来检查。在 Windows 上,Git 是 Code 选项卡工作所必需的:[下载 Git for Windows](https://git-scm.com/downloads/win),安装它,然后重启应用。如果你遇到 Git 错误,请在 [Cowork 选项卡](https://claude.com/product/cowork) 中询问 Claude 来帮助排除你的设置。379 会话隔离需要 [Git](https://git-scm.com/downloads)。大多数 Mac 默认包含 Git。在终端中运行 `git --version` 来检查。在 Windows 上,Git 是 Code 选项卡工作所必需的:[下载 Git for Windows](https://git-scm.com/downloads/win),安装它,然后重启应用。如果你遇到 Git 错误,请在 [Cowork 选项卡](https://claude.com/product/cowork) 中询问 Claude 来帮助排除你的设置。

380</Note>380</Note>

381 381 

382使用侧边栏顶部的控制来按状态、项目或环境过滤会话,并按项目分组会话。要重命名会话,点击活跃会话顶部工具栏中的会话标题。要检查上下文使用情况,请参阅[检查使用情况](#check-usage)。当上下文填满时,Claude 自动总结对话并继续工作。你也可以输入 `/compact` 来更早触发总结并释放上下文空间。有关压缩工作原理的详细信息,请参阅[上下文窗口](/zh-CN/how-claude-code-works#the-context-window)。382使用侧边栏顶部的控制来按状态、项目或环境过滤会话,并按项目分组会话。要重命名会话,点击活跃会话顶部工具栏中的会话标题。要检查上下文使用情况,请参阅[检查使用情况](#check-usage)。当上下文填满时,Claude 自动总结对话并继续工作。你也可以输入 `/compact` 来更早触发总结并释放上下文空间。有关压缩工作原理的详细信息,请参阅[上下文窗口](/docs/zh-CN/how-claude-code-works#the-context-window)。

383 383 

384桌面应用在 Code 会话完成任务且你当前未查看该会话时发送操作系统通知。384桌面应用在 Code 会话完成任务且你当前未查看该会话时发送操作系统通知。

385 385 


395 观看后台任务395 观看后台任务

396</h3>396</h3>

397 397 

398任务窗格显示在当前会话内运行的后台工作:子代理、后台 shell 命令和[动态工作流](/zh-CN/workflows)。从 **Views** 菜单打开它或将其拖入你的布局。398任务窗格显示在当前会话内运行的后台工作:子代理、后台 shell 命令和[动态工作流](/docs/zh-CN/workflows)。从 **Views** 菜单打开它或将其拖入你的布局。

399 399 

400点击任何条目来在子代理窗格中查看其输出或停止它。要查看其他会话在做什么,使用[侧边栏](#work-in-parallel-with-sessions)。400点击任何条目来在子代理窗格中查看其输出或停止它。要查看其他会话在做什么,使用[侧边栏](#work-in-parallel-with-sessions)。

401 401 


407 407 

408远程会话也支持多个存储库。选择云环境后,点击存储库 pill 旁的 **+** 按钮向会话添加其他存储库。每个存储库都有自己的分支选择器。这对于跨越多个代码库的任务很有用,例如更新共享库及其使用者。408远程会话也支持多个存储库。选择云环境后,点击存储库 pill 旁的 **+** 按钮向会话添加其他存储库。每个存储库都有自己的分支选择器。这对于跨越多个代码库的任务很有用,例如更新共享库及其使用者。

409 409 

410有关远程会话如何工作的更多信息,请参阅 [Web 上的 Claude Code](/zh-CN/claude-code-on-the-web)。410有关远程会话如何工作的更多信息,请参阅 [Web 上的 Claude Code](/docs/zh-CN/claude-code-on-the-web)。

411 411 

412<h3 id="continue-in-another-surface">412<h3 id="continue-in-another-surface">

413 在另一个表面继续413 在另一个表面继续


432 432 

433有关设置、配对和 Dispatch 设置,请参阅 [Dispatch 帮助文章](https://support.claude.com/en/articles/13947068)。Dispatch 需要 Pro 或 Max 计划,在 Team 或 Enterprise 计划上不可用。433有关设置、配对和 Dispatch 设置,请参阅 [Dispatch 帮助文章](https://support.claude.com/en/articles/13947068)。Dispatch 需要 Pro 或 Max 计划,在 Team 或 Enterprise 计划上不可用。

434 434 

435Dispatch 是远离终端时与 Claude 合作的几种方式之一。请参阅[平台和集成](/zh-CN/platforms#work-when-you-are-away-from-your-terminal)来比较它与远程控制、Channels、Slack 和计划任务。435Dispatch 是远离终端时与 Claude 合作的几种方式之一。请参阅[平台和集成](/docs/zh-CN/platforms#work-when-you-are-away-from-your-terminal)来比较它与远程控制、Channels、Slack 和计划任务。

436 436 

437<h2 id="extend-claude-code">437<h2 id="extend-claude-code">

438 扩展 Claude Code438 扩展 Claude Code


444 连接外部工具444 连接外部工具

445</h3>445</h3>

446 446 

447对于本地和 [SSH](#ssh-sessions) 会话,点击提示框旁的 **+** 按钮并选择 **Connectors** 来添加集成,如 Google Calendar、Slack、GitHub、Linear、Notion 等。你可以在会话之前或期间添加连接器。**+** 按钮在云会话中不可用,但 [routines](/zh-CN/routines) 在 routine 创建时配置连接器。447对于本地和 [SSH](#ssh-sessions) 会话,点击提示框旁的 **+** 按钮并选择 **Connectors** 来添加集成,如 Google Calendar、Slack、GitHub、Linear、Notion 等。你可以在会话之前或期间添加连接器。**+** 按钮在云会话中不可用,但 [routines](/docs/zh-CN/routines) 在 routine 创建时配置连接器。

448 448 

449要管理或断开连接器,请在桌面应用中转到设置 → Connectors,或从提示框中的 Connectors 菜单中选择 **Manage connectors**。449要管理或断开连接器,请在桌面应用中转到设置 → Connectors,或从提示框中的 Connectors 菜单中选择 **Manage connectors**。

450 450 

451连接后,Claude 可以读取你的日历、发送消息、创建问题并直接与你的工具交互。你可以询问 Claude 在你的会话中配置了哪些连接器。451连接后,Claude 可以读取你的日历、发送消息、创建问题并直接与你的工具交互。你可以询问 Claude 在你的会话中配置了哪些连接器。

452 452 

453连接器是[MCP servers](/zh-CN/mcp),具有图形设置流程。使用它们快速与支持的服务集成。对于连接器中未列出的集成,通过[设置文件](/zh-CN/mcp#installing-mcp-servers)手动添加 MCP servers。你也可以[创建自定义连接器](https://support.claude.com/en/articles/11175166-getting-started-with-custom-connectors-using-remote-mcp)。453连接器是[MCP servers](/docs/zh-CN/mcp),具有图形设置流程。使用它们快速与支持的服务集成。对于连接器中未列出的集成,通过[设置文件](/docs/zh-CN/mcp#installing-mcp-servers)手动添加 MCP servers。你也可以[创建自定义连接器](https://support.claude.com/en/articles/11175166-getting-started-with-custom-connectors-using-remote-mcp)。

454 454 

455<h3 id="use-skills">455<h3 id="use-skills">

456 使用 skills456 使用 skills

457</h3>457</h3>

458 458 

459[Skills](/zh-CN/skills)扩展 Claude 可以做的事情。Claude 在相关时自动加载它们,或者你可以直接调用一个:在提示框中输入 `/` 或点击 **+** 按钮并选择 **Slash commands** 来浏览可用的内容。这包括[内置命令](/zh-CN/commands)、你的[自定义 skills](/zh-CN/skills#create-your-first-skill)、来自你的代码库的项目 skills 以及来自任何[已安装插件](/zh-CN/plugins)的 skills。选择一个,它会在输入字段中突出显示。在它之后输入你的任务并照常发送。459[Skills](/docs/zh-CN/skills)扩展 Claude 可以做的事情。Claude 在相关时自动加载它们,或者你可以直接调用一个:在提示框中输入 `/` 或点击 **+** 按钮并选择 **Slash commands** 来浏览可用的内容。这包括[内置命令](/docs/zh-CN/commands)、你的[自定义 skills](/docs/zh-CN/skills#create-your-first-skill)、来自你的代码库的项目 skills 以及来自任何[已安装插件](/docs/zh-CN/plugins)的 skills。选择一个,它会在输入字段中突出显示。在它之后输入你的任务并照常发送。

460 460 

461你可以在 Claude 工作时发送命令,就像任何其他消息一样,会话在轮次完成后返回空闲状态。在 v2.1.206 之前,在轮次中间发送的命令可能会导致会话显示为运行状态,你之后发送的消息未被传递。461你可以在 Claude 工作时发送命令,就像任何其他消息一样,会话在轮次完成后返回空闲状态。在 v2.1.206 之前,在轮次中间发送的命令可能会导致会话显示为运行状态,你之后发送的消息未被传递。

462 462 


464 安装插件464 安装插件

465</h3>465</h3>

466 466 

467[Plugins](/zh-CN/plugins)是可重用的包,为 Claude Code 添加 skills、agents、hooks、MCP servers 和 LSP 配置。你可以从桌面应用安装插件,而无需使用终端。467[Plugins](/docs/zh-CN/plugins)是可重用的包,为 Claude Code 添加 skills、agents、hooks、MCP servers 和 LSP 配置。你可以从桌面应用安装插件,而无需使用终端。

468 468 

469对于本地和 [SSH](#ssh-sessions) 会话,点击提示框旁的 **+** 按钮并选择 **Plugins** 来查看你已安装的插件及其 skills。要添加插件,从子菜单中选择 **Add plugin** 来打开插件浏览器,它显示来自你配置的[市场](/zh-CN/plugin-marketplaces)的可用插件,包括官方 Anthropic 市场。选择 **Manage plugins** 来启用、禁用或卸载插件。469对于本地和 [SSH](#ssh-sessions) 会话,点击提示框旁的 **+** 按钮并选择 **Plugins** 来查看你已安装的插件及其 skills。要添加插件,从子菜单中选择 **Add plugin** 来打开插件浏览器,它显示来自你配置的[市场](/docs/zh-CN/plugin-marketplaces)的可用插件,包括官方 Anthropic 市场。选择 **Manage plugins** 来启用、禁用或卸载插件。

470 470 

471插件可以限定到你的用户账户、特定项目或仅本地。如果你的组织集中管理插件,这些插件在桌面会话中的可用方式与在 CLI 中相同。插件在云会话或 WSL 会话中不可用。有关完整的插件参考,包括创建你自己的插件,请参阅 [plugins](/zh-CN/plugins)。471插件可以限定到你的用户账户、特定项目或仅本地。如果你的组织集中管理插件,这些插件在桌面会话中的可用方式与在 CLI 中相同。插件在云会话或 WSL 会话中不可用。有关完整的插件参考,包括创建你自己的插件,请参阅 [plugins](/docs/zh-CN/plugins)。

472 472 

473<h3 id="configure-preview-servers">473<h3 id="configure-preview-servers">

474 配置预览服务器474 配置预览服务器


634* **Local**:在你的机器上运行,直接访问你的文件634* **Local**:在你的机器上运行,直接访问你的文件

635* **Remote**:在 Anthropic 的云基础设施上运行。即使你关闭应用,会话也会继续。635* **Remote**:在 Anthropic 的云基础设施上运行。即使你关闭应用,会话也会继续。

636* **SSH**:在你通过 SSH 连接的远程机器上运行,例如你自己的服务器、云虚拟机或开发容器636* **SSH**:在你通过 SSH 连接的远程机器上运行,例如你自己的服务器、云虚拟机或开发容器

637* **WSL**(Windows):在你的机器上的 [WSL 2 发行版](/zh-CN/desktop-wsl)内运行,使用其 Linux 工具链和本地路径637* **WSL**(Windows):在你的机器上的 [WSL 2 发行版](/docs/zh-CN/desktop-wsl)内运行,使用其 Linux 工具链和本地路径

638 638 

639<h3 id="local-sessions">639<h3 id="local-sessions">

640 本地会话640 本地会话


642 642 

643桌面应用并不总是继承你的完整 shell 环境。在 macOS 上,当你从 Dock 或 Finder 启动应用时,它读取你的 shell 配置文件,例如 `~/.zshrc` 或 `~/.bashrc`,来提取 `PATH` 和一组固定的 Claude Code 变量,但你在那里导出的其他变量不会被拾取。在 Windows 上,应用继承用户和系统环境变量,但不读取 PowerShell 配置文件。643桌面应用并不总是继承你的完整 shell 环境。在 macOS 上,当你从 Dock 或 Finder 启动应用时,它读取你的 shell 配置文件,例如 `~/.zshrc` 或 `~/.bashrc`,来提取 `PATH` 和一组固定的 Claude Code 变量,但你在那里导出的其他变量不会被拾取。在 Windows 上,应用继承用户和系统环境变量,但不读取 PowerShell 配置文件。

644 644 

645要在任何平台上为本地会话和开发服务器设置环境变量,在提示框中打开环境下拉菜单,将鼠标悬停在 **Local** 上,然后点击齿轮图标来打开本地环境编辑器。你在此处保存的变量在你的机器上加密存储,并适用于你启动的每个本地会话和预览服务器。你也可以将变量添加到你的 `~/.claude/settings.json` 文件中的 `env` 键,尽管这些仅到达 Claude 会话而不是开发服务器。有关支持的变量的完整列表,请参阅[环境变量](/zh-CN/env-vars)。645要在任何平台上为本地会话和开发服务器设置环境变量,在提示框中打开环境下拉菜单,将鼠标悬停在 **Local** 上,然后点击齿轮图标来打开本地环境编辑器。你在此处保存的变量在你的机器上加密存储,并适用于你启动的每个本地会话和预览服务器。你也可以将变量添加到你的 `~/.claude/settings.json` 文件中的 `env` 键,尽管这些仅到达 Claude 会话而不是开发服务器。有关支持的变量的完整列表,请参阅[环境变量](/docs/zh-CN/env-vars)。

646 646 

647[Extended thinking](/zh-CN/model-config#extended-thinking)默认启用,这改进了复杂推理任务的性能,但使用额外的令牌。要禁用思考,在本地环境编辑器中将 `MAX_THINKING_TOKENS` 设置为 `0`;这对 Fable 5 没有影响,Fable 5 始终使用 extended thinking。在[第三方提供商](/zh-CN/third-party-integrations)上,`0` 会省略 `thinking` 参数,自适应推理模型可能仍然会思考。在具有[自适应推理](/zh-CN/model-config#adjust-effort-level)的模型上,任何其他 `MAX_THINKING_TOKENS` 值都被忽略,因为自适应推理控制思考深度。在 Opus 4.6 和 Sonnet 4.6 上,设置 `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` 为 `1` 来使用固定思考预算;Fable 5、Sonnet 5 和 Opus 4.7 及更高版本始终使用自适应推理,没有固定预算模式。647[Extended thinking](/docs/zh-CN/model-config#extended-thinking)默认启用,这改进了复杂推理任务的性能,但使用额外的令牌。要禁用思考,在本地环境编辑器中将 `MAX_THINKING_TOKENS` 设置为 `0`;这对 Fable 5 没有影响,Fable 5 始终使用 extended thinking。在[第三方提供商](/docs/zh-CN/third-party-integrations)上,`0` 会省略 `thinking` 参数,自适应推理模型可能仍然会思考。在具有[自适应推理](/docs/zh-CN/model-config#adjust-effort-level)的模型上,任何其他 `MAX_THINKING_TOKENS` 值都被忽略,因为自适应推理控制思考深度。在 Opus 4.6 和 Sonnet 4.6 上,设置 `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` 为 `1` 来使用固定思考预算;Fable 5、Sonnet 5 和 Opus 4.7 及更高版本始终使用自适应推理,没有固定预算模式。

648 648 

649<h3 id="cloud-sessions">649<h3 id="cloud-sessions">

650 云会话650 云会话

651</h3>651</h3>

652 652 

653云会话即使在你关闭应用后也会在后台继续。使用计入你的[订阅计划限制](/zh-CN/costs),没有单独的计算费用。653云会话即使在你关闭应用后也会在后台继续。使用计入你的[订阅计划限制](/docs/zh-CN/costs),没有单独的计算费用。

654 654 

655你可以创建具有不同网络访问级别和环境变量的自定义云环境。在启动云会话时选择环境下拉菜单并选择 **Add environment**。有关配置网络访问和环境变量的详细信息,请参阅[云环境](/zh-CN/claude-code-on-the-web#the-cloud-environment)。655你可以创建具有不同网络访问级别和环境变量的自定义云环境。在启动云会话时选择环境下拉菜单并选择 **Add environment**。有关配置网络访问和环境变量的详细信息,请参阅[云环境](/docs/zh-CN/claude-code-on-the-web#the-cloud-environment)。

656 656 

657<h3 id="ssh-sessions">657<h3 id="ssh-sessions">

658 SSH 会话658 SSH 会话


675 为你的团队预配置 SSH 连接675 为你的团队预配置 SSH 连接

676</h4>676</h4>

677 677 

678管理员可以通过将 `sshConfigs` 添加到[托管设置](/zh-CN/settings#settings-precedence)文件来向团队成员分发 SSH 连接。以这种方式定义的连接会自动出现在每个用户的环境下拉菜单中,并显示为托管的,因此用户可以选择它们,但不能在应用中编辑或删除它们。678管理员可以通过将 `sshConfigs` 添加到[托管设置](/docs/zh-CN/settings#settings-precedence)文件来向团队成员分发 SSH 连接。以这种方式定义的连接会自动出现在每个用户的环境下拉菜单中,并显示为托管的,因此用户可以选择它们,但不能在应用中编辑或删除它们。

679 679 

680以下示例预配置了一个在远程主机上的 `~/projects` 中打开的单个连接:680以下示例预配置了一个在远程主机上的 `~/projects` 中打开的单个连接:

681 681 


700 限制用户可以连接的 SSH 主机700 限制用户可以连接的 SSH 主机

701</h4>701</h4>

702 702 

703管理员可以通过将 `sshHostAllowlist` 添加到[托管设置](/zh-CN/settings#settings-precedence)文件来限制 Desktop 的 SSH 会话到一组已批准的主机。设置后,用户只能连接到其解析的主机名与其中一个模式匹配的主机。将其设置为空数组以完全禁用 SSH 会话。703管理员可以通过将 `sshHostAllowlist` 添加到[托管设置](/docs/zh-CN/settings#settings-precedence)文件来限制 Desktop 的 SSH 会话到一组已批准的主机。设置后,用户只能连接到其解析的主机名与其中一个模式匹配的主机。将其设置为空数组以完全禁用 SSH 会话。

704 704 

705以下示例允许连接到 `devboxes.example.com` 下的任何主机以及单个命名的堡垒主机:705以下示例允许连接到 `devboxes.example.com` 下的任何主机以及单个命名的堡垒主机:

706 706 


727这些设置通过[管理员设置控制台](https://claude.ai/admin-settings/claude-code)配置:727这些设置通过[管理员设置控制台](https://claude.ai/admin-settings/claude-code)配置:

728 728 

729* **Desktop 中的 Code**:控制你的组织中的用户是否可以在桌面应用中访问 Claude Code729* **Desktop 中的 Code**:控制你的组织中的用户是否可以在桌面应用中访问 Claude Code

730* **Web 中的 Code**:为你的组织启用或禁用[Web 会话](/zh-CN/claude-code-on-the-web)730* **Web 中的 Code**:为你的组织启用或禁用[Web 会话](/docs/zh-CN/claude-code-on-the-web)

731* **Remote Control**:为你的组织启用或禁用[远程控制](/zh-CN/remote-control)731* **Remote Control**:为你的组织启用或禁用[远程控制](/docs/zh-CN/remote-control)

732* **禁用绕过权限模式**:防止你的组织中的用户启用绕过权限模式732* **禁用绕过权限模式**:防止你的组织中的用户启用绕过权限模式

733 733 

734<h3 id="managed-settings">734<h3 id="managed-settings">

735 托管设置735 托管设置

736</h3>736</h3>

737 737 

738托管设置覆盖项目和用户设置,并应用于 Desktop 中的 Claude Code 会话。你可以在你的组织的[托管设置](/zh-CN/settings#settings-precedence)文件中设置这些键,或通过管理员控制台远程推送它们。738托管设置覆盖项目和用户设置,并应用于 Desktop 中的 Claude Code 会话。你可以在你的组织的[托管设置](/docs/zh-CN/settings#settings-precedence)文件中设置这些键,或通过管理员控制台远程推送它们。

739 739 

740| 键 | 描述 |740| 键 | 描述 |

741| ------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |741| ------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

742| `permissions.disableBypassPermissionsMode` | 设置为 `"disable"` 以防止用户启用绕过权限模式。 |742| `permissions.disableBypassPermissionsMode` | 设置为 `"disable"` 以防止用户启用绕过权限模式。 |

743| `disableAutoMode` | 设置为 `"disable"` 以防止用户启用 [Auto](/zh-CN/permission-modes#eliminate-prompts-with-auto-mode) 模式。从模式选择器中删除 Auto。也在 `permissions` 下接受。 |743| `disableAutoMode` | 设置为 `"disable"` 以防止用户启用 [Auto](/docs/zh-CN/permission-modes#eliminate-prompts-with-auto-mode) 模式。从模式选择器中删除 Auto。也在 `permissions` 下接受。 |

744| `autoMode` | 自定义 auto 模式分类器在你的组织中信任和阻止的内容。请参阅[配置 auto 模式](/zh-CN/auto-mode-config)。 |744| `autoMode` | 自定义 auto 模式分类器在你的组织中信任和阻止的内容。请参阅[配置 auto 模式](/docs/zh-CN/auto-mode-config)。 |

745| `browserExternalPageTools` | 设置为 `"disabled"` 以防止 Claude 使用工具在[浏览器窗格](#browse-external-sites)中读取或作用于外部页面。用户仍然可以自己导航到外部网站,本地开发服务器预览不受影响。 |745| `browserExternalPageTools` | 设置为 `"disabled"` 以防止 Claude 使用工具在[浏览器窗格](#browse-external-sites)中读取或作用于外部页面。用户仍然可以自己导航到外部网站,本地开发服务器预览不受影响。 |

746| `disableBrowserExternalNavigation` | 设置为 `true` 以完全关闭[浏览器窗格](#browse-external-sites)中的外部浏览。用户和 Claude 都无法导航到外部网站,localhost 开发服务器预览不受影响。该值必须是 JSON 布尔值 `true`;字符串 `"true"` 被忽略。 |746| `disableBrowserExternalNavigation` | 设置为 `true` 以完全关闭[浏览器窗格](#browse-external-sites)中的外部浏览。用户和 Claude 都无法导航到外部网站,localhost 开发服务器预览不受影响。该值必须是 JSON 布尔值 `true`;字符串 `"true"` 被忽略。 |

747| `sshConfigs` | 预配置[SSH 连接](#pre-configure-ssh-connections-for-your-team),在环境下拉菜单中显示。用户无法编辑或删除托管连接。 |747| `sshConfigs` | 预配置[SSH 连接](#pre-configure-ssh-connections-for-your-team),在环境下拉菜单中显示。用户无法编辑或删除托管连接。 |

748| `sshHostAllowlist` | 限制 [SSH 会话](#restrict-which-ssh-hosts-users-can-connect-to)连接到已解析主机名与这些模式之一匹配的主机。空数组禁用 SSH 会话。仅从托管设置中读取。 |748| `sshHostAllowlist` | 限制 [SSH 会话](#restrict-which-ssh-hosts-users-can-connect-to)连接到已解析主机名与这些模式之一匹配的主机。空数组禁用 SSH 会话。仅从托管设置中读取。 |

749| `managedMcpServers` | 将 MCP 服务器配置推送到第三方部署中的所有用户。每个条目指定 `"http"`、`"sse"` 或 `"stdio"` 的传输、连接详细信息,以及可选的 `toolPolicy` 映射,该映射限制该服务器中用户可以调用的工具。仅在第三方 (3P) Desktop 部署中可用。通过托管设置文件或 MDM 提供此键,因为第三方部署不接收管理员控制台设置。 |749| `managedMcpServers` | 将 MCP 服务器配置推送到第三方部署中的所有用户。每个条目指定 `"http"`、`"sse"` 或 `"stdio"` 的传输、连接详细信息,以及可选的 `toolPolicy` 映射,该映射限制该服务器中用户可以调用的工具。仅在第三方 (3P) Desktop 部署中可用。通过托管设置文件或 MDM 提供此键,因为第三方部署不接收管理员控制台设置。 |

750 750 

751哪些托管设置到达 Desktop 会话取决于该会话运行的位置。模型限制(如 [`availableModels`](/zh-CN/model-config#restrict-model-selection))在 Desktop 的 Claude Code 会话中的执行方式与在终端 CLI 中相同;请参阅[表面覆盖](/zh-CN/model-config#surface-coverage)。751哪些托管设置到达 Desktop 会话取决于该会话运行的位置。模型限制(如 [`availableModels`](/docs/zh-CN/model-config#restrict-model-selection))在 Desktop 的 Claude Code 会话中的执行方式与在终端 CLI 中相同;请参阅[表面覆盖](/docs/zh-CN/model-config#surface-coverage)。

752 752 

753* **此机器上的本地会话**:部署到磁盘的托管设置文件适用。通过管理员控制台远程推送的托管设置也在会话使用组织登录或直接配置的 API 密钥向 Anthropic 的 API 进行身份验证时到达这些会话,遵循与终端 CLI 相同的[设置优先级](/zh-CN/settings#settings-precedence)。753* **此机器上的本地会话**:部署到磁盘的托管设置文件适用。通过管理员控制台远程推送的托管设置也在会话使用组织登录或直接配置的 API 密钥向 Anthropic 的 API 进行身份验证时到达这些会话,遵循与终端 CLI 相同的[设置优先级](/docs/zh-CN/settings#settings-precedence)。

754* **[云会话](#cloud-sessions)**:在 Anthropic 管理的虚拟机上运行,仅接收[服务器管理的设置](/zh-CN/server-managed-settings)。754* **[云会话](#cloud-sessions)**:在 Anthropic 管理的虚拟机上运行,仅接收[服务器管理的设置](/docs/zh-CN/server-managed-settings)。

755* **[SSH 会话](#ssh-sessions)**:会话从远程主机读取托管设置文件。Desktop 本身在创建连接时从本地机器的托管设置中读取 `sshConfigs` 和 `sshHostAllowlist`。755* **[SSH 会话](#ssh-sessions)**:会话从远程主机读取托管设置文件。Desktop 本身在创建连接时从本地机器的托管设置中读取 `sshConfigs` 和 `sshHostAllowlist`。

756 756 

757`permissions.disableBypassPermissionsMode` 和 `disableAutoMode` 也在用户和项目设置中工作,但将它们放在托管设置中可防止用户覆盖它们。757`permissions.disableBypassPermissionsMode` 和 `disableAutoMode` 也在用户和项目设置中工作,但将它们放在托管设置中可防止用户覆盖它们。

758 758 

759{/* min-version: 2.1.207 */}Claude Code 从用户设置、`--settings` 标志和托管设置中读取 `autoMode`,但不从 `.claude/settings.json` 或 `.claude/settings.local.json` 中读取:两个文件都位于存储库目录中,因此克隆的存储库或构建步骤无法注入其自己的分类器规则。在 v2.1.207 之前,Claude Code 也读取 `.claude/settings.local.json`。759Claude Code 从用户设置、`--settings` 标志和托管设置中读取 `autoMode`,但不从 `.claude/settings.json` 或 `.claude/settings.local.json` 中读取:两个文件都位于存储库目录中,因此克隆的存储库或构建步骤无法注入其自己的分类器规则。在 v2.1.207 之前,Claude Code 也读取 `.claude/settings.local.json`。

760 760 

761有关托管专用设置的完整列表,包括 `allowManagedPermissionRulesOnly` 和 `allowManagedHooksOnly`,请参阅[托管专用设置](/zh-CN/permissions#managed-only-settings)。761有关托管专用设置的完整列表,包括 `allowManagedPermissionRulesOnly` 和 `allowManagedHooksOnly`,请参阅[托管专用设置](/docs/zh-CN/permissions#managed-only-settings)。

762 762 

763<h3 id="device-management-policies">763<h3 id="device-management-policies">

764 设备管理策略764 设备管理策略


788*.claudemcpcontent.com788*.claudemcpcontent.com

789```789```

790 790 

791流量在端口 443 上使用 HTTPS,除非你为 [OTLP](/zh-CN/monitoring-usage)、LLM 网关或 MCP 服务器配置自定义端口。791流量在端口 443 上使用 HTTPS,除非你为 [OTLP](/docs/zh-CN/monitoring-usage)、LLM 网关或 MCP 服务器配置自定义端口。

792 792 

793有关代理服务器、自定义证书颁发机构、mTLS 和独立 CLI 需要的域,请参阅[网络配置](/zh-CN/network-config)。793有关代理服务器、自定义证书颁发机构、mTLS 和独立 CLI 需要的域,请参阅[网络配置](/docs/zh-CN/network-config)。

794 794 

795要减少防火墙通配符的数量,请改为允许这些 Anthropic 主机。某些子域是动态生成的,必须保持为通配符。795要减少防火墙通配符的数量,请改为允许这些 Anthropic 主机。某些子域是动态生成的,必须保持为通配符。

796 796 


818 身份验证和 SSO818 身份验证和 SSO

819</h3>819</h3>

820 820 

821企业组织可以要求所有用户使用 SSO。有关计划级别的详细信息,请参阅[身份验证](/zh-CN/authentication),有关 SAML 配置,请参阅[设置 SSO](https://support.claude.com/en/articles/13132885-setting-up-single-sign-on-sso);OIDC 设置在 [Claude Enterprise Administrator Guide](https://claude.com/resources/tutorials/claude-enterprise-administrator-guide) 中介绍。821企业组织可以要求所有用户使用 SSO。有关计划级别的详细信息,请参阅[身份验证](/docs/zh-CN/authentication),有关 SAML 配置,请参阅[设置 SSO](https://support.claude.com/en/articles/13132885-setting-up-single-sign-on-sso);OIDC 设置在 [Claude Enterprise Administrator Guide](https://claude.com/resources/tutorials/claude-enterprise-administrator-guide) 中介绍。

822 822 

823<h3 id="data-handling">823<h3 id="data-handling">

824 数据处理824 数据处理

825</h3>825</h3>

826 826 

827Claude Code 在本地会话中本地处理你的代码,或在云会话中在 Anthropic 的云基础设施上处理。对话和代码上下文被发送到 Anthropic 的 API 进行处理。有关数据保留、隐私和合规性的详细信息,请参阅[数据处理](/zh-CN/data-usage)。827Claude Code 在本地会话中本地处理你的代码,或在云会话中在 Anthropic 的云基础设施上处理。对话和代码上下文被发送到 Anthropic 的 API 进行处理。有关数据保留、隐私和合规性的详细信息,请参阅[数据处理](/docs/zh-CN/data-usage)。

828 828 

829<h3 id="deployment">829<h3 id="deployment">

830 部署830 部署


835* **macOS**:通过 MDM(如 Jamf 或 Kandji)使用 `.dmg` 安装程序分发835* **macOS**:通过 MDM(如 Jamf 或 Kandji)使用 `.dmg` 安装程序分发

836* **Windows**:通过 MSIX 包部署。有关企业部署选项(包括静默安装),请参阅[为 Windows 部署 Claude Desktop](https://support.claude.com/en/articles/12622703-deploy-claude-desktop-for-windows)836* **Windows**:通过 MSIX 包部署。有关企业部署选项(包括静默安装),请参阅[为 Windows 部署 Claude Desktop](https://support.claude.com/en/articles/12622703-deploy-claude-desktop-for-windows)

837 837 

838有关在防火墙中允许列表的域,请参阅上面的[网络访问要求](#network-access-requirements)。有关代理设置、自定义证书颁发机构和 LLM 网关,请参阅[网络配置](/zh-CN/network-config)。838有关在防火墙中允许列表的域,请参阅上面的[网络访问要求](#network-access-requirements)。有关代理设置、自定义证书颁发机构和 LLM 网关,请参阅[网络配置](/docs/zh-CN/network-config)。

839 839 

840有关完整的企业配置参考,请参阅[企业配置指南](https://support.claude.com/en/articles/12622667-enterprise-configuration)。840有关完整的企业配置参考,请参阅[企业配置指南](https://support.claude.com/en/articles/12622667-enterprise-configuration)。

841 841 


864| `--permission-mode` | 发送按钮旁的模式选择器 |864| `--permission-mode` | 发送按钮旁的模式选择器 |

865| `--dangerously-skip-permissions` | 绕过权限模式。在 Pro 和 Max 计划上,在设置 → Claude Code → "允许绕过权限模式"中启用它;在 Team 和 Enterprise 计划上,组织策略控制它 |865| `--dangerously-skip-permissions` | 绕过权限模式。在 Pro 和 Max 计划上,在设置 → Claude Code → "允许绕过权限模式"中启用它;在 Team 和 Enterprise 计划上,组织策略控制它 |

866| `--add-dir` | 在云会话中使用 **+** 按钮添加多个存储库 |866| `--add-dir` | 在云会话中使用 **+** 按钮添加多个存储库 |

867| `--allowedTools`, `--disallowedTools` | 无每个会话的等效项。[设置文件](/zh-CN/settings)中的权限规则仍然适用。 |867| `--allowedTools`, `--disallowedTools` | 无每个会话的等效项。[设置文件](/docs/zh-CN/settings)中的权限规则仍然适用。 |

868| `--verbose` | [Verbose 视图模式](#switch-view-modes)在 Transcript 视图下拉菜单中 |868| `--verbose` | [Verbose 视图模式](#switch-view-modes)在 Transcript 视图下拉菜单中 |

869| `--print`, `--output-format` | 不可用。Desktop 仅是交互式的。 |869| `--print`, `--output-format` | 不可用。Desktop 仅是交互式的。 |

870| `ANTHROPIC_MODEL` 环境变量 | 发送按钮旁的模型下拉菜单 |870| `ANTHROPIC_MODEL` 环境变量 | 发送按钮旁的模型下拉菜单 |


876 876 

877Desktop 和 CLI 读取相同的配置文件,因此你的设置会转移:877Desktop 和 CLI 读取相同的配置文件,因此你的设置会转移:

878 878 

879* **[CLAUDE.md](/zh-CN/memory)** 和 `CLAUDE.local.md` 文件在你的项目中被两者使用879* **[CLAUDE.md](/docs/zh-CN/memory)** 和 `CLAUDE.local.md` 文件在你的项目中被两者使用

880* **[MCP servers](/zh-CN/mcp)** 在 `~/.claude.json` 或 `.mcp.json` 中配置在两者中工作880* **[MCP servers](/docs/zh-CN/mcp)** 在 `~/.claude.json` 或 `.mcp.json` 中配置在两者中工作

881* **[Hooks](/zh-CN/hooks)** 和 **[skills](/zh-CN/skills)** 在设置中定义适用于两者881* **[Hooks](/docs/zh-CN/hooks)** 和 **[skills](/docs/zh-CN/skills)** 在设置中定义适用于两者

882* **[Settings](/zh-CN/settings)** 在 `~/.claude.json` 和 `~/.claude/settings.json` 中是共享的。权限规则、允许的工具和 `settings.json` 中的其他设置适用于 Desktop 会话。882* **[Settings](/docs/zh-CN/settings)** 在 `~/.claude.json` 和 `~/.claude/settings.json` 中是共享的。权限规则、允许的工具和 `settings.json` 中的其他设置适用于 Desktop 会话。

883* **Models**:相同的[模型](/zh-CN/model-config#available-models)在两者中都可用。在 Desktop 中,从发送按钮旁的下拉菜单中选择模型。你可以在会话期间从相同的下拉菜单更改模型。883* **Models**:相同的[模型](/docs/zh-CN/model-config#available-models)在两者中都可用。在 Desktop 中,从发送按钮旁的下拉菜单中选择模型。你可以在会话期间从相同的下拉菜单更改模型。

884 884 

885<Note>885<Note>

886 **来自 Claude Desktop 聊天应用的 MCP servers**:Desktop 应用从 `claude_desktop_config.json` 将 MCP servers 加载到 Code 选项卡会话中,以及来自 `~/.claude.json` 和 `.mcp.json` 的服务器。在 `claude_desktop_config.json` 中定义的服务器在 Desktop 聊天表面和 Code 选项卡中都可用。886 **来自 Claude Desktop 聊天应用的 MCP servers**:Desktop 应用从 `claude_desktop_config.json` 将 MCP servers 加载到 Code 选项卡会话中,以及来自 `~/.claude.json` 和 `.mcp.json` 的服务器。在 `claude_desktop_config.json` 中定义的服务器在 Desktop 聊天表面和 Code 选项卡中都可用。

887 887 

888 独立 CLI 不读取 `claude_desktop_config.json`。在 macOS 和 WSL 上,运行 `claude mcp add-from-claude-desktop` 将这些服务器复制到 `~/.claude.json`。请参阅[从 Claude Desktop 导入 MCP servers](/zh-CN/mcp#import-mcp-servers-from-claude-desktop)了解导入流程和范围选项。888 独立 CLI 不读取 `claude_desktop_config.json`。在 macOS 和 WSL 上,运行 `claude mcp add-from-claude-desktop` 将这些服务器复制到 `~/.claude.json`。请参阅[从 Claude Desktop 导入 MCP servers](/docs/zh-CN/mcp#import-mcp-servers-from-claude-desktop)了解导入流程和范围选项。

889</Note>889</Note>

890 890 

891<h3 id="feature-comparison">891<h3 id="feature-comparison">

892 功能比较892 功能比较

893</h3>893</h3>

894 894 

895此表比较了 CLI 和 Desktop 之间的核心功能。有关 CLI 标志的完整列表,请参阅 [CLI 参考](/zh-CN/cli-reference)。895此表比较了 CLI 和 Desktop 之间的核心功能。有关 CLI 标志的完整列表,请参阅 [CLI 参考](/docs/zh-CN/cli-reference)。

896 896 

897| 功能 | CLI | Desktop |897| 功能 | CLI | Desktop |

898| ----------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |898| ----------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

899| 权限模式 | 所有模式,包括 `dontAsk` | Manual、Accept edits、Plan 和 Auto。绕过权限在模式选择器中出现一次启用:通过 Pro 和 Max 计划上的设置切换,或通过 Team 和 Enterprise 计划上的组织策略 |899| 权限模式 | 所有模式,包括 `dontAsk` | Manual、Accept edits、Plan 和 Auto。绕过权限在模式选择器中出现一次启用:通过 Pro 和 Max 计划上的设置切换,或通过 Team 和 Enterprise 计划上的组织策略 |

900| `--dangerously-skip-permissions` | CLI 标志 | 绕过权限模式。在 Pro 和 Max 计划上,在设置 → Claude Code → "允许绕过权限模式"中启用它;在 Team 和 Enterprise 计划上,组织策略控制它 |900| `--dangerously-skip-permissions` | CLI 标志 | 绕过权限模式。在 Pro 和 Max 计划上,在设置 → Claude Code → "允许绕过权限模式"中启用它;在 Team 和 Enterprise 计划上,组织策略控制它 |

901| [第三方提供商](/zh-CN/third-party-integrations) | Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry | Anthropic 的 API 默认。对于网关路由,请参阅[将桌面应用连接到网关](/zh-CN/llm-gateway-connect#desktop-app)。要在 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 或自托管 LLM 网关上运行 Code 选项卡,请参阅 [Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/overview)。 |901| [第三方提供商](/docs/zh-CN/third-party-integrations) | Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry | Anthropic 的 API 默认。对于网关路由,请参阅[将桌面应用连接到网关](/docs/zh-CN/llm-gateway-connect#desktop-app)。要在 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 或自托管 LLM 网关上运行 Code 选项卡,请参阅 [Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/overview)。 |

902| [MCP servers](/zh-CN/mcp) | 在设置文件中配置 | 本地和 SSH 会话的连接器 UI,或设置文件 |902| [MCP servers](/docs/zh-CN/mcp) | 在设置文件中配置 | 本地和 SSH 会话的连接器 UI,或设置文件 |

903| [Plugins](/zh-CN/plugins) | `/plugin` 命令 | 插件管理器 UI |903| [Plugins](/docs/zh-CN/plugins) | `/plugin` 命令 | 插件管理器 UI |

904| @mention 文件 | 基于文本 | 带自动完成;仅本地和 SSH 会话 |904| @mention 文件 | 基于文本 | 带自动完成;仅本地和 SSH 会话 |

905| 文件附件 | 不可用 | 图像、PDF |905| 文件附件 | 不可用 | 图像、PDF |

906| 会话隔离 | [`--worktree`](/zh-CN/cli-reference) 标志 | 自动 worktrees |906| 会话隔离 | [`--worktree`](/docs/zh-CN/cli-reference) 标志 | 自动 worktrees |

907| 多个会话 | 单独的终端 | 侧边栏选项卡 |907| 多个会话 | 单独的终端 | 侧边栏选项卡 |

908| 定期任务 | Cron 作业、CI 管道 | [计划任务](/zh-CN/desktop-scheduled-tasks) |908| 定期任务 | Cron 作业、CI 管道 | [计划任务](/docs/zh-CN/desktop-scheduled-tasks) |

909| 计算机使用 | [通过 `/mcp` 在 macOS 上启用](/zh-CN/computer-use) | [应用和屏幕控制](#let-claude-use-your-computer)在 macOS 和 Windows 上 |909| 计算机使用 | [通过 `/mcp` 在 macOS 上启用](/docs/zh-CN/computer-use) | [应用和屏幕控制](#let-claude-use-your-computer)在 macOS 和 Windows 上 |

910| Dispatch 集成 | 不可用 | [Dispatch 会话](#sessions-from-dispatch)在侧边栏中 |910| Dispatch 集成 | 不可用 | [Dispatch 会话](#sessions-from-dispatch)在侧边栏中 |

911| 脚本和自动化 | [`--print`](/zh-CN/cli-reference)、[Agent SDK](/zh-CN/headless) | 不可用 |911| 脚本和自动化 | [`--print`](/docs/zh-CN/cli-reference)、[Agent SDK](/docs/zh-CN/headless) | 不可用 |

912 912 

913<h3 id="what’s-not-available-in-desktop">913<h3 id="what’s-not-available-in-desktop">

914 Desktop 中不可用的内容914 Desktop 中不可用的内容


916 916 

917以下功能仅在 CLI 或 VS Code 扩展中可用,除非另有说明:917以下功能仅在 CLI 或 VS Code 扩展中可用,除非另有说明:

918 918 

919* **第三方提供商**:Desktop 默认连接到 Anthropic 的 API。要通过网关路由 Desktop,请参阅[将桌面应用连接到网关](/zh-CN/llm-gateway-connect#desktop-app)。企业部署可以通过[托管设置](https://claude.com/docs/third-party/claude-desktop/configuration)配置 Google Cloud 的 Agent Platform 和网关提供商。对于 CLI 中的 Amazon Bedrock 或 Microsoft Foundry,请参阅[快速入门](/zh-CN/quickstart)。作为上述部分的例外,[Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/overview)在 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 或自托管 LLM 网关上运行 Code 选项卡。919* **第三方提供商**:Desktop 默认连接到 Anthropic 的 API。要通过网关路由 Desktop,请参阅[将桌面应用连接到网关](/docs/zh-CN/llm-gateway-connect#desktop-app)。企业部署可以通过[托管设置](https://claude.com/docs/third-party/claude-desktop/configuration)配置 Google Cloud 的 Agent Platform 和网关提供商。对于 CLI 中的 Amazon Bedrock 或 Microsoft Foundry,请参阅[快速入门](/docs/zh-CN/quickstart)。作为上述部分的例外,[Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/overview)在 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 或自托管 LLM 网关上运行 Code 选项卡。

920* **Linux (beta)**:Linux 桌面应用中尚不提供计算机使用。请参阅 [Claude Desktop on Linux](/zh-CN/desktop-linux)。920* **Linux (beta)**:Linux 桌面应用中尚不提供计算机使用。请参阅 [Claude Desktop on Linux](/docs/zh-CN/desktop-linux)。

921* **内联代码建议**:Desktop 不提供自动完成风格的建议。它通过对话提示和显式代码更改工作。921* **内联代码建议**:Desktop 不提供自动完成风格的建议。它通过对话提示和显式代码更改工作。

922* **Agent teams**:并行 Claude Code 会话相互通信在 [CLI](/zh-CN/agent-teams) 中可用,不在 Desktop 中。对于一个会话内的多 agent 工作,使用[动态工作流](/zh-CN/workflows),它在 Desktop 中运行。922* **Agent teams**:并行 Claude Code 会话相互通信在 [CLI](/docs/zh-CN/agent-teams) 中可用,不在 Desktop 中。对于一个会话内的多 agent 工作,使用[动态工作流](/docs/zh-CN/workflows),它在 Desktop 中运行。

923* **Terminal-dialog 命令**:在终端中打开交互式面板的内置命令,其行为在 Code 选项卡中有所不同。直接编辑[设置文件](/zh-CN/settings)来管理权限规则和配置,或从独立 CLI 运行命令。923* **Terminal-dialog 命令**:在终端中打开交互式面板的内置命令,其行为在 Code 选项卡中有所不同。直接编辑[设置文件](/docs/zh-CN/settings)来管理权限规则和配置,或从独立 CLI 运行命令。

924 * 没有参数形式的命令,例如 `/permissions`,回复 `isn't available in this environment`。924 * 没有参数形式的命令,例如 `/permissions`,回复 `isn't available in this environment`。

925 * `/config` 打开设置 → Claude Code。命令后的文本被忽略,所以 `/config theme=dark` 不设置主题。925 * `/config` 打开设置 → Claude Code。命令后的文本被忽略,所以 `/config theme=dark` 不设置主题。

926 926 


928 故障排除928 故障排除

929</h2>929</h2>

930 930 

931下面的部分涵盖特定于桌面应用的问题。对于出现在聊天中的运行时 API 错误,如 `API Error: 500`、`529 Overloaded`、`429` 或 `Prompt is too long`,请参阅[错误参考](/zh-CN/errors)。这些错误及其修复在 CLI、Desktop 和 Web 中是相同的。931下面的部分涵盖特定于桌面应用的问题。对于出现在聊天中的运行时 API 错误,如 `API Error: 500`、`529 Overloaded`、`429` 或 `Prompt is too long`,请参阅[错误参考](/docs/zh-CN/errors)。这些错误及其修复在 CLI、Desktop 和 Web 中是相同的。

932 932 

933<h3 id="check-your-version">933<h3 id="check-your-version">

934 检查你的版本934 检查你的版本


959如果应用打开但显示空白或无响应的屏幕:959如果应用打开但显示空白或无响应的屏幕:

960 960 

9611. 重启应用。9611. 重启应用。

9622. 检查待处理的更新。在 macOS 和 Windows 上,应用在启动时自动更新;在 Linux 上,通过 apt 更新,如 [Claude Desktop on Linux](/zh-CN/desktop-linux) 中所述。9622. 检查待处理的更新。在 macOS 和 Windows 上,应用在启动时自动更新;在 Linux 上,通过 apt 更新,如 [Claude Desktop on Linux](/docs/zh-CN/desktop-linux) 中所述。

9633. 在托管网络上,确认你的防火墙允许[网络访问要求](#network-access-requirements)中的 CDN 主机。9633. 在托管网络上,确认你的防火墙允许[网络访问要求](#network-access-requirements)中的 CDN 主机。

9644. 在 Windows 上,在 **Windows 日志 → 应用程序** 下的事件查看器中检查崩溃日志。9644. 在 Windows 上,在 **Windows 日志 → 应用程序** 下的事件查看器中检查崩溃日志。

965 965 

Details

8 8 

9插件通过 skills、agents、hooks 和 MCP servers 扩展 Claude Code。插件市场是帮助您发现和安装这些扩展的目录,无需自己构建。9插件通过 skills、agents、hooks 和 MCP servers 扩展 Claude Code。插件市场是帮助您发现和安装这些扩展的目录,无需自己构建。

10 10 

11想要创建和分发自己的市场?请参阅[创建和分发插件市场](/zh-CN/plugin-marketplaces)。11想要创建和分发自己的市场?请参阅[创建和分发插件市场](/docs/zh-CN/plugin-marketplaces)。

12 12 

13<h2 id="how-marketplaces-work">13<h2 id="how-marketplaces-work">

14 市场如何工作14 市场如何工作


43如果 Claude Code 报告在任何市场中找不到该插件,您的市场要么缺失,要么已过期。运行 `/plugin marketplace update claude-plugins-official` 以刷新它,或如果您之前未添加过,运行 `/plugin marketplace add anthropics/claude-plugins-official`。然后重试安装。43如果 Claude Code 报告在任何市场中找不到该插件,您的市场要么缺失,要么已过期。运行 `/plugin marketplace update claude-plugins-official` 以刷新它,或如果您之前未添加过,运行 `/plugin marketplace add anthropics/claude-plugins-official`。然后重试安装。

44 44 

45<Note>45<Note>

46 官方市场由 Anthropic 维护,包含由 Anthropic 自行决定的内容。应用内提交表单将插件添加到[社区市场](#community-marketplace),而不是官方市场。要独立分发插件,请[创建您自己的市场](/zh-CN/plugin-marketplaces)并与用户共享。46 官方市场由 Anthropic 维护,包含由 Anthropic 自行决定的内容。应用内提交表单将插件添加到[社区市场](#community-marketplace),而不是官方市场。要独立分发插件,请[创建您自己的市场](/docs/zh-CN/plugin-marketplaces)并与用户共享。

47</Note>47</Note>

48 48 

49官方市场包括多个插件类别:49官方市场包括多个插件类别:


70| Swift | `swift-lsp` | `sourcekit-lsp` |70| Swift | `swift-lsp` | `sourcekit-lsp` |

71| TypeScript | `typescript-lsp` | `typescript-language-server` |71| TypeScript | `typescript-lsp` | `typescript-language-server` |

72 72 

73您也可以[为其他语言创建自己的 LSP 插件](/zh-CN/plugins-reference#lsp-servers)。73您也可以[为其他语言创建自己的 LSP 插件](/docs/zh-CN/plugins-reference#lsp-servers)。

74 74 

75<Note>75<Note>

76 如果在安装插件后在 `/plugin` 错误选项卡中看到 `Executable not found in $PATH`,请从上表安装所需的二进制文件。76 如果在安装插件后在 `/plugin` 错误选项卡中看到 `Executable not found in $PATH`,请从上表安装所需的二进制文件。


91 外部集成91 外部集成

92</h3>92</h3>

93 93 

94这些插件捆绑预配置的 [MCP servers](/zh-CN/mcp),以便您可以连接 Claude 到外部服务,无需手动设置:94这些插件捆绑预配置的 [MCP servers](/docs/zh-CN/mcp),以便您可以连接 Claude 到外部服务,无需手动设置:

95 95 

96* **源代码控制**:`github`、`gitlab`96* **源代码控制**:`github`、`gitlab`

97* **项目管理**:`atlassian`(Jira/Confluence)、`asana`、`linear`、`notion`97* **项目管理**:`atlassian`(Jira/Confluence)、`asana`、`linear`、`notion`


104 自动安全审查104 自动安全审查

105</h3>105</h3>

106 106 

107`security-guidance` 插件审查 Claude 所做的每项更改是否存在常见漏洞,并指示 Claude 在同一会话中修复发现的问题。有关其检查内容以及如何添加特定于项目的规则,请参阅[在 Claude 编写代码时捕获安全问题](/zh-CN/security-guidance)。107`security-guidance` 插件审查 Claude 所做的每项更改是否存在常见漏洞,并指示 Claude 在同一会话中修复发现的问题。有关其检查内容以及如何添加特定于项目的规则,请参阅[在 Claude 编写代码时捕获安全问题](/docs/zh-CN/security-guidance)。

108 108 

109<h3 id="development-workflows">109<h3 id="development-workflows">

110 开发工作流110 开发工作流


142/plugin install <plugin-name>@claude-community142/plugin install <plugin-name>@claude-community

143```143```

144 144 

145要将您自己的插件提交到社区市场,请参阅创建插件指南中的[将您的插件提交到社区市场](/zh-CN/plugins#submit-your-plugin-to-the-community-marketplace)。145要将您自己的插件提交到社区市场,请参阅创建插件指南中的[将您的插件提交到社区市场](/docs/zh-CN/plugins#submit-your-plugin-to-the-community-marketplace)。

146 146 

147<h2 id="try-it-add-the-demo-marketplace">147<h2 id="try-it-add-the-demo-marketplace">

148 尝试:添加演示市场148 尝试:添加演示市场


169 * **市场**:添加、删除或更新已添加的市场169 * **市场**:添加、删除或更新已添加的市场

170 * **错误**:查看任何插件加载错误170 * **错误**:查看任何插件加载错误

171 171 

172 转到**发现**选项卡以查看您刚添加的市场中的插件。{/* min-version: 2.1.154 */}当您的管理员通过 [`pluginSuggestionMarketplaces`](/zh-CN/settings#available-settings) 托管设置将市场列入允许列表时,标记为与您当前工作目录相关的插件会在顶部固定,并带有**建议用于此目录**标签。172 转到**发现**选项卡以查看您刚添加的市场中的插件。当您的管理员通过 [`pluginSuggestionMarketplaces`](/docs/zh-CN/settings#available-settings) 托管设置将市场列入允许列表时,标记为与您当前工作目录相关的插件会在顶部固定,并带有**建议用于此目录**标签。

173 </Step>173 </Step>

174 174 

175 <Step title="安装插件">175 <Step title="安装插件">

176 选择一个插件以查看其详细信息。详细信息窗格显示插件包含的内容及其成本:176 选择一个插件以查看其详细信息。详细信息窗格显示插件包含的内容及其成本:

177 177 

178 * {/* min-version: 2.1.143 */}**上下文成本**估计,因此您可以查看插件将在每个回合中向您的[上下文窗口](/zh-CN/features-overview#understand-context-costs)添加多少个令牌(Claude Code v2.1.143 及更高版本)178 * **上下文成本**估计,因此您可以查看插件将在每个回合中向您的[上下文窗口](/docs/zh-CN/features-overview#understand-context-costs)添加多少个令牌(Claude Code v2.1.143 及更高版本)

179 * {/* min-version: 2.1.144 */}插件的**最后更新**日期(v2.1.144 及更高版本)179 * 插件的**最后更新**日期(v2.1.144 及更高版本)

180 * {/* min-version: 2.1.145 */}一个**将安装**部分,列出插件的命令、agents、skills、hooks 和 MCP 及 LSP 服务器,因此您可以在安装前查看它添加的确切内容(v2.1.145 及更高版本)180 * 一个**将安装**部分,列出插件的命令、agents、skills、hooks 和 MCP 及 LSP 服务器,因此您可以在安装前查看它添加的确切内容(v2.1.145 及更高版本)

181 181 

182 选择安装范围:182 选择安装范围:

183 183 


193 /plugin install commit-commands@claude-code-plugins193 /plugin install commit-commands@claude-code-plugins

194 ```194 ```

195 195 

196 请参阅[配置范围](/zh-CN/settings#configuration-scopes)以了解有关范围的更多信息。196 请参阅[配置范围](/docs/zh-CN/settings#configuration-scopes)以了解有关范围的更多信息。

197 </Step>197 </Step>

198 198 

199 <Step title="使用您的新插件">199 <Step title="使用您的新插件">


293```293```

294 294 

295<Note>295<Note>

296 与基于 Git 的市场相比,基于 URL 的市场有一些限制。如果在安装插件时遇到"路径未找到"错误,请参阅[故障排除](/zh-CN/plugin-marketplaces#plugins-with-relative-paths-fail-in-url-based-marketplaces)。296 与基于 Git 的市场相比,基于 URL 的市场有一些限制。如果在安装插件时遇到"路径未找到"错误,请参阅[故障排除](/docs/zh-CN/plugin-marketplaces#plugins-with-relative-paths-fail-in-url-based-marketplaces)。

297</Note>297</Note>

298 298 

299<h2 id="install-plugins">299<h2 id="install-plugins">


306/plugin install plugin-name@marketplace-name306/plugin install plugin-name@marketplace-name

307```307```

308 308 

309该命令打开该插件的详情,您可以在其中选择[安装范围](/zh-CN/settings#configuration-scopes)。当您运行 `/plugin`,转到**发现**选项卡,然后在插件上按 **Enter** 时,您会看到相同的选择:309该命令打开该插件的详情,您可以在其中选择[安装范围](/docs/zh-CN/settings#configuration-scopes)。当您运行 `/plugin`,转到**发现**选项卡,然后在插件上按 **Enter** 时,您会看到相同的选择:

310 310 

311* **用户范围**(默认):在所有项目中为自己安装311* **用户范围**(默认):在所有项目中为自己安装

312* **项目范围**:为此存储库上的所有协作者安装,这会将插件添加到 `.claude/settings.json`312* **项目范围**:为此存储库上的所有协作者安装,这会将插件添加到 `.claude/settings.json`

313* **本地范围**:仅在此存储库中为自己安装,不与协作者共享313* **本地范围**:仅在此存储库中为自己安装,不与协作者共享

314 314 

315要在没有交互式步骤的情况下安装,请使用 [`claude plugin install`](/zh-CN/plugins-reference#plugin-install) shell 命令,该命令默认安装到用户范围,除非您传递 `--scope`。315要在没有交互式步骤的情况下安装,请使用 [`claude plugin install`](/docs/zh-CN/plugins-reference#plugin-install) shell 命令,该命令默认安装到用户范围,除非您传递 `--scope`。

316 316 

317您也可能看到具有**托管**范围的插件。这些由管理员通过[托管设置](/zh-CN/settings#settings-files)安装,无法修改。317您也可能看到具有**托管**范围的插件。这些由管理员通过[托管设置](/docs/zh-CN/settings#settings-files)安装,无法修改。

318 318 

319<Warning>319<Warning>

320 在安装插件之前,请确保您信任该插件。Anthropic 不控制插件中包含的 MCP servers、文件或其他软件,也无法验证它们是否按预期工作。检查每个插件的主页以获取更多信息。320 在安装插件之前,请确保您信任该插件。Anthropic 不控制插件中包含的 MCP servers、文件或其他软件,也无法验证它们是否按预期工作。检查每个插件的主页以获取更多信息。


343* 您的组织管理的插件或您使用 `--plugin-dir` 加载的插件343* 您的组织管理的插件或您使用 `--plugin-dir` 加载的插件

344* 贡献主题、输出样式、监视器或工作流的插件,因为这些提供的价值无需跟踪调用344* 贡献主题、输出样式、监视器或工作流的插件,因为这些提供的价值无需跟踪调用

345 345 

346当您的组织使用 [`strictKnownMarketplaces`](/zh-CN/settings#strictknownmarketplaces) 限制市场时,**最近未使用**标题和**最后使用**行都被隐藏。346当您的组织使用 [`strictKnownMarketplaces`](/docs/zh-CN/settings#strictknownmarketplaces) 限制市场时,**最近未使用**标题和**最后使用**行都被隐藏。

347 347 

348插件的[语言服务器](/zh-CN/plugins#add-lsp-servers-to-your-plugin)在提供诊断或回答代码导航请求时被计为已使用,因此其服务器在您的会话中处于活跃状态的 LSP 插件不会被列为未使用。在 v2.1.203 之前,无法计算语言服务器活动作为使用,因此贡献 LSP 服务器的插件完全免除,与主题和输出样式插件仍然相同的方式。348插件的[语言服务器](/docs/zh-CN/plugins#add-lsp-servers-to-your-plugin)在提供诊断或回答代码导航请求时被计为已使用,因此其服务器在您的会话中处于活跃状态的 LSP 插件不会被列为未使用。在 v2.1.203 之前,无法计算语言服务器活动作为使用,因此贡献 LSP 服务器的插件完全免除,与主题和输出样式插件仍然相同的方式。

349 349 

350在计算语言服务器活动的版本的第一个会话中,还会重置每个尚未记录任何使用的 LSP 插件的使用记录,因此 Claude Code 不会根据在其服务器活动被跟踪之前记录的数据将您之前安装的插件判断为未使用。在 v2.1.206 之前,该第一个会话可能会在**最近未使用**下列出一个活跃使用的 LSP 插件并建议审查它。350在计算语言服务器活动的版本的第一个会话中,还会重置每个尚未记录任何使用的 LSP 插件的使用记录,因此 Claude Code 不会根据在其服务器活动被跟踪之前记录的数据将您之前安装的插件判断为未使用。在 v2.1.206 之前,该第一个会话可能会在**最近未使用**下列出一个活跃使用的 LSP 插件并建议审查它。

351 351 


373/plugin enable plugin-name@marketplace-name373/plugin enable plugin-name@marketplace-name

374```374```

375 375 

376在这些标识符中,`plugin-name` 是 [marketplace entry](/zh-CN/plugin-marketplaces#plugin-entries) 中插件的 `name`,它可能与插件自己的 `plugin.json` 中的 `name` 不同。376在这些标识符中,`plugin-name` 是 [marketplace entry](/docs/zh-CN/plugin-marketplaces#plugin-entries) 中插件的 `name`,它可能与插件自己的 `plugin.json` 中的 `name` 不同。

377 377 

378从 Claude Code v2.1.195 开始,`/plugin` 界面中的**启用**和**禁用**适用于两个名称不同的插件,`/plugin enable` 和 `/plugin disable` 接受任一名称。当您在早期版本中禁用此类插件时,Claude Code 报告 `already disabled` 并将其保持启用状态。378从 Claude Code v2.1.195 开始,`/plugin` 界面中的**启用**和**禁用**适用于两个名称不同的插件,`/plugin enable` 和 `/plugin disable` 接受任一名称。当您在早期版本中禁用此类插件时,Claude Code 报告 `already disabled` 并将其保持启用状态。

379 379 


402 402 

403Claude Code 重新加载所有活跃插件,并显示插件、skills、agents、hooks、插件 MCP servers 和插件 LSP servers 的计数。403Claude Code 重新加载所有活跃插件,并显示插件、skills、agents、hooks、插件 MCP servers 和插件 LSP servers 的计数。

404 404 

405重新加载在下一个请求时会产生令牌成本:新加载的组件在附加到对话的内容中宣布自己,而现有历史记录仍然从 prompt cache 读取。提供 MCP servers 的插件在其工具未被 [tool search](/zh-CN/mcp#scale-with-mcp-tool-search) 延迟时成本更高:该更改使缓存失效,下一个请求重新读取整个对话。{/* min-version: 2.1.163 */}在这种情况下,`/reload-plugins` 显示警告并不应用重新加载;传递 `--force` 以强制应用。有关详细信息,请参阅[启用或禁用插件](/zh-CN/prompt-caching#enabling-or-disabling-a-plugin)。405重新加载在下一个请求时会产生令牌成本:新加载的组件在附加到对话的内容中宣布自己,而现有历史记录仍然从 prompt cache 读取。提供 MCP servers 的插件在其工具未被 [tool search](/docs/zh-CN/mcp#scale-with-mcp-tool-search) 延迟时成本更高:该更改使缓存失效,下一个请求重新读取整个对话。在这种情况下,`/reload-plugins` 显示警告并不应用重新加载;传递 `--force` 以强制应用。有关详细信息,请参阅[启用或禁用插件](/docs/zh-CN/prompt-caching#enabling-or-disabling-a-plugin)。

406 406 

407<h2 id="manage-marketplaces">407<h2 id="manage-marketplaces">

408 管理市场408 管理市场


466 466 

467官方 Anthropic 市场默认启用自动更新。第三方和本地开发市场默认禁用自动更新。467官方 Anthropic 市场默认启用自动更新。第三方和本地开发市场默认禁用自动更新。

468 468 

469管理员还可以在托管设置中的每个 [`extraKnownMarketplaces`](/zh-CN/settings#extraknownmarketplaces) 条目上设置 `"autoUpdate": true` 以为组织市场启用自动更新,而无需每个用户都切换它。469管理员还可以在托管设置中的每个 [`extraKnownMarketplaces`](/docs/zh-CN/settings#extraknownmarketplaces) 条目上设置 `"autoUpdate": true` 以为组织市场启用自动更新,而无需每个用户都切换它。

470 470 

471要完全禁用 Claude Code 和所有插件的所有自动更新,请设置 `DISABLE_AUTOUPDATER` 环境变量。有关详细信息,请参阅[自动更新](/zh-CN/setup#auto-updates)。471要完全禁用 Claude Code 和所有插件的所有自动更新,请设置 `DISABLE_AUTOUPDATER` 环境变量。有关详细信息,请参阅[自动更新](/docs/zh-CN/setup#auto-updates)。

472 472 

473要在禁用 Claude Code 自动更新的同时保持插件自动更新启用,请设置 `FORCE_AUTOUPDATE_PLUGINS=1` 以及 `DISABLE_AUTOUPDATER`:473要在禁用 Claude Code 自动更新的同时保持插件自动更新启用,请设置 `FORCE_AUTOUPDATE_PLUGINS=1` 以及 `DISABLE_AUTOUPDATER`:

474 474 


502}502}

503```503```

504 504 

505有关完整配置选项(包括 `extraKnownMarketplaces` 和 `enabledPlugins`),请参阅[插件设置](/zh-CN/settings#plugin-settings)。505有关完整配置选项(包括 `extraKnownMarketplaces` 和 `enabledPlugins`),请参阅[插件设置](/docs/zh-CN/settings#plugin-settings)。

506 506 

507<h2 id="security">507<h2 id="security">

508 安全性508 安全性

509</h2>509</h2>

510 510 

511插件和市场是高度受信任的组件,可以使用您的用户权限在您的机器上执行任意代码。仅从您信任的来源安装插件和添加市场。组织可以使用[托管市场限制](/zh-CN/plugin-marketplaces#managed-marketplace-restrictions)限制用户允许添加的市场。511插件和市场是高度受信任的组件,可以使用您的用户权限在您的机器上执行任意代码。仅从您信任的来源安装插件和添加市场。组织可以使用[托管市场限制](/docs/zh-CN/plugin-marketplaces#managed-marketplace-restrictions)限制用户允许添加的市场。

512 512 

513<h2 id="troubleshooting">513<h2 id="troubleshooting">

514 故障排除514 故障排除


5242. **更新 Claude Code**:5242. **更新 Claude Code**:

525 * **Homebrew**:`brew upgrade claude-code`,或如果您安装了该 cask,则为 `brew upgrade claude-code@latest`525 * **Homebrew**:`brew upgrade claude-code`,或如果您安装了该 cask,则为 `brew upgrade claude-code@latest`

526 * **npm**:`npm install -g @anthropic-ai/claude-code@latest`526 * **npm**:`npm install -g @anthropic-ai/claude-code@latest`

527 * **本地安装程序**:从[设置](/zh-CN/setup)重新运行安装命令527 * **本地安装程序**:从[设置](/docs/zh-CN/setup)重新运行安装命令

5283. **重启 Claude Code**:更新后,重启您的终端并再次运行 `claude`。5283. **重启 Claude Code**:更新后,重启您的终端并再次运行 `claude`。

529 529 

530<h3 id="common-issues">530<h3 id="common-issues">


536* **安装后找不到文件**:插件被复制到缓存,因此引用插件目录外文件的路径将不起作用536* **安装后找不到文件**:插件被复制到缓存,因此引用插件目录外文件的路径将不起作用

537* **插件 skills 未出现**:使用 `rm -rf ~/.claude/plugins/cache` 清除缓存,重启 Claude Code,然后重新安装插件。537* **插件 skills 未出现**:使用 `rm -rf ~/.claude/plugins/cache` 清除缓存,重启 Claude Code,然后重新安装插件。

538 538 

539有关详细的故障排除和解决方案,请参阅市场指南中的[故障排除](/zh-CN/plugin-marketplaces#troubleshooting)。有关调试工具,请参阅[调试和开发工具](/zh-CN/plugins-reference#debugging-and-development-tools)。539有关详细的故障排除和解决方案,请参阅市场指南中的[故障排除](/docs/zh-CN/plugin-marketplaces#troubleshooting)。有关调试工具,请参阅[调试和开发工具](/docs/zh-CN/plugins-reference#debugging-and-development-tools)。

540 540 

541<h3 id="code-intelligence-issues">541<h3 id="code-intelligence-issues">

542 代码智能问题542 代码智能问题


550 后续步骤550 后续步骤

551</h2>551</h2>

552 552 

553* **构建您自己的插件**:请参阅[插件](/zh-CN/plugins)以创建 skills、agents 和 hooks553* **构建您自己的插件**:请参阅[插件](/docs/zh-CN/plugins)以创建 skills、agents 和 hooks

554* **创建市场**:请参阅[创建插件市场](/zh-CN/plugin-marketplaces)以将插件分发给您的团队或社区554* **创建市场**:请参阅[创建插件市场](/docs/zh-CN/plugin-marketplaces)以将插件分发给您的团队或社区

555* **技术参考**:请参阅[插件参考](/zh-CN/plugins-reference)以获取完整规范555* **技术参考**:请参阅[插件参考](/docs/zh-CN/plugins-reference)以获取完整规范

errors.md +148 −148

Details

6 6 

7> 查找 Claude Code 运行时错误消息,了解每个错误的含义以及如何修复。7> 查找 Claude Code 运行时错误消息,了解每个错误的含义以及如何修复。

8 8 

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

10 10 

11这些错误和恢复命令适用于 CLI、[桌面应用](/zh-CN/desktop)和[网络上的 Claude Code](/zh-CN/claude-code-on-the-web),因为这三个都包装了相同的 Claude Code CLI。对于特定于表面的问题,请参阅该表面页面上的故障排除部分。11这些错误和恢复命令适用于 CLI、[桌面应用](/docs/zh-CN/desktop)和[网络上的 Claude Code](/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)。


97 自动重试97 自动重试

98</h2>98</h2>

99 99 

100Claude Code 在向您显示错误之前会重试瞬时故障。服务器错误、过载响应、请求超时、临时 429 限流和断开的连接都会以指数退避方式重试最多 10 次。{/* min-version: 2.1.198 */}从 v2.1.198 开始,这涵盖了在任何可见输出流出之前在响应中途断开的连接:Claude Code 使用相同的退避重新发出请求,轮次继续而不是停止并显示连接错误。{/* min-version: 2.1.199 */}从 v2.1.199 开始,不携带您计划配额标头的临时 429 限流在您使用 claude.ai 订阅登录时也会重试;早期版本仅对 API 密钥和企业登录重试它们。100Claude Code 在向您显示错误之前会重试瞬时故障。服务器错误、过载响应、请求超时、临时 429 限流和断开的连接都会以指数退避方式重试最多 10 次。从 v2.1.198 开始,这涵盖了在任何可见输出流出之前在响应中途断开的连接:Claude Code 使用相同的退避重新发出请求,轮次继续而不是停止并显示连接错误。从 v2.1.199 开始,不携带您计划配额标头的临时 429 限流在您使用 claude.ai 订阅登录时也会重试;早期版本仅对 API 密钥和企业登录重试它们。

101 101 

102某些故障类别不会重试,因为重试无法成功:102某些故障类别不会重试,因为重试无法成功:

103 103 

104* {/* min-version: 2.1.199 */}从 v2.1.199 开始,TLS 证书验证失败(例如 TLS 检查代理、缺少 `NODE_EXTRA_CA_CERTS` 包或过期证书)在第一次尝试时失败,因此修复立即出现,而不是在完整重试预算之后。请参阅 [SSL 证书错误](#ssl-certificate-errors)。瞬时 TLS 条件(例如握手超时)仍然会重试。104* 从 v2.1.199 开始,TLS 证书验证失败(例如 TLS 检查代理、缺少 `NODE_EXTRA_CA_CERTS` 包或过期证书)在第一次尝试时失败,因此修复立即出现,而不是在完整重试预算之后。请参阅 [SSL 证书错误](#ssl-certificate-errors)。瞬时 TLS 条件(例如握手超时)仍然会重试。

105* {/* min-version: 2.1.199 */}从 v2.1.199 开始,在 Claude 已经流出可见输出后到达的服务器错误会保留部分响应并附加[不完整响应通知](#the-response-above-may-be-incomplete),而不是重试,因为重新运行请求可能会执行相同的工具两次。早期版本丢弃了部分输出并将轮次报告为错误。105* 从 v2.1.199 开始,在 Claude 已经流出可见输出后到达的服务器错误会保留部分响应并附加[不完整响应通知](#the-response-above-may-be-incomplete),而不是重试,因为重新运行请求可能会执行相同的工具两次。早期版本丢弃了部分输出并将轮次报告为错误。

106* {/* min-version: 2.1.208 */}[Amazon Bedrock 流式响应具有意外的内容类型](#bedrock-streaming-response-has-an-unexpected-content-type)在第一次尝试时失败,因为网关或代理重写响应会以相同方式重写重试。需要 Claude Code v2.1.208 或更高版本。106* [Amazon Bedrock 流式响应具有意外的内容类型](#bedrock-streaming-response-has-an-unexpected-content-type)在第一次尝试时失败,因为网关或代理重写响应会以相同方式重写重试。需要 Claude Code v2.1.208 或更高版本。

107 107 

108重试时,微调器在错误标签后显示 `Retrying in Ns · attempt x/y` 倒计时。标签命名了第一次尝试中您可以立即采取行动的特定原因:网络已关闭、TLS 握手失败或您达到了速率限制。对于其他错误,它最初读作 `API error`。{/* min-version: 2.1.198 */}从 v2.1.198 开始,它切换到第三次尝试中的特定原因,或当 `CLAUDE_CODE_MAX_RETRIES` 允许少于三次时在最后一次尝试;早期版本仅在最后一次尝试时切换。108重试时,微调器在错误标签后显示 `Retrying in Ns · attempt x/y` 倒计时。标签命名了第一次尝试中您可以立即采取行动的特定原因:网络已关闭、TLS 握手失败或您达到了速率限制。对于其他错误,它最初读作 `API error`。从 v2.1.198 开始,它切换到第三次尝试中的特定原因,或当 `CLAUDE_CODE_MAX_RETRIES` 允许少于三次时在最后一次尝试;早期版本仅在最后一次尝试时切换。

109 109 

110{/* min-version: 2.1.198 */}从 v2.1.198 开始,重试期间会抑制通常的微调器提示。一旦错误原因被揭示,如果故障是 529 过载,倒计时下方的行也会命名检查服务状态的位置:Anthropic API 上的 `status.claude.com`,或其他配置上的提供商或网关主机。110从 v2.1.198 开始,重试期间会抑制通常的微调器提示。一旦错误原因被揭示,如果故障是 529 过载,倒计时下方的行也会命名检查服务状态的位置:Anthropic API 上的 `status.claude.com`,或其他配置上的提供商或网关主机。

111 111 

112{/* min-version: 2.1.185 */}如果在请求仍然待处理时,响应流上 20 秒内没有数据到达,微调器会显示 `Waiting for API response · will retry in … · check your network`,然后再进行任何重试。请求尚未失败:倒计时运行到 Claude Code 中止停滞连接并重试的点,因此一旦数据恢复或重试成功,横幅就会自动清除。从 v2.1.185 开始,阈值为 20 秒;早期版本在 10 秒后显示横幅,措辞不同。如果它在每次尝试时都重新出现,请将其视为[网络问题](#unable-to-connect-to-api)。112如果在请求仍然待处理时,响应流上 20 秒内没有数据到达,微调器会显示 `Waiting for API response · will retry in … · check your network`,然后再进行任何重试。请求尚未失败:倒计时运行到 Claude Code 中止停滞连接并重试的点,因此一旦数据恢复或重试成功,横幅就会自动清除。从 v2.1.185 开始,阈值为 20 秒;早期版本在 10 秒后显示横幅,措辞不同。如果它在每次尝试时都重新出现,请将其视为[网络问题](#unable-to-connect-to-api)。

113 113 

114当您看到本页上的错误之一时,这些重试已经用尽,除非它属于不会重试的类别,例如证书验证失败。您可以使用这些环境变量调整行为:114当您看到本页上的错误之一时,这些重试已经用尽,除非它属于不会重试的类别,例如证书验证失败。您可以使用这些环境变量调整行为:

115 115 

116| 变量 | 默认值 | 效果 |116| 变量 | 默认值 | 效果 |

117| :---------------------------------------------- | :----- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |117| :---------------------------------------------- | :----- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

118| [`CLAUDE_CODE_MAX_RETRIES`](/zh-CN/env-vars) | 10 | 重试次数。{/* min-version: 2.1.186 */}从 v2.1.186 开始上限为 15;{/* min-version: 2.1.199 */}从 v2.1.199 开始 `CLAUDE_CODE_RETRY_WATCHDOG` 提高默认值并移除上限。降低它以在脚本中更快地显示故障。 |118| [`CLAUDE_CODE_MAX_RETRIES`](/docs/zh-CN/env-vars) | 10 | 重试次数。从 v2.1.186 开始上限为 15;从 v2.1.199 开始 `CLAUDE_CODE_RETRY_WATCHDOG` 提高默认值并移除上限。降低它以在脚本中更快地显示故障。 |

119| [`CLAUDE_CODE_RETRY_WATCHDOG`](/zh-CN/env-vars) | 未设置 | 在 CI 作业等无人值守会话中设置为 `1`,以无限期重试 `429` 和 `529` 容量错误,而不是在 `CLAUDE_CODE_MAX_RETRIES` 次尝试后失败。{/* min-version: 2.1.199 */}从 v2.1.199 开始,它也提高了其他瞬时错误(例如服务器错误、超时和断开的连接)的默认重试计数至 300,大约三小时的退避,如果您显式设置该变量,则移除 `CLAUDE_CODE_MAX_RETRIES` 的 15 上限。 |119| [`CLAUDE_CODE_RETRY_WATCHDOG`](/docs/zh-CN/env-vars) | 未设置 | 在 CI 作业等无人值守会话中设置为 `1`,以无限期重试 `429` 和 `529` 容量错误,而不是在 `CLAUDE_CODE_MAX_RETRIES` 次尝试后失败。从 v2.1.199 开始,它也提高了其他瞬时错误(例如服务器错误、超时和断开的连接)的默认重试计数至 300,大约三小时的退避,如果您显式设置该变量,则移除 `CLAUDE_CODE_MAX_RETRIES` 的 15 上限。 |

120| [`API_TIMEOUT_MS`](/zh-CN/env-vars) | 600000 | 每个请求的超时时间(毫秒)。为慢速网络或代理提高它。 |120| [`API_TIMEOUT_MS`](/docs/zh-CN/env-vars) | 600000 | 每个请求的超时时间(毫秒)。为慢速网络或代理提高它。 |

121 121 

122<h2 id="server-errors">122<h2 id="server-errors">

123 服务器错误123 服务器错误


196API Error: Response stalled mid-stream. The response above may be incomplete.196API Error: Response stalled mid-stream. The response above may be incomplete.

197```197```

198 198 

199* {/* min-version: 2.1.199 */}}`Server error mid-response`:流中的过载或 5xx 服务器错误。此变体需要 Claude Code v2.1.199 或更高版本;在此之前,该情况会丢弃部分输出并将整个轮次报告为错误。199* }`Server error mid-response`:流中的过载或 5xx 服务器错误。此变体需要 Claude Code v2.1.199 或更高版本;在此之前,该情况会丢弃部分输出并将整个轮次报告为错误。

200* `Connection closed mid-response`:连接断开。200* `Connection closed mid-response`:连接断开。

201* `Response stalled mid-stream`:流停止发送数据。201* `Response stalled mid-stream`:流停止发送数据。

202 202 


210 自动模式无法确定操作的安全性210 自动模式无法确定操作的安全性

211</h3>211</h3>

212 212 

213[自动模式](/zh-CN/permission-modes#eliminate-prompts-with-auto-mode)用来分类操作的模型无法做出决定,因此自动模式没有自动批准该操作。您看到的消息取决于分类器失败的原因。213[自动模式](/docs/zh-CN/permission-modes#eliminate-prompts-with-auto-mode)用来分类操作的模型无法做出决定,因此自动模式没有自动批准该操作。您看到的消息取决于分类器失败的原因。

214 214 

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

216 216 


224 224 

225* 几秒钟后重试;Claude 会看到相同的消息,通常会自动重试225* 几秒钟后重试;Claude 会看到相同的消息,通常会自动重试

226* 如果重试继续失败,继续执行只读任务,稍后再回到被阻止的操作226* 如果重试继续失败,继续执行只读任务,稍后再回到被阻止的操作

227* 这是暂时的,与[自动模式资格](/zh-CN/permission-modes#eliminate-prompts-with-auto-mode)无关;您不需要更改设置227* 这是暂时的,与[自动模式资格](/docs/zh-CN/permission-modes#eliminate-prompts-with-auto-mode)无关;您不需要更改设置

228 228 

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

230 230 


247 247 

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

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

250* 切换到不同的[权限模式](/zh-CN/permission-modes),以便在提示时可以批准该操作,或开始一个没有触发内容的新对话250* 切换到不同的[权限模式](/docs/zh-CN/permission-modes),以便在提示时可以批准该操作,或开始一个没有触发内容的新对话

251 251 

252当对话大小超过分类器的上下文窗口时:252当对话大小超过分类器的上下文窗口时:

253 253 


255Auto mode classifier transcript exceeded context window — falling back to manual approval (try /compact to reduce conversation size)255Auto mode classifier transcript exceeded context window — falling back to manual approval (try /compact to reduce conversation size)

256```256```

257 257 

258在交互式会话中,自动模式会为该操作回退到正常权限提示,以便您可以手动批准或拒绝它。在[非交互式模式](/zh-CN/headless)中,运行会中止,因为记录只会增长,重试无法成功。258在交互式会话中,自动模式会为该操作回退到正常权限提示,以便您可以手动批准或拒绝它。在[非交互式模式](/docs/zh-CN/headless)中,运行会中止,因为记录只会增长,重试无法成功。

259 259 

260**应该做什么:**260**应该做什么:**

261 261 


266 代理因 API 错误而提前终止266 代理因 API 错误而提前终止

267</h3>267</h3>

268 268 

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

270 270 

271```text theme={null}271```text theme={null}

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


275**应该做什么:**275**应该做什么:**

276 276 

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

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

279 279 

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

281 281 

282<h2 id="usage-limits">282<h2 id="usage-limits">

283 使用限制283 使用限制


309* 运行 `/usage-credits` 在 Pro 和 Max 上购买额外使用量,或在 Team 和 Enterprise 上向您的管理员请求。有关如何计费,请参阅[付费计划的使用额度](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans)。309* 运行 `/usage-credits` 在 Pro 和 Max 上购买额外使用量,或在 Team 和 Enterprise 上向您的管理员请求。有关如何计费,请参阅[付费计划的使用额度](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans)。

310* 要升级您的计划以获得更高的基础限制,请参阅 [claude.com/pricing](https://claude.com/pricing)310* 要升级您的计划以获得更高的基础限制,请参阅 [claude.com/pricing](https://claude.com/pricing)

311 311 

312要在达到限制之前监控您的剩余额度,请将 `rate_limits` 字段添加到[自定义状态行](/zh-CN/statusline#rate-limit-usage),或在桌面应用中单击模型选择器旁边的[使用量环](/zh-CN/desktop#check-usage)。312要在达到限制之前监控您的剩余额度,请将 `rate_limits` 字段添加到[自定义状态行](/docs/zh-CN/statusline#rate-limit-usage),或在桌面应用中单击模型选择器旁边的[使用量环](/docs/zh-CN/desktop#check-usage)。

313 313 

314<h3 id="usage-credits-required-for-1m-context">314<h3 id="usage-credits-required-for-1m-context">

315 1M 上下文需要使用额度315 1M 上下文需要使用额度


321API Error: Usage credits required for 1M context · run /usage-credits to turn them on, or /model to switch to standard context321API Error: Usage credits required for 1M context · run /usage-credits to turn them on, or /model to switch to standard context

322```322```

323 323 

324这是一项权利检查,而不是配额耗尽。即使您的会话和每周额度仍有容量,它也会触发。有关哪些计划直接包含 1M 上下文以及哪些需要使用额度,请参阅[扩展上下文](/zh-CN/model-config#extended-context)。324这是一项权利检查,而不是配额耗尽。即使您的会话和每周额度仍有容量,它也会触发。有关哪些计划直接包含 1M 上下文以及哪些需要使用额度,请参阅[扩展上下文](/docs/zh-CN/model-config#extended-context)。

325 325 

326{/* min-version: 2.1.172 */}当此错误在对话中期出现,因为上下文增长超过 200K 令牌时,Claude Code 会自动将对话压缩回标准上下文限制以下,并在之后将会话保持在该限制,因此无需采取任何操作。在 v2.1.172 之前的版本上,错误会在每个后续请求(包括 `/compact`)上重复出现;在这些版本上运行 `/clear` 以恢复。以下步骤适用于您明确选择 `[1m]` 模型的情况。326当此错误在对话中期出现,因为上下文增长超过 200K 令牌时,Claude Code 会自动将对话压缩回标准上下文限制以下,并在之后将会话保持在该限制,因此无需采取任何操作。在 v2.1.172 之前的版本上,错误会在每个后续请求(包括 `/compact`)上重复出现;在这些版本上运行 `/clear` 以恢复。以下步骤适用于您明确选择 `[1m]` 模型的情况。

327 327 

328**应该怎么做:**328**应该怎么做:**

329 329 

330* 运行 `/model` 并选择不带 `[1m]` 后缀的变体以回退到标准上下文窗口330* 运行 `/model` 并选择不带 `[1m]` 后缀的变体以回退到标准上下文窗口

331* 运行 `/usage-credits` 在 Pro 和 Max 上为 1M 变体启用按量计费,或在 Team 和 Enterprise 上向您的管理员请求331* 运行 `/usage-credits` 在 Pro 和 Max 上为 1M 变体启用按量计费,或在 Team 和 Enterprise 上向您的管理员请求

332* 如果 `/model` 后错误仍然存在,1M 模型 ID 可能在其他地方设置。有关要按优先级顺序检查的配置位置,请参阅[所选模型存在问题](#theres-an-issue-with-the-selected-model)。332* 如果 `/model` 后错误仍然存在,1M 模型 ID 可能在其他地方设置。有关要按优先级顺序检查的配置位置,请参阅[所选模型存在问题](#theres-an-issue-with-the-selected-model)。

333* 要从模型选择器中完全删除 1M 变体,请设置 [`CLAUDE_CODE_DISABLE_1M_CONTEXT=1`](/zh-CN/env-vars)333* 要从模型选择器中完全删除 1M 变体,请设置 [`CLAUDE_CODE_DISABLE_1M_CONTEXT=1`](/docs/zh-CN/env-vars)

334 334 

335<h3 id="server-is-temporarily-limiting-requests">335<h3 id="server-is-temporarily-limiting-requests">

336 服务器暂时限制请求336 服务器暂时限制请求


342API Error: Server is temporarily limiting requests (not your usage limit)342API Error: Server is temporarily limiting requests (not your usage limit)

343```343```

344 344 

345Claude Code 通过真实限制响应所携带的统一配额标头的缺失来区分这些与您的计划限制。{/* min-version: 2.1.199 */}从 v2.1.199 开始,无论您如何进行身份验证,这都会[自动重试](#automatic-retries)并进行退避,然后才会显示。在早期版本上,使用 claude.ai 订阅登录的会话在第一次出现时失败;只有 API 密钥和 Enterprise 登录会重试。345Claude Code 通过真实限制响应所携带的统一配额标头的缺失来区分这些与您的计划限制。从 v2.1.199 开始,无论您如何进行身份验证,这都会[自动重试](#automatic-retries)并进行退避,然后才会显示。在早期版本上,使用 claude.ai 订阅登录的会话在第一次出现时失败;只有 API 密钥和 Enterprise 登录会重试。

346 346 

347**应该怎么做:**347**应该怎么做:**

348 348 


366* 运行 `/status` 并确认活跃凭证是您期望的凭证。环境中的杂散 `ANTHROPIC_API_KEY` 可能会通过低级密钥而不是您的订阅来路由请求。366* 运行 `/status` 并确认活跃凭证是您期望的凭证。环境中的杂散 `ANTHROPIC_API_KEY` 可能会通过低级密钥而不是您的订阅来路由请求。

367* 检查您的提供商控制台以了解活跃限制,如果需要,请请求更高的层级367* 检查您的提供商控制台以了解活跃限制,如果需要,请请求更高的层级

368* 对于 Anthropic API 密钥,请参阅[速率限制参考](https://platform.claude.com/docs/en/api/rate-limits)了解层级如何工作以及如何设置每个工作区的上限368* 对于 Anthropic API 密钥,请参阅[速率限制参考](https://platform.claude.com/docs/en/api/rate-limits)了解层级如何工作以及如何设置每个工作区的上限

369* 降低并发:降低 [`CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCY`](/zh-CN/env-vars),避免运行许多并行子代理,或使用 `/model` 切换到较小的模型以进行大容量脚本运行369* 降低并发:降低 [`CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCY`](/docs/zh-CN/env-vars),避免运行许多并行子代理,或使用 `/model` 切换到较小的模型以进行大容量脚本运行

370 370 

371<h3 id="credit-balance-is-too-low">371<h3 id="credit-balance-is-too-low">

372 信用余额过低372 信用余额过低


382 382 

383* 在 [platform.claude.com/settings/billing](https://platform.claude.com/settings/billing) 添加信用,并考虑在那里启用自动重新加载,以便在余额达到零之前进行补充383* 在 [platform.claude.com/settings/billing](https://platform.claude.com/settings/billing) 添加信用,并考虑在那里启用自动重新加载,以便在余额达到零之前进行补充

384* 如果您有 Pro、Max、Team 或 Enterprise 计划,请使用 `/login` 切换到订阅身份验证384* 如果您有 Pro、Max、Team 或 Enterprise 计划,请使用 `/login` 切换到订阅身份验证

385* 在 Console 中设置每个工作区的支出上限,以防止单个项目耗尽组织余额。请参阅[有效管理成本](/zh-CN/costs)。385* 在 Console 中设置每个工作区的支出上限,以防止单个项目耗尽组织余额。请参阅[有效管理成本](/docs/zh-CN/costs)。

386 386 

387<h2 id="authentication-errors">387<h2 id="authentication-errors">

388 身份验证错误388 身份验证错误


404 404 

405* 运行 `/login` 使用您的 Claude 订阅或 Console 账户进行身份验证405* 运行 `/login` 使用您的 Claude 订阅或 Console 账户进行身份验证

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

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

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

409 409 

410如果您被反复提示登录,请参阅 [未登录或令牌过期](/zh-CN/troubleshoot-install#not-logged-in-or-token-expired) 了解系统时钟和 macOS Keychain 修复。410如果您被反复提示登录,请参阅 [未登录或令牌过期](/docs/zh-CN/troubleshoot-install#not-logged-in-or-token-expired) 了解系统时钟和 macOS Keychain 修复。

411 411 

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

413 无法解析身份验证方法413 无法解析身份验证方法

414</h3>414</h3>

415 415 

416会话到达 API 客户端时没有任何凭证。这出现在 [后台会话](/zh-CN/agent-view)、云会话和 Agent SDK 上下文中,其中交互式登录检查在第一个请求之前不会运行。416会话到达 API 客户端时没有任何凭证。这出现在 [后台会话](/docs/zh-CN/agent-view)、云会话和 Agent SDK 上下文中,其中交互式登录检查在第一个请求之前不会运行。

417 417 

418```text theme={null}418```text theme={null}

419Could 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 omitted419Could 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

420```420```

421 421 

422{/* min-version: 2.1.174 */}在 v2.1.174 之前,分配给空闲预初始化工作进程的后台或云会话即使配置了有效凭证也可能以这种方式失败。升级以恢复。在当前版本中,该错误意味着工作进程没有可用的凭证。422在 v2.1.174 之前,分配给空闲预初始化工作进程的后台或云会话即使配置了有效凭证也可能以这种方式失败。升级以恢复。在当前版本中,该错误意味着工作进程没有可用的凭证。

423 423 

424**应该做什么:**424**应该做什么:**

425 425 

426* 如果这出现在后台或云会话中且您的凭证已配置,请升级到 v2.1.174 或更高版本426* 如果这出现在后台或云会话中且您的凭证已配置,请升级到 v2.1.174 或更高版本

427* 确认 `ANTHROPIC_API_KEY`、`CLAUDE_CODE_OAUTH_TOKEN` 或您的云提供商凭证已在启动工作进程的环境中设置,而不仅仅在您的交互式 shell 中427* 确认 `ANTHROPIC_API_KEY`、`CLAUDE_CODE_OAUTH_TOKEN` 或您的云提供商凭证已在启动工作进程的环境中设置,而不仅仅在您的交互式 shell 中

428* 对于 Agent SDK,请参阅 [身份验证设置](/zh-CN/agent-sdk/overview#get-started)428* 对于 Agent SDK,请参阅 [身份验证设置](/docs/zh-CN/agent-sdk/overview#get-started)

429* 在同一环境中的交互式会话中运行 `/status` 以确认哪个凭证源可以解析429* 在同一环境中的交互式会话中运行 `/status` 以确认哪个凭证源可以解析

430 430 

431<h3 id="invalid-api-key">431<h3 id="invalid-api-key">


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

444* 在同一 shell 中运行 `env | grep ANTHROPIC`。direnv、dotenv shell 插件和 IDE 终端等工具可以从项目中的 `.env` 文件加载过时的密钥,而无需您显式设置它444* 在同一 shell 中运行 `env | grep ANTHROPIC`。direnv、dotenv shell 插件和 IDE 终端等工具可以从项目中的 `.env` 文件加载过时的密钥,而无需您显式设置它

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

446* 如果密钥来自 [`apiKeyHelper`](/zh-CN/settings#available-settings) 脚本,直接运行该脚本以确认它在 stdout 上打印有效密钥446* 如果密钥来自 [`apiKeyHelper`](/docs/zh-CN/settings#available-settings) 脚本,直接运行该脚本以确认它在 stdout 上打印有效密钥

447* 运行 `/status` 确认 Claude Code 实际使用的凭证源447* 运行 `/status` 确认 Claude Code 实际使用的凭证源

448 448 

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

450 您的 apiKeyHelper 脚本失败450 您的 apiKeyHelper 脚本失败

451</h3>451</h3>

452 452 

453在 [`apiKeyHelper`](/zh-CN/settings#available-settings) 设置中配置的命令以错误退出、超时或未向 stdout 打印任何内容。没有来自脚本的密钥,请求到达 API 时带有占位符凭证,API 以 `401` 拒绝它。453在 [`apiKeyHelper`](/docs/zh-CN/settings#available-settings) 设置中配置的命令以错误退出、超时或未向 stdout 打印任何内容。没有来自脚本的密钥,请求到达 API 时带有占位符凭证,API 以 `401` 拒绝它。

454 454 

455```text theme={null}455```text theme={null}

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

457```457```

458 458 

459Claude Code 重新运行脚本并在显示此消息之前最多重试请求两次,因此故障在三次尝试内浮出。{/* min-version: 2.1.208 */}在 v2.1.208 之前,Claude Code 花费完整的 [重试预算](#automatic-retries) 使用占位符凭证重新发送请求,然后报告通用的 `401` 身份验证错误而不是脚本故障。459Claude Code 重新运行脚本并在显示此消息之前最多重试请求两次,因此故障在三次尝试内浮出。在 v2.1.208 之前,Claude Code 花费完整的 [重试预算](#automatic-retries) 使用占位符凭证重新发送请求,然后报告通用的 `401` 身份验证错误而不是脚本故障。

460 460 

461运行 `/login` 在这里无法帮助:只要设置存在,helper 的输出 [优先于](/zh-CN/authentication#authentication-precedence) 保存的登录。461运行 `/login` 在这里无法帮助:只要设置存在,helper 的输出 [优先于](/docs/zh-CN/authentication#authentication-precedence) 保存的登录。

462 462 

463**应该做什么:**463**应该做什么:**

464 464 

465* 在您的 shell 中直接运行在 `apiKeyHelper` 中配置的命令以重现故障465* 在您的 shell 中直接运行在 `apiKeyHelper` 中配置的命令以重现故障

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

467* 修复命令以便它将密钥打印到 stdout 并以代码 0 退出。有关工作设置,请参阅 [使用 apiKeyHelper 轮换凭证](/zh-CN/llm-gateway-connect#rotate-credentials-with-apikeyhelper)。467* 修复命令以便它将密钥打印到 stdout 并以代码 0 退出。有关工作设置,请参阅 [使用 apiKeyHelper 轮换凭证](/docs/zh-CN/llm-gateway-connect#rotate-credentials-with-apikeyhelper)。

468* 运行 `/status` 确认 `apiKeyHelper` 是活跃凭证源。每次命令失败时,其退出代码和错误输出都会出现在终端中的 `Cloud authentication` 面板中。468* 运行 `/status` 确认 `apiKeyHelper` 是活跃凭证源。每次命令失败时,其退出代码和错误输出都会出现在终端中的 `Cloud authentication` 面板中。

469 469 

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


499Your organization has disabled API key authentication · Unset the apiKeyHelper setting and run /login to sign in with your claude.ai account499Your organization has disabled API key authentication · Unset the apiKeyHelper setting and run /login to sign in with your claude.ai account

500```500```

501 501 

502环境变量和 `apiKeyHelper` 优先于 `/login`,因此仅运行 `/login` 在任一仍在提供密钥时无法帮助。请参阅 [身份验证优先级](/zh-CN/authentication#authentication-precedence)。502环境变量和 `apiKeyHelper` 优先于 `/login`,因此仅运行 `/login` 在任一仍在提供密钥时无法帮助。请参阅 [身份验证优先级](/docs/zh-CN/authentication#authentication-precedence)。

503 503 

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

505 505 

506* 如果消息提到 `ANTHROPIC_API_KEY`,在当前 shell 中取消设置它并从 shell 配置文件或 `.env` 文件中删除它,然后重新启动 `claude`506* 如果消息提到 `ANTHROPIC_API_KEY`,在当前 shell 中取消设置它并从 shell 配置文件或 `.env` 文件中删除它,然后重新启动 `claude`

507* 如果消息提到 `apiKeyHelper`,从您的 `settings.json` 中删除 [`apiKeyHelper`](/zh-CN/settings#available-settings) 设置507* 如果消息提到 `apiKeyHelper`,从您的 `settings.json` 中删除 [`apiKeyHelper`](/docs/zh-CN/settings#available-settings) 设置

508* 运行 `/login` 使用您的 claude.ai 账户登录508* 运行 `/login` 使用您的 claude.ai 账户登录

509* 之后运行 `/status` 确认活跃凭证是您的订阅而不是 API 密钥509* 之后运行 `/status` 确认活跃凭证是您的订阅而不是 API 密钥

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


526**应该做什么:**526**应该做什么:**

527 527 

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

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

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

531 531 

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

533 例程被您的组织的策略禁用533 例程被您的组织的策略禁用

534</h3>534</h3>

535 535 

536您的 Team 或 Enterprise 组织中的所有者已在组织级别关闭例程。当您尝试创建或运行例程时会出现该错误,包括从 `/schedule` 和 claude.ai/code 上的 [Routines](/zh-CN/routines) UI。536您的 Team 或 Enterprise 组织中的所有者已在组织级别关闭例程。当您尝试创建或运行例程时会出现该错误,包括从 `/schedule` 和 claude.ai/code 上的 [Routines](/docs/zh-CN/routines) UI。

537 537 

538```text theme={null}538```text theme={null}

539Routines are disabled by your organization's policy.539Routines are disabled by your organization's policy.


544**应该做什么:**544**应该做什么:**

545 545 

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

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

548 548 

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

550 Remote Control 需要 Anthropic API550 Remote Control 需要 Anthropic API

551</h3>551</h3>

552 552 

553会话不是直接与 Anthropic API 通信,因此没有 claude.ai 后端供 [Remote Control](/zh-CN/remote-control) 配对。553会话不是直接与 Anthropic API 通信,因此没有 claude.ai 后端供 [Remote Control](/docs/zh-CN/remote-control) 配对。

554 554 

555```text theme={null}555```text theme={null}

556Remote Control is only available when using Claude via api.anthropic.com.556Remote Control is only available when using Claude via api.anthropic.com.

557```557```

558 558 

559这出现在 Amazon Bedrock、Google Cloud 的 Agent Platform 和 Microsoft Foundry 上。{/* min-version: 2.1.196 */}从 v2.1.196 开始,当 [`ANTHROPIC_BASE_URL`](/zh-CN/env-vars) 指向 `api.anthropic.com` 以外的主机时,例如 [LLM 网关](/zh-CN/llm-gateway) 或代理,即使您使用 claude.ai 登录,它也会出现。559这出现在 Amazon Bedrock、Google Cloud 的 Agent Platform 和 Microsoft Foundry 上。从 v2.1.196 开始,当 [`ANTHROPIC_BASE_URL`](/docs/zh-CN/env-vars) 指向 `api.anthropic.com` 以外的主机时,例如 [LLM 网关](/docs/zh-CN/llm-gateway) 或代理,即使您使用 claude.ai 登录,它也会出现。

560 560 

561**应该做什么:**561**应该做什么:**

562 562 

563* 取消设置 `ANTHROPIC_BASE_URL` 并重启会话,或从直接与 Anthropic API 通信的会话启动 Remote Control563* 取消设置 `ANTHROPIC_BASE_URL` 并重启会话,或从直接与 Anthropic API 通信的会话启动 Remote Control

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

565 565 

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

567 OAuth 令牌被撤销或过期567 OAuth 令牌被撤销或过期


581 581 

582* 运行 `/login` 重新登录582* 运行 `/login` 重新登录

583* 如果在同一会话中重新身份验证后错误返回,请先运行 `/logout` 完全清除存储的令牌,然后运行 `/login`583* 如果在同一会话中重新身份验证后错误返回,请先运行 `/logout` 完全清除存储的令牌,然后运行 `/login`

584* 对于跨启动的重复登录提示,请参阅 [故障排除](/zh-CN/troubleshoot-install#not-logged-in-or-token-expired) 中的系统时钟和 macOS Keychain 检查584* 对于跨启动的重复登录提示,请参阅 [故障排除](/docs/zh-CN/troubleshoot-install#not-logged-in-or-token-expired) 中的系统时钟和 macOS Keychain 检查

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

586 586 

587<h3 id="login-expired">587<h3 id="login-expired">

588 登录已过期588 登录已过期

589</h3>589</h3>

590 590 

591Claude Code 尝试更新您保存的 claude.ai 或 Claude Console 登录,OAuth 服务拒绝了存储的刷新令牌,因此 Claude Code 清除了保存的凭证。之后,每个请求在到达 API 之前都会在本地停止,因为只有 `/login` 可以创建新凭证。{/* min-version: 2.1.206 */}在 v2.1.206 之前,Claude Code 无论如何都会发送请求,使用环境中剩余的任何凭证,然后每个模型都会失败,显示 [所选模型有问题](#theres-an-issue-with-the-selected-model) 或 401 而不是登录提示。591Claude Code 尝试更新您保存的 claude.ai 或 Claude Console 登录,OAuth 服务拒绝了存储的刷新令牌,因此 Claude Code 清除了保存的凭证。之后,每个请求在到达 API 之前都会在本地停止,因为只有 `/login` 可以创建新凭证。在 v2.1.206 之前,Claude Code 无论如何都会发送请求,使用环境中剩余的任何凭证,然后每个模型都会失败,显示 [所选模型有问题](#theres-an-issue-with-the-selected-model) 或 401 而不是登录提示。

592 592 

593```text theme={null}593```text theme={null}

594Login expired · Please run /login594Login expired · Please run /login

595```595```

596 596 

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

598 598 

599```text theme={null}599```text theme={null}

600Failed to authenticate: OAuth session expired and could not be refreshed600Failed to authenticate: OAuth session expired and could not be refreshed


602 602 

603这与 [OAuth 令牌被撤销或过期](#oauth-token-revoked-or-expired) 的状态不同。这些消息报告 API 返回的 401。Claude Code 本身为已失败刷新的登录生成 `Login expired`,因此它不发送请求。603这与 [OAuth 令牌被撤销或过期](#oauth-token-revoked-or-expired) 的状态不同。这些消息报告 API 返回的 401。Claude Code 本身为已失败刷新的登录生成 `Login expired`,因此它不发送请求。

604 604 

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

606 606 

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

608 608 

609* 运行 `/login` 重新登录。不登录重试会在每个请求上显示相同的消息。609* 运行 `/login` 重新登录。不登录重试会在每个请求上显示相同的消息。

610* 在非交互模式中,在同一环境中运行 `claude`,完成 `/login`,然后重新运行您的命令。对于无法交互式登录的自动化,使用 `ANTHROPIC_API_KEY` 进行身份验证或 [使用 `claude setup-token` 生成长期令牌](/zh-CN/authentication#generate-a-long-lived-token)。610* 在非交互模式中,在同一环境中运行 `claude`,完成 `/login`,然后重新运行您的命令。对于无法交互式登录的自动化,使用 `ANTHROPIC_API_KEY` 进行身份验证或 [使用 `claude setup-token` 生成长期令牌](/docs/zh-CN/authentication#generate-a-long-lived-token)。

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

612 612 

613<h3 id="oauth-scope-requirement">613<h3 id="oauth-scope-requirement">

614 OAuth 范围要求614 OAuth 范围要求


628 AWS 凭证已过期或无效628 AWS 凭证已过期或无效

629</h3>629</h3>

630 630 

631{/* min-version: 2.1.198 */}此消息需要 Claude Code v2.1.198 或更高版本,仅当在您的设置文件中设置了 [`awsAuthRefresh`](/zh-CN/amazon-bedrock#advanced-credential-configuration) 时才会出现。您的 AWS 会话令牌已过期或被拒绝,Claude Code 已运行的自动刷新未产生 API 接受的凭证。它出现在来自 [Claude Platform on AWS](/zh-CN/claude-platform-on-aws) 或 [Mantle 端点](/zh-CN/amazon-bedrock#use-the-mantle-endpoint) 的 401 上,这是这些提供商报告过期安全令牌的方式。631此消息需要 Claude Code v2.1.198 或更高版本,仅当在您的设置文件中设置了 [`awsAuthRefresh`](/docs/zh-CN/amazon-bedrock#advanced-credential-configuration) 时才会出现。您的 AWS 会话令牌已过期或被拒绝,Claude Code 已运行的自动刷新未产生 API 接受的凭证。它出现在来自 [Claude Platform on AWS](/docs/zh-CN/claude-platform-on-aws) 或 [Mantle 端点](/docs/zh-CN/amazon-bedrock#use-the-mantle-endpoint) 的 401 上,这是这些提供商报告过期安全令牌的方式。

632 632 

633中间的操作提示命名了您的设置中的 `awsAuthRefresh` 命令,因此它会有所不同。稳定的部分是前导的 `AWS credentials expired or invalid`:633中间的操作提示命名了您的设置中的 `awsAuthRefresh` 命令,因此它会有所不同。稳定的部分是前导的 `AWS credentials expired or invalid`:

634 634 


641**应该做什么:**641**应该做什么:**

642 642 

643* 在另一个终端中运行消息中命名的 `awsAuthRefresh` 命令,例如 `aws sso login --profile myprofile`,完成浏览器登录,然后重试643* 在另一个终端中运行消息中命名的 `awsAuthRefresh` 命令,例如 `aws sso login --profile myprofile`,完成浏览器登录,然后重试

644* 在交互式会话中,运行 `/login`,选择 **3rd-party platform**,然后在 **Using 3rd-party platforms** 下选择 **Claude Platform on AWS · refresh credentials** 以运行相同的命令而无需重启 Claude Code。请参阅 [配置 AWS 凭证](/zh-CN/claude-platform-on-aws#1-configure-aws-credentials)644* 在交互式会话中,运行 `/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)

645* 如果刷新命令成功后错误重复出现,请在同一 shell 和配置文件中使用 `aws sts get-caller-identity` 确认身份在 Claude Code 外部有效645* 如果刷新命令成功后错误重复出现,请在同一 shell 和配置文件中使用 `aws sts get-caller-identity` 确认身份在 Claude Code 外部有效

646 646 

647<h3 id="aws-authentication-failed">647<h3 id="aws-authentication-failed">

648 AWS 身份验证失败648 AWS 身份验证失败

649</h3>649</h3>

650 650 

651{/* min-version: 2.1.198 */}此消息需要 Claude Code v2.1.198 或更高版本,仅当在您的设置文件中设置了 [`awsAuthRefresh`](/zh-CN/amazon-bedrock#advanced-credential-configuration) 时才会出现。您的 AWS 提供商返回了 403,或 [Amazon Bedrock](/zh-CN/amazon-bedrock) 返回了 401。651此消息需要 Claude Code v2.1.198 或更高版本,仅当在您的设置文件中设置了 [`awsAuthRefresh`](/docs/zh-CN/amazon-bedrock#advanced-credential-configuration) 时才会出现。您的 AWS 提供商返回了 403,或 [Amazon Bedrock](/docs/zh-CN/amazon-bedrock) 返回了 401。

652 652 

653Claude Code 无法判断您遇到了哪个原因。Amazon Bedrock 将过期的安全令牌报告为 403,但 403 也是它报告授权拒绝的方式,例如来自缺失 IAM 权限或未为您的账户启用的模型的 `AccessDeniedException`。653Claude Code 无法判断您遇到了哪个原因。Amazon Bedrock 将过期的安全令牌报告为 403,但 403 也是它报告授权拒绝的方式,例如来自缺失 IAM 权限或未为您的账户启用的模型的 `AccessDeniedException`。

654 654 


665**应该做什么:**665**应该做什么:**

666 666 

667* 运行消息中命名的 `awsAuthRefresh` 命令或 `aws sso login`,以防过期凭证是原因667* 运行消息中命名的 `awsAuthRefresh` 命令或 `aws sso login`,以防过期凭证是原因

668* 如果您的凭证是最新的,请确认 [IAM 配置](/zh-CN/amazon-bedrock#iam-configuration) 中的 IAM 权限已附加到您使用的身份,并且所选模型已为您的账户和区域启用668* 如果您的凭证是最新的,请确认 [IAM 配置](/docs/zh-CN/amazon-bedrock#iam-configuration) 中的 IAM 权限已附加到您使用的身份,并且所选模型已为您的账户和区域启用

669* 运行 `aws sts get-caller-identity` 确认您的请求使用哪个身份;过时的 `AWS_PROFILE` 或默认配置文件是权限不匹配的常见原因669* 运行 `aws sts get-caller-identity` 确认您的请求使用哪个身份;过时的 `AWS_PROFILE` 或默认配置文件是权限不匹配的常见原因

670 670 

671<h3 id="aws-default-chain-credential-resolve-timed-out">671<h3 id="aws-default-chain-credential-resolve-timed-out">

672 AWS 默认链凭证解析超时672 AWS 默认链凭证解析超时

673</h3>673</h3>

674 674 

675AWS 默认凭证提供商链在 60 秒内未产生凭证,因此 Claude Code 停止了解析并使请求失败。故障是本地凭证解析:请求从未到达 [Amazon Bedrock](/zh-CN/amazon-bedrock)、[Claude Platform on AWS](/zh-CN/claude-platform-on-aws) 或 [Mantle 端点](/zh-CN/amazon-bedrock#use-the-mantle-endpoint)。Claude Code 在此错误浮出之前清除其 [凭证缓存](/zh-CN/amazon-bedrock#credential-caching-and-resolution-timeout) 并重试,因此到您看到它时链已在重复尝试上停滞。675AWS 默认凭证提供商链在 60 秒内未产生凭证,因此 Claude Code 停止了解析并使请求失败。故障是本地凭证解析:请求从未到达 [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) 并重试,因此到您看到它时链已在重复尝试上停滞。

676 676 

677```text theme={null}677```text theme={null}

678API Error: AWS default-chain credential resolve timed out678API Error: AWS default-chain credential resolve timed out

679```679```

680 680 

681常见原因是 AWS 配置文件中的 `credential_process` 命令等待它无法接收的输入,以及容器或 VM 的实例元数据服务 (IMDS) 从不回答链的探测。{/* min-version: 2.1.207 */}在 v2.1.207 之前,停滞的链使请求无限期等待而不是以此消息失败。681常见原因是 AWS 配置文件中的 `credential_process` 命令等待它无法接收的输入,以及容器或 VM 的实例元数据服务 (IMDS) 从不回答链的探测。在 v2.1.207 之前,停滞的链使请求无限期等待而不是以此消息失败。

682 682 

683**应该做什么:**683**应该做什么:**

684 684 

685* 在同一 shell 中使用相同的 `AWS_PROFILE` 运行 `aws sts get-caller-identity`。如果它也挂起,请修复配置文件;提示交互式的 `credential_process` 命令是常见原因。685* 在同一 shell 中使用相同的 `AWS_PROFILE` 运行 `aws sts get-caller-identity`。如果它也挂起,请修复配置文件;提示交互式的 `credential_process` 命令是常见原因。

686* 在启动 Claude Code 之前完成登录步骤,例如 `aws sso login --profile myprofile`,以便链从本地 SSO 缓存解析而不是等待浏览器流686* 在启动 Claude Code 之前完成登录步骤,例如 `aws sso login --profile myprofile`,以便链从本地 SSO 缓存解析而不是等待浏览器流

687* 如果您的链运行合法需要超过 60 秒的交互式登录,例如通过 `aws-vault` 等包装器的带 MFA 的 SSO,请使用 [`CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS`](/zh-CN/env-vars) 以毫秒为单位提高限制687* 如果您的链运行合法需要超过 60 秒的交互式登录,例如通过 `aws-vault` 等包装器的带 MFA 的 SSO,请使用 [`CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS`](/docs/zh-CN/env-vars) 以毫秒为单位提高限制

688 688 

689<h2 id="network-and-connection-errors">689<h2 id="network-and-connection-errors">

690 网络和连接错误690 网络和连接错误


712**应该做什么:**712**应该做什么:**

713 713 

714* 通过在同一 shell 中运行 `curl -I https://api.anthropic.com` 来确认您可以到达 API 主机。在 Windows PowerShell 上使用 `curl.exe -I https://api.anthropic.com`,以便不使用内置的 `Invoke-WebRequest` 别名。714* 通过在同一 shell 中运行 `curl -I https://api.anthropic.com` 来确认您可以到达 API 主机。在 Windows PowerShell 上使用 `curl.exe -I https://api.anthropic.com`,以便不使用内置的 `Invoke-WebRequest` 别名。

715* 如果您在企业代理后面,请在启动 Claude Code 之前设置 `HTTPS_PROXY`,并参阅[网络配置](/zh-CN/network-config)715* 如果您在企业代理后面,请在启动 Claude Code 之前设置 `HTTPS_PROXY`,并参阅[网络配置](/docs/zh-CN/network-config)

716* 如果您通过 LLM 网关或中继路由,请将 [`ANTHROPIC_BASE_URL`](/zh-CN/env-vars) 设置为其地址。有关设置,请参阅[将 Claude Code 连接到 LLM 网关](/zh-CN/llm-gateway-connect)。716* 如果您通过 LLM 网关或中继路由,请将 [`ANTHROPIC_BASE_URL`](/docs/zh-CN/env-vars) 设置为其地址。有关设置,请参阅[将 Claude Code 连接到 LLM 网关](/docs/zh-CN/llm-gateway-connect)。

717* 确保您的防火墙允许[网络访问要求](/zh-CN/network-config#network-access-requirements)中列出的主机717* 确保您的防火墙允许[网络访问要求](/docs/zh-CN/network-config#network-access-requirements)中列出的主机

718* 间歇性故障会[自动重试](#automatic-retries);持续故障指向本地网络问题718* 间歇性故障会[自动重试](#automatic-retries);持续故障指向本地网络问题

719 719 

720如果 `curl` 成功但 Claude Code 仍然失败,原因通常是运行时和网络之间的某些东西,而不是网络本身:720如果 `curl` 成功但 Claude Code 仍然失败,原因通常是运行时和网络之间的某些东西,而不是网络本身:


727 Bedrock 流式响应具有意外的内容类型727 Bedrock 流式响应具有意外的内容类型

728</h3>728</h3>

729 729 

730Claude Code 和 [Amazon Bedrock](/zh-CN/amazon-bedrock) 之间的网关或代理正在转换流式响应体或其 `Content-Type` 标头。Amazon Bedrock 将响应流式传输为 `application/vnd.amazon.eventstream`,Claude Code 拒绝报告不同内容类型的成功流式响应,而不是解码它无法读取的响应体。请求不会重试。730Claude Code 和 [Amazon Bedrock](/docs/zh-CN/amazon-bedrock) 之间的网关或代理正在转换流式响应体或其 `Content-Type` 标头。Amazon Bedrock 将响应流式传输为 `application/vnd.amazon.eventstream`,Claude Code 拒绝报告不同内容类型的成功流式响应,而不是解码它无法读取的响应体。请求不会重试。

731 731 

732```text theme={null}732```text theme={null}

733Bedrock streaming response has content-type "text/event-stream"; expected "application/vnd.amazon.eventstream". A gateway or proxy between Claude Code and Bedrock is likely transforming the response body — Bedrock's binary event-stream format must be passed through unmodified. Set CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_GUARD=1 to suppress this check while the gateway is being fixed.733Bedrock streaming response has content-type "text/event-stream"; expected "application/vnd.amazon.eventstream". A gateway or proxy between Claude Code and Bedrock is likely transforming the response body — Bedrock's binary event-stream format must be passed through unmodified. Set CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_GUARD=1 to suppress this check while the gateway is being fixed.

734```734```

735 735 

736{/* min-version: 2.1.208 */}在 v2.1.208 之前,相同的配置错误表现为 `API Error: Truncated event message received`,在整个响应被缓冲后出现。736在 v2.1.208 之前,相同的配置错误表现为 `API Error: Truncated event message received`,在整个响应被缓冲后出现。

737 737 

738**应该做什么:**738**应该做什么:**

739 739 

740* 配置网关以不修改地传递 `InvokeModelWithResponseStream` 响应体及其 `Content-Type` 标头。将流重新发出为服务器发送事件的中介是常见原因。740* 配置网关以不修改地传递 `InvokeModelWithResponseStream` 响应体及其 `Content-Type` 标头。将流重新发出为服务器发送事件的中介是常见原因。

741* 如果网关仅重写标头并完整传递二进制体,请设置 [`CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_GUARD=1`](/zh-CN/env-vars) 以跳过检查,直到网关被修复。请参阅[网关或代理后的流式错误](/zh-CN/amazon-bedrock#streaming-errors-behind-a-gateway-or-proxy)。741* 如果网关仅重写标头并完整传递二进制体,请设置 [`CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_GUARD=1`](/docs/zh-CN/env-vars) 以跳过检查,直到网关被修复。请参阅[网关或代理后的流式错误](/docs/zh-CN/amazon-bedrock#streaming-errors-behind-a-gateway-or-proxy)。

742 742 

743<h3 id="ssl-certificate-errors">743<h3 id="ssl-certificate-errors">

744 SSL 证书错误744 SSL 证书错误


751Unable to connect to API: Self-signed certificate detected751Unable to connect to API: Self-signed certificate detected

752```752```

753 753 

754{/* min-version: 2.1.199 */}从 v2.1.199 开始,证书验证失败不会重试,因此此错误在第一次尝试时出现,而不是在完整[重试预算](#automatic-retries)之后。早期版本在显示它之前花费几分钟重试。瞬时 TLS 条件(例如握手超时)仍然会重试。754从 v2.1.199 开始,证书验证失败不会重试,因此此错误在第一次尝试时出现,而不是在完整[重试预算](#automatic-retries)之后。早期版本在显示它之前花费几分钟重试。瞬时 TLS 条件(例如握手超时)仍然会重试。

755 755 

756在 `/login` 和启动连接检查期间,使用 OpenSSL 代码和内联修复报告相同的失败:756在 `/login` 和启动连接检查期间,使用 OpenSSL 代码和内联修复报告相同的失败:

757 757 


762**应该做什么:**762**应该做什么:**

763 763 

764* 导出您组织的 CA 包,并使用 `NODE_EXTRA_CA_CERTS=/path/to/ca-bundle.pem` 将 Claude Code 指向它764* 导出您组织的 CA 包,并使用 `NODE_EXTRA_CA_CERTS=/path/to/ca-bundle.pem` 将 Claude Code 指向它

765* 有关完整设置说明,请参阅[网络配置](/zh-CN/network-config#custom-ca-certificates)765* 有关完整设置说明,请参阅[网络配置](/docs/zh-CN/network-config#custom-ca-certificates)

766* 不要设置 `NODE_TLS_REJECT_UNAUTHORIZED=0`,这会完全禁用证书验证766* 不要设置 `NODE_TLS_REJECT_UNAUTHORIZED=0`,这会完全禁用证书验证

767 767 

768<h3 id="host-not-allowed-in-a-cloud-session">768<h3 id="host-not-allowed-in-a-cloud-session">


778 778 

779您也可能看到与目的地真实证书不匹配的 TLS 证书。云环境通过代理路由出站流量以强制执行网络策略,因此证书不匹配意味着代理终止了连接,而不是目的地。779您也可能看到与目的地真实证书不匹配的 TLS 证书。云环境通过代理路由出站流量以强制执行网络策略,因此证书不匹配意味着代理终止了连接,而不是目的地。

780 780 

781这不是客户端网络问题。云会话和[例程](/zh-CN/routines)在沙箱环境内运行,其出站流量被过滤到环境的允许列表。**默认**环境使用**受信任**访问,允许[默认允许列表](/zh-CN/claude-code-on-the-web#default-allowed-domains)中的包注册表、云提供商 API、容器注册表和常见开发域,但阻止其他所有内容。781这不是客户端网络问题。云会话和[例程](/docs/zh-CN/routines)在沙箱环境内运行,其出站流量被过滤到环境的允许列表。**默认**环境使用**受信任**访问,允许[默认允许列表](/docs/zh-CN/claude-code-on-the-web#default-allowed-domains)中的包注册表、云提供商 API、容器注册表和常见开发域,但阻止其他所有内容。

782 782 

783**应该做什么:**783**应该做什么:**

784 784 

785* 打开例程进行编辑,或启动云会话。选择显示您的环境名称(例如**默认**)的云图标以打开选择器。将鼠标悬停在您的环境上,然后单击设置图标。785* 打开例程进行编辑,或启动云会话。选择显示您的环境名称(例如**默认**)的云图标以打开选择器。将鼠标悬停在您的环境上,然后单击设置图标。

786* 在**更新云环境**对话框中,将**网络访问**从**受信任**更改为**自定义**,然后将被阻止的域添加到**允许的域**。每行输入一个域。选中**也包括常见包管理器的默认列表**以在自定义域旁边保留[默认允许列表](/zh-CN/claude-code-on-the-web#default-allowed-domains)。如果您想要不受限制的访问,请改为选择**完全**。786* 在**更新云环境**对话框中,将**网络访问**从**受信任**更改为**自定义**,然后将被阻止的域添加到**允许的域**。每行输入一个域。选中**也包括常见包管理器的默认列表**以在自定义域旁边保留[默认允许列表](/docs/zh-CN/claude-code-on-the-web#default-allowed-domains)。如果您想要不受限制的访问,请改为选择**完全**。

787* 单击**保存更改**。下一次运行使用更新的允许列表。787* 单击**保存更改**。下一次运行使用更新的允许列表。

788 788 

789有关访问级别和默认允许列表,请参阅[网络访问](/zh-CN/claude-code-on-the-web#network-access)。本地 CLI 会话不受此策略影响。789有关访问级别和默认允许列表,请参阅[网络访问](/docs/zh-CN/claude-code-on-the-web#network-access)。本地 CLI 会话不受此策略影响。

790 790 

791<h3 id="couldnt-reconnect-to-your-remote-control-session">791<h3 id="couldnt-reconnect-to-your-remote-control-session">

792 无法重新连接到您的 Remote Control 会话792 无法重新连接到您的 Remote Control 会话


796Couldn't reconnect to your Remote Control session. Retry, or start a fresh session without --resume.796Couldn't reconnect to your Remote Control session. Retry, or start a fresh session without --resume.

797```797```

798 798 

799使用 `claude --resume` 或 `claude --continue` 恢复会重新连接到该对话中记录的 [Remote Control](/zh-CN/remote-control) 会话。此消息意味着重新连接因可能是临时的原因(例如网络中断或服务器错误)而失败,因此 Claude Code 无法确认远程会话是否仍然存在。您的本地会话继续运行而不使用 Remote Control。799使用 `claude --resume` 或 `claude --continue` 恢复会重新连接到该对话中记录的 [Remote Control](/docs/zh-CN/remote-control) 会话。此消息意味着重新连接因可能是临时的原因(例如网络中断或服务器错误)而失败,因此 Claude Code 无法确认远程会话是否仍然存在。您的本地会话继续运行而不使用 Remote Control。

800 800 

801**应该做什么:**801**应该做什么:**

802 802 

803* 运行 `/remote-control` 以重试连接803* 运行 `/remote-control` 以重试连接

804* 启动 Claude Code 而不使用 `--resume` 以创建新的 Remote Control 会话804* 启动 Claude Code 而不使用 `--resume` 以创建新的 Remote Control 会话

805* 有关其他 Remote Control 启动消息,请参阅[排查 Remote Control 故障](/zh-CN/remote-control#troubleshooting)805* 有关其他 Remote Control 启动消息,请参阅[排查 Remote Control 故障](/docs/zh-CN/remote-control#troubleshooting)

806 806 

807当服务器确认前一个会话不再存在时,您不会看到此消息;Claude Code 在这种情况下会创建一个新的会话。{/* min-version: 2.1.200 */}在 v2.1.200 之前,任何重新连接失败都会创建一个新的 Remote Control 会话,这在 claude.ai/code 的会话列表中留下了额外的会话。807当服务器确认前一个会话不再存在时,您不会看到此消息;Claude Code 在这种情况下会创建一个新的会话。在 v2.1.200 之前,任何重新连接失败都会创建一个新的 Remote Control 会话,这在 claude.ai/code 的会话列表中留下了额外的会话。

808 808 

809<h2 id="request-errors">809<h2 id="request-errors">

810 请求错误810 请求错误


827* 运行 `/compact` 来总结早期的回合并释放空间,或运行 `/clear` 来重新开始827* 运行 `/compact` 来总结早期的回合并释放空间,或运行 `/clear` 来重新开始

828* 运行 `/context` 来查看消耗窗口的内容分解:系统提示、工具、内存文件和消息828* 运行 `/context` 来查看消耗窗口的内容分解:系统提示、工具、内存文件和消息

829* 使用 `/mcp disable <name>` 禁用您未使用的 MCP 服务器,以从上下文中移除其工具定义829* 使用 `/mcp disable <name>` 禁用您未使用的 MCP 服务器,以从上下文中移除其工具定义

830* 修剪大型 `CLAUDE.md` 内存文件,或将说明移到[路径范围规则](/zh-CN/memory#path-specific-rules)中,这些规则仅在相关时加载830* 修剪大型 `CLAUDE.md` 内存文件,或将说明移到[路径范围规则](/docs/zh-CN/memory#path-specific-rules)中,这些规则仅在相关时加载

831* 子代理从父会话继承每个 MCP 工具定义,这可能会在第一个回合之前填满它们的上下文窗口。在生成子代理之前禁用您未使用的 MCP 服务器。831* 子代理从父会话继承每个 MCP 工具定义,这可能会在第一个回合之前填满它们的上下文窗口。在生成子代理之前禁用您未使用的 MCP 服务器。

832* 自动压缩默认启用,通常可以防止此错误。如果您设置了 [`DISABLE_AUTO_COMPACT`](/zh-CN/env-vars),请重新启用它或在窗口填满之前手动运行 `/compact`。832* 自动压缩默认启用,通常可以防止此错误。如果您设置了 [`DISABLE_AUTO_COMPACT`](/docs/zh-CN/env-vars),请重新启用它或在窗口填满之前手动运行 `/compact`。

833 833 

834请参阅[探索上下文窗口](/zh-CN/context-window)以获得上下文如何填充的交互式视图。834请参阅[探索上下文窗口](/docs/zh-CN/context-window)以获得上下文如何填充的交互式视图。

835 835 

836<h3 id="error-during-compaction-conversation-too-long">836<h3 id="error-during-compaction-conversation-too-long">

837 Error during compaction: Conversation too long837 Error during compaction: Conversation too long


879API Error: 400 ... image dimensions exceed max allowed size879API Error: 400 ... image dimensions exceed max allowed size

880```880```

881 881 

882{/* min-version: 2.1.142 */}Claude Code 将无法处理的图像替换为文本占位符并重试,因此后续消息成功。在 2.1.142 之前的版本中,粘贴的图像可能会保留在对话中,并在后续的每条消息上重复相同的错误。要在这些版本上恢复,请按 Esc 两次并回退到添加图像的回合之前。882Claude Code 将无法处理的图像替换为文本占位符并重试,因此后续消息成功。在 2.1.142 之前的版本中,粘贴的图像可能会保留在对话中,并在后续的每条消息上重复相同的错误。要在这些版本上恢复,请按 Esc 两次并回退到添加图像的回合之前。

883 883 

884**应该做什么:**884**应该做什么:**

885 885 


939 939 

940**应该做什么:**940**应该做什么:**

941 941 

942* 配置您的网关以转发 `anthropic-beta` 头。请参阅[功能传递](/zh-CN/llm-gateway-protocol#feature-pass-through)了解网关必须转发的内容。942* 配置您的网关以转发 `anthropic-beta` 头。请参阅[功能传递](/docs/zh-CN/llm-gateway-protocol#feature-pass-through)了解网关必须转发的内容。

943* 作为备选方案,在启动前设置 [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](/zh-CN/env-vars)。这会禁用需要测试版头的功能,以便请求通过无法转发它的网关成功。943* 作为备选方案,在启动前设置 [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](/docs/zh-CN/env-vars)。这会禁用需要测试版头的功能,以便请求通过无法转发它的网关成功。

944 944 

945<h3 id="theres-an-issue-with-the-selected-model">945<h3 id="theres-an-issue-with-the-selected-model">

946 There's an issue with the selected model946 There's an issue with the selected model


955**应该做什么:**955**应该做什么:**

956 956 

957* **交互式 CLI**:运行 `/model` 从您账户可用的模型中选择。957* **交互式 CLI**:运行 `/model` 从您账户可用的模型中选择。

958* **非交互模式 (`-p`)**:使用有效的别名或 ID 传递 `--model`,或设置 [`ANTHROPIC_MODEL`](/zh-CN/env-vars)。错误文本在此表面上显示 `Run --model`。958* **非交互模式 (`-p`)**:使用有效的别名或 ID 传递 `--model`,或设置 [`ANTHROPIC_MODEL`](/docs/zh-CN/env-vars)。错误文本在此表面上显示 `Run --model`。

959* **Agent SDK**:错误文本省略提示,因为模型是以编程方式设置的。在 TypeScript 中设置 [`Options` 上的 `model`](/zh-CN/agent-sdk/typescript#options) 或在 Python 中设置 [`ClaudeAgentOptions(model=...)`](/zh-CN/agent-sdk/python#claudeagentoptions),并处理结构化的 `model_not_found` 错误以显示您自己的重试或模型选择器。959* **Agent SDK**:错误文本省略提示,因为模型是以编程方式设置的。在 TypeScript 中设置 [`Options` 上的 `model`](/docs/zh-CN/agent-sdk/typescript#options) 或在 Python 中设置 [`ClaudeAgentOptions(model=...)`](/docs/zh-CN/agent-sdk/python#claudeagentoptions),并处理结构化的 `model_not_found` 错误以显示您自己的重试或模型选择器。

960* 使用别名(如 `sonnet` 或 `opus`)而不是完整的版本化 ID。别名解析为维护的默认值,因此不会过时。请参阅[模型配置](/zh-CN/model-config)。960* 使用别名(如 `sonnet` 或 `opus`)而不是完整的版本化 ID。别名解析为维护的默认值,因此不会过时。请参阅[模型配置](/docs/zh-CN/model-config)。

961* 如果 CLI 中一直返回错误的模型,则某处设置了过时的 ID。按[优先级顺序](/zh-CN/model-config#setting-your-model)检查:`--model` 标志、`ANTHROPIC_MODEL` 环境变量,然后是 `.claude/settings.local.json` 中的 `model` 字段、您项目的 `.claude/settings.json` 和 `~/.claude/settings.json`。删除过时的值,Claude Code 会回退到您的账户默认值。961* 如果 CLI 中一直返回错误的模型,则某处设置了过时的 ID。按[优先级顺序](/docs/zh-CN/model-config#setting-your-model)检查:`--model` 标志、`ANTHROPIC_MODEL` 环境变量,然后是 `.claude/settings.local.json` 中的 `model` 字段、您项目的 `.claude/settings.json` 和 `~/.claude/settings.json`。删除过时的值,Claude Code 会回退到您的账户默认值。

962* {/* min-version: 2.1.206 */}Claude Code 将过期的 claude.ai 登录报告为[登录已过期](#login-expired),而不是此错误。在 v2.1.206 之前,无法再刷新的过期登录在每个模型上都失败,出现此错误;如果您在较旧版本上看到这个,请运行 `/login`。962* Claude Code 将过期的 claude.ai 登录报告为[登录已过期](#login-expired),而不是此错误。在 v2.1.206 之前,无法再刷新的过期登录在每个模型上都失败,出现此错误;如果您在较旧版本上看到这个,请运行 `/login`。

963* 对于 Google Cloud 的 Agent Platform 部署,请参阅 [Google Cloud 的 Agent Platform 故障排除](/zh-CN/google-vertex-ai#troubleshooting)。963* 对于 Google Cloud 的 Agent Platform 部署,请参阅 [Google Cloud 的 Agent Platform 故障排除](/docs/zh-CN/google-vertex-ai#troubleshooting)。

964 964 

965<h3 id="model-is-not-a-recognized-model-id">965<h3 id="model-is-not-a-recognized-model-id">

966 Model is not a recognized model id966 Model is not a recognized model id


974 974 

975尾部提示命名最接近的匹配别名或模型 ID。当没有足够接近的内容时,它读作 `Run /model to see available models.`。975尾部提示命名最接近的匹配别名或模型 ID。当没有足够接近的内容时,它读作 `Run /model to see available models.`。

976 976 

977Claude Code 在请求切换时在本地生成此错误,在发出任何 API 请求之前。它适用于通过 [Agent SDK](/zh-CN/agent-sdk/typescript) `setModel()` 方法或为您运行 Claude Code CLI 的应用程序(如 [Desktop app](/zh-CN/desktop))设置模型的情况。977Claude Code 在请求切换时在本地生成此错误,在发出任何 API 请求之前。它适用于通过 [Agent SDK](/docs/zh-CN/agent-sdk/typescript) `setModel()` 方法或为您运行 Claude Code CLI 的应用程序(如 [Desktop app](/docs/zh-CN/desktop))设置模型的情况。

978 978 

979**应该做什么:**979**应该做什么:**

980 980 

981* 运行不带参数的 `/model` 来打开选择器并从您账户可用的模型中选择,然后传递那里显示的别名或 ID981* 运行不带参数的 `/model` 来打开选择器并从您账户可用的模型中选择,然后传递那里显示的别名或 ID

982* 如果您使用了较新 Claude Code 版本支持的别名,运行 `claude update`。以 `claude-` 开头的完整 ID 即使模型比您的 Claude Code 版本更新,也会通过此检查,因此不需要升级。982* 如果您使用了较新 Claude Code 版本支持的别名,运行 `claude update`。以 `claude-` 开头的完整 ID 即使模型比您的 Claude Code 版本更新,也会通过此检查,因此不需要升级。

983* v2.1.200 之前保存的模型不会被此检查修复。如果过时的值一直出现,请从[所选模型有问题](#theres-an-issue-with-the-selected-model)下列出的位置中删除它。983* v2.1.200 之前保存的模型不会被此检查修复。如果过时的值一直出现,请从[所选模型有问题](#theres-an-issue-with-the-selected-model)下列出的位置中删除它。

984* 检查仅在 Anthropic API 上运行。在 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry、[Claude Platform on AWS](/zh-CN/claude-platform-on-aws) 和 [LLM 网关](/zh-CN/llm-gateway)后面或自定义 `ANTHROPIC_BASE_URL`,您的提供商或网关定义模型名称,因此 Claude Code 接受任何字符串并将其传递。984* 检查仅在 Anthropic API 上运行。在 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry、[Claude Platform on AWS](/docs/zh-CN/claude-platform-on-aws) 和 [LLM 网关](/docs/zh-CN/llm-gateway)后面或自定义 `ANTHROPIC_BASE_URL`,您的提供商或网关定义模型名称,因此 Claude Code 接受任何字符串并将其传递。

985 985 

986<h3 id="claude-opus-is-not-available-with-the-claude-pro-plan">986<h3 id="claude-opus-is-not-available-with-the-claude-pro-plan">

987 Claude Opus is not available with the Claude Pro plan987 Claude Opus is not available with the Claude Pro plan


1003 Model is restricted by your organization's settings1003 Model is restricted by your organization's settings

1004</h3>1004</h3>

1005 1005 

1006您的组织管理员在 claude.ai 管理控制台中禁用了此模型,或者它被托管设置中的 [`availableModels`](/zh-CN/model-config#restrict-model-selection) 允许列表排除。当受限模型使用 `--model`、`ANTHROPIC_MODEL` 或 `model` 设置设置时,Claude Code 替换允许的模型并继续。为受限模型键入 `/model <name>` 会被拒绝,显示 `Run /model to choose a different model.`,会话保持其当前模型。1006您的组织管理员在 claude.ai 管理控制台中禁用了此模型,或者它被托管设置中的 [`availableModels`](/docs/zh-CN/model-config#restrict-model-selection) 允许列表排除。当受限模型使用 `--model`、`ANTHROPIC_MODEL` 或 `model` 设置设置时,Claude Code 替换允许的模型并继续。为受限模型键入 `/model <name>` 会被拒绝,显示 `Run /model to choose a different model.`,会话保持其当前模型。

1007 1007 

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

1009Model "claude-opus-4-8" is restricted by your organization's settings. Using claude-sonnet-4-6 instead.1009Model "claude-opus-4-8" is restricted by your organization's settings. Using claude-sonnet-4-6 instead.

1010```1010```

1011 1011 

1012Claude Code 将模型族别名(`opus`、`sonnet`、`haiku` 或 `fable` 之一)视为对该族的请求,而不是对其最新版本的请求。在 Anthropic API 和 [Claude Platform on AWS](/zh-CN/claude-platform-on-aws) 上,受限的族别名解析为您的组织和 `availableModels` 允许列表允许的族的最新版本,替换通知命名该版本。Claude Code 仅当族的每个版本都受限时才拒绝 `/model <alias>`。在 v2.1.205 之前,族别名基于其最新版本单独替换或拒绝,即使同一族的较旧版本被允许。1012Claude Code 将模型族别名(`opus`、`sonnet`、`haiku` 或 `fable` 之一)视为对该族的请求,而不是对其最新版本的请求。在 Anthropic API 和 [Claude Platform on AWS](/docs/zh-CN/claude-platform-on-aws) 上,受限的族别名解析为您的组织和 `availableModels` 允许列表允许的族的最新版本,替换通知命名该版本。Claude Code 仅当族的每个版本都受限时才拒绝 `/model <alias>`。在 v2.1.205 之前,族别名基于其最新版本单独替换或拒绝,即使同一族的较旧版本被允许。

1013 1013 

1014**应该做什么:**1014**应该做什么:**

1015 1015 

1016* 运行 `/model` 从您的组织允许的模型中选择。受限模型从选择器中隐藏。1016* 运行 `/model` 从您的组织允许的模型中选择。受限模型从选择器中隐藏。

1017* 如果受限模型在 `--model`、`ANTHROPIC_MODEL` 或设置文件的 `model` 字段中设置,删除或更新该值,以便通知不会在每次启动时重复出现1017* 如果受限模型在 `--model`、`ANTHROPIC_MODEL` 或设置文件的 `model` 字段中设置,删除或更新该值,以便通知不会在每次启动时重复出现

1018* 如果您需要访问受限模型,请要求您的组织管理员启用它。请参阅[组织模型限制](/zh-CN/model-config#organization-model-restrictions)。1018* 如果您需要访问受限模型,请要求您的组织管理员启用它。请参阅[组织模型限制](/docs/zh-CN/model-config#organization-model-restrictions)。

1019 1019 

1020<h3 id="thinking-type-enabled-is-not-supported-for-this-model">1020<h3 id="thinking-type-enabled-is-not-supported-for-this-model">

1021 thinking.type.enabled is not supported for this model1021 thinking.type.enabled is not supported for this model


1031 1031 

1032* 运行 `claude update` 并重启 Claude Code。Opus 4.7 需要 v2.1.111 或更高版本。Opus 4.8 需要 v2.1.154 或更高版本。Sonnet 5 需要 v2.1.197 或更高版本1032* 运行 `claude update` 并重启 Claude Code。Opus 4.7 需要 v2.1.111 或更高版本。Opus 4.8 需要 v2.1.154 或更高版本。Sonnet 5 需要 v2.1.197 或更高版本

1033* 如果您无法升级,运行 `/model` 并改为选择 Opus 4.6 或 Sonnet 4.61033* 如果您无法升级,运行 `/model` 并改为选择 Opus 4.6 或 Sonnet 4.6

1034* {/* min-version: agent-sdk@0.3.197 */}如果您在 [Agent SDK](/zh-CN/agent-sdk/overview) 中遇到这个问题,请升级 SDK 包。Opus 4.8 需要 TypeScript SDK v0.3.154 或更高版本和 Python SDK v0.2.88 或更高版本。Sonnet 5 需要 TypeScript SDK v0.3.197 或更高版本1034* 如果您在 [Agent SDK](/docs/zh-CN/agent-sdk/overview) 中遇到这个问题,请升级 SDK 包。Opus 4.8 需要 TypeScript SDK v0.3.154 或更高版本和 Python SDK v0.2.88 或更高版本。Sonnet 5 需要 TypeScript SDK v0.3.197 或更高版本

1035 1035 

1036<h3 id="thinking-budget-exceeds-output-limit">1036<h3 id="thinking-budget-exceeds-output-limit">

1037 Thinking budget exceeds output limit1037 Thinking budget exceeds output limit


1043API Error: 400 ... max_tokens must be greater than thinking.budget_tokens1043API Error: 400 ... max_tokens must be greater than thinking.budget_tokens

1044```1044```

1045 1045 

1046Claude Code 在 Anthropic API 上自动调整这些值。您通常在 Amazon Bedrock 或 Google Cloud 的 Agent Platform 上看到此错误,当 [`MAX_THINKING_TOKENS`](/zh-CN/env-vars) 设置高于提供商的输出限制时,或当计划模式提高思考预算时。1046Claude Code 在 Anthropic API 上自动调整这些值。您通常在 Amazon Bedrock 或 Google Cloud 的 Agent Platform 上看到此错误,当 [`MAX_THINKING_TOKENS`](/docs/zh-CN/env-vars) 设置高于提供商的输出限制时,或当计划模式提高思考预算时。

1047 1047 

1048**应该做什么:**1048**应该做什么:**

1049 1049 

1050* 降低 `MAX_THINKING_TOKENS`,或将 [`CLAUDE_CODE_MAX_OUTPUT_TOKENS`](/zh-CN/env-vars) 提高到思考预算之上1050* 降低 `MAX_THINKING_TOKENS`,或将 [`CLAUDE_CODE_MAX_OUTPUT_TOKENS`](/docs/zh-CN/env-vars) 提高到思考预算之上

1051* 请参阅[扩展思考](/zh-CN/model-config#extended-thinking)了解预算如何与输出长度相互作用1051* 请参阅[扩展思考](/docs/zh-CN/model-config#extended-thinking)了解预算如何与输出长度相互作用

1052 1052 

1053<h3 id="tool-use-or-thinking-block-mismatch">1053<h3 id="tool-use-or-thinking-block-mismatch">

1054 Tool use or thinking block mismatch1054 Tool use or thinking block mismatch


1066 1066 

1067**应该做什么:**1067**应该做什么:**

1068 1068 

1069* {/* max-version: 2.1.155 */}如果您使用的是 Opus 4.7 或 Opus 4.8,请先运行 `claude update`。v2.1.156 之前的版本可能在正常工具使用期间触发此错误,`/rewind` 不会清除它。1069* 如果您使用的是 Opus 4.7 或 Opus 4.8,请先运行 `claude update`。v2.1.156 之前的版本可能在正常工具使用期间触发此错误,`/rewind` 不会清除它。

1070* 运行 `/rewind` 或按 Esc 两次,回退到损坏回合之前的检查点并从那里继续。请参阅[检查点](/zh-CN/checkpointing)了解如何创建和恢复检查点。1070* 运行 `/rewind` 或按 Esc 两次,回退到损坏回合之前的检查点并从那里继续。请参阅[检查点](/docs/zh-CN/checkpointing)了解如何创建和恢复检查点。

1071 1071 

1072<h3 id="usage-policy-refusal">1072<h3 id="usage-policy-refusal">

1073 Usage Policy refusal1073 Usage Policy refusal


1079API Error: Claude Code is unable to respond to this request, which appears to violate our Usage Policy (https://www.anthropic.com/legal/aup). Please double press esc to edit your last message or start a new session for Claude Code to assist with a different task.1079API Error: Claude Code is unable to respond to this request, which appears to violate our Usage Policy (https://www.anthropic.com/legal/aup). Please double press esc to edit your last message or start a new session for Claude Code to assist with a different task.

1080```1080```

1081 1081 

1082检查评估完整对话,而不仅仅是您的最新提示,因此在同一会话中发送新消息通常会重新触发相同的拒绝。在使用 `--continue` 或 `--resume` 退出并重新打开会话后也是如此,因为磁盘上的记录仍然包含触发内容。在 [Amazon Bedrock](/zh-CN/amazon-bedrock)、[Google Cloud 的 Agent Platform](/zh-CN/google-vertex-ai) 和 [Microsoft Foundry](/zh-CN/microsoft-foundry) 上,此消息也涵盖模型的安全措施标记为网络安全主题的请求。请参阅[安全措施标记了网络安全主题](#safety-measures-flagged-a-cybersecurity-topic)。1082检查评估完整对话,而不仅仅是您的最新提示,因此在同一会话中发送新消息通常会重新触发相同的拒绝。在使用 `--continue` 或 `--resume` 退出并重新打开会话后也是如此,因为磁盘上的记录仍然包含触发内容。在 [Amazon Bedrock](/docs/zh-CN/amazon-bedrock)、[Google Cloud 的 Agent Platform](/docs/zh-CN/google-vertex-ai) 和 [Microsoft Foundry](/docs/zh-CN/microsoft-foundry) 上,此消息也涵盖模型的安全措施标记为网络安全主题的请求。请参阅[安全措施标记了网络安全主题](#safety-measures-flagged-a-cybersecurity-topic)。

1083 1083 

1084**应该做什么:**1084**应该做什么:**

1085 1085 

1086* 按 Esc 两次或运行 `/rewind` 回退到触发拒绝的回合之前的检查点,然后重新表述或采取不同的方法。请参阅[检查点](/zh-CN/checkpointing)。1086* 按 Esc 两次或运行 `/rewind` 回退到触发拒绝的回合之前的检查点,然后重新表述或采取不同的方法。请参阅[检查点](/docs/zh-CN/checkpointing)。

1087* 如果您无法识别哪个回合导致了它,运行 `/clear` 在同一项目中启动新对话。您之前的对话保留在磁盘上,在 `/resume` 中仍然可用。1087* 如果您无法识别哪个回合导致了它,运行 `/clear` 在同一项目中启动新对话。您之前的对话保留在磁盘上,在 `/resume` 中仍然可用。

1088* 在[非交互模式](/zh-CN/headless)(`-p`) 中,其中 rewind 不可用,在没有 `--continue` 的新会话中使用重新表述的提示重试。政策检查因模型而异,因此使用 `--model` 切换到不同的模型也可能在某些情况下解决拒绝。1088* 在[非交互模式](/docs/zh-CN/headless)(`-p`) 中,其中 rewind 不可用,在没有 `--continue` 的新会话中使用重新表述的提示重试。政策检查因模型而异,因此使用 `--model` 切换到不同的模型也可能在某些情况下解决拒绝。

1089 1089 

1090<h3 id="safety-measures-flagged-a-cybersecurity-topic">1090<h3 id="safety-measures-flagged-a-cybersecurity-topic">

1091 Safety measures flagged a cybersecurity topic1091 Safety measures flagged a cybersecurity topic


1103 1103 

1104您看到的内容取决于您的提供商和模式:1104您看到的内容取决于您的提供商和模式:

1105 1105 

1106* 在 [Amazon Bedrock](/zh-CN/amazon-bedrock)、[Google Cloud 的 Agent Platform](/zh-CN/google-vertex-ai) 和 [Microsoft Foundry](/zh-CN/microsoft-foundry) 上,网络安全标志会产生[使用政策拒绝](#usage-policy-refusal)消息。1106* 在 [Amazon Bedrock](/docs/zh-CN/amazon-bedrock)、[Google Cloud 的 Agent Platform](/docs/zh-CN/google-vertex-ai) 和 [Microsoft Foundry](/docs/zh-CN/microsoft-foundry) 上,网络安全标志会产生[使用政策拒绝](#usage-policy-refusal)消息。

1107* [非交互模式](/zh-CN/headless)省略 `/feedback` 句子。1107* [非交互模式](/docs/zh-CN/headless)省略 `/feedback` 句子。

1108 1108 

1109{/* max-version: 2.1.202 */}在 v2.1.203 之前,消息读作 `<model>'s safeguards flagged this message for a cybersecurity topic. If your work requires this access, you can apply for an exemption:` 后跟豁免表单链接。1109在 v2.1.203 之前,消息读作 `<model>'s safeguards flagged this message for a cybersecurity topic. If your work requires this access, you can apply for an exemption:` 后跟豁免表单链接。

1110 1110 

1111**应该做什么:**1111**应该做什么:**

1112 1112 

1113* 如果您的工作需要此内容,请通过[网络验证计划](https://support.claude.com/en/articles/14604842-real-time-cyber-safeguards-on-claude)申请访问权限1113* 如果您的工作需要此内容,请通过[网络验证计划](https://support.claude.com/en/articles/14604842-real-time-cyber-safeguards-on-claude)申请访问权限

1114* 如果您的请求不是关于网络安全主题,运行 `/feedback` 来报告误报1114* 如果您的请求不是关于网络安全主题,运行 `/feedback` 来报告误报

1115* 要在同一会话中继续工作,按 Esc 两次或运行 `/rewind` 回退到触发标志的回合之前的检查点,然后采取不同的方法。请参阅[检查点](/zh-CN/checkpointing)。1115* 要在同一会话中继续工作,按 Esc 两次或运行 `/rewind` 回退到触发标志的回合之前的检查点,然后采取不同的方法。请参阅[检查点](/docs/zh-CN/checkpointing)。

1116 1116 

1117<h2 id="installation-errors">1117<h2 id="installation-errors">

1118 安装错误1118 安装错误

1119</h2>1119</h2>

1120 1120 

1121这些错误在安装或更新 Claude Code 时出现,来自[安装脚本](/zh-CN/setup#install-claude-code)、`claude install` 或 `claude update`。对于设置期间的 `command not found`、PATH、权限和 TLS 问题,请参阅[排查安装和登录问题](/zh-CN/troubleshoot-install)。1121这些错误在安装或更新 Claude Code 时出现,来自[安装脚本](/docs/zh-CN/setup#install-claude-code)、`claude install` 或 `claude update`。对于设置期间的 `command not found`、PATH、权限和 TLS 问题,请参阅[排查安装和登录问题](/docs/zh-CN/troubleshoot-install)。

1122 1122 

1123<h3 id="installation-was-killed-before-it-could-finish">1123<h3 id="installation-was-killed-before-it-could-finish">

1124 安装在完成前被中止1124 安装在完成前被中止


1136**应该做什么:**1136**应该做什么:**

1137 1137 

1138* 停止其他进程以释放内存,然后重新运行安装程序1138* 停止其他进程以释放内存,然后重新运行安装程序

1139* 添加交换空间或移至更大的实例。有关交换文件命令,请参阅[在低内存 Linux 服务器上安装被中止](/zh-CN/troubleshoot-install#install-killed-on-low-memory-linux-servers)。1139* 添加交换空间或移至更大的实例。有关交换文件命令,请参阅[在低内存 Linux 服务器上安装被中止](/docs/zh-CN/troubleshoot-install#install-killed-on-low-memory-linux-servers)。

1140 1140 

1141<h3 id="the-connection-dropped-while-downloading-the-update">1141<h3 id="the-connection-dropped-while-downloading-the-update">

1142 下载更新时连接断开1142 下载更新时连接断开

1143</h3>1143</h3>

1144 1144 

1145在 `claude install`、`claude update` 或[自动更新程序](/zh-CN/setup#auto-updates)获取 Claude Code 二进制文件时,与下载服务器的连接关闭,重试未能恢复。当连接断开、传输停滞或下载的文件未通过校验和时,Claude Code 会重试下载,总共最多尝试三次。已完成的 HTTP 错误(例如 404)不会重试,因为服务器已经响应。{/* min-version: 2.1.202 */}在 v2.1.202 之前,单个断开的连接会立即导致下载失败,显示裸错误 `aborted`,而不是重试。1145在 `claude install`、`claude update` 或[自动更新程序](/docs/zh-CN/setup#auto-updates)获取 Claude Code 二进制文件时,与下载服务器的连接关闭,重试未能恢复。当连接断开、传输停滞或下载的文件未通过校验和时,Claude Code 会重试下载,总共最多尝试三次。已完成的 HTTP 错误(例如 404)不会重试,因为服务器已经响应。在 v2.1.202 之前,单个断开的连接会立即导致下载失败,显示裸错误 `aborted`,而不是重试。

1146 1146 

1147```text theme={null}1147```text theme={null}

1148The connection dropped while downloading the update (attempt 3/3: aborted). Check your network — proxies sometimes cut off large downloads.1148The connection dropped while downloading the update (attempt 3/3: aborted). Check your network — proxies sometimes cut off large downloads.


1157**应该做什么:**1157**应该做什么:**

1158 1158 

1159* 再次运行 `claude update`。在网络状况良好的情况下,下载通常在下次运行时成功。对于超时消息,从更快或限制较少的网络再次运行它。1159* 再次运行 `claude update`。在网络状况良好的情况下,下载通常在下次运行时成功。对于超时消息,从更快或限制较少的网络再次运行它。

1160* 如果您的网络需要代理,请在运行安装程序或 `claude update` 之前设置 `HTTPS_PROXY`。请参阅[检查网络连接](/zh-CN/troubleshoot-install#check-network-connectivity)。1160* 如果您的网络需要代理,请在运行安装程序或 `claude update` 之前设置 `HTTPS_PROXY`。请参阅[检查网络连接](/docs/zh-CN/troubleshoot-install#check-network-connectivity)。

1161* 如果公司代理持续关闭传输,请要求您的网络团队允许从 `downloads.claude.ai` 进行完整下载。请参阅[网络访问要求](/zh-CN/network-config#network-access-requirements)。1161* 如果公司代理持续关闭传输,请要求您的网络团队允许从 `downloads.claude.ai` 进行完整下载。请参阅[网络访问要求](/docs/zh-CN/network-config#network-access-requirements)。

1162* 从您的 shell 运行 `claude doctor` 以进行安装诊断1162* 从您的 shell 运行 `claude doctor` 以进行安装诊断

1163 1163 

1164<h2 id="command-line-errors">1164<h2 id="command-line-errors">


1171 \--bg 和 --print 之间的冲突1171 \--bg 和 --print 之间的冲突

1172</h3>1172</h3>

1173 1173 

1174此消息需要 Claude Code v2.1.198 或更高版本。您在同一个 `claude` 调用中将 `--bg` 与 `-p` 或 `--print` 结合使用。`--bg` 启动一个[后台会话](/zh-CN/agent-view#from-your-shell),您稍后可以使用 `claude agents` 附加到该会话,而 `--print` 以[非交互方式](/zh-CN/headless)运行,永远不会启动 `claude agents` 附加到的交互会话。在 v2.1.198 之前,此组合会静默创建一个永远无法附加的后台作业。1174此消息需要 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 之前,此组合会静默创建一个永远无法附加的后台作业。

1175 1175 

1176```text theme={null}1176```text theme={null}

1177--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>'`.1177--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>'`.


1179 1179 

1180**应该怎么做:**1180**应该怎么做:**

1181 1181 

1182* 删除 `-p` 或 `--print`。`--bg` 将提示作为其位置参数,所以 `claude --bg "<task>"` 是完整的命令。请参阅[从您的 shell 分派新代理](/zh-CN/agent-view#from-your-shell)。1182* 删除 `-p` 或 `--print`。`--bg` 将提示作为其位置参数,所以 `claude --bg "<task>"` 是完整的命令。请参阅[从您的 shell 分派新代理](/docs/zh-CN/agent-view#from-your-shell)。

1183* 要以非交互方式运行提示并打印结果而不是创建后台会话,请删除 `--bg` 并运行 `claude -p "<task>"`1183* 要以非交互方式运行提示并打印结果而不是创建后台会话,请删除 `--bg` 并运行 `claude -p "<task>"`

1184 1184 

1185<h3 id="the-json-schema-value-is-not-a-valid-json-schema">1185<h3 id="the-json-schema-value-is-not-a-valid-json-schema">

1186 \--json-schema 值不是有效的 JSON Schema1186 \--json-schema 值不是有效的 JSON Schema

1187</h3>1187</h3>

1188 1188 

1189您在[非交互模式](/zh-CN/headless#get-structured-output)中传递给 [`--json-schema`](/zh-CN/cli-reference#cli-flags) 的架构未能通过 JSON Schema 编译,因此 `claude` 以代码 1 退出,而不是运行提示。在 v2.1.205 之前,无效的架构会产生无结构的输出且没有错误,任何使用 `format` 关键字的架构都被视为无效。1189您在[非交互模式](/docs/zh-CN/headless#get-structured-output)中传递给 [`--json-schema`](/docs/zh-CN/cli-reference#cli-flags) 的架构未能通过 JSON Schema 编译,因此 `claude` 以代码 1 退出,而不是运行提示。在 v2.1.205 之前,无效的架构会产生无结构的输出且没有错误,任何使用 `format` 关键字的架构都被视为无效。

1190 1190 

1191```text theme={null}1191```text theme={null}

1192Error: --json-schema is not a valid JSON Schema: data/type must be equal to one of the allowed values1192Error: --json-schema is not a valid JSON Schema: data/type must be equal to one of the allowed values


1200 1200 

1201* 修复诊断命名的架构部分,然后重新运行命令1201* 修复诊断命名的架构部分,然后重新运行命令

1202* 如果诊断是 `schema too large`,请减少架构的嵌套和 `$ref` 重用1202* 如果诊断是 `schema too large`,请减少架构的嵌套和 `$ref` 重用

1203* 请参阅[获取结构化输出](/zh-CN/headless#get-structured-output)以获取有效的架构和命令1203* 请参阅[获取结构化输出](/docs/zh-CN/headless#get-structured-output)以获取有效的架构和命令

1204 1204 

1205<h3 id="could-not-import-a-server-from-claude-desktop">1205<h3 id="could-not-import-a-server-from-claude-desktop">

1206 无法从 Claude Desktop 导入服务器1206 无法从 Claude Desktop 导入服务器


1212Could not import my server: Invalid name my server. Names can only contain letters, numbers, hyphens, and underscores.1212Could not import my server: Invalid name my server. Names can only contain letters, numbers, hyphens, and underscores.

1213```1213```

1214 1214 

1215服务器名称后面的文本是原因。最常见的是名称检查:Claude Desktop 允许服务器名称中的字符(例如空格和句号),而 `claude mcp` 仅限于字母、数字、连字符和下划线。其他原因包括未通过验证的服务器配置和被您组织的 [MCP 策略](/zh-CN/managed-mcp)阻止的服务器。1215服务器名称后面的文本是原因。最常见的是名称检查:Claude Desktop 允许服务器名称中的字符(例如空格和句号),而 `claude mcp` 仅限于字母、数字、连字符和下划线。其他原因包括未通过验证的服务器配置和被您组织的 [MCP 策略](/docs/zh-CN/managed-mcp)阻止的服务器。

1216 1216 

1217**应该怎么做:**1217**应该怎么做:**

1218 1218 

1219* 在 `claude_desktop_config.json` 中重命名服务器,仅使用字母、数字、连字符和下划线,然后再次运行 `claude mcp add-from-claude-desktop`1219* 在 `claude_desktop_config.json` 中重命名服务器,仅使用字母、数字、连字符和下划线,然后再次运行 `claude mcp add-from-claude-desktop`

1220* 使用 `claude mcp add` 或 `claude mcp add-json` 在有效名称下直接添加该服务器。请参阅[从 Claude Desktop 导入 MCP 服务器](/zh-CN/mcp#import-mcp-servers-from-claude-desktop)。1220* 使用 `claude mcp add` 或 `claude mcp add-json` 在有效名称下直接添加该服务器。请参阅[从 Claude Desktop 导入 MCP 服务器](/docs/zh-CN/mcp#import-mcp-servers-from-claude-desktop)。

1221 1221 

1222<h3 id="mcp-permission-prompt-tool-not-found">1222<h3 id="mcp-permission-prompt-tool-not-found">

1223 找不到 MCP 权限提示工具1223 找不到 MCP 权限提示工具

1224</h3>1224</h3>

1225 1225 

1226您传递给 [`--permission-prompt-tool`](/zh-CN/cli-reference#cli-flags) 的工具在运行首次需要权限决定时不在连接的 MCP 工具中,原因可能是其服务器从未连接,或者没有连接的服务器公开该名称的工具。Claude Code 仍然发送您的提示:[非交互](/zh-CN/headless)运行在第一个需要批准的工具调用时以此错误和退出代码 1 退出,因此即使请求已发出,它也不会产生答案。在第一个提示之前,Claude Code 会等待最多由 [`MCP_TIMEOUT`](/zh-CN/env-vars) 设置的每个服务器连接超时 30 秒,以便该服务器连接。{/* min-version: 2.1.206 */}在 v2.1.206 之前,启动不会等待服务器完成连接,因此启动缓慢但健康的服务器也会产生此错误。1226您传递给 [`--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 之前,启动不会等待服务器完成连接,因此启动缓慢但健康的服务器也会产生此错误。

1227 1227 

1228```text theme={null}1228```text theme={null}

1229Error: MCP tool mcp__permissions__approve (passed via --permission-prompt-tool) not found. Available MCP tools: none1229Error: MCP tool mcp__permissions__approve (passed via --permission-prompt-tool) not found. Available MCP tools: none


1235 1235 

1236* 检查服务器是否启动并保持连接:在同一目录中运行 `claude mcp list`,并确认服务器列为已连接1236* 检查服务器是否启动并保持连接:在同一目录中运行 `claude mcp list`,并确认服务器列为已连接

1237* 确认工具名称与服务器公开的 `mcp__<server>__<tool>` 名称匹配1237* 确认工具名称与服务器公开的 `mcp__<server>__<tool>` 名称匹配

1238* 如果服务器需要超过 30 秒才能启动,请提高 [`MCP_TIMEOUT`](/zh-CN/env-vars)1238* 如果服务器需要超过 30 秒才能启动,请提高 [`MCP_TIMEOUT`](/docs/zh-CN/env-vars)

1239 1239 

1240<h2 id="plugin-errors">1240<h2 id="plugin-errors">

1241 插件错误1241 插件错误

1242</h2>1242</h2>

1243 1243 

1244这些错误来自[插件](/zh-CN/plugins)和[marketplace](/zh-CN/plugin-marketplaces)配置。对于不会产生本页面上的消息之一的插件问题,例如无法加载的 marketplace URL 或已安装但不显示的插件,请参阅[插件故障排除](/zh-CN/discover-plugins#troubleshooting)。1244这些错误来自[插件](/docs/zh-CN/plugins)和[marketplace](/docs/zh-CN/plugin-marketplaces)配置。对于不会产生本页面上的消息之一的插件问题,例如无法加载的 marketplace URL 或已安装但不显示的插件,请参阅[插件故障排除](/docs/zh-CN/discover-plugins#troubleshooting)。

1245 1245 

1246<h3 id="marketplace-is-registered-from-an-untrusted-source">1246<h3 id="marketplace-is-registered-from-an-untrusted-source">

1247 Marketplace 从不受信任的源注册1247 Marketplace 从不受信任的源注册

1248</h3>1248</h3>

1249 1249 

1250marketplace 以[为官方 Anthropic marketplace 保留的名称](/zh-CN/plugin-marketplaces#marketplace-schema)注册,但其注册源不是 `anthropics` GitHub 存储库。Claude Code 每次加载或刷新 marketplace 时都会重新检查保留的名称,因此 marketplace 和从中安装的插件停止加载。在 v2.1.205 之前,仅在添加 marketplace 时检查名称,因此在其名称被保留之前注册的条目继续加载。1250marketplace 以[为官方 Anthropic marketplace 保留的名称](/docs/zh-CN/plugin-marketplaces#marketplace-schema)注册,但其注册源不是 `anthropics` GitHub 存储库。Claude Code 每次加载或刷新 marketplace 时都会重新检查保留的名称,因此 marketplace 和从中安装的插件停止加载。在 v2.1.205 之前,仅在添加 marketplace 时检查名称,因此在其名称被保留之前注册的条目继续加载。

1251 1251 

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

1253Marketplace "claude-community" is registered from an untrusted source: The name 'claude-community' is reserved for official Anthropic marketplaces. Only repositories from 'github.com/anthropics/' can use this name. To fix it, remove the marketplace and re-add it from the official source.1253Marketplace "claude-community" is registered from an untrusted source: The name 'claude-community' is reserved for official Anthropic marketplaces. Only repositories from 'github.com/anthropics/' can use this name. To fix it, remove the marketplace and re-add it from the official source.


1257 1257 

1258* 运行 `claude plugin marketplace remove <name>`,然后从官方 `github.com/anthropics` 存储库重新添加 marketplace1258* 运行 `claude plugin marketplace remove <name>`,然后从官方 `github.com/anthropics` 存储库重新添加 marketplace

1259* 如果您发布了在名称被保留之前使用该名称的第三方 marketplace,请重命名它并要求用户从您的源重新添加它1259* 如果您发布了在名称被保留之前使用该名称的第三方 marketplace,请重命名它并要求用户从您的源重新添加它

1260* 请参阅[Marketplace schema](/zh-CN/plugin-marketplaces#marketplace-schema)下的保留名称列表1260* 请参阅[Marketplace schema](/docs/zh-CN/plugin-marketplaces#marketplace-schema)下的保留名称列表

1261 1261 

1262<h3 id="plugin-command-references-user-config">1262<h3 id="plugin-command-references-user-config">

1263 插件命令在 shell 命令中引用 user\_config1263 插件命令在 shell 命令中引用 user\_config

1264</h3>1264</h3>

1265 1265 

1266插件 hook、[monitor](/zh-CN/plugins-reference#monitors)或 MCP [`headersHelper`](/zh-CN/mcp#use-dynamic-headers-for-custom-authentication)命令引用 `${user_config.KEY}` [插件选项](/zh-CN/plugins-reference#user-configuration),替换后的字符串将被传递到 shell。配置的值包含 `$(...)` 、反引号或 `;` 会在那里作为代码运行,因此 Claude Code 拒绝启动该组件而不是替换该值。检查在命令模板上运行,因此即使尚未配置任何值,错误也会出现。在 v2.1.207 之前,该值被替换到 shell 命令中。1266插件 hook、[monitor](/docs/zh-CN/plugins-reference#monitors)或 MCP [`headersHelper`](/docs/zh-CN/mcp#use-dynamic-headers-for-custom-authentication)命令引用 `${user_config.KEY}` [插件选项](/docs/zh-CN/plugins-reference#user-configuration),替换后的字符串将被传递到 shell。配置的值包含 `$(...)` 、反引号或 `;` 会在那里作为代码运行,因此 Claude Code 拒绝启动该组件而不是替换该值。检查在命令模板上运行,因此即使尚未配置任何值,错误也会出现。在 v2.1.207 之前,该值被替换到 shell 命令中。

1267 1267 

1268措辞取决于哪个表面引用了该选项。shell 形式的 hook 报告:1268措辞取决于哪个表面引用了该选项。shell 形式的 hook 报告:

1269 1269 


1285 1285 

1286**应该怎么做:**1286**应该怎么做:**

1287 1287 

1288* 对于 hook,添加 `args` 数组以便它在[exec 形式](/zh-CN/hooks#exec-form-and-shell-form)中运行,其中每个 `${user_config.KEY}` 成为一个参数,中间没有 shell。或删除引用并在脚本内读取 `$CLAUDE_PLUGIN_OPTION_<KEY>` 环境变量1288* 对于 hook,添加 `args` 数组以便它在[exec 形式](/docs/zh-CN/hooks#exec-form-and-shell-form)中运行,其中每个 `${user_config.KEY}` 成为一个参数,中间没有 shell。或删除引用并在脚本内读取 `$CLAUDE_PLUGIN_OPTION_<KEY>` 环境变量

1289* 对于 monitor,删除引用并让 monitor 脚本从配置文件读取该值1289* 对于 monitor,删除引用并让 monitor 脚本从配置文件读取该值

1290* 对于 `headersHelper`,将 `${user_config.KEY}` 移到服务器的 `headers` 字段中,该字段不会被 shell 解析,或在 helper 脚本内读取该值1290* 对于 `headersHelper`,将 `${user_config.KEY}` 移到服务器的 `headers` 字段中,该字段不会被 shell 解析,或在 helper 脚本内读取该值

1291 1291 


1299 Agent would be spawned with zero tools1299 Agent would be spawned with zero tools

1300</h3>1300</h3>

1301 1301 

1302[子代理的 `tools` 列表](/zh-CN/sub-agents#supported-frontmatter-fields)中没有任何内容解析为工具,因此 Claude Code 拒绝启动子代理,而不是启动一个无法执行操作的代理。该消息按它们未解析的原因对条目进行分组:不是公认的工具、子代理不可用的工具,或已识别但与当前会话中的任何工具都不匹配。省略 `tools` 字段永远不会触发此拒绝。MCP 服务器模式(如 `mcp__github__*`)不例外:当没有来自该服务器的连接工具时,启动会被拒绝,该模式在匹配失败组中。在 v2.1.208 之前,子代理启动时没有工具,并返回空结果或令人困惑的结果。1302[子代理的 `tools` 列表](/docs/zh-CN/sub-agents#supported-frontmatter-fields)中没有任何内容解析为工具,因此 Claude Code 拒绝启动子代理,而不是启动一个无法执行操作的代理。该消息按它们未解析的原因对条目进行分组:不是公认的工具、子代理不可用的工具,或已识别但与当前会话中的任何工具都不匹配。省略 `tools` 字段永远不会触发此拒绝。MCP 服务器模式(如 `mcp__github__*`)不例外:当没有来自该服务器的连接工具时,启动会被拒绝,该模式在匹配失败组中。在 v2.1.208 之前,子代理启动时没有工具,并返回空结果或令人困惑的结果。

1303 1303 

1304```text theme={null}1304```text theme={null}

1305Agent 'code-reviewer' would be spawned with zero tools — refusing. Its tools list resolved to nothing: unrecognized [Grpe]. Fix the agent's tools frontmatter or pass a different subagent_type.1305Agent 'code-reviewer' would be spawned with zero tools — refusing. Its tools list resolved to nothing: unrecognized [Grpe]. Fix the agent's tools frontmatter or pass a different subagent_type.


1307 1307 

1308**应该做什么:**1308**应该做什么:**

1309 1309 

1310* 针对[子代理可用的工具](/zh-CN/sub-agents#available-tools)纠正错误命名的每个条目1310* 针对[子代理可用的工具](/docs/zh-CN/sub-agents#available-tools)纠正错误命名的每个条目

1311* 删除会话没有的工具条目,例如来自未连接的服务器的 MCP 工具1311* 删除会话没有的工具条目,例如来自未连接的服务器的 MCP 工具

1312* 要给子代理提供父代理拥有的每个工具,请删除 `tools` 字段而不是列出工具1312* 要给子代理提供父代理拥有的每个工具,请删除 `tools` 字段而不是列出工具

1313 1313 


1315 File is covered by a Read deny rule1315 File is covered by a Read deny rule

1316</h3>1316</h3>

1317 1317 

1318Edit 工具在与 [`Read` 拒绝规则](/zh-CN/permissions#read-and-edit)匹配的路径上被调用,包括在该路径创建新文件。编辑会重写 Claude 必须能够读回的内容,因此在任何文件访问之前调用被拒绝。该规则仅阻止 Edit 工具:Write 和 NotebookEdit 不受 `Read` 拒绝规则的覆盖。在 v2.1.208 之前,只有 `Edit` 拒绝规则阻止编辑,而 `Read` 拒绝规则单独不会。1318Edit 工具在与 [`Read` 拒绝规则](/docs/zh-CN/permissions#read-and-edit)匹配的路径上被调用,包括在该路径创建新文件。编辑会重写 Claude 必须能够读回的内容,因此在任何文件访问之前调用被拒绝。该规则仅阻止 Edit 工具:Write 和 NotebookEdit 不受 `Read` 拒绝规则的覆盖。在 v2.1.208 之前,只有 `Edit` 拒绝规则阻止编辑,而 `Read` 拒绝规则单独不会。

1319 1319 

1320```text theme={null}1320```text theme={null}

1321File is covered by a Read deny rule in your permission settings and cannot be edited.1321File is covered by a Read deny rule in your permission settings and cannot be edited.


1323 1323 

1324**应该做什么:**1324**应该做什么:**

1325 1325 

1326* 如果 Claude 应该能够编辑该文件,请在 `/permissions` 或[设置](/zh-CN/settings#permission-settings)中删除或缩小 `Read` 拒绝规则1326* 如果 Claude 应该能够编辑该文件,请在 `/permissions` 或[设置](/docs/zh-CN/settings#permission-settings)中删除或缩小 `Read` 拒绝规则

1327* 如果文件必须保持不变,请保留该规则并为相同路径添加 `Edit` 拒绝规则,以便 Write 和 NotebookEdit 工具也被阻止1327* 如果文件必须保持不变,请保留该规则并为相同路径添加 `Edit` 拒绝规则,以便 Write 和 NotebookEdit 工具也被阻止

1328 1328 

1329<h2 id="background-session-errors">1329<h2 id="background-session-errors">

1330 后台会话错误1330 后台会话错误

1331</h2>1331</h2>

1332 1332 

1333[后台会话](/zh-CN/agent-view)在没有交互式终端的情况下运行,因此需要终端的命令在那里的行为会有所不同。这些消息出现在后台会话的记录中,在代理视图中或附加后。1333[后台会话](/docs/zh-CN/agent-view)在没有交互式终端的情况下运行,因此需要终端的命令在那里的行为会有所不同。这些消息出现在后台会话的记录中,在代理视图中或附加后。

1334 1334 

1335<h3 id="commands-refused-in-a-background-session">1335<h3 id="commands-refused-in-a-background-session">

1336 后台会话中被拒绝的命令1336 后台会话中被拒绝的命令

1337</h3>1337</h3>

1338 1338 

1339打开交互式对话框的命令在后台会话中被拒绝,并显示一条消息,该消息要么命名一个在那里有效的表单,要么告诉您从常规终端运行该命令。`/install-github-app`、`/mcp` 设置列表和 MCP 服务器菜单中的身份验证操作都以这种方式被拒绝。在 v2.1.208 之前,它们在后台会话内打开其对话框。1339打开交互式对话框的命令在后台会话中被拒绝,并显示一条消息,该消息要么命名一个在那里有效的表单,要么告诉您从常规终端运行该命令。`/install-github-app`、`/mcp` 设置列表和 MCP 服务器菜单中的身份验证操作都以这种方式被拒绝。在 v2.1.208 之前,它们在后台会话内打开其对话框。

1340{/* max-version: 2.1.208 */}在 v2.1.208 中,`/model` 选择器也在后台会话中被拒绝,`/upgrade` 打印升级 URL 而不是打开浏览器。1340在 v2.1.208 中,`/model` 选择器也在后台会话中被拒绝,`/upgrade` 打印升级 URL 而不是打开浏览器。

1341 1341 

1342措辞会命名被拒绝的命令。`/mcp` 设置列表报告:1342措辞会命名被拒绝的命令。`/mcp` 设置列表报告:

1343 1343 


1354 CLAUDE\_CODE\_PROCESS\_WRAPPER 启动器错误1354 CLAUDE\_CODE\_PROCESS\_WRAPPER 启动器错误

1355</h3>1355</h3>

1356 1356 

1357[`CLAUDE_CODE_PROCESS_WRAPPER`](/zh-CN/corporate-launcher) 已设置,其值无法使用,因此 Claude Code 拒绝启动受影响的进程,而不是在没有启动器的情况下运行它。配置问题会报告一条以变量名开头并说明原因的消息,例如:1357[`CLAUDE_CODE_PROCESS_WRAPPER`](/docs/zh-CN/corporate-launcher) 已设置,其值无法使用,因此 Claude Code 拒绝启动受影响的进程,而不是在没有启动器的情况下运行它。配置问题会报告一条以变量名开头并说明原因的消息,例如:

1358 1358 

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

1360CLAUDE_CODE_PROCESS_WRAPPER: launcher `/opt/corp/launcher` is not an executable regular file1360CLAUDE_CODE_PROCESS_WRAPPER: launcher `/opt/corp/launcher` is not an executable regular file


1364 1364 

1365**应该怎么做:**1365**应该怎么做:**

1366 1366 

1367* 将变量设置为可执行文件的绝对路径,该文件以调用 `exec "$@"` 结尾。有关完整合同,请参阅[启动器合同](/zh-CN/corporate-launcher#the-launcher-contract)1367* 将变量设置为可执行文件的绝对路径,该文件以调用 `exec "$@"` 结尾。有关完整合同,请参阅[启动器合同](/docs/zh-CN/corporate-launcher#the-launcher-contract)

1368* 检查 `/status`,它在其 Self-exec 条目中显示已解析的启动命令,并在运行的后台服务与其不匹配时发出警告,或从 shell 运行 `claude daemon status`1368* 检查 `/status`,它在其 Self-exec 条目中显示已解析的启动命令,并在运行的后台服务与其不匹配时发出警告,或从 shell 运行 `claude daemon status`

1369* 在[设置](/zh-CN/corporate-launcher#set-up-the-launcher)的 `env` 块中修复值后,使用 `claude daemon stop --any` 重启后台服务,以便下一次调度启动一个包装的服务1369* 在[设置](/docs/zh-CN/corporate-launcher#set-up-the-launcher)的 `env` 块中修复值后,使用 `claude daemon stop --any` 重启后台服务,以便下一次调度启动一个包装的服务

1370 1370 

1371<h2 id="configuration-warnings">1371<h2 id="configuration-warnings">

1372 配置警告1372 配置警告


1378 工作区尚未被信任1378 工作区尚未被信任

1379</h3>1379</h3>

1380 1380 

1381Claude Code 在项目的 `.claude/settings.json` 或 `.claude/settings.local.json` 中找到了 `permissions.allow` 规则或 `permissions.additionalDirectories` 条目,但未应用它们,因为[项目设置中的允许规则需要工作区信任](/zh-CN/permissions#project-allow-rules-and-workspace-trust)。消息中的计数、设置名称和文件名会根据您的配置而变化。`deny` 和 `ask` 规则不受影响。1381Claude Code 在项目的 `.claude/settings.json` 或 `.claude/settings.local.json` 中找到了 `permissions.allow` 规则或 `permissions.additionalDirectories` 条目,但未应用它们,因为[项目设置中的允许规则需要工作区信任](/docs/zh-CN/permissions#project-allow-rules-and-workspace-trust)。消息中的计数、设置名称和文件名会根据您的配置而变化。`deny` 和 `ask` 规则不受影响。

1382 1382 

1383```text theme={null}1383```text theme={null}

1384Ignoring 2 permissions.allow entries from .claude/settings.local.json: this workspace has not been trusted. Run Claude Code interactively here once and accept the trust dialog, or set projects["/Users/you/project"].hasTrustDialogAccepted: true in /Users/you/.claude.json.1384Ignoring 2 permissions.allow entries from .claude/settings.local.json: this workspace has not been trusted. Run Claude Code interactively here once and accept the trust dialog, or set projects["/Users/you/project"].hasTrustDialogAccepted: true in /Users/you/.claude.json.


1386 1386 

1387**应该做什么:**1387**应该做什么:**

1388 1388 

1389* 在目录中运行 `claude` 并接受信任对话框。{/* min-version: 2.1.200 */}即使父目录已被信任,对话框也会出现,列出被保留的规则,并让您可以拒绝并继续工作而不应用这些规则。在 v2.1.200 之前,在这种情况下不会出现对话框,因此无法在那里完成此步骤。1389* 在目录中运行 `claude` 并接受信任对话框。即使父目录已被信任,对话框也会出现,列出被保留的规则,并让您可以拒绝并继续工作而不应用这些规则。在 v2.1.200 之前,在这种情况下不会出现对话框,因此无法在那里完成此步骤。

1390* 在[非交互模式](/zh-CN/headless)中使用 `-p` 不会显示对话框。使用消息打印的确切 `projects` 密钥在 `~/.claude.json` 中设置 `hasTrustDialogAccepted` 条目。1390* 在[非交互模式](/docs/zh-CN/headless)中使用 `-p` 不会显示对话框。使用消息打印的确切 `projects` 密钥在 `~/.claude.json` 中设置 `hasTrustDialogAccepted` 条目。

1391* {/* min-version: 2.1.200 */}如果消息命名 `.claude/settings.local.json` 并且您在 git 存储库外部或在主目录中启动了 Claude Code,请更新到 v2.1.200 或更高版本。版本 2.1.196 至 2.1.199 在这些工作区中将您自己的 `.claude/settings.local.json` 视为存储库提供的。{/* min-version: 2.1.207 */}在 v2.1.207 及更高版本上,如果您尚未信任该文件夹,在 git 存储库外部更新是不够的:确定文件夹不在存储库内会运行 git,Claude Code 仅在您接受信任对话框后才运行该检查,因此请使用第一步。您的主目录和任何其他[配置主目录](/zh-CN/permissions#project-allow-rules-and-workspace-trust)是豁免的,不需要等待对话框。请参阅[项目允许规则和工作区信任](/zh-CN/permissions#project-allow-rules-and-workspace-trust)。1391* 如果消息命名 `.claude/settings.local.json` 并且您在 git 存储库外部或在主目录中启动了 Claude Code,请更新到 v2.1.200 或更高版本。版本 2.1.196 至 2.1.199 在这些工作区中将您自己的 `.claude/settings.local.json` 视为存储库提供的。在 v2.1.207 及更高版本上,如果您尚未信任该文件夹,在 git 存储库外部更新是不够的:确定文件夹不在存储库内会运行 git,Claude Code 仅在您接受信任对话框后才运行该检查,因此请使用第一步。您的主目录和任何其他[配置主目录](/docs/zh-CN/permissions#project-allow-rules-and-workspace-trust)是豁免的,不需要等待对话框。请参阅[项目允许规则和工作区信任](/docs/zh-CN/permissions#project-allow-rules-and-workspace-trust)。

1392 1392 

1393<h2 id="responses-seem-lower-quality-than-usual">1393<h2 id="responses-seem-lower-quality-than-usual">

1394 回复质量似乎低于预期1394 回复质量似乎低于预期


1396 1396 

1397如果 Claude 的回答似乎不如你预期的那样有能力,但没有显示错误,原因通常是对话状态而不是模型本身。Claude Code 不会无声地更改模型版本。它只能在三种特定情况下切换到备用模型:1397如果 Claude 的回答似乎不如你预期的那样有能力,但没有显示错误,原因通常是对话状态而不是模型本身。Claude Code 不会无声地更改模型版本。它只能在三种特定情况下切换到备用模型:

1398 1398 

1399* 配置的 [`--fallback-model`](/zh-CN/cli-reference#cli-flags) 在可用性错误后接管该轮,并在记录中显示通知1399* 配置的 [`--fallback-model`](/docs/zh-CN/cli-reference#cli-flags) 在可用性错误后接管该轮,并在记录中显示通知

1400* Amazon Bedrock 或 Google Cloud 的 Agent Platform 启动检查发现你的默认模型不可用1400* Amazon Bedrock 或 Google Cloud 的 Agent Platform 启动检查发现你的默认模型不可用

1401* [自动模型备用](/zh-CN/model-config#automatic-model-fallback)在 Fable 5 上将会话移至默认 Opus 模型,并在记录中显示通知1401* [自动模型备用](/docs/zh-CN/model-config#automatic-model-fallback)在 Fable 5 上将会话移至默认 Opus 模型,并在记录中显示通知

1402 1402 

1403下面的模型选择检查捕获第二和第三种情况;第一种情况显示为记录通知而不是 `/model` 更改。[模型配置](/zh-CN/model-config)解释了每个备用何时适用。1403下面的模型选择检查捕获第二和第三种情况;第一种情况显示为记录通知而不是 `/model` 更改。[模型配置](/docs/zh-CN/model-config)解释了每个备用何时适用。

1404 1404 

1405首先检查这些:1405首先检查这些:

1406 1406 

1407* **模型选择**:运行 `/model` 以确认你在预期的模型上。之前的 `/model` 选择或 `ANTHROPIC_MODEL` 环境变量可能使你在比预期更小的模型上。1407* **模型选择**:运行 `/model` 以确认你在预期的模型上。之前的 `/model` 选择或 `ANTHROPIC_MODEL` 环境变量可能使你在比预期更小的模型上。

1408* **努力级别**:运行 `/effort` 以检查当前推理级别,并为困难的调试或设计工作提高它。默认值因模型而异,所以在假设你低于最大值之前请检查。有关每个模型的默认值和 `ultrathink` 快捷方式,请参阅[调整努力级别](/zh-CN/model-config#adjust-effort-level)。1408* **努力级别**:运行 `/effort` 以检查当前推理级别,并为困难的调试或设计工作提高它。默认值因模型而异,所以在假设你低于最大值之前请检查。有关每个模型的默认值和 `ultrathink` 快捷方式,请参阅[调整努力级别](/docs/zh-CN/model-config#adjust-effort-level)。

1409* **上下文压力**:运行 `/context` 以查看窗口有多满。如果接近容量,在自然断点处运行 `/compact` 或运行 `/clear` 以重新开始。有关自动压缩如何影响早期轮次的信息,请参阅[探索上下文窗口](/zh-CN/context-window)。1409* **上下文压力**:运行 `/context` 以查看窗口有多满。如果接近容量,在自然断点处运行 `/compact` 或运行 `/clear` 以重新开始。有关自动压缩如何影响早期轮次的信息,请参阅[探索上下文窗口](/docs/zh-CN/context-window)。

1410* **过时的指令**:大型或过时的 `CLAUDE.md` 文件和 MCP 工具定义会消耗上下文并可能引导回复。{/* min-version: 2.1.205 */}`/doctor` 检查会标记超大内存文件和未使用的扩展,`/context` 显示 MCP 工具令牌使用情况。在 v2.1.205 之前,`/doctor` 打开一个诊断屏幕,标记超大内存文件和子代理定义。1410* **过时的指令**:大型或过时的 `CLAUDE.md` 文件和 MCP 工具定义会消耗上下文并可能引导回复。`/doctor` 检查会标记超大内存文件和未使用的扩展,`/context` 显示 MCP 工具令牌使用情况。在 v2.1.205 之前,`/doctor` 打开一个诊断屏幕,标记超大内存文件和子代理定义。

1411 1411 

1412当回复出错时,回退通常比用更正回复效果更好。按 Esc 两次或运行 `/rewind` 以回到坏轮之前,然后用更具体的内容重新表述提示。在线程中更正会将错误的尝试保留在上下文中,这可能会将后来的答案锚定到它。请参阅[检查点](/zh-CN/checkpointing)。1412当回复出错时,回退通常比用更正回复效果更好。按 Esc 两次或运行 `/rewind` 以回到坏轮之前,然后用更具体的内容重新表述提示。在线程中更正会将错误的尝试保留在上下文中,这可能会将后来的答案锚定到它。请参阅[检查点](/docs/zh-CN/checkpointing)。

1413 1413 

1414如果在检查上述内容后质量仍然似乎有问题,运行 `/feedback` 并描述你期望的内容与你得到的内容。以这种方式提交的反馈包括对话记录,这是 Anthropic 诊断真实回归的最快方式。如果 `/feedback` 在你的环境中不可用,请参阅[报告错误](#report-an-error)。1414如果在检查上述内容后质量仍然似乎有问题,运行 `/feedback` 并描述你期望的内容与你得到的内容。以这种方式提交的反馈包括对话记录,这是 Anthropic 诊断真实回归的最快方式。如果 `/feedback` 在你的环境中不可用,请参阅[报告错误](#report-an-error)。

1415 1415 

1416如果 Claude 警告可疑的提示注入,或因可疑注入而拒绝请求,并且警告命名的文本是 Claude Code 自动添加到对话中的上下文而不是文件或网络内容,运行 `claude update` 并重试。如果更新后警告重复出现,[报告它](#report-an-error)而不是将标记的内容粘贴回提示中。{/* min-version: 2.1.201 */}在 v2.1.201 之前,Sonnet 5 以相同的方式拒绝了一些请求。1416如果 Claude 警告可疑的提示注入,或因可疑注入而拒绝请求,并且警告命名的文本是 Claude Code 自动添加到对话中的上下文而不是文件或网络内容,运行 `claude update` 并重试。如果更新后警告重复出现,[报告它](#report-an-error)而不是将标记的内容粘贴回提示中。在 v2.1.201 之前,Sonnet 5 以相同的方式拒绝了一些请求。

1417 1417 

1418<h2 id="report-an-error">1418<h2 id="report-an-error">

1419 报告错误1419 报告错误


1421 1421 

1422对于此页面未涵盖的组件错误,请参阅相关指南:1422对于此页面未涵盖的组件错误,请参阅相关指南:

1423 1423 

1424* MCP 服务器连接或身份验证失败:[MCP](/zh-CN/mcp)1424* MCP 服务器连接或身份验证失败:[MCP](/docs/zh-CN/mcp)

1425* Hook 脚本失败或阻止了工具:[调试 hooks](/zh-CN/hooks#debug-hooks)1425* Hook 脚本失败或阻止了工具:[调试 hooks](/docs/zh-CN/hooks#debug-hooks)

1426* 安装期间权限被拒绝或文件系统错误:[排查安装和登录问题](/zh-CN/troubleshoot-install)1426* 安装期间权限被拒绝或文件系统错误:[排查安装和登录问题](/docs/zh-CN/troubleshoot-install)

1427 1427 

1428如果此处未列出错误或建议的修复方法无法帮助:1428如果此处未列出错误或建议的修复方法无法帮助:

1429 1429 

1430* 在 Claude Code 中运行 `/feedback` 将记录和描述发送给 Anthropic。该命令还提供打开预填充的 GitHub issue 的选项。发送到 Anthropic 需要[身份验证](/zh-CN/authentication)。在 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 和其他第三方提供商上,或者当未配置 Anthropic 凭证时,`/feedback` 会保存一个本地存档,您可以将其发送给您的 Anthropic 账户代表。1430* 在 Claude Code 中运行 `/feedback` 将记录和描述发送给 Anthropic。该命令还提供打开预填充的 GitHub issue 的选项。发送到 Anthropic 需要[身份验证](/docs/zh-CN/authentication)。在 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 和其他第三方提供商上,或者当未配置 Anthropic 凭证时,`/feedback` 会保存一个本地存档,您可以将其发送给您的 Anthropic 账户代表。

1431* 从您的 shell 中运行 `claude doctor` 以获取安装的只读诊断,或在 Claude Code 中运行 `/doctor` 检查以查找和修复设置问题1431* 从您的 shell 中运行 `claude doctor` 以获取安装的只读诊断,或在 Claude Code 中运行 `/doctor` 检查以查找和修复设置问题

1432* 检查 [status.claude.com](https://status.claude.com) 以了解活跃的事件1432* 检查 [status.claude.com](https://status.claude.com) 以了解活跃的事件

1433* 在 GitHub 上搜索[现有问题](https://github.com/anthropics/claude-code/issues)1433* 在 GitHub 上搜索[现有问题](https://github.com/anthropics/claude-code/issues)

fast-mode.md +11 −11

Details

32通过以下任一方式切换快速模式:32通过以下任一方式切换快速模式:

33 33 

34* 输入 `/fast` 并按 Tab 键打开或关闭34* 输入 `/fast` 并按 Tab 键打开或关闭

35* 在您的[用户设置文件](/zh-CN/settings)中设置 `"fastMode": true`35* 在您的[用户设置文件](/docs/zh-CN/settings)中设置 `"fastMode": true`

36 36 

37默认情况下,在交互式会话中打开的快速模式在会话之间保持。{/* min-version: 2.1.205 */}在[非交互式模式](/zh-CN/headless)中,使用 `-p` 标志,`/fast` 仅在使用快速模式在其 [`--settings`](/zh-CN/cli-reference#cli-flags) 值中启动的会话中工作,例如 `claude -p --settings '{"fastMode": true}'`;切换然后仅适用于该会话,不会保存为您的默认值,在任何其他非交互式会话中,该命令报告快速模式不可用。您可以配置快速模式在每个会话时重置。有关详细信息,请参阅[要求每个会话选择加入](#require-per-session-opt-in)。37默认情况下,在交互式会话中打开的快速模式在会话之间保持。在[非交互式模式](/docs/zh-CN/headless)中,使用 `-p` 标志,`/fast` 仅在使用快速模式在其 [`--settings`](/docs/zh-CN/cli-reference#cli-flags) 值中启动的会话中工作,例如 `claude -p --settings '{"fastMode": true}'`;切换然后仅适用于该会话,不会保存为您的默认值,在任何其他非交互式会话中,该命令报告快速模式不可用。您可以配置快速模式在每个会话时重置。有关详细信息,请参阅[要求每个会话选择加入](#require-per-session-opt-in)。

38 38 

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

40 40 


47 47 

48当您再次使用 `/fast` 禁用快速模式时,您仍然保持在 Opus 上。模型不会恢复到您之前的模型。要切换到不同的模型,请使用 `/model`。48当您再次使用 `/fast` 禁用快速模式时,您仍然保持在 Opus 上。模型不会恢复到您之前的模型。要切换到不同的模型,请使用 `/model`。

49 49 

50切换到不支持快速模式的模型会关闭快速模式。{/* min-version: 2.1.208 */}切换回支持的 Opus 模型时,当您保存的快速模式偏好设置为打开时,它会再次打开,这与新会话默认启动的偏好设置相同。配置了[每个会话选择加入](#require-per-session-opt-in)后,切换回不会再次打开快速模式;运行 `/fast` 以重新启用它。快速模式永远不会为保存的偏好设置为关闭的会话打开,`↯` 图标和 `Fast mode ON` 确认在激活时出现。在 v2.1.208 之前,快速模式在您切换回后保持关闭,直到您再次运行 `/fast`。50切换到不支持快速模式的模型会关闭快速模式。切换回支持的 Opus 模型时,当您保存的快速模式偏好设置为打开时,它会再次打开,这与新会话默认启动的偏好设置相同。配置了[每个会话选择加入](#require-per-session-opt-in)后,切换回不会再次打开快速模式;运行 `/fast` 以重新启用它。快速模式永远不会为保存的偏好设置为关闭的会话打开,`↯` 图标和 `Fast mode ON` 确认在激活时出现。在 v2.1.208 之前,快速模式在您切换回后保持关闭,直到您再次运行 `/fast`。

51 51 

52Opus 4.8 是 Claude Code v2.1.154 及更高版本中的快速模式默认值。在 v2.1.142 到 v2.1.153 版本中,快速模式默认为 Opus 4.7。52Opus 4.8 是 Claude Code v2.1.154 及更高版本中的快速模式默认值。在 v2.1.142 到 v2.1.153 版本中,快速模式默认为 Opus 4.7。

53 53 


64 64 

65快速模式定价在整个 1M 令牌上下文窗口中是固定的。有关要比较的标准 Opus 费率,请参阅 [Claude 定价参考](https://platform.claude.com/docs/zh-CN/about-claude/pricing)。65快速模式定价在整个 1M 令牌上下文窗口中是固定的。有关要比较的标准 Opus 费率,请参阅 [Claude 定价参考](https://platform.claude.com/docs/zh-CN/about-claude/pricing)。

66 66 

67在对话中首次启用快速模式时,您需要为整个对话上下文支付完整的快速模式未缓存输入令牌价格。对话进行得越深入,成本就越高,因此从一开始就启用快速模式更便宜。该成本每个对话只应用一次,因此稍后关闭快速模式再打开不会重复收费。有关机制,请参阅 [快速模式如何与提示缓存交互](/zh-CN/prompt-caching#turning-on-fast-mode)。67在对话中首次启用快速模式时,您需要为整个对话上下文支付完整的快速模式未缓存输入令牌价格。对话进行得越深入,成本就越高,因此从一开始就启用快速模式更便宜。该成本每个对话只应用一次,因此稍后关闭快速模式再打开不会重复收费。有关机制,请参阅 [快速模式如何与提示缓存交互](/docs/zh-CN/prompt-caching#turning-on-fast-mode)。

68 68 

69<h2 id="decide-when-to-use-fast-mode">69<h2 id="decide-when-to-use-fast-mode">

70 决定何时使用快速模式70 决定何时使用快速模式


93| **快速模式** | 相同的模型质量,更低的延迟,更高的成本 |93| **快速模式** | 相同的模型质量,更低的延迟,更高的成本 |

94| **较低的努力级别** | 更少的思考时间,更快的响应,在复杂任务上可能质量较低 |94| **较低的努力级别** | 更少的思考时间,更快的响应,在复杂任务上可能质量较低 |

95 95 

96您可以结合两者:在直接任务上使用快速模式和较低的[努力级别](/zh-CN/model-config#adjust-effort-level)以获得最大速度。96您可以结合两者:在直接任务上使用快速模式和较低的[努力级别](/docs/zh-CN/model-config#adjust-effort-level)以获得最大速度。

97 97 

98<h2 id="requirements">98<h2 id="requirements">

99 要求99 要求


111* **团队和企业的所有者启用**:快速模式默认对团队和企业组织禁用。所有者必须明确[启用快速模式](#enable-fast-mode-for-your-organization),用户才能访问它。111* **团队和企业的所有者启用**:快速模式默认对团队和企业组织禁用。所有者必须明确[启用快速模式](#enable-fast-mode-for-your-organization),用户才能访问它。

112 112 

113<Note>113<Note>

114 如果您的组织尚未启用快速模式,`/fast` 命令将显示"Fast mode has been disabled by your organization."。如果您的组织的 [`availableModels`](/zh-CN/model-config#restrict-model-selection) 允许列表排除了快速模式 Opus 模型,`/fast` 将被拒绝,显示"is not in your organization's allowed models"。例外情况是已在支持快速模式的允许 Opus 模型上运行的会话:`/fast` 随后在您当前的模型上启用快速模式,而不是切换模型。114 如果您的组织尚未启用快速模式,`/fast` 命令将显示"Fast mode has been disabled by your organization."。如果您的组织的 [`availableModels`](/docs/zh-CN/model-config#restrict-model-selection) 允许列表排除了快速模式 Opus 模型,`/fast` 将被拒绝,显示"is not in your organization's allowed models"。例外情况是已在支持快速模式的允许 Opus 模型上运行的会话:`/fast` 随后在您当前的模型上启用快速模式,而不是切换模型。

115</Note>115</Note>

116 116 

117<h3 id="enable-fast-mode-for-your-organization">117<h3 id="enable-fast-mode-for-your-organization">


123* **控制台**(API 客户):管理员在 [Claude Code 偏好设置](https://platform.claude.com/claude-code/preferences)中启用它123* **控制台**(API 客户):管理员在 [Claude Code 偏好设置](https://platform.claude.com/claude-code/preferences)中启用它

124* **Claude AI**(团队和企业):所有者在[管理员设置 > Claude Code](https://claude.ai/admin-settings/claude-code)中启用它124* **Claude AI**(团队和企业):所有者在[管理员设置 > Claude Code](https://claude.ai/admin-settings/claude-code)中启用它

125 125 

126另一个完全禁用快速模式的选项是设置 `CLAUDE_CODE_DISABLE_FAST_MODE=1`。请参阅[环境变量](/zh-CN/env-vars)。126另一个完全禁用快速模式的选项是设置 `CLAUDE_CODE_DISABLE_FAST_MODE=1`。请参阅[环境变量](/docs/zh-CN/env-vars)。

127 127 

128<h3 id="require-per-session-opt-in">128<h3 id="require-per-session-opt-in">

129 要求每个会话选择加入129 要求每个会话选择加入

130</h3>130</h3>

131 131 

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

133 133 

134```json theme={null}134```json theme={null}

135{135{


168 另请参阅168 另请参阅

169</h2>169</h2>

170 170 

171* [模型配置](/zh-CN/model-config):切换模型并调整努力级别171* [模型配置](/docs/zh-CN/model-config):切换模型并调整努力级别

172* [有效管理成本](/zh-CN/costs):跟踪令牌使用情况并降低成本172* [有效管理成本](/docs/zh-CN/costs):跟踪令牌使用情况并降低成本

173* [状态行配置](/zh-CN/statusline):显示模型和上下文信息173* [状态行配置](/docs/zh-CN/statusline):显示模型和上下文信息

Details

6 6 

7> 比较 Claude Code 功能在 Anthropic 订阅计划、Anthropic Console、Amazon Bedrock、AWS 上的 Claude Platform、Google Cloud 的 Agent Platform 和 Microsoft Foundry 中的可用性。7> 比较 Claude Code 功能在 Anthropic 订阅计划、Anthropic Console、Amazon Bedrock、AWS 上的 Claude Platform、Google Cloud 的 Agent Platform 和 Microsoft Foundry 中的可用性。

8 8 

9Claude Code CLI 和所有本地运行的功能在每个提供商上的工作方式完全相同。有关每个提供商的设置说明,请参阅[企业部署概述](/zh-CN/third-party-integrations)。要直接跳到您的提供商上缺少的功能,请参阅[按提供商汇总](#summary-by-provider)选项卡。9Claude Code CLI 和所有本地运行的功能在每个提供商上的工作方式完全相同。有关每个提供商的设置说明,请参阅[企业部署概述](/docs/zh-CN/third-party-integrations)。要直接跳到您的提供商上缺少的功能,请参阅[按提供商汇总](#summary-by-provider)选项卡。

10 10 

11在下表中,✓ 表示可用,✗ 表示不可用,"See note"链接到脚注以获取部分支持。✓ 后面的限定符将可用性缩小到该子集,"Admin-enabled"表示该功能处于关闭状态,直到组织管理员将其打开。11在下表中,✓ 表示可用,✗ 表示不可用,"See note"链接到脚注以获取部分支持。✓ 后面的限定符将可用性缩小到该子集,"Admin-enabled"表示该功能处于关闭状态,直到组织管理员将其打开。

12 12 


18 18 

19* **Claude 订阅**:您使用 claude.ai 账户登录 Pro、Max、Team 或 Enterprise 计划19* **Claude 订阅**:您使用 claude.ai 账户登录 Pro、Max、Team 或 Enterprise 计划

20* **Anthropic Console**:您使用 Anthropic API 密钥进行身份验证20* **Anthropic Console**:您使用 Anthropic API 密钥进行身份验证

21* **Amazon Bedrock**:您从 Amazon Bedrock 模型目录中使用 Claude 模型并设置 `CLAUDE_CODE_USE_BEDROCK`。[Mantle 端点](/zh-CN/amazon-bedrock#use-the-mantle-endpoint)(`CLAUDE_CODE_USE_MANTLE`)由此列涵盖21* **Amazon Bedrock**:您从 Amazon Bedrock 模型目录中使用 Claude 模型并设置 `CLAUDE_CODE_USE_BEDROCK`。[Mantle 端点](/docs/zh-CN/amazon-bedrock#use-the-mantle-endpoint)(`CLAUDE_CODE_USE_MANTLE`)由此列涵盖

22* **Claude Platform on AWS**:您通过 AWS Marketplace 购买了 Claude,但调用 Anthropic API,并设置 `CLAUDE_CODE_USE_ANTHROPIC_AWS`22* **Claude Platform on AWS**:您通过 AWS Marketplace 购买了 Claude,但调用 Anthropic API,并设置 `CLAUDE_CODE_USE_ANTHROPIC_AWS`

23* **Google Cloud's Agent Platform**:由 Google 运营;您设置 `CLAUDE_CODE_USE_VERTEX`23* **Google Cloud's Agent Platform**:由 Google 运营;您设置 `CLAUDE_CODE_USE_VERTEX`

24* **Microsoft Foundry**:由 Anthropic 在 Azure 上运营;您设置 `CLAUDE_CODE_USE_FOUNDRY`24* **Microsoft Foundry**:由 Anthropic 在 Azure 上运营;您设置 `CLAUDE_CODE_USE_FOUNDRY`


29 29 

30这些在每个提供商上都有效:30这些在每个提供商上都有效:

31 31 

32* [CLI](/zh-CN/quickstart) 和 [Agent SDK](/zh-CN/agent-sdk/overview)32* [CLI](/docs/zh-CN/quickstart) 和 [Agent SDK](/docs/zh-CN/agent-sdk/overview)

33* [VS Code](/zh-CN/vs-code) 和 [JetBrains](/zh-CN/jetbrains) 扩展33* [VS Code](/docs/zh-CN/vs-code) 和 [JetBrains](/docs/zh-CN/jetbrains) 扩展

34* [Subagents](/zh-CN/sub-agents)、[hooks](/zh-CN/hooks-guide)、[commands](/zh-CN/commands) 和 [skills](/zh-CN/skills)34* [Subagents](/docs/zh-CN/sub-agents)、[hooks](/docs/zh-CN/hooks-guide)、[commands](/docs/zh-CN/commands) 和 [skills](/docs/zh-CN/skills)

35* [CLAUDE.md memory](/zh-CN/memory)、[plugins](/zh-CN/plugins) 和 [MCP servers](/zh-CN/mcp)35* [CLAUDE.md memory](/docs/zh-CN/memory)、[plugins](/docs/zh-CN/plugins) 和 [MCP servers](/docs/zh-CN/mcp)

36* [Checkpoints](/zh-CN/checkpointing)、[sandboxing](/zh-CN/sandboxing) 和 [Workflows](/zh-CN/workflows)36* [Checkpoints](/docs/zh-CN/checkpointing)、[sandboxing](/docs/zh-CN/sandboxing) 和 [Workflows](/docs/zh-CN/workflows)

37* [OpenTelemetry metrics](/zh-CN/monitoring-usage) 和[托管设置文件](/zh-CN/settings#settings-files)37* [OpenTelemetry metrics](/docs/zh-CN/monitoring-usage) 和[托管设置文件](/docs/zh-CN/settings#settings-files)

38 38 

39这三个有提供商特定的差异:39这三个有提供商特定的差异:

40 40 

41* **MCP servers**:[来自 claude.ai 的连接器](/zh-CN/mcp#use-mcp-servers-from-claude-ai)仅在您的 claude.ai 订阅是活跃身份验证方法时加载,[工具搜索](/zh-CN/mcp#configure-tool-search)在 Google Cloud's Agent Platform 上和当 `ANTHROPIC_BASE_URL` 指向非第一方主机时默认关闭41* **MCP servers**:[来自 claude.ai 的连接器](/docs/zh-CN/mcp#use-mcp-servers-from-claude-ai)仅在您的 claude.ai 订阅是活跃身份验证方法时加载,[工具搜索](/docs/zh-CN/mcp#configure-tool-search)在 Google Cloud's Agent Platform 上和当 `ANTHROPIC_BASE_URL` 指向非第一方主机时默认关闭

42* **Subagents**:内置的 [Explore subagent](/zh-CN/sub-agents#built-in-subagents) 在 Claude API 上将其继承的模型限制为 Opus,在任何其他提供商(包括 Claude Platform on AWS)上直接继承主对话的模型42* **Subagents**:内置的 [Explore subagent](/docs/zh-CN/sub-agents#built-in-subagents) 在 Claude API 上将其继承的模型限制为 Opus,在任何其他提供商(包括 Claude Platform on AWS)上直接继承主对话的模型

43* **[Commands](/zh-CN/commands#all-commands)**:`/design-sync` 和 `/radio` 在 Amazon Bedrock、Google Cloud's Agent Platform、Microsoft Foundry 和 Claude Platform on AWS 上不可用,`/voice` 需要 claude.ai 账户43* **[Commands](/docs/zh-CN/commands#all-commands)**:`/design-sync` 和 `/radio` 在 Amazon Bedrock、Google Cloud's Agent Platform、Microsoft Foundry 和 Claude Platform on AWS 上不可用,`/voice` 需要 claude.ai 账户

44 44 

45<h3 id="features-that-require-a-claude-subscription">45<h3 id="features-that-require-a-claude-subscription">

46 需要 Claude 订阅的功能46 需要 Claude 订阅的功能


48 48 

49这些需要使用 claude.ai 账户登录,无法通过 Anthropic Console API 密钥或第三方提供商访问:49这些需要使用 claude.ai 账户登录,无法通过 Anthropic Console API 密钥或第三方提供商访问:

50 50 

51* [网络上的 Claude Code](/zh-CN/claude-code-on-the-web)、移动设备上的 Claude Code 和 [Slack 中的 Claude Code](/zh-CN/slack)51* [网络上的 Claude Code](/docs/zh-CN/claude-code-on-the-web)、移动设备上的 Claude Code 和 [Slack 中的 Claude Code](/docs/zh-CN/slack)

52* [Claude Code Desktop](/zh-CN/desktop)52* [Claude Code Desktop](/docs/zh-CN/desktop)

53* [Routines](/zh-CN/routines)(`/schedule`)53* [Routines](/docs/zh-CN/routines)(`/schedule`)

54* [Ultraplan](/zh-CN/ultraplan) 和 [Ultrareview](/zh-CN/ultrareview)54* [Ultraplan](/docs/zh-CN/ultraplan) 和 [Ultrareview](/docs/zh-CN/ultrareview)

55* [Code Review](/zh-CN/code-review):Team 和 Enterprise 计划55* [Code Review](/docs/zh-CN/code-review):Team 和 Enterprise 计划

56* [Remote Control](/zh-CN/remote-control)56* [Remote Control](/docs/zh-CN/remote-control)

57* [Chrome 扩展](/zh-CN/chrome)57* [Chrome 扩展](/docs/zh-CN/chrome)

58* [Computer use](/zh-CN/computer-use):Pro 和 Max 计划58* [Computer use](/docs/zh-CN/computer-use):Pro 和 Max 计划

59* [Artifacts](/zh-CN/artifacts):Pro、Max、Team 和 Enterprise 计划59* [Artifacts](/docs/zh-CN/artifacts):Pro、Max、Team 和 Enterprise 计划

60* [Voice dictation](/zh-CN/voice-dictation)60* [Voice dictation](/docs/zh-CN/voice-dictation)

61 61 

62Desktop 是部分例外:[网关路由可以在应用中或由管理员配置](/zh-CN/llm-gateway-connect#desktop-app),Enterprise 部署可以通过[托管设置](https://claude.com/docs/third-party/claude-desktop/configuration)将 Desktop 路由到 Google Cloud's Agent Platform 或网关提供商,[Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/overview) 在 Amazon Bedrock、Google Cloud's Agent Platform、Microsoft Foundry 或自托管 LLM 网关上运行 Code 选项卡。有关这些功能的按计划可用性,请参阅[按订阅计划的可用性](#availability-by-subscription-plan)。62Desktop 是部分例外:[网关路由可以在应用中或由管理员配置](/docs/zh-CN/llm-gateway-connect#desktop-app),Enterprise 部署可以通过[托管设置](https://claude.com/docs/third-party/claude-desktop/configuration)将 Desktop 路由到 Google Cloud's Agent Platform 或网关提供商,[Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/overview) 在 Amazon Bedrock、Google Cloud's Agent Platform、Microsoft Foundry 或自托管 LLM 网关上运行 Code 选项卡。有关这些功能的按计划可用性,请参阅[按订阅计划的可用性](#availability-by-subscription-plan)。

63 63 

64<h3 id="cli-capabilities-that-vary-by-provider">64<h3 id="cli-capabilities-that-vary-by-provider">

65 按提供商变化的 CLI 功能65 按提供商变化的 CLI 功能


82 82 

83 <tbody>83 <tbody>

84 <tr>84 <tr>

85 <td>[Web search](/zh-CN/tools-reference#websearch-tool-behavior)</td>85 <td>[Web search](/docs/zh-CN/tools-reference#websearch-tool-behavior)</td>

86 <td>✓</td>86 <td>✓</td>

87 <td>✓</td>87 <td>✓</td>

88 <td>✗</td>88 <td>✗</td>


92 </tr>92 </tr>

93 93 

94 <tr>94 <tr>

95 <td>[Fast mode](/zh-CN/fast-mode)</td>95 <td>[Fast mode](/docs/zh-CN/fast-mode)</td>

96 <td>✓</td>96 <td>✓</td>

97 <td>✓</td>97 <td>✓</td>

98 <td>✗</td>98 <td>✗</td>


102 </tr>102 </tr>

103 103 

104 <tr>104 <tr>

105 <td>[Auto mode](/zh-CN/auto-mode-config)</td>105 <td>[Auto mode](/docs/zh-CN/auto-mode-config)</td>

106 <td>✓</td>106 <td>✓</td>

107 <td>✓</td>107 <td>✓</td>

108 <td>参见注释 <sup><a href="#fn2">2</a></sup></td>108 <td>参见注释 <sup><a href="#fn2">2</a></sup></td>


112 </tr>112 </tr>

113 113 

114 <tr>114 <tr>

115 <td>[Advisor](/zh-CN/advisor)</td>115 <td>[Advisor](/docs/zh-CN/advisor)</td>

116 <td>✓</td>116 <td>✓</td>

117 <td>✓</td>117 <td>✓</td>

118 <td>✗</td>118 <td>✗</td>


122 </tr>122 </tr>

123 123 

124 <tr>124 <tr>

125 <td>[Channels](/zh-CN/channels)</td>125 <td>[Channels](/docs/zh-CN/channels)</td>

126 <td>✓</td>126 <td>✓</td>

127 <td>✓</td>127 <td>✓</td>

128 <td>✗</td>128 <td>✗</td>


132 </tr>132 </tr>

133 133 

134 <tr>134 <tr>

135 <td>[`/loop` 计划任务](/zh-CN/scheduled-tasks)</td>135 <td>[`/loop` 计划任务](/docs/zh-CN/scheduled-tasks)</td>

136 <td>✓</td>136 <td>✓</td>

137 <td>✓</td>137 <td>✓</td>

138 <td>参见注释 <sup><a href="#fn3">3</a></sup></td>138 <td>参见注释 <sup><a href="#fn3">3</a></sup></td>


142 </tr>142 </tr>

143 143 

144 <tr>144 <tr>

145 <td>[GitHub Actions](/zh-CN/github-actions) 和 [GitLab CI/CD](/zh-CN/gitlab-ci-cd)</td>145 <td>[GitHub Actions](/docs/zh-CN/github-actions) 和 [GitLab CI/CD](/docs/zh-CN/gitlab-ci-cd)</td>

146 <td>✓</td>146 <td>✓</td>

147 <td>✓</td>147 <td>✓</td>

148 <td>✓</td>148 <td>✓</td>


174 174 

175 <tbody>175 <tbody>

176 <tr>176 <tr>

177 <td>[Analytics dashboard and API](/zh-CN/analytics)</td>177 <td>[Analytics dashboard and API](/docs/zh-CN/analytics)</td>

178 <td>✓ (dashboard: Team 和 Enterprise; API: Enterprise)</td>178 <td>✓ (dashboard: Team 和 Enterprise; API: Enterprise)</td>

179 <td>✓ <sup><a href="#fn5">5</a></sup></td>179 <td>✓ <sup><a href="#fn5">5</a></sup></td>

180 <td>✗</td>180 <td>✗</td>


184 </tr>184 </tr>

185 185 

186 <tr>186 <tr>

187 <td>[Server-managed settings](/zh-CN/server-managed-settings)</td>187 <td>[Server-managed settings](/docs/zh-CN/server-managed-settings)</td>

188 <td>✓ (Team 和 Enterprise)</td>188 <td>✓ (Team 和 Enterprise)</td>

189 <td>✓ (Team 和 Enterprise)</td>189 <td>✓ (Team 和 Enterprise)</td>

190 <td>✗</td>190 <td>✗</td>


194 </tr>194 </tr>

195 195 

196 <tr>196 <tr>

197 <td>[Zero Data Retention](/zh-CN/zero-data-retention)</td>197 <td>[Zero Data Retention](/docs/zh-CN/zero-data-retention)</td>

198 <td>✓ (合格的 Enterprise 账户)</td>198 <td>✓ (合格的 Enterprise 账户)</td>

199 <td>✓ (合格的账户)</td>199 <td>✓ (合格的账户)</td>

200 <td>See note <sup><a href="#fn4">4</a></sup></td>200 <td>See note <sup><a href="#fn4">4</a></sup></td>


206</table>206</table>

207 207 

208<span id="fn1" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>1</sup> 在 Google Cloud's Agent Platform 上,web search 适用于 Claude 4 及更高版本的模型。<br />208<span id="fn1" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>1</sup> 在 Google Cloud's Agent Platform 上,web search 适用于 Claude 4 及更高版本的模型。<br />

209<span id="fn2" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>2</sup> 在这些提供商上,auto mode 仅支持 Claude Sonnet 5、Opus 4.7 和 Opus 4.8。请参阅 [Auto mode 配置](/zh-CN/auto-mode-config)。{/* min-version: 2.1.207 */}在 v2.1.158 到 v2.1.206 中,这些提供商上的 auto mode 还需要设置 `CLAUDE_CODE_ENABLE_AUTO_MODE=1`;v2.1.207 移除了该要求。<br />209<span id="fn2" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>2</sup> 在这些提供商上,auto mode 仅支持 Claude Sonnet 5、Opus 4.7 和 Opus 4.8。请参阅 [Auto mode 配置](/docs/zh-CN/auto-mode-config)。在 v2.1.158 到 v2.1.206 中,这些提供商上的 auto mode 还需要设置 `CLAUDE_CODE_ENABLE_AUTO_MODE=1`;v2.1.207 移除了该要求。<br />

210<span id="fn3" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>3</sup> 显式间隔(如 `/loop every 2 hours`)在每个提供商上都有效。在 Amazon Bedrock、Claude Platform on AWS、Google Cloud's Agent Platform 和 Microsoft Foundry 上,`/loop` 无法选择自己的间隔或提供默认维护提示,因此没有间隔的提示每 10 分钟运行一次,没有参数的 `/loop` 显示使用消息。请参阅[计划任务](/zh-CN/scheduled-tasks)。<br />210<span id="fn3" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>3</sup> 显式间隔(如 `/loop every 2 hours`)在每个提供商上都有效。在 Amazon Bedrock、Claude Platform on AWS、Google Cloud's Agent Platform 和 Microsoft Foundry 上,`/loop` 无法选择自己的间隔或提供默认维护提示,因此没有间隔的提示每 10 分钟运行一次,没有参数的 `/loop` 显示使用消息。请参阅[计划任务](/docs/zh-CN/scheduled-tasks)。<br />

211<span id="fn4" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>4</sup> 受您与云提供商的协议约束。<br />211<span id="fn4" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>4</sup> 受您与云提供商的协议约束。<br />

212<span id="fn5" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>5</sup> 仅限仪表板和 API。[贡献指标](/zh-CN/analytics#enable-contribution-metrics)需要 claude.ai Team 或 Enterprise 组织。212<span id="fn5" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>5</sup> 仅限仪表板和 API。[贡献指标](/docs/zh-CN/analytics#enable-contribution-metrics)需要 claude.ai Team 或 Enterprise 组织。

213 213 

214<Note>214<Note>

215 如果您通过 [LLM gateway](/zh-CN/llm-gateway) 进行身份验证,功能可用性与网关转发到的基础提供商相匹配。某些仅限 Anthropic 的功能(如 [Advisor](/zh-CN/advisor))仅在网关将请求完整转发到 Anthropic API 时才有效。215 如果您通过 [LLM gateway](/docs/zh-CN/llm-gateway) 进行身份验证,功能可用性与网关转发到的基础提供商相匹配。某些仅限 Anthropic 的功能(如 [Advisor](/docs/zh-CN/advisor))仅在网关将请求完整转发到 Anthropic API 时才有效。

216</Note>216</Note>

217 217 

218<h3 id="summary-by-provider">218<h3 id="summary-by-provider">

219 按提供商汇总219 按提供商汇总

220</h3>220</h3>

221 221 

222每个选项卡列出了该提供商上不可用或部分支持的内容,以及存在替代方案的地方。未列出的所有内容的工作方式与 Claude 订阅上相同,除了上面注明的[提供商特定的差异](#features-available-on-every-provider)。在 Amazon Bedrock、Google Cloud's Agent Platform、Microsoft Foundry 和 Claude Platform on AWS 上,错误报告和遥测到 Anthropic 默认处于关闭状态。请参阅[按 API 提供商的默认行为](/zh-CN/data-usage#default-behaviors-by-api-provider)了解哪些流量仍然到达 Anthropic 以及如何选择退出。222每个选项卡列出了该提供商上不可用或部分支持的内容,以及存在替代方案的地方。未列出的所有内容的工作方式与 Claude 订阅上相同,除了上面注明的[提供商特定的差异](#features-available-on-every-provider)。在 Amazon Bedrock、Google Cloud's Agent Platform、Microsoft Foundry 和 Claude Platform on AWS 上,错误报告和遥测到 Anthropic 默认处于关闭状态。请参阅[按 API 提供商的默认行为](/docs/zh-CN/data-usage#default-behaviors-by-api-provider)了解哪些流量仍然到达 Anthropic 以及如何选择退出。

223 223 

224<Tabs>224<Tabs>

225 <Tab title="Amazon Bedrock">225 <Tab title="Amazon Bedrock">

226 **不可用:** 所有[需要 Claude 订阅的功能](#features-that-require-a-claude-subscription),加上 [web search](/zh-CN/tools-reference#websearch-tool-behavior)、[fast mode](/zh-CN/fast-mode)、[Advisor](/zh-CN/advisor)、[Channels](/zh-CN/channels)、[analytics dashboard](/zh-CN/analytics)、[server-managed settings](/zh-CN/server-managed-settings) 和 [`/design-sync` 和 `/radio` 命令](/zh-CN/commands#all-commands)。226 **不可用:** 所有[需要 Claude 订阅的功能](#features-that-require-a-claude-subscription),加上 [web search](/docs/zh-CN/tools-reference#websearch-tool-behavior)、[fast mode](/docs/zh-CN/fast-mode)、[Advisor](/docs/zh-CN/advisor)、[Channels](/docs/zh-CN/channels)、[analytics dashboard](/docs/zh-CN/analytics)、[server-managed settings](/docs/zh-CN/server-managed-settings) 和 [`/design-sync` 和 `/radio` 命令](/docs/zh-CN/commands#all-commands)。

227 227 

228 **部分支持:**228 **部分支持:**

229 229 

230 * [Desktop](/zh-CN/desktop):仅通过 [Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/overview)230 * [Desktop](/docs/zh-CN/desktop):仅通过 [Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/overview)

231 * [Auto mode](/zh-CN/auto-mode-config):仅 Sonnet 5、Opus 4.7 和 Opus 4.8231 * [Auto mode](/docs/zh-CN/auto-mode-config):仅 Sonnet 5、Opus 4.7 和 Opus 4.8

232 * [`/loop`](/zh-CN/scheduled-tasks):仅显式间隔232 * [`/loop`](/docs/zh-CN/scheduled-tasks):仅显式间隔

233 * [Zero Data Retention](/zh-CN/zero-data-retention):受您的 AWS 协议约束233 * [Zero Data Retention](/docs/zh-CN/zero-data-retention):受您的 AWS 协议约束

234 234 

235 **替代方案:** 对于调度,使用带有显式间隔的 [`/loop`](/zh-CN/scheduled-tasks) 而不是 `/schedule`。对于云会话,使用 [GitHub Actions](/zh-CN/github-actions) 或 [GitLab CI/CD](/zh-CN/gitlab-ci-cd)。对于网络查询,使用带有特定 URL 的 [WebFetch tool](/zh-CN/tools-reference#webfetch-tool-behavior)。235 **替代方案:** 对于调度,使用带有显式间隔的 [`/loop`](/docs/zh-CN/scheduled-tasks) 而不是 `/schedule`。对于云会话,使用 [GitHub Actions](/docs/zh-CN/github-actions) 或 [GitLab CI/CD](/docs/zh-CN/gitlab-ci-cd)。对于网络查询,使用带有特定 URL 的 [WebFetch tool](/docs/zh-CN/tools-reference#webfetch-tool-behavior)。

236 </Tab>236 </Tab>

237 237 

238 <Tab title="Claude Platform on AWS">238 <Tab title="Claude Platform on AWS">

239 **不可用:** 所有[需要 Claude 订阅的功能](#features-that-require-a-claude-subscription),加上 [fast mode](/zh-CN/fast-mode)、[Advisor](/zh-CN/advisor)、[Channels](/zh-CN/channels)、[analytics dashboard](/zh-CN/analytics)、[server-managed settings](/zh-CN/server-managed-settings) 和 [`/design-sync` 和 `/radio` 命令](/zh-CN/commands#all-commands)。239 **不可用:** 所有[需要 Claude 订阅的功能](#features-that-require-a-claude-subscription),加上 [fast mode](/docs/zh-CN/fast-mode)、[Advisor](/docs/zh-CN/advisor)、[Channels](/docs/zh-CN/channels)、[analytics dashboard](/docs/zh-CN/analytics)、[server-managed settings](/docs/zh-CN/server-managed-settings) 和 [`/design-sync` 和 `/radio` 命令](/docs/zh-CN/commands#all-commands)。

240 240 

241 **Amazon Bedrock 不可用的地方可用:** [web search](/zh-CN/tools-reference#websearch-tool-behavior)。241 **Amazon Bedrock 不可用的地方可用:** [web search](/docs/zh-CN/tools-reference#websearch-tool-behavior)。

242 242 

243 **部分支持:**243 **部分支持:**

244 244 

245 * [`/loop`](/zh-CN/scheduled-tasks):仅显式间隔245 * [`/loop`](/docs/zh-CN/scheduled-tasks):仅显式间隔

246 246 

247 **替代方案:** 对于调度,使用带有显式间隔的 [`/loop`](/zh-CN/scheduled-tasks) 而不是 `/schedule`。对于云会话,使用 [GitHub Actions](/zh-CN/github-actions) 或 [GitLab CI/CD](/zh-CN/gitlab-ci-cd)。247 **替代方案:** 对于调度,使用带有显式间隔的 [`/loop`](/docs/zh-CN/scheduled-tasks) 而不是 `/schedule`。对于云会话,使用 [GitHub Actions](/docs/zh-CN/github-actions) 或 [GitLab CI/CD](/docs/zh-CN/gitlab-ci-cd)。

248 </Tab>248 </Tab>

249 249 

250 <Tab title="Google Cloud's Agent Platform">250 <Tab title="Google Cloud's Agent Platform">

251 **不可用:** 所有[需要 Claude 订阅的功能](#features-that-require-a-claude-subscription),加上 [fast mode](/zh-CN/fast-mode)、[Advisor](/zh-CN/advisor)、[Channels](/zh-CN/channels)、[analytics dashboard](/zh-CN/analytics)、[server-managed settings](/zh-CN/server-managed-settings) 和 [`/design-sync` 和 `/radio` 命令](/zh-CN/commands#all-commands)。251 **不可用:** 所有[需要 Claude 订阅的功能](#features-that-require-a-claude-subscription),加上 [fast mode](/docs/zh-CN/fast-mode)、[Advisor](/docs/zh-CN/advisor)、[Channels](/docs/zh-CN/channels)、[analytics dashboard](/docs/zh-CN/analytics)、[server-managed settings](/docs/zh-CN/server-managed-settings) 和 [`/design-sync` 和 `/radio` 命令](/docs/zh-CN/commands#all-commands)。

252 252 

253 **部分支持:**253 **部分支持:**

254 254 

255 * [Desktop](/zh-CN/desktop):通过[托管设置](https://claude.com/docs/third-party/claude-desktop/configuration)或 [Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/overview)255 * [Desktop](/docs/zh-CN/desktop):通过[托管设置](https://claude.com/docs/third-party/claude-desktop/configuration)或 [Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/overview)

256 * [Web search](/zh-CN/tools-reference#websearch-tool-behavior):Claude 4 及更高版本的模型256 * [Web search](/docs/zh-CN/tools-reference#websearch-tool-behavior):Claude 4 及更高版本的模型

257 * [Auto mode](/zh-CN/auto-mode-config):仅 Sonnet 5、Opus 4.7 和 Opus 4.8257 * [Auto mode](/docs/zh-CN/auto-mode-config):仅 Sonnet 5、Opus 4.7 和 Opus 4.8

258 * [`/loop`](/zh-CN/scheduled-tasks):仅显式间隔258 * [`/loop`](/docs/zh-CN/scheduled-tasks):仅显式间隔

259 * [Zero Data Retention](/zh-CN/zero-data-retention):受您的 Google Cloud 协议约束259 * [Zero Data Retention](/docs/zh-CN/zero-data-retention):受您的 Google Cloud 协议约束

260 260 

261 **替代方案:** 对于调度,使用带有显式间隔的 [`/loop`](/zh-CN/scheduled-tasks) 而不是 `/schedule`。对于云会话,使用 [GitHub Actions](/zh-CN/github-actions) 或 [GitLab CI/CD](/zh-CN/gitlab-ci-cd)。261 **替代方案:** 对于调度,使用带有显式间隔的 [`/loop`](/docs/zh-CN/scheduled-tasks) 而不是 `/schedule`。对于云会话,使用 [GitHub Actions](/docs/zh-CN/github-actions) 或 [GitLab CI/CD](/docs/zh-CN/gitlab-ci-cd)。

262 </Tab>262 </Tab>

263 263 

264 <Tab title="Microsoft Foundry">264 <Tab title="Microsoft Foundry">

265 **不可用:** 所有[需要 Claude 订阅的功能](#features-that-require-a-claude-subscription),加上 [fast mode](/zh-CN/fast-mode)、[Advisor](/zh-CN/advisor)、[Channels](/zh-CN/channels)、[GitHub Actions](/zh-CN/github-actions) 和 [GitLab CI/CD](/zh-CN/gitlab-ci-cd)、[analytics dashboard](/zh-CN/analytics)、[server-managed settings](/zh-CN/server-managed-settings) 和 [`/design-sync` 和 `/radio` 命令](/zh-CN/commands#all-commands)。265 **不可用:** 所有[需要 Claude 订阅的功能](#features-that-require-a-claude-subscription),加上 [fast mode](/docs/zh-CN/fast-mode)、[Advisor](/docs/zh-CN/advisor)、[Channels](/docs/zh-CN/channels)、[GitHub Actions](/docs/zh-CN/github-actions) 和 [GitLab CI/CD](/docs/zh-CN/gitlab-ci-cd)、[analytics dashboard](/docs/zh-CN/analytics)、[server-managed settings](/docs/zh-CN/server-managed-settings) 和 [`/design-sync` 和 `/radio` 命令](/docs/zh-CN/commands#all-commands)。

266 266 

267 **部分支持:**267 **部分支持:**

268 268 

269 * [Desktop](/zh-CN/desktop):仅通过 [Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/overview)269 * [Desktop](/docs/zh-CN/desktop):仅通过 [Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/overview)

270 * [Auto mode](/zh-CN/auto-mode-config):仅 Sonnet 5、Opus 4.7 和 Opus 4.8270 * [Auto mode](/docs/zh-CN/auto-mode-config):仅 Sonnet 5、Opus 4.7 和 Opus 4.8

271 * [`/loop`](/zh-CN/scheduled-tasks):仅显式间隔271 * [`/loop`](/docs/zh-CN/scheduled-tasks):仅显式间隔

272 * [Zero Data Retention](/zh-CN/zero-data-retention):受您的 Azure 协议约束272 * [Zero Data Retention](/docs/zh-CN/zero-data-retention):受您的 Azure 协议约束

273 273 

274 **替代方案:** 对于调度,使用带有显式间隔的 [`/loop`](/zh-CN/scheduled-tasks) 而不是 `/schedule`。274 **替代方案:** 对于调度,使用带有显式间隔的 [`/loop`](/docs/zh-CN/scheduled-tasks) 而不是 `/schedule`。

275 </Tab>275 </Tab>

276 276 

277 <Tab title="Anthropic Console">277 <Tab title="Anthropic Console">

278 **不可用:** 所有[需要 Claude 订阅的功能](#features-that-require-a-claude-subscription)。278 **不可用:** 所有[需要 Claude 订阅的功能](#features-that-require-a-claude-subscription)。

279 279 

280 [按提供商变化的 CLI 功能](#cli-capabilities-that-vary-by-provider)中的所有内容都可用,当 API 密钥属于 Team 或 Enterprise 组织时,[server-managed settings](/zh-CN/server-managed-settings) 也可用。280 [按提供商变化的 CLI 功能](#cli-capabilities-that-vary-by-provider)中的所有内容都可用,当 API 密钥属于 Team 或 Enterprise 组织时,[server-managed settings](/docs/zh-CN/server-managed-settings) 也可用。

281 </Tab>281 </Tab>

282</Tabs>282</Tabs>

283 283 


289 289 

290| 功能 | Pro | Max | Team | Enterprise |290| 功能 | Pro | Max | Team | Enterprise |

291| :-------------------------------------------------------------------------- | :-- | :-- | :------------ | :-------------------------------- |291| :-------------------------------------------------------------------------- | :-- | :-- | :------------ | :-------------------------------- |

292| [网络上的 Claude Code](/zh-CN/claude-code-on-the-web) | ✓ | ✓ | ✓ | ✓ <sup><a href="#fn6">6</a></sup> |292| [网络上的 Claude Code](/docs/zh-CN/claude-code-on-the-web) | ✓ | ✓ | ✓ | ✓ <sup><a href="#fn6">6</a></sup> |

293| [Routines](/zh-CN/routines) | ✓ | ✓ | ✓ | ✓ |293| [Routines](/docs/zh-CN/routines) | ✓ | ✓ | ✓ | ✓ |

294| [Remote Control](/zh-CN/remote-control) | ✓ | ✓ | Admin-enabled | Admin-enabled |294| [Remote Control](/docs/zh-CN/remote-control) | ✓ | ✓ | Admin-enabled | Admin-enabled |

295| [Channels](/zh-CN/channels) | ✓ | ✓ | Admin-enabled | Admin-enabled |295| [Channels](/docs/zh-CN/channels) | ✓ | ✓ | Admin-enabled | Admin-enabled |

296| [Computer use](/zh-CN/computer-use) | ✓ | ✓ | ✗ | ✗ |296| [Computer use](/docs/zh-CN/computer-use) | ✓ | ✓ | ✗ | ✗ |

297| Dispatch ([Desktop](/zh-CN/desktop#sessions-from-dispatch)) | ✓ | ✓ | ✗ | ✗ |297| Dispatch ([Desktop](/docs/zh-CN/desktop#sessions-from-dispatch)) | ✓ | ✓ | ✗ | ✗ |

298| [Code Review](/zh-CN/code-review) | ✗ | ✗ | ✓ | ✓ |298| [Code Review](/docs/zh-CN/code-review) | ✗ | ✗ | ✓ | ✓ |

299| [Artifacts](/zh-CN/artifacts) | ✓ | ✓ | ✓ | Admin-enabled |299| [Artifacts](/docs/zh-CN/artifacts) | ✓ | ✓ | ✓ | Admin-enabled |

300| [分析仪表板和贡献指标](/zh-CN/analytics) | ✗ | ✗ | ✓ | ✓ |300| [分析仪表板和贡献指标](/docs/zh-CN/analytics) | ✗ | ✗ | ✓ | ✓ |

301| [Enterprise Analytics API](/zh-CN/analytics#access-data-programmatically) | ✗ | ✗ | ✗ | ✓ |301| [Enterprise Analytics API](/docs/zh-CN/analytics#access-data-programmatically) | ✗ | ✗ | ✗ | ✓ |

302| [Server-managed settings](/zh-CN/server-managed-settings) | ✗ | ✗ | ✓ | ✓ |302| [Server-managed settings](/docs/zh-CN/server-managed-settings) | ✗ | ✗ | ✓ | ✓ |

303| [SSO](https://support.claude.com/en/articles/9266767-what-is-the-team-plan) | ✗ | ✗ | ✓ | ✓ |303| [SSO](https://support.claude.com/en/articles/9266767-what-is-the-team-plan) | ✗ | ✗ | ✓ | ✓ |

304| SCIM | ✗ | ✗ | ✗ | ✓ |304| SCIM | ✗ | ✗ | ✗ | ✓ |

305| [Compliance API](https://platform.claude.com/docs/en/api/compliance) | ✗ | ✗ | ✗ | ✓ |305| [Compliance API](https://platform.claude.com/docs/en/api/compliance) | ✗ | ✗ | ✗ | ✓ |

306| [Zero Data Retention](/zh-CN/zero-data-retention) | ✗ | ✗ | ✗ | ✓ <sup><a href="#fn7">7</a></sup> |306| [Zero Data Retention](/docs/zh-CN/zero-data-retention) | ✗ | ✗ | ✗ | ✓ <sup><a href="#fn7">7</a></sup> |

307 307 

308<span id="fn6" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>6</sup> 在 Enterprise 上,需要高级座位或 Chat + Claude Code 座位。请参阅[网络上的 Claude Code](/zh-CN/claude-code-on-the-web)。<br />308<span id="fn6" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>6</sup> 在 Enterprise 上,需要高级座位或 Chat + Claude Code 座位。请参阅[网络上的 Claude Code](/docs/zh-CN/claude-code-on-the-web)。<br />

309<span id="fn7" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>7</sup> 不包含在标准 Enterprise 计划中。需要 Anthropic 为合格账户单独启用。请参阅 [Zero Data Retention](/zh-CN/zero-data-retention)。309<span id="fn7" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>7</sup> 不包含在标准 Enterprise 计划中。需要 Anthropic 为合格账户单独启用。请参阅 [Zero Data Retention](/docs/zh-CN/zero-data-retention)。

310 310 

311有关定价和完整的计划比较,请参阅 [Team 计划](https://support.claude.com/en/articles/9266767-what-is-the-team-plan)和 [Enterprise 计划](https://support.claude.com/en/articles/9797531-what-is-the-enterprise-plan)。311有关定价和完整的计划比较,请参阅 [Team 计划](https://support.claude.com/en/articles/9266767-what-is-the-team-plan)和 [Enterprise 计划](https://support.claude.com/en/articles/9797531-what-is-the-enterprise-plan)。

312 312 


314 模型可用性314 模型可用性

315</h2>315</h2>

316 316 

317有关每个提供商和地区可用的 Claude 模型和上下文窗口大小,请参阅[模型配置](/zh-CN/model-config)和[模型概述](https://platform.claude.com/docs/en/about-claude/models/overview)。Vision、PDF 输入和扩展思考是模型功能而不是 Claude Code 功能,在提供该模型的每个提供商上都有效。[Prompt caching](/zh-CN/prompt-caching) 在大多数提供商上的工作方式相同;在 Amazon Bedrock 上,支持因模型而异。317有关每个提供商和地区可用的 Claude 模型和上下文窗口大小,请参阅[模型配置](/docs/zh-CN/model-config)和[模型概述](https://platform.claude.com/docs/en/about-claude/models/overview)。Vision、PDF 输入和扩展思考是模型功能而不是 Claude Code 功能,在提供该模型的每个提供商上都有效。[Prompt caching](/docs/zh-CN/prompt-caching) 在大多数提供商上的工作方式相同;在 Amazon Bedrock 上,支持因模型而异。

318 318 

319<h2 id="related-resources">319<h2 id="related-resources">

320 相关资源320 相关资源

321</h2>321</h2>

322 322 

323* [企业部署概述](/zh-CN/third-party-integrations):比较提供商之间的身份验证、计费和地区323* [企业部署概述](/docs/zh-CN/third-party-integrations):比较提供商之间的身份验证、计费和地区

324* 提供商设置指南:[Amazon Bedrock](/zh-CN/amazon-bedrock)、[Claude Platform on AWS](/zh-CN/claude-platform-on-aws)、[Google Cloud's Agent Platform](/zh-CN/google-vertex-ai)、[Microsoft Foundry](/zh-CN/microsoft-foundry)324* 提供商设置指南:[Amazon Bedrock](/docs/zh-CN/amazon-bedrock)、[Claude Platform on AWS](/docs/zh-CN/claude-platform-on-aws)、[Google Cloud's Agent Platform](/docs/zh-CN/google-vertex-ai)、[Microsoft Foundry](/docs/zh-CN/microsoft-foundry)

325* [平台和集成](/zh-CN/platforms):Claude Code 运行的地方,包括 CLI、Desktop、IDE 扩展、网络、移动和 CI/CD325* [平台和集成](/docs/zh-CN/platforms):Claude Code 运行的地方,包括 CLI、Desktop、IDE 扩展、网络、移动和 CI/CD

fullscreen.md +14 −14

Details

22 启用全屏渲染22 启用全屏渲染

23</h2>23</h2>

24 24 

25在任何 Claude Code 对话中运行 `/tui fullscreen`。CLI 会保存 [`tui` 设置](/zh-CN/settings#available-settings)并以您的对话完整地重新启动到全屏模式,因此您可以在会话中途切换而不会丢失上下文。运行 `/tui default` 来切换回经典渲染器,或运行不带参数的 `/tui` 来打印当前活动的渲染器。25在任何 Claude Code 对话中运行 `/tui fullscreen`。CLI 会保存 [`tui` 设置](/docs/zh-CN/settings#available-settings)并以您的对话完整地重新启动到全屏模式,因此您可以在会话中途切换而不会丢失上下文。运行 `/tui default` 来切换回经典渲染器,或运行不带参数的 `/tui` 来打印当前活动的渲染器。

26 26 

27重新启动的会话会保持对话在屏幕上显示的样子。如果您在会话早期运行过 [`/rewind`](/zh-CN/checkpointing#rewind-and-summarize),重新启动会从倒带点而不是保存在磁盘上的较长记录中恢复。在 v2.1.207 之前,在倒带后切换渲染器会恢复倒带已删除的对话。27重新启动的会话会保持对话在屏幕上显示的样子。如果您在会话早期运行过 [`/rewind`](/docs/zh-CN/checkpointing#rewind-and-summarize),重新启动会从倒带点而不是保存在磁盘上的较长记录中恢复。在 v2.1.207 之前,在倒带后切换渲染器会恢复倒带已删除的对话。

28 28 

29您也可以在启动 Claude Code 之前设置 `CLAUDE_CODE_NO_FLICKER` 环境变量:29您也可以在启动 Claude Code 之前设置 `CLAUDE_CODE_NO_FLICKER` 环境变量:

30 30 


58 58 

59* **在提示输入框中点击**以在您正在输入的文本中的任何位置放置光标。59* **在提示输入框中点击**以在您正在输入的文本中的任何位置放置光标。

60* **点击 `/` 命令或 `@` 文件列表中的建议**以接受它。悬停会突出显示光标下的行。60* **点击 `/` 命令或 `@` 文件列表中的建议**以接受它。悬停会突出显示光标下的行。

61* **点击选择菜单中的选项**以选择它。这涵盖权限提示、`/model`、`/config` 和其他显示选项列表的对话框。悬停会在光标下的行上显示指针。{/* min-version: 2.1.187 */}需要 Claude Code v2.1.187 或更高版本。61* **点击选择菜单中的选项**以选择它。这涵盖权限提示、`/model`、`/config` 和其他显示选项列表的对话框。悬停会在光标下的行上显示指针。需要 Claude Code v2.1.187 或更高版本。

62* **点击多选菜单中的选项**以切换它,然后点击提交按钮以确认您的选择。点击自由文本行(例如多选题中的 `Other` 行)会聚焦其输入字段,以便您可以输入答案。{/* min-version: 2.1.208 */}需要 Claude Code v2.1.208 或更高版本。62* **点击多选菜单中的选项**以切换它,然后点击提交按钮以确认您的选择。点击自由文本行(例如多选题中的 `Other` 行)会聚焦其输入字段,以便您可以输入答案。需要 Claude Code v2.1.208 或更高版本。

63* **点击折叠的工具结果**以展开它并查看完整输出。再次点击以折叠。工具调用及其结果一起展开。只有有更多内容要显示的消息才可点击。63* **点击折叠的工具结果**以展开它并查看完整输出。再次点击以折叠。工具调用及其结果一起展开。只有有更多内容要显示的消息才可点击。

64* **在 macOS 上按住 `Cmd`,或在 Linux 和 Windows 上按住 `Ctrl`,然后点击 URL 或文件路径**以打开它。工具输出中的文件路径,如 Edit 或 Write 后打印的路径,在您的默认应用程序中打开。纯 `http://` 和 `https://` URL 在您的浏览器中打开。{/* min-version: 2.1.181 */}从 v2.1.181 开始,不按住 `Cmd` 或 `Ctrl` 的纯点击不再打开链接,与原生终端行为相匹配。某些 macOS 终端将 `Cmd`+点击转发给正在运行的应用程序,而不是由终端本身打开链接,终端鼠标协议无法编码 `Cmd` 键,因此 Claude Code 将其接收为纯点击。在 Ghostty 中,以及{/* min-version: 2.1.198 */}从 v2.1.198 开始在 macOS 上的 Warp 中,Claude Code 检测到这一点并让纯点击打开链接,按住 `Cmd` 仍然有效。在 VS Code 集成终端和类似的基于 xterm.js 的终端中,Claude Code 遵从终端自己的链接处理程序,该处理程序使用相同的手势。64* **在 macOS 上按住 `Cmd`,或在 Linux 和 Windows 上按住 `Ctrl`,然后点击 URL 或文件路径**以打开它。工具输出中的文件路径,如 Edit 或 Write 后打印的路径,在您的默认应用程序中打开。纯 `http://` 和 `https://` URL 在您的浏览器中打开。从 v2.1.181 开始,不按住 `Cmd` 或 `Ctrl` 的纯点击不再打开链接,与原生终端行为相匹配。某些 macOS 终端将 `Cmd`+点击转发给正在运行的应用程序,而不是由终端本身打开链接,终端鼠标协议无法编码 `Cmd` 键,因此 Claude Code 将其接收为纯点击。在 Ghostty 中,以及从 v2.1.198 开始在 macOS 上的 Warp 中,Claude Code 检测到这一点并让纯点击打开链接,按住 `Cmd` 仍然有效。在 VS Code 集成终端和类似的基于 xterm.js 的终端中,Claude Code 遵从终端自己的链接处理程序,该处理程序使用相同的手势。

65* **点击并拖动**以在对话中的任何位置选择文本。双击选择一个单词,匹配 iTerm2 的单词边界,以便文件路径作为一个单位选择。{/* min-version: 2.1.198 */}从 v2.1.198 开始,双击 URL 会选择整个 URL,包括方案。三击选择该行。65* **点击并拖动**以在对话中的任何位置选择文本。双击选择一个单词,匹配 iTerm2 的单词边界,以便文件路径作为一个单位选择。从 v2.1.198 开始,双击 URL 会选择整个 URL,包括方案。三击选择该行。

66* **用鼠标滚轮滚动**以在对话中移动。66* **用鼠标滚轮滚动**以在对话中移动。

67 67 

68选定的文本在鼠标释放时自动复制到您的剪贴板。要关闭此功能,请在 `/config` 中切换"选择时复制"。68选定的文本在鼠标释放时自动复制到您的剪贴板。要关闭此功能,请在 `/config` 中切换"选择时复制"。


90* 用鼠标滚轮滚动到底部以恢复跟随。90* 用鼠标滚轮滚动到底部以恢复跟随。

91* 将 `scroll:bottom` 重新绑定到您的键盘可以发送的快捷键。91* 将 `scroll:bottom` 重新绑定到您的键盘可以发送的快捷键。

92 92 

93这些操作是可重新绑定的。请参阅[滚动操作](/zh-CN/keybindings#scroll-actions)以获取完整的操作名称列表,包括没有默认绑定的半页和全页变体。93这些操作是可重新绑定的。请参阅[滚动操作](/docs/zh-CN/keybindings#scroll-actions)以获取完整的操作名称列表,包括没有默认绑定的半页和全页变体。

94 94 

95<h3 id="auto-follow">95<h3 id="auto-follow">

96 自动跟随96 自动跟随


100 100 

101自动跟随暂停时,当响应完成流式传输时,视图也会保持在您滚动到的位置。在 v2.1.207 之前,当长响应完成流式传输时,视图可能会跳到答案开始之上。101自动跟随暂停时,当响应完成流式传输时,视图也会保持在您滚动到的位置。在 v2.1.207 之前,当长响应完成流式传输时,视图可能会跳到答案开始之上。

102 102 

103按钮的键盘提示反映您的键盘可以发送的内容。在 macOS 上,它建议点击或 `Fn+↓` 来滚动,因为 `Ctrl+End` 无法从 Mac 键盘到达 Claude Code。重新绑定 [`scroll:bottom`](/zh-CN/keybindings#scroll-actions),按钮会在每个平台上显示您的快捷键。在 v2.1.206 之前,按钮在 macOS 上建议 `Ctrl+End`。103按钮的键盘提示反映您的键盘可以发送的内容。在 macOS 上,它建议点击或 `Fn+↓` 来滚动,因为 `Ctrl+End` 无法从 Mac 键盘到达 Claude Code。重新绑定 [`scroll:bottom`](/docs/zh-CN/keybindings#scroll-actions),按钮会在每个平台上显示您的快捷键。在 v2.1.206 之前,按钮在 macOS 上建议 `Ctrl+End`。

104 104 

105在太窄而无法容纳完整标签的终端上,按钮会缩短提示而不是换行到记录行下方。在 v2.1.206 之前,长标签可能会换行覆盖记录。105在太窄而无法容纳完整标签的终端上,按钮会缩短提示而不是换行到记录行下方。在 v2.1.206 之前,长标签可能会换行覆盖记录。

106 106 


126 126 

127该命令写入与 `CLAUDE_CODE_SCROLL_SPEED` 环境变量设置相同的值,持久化到 `~/.claude/settings.json`。该命令在 JetBrains IDE 终端中不可用。127该命令写入与 `CLAUDE_CODE_SCROLL_SPEED` 环境变量设置相同的值,持久化到 `~/.claude/settings.json`。该命令在 JetBrains IDE 终端中不可用。

128 128 

129除了基础速度外,Claude Code 还会在您快速旋转滚轮时加速滚动速率,因此快速旋转覆盖的距离比相同数量的慢凹口更远。{/* min-version: 2.1.174 */}要关闭加速并保持每个凹口的恒定速率,请在 [`settings.json`](/zh-CN/settings#available-settings) 中将 `wheelScrollAccelerationEnabled` 设置为 `false`。此设置需要 Claude Code v2.1.174 或更高版本。129除了基础速度外,Claude Code 还会在您快速旋转滚轮时加速滚动速率,因此快速旋转覆盖的距离比相同数量的慢凹口更远。要关闭加速并保持每个凹口的恒定速率,请在 [`settings.json`](/docs/zh-CN/settings#available-settings) 中将 `wheelScrollAccelerationEnabled` 设置为 `false`。此设置需要 Claude Code v2.1.174 或更高版本。

130 130 

131<h3 id="scroll-in-the-jetbrains-ide-terminal">131<h3 id="scroll-in-the-jetbrains-ide-terminal">

132 JetBrains IDE 终端中的滚动132 JetBrains IDE 终端中的滚动


187 187 

188并非每个 tmux 版本都应用来自应用程序的同步输出,因此在 tmux 下重绘期间您可能会看到比直接在终端中运行 Claude Code 时更多的闪烁。如果闪烁很明显,特别是在 SSH 上,请升级到最新的 tmux 或在 tmux 外的自己的终端标签页中运行 Claude Code。使用 `tmux -V` 检查您的 tmux 版本。188并非每个 tmux 版本都应用来自应用程序的同步输出,因此在 tmux 下重绘期间您可能会看到比直接在终端中运行 Claude Code 时更多的闪烁。如果闪烁很明显,特别是在 SSH 上,请升级到最新的 tmux 或在 tmux 外的自己的终端标签页中运行 Claude Code。使用 `tmux -V` 检查您的 tmux 版本。

189 189 

190{/* min-version: 2.1.200 */}Claude Code 在从 `TERM_PROGRAM_VERSION` 变量检测到 tmux 3.4 或更高版本时自动打开同步输出,当无法确定版本时回退到直接查询终端以获取同步输出支持。重绘是否实际上变成原子操作取决于您的 tmux 版本是否遵守同步输出;如果您在 tmux 3.4 或更高版本下仍然看到闪烁,请升级到最新的 tmux。此检测需要 Claude Code v2.1.200 或更高版本。190Claude Code 在从 `TERM_PROGRAM_VERSION` 变量检测到 tmux 3.4 或更高版本时自动打开同步输出,当无法确定版本时回退到直接查询终端以获取同步输出支持。重绘是否实际上变成原子操作取决于您的 tmux 版本是否遵守同步输出;如果您在 tmux 3.4 或更高版本下仍然看到闪烁,请升级到最新的 tmux。此检测需要 Claude Code v2.1.200 或更高版本。

191 191 

192<h2 id="keep-native-text-selection">192<h2 id="keep-native-text-selection">

193 保持原生文本选择193 保持原生文本选择


203 203 

204在 tmux 内,它也写入 tmux 粘贴缓冲区。在 SSH 上,它回退到 OSC 52 转义序列。Claude Code 在每次复制后打印一个 toast,告诉您它使用了哪个路径。204在 tmux 内,它也写入 tmux 粘贴缓冲区。在 SSH 上,它回退到 OSC 52 转义序列。Claude Code 在每次复制后打印一个 toast,告诉您它使用了哪个路径。

205 205 

206某些终端默认阻止 OSC 52。iTerm2 会阻止它,直到您打开 Settings → General → Selection → Applications in terminal may access clipboard;在 iTerm2 中运行 [`/terminal-setup`](/zh-CN/terminal-config) 会为您启用此功能。206某些终端默认阻止 OSC 52。iTerm2 会阻止它,直到您打开 Settings → General → Selection → Applications in terminal may access clipboard;在 iTerm2 中运行 [`/terminal-setup`](/docs/zh-CN/terminal-config) 会为您启用此功能。

207 207 

208对于一次性的原生选择,要使用的键取决于您的终端:208对于一次性的原生选择,要使用的键取决于您的终端:

209 209 


238 238 

239全屏渲染仅发送帧之间更改的单元格。某些终端,最常见的是 Windows Terminal 和其他基于 ConPTY 的主机,会错误地合并这些定位写入,并在调整窗口大小之前在屏幕上留下早期输出的片段。239全屏渲染仅发送帧之间更改的单元格。某些终端,最常见的是 Windows Terminal 和其他基于 ConPTY 的主机,会错误地合并这些定位写入,并在调整窗口大小之前在屏幕上留下早期输出的片段。

240 240 

241设置 [`CLAUDE_CODE_ALT_SCREEN_FULL_REPAINT=1`](/zh-CN/env-vars) 以在每一帧上重绘每个单元格,而不是发送增量更新。241设置 [`CLAUDE_CODE_ALT_SCREEN_FULL_REPAINT=1`](/docs/zh-CN/env-vars) 以在每一帧上重绘每个单元格,而不是发送增量更新。

242 242 

243在 Windows PowerShell 上:243在 Windows PowerShell 上:

244 244 


253CLAUDE_CODE_ALT_SCREEN_FULL_REPAINT=1 claude253CLAUDE_CODE_ALT_SCREEN_FULL_REPAINT=1 claude

254```254```

255 255 

256在 Windows 上,Claude Code 已经为后台会话和 [agent view](/zh-CN/agent-view) 自动启用完整重绘,因此您只需要为直接启动的交互式全屏会话设置该变量。256在 Windows 上,Claude Code 已经为后台会话和 [agent view](/docs/zh-CN/agent-view) 自动启用完整重绘,因此您只需要为直接启动的交互式全屏会话设置该变量。

257 257 

258<h2 id="research-preview">258<h2 id="research-preview">

259 研究预览259 研究预览


265 265 

266要关闭全屏渲染,请运行 `/tui default`,或如果您以这种方式启用了 `CLAUDE_CODE_NO_FLICKER`,请取消设置它。要强制使用经典渲染器而不管保存的 `tui` 设置,请设置 `CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN=1`。经典渲染器将对话保留在您的终端的原生滚动缓冲区中,因此 `Cmd+f` 和 tmux 复制模式可以照常工作。266要关闭全屏渲染,请运行 `/tui default`,或如果您以这种方式启用了 `CLAUDE_CODE_NO_FLICKER`,请取消设置它。要强制使用经典渲染器而不管保存的 `tui` 设置,请设置 `CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN=1`。经典渲染器将对话保留在您的终端的原生滚动缓冲区中,因此 `Cmd+f` 和 tmux 复制模式可以照常工作。

267 267 

268从 [agent view](/zh-CN/agent-view) 或 `claude attach` 打开的后台会话始终使用全屏渲染。附加终端进入备用屏幕缓冲区以显示会话,经典渲染器在那里没有滚动缓冲或鼠标处理,因此 `tui` 设置和 `CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN` 不适用于它们。268从 [agent view](/docs/zh-CN/agent-view) 或 `claude attach` 打开的后台会话始终使用全屏渲染。附加终端进入备用屏幕缓冲区以显示会话,经典渲染器在那里没有滚动缓冲或鼠标处理,因此 `tui` 设置和 `CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN` 不适用于它们。

Details

108 </Step>108 </Step>

109 109 

110 <Step title="按照向导提示进行操作">110 <Step title="按照向导提示进行操作">

111 选择您如何向 Google Cloud 进行身份验证:来自 `gcloud` 的应用默认凭证、服务账户密钥文件或已在您的环境中的凭证。向导会检测您的项目和区域,验证您的项目可以调用哪些 Claude 模型,并让您固定它们。它将结果保存到您的[用户设置文件](/zh-CN/settings)的 `env` 块中,因此您无需自己导出环境变量。111 选择您如何向 Google Cloud 进行身份验证:来自 `gcloud` 的应用默认凭证、服务账户密钥文件或已在您的环境中的凭证。向导会检测您的项目和区域,验证您的项目可以调用哪些 Claude 模型,并让您固定它们。它将结果保存到您的[用户设置文件](/docs/zh-CN/settings)的 `env` 块中,因此您无需自己导出环境变量。

112 </Step>112 </Step>

113</Steps>113</Steps>

114 114 

115登录后,您可以随时运行 `/setup-vertex` 来重新打开向导并更改您的凭证、项目、区域或模型固定。模型固定步骤从您当前固定的模型开始。向导会写入 `~/.claude/settings.json`,或在设置了 [`CLAUDE_CONFIG_DIR`](/zh-CN/env-vars#variables) 时写入 `$CLAUDE_CONFIG_DIR/settings.json`。115登录后,您可以随时运行 `/setup-vertex` 来重新打开向导并更改您的凭证、项目、区域或模型固定。模型固定步骤从您当前固定的模型开始。向导会写入 `~/.claude/settings.json`,或在设置了 [`CLAUDE_CONFIG_DIR`](/docs/zh-CN/env-vars#variables) 时写入 `$CLAUDE_CONFIG_DIR/settings.json`。

116 116 

117<h2 id="region-configuration">117<h2 id="region-configuration">

118 区域配置118 区域配置


212export VERTEX_REGION_CLAUDE_4_6_SONNET=europe-west1212export VERTEX_REGION_CLAUDE_4_6_SONNET=europe-west1

213```213```

214 214 

215大多数模型版本都有对应的 `VERTEX_REGION_CLAUDE_*` 变量。有关完整列表,请参阅[环境变量参考](/zh-CN/env-vars)。检查 [Google Cloud 的 Agent Platform Model Garden](https://console.cloud.google.com/vertex-ai/model-garden) 以确定哪些模型支持全局端点与仅区域端点。215大多数模型版本都有对应的 `VERTEX_REGION_CLAUDE_*` 变量。有关完整列表,请参阅[环境变量参考](/docs/zh-CN/env-vars)。检查 [Google Cloud 的 Agent Platform Model Garden](https://console.cloud.google.com/vertex-ai/model-garden) 以确定哪些模型支持全局端点与仅区域端点。

216 216 

217[Prompt caching](/zh-CN/prompt-caching) 会自动启用。要禁用它,请设置 `DISABLE_PROMPT_CACHING=1`。要请求 1 小时的缓存 TTL 而不是 5 分钟的默认值,请设置 `ENABLE_PROMPT_CACHING_1H=1`;具有 1 小时 TTL 的缓存写入按更高费率计费。如需提高速率限制,请联系 Google Cloud 支持。使用 Google Cloud 的 Agent Platform 时,`/logout` 命令不可用,因为身份验证通过 Google Cloud 凭证处理。217[Prompt caching](/docs/zh-CN/prompt-caching) 会自动启用。要禁用它,请设置 `DISABLE_PROMPT_CACHING=1`。要请求 1 小时的缓存 TTL 而不是 5 分钟的默认值,请设置 `ENABLE_PROMPT_CACHING_1H=1`;具有 1 小时 TTL 的缓存写入按更高费率计费。如需提高速率限制,请联系 Google Cloud 支持。使用 Google Cloud 的 Agent Platform 时,`/logout` 命令不可用,因为身份验证通过 Google Cloud 凭证处理。

218 218 

219Claude Code 在 Google Cloud 的 Agent Platform 上默认禁用 [MCP tool search](/zh-CN/mcp#scale-with-mcp-tool-search),因此 MCP 工具定义会预先加载。Google Cloud 的 Agent Platform 支持 Claude Sonnet 4.5 及更高版本以及 Claude Opus 4.5 及更高版本的工具搜索。设置 `ENABLE_TOOL_SEARCH=true` 以在这些模型上启用它。Google Cloud 的 Agent Platform 上的早期模型不接受所需的 beta 标头,如果您对它们启用工具搜索,请求将失败。219Claude Code 在 Google Cloud 的 Agent Platform 上默认禁用 [MCP tool search](/docs/zh-CN/mcp#scale-with-mcp-tool-search),因此 MCP 工具定义会预先加载。Google Cloud 的 Agent Platform 支持 Claude Sonnet 4.5 及更高版本以及 Claude Opus 4.5 及更高版本的工具搜索。设置 `ENABLE_TOOL_SEARCH=true` 以在这些模型上启用它。Google Cloud 的 Agent Platform 上的早期模型不接受所需的 beta 标头,如果您对它们启用工具搜索,请求将失败。

220 220 

221<h3 id="5-pin-model-versions">221<h3 id="5-pin-model-versions">

222 5. 固定模型版本222 5. 固定模型版本


236export ANTHROPIC_DEFAULT_HAIKU_MODEL='claude-haiku-4-5@20251001'236export ANTHROPIC_DEFAULT_HAIKU_MODEL='claude-haiku-4-5@20251001'

237```237```

238 238 

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

240 240 

241Claude Code 在未设置固定变量时使用这些默认模型:241Claude Code 在未设置固定变量时使用这些默认模型:

242 242 


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

255</Warning>255</Warning>

256 256 

257{/* min-version: 2.1.207 */}在 v2.1.207 之前,Google Cloud 的 Agent Platform 上的主模型默认为 Sonnet 4.5,`opus` 别名解析为 Opus 4.6,后台任务始终使用主模型。257在 v2.1.207 之前,Google Cloud 的 Agent Platform 上的主模型默认为 Sonnet 4.5,`opus` 别名解析为 Opus 4.6,后台任务始终使用主模型。

258 258 

259要进一步自定义模型:259要进一步自定义模型:

260 260 


269 269 

270当 Claude Code 启动并配置了 Google Cloud 的 Agent Platform 时,它会验证它打算使用的模型在您的项目中是否可访问。270当 Claude Code 启动并配置了 Google Cloud 的 Agent Platform 时,它会验证它打算使用的模型在您的项目中是否可访问。

271 271 

272如果您固定了一个比当前 Claude Code 默认值更旧的模型版本,并且您的项目可以调用较新版本,Claude Code 会提示您更新固定。接受会将新的模型 ID 写入您的[用户设置文件](/zh-CN/settings)并重启 Claude Code。拒绝会被记住,直到下一个默认版本更改。272如果您固定了一个比当前 Claude Code 默认值更旧的模型版本,并且您的项目可以调用较新版本,Claude Code 会提示您更新固定。接受会将新的模型 ID 写入您的[用户设置文件](/docs/zh-CN/settings)并重启 Claude Code。拒绝会被记住,直到下一个默认版本更改。

273 273 

274如果您没有固定模型,并且当前默认值在您的项目中不可用,Claude Code 会在当前会话中回退并显示通知。它首先尝试默认模型的早期版本,当默认值是 Opus 模型且没有可用的 Opus 版本时,会回退到默认 Sonnet 模型。回退不会被持久化。在 [Model Garden](https://console.cloud.google.com/vertex-ai/model-garden) 中启用较新的模型或[固定一个版本](#5-pin-model-versions)以使选择永久化。274如果您没有固定模型,并且当前默认值在您的项目中不可用,Claude Code 会在当前会话中回退并显示通知。它首先尝试默认模型的早期版本,当默认值是 Opus 模型且没有可用的 Opus 版本时,会回退到默认 Sonnet 模型。回退不会被持久化。在 [Model Garden](https://console.cloud.google.com/vertex-ai/model-garden) 中启用较新的模型或[固定一个版本](#5-pin-model-versions)以使选择永久化。

275 275 


297 297 

298Claude Sonnet 5、Opus 4.6 及更高版本以及 Sonnet 4.6 在 Google Cloud 的 Agent Platform 上支持 [1M token context window](https://platform.claude.com/docs/zh-CN/build-with-claude/context-windows#context-window-sizes-by-model)。Sonnet 5 始终以 1M 窗口运行,没有 `[1m]` 变体可选择。对于其他模型,当您选择 1M 模型变体时,Claude Code 会自动启用扩展 context window。298Claude Sonnet 5、Opus 4.6 及更高版本以及 Sonnet 4.6 在 Google Cloud 的 Agent Platform 上支持 [1M token context window](https://platform.claude.com/docs/zh-CN/build-with-claude/context-windows#context-window-sizes-by-model)。Sonnet 5 始终以 1M 窗口运行,没有 `[1m]` 变体可选择。对于其他模型,当您选择 1M 模型变体时,Claude Code 会自动启用扩展 context window。

299 299 

300[设置向导](#sign-in-with-agent-platform)在固定模型时提供 1M context 选项。要为手动固定的模型启用它,请在模型 ID 后附加 `[1m]`。有关详细信息,请参阅[为第三方部署固定模型](/zh-CN/model-config#pin-models-for-third-party-deployments)。300[设置向导](#sign-in-with-agent-platform)在固定模型时提供 1M context 选项。要为手动固定的模型启用它,请在模型 ID 后附加 `[1m]`。有关详细信息,请参阅[为第三方部署固定模型](/docs/zh-CN/model-config#pin-models-for-third-party-deployments)。

301 301 

302<h2 id="troubleshooting">302<h2 id="troubleshooting">

303 故障排除303 故障排除

headless.md +23 −23

Details

6 6 

7> 使用 Agent SDK 从 CLI、Python 或 TypeScript 以编程方式运行 Claude Code。7> 使用 Agent SDK 从 CLI、Python 或 TypeScript 以编程方式运行 Claude Code。

8 8 

9[Agent SDK](/zh-CN/agent-sdk/overview) 为您提供了与 Claude Code 相同的工具、agent 循环和上下文管理。它可作为 CLI 用于脚本和 CI/CD,或作为 [Python](/zh-CN/agent-sdk/python) 和 [TypeScript](/zh-CN/agent-sdk/typescript) 包供完整的编程控制。9[Agent SDK](/docs/zh-CN/agent-sdk/overview) 为您提供了与 Claude Code 相同的工具、agent 循环和上下文管理。它可作为 CLI 用于脚本和 CI/CD,或作为 [Python](/docs/zh-CN/agent-sdk/python) 和 [TypeScript](/docs/zh-CN/agent-sdk/typescript) 包供完整的编程控制。

10 10 

11要以非交互模式运行 Claude Code,请使用 `-p` 传递您的提示和任何 [CLI 选项](/zh-CN/cli-reference):11要以非交互模式运行 Claude Code,请使用 `-p` 传递您的提示和任何 [CLI 选项](/docs/zh-CN/cli-reference):

12 12 

13```bash theme={null}13```bash theme={null}

14claude -p "Find and fix the bug in auth.py" --allowedTools "Read,Edit,Bash"14claude -p "Find and fix the bug in auth.py" --allowedTools "Read,Edit,Bash"

15```15```

16 16 

17本页面涵盖通过 CLI (`claude -p`) 使用 Agent SDK。对于具有结构化输出、工具批准回调和原生消息对象的 Python 和 TypeScript SDK 包,请参阅 [完整 Agent SDK 文档](/zh-CN/agent-sdk/overview)。17本页面涵盖通过 CLI (`claude -p`) 使用 Agent SDK。对于具有结构化输出、工具批准回调和原生消息对象的 Python 和 TypeScript SDK 包,请参阅 [完整 Agent SDK 文档](/docs/zh-CN/agent-sdk/overview)。

18 18 

19<h2 id="basic-usage">19<h2 id="basic-usage">

20 基本用法20 基本用法

21</h2>21</h2>

22 22 

23将 `-p`(或 `--print`)标志添加到任何 `claude` 命令以非交互方式运行它。所有 [CLI 选项](/zh-CN/cli-reference) 都适用于 `-p`,包括:23将 `-p`(或 `--print`)标志添加到任何 `claude` 命令以非交互方式运行它。所有 [CLI 选项](/docs/zh-CN/cli-reference) 都适用于 `-p`,包括:

24 24 

25* `--continue` 用于 [继续对话](#continue-conversations)25* `--continue` 用于 [继续对话](#continue-conversations)

26* `--allowedTools` 用于 [自动批准工具](#auto-approve-tools)26* `--allowedTools` 用于 [自动批准工具](#auto-approve-tools)


36 使用裸模式更快启动36 使用裸模式更快启动

37</h3>37</h3>

38 38 

39添加 `--bare` 以通过跳过 hooks、skills、plugins、MCP 服务器、自动内存和 CLAUDE.md 的自动发现来减少启动时间。没有它,`claude -p` 会加载交互式会话相同的 [上下文](/zh-CN/how-claude-code-works#the-context-window),包括在工作目录或 `~/.claude` 中配置的任何内容。39添加 `--bare` 以通过跳过 hooks、skills、plugins、MCP 服务器、自动内存和 CLAUDE.md 的自动发现来减少启动时间。没有它,`claude -p` 会加载交互式会话相同的 [上下文](/docs/zh-CN/how-claude-code-works#the-context-window),包括在工作目录或 `~/.claude` 中配置的任何内容。

40 40 

41裸模式对于 CI 和脚本很有用,您需要在每台机器上获得相同的结果。队友的 `~/.claude` 中的 hook 或项目的 `.mcp.json` 中的 MCP 服务器不会运行,因为裸模式从不读取它们。只有您显式传递的标志才会生效。41裸模式对于 CI 和脚本很有用,您需要在每台机器上获得相同的结果。队友的 `~/.claude` 中的 hook 或项目的 `.mcp.json` 中的 MCP 服务器不会运行,因为裸模式从不读取它们。只有您显式传递的标志才会生效。

42 42 


66 退出时的后台任务66 退出时的后台任务

67</h3>67</h3>

68 68 

69如果 Claude 在 `claude -p` 运行期间启动 [后台 Bash 任务](/zh-CN/tools-reference#bash-tool-behavior),例如开发服务器或监视构建,该任务将在 Claude 返回其最终结果并关闭 stdin 后约五秒钟被终止。宽限期允许在结果之后立即完成的任务仍然能够传递其输出。在 v2.1.163 之前,永不退出的后台进程会无限期地保持 `claude -p` 调用打开。69如果 Claude 在 `claude -p` 运行期间启动 [后台 Bash 任务](/docs/zh-CN/tools-reference#bash-tool-behavior),例如开发服务器或监视构建,该任务将在 Claude 返回其最终结果并关闭 stdin 后约五秒钟被终止。宽限期允许在结果之后立即完成的任务仍然能够传递其输出。在 v2.1.163 之前,永不退出的后台进程会无限期地保持 `claude -p` 调用打开。

70 70 

71后台 [subagents](/zh-CN/sub-agents) 和工作流程不受五秒宽限期的限制,因为它们的结果是最终输出的一部分,所以 `claude -p` 会等待它们完成。从 v2.1.182 开始,该等待默认上限为十分钟,以便卡住的后台 agent 无法无限期地保持进程打开。使用 [`CLAUDE_CODE_PRINT_BG_WAIT_CEILING_MS`](/zh-CN/env-vars) 调整上限,或将其设置为 `0` 以无限制地等待。71后台 [subagents](/docs/zh-CN/sub-agents) 和工作流程不受五秒宽限期的限制,因为它们的结果是最终输出的一部分,所以 `claude -p` 会等待它们完成。从 v2.1.182 开始,该等待默认上限为十分钟,以便卡住的后台 agent 无法无限期地保持进程打开。使用 [`CLAUDE_CODE_PRINT_BG_WAIT_CEILING_MS`](/docs/zh-CN/env-vars) 调整上限,或将其设置为 `0` 以无限制地等待。

72 72 

73<h2 id="examples">73<h2 id="examples">

74 示例74 示例


88cat build-error.txt | claude -p 'concisely explain the root cause of this build error' > output.txt88cat build-error.txt | claude -p 'concisely explain the root cause of this build error' > output.txt

89```89```

90 90 

91使用 `--output-format json`,响应有效负载包括 `total_cost_usd` 和按模型的成本分解,因此脚本调用者可以跟踪每次调用的支出,而无需查询 [使用情况仪表板](/zh-CN/costs)。91使用 `--output-format json`,响应有效负载包括 `total_cost_usd` 和按模型的成本分解,因此脚本调用者可以跟踪每次调用的支出,而无需查询 [使用情况仪表板](/docs/zh-CN/costs)。

92 92 

93<Note>93<Note>

94 从 Claude Code v2.1.128 开始,管道 stdin 的上限为 10MB。如果超过上限,Claude Code 会以清晰的错误和非零状态退出。要处理更大的输入,请将内容写入文件并在提示中引用文件路径,而不是管道传输它。94 从 Claude Code v2.1.128 开始,管道 stdin 的上限为 10MB。如果超过上限,Claude Code 会以清晰的错误和非零状态退出。要处理更大的输入,请将内容写入文件并在提示中引用文件路径,而不是管道传输它。


163claude -p "Explain recursion" --output-format stream-json --verbose --include-partial-messages163claude -p "Explain recursion" --output-format stream-json --verbose --include-partial-messages

164```164```

165 165 

166流的最后一行是包含最终响应文本、成本和会话元数据的 `result` 消息。{/* min-version: 2.1.208 */}在 v2.1.208 之前,管道传输大型响应可能会截断最后一行并省略 `result` 消息。166流的最后一行是包含最终响应文本、成本和会话元数据的 `result` 消息。在 v2.1.208 之前,管道传输大型响应可能会截断最后一行并省略 `result` 消息。

167 167 

168以下示例使用 [jq](https://jqlang.github.io/jq/) 来过滤文本增量并仅显示流式文本。`-r` 标志输出原始字符串(无引号),`-j` 不带换行符连接,以便令牌连续流式传输:168以下示例使用 [jq](https://jqlang.github.io/jq/) 来过滤文本增量并仅显示流式文本。`-r` 标志输出原始字符串(无引号),`-j` 不带换行符连接,以便令牌连续流式传输:

169 169 


188 188 

189`system/init` 事件报告会话元数据,包括模型、工具、MCP 服务器和加载的插件。它是流中的第一个事件,除非启动事件在其之前:189`system/init` 事件报告会话元数据,包括模型、工具、MCP 服务器和加载的插件。它是流中的第一个事件,除非启动事件在其之前:

190 190 

191* `plugin_install` 事件,当设置了 [`CLAUDE_CODE_SYNC_PLUGIN_INSTALL`](/zh-CN/env-vars) 时。191* `plugin_install` 事件,当设置了 [`CLAUDE_CODE_SYNC_PLUGIN_INSTALL`](/docs/zh-CN/env-vars) 时。

192* {/* min-version: 2.1.204 */}[`hook_started`、`hook_progress` 和 `hook_response` 事件](/zh-CN/agent-sdk/typescript#sdkhookstartedmessage),当配置的 [`SessionStart`](/zh-CN/hooks#sessionstart) 或 [`Setup`](/zh-CN/hooks#setup) hook 运行时。这些事件在 hook 生成时流式传输。Claude Code v2.1.169 至 v2.1.203 在 hook 完成后以一个批次传递它们,仍然在 `system/init` 之前;v2.1.204 恢复了实时传递。192* [`hook_started`、`hook_progress` 和 `hook_response` 事件](/docs/zh-CN/agent-sdk/typescript#sdkhookstartedmessage),当配置的 [`SessionStart`](/docs/zh-CN/hooks#sessionstart) 或 [`Setup`](/docs/zh-CN/hooks#setup) hook 运行时。这些事件在 hook 生成时流式传输。Claude Code v2.1.169 至 v2.1.203 在 hook 完成后以一个批次传递它们,仍然在 `system/init` 之前;v2.1.204 恢复了实时传递。

193 193 

194该事件还携带一个可选的 `capabilities` 字符串数组,命名此 Claude Code 版本实现的协议行为,例如 `interrupt_receipt_v1`。检查它以进行功能检测,而不是比较版本字符串,并忽略您不认识的值。该字段需要 Claude Code v2.1.205 或更高版本,在早期版本中不存在。有关功能列表,请参阅 [`SDKSystemMessage`](/zh-CN/agent-sdk/typescript#sdksystemmessage)。194该事件还携带一个可选的 `capabilities` 字符串数组,命名此 Claude Code 版本实现的协议行为,例如 `interrupt_receipt_v1`。检查它以进行功能检测,而不是比较版本字符串,并忽略您不认识的值。该字段需要 Claude Code v2.1.205 或更高版本,在早期版本中不存在。有关功能列表,请参阅 [`SDKSystemMessage`](/docs/zh-CN/agent-sdk/typescript#sdksystemmessage)。

195 195 

196使用插件字段在插件未加载时使 CI 失败:196使用插件字段在插件未加载时使 CI 失败:

197 197 


200| `plugins` | 数组 | 成功加载的插件,每个都有 `name` 和 `path` |200| `plugins` | 数组 | 成功加载的插件,每个都有 `name` 和 `path` |

201| `plugin_errors` | 数组 | 插件加载时错误,每个都有 `plugin`、`type` 和 `message`。包括不满足的依赖版本和 `--plugin-dir` 加载失败,例如缺失路径或无效存档。受影响的插件被降级并从 `plugins` 中缺失。当没有错误时,该键被省略 |201| `plugin_errors` | 数组 | 插件加载时错误,每个都有 `plugin`、`type` 和 `message`。包括不满足的依赖版本和 `--plugin-dir` 加载失败,例如缺失路径或无效存档。受影响的插件被降级并从 `plugins` 中缺失。当没有错误时,该键被省略 |

202 202 

203当设置了 [`CLAUDE_CODE_SYNC_PLUGIN_INSTALL`](/zh-CN/env-vars) 时,Claude Code 在第一轮之前安装市场插件时发出 `system/plugin_install` 事件。使用这些在您自己的 UI 中显示安装进度。203当设置了 [`CLAUDE_CODE_SYNC_PLUGIN_INSTALL`](/docs/zh-CN/env-vars) 时,Claude Code 在第一轮之前安装市场插件时发出 `system/plugin_install` 事件。使用这些在您自己的 UI 中显示安装进度。

204 204 

205| 字段 | 类型 | 描述 |205| 字段 | 类型 | 描述 |

206| ------------ | ---------------------------------------------------- | ------------------------------------------------------------ |206| ------------ | ---------------------------------------------------- | ------------------------------------------------------------ |


212| `uuid` | 字符串 | 唯一事件标识符 |212| `uuid` | 字符串 | 唯一事件标识符 |

213| `session_id` | 字符串 | 事件所属的会话 |213| `session_id` | 字符串 | 事件所属的会话 |

214 214 

215对于具有回调和消息对象的编程流式传输,请参阅 Agent SDK 文档中的 [实时流式传输响应](/zh-CN/agent-sdk/streaming-output)。215对于具有回调和消息对象的编程流式传输,请参阅 Agent SDK 文档中的 [实时流式传输响应](/docs/zh-CN/agent-sdk/streaming-output)。

216 216 

217<h3 id="auto-approve-tools">217<h3 id="auto-approve-tools">

218 自动批准工具218 自动批准工具


225 --allowedTools "Bash,Read,Edit"225 --allowedTools "Bash,Read,Edit"

226```226```

227 227 

228要为整个会话设置基线而不是列出单个工具,请传递 [权限模式](/zh-CN/permission-modes)。`dontAsk` 拒绝您的 `permissions.allow` 规则或 [只读命令集](/zh-CN/permissions#read-only-commands) 中未包含的任何内容,这对于锁定的 CI 运行很有用。`AskUserQuestion`、连接器工具 [您的组织设置为 `ask`](/zh-CN/mcp#organization-controls-on-connector-tools) 和标记为 [`requiresUserInteraction`](/zh-CN/mcp#require-approval-for-a-specific-tool) 的 MCP 工具即使当允许规则匹配时也被拒绝。228要为整个会话设置基线而不是列出单个工具,请传递 [权限模式](/docs/zh-CN/permission-modes)。`dontAsk` 拒绝您的 `permissions.allow` 规则或 [只读命令集](/docs/zh-CN/permissions#read-only-commands) 中未包含的任何内容,这对于锁定的 CI 运行很有用。`AskUserQuestion`、连接器工具 [您的组织设置为 `ask`](/docs/zh-CN/mcp#organization-controls-on-connector-tools) 和标记为 [`requiresUserInteraction`](/docs/zh-CN/mcp#require-approval-for-a-specific-tool) 的 MCP 工具即使当允许规则匹配时也被拒绝。

229 229 

230`acceptEdits` 让 Claude 写入文件而无需提示,还自动批准常见的文件系统命令,例如 `mkdir`、`touch`、`mv` 和 `cp`。其他 shell 命令和网络请求仍然需要 `--allowedTools` 条目或 `permissions.allow` 规则,否则当尝试时运行会中止:230`acceptEdits` 让 Claude 写入文件而无需提示,还自动批准常见的文件系统命令,例如 `mkdir`、`touch`、`mv` 和 `cp`。其他 shell 命令和网络请求仍然需要 `--allowedTools` 条目或 `permissions.allow` 规则,否则当尝试时运行会中止:

231 231 


244 --allowedTools "Bash(git diff *),Bash(git log *),Bash(git status *),Bash(git commit *)"244 --allowedTools "Bash(git diff *),Bash(git log *),Bash(git status *),Bash(git commit *)"

245```245```

246 246 

247`--allowedTools` 标志使用 [权限规则语法](/zh-CN/settings#permission-rule-syntax)。尾部的 ` *` 启用前缀匹配,因此 `Bash(git diff *)` 允许任何以 `git diff` 开头的命令。空格在 `*` 之前很重要:没有它,`Bash(git diff*)` 也会匹配 `git diff-index`。247`--allowedTools` 标志使用 [权限规则语法](/docs/zh-CN/settings#permission-rule-syntax)。尾部的 ` *` 启用前缀匹配,因此 `Bash(git diff *)` 允许任何以 `git diff` 开头的命令。空格在 `*` 之前很重要:没有它,`Bash(git diff*)` 也会匹配 `git diff-index`。

248 248 

249<Note>249<Note>

250 用户调用的 [skills](/zh-CN/skills) 和自定义命令在 `-p` 模式下工作:在提示字符串中包含 `/skill-name`,Claude Code 会在运行前展开它。打开交互对话框的内置命令,例如 `/login`,在 `-p` 模式下不可用。{/* min-version: 2.1.205 */}`/model`、`/effort`、`/fast`、`/color` 和 `/rename` 接受该值作为参数,例如 `/model sonnet`,`/mcp` 不带参数打印服务器状态的文本摘要;这些形式需要 Claude Code v2.1.205 或更高版本,并遵循每个命令的 [可用性说明](/zh-CN/commands#all-commands)。{/* min-version: 2.1.181 */}要从 `-p` 调用更改设置,请将 `key=value` 传递给 `/config`,例如 `/config thinking=false`。250 用户调用的 [skills](/docs/zh-CN/skills) 和自定义命令在 `-p` 模式下工作:在提示字符串中包含 `/skill-name`,Claude Code 会在运行前展开它。打开交互对话框的内置命令,例如 `/login`,在 `-p` 模式下不可用。`/model`、`/effort`、`/fast`、`/color` 和 `/rename` 接受该值作为参数,例如 `/model sonnet`,`/mcp` 不带参数打印服务器状态的文本摘要;这些形式需要 Claude Code v2.1.205 或更高版本,并遵循每个命令的 [可用性说明](/docs/zh-CN/commands#all-commands)。要从 `-p` 调用更改设置,请将 `key=value` 传递给 `/config`,例如 `/config thinking=false`。

251</Note>251</Note>

252 252 

253<h3 id="customize-the-system-prompt">253<h3 id="customize-the-system-prompt">


262 --output-format json262 --output-format json

263```263```

264 264 

265有关更多选项(包括 `--system-prompt` 以完全替换默认提示),请参阅 [系统提示标志](/zh-CN/cli-reference#system-prompt-flags)。265有关更多选项(包括 `--system-prompt` 以完全替换默认提示),请参阅 [系统提示标志](/docs/zh-CN/cli-reference#system-prompt-flags)。

266 266 

267<h3 id="continue-conversations">267<h3 id="continue-conversations">

268 继续对话268 继续对话


286claude -p "Continue that review" --resume "$session_id"286claude -p "Continue that review" --resume "$session_id"

287```287```

288 288 

289从同一目录运行两个命令:会话 ID 查找的范围限定为当前项目目录及其 git worktrees。有关完整范围规则,请参阅 [恢复会话](/zh-CN/sessions#resume-a-session)。289从同一目录运行两个命令:会话 ID 查找的范围限定为当前项目目录及其 git worktrees。有关完整范围规则,请参阅 [恢复会话](/docs/zh-CN/sessions#resume-a-session)。

290 290 

291<h2 id="next-steps">291<h2 id="next-steps">

292 后续步骤292 后续步骤

293</h2>293</h2>

294 294 

295* [Agent SDK 快速入门](/zh-CN/agent-sdk/quickstart):使用 Python 或 TypeScript 构建您的第一个 agent295* [Agent SDK 快速入门](/docs/zh-CN/agent-sdk/quickstart):使用 Python 或 TypeScript 构建您的第一个 agent

296* [CLI 参考](/zh-CN/cli-reference):所有 CLI 标志和选项296* [CLI 参考](/docs/zh-CN/cli-reference):所有 CLI 标志和选项

297* [GitHub Actions](/zh-CN/github-actions):在 GitHub 工作流中使用 Agent SDK297* [GitHub Actions](/docs/zh-CN/github-actions):在 GitHub 工作流中使用 Agent SDK

298* [GitLab CI/CD](/zh-CN/gitlab-ci-cd):在 GitLab 管道中使用 Agent SDK298* [GitLab CI/CD](/docs/zh-CN/gitlab-ci-cd):在 GitLab 管道中使用 Agent SDK

hooks.md +9 −9

Details

326 326 

327所有匹配的 hooks 并行运行,相同的处理程序会自动去重。命令 hooks 按命令字符串和 `args` 去重,HTTP hooks 按 URL 去重。327所有匹配的 hooks 并行运行,相同的处理程序会自动去重。命令 hooks 按命令字符串和 `args` 去重,HTTP hooks 按 URL 去重。

328 328 

329处理程序在当前目录中运行,使用 Claude Code 的环境。在远程 web 环境中,`$CLAUDE_CODE_REMOTE` 环境变量设置为 `"true"`,在本地 CLI 中未设置。{/* min-version: 2.1.199 */}从 v2.1.199 开始,[`$CLAUDE_CODE_BRIDGE_SESSION_ID`](/docs/zh-CN/env-vars)设置为[远程控制](/docs/zh-CN/remote-control)会话 ID,而本地会话具有活跃的远程控制连接。329处理程序在当前目录中运行,使用 Claude Code 的环境。在远程 web 环境中,`$CLAUDE_CODE_REMOTE` 环境变量设置为 `"true"`,在本地 CLI 中未设置。从 v2.1.199 开始,[`$CLAUDE_CODE_BRIDGE_SESSION_ID`](/docs/zh-CN/env-vars)设置为[远程控制](/docs/zh-CN/remote-control)会话 ID,而本地会话具有活跃的远程控制连接。

330 330 

331<h4 id="common-fields">331<h4 id="common-fields">

332 通用字段332 通用字段


644| 字段 | 描述 |644| 字段 | 描述 |

645| :---------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |645| :---------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

646| `session_id` | 当前会话标识符 |646| `session_id` | 当前会话标识符 |

647| `prompt_id` | UUID 标识当前正在处理的用户提示。与 OpenTelemetry 事件上的[`prompt.id` 属性](/docs/zh-CN/monitoring-usage#event-correlation-attributes)匹配,因此您可以将 hook 输出与单个提示的遥测关联起来。在第一个用户输入之前不存在。{/* min-version: 2.1.196 */}需要 Claude Code v2.1.196 或更高版本 |647| `prompt_id` | UUID 标识当前正在处理的用户提示。与 OpenTelemetry 事件上的[`prompt.id` 属性](/docs/zh-CN/monitoring-usage#event-correlation-attributes)匹配,因此您可以将 hook 输出与单个提示的遥测关联起来。在第一个用户输入之前不存在。需要 Claude Code v2.1.196 或更高版本 |

648| `transcript_path` | 对话 JSON 的路径。成绩单文件异步写入,可能滞后于内存中的对话,因此当 hook 触发时,它可能还不包括当前轮次的最新消息。需要当前轮次最后助手文本的 hooks 应该在[Stop](#stop) 和 [SubagentStop](#subagentstop) 上使用 `last_assistant_message`,而不是读取成绩单 |648| `transcript_path` | 对话 JSON 的路径。成绩单文件异步写入,可能滞后于内存中的对话,因此当 hook 触发时,它可能还不包括当前轮次的最新消息。需要当前轮次最后助手文本的 hooks 应该在[Stop](#stop) 和 [SubagentStop](#subagentstop) 上使用 `last_assistant_message`,而不是读取成绩单 |

649| `cwd` | 调用 hook 时的当前工作目录 |649| `cwd` | 调用 hook 时的当前工作目录 |

650| `permission_mode` | 当前[权限模式](/docs/zh-CN/permissions#permission-modes):`"default"`、`"plan"`、`"acceptEdits"`、`"auto"`、`"dontAsk"` 或 `"bypassPermissions"`。标记为**手动**的模式作为 `"default"` 到达,永远不会作为 `"manual"` 到达,因此匹配 `"default"` 的脚本继续工作。并非所有事件都接收此字段。检查每个[hook 事件](#hook-events)部分中的 JSON 示例 |650| `permission_mode` | 当前[权限模式](/docs/zh-CN/permissions#permission-modes):`"default"`、`"plan"`、`"acceptEdits"`、`"auto"`、`"dontAsk"` 或 `"bypassPermissions"`。标记为**手动**的模式作为 `"default"` 到达,永远不会作为 `"manual"` 到达,因此匹配 `"default"` 的脚本继续工作。并非所有事件都接收此字段。检查每个[hook 事件](#hook-events)部分中的 JSON 示例 |


1569在 `PostToolUse` 中,已完成的 Agent 调用的 `tool_response` 携带 subagent 的最终文本以及使用遥测。读取这些字段以从 hook 记录每个 subagent 的成本:1569在 `PostToolUse` 中,已完成的 Agent 调用的 `tool_response` 携带 subagent 的最终文本以及使用遥测。读取这些字段以从 hook 记录每个 subagent 的成本:

1570 1570 

1571| 字段 | 类型 | 示例 | 描述 |1571| 字段 | 类型 | 示例 | 描述 |

1572| :------------------ | :----- | :---------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |1572| :------------------ | :----- | :---------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------- |

1573| `status` | string | `"completed"` | 前台 subagents 为 `"completed"`,后台 subagents 为 `"async_launched"`。{/* min-version: 2.1.198 */}从 v2.1.198 开始,subagents 默认在后台运行,因此省略的 `run_in_background` 也产生 `"async_launched"` |1573| `status` | string | `"completed"` | 前台 subagents 为 `"completed"`,后台 subagents 为 `"async_launched"`。从 v2.1.198 开始,subagents 默认在后台运行,因此省略的 `run_in_background` 也产生 `"async_launched"` |

1574| `agentId` | string | `"a4d2c8f1e0b3a297"` | subagent 运行的标识符 |1574| `agentId` | string | `"a4d2c8f1e0b3a297"` | subagent 运行的标识符 |

1575| `content` | array | `[{"type": "text", "text": "Found 12 endpoints..."}]` | subagent 的最终文本块 |1575| `content` | array | `[{"type": "text", "text": "Found 12 endpoints..."}]` | subagent 的最终文本块 |

1576| `resolvedModel` | string | `"claude-sonnet-4-5"` | subagent 运行的模型,可能与请求的模型不同。{/* min-version: 2.1.174 */}需要 Claude Code v2.1.174 或更高版本 |1576| `resolvedModel` | string | `"claude-sonnet-4-5"` | subagent 运行的模型,可能与请求的模型不同。需要 Claude Code v2.1.174 或更高版本 |

1577| `totalTokens` | number | `12450` | 在 subagent 轮次中计费的总令牌数 |1577| `totalTokens` | number | `12450` | 在 subagent 轮次中计费的总令牌数 |

1578| `totalDurationMs` | number | `48211` | subagent 运行的挂钟时间 |1578| `totalDurationMs` | number | `48211` | subagent 运行的挂钟时间 |

1579| `totalToolUseCount` | number | `7` | subagent 进行的工具调用计数 |1579| `totalToolUseCount` | number | `7` | subagent 进行的工具调用计数 |


1603呈现一个计划并要求用户在 Claude 离开[Plan Mode](/docs/zh-CN/permission-modes#analyze-before-you-edit-with-plan-mode)之前批准它。Claude 在调用工具之前将计划写入磁盘上的文件,因此来自模型的字面 `tool_input` 通常为空。Claude Code 在将输入传递给 hooks 之前注入计划内容和文件路径。1603呈现一个计划并要求用户在 Claude 离开[Plan Mode](/docs/zh-CN/permission-modes#analyze-before-you-edit-with-plan-mode)之前批准它。Claude 在调用工具之前将计划写入磁盘上的文件,因此来自模型的字面 `tool_input` 通常为空。Claude Code 在将输入传递给 hooks 之前注入计划内容和文件路径。

1604 1604 

1605| 字段 | 类型 | 示例 | 描述 |1605| 字段 | 类型 | 示例 | 描述 |

1606| :--------------- | :----- | :------------------------------------------ | :-------------------------------------------------------------------------------------------- |1606| :--------------- | :----- | :------------------------------------------ | :---------------------------------------------------------------- |

1607| `plan` | string | `"## Refactor auth\n1. Extract..."` | Markdown 中的计划内容。从磁盘上的计划文件注入 |1607| `plan` | string | `"## Refactor auth\n1. Extract..."` | Markdown 中的计划内容。从磁盘上的计划文件注入 |

1608| `planFilePath` | string | `"/Users/.../plans/refactor-auth.md"` | 计划文件的路径。注入 |1608| `planFilePath` | string | `"/Users/.../plans/refactor-auth.md"` | 计划文件的路径。注入 |

1609| `allowedPrompts` | array | `[{"tool": "Bash", "prompt": "run tests"}]` | {/* min-version: 2.1.205 */}已弃用。Claude Code 接受该字段但忽略它。在 v2.1.205 之前,它携带 Claude 请求实现计划的基于提示的权限 |1609| `allowedPrompts` | array | `[{"tool": "Bash", "prompt": "run tests"}]` | 已弃用。Claude Code 接受该字段但忽略它。在 v2.1.205 之前,它携带 Claude 请求实现计划的基于提示的权限 |

1610 1610 

1611在 `PostToolUse` 中,`tool_response` 是一个对象,具有 `plan` 和 `filePath` 字段,保存批准的计划,加上内部状态标志。读取 `tool_response.plan` 以获取计划内容,而不是从磁盘重新读取文件。1611在 `PostToolUse` 中,`tool_response` 是一个对象,具有 `plan` 和 `filePath` 字段,保存批准的计划,加上内部状态标志。读取 `tool_response.plan` 以获取计划内容,而不是从磁盘重新读取文件。

1612 1612 


1763`updatedPermissions` 输出字段和[`permission_suggestions` 输入字段](#permissionrequest-input)都使用相同的条目对象数组。每个条目都有一个 `type` 来确定其其他字段,以及一个 `destination` 来控制更改的写入位置。1763`updatedPermissions` 输出字段和[`permission_suggestions` 输入字段](#permissionrequest-input)都使用相同的条目对象数组。每个条目都有一个 `type` 来确定其其他字段,以及一个 `destination` 来控制更改的写入位置。

1764 1764 

1765| `type` | 字段 | 效果 |1765| `type` | 字段 | 效果 |

1766| :------------------ | :------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |1766| :------------------ | :------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------- |

1767| `addRules` | `rules`、`behavior`、`destination` | 添加权限规则。`rules` 是 `{toolName, ruleContent?}` 对象的数组。省略 `ruleContent` 以匹配整个工具。`behavior` 是 `"allow"`、`"deny"` 或 `"ask"` |1767| `addRules` | `rules`、`behavior`、`destination` | 添加权限规则。`rules` 是 `{toolName, ruleContent?}` 对象的数组。省略 `ruleContent` 以匹配整个工具。`behavior` 是 `"allow"`、`"deny"` 或 `"ask"` |

1768| `replaceRules` | `rules`、`behavior`、`destination` | 用提供的 `rules` 替换 `destination` 处给定 `behavior` 的所有规则 |1768| `replaceRules` | `rules`、`behavior`、`destination` | 用提供的 `rules` 替换 `destination` 处给定 `behavior` 的所有规则 |

1769| `removeRules` | `rules`、`behavior`、`destination` | 移除给定 `behavior` 的匹配规则 |1769| `removeRules` | `rules`、`behavior`、`destination` | 移除给定 `behavior` 的匹配规则 |

1770| `setMode` | `mode`、`destination` | 更改权限模式。有效模式为 `default`、`auto`、`acceptEdits`、`dontAsk`、`bypassPermissions`、`plan` 和 {/* min-version: 2.1.200 */}`manual` 作为 `default` 的别名。`manual` 别名需要 Claude Code v2.1.200 或更高版本 |1770| `setMode` | `mode`、`destination` | 更改权限模式。有效模式为 `default`、`auto`、`acceptEdits`、`dontAsk`、`bypassPermissions`、`plan` 和 `manual` 作为 `default` 的别名。`manual` 别名需要 Claude Code v2.1.200 或更高版本 |

1771| `addDirectories` | `directories`、`destination` | 添加工作目录。`directories` 是路径字符串的数组 |1771| `addDirectories` | `directories`、`destination` | 添加工作目录。`directories` 是路径字符串的数组 |

1772| `removeDirectories` | `directories`、`destination` | 移除工作目录 |1772| `removeDirectories` | `directories`、`destination` | 移除工作目录 |

1773 1773 

hooks-guide.md +1 −1

Details

654}654}

655```655```

656 656 

657`"Edit|Write"` 匹配器仅在 Claude 使用 `Edit` 或 `Write` 工具时触发,而不是在它使用 `Bash`、`Read` 或任何其他工具时触发。{/* min-version: 2.1.191 */}在 Claude Code v2.1.191 或更高版本上,逗号以相同的方式分隔替代项,所以 `"Edit, Write"` 是等效的。请参阅 [匹配器模式](/docs/zh-CN/hooks#matcher-patterns) 了解纯名称和正则表达式如何被评估。657`"Edit|Write"` 匹配器仅在 Claude 使用 `Edit` 或 `Write` 工具时触发,而不是在它使用 `Bash`、`Read` 或任何其他工具时触发。在 Claude Code v2.1.191 或更高版本上,逗号以相同的方式分隔替代项,所以 `"Edit, Write"` 是等效的。请参阅 [匹配器模式](/docs/zh-CN/hooks#matcher-patterns) 了解纯名称和正则表达式如何被评估。

658 658 

659<Note>659<Note>

660 Claude 也可以通过 `Bash` 工具运行 shell 命令来创建或修改文件。如果你的 hook 必须看到每个文件更改,例如用于合规性扫描或审计日志,添加一个 [`Stop`](/docs/zh-CN/hooks#stop) hook,它每轮扫描一次工作树。为了获得每次调用的覆盖,也匹配 `Bash` 并让你的脚本使用 `git status --porcelain` 列出修改和未跟踪的文件。660 Claude 也可以通过 `Bash` 工具运行 shell 命令来创建或修改文件。如果你的 hook 必须看到每个文件更改,例如用于合规性扫描或审计日志,添加一个 [`Stop`](/docs/zh-CN/hooks#stop) hook,它每轮扫描一次工作树。为了获得每次调用的覆盖,也匹配 `Bash` 并让你的脚本使用 `git status --porcelain` 列出修改和未跟踪的文件。

Details

11</h2>11</h2>

12 12 

13<Note>13<Note>

14 键盘快捷键可能因平台和终端而异。在[全屏渲染](/zh-CN/fullscreen)中,在转录查看器中按 `?` 查看可用的快捷键。14 键盘快捷键可能因平台和终端而异。在[全屏渲染](/docs/zh-CN/fullscreen)中,在转录查看器中按 `?` 查看可用的快捷键。

15 15 

16 **macOS 用户**:Option/Alt 键快捷键(`Alt+B`、`Alt+F`、`Alt+Y`、`Alt+M`、`Alt+P`)需要在终端中将 Option 配置为 Meta:16 **macOS 用户**:Option/Alt 键快捷键(`Alt+B`、`Alt+F`、`Alt+Y`、`Alt+M`、`Alt+P`)需要在终端中将 Option 配置为 Meta:

17 17 


19 * **Apple Terminal**:设置 → 配置文件 → 键盘 → 勾选"使用 Option 作为 Meta 键"19 * **Apple Terminal**:设置 → 配置文件 → 键盘 → 勾选"使用 Option 作为 Meta 键"

20 * **VS Code**:在 VS Code 设置中设置 `"terminal.integrated.macOptionIsMeta": true`20 * **VS Code**:在 VS Code 设置中设置 `"terminal.integrated.macOptionIsMeta": true`

21 21 

22 有关详细信息,请参阅[终端配置](/zh-CN/terminal-config)。22 有关详细信息,请参阅[终端配置](/docs/zh-CN/terminal-config)。

23</Note>23</Note>

24 24 

25<h3 id="general-controls">25<h3 id="general-controls">


27</h3>27</h3>

28 28 

29| 快捷键 | 描述 | 上下文 |29| 快捷键 | 描述 | 上下文 |

30| :------------------------------------------------- | :------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------- |30| :------------------------------------------------- | :------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------ |

31| `Ctrl+C` | 中断,或清除输入 | 中断正在运行的操作。如果没有任何操作在运行,第一次按下会清除提示输入,第二次按下会退出 Claude Code |31| `Ctrl+C` | 中断,或清除输入 | 中断正在运行的操作。如果没有任何操作在运行,第一次按下会清除提示输入,第二次按下会退出 Claude Code |

32| `Ctrl+X Ctrl+K` | 终止此会话中所有运行的[后台子代理](/zh-CN/sub-agents#run-subagents-in-foreground-or-background)。在 3 秒内按两次以确认 | 子代理控制 |32| `Ctrl+X Ctrl+K` | 终止此会话中所有运行的[后台子代理](/docs/zh-CN/sub-agents#run-subagents-in-foreground-or-background)。在 3 秒内按两次以确认 | 子代理控制 |

33| `Ctrl+D` | 退出 Claude Code 会话 | EOF 信号 |33| `Ctrl+D` | 退出 Claude Code 会话 | EOF 信号 |

34| `Ctrl+G` 或 `Ctrl+X Ctrl+E` | 在默认文本编辑器中打开 | 在默认文本编辑器中编辑您的提示或自定义响应。`Ctrl+X Ctrl+E` 是 readline 原生绑定。在 `/config` 中打开"在外部编辑器中显示最后响应"以在您的提示上方将 Claude 的上一个回复作为 `#` 注释上下文预置;保存时会删除注释块 |34| `Ctrl+G` 或 `Ctrl+X Ctrl+E` | 在默认文本编辑器中打开 | 在默认文本编辑器中编辑您的提示或自定义响应。`Ctrl+X Ctrl+E` 是 readline 原生绑定。在 `/config` 中打开"在外部编辑器中显示最后响应"以在您的提示上方将 Claude 的上一个回复作为 `#` 注释上下文预置;保存时会删除注释块 |

35| `Ctrl+L` | 重绘屏幕 | 强制完整的终端重绘。输入和对话历史被保留。使用此功能可在显示变得混乱或部分空白时恢复 |35| `Ctrl+L` | 重绘屏幕 | 强制完整的终端重绘。输入和对话历史被保留。使用此功能可在显示变得混乱或部分空白时恢复 |


37| `Ctrl+R` | 反向搜索命令历史 | 交互式搜索以前的命令 |37| `Ctrl+R` | 反向搜索命令历史 | 交互式搜索以前的命令 |

38| `Ctrl+V` 或 `Cmd+V`(iTerm2)或 `Alt+V`(Windows 和 WSL) | 从剪贴板粘贴图像 | 在光标处插入 `[Image #N]` 芯片,以便您可以在提示中按位置引用它。在 WSL 上,`Ctrl+V` 和 `Alt+V` 都被绑定;如果您的终端拦截 `Ctrl+V`,请使用 `Alt+V` |38| `Ctrl+V` 或 `Cmd+V`(iTerm2)或 `Alt+V`(Windows 和 WSL) | 从剪贴板粘贴图像 | 在光标处插入 `[Image #N]` 芯片,以便您可以在提示中按位置引用它。在 WSL 上,`Ctrl+V` 和 `Alt+V` 都被绑定;如果您的终端拦截 `Ctrl+V`,请使用 `Alt+V` |

39| `Ctrl+B` | 后台运行任务 | 后台运行 Bash 命令和代理。Tmux 用户按两次 |39| `Ctrl+B` | 后台运行任务 | 后台运行 Bash 命令和代理。Tmux 用户按两次 |

40| `Ctrl+T` | 切换 Claude 的任务清单 | 在状态区域中显示或隐藏 [Claude 的待办事项清单](#task-list)。这不是后台任务视图;使用 [`/tasks`](/zh-CN/commands) 查看运行的 shell 和子代理 |40| `Ctrl+T` | 切换 Claude 的任务清单 | 在状态区域中显示或隐藏 [Claude 的待办事项清单](#task-list)。这不是后台任务视图;使用 [`/tasks`](/docs/zh-CN/commands) 查看运行的 shell 和子代理 |

41| `Left/Right arrows` | 在对话框选项卡之间循环 | 在权限对话框和菜单中的选项卡之间导航 |41| `Left/Right arrows` | 在对话框选项卡之间循环 | 在权限对话框和菜单中的选项卡之间导航 |

42| `Up/Down arrows` 或 `Ctrl+P`/`Ctrl+N` | 移动光标或导航命令历史 | 当输入跨越多个可视行时,无论是换行还是多行,首先在提示内移动光标。一旦光标在第一行或最后一行,再次按下会导航命令历史。{/* min-version: 2.1.169 */}从 v2.1.169 开始,换行的单行输入的行为与多行输入相同 |42| `Up/Down arrows` 或 `Ctrl+P`/`Ctrl+N` | 移动光标或导航命令历史 | 当输入跨越多个可视行时,无论是换行还是多行,首先在提示内移动光标。一旦光标在第一行或最后一行,再次按下会导航命令历史。从 v2.1.169 开始,换行的单行输入的行为与多行输入相同 |

43| `Esc` | 中断 Claude,或关闭对话框 | 停止当前响应或工具调用中途,以便您可以重定向。Claude 保留迄今为止完成的工作。当权限提示等对话框打开时,`Esc` 关闭对话框而不是中断 Claude。{/* min-version: 2.1.202 */}在 v2.1.202 之前,某些对话框上的 `Esc` 会中断 Claude 并保持对话框打开 |43| `Esc` | 中断 Claude,或关闭对话框 | 停止当前响应或工具调用中途,以便您可以重定向。Claude 保留迄今为止完成的工作。当权限提示等对话框打开时,`Esc` 关闭对话框而不是中断 Claude。在 v2.1.202 之前,某些对话框上的 `Esc` 会中断 Claude 并保持对话框打开 |

44| `Esc` + `Esc` | 清除输入草稿,或回退 | 当提示输入包含文本时,双 `Esc` 会清除它并将草稿保存到历史记录中,以便 `Up` 可以调用它。当输入为空时,双 `Esc` 会打开[回退菜单](/zh-CN/checkpointing)以从上一个点恢复或总结代码和对话 |44| `Esc` + `Esc` | 清除输入草稿,或回退 | 当提示输入包含文本时,双 `Esc` 会清除它并将草稿保存到历史记录中,以便 `Up` 可以调用它。当输入为空时,双 `Esc` 会打开[回退菜单](/docs/zh-CN/checkpointing)以从上一个点恢复或总结代码和对话 |

45| `Shift+Tab` 或 `Alt+M`(某些配置) | 循环权限模式 | 在 `default`(在模式指示器中标记为 Manual)、`acceptEdits`、`plan` 和您启用的任何模式(如 `auto` 或 `bypassPermissions`)之间循环。请参阅[权限模式](/zh-CN/permission-modes)。 |45| `Shift+Tab` 或 `Alt+M`(某些配置) | 循环权限模式 | 在 `default`(在模式指示器中标记为 Manual)、`acceptEdits`、`plan` 和您启用的任何模式(如 `auto` 或 `bypassPermissions`)之间循环。请参阅[权限模式](/docs/zh-CN/permission-modes)。 |

46| `Option+P`(macOS)或 `Alt+P`(Windows/Linux) | 切换模型 | 在不清除提示的情况下切换模型 |46| `Option+P`(macOS)或 `Alt+P`(Windows/Linux) | 切换模型 | 在不清除提示的情况下切换模型 |

47| `Option+T`(macOS)或 `Alt+T`(Windows/Linux) | 切换扩展思考 | 启用或禁用扩展思考模式。对 Fable 5 无效,它始终使用扩展思考。{/* min-version: 2.1.132 */}从 v2.1.132 开始,此快捷键在 macOS 上无需配置 Option 作为 Meta 即可工作 |47| `Option+T`(macOS)或 `Alt+T`(Windows/Linux) | 切换扩展思考 | 启用或禁用扩展思考模式。对 Fable 5 无效,它始终使用扩展思考。从 v2.1.132 开始,此快捷键在 macOS 上无需配置 Option 作为 Meta 即可工作 |

48| `Option+O`(macOS)或 `Alt+O`(Windows/Linux) | 切换快速模式 | 启用或禁用[快速模式](/zh-CN/fast-mode) |48| `Option+O`(macOS)或 `Alt+O`(Windows/Linux) | 切换快速模式 | 启用或禁用[快速模式](/docs/zh-CN/fast-mode) |

49 49 

50<h3 id="text-editing">50<h3 id="text-editing">

51 文本编辑51 文本编辑


78| 方法 | 快捷键 | 上下文 |78| 方法 | 快捷键 | 上下文 |

79| :---------- | :------------- | :------------------------------------------------------------------------------------------- |79| :---------- | :------------- | :------------------------------------------------------------------------------------------- |

80| 快速转义 | `\` + `Enter` | 在所有终端中工作 |80| 快速转义 | `\` + `Enter` | 在所有终端中工作 |

81| Option 键 | `Option+Enter` | 在 macOS 上启用[将 Option 作为 Meta](/zh-CN/terminal-config#enable-option-key-shortcuts-on-macos) 后 |81| Option 键 | `Option+Enter` | 在 macOS 上启用[将 Option 作为 Meta](/docs/zh-CN/terminal-config#enable-option-key-shortcuts-on-macos) 后 |

82| Shift+Enter | `Shift+Enter` | 在 iTerm2、WezTerm、Ghostty、Kitty、Warp、Apple Terminal、Windows Terminal 中开箱即用 |82| Shift+Enter | `Shift+Enter` | 在 iTerm2、WezTerm、Ghostty、Kitty、Warp、Apple Terminal、Windows Terminal 中开箱即用 |

83| 控制序列 | `Ctrl+J` | 在任何终端中工作,无需配置 |83| 控制序列 | `Ctrl+J` | 在任何终端中工作,无需配置 |

84| 粘贴模式 | 直接粘贴 | 对于代码块、日志 |84| 粘贴模式 | 直接粘贴 | 对于代码块、日志 |


93 93 

94| 快捷键 | 描述 | 注释 |94| 快捷键 | 描述 | 注释 |

95| :------ | :-------- | :------------------------------------------ |95| :------ | :-------- | :------------------------------------------ |

96| `/` 在开始 | 命令或 skill | 请参阅[命令](#commands)和 [skills](/zh-CN/skills) |96| `/` 在开始 | 命令或 skill | 请参阅[命令](#commands)和 [skills](/docs/zh-CN/skills) |

97| `!` 在开始 | Shell 模式 | 直接运行命令,将其输出添加到会话,并让 Claude 对其进行响应 |97| `!` 在开始 | Shell 模式 | 直接运行命令,将其输出添加到会话,并让 Claude 对其进行响应 |

98| `@` | 文件路径提及 | 触发文件路径自动完成 |98| `@` | 文件路径提及 | 触发文件路径自动完成 |

99 99 


101 转录查看器101 转录查看器

102</h3>102</h3>

103 103 

104当转录查看器打开时(使用 `Ctrl+O` 切换),这些快捷键可用。在[全屏渲染](/zh-CN/fullscreen)中,按 `?` 显示查看器内的完整快捷键参考面板。`Ctrl+E` 可以通过 [`transcript:toggleShowAll`](/zh-CN/keybindings) 重新绑定。104当转录查看器打开时(使用 `Ctrl+O` 切换),这些快捷键可用。在[全屏渲染](/docs/zh-CN/fullscreen)中,按 `?` 显示查看器内的完整快捷键参考面板。`Ctrl+E` 可以通过 [`transcript:toggleShowAll`](/docs/zh-CN/keybindings) 重新绑定。

105 105 

106| 快捷键 | 描述 |106| 快捷键 | 描述 |

107| :----------------- | :---------------------------------------------------------------------------------------------------------------- |107| :----------------- | :---------------------------------------------------------------------------------------------------------------- |

108| `?` | 切换键盘快捷键帮助面板。需要[全屏渲染](/zh-CN/fullscreen) |108| `?` | 切换键盘快捷键帮助面板。需要[全屏渲染](/docs/zh-CN/fullscreen) |

109| `{` / `}` | 跳转到上一个或下一个用户提示,如 vim 段落运动。需要[全屏渲染](/zh-CN/fullscreen) |109| `{` / `}` | 跳转到上一个或下一个用户提示,如 vim 段落运动。需要[全屏渲染](/docs/zh-CN/fullscreen) |

110| `Ctrl+E` | 切换显示所有内容 |110| `Ctrl+E` | 切换显示所有内容 |

111| `[` | 将完整对话写入终端的原生滚动缓冲区,以便 `Cmd+F`、tmux 复制模式和其他原生工具可以搜索它。需要[全屏渲染](/zh-CN/fullscreen#search-and-review-the-conversation) |111| `[` | 将完整对话写入终端的原生滚动缓冲区,以便 `Cmd+F`、tmux 复制模式和其他原生工具可以搜索它。需要[全屏渲染](/docs/zh-CN/fullscreen#search-and-review-the-conversation) |

112| `v` | 将对话写入临时文件并在 `$VISUAL` 或 `$EDITOR` 中打开它。需要[全屏渲染](/zh-CN/fullscreen) |112| `v` | 将对话写入临时文件并在 `$VISUAL` 或 `$EDITOR` 中打开它。需要[全屏渲染](/docs/zh-CN/fullscreen) |

113| `q`、`Ctrl+C`、`Esc` | 退出转录视图。所有三个都可以通过 [`transcript:exit`](/zh-CN/keybindings) 重新绑定 |113| `q`、`Ctrl+C`、`Esc` | 退出转录视图。所有三个都可以通过 [`transcript:exit`](/docs/zh-CN/keybindings) 重新绑定 |

114 114 

115<h3 id="voice-input">115<h3 id="voice-input">

116 语音输入116 语音输入


118 118 

119| 快捷键 | 描述 | 注释 |119| 快捷键 | 描述 | 注释 |

120| :------------ | :--- | :------------------------------------------------------------------------------------------------------------------------- |120| :------------ | :--- | :------------------------------------------------------------------------------------------------------------------------- |

121| 按住或点击 `Space` | 语音听写 | 需要启用[语音听写](/zh-CN/voice-dictation)。按住以录制,或运行 `/voice tap` 以进行点击切换。[可重新绑定](/zh-CN/voice-dictation#rebind-the-dictation-key) |121| 按住或点击 `Space` | 语音听写 | 需要启用[语音听写](/docs/zh-CN/voice-dictation)。按住以录制,或运行 `/voice tap` 以进行点击切换。[可重新绑定](/docs/zh-CN/voice-dictation#rebind-the-dictation-key) |

122 122 

123<h2 id="commands">123<h2 id="commands">

124 命令124 命令

125</h2>125</h2>

126 126 

127在 Claude Code 中键入 `/` 以查看所有可用命令,或键入 `/` 后跟任何字母以进行筛选。`/` 菜单显示您可以调用的所有内容:内置命令、捆绑的和用户编写的 [skills](/zh-CN/skills),以及由 [plugins](/zh-CN/plugins) 和 [MCP servers](/zh-CN/mcp#use-mcp-prompts-as-commands) 贡献的命令。并非所有内置命令对每个用户都可见,因为某些命令取决于您的平台或计划。127在 Claude Code 中键入 `/` 以查看所有可用命令,或键入 `/` 后跟任何字母以进行筛选。`/` 菜单显示您可以调用的所有内容:内置命令、捆绑的和用户编写的 [skills](/docs/zh-CN/skills),以及由 [plugins](/docs/zh-CN/plugins) 和 [MCP servers](/docs/zh-CN/mcp#use-mcp-prompts-as-commands) 贡献的命令。并非所有内置命令对每个用户都可见,因为某些命令取决于您的平台或计划。

128 128 

129在[全屏渲染](/zh-CN/fullscreen#use-the-mouse)中,`/` 命令和 `@` 文件建议列表也响应鼠标:悬停突出显示一行,单击接受它。129在[全屏渲染](/docs/zh-CN/fullscreen#use-the-mouse)中,`/` 命令和 `@` 文件建议列表也响应鼠标:悬停突出显示一行,单击接受它。

130 130 

131有关 Claude Code 中包含的命令的完整列表,请参阅[命令参考](/zh-CN/commands)。131有关 Claude Code 中包含的命令的完整列表,请参阅[命令参考](/docs/zh-CN/commands)。

132 132 

133<h2 id="vim-editor-mode">133<h2 id="vim-editor-mode">

134 Vim 编辑器模式134 Vim 编辑器模式


140 重新映射 INSERT 模式快捷键序列140 重新映射 INSERT 模式快捷键序列

141</h3>141</h3>

142 142 

143[`vimInsertModeRemaps`](/zh-CN/settings#available-settings) 设置将两个按键的 INSERT 模式序列映射到 Escape,因此像 `jj` 这样的映射会让你返回 NORMAL 模式。{/* min-version: 2.1.208 */}需要 Claude Code v2.1.208 或更高版本。143[`vimInsertModeRemaps`](/docs/zh-CN/settings#available-settings) 设置将两个按键的 INSERT 模式序列映射到 Escape,因此像 `jj` 这样的映射会让你返回 NORMAL 模式。需要 Claude Code v2.1.208 或更高版本。

144 144 

145以下 `~/.claude/settings.json` 示例打开 vim 模式并将 `jj` 映射到 Escape:145以下 `~/.claude/settings.json` 示例打开 vim 模式并将 `jj` 映射到 Escape:

146 146 


155 155 

156输入序列的第一个字符会正常插入。在一秒内按下第二个字符会移除该待处理字符并切换到 NORMAL 模式,在你的输入中不留下任何字符。在一秒窗口之后,或者如果按下不同的键,两个字符都会保留为文字文本,因此你仍然可以通过在两个键之间暂停来输入包含该序列的单词。156输入序列的第一个字符会正常插入。在一秒内按下第二个字符会移除该待处理字符并切换到 NORMAL 模式,在你的输入中不留下任何字符。在一秒窗口之后,或者如果按下不同的键,两个字符都会保留为文字文本,因此你仍然可以通过在两个键之间暂停来输入包含该序列的单词。

157 157 

158Claude Code 仅从你的用户设置文件、`--settings` 标志和[托管设置](/zh-CN/permissions#managed-settings)读取此设置。项目的 `.claude/settings.json` 或 `.claude/settings.local.json` 中的条目被忽略,因此已检出的存储库无法重新映射你的按键。158Claude Code 仅从你的用户设置文件、`--settings` 标志和[托管设置](/docs/zh-CN/permissions#managed-settings)读取此设置。项目的 `.claude/settings.json` 或 `.claude/settings.local.json` 中的条目被忽略,因此已检出的存储库无法重新映射你的按键。

159 159 

160<h3 id="remap-insert-mode-key-sequences">160<h3 id="remap-insert-mode-key-sequences">

161 模式切换161 模式切换


178</h3>178</h3>

179 179 

180| 命令 | 操作 |180| 命令 | 操作 |

181| :-------------- | :-------------------------------------------------------------------------------------------------------- |181| :-------------- | :---------------------------------------------------------------------------- |

182| `h`/`j`/`k`/`l` | 向左/向下/向上/向右移动 |182| `h`/`j`/`k`/`l` | 向左/向下/向上/向右移动 |

183| `Space` | 向右移动 |183| `Space` | 向右移动 |

184| `w` | 下一个单词 |184| `w` | 下一个单词 |


195| `T{char}` | 跳转到上一个字符出现处之后 |195| `T{char}` | 跳转到上一个字符出现处之后 |

196| `;` | 重复最后一个 f/F/t/T 动作 |196| `;` | 重复最后一个 f/F/t/T 动作 |

197| `,` | 反向重复最后一个 f/F/t/T 动作 |197| `,` | 反向重复最后一个 f/F/t/T 动作 |

198| `/` | 打开反向历史搜索,与 `Ctrl+R` 相同。{/* min-version: 2.1.191 */}从 v2.1.191 开始,空搜索提示显示一个提示:按 `Esc` 然后 `i` 然后 `/` 打开命令菜单 |198| `/` | 打开反向历史搜索,与 `Ctrl+R` 相同。从 v2.1.191 开始,空搜索提示显示一个提示:按 `Esc` 然后 `i` 然后 `/` 打开命令菜单 |

199 199 

200<Note>200<Note>

201 在 vim 正常模式下,如果光标在输入的开始或结束处且无法进一步移动,`j`/`k` 和箭头键将导航命令历史。201 在 vim 正常模式下,如果光标在输入的开始或结束处且无法进一步移动,`j`/`k` 和箭头键将导航命令历史。


316 316 

317* 输出被写入文件,Claude 可以使用 Read 工具检索它317* 输出被写入文件,Claude 可以使用 Read 工具检索它

318* 后台任务具有唯一的 ID 用于跟踪和输出检索318* 后台任务具有唯一的 ID 用于跟踪和输出检索

319* 当 Claude Code 退出时,后台任务会自动清理。将会话放在后台而不是退出会将它们交给后台会话,它们会继续运行。请参阅[在会话内部将其放在后台](/zh-CN/agent-view#from-inside-a-session)319* 当 Claude Code 退出时,后台任务会自动清理。将会话放在后台而不是退出会将它们交给后台会话,它们会继续运行。请参阅[在会话内部将其放在后台](/docs/zh-CN/agent-view#from-inside-a-session)

320* 如果输出超过 5GB,后台任务会自动终止,stderr 中会有说明原因的注释320* 如果输出超过 5GB,后台任务会自动终止,stderr 中会有说明原因的注释

321* {/* min-version: 2.1.193 */}从 v2.1.193 开始,在 macOS 和 Linux 上,当操作系统发出内存压力信号时,运行中的后台任务会被终止,前提是会话已经空闲至少 30 分钟,没有任何轮次或子代理运行。将 [`CLAUDE_CODE_DISABLE_BG_SHELL_PRESSURE_REAP`](/zh-CN/env-vars) 设置为 `1` 以关闭此功能321* 从 v2.1.193 开始,在 macOS 和 Linux 上,当操作系统发出内存压力信号时,运行中的后台任务会被终止,前提是会话已经空闲至少 30 分钟,没有任何轮次或子代理运行。将 [`CLAUDE_CODE_DISABLE_BG_SHELL_PRESSURE_REAP`](/docs/zh-CN/env-vars) 设置为 `1` 以关闭此功能

322 322 

323要禁用所有后台任务功能,请将 `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` 环境变量设置为 `1`。有关详细信息,请参阅[环境变量](/zh-CN/env-vars)。323要禁用所有后台任务功能,请将 `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` 环境变量设置为 `1`。有关详细信息,请参阅[环境变量](/docs/zh-CN/env-vars)。

324 324 

325**常见的后台命令:**325**常见的后台命令:**

326 326 


349* 支持相同的 `Ctrl+B` 后台运行长时间运行的命令349* 支持相同的 `Ctrl+B` 后台运行长时间运行的命令

350* 不需要 Claude 解释或批准命令350* 不需要 Claude 解释或批准命令

351* 支持基于历史的自动完成:键入部分命令并按 `Tab` 以从当前项目中的上一个 `!` 命令完成351* 支持基于历史的自动完成:键入部分命令并按 `Tab` 以从当前项目中的上一个 `!` 命令完成

352* {/* min-version: 2.1.193 */}从 v2.1.193 开始在所有平台上支持实时文件路径自动完成:键入包含正斜杠的令牌,例如 `./src/` 或 `~/`,以查看匹配文件和目录的下拉列表,然后按 `Tab` 接受。在 Windows 上也使用正斜杠;下拉列表由 `/` 触发,而不是 `\`352* 从 v2.1.193 开始在所有平台上支持实时文件路径自动完成:键入包含正斜杠的令牌,例如 `./src/` 或 `~/`,以查看匹配文件和目录的下拉列表,然后按 `Tab` 接受。在 Windows 上也使用正斜杠;下拉列表由 `/` 触发,而不是 `\`

353* 在空提示上使用 `Escape`、`Backspace` 或 `Ctrl+U` 退出353* 在空提示上使用 `Escape`、`Backspace` 或 `Ctrl+U` 退出

354* 将以 `!` 开头的文本粘贴到空提示中会自动进入 shell 模式,与键入的 `!` 行为相匹配354* 将以 `!` 开头的文本粘贴到空提示中会自动进入 shell 模式,与键入的 `!` 行为相匹配

355 355 

356从 v2.1.186 开始,Claude 在命令输出进入记录后会自动响应,因此您可以运行 `! npm test` 并获得失败的解释,无需第二个提示。响应成本与发送普通提示相同。要恢复早期行为(其中输出被添加到上下文而不响应),请在 `settings.json` 中将 [`respondToBashCommands`](/zh-CN/settings#available-settings) 设置为 `false`。在 v2.1.186 之前,shell 模式始终将输出添加到上下文而不响应。356从 v2.1.186 开始,Claude 在命令输出进入记录后会自动响应,因此您可以运行 `! npm test` 并获得失败的解释,无需第二个提示。响应成本与发送普通提示相同。要恢复早期行为(其中输出被添加到上下文而不响应),请在 `settings.json` 中将 [`respondToBashCommands`](/docs/zh-CN/settings#available-settings) 设置为 `false`。在 v2.1.186 之前,shell 模式始终将输出添加到上下文而不响应。

357 357 

358这对于快速 shell 操作同时保持对话上下文很有用。358这对于快速 shell 操作同时保持对话上下文很有用。

359 359 


370 370 

371建议作为后台请求运行,该请求重用父对话的 prompt cache,因此额外成本最小。当缓存冷时,Claude Code 会跳过建议生成以避免不必要的成本。371建议作为后台请求运行,该请求重用父对话的 prompt cache,因此额外成本最小。当缓存冷时,Claude Code 会跳过建议生成以避免不必要的成本。

372 372 

373在对话的第一轮之后以及在 Plan Mode 中,建议会自动跳过。在打印模式下,它们默认关闭。传递 [`--prompt-suggestions`](/zh-CN/cli-reference#cli-flags) 与 `--output-format stream-json --verbose` 以在每轮之后发出 `prompt_suggestion` 消息。373在对话的第一轮之后以及在 Plan Mode 中,建议会自动跳过。在打印模式下,它们默认关闭。传递 [`--prompt-suggestions`](/docs/zh-CN/cli-reference#cli-flags) 与 `--output-format stream-json --verbose` 以在每轮之后发出 `prompt_suggestion` 消息。

374 374 

375要完全禁用提示建议,请设置环境变量或在 `/config` 中切换设置:375要完全禁用提示建议,请设置环境变量或在 `/config` 中切换设置:

376 376 


400答案出现后,覆盖层接受这些按键。400答案出现后,覆盖层接受这些按键。

401 401 

402| 按键 | 操作 |402| 按键 | 操作 |

403| :----------------------- | :-------------------------------------------------------------------------------------------------------------------- |403| :----------------------- | :---------------------------------------------------------------------------------------------- |

404| `Space`、`Enter`、`Escape` | 关闭答案并返回提示 |404| `Space`、`Enter`、`Escape` | 关闭答案并返回提示 |

405| `Up` / `Down` | 滚动答案 |405| `Up` / `Down` | 滚动答案 |

406| `Left` / `Right` | {/* min-version: 2.1.187 */}在此答案和您来自会话的较早 `/btw` 答案之间切换。`Left` 移动到较早的答案,`Right` 返回到当前答案。需要 Claude Code v2.1.187 或更高版本 |406| `Left` / `Right` | 在此答案和您来自会话的较早 `/btw` 答案之间切换。`Left` 移动到较早的答案,`Right` 返回到当前答案。需要 Claude Code v2.1.187 或更高版本 |

407| `c` | 将答案作为原始 Markdown 复制到您的剪贴板。使用此方法而不是鼠标选择,后者会捕获硬换行的终端呈现而不是源文本 |407| `c` | 将答案作为原始 Markdown 复制到您的剪贴板。使用此方法而不是鼠标选择,后者会捕获硬换行的终端呈现而不是源文本 |

408| `f` | 分叉到新会话。分叉继承父对话加上此问题和答案作为真实记录轮次,因此您可以继续使用完整工具访问。原始会话保留在 [`/resume`](/zh-CN/commands) 下。仅在本地会话中可用 |408| `f` | 分叉到新会话。分叉继承父对话加上此问题和答案作为真实记录轮次,因此您可以继续使用完整工具访问。原始会话保留在 [`/resume`](/docs/zh-CN/commands) 下。仅在本地会话中可用 |

409| `x` | 清除当前答案上方显示的较早 `/btw` 交换列表 |409| `x` | 清除当前答案上方显示的较早 `/btw` 交换列表 |

410 410 

411`/btw` 是 [subagent](/zh-CN/sub-agents) 的反面:它看到您的完整对话但没有工具,而 subagent 具有完整工具但从空上下文开始。使用 `/btw` 询问 Claude 从此会话已知的内容;使用 subagent 去发现新的东西。411`/btw` 是 [subagent](/docs/zh-CN/sub-agents) 的反面:它看到您的完整对话但没有工具,而 subagent 具有完整工具但从空上下文开始。使用 `/btw` 询问 Claude 从此会话已知的内容;使用 subagent 去发现新的东西。

412 412 

413<h2 id="task-list">413<h2 id="task-list">

414 任务列表414 任务列表

415</h2>415</h2>

416 416 

417任务列表是 Claude 的待办事项清单:Claude 创建的用于规划多步骤工作的项目,带有指示器显示待处理、进行中或完成的内容。它与后台任务视图分开。要查看运行中的 shell 和子代理,请改用 [`/tasks`](/zh-CN/commands)。417任务列表是 Claude 的待办事项清单:Claude 创建的用于规划多步骤工作的项目,带有指示器显示待处理、进行中或完成的内容。它与后台任务视图分开。要查看运行中的 shell 和子代理,请改用 [`/tasks`](/docs/zh-CN/commands)。

418 418 

419* 按 `Ctrl+T` 切换任务列表视图。显示一次最多五个任务。当 Claude 还没有创建任何清单项目时,切换没有可见效果,因为没有任何内容可显示419* 按 `Ctrl+T` 切换任务列表视图。显示一次最多五个任务。当 Claude 还没有创建任何清单项目时,切换没有可见效果,因为没有任何内容可显示

420* 要查看所有任务或清除它们,直接询问 Claude:"show me all tasks"或"clear all tasks"420* 要查看所有任务或清除它们,直接询问 Claude:"show me all tasks"或"clear all tasks"


452 另请参阅452 另请参阅

453</h2>453</h2>

454 454 

455* [Skills](/zh-CN/skills) - 自定义提示和工作流455* [Skills](/docs/zh-CN/skills) - 自定义提示和工作流

456* [Checkpointing](/zh-CN/checkpointing) - 回退 Claude 的编辑并恢复以前的状态456* [Checkpointing](/docs/zh-CN/checkpointing) - 回退 Claude 的编辑并恢复以前的状态

457* [CLI 参考](/zh-CN/cli-reference) - 命令行标志和选项457* [CLI 参考](/docs/zh-CN/cli-reference) - 命令行标志和选项

458* [设置](/zh-CN/settings) - 配置选项458* [设置](/docs/zh-CN/settings) - 配置选项

459* [内存管理](/zh-CN/memory) - 管理 CLAUDE.md 文件459* [内存管理](/docs/zh-CN/memory) - 管理 CLAUDE.md 文件

keybindings.md +12 −12

Details

68| `Plugin` | 插件对话框(浏览、发现、管理) |68| `Plugin` | 插件对话框(浏览、发现、管理) |

69| `Scroll` | 对话滚动和全屏模式下的文本选择 |69| `Scroll` | 对话滚动和全屏模式下的文本选择 |

70 70 

71{/* max-version: 2.1.204 */}在 v2.1.205 之前,`/doctor` 诊断屏幕存在 `Doctor` 上下文和 `doctor:fix` 操作。71在 v2.1.205 之前,`/doctor` 诊断屏幕存在 `Doctor` 上下文和 `doctor:fix` 操作。

72 72 

73<h2 id="available-actions">73<h2 id="available-actions">

74 可用操作74 可用操作


87| `app:interrupt` | Ctrl+C | 取消当前操作 |87| `app:interrupt` | Ctrl+C | 取消当前操作 |

88| `app:exit` | Ctrl+D | 退出 Claude Code |88| `app:exit` | Ctrl+D | 退出 Claude Code |

89| `app:redraw` | (未绑定) | 强制终端重绘 |89| `app:redraw` | (未绑定) | 强制终端重绘 |

90| `app:toggleTodos` | Ctrl+T | 切换 Claude 待办事项清单的可见性。这不是 [`/tasks`](/zh-CN/commands) 后台任务视图 |90| `app:toggleTodos` | Ctrl+T | 切换 Claude 待办事项清单的可见性。这不是 [`/tasks`](/docs/zh-CN/commands) 后台任务视图 |

91| `app:toggleTranscript` | Ctrl+O | 切换详细记录 |91| `app:toggleTranscript` | Ctrl+O | 切换详细记录 |

92 92 

93<h3 id="history-actions">93<h3 id="history-actions">


111| 操作 | 默认 | 描述 |111| 操作 | 默认 | 描述 |

112| :-------------------- | :----------------------------- | :--------------------------------------------------------------------------------- |112| :-------------------- | :----------------------------- | :--------------------------------------------------------------------------------- |

113| `chat:cancel` | Escape | 取消当前输入 |113| `chat:cancel` | Escape | 取消当前输入 |

114| `chat:clearInput` | Ctrl+L | 强制全屏重绘,保留输入。在[全屏渲染](/zh-CN/fullscreen#clear-the-conversation)中,在两秒内按两次以运行 `/clear` |114| `chat:clearInput` | Ctrl+L | 强制全屏重绘,保留输入。在[全屏渲染](/docs/zh-CN/fullscreen#clear-the-conversation)中,在两秒内按两次以运行 `/clear` |

115| `chat:clearScreen` | Cmd+K | 在[全屏渲染](/zh-CN/fullscreen#clear-the-conversation)中,在两秒内按两次以运行 `/clear` |115| `chat:clearScreen` | Cmd+K | 在[全屏渲染](/docs/zh-CN/fullscreen#clear-the-conversation)中,在两秒内按两次以运行 `/clear` |

116| `chat:killAgents` | Ctrl+X Ctrl+K | 终止所有运行中的[后台子代理](/zh-CN/sub-agents#run-subagents-in-foreground-or-background)在此会话中 |116| `chat:killAgents` | Ctrl+X Ctrl+K | 终止所有运行中的[后台子代理](/docs/zh-CN/sub-agents#run-subagents-in-foreground-or-background)在此会话中 |

117| `chat:cycleMode` | Shift+Tab\* | 循环权限模式 |117| `chat:cycleMode` | Shift+Tab\* | 循环权限模式 |

118| `chat:modelPicker` | Meta+P | 打开模型选择器 |118| `chat:modelPicker` | Meta+P | 打开模型选择器 |

119| `chat:fastMode` | Meta+O | 切换快速模式 |119| `chat:fastMode` | Meta+O | 切换快速模式 |


156| `confirm:previousField` | (未绑定) | 上一个字段 |156| `confirm:previousField` | (未绑定) | 上一个字段 |

157| `confirm:toggle` | Space | 切换选择 |157| `confirm:toggle` | Space | 切换选择 |

158| `confirm:cycleMode` | Shift+Tab | 循环权限模式 |158| `confirm:cycleMode` | Shift+Tab | 循环权限模式 |

159| `confirm:toggleExplanation` | Ctrl+E | 在 Bash 和 PowerShell 权限提示上切换模型生成的[命令说明](/zh-CN/permissions#permission-system) |159| `confirm:toggleExplanation` | Ctrl+E | 在 Bash 和 PowerShell 权限提示上切换模型生成的[命令说明](/docs/zh-CN/permissions#permission-system) |

160 160 

161<h3 id="permission-actions">161<h3 id="permission-actions">

162 权限操作162 权限操作


200在 `Task` 上下文中可用的操作:200在 `Task` 上下文中可用的操作:

201 201 

202| 操作 | 默认 | 描述 |202| 操作 | 默认 | 描述 |

203| :---------------- | :-------------------- | :--------------------------------------------------------------------------------- |203| :---------------- | :-------------------- | :----------------------------------------------------- |

204| `task:background` | Ctrl+B, Ctrl+X Ctrl+B | 后台当前任务。{/* min-version: 2.1.169 */}Ctrl+X Ctrl+B 组合键需要 v2.1.169 或更高版本,避免 tmux 前缀冲突 |204| `task:background` | Ctrl+B, Ctrl+X Ctrl+B | 后台当前任务。Ctrl+X Ctrl+B 组合键需要 v2.1.169 或更高版本,避免 tmux 前缀冲突 |

205 205 

206<h3 id="theme-actions">206<h3 id="theme-actions">

207 主题操作207 主题操作


357 语音操作357 语音操作

358</h3>358</h3>

359 359 

360在启用[语音听写](/zh-CN/voice-dictation)时,在 `Chat` 上下文中可用的操作:360在启用[语音听写](/docs/zh-CN/voice-dictation)时,在 `Chat` 上下文中可用的操作:

361 361 

362| 操作 | 默认 | 描述 |362| 操作 | 默认 | 描述 |

363| :----------------- | :---- | :----------------------- |363| :----------------- | :---- | :----------------------- |


367 滚动操作367 滚动操作

368</h3>368</h3>

369 369 

370在启用[全屏渲染](/zh-CN/fullscreen)时,在 `Scroll` 上下文中可用的操作:370在启用[全屏渲染](/docs/zh-CN/fullscreen)时,在 `Scroll` 上下文中可用的操作:

371 371 

372| 操作 | 默认 | 描述 |372| 操作 | 默认 | 描述 |

373| :-------------------------- | :------------------- | :--------------------------------------------------- |373| :-------------------------- | :------------------- | :--------------------------------------------------- |


526* **快捷键**在组件级别处理操作(切换待办事项、提交等)526* **快捷键**在组件级别处理操作(切换待办事项、提交等)

527* vim 模式中的 Escape 键从 INSERT 切换到 NORMAL 模式;它不触发 `chat:cancel`527* vim 模式中的 Escape 键从 INSERT 切换到 NORMAL 模式;它不触发 `chat:cancel`

528* 大多数 Ctrl+key 快捷键通过 vim 模式传递到快捷键系统528* 大多数 Ctrl+key 快捷键通过 vim 模式传递到快捷键系统

529* Vim 键不能通过快捷键文件重新映射。要映射两键 INSERT 模式序列(如 `jj`)到 Escape,请使用 [`vimInsertModeRemaps`](/zh-CN/interactive-mode#remap-insert-mode-key-sequences) 设置529* Vim 键不能通过快捷键文件重新映射。要映射两键 INSERT 模式序列(如 `jj`)到 Escape,请使用 [`vimInsertModeRemaps`](/docs/zh-CN/interactive-mode#remap-insert-mode-key-sequences) 设置

530* 在 vim NORMAL 模式中,`?` 显示帮助菜单(vim 行为)530* 在 vim NORMAL 模式中,`?` 显示帮助菜单(vim 行为)

531* 在 vim NORMAL 模式中,`/` 打开历史搜索,与标准模式中的 Ctrl+R 相同531* 在 vim NORMAL 模式中,`/` 打开历史搜索,与标准模式中的 Ctrl+R 相同

532 532 


542* 终端多路复用器冲突542* 终端多路复用器冲突

543* 同一上下文中的重复绑定543* 同一上下文中的重复绑定

544 544 

545Claude Code 在文件加载时报告警告,并将每个警告写入调试日志。使用 [`--debug`](/zh-CN/cli-reference#cli-flags) 启动 Claude Code 以查看详细信息。545Claude Code 在文件加载时报告警告,并将每个警告写入调试日志。使用 [`--debug`](/docs/zh-CN/cli-reference#cli-flags) 启动 Claude Code 以查看详细信息。

Details

6 6 

7> 将 Claude Code 指向您组织的 LLM 网关。检查您的管理员是否已配置它,或自行设置基础 URL 和凭证,然后验证连接并修复网关错误。7> 将 Claude Code 指向您组织的 LLM 网关。检查您的管理员是否已配置它,或自行设置基础 URL 和凭证,然后验证连接并修复网关错误。

8 8 

9[LLM 网关](/zh-CN/llm-gateway)是您的组织在 Claude Code 和模型提供商之间运行的代理。当您的组织使用网关时,Claude Code 使用您的组织颁发的凭证而不是您的个人 claude.ai 登录来向网关进行身份验证。9[LLM 网关](/docs/zh-CN/llm-gateway)是您的组织在 Claude Code 和模型提供商之间运行的代理。当您的组织使用网关时,Claude Code 使用您的组织颁发的凭证而不是您的个人 claude.ai 登录来向网关进行身份验证。

10 10 

11本页面适用于通过其组织运营的网关运行 Claude Code 的开发人员。它涵盖两条路径:[检查您的管理员是否已为您配置它](#check-for-an-existing-configuration),以及[在他们没有配置时自行配置](#configure-claude-code-yourself)。11本页面适用于通过其组织运营的网关运行 Claude Code 的开发人员。它涵盖两条路径:[检查您的管理员是否已为您配置它](#check-for-an-existing-configuration),以及[在他们没有配置时自行配置](#configure-claude-code-yourself)。

12 12 

13<Note>13<Note>

14 * 要为您的组织部署网关,请参阅[推出 LLM 网关](/zh-CN/llm-gateway-rollout)14 * 要为您的组织部署网关,请参阅[推出 LLM 网关](/docs/zh-CN/llm-gateway-rollout)

15 * 有关 Claude Code 发送到网关的内容,请参阅[网关协议参考](/zh-CN/llm-gateway-protocol)15 * 有关 Claude Code 发送到网关的内容,请参阅[网关协议参考](/docs/zh-CN/llm-gateway-protocol)

16</Note>16</Note>

17 17 

18<h2 id="check-for-an-existing-configuration">18<h2 id="check-for-an-existing-configuration">

19 检查现有配置19 检查现有配置

20</h2>20</h2>

21 21 

22管理员可以通过[托管设置](/zh-CN/settings#settings-files)、设备管理或 [`apiKeyHelper`](#rotate-credentials-with-apikeyhelper) 分发网关地址和凭证,以便 Claude Code 在启动时自动获取,无需您进行任何设置。要检查您的组织是否已这样做:22管理员可以通过[托管设置](/docs/zh-CN/settings#settings-files)、设备管理或 [`apiKeyHelper`](#rotate-credentials-with-apikeyhelper) 分发网关地址和凭证,以便 Claude Code 在启动时自动获取,无需您进行任何设置。要检查您的组织是否已这样做:

23 23 

24<Steps>24<Steps>

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


107 在设置文件中设置107 在设置文件中设置

108</h4>108</h4>

109 109 

110要使配置在 Claude Code 运行的任何地方应用而不依赖于您的 shell,请在[设置文件](/zh-CN/settings)的 `env` 块中设置变量。设置文件有不同的范围:110要使配置在 Claude Code 运行的任何地方应用而不依赖于您的 shell,请在[设置文件](/docs/zh-CN/settings)的 `env` 块中设置变量。设置文件有不同的范围:

111 111 

112* `~/.claude/settings.json` 适用于您的所有项目。在 Windows 上,路径是 `%USERPROFILE%\.claude\settings.json`112* `~/.claude/settings.json` 适用于您的所有项目。在 Windows 上,路径是 `%USERPROFILE%\.claude\settings.json`

113* `.claude/settings.local.json` 适用于一个项目。Claude Code 在创建文件时将其添加到您的 gitignore;如果您自己创建它,请首先手动将其添加到您的 gitignore,以便您不会意外提交您的凭证113* `.claude/settings.local.json` 适用于一个项目。Claude Code 在创建文件时将其添加到您的 gitignore;如果您自己创建它,请首先手动将其添加到您的 gitignore,以便您不会意外提交您的凭证


194 VS Code 扩展194 VS Code 扩展

195</h3>195</h3>

196 196 

197在 VS Code 自己的用户设置中的 `claudeCode.environmentVariables` 中为 [VS Code 扩展](/zh-CN/vs-code)设置网关变量,使用**首选项:打开用户设置 (JSON)** 命令打开。扩展在启动前检查此设置中的凭证,因此这是网关凭证的可靠位置;`~/.claude/settings.json` 中的值到达生成的进程但不到达扩展自己的登录检查。197在 VS Code 自己的用户设置中的 `claudeCode.environmentVariables` 中为 [VS Code 扩展](/docs/zh-CN/vs-code)设置网关变量,使用**首选项:打开用户设置 (JSON)** 命令打开。扩展在启动前检查此设置中的凭证,因此这是网关凭证的可靠位置;`~/.claude/settings.json` 中的值到达生成的进程但不到达扩展自己的登录检查。

198 198 

199```json theme={null}199```json theme={null}

200{200{


211 211 

212桌面应用从其[第三方推理配置](https://claude.com/docs/third-party/claude-desktop/gateway)读取网关路由,而不是从 `ANTHROPIC_BASE_URL` 或 `settings.json` 读取。该配置可以来自您的组织或来自应用本身中的表单:212桌面应用从其[第三方推理配置](https://claude.com/docs/third-party/claude-desktop/gateway)读取网关路由,而不是从 `ANTHROPIC_BASE_URL` 或 `settings.json` 读取。该配置可以来自您的组织或来自应用本身中的表单:

213 213 

214* **由管理员分发**:如果您的组织已[部署配置](/zh-CN/llm-gateway-rollout#distribute-through-managed-settings),桌面应用通过网关路由,无需您进行任何设置214* **由管理员分发**:如果您的组织已[部署配置](/docs/zh-CN/llm-gateway-rollout#distribute-through-managed-settings),桌面应用通过网关路由,无需您进行任何设置

215* **本地配置**:对于没有管理员分发配置的设备,打开帮助 → 故障排除 → 启用开发者模式,这将重新启动应用并显示开发者菜单。然后打开开发者 → 配置第三方推理并输入您的网关基础 URL。管理员分发的配置优先级更高,使此表单为只读215* **本地配置**:对于没有管理员分发配置的设备,打开帮助 → 故障排除 → 启用开发者模式,这将重新启动应用并显示开发者菜单。然后打开开发者 → 配置第三方推理并输入您的网关基础 URL。管理员分发的配置优先级更高,使此表单为只读

216 216 

217启用网关配置后,桌面应用仅在您的本地机器上运行会话:环境选择器不提供 SSH 会话或 Anthropic 托管的云环境,[远程控制](/zh-CN/remote-control)不可用。要通过网关在远程主机上使用 Claude Code,请在该主机上运行 CLI,并在那里设置[`ANTHROPIC_BASE_URL` 和网关凭证](#set-the-base-url-and-credential)。217启用网关配置后,桌面应用仅在您的本地机器上运行会话:环境选择器不提供 SSH 会话或 Anthropic 托管的云环境,[远程控制](/docs/zh-CN/remote-control)不可用。要通过网关在远程主机上使用 Claude Code,请在该主机上运行 CLI,并在那里设置[`ANTHROPIC_BASE_URL` 和网关凭证](#set-the-base-url-and-credential)。

218 218 

219如果桌面应用显示 `Gateway was unreachable`,应用在启动时无法到达配置的基础 URL;使用上面的 [curl 测试](#verify-the-connection)检查 URL 和网络路径。219如果桌面应用显示 `Gateway was unreachable`,应用在启动时无法到达配置的基础 URL;使用上面的 [curl 测试](#verify-the-connection)检查 URL 和网络路径。

220 220 


222 GitHub Actions222 GitHub Actions

223</h3>223</h3>

224 224 

225[Claude Code GitHub Actions](/zh-CN/github-actions) 从工作流的 `env` 块读取 `ANTHROPIC_BASE_URL` 和 `ANTHROPIC_CUSTOM_HEADERS`。将凭证作为操作的 `anthropic_api_key` 输入传递;操作将其设置为 `ANTHROPIC_API_KEY`,因此它到达网关时处于 `x-api-key` 标头中。225[Claude Code GitHub Actions](/docs/zh-CN/github-actions) 从工作流的 `env` 块读取 `ANTHROPIC_BASE_URL` 和 `ANTHROPIC_CUSTOM_HEADERS`。将凭证作为操作的 `anthropic_api_key` 输入传递;操作将其设置为 `ANTHROPIC_API_KEY`,因此它到达网关时处于 `x-api-key` 标头中。

226 226 

227对于 `x-api-key` 网关,在 `env` 中设置基础 URL 并将网关密钥作为输入传递:227对于 `x-api-key` 网关,在 `env` 中设置基础 URL 并将网关密钥作为输入传递:

228 228 


249 anthropic_api_key: ${{ secrets.GATEWAY_API_KEY }}249 anthropic_api_key: ${{ secrets.GATEWAY_API_KEY }}

250```250```

251 251 

252对于操作的其他身份验证选项,包括 `CLAUDE_CODE_OAUTH_TOKEN` 和工作负载身份联合,请参阅 [Claude Code GitHub Actions](/zh-CN/github-actions) 和操作的 [README](https://github.com/anthropics/claude-code-action#readme)。252对于操作的其他身份验证选项,包括 `CLAUDE_CODE_OAUTH_TOKEN` 和工作负载身份联合,请参阅 [Claude Code GitHub Actions](/docs/zh-CN/github-actions) 和操作的 [README](https://github.com/anthropics/claude-code-action#readme)。

253 253 

254<h3 id="agent-sdk">254<h3 id="agent-sdk">

255 Agent SDK255 Agent SDK

256</h3>256</h3>

257 257 

258[Agent SDK](/zh-CN/agent-sdk/overview) 没有网关特定的选项;它将环境变量传递给它生成的 Claude Code 进程。每个 SDK 接受设置生成进程环境的 `env` 选项,TypeScript 和 Python SDK 以不同方式处理它:258[Agent SDK](/docs/zh-CN/agent-sdk/overview) 没有网关特定的选项;它将环境变量传递给它生成的 Claude Code 进程。每个 SDK 接受设置生成进程环境的 `env` 选项,TypeScript 和 Python SDK 以不同方式处理它:

259 259 

260* TypeScript:生成的进程默认继承父环境,但设置 `options.env` 完全替换环境。将 `process.env` 扩展到其中以保留您的网关变量。260* TypeScript:生成的进程默认继承父环境,但设置 `options.env` 完全替换环境。将 `process.env` 扩展到其中以保留您的网关变量。

261* Python:`ClaudeAgentOptions(env=...)` 合并到继承的环境之上,因此在父进程中设置的网关变量无需扩展即可通过。261* Python:`ClaudeAgentOptions(env=...)` 合并到继承的环境之上,因此在父进程中设置的网关变量无需扩展即可通过。


288 Slack、网络和远程控制288 Slack、网络和远程控制

289</h3>289</h3>

290 290 

291[Slack 中的 Claude Code](/zh-CN/slack) 和[网络上的 Claude Code](/zh-CN/claude-code-on-the-web) 是 Anthropic 托管的产品,始终使用 Anthropic 的 API;它们不是网关部署的一部分。在云会话的环境配置中设置的网关变量不适用。如果您的流量必须保持在网关上,请不要为这些用户启用这些界面。291[Slack 中的 Claude Code](/docs/zh-CN/slack) 和[网络上的 Claude Code](/docs/zh-CN/claude-code-on-the-web) 是 Anthropic 托管的产品,始终使用 Anthropic 的 API;它们不是网关部署的一部分。在云会话的环境配置中设置的网关变量不适用。如果您的流量必须保持在网关上,请不要为这些用户启用这些界面。

292 292 

293[远程控制](/zh-CN/remote-control)和[语音听写](/zh-CN/voice-dictation)都依赖于 claude.ai 身份:远程控制将实时会话与您的账户配对,语音听写到达 claude.ai 转录端点。当 `ANTHROPIC_API_KEY`、`ANTHROPIC_AUTH_TOKEN` 或 `apiKeyHelper` 处于活动状态时,它们不可用。{/* min-version: 2.1.196 */}从 v2.1.196 开始,当 `ANTHROPIC_BASE_URL` 指向非 Anthropic 主机时,远程控制也被禁用,因此仅使用 claude.ai 登录是不够的。293[远程控制](/docs/zh-CN/remote-control)和[语音听写](/docs/zh-CN/voice-dictation)都依赖于 claude.ai 身份:远程控制将实时会话与您的账户配对,语音听写到达 claude.ai 转录端点。当 `ANTHROPIC_API_KEY`、`ANTHROPIC_AUTH_TOKEN` 或 `apiKeyHelper` 处于活动状态时,它们不可用。从 v2.1.196 开始,当 `ANTHROPIC_BASE_URL` 指向非 Anthropic 主机时,远程控制也被禁用,因此仅使用 claude.ai 登录是不够的。

294 294 

295要恢复任一功能,请使用 claude.ai 登录并取消设置它检查的网关变量。`claude doctor` 的远程控制部分命名要取消设置的凭证变量。295要恢复任一功能,请使用 claude.ai 登录并取消设置它检查的网关变量。`claude doctor` 的远程控制部分命名要取消设置的凭证变量。

296 296 


307 发送其他标头307 发送其他标头

308</h3>308</h3>

309 309 

310某些网关使用除凭证外的自定义标头来路由或标记请求,例如租户标识符或路由密钥。要发送一个,请设置 [`ANTHROPIC_CUSTOM_HEADERS`](/zh-CN/env-vars),每行一个 `Name: Value` 对。下面的示例添加了一个名为 `X-Org-Route` 的路由标头:310某些网关使用除凭证外的自定义标头来路由或标记请求,例如租户标识符或路由密钥。要发送一个,请设置 [`ANTHROPIC_CUSTOM_HEADERS`](/docs/zh-CN/env-vars),每行一个 `Name: Value` 对。下面的示例添加了一个名为 `X-Org-Route` 的路由标头:

311 311 

312<Tabs>312<Tabs>

313 <Tab title="Bash or Zsh">313 <Tab title="Bash or Zsh">


341 341 

342如果您的网关提供不在 Claude Code 内置列表中的模型名称,并且您想从选择器中选择它们,请启用它。如果内置模型是您使用的,您不需要发现;您的管理员也可能已通过托管设置启用它。342如果您的网关提供不在 Claude Code 内置列表中的模型名称,并且您想从选择器中选择它们,请启用它。如果内置模型是您使用的,您不需要发现;您的管理员也可能已通过托管设置启用它。

343 343 

344要启用它,请在您的 shell 或 `~/.claude/settings.json` 的 `env` 块中设置 `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1`。发现需要 Claude Code v2.1.129 或更高版本。{/* min-version: 2.1.129 */}344要启用它,请在您的 shell 或 `~/.claude/settings.json` 的 `env` 块中设置 `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1`。发现需要 Claude Code v2.1.129 或更高版本。

345 345 

346发现的模型显示为标记为 `From gateway` 的其他 `/model` 条目。要确认发现运行,启动 `claude --debug` 并查找 `[gatewayDiscovery]` 行:成功记录缓存了多少模型,`404`、超时或重定向也记录在那里。有关发现何时运行、它过滤什么以及网关提供的响应格式,请参阅[模型发现参考](/zh-CN/llm-gateway-protocol#model-discovery)。346发现的模型显示为标记为 `From gateway` 的其他 `/model` 条目。要确认发现运行,启动 `claude --debug` 并查找 `[gatewayDiscovery]` 行:成功记录缓存了多少模型,`404`、超时或重定向也记录在那里。有关发现何时运行、它过滤什么以及网关提供的响应格式,请参阅[模型发现参考](/docs/zh-CN/llm-gateway-protocol#model-discovery)。

347 347 

348<h3 id="rotate-credentials-with-apikeyhelper">348<h3 id="rotate-credentials-with-apikeyhelper">

349 使用 apiKeyHelper 轮换凭证349 使用 apiKeyHelper 轮换凭证


353 353 

354当凭证按计划过期、来自保管库或 SSO 命令,或您的管理员告诉您配置一个时,使用助手。如果您的凭证是您设置一次的固定字符串,[凭证变量](#set-the-credential-variable)是您需要的全部,您可以跳过本部分。354当凭证按计划过期、来自保管库或 SSO 命令,或您的管理员告诉您配置一个时,使用助手。如果您的凭证是您设置一次的固定字符串,[凭证变量](#set-the-credential-variable)是您需要的全部,您可以跳过本部分。

355 355 

356助手是任何将当前凭证打印到 stdout 的 shell 命令。Claude Code 通过您的系统 shell 运行它,因此在 Windows 上它可以是可执行文件或 PowerShell 调用。编写脚本,使其可执行,并从您的[设置文件](/zh-CN/settings)中的 `apiKeyHelper` 引用它:356助手是任何将当前凭证打印到 stdout 的 shell 命令。Claude Code 通过您的系统 shell 运行它,因此在 Windows 上它可以是可执行文件或 PowerShell 调用。编写脚本,使其可执行,并从您的[设置文件](/docs/zh-CN/settings)中的 `apiKeyHelper` 引用它:

357 357 

358<Tabs>358<Tabs>

359 <Tab title="Bash or Zsh">359 <Tab title="Bash or Zsh">


419设置该变量具有以下效果和限制:419设置该变量具有以下效果和限制:

420 420 

421* 它禁用自动更新,因此请为另一个更新路径做计划,例如您的包管理器或托管分发。421* 它禁用自动更新,因此请为另一个更新路径做计划,例如您的包管理器或托管分发。

422* 它抑制 [fast mode](/zh-CN/fast-mode) 可用性检查。除非之前的检查已在机器上启用了 fast mode,否则 `/fast` 报告 fast mode 不可用。422* 它抑制 [fast mode](/docs/zh-CN/fast-mode) 可用性检查。除非之前的检查已在机器上启用了 fast mode,否则 `/fast` 报告 fast mode 不可用。

423* 它关闭[网关模型发现](#add-gateway-models-to-the-model-picker),尽管发现查询网关本身。之前发现的模型从本地缓存保持可用,但列表不会刷新。423* 它关闭[网关模型发现](#add-gateway-models-to-the-model-picker),尽管发现查询网关本身。之前发现的模型从本地缓存保持可用,但列表不会刷新。

424* WebFetch 工具的[域安全检查](/zh-CN/data-usage#webfetch-domain-safety-check)不受影响,仍然调用 `api.anthropic.com`。如果您的网络阻止该主机,请在[设置](/zh-CN/settings)中使用 `skipWebFetchPreflight: true` 单独关闭它。424* WebFetch 工具的[域安全检查](/docs/zh-CN/data-usage#webfetch-domain-safety-check)不受影响,仍然调用 `api.anthropic.com`。如果您的网络阻止该主机,请在[设置](/docs/zh-CN/settings)中使用 `skipWebFetchPreflight: true` 单独关闭它。

425* 对于每个遥测流及控制它的变量,请参阅[遥测服务](/zh-CN/data-usage#telemetry-services)。425* 对于每个遥测流及控制它的变量,请参阅[遥测服务](/docs/zh-CN/data-usage#telemetry-services)。

426 426 

427<h3 id="route-to-a-cloud-provider-through-a-gateway">427<h3 id="route-to-a-cloud-provider-through-a-gateway">

428 通过网关路由到云提供商428 通过网关路由到云提供商


432 432 

433仅在您的网关团队特别命名 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 或 AWS 上的 Claude Platform 时使用一个。如果上面的[验证请求](#verify-the-connection)返回 JSON,您可以跳过本部分。433仅在您的网关团队特别命名 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 或 AWS 上的 Claude Platform 时使用一个。如果上面的[验证请求](#verify-the-connection)返回 JSON,您可以跳过本部分。

434 434 

435为您的网关团队命名的提供商设置块。跳过身份验证变量告诉 Claude Code 不要使用提供商凭证签署请求,因为网关持有这些。如果网关需要自己的令牌,请在块后添加 `ANTHROPIC_AUTH_TOKEN`,除了 Microsoft Foundry,它使用 `ANTHROPIC_FOUNDRY_API_KEY`,如所示。{/* min-version: 2.1.203 */}期望持有者令牌的 Microsoft Foundry 网关可以改用 [`ANTHROPIC_FOUNDRY_AUTH_TOKEN`](/zh-CN/env-vars);当两者都设置时,它优先于 `ANTHROPIC_FOUNDRY_API_KEY`。`ANTHROPIC_FOUNDRY_AUTH_TOKEN` 需要 Claude Code v2.1.203 或更高版本。435为您的网关团队命名的提供商设置块。跳过身份验证变量告诉 Claude Code 不要使用提供商凭证签署请求,因为网关持有这些。如果网关需要自己的令牌,请在块后添加 `ANTHROPIC_AUTH_TOKEN`,除了 Microsoft Foundry,它使用 `ANTHROPIC_FOUNDRY_API_KEY`,如所示。期望持有者令牌的 Microsoft Foundry 网关可以改用 [`ANTHROPIC_FOUNDRY_AUTH_TOKEN`](/docs/zh-CN/env-vars);当两者都设置时,它优先于 `ANTHROPIC_FOUNDRY_API_KEY`。`ANTHROPIC_FOUNDRY_AUTH_TOKEN` 需要 Claude Code v2.1.203 或更高版本。

436 436 

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

438 Amazon Bedrock438 Amazon Bedrock


486 Microsoft Foundry486 Microsoft Foundry

487</h4>487</h4>

488 488 

489将网关的凭证放在 `ANTHROPIC_FOUNDRY_API_KEY` 中;它作为 `x-api-key` 标头发送到网关。{/* min-version: 2.1.203 */}期望持有者令牌的网关可以改用 [`ANTHROPIC_FOUNDRY_AUTH_TOKEN`](/zh-CN/env-vars)。Claude Code 将该值作为 `Authorization: Bearer` 标头发送,当两者都设置时,它优先于 `ANTHROPIC_FOUNDRY_API_KEY`。需要 Claude Code v2.1.203 或更高版本。489将网关的凭证放在 `ANTHROPIC_FOUNDRY_API_KEY` 中;它作为 `x-api-key` 标头发送到网关。期望持有者令牌的网关可以改用 [`ANTHROPIC_FOUNDRY_AUTH_TOKEN`](/docs/zh-CN/env-vars)。Claude Code 将该值作为 `Authorization: Bearer` 标头发送,当两者都设置时,它优先于 `ANTHROPIC_FOUNDRY_API_KEY`。需要 Claude Code v2.1.203 或更高版本。

490 490 

491对于注入自己的 `Authorization` 标头的网关,设置 `CLAUDE_CODE_SKIP_FOUNDRY_AUTH=1` 并将两个凭证变量都保留为未设置。Claude Code 然后发送没有 Azure 凭证的请求,并保留您提供的 `Authorization` 标头,例如通过 `ANTHROPIC_CUSTOM_HEADERS`。{/* min-version: 2.1.203 */}在 v2.1.203 之前,`CLAUDE_CODE_SKIP_FOUNDRY_AUTH` 没有 API 密钥会使 Microsoft Foundry 客户端无法发送请求。491对于注入自己的 `Authorization` 标头的网关,设置 `CLAUDE_CODE_SKIP_FOUNDRY_AUTH=1` 并将两个凭证变量都保留为未设置。Claude Code 然后发送没有 Azure 凭证的请求,并保留您提供的 `Authorization` 标头,例如通过 `ANTHROPIC_CUSTOM_HEADERS`。在 v2.1.203 之前,`CLAUDE_CODE_SKIP_FOUNDRY_AUTH` 没有 API 密钥会使 Microsoft Foundry 客户端无法发送请求。

492 492 

493<Tabs>493<Tabs>

494 <Tab title="Bash or Zsh">494 <Tab title="Bash or Zsh">


512 AWS 上的 Claude Platform512 AWS 上的 Claude Platform

513</h4>513</h4>

514 514 

515有关工作区 ID,请参阅 [AWS 上的 Claude Platform](/zh-CN/claude-platform-on-aws)。515有关工作区 ID,请参阅 [AWS 上的 Claude Platform](/docs/zh-CN/claude-platform-on-aws)。

516 516 

517<Tabs>517<Tabs>

518 <Tab title="Bash or Zsh">518 <Tab title="Bash or Zsh">


544| :-------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |544| :-------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

545| 启动警告命名两个凭证源并以 `auth may not work as expected` 结尾。较旧的版本显示 `Auth conflict: Both a token (SOURCE) and an API key (SOURCE) are set` 代替。 | 网关凭证和保存的登录都处于活动状态;变量用于请求,但过时的登录可能导致意外的身份验证行为 | 取消设置变量以使用保存的登录,或运行 `/logout` 以使用网关凭证 |545| 启动警告命名两个凭证源并以 `auth may not work as expected` 结尾。较旧的版本显示 `Auth conflict: Both a token (SOURCE) and an API key (SOURCE) are set` 代替。 | 网关凭证和保存的登录都处于活动状态;变量用于请求,但过时的登录可能导致意外的身份验证行为 | 取消设置变量以使用保存的登录,或运行 `/logout` 以使用网关凭证 |

546| `401` 错误命名无效或无法识别的令牌 | 凭证不是网关颁发的,或它处于网关不读取的标头中 | 确认变量与[凭证表](#set-the-credential-variable)中的凭证类型匹配,如果凭证被撤销,请在网关处重新生成密钥 |546| `401` 错误命名无效或无法识别的令牌 | 凭证不是网关颁发的,或它处于网关不读取的标头中 | 确认变量与[凭证表](#set-the-credential-variable)中的凭证类型匹配,如果凭证被撤销,请在网关处重新生成密钥 |

547| `Your apiKeyHelper script is failing` | [`apiKeyHelper`](/zh-CN/settings#available-settings) 设置中的命令以错误退出、超时或未打印任何内容,因此请求携带占位符密钥 | 直接运行该命令以查看失败原因,如果报告会话过期,请使用您的凭证提供商重新身份验证;请参阅[错误参考](/zh-CN/errors#your-apikeyhelper-script-is-failing) |547| `Your apiKeyHelper script is failing` | [`apiKeyHelper`](/docs/zh-CN/settings#available-settings) 设置中的命令以错误退出、超时或未打印任何内容,因此请求携带占位符密钥 | 直接运行该命令以查看失败原因,如果报告会话过期,请使用您的凭证提供商重新身份验证;请参阅[错误参考](/docs/zh-CN/errors#your-apikeyhelper-script-is-failing) |

548| `Unable to connect to API (ConnectionRefused)`,或来自 npm 安装的 `(ECONNREFUSED)`,通常在 Claude Code [使用退避重试](/zh-CN/errors#automatic-retries)时的静默暂停之后 | 没有任何东西在基础 URL 处应答:地址错误,或 VPN 或防火墙阻止了网关的路径 | 运行上面的 [curl 测试](#verify-the-connection),它会立即因相同原因失败,并与您的网关团队确认 URL 和网络路径 |548| `Unable to connect to API (ConnectionRefused)`,或来自 npm 安装的 `(ECONNREFUSED)`,通常在 Claude Code [使用退避重试](/docs/zh-CN/errors#automatic-retries)时的静默暂停之后 | 没有任何东西在基础 URL 处应答:地址错误,或 VPN 或防火墙阻止了网关的路径 | 运行上面的 [curl 测试](#verify-the-connection),它会立即因相同原因失败,并与您的网关团队确认 URL 和网络路径 |

549| `API returned an empty or malformed response (HTTP 200)` | 网关或中间代理返回了非 API 响应,通常是 HTML 错误或登录页面 | 使用上面的 [curl 请求](#verify-the-connection)测试;修复返回非 JSON 的网关路由 |549| `API returned an empty or malformed response (HTTP 200)` | 网关或中间代理返回了非 API 响应,通常是 HTML 错误或登录页面 | 使用上面的 [curl 请求](#verify-the-connection)测试;修复返回非 JSON 的网关路由 |

550| `400` 错误命名 `context_management`、`Extra inputs are not permitted` 或其他无法识别的字段 | 网关将请求转发到上游,该上游拒绝 Claude Code 发送到 Anthropic 格式端点的字段 | 设置 `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`,它抑制大多数预发布字段;请参阅[功能传递](/zh-CN/llm-gateway-protocol#feature-pass-through)。某些 beta 不受此标志限制;对于那些,设置匹配的 `CLAUDE_CODE_USE_*` 提供商变量,以便 Claude Code 仅发送该提供商接受的内容 |550| `400` 错误命名 `context_management`、`Extra inputs are not permitted` 或其他无法识别的字段 | 网关将请求转发到上游,该上游拒绝 Claude Code 发送到 Anthropic 格式端点的字段 | 设置 `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`,它抑制大多数预发布字段;请参阅[功能传递](/docs/zh-CN/llm-gateway-protocol#feature-pass-through)。某些 beta 不受此标志限制;对于那些,设置匹配的 `CLAUDE_CODE_USE_*` 提供商变量,以便 Claude Code 仅发送该提供商接受的内容 |

551| `400` 错误命名 `thinking` 或 `adaptive`,例如 `Input tag 'adaptive' found` | 上游模型构建不接受自适应推理,Claude Code 为 Claude 4.6 及更高版本的模型请求 | 升级网关的上游。在 Opus 4.6 和 Sonnet 4.6 上,`CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1` 代替有效。[模型配置](/zh-CN/model-config)能力变量仅适用于提供商配置,例如 `CLAUDE_CODE_USE_BEDROCK` 和 `CLAUDE_CODE_USE_VERTEX`,不在 `ANTHROPIC_BASE_URL` 网关后面 |551| `400` 错误命名 `thinking` 或 `adaptive`,例如 `Input tag 'adaptive' found` | 上游模型构建不接受自适应推理,Claude Code 为 Claude 4.6 及更高版本的模型请求 | 升级网关的上游。在 Opus 4.6 和 Sonnet 4.6 上,`CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1` 代替有效。[模型配置](/docs/zh-CN/model-config)能力变量仅适用于提供商配置,例如 `CLAUDE_CODE_USE_BEDROCK` 和 `CLAUDE_CODE_USE_VERTEX`,不在 `ANTHROPIC_BASE_URL` 网关后面 |

552| `400` 错误声明网关自己的措辞中的上下文或令牌限制,例如 `ContextWindowExceededError` 或 `prompt token count of N exceeds the limit of M` | 网关强制执行比模型的本机窗口更小的上下文,并重写上游错误,因此自动紧凑和重试(与 Anthropic 的 `prompt is too long` 措辞匹配)不会触发 | 运行 `/compact` 以恢复会话。要防止它,请将 `CLAUDE_CODE_AUTO_COMPACT_WINDOW` 设置为网关的限制;该值被限制在至少 100,000 令牌和最多模型的上下文窗口,因此低于 100,000 的网关限制无法匹配,`/compact` 仍然是那里的恢复。还要将 `CLAUDE_CODE_MAX_OUTPUT_TOKENS` 设置为低于网关模型的输出限制 |552| `400` 错误声明网关自己的措辞中的上下文或令牌限制,例如 `ContextWindowExceededError` 或 `prompt token count of N exceeds the limit of M` | 网关强制执行比模型的本机窗口更小的上下文,并重写上游错误,因此自动紧凑和重试(与 Anthropic 的 `prompt is too long` 措辞匹配)不会触发 | 运行 `/compact` 以恢复会话。要防止它,请将 `CLAUDE_CODE_AUTO_COMPACT_WINDOW` 设置为网关的限制;该值被限制在至少 100,000 令牌和最多模型的上下文窗口,因此低于 100,000 的网关限制无法匹配,`/compact` 仍然是那里的恢复。还要将 `CLAUDE_CODE_MAX_OUTPUT_TOKENS` 设置为低于网关模型的输出限制 |

553| 模型从 `/model` 选择器中缺失 | 网关模型名称不在 Claude Code 的内置列表中 | 启用[网关模型发现](#add-gateway-models-to-the-model-picker)或使用[模型配置](/zh-CN/model-config)变量添加名称 |553| 模型从 `/model` 选择器中缺失 | 网关模型名称不在 Claude Code 的内置列表中 | 启用[网关模型发现](#add-gateway-models-to-the-model-picker)或使用[模型配置](/docs/zh-CN/model-config)变量添加名称 |

554| Claude Code 要求您登录,即使 [curl 测试](#verify-the-connection)成功 | CLI 没有自己的凭证:可达的基础 URL 不是一个,项目的 `.claude/settings.json` 或 `.claude/settings.local.json` 中的 `env` 块仅在第一次运行向导和信任提示之后应用 | 在 Claude Code 在首次运行设置之前读取的某处设置 `ANTHROPIC_AUTH_TOKEN`:shell 导出、`~/.claude/settings.json` 中的 `env` 块或托管设置 |554| Claude Code 要求您登录,即使 [curl 测试](#verify-the-connection)成功 | CLI 没有自己的凭证:可达的基础 URL 不是一个,项目的 `.claude/settings.json` 或 `.claude/settings.local.json` 中的 `env` 块仅在第一次运行向导和信任提示之后应用 | 在 Claude Code 在首次运行设置之前读取的某处设置 `ANTHROPIC_AUTH_TOKEN`:shell 导出、`~/.claude/settings.json` 中的 `env` 块或托管设置 |

555| `ANTHROPIC_API_KEY` 已设置但被忽略,没有提示 | 密钥需要在交互会话中进行一次性批准,之前拒绝的密钥被忽略而不再询问 | 在 `/config` 下使用 `Use custom API key` 选项启用它 |555| `ANTHROPIC_API_KEY` 已设置但被忽略,没有提示 | 密钥需要在交互会话中进行一次性批准,之前拒绝的密钥被忽略而不再询问 | 在 `/config` 下使用 `Use custom API key` 选项启用它 |

556| `This machine's managed settings require a first-party login` | 托管设置包括 `forceLoginMethod` 或 `forceLoginOrgUUID`,在 Claude Code v2.1.146 及更高版本上不能与 `ANTHROPIC_API_KEY`、`ANTHROPIC_AUTH_TOKEN` 或 `apiKeyHelper` 共存 | 您的管理员必须从托管设置中删除 `forceLoginMethod` 和 `forceLoginOrgUUID` 以使用网关凭证,或删除网关凭证以使用第一方登录。两者不能组合 |556| `This machine's managed settings require a first-party login` | 托管设置包括 `forceLoginMethod` 或 `forceLoginOrgUUID`,在 Claude Code v2.1.146 及更高版本上不能与 `ANTHROPIC_API_KEY`、`ANTHROPIC_AUTH_TOKEN` 或 `apiKeyHelper` 共存 | 您的管理员必须从托管设置中删除 `forceLoginMethod` 和 `forceLoginOrgUUID` 以使用网关凭证,或删除网关凭证以使用第一方登录。两者不能组合 |

557| `403` 带有 HTML 正文,例如 `403 Forbidden`,当网关自己的日志显示没有收到请求时 | 网关前面的 Web 应用防火墙或反向代理在请求到达网关之前阻止了请求正文。Claude Code 提示包括 XML 样式标签和与跨站脚本正文规则匹配的源代码,因此短 curl 测试通过而实际会话不通过 | 从请求正文检查中豁免网关的 `/v1/messages` 路径。在 AWS WAF 上这是 `CrossSiteScripting_Body` 托管规则;在带有 ModSecurity 的 nginx 上它是等效的 OWASP CRS 正文规则 |557| `403` 带有 HTML 正文,例如 `403 Forbidden`,当网关自己的日志显示没有收到请求时 | 网关前面的 Web 应用防火墙或反向代理在请求到达网关之前阻止了请求正文。Claude Code 提示包括 XML 样式标签和与跨站脚本正文规则匹配的源代码,因此短 curl 测试通过而实际会话不通过 | 从请求正文检查中豁免网关的 `/v1/messages` 路径。在 AWS WAF 上这是 `CrossSiteScripting_Body` 托管规则;在带有 ModSecurity 的 nginx 上它是等效的 OWASP CRS 正文规则 |

558| 证书或 TLS 错误,例如 `SSL certificate verification failed` 或 `Self-signed certificate detected`,当 [curl 测试](#verify-the-connection)成功时 | Claude Code 的运行时不信任 `curl` 使用的相同证书颁发机构。常见于企业 TLS 检查代理后面 | 将 `NODE_EXTRA_CA_CERTS` 设置为 CA 包路径;请参阅 [CA 证书存储](/zh-CN/network-config#ca-certificate-store) |558| 证书或 TLS 错误,例如 `SSL certificate verification failed` 或 `Self-signed certificate detected`,当 [curl 测试](#verify-the-connection)成功时 | Claude Code 的运行时不信任 `curl` 使用的相同证书颁发机构。常见于企业 TLS 检查代理后面 | 将 `NODE_EXTRA_CA_CERTS` 设置为 CA 包路径;请参阅 [CA 证书存储](/docs/zh-CN/network-config#ca-certificate-store) |

559 559 

560如果 Claude Code 在删除网关配置后重复提示您登录,原因通常是凭证存储而不是网关;请参阅[身份验证错误](/zh-CN/errors#authentication-errors)。560如果 Claude Code 在删除网关配置后重复提示您登录,原因通常是凭证存储而不是网关;请参阅[身份验证错误](/docs/zh-CN/errors#authentication-errors)。

561 561 

562<h2 id="related-resources">562<h2 id="related-resources">

563 相关资源563 相关资源

564</h2>564</h2>

565 565 

566* [LLM 网关概述](/zh-CN/llm-gateway):什么是网关以及它如何与 claude.ai 订阅交互566* [LLM 网关概述](/docs/zh-CN/llm-gateway):什么是网关以及它如何与 claude.ai 订阅交互

567* [为您的组织推出 LLM 网关](/zh-CN/llm-gateway-rollout):部署和分发网关配置的面向管理员的检查清单567* [为您的组织推出 LLM 网关](/docs/zh-CN/llm-gateway-rollout):部署和分发网关配置的面向管理员的检查清单

568* [网关协议参考](/zh-CN/llm-gateway-protocol):Claude Code 发送到网关的内容,包括网关必须转发的标头和字段568* [网关协议参考](/docs/zh-CN/llm-gateway-protocol):Claude Code 发送到网关的内容,包括网关必须转发的标头和字段

569* [设置](/zh-CN/settings):设置文件的位置以及如何读取 `env` 块569* [设置](/docs/zh-CN/settings):设置文件的位置以及如何读取 `env` 块

570* [身份验证](/zh-CN/authentication):凭证变量、`apiKeyHelper` 和 OAuth 登录如何交互570* [身份验证](/docs/zh-CN/authentication):凭证变量、`apiKeyHelper` 和 OAuth 登录如何交互

Details

8 8 

9本页面记录了 Claude Code 发送到 gateway 的请求,包括它调用的端点、gateway 必须转发的请求头和请求体字段,以及当 gateway 不转发这些内容时哪些功能会停止工作。本页面是为配置 gateway 产品以与 Claude Code 配合工作的运营人员编写的。9本页面记录了 Claude Code 发送到 gateway 的请求,包括它调用的端点、gateway 必须转发的请求头和请求体字段,以及当 gateway 不转发这些内容时哪些功能会停止工作。本页面是为配置 gateway 产品以与 Claude Code 配合工作的运营人员编写的。

10 10 

11一个运行中的 [Claude apps gateway](/zh-CN/claude-apps-gateway) 在 `GET /protocol` 处提供此契约的机器可读版本,涵盖相同的转发要求以及 Claude apps gateway 特定的 SSO 登录、托管设置交付和遥测端点。Claude apps gateway 从与 CLI 相同的 `claude` 二进制文件运行,因此 [Claude apps gateway 快速入门](/zh-CN/claude-apps-gateway#quickstart) 是获取可以从中获取规范的运行实例的最短路径。11一个运行中的 [Claude apps gateway](/docs/zh-CN/claude-apps-gateway) 在 `GET /protocol` 处提供此契约的机器可读版本,涵盖相同的转发要求以及 Claude apps gateway 特定的 SSO 登录、托管设置交付和遥测端点。Claude apps gateway 从与 CLI 相同的 `claude` 二进制文件运行,因此 [Claude apps gateway 快速入门](/docs/zh-CN/claude-apps-gateway#quickstart) 是获取可以从中获取规范的运行实例的最短路径。

12 12 

13<Note>13<Note>

14 * 要为您的组织推出现有或第三方 gateway,请参阅[推出 LLM gateway](/zh-CN/llm-gateway-rollout)14 * 要为您的组织推出现有或第三方 gateway,请参阅[推出 LLM gateway](/docs/zh-CN/llm-gateway-rollout)

15 * 如果您是使用给定凭证向 gateway 验证 Claude Code 的个人开发者,请参阅[将 Claude Code 连接到 LLM gateway](/zh-CN/llm-gateway-connect)15 * 如果您是使用给定凭证向 gateway 验证 Claude Code 的个人开发者,请参阅[将 Claude Code 连接到 LLM gateway](/docs/zh-CN/llm-gateway-connect)

16</Note>16</Note>

17 17 

18本页面涵盖:18本页面涵盖:


46 Foundry 和 AWS 上的 Claude Platform46 Foundry 和 AWS 上的 Claude Platform

47</h3>47</h3>

48 48 

49Microsoft Foundry 和 [AWS 上的 Claude Platform](/zh-CN/claude-platform-on-aws) 实现了 Anthropic Messages 格式。Claude Code 通过它们自己的变量 `ANTHROPIC_FOUNDRY_BASE_URL` 和 `ANTHROPIC_AWS_BASE_URL` 路由到它们,但 fronting 任一方的 gateway 实现上面的 Anthropic Messages 行。fronting AWS 上的 Claude Platform 的 gateway 还必须转发 `anthropic-workspace-id` 请求头,[该平台在每个请求上都需要](/zh-CN/claude-platform-on-aws)。49Microsoft Foundry 和 [AWS 上的 Claude Platform](/docs/zh-CN/claude-platform-on-aws) 实现了 Anthropic Messages 格式。Claude Code 通过它们自己的变量 `ANTHROPIC_FOUNDRY_BASE_URL` 和 `ANTHROPIC_AWS_BASE_URL` 路由到它们,但 fronting 任一方的 gateway 实现上面的 Anthropic Messages 行。fronting AWS 上的 Claude Platform 的 gateway 还必须转发 `anthropic-workspace-id` 请求头,[该平台在每个请求上都需要](/docs/zh-CN/claude-platform-on-aws)。

50 50 

51<h3 id="optional-endpoints-and-startup-traffic">51<h3 id="optional-endpoints-and-startup-traffic">

52 可选端点和启动流量52 可选端点和启动流量


77 请求头77 请求头

78</h2>78</h2>

79 79 

80Claude Code 在 API 请求上包含这些请求头。请求头名称在网络上不区分大小写。转发 `anthropic-version` 和 `anthropic-beta` 不变,加上当上游是 [AWS 上的 Claude Platform](/zh-CN/claude-platform-on-aws) 时的 `anthropic-workspace-id`;其余的 gateway 可能会使用它们进行路由、归属和跟踪,不需要转发。80Claude Code 在 API 请求上包含这些请求头。请求头名称在网络上不区分大小写。转发 `anthropic-version` 和 `anthropic-beta` 不变,加上当上游是 [AWS 上的 Claude Platform](/docs/zh-CN/claude-platform-on-aws) 时的 `anthropic-workspace-id`;其余的 gateway 可能会使用它们进行路由、归属和跟踪,不需要转发。

81 81 

82| 请求头 | 描述 |82| 请求头 | 描述 |

83| :------------------------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |83| :------------------------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

84| `Authorization`、`x-api-key` | 开发者的 gateway 凭证,根据他们设置的[凭证变量](/zh-CN/llm-gateway-connect#set-the-credential-variable)在一个或两个请求头中 |84| `Authorization`、`x-api-key` | 开发者的 gateway 凭证,根据他们设置的[凭证变量](/docs/zh-CN/llm-gateway-connect#set-the-credential-variable)在一个或两个请求头中 |

85| `anthropic-version` | API 版本,目前为 `2023-06-01`。Amazon Bedrock 和 Google Cloud 的 Agent Platform 格式请求也携带 `anthropic_version` 请求体字段,其值是提供商方言字符串,而不是此请求头的值 |85| `anthropic-version` | API 版本,目前为 `2023-06-01`。Amazon Bedrock 和 Google Cloud 的 Agent Platform 格式请求也携带 `anthropic_version` 请求体字段,其值是提供商方言字符串,而不是此请求头的值 |

86| `anthropic-beta` | 请求的逗号分隔功能值。逐字转发请求头;不要将单个值列入白名单,因为该集合随 Claude Code 版本而变化。当开发者使用 claude.ai 登录进行身份验证时(当设置 `ANTHROPIC_BASE_URL` 而不设置 gateway 凭证变量时可能),此请求头还携带上游需要的 OAuth 功能,删除它会导致这些请求失败,返回 `401` |86| `anthropic-beta` | 请求的逗号分隔功能值。逐字转发请求头;不要将单个值列入白名单,因为该集合随 Claude Code 版本而变化。当开发者使用 claude.ai 登录进行身份验证时(当设置 `ANTHROPIC_BASE_URL` 而不设置 gateway 凭证变量时可能),此请求头还携带上游需要的 OAuth 功能,删除它会导致这些请求失败,返回 `401` |

87| `x-claude-code-session-id` | 当前 Claude Code 会话的唯一标识符。使用它来聚合来自一个会话的所有请求,而无需解析请求体 |87| `x-claude-code-session-id` | 当前 Claude Code 会话的唯一标识符。使用它来聚合来自一个会话的所有请求,而无需解析请求体 |

88| `x-claude-code-agent-id` | 发出请求的[子代理](/zh-CN/sub-agents)的标识符,仅在来自 Claude Code 在会话内生成的代理的请求上存在。将其与会话 ID 一起使用以将成本归属于并行代理 |88| `x-claude-code-agent-id` | 发出请求的[子代理](/docs/zh-CN/sub-agents)的标识符,仅在来自 Claude Code 在会话内生成的代理的请求上存在。将其与会话 ID 一起使用以将成本归属于并行代理 |

89| `x-claude-code-parent-agent-id` | 生成请求代理的代理的标识符,仅对嵌套代理存在 |89| `x-claude-code-parent-agent-id` | 生成请求代理的代理的标识符,仅对嵌套代理存在 |

90 90 

91子代理 ID 在每次生成时都会生成新的。队友代理,[代理团队](/zh-CN/agent-teams)的命名成员,在重新连接时重用基于名称的稳定 ID。在两种情况下,ID 都标识一个代理,而不是一个人或设备,因此不要将代理 ID 请求头视为用户标识符。91子代理 ID 在每次生成时都会生成新的。队友代理,[代理团队](/docs/zh-CN/agent-teams)的命名成员,在重新连接时重用基于名称的稳定 ID。在两种情况下,ID 都标识一个代理,而不是一个人或设备,因此不要将代理 ID 请求头视为用户标识符。

92 92 

93如果您的开发者设置了 `ANTHROPIC_CUSTOM_HEADERS`,这些请求头也会出现在请求上。93如果您的开发者设置了 `ANTHROPIC_CUSTOM_HEADERS`,这些请求头也会出现在请求上。

94 94 


112 112 

113* 完全按照接收的方式转发 `system` 数组,保持该块在最前面:在前面加上另一个系统块、重新排序数组或将其转换为单个字符串会破坏删除,该块随后会到达模型和提示缓存键。113* 完全按照接收的方式转发 `system` 数组,保持该块在最前面:在前面加上另一个系统块、重新排序数组或将其转换为单个字符串会破坏删除,该块随后会到达模型和提示缓存键。

114* 将该块保留在其自己的数组条目中:端点将以归属标头开头的合并块视为完整的归属,并删除合并到其中的所有内容,包括系统提示的其余部分。114* 将该块保留在其自己的数组条目中:端点将以归属标头开头的合并块视为完整的归属,并删除合并到其中的所有内容,包括系统提示的其余部分。

115* 如果您的网关必须重新整形系统内容,请设置 [`CLAUDE_CODE_ATTRIBUTION_HEADER=0`](/zh-CN/env-vars) 以便 Claude Code 省略该块。Anthropic 和云提供商的 Claude 端点读取该块以进行归属,因此要在客户端省略它,而不是在网关中删除或移动它。115* 如果您的网关必须重新整形系统内容,请设置 [`CLAUDE_CODE_ATTRIBUTION_HEADER=0`](/docs/zh-CN/env-vars) 以便 Claude Code 省略该块。Anthropic 和云提供商的 Claude 端点读取该块以进行归属,因此要在客户端省略它,而不是在网关中删除或移动它。

116 116 

117未修改到达端点的请求不受影响。117未修改到达端点的请求不受影响。

118 118 

119{/* min-version: 2.1.181 */}从 Claude Code v2.1.181 开始,当请求通过自定义基础 URL 路由时,该块在对话的生命周期内是稳定的,因此以完整请求体为键的 gateway 端提示缓存可以在不禁用它的情况下工作。在 v2.1.181 之前,该块包含每个请求的令牌;在这些版本上,如果您的 gateway 实现了这样的缓存,请设置 `CLAUDE_CODE_ATTRIBUTION_HEADER=0`。119从 Claude Code v2.1.181 开始,当请求通过自定义基础 URL 路由时,该块在对话的生命周期内是稳定的,因此以完整请求体为键的 gateway 端提示缓存可以在不禁用它的情况下工作。在 v2.1.181 之前,该块包含每个请求的令牌;在这些版本上,如果您的 gateway 实现了这样的缓存,请设置 `CLAUDE_CODE_ATTRIBUTION_HEADER=0`。

120 120 

121<h2 id="feature-pass-through">121<h2 id="feature-pass-through">

122 功能传递122 功能传递


126 126 

127添加请求体字段的功能将它们与 beta 请求头配对,该对一起传递。删除请求头同时传递请求体的 gateway,或将 Anthropic 格式请求体转发到具有不同架构的上游,会产生硬 `400` 错误;只有当两个部分一起缺失时,功能才会安静地关闭。重写或编辑请求体以进行内容检查的 gateway 会以与删除相同的方式破坏配对,因此在不修改的情况下检查。该表注明了功能偏离配对的位置。127添加请求体字段的功能将它们与 beta 请求头配对,该对一起传递。删除请求头同时传递请求体的 gateway,或将 Anthropic 格式请求体转发到具有不同架构的上游,会产生硬 `400` 错误;只有当两个部分一起缺失时,功能才会安静地关闭。重写或编辑请求体以进行内容检查的 gateway 会以与删除相同的方式破坏配对,因此在不修改的情况下检查。该表注明了功能偏离配对的位置。

128 128 

129细粒度工具流式传输是直接连接默认值之一:每当请求通过自定义基础 URL 路由时,它默认关闭,当开发者设置 [`CLAUDE_CODE_ENABLE_FINE_GRAINED_TOOL_STREAMING=1`](/zh-CN/env-vars) 时,gateway 会接收它。129细粒度工具流式传输是直接连接默认值之一:每当请求通过自定义基础 URL 路由时,它默认关闭,当开发者设置 [`CLAUDE_CODE_ENABLE_FINE_GRAINED_TOOL_STREAMING=1`](/docs/zh-CN/env-vars) 时,gateway 会接收它。

130 130 

131| 功能 | 请求头和请求体对 | 破坏时的症状 | 补救 |131| 功能 | 请求头和请求体对 | 破坏时的症状 | 补救 |

132| :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------ | :--------------------------------------------------------------------------------- |132| :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------ | :--------------------------------------------------------------------------------- |

133| [自适应推理](/zh-CN/model-config#adjust-effort-level) | 无 beta 请求头。Claude Code 为 Claude 4.6 及更高版本发送 `thinking: {"type": "adaptive"}`,并将它不识别的模型名称(如 gateway 别名)视为接收该字段的当前模型 | 当上游模型构建不接受它时,命名 `thinking` 字段或 `adaptive` 标签的 `400` | 升级上游。在 Opus 4.6 和 Sonnet 4.6 上,开发者可以改为设置 `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1` |133| [自适应推理](/docs/zh-CN/model-config#adjust-effort-level) | 无 beta 请求头。Claude Code 为 Claude 4.6 及更高版本发送 `thinking: {"type": "adaptive"}`,并将它不识别的模型名称(如 gateway 别名)视为接收该字段的当前模型 | 当上游模型构建不接受它时,命名 `thinking` 字段或 `adaptive` 标签的 `400` | 升级上游。在 Opus 4.6 和 Sonnet 4.6 上,开发者可以改为设置 `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1` |

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

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

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

137| [努力](https://platform.claude.com/docs/en/build-with-claude/effort)和[结构化输出](https://platform.claude.com/docs/en/build-with-claude/structured-outputs) | `output_config` 请求体字段携带努力、结构化输出格式和任务预算设置;每个都与自己的 beta 请求头配对 | 在 Amazon Bedrock 和 Google Cloud 的 Agent Platform 上游上命名 `output_config` 的 `400`,通常是 `Extra inputs are not permitted` | 一起转发字段及其请求头 |137| [努力](https://platform.claude.com/docs/en/build-with-claude/effort)和[结构化输出](https://platform.claude.com/docs/en/build-with-claude/structured-outputs) | `output_config` 请求体字段携带努力、结构化输出格式和任务预算设置;每个都与自己的 beta 请求头配对 | 在 Amazon Bedrock 和 Google Cloud 的 Agent Platform 上游上命名 `output_config` 的 `400`,通常是 `Extra inputs are not permitted` | 一起转发字段及其请求头 |

138| [令牌计数](https://platform.claude.com/docs/en/build-with-claude/token-counting) | 无 beta 配对;使用 `count_tokens` 端点 | Claude Code 回退到在本地估计上下文使用情况 | 如果您想要精确计数,请公开该端点 |138| [令牌计数](https://platform.claude.com/docs/en/build-with-claude/token-counting) | 无 beta 配对;使用 `count_tokens` 端点 | Claude Code 回退到在本地估计上下文使用情况 | 如果您想要精确计数,请公开该端点 |

139 139 

140`ANTHROPIC_DEFAULT_*_MODEL_SUPPORTED_CAPABILITIES` [变量](/zh-CN/model-config)仅在提供商配置中声明模型功能:`CLAUDE_CODE_USE_BEDROCK`、`CLAUDE_CODE_USE_VERTEX`、`CLAUDE_CODE_USE_FOUNDRY` 和 [`CLAUDE_CODE_USE_MANTLE`](/zh-CN/amazon-bedrock#use-the-mantle-endpoint)。它们在 `ANTHROPIC_BASE_URL` gateway 后面没有效果。140`ANTHROPIC_DEFAULT_*_MODEL_SUPPORTED_CAPABILITIES` [变量](/docs/zh-CN/model-config)仅在提供商配置中声明模型功能:`CLAUDE_CODE_USE_BEDROCK`、`CLAUDE_CODE_USE_VERTEX`、`CLAUDE_CODE_USE_FOUNDRY` 和 [`CLAUDE_CODE_USE_MANTLE`](/docs/zh-CN/amazon-bedrock#use-the-mantle-endpoint)。它们在 `ANTHROPIC_BASE_URL` gateway 后面没有效果。

141 141 

142<h3 id="automatic-retry-and-error-forwarding">142<h3 id="automatic-retry-and-error-forwarding">

143 自动重试和错误转发143 自动重试和错误转发


161 161 

162当 `ANTHROPIC_BASE_URL` 指向公开 Anthropic Messages 格式的 gateway 时,Claude Code 可以在启动时查询 gateway 的 `/v1/models` 端点,并将返回的模型添加到 `/model` 选择器。162当 `ANTHROPIC_BASE_URL` 指向公开 Anthropic Messages 格式的 gateway 时,Claude Code 可以在启动时查询 gateway 的 `/v1/models` 端点,并将返回的模型添加到 `/model` 选择器。

163 163 

164开发者通过在自己的环境中或通过托管设置设置 [`CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1`](/zh-CN/env-vars) 来启用它。发现默认关闭,以便由共享 API 密钥支持的 gateway 不会向每个用户公开密钥可以访问的每个模型。这需要 Claude Code v2.1.129 或更高版本。164开发者通过在自己的环境中或通过托管设置设置 [`CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1`](/docs/zh-CN/env-vars) 来启用它。发现默认关闭,以便由共享 API 密钥支持的 gateway 不会向每个用户公开密钥可以访问的每个模型。这需要 Claude Code v2.1.129 或更高版本。

165 165 

166<h3 id="when-discovery-runs">166<h3 id="when-discovery-runs">

167 发现何时运行167 发现何时运行


171 171 

172* 设置了任何 `CLAUDE_CODE_USE_*` 提供商变量,即使也设置了 `ANTHROPIC_BASE_URL`172* 设置了任何 `CLAUDE_CODE_USE_*` 提供商变量,即使也设置了 `ANTHROPIC_BASE_URL`

173* `ANTHROPIC_BASE_URL` 未设置或指向 `api.anthropic.com`173* `ANTHROPIC_BASE_URL` 未设置或指向 `api.anthropic.com`

174* 非必要流量被禁用,通过 [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/zh-CN/env-vars) 或组织策略174* 非必要流量被禁用,通过 [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/zh-CN/env-vars) 或组织策略

175 175 

176<h3 id="request-and-response">176<h3 id="request-and-response">

177 请求和响应177 请求和响应


182发现请求恰好发送一个凭证请求头:182发现请求恰好发送一个凭证请求头:

183 183 

184* 设置时 `ANTHROPIC_AUTH_TOKEN` 作为承载令牌184* 设置时 `ANTHROPIC_AUTH_TOKEN` 作为承载令牌

185* 否则解析的 API 密钥,包括 [`apiKeyHelper`](/zh-CN/llm-gateway-connect#rotate-credentials-with-apikeyhelper) 值,在 `x-api-key` 请求头中185* 否则解析的 API 密钥,包括 [`apiKeyHelper`](/docs/zh-CN/llm-gateway-connect#rotate-credentials-with-apikeyhelper) 值,在 `x-api-key` 请求头中

186 186 

187这与推理请求不同,后者在两个请求头中发送帮助程序值。验证 `/v1/models` 的 gateway 必须为帮助程序部署接受 `x-api-key`。来自 `ANTHROPIC_CUSTOM_HEADERS` 的任何请求头也包括在内。187这与推理请求不同,后者在两个请求头中发送帮助程序值。验证 `/v1/models` 的 gateway 必须为帮助程序部署接受 `x-api-key`。来自 `ANTHROPIC_CUSTOM_HEADERS` 的任何请求头也包括在内。

188 188 


201 选择器条目和缓存201 选择器条目和缓存

202</h3>202</h3>

203 203 

204选择器是当开发者在 Claude Code 中运行 `/model` 时打开的交互式模型列表。每个发现的条目都标记为"来自 gateway",并在提供时使用 `display_name`。[`availableModels` 托管设置](/zh-CN/settings#available-settings)限制了发现可以添加的内容。204选择器是当开发者在 Claude Code 中运行 `/model` 时打开的交互式模型列表。每个发现的条目都标记为"来自 gateway",并在提供时使用 `display_name`。[`availableModels` 托管设置](/docs/zh-CN/settings#available-settings)限制了发现可以添加的内容。

205 205 

206仅当发现的 ID 与选择器中已有的行完全匹配时,或当发现的和现有的 ID 都解析为 [Fable](/zh-CN/model-config#work-with-fable-5) 时,才会跳过发现的 ID。{/* min-version: 2.1.197 */}从 Claude Code v2.1.197 开始,当发现的显式 ID 和内置条目都解析为同一模型时,发现的显式 ID 也会折叠到内置条目中。内置行按别名(如 `sonnet`)键入,因此发现的显式 ID(如别名当前解析到的模型 `claude-sonnet-5`)会折叠到 `sonnet` 行中,而别名不解析到的 ID(如 `claude-sonnet-4-6`)仍会在内置条目旁边添加自己的"来自 gateway"行。206仅当发现的 ID 与选择器中已有的行完全匹配时,或当发现的和现有的 ID 都解析为 [Fable](/docs/zh-CN/model-config#work-with-fable-5) 时,才会跳过发现的 ID。从 Claude Code v2.1.197 开始,当发现的显式 ID 和内置条目都解析为同一模型时,发现的显式 ID 也会折叠到内置条目中。内置行按别名(如 `sonnet`)键入,因此发现的显式 ID(如别名当前解析到的模型 `claude-sonnet-5`)会折叠到 `sonnet` 行中,而别名不解析到的 ID(如 `claude-sonnet-4-6`)仍会在内置条目旁边添加自己的"来自 gateway"行。

207 207 

208结果被缓存到 `~/.claude/cache/gateway-models.json`,或在 Windows 上 `%USERPROFILE%\.claude\cache\gateway-models.json`,并在每次启动时刷新。如果请求失败或 gateway 未实现 `/v1/models`,选择器会回退到上次启动的缓存列表或内置模型列表。如果您的 gateway 在不匹配发现过滤器的别名下提供 Claude 模型,开发者可以使用[模型配置](/zh-CN/model-config)变量手动添加这些别名。208结果被缓存到 `~/.claude/cache/gateway-models.json`,或在 Windows 上 `%USERPROFILE%\.claude\cache\gateway-models.json`,并在每次启动时刷新。如果请求失败或 gateway 未实现 `/v1/models`,选择器会回退到上次启动的缓存列表或内置模型列表。如果您的 gateway 在不匹配发现过滤器的别名下提供 Claude 模型,开发者可以使用[模型配置](/docs/zh-CN/model-config)变量手动添加这些别名。

209 209 

210<h2 id="related-resources">210<h2 id="related-resources">

211 相关资源211 相关资源


213 213 

214有关 gateway 文档集的其余部分和基础 API 参考:214有关 gateway 文档集的其余部分和基础 API 参考:

215 215 

216* [Gateway 概述](/zh-CN/gateways):什么是 gateway 以及如何在 Claude 应用 gateway 和其他产品之间进行选择216* [Gateway 概述](/docs/zh-CN/gateways):什么是 gateway 以及如何在 Claude 应用 gateway 和其他产品之间进行选择

217* [其他 LLM gateway](/zh-CN/llm-gateway):如何推出您的组织运行的 gateway 以及它如何与 claude.ai 订阅交互217* [其他 LLM gateway](/docs/zh-CN/llm-gateway):如何推出您的组织运行的 gateway 以及它如何与 claude.ai 订阅交互

218* [为您的组织推出 LLM gateway](/zh-CN/llm-gateway-rollout):使用此契约的管理员检查清单218* [为您的组织推出 LLM gateway](/docs/zh-CN/llm-gateway-rollout):使用此契约的管理员检查清单

219* [将 Claude Code 连接到 LLM gateway](/zh-CN/llm-gateway-connect):每个开发者的配置和故障排除表219* [将 Claude Code 连接到 LLM gateway](/docs/zh-CN/llm-gateway-connect):每个开发者的配置和故障排除表

220* [Beta 请求头参考](https://platform.claude.com/docs/en/api/beta-headers):当前的 `anthropic-beta` 值集220* [Beta 请求头参考](https://platform.claude.com/docs/en/api/beta-headers):当前的 `anthropic-beta` 值集

221* [Messages API](https://platform.claude.com/docs/en/api/messages):Anthropic 格式 gateway 实现的 API 格式221* [Messages API](https://platform.claude.com/docs/en/api/messages):Anthropic 格式 gateway 实现的 API 格式

Details

9本页面指导管理员为 Claude Code 推出 LLM 网关。它假设您已部署了满足[网关要求](#gateway-requirements)的网关产品。本页面不涵盖部署或运营任何特定产品;请按照您的供应商文档部署您的产品。9本页面指导管理员为 Claude Code 推出 LLM 网关。它假设您已部署了满足[网关要求](#gateway-requirements)的网关产品。本页面不涵盖部署或运营任何特定产品;请按照您的供应商文档部署您的产品。

10 10 

11<Note>11<Note>

12 * 要将您自己机器上的 Claude Code 连接到现有网关,请参阅[将 Claude Code 连接到 LLM 网关](/zh-CN/llm-gateway-connect)12 * 要将您自己机器上的 Claude Code 连接到现有网关,请参阅[将 Claude Code 连接到 LLM 网关](/docs/zh-CN/llm-gateway-connect)

13 * 有关 Claude Code 发送到网关的内容以及要转发的内容,请参阅[网关协议参考](/zh-CN/llm-gateway-protocol)13 * 有关 Claude Code 发送到网关的内容以及要转发的内容,请参阅[网关协议参考](/docs/zh-CN/llm-gateway-protocol)

14</Note>14</Note>

15 15 

16<h2 id="prerequisites">16<h2 id="prerequisites">


22* 在您的基础设施上部署的网关,在您将分发给开发者的确切地址上提供 HTTPS,而不是重定向到它的地址,并配置为将 Claude 模型名称路由到您的提供商22* 在您的基础设施上部署的网关,在您将分发给开发者的确切地址上提供 HTTPS,而不是重定向到它的地址,并配置为将 Claude 模型名称路由到您的提供商

23* 网关转发的提供商凭证:23* 网关转发的提供商凭证:

24 * 对于 Anthropic API:来自 [Claude 控制台](https://platform.claude.com/settings/keys)的 API 密钥24 * 对于 Anthropic API:来自 [Claude 控制台](https://platform.claude.com/settings/keys)的 API 密钥

25 * 对于云提供商:具有模型访问权限的云凭证。请参阅 [Amazon Bedrock](/zh-CN/amazon-bedrock#prerequisites)、[Google Cloud 的 Agent Platform](/zh-CN/google-vertex-ai#prerequisites) 或 [Microsoft Foundry](/zh-CN/microsoft-foundry#prerequisites) 页面上的前置条件25 * 对于云提供商:具有模型访问权限的云凭证。请参阅 [Amazon Bedrock](/docs/zh-CN/amazon-bedrock#prerequisites)、[Google Cloud 的 Agent Platform](/docs/zh-CN/google-vertex-ai#prerequisites) 或 [Microsoft Foundry](/docs/zh-CN/microsoft-foundry#prerequisites) 页面上的前置条件

26* 一种向开发者机器交付设置文件的方式,例如 MDM 或配置管理26* 一种向开发者机器交付设置文件的方式,例如 MDM 或配置管理

27 * 如果您还没有,[设置如何到达设备](/zh-CN/admin-setup#decide-how-settings-reach-devices)比较了各种选项27 * 如果您还没有,[设置如何到达设备](/docs/zh-CN/admin-setup#decide-how-settings-reach-devices)比较了各种选项

28 28 

29<h3 id="gateway-requirements">29<h3 id="gateway-requirements">

30 网关要求30 网关要求


32 32 

33无论哪种产品提供网关,它必须:33无论哪种产品提供网关,它必须:

34 34 

35* **接受支持的 API 格式**:[API 格式表](/zh-CN/llm-gateway-protocol#api-formats)中的格式之一。下面的推出步骤假设 Anthropic Messages API 位于 `POST /v1/messages`,大多数网关都提供此格式35* **接受支持的 API 格式**:[API 格式表](/docs/zh-CN/llm-gateway-protocol#api-formats)中的格式之一。下面的推出步骤假设 Anthropic Messages API 位于 `POST /v1/messages`,大多数网关都提供此格式

36* **流式传输响应**:按到达时传递服务器发送的事件,而不是缓冲整个响应36* **流式传输响应**:按到达时传递服务器发送的事件,而不是缓冲整个响应

37* **路由 Claude 模型名称**:将开发者使用的每个名称映射到上游模型。Claude Code 在每个请求中发送模型名称,例如 `claude-sonnet-4-6`;在大多数网关产品中,映射是网关自己配置中的模型列表或路由表37* **路由 Claude 模型名称**:将开发者使用的每个名称映射到上游模型。Claude Code 在每个请求中发送模型名称,例如 `claude-sonnet-4-6`;在大多数网关产品中,映射是网关自己配置中的模型列表或路由表

38* **转发标头和正文不变**:在两个方向上传递 `anthropic-beta`、`anthropic-version` 和请求正文;[功能传递表](/zh-CN/llm-gateway-protocol#feature-pass-through)将每个映射到没有它就会中断的功能38* **转发标头和正文不变**:在两个方向上传递 `anthropic-beta`、`anthropic-version` 和请求正文;[功能传递表](/docs/zh-CN/llm-gateway-protocol#feature-pass-through)将每个映射到没有它就会中断的功能

39* **返回未修改的上游错误**:Claude Code 的自动恢复与错误措辞匹配,因此在网关自己的信封中包装错误会破坏它39* **返回未修改的上游错误**:Claude Code 的自动恢复与错误措辞匹配,因此在网关自己的信封中包装错误会破坏它

40* **豁免路径免受请求正文 WAF 检查**:Claude Code 提示包含源代码和 XML 样式标签,与跨站脚本正文规则匹配;网关前面的 WAF 在真实会话中返回 `403`,而短测试请求通过40* **豁免路径免受请求正文 WAF 检查**:Claude Code 提示包含源代码和 XML 样式标签,与跨站脚本正文规则匹配;网关前面的 WAF 在真实会话中返回 `403`,而短测试请求通过

41 41 

42可选地,提供 `GET /v1/models` 以便 Claude Code 可以使用[模型发现](/zh-CN/llm-gateway-protocol#model-discovery)从您的网关填充模型选择器。{/* min-version: 2.1.129 */}42可选地,提供 `GET /v1/models` 以便 Claude Code 可以使用[模型发现](/docs/zh-CN/llm-gateway-protocol#model-discovery)从您的网关填充模型选择器。

43 43 

44<h2 id="rollout-steps">44<h2 id="rollout-steps">

45 推出步骤45 推出步骤


96对网关路由配置中的每个 Claude 模型名称重复请求一次。网关不路由的名称会向选择它的任何开发者返回 `404`,因此在推出前测试每个名称。96对网关路由配置中的每个 Claude 模型名称重复请求一次。网关不路由的名称会向选择它的任何开发者返回 `404`,因此在推出前测试每个名称。

97 97 

98<Note>98<Note>

99 避免在重定向后提供网关。重定向可能会在推理请求上丢弃请求正文或剥离凭证标头,[模型发现](/zh-CN/llm-gateway-protocol#model-discovery)将任何重定向视为失败,因此凭证无法泄露到重定向目标。99 避免在重定向后提供网关。重定向可能会在推理请求上丢弃请求正文或剥离凭证标头,[模型发现](/docs/zh-CN/llm-gateway-protocol#model-discovery)将任何重定向视为失败,因此凭证无法泄露到重定向目标。

100</Note>100</Note>

101 101 

102<h3 id="issue-developer-credentials">102<h3 id="issue-developer-credentials">


130 130 

131**检查点**:带有 `content` 字段的 `200` 意味着开发者密钥到达网关,网关转发它。当[前一步](#confirm-the-gateway-routes-your-models)成功时,这里的 `401` 意味着开发者密钥错误或尚未在网关处生效。131**检查点**:带有 `content` 字段的 `200` 意味着开发者密钥到达网关,网关转发它。当[前一步](#confirm-the-gateway-routes-your-models)成功时,这里的 `401` 意味着开发者密钥错误或尚未在网关处生效。

132 132 

133为每个开发者颁发一个密钥而不是共享密钥是使每个开发者使用归因和个人离职工作的原因。保存密钥的环境变量取决于网关读取的标头。对于在 `Authorization: Bearer` 标头中检查凭证的网关,开发者在 `ANTHROPIC_AUTH_TOKEN` 中设置他们的密钥。对于从 `x-api-key` 标头读取密钥的网关,开发者改为设置 `ANTHROPIC_API_KEY`;[凭证表](/zh-CN/llm-gateway-connect#set-the-credential-variable)涵盖了映射。133为每个开发者颁发一个密钥而不是共享密钥是使每个开发者使用归因和个人离职工作的原因。保存密钥的环境变量取决于网关读取的标头。对于在 `Authorization: Bearer` 标头中检查凭证的网关,开发者在 `ANTHROPIC_AUTH_TOKEN` 中设置他们的密钥。对于从 `x-api-key` 标头读取密钥的网关,开发者改为设置 `ANTHROPIC_API_KEY`;[凭证表](/docs/zh-CN/llm-gateway-connect#set-the-credential-variable)涵盖了映射。

134 134 

135<h3 id="test-claude-code-against-the-gateway">135<h3 id="test-claude-code-against-the-gateway">

136 针对网关测试 Claude Code136 针对网关测试 Claude Code


165* `Not logged in`:检查网关日志以区分两个原因。如果它是空的,没有凭证到达会话,没有请求离开机器;在您测试的 shell 中重新运行导出。如果它显示在 `401` 正文中带有 `x-api-key` 的被拒绝请求,网关期望密钥在该标头中;切换到 `ANTHROPIC_API_KEY`165* `Not logged in`:检查网关日志以区分两个原因。如果它是空的,没有凭证到达会话,没有请求离开机器;在您测试的 shell 中重新运行导出。如果它显示在 `401` 正文中带有 `x-api-key` 的被拒绝请求,网关期望密钥在该标头中;切换到 `ANTHROPIC_API_KEY`

166* `Failed to authenticate. API Error: 401` 意味着凭证被发送并被拒绝,网关日志说明了在哪里:命名 `api.anthropic.com` 或您的提供商端点的 `401` 意味着网关到达了上游但其提供商凭证被拒绝,因此开发者密钥有效,网关持有的提供商凭证错误或是占位符166* `Failed to authenticate. API Error: 401` 意味着凭证被发送并被拒绝,网关日志说明了在哪里:命名 `api.anthropic.com` 或您的提供商端点的 `401` 意味着网关到达了上游但其提供商凭证被拒绝,因此开发者密钥有效,网关持有的提供商凭证错误或是占位符

167 167 

168错误或无法到达的基础 URL 会产生不同的症状:Claude Code [以退避方式重试连接](/zh-CN/errors#automatic-retries),在报告错误之前可能会坐着没有输出几分钟。如果命令似乎挂起,请检查网关日志而不是等待;没有到达的请求意味着 `ANTHROPIC_BASE_URL` 不指向网关。168错误或无法到达的基础 URL 会产生不同的症状:Claude Code [以退避方式重试连接](/docs/zh-CN/errors#automatic-retries),在报告错误之前可能会坐着没有输出几分钟。如果命令似乎挂起,请检查网关日志而不是等待;没有到达的请求意味着 `ANTHROPIC_BASE_URL` 不指向网关。

169 169 

170<h3 id="distribute-the-configuration">170<h3 id="distribute-the-configuration">

171 分发配置171 分发配置

172</h3>172</h3>

173 173 

174每个开发者机器都需要网关地址和凭证。您可以通过[托管设置](/zh-CN/settings#settings-files)集中分发它们,以便开发者不配置任何内容,或者手动向开发者提供值以自己设置。174每个开发者机器都需要网关地址和凭证。您可以通过[托管设置](/docs/zh-CN/settings#settings-files)集中分发它们,以便开发者不配置任何内容,或者手动向开发者提供值以自己设置。

175 175 

176<h4 id="what-to-distribute">176<h4 id="what-to-distribute">

177 要分发的内容177 要分发的内容


186| `ANTHROPIC_CUSTOM_HEADERS` | 向每个 API 请求添加额外的 HTTP 标头 | 您的网关在每个请求上需要租户或路由标头 |186| `ANTHROPIC_CUSTOM_HEADERS` | 向每个 API 请求添加额外的 HTTP 标头 | 您的网关在每个请求上需要租户或路由标头 |

187| `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY` | 在启动时查询网关的 `/v1/models` 并将返回的名称添加到 `/model` 选择器 | 您的网关提供 `/v1/models` 并且您希望开发者的选择器从中填充 |187| `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY` | 在启动时查询网关的 `/v1/models` 并将返回的名称添加到 `/model` 选择器 | 您的网关提供 `/v1/models` 并且您希望开发者的选择器从中填充 |

188| `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` | 停止 Claude Code 发送预发布功能标头和正文字段 | 您的网关转发到拒绝 beta 字段的 Amazon Bedrock 或 Google Cloud 的 Agent Platform 上游;请参阅[网关要求](#gateway-requirements) |188| `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` | 停止 Claude Code 发送预发布功能标头和正文字段 | 您的网关转发到拒绝 beta 字段的 Amazon Bedrock 或 Google Cloud 的 Agent Platform 上游;请参阅[网关要求](#gateway-requirements) |

189| `ANTHROPIC_MODEL` 或 [`ANTHROPIC_DEFAULT_HAIKU_MODEL`](/zh-CN/model-config) | 设置 Claude Code 为主会话和后台流量请求的模型名称 | 您的网关路由与 Claude Code 默认值不匹配的模型名称,或您将[后台功能](/zh-CN/costs#background-token-usage)路由到不同的模型。在网关处路由覆盖名称和 Claude Code 的默认名称,因为某些子调用可以请求默认名称,无论覆盖如何;[模型配置](/zh-CN/model-config)涵盖了会话的每个部分使用哪个模型 |189| `ANTHROPIC_MODEL` 或 [`ANTHROPIC_DEFAULT_HAIKU_MODEL`](/docs/zh-CN/model-config) | 设置 Claude Code 为主会话和后台流量请求的模型名称 | 您的网关路由与 Claude Code 默认值不匹配的模型名称,或您将[后台功能](/docs/zh-CN/costs#background-token-usage)路由到不同的模型。在网关处路由覆盖名称和 Claude Code 的默认名称,因为某些子调用可以请求默认名称,无论覆盖如何;[模型配置](/docs/zh-CN/model-config)涵盖了会话的每个部分使用哪个模型 |

190| `ANTHROPIC_BEDROCK_BASE_URL`、`ANTHROPIC_VERTEX_BASE_URL`、`ANTHROPIC_FOUNDRY_BASE_URL` 或 `ANTHROPIC_AWS_BASE_URL` 以及[该提供商的变量](/zh-CN/llm-gateway-connect#route-to-a-cloud-provider-through-a-gateway) | 通过网关将 Claude Code 指向网关。Amazon Bedrock 和 Google Cloud 的 Agent Platform 也切换到这些提供商的本机请求格式 | 您的网关前置 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 或 AWS 上的 Claude 平台;请参阅 [API 格式](/zh-CN/llm-gateway-protocol#api-formats) |190| `ANTHROPIC_BEDROCK_BASE_URL`、`ANTHROPIC_VERTEX_BASE_URL`、`ANTHROPIC_FOUNDRY_BASE_URL` 或 `ANTHROPIC_AWS_BASE_URL` 以及[该提供商的变量](/docs/zh-CN/llm-gateway-connect#route-to-a-cloud-provider-through-a-gateway) | 通过网关将 Claude Code 指向网关。Amazon Bedrock 和 Google Cloud 的 Agent Platform 也切换到这些提供商的本机请求格式 | 您的网关前置 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 或 AWS 上的 Claude 平台;请参阅 [API 格式](/docs/zh-CN/llm-gateway-protocol#api-formats) |

191 191 

192<h4 id="distribute-through-managed-settings">192<h4 id="distribute-through-managed-settings">

193 通过托管设置分发193 通过托管设置分发

194</h4>194</h4>

195 195 

196通过[托管设置文件](/zh-CN/settings#settings-files)的 `env` 块交付变量,由 MDM、注册表策略或配置管理推送:196通过[托管设置文件](/docs/zh-CN/settings#settings-files)的 `env` 块交付变量,由 MDM、注册表策略或配置管理推送:

197 197 

198```json theme={null}198```json theme={null}

199{199{


206 206 

207将表中的条件变量添加到相同的 `env` 块。托管的 `ANTHROPIC_BASE_URL` 被强制执行,不能被开发者的 shell 导出覆盖,因为 Claude Code 在进程环境和较低优先级设置上应用它。207将表中的条件变量添加到相同的 `env` 块。托管的 `ANTHROPIC_BASE_URL` 被强制执行,不能被开发者的 shell 导出覆盖,因为 Claude Code 在进程环境和较低优先级设置上应用它。

208 208 

209不要在托管设置中与网关凭证一起包括 `forceLoginMethod` 或 `forceLoginOrgUUID`。在 Claude Code v2.1.146 及更高版本上,任一密钥在启动时阻止 `ANTHROPIC_API_KEY`、`ANTHROPIC_AUTH_TOKEN` 和 `apiKeyHelper`,因此开发者看到 `This machine's managed settings require a first-party login` 并且无法继续。{/* min-version: 2.1.146 */}209不要在托管设置中与网关凭证一起包括 `forceLoginMethod` 或 `forceLoginOrgUUID`。在 Claude Code v2.1.146 及更高版本上,任一密钥在启动时阻止 `ANTHROPIC_API_KEY`、`ANTHROPIC_AUTH_TOKEN` 和 `apiKeyHelper`,因此开发者看到 `This machine's managed settings require a first-party login` 并且无法继续。

210 210 

211[服务器管理的设置](/zh-CN/server-managed-settings#platform-availability)交付需要直接连接到 `api.anthropic.com`,因此它不会到达网关路由的会话。网关部署使用这个基于文件的托管设置路径,它强制执行相同的密钥。211[服务器管理的设置](/docs/zh-CN/server-managed-settings#platform-availability)交付需要直接连接到 `api.anthropic.com`,因此它不会到达网关路由的会话。网关部署使用这个基于文件的托管设置路径,它强制执行相同的密钥。

212 212 

213对于凭证,在托管设置文件中分发一个 [`apiKeyHelper`](/zh-CN/llm-gateway-connect#rotate-credentials-with-apikeyhelper) 命令,如上所示;该命令作为本地开发者对您的秘密存储进行身份验证,因此每台机器都接收自己的密钥。或者,通过您现有的秘密流程向每个开发者交付他们的密钥,并让他们自己设置 `ANTHROPIC_AUTH_TOKEN`。213对于凭证,在托管设置文件中分发一个 [`apiKeyHelper`](/docs/zh-CN/llm-gateway-connect#rotate-credentials-with-apikeyhelper) 命令,如上所示;该命令作为本地开发者对您的秘密存储进行身份验证,因此每台机器都接收自己的密钥。或者,通过您现有的秘密流程向每个开发者交付他们的密钥,并让他们自己设置 `ANTHROPIC_AUTH_TOKEN`。

214 214 

215某些环境需要单独的交付:215某些环境需要单独的交付:

216 216 

217* 桌面应用仅从其 MDM 交付的第三方推理配置读取网关路由;部署该文件以及托管设置,以便桌面会话也通过网关路由。请参阅[桌面第三方配置文档](https://claude.com/docs/third-party/claude-desktop/configuration)和[桌面网关文档](https://claude.com/docs/third-party/claude-desktop/gateway)217* 桌面应用仅从其 MDM 交付的第三方推理配置读取网关路由;部署该文件以及托管设置,以便桌面会话也通过网关路由。请参阅[桌面第三方配置文档](https://claude.com/docs/third-party/claude-desktop/configuration)和[桌面网关文档](https://claude.com/docs/third-party/claude-desktop/gateway)

218* CI 运行器需要在[运行器的环境](/zh-CN/llm-gateway-connect#configure-each-surface)中设置 `ANTHROPIC_BASE_URL` 和凭证218* CI 运行器需要在[运行器的环境](/docs/zh-CN/llm-gateway-connect#configure-each-surface)中设置 `ANTHROPIC_BASE_URL` 和凭证

219* 托管 Windows 机器上的 WSL 仅在 [`wslInheritsWindowsSettings`](/zh-CN/settings#available-settings) 为 `true` 时读取 Windows 托管设置219* 托管 Windows 机器上的 WSL 仅在 [`wslInheritsWindowsSettings`](/docs/zh-CN/settings#available-settings) 为 `true` 时读取 Windows 托管设置

220 220 

221<h4 id="hand-developers-the-values-to-set-themselves">221<h4 id="hand-developers-the-values-to-set-themselves">

222 手动向开发者提供值以自己设置222 手动向开发者提供值以自己设置

223</h4>223</h4>

224 224 

225如果您没有托管设置分发,请向每个开发者发送他们需要的内容以遵循[连接页面](/zh-CN/llm-gateway-connect#configure-claude-code-yourself):225如果您没有托管设置分发,请向每个开发者发送他们需要的内容以遵循[连接页面](/docs/zh-CN/llm-gateway-connect#configure-claude-code-yourself):

226 226 

227* 网关 URL227* 网关 URL

228* 他们的个人凭证228* 他们的个人凭证

229* **将凭证放在哪个变量中**:对于 bearer-token 网关为 `ANTHROPIC_AUTH_TOKEN`,或对于 `x-api-key` 网关为 `ANTHROPIC_API_KEY`。告诉开发者哪一个可以节省他们在[连接页面](/zh-CN/llm-gateway-connect#set-the-credential-variable)上描述的试错229* **将凭证放在哪个变量中**:对于 bearer-token 网关为 `ANTHROPIC_AUTH_TOKEN`,或对于 `x-api-key` 网关为 `ANTHROPIC_API_KEY`。告诉开发者哪一个可以节省他们在[连接页面](/docs/zh-CN/llm-gateway-connect#set-the-credential-variable)上描述的试错

230* [要分发的内容表](#what-to-distribute)中的任何条件变量,以及它们的值230* [要分发的内容表](#what-to-distribute)中的任何条件变量,以及它们的值

231 231 

232[连接页面](/zh-CN/llm-gateway-connect#configure-claude-code-yourself)指导开发者设置每一个。232[连接页面](/docs/zh-CN/llm-gateway-connect#configure-claude-code-yourself)指导开发者设置每一个。

233 233 

234**检查点**:在开发者机器上,`claude` 启动会话而不显示登录屏幕,因为分发的凭证满足身份验证。然后运行 `/status` 并打开**状态**选项卡:`Anthropic base URL` 行显示网关地址,对于托管分发,`Setting sources` 行包括托管设置。登录屏幕或缺少 `Anthropic base URL` 行意味着配置没有到达机器。234**检查点**:在开发者机器上,`claude` 启动会话而不显示登录屏幕,因为分发的凭证满足身份验证。然后运行 `/status` 并打开**状态**选项卡:`Anthropic base URL` 行显示网关地址,对于托管分发,`Setting sources` 行包括托管设置。登录屏幕或缺少 `Anthropic base URL` 行意味着配置没有到达机器。

235 235 


270* `Failed to authenticate` 错误意味着网关拒绝请求;其日志说明了哪个凭证失败。网关自己记录的拒绝命名开发者密钥,而来自 `api.anthropic.com` 或您的提供商端点的 `401` 意味着网关持有的提供商凭证被拒绝270* `Failed to authenticate` 错误意味着网关拒绝请求;其日志说明了哪个凭证失败。网关自己记录的拒绝命名开发者密钥,而来自 `api.anthropic.com` 或您的提供商端点的 `401` 意味着网关持有的提供商凭证被拒绝

271* 当网关期望密钥在 `x-api-key` 标头中时,在首次使用时出现一次性批准提示是预期的,设置为 `ANTHROPIC_API_KEY`。使用 `ANTHROPIC_AUTH_TOKEN`,不会出现提示,变量会无声地接管;以前保存的 claude.ai 登录对该会话无效271* 当网关期望密钥在 `x-api-key` 标头中时,在首次使用时出现一次性批准提示是预期的,设置为 `ANTHROPIC_API_KEY`。使用 `ANTHROPIC_AUTH_TOKEN`,不会出现提示,变量会无声地接管;以前保存的 claude.ai 登录对该会话无效

272 272 

273最后,检查网关的日志以查看您发送的消息:凭证标识开发者,[`x-claude-code-session-id` 标头](/zh-CN/llm-gateway-protocol#request-headers)按会话对请求进行分组。如果功能因[故障排除症状](/zh-CN/llm-gateway-connect#troubleshoot-gateway-errors)而失败,网关正在剥离标头或重写错误;请参阅上面的[网关要求](#gateway-requirements)。273最后,检查网关的日志以查看您发送的消息:凭证标识开发者,[`x-claude-code-session-id` 标头](/docs/zh-CN/llm-gateway-protocol#request-headers)按会话对请求进行分组。如果功能因[故障排除症状](/docs/zh-CN/llm-gateway-connect#troubleshoot-gateway-errors)而失败,网关正在剥离标头或重写错误;请参阅上面的[网关要求](#gateway-requirements)。

274 274 

275<h2 id="maintain-the-gateway">275<h2 id="maintain-the-gateway">

276 维护网关276 维护网关


280 280 

281| 变化 | 当网关没有跟上时的症状 | 行动 |281| 变化 | 当网关没有跟上时的症状 | 行动 |

282| :-------------------------------------------- | :------------------------------------------------------------------------------------------------ | :---------------------------------------------------------------------------------------------------------------------------------- |282| :-------------------------------------------- | :------------------------------------------------------------------------------------------------ | :---------------------------------------------------------------------------------------------------------------------------------- |

283| 新的 Claude Code 版本添加 `anthropic-beta` 值和请求正文字段 | 开发者在更新 Claude Code 后报告 `400` 错误,命名新字段;请参阅[功能传递](/zh-CN/llm-gateway-protocol#feature-pass-through) | 逐字转发 `anthropic-*` 标头和请求正文,而不是允许列表;在新 Claude Code 版本到达开发者之前针对网关测试它们 |283| 新的 Claude Code 版本添加 `anthropic-beta` 值和请求正文字段 | 开发者在更新 Claude Code 后报告 `400` 错误,命名新字段;请参阅[功能传递](/docs/zh-CN/llm-gateway-protocol#feature-pass-through) | 逐字转发 `anthropic-*` 标头和请求正文,而不是允许列表;在新 Claude Code 版本到达开发者之前针对网关测试它们 |

284| 新的 Claude 模型变得可用 | 开发者选择新模型名称得到 `404`;`/model` 选择器不列出它 | 将模型名称添加到网关的路由配置,然后重新运行[路由检查](#confirm-the-gateway-routes-your-models)。如果您分发 `ANTHROPIC_MODEL` 或默认模型变量,更新托管设置 |284| 新的 Claude 模型变得可用 | 开发者选择新模型名称得到 `404`;`/model` 选择器不列出它 | 将模型名称添加到网关的路由配置,然后重新运行[路由检查](#confirm-the-gateway-routes-your-models)。如果您分发 `ANTHROPIC_MODEL` 或默认模型变量,更新托管设置 |

285| 凭证过期或需要轮换 | 所有开发者请求开始从上游失败,出现 `401` | 按照自己的计划轮换网关的提供商凭证;开发者密钥在网关处轮换,[`apiKeyHelper`](/zh-CN/llm-gateway-connect#rotate-credentials-with-apikeyhelper) 处理每个开发者的轮换,无需重新分发设置 |285| 凭证过期或需要轮换 | 所有开发者请求开始从上游失败,出现 `401` | 按照自己的计划轮换网关的提供商凭证;开发者密钥在网关处轮换,[`apiKeyHelper`](/docs/zh-CN/llm-gateway-connect#rotate-credentials-with-apikeyhelper) 处理每个开发者的轮换,无需重新分发设置 |

286 286 

287在调整每个密钥的速率限制时,考虑客户端[重试瞬时故障](/zh-CN/errors#automatic-retries),包括 `429` 响应,最多 10 次,带有退避,遵守 `Retry-After`。将[协议参考](/zh-CN/llm-gateway-protocol)保持为每个 Claude Code 版本发送的内容的合同。287在调整每个密钥的速率限制时,考虑客户端[重试瞬时故障](/docs/zh-CN/errors#automatic-retries),包括 `429` 响应,最多 10 次,带有退避,遵守 `Retry-After`。将[协议参考](/docs/zh-CN/llm-gateway-protocol)保持为每个 Claude Code 版本发送的内容的合同。

288 288 

289<h2 id="related-resources">289<h2 id="related-resources">

290 相关资源290 相关资源

291</h2>291</h2>

292 292 

293* [将 Claude Code 连接到 LLM 网关](/zh-CN/llm-gateway-connect):面向开发者的设置步骤,具有每个表面的配置和您可以交给开发者的故障排除表293* [将 Claude Code 连接到 LLM 网关](/docs/zh-CN/llm-gateway-connect):面向开发者的设置步骤,具有每个表面的配置和您可以交给开发者的故障排除表

294* [网关协议参考](/zh-CN/llm-gateway-protocol):网关运营商的有线合同,涵盖端点、要转发的标头以及功能传递表294* [网关协议参考](/docs/zh-CN/llm-gateway-protocol):网关运营商的有线合同,涵盖端点、要转发的标头以及功能传递表

295* [设置文件和优先级](/zh-CN/settings#settings-files):托管、项目和用户设置如何组合,以及托管文件在每个平台上的位置295* [设置文件和优先级](/docs/zh-CN/settings#settings-files):托管、项目和用户设置如何组合,以及托管文件在每个平台上的位置

296* [为您的组织设置 Claude Code](/zh-CN/admin-setup):这个网关是其中一部分的更广泛推出,包括策略强制执行、使用可见性和数据处理296* [为您的组织设置 Claude Code](/docs/zh-CN/admin-setup):这个网关是其中一部分的更广泛推出,包括策略强制执行、使用可见性和数据处理

managed-mcp.md +24 −24

Details

6 6 

7> 使用托管配置文件、允许列表和拒绝列表限制用户可以添加或连接的 MCP 服务器。7> 使用托管配置文件、允许列表和拒绝列表限制用户可以添加或连接的 MCP 服务器。

8 8 

9默认情况下,任何运行 Claude Code 的人都可以连接他们选择的任何 [MCP 服务器](/zh-CN/mcp)。Anthropic 在将连接器添加到 [Anthropic 目录](https://claude.ai/directory)之前会根据其[列表标准](https://claude.com/docs/connectors/building/review-criteria)审查连接器,但不会对任何 MCP 服务器进行安全审计或管理。作为管理员,您可以限制在组织中运行的服务器,从部署固定的批准集到完全禁用 MCP。9默认情况下,任何运行 Claude Code 的人都可以连接他们选择的任何 [MCP 服务器](/docs/zh-CN/mcp)。Anthropic 在将连接器添加到 [Anthropic 目录](https://claude.ai/directory)之前会根据其[列表标准](https://claude.com/docs/connectors/building/review-criteria)审查连接器,但不会对任何 MCP 服务器进行安全审计或管理。作为管理员,您可以限制在组织中运行的服务器,从部署固定的批准集到完全禁用 MCP。

10 10 

11本页面涵盖以下内容:11本页面涵盖以下内容:

12 12 


17* [监控组织实际使用的服务器](#monitor-mcp-usage)17* [监控组织实际使用的服务器](#monitor-mcp-usage)

18 18 

19<Note>19<Note>

20 [安全](/zh-CN/security)页面涵盖 MCP 威胁模型以及如何在批准服务器之前对其进行评估。[决定要强制执行的内容](/zh-CN/admin-setup#decide-what-to-enforce)涵盖 MCP 限制以及其他管理控制。20 [安全](/docs/zh-CN/security)页面涵盖 MCP 威胁模型以及如何在批准服务器之前对其进行评估。[决定要强制执行的内容](/docs/zh-CN/admin-setup#decide-what-to-enforce)涵盖 MCP 限制以及其他管理控制。

21</Note>21</Note>

22 22 

23<h2 id="choose-a-pattern">23<h2 id="choose-a-pattern">


31| **禁用 MCP** | 任何地方都不加载服务器 | `managed-mcp.json` 带有空服务器映射 |31| **禁用 MCP** | 任何地方都不加载服务器 | `managed-mcp.json` 带有空服务器映射 |

32| **固定部署** | 每个用户获得相同的服务器,无法添加其他服务器 | `managed-mcp.json` 包含您想要的服务器 |32| **固定部署** | 每个用户获得相同的服务器,无法添加其他服务器 | `managed-mcp.json` 包含您想要的服务器 |

33| **批准的目录** | 发布批准的服务器列表;用户添加他们想要的服务器,其他任何内容都被阻止 | `allowedMcpServers` + `allowManagedMcpServersOnly: true` |33| **批准的目录** | 发布批准的服务器列表;用户添加他们想要的服务器,其他任何内容都被阻止 | `allowedMcpServers` + `allowManagedMcpServersOnly: true` |

34| **仅插件服务器** | 服务器只能来自插件;用户无法添加自己的服务器 | [`strictPluginOnlyCustomization`](/zh-CN/settings#strictpluginonlycustomization) 列表中包含 `mcp` |34| **仅插件服务器** | 服务器只能来自插件;用户无法添加自己的服务器 | [`strictPluginOnlyCustomization`](/docs/zh-CN/settings#strictpluginonlycustomization) 列表中包含 `mcp` |

35| **软允许列表** | 强制执行允许列表,用户可以在自己的设置中扩展 | `allowedMcpServers` 不带 `allowManagedMcpServersOnly` |35| **软允许列表** | 强制执行允许列表,用户可以在自己的设置中扩展 | `allowedMcpServers` 不带 `allowManagedMcpServersOnly` |

36| **仅拒绝列表** | 阻止已知的坏服务器,允许其他所有服务器 | `deniedMcpServers` |36| **仅拒绝列表** | 阻止已知的坏服务器,允许其他所有服务器 | `deniedMcpServers` |

37| **无限制** | 用户添加任何内容 | 不部署任何托管 MCP 配置 |37| **无限制** | 用户添加任何内容 | 不部署任何托管 MCP 配置 |

38 38 

39<Note>39<Note>

40 Claude Code 没有内置的 MCP 服务器注册表供用户浏览和安装。对于批准目录模式,在用户会找到的地方(如内部 wiki)共享批准列表及其 `claude mcp add` 命令,或通过[托管插件市场](/zh-CN/plugin-marketplaces#managed-marketplace-restrictions)将服务器作为插件分发,以便用户可以从 `/plugin` 浏览和安装它们。40 Claude Code 没有内置的 MCP 服务器注册表供用户浏览和安装。对于批准目录模式,在用户会找到的地方(如内部 wiki)共享批准列表及其 `claude mcp add` 命令,或通过[托管插件市场](/docs/zh-CN/plugin-marketplaces#managed-marketplace-restrictions)将服务器作为插件分发,以便用户可以从 `/plugin` 浏览和安装它们。

41</Note>41</Note>

42 42 

43<h2 id="exclusive-control-with-managed-mcp-json">43<h2 id="exclusive-control-with-managed-mcp-json">


53 53 

54有关完整的检查顺序,请参阅[如何评估服务器](#how-a-server-is-evaluated)。54有关完整的检查顺序,请参阅[如何评估服务器](#how-a-server-is-evaluated)。

55 55 

56`managed-mcp.json` 是一个独立文件,因此无法通过[服务器管理的设置](/zh-CN/server-managed-settings)交付。任何可以写入具有管理员权限的系统路径的进程都可以部署它。大规模情况下,通常通过设备管理工具进行,例如 macOS 上的 Jamf 或配置文件、Windows 上的组策略或 Intune,或 Linux 上您选择的舰队管理。Claude Code 在以下路径之一查找该文件:56`managed-mcp.json` 是一个独立文件,因此无法通过[服务器管理的设置](/docs/zh-CN/server-managed-settings)交付。任何可以写入具有管理员权限的系统路径的进程都可以部署它。大规模情况下,通常通过设备管理工具进行,例如 macOS 上的 Jamf 或配置文件、Windows 上的组策略或 Intune,或 Linux 上您选择的舰队管理。Claude Code 在以下路径之一查找该文件:

57 57 

58| 平台 | 路径 |58| 平台 | 路径 |

59| :---------- | :--------------------------------------------------------- |59| :---------- | :--------------------------------------------------------- |


61| Linux 和 WSL | `/etc/claude-code/managed-mcp.json` |61| Linux 和 WSL | `/etc/claude-code/managed-mcp.json` |

62| Windows | `C:\Program Files\ClaudeCode\managed-mcp.json` |62| Windows | `C:\Program Files\ClaudeCode\managed-mcp.json` |

63 63 

64该文件使用与项目 [`.mcp.json`](/zh-CN/mcp#project-scope) 文件相同的格式:64该文件使用与项目 [`.mcp.json`](/docs/zh-CN/mcp#project-scope) 文件相同的格式:

65 65 

66```json theme={null}66```json theme={null}

67{67{


92 92 

93机器上的任何用户都可以读取此文件,因此不要在 `env` 块中存储 API 密钥或其他凭证。改用以下其中一种方式传递按用户凭证:93机器上的任何用户都可以读取此文件,因此不要在 `env` 块中存储 API 密钥或其他凭证。改用以下其中一种方式传递按用户凭证:

94 94 

95* [`${VAR}` 扩展](/zh-CN/mcp#environment-variable-expansion-in-mcp-json)从每个用户的环境中读取机密。95* [`${VAR}` 扩展](/docs/zh-CN/mcp#environment-variable-expansion-in-mcp-json)从每个用户的环境中读取机密。

96* [OAuth 或按用户标头](/zh-CN/mcp#authenticate-with-remote-mcp-servers)以便每个用户以自己的身份进行身份验证。96* [OAuth 或按用户标头](/docs/zh-CN/mcp#authenticate-with-remote-mcp-servers)以便每个用户以自己的身份进行身份验证。

97* [`headersHelper`](/zh-CN/mcp#use-dynamic-headers-for-custom-authentication)在连接时生成凭证。97* [`headersHelper`](/docs/zh-CN/mcp#use-dynamic-headers-for-custom-authentication)在连接时生成凭证。

98 98 

99<h3 id="validate-the-configuration">99<h3 id="validate-the-configuration">

100 验证配置100 验证配置


123 允许 claude.ai 连接器与托管集一起使用123 允许 claude.ai 连接器与托管集一起使用

124</h3>124</h3>

125 125 

126部署 `managed-mcp.json` 默认会禁止 [claude.ai 连接器](/zh-CN/mcp#use-mcp-servers-from-claude-ai),包括管理员在 claude.ai 管理控制台中为组织配置的连接器。要将这些连接器与 `managed-mcp.json` 中的服务器一起加载,请在[托管设置源](/zh-CN/admin-setup#decide-how-settings-reach-devices)中设置 `"allowAllClaudeAiMcps": true`。需要 Claude Code v2.1.149 或更高版本。126部署 `managed-mcp.json` 默认会禁止 [claude.ai 连接器](/docs/zh-CN/mcp#use-mcp-servers-from-claude-ai),包括管理员在 claude.ai 管理控制台中为组织配置的连接器。要将这些连接器与 `managed-mcp.json` 中的服务器一起加载,请在[托管设置源](/docs/zh-CN/admin-setup#decide-how-settings-reach-devices)中设置 `"allowAllClaudeAiMcps": true`。需要 Claude Code v2.1.149 或更高版本。

127 127 

128启用该设置后,Claude Code 加载的 claude.ai 连接器与未部署 `managed-mcp.json` 时加载的连接器相同。[允许列表和拒绝列表](#policy-based-control-with-allowlists-and-denylists)仍然适用于这些连接器,因此您可以使用 `deniedMcpServers` 阻止特定连接器。该设置仅影响 claude.ai 连接器;插件提供的服务器保持禁止状态。128启用该设置后,Claude Code 加载的 claude.ai 连接器与未部署 `managed-mcp.json` 时加载的连接器相同。[允许列表和拒绝列表](#policy-based-control-with-allowlists-and-denylists)仍然适用于这些连接器,因此您可以使用 `deniedMcpServers` 阻止特定连接器。该设置仅影响 claude.ai 连接器;插件提供的服务器保持禁止状态。

129 129 


133 使用允许列表和拒绝列表进行基于策略的控制133 使用允许列表和拒绝列表进行基于策略的控制

134</h2>134</h2>

135 135 

136允许列表和拒绝列表过滤允许加载的已配置服务器。它们不是注册表:服务器仍然必须由用户、插件或 `managed-mcp.json` 添加,然后允许列表或拒绝列表才能应用于它。要将服务器部署给用户,请使用 [`managed-mcp.json`](#exclusive-control-with-managed-mcp-json)。两个列表也过滤通过 [`--mcp-config` CLI 标志](/zh-CN/cli-reference#cli-flags) 传递的服务器;`--strict-mcp-config` 限制加载哪些配置文件,不会绕过任一列表。136允许列表和拒绝列表过滤允许加载的已配置服务器。它们不是注册表:服务器仍然必须由用户、插件或 `managed-mcp.json` 添加,然后允许列表或拒绝列表才能应用于它。要将服务器部署给用户,请使用 [`managed-mcp.json`](#exclusive-control-with-managed-mcp-json)。两个列表也过滤通过 [`--mcp-config` CLI 标志](/docs/zh-CN/cli-reference#cli-flags) 传递的服务器;`--strict-mcp-config` 限制加载哪些配置文件,不会绕过任一列表。

137 137 

138要使允许列表具有权威性,请在[托管设置源](/zh-CN/admin-setup#decide-how-settings-reach-devices)(如服务器管理的设置或部署的 `managed-settings.json` 文件)中一起设置 `allowedMcpServers` 和 `allowManagedMcpServersOnly: true`。[将允许列表限制为仅托管设置](#restrict-the-allowlist-to-managed-settings-only)显示配置。没有 `allowManagedMcpServersOnly`,来自每个设置源的允许列表会合并,包括用户自己的 `~/.claude/settings.json`,因此用户可以扩展您的允许列表允许的内容。拒绝列表无论如何都会从每个源合并。138要使允许列表具有权威性,请在[托管设置源](/docs/zh-CN/admin-setup#decide-how-settings-reach-devices)(如服务器管理的设置或部署的 `managed-settings.json` 文件)中一起设置 `allowedMcpServers` 和 `allowManagedMcpServersOnly: true`。[将允许列表限制为仅托管设置](#restrict-the-allowlist-to-managed-settings-only)显示配置。没有 `allowManagedMcpServersOnly`,来自每个设置源的允许列表会合并,包括用户自己的 `~/.claude/settings.json`,因此用户可以扩展您的允许列表允许的内容。拒绝列表无论如何都会从每个源合并。

139 139 

140<Note>140<Note>

141 `allowManagedMcpServersOnly` 与 `allowManagedPermissionRulesOnly` 分开,后者锁定[权限规则](/zh-CN/permissions#managed-settings)。设置该标志不会强制执行 MCP 允许列表。141 `allowManagedMcpServersOnly` 与 `allowManagedPermissionRulesOnly` 分开,后者锁定[权限规则](/docs/zh-CN/permissions#managed-settings)。设置该标志不会强制执行 MCP 允许列表。

142</Note>142</Note>

143 143 

144<h3 id="match-servers-by-url-command-or-name">144<h3 id="match-servers-by-url-command-or-name">


160| `allowedMcpServers` | 允许所有服务器 | 不允许任何服务器 | 仅允许匹配的服务器 |160| `allowedMcpServers` | 允许所有服务器 | 不允许任何服务器 | 仅允许匹配的服务器 |

161| `deniedMcpServers` | 不阻止任何服务器 | 不阻止任何服务器 | 阻止匹配的服务器 |161| `deniedMcpServers` | 不阻止任何服务器 | 不阻止任何服务器 | 阻止匹配的服务器 |

162 162 

163请参阅[托管设置中的无效条目](/zh-CN/settings#invalid-entries-in-managed-settings)了解条目未通过架构验证时会发生什么。163请参阅[托管设置中的无效条目](/docs/zh-CN/settings#invalid-entries-in-managed-settings)了解条目未通过架构验证时会发生什么。

164 164 

165<Warning>165<Warning>

166 `serverName` 条目(在任一列表中)不是安全控制。名称是用户在运行 `claude mcp add` 或编辑配置文件时分配的标签,而不是底层服务器,因此用户可以将任何服务器称为 `github`。对于 claude.ai 连接器,名称是 claude.ai 返回的显示名称,可能会更改。要强制执行实际运行的服务器,请添加 `serverCommand` 或 `serverUrl` 条目。166 `serverName` 条目(在任一列表中)不是安全控制。名称是用户在运行 `claude mcp add` 或编辑配置文件时分配的标签,而不是底层服务器,因此用户可以将任何服务器称为 `github`。对于 claude.ai 连接器,名称是 claude.ai 返回的显示名称,可能会更改。要强制执行实际运行的服务器,请添加 `serverCommand` 或 `serverUrl` 条目。


168 168 

169`serverName` 验证在两个列表之间有所不同:169`serverName` 验证在两个列表之间有所不同:

170 170 

171* {/* min-version: 2.1.182 */}在 `deniedMcpServers` 中,`serverName` 接受任何非空字符串,因此您可以按显示名称阻止 [claude.ai 连接器](/zh-CN/mcp#use-mcp-servers-from-claude-ai)。例如,`{ "serverName": "claude.ai Slack" }` 阻止 Slack 连接器。当您需要拒绝对重命名具有鲁棒性时,或当连接器名称冲突并获得 ` (N)` 后缀时,更倾向于使用 `serverUrl` 条目。171* 在 `deniedMcpServers` 中,`serverName` 接受任何非空字符串,因此您可以按显示名称阻止 [claude.ai 连接器](/docs/zh-CN/mcp#use-mcp-servers-from-claude-ai)。例如,`{ "serverName": "claude.ai Slack" }` 阻止 Slack 连接器。当您需要拒绝对重命名具有鲁棒性时,或当连接器名称冲突并获得 ` (N)` 后缀时,更倾向于使用 `serverUrl` 条目。

172* 在 `allowedMcpServers` 中,`serverName` 仅限于字母、数字、连字符和下划线。使用 `serverUrl` 来允许列表 claude.ai 连接器。172* 在 `allowedMcpServers` 中,`serverName` 仅限于字母、数字、连字符和下划线。使用 `serverUrl` 来允许列表 claude.ai 连接器。

173 173 

174要关闭所有 claude.ai 连接器,请参阅 [`disableClaudeAiConnectors`](/zh-CN/mcp#disable-claude-ai-connectors)。174要关闭所有 claude.ai 连接器,请参阅 [`disableClaudeAiConnectors`](/docs/zh-CN/mcp#disable-claude-ai-connectors)。

175 175 

176<h3 id="how-a-server-is-evaluated">176<h3 id="how-a-server-is-evaluated">

177 如何评估服务器177 如何评估服务器


191这些检查中适用三个匹配规则:191这些检查中适用三个匹配规则:

192 192 

193* **命令精确匹配。** 每个参数,按顺序。`["npx", "-y", "server"]` 不匹配 `["npx", "server"]` 或 `["npx", "-y", "server", "--flag"]`。193* **命令精确匹配。** 每个参数,按顺序。`["npx", "-y", "server"]` 不匹配 `["npx", "server"]` 或 `["npx", "-y", "server", "--flag"]`。

194* **`serverCommand` 和 `serverUrl` 值在匹配前展开。** 策略条目和服务器的配置值都经过与 `.mcp.json` 相同的 [`${VAR}` 和 `${VAR:-default}` 展开](/zh-CN/mcp#environment-variable-expansion-in-mcp-json),因此写成 `["${HOME}/bin/server"]` 的条目匹配使用相同引用或展开路径的服务器配置。在 Windows 上,引用在那里设置的环境变量,例如 `${USERPROFILE}` 而不是 `${HOME}`。`serverName` 值按字面匹配,永不展开。194* **`serverCommand` 和 `serverUrl` 值在匹配前展开。** 策略条目和服务器的配置值都经过与 `.mcp.json` 相同的 [`${VAR}` 和 `${VAR:-default}` 展开](/docs/zh-CN/mcp#environment-variable-expansion-in-mcp-json),因此写成 `["${HOME}/bin/server"]` 的条目匹配使用相同引用或展开路径的服务器配置。在 Windows 上,引用在那里设置的环境变量,例如 `${USERPROFILE}` 而不是 `${HOME}`。`serverName` 值按字面匹配,永不展开。

195* **URL 支持 `*` 通配符**在模式中的任何地方,包括方案。主机名匹配不区分大小写,忽略尾部 FQDN 点,因此 `https://Mcp.Example.com/*` 匹配 `https://mcp.example.com/api`。路径保持区分大小写。195* **URL 支持 `*` 通配符**在模式中的任何地方,包括方案。主机名匹配不区分大小写,忽略尾部 FQDN 点,因此 `https://Mcp.Example.com/*` 匹配 `https://mcp.example.com/api`。路径保持区分大小写。

196 196 

197| 模式 | 允许 |197| 模式 | 允许 |


363 监控 MCP 使用情况363 监控 MCP 使用情况

364</h2>364</h2>

365 365 

366当[配置 OpenTelemetry 导出](/zh-CN/monitoring-usage)时,Claude Code 可以记录用户调用的 MCP 服务器和工具。设置 `OTEL_LOG_TOOL_DETAILS=1` 以在工具事件中包含 MCP 服务器和工具名称,然后在您的收集器中聚合它们以查看用户实际连接的服务器。请参阅[监控](/zh-CN/monitoring-usage)以设置导出器和完整的事件架构。366当[配置 OpenTelemetry 导出](/docs/zh-CN/monitoring-usage)时,Claude Code 可以记录用户调用的 MCP 服务器和工具。设置 `OTEL_LOG_TOOL_DETAILS=1` 以在工具事件中包含 MCP 服务器和工具名称,然后在您的收集器中聚合它们以查看用户实际连接的服务器。请参阅[监控](/docs/zh-CN/monitoring-usage)以设置导出器和完整的事件架构。

367 367 

368<h2 id="configuration-summary">368<h2 id="configuration-summary">

369 配置摘要369 配置摘要


374| 表面 | 控制的内容 | 位置 | 如何交付 |374| 表面 | 控制的内容 | 位置 | 如何交付 |

375| :--------------------------- | :---------------------------------------------- | :--------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------- |375| :--------------------------- | :---------------------------------------------- | :--------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------- |

376| `managed-mcp.json` | 固定服务器集,独占控制 | 系统路径:`/Library/Application Support/ClaudeCode/`、`/etc/claude-code/` 或 `C:\Program Files\ClaudeCode\` | MDM、GPO、舰队管理或任何具有管理员权限的进程。无法通过服务器管理的设置设置 |376| `managed-mcp.json` | 固定服务器集,独占控制 | 系统路径:`/Library/Application Support/ClaudeCode/`、`/etc/claude-code/` 或 `C:\Program Files\ClaudeCode\` | MDM、GPO、舰队管理或任何具有管理员权限的进程。无法通过服务器管理的设置设置 |

377| `allowedMcpServers` | 允许的服务器允许列表 | 任何[设置文件](/zh-CN/settings#settings-files);来自每个源的条目合并,除非设置了 `allowManagedMcpServersOnly` | 为了强制执行,一个[托管设置源](/zh-CN/admin-setup#decide-how-settings-reach-devices):服务器管理的设置、`managed-settings.json`、MDM 配置文件或注册表 |377| `allowedMcpServers` | 允许的服务器允许列表 | 任何[设置文件](/docs/zh-CN/settings#settings-files);来自每个源的条目合并,除非设置了 `allowManagedMcpServersOnly` | 为了强制执行,一个[托管设置源](/docs/zh-CN/admin-setup#decide-how-settings-reach-devices):服务器管理的设置、`managed-settings.json`、MDM 配置文件或注册表 |

378| `deniedMcpServers` | 被阻止的服务器拒绝列表 | 任何设置文件;来自每个源的条目合并 | 与 `allowedMcpServers` 相同 |378| `deniedMcpServers` | 被阻止的服务器拒绝列表 | 任何设置文件;来自每个源的条目合并 | 与 `allowedMcpServers` 相同 |

379| `allowManagedMcpServersOnly` | 将允许列表锁定为仅托管源 | 仅托管设置源;该设置在其他地方无效 | 与 `allowedMcpServers` 相同 |379| `allowManagedMcpServersOnly` | 将允许列表锁定为仅托管源 | 仅托管设置源;该设置在其他地方无效 | 与 `allowedMcpServers` 相同 |

380| `allowAllClaudeAiMcps` | 加载 claude.ai 连接器与 `managed-mcp.json` 一起,而不是抑制它们 | 仅托管设置源;该设置在其他地方无效 | 与 `allowedMcpServers` 相同 |380| `allowAllClaudeAiMcps` | 加载 claude.ai 连接器与 `managed-mcp.json` 一起,而不是抑制它们 | 仅托管设置源;该设置在其他地方无效 | 与 `allowedMcpServers` 相同 |


383 相关资源383 相关资源

384</h2>384</h2>

385 385 

386* [决定要强制执行的内容](/zh-CN/admin-setup#decide-what-to-enforce):MCP 限制以及权限规则、沙箱和其他管理控制386* [决定要强制执行的内容](/docs/zh-CN/admin-setup#decide-what-to-enforce):MCP 限制以及权限规则、沙箱和其他管理控制

387* [通过 MCP 将 Claude Code 连接到工具](/zh-CN/mcp):完整的 MCP 参考,包括传输、范围和身份验证387* [通过 MCP 将 Claude Code 连接到工具](/docs/zh-CN/mcp):完整的 MCP 参考,包括传输、范围和身份验证

388* [设置](/zh-CN/settings):设置层次结构以及托管设置如何优先388* [设置](/docs/zh-CN/settings):设置层次结构以及托管设置如何优先

389* [服务器管理的设置](/zh-CN/server-managed-settings):从 Claude.ai 管理控制台交付 `allowedMcpServers` 和 `deniedMcpServers`389* [服务器管理的设置](/docs/zh-CN/server-managed-settings):从 Claude.ai 管理控制台交付 `allowedMcpServers` 和 `deniedMcpServers`

390* [安全](/zh-CN/security):这些控制防御的威胁模型390* [安全](/docs/zh-CN/security):这些控制防御的威胁模型

391* [Claude 企业管理员指南](https://claude.com/resources/tutorials/claude-enterprise-administrator-guide):SSO、SCIM、座位管理和推出剧本391* [Claude 企业管理员指南](https://claude.com/resources/tutorials/claude-enterprise-administrator-guide):SSO、SCIM、座位管理和推出剧本

mcp.md +36 −36

Details

10 10 

11当您发现自己从另一个工具(如问题跟踪器或监控仪表板)复制数据到聊天中时,请连接一个服务器。连接后,Claude 可以直接读取和操作该系统,而不是从您粘贴的内容中工作。11当您发现自己从另一个工具(如问题跟踪器或监控仪表板)复制数据到聊天中时,请连接一个服务器。连接后,Claude 可以直接读取和操作该系统,而不是从您粘贴的内容中工作。

12 12 

13如果您是第一次连接服务器,请从 [MCP 快速入门](/zh-CN/mcp-quickstart) 开始,获取分步演练。本页面是完整参考。13如果您是第一次连接服务器,请从 [MCP 快速入门](/docs/zh-CN/mcp-quickstart) 开始,获取分步演练。本页面是完整参考。

14 14 

15<h2 id="what-you-can-do-with-mcp">15<h2 id="what-you-can-do-with-mcp">

16 使用 MCP 可以做什么16 使用 MCP 可以做什么


23* **查询数据库**:"根据我们的 PostgreSQL 数据库,查找使用功能 ENG-4521 的 10 个随机用户的电子邮件。"23* **查询数据库**:"根据我们的 PostgreSQL 数据库,查找使用功能 ENG-4521 的 10 个随机用户的电子邮件。"

24* **集成设计**:"根据在 Slack 中发布的新 Figma 设计更新我们的标准电子邮件模板"24* **集成设计**:"根据在 Slack 中发布的新 Figma 设计更新我们的标准电子邮件模板"

25* **自动化工作流**:"创建 Gmail 草稿,邀请这 10 个用户参加关于新功能的反馈会议。"25* **自动化工作流**:"创建 Gmail 草稿,邀请这 10 个用户参加关于新功能的反馈会议。"

26* **对外部事件做出反应**:MCP 服务器也可以充当[频道](/zh-CN/channels),将消息推送到您的会话中,因此当您不在时,Claude 可以对 Telegram 消息、Discord 聊天或 webhook 事件做出反应。26* **对外部事件做出反应**:MCP 服务器也可以充当[频道](/docs/zh-CN/channels),将消息推送到您的会话中,因此当您不在时,Claude 可以对 Telegram 消息、Discord 聊天或 webhook 事件做出反应。

27 27 

28<h2 id="find-and-build-mcp-servers">28<h2 id="find-and-build-mcp-servers">

29 查找和构建 MCP 服务器29 查找和构建 MCP 服务器


32在 [Anthropic Directory](https://claude.ai/directory) 中浏览已审核的连接器。Directory 连接器使用与 Claude Code 相同的 MCP 基础设施,因此您可以使用 `claude mcp add` 添加列出的任何远程服务器。32在 [Anthropic Directory](https://claude.ai/directory) 中浏览已审核的连接器。Directory 连接器使用与 Claude Code 相同的 MCP 基础设施,因此您可以使用 `claude mcp add` 添加列出的任何远程服务器。

33 33 

34<Warning>34<Warning>

35 在连接每个服务器之前,请验证您信任该服务器。获取外部内容的服务器可能会使您面临 [提示注入风险](/zh-CN/security#protect-against-prompt-injection)。35 在连接每个服务器之前,请验证您信任该服务器。获取外部内容的服务器可能会使您面临 [提示注入风险](/docs/zh-CN/security#protect-against-prompt-injection)。

36</Warning>36</Warning>

37 37 

38要构建您自己的服务器,请参阅 [MCP 服务器指南](https://modelcontextprotocol.io/docs/develop/build-server) 了解协议基础知识,以及 [Claude 连接器构建文档](https://claude.com/docs/connectors/building) 了解身份验证、测试和 Directory 提交。38要构建您自己的服务器,请参阅 [MCP 服务器指南](https://modelcontextprotocol.io/docs/develop/build-server) 了解协议基础知识,以及 [Claude 连接器构建文档](https://claude.com/docs/connectors/building) 了解身份验证、测试和 Directory 提交。


115 115 

116Claude Code 在生成的服务器的环境中设置 `CLAUDE_PROJECT_DIR`,指向项目根目录,因此您的服务器可以解析项目相对路径,而无需依赖工作目录。这与 hooks 在其 `CLAUDE_PROJECT_DIR` 变量中接收的目录相同。从服务器进程内部读取它,例如 Node 中的 `process.env.CLAUDE_PROJECT_DIR` 或 Python 中的 `os.environ["CLAUDE_PROJECT_DIR"]`。116Claude Code 在生成的服务器的环境中设置 `CLAUDE_PROJECT_DIR`,指向项目根目录,因此您的服务器可以解析项目相对路径,而无需依赖工作目录。这与 hooks 在其 `CLAUDE_PROJECT_DIR` 变量中接收的目录相同。从服务器进程内部读取它,例如 Node 中的 `process.env.CLAUDE_PROJECT_DIR` 或 Python 中的 `os.environ["CLAUDE_PROJECT_DIR"]`。

117 117 

118`CLAUDE_PROJECT_DIR` 是稳定的项目根目录,在会话中途添加或删除工作目录时不会改变。限制自己的文件系统访问到一组允许目录的服务器应该改为实现 MCP `roots/list` 请求。Claude Code 使用会话的启动目录加上您通过 `--add-dir`、`/add-dir` 或 `additionalDirectories` 设置授予的每个[额外工作目录](/zh-CN/permissions#working-directories)来回答 `roots/list`。当该集合改变时,Claude Code 发送 `notifications/roots/list_changed`。在 v2.1.203 之前,`roots/list` 仅返回启动目录,Claude Code 不发送 `notifications/roots/list_changed`。118`CLAUDE_PROJECT_DIR` 是稳定的项目根目录,在会话中途添加或删除工作目录时不会改变。限制自己的文件系统访问到一组允许目录的服务器应该改为实现 MCP `roots/list` 请求。Claude Code 使用会话的启动目录加上您通过 `--add-dir`、`/add-dir` 或 `additionalDirectories` 设置授予的每个[额外工作目录](/docs/zh-CN/permissions#working-directories)来回答 `roots/list`。当该集合改变时,Claude Code 发送 `notifications/roots/list_changed`。在 v2.1.203 之前,`roots/list` 仅返回启动目录,Claude Code 不发送 `notifications/roots/list_changed`。

119 119 

120此变量在服务器的环境中设置,而不是在 Claude Code 自己的环境中,因此在项目或用户范围的 `.mcp.json` `command` 或 `args` 中通过 `${VAR}` 扩展引用它需要一个默认值,例如 `${CLAUDE_PROJECT_DIR:-.}`。插件提供的 MCP 配置直接替换 `${CLAUDE_PROJECT_DIR}`,不需要默认值。120此变量在服务器的环境中设置,而不是在 Claude Code 自己的环境中,因此在项目或用户范围的 `.mcp.json` `command` 或 `args` 中通过 `${VAR}` 扩展引用它需要一个默认值,例如 `${CLAUDE_PROJECT_DIR:-.}`。插件提供的 MCP 配置直接替换 `${CLAUDE_PROJECT_DIR}`,不需要默认值。

121 121 


180 180 

181来自 `.mcp.json` 的项目范围服务器如果等待您的批准,会在 `claude mcp list` 中显示为 `⏸ 待批准`。运行 `claude` 交互式命令来审查和批准它们。`claude mcp get <name>` 将待批准的服务器显示为 `⏸ 待批准`,将被拒绝的服务器显示为 `✗ 已拒绝`。181来自 `.mcp.json` 的项目范围服务器如果等待您的批准,会在 `claude mcp list` 中显示为 `⏸ 待批准`。运行 `claude` 交互式命令来审查和批准它们。`claude mcp get <name>` 将待批准的服务器显示为 `⏸ 待批准`,将被拒绝的服务器显示为 `✗ 已拒绝`。

182 182 

183从 v2.1.196 开始,`claude mcp list` 和 `claude mcp get` 仅从未检入存储库的设置文件中读取 `.mcp.json` 批准,直到您通过在其中运行 `claude` 并接受工作区信任对话框来信任工作区。克隆的存储库无法批准其自己的服务器:提交到项目的 `.claude/settings.json` 的 [`enableAllProjectMcpServers` 或 `enabledMcpjsonServers`](/zh-CN/settings#available-settings) 在不受信任的文件夹中被忽略,服务器保持在 `⏸ 待批准` 状态,而不是被连接和健康检查。183从 v2.1.196 开始,`claude mcp list` 和 `claude mcp get` 仅从未检入存储库的设置文件中读取 `.mcp.json` 批准,直到您通过在其中运行 `claude` 并接受工作区信任对话框来信任工作区。克隆的存储库无法批准其自己的服务器:提交到项目的 `.claude/settings.json` 的 [`enableAllProjectMcpServers` 或 `enabledMcpjsonServers`](/docs/zh-CN/settings#available-settings) 在不受信任的文件夹中被忽略,服务器保持在 `⏸ 待批准` 状态,而不是被连接和健康检查。

184 184 

185这些来源的批准仍然适用于不受信任的文件夹:185这些来源的批准仍然适用于不受信任的文件夹:

186 186 


188* 托管设置188* 托管设置

189* 使用 `--settings` 传递的设置189* 使用 `--settings` 传递的设置

190 190 

191未跟踪的 `.claude/settings.local.json` 中的批准也适用,但仅在您接受该文件夹或其父目录之一的信任对话框后:Claude Code 运行 git 来检查文件是否被跟踪,并且仅在受信任的文件夹中运行该检查。在您从未信任过的文件夹中,文件的批准会等待信任对话框,除非该文件夹是您自己的配置主目录:您的主目录,或一个您已将其 `.claude` 设置为 [`CLAUDE_CONFIG_DIR`](/zh-CN/env-vars) 的目录。在 v2.1.207 之前,未跟踪的 `.claude/settings.local.json` 在您从未信任过的文件夹中批准了服务器。191未跟踪的 `.claude/settings.local.json` 中的批准也适用,但仅在您接受该文件夹或其父目录之一的信任对话框后:Claude Code 运行 git 来检查文件是否被跟踪,并且仅在受信任的文件夹中运行该检查。在您从未信任过的文件夹中,文件的批准会等待信任对话框,除非该文件夹是您自己的配置主目录:您的主目录,或一个您已将其 `.claude` 设置为 [`CLAUDE_CONFIG_DIR`](/docs/zh-CN/env-vars) 的目录。在 v2.1.207 之前,未跟踪的 `.claude/settings.local.json` 在您从未信任过的文件夹中批准了服务器。

192 192 

193任何设置文件中的 `disabledMcpjsonServers` 条目仍然会拒绝该服务器。193任何设置文件中的 `disabledMcpjsonServers` 条目仍然会拒绝该服务器。

194 194 

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

196 196 

197配置为空 `url` 的远程服务器在 `/mcp`、`claude mcp list` 和[`/plugin`](/zh-CN/plugins)管理器中显示为 `未配置`,Claude Code 不会尝试连接到它。插件可以包含一个占位符条目,如下所示,用于您稍后配置的连接器,因此 Claude Code 不会将其报告为错误或设置问题。服务器在 `/mcp` 中的详细视图读取 `未为此服务器配置 URL`;设置条目的 `url` 以连接它。在 v2.1.208 之前,Claude Code 将空 `url` 报告为配置问题,并提示重新连接。197配置为空 `url` 的远程服务器在 `/mcp`、`claude mcp list` 和[`/plugin`](/docs/zh-CN/plugins)管理器中显示为 `未配置`,Claude Code 不会尝试连接到它。插件可以包含一个占位符条目,如下所示,用于您稍后配置的连接器,因此 Claude Code 不会将其报告为错误或设置问题。服务器在 `/mcp` 中的详细视图读取 `未为此服务器配置 URL`;设置条目的 `url` 以连接它。在 v2.1.208 之前,Claude Code 将空 `url` 报告为配置问题,并提示重新连接。

198 198 

199如果您的请求需要来自仍在后台连接的服务器的工具,Claude 会在继续之前等待该服务器。启用[工具搜索](#scale-with-mcp-tool-search)(这是默认设置)后,等待发生在 `ToolSearch` 调用内部。在没有工具搜索的配置中,例如 Google Cloud 的 Agent Platform、自定义 `ANTHROPIC_BASE_URL` 或 `ENABLE_TOOL_SEARCH=false`,Claude 改为使用 `WaitForMcpServers` 工具。199如果您的请求需要来自仍在后台连接的服务器的工具,Claude 会在继续之前等待该服务器。启用[工具搜索](#scale-with-mcp-tool-search)(这是默认设置)后,等待发生在 `ToolSearch` 调用内部。在没有工具搜索的配置中,例如 Google Cloud 的 Agent Platform、自定义 `ANTHROPIC_BASE_URL` 或 `ENABLE_TOOL_SEARCH=false`,Claude 改为使用 `WaitForMcpServers` 工具。

200 200 

201某些服务器名称为 Claude Code 的内置服务器保留:`workspace`、`claude-in-chrome`、`computer-use`、`Claude Preview` 和 `Claude Browser`。如果您的配置定义了具有保留名称的服务器,Claude Code 会在加载时跳过它,并显示一条警告,要求您重命名它。`claude mcp add` 会以错误拒绝保留名称。201某些服务器名称为 Claude Code 的内置服务器保留:`workspace`、`claude-in-chrome`、`computer-use`、`Claude Preview` 和 `Claude Browser`。如果您的配置定义了具有保留名称的服务器,Claude Code 会在加载时跳过它,并显示一条警告,要求您重命名它。`claude mcp add` 会以错误拒绝保留名称。

202 202 

203`Claude Preview` 和 `Claude Browser` 都命名了 [Claude Code 桌面应用的预览窗格](/zh-CN/desktop#preview-your-app)使用的内置服务器。在 v2.1.205 之前,`Claude Browser` 不是保留的,因此用户配置的服务器可以在该名称下注册。203`Claude Preview` 和 `Claude Browser` 都命名了 [Claude Code 桌面应用的预览窗格](/docs/zh-CN/desktop#preview-your-app)使用的内置服务器。在 v2.1.205 之前,`Claude Browser` 不是保留的,因此用户配置的服务器可以在该名称下注册。

204 204 

205<h3 id="dynamic-tool-updates">205<h3 id="dynamic-tool-updates">

206 动态工具更新206 动态工具更新


224 使用频道推送消息224 使用频道推送消息

225</h3>225</h3>

226 226 

227MCP 服务器也可以直接将消息推送到您的会话中,以便 Claude 可以对外部事件(如 CI 结果、监控警报或聊天消息)做出反应。要启用此功能,您的服务器声明 `claude/channel` 功能,并在启动时使用 `--channels` 标志选择加入。请参阅 [Channels](/zh-CN/channels) 以使用官方支持的频道,或 [Channels reference](/zh-CN/channels-reference) 以构建您自己的频道。227MCP 服务器也可以直接将消息推送到您的会话中,以便 Claude 可以对外部事件(如 CI 结果、监控警报或聊天消息)做出反应。要启用此功能,您的服务器声明 `claude/channel` 功能,并在启动时使用 `--channels` 标志选择加入。请参阅 [Channels](/docs/zh-CN/channels) 以使用官方支持的频道,或 [Channels reference](/docs/zh-CN/channels-reference) 以构建您自己的频道。

228 228 

229<Tip>229<Tip>

230 提示:230 提示:


241 * 使用 `/mcp` 对需要 OAuth 2.0 身份验证的远程服务器进行身份验证241 * 使用 `/mcp` 对需要 OAuth 2.0 身份验证的远程服务器进行身份验证

242</Tip>242</Tip>

243 243 

244每个服务器的 `timeout` 是每个工具调用的硬时钟限制,来自服务器的进度通知不会延长它。低于 1000 的值被忽略,并回退到 `MCP_TOOL_TIMEOUT`,或在该变量未设置时回退到其约 28 小时的默认值。对于 HTTP、SSE 或 [claude.ai connector](/zh-CN/mcp#use-mcp-servers-from-claude-ai) 服务器,还有第二个每请求计时器,涵盖从每个请求到服务器第一个响应字节的时间。该计时器为 60 秒,除非您设置每个服务器的 `timeout` 或 `MCP_TOOL_TIMEOUT`;将任一设置为 60 秒或更高会将每请求计时器提高到该值,较低的值不会缩短它,未设置的 `MCP_TOOL_TIMEOUT` 的 28 小时默认值永远不会影响它。Stdio 和 WebSocket 服务器没有每请求计时器。{/* min-version: 2.1.162 */}在 v2.1.162 之前,低于 1000 的值被限制为一秒。244每个服务器的 `timeout` 是每个工具调用的硬时钟限制,来自服务器的进度通知不会延长它。低于 1000 的值被忽略,并回退到 `MCP_TOOL_TIMEOUT`,或在该变量未设置时回退到其约 28 小时的默认值。对于 HTTP、SSE 或 [claude.ai connector](/docs/zh-CN/mcp#use-mcp-servers-from-claude-ai) 服务器,还有第二个每请求计时器,涵盖从每个请求到服务器第一个响应字节的时间。该计时器为 60 秒,除非您设置每个服务器的 `timeout` 或 `MCP_TOOL_TIMEOUT`;将任一设置为 60 秒或更高会将每请求计时器提高到该值,较低的值不会缩短它,未设置的 `MCP_TOOL_TIMEOUT` 的 28 小时默认值永远不会影响它。Stdio 和 WebSocket 服务器没有每请求计时器。在 v2.1.162 之前,低于 1000 的值被限制为一秒。

245 245 

246每个服务器至少 1000 的 `timeout` 也充当下面描述的空闲超时的下限:Claude Code 永远不会因为空闲而在每个服务器的 `timeout` 之前中止该服务器的工具调用。需要 Claude Code v2.1.203 或更高版本。246每个服务器至少 1000 的 `timeout` 也充当下面描述的空闲超时的下限:Claude Code 永远不会因为空闲而在每个服务器的 `timeout` 之前中止该服务器的工具调用。需要 Claude Code v2.1.203 或更高版本。

247 247 

248对 MCP 服务器的工具调用如果在空闲窗口内没有发送响应和进度通知,将以错误中止,而不是等待时钟限制。空闲超时需要 Claude Code v2.1.187 或更高版本。{/* min-version: 2.1.203 */}它适用于除 IDE 服务器和 SDK 进程内服务器之外的每种服务器类型。空闲窗口对于 HTTP、SSE、WebSocket 和 [claude.ai connector](#use-mcp-servers-from-claude-ai) 服务器默认为五分钟,对于 stdio 服务器默认为 30 分钟。在 v2.1.203 之前,stdio 服务器不受空闲超时的限制。248对 MCP 服务器的工具调用如果在空闲窗口内没有发送响应和进度通知,将以错误中止,而不是等待时钟限制。空闲超时需要 Claude Code v2.1.187 或更高版本。它适用于除 IDE 服务器和 SDK 进程内服务器之外的每种服务器类型。空闲窗口对于 HTTP、SSE、WebSocket 和 [claude.ai connector](#use-mcp-servers-from-claude-ai) 服务器默认为五分钟,对于 stdio 服务器默认为 30 分钟。在 v2.1.203 之前,stdio 服务器不受空闲超时的限制。

249 249 

250在毫秒中设置 [`CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT`](/zh-CN/env-vars) 环境变量以更改空闲窗口,或将其设置为 `0` 以禁用检查。250在毫秒中设置 [`CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT`](/docs/zh-CN/env-vars) 环境变量以更改空闲窗口,或将其设置为 `0` 以禁用检查。

251 251 

252<h3 id="plugin-provided-mcp-servers">252<h3 id="plugin-provided-mcp-servers">

253 插件提供的 MCP 服务器253 插件提供的 MCP 服务器

254</h3>254</h3>

255 255 

256[Plugins](/zh-CN/plugins) 可以捆绑 MCP 服务器,在启用插件时自动提供工具和集成。插件 MCP 服务器的工作方式与用户配置的服务器相同。256[Plugins](/docs/zh-CN/plugins) 可以捆绑 MCP 服务器,在启用插件时自动提供工具和集成。插件 MCP 服务器的工作方式与用户配置的服务器相同。

257 257 

258**插件 MCP 服务器的工作原理**:258**插件 MCP 服务器的工作原理**:

259 259 


297**插件 MCP 功能**:297**插件 MCP 功能**:

298 298 

299* **自动生命周期**:在会话启动时,启用的插件的服务器会自动连接。如果您在会话期间启用或禁用插件,请运行 `/reload-plugins` 以连接或断开其 MCP 服务器299* **自动生命周期**:在会话启动时,启用的插件的服务器会自动连接。如果您在会话期间启用或禁用插件,请运行 `/reload-plugins` 以连接或断开其 MCP 服务器

300* **路径占位符**:`${CLAUDE_PLUGIN_ROOT}` 解析为插件的安装目录,`${CLAUDE_PLUGIN_DATA}` 解析为其[持久状态](/zh-CN/plugins-reference#persistent-data-directory)目录,`${CLAUDE_PROJECT_DIR}` 解析为稳定的项目根目录。替换适用于:300* **路径占位符**:`${CLAUDE_PLUGIN_ROOT}` 解析为插件的安装目录,`${CLAUDE_PLUGIN_DATA}` 解析为其[持久状态](/docs/zh-CN/plugins-reference#persistent-data-directory)目录,`${CLAUDE_PROJECT_DIR}` 解析为稳定的项目根目录。替换适用于:

301 * `stdio` 服务器:`command`、`args`、`env`301 * `stdio` 服务器:`command`、`args`、`env`

302 * `http`、`sse` 和 `ws` 服务器:`url`、`headers` 和 `headersHelper`。{/* min-version: 2.1.195 */}在 v2.1.195 之前,`headersHelper` 将占位符作为字面字符串传递302 * `http`、`sse` 和 `ws` 服务器:`url`、`headers` 和 `headersHelper`。在 v2.1.195 之前,`headersHelper` 将占位符作为字面字符串传递

303* **用户环境访问**:访问与手动配置的服务器相同的环境变量303* **用户环境访问**:访问与手动配置的服务器相同的环境变量

304* **多种传输类型**:支持 stdio、SSE、HTTP 和 WebSocket 传输,尽管传输支持可能因服务器而异304* **多种传输类型**:支持 stdio、SSE、HTTP 和 WebSocket 传输,尽管传输支持可能因服务器而异

305 305 


320mcp__plugin_my-plugin_database-tools__query320mcp__plugin_my-plugin_database-tools__query

321```321```

322 322 

323在[权限规则](/zh-CN/permissions)中、技能的 `allowed-tools` 列表中、[子代理的 `tools` 字段](/zh-CN/sub-agents#available-tools)中或[钩子匹配器](/zh-CN/hooks#match-mcp-tools)中引用工具时,使用此完整名称。针对裸服务器密钥(如 `mcp__database-tools__.*`)编写的钩子匹配器永远不会对插件捆绑的服务器触发。323在[权限规则](/docs/zh-CN/permissions)中、技能的 `allowed-tools` 列表中、[子代理的 `tools` 字段](/docs/zh-CN/sub-agents#available-tools)中或[钩子匹配器](/docs/zh-CN/hooks#match-mcp-tools)中引用工具时,使用此完整名称。针对裸服务器密钥(如 `mcp__database-tools__.*`)编写的钩子匹配器永远不会对插件捆绑的服务器触发。

324 324 

325服务器本身在作用域名称 `plugin:<plugin-name>:<server-name>`(如 `plugin:my-plugin:database-tools`)下注册。在需要配置的服务器名称的地方使用该名称,例如[`mcp_tool` 钩子的 `server` 字段](/zh-CN/hooks#mcp-tool-hook-fields)。325服务器本身在作用域名称 `plugin:<plugin-name>:<server-name>`(如 `plugin:my-plugin:database-tools`)下注册。在需要配置的服务器名称的地方使用该名称,例如[`mcp_tool` 钩子的 `server` 字段](/docs/zh-CN/hooks#mcp-tool-hook-fields)。

326 326 

327**插件 MCP 服务器的优势**:327**插件 MCP 服务器的优势**:

328 328 


330* **自动设置**:无需手动 MCP 配置330* **自动设置**:无需手动 MCP 配置

331* **团队一致性**:安装插件时每个人都获得相同的工具331* **团队一致性**:安装插件时每个人都获得相同的工具

332 332 

333有关使用插件捆绑 MCP 服务器的详细信息,请参阅[插件组件参考](/zh-CN/plugins-reference#mcp-servers)。333有关使用插件捆绑 MCP 服务器的详细信息,请参阅[插件组件参考](/docs/zh-CN/plugins-reference#mcp-servers)。

334 334 

335<h2 id="mcp-installation-scopes">335<h2 id="mcp-installation-scopes">

336 MCP 安装范围336 MCP 安装范围


351本地范围是默认范围。本地范围的服务器仅在您添加它的项目中加载,并对您保持私密。Claude Code 将其存储在 `~/.claude.json` 中该项目的路径下,因此相同的服务器不会出现在您的其他项目中。对个人开发服务器、实验配置或包含您不想在版本控制中的凭据的服务器使用本地范围。351本地范围是默认范围。本地范围的服务器仅在您添加它的项目中加载,并对您保持私密。Claude Code 将其存储在 `~/.claude.json` 中该项目的路径下,因此相同的服务器不会出现在您的其他项目中。对个人开发服务器、实验配置或包含您不想在版本控制中的凭据的服务器使用本地范围。

352 352 

353<Note>353<Note>

354 MCP 服务器的"本地范围"术语与一般本地设置不同。MCP 本地范围的服务器存储在 `~/.claude.json`(您的主目录)中,而一般本地设置使用 `.claude/settings.local.json`(在项目目录中)。有关设置文件位置的详细信息,请参阅[设置](/zh-CN/settings#settings-files)。354 MCP 服务器的"本地范围"术语与一般本地设置不同。MCP 本地范围的服务器存储在 `~/.claude.json`(您的主目录)中,而一般本地设置使用 `.claude/settings.local.json`(在项目目录中)。有关设置文件位置的详细信息,请参阅[设置](/docs/zh-CN/settings#settings-files)。

355</Note>355</Note>

356 356 

357```bash theme={null}357```bash theme={null}


4261. 本地范围4261. 本地范围

4272. 项目范围4272. 项目范围

4283. 用户范围4283. 用户范围

4294. [插件提供的服务器](/zh-CN/plugins)4294. [插件提供的服务器](/docs/zh-CN/plugins)

4305. [claude.ai 连接器](#use-mcp-servers-from-claude-ai)4305. [claude.ai 连接器](#use-mcp-servers-from-claude-ai)

431 431 

432三个范围按名称匹配重复项。插件和连接器按端点匹配,因此指向与上述服务器相同的 URL 或命令的连接器被视为重复项。432三个范围按名称匹配重复项。插件和连接器按端点匹配,因此指向与上述服务器相同的 URL 或命令的连接器被视为重复项。


805| :---------------------------- | :---------------------------------------------------------- |805| :---------------------------- | :---------------------------------------------------------- |

806| `CLAUDE_CODE_MCP_SERVER_NAME` | MCP 服务器的名称 |806| `CLAUDE_CODE_MCP_SERVER_NAME` | MCP 服务器的名称 |

807| `CLAUDE_CODE_MCP_SERVER_URL` | MCP 服务器的 URL |807| `CLAUDE_CODE_MCP_SERVER_URL` | MCP 服务器的 URL |

808| `CLAUDE_PLUGIN_ROOT` | 插件的根目录。仅当[插件](/zh-CN/plugins-reference#mcp-servers)提供服务器时设置 |808| `CLAUDE_PLUGIN_ROOT` | 插件的根目录。仅当[插件](/docs/zh-CN/plugins-reference#mcp-servers)提供服务器时设置 |

809 809 

810使用这些来编写一个为多个 MCP 服务器服务的单个助手脚本。810使用这些来编写一个为多个 MCP 服务器服务的单个助手脚本。

811 811 

812对于插件提供的服务器,助手也会在其工作目录设置为插件根目录的情况下运行,因此相对 `headersHelper` 路径在插件目录内解析,而不是针对会话的工作目录。需要 Claude Code v2.1.195 或更高版本。812对于插件提供的服务器,助手也会在其工作目录设置为插件根目录的情况下运行,因此相对 `headersHelper` 路径在插件目录内解析,而不是针对会话的工作目录。需要 Claude Code v2.1.195 或更高版本。

813 813 

814插件提供的 `headersHelper` 无法引用插件的 [`${user_config.*}`](/zh-CN/plugins-reference#user-configuration) 值,因为命令通过 shell 运行。Claude Code 报告服务器配置错误,并显示[错误](/zh-CN/errors#plugin-command-references-user-config),不替换该值。将 `${user_config.KEY}` 放在服务器的 `headers` 字段中,该字段不会被 shell 解析,或让助手脚本从其自己的环境或配置文件中读取该值。在 v2.1.207 之前,`headersHelper` 替换了 `${user_config.*}` 值。814插件提供的 `headersHelper` 无法引用插件的 [`${user_config.*}`](/docs/zh-CN/plugins-reference#user-configuration) 值,因为命令通过 shell 运行。Claude Code 报告服务器配置错误,并显示[错误](/docs/zh-CN/errors#plugin-command-references-user-config),不替换该值。将 `${user_config.KEY}` 放在服务器的 `headers` 字段中,该字段不会被 shell 解析,或让助手脚本从其自己的环境或配置文件中读取该值。在 v2.1.207 之前,`headersHelper` 替换了 `${user_config.*}` 值。

815 815 

816<Note>816<Note>

817 `headersHelper` 执行任意 shell 命令。在项目或本地范围定义时,它仅在您接受工作区信任对话框后运行。817 `headersHelper` 执行任意 shell 命令。在项目或本地范围定义时,它仅在您接受工作区信任对话框后运行。


920 920 

921从 v2.1.161 开始,您从未登录过的连接器会折叠在 claude.ai 部分末尾的 `Show unused connectors` 行后面,因此组织预配的列表不会填满面板。选择该行以展开它们。您之前登录过的连接器即使当前需要重新身份验证,也会保持可见。921从 v2.1.161 开始,您从未登录过的连接器会折叠在 claude.ai 部分末尾的 `Show unused connectors` 行后面,因此组织预配的列表不会填满面板。选择该行以展开它们。您之前登录过的连接器即使当前需要重新身份验证,也会保持可见。

922 922 

923Claude.ai 连接器仅在您的活跃[身份验证方法](/zh-CN/authentication#authentication-precedence)是您的 claude.ai 订阅时才会被获取。当 `ANTHROPIC_API_KEY`、`ANTHROPIC_AUTH_TOKEN`、`apiKeyHelper` 或第三方提供商(如 Amazon Bedrock 或 Google Cloud 的 Agent Platform)处于活跃状态时,它们不会被加载,即使您之前运行过 `/login`。如果 `/mcp` 未列出您添加的连接器,请运行 `/status` 以确认哪种身份验证方法处于活跃状态,取消设置该环境变量或删除 `apiKeyHelper` 设置,然后运行 `/login` 以选择您的 claude.ai 帐户。923Claude.ai 连接器仅在您的活跃[身份验证方法](/docs/zh-CN/authentication#authentication-precedence)是您的 claude.ai 订阅时才会被获取。当 `ANTHROPIC_API_KEY`、`ANTHROPIC_AUTH_TOKEN`、`apiKeyHelper` 或第三方提供商(如 Amazon Bedrock 或 Google Cloud 的 Agent Platform)处于活跃状态时,它们不会被加载,即使您之前运行过 `/login`。如果 `/mcp` 未列出您添加的连接器,请运行 `/status` 以确认哪种身份验证方法处于活跃状态,取消设置该环境变量或删除 `apiKeyHelper` 设置,然后运行 `/login` 以选择您的 claude.ai 帐户。

924 924 

925您在 Claude Code 中添加的服务器优先于指向相同 URL 的 claude.ai 连接器。发生这种情况时,`/mcp` 会将连接器列为隐藏,并显示如何删除重复项(如果您更希望使用连接器)。925您在 Claude Code 中添加的服务器优先于指向相同 URL 的 claude.ai 连接器。发生这种情况时,`/mcp` 会将连接器列为隐藏,并显示如何删除重复项(如果您更希望使用连接器)。

926 926 


932 932 

933您的组织可以对 [claude.ai connectors](https://claude.com/docs/connectors) 设置按工具控制。Claude Code 在启动时读取这些设置并在本地强制执行。运行 `/mcp` 以查看哪个设置适用于连接器上的每个工具。933您的组织可以对 [claude.ai connectors](https://claude.com/docs/connectors) 设置按工具控制。Claude Code 在启动时读取这些设置并在本地强制执行。运行 `/mcp` 以查看哪个设置适用于连接器上的每个工具。

934 934 

935* **工具设置为 `ask`**:Claude Code 会在每次调用时提示,原因是 `Your organization requires approval for this tool`。即使在 `acceptEdits`、`auto` 和 `bypassPermissions` [permission modes](/zh-CN/permissions#permission-modes) 中,提示也会出现,并且永远不会提供记住您选择的选项。匹配该工具的 [Allow rules](/zh-CN/permissions) 也不会跳过提示。在 `dontAsk` 模式中(从不提示),Claude Code 会改为拒绝该调用。935* **工具设置为 `ask`**:Claude Code 会在每次调用时提示,原因是 `Your organization requires approval for this tool`。即使在 `acceptEdits`、`auto` 和 `bypassPermissions` [permission modes](/docs/zh-CN/permissions#permission-modes) 中,提示也会出现,并且永远不会提供记住您选择的选项。匹配该工具的 [Allow rules](/docs/zh-CN/permissions) 也不会跳过提示。在 `dontAsk` 模式中(从不提示),Claude Code 会改为拒绝该调用。

936* **工具设置为 `blocked`**:Claude Code 在 Claude 看到之前过滤掉该工具,因此它永远不会出现在工具列表中。936* **工具设置为 `blocked`**:Claude Code 在 Claude 看到之前过滤掉该工具,因此它永远不会出现在工具列表中。

937 937 

938强制执行这些控制需要 Claude Code v2.1.129 或更高版本。早期版本会忽略这些设置并应用标准权限流程。938强制执行这些控制需要 Claude Code v2.1.129 或更高版本。早期版本会忽略这些设置并应用标准权限流程。


941 禁用 claude.ai 连接器941 禁用 claude.ai 连接器

942</h3>942</h3>

943 943 

944要在 Claude Code 中禁用 claude.ai MCP 服务器,请将 [`disableClaudeAiConnectors`](/zh-CN/settings#available-settings) 设置为 `true`(在任何设置范围内):944要在 Claude Code 中禁用 claude.ai MCP 服务器,请将 [`disableClaudeAiConnectors`](/docs/zh-CN/settings#available-settings) 设置为 `true`(在任何设置范围内):

945 945 

946```json theme={null}946```json theme={null}

947{947{


957ENABLE_CLAUDEAI_MCP_SERVERS=false claude957ENABLE_CLAUDEAI_MCP_SERVERS=false claude

958```958```

959 959 

960要阻止单个 claude.ai 连接器而不是全部,请按名称或 URL 模式将它们添加到 [`deniedMcpServers`](/zh-CN/managed-mcp)。例如,`serverName` 条目 `"claude.ai Slack"` 会阻止 Slack 连接器。要仅为当前项目切换连接器的开启或关闭,请使用 `/mcp` 面板。960要阻止单个 claude.ai 连接器而不是全部,请按名称或 URL 模式将它们添加到 [`deniedMcpServers`](/docs/zh-CN/managed-mcp)。例如,`serverName` 条目 `"claude.ai Slack"` 会阻止 Slack 连接器。要仅为当前项目切换连接器的开启或关闭,请使用 `/mcp` 面板。

961 961 

962<Note>962<Note>

963 这些客户端设置管理本地 Claude Code 会话。在 [Claude Code on the web](/zh-CN/claude-code-on-the-web) 会话中,claude.ai 连接器由远程主机预配,并作为显式 `--mcp-config` 条目到达,因此 `disableClaudeAiConnectors` 不适用。连接器 URL 也通过会话代理重写,因此针对供应商 URL 的 `deniedMcpServers` `serverUrl` 模式将不匹配。从您的 claude.ai 组织设置管理云会话可以使用哪些连接器。963 这些客户端设置管理本地 Claude Code 会话。在 [Claude Code on the web](/docs/zh-CN/claude-code-on-the-web) 会话中,claude.ai 连接器由远程主机预配,并作为显式 `--mcp-config` 条目到达,因此 `disableClaudeAiConnectors` 不适用。连接器 URL 也通过会话代理重写,因此针对供应商 URL 的 `deniedMcpServers` `serverUrl` 模式将不匹配。从您的 claude.ai 组织设置管理云会话可以使用哪些连接器。

964</Note>964</Note>

965 965 

966<h2 id="use-claude-code-as-an-mcp-server">966<h2 id="use-claude-code-as-an-mcp-server">


1093 1093 

1094如果您正在构建 MCP 服务器,您可以通过在工具的 `tools/list` 响应条目中将 `_meta["anthropic/requiresUserInteraction"]` 设置为 `true` 来标记工具需要每次调用时的明确批准。该值必须是 JSON 布尔值 `true`;任何其他值都被忽略。1094如果您正在构建 MCP 服务器,您可以通过在工具的 `tools/list` 响应条目中将 `_meta["anthropic/requiresUserInteraction"]` 设置为 `true` 来标记工具需要每次调用时的明确批准。该值必须是 JSON 布尔值 `true`;任何其他值都被忽略。

1095 1095 

1096Claude Code 在每次调用时显示该工具的权限提示,即使在 `acceptEdits`、`auto` 和 `bypassPermissions` [权限模式](/zh-CN/permissions#permission-modes) 中,并且不为其提供"不再询问"选项。[允许规则](/zh-CN/permissions#permission-rule-syntax)与工具匹配也不会跳过提示。在 `dontAsk` 模式中(从不提示),Claude Code 改为拒绝调用。1096Claude Code 在每次调用时显示该工具的权限提示,即使在 `acceptEdits`、`auto` 和 `bypassPermissions` [权限模式](/docs/zh-CN/permissions#permission-modes) 中,并且不为其提供"不再询问"选项。[允许规则](/docs/zh-CN/permissions#permission-rule-syntax)与工具匹配也不会跳过提示。在 `dontAsk` 模式中(从不提示),Claude Code 改为拒绝调用。

1097 1097 

1098提示必须到达一个人。在非交互模式下使用 [`--permission-prompt-tool`](/zh-CN/cli-reference#cli-flags),标记工具的 `allow` 结果从提示工具转换为拒绝,消息为 `MCP tool requires user interaction; not supported via --permission-prompt-tool`。Agent SDK 的 [`canUseTool` 回调](/zh-CN/agent-sdk/permissions)确实接收这些调用并可以批准它们,因为 SDK 主机应该向用户显示它们。1098提示必须到达一个人。在非交互模式下使用 [`--permission-prompt-tool`](/docs/zh-CN/cli-reference#cli-flags),标记工具的 `allow` 结果从提示工具转换为拒绝,消息为 `MCP tool requires user interaction; not supported via --permission-prompt-tool`。Agent SDK 的 [`canUseTool` 回调](/docs/zh-CN/agent-sdk/permissions)确实接收这些调用并可以批准它们,因为 SDK 主机应该向用户显示它们。

1099 1099 

1100对于权限提示本身就是重点的工具,请使用此功能,例如同意或访问授予步骤,其中自动批准意味着没有人类曾经同意。来自同一服务器的其他工具保持其正常权限行为。1100对于权限提示本身就是重点的工具,请使用此功能,例如同意或访问授予步骤,其中自动批准意味着没有人类曾经同意。来自同一服务器的其他工具保持其正常权限行为。

1101 1101 


1113 1113 

1114`anthropic/requiresUserInteraction` 注释需要 Claude Code v2.1.199 或更高版本。较早的版本忽略它并应用标准权限流程。1114`anthropic/requiresUserInteraction` 注释需要 Claude Code v2.1.199 或更高版本。较早的版本忽略它并应用标准权限流程。

1115 1115 

1116当会话连接到[远程控制](/zh-CN/remote-control)或 SDK 主机时,Claude Code 将权限请求标记为需要用户交互,因此客户端向您显示工具的权限提示,而不是一键批准操作。1116当会话连接到[远程控制](/docs/zh-CN/remote-control)或 SDK 主机时,Claude Code 将权限请求标记为需要用户交互,因此客户端向您显示工具的权限提示,而不是一键批准操作。

1117 1117 

1118<h2 id="respond-to-mcp-elicitation-requests">1118<h2 id="respond-to-mcp-elicitation-requests">

1119 响应 MCP 引发请求1119 响应 MCP 引发请求


1126* **表单模式**:Claude Code 显示一个对话框,其中包含服务器定义的表单字段(例如,用户名和密码提示)。填写字段并提交。1126* **表单模式**:Claude Code 显示一个对话框,其中包含服务器定义的表单字段(例如,用户名和密码提示)。填写字段并提交。

1127* **URL 模式**:Claude Code 打开浏览器 URL 以进行身份验证或批准。在浏览器中完成流程,然后在 CLI 中确认。1127* **URL 模式**:Claude Code 打开浏览器 URL 以进行身份验证或批准。在浏览器中完成流程,然后在 CLI 中确认。

1128 1128 

1129要自动响应引发请求而不显示对话框,请使用 [`Elicitation` hook](/zh-CN/hooks#elicitation)。1129要自动响应引发请求而不显示对话框,请使用 [`Elicitation` hook](/docs/zh-CN/hooks#elicitation)。

1130 1130 

1131如果您正在构建使用引发的 MCP 服务器,请参阅 [MCP 引发规范](https://modelcontextprotocol.io/docs/learn/client-concepts#elicitation)以了解协议详细信息和架构示例。1131如果您正在构建使用引发的 MCP 服务器,请参阅 [MCP 引发规范](https://modelcontextprotocol.io/docs/learn/client-concepts#elicitation)以了解协议详细信息和架构示例。

1132 1132 


1193 对于 MCP 服务器作者1193 对于 MCP 服务器作者

1194</h3>1194</h3>

1195 1195 

1196如果您正在构建 MCP 服务器,启用工具搜索时服务器说明字段会变得更有用。服务器说明可帮助 Claude 了解何时搜索您的工具,类似于 [skills](/zh-CN/skills) 的工作方式。1196如果您正在构建 MCP 服务器,启用工具搜索时服务器说明字段会变得更有用。服务器说明可帮助 Claude 了解何时搜索您的工具,类似于 [skills](/docs/zh-CN/skills) 的工作方式。

1197 1197 

1198添加清晰、描述性的服务器说明,说明:1198添加清晰、描述性的服务器说明,说明:

1199 1199 


1209 1209 

1210工具搜索默认启用:MCP 工具被延迟并按需发现。Claude Code 在 Google Cloud 的 Agent Platform 上默认禁用它。当 `ANTHROPIC_BASE_URL` 指向非第一方主机时,它也被禁用,因为大多数代理不转发 `tool_reference` 块。显式设置 `ENABLE_TOOL_SEARCH` 以覆盖任一回退。1210工具搜索默认启用:MCP 工具被延迟并按需发现。Claude Code 在 Google Cloud 的 Agent Platform 上默认禁用它。当 `ANTHROPIC_BASE_URL` 指向非第一方主机时,它也被禁用,因为大多数代理不转发 `tool_reference` 块。显式设置 `ENABLE_TOOL_SEARCH` 以覆盖任一回退。

1211 1211 

1212设置 [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS`](/zh-CN/env-vars) 保持工具搜索关闭,`ENABLE_TOOL_SEARCH` 无法覆盖它。该变量删除 `defer_loading` 工具定义和 `tool_reference` 内容块所需的 beta 标头。1212设置 [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS`](/docs/zh-CN/env-vars) 保持工具搜索关闭,`ENABLE_TOOL_SEARCH` 无法覆盖它。该变量删除 `defer_loading` 工具定义和 `tool_reference` 内容块所需的 beta 标头。

1213 1213 

1214工具搜索需要支持 `tool_reference` 块的模型:Claude Sonnet 4.5、Claude Haiku 4.5、Claude Opus 4.5 及更高版本的模型。有关当前列表,请参阅 [API 文档中的模型兼容性](https://platform.claude.com/docs/en/agents-and-tools/tool-use/tool-search-tool#model-compatibility)。在 Google Cloud 的 Agent Platform 上,工具搜索支持 Claude Sonnet 4.5 及更高版本以及 Claude Opus 4.5 及更高版本。1214工具搜索需要支持 `tool_reference` 块的模型:Claude Sonnet 4.5、Claude Haiku 4.5、Claude Opus 4.5 及更高版本的模型。有关当前列表,请参阅 [API 文档中的模型兼容性](https://platform.claude.com/docs/en/agents-and-tools/tool-use/tool-search-tool#model-compatibility)。在 Google Cloud 的 Agent Platform 上,工具搜索支持 Claude Sonnet 4.5 及更高版本以及 Claude Opus 4.5 及更高版本。

1215 1215 


1231ENABLE_TOOL_SEARCH=false claude1231ENABLE_TOOL_SEARCH=false claude

1232```1232```

1233 1233 

1234或在您的 [settings.json `env` 字段](/zh-CN/settings#available-settings) 中设置值。1234或在您的 [settings.json `env` 字段](/docs/zh-CN/settings#available-settings) 中设置值。

1235 1235 

1236您也可以专门禁用 `ToolSearch` 工具:1236您也可以专门禁用 `ToolSearch` 工具:

1237 1237 


1265 1265 

1266`alwaysLoad` 字段在所有服务器类型上可用,需要 Claude Code v2.1.121 或更高版本。MCP 服务器也可以通过在工具的 `_meta` 对象中包含 `"anthropic/alwaysLoad": true` 来标记单个工具为始终加载,这对该工具仅具有相同的效果。1266`alwaysLoad` 字段在所有服务器类型上可用,需要 Claude Code v2.1.121 或更高版本。MCP 服务器也可以通过在工具的 `_meta` 对象中包含 `"anthropic/alwaysLoad": true` 来标记单个工具为始终加载,这对该工具仅具有相同的效果。

1267 1267 

1268设置 `alwaysLoad: true` 也会阻止启动直到服务器连接,上限为标准 5 秒连接超时。即使 MCP 启动在其他方面[默认为非阻塞](/zh-CN/env-vars),这也适用,因为工具必须在构建第一个提示时存在。其他服务器继续在后台连接。1268设置 `alwaysLoad: true` 也会阻止启动直到服务器连接,上限为标准 5 秒连接超时。即使 MCP 启动在其他方面[默认为非阻塞](/docs/zh-CN/env-vars),这也适用,因为工具必须在构建第一个提示时存在。其他服务器继续在后台连接。

1269 1269 

1270<h2 id="use-mcp-prompts-as-commands">1270<h2 id="use-mcp-prompts-as-commands">

1271 将 MCP 提示用作命令1271 将 MCP 提示用作命令


1314 托管 MCP 配置1314 托管 MCP 配置

1315</h2>1315</h2>

1316 1316 

1317对于需要对用户可以连接的 MCP 服务器进行集中控制的组织,请参阅[托管 MCP 配置](/zh-CN/managed-mcp)。它涵盖使用 `managed-mcp.json` 部署固定服务器集、使用 `allowedMcpServers` 和 `deniedMcpServers` 限制服务器,以及当服务器被阻止时用户看到的内容。1317对于需要对用户可以连接的 MCP 服务器进行集中控制的组织,请参阅[托管 MCP 配置](/docs/zh-CN/managed-mcp)。它涵盖使用 `managed-mcp.json` 部署固定服务器集、使用 `allowedMcpServers` 和 `deniedMcpServers` 限制服务器,以及当服务器被阻止时用户看到的内容。

memory.md +23 −23

Details

22 CLAUDE.md 与自动记忆22 CLAUDE.md 与自动记忆

23</h2>23</h2>

24 24 

25Claude Code 有两个互补的记忆系统。两者都在每次对话开始时加载。Claude 将它们视为上下文,而不是强制配置。要阻止某个操作,无论 Claude 决定什么,请改用 [PreToolUse hook](/zh-CN/hooks-guide)。你的指令越具体和简洁,Claude 遵循它们的一致性就越高。25Claude Code 有两个互补的记忆系统。两者都在每次对话开始时加载。Claude 将它们视为上下文,而不是强制配置。要阻止某个操作,无论 Claude 决定什么,请改用 [PreToolUse hook](/docs/zh-CN/hooks-guide)。你的指令越具体和简洁,Claude 遵循它们的一致性就越高。

26 26 

27| | CLAUDE.md 文件 | 自动记忆 |27| | CLAUDE.md 文件 | 自动记忆 |

28| :------- | :------------ | :--------------------- |28| :------- | :------------ | :--------------------- |


34 34 

35当你想指导 Claude 的行为时,使用 CLAUDE.md 文件。自动记忆让 Claude 从你的更正中学习,无需手动操作。35当你想指导 Claude 的行为时,使用 CLAUDE.md 文件。自动记忆让 Claude 从你的更正中学习,无需手动操作。

36 36 

37Subagents 也可以维护自己的自动记忆。有关详细信息,请参阅 [subagent 配置](/zh-CN/sub-agents#enable-persistent-memory)。37Subagents 也可以维护自己的自动记忆。有关详细信息,请参阅 [subagent 配置](/docs/zh-CN/sub-agents#enable-persistent-memory)。

38 38 

39<h2 id="claude-md-files">39<h2 id="claude-md-files">

40 CLAUDE.md 文件40 CLAUDE.md 文件


53* 你在聊天中输入的相同更正或澄清是你上个会话输入的53* 你在聊天中输入的相同更正或澄清是你上个会话输入的

54* 新队友需要相同的上下文才能提高生产力54* 新队友需要相同的上下文才能提高生产力

55 55 

56将其保持为 Claude 应该在每个会话中保持的事实:构建命令、约定、项目布局、"总是做 X"规则。如果一个条目是多步骤过程或仅对代码库的一部分重要,将其移到 [skill](/zh-CN/skills) 或 [路径范围规则](#organize-rules-with-claude/rules/) 中。[扩展概述](/zh-CN/features-overview#build-your-setup-over-time)涵盖何时使用每种机制。56将其保持为 Claude 应该在每个会话中保持的事实:构建命令、约定、项目布局、"总是做 X"规则。如果一个条目是多步骤过程或仅对代码库的一部分重要,将其移到 [skill](/docs/zh-CN/skills) 或 [路径范围规则](#organize-rules-with-claude/rules/) 中。[扩展概述](/docs/zh-CN/features-overview#build-your-setup-over-time)涵盖何时使用每种机制。

57 57 

58<h3 id="choose-where-to-put-claude-md-files">58<h3 id="choose-where-to-put-claude-md-files">

59 选择 CLAUDE.md 文件的位置59 选择 CLAUDE.md 文件的位置


88 编写有效的指令88 编写有效的指令

89</h3>89</h3>

90 90 

91CLAUDE.md 文件在每个会话开始时加载到上下文窗口中,与你的对话一起消耗令牌。[上下文窗口可视化](/zh-CN/context-window)显示 CLAUDE.md 相对于其余启动上下文的加载位置。因为它们是上下文而不是强制配置,你编写指令的方式会影响 Claude 遵循它们的可靠性。具体、简洁、结构良好的指令效果最好。91CLAUDE.md 文件在每个会话开始时加载到上下文窗口中,与你的对话一起消耗令牌。[上下文窗口可视化](/docs/zh-CN/context-window)显示 CLAUDE.md 相对于其余启动上下文的加载位置。因为它们是上下文而不是强制配置,你编写指令的方式会影响 Claude 遵循它们的可靠性。具体、简洁、结构良好的指令效果最好。

92 92 

93**大小**:每个 CLAUDE.md 文件目标在 200 行以下。较长的文件消耗更多上下文并降低遵守度。如果你的指令变得很大,使用 [路径范围规则](#path-specific-rules) 以便指令仅在 Claude 处理匹配文件时加载。你也可以将内容分割成 [导入](#import-additional-files) 以便组织,尽管导入的文件仍然加载并在启动时进入上下文窗口。93**大小**:每个 CLAUDE.md 文件目标在 200 行以下。较长的文件消耗更多上下文并降低遵守度。如果你的指令变得很大,使用 [路径范围规则](#path-specific-rules) 以便指令仅在 Claude 处理匹配文件时加载。你也可以将内容分割成 [导入](#import-additional-files) 以便组织,尽管导入的文件仍然加载并在启动时进入上下文窗口。

94 94 


158 158 

159在 Windows 上,创建符号链接需要管理员权限或开发者模式,所以改用 `@AGENTS.md` 导入。159在 Windows 上,创建符号链接需要管理员权限或开发者模式,所以改用 `@AGENTS.md` 导入。

160 160 

161在已经有 `AGENTS.md` 的存储库中运行 [`/init`](/zh-CN/commands) 会读取它并将相关部分合并到生成的 `CLAUDE.md` 中。它也读取其他工具配置,如 `.cursorrules`、`.devin/rules/` 和 `.windsurfrules`。161在已经有 `AGENTS.md` 的存储库中运行 [`/init`](/docs/zh-CN/commands) 会读取它并将相关部分合并到生成的 `CLAUDE.md` 中。它也读取其他工具配置,如 `.cursorrules`、`.devin/rules/` 和 `.windsurfrules`。

162 162 

163<h3 id="how-claude-md-files-load">163<h3 id="how-claude-md-files-load">

164 CLAUDE.md 文件如何加载164 CLAUDE.md 文件如何加载


170 170 

171Claude 还在当前工作目录下的子目录中发现 `CLAUDE.md` 和 `CLAUDE.local.md` 文件。它们不是在启动时加载,而是在 Claude 读取这些子目录中的文件时包含。171Claude 还在当前工作目录下的子目录中发现 `CLAUDE.md` 和 `CLAUDE.local.md` 文件。它们不是在启动时加载,而是在 Claude 读取这些子目录中的文件时包含。

172 172 

173如果你在一个大型 monorepo 中工作,其他团队的 CLAUDE.md 文件被拾取,使用 [`claudeMdExcludes`](#exclude-specific-claude-md-files) 跳过它们。对于根目录和每个目录的 CLAUDE.md 文件和规则的完整布局,请参阅 [Monorepos 和大型存储库](/zh-CN/large-codebases)。173如果你在一个大型 monorepo 中工作,其他团队的 CLAUDE.md 文件被拾取,使用 [`claudeMdExcludes`](#exclude-specific-claude-md-files) 跳过它们。对于根目录和每个目录的 CLAUDE.md 文件和规则的完整布局,请参阅 [Monorepos 和大型存储库](/docs/zh-CN/large-codebases)。

174 174 

175块级 HTML 注释(`<!-- maintainer notes -->`)在 CLAUDE.md 文件中在内容注入到 Claude 的上下文之前被剥离。使用它们为人类维护者留下笔记,而不在它们上花费上下文令牌。代码块内的注释被保留。当你直接用 Read 工具打开 CLAUDE.md 文件时,注释保持可见。175块级 HTML 注释(`<!-- maintainer notes -->`)在 CLAUDE.md 文件中在内容注入到 Claude 的上下文之前被剥离。使用它们为人类维护者留下笔记,而不在它们上花费上下文令牌。代码块内的注释被保留。当你直接用 Read 工具打开 CLAUDE.md 文件时,注释保持可见。

176 176 


186CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD=1 claude --add-dir ../shared-config186CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD=1 claude --add-dir ../shared-config

187```187```

188 188 

189这会从其他目录加载 `CLAUDE.md`、`.claude/CLAUDE.md`、`.claude/rules/*.md` 和 `CLAUDE.local.md`。如果你从 [`--setting-sources`](/zh-CN/cli-reference) 中排除 `local`,`CLAUDE.local.md` 会被跳过。189这会从其他目录加载 `CLAUDE.md`、`.claude/CLAUDE.md`、`.claude/rules/*.md` 和 `CLAUDE.local.md`。如果你从 [`--setting-sources`](/docs/zh-CN/cli-reference) 中排除 `local`,`CLAUDE.local.md` 会被跳过。

190 190 

191<h3 id="organize-rules-with-claude/rules/">191<h3 id="organize-rules-with-claude/rules/">

192 使用 `.claude/rules/` 组织规则192 使用 `.claude/rules/` 组织规则


195对于较大的项目,你可以使用 `.claude/rules/` 目录将指令组织到多个文件中。这使指令保持模块化并更容易让团队维护。规则也可以 [范围限定到特定文件路径](#path-specific-rules),因此它们仅在 Claude 处理匹配文件时加载到上下文中,减少噪音并节省上下文空间。195对于较大的项目,你可以使用 `.claude/rules/` 目录将指令组织到多个文件中。这使指令保持模块化并更容易让团队维护。规则也可以 [范围限定到特定文件路径](#path-specific-rules),因此它们仅在 Claude 处理匹配文件时加载到上下文中,减少噪音并节省上下文空间。

196 196 

197<Note>197<Note>

198 规则在每个会话或打开匹配文件时加载到上下文中。对于不需要始终在上下文中的特定任务指令,改用 [skills](/zh-CN/skills),它仅在你调用它们或 Claude 确定它们与你的提示相关时加载。198 规则在每个会话或打开匹配文件时加载到上下文中。对于不需要始终在上下文中的特定任务指令,改用 [skills](/docs/zh-CN/skills),它仅在你调用它们或 Claude 确定它们与你的提示相关时加载。

199</Note>199</Note>

200 200 

201<h4 id="set-up-rules">201<h4 id="set-up-rules">


235- 包括 OpenAPI 文档注释235- 包括 OpenAPI 文档注释

236```236```

237 237 

238没有 `paths` 字段的规则无条件加载并适用于所有文件。路径范围规则在 Claude 读取与模式匹配的文件时触发,而不是在每次工具使用时。{/* min-version: 2.1.198 */}从 v2.1.198 起,匹配也适用于 Claude 通过项目目录的符号链接路径到达文件时,例如在符号链接的检出中。238没有 `paths` 字段的规则无条件加载并适用于所有文件。路径范围规则在 Claude 读取与模式匹配的文件时触发,而不是在每次工具使用时。从 v2.1.198 起,匹配也适用于 Claude 通过项目目录的符号链接路径到达文件时,例如在符号链接的检出中。

239 239 

240在 `paths` 字段中使用 glob 模式按扩展名、目录或任何组合匹配文件:240在 `paths` 字段中使用 glob 模式按扩展名、目录或任何组合匹配文件:

241 241 


257---257---

258```258```

259 259 

260Glob 语法将 `[` 视为括号表达式的开始,例如 `[abc]`。一个包含 `[` 的模式无法读作括号表达式,例如 `photos [2024/**`,是无效的:它不匹配任何内容,规则的其他模式继续工作。要匹配文件名中的字面 `[`,将其转义为 `photos \[2024/**`。{/* min-version: 2.1.207 */}在 v2.1.207 之前,一个无效模式会导致 Read 工具对规则被评估的每个文件失败,而不是不匹配任何内容。260Glob 语法将 `[` 视为括号表达式的开始,例如 `[abc]`。一个包含 `[` 的模式无法读作括号表达式,例如 `photos [2024/**`,是无效的:它不匹配任何内容,规则的其他模式继续工作。要匹配文件名中的字面 `[`,将其转义为 `photos \[2024/**`。在 v2.1.207 之前,一个无效模式会导致 Read 工具对规则被评估的每个文件失败,而不是不匹配任何内容。

261 261 

262<h4 id="share-rules-across-projects-with-symlinks">262<h4 id="share-rules-across-projects-with-symlinks">

263 使用符号链接跨项目共享规则263 使用符号链接跨项目共享规则


306 </Step>306 </Step>

307 307 

308 <Step title="使用你的配置管理系统部署">308 <Step title="使用你的配置管理系统部署">

309 使用 MDM、Group Policy、Ansible 或类似工具在开发者机器上分发文件。有关其他组织范围配置选项,请参阅 [托管设置](/zh-CN/permissions#managed-settings)。309 使用 MDM、Group Policy、Ansible 或类似工具在开发者机器上分发文件。有关其他组织范围配置选项,请参阅 [托管设置](/docs/zh-CN/permissions#managed-settings)。

310 </Step>310 </Step>

311</Steps>311</Steps>

312 312 


326}326}

327```327```

328 328 

329托管 CLAUDE.md 和 [托管设置](/zh-CN/settings#settings-files) 服务于不同的目的。使用设置进行技术强制,使用 CLAUDE.md 进行行为指导:329托管 CLAUDE.md 和 [托管设置](/docs/zh-CN/settings#settings-files) 服务于不同的目的。使用设置进行技术强制,使用 CLAUDE.md 进行行为指导:

330 330 

331| 关注点 | 配置在 |331| 关注点 | 配置在 |

332| :-------------- | :------------------------------------------ |332| :-------------- | :------------------------------------------ |


357}357}

358```358```

359 359 

360模式使用 glob 语法与绝对文件路径匹配。你可以在任何 [设置层](/zh-CN/settings#settings-files):用户、项目、本地或托管策略配置 `claudeMdExcludes`。数组跨层合并。360模式使用 glob 语法与绝对文件路径匹配。你可以在任何 [设置层](/docs/zh-CN/settings#settings-files):用户、项目、本地或托管策略配置 `claudeMdExcludes`。数组跨层合并。

361 361 

362托管策略 CLAUDE.md 文件不能被排除。这确保组织范围指令始终适用,无论个人设置如何。362托管策略 CLAUDE.md 文件不能被排除。这确保组织范围指令始终适用,无论个人设置如何。

363 363 


387 387 

388每个项目在 `~/.claude/projects/<project>/memory/` 获得自己的记忆目录。`<project>` 路径来自 git 存储库,因此同一存储库中的所有 worktrees 和子目录共享一个自动记忆目录。在 git 存储库外,改用项目根目录。388每个项目在 `~/.claude/projects/<project>/memory/` 获得自己的记忆目录。`<project>` 路径来自 git 存储库,因此同一存储库中的所有 worktrees 和子目录共享一个自动记忆目录。在 git 存储库外,改用项目根目录。

389 389 

390要将自动记忆存储在不同位置,在你的 `settings.json` 中设置 `autoMemoryDirectory`。它从任何[设置范围](/zh-CN/settings#settings-precedence)读取:用户、项目、本地、策略或 `--settings`。390要将自动记忆存储在不同位置,在你的 `settings.json` 中设置 `autoMemoryDirectory`。它从任何[设置范围](/docs/zh-CN/settings#settings-precedence)读取:用户、项目、本地、策略或 `--settings`。

391 391 

392```json theme={null}392```json theme={null}

393{393{


456* 使指令更具体。"使用 2 空格缩进"比"格式化代码很好"效果更好。456* 使指令更具体。"使用 2 空格缩进"比"格式化代码很好"效果更好。

457* 查找跨 CLAUDE.md 文件的冲突指令。如果两个文件为相同行为提供不同的指导,Claude 可能会任意选择一个。457* 查找跨 CLAUDE.md 文件的冲突指令。如果两个文件为相同行为提供不同的指导,Claude 可能会任意选择一个。

458 458 

459如果指令是必须在特定点运行的内容,例如在每次提交之前或每次文件编辑之后,请将其写成 [hook](/zh-CN/hooks-guide) 代替。Hooks 在固定的生命周期事件处作为 shell 命令执行,并且无论 Claude 决定做什么都适用。459如果指令是必须在特定点运行的内容,例如在每次提交之前或每次文件编辑之后,请将其写成 [hook](/docs/zh-CN/hooks-guide) 代替。Hooks 在固定的生命周期事件处作为 shell 命令执行,并且无论 Claude 决定做什么都适用。

460 460 

461对于你想要在系统提示级别的指令,使用 [`--append-system-prompt`](/zh-CN/cli-reference#system-prompt-flags)。这必须在每次调用时传递,因此它更适合脚本和自动化而不是交互式使用。461对于你想要在系统提示级别的指令,使用 [`--append-system-prompt`](/docs/zh-CN/cli-reference#system-prompt-flags)。这必须在每次调用时传递,因此它更适合脚本和自动化而不是交互式使用。

462 462 

463<Tip>463<Tip>

464 使用 [`InstructionsLoaded` hook](/zh-CN/hooks#instructionsloaded) 记录确切加载了哪些指令文件、何时加载以及为什么。这对于调试特定路径规则或子目录中的延迟加载文件很有用。464 使用 [`InstructionsLoaded` hook](/docs/zh-CN/hooks#instructionsloaded) 记录确切加载了哪些指令文件、何时加载以及为什么。这对于调试特定路径规则或子目录中的延迟加载文件很有用。

465</Tip>465</Tip>

466 466 

467<h3 id="i-don’t-know-what-auto-memory-saved">467<h3 id="i-don’t-know-what-auto-memory-saved">


476 476 

477超过 200 行的文件消耗更多上下文并可能降低遵守度。使用 [路径范围规则](#path-specific-rules) 仅在 Claude 处理匹配文件时加载指令,或修剪不是每个会话都需要的内容。分割到 [`@path` 导入](#import-additional-files) 有助于组织,但不会减少上下文,因为导入的文件在启动时加载。477超过 200 行的文件消耗更多上下文并可能降低遵守度。使用 [路径范围规则](#path-specific-rules) 仅在 Claude 处理匹配文件时加载指令,或修剪不是每个会话都需要的内容。分割到 [`@path` 导入](#import-additional-files) 有助于组织,但不会减少上下文,因为导入的文件在启动时加载。

478 478 

479[`/doctor`](/zh-CN/commands#all-commands) 检查为已检入的 CLAUDE.md 提议修剪:它删除 Claude 可以从代码库派生的内容,例如目录布局、依赖项列表和架构概览,并保留与工具默认值不同的陷阱、基本原理和约定。修剪检查需要 Claude Code v2.1.206 或更高版本。479[`/doctor`](/docs/zh-CN/commands#all-commands) 检查为已检入的 CLAUDE.md 提议修剪:它删除 Claude 可以从代码库派生的内容,例如目录布局、依赖项列表和架构概览,并保留与工具默认值不同的陷阱、基本原理和约定。修剪检查需要 Claude Code v2.1.206 或更高版本。

480 480 

481<h3 id="instructions-seem-lost-after-/compact">481<h3 id="instructions-seem-lost-after-/compact">

482 在 `/compact` 后指令似乎丢失了482 在 `/compact` 后指令似乎丢失了


484 484 

485项目根 CLAUDE.md 在压缩中存活:在 `/compact` 之后,Claude 从磁盘重新读取它并将其重新注入到会话中。子目录中的嵌套 CLAUDE.md 文件不会自动重新注入;它们在 Claude 下次读取该子目录中的文件时重新加载。485项目根 CLAUDE.md 在压缩中存活:在 `/compact` 之后,Claude 从磁盘重新读取它并将其重新注入到会话中。子目录中的嵌套 CLAUDE.md 文件不会自动重新注入;它们在 Claude 下次读取该子目录中的文件时重新加载。

486 486 

487如果指令在压缩后消失,它要么仅在对话中给出,要么位于尚未重新加载的嵌套 CLAUDE.md 中。将仅对话的指令添加到 CLAUDE.md 以使其持久化。有关完整的细分,请参阅 [什么在压缩中存活](/zh-CN/context-window#what-survives-compaction)。487如果指令在压缩后消失,它要么仅在对话中给出,要么位于尚未重新加载的嵌套 CLAUDE.md 中。将仅对话的指令添加到 CLAUDE.md 以使其持久化。有关完整的细分,请参阅 [什么在压缩中存活](/docs/zh-CN/context-window#what-survives-compaction)。

488 488 

489有关大小、结构和具体性的指导,请参阅 [编写有效的指令](#write-effective-instructions)。489有关大小、结构和具体性的指导,请参阅 [编写有效的指令](#write-effective-instructions)。

490 490 


492 相关资源492 相关资源

493</h2>493</h2>

494 494 

495* [调试你的配置](/zh-CN/debug-your-config):诊断为什么 CLAUDE.md 或设置未生效495* [调试你的配置](/docs/zh-CN/debug-your-config):诊断为什么 CLAUDE.md 或设置未生效

496* [Skills](/zh-CN/skills):打包按需加载的可重复工作流496* [Skills](/docs/zh-CN/skills):打包按需加载的可重复工作流

497* [Settings](/zh-CN/settings):使用设置文件配置 Claude Code 行为497* [Settings](/docs/zh-CN/settings):使用设置文件配置 Claude Code 行为

498* [Subagent 记忆](/zh-CN/sub-agents#enable-persistent-memory):让 subagents 维护自己的自动记忆498* [Subagent 记忆](/docs/zh-CN/sub-agents#enable-persistent-memory):让 subagents 维护自己的自动记忆

Details

139 139 

140**选项 C:Bearer 令牌身份验证**140**选项 C:Bearer 令牌身份验证**

141 141 

142{/* min-version: 2.1.203 */}Claude Code 在每个请求中将 `ANTHROPIC_FOUNDRY_AUTH_TOKEN` 的值作为 `Authorization: Bearer` 标头发送。当另一个进程(例如主机应用程序或登录脚本)已经为您获取了访问令牌时,请使用此选项。需要 Claude Code v2.1.203 或更高版本。142Claude Code 在每个请求中将 `ANTHROPIC_FOUNDRY_AUTH_TOKEN` 的值作为 `Authorization: Bearer` 标头发送。当另一个进程(例如主机应用程序或登录脚本)已经为您获取了访问令牌时,请使用此选项。需要 Claude Code v2.1.203 或更高版本。

143 143 

144将变量设置为 Microsoft Entra ID 为您的资源颁发的 Bearer 令牌:144将变量设置为 Microsoft Entra ID 为您的资源颁发的 Bearer 令牌:

145 145 


189 189 

190后台任务(如会话标题生成)使用小型/快速模型,通常是 Haiku 级别的模型。在 Microsoft Foundry 上,Claude Code 默认使用主模型,因为并非每个账户都有 Haiku 部署。要为后台任务使用 Haiku,请将 `ANTHROPIC_DEFAULT_HAIKU_MODEL` 设置为您账户中可用的 Haiku 部署,如上所示。190后台任务(如会话标题生成)使用小型/快速模型,通常是 Haiku 级别的模型。在 Microsoft Foundry 上,Claude Code 默认使用主模型,因为并非每个账户都有 Haiku 部署。要为后台任务使用 Haiku,请将 `ANTHROPIC_DEFAULT_HAIKU_MODEL` 设置为您账户中可用的 Haiku 部署,如上所示。

191 191 

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

193 193 

194[Prompt caching](/zh-CN/prompt-caching) 会自动启用。要请求 1 小时的缓存 TTL 而不是 5 分钟的默认值,请设置以下变量;具有 1 小时 TTL 的缓存写入按更高的费率计费:194[Prompt caching](/docs/zh-CN/prompt-caching) 会自动启用。要请求 1 小时的缓存 TTL 而不是 5 分钟的默认值,请设置以下变量;具有 1 小时 TTL 的缓存写入按更高的费率计费:

195 195 

196```bash theme={null}196```bash theme={null}

197export ENABLE_PROMPT_CACHING_1H=1197export ENABLE_PROMPT_CACHING_1H=1

model-config.md +72 −76

Details

22有关哪个模型和工作量级别适合不同类型工作的指导,请参阅博客上的 [Choosing a Claude model and effort level in Claude Code](https://claude.com/blog/claude-model-and-effort-level-in-claude-code)。22有关哪个模型和工作量级别适合不同类型工作的指导,请参阅博客上的 [Choosing a Claude model and effort level in Claude Code](https://claude.com/blog/claude-model-and-effort-level-in-claude-code)。

23 23 

24<Note>24<Note>

25 `ANTHROPIC_BASE_URL` 改变请求发送的位置,而不是哪个模型回答它们。要通过 LLM 网关路由 Claude,请参阅 [LLM 网关](/zh-CN/llm-gateway)。25 `ANTHROPIC_BASE_URL` 改变请求发送的位置,而不是哪个模型回答它们。要通过 LLM 网关路由 Claude,请参阅 [LLM 网关](/docs/zh-CN/llm-gateway)。

26</Note>26</Note>

27 27 

28<h3 id="model-aliases">28<h3 id="model-aliases">


39| **`sonnet`** | 使用最新的 Sonnet 模型用于日常编码任务 |39| **`sonnet`** | 使用最新的 Sonnet 模型用于日常编码任务 |

40| **`opus`** | 使用最新的 Opus 模型用于复杂推理任务 |40| **`opus`** | 使用最新的 Opus 模型用于复杂推理任务 |

41| **`haiku`** | 使用快速高效的 Haiku 模型用于简单任务 |41| **`haiku`** | 使用快速高效的 Haiku 模型用于简单任务 |

42| **`sonnet[1m]`** | 使用 Sonnet 和[100 万令牌上下文窗口](https://platform.claude.com/docs/zh-CN/build-with-claude/context-windows#context-window-sizes-by-model)用于长会话。当 `sonnet` 已解析为具有原生 1M 窗口的 Sonnet 5 时无效;在 [LLM gateway](/zh-CN/llm-gateway)后面,为 Sonnet 5 选择 1M 窗口 |42| **`sonnet[1m]`** | 使用 Sonnet 和[100 万令牌上下文窗口](https://platform.claude.com/docs/zh-CN/build-with-claude/context-windows#context-window-sizes-by-model)用于长会话。当 `sonnet` 已解析为具有原生 1M 窗口的 Sonnet 5 时无效;在 [LLM gateway](/docs/zh-CN/llm-gateway)后面,为 Sonnet 5 选择 1M 窗口 |

43| **`opus[1m]`** | 使用 Opus 和[100 万令牌上下文窗口](https://platform.claude.com/docs/zh-CN/build-with-claude/context-windows#context-window-sizes-by-model)用于长会话 |43| **`opus[1m]`** | 使用 Opus 和[100 万令牌上下文窗口](https://platform.claude.com/docs/zh-CN/build-with-claude/context-windows#context-window-sizes-by-model)用于长会话 |

44| **`opusplan`** | 特殊模式,在 Plan Mode 中使用 `opus`,然后在执行时切换到 `sonnet` |44| **`opusplan`** | 特殊模式,在 Plan Mode 中使用 `opus`,然后在执行时切换到 `sonnet` |

45 45 


48| 提供商 | `opus` | `sonnet` |48| 提供商 | `opus` | `sonnet` |

49| :------------------------------------------------------ | :------- | :--------- |49| :------------------------------------------------------ | :------- | :--------- |

50| Anthropic API | Opus 4.8 | Sonnet 5 |50| Anthropic API | Opus 4.8 | Sonnet 5 |

51| [Claude Platform on AWS](/zh-CN/claude-platform-on-aws) | Opus 4.8 | Sonnet 4.6 |51| [Claude Platform on AWS](/docs/zh-CN/claude-platform-on-aws) | Opus 4.8 | Sonnet 4.6 |

52| Amazon Bedrock、Google Cloud 的 Agent Platform | Opus 4.8 | Sonnet 4.5 |52| Amazon Bedrock、Google Cloud 的 Agent Platform | Opus 4.8 | Sonnet 4.5 |

53| Microsoft Foundry | Opus 4.6 | Sonnet 4.5 |53| Microsoft Foundry | Opus 4.6 | Sonnet 4.5 |

54 54 

55当别名解析为较旧的模型时,可以通过显式选择完整模型名称或设置 `ANTHROPIC_DEFAULT_OPUS_MODEL` 或 `ANTHROPIC_DEFAULT_SONNET_MODEL` 来获得更新的模型。55当别名解析为较旧的模型时,可以通过显式选择完整模型名称或设置 `ANTHROPIC_DEFAULT_OPUS_MODEL` 或 `ANTHROPIC_DEFAULT_SONNET_MODEL` 来获得更新的模型。

56 56 

57{/* min-version: 2.1.207 */}在 v2.1.207 之前,`opus` 在 Claude Platform on AWS 上解析为 Opus 4.7,在 Amazon Bedrock 和 Google Cloud 的 Agent Platform 上解析为 Opus 4.6。57在 v2.1.207 之前,`opus` 在 Claude Platform on AWS 上解析为 Opus 4.7,在 Amazon Bedrock 和 Google Cloud 的 Agent Platform 上解析为 Opus 4.6。

58 58 

59别名指向您的提供商推荐的版本,并随时间更新。要固定到特定版本,请使用完整模型名称(例如 `claude-opus-4-8`),或设置相应的环境变量,如 `ANTHROPIC_DEFAULT_OPUS_MODEL`。59别名指向您的提供商推荐的版本,并随时间更新。要固定到特定版本,请使用完整模型名称(例如 `claude-opus-4-8`),或设置相应的环境变量,如 `ANTHROPIC_DEFAULT_OPUS_MODEL`。

60 60 


72 72 

73要充分利用 Fable 5:73要充分利用 Fable 5:

74 74 

75* **描述结果,而不是步骤**:给它您想要的结果,让它规划路径。要让它继续工作直到该结果成立,[设置一个目标](/zh-CN/goal)。75* **描述结果,而不是步骤**:给它您想要的结果,让它规划路径。要让它继续工作直到该结果成立,[设置一个目标](/docs/zh-CN/goal)。

76* **交给它模糊的问题**:根本原因调查、故障排除和架构决策是额外调查和验证发挥作用的地方。76* **交给它模糊的问题**:根本原因调查、故障排除和架构决策是额外调查和验证发挥作用的地方。

77* **跳过验证提醒**:它以更少的提示验证自己的工作,所以测试或检查的提醒通常是不必要的。77* **跳过验证提醒**:它以更少的提示验证自己的工作,所以测试或检查的提醒通常是不必要的。

78* **规划更大的任务**:给它您通常会分成几部分的工作。它能够维持长会话而不失去思路。78* **规划更大的任务**:给它您通常会分成几部分的工作。它能够维持长会话而不失去思路。

79 79 

80<Note>80<Note>

81 Fable 5 需要 Claude Code v2.1.170 或更高版本。较旧的版本在模型选择器中不显示 Fable 5,无法选择它。运行 `claude update` 进行升级。Fable 5 在[零数据保留](/zh-CN/zero-data-retention)下不可用,其中 `/model` 选择器要么省略它,要么将其显示为禁用。81 Fable 5 需要 Claude Code v2.1.170 或更高版本。较旧的版本在模型选择器中不显示 Fable 5,无法选择它。运行 `claude update` 进行升级。Fable 5 在[零数据保留](/docs/zh-CN/zero-data-retention)下不可用,其中 `/model` 选择器要么省略它,要么将其显示为禁用。

82</Note>82</Note>

83 83 

84<h3 id="setting-your-model">84<h3 id="setting-your-model">


97* `Enter`:切换模型并保存为您的默认值97* `Enter`:切换模型并保存为您的默认值

98* `s`:仅为此会话切换模型98* `s`:仅为此会话切换模型

99 99 

100直接输入 `/model <name>` 的行为类似于 `Enter`。{/* min-version: 2.1.205 */}在[非交互模式](/zh-CN/headless)中使用 `-p` 标志通过 `/model` 设置的模型仅适用于当前会话,不会保存为您的默认值。项目和托管设置仍然优先级最高,并在下次启动时重新应用。{/* min-version: 2.1.196 */}您的管理员配置的[组织默认模型](#organization-default-model)也会在下次启动时重新应用。100直接输入 `/model <name>` 的行为类似于 `Enter`。在[非交互模式](/docs/zh-CN/headless)中使用 `-p` 标志通过 `/model` 设置的模型仅适用于当前会话,不会保存为您的默认值。项目和托管设置仍然优先级最高,并在下次启动时重新应用。您的管理员配置的[组织默认模型](#organization-default-model)也会在下次启动时重新应用。

101 101 

102在 v2.1.144 到 v2.1.152 中,`/model` 仅适用于当前会话,选择器中的 `d` 保存默认值。102在 v2.1.144 到 v2.1.152 中,`/model` 仅适用于当前会话,选择器中的 `d` 保存默认值。

103 103 

104`--model` 标志和 `ANTHROPIC_MODEL` 环境变量仅适用于您启动它们的会话。要同时在不同终端中运行不同的模型,请使用各自的 `--model` 标志启动每个终端,而不是使用 `/model` 切换。104`--model` 标志和 `ANTHROPIC_MODEL` 环境变量仅适用于您启动它们的会话。要同时在不同终端中运行不同的模型,请使用各自的 `--model` 标志启动每个终端,而不是使用 `/model` 切换。

105 105 

106当 Claude Code 与 Anthropic API 通信时,`/model` 选择器中会显示价格,直接或通过代理它的 [LLM gateway](/zh-CN/llm-gateway),行上的价格是该行选择的模型的价格。在 [Amazon Bedrock](/zh-CN/third-party-integrations) 等第三方提供商上和在 [Claude apps gateway](/zh-CN/claude-apps-gateway) 上,您的提供商或网关决定您支付的费用,所以选择器行不显示价格。价格仅是显示标签;它不影响行选择哪个模型或您的提供商计费的内容。在 v2.1.206 之前,[Claude Platform on AWS](/zh-CN/claude-platform-on-aws) 和网关会话显示 Anthropic 列表价格,一行可能显示与其选择的模型不同的模型的价格。106当 Claude Code 与 Anthropic API 通信时,`/model` 选择器中会显示价格,直接或通过代理它的 [LLM gateway](/docs/zh-CN/llm-gateway),行上的价格是该行选择的模型的价格。在 [Amazon Bedrock](/docs/zh-CN/third-party-integrations) 等第三方提供商上和在 [Claude apps gateway](/docs/zh-CN/claude-apps-gateway) 上,您的提供商或网关决定您支付的费用,所以选择器行不显示价格。价格仅是显示标签;它不影响行选择哪个模型或您的提供商计费的内容。在 v2.1.206 之前,[Claude Platform on AWS](/docs/zh-CN/claude-platform-on-aws) 和网关会话显示 Anthropic 列表价格,一行可能显示与其选择的模型不同的模型的价格。

107 107 

108使用 `claude --resume`、`--continue` 或 `/resume` 选择器启动的恢复会话会保持保存转录时使用的模型,无论当前 `model` 设置如何。如果该模型已被停用或被 [`availableModels`](#restrict-model-selection) 排除,会话会回退到正常的优先级顺序。这可以防止另一个会话的 `/model` 选择在恢复时改变模型。108使用 `claude --resume`、`--continue` 或 `/resume` 选择器启动的恢复会话会保持保存转录时使用的模型,无论当前 `model` 设置如何。如果该模型已被停用或被 [`availableModels`](#restrict-model-selection) 排除,会话会回退到正常的优先级顺序。这可以防止另一个会话的 `/model` 选择在恢复时改变模型。

109 109 

110您为新启动选择的模型使用 `--model` 或 `ANTHROPIC_MODEL` 仍然优先于恢复的模型。{/* min-version: 2.1.195 */}从 v2.1.195 开始,[`ANTHROPIC_DEFAULT_OPUS_MODEL`](#environment-variables) 系列变量也是如此。110您为新启动选择的模型使用 `--model` 或 `ANTHROPIC_MODEL` 仍然优先于恢复的模型。从 v2.1.195 开始,[`ANTHROPIC_DEFAULT_OPUS_MODEL`](#environment-variables) 系列变量也是如此。

111 111 

112当启动时的活跃模型来自项目或托管设置而不是您自己的选择时,启动标题会显示哪个设置文件设置了它。运行 `/model` 以覆盖;项目或托管设置会在下次启动时重新应用。112当启动时的活跃模型来自项目或托管设置而不是您自己的选择时,启动标题会显示哪个设置文件设置了它。运行 `/model` 以覆盖;项目或托管设置会在下次启动时重新应用。

113 113 

114当通过 [Agent SDK](/zh-CN/agent-sdk/overview) `setModel()` 方法或由运行 Claude Code CLI 的应用程序(如 [Desktop app](/zh-CN/desktop))请求模型切换时,Claude Code 会检查该字符串是否是它识别的字符串,然后再保存它。此检查需要 Claude Code v2.1.200 或更高版本。在 Anthropic API 上,Claude Code 识别:114当通过 [Agent SDK](/docs/zh-CN/agent-sdk/overview) `setModel()` 方法或由运行 Claude Code CLI 的应用程序(如 [Desktop app](/docs/zh-CN/desktop))请求模型切换时,Claude Code 会检查该字符串是否是它识别的字符串,然后再保存它。此检查需要 Claude Code v2.1.200 或更高版本。在 Anthropic API 上,Claude Code 识别:

115 115 

116* 一个模型别名116* 一个模型别名

117* 来自 `/model` 选择器的条目117* 来自 `/model` 选择器的条目

118* 任何以 `claude-` 开头的名称118* 任何以 `claude-` 开头的名称

119* 您自己配置为[自定义模型选项](#add-a-custom-model-option)或在 [`modelOverrides`](#override-model-ids-per-version) 中的值119* 您自己配置为[自定义模型选项](#add-a-custom-model-option)或在 [`modelOverrides`](#override-model-ids-per-version) 中的值

120 120 

121Claude Code 会拒绝无法识别的字符串,显示 `Model "<name>" is not a recognized model id.`,会话会保持其当前模型,而不是保存该字符串并在下一个请求时失败。有关恢复步骤,请参阅[错误参考](/zh-CN/errors#model-is-not-a-recognized-model-id)。121Claude Code 会拒绝无法识别的字符串,显示 `Model "<name>" is not a recognized model id.`,会话会保持其当前模型,而不是保存该字符串并在下一个请求时失败。有关恢复步骤,请参阅[错误参考](/docs/zh-CN/errors#model-is-not-a-recognized-model-id)。

122 122 

123该检查仅在 Anthropic API 上运行。在 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry、[Claude Platform on AWS](/zh-CN/claude-platform-on-aws) 和 [LLM 网关](/zh-CN/llm-gateway)后面或自定义 `ANTHROPIC_BASE_URL` 上,您的提供商或网关定义模型名称,所以 Claude Code 会通过任何字符串而不检查它。该检查也不涵盖 `--model` 标志、`ANTHROPIC_MODEL` 环境变量或 `model` 设置;那里的拼写错误值会在第一个请求时产生[所选模型出现问题](/zh-CN/errors#theres-an-issue-with-the-selected-model)。123该检查仅在 Anthropic API 上运行。在 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry、[Claude Platform on AWS](/docs/zh-CN/claude-platform-on-aws) 和 [LLM 网关](/docs/zh-CN/llm-gateway)后面或自定义 `ANTHROPIC_BASE_URL` 上,您的提供商或网关定义模型名称,所以 Claude Code 会通过任何字符串而不检查它。该检查也不涵盖 `--model` 标志、`ANTHROPIC_MODEL` 环境变量或 `model` 设置;那里的拼写错误值会在第一个请求时产生[所选模型出现问题](/docs/zh-CN/errors#theres-an-issue-with-the-selected-model)。

124 124 

125当请求的模型有计划的停用日期或自动重新映射到更新的版本时,Claude Code 会显示一个警告,命名请求的模型。交互式会话将其显示为启动通知。从 v2.1.182 开始,当使用默认文本输出格式在[非交互模式](/zh-CN/headless)中时,相同的警告会写入 stderr。该检查还涵盖在[子代理 frontmatter](/zh-CN/sub-agents) 中设置的 `model`。对于 `--output-format json` 和 `stream-json`,stderr 警告被抑制;改为从[结果消息](/zh-CN/headless#get-structured-output)的 `modelUsage` 字段读取实际模型。125当请求的模型有计划的停用日期或自动重新映射到更新的版本时,Claude Code 会显示一个警告,命名请求的模型。交互式会话将其显示为启动通知。从 v2.1.182 开始,当使用默认文本输出格式在[非交互模式](/docs/zh-CN/headless)中时,相同的警告会写入 stderr。该检查还涵盖在[子代理 frontmatter](/docs/zh-CN/sub-agents) 中设置的 `model`。对于 `--output-format json` 和 `stream-json`,stderr 警告被抑制;改为从[结果消息](/docs/zh-CN/headless#get-structured-output)的 `modelUsage` 字段读取实际模型。

126 126 

127使用示例:127使用示例:

128 128 


149 限制模型选择149 限制模型选择

150</h2>150</h2>

151 151 

152企业管理员可以在[托管或策略设置](/zh-CN/settings#settings-files)中使用 `availableModels` 来限制用户可以选择的模型。条目可以匹配模型系列(如 `sonnet`)、版本前缀(如 `claude-sonnet-4-5`)或完整模型 ID(如 `claude-sonnet-4-5-20250929`)。152企业管理员可以在[托管或策略设置](/docs/zh-CN/settings#settings-files)中使用 `availableModels` 来限制用户可以选择的模型。条目可以匹配模型系列(如 `sonnet`)、版本前缀(如 `claude-sonnet-4-5`)或完整模型 ID(如 `claude-sonnet-4-5-20250929`)。

153 153 

154设置 `availableModels` 后,允许列表适用于用户可以指定模型的每个位置:154设置 `availableModels` 后,允许列表适用于用户可以指定模型的每个位置:

155 155 

156* **主会话模型**:`/model`、`--model` 标志、`ANTHROPIC_MODEL` 环境变量、`model` 设置,以及[恢复会话](#setting-your-model)时恢复的模型156* **主会话模型**:`/model`、`--model` 标志、`ANTHROPIC_MODEL` 环境变量、`model` 设置,以及[恢复会话](#setting-your-model)时恢复的模型

157* **别名解析**:{/* min-version: 2.1.176 */}`ANTHROPIC_DEFAULT_OPUS_MODEL`、`ANTHROPIC_DEFAULT_SONNET_MODEL`、`ANTHROPIC_DEFAULT_HAIKU_MODEL` 和 `ANTHROPIC_DEFAULT_FABLE_MODEL` 环境变量无法将允许的别名重定向到列表外的模型157* **别名解析**:`ANTHROPIC_DEFAULT_OPUS_MODEL`、`ANTHROPIC_DEFAULT_SONNET_MODEL`、`ANTHROPIC_DEFAULT_HAIKU_MODEL` 和 `ANTHROPIC_DEFAULT_FABLE_MODEL` 环境变量无法将允许的别名重定向到列表外的模型

158* **快速模式**:{/* min-version: 2.1.176 */}`/fast` 在隐式切换到列表外的 Opus 模型时拒绝切换,显示消息"不在您的组织允许的模型中"158* **快速模式**:`/fast` 在隐式切换到列表外的 Opus 模型时拒绝切换,显示消息"不在您的组织允许的模型中"

159* **子代理模型**:[子代理](/zh-CN/sub-agents#choose-a-model) frontmatter 中的 `model` 字段、Agent 工具的 `model` 参数、`CLAUDE_CODE_SUBAGENT_MODEL`,以及在 v2.1.197 及更早版本上,`/agents` 向导中的模型选择器{/* max-version: 2.1.197 */}159* **子代理模型**:[子代理](/docs/zh-CN/sub-agents#choose-a-model) frontmatter 中的 `model` 字段、Agent 工具的 `model` 参数、`CLAUDE_CODE_SUBAGENT_MODEL`,以及在 v2.1.197 及更早版本上,`/agents` 向导中的模型选择器

160* **技能和命令模型**:[技能和命令](/zh-CN/skills)中的 `model` frontmatter160* **技能和命令模型**:[技能和命令](/docs/zh-CN/skills)中的 `model` frontmatter

161* **顾问模型**:配置的 [`advisorModel`](/zh-CN/advisor) 设置和 `--advisor` 标志161* **顾问模型**:配置的 [`advisorModel`](/docs/zh-CN/advisor) 设置和 `--advisor` 标志

162* **后台代理模型**:[分派选择器](/zh-CN/agent-view)中选择的模型162* **后台代理模型**:[分派选择器](/docs/zh-CN/agent-view)中选择的模型

163 163 

164在 Anthropic API 和 [AWS 上的 Claude Platform](/zh-CN/claude-platform-on-aws) 上,模型系列别名 `opus`、`sonnet`、`haiku` 或 `fable` 解析为允许列表允许的该系列的最新版本。当允许列表固定特定版本时,例如 `["sonnet", "claude-opus-4-6"]`,`/model opus` 和 `--model opus` 都会选择 Claude Opus 4.6(最新允许的 Opus),并显示一条通知,命名请求的和替换的模型。在 v2.1.205 之前,其最新发布版本在列表外的别名会被拒绝或替换,就像任何其他被阻止的选择一样,即使列表允许较旧版本。164在 Anthropic API 和 [AWS 上的 Claude Platform](/docs/zh-CN/claude-platform-on-aws) 上,模型系列别名 `opus`、`sonnet`、`haiku` 或 `fable` 解析为允许列表允许的该系列的最新版本。当允许列表固定特定版本时,例如 `["sonnet", "claude-opus-4-6"]`,`/model opus` 和 `--model opus` 都会选择 Claude Opus 4.6(最新允许的 Opus),并显示一条通知,命名请求的和替换的模型。在 v2.1.205 之前,其最新发布版本在列表外的别名会被拒绝或替换,就像任何其他被阻止的选择一样,即使列表允许较旧版本。

165 165 

166Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 和 [Mantle](/zh-CN/amazon-bedrock#use-the-mantle-endpoint) 使用特定于提供商的部署 ID 而不是 Anthropic 模型 ID,因此被阻止的别名在那里遵循下面的拒绝和替换行为。166Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 和 [Mantle](/docs/zh-CN/amazon-bedrock#use-the-mantle-endpoint) 使用特定于提供商的部署 ID 而不是 Anthropic 模型 ID,因此被阻止的别名在那里遵循下面的拒绝和替换行为。

167 167 

168Claude Code 根据模型的设置位置处理任何其他被阻止的选择:168Claude Code 根据模型的设置位置处理任何其他被阻止的选择:

169 169 


173* **`advisorModel` 设置**:该会话的顾问被禁用173* **`advisorModel` 设置**:该会话的顾问被禁用

174* **`--advisor` 标志**:Claude Code 在启动时以错误退出174* **`--advisor` 标志**:Claude Code 在启动时以错误退出

175 175 

176被排除的模型在 `/model` 选择器中被隐藏。{/* min-version: 2.1.199 */}列表中没有内置选择器行的完整模型 ID(如列表固定的较旧版本)在 `/model` 选择器中显示为其自己的标记行。在 v2.1.199 之前,这样的 ID 仅可通过键入 `/model <id>` 来选择。176被排除的模型在 `/model` 选择器中被隐藏。列表中没有内置选择器行的完整模型 ID(如列表固定的较旧版本)在 `/model` 选择器中显示为其自己的标记行。在 v2.1.199 之前,这样的 ID 仅可通过键入 `/model <id>` 来选择。

177 177 

178Claude Code 代表您进行的模型更改以相同的方式进行检查:178Claude Code 代表您进行的模型更改以相同的方式进行检查:

179 179 

180* **[回退模型链](#fallback-model-chains)**:允许列表外的元素被删除180* **[回退模型链](#fallback-model-chains)**:允许列表外的元素被删除

181* **Plan Mode 升级**:在 Anthropic API 和 AWS 上的 Claude Platform 上,升级(如 [`opusplan`](#opusplan-model-setting))到被排除的模型会使用升级系列的最新允许版本。在具有特定于提供商的模型 ID 的提供商上,以及当没有版本被允许时,升级被跳过,规划继续在会话的模型上进行181* **Plan Mode 升级**:在 Anthropic API 和 AWS 上的 Claude Platform 上,升级(如 [`opusplan`](#opusplan-model-setting))到被排除的模型会使用升级系列的最新允许版本。在具有特定于提供商的模型 ID 的提供商上,以及当没有版本被允许时,升级被跳过,规划继续在会话的模型上进行

182* **[自动模型回退](#automatic-model-fallback)**:目标被排除的回退不会运行,因此标记的请求以拒绝结束182* **[自动模型回退](#automatic-model-fallback)**:目标被排除的回退不会运行,因此标记的请求以拒绝结束

183* **[快速模式](/zh-CN/fast-mode)**:当会话之后运行的模型在允许列表外时,启用快速模式被拒绝183* **[快速模式](/docs/zh-CN/fast-mode)**:当会话之后运行的模型在允许列表外时,启用快速模式被拒绝

184 184 

185```json theme={null}185```json theme={null}

186{186{


196 196 

197| 交付机制 | CLI 和 IDE | 桌面本地会话 | Web、移动和云会话 | Agent SDK 和非交互式 | Cowork |197| 交付机制 | CLI 和 IDE | 桌面本地会话 | Web、移动和云会话 | Agent SDK 和非交互式 | Cowork |

198| :------------------------------------------------- | :-------- | :----- | :--------- | :-------------- | :--------- |198| :------------------------------------------------- | :-------- | :----- | :--------- | :-------------- | :--------- |

199| 来自管理控制台的[服务器管理的设置](/zh-CN/server-managed-settings) | 强制执行 | 强制执行 | 强制执行 | 强制执行 | 未交付 |199| 来自管理控制台的[服务器管理的设置](/docs/zh-CN/server-managed-settings) | 强制执行 | 强制执行 | 强制执行 | 强制执行 | 未交付 |

200| [MDM 或托管设置文件](/zh-CN/settings#settings-files) | 强制执行 | 强制执行 | 未交付 | 强制执行 | 在部署的地方强制执行 |200| [MDM 或托管设置文件](/docs/zh-CN/settings#settings-files) | 强制执行 | 强制执行 | 未交付 | 强制执行 | 在部署的地方强制执行 |

201 201 

202* 云会话在[网络上的 Claude Code](/zh-CN/claude-code-on-the-web) 或桌面应用中运行在 Anthropic 管理的虚拟机上:部署到您的设备的设置无法到达它们,因此通过服务器管理的设置交付允许列表。云会话中的中途模型切换在请求的模型被允许列表排除时被拒绝。服务器端拒绝在会话创建时适用于[组织模型限制](#organization-model-restrictions),而不是 `availableModels` 设置键。202* 云会话在[网络上的 Claude Code](/docs/zh-CN/claude-code-on-the-web) 或桌面应用中运行在 Anthropic 管理的虚拟机上:部署到您的设备的设置无法到达它们,因此通过服务器管理的设置交付允许列表。云会话中的中途模型切换在请求的模型被允许列表排除时被拒绝。服务器端拒绝在会话创建时适用于[组织模型限制](#organization-model-restrictions),而不是 `availableModels` 设置键。

203* Cowork 是 Claude 桌面应用中的代理工作选项卡,不是 Claude Code 表面,按设计不接收服务器管理的设置。托管设置文件在会话运行的地方存在时适用于 Cowork 会话;远程 Cowork 会话运行在 Anthropic 管理的虚拟机上,其中不存在设备部署的文件。203* Cowork 是 Claude 桌面应用中的代理工作选项卡,不是 Claude Code 表面,按设计不接收服务器管理的设置。托管设置文件在会话运行的地方存在时适用于 Cowork 会话;远程 Cowork 会话运行在 Anthropic 管理的虚拟机上,其中不存在设备部署的文件。

204* [第三方提供商](/zh-CN/server-managed-settings#platform-availability)上的会话,如 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 和 [AWS 上的 Claude Platform](/zh-CN/claude-platform-on-aws),不接收服务器管理的设置,因此在那里通过 MDM 或托管设置文件交付允许列表。204* [第三方提供商](/docs/zh-CN/server-managed-settings#platform-availability)上的会话,如 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 和 [AWS 上的 Claude Platform](/docs/zh-CN/claude-platform-on-aws),不接收服务器管理的设置,因此在那里通过 MDM 或托管设置文件交付允许列表。

205* 服务器管理的交付还需要会话使用组织登录或直接配置的 API 密钥进行身份验证。仅通过 [`apiKeyHelper`](/zh-CN/settings#available-settings) 脚本生成密钥的队列应通过 MDM 或托管设置文件交付允许列表。205* 服务器管理的交付还需要会话使用组织登录或直接配置的 API 密钥进行身份验证。仅通过 [`apiKeyHelper`](/docs/zh-CN/settings#available-settings) 脚本生成密钥的队列应通过 MDM 或托管设置文件交付允许列表。

206* 桌面代码选项卡还托管 [SSH 会话](/zh-CN/desktop#ssh-sessions),它们从运行的远程主机读取托管设置文件。请参阅[桌面托管设置](/zh-CN/desktop#managed-settings)。206* 桌面代码选项卡还托管 [SSH 会话](/docs/zh-CN/desktop#ssh-sessions),它们从运行的远程主机读取托管设置文件。请参阅[桌面托管设置](/docs/zh-CN/desktop#managed-settings)。

207* claude.ai 和桌面应用中的模型选择器隐藏或灰显您的组织允许列表排除的模型。选择器状态是用户的便利;强制执行发生在会话中。207* claude.ai 和桌面应用中的模型选择器隐藏或灰显您的组织允许列表排除的模型。选择器状态是用户的便利;强制执行发生在会话中。

208 208 

209<h3 id="default-model-behavior">209<h3 id="default-model-behavior">


231 231 

232当 `availableModels` 未设置或为空时,`enforceAvailableModels` 无效:使用 `availableModels: []`,帐户类型的默认模型保持可用,因此该设置无法将用户锁定在每个模型之外。当 `availableModels` 非空但没有条目解析为允许的和可用的模型时,强制执行降级,"默认"回退到帐户类型默认值,警告仅在 `--debug` 下可见。在列表中保持至少一个保证可用的条目以避免这种情况。232当 `availableModels` 未设置或为空时,`enforceAvailableModels` 无效:使用 `availableModels: []`,帐户类型的默认模型保持可用,因此该设置无法将用户锁定在每个模型之外。当 `availableModels` 非空但没有条目解析为允许的和可用的模型时,强制执行降级,"默认"回退到帐户类型默认值,警告仅在 `--debug` 下可见。在列表中保持至少一个保证可用的条目以避免这种情况。

233 233 

234在[最高优先级托管源](/zh-CN/settings#settings-precedence)中部署两个键:管理员部署的托管源不合并,因此放在托管设置文件中的一对在管理控制台交付任何设置时被忽略。234在[最高优先级托管源](/docs/zh-CN/settings#settings-precedence)中部署两个键:管理员部署的托管源不合并,因此放在托管设置文件中的一对在管理控制台交付任何设置时被忽略。

235 235 

236<h3 id="control-the-model-users-run-on">236<h3 id="control-the-model-users-run-on">

237 控制用户运行的模型237 控制用户运行的模型


265 合并行为265 合并行为

266</h3>266</h3>

267 267 

268当[最高优先级托管设置源](/zh-CN/server-managed-settings#settings-precedence)定义 `availableModels` 时,仅该列表适用:用户、项目或本地设置中的条目无法扩展它,管理员部署的托管源不相互合并,因此在托管设置文件中部署的列表在服务器管理的设置交付任何键时被忽略。否则,来自用户、项目和本地设置的列表像其他数组设置一样[连接和去重](/zh-CN/settings#settings-precedence)。{/* min-version: 2.1.175 */}从 Claude Code v2.1.175 开始,托管列表替换较低优先级条目;早期版本合并它们。268当[最高优先级托管设置源](/docs/zh-CN/server-managed-settings#settings-precedence)定义 `availableModels` 时,仅该列表适用:用户、项目或本地设置中的条目无法扩展它,管理员部署的托管源不相互合并,因此在托管设置文件中部署的列表在服务器管理的设置交付任何键时被忽略。否则,来自用户、项目和本地设置的列表像其他数组设置一样[连接和去重](/docs/zh-CN/settings#settings-precedence)。从 Claude Code v2.1.175 开始,托管列表替换较低优先级条目;早期版本合并它们。

269 269 

270在有效列表中,命名系列中特定模型的条目,无论是版本前缀还是完整模型 ID,都禁用该系列的通配符条目:`["sonnet", "claude-sonnet-4-5"]` 仅允许 Sonnet 4.5 版本,而不是每个 Sonnet 模型。270在有效列表中,命名系列中特定模型的条目,无论是版本前缀还是完整模型 ID,都禁用该系列的通配符条目:`["sonnet", "claude-sonnet-4-5"]` 仅允许 Sonnet 4.5 版本,而不是每个 Sonnet 模型。

271 271 


273 Mantle 模型 ID273 Mantle 模型 ID

274</h3>274</h3>

275 275 

276当启用[Amazon Bedrock Mantle 端点](/zh-CN/amazon-bedrock#use-the-mantle-endpoint)时,`availableModels` 中以 `anthropic.` 开头的条目会作为自定义选项添加到 `/model` 选择器,并路由到 Mantle 端点。这是对[为第三方部署固定模型](#pin-models-for-third-party-deployments)中描述的别名匹配的例外。该设置仍然将选择器限制为列出的条目,Mantle ID 嵌入系列名称,因此它计为特定条目并禁用该系列的通配符:在任何 Mantle ID 旁边,列出您想保持可选择的版本前缀或完整 ID。请参阅[合并行为](#merge-behavior)。276当启用[Amazon Bedrock Mantle 端点](/docs/zh-CN/amazon-bedrock#use-the-mantle-endpoint)时,`availableModels` 中以 `anthropic.` 开头的条目会作为自定义选项添加到 `/model` 选择器,并路由到 Mantle 端点。这是对[为第三方部署固定模型](#pin-models-for-third-party-deployments)中描述的别名匹配的例外。该设置仍然将选择器限制为列出的条目,Mantle ID 嵌入系列名称,因此它计为特定条目并禁用该系列的通配符:在任何 Mantle ID 旁边,列出您想保持可选择的版本前缀或完整 ID。请参阅[合并行为](#merge-behavior)。

277 277 

278<h3 id="organization-model-restrictions">278<h3 id="organization-model-restrictions">

279 组织模型限制279 组织模型限制


283 283 

284此限制在成员登录或使用自己的 API 密钥时适用。组织范围的凭证(如组织服务密钥)不与用户绑定,因此限制不适用于它们。284此限制在成员登录或使用自己的 API 密钥时适用。组织范围的凭证(如组织服务密钥)不与用户绑定,因此限制不适用于它们。

285 285 

286Claude 控制台没有模型限制控制。没有 Claude Enterprise 计划的组织(包括其成员通过 Anthropic API 进行身份验证的组织)改用[托管设置](/zh-CN/settings#settings-files)中的 [`availableModels`](#restrict-model-selection) 来限制模型,添加 [`enforceAvailableModels`](#enforce-the-allowlist-for-the-default-model) 来覆盖"默认"选项。这些设置由 Claude Code 本身强制执行,而不是由服务器强制执行。286Claude 控制台没有模型限制控制。没有 Claude Enterprise 计划的组织(包括其成员通过 Anthropic API 进行身份验证的组织)改用[托管设置](/docs/zh-CN/settings#settings-files)中的 [`availableModels`](#restrict-model-selection) 来限制模型,添加 [`enforceAvailableModels`](#enforce-the-allowlist-for-the-default-model) 来覆盖"默认"选项。这些设置由 Claude Code 本身强制执行,而不是由服务器强制执行。

287 287 

288受限制的模型在 `/model` 选择器中被隐藏。使用 `--model`、`ANTHROPIC_MODEL` 环境变量或 `model` 设置按名称选择它会显示通知 `Model "<name>" is restricted by your organization's settings. Using <model> instead.`,会话在允许的模型上启动。为受限制的模型键入 `/model <name>` 会被拒绝,显示 `Model '<name>' is restricted by your organization's settings. Run /model to choose a different model.`,会话保持其当前模型。288受限制的模型在 `/model` 选择器中被隐藏。使用 `--model`、`ANTHROPIC_MODEL` 环境变量或 `model` 设置按名称选择它会显示通知 `Model "<name>" is restricted by your organization's settings. Using <model> instead.`,会话在允许的模型上启动。为受限制的模型键入 `/model <name>` 会被拒绝,显示 `Model '<name>' is restricted by your organization's settings. Run /model to choose a different model.`,会话保持其当前模型。

289 289 


296* Haiku 模型始终可用,无法禁用,因此每个成员至少保持一个可用模型。296* Haiku 模型始终可用,无法禁用,因此每个成员至少保持一个可用模型。

297* 访问更改在约一分钟内对新请求生效;`/model` 选择器在下次会话启动时反映它。297* 访问更改在约一分钟内对新请求生效;`/model` 选择器在下次会话启动时反映它。

298 298 

299两种限制一起适用:仅当模型被 `availableModels` 允许且不被组织限制时,它才可选择。组织限制被交付到 Anthropic API 和 [LLM 网关](/zh-CN/llm-gateway)部署上的会话。Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 和 AWS 上的 Claude Platform 上的会话不接收它们,因此在那些提供商上改用 `availableModels`。299两种限制一起适用:仅当模型被 `availableModels` 允许且不被组织限制时,它才可选择。组织限制被交付到 Anthropic API 和 [LLM 网关](/docs/zh-CN/llm-gateway)部署上的会话。Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 和 AWS 上的 Claude Platform 上的会话不接收它们,因此在那些提供商上改用 `availableModels`。

300 300 

301<h2 id="organization-default-model">301<h2 id="organization-default-model">

302 组织默认模型302 组织默认模型

303</h2>303</h2>

304 304 

305{/* plan-availability: feature=org-default-model plans=enterprise */}

306 

307Claude Enterprise 计划上的组织管理员可以从 claude.ai 管理控制台为 Claude Code 成员设置默认模型,适用于整个组织或按自定义角色。设置后,"默认"选项会解析为该模型,而不是[账户类型默认](#default-model-setting)。需要 Claude Code v2.1.196 或更高版本。305Claude Enterprise 计划上的组织管理员可以从 claude.ai 管理控制台为 Claude Code 成员设置默认模型,适用于整个组织或按自定义角色。设置后,"默认"选项会解析为该模型,而不是[账户类型默认](#default-model-setting)。需要 Claude Code v2.1.196 或更高版本。

308 306 

309`/model` 选择器中的"默认"行显示组织默认值的名称,标签为"Org default"。无论管理员为整个组织还是为您的角色设置默认值,标签都显示"Org default"。角色默认值涵盖该自定义角色的成员,优先于组织范围的默认值;当您的多个角色设置不同的默认值时,最强大的模型适用。307`/model` 选择器中的"默认"行显示组织默认值的名称,标签为"Org default"。无论管理员为整个组织还是为您的角色设置默认值,标签都显示"Org default"。角色默认值涵盖该自定义角色的成员,优先于组织范围的默认值;当您的多个角色设置不同的默认值时,最强大的模型适用。


311组织默认值是一个起点,而不是限制,任何其他模型选择都优先于它:309组织默认值是一个起点,而不是限制,任何其他模型选择都优先于它:

312 310 

313* `--model` 标志和 `ANTHROPIC_MODEL` 环境变量311* `--model` 标志和 `ANTHROPIC_MODEL` 环境变量

314* [托管设置](/zh-CN/settings#settings-files)中的 `model` 值或通过 `--settings` 提供的值312* [托管设置](/docs/zh-CN/settings#settings-files)中的 `model` 值或通过 `--settings` 提供的值

315* 您的用户、项目或本地设置中的 `model` 值,包括您使用 `/model` 保存的模型313* 您的用户、项目或本地设置中的 `model` 值,包括您使用 `/model` 保存的模型

316 314 

317管理员还可以配置组织默认值以覆盖用户选择。启用覆盖后,它优先于用户、项目和本地设置中的 `model` 值,因此您使用 `/model` 保存的模型适用于当前会话,组织默认值在下次启动时返回。当您的选择不同时,`/model` 显示 `Your organization's default (<model>) applies on restart`。`--model` 标志、`ANTHROPIC_MODEL`、托管设置和 `--settings` 即使启用覆盖也仍然优先。覆盖仅对有限的组织集可用;向您的 Anthropic 账户团队询问可用性。315管理员还可以配置组织默认值以覆盖用户选择。启用覆盖后,它优先于用户、项目和本地设置中的 `model` 值,因此您使用 `/model` 保存的模型适用于当前会话,组织默认值在下次启动时返回。当您的选择不同时,`/model` 显示 `Your organization's default (<model>) applies on restart`。`--model` 标志、`ANTHROPIC_MODEL`、托管设置和 `--settings` 即使启用覆盖也仍然优先。覆盖仅对有限的组织集可用;向您的 Anthropic 账户团队询问可用性。


326 324 

327* [`availableModels`](#restrict-model-selection) 单独从不限制"默认"选项,因此允许列表外的组织默认值仍然适用。当也设置了 [`enforceAvailableModels`](#enforce-the-allowlist-for-the-default-model) 时,允许列表外的组织默认值会重新映射到第一个允许列表条目,就像任何其他默认值一样325* [`availableModels`](#restrict-model-selection) 单独从不限制"默认"选项,因此允许列表外的组织默认值仍然适用。当也设置了 [`enforceAvailableModels`](#enforce-the-allowlist-for-the-default-model) 时,允许列表外的组织默认值会重新映射到第一个允许列表条目,就像任何其他默认值一样

328* [组织模型限制](#organization-model-restrictions)拒绝的组织默认值会被替换为其系列中最新的允许模型,或当该系列的每个版本都被限制时被替换为较低成本的系列326* [组织模型限制](#organization-model-restrictions)拒绝的组织默认值会被替换为其系列中最新的允许模型,或当该系列的每个版本都被限制时被替换为较低成本的系列

329* 对您的账户完全不可用的组织默认值,例如[零数据保留](/zh-CN/zero-data-retention)下的 Fable 5,会被跳过,"默认"选项解析为账户类型默认值327* 对您的账户完全不可用的组织默认值,例如[零数据保留](/docs/zh-CN/zero-data-retention)下的 Fable 5,会被跳过,"默认"选项解析为账户类型默认值

330 328 

331从 v2.1.199 开始,当组织默认值是与您的账户类型通常默认值不同的模型系列时,`/model` 选择器为该通常系列保持一个单独的行,因此您仍然可以为会话切换到它。在 v2.1.196 到 v2.1.198 中,该行在选择器中缺失。329从 v2.1.199 开始,当组织默认值是与您的账户类型通常默认值不同的模型系列时,`/model` 选择器为该通常系列保持一个单独的行,因此您仍然可以为会话切换到它。在 v2.1.196 到 v2.1.198 中,该行在选择器中缺失。

332 330 

333组织默认值被交付到使用 Anthropic API 进行身份验证的会话。[LLM 网关](/zh-CN/llm-gateway)部署、Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 和 AWS 上的 Claude Platform 上的会话不接收它。要在这些部署上设置默认值,改用[托管设置](/zh-CN/settings#settings-files)中的 `model` 键。331组织默认值被交付到使用 Anthropic API 进行身份验证的会话。[LLM 网关](/docs/zh-CN/llm-gateway)部署、Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 和 AWS 上的 Claude Platform 上的会话不接收它。要在这些部署上设置默认值,改用[托管设置](/docs/zh-CN/settings#settings-files)中的 `model` 键。

334 332 

335<h2 id="organization-effort-limits">333<h2 id="organization-effort-limits">

336 组织工作量限制334 组织工作量限制

337</h2>335</h2>

338 336 

339{/* plan-availability: feature=org-effort-limits plans=enterprise */}

340 

341Claude Enterprise 计划上的组织管理员可以为每个自定义角色按模型设置最大[工作量级别](#adjust-effort-level),以及角色级别的[组织模型限制](#organization-model-restrictions)。超过上限的级别不在 `/effort` 选择器中提供,使用 `--effort` 或 `/effort` 命名更高级别会在上限处运行。在交互式会话和纯文本 `--print` 运行中,警告命名请求的和应用的级别;使用 `json` 或 `stream-json` 输出或在后台代理中,限制无声应用。上限按模型,因此切换模型可以改变哪些级别可用。当您的多个角色授予相同模型时,最不限制的上限适用。需要 Claude Code v2.1.195 或更高版本。337Claude Enterprise 计划上的组织管理员可以为每个自定义角色按模型设置最大[工作量级别](#adjust-effort-level),以及角色级别的[组织模型限制](#organization-model-restrictions)。超过上限的级别不在 `/effort` 选择器中提供,使用 `--effort` 或 `/effort` 命名更高级别会在上限处运行。在交互式会话和纯文本 `--print` 运行中,警告命名请求的和应用的级别;使用 `json` 或 `stream-json` 输出或在后台代理中,限制无声应用。上限按模型,因此切换模型可以改变哪些级别可用。当您的多个角色授予相同模型时,最不限制的上限适用。需要 Claude Code v2.1.195 或更高版本。

342 338 

343工作量限制与[组织模型限制](#organization-model-restrictions)一起交付,并遵循相同的提供商可用性:Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 和 AWS 上的 Claude Platform 上的会话不接收它们。339工作量限制与[组织模型限制](#organization-model-restrictions)一起交付,并遵循相同的提供商可用性:Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 和 AWS 上的 Claude Platform 上的会话不接收它们。


359 355 

360Enterprise 按使用量付费是指按使用量而非按订阅席位计费的 Enterprise 组织。356Enterprise 按使用量付费是指按使用量而非按订阅席位计费的 Enterprise 组织。

361 357 

362{/* min-version: 2.1.207 */}在 v2.1.207 之前,`default` 在 AWS 上的 Claude Platform 上解析为 Opus 4.7,在 Amazon Bedrock 和 Google Cloud 的 Agent Platform 上解析为 Sonnet 4.5。358在 v2.1.207 之前,`default` 在 AWS 上的 Claude Platform 上解析为 Opus 4.7,在 Amazon Bedrock 和 Google Cloud 的 Agent Platform 上解析为 Sonnet 4.5。

363 359 

364当管理员设置了[组织默认模型](#organization-default-model)时,`default` 解析为该模型,而不是上面的账户类型默认值。需要 Claude Code v2.1.196 或更高版本。360当管理员设置了[组织默认模型](#organization-default-model)时,`default` 解析为该模型,而不是上面的账户类型默认值。需要 Claude Code v2.1.196 或更高版本。

365 361 


382 378 

383当 [`availableModels`](#restrict-model-selection) 排除最新的 Opus 但允许较旧版本时,例如 `["sonnet", "claude-opus-4-6"]`,`opusplan` 为规划使用最新的允许 Opus,仅当每个 Opus 都被排除时才保持在 Sonnet 上。通常会在 Plan Mode 中升级到 Sonnet 的 Haiku 会话同样使用最新的允许 Sonnet,仅当每个 Sonnet 都被排除时才保持在 Haiku 上。在 v2.1.205 之前,当最新版本的升级系列被排除时,Plan Mode 保持在会话的模型上,即使允许列表允许较旧的版本。379当 [`availableModels`](#restrict-model-selection) 排除最新的 Opus 但允许较旧版本时,例如 `["sonnet", "claude-opus-4-6"]`,`opusplan` 为规划使用最新的允许 Opus,仅当每个 Opus 都被排除时才保持在 Sonnet 上。通常会在 Plan Mode 中升级到 Sonnet 的 Haiku 会话同样使用最新的允许 Sonnet,仅当每个 Sonnet 都被排除时才保持在 Haiku 上。在 v2.1.205 之前,当最新版本的升级系列被排除时,Plan Mode 保持在会话的模型上,即使允许列表允许较旧的版本。

384 380 

385较旧的允许版本的替换适用于 Anthropic API 和 [Claude Platform on AWS](/zh-CN/claude-platform-on-aws)。在 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 和 Mantle 上,其部署使用特定于提供商的模型 ID,当升级模型被排除时,Plan Mode 保持在会话的模型上。381较旧的允许版本的替换适用于 Anthropic API 和 [Claude Platform on AWS](/docs/zh-CN/claude-platform-on-aws)。在 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 和 Mantle 上,其部署使用特定于提供商的模型 ID,当升级模型被排除时,Plan Mode 保持在会话的模型上。

386 382 

387有关 Claude 在任务中途决定何时咨询第二个模型而不是在 Plan 边界处切换的混合方法,请参阅 [advisor tool](/zh-CN/advisor)。383有关 Claude 在任务中途决定何时咨询第二个模型而不是在 Plan 边界处切换的混合方法,请参阅 [advisor tool](/docs/zh-CN/advisor)。

388 384 

389<h3 id="fallback-model-chains">385<h3 id="fallback-model-chains">

390 回退模型链386 回退模型链


400claude --fallback-model sonnet,haiku396claude --fallback-model sonnet,haiku

401```397```

402 398 

403要在会话间持久化链,请在 [settings](/zh-CN/settings) 中将 `fallbackModel` 设置为数组:399要在会话间持久化链,请在 [settings](/docs/zh-CN/settings) 中将 `fallbackModel` 设置为数组:

404 400 

405```json theme={null}401```json theme={null}

406{402{


421 417 

422本部分涵盖来自 Fable 5 的基于内容的回退。有关模型过载或不可用时的基于可用性的回退,请参阅 [Fallback model chains](#fallback-model-chains)。418本部分涵盖来自 Fable 5 的基于内容的回退。有关模型过载或不可用时的基于可用性的回退,请参阅 [Fallback model chains](#fallback-model-chains)。

423 419 

424Fable 5 运行时具有网络安全和生物学内容的安全分类器。当分类器标记请求时,Claude Code 在您提供商的默认 Opus 模型上重新运行该请求,并在记录中显示通知。在 Anthropic API、[LLM gateway](/zh-CN/llm-gateway) 部署和 [Claude Platform on AWS](/zh-CN/claude-platform-on-aws) 上,该模型是 Opus 4.8。在 [Claude apps gateway](/zh-CN/claude-apps-gateway) 上,它是 Opus 4.7,除非您将 [`opus` 别名](#environment-variables)指向另一个模型。420Fable 5 运行时具有网络安全和生物学内容的安全分类器。当分类器标记请求时,Claude Code 在您提供商的默认 Opus 模型上重新运行该请求,并在记录中显示通知。在 Anthropic API、[LLM gateway](/docs/zh-CN/llm-gateway) 部署和 [Claude Platform on AWS](/docs/zh-CN/claude-platform-on-aws) 上,该模型是 Opus 4.8。在 [Claude apps gateway](/docs/zh-CN/claude-apps-gateway) 上,它是 Opus 4.7,除非您将 [`opus` 别名](#environment-variables)指向另一个模型。

425 421 

426会话随后在该 Opus 模型上继续。要返回 Fable 5,请运行 `/model fable`。422会话随后在该 Opus 模型上继续。要返回 Fable 5,请运行 `/model fable`。

427 423 


444某些情况的行为不同:440某些情况的行为不同:

445 441 

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

447* 在移动 [Claude Code on the web](/zh-CN/claude-code-on-the-web) 会话上,不支持编辑和重试。切换模型,或从桌面浏览器或桌面应用继续会话。443* 在移动 [Claude Code on the web](/docs/zh-CN/claude-code-on-the-web) 会话上,不支持编辑和重试。切换模型,或从桌面浏览器或桌面应用继续会话。

448* 在 [non-interactive mode](/zh-CN/cli-reference#cli-flags) 和无法显示提示的 SDK 集成中,标记的请求以拒绝结束轮次。444* 在 [non-interactive mode](/docs/zh-CN/cli-reference#cli-flags) 和无法显示提示的 SDK 集成中,标记的请求以拒绝结束轮次。

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

450 446 

451<h4 id="enable-fallback-on-bedrock-agent-platform-and-foundry">447<h4 id="enable-fallback-on-bedrock-agent-platform-and-foundry">

452 在 Bedrock、Agent Platform 和 Foundry 上启用回退448 在 Bedrock、Agent Platform 和 Foundry 上启用回退

453</h4>449</h4>

454 450 

455在 [Amazon Bedrock](/zh-CN/amazon-bedrock)、[Google Cloud 的 Agent Platform](/zh-CN/google-vertex-ai) 和 [Microsoft Foundry](/zh-CN/microsoft-foundry) 上,模型 ID 是特定于提供商的,因此自动回退仅在 Claude Code 可以识别两个涉及的模型时运行:451在 [Amazon Bedrock](/docs/zh-CN/amazon-bedrock)、[Google Cloud 的 Agent Platform](/docs/zh-CN/google-vertex-ai) 和 [Microsoft Foundry](/docs/zh-CN/microsoft-foundry) 上,模型 ID 是特定于提供商的,因此自动回退仅在 Claude Code 可以识别两个涉及的模型时运行:

456 452 

457* Claude Code 必须将当前模型识别为 Fable 5:模型 ID 包含 `claude-fable-5`,匹配 `ANTHROPIC_DEFAULT_FABLE_MODEL` 的值,或使用 [`modelOverrides`](#override-model-ids-per-version) 映射。453* Claude Code 必须将当前模型识别为 Fable 5:模型 ID 包含 `claude-fable-5`,匹配 `ANTHROPIC_DEFAULT_FABLE_MODEL` 的值,或使用 [`modelOverrides`](#override-model-ids-per-version) 映射。

458* 回退目标必须解析为 Opus 模型:`ANTHROPIC_DEFAULT_OPUS_MODEL` 的值(如果设置),否则提供商模型列表中的 Opus 4.8 条目。454* 回退目标必须解析为 Opus 模型:`ANTHROPIC_DEFAULT_OPUS_MODEL` 的值(如果设置),否则提供商模型列表中的 Opus 4.8 条目。


485 481 

486Fable 5、Sonnet 5、Opus 4.8、Opus 4.6 和 Sonnet 4.6 上的默认工作量是 `high`,Opus 4.7 上的默认工作量是 `xhigh`。482Fable 5、Sonnet 5、Opus 4.8、Opus 4.6 和 Sonnet 4.6 上的默认工作量是 `high`,Opus 4.7 上的默认工作量是 `xhigh`。

487 483 

488当您首次运行 Fable 5、Opus 4.8 或 Opus 4.7 时,Claude Code 会应用该模型的默认工作量,即使您之前为另一个模型设置了不同的级别:Fable 5 和 Opus 4.8 上的 `high`,Opus 4.7 上的 `xhigh`。切换后再次运行 `/effort` 以选择不同的级别。该默认值在会话间保持,直到您做出明确的工作量选择,例如在交互式会话中运行 `/effort` 或使用 `--effort` 启动。`low`、`medium`、`high` 和 `xhigh` 在会话间持续存在。{/* min-version: 2.1.205 */}在 [non-interactive mode](/zh-CN/headless) 中使用 `/effort` 时,带有 `-p` 标志,仅适用于当前会话,不会保存为您的默认值。非交互式 `/effort` 也无法释放上面的模型默认保持:在 Fable 5、Opus 4.8 和 Opus 4.7 上,它报告 `Not applied`,会话保持在模型的默认工作量,因此改为在启动时传递 `--effort`。`max` 提供最深入的推理,对令牌支出没有限制,仅适用于当前会话,除非通过 `CLAUDE_CODE_EFFORT_LEVEL` 环境变量设置。484当您首次运行 Fable 5、Opus 4.8 或 Opus 4.7 时,Claude Code 会应用该模型的默认工作量,即使您之前为另一个模型设置了不同的级别:Fable 5 和 Opus 4.8 上的 `high`,Opus 4.7 上的 `xhigh`。切换后再次运行 `/effort` 以选择不同的级别。该默认值在会话间保持,直到您做出明确的工作量选择,例如在交互式会话中运行 `/effort` 或使用 `--effort` 启动。`low`、`medium`、`high` 和 `xhigh` 在会话间持续存在。在 [non-interactive mode](/docs/zh-CN/headless) 中使用 `/effort` 时,带有 `-p` 标志,仅适用于当前会话,不会保存为您的默认值。非交互式 `/effort` 也无法释放上面的模型默认保持:在 Fable 5、Opus 4.8 和 Opus 4.7 上,它报告 `Not applied`,会话保持在模型的默认工作量,因此改为在启动时传递 `--effort`。`max` 提供最深入的推理,对令牌支出没有限制,仅适用于当前会话,除非通过 `CLAUDE_CODE_EFFORT_LEVEL` 环境变量设置。

489 485 

490`/effort` 菜单还提供 `ultracode`。Ultracode 是一个 Claude Code 设置,而不是模型工作量级别:它向模型发送 `xhigh`,并且还让 Claude 为实质性任务编排[动态工作流](/zh-CN/workflows)。它仅适用于当前会话。486`/effort` 菜单还提供 `ultracode`。Ultracode 是一个 Claude Code 设置,而不是模型工作量级别:它向模型发送 `xhigh`,并且还让 Claude 为实质性任务编排[动态工作流](/docs/zh-CN/workflows)。它仅适用于当前会话。

491 487 

492您可以通过以下任何方式打开 ultracode:488您可以通过以下任何方式打开 ultracode:

493 489 

494* **`/effort`**:运行 `/effort ultracode`,或从菜单中选择它490* **`/effort`**:运行 `/effort ultracode`,或从菜单中选择它

495* **`--effort` 标志**:使用 `claude --effort ultracode` 启动,这会在 `xhigh` 工作量下启动会话并打开 ultracode491* **`--effort` 标志**:使用 `claude --effort ultracode` 启动,这会在 `xhigh` 工作量下启动会话并打开 ultracode

496* **`--settings` 或 Agent SDK 控制请求**:传递 `"ultracode": true`。[`applyFlagSettings()`](/zh-CN/agent-sdk/typescript#applyflagsettings) 请求也接受 `effortLevel: "ultracode"`492* **`--settings` 或 Agent SDK 控制请求**:传递 `"ultracode": true`。[`applyFlagSettings()`](/docs/zh-CN/agent-sdk/typescript#applyflagsettings) 请求也接受 `effortLevel: "ultracode"`

497 493 

498将 `ultracode` 传递给 `--effort` 标志或 Agent SDK `effortLevel` 值需要 Claude Code v2.1.203 或更高版本。在 v2.1.203 之前,`--effort ultracode` 打印 `Unknown --effort value 'ultracode'`,会话以默认工作量启动。494将 `ultracode` 传递给 `--effort` 标志或 Agent SDK `effortLevel` 值需要 Claude Code v2.1.203 或更高版本。在 v2.1.203 之前,`--effort ultracode` 打印 `Unknown --effort value 'ultracode'`,会话以默认工作量启动。

499 495 

500持久化的 `effortLevel` 设置和 `CLAUDE_CODE_EFFORT_LEVEL` 环境变量不接受 `ultracode`。496持久化的 `effortLevel` 设置和 `CLAUDE_CODE_EFFORT_LEVEL` 环境变量不接受 `ultracode`。

501 497 

502当 ultracode 不可用时,例如当[工作流被关闭](/zh-CN/workflows#turn-workflows-off)时,`--effort ultracode` 仅设置 `xhigh` 工作量。498当 ultracode 不可用时,例如当[工作流被关闭](/docs/zh-CN/workflows#turn-workflows-off)时,`--effort ultracode` 仅设置 `xhigh` 工作量。

503 499 

504<h4 id="choose-an-effort-level">500<h4 id="choose-an-effort-level">

505 选择工作量级别501 选择工作量级别


514| `high` | 平衡令牌使用和智能。Fable 5、Sonnet 5、Opus 4.8、Opus 4.6 和 Sonnet 4.6 上的默认值 |510| `high` | 平衡令牌使用和智能。Fable 5、Sonnet 5、Opus 4.8、Opus 4.6 和 Sonnet 4.6 上的默认值 |

515| `xhigh` | 更深入的推理,令牌支出更高。Opus 4.7 上的默认值 |511| `xhigh` | 更深入的推理,令牌支出更高。Opus 4.7 上的默认值 |

516| `max` | 可以改进困难任务的性能,但可能显示收益递减,容易过度思考。在广泛采用前进行测试 |512| `max` | 可以改进困难任务的性能,但可能显示收益递减,容易过度思考。在广泛采用前进行测试 |

517| `ultracode` | 一个 Claude Code 设置,为每个实质性任务规划一个[动态工作流](/zh-CN/workflows),每条消息进行 `xhigh` 推理。仅限会话 |513| `ultracode` | 一个 Claude Code 设置,为每个实质性任务规划一个[动态工作流](/docs/zh-CN/workflows),每条消息进行 `xhigh` 推理。仅限会话 |

518 514 

519工作量规模按模型校准,因此相同的级别名称在不同模型中不代表相同的基础值。515工作量规模按模型校准,因此相同的级别名称在不同模型中不代表相同的基础值。

520 516 


535* **`--effort` 标志**:在启动 Claude Code 时传递级别名称为单个会话设置531* **`--effort` 标志**:在启动 Claude Code 时传递级别名称为单个会话设置

536* **环境变量**:设置 `CLAUDE_CODE_EFFORT_LEVEL` 为级别名称或 `auto`532* **环境变量**:设置 `CLAUDE_CODE_EFFORT_LEVEL` 为级别名称或 `auto`

537* **设置**:在设置文件中将 `effortLevel` 设置为 `low`、`medium`、`high` 或 `xhigh`。`max` 和 `ultracode` 是[仅限会话](#adjust-effort-level)的,此处不接受533* **设置**:在设置文件中将 `effortLevel` 设置为 `low`、`medium`、`high` 或 `xhigh`。`max` 和 `ultracode` 是[仅限会话](#adjust-effort-level)的,此处不接受

538* **Skill 和 subagent frontmatter**:在 [skill](/zh-CN/skills#frontmatter-reference) 或 [subagent](/zh-CN/sub-agents#supported-frontmatter-fields) markdown 文件中设置 `effort` 以在该 skill 或 subagent 运行时覆盖工作量级别534* **Skill 和 subagent frontmatter**:在 [skill](/docs/zh-CN/skills#frontmatter-reference) 或 [subagent](/docs/zh-CN/sub-agents#supported-frontmatter-fields) markdown 文件中设置 `effort` 以在该 skill 或 subagent 运行时覆盖工作量级别

539 535 

540环境变量优先于所有其他方法,然后是您配置的级别,然后是模型默认值。Frontmatter 工作量在该 skill 或 subagent 活跃时应用,覆盖会话级别但不覆盖环境变量。536环境变量优先于所有其他方法,然后是您配置的级别,然后是模型默认值。Frontmatter 工作量在该 skill 或 subagent 活跃时应用,覆盖会话级别但不覆盖环境变量。

541 537 


549 545 

550Fable 5、Sonnet 5 和 Opus 4.7 及更高版本始终使用自适应推理。固定思考预算模式和 `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` 不适用于它们。546Fable 5、Sonnet 5 和 Opus 4.7 及更高版本始终使用自适应推理。固定思考预算模式和 `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` 不适用于它们。

551 547 

552在 Opus 4.6 和 Sonnet 4.6 上,您可以设置 `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1` 以恢复到由 `MAX_THINKING_TOKENS` 控制的先前固定思考预算。请参阅[环境变量](/zh-CN/env-vars)。548在 Opus 4.6 和 Sonnet 4.6 上,您可以设置 `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1` 以恢复到由 `MAX_THINKING_TOKENS` 控制的先前固定思考预算。请参阅[环境变量](/docs/zh-CN/env-vars)。

553 549 

554<h3 id="extended-thinking">550<h3 id="extended-thinking">

555 扩展思考551 扩展思考


561| :-------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |557| :-------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

562| 当前会话的切换 | 在 macOS 上按 `Option+T` 或在 Windows 和 Linux 上按 `Alt+T` |558| 当前会话的切换 | 在 macOS 上按 `Option+T` 或在 Windows 和 Linux 上按 `Alt+T` |

563| 设置全局默认值 | 运行 `/config` 并切换思考模式。保存为 `~/.claude/settings.json` 中的 `alwaysThinkingEnabled` |559| 设置全局默认值 | 运行 `/config` 并切换思考模式。保存为 `~/.claude/settings.json` 中的 `alwaysThinkingEnabled` |

564| 无论工作量如何禁用 | 设置 [`MAX_THINKING_TOKENS=0`](/zh-CN/env-vars),这会在 Anthropic API 上关闭思考,除了 Fable 5。在[第三方提供商](/zh-CN/third-party-integrations)上,这会改为省略 `thinking` 参数,自适应推理模型可能仍然思考。其他值仅适用于[固定思考预算](#adaptive-reasoning-and-fixed-thinking-budgets) |560| 无论工作量如何禁用 | 设置 [`MAX_THINKING_TOKENS=0`](/docs/zh-CN/env-vars),这会在 Anthropic API 上关闭思考,除了 Fable 5。在[第三方提供商](/docs/zh-CN/third-party-integrations)上,这会改为省略 `thinking` 参数,自适应推理模型可能仍然思考。其他值仅适用于[固定思考预算](#adaptive-reasoning-and-fixed-thinking-budgets) |

565 561 

566思考无法在 Fable 5 上关闭。会话切换、`alwaysThinkingEnabled` 和 `MAX_THINKING_TOKENS=0` 在那里无效,Fable 5 根据工作量级别决定每一步思考多少。562思考无法在 Fable 5 上关闭。会话切换、`alwaysThinkingEnabled` 和 `MAX_THINKING_TOKENS=0` 在那里无效,Fable 5 根据工作量级别决定每一步思考多少。

567 563 

568思考输出默认折叠。按 `Ctrl+O` 切换详细模式并将推理显示为灰色斜体文本。Anthropic API 上的交互式会话默认接收编辑后的思考块,因此如果您想在展开时获得完整摘要,请在[设置](/zh-CN/settings)中设置 `showThinkingSummaries: true`。您需要为所有生成的思考令牌付费,即使它们被折叠或编辑。564思考输出默认折叠。按 `Ctrl+O` 切换详细模式并将推理显示为灰色斜体文本。Anthropic API 上的交互式会话默认接收编辑后的思考块,因此如果您想在展开时获得完整摘要,请在[设置](/docs/zh-CN/settings)中设置 `showThinkingSummaries: true`。您需要为所有生成的思考令牌付费,即使它们被折叠或编辑。

569 565 

570<h3 id="extended-context">566<h3 id="extended-context">

571 扩展上下文567 扩展上下文


581| Pro | 需要[使用额度](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) | 需要[使用额度](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) |577| Pro | 需要[使用额度](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) | 需要[使用额度](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) |

582| API 和按使用量付费 | 完全访问 | 完全访问 |578| API 和按使用量付费 | 完全访问 | 完全访问 |

583 579 

584要完全禁用 1M 上下文,请设置 `CLAUDE_CODE_DISABLE_1M_CONTEXT=1`。这会从模型选择器中删除 1M 模型变体。请参阅[环境变量](/zh-CN/env-vars)。580要完全禁用 1M 上下文,请设置 `CLAUDE_CODE_DISABLE_1M_CONTEXT=1`。这会从模型选择器中删除 1M 模型变体。请参阅[环境变量](/docs/zh-CN/env-vars)。

585 581 

5861M 上下文窗口使用标准模型定价,超过 200K 的令牌无需额外费用。对于订阅中包含扩展上下文的计划,使用仍由您的订阅覆盖。对于通过使用额度访问扩展上下文的计划,令牌计入使用额度。5821M 上下文窗口使用标准模型定价,超过 200K 的令牌无需额外费用。对于订阅中包含扩展上下文的计划,使用仍由您的订阅覆盖。对于通过使用额度访问扩展上下文的计划,令牌计入使用额度。

587 583 


602 Sonnet 5 上下文窗口598 Sonnet 5 上下文窗口

603</h4>599</h4>

604 600 

605在 Anthropic API 上,Sonnet 5 始终使用 1M 上下文窗口运行。没有 200K 变体,没有可供选择的 `[1m]` 后缀,任何计划都不需要使用额度。会话在窗口填满前自动压缩,默认约为 967K 令牌;设置 [`CLAUDE_CODE_AUTO_COMPACT_WINDOW`](/zh-CN/env-vars) 以选择不同的阈值。601在 Anthropic API 上,Sonnet 5 始终使用 1M 上下文窗口运行。没有 200K 变体,没有可供选择的 `[1m]` 后缀,任何计划都不需要使用额度。会话在窗口填满前自动压缩,默认约为 967K 令牌;设置 [`CLAUDE_CODE_AUTO_COMPACT_WINDOW`](/docs/zh-CN/env-vars) 以选择不同的阈值。

606 602 

607两种配置会改为将窗口预算设为 200K,并在该边界自动压缩:603两种配置会改为将窗口预算设为 200K,并在该边界自动压缩:

608 604 

609* **LLM gateway**:当 `ANTHROPIC_BASE_URL` 指向[网关](/zh-CN/llm-gateway)时,Claude Code 无法验证 1M 支持。要使用完整窗口,请在模型选择器中选择 Sonnet 5 (1M context),它映射到 `sonnet[1m]`。605* **LLM gateway**:当 `ANTHROPIC_BASE_URL` 指向[网关](/docs/zh-CN/llm-gateway)时,Claude Code 无法验证 1M 支持。要使用完整窗口,请在模型选择器中选择 Sonnet 5 (1M context),它映射到 `sonnet[1m]`。

610* **`CLAUDE_CODE_DISABLE_1M_CONTEXT=1`**:将 Sonnet 5 会话视为具有 200K 窗口,适用于需要限制上下文的部署。606* **`CLAUDE_CODE_DISABLE_1M_CONTEXT=1`**:将 Sonnet 5 会话视为具有 200K 窗口,适用于需要限制上下文的部署。

611 607 

612<h2 id="checking-your-current-model">608<h2 id="checking-your-current-model">


615 611 

616您可以在两个位置查看您当前使用的模型:612您可以在两个位置查看您当前使用的模型:

617 613 

618* 在[状态行](/zh-CN/statusline)中(如果已配置)614* 在[状态行](/docs/zh-CN/statusline)中(如果已配置)

619* 在 `/status` 中,它也显示您的账户信息615* 在 `/status` 中,它也显示您的账户信息

620 616 

621<h2 id="add-a-custom-model-option">617<h2 id="add-a-custom-model-option">

622 添加自定义模型选项618 添加自定义模型选项

623</h2>619</h2>

624 620 

625使用 `ANTHROPIC_CUSTOM_MODEL_OPTION` 向 `/model` 选择器添加单个自定义条目,而无需替换内置别名。这对于测试 Claude Code 默认不列出的模型 ID 很有用。对于 LLM 网关部署,当设置 `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1` 时,Claude Code 可以从网关的 `/v1/models` 端点自动填充选择器,因此仅当发现被禁用或未返回您想要的模型时才需要此变量。请参阅 [网关模型发现](/zh-CN/llm-gateway-protocol#model-discovery)。621使用 `ANTHROPIC_CUSTOM_MODEL_OPTION` 向 `/model` 选择器添加单个自定义条目,而无需替换内置别名。这对于测试 Claude Code 默认不列出的模型 ID 很有用。对于 LLM 网关部署,当设置 `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1` 时,Claude Code 可以从网关的 `/v1/models` 端点自动填充选择器,因此仅当发现被禁用或未返回您想要的模型时才需要此变量。请参阅 [网关模型发现](/docs/zh-CN/llm-gateway-protocol#model-discovery)。

626 622 

627此示例设置所有三个变量以使网关路由的 Opus 部署可选择:623此示例设置所有三个变量以使网关路由的 Opus 部署可选择:

628 624 


647| `ANTHROPIC_DEFAULT_FABLE_MODEL` | 用于 `fable` 的模型,以及 Claude Code 识别为 Fable 5 的模型 ID,用于第三方提供商上的[自动模型回退](#automatic-model-fallback) |643| `ANTHROPIC_DEFAULT_FABLE_MODEL` | 用于 `fable` 的模型,以及 Claude Code 识别为 Fable 5 的模型 ID,用于第三方提供商上的[自动模型回退](#automatic-model-fallback) |

648| `ANTHROPIC_DEFAULT_OPUS_MODEL` | 用于 `opus` 的模型,或在 Plan Mode 活跃时用于 `opusplan` 的模型。 |644| `ANTHROPIC_DEFAULT_OPUS_MODEL` | 用于 `opus` 的模型,或在 Plan Mode 活跃时用于 `opusplan` 的模型。 |

649| `ANTHROPIC_DEFAULT_SONNET_MODEL` | 用于 `sonnet` 的模型,或在 Plan Mode 不活跃时用于 `opusplan` 的模型。 |645| `ANTHROPIC_DEFAULT_SONNET_MODEL` | 用于 `sonnet` 的模型,或在 Plan Mode 不活跃时用于 `opusplan` 的模型。 |

650| `ANTHROPIC_DEFAULT_HAIKU_MODEL` | 用于 `haiku` 的模型,或[后台功能](/zh-CN/costs#background-token-usage) |646| `ANTHROPIC_DEFAULT_HAIKU_MODEL` | 用于 `haiku` 的模型,或[后台功能](/docs/zh-CN/costs#background-token-usage) |

651| `CLAUDE_CODE_SUBAGENT_MODEL` | 用于所有 [subagents](/zh-CN/sub-agents#choose-a-model)、[agent teams](/zh-CN/agent-teams) 和 [workflow](/zh-CN/workflows) 运行的代理的模型。接受别名(如 `haiku`)或完整模型名称,并覆盖每次调用的 `model` 参数和 subagent 定义的 `model` frontmatter。设置为 `inherit` 以改用常规模型解析 |647| `CLAUDE_CODE_SUBAGENT_MODEL` | 用于所有 [subagents](/docs/zh-CN/sub-agents#choose-a-model)、[agent teams](/docs/zh-CN/agent-teams) 和 [workflow](/docs/zh-CN/workflows) 运行的代理的模型。接受别名(如 `haiku`)或完整模型名称,并覆盖每次调用的 `model` 参数和 subagent 定义的 `model` frontmatter。设置为 `inherit` 以改用常规模型解析 |

652 648 

653注意:`ANTHROPIC_SMALL_FAST_MODEL` 已弃用,改为使用 `ANTHROPIC_DEFAULT_HAIKU_MODEL`。649注意:`ANTHROPIC_SMALL_FAST_MODEL` 已弃用,改为使用 `ANTHROPIC_DEFAULT_HAIKU_MODEL`。

654 650 


656 为第三方部署固定模型652 为第三方部署固定模型

657</h3>653</h3>

658 654 

659当通过 [Amazon Bedrock](/zh-CN/amazon-bedrock)、[Google Cloud's Agent Platform](/zh-CN/google-vertex-ai)、[Microsoft Foundry](/zh-CN/microsoft-foundry) 或 [Claude Platform on AWS](/zh-CN/claude-platform-on-aws) 部署 Claude Code 时,在向用户推出前固定模型版本。655当通过 [Amazon Bedrock](/docs/zh-CN/amazon-bedrock)、[Google Cloud's Agent Platform](/docs/zh-CN/google-vertex-ai)、[Microsoft Foundry](/docs/zh-CN/microsoft-foundry) 或 [Claude Platform on AWS](/docs/zh-CN/claude-platform-on-aws) 部署 Claude Code 时,在向用户推出前固定模型版本。

660 656 

661不固定模型,Claude Code 会使用模型别名(如 `fable`、`opus`、`sonnet` 和 `haiku`),这些别名会解析为每个提供商的内置默认模型 ID。该默认值可能滞后于最新的 Anthropic 版本,并且它指向的模型可能尚未在用户账户中启用。当默认值不可用时,Amazon Bedrock 和 Google Cloud's Agent Platform 用户会看到通知并回退到该会话的先前版本,或当默认值是 Opus 模型且没有 Opus 版本可用时回退到默认 Sonnet 模型。Microsoft Foundry 用户会看到错误,因为 Microsoft Foundry 没有等效的启动检查。657不固定模型,Claude Code 会使用模型别名(如 `fable`、`opus`、`sonnet` 和 `haiku`),这些别名会解析为每个提供商的内置默认模型 ID。该默认值可能滞后于最新的 Anthropic 版本,并且它指向的模型可能尚未在用户账户中启用。当默认值不可用时,Amazon Bedrock 和 Google Cloud's Agent Platform 用户会看到通知并回退到该会话的先前版本,或当默认值是 Opus 模型且没有 Opus 版本可用时回退到默认 Sonnet 模型。Microsoft Foundry 用户会看到错误,因为 Microsoft Foundry 没有等效的启动检查。

662 658 


687* 该后缀按变量读取,而不是按模型读取。在 Amazon Bedrock、Google Cloud's Agent Platform 和 Microsoft Foundry 上,一个变量中没有 `[1m]` 的模型 ID 使用 200K 上下文,即使另一个变量使用相同的模型和后缀。Sonnet 5 在这些提供商上始终以 1M 窗口运行,从不需要该后缀。683* 该后缀按变量读取,而不是按模型读取。在 Amazon Bedrock、Google Cloud's Agent Platform 和 Microsoft Foundry 上,一个变量中没有 `[1m]` 的模型 ID 使用 200K 上下文,即使另一个变量使用相同的模型和后缀。Sonnet 5 在这些提供商上始终以 1M 窗口运行,从不需要该后缀。

688 684 

689<Note>685<Note>

690 使用第三方提供商时,通过 [MDM 或托管设置文件](/zh-CN/settings#settings-files) 提供的 `availableModels` 允许列表仍然适用;[服务器托管设置不会在那里提供](/zh-CN/server-managed-settings#platform-availability)。过滤与模型别名(如 `opus`)、版本前缀(如 `claude-opus-4-8`)或完整提供商形式的模型 ID 匹配。提供商特定的前缀(如 `us.anthropic.`)不会被删除,因此要允许特定模型,请列出选择器显示的相同提供商形式 ID,或通过 [`modelOverrides`](#override-model-ids-per-version) 映射它。任何 `[1m]` 后缀在匹配前都会从允许列表条目和请求的模型中删除。686 使用第三方提供商时,通过 [MDM 或托管设置文件](/docs/zh-CN/settings#settings-files) 提供的 `availableModels` 允许列表仍然适用;[服务器托管设置不会在那里提供](/docs/zh-CN/server-managed-settings#platform-availability)。过滤与模型别名(如 `opus`)、版本前缀(如 `claude-opus-4-8`)或完整提供商形式的模型 ID 匹配。提供商特定的前缀(如 `us.anthropic.`)不会被删除,因此要允许特定模型,请列出选择器显示的相同提供商形式 ID,或通过 [`modelOverrides`](#override-model-ids-per-version) 映射它。任何 `[1m]` 后缀在匹配前都会从允许列表条目和请求的模型中删除。

691</Note>687</Note>

692 688 

693<h3 id="customize-pinned-model-display-and-capabilities">689<h3 id="customize-pinned-model-display-and-capabilities">


696 692 

697当您在第三方提供商上固定模型时,提供商特定的 ID 在 `/model` 选择器中按原样显示,Claude Code 可能无法识别模型支持的功能。您可以使用每个固定模型的伴随环境变量覆盖显示名称并声明功能。693当您在第三方提供商上固定模型时,提供商特定的 ID 在 `/model` 选择器中按原样显示,Claude Code 可能无法识别模型支持的功能。您可以使用每个固定模型的伴随环境变量覆盖显示名称并声明功能。

698 694 

699这些变量在第三方提供商(如 Amazon Bedrock、Google Cloud's Agent Platform 和 Microsoft Foundry)上生效。`_NAME` 和 `_DESCRIPTION` 变量在 `ANTHROPIC_BASE_URL` 指向 [LLM gateway](/zh-CN/llm-gateway) 时也生效。当直接连接到 `api.anthropic.com` 时无效。695这些变量在第三方提供商(如 Amazon Bedrock、Google Cloud's Agent Platform 和 Microsoft Foundry)上生效。`_NAME` 和 `_DESCRIPTION` 变量在 `ANTHROPIC_BASE_URL` 指向 [LLM gateway](/docs/zh-CN/llm-gateway) 时也生效。当直接连接到 `api.anthropic.com` 时无效。

700 696 

701| 环境变量 | 描述 |697| 环境变量 | 描述 |

702| ----------------------------------------------------- | ---------------------------------------------------------- |698| ----------------------------------------------------- | ---------------------------------------------------------- |


711| 功能值 | 启用 |707| 功能值 | 启用 |

712| ---------------------- | ------------------------------------------- |708| ---------------------- | ------------------------------------------- |

713| `effort` | [工作量级别](#adjust-effort-level)和 `/effort` 命令 |709| `effort` | [工作量级别](#adjust-effort-level)和 `/effort` 命令 |

714| `xhigh_effort` | {/* min-version: 2.1.111 */}`xhigh` 工作量级别 |710| `xhigh_effort` | `xhigh` 工作量级别 |

715| `max_effort` | `max` 工作量级别 |711| `max_effort` | `max` 工作量级别 |

716| `thinking` | [扩展思考](#extended-thinking) |712| `thinking` | [扩展思考](#extended-thinking) |

717| `adaptive_thinking` | 根据任务复杂性动态分配思考的自适应推理 |713| `adaptive_thinking` | 根据任务复杂性动态分配思考的自适应推理 |


738 734 

739这让企业管理员可以将每个模型版本路由到特定的 Amazon Bedrock 推理配置文件 ARN、Google Cloud's Agent Platform 版本名称或 Microsoft Foundry 部署名称,用于治理、成本分配或区域路由。735这让企业管理员可以将每个模型版本路由到特定的 Amazon Bedrock 推理配置文件 ARN、Google Cloud's Agent Platform 版本名称或 Microsoft Foundry 部署名称,用于治理、成本分配或区域路由。

740 736 

741在您的[设置文件](/zh-CN/settings#settings-files)中设置 `modelOverrides`:737在您的[设置文件](/docs/zh-CN/settings#settings-files)中设置 `modelOverrides`:

742 738 

743```json theme={null}739```json theme={null}

744{740{


754 750 

755覆盖替换了支持 `/model` 选择器中每个条目的内置模型 ID。在 Amazon Bedrock 上,`modelOverrides` 条目优先于 Claude Code 在启动时自动发现的任何推理配置文件。Claude Code 将已经是提供商原生的值(如 Amazon Bedrock 推理配置文件 ARN 或 Microsoft Foundry 部署名称)按原样传递给提供商。751覆盖替换了支持 `/model` 选择器中每个条目的内置模型 ID。在 Amazon Bedrock 上,`modelOverrides` 条目优先于 Claude Code 在启动时自动发现的任何推理配置文件。Claude Code 将已经是提供商原生的值(如 Amazon Bedrock 推理配置文件 ARN 或 Microsoft Foundry 部署名称)按原样传递给提供商。

756 752 

757{/* min-version: 2.1.200 */}当您通过 `--model`、`ANTHROPIC_MODEL` 环境变量或 `ANTHROPIC_DEFAULT_*_MODEL` 环境变量直接传递 Anthropic 模型 ID 时,覆盖也适用。在 Amazon Bedrock、Google Cloud's Agent Platform 和 [Mantle](/zh-CN/amazon-bedrock#use-the-mantle-endpoint) 上,没有 `modelOverrides` 条目的 Anthropic 模型 ID 解析为与该版本的 `/model` 选择器行相同的提供商特定 ID(当提供商支持该版本时)。Mantle 支持版本的子集。对于该子集之外的 Anthropic 模型 ID,Claude Code 将原始 ID 发送到 Mantle 而不进行映射,除非 `modelOverrides` 条目覆盖它。在 v2.1.200 之前,`--model` 和环境变量值直接到达提供商,不经过覆盖映射。753当您通过 `--model`、`ANTHROPIC_MODEL` 环境变量或 `ANTHROPIC_DEFAULT_*_MODEL` 环境变量直接传递 Anthropic 模型 ID 时,覆盖也适用。在 Amazon Bedrock、Google Cloud's Agent Platform 和 [Mantle](/docs/zh-CN/amazon-bedrock#use-the-mantle-endpoint) 上,没有 `modelOverrides` 条目的 Anthropic 模型 ID 解析为与该版本的 `/model` 选择器行相同的提供商特定 ID(当提供商支持该版本时)。Mantle 支持版本的子集。对于该子集之外的 Anthropic 模型 ID,Claude Code 将原始 ID 发送到 Mantle 而不进行映射,除非 `modelOverrides` 条目覆盖它。在 v2.1.200 之前,`--model` 和环境变量值直接到达提供商,不经过覆盖映射。

758 754 

759`modelOverrides` 与 `availableModels` 一起工作。允许列表针对 Anthropic 模型 ID 进行评估,而不是覆盖值,因此 `availableModels` 中的条目(如 `"opus"`)即使在 Opus 版本映射到 ARN 时也会继续匹配。当在托管设置中设置 `enforceAvailableModels` 时,强制执行的默认值通过 `modelOverrides` 从[最高优先级托管源](/zh-CN/server-managed-settings#settings-precedence)解析。管理员的映射(如固定到推理配置文件 ARN 的版本)在强制执行的默认值中得到遵守。来自用户或项目设置的覆盖不会影响它。755`modelOverrides` 与 `availableModels` 一起工作。允许列表针对 Anthropic 模型 ID 进行评估,而不是覆盖值,因此 `availableModels` 中的条目(如 `"opus"`)即使在 Opus 版本映射到 ARN 时也会继续匹配。当在托管设置中设置 `enforceAvailableModels` 时,强制执行的默认值通过 `modelOverrides` 从[最高优先级托管源](/docs/zh-CN/server-managed-settings#settings-precedence)解析。管理员的映射(如固定到推理配置文件 ARN 的版本)在强制执行的默认值中得到遵守。来自用户或项目设置的覆盖不会影响它。

760 756 

761{/* min-version: 2.1.200 */}当 `availableModels` 在[托管设置](/zh-CN/settings#settings-files)中设置时,仅来自该托管源的 `modelOverrides` 适用于通过 `--model` 或上述环境变量直接传递的 Anthropic 模型 ID。Claude Code 忽略用户或项目设置中针对这些 ID 的覆盖,并且永远不会通过任何设置源的 `modelOverrides` 解析托管列表排除的 ID。此托管源限制需要 Claude Code v2.1.200 或更高版本。有关如何处理被阻止的 ID,请参阅[限制模型选择](#restrict-model-selection)。757当 `availableModels` 在[托管设置](/docs/zh-CN/settings#settings-files)中设置时,仅来自该托管源的 `modelOverrides` 适用于通过 `--model` 或上述环境变量直接传递的 Anthropic 模型 ID。Claude Code 忽略用户或项目设置中针对这些 ID 的覆盖,并且永远不会通过任何设置源的 `modelOverrides` 解析托管列表排除的 ID。此托管源限制需要 Claude Code v2.1.200 或更高版本。有关如何处理被阻止的 ID,请参阅[限制模型选择](#restrict-model-selection)。

762 758 

763<h3 id="prompt-caching-configuration">759<h3 id="prompt-caching-configuration">

764 Prompt caching 配置760 Prompt caching 配置

765</h3>761</h3>

766 762 

767Claude Code 自动使用 [prompt caching](/zh-CN/prompt-caching) 来优化性能并降低成本。您可以全局禁用 prompt caching 或针对特定模型层级禁用:763Claude Code 自动使用 [prompt caching](/docs/zh-CN/prompt-caching) 来优化性能并降低成本。您可以全局禁用 prompt caching 或针对特定模型层级禁用:

768 764 

769| 环境变量 | 描述 |765| 环境变量 | 描述 |

770| ------------------------------- | ---------------------------------------- |766| ------------------------------- | ---------------------------------------- |


774| `DISABLE_PROMPT_CACHING_OPUS` | 设置为 `1` 以仅禁用 Opus 模型的 prompt caching |770| `DISABLE_PROMPT_CACHING_OPUS` | 设置为 `1` 以仅禁用 Opus 模型的 prompt caching |

775| `DISABLE_PROMPT_CACHING_FABLE` | 设置为 `1` 以仅禁用 Fable 模型的 prompt caching |771| `DISABLE_PROMPT_CACHING_FABLE` | 设置为 `1` 以仅禁用 Fable 模型的 prompt caching |

776 772 

777要更改缓存 TTL 或了解什么会触发缓存未命中,请参阅 [Claude Code 如何使用 prompt caching](/zh-CN/prompt-caching)。773要更改缓存 TTL 或了解什么会触发缓存未命中,请参阅 [Claude Code 如何使用 prompt caching](/docs/zh-CN/prompt-caching)。

Details

47 管理员配置47 管理员配置

48</h2>48</h2>

49 49 

50管理员可以通过 [托管设置文件](/zh-CN/settings#settings-files) 为所有用户配置 OpenTelemetry 设置。这允许在整个组织中集中控制遥测设置。有关设置如何应用的更多信息,请参阅 [设置优先级](/zh-CN/settings#settings-precedence)。50管理员可以通过 [托管设置文件](/docs/zh-CN/settings#settings-files) 为所有用户配置 OpenTelemetry 设置。这允许在整个组织中集中控制遥测设置。有关设置如何应用的更多信息,请参阅 [设置优先级](/docs/zh-CN/settings#settings-precedence)。

51 51 

52示例托管设置配置:52示例托管设置配置:

53 53 


93| `OTEL_METRIC_EXPORT_INTERVAL` | 导出间隔(毫秒)(默认:60000) | `5000`、`60000` |93| `OTEL_METRIC_EXPORT_INTERVAL` | 导出间隔(毫秒)(默认:60000) | `5000`、`60000` |

94| `OTEL_LOGS_EXPORT_INTERVAL` | 日志导出间隔(毫秒)(默认:5000) | `1000`、`10000` |94| `OTEL_LOGS_EXPORT_INTERVAL` | 日志导出间隔(毫秒)(默认:5000) | `1000`、`10000` |

95| `OTEL_LOG_USER_PROMPTS` | 启用用户提示内容的日志记录(默认:禁用) | `1` 启用 |95| `OTEL_LOG_USER_PROMPTS` | 启用用户提示内容的日志记录(默认:禁用) | `1` 启用 |

96| `OTEL_LOG_ASSISTANT_RESPONSES` | 启用在 `assistant_response` 事件上记录助手响应文本(默认:禁用)。未设置时,回退到 `OTEL_LOG_USER_PROMPTS` 的值。{/* min-version: 2.1.193 */}需要 Claude Code v2.1.193 或更高版本 | `1` 启用,`0` 保持编辑 |96| `OTEL_LOG_ASSISTANT_RESPONSES` | 启用在 `assistant_response` 事件上记录助手响应文本(默认:禁用)。未设置时,回退到 `OTEL_LOG_USER_PROMPTS` 的值。需要 Claude Code v2.1.193 或更高版本 | `1` 启用,`0` 保持编辑 |

97| `OTEL_LOG_TOOL_DETAILS` | 启用在工具事件和 trace span 属性中记录工具参数和输入参数:Bash 命令、MCP 服务器和工具名称、技能名称和工具输入。还在 `user_prompt` 事件上启用自定义、插件和 MCP 命令名称(默认:禁用) | `1` 启用 |97| `OTEL_LOG_TOOL_DETAILS` | 启用在工具事件和 trace span 属性中记录工具参数和输入参数:Bash 命令、MCP 服务器和工具名称、技能名称和工具输入。还在 `user_prompt` 事件上启用自定义、插件和 MCP 命令名称(默认:禁用) | `1` 启用 |

98| `OTEL_LOG_TOOL_CONTENT` | 启用在 span 事件中记录工具输入和输出内容(默认:禁用)。需要 [tracing](#traces-beta)。内容在 60 KB 处截断 | `1` 启用 |98| `OTEL_LOG_TOOL_CONTENT` | 启用在 span 事件中记录工具输入和输出内容(默认:禁用)。需要 [tracing](#traces-beta)。内容在 60 KB 处截断 | `1` 启用 |

99| `OTEL_LOG_RAW_API_BODIES` | 将完整的 Anthropic Messages API 请求和响应 JSON 作为 `api_request_body` / `api_response_body` 日志事件发出(默认:禁用)。主体包括整个对话历史。启用此选项意味着同意 `OTEL_LOG_USER_PROMPTS`、`OTEL_LOG_TOOL_DETAILS` 和 `OTEL_LOG_TOOL_CONTENT` 会揭示的所有内容 | `1` 用于在 60 KB 处截断的内联主体,或 `file:<dir>` 用于磁盘上的未截断主体,事件中带有 `body_ref` 指针 |99| `OTEL_LOG_RAW_API_BODIES` | 将完整的 Anthropic Messages API 请求和响应 JSON 作为 `api_request_body` / `api_response_body` 日志事件发出(默认:禁用)。主体包括整个对话历史。启用此选项意味着同意 `OTEL_LOG_USER_PROMPTS`、`OTEL_LOG_TOOL_DETAILS` 和 `OTEL_LOG_TOOL_CONTENT` 会揭示的所有内容 | `1` 用于在 60 KB 处截断的内联主体,或 `file:<dir>` 用于磁盘上的未截断主体,事件中带有 `body_ref` 指针 |


108 108 

109| 协议 | 客户端证书变量 | 信任收集器的 CA |109| 协议 | 客户端证书变量 | 信任收集器的 CA |

110| :-------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------ | :------------------------------- |110| :-------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------ | :------------------------------- |

111| `http/protobuf`、`http/json` | `CLAUDE_CODE_CLIENT_CERT`、`CLAUDE_CODE_CLIENT_KEY` 和可选的 `CLAUDE_CODE_CLIENT_KEY_PASSPHRASE`。请参阅 [网络配置](/zh-CN/network-config#mtls-authentication) | `NODE_EXTRA_CA_CERTS` |111| `http/protobuf`、`http/json` | `CLAUDE_CODE_CLIENT_CERT`、`CLAUDE_CODE_CLIENT_KEY` 和可选的 `CLAUDE_CODE_CLIENT_KEY_PASSPHRASE`。请参阅 [网络配置](/docs/zh-CN/network-config#mtls-authentication) | `NODE_EXTRA_CA_CERTS` |

112| `grpc` | `OTEL_EXPORTER_OTLP_CLIENT_KEY` 和 `OTEL_EXPORTER_OTLP_CLIENT_CERTIFICATE`,或每个信号的变体,例如 `OTEL_EXPORTER_OTLP_METRICS_CLIENT_KEY` 以为每个信号使用不同的证书 | `OTEL_EXPORTER_OTLP_CERTIFICATE` |112| `grpc` | `OTEL_EXPORTER_OTLP_CLIENT_KEY` 和 `OTEL_EXPORTER_OTLP_CLIENT_CERTIFICATE`,或每个信号的变体,例如 `OTEL_EXPORTER_OTLP_METRICS_CLIENT_KEY` 以为每个信号使用不同的证书 | `OTEL_EXPORTER_OTLP_CERTIFICATE` |

113 113 

114对于 `grpc`,OpenTelemetry SDK 直接读取标准 OTLP 变量,因此设置每个信号指标变量的现有配置继续工作。114对于 `grpc`,OpenTelemetry SDK 直接读取标准 OTLP 变量,因此设置每个信号指标变量的现有配置继续工作。


198| `query_source` | 发出请求的子系统,例如 `repl_main_thread` 或子代理名称 | |198| `query_source` | 发出请求的子系统,例如 `repl_main_thread` 或子代理名称 | |

199| `agent_id` | 发出请求的子代理或队友的标识符。在主会话中不存在 | |199| `agent_id` | 发出请求的子代理或队友的标识符。在主会话中不存在 | |

200| `parent_agent_id` | 生成此代理的代理的标识符。对于主会话和直接从其生成的代理不存在 | |200| `parent_agent_id` | 生成此代理的代理的标识符。对于主会话和直接从其生成的代理不存在 | |

201| `workflow.run_id` | [Workflow](/zh-CN/workflows) 工具运行的运行标识符,前缀为 `wf_`,生成此代理。对于不是由工作流生成的代理不存在 | |201| `workflow.run_id` | [Workflow](/docs/zh-CN/workflows) 工具运行的运行标识符,前缀为 `wf_`,生成此代理。对于不是由工作流生成的代理不存在 | |

202| `workflow.name` | 生成此代理的工作流的名称。用户编写的名称被替换为 `custom`,除非设置了门控条件 | `OTEL_LOG_TOOL_DETAILS` |202| `workflow.name` | 生成此代理的工作流的名称。用户编写的名称被替换为 `custom`,除非设置了门控条件 | `OTEL_LOG_TOOL_DETAILS` |

203| `speed` | `fast` 或 `normal` | |203| `speed` | `fast` 或 `normal` | |

204| `llm_request.context` | `interaction`、`tool` 或 `standalone`,取决于父 span | |204| `llm_request.context` | `interaction`、`tool` 或 `standalone`,取决于父 span | |


314如果助手失败或打印不符合这些要求的输出,Claude Code 会在以下位置报告错误:314如果助手失败或打印不符合这些要求的输出,Claude Code 会在以下位置报告错误:

315 315 

316* `/status` 输出316* `/status` 输出

317* 调试日志,当使用 [`--debug`](/zh-CN/cli-reference#cli-flags) 运行或在会话中运行 `/debug` 后317* 调试日志,当使用 [`--debug`](/docs/zh-CN/cli-reference#cli-flags) 运行或在会话中运行 `/debug` 后

318* stderr,在使用 `-p` 启动的非交互式会话中318* stderr,在使用 `-p` 启动的非交互式会话中

319 319 

320<h4 id="refresh-behavior">320<h4 id="refresh-behavior">


441| `terminal.type` | 终端类型,例如 `iTerm.app`、`vscode`、`cursor` 或 `tmux` | 检测到时始终包含 |441| `terminal.type` | 终端类型,例如 `iTerm.app`、`vscode`、`cursor` 或 `tmux` | 检测到时始终包含 |

442| `OTEL_RESOURCE_ATTRIBUTES` 中的键 | 您设置的自定义属性,例如 `department` 或 `team.id`。请参阅 [多团队组织支持](#multi-team-organization-support) | `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES`(默认:true) |442| `OTEL_RESOURCE_ATTRIBUTES` 中的键 | 您设置的自定义属性,例如 `department` 或 `team.id`。请参阅 [多团队组织支持](#multi-team-organization-support) | `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES`(默认:true) |

443 443 

444当 Claude Code 登录到 [Claude apps gateway](/zh-CN/claude-apps-gateway) 时,CLI 会使用来自网关会话的已认证身份标记导出:`user.id` 是 IdP 主体而不是匿名安装标识符,`user.email` 是已登录的电子邮件,`user.groups` 作为逗号分隔的字符串携带 IdP 组成员身份。每个导出还携带 `identity.source: gateway-oidc`。网关身份最后应用,因此通过 `OTEL_RESOURCE_ATTRIBUTES` 设置的 `user.*` 和 `identity.*` 键在网关会话上被忽略。444当 Claude Code 登录到 [Claude apps gateway](/docs/zh-CN/claude-apps-gateway) 时,CLI 会使用来自网关会话的已认证身份标记导出:`user.id` 是 IdP 主体而不是匿名安装标识符,`user.email` 是已登录的电子邮件,`user.groups` 作为逗号分隔的字符串携带 IdP 组成员身份。每个导出还携带 `identity.source: gateway-oidc`。网关身份最后应用,因此通过 `OTEL_RESOURCE_ATTRIBUTES` 设置的 `user.*` 和 `identity.*` 键在网关会话上被忽略。

445 445 

446事件另外包含以下属性。这些永远不会附加到指标,因为它们会导致无限基数:446事件另外包含以下属性。这些永远不会附加到指标,因为它们会导致无限基数:

447 447 

448* `prompt.id`:UUID 将用户提示与所有后续事件关联到下一个提示。请参阅 [事件关联属性](#event-correlation-attributes)。448* `prompt.id`:UUID 将用户提示与所有后续事件关联到下一个提示。请参阅 [事件关联属性](#event-correlation-attributes)。

449* `workspace.host_paths`:在桌面应用中选择的主机工作区目录,作为字符串数组449* `workspace.host_paths`:在桌面应用中选择的主机工作区目录,作为字符串数组

450* `workflow.run_id`:运行标识符,前缀为 `wf_`,在属于 [Workflow](/zh-CN/workflows) 工具运行的代理发出的 API 和工具事件上。按一个 `workflow.run_id` 过滤事件可以重建该运行的 API 请求和工具结果。标识符涵盖工作流脚本生成的代理以及这些代理依次生成的任何代理,例如技能调用。它与 Workflow 工具结果中报告的运行标识符匹配。在所有其他事件上不存在。{/* min-version: 2.1.202 */}需要 Claude Code v2.1.202 或更高版本450* `workflow.run_id`:运行标识符,前缀为 `wf_`,在属于 [Workflow](/docs/zh-CN/workflows) 工具运行的代理发出的 API 和工具事件上。按一个 `workflow.run_id` 过滤事件可以重建该运行的 API 请求和工具结果。标识符涵盖工作流脚本生成的代理以及这些代理依次生成的任何代理,例如技能调用。它与 Workflow 工具结果中报告的运行标识符匹配。在所有其他事件上不存在。需要 Claude Code v2.1.202 或更高版本

451* `workflow.name`:工作流的名称,其脚本的 `meta.name`,与 `workflow.run_id` 一起发出。内置工作流名称在运行执行未修改的内置脚本时按原样出现。用户创作的名称(包括内置脚本的编辑副本)被替换为 `custom`,除非设置了 `OTEL_LOG_TOOL_DETAILS=1`。{/* min-version: 2.1.202 */}需要 Claude Code v2.1.202 或更高版本451* `workflow.name`:工作流的名称,其脚本的 `meta.name`,与 `workflow.run_id` 一起发出。内置工作流名称在运行执行未修改的内置脚本时按原样出现。用户创作的名称(包括内置脚本的编辑副本)被替换为 `custom`,除非设置了 `OTEL_LOG_TOOL_DETAILS=1`。需要 Claude Code v2.1.202 或更高版本

452 452 

453<h3 id="metrics">453<h3 id="metrics">

454 指标454 指标


528* `model`:模型标识符(例如,"claude-sonnet-5")528* `model`:模型标识符(例如,"claude-sonnet-5")

529* `query_source`:发出请求的子系统的类别。`"main"`、`"subagent"` 或 `"auxiliary"` 之一529* `query_source`:发出请求的子系统的类别。`"main"`、`"subagent"` 或 `"auxiliary"` 之一

530* `speed`:当请求使用快速模式时为 `"fast"`。否则不存在530* `speed`:当请求使用快速模式时为 `"fast"`。否则不存在

531* `effort`:应用于请求的 [努力级别](/zh-CN/model-config#adjust-effort-level):`"low"`、`"medium"`、`"high"`、`"xhigh"` 或 `"max"`。当模型不支持努力时不存在。531* `effort`:应用于请求的 [努力级别](/docs/zh-CN/model-config#adjust-effort-level):`"low"`、`"medium"`、`"high"`、`"xhigh"` 或 `"max"`。当模型不支持努力时不存在。

532* `agent.name`:发出请求的子代理类型。内置代理名称和来自官方市场插件的代理按原样出现。其他用户定义的代理名称被替换为 `"custom"`。当请求不是由命名子代理类型发出时不存在。532* `agent.name`:发出请求的子代理类型。内置代理名称和来自官方市场插件的代理按原样出现。其他用户定义的代理名称被替换为 `"custom"`。当请求不是由命名子代理类型发出时不存在。

533* `skill.name`:对请求活跃的技能,由 Skill 工具、`/` 命令设置或由生成的子代理继承。内置、捆绑、用户定义和官方市场插件技能名称按原样出现。第三方插件技能名称被替换为 `"third-party"`。当没有技能活跃时不存在。533* `skill.name`:对请求活跃的技能,由 Skill 工具、`/` 命令设置或由生成的子代理继承。内置、捆绑、用户定义和官方市场插件技能名称按原样出现。第三方插件技能名称被替换为 `"third-party"`。当没有技能活跃时不存在。

534* `plugin.name`:当活跃技能或子代理由插件提供时的拥有插件。官方市场插件名称按原样出现。第三方插件名称被替换为 `"third-party"`。当技能和子代理都没有拥有插件时不存在。534* `plugin.name`:当活跃技能或子代理由插件提供时的拥有插件。官方市场插件名称按原样出现。第三方插件名称被替换为 `"third-party"`。当技能和子代理都没有拥有插件时不存在。


549* `model`:模型标识符(例如,"claude-sonnet-5")549* `model`:模型标识符(例如,"claude-sonnet-5")

550* `query_source`:发出请求的子系统的类别。`"main"`、`"subagent"` 或 `"auxiliary"` 之一550* `query_source`:发出请求的子系统的类别。`"main"`、`"subagent"` 或 `"auxiliary"` 之一

551* `speed`:当请求使用快速模式时为 `"fast"`。否则不存在551* `speed`:当请求使用快速模式时为 `"fast"`。否则不存在

552* `effort`:应用于请求的 [努力级别](/zh-CN/model-config#adjust-effort-level)。有关详情,请参阅 [成本计数器](#cost-counter)。552* `effort`:应用于请求的 [努力级别](/docs/zh-CN/model-config#adjust-effort-level)。有关详情,请参阅 [成本计数器](#cost-counter)。

553* `agent.name`、`skill.name`、`plugin.name`、`marketplace.name`、`mcp_server.name`、`mcp_tool.name`:请求的技能、插件、代理和 MCP 归属。有关定义和编辑行为,请参阅 [成本计数器](#cost-counter)。553* `agent.name`、`skill.name`、`plugin.name`、`marketplace.name`、`mcp_server.name`、`mcp_tool.name`:请求的技能、插件、代理和 MCP 归属。有关定义和编辑行为,请参阅 [成本计数器](#cost-counter)。

554 554 

555<h4 id="code-edit-tool-decision-counter">555<h4 id="code-edit-tool-decision-counter">


622 助手响应事件622 助手响应事件

623</h4>623</h4>

624 624 

625在每个返回来自模型的文本内容的 API 请求后记录。仅包含响应的文本块;思考块和工具使用块被排除。{/* min-version: 2.1.193 */}需要 Claude Code v2.1.193 或更高版本。625在每个返回来自模型的文本内容的 API 请求后记录。仅包含响应的文本块;思考块和工具使用块被排除。需要 Claude Code v2.1.193 或更高版本。

626 626 

627**事件名称**:`claude_code.assistant_response`627**事件名称**:`claude_code.assistant_response`

628 628 


695* `request_id`:来自响应的 `request-id` 标头的 Anthropic API 请求 ID,例如 `"req_011..."`。仅当 API 返回时存在。695* `request_id`:来自响应的 `request-id` 标头的 Anthropic API 请求 ID,例如 `"req_011..."`。仅当 API 返回时存在。

696* `speed`:`"fast"` 或 `"normal"`,指示是否启用了快速模式696* `speed`:`"fast"` 或 `"normal"`,指示是否启用了快速模式

697* `query_source`:发出请求的子系统,例如 `"repl_main_thread"`、`"compact"` 或子代理名称697* `query_source`:发出请求的子系统,例如 `"repl_main_thread"`、`"compact"` 或子代理名称

698* `effort`:应用于请求的 [努力级别](/zh-CN/model-config#adjust-effort-level):`"low"`、`"medium"`、`"high"`、`"xhigh"` 或 `"max"`。当模型不支持努力时不存在。698* `effort`:应用于请求的 [努力级别](/docs/zh-CN/model-config#adjust-effort-level):`"low"`、`"medium"`、`"high"`、`"xhigh"` 或 `"max"`。当模型不支持努力时不存在。

699* `agent.name`、`skill.name`、`plugin.name`、`marketplace.name`、`mcp_server.name`、`mcp_tool.name`:请求的技能、插件、代理和 MCP 归属。有关定义和编辑行为,请参阅 [成本计数器](#cost-counter)。699* `agent.name`、`skill.name`、`plugin.name`、`marketplace.name`、`mcp_server.name`、`mcp_tool.name`:请求的技能、插件、代理和 MCP 归属。有关定义和编辑行为,请参阅 [成本计数器](#cost-counter)。

700 700 

701<h4 id="api-error-event">701<h4 id="api-error-event">


720* `request_id`:来自响应的 `request-id` 标头的 Anthropic API 请求 ID,例如 `"req_011..."`。仅当 API 返回时存在。720* `request_id`:来自响应的 `request-id` 标头的 Anthropic API 请求 ID,例如 `"req_011..."`。仅当 API 返回时存在。

721* `speed`:`"fast"` 或 `"normal"`,指示是否启用了快速模式721* `speed`:`"fast"` 或 `"normal"`,指示是否启用了快速模式

722* `query_source`:发出请求的子系统,例如 `"repl_main_thread"`、`"compact"` 或子代理名称722* `query_source`:发出请求的子系统,例如 `"repl_main_thread"`、`"compact"` 或子代理名称

723* `effort`:应用于请求的 [努力级别](/zh-CN/model-config#adjust-effort-level)。当模型不支持努力时不存在。723* `effort`:应用于请求的 [努力级别](/docs/zh-CN/model-config#adjust-effort-level)。当模型不支持努力时不存在。

724* `agent.name`、`skill.name`、`plugin.name`、`marketplace.name`、`mcp_server.name`、`mcp_tool.name`:请求的技能、插件、代理和 MCP 归属。有关定义和编辑行为,请参阅 [成本计数器](#cost-counter)。724* `agent.name`、`skill.name`、`plugin.name`、`marketplace.name`、`mcp_server.name`、`mcp_tool.name`:请求的技能、插件、代理和 MCP 归属。有关定义和编辑行为,请参阅 [成本计数器](#cost-counter)。

725 725 

726<h4 id="api-refusal-event">726<h4 id="api-refusal-event">


740* `model`:来自请求的模型标识符740* `model`:来自请求的模型标识符

741* `request_id`:来自响应的 `request-id` 标头的 Anthropic API 请求 ID,例如 `"req_011..."`。仅当 API 返回时存在。741* `request_id`:来自响应的 `request-id` 标头的 Anthropic API 请求 ID,例如 `"req_011..."`。仅当 API 返回时存在。

742* `query_source`:发出请求的子系统,例如 `"repl_main_thread"`、`"compact"` 或子代理名称。有关定义,请参阅 [`api_request`](#api-request-event)。742* `query_source`:发出请求的子系统,例如 `"repl_main_thread"`、`"compact"` 或子代理名称。有关定义,请参阅 [`api_request`](#api-request-event)。

743* `speed`:当 [快速模式](/zh-CN/fast-mode) 活跃时为 `"fast"`,或 `"normal"`743* `speed`:当 [快速模式](/docs/zh-CN/fast-mode) 活跃时为 `"fast"`,或 `"normal"`

744* `attempt`:重试尝试次数。第一次尝试是 `1`。744* `attempt`:重试尝试次数。第一次尝试是 `1`。

745* `effort`:应用于请求的 [努力级别](/zh-CN/model-config#adjust-effort-level)。当模型不支持努力时不存在。745* `effort`:应用于请求的 [努力级别](/docs/zh-CN/model-config#adjust-effort-level)。当模型不支持努力时不存在。

746* `server_fallback_hop`:当 API 的服务器端模型回退已在不同模型上重试此拒绝时为 `true`,因此用户没有看到此特定拒绝。当请求以拒绝结束时为 `false`。单个轮次可以发出 `true` hop 事件和稍后的 `false` 最终事件,当回退模型也拒绝时。746* `server_fallback_hop`:当 API 的服务器端模型回退已在不同模型上重试此拒绝时为 `true`,因此用户没有看到此特定拒绝。当请求以拒绝结束时为 `false`。单个轮次可以发出 `true` hop 事件和稍后的 `false` 最终事件,当回退模型也拒绝时。

747* `has_category`:当 API 响应携带 `stop_details.category` 为 `"cyber"`、`"bio"`、`"frontier_llm"` 或 `"reasoning_extraction"` 时为 `true`。当响应没有类别或值在该集合之外时为 `false`。当 `server_fallback_hop` 为 `true` 时不存在,因为 hop 块不携带 `stop_details`。747* `has_category`:当 API 响应携带 `stop_details.category` 为 `"cyber"`、`"bio"`、`"frontier_llm"` 或 `"reasoning_extraction"` 时为 `true`。当响应没有类别或值在该集合之外时为 `false`。当 `server_fallback_hop` 为 `true` 时不存在,因为 hop 块不携带 `stop_details`。

748* `has_explanation`:当 API 响应携带 `stop_details.explanation` 时为 `true`,否则为 `false`。当 `server_fallback_hop` 为 `true` 时不存在。748* `has_explanation`:当 API 响应携带 `stop_details.explanation` 时为 `true`,否则为 `false`。当 `server_fallback_hop` 为 `true` 时不存在。


945* `plugin_id_hash`:插件名称和市场的确定性哈希,仅发送到您配置的导出器。让您计算整个队伍中加载了多少个不同的第三方插件,而无需记录其名称945* `plugin_id_hash`:插件名称和市场的确定性哈希,仅发送到您配置的导出器。让您计算整个队伍中加载了多少个不同的第三方插件,而无需记录其名称

946* `has_hooks`:插件是否贡献 hooks946* `has_hooks`:插件是否贡献 hooks

947* `has_mcp`:插件是否贡献 MCP 服务器947* `has_mcp`:插件是否贡献 MCP 服务器

948* `host_owned_mcp`:当 SDK 主机管理此插件的 MCP 连接且 Claude Code 跳过读取插件的 MCP 服务器配置时为 `true`,否则为 `false`。{/* min-version: 2.1.172 */}需要 Claude Code v2.1.172 或更高版本948* `host_owned_mcp`:当 SDK 主机管理此插件的 MCP 连接且 Claude Code 跳过读取插件的 MCP 服务器配置时为 `true`,否则为 `false`。需要 Claude Code v2.1.172 或更高版本

949* `skill_path_count`:插件声明的技能目录数949* `skill_path_count`:插件声明的技能目录数

950* `command_path_count`:插件声明的命令目录数950* `command_path_count`:插件声明的命令目录数

951* `agent_path_count`:插件声明的代理目录数951* `agent_path_count`:插件声明的代理目录数

952* `safe_mode`:当会话使用 [`--safe-mode`](/zh-CN/cli-reference) 启动时为 `"true"`,否则为 `"false"`。在安全模式下,此事件仅报告配置的清单;插件的命令、技能、hooks 和 MCP 服务器不加载。{/* min-version: 2.1.169 */}需要 Claude Code v2.1.169 或更高版本952* `safe_mode`:当会话使用 [`--safe-mode`](/docs/zh-CN/cli-reference) 启动时为 `"true"`,否则为 `"false"`。在安全模式下,此事件仅报告配置的清单;插件的命令、技能、hooks 和 MCP 服务器不加载。需要 Claude Code v2.1.169 或更高版本

953 953 

954<h4 id="skill-activated-event">954<h4 id="skill-activated-event">

955 技能激活事件955 技能激活事件


1027* `hook_event`:hook 事件类型,例如 `"PreToolUse"` 或 `"PostToolUse"`1027* `hook_event`:hook 事件类型,例如 `"PreToolUse"` 或 `"PostToolUse"`

1028* `hook_type`:hook 实现类型:`"command"`、`"prompt"`、`"mcp_tool"`、`"http"` 或 `"agent"`1028* `hook_type`:hook 实现类型:`"command"`、`"prompt"`、`"mcp_tool"`、`"http"` 或 `"agent"`

1029* `hook_source`:hook 定义的位置:`"userSettings"`、`"projectSettings"`、`"localSettings"`、`"flagSettings"`、`"policySettings"` 或 `"pluginHook"`1029* `hook_source`:hook 定义的位置:`"userSettings"`、`"projectSettings"`、`"localSettings"`、`"flagSettings"`、`"policySettings"` 或 `"pluginHook"`

1030* `safe_mode`:当会话使用 [`--safe-mode`](/zh-CN/cli-reference) 启动时为 `"true"`,否则为 `"false"`。{/* min-version: 2.1.169 */}需要 Claude Code v2.1.169 或更高版本1030* `safe_mode`:当会话使用 [`--safe-mode`](/docs/zh-CN/cli-reference) 启动时为 `"true"`,否则为 `"false"`。需要 Claude Code v2.1.169 或更高版本

1031* `hook_matcher`(当 `OTEL_LOG_TOOL_DETAILS=1` 时):hook 配置中的匹配器字符串(设置时)1031* `hook_matcher`(当 `OTEL_LOG_TOOL_DETAILS=1` 时):hook 配置中的匹配器字符串(设置时)

1032* `plugin.name`(当 `hook_source` 是 `"pluginHook"` 时):贡献插件的名称。对于官方市场外和内置捆绑的插件,除非 `OTEL_LOG_TOOL_DETAILS=1`,否则值为 `"third-party"`1032* `plugin.name`(当 `hook_source` 是 `"pluginHook"` 时):贡献插件的名称。对于官方市场外和内置捆绑的插件,除非 `OTEL_LOG_TOOL_DETAILS=1`,否则值为 `"third-party"`

1033* `plugin_id_hash`(当 `hook_source` 是 `"pluginHook"` 时):插件名称和市场的确定性哈希,仅发送到您配置的导出器。让您计算不同的贡献插件数而无需记录其名称1033* `plugin_id_hash`(当 `hook_source` 是 `"pluginHook"` 时):插件名称和市场的确定性哈希,仅发送到您配置的导出器。让您计算不同的贡献插件数而无需记录其名称


1051* `num_hooks`:匹配 hook 命令的数量1051* `num_hooks`:匹配 hook 命令的数量

1052* `managed_only`:当仅允许托管策略 hooks 时为 `"true"`1052* `managed_only`:当仅允许托管策略 hooks 时为 `"true"`

1053* `hook_source`:`"policySettings"` 或 `"merged"`1053* `hook_source`:`"policySettings"` 或 `"merged"`

1054* `safe_mode`:当会话使用 [`--safe-mode`](/zh-CN/cli-reference) 启动时为 `"true"`,否则为 `"false"`。{/* min-version: 2.1.169 */}需要 Claude Code v2.1.169 或更高版本1054* `safe_mode`:当会话使用 [`--safe-mode`](/docs/zh-CN/cli-reference) 启动时为 `"true"`,否则为 `"false"`。需要 Claude Code v2.1.169 或更高版本

1055* `hook_definitions`:JSON 序列化的 hook 配置。仅当启用了详细的测试版跟踪和 `OTEL_LOG_TOOL_DETAILS=1` 时才包含1055* `hook_definitions`:JSON 序列化的 hook 配置。仅当启用了详细的测试版跟踪和 `OTEL_LOG_TOOL_DETAILS=1` 时才包含

1056 1056 

1057<h4 id="hook-execution-complete-event">1057<h4 id="hook-execution-complete-event">


1078* `total_duration_ms`:所有匹配 hooks 的实际时钟持续时间1078* `total_duration_ms`:所有匹配 hooks 的实际时钟持续时间

1079* `managed_only`:当仅允许托管策略 hooks 时为 `"true"`1079* `managed_only`:当仅允许托管策略 hooks 时为 `"true"`

1080* `hook_source`:`"policySettings"` 或 `"merged"`1080* `hook_source`:`"policySettings"` 或 `"merged"`

1081* `safe_mode`:当会话使用 [`--safe-mode`](/zh-CN/cli-reference) 启动时为 `"true"`,否则为 `"false"`。{/* min-version: 2.1.169 */}需要 Claude Code v2.1.169 或更高版本1081* `safe_mode`:当会话使用 [`--safe-mode`](/docs/zh-CN/cli-reference) 启动时为 `"true"`,否则为 `"false"`。需要 Claude Code v2.1.169 或更高版本

1082* `hook_definitions`:JSON 序列化的 hook 配置。仅当启用了详细的测试版跟踪和 `OTEL_LOG_TOOL_DETAILS=1` 时才包含1082* `hook_definitions`:JSON 序列化的 hook 配置。仅当启用了详细的测试版跟踪和 `OTEL_LOG_TOOL_DETAILS=1` 时才包含

1083 1083 

1084<h4 id="hook-plugin-metrics-event">1084<h4 id="hook-plugin-metrics-event">


1119* `pre_tokens`:压缩前的近似令牌计数1119* `pre_tokens`:压缩前的近似令牌计数

1120* `post_tokens`:压缩后的近似令牌计数1120* `post_tokens`:压缩后的近似令牌计数

1121* `error`:压缩失败时的错误消息1121* `error`:压缩失败时的错误消息

1122* `precompute_reuse`:仅当 `trigger` 为 `"manual"` 时设置。自动压缩可以在上下文窗口填满之前在后台准备摘要,此属性记录 `/compact` 是否重用了该准备的摘要。`"hit"` 表示它被重用;`"miss_custom_instructions"`、`"miss_hook"` 和 `"miss_not_ready"` 给出了计算新摘要的原因。{/* min-version: 2.1.153 */}需要 Claude Code v2.1.153 或更高版本1122* `precompute_reuse`:仅当 `trigger` 为 `"manual"` 时设置。自动压缩可以在上下文窗口填满之前在后台准备摘要,此属性记录 `/compact` 是否重用了该准备的摘要。`"hit"` 表示它被重用;`"miss_custom_instructions"`、`"miss_hook"` 和 `"miss_not_ready"` 给出了计算新摘要的原因。需要 Claude Code v2.1.153 或更高版本

1123 1123 

1124<h4 id="feedback-survey-event">1124<h4 id="feedback-survey-event">

1125 反馈调查事件1125 反馈调查事件

1126</h4>1126</h4>

1127 1127 

1128当显示或回答会话质量调查时记录。请参阅 [会话质量调查](/zh-CN/data-usage#session-quality-surveys) 了解调查收集的内容以及如何控制它们。1128当显示或回答会话质量调查时记录。请参阅 [会话质量调查](/docs/zh-CN/data-usage#session-quality-surveys) 了解调查收集的内容以及如何控制它们。

1129 1129 

1130**事件名称**:`claude_code.feedback_survey`1130**事件名称**:`claude_code.feedback_survey`

1131 1131 


1139* `appearance_id`:唯一 ID,链接为一个调查实例发出的事件1139* `appearance_id`:唯一 ID,链接为一个调查实例发出的事件

1140* `survey_type`:哪个调查产生了事件。`"session"` 是"Claude 做得怎么样?"评分提示1140* `survey_type`:哪个调查产生了事件。`"session"` 是"Claude 做得怎么样?"评分提示

1141* `response`:用户在 `responded` 事件上的选择1141* `response`:用户在 `responded` 事件上的选择

1142* `enabled_via_override`:当设置了 [`CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL`](/zh-CN/env-vars) 时为 `true`。作为布尔值而不是字符串发出。在 `session` 调查事件上存在。过滤此属性以确认覆盖在整个队伍中应用1142* `enabled_via_override`:当设置了 [`CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL`](/docs/zh-CN/env-vars) 时为 `true`。作为布尔值而不是字符串发出。在 `session` 调查事件上存在。过滤此属性以确认覆盖在整个队伍中应用

1143 1143 

1144<h2 id="interpret-metrics-and-events-data">1144<h2 id="interpret-metrics-and-events-data">

1145 解释指标和事件数据1145 解释指标和事件数据


1221 将属性操作归属于用户1221 将属性操作归属于用户

1222</h3>1222</h3>

1223 1223 

1224每个事件上的 [标准属性](#standard-attributes) 包括已认证用户的身份:`user.email`、`user.account_uuid`、`user.account_id` 和 `organization.id`(使用 Claude 账户登录时),加上 `user.id` 和每会话的 `session.id`。`user.id` 是安装范围的标识符,除了在 [Claude apps gateway](/zh-CN/claude-apps-gateway) 会话上,其中它是来自网关颁发的令牌的 IdP 主体。1224每个事件上的 [标准属性](#standard-attributes) 包括已认证用户的身份:`user.email`、`user.account_uuid`、`user.account_id` 和 `organization.id`(使用 Claude 账户登录时),加上 `user.id` 和每会话的 `session.id`。`user.id` 是安装范围的标识符,除了在 [Claude apps gateway](/docs/zh-CN/claude-apps-gateway) 会话上,其中它是来自网关颁发的令牌的 IdP 主体。

1225 1225 

1226MCP 工具调用、Bash 命令和文件编辑因此归属于启动会话的开发人员。Claude Code 不在单独的服务账户下运行;每个事件上记录的身份是开发人员自己的 Claude 账户,或开发人员在 [Claude apps gateway](/zh-CN/claude-apps-gateway) 会话上的 IdP 身份。1226MCP 工具调用、Bash 命令和文件编辑因此归属于启动会话的开发人员。Claude Code 不在单独的服务账户下运行;每个事件上记录的身份是开发人员自己的 Claude 账户,或开发人员在 [Claude apps gateway](/docs/zh-CN/claude-apps-gateway) 会话上的 IdP 身份。

1227 1227 

1228当 Claude Code 使用直接 API 密钥进行身份验证,或针对 Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry 进行身份验证时,会话中没有 Claude 账户,仅填充 `user.id` 和 `session.id`。在这些部署中,使用 `OTEL_RESOURCE_ATTRIBUTES` 自己附加用户身份,通过 [托管设置](#administrator-configuration) 文件或启动包装器按用户设置。Claude apps gateway 会话不需要任何这些:CLI 自动标记 IdP 身份,如 [标准属性](#standard-attributes) 中所述。1228当 Claude Code 使用直接 API 密钥进行身份验证,或针对 Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry 进行身份验证时,会话中没有 Claude 账户,仅填充 `user.id` 和 `session.id`。在这些部署中,使用 `OTEL_RESOURCE_ATTRIBUTES` 自己附加用户身份,通过 [托管设置](#administrator-configuration) 文件或启动包装器按用户设置。Claude apps gateway 会话不需要任何这些:CLI 自动标记 IdP 身份,如 [标准属性](#standard-attributes) 中所述。

1229 1229 


1343 安全和隐私1343 安全和隐私

1344</h2>1344</h2>

1345 1345 

1346* OpenTelemetry 导出到您的后端是可选的,需要显式配置。有关 Anthropic 的单独操作遥测以及如何禁用它,请参阅 [数据使用](/zh-CN/data-usage#telemetry-services)1346* OpenTelemetry 导出到您的后端是可选的,需要显式配置。有关 Anthropic 的单独操作遥测以及如何禁用它,请参阅 [数据使用](/docs/zh-CN/data-usage#telemetry-services)

1347* 原始文件内容和代码片段不包含在指标或事件中。Trace spans 是一个单独的数据路径:请参阅下面的 `OTEL_LOG_TOOL_CONTENT` 项目符号1347* 原始文件内容和代码片段不包含在指标或事件中。Trace spans 是一个单独的数据路径:请参阅下面的 `OTEL_LOG_TOOL_CONTENT` 项目符号

1348* 通过 OAuth 认证时,`user.email` 包含在遥测属性中。如果这对您的组织是一个问题,请与您的遥测后端合作以过滤或编辑此字段1348* 通过 OAuth 认证时,`user.email` 包含在遥测属性中。如果这对您的组织是一个问题,请与您的遥测后端合作以过滤或编辑此字段

1349* 默认情况下不收集用户提示内容。仅记录提示长度。要包含提示内容,请设置 `OTEL_LOG_USER_PROMPTS=1`1349* 默认情况下不收集用户提示内容。仅记录提示长度。要包含提示内容,请设置 `OTEL_LOG_USER_PROMPTS=1`

network-config.md +15 −15

Details

9Claude Code 通过环境变量支持各种企业网络和安全配置。这包括通过公司代理服务器路由流量、信任自定义证书颁发机构 (CA),以及使用相互传输层安全 (mTLS) 证书进行身份验证以增强安全性。9Claude Code 通过环境变量支持各种企业网络和安全配置。这包括通过公司代理服务器路由流量、信任自定义证书颁发机构 (CA),以及使用相互传输层安全 (mTLS) 证书进行身份验证以增强安全性。

10 10 

11<Note>11<Note>

12 本页面显示的所有环境变量也可以在 [`settings.json`](/zh-CN/settings) 中配置。12 本页面显示的所有环境变量也可以在 [`settings.json`](/docs/zh-CN/settings) 中配置。

13</Note>13</Note>

14 14 

15<h2 id="proxy-configuration">15<h2 id="proxy-configuration">


123| `api.anthropic.com` | Claude API 请求 |123| `api.anthropic.com` | Claude API 请求 |

124| `claude.ai` | claude.ai 账户身份验证 |124| `claude.ai` | claude.ai 账户身份验证 |

125| `platform.claude.com` | Anthropic 控制台账户身份验证 |125| `platform.claude.com` | Anthropic 控制台账户身份验证 |

126| `mcp-proxy.anthropic.com` | [来自 claude.ai 的 MCP 连接器](/zh-CN/mcp#use-mcp-servers-from-claude-ai),包括组织管理员配置的连接器。连接器流量通过此代理路由;对于 claude.ai 认证用户,连接器默认启用。要禁用,请设置 [`ENABLE_CLAUDEAI_MCP_SERVERS=false`](/zh-CN/env-vars) 或 [`disableClaudeAiConnectors`](/zh-CN/settings#available-settings) 设置 |126| `mcp-proxy.anthropic.com` | [来自 claude.ai 的 MCP 连接器](/docs/zh-CN/mcp#use-mcp-servers-from-claude-ai),包括组织管理员配置的连接器。连接器流量通过此代理路由;对于 claude.ai 认证用户,连接器默认启用。要禁用,请设置 [`ENABLE_CLAUDEAI_MCP_SERVERS=false`](/docs/zh-CN/env-vars) 或 [`disableClaudeAiConnectors`](/docs/zh-CN/settings#available-settings) 设置 |

127| `downloads.claude.ai` | 插件可执行文件下载;原生安装程序和原生自动更新程序 |127| `downloads.claude.ai` | 插件可执行文件下载;原生安装程序和原生自动更新程序 |

128| `storage.googleapis.com` | `/plugin` 中显示的安装计数和插件元数据。已签名的 [artifact](/zh-CN/artifacts) 上传首先尝试此主机;当 `api.anthropic.com` 被阻止时,发布会回退到它 |128| `storage.googleapis.com` | `/plugin` 中显示的安装计数和插件元数据。已签名的 [artifact](/docs/zh-CN/artifacts) 上传首先尝试此主机;当 `api.anthropic.com` 被阻止时,发布会回退到它 |

129| `storage.googleapis.com` | {/* max-version: 2.1.115 */}2.1.116 版本之前的原生安装程序和原生自动更新程序 |129| `storage.googleapis.com` | 2.1.116 版本之前的原生安装程序和原生自动更新程序 |

130| `bridge.claudeusercontent.com` | [Chrome 中的 Claude](/zh-CN/chrome) 扩展 WebSocket 桥接 |130| `bridge.claudeusercontent.com` | [Chrome 中的 Claude](/docs/zh-CN/chrome) 扩展 WebSocket 桥接 |

131| `*.claudeusercontent.com` | 在 claude.ai 上查看[artifacts](/zh-CN/artifacts)。查看器从此源的沙箱子域加载每个 artifact 的内容。查看器的浏览器中需要此项,CLI 本身不需要 |131| `*.claudeusercontent.com` | 在 claude.ai 上查看[artifacts](/docs/zh-CN/artifacts)。查看器从此源的沙箱子域加载每个 artifact 的内容。查看器的浏览器中需要此项,CLI 本身不需要 |

132| `raw.githubusercontent.com` | [`/release-notes`](/zh-CN/commands) 的更新日志源和更新后显示的发布说明 |132| `raw.githubusercontent.com` | [`/release-notes`](/docs/zh-CN/commands) 的更新日志源和更新后显示的发布说明 |

133 133 

134如果您通过 npm 安装 Claude Code 或管理自己的二进制分发,最终用户不需要原生安装程序,自动更新程序不需要使用 `downloads.claude.ai`。表中的其他用途无论安装方法如何都适用。134如果您通过 npm 安装 Claude Code 或管理自己的二进制分发,最终用户不需要原生安装程序,自动更新程序不需要使用 `downloads.claude.ai`。表中的其他用途无论安装方法如何都适用。

135 135 

136Claude Code 默认还会发送可选的操作遥测数据,您可以使用环境变量禁用它。请参阅 [遥测服务](/zh-CN/data-usage#telemetry-services) 了解如何在最终确定您的白名单之前禁用它。136Claude Code 默认还会发送可选的操作遥测数据,您可以使用环境变量禁用它。请参阅 [遥测服务](/docs/zh-CN/data-usage#telemetry-services) 了解如何在最终确定您的白名单之前禁用它。

137 137 

138使用 [Amazon Bedrock](/zh-CN/amazon-bedrock)、[Google Cloud 的 Agent Platform](/zh-CN/google-vertex-ai)、[Microsoft Foundry](/zh-CN/microsoft-foundry) 或已登录的 [Claude apps gateway](/zh-CN/claude-apps-gateway) 会话时,模型流量和身份验证会转到您的提供商或网关,而不是 `api.anthropic.com`、`claude.ai` 或 `platform.claude.com`。WebFetch 工具仍会调用 `api.anthropic.com` 进行其 [域名安全检查](/zh-CN/data-usage#webfetch-domain-safety-check),除非您在 [settings](/zh-CN/settings) 中设置 `skipWebFetchPreflight: true`。138使用 [Amazon Bedrock](/docs/zh-CN/amazon-bedrock)、[Google Cloud 的 Agent Platform](/docs/zh-CN/google-vertex-ai)、[Microsoft Foundry](/docs/zh-CN/microsoft-foundry) 或已登录的 [Claude apps gateway](/docs/zh-CN/claude-apps-gateway) 会话时,模型流量和身份验证会转到您的提供商或网关,而不是 `api.anthropic.com`、`claude.ai` 或 `platform.claude.com`。WebFetch 工具仍会调用 `api.anthropic.com` 进行其 [域名安全检查](/docs/zh-CN/data-usage#webfetch-domain-safety-check),除非您在 [settings](/docs/zh-CN/settings) 中设置 `skipWebFetchPreflight: true`。

139 139 

140[Claude Code on the web](/zh-CN/claude-code-on-the-web) 和 [Code Review](/zh-CN/code-review) 从 Anthropic 管理的基础设施连接到您的存储库。如果您的 GitHub Enterprise Cloud 组织按 IP 地址限制访问,请启用 [已安装 GitHub Apps 的 IP 允许列表继承](https://docs.github.com/en/enterprise-cloud@latest/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/managing-allowed-ip-addresses-for-your-organization#allowing-access-by-github-apps)。Claude GitHub App 注册了其 IP 范围,因此启用此设置允许访问而无需手动配置。要 [手动将范围添加到您的允许列表](https://docs.github.com/en/enterprise-cloud@latest/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/managing-allowed-ip-addresses-for-your-organization#adding-an-allowed-ip-address),或配置其他防火墙,请参阅 [Anthropic API IP 地址](https://platform.claude.com/docs/en/api/ip-addresses)。140[Claude Code on the web](/docs/zh-CN/claude-code-on-the-web) 和 [Code Review](/docs/zh-CN/code-review) 从 Anthropic 管理的基础设施连接到您的存储库。如果您的 GitHub Enterprise Cloud 组织按 IP 地址限制访问,请启用 [已安装 GitHub Apps 的 IP 允许列表继承](https://docs.github.com/en/enterprise-cloud@latest/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/managing-allowed-ip-addresses-for-your-organization#allowing-access-by-github-apps)。Claude GitHub App 注册了其 IP 范围,因此启用此设置允许访问而无需手动配置。要 [手动将范围添加到您的允许列表](https://docs.github.com/en/enterprise-cloud@latest/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/managing-allowed-ip-addresses-for-your-organization#adding-an-allowed-ip-address),或配置其他防火墙,请参阅 [Anthropic API IP 地址](https://platform.claude.com/docs/en/api/ip-addresses)。

141 141 

142对于防火墙后的自托管 [GitHub Enterprise Server](/zh-CN/github-enterprise-server) 实例,请将相同的 [Anthropic API IP 地址](https://platform.claude.com/docs/en/api/ip-addresses) 列入白名单,以便 Anthropic 基础设施可以访问您的 GHES 主机来克隆存储库和发布审查评论。142对于防火墙后的自托管 [GitHub Enterprise Server](/docs/zh-CN/github-enterprise-server) 实例,请将相同的 [Anthropic API IP 地址](https://platform.claude.com/docs/en/api/ip-addresses) 列入白名单,以便 Anthropic 基础设施可以访问您的 GHES 主机来克隆存储库和发布审查评论。

143 143 

144<h3 id="desktop-and-claude-ai">144<h3 id="desktop-and-claude-ai">

145 Desktop 和 claude.ai145 Desktop 和 claude.ai

146</h3>146</h3>

147 147 

148前面的表格主要涵盖独立 CLI。Claude Desktop 应用和浏览器中的 claude.ai 从其他 Anthropic CDN 主机加载其应用代码,包括 `assets-proxy.anthropic.com`。允许 `claude.ai` 而阻止这些主机会产生空白页面而不是错误。请参阅 Desktop 页面上的 [网络访问要求](/zh-CN/desktop#network-access-requirements)。148前面的表格主要涵盖独立 CLI。Claude Desktop 应用和浏览器中的 claude.ai 从其他 Anthropic CDN 主机加载其应用代码,包括 `assets-proxy.anthropic.com`。允许 `claude.ai` 而阻止这些主机会产生空白页面而不是错误。请参阅 Desktop 页面上的 [网络访问要求](/docs/zh-CN/desktop#network-access-requirements)。

149 149 

150<h2 id="additional-resources">150<h2 id="additional-resources">

151 其他资源151 其他资源

152</h2>152</h2>

153 153 

154* [Claude Code 设置](/zh-CN/settings)154* [Claude Code 设置](/docs/zh-CN/settings)

155* [环境变量参考](/zh-CN/env-vars)155* [环境变量参考](/docs/zh-CN/env-vars)

156* [故障排除指南](/zh-CN/troubleshooting)156* [故障排除指南](/docs/zh-CN/troubleshooting)

output-styles.md +15 −15

Details

10 10 

11自定义输出样式将你的说明添加到系统提示中,并让你选择是否保留 Claude Code 的内置软件工程说明。当你改变 Claude 的通信方式但仍在编码时(例如总是用图表回答),请保留它们。当 Claude 根本不进行软件工程时(例如写作助手或数据分析师),请省略它们。11自定义输出样式将你的说明添加到系统提示中,并让你选择是否保留 Claude Code 的内置软件工程说明。当你改变 Claude 的通信方式但仍在编码时(例如总是用图表回答),请保留它们。当 Claude 根本不进行软件工程时(例如写作助手或数据分析师),请省略它们。

12 12 

13有关你的项目、约定或代码库的说明,请改用 [CLAUDE.md](/zh-CN/memory)。13有关你的项目、约定或代码库的说明,请改用 [CLAUDE.md](/docs/zh-CN/memory)。

14 14 

15<h2 id="built-in-output-styles">15<h2 id="built-in-output-styles">

16 内置输出样式16 内置输出样式


20 20 

21还有三种额外的内置输出样式:21还有三种额外的内置输出样式:

22 22 

23* **Proactive**:Claude 立即执行,做出合理的假设而不是暂停进行常规决策,并倾向于行动而非规划。这提供了比[自动模式](/zh-CN/permission-modes#eliminate-prompts-with-auto-mode)更强的自主执行指导,并且无需更改你的权限模式即可工作,因此你仍然会在工具运行前看到权限提示。23* **Proactive**:Claude 立即执行,做出合理的假设而不是暂停进行常规决策,并倾向于行动而非规划。这提供了比[自动模式](/docs/zh-CN/permission-modes#eliminate-prompts-with-auto-mode)更强的自主执行指导,并且无需更改你的权限模式即可工作,因此你仍然会在工具运行前看到权限提示。

24 24 

25* **Explanatory**:在帮助你完成软件工程任务的同时提供教育性的"Insights"。帮助你理解实现选择和代码库模式。25* **Explanatory**:在帮助你完成软件工程任务的同时提供教育性的"Insights"。帮助你理解实现选择和代码库模式。

26 26 


30 更改你的输出样式30 更改你的输出样式

31</h2>31</h2>

32 32 

33运行 `/config` 并选择**输出样式**从菜单中选择一种样式。你的选择会保存到[本地项目级别](/zh-CN/settings)的 `.claude/settings.local.json`。33运行 `/config` 并选择**输出样式**从菜单中选择一种样式。你的选择会保存到[本地项目级别](/docs/zh-CN/settings)的 `.claude/settings.local.json`。

34 34 

35<Note>{/* max-version: 2.1.90 */}独立的 `/output-style` 命令在 v2.1.73 中已弃用,在 v2.1.91 中被移除。使用 `/config` 或直接编辑 `outputStyle` 设置。</Note>35<Note>独立的 `/output-style` 命令在 v2.1.73 中已弃用,在 v2.1.91 中被移除。使用 `/config` 或直接编辑 `outputStyle` 设置。</Note>

36 36 

37要在不使用菜单的情况下设置样式,直接编辑设置文件中的 `outputStyle` 字段:37要在不使用菜单的情况下设置样式,直接编辑设置文件中的 `outputStyle` 字段:

38 38 


42}42}

43```43```

44 44 

45输出样式是系统提示的一部分,Claude Code 在会话开始时读取一次。更改将在 `/clear` 或新会话后生效。请参阅[Claude Code 如何使用 prompt caching](/zh-CN/prompt-caching#changing-output-style)了解输出样式更改对缓存的影响。45输出样式是系统提示的一部分,Claude Code 在会话开始时读取一次。更改将在 `/clear` 或新会话后生效。请参阅[Claude Code 如何使用 prompt caching](/docs/zh-CN/prompt-caching#changing-output-style)了解输出样式更改对缓存的影响。

46 46 

47<h2 id="create-a-custom-output-style">47<h2 id="create-a-custom-output-style">

48 创建自定义输出样式48 创建自定义输出样式


56 56 

57 * 用户:`~/.claude/output-styles`57 * 用户:`~/.claude/output-styles`

58 * 项目:`.claude/output-styles`58 * 项目:`.claude/output-styles`

59 * 托管策略:[托管设置目录](/zh-CN/settings#settings-files)内的 `.claude/output-styles`59 * 托管策略:[托管设置目录](/docs/zh-CN/settings#settings-files)内的 `.claude/output-styles`

60 60 

61 项目输出样式从工作目录和仓库根目录之间的每个 `.claude/output-styles/` 加载。{/* min-version: 2.1.178 */}从 v2.1.178 开始,当多个这样的嵌套目录定义了同名样式时,Claude Code 使用最接近工作目录的那个。61 项目输出样式从工作目录和仓库根目录之间的每个 `.claude/output-styles/` 加载。从 v2.1.178 开始,当多个这样的嵌套目录定义了同名样式时,Claude Code 使用最接近工作目录的那个。

62 </Step>62 </Step>

63 63 

64 <Step title="添加 frontmatter 和说明">64 <Step title="添加 frontmatter 和说明">


86 </Step>86 </Step>

87</Steps>87</Steps>

88 88 

89[Plugins](/zh-CN/plugins-reference) 也可以在 `output-styles/` 目录中提供输出样式。89[Plugins](/docs/zh-CN/plugins-reference) 也可以在 `output-styles/` 目录中提供输出样式。

90 90 

91<h3 id="frontmatter">91<h3 id="frontmatter">

92 Frontmatter92 Frontmatter


122| 功能 | 工作原理 | 何时使用 |122| 功能 | 工作原理 | 何时使用 |

123| :-------------------------- | :------------------- | :------------------------- |123| :-------------------------- | :------------------- | :------------------------- |

124| 输出样式 | 修改系统提示 | 你想要每个回合都有不同的角色、语气或默认响应格式 |124| 输出样式 | 修改系统提示 | 你想要每个回合都有不同的角色、语气或默认响应格式 |

125| [CLAUDE.md](/zh-CN/memory) | 在系统提示之后添加用户消息 | Claude 应该始终了解你的项目约定和代码库上下文 |125| [CLAUDE.md](/docs/zh-CN/memory) | 在系统提示之后添加用户消息 | Claude 应该始终了解你的项目约定和代码库上下文 |

126| `--append-system-prompt` | 附加到系统提示而不删除任何内容 | 你想要一次性添加单个调用 |126| `--append-system-prompt` | 附加到系统提示而不删除任何内容 | 你想要一次性添加单个调用 |

127| [Agents](/zh-CN/sub-agents) | 使用自己的系统提示、模型和工具运行子代理 | 你想要一个单独作用域的辅助工具来完成专注的任务 |127| [Agents](/docs/zh-CN/sub-agents) | 使用自己的系统提示、模型和工具运行子代理 | 你想要一个单独作用域的辅助工具来完成专注的任务 |

128| [Skills](/zh-CN/skills) | 在调用时或相关时加载特定于任务的说明 | 你有一个可重用的工作流 |128| [Skills](/docs/zh-CN/skills) | 在调用时或相关时加载特定于任务的说明 | 你有一个可重用的工作流 |

129 129 

130<h2 id="related-resources">130<h2 id="related-resources">

131 相关资源131 相关资源

132</h2>132</h2>

133 133 

134* [Settings](/zh-CN/settings):`outputStyle` 字段所在的位置以及设置优先级的工作原理134* [Settings](/docs/zh-CN/settings):`outputStyle` 字段所在的位置以及设置优先级的工作原理

135* [Permission modes](/zh-CN/permission-modes):Proactive 样式与自动模式的比较方式135* [Permission modes](/docs/zh-CN/permission-modes):Proactive 样式与自动模式的比较方式

136* [Plugins](/zh-CN/plugins):打包和分发输出样式以及 skills、hooks 和 agents136* [Plugins](/docs/zh-CN/plugins):打包和分发输出样式以及 skills、hooks 和 agents

137* [Debug your configuration](/zh-CN/debug-your-config):诊断为什么输出样式没有生效137* [Debug your configuration](/docs/zh-CN/debug-your-config):诊断为什么输出样式没有生效

Details

27 27 

28在除 `bypassPermissions` 之外的每种模式中,对[受保护路径](#protected-paths)的写入永远不会自动批准,保护存储库状态和 Claude 自己的配置免受意外损坏。28在除 `bypassPermissions` 之外的每种模式中,对[受保护路径](#protected-paths)的写入永远不会自动批准,保护存储库状态和 Claude 自己的配置免受意外损坏。

29 29 

30模式设置基线。在顶部分层[权限规则](/zh-CN/permissions#manage-permissions)以预先批准或阻止特定工具。拒绝规则、显式询问规则、[连接器工具上的组织 `ask` 设置](/zh-CN/mcp#organization-controls-on-connector-tools)和 [`requiresUserInteraction`](/zh-CN/mcp#require-approval-for-a-specific-tool) 标记适用于每种模式,包括 `bypassPermissions`。允许规则在该模式中无效,因为其他所有内容都已被批准。30模式设置基线。在顶部分层[权限规则](/docs/zh-CN/permissions#manage-permissions)以预先批准或阻止特定工具。拒绝规则、显式询问规则、[连接器工具上的组织 `ask` 设置](/docs/zh-CN/mcp#organization-controls-on-connector-tools)和 [`requiresUserInteraction`](/docs/zh-CN/mcp#require-approval-for-a-specific-tool) 标记适用于每种模式,包括 `bypassPermissions`。允许规则在该模式中无效,因为其他所有内容都已被批准。

31 31 

32<h2 id="switch-permission-modes">32<h2 id="switch-permission-modes">

33 切换权限模式33 切换权限模式


37 37 

38<Tabs>38<Tabs>

39 <Tab title="CLI">39 <Tab title="CLI">

40 **在会话期间**:按 `Shift+Tab` 循环切换 `default` → `acceptEdits` → `plan`。当前模式显示在状态栏中。{/* min-version: 2.1.203 */}手动模式(该循环中的 `default`)显示灰色的 `⏸ manual mode on` 徽章。在 v2.1.203 之前,状态栏在手动模式下不显示徽章。40 **在会话期间**:按 `Shift+Tab` 循环切换 `default` → `acceptEdits` → `plan`。当前模式显示在状态栏中。手动模式(该循环中的 `default`)显示灰色的 `⏸ manual mode on` 徽章。在 v2.1.203 之前,状态栏在手动模式下不显示徽章。

41 41 

42 并非每个模式都在默认循环中:42 并非每个模式都在默认循环中:

43 43 


53 claude --permission-mode plan53 claude --permission-mode plan

54 ```54 ```

55 55 

56 **作为默认值**:在 [设置](/zh-CN/settings#settings-files) 中设置 `defaultMode`。56 **作为默认值**:在 [设置](/docs/zh-CN/settings#settings-files) 中设置 `defaultMode`。

57 57 

58 ```json theme={null}58 ```json theme={null}

59 {59 {


63 }63 }

64 ```64 ```

65 65 

66 相同的 `--permission-mode` 标志适用于 `-p` 用于 [非交互式运行](/zh-CN/headless)。66 相同的 `--permission-mode` 标志适用于 `-p` 用于 [非交互式运行](/docs/zh-CN/headless)。

67 </Tab>67 </Tab>

68 68 

69 <Tab title="VS Code">69 <Tab title="VS Code">


83 83 

84 在 v2.1.205 之前,扩展将 `plan` 标记为 Plan mode,将 `auto` 标记为 Auto mode。84 在 v2.1.205 之前,扩展将 `plan` 标记为 Plan mode,将 `auto` 标记为 Auto mode。

85 85 

86 当您的账户满足 [auto 模式部分](#eliminate-prompts-with-auto-mode) 中列出的每项要求时,Auto 模式会在模式指示器中出现。`claudeCode.initialPermissionMode` 设置不接受 `auto`。要默认以 auto 模式启动,请改为在您的 [用户设置](/zh-CN/settings#settings-files) 中设置 `defaultMode`。Claude Code 忽略项目和本地设置中的 `defaultMode: "auto"`。86 当您的账户满足 [auto 模式部分](#eliminate-prompts-with-auto-mode) 中列出的每项要求时,Auto 模式会在模式指示器中出现。`claudeCode.initialPermissionMode` 设置不接受 `auto`。要默认以 auto 模式启动,请改为在您的 [用户设置](/docs/zh-CN/settings#settings-files) 中设置 `defaultMode`。Claude Code 忽略项目和本地设置中的 `defaultMode: "auto"`。

87 87 

88 绕过权限需要扩展设置中的 **Allow dangerously skip permissions** 切换,然后才能在模式指示器中出现。88 绕过权限需要扩展设置中的 **Allow dangerously skip permissions** 切换,然后才能在模式指示器中出现。

89 89 

90 有关扩展特定的详细信息,请参阅 [VS Code 指南](/zh-CN/vs-code)。90 有关扩展特定的详细信息,请参阅 [VS Code 指南](/docs/zh-CN/vs-code)。

91 </Tab>91 </Tab>

92 92 

93 <Tab title="JetBrains">93 <Tab title="JetBrains">


100 * **Auto**:当您的账户满足 [auto 模式要求](#eliminate-prompts-with-auto-mode) 时出现100 * **Auto**:当您的账户满足 [auto 模式要求](#eliminate-prompts-with-auto-mode) 时出现

101 * **Bypass permissions**:在 Pro 和 Max 计划上需要 Desktop 设置中的 **Allow bypass permissions mode** 切换;在 Team 和 Enterprise 计划上,组织策略控制它101 * **Bypass permissions**:在 Pro 和 Max 计划上需要 Desktop 设置中的 **Allow bypass permissions mode** 切换;在 Team 和 Enterprise 计划上,组织策略控制它

102 102 

103 有关 desktop 特定的详细信息,请参阅 Desktop 指南中的 [选择权限模式](/zh-CN/desktop#choose-a-permission-mode)。103 有关 desktop 特定的详细信息,请参阅 Desktop 指南中的 [选择权限模式](/docs/zh-CN/desktop#choose-a-permission-mode)。

104 104 

105 **作为默认值**:在 [设置](/zh-CN/settings#settings-files) 中设置 `defaultMode`。桌面应用读取与 CLI 相同的设置文件,并将模式应用于新的本地会话。105 **作为默认值**:在 [设置](/docs/zh-CN/settings#settings-files) 中设置 `defaultMode`。桌面应用读取与 CLI 相同的设置文件,并将模式应用于新的本地会话。

106 106 

107 您在模式选择器中选择的模式会按文件夹记住,并对该文件夹优先于 `defaultMode`。Plan 是例外:选择它仅适用于当前会话。107 您在模式选择器中选择的模式会按文件夹记住,并对该文件夹优先于 `defaultMode`。Plan 是例外:选择它仅适用于当前会话。

108 108 


120 <Tab title="Web and mobile">120 <Tab title="Web and mobile">

121 在 [claude.ai/code](https://claude.ai/code) 或移动应用中使用提示框旁边的模式下拉菜单。权限提示出现在 claude.ai 中以供批准。显示哪些模式取决于会话在何处运行:121 在 [claude.ai/code](https://claude.ai/code) 或移动应用中使用提示框旁边的模式下拉菜单。权限提示出现在 claude.ai 中以供批准。显示哪些模式取决于会话在何处运行:

122 122 

123 * **Cloud sessions** 在 [Claude Code on the web](/zh-CN/claude-code-on-the-web) 上:Accept edits、Plan 和 Auto。Accept edits 对应于 `default` 模式:云环境预先批准文件编辑,无论模式如何,因此下拉菜单显示 Accept edits 而不是 Manual。Cloud sessions 仍然遵守设置中的 `defaultMode: "acceptEdits"`。Auto 模式仅在您的组织允许且所选模型支持时出现。Bypass permissions 不可用。123 * **Cloud sessions** 在 [Claude Code on the web](/docs/zh-CN/claude-code-on-the-web) 上:Accept edits、Plan 和 Auto。Accept edits 对应于 `default` 模式:云环境预先批准文件编辑,无论模式如何,因此下拉菜单显示 Accept edits 而不是 Manual。Cloud sessions 仍然遵守设置中的 `defaultMode: "acceptEdits"`。Auto 模式仅在您的组织允许且所选模型支持时出现。Bypass permissions 不可用。

124 * **[Remote Control](/zh-CN/remote-control) sessions** 在您的本地机器上:Manual、Accept edits 和 Plan。您无法从应用中选择 Auto 或 Bypass permissions。{/* min-version: 2.1.202 */}下拉菜单显示本地会话所在的模式,包括从终端设置的模式,并在应用或终端中模式更改时更新。唯一的例外是 Bypass permissions:会话永远不会向 claude.ai 报告该模式,因此从终端切换到它不会改变下拉菜单显示的内容。在 v2.1.202 之前,使用 `/remote-control` 或 `claude --remote-control` 连接的会话根本不报告其模式,因此 claude.ai 和移动应用可能显示会话不在的模式。不匹配仅影响标签:Claude Code 从会话的实际模式生成权限提示,它们仍然出现在应用中以供批准。124 * **[Remote Control](/docs/zh-CN/remote-control) sessions** 在您的本地机器上:Manual、Accept edits 和 Plan。您无法从应用中选择 Auto 或 Bypass permissions。下拉菜单显示本地会话所在的模式,包括从终端设置的模式,并在应用或终端中模式更改时更新。唯一的例外是 Bypass permissions:会话永远不会向 claude.ai 报告该模式,因此从终端切换到它不会改变下拉菜单显示的内容。在 v2.1.202 之前,使用 `/remote-control` 或 `claude --remote-control` 连接的会话根本不报告其模式,因此 claude.ai 和移动应用可能显示会话不在的模式。不匹配仅影响标签:Claude Code 从会话的实际模式生成权限提示,它们仍然出现在应用中以供批准。

125 125 

126 对于 Remote Control,您还可以在启动主机时设置起始模式:126 对于 Remote Control,您还可以在启动主机时设置起始模式:

127 127 


137 137 

138`acceptEdits` 模式让 Claude 在你的工作目录中创建和编辑文件,无需提示。当此模式处于活动状态时,状态栏显示 `⏵⏵ accept edits on`。138`acceptEdits` 模式让 Claude 在你的工作目录中创建和编辑文件,无需提示。当此模式处于活动状态时,状态栏显示 `⏵⏵ accept edits on`。

139 139 

140除了文件编辑外,`acceptEdits` 模式还自动批准常见的文件系统 Bash 命令:`mkdir`、`touch`、`rm`、`rmdir`、`mv`、`cp` 和 `sed`。当这些命令带有安全环境变量(如 `LANG=C` 或 `NO_COLOR=1`)或进程包装器(如 `timeout`、`nice` 或 `nohup`)作为前缀时,也会自动批准。与文件编辑一样,自动批准仅适用于工作目录或 `additionalDirectories` 内的路径。超出该范围的路径、对[受保护路径](#protected-paths)的写入以及所有其他 Bash 命令(除了[内置只读集合](/zh-CN/permissions#read-only-commands))仍然会提示。140除了文件编辑外,`acceptEdits` 模式还自动批准常见的文件系统 Bash 命令:`mkdir`、`touch`、`rm`、`rmdir`、`mv`、`cp` 和 `sed`。当这些命令带有安全环境变量(如 `LANG=C` 或 `NO_COLOR=1`)或进程包装器(如 `timeout`、`nice` 或 `nohup`)作为前缀时,也会自动批准。与文件编辑一样,自动批准仅适用于工作目录或 `additionalDirectories` 内的路径。超出该范围的路径、对[受保护路径](#protected-paths)的写入以及所有其他 Bash 命令(除了[内置只读集合](/docs/zh-CN/permissions#read-only-commands))仍然会提示。

141 141 

142当启用 [PowerShell tool](/zh-CN/tools-reference#powershell-tool) 时,`acceptEdits` 模式还会自动批准 `Set-Content`、`Add-Content`、`Clear-Content` 和 `Remove-Item` 在范围内路径上的操作,以及它们的常见别名。相同的范围和受保护路径规则适用。142当启用 [PowerShell tool](/docs/zh-CN/tools-reference#powershell-tool) 时,`acceptEdits` 模式还会自动批准 `Set-Content`、`Add-Content`、`Clear-Content` 和 `Remove-Item` 在范围内路径上的操作,以及它们的常见别名。相同的范围和受保护路径规则适用。

143 143 

144当你想在编辑器中或通过 `git diff` 事后查看更改,而不是逐个批准每个编辑时,使用 `acceptEdits`。144当你想在编辑器中或通过 `git diff` 事后查看更改,而不是逐个批准每个编辑时,使用 `acceptEdits`。

145 145 


153 使用 plan mode 在编辑前进行分析153 使用 plan mode 在编辑前进行分析

154</h2>154</h2>

155 155 

156Plan mode 告诉 Claude 研究并提议更改,但不进行实际编辑。Claude 读取文件、运行 shell 命令进行探索并编写计划,但不编辑您的源代码。权限提示的应用方式与手动模式相同,除非 [auto mode](/zh-CN/auto-mode-config) 可用且 `useAutoModeDuringPlan` 已启用(这是默认设置)。启用 auto mode 后,分类器会批准只读命令(如搜索和文件读取)而无需提示。无论哪种方式,编辑都会保持阻止状态,直到您批准计划。156Plan mode 告诉 Claude 研究并提议更改,但不进行实际编辑。Claude 读取文件、运行 shell 命令进行探索并编写计划,但不编辑您的源代码。权限提示的应用方式与手动模式相同,除非 [auto mode](/docs/zh-CN/auto-mode-config) 可用且 `useAutoModeDuringPlan` 已启用(这是默认设置)。启用 auto mode 后,分类器会批准只读命令(如搜索和文件读取)而无需提示。无论哪种方式,编辑都会保持阻止状态,直到您批准计划。

157 157 

158通过按 `Shift+Tab` 或在单个提示前加上 `/plan` 来进入 plan mode。您也可以从 CLI 启动 plan mode:158通过按 `Shift+Tab` 或在单个提示前加上 `/plan` 来进入 plan mode。您也可以从 CLI 启动 plan mode:

159 159 


173* 批准并接受编辑173* 批准并接受编辑

174* 批准并手动审查每个编辑174* 批准并手动审查每个编辑

175* 继续规划并提供反馈175* 继续规划并提供反馈

176* 使用 [Ultraplan](/zh-CN/ultraplan) 进行基于浏览器的审查176* 使用 [Ultraplan](/docs/zh-CN/ultraplan) 进行基于浏览器的审查

177 177 

178批准计划会退出 plan mode 并将会话切换到每个批准选项描述的权限模式,因此 Claude 开始编辑。要再次规划,使用 `Shift+Tab` 循环回到 plan mode,或在下一个提示前加上 `/plan`。178批准计划会退出 plan mode 并将会话切换到每个批准选项描述的权限模式,因此 Claude 开始编辑。要再次规划,使用 `Shift+Tab` 循环回到 plan mode,或在下一个提示前加上 `/plan`。

179 179 

180按 `Ctrl+G` 在默认文本编辑器中打开建议的计划并在 Claude 继续之前直接编辑它。当启用 [`showClearContextOnPlanAccept`](/zh-CN/settings#available-settings) 时,每个批准选项也会提供在首先清除规划上下文的选项。180按 `Ctrl+G` 在默认文本编辑器中打开建议的计划并在 Claude 继续之前直接编辑它。当启用 [`showClearContextOnPlanAccept`](/docs/zh-CN/settings#available-settings) 时,每个批准选项也会提供在首先清除规划上下文的选项。

181 181 

182接受计划也会根据计划内容自动命名会话,除非您已经使用 `--name` 或 `/rename` 设置了名称。182接受计划也会根据计划内容自动命名会话,除非您已经使用 `--name` 或 `/rename` 设置了名称。

183 183 


199 使用自动模式消除权限提示199 使用自动模式消除权限提示

200</h2>200</h2>

201 201 

202自动模式让 Claude 无需例行权限提示即可执行。一个独立的分类器模型在操作运行前审查它们,阻止任何超出您请求范围、针对无法识别的基础设施或看起来由 Claude 读取的恶意内容驱动的操作。显式的[询问规则](/zh-CN/permissions#manage-permissions)仍然会强制显示提示。202自动模式让 Claude 无需例行权限提示即可执行。一个独立的分类器模型在操作运行前审查它们,阻止任何超出您请求范围、针对无法识别的基础设施或看起来由 Claude 读取的恶意内容驱动的操作。显式的[询问规则](/docs/zh-CN/permissions#manage-permissions)仍然会强制显示提示。

203 203 

204针对文件系统根目录或主目录的删除操作,如 `rm -rf /` 和 `rm -rf ~`,会提示批准而不是进入分类器。{/* min-version: 2.1.208 */}当命令包含带有 `$(...)` 或反引号的命令替换,或带有 `<(...)` 的进程替换时,此提示也会触发,无论删除是在替换内部(如 `echo "$(rm -rf ~)"`),还是在同一命令的其他地方。在 v2.1.208 之前,包含这些形式的命令进入分类器而不是提示。204针对文件系统根目录或主目录的删除操作,如 `rm -rf /` 和 `rm -rf ~`,会提示批准而不是进入分类器。当命令包含带有 `$(...)` 或反引号的命令替换,或带有 `<(...)` 的进程替换时,此提示也会触发,无论删除是在替换内部(如 `echo "$(rm -rf ~)"`),还是在同一命令的其他地方。在 v2.1.208 之前,包含这些形式的命令进入分类器而不是提示。

205 205 

206自动模式还会促使 Claude 继续工作而不停下来提出澄清问题,尽管当您的提示或技能明确依赖它时,Claude 仍然会询问。为了获得更强的自主行为同时保持权限提示,请改为设置[主动输出风格](/zh-CN/output-styles)。206自动模式还会促使 Claude 继续工作而不停下来提出澄清问题,尽管当您的提示或技能明确依赖它时,Claude 仍然会询问。为了获得更强的自主行为同时保持权限提示,请改为设置[主动输出风格](/docs/zh-CN/output-styles)。

207 207 

208<Warning>208<Warning>

209 自动模式减少权限提示,但不保证安全。将其用于您信任总体方向的任务,而不是作为敏感操作审查的替代品。209 自动模式减少权限提示,但不保证安全。将其用于您信任总体方向的任务,而不是作为敏感操作审查的替代品。


212自动模式仅在您的账户满足以下所有要求时可用:212自动模式仅在您的账户满足以下所有要求时可用:

213 213 

214* **计划**:所有计划。214* **计划**:所有计划。

215* **所有者**:在 Team 和 Enterprise 上,所有者必须在 [Claude Code 管理员设置](https://claude.ai/admin-settings/claude-code)中启用它,用户才能打开它。管理员也可以通过在[托管设置](/zh-CN/permissions#managed-settings)中将 `permissions.disableAutoMode` 设置为 `"disable"` 来关闭自动模式。对于桌面应用的 Code 选项卡,`disableAutoMode` 是组织级别的控制,管理员设置切换不适用。215* **所有者**:在 Team 和 Enterprise 上,所有者必须在 [Claude Code 管理员设置](https://claude.ai/admin-settings/claude-code)中启用它,用户才能打开它。管理员也可以通过在[托管设置](/docs/zh-CN/permissions#managed-settings)中将 `permissions.disableAutoMode` 设置为 `"disable"` 来关闭自动模式。对于桌面应用的 Code 选项卡,`disableAutoMode` 是组织级别的控制,管理员设置切换不适用。

216* **模型**:在 Anthropic API 上,Claude Opus 4.6 或更高版本,或 Sonnet 4.6 或更高版本。在 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 和已登录的 [Claude apps gateway](/zh-CN/claude-apps-gateway) 会话上,仅支持 Claude Sonnet 5、Opus 4.7 和 Opus 4.8。较旧的模型,包括 Sonnet 4.5、Opus 4.5、Haiku 和 claude-3 模型,在任何提供商上都不受支持。216* **模型**:在 Anthropic API 上,Claude Opus 4.6 或更高版本,或 Sonnet 4.6 或更高版本。在 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 和已登录的 [Claude apps gateway](/docs/zh-CN/claude-apps-gateway) 会话上,仅支持 Claude Sonnet 5、Opus 4.7 和 Opus 4.8。较旧的模型,包括 Sonnet 4.5、Opus 4.5、Haiku 和 claude-3 模型,在任何提供商上都不受支持。

217* **提供商**:在 Anthropic API、Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 和已登录的 Claude apps gateway 会话上默认可用。{/* min-version: 2.1.207 */}在 v2.1.158 到 v2.1.206 中,自动模式在除 Anthropic API 之外的所有这些提供商上都是关闭的,直到您设置 `CLAUDE_CODE_ENABLE_AUTO_MODE=1`;v2.1.207 移除了该要求。217* **提供商**:在 Anthropic API、Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 和已登录的 Claude apps gateway 会话上默认可用。在 v2.1.158 到 v2.1.206 中,自动模式在除 Anthropic API 之外的所有这些提供商上都是关闭的,直到您设置 `CLAUDE_CODE_ENABLE_AUTO_MODE=1`;v2.1.207 移除了该要求。

218 218 

219如果 Claude Code 报告自动模式不可用,则其中一个要求未满足;这不是暂时性中断。一条单独的消息,其中命名了一个模型并说自动模式"无法确定"操作的安全性,是暂时性分类器中断;请参阅[错误参考](/zh-CN/errors#auto-mode-cannot-determine-the-safety-of-an-action)。219如果 Claude Code 报告自动模式不可用,则其中一个要求未满足;这不是暂时性中断。一条单独的消息,其中命名了一个模型并说自动模式"无法确定"操作的安全性,是暂时性分类器中断;请参阅[错误参考](/docs/zh-CN/errors#auto-mode-cannot-determine-the-safety-of-an-action)。

220 220 

221如果您在[设置](/zh-CN/settings#available-settings)中设置 `defaultMode: "auto"`,并且会话以 `default` 模式启动且没有错误,则该设置可能在 `.claude/settings.json` 或 `.claude/settings.local.json` 中。Claude Code v2.1.142 及更高版本忽略来自这些文件的 `auto`,因此存储库无法授予自己自动模式。将其移至 `~/.claude/settings.json`。221如果您在[设置](/docs/zh-CN/settings#available-settings)中设置 `defaultMode: "auto"`,并且会话以 `default` 模式启动且没有错误,则该设置可能在 `.claude/settings.json` 或 `.claude/settings.local.json` 中。Claude Code v2.1.142 及更高版本忽略来自这些文件的 `auto`,因此存储库无法授予自己自动模式。将其移至 `~/.claude/settings.json`。

222 222 

223<h3 id="enable-auto-mode-on-bedrock-agent-platform-or-foundry">223<h3 id="enable-auto-mode-on-bedrock-agent-platform-or-foundry">

224 Bedrock、Agent Platform 或 Foundry 上的自动模式224 Bedrock、Agent Platform 或 Foundry 上的自动模式

225</h3>225</h3>

226 226 

227在 [Amazon Bedrock](/zh-CN/amazon-bedrock)、[Google Cloud 的 Agent Platform](/zh-CN/google-vertex-ai)、[Microsoft Foundry](/zh-CN/microsoft-foundry) 和已登录的 [Claude apps gateway](/zh-CN/claude-apps-gateway) 会话上,自动模式默认出现在 `Shift+Tab` 循环中。出现在循环中不会改变会话启动的模式:会话仍然以您的 [`defaultMode`](/zh-CN/settings#available-settings) 启动,除非您更改它,否则为 Manual。这些提供商上仅支持 Claude Sonnet 5、Opus 4.7 和 Opus 4.8。227在 [Amazon Bedrock](/docs/zh-CN/amazon-bedrock)、[Google Cloud 的 Agent Platform](/docs/zh-CN/google-vertex-ai)、[Microsoft Foundry](/docs/zh-CN/microsoft-foundry) 和已登录的 [Claude apps gateway](/docs/zh-CN/claude-apps-gateway) 会话上,自动模式默认出现在 `Shift+Tab` 循环中。出现在循环中不会改变会话启动的模式:会话仍然以您的 [`defaultMode`](/docs/zh-CN/settings#available-settings) 启动,除非您更改它,否则为 Manual。这些提供商上仅支持 Claude Sonnet 5、Opus 4.7 和 Opus 4.8。

228 228 

229要使自动模式成为默认启动模式,请在用户或托管设置中设置 `"permissions": {"defaultMode": "auto"}`。229要使自动模式成为默认启动模式,请在用户或托管设置中设置 `"permissions": {"defaultMode": "auto"}`。

230 230 

231要防止开发人员使用自动模式,请在[托管设置](/zh-CN/permissions#managed-settings)中将 `disableAutoMode` 设置为 `"disable"`。这会从 `Shift+Tab` 循环中移除 `auto`,并在启动时拒绝 `--permission-mode auto`。231要防止开发人员使用自动模式,请在[托管设置](/docs/zh-CN/permissions#managed-settings)中将 `disableAutoMode` 设置为 `"disable"`。这会从 `Shift+Tab` 循环中移除 `auto`,并在启动时拒绝 `--permission-mode auto`。

232 232 

233在 v2.1.158 到 v2.1.206 中,自动模式在这些提供商上是关闭的,直到您设置 `CLAUDE_CODE_ENABLE_AUTO_MODE=1`,并且 Claude Code 在这些提供商上忽略 `defaultMode: "auto"`,除非也设置了该变量。该变量仍然被接受以保持兼容性,从 v2.1.207 开始没有效果。233在 v2.1.158 到 v2.1.206 中,自动模式在这些提供商上是关闭的,直到您设置 `CLAUDE_CODE_ENABLE_AUTO_MODE=1`,并且 Claude Code 在这些提供商上忽略 `defaultMode: "auto"`,除非也设置了该变量。该变量仍然被接受以保持兼容性,从 v2.1.207 开始没有效果。

234 234 


236 分类器默认阻止的内容236 分类器默认阻止的内容

237</h3>237</h3>

238 238 

239分类器信任您的工作目录和为其配置的远程,这些远程在会话启动时被配置。{/* min-version: 2.1.200 */}在会话期间使用 `git remote add` 或 `git remote set-url` 添加或重新指向的远程不受信任,其他所有内容都被视为外部,直到您[配置受信任的基础设施](/zh-CN/auto-mode-config)。在 v2.1.200 之前,中途添加的远程也受信任。239分类器信任您的工作目录和为其配置的远程,这些远程在会话启动时被配置。在会话期间使用 `git remote add` 或 `git remote set-url` 添加或重新指向的远程不受信任,其他所有内容都被视为外部,直到您[配置受信任的基础设施](/docs/zh-CN/auto-mode-config)。在 v2.1.200 之前,中途添加的远程也受信任。

240 240 

241**默认阻止**:241**默认阻止**:

242 242 


248* 修改共享基础设施248* 修改共享基础设施

249* 不可逆地销毁会话前存在的文件249* 不可逆地销毁会话前存在的文件

250* 强制推送250* 强制推送

251* {/* min-version: 2.1.203 */}当推送包含敏感内容(如秘密或个人或受托数据)、包含相对于您要求的隐藏或描述错误的更改、包含从存储库外部移植或首次读取的内容,或绕过您要求的拉取请求、审查或检查时,推送到存储库的默认分支。普通推送到默认分支本身不会被阻止,清除标记的推送需要命名标记的内容或绕过的审查,而不仅仅是推送。分类器是一个层:[`permissions.deny` 规则](/zh-CN/permissions#manage-permissions)在每种模式下都适用,可以完全阻止推送到默认分支,远程自己的分支保护仍然适用。在 v2.1.203 之前,任何直接推送到默认分支都被阻止251* 当推送包含敏感内容(如秘密或个人或受托数据)、包含相对于您要求的隐藏或描述错误的更改、包含从存储库外部移植或首次读取的内容,或绕过您要求的拉取请求、审查或检查时,推送到存储库的默认分支。普通推送到默认分支本身不会被阻止,清除标记的推送需要命名标记的内容或绕过的审查,而不仅仅是推送。分类器是一个层:[`permissions.deny` 规则](/docs/zh-CN/permissions#manage-permissions)在每种模式下都适用,可以完全阻止推送到默认分支,远程自己的分支保护仍然适用。在 v2.1.203 之前,任何直接推送到默认分支都被阻止

252* {/* min-version: 2.1.182 */}`git reset --hard`、`git checkout -- .`、`git restore .`、`git clean -fd`、`git stash drop` 或 `git stash clear`,分类器假设会丢弃未提交的更改252* `git reset --hard`、`git checkout -- .`、`git restore .`、`git clean -fd`、`git stash drop` 或 `git stash clear`,分类器假设会丢弃未提交的更改

253* 当 HEAD 处的提交不是在此会话中创建的时,`git commit --amend`253* 当 HEAD 处的提交不是在此会话中创建的时,`git commit --amend`

254* {/* min-version: 2.1.198 */}从 v2.1.198 开始,当 HEAD 处的提交已经被推送时,`git commit --amend`。仅消息重述不被阻止:`--amend -m`,没有新暂存的内容,在 Claude 在此会话期间创建的提交上254* 从 v2.1.198 开始,当 HEAD 处的提交已经被推送时,`git commit --amend`。仅消息重述不被阻止:`--amend -m`,没有新暂存的内容,在 Claude 在此会话期间创建的提交上

255* `terraform destroy`、`pulumi destroy`、`cdk destroy` 或 `terragrunt destroy`,以及应用销毁资源的计划255* `terraform destroy`、`pulumi destroy`、`cdk destroy` 或 `terragrunt destroy`,以及应用销毁资源的计划

256 256 

257Claude Code v2.1.195 及更高版本默认阻止更多类别。其中几个取决于[环境](/zh-CN/auto-mode-config#define-trusted-infrastructure)条目,如敏感远程目标和受保护的 IaC 范围,您可以将其缩小到具体名称。257Claude Code v2.1.195 及更高版本默认阻止更多类别。其中几个取决于[环境](/docs/zh-CN/auto-mode-config#define-trusted-infrastructure)条目,如敏感远程目标和受保护的 IaC 范围,您可以将其缩小到具体名称。

258 258 

259* 写入秘密管理器,或更改 DNS 记录或 TLS 证书259* 写入秘密管理器,或更改 DNS 记录或 TLS 证书

260* 合并没有人类批准的拉取请求、批准 Claude 自己的拉取请求或禁用 CI 检查260* 合并没有人类批准的拉取请求、批准 Claude 自己的拉取请求或禁用 CI 检查


266* 交互式 shell 或端口转发到敏感远程目标266* 交互式 shell 或端口转发到敏感远程目标

267* 打开隧道或反向 shell,使本地服务可从公共互联网访问267* 打开隧道或反向 shell,使本地服务可从公共互联网访问

268* 将实时凭证或令牌打印到记录或文件中268* 将实时凭证或令牌打印到记录或文件中

269* 访问在您的[环境](/zh-CN/auto-mode-config#define-trusted-infrastructure)中列为敏感数据位置的位置,或从中复制数据。{/* min-version: 2.1.198 */}从 v2.1.198 开始,这也阻止从一个位置向条目排除的受众发送数据269* 访问在您的[环境](/docs/zh-CN/auto-mode-config#define-trusted-infrastructure)中列为敏感数据位置的位置,或从中复制数据。从 v2.1.198 开始,这也阻止从一个位置向条目排除的受众发送数据

270* 绕过您的内部包注册表将包安装路由到公共注册表。{/* min-version: 2.1.198 */}从 v2.1.198 开始,这也适用于您在对话中告诉 Claude 内部注册表或镜像存在的情况,而不仅仅是在您的环境中列出的情况270* 绕过您的内部包注册表将包安装路由到公共注册表。从 v2.1.198 开始,这也适用于您在对话中告诉 Claude 内部注册表或镜像存在的情况,而不仅仅是在您的环境中列出的情况

271* 使用禁用安全防护的标志运行命令,如 `--insecure`271* 使用禁用安全防护的标志运行命令,如 `--insecure`

272* 启动在没有人类批准或沙箱的情况下运行的自主代理循环,如使用 `--dangerously-skip-permissions` 或 `--no-sandbox` 启动的循环。{/* min-version: 2.1.198 */}从 v2.1.198 开始,这也涵盖运行第三方代理或评估工具,隔离和按操作批准被禁用,如使用 `--yes-always` 启动的运行器272* 启动在没有人类批准或沙箱的情况下运行的自主代理循环,如使用 `--dangerously-skip-permissions` 或 `--no-sandbox` 启动的循环。从 v2.1.198 开始,这也涵盖运行第三方代理或评估工具,隔离和按操作批准被禁用,如使用 `--yes-always` 启动的运行器

273* [Chrome 中的 Claude](/zh-CN/chrome) 浏览器操作,可能会将页面内容、cookie 或凭证发送到跨域273* [Chrome 中的 Claude](/docs/zh-CN/chrome) 浏览器操作,可能会将页面内容、cookie 或凭证发送到跨域

274 274 

275Claude Code v2.1.198 及更高版本也默认阻止这些:275Claude Code v2.1.198 及更高版本也默认阻止这些:

276 276 

277* 通过通配符、glob 或年龄过滤器而不是特定命名路径删除 `/tmp`、`$TMPDIR` 或其他共享暂存或缓存目录中的文件277* 通过通配符、glob 或年龄过滤器而不是特定命名路径删除 `/tmp`、`$TMPDIR` 或其他共享暂存或缓存目录中的文件

278* 当您自己的消息没有授权这些详细信息给该收件人时,在发送、上传、发布或写入其他人或共享系统的内容中包含敏感详细信息。{/* min-version: 2.1.200 */}当存储库在信任边界外或公开时,PR 和问题正文、提交消息和评论计为这种类型的出站内容,包括您组织自己的公开存储库;内部文件路径、代码名称、实时 API 响应数据(如电子邮件或账户标识符)和基础设施标识符计为敏感详细信息。PR、问题和提交消息范围需要 Claude Code v2.1.200 或更高版本。{/* min-version: 2.1.203 */}PR 或问题正文中的实时个人数据(如电子邮件地址、账户或组织标识符或使用指标)需要您命名这些详细信息和收件人,无论存储库的可见性或信任边界如何。该检查需要 Claude Code v2.1.203 或更高版本278* 当您自己的消息没有授权这些详细信息给该收件人时,在发送、上传、发布或写入其他人或共享系统的内容中包含敏感详细信息。当存储库在信任边界外或公开时,PR 和问题正文、提交消息和评论计为这种类型的出站内容,包括您组织自己的公开存储库;内部文件路径、代码名称、实时 API 响应数据(如电子邮件或账户标识符)和基础设施标识符计为敏感详细信息。PR、问题和提交消息范围需要 Claude Code v2.1.200 或更高版本。PR 或问题正文中的实时个人数据(如电子邮件地址、账户或组织标识符或使用指标)需要您命名这些详细信息和收件人,无论存储库的可见性或信任边界如何。该检查需要 Claude Code v2.1.203 或更高版本

279* 向 Claude Code 自己的 tmux 窗格发送按键以驱动其自己的界面,分类器将其视为 Claude 更改自己的权限或监督279* 向 Claude Code 自己的 tmux 窗格发送按键以驱动其自己的界面,分类器将其视为 Claude 更改自己的权限或监督

280 280 

281Claude Code v2.1.200 及更高版本也默认阻止这些:281Claude Code v2.1.200 及更高版本也默认阻止这些:


284* 删除或拆除 Claude 在会话中未创建的有状态资源,当没有更具体的删除规则适用且您没有命名该资源时284* 删除或拆除 Claude 在会话中未创建的有状态资源,当没有更具体的删除规则适用且您没有命名该资源时

285* 在第三方主机处重新指向 API 基础 URL、代理端点、webhook 接收器或注册表镜像,该主机不适合任务,包括在 `.env.example` 等示例文件中285* 在第三方主机处重新指向 API 基础 URL、代理端点、webhook 接收器或注册表镜像,该主机不适合任务,包括在 `.env.example` 等示例文件中

286* 使用 `git remote set-url` 或 `git remote add` 更改推送去向,除非您命名了新远程286* 使用 `git remote set-url` 或 `git remote add` 更改推送去向,除非您命名了新远程

287* 推送秘密或个人或受托数据到已知为公开的存储库,或推送不属于该存储库自己工作的机密材料。{/* min-version: 2.1.203 */}dotfiles 存储库自己的主题是个人或受托数据的唯一例外,来自私有存储库到任何公开表面的内容以相同方式被阻止;两项改进都需要 Claude Code v2.1.203 或更高版本。在 v2.1.203 之前,个人数据与机密材料分组,仅当它不属于该存储库自己的工作时才被阻止。当存储库的可见性未建立时,分类器不会仅基于此阻止;它改为根据其他规则判断内容287* 推送秘密或个人或受托数据到已知为公开的存储库,或推送不属于该存储库自己工作的机密材料。dotfiles 存储库自己的主题是个人或受托数据的唯一例外,来自私有存储库到任何公开表面的内容以相同方式被阻止;两项改进都需要 Claude Code v2.1.203 或更高版本。在 v2.1.203 之前,个人数据与机密材料分组,仅当它不属于该存储库自己的工作时才被阻止。当存储库的可见性未建立时,分类器不会仅基于此阻止;它改为根据其他规则判断内容

288* 针对不同存储库或组织打开拉取请求、使用 `gh repo fork` 进行分叉或推送到第三方存储库,除非您命名了该外部目标288* 针对不同存储库或组织打开拉取请求、使用 `gh repo fork` 进行分叉或推送到第三方存储库,除非您命名了该外部目标

289 289 

290Claude Code v2.1.203 及更高版本也默认阻止这些:290Claude Code v2.1.203 及更高版本也默认阻止这些:


303* 读取 `.env` 并向其匹配的 API 发送凭证303* 读取 `.env` 并向其匹配的 API 发送凭证

304* 只读 HTTP 请求304* 只读 HTTP 请求

305* 推送到您启动的分支或 Claude 创建的分支305* 推送到您启动的分支或 Claude 创建的分支

306* {/* min-version: 2.1.203 */}例行推送到存储库默认分支。在 v2.1.203 之前,任何直接推送到默认分支都被阻止306* 例行推送到存储库默认分支。在 v2.1.203 之前,任何直接推送到默认分支都被阻止

307 307 

308Claude Code v2.1.195 及更高版本也默认允许这些:308Claude Code v2.1.195 及更高版本也默认允许这些:

309 309 

310* 删除 Claude 在同一会话中较早创建的确切作业310* 删除 Claude 在同一会话中较早创建的确切作业

311* 作为您的任务的一部分,读取、审查或编写与安全相关的代码、配置和威胁模型311* 作为您的任务的一部分,读取、审查或编写与安全相关的代码、配置和威胁模型

312* 在同一多代理会话中一起工作的代理之间的消息312* 在同一多代理会话中一起工作的代理之间的消息

313* 向您在 [`environment`](/zh-CN/auto-mode-config#define-trusted-infrastructure) 中列出的受信任域、存储桶和服务发送数据。这仅涵盖数据流,不涵盖同一基础设施上的破坏性或凭证操作313* 向您在 [`environment`](/docs/zh-CN/auto-mode-config#define-trusted-infrastructure) 中列出的受信任域、存储桶和服务发送数据。这仅涵盖数据流,不涵盖同一基础设施上的破坏性或凭证操作

314* [Chrome 中的 Claude](/zh-CN/chrome) 导航到受信任的内部域、localhost 或您命名的 URL314* [Chrome 中的 Claude](/docs/zh-CN/chrome) 导航到受信任的内部域、localhost 或您命名的 URL

315 315 

316沙箱网络访问请求通过分类器路由,而不是默认允许。{/* min-version: 2.1.198 */}从 v2.1.198 开始,分类器重用其对网络主机和端口的判决,而不是在每次连接时重新运行:316沙箱网络访问请求通过分类器路由,而不是默认允许。从 v2.1.198 开始,分类器重用其对网络主机和端口的判决,而不是在每次连接时重新运行:

317 317 

318* 允许被重用直到新内容进入对话,此时该主机被再次检查318* 允许被重用直到新内容进入对话,此时该主机被再次检查

319* 在交互式 CLI 中,拒绝在轮次结束时被丢弃319* 在交互式 CLI 中,拒绝在轮次结束时被丢弃

320* 在[非交互模式](/zh-CN/headless)和 Agent SDK 会话中没有轮次边界,因此拒绝被重用于运行的其余部分320* 在[非交互模式](/docs/zh-CN/headless)和 Agent SDK 会话中没有轮次边界,因此拒绝被重用于运行的其余部分

321* 更改您的权限模式或规则会丢弃所有缓存的判决321* 更改您的权限模式或规则会丢弃所有缓存的判决

322 322 

323运行 `claude auto-mode defaults` 查看完整规则列表。如果例行操作被阻止,管理员可以通过 `autoMode.environment` 设置添加受信任的存储库、存储桶和服务:请参阅[配置自动模式](/zh-CN/auto-mode-config)。323运行 `claude auto-mode defaults` 查看完整规则列表。如果例行操作被阻止,管理员可以通过 `autoMode.environment` 设置添加受信任的存储库、存储桶和服务:请参阅[配置自动模式](/docs/zh-CN/auto-mode-config)。

324 324 

325推送到您的工作分支、例行推送到存储库默认分支以及创建与您的请求匹配的拉取请求都无需提示即可运行。分类器仅在推送存在风险时才阻止它,如强制推送或绕过您设置的审查的内容。要在保持自动模式的同时在这些操作前需要人工检查点,请添加 `permissions.ask` 规则:请参阅[常见边界](/zh-CN/auto-mode-config#common-boundaries)。325推送到您的工作分支、例行推送到存储库默认分支以及创建与您的请求匹配的拉取请求都无需提示即可运行。分类器仅在推送存在风险时才阻止它,如强制推送或绕过您设置的审查的内容。要在保持自动模式的同时在这些操作前需要人工检查点,请添加 `permissions.ask` 规则:请参阅[常见边界](/docs/zh-CN/auto-mode-config#common-boundaries)。

326 326 

327<h3 id="boundaries-you-state-in-conversation">327<h3 id="boundaries-you-state-in-conversation">

328 您在对话中陈述的边界328 您在对话中陈述的边界


330 330 

331分类器将您在对话中陈述的边界视为阻止信号。如果您告诉 Claude"不要推送"或"等待我审查后再部署",分类器会阻止匹配的操作,即使默认规则会允许它们。边界保持有效,直到您在后续消息中解除它。Claude 自己的判断条件已满足不会解除它。331分类器将您在对话中陈述的边界视为阻止信号。如果您告诉 Claude"不要推送"或"等待我审查后再部署",分类器会阻止匹配的操作,即使默认规则会允许它们。边界保持有效,直到您在后续消息中解除它。Claude 自己的判断条件已满足不会解除它。

332 332 

333边界不作为规则存储。分类器在每次检查时从记录中重新读取它们,因此如果[上下文压缩](/zh-CN/costs#reduce-token-usage)移除陈述它的消息,边界可能会丢失。为了获得硬保证,请改为添加[拒绝规则](/zh-CN/permissions#permission-rule-syntax)。333边界不作为规则存储。分类器在每次检查时从记录中重新读取它们,因此如果[上下文压缩](/docs/zh-CN/costs#reduce-token-usage)移除陈述它的消息,边界可能会丢失。为了获得硬保证,请改为添加[拒绝规则](/docs/zh-CN/permissions#permission-rule-syntax)。

334 334 

335<h3 id="when-auto-mode-falls-back">335<h3 id="when-auto-mode-falls-back">

336 自动模式何时回退336 自动模式何时回退


340 340 

341如果分类器连续 3 次或总共 20 次阻止操作,自动模式暂停,Claude Code 恢复提示。批准提示的操作恢复自动模式。这些阈值不可配置。任何允许的操作重置连续计数器,而总计数器在会话期间持续,仅当其自己的限制触发回退时重置。341如果分类器连续 3 次或总共 20 次阻止操作,自动模式暂停,Claude Code 恢复提示。批准提示的操作恢复自动模式。这些阈值不可配置。任何允许的操作重置连续计数器,而总计数器在会话期间持续,仅当其自己的限制触发回退时重置。

342 342 

343在[非交互模式](/zh-CN/headless)中使用 `-p` 标志,重复阻止会中止会话,因为没有用户可以提示。343在[非交互模式](/docs/zh-CN/headless)中使用 `-p` 标志,重复阻止会中止会话,因为没有用户可以提示。

344 344 

345重复阻止通常意味着分类器缺少关于您的基础设施的上下文。使用 `/feedback` 报告误报,或让管理员[配置受信任的基础设施](/zh-CN/auto-mode-config)。345重复阻止通常意味着分类器缺少关于您的基础设施的上下文。使用 `/feedback` 报告误报,或让管理员[配置受信任的基础设施](/docs/zh-CN/auto-mode-config)。

346 346 

347<AccordionGroup>347<AccordionGroup>

348 <Accordion title="分类器如何评估操作">348 <Accordion title="分类器如何评估操作">

349 每个操作都经过固定的决策顺序。第一个匹配的步骤获胜:349 每个操作都经过固定的决策顺序。第一个匹配的步骤获胜:

350 350 

351 1. 与您的[允许、询问或拒绝规则](/zh-CN/permissions#manage-permissions)匹配的操作立即解决。写入[受保护路径](#protected-paths)的操作即使允许规则匹配也会路由到分类器。您的组织[设置为 `ask` 的连接器工具](/zh-CN/mcp#organization-controls-on-connector-tools)和标记为 [`requiresUserInteraction`](/zh-CN/mcp#require-approval-for-a-specific-tool) 的 MCP 工具即使允许规则匹配也会直接提示您。内容范围的询问规则回退到权限提示351 1. 与您的[允许、询问或拒绝规则](/docs/zh-CN/permissions#manage-permissions)匹配的操作立即解决。写入[受保护路径](#protected-paths)的操作即使允许规则匹配也会路由到分类器。您的组织[设置为 `ask` 的连接器工具](/docs/zh-CN/mcp#organization-controls-on-connector-tools)和标记为 [`requiresUserInteraction`](/docs/zh-CN/mcp#require-approval-for-a-specific-tool) 的 MCP 工具即使允许规则匹配也会直接提示您。内容范围的询问规则回退到权限提示

352 2. 只读操作和工作目录中的文件编辑被自动批准,除了[受保护路径](#protected-paths)的写入352 2. 只读操作和工作目录中的文件编辑被自动批准,除了[受保护路径](#protected-paths)的写入

353 3. 其他所有内容都进入分类器。您的组织[设置为 `ask` 的连接器工具](/zh-CN/mcp#organization-controls-on-connector-tools)跳过分类器并直接提示您,因此组织要求的批准从不被自动批准。{/* min-version: 2.1.199 */}从 v2.1.199 开始,标记有 [`_meta["anthropic/requiresUserInteraction"]`](/zh-CN/mcp#require-approval-for-a-specific-tool) 的 MCP 工具也跳过分类器并直接提示您,因此同意步骤从不代表工具作者自动批准353 3. 其他所有内容都进入分类器。您的组织[设置为 `ask` 的连接器工具](/docs/zh-CN/mcp#organization-controls-on-connector-tools)跳过分类器并直接提示您,因此组织要求的批准从不被自动批准。从 v2.1.199 开始,标记有 [`_meta["anthropic/requiresUserInteraction"]`](/docs/zh-CN/mcp#require-approval-for-a-specific-tool) 的 MCP 工具也跳过分类器并直接提示您,因此同意步骤从不代表工具作者自动批准

354 4. 如果分类器阻止,Claude 接收原因并尝试替代方案354 4. 如果分类器阻止,Claude 接收原因并尝试替代方案

355 355 

356 进入自动模式时,授予任意代码执行的广泛允许规则被丢弃:356 进入自动模式时,授予任意代码执行的广泛允许规则被丢弃:


366 </Accordion>366 </Accordion>

367 367 

368 <Accordion title="自动模式如何处理子代理">368 <Accordion title="自动模式如何处理子代理">

369 分类器在三个点检查[子代理](/zh-CN/sub-agents)工作:369 分类器在三个点检查[子代理](/docs/zh-CN/sub-agents)工作:

370 370 

371 1. 在子代理启动前,委托的任务描述被评估,因此危险看起来的任务在生成时被阻止。371 1. 在子代理启动前,委托的任务描述被评估,因此危险看起来的任务在生成时被阻止。

372 2. 当子代理运行时,其每个操作都通过分类器,使用与父会话相同的规则,子代理前言中的任何 `permissionMode` 被忽略。372 2. 当子代理运行时,其每个操作都通过分类器,使用与父会话相同的规则,子代理前言中的任何 `permissionMode` 被忽略。


376 </Accordion>376 </Accordion>

377 377 

378 <Accordion title="成本和延迟">378 <Accordion title="成本和延迟">

379 分类器在独立于您的 `/model` 选择的服务器配置模型上运行,因此切换模型不会改变分类器可用性。分类器调用计入您的令牌使用。每次检查发送记录的一部分加上待处理操作,在执行前添加往返。受保护路径外的读取和工作目录编辑跳过分类器,因此开销主要来自 shell 命令和网络操作。{/* min-version: 2.1.198 */}从 v2.1.198 开始,主机和端口的沙箱网络判决被重用,而不是在每次连接时重新分类,因此到同一主机的重复连接不会各自添加检查。[分类器默认阻止的内容](#what-the-classifier-blocks-by-default)描述允许和拒绝持续多长时间。379 分类器在独立于您的 `/model` 选择的服务器配置模型上运行,因此切换模型不会改变分类器可用性。分类器调用计入您的令牌使用。每次检查发送记录的一部分加上待处理操作,在执行前添加往返。受保护路径外的读取和工作目录编辑跳过分类器,因此开销主要来自 shell 命令和网络操作。从 v2.1.198 开始,主机和端口的沙箱网络判决被重用,而不是在每次连接时重新分类,因此到同一主机的重复连接不会各自添加检查。[分类器默认阻止的内容](#what-the-classifier-blocks-by-default)描述允许和拒绝持续多长时间。

380 </Accordion>380 </Accordion>

381</AccordionGroup>381</AccordionGroup>

382 382 


384 使用 dontAsk 模式仅允许预先批准的工具384 使用 dontAsk 模式仅允许预先批准的工具

385</h2>385</h2>

386 386 

387如果您设置 `dontAsk` 模式,Claude Code 会自动拒绝所有原本会提示的工具调用。Claude 仅运行与您的 `permissions.allow` 规则、[只读 Bash 命令](/zh-CN/permissions#read-only-commands)匹配的操作,以及由 [PreToolUse hook](/zh-CN/permissions#extend-permissions-with-hooks) 批准的调用。在 CI 管道或受限环境中使用此模式,您可以预先定义 Claude 可以执行的操作;会话永远不会等待输入。当此模式处于活动状态时,状态栏显示 `⏵⏵ don't ask on`。387如果您设置 `dontAsk` 模式,Claude Code 会自动拒绝所有原本会提示的工具调用。Claude 仅运行与您的 `permissions.allow` 规则、[只读 Bash 命令](/docs/zh-CN/permissions#read-only-commands)匹配的操作,以及由 [PreToolUse hook](/docs/zh-CN/permissions#extend-permissions-with-hooks) 批准的调用。在 CI 管道或受限环境中使用此模式,您可以预先定义 Claude 可以执行的操作;会话永远不会等待输入。当此模式处于活动状态时,状态栏显示 `⏵⏵ don't ask on`。

388 388 

389Claude Code 拒绝与您的显式 [`ask` 规则](/zh-CN/permissions#manage-permissions)匹配的调用,而不是提示。它还拒绝内置的 `AskUserQuestion` 工具和连接器工具[您的组织设置为 `ask`](/zh-CN/mcp#organization-controls-on-connector-tools),即使您的 allow 规则与其匹配。{/* min-version: 2.1.199 */}它以相同的方式拒绝标记有 [`_meta["anthropic/requiresUserInteraction"]`](/zh-CN/mcp#require-approval-for-a-specific-tool) 的 MCP 工具,因为其批准卡需要此模式永远不会收集的答案;这需要 Claude Code v2.1.199 或更高版本。389Claude Code 拒绝与您的显式 [`ask` 规则](/docs/zh-CN/permissions#manage-permissions)匹配的调用,而不是提示。它还拒绝内置的 `AskUserQuestion` 工具和连接器工具[您的组织设置为 `ask`](/docs/zh-CN/mcp#organization-controls-on-connector-tools),即使您的 allow 规则与其匹配。它以相同的方式拒绝标记有 [`_meta["anthropic/requiresUserInteraction"]`](/docs/zh-CN/mcp#require-approval-for-a-specific-tool) 的 MCP 工具,因为其批准卡需要此模式永远不会收集的答案;这需要 Claude Code v2.1.199 或更高版本。

390 390 

391[Claude Code on the web](/zh-CN/claude-code-on-the-web) 上的云会话会忽略 `defaultMode: "dontAsk"`;有关详细信息,请参阅 [bypassPermissions](#skip-all-checks-with-bypasspermissions-mode)。391[Claude Code on the web](/docs/zh-CN/claude-code-on-the-web) 上的云会话会忽略 `defaultMode: "dontAsk"`;有关详细信息,请参阅 [bypassPermissions](#skip-all-checks-with-bypasspermissions-mode)。

392 392 

393在启动时使用标志设置它:393在启动时使用标志设置它:

394 394 


402 402 

403`bypassPermissions` 模式禁用权限提示和安全检查,以便工具调用立即执行,包括对[受保护路径](#protected-paths)的写入。在 v2.1.126 之前,受保护路径的写入在此模式下仍会提示。403`bypassPermissions` 模式禁用权限提示和安全检查,以便工具调用立即执行,包括对[受保护路径](#protected-paths)的写入。在 v2.1.126 之前,受保护路径的写入在此模式下仍会提示。

404 404 

405显式的[询问规则](/zh-CN/permissions#manage-permissions)和连接器工具[您的组织设置为 `ask`](/zh-CN/mcp#organization-controls-on-connector-tools)仍会在此模式下强制提示。{/* min-version: 2.1.199 */}标记有 [`_meta["anthropic/requiresUserInteraction"]`](/zh-CN/mcp#require-approval-for-a-specific-tool) 的 MCP 工具也仍会提示;这需要 Claude Code v2.1.199 或更高版本。405显式的[询问规则](/docs/zh-CN/permissions#manage-permissions)和连接器工具[您的组织设置为 `ask`](/docs/zh-CN/mcp#organization-controls-on-connector-tools)仍会在此模式下强制提示。标记有 [`_meta["anthropic/requiresUserInteraction"]`](/docs/zh-CN/mcp#require-approval-for-a-specific-tool) 的 MCP 工具也仍会提示;这需要 Claude Code v2.1.199 或更高版本。

406 406 

407针对文件系统根目录或主目录的删除操作,如 `rm -rf /` 和 `rm -rf ~`,仍会作为针对模型错误的断路器进行提示。{/* min-version: 2.1.208 */}当命令包含使用 `$(...)` 或反引号的命令替换,或使用 `<(...)` 的进程替换时,断路器也会触发,无论删除操作位于替换内部(如 `echo "$(rm -rf ~)"`),还是位于同一命令中的其他位置。纯形式(作为其自己的命令输入)自断路器引入以来在此模式下已提示;在 v2.1.208 之前,包含这些形式的命令不会提示。407针对文件系统根目录或主目录的删除操作,如 `rm -rf /` 和 `rm -rf ~`,仍会作为针对模型错误的断路器进行提示。当命令包含使用 `$(...)` 或反引号的命令替换,或使用 `<(...)` 的进程替换时,断路器也会触发,无论删除操作位于替换内部(如 `echo "$(rm -rf ~)"`),还是位于同一命令中的其他位置。纯形式(作为其自己的命令输入)自断路器引入以来在此模式下已提示;在 v2.1.208 之前,包含这些形式的命令不会提示。

408 408 

409<Warning>409<Warning>

410 仅在隔离环境(如容器、虚拟机或没有互联网访问的开发容器)中使用此模式,其中 Claude Code 无法损害您的主机系统。410 仅在隔离环境(如容器、虚拟机或没有互联网访问的开发容器)中使用此模式,其中 Claude Code 无法损害您的主机系统。


424--dangerously-skip-permissions cannot be used with root/sudo privileges for security reasons424--dangerously-skip-permissions cannot be used with root/sudo privileges for security reasons

425```425```

426 426 

427该检查在识别的沙箱内自动跳过。要在容器中自主运行,请使用[开发容器](/zh-CN/devcontainer)配置,该配置以非 root 用户身份运行 Claude Code。427该检查在识别的沙箱内自动跳过。要在容器中自主运行,请使用[开发容器](/docs/zh-CN/devcontainer)配置,该配置以非 root 用户身份运行 Claude Code。

428 428 

429[网络上的 Claude Code](/zh-CN/claude-code-on-the-web) 不遵守您的设置文件中的 `defaultMode: "bypassPermissions"` 或 `"dontAsk"`,因此存储库的签入设置无法在绕过权限模式下启动云会话。该设置被静默忽略,会话改为以模式下拉菜单中显示的模式启动。有关云会话提供的模式,请参阅[切换权限模式](#switch-permission-modes)。429[网络上的 Claude Code](/docs/zh-CN/claude-code-on-the-web) 不遵守您的设置文件中的 `defaultMode: "bypassPermissions"` 或 `"dontAsk"`,因此存储库的签入设置无法在绕过权限模式下启动云会话。该设置被静默忽略,会话改为以模式下拉菜单中显示的模式启动。有关云会话提供的模式,请参阅[切换权限模式](#switch-permission-modes)。

430 430 

431<Warning>431<Warning>

432 `bypassPermissions` 不提供针对提示注入或意外操作的保护。为了获得背景安全检查且权限提示大幅减少,请改用[自动模式](#eliminate-prompts-with-auto-mode)。管理员可以通过在[托管设置](/zh-CN/permissions#managed-settings)中将 `permissions.disableBypassPermissionsMode` 设置为 `"disable"` 来阻止此模式。432 `bypassPermissions` 不提供针对提示注入或意外操作的保护。为了获得背景安全检查且权限提示大幅减少,请改用[自动模式](#eliminate-prompts-with-auto-mode)。管理员可以通过在[托管设置](/docs/zh-CN/permissions#managed-settings)中将 `permissions.disableBypassPermissionsMode` 设置为 `"disable"` 来阻止此模式。

433</Warning>433</Warning>

434 434 

435<h2 id="protected-paths">435<h2 id="protected-paths">


445| `dontAsk` | 拒绝 |445| `dontAsk` | 拒绝 |

446| `bypassPermissions` | 允许 |446| `bypassPermissions` | 允许 |

447 447 

448设置文件中的 [`permissions.allow`](/zh-CN/permissions#manage-permissions) 规则不会预先批准受保护路径的写入。安全检查在 Claude Code 评估设置中的允许规则之前运行,因此 `~/.claude/settings.json` 或 `.claude/settings.json` 中的条目(如 `Edit(.claude/**)`)不会改变上表中的每个模式结果。在提示的模式中,`.claude/` 写入的提示提供**是的,允许 Claude 在此会话中编辑其自己的设置**,这会在该会话中批准后续的 `.claude/` 写入而无需再次提示。448设置文件中的 [`permissions.allow`](/docs/zh-CN/permissions#manage-permissions) 规则不会预先批准受保护路径的写入。安全检查在 Claude Code 评估设置中的允许规则之前运行,因此 `~/.claude/settings.json` 或 `.claude/settings.json` 中的条目(如 `Edit(.claude/**)`)不会改变上表中的每个模式结果。在提示的模式中,`.claude/` 写入的提示提供**是的,允许 Claude 在此会话中编辑其自己的设置**,这会在该会话中批准后续的 `.claude/` 写入而无需再次提示。

449 449 

450受保护的目录:450受保护的目录:

451 451 


476 另请参阅476 另请参阅

477</h2>477</h2>

478 478 

479* [权限](/zh-CN/permissions):允许、询问和拒绝规则;托管策略479* [权限](/docs/zh-CN/permissions):允许、询问和拒绝规则;托管策略

480* [配置自动模式](/zh-CN/auto-mode-config):告诉分类器您的组织信任哪些基础设施480* [配置自动模式](/docs/zh-CN/auto-mode-config):告诉分类器您的组织信任哪些基础设施

481* [Hooks](/zh-CN/hooks):通过 `PreToolUse` 和 `PermissionRequest` hooks 的自定义权限逻辑481* [Hooks](/docs/zh-CN/hooks):通过 `PreToolUse` 和 `PermissionRequest` hooks 的自定义权限逻辑

482* [Ultraplan](/zh-CN/ultraplan):在 Claude Code 网络会话中运行计划模式,支持基于浏览器的审查482* [Ultraplan](/docs/zh-CN/ultraplan):在 Claude Code 网络会话中运行计划模式,支持基于浏览器的审查

483* [安全](/zh-CN/security):保障措施和最佳实践483* [安全](/docs/zh-CN/security):保障措施和最佳实践

484* [沙箱](/zh-CN/sandboxing):Bash 命令的文件系统和网络隔离484* [沙箱](/docs/zh-CN/sandboxing):Bash 命令的文件系统和网络隔离

485* [非交互模式](/zh-CN/headless):使用 `-p` 标志运行 Claude Code485* [非交互模式](/docs/zh-CN/headless):使用 `-p` 标志运行 Claude Code

permissions.md +57 −57

Details

22 22 

23在 Bash 或 PowerShell 权限提示上,按 `Ctrl+E` 显示命令的说明:它的作用、Claude 为什么运行它,以及可能出现的问题,标记为**低风险**、**中风险**或**高风险**。Claude Code 仅在您按 `Ctrl+E` 时将命令和 Claude 自己对调用的描述发送给模型以生成说明,而不是在每个提示上都发送。显示说明不会运行命令;再次按 `Ctrl+E` 隐藏它。23在 Bash 或 PowerShell 权限提示上,按 `Ctrl+E` 显示命令的说明:它的作用、Claude 为什么运行它,以及可能出现的问题,标记为**低风险**、**中风险**或**高风险**。Claude Code 仅在您按 `Ctrl+E` 时将命令和 Claude 自己对调用的描述发送给模型以生成说明,而不是在每个提示上都发送。显示说明不会运行命令;再次按 `Ctrl+E` 隐藏它。

24 24 

25要关闭快捷键,请在 `~/.claude.json` 中将 [`permissionExplainerEnabled`](/zh-CN/settings#global-config-settings) 设置为 `false`。25要关闭快捷键,请在 `~/.claude.json` 中将 [`permissionExplainerEnabled`](/docs/zh-CN/settings#global-config-settings) 设置为 `false`。

26 26 

27<h2 id="manage-permissions">27<h2 id="manage-permissions">

28 管理权限28 管理权限


41Deny 规则的行为取决于它们是命名工具还是在工具内范围化模式。像 `Bash` 这样的裸工具名称会将工具从 Claude 的上下文中完全移除,因此 Claude 永远看不到它。像 `Bash(rm *)` 这样的范围化规则会保留工具的可用性,并在 Claude 尝试时阻止匹配的调用。41Deny 规则的行为取决于它们是命名工具还是在工具内范围化模式。像 `Bash` 这样的裸工具名称会将工具从 Claude 的上下文中完全移除,因此 Claude 永远看不到它。像 `Bash(rm *)` 这样的范围化规则会保留工具的可用性,并在 Claude 尝试时阻止匹配的调用。

42 42 

43<Note>43<Note>

44 权限规则由 Claude Code 强制执行,而不是由模型强制执行。您的提示或 `CLAUDE.md` 中的说明会影响 Claude 尝试执行的操作,但它们不会改变 Claude Code 允许的操作。要授予或撤销访问权限,请使用 `/permissions`、此处描述的规则、[权限模式](/zh-CN/permission-modes) 或 [PreToolUse hook](#extend-permissions-with-hooks)。44 权限规则由 Claude Code 强制执行,而不是由模型强制执行。您的提示或 `CLAUDE.md` 中的说明会影响 Claude 尝试执行的操作,但它们不会改变 Claude Code 允许的操作。要授予或撤销访问权限,请使用 `/permissions`、此处描述的规则、[权限模式](/docs/zh-CN/permission-modes) 或 [PreToolUse hook](#extend-permissions-with-hooks)。

45</Note>45</Note>

46 46 

47<h2 id="permission-modes">47<h2 id="permission-modes">

48 权限模式48 权限模式

49</h2>49</h2>

50 50 

51Claude Code 支持多种权限模式来控制工具的批准方式。请参阅[权限模式](/zh-CN/permission-modes)了解何时使用每种模式。在您的[设置文件](/zh-CN/settings#settings-files)中设置 `defaultMode`:51Claude Code 支持多种权限模式来控制工具的批准方式。请参阅[权限模式](/docs/zh-CN/permission-modes)了解何时使用每种模式。在您的[设置文件](/docs/zh-CN/settings#settings-files)中设置 `defaultMode`:

52 52 

53| 模式 | 描述 |53| 模式 | 描述 |

54| :------------------ | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |54| :------------------ | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

55| `default` | 标准行为:在首次使用每个工具时提示权限。{/* min-version: 2.1.200 */}在 CLI、VS Code 和 JetBrains 扩展以及桌面应用中标记为 Manual,Claude Code 接受 `manual` 作为别名。标签和别名需要 Claude Code v2.1.200 或更高版本。桌面应用的标签不依赖于您的 CLI 版本 |55| `default` | 标准行为:在首次使用每个工具时提示权限。在 CLI、VS Code 和 JetBrains 扩展以及桌面应用中标记为 Manual,Claude Code 接受 `manual` 作为别名。标签和别名需要 Claude Code v2.1.200 或更高版本。桌面应用的标签不依赖于您的 CLI 版本 |

56| `acceptEdits` | 自动接受工作目录或 `additionalDirectories` 中路径的文件编辑和常见文件系统命令(`mkdir`、`touch`、`mv`、`cp` 等) |56| `acceptEdits` | 自动接受工作目录或 `additionalDirectories` 中路径的文件编辑和常见文件系统命令(`mkdir`、`touch`、`mv`、`cp` 等) |

57| `plan` | Claude 读取文件并运行只读 shell 命令来探索,但不编辑您的源文件。在 CLI 和 VS Code 扩展中标记为 Plan |57| `plan` | Claude 读取文件并运行只读 shell 命令来探索,但不编辑您的源文件。在 CLI 和 VS Code 扩展中标记为 Plan |

58| `auto` | 自动批准工具调用,并进行后台安全检查以验证操作与您的请求一致 |58| `auto` | 自动批准工具调用,并进行后台安全检查以验证操作与您的请求一致 |

59| `dontAsk` | 自动拒绝工具,除非通过 `/permissions` 或 `permissions.allow` 规则预先批准。`AskUserQuestion`、连接器工具[您的组织设置为 `ask`](/zh-CN/mcp#organization-controls-on-connector-tools)和标记为 [`requiresUserInteraction`](/zh-CN/mcp#require-approval-for-a-specific-tool) 的 MCP 工具即使您已允许它们也会被拒绝 |59| `dontAsk` | 自动拒绝工具,除非通过 `/permissions` 或 `permissions.allow` 规则预先批准。`AskUserQuestion`、连接器工具[您的组织设置为 `ask`](/docs/zh-CN/mcp#organization-controls-on-connector-tools)和标记为 [`requiresUserInteraction`](/docs/zh-CN/mcp#require-approval-for-a-specific-tool) 的 MCP 工具即使您已允许它们也会被拒绝 |

60| `bypassPermissions` | 跳过权限提示,除了由显式 `ask` 规则强制的提示、连接器工具[您的组织设置为 `ask`](/zh-CN/mcp#organization-controls-on-connector-tools)和标记为 [`requiresUserInteraction`](/zh-CN/mcp#require-approval-for-a-specific-tool) 的 MCP 工具。根目录和主目录删除操作(如 `rm -rf /`)仍会作为断路器提示 |60| `bypassPermissions` | 跳过权限提示,除了由显式 `ask` 规则强制的提示、连接器工具[您的组织设置为 `ask`](/docs/zh-CN/mcp#organization-controls-on-connector-tools)和标记为 [`requiresUserInteraction`](/docs/zh-CN/mcp#require-approval-for-a-specific-tool) 的 MCP 工具。根目录和主目录删除操作(如 `rm -rf /`)仍会作为断路器提示 |

61 61 

62<Warning>62<Warning>

63 `bypassPermissions` 模式跳过权限提示,包括对 `.git`、`.config/git`、`.claude`、`.vscode`、`.idea`、`.husky`、`.cargo`、`.devcontainer`、`.yarn` 和 `.mvn` 的写入。仅在隔离环境(如容器或虚拟机)中使用此模式,其中 Claude Code 无法造成损害。63 `bypassPermissions` 模式跳过权限提示,包括对 `.git`、`.config/git`、`.claude`、`.vscode`、`.idea`、`.husky`、`.cargo`、`.devcontainer`、`.yarn` 和 `.mvn` 的写入。仅在隔离环境(如容器或虚拟机)中使用此模式,其中 Claude Code 无法造成损害。

64 64 

65 此模式中仍会触发一些提示。显式 `ask` 规则、连接器工具[您的组织设置为 `ask`](/zh-CN/mcp#organization-controls-on-connector-tools)和标记为 [`requiresUserInteraction`](/zh-CN/mcp#require-approval-for-a-specific-tool) 的 MCP 工具仍会提示。针对文件系统根目录或主目录的删除操作(如 `rm -rf /` 和 `rm -rf ~`)也会作为断路器提示以防止模型错误,{/* min-version: 2.1.208 */}包括当命令包含带 `$(...)` 或反引号的命令替换或带 `<(...)` 的进程替换时。在 v2.1.208 之前,仅当以纯形式(如 `rm -rf ~` 作为其自己的命令输入)时才会提示;通过替换到达删除操作的命令不会提示。65 此模式中仍会触发一些提示。显式 `ask` 规则、连接器工具[您的组织设置为 `ask`](/docs/zh-CN/mcp#organization-controls-on-connector-tools)和标记为 [`requiresUserInteraction`](/docs/zh-CN/mcp#require-approval-for-a-specific-tool) 的 MCP 工具仍会提示。针对文件系统根目录或主目录的删除操作(如 `rm -rf /` 和 `rm -rf ~`)也会作为断路器提示以防止模型错误,包括当命令包含带 `$(...)` 或反引号的命令替换或带 `<(...)` 的进程替换时。在 v2.1.208 之前,仅当以纯形式(如 `rm -rf ~` 作为其自己的命令输入)时才会提示;通过替换到达删除操作的命令不会提示。

66</Warning>66</Warning>

67 67 

68为了防止 `bypassPermissions` 或 `auto` 模式被使用,在任何[设置文件](/zh-CN/settings#settings-files)中将 `permissions.disableBypassPermissionsMode` 或 `permissions.disableAutoMode` 设置为 `"disable"`。这些在[托管设置](#managed-settings)中最有用,因为它们无法被覆盖。68为了防止 `bypassPermissions` 或 `auto` 模式被使用,在任何[设置文件](/docs/zh-CN/settings#settings-files)中将 `permissions.disableBypassPermissionsMode` 或 `permissions.disableAutoMode` 设置为 `"disable"`。这些在[托管设置](#managed-settings)中最有用,因为它们无法被覆盖。

69 69 

70<h2 id="permission-rule-syntax">70<h2 id="permission-rule-syntax">

71 权限规则语法71 权限规则语法


117* 每个规则命名一个参数。要对 `model` 和 `isolation` 进行门控,请编写两个规则 `Agent(model:opus)` 和 `Agent(isolation:worktree)`,而不是在一个规则中组合它们117* 每个规则命名一个参数。要对 `model` 和 `isolation` 进行门控,请编写两个规则 `Agent(model:opus)` 和 `Agent(isolation:worktree)`,而不是在一个规则中组合它们

118* 该值支持 `*` 作为通配符,匹配任何字符序列,因此 `Agent(isolation:*)` 匹配任何显式隔离值。没有 `*` 时匹配是精确的118* 该值支持 `*` 作为通配符,匹配任何字符序列,因此 `Agent(isolation:*)` 匹配任何显式隔离值。没有 `*` 时匹配是精确的

119* 模型省略的参数永远不会被匹配,因此 `Agent(model:*)` 不匹配留下 `model` 未设置的调用119* 模型省略的参数永远不会被匹配,因此 `Agent(model:*)` 不匹配留下 `model` 未设置的调用

120* 该值与 Claude 发送的文字输入进行比较,在任何规范化之前。`Agent(model:opus)` 匹配别名 `opus` 但不匹配完整模型 ID。使用 [`--verbose`](/zh-CN/cli-reference) 运行以查看每个工具调用中的确切参数名称和值120* 该值与 Claude 发送的文字输入进行比较,在任何规范化之前。`Agent(model:opus)` 匹配别名 `opus` 但不匹配完整模型 ID。使用 [`--verbose`](/docs/zh-CN/cli-reference) 运行以查看每个工具调用中的确切参数名称和值

121* 冒号周围的空格被忽略121* 冒号周围的空格被忽略

122 122 

123工具已经用自己的规范化规则匹配的字段不能以这种方式匹配:Bash 和 PowerShell 的 `command`、Read、Edit 和 Write 的 `file_path`、Grep 和 Glob 的 `path`、NotebookEdit 的 `notebook_path` 和 WebFetch 的 `url`。像 `Bash(command:rm *)` 这样的规则可以通过复合命令绕过,因此 Claude Code 会忽略它并在启动时发出警告。改用 `Bash(rm *)`、`Read(./path)` 或 `WebFetch(domain:host)`。123工具已经用自己的规范化规则匹配的字段不能以这种方式匹配:Bash 和 PowerShell 的 `command`、Read、Edit 和 Write 的 `file_path`、Grep 和 Glob 的 `path`、NotebookEdit 的 `notebook_path` 和 WebFetch 的 `url`。像 `Bash(command:rm *)` 这样的规则可以通过复合命令绕过,因此 Claude Code 会忽略它并在启动时发出警告。改用 `Bash(rm *)`、`Read(./path)` 或 `WebFetch(domain:host)`。


169 169 

170工具名称不匹配任何已知工具的拒绝或询问规则会在启动时产生警告以捕获拼写错误。包含 `_` 或 `*` 的工具名称不受此检查的约束。170工具名称不匹配任何已知工具的拒绝或询问规则会在启动时产生警告以捕获拼写错误。包含 `_` 或 `*` 的工具名称不受此检查的约束。

171 171 

172转录本和权限对话框中为工具显示的标签可能与其规范名称不同。例如,转录本中标记为 `Stop Task` 的工具具有规范名称 `TaskStop`。权限规则和 [hook 匹配器](/zh-CN/hooks) 仅匹配规范名称,因此写作为 `Stop Task` 的规则不匹配。对于拒绝和询问规则,上面的启动警告会捕获不匹配。使用 [工具参考](/zh-CN/tools-reference) 中列出的规范名称。172转录本和权限对话框中为工具显示的标签可能与其规范名称不同。例如,转录本中标记为 `Stop Task` 的工具具有规范名称 `TaskStop`。权限规则和 [hook 匹配器](/docs/zh-CN/hooks) 仅匹配规范名称,因此写作为 `Stop Task` 的规则不匹配。对于拒绝和询问规则,上面的启动警告会捕获不匹配。使用 [工具参考](/docs/zh-CN/tools-reference) 中列出的规范名称。

173 173 

174<h2 id="tool-specific-permission-rules">174<h2 id="tool-specific-permission-rules">

175 工具特定的权限规则175 工具特定的权限规则


223 223 

224`cd` 进入工作目录或[其他目录](#working-directories)内的路径也是只读的。像 `cd packages/api && ls` 这样的复合命令在每个部分都符合条件时无需提示即可运行。在一个复合命令中组合 `cd` 和 `git` 时,当 `cd` 改变到不同目录时会提示,因为在新目录中运行 `git` 可以执行该目录的钩子。`cd` 的目标解析到当前工作目录是无操作的,不会触发此提示。224`cd` 进入工作目录或[其他目录](#working-directories)内的路径也是只读的。像 `cd packages/api && ls` 这样的复合命令在每个部分都符合条件时无需提示即可运行。在一个复合命令中组合 `cd` 和 `git` 时,当 `cd` 改变到不同目录时会提示,因为在新目录中运行 `git` 可以执行该目录的钩子。`cd` 的目标解析到当前工作目录是无操作的,不会触发此提示。

225 225 

226在一个复合命令中组合 `cd` 和输出重定向时,当 Claude Code 无法确定在 `cd` 运行后重定向目标解析到哪个目录时也会提示。仅重定向目标为 `/dev/null` 的命令,如 `cd app; grep -r pattern . 2>/dev/null`,不会触发此提示,因为 `/dev/null` 不依赖于工作目录。{/* min-version: 2.1.207 */}在 v2.1.207 之前,包含 `cd` 的复合命令会对任何输出重定向提示,包括仅重定向目标为 `/dev/null` 的重定向。226在一个复合命令中组合 `cd` 和输出重定向时,当 Claude Code 无法确定在 `cd` 运行后重定向目标解析到哪个目录时也会提示。仅重定向目标为 `/dev/null` 的命令,如 `cd app; grep -r pattern . 2>/dev/null`,不会触发此提示,因为 `/dev/null` 不依赖于工作目录。在 v2.1.207 之前,包含 `cd` 的复合命令会对任何输出重定向提示,包括仅重定向目标为 `/dev/null` 的重定向。

227 227 

228<Warning>228<Warning>

229 尝试约束命令参数的 Bash 权限模式很脆弱。例如,`Bash(curl http://github.com/ *)` 旨在将 curl 限制为 GitHub URL,但不会匹配以下变体:229 尝试约束命令参数的 Bash 权限模式很脆弱。例如,`Bash(curl http://github.com/ *)` 旨在将 curl 限制为 GitHub URL,但不会匹配以下变体:


271 Read 和 Edit271 Read 和 Edit

272</h3>272</h3>

273 273 

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

275 275 

276{/* min-version: 2.1.208 */}`Read` deny 规则也会阻止[同一路径上的 Edit 工具](/zh-CN/errors#file-is-covered-by-a-read-deny-rule),包括在那里创建新文件。Write 和 NotebookEdit 不被覆盖,因此为任何工具都不能更改的路径添加 `Edit` deny 规则。需要 Claude Code v2.1.208 或更高版本。276`Read` deny 规则也会阻止[同一路径上的 Edit 工具](/docs/zh-CN/errors#file-is-covered-by-a-read-deny-rule),包括在那里创建新文件。Write 和 NotebookEdit 不被覆盖,因此为任何工具都不能更改的路径添加 `Edit` deny 规则。需要 Claude Code v2.1.208 或更高版本。

277 277 

278<Warning>278<Warning>

279 Read 和 Edit deny 规则适用于 Claude 的内置文件工具和 Claude Code 在 Bash 中识别的文件命令,如 `cat`、`head`、`tail` 和 `sed`。它们不适用于间接读取或写入文件的任意子进程,如打开文件本身的 Python 或 Node 脚本。为了获得阻止所有进程访问路径的 OS 级别强制执行,请[启用沙箱](/zh-CN/sandboxing)。279 Read 和 Edit deny 规则适用于 Claude 的内置文件工具和 Claude Code 在 Bash 中识别的文件命令,如 `cat`、`head`、`tail` 和 `sed`。它们不适用于间接读取或写入文件的任意子进程,如打开文件本身的 Python 或 Node 脚本。为了获得阻止所有进程访问路径的 OS 级别强制执行,请[启用沙箱](/docs/zh-CN/sandboxing)。

280</Warning>280</Warning>

281 281 

282Read 和 Edit 规则都遵循 [gitignore](https://git-scm.com/docs/gitignore) 规范,具有四种不同的模式类型:282Read 和 Edit 规则都遵循 [gitignore](https://git-scm.com/docs/gitignore) 规范,具有四种不同的模式类型:


354* `mcp__puppeteer__*` 使用通配符语法,也匹配来自 `puppeteer` 服务器的所有工具354* `mcp__puppeteer__*` 使用通配符语法,也匹配来自 `puppeteer` 服务器的所有工具

355* `mcp__puppeteer__puppeteer_navigate` 匹配由 `puppeteer` 服务器提供的 `puppeteer_navigate` 工具355* `mcp__puppeteer__puppeteer_navigate` 匹配由 `puppeteer` 服务器提供的 `puppeteer_navigate` 工具

356 356 

357如果您的组织已设置[claude.ai 连接器](/zh-CN/mcp#organization-controls-on-connector-tools)工具为 `ask`,该工具的 allow 规则不会生效:Claude Code 在每次调用时都会提示,即使在 `auto` 和 `bypassPermissions` 模式下。在 `dontAsk` 模式下(从不提示),Claude Code 会拒绝调用。连接器工具显示为 `mcp__claude_ai_<server>__<tool>`。357如果您的组织已设置[claude.ai 连接器](/docs/zh-CN/mcp#organization-controls-on-connector-tools)工具为 `ask`,该工具的 allow 规则不会生效:Claude Code 在每次调用时都会提示,即使在 `auto` 和 `bypassPermissions` 模式下。在 `dontAsk` 模式下(从不提示),Claude Code 会拒绝调用。连接器工具显示为 `mcp__claude_ai_<server>__<tool>`。

358 358 

359<h3 id="agent-subagents">359<h3 id="agent-subagents">

360 Agent(subagents)360 Agent(subagents)

361</h3>361</h3>

362 362 

363使用 `Agent(AgentName)` 规则来控制 Claude 可以使用哪些[子代理](/zh-CN/sub-agents):363使用 `Agent(AgentName)` 规则来控制 Claude 可以使用哪些[子代理](/docs/zh-CN/sub-agents):

364 364 

365* `Agent(Explore)` 匹配 Explore 子代理365* `Agent(Explore)` 匹配 Explore 子代理

366* `Agent(Plan)` 匹配 Plan 子代理366* `Agent(Plan)` 匹配 Plan 子代理


380 Cd380 Cd

381</h3>381</h3>

382 382 

383`Cd` 规则控制 [`/cd` 命令](/zh-CN/commands)可以将会话移动到哪些目录。`Cd` 不是模型可调用的工具:Claude 无法调用它,规则仅在您自己运行 `/cd` 时适用。383`Cd` 规则控制 [`/cd` 命令](/docs/zh-CN/commands)可以将会话移动到哪些目录。`Cd` 不是模型可调用的工具:Claude 无法调用它,规则仅在您自己运行 `/cd` 时适用。

384 384 

385裸 `Cd` deny 规则完全禁用 `/cd`。`Cd(<path-pattern>)` deny 规则阻止匹配的目标。Deny 规则检查目标的每个拼写,包括它解析的每个符号链接跳跃,因此为一个路径编写的规则也会阻止解析到它的目标。385裸 `Cd` deny 规则完全禁用 `/cd`。`Cd(<path-pattern>)` deny 规则阻止匹配的目标。Deny 规则检查目标的每个拼写,包括它解析的每个符号链接跳跃,因此为一个路径编写的规则也会阻止解析到它的目标。

386 386 


398 使用 hooks 扩展权限398 使用 hooks 扩展权限

399</h2>399</h2>

400 400 

401[Claude Code hooks](/zh-CN/hooks-guide) 提供了一种方法来注册自定义 shell 命令以在运行时执行权限评估。当 Claude Code 进行工具调用时,PreToolUse hooks 在权限提示之前运行。hook 输出可以拒绝工具调用、强制提示或跳过提示以让调用继续。401[Claude Code hooks](/docs/zh-CN/hooks-guide) 提供了一种方法来注册自定义 shell 命令以在运行时执行权限评估。当 Claude Code 进行工具调用时,PreToolUse hooks 在权限提示之前运行。hook 输出可以拒绝工具调用、强制提示或跳过提示以让调用继续。

402 402 

403Hook 决定不会绕过权限规则。Claude Code 评估 deny 和 ask 规则,无论 PreToolUse hook 返回什么:匹配的 deny 规则会阻止调用,匹配的 ask 规则即使在 hook 返回 `"allow"` 或 `"ask"` 时仍然会提示。这保留了[管理权限](#manage-permissions)中描述的 deny 优先级,包括在托管设置中设置的 deny 规则。403Hook 决定不会绕过权限规则。Claude Code 评估 deny 和 ask 规则,无论 PreToolUse hook 返回什么:匹配的 deny 规则会阻止调用,匹配的 ask 规则即使在 hook 返回 `"allow"` 或 `"ask"` 时仍然会提示。这保留了[管理权限](#manage-permissions)中描述的 deny 优先级,包括在托管设置中设置的 deny 规则。

404 404 

405连接器工具[您的组织设置为 `ask`](/zh-CN/mcp#organization-controls-on-connector-tools)和标记为 [`requiresUserInteraction`](/zh-CN/mcp#require-approval-for-a-specific-tool) 的 MCP 工具在 hook 返回 `"allow"` 时仍然会提示。405连接器工具[您的组织设置为 `ask`](/docs/zh-CN/mcp#organization-controls-on-connector-tools)和标记为 [`requiresUserInteraction`](/docs/zh-CN/mcp#require-approval-for-a-specific-tool) 的 MCP 工具在 hook 返回 `"allow"` 时仍然会提示。

406 406 

407阻止 hook 也优先于 allow 规则。以退出代码 2 退出的 hook 在权限规则被评估之前停止工具调用,因此即使 allow 规则会让调用继续,阻止也适用。要运行所有 Bash 命令而无需提示,除了您想要阻止的少数几个,将 `"Bash"` 添加到您的 allow 列表,并注册一个 PreToolUse hook 来拒绝那些特定命令。请参见[阻止对受保护文件的编辑](/zh-CN/hooks-guide#block-edits-to-protected-files)以获取您可以调整的 hook 脚本。407阻止 hook 也优先于 allow 规则。以退出代码 2 退出的 hook 在权限规则被评估之前停止工具调用,因此即使 allow 规则会让调用继续,阻止也适用。要运行所有 Bash 命令而无需提示,除了您想要阻止的少数几个,将 `"Bash"` 添加到您的 allow 列表,并注册一个 PreToolUse hook 来拒绝那些特定命令。请参见[阻止对受保护文件的编辑](/docs/zh-CN/hooks-guide#block-edits-to-protected-files)以获取您可以调整的 hook 脚本。

408 408 

409<h2 id="working-directories">409<h2 id="working-directories">

410 工作目录410 工作目录


414 414 

415* **启动期间**:使用 `--add-dir <path>` CLI 参数415* **启动期间**:使用 `--add-dir <path>` CLI 参数

416* **会话期间**:使用 `/add-dir` 命令416* **会话期间**:使用 `/add-dir` 命令

417* **持久配置**:添加到[设置文件](/zh-CN/settings#settings-files)中的 `additionalDirectories`417* **持久配置**:添加到[设置文件](/docs/zh-CN/settings#settings-files)中的 `additionalDirectories`

418 418 

419其他目录中的文件遵循与原始工作目录相同的权限规则:它们变为可读的而无需提示,文件编辑权限遵循当前权限模式。419其他目录中的文件遵循与原始工作目录相同的权限规则:它们变为可读的而无需提示,文件编辑权限遵循当前权限模式。

420 420 

421在 macOS 上的后台会话中,会话主机会单独从您的终端请求访问受保护的文件夹(如 `~/Desktop`、`~/Documents` 和 `~/Downloads`),当 Claude 需要在那里读取或写入文件时;如果读取失败并显示 `Operation not permitted`,请参阅[如何向后台会话授予文件夹访问权限](/zh-CN/agent-view#background-sessions-can't-read-desktop-documents-or-downloads-on-macos)。421在 macOS 上的后台会话中,会话主机会单独从您的终端请求访问受保护的文件夹(如 `~/Desktop`、`~/Documents` 和 `~/Downloads`),当 Claude 需要在那里读取或写入文件时;如果读取失败并显示 `Operation not permitted`,请参阅[如何向后台会话授予文件夹访问权限](/docs/zh-CN/agent-view#background-sessions-can't-read-desktop-documents-or-downloads-on-macos)。

422 422 

423要改变会话的主工作目录而不是添加另一个目录,请使用 [`/cd`](/zh-CN/commands)。`/cd` 命令需要 Claude Code v2.1.169 或更高版本。与 `/add-dir` 不同,它重新定位会话:新目录的 `CLAUDE.md` 被加载,`--resume` 从那里找到会话。423要改变会话的主工作目录而不是添加另一个目录,请使用 [`/cd`](/docs/zh-CN/commands)。`/cd` 命令需要 Claude Code v2.1.169 或更高版本。与 `/add-dir` 不同,它重新定位会话:新目录的 `CLAUDE.md` 被加载,`--resume` 从那里找到会话。

424 424 

425<h3 id="additional-directories-grant-file-access-not-configuration">425<h3 id="additional-directories-grant-file-access-not-configuration">

426 其他目录授予文件访问权限,而不是配置426 其他目录授予文件访问权限,而不是配置


434 434 

435| 配置 | 从 `--add-dir` 加载 |435| 配置 | 从 `--add-dir` 加载 |

436| :------------------------------------------------------------------------------ | :---------------------------------------------------------------------------------------------- |436| :------------------------------------------------------------------------------ | :---------------------------------------------------------------------------------------------- |

437| `.claude/skills/` 中的 [Skills](/zh-CN/skills) | 是,带有实时重新加载 |437| `.claude/skills/` 中的 [Skills](/docs/zh-CN/skills) | 是,带有实时重新加载 |

438| `.claude/agents/` 中的 [Subagents](/zh-CN/sub-agents) | 是 |438| `.claude/agents/` 中的 [Subagents](/docs/zh-CN/sub-agents) | 是 |

439| `.claude/settings.json` 和 `.claude/settings.local.json` 中的[设置](/zh-CN/settings) | 仅 `enabledPlugins` 和 `extraKnownMarketplaces` 键 |439| `.claude/settings.json` 和 `.claude/settings.local.json` 中的[设置](/docs/zh-CN/settings) | 仅 `enabledPlugins` 和 `extraKnownMarketplaces` 键 |

440| [CLAUDE.md](/zh-CN/memory) 文件、`.claude/rules/` 和 `CLAUDE.local.md` | 仅当设置 `CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD=1` 时。`CLAUDE.local.md` 另外需要 `local` 设置源,默认启用 |440| [CLAUDE.md](/docs/zh-CN/memory) 文件、`.claude/rules/` 和 `CLAUDE.local.md` | 仅当设置 `CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD=1` 时。`CLAUDE.local.md` 另外需要 `local` 设置源,默认启用 |

441 441 

442命令和输出样式从当前工作目录及其父目录、您在 `~/.claude/` 的用户目录和托管设置中发现。Hooks 和其他 `settings.json` 键从当前工作目录的 `.claude/` 文件夹加载,没有父目录回退,同时从您的用户 `~/.claude/settings.json` 和托管设置加载。要在项目间共享该配置,请使用以下方法之一:442命令和输出样式从当前工作目录及其父目录、您在 `~/.claude/` 的用户目录和托管设置中发现。Hooks 和其他 `settings.json` 键从当前工作目录的 `.claude/` 文件夹加载,没有父目录回退,同时从您的用户 `~/.claude/settings.json` 和托管设置加载。要在项目间共享该配置,请使用以下方法之一:

443 443 

444* **用户级配置**:将文件放在 `~/.claude/agents/`、`~/.claude/output-styles/` 或 `~/.claude/settings.json` 中,使其在每个项目中可用444* **用户级配置**:将文件放在 `~/.claude/agents/`、`~/.claude/output-styles/` 或 `~/.claude/settings.json` 中,使其在每个项目中可用

445* **插件**:将配置打包并分发为[插件](/zh-CN/plugins),团队可以安装445* **插件**:将配置打包并分发为[插件](/docs/zh-CN/plugins),团队可以安装

446* **从配置目录启动**:从包含您想要的 `.claude/` 配置的目录运行 Claude Code446* **从配置目录启动**:从包含您想要的 `.claude/` 配置的目录运行 Claude Code

447 447 

448<h2 id="how-permissions-interact-with-sandboxing">448<h2 id="how-permissions-interact-with-sandboxing">

449 权限如何与沙箱交互449 权限如何与沙箱交互

450</h2>450</h2>

451 451 

452权限和[沙箱](/zh-CN/sandboxing)是互补的安全层:452权限和[沙箱](/docs/zh-CN/sandboxing)是互补的安全层:

453 453 

454* **权限**控制 Claude Code 可以使用哪些工具以及它可以访问哪些文件或域。它们适用于所有工具,包括 Bash、Read、Edit、WebFetch 和 MCP。454* **权限**控制 Claude Code 可以使用哪些工具以及它可以访问哪些文件或域。它们适用于所有工具,包括 Bash、Read、Edit、WebFetch 和 MCP。

455* **沙箱**提供 OS 级别的强制执行,限制 Bash 工具的文件系统和网络访问。它仅适用于 Bash 命令及其子进程。455* **沙箱**提供 OS 级别的强制执行,限制 Bash 工具的文件系统和网络访问。它仅适用于 Bash 命令及其子进程。


458 458 

459* 权限 deny 规则阻止 Claude 甚至尝试访问受限资源459* 权限 deny 规则阻止 Claude 甚至尝试访问受限资源

460* 沙箱限制防止 Bash 命令到达定义边界之外的资源,即使提示注入绕过 Claude 的决策制定460* 沙箱限制防止 Bash 命令到达定义边界之外的资源,即使提示注入绕过 Claude 的决策制定

461* 沙箱中的文件系统限制结合 [`sandbox.filesystem`](/zh-CN/sandboxing) 设置与 Read 和 Edit deny 规则;两者都合并到最终的沙箱边界中461* 沙箱中的文件系统限制结合 [`sandbox.filesystem`](/docs/zh-CN/sandboxing) 设置与 Read 和 Edit deny 规则;两者都合并到最终的沙箱边界中

462* 网络限制结合 WebFetch 权限规则与沙箱的 `allowedDomains` 和 `deniedDomains` 列表462* 网络限制结合 WebFetch 权限规则与沙箱的 `allowedDomains` 和 `deniedDomains` 列表

463 463 

464当沙箱启用 `autoAllowBashIfSandboxed: true`(这是默认值)时,沙箱化的 Bash 命令无需提示即可运行,即使您的权限包括裸 `Bash` ask 规则,或[等效的 `Bash(*)` 形式](#match-all-uses-of-a-tool):沙箱边界替代了该整体工具提示。这些检查仍然适用:464当沙箱启用 `autoAllowBashIfSandboxed: true`(这是默认值)时,沙箱化的 Bash 命令无需提示即可运行,即使您的权限包括裸 `Bash` ask 规则,或[等效的 `Bash(*)` 形式](#match-all-uses-of-a-tool):沙箱边界替代了该整体工具提示。这些检查仍然适用:


467* 显式 deny 规则仍然适用467* 显式 deny 规则仍然适用

468* 针对 `/`、您的主目录或其他关键系统路径的 `rm` 或 `rmdir` 命令仍然会触发提示468* 针对 `/`、您的主目录或其他关键系统路径的 `rm` 或 `rmdir` 命令仍然会触发提示

469 469 

470不会在沙箱中运行的命令(如排除的命令)按照通常的方式遵守裸 `Bash` ask 规则。请参见[沙箱模式](/zh-CN/sandboxing#sandbox-modes)以更改此行为。470不会在沙箱中运行的命令(如排除的命令)按照通常的方式遵守裸 `Bash` ask 规则。请参见[沙箱模式](/docs/zh-CN/sandboxing#sandbox-modes)以更改此行为。

471 471 

472<h2 id="managed-settings">472<h2 id="managed-settings">

473 托管设置473 托管设置

474</h2>474</h2>

475 475 

476对于需要对 Claude Code 配置进行集中控制的组织,管理员可以部署无法被用户或项目设置覆盖的托管设置。这些策略设置遵循与常规设置文件相同的格式,可以通过 MDM/OS 级别策略、托管设置文件、[服务器托管设置](/zh-CN/server-managed-settings)或自托管的 [Claude apps gateway](/zh-CN/claude-apps-gateway) 传递。有关传递机制和文件位置,请参见[设置文件](/zh-CN/settings#settings-files)。476对于需要对 Claude Code 配置进行集中控制的组织,管理员可以部署无法被用户或项目设置覆盖的托管设置。这些策略设置遵循与常规设置文件相同的格式,可以通过 MDM/OS 级别策略、托管设置文件、[服务器托管设置](/docs/zh-CN/server-managed-settings)或自托管的 [Claude apps gateway](/docs/zh-CN/claude-apps-gateway) 传递。有关传递机制和文件位置,请参见[设置文件](/docs/zh-CN/settings#settings-files)。

477 477 

478<h3 id="managed-only-settings">478<h3 id="managed-only-settings">

479 仅托管设置479 仅托管设置


482以下设置仅在托管设置中有效。将它们放在用户或项目设置文件中无效。482以下设置仅在托管设置中有效。将它们放在用户或项目设置文件中无效。

483 483 

484| 设置 | 描述 |484| 设置 | 描述 |

485| :--------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |485| :--------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

486| `allowAllClaudeAiMcps` | 当为 `true` 时,claude.ai 连接器与已部署的 `managed-mcp.json` 一起加载,而不是被其独占控制所抑制。请参见[托管 MCP 配置](/zh-CN/managed-mcp) |486| `allowAllClaudeAiMcps` | 当为 `true` 时,claude.ai 连接器与已部署的 `managed-mcp.json` 一起加载,而不是被其独占控制所抑制。请参见[托管 MCP 配置](/docs/zh-CN/managed-mcp) |

487| `allowedChannelPlugins` | 可能推送消息的频道插件的允许列表。设置时替换默认 Anthropic 允许列表。需要 `channelsEnabled: true`。请参见[限制哪些频道插件可以运行](/zh-CN/channels#restrict-which-channel-plugins-can-run) |487| `allowedChannelPlugins` | 可能推送消息的频道插件的允许列表。设置时替换默认 Anthropic 允许列表。需要 `channelsEnabled: true`。请参见[限制哪些频道插件可以运行](/docs/zh-CN/channels#restrict-which-channel-plugins-can-run) |

488| `allowManagedHooksOnly` | 当为 `true` 时,仅加载托管 hooks、SDK hooks 和托管设置 `enabledPlugins` 中强制启用的插件中的 hooks。用户、项目和所有其他插件 hooks 被阻止 |488| `allowManagedHooksOnly` | 当为 `true` 时,仅加载托管 hooks、SDK hooks 和托管设置 `enabledPlugins` 中强制启用的插件中的 hooks。用户、项目和所有其他插件 hooks 被阻止 |

489| `allowManagedMcpServersOnly` | 当为 `true` 时,仅尊重来自托管设置的 `allowedMcpServers`。`deniedMcpServers` 仍然从所有来源合并。请参见[托管 MCP 配置](/zh-CN/managed-mcp) |489| `allowManagedMcpServersOnly` | 当为 `true` 时,仅尊重来自托管设置的 `allowedMcpServers`。`deniedMcpServers` 仍然从所有来源合并。请参见[托管 MCP 配置](/docs/zh-CN/managed-mcp) |

490| `allowManagedPermissionRulesOnly` | 当为 `true` 时,防止用户和项目设置定义 `allow`、`ask` 或 `deny` 权限规则。仅应用托管设置中的规则。不影响 MCP 服务器允许列表;对于此,请设置 `allowManagedMcpServersOnly` |490| `allowManagedPermissionRulesOnly` | 当为 `true` 时,防止用户和项目设置定义 `allow`、`ask` 或 `deny` 权限规则。仅应用托管设置中的规则。不影响 MCP 服务器允许列表;对于此,请设置 `allowManagedMcpServersOnly` |

491| `blockedMarketplaces` | 市场来源的黑名单。在下载前检查被阻止的来源,因此它们永远不会接触文件系统。请参见[托管市场限制](/zh-CN/plugin-marketplaces#managed-marketplace-restrictions) |491| `blockedMarketplaces` | 市场来源的黑名单。在下载前检查被阻止的来源,因此它们永远不会接触文件系统。请参见[托管市场限制](/docs/zh-CN/plugin-marketplaces#managed-marketplace-restrictions) |

492| `channelsEnabled` | 允许为组织启用[频道](/zh-CN/channels)。请参见[企业控制](/zh-CN/channels#enterprise-controls)了解每个计划的默认设置 |492| `channelsEnabled` | 允许为组织启用[频道](/docs/zh-CN/channels)。请参见[企业控制](/docs/zh-CN/channels#enterprise-controls)了解每个计划的默认设置 |

493| `disableSideloadFlags` | {/* min-version: 2.1.193 */}在启动时拒绝 `--plugin-dir`、`--plugin-url`、`--agents` 和 `--mcp-config` CLI 标志。没有这个,用户可以通过传递这些标志来绕过 `strictKnownMarketplaces` 进行单次运行。请参见[`disableSideloadFlags`](/zh-CN/settings#available-settings)。需要 Claude Code v2.1.193 或更高版本 |493| `disableSideloadFlags` | 在启动时拒绝 `--plugin-dir`、`--plugin-url`、`--agents` 和 `--mcp-config` CLI 标志。没有这个,用户可以通过传递这些标志来绕过 `strictKnownMarketplaces` 进行单次运行。请参见[`disableSideloadFlags`](/docs/zh-CN/settings#available-settings)。需要 Claude Code v2.1.193 或更高版本 |

494| `forceRemoteSettingsRefresh` | 当为 `true` 时,阻止 CLI 启动直到远程托管设置被新鲜获取,如果获取失败则退出。请参见[故障关闭强制执行](/zh-CN/server-managed-settings#enforce-fail-closed-startup) |494| `forceRemoteSettingsRefresh` | 当为 `true` 时,阻止 CLI 启动直到远程托管设置被新鲜获取,如果获取失败则退出。请参见[故障关闭强制执行](/docs/zh-CN/server-managed-settings#enforce-fail-closed-startup) |

495| `pluginTrustMessage` | 自定义消息,附加到安装前显示的插件信任警告 |495| `pluginTrustMessage` | 自定义消息,附加到安装前显示的插件信任警告 |

496| `sandbox.filesystem.allowManagedReadPathsOnly` | 当为 `true` 时,仅尊重来自托管设置的 `filesystem.allowRead` 路径。`denyRead` 仍然从所有来源合并 |496| `sandbox.filesystem.allowManagedReadPathsOnly` | 当为 `true` 时,仅尊重来自托管设置的 `filesystem.allowRead` 路径。`denyRead` 仍然从所有来源合并 |

497| `sandbox.network.allowManagedDomainsOnly` | 当为 `true` 时,仅尊重来自托管设置的 `allowedDomains` 和 `WebFetch(domain:...)` allow 规则。非允许的域被自动阻止,不提示用户。被拒绝的域仍然从所有来源合并 |497| `sandbox.network.allowManagedDomainsOnly` | 当为 `true` 时,仅尊重来自托管设置的 `allowedDomains` 和 `WebFetch(domain:...)` allow 规则。非允许的域被自动阻止,不提示用户。被拒绝的域仍然从所有来源合并 |

498| `strictKnownMarketplaces` | 控制用户可以添加和安装插件的插件市场来源。请参见[托管市场限制](/zh-CN/plugin-marketplaces#managed-marketplace-restrictions) |498| `strictKnownMarketplaces` | 控制用户可以添加和安装插件的插件市场来源。请参见[托管市场限制](/docs/zh-CN/plugin-marketplaces#managed-marketplace-restrictions) |

499| `strictPluginOnlyCustomization` | 阻止 skills、agents、hooks 和 MCP servers 来自用户和项目来源,因此它们只能来自插件或托管设置。`true` 锁定所有四个表面;数组如 `["skills", "hooks"]` 仅锁定命名的表面。请参见[`strictPluginOnlyCustomization`](/zh-CN/settings#strictpluginonlycustomization) |499| `strictPluginOnlyCustomization` | 阻止 skills、agents、hooks 和 MCP servers 来自用户和项目来源,因此它们只能来自插件或托管设置。`true` 锁定所有四个表面;数组如 `["skills", "hooks"]` 仅锁定命名的表面。请参见[`strictPluginOnlyCustomization`](/docs/zh-CN/settings#strictpluginonlycustomization) |

500| `wslInheritsWindowsSettings` | 当在 Windows HKLM 注册表项或 `C:\Program Files\ClaudeCode\managed-settings.json` 中为 `true` 时,WSL 除了从 `/etc/claude-code` 读取托管设置外,还从 Windows 策略链读取托管设置。请参见[设置文件](/zh-CN/settings#settings-files) |500| `wslInheritsWindowsSettings` | 当在 Windows HKLM 注册表项或 `C:\Program Files\ClaudeCode\managed-settings.json` 中为 `true` 时,WSL 除了从 `/etc/claude-code` 读取托管设置外,还从 Windows 策略链读取托管设置。请参见[设置文件](/docs/zh-CN/settings#settings-files) |

501 501 

502`disableBypassPermissionsMode` 通常放在托管设置中以强制执行组织策略,但它可以从任何范围工作。用户可以在自己的设置中设置它以将自己锁定在绕过模式之外。502`disableBypassPermissionsMode` 通常放在托管设置中以强制执行组织策略,但它可以从任何范围工作。用户可以在自己的设置中设置它以将自己锁定在绕过模式之外。

503 503 

504<Note>504<Note>

505 在 Team 和 Enterprise 计划上,Owner 在[Claude Code 管理设置](https://claude.ai/admin-settings/claude-code)中启用或禁用[远程控制](/zh-CN/remote-control)和[网络会话](/zh-CN/claude-code-on-the-web)组织范围内的设置。远程控制还可以通过 [`disableRemoteControl`](/zh-CN/settings#available-settings) 设置按设备禁用。网络会话没有按设备托管设置密钥。505 在 Team 和 Enterprise 计划上,Owner 在[Claude Code 管理设置](https://claude.ai/admin-settings/claude-code)中启用或禁用[远程控制](/docs/zh-CN/remote-control)和[网络会话](/docs/zh-CN/claude-code-on-the-web)组织范围内的设置。远程控制还可以通过 [`disableRemoteControl`](/docs/zh-CN/settings#available-settings) 设置按设备禁用。网络会话没有按设备托管设置密钥。

506</Note>506</Note>

507 507 

508<h2 id="settings-precedence">508<h2 id="settings-precedence">

509 设置优先级509 设置优先级

510</h2>510</h2>

511 511 

512权限规则遵循与所有其他 Claude Code 设置相同的[设置优先级](/zh-CN/settings#settings-precedence):512权限规则遵循与所有其他 Claude Code 设置相同的[设置优先级](/docs/zh-CN/settings#settings-precedence):

513 513 

5141. **托管设置**:无法被任何其他级别覆盖,包括命令行参数5141. **托管设置**:无法被任何其他级别覆盖,包括命令行参数

5152. **命令行参数**:临时会话覆盖5152. **命令行参数**:临时会话覆盖


521 521 

522同样的规则也适用于设置范围:如果用户设置允许某个权限而项目设置拒绝它,deny 规则会阻止它。反之亦然:用户级别的 deny 会阻止项目级别的 allow,因为来自任何范围的 deny 规则在 allow 规则之前被评估。522同样的规则也适用于设置范围:如果用户设置允许某个权限而项目设置拒绝它,deny 规则会阻止它。反之亦然:用户级别的 deny 会阻止项目级别的 allow,因为来自任何范围的 deny 规则在 allow 规则之前被评估。

523 523 

524嵌入主机可以在 [`parentSettingsBehavior`](/zh-CN/settings#settings-precedence) 设置为 `"merge"` 时,通过 SDK `managedSettings` 选项提供额外的托管策略;嵌入器值可以收紧策略但不能放松它。524嵌入主机可以在 [`parentSettingsBehavior`](/docs/zh-CN/settings#settings-precedence) 设置为 `"merge"` 时,通过 SDK `managedSettings` 选项提供额外的托管策略;嵌入器值可以收紧策略但不能放松它。

525 525 

526<h2 id="project-allow-rules-and-workspace-trust">526<h2 id="project-allow-rules-and-workspace-trust">

527 项目允许规则和工作区信任527 项目允许规则和工作区信任

528</h2>528</h2>

529 529 

530项目的 `.claude/settings.json` 中的 `permissions.allow` 规则和 `permissions.additionalDirectories` 条目授予功能,因此 Claude Code 仅在您接受该工作区的[工作区信任对话框](/zh-CN/security#additional-safeguards)后才应用它们。在此之前,Claude Code 会读取规则但不应用它们。信任对话框列出了该文件夹将授予的允许规则和其他目录,以便您可以在接受前查看它们。`deny` 和 `ask` 规则不受影响,因为它们仅限制。530项目的 `.claude/settings.json` 中的 `permissions.allow` 规则和 `permissions.additionalDirectories` 条目授予功能,因此 Claude Code 仅在您接受该工作区的[工作区信任对话框](/docs/zh-CN/security#additional-safeguards)后才应用它们。在此之前,Claude Code 会读取规则但不应用它们。信任对话框列出了该文件夹将授予的允许规则和其他目录,以便您可以在接受前查看它们。`deny` 和 `ask` 规则不受影响,因为它们仅限制。

531 531 

532Claude Code 按工作区保存信任,以 git 存储库根目录为键,或在存储库外,以您启动 Claude Code 的目录为键。当您从主目录启动时,信任仅在当前会话期间保持,不会写入磁盘;请参阅[其他保护措施](/zh-CN/security#additional-safeguards)说明。信任父目录不会应用嵌套项目的允许规则。532Claude Code 按工作区保存信任,以 git 存储库根目录为键,或在存储库外,以您启动 Claude Code 的目录为键。当您从主目录启动时,信任仅在当前会话期间保持,不会写入磁盘;请参阅[其他保护措施](/docs/zh-CN/security#additional-safeguards)说明。信任父目录不会应用嵌套项目的允许规则。

533 533 

534`.claude/settings.local.json` 是您自己的文件,因此工作区信任检查通常不适用于它。当存储库可能提供了该文件时,例如当它提交到 git 或 `.claude` 是符号链接时,其允许规则和其他目录会像项目设置一样通过信任检查。534`.claude/settings.local.json` 是您自己的文件,因此工作区信任检查通常不适用于它。当存储库可能提供了该文件时,例如当它提交到 git 或 `.claude` 是符号链接时,其允许规则和其他目录会像项目设置一样通过信任检查。

535 535 


538`.claude/settings.local.json` 中的允许规则和其他目录在两种情况下也可以在没有工作区信任的情况下应用:538`.claude/settings.local.json` 中的允许规则和其他目录在两种情况下也可以在没有工作区信任的情况下应用:

539 539 

540* 您启动 Claude Code 的目录不在 git 存储库内。540* 您启动 Claude Code 的目录不在 git 存储库内。

541* 会话在您自己的配置主目录中运行:您的主目录或任何您已将其 `.claude` 子目录设置为 [`CLAUDE_CONFIG_DIR`](/zh-CN/env-vars) 的目录。541* 会话在您自己的配置主目录中运行:您的主目录或任何您已将其 `.claude` 子目录设置为 [`CLAUDE_CONFIG_DIR`](/docs/zh-CN/env-vars) 的目录。

542 542 

543在这两种情况下,该文件都是您创建的,而不是存储库可能提供的文件,并且存储库提交的 `.claude/settings.local.json` 仍然需要工作区信任。版本 2.1.196 至 2.1.199 在这些工作区中将该文件视为存储库提供的文件,忽略其允许规则,并向 stderr 打印 [`this workspace has not been trusted`](/zh-CN/errors#workspace-has-not-been-trusted) 警告。上述两个例外与 v2.1.195 及更早版本相匹配,并在 v2.1.200 中恢复。543在这两种情况下,该文件都是您创建的,而不是存储库可能提供的文件,并且存储库提交的 `.claude/settings.local.json` 仍然需要工作区信任。版本 2.1.196 至 2.1.199 在这些工作区中将该文件视为存储库提供的文件,忽略其允许规则,并向 stderr 打印 [`this workspace has not been trusted`](/docs/zh-CN/errors#workspace-has-not-been-trusted) 警告。上述两个例外与 v2.1.195 及更早版本相匹配,并在 v2.1.200 中恢复。

544 544 

545同样从 v2.1.200 开始,一个工作区的允许规则或其他目录仍未被应用,但由于父目录已被信任而从未显示信任对话框,会在您下次在那里交互式启动 Claude Code 时显示对话框。对话框提供两个选择:545同样从 v2.1.200 开始,一个工作区的允许规则或其他目录仍未被应用,但由于父目录已被信任而从未显示信任对话框,会在您下次在那里交互式启动 Claude Code 时显示对话框。对话框提供两个选择:

546 546 

547* **Yes, I trust this folder**:保存该工作区的信任并在同一会话中应用规则。547* **Yes, I trust this folder**:保存该工作区的信任并在同一会话中应用规则。

548* **No, continue without these permissions**:继续工作,忽略这些规则。对话框将在下一个会话中再次出现。548* **No, continue without these permissions**:继续工作,忽略这些规则。对话框将在下一个会话中再次出现。

549 549 

550在[非交互模式](/zh-CN/headless)中使用 `-p`,不会出现对话框,规则保持被忽略。550在[非交互模式](/docs/zh-CN/headless)中使用 `-p`,不会出现对话框,规则保持被忽略。

551 551 

552<h2 id="example-configurations">552<h2 id="example-configurations">

553 示例配置553 示例配置


559 另请参见559 另请参见

560</h2>560</h2>

561 561 

562* [Settings](/zh-CN/settings):完整的配置参考,包括权限设置表562* [Settings](/docs/zh-CN/settings):完整的配置参考,包括权限设置表

563* [Configure auto mode](/zh-CN/auto-mode-config):告诉自动模式分类器您的组织信任哪些基础设施563* [Configure auto mode](/docs/zh-CN/auto-mode-config):告诉自动模式分类器您的组织信任哪些基础设施

564* [Sandboxing](/zh-CN/sandboxing):Bash 命令的 OS 级文件系统和网络隔离564* [Sandboxing](/docs/zh-CN/sandboxing):Bash 命令的 OS 级文件系统和网络隔离

565* [Authentication](/zh-CN/authentication):设置用户对 Claude Code 的访问565* [Authentication](/docs/zh-CN/authentication):设置用户对 Claude Code 的访问

566* [Security](/zh-CN/security):安全保障和最佳实践566* [Security](/docs/zh-CN/security):安全保障和最佳实践

567* [Hooks](/zh-CN/hooks-guide):自动化工作流并扩展权限评估567* [Hooks](/docs/zh-CN/hooks-guide):自动化工作流并扩展权限评估

plugin-hints.md +7 −7

Details

10 10 

11Claude Code 在将命令输出发送给模型之前会从命令输出中删除提示行,因此标记永远不会出现在对话中,也不会计入令牌使用量。该协议不需要额外命令,也不会改变您的 CLI 为 Claude Code 外部用户打印的内容。11Claude Code 在将命令输出发送给模型之前会从命令输出中删除提示行,因此标记永远不会出现在对话中,也不会计入令牌使用量。该协议不需要额外命令,也不会改变您的 CLI 为 Claude Code 外部用户打印的内容。

12 12 

13本页面适用于 CLI 和 SDK 维护者。如果您正在寻找安装插件,请参阅[发现和安装插件](/zh-CN/discover-plugins)。13本页面适用于 CLI 和 SDK 维护者。如果您正在寻找安装插件,请参阅[发现和安装插件](/docs/zh-CN/discover-plugins)。

14 14 

15<h2 id="how-it-works">15<h2 id="how-it-works">

16 工作原理16 工作原理

17</h2>17</h2>

18 18 

19Claude Code 为通过 Bash 和 PowerShell 工具运行的每个命令以及 [hook](/zh-CN/hooks) 命令设置 [`CLAUDECODE`](/zh-CN/env-vars) 环境变量为 `1`。{/* min-version: 2.1.172 */}从 v2.1.172 开始,它还在这些相同的子进程中将 [`CLAUDE_CODE_CHILD_SESSION`](/zh-CN/env-vars) 设置为 `1`。当您的 CLI 看到这些变量之一时,它会向 stderr 写入一个自闭合的 `<claude-code-hint />` 标签。在 hook 命令中,提示标签会被剥离并忽略。只有 Bash 和 PowerShell 工具输出会触发安装提示。19Claude Code 为通过 Bash 和 PowerShell 工具运行的每个命令以及 [hook](/docs/zh-CN/hooks) 命令设置 [`CLAUDECODE`](/docs/zh-CN/env-vars) 环境变量为 `1`。从 v2.1.172 开始,它还在这些相同的子进程中将 [`CLAUDE_CODE_CHILD_SESSION`](/docs/zh-CN/env-vars) 设置为 `1`。当您的 CLI 看到这些变量之一时,它会向 stderr 写入一个自闭合的 `<claude-code-hint />` 标签。在 hook 命令中,提示标签会被剥离并忽略。只有 Bash 和 PowerShell 工具输出会触发安装提示。

20 20 

21当 Claude Code 接收到命令输出时,它会:21当 Claude Code 接收到命令输出时,它会:

22 22 


36在环境变量上进行门控以发出提示,使标记不太可能在人类直接运行您的 CLI 时出现,然后将标签写入 stderr,单独占一行。选择要检查的变量:36在环境变量上进行门控以发出提示,使标记不太可能在人类直接运行您的 CLI 时出现,然后将标签写入 stderr,单独占一行。选择要检查的变量:

37 37 

38* `CLAUDECODE`:在每个 Claude Code 版本上设置,因此可以到达最多的会话。它也在 tmux 会话和 Claude Code 启动的 stdio MCP 服务器子进程中设置,IDE 扩展在其集成终端中设置它,人类可能在那里直接运行您的 CLI。38* `CLAUDECODE`:在每个 Claude Code 版本上设置,因此可以到达最多的会话。它也在 tmux 会话和 Claude Code 启动的 stdio MCP 服务器子进程中设置,IDE 扩展在其集成终端中设置它,人类可能在那里直接运行您的 CLI。

39* {/* min-version: 2.1.172 */}`CLAUDE_CODE_CHILD_SESSION`:仅在 Claude Code 本身生成的子进程中设置,例如工具调用、hook 命令和[状态行](/zh-CN/statusline)命令,因此标签通常不会到达人类终端。在会话内启动的长期进程(例如 tmux 服务器)会捕获该变量,因此从该进程启动的后续 shell 仍然显示原始标签。需要 Claude Code v2.1.172 或更高版本,因此较旧版本上的会话会错过提示。39* `CLAUDE_CODE_CHILD_SESSION`:仅在 Claude Code 本身生成的子进程中设置,例如工具调用、hook 命令和[状态行](/docs/zh-CN/statusline)命令,因此标签通常不会到达人类终端。在会话内启动的长期进程(例如 tmux 服务器)会捕获该变量,因此从该进程启动的后续 shell 仍然显示原始标签。需要 Claude Code v2.1.172 或更高版本,因此较旧版本上的会话会错过提示。

40 40 

41以下示例在 `CLAUDECODE` 上进行门控以获得最大覆盖范围,并为官方市场中名为 `example-cli` 的插件发出提示:41以下示例在 `CLAUDECODE` 上进行门控以获得最大覆盖范围,并为官方市场中名为 `example-cli` 的插件发出提示:

42 42 


158 将您的插件放入官方市场158 将您的插件放入官方市场

159</h2>159</h2>

160 160 

161提示协议仅对在官方 Anthropic 市场 `claude-plugins-official` 中列出的插件生效。Anthropic 自行决定策划该市场,应用内提交表单会将插件添加到[社区市场](/zh-CN/plugins#submit-your-plugin-to-the-community-marketplace),提示协议不检查该市场。如果您正在与 Anthropic 合作伙伴联系合作,请与他们联系以协调官方市场列表。161提示协议仅对在官方 Anthropic 市场 `claude-plugins-official` 中列出的插件生效。Anthropic 自行决定策划该市场,应用内提交表单会将插件添加到[社区市场](/docs/zh-CN/plugins#submit-your-plugin-to-the-community-marketplace),提示协议不检查该市场。如果您正在与 Anthropic 合作伙伴联系合作,请与他们联系以协调官方市场列表。

162 162 

163<h2 id="see-also">163<h2 id="see-also">

164 另请参阅164 另请参阅

165</h2>165</h2>

166 166 

167* [创建插件](/zh-CN/plugins):构建您的 CLI 推荐的插件167* [创建插件](/docs/zh-CN/plugins):构建您的 CLI 推荐的插件

168* [创建和分发插件市场](/zh-CN/plugin-marketplaces):在官方市场外托管插件168* [创建和分发插件市场](/docs/zh-CN/plugin-marketplaces):在官方市场外托管插件

169* [环境变量](/zh-CN/env-vars):`CLAUDECODE` 和相关变量的完整参考169* [环境变量](/docs/zh-CN/env-vars):`CLAUDECODE` 和相关变量的完整参考

Details

8 8 

9**plugin marketplace** 是一个目录,让你能够将 plugins 分发给他人。Marketplace 提供集中式发现、版本跟踪、自动更新以及对多种源类型(包括 git 存储库和本地路径)的支持。本指南展示了如何创建自己的 marketplace,与你的团队或社区共享 plugins。9**plugin marketplace** 是一个目录,让你能够将 plugins 分发给他人。Marketplace 提供集中式发现、版本跟踪、自动更新以及对多种源类型(包括 git 存储库和本地路径)的支持。本指南展示了如何创建自己的 marketplace,与你的团队或社区共享 plugins。

10 10 

11想要从现有 marketplace 安装 plugins?请参阅[发现和安装预构建的 plugins](/zh-CN/discover-plugins)。11想要从现有 marketplace 安装 plugins?请参阅[发现和安装预构建的 plugins](/docs/zh-CN/discover-plugins)。

12 12 

13<h2 id="overview">13<h2 id="overview">

14 概述14 概述


16 16 

17创建和分发 marketplace 涉及:17创建和分发 marketplace 涉及:

18 18 

191. **创建 plugins**:使用 skills、agents、hooks、MCP servers 或 LSP servers 构建一个或多个 plugins。本指南假设你已经有要分发的 plugins;有关如何创建 plugins 的详细信息,请参阅[创建 plugins](/zh-CN/plugins)。191. **创建 plugins**:使用 skills、agents、hooks、MCP servers 或 LSP servers 构建一个或多个 plugins。本指南假设你已经有要分发的 plugins;有关如何创建 plugins 的详细信息,请参阅[创建 plugins](/docs/zh-CN/plugins)。

202. **创建 marketplace 文件**:定义一个 `marketplace.json`,列出你的 plugins 及其位置。请参阅[创建 marketplace 文件](#create-the-marketplace-file)。202. **创建 marketplace 文件**:定义一个 `marketplace.json`,列出你的 plugins 及其位置。请参阅[创建 marketplace 文件](#create-the-marketplace-file)。

213. **托管 marketplace**:推送到 GitHub、GitLab 或其他 git 主机。请参阅[托管和分发 marketplaces](#host-and-distribute-marketplaces)。213. **托管 marketplace**:推送到 GitHub、GitLab 或其他 git 主机。请参阅[托管和分发 marketplaces](#host-and-distribute-marketplaces)。

224. **与用户共享**:用户使用 `/plugin marketplace add` 添加你的 marketplace 并安装单个 plugins。请参阅[发现和安装 plugins](/zh-CN/discover-plugins)。224. **与用户共享**:用户使用 `/plugin marketplace add` 添加你的 marketplace 并安装单个 plugins。请参阅[发现和安装 plugins](/docs/zh-CN/discover-plugins)。

23 23 

24一旦你的 marketplace 上线,你可以通过推送更改到你的存储库来更新它。用户使用 `/plugin marketplace update` 刷新他们的本地副本。24一旦你的 marketplace 上线,你可以通过推送更改到你的存储库来更新它。用户使用 `/plugin marketplace update` 刷新他们的本地副本。

25 25 


110 </Step>110 </Step>

111</Steps>111</Steps>

112 112 

113要了解更多关于 plugins 可以做什么的信息,包括 hooks、agents、MCP servers 和 LSP servers,请参阅 [Plugins](/zh-CN/plugins)。113要了解更多关于 plugins 可以做什么的信息,包括 hooks、agents、MCP servers 和 LSP servers,请参阅 [Plugins](/docs/zh-CN/plugins)。

114 114 

115<Note>115<Note>

116 **plugins 如何安装**:当用户安装 plugin 时,Claude Code 将 plugin 目录复制到缓存位置。这意味着 plugins 无法使用 `../shared-utils` 之类的路径引用其目录外的文件,因为这些文件不会被复制。116 **plugins 如何安装**:当用户安装 plugin 时,Claude Code 将 plugin 目录复制到缓存位置。这意味着 plugins 无法使用 `../shared-utils` 之类的路径引用其目录外的文件,因为这些文件不会被复制。

117 117 

118 如果你需要在 plugins 之间共享文件,请使用符号链接。有关详细信息,请参阅 [Plugin 缓存和文件解析](/zh-CN/plugins-reference#plugin-caching-and-file-resolution)。118 如果你需要在 plugins 之间共享文件,请使用符号链接。有关详细信息,请参阅 [Plugin 缓存和文件解析](/docs/zh-CN/plugins-reference#plugin-caching-and-file-resolution)。

119</Note>119</Note>

120 120 

121<h2 id="create-the-marketplace-file">121<h2 id="create-the-marketplace-file">


172<Note>172<Note>

173 **保留名称**:以下 marketplace 名称为 Anthropic 官方使用保留,第三方 marketplaces 无法使用:`claude-code-marketplace`、`claude-code-plugins`、`claude-plugins-official`、`claude-plugins-community`、`claude-community`、`anthropic-marketplace`、`anthropic-plugins`、`agent-skills`、`anthropic-agent-skills`、`knowledge-work-plugins`、`life-sciences`、`claude-for-legal`、`claude-for-financial-services`、`financial-services-plugins`、`first-party-plugins`、`healthcare`。冒充官方 marketplaces 的名称(如 `official-claude-plugins` 或 `anthropic-plugins-v2`)也被阻止。保留这些名称可防止第三方 marketplace 将自己呈现为 Anthropic 发布的来源。173 **保留名称**:以下 marketplace 名称为 Anthropic 官方使用保留,第三方 marketplaces 无法使用:`claude-code-marketplace`、`claude-code-plugins`、`claude-plugins-official`、`claude-plugins-community`、`claude-community`、`anthropic-marketplace`、`anthropic-plugins`、`agent-skills`、`anthropic-agent-skills`、`knowledge-work-plugins`、`life-sciences`、`claude-for-legal`、`claude-for-financial-services`、`financial-services-plugins`、`first-party-plugins`、`healthcare`。冒充官方 marketplaces 的名称(如 `official-claude-plugins` 或 `anthropic-plugins-v2`)也被阻止。保留这些名称可防止第三方 marketplace 将自己呈现为 Anthropic 发布的来源。

174 174 

175 Claude Code 每次加载 marketplace 时都会重新检查保留名称,而不仅仅是在添加时。在该名称成为保留名称之前以其中一个名称注册的 marketplace 停止加载,并报告它是[从不受信任的来源注册的](/zh-CN/errors#marketplace-is-registered-from-an-untrusted-source)。移除该 marketplace 并从官方 Anthropic 来源重新添加它。受新保留名称影响的第三方 marketplace 在你以不同名称重新添加它后立即再次加载。在 v2.1.205 之前,`first-party-plugins` 和 `healthcare` 不是保留的,已在保留名称下注册的 marketplace 继续加载。175 Claude Code 每次加载 marketplace 时都会重新检查保留名称,而不仅仅是在添加时。在该名称成为保留名称之前以其中一个名称注册的 marketplace 停止加载,并报告它是[从不受信任的来源注册的](/docs/zh-CN/errors#marketplace-is-registered-from-an-untrusted-source)。移除该 marketplace 并从官方 Anthropic 来源重新添加它。受新保留名称影响的第三方 marketplace 在你以不同名称重新添加它后立即再次加载。在 v2.1.205 之前,`first-party-plugins` 和 `healthcare` 不是保留的,已在保留名称下注册的 marketplace 继续加载。

176</Note>176</Note>

177 177 

178<h3 id="owner-fields">178<h3 id="owner-fields">


189</h3>189</h3>

190 190 

191| 字段 | 类型 | 描述 |191| 字段 | 类型 | 描述 |

192| :------------------------------------ | :----- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |192| :------------------------------------ | :----- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

193| `$schema` | string | 用于编辑器自动完成和验证的 JSON Schema URL。Claude Code 在加载时忽略此字段。 |193| `$schema` | string | 用于编辑器自动完成和验证的 JSON Schema URL。Claude Code 在加载时忽略此字段。 |

194| `description` | string | 简短的 marketplace 描述 |194| `description` | string | 简短的 marketplace 描述 |

195| `version` | string | Marketplace 清单版本 |195| `version` | string | Marketplace 清单版本 |

196| `metadata.pluginRoot` | string | 前置到相对 plugin 源路径的基目录(例如,`"./plugins"` 让你写 `"source": "formatter"` 而不是 `"source": "./plugins/formatter"`) |196| `metadata.pluginRoot` | string | 前置到相对 plugin 源路径的基目录(例如,`"./plugins"` 让你写 `"source": "formatter"` 而不是 `"source": "./plugins/formatter"`) |

197| `allowCrossMarketplaceDependenciesOn` | array | 此 marketplace 中的 plugins 可能依赖的其他 marketplaces。来自此处未列出的 marketplace 的依赖项在安装时被阻止。见[依赖来自另一个 marketplace 的 plugin](/zh-CN/plugin-dependencies#depend-on-a-plugin-from-another-marketplace)。 |197| `allowCrossMarketplaceDependenciesOn` | array | 此 marketplace 中的 plugins 可能依赖的其他 marketplaces。来自此处未列出的 marketplace 的依赖项在安装时被阻止。见[依赖来自另一个 marketplace 的 plugin](/docs/zh-CN/plugin-dependencies#depend-on-a-plugin-from-another-marketplace)。 |

198| `renames` | object | {/* min-version: 2.1.193 */}从前一个 plugin `name` 到其当前名称的映射,或如果 plugin 被移除则映射到 `null`。当你重命名或移除 `plugins` 中的条目时,让现有用户自动迁移。见[重命名或移除 plugin](#rename-or-remove-a-plugin)。需要 Claude Code v2.1.193 或更高版本。 |198| `renames` | object | 从前一个 plugin `name` 到其当前名称的映射,或如果 plugin 被移除则映射到 `null`。当你重命名或移除 `plugins` 中的条目时,让现有用户自动迁移。见[重命名或移除 plugin](#rename-or-remove-a-plugin)。需要 Claude Code v2.1.193 或更高版本。 |

199 199 

200`description` 和 `version` 也可以在 `metadata` 下接受,以实现向后兼容性。200`description` 和 `version` 也可以在 `metadata` 下接受,以实现向后兼容性。

201 201 


203 Plugin 条目203 Plugin 条目

204</h2>204</h2>

205 205 

206`plugins` 数组中的每个 plugin 条目描述一个 plugin 及其位置。你可以包含 [plugin manifest 架构](/zh-CN/plugins-reference#plugin-manifest-schema)中的任何字段,如 `description`、`version`、`author`、`commands` 和 `hooks`,加上这些 marketplace 特定的字段:`source`、`category`、`tags`、`strict` 和 `relevance`。206`plugins` 数组中的每个 plugin 条目描述一个 plugin 及其位置。你可以包含 [plugin manifest 架构](/docs/zh-CN/plugins-reference#plugin-manifest-schema)中的任何字段,如 `description`、`version`、`author`、`commands` 和 `hooks`,加上这些 marketplace 特定的字段:`source`、`category`、`tags`、`strict` 和 `relevance`。

207 207 

208<h3 id="required-fields-2">208<h3 id="required-fields-2">

209 必需字段209 必需字段


221**标准元数据字段:**221**标准元数据字段:**

222 222 

223| 字段 | 类型 | 描述 |223| 字段 | 类型 | 描述 |

224| :--------------- | :------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |224| :--------------- | :------ | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

225| `displayName` | string | {/* min-version: 2.1.143 */}在 UI 界面中显示的人类可读名称。当省略时回退到 `name`。可以包含空格和任何大小写。不用于命名空间或查找。需要 Claude Code v2.1.143 或更高版本。 |225| `displayName` | string | 在 UI 界面中显示的人类可读名称。当省略时回退到 `name`。可以包含空格和任何大小写。不用于命名空间或查找。需要 Claude Code v2.1.143 或更高版本。 |

226| `description` | string | 简短的 plugin 描述 |226| `description` | string | 简短的 plugin 描述 |

227| `version` | string | Plugin 版本。如果设置(在此处或在 `plugin.json` 中),plugin 将固定到此字符串,用户仅在其更改时才会收到更新。省略以回退到 git commit SHA。见 [版本解析](#version-resolution-and-release-channels)。 |227| `version` | string | Plugin 版本。如果设置(在此处或在 `plugin.json` 中),plugin 将固定到此字符串,用户仅在其更改时才会收到更新。省略以回退到 git commit SHA。见 [版本解析](#version-resolution-and-release-channels)。 |

228| `author` | object | Plugin 作者信息(`name` 必需,`email` 可选) |228| `author` | object | Plugin 作者信息(`name` 必需,`email` 可选) |


233| `category` | string | Plugin 类别以供组织 |233| `category` | string | Plugin 类别以供组织 |

234| `tags` | array | 用于可搜索性的标签 |234| `tags` | array | 用于可搜索性的标签 |

235| `strict` | boolean | 控制 `plugin.json` 是否是组件定义的权威(默认:true)。见下面的 [Strict 模式](#strict-mode)。 |235| `strict` | boolean | 控制 `plugin.json` 是否是组件定义的权威(默认:true)。见下面的 [Strict 模式](#strict-mode)。 |

236| `relevance` | object | {/* min-version: 2.1.152 */}告诉 Claude Code 何时向用户建议此 plugin 的信号。仅对管理员在托管设置中允许列表的 marketplace 生效。见 [为你的组织推荐 plugin](/zh-CN/plugin-relevance)。需要 Claude Code v2.1.152 或更高版本。 |236| `relevance` | object | 告诉 Claude Code 何时向用户建议此 plugin 的信号。仅对管理员在托管设置中允许列表的 marketplace 生效。见 [为你的组织推荐 plugin](/docs/zh-CN/plugin-relevance)。需要 Claude Code v2.1.152 或更高版本。 |

237| `defaultEnabled` | boolean | {/* min-version: 2.1.154 */}plugin 安装后是否启用(默认:true)。设置为 `false` 以安装禁用的 plugin,直到用户选择启用。优先于 plugin 的 `plugin.json` 中的同一字段。见 [默认启用](/zh-CN/plugins-reference#default-enablement)。需要 Claude Code v2.1.154 或更高版本。 |237| `defaultEnabled` | boolean | plugin 安装后是否启用(默认:true)。设置为 `false` 以安装禁用的 plugin,直到用户选择启用。优先于 plugin 的 `plugin.json` 中的同一字段。见 [默认启用](/docs/zh-CN/plugins-reference#default-enablement)。需要 Claude Code v2.1.154 或更高版本。 |

238 238 

239**组件配置字段:**239**组件配置字段:**

240 240 


508 508 

509* **`commands` 和 `agents`**:你可以指定多个目录或单个文件。路径相对于 plugin 根目录。509* **`commands` 和 `agents`**:你可以指定多个目录或单个文件。路径相对于 plugin 根目录。

510* **`${CLAUDE_PLUGIN_ROOT}`**:在 hooks 和 MCP server 配置中使用此变量来引用 plugin 安装目录中的文件。这是必要的,因为 plugins 在安装时被复制到缓存位置。510* **`${CLAUDE_PLUGIN_ROOT}`**:在 hooks 和 MCP server 配置中使用此变量来引用 plugin 安装目录中的文件。这是必要的,因为 plugins 在安装时被复制到缓存位置。

511 * 查看[替换表](/zh-CN/plugins-reference#environment-variables)了解每个服务器类型在哪些配置字段中替换它511 * 查看[替换表](/docs/zh-CN/plugins-reference#environment-variables)了解每个服务器类型在哪些配置字段中替换它

512 * 对于应该在 plugin 更新后保留的依赖项或状态,请改用 [`${CLAUDE_PLUGIN_DATA}`](/zh-CN/plugins-reference#persistent-data-directory)512 * 对于应该在 plugin 更新后保留的依赖项或状态,请改用 [`${CLAUDE_PLUGIN_DATA}`](/docs/zh-CN/plugins-reference#persistent-data-directory)

513* **`strict: false`**:由于这设置为 false,plugin 不需要自己的 `plugin.json`。marketplace 条目定义了一切。见下面的 [Strict 模式](#strict-mode)。513* **`strict: false`**:由于这设置为 false,plugin 不需要自己的 `plugin.json`。marketplace 条目定义了一切。见下面的 [Strict 模式](#strict-mode)。

514 514 

515默认情况下,plugin 的 skills 从其 `source` 下的 `skills/` 目录加载。`skills` 字段中列出的路径添加到该扫描中:515默认情况下,plugin 的 skills 从其 `source` 下的 `skills/` 目录加载。`skills` 字段中列出的路径添加到该扫描中:


573 私有存储库573 私有存储库

574</h3>574</h3>

575 575 

576Claude Code 支持从私有存储库安装 plugins。对于手动安装和更新,Claude Code 使用你现有的 git 凭证助手,所以通过 `gh auth login`、macOS Keychain 或 `git-credential-store` 的 HTTPS 访问工作方式与你的终端中相同。SSH 访问工作,只要主机已经在你的 `known_hosts` 文件中,并且密钥已加载到 `ssh-agent` 中,因为 Claude Code 会抑制主机指纹和密钥密码的交互式 SSH 提示。GitHub `owner/repo` 简写源默认通过 SSH 克隆;设置 [`CLAUDE_CODE_PLUGIN_PREFER_HTTPS=1`](/zh-CN/env-vars#variables) 以改为通过 HTTPS 克隆它们。576Claude Code 支持从私有存储库安装 plugins。对于手动安装和更新,Claude Code 使用你现有的 git 凭证助手,所以通过 `gh auth login`、macOS Keychain 或 `git-credential-store` 的 HTTPS 访问工作方式与你的终端中相同。SSH 访问工作,只要主机已经在你的 `known_hosts` 文件中,并且密钥已加载到 `ssh-agent` 中,因为 Claude Code 会抑制主机指纹和密钥密码的交互式 SSH 提示。GitHub `owner/repo` 简写源默认通过 SSH 克隆;设置 [`CLAUDE_CODE_PLUGIN_PREFER_HTTPS=1`](/docs/zh-CN/env-vars#variables) 以改为通过 HTTPS 克隆它们。

577 577 

578后台自动更新的工作方式不同。默认情况下,后台刷新会为其 `git pull` 禁用 git 凭证助手,所以即使配置了助手,pull 也无法对 HTTPS 上的私有存储库进行身份验证。SSH 远程不受影响:加载到 `ssh-agent` 中的密钥以与手动操作相同的方式对后台 pulls 进行身份验证。当后台 pull 失败时,Claude Code 会回退到从头重新克隆 marketplace。重新克隆确实使用你存储的 git 凭证,但它可能在大型存储库上[超时](#git-operations-time-out),所以私有 marketplace 自动更新可能会间歇性失败。578后台自动更新的工作方式不同。默认情况下,后台刷新会为其 `git pull` 禁用 git 凭证助手,所以即使配置了助手,pull 也无法对 HTTPS 上的私有存储库进行身份验证。SSH 远程不受影响:加载到 `ssh-agent` 中的密钥以与手动操作相同的方式对后台 pulls 进行身份验证。当后台 pull 失败时,Claude Code 会回退到从头重新克隆 marketplace。重新克隆确实使用你存储的 git 凭证,但它可能在大型存储库上[超时](#git-operations-time-out),所以私有 marketplace 自动更新可能会间歇性失败。

579 579 


617/plugin install quality-review-plugin@my-plugins617/plugin install quality-review-plugin@my-plugins

618```618```

619 619 

620有关完整的添加命令范围(GitHub、Git URL、本地路径、远程 URL),请参阅[添加 marketplaces](/zh-CN/discover-plugins#add-marketplaces)。620有关完整的添加命令范围(GitHub、Git URL、本地路径、远程 URL),请参阅[添加 marketplaces](/docs/zh-CN/discover-plugins#add-marketplaces)。

621 621 

622<h3 id="require-marketplaces-for-your-team">622<h3 id="require-marketplaces-for-your-team">

623 为你的团队要求 marketplaces623 为你的团队要求 marketplaces


649}649}

650```650```

651 651 

652有关完整的配置选项,请参阅 [Plugin 设置](/zh-CN/settings#plugin-settings)。652有关完整的配置选项,请参阅 [Plugin 设置](/docs/zh-CN/settings#plugin-settings)。

653 653 

654<Note>654<Note>

655 如果你使用带有相对路径的本地 `directory` 或 `file` 源,路径将相对于你的存储库的主检出解析。当你从 git worktree 运行 Claude Code 时,路径仍然指向主检出,所以所有 worktrees 共享相同的 marketplace 位置。Marketplace 状态存储一次每个用户在 `~/.claude/plugins/known_marketplaces.json` 中,而不是每个项目。655 如果你使用带有相对路径的本地 `directory` 或 `file` 源,路径将相对于你的存储库的主检出解析。当你从 git worktree 运行 Claude Code 时,路径仍然指向主检出,所以所有 worktrees 共享相同的 marketplace 位置。Marketplace 状态存储一次每个用户在 `~/.claude/plugins/known_marketplaces.json` 中,而不是每个项目。


697 托管 marketplace 限制697 托管 marketplace 限制

698</h3>698</h3>

699 699 

700对于需要严格控制 plugin 源的组织,管理员可以使用托管设置中的 [`strictKnownMarketplaces`](/zh-CN/settings#strictknownmarketplaces) 设置限制用户允许添加哪些 plugin marketplaces。要同时拒绝为单次运行 sideload plugins、agents 和 MCP servers 的 CLI 标志,请将其与 [`disableSideloadFlags`](/zh-CN/settings#available-settings) 配对。要允许列表哪些 marketplaces 的 plugins 可以作为上下文安装建议出现,请设置 [`pluginSuggestionMarketplaces`](/zh-CN/settings#available-settings)。700对于需要严格控制 plugin 源的组织,管理员可以使用托管设置中的 [`strictKnownMarketplaces`](/docs/zh-CN/settings#strictknownmarketplaces) 设置限制用户允许添加哪些 plugin marketplaces。要同时拒绝为单次运行 sideload plugins、agents 和 MCP servers 的 CLI 标志,请将其与 [`disableSideloadFlags`](/docs/zh-CN/settings#available-settings) 配对。要允许列表哪些 marketplaces 的 plugins 可以作为上下文安装建议出现,请设置 [`pluginSuggestionMarketplaces`](/docs/zh-CN/settings#available-settings)。

701 701 

702当在托管设置中配置 `strictKnownMarketplaces` 时,限制行为取决于值:702当在托管设置中配置 `strictKnownMarketplaces` 时,限制行为取决于值:

703 703 


741}741}

742```742```

743 743 

744使用主机上的正则表达式模式匹配允许来自内部 git 服务器的所有 marketplaces。这是 [GitHub Enterprise Server](/zh-CN/github-enterprise-server#plugin-marketplaces-on-ghes) 或自托管 GitLab 实例的推荐方法:744使用主机上的正则表达式模式匹配允许来自内部 git 服务器的所有 marketplaces。这是 [GitHub Enterprise Server](/docs/zh-CN/github-enterprise-server#plugin-marketplaces-on-ghes) 或自托管 GitLab 实例的推荐方法:

745 745 

746```json theme={null}746```json theme={null}

747{747{


770使用 `".*"` 作为 `pathPattern` 来允许任何文件系统路径,同时仍然使用 `hostPattern` 控制网络源。770使用 `".*"` 作为 `pathPattern` 来允许任何文件系统路径,同时仍然使用 `hostPattern` 控制网络源。

771 771 

772<Note>772<Note>

773 `strictKnownMarketplaces` 限制用户可以添加的内容,但不会自行注册 marketplaces。要使允许的 marketplaces 自动可用而无需用户运行 `/plugin marketplace add`,请在同一 `managed-settings.json` 中将其与 [`extraKnownMarketplaces`](/zh-CN/settings#extraknownmarketplaces) 配对。见[同时使用两者](/zh-CN/settings#strictknownmarketplaces)。773 `strictKnownMarketplaces` 限制用户可以添加的内容,但不会自行注册 marketplaces。要使允许的 marketplaces 自动可用而无需用户运行 `/plugin marketplace add`,请在同一 `managed-settings.json` 中将其与 [`extraKnownMarketplaces`](/docs/zh-CN/settings#extraknownmarketplaces) 配对。见[同时使用两者](/docs/zh-CN/settings#strictknownmarketplaces)。

774</Note>774</Note>

775 775 

776<h4 id="how-restrictions-work">776<h4 id="how-restrictions-work">


788 788 

789精确匹配不规范化 URL:尾部斜杠、`.git` 后缀或 `ssh://` 与 `https://` 形式被视为不同的值。如果你的组织的 marketplace 可以通过多个 URL 形式克隆,优先使用 `hostPattern` 条目而不是字面 URL,以便所有形式都匹配。789精确匹配不规范化 URL:尾部斜杠、`.git` 后缀或 `ssh://` 与 `https://` 形式被视为不同的值。如果你的组织的 marketplace 可以通过多个 URL 形式克隆,优先使用 `hostPattern` 条目而不是字面 URL,以便所有形式都匹配。

790 790 

791因为 `strictKnownMarketplaces` 在[托管设置](/zh-CN/settings#settings-files)中设置,个别用户和项目配置无法覆盖这些限制。791因为 `strictKnownMarketplaces` 在[托管设置](/docs/zh-CN/settings#settings-files)中设置,个别用户和项目配置无法覆盖这些限制。

792 792 

793有关完整的配置详细信息,包括所有支持的源类型和与 `extraKnownMarketplaces` 的比较,请参阅 [strictKnownMarketplaces 参考](/zh-CN/settings#strictknownmarketplaces)。793有关完整的配置详细信息,包括所有支持的源类型和与 `extraKnownMarketplaces` 的比较,请参阅 [strictKnownMarketplaces 参考](/docs/zh-CN/settings#strictknownmarketplaces)。

794 794 

795<h3 id="version-resolution-and-release-channels">795<h3 id="version-resolution-and-release-channels">

796 版本解析和发布渠道796 版本解析和发布渠道


816 设置发布渠道816 设置发布渠道

817</h4>817</h4>

818 818 

819要为你的 plugins 支持"稳定"和"最新"发布渠道,你可以设置两个指向同一 repo 的不同 refs 或 SHAs 的 marketplaces。然后,你可以通过[托管设置](/zh-CN/settings#settings-files)将两个 marketplaces 分配给不同的用户组。819要为你的 plugins 支持"稳定"和"最新"发布渠道,你可以设置两个指向同一 repo 的不同 refs 或 SHAs 的 marketplaces。然后,你可以通过[托管设置](/docs/zh-CN/settings#settings-files)将两个 marketplaces 分配给不同的用户组。

820 820 

821<Warning>821<Warning>

822 每个渠道必须解析为不同的版本。如果你使用显式版本,`plugin.json` 必须在每个固定的 ref 处声明不同的 `version`。如果你省略 `version`,不同的提交 SHA 已经区分了渠道。如果两个 refs 解析为相同的版本字符串,Claude Code 会将它们视为相同并跳过更新。822 每个渠道必须解析为不同的版本。如果你使用显式版本,`plugin.json` 必须在每个固定的 ref 处声明不同的 `version`。如果你省略 `version`,不同的提交 SHA 已经区分了渠道。如果两个 refs 解析为相同的版本字符串,Claude Code 会将它们视为相同并跳过更新。


896 固定依赖版本896 固定依赖版本

897</h4>897</h4>

898 898 

899Plugin 可以将其依赖约束到 semver 范围,以便对依赖的更新不会破坏依赖的 plugin。有关 `{plugin-name}--v{version}` git 标签约定、范围语法以及如何组合对同一依赖的多个约束,请参阅[约束 plugin 依赖版本](/zh-CN/plugin-dependencies)。899Plugin 可以将其依赖约束到 semver 范围,以便对依赖的更新不会破坏依赖的 plugin。有关 `{plugin-name}--v{version}` git 标签约定、范围语法以及如何组合对同一依赖的多个约束,请参阅[约束 plugin 依赖版本](/docs/zh-CN/plugin-dependencies)。

900 900 

901<h3 id="rename-or-remove-a-plugin">901<h3 id="rename-or-remove-a-plugin">

902 重命名或删除 plugin902 重命名或删除 plugin


966/plugin install test-plugin@marketplace-name966/plugin install test-plugin@marketplace-name

967```967```

968 968 

969有关完整的 plugin 测试工作流,请参阅[本地测试你的 plugins](/zh-CN/plugins#test-your-plugins-locally)。有关技术故障排除,请参阅 [Plugins 参考](/zh-CN/plugins-reference)。969有关完整的 plugin 测试工作流,请参阅[本地测试你的 plugins](/docs/zh-CN/plugins#test-your-plugins-locally)。有关技术故障排除,请参阅 [Plugins 参考](/docs/zh-CN/plugins-reference)。

970 970 

971<h2 id="manage-marketplaces-from-the-cli">971<h2 id="manage-marketplaces-from-the-cli">

972 从 CLI 管理 marketplaces972 从 CLI 管理 marketplaces


994 994 

995| 选项 | 描述 | 默认值 |995| 选项 | 描述 | 默认值 |

996| :-------------------- | :----------------------------------------------------------------------------------------------------------------- | :----- |996| :-------------------- | :----------------------------------------------------------------------------------------------------------------- | :----- |

997| `--scope <scope>` | 声明 marketplace 的位置:`user`、`project` 或 `local`。见 [Plugin 安装范围](/zh-CN/plugins-reference#plugin-installation-scopes) | `user` |997| `--scope <scope>` | 声明 marketplace 的位置:`user`、`project` 或 `local`。见 [Plugin 安装范围](/docs/zh-CN/plugins-reference#plugin-installation-scopes) | `user` |

998| `--sparse <paths...>` | 通过 git sparse-checkout 限制检出到特定目录。对 monorepos 有用 | |998| `--sparse <paths...>` | 通过 git sparse-checkout 限制检出到特定目录。对 monorepos 有用 | |

999 999 

1000从 GitHub 使用 `owner/repo` 简写添加 marketplace:1000从 GitHub 使用 `owner/repo` 简写添加 marketplace:


1075 1075 

1076| 选项 | 描述 | 默认值 |1076| 选项 | 描述 | 默认值 |

1077| :---------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :----- |1077| :---------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :----- |

1078| `--scope <scope>` | 限制删除到单个设置范围:`user`、`project` 或 `local`。见 [Plugin 安装范围](/zh-CN/plugins-reference#plugin-installation-scopes)。省略时,声明从每个可编辑的范围中删除。给定时,仅删除该范围的声明;当 marketplace 仍在另一个范围中声明时,共享状态、缓存和已安装的 plugin 数据将被保留 | (所有范围) |1078| `--scope <scope>` | 限制删除到单个设置范围:`user`、`project` 或 `local`。见 [Plugin 安装范围](/docs/zh-CN/plugins-reference#plugin-installation-scopes)。省略时,声明从每个可编辑的范围中删除。给定时,仅删除该范围的声明;当 marketplace 仍在另一个范围中声明时,共享状态、缓存和已安装的 plugin 数据将被保留 | (所有范围) |

1079 1079 

1080<Warning>1080<Warning>

1081 从其最后剩余的范围中删除 marketplace 也会卸载你从它安装的任何 plugins。要刷新 marketplace 而不丢失已安装的 plugins,请改用 `claude plugin marketplace update`。1081 从其最后剩余的范围中删除 marketplace 也会卸载你从它安装的任何 plugins。要刷新 marketplace 而不丢失已安装的 plugins,请改用 `claude plugin marketplace update`。


1236 1236 

1237**原因**:Plugins 被复制到缓存目录而不是就地使用。引用 plugin 目录外文件的路径(如 `../shared-utils`)不会工作,因为这些文件不会被复制。1237**原因**:Plugins 被复制到缓存目录而不是就地使用。引用 plugin 目录外文件的路径(如 `../shared-utils`)不会工作,因为这些文件不会被复制。

1238 1238 

1239**解决方案**:见 [Plugin 缓存和文件解析](/zh-CN/plugins-reference#plugin-caching-and-file-resolution) 了解解决方法,包括符号链接和目录重组。1239**解决方案**:见 [Plugin 缓存和文件解析](/docs/zh-CN/plugins-reference#plugin-caching-and-file-resolution) 了解解决方法,包括符号链接和目录重组。

1240 1240 

1241有关其他调试工具和常见问题,请参阅[调试和开发工具](/zh-CN/plugins-reference#debugging-and-development-tools)。1241有关其他调试工具和常见问题,请参阅[调试和开发工具](/docs/zh-CN/plugins-reference#debugging-and-development-tools)。

1242 1242 

1243<h2 id="see-also">1243<h2 id="see-also">

1244 另见1244 另见

1245</h2>1245</h2>

1246 1246 

1247* [发现和安装预构建的 plugins](/zh-CN/discover-plugins) - 从现有 marketplaces 安装 plugins1247* [发现和安装预构建的 plugins](/docs/zh-CN/discover-plugins) - 从现有 marketplaces 安装 plugins

1248* [Plugins](/zh-CN/plugins) - 创建你自己的 plugins1248* [Plugins](/docs/zh-CN/plugins) - 创建你自己的 plugins

1249* [Plugins 参考](/zh-CN/plugins-reference) - 完整的技术规范和架构1249* [Plugins 参考](/docs/zh-CN/plugins-reference) - 完整的技术规范和架构

1250* [Plugin 设置](/zh-CN/settings#plugin-settings) - Plugin 配置选项1250* [Plugin 设置](/docs/zh-CN/settings#plugin-settings) - Plugin 配置选项

1251* [strictKnownMarketplaces 参考](/zh-CN/settings#strictknownmarketplaces) - 托管 marketplace 限制1251* [strictKnownMarketplaces 参考](/docs/zh-CN/settings#strictknownmarketplaces) - 托管 marketplace 限制

Details

8 8 

9如果您为组织运营插件marketplace,您可以根据用户正在处理的内容让Claude Code向用户建议特定的插件。向`marketplace.json`中的插件条目添加`relevance`块,然后在托管设置中将marketplace加入允许列表。当用户的会话与声明的信号之一匹配时,Claude Code会显示该插件的安装建议。9如果您为组织运营插件marketplace,您可以根据用户正在处理的内容让Claude Code向用户建议特定的插件。向`marketplace.json`中的插件条目添加`relevance`块,然后在托管设置中将marketplace加入允许列表。当用户的会话与声明的信号之一匹配时,Claude Code会显示该插件的安装建议。

10 10 

11Marketplace声明的建议通过[托管设置](/zh-CN/settings#settings-files)按marketplace选择加入。在管理员将任何marketplace添加到允许列表之前,没有marketplace的`relevance`声明会产生建议,包括官方Anthropic marketplace。Claude Code还包括一个独立于此允许列表的内置建议;当[`spinnerTipsEnabled`](/zh-CN/settings#available-settings)设置为`false`时,该提示和所有marketplace声明的提示都会被禁用。11Marketplace声明的建议通过[托管设置](/docs/zh-CN/settings#settings-files)按marketplace选择加入。在管理员将任何marketplace添加到允许列表之前,没有marketplace的`relevance`声明会产生建议,包括官方Anthropic marketplace。Claude Code还包括一个独立于此允许列表的内置建议;当[`spinnerTipsEnabled`](/docs/zh-CN/settings#available-settings)设置为`false`时,该提示和所有marketplace声明的提示都会被禁用。

12 12 

13{/* min-version: 2.1.152 */}此功能需要Claude Code v2.1.152或更高版本。较旧的客户端会忽略`relevance`字段。13此功能需要Claude Code v2.1.152或更高版本。较旧的客户端会忽略`relevance`字段。

14 14 

15此页面适用于marketplace运营商和企业管理员。如果您想要安装插件,请参阅[发现和安装插件](/zh-CN/discover-plugins)。15此页面适用于marketplace运营商和企业管理员。如果您想要安装插件,请参阅[发现和安装插件](/docs/zh-CN/discover-plugins)。

16 16 

17<h2 id="how-it-works">17<h2 id="how-it-works">

18 工作原理18 工作原理


25当信号匹配且插件尚未安装时,Claude Code会在三个位置显示该插件:25当信号匹配且插件尚未安装时,Claude Code会在三个位置显示该插件:

26 26 

27* **Spinner提示**:当Claude正在响应时,spinner下方会显示"使用\_topic\_?安装\_plugin\_插件"消息,附带`/plugin install`命令。27* **Spinner提示**:当Claude正在响应时,spinner下方会显示"使用\_topic\_?安装\_plugin\_插件"消息,附带`/plugin install`命令。

28* **会话启动建议**:{/* min-version: 2.1.153 */}如果`cwd`信号与工作目录匹配,在第一轮之前会显示一行`plugin suggestion: <name>@<marketplace> · /plugin`通知。此表面需要Claude Code v2.1.153或更高版本。28* **会话启动建议**:如果`cwd`信号与工作目录匹配,在第一轮之前会显示一行`plugin suggestion: <name>@<marketplace> · /plugin`通知。此表面需要Claude Code v2.1.153或更高版本。

29* **`/plugin` Discover标签页**:{/* min-version: 2.1.154 */}插件被固定在Discover列表的顶部,带有"为此目录建议"或"为stripe命令建议"之类的注释。此表面需要Claude Code v2.1.154或更高版本。29* **`/plugin` Discover标签页**:插件被固定在Discover列表的顶部,带有"为此目录建议"或"为stripe命令建议"之类的注释。此表面需要Claude Code v2.1.154或更高版本。

30 30 

31Spinner提示和会话启动通知是spinner提示系统的一部分。当用户或项目将`spinnerTipsEnabled`设置为`false`,或当配置了带有`excludeDefault`的自定义`spinnerTipsOverride`时,两者都会被禁用。Discover标签页的固定独立于提示设置。31Spinner提示和会话启动通知是spinner提示系统的一部分。当用户或项目将`spinnerTipsEnabled`设置为`false`,或当配置了带有`excludeDefault`的自定义`spinnerTipsOverride`时,两者都会被禁用。Discover标签页的固定独立于提示设置。

32 32 


80 80 

81| 字段 | 类型 | 描述 |81| 字段 | 类型 | 描述 |

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

83| `cwd` | array of strings | {/* min-version: 2.1.153 */}与会话工作目录匹配的Glob模式。作为绝对路径匹配,当在git存储库内时,作为相对于存储库根目录的路径匹配。正斜杠规范化且不区分大小写。每个模式都匹配目录本身及其下的所有内容,因此`infra`、`infra/`和`infra/**`的行为相同。这是唯一可以在会话启动时(第一轮之前)匹配的信号。最多10个模式,每个256个字符。 |83| `cwd` | array of strings | 与会话工作目录匹配的Glob模式。作为绝对路径匹配,当在git存储库内时,作为相对于存储库根目录的路径匹配。正斜杠规范化且不区分大小写。每个模式都匹配目录本身及其下的所有内容,因此`infra`、`infra/`和`infra/**`的行为相同。这是唯一可以在会话启动时(第一轮之前)匹配的信号。最多10个模式,每个256个字符。 |

84| `cli` | array of strings | Claude在此会话中运行的shell命令中的命令名称,例如`["stripe"]`。适用于每个平台:在Windows上通过PowerShell或Git Bash运行的命令以相同方式记录。Claude Code每个shell工具调用记录一个命令名称:任何前导环境变量赋值和`sudo`之后的第一个令牌。复合命令仅贡献其前导命令,因此`cd infra && terraform plan`记录`cd`,而不是`terraform`。精确匹配。最多10个条目,每个64个字符。 |84| `cli` | array of strings | Claude在此会话中运行的shell命令中的命令名称,例如`["stripe"]`。适用于每个平台:在Windows上通过PowerShell或Git Bash运行的命令以相同方式记录。Claude Code每个shell工具调用记录一个命令名称:任何前导环境变量赋值和`sudo`之后的第一个令牌。复合命令仅贡献其前导命令,因此`cd infra && terraform plan`记录`cd`,而不是`terraform`。精确匹配。最多10个条目,每个64个字符。 |

85| `hosts` | array of strings | 此会话中Bash命令中`http://`或`https://` URL中看到的主机名,例如`["api.stripe.com"]`。仅限裸小写主机名:无方案、端口或路径。精确不区分大小写匹配。最多20个条目,每个128个字符。 |85| `hosts` | array of strings | 此会话中Bash命令中`http://`或`https://` URL中看到的主机名,例如`["api.stripe.com"]`。仅限裸小写主机名:无方案、端口或路径。精确不区分大小写匹配。最多20个条目,每个128个字符。 |

86| `filesRead` | array of strings | {/* min-version: 2.1.153 */}与Claude在此会话中读取的文件路径匹配的Glob模式,例如`["**/*.tf"]`。正斜杠规范化且不区分大小写。最多10个模式,每个256个字符。 |86| `filesRead` | array of strings | 与Claude在此会话中读取的文件路径匹配的Glob模式,例如`["**/*.tf"]`。正斜杠规范化且不区分大小写。最多10个模式,每个256个字符。 |

87| `manifestDeps` | array of objects | Claude在此会话中读取的包清单中声明的依赖项。每个条目是`{ "file": "...", "pattern": "..." }`,其中`file`是与清单文件路径匹配的正则表达式(如会话状态中记录的,通常是绝对路径),`pattern`是与该文件内容匹配的正则表达式。在末尾锚定`file`,例如JSON转义形式中的`[/\\\\]package\\.json$`,因为起始锚定的模式永远不会匹配绝对路径。路径对于此信号不进行分隔符规范化,因此Windows路径使用反斜杠。大于512 KB的清单文件会被跳过。两个值都是最多256个字符的JavaScript `RegExp`源字符串。`file`不区分大小写匹配。`pattern`区分大小写。最多10个条目。 |87| `manifestDeps` | array of objects | Claude在此会话中读取的包清单中声明的依赖项。每个条目是`{ "file": "...", "pattern": "..." }`,其中`file`是与清单文件路径匹配的正则表达式(如会话状态中记录的,通常是绝对路径),`pattern`是与该文件内容匹配的正则表达式。在末尾锚定`file`,例如JSON转义形式中的`[/\\\\]package\\.json$`,因为起始锚定的模式永远不会匹配绝对路径。路径对于此信号不进行分隔符规范化,因此Windows路径使用反斜杠。大于512 KB的清单文件会被跳过。两个值都是最多256个字符的JavaScript `RegExp`源字符串。`file`不区分大小写匹配。`pattern`区分大小写。最多10个条目。 |

88 88 

89`cli`、`hosts`、`filesRead`和`manifestDeps`信号需要会话历史记录,因此它们只能在spinner提示和Discover标签页上匹配。只有`cwd`可以在会话启动时匹配。`filesRead`和`manifestDeps`信号测试会话的记录文件状态,其中还包括Claude已写入或编辑的文件以及自动加载的`CLAUDE.md`内存文件。89`cli`、`hosts`、`filesRead`和`manifestDeps`信号需要会话历史记录,因此它们只能在spinner提示和Discover标签页上匹配。只有`cwd`可以在会话启动时匹配。`filesRead`和`manifestDeps`信号测试会话的记录文件状态,其中还包括Claude已写入或编辑的文件以及自动加载的`CLAUDE.md`内存文件。


116 在托管设置中启用建议116 在托管设置中启用建议

117</h2>117</h2>

118 118 

119在`marketplace.json`中声明`relevance`本身是不够的。管理员必须在[托管设置](/zh-CN/settings#settings-files)中将marketplace加入允许列表,其建议才会显示给用户。119在`marketplace.json`中声明`relevance`本身是不够的。管理员必须在[托管设置](/docs/zh-CN/settings#settings-files)中将marketplace加入允许列表,其建议才会显示给用户。

120 120 

121将marketplace名称添加到`pluginSuggestionMarketplaces`。对于官方Anthropic marketplace以外的任何marketplace,还要在同一托管设置中声明marketplace源,要么作为该名称在`extraKnownMarketplaces`中的条目,要么作为`strictKnownMarketplaces`中的条目。如果在机器上注册的marketplace来自不同的源,则忽略允许列表中的名称。这可以防止无关的源以允许列表中的名称注册,以便在您的组织中建议其插件。121将marketplace名称添加到`pluginSuggestionMarketplaces`。对于官方Anthropic marketplace以外的任何marketplace,还要在同一托管设置中声明marketplace源,要么作为该名称在`extraKnownMarketplaces`中的条目,要么作为`strictKnownMarketplaces`中的条目。如果在机器上注册的marketplace来自不同的源,则忽略允许列表中的名称。这可以防止无关的源以允许列表中的名称注册,以便在您的组织中建议其插件。

122 122 


144}144}

145```145```

146 146 

147有关`pluginSuggestionMarketplaces`和[`extraKnownMarketplaces`](/zh-CN/settings#extraknownmarketplaces)的完整配置详情,请参阅[设置参考](/zh-CN/settings)。147有关`pluginSuggestionMarketplaces`和[`extraKnownMarketplaces`](/docs/zh-CN/settings#extraknownmarketplaces)的完整配置详情,请参阅[设置参考](/docs/zh-CN/settings)。

148 148 

149<h2 id="what-the-user-sees">149<h2 id="what-the-user-sees">

150 用户看到的内容150 用户看到的内容


165 165 

166给定插件的建议在spinner提示和会话启动通知的组合中最多每三个会话出现一次,一旦插件被安装,两者都不会重复。会话启动通知在建议显示两次后还会停止出现。166给定插件的建议在spinner提示和会话启动通知的组合中最多每三个会话出现一次,一旦插件被安装,两者都不会重复。会话启动通知在建议显示两次后还会停止出现。

167 167 

168{/* min-version: 2.1.154 */}在`/plugin` Discover标签页中,插件被固定在其他结果上方,带有命名匹配信号的注释,例如`suggested for this directory`或`suggested for terraform commands`。Discover标签页固定给定插件一次;后续访问以正常顺序列出它。Discover标签页固定需要Claude Code v2.1.154或更高版本。在v2.1.152上仅显示spinner提示;会话启动通知在v2.1.153中添加。168在`/plugin` Discover标签页中,插件被固定在其他结果上方,带有命名匹配信号的注释,例如`suggested for this directory`或`suggested for terraform commands`。Discover标签页固定给定插件一次;后续访问以正常顺序列出它。Discover标签页固定需要Claude Code v2.1.154或更高版本。在v2.1.152上仅显示spinner提示;会话启动通知在v2.1.153中添加。

169 169 

170<h2 id="validate-your-marketplace">170<h2 id="validate-your-marketplace">

171 验证您的marketplace171 验证您的marketplace


183 另请参阅183 另请参阅

184</h2>184</h2>

185 185 

186* [创建和分发插件marketplace](/zh-CN/plugin-marketplaces):构建托管您的插件的marketplace186* [创建和分发插件marketplace](/docs/zh-CN/plugin-marketplaces):构建托管您的插件的marketplace

187* [从您的CLI推荐您的插件](/zh-CN/plugin-hints):从您自己的CLI而不是Claude Code的会话信号提示用户187* [从您的CLI推荐您的插件](/docs/zh-CN/plugin-hints):从您自己的CLI而不是Claude Code的会话信号提示用户

188* [设置](/zh-CN/settings):`pluginSuggestionMarketplaces`和`extraKnownMarketplaces`的完整参考188* [设置](/docs/zh-CN/settings):`pluginSuggestionMarketplaces`和`extraKnownMarketplaces`的完整参考

Details

515| 字段 | 类型 | 描述 | 示例 |515| 字段 | 类型 | 描述 | 示例 |

516| :--------------- | :------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------- |516| :--------------- | :------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------- |

517| `$schema` | string | 用于编辑器自动完成和验证的 JSON Schema URL。Claude Code 在加载时忽略此字段。 | `"https://json.schemastore.org/claude-code-plugin-manifest.json"` |517| `$schema` | string | 用于编辑器自动完成和验证的 JSON Schema URL。Claude Code 在加载时忽略此字段。 | `"https://json.schemastore.org/claude-code-plugin-manifest.json"` |

518| `displayName` | string | {/* min-version: 2.1.143 */}在 `/plugin` 选择器和其他 UI 界面中显示的人类可读名称。当省略时回退到 `name`。与 `name` 不同,可以包含空格和任何大小写。不用于命名空间或查找。需要 Claude Code v2.1.143 或更高版本。 | `"Deployment Tools"` |518| `displayName` | string | 在 `/plugin` 选择器和其他 UI 界面中显示的人类可读名称。当省略时回退到 `name`。与 `name` 不同,可以包含空格和任何大小写。不用于命名空间或查找。需要 Claude Code v2.1.143 或更高版本。 | `"Deployment Tools"` |

519| `version` | string | 可选。语义版本。设置此项会将 plugin 固定到该版本字符串,因此用户仅在您提升版本时才会收到更新。如果省略,Claude Code 会回退到 git commit SHA,因此每个 commit 都被视为新版本。如果也在市场条目中设置,`plugin.json` 优先。请参阅[版本管理](#version-management)。 | `"2.1.0"` |519| `version` | string | 可选。语义版本。设置此项会将 plugin 固定到该版本字符串,因此用户仅在您提升版本时才会收到更新。如果省略,Claude Code 会回退到 git commit SHA,因此每个 commit 都被视为新版本。如果也在市场条目中设置,`plugin.json` 优先。请参阅[版本管理](#version-management)。 | `"2.1.0"` |

520| `description` | string | plugin 目的的简要说明 | `"Deployment automation tools"` |520| `description` | string | plugin 目的的简要说明 | `"Deployment automation tools"` |

521| `author` | object | 作者信息 | `{"name": "Dev Team", "email": "dev@company.com"}` |521| `author` | object | 作者信息 | `{"name": "Dev Team", "email": "dev@company.com"}` |


523| `repository` | string | 源代码 URL | `"https://github.com/user/plugin"` |523| `repository` | string | 源代码 URL | `"https://github.com/user/plugin"` |

524| `license` | string | 许可证标识符 | `"MIT"`、`"Apache-2.0"` |524| `license` | string | 许可证标识符 | `"MIT"`、`"Apache-2.0"` |

525| `keywords` | array | 发现标签 | `["deployment", "ci-cd"]` |525| `keywords` | array | 发现标签 | `["deployment", "ci-cd"]` |

526| `defaultEnabled` | boolean | {/* min-version: 2.1.154 */}当用户未设置时,plugin 是否在启用状态下启动。默认为 `true`。请参阅[默认启用](#default-enablement)。需要 Claude Code v2.1.154 或更高版本。 | `false` |526| `defaultEnabled` | boolean | 当用户未设置时,plugin 是否在启用状态下启动。默认为 `true`。请参阅[默认启用](#default-enablement)。需要 Claude Code v2.1.154 或更高版本。 | `false` |

527 527 

528<h3 id="default-enablement">528<h3 id="default-enablement">

529 默认启用529 默认启用


612 612 

613在 v2.1.207 之前,这些字段替换了 `${user_config.KEY}` 值;更新依赖此功能的 plugins。613在 v2.1.207 之前,这些字段替换了 `${user_config.KEY}` 值;更新依赖此功能的 plugins。

614 614 

615非敏感值存储在 `settings.json` 中的 [`pluginConfigs`](/docs/zh-CN/settings#pluginconfigs) 键下,作为 `pluginConfigs[<plugin-id>].options`。{/* min-version: 2.1.207 */}Claude Code 将键写入用户设置并从用户设置、`--settings` 标志和托管设置中读取它;项目的 `.claude/settings.json` 或 `.claude/settings.local.json` 中的条目被忽略。在 v2.1.207 之前,Claude Code 也读取项目和本地设置。615非敏感值存储在 `settings.json` 中的 [`pluginConfigs`](/docs/zh-CN/settings#pluginconfigs) 键下,作为 `pluginConfigs[<plugin-id>].options`。Claude Code 将键写入用户设置并从用户设置、`--settings` 标志和托管设置中读取它;项目的 `.claude/settings.json` 或 `.claude/settings.local.json` 中的条目被忽略。在 v2.1.207 之前,Claude Code 也读取项目和本地设置。

616 616 

617敏感值进入 macOS Keychain,或在没有支持的钥匙链的平台上进入 `~/.claude/.credentials.json`。钥匙链存储与 OAuth 令牌共享,总限制约为 2 KB,因此请保持敏感值较小。617敏感值进入 macOS Keychain,或在没有支持的钥匙链的平台上进入 `~/.claude/.credentials.json`。钥匙链存储与 OAuth 令牌共享,总限制约为 2 KB,因此请保持敏感值较小。

618 618 

Details

116 116 

117例外是提供 [MCP 服务器](/docs/zh-CN/plugins-reference#mcp-servers)的插件。启用或禁用一个遵循与[连接或断开 MCP 服务器](#connecting-or-disconnecting-an-mcp-server)相同的规则:当服务器的工具被延迟时缓存保存,当它们加载到前缀中时下一个请求重新读取整个对话。117例外是提供 [MCP 服务器](/docs/zh-CN/plugins-reference#mcp-servers)的插件。启用或禁用一个遵循与[连接或断开 MCP 服务器](#connecting-or-disconnecting-an-mcp-server)相同的规则:当服务器的工具被延迟时缓存保存,当它们加载到前缀中时下一个请求重新读取整个对话。

118 118 

119插件更改在您运行 [`/reload-plugins`](/docs/zh-CN/discover-plugins#apply-plugin-changes-without-restarting) 或启动新会话时应用。成本(无论是附加的公告还是完整的重新读取)显示在重新加载后的第一个回合,而不是当您运行 `/plugin install`、`/plugin enable` 或 `/plugin disable` 时。{/* min-version: 2.1.163 */}从 v2.1.163 开始,当重新加载会触发完整重新读取时,`/reload-plugins` 会显示警告并不应用重新加载。传递 `--force` 以强制应用。119插件更改在您运行 [`/reload-plugins`](/docs/zh-CN/discover-plugins#apply-plugin-changes-without-restarting) 或启动新会话时应用。成本(无论是附加的公告还是完整的重新读取)显示在重新加载后的第一个回合,而不是当您运行 `/plugin install`、`/plugin enable` 或 `/plugin disable` 时。从 v2.1.163 开始,当重新加载会触发完整重新读取时,`/reload-plugins` 会显示警告并不应用重新加载。传递 `--force` 以强制应用。

120 120 

121禁用您在会话早期启用的插件会恢复之前的请求形状。如果该前缀仍在其[缓存生命周期](#cache-lifetime)内,下一个请求读取较旧的缓存条目而不是重建。121禁用您在会话早期启用的插件会恢复之前的请求形状。如果该前缀仍在其[缓存生命周期](#cache-lifetime)内,下一个请求读取较旧的缓存条目而不是重建。

122 122 

remote-control.md +38 −38

Details

14 14 

15当您在机器上启动 Remote Control 会话时,Claude 始终在本地运行,因此您的代码执行和文件系统访问保留在您的机器上。使用 Remote Control,您可以:15当您在机器上启动 Remote Control 会话时,Claude 始终在本地运行,因此您的代码执行和文件系统访问保留在您的机器上。使用 Remote Control,您可以:

16 16 

17* **远程使用您的完整本地环境**:您的文件系统、[MCP servers](/zh-CN/mcp)、工具和项目配置都保持可用,输入 `@` 会自动完成本地项目中的文件路径17* **远程使用您的完整本地环境**:您的文件系统、[MCP servers](/docs/zh-CN/mcp)、工具和项目配置都保持可用,输入 `@` 会自动完成本地项目中的文件路径

18* **同时从两个界面工作**:对话和 [subagents](/zh-CN/sub-agents) 和 [dynamic workflows](/zh-CN/workflows) 的进度在所有连接的设备上保持同步,因此您可以从终端、浏览器和手机交替发送消息。{/* min-version: 2.1.207 */}在 v2.1.207 之前,由 [Desktop app](/zh-CN/desktop) 托管的会话不会将 subagent 或工作流进度发送到连接的设备。18* **同时从两个界面工作**:对话和 [subagents](/docs/zh-CN/sub-agents) 和 [dynamic workflows](/docs/zh-CN/workflows) 的进度在所有连接的设备上保持同步,因此您可以从终端、浏览器和手机交替发送消息。在 v2.1.207 之前,由 [Desktop app](/docs/zh-CN/desktop) 托管的会话不会将 subagent 或工作流进度发送到连接的设备。

19* **从您的手机或浏览器发送图像和文件**:当您在 Claude 应用或 claude.ai/code 中添加附件时,Claude Code 会将其下载到您的机器并将其作为 `@` 文件引用传递给 Claude,可以带有或不带有标题。{/* min-version: 2.1.202 */}在 v2.1.202 之前,Claude Code 可能会在不带标题的附件到达会话之前将其丢弃。19* **从您的手机或浏览器发送图像和文件**:当您在 Claude 应用或 claude.ai/code 中添加附件时,Claude Code 会将其下载到您的机器并将其作为 `@` 文件引用传递给 Claude,可以带有或不带有标题。在 v2.1.202 之前,Claude Code 可能会在不带标题的附件到达会话之前将其丢弃。

20* **在中断后恢复**:如果您的笔记本电脑进入睡眠状态或网络断开,当您的机器重新上线时,会话会自动重新连接。Claude Code 在连接重建时对 subagents 和工作流的状态更新进行排队,并在恢复后传递它们。{/* min-version: 2.1.207 */}在 v2.1.207 之前,在重新连接或凭证刷新期间发送的更新可能会丢失,因此连接的设备会继续将已完成的任务显示为正在运行。20* **在中断后恢复**:如果您的笔记本电脑进入睡眠状态或网络断开,当您的机器重新上线时,会话会自动重新连接。Claude Code 在连接重建时对 subagents 和工作流的状态更新进行排队,并在恢复后传递它们。在 v2.1.207 之前,在重新连接或凭证刷新期间发送的更新可能会丢失,因此连接的设备会继续将已完成的任务显示为正在运行。

21 21 

22与[网络上的 Claude Code](/zh-CN/claude-code-on-the-web)(在云基础设施上运行)不同,Remote Control 会话直接在您的机器上运行并与您的本地文件系统交互。网络和移动界面只是该本地会话的一个窗口。22与[网络上的 Claude Code](/docs/zh-CN/claude-code-on-the-web)(在云基础设施上运行)不同,Remote Control 会话直接在您的机器上运行并与您的本地文件系统交互。网络和移动界面只是该本地会话的一个窗口。

23 23 

24本页涵盖设置、如何启动和连接到会话,以及 Remote Control 与网络上的 Claude Code 的比较。24本页涵盖设置、如何启动和连接到会话,以及 Remote Control 与网络上的 Claude Code 的比较。

25 25 


31 31 

32* **订阅**:在 Pro、Max、Team 和 Enterprise 计划中可用。不支持 API 密钥。在 Team 和 Enterprise 上,Owner 必须首先在 [Claude Code 管理员设置](https://claude.ai/admin-settings/claude-code)中启用 Remote Control 切换。32* **订阅**:在 Pro、Max、Team 和 Enterprise 计划中可用。不支持 API 密钥。在 Team 和 Enterprise 上,Owner 必须首先在 [Claude Code 管理员设置](https://claude.ai/admin-settings/claude-code)中启用 Remote Control 切换。

33* **身份验证**:运行 `claude` 并使用 `/login` 通过 claude.ai 登录(如果您还没有登录)。33* **身份验证**:运行 `claude` 并使用 `/login` 通过 claude.ai 登录(如果您还没有登录)。

34* **API 端点**:在 Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry 上不可用。{/* min-version: 2.1.196 */}从 v2.1.196 开始,当 [`ANTHROPIC_BASE_URL`](/zh-CN/env-vars) 指向 `api.anthropic.com` 以外的主机(例如 [LLM gateway](/zh-CN/llm-gateway) 或代理)时,Remote Control 也会被禁用。取消设置该变量以使用 Remote Control。34* **API 端点**:在 Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry 上不可用。从 v2.1.196 开始,当 [`ANTHROPIC_BASE_URL`](/docs/zh-CN/env-vars) 指向 `api.anthropic.com` 以外的主机(例如 [LLM gateway](/docs/zh-CN/llm-gateway) 或代理)时,Remote Control 也会被禁用。取消设置该变量以使用 Remote Control。

35* **工作区信任**:在您的项目目录中至少运行一次 `claude` 以接受工作区信任对话框。35* **工作区信任**:在您的项目目录中至少运行一次 `claude` 以接受工作区信任对话框。

36 36 

37<h2 id="start-a-remote-control-session">37<h2 id="start-a-remote-control-session">


56 | ----------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |56 | ----------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

57 | `--name "My Project"` | 设置自定义会话标题,在 claude.ai/code 的会话列表中可见。 |57 | `--name "My Project"` | 设置自定义会话标题,在 claude.ai/code 的会话列表中可见。 |

58 | `--remote-control-session-name-prefix <prefix>` | 未设置显式名称时自动生成的会话名称的前缀。默认为您的机器的主机名,生成类似 `myhost-graceful-unicorn` 的名称。设置 `CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX` 以获得相同效果。 |58 | `--remote-control-session-name-prefix <prefix>` | 未设置显式名称时自动生成的会话名称的前缀。默认为您的机器的主机名,生成类似 `myhost-graceful-unicorn` 的名称。设置 `CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX` 以获得相同效果。 |

59 | `-c`, `--continue` | {/* min-version: 2.1.200 */}恢复从此目录启动的最近的 Remote Control 会话,而不是创建新会话。不能与 `--session-id`、`--spawn`、`--capacity` 或 `--create-session-in-dir` 结合使用。需要 Claude Code v2.1.200 或更高版本;早期版本会将该标志拒绝为未知参数。 |59 | `-c`, `--continue` | 恢复从此目录启动的最近的 Remote Control 会话,而不是创建新会话。不能与 `--session-id`、`--spawn`、`--capacity` 或 `--create-session-in-dir` 结合使用。需要 Claude Code v2.1.200 或更高版本;早期版本会将该标志拒绝为未知参数。 |

60 | `--session-id <id>` | {/* min-version: 2.1.200 */}通过其 ID 恢复特定的 Remote Control 会话。不能与 `--continue`、`--spawn`、`--capacity` 或 `--create-session-in-dir` 结合使用。需要 Claude Code v2.1.200 或更高版本;早期版本会将该标志拒绝为未知参数。 |60 | `--session-id <id>` | 通过其 ID 恢复特定的 Remote Control 会话。不能与 `--continue`、`--spawn`、`--capacity` 或 `--create-session-in-dir` 结合使用。需要 Claude Code v2.1.200 或更高版本;早期版本会将该标志拒绝为未知参数。 |

61 | `--spawn <mode>` | 服务器如何创建会话。<br />• `same-dir`(默认):所有会话共享当前工作目录,因此如果编辑相同的文件可能会冲突。<br />• `worktree`:每个按需会话都获得自己的 [git worktree](/zh-CN/worktrees)。需要 git 存储库。<br />• `session`:单会话模式。恰好提供一个会话并拒绝其他连接。仅在启动时设置。<br />在运行时按 `w` 在 `same-dir` 和 `worktree` 之间切换。 |61 | `--spawn <mode>` | 服务器如何创建会话。<br />• `same-dir`(默认):所有会话共享当前工作目录,因此如果编辑相同的文件可能会冲突。<br />• `worktree`:每个按需会话都获得自己的 [git worktree](/docs/zh-CN/worktrees)。需要 git 存储库。<br />• `session`:单会话模式。恰好提供一个会话并拒绝其他连接。仅在启动时设置。<br />在运行时按 `w` 在 `same-dir` 和 `worktree` 之间切换。 |

62 | `--capacity <N>` | 最大并发会话数。默认为 32。不能与 `--spawn=session` 一起使用。 |62 | `--capacity <N>` | 最大并发会话数。默认为 32。不能与 `--spawn=session` 一起使用。 |

63 | `--[no-]create-session-in-dir` | 在服务器启动时在当前目录中预创建一个会话,以便您有地方立即输入。在 `worktree` 模式下,此会话保留在当前目录中,而按需会话获得隔离的 worktrees。默认启用;传递 `--no-create-session-in-dir` 以不创建任何会话启动。 |63 | `--[no-]create-session-in-dir` | 在服务器启动时在当前目录中预创建一个会话,以便您有地方立即输入。在 `worktree` 模式下,此会话保留在当前目录中,而按需会话获得隔离的 worktrees。默认启用;传递 `--no-create-session-in-dir` 以不创建任何会话启动。 |

64 | `--verbose` | 显示详细的连接和会话日志。 |64 | `--verbose` | 显示详细的连接和会话日志。 |

65 | `--sandbox` / `--no-sandbox` | 启用或禁用[沙箱](/zh-CN/sandboxing)以进行文件系统和网络隔离。默认关闭。 |65 | `--sandbox` / `--no-sandbox` | 启用或禁用[沙箱](/docs/zh-CN/sandboxing)以进行文件系统和网络隔离。默认关闭。 |

66 </Tab>66 </Tab>

67 67 

68 <Tab title="交互式会话">68 <Tab title="交互式会话">


100 </Tab>100 </Tab>

101 101 

102 <Tab title="VS Code">102 <Tab title="VS Code">

103 在 [Claude Code VS Code 扩展](/zh-CN/vs-code)中,在提示框中输入 `/remote-control` 或 `/rc`,或使用 `/` 打开命令菜单并选择它。103 在 [Claude Code VS Code 扩展](/docs/zh-CN/vs-code)中,在提示框中输入 `/remote-control` 或 `/rc`,或使用 `/` 打开命令菜单并选择它。

104 104 

105 ```text theme={null}105 ```text theme={null}

106 /remote-control106 /remote-control


132* **扫描 QR 码** 显示在会话 URL 旁边,直接在 Claude 应用中打开它。使用 `claude remote-control` 时,按空格键切换 QR 码显示。132* **扫描 QR 码** 显示在会话 URL 旁边,直接在 Claude 应用中打开它。使用 `claude remote-control` 时,按空格键切换 QR 码显示。

133* **打开 [claude.ai/code](https://claude.ai/code) 或 Claude 应用** 并在会话列表中按名称查找会话。在 Claude 移动应用中,点击导航中的**代码**以访问会话列表。Remote Control 会话在在线时显示带有绿色状态点的计算机图标。133* **打开 [claude.ai/code](https://claude.ai/code) 或 Claude 应用** 并在会话列表中按名称查找会话。在 Claude 移动应用中,点击导航中的**代码**以访问会话列表。Remote Control 会话在在线时显示带有绿色状态点的计算机图标。

134 134 

135当您连接时,设备显示会话已在后台运行的任何子代理和工作流。{/* min-version: 2.1.208 */}在 v2.1.208 之前,连接到在交互式终端中托管的会话的设备在其中一个子代理或工作流启动或停止之前不会显示已在运行的子代理和工作流。135当您连接时,设备显示会话已在后台运行的任何子代理和工作流。在 v2.1.208 之前,连接到在交互式终端中托管的会话的设备在其中一个子代理或工作流启动或停止之前不会显示已在运行的子代理和工作流。

136 136 

137远程会话标题按以下顺序选择:137远程会话标题按以下顺序选择:

138 138 


1413. 现有对话历史记录中的最后一条有意义的消息1413. 现有对话历史记录中的最后一条有意义的消息

1424. 自动生成的名称,如 `myhost-graceful-unicorn`,其中 `myhost` 是您的机器的主机名或您使用 `--remote-control-session-name-prefix` 设置的前缀1424. 自动生成的名称,如 `myhost-graceful-unicorn`,其中 `myhost` 是您的机器的主机名或您使用 `--remote-control-session-name-prefix` 设置的前缀

143 143 

144如果您没有设置显式名称,一旦您发送提示,标题会更新以反映您的提示。{/* min-version: 2.1.176 */}从 Claude Code v2.1.176 开始,自动生成的标题与您的对话语言相匹配,或与配置的 [`language`](/zh-CN/settings#available-settings) 设置相匹配。从 claude.ai 或 Claude 应用重命名会话也会更新在 `claude --resume` 中显示的本地标题。144如果您没有设置显式名称,一旦您发送提示,标题会更新以反映您的提示。从 Claude Code v2.1.176 开始,自动生成的标题与您的对话语言相匹配,或与配置的 [`language`](/docs/zh-CN/settings#available-settings) 设置相匹配。从 claude.ai 或 Claude 应用重命名会话也会更新在 `claude --resume` 中显示的本地标题。

145 145 

146如果环境已经有活动会话,您将被询问是否继续它或启动新会话。146如果环境已经有活动会话,您将被询问是否继续它或启动新会话。

147 147 


151 为所有会话启用 Remote Control151 为所有会话启用 Remote Control

152</h3>152</h3>

153 153 

154默认情况下,Remote Control 仅在您显式运行 `claude remote-control`、`claude --remote-control` 或 `/remote-control` 时激活。要为每个交互式会话自动启用它,请在 Claude Code 中运行 `/config` 并将**为所有会话启用 Remote Control** 设置为 `true`。将其设置为 `false` 以禁用,或将其保留为未设置以遵循您的组织的默认值。在桌面应用中,您也可以从**设置 → Claude Code → 默认启用远程控制**切换此选项。{/* min-version: 2.1.203 */}在 [VS Code 扩展](/zh-CN/vs-code#use-the-prompt-box)中,相同的切换显示为命令菜单的设置部分中的**为所有会话启用 Remote Control**;需要 Claude Code v2.1.203 或更高版本。154默认情况下,Remote Control 仅在您显式运行 `claude remote-control`、`claude --remote-control` 或 `/remote-control` 时激活。要为每个交互式会话自动启用它,请在 Claude Code 中运行 `/config` 并将**为所有会话启用 Remote Control** 设置为 `true`。将其设置为 `false` 以禁用,或将其保留为未设置以遵循您的组织的默认值。在桌面应用中,您也可以从**设置 → Claude Code → 默认启用远程控制**切换此选项。在 [VS Code 扩展](/docs/zh-CN/vs-code#use-the-prompt-box)中,相同的切换显示为命令菜单的设置部分中的**为所有会话启用 Remote Control**;需要 Claude Code v2.1.203 或更高版本。

155 155 

156启用此设置后,每个交互式 Claude Code 进程注册一个远程会话。如果您运行多个实例,每个实例都获得自己的环境和会话。要从单个进程运行多个并发会话,请改用[服务器模式](#start-a-remote-control-session)。156启用此设置后,每个交互式 Claude Code 进程注册一个远程会话。如果您运行多个实例,每个实例都获得自己的环境和会话。要从单个进程运行多个并发会话,请改用[服务器模式](#start-a-remote-control-session)。

157 157 


163 163 

164所有流量都通过 Anthropic API 通过 TLS 传输,与任何 Claude Code 会话的传输安全相同。连接使用多个短期凭证,每个凭证的范围限定为单一目的并独立过期。164所有流量都通过 Anthropic API 通过 TLS 传输,与任何 Claude Code 会话的传输安全相同。连接使用多个短期凭证,每个凭证的范围限定为单一目的并独立过期。

165 165 

166Remote Control 连接时,会话记录(包括您的消息、Claude 的响应和工具活动)存储在 Anthropic 服务器上。存储的记录保持您的设备之间的对话同步,并让会话在网络中断后重新连接。执行和文件系统访问保留在您的机器上,存储的记录根据[数据使用](/zh-CN/data-usage)政策保留。166Remote Control 连接时,会话记录(包括您的消息、Claude 的响应和工具活动)存储在 Anthropic 服务器上。存储的记录保持您的设备之间的对话同步,并让会话在网络中断后重新连接。执行和文件系统访问保留在您的机器上,存储的记录根据[数据使用](/docs/zh-CN/data-usage)政策保留。

167 167 

168要完全关闭 Remote Control,请使用 [`disableRemoteControl`](/zh-CN/settings#available-settings) 设置。具有零数据保留等合规要求的组织无法启用 Remote Control。168要完全关闭 Remote Control,请使用 [`disableRemoteControl`](/docs/zh-CN/settings#available-settings) 设置。具有零数据保留等合规要求的组织无法启用 Remote Control。

169 169 

170<h2 id="trusted-devices">170<h2 id="trusted-devices">

171 受信任的设备171 受信任的设备


234 Remote Control 与网络上的 Claude Code 的比较234 Remote Control 与网络上的 Claude Code 的比较

235</h2>235</h2>

236 236 

237Remote Control 和[网络上的 Claude Code](/zh-CN/claude-code-on-the-web)都使用 claude.ai/code 界面。关键区别在于会话运行的位置:Remote Control 在您的机器上执行,因此您的本地 MCP servers、工具和项目配置保持可用。网络上的 Claude Code 在 Anthropic 管理的云基础设施中执行。237Remote Control 和[网络上的 Claude Code](/docs/zh-CN/claude-code-on-the-web)都使用 claude.ai/code 界面。关键区别在于会话运行的位置:Remote Control 在您的机器上执行,因此您的本地 MCP servers、工具和项目配置保持可用。网络上的 Claude Code 在 Anthropic 管理的云基础设施中执行。

238 238 

239当您处于本地工作中间并想从另一个设备继续时,使用 Remote Control。当您想在没有任何本地设置的情况下启动任务、处理您没有克隆的存储库或并行运行多个任务时,使用网络上的 Claude Code。239当您处于本地工作中间并想从另一个设备继续时,使用 Remote Control。当您想在没有任何本地设置的情况下启动任务、处理您没有克隆的存储库或并行运行多个任务时,使用网络上的 Claude Code。

240 240 


272* 在 iOS 上,焦点模式和通知摘要可能会抑制或延迟推送。检查设置 → 通知 → Claude。272* 在 iOS 上,焦点模式和通知摘要可能会抑制或延迟推送。检查设置 → 通知 → Claude。

273* 在 Android 上,激进的电池优化可能会延迟传递。在系统设置中将 Claude 应用从电池优化中豁免。273* 在 Android 上,激进的电池优化可能会延迟传递。在系统设置中将 Claude 应用从电池优化中豁免。

274 274 

275Claude Code 在您在连接的终端中输入或专注时会跳过移动推送通知。{/* min-version: 2.1.181 */}从 v2.1.181 开始,您可以将 [`CLAUDE_CLIENT_PRESENCE_FILE`](/zh-CN/env-vars) 设置为标记文件路径,以将其扩展到您在机器上的任何时间,即使在另一个窗口中:当文件存在时,通知会被跳过。配置屏幕锁定侦听器或类似工具,以在屏幕解锁时创建文件,在屏幕锁定时删除文件。275Claude Code 在您在连接的终端中输入或专注时会跳过移动推送通知。从 v2.1.181 开始,您可以将 [`CLAUDE_CLIENT_PRESENCE_FILE`](/docs/zh-CN/env-vars) 设置为标记文件路径,以将其扩展到您在机器上的任何时间,即使在另一个窗口中:当文件存在时,通知会被跳过。配置屏幕锁定侦听器或类似工具,以在屏幕解锁时创建文件,在屏幕锁定时删除文件。

276 276 

277<h2 id="limitations">277<h2 id="limitations">

278 限制278 限制


281* **每个交互式进程一个远程会话**:在服务器模式之外,每个 Claude Code 实例一次支持一个远程会话。使用[服务器模式](#start-a-remote-control-session)从单个进程运行多个并发会话。281* **每个交互式进程一个远程会话**:在服务器模式之外,每个 Claude Code 实例一次支持一个远程会话。使用[服务器模式](#start-a-remote-control-session)从单个进程运行多个并发会话。

282* **本地进程必须保持运行**:Remote Control 作为本地进程运行。如果您关闭终端、退出 VS Code 或以其他方式停止 `claude` 进程,会话结束。282* **本地进程必须保持运行**:Remote Control 作为本地进程运行。如果您关闭终端、退出 VS Code 或以其他方式停止 `claude` 进程,会话结束。

283* **扩展网络中断**:如果您的机器处于唤醒状态但无法在大约 10 分钟以上的时间内到达网络,会话超时并且进程退出。再次运行 `claude remote-control` 以启动新会话。283* **扩展网络中断**:如果您的机器处于唤醒状态但无法在大约 10 分钟以上的时间内到达网络,会话超时并且进程退出。再次运行 `claude remote-control` 以启动新会话。

284* **Ultraplan 断开 Remote Control**:启动 [ultraplan](/zh-CN/ultraplan) 会话会断开任何活动的 Remote Control 会话,因为两个功能都占据 claude.ai/code 界面,一次只能连接一个。284* **Ultraplan 断开 Remote Control**:启动 [ultraplan](/docs/zh-CN/ultraplan) 会话会断开任何活动的 Remote Control 会话,因为两个功能都占据 claude.ai/code 界面,一次只能连接一个。

285* **某些命令仅限本地**:仅在终端界面中运行的命令,例如 `/plugin` 或 `/resume`,仅从本地 CLI 工作,无论您是否传递参数。以下命令可从移动和网络工作:285* **某些命令仅限本地**:仅在终端界面中运行的命令,例如 `/plugin` 或 `/resume`,仅从本地 CLI 工作,无论您是否传递参数。以下命令可从移动和网络工作:

286 * 文本输出命令:`/compact`、`/clear`、`/context`、`/usage`、`/exit`、`/usage-credits`(运行文本形式而不是打开 CLI 内对话框)、`/recap`、`/reload-plugins`286 * 文本输出命令:`/compact`、`/clear`、`/context`、`/usage`、`/exit`、`/usage-credits`(运行文本形式而不是打开 CLI 内对话框)、`/recap`、`/reload-plugins`

287 * `/model`、`/effort`、`/fast`、`/color` 和 `/rename`:将值作为参数传递,例如 `/model sonnet` 或 `/effort high`。从移动和网络,`/model` 和 `/effort` 在终端选择器或滑块的位置接受参数。287 * `/model`、`/effort`、`/fast`、`/color` 和 `/rename`:将值作为参数传递,例如 `/model sonnet` 或 `/effort high`。从移动和网络,`/model` 和 `/effort` 在终端选择器或滑块的位置接受参数。

288 * {/* min-version: 2.1.166 */}`/mcp`,从 v2.1.166 开始:从移动应用返回服务器状态的文本摘要而不是打开选择器。在网络上,`/mcp` 单独打开 [claude.ai 连接器](/zh-CN/mcp#use-mcp-servers-from-claude-ai) 的目录而不是返回摘要。`reconnect`、`enable` 和 `disable` [子命令](/zh-CN/commands#all-commands)可从两者工作。与本地 CLI 不同,不带服务器名称的 `/mcp reconnect` 会重新连接每个已失败或需要身份验证的服务器。288 * `/mcp`,从 v2.1.166 开始:从移动应用返回服务器状态的文本摘要而不是打开选择器。在网络上,`/mcp` 单独打开 [claude.ai 连接器](/docs/zh-CN/mcp#use-mcp-servers-from-claude-ai) 的目录而不是返回摘要。`reconnect`、`enable` 和 `disable` [子命令](/docs/zh-CN/commands#all-commands)可从两者工作。与本地 CLI 不同,不带服务器名称的 `/mcp reconnect` 会重新连接每个已失败或需要身份验证的服务器。

289 * {/* min-version: 2.1.181 */}`/config`,从 v2.1.181 开始:从移动应用,传递 `key=value` 以设置一个设置,或不带参数运行它以列出您可以设置的键。在网络上,`/config` 打开您设置的 Claude Code 部分,并忽略命令后的文本。289 * `/config`,从 v2.1.181 开始:从移动应用,传递 `key=value` 以设置一个设置,或不带参数运行它以列出您可以设置的键。在网络上,`/config` 打开您设置的 Claude Code 部分,并忽略命令后的文本。

290 290 

291<h2 id="troubleshooting">291<h2 id="troubleshooting">

292 故障排除292 故障排除


298 298 

299您未使用 claude.ai 账户进行身份验证。运行 `claude auth login` 并选择 claude.ai 选项。如果在您的环境中设置了 `ANTHROPIC_API_KEY`,请先取消设置它。299您未使用 claude.ai 账户进行身份验证。运行 `claude auth login` 并选择 claude.ai 选项。如果在您的环境中设置了 `ANTHROPIC_API_KEY`,请先取消设置它。

300 300 

301{/* min-version: 2.1.206 */}在 v2.1.206 之前,在未登出的情况下运行 `/remote-control` 会报告 `Unknown command: /remote-control` 而不是此消息。301在 v2.1.206 之前,在未登出的情况下运行 `/remote-control` 会报告 `Unknown command: /remote-control` 而不是此消息。

302 302 

303<h3 id="remote-control-requires-a-full-scope-login-token">303<h3 id="remote-control-requires-a-full-scope-login-token">

304 "Remote Control 需要完整范围的登录令牌"304 "Remote Control 需要完整范围的登录令牌"


328 "Remote Control 仅在通过 api.anthropic.com 使用 Claude 时可用"328 "Remote Control 仅在通过 api.anthropic.com 使用 Claude 时可用"

329</h3>329</h3>

330 330 

331该会话不是直接与 Anthropic API 通信,因此没有 claude.ai 后端可配对。这发生在 Amazon Bedrock、Google Cloud 的 Agent Platform 和 Microsoft Foundry 上。{/* min-version: 2.1.196 */}从 v2.1.196 开始,当 [`ANTHROPIC_BASE_URL`](/zh-CN/env-vars) 指向 `api.anthropic.com` 以外的主机时,例如 [LLM 网关](/zh-CN/llm-gateway) 或代理,即使您使用 claude.ai 登录,也会发生这种情况。取消设置 `ANTHROPIC_BASE_URL` 并重启会话以使用 Remote Control。331该会话不是直接与 Anthropic API 通信,因此没有 claude.ai 后端可配对。这发生在 Amazon Bedrock、Google Cloud 的 Agent Platform 和 Microsoft Foundry 上。从 v2.1.196 开始,当 [`ANTHROPIC_BASE_URL`](/docs/zh-CN/env-vars) 指向 `api.anthropic.com` 以外的主机时,例如 [LLM 网关](/docs/zh-CN/llm-gateway) 或代理,即使您使用 claude.ai 登录,也会发生这种情况。取消设置 `ANTHROPIC_BASE_URL` 并重启会话以使用 Remote Control。

332 332 

333<h3 id="remote-control-is-disabled-by-your-organization’s-policy">333<h3 id="remote-control-is-disabled-by-your-organization’s-policy">

334 "Remote Control 被您的组织的策略禁用"334 "Remote Control 被您的组织的策略禁用"


339* **您使用 API 密钥或 Console 账户进行身份验证**:Remote Control 需要 claude.ai OAuth。运行 `/login` 并选择 claude.ai 选项。如果在您的环境中设置了 `ANTHROPIC_API_KEY`,请取消设置它。339* **您使用 API 密钥或 Console 账户进行身份验证**:Remote Control 需要 claude.ai OAuth。运行 `/login` 并选择 claude.ai 选项。如果在您的环境中设置了 `ANTHROPIC_API_KEY`,请取消设置它。

340* **您的组织的所有者尚未启用它**:Remote Control 在 Team 和 Enterprise 计划上默认处于关闭状态。所有者可以在 [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code) 通过打开 **Remote Control** 切换来启用它。此切换是服务器端组织设置。340* **您的组织的所有者尚未启用它**:Remote Control 在 Team 和 Enterprise 计划上默认处于关闭状态。所有者可以在 [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code) 通过打开 **Remote Control** 切换来启用它。此切换是服务器端组织设置。

341* **管理员切换呈灰色**:您的组织有数据保留或合规配置与 Remote Control 不兼容。这无法从管理面板更改。请联系 Anthropic 支持以讨论选项。341* **管理员切换呈灰色**:您的组织有数据保留或合规配置与 Remote Control 不兼容。这无法从管理面板更改。请联系 Anthropic 支持以讨论选项。

342* **错误提及 `disableRemoteControl`**:您的 IT 管理员已通过[托管设置](/zh-CN/settings#settings-files)在此设备上禁用了 Remote Control,独立于组织范围的切换。342* **错误提及 `disableRemoteControl`**:您的 IT 管理员已通过[托管设置](/docs/zh-CN/settings#settings-files)在此设备上禁用了 Remote Control,独立于组织范围的切换。

343 343 

344<h3 id="remote-credentials-fetch-failed">344<h3 id="remote-credentials-fetch-failed">

345 "Remote credentials fetch failed"345 "Remote credentials fetch failed"


365 365 

366您的本地会话继续运行而不使用 Remote Control。运行 `/remote-control` 以重试连接,或启动 Claude Code 而不使用 `--resume` 以创建新的 Remote Control 会话。366您的本地会话继续运行而不使用 Remote Control。运行 `/remote-control` 以重试连接,或启动 Claude Code 而不使用 `--resume` 以创建新的 Remote Control 会话。

367 367 

368{/* min-version: 2.1.200 */}在 v2.1.200 之前,重新连接失败会创建新的 Remote Control 会话而不是显示此消息,这在 claude.ai/code 的会话列表中留下了额外的会话。368在 v2.1.200 之前,重新连接失败会创建新的 Remote Control 会话而不是显示此消息,这在 claude.ai/code 的会话列表中留下了额外的会话。

369 369 

370<h3 id="your-organization-requires-trusted-devices-for-remote-control-but-this-device-is-not-enrolled">370<h3 id="your-organization-requires-trusted-devices-for-remote-control-but-this-device-is-not-enrolled">

371 "您的组织需要受信任的设备用于 Remote Control,但此设备未注册"371 "您的组织需要受信任的设备用于 Remote Control,但此设备未注册"


387 387 

388| | Trigger | Claude runs on | Setup | Best for |388| | Trigger | Claude runs on | Setup | Best for |

389| :--------------------------------------------- | :--------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------ |389| :--------------------------------------------- | :--------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------ |

390| [Dispatch](/en/desktop#sessions-from-dispatch) | Message a task from the Claude mobile app | Your machine (Desktop) | [Pair the mobile app with Desktop](https://support.claude.com/en/articles/13947068) | Delegating work while you're away, minimal setup |390| [Dispatch](/docs/en/desktop#sessions-from-dispatch) | Message a task from the Claude mobile app | Your machine (Desktop) | [Pair the mobile app with Desktop](https://support.claude.com/en/articles/13947068) | Delegating work while you're away, minimal setup |

391| [Remote Control](/en/remote-control) | Drive a running session from [claude.ai/code](https://claude.ai/code) or the Claude mobile app | Your machine (CLI or VS Code) | Run `claude remote-control` | Steering in-progress work from another device |391| [Remote Control](/docs/en/remote-control) | Drive a running session from [claude.ai/code](https://claude.ai/code) or the Claude mobile app | Your machine (CLI or VS Code) | Run `claude remote-control` | Steering in-progress work from another device |

392| [Channels](/en/channels) | Push events from a chat app like Telegram or Discord, or your own server | Your machine (CLI) | [Install a channel plugin](/en/channels#quickstart) or [build your own](/en/channels-reference) | Reacting to external events like CI failures or chat messages |392| [Channels](/docs/en/channels) | Push events from a chat app like Telegram or Discord, or your own server | Your machine (CLI) | [Install a channel plugin](/docs/en/channels#quickstart) or [build your own](/docs/en/channels-reference) | Reacting to external events like CI failures or chat messages |

393| [Slack](/en/slack) | Mention `@Claude` in a team channel | Anthropic cloud | [Install the Slack app](/en/slack#setting-up-claude-code-in-slack) with [Claude Code on the web](/en/claude-code-on-the-web) enabled | PRs and reviews from team chat |393| [Slack](/docs/en/slack) | Mention `@Claude` in a team channel | Anthropic cloud | [Install the Slack app](/docs/en/slack#setting-up-claude-code-in-slack) with [Claude Code on the web](/docs/en/claude-code-on-the-web) enabled | PRs and reviews from team chat |

394| [Scheduled tasks](/en/scheduled-tasks) | Set a schedule | [CLI](/en/scheduled-tasks), [Desktop](/en/desktop-scheduled-tasks), or [cloud](/en/routines) | Pick a frequency | Recurring automation like daily reviews |394| [Scheduled tasks](/docs/en/scheduled-tasks) | Set a schedule | [CLI](/docs/en/scheduled-tasks), [Desktop](/docs/en/desktop-scheduled-tasks), or [cloud](/docs/en/routines) | Pick a frequency | Recurring automation like daily reviews |

395 395 

396<h2 id="related-resources">396<h2 id="related-resources">

397 相关资源397 相关资源

398</h2>398</h2>

399 399 

400* [网络上的 Claude Code](/zh-CN/claude-code-on-the-web):在 Anthropic 管理的云环境中运行会话,而不是在您的机器上400* [网络上的 Claude Code](/docs/zh-CN/claude-code-on-the-web):在 Anthropic 管理的云环境中运行会话,而不是在您的机器上

401* [Ultraplan](/zh-CN/ultraplan):从您的终端启动云规划会话并在浏览器中查看计划401* [Ultraplan](/docs/zh-CN/ultraplan):从您的终端启动云规划会话并在浏览器中查看计划

402* [Channels](/zh-CN/channels):将 Telegram、Discord 或 iMessage 转发到会话中,以便 Claude 在您离开时对消息做出反应402* [Channels](/docs/zh-CN/channels):将 Telegram、Discord 或 iMessage 转发到会话中,以便 Claude 在您离开时对消息做出反应

403* [Dispatch](/zh-CN/desktop#sessions-from-dispatch):从您的手机发送任务消息,它可以生成 Desktop 会话来处理它403* [Dispatch](/docs/zh-CN/desktop#sessions-from-dispatch):从您的手机发送任务消息,它可以生成 Desktop 会话来处理它

404* [身份验证](/zh-CN/authentication):设置 `/login` 并管理 claude.ai 的凭证404* [身份验证](/docs/zh-CN/authentication):设置 `/login` 并管理 claude.ai 的凭证

405* [CLI 参考](/zh-CN/cli-reference):包括 `claude remote-control` 的标志和命令的完整列表405* [CLI 参考](/docs/zh-CN/cli-reference):包括 `claude remote-control` 的标志和命令的完整列表

406* [安全](/zh-CN/security):Remote Control 会话如何适应 Claude Code 安全模型406* [安全](/docs/zh-CN/security):Remote Control 会话如何适应 Claude Code 安全模型

407* [数据使用](/zh-CN/data-usage):在本地和远程会话期间通过 Anthropic API 流动的数据407* [数据使用](/docs/zh-CN/data-usage):在本地和远程会话期间通过 Anthropic API 流动的数据

sandboxing.md +44 −44

Details

9Bash 沙箱让 Claude 可以运行大多数 shell 命令,而无需停下来请求权限。与其批准每个命令不同,你定义命令可以接触哪些文件和网络域,操作系统为每个 Bash 命令及其子进程强制执行该边界。9Bash 沙箱让 Claude 可以运行大多数 shell 命令,而无需停下来请求权限。与其批准每个命令不同,你定义命令可以接触哪些文件和网络域,操作系统为每个 Bash 命令及其子进程强制执行该边界。

10 10 

11<Note>11<Note>

12 要比较其他隔离方法,如开发容器、自定义容器和虚拟机,请参阅 [Sandbox environments](/zh-CN/sandbox-environments)。要减少 Bash 以外工具的权限提示,请参阅 [permission modes](/zh-CN/permission-modes)。12 要比较其他隔离方法,如开发容器、自定义容器和虚拟机,请参阅 [Sandbox environments](/docs/zh-CN/sandbox-environments)。要减少 Bash 以外工具的权限提示,请参阅 [permission modes](/docs/zh-CN/permission-modes)。

13</Note>13</Note>

14 14 

15<h2 id="get-started">15<h2 id="get-started">


31 这会打开沙箱面板,有三个选项卡:31 这会打开沙箱面板,有三个选项卡:

32 32 

33 * **Mode**:选择沙箱化命令的批准方式,在下一步中介绍33 * **Mode**:选择沙箱化命令的批准方式,在下一步中介绍

34 * **Overrides**:选择在沙箱下失败的命令是否可以回退到运行非沙箱化。这是 [`allowUnsandboxedCommands`](/zh-CN/settings#sandbox-settings) 设置34 * **Overrides**:选择在沙箱下失败的命令是否可以回退到运行非沙箱化。这是 [`allowUnsandboxedCommands`](/docs/zh-CN/settings#sandbox-settings) 设置

35 * **Config**:查看已解析的沙箱设置35 * **Config**:查看已解析的沙箱设置

36 36 

37 如果面板仅显示 Dependencies 选项卡,则缺少必需的包。按照 [设置 Linux 和 WSL2](#set-up-linux-and-wsl2) 中的说明安装它,重启 Claude Code,然后再次运行 `/sandbox`。37 如果面板仅显示 Dependencies 选项卡,则缺少必需的包。按照 [设置 Linux 和 WSL2](#set-up-linux-and-wsl2) 中的说明安装它,重启 Claude Code,然后再次运行 `/sandbox`。


48 </Step>48 </Step>

49</Steps>49</Steps>

50 50 

51在面板中选择一个模式会写入你的项目的本地设置 `.claude/settings.local.json`,这些设置适用于当前项目,不会检入 git。要在所有项目中启用沙箱,请在 `~/.claude/settings.json` 的用户设置中将 [`sandbox.enabled`](/zh-CN/settings#sandbox-settings) 设置为 `true`。要为组织中的每个开发者强制执行沙箱,请使用 [托管设置](#enforce-sandboxing-with-managed-settings)。51在面板中选择一个模式会写入你的项目的本地设置 `.claude/settings.local.json`,这些设置适用于当前项目,不会检入 git。要在所有项目中启用沙箱,请在 `~/.claude/settings.json` 的用户设置中将 [`sandbox.enabled`](/docs/zh-CN/settings#sandbox-settings) 设置为 `true`。要为组织中的每个开发者强制执行沙箱,请使用 [托管设置](#enforce-sandboxing-with-managed-settings)。

52 52 

53<Warning>53<Warning>

54 默认情况下,如果沙箱因缺少依赖项或不支持的平台而无法启动,Claude Code 会显示警告并在没有沙箱的情况下运行命令。要使其成为硬失败,请将 [`sandbox.failIfUnavailable`](/zh-CN/settings#sandbox-settings) 设置为 `true`。这适用于需要沙箱作为安全门的托管部署。54 默认情况下,如果沙箱因缺少依赖项或不支持的平台而无法启动,Claude Code 会显示警告并在没有沙箱的情况下运行命令。要使其成为硬失败,请将 [`sandbox.failIfUnavailable`](/docs/zh-CN/settings#sandbox-settings) 设置为 `true`。这适用于需要沙箱作为安全门的托管部署。

55</Warning>55</Warning>

56 56 

57<h3 id="set-up-linux-and-wsl2">57<h3 id="set-up-linux-and-wsl2">


111 <Accordion title="WSL2 注意事项">111 <Accordion title="WSL2 注意事项">

112 使用 PowerShell 中的 `wsl -l -v` 检查你的 WSL 版本。如果你看到 `Sandboxing requires WSL2`,你的发行版运行的是 WSL1。将其升级到 WSL2 或在没有沙箱的情况下运行 Claude Code。112 使用 PowerShell 中的 `wsl -l -v` 检查你的 WSL 版本。如果你看到 `Sandboxing requires WSL2`,你的发行版运行的是 WSL1。将其升级到 WSL2 或在没有沙箱的情况下运行 Claude Code。

113 113 

114 在 WSL2 上,沙箱化命令无法启动 Windows 二进制文件,例如 `cmd.exe`、`powershell.exe` 或 `/mnt/c/` 下的任何内容。WSL 通过 Unix 套接字将这些交给 Windows 主机,沙箱会阻止这些。如果命令需要调用 Windows 二进制文件,请将其添加到 [`excludedCommands`](/zh-CN/settings#sandbox-settings),以便它在沙箱外运行。114 在 WSL2 上,沙箱化命令无法启动 Windows 二进制文件,例如 `cmd.exe`、`powershell.exe` 或 `/mnt/c/` 下的任何内容。WSL 通过 Unix 套接字将这些交给 Windows 主机,沙箱会阻止这些。如果命令需要调用 Windows 二进制文件,请将其添加到 [`excludedCommands`](/docs/zh-CN/settings#sandbox-settings),以便它在沙箱外运行。

115 </Accordion>115 </Accordion>

116</AccordionGroup>116</AccordionGroup>

117 117 


121 121 

122Claude Code 提供两种沙箱模式:122Claude Code 提供两种沙箱模式:

123 123 

124**自动允许模式**:Bash 命令将尝试在沙箱内运行,并自动允许而无需权限。无法沙箱化的命令(例如需要访问非允许主机的网络访问的命令)会回退到常规权限流程,其中 Claude Code 检查你的 [权限规则](/zh-CN/permissions) 并为这些规则不允许的任何命令提示你,在默认模式下提示或在 [自动模式](/zh-CN/permission-modes#eliminate-prompts-with-auto-mode) 中使用分类器。124**自动允许模式**:Bash 命令将尝试在沙箱内运行,并自动允许而无需权限。无法沙箱化的命令(例如需要访问非允许主机的网络访问的命令)会回退到常规权限流程,其中 Claude Code 检查你的 [权限规则](/docs/zh-CN/permissions) 并为这些规则不允许的任何命令提示你,在默认模式下提示或在 [自动模式](/docs/zh-CN/permission-modes#eliminate-prompts-with-auto-mode) 中使用分类器。

125 125 

126即使在自动允许模式下,以下仍然适用:126即使在自动允许模式下,以下仍然适用:

127 127 

128* 显式 [拒绝规则](/zh-CN/permissions) 始终被尊重128* 显式 [拒绝规则](/docs/zh-CN/permissions) 始终被尊重

129* 针对 `/`、你的主目录或其他关键系统路径的 `rm` 或 `rmdir` 命令仍会触发权限提示129* 针对 `/`、你的主目录或其他关键系统路径的 `rm` 或 `rmdir` 命令仍会触发权限提示

130* 内容范围的 [询问规则](/zh-CN/permissions)(如 `Bash(git push *)`)仍会强制提示,即使对于沙箱化命令130* 内容范围的 [询问规则](/docs/zh-CN/permissions)(如 `Bash(git push *)`)仍会强制提示,即使对于沙箱化命令

131* 裸 `Bash` 询问规则,或等效的 `Bash(*)` 形式,对于运行沙箱化的命令会被跳过;它仍然适用于回退到常规权限流程的命令131* 裸 `Bash` 询问规则,或等效的 `Bash(*)` 形式,对于运行沙箱化的命令会被跳过;它仍然适用于回退到常规权限流程的命令

132 132 

133**常规权限模式**:所有 Bash 命令都通过常规权限流程,即使沙箱化也是如此。这提供了更多控制,但需要更多批准。133**常规权限模式**:所有 Bash 命令都通过常规权限流程,即使沙箱化也是如此。这提供了更多控制,但需要更多批准。


136 136 

137会话临时目录在沙箱内默认可写,与工作目录一起。Claude Code 为沙箱化命令设置 `$TMPDIR` 为此目录,因此写入临时文件的工具无需额外配置即可工作。非沙箱化命令继承你的 shell 的 `$TMPDIR` 不变,这意味着沙箱化和非沙箱化命令将 `$TMPDIR` 解析为不同的目录。要在两者之间传递临时文件,请改为在工作目录下写入它们。137会话临时目录在沙箱内默认可写,与工作目录一起。Claude Code 为沙箱化命令设置 `$TMPDIR` 为此目录,因此写入临时文件的工具无需额外配置即可工作。非沙箱化命令继承你的 shell 的 `$TMPDIR` 不变,这意味着沙箱化和非沙箱化命令将 `$TMPDIR` 解析为不同的目录。要在两者之间传递临时文件,请改为在工作目录下写入它们。

138 138 

139某些命令根本无法在沙箱内运行,例如与其不兼容的工具或需要你未允许的主机的工具。与其让任务失败或要求你关闭沙箱,Claude Code 包括一个逃生舱:当命令因沙箱限制而失败时,Claude 分析失败,可能使用 `dangerouslyDisableSandbox` 参数重试命令。重试的命令在沙箱外运行,因此通过常规权限流程进行:在默认模式下你会获得确认提示;在 [自动模式](/zh-CN/permission-modes#eliminate-prompts-with-auto-mode) 中分类器评估基础命令而不是提示你。要在自动模式下的每次非沙箱化重试时都被提示,请为 `Bash(dangerouslyDisableSandbox:true)` 添加一个 [询问规则](/zh-CN/permissions#match-by-input-parameter)。139某些命令根本无法在沙箱内运行,例如与其不兼容的工具或需要你未允许的主机的工具。与其让任务失败或要求你关闭沙箱,Claude Code 包括一个逃生舱:当命令因沙箱限制而失败时,Claude 分析失败,可能使用 `dangerouslyDisableSandbox` 参数重试命令。重试的命令在沙箱外运行,因此通过常规权限流程进行:在默认模式下你会获得确认提示;在 [自动模式](/docs/zh-CN/permission-modes#eliminate-prompts-with-auto-mode) 中分类器评估基础命令而不是提示你。要在自动模式下的每次非沙箱化重试时都被提示,请为 `Bash(dangerouslyDisableSandbox:true)` 添加一个 [询问规则](/docs/zh-CN/permissions#match-by-input-parameter)。

140 140 

141你可以通过在 [沙箱设置](/zh-CN/settings#sandbox-settings) 中设置 `"allowUnsandboxedCommands": false` 来禁用此逃生舱。禁用时,`/sandbox` Overrides 选项卡显示为 **严格沙箱模式**,`dangerouslyDisableSandbox` 参数被完全忽略,所有命令必须沙箱化运行或在 `excludedCommands` 中明确列出。141你可以通过在 [沙箱设置](/docs/zh-CN/settings#sandbox-settings) 中设置 `"allowUnsandboxedCommands": false` 来禁用此逃生舱。禁用时,`/sandbox` Overrides 选项卡显示为 **严格沙箱模式**,`dangerouslyDisableSandbox` 参数被完全忽略,所有命令必须沙箱化运行或在 `excludedCommands` 中明确列出。

142 142 

143<Info>143<Info>

144 自动允许模式独立于你的权限模式设置工作。即使你不在"接受编辑"模式中,启用自动允许时沙箱化的 Bash 命令也会自动运行。这意味着在沙箱边界内修改文件的 Bash 命令将执行而不提示,即使文件编辑工具通常需要批准。144 自动允许模式独立于你的权限模式设置工作。即使你不在"接受编辑"模式中,启用自动允许时沙箱化的 Bash 命令也会自动运行。这意味着在沙箱边界内修改文件的 Bash 命令将执行而不提示,即使文件编辑工具通常需要批准。


148 配置沙箱148 配置沙箱

149</h2>149</h2>

150 150 

151通过 `settings.json` 文件自定义沙箱行为。有关完整的配置参考,请参阅 [Settings](/zh-CN/settings#sandbox-settings)。151通过 `settings.json` 文件自定义沙箱行为。有关完整的配置参考,请参阅 [Settings](/docs/zh-CN/settings#sandbox-settings)。

152 152 

153默认情况下,沙箱化命令只能写入当前工作目录和会话临时目录。如果子进程命令(如 `kubectl`、`terraform` 或 `npm`)需要在这些目录外写入,请使用 `sandbox.filesystem.allowWrite` 向特定路径授予访问权限:153默认情况下,沙箱化命令只能写入当前工作目录和会话临时目录。如果子进程命令(如 `kubectl`、`terraform` 或 `npm`)需要在这些目录外写入,请使用 `sandbox.filesystem.allowWrite` 向特定路径授予访问权限:

154 154 


165 165 

166这些路径在操作系统级别强制执行,因此在沙箱内运行的所有命令(包括其子进程)都尊重它们。这是推荐的方法,当工具需要对特定位置的写入访问时,而不是使用 `excludedCommands` 将工具从沙箱中排除。166这些路径在操作系统级别强制执行,因此在沙箱内运行的所有命令(包括其子进程)都尊重它们。这是推荐的方法,当工具需要对特定位置的写入访问时,而不是使用 `excludedCommands` 将工具从沙箱中排除。

167 167 

168当在多个 [settings scopes](/zh-CN/settings#settings-precedence) 中定义相同的文件系统数组时,数组被合并:来自每个范围的路径被组合,而不是替换。168当在多个 [settings scopes](/docs/zh-CN/settings#settings-precedence) 中定义相同的文件系统数组时,数组被合并:来自每个范围的路径被组合,而不是替换。

169 169 

170路径前缀控制路径的解析方式:170路径前缀控制路径的解析方式:

171 171 


175| `~/` | 相对于主目录 | `~/.kube` 变为 `$HOME/.kube` |175| `~/` | 相对于主目录 | `~/.kube` 变为 `$HOME/.kube` |

176| `./` 或无前缀 | 对于项目设置相对于项目根目录,或对于用户设置相对于 `~/.claude` | `.claude/settings.json` 中的 `./output` 解析为 `<project-root>/output` |176| `./` 或无前缀 | 对于项目设置相对于项目根目录,或对于用户设置相对于 `~/.claude` | `.claude/settings.json` 中的 `./output` 解析为 `<project-root>/output` |

177 177 

178此语法与 [Read and Edit permission rules](/zh-CN/permissions#read-and-edit) 不同,后者使用 `//path` 表示绝对路径,`/path` 表示项目相对路径。沙箱文件系统路径使用标准约定:`/tmp/build` 是绝对路径。178此语法与 [Read and Edit permission rules](/docs/zh-CN/permissions#read-and-edit) 不同,后者使用 `//path` 表示绝对路径,`/path` 表示项目相对路径。沙箱文件系统路径使用标准约定:`/tmp/build` 是绝对路径。

179 179 

180你也可以使用 `sandbox.filesystem.denyWrite` 和 `sandbox.filesystem.denyRead` 拒绝写入或读取访问,以及使用 `sandbox.filesystem.allowRead` 重新允许被拒绝区域内的特定路径。当读取规则重叠时,更具体的路径获胜:180你也可以使用 `sandbox.filesystem.denyWrite` 和 `sandbox.filesystem.denyRead` 拒绝写入或读取访问,以及使用 `sandbox.filesystem.allowRead` 重新允许被拒绝区域内的特定路径。当读取规则重叠时,更具体的路径获胜:

181 181 


230 230 

231文件条目仅支持 `"mode": "deny"`。环境变量条目也接受 `"mode": "mask"`,如下所述。231文件条目仅支持 `"mode": "deny"`。环境变量条目也接受 `"mode": "mask"`,如下所述。

232 232 

233文件路径遵循与 `sandbox.filesystem.*` 设置相同的 [prefix rules](/zh-CN/settings#sandbox-path-prefixes),来自每个 [settings scope](/zh-CN/settings#settings-precedence) 的 `deny` 条目被合并。`deny` 条目只会缩小访问权限,因此任何范围都可以添加一个,但没有任何范围可以删除另一个范围添加的条目。233文件路径遵循与 `sandbox.filesystem.*` 设置相同的 [prefix rules](/docs/zh-CN/settings#sandbox-path-prefixes),来自每个 [settings scope](/docs/zh-CN/settings#settings-precedence) 的 `deny` 条目被合并。`deny` 条目只会缩小访问权限,因此任何范围都可以添加一个,但没有任何范围可以删除另一个范围添加的条目。

234 234 

235没有内置的凭证拒绝列表,因此只有你列出的文件和变量被限制。该设置仅影响沙箱化的 Bash 命令。要从所有子进程中删除 Anthropic 和云提供商凭证,无论是否进行沙箱处理,请设置 [`CLAUDE_CODE_SUBPROCESS_ENV_SCRUB`](/zh-CN/env-vars)。235没有内置的凭证拒绝列表,因此只有你列出的文件和变量被限制。该设置仅影响沙箱化的 Bash 命令。要从所有子进程中删除 Anthropic 和云提供商凭证,无论是否进行沙箱处理,请设置 [`CLAUDE_CODE_SUBPROCESS_ENV_SCRUB`](/docs/zh-CN/env-vars)。

236 236 

237<h4 id="mask-environment-variables">237<h4 id="mask-environment-variables">

238 掩盖环境变量238 掩盖环境变量


242 242 

243使用 `mask`,沙箱化命令看到的是每个会话的哨兵值,而不是真实值。当请求离开沙箱前往凭证的 `injectHosts` 之一时,[sandbox proxy](#network-isolation) 将哨兵值替换为真实值。命令及其记录的任何内容都不会持有真实凭证,但其请求仍然进行身份验证。243使用 `mask`,沙箱化命令看到的是每个会话的哨兵值,而不是真实值。当请求离开沙箱前往凭证的 `injectHosts` 之一时,[sandbox proxy](#network-isolation) 将哨兵值替换为真实值。命令及其记录的任何内容都不会持有真实凭证,但其请求仍然进行身份验证。

244 244 

245代理在请求内容中替换凭证,因此它必须看到它们。设置 [`network.tlsTerminate`](/zh-CN/settings#sandbox-settings) 以便代理自己终止 TLS。没有它,掩盖会失败关闭:命令仍然只看到哨兵值,但哨兵值不变地到达服务器,身份验证失败。Claude Code 在启动时报告此配置错误。245代理在请求内容中替换凭证,因此它必须看到它们。设置 [`network.tlsTerminate`](/docs/zh-CN/settings#sandbox-settings) 以便代理自己终止 TLS。没有它,掩盖会失败关闭:命令仍然只看到哨兵值,但哨兵值不变地到达服务器,身份验证失败。Claude Code 在启动时报告此配置错误。

246 246 

247下面的示例掩盖两个令牌。`GH_TOKEN` 仅在对 `api.github.com` 的请求上被替换,而 `NPM_TOKEN` 没有 `injectHosts`,在对 `network.allowedDomains` 中每个主机的请求上被替换。每个 `injectHosts` 条目本身必须被 `network.allowedDomains` 覆盖。247下面的示例掩盖两个令牌。`GH_TOKEN` 仅在对 `api.github.com` 的请求上被替换,而 `NPM_TOKEN` 没有 `injectHosts`,在对 `network.allowedDomains` 中每个主机的请求上被替换。每个 `injectHosts` 条目本身必须被 `network.allowedDomains` 覆盖。

248 248 


264}264}

265```265```

266 266 

267与 `deny` 不同,掩盖授权代理将你的真实凭证发送到列出的主机,因此它仅从你或你的管理员控制的设置中被遵守:用户设置、托管设置和 `--settings` CLI 标志。`mask` 条目、`network.tlsTerminate` 和 [`credentials.allowPlaintextInject`](/zh-CN/settings#sandbox-settings) 在存储库的 `.claude/settings.json` 或 `.claude/settings.local.json` 中被忽略。267与 `deny` 不同,掩盖授权代理将你的真实凭证发送到列出的主机,因此它仅从你或你的管理员控制的设置中被遵守:用户设置、托管设置和 `--settings` CLI 标志。`mask` 条目、`network.tlsTerminate` 和 [`credentials.allowPlaintextInject`](/docs/zh-CN/settings#sandbox-settings) 在存储库的 `.claude/settings.json` 或 `.claude/settings.local.json` 中被忽略。

268 268 

269当相同的变量在任何范围中以 `deny` 列出时,`deny` 优先。269当相同的变量在任何范围中以 `deny` 列出时,`deny` 优先。

270 270 


281* **默认写入行为**:对当前工作目录及其子目录的读写访问,加上 `$TMPDIR` 指向的会话临时目录281* **默认写入行为**:对当前工作目录及其子目录的读写访问,加上 `$TMPDIR` 指向的会话临时目录

282* **默认读取行为**:对整个计算机的读取访问,除了某些被拒绝的目录。注意此默认仍允许读取凭证文件,例如 `~/.aws/credentials` 和 `~/.ssh/`。使用 [`sandbox.credentials`](#protect-credentials) 阻止读取这些文件并取消设置密钥环境变量,或将路径添加到 `denyRead`。282* **默认读取行为**:对整个计算机的读取访问,除了某些被拒绝的目录。注意此默认仍允许读取凭证文件,例如 `~/.aws/credentials` 和 `~/.ssh/`。使用 [`sandbox.credentials`](#protect-credentials) 阻止读取这些文件并取消设置密钥环境变量,或将路径添加到 `denyRead`。

283* **被阻止的访问**:无法在没有明确权限的情况下修改当前工作目录和会话临时目录外的文件,包括 shell 配置文件(例如 `~/.bashrc`)和 `/bin/` 中的系统二进制文件283* **被阻止的访问**:无法在没有明确权限的情况下修改当前工作目录和会话临时目录外的文件,包括 shell 配置文件(例如 `~/.bashrc`)和 `/bin/` 中的系统二进制文件

284* **Git worktrees**:当工作目录是[链接的 git worktree](/zh-CN/worktrees)时,沙箱还允许写入主存储库的共享 `.git` 目录,以便 `git commit` 等命令可以更新引用和索引。对该目录内的 `hooks/` 和 `config` 的写入仍然被拒绝。284* **Git worktrees**:当工作目录是[链接的 git worktree](/docs/zh-CN/worktrees)时,沙箱还允许写入主存储库的共享 `.git` 目录,以便 `git commit` 等命令可以更新引用和索引。对该目录内的 `hooks/` 和 `config` 的写入仍然被拒绝。

285* **可配置**:通过设置定义自定义允许和拒绝的路径285* **可配置**:通过设置定义自定义允许和拒绝的路径

286 286 

287你可以使用设置中的 `sandbox.filesystem.allowWrite` 向其他路径授予写入访问权限。这些限制在操作系统级别强制执行,因此它们适用于所有子进程命令,包括 `kubectl`、`terraform` 和 `npm` 等工具,而不仅仅是 Claude 的文件工具。287你可以使用设置中的 `sandbox.filesystem.allowWrite` 向其他路径授予写入访问权限。这些限制在操作系统级别强制执行,因此它们适用于所有子进程命令,包括 `kubectl`、`terraform` 和 `npm` 等工具,而不仅仅是 Claude 的文件工具。


292 292 

293网络访问通过在沙箱外运行的代理服务器进行控制:293网络访问通过在沙箱外运行的代理服务器进行控制:

294 294 

295* **域名限制**:没有预先允许的域名。命令第一次需要新的域名时,Claude Code 会提示批准。{/* min-version: 2.1.191 */}从 v2.1.191 开始,选择"是"会在当前会话的其余时间内允许该主机,因此稍后连接到同一主机时不会再次提示。使用 [`allowedDomains`](/zh-CN/settings#sandbox-settings) 预先允许域名以避免提示。295* **域名限制**:没有预先允许的域名。命令第一次需要新的域名时,Claude Code 会提示批准。从 v2.1.191 开始,选择"是"会在当前会话的其余时间内允许该主机,因此稍后连接到同一主机时不会再次提示。使用 [`allowedDomains`](/docs/zh-CN/settings#sandbox-settings) 预先允许域名以避免提示。

296* **托管锁定**:如果在托管设置中设置了 [`allowManagedDomainsOnly`](/zh-CN/settings#sandbox-settings),非允许的域名会自动被阻止而不是提示,只有来自托管设置的 `allowedDomains` 被尊重。296* **托管锁定**:如果在托管设置中设置了 [`allowManagedDomainsOnly`](/docs/zh-CN/settings#sandbox-settings),非允许的域名会自动被阻止而不是提示,只有来自托管设置的 `allowedDomains` 被尊重。

297* **自定义代理支持**:高级用户可以在出站流量上实现自定义规则297* **自定义代理支持**:高级用户可以在出站流量上实现自定义规则

298* **全面覆盖**:限制适用于所有脚本、程序和由命令生成的子进程298* **全面覆盖**:限制适用于所有脚本、程序和由命令生成的子进程

299 299 

300<Note>300<Note>

301 内置代理基于请求的主机名强制执行允许列表,默认情况下不会终止或检查 TLS 流量。{/* min-version: 2.1.199 */}实验性的 [`network.tlsTerminate`](/zh-CN/settings#sandbox-settings) 设置在 Claude Code v2.1.199 及更高版本中可用,使内置代理自行终止 TLS,这是 [`mask` 凭证条目](#protect-credentials)所需的。有关默认设置的含义,请参阅 [Security limitations](#security-limitations),如果你的威胁模型需要 TLS 检查,请参阅 [Custom proxy configuration](#custom-proxy-configuration)。301 内置代理基于请求的主机名强制执行允许列表,默认情况下不会终止或检查 TLS 流量。实验性的 [`network.tlsTerminate`](/docs/zh-CN/settings#sandbox-settings) 设置在 Claude Code v2.1.199 及更高版本中可用,使内置代理自行终止 TLS,这是 [`mask` 凭证条目](#protect-credentials)所需的。有关默认设置的含义,请参阅 [Security limitations](#security-limitations),如果你的威胁模型需要 TLS 检查,请参阅 [Custom proxy configuration](#custom-proxy-configuration)。

302</Note>302</Note>

303 303 

304<h3 id="os-level-enforcement">304<h3 id="os-level-enforcement">


313 313 

314不支持 WSL1,因为 bubblewrap 需要仅在 WSL2 中可用的内核功能。这些操作系统级限制确保由 Claude Code 命令生成的所有子进程都继承相同的安全边界。314不支持 WSL1,因为 bubblewrap 需要仅在 WSL2 中可用的内核功能。这些操作系统级限制确保由 Claude Code 命令生成的所有子进程都继承相同的安全边界。

315 315 

316这些相同的原语作为独立的 [`@anthropic-ai/sandbox-runtime`](https://github.com/anthropic-experimental/sandbox-runtime) 包提供,[Sandbox environments](/zh-CN/sandbox-environments#sandbox-runtime) 页面将其作为包装整个 Claude Code 进程的单独方法进行介绍。316这些相同的原语作为独立的 [`@anthropic-ai/sandbox-runtime`](https://github.com/anthropic-experimental/sandbox-runtime) 包提供,[Sandbox environments](/docs/zh-CN/sandbox-environments#sandbox-runtime) 页面将其作为包装整个 Claude Code 进程的单独方法进行介绍。

317 317 

318<h2 id="how-sandboxing-relates-to-permissions-and-permission-modes">318<h2 id="how-sandboxing-relates-to-permissions-and-permission-modes">

319 沙箱如何与权限和权限模式相关319 沙箱如何与权限和权限模式相关

320</h2>320</h2>

321 321 

322沙箱、[permission rules](/zh-CN/permissions) 和 [permission modes](/zh-CN/permission-modes) 是互补的层。下面的部分介绍沙箱如何与每个交互。322沙箱、[permission rules](/docs/zh-CN/permissions) 和 [permission modes](/docs/zh-CN/permission-modes) 是互补的层。下面的部分介绍沙箱如何与每个交互。

323 323 

324<h3 id="permission-rules">324<h3 id="permission-rules">

325 权限规则325 权限规则


353 权限模式353 权限模式

354</h3>354</h3>

355 355 

356`/sandbox` 不是 [permission mode](/zh-CN/permission-modes)。权限模式决定工具调用是否运行以及是否首先提示你,而沙箱限制 Bash 命令运行后可以访问的内容。它们在控制的内容和替换每个操作提示的内容上有所不同:356`/sandbox` 不是 [permission mode](/docs/zh-CN/permission-modes)。权限模式决定工具调用是否运行以及是否首先提示你,而沙箱限制 Bash 命令运行后可以访问的内容。它们在控制的内容和替换每个操作提示的内容上有所不同:

357 357 

358| | 它控制什么 | 替换提示的内容 |358| | 它控制什么 | 替换提示的内容 |

359| :-------------------------------------------------------------------- | :---------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |359| :-------------------------------------------------------------------- | :---------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

360| `/sandbox` | Bash 命令运行后可以访问的内容 | 沙箱边界本身,在 [auto-allow mode](#sandbox-modes) 中 |360| `/sandbox` | Bash 命令运行后可以访问的内容 | 沙箱边界本身,在 [auto-allow mode](#sandbox-modes) 中 |

361| [Auto mode](/zh-CN/permission-modes#eliminate-prompts-with-auto-mode) | 每个工具调用是否运行 | 审查操作的分类器 |361| [Auto mode](/docs/zh-CN/permission-modes#eliminate-prompts-with-auto-mode) | 每个工具调用是否运行 | 审查操作的分类器 |

362| `--dangerously-skip-permissions` | 每个工具调用是否运行 | 无。[Protected path](/zh-CN/permission-modes#protected-paths) 检查也被跳过;仅显式 [ask rules](/zh-CN/permissions#manage-permissions)、连接器工具 [你的组织设置为 `ask`](/zh-CN/mcp#organization-controls-on-connector-tools)、标记为 [`requiresUserInteraction`](/zh-CN/mcp#require-approval-for-a-specific-tool) 的 MCP 工具,以及删除 `/` 或你的主目录仍会提示 |362| `--dangerously-skip-permissions` | 每个工具调用是否运行 | 无。[Protected path](/docs/zh-CN/permission-modes#protected-paths) 检查也被跳过;仅显式 [ask rules](/docs/zh-CN/permissions#manage-permissions)、连接器工具 [你的组织设置为 `ask`](/docs/zh-CN/mcp#organization-controls-on-connector-tools)、标记为 [`requiresUserInteraction`](/docs/zh-CN/mcp#require-approval-for-a-specific-tool) 的 MCP 工具,以及删除 `/` 或你的主目录仍会提示 |

363 363 

364沙箱的 [auto-allow mode](#sandbox-modes) 与 [auto mode](/zh-CN/permission-modes#eliminate-prompts-with-auto-mode) 分开:自动允许批准 Bash 命令,因为沙箱边界包含它们,而自动模式使用分类器审查操作。两者独立工作,可以结合。要为无人值守运行选择隔离边界,请参阅 [Sandbox environments](/zh-CN/sandbox-environments#how-isolation-relates-to-permission-modes)。364沙箱的 [auto-allow mode](#sandbox-modes) 与 [auto mode](/docs/zh-CN/permission-modes#eliminate-prompts-with-auto-mode) 分开:自动允许批准 Bash 命令,因为沙箱边界包含它们,而自动模式使用分类器审查操作。两者独立工作,可以结合。要为无人值守运行选择隔离边界,请参阅 [Sandbox environments](/docs/zh-CN/sandbox-environments#how-isolation-relates-to-permission-modes)。

365 365 

366<h2 id="configure-the-sandbox-for-your-organization">366<h2 id="configure-the-sandbox-for-your-organization">

367 为你的组织配置沙箱367 为你的组织配置沙箱


373 使用托管设置强制执行沙箱373 使用托管设置强制执行沙箱

374</h3>374</h3>

375 375 

376要为每个开发者要求沙箱,通过 [managed settings](/zh-CN/settings#settings-files) 提供 `sandbox` 密钥,可以是由你的 MDM 管理的文件,也可以是通过 Claude.ai 上的 [server-managed settings](/zh-CN/server-managed-settings)。376要为每个开发者要求沙箱,通过 [managed settings](/docs/zh-CN/settings#settings-files) 提供 `sandbox` 密钥,可以是由你的 MDM 管理的文件,也可以是通过 Claude.ai 上的 [server-managed settings](/docs/zh-CN/server-managed-settings)。

377 377 

378以下托管设置配置启用沙箱,如果沙箱无法初始化则拒绝启动 Claude Code,并防止模型在沙箱外重试命令:378以下托管设置配置启用沙箱,如果沙箱无法初始化则拒绝启动 Claude Code,并防止模型在沙箱外重试命令:

379 379 


402 402 

403对于布尔密钥(例如 `enabled` 和 `failIfUnavailable`),Claude Code 使用托管值并忽略开发者在本地设置的任何内容。对于数组密钥(例如 `excludedCommands` 和 `allowRead`),Claude Code 合并来自每个范围的条目,因此开发者可以追加扩大策略的条目。403对于布尔密钥(例如 `enabled` 和 `failIfUnavailable`),Claude Code 使用托管值并忽略开发者在本地设置的任何内容。对于数组密钥(例如 `excludedCommands` 和 `allowRead`),Claude Code 合并来自每个范围的条目,因此开发者可以追加扩大策略的条目。

404 404 

405在托管设置中将 `allowManagedReadPathsOnly` 设置为 `true`,以便仅尊重来自托管设置的 `allowRead` 条目。用户、项目和本地 `allowRead` 条目被忽略。这防止开发者扩大读取访问权限超过组织批准的路径。要以相同的方式将网络域锁定到托管值,请设置 [`allowManagedDomainsOnly`](/zh-CN/settings#sandbox-settings)。405在托管设置中将 `allowManagedReadPathsOnly` 设置为 `true`,以便仅尊重来自托管设置的 `allowRead` 条目。用户、项目和本地 `allowRead` 条目被忽略。这防止开发者扩大读取访问权限超过组织批准的路径。要以相同的方式将网络域锁定到托管值,请设置 [`allowManagedDomainsOnly`](/docs/zh-CN/settings#sandbox-settings)。

406 406 

407`excludedCommands` 没有等效的仅托管锁定,因此开发者总是可以追加在沙箱外运行其他命令的条目。保持托管列表狭窄。407`excludedCommands` 没有等效的仅托管锁定,因此开发者总是可以追加在沙箱外运行其他命令的条目。保持托管列表狭窄。

408 408 


417* 记录所有网络请求417* 记录所有网络请求

418* 与现有安全基础设施集成418* 与现有安全基础设施集成

419 419 

420要将 Claude Code 指向你的代理,请在 [sandbox settings](/zh-CN/settings#sandbox-settings) 中设置代理端口:420要将 Claude Code 指向你的代理,请在 [sandbox settings](/docs/zh-CN/settings#sandbox-settings) 中设置代理端口:

421 421 

422```json theme={null}422```json theme={null}

423{423{


438 438 

439* **命令因主机不允许错误而失败**:许多 CLI 工具需要到达特定的主机。在提示时授予权限会将主机添加到你的允许列表,以便该工具在将来在沙箱内运行。439* **命令因主机不允许错误而失败**:许多 CLI 工具需要到达特定的主机。在提示时授予权限会将主机添加到你的允许列表,以便该工具在将来在沙箱内运行。

440* **`jest` 挂起或失败**:`watchman` 与沙箱不兼容。改为运行 `jest --no-watchman`。440* **`jest` 挂起或失败**:`watchman` 与沙箱不兼容。改为运行 `jest --no-watchman`。

441* **Go 基础 CLI 在 macOS 上 TLS 验证失败**:`gh`、`gcloud` 和 `terraform` 等工具在 Seatbelt 下可能无法进行 TLS 验证。在 `excludedCommands` 中列出这些工具以在沙箱外运行它们。如果你使用 `httpProxyPort` 与 MITM 代理和自定义 CA,请改为将 [`enableWeakerNetworkIsolation`](/zh-CN/settings#sandbox-settings) 设置为 `true`。441* **Go 基础 CLI 在 macOS 上 TLS 验证失败**:`gh`、`gcloud` 和 `terraform` 等工具在 Seatbelt 下可能无法进行 TLS 验证。在 `excludedCommands` 中列出这些工具以在沙箱外运行它们。如果你使用 `httpProxyPort` 与 MITM 代理和自定义 CA,请改为将 [`enableWeakerNetworkIsolation`](/docs/zh-CN/settings#sandbox-settings) 设置为 `true`。

442* **`open`、`osascript` 或基于浏览器的身份验证流在 macOS 上因错误 `-600` 失败**:沙箱默认阻止 Apple Events。在你的用户、托管或 CLI 设置中将 [`allowAppleEvents`](/zh-CN/settings#sandbox-settings) 设置为 `true` 以允许它们。项目设置对此密钥被忽略。启用它会移除代码执行隔离,因为沙箱化命令随后可以在没有用户提示的情况下启动其他未沙箱化的应用程序,并向运行的应用程序发送 AppleScript 命令,受 macOS 自动化同意提示 (TCC) 的约束。或者,将命令添加到 `excludedCommands` 以在沙箱外运行它。442* **`open`、`osascript` 或基于浏览器的身份验证流在 macOS 上因错误 `-600` 失败**:沙箱默认阻止 Apple Events。在你的用户、托管或 CLI 设置中将 [`allowAppleEvents`](/docs/zh-CN/settings#sandbox-settings) 设置为 `true` 以允许它们。项目设置对此密钥被忽略。启用它会移除代码执行隔离,因为沙箱化命令随后可以在没有用户提示的情况下启动其他未沙箱化的应用程序,并向运行的应用程序发送 AppleScript 命令,受 macOS 自动化同意提示 (TCC) 的约束。或者,将命令添加到 `excludedCommands` 以在沙箱外运行它。

443* **`docker` 命令失败**:`docker` 与沙箱不兼容。将 `docker *` 添加到 `excludedCommands` 以在沙箱外运行它。443* **`docker` 命令失败**:`docker` 与沙箱不兼容。将 `docker *` 添加到 `excludedCommands` 以在沙箱外运行它。

444* **Bubblewrap 在容器内启动失败**:在无特权容器中,bubblewrap 无法挂载新的 `/proc` 文件系统。将 [`enableWeakerNestedSandbox`](/zh-CN/settings#sandbox-settings) 设置为 `true`,以便内部沙箱绑定挂载容器的现有 `/proc`。仅在外部容器已提供你需要的隔离边界时使用此设置,因为它向沙箱化命令公开进程信息,而新的 `/proc` 挂载会隐藏这些信息。444* **Bubblewrap 在容器内启动失败**:在无特权容器中,bubblewrap 无法挂载新的 `/proc` 文件系统。将 [`enableWeakerNestedSandbox`](/docs/zh-CN/settings#sandbox-settings) 设置为 `true`,以便内部沙箱绑定挂载容器的现有 `/proc`。仅在外部容器已提供你需要的隔离边界时使用此设置,因为它向沙箱化命令公开进程信息,而新的 `/proc` 挂载会隐藏这些信息。

445* **Linux 上的 Seccomp 过滤器**:seccomp 过滤器需要阻止 Unix 域套接字。`/sandbox` 中的 Dependencies 选项卡显示它是否可用。如果缺少,请运行 `npm install -g @anthropic-ai/sandbox-runtime` 以安装助手。445* **Linux 上的 Seccomp 过滤器**:seccomp 过滤器需要阻止 Unix 域套接字。`/sandbox` 中的 Dependencies 选项卡显示它是否可用。如果缺少,请运行 `npm install -g @anthropic-ai/sandbox-runtime` 以安装助手。

446* **`--dangerously-skip-permissions` 以 root 身份失败**:当在 Linux 和 macOS 上以 root 身份或通过 sudo 运行时,此标志被阻止,因为 root 访问加上没有权限提示可以修改系统上的任何文件或服务。检查在识别的沙箱内自动跳过。要在容器中自主运行,请使用 [dev container](/zh-CN/devcontainer) 配置,它以非 root 用户身份运行 Claude Code。446* **`--dangerously-skip-permissions` 以 root 身份失败**:当在 Linux 和 macOS 上以 root 身份或通过 sudo 运行时,此标志被阻止,因为 root 访问加上没有权限提示可以修改系统上的任何文件或服务。检查在识别的沙箱内自动跳过。要在容器中自主运行,请使用 [dev container](/docs/zh-CN/devcontainer) 配置,它以非 root 用户身份运行 Claude Code。

447 447 

448<h2 id="limitations">448<h2 id="limitations">

449 限制449 限制


455 安全限制455 安全限制

456</h3>456</h3>

457 457 

458* **网络过滤**:沙箱限制进程可以连接的域。默认情况下,内置代理不会终止或检查出站流量上的 TLS,因此不会检查加密连接的内容。实验性的 [`network.tlsTerminate`](/zh-CN/settings#sandbox-settings) 设置在代理处终止 TLS 以进行 [`mask` 凭证替换](#protect-credentials),但不添加内容过滤。你负责确保只有受信任的域在你的策略中被允许。458* **网络过滤**:沙箱限制进程可以连接的域。默认情况下,内置代理不会终止或检查出站流量上的 TLS,因此不会检查加密连接的内容。实验性的 [`network.tlsTerminate`](/docs/zh-CN/settings#sandbox-settings) 设置在代理处终止 TLS 以进行 [`mask` 凭证替换](#protect-credentials),但不添加内容过滤。你负责确保只有受信任的域在你的策略中被允许。

459 459 

460<Warning>460<Warning>

461 允许广泛的域名(例如 `github.com`)可能会为数据泄露创建路径。因为代理从客户端提供的主机名做出允许决定而不检查 TLS,在沙箱内运行的代码可能会使用 [domain fronting](https://en.wikipedia.org/wiki/Domain_fronting) 或类似技术来到达允许列表外的主机。如果你的威胁模型需要更强的保证,请配置一个 [custom proxy](#custom-proxy-configuration),它终止 TLS 并检查流量,并在沙箱内安装其 CA 证书。更强的 TLS 感知网络隔离是一个活跃的开发领域。461 允许广泛的域名(例如 `github.com`)可能会为数据泄露创建路径。因为代理从客户端提供的主机名做出允许决定而不检查 TLS,在沙箱内运行的代码可能会使用 [domain fronting](https://en.wikipedia.org/wiki/Domain_fronting) 或类似技术来到达允许列表外的主机。如果你的威胁模型需要更强的保证,请配置一个 [custom proxy](#custom-proxy-configuration),它终止 TLS 并检查流量,并在沙箱内安装其 CA 证书。更强的 TLS 感知网络隔离是一个活跃的开发领域。


481 481 

482沙箱隔离 Bash 子进程。其他工具在不同的边界下运行:482沙箱隔离 Bash 子进程。其他工具在不同的边界下运行:

483 483 

484* **内置文件工具**:Read、Edit 和 Write 直接使用权限系统,而不是通过沙箱运行。请参阅 [permissions](/zh-CN/permissions)。484* **内置文件工具**:Read、Edit 和 Write 直接使用权限系统,而不是通过沙箱运行。请参阅 [permissions](/docs/zh-CN/permissions)。

485* **计算机使用**:当 Claude 打开应用程序并控制你的屏幕时,它在你的实际桌面上运行,而不是在隔离的环境中。每个应用程序的权限提示控制每个应用程序。请参阅 [CLI 中的计算机使用](/zh-CN/computer-use) 或 [Desktop 中的计算机使用](/zh-CN/desktop#let-claude-use-your-computer)。485* **计算机使用**:当 Claude 打开应用程序并控制你的屏幕时,它在你的实际桌面上运行,而不是在隔离的环境中。每个应用程序的权限提示控制每个应用程序。请参阅 [CLI 中的计算机使用](/docs/zh-CN/computer-use) 或 [Desktop 中的计算机使用](/docs/zh-CN/desktop#let-claude-use-your-computer)。

486* **环境变量**:沙箱化 Bash 命令默认继承父进程环境,包括在那里设置的任何凭证。使用 [`sandbox.credentials`](#protect-credentials) 为沙箱化命令取消设置或掩盖特定变量,或设置 [`CLAUDE_CODE_SUBPROCESS_ENV_SCRUB`](/zh-CN/env-vars) 以从所有子进程中删除 Anthropic 和云提供商凭证。486* **环境变量**:沙箱化 Bash 命令默认继承父进程环境,包括在那里设置的任何凭证。使用 [`sandbox.credentials`](#protect-credentials) 为沙箱化命令取消设置或掩盖特定变量,或设置 [`CLAUDE_CODE_SUBPROCESS_ENV_SCRUB`](/docs/zh-CN/env-vars) 以从所有子进程中删除 Anthropic 和云提供商凭证。

487* **子代理**:[subagents](/zh-CN/sub-agents) 在与父会话相同的进程中运行,并使用相同的沙箱配置。当在父会话中启用沙箱时,子代理内的 Bash 命令被沙箱化。487* **子代理**:[subagents](/docs/zh-CN/sub-agents) 在与父会话相同的进程中运行,并使用相同的沙箱配置。当在父会话中启用沙箱时,子代理内的 Bash 命令被沙箱化。

488 488 

489<Warning>489<Warning>

490 有效的沙箱需要同时进行文件系统和网络隔离。没有网络隔离,被破坏的代理可能会泄露敏感文件,如 SSH 密钥。没有文件系统隔离,被破坏的代理可能会后门系统资源以获得网络访问权限。当你扩大默认值时,检查 `allowWrite` 路径、广泛的 `allowedDomains` 条目或 `excludedCommands` 异常是否不会撤销另一侧的限制。490 有效的沙箱需要同时进行文件系统和网络隔离。没有网络隔离,被破坏的代理可能会泄露敏感文件,如 SSH 密钥。没有文件系统隔离,被破坏的代理可能会后门系统资源以获得网络访问权限。当你扩大默认值时,检查 `allowWrite` 路径、广泛的 `allowedDomains` 条目或 `excludedCommands` 异常是否不会撤销另一侧的限制。


494 另请参阅494 另请参阅

495</h2>495</h2>

496 496 

497* [Sandbox environments](/zh-CN/sandbox-environments):比较内置沙箱与开发容器、容器和虚拟机497* [Sandbox environments](/docs/zh-CN/sandbox-environments):比较内置沙箱与开发容器、容器和虚拟机

498* [Security](/zh-CN/security):全面的安全功能和最佳实践498* [Security](/docs/zh-CN/security):全面的安全功能和最佳实践

499* [Permissions](/zh-CN/permissions):权限配置和访问控制499* [Permissions](/docs/zh-CN/permissions):权限配置和访问控制

500* [Settings](/zh-CN/settings):完整的配置参考500* [Settings](/docs/zh-CN/settings):完整的配置参考

501* [CLI reference](/zh-CN/cli-reference):命令行选项501* [CLI reference](/docs/zh-CN/cli-reference):命令行选项

scheduled-tasks.md +17 −17

Details

6 6 

7> 使用 /loop 和 cron 调度工具在 Claude Code 会话中重复运行提示词、轮询状态或设置一次性提醒。7> 使用 /loop 和 cron 调度工具在 Claude Code 会话中重复运行提示词、轮询状态或设置一次性提醒。

8 8 

9计划任务让 Claude 按间隔自动重新运行提示词。使用它们来轮询部署、监督 PR、检查长时间运行的构建,或在会话中稍后提醒自己做某事。要对事件进行实时反应而不是轮询,请参阅 [Channels](/zh-CN/channels):您的 CI 可以直接将失败推送到会话中。要保持会话工作转向转向直到满足条件而不是按间隔,请参阅 [`/goal`](/zh-CN/goal)。9计划任务让 Claude 按间隔自动重新运行提示词。使用它们来轮询部署、监督 PR、检查长时间运行的构建,或在会话中稍后提醒自己做某事。要对事件进行实时反应而不是轮询,请参阅 [Channels](/docs/zh-CN/channels):您的 CI 可以直接将失败推送到会话中。要保持会话工作转向转向直到满足条件而不是按间隔,请参阅 [`/goal`](/docs/zh-CN/goal)。

10 10 

11任务是会话范围的:它们存在于当前对话中,当您启动新对话时就会停止。使用 `--resume` 或 `--continue` 恢复会带回任何尚未[过期](#seven-day-expiry)的任务:在过去 7 天内创建的重复任务,或计划时间尚未到达的一次性任务。对于独立于任何会话而存在的调度,请使用 [Routines](/zh-CN/routines) 在 Anthropic 管理的基础设施上创建例程、设置 [Desktop 计划任务](/zh-CN/desktop-scheduled-tasks),或使用 [GitHub Actions](/zh-CN/github-actions)。11任务是会话范围的:它们存在于当前对话中,当您启动新对话时就会停止。使用 `--resume` 或 `--continue` 恢复会带回任何尚未[过期](#seven-day-expiry)的任务:在过去 7 天内创建的重复任务,或计划时间尚未到达的一次性任务。对于独立于任何会话而存在的调度,请使用 [Routines](/docs/zh-CN/routines) 在 Anthropic 管理的基础设施上创建例程、设置 [Desktop 计划任务](/docs/zh-CN/desktop-scheduled-tasks),或使用 [GitHub Actions](/docs/zh-CN/github-actions)。

12 12 

13<h2 id="compare-scheduling-options">13<h2 id="compare-scheduling-options">

14 比较调度选项14 比较调度选项


16 16 

17Claude Code offers three ways to schedule recurring or one-off work:17Claude Code offers three ways to schedule recurring or one-off work:

18 18 

19| | [Cloud](/en/routines) | [Desktop](/en/desktop-scheduled-tasks) | [`/loop`](/en/scheduled-tasks) |19| | [Cloud](/docs/en/routines) | [Desktop](/docs/en/desktop-scheduled-tasks) | [`/loop`](/docs/en/scheduled-tasks) |

20| :------------------------- | :----------------------------- | :------------------------------------- | :---------------------------------- |20| :------------------------- | :----------------------------- | :------------------------------------- | :---------------------------------- |

21| Runs on | Anthropic cloud | Your machine | Your machine |21| Runs on | Anthropic cloud | Your machine | Your machine |

22| Requires machine on | No | Yes | Yes |22| Requires machine on | No | Yes | Yes |

23| Requires open session | No | No | Yes |23| Requires open session | No | No | Yes |

24| Persistent across restarts | Yes | Yes | Restored on `--resume` if unexpired |24| Persistent across restarts | Yes | Yes | Restored on `--resume` if unexpired |

25| Access to local files | No (fresh clone) | Yes | Yes |25| Access to local files | No (fresh clone) | Yes | Yes |

26| MCP servers | Connectors configured per task | [Config files](/en/mcp) and connectors | Inherits from session |26| MCP servers | Connectors configured per task | [Config files](/docs/en/mcp) and connectors | Inherits from session |

27| Permission prompts | No (runs autonomously) | Configurable per task | Inherits from session |27| Permission prompts | No (runs autonomously) | Configurable per task | Inherits from session |

28| Customizable schedule | Via `/schedule` in the CLI | Yes | Yes |28| Customizable schedule | Via `/schedule` in the CLI | Yes | Yes |

29| Minimum interval | 1 hour | 1 minute | 1 minute |29| Minimum interval | 1 hour | 1 minute | 1 minute |


36 使用 /loop 重复运行提示词36 使用 /loop 重复运行提示词

37</h2>37</h2>

38 38 

39`/loop` [bundled skill](/zh-CN/commands) 是在会话保持打开时重复运行提示词的最快方式。间隔和提示词都是可选的,您提供的内容决定了循环的行为方式。39`/loop` [bundled skill](/docs/zh-CN/commands) 是在会话保持打开时重复运行提示词的最快方式。间隔和提示词都是可选的,您提供的内容决定了循环的行为方式。

40 40 

41| 您提供的内容 | 示例 | 发生的情况 |41| 您提供的内容 | 示例 | 发生的情况 |

42| :----- | :-------------------------- | :-------------------------------------------------------------------- |42| :----- | :-------------------------- | :-------------------------------------------------------------------- |


44| 仅提示词 | `/loop check the deploy` | 您的提示词在 Claude 选择的[间隔](#let-claude-choose-the-interval)上运行,每次迭代 |44| 仅提示词 | `/loop check the deploy` | 您的提示词在 Claude 选择的[间隔](#let-claude-choose-the-interval)上运行,每次迭代 |

45| 仅间隔或无 | `/loop` | [内置维护提示词](#run-the-built-in-maintenance-prompt)运行,或您的 `loop.md`(如果存在) |45| 仅间隔或无 | `/loop` | [内置维护提示词](#run-the-built-in-maintenance-prompt)运行,或您的 `loop.md`(如果存在) |

46 46 

47您也可以将 skill 作为提示词传递,例如 `/loop 20m /review-pr 1234`,以在每次迭代时重新运行该 skill。{/* min-version: 2.1.196 */}从 v2.1.196 开始,计划的触发仅运行 Claude [允许自己调用](/zh-CN/skills#control-who-invokes-a-skill)的 skill。以下内容作为纯文本到达 Claude,而不是执行:47您也可以将 skill 作为提示词传递,例如 `/loop 20m /review-pr 1234`,以在每次迭代时重新运行该 skill。从 v2.1.196 开始,计划的触发仅运行 Claude [允许自己调用](/docs/zh-CN/skills#control-who-invokes-a-skill)的 skill。以下内容作为纯文本到达 Claude,而不是执行:

48 48 

49* 内置命令,例如 `/permissions`、`/model` 或 `/clear`49* 内置命令,例如 `/permissions`、`/model` 或 `/clear`

50* 标记为 [`disable-model-invocation: true`](/zh-CN/skills#frontmatter-reference) 的 skill50* 标记为 [`disable-model-invocation: true`](/docs/zh-CN/skills#frontmatter-reference) 的 skill

51* 由 [`skillOverrides`](/zh-CN/skills#override-skill-visibility-from-settings) 设置或 `Skill` [deny rule](/zh-CN/skills#restrict-claude’s-skill-access) 从 Claude 扣留的 skill51* 由 [`skillOverrides`](/docs/zh-CN/skills#override-skill-visibility-from-settings) 设置或 `Skill` [deny rule](/docs/zh-CN/skills#restrict-claude’s-skill-access) 从 Claude 扣留的 skill

52* [MCP prompts](/zh-CN/mcp#use-mcp-prompts-as-commands),例如 `/mcp__github__list_prs`;MCP 服务器公开的 skill 仍然运行52* [MCP prompts](/docs/zh-CN/mcp#use-mcp-prompts-as-commands),例如 `/mcp__github__list_prs`;MCP 服务器公开的 skill 仍然运行

53 53 

54<h3 id="run-on-a-fixed-interval">54<h3 id="run-on-a-fixed-interval">

55 在固定间隔上运行55 在固定间隔上运行


77/loop check whether CI passed and address any review comments77/loop check whether CI passed and address any review comments

78```78```

79 79 

80当您要求动态 `/loop` 计划时,Claude 可能会直接使用 [Monitor tool](/zh-CN/tools-reference#monitor-tool)。Monitor 运行后台脚本并流式传输每个输出行,这完全避免了轮询,通常比在间隔上重新运行提示词更节省令牌且响应更快。80当您要求动态 `/loop` 计划时,Claude 可能会直接使用 [Monitor tool](/docs/zh-CN/tools-reference#monitor-tool)。Monitor 运行后台脚本并流式传输每个输出行,这完全避免了轮询,通常比在间隔上重新运行提示词更节省令牌且响应更快。

81 81 

82动态计划的循环出现在您的[计划任务列表](#manage-scheduled-tasks)中,就像任何其他任务一样,所以您可以以相同的方式列出或取消它。[抖动规则](#jitter)不适用于它,但[七天过期](#seven-day-expiry)适用:循环在您启动它七天后自动结束。82动态计划的循环出现在您的[计划任务列表](#manage-scheduled-tasks)中,就像任何其他任务一样,所以您可以以相同的方式列出或取消它。[抖动规则](#jitter)不适用于它,但[七天过期](#seven-day-expiry)适用:循环在您启动它七天后自动结束。

83 83 


141 141 

142要在 `/loop` 等待下一次迭代时停止它,请按 `Esc`。这会清除待处理的唤醒,所以循环不会再次触发。您通过[直接询问 Claude](#manage-scheduled-tasks)计划的任务不受 `Esc` 影响,会保留在原位,直到您删除它们。142要在 `/loop` 等待下一次迭代时停止它,请按 `Esc`。这会清除待处理的唤醒,所以循环不会再次触发。您通过[直接询问 Claude](#manage-scheduled-tasks)计划的任务不受 `Esc` 影响,会保留在原位,直到您删除它们。

143 143 

144在[自主进行模式](#let-claude-choose-the-interval)中,Claude 也可以在任务完成后通过调用 [`ScheduleWakeup` tool](/zh-CN/tools-reference) 并设置 `stop: true` 来自己结束循环,这会立即取消待处理的唤醒。如果迭代结束时既没有重新计划也没有停止,Claude Code 会在大约 20 分钟后计划一个备用唤醒,并在该迭代也不重新计划时结束循环。在 v2.1.202 之前,不重新计划是 Claude 自己结束循环的唯一方式。144在[自主进行模式](#let-claude-choose-the-interval)中,Claude 也可以在任务完成后通过调用 [`ScheduleWakeup` tool](/docs/zh-CN/tools-reference) 并设置 `stop: true` 来自己结束循环,这会立即取消待处理的唤醒。如果迭代结束时既没有重新计划也没有停止,Claude Code 会在大约 20 分钟后计划一个备用唤醒,并在该迭代也不重新计划时结束循环。在 v2.1.202 之前,不重新计划是 Claude 自己结束循环的唯一方式。

145 145 

146固定间隔上的循环会一直运行,直到您停止它们或[七天过去](#seven-day-expiry)。146固定间隔上的循环会一直运行,直到您停止它们或[七天过去](#seven-day-expiry)。

147 147 


208 七天过期208 七天过期

209</h3>209</h3>

210 210 

211重复任务在创建后 7 天自动过期。任务最后触发一次,然后删除自己。这限制了被遗忘的循环可以运行多长时间。如果您需要重复任务持续更长时间,请在过期前取消并重新创建它,或使用 [Routines](/zh-CN/routines) 或 [Desktop 计划任务](/zh-CN/desktop-scheduled-tasks) 进行持久调度。211重复任务在创建后 7 天自动过期。任务最后触发一次,然后删除自己。这限制了被遗忘的循环可以运行多长时间。如果您需要重复任务持续更长时间,请在过期前取消并重新创建它,或使用 [Routines](/docs/zh-CN/routines) 或 [Desktop 计划任务](/docs/zh-CN/desktop-scheduled-tasks) 进行持久调度。

212 212 

213<h2 id="cron-expression-reference">213<h2 id="cron-expression-reference">

214 Cron 表达式参考214 Cron 表达式参考


233 禁用计划任务233 禁用计划任务

234</h2>234</h2>

235 235 

236在您的环境中设置 `CLAUDE_CODE_DISABLE_CRON=1` 以完全禁用调度程序。cron 工具和 `/loop` 变得不可用,任何已计划的任务都停止触发。有关禁用标志的完整列表,请参阅[环境变量](/zh-CN/env-vars)。236在您的环境中设置 `CLAUDE_CODE_DISABLE_CRON=1` 以完全禁用调度程序。cron 工具和 `/loop` 变得不可用,任何已计划的任务都停止触发。有关禁用标志的完整列表,请参阅[环境变量](/docs/zh-CN/env-vars)。

237 237 

238<h2 id="limitations">238<h2 id="limitations">

239 限制239 限制


241 241 

242会话范围的调度有固有的限制:242会话范围的调度有固有的限制:

243 243 

244* 任务仅在 Claude Code 运行且空闲时触发。关闭终端或让会话退出会停止它们触发。[将会话放在后台](/zh-CN/agent-view#from-inside-a-session)会将 `/loop` 任务转移到后台会话,该会话继续运行而无需终端。244* 任务仅在 Claude Code 运行且空闲时触发。关闭终端或让会话退出会停止它们触发。[将会话放在后台](/docs/zh-CN/agent-view#from-inside-a-session)会将 `/loop` 任务转移到后台会话,该会话继续运行而无需终端。

245* 没有错过触发的追赶。如果任务的计划时间在 Claude 忙于长时间运行的请求时经过,它会在 Claude 变为空闲时触发一次,而不是每个错过的间隔触发一次。245* 没有错过触发的追赶。如果任务的计划时间在 Claude 忙于长时间运行的请求时经过,它会在 Claude 变为空闲时触发一次,而不是每个错过的间隔触发一次。

246* 启动新对话会清除所有会话范围的任务。使用 `claude --resume` 或 `claude --continue` 恢复会恢复尚未过期的任务:创建后七天内的重复任务,以及计划时间尚未到达的一次性任务。后台 Bash 和监视器任务在恢复时永远不会被恢复。246* 启动新对话会清除所有会话范围的任务。使用 `claude --resume` 或 `claude --continue` 恢复会恢复尚未过期的任务:创建后七天内的重复任务,以及计划时间尚未到达的一次性任务。后台 Bash 和监视器任务在恢复时永远不会被恢复。

247 247 

248对于需要无人值守运行的 cron 驱动自动化:248对于需要无人值守运行的 cron 驱动自动化:

249 249 

250* [Routines](/zh-CN/routines):在 Anthropic 管理的基础设施上按计划运行、通过 API 调用或在 GitHub 事件上运行250* [Routines](/docs/zh-CN/routines):在 Anthropic 管理的基础设施上按计划运行、通过 API 调用或在 GitHub 事件上运行

251* [GitHub Actions](/zh-CN/github-actions):在 CI 中使用 `schedule` 触发器251* [GitHub Actions](/docs/zh-CN/github-actions):在 CI 中使用 `schedule` 触发器

252* [Desktop 计划任务](/zh-CN/desktop-scheduled-tasks):在您的机器上本地运行252* [Desktop 计划任务](/docs/zh-CN/desktop-scheduled-tasks):在您的机器上本地运行

sessions.md +21 −21

Details

8 8 

9会话是与项目目录关联的已保存对话。Claude Code 在您工作时将其本地存储,因此您可以从中断处恢复、分支以尝试不同的方法,或在任务之间切换。9会话是与项目目录关联的已保存对话。Claude Code 在您工作时将其本地存储,因此您可以从中断处恢复、分支以尝试不同的方法,或在任务之间切换。

10 10 

11[桌面应用](/zh-CN/desktop#work-in-parallel-with-sessions)、[网页版 Claude Code](/zh-CN/claude-code-on-the-web) 和 [VS Code 扩展](/zh-CN/vs-code#resume-past-conversations)各自维护自己的会话历史记录。本页涵盖 CLI。11[桌面应用](/docs/zh-CN/desktop#work-in-parallel-with-sessions)、[网页版 Claude Code](/docs/zh-CN/claude-code-on-the-web) 和 [VS Code 扩展](/docs/zh-CN/vs-code#resume-past-conversations)各自维护自己的会话历史记录。本页涵盖 CLI。

12 12 

13<h2 id="resume-a-session">13<h2 id="resume-a-session">

14 恢复会话14 恢复会话


24| `claude --from-pr <number>` | 恢复链接到该拉取请求的会话 |24| `claude --from-pr <number>` | 恢复链接到该拉取请求的会话 |

25| `/resume` | 从活跃会话内切换到不同的对话 |25| `/resume` | 从活跃会话内切换到不同的对话 |

26 26 

27使用 [`claude -p`](/zh-CN/headless) 或 [Agent SDK](/zh-CN/agent-sdk/overview) 创建的会话不会出现在会话选择器中,但您仍然可以通过将其会话 ID 传递给 `claude --resume <session-id>` 来恢复它。从会话启动所在的目录运行此命令:会话 ID 查找的范围限于当前项目目录及其 git worktrees,因此在其他地方创建的会话会报告 `No conversation found with session ID: <session-id>`。27使用 [`claude -p`](/docs/zh-CN/headless) 或 [Agent SDK](/docs/zh-CN/agent-sdk/overview) 创建的会话不会出现在会话选择器中,但您仍然可以通过将其会话 ID 传递给 `claude --resume <session-id>` 来恢复它。从会话启动所在的目录运行此命令:会话 ID 查找的范围限于当前项目目录及其 git worktrees,因此在其他地方创建的会话会报告 `No conversation found with session ID: <session-id>`。

28 28 

29<h3 id="where-the-session-picker-looks">29<h3 id="where-the-session-picker-looks">

30 会话选择器查看的位置30 会话选择器查看的位置


32 32 

33会话按项目目录存储。默认情况下,会话选择器显示来自当前 worktree 的交互式会话,以及在其他地方启动但使用 `/add-dir` 添加了当前目录的会话。使用 `Ctrl+W` 扩展到存储库的所有 worktree,或使用 `Ctrl+A` 扩展到此计算机上的每个项目。33会话按项目目录存储。默认情况下,会话选择器显示来自当前 worktree 的交互式会话,以及在其他地方启动但使用 `/add-dir` 添加了当前目录的会话。使用 `Ctrl+W` 扩展到存储库的所有 worktree,或使用 `Ctrl+A` 扩展到此计算机上的每个项目。

34 34 

35从 v2.1.169 开始,使用 [`/cd`](/zh-CN/commands) 移动会话会将其重新定位到新目录的项目存储中,因此之后它会出现在该目录的选择器中。从 v2.1.196 开始,移动的会话在崩溃或强制退出后会保持不在旧目录的选择器中。在较早的版本中,当旧路径包含下划线等特殊字符时,在不干净的退出后,它也可能在旧目录的列表中重新出现。35从 v2.1.169 开始,使用 [`/cd`](/docs/zh-CN/commands) 移动会话会将其重新定位到新目录的项目存储中,因此之后它会出现在该目录的选择器中。从 v2.1.196 开始,移动的会话在崩溃或强制退出后会保持不在旧目录的选择器中。在较早的版本中,当旧路径包含下划线等特殊字符时,在不干净的退出后,它也可能在旧目录的列表中重新出现。

36 36 

37从同一存储库的另一个 worktree 选择会话会在原地恢复它。从不相关项目选择会话会将 `cd` 和恢复命令复制到您的剪贴板。37从同一存储库的另一个 worktree 选择会话会在原地恢复它。从不相关项目选择会话会将 `cd` 和恢复命令复制到您的剪贴板。

38 38 


54| 启动时 | `claude -n auth-refactor` |54| 启动时 | `claude -n auth-refactor` |

55| 在会话期间 | `/rename auth-refactor`。名称也会出现在提示栏上 |55| 在会话期间 | `/rename auth-refactor`。名称也会出现在提示栏上 |

56| 从会话选择器 | 突出显示会话并按 `Ctrl+R` |56| 从会话选择器 | 突出显示会话并按 `Ctrl+R` |

57| 在计划接受时 | 在 [Plan Mode](/zh-CN/permission-modes#analyze-before-you-edit-with-plan-mode) 中接受计划会从计划内容命名会话,除非您已经设置了一个 |57| 在计划接受时 | 在 [Plan Mode](/docs/zh-CN/permission-modes#analyze-before-you-edit-with-plan-mode) 中接受计划会从计划内容命名会话,除非您已经设置了一个 |

58 58 

59会话命名后,使用 `claude --resume <name>` 或 `/resume <name>` 返回到它。有关名称解析如何跨 worktrees 工作的信息,请参阅[恢复会话](#resume-a-session)。59会话命名后,使用 `claude --resume <name>` 或 `/resume <name>` 返回到它。有关名称解析如何跨 worktrees 工作的信息,请参阅[恢复会话](#resume-a-session)。

60 60 

61{/* min-version: 2.1.196 */}您从未命名的交互式会话在启动时仍会获得默认显示名称。需要 Claude Code v2.1.196 或更高版本。默认名称将工作目录的名称与两个字符的后缀组合在一起,例如 `my-app-3f`,并在运行会话的列表中标识会话,例如 [agent view](/zh-CN/agent-view) 和 `claude agents --json` 输出。61您从未命名的交互式会话在启动时仍会获得默认显示名称。需要 Claude Code v2.1.196 或更高版本。默认名称将工作目录的名称与两个字符的后缀组合在一起,例如 `my-app-3f`,并在运行会话的列表中标识会话,例如 [agent view](/docs/zh-CN/agent-view) 和 `claude agents --json` 输出。

62 62 

63默认名称不是恢复句柄:`claude --resume <name>`、`/resume <name>` 和会话选择器仅匹配您设置的名称。命名会话会替换默认名称。63默认名称不是恢复句柄:`claude --resume <name>`、`/resume <name>` 和会话选择器仅匹配您设置的名称。命名会话会替换默认名称。

64 64 


97/branch try-streaming-approach97/branch try-streaming-approach

98```98```

99 99 

100如果您省略名称,Claude Code 会根据对话中的第一个提示为新分支命名。从 v2.1.198 开始,这也适用于 [compaction](/zh-CN/how-claude-code-works#when-context-fills-up) 之后;较早的版本会回退到字面名称 `Branched conversation`,而不是查看 compaction 摘要之外的原始第一个提示。100如果您省略名称,Claude Code 会根据对话中的第一个提示为新分支命名。从 v2.1.198 开始,这也适用于 [compaction](/docs/zh-CN/how-claude-code-works#when-context-fills-up) 之后;较早的版本会回退到字面名称 `Branched conversation`,而不是查看 compaction 摘要之外的原始第一个提示。

101 101 

102从命令行,将 `--continue` 或 `--resume` 与 `--fork-session` 结合:102从命令行,将 `--continue` 或 `--resume` 与 `--fork-session` 结合:

103 103 


107 107 

108原始会话保持不变,并在会话选择器中保持可用。`/branch` 确认打印两个会话 ID:您现在所在的新分支和原始分支。要返回到原始分支,将其 ID 传递给 `/resume`、使用会话选择器或运行 `/resume <original-name>`。您使用"允许此会话"批准的权限不会转移到新分支。如果您在两个终端中恢复同一会话而不分叉,来自两者的消息会交错到一个文本记录中。108原始会话保持不变,并在会话选择器中保持可用。`/branch` 确认打印两个会话 ID:您现在所在的新分支和原始分支。要返回到原始分支,将其 ID 传递给 `/resume`、使用会话选择器或运行 `/resume <original-name>`。您使用"允许此会话"批准的权限不会转移到新分支。如果您在两个终端中恢复同一会话而不分叉,来自两者的消息会交错到一个文本记录中。

109 109 

110对于单个会话内基于 checkpoint 的回退,请参阅 [Checkpointing](/zh-CN/checkpointing)。110对于单个会话内基于 checkpoint 的回退,请参阅 [Checkpointing](/docs/zh-CN/checkpointing)。

111 111 

112<h2 id="manage-context-within-a-session">112<h2 id="manage-context-within-a-session">

113 管理会话内的上下文113 管理会话内的上下文


115 115 

116这些命令控制上下文窗口中的内容而不离开会话:116这些命令控制上下文窗口中的内容而不离开会话:

117 117 

118* **`/clear`**:以空上下文重新开始。之前的对话已保存并可通过 `/resume` 恢复,或在同一个 Claude Code 进程中,{/* min-version: 2.1.191 */}从[倒带菜单的上一个会话条目](/zh-CN/checkpointing#rewind-past-a-cleared-conversation)恢复118* **`/clear`**:以空上下文重新开始。之前的对话已保存并可通过 `/resume` 恢复,或在同一个 Claude Code 进程中,从[倒带菜单的上一个会话条目](/docs/zh-CN/checkpointing#rewind-past-a-cleared-conversation)恢复

119* **`/compact [instructions]`**:用摘要替换历史记录,可选地专注于您指定的内容119* **`/compact [instructions]`**:用摘要替换历史记录,可选地专注于您指定的内容

120* **`/context`**:显示当前消耗的上下文120* **`/context`**:显示当前消耗的上下文

121 121 

122有关压缩如何与 CLAUDE.md、skills 和规则交互的信息,请参阅[上下文窗口指南](/zh-CN/context-window)。有关何时清除与压缩的策略,请参阅[最佳实践](/zh-CN/best-practices#manage-your-session)。122有关压缩如何与 CLAUDE.md、skills 和规则交互的信息,请参阅[上下文窗口指南](/docs/zh-CN/context-window)。有关何时清除与压缩的策略,请参阅[最佳实践](/docs/zh-CN/best-practices#manage-your-session)。

123 123 

124<h2 id="export-and-locate-session-data">124<h2 id="export-and-locate-session-data">

125 导出和定位会话数据125 导出和定位会话数据


133 133 

134`/export` 生成一个供人阅读的呈现文本记录。下面的接口生成结构化数据供脚本解析:运行的 JSON 结果、会话文本记录文件的路径或事件的实时流。根据触发脚本的内容选择:134`/export` 生成一个供人阅读的呈现文本记录。下面的接口生成结构化数据供脚本解析:运行的 JSON 结果、会话文本记录文件的路径或事件的实时流。根据触发脚本的内容选择:

135 135 

136* **运行 Claude 一次并捕获结果**:使用 [`--output-format json` 或 `stream-json`](/zh-CN/headless#get-structured-output) 调用 `claude -p` 以捕获非交互式运行的结果、会话 ID、使用情况和成本作为结构化 JSON。136* **运行 Claude 一次并捕获结果**:使用 [`--output-format json` 或 `stream-json`](/docs/zh-CN/headless#get-structured-output) 调用 `claude -p` 以捕获非交互式运行的结果、会话 ID、使用情况和成本作为结构化 JSON。

137* **向现有会话提问**:将会话 ID 传递给 [`claude -p --resume`](/zh-CN/headless#continue-conversations) 以发送后续提示(例如摘要请求),并捕获结构化响应。137* **向现有会话提问**:将会话 ID 传递给 [`claude -p --resume`](/docs/zh-CN/headless#continue-conversations) 以发送后续提示(例如摘要请求),并捕获结构化响应。

138* **对会话事件做出反应**:读取 [hooks](/zh-CN/hooks#common-input-fields) 和 [status line commands](/zh-CN/statusline#available-data) 作为输入接收的 `transcript_path` 字段。`SessionEnd` hook 可以在会话结束时存档文本记录。138* **对会话事件做出反应**:读取 [hooks](/docs/zh-CN/hooks#common-input-fields) 和 [status line commands](/docs/zh-CN/statusline#available-data) 作为输入接收的 `transcript_path` 字段。`SessionEnd` hook 可以在会话结束时存档文本记录。

139* **在 TypeScript 或 Python 应用中嵌入 Claude**:使用 [Agent SDK](/zh-CN/agent-sdk/overview) 以编程方式接收每条消息。139* **在 TypeScript 或 Python 应用中嵌入 Claude**:使用 [Agent SDK](/docs/zh-CN/agent-sdk/overview) 以编程方式接收每条消息。

140 140 

141下面的示例使用第二个接口。它向现有会话发送后续提示,并使用 `jq` 读取答案:141下面的示例使用第二个接口。它向现有会话发送后续提示,并使用 `jq` 读取答案:

142 142 


154 154 

155| 目的 | 设置 | 位置 |155| 目的 | 设置 | 位置 |

156| ----------------- | --------------------------------------------------------- | -------------------------- |156| ----------------- | --------------------------------------------------------- | -------------------------- |

157| 将存储移出 `~/.claude` | [`CLAUDE_CONFIG_DIR`](/zh-CN/env-vars) | 环境变量 |157| 将存储移出 `~/.claude` | [`CLAUDE_CONFIG_DIR`](/docs/zh-CN/env-vars) | 环境变量 |

158| 更改 30 天保留期 | [`cleanupPeriodDays`](/zh-CN/settings#available-settings) | `settings.json` |158| 更改 30 天保留期 | [`cleanupPeriodDays`](/docs/zh-CN/settings#available-settings) | `settings.json` |

159| 在所有模式下禁止文本记录写入 | [`CLAUDE_CODE_SKIP_PROMPT_HISTORY`](/zh-CN/env-vars) | 环境变量 |159| 在所有模式下禁止文本记录写入 | [`CLAUDE_CODE_SKIP_PROMPT_HISTORY`](/docs/zh-CN/env-vars) | 环境变量 |

160| 禁止一次非交互式运行的写入 | [`--no-session-persistence`](/zh-CN/cli-reference) | 与 `claude -p` 一起使用的 CLI 标志 |160| 禁止一次非交互式运行的写入 | [`--no-session-persistence`](/docs/zh-CN/cli-reference) | 与 `claude -p` 一起使用的 CLI 标志 |

161 161 

162<h2 id="see-also">162<h2 id="see-also">

163 另请参阅163 另请参阅


165 165 

166这些页面涵盖相关的会话和并行性机制:166这些页面涵盖相关的会话和并行性机制:

167 167 

168* [Worktrees](/zh-CN/worktrees):在单独的分支上运行隔离的并行会话168* [Worktrees](/docs/zh-CN/worktrees):在单独的分支上运行隔离的并行会话

169* [Checkpointing](/zh-CN/checkpointing):将代码和对话回退到较早的点169* [Checkpointing](/docs/zh-CN/checkpointing):将代码和对话回退到较早的点

170* [Context window](/zh-CN/context-window):什么填充上下文以及什么在压缩中保留170* [Context window](/docs/zh-CN/context-window):什么填充上下文以及什么在压缩中保留

171* [Non-interactive mode](/zh-CN/headless):`claude -p` 下的会话行为171* [Non-interactive mode](/docs/zh-CN/headless):`claude -p` 下的会话行为

settings.md +159 −159

Details

6 6 

7> 使用全局和项目级设置以及环境变量配置 Claude Code。7> 使用全局和项目级设置以及环境变量配置 Claude Code。

8 8 

9Claude Code 提供多种设置来配置其行为以满足您的需求。您可以通过运行 `/config` 命令来配置 Claude Code,这会打开一个选项卡式设置界面,您可以在其中查看状态信息并修改配置选项。{/* min-version: 2.1.181 */}从 v2.1.181 开始,您可以通过向 `/config` 传递 `key=value` 来更改单个选项而无需打开界面,例如 `/config verbose=true`。9Claude Code 提供多种设置来配置其行为以满足您的需求。您可以通过运行 `/config` 命令来配置 Claude Code,这会打开一个选项卡式设置界面,您可以在其中查看状态信息并修改配置选项。从 v2.1.181 开始,您可以通过向 `/config` 传递 `key=value` 来更改单个选项而无需打开界面,例如 `/config verbose=true`。

10 10 

11<h2 id="configuration-scopes">11<h2 id="configuration-scopes">

12 配置作用域12 配置作用域


96 * `.claude/settings.json` 用于检入源代码管理并与您的团队共享的设置96 * `.claude/settings.json` 用于检入源代码管理并与您的团队共享的设置

97 * `.claude/settings.local.json` 用于未检入的设置,适用于个人偏好和实验。Claude Code 创建 `.claude/settings.local.json` 时,会配置 git 以忽略该文件。如果您自己创建该文件,请手动将其添加到 gitignore。97 * `.claude/settings.local.json` 用于未检入的设置,适用于个人偏好和实验。Claude Code 创建 `.claude/settings.local.json` 时,会配置 git 以忽略该文件。如果您自己创建该文件,请手动将其添加到 gitignore。

98 98 

99 因为此文件属于您而不是存储库,其权限 `allow` 规则生效时无需 [workspace trust](/zh-CN/permissions#project-allow-rules-and-workspace-trust) 步骤,而 `.claude/settings.json` allow 规则需要此步骤。如果存储库提供该文件,例如通过提交它,workspace trust 仍然适用。99 因为此文件属于您而不是存储库,其权限 `allow` 规则生效时无需 [workspace trust](/docs/zh-CN/permissions#project-allow-rules-and-workspace-trust) 步骤,而 `.claude/settings.json` allow 规则需要此步骤。如果存储库提供该文件,例如通过提交它,workspace trust 仍然适用。

100* **Managed 设置**:对于需要集中控制的组织,Claude Code 支持多种 managed 设置的交付机制。所有机制都使用相同的 JSON 格式,无法被用户或项目设置覆盖:100* **Managed 设置**:对于需要集中控制的组织,Claude Code 支持多种 managed 设置的交付机制。所有机制都使用相同的 JSON 格式,无法被用户或项目设置覆盖:

101 101 

102 * **服务器管理的设置**:通过 Anthropic 的服务器从 claude.ai 管理员控制台交付,或从自托管的 [Claude apps gateway](/zh-CN/claude-apps-gateway)。请参阅[服务器管理的设置](/zh-CN/server-managed-settings)。102 * **服务器管理的设置**:通过 Anthropic 的服务器从 claude.ai 管理员控制台交付,或从自托管的 [Claude apps gateway](/docs/zh-CN/claude-apps-gateway)。请参阅[服务器管理的设置](/docs/zh-CN/server-managed-settings)。

103 * **MDM/OS 级别策略**:通过 macOS 和 Windows 上的本机设备管理交付:103 * **MDM/OS 级别策略**:通过 macOS 和 Windows 上的本机设备管理交付:

104 * macOS:`com.anthropic.claudecode` managed preferences 域。plist 的顶级键镜像 `managed-settings.json`,嵌套设置为字典,数组为 plist 数组。通过 Jamf、Iru (Kandji) 或类似 MDM 工具中的配置文件部署。104 * macOS:`com.anthropic.claudecode` managed preferences 域。plist 的顶级键镜像 `managed-settings.json`,嵌套设置为字典,数组为 plist 数组。通过 Jamf、Iru (Kandji) 或类似 MDM 工具中的配置文件部署。

105 * Windows:`HKLM\SOFTWARE\Policies\ClaudeCode` 注册表项,带有包含 JSON 的 `Settings` 值(REG\_SZ 或 REG\_EXPAND\_SZ)(通过组策略或 Intune 部署)105 * Windows:`HKLM\SOFTWARE\Policies\ClaudeCode` 注册表项,带有包含 JSON 的 `Settings` 值(REG\_SZ 或 REG\_EXPAND\_SZ)(通过组策略或 Intune 部署)


120 120 

121 使用数字前缀来控制合并顺序,例如 `10-telemetry.json` 和 `20-security.json`。121 使用数字前缀来控制合并顺序,例如 `10-telemetry.json` 和 `20-security.json`。

122 122 

123 请参阅 [managed 设置](/zh-CN/permissions#managed-only-settings) 和 [Managed MCP 配置](/zh-CN/managed-mcp) 了解详情。123 请参阅 [managed 设置](/docs/zh-CN/permissions#managed-only-settings) 和 [Managed MCP 配置](/docs/zh-CN/managed-mcp) 了解详情。

124 124 

125 此[存储库](https://github.com/anthropics/claude-code/tree/main/examples/mdm)包含 Jamf、Iru (Kandji)、Intune 和组策略的启动部署模板。使用这些作为起点并根据您的需求进行调整。125 此[存储库](https://github.com/anthropics/claude-code/tree/main/examples/mdm)包含 Jamf、Iru (Kandji)、Intune 和组策略的启动部署模板。使用这些作为起点并根据您的需求进行调整。

126 126 

127 <Note>127 <Note>

128 Managed 部署还可以使用 `strictKnownMarketplaces` 限制**插件市场添加**。有关更多信息,请参阅 [Managed 市场限制](/zh-CN/plugin-marketplaces#managed-marketplace-restrictions)。128 Managed 部署还可以使用 `strictKnownMarketplaces` 限制**插件市场添加**。有关更多信息,请参阅 [Managed 市场限制](/docs/zh-CN/plugin-marketplaces#managed-marketplace-restrictions)。

129 </Note>129 </Note>

130* **其他配置**存储在 `~/.claude.json` 中。此文件包含您的 OAuth 会话、[MCP server](/zh-CN/mcp) 配置(用于用户和本地作用域)、每个项目的状态(允许的工具、信任设置)和各种缓存。项目作用域的 MCP servers 单独存储在 `.mcp.json` 中。130* **其他配置**存储在 `~/.claude.json` 中。此文件包含您的 OAuth 会话、[MCP server](/docs/zh-CN/mcp) 配置(用于用户和本地作用域)、每个项目的状态(允许的工具、信任设置)和各种缓存。项目作用域的 MCP servers 单独存储在 `.mcp.json` 中。

131 131 

132<Note>132<Note>

133 Claude Code 自动创建配置文件的时间戳备份,并保留最近五个备份以防止数据丢失。133 Claude Code 自动创建配置文件的时间戳备份,并保留最近五个备份以防止数据丢失。


169 编辑何时生效169 编辑何时生效

170</h3>170</h3>

171 171 

172Claude Code 监视您的设置文件,并在它们更改时重新加载它们,因此对大多数键的编辑会在运行的会话中应用,无需重启。这包括 `permissions`、`hooks` 和凭证助手(如 `apiKeyHelper`)。重新加载涵盖用户、项目、本地和 managed 设置,并为每个检测到的更改触发 [`ConfigChange` hook](/zh-CN/hooks#configchange)。172Claude Code 监视您的设置文件,并在它们更改时重新加载它们,因此对大多数键的编辑会在运行的会话中应用,无需重启。这包括 `permissions`、`hooks` 和凭证助手(如 `apiKeyHelper`)。重新加载涵盖用户、项目、本地和 managed 设置,并为每个检测到的更改触发 [`ConfigChange` hook](/docs/zh-CN/hooks#configchange)。

173 173 

174少数几个键在会话启动时读取一次,并在下次重启时应用:174少数几个键在会话启动时读取一次,并在下次重启时应用:

175 175 

176* `model`:使用 [`/model`](/zh-CN/model-config#setting-your-model) 在会话中切换176* `model`:使用 [`/model`](/docs/zh-CN/model-config#setting-your-model) 在会话中切换

177* [`outputStyle`](/zh-CN/output-styles):系统提示的一部分,在 `/clear` 或重启时重建177* [`outputStyle`](/docs/zh-CN/output-styles):系统提示的一部分,在 `/clear` 或重启时重建

178 178 

179<h3 id="invalid-entries-in-managed-settings">179<h3 id="invalid-entries-in-managed-settings">

180 Managed 设置中的无效条目180 Managed 设置中的无效条目

181</h3>181</h3>

182 182 

183Managed 设置宽容地解析。当 managed 配置包含验证架构失败的条目时,Claude Code 会删除该条目,记录警告,并强制执行所有剩余的有效策略。单个拼写错误无法禁用组织的其余策略。运行 [`/doctor`](/zh-CN/debug-your-config#check-resolved-settings) 以列出被删除的条目及其源文件和字段。此行为在所有三种交付机制中一致:[服务器管理的设置](/zh-CN/server-managed-settings)、通过 MDM 部署的 plist 和注册表策略,以及 `managed-settings.json` 文件。需要 Claude Code v2.1.169 或更高版本。183Managed 设置宽容地解析。当 managed 配置包含验证架构失败的条目时,Claude Code 会删除该条目,记录警告,并强制执行所有剩余的有效策略。单个拼写错误无法禁用组织的其余策略。运行 [`/doctor`](/docs/zh-CN/debug-your-config#check-resolved-settings) 以列出被删除的条目及其源文件和字段。此行为在所有三种交付机制中一致:[服务器管理的设置](/docs/zh-CN/server-managed-settings)、通过 MDM 部署的 plist 和注册表策略,以及 `managed-settings.json` 文件。需要 Claude Code v2.1.169 或更高版本。

184 184 

185安全强制字段按字段处理,而不是在存在但无效时被整体删除:185安全强制字段按字段处理,而不是在存在但无效时被整体删除:

186 186 

187| 字段 | 存在但无效时的行为 |187| 字段 | 存在但无效时的行为 |

188| :--------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------- |188| :--------------------------- | :------------------------------------------------------------------------------------------------------------------------ |

189| `allowedMcpServers` | 作为空允许列表强制执行,因此在修复值之前不允许任何 MCP servers。单个无效条目被删除,有效子集被强制执行。 |189| `allowedMcpServers` | 作为空允许列表强制执行,因此在修复值之前不允许任何 MCP servers。单个无效条目被删除,有效子集被强制执行。 |

190| `allowManagedMcpServersOnly` | 视为 `true`。 |190| `allowManagedMcpServersOnly` | 视为 `true`。 |

191| `availableModels` | {/* min-version: 2.1.175 */}作为空允许列表强制执行,因此在修复值之前仅默认模型可用。单个非字符串条目被删除,有效子集被强制执行。适用于 v2.1.175 及更高版本。 |191| `availableModels` | 作为空允许列表强制执行,因此在修复值之前仅默认模型可用。单个非字符串条目被删除,有效子集被强制执行。适用于 v2.1.175 及更高版本。 |

192| `enforceAvailableModels` | {/* min-version: 2.1.175 */}视为 `true`。适用于 v2.1.175 及更高版本。 |192| `enforceAvailableModels` | 视为 `true`。适用于 v2.1.175 及更高版本。 |

193| `forceLoginOrgUUID` | 在修复值之前不允许任何组织登录。 |193| `forceLoginOrgUUID` | 在修复值之前不允许任何组织登录。 |

194| `deniedMcpServers` | 单个无效条目被删除,有效子集被强制执行。完全无效的值被丢弃并显示警告,因为拒绝每个 server 会阻止策略从未命名的 servers。 |194| `deniedMcpServers` | 单个无效条目被删除,有效子集被强制执行。完全无效的值被丢弃并显示警告,因为拒绝每个 server 会阻止策略从未命名的 servers。 |

195| `sandbox.credentials` | {/* min-version: 2.1.191 */}在 `files` 或 `envVars` 中的单个无效条目被删除并显示警告,有效子集被强制执行。完全无效的 `credentials` 值被丢弃并显示警告,同时 `sandbox` 的其余部分仍然适用。适用于 v2.1.191 及更高版本。 |195| `sandbox.credentials` | 在 `files` 或 `envVars` 中的单个无效条目被删除并显示警告,有效子集被强制执行。完全无效的 `credentials` 值被丢弃并显示警告,同时 `sandbox` 的其余部分仍然适用。适用于 v2.1.191 及更高版本。 |

196 196 

197`requiredMinimumVersion` 和 `requiredMaximumVersion` 通过设计失败开放:无效值被删除而不是强制执行,因此坏策略推送无法阻止 Claude Code 启动。197`requiredMinimumVersion` 和 `requiredMaximumVersion` 通过设计失败开放:无效值被删除而不是强制执行,因此坏策略推送无法阻止 Claude Code 启动。

198 198 


200 200 

201* 交互式会话在启动时显示列出无效条目的对话框。201* 交互式会话在启动时显示列出无效条目的对话框。

202* 使用 `-p` 的无头运行将摘要打印到 stderr。202* 使用 `-p` 的无头运行将摘要打印到 stderr。

203* [`claude doctor`](/zh-CN/debug-your-config) 列出每个无效条目及其源和字段。203* [`claude doctor`](/docs/zh-CN/debug-your-config) 列出每个无效条目及其源和字段。

204 204 

205在将策略更改部署到整个机队之前,在测试机器上运行 `claude doctor` 来验证策略更改。205在将策略更改部署到整个机队之前,在测试机器上运行 `claude doctor` 来验证策略更改。

206 206 


213`settings.json` 支持多个选项:213`settings.json` 支持多个选项:

214 214 

215| 键 | 描述 | 示例 |215| 键 | 描述 | 示例 |

216| :--------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------ |216| :--------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------ |

217| `advisorModel` | 服务器端 [advisor tool](/zh-CN/advisor) 的模型。接受模型别名,如 `"opus"`、`"sonnet"` 或 `"fable"`({/* min-version: 2.1.170 */}v2.1.170+),或完整模型 ID。当您运行 `/advisor` 时自动写入。取消设置以禁用 advisor | `"opus"` |217| `advisorModel` | 服务器端 [advisor tool](/docs/zh-CN/advisor) 的模型。接受模型别名,如 `"opus"`、`"sonnet"` 或 `"fable"`(v2.1.170+),或完整模型 ID。当您运行 `/advisor` 时自动写入。取消设置以禁用 advisor | `"opus"` |

218| `agent` | 将主线程作为命名 subagent 运行,并为从 `claude agents` 分派的会话设置默认 agent。应用该 subagent 的系统提示、工具限制和模型。请参阅[显式调用 subagents](/zh-CN/sub-agents#invoke-subagents-explicitly) | `"code-reviewer"` |218| `agent` | 将主线程作为命名 subagent 运行,并为从 `claude agents` 分派的会话设置默认 agent。应用该 subagent 的系统提示、工具限制和模型。请参阅[显式调用 subagents](/docs/zh-CN/sub-agents#invoke-subagents-explicitly) | `"code-reviewer"` |

219| `agentPushNotifEnabled` | {/* min-version: 2.1.119 */}**默认**:`false`。当[远程控制](/zh-CN/remote-control)已连接时,允许 Claude 向您的手机发送主动推送通知,例如当长任务完成时。在 `/config` 中显示为**Claude 决定时推送**。请参阅[移动推送通知](/zh-CN/remote-control#mobile-push-notifications)。需要 Claude Code v2.1.119 或更高版本 | `true` |219| `agentPushNotifEnabled` | **默认**:`false`。当[远程控制](/docs/zh-CN/remote-control)已连接时,允许 Claude 向您的手机发送主动推送通知,例如当长任务完成时。在 `/config` 中显示为**Claude 决定时推送**。请参阅[移动推送通知](/docs/zh-CN/remote-control#mobile-push-notifications)。需要 Claude Code v2.1.119 或更高版本 | `true` |

220| `allowAllClaudeAiMcps` | (仅 Managed 设置)加载 claude.ai connectors 与部署的 `managed-mcp.json` 一起,否则后者会获得独占控制并抑制它们。请参阅 [Managed MCP 配置](/zh-CN/managed-mcp) | `true` |220| `allowAllClaudeAiMcps` | (仅 Managed 设置)加载 claude.ai connectors 与部署的 `managed-mcp.json` 一起,否则后者会获得独占控制并抑制它们。请参阅 [Managed MCP 配置](/docs/zh-CN/managed-mcp) | `true` |

221| `allowedChannelPlugins` | (仅 Managed 设置)可能推送消息的频道插件的允许列表。设置后替换默认 Anthropic 允许列表。未定义 = 回退到默认值,空数组 = 阻止所有频道插件。需要 `channelsEnabled: true`。请参阅[限制哪些频道插件可以运行](/zh-CN/channels#restrict-which-channel-plugins-can-run) | `[{ "marketplace": "claude-plugins-official", "plugin": "telegram" }]` |221| `allowedChannelPlugins` | (仅 Managed 设置)可能推送消息的频道插件的允许列表。设置后替换默认 Anthropic 允许列表。未定义 = 回退到默认值,空数组 = 阻止所有频道插件。需要 `channelsEnabled: true`。请参阅[限制哪些频道插件可以运行](/docs/zh-CN/channels#restrict-which-channel-plugins-can-run) | `[{ "marketplace": "claude-plugins-official", "plugin": "telegram" }]` |

222| `allowedHttpHookUrls` | HTTP hooks 可能针对的 URL 模式的允许列表。支持 `*` 作为通配符。设置后,具有不匹配 URL 的 hooks 被阻止。未定义 = 无限制,空数组 = 阻止所有 HTTP hooks。数组跨设置源合并。请参阅 [Hook 配置](#hook-configuration) | `["https://hooks.example.com/*"]` |222| `allowedHttpHookUrls` | HTTP hooks 可能针对的 URL 模式的允许列表。支持 `*` 作为通配符。设置后,具有不匹配 URL 的 hooks 被阻止。未定义 = 无限制,空数组 = 阻止所有 HTTP hooks。数组跨设置源合并。请参阅 [Hook 配置](#hook-configuration) | `["https://hooks.example.com/*"]` |

223| `allowedMcpServers` | 在 managed-settings.json 中设置时,用户可以配置的 MCP servers 的允许列表。未定义 = 无限制,空数组 = 锁定。适用于所有作用域。拒绝列表优先。请参阅 [Managed MCP 配置](/zh-CN/managed-mcp) | `[{ "serverName": "github" }]` |223| `allowedMcpServers` | 在 managed-settings.json 中设置时,用户可以配置的 MCP servers 的允许列表。未定义 = 无限制,空数组 = 锁定。适用于所有作用域。拒绝列表优先。请参阅 [Managed MCP 配置](/docs/zh-CN/managed-mcp) | `[{ "serverName": "github" }]` |

224| `allowManagedHooksOnly` | (仅 Managed 设置)仅加载 managed hooks、SDK hooks 和在 managed 设置 `enabledPlugins` 中强制启用的插件中的 hooks。用户、项目和所有其他插件 hooks 被阻止。请参阅 [Hook 配置](#hook-configuration) | `true` |224| `allowManagedHooksOnly` | (仅 Managed 设置)仅加载 managed hooks、SDK hooks 和在 managed 设置 `enabledPlugins` 中强制启用的插件中的 hooks。用户、项目和所有其他插件 hooks 被阻止。请参阅 [Hook 配置](#hook-configuration) | `true` |

225| `allowManagedMcpServersOnly` | (仅 Managed 设置)仅尊重来自 managed 设置的 `allowedMcpServers`。`deniedMcpServers` 仍从所有源合并。用户仍可以添加 MCP servers,但仅应用管理员定义的允许列表。请参阅 [Managed MCP 配置](/zh-CN/managed-mcp) | `true` |225| `allowManagedMcpServersOnly` | (仅 Managed 设置)仅尊重来自 managed 设置的 `allowedMcpServers`。`deniedMcpServers` 仍从所有源合并。用户仍可以添加 MCP servers,但仅应用管理员定义的允许列表。请参阅 [Managed MCP 配置](/docs/zh-CN/managed-mcp) | `true` |

226| `allowManagedPermissionRulesOnly` | (仅 Managed 设置)防止用户和项目设置定义 `allow`、`ask` 或 `deny` 权限规则。仅应用 managed 设置中的规则。请参阅 [Managed 专用设置](/zh-CN/permissions#managed-only-settings) | `true` |226| `allowManagedPermissionRulesOnly` | (仅 Managed 设置)防止用户和项目设置定义 `allow`、`ask` 或 `deny` 权限规则。仅应用 managed 设置中的规则。请参阅 [Managed 专用设置](/docs/zh-CN/permissions#managed-only-settings) | `true` |

227| `alwaysThinkingEnabled` | 为所有会话默认启用[扩展思考](/zh-CN/model-config#extended-thinking)。通常通过 `/config` 命令而不是直接编辑来配置。要强制禁用思考,无论此设置如何,请在 `env` 中设置 [`MAX_THINKING_TOKENS=0`](/zh-CN/env-vars),这会禁用 Anthropic API 上的思考,除了 Fable 5,它无法关闭思考。在[第三方提供商](/zh-CN/third-party-integrations)上,这会省略 `thinking` 参数,自适应推理模型仍可能思考 | `true` |227| `alwaysThinkingEnabled` | 为所有会话默认启用[扩展思考](/docs/zh-CN/model-config#extended-thinking)。通常通过 `/config` 命令而不是直接编辑来配置。要强制禁用思考,无论此设置如何,请在 `env` 中设置 [`MAX_THINKING_TOKENS=0`](/docs/zh-CN/env-vars),这会禁用 Anthropic API 上的思考,除了 Fable 5,它无法关闭思考。在[第三方提供商](/docs/zh-CN/third-party-integrations)上,这会省略 `thinking` 参数,自适应推理模型仍可能思考 | `true` |

228| `apiKeyHelper` | 自定义脚本,在系统 shell(macOS 和 Linux 上为 `/bin/sh`,Windows 上为 `cmd`)中运行,以生成身份验证值。此值将作为 `X-Api-Key` 和 `Authorization: Bearer` 标头发送用于模型请求。使用 [`CLAUDE_CODE_API_KEY_HELPER_TTL_MS`](/zh-CN/env-vars) 设置刷新间隔 | `/bin/generate_temp_api_key.sh` |228| `apiKeyHelper` | 自定义脚本,在系统 shell(macOS 和 Linux 上为 `/bin/sh`,Windows 上为 `cmd`)中运行,以生成身份验证值。此值将作为 `X-Api-Key` 和 `Authorization: Bearer` 标头发送用于模型请求。使用 [`CLAUDE_CODE_API_KEY_HELPER_TTL_MS`](/docs/zh-CN/env-vars) 设置刷新间隔 | `/bin/generate_temp_api_key.sh` |

229| `askUserQuestionTimeout` | {/* min-version: 2.1.200 */}**默认**:`"never"`。未回答的 [`AskUserQuestion`](/zh-CN/tools-reference) 对话框自动继续的空闲时间,使用您已选择的任何选项。接受 `"60s"`、`"5m"`、`"10m"` 或 `"never"`。使用默认值,问题等待您回答。在 `/config` 中显示为**问题自动继续超时**,将此键写入用户设置。不从项目或本地设置读取。需要 Claude Code v2.1.200 或更高版本 | `"5m"` |229| `askUserQuestionTimeout` | **默认**:`"never"`。未回答的 [`AskUserQuestion`](/docs/zh-CN/tools-reference) 对话框自动继续的空闲时间,使用您已选择的任何选项。接受 `"60s"`、`"5m"`、`"10m"` 或 `"never"`。使用默认值,问题等待您回答。在 `/config` 中显示为**问题自动继续超时**,将此键写入用户设置。不从项目或本地设置读取。需要 Claude Code v2.1.200 或更高版本 | `"5m"` |

230| `attribution` | 自定义 git 提交和拉取请求的归属。请参阅[归属设置](#attribution-settings) | `{"commit": "🤖 Generated with Claude Code", "pr": ""}` |230| `attribution` | 自定义 git 提交和拉取请求的归属。请参阅[归属设置](#attribution-settings) | `{"commit": "🤖 Generated with Claude Code", "pr": ""}` |

231| `autoCompactEnabled` | {/* min-version: 2.1.119 */}**默认**:`true`。当上下文接近限制时自动压缩对话。在 `/config` 中显示为**自动压缩**。要通过环境变量禁用,请在 `env` 中设置 [`DISABLE_AUTO_COMPACT`](/zh-CN/env-vars) | `false` |231| `autoCompactEnabled` | **默认**:`true`。当上下文接近限制时自动压缩对话。在 `/config` 中显示为**自动压缩**。要通过环境变量禁用,请在 `env` 中设置 [`DISABLE_AUTO_COMPACT`](/docs/zh-CN/env-vars) | `false` |

232| `autoMemoryDirectory` | [自动内存](/zh-CN/memory#storage-location)存储的自定义目录。接受绝对路径或 `~/` 前缀的路径。从项目或本地设置接受,仅在您接受工作区信任对话框后,因为克隆的存储库可能提供此文件 | `"~/my-memory-dir"` |232| `autoMemoryDirectory` | [自动内存](/docs/zh-CN/memory#storage-location)存储的自定义目录。接受绝对路径或 `~/` 前缀的路径。从项目或本地设置接受,仅在您接受工作区信任对话框后,因为克隆的存储库可能提供此文件 | `"~/my-memory-dir"` |

233| `autoMemoryEnabled` | **默认**:`true`。启用[自动内存](/zh-CN/memory#enable-or-disable-auto-memory)。当为 `false` 时,Claude 不从自动内存目录读取或写入。您也可以在会话期间使用 `/memory` 切换此选项。要通过环境变量禁用,请在 `env` 中设置 [`CLAUDE_CODE_DISABLE_AUTO_MEMORY`](/zh-CN/env-vars) | `false` |233| `autoMemoryEnabled` | **默认**:`true`。启用[自动内存](/docs/zh-CN/memory#enable-or-disable-auto-memory)。当为 `false` 时,Claude 不从自动内存目录读取或写入。您也可以在会话期间使用 `/memory` 切换此选项。要通过环境变量禁用,请在 `env` 中设置 [`CLAUDE_CODE_DISABLE_AUTO_MEMORY`](/docs/zh-CN/env-vars) | `false` |

234| `autoMode` | 自定义[自动模式](/zh-CN/permission-modes#eliminate-prompts-with-auto-mode)分类器阻止和允许的内容。包含 `environment`、`allow`、`soft_deny` 和 `hard_deny` 散文规则数组。在数组中包含字面字符串 `"$defaults"` 以在该位置继承内置规则。请参阅[配置自动模式](/zh-CN/auto-mode-config)。仅从用户设置、`--settings` 标志和 managed 设置读取。在项目 `.claude/settings.json` 和本地 `.claude/settings.local.json` 中被忽略。{/* min-version: 2.1.207 */}在 v2.1.207 之前,`.claude/settings.local.json` 也被读取 | `{"soft_deny": ["$defaults", "Never run terraform apply"]}` |234| `autoMode` | 自定义[自动模式](/docs/zh-CN/permission-modes#eliminate-prompts-with-auto-mode)分类器阻止和允许的内容。包含 `environment`、`allow`、`soft_deny` 和 `hard_deny` 散文规则数组。在数组中包含字面字符串 `"$defaults"` 以在该位置继承内置规则。请参阅[配置自动模式](/docs/zh-CN/auto-mode-config)。仅从用户设置、`--settings` 标志和 managed 设置读取。在项目 `.claude/settings.json` 和本地 `.claude/settings.local.json` 中被忽略。在 v2.1.207 之前,`.claude/settings.local.json` 也被读取 | `{"soft_deny": ["$defaults", "Never run terraform apply"]}` |

235| `autoMode.classifyAllShell` | {/* min-version: 2.1.193 */}**默认**:`false`。当为 `true` 时,在自动模式活跃时暂停每个 Bash 和 PowerShell 允许规则,以便所有 shell 命令通过分类器路由,而不仅仅是匹配任意代码执行模式的规则。请参阅[通过分类器路由所有 shell 命令](/zh-CN/auto-mode-config#route-all-shell-commands-through-the-classifier)。需要 Claude Code v2.1.193 或更高版本 | `true` |235| `autoMode.classifyAllShell` | **默认**:`false`。当为 `true` 时,在自动模式活跃时暂停每个 Bash 和 PowerShell 允许规则,以便所有 shell 命令通过分类器路由,而不仅仅是匹配任意代码执行模式的规则。请参阅[通过分类器路由所有 shell 命令](/docs/zh-CN/auto-mode-config#route-all-shell-commands-through-the-classifier)。需要 Claude Code v2.1.193 或更高版本 | `true` |

236| `autoScrollEnabled` | **默认**:`true`。在[全屏渲染](/zh-CN/fullscreen)中,跟随新输出到对话的底部。在 `/config` 中显示为**自动滚动**。权限提示仍在此关闭时滚动到视图中 | `false` |236| `autoScrollEnabled` | **默认**:`true`。在[全屏渲染](/docs/zh-CN/fullscreen)中,跟随新输出到对话的底部。在 `/config` 中显示为**自动滚动**。权限提示仍在此关闭时滚动到视图中 | `false` |

237| `autoUpdatesChannel` | **默认**:`"latest"`。遵循更新的发布渠道。使用 `"stable"` 获取通常约一周前的版本并跳过有主要回归的版本,或使用 `"latest"` 获取最新版本。要完全禁用自动更新,请在 `env` 中设置 [`DISABLE_AUTOUPDATER`](/zh-CN/setup#disable-auto-updates) | `"stable"` |237| `autoUpdatesChannel` | **默认**:`"latest"`。遵循更新的发布渠道。使用 `"stable"` 获取通常约一周前的版本并跳过有主要回归的版本,或使用 `"latest"` 获取最新版本。要完全禁用自动更新,请在 `env` 中设置 [`DISABLE_AUTOUPDATER`](/docs/zh-CN/setup#disable-auto-updates) | `"stable"` |

238| `availableModels` | 限制用户可以为主会话、[subagents](/zh-CN/sub-agents)、[skills](/zh-CN/skills) 和 [advisor](/zh-CN/advisor) 选择的模型。不影响默认选项,除非 `enforceAvailableModels` 也被设置。请参阅[限制模型选择](/zh-CN/model-config#restrict-model-selection) | `["sonnet", "haiku"]` |238| `availableModels` | 限制用户可以为主会话、[subagents](/docs/zh-CN/sub-agents)、[skills](/docs/zh-CN/skills) 和 [advisor](/docs/zh-CN/advisor) 选择的模型。不影响默认选项,除非 `enforceAvailableModels` 也被设置。请参阅[限制模型选择](/docs/zh-CN/model-config#restrict-model-selection) | `["sonnet", "haiku"]` |

239| `awaySummaryEnabled` | 在您离开终端几分钟后返回时显示单行会话回顾。设置为 `false` 或在 `/config` 中关闭会话回顾以禁用。与 [`CLAUDE_CODE_ENABLE_AWAY_SUMMARY`](/zh-CN/env-vars) 相同 | `true` |239| `awaySummaryEnabled` | 在您离开终端几分钟后返回时显示单行会话回顾。设置为 `false` 或在 `/config` 中关闭会话回顾以禁用。与 [`CLAUDE_CODE_ENABLE_AWAY_SUMMARY`](/docs/zh-CN/env-vars) 相同 | `true` |

240| `awsAuthRefresh` | 修改 `.aws` 目录的自定义脚本(请参阅[高级凭证配置](/zh-CN/amazon-bedrock#advanced-credential-configuration)) | `aws sso login --profile myprofile` |240| `awsAuthRefresh` | 修改 `.aws` 目录的自定义脚本(请参阅[高级凭证配置](/docs/zh-CN/amazon-bedrock#advanced-credential-configuration)) | `aws sso login --profile myprofile` |

241| `awsCredentialExport` | 输出包含 AWS 凭证的 JSON 的自定义脚本(请参阅[高级凭证配置](/zh-CN/amazon-bedrock#advanced-credential-configuration)) | `/bin/generate_aws_grant.sh` |241| `awsCredentialExport` | 输出包含 AWS 凭证的 JSON 的自定义脚本(请参阅[高级凭证配置](/docs/zh-CN/amazon-bedrock#advanced-credential-configuration)) | `/bin/generate_aws_grant.sh` |

242| `axScreenReader` | {/* min-version: 2.1.181 */}渲染屏幕阅读器友好的输出:没有装饰性边框或动画的平面文本。屏幕阅读器模式使用经典渲染器,因此在其活跃时 `tui` 设置无效;附加的[后台会话](/zh-CN/agent-view)仍渲染全屏。[`CLAUDE_AX_SCREEN_READER`](/zh-CN/env-vars) 环境变量和 [`--ax-screen-reader`](/zh-CN/cli-reference#cli-flags) 标志优先。需要 Claude Code v2.1.181 或更高版本 | `true` |242| `axScreenReader` | 渲染屏幕阅读器友好的输出:没有装饰性边框或动画的平面文本。屏幕阅读器模式使用经典渲染器,因此在其活跃时 `tui` 设置无效;附加的[后台会话](/docs/zh-CN/agent-view)仍渲染全屏。[`CLAUDE_AX_SCREEN_READER`](/docs/zh-CN/env-vars) 环境变量和 [`--ax-screen-reader`](/docs/zh-CN/cli-reference#cli-flags) 标志优先。需要 Claude Code v2.1.181 或更高版本 | `true` |

243| `blockedMarketplaces` | (仅 Managed 设置)市场源的阻止列表。在市场添加和插件安装、更新、刷新和自动更新时强制执行,因此在设置策略之前添加的市场无法用于获取插件。被阻止的源在下载前被检查,因此它们永远不会接触文件系统。请参阅 [Managed 市场限制](/zh-CN/plugin-marketplaces#managed-marketplace-restrictions) | `[{ "source": "github", "repo": "untrusted/plugins" }]` |243| `blockedMarketplaces` | (仅 Managed 设置)市场源的阻止列表。在市场添加和插件安装、更新、刷新和自动更新时强制执行,因此在设置策略之前添加的市场无法用于获取插件。被阻止的源在下载前被检查,因此它们永远不会接触文件系统。请参阅 [Managed 市场限制](/docs/zh-CN/plugin-marketplaces#managed-marketplace-restrictions) | `[{ "source": "github", "repo": "untrusted/plugins" }]` |

244| `browserExternalPageTools` | (仅 Managed 设置)设置为 `"disabled"` 以防止 Claude 使用工具读取或作用于桌面应用[浏览器窗格](/zh-CN/desktop#browse-external-sites)中的外部页面。用户仍可以自己导航到外部站点,本地开发服务器预览不受影响 | `"disabled"` |244| `browserExternalPageTools` | (仅 Managed 设置)设置为 `"disabled"` 以防止 Claude 使用工具读取或作用于桌面应用[浏览器窗格](/docs/zh-CN/desktop#browse-external-sites)中的外部页面。用户仍可以自己导航到外部站点,本地开发服务器预览不受影响 | `"disabled"` |

245| `channelsEnabled` | (仅 Managed 设置)为组织允许 [channels](/zh-CN/channels)。在 claude.ai Team 和 Enterprise 计划上,当此项未设置或为 `false` 时,channels 被阻止。对于使用 API 密钥身份验证的 [Anthropic Console](/zh-CN/authentication#claude-console-authentication) 账户,channels 默认被允许,除非您的组织部署 managed 设置,在这种情况下此键必须设置为 `true` | `true` |245| `channelsEnabled` | (仅 Managed 设置)为组织允许 [channels](/docs/zh-CN/channels)。在 claude.ai Team 和 Enterprise 计划上,当此项未设置或为 `false` 时,channels 被阻止。对于使用 API 密钥身份验证的 [Anthropic Console](/docs/zh-CN/authentication#claude-console-authentication) 账户,channels 默认被允许,除非您的组织部署 managed 设置,在这种情况下此键必须设置为 `true` | `true` |

246| `claudeMd` | (仅 Managed 设置)CLAUDE.md 风格的说明,作为组织管理的内存注入。仅在 managed 或策略设置中设置时被尊重,在用户、项目和本地设置中被忽略。请参阅[组织范围的 CLAUDE.md](/zh-CN/memory#deploy-organization-wide-claude-md) | `"Always run make lint before committing."` |246| `claudeMd` | (仅 Managed 设置)CLAUDE.md 风格的说明,作为组织管理的内存注入。仅在 managed 或策略设置中设置时被尊重,在用户、项目和本地设置中被忽略。请参阅[组织范围的 CLAUDE.md](/docs/zh-CN/memory#deploy-organization-wide-claude-md) | `"Always run make lint before committing."` |

247| `claudeMdExcludes` | 加载[内存](/zh-CN/memory)时要跳过的 `CLAUDE.md` 文件的 Glob 模式或绝对路径。模式与绝对文件路径匹配。仅适用于用户、项目和本地内存;managed 策略文件无法被排除 | `["**/vendor/**/CLAUDE.md"]` |247| `claudeMdExcludes` | 加载[内存](/docs/zh-CN/memory)时要跳过的 `CLAUDE.md` 文件的 Glob 模式或绝对路径。模式与绝对文件路径匹配。仅适用于用户、项目和本地内存;managed 策略文件无法被排除 | `["**/vendor/**/CLAUDE.md"]` |

248| `cleanupPeriodDays` | **默认**:`30` 天,最少 `1`。Claude Code 删除[会话文件和其他应用程序数据](/zh-CN/claude-directory#cleaned-up-automatically)早于此期间的在启动时。设置 `0` 会被拒绝并显示验证错误。相同的年龄截止也适用于[孤立 worktrees](/zh-CN/worktrees#clean-up-worktrees) 在启动时自动删除。{/* min-version: 2.1.203 */}如果 Claude Code 无法读取或解析设置文件,它会暂停保留清理扫描并在 `/status` 中显示警告,直到您修复文件,除非 [managed 设置](/zh-CN/server-managed-settings)提供 `cleanupPeriodDays`,在这种情况下扫描以 managed 值运行。在 v2.1.203 之前,清理以 30 天默认值在该状态下运行,可能删除较长 `cleanupPeriodDays` 打算保留的记录;30 天以上的文件从未被删除。要完全禁用记录写入,请设置 [`CLAUDE_CODE_SKIP_PROMPT_HISTORY`](/zh-CN/env-vars) 环境变量。在非交互模式中,与 `-p` 一起传递 `--no-session-persistence` 或在 Agent SDK 中设置 `persistSession: false`。 | `20` |248| `cleanupPeriodDays` | **默认**:`30` 天,最少 `1`。Claude Code 删除[会话文件和其他应用程序数据](/docs/zh-CN/claude-directory#cleaned-up-automatically)早于此期间的在启动时。设置 `0` 会被拒绝并显示验证错误。相同的年龄截止也适用于[孤立 worktrees](/docs/zh-CN/worktrees#clean-up-worktrees) 在启动时自动删除。如果 Claude Code 无法读取或解析设置文件,它会暂停保留清理扫描并在 `/status` 中显示警告,直到您修复文件,除非 [managed 设置](/docs/zh-CN/server-managed-settings)提供 `cleanupPeriodDays`,在这种情况下扫描以 managed 值运行。在 v2.1.203 之前,清理以 30 天默认值在该状态下运行,可能删除较长 `cleanupPeriodDays` 打算保留的记录;30 天以上的文件从未被删除。要完全禁用记录写入,请设置 [`CLAUDE_CODE_SKIP_PROMPT_HISTORY`](/docs/zh-CN/env-vars) 环境变量。在非交互模式中,与 `-p` 一起传递 `--no-session-persistence` 或在 Agent SDK 中设置 `persistSession: false`。 | `20` |

249| `companyAnnouncements` | 在启动时显示给用户的公告。如果提供多个公告,它们将随机循环显示。 | `["Welcome to Acme Corp! Review our code guidelines at docs.acme.com"]` |249| `companyAnnouncements` | 在启动时显示给用户的公告。如果提供多个公告,它们将随机循环显示。 | `["Welcome to Acme Corp! Review our code guidelines at docs.acme.com"]` |

250| `defaultShell` | **默认**:`"bash"`,或在 Bash 不可用时在 Windows 上为 `"powershell"`。输入框 `!` 命令的默认 shell。接受 `"bash"` 或 `"powershell"`。设置 `"powershell"` 会在 Windows 上通过 PowerShell 路由交互式 `!` 命令。需要 `CLAUDE_CODE_USE_POWERSHELL_TOOL=1`。请参阅 [PowerShell tool](/zh-CN/tools-reference#powershell-tool) | `"powershell"` |250| `defaultShell` | **默认**:`"bash"`,或在 Bash 不可用时在 Windows 上为 `"powershell"`。输入框 `!` 命令的默认 shell。接受 `"bash"` 或 `"powershell"`。设置 `"powershell"` 会在 Windows 上通过 PowerShell 路由交互式 `!` 命令。需要 `CLAUDE_CODE_USE_POWERSHELL_TOOL=1`。请参阅 [PowerShell tool](/docs/zh-CN/tools-reference#powershell-tool) | `"powershell"` |

251| `deniedMcpServers` | 在 managed-settings.json 中设置时,明确阻止的 MCP servers 的拒绝列表。适用于所有作用域,包括 managed servers。拒绝列表优先于允许列表。请参阅 [Managed MCP 配置](/zh-CN/managed-mcp) | `[{ "serverName": "filesystem" }]` |251| `deniedMcpServers` | 在 managed-settings.json 中设置时,明确阻止的 MCP servers 的拒绝列表。适用于所有作用域,包括 managed servers。拒绝列表优先于允许列表。请参阅 [Managed MCP 配置](/docs/zh-CN/managed-mcp) | `[{ "serverName": "filesystem" }]` |

252| `disableAgentView` | 设置为 `true` 以关闭[后台代理和代理视图](/zh-CN/agent-view):`claude agents`、`--bg`、`/background` 和按需主管。通常在 [managed 设置](/zh-CN/permissions#managed-settings)中设置。等同于将 `CLAUDE_CODE_DISABLE_AGENT_VIEW` 设置为 `1` | `true` |252| `disableAgentView` | 设置为 `true` 以关闭[后台代理和代理视图](/docs/zh-CN/agent-view):`claude agents`、`--bg`、`/background` 和按需主管。通常在 [managed 设置](/docs/zh-CN/permissions#managed-settings)中设置。等同于将 `CLAUDE_CODE_DISABLE_AGENT_VIEW` 设置为 `1` | `true` |

253| `disableAllHooks` | 禁用所有 [hooks](/zh-CN/hooks) 和任何自定义[状态行](/zh-CN/statusline) | `true` |253| `disableAllHooks` | 禁用所有 [hooks](/docs/zh-CN/hooks) 和任何自定义[状态行](/docs/zh-CN/statusline) | `true` |

254| `disableArtifact` | 设置为 `true` 以禁用 [Artifact](/zh-CN/artifacts) 工具,该工具将会话输出发布为 claude.ai 上的私有网页。等同于将 `CLAUDE_CODE_DISABLE_ARTIFACT` 设置为 `1` | `true` |254| `disableArtifact` | 设置为 `true` 以禁用 [Artifact](/docs/zh-CN/artifacts) 工具,该工具将会话输出发布为 claude.ai 上的私有网页。等同于将 `CLAUDE_CODE_DISABLE_ARTIFACT` 设置为 `1` | `true` |

255| `disableAutoMode` | 设置为 `"disable"` 以防止[自动模式](/zh-CN/permission-modes#eliminate-prompts-with-auto-mode)被激活。从 `Shift+Tab` 循环中删除 `auto` 并在启动时拒绝 `--permission-mode auto`。在[managed 设置](/zh-CN/permissions#managed-settings)中最有用,用户无法覆盖它 | `"disable"` |255| `disableAutoMode` | 设置为 `"disable"` 以防止[自动模式](/docs/zh-CN/permission-modes#eliminate-prompts-with-auto-mode)被激活。从 `Shift+Tab` 循环中删除 `auto` 并在启动时拒绝 `--permission-mode auto`。在[managed 设置](/docs/zh-CN/permissions#managed-settings)中最有用,用户无法覆盖它 | `"disable"` |

256| `disableBrowserExternalNavigation` | (仅 Managed 设置)设置为 `true` 以关闭桌面应用[浏览器窗格](/zh-CN/desktop#browse-external-sites)中的外部浏览。用户和 Claude 都无法导航到外部站点,localhost 开发服务器预览不受影响。值必须是 JSON 布尔值 `true`;字符串 `"true"` 被忽略 | `true` |256| `disableBrowserExternalNavigation` | (仅 Managed 设置)设置为 `true` 以关闭桌面应用[浏览器窗格](/docs/zh-CN/desktop#browse-external-sites)中的外部浏览。用户和 Claude 都无法导航到外部站点,localhost 开发服务器预览不受影响。值必须是 JSON 布尔值 `true`;字符串 `"true"` 被忽略 | `true` |

257| `disableBundledSkills` | 设置为 `true` 以禁用 Claude Code 附带的 [skills](/zh-CN/skills) 和工作流:捆绑的 skills 和工作流被完全删除,而内置斜杠命令(如 `/init`)保持可键入但对模型隐藏。`/doctor` 保持可键入,如内置命令;用 [`DISABLE_DOCTOR_COMMAND`](/zh-CN/env-vars) 隐藏它。来自插件、`.claude/skills/` 和 `.claude/commands/` 的 skills 不受影响。等同于将 `CLAUDE_CODE_DISABLE_BUNDLED_SKILLS` 设置为 `1` | `true` |257| `disableBundledSkills` | 设置为 `true` 以禁用 Claude Code 附带的 [skills](/docs/zh-CN/skills) 和工作流:捆绑的 skills 和工作流被完全删除,而内置斜杠命令(如 `/init`)保持可键入但对模型隐藏。`/doctor` 保持可键入,如内置命令;用 [`DISABLE_DOCTOR_COMMAND`](/docs/zh-CN/env-vars) 隐藏它。来自插件、`.claude/skills/` 和 `.claude/commands/` 的 skills 不受影响。等同于将 `CLAUDE_CODE_DISABLE_BUNDLED_SKILLS` 设置为 `1` | `true` |

258| `disableClaudeAiConnectors` | {/* min-version: 2.1.182 */}禁用 [claude.ai MCP connectors](/zh-CN/mcp#use-mcp-servers-from-claude-ai),以便它们不被自动获取或连接。在任何设置作用域中设置。任何源中的 `true` 优先,因此已检入的项目 `.claude/settings.json` 可以选择存储库退出云连接器,但项目级 `false` 无法覆盖用户或策略级 `true`。通过 `--mcp-config` 显式传递的 servers 不受影响。要拒绝单个连接器而不是所有连接器,请改用 [`deniedMcpServers`](/zh-CN/managed-mcp)。需要 Claude Code v2.1.182 或更高版本 | `true` |258| `disableClaudeAiConnectors` | 禁用 [claude.ai MCP connectors](/docs/zh-CN/mcp#use-mcp-servers-from-claude-ai),以便它们不被自动获取或连接。在任何设置作用域中设置。任何源中的 `true` 优先,因此已检入的项目 `.claude/settings.json` 可以选择存储库退出云连接器,但项目级 `false` 无法覆盖用户或策略级 `true`。通过 `--mcp-config` 显式传递的 servers 不受影响。要拒绝单个连接器而不是所有连接器,请改用 [`deniedMcpServers`](/docs/zh-CN/managed-mcp)。需要 Claude Code v2.1.182 或更高版本 | `true` |

259| `disableDeepLinkRegistration` | 设置为 `"disable"` 以防止 Claude Code 在启动时向操作系统注册 `claude-cli://` 协议处理程序。[深链接](/zh-CN/deep-links)让外部工具通过预填充的提示打开 Claude Code 会话。在协议处理程序注册受限或单独管理的环境中很有用 | `"disable"` |259| `disableDeepLinkRegistration` | 设置为 `"disable"` 以防止 Claude Code 在启动时向操作系统注册 `claude-cli://` 协议处理程序。[深链接](/docs/zh-CN/deep-links)让外部工具通过预填充的提示打开 Claude Code 会话。在协议处理程序注册受限或单独管理的环境中很有用 | `"disable"` |

260| `disabledMcpjsonServers` | 要拒绝的 `.mcp.json` 文件中特定 MCP servers 的列表 | `["filesystem"]` |260| `disabledMcpjsonServers` | 要拒绝的 `.mcp.json` 文件中特定 MCP servers 的列表 | `["filesystem"]` |

261| `disableRemoteControl` | {/* min-version: 2.1.128 */}禁用[远程控制](/zh-CN/remote-control):阻止 `claude remote-control`、`--remote-control` 标志、自动启动和会话内切换。通常放在[managed 设置](/zh-CN/permissions#managed-settings)中用于每设备 MDM 强制执行,但适用于任何作用域。需要 Claude Code v2.1.128 或更高版本 | `true` |261| `disableRemoteControl` | 禁用[远程控制](/docs/zh-CN/remote-control):阻止 `claude remote-control`、`--remote-control` 标志、自动启动和会话内切换。通常放在[managed 设置](/docs/zh-CN/permissions#managed-settings)中用于每设备 MDM 强制执行,但适用于任何作用域。需要 Claude Code v2.1.128 或更高版本 | `true` |

262| `disableSideloadFlags` | {/* min-version: 2.1.193 */}(仅 Managed 设置)在启动时拒绝 `--plugin-dir`、`--plugin-url`、`--agents` 和 `--mcp-config` CLI 标志,用户可能会传递这些标志以绕过单次运行的 [`strictKnownMarketplaces`](#strictknownmarketplaces)。也拒绝从任何内部生成带有它们的 CLI 的表面这些标志,当前 [Cowork](/zh-CN/desktop) 桌面应用中的本地会话。其服务器都是进程内 `type: "sdk"` 条目的 `--mcp-config` 仍被接受,因此 Agent SDK 和 VS Code 扩展保持工作。不阻止 `claude mcp add`、`.mcp.json` 或 SDK `setMcpServers()`;与 [`allowedMcpServers`](/zh-CN/managed-mcp) 配对以获得每个 server 的 MCP 控制。需要 Claude Code v2.1.193 或更高版本 | `true` |262| `disableSideloadFlags` | (仅 Managed 设置)在启动时拒绝 `--plugin-dir`、`--plugin-url`、`--agents` 和 `--mcp-config` CLI 标志,用户可能会传递这些标志以绕过单次运行的 [`strictKnownMarketplaces`](#strictknownmarketplaces)。也拒绝从任何内部生成带有它们的 CLI 的表面这些标志,当前 [Cowork](/docs/zh-CN/desktop) 桌面应用中的本地会话。其服务器都是进程内 `type: "sdk"` 条目的 `--mcp-config` 仍被接受,因此 Agent SDK 和 VS Code 扩展保持工作。不阻止 `claude mcp add`、`.mcp.json` 或 SDK `setMcpServers()`;与 [`allowedMcpServers`](/docs/zh-CN/managed-mcp) 配对以获得每个 server 的 MCP 控制。需要 Claude Code v2.1.193 或更高版本 | `true` |

263| `disableSkillShellExecution` | 禁用 [skills](/zh-CN/skills) 和来自用户、项目、插件或额外目录源的自定义命令中的 `` !`...` `` 和 ` ```! ` 块的内联 shell 执行。命令被替换为 `[shell command execution disabled by policy]` 而不是被运行。捆绑和 managed skills 不受影响。在[managed 设置](/zh-CN/permissions#managed-settings)中最有用,用户无法覆盖它 | `true` |263| `disableSkillShellExecution` | 禁用 [skills](/docs/zh-CN/skills) 和来自用户、项目、插件或额外目录源的自定义命令中的 `` !`...` `` 和 ` ```! ` 块的内联 shell 执行。命令被替换为 `[shell command execution disabled by policy]` 而不是被运行。捆绑和 managed skills 不受影响。在[managed 设置](/zh-CN/permissions#managed-settings)中最有用,用户无法覆盖它 | `true` |

264| `disableWorkflows` | **默认**:`false`。禁用[动态工作流](/zh-CN/workflows#turn-workflows-off)和捆绑的工作流命令。等同于将 `CLAUDE_CODE_DISABLE_WORKFLOWS` 设置为 `1` | `true` |264| `disableWorkflows` | **默认**:`false`。禁用[动态工作流](/docs/zh-CN/workflows#turn-workflows-off)和捆绑的工作流命令。等同于将 `CLAUDE_CODE_DISABLE_WORKFLOWS` 设置为 `1` | `true` |

265| `editorMode` | **默认**:`"normal"`。输入提示的快捷键模式:`"normal"` 或 `"vim"`。在 `/config` 中显示为**快捷键模式** | `"vim"` |265| `editorMode` | **默认**:`"normal"`。输入提示的快捷键模式:`"normal"` 或 `"vim"`。在 `/config` 中显示为**快捷键模式** | `"vim"` |

266| `effortLevel` | 跨会话持久化[努力级别](/zh-CN/model-config#adjust-effort-level)。接受 `"low"`、`"medium"`、`"high"` 或 `"xhigh"`。当您运行 `/effort` 时自动写入,带有这些值之一。`--effort` 和 [`CLAUDE_CODE_EFFORT_LEVEL`](/zh-CN/env-vars) 覆盖此用于一个会话。请参阅[调整努力级别](/zh-CN/model-config#adjust-effort-level)了解支持的模型 | `"xhigh"` |266| `effortLevel` | 跨会话持久化[努力级别](/docs/zh-CN/model-config#adjust-effort-level)。接受 `"low"`、`"medium"`、`"high"` 或 `"xhigh"`。当您运行 `/effort` 时自动写入,带有这些值之一。`--effort` 和 [`CLAUDE_CODE_EFFORT_LEVEL`](/docs/zh-CN/env-vars) 覆盖此用于一个会话。请参阅[调整努力级别](/docs/zh-CN/model-config#adjust-effort-level)了解支持的模型 | `"xhigh"` |

267| `enableAllProjectMcpServers` | 自动批准项目 `.mcp.json` 文件中定义的所有 MCP servers。{/* min-version: 2.1.196 */}从 v2.1.196 开始,`claude mcp list` 和 `claude mcp get` 仅在[未检入存储库的设置文件](/zh-CN/mcp#managing-your-servers)中的不受信任的文件夹中尊重此键 | `true` |267| `enableAllProjectMcpServers` | 自动批准项目 `.mcp.json` 文件中定义的所有 MCP servers。从 v2.1.196 开始,`claude mcp list` 和 `claude mcp get` 仅在[未检入存储库的设置文件](/docs/zh-CN/mcp#managing-your-servers)中的不受信任的文件夹中尊重此键 | `true` |

268| `enableArtifact` | {/* min-version: 2.1.196 */}为此用户启用或禁用 [Artifact](/zh-CN/artifacts) 工具。未设置时,默认遵循该功能对您账户的[可用性](/zh-CN/artifacts#availability)。`/config` 中的**Artifacts** 行写入此键。managed `disableArtifact` 和您的组织的[管理员设置](/zh-CN/artifacts#manage-artifacts-for-your-organization)优先,该键在项目和本地设置(`.claude/settings.json`、`.claude/settings.local.json`)中被忽略,存储库可能会检入。需要 Claude Code v2.1.196 或更高版本 | `true` |268| `enableArtifact` | 为此用户启用或禁用 [Artifact](/docs/zh-CN/artifacts) 工具。未设置时,默认遵循该功能对您账户的[可用性](/docs/zh-CN/artifacts#availability)。`/config` 中的**Artifacts** 行写入此键。managed `disableArtifact` 和您的组织的[管理员设置](/docs/zh-CN/artifacts#manage-artifacts-for-your-organization)优先,该键在项目和本地设置(`.claude/settings.json`、`.claude/settings.local.json`)中被忽略,存储库可能会检入。需要 Claude Code v2.1.196 或更高版本 | `true` |

269| `enabledMcpjsonServers` | 要批准的 `.mcp.json` 文件中特定 MCP servers 的列表。{/* min-version: 2.1.196 */}从 v2.1.196 开始,`claude mcp list` 和 `claude mcp get` 仅在[未检入存储库的设置文件](/zh-CN/mcp#managing-your-servers)中的不受信任的文件夹中尊重此键 | `["memory", "github"]` |269| `enabledMcpjsonServers` | 要批准的 `.mcp.json` 文件中特定 MCP servers 的列表。从 v2.1.196 开始,`claude mcp list` 和 `claude mcp get` 仅在[未检入存储库的设置文件](/docs/zh-CN/mcp#managing-your-servers)中的不受信任的文件夹中尊重此键 | `["memory", "github"]` |

270| `enforceAvailableModels` | {/* min-version: 2.1.175 */}将 `availableModels` 允许列表扩展到默认模型。当在 managed 设置中为 `true` 且 `availableModels` 是非空数组时,默认选项回退到第一个可用的允许列表条目,但仅当默认模型会解析为的模型(当应用[组织默认](/zh-CN/model-config#organization-default-model)时,否则账户类型默认)不在允许列表中时;允许列表默认保持原样。当 `availableModels` 未设置或为空时无效。请参阅[为默认模型强制执行允许列表](/zh-CN/model-config#enforce-the-allowlist-for-the-default-model)。需要 Claude Code v2.1.175 或更高版本 | `true` |270| `enforceAvailableModels` | 将 `availableModels` 允许列表扩展到默认模型。当在 managed 设置中为 `true` 且 `availableModels` 是非空数组时,默认选项回退到第一个可用的允许列表条目,但仅当默认模型会解析为的模型(当应用[组织默认](/docs/zh-CN/model-config#organization-default-model)时,否则账户类型默认)不在允许列表中时;允许列表默认保持原样。当 `availableModels` 未设置或为空时无效。请参阅[为默认模型强制执行允许列表](/docs/zh-CN/model-config#enforce-the-allowlist-for-the-default-model)。需要 Claude Code v2.1.175 或更高版本 | `true` |

271| `env` | 应用于每个会话和 Claude Code 从其生成的子进程的环境变量。将变量设置为 `""` 以用空字符串覆盖 shell 导出,Claude Code 将其视为未设置用于提供商选择。子进程仍继承空值。`NO_COLOR` 和 `FORCE_COLOR` 在此处设置仅到达子进程;要改变 Claude Code 自己的界面颜色,在启动 `claude` 前在您的 shell 中设置它们。{/* min-version: 2.1.195 */}从 v2.1.195 开始,Claude Code 的托管环境设置的身份变量,例如 `CLAUDE_CODE_REMOTE` 和 `CLAUDE_CODE_ACCOUNT_UUID`,在此处设置时被忽略 | `{"FOO": "bar"}` |271| `env` | 应用于每个会话和 Claude Code 从其生成的子进程的环境变量。将变量设置为 `""` 以用空字符串覆盖 shell 导出,Claude Code 将其视为未设置用于提供商选择。子进程仍继承空值。`NO_COLOR` 和 `FORCE_COLOR` 在此处设置仅到达子进程;要改变 Claude Code 自己的界面颜色,在启动 `claude` 前在您的 shell 中设置它们。从 v2.1.195 开始,Claude Code 的托管环境设置的身份变量,例如 `CLAUDE_CODE_REMOTE` 和 `CLAUDE_CODE_ACCOUNT_UUID`,在此处设置时被忽略 | `{"FOO": "bar"}` |

272| `fallbackModel` | 当主模型过载或不可用时按顺序尝试的备用模型。Claude Code 为该轮的其余部分切换到链中的下一个可用模型并显示通知。`"default"` 扩展为默认模型。链限制为三个模型;额外条目被忽略。与大多数数组设置不同,此键不跨设置文件合并:定义它的最高优先级文件提供整个链。[`--fallback-model`](/zh-CN/cli-reference#cli-flags) 标志覆盖此用于一个会话。请参阅[备用模型链](/zh-CN/model-config#fallback-model-chains) | `["claude-sonnet-5", "claude-haiku-4-5"]` |272| `fallbackModel` | 当主模型过载或不可用时按顺序尝试的备用模型。Claude Code 为该轮的其余部分切换到链中的下一个可用模型并显示通知。`"default"` 扩展为默认模型。链限制为三个模型;额外条目被忽略。与大多数数组设置不同,此键不跨设置文件合并:定义它的最高优先级文件提供整个链。[`--fallback-model`](/docs/zh-CN/cli-reference#cli-flags) 标志覆盖此用于一个会话。请参阅[备用模型链](/docs/zh-CN/model-config#fallback-model-chains) | `["claude-sonnet-5", "claude-haiku-4-5"]` |

273| `fastMode` | 为可用的会话打开[快速模式](/zh-CN/fast-mode)。使用 `/fast` 切换会在用户设置中写入 `true`,当您关闭快速模式时删除键 | `true` |273| `fastMode` | 为可用的会话打开[快速模式](/docs/zh-CN/fast-mode)。使用 `/fast` 切换会在用户设置中写入 `true`,当您关闭快速模式时删除键 | `true` |

274| `fastModePerSessionOptIn` | 当为 `true` 时,快速模式不会跨会话持久化。每个会话都以快速模式关闭开始,需要用户使用 `/fast` 启用它。用户的快速模式偏好仍被保存。请参阅[需要每个会话的选择加入](/zh-CN/fast-mode#require-per-session-opt-in) | `true` |274| `fastModePerSessionOptIn` | 当为 `true` 时,快速模式不会跨会话持久化。每个会话都以快速模式关闭开始,需要用户使用 `/fast` 启用它。用户的快速模式偏好仍被保存。请参阅[需要每个会话的选择加入](/docs/zh-CN/fast-mode#require-per-session-opt-in) | `true` |

275| `feedbackSurveyRate` | 概率(0–1)[会话质量调查](/zh-CN/data-usage#session-quality-surveys)在符合条件时出现。设置为 `0` 以完全抑制,或在 `env` 中设置 [`CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY`](/zh-CN/env-vars)。在使用 Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry 时很有用,其中默认采样率不适用 | `0.05` |275| `feedbackSurveyRate` | 概率(0–1)[会话质量调查](/docs/zh-CN/data-usage#session-quality-surveys)在符合条件时出现。设置为 `0` 以完全抑制,或在 `env` 中设置 [`CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY`](/docs/zh-CN/env-vars)。在使用 Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry 时很有用,其中默认采样率不适用 | `0.05` |

276| `fileCheckpointingEnabled` | {/* min-version: 2.1.119 */}**默认**:`true`。在每次编辑前快照文件,以便 [`/rewind`](/zh-CN/checkpointing) 可以恢复它们。在 `/config` 中显示为**回退代码(checkpoints)**。要通过环境变量禁用,请在 `env` 中设置 [`CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING`](/zh-CN/env-vars) | `false` |276| `fileCheckpointingEnabled` | **默认**:`true`。在每次编辑前快照文件,以便 [`/rewind`](/docs/zh-CN/checkpointing) 可以恢复它们。在 `/config` 中显示为**回退代码(checkpoints)**。要通过环境变量禁用,请在 `env` 中设置 [`CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING`](/docs/zh-CN/env-vars) | `false` |

277| `fileSuggestion` | 为 `@` 文件自动完成配置自定义脚本。请参阅[文件建议设置](#file-suggestion-settings) | `{"type": "command", "command": "~/.claude/file-suggestion.sh"}` |277| `fileSuggestion` | 为 `@` 文件自动完成配置自定义脚本。请参阅[文件建议设置](#file-suggestion-settings) | `{"type": "command", "command": "~/.claude/file-suggestion.sh"}` |

278| `footerLinksRegexes` | {/* min-version: 2.1.176 */}当正则表达式匹配轮次输出时渲染额外的可点击徽章在页脚中。每个条目有一个 `pattern`、一个 URL 模板,其中 `{name}` 占位符从命名捕获组填充,以及一个可选的 `label`。仅从用户、`--settings` 标志和 managed 设置读取。请参阅[页脚链接徽章](#footer-link-badges)了解 URL 约束、方案允许列表和限制。需要 Claude Code v2.1.176 或更高版本 | `[{"type": "regex", "pattern": "\\b(?<key>PROJ-\\d+)\\b", "url": "https://issues.example.com/browse/{key}", "label": "{key}"}]` |278| `footerLinksRegexes` | 当正则表达式匹配轮次输出时渲染额外的可点击徽章在页脚中。每个条目有一个 `pattern`、一个 URL 模板,其中 `{name}` 占位符从命名捕获组填充,以及一个可选的 `label`。仅从用户、`--settings` 标志和 managed 设置读取。请参阅[页脚链接徽章](#footer-link-badges)了解 URL 约束、方案允许列表和限制。需要 Claude Code v2.1.176 或更高版本 | `[{"type": "regex", "pattern": "\\b(?<key>PROJ-\\d+)\\b", "url": "https://issues.example.com/browse/{key}", "label": "{key}"}]` |

279| `forceLoginMethod` | 使用 `claudeai` 限制登录到 Claude.ai 账户,`console` 限制登录到 Claude Console 账户,或 `gateway` 限制登录到云网关;请参阅 [Claude apps gateway](/zh-CN/claude-apps-gateway)。在 managed 设置中设置为任何值时,由 `ANTHROPIC_API_KEY`、`ANTHROPIC_AUTH_TOKEN` 或 `apiKeyHelper` 进行身份验证的会话在启动时被阻止,因为环境凭证无法满足所需的登录方法。第三方提供商会话(如 Amazon Bedrock、Google Cloud 的 Agent Platform 和 Microsoft Foundry)不被阻止:它们针对您的云提供商而不是 Anthropic 进行身份验证 | `claudeai` |279| `forceLoginMethod` | 使用 `claudeai` 限制登录到 Claude.ai 账户,`console` 限制登录到 Claude Console 账户,或 `gateway` 限制登录到云网关;请参阅 [Claude apps gateway](/docs/zh-CN/claude-apps-gateway)。在 managed 设置中设置为任何值时,由 `ANTHROPIC_API_KEY`、`ANTHROPIC_AUTH_TOKEN` 或 `apiKeyHelper` 进行身份验证的会话在启动时被阻止,因为环境凭证无法满足所需的登录方法。第三方提供商会话(如 Amazon Bedrock、Google Cloud 的 Agent Platform 和 Microsoft Foundry)不被阻止:它们针对您的云提供商而不是 Anthropic 进行身份验证 | `claudeai` |

280| `forceLoginGatewayUrl` | 在 `/login` 云网关屏幕上预填充并锁定网关 URL。此键或 `forceLoginMethod: "gateway"` 中的任一个都会显示该屏幕;同时设置两者以便 URL 被填充。仅在 managed 策略层受尊重;在用户和项目设置中被忽略。请参阅 [Claude apps gateway](/zh-CN/claude-apps-gateway#set-the-gateway-url) | `"https://claude-gateway.example.com"` |280| `forceLoginGatewayUrl` | 在 `/login` 云网关屏幕上预填充并锁定网关 URL。此键或 `forceLoginMethod: "gateway"` 中的任一个都会显示该屏幕;同时设置两者以便 URL 被填充。仅在 managed 策略层受尊重;在用户和项目设置中被忽略。请参阅 [Claude apps gateway](/docs/zh-CN/claude-apps-gateway#set-the-gateway-url) | `"https://claude-gateway.example.com"` |

281| `forceLoginOrgUUID` | 要求登录属于特定 Anthropic 组织。接受单个 UUID 字符串(也在登录期间预选该组织)或 UUID 数组,其中任何列出的组织都被接受而无需预选。在 managed 设置中设置时,如果经过身份验证的账户不属于列出的组织,登录失败;由 `ANTHROPIC_API_KEY`、`ANTHROPIC_AUTH_TOKEN` 或 `apiKeyHelper` 进行身份验证的会话在启动时被阻止,因为无法为它们验证组织成员身份。第三方提供商会话(如 Amazon Bedrock、Google Cloud 的 Agent Platform 和 Microsoft Foundry)不被阻止:使用您的云 IAM 限制哪些云账户可以被使用。空数组失败关闭并使用配置错误消息阻止登录 | `"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"` 或 `["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy"]` |281| `forceLoginOrgUUID` | 要求登录属于特定 Anthropic 组织。接受单个 UUID 字符串(也在登录期间预选该组织)或 UUID 数组,其中任何列出的组织都被接受而无需预选。在 managed 设置中设置时,如果经过身份验证的账户不属于列出的组织,登录失败;由 `ANTHROPIC_API_KEY`、`ANTHROPIC_AUTH_TOKEN` 或 `apiKeyHelper` 进行身份验证的会话在启动时被阻止,因为无法为它们验证组织成员身份。第三方提供商会话(如 Amazon Bedrock、Google Cloud 的 Agent Platform 和 Microsoft Foundry)不被阻止:使用您的云 IAM 限制哪些云账户可以被使用。空数组失败关闭并使用配置错误消息阻止登录 | `"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"` 或 `["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy"]` |

282| `forceRemoteSettingsRefresh` | (仅 Managed 设置)阻止 CLI 启动,直到从服务器新鲜获取远程 managed 设置。如果获取失败,CLI 退出而不是继续使用缓存或无设置。未设置时,启动继续而不等待远程设置。请参阅[失败关闭强制执行](/zh-CN/server-managed-settings#enforce-fail-closed-startup) | `true` |282| `forceRemoteSettingsRefresh` | (仅 Managed 设置)阻止 CLI 启动,直到从服务器新鲜获取远程 managed 设置。如果获取失败,CLI 退出而不是继续使用缓存或无设置。未设置时,启动继续而不等待远程设置。请参阅[失败关闭强制执行](/docs/zh-CN/server-managed-settings#enforce-fail-closed-startup) | `true` |

283| `gcpAuthRefresh` | 当 GCP Application Default Credentials 过期或无法加载时刷新它们的自定义脚本。请参阅[高级凭证配置](/zh-CN/google-vertex-ai#advanced-credential-configuration) | `gcloud auth application-default login` |283| `gcpAuthRefresh` | 当 GCP Application Default Credentials 过期或无法加载时刷新它们的自定义脚本。请参阅[高级凭证配置](/docs/zh-CN/google-vertex-ai#advanced-credential-configuration) | `gcloud auth application-default login` |

284| `hooks` | 配置自定义命令以在生命周期事件处运行。请参阅 [hooks 文档](/zh-CN/hooks) 了解格式 | 请参阅 [hooks](/zh-CN/hooks) |284| `hooks` | 配置自定义命令以在生命周期事件处运行。请参阅 [hooks 文档](/docs/zh-CN/hooks) 了解格式 | 请参阅 [hooks](/docs/zh-CN/hooks) |

285| `httpHookAllowedEnvVars` | HTTP hooks 可能插入到标头中的环境变量名称的允许列表。设置后,每个 hook 的有效 `allowedEnvVars` 是与此列表的交集。未定义 = 无限制。数组跨设置源合并。请参阅 [Hook 配置](#hook-configuration) | `["MY_TOKEN", "HOOK_SECRET"]` |285| `httpHookAllowedEnvVars` | HTTP hooks 可能插入到标头中的环境变量名称的允许列表。设置后,每个 hook 的有效 `allowedEnvVars` 是与此列表的交集。未定义 = 无限制。数组跨设置源合并。请参阅 [Hook 配置](#hook-configuration) | `["MY_TOKEN", "HOOK_SECRET"]` |

286| `includeGitInstructions` | **默认**:`true`。在 Claude 的系统提示中包含内置提交和 PR 工作流说明和 git 状态快照。设置为 `false` 以删除这两者,例如在使用您自己的 git 工作流 skills 时。`CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS` 环境变量在设置时优先于此设置 | `false` |286| `includeGitInstructions` | **默认**:`true`。在 Claude 的系统提示中包含内置提交和 PR 工作流说明和 git 状态快照。设置为 `false` 以删除这两者,例如在使用您自己的 git 工作流 skills 时。`CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS` 环境变量在设置时优先于此设置 | `false` |

287| `inputNeededNotifEnabled` | {/* min-version: 2.1.119 */}**默认**:`false`。当[远程控制](/zh-CN/remote-control)已连接时,当权限提示或问题等待您的输入时向您的手机发送推送通知。在 `/config` 中显示为**需要操作时推送**。请参阅[移动推送通知](/zh-CN/remote-control#mobile-push-notifications)。需要 Claude Code v2.1.119 或更高版本 | `true` |287| `inputNeededNotifEnabled` | **默认**:`false`。当[远程控制](/docs/zh-CN/remote-control)已连接时,当权限提示或问题等待您的输入时向您的手机发送推送通知。在 `/config` 中显示为**需要操作时推送**。请参阅[移动推送通知](/docs/zh-CN/remote-control#mobile-push-notifications)。需要 Claude Code v2.1.119 或更高版本 | `true` |

288| `language` | 配置 Claude 的首选响应语言(例如 `"japanese"`、`"spanish"`、`"french"`)。Claude 将默认以此语言响应。也设置[语音听写](/zh-CN/voice-dictation#change-the-dictation-language)语言和自动生成的会话标题。{/* min-version: 2.1.176 */}从 v2.1.176 开始,未设置时,会话标题与您的对话语言匹配 | `"japanese"` |288| `language` | 配置 Claude 的首选响应语言(例如 `"japanese"`、`"spanish"`、`"french"`)。Claude 将默认以此语言响应。也设置[语音听写](/docs/zh-CN/voice-dictation#change-the-dictation-language)语言和自动生成的会话标题。从 v2.1.176 开始,未设置时,会话标题与您的对话语言匹配 | `"japanese"` |

289| `minimumVersion` | 防止后台自动更新和 `claude update` 安装低于此版本的版本。从 `"latest"` 渠道切换到 `"stable"` 时通过 `/config` 提示您保持在当前版本或允许降级。选择保持设置此值。也在[managed 设置](/zh-CN/permissions#managed-settings)中有用,以固定组织范围的最低版本。对于阻止启动的硬下限,请参阅 `requiredMinimumVersion` | `"2.1.100"` |289| `minimumVersion` | 防止后台自动更新和 `claude update` 安装低于此版本的版本。从 `"latest"` 渠道切换到 `"stable"` 时通过 `/config` 提示您保持在当前版本或允许降级。选择保持设置此值。也在[managed 设置](/docs/zh-CN/permissions#managed-settings)中有用,以固定组织范围的最低版本。对于阻止启动的硬下限,请参阅 `requiredMinimumVersion` | `"2.1.100"` |

290| `model` | 覆盖用于 Claude Code 的默认模型。`--model` 和 [`ANTHROPIC_MODEL`](/zh-CN/model-config#environment-variables) 覆盖此用于一个会话 | `"claude-sonnet-5"` |290| `model` | 覆盖用于 Claude Code 的默认模型。`--model` 和 [`ANTHROPIC_MODEL`](/docs/zh-CN/model-config#environment-variables) 覆盖此用于一个会话 | `"claude-sonnet-5"` |

291| `modelOverrides` | 将 Anthropic 模型 ID 映射到特定于提供商的模型 ID,例如 Amazon Bedrock 推理配置文件 ARN。每个模型选择器条目在调用提供商 API 时使用其映射值。请参阅[按版本覆盖模型 ID](/zh-CN/model-config#override-model-ids-per-version) | `{"claude-opus-4-6": "arn:aws:bedrock:..."}` |291| `modelOverrides` | 将 Anthropic 模型 ID 映射到特定于提供商的模型 ID,例如 Amazon Bedrock 推理配置文件 ARN。每个模型选择器条目在调用提供商 API 时使用其映射值。请参阅[按版本覆盖模型 ID](/docs/zh-CN/model-config#override-model-ids-per-version) | `{"claude-opus-4-6": "arn:aws:bedrock:..."}` |

292| `otelHeadersHelper` | 生成动态 OpenTelemetry 标头的脚本。在启动时和定期运行。使用 [`CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS`](/zh-CN/env-vars) 设置刷新间隔。请参阅[动态标头](/zh-CN/monitoring-usage#dynamic-headers) | `/bin/generate_otel_headers.sh` |292| `otelHeadersHelper` | 生成动态 OpenTelemetry 标头的脚本。在启动时和定期运行。使用 [`CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS`](/docs/zh-CN/env-vars) 设置刷新间隔。请参阅[动态标头](/docs/zh-CN/monitoring-usage#dynamic-headers) | `/bin/generate_otel_headers.sh` |

293| `outputStyle` | 配置输出样式以调整系统提示。请参阅[输出样式文档](/zh-CN/output-styles) | `"Explanatory"` |293| `outputStyle` | 配置输出样式以调整系统提示。请参阅[输出样式文档](/docs/zh-CN/output-styles) | `"Explanatory"` |

294| `parentSettingsBehavior` | {/* min-version: 2.1.133 */}(仅 Managed 设置)**默认**:`"first-wins"`。控制由嵌入主机进程(例如 Agent SDK 或 IDE 扩展)以编程方式提供的 managed 设置在同时存在管理员部署的 managed 层时是否应用。`"first-wins"`:父级提供的设置被丢弃,仅应用管理员层。`"merge"`:父级提供的设置在管理员层下应用,经过筛选以便它们可以收紧策略但不能放松策略。当未部署管理员层时无效。需要 Claude Code v2.1.133 或更高版本 | `"merge"` |294| `parentSettingsBehavior` | (仅 Managed 设置)**默认**:`"first-wins"`。控制由嵌入主机进程(例如 Agent SDK 或 IDE 扩展)以编程方式提供的 managed 设置在同时存在管理员部署的 managed 层时是否应用。`"first-wins"`:父级提供的设置被丢弃,仅应用管理员层。`"merge"`:父级提供的设置在管理员层下应用,经过筛选以便它们可以收紧策略但不能放松策略。当未部署管理员层时无效。需要 Claude Code v2.1.133 或更高版本 | `"merge"` |

295| `permissions` | 请参阅下表了解权限的结构。 | |295| `permissions` | 请参阅下表了解权限的结构。 | |

296| `plansDirectory` | **默认**:`~/.claude/plans`。自定义 Plan Mode 文件的存储位置。路径相对于项目根目录。 | `"./plans"` |296| `plansDirectory` | **默认**:`~/.claude/plans`。自定义 Plan Mode 文件的存储位置。路径相对于项目根目录。 | `"./plans"` |

297| `pluginSuggestionMarketplaces` | (仅 Managed 设置)其插件可以显示为上下文安装建议的市场名称。无市场声明的建议出现而不需要此允许列表;内置的第一方前端设计提示不受影响。建议来自每个插件在其市场条目中的 `relevance` 声明。名称仅在市场在机器上注册且其注册源也在 managed 设置中声明时才生效,作为该名称的 `extraKnownMarketplaces` 条目或 `strictKnownMarketplaces` 的条目。从不同源注册的市场在允许列表名称下被忽略。官方市场豁免于源要求:仅允许列表其名称就足够了,因为该名称只能从官方 Anthropic 源注册。 | `["acme-corp-plugins"]` |297| `pluginSuggestionMarketplaces` | (仅 Managed 设置)其插件可以显示为上下文安装建议的市场名称。无市场声明的建议出现而不需要此允许列表;内置的第一方前端设计提示不受影响。建议来自每个插件在其市场条目中的 `relevance` 声明。名称仅在市场在机器上注册且其注册源也在 managed 设置中声明时才生效,作为该名称的 `extraKnownMarketplaces` 条目或 `strictKnownMarketplaces` 的条目。从不同源注册的市场在允许列表名称下被忽略。官方市场豁免于源要求:仅允许列表其名称就足够了,因为该名称只能从官方 Anthropic 源注册。 | `["acme-corp-plugins"]` |

298| `pluginTrustMessage` | (仅 Managed 设置)在安装前显示的插件信任警告中附加的自定义消息。使用此添加组织特定的上下文,例如确认来自您内部市场的插件已获批准。 | `"All plugins from our marketplace are approved by IT"` |298| `pluginTrustMessage` | (仅 Managed 设置)在安装前显示的插件信任警告中附加的自定义消息。使用此添加组织特定的上下文,例如确认来自您内部市场的插件已获批准。 | `"All plugins from our marketplace are approved by IT"` |

299| `policyHelper` | {/* min-version: 2.1.136 */}管理员部署的可执行文件,在启动时动态计算 managed 设置。仅从 MDM 或系统 `managed-settings.json` 文件受尊重。请参阅[使用策略助手计算 managed 设置](#compute-managed-settings-with-a-policy-helper)。需要 Claude Code v2.1.136 或更高版本 | `{"path": "/usr/local/bin/claude-policy"}` |299| `policyHelper` | 管理员部署的可执行文件,在启动时动态计算 managed 设置。仅从 MDM 或系统 `managed-settings.json` 文件受尊重。请参阅[使用策略助手计算 managed 设置](#compute-managed-settings-with-a-policy-helper)。需要 Claude Code v2.1.136 或更高版本 | `{"path": "/usr/local/bin/claude-policy"}` |

300| `preferredNotifChannel` | **默认**:`"auto"`。任务完成和权限提示通知的方法:`"auto"`、`"terminal_bell"`、`"iterm2"`、`"iterm2_with_bell"`、`"kitty"`、`"ghostty"` 或 `"notifications_disabled"`。`"auto"` 在 iTerm2、Ghostty 和 Kitty 中发送桌面通知,在其他终端中不执行任何操作。设置 `"terminal_bell"` 以在任何终端中响铃。在 `/config` 中显示为**通知**。请参阅[获取终端铃声或通知](/zh-CN/terminal-config#get-a-terminal-bell-or-notification) | `"terminal_bell"` |300| `preferredNotifChannel` | **默认**:`"auto"`。任务完成和权限提示通知的方法:`"auto"`、`"terminal_bell"`、`"iterm2"`、`"iterm2_with_bell"`、`"kitty"`、`"ghostty"` 或 `"notifications_disabled"`。`"auto"` 在 iTerm2、Ghostty 和 Kitty 中发送桌面通知,在其他终端中不执行任何操作。设置 `"terminal_bell"` 以在任何终端中响铃。在 `/config` 中显示为**通知**。请参阅[获取终端铃声或通知](/docs/zh-CN/terminal-config#get-a-terminal-bell-or-notification) | `"terminal_bell"` |

301| `prefersReducedMotion` | 减少或禁用 UI 动画(微调器、闪烁、闪光效果)以实现可访问性 | `true` |301| `prefersReducedMotion` | 减少或禁用 UI 动画(微调器、闪烁、闪光效果)以实现可访问性 | `true` |

302| `prUrlTemplate` | PR 徽章的 URL 模板,显示在页脚和工具结果摘要中。替换来自 `gh` 报告的 PR URL 中的 `{host}`、`{owner}`、`{repo}`、`{number}` 和 `{url}`。使用指向内部代码审查工具而不是 `github.com` 的 PR 链接。不影响 Claude 散文中的 `#123` 自动链接 | `"https://reviews.example.com/{owner}/{repo}/pull/{number}"` |302| `prUrlTemplate` | PR 徽章的 URL 模板,显示在页脚和工具结果摘要中。替换来自 `gh` 报告的 PR URL 中的 `{host}`、`{owner}`、`{repo}`、`{number}` 和 `{url}`。使用指向内部代码审查工具而不是 `github.com` 的 PR 链接。不影响 Claude 散文中的 `#123` 自动链接 | `"https://reviews.example.com/{owner}/{repo}/pull/{number}"` |

303| `remoteControlAtStartup` | {/* min-version: 2.1.119 */}当每个交互式会话启动时自动连接[远程控制](/zh-CN/remote-control),而不是等待 `/remote-control`。设置为 `true` 以始终自动连接,`false` 以从不自动连接,或保留未设置以遵循您的组织的默认值。在 `/config` 中显示为**为所有会话启用远程控制**。请参阅[为所有会话启用远程控制](/zh-CN/remote-control#enable-remote-control-for-all-sessions) | `false` |303| `remoteControlAtStartup` | 当每个交互式会话启动时自动连接[远程控制](/docs/zh-CN/remote-control),而不是等待 `/remote-control`。设置为 `true` 以始终自动连接,`false` 以从不自动连接,或保留未设置以遵循您的组织的默认值。在 `/config` 中显示为**为所有会话启用远程控制**。请参阅[为所有会话启用远程控制](/docs/zh-CN/remote-control#enable-remote-control-for-all-sessions) | `false` |

304| `requiredMaximumVersion` | 仅 Managed 设置。允许启动的最大 Claude Code 版本。如果运行版本较新,Claude Code 在启动时退出并指示用户通过组织的批准方法安装批准的版本;`claude install <version>` 也可能有效。后台自动更新和 `claude update` 跳过高于上限的版本,因此在范围内的安装保持在范围内。`claude update`、`claude install` 和 `claude doctor` 在上限以上保持工作,以便用户可以恢复。早于此设置的版本忽略它 | `"2.1.150"` |304| `requiredMaximumVersion` | 仅 Managed 设置。允许启动的最大 Claude Code 版本。如果运行版本较新,Claude Code 在启动时退出并指示用户通过组织的批准方法安装批准的版本;`claude install <version>` 也可能有效。后台自动更新和 `claude update` 跳过高于上限的版本,因此在范围内的安装保持在范围内。`claude update`、`claude install` 和 `claude doctor` 在上限以上保持工作,以便用户可以恢复。早于此设置的版本忽略它 | `"2.1.150"` |

305| `requiredMinimumVersion` | 仅 Managed 设置。启动所需的最小 Claude Code 版本。如果运行版本较旧,Claude Code 在启动时退出并指示用户通过组织的批准方法更新。`claude update`、`claude install` 和 `claude doctor` 在下限以下保持工作,以便用户可以恢复。与 `minimumVersion` 不同,后者防止降级但从不阻止启动。早于此设置的版本忽略它 | `"2.1.150"` |305| `requiredMinimumVersion` | 仅 Managed 设置。启动所需的最小 Claude Code 版本。如果运行版本较旧,Claude Code 在启动时退出并指示用户通过组织的批准方法更新。`claude update`、`claude install` 和 `claude doctor` 在下限以下保持工作,以便用户可以恢复。与 `minimumVersion` 不同,后者防止降级但从不阻止启动。早于此设置的版本忽略它 | `"2.1.150"` |

306| `respectGitignore` | **默认**:`true`。控制 `@` 文件选择器是否尊重 `.gitignore` 模式。当为 `true` 时,匹配 `.gitignore` 模式的文件被排除在建议之外 | `false` |306| `respectGitignore` | **默认**:`true`。控制 `@` 文件选择器是否尊重 `.gitignore` 模式。当为 `true` 时,匹配 `.gitignore` 模式的文件被排除在建议之外 | `false` |

307| `respondToBashCommands` | {/* min-version: 2.1.186 */}**默认**:`true`。Claude 在输入框 `!` shell 命令运行后是否响应。设置为 `false` 以将命令输出添加到上下文而不响应。请参阅[带 `!` 前缀的 Shell 模式](/zh-CN/interactive-mode#shell-mode-with-prefix)。需要 Claude Code v2.1.186 或更高版本 | `false` |307| `respondToBashCommands` | **默认**:`true`。Claude 在输入框 `!` shell 命令运行后是否响应。设置为 `false` 以将命令输出添加到上下文而不响应。请参阅[带 `!` 前缀的 Shell 模式](/docs/zh-CN/interactive-mode#shell-mode-with-prefix)。需要 Claude Code v2.1.186 或更高版本 | `false` |

308| `showClearContextOnPlanAccept` | **默认**:`false`。在 Plan Mode 接受屏幕上显示"清除上下文"选项。设置为 `true` 以恢复该选项 | `true` |308| `showClearContextOnPlanAccept` | **默认**:`false`。在 Plan Mode 接受屏幕上显示"清除上下文"选项。设置为 `true` 以恢复该选项 | `true` |

309| `showThinkingSummaries` | **默认**:`false`。在交互式会话中显示[扩展思考](/zh-CN/model-config#extended-thinking)摘要。未设置或 `false` 时,思考块由 API 编辑并显示为折叠的存根。编辑仅改变您看到的内容,而不是模型生成的内容:要减少思考支出,[降低预算或禁用思考](/zh-CN/model-config#extended-thinking)。此设置在非交互模式(`-p`)、Agent SDK 或 IDE 扩展(如 VS Code)中无效 | `true` |309| `showThinkingSummaries` | **默认**:`false`。在交互式会话中显示[扩展思考](/docs/zh-CN/model-config#extended-thinking)摘要。未设置或 `false` 时,思考块由 API 编辑并显示为折叠的存根。编辑仅改变您看到的内容,而不是模型生成的内容:要减少思考支出,[降低预算或禁用思考](/docs/zh-CN/model-config#extended-thinking)。此设置在非交互模式(`-p`)、Agent SDK 或 IDE 扩展(如 VS Code)中无效 | `true` |

310| `showTurnDuration` | **默认**:`true`。在响应后显示轮次持续时间消息,例如"Cooked for 1m 6s"。在 `/config` 中显示为**显示轮次持续时间** | `false` |310| `showTurnDuration` | **默认**:`true`。在响应后显示轮次持续时间消息,例如"Cooked for 1m 6s"。在 `/config` 中显示为**显示轮次持续时间** | `false` |

311| `skillListingBudgetFraction` | **默认**:`0.01`。为[skill 列表](/zh-CN/skills#skill-descriptions-are-cut-short)预留的模型上下文窗口的分数,Claude 每轮看到。当列表超过预算时,最少使用的 skills 的描述被删除,仅列出其名称,以便 Claude 仍可以调用它们但不会看到它们的作用。提高以保持更多描述可见,代价是每轮更多上下文。`/doctor` 估计列表成本与预算 | `0.02` |311| `skillListingBudgetFraction` | **默认**:`0.01`。为[skill 列表](/docs/zh-CN/skills#skill-descriptions-are-cut-short)预留的模型上下文窗口的分数,Claude 每轮看到。当列表超过预算时,最少使用的 skills 的描述被删除,仅列出其名称,以便 Claude 仍可以调用它们但不会看到它们的作用。提高以保持更多描述可见,代价是每轮更多上下文。`/doctor` 估计列表成本与预算 | `0.02` |

312| `skillListingMaxDescChars` | **默认**:`1536`。[skill 列表](/zh-CN/skills#skill-descriptions-are-cut-short)中每个 skill 的 `description` 和 `when_to_use` 文本组合的字符上限。超过此长度的文本被截断。提高以保持长描述完整,代价是每轮更多上下文;降低以在 [`skillListingBudgetFraction`](#available-settings) 下适应更多 skills | `2048` |312| `skillListingMaxDescChars` | **默认**:`1536`。[skill 列表](/docs/zh-CN/skills#skill-descriptions-are-cut-short)中每个 skill 的 `description` 和 `when_to_use` 文本组合的字符上限。超过此长度的文本被截断。提高以保持长描述完整,代价是每轮更多上下文;降低以在 [`skillListingBudgetFraction`](#available-settings) 下适应更多 skills | `2048` |

313| `skillOverrides` | {/* min-version: 2.1.129 */}按 skill 名称键入的每个 skill 可见性覆盖。值为 `"on"`、`"name-only"`、`"user-invocable-only"` 或 `"off"`。让您隐藏或折叠 skill 而无需编辑其 SKILL.md。不适用于插件 skills,这些通过 `/plugin` 管理。`/skills` 菜单将这些写入 `.claude/settings.local.json`。请参阅[从设置覆盖 skill 可见性](/zh-CN/skills#override-skill-visibility-from-settings)。需要 Claude Code v2.1.129 或更高版本 | `{"legacy-context": "name-only", "deploy": "off"}` |313| `skillOverrides` | 按 skill 名称键入的每个 skill 可见性覆盖。值为 `"on"`、`"name-only"`、`"user-invocable-only"` 或 `"off"`。让您隐藏或折叠 skill 而无需编辑其 SKILL.md。不适用于插件 skills,这些通过 `/plugin` 管理。`/skills` 菜单将这些写入 `.claude/settings.local.json`。请参阅[从设置覆盖 skill 可见性](/docs/zh-CN/skills#override-skill-visibility-from-settings)。需要 Claude Code v2.1.129 或更高版本 | `{"legacy-context": "name-only", "deploy": "off"}` |

314| `skipWebFetchPreflight` | 跳过[WebFetch 域安全检查](/zh-CN/data-usage#webfetch-domain-safety-check),该检查在获取前将每个请求的主机名发送到 `api.anthropic.com`。在阻止到 Anthropic 的流量的环境中设置为 `true`,例如 Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry 部署,具有限制性出站。跳过时,WebFetch 尝试任何 URL 而不咨询阻止列表 | `true` |314| `skipWebFetchPreflight` | 跳过[WebFetch 域安全检查](/docs/zh-CN/data-usage#webfetch-domain-safety-check),该检查在获取前将每个请求的主机名发送到 `api.anthropic.com`。在阻止到 Anthropic 的流量的环境中设置为 `true`,例如 Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry 部署,具有限制性出站。跳过时,WebFetch 尝试任何 URL 而不咨询阻止列表 | `true` |

315| `spinnerTipsEnabled` | **默认**:`true`。在 Claude 工作时在微调器中显示提示。设置为 `false` 以禁用提示 | `false` |315| `spinnerTipsEnabled` | **默认**:`true`。在 Claude 工作时在微调器中显示提示。设置为 `false` 以禁用提示 | `false` |

316| `spinnerTipsOverride` | 使用自定义字符串覆盖微调器提示。`tips`:提示字符串数组。`excludeDefault`:如果为 `true`,仅显示自定义提示;如果为 `false` 或不存在,自定义提示与内置提示合并 | `{ "excludeDefault": true, "tips": ["Use our internal tool X"] }` |316| `spinnerTipsOverride` | 使用自定义字符串覆盖微调器提示。`tips`:提示字符串数组。`excludeDefault`:如果为 `true`,仅显示自定义提示;如果为 `false` 或不存在,自定义提示与内置提示合并 | `{ "excludeDefault": true, "tips": ["Use our internal tool X"] }` |

317| `spinnerVerbs` | 自定义在微调器中显示的操作动词。将 `mode` 设置为 `"replace"` 以仅使用您的动词,或 `"append"` 以将它们添加到默认值 | `{"mode": "append", "verbs": ["Pondering", "Crafting"]}` |317| `spinnerVerbs` | 自定义在微调器中显示的操作动词。将 `mode` 设置为 `"replace"` 以仅使用您的动词,或 `"append"` 以将它们添加到默认值 | `{"mode": "append", "verbs": ["Pondering", "Crafting"]}` |

318| `sshConfigs` | 要在[桌面](/zh-CN/desktop#pre-configure-ssh-connections-for-your-team)环境下拉菜单中显示的 SSH 连接。每个条目需要 `id`、`name` 和 `sshHost`;`sshPort`、`sshIdentityFile` 和 `startDirectory` 是可选的。在 managed 设置中设置时,连接对用户是只读的。仅从 managed 和用户设置读取 | `[{"id": "dev-vm", "name": "Dev VM", "sshHost": "user@dev.example.com"}]` |318| `sshConfigs` | 要在[桌面](/docs/zh-CN/desktop#pre-configure-ssh-connections-for-your-team)环境下拉菜单中显示的 SSH 连接。每个条目需要 `id`、`name` 和 `sshHost`;`sshPort`、`sshIdentityFile` 和 `startDirectory` 是可选的。在 managed 设置中设置时,连接对用户是只读的。仅从 managed 和用户设置读取 | `[{"id": "dev-vm", "name": "Dev VM", "sshHost": "user@dev.example.com"}]` |

319| `statusLine` | 配置自定义状态行以显示上下文。对象的可选 `padding`、`refreshInterval` 和 `hideVimModeIndicator` 字段控制间距、定期重新运行和是否隐藏提示下方的内置 vim 模式指示器。请参阅[`statusLine` 文档](/zh-CN/statusline#manually-configure-a-status-line) | `{"type": "command", "command": "~/.claude/statusline.sh"}` |319| `statusLine` | 配置自定义状态行以显示上下文。对象的可选 `padding`、`refreshInterval` 和 `hideVimModeIndicator` 字段控制间距、定期重新运行和是否隐藏提示下方的内置 vim 模式指示器。请参阅[`statusLine` 文档](/docs/zh-CN/statusline#manually-configure-a-status-line) | `{"type": "command", "command": "~/.claude/statusline.sh"}` |

320| `strictKnownMarketplaces` | (仅 Managed 设置)插件市场源的允许列表。未定义 = 无限制,空数组 = 锁定。在市场添加和插件安装、更新、刷新和自动更新时强制执行,因此在设置策略之前添加的市场无法用于获取插件。请参阅 [Managed 市场限制](/zh-CN/plugin-marketplaces#managed-marketplace-restrictions) | `[{ "source": "github", "repo": "acme-corp/plugins" }]` |320| `strictKnownMarketplaces` | (仅 Managed 设置)插件市场源的允许列表。未定义 = 无限制,空数组 = 锁定。在市场添加和插件安装、更新、刷新和自动更新时强制执行,因此在设置策略之前添加的市场无法用于获取插件。请参阅 [Managed 市场限制](/docs/zh-CN/plugin-marketplaces#managed-marketplace-restrictions) | `[{ "source": "github", "repo": "acme-corp/plugins" }]` |

321| `strictPluginOnlyCustomization` | (仅 Managed 设置)阻止 skills、agents、hooks 和 MCP servers 来自用户和项目源,因此它们只能来自插件或 managed 设置。`true` 锁定所有四个表面;数组仅锁定命名的表面。请参阅 [`strictPluginOnlyCustomization`](#strictpluginonlycustomization) | `["skills", "hooks"]` |321| `strictPluginOnlyCustomization` | (仅 Managed 设置)阻止 skills、agents、hooks 和 MCP servers 来自用户和项目源,因此它们只能来自插件或 managed 设置。`true` 锁定所有四个表面;数组仅锁定命名的表面。请参阅 [`strictPluginOnlyCustomization`](#strictpluginonlycustomization) | `["skills", "hooks"]` |

322| `syntaxHighlightingDisabled` | 禁用 diffs、代码块和文件预览中的语法高亮 | `true` |322| `syntaxHighlightingDisabled` | 禁用 diffs、代码块和文件预览中的语法高亮 | `true` |

323| `teammateMode` | **默认**:`in-process`。[agent team](/zh-CN/agent-teams) 队友的显示方式:`in-process`、`auto`(在 tmux 或 iTerm2 中选择分割窗格,否则进程内)、`tmux`(使用 tmux 或 iTerm2 选择分割窗格,从您的终端检测)或 {/* min-version: 2.1.186 */}}`iterm2`(iTerm2 本机分割窗格通过 `it2` CLI,在 v2.1.186 中添加)。默认在 v2.1.179 中从 `auto` 更改。`--teammate-mode` 覆盖此用于一个会话。请参阅[选择显示模式](/zh-CN/agent-teams#choose-a-display-mode) | `"auto"` |323| `teammateMode` | **默认**:`in-process`。[agent team](/docs/zh-CN/agent-teams) 队友的显示方式:`in-process`、`auto`(在 tmux 或 iTerm2 中选择分割窗格,否则进程内)、`tmux`(使用 tmux 或 iTerm2 选择分割窗格,从您的终端检测)或 }`iterm2`(iTerm2 本机分割窗格通过 `it2` CLI,在 v2.1.186 中添加)。默认在 v2.1.179 中从 `auto` 更改。`--teammate-mode` 覆盖此用于一个会话。请参阅[选择显示模式](/docs/zh-CN/agent-teams#choose-a-display-mode) | `"auto"` |

324| `terminalProgressBarEnabled` | **默认**:`true`。在支持的终端中显示终端进度条:ConEmu、Ghostty 1.2.0+ 和 iTerm2 3.6.6+。在 `/config` 中显示为**终端进度条** | `false` |324| `terminalProgressBarEnabled` | **默认**:`true`。在支持的终端中显示终端进度条:ConEmu、Ghostty 1.2.0+ 和 iTerm2 3.6.6+。在 `/config` 中显示为**终端进度条** | `false` |

325| `theme` | {/* min-version: 2.1.119 */}**默认**:`"dark"`。界面的颜色主题:`"auto"`、`"dark"`、`"light"`、`"dark-daltonized"`、`"light-daltonized"`、`"dark-ansi"`、`"light-ansi"` 或自定义主题参考,如 `"custom:<slug>"` 或 `"custom:<plugin-name>:<slug>"`。请参阅[创建自定义主题](/zh-CN/terminal-config#create-a-custom-theme)。在 `/config` 中显示为**主题** | `"dark"` |325| `theme` | **默认**:`"dark"`。界面的颜色主题:`"auto"`、`"dark"`、`"light"`、`"dark-daltonized"`、`"light-daltonized"`、`"dark-ansi"`、`"light-ansi"` 或自定义主题参考,如 `"custom:<slug>"` 或 `"custom:<plugin-name>:<slug>"`。请参阅[创建自定义主题](/docs/zh-CN/terminal-config#create-a-custom-theme)。在 `/config` 中显示为**主题** | `"dark"` |

326| `tui` | 终端 UI 渲染器。使用 `"fullscreen"` 获取无闪烁的[替代屏幕渲染器](/zh-CN/fullscreen),具有虚拟化滚动条。使用 `"default"` 获取经典主屏幕渲染器。通过 `/tui` 设置。您也可以设置 [`CLAUDE_CODE_NO_FLICKER`](/zh-CN/env-vars) 环境变量。后台会话从[代理视图](/zh-CN/agent-view)打开始终使用全屏渲染器,无论此设置如何 | `"fullscreen"` |326| `tui` | 终端 UI 渲染器。使用 `"fullscreen"` 获取无闪烁的[替代屏幕渲染器](/docs/zh-CN/fullscreen),具有虚拟化滚动条。使用 `"default"` 获取经典主屏幕渲染器。通过 `/tui` 设置。您也可以设置 [`CLAUDE_CODE_NO_FLICKER`](/docs/zh-CN/env-vars) 环境变量。后台会话从[代理视图](/docs/zh-CN/agent-view)打开始终使用全屏渲染器,无论此设置如何 | `"fullscreen"` |

327| `ultracode` | 为会话打开 [ultracode](/zh-CN/workflows#let-claude-decide-with-ultracode)。此键不从 `settings.json` 读取。通过 `/effort ultracode`、`--settings` 或 Agent SDK 控制请求设置。{/* min-version: 2.1.203 */}要启动已打开 ultracode 的会话,使用 `claude --effort ultracode` 启动,需要 Claude Code v2.1.203 或更高版本 | `true` |327| `ultracode` | 为会话打开 [ultracode](/docs/zh-CN/workflows#let-claude-decide-with-ultracode)。此键不从 `settings.json` 读取。通过 `/effort ultracode`、`--settings` 或 Agent SDK 控制请求设置。要启动已打开 ultracode 的会话,使用 `claude --effort ultracode` 启动,需要 Claude Code v2.1.203 或更高版本 | `true` |

328| `useAutoModeDuringPlan` | **默认**:`true`。Plan Mode 在自动模式可用时是否使用自动模式语义。不从共享项目设置读取。在 `/config` 中显示为"在计划期间使用自动模式" | `false` |328| `useAutoModeDuringPlan` | **默认**:`true`。Plan Mode 在自动模式可用时是否使用自动模式语义。不从共享项目设置读取。在 `/config` 中显示为"在计划期间使用自动模式" | `false` |

329| `verbose` | {/* min-version: 2.1.119 */}**默认**:`false`。显示完整工具输出而不是截断的摘要。在 `/config` 中显示为**详细输出**。`--verbose` 标志覆盖此用于一个会话 | `true` |329| `verbose` | **默认**:`false`。显示完整工具输出而不是截断的摘要。在 `/config` 中显示为**详细输出**。`--verbose` 标志覆盖此用于一个会话 | `true` |

330| `viewMode` | 启动时的默认记录视图模式:`"default"`、`"verbose"` 或 `"focus"`。设置时覆盖粘性 `/focus` 选择。`--verbose` 标志覆盖此用于一个会话 | `"verbose"` |330| `viewMode` | 启动时的默认记录视图模式:`"default"`、`"verbose"` 或 `"focus"`。设置时覆盖粘性 `/focus` 选择。`--verbose` 标志覆盖此用于一个会话 | `"verbose"` |

331| `vimInsertModeRemaps` | {/* min-version: 2.1.208 */}将两键 INSERT 模式序列映射到 Escape 在[vim 编辑器模式](/zh-CN/interactive-mode#vim-editor-mode)中。每个键恰好是两个按顺序键入的可打印字符,`"<Esc>"` 是唯一支持的目标;其他条目被忽略。仅从用户、`--settings` 标志和 managed 设置读取,因此存储库的已检入设置无法重新映射您的按键。除非 `editorMode` 为 `"vim"`,否则无效。请参阅[重新映射 INSERT 模式键序列](/zh-CN/interactive-mode#remap-insert-mode-key-sequences)。需要 Claude Code v2.1.208 或更高版本 | `{"jj": "<Esc>"}` |331| `vimInsertModeRemaps` | 将两键 INSERT 模式序列映射到 Escape 在[vim 编辑器模式](/docs/zh-CN/interactive-mode#vim-editor-mode)中。每个键恰好是两个按顺序键入的可打印字符,`"<Esc>"` 是唯一支持的目标;其他条目被忽略。仅从用户、`--settings` 标志和 managed 设置读取,因此存储库的已检入设置无法重新映射您的按键。除非 `editorMode` 为 `"vim"`,否则无效。请参阅[重新映射 INSERT 模式键序列](/docs/zh-CN/interactive-mode#remap-insert-mode-key-sequences)。需要 Claude Code v2.1.208 或更高版本 | `{"jj": "<Esc>"}` |

332| `voice` | [语音听写](/zh-CN/voice-dictation)设置:`enabled` 打开听写,`mode` 选择 `"hold"` 或 `"tap"`,`autoSubmit` 在保持模式下按键释放时发送提示。当您运行 `/voice` 时自动写入。需要 Claude.ai 账户 | `{ "enabled": true, "mode": "tap" }` |332| `voice` | [语音听写](/docs/zh-CN/voice-dictation)设置:`enabled` 打开听写,`mode` 选择 `"hold"` 或 `"tap"`,`autoSubmit` 在保持模式下按键释放时发送提示。当您运行 `/voice` 时自动写入。需要 Claude.ai 账户 | `{ "enabled": true, "mode": "tap" }` |

333| `voiceEnabled` | `voice.enabled` 的旧别名。优先使用 `voice` 对象 | `true` |333| `voiceEnabled` | `voice.enabled` 的旧别名。优先使用 `voice` 对象 | `true` |

334| `wheelScrollAccelerationEnabled` | {/* min-version: 2.1.174 */}**默认**:`true`。在[全屏渲染](/zh-CN/fullscreen#mouse-wheel-scrolling)中,加速鼠标滚轮滚动速度在快速滚动期间。设置为 `false` 以获得每个滚轮缺口的恒定滚动速率。需要 Claude Code v2.1.174 或更高版本 | `false` |334| `wheelScrollAccelerationEnabled` | **默认**:`true`。在[全屏渲染](/docs/zh-CN/fullscreen#mouse-wheel-scrolling)中,加速鼠标滚轮滚动速度在快速滚动期间。设置为 `false` 以获得每个滚轮缺口的恒定滚动速率。需要 Claude Code v2.1.174 或更高版本 | `false` |

335| `workflowKeywordTriggerEnabled` | {/* min-version: 2.1.157 */}**默认**:`true`。提示中的单词 `ultracode` 是否触发[动态工作流](/zh-CN/workflows#ask-for-a-workflow-in-your-prompt)。设置为 `false` 以键入单词而不触发一个。Ultracode 努力设置、`/workflows` 和保存的工作流命令不受影响。在 `/config` 中显示为**Ultracode 关键字触发**。在 v2.1.157 中添加;在 v2.1.160 之前触发关键字是 `workflow` | `false` |335| `workflowKeywordTriggerEnabled` | **默认**:`true`。提示中的单词 `ultracode` 是否触发[动态工作流](/docs/zh-CN/workflows#ask-for-a-workflow-in-your-prompt)。设置为 `false` 以键入单词而不触发一个。Ultracode 努力设置、`/workflows` 和保存的工作流命令不受影响。在 `/config` 中显示为**Ultracode 关键字触发**。在 v2.1.157 中添加;在 v2.1.160 之前触发关键字是 `workflow` | `false` |

336| `wslInheritsWindowsSettings` | (仅 Windows managed 设置)当为 `true` 时,WSL 上的 Claude Code 除了 `/etc/claude-code` 外还从 Windows 策略链读取 managed 设置,Windows 源优先。仅在 HKLM 注册表项或 `C:\Program Files\ClaudeCode\managed-settings.json` 中设置时被尊重,两者都需要 Windows 管理员权限才能写入。为了让 HKCU 策略也在 WSL 上应用,该标志还必须在 HKCU 本身中设置。对本机 Windows 无效 | `true` |336| `wslInheritsWindowsSettings` | (仅 Windows managed 设置)当为 `true` 时,WSL 上的 Claude Code 除了 `/etc/claude-code` 外还从 Windows 策略链读取 managed 设置,Windows 源优先。仅在 HKLM 注册表项或 `C:\Program Files\ClaudeCode\managed-settings.json` 中设置时被尊重,两者都需要 Windows 管理员权限才能写入。为了让 HKCU 策略也在 WSL 上应用,该标志还必须在 HKCU 本身中设置。对本机 Windows 无效 | `true` |

337 337 

338<h3 id="global-config-settings">338<h3 id="global-config-settings">


346</Note>346</Note>

347 347 

348| 键 | 描述 | 示例 |348| 键 | 描述 | 示例 |

349| :--------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------- |349| :--------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------- |

350| `autoConnectIde` | **默认**:`false`。当 Claude Code 从外部终端启动时自动连接到运行的 IDE。在 VS Code 或 JetBrains 终端外运行时在 `/config` 中显示为**自动连接到 IDE(外部终端)**。[`CLAUDE_CODE_AUTO_CONNECT_IDE`](/zh-CN/env-vars) 环境变量在设置时覆盖此 | `true` |350| `autoConnectIde` | **默认**:`false`。当 Claude Code 从外部终端启动时自动连接到运行的 IDE。在 VS Code 或 JetBrains 终端外运行时在 `/config` 中显示为**自动连接到 IDE(外部终端)**。[`CLAUDE_CODE_AUTO_CONNECT_IDE`](/docs/zh-CN/env-vars) 环境变量在设置时覆盖此 | `true` |

351| `autoInstallIdeExtension` | **默认**:`true`。从 VS Code 终端运行时自动安装 Claude Code IDE 扩展。在 VS Code 或 JetBrains 终端内运行时在 `/config` 中显示为**自动安装 IDE 扩展**。您也可以设置 [`CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL`](/zh-CN/env-vars) 环境变量 | `false` |351| `autoInstallIdeExtension` | **默认**:`true`。从 VS Code 终端运行时自动安装 Claude Code IDE 扩展。在 VS Code 或 JetBrains 终端内运行时在 `/config` 中显示为**自动安装 IDE 扩展**。您也可以设置 [`CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL`](/docs/zh-CN/env-vars) 环境变量 | `false` |

352| `externalEditorContext` | **默认**:`false`。当您使用 `Ctrl+G` 打开外部编辑器时,将 Claude 的上一个响应作为 `#` 注释上下文前置。在 `/config` 中显示为**在外部编辑器中显示最后响应** | `true` |352| `externalEditorContext` | **默认**:`false`。当您使用 `Ctrl+G` 打开外部编辑器时,将 Claude 的上一个响应作为 `#` 注释上下文前置。在 `/config` 中显示为**在外部编辑器中显示最后响应** | `true` |

353| `permissionExplainerEnabled` | **默认**:`true`。当您在 Bash 或 PowerShell 权限提示上按 `Ctrl+E` 时显示模型生成的[命令说明](/zh-CN/permissions#permission-system)。设置为 `false` 以关闭快捷键 | `false` |353| `permissionExplainerEnabled` | **默认**:`true`。当您在 Bash 或 PowerShell 权限提示上按 `Ctrl+E` 时显示模型生成的[命令说明](/docs/zh-CN/permissions#permission-system)。设置为 `false` 以关闭快捷键 | `false` |

354| `teammateDefaultModel` | [agent team](/zh-CN/agent-teams) 队友的默认模型,当生成提示未指定时。设置为模型别名(如 `"sonnet"`),或 `null` 以继承主导的当前 `/model` 选择。在 `/config` 中显示为**默认队友模型** | `"sonnet"` |354| `teammateDefaultModel` | [agent team](/docs/zh-CN/agent-teams) 队友的默认模型,当生成提示未指定时。设置为模型别名(如 `"sonnet"`),或 `null` 以继承主导的当前 `/model` 选择。在 `/config` 中显示为**默认队友模型** | `"sonnet"` |

355| `workflowSizeGuideline` | {/* min-version: 2.1.202 */}**默认**:`unrestricted`,不发送指南。设置[动态工作流](/zh-CN/workflows#set-a-size-guideline)中 Claude 针对的[代理计数](/zh-CN/workflows#set-a-size-guideline)。Claude Code 将值作为建议而不是强制上限发送给 Claude。接受 `unrestricted`、`small`、`medium` 或 `large`。在 `/config` 中显示为**动态工作流大小**。您也可以使用 `/config workflowSizeGuideline=small` 直接设置它。需要 Claude Code v2.1.202 或更高版本。{/* min-version: 2.1.203 */}指南的代理计数也替换[`Large workflow` 警告](/zh-CN/workflows#cost)的默认阈值;该行为需要 Claude Code v2.1.203 或更高版本 | `"small"` |355| `workflowSizeGuideline` | **默认**:`unrestricted`,不发送指南。设置[动态工作流](/docs/zh-CN/workflows#set-a-size-guideline)中 Claude 针对的[代理计数](/docs/zh-CN/workflows#set-a-size-guideline)。Claude Code 将值作为建议而不是强制上限发送给 Claude。接受 `unrestricted`、`small`、`medium` 或 `large`。在 `/config` 中显示为**动态工作流大小**。您也可以使用 `/config workflowSizeGuideline=small` 直接设置它。需要 Claude Code v2.1.202 或更高版本。指南的代理计数也替换[`Large workflow` 警告](/docs/zh-CN/workflows#cost)的默认阈值;该行为需要 Claude Code v2.1.203 或更高版本 | `"small"` |

356 356 

357<h3 id="worktree-settings">357<h3 id="worktree-settings">

358 Worktree 设置358 Worktree 设置


361配置 `--worktree` 如何创建和管理 git worktrees。361配置 `--worktree` 如何创建和管理 git worktrees。

362 362 

363| 键 | 描述 | 示例 |363| 键 | 描述 | 示例 |

364| :---------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------ |364| :---------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------ |

365| `worktree.baseRef` | 新 worktrees 分支的参考。`"fresh"`(默认)从 `origin/<default-branch>` 分支以获得与远程匹配的干净树。`"head"` 从您当前的本地 `HEAD` 分支,因此未推送的提交和特性分支状态存在于 worktree 中。在 linked worktree 内,`"head"` 解析为该 worktree 的 `HEAD`,而不是主检出的。适用于 `--worktree`、`EnterWorktree` 工具和 subagent 隔离 | `"head"` |365| `worktree.baseRef` | 新 worktrees 分支的参考。`"fresh"`(默认)从 `origin/<default-branch>` 分支以获得与远程匹配的干净树。`"head"` 从您当前的本地 `HEAD` 分支,因此未推送的提交和特性分支状态存在于 worktree 中。在 linked worktree 内,`"head"` 解析为该 worktree 的 `HEAD`,而不是主检出的。适用于 `--worktree`、`EnterWorktree` 工具和 subagent 隔离 | `"head"` |

366| `worktree.symlinkDirectories` | 要从主存储库符号链接到每个 worktree 的目录,以避免在磁盘上复制大型目录。默认情况下不符号链接任何目录 | `["node_modules", ".cache"]` |366| `worktree.symlinkDirectories` | 要从主存储库符号链接到每个 worktree 的目录,以避免在磁盘上复制大型目录。默认情况下不符号链接任何目录 | `["node_modules", ".cache"]` |

367| `worktree.sparsePaths` | 通过 git sparse-checkout 在每个 worktree 中检出的目录。仅将列出的目录加上根级文件写入磁盘,在大型 monorepos 中更快。当 sparse worktree 存在时,git 在存储库的共享 `.git/config` 中启用 `extensions.worktreeConfig`;请参阅[仅检出您需要的目录](/zh-CN/large-codebases#check-out-only-the-directories-you-need) | `["packages/my-app", "shared/utils"]` |367| `worktree.sparsePaths` | 通过 git sparse-checkout 在每个 worktree 中检出的目录。仅将列出的目录加上根级文件写入磁盘,在大型 monorepos 中更快。当 sparse worktree 存在时,git 在存储库的共享 `.git/config` 中启用 `extensions.worktreeConfig`;请参阅[仅检出您需要的目录](/docs/zh-CN/large-codebases#check-out-only-the-directories-you-need) | `["packages/my-app", "shared/utils"]` |

368| `worktree.bgIsolation` | {/* min-version: 2.1.143 */}[后台会话](/zh-CN/agent-view#how-file-edits-are-isolated)的隔离模式。`"worktree"`(默认)在调用 `EnterWorktree` 之前阻止主检出中的 `Edit`/`Write`。{/* min-version: 2.1.203 */}在 git 存储库外,失败的 [`WorktreeCreate` hook](/zh-CN/worktrees#non-git-version-control) 释放块,以便会话可以就地编辑工作目录;需要 Claude Code v2.1.203 或更高版本。`"none"` 让后台作业直接编辑工作副本。需要 Claude Code v2.1.143 或更高版本 | `"none"` |368| `worktree.bgIsolation` | [后台会话](/docs/zh-CN/agent-view#how-file-edits-are-isolated)的隔离模式。`"worktree"`(默认)在调用 `EnterWorktree` 之前阻止主检出中的 `Edit`/`Write`。在 git 存储库外,失败的 [`WorktreeCreate` hook](/docs/zh-CN/worktrees#non-git-version-control) 释放块,以便会话可以就地编辑工作目录;需要 Claude Code v2.1.203 或更高版本。`"none"` 让后台作业直接编辑工作副本。需要 Claude Code v2.1.143 或更高版本 | `"none"` |

369 369 

370要将 gitignored 文件(如 `.env`)复制到新的 worktrees,请在项目根目录中使用 [`.worktreeinclude` 文件](/zh-CN/worktrees#copy-gitignored-files-into-worktrees),而不是设置。370要将 gitignored 文件(如 `.env`)复制到新的 worktrees,请在项目根目录中使用 [`.worktreeinclude` 文件](/docs/zh-CN/worktrees#copy-gitignored-files-into-worktrees),而不是设置。

371 371 

372<h3 id="permission-settings">372<h3 id="permission-settings">

373 权限设置373 权限设置

374</h3>374</h3>

375 375 

376| 键 | 描述 | 示例 |376| 键 | 描述 | 示例 |

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

378| `allow` | 允许工具使用的权限规则数组。工具名称 globs 仅在字面 `mcp__<server>__` 前缀后的工具位置支持,例如 `mcp__github__get_*`;server 段必须无 glob。请参阅下面的[权限规则语法](#permission-rule-syntax)了解模式匹配详情 | `[ "Bash(git diff *)" ]` |378| `allow` | 允许工具使用的权限规则数组。工具名称 globs 仅在字面 `mcp__<server>__` 前缀后的工具位置支持,例如 `mcp__github__get_*`;server 段必须无 glob。请参阅下面的[权限规则语法](#permission-rule-syntax)了解模式匹配详情 | `[ "Bash(git diff *)" ]` |

379| `ask` | 在工具使用时要求确认的权限规则数组。请参阅下面的[权限规则语法](#permission-rule-syntax) | `[ "Bash(git push *)" ]` |379| `ask` | 在工具使用时要求确认的权限规则数组。请参阅下面的[权限规则语法](#permission-rule-syntax) | `[ "Bash(git push *)" ]` |

380| `deny` | 拒绝工具使用的权限规则数组。使用此排除敏感文件不被 Claude Code 访问。工具名称接受 glob 模式:`"*"` 拒绝每个工具,`"mcp__*"` 拒绝所有 MCP 工具。请参阅[权限规则语法](#permission-rule-syntax)和 [Bash 权限限制](/zh-CN/permissions#tool-specific-permission-rules) | `[ "WebFetch", "Bash(curl *)", "Read(./.env)", "Read(./secrets/**)" ]` |380| `deny` | 拒绝工具使用的权限规则数组。使用此排除敏感文件不被 Claude Code 访问。工具名称接受 glob 模式:`"*"` 拒绝每个工具,`"mcp__*"` 拒绝所有 MCP 工具。请参阅[权限规则语法](#permission-rule-syntax)和 [Bash 权限限制](/docs/zh-CN/permissions#tool-specific-permission-rules) | `[ "WebFetch", "Bash(curl *)", "Read(./.env)", "Read(./secrets/**)" ]` |

381| `additionalDirectories` | Claude 有权访问的额外[工作目录](/zh-CN/permissions#working-directories)。大多数 `.claude/` 配置[未从这些目录发现](/zh-CN/permissions#additional-directories-grant-file-access-not-configuration) | `[ "../docs/" ]` |381| `additionalDirectories` | Claude 有权访问的额外[工作目录](/docs/zh-CN/permissions#working-directories)。大多数 `.claude/` 配置[未从这些目录发现](/docs/zh-CN/permissions#additional-directories-grant-file-access-not-configuration) | `[ "../docs/" ]` |

382| `defaultMode` | 打开 Claude Code 时的默认[权限模式](/zh-CN/permission-modes)。有效值:`default`、`acceptEdits`、`plan`、`auto`、`dontAsk`、`bypassPermissions` 和 {/* min-version: 2.1.200 */}}`manual` 作为 `default` 的别名,CLI、VS Code 和 JetBrains 扩展以及桌面应用中标记为 Manual 的模式。`manual` 别名需要 Claude Code v2.1.200 或更高版本。{/* min-version: 2.1.142 */}从 Claude Code v2.1.142 开始,当在项目或本地设置(`.claude/settings.json`、`.claude/settings.local.json`)中设置时,`auto` 被忽略,因此存储库无法授予自己自动模式。改为在 `~/.claude/settings.json` 中设置它。在 v2.1.142 之前,项目设置可以设置 `auto`。`--permission-mode` CLI 标志覆盖此设置用于单个会话 | `"acceptEdits"` |382| `defaultMode` | 打开 Claude Code 时的默认[权限模式](/docs/zh-CN/permission-modes)。有效值:`default`、`acceptEdits`、`plan`、`auto`、`dontAsk`、`bypassPermissions` 和 }`manual` 作为 `default` 的别名,CLI、VS Code 和 JetBrains 扩展以及桌面应用中标记为 Manual 的模式。`manual` 别名需要 Claude Code v2.1.200 或更高版本。从 Claude Code v2.1.142 开始,当在项目或本地设置(`.claude/settings.json`、`.claude/settings.local.json`)中设置时,`auto` 被忽略,因此存储库无法授予自己自动模式。改为在 `~/.claude/settings.json` 中设置它。在 v2.1.142 之前,项目设置可以设置 `auto`。`--permission-mode` CLI 标志覆盖此设置用于单个会话 | `"acceptEdits"` |

383| `disableBypassPermissionsMode` | 设置为 `"disable"` 以防止激活 `bypassPermissions` 模式。禁用 `--dangerously-skip-permissions` 标志。通常放在[managed 设置](/zh-CN/permissions#managed-settings)中以强制执行组织策略,但适用于任何作用域 | `"disable"` |383| `disableBypassPermissionsMode` | 设置为 `"disable"` 以防止激活 `bypassPermissions` 模式。禁用 `--dangerously-skip-permissions` 标志。通常放在[managed 设置](/docs/zh-CN/permissions#managed-settings)中以强制执行组织策略,但适用于任何作用域 | `"disable"` |

384| `skipDangerousModePermissionPrompt` | 跳过通过 `--dangerously-skip-permissions` 或 `defaultMode: "bypassPermissions"` 进入 bypass permissions 模式前显示的确认提示。在项目设置(`.claude/settings.json`)中设置时被忽略,以防止不受信任的存储库自动绕过提示 | `true` |384| `skipDangerousModePermissionPrompt` | 跳过通过 `--dangerously-skip-permissions` 或 `defaultMode: "bypassPermissions"` 进入 bypass permissions 模式前显示的确认提示。在项目设置(`.claude/settings.json`)中设置时被忽略,以防止不受信任的存储库自动绕过提示 | `true` |

385 385 

386<h3 id="permission-rule-syntax">386<h3 id="permission-rule-syntax">

387 权限规则语法387 权限规则语法

388</h3>388</h3>

389 389 

390权限规则遵循 `Tool` 或 `Tool(specifier)` 的格式。规则按顺序评估:首先是拒绝规则,然后是询问,最后是允许。第一个匹配的规则确定结果,无论规则特异性如何。请参阅[权限规则评估顺序](/zh-CN/permissions#manage-permissions)了解详情。390权限规则遵循 `Tool` 或 `Tool(specifier)` 的格式。规则按顺序评估:首先是拒绝规则,然后是询问,最后是允许。第一个匹配的规则确定结果,无论规则特异性如何。请参阅[权限规则评估顺序](/docs/zh-CN/permissions#manage-permissions)了解详情。

391 391 

392快速示例:392快速示例:

393 393 


398| `Read(./.env)` | 匹配读取 `.env` 文件 |398| `Read(./.env)` | 匹配读取 `.env` 文件 |

399| `WebFetch(domain:example.com)` | 匹配对 example.com 的获取请求 |399| `WebFetch(domain:example.com)` | 匹配对 example.com 的获取请求 |

400 400 

401有关完整的规则语法参考,包括通配符行为、Read、Edit、WebFetch、MCP 和 Agent 规则的工具特定模式,以及 Bash 模式的安全限制,请参阅[权限规则语法](/zh-CN/permissions#permission-rule-syntax)。401有关完整的规则语法参考,包括通配符行为、Read、Edit、WebFetch、MCP 和 Agent 规则的工具特定模式,以及 Bash 模式的安全限制,请参阅[权限规则语法](/docs/zh-CN/permissions#permission-rule-syntax)。

402 402 

403<h3 id="sandbox-settings">403<h3 id="sandbox-settings">

404 Sandbox 设置404 Sandbox 设置

405</h3>405</h3>

406 406 

407配置高级 sandboxing 行为。Sandboxing 将 bash 命令与您的文件系统和网络隔离。请参阅 [Sandboxing](/zh-CN/sandboxing) 了解详情。407配置高级 sandboxing 行为。Sandboxing 将 bash 命令与您的文件系统和网络隔离。请参阅 [Sandboxing](/docs/zh-CN/sandboxing) 了解详情。

408 408 

409| 键 | 描述 | 示例 |409| 键 | 描述 | 示例 |

410| :------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------- |410| :------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :--------------------------------------------------- |

411| `enabled` | 启用 bash sandboxing(macOS、Linux 和 WSL2)。默认:false | `true` |411| `enabled` | 启用 bash sandboxing(macOS、Linux 和 WSL2)。默认:false | `true` |

412| `failIfUnavailable` | 如果 `sandbox.enabled` 为 true 但 sandbox 无法启动(缺少依赖项或不支持的平台),则在启动时以错误退出。当为 false(默认)时,显示警告,命令无 sandbox 运行。用于需要 sandboxing 作为硬门的 managed 设置部署 | `true` |412| `failIfUnavailable` | 如果 `sandbox.enabled` 为 true 但 sandbox 无法启动(缺少依赖项或不支持的平台),则在启动时以错误退出。当为 false(默认)时,显示警告,命令无 sandbox 运行。用于需要 sandboxing 作为硬门的 managed 设置部署 | `true` |

413| `autoAllowBashIfSandboxed` | 当 sandboxed 时自动批准 bash 命令。默认:true | `true` |413| `autoAllowBashIfSandboxed` | 当 sandboxed 时自动批准 bash 命令。默认:true | `true` |


416| `filesystem.allowWrite` | sandboxed 命令可以写入的额外路径。数组跨所有设置作用域合并:用户、项目和 managed 路径组合,不替换。也与 `Edit(...)` 允许权限规则中的路径合并。请参阅下面的[路径前缀](#sandbox-path-prefixes)。 | `["/tmp/build", "~/.kube"]` |416| `filesystem.allowWrite` | sandboxed 命令可以写入的额外路径。数组跨所有设置作用域合并:用户、项目和 managed 路径组合,不替换。也与 `Edit(...)` 允许权限规则中的路径合并。请参阅下面的[路径前缀](#sandbox-path-prefixes)。 | `["/tmp/build", "~/.kube"]` |

417| `filesystem.denyWrite` | sandboxed 命令无法写入的路径。数组跨所有设置作用域合并。也与 `Edit(...)` 拒绝权限规则中的路径合并。 | `["/etc", "/usr/local/bin"]` |417| `filesystem.denyWrite` | sandboxed 命令无法写入的路径。数组跨所有设置作用域合并。也与 `Edit(...)` 拒绝权限规则中的路径合并。 | `["/etc", "/usr/local/bin"]` |

418| `filesystem.denyRead` | sandboxed 命令无法读取的路径。数组跨所有设置作用域合并。也与 `Read(...)` 拒绝权限规则中的路径合并。 | `["~/.aws/credentials"]` |418| `filesystem.denyRead` | sandboxed 命令无法读取的路径。数组跨所有设置作用域合并。也与 `Read(...)` 拒绝权限规则中的路径合并。 | `["~/.aws/credentials"]` |

419| `filesystem.allowRead` | 在 `denyRead` 区域内重新允许读取的路径。`allowRead` 路径在更广泛的 `denyRead` 区域内重新打开读取,`denyRead` 中的精确路径在更广泛的 `allowRead` 内保持被阻止;请参阅[重叠表](/zh-CN/sandboxing#configure-sandboxing)了解示例。数组跨所有设置作用域合并。使用此创建仅工作区读取访问模式。 | `["."]` |419| `filesystem.allowRead` | 在 `denyRead` 区域内重新允许读取的路径。`allowRead` 路径在更广泛的 `denyRead` 区域内重新打开读取,`denyRead` 中的精确路径在更广泛的 `allowRead` 内保持被阻止;请参阅[重叠表](/docs/zh-CN/sandboxing#configure-sandboxing)了解示例。数组跨所有设置作用域合并。使用此创建仅工作区读取访问模式。 | `["."]` |

420| `filesystem.allowManagedReadPathsOnly` | (仅 Managed 设置)仅尊重来自 managed 设置的 `filesystem.allowRead` 路径。`denyRead` 仍从所有源合并。默认:false | `true` |420| `filesystem.allowManagedReadPathsOnly` | (仅 Managed 设置)仅尊重来自 managed 设置的 `filesystem.allowRead` 路径。`denyRead` 仍从所有源合并。默认:false | `true` |

421| `credentials.files` | {/* min-version: 2.1.187 */}Credential 文件或目录,sandboxed 命令无法读取。应用与 `filesystem.denyRead` 相同的读取块;单独的键将凭证路径与 `credentials.envVars` 分组,与一般文件系统规则分开。每个条目是 `{ "path": "...", "mode": "deny" }`,仅支持 `deny`。路径使用与 `filesystem.*` 设置相同的[前缀](#sandbox-path-prefixes)。数组跨所有设置作用域合并。需要 Claude Code v2.1.187 或更高版本。 | `[{ "path": "~/.aws/credentials", "mode": "deny" }]` |421| `credentials.files` | Credential 文件或目录,sandboxed 命令无法读取。应用与 `filesystem.denyRead` 相同的读取块;单独的键将凭证路径与 `credentials.envVars` 分组,与一般文件系统规则分开。每个条目是 `{ "path": "...", "mode": "deny" }`,仅支持 `deny`。路径使用与 `filesystem.*` 设置相同的[前缀](#sandbox-path-prefixes)。数组跨所有设置作用域合并。需要 Claude Code v2.1.187 或更高版本。 | `[{ "path": "~/.aws/credentials", "mode": "deny" }]` |

422| `credentials.envVars` | {/* min-version: 2.1.187 */}要[保护免受 sandboxed 命令](/zh-CN/sandboxing#protect-credentials)的环境变量。每个条目有一个 `name` 和一个 `mode`;名称必须以字母或下划线开头,仅包含字母、数字和下划线。`deny` 从 sandboxed 命令的环境中删除变量。需要 Claude Code v2.1.187 或更高版本。{/* min-version: 2.1.199 */}}`mask` 在 sandbox 内用每个会话的哨兵值替换变量,同时 sandbox 代理在对该条目的 `injectHosts` 的出站请求上替换真实值;它需要 `network.tlsTerminate` 和 Claude Code v2.1.199 或更高版本。`mask` 条目仅从用户、managed 或 CLI `--settings` 设置受尊重,不从 `.claude/settings.json` 或 `.claude/settings.local.json`。数组跨所有设置作用域合并,当同一变量同时出现两种模式时 `deny` 优先。 | `[{ "name": "GITHUB_TOKEN", "mode": "deny" }]` |422| `credentials.envVars` | 要[保护免受 sandboxed 命令](/docs/zh-CN/sandboxing#protect-credentials)的环境变量。每个条目有一个 `name` 和一个 `mode`;名称必须以字母或下划线开头,仅包含字母、数字和下划线。`deny` 从 sandboxed 命令的环境中删除变量。需要 Claude Code v2.1.187 或更高版本。}`mask` 在 sandbox 内用每个会话的哨兵值替换变量,同时 sandbox 代理在对该条目的 `injectHosts` 的出站请求上替换真实值;它需要 `network.tlsTerminate` 和 Claude Code v2.1.199 或更高版本。`mask` 条目仅从用户、managed 或 CLI `--settings` 设置受尊重,不从 `.claude/settings.json` 或 `.claude/settings.local.json`。数组跨所有设置作用域合并,当同一变量同时出现两种模式时 `deny` 优先。 | `[{ "name": "GITHUB_TOKEN", "mode": "deny" }]` |

423| `credentials.envVars[].injectHosts` | sandbox 代理替换 `mask` 条目真实值的主机。每个主机也必须由 `network.allowedDomains` 覆盖,要么完全要么通过通配符。未设置时,代理在对 `network.allowedDomains` 中每个主机的请求上替换值。当 `mode` 为 `deny` 时被接受但忽略。需要 Claude Code v2.1.199 或更高版本。{/* min-version: 2.1.199 */}} | `["api.github.com"]` |423| `credentials.envVars[].injectHosts` | sandbox 代理替换 `mask` 条目真实值的主机。每个主机也必须由 `network.allowedDomains` 覆盖,要么完全要么通过通配符。未设置时,代理在对 `network.allowedDomains` 中每个主机的请求上替换值。当 `mode` 为 `deny` 时被接受但忽略。需要 Claude Code v2.1.199 或更高版本。} | `["api.github.com"]` |

424| `credentials.allowPlaintextInject` | 允许 `mask` 替换在纯 HTTP 请求以及 TLS 终止的 HTTPS 上。在纯 HTTP 上上游身份未验证,凭证以明文形式传输,因此在受信任的测试网络外保持此关闭。仅从用户、managed 或 CLI `--settings` 设置受尊重,不从 `.claude/settings.json` 或 `.claude/settings.local.json`。默认:false。需要 Claude Code v2.1.199 或更高版本。{/* min-version: 2.1.199 */}} | `true` |424| `credentials.allowPlaintextInject` | 允许 `mask` 替换在纯 HTTP 请求以及 TLS 终止的 HTTPS 上。在纯 HTTP 上上游身份未验证,凭证以明文形式传输,因此在受信任的测试网络外保持此关闭。仅从用户、managed 或 CLI `--settings` 设置受尊重,不从 `.claude/settings.json` 或 `.claude/settings.local.json`。默认:false。需要 Claude Code v2.1.199 或更高版本。} | `true` |

425| `network.allowUnixSockets` | (仅 macOS)sandbox 中可访问的 Unix socket 路径。在 Linux 和 WSL2 上被忽略,其中 seccomp 过滤器无法检查 socket 路径;改用 `allowAllUnixSockets`。 | `["~/.ssh/agent-socket"]` |425| `network.allowUnixSockets` | (仅 macOS)sandbox 中可访问的 Unix socket 路径。在 Linux 和 WSL2 上被忽略,其中 seccomp 过滤器无法检查 socket 路径;改用 `allowAllUnixSockets`。 | `["~/.ssh/agent-socket"]` |

426| `network.allowAllUnixSockets` | 允许 sandbox 中的所有 Unix socket 连接。在 Linux 和 WSL2 上这是允许 Unix sockets 的唯一方式,因为它跳过了 seccomp 过滤器,否则会阻止 `socket(AF_UNIX, ...)` 调用。默认:false | `true` |426| `network.allowAllUnixSockets` | 允许 sandbox 中的所有 Unix socket 连接。在 Linux 和 WSL2 上这是允许 Unix sockets 的唯一方式,因为它跳过了 seccomp 过滤器,否则会阻止 `socket(AF_UNIX, ...)` 调用。默认:false | `true` |

427| `network.allowLocalBinding` | 允许绑定到 localhost 端口(仅 macOS)。默认:false | `true` |427| `network.allowLocalBinding` | 允许绑定到 localhost 端口(仅 macOS)。默认:false | `true` |


431| `network.allowManagedDomainsOnly` | (仅 Managed 设置)仅尊重来自 managed 设置的 `allowedDomains` 和 `WebFetch(domain:...)` 允许规则。来自用户、项目和本地设置的域被忽略。非允许的域自动被阻止,不提示用户。拒绝的域仍从所有源受尊重。默认:false | `true` |431| `network.allowManagedDomainsOnly` | (仅 Managed 设置)仅尊重来自 managed 设置的 `allowedDomains` 和 `WebFetch(domain:...)` 允许规则。来自用户、项目和本地设置的域被忽略。非允许的域自动被阻止,不提示用户。拒绝的域仍从所有源受尊重。默认:false | `true` |

432| `network.httpProxyPort` | 如果您想自带代理,使用的 HTTP 代理端口。如果未指定,Claude 将运行自己的代理。 | `8080` |432| `network.httpProxyPort` | 如果您想自带代理,使用的 HTTP 代理端口。如果未指定,Claude 将运行自己的代理。 | `8080` |

433| `network.socksProxyPort` | 如果您想自带代理,使用的 SOCKS5 代理端口。如果未指定,Claude 将运行自己的代理。 | `8081` |433| `network.socksProxyPort` | 如果您想自带代理,使用的 SOCKS5 代理端口。如果未指定,Claude 将运行自己的代理。 | `8081` |

434| `network.tlsTerminate` | 实验性。在 sandbox 代理内终止 TLS,以便它可以读取 HTTPS 请求的内容。[凭证替换](/zh-CN/sandboxing#protect-credentials)的 `mask` 需要。设置 `{}` 以为会话生成临时证书颁发机构,或设置 `caCertPath` 和 `caKeyPath` 以使用您自己的。仅从用户、managed 或 CLI `--settings` 设置受尊重,不从 `.claude/settings.json` 或 `.claude/settings.local.json`。需要 Claude Code v2.1.199 或更高版本。{/* min-version: 2.1.199 */}} | `{}` |434| `network.tlsTerminate` | 实验性。在 sandbox 代理内终止 TLS,以便它可以读取 HTTPS 请求的内容。[凭证替换](/docs/zh-CN/sandboxing#protect-credentials)的 `mask` 需要。设置 `{}` 以为会话生成临时证书颁发机构,或设置 `caCertPath` 和 `caKeyPath` 以使用您自己的。仅从用户、managed 或 CLI `--settings` 设置受尊重,不从 `.claude/settings.json` 或 `.claude/settings.local.json`。需要 Claude Code v2.1.199 或更高版本。} | `{}` |

435| `enableWeakerNestedSandbox` | 为无特权 Docker 环境启用较弱的 sandbox(仅 Linux 和 WSL2)。**降低安全性。** 默认:false | `true` |435| `enableWeakerNestedSandbox` | 为无特权 Docker 环境启用较弱的 sandbox(仅 Linux 和 WSL2)。**降低安全性。** 默认:false | `true` |

436| `enableWeakerNetworkIsolation` | (仅 macOS)允许在 sandbox 中访问系统 TLS 信任服务(`com.apple.trustd.agent`)。对于 Go 基础工具(如 `gh`、`gcloud` 和 `terraform`)在使用 `httpProxyPort` 与 MITM 代理和自定义 CA 时验证 TLS 证书是必需的。**通过打开潜在的数据泄露路径降低安全性**。默认:false | `true` |436| `enableWeakerNetworkIsolation` | (仅 macOS)允许在 sandbox 中访问系统 TLS 信任服务(`com.apple.trustd.agent`)。对于 Go 基础工具(如 `gh`、`gcloud` 和 `terraform`)在使用 `httpProxyPort` 与 MITM 代理和自定义 CA 时验证 TLS 证书是必需的。**通过打开潜在的数据泄露路径降低安全性**。默认:false | `true` |

437| `allowAppleEvents` | (仅 macOS)允许 sandboxed 命令发送 Apple Events。对于 `open`、`osascript` 和在浏览器中打开 URL 的工具是必需的,否则会失败并显示错误 `-600`。**删除代码执行隔离。** Sandboxed 命令可以无用户提示地启动其他应用程序无 sandbox;它们也可以向运行的应用程序(如 Terminal)发送 AppleScript 命令,受每个应用程序 macOS 自动化同意提示(TCC)的约束。仅从用户、managed 或 CLI 设置受尊重,不从项目设置。默认:false | `true` |437| `allowAppleEvents` | (仅 macOS)允许 sandboxed 命令发送 Apple Events。对于 `open`、`osascript` 和在浏览器中打开 URL 的工具是必需的,否则会失败并显示错误 `-600`。**删除代码执行隔离。** Sandboxed 命令可以无用户提示地启动其他应用程序无 sandbox;它们也可以向运行的应用程序(如 Terminal)发送 AppleScript 命令,受每个应用程序 macOS 自动化同意提示(TCC)的约束。仅从用户、managed 或 CLI 设置受尊重,不从项目设置。默认:false | `true` |

438| `bwrapPath` | (仅 Managed 设置,Linux/WSL2)bubblewrap (`bwrap`) 二进制文件的绝对路径。覆盖通过 `PATH` 的自动检测。仅从 [managed 设置](/zh-CN/settings#settings-precedence)受尊重,不从用户或项目设置。在 managed 环境中 `bwrap` 安装在非标准位置时很有用。 | `/opt/admin/bwrap` |438| `bwrapPath` | (仅 Managed 设置,Linux/WSL2)bubblewrap (`bwrap`) 二进制文件的绝对路径。覆盖通过 `PATH` 的自动检测。仅从 [managed 设置](/docs/zh-CN/settings#settings-precedence)受尊重,不从用户或项目设置。在 managed 环境中 `bwrap` 安装在非标准位置时很有用。 | `/opt/admin/bwrap` |

439| `socatPath` | (仅 Managed 设置,Linux/WSL2)用于 sandbox 网络代理的 `socat` 二进制文件的绝对路径。覆盖通过 `PATH` 的自动检测。仅从 managed 设置受尊重。 | `/opt/admin/socat` |439| `socatPath` | (仅 Managed 设置,Linux/WSL2)用于 sandbox 网络代理的 `socat` 二进制文件的绝对路径。覆盖通过 `PATH` 的自动检测。仅从 managed 设置受尊重。 | `/opt/admin/socat` |

440 440 

441<h4 id="sandbox-path-prefixes">441<h4 id="sandbox-path-prefixes">


450| `~/` | 相对于主目录 | `~/.kube` 变为 `$HOME/.kube` |450| `~/` | 相对于主目录 | `~/.kube` 变为 `$HOME/.kube` |

451| `./` 或无前缀 | 相对于项目设置的项目根目录,或相对于用户设置的 `~/.claude` | `./output` 在 `.claude/settings.json` 中解析为 `<project-root>/output` |451| `./` 或无前缀 | 相对于项目设置的项目根目录,或相对于用户设置的 `~/.claude` | `./output` 在 `.claude/settings.json` 中解析为 `<project-root>/output` |

452 452 

453较旧的 `//path` 前缀用于绝对路径仍然有效。如果您之前使用单斜杠 `/path` 期望项目相对解析,请切换到 `./path`。此语法与[读取和编辑权限规则](/zh-CN/permissions#read-and-edit)不同,后者使用 `//path` 用于绝对和 `/path` 用于项目相对。Sandbox 文件系统路径使用标准约定:`/tmp/build` 是绝对路径。453较旧的 `//path` 前缀用于绝对路径仍然有效。如果您之前使用单斜杠 `/path` 期望项目相对解析,请切换到 `./path`。此语法与[读取和编辑权限规则](/docs/zh-CN/permissions#read-and-edit)不同,后者使用 `//path` 用于绝对和 `/path` 用于项目相对。Sandbox 文件系统路径使用标准约定:`/tmp/build` 是绝对路径。

454 454 

455**配置示例:**455**配置示例:**

456 456 


540}540}

541```541```

542 542 

543该命令使用与 [hooks](/zh-CN/hooks) 相同的环境变量运行,包括 `CLAUDE_PROJECT_DIR`。它通过 stdin 接收包含 `query` 字段的 JSON:543该命令使用与 [hooks](/docs/zh-CN/hooks) 相同的环境变量运行,包括 `CLAUDE_PROJECT_DIR`。它通过 stdin 接收包含 `query` 字段的 JSON:

544 544 

545```json theme={null}545```json theme={null}

546{"query": "src/comp"}546{"query": "src/comp"}


601 601 

602当轮次完成时,Claude Code 在主线程上将每个条目的 `pattern` 正则表达式与轮次输出匹配,因此缓慢的正则表达式会阻止 UI,直到完成。嵌套量词(如 `(a+)+$`)可能对某些输入花费指数级长时间并冻结会话,因此保持每个 `pattern` 线性并避免嵌套 `+` 或 `*`。602当轮次完成时,Claude Code 在主线程上将每个条目的 `pattern` 正则表达式与轮次输出匹配,因此缓慢的正则表达式会阻止 UI,直到完成。嵌套量词(如 `(a+)+$`)可能对某些输入花费指数级长时间并冻结会话,因此保持每个 `pattern` 线性并避免嵌套 `+` 或 `*`。

603 603 

604页脚徽章与[自定义状态行](/zh-CN/statusline)一起渲染,当配置了一个时;两者都不替换另一个。使用状态行用于从会话数据计算自己内容的脚本驱动行,使用页脚徽章将对话中的 ID 转换为链接,无需脚本。604页脚徽章与[自定义状态行](/docs/zh-CN/statusline)一起渲染,当配置了一个时;两者都不替换另一个。使用状态行用于从会话数据计算自己内容的脚本驱动行,使用页脚徽章将对话中的 ID 转换为链接,无需脚本。

605 605 

606<h3 id="hook-configuration">606<h3 id="hook-configuration">

607 Hook 配置607 Hook 配置


639 使用策略助手计算 managed 设置639 使用策略助手计算 managed 设置

640</h3>640</h3>

641 641 

642`policyHelper` 设置指向一个可执行文件,在启动时动态计算 managed 设置,因此管理员可以从设备状态、身份或远程服务而不是静态文件派生策略。从 MDM 或系统 `managed-settings.json` 文件配置它。Claude Code 在 `policyHelper` 出现在任何其他作用域时忽略它,包括用户设置、项目设置、HKCU 注册表配置单元和[服务器管理的设置](/zh-CN/server-managed-settings)。642`policyHelper` 设置指向一个可执行文件,在启动时动态计算 managed 设置,因此管理员可以从设备状态、身份或远程服务而不是静态文件派生策略。从 MDM 或系统 `managed-settings.json` 文件配置它。Claude Code 在 `policyHelper` 出现在任何其他作用域时忽略它,包括用户设置、项目设置、HKCU 注册表配置单元和[服务器管理的设置](/docs/zh-CN/server-managed-settings)。

643 643 

644该设置接受这些键:644该设置接受这些键:

645 645 


669 669 

670设置按优先级顺序应用。从最高到最低:670设置按优先级顺序应用。从最高到最低:

671 671 

6721. **Managed 设置**([服务器管理](/zh-CN/server-managed-settings)、[MDM/OS 级别策略](#configuration-scopes) 或 [managed 设置](#settings-files))6721. **Managed 设置**([服务器管理](/docs/zh-CN/server-managed-settings)、[MDM/OS 级别策略](#configuration-scopes) 或 [managed 设置](#settings-files))

673 * 由 IT 通过服务器交付、MDM 配置文件、注册表策略或 managed 设置文件部署的策略673 * 由 IT 通过服务器交付、MDM 配置文件、注册表策略或 managed 设置文件部署的策略

674 * 无法被任何其他级别覆盖,包括命令行参数674 * 无法被任何其他级别覆盖,包括命令行参数

675 * 在 managed 层内,仅使用一个源,其他源被忽略而不是合并。优先级,从最高到最低:675 * 在 managed 层内,仅使用一个源,其他源被忽略而不是合并。优先级,从最高到最低:

676 * [`policyHelper`](#compute-managed-settings-with-a-policy-helper) 输出:当配置时,这是唯一使用的 managed 源676 * [`policyHelper`](#compute-managed-settings-with-a-policy-helper) 输出:当配置时,这是唯一使用的 managed 源

677 * 远程(claude.ai [服务器管理](/zh-CN/server-managed-settings) 或 [Claude apps gateway](/zh-CN/claude-apps-gateway) 交付)677 * 远程(claude.ai [服务器管理](/docs/zh-CN/server-managed-settings) 或 [Claude apps gateway](/docs/zh-CN/claude-apps-gateway) 交付)

678 * MDM/OS 级别策略678 * MDM/OS 级别策略

679 * 基于文件(`managed-settings.d/*.json` 和 `managed-settings.json`,合并在一起)679 * 基于文件(`managed-settings.d/*.json` 和 `managed-settings.json`,合并在一起)

680 * HKCU 注册表(仅 Windows)680 * HKCU 注册表(仅 Windows)


682 * sandbox 锁定键 `sandbox.network.allowManagedDomainsOnly` 和 `sandbox.filesystem.allowManagedReadPathsOnly`,带有其关联的允许列表682 * sandbox 锁定键 `sandbox.network.allowManagedDomainsOnly` 和 `sandbox.filesystem.allowManagedReadPathsOnly`,带有其关联的允许列表

683 * `allowAllClaudeAiMcps`683 * `allowAllClaudeAiMcps`

684 * sandbox 二进制路径 `sandbox.bwrapPath` 和 `sandbox.socatPath`684 * sandbox 二进制路径 `sandbox.bwrapPath` 和 `sandbox.socatPath`

685 * [`forceRemoteSettingsRefresh`](/zh-CN/server-managed-settings)685 * [`forceRemoteSettingsRefresh`](/docs/zh-CN/server-managed-settings)

686 * 嵌入主机(如 Claude Desktop)可以通过 SDK `managedSettings` 选项提供策略。默认情况下,当存在任何管理员部署的 managed 源时,这被忽略:服务器管理的设置、MDM 或 OS 级别策略或 managed 设置文件。用户可写的 HKCU 注册表回退不计为管理员部署的源。管理员可以通过将 [`parentSettingsBehavior`](#available-settings) 设置为 `"merge"` 来选择加入。嵌入器的值被筛选,以便它们可以收紧 managed 策略但不能放松它。686 * 嵌入主机(如 Claude Desktop)可以通过 SDK `managedSettings` 选项提供策略。默认情况下,当存在任何管理员部署的 managed 源时,这被忽略:服务器管理的设置、MDM 或 OS 级别策略或 managed 设置文件。用户可写的 HKCU 注册表回退不计为管理员部署的源。管理员可以通过将 [`parentSettingsBehavior`](#available-settings) 设置为 `"merge"` 来选择加入。嵌入器的值被筛选,以便它们可以收紧 managed 策略但不能放松它。

687 687 

6882. **命令行参数**6882. **命令行参数**


6975. **用户设置**(`~/.claude/settings.json`)6975. **用户设置**(`~/.claude/settings.json`)

698 * 个人全局设置698 * 个人全局设置

699 699 

700此层次结构确保组织策略始终被强制执行,同时仍允许团队和个人自定义其体验。无论您从 CLI、[VS Code 扩展](/zh-CN/vs-code) 还是 [JetBrains IDE](/zh-CN/jetbrains) 运行 Claude Code,相同的优先级都适用。700此层次结构确保组织策略始终被强制执行,同时仍允许团队和个人自定义其体验。无论您从 CLI、[VS Code 扩展](/docs/zh-CN/vs-code) 还是 [JetBrains IDE](/docs/zh-CN/jetbrains) 运行 Claude Code,相同的优先级都适用。

701 701 

702例如,如果您的用户设置将 `permissions.defaultMode` 设置为 `acceptEdits`,而项目的共享设置将其设置为 `default`,则项目值适用。下面的示例涵盖了数组值设置(如权限规则)如何组合的方式。702例如,如果您的用户设置将 `permissions.defaultMode` 设置为 `acceptEdits`,而项目的共享设置将其设置为 `default`,则项目值适用。下面的示例涵盖了数组值设置(如权限规则)如何组合的方式。

703 703 


707 两个数组设置不以这种方式合并:707 两个数组设置不以这种方式合并:

708 708 

709 * [`fallbackModel`](#available-settings) 是一个有序链,其中位置具有意义:定义它的最高优先级文件提供整个值。709 * [`fallbackModel`](#available-settings) 是一个有序链,其中位置具有意义:定义它的最高优先级文件提供整个值。

710 * [`availableModels`](#available-settings):{/* min-version: 2.1.175 */}当[最高优先级 managed 源](/zh-CN/server-managed-settings#settings-precedence)定义它时,该列表按原样应用,用户、项目和本地条目无法扩展它。跨非 managed 作用域,数组照常合并。请参阅[合并行为](/zh-CN/model-config#merge-behavior)。710 * [`availableModels`](#available-settings):当[最高优先级 managed 源](/docs/zh-CN/server-managed-settings#settings-precedence)定义它时,该列表按原样应用,用户、项目和本地条目无法扩展它。跨非 managed 作用域,数组照常合并。请参阅[合并行为](/docs/zh-CN/model-config#merge-behavior)。

711</Note>711</Note>

712 712 

713<h3 id="verify-active-settings">713<h3 id="verify-active-settings">

714 验证活跃设置714 验证活跃设置

715</h3>715</h3>

716 716 

717在 Claude Code 中运行 `/status` 以查看哪些设置源处于活跃状态。在菜单中,**状态**选项卡包含一个 `Setting sources` 行,列出 Claude Code 为当前会话加载的每个层,例如 `User settings` 或 `Project local settings`。当[managed 设置](/zh-CN/admin-setup#decide-how-settings-reach-devices)生效时,该条目在括号中显示交付渠道,例如 `Enterprise managed settings (remote)`、`(plist)`、`(HKLM)`、`(HKCU)` 或 `(file)`。仅当该源被加载且至少有一个键时,层才出现在列表中,因此空列表意味着未找到设置源。717在 Claude Code 中运行 `/status` 以查看哪些设置源处于活跃状态。在菜单中,**状态**选项卡包含一个 `Setting sources` 行,列出 Claude Code 为当前会话加载的每个层,例如 `User settings` 或 `Project local settings`。当[managed 设置](/docs/zh-CN/admin-setup#decide-how-settings-reach-devices)生效时,该条目在括号中显示交付渠道,例如 `Enterprise managed settings (remote)`、`(plist)`、`(HKLM)`、`(HKCU)` 或 `(file)`。仅当该源被加载且至少有一个键时,层才出现在列表中,因此空列表意味着未找到设置源。

718 718 

719`Setting sources` 行确认正在读取哪些源。它不显示哪一层提供了每个单独的键。同一对话框中的**配置**选项卡是一个编辑器,用于一组固定的切换,例如主题和详细输出,而不是您的 `settings.json` 内容的视图。719`Setting sources` 行确认正在读取哪些源。它不显示哪一层提供了每个单独的键。同一对话框中的**配置**选项卡是一个编辑器,用于一组固定的切换,例如主题和详细输出,而不是您的 `settings.json` 内容的视图。

720 720 


768* **用户 subagents**:`~/.claude/agents/`,在所有项目中可用768* **用户 subagents**:`~/.claude/agents/`,在所有项目中可用

769* **项目 subagents**:`.claude/agents/`,特定于您的项目,可与您的团队共享769* **项目 subagents**:`.claude/agents/`,特定于您的项目,可与您的团队共享

770 770 

771Subagent 文件定义具有自定义提示和工具权限的专门 AI 助手。在 [subagents 文档](/zh-CN/sub-agents)中了解有关创建和使用 subagents 的更多信息。771Subagent 文件定义具有自定义提示和工具权限的专门 AI 助手。在 [subagents 文档](/docs/zh-CN/sub-agents)中了解有关创建和使用 subagents 的更多信息。

772 772 

773<h2 id="plugin-configuration">773<h2 id="plugin-configuration">

774 插件配置774 插件配置


804 `enabledPlugins`804 `enabledPlugins`

805</h4>805</h4>

806 806 

807控制启用哪些插件。格式:`"plugin-name@marketplace-name": true/false`。没有在任何作用域中有条目的插件会回退到其 [`defaultEnabled`](/zh-CN/plugins-reference#default-enablement) 值。807控制启用哪些插件。格式:`"plugin-name@marketplace-name": true/false`。没有在任何作用域中有条目的插件会回退到其 [`defaultEnabled`](/docs/zh-CN/plugins-reference#default-enablement) 值。

808 808 

809**作用域**:809**作用域**:

810 810 


818 818 

819 由 managed 设置强制启用的插件无法以这种方式禁用,因为 managed 设置会覆盖本地设置。819 由 managed 设置强制启用的插件无法以这种方式禁用,因为 managed 设置会覆盖本地设置。

820 820 

821 从外部源(如 GitHub 存储库或 npm 包)在项目的 `.claude/settings.json` 中启用插件不会为其他人安装它。从 Claude Code v2.1.195 开始,加载插件的每条路径都会要求每个用户在运行前[安装并信任插件](/zh-CN/discover-plugins#configure-team-marketplaces)。821 从外部源(如 GitHub 存储库或 npm 包)在项目的 `.claude/settings.json` 中启用插件不会为其他人安装它。从 Claude Code v2.1.195 开始,加载插件的每条路径都会要求每个用户在运行前[安装并信任插件](/docs/zh-CN/discover-plugins#configure-team-marketplaces)。

822</Note>822</Note>

823 823 

824**示例**:824**示例**:


837 `pluginConfigs`837 `pluginConfigs`

838</h4>838</h4>

839 839 

840存储插件的 [`userConfig`](/zh-CN/plugins-reference#user-configuration) 提示收集的非敏感选项值,按插件 ID 键入。当您填写插件的配置对话框时,Claude Code 会将此键写入用户设置,因此您无需手动编辑它。敏感选项存储在 macOS Keychain 中,或在没有支持的 keychain 的平台上存储在 `~/.claude/.credentials.json` 中。840存储插件的 [`userConfig`](/docs/zh-CN/plugins-reference#user-configuration) 提示收集的非敏感选项值,按插件 ID 键入。当您填写插件的配置对话框时,Claude Code 会将此键写入用户设置,因此您无需手动编辑它。敏感选项存储在 macOS Keychain 中,或在没有支持的 keychain 的平台上存储在 `~/.claude/.credentials.json` 中。

841 841 

842此示例为从 `acme-tools` 市场安装的插件存储一个选项:842此示例为从 `acme-tools` 市场安装的插件存储一个选项:

843 843 


897* `hostPattern`:正则表达式模式以匹配市场主机(使用 `hostPattern`)897* `hostPattern`:正则表达式模式以匹配市场主机(使用 `hostPattern`)

898* `settings`:直接在 settings.json 中声明的内联市场,无需单独的托管存储库(使用 `name` 和 `plugins`)898* `settings`:直接在 settings.json 中声明的内联市场,无需单独的托管存储库(使用 `name` 和 `plugins`)

899 899 

900`git` 源类型适用于任何 git 托管服务,包括自托管的 GitLab 和 Bitbucket。Claude Code 使用与该机器上 `git clone` 相同的身份验证克隆存储库:配置的凭证助手或 SSH 密钥。提供者令牌(如 `GITHUB_TOKEN`)仅通过读取它的凭证助手生效。有关设置详情,请参阅[私有存储库](/zh-CN/plugin-marketplaces#private-repositories)。900`git` 源类型适用于任何 git 托管服务,包括自托管的 GitLab 和 Bitbucket。Claude Code 使用与该机器上 `git clone` 相同的身份验证克隆存储库:配置的凭证助手或 SSH 密钥。提供者令牌(如 `GITHUB_TOKEN`)仅通过读取它的凭证助手生效。有关设置详情,请参阅[私有存储库](/docs/zh-CN/plugin-marketplaces#private-repositories)。

901 901 

902对于 `github` 和 `git` 源,在 `source` 对象内设置 `"skipLfs": true`(与 `repo` 或 `url` 一起)以在 Claude Code 克隆或更新市场存储库时跳过 Git LFS 下载。LFS 指针文件保持为指针而不是下载其内容。当存储库包含与插件内容无关的大型 LFS 对象时,使用此选项。{/* min-version: 2.1.153 */}需要 Claude Code v2.1.153 或更高版本。902对于 `github` 和 `git` 源,在 `source` 对象内设置 `"skipLfs": true`(与 `repo` 或 `url` 一起)以在 Claude Code 克隆或更新市场存储库时跳过 Git LFS 下载。LFS 指针文件保持为指针而不是下载其内容。当存储库包含与插件内容无关的大型 LFS 对象时,使用此选项。需要 Claude Code v2.1.153 或更高版本。

903 903 

904每个市场条目还接受可选的 `autoUpdate` 布尔值。在 `source` 旁边设置 `"autoUpdate": true` 以使 Claude Code 在启动时刷新该市场并更新其已安装的插件。省略时,官方 Anthropic 市场默认为 `true`,所有其他市场默认为 `false`。请参阅[配置自动更新](/zh-CN/discover-plugins#configure-auto-updates)。904每个市场条目还接受可选的 `autoUpdate` 布尔值。在 `source` 旁边设置 `"autoUpdate": true` 以使 Claude Code 在启动时刷新该市场并更新其已安装的插件。省略时,官方 Anthropic 市场默认为 `true`,所有其他市场默认为 `false`。请参阅[配置自动更新](/docs/zh-CN/discover-plugins#configure-auto-updates)。

905 905 

906使用 `source: 'settings'` 声明一小组插件内联,无需设置托管市场存储库。此处列出的插件必须引用外部源,例如 GitHub 或 npm。您仍需要在 `enabledPlugins` 中单独启用每个插件。906使用 `source: 'settings'` 声明一小组插件内联,无需设置托管市场存储库。此处列出的插件必须引用外部源,例如 GitHub 或 npm。您仍需要在 `enabledPlugins` 中单独启用每个插件。

907 907 


931 `strictKnownMarketplaces`931 `strictKnownMarketplaces`

932</h4>932</h4>

933 933 

934**仅 Managed 设置**:控制用户允许添加和安装插件的插件市场。此设置只能在 [managed 设置](/zh-CN/settings#settings-files) 中配置,为管理员提供对市场源的严格控制。934**仅 Managed 设置**:控制用户允许添加和安装插件的插件市场。此设置只能在 [managed 设置](/docs/zh-CN/settings#settings-files) 中配置,为管理员提供对市场源的严格控制。

935 935 

936**Managed 设置文件位置**:936**Managed 设置文件位置**:

937 937 


986字段:`url`(必需)、`headers`(可选:用于身份验证访问的 HTTP 标头)986字段:`url`(必需)、`headers`(可选:用于身份验证访问的 HTTP 标头)

987 987 

988<Note>988<Note>

989 基于 URL 的市场仅下载 `marketplace.json` 文件。它们不从服务器下载插件文件。基于 URL 的市场中的插件必须使用外部源(GitHub、npm 或 git URL)而不是相对路径。对于具有相对路径的插件,改用基于 Git 的市场。请参阅[故障排除](/zh-CN/plugin-marketplaces#plugins-with-relative-paths-fail-in-url-based-marketplaces)了解详情。989 基于 URL 的市场仅下载 `marketplace.json` 文件。它们不从服务器下载插件文件。基于 URL 的市场中的插件必须使用外部源(GitHub、npm 或 git URL)而不是相对路径。对于具有相对路径的插件,改用基于 Git 的市场。请参阅[故障排除](/docs/zh-CN/plugin-marketplaces#plugins-with-relative-paths-fail-in-url-based-marketplaces)了解详情。

990</Note>990</Note>

991 991 

9924. **NPM 包**:9924. **NPM 包**:


1176* 限制在市场添加和插件安装、更新、刷新和自动更新时强制执行。在策略设置之前添加的市场一旦其源不再与允许列表匹配,就无法用于安装或更新插件1176* 限制在市场添加和插件安装、更新、刷新和自动更新时强制执行。在策略设置之前添加的市场一旦其源不再与允许列表匹配,就无法用于安装或更新插件

1177* Managed 设置具有最高优先级,无法被覆盖1177* Managed 设置具有最高优先级,无法被覆盖

1178 1178 

1179请参阅 [Managed 市场限制](/zh-CN/plugin-marketplaces#managed-marketplace-restrictions)了解面向用户的文档。1179请参阅 [Managed 市场限制](/docs/zh-CN/plugin-marketplaces#managed-marketplace-restrictions)了解面向用户的文档。

1180 1180 

1181<h4 id="strictpluginonlycustomization">1181<h4 id="strictpluginonlycustomization">

1182 `strictPluginOnlyCustomization`1182 `strictPluginOnlyCustomization`


1199| `skills` | `~/.claude/skills/`、`.claude/skills/` | 插件 skills、捆绑 skills、managed 策略目录中的 skills |1199| `skills` | `~/.claude/skills/`、`.claude/skills/` | 插件 skills、捆绑 skills、managed 策略目录中的 skills |

1200| `agents` | `~/.claude/agents/`、`.claude/agents/` | 插件 agents、内置 agents、managed 策略目录中的 agents |1200| `agents` | `~/.claude/agents/`、`.claude/agents/` | 插件 agents、内置 agents、managed 策略目录中的 agents |

1201| `hooks` | 用户、项目和本地 `settings.json` 中的 hooks | 插件 hooks、managed 设置中的 hooks |1201| `hooks` | 用户、项目和本地 `settings.json` 中的 hooks | 插件 hooks、managed 设置中的 hooks |

1202| `mcp` | `~/.claude.json` 和 `.mcp.json` 中的服务器 | 插件 MCP servers、[`managed-mcp.json`](/zh-CN/managed-mcp) 服务器 |1202| `mcp` | `~/.claude.json` 和 `.mcp.json` 中的服务器 | 插件 MCP servers、[`managed-mcp.json`](/docs/zh-CN/managed-mcp) 服务器 |

1203 1203 

1204Claude Code 版本不识别的表面名称被忽略而不是导致设置文件失败,因此您可以在所有客户端更新之前添加新的表面名称。1204Claude Code 版本不识别的表面名称被忽略而不是导致设置文件失败,因此您可以在所有客户端更新之前添加新的表面名称。

1205 1205 


1215* 查看插件详情(提供的 skills、agents、hooks)1215* 查看插件详情(提供的 skills、agents、hooks)

1216* 添加/删除市场1216* 添加/删除市场

1217 1217 

1218在[插件文档](/zh-CN/plugins)中了解有关插件系统的更多信息。1218在[插件文档](/docs/zh-CN/plugins)中了解有关插件系统的更多信息。

1219 1219 

1220<h2 id="environment-variables">1220<h2 id="environment-variables">

1221 环境变量1221 环境变量


1223 1223 

1224环境变量让您可以控制 Claude Code 行为而无需编辑设置文件。任何变量也可以在 [`settings.json`](#available-settings) 中的 `env` 键下配置,以将其应用于每个会话或将其推出到您的团队。1224环境变量让您可以控制 Claude Code 行为而无需编辑设置文件。任何变量也可以在 [`settings.json`](#available-settings) 中的 `env` 键下配置,以将其应用于每个会话或将其推出到您的团队。

1225 1225 

1226请参阅[环境变量参考](/zh-CN/env-vars)了解完整列表。1226请参阅[环境变量参考](/docs/zh-CN/env-vars)了解完整列表。

1227 1227 

1228<h2 id="tools-available-to-claude">1228<h2 id="tools-available-to-claude">

1229 Claude 可用的工具1229 Claude 可用的工具


1231 1231 

1232Claude Code 可以访问一组用于读取、编辑、搜索、运行命令和编排 subagents 的工具。工具名称是您在权限规则和 hook 匹配器中使用的确切字符串。1232Claude Code 可以访问一组用于读取、编辑、搜索、运行命令和编排 subagents 的工具。工具名称是您在权限规则和 hook 匹配器中使用的确切字符串。

1233 1233 

1234请参阅[工具参考](/zh-CN/tools-reference)了解完整列表和 Bash 工具行为详情。1234请参阅[工具参考](/docs/zh-CN/tools-reference)了解完整列表和 Bash 工具行为详情。

1235 1235 

1236<h2 id="see-also">1236<h2 id="see-also">

1237 另请参阅1237 另请参阅

1238</h2>1238</h2>

1239 1239 

1240* [权限](/zh-CN/permissions):权限系统、规则语法、工具特定模式和 managed 策略1240* [权限](/docs/zh-CN/permissions):权限系统、规则语法、工具特定模式和 managed 策略

1241* [身份验证](/zh-CN/authentication):设置用户对 Claude Code 的访问1241* [身份验证](/docs/zh-CN/authentication):设置用户对 Claude Code 的访问

1242* [调试您的配置](/zh-CN/debug-your-config):诊断为什么设置、hook 或 MCP 服务器没有生效1242* [调试您的配置](/docs/zh-CN/debug-your-config):诊断为什么设置、hook 或 MCP 服务器没有生效

1243* [故障排除安装和登录](/zh-CN/troubleshoot-install):安装、身份验证和平台问题1243* [故障排除安装和登录](/docs/zh-CN/troubleshoot-install):安装、身份验证和平台问题

skills.md +45 −45

Details

11当你不断将相同的说明、检查清单或多步骤程序粘贴到聊天中时,或者当 CLAUDE.md 的一部分已经演变成程序而不是事实时,创建一个 skill。与 CLAUDE.md 内容不同,skill 的正文仅在使用时加载,因此长参考资料在你需要它之前几乎不花费任何成本。11当你不断将相同的说明、检查清单或多步骤程序粘贴到聊天中时,或者当 CLAUDE.md 的一部分已经演变成程序而不是事实时,创建一个 skill。与 CLAUDE.md 内容不同,skill 的正文仅在使用时加载,因此长参考资料在你需要它之前几乎不花费任何成本。

12 12 

13<Note>13<Note>

14 对于内置命令(如 `/help` 和 `/compact`)以及捆绑 skills(如 `/debug` 和 `/code-review`),请参阅[命令参考](/zh-CN/commands)。14 对于内置命令(如 `/help` 和 `/compact`)以及捆绑 skills(如 `/debug` 和 `/code-review`),请参阅[命令参考](/docs/zh-CN/commands)。

15 15 

16 **自定义命令已合并到 skills 中。** `.claude/commands/deploy.md` 中的文件和 `.claude/skills/deploy/SKILL.md` 中的 skill 都会创建 `/deploy` 并以相同的方式工作。你现有的 `.claude/commands/` 文件继续工作。Skills 添加了可选功能:支持文件的目录、[控制你或 Claude 是否调用它们](#control-who-invokes-a-skill)的 frontmatter,以及 Claude 在相关时自动加载它们的能力。16 **自定义命令已合并到 skills 中。** `.claude/commands/deploy.md` 中的文件和 `.claude/skills/deploy/SKILL.md` 中的 skill 都会创建 `/deploy` 并以相同的方式工作。你现有的 `.claude/commands/` 文件继续工作。Skills 添加了可选功能:支持文件的目录、[控制你或 Claude 是否调用它们](#control-who-invokes-a-skill)的 frontmatter,以及 Claude 在相关时自动加载它们的能力。

17</Note>17</Note>


22 捆绑 skills22 捆绑 skills

23</h2>23</h2>

24 24 

25Claude Code 包括一组捆绑 skills,在每个会话中都可用,除非通过 [`disableBundledSkills`](/zh-CN/settings#available-settings) 设置禁用,包括 `/doctor`、`/code-review`、`/batch`、`/debug`、`/loop` 和 `/claude-api`。与大多数内置命令不同,内置命令直接执行固定逻辑,捆绑 skills 是基于提示的:它们为 Claude 提供详细的说明,让它使用其工具来编排工作。你调用捆绑 skills 的方式与调用任何其他 skill 相同,输入 `/` 后跟 skill 名称。25Claude Code 包括一组捆绑 skills,在每个会话中都可用,除非通过 [`disableBundledSkills`](/docs/zh-CN/settings#available-settings) 设置禁用,包括 `/doctor`、`/code-review`、`/batch`、`/debug`、`/loop` 和 `/claude-api`。与大多数内置命令不同,内置命令直接执行固定逻辑,捆绑 skills 是基于提示的:它们为 Claude 提供详细的说明,让它使用其工具来编排工作。你调用捆绑 skills 的方式与调用任何其他 skill 相同,输入 `/` 后跟 skill 名称。

26 26 

27[`/doctor`](/zh-CN/commands#all-commands) 设置检查是 Claude Code v2.1.205 及更高版本中 `disableBundledSkills` 的一个例外:当设置打开时,它仍然可以输入。要隐藏它,请设置 `DISABLE_DOCTOR_COMMAND` 环境变量或 [`skillOverrides`](#override-skill-visibility-from-settings) 条目 `"doctor": "off"`。在 v2.1.205 之前,`/doctor` 是一个内置命令而不是捆绑 skill。27[`/doctor`](/docs/zh-CN/commands#all-commands) 设置检查是 Claude Code v2.1.205 及更高版本中 `disableBundledSkills` 的一个例外:当设置打开时,它仍然可以输入。要隐藏它,请设置 `DISABLE_DOCTOR_COMMAND` 环境变量或 [`skillOverrides`](#override-skill-visibility-from-settings) 条目 `"doctor": "off"`。在 v2.1.205 之前,`/doctor` 是一个内置命令而不是捆绑 skill。

28 28 

29捆绑 skills 在[命令参考](/zh-CN/commands)中与内置命令一起列出,在"目的"列中标记为 **Skill**。29捆绑 skills 在[命令参考](/docs/zh-CN/commands)中与内置命令一起列出,在"目的"列中标记为 **Skill**。

30 30 

31<h3 id="run-and-verify-your-app">31<h3 id="run-and-verify-your-app">

32 运行并验证你的应用32 运行并验证你的应用


40| `/verify` | 构建并运行你的应用以确认代码更改是否按预期工作,无需回退到测试或类型检查 |40| `/verify` | 构建并运行你的应用以确认代码更改是否按预期工作,无需回退到测试或类型检查 |

41| `/run-skill-generator` | 教 `/run` 和 `/verify` 如何构建和启动你的项目 |41| `/run-skill-generator` | 教 `/run` 和 `/verify` 如何构建和启动你的项目 |

42 42 

43{/* min-version: 2.1.145 */}所有三个 skills 都需要 Claude Code v2.1.145 或更高版本。43所有三个 skills 都需要 Claude Code v2.1.145 或更高版本。

44 44 

45`/run` 和 `/verify` 无需设置即可工作。它们根据你的项目类型(CLI、服务器、TUI、浏览器驱动)以及 README、`package.json` 或 `Makefile` 中的内容推断启动方式。对于需要标准启动之外的任何东西的项目,该推断变得不可靠:数据库、env 文件、图形会话、多步骤构建。45`/run` 和 `/verify` 无需设置即可工作。它们根据你的项目类型(CLI、服务器、TUI、浏览器驱动)以及 README、`package.json` 或 `Makefile` 中的内容推断启动方式。对于需要标准启动之外的任何东西的项目,该推断变得不可靠:数据库、env 文件、图形会话、多步骤构建。

46 46 


114 114 

115| 位置 | 路径 | 适用于 |115| 位置 | 路径 | 适用于 |

116| :- | :---------------------------------------- | :--------- |116| :- | :---------------------------------------- | :--------- |

117| 企业 | 请参阅[托管设置](/zh-CN/settings#settings-files) | 你的组织中的所有用户 |117| 企业 | 请参阅[托管设置](/docs/zh-CN/settings#settings-files) | 你的组织中的所有用户 |

118| 个人 | `~/.claude/skills/<skill-name>/SKILL.md` | 你的所有项目 |118| 个人 | `~/.claude/skills/<skill-name>/SKILL.md` | 你的所有项目 |

119| 项目 | `.claude/skills/<skill-name>/SKILL.md` | 仅此项目 |119| 项目 | `.claude/skills/<skill-name>/SKILL.md` | 仅此项目 |

120| 插件 | `<plugin>/skills/<skill-name>/SKILL.md` | 启用插件的位置 |120| 插件 | `<plugin>/skills/<skill-name>/SKILL.md` | 启用插件的位置 |


133 133 

134当你或 Claude 调用非限定名称时,项目根目录 skill 加载,Claude Code 将目录限定变体列表附加到其内容中,并指示也调用任何目录包含 Claude 正在处理的文件的变体。因此,嵌套 skill 在仅调用非限定名称时仍然适用于其目录中的工作。需要 Claude Code v2.1.203 或更高版本。134当你或 Claude 调用非限定名称时,项目根目录 skill 加载,Claude Code 将目录限定变体列表附加到其内容中,并指示也调用任何目录包含 Claude 正在处理的文件的变体。因此,嵌套 skill 在仅调用非限定名称时仍然适用于其目录中的工作。需要 Claude Code v2.1.203 或更高版本。

135 135 

136一个 `<skill-name>` 条目在企业、个人或项目位置可以是指向磁盘上其他位置的目录的符号链接。Claude Code 跟随符号链接并从目标目录读取 `SKILL.md`,如果同一目标可从多个位置访问,Claude Code 只加载一次该 skill。插件 skills 以不同的方式处理符号链接;请参阅[使用符号链接在市场中共享文件](/zh-CN/plugins-reference#share-files-within-a-marketplace-with-symlinks)。136一个 `<skill-name>` 条目在企业、个人或项目位置可以是指向磁盘上其他位置的目录的符号链接。Claude Code 跟随符号链接并从目标目录读取 `SKILL.md`,如果同一目标可从多个位置访问,Claude Code 只加载一次该 skill。插件 skills 以不同的方式处理符号链接;请参阅[使用符号链接在市场中共享文件](/docs/zh-CN/plugins-reference#share-files-within-a-marketplace-with-symlinks)。

137 137 

138<Note>138<Note>

139 将 `.claude-plugin/plugin.json` 添加到 skill 文件夹中,它会作为[插件](/zh-CN/plugins-reference#skills-directory-plugins)加载,名称为 `<name>@skills-dir`,因此它可以捆绑 agents、hooks 和 MCP servers。在项目的 `.claude/skills/` 中,这需要首先接受工作区信任对话框。139 将 `.claude-plugin/plugin.json` 添加到 skill 文件夹中,它会作为[插件](/docs/zh-CN/plugins-reference#skills-directory-plugins)加载,名称为 `<name>@skills-dir`,因此它可以捆绑 agents、hooks 和 MCP servers。在项目的 `.claude/skills/` 中,这需要首先接受工作区信任对话框。

140</Note>140</Note>

141 141 

142<h4 id="live-change-detection">142<h4 id="live-change-detection">


146Claude Code 监视 skill 目录的文件变更。在 `~/.claude/skills/`、项目 `.claude/skills/` 或 `--add-dir` 目录内的 `.claude/skills/` 中添加、编辑或删除 skill 会在当前会话中生效,无需重新启动。创建在会话启动时不存在的顶级 skills 目录需要重新启动 Claude Code,以便可以监视新目录。146Claude Code 监视 skill 目录的文件变更。在 `~/.claude/skills/`、项目 `.claude/skills/` 或 `--add-dir` 目录内的 `.claude/skills/` 中添加、编辑或删除 skill 会在当前会话中生效,无需重新启动。创建在会话启动时不存在的顶级 skills 目录需要重新启动 Claude Code,以便可以监视新目录。

147 147 

148<Note>148<Note>

149 实时变更检测仅涵盖 `SKILL.md` 文本。对于也是[插件](/zh-CN/plugins-reference#skills-directory-plugins)的 skill 文件夹,对 `hooks/`、`.mcp.json`、`agents/` 和 `output-styles/` 的更改需要 `/reload-plugins` 才能生效。149 实时变更检测仅涵盖 `SKILL.md` 文本。对于也是[插件](/docs/zh-CN/plugins-reference#skills-directory-plugins)的 skill 文件夹,对 `hooks/`、`.mcp.json`、`agents/` 和 `output-styles/` 的更改需要 `/reload-plugins` 才能生效。

150</Note>150</Note>

151 151 

152<h4 id="automatic-discovery-from-parent-and-nested-directories">152<h4 id="automatic-discovery-from-parent-and-nested-directories">


177 来自其他目录的 skills177 来自其他目录的 skills

178</h4>178</h4>

179 179 

180`--add-dir` 标志和 `/add-dir` 命令[授予文件访问权限](/zh-CN/permissions#additional-directories-grant-file-access-not-configuration)而不是配置发现,但 skills 是一个例外:添加目录中的 `.claude/skills/` 会自动加载。此例外仅适用于 `--add-dir` 和 `/add-dir`。`settings.json` 中的 `permissions.additionalDirectories` 设置仅授予文件访问权限,不加载 skills。请参阅[实时变更检测](#live-change-detection)了解编辑如何在会话期间被拾取。180`--add-dir` 标志和 `/add-dir` 命令[授予文件访问权限](/docs/zh-CN/permissions#additional-directories-grant-file-access-not-configuration)而不是配置发现,但 skills 是一个例外:添加目录中的 `.claude/skills/` 会自动加载。此例外仅适用于 `--add-dir` 和 `/add-dir`。`settings.json` 中的 `permissions.additionalDirectories` 设置仅授予文件访问权限,不加载 skills。请参阅[实时变更检测](#live-change-detection)了解编辑如何在会话期间被拾取。

181 181 

182其他 `.claude/` 配置(如命令和输出样式)不会从其他目录加载。有关加载和不加载的完整列表以及跨项目共享配置的推荐方式,请参阅[例外表](/zh-CN/permissions#additional-directories-grant-file-access-not-configuration)。182其他 `.claude/` 配置(如命令和输出样式)不会从其他目录加载。有关加载和不加载的完整列表以及跨项目共享配置的推荐方式,请参阅[例外表](/docs/zh-CN/permissions#additional-directories-grant-file-access-not-configuration)。

183 183 

184<Note>184<Note>

185 来自 `--add-dir` 目录的 CLAUDE.md 文件默认不加载。要加载它们,请设置 `CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD=1`。请参阅[从其他目录加载](/zh-CN/memory#load-from-additional-directories)。185 来自 `--add-dir` 目录的 CLAUDE.md 文件默认不加载。要加载它们,请设置 `CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD=1`。请参阅[从其他目录加载](/docs/zh-CN/memory#load-from-additional-directories)。

186</Note>186</Note>

187 187 

188<h2 id="configure-skills">188<h2 id="configure-skills">


229 229 

230你的 `SKILL.md` 可以包含任何内容,但思考你想如何调用该 skill(由你、由 Claude 或两者)以及你想在哪里运行它(内联或在 subagent 中)有助于指导要包含的内容。对于复杂的 skills,你也可以[添加支持文件](#add-supporting-files)以保持主 skill 的专注。230你的 `SKILL.md` 可以包含任何内容,但思考你想如何调用该 skill(由你、由 Claude 或两者)以及你想在哪里运行它(内联或在 subagent 中)有助于指导要包含的内容。对于复杂的 skills,你也可以[添加支持文件](#add-supporting-files)以保持主 skill 的专注。

231 231 

232保持主体本身简洁。一旦 skill 加载,其内容[在整个会话中保持在上下文中](#skill-content-lifecycle),因此每一行都是一个重复的令牌成本。说明要做什么而不是叙述如何或为什么,并应用与 [CLAUDE.md 内容](/zh-CN/best-practices#write-an-effective-claude-md)相同的简洁性测试。232保持主体本身简洁。一旦 skill 加载,其内容[在整个会话中保持在上下文中](#skill-content-lifecycle),因此每一行都是一个重复的令牌成本。说明要做什么而不是叙述如何或为什么,并应用与 [CLAUDE.md 内容](/docs/zh-CN/best-practices#write-an-effective-claude-md)相同的简洁性测试。

233 233 

234<h3 id="frontmatter-reference">234<h3 id="frontmatter-reference">

235 Frontmatter 参考235 Frontmatter 参考


257| `when_to_use` | 否 | 关于 Claude 何时应该调用该 skill 的额外上下文,例如触发短语或示例请求。附加到 skill 列表中的 `description`,并计入 1,536 个字符的上限。 |257| `when_to_use` | 否 | 关于 Claude 何时应该调用该 skill 的额外上下文,例如触发短语或示例请求。附加到 skill 列表中的 `description`,并计入 1,536 个字符的上限。 |

258| `argument-hint` | 否 | 自动完成期间显示的提示,指示预期的参数。示例:`[issue-number]` 或 `[filename] [format]`。 |258| `argument-hint` | 否 | 自动完成期间显示的提示,指示预期的参数。示例:`[issue-number]` 或 `[filename] [format]`。 |

259| `arguments` | 否 | 用于 skill 内容中[`$name` 替换](#available-string-substitutions)的命名位置参数。接受空格分隔的字符串或 YAML 列表。名称按顺序映射到参数位置。 |259| `arguments` | 否 | 用于 skill 内容中[`$name` 替换](#available-string-substitutions)的命名位置参数。接受空格分隔的字符串或 YAML 列表。名称按顺序映射到参数位置。 |

260| `disable-model-invocation` | 否 | 设置为 `true` 以防止 Claude 自动加载此 skill。用于你想使用 `/name` 手动触发的工作流。也防止该 skill 被[预加载到 subagents](/zh-CN/sub-agents#preload-skills-into-subagents) 中。从 v2.1.196 开始,也防止该 skill 在[计划任务](/zh-CN/scheduled-tasks)使用该 skill 作为其提示时运行。默认值:`false`。 |260| `disable-model-invocation` | 否 | 设置为 `true` 以防止 Claude 自动加载此 skill。用于你想使用 `/name` 手动触发的工作流。也防止该 skill 被[预加载到 subagents](/docs/zh-CN/sub-agents#preload-skills-into-subagents) 中。从 v2.1.196 开始,也防止该 skill 在[计划任务](/docs/zh-CN/scheduled-tasks)使用该 skill 作为其提示时运行。默认值:`false`。 |

261| `user-invocable` | 否 | 设置为 `false` 以从 `/` 菜单中隐藏。用于用户不应直接调用的背景知识。默认值:`true`。 |261| `user-invocable` | 否 | 设置为 `false` 以从 `/` 菜单中隐藏。用于用户不应直接调用的背景知识。默认值:`true`。 |

262| `allowed-tools` | 否 | 当此 skill 处于活动状态时,Claude 可以使用而无需请求权限的工具。接受空格分隔的字符串或 YAML 列表。 |262| `allowed-tools` | 否 | 当此 skill 处于活动状态时,Claude 可以使用而无需请求权限的工具。接受空格分隔的字符串或 YAML 列表。 |

263| `disallowed-tools` | 否 | 当此 skill 处于活动状态时从 Claude 的可用工具池中移除的工具。用于不应该调用某些工具的自主 skills,例如用于后台循环的 `AskUserQuestion`。接受空格分隔的字符串或 YAML 列表。当你发送下一条消息时,限制会清除。 |263| `disallowed-tools` | 否 | 当此 skill 处于活动状态时从 Claude 的可用工具池中移除的工具。用于不应该调用某些工具的自主 skills,例如用于后台循环的 `AskUserQuestion`。接受空格分隔的字符串或 YAML 列表。当你发送下一条消息时,限制会清除。 |

264| `model` | 否 | 当此 skill 处于活动状态时要使用的模型。覆盖适用于当前轮的其余部分,不保存到设置;会话模型在你的下一个提示时恢复。接受与 [`/model`](/zh-CN/model-config) 相同的值,或 `inherit` 以保持活动模型。被你的组织的 [`availableModels`](/zh-CN/model-config#restrict-model-selection) 允许列表排除的值不会被使用,会话保持其当前模型。 |264| `model` | 否 | 当此 skill 处于活动状态时要使用的模型。覆盖适用于当前轮的其余部分,不保存到设置;会话模型在你的下一个提示时恢复。接受与 [`/model`](/docs/zh-CN/model-config) 相同的值,或 `inherit` 以保持活动模型。被你的组织的 [`availableModels`](/docs/zh-CN/model-config#restrict-model-selection) 允许列表排除的值不会被使用,会话保持其当前模型。 |

265| `effort` | 否 | 当此 skill 处于活动状态时的[工作量级别](/zh-CN/model-config#adjust-effort-level)。覆盖会话工作量级别。默认值:继承自会话。选项:`low`、`medium`、`high`、`xhigh`、`max`;可用级别取决于模型。 |265| `effort` | 否 | 当此 skill 处于活动状态时的[工作量级别](/docs/zh-CN/model-config#adjust-effort-level)。覆盖会话工作量级别。默认值:继承自会话。选项:`low`、`medium`、`high`、`xhigh`、`max`;可用级别取决于模型。 |

266| `context` | 否 | 设置为 `fork` 以在分叉的 subagent 上下文中运行。 |266| `context` | 否 | 设置为 `fork` 以在分叉的 subagent 上下文中运行。 |

267| `agent` | 否 | 当设置 `context: fork` 时要使用的 subagent 类型。 |267| `agent` | 否 | 当设置 `context: fork` 时要使用的 subagent 类型。 |

268| `hooks` | 否 | 限定于此 skill 生命周期的 hooks。有关配置格式,请参阅 [Skills 和代理中的 Hooks](/zh-CN/hooks#hooks-in-skills-and-agents)。 |268| `hooks` | 否 | 限定于此 skill 生命周期的 hooks。有关配置格式,请参阅 [Skills 和代理中的 Hooks](/docs/zh-CN/hooks#hooks-in-skills-and-agents)。 |

269| `paths` | 否 | Glob 模式,限制何时激活此 skill。接受逗号分隔的字符串或 YAML 列表。设置后,Claude 仅在处理与模式匹配的文件时自动加载该 skill。使用与[路径特定规则](/zh-CN/memory#path-specific-rules)相同的格式。 |269| `paths` | 否 | Glob 模式,限制何时激活此 skill。接受逗号分隔的字符串或 YAML 列表。设置后,Claude 仅在处理与模式匹配的文件时自动加载该 skill。使用与[路径特定规则](/docs/zh-CN/memory#path-specific-rules)相同的格式。 |

270| `shell` | 否 | 用于此 skill 中 `` !`command` `` 和 ` ```! ` 块的 shell。接受 `bash`(默认)或 `powershell`。设置 `powershell` 在 Windows 上通过 PowerShell 运行内联 shell 命令。需要 `CLAUDE_CODE_USE_POWERSHELL_TOOL=1`。 |270| `shell` | 否 | 用于此 skill 中 `` !`command` `` 和 ` ```! ` 块的 shell。接受 `bash`(默认)或 `powershell`。设置 `powershell` 在 Windows 上通过 PowerShell 运行内联 shell 命令。需要 `CLAUDE_CODE_USE_POWERSHELL_TOOL=1`。 |

271 271 

272<h4 id="how-a-skill-gets-its-command-name">272<h4 id="how-a-skill-gets-its-command-name">


283| [嵌套](#where-skills-live) `.claude/skills/` 目录,当名称与另一个 skill 冲突时 | 相对于工作目录的子目录路径,然后是 skill 目录名称 | `apps/web/.claude/skills/deploy/SKILL.md` → `/apps/web:deploy` |283| [嵌套](#where-skills-live) `.claude/skills/` 目录,当名称与另一个 skill 冲突时 | 相对于工作目录的子目录路径,然后是 skill 目录名称 | `apps/web/.claude/skills/deploy/SKILL.md` → `/apps/web:deploy` |

284| `.claude/commands/` 下的文件 | 文件名称(不含扩展名) | `.claude/commands/deploy.md` → `/deploy` |284| `.claude/commands/` 下的文件 | 文件名称(不含扩展名) | `.claude/commands/deploy.md` → `/deploy` |

285| 插件 `skills/` 子目录 | 目录名称,由插件命名空间 | `my-plugin/skills/review/SKILL.md` → `/my-plugin:review` |285| 插件 `skills/` 子目录 | 目录名称,由插件命名空间 | `my-plugin/skills/review/SKILL.md` → `/my-plugin:review` |

286| 插件根 `SKILL.md` | Frontmatter `name`,以插件目录名称作为后备 | `my-plugin/SKILL.md` 带有 `name: review` → `/my-plugin:review`。请参阅[路径行为规则](/zh-CN/plugins-reference#path-behavior-rules) |286| 插件根 `SKILL.md` | Frontmatter `name`,以插件目录名称作为后备 | `my-plugin/SKILL.md` 带有 `name: review` → `/my-plugin:review`。请参阅[路径行为规则](/docs/zh-CN/plugins-reference#path-behavior-rules) |

287 287 

288插件根情况是 `name` 设置命令名称的唯一地方,因为没有 skill 目录可以从中获取。如果 frontmatter 中未设置 `name`,则使用插件的目录名称。288插件根情况是 `name` 设置命令名称的唯一地方,因为没有 skill 目录可以从中获取。如果 frontmatter 中未设置 `name`,则使用插件的目录名称。

289 289 


302| `${CLAUDE_SESSION_ID}` | 当前会话 ID。适用于日志记录、创建会话特定文件或将 skill 输出与会话关联。 |302| `${CLAUDE_SESSION_ID}` | 当前会话 ID。适用于日志记录、创建会话特定文件或将 skill 输出与会话关联。 |

303| `${CLAUDE_EFFORT}` | 当前工作量级别:`low`、`medium`、`high`、`xhigh` 或 `max`。Ultracode 不是一个不同的级别,报告为 `xhigh`。使用此来根据活动工作量设置调整 skill 说明。 |303| `${CLAUDE_EFFORT}` | 当前工作量级别:`low`、`medium`、`high`、`xhigh` 或 `max`。Ultracode 不是一个不同的级别,报告为 `xhigh`。使用此来根据活动工作量设置调整 skill 说明。 |

304| `${CLAUDE_SKILL_DIR}` | 包含 skill 的 `SKILL.md` 文件的目录。对于插件 skills,这是插件内 skill 的子目录,而不是插件根目录。在 bash 注入命令中使用它来引用与 skill 捆绑的脚本或文件,无论当前工作目录如何。 |304| `${CLAUDE_SKILL_DIR}` | 包含 skill 的 `SKILL.md` 文件的目录。对于插件 skills,这是插件内 skill 的子目录,而不是插件根目录。在 bash 注入命令中使用它来引用与 skill 捆绑的脚本或文件,无论当前工作目录如何。 |

305| `${CLAUDE_PROJECT_DIR}` | 项目根目录。这是与 [hooks](/zh-CN/hooks#reference-scripts-by-path) 和 MCP 服务器相同的路径,作为 `CLAUDE_PROJECT_DIR` 接收。使用此来引用项目本地脚本或文件,例如 `${CLAUDE_PROJECT_DIR}/.claude/hooks/helper.sh`,独立于 skill 的安装位置。 |305| `${CLAUDE_PROJECT_DIR}` | 项目根目录。这是与 [hooks](/docs/zh-CN/hooks#reference-scripts-by-path) 和 MCP 服务器相同的路径,作为 `CLAUDE_PROJECT_DIR` 接收。使用此来引用项目本地脚本或文件,例如 `${CLAUDE_PROJECT_DIR}/.claude/hooks/helper.sh`,独立于 skill 的安装位置。 |

306 306 

307`${CLAUDE_PROJECT_DIR}` 替换需要 Claude Code v2.1.196 或更高版本。它适用于 skill 主体和 [`allowed-tools`](#frontmatter-reference) frontmatter,因此权限规则如 `Bash(${CLAUDE_PROJECT_DIR}/scripts/lint.sh *)` 解析为 skill 主体使用的相同路径。307`${CLAUDE_PROJECT_DIR}` 替换需要 Claude Code v2.1.196 或更高版本。它适用于 skill 主体和 [`allowed-tools`](#frontmatter-reference) frontmatter,因此权限规则如 `Bash(${CLAUDE_PROJECT_DIR}/scripts/lint.sh *)` 解析为 skill 主体使用的相同路径。

308 308 


385| `user-invocable: false` | 否 | 是 | 描述始终在上下文中,调用时加载完整 skill |385| `user-invocable: false` | 否 | 是 | 描述始终在上下文中,调用时加载完整 skill |

386 386 

387<Note>387<Note>

388 在常规会话中,skill 描述被加载到上下文中,以便 Claude 知道什么可用,但完整 skill 内容仅在调用时加载。[预加载 skills 的 Subagents](/zh-CN/sub-agents#preload-skills-into-subagents) 的工作方式不同:完整 skill 内容在启动时注入。388 在常规会话中,skill 描述被加载到上下文中,以便 Claude 知道什么可用,但完整 skill 内容仅在调用时加载。[预加载 skills 的 Subagents](/docs/zh-CN/sub-agents#preload-skills-into-subagents) 的工作方式不同:完整 skill 内容在启动时注入。

389</Note>389</Note>

390 390 

391<h3 id="skill-content-lifecycle">391<h3 id="skill-content-lifecycle">


396 396 

397当 Claude 重新调用一个 skill 且其呈现的内容与已在上下文中的副本相同时,Claude Code 添加一个简短的说明,表示该 skill 已加载,而不是内容的第二份副本。当呈现的内容不同时,因为参数改变或[动态上下文](#inject-dynamic-context)命令产生了新输出,Claude Code 会再次附加完整内容。在 v2.1.202 之前,每次重新调用都会附加 skill 说明的另一份完整副本。397当 Claude 重新调用一个 skill 且其呈现的内容与已在上下文中的副本相同时,Claude Code 添加一个简短的说明,表示该 skill 已加载,而不是内容的第二份副本。当呈现的内容不同时,因为参数改变或[动态上下文](#inject-dynamic-context)命令产生了新输出,Claude Code 会再次附加完整内容。在 v2.1.202 之前,每次重新调用都会附加 skill 说明的另一份完整副本。

398 398 

399[自动压缩](/zh-CN/how-claude-code-works#when-context-fills-up)在令牌预算内转发调用的 skills。当对话被总结以释放上下文时,Claude Code 在总结后重新附加每个 skill 的最新调用,保留前 5,000 个令牌。重新附加的 skills 共享 25,000 个令牌的组合预算。Claude Code 从最近调用的 skill 开始填充此预算,因此如果你在一个会话中调用了许多 skills,较旧的 skills 可能会在压缩后完全删除。399[自动压缩](/docs/zh-CN/how-claude-code-works#when-context-fills-up)在令牌预算内转发调用的 skills。当对话被总结以释放上下文时,Claude Code 在总结后重新附加每个 skill 的最新调用,保留前 5,000 个令牌。重新附加的 skills 共享 25,000 个令牌的组合预算。Claude Code 从最近调用的 skill 开始填充此预算,因此如果你在一个会话中调用了许多 skills,较旧的 skills 可能会在压缩后完全删除。

400 400 

401如果一个 skill 似乎在第一个响应后停止影响行为,内容通常仍然存在,模型正在选择其他工具或方法。加强 skill 的 `description` 和说明,以便模型继续偏好它,或使用 [hooks](/zh-CN/hooks) 来确定性地强制行为。如果 skill 很大或你在它之后调用了其他几个,在压缩后重新调用它以恢复完整内容。401如果一个 skill 似乎在第一个响应后停止影响行为,内容通常仍然存在,模型正在选择其他工具或方法。加强 skill 的 `description` 和说明,以便模型继续偏好它,或使用 [hooks](/docs/zh-CN/hooks) 来确定性地强制行为。如果 skill 很大或你在它之后调用了其他几个,在压缩后重新调用它以恢复完整内容。

402 402 

403<h3 id="pre-approve-tools-for-a-skill">403<h3 id="pre-approve-tools-for-a-skill">

404 为 skill 预先批准工具404 为 skill 预先批准工具

405</h3>405</h3>

406 406 

407`allowed-tools` 字段在 skill 处于活动状态时授予对列出的工具的权限,因此 Claude 可以使用它们而无需提示你获得批准。它不限制哪些工具可用:每个工具仍然可调用,你的[权限设置](/zh-CN/permissions)仍然管理不在列表中的工具。407`allowed-tools` 字段在 skill 处于活动状态时授予对列出的工具的权限,因此 Claude 可以使用它们而无需提示你获得批准。它不限制哪些工具可用:每个工具仍然可调用,你的[权限设置](/docs/zh-CN/permissions)仍然管理不在列表中的工具。

408 408 

409对于检入项目的 `.claude/skills/` 目录的 skills,`allowed-tools` 在你接受该文件夹的工作区信任对话后生效,与 `.claude/settings.json` 中的权限规则相同。在信任存储库之前查看项目 skills,因为 skill 可以授予自己广泛的工具访问权限。409对于检入项目的 `.claude/skills/` 目录的 skills,`allowed-tools` 在你接受该文件夹的工作区信任对话后生效,与 `.claude/settings.json` 中的权限规则相同。在信任存储库之前查看项目 skills,因为 skill 可以授予自己广泛的工具访问权限。

410 410 


419---419---

420```420```

421 421 

422要在 skill 处于活动状态时从 Claude 的可用工具池中移除某些工具,请在 skill 的 frontmatter 中的 `disallowed-tools` 中列出它们。当你发送下一条消息时,限制会清除。要在所有 skills 和提示中阻止工具,请在你的[权限设置](/zh-CN/permissions)中添加拒绝规则。422要在 skill 处于活动状态时从 Claude 的可用工具池中移除某些工具,请在 skill 的 frontmatter 中的 `disallowed-tools` 中列出它们。当你发送下一条消息时,限制会清除。要在所有 skills 和提示中阻止工具,请在你的[权限设置](/docs/zh-CN/permissions)中添加拒绝规则。

423 423 

424<h3 id="pass-arguments-to-skills">424<h3 id="pass-arguments-to-skills">

425 将参数传递给 skills425 将参数传递给 skills


530```530```

531````531````

532 532 

533要禁用来自用户、项目、插件或[其他目录](#skills-from-additional-directories)源的 skills 和自定义命令的此行为,请在[设置](/zh-CN/settings)中设置 `"disableSkillShellExecution": true`。每个命令都被替换为 `[shell command execution disabled by policy]` 而不是被运行。捆绑和托管 skills 不受影响。此设置在[托管设置](/zh-CN/permissions#managed-settings)中最有用,用户无法覆盖它。533要禁用来自用户、项目、插件或[其他目录](#skills-from-additional-directories)源的 skills 和自定义命令的此行为,请在[设置](/docs/zh-CN/settings)中设置 `"disableSkillShellExecution": true`。每个命令都被替换为 `[shell command execution disabled by policy]` 而不是被运行。捆绑和托管 skills 不受影响。此设置在[托管设置](/docs/zh-CN/permissions#managed-settings)中最有用,用户无法覆盖它。

534 534 

535<Tip>535<Tip>

536 要在 skill 运行时请求更深入的推理,在 skill 内容中的任何地方包含 `ultrathink`。请参阅[使用 ultrathink 进行一次性深度推理](/zh-CN/model-config#use-ultrathink-for-one-off-deep-reasoning)。536 要在 skill 运行时请求更深入的推理,在 skill 内容中的任何地方包含 `ultrathink`。请参阅[使用 ultrathink 进行一次性深度推理](/docs/zh-CN/model-config#use-ultrathink-for-one-off-deep-reasoning)。

537</Tip>537</Tip>

538 538 

539<h3 id="run-skills-in-a-subagent">539<h3 id="run-skills-in-a-subagent">


546 `context: fork` 仅对具有明确说明的 skills 有意义。如果你的 skill 包含"使用这些 API 约定"之类的指南而没有任务,subagent 会收到指南但没有可操作的提示,并返回而没有有意义的输出。546 `context: fork` 仅对具有明确说明的 skills 有意义。如果你的 skill 包含"使用这些 API 约定"之类的指南而没有任务,subagent 会收到指南但没有可操作的提示,并返回而没有有意义的输出。

547</Warning>547</Warning>

548 548 

549Skills 和 [subagents](/zh-CN/sub-agents) 以两个方向协同工作:549Skills 和 [subagents](/docs/zh-CN/sub-agents) 以两个方向协同工作:

550 550 

551| 方法 | 系统提示 | 任务 | 也加载 |551| 方法 | 系统提示 | 任务 | 也加载 |

552| :------------------------- | :--------------------- | :----------- | :----------------------------- |552| :------------------------- | :--------------------- | :----------- | :----------------------------- |

553| 带有 `context: fork` 的 Skill | 来自代理类型 | SKILL.md 内容 | CLAUDE.md,除非代理是 Explore 或 Plan |553| 带有 `context: fork` 的 Skill | 来自代理类型 | SKILL.md 内容 | CLAUDE.md,除非代理是 Explore 或 Plan |

554| 带有 `skills` 字段的 Subagent | Subagent 的 markdown 正文 | Claude 的委派消息 | 预加载的 skills + CLAUDE.md |554| 带有 `skills` 字段的 Subagent | Subagent 的 markdown 正文 | Claude 的委派消息 | 预加载的 skills + CLAUDE.md |

555 555 

556使用 `context: fork`,你在你的 skill 中编写任务并选择一个代理类型来执行它。内置的 Explore 和 Plan 代理[跳过 CLAUDE.md 和 git 状态](/zh-CN/sub-agents#what-loads-at-startup)以保持其上下文较小,因此使用 `agent: Explore` 的分叉 skill 仅看到 SKILL.md 内容和代理自己的系统提示。对于反向情况,其中你定义使用 skills 作为参考资料的自定义 subagent,请参阅 [Subagents](/zh-CN/sub-agents#preload-skills-into-subagents)。556使用 `context: fork`,你在你的 skill 中编写任务并选择一个代理类型来执行它。内置的 Explore 和 Plan 代理[跳过 CLAUDE.md 和 git 状态](/docs/zh-CN/sub-agents#what-loads-at-startup)以保持其上下文较小,因此使用 `agent: Explore` 的分叉 skill 仅看到 SKILL.md 内容和代理自己的系统提示。对于反向情况,其中你定义使用 skills 作为参考资料的自定义 subagent,请参阅 [Subagents](/docs/zh-CN/sub-agents#preload-skills-into-subagents)。

557 557 

558<h4 id="example-research-skill-using-explore-agent">558<h4 id="example-research-skill-using-explore-agent">

559 示例:使用 Explore 代理的研究 skill559 示例:使用 Explore 代理的研究 skill


589 限制 Claude 的 skill 访问589 限制 Claude 的 skill 访问

590</h3>590</h3>

591 591 

592默认情况下,Claude 可以调用任何没有设置 `disable-model-invocation: true` 的 skill。定义 `allowed-tools` 的 Skills 在 skill 处于活动状态时向 Claude 授予对这些工具的访问权限,无需每次使用批准。你的[权限设置](/zh-CN/permissions)仍然管理所有其他工具的基线批准行为。一些内置命令也可通过 Skill 工具获得,包括 `/init`、`/review` 和 `/security-review`。其他内置命令如 `/compact` 则不能。592默认情况下,Claude 可以调用任何没有设置 `disable-model-invocation: true` 的 skill。定义 `allowed-tools` 的 Skills 在 skill 处于活动状态时向 Claude 授予对这些工具的访问权限,无需每次使用批准。你的[权限设置](/docs/zh-CN/permissions)仍然管理所有其他工具的基线批准行为。一些内置命令也可通过 Skill 工具获得,包括 `/init`、`/review` 和 `/security-review`。其他内置命令如 `/compact` 则不能。

593 593 

594控制 Claude 可以调用哪些 skills 的三种方式:594控制 Claude 可以调用哪些 skills 的三种方式:

595 595 


600Skill600Skill

601```601```

602 602 

603**使用[权限规则](/zh-CN/permissions)允许或拒绝特定 skills**:603**使用[权限规则](/docs/zh-CN/permissions)允许或拒绝特定 skills**:

604 604 

605```text theme={null}605```text theme={null}

606# Allow only specific skills606# Allow only specific skills


623 从设置覆盖 skill 可见性623 从设置覆盖 skill 可见性

624</h3>624</h3>

625 625 

626`skillOverrides` 设置从你的[设置](/zh-CN/settings)控制 skill 可见性,而不是从 skill 自己的 frontmatter。将其用于你不想编辑 SKILL.md 的 skills,例如检入共享项目仓库或由 MCP 服务器提供的 skills。`/skills` 菜单为你编写它:突出显示一个 skill 并按 `Space` 循环切换状态,然后按 `Enter` 保存到 `.claude/settings.local.json`。626`skillOverrides` 设置从你的[设置](/docs/zh-CN/settings)控制 skill 可见性,而不是从 skill 自己的 frontmatter。将其用于你不想编辑 SKILL.md 的 skills,例如检入共享项目仓库或由 MCP 服务器提供的 skills。`/skills` 菜单为你编写它:突出显示一个 skill 并按 `Space` 循环切换状态,然后按 `Enter` 保存到 `.claude/settings.local.json`。

627 627 

628每个键是一个 skill 名称,每个值是以下四种状态之一:628每个键是一个 skill 名称,每个值是以下四种状态之一:

629 629 


634| `"user-invocable-only"` | 隐藏 | 是 |634| `"user-invocable-only"` | 隐藏 | 是 |

635| `"off"` | 隐藏 | 隐藏 |635| `"off"` | 隐藏 | 隐藏 |

636 636 

637从 v2.1.199 开始,`"off"` 也会从广告给 [Remote Control](/zh-CN/remote-control) 客户端和 [Agent SDK](/zh-CN/agent-sdk/slash-commands) 调用者的命令列表中隐藏该 skill,而不仅仅是终端 `/` 菜单。按其全名调用隐藏的 skill 仍然返回 `skillOverrides` 错误而不是运行它。637从 v2.1.199 开始,`"off"` 也会从广告给 [Remote Control](/docs/zh-CN/remote-control) 客户端和 [Agent SDK](/docs/zh-CN/agent-sdk/slash-commands) 调用者的命令列表中隐藏该 skill,而不仅仅是终端 `/` 菜单。按其全名调用隐藏的 skill 仍然返回 `skillOverrides` 错误而不是运行它。

638 638 

639`skillOverrides` 中不存在的 skill 被视为 `"on"`。下面的示例将一个 skill 折叠为其名称,并完全关闭另一个:639`skillOverrides` 中不存在的 skill 被视为 `"on"`。下面的示例将一个 skill 折叠为其名称,并完全关闭另一个:

640 640 


672安装后,运行 `/reload-plugins` 以在当前会话中使插件的 skills 可用。然后要求 Claude 评估现有 skill,例如 `evaluate my summarize-changes skill with skill-creator`。该插件引导你编写测试用例并运行循环:672安装后,运行 `/reload-plugins` 以在当前会话中使插件的 skills 可用。然后要求 Claude 评估现有 skill,例如 `evaluate my summarize-changes skill with skill-creator`。该插件引导你编写测试用例并运行循环:

673 673 

674* **测试用例**:在 skill 目录内的 `evals/evals.json` 中存储提示、输入文件和预期行为674* **测试用例**:在 skill 目录内的 `evals/evals.json` 中存储提示、输入文件和预期行为

675* **隔离运行**:为每个测试用例生成一个 [subagent](/zh-CN/sub-agents),以便每次运行都从干净的上下文开始,并记录令牌计数和持续时间675* **隔离运行**:为每个测试用例生成一个 [subagent](/docs/zh-CN/sub-agents),以便每次运行都从干净的上下文开始,并记录令牌计数和持续时间

676* **评分**:检查每个断言与输出,并将通过或失败与证据写入 `grading.json`676* **评分**:检查每个断言与输出,并将通过或失败与证据写入 `grading.json`

677* **基准**:将通过率、时间和令牌聚合为有 skill 与无 skill 的情况,放入 `benchmark.json`,以便你可以将通过率改进与令牌和时间开销进行比较677* **基准**:将通过率、时间和令牌聚合为有 skill 与无 skill 的情况,放入 `benchmark.json`,以便你可以将通过率改进与令牌和时间开销进行比较

678* **版本比较**:在两个版本的 skill 之间运行盲 A/B,以便你可以在提交之前确认编辑是一个改进678* **版本比较**:在两个版本的 skill 之间运行盲 A/B,以便你可以在提交之前确认编辑是一个改进


688Skills 可以根据你的受众在不同范围内分发:688Skills 可以根据你的受众在不同范围内分发:

689 689 

690* **项目 skills**:将 `.claude/skills/` 提交到版本控制690* **项目 skills**:将 `.claude/skills/` 提交到版本控制

691* **插件**:在你的[插件](/zh-CN/plugins)中创建 `skills/` 目录691* **插件**:在你的[插件](/docs/zh-CN/plugins)中创建 `skills/` 目录

692* **托管**:通过[托管设置](/zh-CN/settings#settings-files)部署组织范围内692* **托管**:通过[托管设置](/docs/zh-CN/settings#settings-files)部署组织范围内

693 693 

694<h3 id="generate-visual-output">694<h3 id="generate-visual-output">

695 生成视觉输出695 生成视觉输出


916 916 

917Claude Code 将 skill 名称和描述的列表加载到上下文中,以便 Claude 知道什么可用。列表始终包含每个 skill 名称,但如果你有许多 skills,Claude Code 会缩短描述以适应列表的字符预算,这可能会删除 Claude 需要匹配你的请求的关键字。预算按模型上下文窗口的 1% 进行扩展。当列表超出预算时,Claude Code 会从你调用最少的 skills 开始删除描述,因此你使用最多的 skills 会保留其完整文本。917Claude Code 将 skill 名称和描述的列表加载到上下文中,以便 Claude 知道什么可用。列表始终包含每个 skill 名称,但如果你有许多 skills,Claude Code 会缩短描述以适应列表的字符预算,这可能会删除 Claude 需要匹配你的请求的关键字。预算按模型上下文窗口的 1% 进行扩展。当列表超出预算时,Claude Code 会从你调用最少的 skills 开始删除描述,因此你使用最多的 skills 会保留其完整文本。

918 918 

919运行 `/doctor` 以估计列表的上下文成本及其最大贡献者。当列表超出预算时,Claude Code 也会向调试日志写入警告,可通过 [`--debug`](/zh-CN/cli-reference#cli-flags) 查看。919运行 `/doctor` 以估计列表的上下文成本及其最大贡献者。当列表超出预算时,Claude Code 也会向调试日志写入警告,可通过 [`--debug`](/docs/zh-CN/cli-reference#cli-flags) 查看。

920 920 

921`/context` 中的 Skills 行报告应用预算后的列表大小,因此它与模型接收的内容相匹配。在 v2.1.196 之前,该行计算每个描述的完整文本,可能显示的值比配置的预算大几倍。921`/context` 中的 Skills 行报告应用预算后的列表大小,因此它与模型接收的内容相匹配。在 v2.1.196 之前,该行计算每个描述的完整文本,可能显示的值比配置的预算大几倍。

922 922 

923要提高预算,设置 [`skillListingBudgetFraction`](/zh-CN/settings#available-settings) 设置(例如 `0.02` = 2%)或 `SLASH_COMMAND_TOOL_CHAR_BUDGET` 环境变量为固定字符数。要为其他 skills 释放预算,在 [`skillOverrides`](#override-skill-visibility-from-settings) 中将低优先级条目设置为 `"name-only"`,以便它们列出而不显示描述。你也可以在源处修剪 `description` 和 `when_to_use` 文本:前置关键用例,因为每个条目的组合文本被限制为 1,536 个字符,无论预算如何。该限制可通过 [`skillListingMaxDescChars`](/zh-CN/settings#available-settings) 进行配置。923要提高预算,设置 [`skillListingBudgetFraction`](/docs/zh-CN/settings#available-settings) 设置(例如 `0.02` = 2%)或 `SLASH_COMMAND_TOOL_CHAR_BUDGET` 环境变量为固定字符数。要为其他 skills 释放预算,在 [`skillOverrides`](#override-skill-visibility-from-settings) 中将低优先级条目设置为 `"name-only"`,以便它们列出而不显示描述。你也可以在源处修剪 `description` 和 `when_to_use` 文本:前置关键用例,因为每个条目的组合文本被限制为 1,536 个字符,无论预算如何。该限制可通过 [`skillListingMaxDescChars`](/docs/zh-CN/settings#available-settings) 进行配置。

924 924 

925<h2 id="related-resources">925<h2 id="related-resources">

926 相关资源926 相关资源

927</h2>927</h2>

928 928 

929* **[调试你的配置](/zh-CN/debug-your-config)**:诊断为什么 skill 没有出现或触发929* **[调试你的配置](/docs/zh-CN/debug-your-config)**:诊断为什么 skill 没有出现或触发

930* **[在 agentskills.io 上评估 skill 输出质量](https://agentskills.io/skill-creation/evaluating-skills)**:eval 文件格式和迭代工作流930* **[在 agentskills.io 上评估 skill 输出质量](https://agentskills.io/skill-creation/evaluating-skills)**:eval 文件格式和迭代工作流

931* **[Skill 创作最佳实践](https://platform.claude.com/docs/en/agents-and-tools/agent-skills/best-practices)**:适用于 Claude 产品的写作指导931* **[Skill 创作最佳实践](https://platform.claude.com/docs/en/agents-and-tools/agent-skills/best-practices)**:适用于 Claude 产品的写作指导

932* **[Subagents](/zh-CN/sub-agents)**:将任务委派给专门的代理932* **[Subagents](/docs/zh-CN/sub-agents)**:将任务委派给专门的代理

933* **[Plugins](/zh-CN/plugins)**:打包和分发 skills 与其他扩展933* **[Plugins](/docs/zh-CN/plugins)**:打包和分发 skills 与其他扩展

934* **[Hooks](/zh-CN/hooks)**:围绕工具事件自动化工作流934* **[Hooks](/docs/zh-CN/hooks)**:围绕工具事件自动化工作流

935* **[Memory](/zh-CN/memory)**:管理 CLAUDE.md 文件以获得持久上下文935* **[Memory](/docs/zh-CN/memory)**:管理 CLAUDE.md 文件以获得持久上下文

936* **[Commands](/zh-CN/commands)**:内置命令和捆绑 skills 的参考936* **[Commands](/docs/zh-CN/commands)**:内置命令和捆绑 skills 的参考

937* **[Permissions](/zh-CN/permissions)**:控制工具和 skill 访问937* **[Permissions](/docs/zh-CN/permissions)**:控制工具和 skill 访问

938* **[Claude Tag skills](https://claude.com/docs/claude-tag/admins/skills-repo)**:提交到仓库的项目 skills 在该仓库在 Claude Tag 频道中使用时也会加载938* **[Claude Tag skills](https://claude.com/docs/claude-tag/admins/skills-repo)**:提交到仓库的项目 skills 在该仓库在 Claude Tag 频道中使用时也会加载

statusline.md +11 −11

Details

15* 你在多个会话中工作,需要区分它们15* 你在多个会话中工作,需要区分它们

16* 你希望 git 分支和状态始终可见16* 你希望 git 分支和状态始终可见

17 17 

18状态行在其自己的行中呈现,位于内置页脚徽章上方,不会替换它们。要在对话中出现 ID 时向页脚添加可点击的链接徽章,而无需编写脚本,请改为配置 [`footerLinksRegexes`](/zh-CN/settings#footer-link-badges)。18状态行在其自己的行中呈现,位于内置页脚徽章上方,不会替换它们。要在对话中出现 ID 时向页脚添加可点击的链接徽章,而无需编写脚本,请改为配置 [`footerLinksRegexes`](/docs/zh-CN/settings#footer-link-badges)。

19 19 

20这是一个[多行状态行](#display-multiple-lines)的示例,它在第一行显示 git 信息,在第二行显示颜色编码的上下文栏。20这是一个[多行状态行](#display-multiple-lines)的示例,它在第一行显示 git 信息,在第二行显示颜色编码的上下文栏。

21 21 


45 手动配置状态行45 手动配置状态行

46</h3>46</h3>

47 47 

48将 `statusLine` 字段添加到你的用户设置(`~/.claude/settings.json`,其中 `~` 是你的主目录)或[项目设置](/zh-CN/settings#settings-files)。将 `type` 设置为 `"command"` 并将 `command` 指向脚本路径或内联 shell 命令。有关创建脚本的完整演练,请参阅[逐步构建状态行](#build-a-status-line-step-by-step)。48将 `statusLine` 字段添加到你的用户设置(`~/.claude/settings.json`,其中 `~` 是你的主目录)或[项目设置](/docs/zh-CN/settings#settings-files)。将 `type` 设置为 `"command"` 并将 `command` 指向脚本路径或内联 shell 命令。有关创建脚本的完整演练,请参阅[逐步构建状态行](#build-a-status-line-step-by-step)。

49 49 

50```json theme={null}50```json theme={null}

51{51{


160 160 

161**调整输出大小以适应终端**161**调整输出大小以适应终端**

162 162 

163Claude Code 捕获你的脚本输出而不是直接将其连接到终端,因此 `tput cols` 和语言级宽度检测无法从脚本内部读取终端大小。{/* min-version: 2.1.153 */}改为读取 `COLUMNS` 和 `LINES` 环境变量。Claude Code 在运行你的脚本之前将这些设置为当前终端尺寸。需要 Claude Code v2.1.153 或更高版本。163Claude Code 捕获你的脚本输出而不是直接将其连接到终端,因此 `tput cols` 和语言级宽度检测无法从脚本内部读取终端大小。改为读取 `COLUMNS` 和 `LINES` 环境变量。Claude Code 在运行你的脚本之前将这些设置为当前终端尺寸。需要 Claude Code v2.1.153 或更高版本。

164 164 

165<Note>状态行在本地运行,不消耗 API 令牌。在某些 UI 交互期间,它会临时隐藏,包括自动完成建议、帮助菜单和权限提示。</Note>165<Note>状态行在本地运行,不消耗 API 令牌。在某些 UI 交互期间,它会临时隐藏,包括自动完成建议、帮助菜单和权限提示。</Note>

166 166 


171Claude Code 通过 stdin 向你的脚本发送以下 JSON 字段:171Claude Code 通过 stdin 向你的脚本发送以下 JSON 字段:

172 172 

173| 字段 | 描述 |173| 字段 | 描述 |

174| -------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |174| -------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |

175| `model.id`, `model.display_name` | 当前模型标识符和显示名称 |175| `model.id`, `model.display_name` | 当前模型标识符和显示名称 |

176| `cwd`, `workspace.current_dir` | 当前工作目录。两个字段包含相同的值;为了与 `workspace.project_dir` 保持一致,首选 `workspace.current_dir`。 |176| `cwd`, `workspace.current_dir` | 当前工作目录。两个字段包含相同的值;为了与 `workspace.project_dir` 保持一致,首选 `workspace.current_dir`。 |

177| `workspace.project_dir` | 启动 Claude Code 的目录,如果在会话期间工作目录更改,可能与 `cwd` 不同 |177| `workspace.project_dir` | 启动 Claude Code 的目录,如果在会话期间工作目录更改,可能与 `cwd` 不同 |


182| `cost.total_duration_ms` | 自会话开始以来的总挂钟时间(毫秒) |182| `cost.total_duration_ms` | 自会话开始以来的总挂钟时间(毫秒) |

183| `cost.total_api_duration_ms` | 等待 API 响应的总时间(毫秒) |183| `cost.total_api_duration_ms` | 等待 API 响应的总时间(毫秒) |

184| `cost.total_lines_added`, `cost.total_lines_removed` | 更改的代码行数 |184| `cost.total_lines_added`, `cost.total_lines_removed` | 更改的代码行数 |

185| `context_window.total_input_tokens`, `context_window.total_output_tokens` | 当前在上下文窗口中的令牌计数,来自最近的 API 响应。输入包括缓存读取和写入。{/* min-version: 2.1.132 */}在 v2.1.132 之前,这些是累积的会话总计 |185| `context_window.total_input_tokens`, `context_window.total_output_tokens` | 当前在上下文窗口中的令牌计数,来自最近的 API 响应。输入包括缓存读取和写入。在 v2.1.132 之前,这些是累积的会话总计 |

186| `context_window.context_window_size` | 最大上下文窗口大小(令牌)。默认为 200000,或对于具有扩展上下文的模型为 1000000。 |186| `context_window.context_window_size` | 最大上下文窗口大小(令牌)。默认为 200000,或对于具有扩展上下文的模型为 1000000。 |

187| `context_window.used_percentage` | 预计算的已使用上下文窗口百分比 |187| `context_window.used_percentage` | 预计算的已使用上下文窗口百分比 |

188| `context_window.remaining_percentage` | 预计算的剩余上下文窗口百分比 |188| `context_window.remaining_percentage` | 预计算的剩余上下文窗口百分比 |


194| `rate_limits.five_hour.resets_at`, `rate_limits.seven_day.resets_at` | Unix 纪元秒,当 5 小时或 7 天速率限制窗口重置时 |194| `rate_limits.five_hour.resets_at`, `rate_limits.seven_day.resets_at` | Unix 纪元秒,当 5 小时或 7 天速率限制窗口重置时 |

195| `session_id` | 唯一的会话标识符 |195| `session_id` | 唯一的会话标识符 |

196| `session_name` | 使用 `--name` 标志或 `/rename` 设置的自定义会话名称。如果未设置自定义名称,则不存在 |196| `session_name` | 使用 `--name` 标志或 `/rename` 设置的自定义会话名称。如果未设置自定义名称,则不存在 |

197| `prompt_id` | 标识当前正在处理的用户提示的 UUID。与 OpenTelemetry 事件上的 [`prompt.id` 属性](/zh-CN/monitoring-usage#event-correlation-attributes)匹配。在第一次用户输入之前不存在。{/* min-version: 2.1.196 */}需要 Claude Code v2.1.196 或更高版本 |197| `prompt_id` | 标识当前正在处理的用户提示的 UUID。与 OpenTelemetry 事件上的 [`prompt.id` 属性](/docs/zh-CN/monitoring-usage#event-correlation-attributes)匹配。在第一次用户输入之前不存在。需要 Claude Code v2.1.196 或更高版本 |

198| `transcript_path` | 对话记录文件的路径 |198| `transcript_path` | 对话记录文件的路径 |

199| `version` | Claude Code 版本 |199| `version` | Claude Code 版本 |

200| `output_style.name` | 当前输出样式的名称 |200| `output_style.name` | 当前输出样式的名称 |

201| `vim.mode` | 启用 [vim 模式](/zh-CN/interactive-mode#vim-editor-mode) 时的当前 vim 模式(`NORMAL`、`INSERT`、`VISUAL` 或 `VISUAL LINE`) |201| `vim.mode` | 启用 [vim 模式](/docs/zh-CN/interactive-mode#vim-editor-mode) 时的当前 vim 模式(`NORMAL`、`INSERT`、`VISUAL` 或 `VISUAL LINE`) |

202| `agent.name` | 使用 `--agent` 标志或配置的代理设置运行时的代理名称 |202| `agent.name` | 使用 `--agent` 标志或配置的代理设置运行时的代理名称 |

203| `pr.number`, `pr.url` | 当前分支的开放拉取请求。镜像底部状态栏中的 PR 徽章。在找到 PR 之前、不在 git 存储库中或 PR 合并或关闭后不存在 |203| `pr.number`, `pr.url` | 当前分支的开放拉取请求。镜像底部状态栏中的 PR 徽章。在找到 PR 之前、不在 git 存储库中或 PR 合并或关闭后不存在 |

204| `pr.review_state` | 开放 PR 的审查状态:`approved`、`pending`、`changes_requested` 或 `draft`。即使 `pr` 存在,也可能独立不存在 |204| `pr.review_state` | 开放 PR 的审查状态:`approved`、`pending`、`changes_requested` 或 `draft`。即使 `pr` 存在,也可能独立不存在 |


332* `cache_creation_input_tokens`:写入缓存的令牌332* `cache_creation_input_tokens`:写入缓存的令牌

333* `cache_read_input_tokens`:从缓存读取的令牌333* `cache_read_input_tokens`:从缓存读取的令牌

334 334 

335有关缓存字段的含义以及它们如何计费的信息,请参阅[检查缓存性能](/zh-CN/prompt-caching#check-cache-performance)。335有关缓存字段的含义以及它们如何计费的信息,请参阅[检查缓存性能](/docs/zh-CN/prompt-caching#check-cache-performance)。

336 336 

337`used_percentage` 字段仅从输入令牌计算:`input_tokens + cache_creation_input_tokens + cache_read_input_tokens`。它不包括 `output_tokens`。337`used_percentage` 字段仅从输入令牌计算:`input_tokens + cache_creation_input_tokens + cache_read_input_tokens`。它不包括 `output_tokens`。

338 338 


1033 子代理状态行1033 子代理状态行

1034</h2>1034</h2>

1035 1035 

1036`subagentStatusLine` 设置为代理面板中显示的每个[子代理](/zh-CN/sub-agents)呈现自定义行体。使用它来替换默认的 `name · description · token count` 行为你自己的格式。1036`subagentStatusLine` 设置为代理面板中显示的每个[子代理](/docs/zh-CN/sub-agents)呈现自定义行体。使用它来替换默认的 `name · description · token count` 行为你自己的格式。

1037 1037 

1038```json theme={null}1038```json theme={null}

1039{1039{


1044}1044}

1045```1045```

1046 1046 

1047该命令在每个刷新周期运行一次,所有可见的子代理行作为单个 JSON 对象传递到 stdin。输入包括[基本钩子字段](/zh-CN/hooks#common-input-fields)、`columns` 字段(可用行宽)和 `tasks` 数组。每个任务有 `id`、`name`、`type`、`status`、`description`、`label`、`startTime`、`model`、`contextWindowSize`、`tokenCount`、`tokenSamples` 和 `cwd`。1047该命令在每个刷新周期运行一次,所有可见的子代理行作为单个 JSON 对象传递到 stdin。输入包括[基本钩子字段](/docs/zh-CN/hooks#common-input-fields)、`columns` 字段(可用行宽)和 `tasks` 数组。每个任务有 `id`、`name`、`type`、`status`、`description`、`label`、`startTime`、`model`、`contextWindowSize`、`tokenCount`、`tokenSamples` 和 `cwd`。

1048 1048 

1049每个任务的 `model` 字段是任务运行的已解析模型 ID。`contextWindowSize` 是该模型的上下文窗口(以令牌计),计算方式与主状态行的 `context_window.context_window_size` 相同,因此你可以从 `tokenCount` 呈现每行百分比。这两个字段需要 Claude Code v2.1.205 或更高版本,对于模型尚未解析的任务会被省略。1049每个任务的 `model` 字段是任务运行的已解析模型 ID。`contextWindowSize` 是该模型的上下文窗口(以令牌计),计算方式与主状态行的 `context_window.context_window_size` 相同,因此你可以从 `tokenCount` 呈现每行百分比。这两个字段需要 Claude Code v2.1.205 或更高版本,对于模型尚未解析的任务会被省略。

1050 1050 

1051将一个 JSON 行写入 stdout,用于你想覆盖的每一行,形式为 `{"id": "<task id>", "content": "<row body>"}` 。`content` 字符串按原样呈现,包括 ANSI 颜色和 OSC 8 超链接。省略任务的 `id` 以保持该行的默认呈现;发出空 `content` 字符串以隐藏它。1051将一个 JSON 行写入 stdout,用于你想覆盖的每一行,形式为 `{"id": "<task id>", "content": "<row body>"}` 。`content` 字符串按原样呈现,包括 ANSI 颜色和 OSC 8 超链接。省略任务的 `id` 以保持该行的默认呈现;发出空 `content` 字符串以隐藏它。

1052 1052 

1053适用于 `statusLine` 的相同信任和 `disableAllHooks` 门控也适用于此处。插件可以在其[`settings.json`](/zh-CN/plugins-reference#standard-plugin-layout)中提供默认的 `subagentStatusLine`。1053适用于 `statusLine` 的相同信任和 `disableAllHooks` 门控也适用于此处。插件可以在其[`settings.json`](/docs/zh-CN/plugins-reference#standard-plugin-layout)中提供默认的 `subagentStatusLine`。

1054 1054 

1055<h2 id="tips">1055<h2 id="tips">

1056 提示1056 提示

sub-agents.md +88 −88

Details

8 8 

9Subagents 是处理特定类型任务的专门 AI 助手。当一个辅助任务会用搜索结果、日志或文件内容充斥您的主对话,而您不会再次引用这些内容时,请使用一个 subagent:该 subagent 在自己的上下文中完成这项工作,仅返回摘要。当您不断生成相同类型的工作者并使用相同的指令时,定义一个自定义 subagent。9Subagents 是处理特定类型任务的专门 AI 助手。当一个辅助任务会用搜索结果、日志或文件内容充斥您的主对话,而您不会再次引用这些内容时,请使用一个 subagent:该 subagent 在自己的上下文中完成这项工作,仅返回摘要。当您不断生成相同类型的工作者并使用相同的指令时,定义一个自定义 subagent。

10 10 

11每个 subagent 在自己的 context window 中运行,具有自定义系统提示、特定的工具访问权限和独立的权限。当 Claude 遇到与 subagent 描述相匹配的任务时,它会委托给该 subagent,该 subagent 独立工作并返回结果。要在实践中看到上下文节省,[context window 可视化](/zh-CN/context-window) 演示了一个 subagent 在自己的独立窗口中处理研究的会话。11每个 subagent 在自己的 context window 中运行,具有自定义系统提示、特定的工具访问权限和独立的权限。当 Claude 遇到与 subagent 描述相匹配的任务时,它会委托给该 subagent,该 subagent 独立工作并返回结果。要在实践中看到上下文节省,[context window 可视化](/docs/zh-CN/context-window) 演示了一个 subagent 在自己的独立窗口中处理研究的会话。

12 12 

13<Note>13<Note>

14 Subagents 在单个会话中工作。要在并行运行许多独立会话并从一个地方监控它们,请参阅 [background agents](/zh-CN/agent-view)。对于相互通信的会话,请参阅 [agent teams](/zh-CN/agent-teams)。14 Subagents 在单个会话中工作。要在并行运行许多独立会话并从一个地方监控它们,请参阅 [background agents](/docs/zh-CN/agent-view)。对于相互通信的会话,请参阅 [agent teams](/docs/zh-CN/agent-teams)。

15</Note>15</Note>

16 16 

17Subagents 帮助您:17Subagents 帮助您:


42 * **Tools**: 只读工具;拒绝访问 Write 和 Edit42 * **Tools**: 只读工具;拒绝访问 Write 和 Edit

43 * **Purpose**: 文件发现、代码搜索、代码库探索43 * **Purpose**: 文件发现、代码搜索、代码库探索

44 44 

45 {/* min-version: 2.1.198 */}从 v2.1.198 开始,Explore 继承主对话的模型,而不是始终在 Haiku 上运行。在 Claude API 上,继承的模型限制为 Opus:主对话在更高层级上运行 Explore 时使用 Opus,主对话在 Sonnet 或 Haiku 上运行 Explore 时使用相同的模型。在任何其他提供商上,例如 [Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 或 AWS 上的 Claude Platform](/zh-CN/third-party-integrations),Explore 直接继承主对话的模型。45 从 v2.1.198 开始,Explore 继承主对话的模型,而不是始终在 Haiku 上运行。在 Claude API 上,继承的模型限制为 Opus:主对话在更高层级上运行 Explore 时使用 Opus,主对话在 Sonnet 或 Haiku 上运行 Explore 时使用相同的模型。在任何其他提供商上,例如 [Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 或 AWS 上的 Claude Platform](/docs/zh-CN/third-party-integrations),Explore 直接继承主对话的模型。

46 46 

47 名为 `Explore` 的[用户或项目 subagent](#choose-the-subagent-scope) 会覆盖内置的,并保持其自己的 `model` 字段,因此定义一个带有 `model: haiku` 的来保持探索在较低成本的模型上。47 名为 `Explore` 的[用户或项目 subagent](#choose-the-subagent-scope) 会覆盖内置的,并保持其自己的 `model` 字段,因此定义一个带有 `model: haiku` 的来保持探索在较低成本的模型上。

48 48 


52 </Tab>52 </Tab>

53 53 

54 <Tab title="Plan">54 <Tab title="Plan">

55 一个研究代理,在 [plan mode](/zh-CN/permission-modes#analyze-before-you-edit-with-plan-mode) 期间使用,以在呈现计划之前收集上下文。55 一个研究代理,在 [plan mode](/docs/zh-CN/permission-modes#analyze-before-you-edit-with-plan-mode) 期间使用,以在呈现计划之前收集上下文。

56 56 

57 * **Model**: 从主对话继承57 * **Model**: 从主对话继承

58 * **Tools**: 只读工具;拒绝访问 Write 和 Edit58 * **Tools**: 只读工具;拒绝访问 Write 和 Edit


84内置 subagents 在交互式会话中默认被注册。要限制它们:84内置 subagents 在交互式会话中默认被注册。要限制它们:

85 85 

86* 要阻止特定的内置类型,请将其添加到 `permissions.deny`,如[禁用特定 subagents](#disable-specific-subagents) 中所示。86* 要阻止特定的内置类型,请将其添加到 `permissions.deny`,如[禁用特定 subagents](#disable-specific-subagents) 中所示。

87* 要防止 Claude 委托给任何 subagent,请使用 [`permissions.deny`](/zh-CN/permissions#tool-specific-permission-rules) 拒绝 `Agent` 工具本身。87* 要防止 Claude 委托给任何 subagent,请使用 [`permissions.deny`](/docs/zh-CN/permissions#tool-specific-permission-rules) 拒绝 `Agent` 工具本身。

88* {/* min-version: 2.1.198 */}要仅移除内置的 `Explore` 和 `Plan` subagents,请设置 [`CLAUDE_CODE_DISABLE_EXPLORE_PLAN_AGENTS=1`](/zh-CN/env-vars)。Claude 直接读取和探索文件,而不是委托给它们。需要 Claude Code v2.1.198 或更高版本。88* 要仅移除内置的 `Explore` 和 `Plan` subagents,请设置 [`CLAUDE_CODE_DISABLE_EXPLORE_PLAN_AGENTS=1`](/docs/zh-CN/env-vars)。Claude 直接读取和探索文件,而不是委托给它们。需要 Claude Code v2.1.198 或更高版本。

89* 在[非交互模式](/zh-CN/headless) 和 [Agent SDK](/zh-CN/agent-sdk/overview) 中,设置 [`CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS=1`](/zh-CN/env-vars) 以移除所有内置类型并仅提供您自己的。89* 在[非交互模式](/docs/zh-CN/headless) 和 [Agent SDK](/docs/zh-CN/agent-sdk/overview) 中,设置 [`CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS=1`](/docs/zh-CN/env-vars) 以移除所有内置类型并仅提供您自己的。

90 90 

91除了这些内置 subagents,您可以创建自己的,具有自定义提示、工具限制、权限模式、hooks 和 skills。以下部分展示了如何开始和自定义 subagents。91除了这些内置 subagents,您可以创建自己的,具有自定义提示、工具限制、权限模式、hooks 和 skills。以下部分展示了如何开始和自定义 subagents。

92 92 


96 96 

97Subagents 是带有 YAML frontmatter 的 Markdown 文件。要创建一个,请要求 Claude 为您编写,或者 [自己编写文件](#write-subagent-files)。97Subagents 是带有 YAML frontmatter 的 Markdown 文件。要创建一个,请要求 Claude 为您编写,或者 [自己编写文件](#write-subagent-files)。

98 98 

99{/* min-version: 2.1.198 */}从 v2.1.198 开始,`/agents` 命令不再打开交互式创建向导;运行它会打印一个提醒,要求您询问 Claude 或直接编辑 `.claude/agents/`。Subagent 文件、frontmatter 字段以及 `.claude/agents/` 和 `~/.claude/agents/` 位置保持不变;仅删除了终端向导。99从 v2.1.198 开始,`/agents` 命令不再打开交互式创建向导;运行它会打印一个提醒,要求您询问 Claude 或直接编辑 `.claude/agents/`。Subagent 文件、frontmatter 字段以及 `.claude/agents/` 和 `~/.claude/agents/` 位置保持不变;仅删除了终端向导。

100 100 

101本演练创建一个用户级 subagent,用于审查代码并建议改进。101本演练创建一个用户级 subagent,用于审查代码并建议改进。

102 102 


150您也可以手动编写 subagent 文件、通过 CLI 标志定义它们,或通过 plugins 分发它们。以下部分涵盖所有配置选项。150您也可以手动编写 subagent 文件、通过 CLI 标志定义它们,或通过 plugins 分发它们。以下部分涵盖所有配置选项。

151 151 

152<Note>152<Note>

153 在 Claude Code v2.1.197 及更早版本中,`/agents` 打开一个交互式向导,其中有一个 **Running** 选项卡列出实时 subagents,以及一个 **Library** 选项卡用于创建、编辑和删除它们。{/* max-version: 2.1.197 */}153 在 Claude Code v2.1.197 及更早版本中,`/agents` 打开一个交互式向导,其中有一个 **Running** 选项卡列出实时 subagents,以及一个 **Library** 选项卡用于创建、编辑和删除它们。

154</Note>154</Note>

155 155 

156<h2 id="configure-subagents">156<h2 id="configure-subagents">


167 167 

168| Location | Scope | Priority | 如何创建 |168| Location | Scope | Priority | 如何创建 |

169| :-------------------- | :------------ | :------- | :---------------------------------------- |169| :-------------------- | :------------ | :------- | :---------------------------------------- |

170| 托管设置 | 组织范围 | 1(最高) | 通过 [managed settings](/zh-CN/settings) 部署 |170| 托管设置 | 组织范围 | 1(最高) | 通过 [managed settings](/docs/zh-CN/settings) 部署 |

171| `--agents` CLI 标志 | 当前会话 | 2 | 启动 Claude Code 时传递 JSON |171| `--agents` CLI 标志 | 当前会话 | 2 | 启动 Claude Code 时传递 JSON |

172| `.claude/agents/` | 当前项目 | 3 | 询问 Claude,或手动创建文件 |172| `.claude/agents/` | 当前项目 | 3 | 询问 Claude,或手动创建文件 |

173| `~/.claude/agents/` | 所有您的项目 | 4 | 询问 Claude,或手动创建文件 |173| `~/.claude/agents/` | 所有您的项目 | 4 | 询问 Claude,或手动创建文件 |

174| Plugin 的 `agents/` 目录 | 启用 plugin 的位置 | 5(最低) | 与 [plugins](/zh-CN/plugins) 一起安装 |174| Plugin 的 `agents/` 目录 | 启用 plugin 的位置 | 5(最低) | 与 [plugins](/docs/zh-CN/plugins) 一起安装 |

175 175 

176**项目 subagents**(`.claude/agents/`)非常适合特定于代码库的 subagents。将它们检入版本控制,以便您的团队可以协作使用和改进它们。176**项目 subagents**(`.claude/agents/`)非常适合特定于代码库的 subagents。将它们检入版本控制,以便您的团队可以协作使用和改进它们。

177 177 

178项目 subagents 通过从当前工作目录向上遍历来发现,因此会扫描那里和存储库根目录之间的每个 `.claude/agents/`。{/* min-version: 2.1.178 */}从 v2.1.178 开始,当这些嵌套目录中的多个目录定义相同的 `name` 时,Claude Code 使用最接近工作目录的定义。178项目 subagents 通过从当前工作目录向上遍历来发现,因此会扫描那里和存储库根目录之间的每个 `.claude/agents/`。从 v2.1.178 开始,当这些嵌套目录中的多个目录定义相同的 `name` 时,Claude Code 使用最接近工作目录的定义。

179 179 

180使用 `--add-dir` 添加的目录也会被扫描:添加目录内的 `.claude/agents/` 文件夹与项目 subagents 一起加载。有关哪些其他配置类型从 `--add-dir` 加载,请参阅 [Additional directories](/zh-CN/permissions#additional-directories-grant-file-access-not-configuration)。要在没有 `--add-dir` 的情况下跨项目共享 subagents,请使用 `~/.claude/agents/` 或 [plugin](/zh-CN/plugins)。180使用 `--add-dir` 添加的目录也会被扫描:添加目录内的 `.claude/agents/` 文件夹与项目 subagents 一起加载。有关哪些其他配置类型从 `--add-dir` 加载,请参阅 [Additional directories](/docs/zh-CN/permissions#additional-directories-grant-file-access-not-configuration)。要在没有 `--add-dir` 的情况下跨项目共享 subagents,请使用 `~/.claude/agents/` 或 [plugin](/docs/zh-CN/plugins)。

181 181 

182**用户 subagents**(`~/.claude/agents/`)是在所有项目中可用的个人 subagents。182**用户 subagents**(`~/.claude/agents/`)是在所有项目中可用的个人 subagents。

183 183 

184Claude Code 递归扫描 `.claude/agents/` 和 `~/.claude/agents/`,因此您可以将定义组织到子文件夹中,例如 `agents/review/` 或 `agents/research/`。子目录路径不会影响 subagent 的识别或调用方式,因为身份仅来自 `name` frontmatter 字段。184Claude Code 递归扫描 `.claude/agents/` 和 `~/.claude/agents/`,因此您可以将定义组织到子文件夹中,例如 `agents/review/` 或 `agents/research/`。子目录路径不会影响 subagent 的识别或调用方式,因为身份仅来自 `name` frontmatter 字段。

185 185 

186在整个树中保持 `name` 值唯一:如果同一 `.claude/agents/` 目录下的两个文件(包括其子文件夹)声明相同的名称,Claude Code 仅加载其中一个,由文件系统读取顺序选择,而不是有文档记录的优先级。在嵌套项目目录中,最接近工作目录的定义获胜,如上所述。{/* min-version: 2.1.205 */}[`/doctor`](/zh-CN/commands#all-commands) 设置检查报告同一目录中共享名称的文件,并建议重命名或删除除一个之外的所有文件。在 v2.1.205 之前,`/doctor` 打开一个诊断屏幕,列出重复项并显示哪个定义是活跃的。186在整个树中保持 `name` 值唯一:如果同一 `.claude/agents/` 目录下的两个文件(包括其子文件夹)声明相同的名称,Claude Code 仅加载其中一个,由文件系统读取顺序选择,而不是有文档记录的优先级。在嵌套项目目录中,最接近工作目录的定义获胜,如上所述。[`/doctor`](/docs/zh-CN/commands#all-commands) 设置检查报告同一目录中共享名称的文件,并建议重命名或删除除一个之外的所有文件。在 v2.1.205 之前,`/doctor` 打开一个诊断屏幕,列出重复项并显示哪个定义是活跃的。

187 187 

188Plugin `agents/` 目录也会被递归扫描。与项目和用户范围不同,plugin 的 `agents/` 目录内的子文件夹成为 [scoped identifier](#invoke-subagents-explicitly) 的一部分:plugin `my-plugin` 中位于 `agents/review/security.md` 的文件注册为 `my-plugin:review:security`。188Plugin `agents/` 目录也会被递归扫描。与项目和用户范围不同,plugin 的 `agents/` 目录内的子文件夹成为 [scoped identifier](#invoke-subagents-explicitly) 的一部分:plugin `my-plugin` 中位于 `agents/review/security.md` 的文件注册为 `my-plugin:review:security`。

189 189 


229 229 

230`--agents` 标志接受 JSON,具有与基于文件的 subagents 相同的 [frontmatter](#supported-frontmatter-fields) 字段:`description`、`prompt`、`tools`、`disallowedTools`、`model`、`permissionMode`、`mcpServers`、`hooks`、`maxTurns`、`skills`、`initialPrompt`、`memory`、`effort`、`background`、`isolation` 和 `color`。对系统提示使用 `prompt`,等同于基于文件的 subagents 中的 markdown 正文。230`--agents` 标志接受 JSON,具有与基于文件的 subagents 相同的 [frontmatter](#supported-frontmatter-fields) 字段:`description`、`prompt`、`tools`、`disallowedTools`、`model`、`permissionMode`、`mcpServers`、`hooks`、`maxTurns`、`skills`、`initialPrompt`、`memory`、`effort`、`background`、`isolation` 和 `color`。对系统提示使用 `prompt`,等同于基于文件的 subagents 中的 markdown 正文。

231 231 

232**托管 subagents** 由组织管理员部署。在 [managed settings directory](/zh-CN/settings#settings-files) 内的 `.claude/agents/` 中放置 markdown 文件,使用与项目和用户 subagents 相同的 frontmatter 格式。托管定义优先于具有相同名称的项目和用户 subagents。232**托管 subagents** 由组织管理员部署。在 [managed settings directory](/docs/zh-CN/settings#settings-files) 内的 `.claude/agents/` 中放置 markdown 文件,使用与项目和用户 subagents 相同的 frontmatter 格式。托管定义优先于具有相同名称的项目和用户 subagents。

233 233 

234**Plugin subagents** 来自您已安装的 [plugins](/zh-CN/plugins)。它们与您的自定义 subagents 一起加载,并在 @-mention 类型提前中以其范围名称出现。有关创建 plugin subagents 的详细信息,请参阅 [plugin 组件参考](/zh-CN/plugins-reference#agents)。234**Plugin subagents** 来自您已安装的 [plugins](/docs/zh-CN/plugins)。它们与您的自定义 subagents 一起加载,并在 @-mention 类型提前中以其范围名称出现。有关创建 plugin subagents 的详细信息,请参阅 [plugin 组件参考](/docs/zh-CN/plugins-reference#agents)。

235 235 

236<Note>236<Note>

237 出于安全原因,plugin subagents 不支持 `hooks`、`mcpServers` 或 `permissionMode` frontmatter 字段。加载来自 plugin 的代理时,这些字段被忽略。如果您需要它们,请将代理文件复制到 `.claude/agents/` 或 `~/.claude/agents/`。您也可以在 `settings.json` 或 `settings.local.json` 中向 [`permissions.allow`](/zh-CN/settings#permission-settings) 添加规则,但这些规则适用于整个会话,而不仅仅是 plugin subagent。237 出于安全原因,plugin subagents 不支持 `hooks`、`mcpServers` 或 `permissionMode` frontmatter 字段。加载来自 plugin 的代理时,这些字段被忽略。如果您需要它们,请将代理文件复制到 `.claude/agents/` 或 `~/.claude/agents/`。您也可以在 `settings.json` 或 `settings.local.json` 中向 [`permissions.allow`](/docs/zh-CN/settings#permission-settings) 添加规则,但这些规则适用于整个会话,而不仅仅是 plugin subagent。

238</Note>238</Note>

239 239 

240来自任何这些范围的 subagent 定义也可用于 [agent teams](/zh-CN/agent-teams#use-subagent-definitions-for-teammates):当生成一个队友时,您可以引用一个 subagent 类型,队友使用其 `tools` 和 `model`,定义的正文作为额外指令附加到队友的系统提示。有关哪些 frontmatter 字段适用于该路径,请参阅 [agent teams](/zh-CN/agent-teams#use-subagent-definitions-for-teammates)。240来自任何这些范围的 subagent 定义也可用于 [agent teams](/docs/zh-CN/agent-teams#use-subagent-definitions-for-teammates):当生成一个队友时,您可以引用一个 subagent 类型,队友使用其 `tools` 和 `model`,定义的正文作为额外指令附加到队友的系统提示。有关哪些 frontmatter 字段适用于该路径,请参阅 [agent teams](/docs/zh-CN/agent-teams#use-subagent-definitions-for-teammates)。

241 241 

242<h3 id="write-subagent-files">242<h3 id="write-subagent-files">

243 编写 subagent 文件243 编写 subagent 文件


268 268 

269Frontmatter 定义了 subagent 的元数据和配置。正文成为指导 subagent 行为的系统提示。Subagents 仅接收此系统提示(加上基本环境详细信息,如工作目录),而不是完整的 Claude Code 系统提示。269Frontmatter 定义了 subagent 的元数据和配置。正文成为指导 subagent 行为的系统提示。Subagents 仅接收此系统提示(加上基本环境详细信息,如工作目录),而不是完整的 Claude Code 系统提示。

270 270 

271在 [non-interactive mode](/zh-CN/headless) 中,[`--append-subagent-system-prompt`](/zh-CN/cli-reference#cli-flags) 标志将您提供的文本附加到每个 subagent 的系统提示末尾,包括嵌套 subagents。需要 Claude Code v2.1.205 或更高版本。271在 [non-interactive mode](/docs/zh-CN/headless) 中,[`--append-subagent-system-prompt`](/docs/zh-CN/cli-reference#cli-flags) 标志将您提供的文本附加到每个 subagent 的系统提示末尾,包括嵌套 subagents。需要 Claude Code v2.1.205 或更高版本。

272 272 

273一个 subagent 在主对话的当前工作目录中启动。在 subagent 中,`cd` 命令不会在 Bash 或 PowerShell 工具调用之间持续,也不会影响主对话的工作目录。要给 subagent 一个隔离的存储库副本,请改为设置 [`isolation: worktree`](#supported-frontmatter-fields)。273一个 subagent 在主对话的当前工作目录中启动。在 subagent 中,`cd` 命令不会在 Bash 或 PowerShell 工具调用之间持续,也不会影响主对话的工作目录。要给 subagent 一个隔离的存储库副本,请改为设置 [`isolation: worktree`](#supported-frontmatter-fields)。

274 274 

275{/* min-version: 2.1.203 */}具有 `isolation: worktree` 的 subagent 在其 worktree 内运行其 Bash 和 PowerShell 命令。一个工作目录解析到您的主检出的命令,例如因为 worktree 目录在 subagent 运行时被删除,会失败并出现错误。在 v2.1.203 之前,这样的命令可能在主检出中运行。275具有 `isolation: worktree` 的 subagent 在其 worktree 内运行其 Bash 和 PowerShell 命令。一个工作目录解析到您的主检出的命令,例如因为 worktree 目录在 subagent 运行时被删除,会失败并出现错误。在 v2.1.203 之前,这样的命令可能在主检出中运行。

276 276 

277<h4 id="supported-frontmatter-fields">277<h4 id="supported-frontmatter-fields">

278 支持的 frontmatter 字段278 支持的 frontmatter 字段


281以下字段可以在 YAML frontmatter 中使用。只有 `name` 和 `description` 是必需的。281以下字段可以在 YAML frontmatter 中使用。只有 `name` 和 `description` 是必需的。

282 282 

283| Field | 必需 | Description |283| Field | 必需 | Description |

284| :---------------- | :- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |284| :---------------- | :- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

285| `name` | 是 | 使用小写字母和连字符的唯一标识符。[Hooks](/zh-CN/hooks#subagentstart) 将此值作为 `agent_type` 接收。文件名不必匹配 |285| `name` | 是 | 使用小写字母和连字符的唯一标识符。[Hooks](/docs/zh-CN/hooks#subagentstart) 将此值作为 `agent_type` 接收。文件名不必匹配 |

286| `description` | 是 | Claude 何时应该委托给此 subagent |286| `description` | 是 | Claude 何时应该委托给此 subagent |

287| `tools` | 否 | [Tools](#available-tools) subagent 可以使用。如果省略,继承所有工具。要将 Skills 预加载到上下文中,请使用 `skills` 字段而不是在此处列出 `Skill` |287| `tools` | 否 | [Tools](#available-tools) subagent 可以使用。如果省略,继承所有工具。要将 Skills 预加载到上下文中,请使用 `skills` 字段而不是在此处列出 `Skill` |

288| `disallowedTools` | 否 | 要拒绝的工具,从继承或指定的列表中删除 |288| `disallowedTools` | 否 | 要拒绝的工具,从继承或指定的列表中删除 |

289| `model` | 否 | [Model](#choose-a-model) 使用:`sonnet`、`opus`、`haiku`、`fable`、完整模型 ID(例如,`claude-opus-4-8`)或 `inherit`。默认为 `inherit` |289| `model` | 否 | [Model](#choose-a-model) 使用:`sonnet`、`opus`、`haiku`、`fable`、完整模型 ID(例如,`claude-opus-4-8`)或 `inherit`。默认为 `inherit` |

290| `permissionMode` | 否 | [Permission mode](#permission-modes):`default`、`acceptEdits`、`auto`、`dontAsk`、`bypassPermissions`、`plan` 或 {/* min-version: 2.1.200 */}`manual` 作为 `default` 的别名。`manual` 别名需要 Claude Code v2.1.200 或更高版本。对于 [plugin subagents](#choose-the-subagent-scope) 被忽略 |290| `permissionMode` | 否 | [Permission mode](#permission-modes):`default`、`acceptEdits`、`auto`、`dontAsk`、`bypassPermissions`、`plan` 或 `manual` 作为 `default` 的别名。`manual` 别名需要 Claude Code v2.1.200 或更高版本。对于 [plugin subagents](#choose-the-subagent-scope) 被忽略 |

291| `maxTurns` | 否 | subagent 停止前的最大代理轮数 |291| `maxTurns` | 否 | subagent 停止前的最大代理轮数 |

292| `skills` | 否 | [Skills](/zh-CN/skills) 在启动时加载到 subagent 的上下文中。注入完整的技能内容,而不仅仅是描述。Subagents 仍然可以通过 Skill 工具调用未列出的项目、用户和 plugin 技能 |292| `skills` | 否 | [Skills](/docs/zh-CN/skills) 在启动时加载到 subagent 的上下文中。注入完整的技能内容,而不仅仅是描述。Subagents 仍然可以通过 Skill 工具调用未列出的项目、用户和 plugin 技能 |

293| `mcpServers` | 否 | [MCP servers](/zh-CN/mcp) 对此 subagent 可用。每个条目要么是引用已配置服务器的服务器名称(例如,`"slack"`),要么是内联定义,其中服务器名称为键,完整的 [MCP server config](/zh-CN/mcp#installing-mcp-servers) 为值。对于 [plugin subagents](#choose-the-subagent-scope) 被忽略 |293| `mcpServers` | 否 | [MCP servers](/docs/zh-CN/mcp) 对此 subagent 可用。每个条目要么是引用已配置服务器的服务器名称(例如,`"slack"`),要么是内联定义,其中服务器名称为键,完整的 [MCP server config](/docs/zh-CN/mcp#installing-mcp-servers) 为值。对于 [plugin subagents](#choose-the-subagent-scope) 被忽略 |

294| `hooks` | 否 | [Lifecycle hooks](#define-hooks-for-subagents) 限定于此 subagent。对于 [plugin subagents](#choose-the-subagent-scope) 被忽略 |294| `hooks` | 否 | [Lifecycle hooks](#define-hooks-for-subagents) 限定于此 subagent。对于 [plugin subagents](#choose-the-subagent-scope) 被忽略 |

295| `memory` | 否 | [Persistent memory scope](#enable-persistent-memory):`user`、`project` 或 `local`。启用跨会话学习 |295| `memory` | 否 | [Persistent memory scope](#enable-persistent-memory):`user`、`project` 或 `local`。启用跨会话学习 |

296| `background` | 否 | 设置为 `true` 以始终将此 subagent 作为 [background task](#run-subagents-in-foreground-or-background) 运行,即使 Claude 需要其结果。未设置时,Claude 选择,{/* min-version: 2.1.198 */}从 v2.1.198 开始,它默认在后台运行 subagents |296| `background` | 否 | 设置为 `true` 以始终将此 subagent 作为 [background task](#run-subagents-in-foreground-or-background) 运行,即使 Claude 需要其结果。未设置时,Claude 选择,从 v2.1.198 开始,它默认在后台运行 subagents |

297| `effort` | 否 | 此 subagent 活跃时的努力级别。覆盖会话努力级别。默认:从会话继承。选项:`low`、`medium`、`high`、`xhigh`、`max`;可用级别取决于模型 |297| `effort` | 否 | 此 subagent 活跃时的努力级别。覆盖会话努力级别。默认:从会话继承。选项:`low`、`medium`、`high`、`xhigh`、`max`;可用级别取决于模型 |

298| `isolation` | 否 | 设置为 `worktree` 以在临时 [git worktree](/zh-CN/worktrees) 中运行 subagent,为其提供存储库的隔离副本,默认从您的 [default branch](/zh-CN/worktrees#choose-the-base-branch) 分支,而不是父会话的 `HEAD`。如果 subagent 不进行任何更改,worktree 会自动清理 |298| `isolation` | 否 | 设置为 `worktree` 以在临时 [git worktree](/docs/zh-CN/worktrees) 中运行 subagent,为其提供存储库的隔离副本,默认从您的 [default branch](/docs/zh-CN/worktrees#choose-the-base-branch) 分支,而不是父会话的 `HEAD`。如果 subagent 不进行任何更改,worktree 会自动清理 |

299| `color` | 否 | Subagent 在任务列表和转录中的显示颜色。接受 `red`、`blue`、`green`、`yellow`、`purple`、`orange`、`pink` 或 `cyan` |299| `color` | 否 | Subagent 在任务列表和转录中的显示颜色。接受 `red`、`blue`、`green`、`yellow`、`purple`、`orange`、`pink` 或 `cyan` |

300| `initialPrompt` | 否 | 当此代理作为主会话代理运行时(通过 `--agent` 或 `agent` 设置),自动提交为第一个用户轮次。[Commands](/zh-CN/commands) 和 [skills](/zh-CN/skills) 被处理。前置于任何用户提供的提示 |300| `initialPrompt` | 否 | 当此代理作为主会话代理运行时(通过 `--agent` 或 `agent` 设置),自动提交为第一个用户轮次。[Commands](/docs/zh-CN/commands) 和 [skills](/docs/zh-CN/skills) 被处理。前置于任何用户提供的提示 |

301 301 

302<h3 id="choose-a-model">302<h3 id="choose-a-model">

303 选择模型303 选择模型

304</h3>304</h3>

305 305 

306`model` 字段控制 subagent 使用的 [AI model](/zh-CN/model-config):306`model` 字段控制 subagent 使用的 [AI model](/docs/zh-CN/model-config):

307 307 

308* **Model alias**: 使用可用的别名之一:`sonnet`、`opus`、`haiku` 或 `fable`308* **Model alias**: 使用可用的别名之一:`sonnet`、`opus`、`haiku` 或 `fable`

309* **Full model ID**: 使用完整的模型 ID,如 `claude-opus-4-8` 或 `claude-sonnet-5`。接受与 `--model` 标志相同的值309* **Full model ID**: 使用完整的模型 ID,如 `claude-opus-4-8` 或 `claude-sonnet-5`。接受与 `--model` 标志相同的值


312 312 

313当 Claude 调用 subagent 时,它也可以为该特定调用传递 `model` 参数。Claude Code 按以下顺序解析 subagent 的模型:313当 Claude 调用 subagent 时,它也可以为该特定调用传递 `model` 参数。Claude Code 按以下顺序解析 subagent 的模型:

314 314 

3151. [`CLAUDE_CODE_SUBAGENT_MODEL`](/zh-CN/model-config#environment-variables) 环境变量,当设置为模型别名或模型 ID 时3151. [`CLAUDE_CODE_SUBAGENT_MODEL`](/docs/zh-CN/model-config#environment-variables) 环境变量,当设置为模型别名或模型 ID 时

3162. 每次调用的 `model` 参数3162. 每次调用的 `model` 参数

3173. Subagent 定义的 `model` frontmatter3173. Subagent 定义的 `model` frontmatter

3184. 主对话的模型3184. 主对话的模型

319 319 

320{/* min-version: 2.1.196 */}从 v2.1.196 开始,将 `CLAUDE_CODE_SUBAGENT_MODEL` 设置为 `inherit` 与不设置它相同:解析继续使用每次调用的 `model` 参数,然后是 frontmatter。在早期版本中,`inherit` 强制 subagents 使用主对话的模型,并忽略这两个来源。320从 v2.1.196 开始,将 `CLAUDE_CODE_SUBAGENT_MODEL` 设置为 `inherit` 与不设置它相同:解析继续使用每次调用的 `model` 参数,然后是 frontmatter。在早期版本中,`inherit` 强制 subagents 使用主对话的模型,并忽略这两个来源。

321 321 

322环境变量、每次调用的参数和 frontmatter 值会根据您组织的 [`availableModels`](/zh-CN/model-config#restrict-model-selection) 允许列表进行检查。解析为排除模型的值不会被使用,subagent 会改为在继承的模型上运行。322环境变量、每次调用的参数和 frontmatter 值会根据您组织的 [`availableModels`](/docs/zh-CN/model-config#restrict-model-selection) 允许列表进行检查。解析为排除模型的值不会被使用,subagent 会改为在继承的模型上运行。

323 323 

324{/* min-version: 2.1.198 */}从 v2.1.198 开始,subagents 也继承主对话的 [extended thinking](/zh-CN/model-config#extended-thinking) 配置:如果在您的会话中启用了思考,对于 subagent 也启用,如果关闭,则保持关闭。没有每个 subagent 的思考设置。在 v2.1.198 之前,subagents 运行时禁用了扩展思考,无论主对话的设置如何。324从 v2.1.198 开始,subagents 也继承主对话的 [extended thinking](/docs/zh-CN/model-config#extended-thinking) 配置:如果在您的会话中启用了思考,对于 subagent 也启用,如果关闭,则保持关闭。没有每个 subagent 的思考设置。在 v2.1.198 之前,subagents 运行时禁用了扩展思考,无论主对话的设置如何。

325 325 

326<h3 id="control-subagent-capabilities">326<h3 id="control-subagent-capabilities">

327 控制 subagent 能力327 控制 subagent 能力


333 可用工具333 可用工具

334</h4>334</h4>

335 335 

336Subagents 默认继承主对话中可用的 [internal tools](/zh-CN/tools-reference) 和 MCP 工具。以下工具取决于主对话的 UI 或会话状态,即使在 `tools` 字段中列出也不可用于 subagents:336Subagents 默认继承主对话中可用的 [internal tools](/docs/zh-CN/tools-reference) 和 MCP 工具。以下工具取决于主对话的 UI 或会话状态,即使在 `tools` 字段中列出也不可用于 subagents:

337 337 

338* `AskUserQuestion`338* `AskUserQuestion`

339* `EnterPlanMode`339* `EnterPlanMode`


363 363 

364如果两者都设置,`disallowedTools` 首先应用,然后 `tools` 针对剩余的池进行解析。同时列在两者中的工具被删除。364如果两者都设置,`disallowedTools` 首先应用,然后 `tools` 针对剩余的池进行解析。同时列在两者中的工具被删除。

365 365 

366当 `tools` 列表中没有任何内容解析为工具时,例如因为每个条目都拼写错误或命名了对 subagents 不可用的工具,Claude Code 拒绝启动 subagent,Agent 工具返回一个错误,命名未解析的条目。{/* min-version: 2.1.208 */}在 v2.1.208 之前,该 subagent 启动时没有工具,可能返回空的或令人困惑的结果。366当 `tools` 列表中没有任何内容解析为工具时,例如因为每个条目都拼写错误或命名了对 subagents 不可用的工具,Claude Code 拒绝启动 subagent,Agent 工具返回一个错误,命名未解析的条目。在 v2.1.208 之前,该 subagent 启动时没有工具,可能返回空的或令人困惑的结果。

367 367 

368两个字段都接受 MCP 服务器级别的模式,除了精确的工具名称:`mcp__<server>` 或 `mcp__<server>__*` 授予或删除来自命名服务器的每个工具。在 `disallowedTools` 中,`mcp__*` 也删除来自任何服务器的每个 MCP 工具。此示例删除来自 `github` MCP 服务器的每个工具,同时保留来自其他服务器的工具和每个内置工具:368两个字段都接受 MCP 服务器级别的模式,除了精确的工具名称:`mcp__<server>` 或 `mcp__<server>__*` 授予或删除来自命名服务器的每个工具。在 `disallowedTools` 中,`mcp__*` 也删除来自任何服务器的每个 MCP 工具。此示例删除来自 `github` MCP 服务器的每个工具,同时保留来自其他服务器的工具和每个内置工具:

369 369 


407 将 MCP 服务器限定于 subagent407 将 MCP 服务器限定于 subagent

408</h4>408</h4>

409 409 

410使用 `mcpServers` 字段为 subagent 提供对主对话中不可用的 [MCP](/zh-CN/mcp) 服务器的访问。此处定义的内联服务器在 subagent 启动时连接,在完成时断开连接。字符串引用共享父会话的连接。410使用 `mcpServers` 字段为 subagent 提供对主对话中不可用的 [MCP](/docs/zh-CN/mcp) 服务器的访问。此处定义的内联服务器在 subagent 启动时连接,在完成时断开连接。字符串引用共享父会话的连接。

411 411 

412<Note>412<Note>

413 `mcpServers` 字段适用于代理文件可以运行的两个上下文:413 `mcpServers` 字段适用于代理文件可以运行的两个上下文:


415 * 作为 subagent,通过 Agent 工具或 @-mention 生成415 * 作为 subagent,通过 Agent 工具或 @-mention 生成

416 * 作为主会话,使用 [`--agent`](#invoke-subagents-explicitly) 或 `agent` 设置启动416 * 作为主会话,使用 [`--agent`](#invoke-subagents-explicitly) 或 `agent` 设置启动

417 417 

418 当代理是主会话时,内联服务器定义与来自 [`.mcp.json`](/zh-CN/mcp) 和设置文件的服务器一起在启动时连接。418 当代理是主会话时,内联服务器定义与来自 [`.mcp.json`](/docs/zh-CN/mcp) 和设置文件的服务器一起在启动时连接。

419</Note>419</Note>

420 420 

421列表中的每个条目要么是内联服务器定义,要么是引用会话中已配置的 MCP 服务器的字符串:421列表中的每个条目要么是内联服务器定义,要么是引用会话中已配置的 MCP 服务器的字符串:


443 443 

444从 v2.1.153 开始,适用于主会话的 MCP 限制也涵盖在 subagent frontmatter 中声明的服务器:444从 v2.1.153 开始,适用于主会话的 MCP 限制也涵盖在 subagent frontmatter 中声明的服务器:

445 445 

446* [`--strict-mcp-config`](/zh-CN/cli-reference) 和 [`--bare`](/zh-CN/cli-reference)446* [`--strict-mcp-config`](/docs/zh-CN/cli-reference) 和 [`--bare`](/docs/zh-CN/cli-reference)

447* [Enterprise managed MCP configuration](/zh-CN/managed-mcp)447* [Enterprise managed MCP configuration](/docs/zh-CN/managed-mcp)

448* [`allowedMcpServers` 和 `deniedMcpServers` 策略](/zh-CN/managed-mcp#policy-based-control-with-allowlists-and-denylists)448* [`allowedMcpServers` 和 `deniedMcpServers` 策略](/docs/zh-CN/managed-mcp#policy-based-control-with-allowlists-and-denylists)

449 449 

450当其中之一阻止服务器时,Claude Code 会跳过它并显示一个警告,命名被阻止的服务器。450当其中之一阻止服务器时,Claude Code 会跳过它并显示一个警告,命名被阻止的服务器。

451 451 


461| :------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |461| :------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

462| `default` | 标准权限检查,带有提示 |462| `default` | 标准权限检查,带有提示 |

463| `acceptEdits` | 自动接受文件编辑和工作目录或 `additionalDirectories` 中路径的常见文件系统命令 |463| `acceptEdits` | 自动接受文件编辑和工作目录或 `additionalDirectories` 中路径的常见文件系统命令 |

464| `auto` | [Auto mode](/zh-CN/permission-modes#eliminate-prompts-with-auto-mode):后台分类器审查命令和受保护目录的写入 |464| `auto` | [Auto mode](/docs/zh-CN/permission-modes#eliminate-prompts-with-auto-mode):后台分类器审查命令和受保护目录的写入 |

465| `dontAsk` | 自动拒绝权限提示。显式允许的工具仍然工作;`AskUserQuestion`、connector 工具 [您的组织设置为 `ask`](/zh-CN/mcp#organization-controls-on-connector-tools) 和标记为 [`requiresUserInteraction`](/zh-CN/mcp#require-approval-for-a-specific-tool) 的 MCP 工具被拒绝,即使您已允许它们 |465| `dontAsk` | 自动拒绝权限提示。显式允许的工具仍然工作;`AskUserQuestion`、connector 工具 [您的组织设置为 `ask`](/docs/zh-CN/mcp#organization-controls-on-connector-tools) 和标记为 [`requiresUserInteraction`](/docs/zh-CN/mcp#require-approval-for-a-specific-tool) 的 MCP 工具被拒绝,即使您已允许它们 |

466| `bypassPermissions` | 跳过权限提示 |466| `bypassPermissions` | 跳过权限提示 |

467| `plan` | Plan mode(只读探索) |467| `plan` | Plan mode(只读探索) |

468 468 

469<Warning>469<Warning>

470 谨慎使用 `bypassPermissions`。它跳过权限提示,允许 subagent 在没有批准的情况下执行操作,包括对 `.git`、`.config/git`、`.claude`、`.vscode`、`.idea`、`.husky`、`.cargo`、`.devcontainer`、`.yarn` 和 `.mvn` 的写入。470 谨慎使用 `bypassPermissions`。它跳过权限提示,允许 subagent 在没有批准的情况下执行操作,包括对 `.git`、`.config/git`、`.claude`、`.vscode`、`.idea`、`.husky`、`.cargo`、`.devcontainer`、`.yarn` 和 `.mvn` 的写入。

471 471 

472 显式 [`ask` 规则](/zh-CN/permissions#manage-permissions)、connector 工具 [您的组织设置为 `ask`](/zh-CN/mcp#organization-controls-on-connector-tools)、标记为 [`requiresUserInteraction`](/zh-CN/mcp#require-approval-for-a-specific-tool) 的 MCP 工具以及根目录和主目录删除(如 `rm -rf /`)仍然会提示。有关详细信息,请参阅 [permission modes](/zh-CN/permission-modes#skip-all-checks-with-bypasspermissions-mode)。472 显式 [`ask` 规则](/docs/zh-CN/permissions#manage-permissions)、connector 工具 [您的组织设置为 `ask`](/docs/zh-CN/mcp#organization-controls-on-connector-tools)、标记为 [`requiresUserInteraction`](/docs/zh-CN/mcp#require-approval-for-a-specific-tool) 的 MCP 工具以及根目录和主目录删除(如 `rm -rf /`)仍然会提示。有关详细信息,请参阅 [permission modes](/docs/zh-CN/permission-modes#skip-all-checks-with-bypasspermissions-mode)。

473</Warning>473</Warning>

474 474 

475如果父级使用 `bypassPermissions` 或 `acceptEdits`,这优先并且无法被覆盖。如果父级使用 [auto mode](/zh-CN/permission-modes#eliminate-prompts-with-auto-mode),subagent 继承 auto mode,其 frontmatter 中的任何 `permissionMode` 被忽略:分类器使用与父会话相同的块和允许规则评估 subagent 的工具调用。475如果父级使用 `bypassPermissions` 或 `acceptEdits`,这优先并且无法被覆盖。如果父级使用 [auto mode](/docs/zh-CN/permission-modes#eliminate-prompts-with-auto-mode),subagent 继承 auto mode,其 frontmatter 中的任何 `permissionMode` 被忽略:分类器使用与父会话相同的块和允许规则评估 subagent 的工具调用。

476 476 

477<h4 id="preload-skills-into-subagents">477<h4 id="preload-skills-into-subagents">

478 将技能预加载到 subagents478 将技能预加载到 subagents


494 494 

495每个列出的技能的完整内容被注入到 subagent 的上下文中。此字段控制哪些技能被预加载,而不是 subagent 可以访问哪些技能:没有它,subagent 仍然可以在执行期间通过 Skill 工具发现和调用项目、用户和 plugin 技能。要防止 subagent 完全调用技能,请从 [`tools`](#available-tools) 列表中省略 `Skill` 或将其添加到 `disallowedTools`。495每个列出的技能的完整内容被注入到 subagent 的上下文中。此字段控制哪些技能被预加载,而不是 subagent 可以访问哪些技能:没有它,subagent 仍然可以在执行期间通过 Skill 工具发现和调用项目、用户和 plugin 技能。要防止 subagent 完全调用技能,请从 [`tools`](#available-tools) 列表中省略 `Skill` 或将其添加到 `disallowedTools`。

496 496 

497您无法预加载设置了 [`disable-model-invocation: true`](/zh-CN/skills#control-who-invokes-a-skill) 的技能,因为预加载来自 Claude 可以调用的相同技能集。如果列出的技能缺失或被禁用,Claude Code 会跳过它并向调试日志记录警告。497您无法预加载设置了 [`disable-model-invocation: true`](/docs/zh-CN/skills#control-who-invokes-a-skill) 的技能,因为预加载来自 Claude 可以调用的相同技能集。如果列出的技能缺失或被禁用,Claude Code 会跳过它并向调试日志记录警告。

498 498 

499<Note>499<Note>

500 这与 [在 subagent 中运行技能](/zh-CN/skills#run-skills-in-a-subagent) 相反。使用 subagent 中的 `skills`,subagent 控制系统提示并加载技能内容。使用技能中的 `context: fork`,技能内容被注入到您指定的代理中。两者都使用相同的底层系统。500 这与 [在 subagent 中运行技能](/docs/zh-CN/skills#run-skills-in-a-subagent) 相反。使用 subagent 中的 `skills`,subagent 控制系统提示并加载技能内容。使用技能中的 `context: fork`,技能内容被注入到您指定的代理中。两者都使用相同的底层系统。

501</Note>501</Note>

502 502 

503<h4 id="enable-persistent-memory">503<h4 id="enable-persistent-memory">


569---569---

570```570```

571 571 

572Claude Code [通过 stdin 将 hook 输入作为 JSON 传递](/zh-CN/hooks#pretooluse-input) 给 hook 命令。验证脚本读取此 JSON,提取 Bash 命令,并 [以代码 2 退出](/zh-CN/hooks#exit-code-2-behavior-per-event) 以阻止写入操作:572Claude Code [通过 stdin 将 hook 输入作为 JSON 传递](/docs/zh-CN/hooks#pretooluse-input) 给 hook 命令。验证脚本读取此 JSON,提取 Bash 命令,并 [以代码 2 退出](/docs/zh-CN/hooks#exit-code-2-behavior-per-event) 以阻止写入操作:

573 573 

574```bash theme={null}574```bash theme={null}

575#!/bin/bash575#!/bin/bash


587exit 0587exit 0

588```588```

589 589 

590有关完整的输入架构,请参阅 [Hook input](/zh-CN/hooks#pretooluse-input),有关退出代码如何影响行为,请参阅 [exit codes](/zh-CN/hooks#exit-code-output)。在 Windows 上,在 PowerShell 中编写 hook 脚本,并在 hook 条目中添加 `shell: powershell`,如 [在 PowerShell 中运行 hooks](/zh-CN/hooks#windows-powershell-tool) 中所示。590有关完整的输入架构,请参阅 [Hook input](/docs/zh-CN/hooks#pretooluse-input),有关退出代码如何影响行为,请参阅 [exit codes](/docs/zh-CN/hooks#exit-code-output)。在 Windows 上,在 PowerShell 中编写 hook 脚本,并在 hook 条目中添加 `shell: powershell`,如 [在 PowerShell 中运行 hooks](/docs/zh-CN/hooks#windows-powershell-tool) 中所示。

591 591 

592<h4 id="disable-specific-subagents">592<h4 id="disable-specific-subagents">

593 禁用特定 subagents593 禁用特定 subagents

594</h4>594</h4>

595 595 

596您可以通过将 subagents 添加到您的 [settings](/zh-CN/settings#permission-settings) 中的 `deny` 数组来防止 Claude 使用特定 subagents。使用格式 `Agent(subagent-name)`,其中 `subagent-name` 与 subagent 的 name 字段匹配。596您可以通过将 subagents 添加到您的 [settings](/docs/zh-CN/settings#permission-settings) 中的 `deny` 数组来防止 Claude 使用特定 subagents。使用格式 `Agent(subagent-name)`,其中 `subagent-name` 与 subagent 的 name 字段匹配。

597 597 

598```json theme={null}598```json theme={null}

599{599{


609claude --disallowedTools "Agent(Explore)"609claude --disallowedTools "Agent(Explore)"

610```610```

611 611 

612有关权限规则的更多详细信息,请参阅 [Permissions documentation](/zh-CN/permissions#tool-specific-permission-rules)。612有关权限规则的更多详细信息,请参阅 [Permissions documentation](/docs/zh-CN/permissions#tool-specific-permission-rules)。

613 613 

614<h3 id="define-hooks-for-subagents">614<h3 id="define-hooks-for-subagents">

615 为 subagents 定义 hooks615 为 subagents 定义 hooks

616</h3>616</h3>

617 617 

618Subagents 可以定义在 subagent 的生命周期中运行的 [hooks](/zh-CN/hooks)。有两种方式来配置 hooks:618Subagents 可以定义在 subagent 的生命周期中运行的 [hooks](/docs/zh-CN/hooks)。有两种方式来配置 hooks:

619 619 

620* **在 subagent 的 frontmatter 中**:定义仅在该 subagent 活跃时运行的 hooks620* **在 subagent 的 frontmatter 中**:定义仅在该 subagent 活跃时运行的 hooks

621* **在 `settings.json` 中**:定义在 subagents 启动或停止时在主会话中运行的 hooks621* **在 `settings.json` 中**:定义在 subagents 启动或停止时在主会话中运行的 hooks


627直接在 subagent 的 markdown 文件中定义 hooks。这些 hooks 仅在该特定 subagent 活跃时运行,并在完成时清理。627直接在 subagent 的 markdown 文件中定义 hooks。这些 hooks 仅在该特定 subagent 活跃时运行,并在完成时清理。

628 628 

629<Note>629<Note>

630 Frontmatter hooks 在代理通过 Agent 工具或 @-mention 作为 subagent 生成时触发,以及当代理通过 [`--agent`](#invoke-subagents-explicitly) 或 `agent` 设置作为主会话运行时触发。在主会话情况下,它们与在 [`settings.json`](/zh-CN/hooks) 中定义的任何 hooks 一起运行。630 Frontmatter hooks 在代理通过 Agent 工具或 @-mention 作为 subagent 生成时触发,以及当代理通过 [`--agent`](#invoke-subagents-explicitly) 或 `agent` 设置作为主会话运行时触发。在主会话情况下,它们与在 [`settings.json`](/docs/zh-CN/hooks) 中定义的任何 hooks 一起运行。

631</Note>631</Note>

632 632 

633所有 [hook events](/zh-CN/hooks#hook-events) 都被支持。subagents 最常见的事件是:633所有 [hook events](/docs/zh-CN/hooks#hook-events) 都被支持。subagents 最常见的事件是:

634 634 

635| Event | Matcher input | 何时触发 |635| Event | Matcher input | 何时触发 |

636| :------------ | :------------ | :------------------------------------- |636| :------------ | :------------ | :------------------------------------- |


671| `SubagentStart` | Agent type name | 当 subagent 开始执行时 |671| `SubagentStart` | Agent type name | 当 subagent 开始执行时 |

672| `SubagentStop` | Agent type name | 当 subagent 完成时 |672| `SubagentStop` | Agent type name | 当 subagent 完成时 |

673 673 

674两个事件都支持匹配器以按名称针对特定代理类型。匹配器值是项目级和用户级 subagents 的代理 frontmatter `name`,或 [plugin subagents](/zh-CN/plugins) 的 plugin 范围标识符,例如 `my-plugin:db-agent`。范围名称包含冒号,因此它被评估为 [unanchored regular expression](/zh-CN/hooks#matcher-patterns);使用 `^` 和 `$` 锚定它,如 `^my-plugin:db-agent$`,以仅匹配该代理。674两个事件都支持匹配器以按名称针对特定代理类型。匹配器值是项目级和用户级 subagents 的代理 frontmatter `name`,或 [plugin subagents](/docs/zh-CN/plugins) 的 plugin 范围标识符,例如 `my-plugin:db-agent`。范围名称包含冒号,因此它被评估为 [unanchored regular expression](/docs/zh-CN/hooks#matcher-patterns);使用 `^` 和 `$` 锚定它,如 `^my-plugin:db-agent$`,以仅匹配该代理。

675 675 

676此示例仅在 `db-agent` subagent 启动时运行设置脚本,并在任何 subagent 停止时运行清理脚本:676此示例仅在 `db-agent` subagent 启动时运行设置脚本,并在任何 subagent 停止时运行清理脚本:

677 677 


699 699 

700一个带连字符的匹配器,如 `db-agent`,在 Claude Code v2.1.195 或更高版本上精确匹配。在早期版本上,它被评估为 unanchored regular expression,也会为任何包含它的代理类型触发,例如 `prod-db-agent`;在这些版本上使用 `^db-agent$` 锚定它。700一个带连字符的匹配器,如 `db-agent`,在 Claude Code v2.1.195 或更高版本上精确匹配。在早期版本上,它被评估为 unanchored regular expression,也会为任何包含它的代理类型触发,例如 `prod-db-agent`;在这些版本上使用 `^db-agent$` 锚定它。

701 701 

702有关完整的 hook 配置格式,请参阅 [Hooks](/zh-CN/hooks)。702有关完整的 hook 配置格式,请参阅 [Hooks](/docs/zh-CN/hooks)。

703 703 

704<h2 id="work-with-subagents">704<h2 id="work-with-subagents">

705 使用 subagents705 使用 subagents


736 736 

737您的完整消息仍然发送给 Claude,它根据您的要求为 subagent 编写任务提示。@-mention 控制调用哪个 subagent,而不是它接收什么提示。737您的完整消息仍然发送给 Claude,它根据您的要求为 subagent 编写任务提示。@-mention 控制调用哪个 subagent,而不是它接收什么提示。

738 738 

739由启用的 [plugin](/zh-CN/plugins) 提供的 Subagents 在类型提前中显示为其作用域名称,例如 `my-plugin:code-reviewer` 或 `my-plugin:review:security`,当 plugin [将 agents 组织到子文件夹中](#choose-the-subagent-scope)。命名背景 subagents 当前在会话中运行也出现在类型提前中,在名称旁边显示其状态。您也可以手动输入提及而不使用选择器:`@agent-<name>` 用于本地 subagents,或 `@agent-` 后跟 plugin subagents 的作用域名称,例如 `@agent-my-plugin:code-reviewer`。739由启用的 [plugin](/docs/zh-CN/plugins) 提供的 Subagents 在类型提前中显示为其作用域名称,例如 `my-plugin:code-reviewer` 或 `my-plugin:review:security`,当 plugin [将 agents 组织到子文件夹中](#choose-the-subagent-scope)。命名背景 subagents 当前在会话中运行也出现在类型提前中,在名称旁边显示其状态。您也可以手动输入提及而不使用选择器:`@agent-<name>` 用于本地 subagents,或 `@agent-` 后跟 plugin subagents 的作用域名称,例如 `@agent-my-plugin:code-reviewer`。

740 740 

741**将整个会话作为 subagent 运行。** 传递 [`--agent <name>`](/zh-CN/cli-reference) 以启动一个会话,其中主线程本身采用该 subagent 的系统提示、工具限制和模型:741**将整个会话作为 subagent 运行。** 传递 [`--agent <name>`](/docs/zh-CN/cli-reference) 以启动一个会话,其中主线程本身采用该 subagent 的系统提示、工具限制和模型:

742 742 

743```bash theme={null}743```bash theme={null}

744claude --agent code-reviewer744claude --agent code-reviewer

745```745```

746 746 

747Subagent 的系统提示完全替换默认 Claude Code 系统提示,就像 [`--system-prompt`](/zh-CN/cli-reference) 一样。`CLAUDE.md` 文件和项目内存仍然通过正常消息流加载。代理名称在启动标题中显示为 `@<name>`,以便您可以确认它是活跃的。747Subagent 的系统提示完全替换默认 Claude Code 系统提示,就像 [`--system-prompt`](/docs/zh-CN/cli-reference) 一样。`CLAUDE.md` 文件和项目内存仍然通过正常消息流加载。代理名称在启动标题中显示为 `@<name>`,以便您可以确认它是活跃的。

748 748 

749这适用于内置和自定义 subagents,当您恢复会话时选择会持续。749这适用于内置和自定义 subagents,当您恢复会话时选择会持续。

750 750 


779Subagents 可以在前台或后台运行:779Subagents 可以在前台或后台运行:

780 780 

781* **前台 subagents** 阻塞主对话直到完成。权限提示会在出现时传递给您。781* **前台 subagents** 阻塞主对话直到完成。权限提示会在出现时传递给您。

782* **后台 subagents** 在您继续工作时并发运行。{/* min-version: 2.1.186 */}从 v2.1.186 开始,当后台 subagent 到达需要权限的工具调用时,提示会在您的主会话中显示,并命名正在请求的 subagent。批准以让 subagent 继续,或按 Esc 拒绝该单个工具调用而不停止 subagent。在 v2.1.186 之前,后台 subagents 自动拒绝任何会提示的工具调用。782* **后台 subagents** 在您继续工作时并发运行。从 v2.1.186 开始,当后台 subagent 到达需要权限的工具调用时,提示会在您的主会话中显示,并命名正在请求的 subagent。批准以让 subagent 继续,或按 Esc 拒绝该单个工具调用而不停止 subagent。在 v2.1.186 之前,后台 subagents 自动拒绝任何会提示的工具调用。

783 783 

784{/* min-version: 2.1.198 */}从 v2.1.198 开始,subagents 默认在后台运行。Claude 在需要结果才能继续时在前台运行 subagent。默认值改变 subagent 运行的位置,而不是它被允许做什么:后台 subagents 仍然在您的主会话中显示每个权限提示。在 v2.1.198 之前,Claude 根据任务在前台和后台之间选择。784从 v2.1.198 开始,subagents 默认在后台运行。Claude 在需要结果才能继续时在前台运行 subagent。默认值改变 subagent 运行的位置,而不是它被允许做什么:后台 subagents 仍然在您的主会话中显示每个权限提示。在 v2.1.198 之前,Claude 根据任务在前台和后台之间选择。

785 785 

786您也可以自己控制这个:786您也可以自己控制这个:

787 787 

788* 要求 Claude 在后台或前台运行任务788* 要求 Claude 在后台或前台运行任务

789* 按 **Ctrl+B** 将运行中的任务放在后台789* 按 **Ctrl+B** 将运行中的任务放在后台

790 790 

791{/* min-version: 2.1.208 */}完成的后台 subagent 在 [`/tasks`](/zh-CN/commands) 中保持列出,标记为完成并排序在运行工作下方,直到会话清理其任务列表。当 subagent 完成时,其详情视图保持打开。失败或您停止的 Subagents 离开列表。在 v2.1.208 之前,完成的 subagent 在完成时立即离开列表,其详情视图关闭。791完成的后台 subagent 在 [`/tasks`](/docs/zh-CN/commands) 中保持列出,标记为完成并排序在运行工作下方,直到会话清理其任务列表。当 subagent 完成时,其详情视图保持打开。失败或您停止的 Subagents 离开列表。在 v2.1.208 之前,完成的 subagent 在完成时立即离开列表,其详情视图关闭。

792 792 

793要禁用所有后台任务功能,请将 `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` 环境变量设置为 `1`。请参阅 [Environment variables](/zh-CN/env-vars)。793要禁用所有后台任务功能,请将 `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` 环境变量设置为 `1`。请参阅 [Environment variables](/docs/zh-CN/env-vars)。

794 794 

795当 [`CLAUDE_CODE_FORK_SUBAGENT`](#fork-the-current-conversation) 设置为 `1` 时,每个 subagent 生成都在后台运行,frontmatter `background` 字段无效,因为 fork 模式从 `Agent` 工具中移除了 `run_in_background` 参数。`CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` 优先于 fork 模式,并将 subagent 生成保持在前台。795当 [`CLAUDE_CODE_FORK_SUBAGENT`](#fork-the-current-conversation) 设置为 `1` 时,每个 subagent 生成都在后台运行,frontmatter `background` 字段无效,因为 fork 模式从 `Agent` 工具中移除了 `run_in_background` 参数。`CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` 优先于 fork 模式,并将 subagent 生成保持在前台。

796 796 


798 Subagents 中的 API 错误798 Subagents 中的 API 错误

799</h3>799</h3>

800 800 

801{/* min-version: 2.1.199 */}从 v2.1.199 开始,subagent 的运行因 API 错误(例如使用限制或重复的服务器错误)而结束时,会向 Claude 报告该失败,而不是返回错误文本,就像它是 subagent 的发现一样。Claude 接收的内容取决于 subagent 运行的位置:801从 v2.1.199 开始,subagent 的运行因 API 错误(例如使用限制或重复的服务器错误)而结束时,会向 Claude 报告该失败,而不是返回错误文本,就像它是 subagent 的发现一样。Claude 接收的内容取决于 subagent 运行的位置:

802 802 

803* **前台**:如果速率限制、过载或服务器错误切断已经产生输出的 subagent,Agent 工具返回该部分输出,并注明 subagent 被切断且未完成其任务。{/* min-version: 2.1.200 */}未产生任何内容的 subagent,或其唯一输出是工具调用的 subagent,失败并出现 [`Agent terminated early due to an API error`](/zh-CN/errors#agent-terminated-early-due-to-an-api-error),后跟错误详情。在 v2.1.199 中,切断仅工具调用形状的速率限制、过载或服务器错误返回了仅包含切断注记的空部分结果。803* **前台**:如果速率限制、过载或服务器错误切断已经产生输出的 subagent,Agent 工具返回该部分输出,并注明 subagent 被切断且未完成其任务。未产生任何内容的 subagent,或其唯一输出是工具调用的 subagent,失败并出现 [`Agent terminated early due to an API error`](/docs/zh-CN/errors#agent-terminated-early-due-to-an-api-error),后跟错误详情。在 v2.1.199 中,切断仅工具调用形状的速率限制、过载或服务器错误返回了仅包含切断注记的空部分结果。

804* **后台**:subagent 被标记为失败,Claude 在其结束时接收的消息命名 API 错误并包括 subagent 的最后输出,所以部分工作不会丢失。804* **后台**:subagent 被标记为失败,Claude 在其结束时接收的消息命名 API 错误并包括 subagent 的最后输出,所以部分工作不会丢失。

805 805 

806一旦底层 API 错误清除,要求 Claude 重试任务或 [恢复 subagent](#resume-subagents)。806一旦底层 API 错误清除,要求 Claude 重试任务或 [恢复 subagent](#resume-subagents)。


835 当 subagents 完成时,它们的结果返回到您的主对话。运行许多 subagents,每个都返回详细结果,可能会消耗大量上下文。835 当 subagents 完成时,它们的结果返回到您的主对话。运行许多 subagents,每个都返回详细结果,可能会消耗大量上下文。

836</Warning>836</Warning>

837 837 

838对于需要持续并行性或超过您的 context window 的任务,[agent teams](/zh-CN/agent-teams) 为每个工作者提供自己的独立上下文。838对于需要持续并行性或超过您的 context window 的任务,[agent teams](/docs/zh-CN/agent-teams) 为每个工作者提供自己的独立上下文。

839 839 

840<h4 id="chain-subagents">840<h4 id="chain-subagents">

841 链接 subagents841 链接 subagents


864* 您想强制执行特定的工具限制或权限864* 您想强制执行特定的工具限制或权限

865* 工作是自包含的,可以返回摘要865* 工作是自包含的,可以返回摘要

866 866 

867当您想要可重用的提示或在主对话上下文中运行的工作流而不是隔离的 subagent 上下文时,请改为考虑 [Skills](/zh-CN/skills)。867当您想要可重用的提示或在主对话上下文中运行的工作流而不是隔离的 subagent 上下文时,请改为考虑 [Skills](/docs/zh-CN/skills)。

868 868 

869对于关于对话中已有内容的快速问题,使用 [`/btw`](/zh-CN/interactive-mode#side-questions-with-%2Fbtw) 而不是 subagent。它看到您的完整上下文但没有工具访问,答案被丢弃而不是添加到历史记录。869对于关于对话中已有内容的快速问题,使用 [`/btw`](/docs/zh-CN/interactive-mode#side-questions-with-%2Fbtw) 而不是 subagent。它看到您的完整上下文但没有工具访问,答案被丢弃而不是添加到历史记录。

870 870 

871<h3 id="spawn-nested-subagents">871<h3 id="spawn-nested-subagents">

872 生成嵌套 subagents872 生成嵌套 subagents

873</h3>873</h3>

874 874 

875{/* min-version: 2.1.172 */}从 Claude Code v2.1.172 开始,subagent 可以生成自己的 subagents。当委托的任务本身分裂成并行子任务时使用这个,例如审查者 subagent 为每个发现分派一个验证者,所以中间输出永远不会到达您的主对话。只有顶级 subagent 的摘要返回给您。875从 Claude Code v2.1.172 开始,subagent 可以生成自己的 subagents。当委托的任务本身分裂成并行子任务时使用这个,例如审查者 subagent 为每个发现分派一个验证者,所以中间输出永远不会到达您的主对话。只有顶级 subagent 的摘要返回给您。

876 876 

877嵌套 subagent 的配置方式与顶级 subagent 相同,并从相同的 [scopes](#choose-the-subagent-scope) 解析。877嵌套 subagent 的配置方式与顶级 subagent 相同,并从相同的 [scopes](#choose-the-subagent-scope) 解析。

878 878 

879subagent 面板在提示输入下方显示完整的树:每行显示一个 `(+N)` 后代计数,{/* min-version: 2.1.193 */}从 v2.1.193 开始,打开一行显示该 subagent 的兄弟和直接子代,以及返回到 `main` 的路径。879subagent 面板在提示输入下方显示完整的树:每行显示一个 `(+N)` 后代计数,从 v2.1.193 开始,打开一行显示该 subagent 的兄弟和直接子代,以及返回到 `main` 的路径。

880 880 

881深度计算为主对话下方的 subagent 级别数,无论每个级别是否在 [前台或后台](#run-subagents-in-foreground-or-background) 运行。深度为五的 subagent 不接收 Agent 工具,无法进一步生成。限制是固定的且不可配置。881深度计算为主对话下方的 subagent 级别数,无论每个级别是否在 [前台或后台](#run-subagents-in-foreground-or-background) 运行。深度为五的 subagent 不接收 Agent 工具,无法进一步生成。限制是固定的且不可配置。

882 882 


900 900 

901* **系统提示**:代理自己的提示加上 Claude Code 附加的环境详情,而不是完整的 Claude Code 系统提示。自定义 subagents 在 [markdown 正文](#write-subagent-files) 或 `prompt` 字段中定义它们。内置代理有预定义的提示。901* **系统提示**:代理自己的提示加上 Claude Code 附加的环境详情,而不是完整的 Claude Code 系统提示。自定义 subagents 在 [markdown 正文](#write-subagent-files) 或 `prompt` 字段中定义它们。内置代理有预定义的提示。

902* **任务消息**:Claude 在移交工作时编写的委托提示。902* **任务消息**:Claude 在移交工作时编写的委托提示。

903* **CLAUDE.md 和内存**:主对话加载的 [内存层次结构](/zh-CN/memory#how-claude-md-files-load) 的每个级别,包括 `~/.claude/CLAUDE.md`、项目规则、`CLAUDE.local.md` 和托管策略文件。内置的 Explore 和 Plan 代理跳过这个。903* **CLAUDE.md 和内存**:主对话加载的 [内存层次结构](/docs/zh-CN/memory#how-claude-md-files-load) 的每个级别,包括 `~/.claude/CLAUDE.md`、项目规则、`CLAUDE.local.md` 和托管策略文件。内置的 Explore 和 Plan 代理跳过这个。

904* **Git 状态**:在父会话开始时拍摄的快照。当工作目录不是 Git 存储库或 [`includeGitInstructions`](/zh-CN/settings#available-settings) 为 `false` 时不存在。Explore 和 Plan 无论如何都跳过它。904* **Git 状态**:在父会话开始时拍摄的快照。当工作目录不是 Git 存储库或 [`includeGitInstructions`](/docs/zh-CN/settings#available-settings) 为 `false` 时不存在。Explore 和 Plan 无论如何都跳过它。

905* **预加载的技能**:代理的 [`skills` 字段](#preload-skills-into-subagents) 中命名的任何技能的完整内容。内置代理不预加载技能。905* **预加载的技能**:代理的 [`skills` 字段](#preload-skills-into-subagents) 中命名的任何技能的完整内容。内置代理不预加载技能。

906* **兄弟名单**:系统提醒,列出 `main` 和会话中的每个其他命名代理,每个都是 [`SendMessage`](#resume-subagents) 的有效 `to` 值。{/* min-version: 2.1.206 */}需要 Claude Code v2.1.206 或更高版本。名单仅在 subagent 的工具包括 `SendMessage` 且至少有一个其他代理有名称时出现,无论 Claude 在生成时命名它还是它作为 [agent team](/zh-CN/agent-teams) 队友运行。它是 subagent 启动时拍摄的快照,所以稍后命名的代理不会出现。906* **兄弟名单**:系统提醒,列出 `main` 和会话中的每个其他命名代理,每个都是 [`SendMessage`](#resume-subagents) 的有效 `to` 值。需要 Claude Code v2.1.206 或更高版本。名单仅在 subagent 的工具包括 `SendMessage` 且至少有一个其他代理有名称时出现,无论 Claude 在生成时命名它还是它作为 [agent team](/docs/zh-CN/agent-teams) 队友运行。它是 subagent 启动时拍摄的快照,所以稍后命名的代理不会出现。

907 907 

908Explore 和 Plan 是仅有的省略 CLAUDE.md 和 git 状态的 subagents。没有 frontmatter 字段或按代理设置来改变哪些代理跳过它们。908Explore 和 Plan 是仅有的省略 CLAUDE.md 和 git 状态的 subagents。没有 frontmatter 字段或按代理设置来改变哪些代理跳过它们。

909 909 


919 919 

920当 subagent 完成时,Claude 接收其代理 ID。内置的 Explore 和 Plan 代理是一次性的,不返回代理 ID,所以它们无法恢复;当您需要继续工作时,使用 `general-purpose` 或自定义 subagent。920当 subagent 完成时,Claude 接收其代理 ID。内置的 Explore 和 Plan 代理是一次性的,不返回代理 ID,所以它们无法恢复;当您需要继续工作时,使用 `general-purpose` 或自定义 subagent。

921 921 

922Claude 使用 `SendMessage` 工具,将代理的 ID 或名称作为 `to` 字段来恢复它。`SendMessage` 不需要启用 [agent teams](/zh-CN/agent-teams);只有结构化的团队协议消息,例如 `shutdown_request` 和 `plan_approval_response`,才需要启用。922Claude 使用 `SendMessage` 工具,将代理的 ID 或名称作为 `to` 字段来恢复它。`SendMessage` 不需要启用 [agent teams](/docs/zh-CN/agent-teams);只有结构化的团队协议消息,例如 `shutdown_request` 和 `plan_approval_response`,才需要启用。

923 923 

924要恢复 subagent,要求 Claude 继续之前的工作:924要恢复 subagent,要求 Claude 继续之前的工作:

925 925 


933 933 

934完成的 subagent 如果接收 `SendMessage`,会在后台自动恢复,无需新的 `Agent` 调用。同样适用于 Claude 用 `TaskStop` 工具停止的 subagent。934完成的 subagent 如果接收 `SendMessage`,会在后台自动恢复,无需新的 `Agent` 调用。同样适用于 Claude 用 `TaskStop` 工具停止的 subagent。

935 935 

936{/* min-version: 2.1.191 */}从 v2.1.191 开始,您自己停止的 subagent,使用 `/tasks` 中的 `x` 或 SDK `stop_task` 请求,不会自动恢复。`SendMessage` 调用返回拒绝,告诉 Claude 代理已被取消。在 subagent 面板中输入到该 subagent 的转录以自己恢复它,这会清除停止,以便稍后 `SendMessage` 调用可以再次自动恢复它。936从 v2.1.191 开始,您自己停止的 subagent,使用 `/tasks` 中的 `x` 或 SDK `stop_task` 请求,不会自动恢复。`SendMessage` 调用返回拒绝,告诉 Claude 代理已被取消。在 subagent 面板中输入到该 subagent 的转录以自己恢复它,这会清除停止,以便稍后 `SendMessage` 调用可以再次自动恢复它。

937 937 

938恢复在相同 ID 下启动代理的新运行,所以已经失败或完成的 subagent 在任务列表和 Agent SDK 的任务事件中再次显示为运行。在 v2.1.205 之前,它在恢复的运行工作时保持显示其早期的失败或完成状态。938恢复在相同 ID 下启动代理的新运行,所以已经失败或完成的 subagent 在任务列表和 Agent SDK 的任务事件中再次显示为运行。在 v2.1.205 之前,它在恢复的运行工作时保持显示其早期的失败或完成状态。

939 939 

940{/* min-version: 2.1.199 */}从 v2.1.199 开始,`SendMessage` 检查名称是否仍然指向它在对话中早期到达的同一代理。如果较新的代理已经采用了该名称,例如重新生成的后台代理重新使用了它,Claude Code 会拒绝发送,而不是将其传递给错误的代理,错误会报告该名称现在到达的代理,以便 Claude 可以重新定向。要在它仍在运行时到达早期的代理,Claude 通过其生成结果中的代理 ID 来寻址它。检查的范围是当前对话,并在 `/clear` 时重置。940从 v2.1.199 开始,`SendMessage` 检查名称是否仍然指向它在对话中早期到达的同一代理。如果较新的代理已经采用了该名称,例如重新生成的后台代理重新使用了它,Claude Code 会拒绝发送,而不是将其传递给错误的代理,错误会报告该名称现在到达的代理,以便 Claude 可以重新定向。要在它仍在运行时到达早期的代理,Claude 通过其生成结果中的代理 ID 来寻址它。检查的范围是当前对话,并在 `/clear` 时重置。

941 941 

942{/* min-version: 2.1.198 */}从 v2.1.198 开始,subagent 将来自启动它的代理的消息视为正常任务方向,包括中途任务方向更正,并在其自己的权限设置内对其进行操作。无论谁发送消息,两个限制仍然成立:来自任何代理的消息都不计为您对待处理权限提示的批准,任何代理消息都无法改变 subagent 的权限设置、`CLAUDE.md` 或配置。只有权限系统或您自己的消息可以授予批准。942从 v2.1.198 开始,subagent 将来自启动它的代理的消息视为正常任务方向,包括中途任务方向更正,并在其自己的权限设置内对其进行操作。无论谁发送消息,两个限制仍然成立:来自任何代理的消息都不计为您对待处理权限提示的批准,任何代理消息都无法改变 subagent 的权限设置、`CLAUDE.md` 或配置。只有权限系统或您自己的消息可以授予批准。

943 943 

944您也可以要求 Claude 提供代理 ID,如果您想明确引用它,或在 `~/.claude/projects/{project}/{sessionId}/subagents/` 的转录文件中找到 ID。每个转录存储为 `agent-{agentId}.jsonl`。944您也可以要求 Claude 提供代理 ID,如果您想明确引用它,或在 `~/.claude/projects/{project}/{sessionId}/subagents/` 的转录文件中找到 ID。每个转录存储为 `agent-{agentId}.jsonl`。

945 945 


953 自动压缩953 自动压缩

954</h4>954</h4>

955 955 

956Subagents 支持使用与主对话相同的逻辑进行自动压缩。压缩在相同条件下触发,`CLAUDE_AUTOCOMPACT_PCT_OVERRIDE` 也适用于 subagents。有关何时覆盖生效的信息,请参阅 [environment variables](/zh-CN/env-vars)。956Subagents 支持使用与主对话相同的逻辑进行自动压缩。压缩在相同条件下触发,`CLAUDE_AUTOCOMPACT_PCT_OVERRIDE` 也适用于 subagents。有关何时覆盖生效的信息,请参阅 [environment variables](/docs/zh-CN/env-vars)。

957 957 

958压缩事件记录在 subagent 转录文件中:958压缩事件记录在 subagent 转录文件中:

959 959 


975</h2>975</h2>

976 976 

977<Note>977<Note>

978 分叉 subagents 需要 Claude Code v2.1.117 或更高版本。{/* min-version: 2.1.161 */}从 v2.1.161 开始,`/fork` 命令默认启用;在早期版本中,它需要将 [`CLAUDE_CODE_FORK_SUBAGENT`](/zh-CN/env-vars) 环境变量设置为 `1`。让 Claude 本身生成分叉是实验性的,可能在未来版本中更改。此功能也可以在交互式会话中启用,作为分阶段推出的一部分。978 分叉 subagents 需要 Claude Code v2.1.117 或更高版本。从 v2.1.161 开始,`/fork` 命令默认启用;在早期版本中,它需要将 [`CLAUDE_CODE_FORK_SUBAGENT`](/docs/zh-CN/env-vars) 环境变量设置为 `1`。让 Claude 本身生成分叉是实验性的,可能在未来版本中更改。此功能也可以在交互式会话中启用,作为分阶段推出的一部分。

979</Note>979</Note>

980 980 

981分叉是一个 subagent,它继承到目前为止的整个对话,而不是从头开始。这消除了 subagents 通常提供的输入隔离:分叉看到与主会话相同的系统提示、工具、模型和消息历史,因此您可以将其交给一个辅助任务而无需重新解释情况。分叉自己的工具调用仍然保持在您的对话之外,只有其最终结果返回,因此您的主 context window 保持干净。当命名 subagent 需要太多背景才能有用时,或当您想从相同的起点并行尝试多种方法时,使用分叉。981分叉是一个 subagent,它继承到目前为止的整个对话,而不是从头开始。这消除了 subagents 通常提供的输入隔离:分叉看到与主会话相同的系统提示、工具、模型和消息历史,因此您可以将其交给一个辅助任务而无需重新解释情况。分叉自己的工具调用仍然保持在您的对话之外,只有其最终结果返回,因此您的主 context window 保持干净。当命名 subagent 需要太多背景才能有用时,或当您想从相同的起点并行尝试多种方法时,使用分叉。

982 982 

983要控制分叉模式而不管分阶段推出,将 [`CLAUDE_CODE_FORK_SUBAGENT`](/zh-CN/env-vars) 设置为 `1` 以显式启用它,或设置为 `0` 以禁用它。该变量在交互模式以及通过 SDK 或 `claude -p` 中被遵守。983要控制分叉模式而不管分阶段推出,将 [`CLAUDE_CODE_FORK_SUBAGENT`](/docs/zh-CN/env-vars) 设置为 `1` 以显式启用它,或设置为 `0` 以禁用它。该变量在交互模式以及通过 SDK 或 `claude -p` 中被遵守。

984 984 

985启用分叉模式以两种方式改变 Claude Code:985启用分叉模式以两种方式改变 Claude Code:

986 986 


1008| `x` | 关闭完成的分叉或停止运行中的分叉 |1008| `x` | 关闭完成的分叉或停止运行中的分叉 |

1009| `Esc` | 将焦点返回到提示输入 |1009| `Esc` | 将焦点返回到提示输入 |

1010 1010 

1011打开分叉或 subagent 的转录后,后续消息和 [skills](/zh-CN/skills) 会发送到该代理,但内置命令仍在您的主对话中运行。{/* min-version: 2.1.199 */}从 v2.1.199 开始,在该视图中键入 `/model` 或 `/fast` 会显示一条通知,说明它改变主对话的模型或快速模式,而不是所查看代理的,而不是静默运行它。1011打开分叉或 subagent 的转录后,后续消息和 [skills](/docs/zh-CN/skills) 会发送到该代理,但内置命令仍在您的主对话中运行。从 v2.1.199 开始,在该视图中键入 `/model` 或 `/fast` 会显示一条通知,说明它改变主对话的模型或快速模式,而不是所查看代理的,而不是静默运行它。

1012 1012 

1013<h3 id="how-forks-differ-from-named-subagents">1013<h3 id="how-forks-differ-from-named-subagents">

1014 分叉与命名 subagents 的区别1014 分叉与命名 subagents 的区别


1024| 权限 | 提示在您的终端中出现 | [提示在后台运行时在您的主会话中出现](#run-subagents-in-foreground-or-background) |1024| 权限 | 提示在您的终端中出现 | [提示在后台运行时在您的主会话中出现](#run-subagents-in-foreground-or-background) |

1025| Prompt cache | 与主会话共享 | 单独的缓存 |1025| Prompt cache | 与主会话共享 | 单独的缓存 |

1026 1026 

1027因为分叉的系统提示和工具定义与父级相同,其第一个请求重用父级的 [prompt cache](/zh-CN/prompt-caching#subagents-and-the-cache)。这使得分叉比为需要相同上下文的任务生成新 subagent 更便宜。1027因为分叉的系统提示和工具定义与父级相同,其第一个请求重用父级的 [prompt cache](/docs/zh-CN/prompt-caching#subagents-and-the-cache)。这使得分叉比为需要相同上下文的任务生成新 subagent 更便宜。

1028 1028 

1029当 Claude 通过 Agent 工具生成分叉时,它可以传递 `isolation: "worktree"` 以便分叉的文件编辑被写入单独的 git worktree 而不是您的检出。1029当 Claude 通过 Agent 工具生成分叉时,它可以传递 `isolation: "worktree"` 以便分叉的文件编辑被写入单独的 git worktree 而不是您的检出。

1030 1030 


1032 限制1032 限制

1033</h3>1033</h3>

1034 1034 

1035设置 `CLAUDE_CODE_FORK_SUBAGENT=1` 在交互式会话、[non-interactive mode](/zh-CN/headless) 和 Agent SDK 中启用分叉模式;将其设置为 `0` 会在所有地方禁用分叉模式,包括任何服务器端推出。分叉无法生成进一步的分叉。1035设置 `CLAUDE_CODE_FORK_SUBAGENT=1` 在交互式会话、[non-interactive mode](/docs/zh-CN/headless) 和 Agent SDK 中启用分叉模式;将其设置为 `0` 会在所有地方禁用分叉模式,包括任何服务器端推出。分叉无法生成进一步的分叉。

1036 1036 

1037<h2 id="example-subagents">1037<h2 id="example-subagents">

1038 示例 subagents1038 示例 subagents


1195You cannot modify data. If asked to INSERT, UPDATE, DELETE, or modify schema, explain that you only have read access.1195You cannot modify data. If asked to INSERT, UPDATE, DELETE, or modify schema, explain that you only have read access.

1196```1196```

1197 1197 

1198Claude Code [通过 stdin 将 hook 输入作为 JSON 传递](/zh-CN/hooks#pretooluse-input) 给 hook 命令。验证脚本读取此 JSON,提取正在执行的命令,并根据 SQL 写入操作列表检查它。如果检测到写入操作,脚本 [以代码 2 退出](/zh-CN/hooks#exit-code-2-behavior-per-event) 以阻止执行,并通过 stderr 向 Claude 返回错误消息。1198Claude Code [通过 stdin 将 hook 输入作为 JSON 传递](/docs/zh-CN/hooks#pretooluse-input) 给 hook 命令。验证脚本读取此 JSON,提取正在执行的命令,并根据 SQL 写入操作列表检查它。如果检测到写入操作,脚本 [以代码 2 退出](/docs/zh-CN/hooks#exit-code-2-behavior-per-event) 以阻止执行,并通过 stderr 向 Claude 返回错误消息。

1199 1199 

1200在您的项目中的任何位置创建验证脚本。路径必须与您的 hook 配置中的 `command` 字段匹配:1200在您的项目中的任何位置创建验证脚本。路径必须与您的 hook 配置中的 `command` 字段匹配:

1201 1201 


1228chmod +x ./scripts/validate-readonly-query.sh1228chmod +x ./scripts/validate-readonly-query.sh

1229```1229```

1230 1230 

1231在 Windows 上,用 PowerShell 编写验证脚本,并在 hook 条目中添加 `shell: powershell`。请参阅 [在 PowerShell 中运行 hooks](/zh-CN/hooks#windows-powershell-tool)。1231在 Windows 上,用 PowerShell 编写验证脚本,并在 hook 条目中添加 `shell: powershell`。请参阅 [在 PowerShell 中运行 hooks](/docs/zh-CN/hooks#windows-powershell-tool)。

1232 1232 

1233Hook 通过 stdin 接收 JSON,Bash 命令在 `tool_input.command` 中。退出代码 2 阻止操作并将错误消息反馈给 Claude。有关退出代码和输出的详细信息,请参阅 [Hooks](/zh-CN/hooks#exit-code-output),有关完整的输入架构,请参阅 [Hook input](/zh-CN/hooks#pretooluse-input)。1233Hook 通过 stdin 接收 JSON,Bash 命令在 `tool_input.command` 中。退出代码 2 阻止操作并将错误消息反馈给 Claude。有关退出代码和输出的详细信息,请参阅 [Hooks](/docs/zh-CN/hooks#exit-code-output),有关完整的输入架构,请参阅 [Hook input](/docs/zh-CN/hooks#pretooluse-input)。

1234 1234 

1235<h2 id="next-steps">1235<h2 id="next-steps">

1236 后续步骤1236 后续步骤


1238 1238 

1239现在您了解了 subagents,探索这些相关功能:1239现在您了解了 subagents,探索这些相关功能:

1240 1240 

1241* [使用 plugins 分发 subagents](/zh-CN/plugins) 以在团队或项目中共享 subagents1241* [使用 plugins 分发 subagents](/docs/zh-CN/plugins) 以在团队或项目中共享 subagents

1242* [以编程方式运行 Claude Code](/zh-CN/headless),使用 Agent SDK 进行 CI/CD 和自动化1242* [以编程方式运行 Claude Code](/docs/zh-CN/headless),使用 Agent SDK 进行 CI/CD 和自动化

1243* [使用 MCP 服务器](/zh-CN/mcp) 为 subagents 提供对外部工具和数据的访问1243* [使用 MCP 服务器](/docs/zh-CN/mcp) 为 subagents 提供对外部工具和数据的访问

tools-reference.md +77 −77

Details

6 6 

7> Claude Code 可以使用的工具的完整参考,包括权限要求和每个工具的行为。7> Claude Code 可以使用的工具的完整参考,包括权限要求和每个工具的行为。

8 8 

9Claude Code 可以访问一组内置工具,帮助它理解和修改您的代码库。工具名称是您在[权限规则](/zh-CN/permissions#tool-specific-permission-rules)、[subagent 工具列表](/zh-CN/sub-agents)和 [hook 匹配器](/zh-CN/hooks)中使用的确切字符串。要完全禁用某个工具,请将其名称添加到[权限设置](/zh-CN/permissions#tool-specific-permission-rules)中的 `deny` 数组。9Claude Code 可以访问一组内置工具,帮助它理解和修改您的代码库。工具名称是您在[权限规则](/docs/zh-CN/permissions#tool-specific-permission-rules)、[subagent 工具列表](/docs/zh-CN/sub-agents)和 [hook 匹配器](/docs/zh-CN/hooks)中使用的确切字符串。要完全禁用某个工具,请将其名称添加到[权限设置](/docs/zh-CN/permissions#tool-specific-permission-rules)中的 `deny` 数组。

10 10 

11要添加自定义工具,请连接一个 [MCP server](/zh-CN/mcp)。要使用可重用的基于提示的工作流扩展 Claude,请编写一个 [skill](/zh-CN/skills),它通过现有的 `Skill` 工具运行,而不是添加新的工具条目。11要添加自定义工具,请连接一个 [MCP server](/docs/zh-CN/mcp)。要使用可重用的基于提示的工作流扩展 Claude,请编写一个 [skill](/docs/zh-CN/skills),它通过现有的 `Skill` 工具运行,而不是添加新的工具条目。

12 12 

13Permission required 列显示该工具在默认权限模式下是否对工作目录内的路径进行提示。标记为"否"的文件访问工具,包括 `Read`、`Grep` 和 `Glob`,仍然会对[工作目录和其他目录](/zh-CN/permissions#working-directories)之外的路径进行提示。`Bash` 标记为"是",但运行一组内置的[只读命令](/zh-CN/permissions#read-only-commands)而无需提示。13Permission required 列显示该工具在默认权限模式下是否对工作目录内的路径进行提示。标记为"否"的文件访问工具,包括 `Read`、`Grep` 和 `Glob`,仍然会对[工作目录和其他目录](/docs/zh-CN/permissions#working-directories)之外的路径进行提示。`Bash` 标记为"是",但运行一组内置的[只读命令](/docs/zh-CN/permissions#read-only-commands)而无需提示。

14 14 

15| 工具 | 描述 | 需要权限 |15| 工具 | 描述 | 需要权限 |

16| :--------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--- |16| :--------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--- |

17| `Agent` | 生成一个具有自己 context window 的 [subagent](/zh-CN/sub-agents),用于处理任务。请参阅 [Agent 工具行为](#agent-tool-behavior) | 否 |17| `Agent` | 生成一个具有自己 context window 的 [subagent](/docs/zh-CN/sub-agents),用于处理任务。请参阅 [Agent 工具行为](#agent-tool-behavior) | 否 |

18| `Artifact` | 将 HTML 或 Markdown 文件发布为 [artifact](/zh-CN/artifacts):一个私有的、交互式的 claude.ai 页面。您可以与公开链接共享它,或在 Team 和 Enterprise 计划上在您的组织内共享,其中公开共享需要所有者[启用它](/zh-CN/artifacts#control-public-sharing)。{/* plan-availability: feature=artifacts plans=pro,max,team,enterprise providers=anthropic */}需要 Pro、Max、Team 或 Enterprise 计划和 `/login` 身份验证;请参阅[可用性](/zh-CN/artifacts#availability) | 是 |18| `Artifact` | 将 HTML 或 Markdown 文件发布为 [artifact](/docs/zh-CN/artifacts):一个私有的、交互式的 claude.ai 页面。您可以与公开链接共享它,或在 Team 和 Enterprise 计划上在您的组织内共享,其中公开共享需要所有者[启用它](/docs/zh-CN/artifacts#control-public-sharing)。需要 Pro、Max、Team 或 Enterprise 计划和 `/login` 身份验证;请参阅[可用性](/docs/zh-CN/artifacts#availability) | 是 |

19| `AskUserQuestion` | 提出多选问题以收集需求或澄清歧义。{/* min-version: 2.1.200 */}问题保持打开状态直到您回答:默认情况下没有空闲超时。要让空闲对话框自动继续,请将 [`askUserQuestionTimeout`](/zh-CN/settings#available-settings) 设置设置为 `60s`、`5m` 或 `10m`,可以在您的用户 `settings.json` 中或从 `/config` 中的**问题自动继续超时**行进行设置。一旦经过所选的空闲时间且没有输入,对话框会自动关闭:它会提交您已选择的任何选项,并告诉 Claude 您可能离开了键盘,因此 Claude 会根据自己的判断继续进行,稍后可以重新提问。最后 20 秒会出现倒计时。任何按键都会重启计时器,对于报告焦点的终端上的焦点窗口也是如此。超时仅适用于 `AskUserQuestion` 的多选问题;权限提示(包括计划批准)在空闲时永远不会自动解决。在 v2.1.198 和 v2.1.199 中,对话框默认在 60 秒空闲后自动继续,[`CLAUDE_AFK_TIMEOUT_MS`](/zh-CN/env-vars#variables) 是改变这一点的唯一方式 | 否 |19| `AskUserQuestion` | 提出多选问题以收集需求或澄清歧义。问题保持打开状态直到您回答:默认情况下没有空闲超时。要让空闲对话框自动继续,请将 [`askUserQuestionTimeout`](/docs/zh-CN/settings#available-settings) 设置设置为 `60s`、`5m` 或 `10m`,可以在您的用户 `settings.json` 中或从 `/config` 中的**问题自动继续超时**行进行设置。一旦经过所选的空闲时间且没有输入,对话框会自动关闭:它会提交您已选择的任何选项,并告诉 Claude 您可能离开了键盘,因此 Claude 会根据自己的判断继续进行,稍后可以重新提问。最后 20 秒会出现倒计时。任何按键都会重启计时器,对于报告焦点的终端上的焦点窗口也是如此。超时仅适用于 `AskUserQuestion` 的多选问题;权限提示(包括计划批准)在空闲时永远不会自动解决。在 v2.1.198 和 v2.1.199 中,对话框默认在 60 秒空闲后自动继续,[`CLAUDE_AFK_TIMEOUT_MS`](/docs/zh-CN/env-vars#variables) 是改变这一点的唯一方式 | 否 |

20| `Bash` | 在您的环境中执行 shell 命令。请参阅 [Bash 工具行为](#bash-tool-behavior) | 是 |20| `Bash` | 在您的环境中执行 shell 命令。请参阅 [Bash 工具行为](#bash-tool-behavior) | 是 |

21| `CronCreate` | 在当前会话中安排定期或一次性提示。任务是会话范围的,在 `--resume` 或 `--continue` 时如果未过期则会恢复。请参阅[计划任务](/zh-CN/scheduled-tasks) | 否 |21| `CronCreate` | 在当前会话中安排定期或一次性提示。任务是会话范围的,在 `--resume` 或 `--continue` 时如果未过期则会恢复。请参阅[计划任务](/docs/zh-CN/scheduled-tasks) | 否 |

22| `CronDelete` | 按 ID 取消计划任务 | 否 |22| `CronDelete` | 按 ID 取消计划任务 | 否 |

23| `CronList` | 列出会话中的所有计划任务 | 否 |23| `CronList` | 列出会话中的所有计划任务 | 否 |

24| `Edit` | 对特定文件进行有针对性的编辑。请参阅 [Edit 工具行为](#edit-tool-behavior) | 是 |24| `Edit` | 对特定文件进行有针对性的编辑。请参阅 [Edit 工具行为](#edit-tool-behavior) | 是 |

25| `EnterPlanMode` | 切换到 Plan Mode 以在编码前设计方法 | 否 |25| `EnterPlanMode` | 切换到 Plan Mode 以在编码前设计方法 | 否 |

26| `EnterWorktree` | 创建一个隔离的 [git worktree](/zh-CN/worktrees) 并切换到它。传递 `path` 以切换到现有 worktree,而不是创建新的。{/* min-version: 2.1.203 */}首次进入时,目标可能是当前存储库的 worktree,或在多存储库工作区中,是嵌套在其中的存储库的 worktree。在 v2.1.203 之前,嵌套存储库的 worktree 被拒绝。{/* min-version: 2.1.206 */}`.claude/worktrees/` 之外的 `path` 会在进入前提示您的批准,因为它会移动会话的工作目录和对该位置的写入访问权限。新 worktree 创建和 `.claude/worktrees/` 下的路径不会提示。在 v2.1.206 之前,Claude 进入 `.claude/worktrees/` 之外的路径而无需提示。从 worktree 会话内,或从具有固定工作目录的 subagent(例如 [`isolation: worktree`](/zh-CN/sub-agents#supported-frontmatter-fields))中,仅 `path` 形式可用,目标必须在会话存储库的 `.claude/worktrees/` 下 | 是 |26| `EnterWorktree` | 创建一个隔离的 [git worktree](/docs/zh-CN/worktrees) 并切换到它。传递 `path` 以切换到现有 worktree,而不是创建新的。首次进入时,目标可能是当前存储库的 worktree,或在多存储库工作区中,是嵌套在其中的存储库的 worktree。在 v2.1.203 之前,嵌套存储库的 worktree 被拒绝。`.claude/worktrees/` 之外的 `path` 会在进入前提示您的批准,因为它会移动会话的工作目录和对该位置的写入访问权限。新 worktree 创建和 `.claude/worktrees/` 下的路径不会提示。在 v2.1.206 之前,Claude 进入 `.claude/worktrees/` 之外的路径而无需提示。从 worktree 会话内,或从具有固定工作目录的 subagent(例如 [`isolation: worktree`](/docs/zh-CN/sub-agents#supported-frontmatter-fields))中,仅 `path` 形式可用,目标必须在会话存储库的 `.claude/worktrees/` 下 | 是 |

27| `ExitPlanMode` | 提出计划以供批准并退出 Plan Mode | 是 |27| `ExitPlanMode` | 提出计划以供批准并退出 Plan Mode | 是 |

28| `ExitWorktree` | 退出 worktree 会话并返回到原始目录。不适用于已在自己的工作目录中运行的 subagents,例如使用 [`isolation: worktree`](/zh-CN/sub-agents#supported-frontmatter-fields) | 否 |28| `ExitWorktree` | 退出 worktree 会话并返回到原始目录。不适用于已在自己的工作目录中运行的 subagents,例如使用 [`isolation: worktree`](/docs/zh-CN/sub-agents#supported-frontmatter-fields) | 否 |

29| `Glob` | 基于模式匹配查找文件。请参阅 [Glob 工具行为](#glob-tool-behavior) | 否 |29| `Glob` | 基于模式匹配查找文件。请参阅 [Glob 工具行为](#glob-tool-behavior) | 否 |

30| `Grep` | 在文件内容中搜索模式。请参阅 [Grep 工具行为](#grep-tool-behavior) | 否 |30| `Grep` | 在文件内容中搜索模式。请参阅 [Grep 工具行为](#grep-tool-behavior) | 否 |

31| `ListMcpResourcesTool` | 列出连接的 [MCP servers](/zh-CN/mcp) 公开的资源 | 否 |31| `ListMcpResourcesTool` | 列出连接的 [MCP servers](/docs/zh-CN/mcp) 公开的资源 | 否 |

32| `LSP` | 通过语言服务器进行代码智能:跳转到定义、查找引用、报告类型错误和警告。请参阅 [LSP 工具行为](#lsp-tool-behavior) | 否 |32| `LSP` | 通过语言服务器进行代码智能:跳转到定义、查找引用、报告类型错误和警告。请参阅 [LSP 工具行为](#lsp-tool-behavior) | 否 |

33| `Monitor` | 在后台运行命令并将每个输出行反馈给 Claude,以便它可以对日志条目、文件更改或轮询状态做出反应。还可以打开 WebSocket 并将每条传入消息视为事件。请参阅 [Monitor 工具](#monitor-tool) | 是 |33| `Monitor` | 在后台运行命令并将每个输出行反馈给 Claude,以便它可以对日志条目、文件更改或轮询状态做出反应。还可以打开 WebSocket 并将每条传入消息视为事件。请参阅 [Monitor 工具](#monitor-tool) | 是 |

34| `NotebookEdit` | 修改 Jupyter notebook 单元格。请参阅 [NotebookEdit 工具行为](#notebookedit-tool-behavior) | 是 |34| `NotebookEdit` | 修改 Jupyter notebook 单元格。请参阅 [NotebookEdit 工具行为](#notebookedit-tool-behavior) | 是 |

35| `PowerShell` | 本地执行 PowerShell 命令。请参阅 [PowerShell 工具](#powershell-tool)了解可用性 | 是 |35| `PowerShell` | 本地执行 PowerShell 命令。请参阅 [PowerShell 工具](#powershell-tool)了解可用性 | 是 |

36| `PushNotification` | 发送桌面通知,以及当 [Remote Control](/zh-CN/remote-control) 已连接时发送手机推送,以便长时间运行的任务或[计划任务](/zh-CN/scheduled-tasks)可以在您离开时联系您。{/* plan-availability: feature=push-notifications providers=anthropic */}推送传递通过 Anthropic 托管的基础设施运行,该基础设施无法从 Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry 访问 | 否 |36| `PushNotification` | 发送桌面通知,以及当 [Remote Control](/docs/zh-CN/remote-control) 已连接时发送手机推送,以便长时间运行的任务或[计划任务](/docs/zh-CN/scheduled-tasks)可以在您离开时联系您。推送传递通过 Anthropic 托管的基础设施运行,该基础设施无法从 Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry 访问 | 否 |

37| `Read` | 读取文件内容。请参阅 [Read 工具行为](#read-tool-behavior) | 否 |37| `Read` | 读取文件内容。请参阅 [Read 工具行为](#read-tool-behavior) | 否 |

38| `ReadMcpResourceTool` | 按 URI 读取特定 MCP 资源 | 否 |38| `ReadMcpResourceTool` | 按 URI 读取特定 MCP 资源 | 否 |

39| `RemoteTrigger` | 在 claude.ai 上创建、更新、运行和列出 [Routines](/zh-CN/routines)。支持 `/schedule` 命令。{/* plan-availability: feature=routines plans=pro,max,team,enterprise providers=anthropic */}Routines 存在于 claude.ai 上,需要 Pro、Max、Team 或 Enterprise 计划,因此此工具无法从 Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry 访问 | 否 |39| `RemoteTrigger` | 在 claude.ai 上创建、更新、运行和列出 [Routines](/docs/zh-CN/routines)。支持 `/schedule` 命令。Routines 存在于 claude.ai 上,需要 Pro、Max、Team 或 Enterprise 计划,因此此工具无法从 Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry 访问 | 否 |

40| `ReportFindings` | 将代码审查发现报告为结构化列表,每个发现包含文件、摘要和失败场景,以便 Claude Code 可以呈现它们而不是将其打印为文本。当活跃的代码审查指令告诉它时,Claude 会调用它。{/* min-version: 2.1.196 */}需要 Claude Code v2.1.196 或更高版本。{/* min-version: 2.1.199 */}从 v2.1.199 起,发现还可以携带可选的 `category` slug,例如 `correctness` 或 `test-coverage`,显示在呈现列表中的文件位置旁边 | 否 |40| `ReportFindings` | 将代码审查发现报告为结构化列表,每个发现包含文件、摘要和失败场景,以便 Claude Code 可以呈现它们而不是将其打印为文本。当活跃的代码审查指令告诉它时,Claude 会调用它。需要 Claude Code v2.1.196 或更高版本。从 v2.1.199 起,发现还可以携带可选的 `category` slug,例如 `correctness` 或 `test-coverage`,显示在呈现列表中的文件位置旁边 | 否 |

41| `ScheduleWakeup` | 重新安排 [self-paced `/loop`](/zh-CN/scheduled-tasks#let-claude-choose-the-interval) 的下一次迭代。Claude 在每次迭代结束时调用此工具以选择下一次运行的时间,范围在一分钟到一小时之间;您不需要直接调用它。要结束循环,Claude 会调用它并设置 `stop: true`,这会取消待处理的唤醒。{/* min-version: 2.1.202 */}`stop` 字段需要 Claude Code v2.1.202 或更高版本。待处理的唤醒显示在 [Stop hook input](/zh-CN/hooks#stop-input) 中的 `session_crons` 中。{/* plan-availability: feature=loop-dynamic providers=anthropic */}在 Amazon Bedrock、Claude Platform on AWS、Google Cloud 的 Agent Platform 或 Microsoft Foundry 上不可用,其中没有间隔的 `/loop` 提示按固定时间表运行 | 否 |41| `ScheduleWakeup` | 重新安排 [self-paced `/loop`](/docs/zh-CN/scheduled-tasks#let-claude-choose-the-interval) 的下一次迭代。Claude 在每次迭代结束时调用此工具以选择下一次运行的时间,范围在一分钟到一小时之间;您不需要直接调用它。要结束循环,Claude 会调用它并设置 `stop: true`,这会取消待处理的唤醒。`stop` 字段需要 Claude Code v2.1.202 或更高版本。待处理的唤醒显示在 [Stop hook input](/docs/zh-CN/hooks#stop-input) 中的 `session_crons` 中。在 Amazon Bedrock、Claude Platform on AWS、Google Cloud 的 Agent Platform 或 Microsoft Foundry 上不可用,其中没有间隔的 `/loop` 提示按固定时间表运行 | 否 |

42| `SendMessage` | 向 [agent team](/zh-CN/agent-teams) 队友发送消息,或按 agent ID 或名称[恢复 subagent](/zh-CN/sub-agents#resume-subagents)。已完成的 subagent 在后台自动恢复;您从 `/tasks` 停止的 subagent 不会,调用返回拒绝。结构化的团队协议消息需要 agent teams。接收者永远不会将来自另一个 agent 的消息视为您的同意或批准。{/* min-version: 2.1.198 */}从 v2.1.198 起,subagent 将来自启动它的 agent 的消息视为正常任务指示,而不是对等请求。{/* min-version: 2.1.199 */}从 v2.1.199 起,发送到现在解析为与对话早期不同的 agent 的名称会被拒绝而不是传递;请参阅[恢复 subagents](/zh-CN/sub-agents#resume-subagents) | 否 |42| `SendMessage` | 向 [agent team](/docs/zh-CN/agent-teams) 队友发送消息,或按 agent ID 或名称[恢复 subagent](/docs/zh-CN/sub-agents#resume-subagents)。已完成的 subagent 在后台自动恢复;您从 `/tasks` 停止的 subagent 不会,调用返回拒绝。结构化的团队协议消息需要 agent teams。接收者永远不会将来自另一个 agent 的消息视为您的同意或批准。从 v2.1.198 起,subagent 将来自启动它的 agent 的消息视为正常任务指示,而不是对等请求。从 v2.1.199 起,发送到现在解析为与对话早期不同的 agent 的名称会被拒绝而不是传递;请参阅[恢复 subagents](/docs/zh-CN/sub-agents#resume-subagents) | 否 |

43| `SendUserFile` | 将会话中的文件发送给您,带有可选的标题,以便生成的报告、图表、屏幕截图或构建的工件到达您的设备,而不仅仅是在记录中提及。{/* min-version: 2.1.196 */}从 v2.1.196 起,可选的 `display` 输入控制呈现方式:`render` 在客户端中内联打开文件,`attach` 仅显示下载卡,未设置时客户端按文件类型决定。当连接了 [Remote Control](/zh-CN/remote-control) 客户端或会话在托管云环境(如 [Claude Code on the web](/zh-CN/claude-code-on-the-web))中运行时可用。传递通过 Anthropic 托管的基础设施运行,因此该工具在 Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry 上不可用 | 否 |43| `SendUserFile` | 将会话中的文件发送给您,带有可选的标题,以便生成的报告、图表、屏幕截图或构建的工件到达您的设备,而不仅仅是在记录中提及。从 v2.1.196 起,可选的 `display` 输入控制呈现方式:`render` 在客户端中内联打开文件,`attach` 仅显示下载卡,未设置时客户端按文件类型决定。当连接了 [Remote Control](/docs/zh-CN/remote-control) 客户端或会话在托管云环境(如 [Claude Code on the web](/docs/zh-CN/claude-code-on-the-web))中运行时可用。传递通过 Anthropic 托管的基础设施运行,因此该工具在 Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry 上不可用 | 否 |

44| `ShareOnboardingGuide` | {/* plan-availability: feature=onboarding-guide-share plans=pro,max,team,enterprise providers=anthropic */}上传 `ONBOARDING.md` 并返回队友可以在 Claude Code 中打开的共享链接。在编写指南后从 `/team-onboarding` 调用。适用于 Pro、Max、Team 和 Enterprise 计划上的 claude.ai 订阅者 | 是 |44| `ShareOnboardingGuide` | 上传 `ONBOARDING.md` 并返回队友可以在 Claude Code 中打开的共享链接。在编写指南后从 `/team-onboarding` 调用。适用于 Pro、Max、Team 和 Enterprise 计划上的 claude.ai 订阅者 | 是 |

45| `Skill` | 在主对话中执行 [skill](/zh-CN/skills#control-who-invokes-a-skill) | 是 |45| `Skill` | 在主对话中执行 [skill](/docs/zh-CN/skills#control-who-invokes-a-skill) | 是 |

46| `TaskCreate` | 在任务列表中创建新任务 | 否 |46| `TaskCreate` | 在任务列表中创建新任务 | 否 |

47| `TaskGet` | 检索特定任务的完整详细信息 | 否 |47| `TaskGet` | 检索特定任务的完整详细信息 | 否 |

48| `TaskList` | 列出所有任务及其当前状态 | 否 |48| `TaskList` | 列出所有任务及其当前状态 | 否 |

49| `TaskOutput` | 检索后台任务的输出。已弃用,改用 `Read` 读取任务的输出文件路径。{/* min-version: 2.1.203 */}当没有任务与 ID 匹配时,错误会按 ID 和描述列出运行中的后台 agents。在 v2.1.203 之前,错误仅命名缺失的 ID | 否 |49| `TaskOutput` | 检索后台任务的输出。已弃用,改用 `Read` 读取任务的输出文件路径。当没有任务与 ID 匹配时,错误会按 ID 和描述列出运行中的后台 agents。在 v2.1.203 之前,错误仅命名缺失的 ID | 否 |

50| `TaskStop` | 按 ID 停止运行中的后台任务。{/* min-version: 2.1.198 */}它还接受 [agent-team 队友](/zh-CN/agent-teams)或按 agent ID 或名称的命名后台 agent。在 v2.1.198 之前,它仅接受后台任务 ID。{/* min-version: 2.1.203 */}当没有任务与 ID 匹配时,错误会按 ID 和描述列出运行中的后台 agents,包括另一个 agent 生成的 agents。在 v2.1.203 之前,错误列出了运行中的队友和命名 agents,但不包括另一个 agent 生成的后台 agents,因此无法从主对话中识别或停止这些 agents | 否 |50| `TaskStop` | 按 ID 停止运行中的后台任务。它还接受 [agent-team 队友](/docs/zh-CN/agent-teams)或按 agent ID 或名称的命名后台 agent。在 v2.1.198 之前,它仅接受后台任务 ID。当没有任务与 ID 匹配时,错误会按 ID 和描述列出运行中的后台 agents,包括另一个 agent 生成的 agents。在 v2.1.203 之前,错误列出了运行中的队友和命名 agents,但不包括另一个 agent 生成的后台 agents,因此无法从主对话中识别或停止这些 agents | 否 |

51| `TaskUpdate` | 更新任务状态、依赖项、详细信息或删除任务 | 否 |51| `TaskUpdate` | 更新任务状态、依赖项、详细信息或删除任务 | 否 |

52| `TodoWrite` | {/* min-version: 2.1.142 */}管理会话任务清单。在 v2.1.142 起默认禁用,改用 `TaskCreate`、`TaskGet`、`TaskList` 和 `TaskUpdate`。设置 `CLAUDE_CODE_ENABLE_TASKS=0` 以重新启用 | 否 |52| `TodoWrite` | 管理会话任务清单。在 v2.1.142 起默认禁用,改用 `TaskCreate`、`TaskGet`、`TaskList` 和 `TaskUpdate`。设置 `CLAUDE_CODE_ENABLE_TASKS=0` 以重新启用 | 否 |

53| `ToolSearch` | 当启用 [tool search](/zh-CN/mcp#scale-with-mcp-tool-search) 时搜索并加载延迟工具 | 否 |53| `ToolSearch` | 当启用 [tool search](/docs/zh-CN/mcp#scale-with-mcp-tool-search) 时搜索并加载延迟工具 | 否 |

54| `WaitForMcpServers` | 等待一个或多个仍在后台连接的 [MCP servers](/zh-CN/mcp),以便请求可以使用它们的工具而无需重启会话。Claude 会在所需的服务器尚未连接时调用它。仅当禁用 [tool search](/zh-CN/mcp#scale-with-mcp-tool-search) 时出现,因为启用时 `ToolSearch` 会处理等待 | 否 |54| `WaitForMcpServers` | 等待一个或多个仍在后台连接的 [MCP servers](/docs/zh-CN/mcp),以便请求可以使用它们的工具而无需重启会话。Claude 会在所需的服务器尚未连接时调用它。仅当禁用 [tool search](/docs/zh-CN/mcp#scale-with-mcp-tool-search) 时出现,因为启用时 `ToolSearch` 会处理等待 | 否 |

55| `WebFetch` | 从指定 URL 获取内容。请参阅 [WebFetch 工具行为](#webfetch-tool-behavior) | 是 |55| `WebFetch` | 从指定 URL 获取内容。请参阅 [WebFetch 工具行为](#webfetch-tool-behavior) | 是 |

56| `WebSearch` | 执行网络搜索。请参阅 [WebSearch 工具行为](#websearch-tool-behavior) | 是 |56| `WebSearch` | 执行网络搜索。请参阅 [WebSearch 工具行为](#websearch-tool-behavior) | 是 |

57| `Workflow` | 运行一个 [dynamic workflow](/zh-CN/workflows):一个在后台协调许多 subagents 并返回一个统一结果的脚本 | 是 |57| `Workflow` | 运行一个 [dynamic workflow](/docs/zh-CN/workflows):一个在后台协调许多 subagents 并返回一个统一结果的脚本 | 是 |

58| `Write` | 创建或覆盖文件。请参阅 [Write 工具行为](#write-tool-behavior) | 是 |58| `Write` | 创建或覆盖文件。请参阅 [Write 工具行为](#write-tool-behavior) | 是 |

59 59 

60<h2 id="configure-tools-with-permission-rules-and-hooks">60<h2 id="configure-tools-with-permission-rules-and-hooks">


63 63 

64在大多数情况下,Claude 决定何时使用这些工具,您在与 Claude 交互时不需要自己命名它们。当定义权限和其他配置时,您直接引用工具名称:64在大多数情况下,Claude 决定何时使用这些工具,您在与 Claude 交互时不需要自己命名它们。当定义权限和其他配置时,您直接引用工具名称:

65 65 

66* 在设置中的 [`permissions.allow` 和 `permissions.deny`](/zh-CN/settings#available-settings),以及 `/permissions` 界面66* 在设置中的 [`permissions.allow` 和 `permissions.deny`](/docs/zh-CN/settings#available-settings),以及 `/permissions` 界面

67* 在 [CLI 标志](/zh-CN/cli-reference)中的 `--allowedTools` 和 `--disallowedTools`67* 在 [CLI 标志](/docs/zh-CN/cli-reference)中的 `--allowedTools` 和 `--disallowedTools`

68* 在 Agent SDK 的 [`allowedTools` 和 `disallowedTools`](/zh-CN/agent-sdk/permissions#allow-and-deny-rules) 选项中68* 在 Agent SDK 的 [`allowedTools` 和 `disallowedTools`](/docs/zh-CN/agent-sdk/permissions#allow-and-deny-rules) 选项中

69* 在 [subagent 的 `tools` 或 `disallowedTools`](/zh-CN/sub-agents#supported-frontmatter-fields) frontmatter 中69* 在 [subagent 的 `tools` 或 `disallowedTools`](/docs/zh-CN/sub-agents#supported-frontmatter-fields) frontmatter 中

70* 在 [skill 的 `allowed-tools`](/zh-CN/skills#frontmatter-reference) frontmatter 中70* 在 [skill 的 `allowed-tools`](/docs/zh-CN/skills#frontmatter-reference) frontmatter 中

71* 在 hook 的 [`if` 条件](/zh-CN/hooks-guide#filter-by-tool-name-and-arguments-with-the-if-field)中71* 在 hook 的 [`if` 条件](/docs/zh-CN/hooks-guide#filter-by-tool-name-and-arguments-with-the-if-field)中

72 72 

73所有这些都接受相同的规则格式,`ToolName(specifier)`。specifier 取决于工具,几个工具共享一种格式:73所有这些都接受相同的规则格式,`ToolName(specifier)`。specifier 取决于工具,几个工具共享一种格式:

74 74 

75| 规则格式 | 适用于 | 详情 |75| 规则格式 | 适用于 | 详情 |

76| :----------------------------- | :---------------------- | :----------------------------------------------------------------- |76| :----------------------------- | :---------------------- | :----------------------------------------------------------------- |

77| `Bash(npm run *)` | Bash、Monitor | [命令模式匹配](/zh-CN/permissions#bash) |77| `Bash(npm run *)` | Bash、Monitor | [命令模式匹配](/docs/zh-CN/permissions#bash) |

78| `PowerShell(Get-ChildItem *)` | PowerShell | [命令模式匹配](/zh-CN/permissions#powershell) |78| `PowerShell(Get-ChildItem *)` | PowerShell | [命令模式匹配](/docs/zh-CN/permissions#powershell) |

79| `Read(~/secrets/**)` | Read、Grep、Glob、LSP | [路径模式匹配](/zh-CN/permissions#read-and-edit) |79| `Read(~/secrets/**)` | Read、Grep、Glob、LSP | [路径模式匹配](/docs/zh-CN/permissions#read-and-edit) |

80| `Edit(/src/**)` | Edit、Write、NotebookEdit | [路径模式匹配](/zh-CN/permissions#read-and-edit) |80| `Edit(/src/**)` | Edit、Write、NotebookEdit | [路径模式匹配](/docs/zh-CN/permissions#read-and-edit) |

81| `Skill(deploy *)` | Skill | [Skill 名称匹配](/zh-CN/skills#restrict-claude%E2%80%99s-skill-access) |81| `Skill(deploy *)` | Skill | [Skill 名称匹配](/docs/zh-CN/skills#restrict-claude%E2%80%99s-skill-access) |

82| `Agent(Explore)` | Agent | [Subagent 类型匹配](/zh-CN/permissions#agent-subagents) |82| `Agent(Explore)` | Agent | [Subagent 类型匹配](/docs/zh-CN/permissions#agent-subagents) |

83| `WebFetch(domain:example.com)` | WebFetch | [域名匹配](/zh-CN/permissions#webfetch) |83| `WebFetch(domain:example.com)` | WebFetch | [域名匹配](/docs/zh-CN/permissions#webfetch) |

84| `WebSearch` | WebSearch | 无 specifier;允许或拒绝整个工具 |84| `WebSearch` | WebSearch | 无 specifier;允许或拒绝整个工具 |

85 85 

86此处未列出的工具,例如 `ExitPlanMode` 或 `ShareOnboardingGuide`,仅接受不带 specifier 的裸工具名称。86此处未列出的工具,例如 `ExitPlanMode` 或 `ShareOnboardingGuide`,仅接受不带 specifier 的裸工具名称。

87 87 

88`Edit(...)` 允许规则也授予对相同路径的读取访问权限,因此您不需要匹配的 `Read(...)` 规则。{/* min-version: 2.1.208 */}`Read(...)` 拒绝规则也会阻止 Edit 工具在相同路径上的使用,包括在该处创建新文件,因为编辑需要读取结果。Edit 上的 `Read` 拒绝检查需要 Claude Code v2.1.208 或更高版本。88`Edit(...)` 允许规则也授予对相同路径的读取访问权限,因此您不需要匹配的 `Read(...)` 规则。`Read(...)` 拒绝规则也会阻止 Edit 工具在相同路径上的使用,包括在该处创建新文件,因为编辑需要读取结果。Edit 上的 `Read` 拒绝检查需要 Claude Code v2.1.208 或更高版本。

89 89 

90Hook `matcher` 字段使用裸工具名称,而不是带括号的规则格式。请参阅[匹配器模式](/zh-CN/hooks#matcher-patterns)了解匹配规则。对于每个工具在 hooks 中传递给 `tool_input` 的字段名称,请参阅 [PreToolUse 输入参考](/zh-CN/hooks#pretooluse-input)。90Hook `matcher` 字段使用裸工具名称,而不是带括号的规则格式。请参阅[匹配器模式](/docs/zh-CN/hooks#matcher-patterns)了解匹配规则。对于每个工具在 hooks 中传递给 `tool_input` 的字段名称,请参阅 [PreToolUse 输入参考](/docs/zh-CN/hooks#pretooluse-input)。

91 91 

92<h2 id="agent-tool-behavior">92<h2 id="agent-tool-behavior">

93 Agent 工具行为93 Agent 工具行为


95 95 

96Agent 工具在单独的 context window 中生成一个 subagent。subagent 自主地完成其任务,然后向父对话返回单个文本结果。父对话看不到 subagent 的中间工具调用或输出,只看到最终结果。96Agent 工具在单独的 context window 中生成一个 subagent。subagent 自主地完成其任务,然后向父对话返回单个文本结果。父对话看不到 subagent 的中间工具调用或输出,只看到最终结果。

97 97 

98要限制 subagent 运行的轮数,请在 [subagent 定义](/zh-CN/sub-agents#supported-frontmatter-fields)中设置 `maxTurns`。98要限制 subagent 运行的轮数,请在 [subagent 定义](/docs/zh-CN/sub-agents#supported-frontmatter-fields)中设置 `maxTurns`。

99 99 

100同一个 Agent 工具也在启用 fork 模式时启动[分叉 subagents](/zh-CN/sub-agents#fork-the-current-conversation)。fork 继承完整的父对话,而不是从头开始,始终在后台运行,并且仍然在您的终端中显示权限提示。本节的其余部分描述命名的 subagents。100同一个 Agent 工具也在启用 fork 模式时启动[分叉 subagents](/docs/zh-CN/sub-agents#fork-the-current-conversation)。fork 继承完整的父对话,而不是从头开始,始终在后台运行,并且仍然在您的终端中显示权限提示。本节的其余部分描述命名的 subagents。

101 101 

102命名的 subagent 可以使用哪些工具取决于 [subagent 定义](/zh-CN/sub-agents)中的 `tools` 和 `disallowedTools` 字段:102命名的 subagent 可以使用哪些工具取决于 [subagent 定义](/docs/zh-CN/sub-agents)中的 `tools` 和 `disallowedTools` 字段:

103 103 

104* **两个字段都未设置**:subagent 继承父对话可用的每个工具。104* **两个字段都未设置**:subagent 继承父对话可用的每个工具。

105* **仅设置 `tools`**:subagent 仅获得列出的工具。105* **仅设置 `tools`**:subagent 仅获得列出的工具。

106* **仅设置 `disallowedTools`**:subagent 获得除列出的工具外的每个父工具。106* **仅设置 `disallowedTools`**:subagent 获得除列出的工具外的每个父工具。

107* **两个都设置**:`disallowedTools` 优先。同时列在两个中的工具会被移除。107* **两个都设置**:`disallowedTools` 优先。同时列在两个中的工具会被移除。

108 108 

109当 subagent 的 `tools` 列表最终没有任何工具时,例如因为每个条目都拼写错误或命名了一个对 subagents 不可用的工具,Agent 工具会返回一个错误,列出这些条目,而不是启动 subagent。{/* min-version: 2.1.208 */}在 v2.1.208 之前,subagent 会以无工具的方式启动,可能返回空结果或令人困惑的结果。109当 subagent 的 `tools` 列表最终没有任何工具时,例如因为每个条目都拼写错误或命名了一个对 subagents 不可用的工具,Agent 工具会返回一个错误,列出这些条目,而不是启动 subagent。在 v2.1.208 之前,subagent 会以无工具的方式启动,可能返回空结果或令人困惑的结果。

110 110 

111启动 subagent 本身不会提示权限。Claude Code 在运行时根据您的权限规则检查 subagent 自己的工具调用。111启动 subagent 本身不会提示权限。Claude Code 在运行时根据您的权限规则检查 subagent 自己的工具调用。

112 112 

113{/* min-version: 2.1.198 */}从 v2.1.198 起,subagents 默认在后台运行;当 Claude 需要结果后才继续时,它会在前台运行一个。113从 v2.1.198 起,subagents 默认在后台运行;当 Claude 需要结果后才继续时,它会在前台运行一个。

114 114 

115* **前台 subagents** 显示您在主对话中会看到的相同权限提示,在每个工具调用发生时。115* **前台 subagents** 显示您在主对话中会看到的相同权限提示,在每个工具调用发生时。

116* **后台 subagents** {/* min-version: 2.1.186 */}从 v2.1.186 起在您的主会话中显示权限提示。提示会指出是哪个 subagent 在请求,按 Esc 会拒绝该工具调用而不停止 subagent。在 v2.1.186 之前,后台 subagents 会自动拒绝任何会提示的工具调用并继续运行而不使用该工具。116* **后台 subagents** 从 v2.1.186 起在您的主会话中显示权限提示。提示会指出是哪个 subagent 在请求,按 Esc 会拒绝该工具调用而不停止 subagent。在 v2.1.186 之前,后台 subagents 会自动拒绝任何会提示的工具调用并继续运行而不使用该工具。

117 117 

118要首先限制 subagent 可以访问的内容,请缩小其 `tools` 字段,将 Bash 排除在列表之外,或在设置中设置拒绝规则,如[控制 subagent 功能](/zh-CN/sub-agents#control-subagent-capabilities)中所述。有关选择前台或后台的更多信息,请参阅[在前台或后台运行 subagents](/zh-CN/sub-agents#run-subagents-in-foreground-or-background)。118要首先限制 subagent 可以访问的内容,请缩小其 `tools` 字段,将 Bash 排除在列表之外,或在设置中设置拒绝规则,如[控制 subagent 功能](/docs/zh-CN/sub-agents#control-subagent-capabilities)中所述。有关选择前台或后台的更多信息,请参阅[在前台或后台运行 subagents](/docs/zh-CN/sub-agents#run-subagents-in-foreground-or-background)。

119 119 

120<h2 id="bash-tool-behavior">120<h2 id="bash-tool-behavior">

121 Bash 工具行为121 Bash 工具行为


123 123 

124Bash 工具在单独的进程中运行每个命令,具有以下持久性行为:124Bash 工具在单独的进程中运行每个命令,具有以下持久性行为:

125 125 

126* 当 Claude 在主会话中运行 `cd` 时,只要它保持在项目目录内或您使用 `--add-dir`、`/add-dir` 或设置中的 `additionalDirectories` 添加的[额外工作目录](/zh-CN/permissions#working-directories)内,新的工作目录就会延续到后续的 Bash 命令。Subagent 会话永远不会延续工作目录更改。126* 当 Claude 在主会话中运行 `cd` 时,只要它保持在项目目录内或您使用 `--add-dir`、`/add-dir` 或设置中的 `additionalDirectories` 添加的[额外工作目录](/docs/zh-CN/permissions#working-directories)内,新的工作目录就会延续到后续的 Bash 命令。Subagent 会话永远不会延续工作目录更改。

127 * 如果 `cd` 落在这些目录之外,Claude Code 会重置为项目目录,并将 `Shell cwd was reset to <dir>` 附加到工具结果。127 * 如果 `cd` 落在这些目录之外,Claude Code 会重置为项目目录,并将 `Shell cwd was reset to <dir>` 附加到工具结果。

128 * 要禁用此延续,使每个 Bash 命令都在项目目录中启动,请设置 `CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR=1`。128 * 要禁用此延续,使每个 Bash 命令都在项目目录中启动,请设置 `CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR=1`。

129* 环境变量不持久。一个命令中的 `export` 在下一个命令中将不可用。129* 环境变量不持久。一个命令中的 `export` 在下一个命令中将不可用。

130* 在您的 shell 启动文件中定义的别名和 shell 函数可用。在会话启动时,Claude Code 会根据您的 shell 来源 `~/.zshrc`、`~/.bashrc` 或 `~/.profile`,捕获生成的别名、函数和 shell 选项,并将它们应用于每个 Bash 命令。130* 在您的 shell 启动文件中定义的别名和 shell 函数可用。在会话启动时,Claude Code 会根据您的 shell 来源 `~/.zshrc`、`~/.bashrc` 或 `~/.profile`,捕获生成的别名、函数和 shell 选项,并将它们应用于每个 Bash 命令。

131 131 

132在启动 Claude Code 之前激活您的 virtualenv 或 conda 环境。要使环境变量在 Bash 命令之间保持不变,请在启动 Claude Code 之前将 [`CLAUDE_ENV_FILE`](/zh-CN/env-vars) 设置为 shell 脚本,或使用 [SessionStart hook](/zh-CN/hooks#persist-environment-variables) 动态填充它。132在启动 Claude Code 之前激活您的 virtualenv 或 conda 环境。要使环境变量在 Bash 命令之间保持不变,请在启动 Claude Code 之前将 [`CLAUDE_ENV_FILE`](/docs/zh-CN/env-vars) 设置为 shell 脚本,或使用 [SessionStart hook](/docs/zh-CN/hooks#persist-environment-variables) 动态填充它。

133 133 

134两个限制限制每个命令:134两个限制限制每个命令:

135 135 

136* **超时**:默认为两分钟。Claude 可以使用 `timeout` 参数请求每个命令最多 10 分钟。使用 [`BASH_DEFAULT_TIMEOUT_MS` 和 `BASH_MAX_TIMEOUT_MS`](/zh-CN/env-vars) 覆盖默认值和上限。136* **超时**:默认为两分钟。Claude 可以使用 `timeout` 参数请求每个命令最多 10 分钟。使用 [`BASH_DEFAULT_TIMEOUT_MS` 和 `BASH_MAX_TIMEOUT_MS`](/docs/zh-CN/env-vars) 覆盖默认值和上限。

137* **输出长度**:默认为 30,000 个字符。当命令产生超过该数量的输出时,Claude Code 将完整输出保存到会话目录中的文件,并给 Claude 文件路径加上开头的简短预览。Claude 在需要其余部分时读取或搜索该文件。使用 [`BASH_MAX_OUTPUT_LENGTH`](/zh-CN/env-vars) 提高限制,最高为 150,000 个字符的硬上限。137* **输出长度**:默认为 30,000 个字符。当命令产生超过该数量的输出时,Claude Code 将完整输出保存到会话目录中的文件,并给 Claude 文件路径加上开头的简短预览。Claude 在需要其余部分时读取或搜索该文件。使用 [`BASH_MAX_OUTPUT_LENGTH`](/docs/zh-CN/env-vars) 提高限制,最高为 150,000 个字符的硬上限。

138 138 

139对于长时间运行的进程,例如开发服务器或监视构建,Claude 可以设置 `run_in_background: true` 以将命令作为后台任务启动并在其运行时继续工作。使用 `/tasks` 列出和停止后台任务。在使用 `-p` 标志的非交互模式下,[后台任务在运行的最终结果后不久结束](/zh-CN/headless#background-tasks-at-exit)。139对于长时间运行的进程,例如开发服务器或监视构建,Claude 可以设置 `run_in_background: true` 以将命令作为后台任务启动并在其运行时继续工作。使用 `/tasks` 列出和停止后台任务。在使用 `-p` 标志的非交互模式下,[后台任务在运行的最终结果后不久结束](/docs/zh-CN/headless#background-tasks-at-exit)。

140 140 

141<h2 id="edit-tool-behavior">141<h2 id="edit-tool-behavior">

142 Edit 工具行为142 Edit 工具行为


144 144 

145Edit 工具执行精确的字符串替换。它接受 `old_string` 和 `new_string` 并用后者替换前者。它不使用正则表达式或模糊匹配。145Edit 工具执行精确的字符串替换。它接受 `old_string` 和 `new_string` 并用后者替换前者。它不使用正则表达式或模糊匹配。

146 146 

147三个检查必须通过才能应用编辑。{/* min-version: 2.1.208 */}在任何检查之前,与 [`Read` 拒绝规则](/zh-CN/permissions#tool-specific-permission-rules)匹配的路径会被拒绝,包括在那里创建新文件。此拒绝需要 Claude Code v2.1.208 或更高版本。147三个检查必须通过才能应用编辑。在任何检查之前,与 [`Read` 拒绝规则](/docs/zh-CN/permissions#tool-specific-permission-rules)匹配的路径会被拒绝,包括在那里创建新文件。此拒绝需要 Claude Code v2.1.208 或更高版本。

148 148 

149* **编辑前读取**:Claude 在当前对话中读取文件后才能编辑它,并且以 [`PARTIAL view` 通知](#read-tool-behavior)中断的读取不计数。Claude Opus 4.6、Claude Haiku 4.5 和更早的模型始终需要读取。较新的模型可以在读取不需要权限提示且 Read 工具可用时编辑未读文件。149* **编辑前读取**:Claude 在当前对话中读取文件后才能编辑它,并且以 [`PARTIAL view` 通知](#read-tool-behavior)中断的读取不计数。Claude Opus 4.6、Claude Haiku 4.5 和更早的模型始终需要读取。较新的模型可以在读取不需要权限提示且 Read 工具可用时编辑未读文件。

150* **匹配**:`old_string` 必须在文件中完全按照编写的方式出现。单个空格或缩进差异足以导致不匹配。150* **匹配**:`old_string` 必须在文件中完全按照编写的方式出现。单个空格或缩进差异足以导致不匹配。

151* **唯一性**:`old_string` 必须恰好出现一次。当它出现多次时,Claude 要么提供一个更长的字符串,其中包含足够的周围上下文来确定一个出现,要么设置 `replace_all: true` 来替换所有出现。151* **唯一性**:`old_string` 必须恰好出现一次。当它出现多次时,Claude 要么提供一个更长的字符串,其中包含足够的周围上下文来确定一个出现,要么设置 `replace_all: true` 来替换所有出现。

152 152 

153在 Claude 最后读取文件后在磁盘上更改的文件仍然可以编辑,当 `old_string` 与当前内容完全且明确匹配,并且 Claude Code 可以读取文件而无需提示时。针对文件的当前内容进行匹配可以保持安全,结果会注明该文件包含其他更改,以便 Claude 在依赖周围内容的编辑之前重新读取它。在任何其他情况下,例如过时的 `old_string` 或与多个出现匹配而没有 `replace_all` 的情况,Claude 在编辑前重新读取文件。{/* min-version: 2.1.208 */}未读和已更改文件的宽松处理需要 Claude Code v2.1.208 或更高版本;在此之前,Claude Code 拒绝对它在对话中未读过或在读取后在磁盘上更改的任何文件进行编辑。153在 Claude 最后读取文件后在磁盘上更改的文件仍然可以编辑,当 `old_string` 与当前内容完全且明确匹配,并且 Claude Code 可以读取文件而无需提示时。针对文件的当前内容进行匹配可以保持安全,结果会注明该文件包含其他更改,以便 Claude 在依赖周围内容的编辑之前重新读取它。在任何其他情况下,例如过时的 `old_string` 或与多个出现匹配而没有 `replace_all` 的情况,Claude 在编辑前重新读取文件。未读和已更改文件的宽松处理需要 Claude Code v2.1.208 或更高版本;在此之前,Claude Code 拒绝对它在对话中未读过或在读取后在磁盘上更改的任何文件进行编辑。

154 154 

155使用 Bash 查看文件也满足编辑前读取要求,当命令是 `cat`、`head`、`tail`、`sed -n 'X,Yp'`、`grep`、`egrep` 或 `fgrep` 在单个文件上,没有管道或重定向时。管道输出和其他 Bash 命令不计入编辑前读取检查。155使用 Bash 查看文件也满足编辑前读取要求,当命令是 `cat`、`head`、`tail`、`sed -n 'X,Yp'`、`grep`、`egrep` 或 `fgrep` 在单个文件上,没有管道或重定向时。管道输出和其他 Bash 命令不计入编辑前读取检查。

156 156 

157这仅影响编辑资格,不影响权限。[Read 和 Edit 拒绝规则](/zh-CN/permissions#tool-specific-permission-rules)也适用于 Claude Code 在 Bash 中识别的文件命令,例如 `cat`、`head`、`tail`、`sed` 和 `grep`,但不适用于间接读取或写入文件的任意子进程,例如自己打开文件的 Python 或 Node 脚本。对于编辑前读取,识别的命令集与上面的拒绝规则列表不同:例如,`egrep` 和 `fgrep` 计入编辑前读取但不针对 Read 拒绝规则进行检查。对于覆盖每个进程的操作系统级别强制,请[启用沙箱](/zh-CN/sandboxing)。157这仅影响编辑资格,不影响权限。[Read 和 Edit 拒绝规则](/docs/zh-CN/permissions#tool-specific-permission-rules)也适用于 Claude Code 在 Bash 中识别的文件命令,例如 `cat`、`head`、`tail`、`sed` 和 `grep`,但不适用于间接读取或写入文件的任意子进程,例如自己打开文件的 Python 或 Node 脚本。对于编辑前读取,识别的命令集与上面的拒绝规则列表不同:例如,`egrep` 和 `fgrep` 计入编辑前读取但不针对 Read 拒绝规则进行检查。对于覆盖每个进程的操作系统级别强制,请[启用沙箱](/docs/zh-CN/sandboxing)。

158 158 

159<h2 id="glob-tool-behavior">159<h2 id="glob-tool-behavior">

160 Glob 工具行为160 Glob 工具行为


170 170 

171Glob 默认不尊重 `.gitignore`,因此它找到被 gitignore 的文件以及跟踪的文件。这与 [Grep](#grep-tool-behavior) 不同,后者跳过被 gitignore 的文件。要使 Glob 尊重 `.gitignore`,请在启动 Claude Code 之前设置 `CLAUDE_CODE_GLOB_NO_IGNORE=false`。171Glob 默认不尊重 `.gitignore`,因此它找到被 gitignore 的文件以及跟踪的文件。这与 [Grep](#grep-tool-behavior) 不同,后者跳过被 gitignore 的文件。要使 Glob 尊重 `.gitignore`,请在启动 Claude Code 之前设置 `CLAUDE_CODE_GLOB_NO_IGNORE=false`。

172 172 

173包含空字节的 `pattern` 或 `path` 值会返回错误,要求 Claude 将其删除。{/* min-version: 2.1.208 */}173包含空字节的 `pattern` 或 `path` 值会返回错误,要求 Claude 将其删除。

174 174 

175<h2 id="grep-tool-behavior">175<h2 id="grep-tool-behavior">

176 Grep 工具行为176 Grep 工具行为


180 180 

181Grep 基于 [ripgrep](https://github.com/BurntSushi/ripgrep) 并使用 ripgrep 的正则表达式语法,而不是 POSIX grep。包含正则表达式元字符的模式需要转义。例如,在 Go 代码中查找 `interface{}` 需要模式 `interface\{\}`。181Grep 基于 [ripgrep](https://github.com/BurntSushi/ripgrep) 并使用 ripgrep 的正则表达式语法,而不是 POSIX grep。包含正则表达式元字符的模式需要转义。例如,在 Go 代码中查找 `interface{}` 需要模式 `interface\{\}`。

182 182 

183一个 ripgrep 拒绝的模式、glob 或文件类型会返回一个包含 ripgrep 诊断信息的错误,这样 Claude 可以更正输入并再次搜索。{/* min-version: 2.1.208 */}在 v2.1.208 之前,Claude Code 将被拒绝的输入报告为 `No files found`,而不是错误,即使搜索的文本存在于目标文件中。183一个 ripgrep 拒绝的模式、glob 或文件类型会返回一个包含 ripgrep 诊断信息的错误,这样 Claude 可以更正输入并再次搜索。在 v2.1.208 之前,Claude Code 将被拒绝的输入报告为 `No files found`,而不是错误,即使搜索的文本存在于目标文件中。

184 184 

185三种输出模式控制返回的内容:185三种输出模式控制返回的内容:

186 186 

187* `files_with_matches`:仅文件路径,无行内容。这是默认值。187* `files_with_matches`:仅文件路径,无行内容。这是默认值。

188* `content`:匹配的行及其文件和行号。188* `content`:匹配的行及其文件和行号。

189* `count`:每个文件的匹配计数,后跟所有匹配文件的总计数。{/* min-version: 2.1.208 */}总计覆盖每一个匹配,即使工具的 `head_limit` 或 `offset` 参数截断了列出的每个文件条目。在 v2.1.208 之前,总计仅对列出的条目求和。189* `count`:每个文件的匹配计数,后跟所有匹配文件的总计数。总计覆盖每一个匹配,即使工具的 `head_limit` 或 `offset` 参数截断了列出的每个文件条目。在 v2.1.208 之前,总计仅对列出的条目求和。

190 190 

191Claude 可以使用 `glob` 参数(例如 `**/*.tsx`)按文件范围结果,或使用 `type` 参数(例如 `py` 或 `rust`)按语言范围结果。默认情况下,模式在单行内匹配。Claude 可以设置 `multiline: true` 以跨行边界匹配。191Claude 可以使用 `glob` 参数(例如 `**/*.tsx`)按文件范围结果,或使用 `type` 参数(例如 `py` 或 `rust`)按语言范围结果。默认情况下,模式在单行内匹配。Claude 可以设置 `multiline: true` 以跨行边界匹配。

192 192 


206* 查找接口的实现206* 查找接口的实现

207* 追踪调用层次结构207* 追踪调用层次结构

208 208 

209该工具在您为您的语言安装 [code intelligence plugin](/zh-CN/discover-plugins#code-intelligence) 之前处于非活动状态。该插件捆绑了语言服务器配置,您需要单独安装服务器二进制文件。209该工具在您为您的语言安装 [code intelligence plugin](/docs/zh-CN/discover-plugins#code-intelligence) 之前处于非活动状态。该插件捆绑了语言服务器配置,您需要单独安装服务器二进制文件。

210 210 

211<h2 id="monitor-tool">211<h2 id="monitor-tool">

212 Monitor 工具212 Monitor 工具


224 224 

225您可以在同一会话中继续工作,Claude 在事件到达时插入。通过要求 Claude 取消它或结束会话来停止监视。225您可以在同一会话中继续工作,Claude 在事件到达时插入。通过要求 Claude 取消它或结束会话来停止监视。

226 226 

227当 Monitor 运行命令时,它使用与 [Bash 相同的权限规则](/zh-CN/permissions#tool-specific-permission-rules),因此您为 Bash 设置的 `allow` 和 `deny` 模式也适用于此处。[WebSocket 源](#websocket-source)有其自己的批准提示。227当 Monitor 运行命令时,它使用与 [Bash 相同的权限规则](/docs/zh-CN/permissions#tool-specific-permission-rules),因此您为 Bash 设置的 `allow` 和 `deny` 模式也适用于此处。[WebSocket 源](#websocket-source)有其自己的批准提示。

228 228 

229该工具在 Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry 上不可用。当设置了 `DISABLE_TELEMETRY` 或 `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` 时,它也不可用。229该工具在 Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry 上不可用。当设置了 `DISABLE_TELEMETRY` 或 `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` 时,它也不可用。

230 230 

231插件可以声明在插件处于活动状态时自动启动的监视,而不是要求 Claude 启动它们。请参阅 [plugin monitors](/zh-CN/plugins-reference#monitors)。231插件可以声明在插件处于活动状态时自动启动的监视,而不是要求 Claude 启动它们。请参阅 [plugin monitors](/docs/zh-CN/plugins-reference#monitors)。

232 232 

233<h3 id="websocket-source">233<h3 id="websocket-source">

234 WebSocket 源234 WebSocket 源


256 256 

257打开 WebSocket 会提示批准,提示不提供跳过同一主机的未来提示的选项。257打开 WebSocket 会提示批准,提示不提供跳过同一主机的未来提示的选项。

258 258 

259Claude Code 拒绝指向私有、链接本地或云元数据地址的 URL,包括解析为这些地址的主机名。它还拒绝 `sandbox.network.deniedDomains` 中的主机,以及当在托管设置中设置了 [`allowManagedDomainsOnly`](/zh-CN/settings#sandbox-settings) 时,任何在托管允许列表之外的主机。259Claude Code 拒绝指向私有、链接本地或云元数据地址的 URL,包括解析为这些地址的主机名。它还拒绝 `sandbox.network.deniedDomains` 中的主机,以及当在托管设置中设置了 [`allowManagedDomainsOnly`](/docs/zh-CN/settings#sandbox-settings) 时,任何在托管允许列表之外的主机。

260 260 

261<h2 id="notebookedit-tool-behavior">261<h2 id="notebookedit-tool-behavior">

262 NotebookEdit 工具行为262 NotebookEdit 工具行为


308 308 

309三个额外的设置控制 PowerShell 的使用位置:309三个额外的设置控制 PowerShell 的使用位置:

310 310 

311* [`settings.json`](/zh-CN/settings#available-settings) 中的 `"defaultShell": "powershell"`:通过 PowerShell 路由交互式 `!` 命令。需要启用 PowerShell 工具。311* [`settings.json`](/docs/zh-CN/settings#available-settings) 中的 `"defaultShell": "powershell"`:通过 PowerShell 路由交互式 `!` 命令。需要启用 PowerShell 工具。

312* 单个 [command hooks](/zh-CN/hooks#command-hook-fields) 上的 `"shell": "powershell"`:在 PowerShell 中运行该 hook。Hooks 直接生成 PowerShell,因此无论 `CLAUDE_CODE_USE_POWERSHELL_TOOL` 如何,这都有效。312* 单个 [command hooks](/docs/zh-CN/hooks#command-hook-fields) 上的 `"shell": "powershell"`:在 PowerShell 中运行该 hook。Hooks 直接生成 PowerShell,因此无论 `CLAUDE_CODE_USE_POWERSHELL_TOOL` 如何,这都有效。

313* [skill frontmatter](/zh-CN/skills#frontmatter-reference) 中的 `shell: powershell`:在 PowerShell 中运行 `` !`command` `` 块。需要启用 PowerShell 工具。313* [skill frontmatter](/docs/zh-CN/skills#frontmatter-reference) 中的 `shell: powershell`:在 PowerShell 中运行 `` !`command` `` 块。需要启用 PowerShell 工具。

314 314 

315同样的主会话工作目录重置行为(如 Bash 工具部分所述)适用于 PowerShell 命令,包括 `CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR` 环境变量。315同样的主会话工作目录重置行为(如 Bash 工具部分所述)适用于 PowerShell 命令,包括 `CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR` 环境变量。

316 316 


333 333 

334默认情况下,Read 从开始返回文件。当整个文件读取超过令牌限制时,Read 返回第一页,并显示 `PARTIAL view` 通知,告诉 Claude 它收到了多少文件内容以及如何使用 `offset` 和 `limit` 读取更多内容。传递显式 `offset` 或 `limit` 的读取仍然超过令牌限制时会返回错误。334默认情况下,Read 从开始返回文件。当整个文件读取超过令牌限制时,Read 返回第一页,并显示 `PARTIAL view` 通知,告诉 Claude 它收到了多少文件内容以及如何使用 `offset` 和 `limit` 读取更多内容。传递显式 `offset` 或 `limit` 的读取仍然超过令牌限制时会返回错误。

335 335 

336使用显式 `limit` 的读取会在选定的行超过令牌限制可能容纳的内容时立即停止,并返回错误而不加载范围的其余部分。该错误告诉 Claude 使用较小的 `limit`,或者当单行非常大时,改为使用 [Grep](#grep-tool-behavior) 搜索特定内容。{/* min-version: 2.1.208 */}在 v2.1.208 之前,Claude Code 在拒绝前会将整个范围加载到内存中,因此具有极长单行的文件可能会耗尽内存。336使用显式 `limit` 的读取会在选定的行超过令牌限制可能容纳的内容时立即停止,并返回错误而不加载范围的其余部分。该错误告诉 Claude 使用较小的 `limit`,或者当单行非常大时,改为使用 [Grep](#grep-tool-behavior) 搜索特定内容。在 v2.1.208 之前,Claude Code 在拒绝前会将整个范围加载到内存中,因此具有极长单行的文件可能会耗尽内存。

337 337 

338读取空文件会返回一个通知,说明文件存在但其内容为空,而超过最后一行的 `offset` 会返回一个给出文件行数的通知。{/* min-version: 2.1.208 */}在 v2.1.208 之前,读取空文件会返回过去末尾的通知。338读取空文件会返回一个通知,说明文件存在但其内容为空,而超过最后一行的 `offset` 会返回一个给出文件行数的通知。在 v2.1.208 之前,读取空文件会返回过去末尾的通知。

339 339 

340Read 处理纯文本之外的几种文件类型:340Read 处理纯文本之外的几种文件类型:

341 341 

342* **图像**:PNG、JPG 和其他图像格式作为 Claude 可以看到的视觉内容返回,而不是原始字节。Claude Code 在发送前调整大小并重新压缩大图像以适应模型的图像大小限制,因此 Claude 可能会看到大截图的缩小版本。{/* min-version: 2.1.196 */}从 v2.1.196 开始,调整大小后仍然大于 500KB 的图像会以降低质量的 JPEG 格式重新编码,其像素尺寸保持不变。如果 Claude 在大图像中遗漏了细微的像素级细节,请要求它首先裁剪感兴趣的区域,例如使用 ImageMagick 通过 Bash。342* **图像**:PNG、JPG 和其他图像格式作为 Claude 可以看到的视觉内容返回,而不是原始字节。Claude Code 在发送前调整大小并重新压缩大图像以适应模型的图像大小限制,因此 Claude 可能会看到大截图的缩小版本。从 v2.1.196 开始,调整大小后仍然大于 500KB 的图像会以降低质量的 JPEG 格式重新编码,其像素尺寸保持不变。如果 Claude 在大图像中遗漏了细微的像素级细节,请要求它首先裁剪感兴趣的区域,例如使用 ImageMagick 通过 Bash。

343* **PDFs**:Claude 完整读取短 `.pdf` 文件。对于超过 10 页的 PDFs,它使用 `pages` 参数(例如 `"1-5"`)按范围读取,一次最多 20 页。343* **PDFs**:Claude 完整读取短 `.pdf` 文件。对于超过 10 页的 PDFs,它使用 `pages` 参数(例如 `"1-5"`)按范围读取,一次最多 20 页。

344* **Jupyter notebooks**:`.ipynb` 文件返回所有单元格及其输出,包括代码、markdown 和可视化。344* **Jupyter notebooks**:`.ipynb` 文件返回所有单元格及其输出,包括代码、markdown 和可视化。

345 345 


360* 响应缓存 15 分钟,因此相同 URL 的重复获取快速返回。360* 响应缓存 15 分钟,因此相同 URL 的重复获取快速返回。

361* 当 URL 重定向到不同的主机时,WebFetch 返回一个文本结果,命名原始 URL 和重定向目标,而不是跟随它。Claude 然后使用第二个 WebFetch 调用获取新 URL。361* 当 URL 重定向到不同的主机时,WebFetch 返回一个文本结果,命名原始 URL 和重定向目标,而不是跟随它。Claude 然后使用第二个 WebFetch 调用获取新 URL。

362 362 

363在默认和 `acceptEdits` 权限模式中,WebFetch 在首次到达新域时提示,除了一组内置的预批准文档域可以无需提示地获取。要提前允许另一个域而不提示,请添加像 `WebFetch(domain:example.com)` 这样的权限规则。`auto` 和 `bypassPermissions` [权限模式](/zh-CN/permissions#permission-modes)完全跳过提示。363在默认和 `acceptEdits` 权限模式中,WebFetch 在首次到达新域时提示,除了一组内置的预批准文档域可以无需提示地获取。要提前允许另一个域而不提示,请添加像 `WebFetch(domain:example.com)` 这样的权限规则。`auto` 和 `bypassPermissions` [权限模式](/docs/zh-CN/permissions#permission-modes)完全跳过提示。

364 364 

365`deny`、`ask` 或 `allow` 中的显式 `WebFetch(domain:...)` 规则优先于预批准集合,因此您可以阻止预批准域或要求对其进行提示。365`deny`、`ask` 或 `allow` 中的显式 `WebFetch(domain:...)` 规则优先于预批准集合,因此您可以阻止预批准域或要求对其进行提示。

366 366 

367WebFetch 设置以 `Claude-User` 开头的 `User-Agent` 标头,以及优先 Markdown 而不是 HTML 的 `Accept` 标头,以便支持内容协商的服务器可以直接返回 Markdown。Sandbox [网络规则](/zh-CN/sandboxing)单独配置,因此您希望沙箱进程到达的域仍然需要显式沙箱权限规则。367WebFetch 设置以 `Claude-User` 开头的 `User-Agent` 标头,以及优先 Markdown 而不是 HTML 的 `Accept` 标头,以便支持内容协商的服务器可以直接返回 Markdown。Sandbox [网络规则](/docs/zh-CN/sandboxing)单独配置,因此您希望沙箱进程到达的域仍然需要显式沙箱权限规则。

368 368 

369<h2 id="websearch-tool-behavior">369<h2 id="websearch-tool-behavior">

370 WebSearch 工具行为370 WebSearch 工具行为


374 374 

375该工具可能在返回结果之前发出最多八个后端搜索,在内部优化搜索。Claude 可以使用 `allowed_domains` 范围结果以仅包含某些主机,或使用 `blocked_domains` 排除它们。这两个列表不能在单个调用中组合。375该工具可能在返回结果之前发出最多八个后端搜索,在内部优化搜索。Claude 可以使用 `allowed_domains` 范围结果以仅包含某些主机,或使用 `blocked_domains` 排除它们。这两个列表不能在单个调用中组合。

376 376 

377搜索后端不可配置。要使用不同的提供商进行搜索,请添加一个 [MCP server](/zh-CN/mcp),公开搜索工具。377搜索后端不可配置。要使用不同的提供商进行搜索,请添加一个 [MCP server](/docs/zh-CN/mcp),公开搜索工具。

378 378 

379WebSearch 权限规则不接受 specifier。`allow` 或 `deny` 中的裸 `WebSearch` 条目是唯一的形式。379WebSearch 权限规则不接受 specifier。`allow` 或 `deny` 中的裸 `WebSearch` 条目是唯一的形式。

380 380 

381<Note>381<Note>

382 WebSearch 在 Claude API、[Claude Platform on AWS](/zh-CN/claude-platform-on-aws) 和 Microsoft Foundry 上可用。在 Google Cloud 的 Agent Platform 上,它适用于 Claude 4 及更高版本的模型,包括 Opus、Sonnet 和 Haiku。Amazon Bedrock 不公开服务器端网络搜索工具。382 WebSearch 在 Claude API、[Claude Platform on AWS](/docs/zh-CN/claude-platform-on-aws) 和 Microsoft Foundry 上可用。在 Google Cloud 的 Agent Platform 上,它适用于 Claude 4 及更高版本的模型,包括 Opus、Sonnet 和 Haiku。Amazon Bedrock 不公开服务器端网络搜索工具。

383</Note>383</Note>

384 384 

385<h2 id="write-tool-behavior">385<h2 id="write-tool-behavior">


407Claude 提供对话摘要。对于确切的 MCP 工具名称,请运行 `/mcp`。407Claude 提供对话摘要。对于确切的 MCP 工具名称,请运行 `/mcp`。

408 408 

409<Note>409<Note>

410 [advisor tool](/zh-CN/advisor) 是一个 [server tool](https://platform.claude.com/docs/en/agents-and-tools/tool-use/advisor-tool),由 API 运行,而不是 Claude Code 实现的工具。它没有您可以在权限规则或 hook 匹配器中引用的名称。410 [advisor tool](/docs/zh-CN/advisor) 是一个 [server tool](https://platform.claude.com/docs/en/agents-and-tools/tool-use/advisor-tool),由 API 运行,而不是 Claude Code 实现的工具。它没有您可以在权限规则或 hook 匹配器中引用的名称。

411</Note>411</Note>

412 412 

413<h2 id="see-also">413<h2 id="see-also">

414 另请参阅414 另请参阅

415</h2>415</h2>

416 416 

417* [MCP servers](/zh-CN/mcp):通过连接外部服务器添加自定义工具417* [MCP servers](/docs/zh-CN/mcp):通过连接外部服务器添加自定义工具

418* [权限](/zh-CN/permissions):权限系统、规则语法和工具特定模式418* [权限](/docs/zh-CN/permissions):权限系统、规则语法和工具特定模式

419* [Subagents](/zh-CN/sub-agents):为 subagents 配置工具访问419* [Subagents](/docs/zh-CN/sub-agents):为 subagents 配置工具访问

420* [Hooks](/zh-CN/hooks-guide):在工具执行前后运行自定义命令420* [Hooks](/docs/zh-CN/hooks-guide):在工具执行前后运行自定义命令

Details

6 6 

7> 修复安装或登录 Claude Code 时出现的命令未找到、PATH、权限、网络和身份验证错误。7> 修复安装或登录 Claude Code 时出现的命令未找到、PATH、权限、网络和身份验证错误。

8 8 

9如果安装失败或无法登录,请在下面找到您的错误。有关 Claude Code 正常工作后的运行时问题,请参阅 [Troubleshooting](/zh-CN/troubleshooting)。有关配置问题(例如设置未应用或 hooks 未触发),请参阅 [Debug your configuration](/zh-CN/debug-your-config)。9如果安装失败或无法登录,请在下面找到您的错误。有关 Claude Code 正常工作后的运行时问题,请参阅 [Troubleshooting](/docs/zh-CN/troubleshooting)。有关配置问题(例如设置未应用或 hooks 未触发),请参阅 [Debug your configuration](/docs/zh-CN/debug-your-config)。

10 10 

11<h2 id="find-your-error">11<h2 id="find-your-error">

12 查找您的错误12 查找您的错误


41| `OAuth error` 或 `403 Forbidden` | [修复身份验证](#login-and-authentication) |41| `OAuth error` 或 `403 Forbidden` | [修复身份验证](#login-and-authentication) |

42| `Could not load the default credentials` 或 `Could not load credentials from any providers` | [Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry 凭证](#bedrock-agent-platform-or-foundry-credentials-not-loading) |42| `Could not load the default credentials` 或 `Could not load credentials from any providers` | [Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry 凭证](#bedrock-agent-platform-or-foundry-credentials-not-loading) |

43| `ChainedTokenCredential authentication failed` 或 `CredentialUnavailableError` | [Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry 凭证](#bedrock-agent-platform-or-foundry-credentials-not-loading) |43| `ChainedTokenCredential authentication failed` 或 `CredentialUnavailableError` | [Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry 凭证](#bedrock-agent-platform-or-foundry-credentials-not-loading) |

44| `API Error: 500`、`529 Overloaded`、`429` 或上面未列出的其他 4xx 和 5xx 错误 | 请参阅[错误参考](/zh-CN/errors) |44| `API Error: 500`、`529 Overloaded`、`429` 或上面未列出的其他 4xx 和 5xx 错误 | 请参阅[错误参考](/docs/zh-CN/errors) |

45 45 

46如果您的问题未列出,请按照下面的诊断检查来缩小原因范围。46如果您的问题未列出,请按照下面的诊断检查来缩小原因范围。

47 47 

48<Tip>48<Tip>

49 如果您宁愿完全跳过终端,[Claude Code Desktop 应用](/zh-CN/desktop-quickstart)可让您通过图形界面安装和使用 Claude Code。为 [macOS](https://claude.ai/api/desktop/darwin/universal/dmg/latest/redirect?utm_source=claude_code\&utm_medium=docs) 或 [Windows](https://claude.com/download?utm_source=claude_code\&utm_medium=docs) 下载它,无需任何命令行设置即可开始编码。在 Linux 上,按照 [Linux 安装说明](/zh-CN/desktop-linux)使用 apt 安装应用。49 如果您宁愿完全跳过终端,[Claude Code Desktop 应用](/docs/zh-CN/desktop-quickstart)可让您通过图形界面安装和使用 Claude Code。为 [macOS](https://claude.ai/api/desktop/darwin/universal/dmg/latest/redirect?utm_source=claude_code\&utm_medium=docs) 或 [Windows](https://claude.com/download?utm_source=claude_code\&utm_medium=docs) 下载它,无需任何命令行设置即可开始编码。在 Linux 上,按照 [Linux 安装说明](/docs/zh-CN/desktop-linux)使用 apt 安装应用。

50</Tip>50</Tip>

51 51 

52<h2 id="run-diagnostic-checks">52<h2 id="run-diagnostic-checks">


100如果安装成功但运行 `claude` 时出现 `command not found` 或 `not recognized` 错误,安装目录不在您的 PATH 中。您的 shell 在 PATH 中列出的目录中搜索程序,安装程序在 macOS/Linux 上将 `claude` 放在 `~/.local/bin/claude`,或在 Windows 上放在 `%USERPROFILE%\.local\bin\claude.exe`。100如果安装成功但运行 `claude` 时出现 `command not found` 或 `not recognized` 错误,安装目录不在您的 PATH 中。您的 shell 在 PATH 中列出的目录中搜索程序,安装程序在 macOS/Linux 上将 `claude` 放在 `~/.local/bin/claude`,或在 Windows 上放在 `%USERPROFILE%\.local\bin\claude.exe`。

101 101 

102<Note>102<Note>

103 [VS Code 扩展](/zh-CN/vs-code)不会将 `claude` 放在此位置。它在扩展目录内捆绑了一个私有的 CLI 副本,用于其自己的聊天面板,不会将其添加到 PATH。如果您仅安装了扩展,`~/.local/bin/claude` 将不存在。运行[独立安装](/zh-CN/setup)以从终端使用 `claude`,然后继续下面的步骤。103 [VS Code 扩展](/docs/zh-CN/vs-code)不会将 `claude` 放在此位置。它在扩展目录内捆绑了一个私有的 CLI 副本,用于其自己的聊天面板,不会将其添加到 PATH。如果您仅安装了扩展,`~/.local/bin/claude` 将不存在。运行[独立安装](/docs/zh-CN/setup)以从终端使用 `claude`,然后继续下面的步骤。

104</Note>104</Note>

105 105 

106通过列出您的 PATH 条目并过滤 `local/bin` 来检查安装目录是否在您的 PATH 中:106通过列出您的 PATH 条目并过滤 `local/bin` 来检查安装目录是否在您的 PATH 中:


196 ls -la ~/.local/bin/claude196 ls -la ~/.local/bin/claude

197 ```197 ```

198 198 

199 一个本机安装显示一个指向 `~/.local/share/claude/versions/` 的符号链接。您在此路径创建的脚本或符号链接是自定义启动程序,[自动更新会将其保留在原位](/zh-CN/setup#auto-updates)。199 一个本机安装显示一个指向 `~/.local/share/claude/versions/` 的符号链接。您在此路径创建的脚本或符号链接是自定义启动程序,[自动更新会将其保留在原位](/docs/zh-CN/setup#auto-updates)。

200 200 

201 如果任一 `ls` 命令打印 `No such file or directory`,这不是错误。这意味着该位置没有安装任何内容,因此继续进行下一个检查。201 如果任一 `ls` 命令打印 `No such file or directory`,这不是错误。这意味着该位置没有安装任何内容,因此继续进行下一个检查。

202 202 


294Get-Command claude | Select-Object Source294Get-Command claude | Select-Object Source

295```295```

296 296 

297在 Linux 上,检查缺失的共享库。如果 `ldd` 显示缺失的库,您可能需要安装系统包。在 Alpine Linux 和其他基于 musl 的发行版上,请参阅 [Alpine Linux setup](/zh-CN/setup#alpine-linux-and-musl-based-distributions)。297在 Linux 上,检查缺失的共享库。如果 `ldd` 显示缺失的库,您可能需要安装系统包。在 Alpine Linux 和其他基于 musl 的发行版上,请参阅 [Alpine Linux setup](/docs/zh-CN/setup#alpine-linux-and-musl-based-distributions)。

298 298 

299```bash theme={null}299```bash theme={null}

300ldd "$(command -v claude)" | grep "not found"300ldd "$(command -v claude)" | grep "not found"


413brew install --cask claude-code413brew install --cask claude-code

414```414```

415 415 

416如果 Homebrew 安装的 Claude Code 版本比您预期的要旧,通常是相同的过时索引导致的。`claude-code` cask 跟踪稳定频道,通常比最新版本晚约一周;对于最新版本,请改为运行 `brew install --cask claude-code@latest`。请参阅 [Configure release channel](/zh-CN/setup#configure-release-channel) 了解两个 cask 之间的区别。416如果 Homebrew 安装的 Claude Code 版本比您预期的要旧,通常是相同的过时索引导致的。`claude-code` cask 跟踪稳定频道,通常比最新版本晚约一周;对于最新版本,请改为运行 `brew install --cask claude-code@latest`。请参阅 [Configure release channel](/docs/zh-CN/setup#configure-release-channel) 了解两个 cask 之间的区别。

417 417 

418<h3 id="tls-or-ssl-connection-errors">418<h3 id="tls-or-ssl-connection-errors">

419 TLS 或 SSL 连接错误419 TLS 或 SSL 连接错误


468 curl -sI https://downloads.claude.ai/claude-code-releases/latest468 curl -sI https://downloads.claude.ai/claude-code-releases/latest

469 ```469 ```

470 470 

4712. **如果在代理后面**,设置 `HTTPS_PROXY` 以便安装程序可以通过它路由。有关详细信息,请参阅 [proxy configuration](/zh-CN/network-config#proxy-configuration)。4712. **如果在代理后面**,设置 `HTTPS_PROXY` 以便安装程序可以通过它路由。有关详细信息,请参阅 [proxy configuration](/docs/zh-CN/network-config#proxy-configuration)。

472 ```bash theme={null}472 ```bash theme={null}

473 export HTTPS_PROXY=http://proxy.example.com:8080473 export HTTPS_PROXY=http://proxy.example.com:8080

474 curl -fsSL https://claude.ai/install.sh | bash474 curl -fsSL https://claude.ai/install.sh | bash


551 551 

552在 v2.1.200 之前,脚本仅以 shell 的裸 `Killed` 行退出,没有解释。552在 v2.1.200 之前,脚本仅以 shell 的裸 `Killed` 行退出,没有解释。

553 553 

554安装需要大约 512 MB 的可用内存,运行 Claude Code 需要更多。请参阅 [system requirements](/zh-CN/setup#system-requirements)。554安装需要大约 512 MB 的可用内存,运行 Claude Code 需要更多。请参阅 [system requirements](/docs/zh-CN/setup#system-requirements)。

555 555 

556**解决方案:**556**解决方案:**

557 557 


607 Windows 上的 Claude Code 需要 Git for Windows(用于 bash)或 PowerShell607 Windows 上的 Claude Code 需要 Git for Windows(用于 bash)或 PowerShell

608</h3>608</h3>

609 609 

610Git for Windows 是可选的。Claude Code 在缺少 Git Bash 时使用 [PowerShell tool](/zh-CN/tools-reference#powershell-tool),因此此错误意味着两个 shell 都未找到。610Git for Windows 是可选的。Claude Code 在缺少 Git Bash 时使用 [PowerShell tool](/docs/zh-CN/tools-reference#powershell-tool),因此此错误意味着两个 shell 都未找到。

611 611 

612**如果 PowerShell 从您的 PATH 中缺失**,其默认位置是 `C:\Windows\System32\WindowsPowerShell\v1.0\`。将该目录添加到您的 `PATH`,或安装 [PowerShell 7](https://aka.ms/powershell),它提供 `pwsh`。612**如果 PowerShell 从您的 PATH 中缺失**,其默认位置是 `C:\Windows\System32\WindowsPowerShell\v1.0\`。将该目录添加到您的 `PATH`,或安装 [PowerShell 7](https://aka.ms/powershell),它提供 `pwsh`。

613 613 

614**要改为安装 Git for Windows**,从 [git-scm.com/downloads/win](https://git-scm.com/downloads/win) 下载它。在设置期间,选择"Add to PATH"。安装后重启您的终端。安装它启用了 Bash 工具,在使用基于 Bash 的脚本和工具时很有用。614**要改为安装 Git for Windows**,从 [git-scm.com/downloads/win](https://git-scm.com/downloads/win) 下载它。在设置期间,选择"Add to PATH"。安装后重启您的终端。安装它启用了 Bash 工具,在使用基于 Bash 的脚本和工具时很有用。

615 615 

616**如果 Git 已安装**但 Claude Code 找不到它,请在您的 [settings.json file](/zh-CN/settings) 中设置路径:616**如果 Git 已安装**但 Claude Code 找不到它,请在您的 [settings.json file](/docs/zh-CN/settings) 中设置路径:

617 617 

618```json theme={null}618```json theme={null}

619{619{


641 641 

642如果这打印 `True`,您的操作系统没问题。关闭窗口,打开不带 x86 后缀的 `Windows PowerShell`,然后再次运行安装命令。642如果这打印 `True`,您的操作系统没问题。关闭窗口,打开不带 x86 后缀的 `Windows PowerShell`,然后再次运行安装命令。

643 643 

644如果这打印 `False`,您在 32 位版本的 Windows 上。Claude Code 需要 64 位操作系统。请参阅 [system requirements](/zh-CN/setup#system-requirements)。644如果这打印 `False`,您在 32 位版本的 Windows 上。Claude Code 需要 64 位操作系统。请参阅 [system requirements](/docs/zh-CN/setup#system-requirements)。

645 645 

646<h3 id="linux-musl-or-glibc-binary-mismatch">646<h3 id="linux-musl-or-glibc-binary-mismatch">

647 Linux musl 或 glibc 二进制文件不匹配647 Linux musl 或 glibc 二进制文件不匹配


737 WSL 中的 npm 安装错误737 WSL 中的 npm 安装错误

738</h3>738</h3>

739 739 

740如果您在 WSL 内使用 `npm install -g` 安装了 Claude Code,这些问题适用。如果您使用了 [native installer](/zh-CN/setup),请跳过此部分。740如果您在 WSL 内使用 `npm install -g` 安装了 Claude Code,这些问题适用。如果您使用了 [native installer](/docs/zh-CN/setup),请跳过此部分。

741 741 

742**OS 或平台检测问题。** 如果 npm 在安装期间报告平台不匹配,WSL 可能正在选择 Windows `npm`。首先运行 `npm config set os linux`,然后使用 `npm install -g @anthropic-ai/claude-code --force` 安装。不要使用 `sudo`。742**OS 或平台检测问题。** 如果 npm 在安装期间报告平台不匹配,WSL 可能正在选择 Windows `npm`。首先运行 `npm config set os linux`,然后使用 `npm install -g @anthropic-ai/claude-code --force` 安装。不要使用 `sudo`。

743 743 


786`@anthropic-ai/claude-code` npm 包通过每个平台的可选依赖项(如 `@anthropic-ai/claude-code-darwin-arm64`)拉入本机二进制文件。如果在安装后运行 `claude` 打印 `Could not find native binary package "@anthropic-ai/claude-code-<platform>"`,请检查以下原因:786`@anthropic-ai/claude-code` npm 包通过每个平台的可选依赖项(如 `@anthropic-ai/claude-code-darwin-arm64`)拉入本机二进制文件。如果在安装后运行 `claude` 打印 `Could not find native binary package "@anthropic-ai/claude-code-<platform>"`,请检查以下原因:

787 787 

788* **可选依赖项被禁用。** 从您的 npm 安装命令中删除 `--omit=optional`,从 pnpm 中删除 `--no-optional`,或从 yarn 中删除 `--ignore-optional`,并检查 `.npmrc` 是否未设置 `optional=false`。然后重新安装。本机二进制文件仅作为可选依赖项提供,因此如果跳过它,就没有 JavaScript 回退。788* **可选依赖项被禁用。** 从您的 npm 安装命令中删除 `--omit=optional`,从 pnpm 中删除 `--no-optional`,或从 yarn 中删除 `--ignore-optional`,并检查 `.npmrc` 是否未设置 `optional=false`。然后重新安装。本机二进制文件仅作为可选依赖项提供,因此如果跳过它,就没有 JavaScript 回退。

789* **不支持的平台。** 预构建的二进制文件为 `darwin-arm64`、`darwin-x64`、`linux-x64`、`linux-arm64`、`linux-x64-musl`、`linux-arm64-musl`、`win32-x64` 和 `win32-arm64` 发布。Claude Code 不为其他平台提供二进制文件;请参阅 [system requirements](/zh-CN/setup#system-requirements)。{/* min-version: 2.1.205 */}在 FreeBSD 上,安装程序报告平台不受支持。在 v2.1.205 之前,它将 FreeBSD 视为 Linux 并下载了无法运行的二进制文件。789* **不支持的平台。** 预构建的二进制文件为 `darwin-arm64`、`darwin-x64`、`linux-x64`、`linux-arm64`、`linux-x64-musl`、`linux-arm64-musl`、`win32-x64` 和 `win32-arm64` 发布。Claude Code 不为其他平台提供二进制文件;请参阅 [system requirements](/docs/zh-CN/setup#system-requirements)。在 FreeBSD 上,安装程序报告平台不受支持。在 v2.1.205 之前,它将 FreeBSD 视为 Linux 并下载了无法运行的二进制文件。

790* **企业 npm 镜像缺少平台包。** 确保您的注册表除了元包外还镜像所有八个 `@anthropic-ai/claude-code-*` 平台包。790* **企业 npm 镜像缺少平台包。** 确保您的注册表除了元包外还镜像所有八个 `@anthropic-ai/claude-code-*` 平台包。

791 791 

792使用 `--ignore-scripts` 安装不会触发此错误。跳过链接二进制文件到位的 postinstall 步骤,因此 Claude Code 回退到在每次启动时定位和生成平台二进制文件的包装器。这有效但启动速度较慢;使用启用的脚本重新安装以进行直接执行。792使用 `--ignore-scripts` 安装不会触发此错误。跳过链接二进制文件到位的 postinstall 步骤,因此 Claude Code 回退到在每次启动时定位和生成平台二进制文件的包装器。这有效但启动速度较慢;使用启用的脚本重新安装以进行直接执行。


829 829 

830* **Claude Pro/Max 用户**:在 [claude.ai/settings](https://claude.ai/settings) 验证您的订阅是否有效830* **Claude Pro/Max 用户**:在 [claude.ai/settings](https://claude.ai/settings) 验证您的订阅是否有效

831* **Anthropic Console 用户**:确认您的账户具有"Claude Code"或"Developer"角色。管理员在 Anthropic Console 的"Settings → Members"中分配此角色。831* **Anthropic Console 用户**:确认您的账户具有"Claude Code"或"Developer"角色。管理员在 Anthropic Console 的"Settings → Members"中分配此角色。

832* **在代理后面**:企业代理可能干扰 API 请求。有关代理设置,请参阅 [network configuration](/zh-CN/network-config)。832* **在代理后面**:企业代理可能干扰 API 请求。有关代理设置,请参阅 [network configuration](/docs/zh-CN/network-config)。

833 833 

834<h3 id="this-organization-has-been-disabled-with-an-active-subscription">834<h3 id="this-organization-has-been-disabled-with-an-active-subscription">

835 此组织已被禁用,但有活跃订阅835 此组织已被禁用,但有活跃订阅


837 837 

838如果您看到 `API Error: 400 ... "This organization has been disabled"`,尽管有活跃的 Claude 订阅,`ANTHROPIC_API_KEY` 环境变量正在覆盖您的订阅。这通常发生在来自前一个雇主或项目的旧 API 密钥仍在您的 shell 配置文件中设置时。838如果您看到 `API Error: 400 ... "This organization has been disabled"`,尽管有活跃的 Claude 订阅,`ANTHROPIC_API_KEY` 环境变量正在覆盖您的订阅。这通常发生在来自前一个雇主或项目的旧 API 密钥仍在您的 shell 配置文件中设置时。

839 839 

840当 `ANTHROPIC_API_KEY` 存在且您已批准它时,Claude Code 使用该密钥而不是您的订阅的 OAuth 凭证。在使用 `-p` 标志的非交互模式下,当存在时始终使用该密钥。有关完整的解决顺序,请参阅 [authentication precedence](/zh-CN/authentication#authentication-precedence)。840当 `ANTHROPIC_API_KEY` 存在且您已批准它时,Claude Code 使用该密钥而不是您的订阅的 OAuth 凭证。在使用 `-p` 标志的非交互模式下,当存在时始终使用该密钥。有关完整的解决顺序,请参阅 [authentication precedence](/docs/zh-CN/authentication#authentication-precedence)。

841 841 

842要改用您的订阅,请取消设置环境变量并从您的 shell 配置文件中删除它:842要改用您的订阅,请取消设置环境变量并从您的 shell 配置文件中删除它:

843 843 


907 907 

908如果凭证在您的终端中有效但在 VS Code 或 JetBrains 扩展中无效,IDE 进程可能未继承您的 shell 环境。在 IDE 自己的设置中设置提供商环境变量,或从已导出它们的终端启动 IDE。908如果凭证在您的终端中有效但在 VS Code 或 JetBrains 扩展中无效,IDE 进程可能未继承您的 shell 环境。在 IDE 自己的设置中设置提供商环境变量,或从已导出它们的终端启动 IDE。

909 909 

910有关完整的提供商设置,请参阅 [Amazon Bedrock](/zh-CN/amazon-bedrock)、[Google Cloud 的 Agent Platform](/zh-CN/google-vertex-ai) 或 [Microsoft Foundry](/zh-CN/microsoft-foundry)。910有关完整的提供商设置,请参阅 [Amazon Bedrock](/docs/zh-CN/amazon-bedrock)、[Google Cloud 的 Agent Platform](/docs/zh-CN/google-vertex-ai) 或 [Microsoft Foundry](/docs/zh-CN/microsoft-foundry)。

911 911 

912<h2 id="still-stuck">912<h2 id="still-stuck">

913 仍然卡住913 仍然卡住

voice-dictation.md +16 −16

Details

12 点击模式需要 Claude Code v2.1.116 或更高版本。使用 `claude --version` 检查你的版本。12 点击模式需要 Claude Code v2.1.116 或更高版本。使用 `claude --version` 检查你的版本。

13</Note>13</Note>

14 14 

15听写功能也适用于[代理视图](/zh-CN/agent-view#peek-and-reply)。在调度输入或窥视面板回复获得焦点时,按住或点击你的按键通话键,以便向后台会话进行听写。15听写功能也适用于[代理视图](/docs/zh-CN/agent-view#peek-and-reply)。在调度输入或窥视面板回复获得焦点时,按住或点击你的按键通话键,以便向后台会话进行听写。

16 16 

17<h2 id="requirements">17<h2 id="requirements">

18 要求18 要求


22 22 

23* **一个 Claude.ai 账户**:语音转文本服务仅在你使用 Claude.ai 账户进行身份验证时可用,当 Claude Code 配置为直接使用 Anthropic API 密钥、Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry 时不可用。23* **一个 Claude.ai 账户**:语音转文本服务仅在你使用 Claude.ai 账户进行身份验证时可用,当 Claude Code 配置为直接使用 Anthropic API 密钥、Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry 时不可用。

24* **一个未启用 HIPAA 合规性的组织**:当此限制适用时,`/voice` 显示 `Voice mode is disabled by your organization's policy`。24* **一个未启用 HIPAA 合规性的组织**:当此限制适用时,`/voice` 显示 `Voice mode is disabled by your organization's policy`。

25* **一个本地麦克风**:语音听写在远程环境中不起作用,例如[网络上的 Claude Code](/zh-CN/claude-code-on-the-web)或 SSH 会话。25* **一个本地麦克风**:语音听写在远程环境中不起作用,例如[网络上的 Claude Code](/docs/zh-CN/claude-code-on-the-web)或 SSH 会话。

26* **如果你在 WSL 中运行 Claude Code,则需要 WSLg**:WSLg 包含在 Windows 10 或 11 上从 Microsoft Store 安装的 WSL2 中。如果 WSLg 不可用,例如在 WSL1 上,改为在本机 Windows 中运行 Claude Code。26* **如果你在 WSL 中运行 Claude Code,则需要 WSLg**:WSLg 包含在 Windows 10 或 11 上从 Microsoft Store 安装的 WSL2 中。如果 WSLg 不可用,例如在 WSL1 上,改为在本机 Windows 中运行 Claude Code。

27 27 

28转录不消耗 Claude 消息或令牌,也不计入 `/usage` 中显示的限制。有关 Anthropic 如何处理你的数据,请参阅[数据使用](/zh-CN/data-usage)。28转录不消耗 Claude 消息或令牌,也不计入 `/usage` 中显示的限制。有关 Anthropic 如何处理你的数据,请参阅[数据使用](/docs/zh-CN/data-usage)。

29 29 

30音频录制在 macOS、Linux 和 Windows 上使用内置的本机模块。在 Linux 上,如果本机模块无法加载,Claude Code 会回退到 ALSA utils 中的 `arecord` 或 SoX 中的 `rec`。如果两者都不可用,`/voice` 会打印你的包管理器的安装命令。30音频录制在 macOS、Linux 和 Windows 上使用内置的本机模块。在 Linux 上,如果本机模块无法加载,Claude Code 会回退到 ALSA utils 中的 `arecord` 或 SoX 中的 `rec`。如果两者都不可用,`/voice` 会打印你的包管理器的安装命令。

31 31 

32Claude Code [VS Code 扩展](/zh-CN/vs-code)也支持语音听写,具有相同的 Claude.ai 账户要求。它在 VS Code Remote 会话中不可用,包括 SSH、Dev Containers 和 Codespaces,因为麦克风在你的本地机器上,而扩展在远程主机上运行。32Claude Code [VS Code 扩展](/docs/zh-CN/vs-code)也支持语音听写,具有相同的 Claude.ai 账户要求。它在 VS Code Remote 会话中不可用,包括 SSH、Dev Containers 和 Codespaces,因为麦克风在你的本地机器上,而扩展在远程主机上运行。

33 33 

34<h2 id="enable-voice-dictation">34<h2 id="enable-voice-dictation">

35 启用语音听写35 启用语音听写


51| `/voice tap` | 在[点击模式](#tap-to-record-and-send)中启用 |51| `/voice tap` | 在[点击模式](#tap-to-record-and-send)中启用 |

52| `/voice off` | 禁用 |52| `/voice off` | 禁用 |

53 53 

54语音听写在会话之间持续。直接在你的[用户设置文件](/zh-CN/settings)中设置它,而不是运行 `/voice`:54语音听写在会话之间持续。直接在你的[用户设置文件](/docs/zh-CN/settings)中设置它,而不是运行 `/voice`:

55 55 

56```json theme={null}56```json theme={null}

57{57{


62}62}

63```63```

64 64 

65启用语音听写时,当提示词为空时,输入页脚会显示 `hold space to speak` 提示。提示文本反映你当前的 `voice:pushToTalk` 快捷键绑定,如果你[重新绑定听写键](#rebind-the-dictation-key),它会更新。提示文本在两种模式中都相同,如果你配置了[自定义状态行](/zh-CN/statusline),则不会显示。65启用语音听写时,当提示词为空时,输入页脚会显示 `hold space to speak` 提示。提示文本反映你当前的 `voice:pushToTalk` 快捷键绑定,如果你[重新绑定听写键](#rebind-the-dictation-key),它会更新。提示文本在两种模式中都相同,如果你配置了[自定义状态行](/docs/zh-CN/statusline),则不会显示。

66 66 

67转录在两种模式中都针对编码词汇进行了调整。常见的开发术语如 `regex`、`OAuth`、`JSON` 和 `localhost` 被正确识别,你当前的项目名称和 git 分支名称会自动添加为识别提示。67转录在两种模式中都针对编码词汇进行了调整。常见的开发术语如 `regex`、`OAuth`、`JSON` 和 `localhost` 被正确识别,你当前的项目名称和 git 分支名称会自动添加为识别提示。

68 68 


108 更改听写语言108 更改听写语言

109</h2>109</h2>

110 110 

111语音听写使用与控制 Claude 响应语言相同的[`language` 设置](/zh-CN/settings)。如果该设置为空,听写默认为英语。在 VS Code 扩展中,如果 `language` 为空,听写在默认为英语之前使用 VS Code 的 `accessibility.voice.speechLanguage` 设置。111语音听写使用与控制 Claude 响应语言相同的[`language` 设置](/docs/zh-CN/settings)。如果该设置为空,听写默认为英语。在 VS Code 扩展中,如果 `language` 为空,听写在默认为英语之前使用 VS Code 的 `accessibility.voice.speechLanguage` 设置。

112 112 

113<Accordion title="支持的听写语言">113<Accordion title="支持的听写语言">

114 | 语言 | 代码 |114 | 语言 | 代码 |


149 重新绑定听写键149 重新绑定听写键

150</h2>150</h2>

151 151 

152听写键在 `Chat` 上下文中绑定到 `voice:pushToTalk`,默认为 `Space`。相同的绑定控制按住和点击模式。在 [`~/.claude/keybindings.json`](/zh-CN/keybindings) 中重新绑定它:152听写键在 `Chat` 上下文中绑定到 `voice:pushToTalk`,默认为 `Space`。相同的绑定控制按住和点击模式。在 [`~/.claude/keybindings.json`](/docs/zh-CN/keybindings) 中重新绑定它:

153 153 

154```json theme={null}154```json theme={null}

155{155{


169 169 

170在按住模式中,避免绑定裸字母键如 `v`,因为按住检测依赖于按键重复,字母在预热期间输入到提示词中。使用 `Space`,或使用修饰符组合如 `meta+k` 在第一次按键时开始录制,无需预热。点击模式没有预热,所以大多数键都可以。170在按住模式中,避免绑定裸字母键如 `v`,因为按住检测依赖于按键重复,字母在预热期间输入到提示词中。使用 `Space`,或使用修饰符组合如 `meta+k` 在第一次按键时开始录制,无需预热。点击模式没有预热,所以大多数键都可以。

171 171 

172某些键不会传递到终端应用程序,根本无法绑定。例如,如果你尝试绑定 `Caps Lock`,会显示错误。有关完整的快捷键语法和保留快捷键列表,请参阅[自定义键盘快捷键](/zh-CN/keybindings)。172某些键不会传递到终端应用程序,根本无法绑定。例如,如果你尝试绑定 `Caps Lock`,会显示错误。有关完整的快捷键语法和保留快捷键列表,请参阅[自定义键盘快捷键](/docs/zh-CN/keybindings)。

173 173 

174<h2 id="troubleshooting">174<h2 id="troubleshooting">

175 故障排除175 故障排除


181* **`Voice mode is disabled by your organization's policy`**:你的组织的合规配置禁用了语音听写,如[要求](#requirements)中所述。联系你的组织管理员以确认你的组织是否可以使用语音听写。181* **`Voice mode is disabled by your organization's policy`**:你的组织的合规配置禁用了语音听写,如[要求](#requirements)中所述。联系你的组织管理员以确认你的组织是否可以使用语音听写。

182* **`Microphone access is denied`**:在系统设置中授予你的终端麦克风权限。在 macOS 上,转到系统设置 → 隐私和安全 → 麦克风并启用你的终端应用,然后再次运行 `/voice`。在 Windows 上,转到设置 → 隐私和安全 → 麦克风并为桌面应用打开麦克风访问,然后再次运行 `/voice`。如果你的终端未在 macOS 设置中列出,请参阅[终端未在 macOS 麦克风设置中列出](#terminal-not-listed-in-macos-microphone-settings)。182* **`Microphone access is denied`**:在系统设置中授予你的终端麦克风权限。在 macOS 上,转到系统设置 → 隐私和安全 → 麦克风并启用你的终端应用,然后再次运行 `/voice`。在 Windows 上,转到设置 → 隐私和安全 → 麦克风并为桌面应用打开麦克风访问,然后再次运行 `/voice`。如果你的终端未在 macOS 设置中列出,请参阅[终端未在 macOS 麦克风设置中列出](#terminal-not-listed-in-macos-microphone-settings)。

183* **Linux 上的 `No audio recording tool found`**:本机音频模块无法加载,没有安装回退。使用错误消息中显示的命令安装 SoX,例如 `sudo apt-get install sox`。183* **Linux 上的 `No audio recording tool found`**:本机音频模块无法加载,没有安装回退。使用错误消息中显示的命令安装 SoX,例如 `sudo apt-get install sox`。

184* **`Voice mode requires a microphone, but SoX could not open an audio capture device`**:SoX 已安装,但主机没有音频捕获设备,例如无头服务器或容器。在有麦克风的机器上运行 Claude Code。{/* min-version: 2.1.195 */}从 v2.1.195 开始,Linux 上的 Claude Code 在这种情况下报告此消息;早期版本即使已安装 SoX 也会要求你安装 SoX。184* **`Voice mode requires a microphone, but SoX could not open an audio capture device`**:SoX 已安装,但主机没有音频捕获设备,例如无头服务器或容器。在有麦克风的机器上运行 Claude Code。从 v2.1.195 开始,Linux 上的 Claude Code 在这种情况下报告此消息;早期版本即使已安装 SoX 也会要求你安装 SoX。

185* **`Voice mode could not find a working audio recorder in WSL`**:WSLg 通过 PulseAudio 而不是 ALSA 设备路由音频,因此 SoX 需要显式安装其 PulseAudio 后端。运行 `sudo apt install sox libsox-fmt-pulse`。单独安装 `sox` 会拉入 ALSA 后端,它无法在 WSL 上录制,因为没有 `/dev/snd` 设备。185* **`Voice mode could not find a working audio recorder in WSL`**:WSLg 通过 PulseAudio 而不是 ALSA 设备路由音频,因此 SoX 需要显式安装其 PulseAudio 后端。运行 `sudo apt install sox libsox-fmt-pulse`。单独安装 `sox` 会拉入 ALSA 后端,它无法在 WSL 上录制,因为没有 `/dev/snd` 设备。

186* **`Voice input is failing repeatedly and has been paused`**:语音听写连续遇到多个启动失败,并停止尝试新会话,直到一个成功。失败计数无论麦克风无法启动还是录音机启动然后停止而不产生任何音频。这通常意味着此主机上的麦克风或音频堆栈无法捕获音频,例如无头服务器、没有音频直通的远程 shell 或被拒绝的麦克风权限。确认工作输入设备,从上面的条目中修复根本原因,然后再次触发语音。{/* min-version: 2.1.202 */}在 v2.1.202 之前,只有启动失败计入暂停。186* **`Voice input is failing repeatedly and has been paused`**:语音听写连续遇到多个启动失败,并停止尝试新会话,直到一个成功。失败计数无论麦克风无法启动还是录音机启动然后停止而不产生任何音频。这通常意味着此主机上的麦克风或音频堆栈无法捕获音频,例如无头服务器、没有音频直通的远程 shell 或被拒绝的麦克风权限。确认工作输入设备,从上面的条目中修复根本原因,然后再次触发语音。在 v2.1.202 之前,只有启动失败计入暂停。

187* **在按住模式中按住 `Space` 时没有任何反应**:在按住时观察提示词输入。如果空格不断累积,语音听写可能已关闭;运行 `/voice hold` 启用它。如果只出现一两个空格然后没有任何反应,语音听写已打开但按住检测未触发。按住检测需要你的终端发送按键重复事件,所以如果在操作系统级别禁用了按键重复,它无法检测按住的键。使用 `/voice tap` 切换到点击模式以避免按键重复要求。187* **在按住模式中按住 `Space` 时没有任何反应**:在按住时观察提示词输入。如果空格不断累积,语音听写可能已关闭;运行 `/voice hold` 启用它。如果只出现一两个空格然后没有任何反应,语音听写已打开但按住检测未触发。按住检测需要你的终端发送按键重复事件,所以如果在操作系统级别禁用了按键重复,它无法检测按住的键。使用 `/voice tap` 切换到点击模式以避免按键重复要求。

188* **在点击模式中点击 `Space` 输入空格而不是录制**:第一次点击仅在提示词输入为空时开始录制。先清除输入,或通过运行 `/voice tap` 检查你是否处于点击模式。188* **在点击模式中点击 `Space` 输入空格而不是录制**:第一次点击仅在提示词输入为空时开始录制。先清除输入,或通过运行 `/voice tap` 检查你是否处于点击模式。

189* **`No audio detected from microphone`**:录制开始但捕获了静音。确认正确的输入设备设置为系统默认值,其输入级别未静音或接近零。在 Windows 上,打开设置 → 系统 → 声音 → 输入并选择你的麦克风。在 macOS 上,打开系统设置 → 声音 → 输入。189* **`No audio detected from microphone`**:录制开始但捕获了静音。确认正确的输入设备设置为系统默认值,其输入级别未静音或接近零。在 Windows 上,打开设置 → 系统 → 声音 → 输入并选择你的麦克风。在 macOS 上,打开系统设置 → 声音 → 输入。

190* **`Voice connection failed`**:你的录制从未到达转录服务,因为连接失败。检查你的网络并重试。{/* min-version: 2.1.200 */}捕获无音频的录制报告 `No audio detected from microphone` 而不是此消息。在 v2.1.200 之前,静音麦克风可能报告连接失败,这表示网络问题,而实际问题是输入设备。190* **`Voice connection failed`**:你的录制从未到达转录服务,因为连接失败。检查你的网络并重试。捕获无音频的录制报告 `No audio detected from microphone` 而不是此消息。在 v2.1.200 之前,静音麦克风可能报告连接失败,这表示网络问题,而实际问题是输入设备。

191* **`No speech detected`**:音频到达转录服务但未识别任何单词。靠近麦克风说话,减少背景噪音,并确认你的[听写语言](#change-the-dictation-language)与你说话的语言匹配。191* **`No speech detected`**:音频到达转录服务但未识别任何单词。靠近麦克风说话,减少背景噪音,并确认你的[听写语言](#change-the-dictation-language)与你说话的语言匹配。

192* **转录是乱码或使用了错误的语言**:听写默认为英语。如果你用另一种语言听写,请先在 `/config` 中设置它。请参阅[更改听写语言](#change-the-dictation-language)。192* **转录是乱码或使用了错误的语言**:听写默认为英语。如果你用另一种语言听写,请先在 `/config` 中设置它。请参阅[更改听写语言](#change-the-dictation-language)。

193 193 


219 另请参阅219 另请参阅

220</h2>220</h2>

221 221 

222* [自定义键盘快捷键](/zh-CN/keybindings):重新绑定 `voice:pushToTalk` 和其他 CLI 键盘操作222* [自定义键盘快捷键](/docs/zh-CN/keybindings):重新绑定 `voice:pushToTalk` 和其他 CLI 键盘操作

223* [配置设置](/zh-CN/settings):`voice`、`language` 和其他设置键的完整参考223* [配置设置](/docs/zh-CN/settings):`voice`、`language` 和其他设置键的完整参考

224* [交互模式](/zh-CN/interactive-mode):键盘快捷键、输入模式和会话控制224* [交互模式](/docs/zh-CN/interactive-mode):键盘快捷键、输入模式和会话控制

225* [命令](/zh-CN/commands):`/voice`、`/config` 和所有其他命令的参考225* [命令](/docs/zh-CN/commands):`/voice`、`/config` 和所有其他命令的参考

vs-code.md +35 −35

Details

19安装前,请确保您拥有:19安装前,请确保您拥有:

20 20 

21* VS Code 1.98.0 或更高版本21* VS Code 1.98.0 或更高版本

22* Anthropic 账户:任何付费 Claude 订阅(Pro、Max、Team 或 Enterprise)或 Claude Console 账户都可以使用,无需 API 密钥。首次打开扩展时,您将[使用此账户登录](/zh-CN/authentication#log-in-to-claude-code)。如果您通过第三方提供商(如 Amazon Bedrock 或 Google Cloud 的 Agent Platform)访问 Claude,请参阅[使用第三方提供商](#use-third-party-providers)了解设置说明。22* Anthropic 账户:任何付费 Claude 订阅(Pro、Max、Team 或 Enterprise)或 Claude Console 账户都可以使用,无需 API 密钥。首次打开扩展时,您将[使用此账户登录](/docs/zh-CN/authentication#log-in-to-claude-code)。如果您通过第三方提供商(如 Amazon Bedrock 或 Google Cloud 的 Agent Platform)访问 Claude,请参阅[使用第三方提供商](#use-third-party-providers)了解设置说明。

23 23 

24<Tip>24<Tip>

25 该扩展包含其自己的 CLI(命令行界面)副本用于聊天面板。要在 VS Code 的集成终端中运行 `claude`,您还需要[独立 CLI 安装](/zh-CN/setup)。有关详细信息,请参阅 [VS Code 扩展与 Claude Code CLI](#vs-code-extension-vs-claude-code-cli)。25 该扩展包含其自己的 CLI(命令行界面)副本用于聊天面板。要在 VS Code 的集成终端中运行 `claude`,您还需要[独立 CLI 安装](/docs/zh-CN/setup)。有关详细信息,请参阅 [VS Code 扩展与 Claude Code CLI](#vs-code-extension-vs-claude-code-cli)。

26</Tip>26</Tip>

27 27 

28<h2 id="install-the-extension">28<h2 id="install-the-extension">


36 36 

37或在 VS Code 中,按 `Cmd+Shift+X`(Mac)或 `Ctrl+Shift+X`(Windows/Linux)打开扩展视图,搜索"Claude Code",然后点击**安装**。37或在 VS Code 中,按 `Cmd+Shift+X`(Mac)或 `Ctrl+Shift+X`(Windows/Linux)打开扩展视图,搜索"Claude Code",然后点击**安装**。

38 38 

39该扩展也可以安装在其他 VS Code 分支中,如 Devin Desktop 或 Kiro。在编辑器的扩展视图中搜索"Claude Code",或从 [Open VSX 注册表](https://open-vsx.org/extension/Anthropic/claude-code) 安装。如果您的编辑器无法安装该扩展,请[安装 CLI](/zh-CN/quickstart) 并在其集成终端中运行 `claude`。CLI 可在任何终端中使用。39该扩展也可以安装在其他 VS Code 分支中,如 Devin Desktop 或 Kiro。在编辑器的扩展视图中搜索"Claude Code",或从 [Open VSX 注册表](https://open-vsx.org/extension/Anthropic/claude-code) 安装。如果您的编辑器无法安装该扩展,请[安装 CLI](/docs/zh-CN/quickstart) 并在其集成终端中运行 `claude`。CLI 可在任何终端中使用。

40 40 

41<Note>如果安装后扩展没有出现,请重启 VS Code 或从命令面板运行"Developer: Reload Window"。</Note>41<Note>如果安装后扩展没有出现,请重启 VS Code 或从命令面板运行"Developer: Reload Window"。</Note>

42 42 


90 </Step>90 </Step>

91</Steps>91</Steps>

92 92 

93有关您可以使用 Claude Code 做什么的更多想法,请参阅[常见工作流](/zh-CN/common-workflows)。93有关您可以使用 Claude Code 做什么的更多想法,请参阅[常见工作流](/docs/zh-CN/common-workflows)。

94 94 

95<Tip>95<Tip>

96 从命令面板运行"Claude Code: Open Walkthrough"以获得基础知识的引导式教程。96 从命令面板运行"Claude Code: Open Walkthrough"以获得基础知识的引导式教程。


102 102 

103提示框支持多个功能:103提示框支持多个功能:

104 104 

105* **权限模式**:点击提示框底部的模式指示器以切换模式,或在 VS Code 设置中的 `claudeCode.initialPermissionMode` 下设置默认值。请参阅[权限模式](/zh-CN/permission-modes#switch-permission-modes)了解指示器提供的每种模式。105* **权限模式**:点击提示框底部的模式指示器以切换模式,或在 VS Code 设置中的 `claudeCode.initialPermissionMode` 下设置默认值。请参阅[权限模式](/docs/zh-CN/permission-modes#switch-permission-modes)了解指示器提供的每种模式。

106 * **Manual**:Claude 在文件编辑和大多数 shell 命令前请求许可。106 * **Manual**:Claude 在文件编辑和大多数 shell 命令前请求许可。

107 * **Plan**:Claude 描述它将做什么,并在进行更改前等待批准。VS Code 会自动将计划作为完整的 Markdown 文档打开,您可以添加内联注释以在 Claude 开始前提供反馈。107 * **Plan**:Claude 描述它将做什么,并在进行更改前等待批准。VS Code 会自动将计划作为完整的 Markdown 文档打开,您可以添加内联注释以在 Claude 开始前提供反馈。

108 * **Edit automatically**:Claude 进行编辑而不询问。108 * **Edit automatically**:Claude 进行编辑而不询问。

109* **命令菜单**:点击 `/` 或输入 `/` 以打开命令菜单。选项包括附加文件、切换模型、切换扩展思考、查看计划使用情况(`/usage`)以及启动 [Remote Control](/zh-CN/remote-control) 会话(`/remote-control`)。自定义部分提供对 MCP servers、hooks、memory、permissions 和 plugins 的访问。带有终端图标的项目在集成终端中打开。109* **命令菜单**:点击 `/` 或输入 `/` 以打开命令菜单。选项包括附加文件、切换模型、切换扩展思考、查看计划使用情况(`/usage`)以及启动 [Remote Control](/docs/zh-CN/remote-control) 会话(`/remote-control`)。自定义部分提供对 MCP servers、hooks、memory、permissions 和 plugins 的访问。带有终端图标的项目在集成终端中打开。

110 * {/* min-version: 2.1.203 */}设置部分包括**为所有会话启用 Remote Control**,它设置 [`remoteControlAtStartup`](/zh-CN/settings#available-settings) 以便[每个新的交互式会话都自动连接到 Remote Control](/zh-CN/remote-control#enable-remote-control-for-all-sessions)。需要 Claude Code v2.1.203 或更高版本。110 * 设置部分包括**为所有会话启用 Remote Control**,它设置 [`remoteControlAtStartup`](/docs/zh-CN/settings#available-settings) 以便[每个新的交互式会话都自动连接到 Remote Control](/docs/zh-CN/remote-control#enable-remote-control-for-all-sessions)。需要 Claude Code v2.1.203 或更高版本。

111* **上下文指示器**:提示框显示您使用了多少 Claude 的 context window。Claude 在需要时自动压缩,或者您可以手动运行 `/compact`。111* **上下文指示器**:提示框显示您使用了多少 Claude 的 context window。Claude 在需要时自动压缩,或者您可以手动运行 `/compact`。

112* **扩展思考**:让 Claude 花更多时间推理复杂问题。通过命令菜单(`/`)切换它。Claude 的推理在对话中显示为折叠块:点击一个块来阅读它,或按 `Ctrl+O` 以展开或折叠会话中的每个思考块。有关详细信息,请参阅[扩展思考](/zh-CN/model-config#extended-thinking)。112* **扩展思考**:让 Claude 花更多时间推理复杂问题。通过命令菜单(`/`)切换它。Claude 的推理在对话中显示为折叠块:点击一个块来阅读它,或按 `Ctrl+O` 以展开或折叠会话中的每个思考块。有关详细信息,请参阅[扩展思考](/docs/zh-CN/model-config#extended-thinking)。

113* **多行输入**:按 `Shift+Enter` 添加新行而不发送。这也适用于问题对话框的"其他"自由文本输入。113* **多行输入**:按 `Shift+Enter` 添加新行而不发送。这也适用于问题对话框的"其他"自由文本输入。

114 114 

115<h3 id="reference-files-and-folders">115<h3 id="reference-files-and-folders">


133 恢复过去的对话133 恢复过去的对话

134</h3>134</h3>

135 135 

136点击 Claude Code 面板顶部的**会话历史**按钮以访问您的对话历史记录。您可以按关键字搜索或按时间浏览(今天、昨天、过去 7 天等)。点击任何对话以使用完整的消息历史记录恢复它。新会话根据您的第一条消息接收 AI 生成的标题。将鼠标悬停在会话上以显示重命名和删除操作:重命名以给它一个描述性标题,或删除以将其从列表中删除。有关恢复会话的更多信息,请参阅[管理会话](/zh-CN/sessions)。136点击 Claude Code 面板顶部的**会话历史**按钮以访问您的对话历史记录。您可以按关键字搜索或按时间浏览(今天、昨天、过去 7 天等)。点击任何对话以使用完整的消息历史记录恢复它。新会话根据您的第一条消息接收 AI 生成的标题。将鼠标悬停在会话上以显示重命名和删除操作:重命名以给它一个描述性标题,或删除以将其从列表中删除。有关恢复会话的更多信息,请参阅[管理会话](/docs/zh-CN/sessions)。

137 137 

138<h3 id="resume-cloud-sessions-from-claude-ai">138<h3 id="resume-cloud-sessions-from-claude-ai">

139 从 Claude.ai 恢复远程会话139 从 Claude.ai 恢复远程会话

140</h3>140</h3>

141 141 

142如果您使用[网络上的 Claude Code](/zh-CN/claude-code-on-the-web),您可以直接在 VS Code 中恢复这些远程会话。这需要使用 **Claude.ai Subscription** 登录,而不是 Anthropic Console。142如果您使用[网络上的 Claude Code](/docs/zh-CN/claude-code-on-the-web),您可以直接在 VS Code 中恢复这些远程会话。这需要使用 **Claude.ai Subscription** 登录,而不是 Anthropic Console。

143 143 

144<Steps>144<Steps>

145 <Step title="打开会话历史">145 <Step title="打开会话历史">


167 167 

168该对话框还分解了对您的计划限制有贡献的内容。它标记了占最近使用情况 10% 或更多的行为,例如缓存未命中、长上下文和子代理密集或高度并行的会话,每个都有减少它的提示。属性表显示了每个 skill、subagent、plugin 和 MCP server 贡献了多少使用情况。需要 Claude Code v2.1.174 或更高版本。168该对话框还分解了对您的计划限制有贡献的内容。它标记了占最近使用情况 10% 或更多的行为,例如缓存未命中、长上下文和子代理密集或高度并行的会话,每个都有减少它的提示。属性表显示了每个 skill、subagent、plugin 和 MCP server 贡献了多少使用情况。需要 Claude Code v2.1.174 或更高版本。

169 169 

170使用日期和周切换以在过去 24 小时和过去 7 天之间切换。这些数字是近似的,从这台机器上的本地会话计算,因此不包括来自其他设备或 claude.ai 的使用情况。有关跟踪和减少使用情况的更多信息,请参阅[跟踪您的成本](/zh-CN/costs#track-your-costs)。170使用日期和周切换以在过去 24 小时和过去 7 天之间切换。这些数字是近似的,从这台机器上的本地会话计算,因此不包括来自其他设备或 claude.ai 的使用情况。有关跟踪和减少使用情况的更多信息,请参阅[跟踪您的成本](/docs/zh-CN/costs#track-your-costs)。

171 171 

172<h2 id="customize-your-workflow">172<h2 id="customize-your-workflow">

173 自定义您的工作流173 自定义您的工作流


209 管理 plugins209 管理 plugins

210</h2>210</h2>

211 211 

212VS Code 扩展包括用于安装和管理 [plugins](/zh-CN/plugins) 的图形界面。在提示框中输入 `/plugins` 以打开**管理 plugins** 界面。212VS Code 扩展包括用于安装和管理 [plugins](/docs/zh-CN/plugins) 的图形界面。在提示框中输入 `/plugins` 以打开**管理 plugins** 界面。

213 213 

214<h3 id="install-plugins">214<h3 id="install-plugins">

215 安装 plugins215 安装 plugins


246 VS Code 中的 plugin 管理在幕后使用相同的 CLI 命令。您在扩展中配置的 plugins 和 marketplaces 也可在 CLI 中使用,反之亦然。246 VS Code 中的 plugin 管理在幕后使用相同的 CLI 命令。您在扩展中配置的 plugins 和 marketplaces 也可在 CLI 中使用,反之亦然。

247</Note>247</Note>

248 248 

249有关 plugin 系统的更多信息,请参阅 [Plugins](/zh-CN/plugins) 和 [Plugin marketplaces](/zh-CN/plugin-marketplaces)。249有关 plugin 系统的更多信息,请参阅 [Plugins](/docs/zh-CN/plugins) 和 [Plugin marketplaces](/docs/zh-CN/plugin-marketplaces)。

250 250 

251<h2 id="automate-browser-tasks-with-chrome">251<h2 id="automate-browser-tasks-with-chrome">

252 使用 Chrome 自动化浏览器任务252 使用 Chrome 自动化浏览器任务


264 264 

265Claude 为浏览器任务打开新选项卡并共享您的浏览器登录状态,因此它可以访问您已登录的任何网站。265Claude 为浏览器任务打开新选项卡并共享您的浏览器登录状态,因此它可以访问您已登录的任何网站。

266 266 

267有关设置说明、完整的功能列表和故障排除,请参阅[使用 Claude Code 与 Chrome](/zh-CN/chrome)。267有关设置说明、完整的功能列表和故障排除,请参阅[使用 Claude Code 与 Chrome](/docs/zh-CN/chrome)。

268 268 

269<h2 id="vs-code-commands-and-shortcuts">269<h2 id="vs-code-commands-and-shortcuts">

270 VS Code 命令和快捷键270 VS Code 命令和快捷键


332| 参数 | 描述 |332| 参数 | 描述 |

333| --------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |333| --------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |

334| `prompt` | 要在提示框中预填充的文本。必须进行 URL 编码。提示框被预填充但不会自动提交。 |334| `prompt` | 要在提示框中预填充的文本。必须进行 URL 编码。提示框被预填充但不会自动提交。 |

335| `session` | 要恢复的会话 ID,而不是启动新对话。会话必须属于 VS Code 中当前打开的工作区。如果找不到会话,将启动新的对话。如果会话已在选项卡中打开,该选项卡将获得焦点。要以编程方式捕获会话 ID,请参阅 [继续对话](/zh-CN/headless#continue-conversations)。 |335| `session` | 要恢复的会话 ID,而不是启动新对话。会话必须属于 VS Code 中当前打开的工作区。如果找不到会话,将启动新的对话。如果会话已在选项卡中打开,该选项卡将获得焦点。要以编程方式捕获会话 ID,请参阅 [继续对话](/docs/zh-CN/headless#continue-conversations)。 |

336 336 

337例如,要打开一个预填充"review my changes"的选项卡:337例如,要打开一个预填充"review my changes"的选项卡:

338 338 


340vscode://anthropic.claude-code/open?prompt=review%20my%20changes340vscode://anthropic.claude-code/open?prompt=review%20my%20changes

341```341```

342 342 

343要启动终端会话而不是 VS Code 选项卡,请使用 CLI 的 `claude-cli://` 处理程序。请参阅 [从链接启动会话](/zh-CN/deep-links)。343要启动终端会话而不是 VS Code 选项卡,请使用 CLI 的 `claude-cli://` 处理程序。请参阅 [从链接启动会话](/docs/zh-CN/deep-links)。

344 344 

345<h2 id="configure-settings">345<h2 id="configure-settings">

346 配置设置346 配置设置


349扩展有两种类型的设置:349扩展有两种类型的设置:

350 350 

351* **扩展设置**在 VS Code 中:控制扩展在 VS Code 中的行为。使用 `Cmd+,`(Mac)或 `Ctrl+,`(Windows/Linux)打开,然后转到扩展 → Claude Code。您也可以输入 `/` 并选择**常规配置**以打开设置。351* **扩展设置**在 VS Code 中:控制扩展在 VS Code 中的行为。使用 `Cmd+,`(Mac)或 `Ctrl+,`(Windows/Linux)打开,然后转到扩展 → Claude Code。您也可以输入 `/` 并选择**常规配置**以打开设置。

352* **Claude Code 设置**在 `~/.claude/settings.json` 中:在扩展和 CLI 之间共享。用于允许的命令、环境变量、hooks 和 MCP servers。有关详细信息,请参阅[设置](/zh-CN/settings)。352* **Claude Code 设置**在 `~/.claude/settings.json` 中:在扩展和 CLI 之间共享。用于允许的命令、环境变量、hooks 和 MCP servers。有关详细信息,请参阅[设置](/docs/zh-CN/settings)。

353 353 

354<Tip>354<Tip>

355 将 `"$schema": "https://json.schemastore.org/claude-code-settings.json"` 添加到您的 `settings.json` 以在 VS Code 中直接获得所有可用设置的自动完成和内联验证。355 将 `"$schema": "https://json.schemastore.org/claude-code-settings.json"` 添加到您的 `settings.json` 以在 VS Code 中直接获得所有可用设置的自动完成和内联验证。


362| 设置 | 默认值 | 描述 |362| 设置 | 默认值 | 描述 |

363| ----------------------------------- | --------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |363| ----------------------------------- | --------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

364| `useTerminal` | `false` | 以终端模式而不是图形面板启动 Claude |364| `useTerminal` | `false` | 以终端模式而不是图形面板启动 Claude |

365| `initialPermissionMode` | `default` | 控制新对话的批准提示:`default`、`plan`、`acceptEdits` 或 `bypassPermissions`。{/* min-version: 2.1.200 */}`manual` 是 `default` 的别名,选择模式指示器中标记为**手动**的模式。需要 Claude Code v2.1.200 或更高版本。请参阅[权限模式](/zh-CN/permission-modes)。 |365| `initialPermissionMode` | `default` | 控制新对话的批准提示:`default`、`plan`、`acceptEdits` 或 `bypassPermissions`。`manual` 是 `default` 的别名,选择模式指示器中标记为**手动**的模式。需要 Claude Code v2.1.200 或更高版本。请参阅[权限模式](/docs/zh-CN/permission-modes)。 |

366| `preferredLocation` | `panel` | Claude 打开的位置:`sidebar`(右侧)或 `panel`(新选项卡) |366| `preferredLocation` | `panel` | Claude 打开的位置:`sidebar`(右侧)或 `panel`(新选项卡) |

367| `autosave` | `true` | 在 Claude 读取或写入文件前自动保存文件 |367| `autosave` | `true` | 在 Claude 读取或写入文件前自动保存文件 |

368| `useCtrlEnterToSend` | `false` | 使用 Ctrl/Cmd+Enter 而不是 Enter 发送提示 |368| `useCtrlEnterToSend` | `false` | 使用 Ctrl/Cmd+Enter 而不是 Enter 发送提示 |


374| `environmentVariables` | `[]` | 为 Claude 进程设置环境变量。对于共享配置,请改用 Claude Code 设置。 |374| `environmentVariables` | `[]` | 为 Claude 进程设置环境变量。对于共享配置,请改用 Claude Code 设置。 |

375| `disableLoginPrompt` | `false` | 跳过身份验证提示(用于第三方提供商设置) |375| `disableLoginPrompt` | `false` | 跳过身份验证提示(用于第三方提供商设置) |

376| `allowDangerouslySkipPermissions` | `false` | 添加 Bypass permissions 到模式选择器。仅在没有互联网访问的沙箱中使用。 |376| `allowDangerouslySkipPermissions` | `false` | 添加 Bypass permissions 到模式选择器。仅在没有互联网访问的沙箱中使用。 |

377| `claudeProcessWrapper` | - | 用于启动 Claude 进程的可执行文件。当存在时,捆绑的二进制文件路径作为参数传递。如果扩展构建不包含您的平台的二进制文件,请将其设置为单独安装的 `claude` 二进制文件。在激活时出现"不支持的平台"错误意味着您的平台没有捆绑二进制文件;请参阅[哪些平台有预构建的二进制文件](/zh-CN/troubleshoot-install#native-binary-not-found-after-npm-install)。 |377| `claudeProcessWrapper` | - | 用于启动 Claude 进程的可执行文件。当存在时,捆绑的二进制文件路径作为参数传递。如果扩展构建不包含您的平台的二进制文件,请将其设置为单独安装的 `claude` 二进制文件。在激活时出现"不支持的平台"错误意味着您的平台没有捆绑二进制文件;请参阅[哪些平台有预构建的二进制文件](/docs/zh-CN/troubleshoot-install#native-binary-not-found-after-npm-install)。 |

378 378 

379<h2 id="vs-code-extension-vs-claude-code-cli">379<h2 id="vs-code-extension-vs-claude-code-cli">

380 VS Code 扩展与 Claude Code CLI380 VS Code 扩展与 Claude Code CLI

381</h2>381</h2>

382 382 

383Claude Code 既可作为 VS Code 扩展(图形面板)也可作为 CLI(终端中的命令行界面)使用。某些功能仅在 CLI 中可用。如果您需要仅限 CLI 的功能,请在 VS Code 的集成终端中运行 `claude`。这需要[独立 CLI 安装](/zh-CN/setup):扩展不会将 `claude` 添加到您的 PATH。请参阅[在 VS Code 中运行 CLI](#run-cli-in-vs-code)。383Claude Code 既可作为 VS Code 扩展(图形面板)也可作为 CLI(终端中的命令行界面)使用。某些功能仅在 CLI 中可用。如果您需要仅限 CLI 的功能,请在 VS Code 的集成终端中运行 `claude`。这需要[独立 CLI 安装](/docs/zh-CN/setup):扩展不会将 `claude` 添加到您的 PATH。请参阅[在 VS Code 中运行 CLI](#run-cli-in-vs-code)。

384 384 

385| 功能 | CLI | VS Code 扩展 |385| 功能 | CLI | VS Code 扩展 |

386| ------------- | --------------------- | ---------------------------------------- |386| ------------- | --------------------- | ---------------------------------------- |

387| 命令和 skills | [全部](/zh-CN/commands) | 子集(输入 `/` 以查看可用的) |387| 命令和 skills | [全部](/docs/zh-CN/commands) | 子集(输入 `/` 以查看可用的) |

388| MCP server 配置 | 是 | 部分(通过 CLI 添加服务器;使用聊天面板中的 `/mcp` 管理现有服务器) |388| MCP server 配置 | 是 | 部分(通过 CLI 添加服务器;使用聊天面板中的 `/mcp` 管理现有服务器) |

389| Checkpoints | 是 | 是 |389| Checkpoints | 是 | 是 |

390| `!` bash 快捷键 | 是 | 否 |390| `!` bash 快捷键 | 是 | 否 |


400* **将代码倒带到此处**:将文件更改恢复到对话中的此点,同时保持完整的对话历史记录400* **将代码倒带到此处**:将文件更改恢复到对话中的此点,同时保持完整的对话历史记录

401* **分叉对话并倒带代码**:开始新的对话分支并将文件更改恢复到此点401* **分叉对话并倒带代码**:开始新的对话分支并将文件更改恢复到此点

402 402 

403有关 checkpoints 如何工作及其限制的完整详细信息,请参阅 [Checkpointing](/zh-CN/checkpointing)。403有关 checkpoints 如何工作及其限制的完整详细信息,请参阅 [Checkpointing](/docs/zh-CN/checkpointing)。

404 404 

405<h3 id="run-cli-in-vs-code">405<h3 id="run-cli-in-vs-code">

406 在 VS Code 中运行 CLI406 在 VS Code 中运行 CLI


408 408 

409要在 VS Code 中使用 CLI 同时保持在 VS Code 中,请打开集成终端(Windows/Linux 上为 `` Ctrl+` `` 或 Mac 上为 `` Cmd+` ``)并运行 `claude`。CLI 会自动与您的 IDE 集成,以获得差异查看和诊断共享等功能。409要在 VS Code 中使用 CLI 同时保持在 VS Code 中,请打开集成终端(Windows/Linux 上为 `` Ctrl+` `` 或 Mac 上为 `` Cmd+` ``)并运行 `claude`。CLI 会自动与您的 IDE 集成,以获得差异查看和诊断共享等功能。

410 410 

411安装扩展不会将 `claude` 放在您的 shell PATH 上。扩展为其聊天面板捆绑了 CLI 的私有副本,但在终端中输入 `claude` 需要[独立 CLI 安装](/zh-CN/setup)。运行一次安装,此页面上的命令(包括 `claude mcp add` 和 `claude --resume`)在任何终端中都可以工作。如果安装后仍未找到 `claude`,请[验证您的 PATH](/zh-CN/troubleshoot-install#verify-your-path)。411安装扩展不会将 `claude` 放在您的 shell PATH 上。扩展为其聊天面板捆绑了 CLI 的私有副本,但在终端中输入 `claude` 需要[独立 CLI 安装](/docs/zh-CN/setup)。运行一次安装,此页面上的命令(包括 `claude mcp add` 和 `claude --resume`)在任何终端中都可以工作。如果安装后仍未找到 `claude`,请[验证您的 PATH](/docs/zh-CN/troubleshoot-install#verify-your-path)。

412 412 

413如果使用外部终端,请在 Claude Code 中运行 `/ide` 以将其连接到 VS Code。413如果使用外部终端,请在 Claude Code 中运行 `/ide` 以将其连接到 VS Code。

414 414 


445 445 

446配置后,要求 Claude 使用这些工具(例如,"审查 PR #456")。446配置后,要求 Claude 使用这些工具(例如,"审查 PR #456")。

447 447 

448要在不离开 VS Code 的情况下管理 MCP servers,请在聊天面板中输入 `/mcp`。MCP 管理对话框让您启用或禁用服务器、重新连接到服务器以及管理 OAuth 身份验证。有关可用服务器,请参阅 [MCP 文档](/zh-CN/mcp)。448要在不离开 VS Code 的情况下管理 MCP servers,请在聊天面板中输入 `/mcp`。MCP 管理对话框让您启用或禁用服务器、重新连接到服务器以及管理 OAuth 身份验证。有关可用服务器,请参阅 [MCP 文档](/docs/zh-CN/mcp)。

449 449 

450<h2 id="work-with-git">450<h2 id="work-with-git">

451 使用 git451 使用 git


477claude --worktree feature-auth477claude --worktree feature-auth

478```478```

479 479 

480每个 worktree 维护独立的文件状态,同时共享 git 历史记录。这可以防止 Claude 实例在处理不同任务时相互干扰。有关更多详细信息,请参阅[使用 Git worktrees 运行并行会话](/zh-CN/worktrees)。480每个 worktree 维护独立的文件状态,同时共享 git 历史记录。这可以防止 Claude 实例在处理不同任务时相互干扰。有关更多详细信息,请参阅[使用 Git worktrees 运行并行会话](/docs/zh-CN/worktrees)。

481 481 

482<h2 id="use-third-party-providers">482<h2 id="use-third-party-providers">

483 使用第三方提供商483 使用第三方提供商


495 <Step title="配置您的提供商">495 <Step title="配置您的提供商">

496 按照您的提供商的设置指南:496 按照您的提供商的设置指南:

497 497 

498 * [Amazon Bedrock 上的 Claude Code](/zh-CN/amazon-bedrock)498 * [Amazon Bedrock 上的 Claude Code](/docs/zh-CN/amazon-bedrock)

499 * [Google Cloud 的 Agent Platform 上的 Claude Code](/zh-CN/google-vertex-ai)499 * [Google Cloud 的 Agent Platform 上的 Claude Code](/docs/zh-CN/google-vertex-ai)

500 * [Microsoft Foundry 上的 Claude Code](/zh-CN/microsoft-foundry)500 * [Microsoft Foundry 上的 Claude Code](/docs/zh-CN/microsoft-foundry)

501 501 

502 这些指南涵盖在 `~/.claude/settings.json` 中配置您的提供商,这确保您的设置在 VS Code 扩展和 CLI 之间共享。502 这些指南涵盖在 `~/.claude/settings.json` 中配置您的提供商,这确保您的设置在 VS Code 扩展和 CLI 之间共享。

503 </Step>503 </Step>


507 安全和隐私507 安全和隐私

508</h2>508</h2>

509 509 

510您的代码保持私密。Claude Code 处理您的代码以提供协助,但不使用它来训练模型。有关数据处理的详细信息以及如何选择退出日志记录,请参阅[数据和隐私](/zh-CN/data-usage)。510您的代码保持私密。Claude Code 处理您的代码以提供协助,但不使用它来训练模型。有关数据处理的详细信息以及如何选择退出日志记录,请参阅[数据和隐私](/docs/zh-CN/data-usage)。

511 511 

512启用自动编辑权限后,Claude Code 可以修改 VS Code 配置文件(如 `settings.json` 或 `tasks.json`),VS Code 可能会自动执行。要在处理不受信任的代码时降低风险:512启用自动编辑权限后,Claude Code 可以修改 VS Code 配置文件(如 `settings.json` 或 `tasks.json`),VS Code 可能会自动执行。要在处理不受信任的代码时降低风险:

513 513 


523 523 

524该服务器名为 `ide`,从 `/mcp` 中隐藏,因为没有什么可配置的。但是,如果您的组织使用 `PreToolUse` hook 来允许列表 MCP 工具,您需要知道它存在。524该服务器名为 `ide`,从 `/mcp` 中隐藏,因为没有什么可配置的。但是,如果您的组织使用 `PreToolUse` hook 来允许列表 MCP 工具,您需要知道它存在。

525 525 

526**选择和打开文件上下文。** 连接时,CLI 在您发送的每个提示上包含您当前的编辑器选择和活动文件的路径作为上下文。当发生这种情况时,记录显示一行 `⧉ Selected N lines from <file>`。要排除敏感文件(如 `.env`),请为其路径添加一个 [`Read` 拒绝规则](/zh-CN/permissions#read-and-edit)。匹配的拒绝规则可防止该文件的选定文本和打开文件通知到达 Claude。526**选择和打开文件上下文。** 连接时,CLI 在您发送的每个提示上包含您当前的编辑器选择和活动文件的路径作为上下文。当发生这种情况时,记录显示一行 `⧉ Selected N lines from <file>`。要排除敏感文件(如 `.env`),请为其路径添加一个 [`Read` 拒绝规则](/docs/zh-CN/permissions#read-and-edit)。匹配的拒绝规则可防止该文件的选定文本和打开文件通知到达 Claude。

527 527 

528**传输和身份验证。** 该服务器绑定到 `127.0.0.1` 上的随机端口,范围在 10000–65535,该端口不可配置。传输是未加密的 `ws://`;因为套接字仅限于本地回环,任何可以捕获流量的进程也可以从锁定文件中读取令牌,所以 TLS 不会增加保护。每次扩展激活都会生成一个新的随机身份验证令牌,将其写入 `~/.claude/ide/<port>.lock` 处的锁定文件,CLI 必须将其作为 `X-Claude-Code-Ide-Authorization` 标头提供才能连接。锁定文件在 `0700` 目录中具有 `0600` 权限,因此只有运行 VS Code 的用户可以读取它。如果设置了 `CLAUDE_CONFIG_DIR`,锁定文件将改为写入 `$CLAUDE_CONFIG_DIR/ide/`。528**传输和身份验证。** 该服务器绑定到 `127.0.0.1` 上的随机端口,范围在 10000–65535,该端口不可配置。传输是未加密的 `ws://`;因为套接字仅限于本地回环,任何可以捕获流量的进程也可以从锁定文件中读取令牌,所以 TLS 不会增加保护。每次扩展激活都会生成一个新的随机身份验证令牌,将其写入 `~/.claude/ide/<port>.lock` 处的锁定文件,CLI 必须将其作为 `X-Claude-Code-Ide-Authorization` 标头提供才能连接。锁定文件在 `0700` 目录中具有 `0600` 权限,因此只有运行 VS Code 的用户可以读取它。如果设置了 `CLAUDE_CONFIG_DIR`,锁定文件将改为写入 `$CLAUDE_CONFIG_DIR/ide/`。

529 529 


6022. 搜索"Claude Code"6022. 搜索"Claude Code"

6033. 点击**卸载**6033. 点击**卸载**

604 604 

605在 VS Code 集成终端中运行 `claude` 会自动重新安装扩展。要保持卸载状态,请在 `/config` 中关闭**自动安装 IDE 扩展**,或将 [`autoInstallIdeExtension`](/zh-CN/settings#global-config-settings) 设置为 `false`。您也可以将 [`CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL`](/zh-CN/env-vars) 环境变量设置为 `1`。605在 VS Code 集成终端中运行 `claude` 会自动重新安装扩展。要保持卸载状态,请在 `/config` 中关闭**自动安装 IDE 扩展**,或将 [`autoInstallIdeExtension`](/docs/zh-CN/settings#global-config-settings) 设置为 `false`。您也可以将 [`CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL`](/docs/zh-CN/env-vars) 环境变量设置为 `1`。

606 606 

607要也删除扩展数据并重置所有设置,请删除您平台的扩展存储目录。607要也删除扩展数据并重置所有设置,请删除您平台的扩展存储目录。

608 608 


624Remove-Item -Recurse -Force "$env:APPDATA\Code\User\globalStorage\anthropic.claude-code"624Remove-Item -Recurse -Force "$env:APPDATA\Code\User\globalStorage\anthropic.claude-code"

625```625```

626 626 

627如需更多帮助,请参阅[故障排除指南](/zh-CN/troubleshooting)。627如需更多帮助,请参阅[故障排除指南](/docs/zh-CN/troubleshooting)。

628 628 

629<h2 id="next-steps">629<h2 id="next-steps">

630 后续步骤630 后续步骤


632 632 

633现在您已在 VS Code 中设置了 Claude Code:633现在您已在 VS Code 中设置了 Claude Code:

634 634 

635* [探索常见工作流](/zh-CN/common-workflows)以充分利用 Claude Code635* [探索常见工作流](/docs/zh-CN/common-workflows)以充分利用 Claude Code

636* [设置 MCP servers](/zh-CN/mcp)以使用外部工具扩展 Claude 的功能。使用 CLI 添加服务器,然后使用聊天面板中的 `/mcp` 管理它们。636* [设置 MCP servers](/docs/zh-CN/mcp)以使用外部工具扩展 Claude 的功能。使用 CLI 添加服务器,然后使用聊天面板中的 `/mcp` 管理它们。

637* [配置 Claude Code 设置](/zh-CN/settings)以自定义允许的命令、hooks 等。这些设置在扩展和 CLI 之间共享。637* [配置 Claude Code 设置](/docs/zh-CN/settings)以自定义允许的命令、hooks 等。这些设置在扩展和 CLI 之间共享。

web-quickstart.md +25 −25

Details

21* **不需要频繁指导的任务**:提交一个定义明确的任务,做其他事情,当 Claude 完成时审查结果21* **不需要频繁指导的任务**:提交一个定义明确的任务,做其他事情,当 Claude 完成时审查结果

22* **代码问题和探索**:理解代码库或追踪功能如何实现,无需本地检出22* **代码问题和探索**:理解代码库或追踪功能如何实现,无需本地检出

23 23 

24对于需要您的本地配置、工具或环境的工作,在本地运行 Claude Code 或使用 [Remote Control](/zh-CN/remote-control) 更合适。24对于需要您的本地配置、工具或环境的工作,在本地运行 Claude Code 或使用 [Remote Control](/docs/zh-CN/remote-control) 更合适。

25 25 

26<h2 id="how-sessions-run">26<h2 id="how-sessions-run">

27 会话如何运行27 会话如何运行


29 29 

30当您提交任务时:30当您提交任务时:

31 31 

321. **克隆和准备**:您的仓库被克隆到 Anthropic 管理的 VM,如果配置了,您的[设置脚本](/zh-CN/claude-code-on-the-web#setup-scripts)会运行。321. **克隆和准备**:您的仓库被克隆到 Anthropic 管理的 VM,如果配置了,您的[设置脚本](/docs/zh-CN/claude-code-on-the-web#setup-scripts)会运行。

332. **配置网络**:互联网访问根据您的环境的[访问级别](/zh-CN/claude-code-on-the-web#access-levels)设置。332. **配置网络**:互联网访问根据您的环境的[访问级别](/docs/zh-CN/claude-code-on-the-web#access-levels)设置。

343. **工作**:Claude 分析代码、进行更改、运行测试并检查其工作。您可以全程观看和指导,或者离开,当完成时返回。343. **工作**:Claude 分析代码、进行更改、运行测试并检查其工作。您可以全程观看和指导,或者离开,当完成时返回。

354. **推送分支**:当 Claude 到达停止点时,它将其分支推送到 GitHub。您审查差异、留下内联注释、创建 PR 或发送另一条消息以继续。354. **推送分支**:当 Claude 到达停止点时,它将其分支推送到 GitHub。您审查差异、留下内联注释、创建 PR 或发送另一条消息以继续。

36 36 


47| **代码运行在** | Anthropic 云 VM | 您的机器 | 您的机器 | 您的机器或云 VM |47| **代码运行在** | Anthropic 云 VM | 您的机器 | 您的机器 | 您的机器或云 VM |

48| **您从以下位置聊天** | claude.ai 或移动应用 | claude.ai 或移动应用 | 您的终端 | Desktop UI |48| **您从以下位置聊天** | claude.ai 或移动应用 | claude.ai 或移动应用 | 您的终端 | Desktop UI |

49| **使用您的本地配置** | 否,仅限仓库 | 是 | 是 | 本地为是,云为否 |49| **使用您的本地配置** | 否,仅限仓库 | 是 | 是 | 本地为是,云为否 |

50| **需要 GitHub** | 是,或通过 `--cloud` [捆绑本地仓库](/zh-CN/claude-code-on-the-web#send-local-repositories-without-github) | 否 | 否 | 仅限云会话 |50| **需要 GitHub** | 是,或通过 `--cloud` [捆绑本地仓库](/docs/zh-CN/claude-code-on-the-web#send-local-repositories-without-github) | 否 | 否 | 仅限云会话 |

51| **断开连接时继续运行** | 是 | 当终端保持打开时 | 否 | 取决于会话类型 |51| **断开连接时继续运行** | 是 | 当终端保持打开时 | 否 | 取决于会话类型 |

52| **[权限模式](/zh-CN/permission-modes)** | 接受编辑、Plan、自动 | 询问、自动接受编辑、Plan | 所有模式 | 取决于会话类型 |52| **[权限模式](/docs/zh-CN/permission-modes)** | 接受编辑、Plan、自动 | 询问、自动接受编辑、Plan | 所有模式 | 取决于会话类型 |

53| **网络访问** | 每个环境可配置 | 您的机器网络 | 您的机器网络 | 取决于会话类型 |53| **网络访问** | 每个环境可配置 | 您的机器网络 | 您的机器网络 | 取决于会话类型 |

54 54 

55请参阅[终端快速入门](/zh-CN/quickstart)、[Desktop 应用](/zh-CN/desktop)或 [Remote Control](/zh-CN/remote-control) 文档来设置这些。55请参阅[终端快速入门](/docs/zh-CN/quickstart)、[Desktop 应用](/docs/zh-CN/desktop)或 [Remote Control](/docs/zh-CN/remote-control) 文档来设置这些。

56 56 

57<h2 id="connect-github-and-create-an-environment">57<h2 id="connect-github-and-create-an-environment">

58 连接 GitHub 并创建环境58 连接 GitHub 并创建环境


70 </Step>70 </Step>

71 71 

72 <Step title="创建您的环境">72 <Step title="创建您的环境">

73 连接 GitHub 后,系统会提示您创建云环境。环境控制 Claude 在会话期间可以访问的网络以及创建新会话时运行的内容。请参阅[已安装的工具](/zh-CN/claude-code-on-the-web#installed-tools)了解无需任何配置即可使用的内容。73 连接 GitHub 后,系统会提示您创建云环境。环境控制 Claude 在会话期间可以访问的网络以及创建新会话时运行的内容。请参阅[已安装的工具](/docs/zh-CN/claude-code-on-the-web#installed-tools)了解无需任何配置即可使用的内容。

74 74 

75 表单有以下字段:75 表单有以下字段:

76 76 

77 * **Name**:显示标签。当您为不同的项目或访问级别有多个环境时很有用。77 * **Name**:显示标签。当您为不同的项目或访问级别有多个环境时很有用。

78 * **Network access**:控制会话可以在互联网上访问的内容。默认值 `Trusted` 允许连接到[常见包注册表](/zh-CN/claude-code-on-the-web#default-allowed-domains),如 npm、PyPI 和 RubyGems,同时阻止一般互联网访问。78 * **Network access**:控制会话可以在互联网上访问的内容。默认值 `Trusted` 允许连接到[常见包注册表](/docs/zh-CN/claude-code-on-the-web#default-allowed-domains),如 npm、PyPI 和 RubyGems,同时阻止一般互联网访问。

79 * **Environment variables**:可选变量,在每个会话中可用,采用 `.env` 格式。不要用引号包装值,因为引号会作为值的一部分存储。这些对任何可以编辑此环境的人都可见。79 * **Environment variables**:可选变量,在每个会话中可用,采用 `.env` 格式。不要用引号包装值,因为引号会作为值的一部分存储。这些对任何可以编辑此环境的人都可见。

80 * **Setup script**:可选的 Bash 脚本,在 Claude Code 启动前运行。使用它来安装云 VM 不包含的系统工具,如 `apt install -y gh`。结果被[缓存](/zh-CN/claude-code-on-the-web#environment-caching),因此脚本不会在每个会话上重新运行。请参阅[设置脚本](/zh-CN/claude-code-on-the-web#setup-scripts)了解示例和调试提示。80 * **Setup script**:可选的 Bash 脚本,在 Claude Code 启动前运行。使用它来安装云 VM 不包含的系统工具,如 `apt install -y gh`。结果被[缓存](/docs/zh-CN/claude-code-on-the-web#environment-caching),因此脚本不会在每个会话上重新运行。请参阅[设置脚本](/docs/zh-CN/claude-code-on-the-web#setup-scripts)了解示例和调试提示。

81 81 

82 对于第一个项目,保留默认值并单击**Create environment**。您可以[稍后编辑它或为不同的项目创建其他环境](/zh-CN/claude-code-on-the-web#configure-your-environment)。82 对于第一个项目,保留默认值并单击**Create environment**。您可以[稍后编辑它或为不同的项目创建其他环境](/docs/zh-CN/claude-code-on-the-web#configure-your-environment)。

83 </Step>83 </Step>

84</Steps>84</Steps>

85 85 


87 从您的终端连接87 从您的终端连接

88</h3>88</h3>

89 89 

90如果您已经使用 GitHub CLI (`gh`),您可以在不打开浏览器的情况下设置 Claude Code on the web。这需要 [Claude Code CLI](/zh-CN/quickstart)。`/web-setup` 读取您的本地 `gh` 令牌,将其链接到您的 Claude 账户,如果您没有云环境,则创建一个默认的云环境。90如果您已经使用 GitHub CLI (`gh`),您可以在不打开浏览器的情况下设置 Claude Code on the web。这需要 [Claude Code CLI](/docs/zh-CN/quickstart)。`/web-setup` 读取您的本地 `gh` 令牌,将其链接到您的 Claude 账户,如果您没有云环境,则创建一个默认的云环境。

91 91 

92<Note>92<Note>

93 启用了[零数据保留](/zh-CN/zero-data-retention)的组织无法使用 `/web-setup` 或其他云会话功能。如果未安装或验证 GitHub CLI,`/web-setup` 会打开浏览器入门流程。93 启用了[零数据保留](/docs/zh-CN/zero-data-retention)的组织无法使用 `/web-setup` 或其他云会话功能。如果未安装或验证 GitHub CLI,`/web-setup` 会打开浏览器入门流程。

94</Note>94</Note>

95 95 

96<Steps>96<Steps>


113 /web-setup113 /web-setup

114 ```114 ```

115 115 

116 这会将您的 `gh` 令牌同步到您的 Claude 账户。如果您还没有云环境,`/web-setup` 会创建一个具有 Trusted 网络访问和无设置脚本的环境。您可以[稍后编辑环境或添加变量](/zh-CN/claude-code-on-the-web#configure-your-environment)。一旦 `/web-setup` 完成,您可以从您的终端使用 [`--cloud`](/zh-CN/claude-code-on-the-web#from-terminal-to-web) 启动云会话,或使用 [`/schedule`](/zh-CN/routines) 设置定期任务。116 这会将您的 `gh` 令牌同步到您的 Claude 账户。如果您还没有云环境,`/web-setup` 会创建一个具有 Trusted 网络访问和无设置脚本的环境。您可以[稍后编辑环境或添加变量](/docs/zh-CN/claude-code-on-the-web#configure-your-environment)。一旦 `/web-setup` 完成,您可以从您的终端使用 [`--cloud`](/docs/zh-CN/claude-code-on-the-web#from-terminal-to-web) 启动云会话,或使用 [`/schedule`](/docs/zh-CN/routines) 设置定期任务。

117 </Step>117 </Step>

118</Steps>118</Steps>

119 119 


129 </Step>129 </Step>

130 130 

131 <Step title="选择权限模式">131 <Step title="选择权限模式">

132 输入旁边的模式下拉菜单默认为**Accept edits**,其中 Claude 进行更改并推送分支而无需停止以获得批准。如果您希望 Claude 提出方法并在编辑文件前等待您的同意,请切换到**Plan Mode**。云会话不提供 Manual 或 Bypass 权限。请参阅[权限模式的完整列表](/zh-CN/permission-modes#available-modes)了解每种权限允许的操作。132 输入旁边的模式下拉菜单默认为**Accept edits**,其中 Claude 进行更改并推送分支而无需停止以获得批准。如果您希望 Claude 提出方法并在编辑文件前等待您的同意,请切换到**Plan Mode**。云会话不提供 Manual 或 Bypass 权限。请参阅[权限模式的完整列表](/docs/zh-CN/permission-modes#available-modes)了解每种权限允许的操作。

133 </Step>133 </Step>

134 134 

135 <Step title="描述任务并提交">135 <Step title="描述任务并提交">


182 </Step>182 </Step>

183 183 

184 <Step title="在 PR 后继续迭代">184 <Step title="在 PR 后继续迭代">

185 创建 PR 后会话保持活跃。将 CI 失败输出或审查者注释粘贴到聊天中,并要求 Claude 解决它们。要让 Claude 自动监控 PR,请参阅[自动修复拉取请求](/zh-CN/claude-code-on-the-web#auto-fix-pull-requests)。185 创建 PR 后会话保持活跃。将 CI 失败输出或审查者注释粘贴到聊天中,并要求 Claude 解决它们。要让 Claude 自动监控 PR,请参阅[自动修复拉取请求](/docs/zh-CN/claude-code-on-the-web#auto-fix-pull-requests)。

186 </Step>186 </Step>

187</Steps>187</Steps>

188 188 


194 连接 GitHub 后没有仓库出现194 连接 GitHub 后没有仓库出现

195</h3>195</h3>

196 196 

197云会话可以使用连接的 GitHub 账户可以看到的任何仓库,无论 Claude GitHub App 安装在哪些仓库上。如果仓库丢失,请验证连接的 GitHub 账户在 GitHub 上有权访问它。如果您还想为仓库启用[自动修复](/zh-CN/claude-code-on-the-web#auto-fix-pull-requests),请在其上安装应用:在 github.com 上,打开**Settings → Applications → Claude → Configure** 并验证仓库是否列在**Repository access** 下。私有仓库需要与公共仓库相同的授权。197云会话可以使用连接的 GitHub 账户可以看到的任何仓库,无论 Claude GitHub App 安装在哪些仓库上。如果仓库丢失,请验证连接的 GitHub 账户在 GitHub 上有权访问它。如果您还想为仓库启用[自动修复](/docs/zh-CN/claude-code-on-the-web#auto-fix-pull-requests),请在其上安装应用:在 github.com 上,打开**Settings → Applications → Claude → Configure** 并验证仓库是否列在**Repository access** 下。私有仓库需要与公共仓库相同的授权。

198 198 

199<h3 id="the-page-only-shows-a-github-login-button">199<h3 id="the-page-only-shows-a-github-login-button">

200 页面仅显示 GitHub 登录按钮200 页面仅显示 GitHub 登录按钮

201</h3>201</h3>

202 202 

203云会话需要连接的 GitHub 账户。通过上面的浏览器流程连接,或如果您使用 GitHub CLI,从您的终端运行 `/web-setup`。如果您根本不想连接 GitHub,请参阅 [Remote Control](/zh-CN/remote-control) 以在您自己的机器上运行 Claude Code 并从网络监控它。203云会话需要连接的 GitHub 账户。通过上面的浏览器流程连接,或如果您使用 GitHub CLI,从您的终端运行 `/web-setup`。如果您根本不想连接 GitHub,请参阅 [Remote Control](/docs/zh-CN/remote-control) 以在您自己的机器上运行 Claude Code 并从网络监控它。

204 204 

205<h3 id="not-available-for-the-selected-organization">205<h3 id="not-available-for-the-selected-organization">

206 "Not available for the selected organization"206 "Not available for the selected organization"


220 使用 `--cloud` 或 ultraplan 时出现 "Could not create a cloud environment" 或 "No cloud environment available"220 使用 `--cloud` 或 ultraplan 时出现 "Could not create a cloud environment" 或 "No cloud environment available"

221</h3>221</h3>

222 222 

223远程会话功能如果您没有云环境,会自动创建一个默认的云环境。如果您看到 "Could not create a cloud environment",自动创建失败。{/* max-version: 2.1.100 */}如果您看到 "No cloud environment available",您的 CLI 早于自动创建。在任何一种情况下,在 Claude Code CLI 中运行 `/web-setup` 以手动创建一个,或访问 [claude.ai/code](https://claude.ai/code) 并按照上面的**Create your environment** 步骤。223远程会话功能如果您没有云环境,会自动创建一个默认的云环境。如果您看到 "Could not create a cloud environment",自动创建失败。如果您看到 "No cloud environment available",您的 CLI 早于自动创建。在任何一种情况下,在 Claude Code CLI 中运行 `/web-setup` 以手动创建一个,或访问 [claude.ai/code](https://claude.ai/code) 并按照上面的**Create your environment** 步骤。

224 224 

225<h3 id="setup-script-failed">225<h3 id="setup-script-failed">

226 设置脚本失败226 设置脚本失败


228 228 

229设置脚本以非零状态退出,这会阻止会话启动。常见原因:229设置脚本以非零状态退出,这会阻止会话启动。常见原因:

230 230 

231* 包安装失败,因为注册表不在您的[网络访问级别](/zh-CN/claude-code-on-the-web#access-levels)中。`Trusted` 涵盖大多数包管理器;`None` 阻止它们全部。231* 包安装失败,因为注册表不在您的[网络访问级别](/docs/zh-CN/claude-code-on-the-web#access-levels)中。`Trusted` 涵盖大多数包管理器;`None` 阻止它们全部。

232* 脚本引用在新鲜克隆中不存在的文件或路径。232* 脚本引用在新鲜克隆中不存在的文件或路径。

233* 在本地工作的命令在 Ubuntu 上需要不同的调用。233* 在本地工作的命令在 Ubuntu 上需要不同的调用。

234 234 


238 新会话在设置期间挂起或超时238 新会话在设置期间挂起或超时

239</h3>239</h3>

240 240 

241如果新会话在设置脚本步骤上停滞或在脚本完成前因通用容器错误而失败,脚本可能超过了构建[环境缓存](/zh-CN/claude-code-on-the-web#environment-caching)的大约五分钟时间预算。拉取大型 Docker 镜像、同步完整依赖树或下载模型权重等繁重步骤经常会将总数推过限制,特别是当它们一个接一个运行时。241如果新会话在设置脚本步骤上停滞或在脚本完成前因通用容器错误而失败,脚本可能超过了构建[环境缓存](/docs/zh-CN/claude-code-on-the-web#environment-caching)的大约五分钟时间预算。拉取大型 Docker 镜像、同步完整依赖树或下载模型权重等繁重步骤经常会将总数推过限制,特别是当它们一个接一个运行时。

242 242 

243要解决此问题,修剪脚本使其可靠地在五分钟内完成:243要解决此问题,修剪脚本使其可靠地在五分钟内完成:

244 244 

245* 使用 `&` 和最后的 `wait` 并行运行独立安装,而不是按顺序运行它们。245* 使用 `&` 和最后的 `wait` 并行运行独立安装,而不是按顺序运行它们。

246* 将最大的下载移出设置脚本,进入[SessionStart hook](/zh-CN/claude-code-on-the-web#setup-scripts-vs-sessionstart-hooks),在后台启动它们,以便会话在它们完成时变得可用。246* 将最大的下载移出设置脚本,进入[SessionStart hook](/docs/zh-CN/claude-code-on-the-web#setup-scripts-vs-sessionstart-hooks),在后台启动它们,以便会话在它们完成时变得可用。

247* 从设置脚本中删除长重试睡眠,因为停滞的重试循环会计入预算。247* 从设置脚本中删除长重试睡眠,因为停滞的重试循环会计入预算。

248 248 

249<h3 id="session-keeps-running-after-closing-the-tab">249<h3 id="session-keeps-running-after-closing-the-tab">

250 关闭选项卡后会话继续运行250 关闭选项卡后会话继续运行

251</h3>251</h3>

252 252 

253这是设计使然。关闭选项卡或导航离开不会停止会话。它在后台继续运行,直到 Claude 完成当前任务,然后空闲。从侧边栏,您可以[存档会话](/zh-CN/claude-code-on-the-web#archive-sessions)以将其从列表中隐藏,或[删除它](/zh-CN/claude-code-on-the-web#delete-sessions)以永久删除它。253这是设计使然。关闭选项卡或导航离开不会停止会话。它在后台继续运行,直到 Claude 完成当前任务,然后空闲。从侧边栏,您可以[存档会话](/docs/zh-CN/claude-code-on-the-web#archive-sessions)以将其从列表中隐藏,或[删除它](/docs/zh-CN/claude-code-on-the-web#delete-sessions)以永久删除它。

254 254 

255<h2 id="next-steps">255<h2 id="next-steps">

256 后续步骤256 后续步骤


258 258 

259现在您可以提交和审查任务,这些页面涵盖接下来的内容:从您的终端启动云会话、安排定期工作以及给 Claude 常设指令。259现在您可以提交和审查任务,这些页面涵盖接下来的内容:从您的终端启动云会话、安排定期工作以及给 Claude 常设指令。

260 260 

261* [使用 Claude Code on the web](/zh-CN/claude-code-on-the-web):完整参考,包括将会话传送到您的终端、设置脚本、环境变量和网络配置261* [使用 Claude Code on the web](/docs/zh-CN/claude-code-on-the-web):完整参考,包括将会话传送到您的终端、设置脚本、环境变量和网络配置

262* [Routines](/zh-CN/routines):按计划、通过 API 调用或响应 GitHub 事件自动化工作262* [Routines](/docs/zh-CN/routines):按计划、通过 API 调用或响应 GitHub 事件自动化工作

263* [CLAUDE.md](/zh-CN/memory):给 Claude 持久指令和上下文,在每个会话开始时加载263* [CLAUDE.md](/docs/zh-CN/memory):给 Claude 持久指令和上下文,在每个会话开始时加载

264* 为 [iOS](https://apps.apple.com/us/app/claude-by-anthropic/id6473753684) 或 [Android](https://play.google.com/store/apps/details?id=com.anthropic.claude) 安装 Claude 移动应用以从您的手机监控会话。从 Claude Code CLI,`/mobile` 显示 QR 码。264* 为 [iOS](https://apps.apple.com/us/app/claude-by-anthropic/id6473753684) 或 [Android](https://play.google.com/store/apps/details?id=com.anthropic.claude) 安装 Claude 移动应用以从您的手机监控会话。从 Claude Code CLI,`/mobile` 显示 QR 码。

workflows.md +19 −21

Details

6 6 

7> 动态工作流从 Claude 编写的脚本中编排许多子代理,您可以重新运行。用于代码库审计、大型迁移和交叉检查研究。7> 动态工作流从 Claude 编写的脚本中编排许多子代理,您可以重新运行。用于代码库审计、大型迁移和交叉检查研究。

8 8 

9{/* plan-availability: feature=workflows plans=pro,max,team,enterprise providers=all */}

10 

11<Note>9<Note>

12 动态工作流需要 Claude Code v2.1.154 或更高版本,在所有付费计划上可用,具有 Anthropic API 访问权限,以及在 Amazon Bedrock、Google Cloud 的 Agent Platform 和 Microsoft Foundry 上可用。在 Pro 上,从 `/config` 中的"Dynamic workflows"行启用它们。10 动态工作流需要 Claude Code v2.1.154 或更高版本,在所有付费计划上可用,具有 Anthropic API 访问权限,以及在 Amazon Bedrock、Google Cloud 的 Agent Platform 和 Microsoft Foundry 上可用。在 Pro 上,从 `/config` 中的"Dynamic workflows"行启用它们。

13</Note>11</Note>

14 12 

15动态工作流是一个 JavaScript 脚本,可大规模编排[子代理](/zh-CN/sub-agents)。Claude 为您描述的任务编写脚本,运行时在后台执行它,同时您的会话保持响应。13动态工作流是一个 JavaScript 脚本,可大规模编排[子代理](/docs/zh-CN/sub-agents)。Claude 为您描述的任务编写脚本,运行时在后台执行它,同时您的会话保持响应。

16 14 

17当任务需要比一个对话能协调的更多代理时,或当您想将编排编纂为可以读取和重新运行的脚本时,请使用工作流。示例包括代码库范围的错误扫描、500 文件迁移、需要相互交叉检查来源的研究问题,以及在提交一个之前值得从多个独立角度起草的困难计划。15当任务需要比一个对话能协调的更多代理时,或当您想将编排编纂为可以读取和重新运行的脚本时,请使用工作流。示例包括代码库范围的错误扫描、500 文件迁移、需要相互交叉检查来源的研究问题,以及在提交一个之前值得从多个独立角度起草的困难计划。

18 16 


20 何时使用工作流18 何时使用工作流

21</h2>19</h2>

22 20 

23[子代理](/zh-CN/sub-agents)、[skills](/zh-CN/skills)、[agent teams](/zh-CN/agent-teams) 和工作流都可以运行多步骤任务。区别在于谁掌握计划:21[子代理](/docs/zh-CN/sub-agents)、[skills](/docs/zh-CN/skills)、[agent teams](/docs/zh-CN/agent-teams) 和工作流都可以运行多步骤任务。区别在于谁掌握计划:

24 22 

25| | 子代理 | Skills | Agent teams | 工作流 |23| | 子代理 | Skills | Agent teams | 工作流 |

26| :--------- | :------------ | :------------ | :----------- | :----------- |24| :--------- | :------------ | :------------ | :----------- | :----------- |


69 <Step title="阅读报告">67 <Step title="阅读报告">

70 运行完成后,报告进入您的会话。它引用每个声明来自的来源,未通过交叉检查的声明已被过滤掉。68 运行完成后,报告进入您的会话。它引用每个声明来自的来源,未通过交叉检查的声明已被过滤掉。

71 69 

72 {/* min-version: 2.1.196 */}从 v2.1.196 开始,当验证代理无法检查声明时(例如在速率限制或 API 错误之后),报告将该声明列为未验证,而不是计为被驳回。70 从 v2.1.196 开始,当验证代理无法检查声明时(例如在速率限制或 API 错误之后),报告将该声明列为未验证,而不是计为被驳回。

73 </Step>71 </Step>

74</Steps>72</Steps>

75 73 


83 81 

84| 命令 | 它做什么 |82| 命令 | 它做什么 |

85| :-------------------------- | :----------------------------------------------------------------------------------------------------------------------------------- |83| :-------------------------- | :----------------------------------------------------------------------------------------------------------------------------------- |

86| `/deep-research <question>` | 在多个角度上扇出网络搜索问题,获取并交叉检查它找到的来源,对每个声明投票,并返回一份引用的报告,其中未通过交叉检查的声明已被过滤掉。需要[WebSearch 工具](/zh-CN/tools-reference#websearch-tool-behavior)可用 |84| `/deep-research <question>` | 在多个角度上扇出网络搜索问题,获取并交叉检查它找到的来源,对每个声明投票,并返回一份引用的报告,其中未通过交叉检查的声明已被过滤掉。需要[WebSearch 工具](/docs/zh-CN/tools-reference#websearch-tool-behavior)可用 |

87 85 

88[您自己保存的工作流](#save-the-workflow-for-reuse)以相同方式成为命令,并在 `/` 自动完成中与捆绑的工作流一起出现。86[您自己保存的工作流](#save-the-workflow-for-reuse)以相同方式成为命令,并在 `/` 自动完成中与捆绑的工作流一起出现。

89 87 


105| `Enter` 或 `→` | 深入选定的阶段,然后进入代理以读取其提示、最近的工具调用和结果 |103| `Enter` 或 `→` | 深入选定的阶段,然后进入代理以读取其提示、最近的工具调用和结果 |

106| `Esc` 或 `←` | 返回一个级别。在 v2.1.203 至 v2.1.205 中,`←` 没有退出阶段或代理;在这些版本上使用 `Esc` |104| `Esc` 或 `←` | 返回一个级别。在 v2.1.203 至 v2.1.205 中,`←` 没有退出阶段或代理;在这些版本上使用 `Esc` |

107| `j` / `k` | 当代理详情溢出时在其中滚动 |105| `j` / `k` | 当代理详情溢出时在其中滚动 |

108| `f` | {/* min-version: 2.1.186 */}按状态过滤选定阶段中的代理列表。再次按下以循环 |106| `f` | 按状态过滤选定阶段中的代理列表。再次按下以循环 |

109| `p` | 暂停或恢复运行 |107| `p` | 暂停或恢复运行 |

110| `x` | 停止选定的代理,或当焦点在运行上时停止整个工作流 |108| `x` | 停止选定的代理,或当焦点在运行上时停止整个工作流 |

111| `r` | 重启选定的运行中代理 |109| `r` | 重启选定的运行中代理 |


142 让 Claude 使用 ultracode 决定140 让 Claude 使用 ultracode 决定

143</h3>141</h3>

144 142 

145Ultracode 是一个 Claude Code 设置,它结合了 `xhigh` [推理努力](/zh-CN/model-config#adjust-effort-level)与自动工作流编排。启用它后,Claude 为每个实质性任务规划工作流,而不是等待您要求。143Ultracode 是一个 Claude Code 设置,它结合了 `xhigh` [推理努力](/docs/zh-CN/model-config#adjust-effort-level)与自动工作流编排。启用它后,Claude 为每个实质性任务规划工作流,而不是等待您要求。

146 144 

147```text theme={null}145```text theme={null}

148/effort ultracode146/effort ultracode


152 150 

153启用 ultracode 后,Claude 决定任务何时值得工作流。单个请求可以变成一系列工作流:一个理解代码,一个进行更改,一个验证它。这适用于会话中的每个任务,所以每个请求使用更多令牌并花费比较低努力级别更长的时间。151启用 ultracode 后,Claude 决定任务何时值得工作流。单个请求可以变成一系列工作流:一个理解代码,一个进行更改,一个验证它。这适用于会话中的每个任务,所以每个请求使用更多令牌并花费比较低努力级别更长的时间。

154 152 

155Ultracode 持续当前会话,当您启动新会话时重置。当您返回日常工作时,使用 `/effort high` 下降。它在支持 `xhigh` [努力](/zh-CN/model-config#adjust-effort-level)的模型上可用;在其他模型上,`/effort` 菜单不提供它。153Ultracode 持续当前会话,当您启动新会话时重置。当您返回日常工作时,使用 `/effort high` 下降。它在支持 `xhigh` [努力](/docs/zh-CN/model-config#adjust-effort-level)的模型上可用;在其他模型上,`/effort` 菜单不提供它。

156 154 

157<h3 id="approve-the-plan-before-it-runs">155<h3 id="approve-the-plan-before-it-runs">

158 在运行前批准计划156 在运行前批准计划


167 165 

168`Ctrl+G` 在您的编辑器中打开脚本。`Tab` 让您在运行启动前调整提示。166`Ctrl+G` 在您的编辑器中打开脚本。`Tab` 让您在运行启动前调整提示。

169 167 

170您是否看到此提示取决于您的[权限模式](/zh-CN/permission-modes):168您是否看到此提示取决于您的[权限模式](/docs/zh-CN/permission-modes):

171 169 

172| 权限模式 | 何时提示您 |170| 权限模式 | 何时提示您 |

173| :------------------------- | :----------------------------------------------------- |171| :------------------------- | :----------------------------------------------------- |


177 175 

178在桌面应用中,批准卡显示工作流名称、阶段列表和令牌使用警告,带有**一次**、**总是**和**拒绝**操作。进度视图出现在"后台任务"侧窗格中。176在桌面应用中,批准卡显示工作流名称、阶段列表和令牌使用警告,带有**一次**、**总是**和**拒绝**操作。进度视图出现在"后台任务"侧窗格中。

179 177 

180您的权限模式仅控制上面的启动提示。工作流生成的子代理始终在 `acceptEdits` 模式下运行,并继承您的[工具允许列表](/zh-CN/settings#permission-settings),无论您的会话模式如何。文件编辑自动批准。178您的权限模式仅控制上面的启动提示。工作流生成的子代理始终在 `acceptEdits` 模式下运行,并继承您的[工具允许列表](/docs/zh-CN/settings#permission-settings),无论您的会话模式如何。文件编辑自动批准。

181 179 

182Shell 命令、网络获取和不在您的允许列表中的 MCP 工具仍然可以在运行中提示您。要在长时间运行中避免这种情况,在启动前将代理需要的命令添加到您的允许列表。180Shell 命令、网络获取和不在您的允许列表中的 MCP 工具仍然可以在运行中提示您。要在长时间运行中避免这种情况,在启动前将代理需要的命令添加到您的允许列表。

183 181 


192运行 `/workflows`,选择您想保留的运行,然后按 `s`。在保存对话中,Tab 在两个保存位置之间切换:190运行 `/workflows`,选择您想保留的运行,然后按 `s`。在保存对话中,Tab 在两个保存位置之间切换:

193 191 

194* `.claude/workflows/` 在您的项目中:与克隆仓库的每个人共享192* `.claude/workflows/` 在您的项目中:与克隆仓库的每个人共享

195* `~/.claude/workflows/` 在您的主目录中:在每个项目中可用,仅对您可见。如果您设置了 [`CLAUDE_CONFIG_DIR`](/zh-CN/env-vars),此位置是该路径下的 `workflows/` 目录。193* `~/.claude/workflows/` 在您的主目录中:在每个项目中可用,仅对您可见。如果您设置了 [`CLAUDE_CONFIG_DIR`](/docs/zh-CN/env-vars),此位置是该路径下的 `workflows/` 目录。

196 194 

197{/* min-version: 2.1.208 */}保存对话显示个人位置的已解析路径。在 v2.1.208 之前,即使设置了 `CLAUDE_CONFIG_DIR`,它也显示 `~/.claude/workflows/`;文件仍然保存在配置的目录下。195保存对话显示个人位置的已解析路径。在 v2.1.208 之前,即使设置了 `CLAUDE_CONFIG_DIR`,它也显示 `~/.claude/workflows/`;文件仍然保存在配置的目录下。

198 196 

199按 Enter 保存。工作流在未来会话中从任一位置作为 `/<name>` 运行。197按 Enter 保存。工作流在未来会话中从任一位置作为 `/<name>` 运行。

200 198 

201{/* min-version: 2.1.178 */}在具有多个 `.claude/` 目录的单体仓库中,您可以将工作流保存在它们适用的包旁边。截至 v2.1.178,保存到项目位置会写入您的工作目录和仓库根之间已存在的最近的 `.claude/workflows/` 目录,或如果尚不存在则写入仓库根。项目工作流也从该路径上的每个 `.claude/workflows/` 加载,当多个定义相同名称时 Claude Code 运行最接近工作目录的那个。199在具有多个 `.claude/` 目录的单体仓库中,您可以将工作流保存在它们适用的包旁边。截至 v2.1.178,保存到项目位置会写入您的工作目录和仓库根之间已存在的最近的 `.claude/workflows/` 目录,或如果尚不存在则写入仓库根。项目工作流也从该路径上的每个 `.claude/workflows/` 加载,当多个定义相同名称时 Claude Code 运行最接近工作目录的那个。

202 200 

203如果项目工作流和个人工作流共享名称,项目工作流运行。201如果项目工作流和个人工作流共享名称,项目工作流运行。

204 202 


305return audits.filter(Boolean)303return audits.filter(Boolean)

306```304```

307 305 

308主体是带有顶级 `await` 的纯 JavaScript。`agent()` 生成一个子代理,`pipeline()` 为列表中的每个项目运行一个。如果您想手动编辑脚本,要求 Claude 引导您完成更改,或查看 [Agent SDK 参考](/zh-CN/agent-sdk/typescript)中的 Workflow 工具条目以获取完整的选项集。306主体是带有顶级 `await` 的纯 JavaScript。`agent()` 生成一个子代理,`pipeline()` 为列表中的每个项目运行一个。如果您想手动编辑脚本,要求 Claude 引导您完成更改,或查看 [Agent SDK 参考](/docs/zh-CN/agent-sdk/typescript)中的 Workflow 工具条目以获取完整的选项集。

309 307 

310<h2 id="how-a-workflow-runs">308<h2 id="how-a-workflow-runs">

311 工作流如何运行309 工作流如何运行


359* 如果您[设置大小指南](#set-a-size-guideline),指南的代理计数替换 25 个代理的阈值。357* 如果您[设置大小指南](#set-a-size-guideline),指南的代理计数替换 25 个代理的阈值。

360* 启用[ultracode](#let-claude-decide-with-ultracode)的会话不显示警告,因为打开 ultracode 已经让您选择加入大型运行。358* 启用[ultracode](#let-claude-decide-with-ultracode)的会话不显示警告,因为打开 ultracode 已经让您选择加入大型运行。

361 359 

362工作流中的每个代理使用您的会话模型,除非脚本将阶段路由到不同的模型,或设置了 [`CLAUDE_CODE_SUBAGENT_MODEL`](/zh-CN/model-config#environment-variables) 环境变量,该变量会覆盖两者。要控制模型成本:360工作流中的每个代理使用您的会话模型,除非脚本将阶段路由到不同的模型,或设置了 [`CLAUDE_CODE_SUBAGENT_MODEL`](/docs/zh-CN/model-config#environment-variables) 环境变量,该变量会覆盖两者。要控制模型成本:

363 361 

364* 在大型运行前检查 `/model`,如果您通常为日常工作切换到较小的模型362* 在大型运行前检查 `/model`,如果您通常为日常工作切换到较小的模型

365* 当您描述任务时,要求 Claude 为不需要最强模型的阶段使用较小的模型363* 当您描述任务时,要求 Claude 为不需要最强模型的阶段使用较小的模型


385 关闭工作流383 关闭工作流

386</h3>384</h3>

387 385 

388工作流在 CLI、桌面应用、IDE 扩展、[非交互模式](/zh-CN/headless)与 `claude -p` 和 [Agent SDK](/zh-CN/agent-sdk/overview) 中可用。相同的禁用设置在每个表面上应用。386工作流在 CLI、桌面应用、IDE 扩展、[非交互模式](/docs/zh-CN/headless)与 `claude -p` 和 [Agent SDK](/docs/zh-CN/agent-sdk/overview) 中可用。相同的禁用设置在每个表面上应用。

389 387 

390要为自己关闭工作流:388要为自己关闭工作流:

391 389 


393* 在 `~/.claude/settings.json` 中设置 `"disableWorkflows": true`。在会话中持续。391* 在 `~/.claude/settings.json` 中设置 `"disableWorkflows": true`。在会话中持续。

394* 设置 `CLAUDE_CODE_DISABLE_WORKFLOWS=1`。在启动时读取,所以它在您设置它的任何地方应用。392* 设置 `CLAUDE_CODE_DISABLE_WORKFLOWS=1`。在启动时读取,所以它在您设置它的任何地方应用。

395 393 

396要为整个组织关闭工作流,在[托管设置](/zh-CN/server-managed-settings)中设置 `"disableWorkflows": true`,或使用[Claude Code 管理员设置](https://claude.ai/admin-settings/claude-code)页面上的切换。394要为整个组织关闭工作流,在[托管设置](/docs/zh-CN/server-managed-settings)中设置 `"disableWorkflows": true`,或使用[Claude Code 管理员设置](https://claude.ai/admin-settings/claude-code)页面上的切换。

397 395 

398当工作流被禁用时,捆绑工作流命令不可用,`ultracode` 关键字不再触发运行,`ultracode` 从 `/effort` 菜单中移除。396当工作流被禁用时,捆绑工作流命令不可用,`ultracode` 关键字不再触发运行,`ultracode` 从 `/effort` 菜单中移除。

399 397 


401 相关资源399 相关资源

402</h2>400</h2>

403 401 

404* [并行运行代理](/zh-CN/agents):比较子代理、代理视图、代理团队和工作流402* [并行运行代理](/docs/zh-CN/agents):比较子代理、代理视图、代理团队和工作流

405* [创建自定义子代理](/zh-CN/sub-agents):工作流编排的工作者原语403* [创建自定义子代理](/docs/zh-CN/sub-agents):工作流编排的工作者原语

406* [管理成本](/zh-CN/costs):多代理运行如何计入使用限制404* [管理成本](/docs/zh-CN/costs):多代理运行如何计入使用限制

worktrees.md +21 −21

Details

8 8 

9[git worktree](https://git-scm.com/docs/git-worktree) 是一个单独的工作目录,具有自己的文件和分支,但与主检出共享相同的存储库历史和远程。在自己的 worktree 中运行每个 Claude Code 会话意味着一个会话中的编辑永远不会触及另一个会话中的文件,因此您可以让 Claude 在一个终端中构建功能,同时在第二个终端中修复错误。9[git worktree](https://git-scm.com/docs/git-worktree) 是一个单独的工作目录,具有自己的文件和分支,但与主检出共享相同的存储库历史和远程。在自己的 worktree 中运行每个 Claude Code 会话意味着一个会话中的编辑永远不会触及另一个会话中的文件,因此您可以让 Claude 在一个终端中构建功能,同时在第二个终端中修复错误。

10 10 

11本页涵盖 CLI 中的 worktree 隔离。下面的所有内容都假设使用 git 存储库。对于其他版本控制系统,请参阅[非 git 版本控制](#non-git-version-control)。[桌面应用](/zh-CN/desktop#work-in-parallel-with-sessions)会为每个新会话自动创建一个 worktree。11本页涵盖 CLI 中的 worktree 隔离。下面的所有内容都假设使用 git 存储库。对于其他版本控制系统,请参阅[非 git 版本控制](#non-git-version-control)。[桌面应用](/docs/zh-CN/desktop#work-in-parallel-with-sessions)会为每个新会话自动创建一个 worktree。

12 12 

13Worktrees 是运行 Claude 并行的几种方式之一。它们隔离文件编辑,而[子代理](/zh-CN/sub-agents)和[代理团队](/zh-CN/agent-teams)协调工作本身。请参阅[并行运行代理](/zh-CN/agents)来比较这些方法,或跳到[使用 worktrees 隔离子代理](#isolate-subagents-with-worktrees)以同时使用 worktrees 和子代理。13Worktrees 是运行 Claude 并行的几种方式之一。它们隔离文件编辑,而[子代理](/docs/zh-CN/sub-agents)和[代理团队](/docs/zh-CN/agent-teams)协调工作本身。请参阅[并行运行代理](/docs/zh-CN/agents)来比较这些方法,或跳到[使用 worktrees 隔离子代理](#isolate-subagents-with-worktrees)以同时使用 worktrees 和子代理。

14 14 

15<h2 id="start-claude-in-a-worktree">15<h2 id="start-claude-in-a-worktree">

16 在 worktree 中启动 Claude16 在 worktree 中启动 Claude


34claude --worktree34claude --worktree

35```35```

36 36 

37您也可以在会话期间要求 Claude "在 worktree 中工作",它将使用 [`EnterWorktree`](/zh-CN/tools-reference) 工具创建一个。一旦进入 worktree,Claude 可以通过调用 `EnterWorktree` 并指定目标路径,直接切换到 `.claude/worktrees/` 下的另一个 worktree。之前的 worktree 保留在磁盘上不变。37您也可以在会话期间要求 Claude "在 worktree 中工作",它将使用 [`EnterWorktree`](/docs/zh-CN/tools-reference) 工具创建一个。一旦进入 worktree,Claude 可以通过调用 `EnterWorktree` 并指定目标路径,直接切换到 `.claude/worktrees/` 下的另一个 worktree。之前的 worktree 保留在磁盘上不变。

38 38 

39进入存储库的 `.claude/worktrees/` 目录之外的路径首先会要求您的批准,因为它会移动会话的工作目录、写入访问权限和项目配置,例如 `CLAUDE.md` 和设置到该位置。`EnterWorktree` [权限规则](/zh-CN/permissions)或选择"不再询问"不会抑制此提示;只有 `bypassPermissions` 模式会跳过它。在 v2.1.206 之前,Claude 可以进入任何现有的 worktree 路径而无需询问。39进入存储库的 `.claude/worktrees/` 目录之外的路径首先会要求您的批准,因为它会移动会话的工作目录、写入访问权限和项目配置,例如 `CLAUDE.md` 和设置到该位置。`EnterWorktree` [权限规则](/docs/zh-CN/permissions)或选择"不再询问"不会抑制此提示;只有 `bypassPermissions` 模式会跳过它。在 v2.1.206 之前,Claude 可以进入任何现有的 worktree 路径而无需询问。

40 40 

41{/* min-version: 2.1.198 */}从 v2.1.198 开始,进入或退出 worktree 也会将会话记录重新定位到该目录的项目存储,与 [`/cd`](/zh-CN/commands) 的方式相同,因此 `/desktop` 和 `--resume` 之后会在那里找到会话。由 [`WorktreeCreate` hook](#non-git-version-control) 创建的 Worktrees 被排除在外,并将记录保留在启动目录中。41从 v2.1.198 开始,进入或退出 worktree 也会将会话记录重新定位到该目录的项目存储,与 [`/cd`](/docs/zh-CN/commands) 的方式相同,因此 `/desktop` 和 `--resume` 之后会在那里找到会话。由 [`WorktreeCreate` hook](#non-git-version-control) 创建的 Worktrees 被排除在外,并将记录保留在启动目录中。

42 42 

43Worktrees 在启用[沙箱](/zh-CN/sandboxing#filesystem-isolation)的情况下工作:沙箱允许写入主存储库的共享 `.git` 目录,以便 `git commit` 等命令可以从链接的 worktree 内部更新引用和索引。43Worktrees 在启用[沙箱](/docs/zh-CN/sandboxing#filesystem-isolation)的情况下工作:沙箱允许写入主存储库的共享 `.git` 目录,以便 `git commit` 等命令可以从链接的 worktree 内部更新引用和索引。

44 44 

45在首次在目录中使用 `--worktree` 之前,请通过在该目录中运行一次 `claude` 来接受工作区信任对话框。如果尚未接受信任,`--worktree` 将以错误退出并提示您首先在目录中运行 `claude`。使用 `-p` 的非交互式运行会跳过[信任检查](/zh-CN/security),因此 `claude -p --worktree` 会在没有信任检查的情况下进行。45在首次在目录中使用 `--worktree` 之前,请通过在该目录中运行一次 `claude` 来接受工作区信任对话框。如果尚未接受信任,`--worktree` 将以错误退出并提示您首先在目录中运行 `claude`。使用 `-p` 的非交互式运行会跳过[信任检查](/docs/zh-CN/security),因此 `claude -p --worktree` 会在没有信任检查的情况下进行。

46 46 

47如果 Claude Code 在启动时无法进入 worktree 目录,例如因为 [`WorktreeCreate` hook](/zh-CN/hooks#worktreecreate) 打印了除了它创建的目录之外的其他内容,或者因为目录在设置后被删除,Claude Code 会打印一个错误,命名该路径并以代码 1 退出。在 v2.1.205 之前,这会导致会话崩溃,使用 `-p` 时会在大约 30 秒后停滞,然后以代码 0 退出。47如果 Claude Code 在启动时无法进入 worktree 目录,例如因为 [`WorktreeCreate` hook](/docs/zh-CN/hooks#worktreecreate) 打印了除了它创建的目录之外的其他内容,或者因为目录在设置后被删除,Claude Code 会打印一个错误,命名该路径并以代码 1 退出。在 v2.1.205 之前,这会导致会话崩溃,使用 `-p` 时会在大约 30 秒后停滞,然后以代码 0 退出。

48 48 

49{/* min-version: 2.1.200 */}从 Claude Code v2.1.200 开始,在主检出处从[项目范围](/zh-CN/plugins-reference#plugin-installation-scopes)安装的插件也会在同一存储库的 worktrees 中加载,因此您无需为每个 worktree 重新安装它们。这适用于您是使用 `--worktree` 还是使用 `git worktree add` 创建 worktree。需要 Claude Code v2.1.200 或更高版本。49从 Claude Code v2.1.200 开始,在主检出处从[项目范围](/docs/zh-CN/plugins-reference#plugin-installation-scopes)安装的插件也会在同一存储库的 worktrees 中加载,因此您无需为每个 worktree 重新安装它们。这适用于您是使用 `--worktree` 还是使用 `git worktree add` 创建 worktree。需要 Claude Code v2.1.200 或更高版本。

50 50 

51<Tip>51<Tip>

52 将 `.claude/worktrees/` 添加到您的 `.gitignore`,以便 worktree 内容不会在您的主检出中显示为未跟踪的文件。52 将 `.claude/worktrees/` 添加到您的 `.gitignore`,以便 worktree 内容不会在您的主检出中显示为未跟踪的文件。


60 60 

61刷新需要 Claude Code v2.1.208 或更高版本;在此之前,新的 worktree 使用已经本地缓存的任何 `origin/HEAD`。61刷新需要 Claude Code v2.1.208 或更高版本;在此之前,新的 worktree 使用已经本地缓存的任何 `origin/HEAD`。

62 62 

63要始终从本地 `HEAD` 分支,请在[设置](/zh-CN/settings#worktree-settings)中将 `worktree.baseRef` 设置为 `"head"`。将 `baseRef` 设置为 `"head"` 会使新 worktrees 携带您未推送的提交和功能分支状态,这在隔离需要在进行中的工作上操作的子代理时很有用。当会话在链接的 worktree 内运行时,`"head"` 解析为该 worktree 的 `HEAD`,而不是主检出的。该设置仅接受 `"fresh"` 或 `"head"`,不接受任意 git refs:63要始终从本地 `HEAD` 分支,请在[设置](/docs/zh-CN/settings#worktree-settings)中将 `worktree.baseRef` 设置为 `"head"`。将 `baseRef` 设置为 `"head"` 会使新 worktrees 携带您未推送的提交和功能分支状态,这在隔离需要在进行中的工作上操作的子代理时很有用。当会话在链接的 worktree 内运行时,`"head"` 解析为该 worktree 的 `HEAD`,而不是主检出的。该设置仅接受 `"fresh"` 或 `"head"`,不接受任意 git refs:

64 64 

65```json theme={null}65```json theme={null}

66{66{


76claude --worktree "#1234"76claude --worktree "#1234"

77```77```

78 78 

79要完全控制 worktrees 的创建方式,请配置 [`WorktreeCreate` hook](/zh-CN/hooks#worktreecreate),它完全替代默认的 `git worktree` 逻辑。79要完全控制 worktrees 的创建方式,请配置 [`WorktreeCreate` hook](/docs/zh-CN/hooks#worktreecreate),它完全替代默认的 `git worktree` 逻辑。

80 80 

81<h3 id="reuse-a-worktree-name">81<h3 id="reuse-a-worktree-name">

82 重用 worktree 名称82 重用 worktree 名称


108config/secrets.json108config/secrets.json

109```109```

110 110 

111这适用于使用 `--worktree` 创建的 worktrees、[子代理 worktrees](#isolate-subagents-with-worktrees) 和[桌面应用](/zh-CN/desktop#work-in-parallel-with-sessions)中的并行会话。111这适用于使用 `--worktree` 创建的 worktrees、[子代理 worktrees](#isolate-subagents-with-worktrees) 和[桌面应用](/docs/zh-CN/desktop#work-in-parallel-with-sessions)中的并行会话。

112 112 

113<h2 id="isolate-subagents-with-worktrees">113<h2 id="isolate-subagents-with-worktrees">

114 使用 worktrees 隔离子代理114 使用 worktrees 隔离子代理

115</h2>115</h2>

116 116 

117子代理可以在自己的 worktrees 中运行,以便并行编辑不会冲突。要求 Claude "为您的代理使用 worktrees",或通过向 frontmatter 添加 `isolation: worktree` 在[自定义子代理](/zh-CN/sub-agents#supported-frontmatter-fields)上永久设置它。每个子代理都会获得一个临时 worktree,当子代理完成且没有更改时会自动删除。117子代理可以在自己的 worktrees 中运行,以便并行编辑不会冲突。要求 Claude "为您的代理使用 worktrees",或通过向 frontmatter 添加 `isolation: worktree` 在[自定义子代理](/docs/zh-CN/sub-agents#supported-frontmatter-fields)上永久设置它。每个子代理都会获得一个临时 worktree,当子代理完成且没有更改时会自动删除。

118 118 

119子代理 worktrees 使用与 `--worktree` 相同的[基础分支](#choose-the-base-branch),因此它们从您的存储库的默认分支分支,除非 `worktree.baseRef` 设置为 `"head"`。119子代理 worktrees 使用与 `--worktree` 相同的[基础分支](#choose-the-base-branch),因此它们从您的存储库的默认分支分支,除非 `worktree.baseRef` 设置为 `"head"`。

120 120 


124 124 

125当您退出 worktree 会话时,清理取决于您是否进行了更改:125当您退出 worktree 会话时,清理取决于您是否进行了更改:

126 126 

127* **无未提交的更改、无未跟踪的文件且无新提交**:worktree 及其分支会自动删除。如果会话有[名称](/zh-CN/sessions#name-your-sessions),Claude 会提示您,以便您可以稍后保留 worktree127* **无未提交的更改、无未跟踪的文件且无新提交**:worktree 及其分支会自动删除。如果会话有[名称](/docs/zh-CN/sessions#name-your-sessions),Claude 会提示您,以便您可以稍后保留 worktree

128* **存在未提交的更改、未跟踪的文件或新提交**:Claude 提示您保留或删除 worktree。保留会保留目录和分支,以便您稍后可以返回。删除会删除 worktree 目录及其分支,丢弃所有未提交的更改、未跟踪的文件和提交128* **存在未提交的更改、未跟踪的文件或新提交**:Claude 提示您保留或删除 worktree。保留会保留目录和分支,以便您稍后可以返回。删除会删除 worktree 目录及其分支,丢弃所有未提交的更改、未跟踪的文件和提交

129* **非交互式运行**:使用 `--worktree` 和 `-p` 创建的 worktrees 不会自动清理,因为没有退出提示。使用 `git worktree remove` 删除它们129* **非交互式运行**:使用 `--worktree` 和 `-p` 创建的 worktrees 不会自动清理,因为没有退出提示。使用 `git worktree remove` 删除它们

130 130 

131Claude 为子代理和[后台会话](/zh-CN/agent-view#how-file-edits-are-isolated)创建的 worktrees 一旦超过您的 [`cleanupPeriodDays`](/zh-CN/settings#available-settings) 设置,就会自动删除,前提是它们没有未提交的更改、没有未跟踪的文件和没有未推送的提交。使用 `--worktree` 创建的 Worktrees 永远不会被此扫描删除。131Claude 为子代理和[后台会话](/docs/zh-CN/agent-view#how-file-edits-are-isolated)创建的 worktrees 一旦超过您的 [`cleanupPeriodDays`](/docs/zh-CN/settings#available-settings) 设置,就会自动删除,前提是它们没有未提交的更改、没有未跟踪的文件和没有未推送的提交。使用 `--worktree` 创建的 Worktrees 永远不会被此扫描删除。

132 132 

133当代理运行时,Claude 在其 worktree 上运行 `git worktree lock`,以便并发清理无法将其删除。当代理完成时,锁会被释放。要清理扫描保留的 worktree,请运行 `git worktree remove`,如果 worktree 有未提交的更改或未跟踪的文件,请添加 `--force`。133当代理运行时,Claude 在其 worktree 上运行 `git worktree lock`,以便并发清理无法将其删除。当代理完成时,锁会被释放。要清理扫描保留的 worktree,请运行 `git worktree remove`,如果 worktree 有未提交的更改或未跟踪的文件,请添加 `--force`。

134 134 


176 非 git 版本控制176 非 git 版本控制

177</h2>177</h2>

178 178 

179Worktree 隔离默认使用 git。对于 SVN、Perforce、Mercurial 或其他系统,请配置 [`WorktreeCreate` 和 `WorktreeRemove` hooks](/zh-CN/hooks#worktreecreate) 以提供自定义创建和清理逻辑。因为 hook 替代了默认的 git 行为,当您使用 `--worktree` 时,[`.worktreeinclude`](#copy-gitignored-files-into-worktrees) 不会被处理。改为在您的 hook 脚本内复制任何本地配置文件。179Worktree 隔离默认使用 git。对于 SVN、Perforce、Mercurial 或其他系统,请配置 [`WorktreeCreate` 和 `WorktreeRemove` hooks](/docs/zh-CN/hooks#worktreecreate) 以提供自定义创建和清理逻辑。因为 hook 替代了默认的 git 行为,当您使用 `--worktree` 时,[`.worktreeinclude`](#copy-gitignored-files-into-worktrees) 不会被处理。改为在您的 hook 脚本内复制任何本地配置文件。

180 180 

181此 `WorktreeCreate` hook 从 stdin 读取 worktree 名称,检出一个新的 SVN 工作副本,并打印目录路径,以便 Claude Code 可以将其用作会话的工作目录:181此 `WorktreeCreate` hook 从 stdin 读取 worktree 名称,检出一个新的 SVN 工作副本,并打印目录路径,以便 Claude Code 可以将其用作会话的工作目录:

182 182 


197}197}

198```198```

199 199 

200将其与 `WorktreeRemove` hook 配对以在会话结束时进行清理。有关输入架构和删除示例,请参阅 [hooks 参考](/zh-CN/hooks#worktreecreate)。200将其与 `WorktreeRemove` hook 配对以在会话结束时进行清理。有关输入架构和删除示例,请参阅 [hooks 参考](/docs/zh-CN/hooks#worktreecreate)。

201 201 

202<h2 id="see-also">202<h2 id="see-also">

203 另请参阅203 另请参阅


205 205 

206Worktrees 处理文件隔离。下面的相关页面涵盖将工作委派到这些隔离的检出中以及在您创建的会话之间切换:206Worktrees 处理文件隔离。下面的相关页面涵盖将工作委派到这些隔离的检出中以及在您创建的会话之间切换:

207 207 

208* [子代理](/zh-CN/sub-agents):在会话内将工作委派给隔离的代理208* [子代理](/docs/zh-CN/sub-agents):在会话内将工作委派给隔离的代理

209* [代理团队](/zh-CN/agent-teams):自动协调多个 Claude 会话209* [代理团队](/docs/zh-CN/agent-teams):自动协调多个 Claude 会话

210* [管理会话](/zh-CN/sessions):命名、恢复和在对话之间切换210* [管理会话](/docs/zh-CN/sessions):命名、恢复和在对话之间切换

211* [桌面并行会话](/zh-CN/desktop#work-in-parallel-with-sessions):桌面应用中由 worktree 支持的会话211* [桌面并行会话](/docs/zh-CN/desktop#work-in-parallel-with-sessions):桌面应用中由 worktree 支持的会话