文章目录
-
- 前言
- 一、default模式:最稳妥也最磨人的审批地狱
- 二、acceptEdits模式:程序员最常用的半解放模式
- 三、plan模式:先动口再动手的安全模式
- 四、auto模式:官方推荐的智能权限模式
- 五、dontAsk模式:名字最坑人的拒绝模式
- 六、bypassPermissions模式:慎用!慎用!慎用!
- 七、怎么设置和切换授权模式
-
- [1. 启动时临时设置](#1. 启动时临时设置)
- [2. 永久设置默认模式](#2. 永久设置默认模式)
- [3. 运行中切换](#3. 运行中切换)
- 八、我的使用建议
P.S. 目前国内还是很缺AI人才的,希望更多人能真正加入到AI行业,共同促进行业进步,增强我国的AI竞争力。想要系统学习AI知识的朋友可以看看我精心打磨的教程 http://blog.csdn.net/jiangjunshow,教程通俗易懂,高中生都能看懂,还有各种段子风趣幽默,从深度学习基础原理到各领域实战应用都有讲解,我22年的AI积累全在里面了。注意,教程仅限真正想入门AI的朋友,否则看看零散的博文就够了。
前言
不知道你们有没有过这种经历,打开Claude Code,输入一个需求,然后信心满满地去接杯水,上个厕所,想着回来就能看到写好的代码。结果回来一看,屏幕上一个大大的授权弹窗,它在那安安静静地等你点同意,你走了多久,它就等了多久,比你老板盯着你干活还耐心。
我之前就是这样,每次用Claude Code都跟玩打地鼠似的,一个弹窗刚点完,另一个又冒出来。改个变量名问我,加个空行问我,连写个注释都要问我"是否允许修改文件"。我就纳闷了,我让你写代码,你不改文件难道用意念写?合着我花了钱买会员,就是来给你当审批专员的?
后来我学聪明了,直接开了acceptEdits模式,终于不用再点那些破编辑确认了。结果没过两天,又遇到新问题了:它要执行npm install,弹个窗问我;要运行个测试脚本,弹个窗问我;甚至要查看个日志文件,都要弹个窗问我。我算了一下,那天我一共点了72次同意,比我一周点外卖的次数还多。
最近我想给我的工具加个全自动模式,没办法,只能硬着头皮去翻官方文档。这不翻不知道,一翻吓一跳,原来Claude Code居然有整整六种授权模式!我之前用了大半年,居然只知道一个acceptEdits,跟个傻子似的天天跟弹窗斗智斗勇。
今天我就把这六种模式给你们讲得明明白白,保证你们看完之后,再也不用被弹窗烦,也不用担心权限失控把电脑搞崩。
一、default模式:最稳妥也最磨人的审批地狱
这个是Claude Code的默认模式,主打一个"凡事必问,绝不自作主张"。
在这个模式下,只要它要做任何事,都会先弹个窗问你。改文件问,执行命令问,调用工具问,连访问个你项目里的README.md都要问。我上次让它帮我找一下项目里的用户认证逻辑,它先弹个窗问我能不能看auth目录,我点了同意;过了三秒又弹个窗问我能不能看auth.service.ts,我又点了同意;再过三秒又弹个窗问我能不能看auth.controller.ts,我直接把鼠标扔了。
我给你们算笔账,假设你让AI写一个简单的登录接口,它需要创建3个文件,修改2个文件,执行1次npm install,运行3次测试。那它至少会给你弹9个弹窗。你要是让它写个复杂点的管理后台,一天弹个百八十个弹窗都是正常的。
我之前有个同事,用default模式写了一周代码,最后鼠标左键都快按坏了,去医院看医生,医生说他得了"鼠标手",就是天天点同意点的。医生问他是干什么工作的,他说自己是AI编程助手的审批员,医生当场就懵了。
你说这叫什么事?我们发明AI是为了解放双手,结果现在双手都用来点同意了,比自己写代码还累。所以这个模式只适合刚上手Claude Code的新手,先熟悉一下它的操作逻辑,等你用熟了,赶紧换别的模式,不然迟早得腱鞘炎。
二、acceptEdits模式:程序员最常用的半解放模式
这个模式应该是90%的程序员都在用的,也是我之前一直用的。
它的作用很简单:自动接受所有文件编辑操作,不用再点"是否允许修改文件"的弹窗。但是执行命令、访问敏感文件、运行危险操作的时候,还是会问你。
这就相当于你给实习生说:"文件你随便改,写错了我背锅,但是要动电脑里的其他东西,必须先跟我说。"
这个模式的好处是,写代码、改bug、重构多个文件的时候,不会被频繁的编辑确认打断。你可以让它一口气改完十几个文件,中间不用管它,你甚至可以去刷个短视频,回来它就改完了。
但是它也有缺点,就是执行命令还是会弹窗。比如你让它帮你安装依赖,它还是会停下来等你确认。我上次让它帮我升级一下项目的所有依赖,结果它每装一个包就弹一个窗,我坐在那点了二十多分钟同意,差点把电脑砸了。
不过总的来说,这个模式还是比较平衡的,既减少了大部分弹窗,又保留了一定的安全性,适合日常写代码用。
三、plan模式:先动口再动手的安全模式
这个模式很多人都不知道,但是特别好用,尤其是在做大型重构或者复杂任务的时候。
在plan模式下,Claude Code不会直接修改你的代码,也不会执行任何命令。它只会先分析你的项目,理解你的需求,然后给你出一个详细的执行计划,告诉你它要改哪些文件,怎么改,每一步要做什么。
你可以先看这个计划有没有问题,有没有哪里考虑不周,有没有什么坑。等你确认没问题了,再切换到其他模式让它执行。
这就像你装修房子,先让设计师出设计图,你满意了再施工。不然它上来就给你砸墙,砸完了你说我要的是客厅不是厨房,那损失就大了。
我上次让AI帮我重构一个写了三年的老项目代码,一开始直接开了acceptEdits模式,结果它改了一半,把我原来能用的支付功能都改坏了,我花了一下午才恢复。后来我学乖了,先开plan模式让它出计划,我看完之后改了几个地方,再让它执行,一次就成功了。
所以记住,凡是涉及到大型改动的,一定要先开plan模式看计划,不然出了问题哭都来不及。
四、auto模式:官方推荐的智能权限模式
这个是Claude Code v2.1.142之后新增的模式,也是官方现在最推荐的日常开发模式。
它的原理是用一个AI分类器来判断哪些操作是安全的,可以自动放行;哪些操作是有风险的,需要询问你。
简单来说就是:default模式是事事都问,bypassPermissions模式是事事都不问,auto模式是它觉得安全的就自己干,觉得危险的就问你。
比如改个变量名、加个注释、写个普通的函数,它自己就干了,不会弹窗。但是要执行rm命令、访问系统文件、修改生产环境配置,它就会停下来问你。
这个模式比default模式少了80%的弹窗,又比bypassPermissions模式安全得多,简直是日常开发的福音。我现在天天用这个模式,一天最多点个三五次同意,终于不用再当审批专员了。
但是这里有个巨坑,我一定要提醒你们:auto模式不能写在项目级的settings.json里,只能写在用户级的settings.json里。如果你把它写在项目级,Claude Code会直接忽略这个设置,还是用默认的default模式。
我当时为了这个坑,折腾了整整一个下午。我明明在项目的settings.json里写了defaultMode是auto,结果它还是天天给我弹弹窗。我以为是我电脑坏了,重装了三遍Claude Code,最后翻官方文档最下面的小字才看到这句话,差点当场去世。
谷歌这操作也是绝了,怕你不小心给整个项目开了auto,出了事赖它,所以直接禁止了项目级的auto设置。你们可千万别踩这个坑。
五、dontAsk模式:名字最坑人的拒绝模式
这个模式的名字绝对是史上最坑的,没有之一。
99%的人第一次看到这个名字,都会以为它的意思是"不要问我,直接同意所有操作"。结果一用才发现,它的意思是"不要问我,直接拒绝所有没被允许的操作"。
我给你们举个例子,你在dontAsk模式下让AI帮你检查项目的bug,它会直接告诉你"我没有权限访问文件"。你以为是它坏了,重启了三遍,结果还是一样。最后你才知道,原来它没被预先允许访问文件,所以直接拒绝了。
这就像你跟你家保姆说"以后别问我,自己看着办",结果保姆站在那啥也不干,因为它不知道什么是"看着办"。
所以这个模式根本不是给日常开发用的,它只适合非交互场景,比如CI/CD流水线、自动化脚本。在这些场景下,没有人会去点弹窗,所以如果操作没被允许,直接失败比卡在那等半天要好得多。
我之前见过一个同事,在本地开发用了dontAsk模式,结果AI啥也干不了,他还以为是Claude Code出问题了,在技术群里骂了半天,说Claude Code是个废物,最后才知道是自己模式选错了,社死当场。
六、bypassPermissions模式:慎用!慎用!慎用!
这个模式是终极模式,也是最危险的模式,没有之一。
在这个模式下,Claude Code会跳过所有权限检查,什么操作都不用问你,直接执行。改文件、删文件、执行命令、访问系统文件,想干嘛干嘛。
这就相当于你把你家的钥匙、银行卡密码、保险柜密码全给了一个陌生人,然后跟他说"我家你随便进,东西你随便拿,出了事我负责"。
官方文档里明确写了,这个模式只适合在Docker容器、虚拟机、临时目录这种可丢弃的环境里使用。绝对绝对不要在你的本地开发环境,更不要在生产环境使用这个模式。
我给你们讲个真实的故事,我有个朋友,嫌弹窗太烦,直接开了bypassPermissions模式。结果AI写代码的时候,不小心写了个rm -rf ~的命令,直接把他电脑里的所有文件都删了,包括他写了三年的毕业论文和攒了十年的女朋友照片。他哭了三天三夜,最后还是找数据恢复公司花了五千块钱,才恢复了一部分数据。
从那以后,他再也不敢用这个模式了,每次看到有人在群里推荐这个模式,他都会上去跟人急,说谁用谁傻逼。
所以记住,除非你是在一个用完就扔的沙盒环境里,否则永远不要开这个模式。省那点点击的功夫,可能会让你损失惨重。
七、怎么设置和切换授权模式
讲完了六种模式,再给你们说说怎么设置和切换,超级简单。
1. 启动时临时设置
在启动Claude Code的时候,加上--permission-mode参数就可以了。比如:
bash
claude --permission-mode auto
claude --permission-mode acceptEdits
claude --permission-mode plan
这个参数会覆盖settings文件里的默认设置,临时生效。
2. 永久设置默认模式
如果你想一直用某个模式,可以把它写到用户级的settings.json文件里。
文件路径是:~/.claude/settings.json
比如你想默认用auto模式,就写成这样:
json
{
"permissions": {
"defaultMode": "auto"
}
}
想默认用acceptEdits模式,就把auto改成acceptEdits就行。
3. 运行中切换
如果你在使用过程中想切换模式,不用重启Claude Code,直接按Shift + Tab就可以循环切换所有模式。
这个快捷键超级方便,我现在写代码的时候,经常在acceptEdits和plan模式之间来回切,不用每次都输参数。
八、我的使用建议
最后给你们总结一下不同场景下该用什么模式,照着用准没错:
- 日常开发:用auto模式,智能又省心,大部分弹窗都没了
- 大型重构/复杂任务:先开plan模式看计划,确认没问题再切到acceptEdits或auto模式执行
- 批量改代码/修bug:用acceptEdits模式,不会被编辑确认打断
- 自动化脚本/CI/CD:用dontAsk模式,避免卡在权限确认那里
- 临时测试/沙盒环境:可以用bypassPermissions模式,用完就扔
- 新手入门:先用default模式熟悉一下,再慢慢换其他模式
最后再吐槽一句,我发现很多人不管什么模式,只要弹窗就无脑点Yes All。那我劝你还不如直接开bypassPermissions模式,反正结果都一样,还省得你点鼠标。
不过话说回来,AI毕竟是工具,它再智能也有犯错的时候。所以不管用什么模式,都一定要记得备份代码,不然哪天AI给你搞个大新闻,把你项目删了,你就真的要卷铺盖走人了。
P.S. 目前国内还是很缺AI人才的,希望更多人能真正加入到AI行业,共同促进行业进步,增强我国的AI竞争力。想要系统学习AI知识的朋友可以看看我精心打磨的教程 http://blog.csdn.net/jiangjunshow,教程通俗易懂,高中生都能看懂,还有各种段子风趣幽默,从深度学习基础原理到各领域实战应用都有讲解,我22年的AI积累全在里面了。注意,教程仅限真正想入门AI的朋友,否则看看零散的博文就够了。