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

本指南介绍权限模式是什么、五种模式有何区别、如何切换、auto mode 如何运作,以及如何安全地使用它们。你会确切理解截图中 Ask permissions / Accept edits / Plan mode / Auto mode / Bypass permissions 各自的含义。

CLAUDE CODE · PERMISSION MODE

切换 Claude 征求许可的频率

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

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

1. 什么是权限模式

当 Claude 想要编辑文件、运行 shell 命令或发起网络请求时,它通常会暂停并 请你批准该操作权限模式控制这种暂停发生的频率(来源:Claude Code 官方的 "Choose a permission mode")。

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

🛡️ 受保护路径很特殊:对一小组关键路径(.git.claude、shell 配置文件等)的写入,除 Bypass permissions 外的任何模式都不会自动批准。这是一道防线,防止损坏仓库状态或 Claude 自身的配置。

2. 五种模式(外加仅限设置的 dontAsk)

选择器中列出 五种(Ask permissions / Accept edits / Plan mode / Auto mode / Bypass permissions)。它们的区别在于 哪些操作无需询问即可执行

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

Ask permissions · default

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

读取自动批准;文件编辑和命令每次都会提示。是入门和敏感工作的默认选择。

Accept edits · acceptEdits

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

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

Plan mode · plan

只制定计划不做编辑

会读取和探索,但不编辑你的源码。先提出一份计划;批准计划后会切换到某种编辑模式。适合在改动前先理解代码库。

Auto mode · auto

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

由一个独立的分类器模型拦截危险操作,其余一切都无需提示即可运行。能减轻长任务中的提示疲劳。有使用前提(见 §4)。

Bypass permissions · bypassPermissions

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

禁用提示和安全检查。仅限隔离的容器/虚拟机。无法防御提示注入。参见 bypass 模式安全性

+ dontAsk · 仅限设置/CLI

只运行预先批准的工具

第六种模式,不在选择器中。只运行白名单内的工具和只读命令;其余一切自动拒绝。适合 CI 和受锁定的环境。

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

最快的方式是 Shift+Tab。在会话期间它会循环切换 Ask permissions → Accept edits → Plan mode(当前模式显示在状态栏中)。在 VS Code、桌面端和 claude.ai 中,可使用提示框旁边的 模式选择器(即截图中的界面)。

Auto mode 和 Bypass permissions 会按条件加入循环。满足前提条件时 Auto mode 会出现,首次使用时会有一个选择加入的提示。Bypass permissions 只有在你以 --permission-mode bypassPermissions(或 --dangerously-skip-permissions)启动时才会启用。dontAsk 永远不会出现在循环中——需通过命令行标志或设置来开启。

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

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

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

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

defaultMode: "auto" 在项目设置中会被忽略,只有在用户设置(~/.claude/settings.json)中才会生效——因此仓库无法自行授予 auto 模式。

4. 深入了解 Auto mode

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

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

使用前提:auto mode 仅对符合条件的账户显示。在 Team/Enterprise 版中需由管理员启用,且模型必须支持它——Opus 4.6 或更高版本,或 Sonnet 4.6(Sonnet 4.5、Haiku 等不受支持)。如果它显示 "unavailable",说明某项前提条件未满足——这并非临时性故障。

✅ 默认允许

工作目录内的文件操作、依据锁文件安装依赖、只读 HTTP、推送到你起始所在的分支。

⛔ 默认拦截

curl | bash、向外部端点发送机密、生产环境部署/迁移、强制推送或推送到 main、破坏性的 git 操作。

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

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

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

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

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

※ 模式名称和行为依据 Claude Code 官方文档(Choose a permission mode);本地化的显示名称已在实际界面中确认(截至 2026 年 6 月)。前提条件和行为可能变化——请查阅官方文档和你的应用以获取最新信息。

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

Permission mode ="它问得多频繁"

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

Effort ="它思考得多努力"

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

它们之间也有关联。在 plan mode 中批准计划后,你可以切换到 auto mode 或 accept-edits 来执行。而将最高一档 effort 选项 "Ultracode" 与 auto mode 搭配使用,会连工作流执行的提示也一并跳过,让 Claude 能够端到端地运行。

常见的混淆是 "提示太烦人了,所以我用 bypass。" 这很冒险——正确答案是 auto mode(带后台检查)。另一种:"plan mode 很安全,所以怎样都行。" Plan mode 只意味着"不做编辑";它为探索而运行的命令仍会像默认模式一样提示。

总结

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

  • 它是什么:用于设定 Claude 在编辑或运行命令前多频繁征求许可的设置。用 Shift+Tab 或选择器切换。
  • 各种模式:Ask permissions(默认)/ Accept edits(acceptEdits)/ Plan mode(plan)/ Auto mode(auto)/ Bypass permissions(bypass),外加仅限设置的 dontAsk。除 bypass 外的每种模式下,受保护路径都始终受保护。
  • 何时用哪种:敏感工作用默认,迭代用 acceptEdits,想先理解就用 plan,长任务用 auto(带后台检查),bypass 仅限隔离环境。

权限模式掌管"安全",effort 掌管"智能"——两者都掌握好,Claude Code 就能既安全又顺畅地运行。再搭配 hooks,便能添加你自己的安全规则。

常见问题

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

A. 先从 Accept edits(acceptEdits)开始,自动批准工作目录内的编辑。要进一步减少提示,可使用 Auto mode(auto)——几乎零提示,配合后台安全检查。不要在隔离环境之外使用 Bypass permissions。

Q. Auto mode 与 bypass permissions 有何不同?

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

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

A. 某项前提条件未满足。在 Team/Enterprise 版中需由管理员启用,且模型必须支持它(Opus 4.6+ 或 Sonnet 4.6;Sonnet 4.5、Haiku 等不受支持)。一旦符合条件,它就会出现在选择器和 Shift+Tab 循环中。

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

A. 它不编辑你的源码。它会读取、探索并提出一份计划;批准计划后会切换到某种编辑模式,开始执行。用它在做出改动前先确定一种方案。

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

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