让ClaudeCodeCLI在执行任务时自动同意
一、概况介绍
Claude Code CLI(此处以最新的Claude Code v2.1.186为例)中支持如下六种运行模式,每种模式在便捷性与管控性分别做了不同的权衡与取舍。下表(来自Claude Code官网)显示了在每种模式中 Claude 无需权限提示即可执行的操作。
| Mode | What runs without asking | Best for |
|---|---|---|
default |
Reads only | Getting started, sensitive work |
acceptEdits |
Reads, file edits, and common filesystem
commands (mkdir, touch, mv,
cp, etc.) |
Iterating on code you’re reviewing |
plan |
Reads only | Exploring a codebase before changing it |
auto |
Everything, with background safety checks | Long tasks, reducing prompt fatigue |
dontAsk |
Only pre-approved tools | Locked-down CI and scripts |
bypassPermissions |
Everything | Isolated containers and VMs only |
在 Claude Code CLI 界面中,按 Shift + Tab
可以在不同的权限模式之间循环切换。默认情况下,通过
Shift + Tab
命令只能在”default/acceptEdits/plan/auto“这四种模式之间循环切换。要使用其他模式就需要使用配置文件或参数。如果同时配置模式的话,优先级从高到低分别是:
Shift + Tab 命令切换结果、命令行参数、配置文件。
默认模式下,所有操作都会询问确认。开启自动接受相关模式后,Claude 将自动执行命令和文件操作而不再暂停确认,具体潜在危害与对权限的细节把控此文不深入展开阐述,可以查看官网文档获悉。对于重要的文件或代码仓库,建议先确认代码库已通过 Git 或备份做好版本控制。如果想给Claude Code CLI一些自动同意的权力、省去自己不断回车的烦琐,但又考虑到安全性不想全给可以对其进行精细化配置,可以参考使用acceptEdits模式。
二、方法一:auto模式(最推荐)
在该模式下,所有对文件的编辑和常用文件系统命令都会被默认允许,不再询问。它允许绝大多数工具和 Bash 命令自动运行,仅在检测到明显的越权或危险行为(如删除系统核心文件、向未知外部服务发送敏感数据)时才会拦截。
模式描述:自动审批工具调用,并在后台进行安全检查,以验证操作是否符合用户的请求。目前为研究预览版。
自动化/自动权限模式(auto)切换方式:
方式1:在Claude Code的配置文件中设置
defaultMode:- 1)打开配置文件
.claude/settings.json(如果没有则创建该文件和目录)。 - 2)将默认权限模式修改为
auto:
- 1)打开配置文件
方式2:在启动Claude Code CLI通过添加
--permission-mode auto参数来启用。1
claude --permission-mode auto方式3:在Claude Code CLI命令行界面,按一次或多次 Shift+Tab 后,界面 UI 会显示此模式。
三、方法二:bypassPermissions模式(最彻底也最危险)
如果希望每次启动 Claude Code 时都默认同意所有执行操作,可以使用bypassPermissions模式。此模式下Claude Code CLI将彻底取消全部的权限拦截(除了可能使系统崩溃的极危险操作如:删除根目录或家目录)。
模式描述:跳过权限提示,除非有明确的ask规则强制要求进行提示(通过/permissions命令查看)。一些极具破坏性的操作如删除根目录或家目录等还会触发提示或拒绝。
绕过权限模式(bypassPermissions)切换方式:
方式1:在Claude Code的配置文件中设置
defaultMode:- 1)打开配置文件
.claude/settings.json(如果没有则创建该文件和目录)。 - 2)将默认权限模式修改为
bypassPermissions:
- 1)打开配置文件
方式2:在启动Claude Code CLI通过添加
--dangerously-skip-permissions或--permission-mode bypassPermissions参数来启用。1
2
3claude --dangerously-skip-permissions
# 或
claude --permission-mode bypassPermissions
注意:如果未以--dangerously-skip-permissions或--permission-mode bypassPermissions参数启动,或在配置文件中配置默认模式为"bypassPermissions",启动后无法在Claude
Code CLI中通过 Shift + Tab 快捷键切换到此模式。
四、方法三:acceptEdits模式
模式描述:针对文件编辑、读取和常见文件系统指令执行开启自动批准。为了防止 AI 意外执行高危操作,以下情况依然会触发弹窗确认:
- 执行其他非基础 Bash 命令(如
npm install、python script.py、git commit等)。 - 修改受保护的敏感路径(如
.git/、.claude/、.vscode/等)。 - 调用了特定的第三方扩展工具 (Skills)。
如果希望彻底告别这些弹窗,可以根据需要采用以下三种进阶配置:
- 切换到
auto或bypassPermissions模式 - 结合使用
/permissions命令对特定工具精准放行。将触发弹窗的相关命令设置为Allow。 - 通过配置文件锁定放行规则。具体配置方法此处不展示,查看官网文档即可。
接受编辑模式(acceptEdits)切换方式:
方式1:在Claude Code的配置文件中设置
defaultMode:1)打开配置文件
.claude/settings.json(如果没有则创建该文件和目录)。2)将默认权限模式修改为
acceptEdits:{ "permissions": { "defaultMode": "acceptEdits" } }
方式2:或者使用此命令
claude --permission-mode acceptEdits启动Claude Code CLI。方式3:或者在启动Claude Code CLI后,使用
shift+tab键切换到accept edits on模式即可。
五、参考文档
- https://code.claude.com/docs/en/permissions
- https://code.claude.com/docs/en/permission-modes
- https://code.claude.com/docs/en/how-claude-code-works
- https://www.claudelog.com/mechanics/auto-accept-permissions/
- https://dev.to/rajeshroyal/yolo-mode-when-youre-tired-of-claude-asking-permission-for-everything-2daf