Seven Mental · 心智七篇
← Knowledge Atlas · Concept

权限模式(Permission Modes)

六种权限模式:default/acceptEdits/plan/auto/dontAsk/bypassPermissions,自主度谱系,auto 模式分类器
CONCEPT · PERMISSION MODES · CLAUDE CODE · AUTONOMY-SAFETY TRADEOFF

Permission Modes

Permission Modes — the global approval-policy switch that sets the default handling of every tool call

The permission mode sets the agent’s “baseline” — specific allow/ask/deny rules stack on top. Six modes form an autonomy spectrum from most conservative to most aggressive. Core principle: deny-first semantics hold in every mode.

ModeBehaviorFits
dontAskauto-reject; only pre-authorized toolshigh safety, minimal permission surface
defaultprompt on first useday-to-day development
planread-only analysis; no mutating executionplanning / code review
acceptEditsauto-accept file editstrusted file-modification scenarios
autoclassifier auto-validates operation intenttrusted automation
bypassPermissionsskip most promptsOS-level isolated container (dangerous)
auto classifier
reads the autoMode config (environment/allow/soft_deny); allow/soft_deny fully replace default rules
Protected directories
even under bypass, .git/.claude/.vscode still prompt — guards against corrupting repo state
Org lockdown
managed settings can disable bypassPermissions / auto — the canonical scope-hierarchy use case
→ Harness Engineering · Guardrails · Agent SandboxingAnthropic Claude Code (2024)

权限模式(Permission Modes)

定义

权限模式是 Claude Code 的全局审批策略开关——通过 defaultMode 配置,决定工具调用的默认处理方式,在此基础上叠加具体的 allow/ask/deny 规则。

六种模式

模式描述典型使用场景
default标准行为:每个工具首次使用时提示确认日常开发,需要人工审批
acceptEdits自动接受文件编辑权限(受保护目录除外)信任文件修改,但仍审查命令
plan计划模式:只能分析,不能修改文件或执行命令只读探索、方案制定阶段
auto自动审批,后台分类器验证操作意图受信任的自动化场景(研究预览)
dontAsk自动拒绝,仅预授权工具可用高安全场景,最小权限面
bypassPermissions跳过权限提示(受保护目录仍提示)隔离容器/VM,危险

模式设计哲学:自主度与安全性的权衡

六种模式形成一个自主度谱系

← 更多人工控制                    更多自动化 →
dontAsk — default — acceptEdits — auto — bypassPermissions
                    plan(只读分支)
  • plan 是特殊的只读分支——agent 可以分析代码、提出方案,但无法执行。适合方案评审阶段。
  • auto 引入了分类器模型作为”自动监察员”,在减少提示的同时维持安全性。与其他模式的区别在于智能而非规则驱动。
  • bypassPermissions 是”核选项”——完全信任 agent,仅适合已有 OS 级隔离的环境。

bypassPermissions 的保护边界

即使在 bypassPermissions 模式下,以下目录的写操作仍触发提示:

  • .git.claude.vscode.idea.husky(防止意外损坏 repo 状态、编辑器配置、git hooks)

.claude/commands.claude/agents.claude/skills 豁免——Claude 在创建技能、子 agent 和命令时需要写这些路径。

禁用方式:在托管设置中设置 permissions.disableBypassPermissionsMode: "disable" 可防止用户启用此模式——这是作用域层次的典型用例。

auto 模式的分类器机制

auto 模式内置分类器读取 autoMode 配置:

{
  "autoMode": {
    "environment": ["Source control: github.com/your-org"],
    "allow": ["Deploying to staging is allowed: isolated from production"],
    "soft_deny": ["Never modify infra/terraform/prod/"]
  }
}

重要约束

  • allowsoft_deny 配置会替换全部默认规则,而非叠加
  • 分类器只读取用户设置、.claude/settings.local.json 和托管设置——不读取共享项目设置(防止 repo 注入自己的 allow 规则)
  • 用户的 allow 条目可以覆盖组织的 soft_deny,但组织的 permissions.deny 无法被用户覆盖

安全管理工具

claude auto-mode defaults  # 查看内置规则
claude auto-mode config    # 查看当前生效配置
claude auto-mode critique  # AI 审查自定义规则质量

禁用危险模式

组织可在托管设置中封锁危险模式:

  • permissions.disableBypassPermissionsMode: "disable" — 禁用 bypassPermissions
  • permissions.disableAutoMode: "disable" — 禁用 auto 模式

与规则系统的关系

权限模式设定”底色”,allow/ask/deny 规则在其上叠加:

  • dontAsk 模式默认拒绝,但 allow 规则定义的工具仍可使用
  • bypassPermissions 跳过大部分提示,但 deny 规则仍生效
  • deny-first 语义在所有模式下均成立

相关概念

References

  • sources/anthropic_official/claude-code-permissions.md