是什么

权限模式控制 Claude 在执行文件编辑和 shell 命令时是否需要用户确认。不同模式在便利性和监督力度之间做出不同权衡,适用于不同场景。

核心机制

六种权限模式:

模式无需确认的操作适用场景
default仅读取敏感操作、初次使用
acceptEdits读取 + 文件编辑 + 常见文件系统命令快速迭代代码
plan仅读取(生成计划但不修改)复杂变更前的探索
auto所有操作(后台分类器评估)长任务、减少确认疲劳
dontAsk仅预批准的工具CI 流水线、受限环境
bypassPermissions所有操作(无任何检查)隔离容器/VM

切换方式:

  • CLI:Shift+Tab 循环切换(default → acceptEdits → plan)
  • 启动时:claude --permission-mode plan
  • 持久默认:在 settings.json 中设置 permissions.defaultMode
  • VS Code:点击提示框底部的模式指示器

Auto 模式(研究预览):后台分类器在每个操作执行前评估风险。默认阻止:curl | bash、生产部署、批量删除云存储、强制推送 main 等。默认允许:工作目录内的文件操作、安装 lock file 中声明的依赖、只读 HTTP 请求。需要 Max/Team/Enterprise 计划和特定模型(Sonnet 4.6、Opus 4.6/4.7)。

受保护路径:除 bypassPermissions 外,所有模式都不会自动批准对以下路径的写入:.git、.vscode、.idea、.husky、shell 配置文件(.bashrc、.zshrc 等)、.mcp.json、.claude.json。

acceptEdits 模式细节:自动批准 mkdir、touch、rm、rmdir、mv、cp、sed 等常见文件系统命令,但仅限工作目录内的路径。

关键细节

  • bypassPermissions 在 Linux/macOS 上拒绝以 root/sudo 运行
  • Auto 模式分类器阻止 3 次连续或 20 次总计后,自动回退到提示模式
  • Plan 模式下按 Ctrl+G 可在文本编辑器中直接编辑计划
  • dontAsk 模式不出现在 Shift+Tab 循环中,只能通过 --permission-mode dontAsk 启动

关联

实践要点

  • 新项目或敏感操作用 default 模式,熟悉后切换到 acceptEdits
  • 复杂重构前先用 plan 模式探索,确认方案后再执行
  • CI/CD 中用 dontAsk + 预批准规则,避免流水线卡在确认提示
  • bypassPermissions 仅用于 Docker 容器或 VM 等隔离环境,不要在本机使用
  • 在 settings.json 中预批准常用命令(如 npm test、git status)减少重复确认
  • Auto 模式的分类器看不到工具结果,只看用户消息和工具调用,防止提示注入