20| [`acceptEdits`](#auto-approve-file-edits-with-acceptedits-mode) | 读取、文件编辑和常见文件系统命令(`mkdir`、`touch`、`mv`、`cp` 等) | 迭代您正在审查的代码 |20| [`acceptEdits`](#auto-approve-file-edits-with-acceptedits-mode) | 读取、文件编辑和常见文件系统命令(`mkdir`、`touch`、`mv`、`cp` 等) | 迭代您正在审查的代码 |
21| [`plan`](#analyze-before-you-edit-with-plan-mode) | 读取,加上当 [auto 模式](#eliminate-prompts-with-auto-mode) 可用时分类器批准的命令 | 在更改代码库之前探索它 |21| [`plan`](#analyze-before-you-edit-with-plan-mode) | 读取,加上当 [auto 模式](#eliminate-prompts-with-auto-mode) 可用时分类器批准的命令 | 在更改代码库之前探索它 |
22| [`auto`](#eliminate-prompts-with-auto-mode) | 一切,带有后台安全检查 | 长任务,减少提示疲劳 |22| [`auto`](#eliminate-prompts-with-auto-mode) | 一切,带有后台安全检查 | 长任务,减少提示疲劳 |
23| [`dontAsk`](#allow-only-pre-approved-tools-with-dontask-mode) | 工作目录内的文件读取和预批准的工具;任何会提示的内容都被拒绝,但您安装的 [mod](/docs/zh-CN/plugins/mods/overview.md) 仍可批准其中的部分调用 | 锁定的 CI 和脚本 |23| [`dontAsk`](#allow-only-pre-approved-tools-with-dontask-mode) | 工作目录内的文件读取和预批准的工具;任何会提示的内容都被拒绝,但您安装的 [mod](https://code.claude.com/docs/zh-CN/plugins/mods/overview.md) 仍可批准其中的部分调用 | 锁定的 CI 和脚本 |
24| [`bypassPermissions`](#skip-all-checks-with-bypasspermissions-mode) | 一切 | 仅限隔离容器和虚拟机 |24| [`bypassPermissions`](#skip-all-checks-with-bypasspermissions-mode) | 一切 | 仅限隔离容器和虚拟机 |
25 25
26审查每项操作的模式在 CLI 中名为 **Manual**,在 `claude --help` 中、在 VS Code 和 JetBrains 扩展中以及在桌面应用中也是如此。其配置值是 `default`,这是 hook 和 SDK 集成使用的。CLI 在您输入值的任何地方接受 `manual` 作为别名,例如 `claude --permission-mode manual` 或 `"defaultMode": "manual"`。26审查每项操作的模式在 CLI 中名为 **Manual**,在 `claude --help` 中、在 VS Code 和 JetBrains 扩展中以及在桌面应用中也是如此。其配置值是 `default`,这是 hook 和 SDK 集成使用的。CLI 在您输入值的任何地方接受 `manual` 作为别名,例如 `claude --permission-mode manual` 或 `"defaultMode": "manual"`。
27 27
28对 [受保护路径](#protected-paths) 的写入永远不会自动批准,除非在 `bypassPermissions` 模式下以及在 plan 模式会话中,其中绕过权限可用,意味着会话以 [将 `bypassPermissions` 放入模式循环](#switch-permission-modes) 的方式启动。28对 [受保护路径](#protected-paths) 的写入永远不会自动批准,除非在 `bypassPermissions` 模式下以及在 plan 模式会话中,其中绕过权限可用,意味着会话以 [将 `bypassPermissions` 放入模式循环](#switch-permission-modes) 的方式启动。
29 29
30模式设置基线。在顶部分层 [权限规则](/docs/zh-CN/permissions.md#manage-permissions) 以预批准或阻止特定工具。拒绝规则在每种模式下都会阻止,包括 `bypassPermissions`。拒绝和询问规则不适用于 [`EndConversation`](/docs/zh-CN/tools-reference#endconversation-tool-behavior),只要 Claude 仍然至少有一个其他工具可以调用。允许规则在 `bypassPermissions` 中无效。30模式设置基线。在顶部分层 [权限规则](https://code.claude.com/docs/zh-CN/permissions.md#manage-permissions) 以预批准或阻止特定工具。拒绝规则在每种模式下都会阻止,包括 `bypassPermissions`。拒绝和询问规则不适用于 [`EndConversation`](https://code.claude.com/docs/zh-CN/tools-reference#endconversation-tool-behavior),只要 Claude 仍然至少有一个其他工具可以调用。允许规则在 `bypassPermissions` 中无效。
31 31
32### 任何模式都不会自动批准的操作32### 任何模式都不会自动批准的操作
33 33
34Claude Code 在任何模式下都不会自动批准以下内容,包括 `bypassPermissions`。每个项目符号链接到说明在每种模式下会发生什么的部分:34Claude Code 在任何模式下都不会自动批准以下内容,包括 `bypassPermissions`。每个项目符号链接到说明在每种模式下会发生什么的部分:
35 35
36* 与显式 [询问规则](/docs/zh-CN/permissions.md#manage-permissions) 匹配的工具36* 与显式 [询问规则](https://code.claude.com/docs/zh-CN/permissions.md#manage-permissions) 匹配的工具
37* 您的组织 [设置为 `ask`](/docs/zh-CN/mcp#organization-controls-on-connector-tools) 的连接器工具,在该设置到达 Claude Code 的会话中37* 您的组织 [设置为 `ask`](https://code.claude.com/docs/zh-CN/mcp#organization-controls-on-connector-tools) 的连接器工具,在该设置到达 Claude Code 的会话中
38* 需要用户交互的工具:内置 `AskUserQuestion` 工具和标记为 [`requiresUserInteraction`](/docs/zh-CN/mcp#require-approval-for-a-specific-tool) 的 MCP 工具38* 需要用户交互的工具:内置 `AskUserQuestion` 工具和标记为 [`requiresUserInteraction`](https://code.claude.com/docs/zh-CN/mcp#require-approval-for-a-specific-tool) 的 MCP 工具
39* 可识别的 `rm` 和 `rmdir` [关键路径删除](#critical-paths),任何允许规则或 `PreToolUse` hook `"allow"` 都无法批准39* 可识别的 `rm` 和 `rmdir` [关键路径删除](#critical-paths),任何允许规则或 `PreToolUse` hook `"allow"` 都无法批准
40* [跨会话消息传递保护措施](#skip-all-checks-with-bypasspermissions-mode)40* [跨会话消息传递保护措施](#skip-all-checks-with-bypasspermissions-mode)
41* 在 [`permissions.blockReadsOutsideWorkingDirectories`](/docs/zh-CN/settings-reference#permissions-blockreadsoutsideworkingdirectories) 打开时在工作目录外读取:识别的文件读取 Bash 命令和任何需要批准才能在沙箱外运行的 [未沙箱化重试](/docs/zh-CN/sandboxing.md#the-unsandboxed-retry-escape-hatch),即使在 auto 模式和 `bypassPermissions` 模式下也会提示。需要 Claude Code v2.1.257 或更高版本。41* 在 [`permissions.blockReadsOutsideWorkingDirectories`](https://code.claude.com/docs/zh-CN/settings-reference#permissions-blockreadsoutsideworkingdirectories) 打开时在工作目录外读取:识别的文件读取 Bash 命令和任何需要批准才能在沙箱外运行的 [未沙箱化重试](https://code.claude.com/docs/zh-CN/sandboxing.md#the-unsandboxed-retry-escape-hatch),即使在 auto 模式和 `bypassPermissions` 模式下也会提示。需要 Claude Code v2.1.257 或更高版本。
42 42
43 shell 解析器无法追踪的命令,例如更改目录多次或运行子 shell 的命令,即使在未命名任何外部路径时也会以相同方式提示。当命令在 [沙箱](/docs/zh-CN/sandboxing.md) 中运行且沙箱强制执行该块时,此提示不适用。43 shell 解析器无法追踪的命令,例如更改目录多次或运行子 shell 的命令,即使在未命名任何外部路径时也会以相同方式提示。当命令在 [沙箱](https://code.claude.com/docs/zh-CN/sandboxing.md) 中运行且沙箱强制执行该块时,此提示不适用。
44 44
45## 常见设置45## 常见设置
46 46
47权限模式决定 Claude 在执行操作之前是否询问,而 [Bash 沙箱](/docs/zh-CN/sandboxing.md)和外层[隔离边界](/docs/zh-CN/sandbox-environments.md)决定操作运行后能够访问哪些内容。下表每一行都将一个目标与实现该目标的标志或设置以及所需的隔离配对,可作为起点。[可用模式](#available-modes)列出了每种模式下无需提示即可运行的操作。47权限模式决定 Claude 在执行操作之前是否询问,而 [Bash 沙箱](https://code.claude.com/docs/zh-CN/sandboxing.md)和外层[隔离边界](https://code.claude.com/docs/zh-CN/sandbox-environments.md)决定操作运行后能够访问哪些内容。下表每一行都将一个目标与实现该目标的标志或设置以及所需的隔离配对,可作为起点。[可用模式](#available-modes)列出了每种模式下无需提示即可运行的操作。
48 48
49| 您想要 | 起步方式 | 所需隔离 | 说明 |49| 您想要 | 起步方式 | 所需隔离 | 说明 |
50| :- | :- | :- | :- |50| :- | :- | :- | :- |
51| 亲自审查每个操作 | 手动模式:`claude --permission-mode default` | 无 | 敏感工作、不熟悉的代码 |51| 亲自审查每个操作 | 手动模式:`claude --permission-mode default` | 无 | 敏感工作、不熟悉的代码 |
52| 在本地迭代,减少提示,且不使用分类器 | 手动模式加上处于[自动允许模式](/docs/zh-CN/sandboxing.md#sandbox-modes)的 Bash 沙箱:`claude --permission-mode default`,然后运行 `/sandbox` 并选择自动允许 | 内置 Bash 沙箱,适用于 macOS、Linux 和 WSL2 | 拒绝规则仍然适用,指定了命令的询问规则(例如 `Bash(git push *)`)仍会提示。[自动允许模式](/docs/zh-CN/sandboxing.md#auto-allow-mode)介绍了其他可能触发提示的命令。若要改为通过设置文件启用沙箱,请将 [`sandbox.enabled`](/docs/zh-CN/settings-reference#sandbox-enabled) 设为 `true` |52| 在本地迭代,减少提示,且不使用分类器 | 手动模式加上处于[自动允许模式](https://code.claude.com/docs/zh-CN/sandboxing.md#sandbox-modes)的 Bash 沙箱:`claude --permission-mode default`,然后运行 `/sandbox` 并选择自动允许 | 内置 Bash 沙箱,适用于 macOS、Linux 和 WSL2 | 拒绝规则仍然适用,指定了命令的询问规则(例如 `Bash(git push *)`)仍会提示。[自动允许模式](https://code.claude.com/docs/zh-CN/sandboxing.md#auto-allow-mode)介绍了其他可能触发提示的命令。若要改为通过设置文件启用沙箱,请将 [`sandbox.enabled`](https://code.claude.com/docs/zh-CN/settings-reference#sandbox-enabled) 设为 `true` |
53| 在进行任何更改之前先探索 | `claude --permission-mode plan` | 无 | 在您[批准计划](#review-and-approve-a-plan)之前,Claude Code 会阻止编辑 |53| 在进行任何更改之前先探索 | `claude --permission-mode plan` | 无 | 在您[批准计划](#review-and-approve-a-plan)之前,Claude Code 会阻止编辑 |
54| 在自动模式下免干预工作 | `claude --permission-mode auto`,即 v2.1.283 或更高版本的[内置起始权限模式](#which-mode-a-session-starts-in) | 无;沙箱或容器可提供纵深防御 | 需要[受支持的模型](#eliminate-prompts-with-auto-mode),并且您的组织可以[关闭自动模式](#eliminate-prompts-with-auto-mode) |54| 在自动模式下免干预工作 | `claude --permission-mode auto`,即 v2.1.283 或更高版本的[内置起始权限模式](#which-mode-a-session-starts-in) | 无;沙箱或容器可提供纵深防御 | 需要[受支持的模型](#eliminate-prompts-with-auto-mode),并且您的组织可以[关闭自动模式](#eliminate-prompts-with-auto-mode) |
55| 在 CI 中使用精确的允许列表运行 | `claude -p "run the test suite" --permission-mode dontAsk --allowedTools "Bash(npm test)" "Read"` | 除 CI 运行器所提供的隔离外无需其他隔离 | [云端会话](/docs/zh-CN/claude-code-on-the-web.md)会忽略来自设置文件的 `dontAsk` |55| 在 CI 中使用精确的允许列表运行 | `claude -p "run the test suite" --permission-mode dontAsk --allowedTools "Bash(npm test)" "Read"` | 除 CI 运行器所提供的隔离外无需其他隔离 | [云端会话](https://code.claude.com/docs/zh-CN/claude-code-on-the-web.md)会忽略来自设置文件的 `dontAsk` |
56| 在容器内完全无人值守地运行 | `claude -p "<prompt>" --dangerously-skip-permissions` | 必需:容器、虚拟机或[沙箱运行时](/docs/zh-CN/sandbox-environments.md#sandbox-runtime);在 Linux 和 macOS 上,请以[非 root 用户](#skip-all-checks-with-bypasspermissions-mode)身份运行 | 云端会话会忽略来自设置文件的此模式。在此 `-p` 运行中,[本来仍会触发提示的少数调用](#skip-all-checks-with-bypasspermissions-mode)会改为直接被拒绝,而不会提示 |56| 在容器内完全无人值守地运行 | `claude -p "<prompt>" --dangerously-skip-permissions` | 必需:容器、虚拟机或[沙箱运行时](https://code.claude.com/docs/zh-CN/sandbox-environments.md#sandbox-runtime);在 Linux 和 macOS 上,请以[非 root 用户](#skip-all-checks-with-bypasspermissions-mode)身份运行 | 云端会话会忽略来自设置文件的此模式。在此 `-p` 运行中,[本来仍会触发提示的少数调用](#skip-all-checks-with-bypasspermissions-mode)会改为直接被拒绝,而不会提示 |
57 57
58Bash 沙箱和自动模式彼此独立运作,也可以组合使用,例外情况列于[沙箱模式](/docs/zh-CN/sandboxing.md#sandbox-modes)中。有关完整的交互方式,请参阅[沙箱隔离与权限及权限模式的关系](/docs/zh-CN/sandboxing.md#how-sandboxing-relates-to-permissions-and-permission-modes)和[隔离与权限模式的关系](/docs/zh-CN/sandbox-environments.md#how-isolation-relates-to-permission-modes)。58Bash 沙箱和自动模式彼此独立运作,也可以组合使用,例外情况列于[沙箱模式](https://code.claude.com/docs/zh-CN/sandboxing.md#sandbox-modes)中。有关完整的交互方式,请参阅[沙箱隔离与权限及权限模式的关系](https://code.claude.com/docs/zh-CN/sandboxing.md#how-sandboxing-relates-to-permissions-and-permission-modes)和[隔离与权限模式的关系](https://code.claude.com/docs/zh-CN/sandbox-environments.md#how-isolation-relates-to-permission-modes)。
59 59
60## 会话在哪个模式下启动60## 会话在哪个模式下启动
61 61
63 63
641. `--permission-mode` 标志或 `--dangerously-skip-permissions`641. `--permission-mode` 标志或 `--dangerously-skip-permissions`
65 65
662. [设置文件](/docs/zh-CN/settings.md#where-settings-live)中的 `permissions.defaultMode`662. [设置文件](https://code.claude.com/docs/zh-CN/settings.md#where-settings-live)中的 `permissions.defaultMode`
67 67
68 如果您在 `.claude/settings.json` 或 `.claude/settings.local.json` 中设置 `"auto"`,该值不会生效,Claude Code 然后使用内置默认值而不是来自 `~/.claude/settings.json` 的 `defaultMode`。如果您在这两个文件中设置 `"bypassPermissions"`,它也不会生效,会话以 Manual 模式启动。其他值从任何设置文件应用。68 如果您在 `.claude/settings.json` 或 `.claude/settings.local.json` 中设置 `"auto"`,该值不会生效,Claude Code 然后使用内置默认值而不是来自 `~/.claude/settings.json` 的 `defaultMode`。如果您在这两个文件中设置 `"bypassPermissions"`,它也不会生效,会话以 Manual 模式启动。其他值从任何设置文件应用。
69 69
703. 内置默认值703. 内置默认值
71 71
72VS Code 扩展启动的对话遵循[切换权限模式](#switch-permission-modes)中的扩展自己的列表。有关 Claude Code 在恢复会话中启动的权限模式,请参阅[恢复时的权限模式](/docs/zh-CN/sessions.md#permission-mode-on-resume)。72VS Code 扩展启动的对话遵循[切换权限模式](#switch-permission-modes)中的扩展自己的列表。有关 Claude Code 在恢复会话中启动的权限模式,请参阅[恢复时的权限模式](https://code.claude.com/docs/zh-CN/sessions.md#permission-mode-on-resume)。
73 73
74内置 `auto` 默认值在 macOS、Linux 和 WSL 上需要 Claude Code v2.1.228 或更高版本,在本机 Windows 上需要 v2.1.233 或更高版本。在较早的版本上,内置默认值是 Manual。74内置 `auto` 默认值在 macOS、Linux 和 WSL 上需要 Claude Code v2.1.228 或更高版本,在本机 Windows 上需要 v2.1.233 或更高版本。在较早的版本上,内置默认值是 Manual。
75 75
78| 您如何运行 Claude Code | 内置起始权限模式 |78| 您如何运行 Claude Code | 内置起始权限模式 |
79| :- | :- |79| :- | :- |
80| 任何设置文件将 `disableAutoMode` 设置为 `"disable"` | `default` |80| 任何设置文件将 `disableAutoMode` 设置为 `"disable"` | `default` |
81| `claude -p` 或 [Agent SDK](/docs/zh-CN/agent-sdk/permissions.md#permission-modes) | `default` |81| `claude -p` 或 [Agent SDK](https://code.claude.com/docs/zh-CN/agent-sdk/permissions.md#permission-modes) | `default` |
82| 您的组织已应用 [HIPAA 配置](#hipaa-configuration),且该会话[符合其适用条件](/docs/zh-CN/hipaa-setup.md#check-how-developers-sign-in-and-connect) | Claude Code v2.1.285 或更高版本中为 `default`;仍可切换到自动模式 |82| 您的组织已应用 [HIPAA 配置](#hipaa-configuration),且该会话[符合其适用条件](https://code.claude.com/docs/zh-CN/hipaa-setup.md#check-how-developers-sign-in-and-connect) | Claude Code v2.1.285 或更高版本中为 `default`;仍可切换到自动模式 |
83| 在终端或通过 [VS Code 扩展](/docs/zh-CN/vs-code.md) | Claude Code v2.1.283 或更高版本中为 `auto`;在较早的版本上,在 Pro、Max 或 Team 计划中为 `auto`(在[获取功能标志](/docs/zh-CN/env-vars.md#features-that-need-feature-flag-fetching)的会话中),否则为 `default` |83| 在终端或通过 [VS Code 扩展](https://code.claude.com/docs/zh-CN/vs-code.md) | Claude Code v2.1.283 或更高版本中为 `auto`;在较早的版本上,在 Pro、Max 或 Team 计划中为 `auto`(在[获取功能标志](https://code.claude.com/docs/zh-CN/env-vars.md#features-that-need-feature-flag-fetching)的会话中),否则为 `default` |
84 84
85当标志、设置文件或内置默认值选择 `auto` 但自动模式对会话不可用时,Claude Code 以 Manual 启动会话。自动模式在会话不满足[可用性要求](#eliminate-prompts-with-auto-mode)时不可用,例如设置文件关闭它或不支持它的模型,或当 Anthropic 已在服务器端临时关闭它时。85当标志、设置文件或内置默认值选择 `auto` 但自动模式对会话不可用时,Claude Code 以 Manual 启动会话。自动模式在会话不满足[可用性要求](#eliminate-prompts-with-auto-mode)时不可用,例如设置文件关闭它或不支持它的模型,或当 Anthropic 已在服务器端临时关闭它时。
86 86
89* 在终端中,一次,在会话顶部89* 在终端中,一次,在会话顶部
90* 在 VS Code 扩展中,作为新对话屏幕上的卡片,保留直到您关闭它90* 在 VS Code 扩展中,作为新对话屏幕上的卡片,保留直到您关闭它
91 91
92如果您的 `~/.claude/settings.json` 将 `defaultMode` 设置为 `auto` 以外的值,且没有其他设置文件设置它,您的会话继续以该模式启动。在 Pro、Max 和 Team 计划上,以及在[不获取功能标志](/docs/zh-CN/env-vars.md#features-that-need-feature-flag-fetching)的会话中,Claude Code 在终端或 VS Code 扩展中询问一次是否将设置更改为自动模式。如果您拒绝,您的设置保持原样。92如果您的 `~/.claude/settings.json` 将 `defaultMode` 设置为 `auto` 以外的值,且没有其他设置文件设置它,您的会话继续以该模式启动。在 Pro、Max 和 Team 计划上,以及在[不获取功能标志](https://code.claude.com/docs/zh-CN/env-vars.md#features-that-need-feature-flag-fetching)的会话中,Claude Code 在终端或 VS Code 扩展中询问一次是否将设置更改为自动模式。如果您拒绝,您的设置保持原样。
93 93
94### 在 `claude -p` 和 Agent SDK 运行中被拒绝的工具调用94### 在 `claude -p` 和 Agent SDK 运行中被拒绝的工具调用
95 95
96在 Claude Code v2.1.302 或更高版本中,[未设置权限模式](#which-mode-a-session-starts-in)的 `claude -p` 和 [Agent SDK](/docs/zh-CN/agent-sdk/permissions.md#permission-modes) 运行以 Manual 模式启动。此模式在 SDK 选项和设置中显示为 `default`。需要批准的调用会被拒绝,除非您通过允许规则、hook、`canUseTool` 回调或 `--permission-prompt-tool` 批准它们。96在 Claude Code v2.1.302 或更高版本中,[未设置权限模式](#which-mode-a-session-starts-in)的 `claude -p` 和 [Agent SDK](https://code.claude.com/docs/zh-CN/agent-sdk/permissions.md#permission-modes) 运行以 Manual 模式启动。此模式在 SDK 选项和设置中显示为 `default`。需要批准的调用会被拒绝,除非您通过允许规则、hook、`canUseTool` 回调或 `--permission-prompt-tool` 批准它们。
97 97
98要让这些调用获得批准,请添加允许规则或以自动模式启动:98要让这些调用获得批准,请添加允许规则或以自动模式启动:
99 99
100* **[添加允许规则](/docs/zh-CN/permissions.md#manage-permissions)**:Claude 运行您列出的调用。向 `claude -p` 传递 [`--allowedTools "Bash(npm test)"`](/docs/zh-CN/headless#auto-approve-tools),或设置您 SDK 的[允许工具选项](/docs/zh-CN/agent-sdk/permissions.md#allow-and-deny-rules)。100* **[添加允许规则](https://code.claude.com/docs/zh-CN/permissions.md#manage-permissions)**:Claude 运行您列出的调用。向 `claude -p` 传递 [`--allowedTools "Bash(npm test)"`](https://code.claude.com/docs/zh-CN/headless#auto-approve-tools),或设置您 SDK 的[允许工具选项](https://code.claude.com/docs/zh-CN/agent-sdk/permissions.md#allow-and-deny-rules)。
101* **以[自动模式](#eliminate-prompts-with-auto-mode)启动**:由分类器模型审查调用,因此您无需预先列出任何内容。向 `claude -p` 传递 `--permission-mode auto`,或设置您 SDK 的[权限模式选项](/docs/zh-CN/agent-sdk/permissions.md#set-permission-mode)。101* **以[自动模式](#eliminate-prompts-with-auto-mode)启动**:由分类器模型审查调用,因此您无需预先列出任何内容。向 `claude -p` 传递 `--permission-mode auto`,或设置您 SDK 的[权限模式选项](https://code.claude.com/docs/zh-CN/agent-sdk/permissions.md#set-permission-mode)。
102 102
103以下示例展示了 CLI 和每个 SDK 的自动模式写法:103以下示例展示了 CLI 和每个 SDK 的自动模式写法:
104 104
124options = ClaudeAgentOptions(permission_mode="auto")124options = ClaudeAgentOptions(permission_mode="auto")
125```125```
126 126
127在 v2.1.302 之前,如果这些运行不[获取功能标志](/docs/zh-CN/env-vars.md#features-that-need-feature-flag-fetching),例如在[第三方提供商](/docs/zh-CN/third-party-integrations.md)上或设置了 `DISABLE_TELEMETRY` 时,它们可能以自动模式启动。127在 v2.1.302 之前,如果这些运行不[获取功能标志](https://code.claude.com/docs/zh-CN/env-vars.md#features-that-need-feature-flag-fetching),例如在[第三方提供商](https://code.claude.com/docs/zh-CN/third-party-integrations.md)上或设置了 `DISABLE_TELEMETRY` 时,它们可能以自动模式启动。
128 128
129### 以不同的权限模式启动129### 以不同的权限模式启动
130 130
131您可以为一个会话设置起始权限模式,或作为机器、项目或组织中每个会话的默认值。当多个设置文件设置 `permissions.defaultMode` 时,[设置优先级](/docs/zh-CN/settings.md#settings-precedence)决定,因此项目或托管值优先于 `~/.claude/settings.json`。要更改已运行会话的权限模式,请参阅[切换权限模式](#switch-permission-modes)。131您可以为一个会话设置起始权限模式,或作为机器、项目或组织中每个会话的默认值。当多个设置文件设置 `permissions.defaultMode` 时,[设置优先级](https://code.claude.com/docs/zh-CN/settings.md#settings-precedence)决定,因此项目或托管值优先于 `~/.claude/settings.json`。要更改已运行会话的权限模式,请参阅[切换权限模式](#switch-permission-modes)。
132 132
133| 要为以下设置起始权限模式 | 执行此操作 |133| 要为以下设置起始权限模式 | 执行此操作 |
134| :- | :- |134| :- | :- |
135| 您即将启动的一个会话 | 将权限模式作为标志传递,例如 `claude --permission-mode default` |135| 您即将启动的一个会话 | 将权限模式作为标志传递,例如 `claude --permission-mode default` |
136| 您在此机器上启动的每个终端会话 | 在 `~/.claude/settings.json` 中设置 `permissions.defaultMode`。有关 VS Code 扩展读取的内容,请参阅[切换权限模式](#switch-permission-modes) |136| 您在此机器上启动的每个终端会话 | 在 `~/.claude/settings.json` 中设置 `permissions.defaultMode`。有关 VS Code 扩展读取的内容,请参阅[切换权限模式](#switch-permission-modes) |
137| 您在一个项目中启动的每个终端会话 | 在项目的 `.claude/settings.json` 中设置 `permissions.defaultMode`。您在终端中启动的会话遵守除 `auto` 和 `bypassPermissions` 外的每个值;VS Code 扩展启动的会话不读取项目设置以获取起始权限模式 |137| 您在一个项目中启动的每个终端会话 | 在项目的 `.claude/settings.json` 中设置 `permissions.defaultMode`。您在终端中启动的会话遵守除 `auto` 和 `bypassPermissions` 外的每个值;VS Code 扩展启动的会话不读取项目设置以获取起始权限模式 |
138| 您的组织中的每个终端会话 | 在[托管设置](/docs/zh-CN/managed-settings.md)中设置 `permissions.defaultMode`。终端会话以该模式启动,人们仍然可以切换到自动模式;有关 VS Code 扩展读取的内容,请参阅[切换权限模式](#switch-permission-modes)。要移除自动模式以便没有人可以选择它,请改为将 `permissions.disableAutoMode` 设置为 `"disable"` |138| 您的组织中的每个终端会话 | 在[托管设置](https://code.claude.com/docs/zh-CN/managed-settings.md)中设置 `permissions.defaultMode`。终端会话以该模式启动,人们仍然可以切换到自动模式;有关 VS Code 扩展读取的内容,请参阅[切换权限模式](#switch-permission-modes)。要移除自动模式以便没有人可以选择它,请改为将 `permissions.disableAutoMode` 设置为 `"disable"` |
139 139
140此示例使您机器上的每个终端会话以 Manual 模式启动,其配置值为 `default`。将其保存在 `~/.claude/settings.json` 中:140此示例使您机器上的每个终端会话以 Manual 模式启动,其配置值为 `default`。将其保存在 `~/.claude/settings.json` 中:
141 141
151 151
152### HIPAA 配置下的权限模式152### HIPAA 配置下的权限模式
153 153
154在已应用 [HIPAA 配置](/docs/zh-CN/hipaa-setup.md)的组织中,内置 `auto` 默认值不适用。当没有其他方式选择起始权限模式时,终端或 VS Code 会话以 Manual 模式启动。终端会话还会显示 `Auto mode isn't the default for your organization · Shift+Tab to switch`,而 VS Code 扩展不显示任何通知。[检查开发人员如何登录和连接](/docs/zh-CN/hipaa-setup.md#check-how-developers-sign-in-and-connect)列出了适用此规则的会话。154在已应用 [HIPAA 配置](https://code.claude.com/docs/zh-CN/hipaa-setup.md)的组织中,内置 `auto` 默认值不适用。当没有其他方式选择起始权限模式时,终端或 VS Code 会话以 Manual 模式启动。终端会话还会显示 `Auto mode isn't the default for your organization · Shift+Tab to switch`,而 VS Code 扩展不显示任何通知。[检查开发人员如何登录和连接](https://code.claude.com/docs/zh-CN/hipaa-setup.md#check-how-developers-sign-in-and-connect)列出了适用此规则的会话。
155 155
156自动模式和 `bypassPermissions` 仍然可用:156自动模式和 `bypassPermissions` 仍然可用:
157 157
158* **切换到自动模式**:按 `Shift+Tab`,或使用[您界面中的控件](#switch-permission-modes)158* **切换到自动模式**:按 `Shift+Tab`,或使用[您界面中的控件](#switch-permission-modes)
159* **以自动模式启动**:传递 `--permission-mode auto`,或在您的用户设置中将 `permissions.defaultMode` 设置为 `auto`,或在托管设置中为整个组织进行此设置。请参阅[以不同的权限模式启动](#start-in-a-different-mode)159* **以自动模式启动**:传递 `--permission-mode auto`,或在您的用户设置中将 `permissions.defaultMode` 设置为 `auto`,或在托管设置中为整个组织进行此设置。请参阅[以不同的权限模式启动](#start-in-a-different-mode)
160* **移除自动模式**:在托管设置中将 [`permissions.disableAutoMode`](/docs/zh-CN/settings-reference#disableautomode) 设置为 `"disable"`160* **移除自动模式**:在托管设置中将 [`permissions.disableAutoMode`](https://code.claude.com/docs/zh-CN/settings-reference#disableautomode) 设置为 `"disable"`
161* **阻止 `bypassPermissions`**:在托管设置中将 [`permissions.disableBypassPermissionsMode`](/docs/zh-CN/settings-reference#permissions-disablebypasspermissionsmode) 设置为 `"disable"`161* **阻止 `bypassPermissions`**:在托管设置中将 [`permissions.disableBypassPermissionsMode`](https://code.claude.com/docs/zh-CN/settings-reference#permissions-disablebypasspermissionsmode) 设置为 `"disable"`
162 162
163需要 Claude Code v2.1.285 或更高版本,即 [HIPAA 配置的最低版本](/docs/zh-CN/hipaa-setup.md#update-claude-code-and-claude-desktop)。163需要 Claude Code v2.1.285 或更高版本,即 [HIPAA 配置的最低版本](https://code.claude.com/docs/zh-CN/hipaa-setup.md#update-claude-code-and-claude-desktop)。
164 164
165## 切换权限模式165## 切换权限模式
166 166
177并非每个模式都在默认循环中:177并非每个模式都在默认循环中:
178 178
179* `auto`:当[自动模式可用](#eliminate-prompts-with-auto-mode)时出现;循环到它会在没有确认提示的情况下切换权限模式179* `auto`:当[自动模式可用](#eliminate-prompts-with-auto-mode)时出现;循环到它会在没有确认提示的情况下切换权限模式
180* `bypassPermissions`:在您使用 `--permission-mode bypassPermissions`、`--dangerously-skip-permissions`、`--allow-dangerously-skip-permissions` 或[用户、`--settings` 或托管设置](/docs/zh-CN/settings-reference#permissions-defaultmode)中的 `permissions.defaultMode: "bypassPermissions"` 启动后出现。`--allow-` 变体将权限模式添加到循环中而不激活它180* `bypassPermissions`:在您使用 `--permission-mode bypassPermissions`、`--dangerously-skip-permissions`、`--allow-dangerously-skip-permissions` 或[用户、`--settings` 或托管设置](https://code.claude.com/docs/zh-CN/settings-reference#permissions-defaultmode)中的 `permissions.defaultMode: "bypassPermissions"` 启动后出现。`--allow-` 变体将权限模式添加到循环中而不激活它
181* `dontAsk`:永远不会在循环中出现;使用 `--permission-mode dontAsk` 设置它181* `dontAsk`:永远不会在循环中出现;使用 `--permission-mode dontAsk` 设置它
182 182
183启用的可选模式在 `plan` 之后插入,`bypassPermissions` 优先,`auto` 最后。如果您同时启用了两者,您将在循环到 `auto` 的途中循环通过 `bypassPermissions`。183启用的可选模式在 `plan` 之后插入,`bypassPermissions` 优先,`auto` 最后。如果您同时启用了两者,您将在循环到 `auto` 的途中循环通过 `bypassPermissions`。
184 184
185**从 Bash 权限提示**:在 Manual 和 `acceptEdits` 权限模式下,当[自动模式](#eliminate-prompts-with-auto-mode)可用时,Claude Code 将**是的,并切换到自动模式**添加到 Bash 命令的权限提示。选择它以批准命令并将会话切换到自动模式。[PowerShell 工具](/docs/zh-CN/tools-reference.md#powershell-tool)提示不提供该选项。需要 Claude Code v2.1.247 或更高版本。185**从 Bash 权限提示**:在 Manual 和 `acceptEdits` 权限模式下,当[自动模式](#eliminate-prompts-with-auto-mode)可用时,Claude Code 将**是的,并切换到自动模式**添加到 Bash 命令的权限提示。选择它以批准命令并将会话切换到自动模式。[PowerShell 工具](https://code.claude.com/docs/zh-CN/tools-reference.md#powershell-tool)提示不提供该选项。需要 Claude Code v2.1.247 或更高版本。
186 186
187Claude Code 不会将该选项添加到由您的[`ask` 规则](/docs/zh-CN/permissions#manage-permissions)之一或[hook](/docs/zh-CN/hooks.md#pretooluse-decision-control)强制的提示,因为自动模式仍然向您显示这些提示,所以切换不会移除它们。187Claude Code 不会将该选项添加到由您的[`ask` 规则](https://code.claude.com/docs/zh-CN/permissions#manage-permissions)之一或[hook](https://code.claude.com/docs/zh-CN/hooks.md#pretooluse-decision-control)强制的提示,因为自动模式仍然向您显示这些提示,所以切换不会移除它们。
188 188
189**在启动时**:将权限模式作为标志传递。189**在启动时**:将权限模式作为标志传递。
190 190
194 194
195**作为默认值**:在您想要的范围设置 `permissions.defaultMode`,如[以不同的权限模式启动](#start-in-a-different-mode)中所述。195**作为默认值**:在您想要的范围设置 `permissions.defaultMode`,如[以不同的权限模式启动](#start-in-a-different-mode)中所述。
196 196
197相同的 `--permission-mode` 标志适用于 `-p` 用于[非交互式运行](/docs/zh-CN/headless.md)。197相同的 `--permission-mode` 标志适用于 `-p` 用于[非交互式运行](https://code.claude.com/docs/zh-CN/headless.md)。
198 198
199**VS Code**199**VS Code**
200 200
212 212
2131. `claudeCode.initialPermissionMode`2131. `claudeCode.initialPermissionMode`
2142. 您从模式指示器最后选择的模式,如果它是 Manual、Edit automatically 或 Auto。选择 Plan 或 Bypass permissions 仅适用于该对话2142. 您从模式指示器最后选择的模式,如果它是 Manual、Edit automatically 或 Auto。选择 Plan 或 Bypass permissions 仅适用于该对话
2153. 来自[托管设置](/docs/zh-CN/managed-settings.md)或 `~/.claude/settings.json` 的 `permissions.defaultMode`2153. 来自[托管设置](https://code.claude.com/docs/zh-CN/managed-settings.md)或 `~/.claude/settings.json` 的 `permissions.defaultMode`
2164. 您的计划、提供商和组织设置的[内置默认值](#which-mode-a-session-starts-in)2164. 您的计划、提供商和组织设置的[内置默认值](#which-mode-a-session-starts-in)
217 217
218扩展永远不会从项目的 `.claude/settings.json` 或 `.claude/settings.local.json` 读取起始权限模式。当 `claudeCode.claudeProcessWrapper` 被设置时,第 3 和 4 项不适用:这些对话以 Manual 启动,除非第 1 或第 2 项设置权限模式。218扩展永远不会从项目的 `.claude/settings.json` 或 `.claude/settings.local.json` 读取起始权限模式。当 `claudeCode.claudeProcessWrapper` 被设置时,第 3 和 4 项不适用:这些对话以 Manual 启动,除非第 1 或第 2 项设置权限模式。
219 219
220在 v2.1.283 之前,第 3 项仅在 Pro、Max 和 Team 计划上应用,在[获取功能标志](/docs/zh-CN/env-vars.md#features-that-need-feature-flag-fetching)的会话中。220在 v2.1.283 之前,第 3 项仅在 Pro、Max 和 Team 计划上应用,在[获取功能标志](https://code.claude.com/docs/zh-CN/env-vars.md#features-that-need-feature-flag-fetching)的会话中。
221 221
222当[自动模式可用](#eliminate-prompts-with-auto-mode)时,Auto 出现在模式指示器中。222当[自动模式可用](#eliminate-prompts-with-auto-mode)时,Auto 出现在模式指示器中。
223 223
224Bypass permissions 需要扩展设置中的**Allow dangerously skip permissions**切换。没有它,权限模式不会出现在指示器中,来自第 1 或第 3 项的 `bypassPermissions` 值以 Manual 启动对话。来自任何项的 Auto 同样在自动模式不可用时以 Manual 启动对话。224Bypass permissions 需要扩展设置中的**Allow dangerously skip permissions**切换。没有它,权限模式不会出现在指示器中,来自第 1 或第 3 项的 `bypassPermissions` 值以 Manual 启动对话。来自任何项的 Auto 同样在自动模式不可用时以 Manual 启动对话。
225 225
226有关扩展特定的详细信息,请参阅 [VS Code 指南](/docs/zh-CN/vs-code.md)。226有关扩展特定的详细信息,请参阅 [VS Code 指南](https://code.claude.com/docs/zh-CN/vs-code.md)。
227 227
228**JetBrains**228**JetBrains**
229 229
238 238
239Cowork 不使用这些模式。它有自己的权限模式,需单独启用;在为您的账户启用超出其默认值的模式之前,它根本不显示模式选择器。请参阅 [Cowork 文档](https://claude.com/docs/cowork/overview)。239Cowork 不使用这些模式。它有自己的权限模式,需单独启用;在为您的账户启用超出其默认值的模式之前,它根本不显示模式选择器。请参阅 [Cowork 文档](https://claude.com/docs/cowork/overview)。
240 240
241有关 desktop 特定的详细信息,请参阅 Desktop 指南中的[选择权限模式](/docs/zh-CN/desktop.md#choose-a-permission-mode)。241有关 desktop 特定的详细信息,请参阅 Desktop 指南中的[选择权限模式](https://code.claude.com/docs/zh-CN/desktop.md#choose-a-permission-mode)。
242 242
243**作为默认值**:在[设置](/docs/zh-CN/settings.md#where-settings-live)中设置 `defaultMode`。桌面应用读取与 CLI 相同的设置文件,并将权限模式应用于新的本地会话。243**作为默认值**:在[设置](https://code.claude.com/docs/zh-CN/settings.md#where-settings-live)中设置 `defaultMode`。桌面应用读取与 CLI 相同的设置文件,并将权限模式应用于新的本地会话。
244 244
245您在模式选择器中选择的模式会按文件夹记住,并对该文件夹优先于 `defaultMode`。Plan 是例外:选择它仅适用于当前会话。245您在模式选择器中选择的模式会按文件夹记住,并对该文件夹优先于 `defaultMode`。Plan 是例外:选择它仅适用于当前会话。
246 246
250 250
251在 [claude.ai/code](https://claude.ai/code) 上,使用输入框旁边的模式下拉菜单。在移动应用中,点击输入框中的 **+** 按钮,然后点击 **Permission**。云端会话和 Remote Control 会话提供不同的权限模式:251在 [claude.ai/code](https://claude.ai/code) 上,使用输入框旁边的模式下拉菜单。在移动应用中,点击输入框中的 **+** 按钮,然后点击 **Permission**。云端会话和 Remote Control 会话提供不同的权限模式:
252 252
253* **[云端会话](/docs/zh-CN/claude-code-on-the-web.md)**:Accept edits、Plan 和 Auto。Accept edits 对应于 `default` 模式:云端会话预先批准文件编辑,无论模式如何,因此下拉菜单显示 Accept edits 而不是 Manual。云端会话仍然遵守设置中的 `defaultMode: "acceptEdits"`。Auto 模式仅在您的组织允许且所选模型支持时出现。Bypass permissions 不可用。253* **[云端会话](https://code.claude.com/docs/zh-CN/claude-code-on-the-web.md)**:Accept edits、Plan 和 Auto。Accept edits 对应于 `default` 模式:云端会话预先批准文件编辑,无论模式如何,因此下拉菜单显示 Accept edits 而不是 Manual。云端会话仍然遵守设置中的 `defaultMode: "acceptEdits"`。Auto 模式仅在您的组织允许且所选模型支持时出现。Bypass permissions 不可用。
254* 您本地机器上的 **[Remote Control](/docs/zh-CN/remote-control.md) 会话**:Manual、Accept edits、Plan 和 Auto(对于您自己启动的会话),您无法从应用中选择 Bypass permissions。要使用 Auto,会话必须满足自动模式的[可用性要求](#eliminate-prompts-with-auto-mode)。对于在您的计算机上运行的项目线程,请参阅[在您自己的计算机上运行线程](/docs/zh-CN/claude-projects.md#run-a-thread-on-your-own-computer)。254* 您本地机器上的 **[Remote Control](https://code.claude.com/docs/zh-CN/remote-control.md) 会话**:Manual、Accept edits、Plan 和 Auto(对于您自己启动的会话),您无法从应用中选择 Bypass permissions。要使用 Auto,会话必须满足自动模式的[可用性要求](#eliminate-prompts-with-auto-mode)。对于在您的计算机上运行的项目线程,请参阅[在您自己的计算机上运行线程](https://code.claude.com/docs/zh-CN/claude-projects.md#run-a-thread-on-your-own-computer)。
255 * 除了 Bypass permissions,下拉菜单显示本地会话所在的权限模式,包括从终端设置的模式。它在应用或终端中权限模式更改时更新。255 * 除了 Bypass permissions,下拉菜单显示本地会话所在的权限模式,包括从终端设置的模式。它在应用或终端中权限模式更改时更新。
256 * 由[桌面应用](/docs/zh-CN/desktop.md)或 [VS Code 扩展](/docs/zh-CN/vs-code.md)托管的会话在权限模式更改时向 claude.ai 报告,与在终端中托管的会话相同。256 * 由[桌面应用](https://code.claude.com/docs/zh-CN/desktop.md)或 [VS Code 扩展](https://code.claude.com/docs/zh-CN/vs-code.md)托管的会话在权限模式更改时向 claude.ai 报告,与在终端中托管的会话相同。
257 257
258对于 Remote Control,运行会话的本地机器必须使用您的 claude.ai 账户登录;不支持 API 密钥。您也可以在启动该本地会话时设置起始权限模式:258对于 Remote Control,运行会话的本地机器必须使用您的 claude.ai 账户登录;不支持 API 密钥。您也可以在启动该本地会话时设置起始权限模式:
259 259
272* 超出该范围的路径272* 超出该范围的路径
273* 对[受保护路径](#protected-paths)的写入273* 对[受保护路径](#protected-paths)的写入
274* 可识别的 `rm` 和 `rmdir` [关键路径移除](#critical-paths)操作274* 可识别的 `rm` 和 `rmdir` [关键路径移除](#critical-paths)操作
275* 除[内置只读集合](/docs/zh-CN/permissions.md#read-only-commands)之外的所有其他 Bash 命令275* 除[内置只读集合](https://code.claude.com/docs/zh-CN/permissions.md#read-only-commands)之外的所有其他 Bash 命令
276 276
277每个路径也会经过[符号链接检查](/docs/zh-CN/permissions.md#symlinks),因此解析到该范围之外的写入也不会自动批准。277每个路径也会经过[符号链接检查](https://code.claude.com/docs/zh-CN/permissions.md#symlinks),因此解析到该范围之外的写入也不会自动批准。
278 278
279当启用 [PowerShell 工具](/docs/zh-CN/tools-reference.md#powershell-tool)时,`acceptEdits` 模式还会自动批准 `Set-Content`、`Add-Content`、`Clear-Content` 和 `Remove-Item` 在范围内路径上的操作,以及它们的常见别名。相同的范围和受保护路径规则适用,`Remove-Item` 获得[自己的检查](#remove-item-in-powershell)。包含引号字符的位置参数,如 `Set-Content .\notes.txt "It's done"` 中的撇号,即使在范围内路径上也仍然会提示,因为 Claude Code 无法静态验证其引用和未引用读数不同的参数。通过命名参数(如 `-Value`)传递内容以避免提示。279当启用 [PowerShell 工具](https://code.claude.com/docs/zh-CN/tools-reference.md#powershell-tool)时,`acceptEdits` 模式还会自动批准 `Set-Content`、`Add-Content`、`Clear-Content` 和 `Remove-Item` 在范围内路径上的操作,以及它们的常见别名。相同的范围和受保护路径规则适用,`Remove-Item` 获得[自己的检查](#remove-item-in-powershell)。包含引号字符的位置参数,如 `Set-Content .\notes.txt "It's done"` 中的撇号,即使在范围内路径上也仍然会提示,因为 Claude Code 无法静态验证其引用和未引用读数不同的参数。通过命名参数(如 `-Value`)传递内容以避免提示。
280 280
281当您想在编辑器中或通过 `git diff` 事后查看更改,而不是逐个批准每个编辑时,使用 `acceptEdits`。281当您想在编辑器中或通过 `git diff` 事后查看更改,而不是逐个批准每个编辑时,使用 `acceptEdits`。
282 282
293shell 命令在规划期间发生的情况取决于会话,以下第一个匹配的情况适用:293shell 命令在规划期间发生的情况取决于会话,以下第一个匹配的情况适用:
294 294
295* **具有可用绕过权限的交互式终端会话**:分类器和提示都不适用于规划命令。[使用 bypassPermissions 模式跳过所有检查](#skip-all-checks-with-bypasspermissions-mode)涵盖仍会在那里提示的少数事项。295* **具有可用绕过权限的交互式终端会话**:分类器和提示都不适用于规划命令。[使用 bypassPermissions 模式跳过所有检查](#skip-all-checks-with-bypasspermissions-mode)涵盖仍会在那里提示的少数事项。
296* **[Auto mode](/docs/zh-CN/auto-mode-config.md)可用且 `useAutoModeDuringPlan` 设置打开**,默认情况下是这样:分类器审查 shell 命令(除了[关键路径移除](#critical-paths))而不是提示您。批准的命令运行,拒绝的命令被阻止。296* **[Auto mode](https://code.claude.com/docs/zh-CN/auto-mode-config.md)可用且 `useAutoModeDuringPlan` 设置打开**,默认情况下是这样:分类器审查 shell 命令(除了[关键路径移除](#critical-paths))而不是提示您。批准的命令运行,拒绝的命令被阻止。
297* **Auto mode 不可用,或 `useAutoModeDuringPlan` 关闭**:[内置只读集合](/docs/zh-CN/permissions.md#read-only-commands)外的命令会提示批准,包括当沙箱的[自动允许模式](/docs/zh-CN/sandboxing.md#sandbox-modes)启用时。297* **Auto mode 不可用,或 `useAutoModeDuringPlan` 关闭**:[内置只读集合](https://code.claude.com/docs/zh-CN/permissions.md#read-only-commands)外的命令会提示批准,包括当沙箱的[自动允许模式](https://code.claude.com/docs/zh-CN/sandboxing.md#sandbox-modes)启用时。
298 298
299通过按 `Shift+Tab` 或在单个提示前加上 `/plan` 进入 plan mode。您也可以从 CLI 启动 plan mode:299通过按 `Shift+Tab` 或在单个提示前加上 `/plan` 进入 plan mode。您也可以从 CLI 启动 plan mode:
300 300
314 314
315批准计划退出 plan mode 并将会话切换到每个批准选项描述的权限模式,因此 Claude 开始编辑。要再次规划,使用 `Shift+Tab` 循环回到 plan mode,或在下一个提示前加上 `/plan`。315批准计划退出 plan mode 并将会话切换到每个批准选项描述的权限模式,因此 Claude 开始编辑。要再次规划,使用 `Shift+Tab` 循环回到 plan mode,或在下一个提示前加上 `/plan`。
316 316
317按 `Ctrl+G` 在默认文本编辑器中打开建议的计划并在 Claude 继续之前直接编辑它。当启用 [`showClearContextOnPlanAccept`](/docs/zh-CN/settings-reference#showclearcontextonplanaccept) 时,列表获得第一个选项,该选项批准计划并清除规划上下文。317按 `Ctrl+G` 在默认文本编辑器中打开建议的计划并在 Claude 继续之前直接编辑它。当启用 [`showClearContextOnPlanAccept`](https://code.claude.com/docs/zh-CN/settings-reference#showclearcontextonplanaccept) 时,列表获得第一个选项,该选项批准计划并清除规划上下文。
318 318
319接受计划也会根据计划为会话提供[生成的标题](/docs/zh-CN/sessions.md#name-your-sessions),除非您已经命名了会话。319接受计划也会根据计划为会话提供[生成的标题](https://code.claude.com/docs/zh-CN/sessions.md#name-your-sessions),除非您已经命名了会话。
320 320
321### 将 plan mode 设置为默认值321### 将 plan mode 设置为默认值
322 322
323要使 plan mode 成为项目的终端会话的默认值,请在 `.claude/settings.json` 中将 `defaultMode` 设置为 `plan`,如[以不同的权限模式启动](#start-in-a-different-mode)下的示例所示。[VS Code 扩展](/docs/zh-CN/vs-code.md)启动的对话不读取项目设置以获取起始权限模式。在那里,改为在您的 VS Code 用户设置中将 `claudeCode.initialPermissionMode` 设置为 `plan`。323要使 plan mode 成为项目的终端会话的默认值,请在 `.claude/settings.json` 中将 `defaultMode` 设置为 `plan`,如[以不同的权限模式启动](#start-in-a-different-mode)下的示例所示。[VS Code 扩展](https://code.claude.com/docs/zh-CN/vs-code.md)启动的对话不读取项目设置以获取起始权限模式。在那里,改为在您的 VS Code 用户设置中将 `claudeCode.initialPermissionMode` 设置为 `plan`。
324 324
325## 使用自动模式消除权限提示325## 使用自动模式消除权限提示
326 326
327自动模式让 Claude 无需经过常规权限提示即可执行操作。一个独立的分类器模型会在操作运行前对其进行审查,阻止任何超出您请求范围、针对无法识别的基础设施,或看起来受 Claude 读取的恶意内容驱动的操作。显式的 [ask 规则](/docs/zh-CN/permissions.md#manage-permissions)仍会强制弹出提示。327自动模式让 Claude 无需经过常规权限提示即可执行操作。一个独立的分类器模型会在操作运行前对其进行审查,阻止任何超出您请求范围、针对无法识别的基础设施,或看起来受 Claude 读取的恶意内容驱动的操作。显式的 [ask 规则](https://code.claude.com/docs/zh-CN/permissions.md#manage-permissions)仍会强制弹出提示。
328 328
329在 Claude Code v2.1.283 或更高版本中,对于所有计划和提供商,自动模式都是交互式终端和 VS Code 会话的[内置初始权限模式](#which-mode-a-session-starts-in)。在更早的版本中,它仅在 Pro、Max 和 Team 计划中是内置初始权限模式。329在 Claude Code v2.1.283 或更高版本中,对于所有计划和提供商,自动模式都是交互式终端和 VS Code 会话的[内置初始权限模式](#which-mode-a-session-starts-in)。在更早的版本中,它仅在 Pro、Max 和 Team 计划中是内置初始权限模式。
330 330
331分类器还会在 Claude Code 投递之前审查 Claude 通过 [`SendMessage`](/docs/zh-CN/tools-reference) 发送给另一个 Agent 的每条消息,无论是纯文本还是结构化的 [agent team](/docs/zh-CN/agent-teams.md) 消息,这在自动模式和[分类器审查命令时的计划模式](#analyze-before-you-edit-with-plan-mode)中均适用;发送审查需要 Claude Code v2.1.222 或更高版本。331分类器还会在 Claude Code 投递之前审查 Claude 通过 [`SendMessage`](https://code.claude.com/docs/zh-CN/tools-reference) 发送给另一个 Agent 的每条消息,无论是纯文本还是结构化的 [agent team](https://code.claude.com/docs/zh-CN/agent-teams.md) 消息,这在自动模式和[分类器审查命令时的计划模式](#analyze-before-you-edit-with-plan-mode)中均适用;发送审查需要 Claude Code v2.1.222 或更高版本。
332 332
333默认情况下,分类器不会审查已识别的针对关键路径的 `rm` 和 `rmdir` 删除操作,例如 `rm -rf /` 或 `rm -rf ~`。[关键路径](#critical-paths)介绍了它们在各权限模式下的处理方式。333默认情况下,分类器不会审查已识别的针对关键路径的 `rm` 和 `rmdir` 删除操作,例如 `rm -rf /` 或 `rm -rf ~`。[关键路径](#critical-paths)介绍了它们在各权限模式下的处理方式。
334 334
335自动模式还会促使 Claude 持续工作,而不停下来提出澄清性问题,不过当您的提示词或某个 skill 明确依赖提问时,Claude 仍会提问。如果希望在仍会向您提示的模式下获得更强的自主行为,请改为设置 [Proactive 输出样式](/docs/zh-CN/output-styles.md)。335自动模式还会促使 Claude 持续工作,而不停下来提出澄清性问题,不过当您的提示词或某个 skill 明确依赖提问时,Claude 仍会提问。如果希望在仍会向您提示的模式下获得更强的自主行为,请改为设置 [Proactive 输出样式](https://code.claude.com/docs/zh-CN/output-styles.md)。
336 336
337> [!WARNING]337> [!WARNING]
338>338>
341只有当您的账户满足以下所有要求时,才能使用自动模式:341只有当您的账户满足以下所有要求时,才能使用自动模式:
342 342
343* **计划**:所有计划。343* **计划**:所有计划。
344* **组织**:在 Team 和 Enterprise 上,自动模式默认可用。管理员可以通过在[托管设置](/docs/zh-CN/managed-settings.md)中将 `permissions.disableAutoMode` 设置为 `"disable"` 来为组织关闭该功能。344* **组织**:在 Team 和 Enterprise 上,自动模式默认可用。管理员可以通过在[托管设置](https://code.claude.com/docs/zh-CN/managed-settings.md)中将 `permissions.disableAutoMode` 设置为 `"disable"` 来为组织关闭该功能。
345* **模型**:在 Anthropic API 和 [Claude Platform on AWS](/docs/zh-CN/claude-platform-on-aws.md) 上,需要 Claude Opus 4.6 或更高版本、Sonnet 4.6 或更高版本、Haiku 5.5,或 [Fable 模型](/docs/zh-CN/model-config.md#work-with-fable)。在 Amazon Bedrock、Google Cloud's Agent Platform、Microsoft Foundry 以及已登录的 [Claude apps gateway](/docs/zh-CN/claude-apps-gateway) 会话中,仅支持 Claude Sonnet 5 或更高版本、Opus 4.7 或更高版本、Haiku 5.5 以及 Fable 模型。较旧的模型(包括 Sonnet 4.5、Opus 4.5、Haiku 4.5 和 claude-3 模型)在任何提供商上均不受支持。345* **模型**:在 Anthropic API 和 [Claude Platform on AWS](https://code.claude.com/docs/zh-CN/claude-platform-on-aws.md) 上,需要 Claude Opus 4.6 或更高版本、Sonnet 4.6 或更高版本、Haiku 5.5,或 [Fable 模型](https://code.claude.com/docs/zh-CN/model-config.md#work-with-fable)。在 Amazon Bedrock、Google Cloud's Agent Platform、Microsoft Foundry 以及已登录的 [Claude apps gateway](https://code.claude.com/docs/zh-CN/claude-apps-gateway) 会话中,仅支持 Claude Sonnet 5 或更高版本、Opus 4.7 或更高版本、Haiku 5.5 以及 Fable 模型。较旧的模型(包括 Sonnet 4.5、Opus 4.5、Haiku 4.5 和 claude-3 模型)在任何提供商上均不受支持。
346* **提供商**:在 Anthropic API、Claude Platform on AWS、Amazon Bedrock、Google Cloud's Agent Platform、Microsoft Foundry 以及已登录的 Claude apps gateway 会话中默认可用。346* **提供商**:在 Anthropic API、Claude Platform on AWS、Amazon Bedrock、Google Cloud's Agent Platform、Microsoft Foundry 以及已登录的 Claude apps gateway 会话中默认可用。
347 347
348如果 Claude Code 报告自动模式不可用,请首先检查这些要求,以及是否有任何设置文件设置了 [`disableAutoMode`](/docs/zh-CN/settings-reference#disableautomode)。Anthropic 也可能已在服务器端关闭了自动模式,或者服务器可能拒绝了您账户的自动模式。收到上述任一答复的会话会在会话结束前一直保持自动模式关闭,因此请稍后启动新会话。348如果 Claude Code 报告自动模式不可用,请首先检查这些要求,以及是否有任何设置文件设置了 [`disableAutoMode`](https://code.claude.com/docs/zh-CN/settings-reference#disableautomode)。Anthropic 也可能已在服务器端关闭了自动模式,或者服务器可能拒绝了您账户的自动模式。收到上述任一答复的会话会在会话结束前一直保持自动模式关闭,因此请稍后启动新会话。
349 349
350另一条指明某个模型并表示自动模式"cannot determine the safety"(无法确定安全性)的消息,意味着某次分类器请求失败。这种失败通常是暂时的,但在 Amazon Bedrock 上,它可能会反复出现,直到您的账户能够调用所指明的模型。有关原因和处理方法,请参阅[错误参考](/docs/zh-CN/errors.md#auto-mode-cannot-determine-the-safety-of-an-action)。350另一条指明某个模型并表示自动模式"cannot determine the safety"(无法确定安全性)的消息,意味着某次分类器请求失败。这种失败通常是暂时的,但在 Amazon Bedrock 上,它可能会反复出现,直到您的账户能够调用所指明的模型。有关原因和处理方法,请参阅[错误参考](https://code.claude.com/docs/zh-CN/errors.md#auto-mode-cannot-determine-the-safety-of-an-action)。
351 351
352如果您在[设置](/docs/zh-CN/settings-reference.md#all-settings)中设置了 `defaultMode: "auto"`,而终端会话却以 Manual 模式启动且没有报错,那么该设置很可能位于 `.claude/settings.json` 或 `.claude/settings.local.json` 中。`auto` 在这些文件中不会生效。请将其移至 `~/.claude/settings.json`。对于由 VS Code 扩展启动的对话,请改为查看[切换权限模式](#switch-permission-modes)中该扩展自己的列表。352如果您在[设置](https://code.claude.com/docs/zh-CN/settings-reference.md#all-settings)中设置了 `defaultMode: "auto"`,而终端会话却以 Manual 模式启动且没有报错,那么该设置很可能位于 `.claude/settings.json` 或 `.claude/settings.local.json` 中。`auto` 在这些文件中不会生效。请将其移至 `~/.claude/settings.json`。对于由 VS Code 扩展启动的对话,请改为查看[切换权限模式](#switch-permission-modes)中该扩展自己的列表。
353 353
354### Bedrock、Agent Platform 或 Foundry 上的自动模式354### Bedrock、Agent Platform 或 Foundry 上的自动模式
355 355
356在 [Amazon Bedrock](/docs/zh-CN/amazon-bedrock.md)、[Google Cloud's Agent Platform](/docs/zh-CN/google-vertex-ai.md)、[Microsoft Foundry](/docs/zh-CN/microsoft-foundry.md) 以及已登录的 [Claude apps gateway](/docs/zh-CN/claude-apps-gateway) 会话中,自动模式默认可用。如果您未在这些环境中设置权限模式,交互式会话将以自动模式启动,而 `claude -p` 或 Agent SDK 运行将以 Manual 模式启动,其配置值为 `default`:356在 [Amazon Bedrock](https://code.claude.com/docs/zh-CN/amazon-bedrock.md)、[Google Cloud's Agent Platform](https://code.claude.com/docs/zh-CN/google-vertex-ai.md)、[Microsoft Foundry](https://code.claude.com/docs/zh-CN/microsoft-foundry.md) 以及已登录的 [Claude apps gateway](https://code.claude.com/docs/zh-CN/claude-apps-gateway) 会话中,自动模式默认可用。如果您未在这些环境中设置权限模式,交互式会话将以自动模式启动,而 `claude -p` 或 Agent SDK 运行将以 Manual 模式启动,其配置值为 `default`:
357 357
358* **交互式终端和 VS Code 会话**:要以自动模式以外的权限模式启动它们,请按照[以不同的权限模式启动](#start-in-a-different-mode)中的说明设置 `permissions.defaultMode`,或从 VS Code 扩展的[模式指示器](#switch-permission-modes)中选择一种。[会话以哪种模式启动](#which-mode-a-session-starts-in)列出了以自动模式启动这些会话的 Claude Code 版本。358* **交互式终端和 VS Code 会话**:要以自动模式以外的权限模式启动它们,请按照[以不同的权限模式启动](#start-in-a-different-mode)中的说明设置 `permissions.defaultMode`,或从 VS Code 扩展的[模式指示器](#switch-permission-modes)中选择一种。[会话以哪种模式启动](#which-mode-a-session-starts-in)列出了以自动模式启动这些会话的 Claude Code 版本。
359* **`claude -p` 和 Agent SDK 运行**:要以自动模式启动,请向 `claude -p` 传递 `--permission-mode auto`,或在 TypeScript 中传递 `permissionMode: "auto"`、在 Python 中传递 `permission_mode="auto"`。如果您未传递权限模式,请参阅[`claude -p` 和 Agent SDK 运行中的工具调用被拒绝](#which-mode-a-non-interactive-run-starts-in),其中也介绍了较早的 Claude Code 版本。359* **`claude -p` 和 Agent SDK 运行**:要以自动模式启动,请向 `claude -p` 传递 `--permission-mode auto`,或在 TypeScript 中传递 `permissionMode: "auto"`、在 Python 中传递 `permission_mode="auto"`。如果您未传递权限模式,请参阅[`claude -p` 和 Agent SDK 运行中的工具调用被拒绝](#which-mode-a-non-interactive-run-starts-in),其中也介绍了较早的 Claude Code 版本。
360 360
361在这些提供商上,仅支持 Claude Sonnet 5 或更高版本、Opus 4.7 或更高版本、Haiku 5.5 以及 Fable 模型。在任何其他模型上,会话将改为以 Manual 模式启动。在这些提供商上将自动模式与 Haiku 5.5 一起使用需要 Claude Code v2.1.293 或更高版本。361在这些提供商上,仅支持 Claude Sonnet 5 或更高版本、Opus 4.7 或更高版本、Haiku 5.5 以及 Fable 模型。在任何其他模型上,会话将改为以 Manual 模式启动。在这些提供商上将自动模式与 Haiku 5.5 一起使用需要 Claude Code v2.1.293 或更高版本。
362 362
363要阻止开发者使用自动模式,请在[托管设置](/docs/zh-CN/managed-settings.md)中将 `disableAutoMode` 设置为 `"disable"`。这会将 `auto` 从 `Shift+Tab` 循环中移除,并且使用 `--permission-mode auto` 启动的会话将改为以 Manual 模式启动。当该设置从[管理员部署的来源](/docs/zh-CN/managed-settings.md#which-managed-source-claude-code-uses)到达一个已在自动模式下运行的会话时,该会话会退出自动模式,并显示 `auto mode disabled by settings`。在 v2.1.251 之前,正在运行的会话会保持自动模式直到会话结束。363要阻止开发者使用自动模式,请在[托管设置](https://code.claude.com/docs/zh-CN/managed-settings.md)中将 `disableAutoMode` 设置为 `"disable"`。这会将 `auto` 从 `Shift+Tab` 循环中移除,并且使用 `--permission-mode auto` 启动的会话将改为以 Manual 模式启动。当该设置从[管理员部署的来源](https://code.claude.com/docs/zh-CN/managed-settings.md#which-managed-source-claude-code-uses)到达一个已在自动模式下运行的会话时,该会话会退出自动模式,并显示 `auto mode disabled by settings`。在 v2.1.251 之前,正在运行的会话会保持自动模式直到会话结束。
364 364
365### 服务器端分类器审查365### 服务器端分类器审查
366 366
367在自动模式下,Claude Code 可以在会话的模型请求中请求服务器检查由[决策顺序](#how-the-classifier-evaluates-actions)送交审查的操作,以代替发送其自身的分类器请求。以下会话会请求服务器审查:367在自动模式下,Claude Code 可以在会话的模型请求中请求服务器检查由[决策顺序](#how-the-classifier-evaluates-actions)送交审查的操作,以代替发送其自身的分类器请求。以下会话会请求服务器审查:
368 368
369* **直接连接到 Anthropic API**:在交互式终端会话以及 `-p`、Agent SDK、[VS Code 扩展](/docs/zh-CN/vs-code.md)和[桌面应用](/docs/zh-CN/desktop.md)会话中,无论您的计划或账户类型如何,随 Anthropic 逐步推出而生效。在交互式终端会话中,Pro、Max 和 Team 计划需要 Claude Code v2.1.271 或更高版本,Enterprise 计划和 Claude API 账户需要 v2.1.278 或更高版本。在 `-p`、Agent SDK、VS Code 扩展和桌面应用会话中,需要 Claude Code v2.1.281 或更高版本。从 v2.1.282 起,[不获取功能标志](/docs/zh-CN/env-vars.md#features-that-need-feature-flag-fetching)的会话(例如因为您关闭了遥测)在任何类型的会话中都会默认请求服务器审查。369* **直接连接到 Anthropic API**:在交互式终端会话以及 `-p`、Agent SDK、[VS Code 扩展](https://code.claude.com/docs/zh-CN/vs-code.md)和[桌面应用](https://code.claude.com/docs/zh-CN/desktop.md)会话中,无论您的计划或账户类型如何,随 Anthropic 逐步推出而生效。在交互式终端会话中,Pro、Max 和 Team 计划需要 Claude Code v2.1.271 或更高版本,Enterprise 计划和 Claude API 账户需要 v2.1.278 或更高版本。在 `-p`、Agent SDK、VS Code 扩展和桌面应用会话中,需要 Claude Code v2.1.281 或更高版本。从 v2.1.282 起,[不获取功能标志](https://code.claude.com/docs/zh-CN/env-vars.md#features-that-need-feature-flag-fetching)的会话(例如因为您关闭了遥测)在任何类型的会话中都会默认请求服务器审查。
370* **云提供商,或 LLM 网关或代理**:在 [Claude Platform on AWS](/docs/zh-CN/claude-platform-on-aws.md)、Amazon Bedrock、Google Cloud's Agent Platform 和 Microsoft Foundry 上,以及每当您将 `ANTHROPIC_BASE_URL` 指向 [LLM 网关或代理](/docs/zh-CN/llm-gateway)时,无论您的计划如何。默认请求服务器审查需要 Claude Code v2.1.278 或更高版本。370* **云提供商,或 LLM 网关或代理**:在 [Claude Platform on AWS](https://code.claude.com/docs/zh-CN/claude-platform-on-aws.md)、Amazon Bedrock、Google Cloud's Agent Platform 和 Microsoft Foundry 上,以及每当您将 `ANTHROPIC_BASE_URL` 指向 [LLM 网关或代理](https://code.claude.com/docs/zh-CN/llm-gateway)时,无论您的计划如何。默认请求服务器审查需要 Claude Code v2.1.278 或更高版本。
371* **已登录的 [Claude apps gateway](/docs/zh-CN/claude-apps-gateway) 会话**:需要 Claude Code v2.1.280 或更高版本371* **已登录的 [Claude apps gateway](https://code.claude.com/docs/zh-CN/claude-apps-gateway) 会话**:需要 Claude Code v2.1.280 或更高版本
372 372
373当服务器审查这些操作时,由服务器的裁决决定结果。此外还有另外两种可能的结果:373当服务器审查这些操作时,由服务器的裁决决定结果。此外还有另外两种可能的结果:
374 374
375* **服务器不审查该会话**:响应完成但没有审查结果,或服务器答复它不审查此会话。最常见的原因是 LLM 网关或代理丢弃了审查请求或结果,以及平台、区域或凭据尚不支持服务器端检查。Claude Code 会回退到其自身的分类器请求。一旦该回退在会话剩余时间内保持生效,在这些请求需要计费的账户上,它会显示[关于分类器请求费用的通知](/docs/zh-CN/auto-mode-classifier-billing.md)。375* **服务器不审查该会话**:响应完成但没有审查结果,或服务器答复它不审查此会话。最常见的原因是 LLM 网关或代理丢弃了审查请求或结果,以及平台、区域或凭据尚不支持服务器端检查。Claude Code 会回退到其自身的分类器请求。一旦该回退在会话剩余时间内保持生效,在这些请求需要计费的账户上,它会显示[关于分类器请求费用的通知](https://code.claude.com/docs/zh-CN/auto-mode-classifier-billing.md)。
376* **服务器未对某个操作给出裁决**:Claude Code 会拒绝该操作,而不是在未经审查的情况下运行它。在任何连接上,当响应在审查结果到达前结束,或结果以 Claude Code 无法读取的形式到达时,都会发生这种情况。截断响应或改写结果的 LLM 网关或代理可能导致上述任一情况。在直接连接到 Anthropic API 时,当服务器对该操作的检查失败(例如超时)时也会发生这种情况。[服务器未返回安全裁决](/docs/zh-CN/errors.md#the-server-returned-no-safety-verdict)介绍了拒绝消息、拒绝反复发生时的情况以及处理方法。376* **服务器未对某个操作给出裁决**:Claude Code 会拒绝该操作,而不是在未经审查的情况下运行它。在任何连接上,当响应在审查结果到达前结束,或结果以 Claude Code 无法读取的形式到达时,都会发生这种情况。截断响应或改写结果的 LLM 网关或代理可能导致上述任一情况。在直接连接到 Anthropic API 时,当服务器对该操作的检查失败(例如超时)时也会发生这种情况。[服务器未返回安全裁决](https://code.claude.com/docs/zh-CN/errors.md#the-server-returned-no-safety-verdict)介绍了拒绝消息、拒绝反复发生时的情况以及处理方法。
377 377
378要跳过请求服务器审查并始终使用 Claude Code 自身的分类器请求,请设置 [`CLAUDE_CODE_AUTO_MODE_SERVER=0`](/docs/zh-CN/env-vars)。在直接连接到 Anthropic API 时,该变量需要 Claude Code v2.1.281 或更高版本。在这种连接上将其设置为 `1`,会在尚未启用服务器审查的会话中启用它,除非您同时设置了 `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`。如果您设置了 `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1` 且未设置 `CLAUDE_CODE_AUTO_MODE_SERVER`,Claude Code 也会停止请求服务器审查,[禁用预发布功能](/docs/zh-CN/llm-gateway-protocol.md#disable-pre-release-capabilities)中描述的情况除外。378要跳过请求服务器审查并始终使用 Claude Code 自身的分类器请求,请设置 [`CLAUDE_CODE_AUTO_MODE_SERVER=0`](https://code.claude.com/docs/zh-CN/env-vars)。在直接连接到 Anthropic API 时,该变量需要 Claude Code v2.1.281 或更高版本。在这种连接上将其设置为 `1`,会在尚未启用服务器审查的会话中启用它,除非您同时设置了 `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`。如果您设置了 `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1` 且未设置 `CLAUDE_CODE_AUTO_MODE_SERVER`,Claude Code 也会停止请求服务器审查,[禁用预发布功能](https://code.claude.com/docs/zh-CN/llm-gateway-protocol.md#disable-pre-release-capabilities)中描述的情况除外。
379 379
380### 默认分类器模型380### 默认分类器模型
381 381
387| - | - |387| - | - |
388| 具有 Anthropic 配置的分类器模型 | 所配置的模型。[查看调试日志](#classifier-model-check)以确定是哪个模型 |388| 具有 Anthropic 配置的分类器模型 | 所配置的模型。[查看调试日志](#classifier-model-check)以确定是哪个模型 |
389| 在 Claude Sonnet 4.6 上运行 | Sonnet 4.6 |389| 在 Claude Sonnet 4.6 上运行 | Sonnet 4.6 |
390| 设置了 [`ANTHROPIC_DEFAULT_SONNET_MODEL`](/docs/zh-CN/model-config#environment-variables) | 其值;如果其值为 Claude Sonnet 5.5 或 Claude Opus 5.5,则为 Sonnet 5 |390| 设置了 [`ANTHROPIC_DEFAULT_SONNET_MODEL`](https://code.claude.com/docs/zh-CN/model-config#environment-variables) | 其值;如果其值为 Claude Sonnet 5.5 或 Claude Opus 5.5,则为 Sonnet 5 |
391 391
392如果 Sonnet 5 或 `ANTHROPIC_DEFAULT_SONNET_MODEL` 中的模型无法从您的提供商获得,或被您组织的[模型策略](/docs/zh-CN/model-config.md#restrict-model-selection)排除,Claude Code 会使用备用模型。该备用模型是您会话的模型,在 [Fable 会话](/docs/zh-CN/model-config.md#work-with-fable)中则是 Opus 模型。392如果 Sonnet 5 或 `ANTHROPIC_DEFAULT_SONNET_MODEL` 中的模型无法从您的提供商获得,或被您组织的[模型策略](https://code.claude.com/docs/zh-CN/model-config.md#restrict-model-selection)排除,Claude Code 会使用备用模型。该备用模型是您会话的模型,在 [Fable 会话](https://code.claude.com/docs/zh-CN/model-config.md#work-with-fable)中则是 Opus 模型。
393 393
394### 选择分类器模型394### 选择分类器模型
395 395
396在 Claude Code v2.1.302 或更高版本中,将 [`CLAUDE_CODE_AUTO_MODE_MODEL`](/docs/zh-CN/env-vars) 设置为完整的模型 ID,即可在[默认模型](#default-classifier-model)以外的模型上运行分类器。您的云提供商自己的完整模型 ID 也可以使用。以下 `~/.claude/settings.json` 示例设置了 Claude Sonnet 4.6:396在 Claude Code v2.1.302 或更高版本中,将 [`CLAUDE_CODE_AUTO_MODE_MODEL`](https://code.claude.com/docs/zh-CN/env-vars) 设置为完整的模型 ID,即可在[默认模型](#default-classifier-model)以外的模型上运行分类器。您的云提供商自己的完整模型 ID 也可以使用。以下 `~/.claude/settings.json` 示例设置了 Claude Sonnet 4.6:
397 397
398```json theme={null}398```json theme={null}
399{399{
408| 情况 | 会发生什么 | 处理方法 |408| 情况 | 会发生什么 | 处理方法 |
409| - | - | - |409| - | - | - |
410| [调试日志](#classifier-model-check)报告了 Anthropic 配置的分类器模型 | 由该模型进行审查 | 无需处理 |410| [调试日志](#classifier-model-check)报告了 Anthropic 配置的分类器模型 | 由该模型进行审查 | 无需处理 |
411| 您设置了 Claude Opus 5、Sonnet 5.5、Opus 5.5,或被您组织的[模型策略](/docs/zh-CN/model-config.md#restrict-model-selection)排除的模型 | 由[默认分类器模型](#default-classifier-model)进行审查 | 设置其他模型 |411| 您设置了 Claude Opus 5、Sonnet 5.5、Opus 5.5,或被您组织的[模型策略](https://code.claude.com/docs/zh-CN/model-config.md#restrict-model-selection)排除的模型 | 由[默认分类器模型](#default-classifier-model)进行审查 | 设置其他模型 |
412| 您的提供商无法提供该模型 | 分类器检查失败,因此 Claude Code 会[拒绝它所检查的每个操作](/docs/zh-CN/errors.md#auto-mode-cannot-determine-the-safety-of-an-action) | 设置该提供商可提供的模型,或移除该变量 |412| 您的提供商无法提供该模型 | 分类器检查失败,因此 Claude Code 会[拒绝它所检查的每个操作](https://code.claude.com/docs/zh-CN/errors.md#auto-mode-cannot-determine-the-safety-of-an-action) | 设置该提供商可提供的模型,或移除该变量 |
413| 在会话中,`/status` 将 [`Auto mode server`](#server-side-classifier-review) 显示为 `Enabled` | 由服务器进行审查,不使用您的模型 | 无需处理 |413| 在会话中,`/status` 将 [`Auto mode server`](#server-side-classifier-review) 显示为 `Enabled` | 由服务器进行审查,不使用您的模型 | 无需处理 |
414 414
415如果同时符合多种情况,以最先列出的为准。415如果同时符合多种情况,以最先列出的为准。
416 416
417#### 查看分类器使用了哪个模型417#### 查看分类器使用了哪个模型
418 418
419在 shell 中,使用 [`--debug-file`](/docs/zh-CN/cli-reference#cli-flags) 启动一个自动模式会话:419在 shell 中,使用 [`--debug-file`](https://code.claude.com/docs/zh-CN/cli-reference#cli-flags) 启动一个自动模式会话:
420 420
421```bash theme={null}421```bash theme={null}
422claude --permission-mode auto --debug-file classifier-debug.log422claude --permission-mode auto --debug-file classifier-debug.log
432 432
433### 分类器默认阻止的内容433### 分类器默认阻止的内容
434 434
435分类器信任您的工作目录以及会话启动时为其配置的远程仓库。在会话期间通过 `git remote add` 或 `git remote set-url` 添加或重新指向的远程仓库不受信任,其他所有内容都被视为外部内容,直到您[配置受信任的基础设施](/docs/zh-CN/auto-mode-config.md)。435分类器信任您的工作目录以及会话启动时为其配置的远程仓库。在会话期间通过 `git remote add` 或 `git remote set-url` 添加或重新指向的远程仓库不受信任,其他所有内容都被视为外部内容,直到您[配置受信任的基础设施](https://code.claude.com/docs/zh-CN/auto-mode-config.md)。
436 436
437**默认阻止**:437**默认阻止**:
438 438
459* 连接到敏感远程目标的交互式 shell 或端口转发459* 连接到敏感远程目标的交互式 shell 或端口转发
460* 打开使本地服务可从公共互联网访问的隧道或反向 shell460* 打开使本地服务可从公共互联网访问的隧道或反向 shell
461* 将有效的凭据或令牌打印到会话记录或文件中461* 将有效的凭据或令牌打印到会话记录或文件中
462* 访问在您的[环境](/docs/zh-CN/auto-mode-config.md#define-trusted-infrastructure)中被列为敏感数据位置的位置、从中复制数据,或将数据从此类位置发送给该条目所排除的受众462* 访问在您的[环境](https://code.claude.com/docs/zh-CN/auto-mode-config.md#define-trusted-infrastructure)中被列为敏感数据位置的位置、从中复制数据,或将数据从此类位置发送给该条目所排除的受众
463* 绕过您的内部包注册表、将包安装路由到公共注册表。当您的环境中列出了内部注册表或镜像,或者您在对话中告诉 Claude 存在内部注册表或镜像时,此规则适用463* 绕过您的内部包注册表、将包安装路由到公共注册表。当您的环境中列出了内部注册表或镜像,或者您在对话中告诉 Claude 存在内部注册表或镜像时,此规则适用
464* 使用会解除安全防护的标志运行命令,例如 `--insecure`464* 使用会解除安全防护的标志运行命令,例如 `--insecure`
465* 启动无需人工批准或沙箱即可运行的自主 Agent 循环,例如使用 `--dangerously-skip-permissions` 或 `--no-sandbox` 启动的循环。这包括在禁用隔离和逐操作批准的情况下运行第三方 Agent 或评估工具,例如使用 `--yes-always` 启动的运行器465* 启动无需人工批准或沙箱即可运行的自主 Agent 循环,例如使用 `--dangerously-skip-permissions` 或 `--no-sandbox` 启动的循环。这包括在禁用隔离和逐操作批准的情况下运行第三方 Agent 或评估工具,例如使用 `--yes-always` 启动的运行器
466* 可能将页面内容、cookie 或凭据发送到源站之外的 [Claude in Chrome](/docs/zh-CN/chrome.md) 浏览器操作466* 可能将页面内容、cookie 或凭据发送到源站之外的 [Claude in Chrome](https://code.claude.com/docs/zh-CN/chrome.md) 浏览器操作
467* 通过通配符、glob 或时间过滤器(而非指定的具体路径)删除 `/tmp`、`$TMPDIR` 或其他共享临时目录或缓存目录中的文件467* 通过通配符、glob 或时间过滤器(而非指定的具体路径)删除 `/tmp`、`$TMPDIR` 或其他共享临时目录或缓存目录中的文件
468* 在发送、上传、发布或写入给他人或共享系统的内容中包含敏感细节,而您自己的消息并未授权将这些细节提供给该接收方。当仓库位于信任边界之外或为公开仓库(包括您组织自己的公开仓库)时,PR 和 issue 正文、提交信息以及评论都属于此类外发内容;内部文件路径、代号、实时 API 响应数据(例如电子邮件或账户标识符)以及基础设施标识符都属于敏感细节。对于 PR 或 issue 正文中来自 API 响应的实时个人数据,例如电子邮件地址、账户或组织标识符或使用量指标,无论仓库的可见性或信任边界如何,都需要您明确指出这些细节和接收方468* 在发送、上传、发布或写入给他人或共享系统的内容中包含敏感细节,而您自己的消息并未授权将这些细节提供给该接收方。当仓库位于信任边界之外或为公开仓库(包括您组织自己的公开仓库)时,PR 和 issue 正文、提交信息以及评论都属于此类外发内容;内部文件路径、代号、实时 API 响应数据(例如电子邮件或账户标识符)以及基础设施标识符都属于敏感细节。对于 PR 或 issue 正文中来自 API 响应的实时个人数据,例如电子邮件地址、账户或组织标识符或使用量指标,无论仓库的可见性或信任边界如何,都需要您明确指出这些细节和接收方
469* 向 Claude Code 自己的 tmux 窗格发送按键以驱动其自身界面,分类器会将此视为 Claude 更改其自身的权限或监督469* 向 Claude Code 自己的 tmux 窗格发送按键以驱动其自身界面,分类器会将此视为 Claude 更改其自身的权限或监督
479 479
480 直接位于变量下的 glob(例如 `rm -rf "$VAR"/*`)则属于[关键路径](#critical-paths)。目标为单独的 `*` 或以 `/*` 或 `\*` 结尾的 `Remove-Item` 永远不会到达分类器:Claude Code 会[直接拒绝它们](#remove-item-in-powershell)。480 直接位于变量下的 glob(例如 `rm -rf "$VAR"/*`)则属于[关键路径](#critical-paths)。目标为单独的 `*` 或以 `/*` 或 `\*` 结尾的 `Remove-Item` 永远不会到达分类器:Claude Code 会[直接拒绝它们](#remove-item-in-powershell)。
481 481
482其中一些类别依赖于[环境](/docs/zh-CN/auto-mode-config.md#define-trusted-infrastructure)条目,例如敏感远程目标和受保护的 IaC 作用域,您可以将它们收窄到具体名称。482其中一些类别依赖于[环境](https://code.claude.com/docs/zh-CN/auto-mode-config.md#define-trusted-infrastructure)条目,例如敏感远程目标和受保护的 IaC 作用域,您可以将它们收窄到具体名称。
483 483
484Claude Code v2.1.257 及更高版本还会默认阻止以下操作:484Claude Code v2.1.257 及更高版本还会默认阻止以下操作:
485 485
488* 读取属于主机而非您的任务的凭据,例如节点证书或节点的容器注册表身份验证信息488* 读取属于主机而非您的任务的凭据,例如节点证书或节点的容器注册表身份验证信息
489* 连接或扫描 Claude 未启动的同级容器、pod 或虚拟机,或容器所在的节点489* 连接或扫描 Claude 未启动的同级容器、pod 或虚拟机,或容器所在的节点
490 490
491如果 Claude Code 运行的环境本应允许其中某项操作,请在 `autoMode.environment` 中的 [Host containment 条目](/docs/zh-CN/auto-mode-config.md#define-trusted-infrastructure)中描述该设置。491如果 Claude Code 运行的环境本应允许其中某项操作,请在 `autoMode.environment` 中的 [Host containment 条目](https://code.claude.com/docs/zh-CN/auto-mode-config.md#define-trusted-infrastructure)中描述该设置。
492 492
493Claude Code v2.1.261 及更高版本还会默认阻止以下操作:493Claude Code v2.1.261 及更高版本还会默认阻止以下操作:
494 494
502* 只读 HTTP 请求502* 只读 HTTP 请求
503* 推送到您正在处理的仓库的任何分支,包括默认分支。名称表明其为部署或发布目标的非默认分支(例如 `production` 或 `gh-pages`)不在此列:分类器会单独判断推送到这类分支的操作。503* 推送到您正在处理的仓库的任何分支,包括默认分支。名称表明其为部署或发布目标的非默认分支(例如 `production` 或 `gh-pages`)不在此列:分类器会单独判断推送到这类分支的操作。
504 504
505 推送的内容仍会根据分类器的其他规则进行检查,[`permissions.deny` 规则](/docs/zh-CN/permissions#manage-permissions)在所有模式下仍可按[命令的书写形式](/docs/zh-CN/permissions.md#bash-rule-limits)阻止推送命令。远程仓库自身的分支保护仍然适用。从 v2.1.203 到 v2.1.211 之前,默认仅允许对默认分支的常规推送,以及推送到您开始时所在的分支或 Claude 创建的分支。505 推送的内容仍会根据分类器的其他规则进行检查,[`permissions.deny` 规则](https://code.claude.com/docs/zh-CN/permissions#manage-permissions)在所有模式下仍可按[命令的书写形式](https://code.claude.com/docs/zh-CN/permissions.md#bash-rule-limits)阻止推送命令。远程仓库自身的分支保护仍然适用。从 v2.1.203 到 v2.1.211 之前,默认仅允许对默认分支的常规推送,以及推送到您开始时所在的分支或 Claude 创建的分支。
506* 删除 Claude 在同一会话中先前创建的确切作业506* 删除 Claude 在同一会话中先前创建的确切作业
507* 作为任务的一部分,读取、审查或编写与安全相关的代码、配置和威胁模型507* 作为任务的一部分,读取、审查或编写与安全相关的代码、配置和威胁模型
508* 在同一多 Agent 会话中协同工作的 Agent 之间的消息508* 在同一多 Agent 会话中协同工作的 Agent 之间的消息
509* 将数据发送到您在 [`environment`](/docs/zh-CN/auto-mode-config#define-trusted-infrastructure) 中列出的受信任域名、存储桶和服务。这仅涵盖数据流动,不包括对同一基础设施的破坏性操作或凭据操作509* 将数据发送到您在 [`environment`](https://code.claude.com/docs/zh-CN/auto-mode-config#define-trusted-infrastructure) 中列出的受信任域名、存储桶和服务。这仅涵盖数据流动,不包括对同一基础设施的破坏性操作或凭据操作
510* [Claude in Chrome](/docs/zh-CN/chrome.md) 导航到受信任的内部域名、localhost 或您指定的 URL510* [Claude in Chrome](https://code.claude.com/docs/zh-CN/chrome.md) 导航到受信任的内部域名、localhost 或您指定的 URL
511 511
512沙箱化命令默认没有网络访问权限。Claude 会在命令本身上指明该命令所需的主机,分类器会将这些主机与命令一起审查,而获批的列表仅为该条命令开放这些主机。[按命令允许的域名](/docs/zh-CN/sandboxing.md#per-command-allowed-domains-in-auto-mode)介绍了列表能开放和不能开放的内容,以及命令尝试访问未列出的主机时会发生什么。512沙箱化命令默认没有网络访问权限。Claude 会在命令本身上指明该命令所需的主机,分类器会将这些主机与命令一起审查,而获批的列表仅为该条命令开放这些主机。[按命令允许的域名](https://code.claude.com/docs/zh-CN/sandboxing.md#per-command-allowed-domains-in-auto-mode)介绍了列表能开放和不能开放的内容,以及命令尝试访问未列出的主机时会发生什么。
513 513
514运行 `claude auto-mode defaults` 可以以 JSON 格式打印完整的规则列表。如果常规操作被阻止,管理员可以通过 `autoMode.environment` 设置添加受信任的仓库、存储桶和服务:请参阅[配置自动模式](/docs/zh-CN/auto-mode-config.md)。514运行 `claude auto-mode defaults` 可以以 JSON 格式打印完整的规则列表。如果常规操作被阻止,管理员可以通过 `autoMode.environment` 设置添加受信任的仓库、存储桶和服务:请参阅[配置自动模式](https://code.claude.com/docs/zh-CN/auto-mode-config.md)。
515 515
516推送到您正在处理的仓库的任何分支,以及创建与您的请求相符的 Pull Request,都会在无提示的情况下运行,除非该推送或 Pull Request 属于[阻止列表](#what-the-classifier-blocks-by-default)中的情况,例如密钥或敏感数据离开仓库,或 Pull Request 针对的是其他仓库或组织。如果要在保持自动模式的同时,要求在这些命令执行前进行人工确认,请添加 `permissions.ask` 规则,这些规则按[命令的书写形式](/docs/zh-CN/permissions.md#bash-rule-limits)进行匹配:请参阅[常见边界](/docs/zh-CN/auto-mode-config.md#common-boundaries)。516推送到您正在处理的仓库的任何分支,以及创建与您的请求相符的 Pull Request,都会在无提示的情况下运行,除非该推送或 Pull Request 属于[阻止列表](#what-the-classifier-blocks-by-default)中的情况,例如密钥或敏感数据离开仓库,或 Pull Request 针对的是其他仓库或组织。如果要在保持自动模式的同时,要求在这些命令执行前进行人工确认,请添加 `permissions.ask` 规则,这些规则按[命令的书写形式](https://code.claude.com/docs/zh-CN/permissions.md#bash-rule-limits)进行匹配:请参阅[常见边界](https://code.claude.com/docs/zh-CN/auto-mode-config.md#common-boundaries)。
517 517
518### 首次读取工作目录之外的内容518### 首次读取工作目录之外的内容
519 519
520当 [`permissions.blockReadsOutsideWorkingDirectories`](/docs/zh-CN/settings-reference#permissions-blockreadsoutsideworkingdirectories) 关闭时,在自动模式下,除[从网络路径读取](/docs/zh-CN/permissions.md#network-paths)之外的文件读取无需提示即可运行,包括读取[工作目录](/docs/zh-CN/permissions.md#working-directories)之外的内容。当 Claude 首次对工作目录之外的路径使用 Read、Grep 或 Glob 工具时,Claude Code 会询问是否允许该读取。520当 [`permissions.blockReadsOutsideWorkingDirectories`](https://code.claude.com/docs/zh-CN/settings-reference#permissions-blockreadsoutsideworkingdirectories) 关闭时,在自动模式下,除[从网络路径读取](https://code.claude.com/docs/zh-CN/permissions.md#network-paths)之外的文件读取无需提示即可运行,包括读取[工作目录](https://code.claude.com/docs/zh-CN/permissions.md#working-directories)之外的内容。当 Claude 首次对工作目录之外的路径使用 Read、Grep 或 Glob 工具时,Claude Code 会询问是否允许该读取。
521 521
522在非交互式 `-p` 运行或后台会话中不会出现该提示;这些情况下的读取照常运行。522在非交互式 `-p` 运行或后台会话中不会出现该提示;这些情况下的读取照常运行。
523 523
524无论您如何回答,Claude 都会继续工作:524无论您如何回答,Claude 都会继续工作:
525 525
526* **是,并继续允许读取工作目录之外的任何内容**:读取会运行,之后对工作目录之外内容的读取照常运行,并且 Claude Code 会记录您的回答,使该提示不再出现526* **是,并继续允许读取工作目录之外的任何内容**:读取会运行,之后对工作目录之外内容的读取照常运行,并且 Claude Code 会记录您的回答,使该提示不再出现
527* **否,并从现在起阻止读取工作目录之外的内容**:读取会被拒绝,并且 Claude Code 会在您的用户设置中将 [`permissions.blockReadsOutsideWorkingDirectories`](/docs/zh-CN/settings-reference#permissions-blockreadsoutsideworkingdirectories) 设置为 `true`,这会使文件工具在之后的每个会话和每种权限模式中拒绝此类读取。如果之后要让 Claude 读取此类路径,请使用 `/add-dir` 添加其目录,或移除该设置。527* **否,并从现在起阻止读取工作目录之外的内容**:读取会被拒绝,并且 Claude Code 会在您的用户设置中将 [`permissions.blockReadsOutsideWorkingDirectories`](https://code.claude.com/docs/zh-CN/settings-reference#permissions-blockreadsoutsideworkingdirectories) 设置为 `true`,这会使文件工具在之后的每个会话和每种权限模式中拒绝此类读取。如果之后要让 Claude 读取此类路径,请使用 `/add-dir` 添加其目录,或移除该设置。
528* **否,下次再询问**:读取会被拒绝,下一次读取工作目录之外的内容时会再次提示528* **否,下次再询问**:读取会被拒绝,下一次读取工作目录之外的内容时会再次提示
529* **是,但下次再询问**:读取会运行,不会保存任何内容,下一次读取工作目录之外的内容时会再次提示529* **是,但下次再询问**:读取会运行,不会保存任何内容,下一次读取工作目录之外的内容时会再次提示
530 530
532 532
533分类器会将您在对话中声明的边界视为阻止信号。如果您告诉 Claude "不要推送"或"在部署前等我审查",即使默认规则允许,分类器也会阻止相应的操作。边界会一直有效,直到您在后续消息中解除它。Claude 自己判断某个条件已满足并不能解除边界。533分类器会将您在对话中声明的边界视为阻止信号。如果您告诉 Claude "不要推送"或"在部署前等我审查",即使默认规则允许,分类器也会阻止相应的操作。边界会一直有效,直到您在后续消息中解除它。Claude 自己判断某个条件已满足并不能解除边界。
534 534
535边界不会作为规则存储。分类器在每次检查时都会从会话记录中重新读取这些边界,因此如果[上下文压缩](/docs/zh-CN/costs.md#reduce-token-usage)移除了声明边界的消息,该边界可能会丢失。如需硬性保证,请改为添加 [deny 规则](/docs/zh-CN/permissions.md#permission-rule-syntax)。535边界不会作为规则存储。分类器在每次检查时都会从会话记录中重新读取这些边界,因此如果[上下文压缩](https://code.claude.com/docs/zh-CN/costs.md#reduce-token-usage)移除了声明边界的消息,该边界可能会丢失。如需硬性保证,请改为添加 [deny 规则](https://code.claude.com/docs/zh-CN/permissions.md#permission-rule-syntax)。
536 536
537### 您在对话中声明的批准537### 您在对话中声明的批准
538 538
539如果您告诉 Claude 某个被阻止的操作是允许的,分类器会将其视为您的批准,并可以解除阻止。您的措辞决定了该操作是否会运行,以及批准的覆盖范围:539如果您告诉 Claude 某个被阻止的操作是允许的,分类器会将其视为您的批准,并可以解除阻止。您的措辞决定了该操作是否会运行,以及批准的覆盖范围:
540 540
541* **指明操作及其具体细节**:您的消息必须指明该操作以及使其具有危险性的具体内容,例如强制推送的分支。仅指明动词不会解除任何阻止,因此"您可以强制推送"不会解除阻止。541* **指明操作及其具体细节**:您的消息必须指明该操作以及使其具有危险性的具体内容,例如强制推送的分支。仅指明动词不会解除任何阻止,因此"您可以强制推送"不会解除阻止。
542* **预期它仅涵盖一个操作**:批准涵盖您所指明的破坏性操作,因此之后的操作会再次被阻止,除非您授予的是持续性批准。如果不想逐个操作地批准某种常规模式,请将其添加到 [`autoMode.allow`](/docs/zh-CN/auto-mode-config#override-the-block-and-allow-rules)。542* **预期它仅涵盖一个操作**:批准涵盖您所指明的破坏性操作,因此之后的操作会再次被阻止,除非您授予的是持续性批准。如果不想逐个操作地批准某种常规模式,请将其添加到 [`autoMode.allow`](https://code.claude.com/docs/zh-CN/auto-mode-config#override-the-block-and-allow-rules)。
543* **有些阻止会保持不变**:[分类器的优先级顺序](/docs/zh-CN/auto-mode-config.md#override-the-block-and-allow-rules)规定了您的批准可以解除哪些阻止。要运行它不会解除阻止的步骤,请[退出自动模式](#switch-permission-modes)并回应权限提示。543* **有些阻止会保持不变**:[分类器的优先级顺序](https://code.claude.com/docs/zh-CN/auto-mode-config.md#override-the-block-and-allow-rules)规定了您的批准可以解除哪些阻止。要运行它不会解除阻止的步骤,请[退出自动模式](#switch-permission-modes)并回应权限提示。
544 544
545### 自动模式回退时545### 自动模式回退时
546 546
548 548
549* **操作被阻止**:Claude Code 会显示通知,并在 `/permissions` 的 **Recently denied** 选项卡下列出该操作,您可以在那里按 `r` 以手动批准的方式重试。549* **操作被阻止**:Claude Code 会显示通知,并在 `/permissions` 的 **Recently denied** 选项卡下列出该操作,您可以在那里按 `r` 以手动批准的方式重试。
550* **反复阻止**:如果分类器连续 3 次或累计 20 次阻止操作,自动模式会暂停,Claude Code 会恢复提示。批准被提示的操作后会恢复自动模式。有关阻止次数的计算方式,请参阅[反复阻止阈值](#repeated-block-thresholds)。550* **反复阻止**:如果分类器连续 3 次或累计 20 次阻止操作,自动模式会暂停,Claude Code 会恢复提示。批准被提示的操作后会恢复自动模式。有关阻止次数的计算方式,请参阅[反复阻止阈值](#repeated-block-thresholds)。
551* **分类器未给出裁决**:当独立于自动模式的安全检查拒绝了分类器自身的请求,或分类器的响应无法解析时,Claude Code 会拒绝该操作,且不显示通知,也不会添加 **Recently denied** 条目。有关每种情况显示的消息及处理方法,请参阅[自动模式无法确定操作的安全性](/docs/zh-CN/errors.md#auto-mode-cannot-determine-the-safety-of-an-action)。551* **分类器未给出裁决**:当独立于自动模式的安全检查拒绝了分类器自身的请求,或分类器的响应无法解析时,Claude Code 会拒绝该操作,且不显示通知,也不会添加 **Recently denied** 条目。有关每种情况显示的消息及处理方法,请参阅[自动模式无法确定操作的安全性](https://code.claude.com/docs/zh-CN/errors.md#auto-mode-cannot-determine-the-safety-of-an-action)。
552* **服务器未给出裁决**:在[服务器端分类器审查](#server-side-classifier-review)下,Claude Code 会拒绝服务器未给出裁决的操作,并在连续十个响应均无裁决后停止当前轮次。请参阅[服务器未返回安全裁决](/docs/zh-CN/errors.md#the-server-returned-no-safety-verdict)。552* **服务器未给出裁决**:在[服务器端分类器审查](#server-side-classifier-review)下,Claude Code 会拒绝服务器未给出裁决的操作,并在连续十个响应均无裁决后停止当前轮次。请参阅[服务器未返回安全裁决](https://code.claude.com/docs/zh-CN/errors.md#the-server-returned-no-safety-verdict)。
553* **检查期间切换模式**:如果您在分类器检查尚未完成时切换权限模式,Claude Code 会丢弃新模式本不会请求的裁决。此时会改为提示您批准,或者在 [`dontAsk` 模式](#allow-only-pre-approved-tools-with-dontask-mode)下自动拒绝该操作。553* **检查期间切换模式**:如果您在分类器检查尚未完成时切换权限模式,Claude Code 会丢弃新模式本不会请求的裁决。此时会改为提示您批准,或者在 [`dontAsk` 模式](#allow-only-pre-approved-tools-with-dontask-mode)下自动拒绝该操作。
554 554
555#### 反复阻止阈值555#### 反复阻止阈值
556 556
557连续 3 次阻止和累计 20 次阻止的阈值不可配置。累计计数器在整个会话期间持续存在,仅当其自身的限制触发回退时才会重置。当独立于自动模式的安全检查拒绝了分类器自身的请求时,Claude Code 不会将该拒绝计入任一阈值。557连续 3 次阻止和累计 20 次阻止的阈值不可配置。累计计数器在整个会话期间持续存在,仅当其自身的限制触发回退时才会重置。当独立于自动模式的安全检查拒绝了分类器自身的请求时,Claude Code 不会将该拒绝计入任一阈值。
558 558
559未使用 [`--permission-prompt-tool`](/docs/zh-CN/cli-reference#cli-flags) 的[非交互式](/docs/zh-CN/headless.md) `-p` 运行没有可回退的提示。当反复阻止达到阈值时,该操作不会运行,Claude 会继续工作。Claude Code 不会停止该运行。559未使用 [`--permission-prompt-tool`](https://code.claude.com/docs/zh-CN/cli-reference#cli-flags) 的[非交互式](https://code.claude.com/docs/zh-CN/headless.md) `-p` 运行没有可回退的提示。当反复阻止达到阈值时,该操作不会运行,Claude 会继续工作。Claude Code 不会停止该运行。
560 560
561反复阻止通常意味着分类器缺少有关您基础设施的上下文。请使用 `/feedback` 报告误报,或请管理员[配置受信任的基础设施](/docs/zh-CN/auto-mode-config.md)。561反复阻止通常意味着分类器缺少有关您基础设施的上下文。请使用 `/feedback` 报告误报,或请管理员[配置受信任的基础设施](https://code.claude.com/docs/zh-CN/auto-mode-config.md)。
562 562
563### 自动模式如何评估操作563### 自动模式如何评估操作
564 564
568>568>
569> 每个操作都会经过固定的决策顺序。第一个匹配的步骤生效:569> 每个操作都会经过固定的决策顺序。第一个匹配的步骤生效:
570>570>
571> 1. 与您的 [allow、ask 或 deny 规则](/docs/zh-CN/permissions.md#manage-permissions)匹配的操作会立即得到处理,但以下情况除外:571> 1. 与您的 [allow、ask 或 deny 规则](https://code.claude.com/docs/zh-CN/permissions.md#manage-permissions)匹配的操作会立即得到处理,但以下情况除外:
572> * 对[受保护路径](#protected-paths)的写入即使匹配了 allow 规则,也会交由分类器处理。当受保护路径是某个符号链接形式的设置文件所指向的文件时,该写入可能会改为提示您,如[受保护路径](#protected-paths)列表所述572> * 对[受保护路径](#protected-paths)的写入即使匹配了 allow 规则,也会交由分类器处理。当受保护路径是某个符号链接形式的设置文件所指向的文件时,该写入可能会改为提示您,如[受保护路径](#protected-paths)列表所述
573> * 任何 allow 规则都不会批准已识别的针对[关键路径](#critical-paths)的 `rm` 和 `rmdir` 删除操作573> * 任何 allow 规则都不会批准已识别的针对[关键路径](#critical-paths)的 `rm` 和 `rmdir` 删除操作
574> * 标记为 [`requiresUserInteraction`](/docs/zh-CN/mcp#require-approval-for-a-specific-tool) 的 MCP 工具即使匹配了 allow 规则,也会直接提示您;在[您的组织设置为 `ask`](/docs/zh-CN/mcp#organization-controls-on-connector-tools) 的连接器工具上也是如此(在该设置传达到 Claude Code 的会话中)574> * 标记为 [`requiresUserInteraction`](https://code.claude.com/docs/zh-CN/mcp#require-approval-for-a-specific-tool) 的 MCP 工具即使匹配了 allow 规则,也会直接提示您;在[您的组织设置为 `ask`](https://code.claude.com/docs/zh-CN/mcp#organization-controls-on-connector-tools) 的连接器工具上也是如此(在该设置传达到 Claude Code 的会话中)
575> * 携带[按命令允许的域名](/docs/zh-CN/sandboxing.md#per-command-allowed-domains-in-auto-mode)的 shell 命令即使匹配了 allow 规则,也会交由分类器处理,因为规则批准的是命令,而不是其主机575> * 携带[按命令允许的域名](https://code.claude.com/docs/zh-CN/sandboxing.md#per-command-allowed-domains-in-auto-mode)的 shell 命令即使匹配了 allow 规则,也会交由分类器处理,因为规则批准的是命令,而不是其主机
576> * 基于命令内容进行匹配的 ask 规则(例如 `Bash(git push *)`)会回退为权限提示576> * 基于命令内容进行匹配的 ask 规则(例如 `Bash(git push *)`)会回退为权限提示
577> * 当 Claude 请求的路径本身不受保护,但[符号链接检查](/docs/zh-CN/permissions.md#symlinks)将写入解析到受保护路径时,会提示您577> * 当 Claude 请求的路径本身不受保护,但[符号链接检查](https://code.claude.com/docs/zh-CN/permissions.md#symlinks)将写入解析到受保护路径时,会提示您
578> * 从[网络路径](/docs/zh-CN/permissions.md#network-paths)读取即使匹配了 allow 规则,也会提示您578> * 从[网络路径](https://code.claude.com/docs/zh-CN/permissions.md#network-paths)读取即使匹配了 allow 规则,也会提示您
579> 2. 工作目录中的只读操作和文件编辑会被自动批准,但对[受保护路径](#protected-paths)的写入以及[首次读取工作目录之外的内容](#first-read-outside-the-working-directories)除外,后者会提示您579> 2. 工作目录中的只读操作和文件编辑会被自动批准,但对[受保护路径](#protected-paths)的写入以及[首次读取工作目录之外的内容](#first-read-outside-the-working-directories)除外,后者会提示您
580> * 在启用了[服务器端分类器审查](#server-side-classifier-review)的会话中,只读和[沙箱化](/docs/zh-CN/sandboxing.md#sandbox-modes)的 shell 命令会等待该审查,如果审查标记了它们,则会被阻止580> * 在启用了[服务器端分类器审查](#server-side-classifier-review)的会话中,只读和[沙箱化](https://code.claude.com/docs/zh-CN/sandboxing.md#sandbox-modes)的 shell 命令会等待该审查,如果审查标记了它们,则会被阻止
581> * 当[符号链接检查](/docs/zh-CN/permissions.md#symlinks)将工作目录内的写入解析到工作目录之外的位置时,会提示您581> * 当[符号链接检查](https://code.claude.com/docs/zh-CN/permissions.md#symlinks)将工作目录内的写入解析到工作目录之外的位置时,会提示您
582> * 当 Claude 读取[他人制作的 Artifact](/docs/zh-CN/artifacts.md#read-an-artifact-shared-with-you) 时,适用该部分列出的批准情况582> * 当 Claude 读取[他人制作的 Artifact](https://code.claude.com/docs/zh-CN/artifacts.md#read-an-artifact-shared-with-you) 时,适用该部分列出的批准情况
583> * 从[网络路径](/docs/zh-CN/permissions.md#network-paths)读取会提示您583> * 从[网络路径](https://code.claude.com/docs/zh-CN/permissions.md#network-paths)读取会提示您
584> 3. 其他所有操作都会交给分类器处理,按默认方式处理的[关键路径删除](#critical-paths)除外。在第 1 步中直接提示您的连接器工具和 `requiresUserInteraction` MCP 工具也永远不会到达分类器,因此组织要求的批准和同意步骤都不会被自动批准584> 3. 其他所有操作都会交给分类器处理,按默认方式处理的[关键路径删除](#critical-paths)除外。在第 1 步中直接提示您的连接器工具和 `requiresUserInteraction` MCP 工具也永远不会到达分类器,因此组织要求的批准和同意步骤都不会被自动批准
585> 4. 如果分类器阻止了操作,Claude 会收到原因。在大多数会话中,原因会指明分类器匹配的规则,例如 `[Data Exfiltration]`,而不是给出书面解释;请参阅[查看拒绝记录](/docs/zh-CN/auto-mode-config.md#review-denials)585> 4. 如果分类器阻止了操作,Claude 会收到原因。在大多数会话中,原因会指明分类器匹配的规则,例如 `[Data Exfiltration]`,而不是给出书面解释;请参阅[查看拒绝记录](https://code.claude.com/docs/zh-CN/auto-mode-config.md#review-denials)
586>586>
587> 您安装的处理 `tool.check` 的 [mod](/docs/zh-CN/plugins/mods/overview.md) 也可以批准操作。有关其批准无法越过您的规则和 hook 的情况,请参阅[使用 hook 扩展权限](/docs/zh-CN/permissions.md#precedence-among-rules-hooks-and-mods)。587> 您安装的处理 `tool.check` 的 [mod](https://code.claude.com/docs/zh-CN/plugins/mods/overview.md) 也可以批准操作。有关其批准无法越过您的规则和 hook 的情况,请参阅[使用 hook 扩展权限](https://code.claude.com/docs/zh-CN/permissions.md#precedence-among-rules-hooks-and-mods)。
588>588>
589> 有关在 VS Code 扩展中 [Claude in Chrome](/docs/zh-CN/chrome.md) 浏览器操作如何获得批准,请参阅 [VS Code 会话中的权限提示](/docs/zh-CN/chrome.md#permission-prompts-in-vs-code-sessions)。589> 有关在 VS Code 扩展中 [Claude in Chrome](https://code.claude.com/docs/zh-CN/chrome.md) 浏览器操作如何获得批准,请参阅 [VS Code 会话中的权限提示](https://code.claude.com/docs/zh-CN/chrome.md#permission-prompts-in-vs-code-sessions)。
590>590>
591> 进入自动模式时,授予任意代码执行能力的宽泛 allow 规则会被丢弃:591> 进入自动模式时,授予任意代码执行能力的宽泛 allow 规则会被丢弃:
592>592>
594> * 带通配符的解释器,例如 `Bash(python*)`594> * 带通配符的解释器,例如 `Bash(python*)`
595> * 包管理器的 run 命令595> * 包管理器的 run 命令
596> * `Agent` allow 规则596> * `Agent` allow 规则
597> * [`Monitor`](/docs/zh-CN/tools-reference#monitor-tool) allow 规则,因为 Claude Code 通过 shell 运行 Monitor 命令597> * [`Monitor`](https://code.claude.com/docs/zh-CN/tools-reference#monitor-tool) allow 规则,因为 Claude Code 通过 shell 运行 Monitor 命令
598>598>
599> 像 `Bash(npm test)` 这样的窄范围规则会保持有效。当您退出自动模式时,Claude Code 会恢复被丢弃的规则。在 v2.1.236 之前,Claude Code 在自动模式下保留了 `Monitor` allow 规则,因此匹配整个工具的规则会在没有分类器审查的情况下批准 Monitor 命令。599> 像 `Bash(npm test)` 这样的窄范围规则会保持有效。当您退出自动模式时,Claude Code 会恢复被丢弃的规则。在 v2.1.236 之前,Claude Code 在自动模式下保留了 `Monitor` allow 规则,因此匹配整个工具的规则会在没有分类器审查的情况下批准 Monitor 命令。
600>600>
602>602>
603> 在 Claude Code 自身发送的分类器请求中,分类器可以看到用户消息、除只读查询(例如文件读取和搜索)以外的工具调用,以及您的 CLAUDE.md 内容。工具结果会从这些请求中剥离,因此文件或网页中的恶意内容无法直接操纵分类器。603> 在 Claude Code 自身发送的分类器请求中,分类器可以看到用户消息、除只读查询(例如文件读取和搜索)以外的工具调用,以及您的 CLAUDE.md 内容。工具结果会从这些请求中剥离,因此文件或网页中的恶意内容无法直接操纵分类器。
604>604>
605> 您可以使用 [PostToolUse hook 的 `classifierContext` 字段](/docs/zh-CN/hooks#annotate-a-result-for-the-auto-mode-classifier)为调用结果添加注释,分类器会将其作为应用提供的上下文读取。该字段需要 Claude Code v2.1.236 或更高版本。605> 您可以使用 [PostToolUse hook 的 `classifierContext` 字段](https://code.claude.com/docs/zh-CN/hooks#annotate-a-result-for-the-auto-mode-classifier)为调用结果添加注释,分类器会将其作为应用提供的上下文读取。该字段需要 Claude Code v2.1.236 或更高版本。
606>606>
607> 一个独立的服务器端探测器会扫描传入的工具结果,并在 Claude 读取之前标记可疑内容。有关这些层如何协同工作的更多信息,请参阅[自动模式公告](https://claude.com/blog/auto-mode)和[工程深度解析](https://www.anthropic.com/engineering/claude-code-auto-mode)。607> 一个独立的服务器端探测器会扫描传入的工具结果,并在 Claude 读取之前标记可疑内容。有关这些层如何协同工作的更多信息,请参阅[自动模式公告](https://claude.com/blog/auto-mode)和[工程深度解析](https://www.anthropic.com/engineering/claude-code-auto-mode)。
608 608
609> **自动模式如何处理子代理**609> **自动模式如何处理子代理**
610>610>
611> 分类器会在三个时间点检查[子代理](/docs/zh-CN/sub-agents.md)的工作:611> 分类器会在三个时间点检查[子代理](https://code.claude.com/docs/zh-CN/sub-agents.md)的工作:
612>612>
613> 1. 在子代理启动之前,会评估委派的任务描述,因此看起来危险的任务会在生成时被阻止。613> 1. 在子代理启动之前,会评估委派的任务描述,因此看起来危险的任务会在生成时被阻止。
614> 2. 在子代理运行期间,它的每个操作都会经过与父会话相同的[决策顺序](#how-the-classifier-evaluates-actions),并使用相同的阻止和允许规则。子代理 frontmatter 中的任何 `permissionMode` 都会被忽略。614> 2. 在子代理运行期间,它的每个操作都会经过与父会话相同的[决策顺序](#how-the-classifier-evaluates-actions),并使用相同的阻止和允许规则。子代理 frontmatter 中的任何 `permissionMode` 都会被忽略。
618>618>
619> Claude Code 的分类器请求可以在您通过 `/model` 选择的模型以外的模型上运行。请参阅[它们在哪个模型上运行](#default-classifier-model)。619> Claude Code 的分类器请求可以在您通过 `/model` 选择的模型以外的模型上运行。请参阅[它们在哪个模型上运行](#default-classifier-model)。
620>620>
621> 在 Enterprise 计划以及使用 Claude API、[Claude Platform on AWS](/docs/zh-CN/claude-platform-on-aws.md)、Amazon Bedrock、Google Cloud's Agent Platform 或 Microsoft Foundry 的账户上,分类器调用会计入您的 token 用量。每次检查都会发送部分会话记录以及待执行的操作,从而在执行前增加一次往返。受保护路径之外的读取和工作目录编辑会跳过分类器,因此开销主要来自 shell 命令和网络操作。当服务器在会话的模型请求中审查操作时,不存在需要计算的单独分类器调用;请参阅[服务器端分类器审查](#server-side-classifier-review)。621> 在 Enterprise 计划以及使用 Claude API、[Claude Platform on AWS](https://code.claude.com/docs/zh-CN/claude-platform-on-aws.md)、Amazon Bedrock、Google Cloud's Agent Platform 或 Microsoft Foundry 的账户上,分类器调用会计入您的 token 用量。每次检查都会发送部分会话记录以及待执行的操作,从而在执行前增加一次往返。受保护路径之外的读取和工作目录编辑会跳过分类器,因此开销主要来自 shell 命令和网络操作。当服务器在会话的模型请求中审查操作时,不存在需要计算的单独分类器调用;请参阅[服务器端分类器审查](#server-side-classifier-review)。
622>622>
623> 沙箱化的网络访问不会为每个连接增加分类器请求。分类器会在一次审查中将[命令所指明的主机](/docs/zh-CN/sandboxing.md#per-command-allowed-domains-in-auto-mode)与命令一起判断,Claude Code 会根据获批的列表检查每个连接,而无需再次调用分类器。623> 沙箱化的网络访问不会为每个连接增加分类器请求。分类器会在一次审查中将[命令所指明的主机](https://code.claude.com/docs/zh-CN/sandboxing.md#per-command-allowed-domains-in-auto-mode)与命令一起判断,Claude Code 会根据获批的列表检查每个连接,而无需再次调用分类器。
624 624
625## 使用 dontAsk 模式仅允许预先批准的工具625## 使用 dontAsk 模式仅允许预先批准的工具
626 626
627如果您设置 `dontAsk` 模式,Claude Code 会自动拒绝所有原本会提示您的工具调用,不过您安装的 [mod](/docs/zh-CN/plugins/mods/overview.md) 仍然可以批准其中部分调用。要查看 mod 可以批准哪些调用,请参阅[使用 hook 扩展权限](/docs/zh-CN/permissions.md#precedence-among-rules-hooks-and-mods)。627如果您设置 `dontAsk` 模式,Claude Code 会自动拒绝所有原本会提示您的工具调用,不过您安装的 [mod](https://code.claude.com/docs/zh-CN/plugins/mods/overview.md) 仍然可以批准其中部分调用。要查看 mod 可以批准哪些调用,请参阅[使用 hook 扩展权限](https://code.claude.com/docs/zh-CN/permissions.md#precedence-among-rules-hooks-and-mods)。
628 628
629Claude 仍然运行在 Manual 模式下不需要批准的操作,例如您工作目录内的文件读取和[只读 Bash 命令](/docs/zh-CN/permissions.md#read-only-commands)。与您的 `permissions.allow` 规则匹配的操作以及由 [PreToolUse hook](/docs/zh-CN/permissions.md#extend-permissions-with-hooks) 批准的调用也会运行。在 CI 管道或受限环境中使用此模式,您可以预先定义 Claude 可以执行的操作;会话永远不会等待输入。在此模式下,状态栏显示 `⏵⏵ don't ask on`。629Claude 仍然运行在 Manual 模式下不需要批准的操作,例如您工作目录内的文件读取和[只读 Bash 命令](https://code.claude.com/docs/zh-CN/permissions.md#read-only-commands)。与您的 `permissions.allow` 规则匹配的操作以及由 [PreToolUse hook](https://code.claude.com/docs/zh-CN/permissions.md#extend-permissions-with-hooks) 批准的调用也会运行。在 CI 管道或受限环境中使用此模式,您可以预先定义 Claude 可以执行的操作;会话永远不会等待输入。在此模式下,状态栏显示 `⏵⏵ don't ask on`。
630 630
631Claude Code 拒绝与您的显式 [`ask` 规则](/docs/zh-CN/permissions#manage-permissions)匹配的调用,而不是提示。它还拒绝内置的 `AskUserQuestion` 工具,即使您的 allow 规则与其匹配,以及您的组织[设置为 `ask`](/docs/zh-CN/mcp#organization-controls-on-connector-tools) 的连接器工具在该设置到达 Claude Code 的会话中。它以相同的方式拒绝标记为 [`_meta["anthropic/requiresUserInteraction"]`](/docs/zh-CN/mcp#require-approval-for-a-specific-tool) 的 MCP 工具,因为其批准卡需要此模式永远不会收集的答案。631Claude Code 拒绝与您的显式 [`ask` 规则](https://code.claude.com/docs/zh-CN/permissions#manage-permissions)匹配的调用,而不是提示。它还拒绝内置的 `AskUserQuestion` 工具,即使您的 allow 规则与其匹配,以及您的组织[设置为 `ask`](https://code.claude.com/docs/zh-CN/mcp#organization-controls-on-connector-tools) 的连接器工具在该设置到达 Claude Code 的会话中。它以相同的方式拒绝标记为 [`_meta["anthropic/requiresUserInteraction"]`](https://code.claude.com/docs/zh-CN/mcp#require-approval-for-a-specific-tool) 的 MCP 工具,因为其批准卡需要此模式永远不会收集的答案。
632 632
633allow 规则或 `PreToolUse` hook 无法批准以下操作:633allow 规则或 `PreToolUse` hook 无法批准以下操作:
634 634
635* 可识别的 `rm` 和 `rmdir` [关键路径](#critical-paths)移除操作,例如 `rm -rf /` 和 `rm -rf ~`635* 可识别的 `rm` 和 `rmdir` [关键路径](#critical-paths)移除操作,例如 `rm -rf /` 和 `rm -rf ~`
636* 从[网络路径](/docs/zh-CN/permissions.md#network-paths)进行的读取636* 从[网络路径](https://code.claude.com/docs/zh-CN/permissions.md#network-paths)进行的读取
637 637
638[网络上的 Claude Code](/docs/zh-CN/claude-code-on-the-web.md)上的云会话忽略 `defaultMode: "dontAsk"`;有关详细信息,请参阅 [bypassPermissions](#skip-all-checks-with-bypasspermissions-mode)。638[网络上的 Claude Code](https://code.claude.com/docs/zh-CN/claude-code-on-the-web.md)上的云会话忽略 `defaultMode: "dontAsk"`;有关详细信息,请参阅 [bypassPermissions](#skip-all-checks-with-bypasspermissions-mode)。
639 639
640在启动时使用标志设置它:640在启动时使用标志设置它:
641 641
647 647
648`bypassPermissions` 模式禁用权限提示和安全检查,以便工具调用立即执行,包括对[受保护路径](#protected-paths)的写入。648`bypassPermissions` 模式禁用权限提示和安全检查,以便工具调用立即执行,包括对[受保护路径](#protected-paths)的写入。
649 649
650[任何模式都不会自动批准的操作](#actions-no-mode-auto-approves)在此模式下仍会提示。读取[其他组织的公开 Artifact](/docs/zh-CN/artifacts.md#read-an-artifact-shared-with-you) 需要您的批准,而此模式不会请求批准,因此 Claude 无法读取此类 Artifact。[PowerShell 中的 Remove-Item](#remove-item-in-powershell) 拒绝也适用于此模式。650[任何模式都不会自动批准的操作](#actions-no-mode-auto-approves)在此模式下仍会提示。读取[其他组织的公开 Artifact](https://code.claude.com/docs/zh-CN/artifacts.md#read-an-artifact-shared-with-you) 需要您的批准,而此模式不会请求批准,因此 Claude 无法读取此类 Artifact。[PowerShell 中的 Remove-Item](#remove-item-in-powershell) 拒绝也适用于此模式。
651 651
652两个[跨会话消息传递](/docs/zh-CN/cross-session-messaging.md)保护措施在此模式下仍然适用,在可使用绕过权限的交互式终端计划模式会话中同样适用:652两个[跨会话消息传递](https://code.claude.com/docs/zh-CN/cross-session-messaging.md)保护措施在此模式下仍然适用,在可使用绕过权限的交互式终端计划模式会话中同样适用:
653 653
654* 针对发送到此机器之外的您的会话的消息,[`isolatePeerMachines`](/docs/zh-CN/settings-reference#isolatepeermachines) 批准提示仍会出现。654* 针对发送到此机器之外的您的会话的消息,[`isolatePeerMachines`](https://code.claude.com/docs/zh-CN/settings-reference#isolatepeermachines) 批准提示仍会出现。
655* 当没有 [`crossSessionInbound`](/docs/zh-CN/cross-session-messaging#control-inbound-messages) 值适用时,Claude Code 会保留来自您另一个会话的入站消息以供您批准,仅当发送会话将自己标识为同样绕过权限提示时才无需询问即可传递。如果您在消息被保留期间离开该权限模式,Claude Code 会重新应用入站规则,并传递现在被接受的任何保留消息。655* 当没有 [`crossSessionInbound`](https://code.claude.com/docs/zh-CN/cross-session-messaging#control-inbound-messages) 值适用时,Claude Code 会保留来自您另一个会话的入站消息以供您批准,仅当发送会话将自己标识为同样绕过权限提示时才无需询问即可传递。如果您在消息被保留期间离开该权限模式,Claude Code 会重新应用入站规则,并传递现在被接受的任何保留消息。
656 656
657在可使用绕过权限的交互式终端会话中,Claude Code 也不强制执行[计划模式的](#analyze-before-you-edit-with-plan-mode)阻止。Claude 仍然被指示在不编辑的情况下进行计划,但它在计划期间尝试的文件编辑或 shell 命令无需提示即可运行。显式[询问规则](/docs/zh-CN/permissions.md#manage-permissions)和可识别的针对[关键路径](#critical-paths)的 `rm` 和 `rmdir` 删除仍会提示。657在可使用绕过权限的交互式终端会话中,Claude Code 也不强制执行[计划模式的](#analyze-before-you-edit-with-plan-mode)阻止。Claude 仍然被指示在不编辑的情况下进行计划,但它在计划期间尝试的文件编辑或 shell 命令无需提示即可运行。显式[询问规则](https://code.claude.com/docs/zh-CN/permissions.md#manage-permissions)和可识别的针对[关键路径](#critical-paths)的 `rm` 和 `rmdir` 删除仍会提示。
658 658
659在 Claude Code 没有交互式终端运行的任何地方,计划模式都会保留其阻止,包括[非交互式运行](/docs/zh-CN/headless.md)(带 `-p`)、[Agent SDK](/docs/zh-CN/agent-sdk/permissions.md#plan-mode-plan) 会话和 [VS Code 扩展](/docs/zh-CN/vs-code.md)的聊天面板中的对话。在这些环境中,`--allow-dangerously-skip-permissions` 使 `bypassPermissions` 稍后可选。659在 Claude Code 没有交互式终端运行的任何地方,计划模式都会保留其阻止,包括[非交互式运行](https://code.claude.com/docs/zh-CN/headless.md)(带 `-p`)、[Agent SDK](https://code.claude.com/docs/zh-CN/agent-sdk/permissions.md#plan-mode-plan) 会话和 [VS Code 扩展](https://code.claude.com/docs/zh-CN/vs-code.md)的聊天面板中的对话。在这些环境中,`--allow-dangerously-skip-permissions` 使 `bypassPermissions` 稍后可选。
660 660
661> [!WARNING]661> [!WARNING]
662>662>
663> 仅在隔离环境(如容器、虚拟机或没有互联网访问的开发容器)中使用此模式,其中 Claude Code 无法损害您的主机系统。663> 仅在隔离环境(如容器、虚拟机或没有互联网访问的开发容器)中使用此模式,其中 Claude Code 无法损害您的主机系统。
664 664
665您无法从未启用此模式的会话进入 `bypassPermissions`。在启动时使用 [`permissions.defaultMode: "bypassPermissions"`](/docs/zh-CN/settings-reference#permissions-defaultmode) 或使用启用标志启用它:665您无法从未启用此模式的会话进入 `bypassPermissions`。在启动时使用 [`permissions.defaultMode: "bypassPermissions"`](https://code.claude.com/docs/zh-CN/settings-reference#permissions-defaultmode) 或使用启用标志启用它:
666 666
667```bash theme={null}667```bash theme={null}
668claude --permission-mode bypassPermissions668claude --permission-mode bypassPermissions
670 670
671`--dangerously-skip-permissions` 标志是等效的。671`--dangerously-skip-permissions` 标志是等效的。
672 672
673Claude Code 在您使用 [`--restricted`](/docs/zh-CN/cli-reference#cli-flags) 启动的会话中拒绝 `bypassPermissions`。`--restricted` 需要 Claude Code v2.1.248 或更高版本。673Claude Code 在您使用 [`--restricted`](https://code.claude.com/docs/zh-CN/cli-reference#cli-flags) 启动的会话中拒绝 `bypassPermissions`。`--restricted` 需要 Claude Code v2.1.248 或更高版本。
674 674
675第一次使用此模式启动交互式会话时,Claude Code 会显示一个警告对话框,要求您接受对在没有权限检查的情况下执行的操作的责任:675第一次使用此模式启动交互式会话时,Claude Code 会显示一个警告对话框,要求您接受对在没有权限检查的情况下执行的操作的责任:
676 676
677* **如果您接受**:Claude Code 在 `~/.claude/settings.json` 中将 `skipDangerousModePermissionPrompt` 设置为 `true`,因此后续会话会跳过对话框。要再次看到对话框,请从该文件中删除该键或将其设置为 `false`。[`skipDangerousModePermissionPrompt` 参考](/docs/zh-CN/settings-reference#skipdangerousmodepermissionprompt)列出了您或您的组织可以设置它的其他设置文件。677* **如果您接受**:Claude Code 在 `~/.claude/settings.json` 中将 `skipDangerousModePermissionPrompt` 设置为 `true`,因此后续会话会跳过对话框。要再次看到对话框,请从该文件中删除该键或将其设置为 `false`。[`skipDangerousModePermissionPrompt` 参考](https://code.claude.com/docs/zh-CN/settings-reference#skipdangerousmodepermissionprompt)列出了您或您的组织可以设置它的其他设置文件。
678* **如果您拒绝**:Claude Code 退出。678* **如果您拒绝**:Claude Code 退出。
679 679
680在[非交互模式](/docs/zh-CN/headless.md)中不显示对话框。680在[非交互模式](https://code.claude.com/docs/zh-CN/headless.md)中不显示对话框。
681 681
682当您的接受记录在用户设置或托管设置中时,[后台会话](/docs/zh-CN/agent-view.md)会遵循该接受:682当您的接受记录在用户设置或托管设置中时,[后台会话](https://code.claude.com/docs/zh-CN/agent-view.md)会遵循该接受:
683 683
684* 如果没有记录接受,`claude --bg --permission-mode bypassPermissions` 会被拒绝。请先在交互式会话中接受对话框。684* 如果没有记录接受,`claude --bg --permission-mode bypassPermissions` 会被拒绝。请先在交互式会话中接受对话框。
685* 如果 `skipDangerousModePermissionPrompt` 仅在 `.claude/settings.local.json` 中设置,后台会话启动时会[忽略绕过请求](#bypass-permissions-ignored-in-a-background-session):685* 如果 `skipDangerousModePermissionPrompt` 仅在 `.claude/settings.local.json` 中设置,后台会话启动时会[忽略绕过请求](#bypass-permissions-ignored-in-a-background-session):
695--dangerously-skip-permissions cannot be used with root/sudo privileges for security reasons695--dangerously-skip-permissions cannot be used with root/sudo privileges for security reasons
696```696```
697 697
698在识别的沙箱内自动跳过检查。要在容器中自主运行,请使用[开发容器](/docs/zh-CN/devcontainer.md)配置,该配置以非 root 用户身份运行 Claude Code。698在识别的沙箱内自动跳过检查。要在容器中自主运行,请使用[开发容器](https://code.claude.com/docs/zh-CN/devcontainer.md)配置,该配置以非 root 用户身份运行 Claude Code。
699 699
700[云端会话](/docs/zh-CN/claude-code-on-the-web.md)不遵守来自您的设置文件的 `defaultMode: "bypassPermissions"` 或 `"dontAsk"`,因此仓库中签入的设置无法以绕过权限模式启动云端会话。该设置会被静默忽略,会话改为以模式下拉菜单中显示的权限模式启动。有关云端会话提供哪些模式,请参阅[切换权限模式](#switch-permission-modes)。700[云端会话](https://code.claude.com/docs/zh-CN/claude-code-on-the-web.md)不遵守来自您的设置文件的 `defaultMode: "bypassPermissions"` 或 `"dontAsk"`,因此仓库中签入的设置无法以绕过权限模式启动云端会话。该设置会被静默忽略,会话改为以模式下拉菜单中显示的权限模式启动。有关云端会话提供哪些模式,请参阅[切换权限模式](#switch-permission-modes)。
701 701
702> [!WARNING]702> [!WARNING]
703>703>
704> `bypassPermissions` 不提供针对提示词注入或意外操作的保护。对于权限提示少得多的后台安全检查,请改用[自动模式](#eliminate-prompts-with-auto-mode)。管理员可以通过在[托管设置](/docs/zh-CN/managed-settings.md)中将 `permissions.disableBypassPermissionsMode` 设置为 `"disable"` 来阻止此模式。704> `bypassPermissions` 不提供针对提示词注入或意外操作的保护。对于权限提示少得多的后台安全检查,请改用[自动模式](#eliminate-prompts-with-auto-mode)。管理员可以通过在[托管设置](https://code.claude.com/docs/zh-CN/managed-settings.md)中将 `permissions.disableBypassPermissionsMode` 设置为 `"disable"` 来阻止此模式。
705 705
706### 后台会话中忽略了绕过权限706### 后台会话中忽略了绕过权限
707 707
708此通知表示[后台会话](/docs/zh-CN/agent-view.md)未在用户设置或托管设置中找到您对[绕过权限警告](#bypass-permissions-acceptance)的接受,因此忽略了启动时发出的绕过请求:708此通知表示[后台会话](https://code.claude.com/docs/zh-CN/agent-view.md)未在用户设置或托管设置中找到您对[绕过权限警告](#bypass-permissions-acceptance)的接受,因此忽略了启动时发出的绕过请求:
709 709
710```text theme={null}710```text theme={null}
711Bypass permissions was requested at launch and ignored · if that was you, ~/.claude/settings.json needs "skipDangerousModePermissionPrompt": true711Bypass permissions was requested at launch and ignored · if that was you, ~/.claude/settings.json needs "skipDangerousModePermissionPrompt": true
715 715
716### `claude agents` 显示交互式会话会跳过的绕过权限警告716### `claude agents` 显示交互式会话会跳过的绕过权限警告
717 717
718如果 [`claude agents`](/docs/zh-CN/agent-view#dispatch-defaults) 显示了[绕过权限警告](#bypass-permissions-acceptance),而您的交互式会话会跳过该警告,请检查 `skipDangerousModePermissionPrompt` 是否设置在 `.claude/settings.local.json` 或 `--settings` 文件中。交互式会话会将该处的键视为您对警告的接受,而 `claude agents` 不会。无论您是否在该处找到它,请接受警告,以将该键添加到 `~/.claude/settings.json`,`claude agents` 会在该文件中查找它。718如果 [`claude agents`](https://code.claude.com/docs/zh-CN/agent-view#dispatch-defaults) 显示了[绕过权限警告](#bypass-permissions-acceptance),而您的交互式会话会跳过该警告,请检查 `skipDangerousModePermissionPrompt` 是否设置在 `.claude/settings.local.json` 或 `--settings` 文件中。交互式会话会将该处的键视为您对警告的接受,而 `claude agents` 不会。无论您是否在该处找到它,请接受警告,以将该键添加到 `~/.claude/settings.json`,`claude agents` 会在该文件中查找它。
719 719
720## 受保护的路径720## 受保护的路径
721 721
729| `dontAsk` | 拒绝 |729| `dontAsk` | 拒绝 |
730| `bypassPermissions` | 允许 |730| `bypassPermissions` | 允许 |
731 731
732在使用 [`--restricted`](/docs/zh-CN/cli-reference#cli-flags) 启动的会话中,需要 Claude Code v2.1.248 或更高版本,分类器无法批准受保护路径的写入。732在使用 [`--restricted`](https://code.claude.com/docs/zh-CN/cli-reference#cli-flags) 启动的会话中,需要 Claude Code v2.1.248 或更高版本,分类器无法批准受保护路径的写入。
733 733
734在将受保护路径写入路由到分类器的模式中,当 Claude 请求的路径本身不受保护时,[符号链接检查](/docs/zh-CN/permissions.md#symlinks)解析为受保护路径的写入会提示你。734在将受保护路径写入路由到分类器的模式中,当 Claude 请求的路径本身不受保护时,[符号链接检查](https://code.claude.com/docs/zh-CN/permissions.md#symlinks)解析为受保护路径的写入会提示你。
735 735
736设置文件中的 [`permissions.allow`](/docs/zh-CN/permissions#manage-permissions) 规则不会预先批准受保护路径的写入。安全检查在 Claude Code 评估设置中的允许规则之前运行,因此 `~/.claude/settings.json` 或 `.claude/settings.json` 中的条目(如 `Edit(.claude/**)`)不会改变上表中的每个模式结果。在提示的模式中,对项目的 `.claude/` 文件夹或 `~/.claude/` 的写入提示可以提供以下这些会话范围的选项之一:736设置文件中的 [`permissions.allow`](https://code.claude.com/docs/zh-CN/permissions#manage-permissions) 规则不会预先批准受保护路径的写入。安全检查在 Claude Code 评估设置中的允许规则之前运行,因此 `~/.claude/settings.json` 或 `.claude/settings.json` 中的条目(如 `Edit(.claude/**)`)不会改变上表中的每个模式结果。在提示的模式中,对项目的 `.claude/` 文件夹或 `~/.claude/` 的写入提示可以提供以下这些会话范围的选项之一:
737 737
738* 对于项目的 `.claude/` 文件夹:**是的,允许 Claude 在此会话中编辑此项目的 .claude 文件夹中的文件**738* 对于项目的 `.claude/` 文件夹:**是的,允许 Claude 在此会话中编辑此项目的 .claude 文件夹中的文件**
739* 对于 `~/.claude/`:**是的,允许 Claude 在此会话中编辑其 \~/.claude 文件夹中的文件**739* 对于 `~/.claude/`:**是的,允许 Claude 在此会话中编辑其 \~/.claude 文件夹中的文件**
751* `.mvn`751* `.mvn`
752* `.claude`,但有少数例外,例如:752* `.claude`,但有少数例外,例如:
753 * Claude 自己位于 `.claude/worktrees/` 下的 git worktree753 * Claude 自己位于 `.claude/worktrees/` 下的 git worktree
754 * 当前会话自己的计划文件,位于 `~/.claude/plans/` 或您设置的 [`plansDirectory`](/docs/zh-CN/settings-reference#plansdirectory) 中754 * 当前会话自己的计划文件,位于 `~/.claude/plans/` 或您设置的 [`plansDirectory`](https://code.claude.com/docs/zh-CN/settings-reference#plansdirectory) 中
755 * [后台会话](/docs/zh-CN/agent-view.md#where-state-is-stored)自己位于 `~/.claude/jobs/<id>/tmp/` 的临时目录755 * [后台会话](https://code.claude.com/docs/zh-CN/agent-view.md#where-state-is-stored)自己位于 `~/.claude/jobs/<id>/tmp/` 的临时目录
756 * 在未使用 `--restricted` 启动的会话中,项目[自动记忆](/docs/zh-CN/memory.md#storage-location)目录(例如 `~/.claude/projects/<project>/memory/`)中的 markdown 文件756 * 在未使用 `--restricted` 启动的会话中,项目[自动记忆](https://code.claude.com/docs/zh-CN/memory.md#storage-location)目录(例如 `~/.claude/projects/<project>/memory/`)中的 markdown 文件
757 * 在未使用 `--restricted` 启动的会话中,[子代理记忆](/docs/zh-CN/sub-agents.md#enable-persistent-memory)目录(例如 `.claude/agent-memory/`)中的 markdown 文件757 * 在未使用 `--restricted` 启动的会话中,[子代理记忆](https://code.claude.com/docs/zh-CN/sub-agents.md#enable-persistent-memory)目录(例如 `.claude/agent-memory/`)中的 markdown 文件
758* 使用 [`--plugin-dir`](/docs/zh-CN/plugins/mods/create#change-a-mod-with-claude) 加载的目录,因为当文件发生更改时,Claude Code 会从该目录重新加载并运行 mod 的代码758* 使用 [`--plugin-dir`](https://code.claude.com/docs/zh-CN/plugins/mods/create#change-a-mod-with-claude) 加载的目录,因为当文件发生更改时,Claude Code 会从该目录重新加载并运行 mod 的代码
759* `~/.claude/dev-mods/`,或 [`CLAUDE_CONFIG_DIR`](/docs/zh-CN/env-vars) 所指向目录中的 `dev-mods/`,Claude 会将[为您编写的 mod](/docs/zh-CN/plugins/mods/create.md#ask-claude-for-a-mod) 保存在此处759* `~/.claude/dev-mods/`,或 [`CLAUDE_CONFIG_DIR`](https://code.claude.com/docs/zh-CN/env-vars) 所指向目录中的 `dev-mods/`,Claude 会将[为您编写的 mod](https://code.claude.com/docs/zh-CN/plugins/mods/create.md#ask-claude-for-a-mod) 保存在此处
760 760
761受保护的文件:761受保护的文件:
762 762
769* `.devcontainer.json`769* `.devcontainer.json`
770* `.ripgreprc`、`pyrightconfig.json`770* `.ripgreprc`、`pyrightconfig.json`
771* `.mcp.json`、`.claude.json`771* `.mcp.json`、`.claude.json`
772* 当您的用户、项目或本地[设置文件](/docs/zh-CN/settings.md#settings-files-and-who-they-affect)本身是符号链接(例如指向 dotfiles 仓库)时,该设置文件所指向的文件。在将受保护路径写入路由到分类器的模式中,对此文件的写入会改为提示您,即使有允许规则匹配也是如此。如果该文件自身的路径同时也是某个设置文件的路径,例如另一个文件夹中的 `.claude/settings.json`,则该写入会像其他受保护路径写入一样交由分类器处理772* 当您的用户、项目或本地[设置文件](https://code.claude.com/docs/zh-CN/settings.md#settings-files-and-who-they-affect)本身是符号链接(例如指向 dotfiles 仓库)时,该设置文件所指向的文件。在将受保护路径写入路由到分类器的模式中,对此文件的写入会改为提示您,即使有允许规则匹配也是如此。如果该文件自身的路径同时也是某个设置文件的路径,例如另一个文件夹中的 `.claude/settings.json`,则该写入会像其他受保护路径写入一样交由分类器处理
773 773
774## 关键路径774## 关键路径
775 775
776关键路径是 Claude Code 保护其免受 `rm` 和 `rmdir` 命令影响的目录,例如文件系统根目录、您的主目录和您的工作目录。Claude Code 会在这些命令运行前对其进行检查,对于目标被识别为关键路径的命令,任何[允许规则](/docs/zh-CN/permissions.md#manage-permissions)都不会批准。该检查可能会漏掉某些命令,因此它不能替代[沙箱隔离](/docs/zh-CN/sandboxing.md)等操作系统级控制。776关键路径是 Claude Code 保护其免受 `rm` 和 `rmdir` 命令影响的目录,例如文件系统根目录、您的主目录和您的工作目录。Claude Code 会在这些命令运行前对其进行检查,对于目标被识别为关键路径的命令,任何[允许规则](https://code.claude.com/docs/zh-CN/permissions.md#manage-permissions)都不会批准。该检查可能会漏掉某些命令,因此它不能替代[沙箱隔离](https://code.claude.com/docs/zh-CN/sandboxing.md)等操作系统级控制。
777 777
778关键路径移除是指目标被 Claude Code 识别为关键路径的 `rm` 或 `rmdir` 命令。返回 `"allow"` 的 [`PreToolUse` hook](/docs/zh-CN/permissions#extend-permissions-with-hooks) 也无法批准此类命令。即使在跳过其他提示的权限模式下,允许规则或 `PreToolUse` hook 也无法批准此类命令。778关键路径移除是指目标被 Claude Code 识别为关键路径的 `rm` 或 `rmdir` 命令。返回 `"allow"` 的 [`PreToolUse` hook](https://code.claude.com/docs/zh-CN/permissions#extend-permissions-with-hooks) 也无法批准此类命令。即使在跳过其他提示的权限模式下,允许规则或 `PreToolUse` hook 也无法批准此类命令。
779 779
780> [!WARNING]780> [!WARNING]
781>781>
782> 检查遗漏的命令不会得到特殊处理,因此会话中任何能够批准 Bash 命令的机制都可以在不提示的情况下批准它。这包括允许规则、`bypassPermissions` 模式以及沙箱的[自动允许模式](/docs/zh-CN/sandboxing.md#auto-allow-mode)。该检查适用于 `rm` 和 `rmdir`,因此其他已批准的命令也可能删除关键路径。782> 检查遗漏的命令不会得到特殊处理,因此会话中任何能够批准 Bash 命令的机制都可以在不提示的情况下批准它。这包括允许规则、`bypassPermissions` 模式以及沙箱的[自动允许模式](https://code.claude.com/docs/zh-CN/sandboxing.md#auto-allow-mode)。该检查适用于 `rm` 和 `rmdir`,因此其他已批准的命令也可能删除关键路径。
783 783
784无论检查是否识别出某个命令,以下控制措施都适用:784无论检查是否识别出某个命令,以下控制措施都适用:
785 785
786* **拒绝规则**:与命令匹配的[拒绝规则](/docs/zh-CN/permissions.md#manage-permissions)会阻止该命令,但您安装的 [mod](/docs/zh-CN/plugins/mods/overview.md) 仍可批准[其中部分调用](/docs/zh-CN/permissions.md#precedence-among-rules-hooks-and-mods)786* **拒绝规则**:与命令匹配的[拒绝规则](https://code.claude.com/docs/zh-CN/permissions.md#manage-permissions)会阻止该命令,但您安装的 [mod](https://code.claude.com/docs/zh-CN/plugins/mods/overview.md) 仍可批准[其中部分调用](https://code.claude.com/docs/zh-CN/permissions.md#precedence-among-rules-hooks-and-mods)
787* **沙箱隔离**:[沙箱隔离](/docs/zh-CN/sandboxing.md)让操作系统限制 Bash 命令可以写入的路径。在沙箱中运行的命令仍可删除您的工作目录787* **沙箱隔离**:[沙箱隔离](https://code.claude.com/docs/zh-CN/sandboxing.md)让操作系统限制 Bash 命令可以写入的路径。在沙箱中运行的命令仍可删除您的工作目录
788* **严格沙箱模式**:默认情况下,在沙箱中运行的命令可以[在沙箱外重试](/docs/zh-CN/sandboxing.md#the-unsandboxed-retry-escape-hatch),允许规则或 `bypassPermissions` 模式可以不经提示批准该重试。[严格沙箱模式](/docs/zh-CN/sandboxing.md#turn-off-the-retry-with-strict-sandbox-mode)会关闭该重试788* **严格沙箱模式**:默认情况下,在沙箱中运行的命令可以[在沙箱外重试](https://code.claude.com/docs/zh-CN/sandboxing.md#the-unsandboxed-retry-escape-hatch),允许规则或 `bypassPermissions` 模式可以不经提示批准该重试。[严格沙箱模式](https://code.claude.com/docs/zh-CN/sandboxing.md#turn-off-the-retry-with-strict-sandbox-mode)会关闭该重试
789 789
790对于 Claude Code 识别出的移除,会发生什么[取决于您的权限模式](#critical-path-removals-in-each-permission-mode)。`Remove-Item` 和 `cmd` 移除内置命令有自己的检查,详见 [PowerShell 中的 Remove-Item](#remove-item-in-powershell)。790对于 Claude Code 识别出的移除,会发生什么[取决于您的权限模式](#critical-path-removals-in-each-permission-mode)。`Remove-Item` 和 `cmd` 移除内置命令有自己的检查,详见 [PowerShell 中的 Remove-Item](#remove-item-in-powershell)。
791 791
820| 通过 GUID 而非驱动器号命名卷的 Windows 路径 | `rm -rf '\\?\Volume{GUID}\work\build'` | 该路径未说明它位于哪个驱动器上,因此它可能是关键路径。需要 Claude Code v2.1.292 或更高版本 |820| 通过 GUID 而非驱动器号命名卷的 Windows 路径 | `rm -rf '\\?\Volume{GUID}\work\build'` | 该路径未说明它位于哪个驱动器上,因此它可能是关键路径。需要 Claude Code v2.1.292 或更高版本 |
821| 部分以 `/*` 或 `/*/` 结尾的目标 | `rm -rf logs/*/*`、`rm -rf logs/*/`、`cd logs && rm -rf a/*` | Claude Code 无法在命令运行前判断它们会涉及哪些目录 |821| 部分以 `/*` 或 `/*/` 结尾的目标 | `rm -rf logs/*/*`、`rm -rf logs/*/`、`cd logs && rm -rf a/*` | Claude Code 无法在命令运行前判断它们会涉及哪些目录 |
822 822
823要关闭仅命令替换输出的目标上的检查,请在启动 Claude Code 的环境中设置 [`CLAUDE_CODE_DISABLE_SUBSTITUTION_RM_PROMPT=1`](/docs/zh-CN/env-vars#variables)。823要关闭仅命令替换输出的目标上的检查,请在启动 Claude Code 的环境中设置 [`CLAUDE_CODE_DISABLE_SUBSTITUTION_RM_PROMPT=1`](https://code.claude.com/docs/zh-CN/env-vars#variables)。
824 824
825### 嵌套命令和内联脚本中的移除825### 嵌套命令和内联脚本中的移除
826 826
831 * 当脚本是双引号时,调用 shell 在内部 shell 接收脚本之前扩展其变量。在 `find . -name '*.tmp' -exec sh -c "rm -rf \"$1\"/*" _ {} \;` 中,命令对每个匹配扩展为从文件系统根目录的移除,Claude Code 将其视为关键路径移除。831 * 当脚本是双引号时,调用 shell 在内部 shell 接收脚本之前扩展其变量。在 `find . -name '*.tmp' -exec sh -c "rm -rf \"$1\"/*" _ {} \;` 中,命令对每个匹配扩展为从文件系统根目录的移除,Claude Code 将其视为关键路径移除。
832 * 绑定 `$1` 到真实值的单引号脚本(如 `sh -c 'rm -rf "$1"/*' _ {}` 所做的)不被标记。832 * 绑定 `$1` 到真实值的单引号脚本(如 `sh -c 'rm -rf "$1"/*' _ {}` 所做的)不被标记。
833 833
834要关闭对直接写在 `-c` 脚本中的关键路径(如 `~`)的检查,请在启动 Claude Code 的环境中设置 [`CLAUDE_CODE_DISABLE_INLINE_SHELL_RM_PROMPT=1`](/docs/zh-CN/env-vars#variables)。834要关闭对直接写在 `-c` 脚本中的关键路径(如 `~`)的检查,请在启动 Claude Code 的环境中设置 [`CLAUDE_CODE_DISABLE_INLINE_SHELL_RM_PROMPT=1`](https://code.claude.com/docs/zh-CN/env-vars#variables)。
835 835
836### 重写被标记的命令836### 重写被标记的命令
837 837
868 868
869#### 关闭挂载驱动器提示869#### 关闭挂载驱动器提示
870 870
871要停止出现挂载驱动器提示,同时保留[其他原因引起的提示](#removals-that-still-prompt-with-the-mounted-drive-prompt-off),请在环境中设置 [`CLAUDE_CODE_DISABLE_MOUNTED_DRIVE_RM_PROMPT=1`](/docs/zh-CN/env-vars#variables) 后启动 Claude Code。例如,在[您的 shell](/docs/zh-CN/env-vars.md#set-variables-in-your-shell) 中设置该变量,然后从中启动 `claude`:871要停止出现挂载驱动器提示,同时保留[其他原因引起的提示](#removals-that-still-prompt-with-the-mounted-drive-prompt-off),请在环境中设置 [`CLAUDE_CODE_DISABLE_MOUNTED_DRIVE_RM_PROMPT=1`](https://code.claude.com/docs/zh-CN/env-vars#variables) 后启动 Claude Code。例如,在[您的 shell](https://code.claude.com/docs/zh-CN/env-vars.md#set-variables-in-your-shell) 中设置该变量,然后从中启动 `claude`:
872 872
873```bash theme={null}873```bash theme={null}
874export CLAUDE_CODE_DISABLE_MOUNTED_DRIVE_RM_PROMPT=1874export CLAUDE_CODE_DISABLE_MOUNTED_DRIVE_RM_PROMPT=1
879 879
880如果提示仍然显示 `Dangerous rm operation on mounted drive path`,说明该变量没有传递到会话:880如果提示仍然显示 `Dangerous rm operation on mounted drive path`,说明该变量没有传递到会话:
881 881
882* **变量位于设置文件中**:无论哪种设置文件,Claude Code 都会[忽略设置文件 `env` 块中的该变量](/docs/zh-CN/settings-reference#variables-claude-code-ignores-in-env),因此请改为在启动 `claude` 的位置设置该变量882* **变量位于设置文件中**:无论哪种设置文件,Claude Code 都会[忽略设置文件 `env` 块中的该变量](https://code.claude.com/docs/zh-CN/settings-reference#variables-claude-code-ignores-in-env),因此请改为在启动 `claude` 的位置设置该变量
883* **会话启动时没有该变量**:请从已设置该变量的环境中重新启动 `claude`,因为正在运行的会话不会读取它883* **会话启动时没有该变量**:请从已设置该变量的环境中重新启动 `claude`,因为正在运行的会话不会读取它
884 884
885#### 关闭挂载驱动器提示后仍会提示的移除885#### 关闭挂载驱动器提示后仍会提示的移除
886 886
887在 Manual 模式下且存在针对 `rm` 的允许规则时,对挂载驱动器路径的 `rm` 仍可能提示,但原因不是 `Dangerous rm operation on mounted drive path`:887在 Manual 模式下且存在针对 `rm` 的允许规则时,对挂载驱动器路径的 `rm` 仍可能提示,但原因不是 `Dangerous rm operation on mounted drive path`:
888 888
889* **目标位于您的工作目录之外**:当您在 `/Volumes/USB/project` 中工作时,`rm -rf /Volumes/USB/other` 会提示。要停止该提示,请向会话[添加包含该目标的目录](/docs/zh-CN/permissions.md#working-directories)889* **目标位于您的工作目录之外**:当您在 `/Volumes/USB/project` 中工作时,`rm -rf /Volumes/USB/other` 会提示。要停止该提示,请向会话[添加包含该目标的目录](https://code.claude.com/docs/zh-CN/permissions.md#working-directories)
890* **目标包含 `*`**:`rm -rf build/*` 会提示。批准该提示即可运行命令,或者让 Claude 不使用 `*` 逐一指明每个目标890* **目标包含 `*`**:`rm -rf build/*` 会提示。批准该提示即可运行命令,或者让 Claude 不使用 `*` 逐一指明每个目标
891* **目标是关键路径**:`/mnt` 本身和您的工作目录本身仍然是[关键路径](#which-paths-are-critical),因此对其中任一执行 `rm -rf` 都会提示。批准该提示即可让 `rm` 运行891* **目标是关键路径**:`/mnt` 本身和您的工作目录本身仍然是[关键路径](#which-paths-are-critical),因此对其中任一执行 `rm -rf` 都会提示。批准该提示即可让 `rm` 运行
892 892
902| `dontAsk` | 拒绝它 |902| `dontAsk` | 拒绝它 |
903| `bypassPermissions` | 要求您批准它,在终端中有时间限制 |903| `bypassPermissions` | 要求您批准它,在终端中有时间限制 |
904 904
905如果显式[询问规则](/docs/zh-CN/permissions.md#manage-permissions)与命令匹配,Claude Code 即使在 `auto` 模式下也会询问您,且没有时间限制。在询问的模式中,[`PermissionRequest` hook](/docs/zh-CN/hooks#permissionrequest) 可以回答提示。905如果显式[询问规则](https://code.claude.com/docs/zh-CN/permissions.md#manage-permissions)与命令匹配,Claude Code 即使在 `auto` 模式下也会询问您,且没有时间限制。在询问的模式中,[`PermissionRequest` hook](https://code.claude.com/docs/zh-CN/hooks#permissionrequest) 可以回答提示。
906 906
907### auto 和 bypassPermissions 模式中的时间限制和拒绝907### auto 和 bypassPermissions 模式中的时间限制和拒绝
908 908
912* 在提示打开时按任何键停止倒计时并保持提示等待您的回答。912* 在提示打开时按任何键停止倒计时并保持提示等待您的回答。
913* 在一个会话中这样的提示运行完三次后无人回答,Claude Code 停止显示它们并立即拒绝进一步的关键路径移除。发送新消息会重新开始计数。913* 在一个会话中这样的提示运行完三次后无人回答,Claude Code 停止显示它们并立即拒绝进一步的关键路径移除。发送新消息会重新开始计数。
914 914
915在 `auto` 模式下,无论 Claude Code 无法向您显示终端提示的地方,它都立即拒绝命令,例如在[非交互式运行](/docs/zh-CN/headless.md)中使用 `-p`、在 [Agent SDK](/docs/zh-CN/agent-sdk/permissions.md) 会话中,以及在 VS Code 扩展的聊天面板和桌面应用中。拒绝告诉 Claude 报告它想删除的内容并将移除留给您。915在 `auto` 模式下,无论 Claude Code 无法向您显示终端提示的地方,它都立即拒绝命令,例如在[非交互式运行](https://code.claude.com/docs/zh-CN/headless.md)中使用 `-p`、在 [Agent SDK](https://code.claude.com/docs/zh-CN/agent-sdk/permissions.md) 会话中,以及在 VS Code 扩展的聊天面板和桌面应用中。拒绝告诉 Claude 报告它想删除的内容并将移除留给您。
916 916
917`auto` 和 `bypassPermissions` 处理需要 Claude Code v2.1.281 或更高版本。要关闭它,请在启动 Claude Code 的环境中设置 [`CLAUDE_CODE_DISABLE_DANGEROUS_RM_TIMEOUT=1`](/docs/zh-CN/env-vars#variables)。在 `auto` 模式下,关键路径移除随后转到分类器,在 `bypassPermissions` 模式下提示没有时间限制。917`auto` 和 `bypassPermissions` 处理需要 Claude Code v2.1.281 或更高版本。要关闭它,请在启动 Claude Code 的环境中设置 [`CLAUDE_CODE_DISABLE_DANGEROUS_RM_TIMEOUT=1`](https://code.claude.com/docs/zh-CN/env-vars#variables)。在 `auto` 模式下,关键路径移除随后转到分类器,在 `bypassPermissions` 模式下提示没有时间限制。
918 918
919### PowerShell 中的 Remove-Item919### PowerShell 中的 Remove-Item
920 920
921当您启用 [PowerShell 工具](/docs/zh-CN/tools-reference.md#powershell-tool)时,Claude Code 给 `Remove-Item` 和 `cmd` 内置命令 `rd`、`rmdir`、`del` 和 `erase` 自己的检查,与 `rm` 关键路径列表分开。对于 `Remove-Item`,结果取决于目标,第一个匹配的情况适用:921当您启用 [PowerShell 工具](https://code.claude.com/docs/zh-CN/tools-reference.md#powershell-tool)时,Claude Code 给 `Remove-Item` 和 `cmd` 内置命令 `rd`、`rmdir`、`del` 和 `erase` 自己的检查,与 `rm` 关键路径列表分开。对于 `Remove-Item`,结果取决于目标,第一个匹配的情况适用:
922 922
923* **系统路径**:文件系统根目录及其顶级目录、驱动器根目录及其顶级目录和您的主目录。Claude Code 在每种模式下拒绝命令,不询问您。923* **系统路径**:文件系统根目录及其顶级目录、驱动器根目录及其顶级目录和您的主目录。Claude Code 在每种模式下拒绝命令,不询问您。
924* **通配符**:裸 `*` 或任何以 `/*` 或 `\*` 结尾的目标,包括 shell 变量下的 glob,如 `$dir/*`。Claude Code 在每种模式下拒绝命令,不询问您,在[分类器](#eliminate-prompts-with-auto-mode)看到它之前。924* **通配符**:裸 `*` 或任何以 `/*` 或 `\*` 结尾的目标,包括 shell 变量下的 glob,如 `$dir/*`。Claude Code 在每种模式下拒绝命令,不询问您,在[分类器](#eliminate-prompts-with-auto-mode)看到它之前。
928 928
929在判断 `cmd` 目标时,Claude Code 将跟随文字文本的 PowerShell 变量视为空。这使得 `cmd /c rd /s /q "C:\$name"` 成为 `C:\` 的移除,因此它也被拒绝。尾部通配符计为它清空的文件夹,因此 `cmd /c del /q C:\*` 被拒绝,而您项目中的 `cmd /c del /q dist\*` 不被拒绝。929在判断 `cmd` 目标时,Claude Code 将跟随文字文本的 PowerShell 变量视为空。这使得 `cmd /c rd /s /q "C:\$name"` 成为 `C:\` 的移除,因此它也被拒绝。尾部通配符计为它清空的文件夹,因此 `cmd /c del /q C:\*` 被拒绝,而您项目中的 `cmd /c del /q dist\*` 不被拒绝。
930 930
931要关闭 `cmd` 检查,请在启动 Claude Code 的环境中设置 [`CLAUDE_CODE_DISABLE_POWERSHELL_CMD_RM_DENY=1`](/docs/zh-CN/env-vars#variables)。Claude Code 在设置文件的 `env` 块中忽略此变量。系统路径上的 `Remove-Item` 无论如何都保持被拒绝。931要关闭 `cmd` 检查,请在启动 Claude Code 的环境中设置 [`CLAUDE_CODE_DISABLE_POWERSHELL_CMD_RM_DENY=1`](https://code.claude.com/docs/zh-CN/env-vars#variables)。Claude Code 在设置文件的 `env` 块中忽略此变量。系统路径上的 `Remove-Item` 无论如何都保持被拒绝。
932 932
933## 另请参阅933## 另请参阅
934 934
935* [权限](/docs/zh-CN/permissions.md):允许、询问和拒绝规则;托管策略935* [权限](https://code.claude.com/docs/zh-CN/permissions.md):允许、询问和拒绝规则;托管策略
936* [配置自动模式](/docs/zh-CN/auto-mode-config.md):告诉分类器您的组织信任哪些基础设施936* [配置自动模式](https://code.claude.com/docs/zh-CN/auto-mode-config.md):告诉分类器您的组织信任哪些基础设施
937* [Hooks](/docs/zh-CN/hooks.md):通过 `PreToolUse` 和 `PermissionRequest` hooks 的自定义权限逻辑937* [Hooks](https://code.claude.com/docs/zh-CN/hooks.md):通过 `PreToolUse` 和 `PermissionRequest` hooks 的自定义权限逻辑
938* [安全](/docs/zh-CN/security.md):保障措施和最佳实践938* [安全](https://code.claude.com/docs/zh-CN/security.md):保障措施和最佳实践
939* [沙箱](/docs/zh-CN/sandboxing.md):Bash 命令的文件系统和网络隔离939* [沙箱](https://code.claude.com/docs/zh-CN/sandboxing.md):Bash 命令的文件系统和网络隔离
940* [非交互模式](/docs/zh-CN/headless.md):使用 `-p` 标志运行 Claude Code940* [非交互模式](https://code.claude.com/docs/zh-CN/headless.md):使用 `-p` 标志运行 Claude Code