Claude Code --permission-mode 使用说明

12 阅读2分钟

1. 基本用法

--permission-mode 是 Claude Code CLI 的启动参数,用于控制工具调用的权限询问策略。

claude --permission-mode <模式>

不是 slash 命令(不能直接在对话中输入 /permission-mode)。


2. 支持的权限模式

我目前在使用的版本(v2.1.118)共支持 6 种模式

模式效果风险
default每次工具调用前都询问(默认行为)安全
acceptEdits自动允许读操作和 MCP 调用,仅写操作(编辑、写入文件等)弹提示中等
bypassPermissions完全跳过所有权限检查
dontAsk从不询问(等价于一直允许)
plan仅允许只读操作和搜索类操作(计划模式)安全
autoAI 智能判断是否放行(需 classifier 支持)中等

关于 auto 模式

  • 仅在启用了 TRANSCRIPT_CLASSIFIER 特性标志的构建版本中可用
  • Ant 内部版本默认包含此模式
  • 可以通过 --delegate-permissions--afk 等别名触发
  • 社区公开版通常不包含此模式

3. 版本差异

模式社区版 / 公开版Ant 内部版CCR 远程模式
default
acceptEdits
bypassPermissions
dontAsk
plan
auto

其他版本注意事项

  • CCR 远程模式CLAUDE_CODE_REMOTE env):仅允许 acceptEditsplandefault 三种模式
  • Chrome 扩展:使用完全独立的权限系统(askskip_all_permission_checksfollow_a_plan),与 CLI 不互通
  • 旧版兼容--dangerously-skip-permissions 等价于 --permission-mode bypassPermissions,新版仍支持

4. 通过 settings.json 配置

除了 CLI 参数,也可以在 .claude/settings.json 中设置默认模式:

{
  "permissions": {
    "defaultMode": "acceptEdits"
  }
}

注意auto 模式是会话级别的,保存到 settings 时会映射为 default


5. 快捷键循环切换

在 Claude Code 对话中,可以通过 Shift+Tab 快捷键循环切换权限模式:

// 快捷切换方式,部分版本只支持切换 default → acceptEdits → plan
default → acceptEdits → plan → bypassPermissions → autodefault

6. 快速查看你的版本支持哪些模式

claude --help | grep -A 3 "permission-mode"

输出中的 choices 列表即为当前版本支持的所有模式。

当前我分析的源码是 v2.1.88 版本

我目前在使用的cc的版本是 v2.1.118 版本