用 Claude Code 最让人抓狂的体验之一:每次它要改文件、运行命令,都弹出「是否允许?」——打断心流,影响效率。
但直接关掉所有确认又不放心。Claude Code 内置了 6 种权限模式,专门解决这个问题。
6 种模式一览
| 模式 | 无需确认的操作 | 最适合 |
|---|---|---|
default | 仅读文件 | 新手、敏感项目 |
acceptEdits | 读 + 编辑文件 + 常见文件操作 | 日常编码(推荐) |
plan | 仅读(先规划再执行) | 探索陌生代码库 |
auto | 几乎所有(后台安全检查) | 长任务 |
dontAsk | 仅预批准工具 | CI/CD 锁定 |
bypassPermissions | 所有操作 | 隔离容器/VM(慎用) |
⚠️ 所有模式下,Claude 自身配置文件和 Git 关键文件的写入永远需要确认。
如何切换
会话中:Shift+Tab 循环
default → acceptEdits → plan
状态栏显示当前模式。
启动时指定
bash
claude --enable-auto-mode # auto 模式
claude --permission-mode acceptEdits # acceptEdits 模式
claude --permission-mode dontAsk # dontAsk 模式
claude --permission-mode bypassPermissions # 慎用!设为持久默认
json
// ~/.claude.json
{
"defaultPermissionMode": "acceptEdits"
}各模式适用场景
default(新手推荐)
改文件和运行命令都需要确认。刚开始用、处理重要项目时选这个。
acceptEdits(日常编码推荐 ✨)
文件编辑和 mkdir/mv/cp 等操作不问了,只有 shell 命令还需确认。
大多数开发者的最佳平衡点。
plan(探索陌生代码库)
Claude 只读不写,先制定完整方案,你确认后再切换执行。
text
[plan 模式]
分析 src/auth/ 的重构影响范围,制定方案
↓ 审阅方案没问题
[切换到 acceptEdits]
按方案开始执行auto(长任务)
几乎所有操作自动进行,后台安全分类器拦截危险操作(rm -rf、force push 等)。
bypassPermissions(⚠️ 极高风险)
跳过所有检查。仅用于 Docker/VM 隔离环境,绝对不要在本机用。
叠加权限规则(精细控制)
模式是底线,可以叠加精细规则:
json
// .claude/settings.json
{
"permissions": {
"allow": ["Read", "Edit"],
"deny": ["Bash(rm*)"] // 禁止所有删除命令
},
"protectedPaths": [".env", "secrets/", "*.pem"]
}按任务选模式
探索陌生代码库 → plan
日常编码 → acceptEdits
长时间自主任务 → auto
CI/CD 自动化 → dontAsk
容器沙箱 → bypassPermissions
来源:Claude Code 权限模式文档 | 整理:ClaudeEagle