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