选择权限模式
控制 Claude 在编辑文件或运行命令之前是否询问。在 CLI 中使用 Shift+Tab 循环切换模式,或在 VS Code、Desktop 和 claude.ai 中使用模式选择器。
当 Claude 想要编辑文件、运行 shell 命令或发起网络请求时,会暂停并请求您批准。权限模式控制这种暂停出现的频率。
可用模式
| 模式 | 无需询问即可运行 | 最适合 |
|---|---|---|
default | 仅读取 | 入门、敏感工作 |
acceptEdits | 读取、文件编辑及常见文件系统命令(mkdir、touch、mv、cp 等) | 在审查代码时迭代 |
plan | 仅读取 | 在更改前探索代码库 |
auto | 一切,带后台安全检查 | 长任务、减少提示疲劳 |
dontAsk | 仅预批准的工具 | 锁定的 CI 和脚本 |
bypassPermissions | 一切 | 仅隔离容器和虚拟机 |
除 bypassPermissions 外,对受保护路径的写入永远不会自动批准。
模式设定基线。可在任何模式(bypassPermissions 除外)上叠加权限规则以预批准或阻止特定工具。
切换权限模式
CLI: 按 Shift+Tab 在 default → acceptEdits → plan 间循环。启用后可见 auto、bypassPermissions。
启动时:
claude --permission-mode plan在设置中设为默认:
{
"permissions": {
"defaultMode": "acceptEdits"
}
}VS Code: 点击提示框底部的模式指示器。标签:编辑前询问(default)、自动编辑(acceptEdits)、计划模式(plan)、自动模式(auto)、绕过权限(bypassPermissions)。
claudeCode.initialPermissionMode 设置 VS Code 默认值。项目/本地设置中的 defaultMode: "auto" 无效;若要以 auto 为默认请写在用户设置。
使用 acceptEdits 模式自动批准文件编辑
acceptEdits 让 Claude 无需提示即可创建和编辑文件。状态栏显示 ⏵⏵ accept edits on。
还会自动批准常见文件系统 Bash 命令:mkdir、touch、rm、rmdir、mv、cp、sed,以及 timeout、nice、nohup 等包装 — 仅在工作目录或 additionalDirectories 内。
claude --permission-mode acceptEdits使用 plan 模式先分析再编辑
计划模式让 Claude 研究并提出更改而不实际修改。用 Shift+Tab 进入,或在提示前加 /plan。
计划就绪后可以:
- 批准并以 auto 模式开始
- 批准并自动接受编辑
- 批准并手动审查每次编辑
- 继续计划并反馈
按 Ctrl+G 在文本编辑器中编辑计划。批准会退出计划模式并切换到所选模式。
项目默认:
{
"permissions": {
"defaultMode": "plan"
}
}使用 auto 模式消除提示
自动模式需要 Claude Code v2.1.83 或更高版本。
自动模式让 Claude 无需权限提示即可执行。独立分类器在运行前审查操作,阻止范围升级、未知基础设施及由恶意内容驱动的操作。
自动模式为研究预览。需支持的模型(如 Sonnet 4.6、Opus 4.6/4.7)等;完整可用性通常需 Anthropic API。
.claude/settings.json 中的 defaultMode: "auto" 无效 — 请写在 ~/.claude/settings.json。
分类器默认阻止的内容
默认阻止(示例):curl | bash、向未知端点发送敏感数据、生产部署、大规模云删除、IAM 变更、强制推送到 main。
默认允许(示例):工作目录内本地文件操作、锁文件中的依赖、只读 HTTP、推送到当前分支。
您在对话中声明的边界(如「不要 push」)在后续消息解除前视为阻止信号。
分类器连续阻止 3 次或总计 20 次后,自动模式暂停并恢复提示。
使用 dontAsk 模式仅允许预批准工具
dontAsk 自动拒绝否则会提示的每次工具调用。仅 permissions.allow 规则与只读 Bash 可执行。
claude --permission-mode dontAsk使用 bypassPermissions 模式跳过所有检查
bypassPermissions 禁用权限提示。针对 / 或 ~ 的删除仍会提示作为断路器。仅在隔离容器/虚拟机中使用。Linux/macOS 在 root 下拒绝此模式。
claude --permission-mode bypassPermissions管理员可在托管设置中将 permissions.disableBypassPermissionsMode 设为 "disable"。
受保护路径
除 bypassPermissions 外,对这些路径的写入永远不会自动批准:
目录: .git、.vscode、.idea、.husky、.claude(.claude/commands、.claude/agents、.claude/skills、.claude/worktrees 除外)
文件: .gitconfig、.gitmodules、.bashrc、.bash_profile、.zshrc、.zprofile、.profile、.ripgreprc、.mcp.json、.claude.json