Claude Code 中提示框旁边的 “Permission Mode” 选择器——也就是你用 Shift+Tab 循环切换的那个——决定了 Claude 在编辑文件或运行命令前 多频繁地暂停征求许可。确认次数越多越安全;次数越少,Claude 就能在更长、不被打断的过程中持续工作。

本指南介绍权限模式是什么、六种模式有何区别、如何切换、auto mode 如何运作,以及如何安全地使用它们。你会确切理解桌面应用选择器中五个选项 Manual / Accept edits / Plan / Auto / Bypass permissions 各自的含义(旧版本中显示为 Ask permissions / Accept edits / Plan mode / Auto mode / Bypass permissions)。

CLAUDE CODE · PERMISSION MODE

切换 Claude 征求许可的频率

更多监督(更安全)⟷ 更多自主(不被打断)

🛡️Manual(default)——除读取外的任何操作都会询问
✏️Accept edits(acceptEdits)——自动批准工作目录内的编辑
📋Plan(plan)——只探索和制定计划,不做任何编辑
🤖Auto(auto)——几乎零提示,配合安全检查
⚠️Bypass permissions(bypassPermissions)——几乎一切照做、无任何检查(仅限隔离环境)

1. 什么是权限模式

当 Claude 想要编辑文件、运行 shell 命令或发起网络请求时,它应该多频繁地停下来请你批准该操作?权限模式控制的正是这一点。在最严格的 Manual(配置值为 default)下,Claude 会在每个这类操作前暂停并先询问你(来源:Claude Code 官方页面 “Choose a permission mode”)。

越严格的模式会在每个操作到来时逐一审查(更安全、提示更多)。越宽松的模式则让 Claude 在长时间不被打断的过程中持续工作,完成后再向你汇报(更快、提示更少)。诀窍在于 对敏感工作选择更多监督,对你信任方向的工作选择更少打断。

会话以哪种模式启动,取决于使用 Claude Code 的方式和版本。从 v2.1.283 起,从终端或 VS Code 交互式启动的会话无论套餐和提供商,都默认以 Auto(auto mode)启动(包括 Enterprise 套餐、Claude Console 的 API 密钥和 Amazon Bedrock;截至 2026 年 10 月 5 日)。在 v2.1.283 之前,只有 Pro、Max 和 Team 套餐以 Auto 启动,其他环境都以 Manual 启动。claude -p、Agent SDK,以及任一设置文件把 disableAutoMode 设为 "disable" 的会话以 Manual 启动;不满足 auto mode 使用前提(§4)的会话也以 Manual 启动。刚安装或刚升级后的第一个会话,可能以不同的模式启动。如果指定了启动标志或设置文件中的 defaultMode,则以它们为准。

🛡️ 受保护路径很特殊:对一小组关键路径(.git、.claude、shell 配置文件等)的写入,在 Bypass permissions 之外都不会被自动批准:Manual 和 Accept edits 会提示确认,Auto 会交给分类器审查,dontAsk 则直接拒绝(唯一的其他例外是以可用 bypass 方式启动的终端会话中的 Plan)。这是一道防线,防止损坏仓库状态或 Claude 自身的配置。

2. 六种模式(dontAsk 不在切换选项中)

桌面应用的选择器中列出 五种(Manual / Accept edits / Plan / Auto / Bypass permissions);Auto 和 Bypass permissions 只有在满足条件时才会出现。再加上不出现在循环中、需用启动参数或设置指定的 dontAsk,就是官方文档列出的六种模式。它们的区别在于 哪些操作无需询问即可执行。

💡 Claude Code 的界面尚未本地化为中文,因此这些模式与菜单标签会以英文显示(截至 2026 年 10 月 5 日)。

Manual · default

除读取外的任何操作都会询问

读取自动批准;文件编辑和命令每次都会提示。适合敏感工作,或想逐一查看每个操作时。在 claude -p、Agent SDK 以及 Auto 被关闭或不可用的环境中是启动时的默认模式。

Accept edits · acceptEdits

自动批准工作目录内的编辑

自动批准工作目录内的文件编辑,以及常见的文件系统命令(mkdir/touch/rm/rmdir/mv/cp/sed)。超出范围的路径、受保护路径、删除关键路径的命令以及其他命令仍会提示。适合事后通过 git diff 审查改动。

Plan · plan

只制定计划不做编辑

会读取和探索,但不编辑你的源码。在可以使用 Auto 的环境中,分类器会审查用于探索的命令并放行获批的命令。先提出一份计划;批准计划后会切换到你选择的模式。适合在改动前先理解代码库。

Auto · auto

几乎零提示,配合安全检查

即通常所说的 auto mode。由一个独立的分类器模型拦截危险操作,其余一切都无需提示即可运行。能减轻长任务中的提示疲劳。在终端与 VS Code 中是启动时的默认模式(v2.1.283 起适用于所有套餐;此前仅限 Pro、Max 和 Team)。有使用前提(见 §4)。

Bypass permissions · bypassPermissions

几乎一切照做、无任何检查(危险)

禁用提示和安全检查(ask 规则、删除关键路径等少数情况仍会提示)。在桌面应用和 VS Code 中,删除关键路径的操作会不经提示直接拒绝(v2.1.309 起)。仅限隔离的容器/虚拟机。无法防御提示注入。参见 bypass 模式安全性。

+ dontAsk · 仅限设置/CLI

只运行预先批准的工具

第六种模式,永远不会出现在 Shift+Tab 循环中。只运行无需批准的操作(工作目录内的读取、只读命令)和 allow 规则预先批准的操作;凡是需要确认的一律自动拒绝。适合 CI 和受锁定的环境。

桌面应用菜单中的显示(截至 2026 年 10 月 5 日)

在桌面应用的 Code 标签页中,打开发送按钮旁的选择器,模式按下表顺序排列。由于桌面应用尚不支持中文界面,菜单以英文显示。每个名称下方的说明照录屏幕原文(括号内为中文译文),Auto 带有 “Recommended”(推荐)标记(在笔者的 Windows 版应用中确认,截至 2026 年 10 月 5 日)。

显示名菜单说明(屏幕原文)配置值
Auto(Recommended)Claude handles permission decisions(由 Claude 处理权限决定)auto
ManualAlways ask before making changes(做出更改前始终询问)default
Accept editsAutomatically accept all file edits(自动接受所有文件编辑)acceptEdits
PlanCreate a plan before making changes(做出更改前先制定计划)plan
Bypass permissionsAccepts all permissions(接受所有权限)bypassPermissions
  • 所选模式按文件夹记忆:之后在该文件夹中启动的会话也会使用同一模式,且优先于设置文件中的 defaultMode。唯一的例外是 Plan,它只对当前会话有效(官方文档 “Desktop application”)。
  • Bypass permissions 只有在设置中允许后才会出现:Pro 和 Max 需在 “Settings → Claude Code” 中打开 “Allow bypass permissions mode”。Team 和 Enterprise 没有这个开关,由组织的策略决定。以 root 身份运行 Claude Code 时无法使用。
  • Auto 只有在满足使用前提时才会出现(见 §4)。设置中没有单独的开关。
  • dontAsk 无法在桌面应用中选择(仅限 CLI)。
  • 在较早的英文版 Code 标签页中,这些模式曾叫作 Ask permissions / Auto accept edits / Plan mode。

3. 如何切换(Shift+Tab 等方式)

在终端(CLI)中最快的方式是 Shift+Tab。在会话期间它会循环切换 Manual → Accept edits → Plan;如果当前处于 Auto,第一次按下会先切到 Manual(当前模式显示在状态栏中,例如 ⏸ manual mode on)。在 VS Code 中点击提示框底部的模式指示器,在桌面应用中使用发送按钮旁的 模式选择器,在 claude.ai 上则使用提示框旁的下拉菜单。

Auto 和 Bypass permissions 会按条件加入循环,排在 Plan 之后,顺序为 Bypass permissions → Auto。满足前提条件时 Auto 会出现,切换到它时不会弹出确认。Bypass permissions 只有在你以 --permission-mode bypassPermissions、--dangerously-skip-permissions 或 --allow-dangerously-skip-permissions(只把它加入循环而不立即启用)启动,或在用户设置、托管设置中把 defaultMode 设为 bypassPermissions 时才可用。dontAsk 永远不会出现在循环中——需通过 --permission-mode dontAsk 或设置来开启。

在 Manual 和 Accept edits 下,Bash 命令的权限提示中可能出现 “Yes, and switch to auto mode” 选项。选择它会批准该命令,并把会话切换到 Auto(仅在可以使用 Auto 的环境中)。

# 在启动时设置模式
claude --permission-mode plan
claude --permission-mode acceptEdits

# Bypass 需要其专用标志(仅限隔离环境)
claude --dangerously-skip-permissions

若想始终以同一模式启动,可在设置文件中设定默认值。

// .claude/settings.json
{
  "permissions": {
    "defaultMode": "acceptEdits"
  }
}

* defaultMode 的 auto 和 bypassPermissions 两个值写在项目设置(.claude/settings.json、.claude/settings.local.json)中不会生效。写了 auto 时,会话会以内置默认模式启动(用户设置中的 defaultMode 也不会被使用);写了 bypassPermissions 时则以 Manual 启动。这两个值请写在用户设置(~/.claude/settings.json)或组织的托管设置中。VS Code 扩展根本不会读取项目设置来决定启动模式——请改用它的 claudeCode.initialPermissionMode 设置。

4. 深入了解 Auto mode

Auto mode 移除了几乎所有确认提示——但它并非毫无约束。在每个操作之前,会有一个独立的分类器模型对其进行审查,拦截任何超出你请求范围、针对未知基础设施,或看似受 Claude 所读取的恶意内容驱动的操作。

⚠️ 不要盲目信任:官方文档提醒,auto mode 能减少提示,但并不保证安全。请在你信任整体方向时使用它,而不要把它当作敏感操作中人工审查的替代品。

使用前提:所有套餐均可使用。在 Team 和 Enterprise 中 auto mode 默认可用,但管理员可以在托管设置中把 permissions.disableAutoMode 设为 "disable",为整个组织关闭它。通过 Anthropic API 或 Claude Platform on AWS 使用时,模型须为 Opus 4.6 或更高版本、Sonnet 4.6 或更高版本,或 Fable 系列模型;在 Amazon Bedrock、Google Cloud、Microsoft Foundry 以及已登录的 Claude apps gateway 会话中只支持 Sonnet 5 或更高版本、Opus 4.7 或更高版本以及 Fable 系列模型(Sonnet 4.5、Opus 4.5、Haiku 等在任何平台上都不受支持)。如果它显示 “unavailable”,请先检查这些前提条件,再确认是否有设置文件设置了 disableAutoMode。Anthropic 也可能在服务器端临时关闭了它;这种情况会持续到会话结束,所以请稍后开启新会话。

✅ 默认允许

工作目录内的文件操作、安装锁文件或清单中声明的依赖、读取 .env 并把凭据发送给对应的 API、只读 HTTP,以及推送到当前工作仓库的任意分支(包括默认分支;名称表明是部署目标的分支,如 production 或 gh-pages,会另行判断)。

⛔ 默认拦截

curl | bash、向外部端点发送敏感数据、生产环境部署/迁移、授予 IAM 或仓库权限、强制推送、用 git reset --hard 等命令丢弃未提交的改动、terraform destroy 等。

你在对话中陈述的边界(例如“不要推送”“在我审查前不要部署”)也会被视为一个拦截信号。但这些不会被保存为规则——分类器每次都从对话记录中重新读取它们,因此如果上下文压缩移除了那条消息,边界就可能丢失。若要硬性保证,请添加一条 deny 规则。模式决定 Claude 整体上多频繁地询问,而 Claude Code 的权限规则(allow/ask/deny) 则能在逐个工具的层面进行更精细的允许与拒绝控制。如果分类器连续拦截 3 次或累计拦截 20 次,auto mode 会暂停,Claude Code 恢复提示;批准该次提示的操作后 auto mode 即恢复(这两个阈值无法修改)。

正当操作被拦截(误报)时,打开 /permissions 的 Recently blocked 标签页(v2.1.314 之前为 Recently denied),选中该操作并按 r,即可允许 Claude 重试。整个任务中都需要访问的目标(如软件包仓库、内部域名)加到 autoMode.environment;今后希望免审执行的命令加为 allow 规则;只是一次性的操作,就在下一条消息里说明意图,让 Claude 重试。出现 is temporarily unavailable(例如带 (timed out))表示分类器没能给出判定,与已作出判定的拒绝不同。它不会出现在 Recently blocked 中,等几秒再重试即可(若 (timed out) 反复出现,请检查网络连接),无需修改设置。误报可以用 /feedback 报告(官方文档 Configure auto mode 与 Error reference,截至2026年9月29日)。2026年9月下旬,GitHub 上出现了多条因分类器误报或超时导致工作中断的报告(例如 #95996、#96077、#96662)。

另外,如果出现 <model>'s safeguards flagged this message 而停下,那不是 Auto mode 的分类器,而是模型本身的安全分类器对对话作出了反应,与权限模式是不同的机制(处理方法见safeguards flagged this message 是什么意思、怎么办)。

5. 何时用哪种模式与安全性

按照“监督 vs 自主”的权衡来选择。快速参考:

模式(显示名)何时使用
Manual(default)入门 / 敏感工作。当你想逐一批准每个操作时
Accept edits(acceptEdits)对你会审查的代码进行迭代;事后检查 diff
Plan(plan)在改动前先理解代码库并确定设计方案
Auto(auto)你信任方向的长任务;减轻提示疲劳
Bypass permissions(bypass)仅限隔离的容器/虚拟机,Claude 无法损害你的主机
dontAskCI / 受锁定的环境,你预先定义 Claude 可执行的操作

⚠️ 不要随意使用 Bypass permissions:它无法防御提示注入或意外操作。“提示太烦人”的答案是 auto mode(带后台安全检查),而不是 bypass。请注意 hooks 在 bypass 模式下仍会运行,可以拦截危险操作。关于为何 bypass 有时仍会询问,参见 安全指南 和 这篇文章。

* 模式名称和行为依据 Claude Code 官方文档(Choose a permission mode);显示名称以桌面应用为准(截至 2026 年 10 月 5 日,已对照应用界面与 claude.ai 的界面文字数据确认)。前提条件和行为可能变化——请查阅官方文档和你的应用以获取最新信息。

另外,在云端会话(claude.ai/code)中,同样的模式名称行为却不同。云端的所有模式都允许编辑文件,因此 Accept edits 实际上相当于普通模式,每次执行 npm install、构建等命令时都会停下来等待确认。想不经批准一路推进,就选择 Auto。我实际卡住的例子整理在 安全使用 Claude Code 云端会话:保护生产环境的架构,以及我踩过的 5 个坑 一文中。

提示框旁边有 两个大选择器:“Permission Mode” 和 “Effort”。它们承担不同的职责。

Permission mode =“它问得多频繁”

安全 vs 自主的权衡。Claude 多频繁地暂停征求许可。

Effort =“它思考得多努力”

速度 vs 智能的权衡。一次回复投入多少思考、消耗多少 token(详情)。

它们之间也有关联。批准计划时,你可以选择接下来在 Auto 中继续,还是逐一手动批准每次编辑(在无法使用 Auto 的环境中,该选项改为自动接受编辑)。而将 effort 设置中的 “Ultracode”(自 v2.1.284 起不再是 effort 档位,而是在任何档位都能开启的开关)与 Auto 搭配使用,工作流执行的提示会完全消失(包括第一次),让 Claude 能够端到端地运行(只用 Auto 时,该提示只在第一次启动时出现)。还有一种设置,只在 plan mode 期间用 Opus 制定计划,批准后的实现交给 Sonnet(Claude Code 的 opusplan 是什么?)。

常见的混淆是 “提示太烦人了,所以我用 bypass。” 这很冒险——正确答案是 auto mode(带后台检查)。另一种:“plan mode 很安全,所以怎样都行。” Plan mode 只意味着“不编辑源码”;用于探索的命令照样会运行。在可以使用 Auto 的环境中,分类器批准的命令无需提示即可执行;否则,只读命令以外的一切都会提示。而在以可用 bypass 方式启动的终端会话中,Claude 在规划期间尝试的编辑和命令会不经任何提示直接执行。

总结

关于 Claude Code 权限模式的三个要点。

  • 它是什么:用于设定 Claude 在编辑或运行命令前多频繁征求许可的设置。用 Shift+Tab 或选择器切换。
  • 各种模式:Manual(default)/ Accept edits(acceptEdits)/ Plan(plan)/ Auto(auto)/ Bypass permissions(bypass),外加通过启动参数或设置指定的 dontAsk,共六种。终端与 VS Code 以 Auto 启动(v2.1.283 起适用于所有套餐;此前仅限 Pro、Max 和 Team)。在 bypass 之外,受保护路径的写入都不会被自动批准。
  • 何时用哪种:敏感工作用默认,迭代用 acceptEdits,想先理解就用 plan,长任务用 auto(带后台检查),bypass 仅限隔离环境。

权限模式掌管“安全”,effort 掌管“智能”——两者都掌握好,Claude Code 就能既安全又顺畅地运行。再搭配 hooks,便能添加你自己的安全规则;若再配合在操作系统层面隔离可访问范围的沙箱,就能在减少确认的同时保持安全。

常见问题

Q. 提示太烦人。我该用哪种模式?

A. 从 v2.1.283 起,终端和 VS Code 无论套餐都本来就以 Auto(auto)启动,提示应该不多。如果你以 Manual 启动,先从 Accept edits(acceptEdits)开始,自动批准工作目录内的编辑;要进一步减少提示,可切换到 Auto——几乎零提示,配合后台安全检查。不要在隔离环境之外使用 Bypass permissions。

Q. Auto(auto mode)与 Bypass permissions 有何不同?

A. Auto mode 由一个独立的分类器模型拦截危险操作,其余一切无需提示即可运行。Bypass permissions 则禁用安全检查、几乎一切照做,因此只适合隔离的容器/虚拟机。日常使用请选择 Auto,而非 bypass。

Q. 为什么我无法选择 Auto(auto mode)?

A. 先检查模型:通过 Anthropic API 使用时须为 Opus 4.6 或更高版本、Sonnet 4.6 或更高版本,或 Fable 系列模型;在 Bedrock 等平台上只有 Sonnet 5 或更高版本、Opus 4.7 或更高版本以及 Fable 系列模型可用(Sonnet 4.5、Haiku 等不受支持)。其次,确认管理员或某个设置文件是否用 disableAutoMode 关闭了它。如果是 Anthropic 在服务器端关闭的,请稍后开启新会话。一旦符合条件,它就会出现在选择器和 Shift+Tab 循环中。

Q. Plan mode 到底“安全”在哪里?

A. 它不编辑你的源码。它会读取、探索并提出一份计划;批准计划后会切换到你选择的模式,开始执行。用它在做出改动前先确定一种方案。需要注意:在以可用 bypass 方式启动的终端会话中,plan mode 不会阻止编辑。

Q. 我能以特定模式启动吗?

A. 可以。传入像 claude --permission-mode plan 这样的启动标志,或在设置文件中设定 permissions.defaultMode。请注意 auto 和 bypassPermissions 只在用户设置(~/.claude)或组织的托管设置中生效,在项目设置中无效。