别让 Claude Code 一直问你能不能执行:选 don't ask again、写 allow 规则、切 acceptEdits 或 auto 模式

Claude Code 总弹「能不能执行」,可以分三层解决:弹窗里选 don't ask again 存规则,用 allow 规则放行常用命令,或按 Shift+Tab 切到 acceptEdits、auto 模式。本文按场景讲,并说明哪些提示官方就是关不掉。

NNathaniel bigo··原创首发·AI 辅助撰写
12 分钟读完
资料核对于 2026-11-05 · 依据官方文档与公开资料整理 Pro 账号
本文根据 Claude Code 官方文档《Configure permissions》《Permission modes》整理,资料核对于 2026-11-05。配图为本站整理的示意图,不是界面截图。本站(bigolab.com)不是 Anthropic 官方网站。

适用于谁

  • 用 Claude Code 时,每运行一条命令、改一个文件都要点一次确认,觉得被打断的人;
  • 搜过「claude code 设置自动确认」,却不知道该选哪种模式、哪些风险要自己担的人;
  • 已经在弹窗里点了「don't ask again」,下次还是被问的人。

结论先说

  1. 「一直问」是 Manual 模式(配置值 default)的正常表现:这个模式只有读取文件不用问,改文件、跑命令都要你确认。
  2. 有三层办法,从稳到猛:①弹窗里选 Yes, and don't ask again,把常用命令存成规则;②自己写 permissions.allow 规则,精确放行一类命令;③换权限模式,用 acceptEdits 或 auto 一次性减少弹窗。
  3. 官方在 v2.1.283 及以后,把交互式终端和 VS Code 会话的内置默认模式定为 auto。如果你的版本、账号或模型不满足 auto 的条件,就会回到逐条询问,这是「明明新版本却还在问」的一个常见原因。
  4. 有些提示关不掉:写入 .git、.claude、.bashrc 这类受保护路径,除了 bypassPermissions 之外都不会自动通过。
  5. bypassPermissions 官方只建议用在隔离的容器或虚拟机里,日常电脑上不要为了「不烦」就开。

Claude Code 总在问时按场景选办法:存规则、写 allow、切模式、哪些提示关不掉

图:本站根据 Claude Code 官方文档:Configure permissions 与 Permission modes 整理的示意图

一、先看一眼:你现在在哪种模式

官方的六种模式(配置值)是 default、acceptEdits、plan、auto、dontAsk、bypassPermissions。区别只有一个:哪些操作不用问你。

六种权限模式各自不用再问的操作对照

图:本站根据 Claude Code 官方文档:Permission modes 整理的示意图

终端里按 Shift+Tab 在模式之间切换。官方写明:从 auto 按一次到 default,之后依次是 default → acceptEdits → plan;auto 和 bypassPermissions 只有在已启用时才出现在循环里;dontAsk 不在循环里,只能启动时设定。各模式的完整说明见 /guides/claude-code-permission-modes,快捷键清单见 /guides/claude-code-keyboard-shortcuts。

会话启动时用哪个模式,官方的优先级是:--permission-mode 参数(或 --dangerously-skip-permissions)、其次是设置文件里的 permissions.defaultMode、最后才是内置默认。注意官方特别说明:写在项目的 .claude/settings.json 或 .claude/settings.local.json 里的 "auto" 与 "bypassPermissions" 不会生效,要放在用户级设置等位置。

二、办法一:弹窗里选 don't ask again

Bash 命令的权限弹窗,官方示例里有这几个选项:Yes、Yes, and don't ask again for: npm test \*、(部分情况下有)Yes, and switch to auto mode、No。

选「don't ask again」之后,保存的位置和时长因工具而异,官方的表格是这样写的:

工具「don't ask again」的效果
Bash 命令永久,按仓库和命令保存
文件修改(Edit / Write)到本次会话结束
WebFetch永久,按仓库和域名保存
WebSearch永久,按仓库保存

永久保存的规则会写进 git 仓库根目录的 .claude/settings.local.json,之后在这个仓库里的任何子目录和 worktree 里开会话都生效。

两点提醒:

  • 有的弹窗只有一次性批准,没有「don't ask again」。官方说,这是因为弹窗说不清楚「永久放行」会覆盖什么,此时可以批准一次,或者去 /permissions 自己加规则;
  • 批准一条复合命令(比如 git status && npm test)时,Claude Code 会对每个需要批准的子命令分别存规则,而不是存整条字符串。

三、办法二:自己写 allow 规则

/permissions 会打开规则管理界面,列出所有规则和它们来自哪个 settings.json。你也可以直接在设置文件里写,官方示例:

json
{
  "permissions": {
    "allow": [
      "Bash(npm run *)",
      "Bash(git commit *)"
    ],
    "deny": [
      "Bash(git push *)"
    ]
  }
}

写规则要注意官方强调的几件事:

  • ** 要放在子命令之后*。Bash(git log ) 只放行 git log,Bash(git ) 则放行所有 git 命令;
  • ** 前面的空格是规则的一部分*:Bash(ls ) 不会匹配 lsof,Bash(ls) 会;
  • 规则按 deny → ask → allow 的顺序判断,第一个命中的生效,allow 没法给 deny 开例外;
  • 复合命令要每个子命令都被放行才免问,Bash(safe-cmd *) 不会放行 safe-cmd && other-cmd,识别的分隔符包括 &&、||、;、|、|&、& 和换行;
  • 官方明确说 Bash 规则不是安全边界:Bash(git push *) 拦得住 git push origin main,拦不住 git -C . push origin main 这种写法。需要硬隔离时用沙箱或 PreToolUse hook。

项目里的 permissions.allow 要等你在该文件夹接受「工作区信任」对话框之后才会生效。设置文件的位置与优先级见 /guides/claude-code-settings-json。

四、办法三:换模式

acceptEdits:官方写的是,读取、改文件,以及工作目录内的 mkdir、touch、mv、cp、rm、rmdir、sed 自动通过,其他命令仍会问。适合你在边看边改代码、对改动有把握的时候。

auto:所有动作自动通过,由后台的分类器审查每个动作。官方说它会默认拦截强制推送、生产环境部署、云存储上的批量删除之类的动作,同时强调 auto 减少提示但不保证安全。官方列出的条件包括:团队版和企业版默认开启,管理员可以关;模型方面,走 Anthropic API 时需要 Claude Opus 4.6 或更新、Sonnet 4.6 或更新、Haiku 5.5 或 Fable 系列模型。模型能不能用取决于你的订阅或 API 开通情况,订阅的比较见 /guides/claude-code-pro-max-or-api,需要订阅可以看 /chongzhi/claude-code。

bypassPermissions:关掉权限提示和安全检查。官方的限定写得很清楚:

  • 只在隔离环境里用,例如没有联网的容器、虚拟机或 dev container;
  • deny 规则仍然生效,显式的 ask 规则和被识别为关键路径的 rm -rf 仍会提示;
  • 不能在没有以此模式启动的会话里中途切入,要在启动时用 --permission-mode bypassPermissions 或 --dangerously-skip-permissions;
  • Linux 和 macOS 上以 root 或 sudo 运行时,Claude Code 会拒绝启动。

五、改了还是在问,先查这几处

  • 当前模式是不是 default?按 Shift+Tab 看底部状态显示;
  • 弹窗是不是对受保护路径的写入(.git、.claude、.bashrc)?这类提示官方就不让自动通过;
  • 你的 allow 规则末尾有没有带 ?不带 只匹配一整条确切命令,参数一变就不匹配;
  • 命令是不是复合命令,其中某个子命令没被放行?
  • 规则写在项目 .claude/settings.json 里,但没接受工作区信任?

常见问题

Q:「设置自动确认」有没有一个开关?

官方文档里没有出现单独的「全部确认」开关,做法是选择权限模式,或者用规则精确放行。

Q:弹窗点了「don't ask again」,规则在哪看、怎么撤?

在 /permissions 里能看到并删除;Bash 的永久规则存在仓库根目录的 .claude/settings.local.json。

Q:auto 模式和 bypassPermissions 有什么区别?

auto 还有一个分类器在后台审查,会拦截危险动作;bypassPermissions 则几乎什么都不拦。

Q:会不会不小心放行 rm -rf?

acceptEdits 会自动通过工作目录内的 rm,所以别在重要目录里盲目开它。不想让 Claude 碰的命令可以写进 deny 规则,改动前最好先有 git 提交,万一改坏了的回退办法见 /guides/claude-code-rewind-checkpoints-undo。

相关教程

参考资料

  • Claude Code 官方文档:Configure permissions — https://code.claude.com/docs/en/permissions
  • Claude Code 官方文档:Permission modes — https://code.claude.com/docs/en/permission-modes

Nathaniel 的更多内容

  1. 01

    Claude Code 支持语音输入吗:/voice 开启,按住空格说话,要 claude.ai 账号和本地麦克风,支持的听写语言有限

    Claude Code 命令行版支持语音输入(voice dictation):输入 /voice 开启,按住空格说话,转写文字直接进输入框。但必须用 claude.ai 账号登录、有本地麦克风,SSH 和云端会话不能用;官方的听写语言清单里没有中文。

    Claude0
  2. 02

    Claude Code 任务完成提醒、提示音、Windows 通知怎么设:终端响铃、Notification hook 和 Stop hook 的区别

    Claude Code 做完任务想收到提醒,官方有三条路:在设置里把 preferredNotifChannel 设为 terminal_bell 让终端响铃;用 Notification hook 在它等你输入或批准时弹窗;用 Stop hook 在每次回复完毕时执行命令。本文含 Windows 写法和排查。

    Claude0
  3. 03

    Claude Code 状态栏怎么配置:/statusline 一句话生成,显示模型、上下文占用和 5 小时 / 7 天用量

    Claude Code 底部状态栏可以自己定制:用 /statusline 说一句话让它生成脚本,或在 settings.json 的 statusLine 里指向自己的脚本。本文讲怎么配、脚本能读到哪些字段(模型、上下文、花费、订阅用量)、Windows 写法和不显示时的排查。

    Claude0
  4. 04

    Claude Code 提示未登录、怎么退出登录、切换账号:/login、/logout、/status 和 CLAUDE_CONFIG_DIR

    Claude Code 提示 Not logged in 时运行 /login;退出登录用 /logout;想同时用两个账号,官方的做法是给每个账号单独设 CLAUDE_CONFIG_DIR。本文讲几个登录命令、登录凭据存哪、/status 怎么看当前账号,以及 API 密钥覆盖订阅的坑。

    Claude0
  5. 05

    Claude Code 安装卡住、很慢、失败怎么办:先测下载服务器,再按报错对照(下载中断、Killed、PATH、PowerShell)

    Claude Code 安装卡住或失败,官方的排查顺序是:先测 downloads.claude.ai 能不能连上,再按报错分类处理。本文整理下载中断、Linux 内存不足 Killed、Docker 里卡住、Windows 命令用错 shell 等情况的官方对策。

    Claude0
  6. 06

    Claude Code 怎么连接远程服务器(SSH):桌面版加 SSH 环境,或登录服务器后在终端里直接用

    Claude Code 连远程服务器有两种官方做法:桌面版 Code 标签页里添加 SSH 环境,桌面版会自动在服务器上装好 Claude Code;或者自己 SSH 登录服务器,在终端里安装并登录。本文讲两种做法的步骤、服务器要求和常见报错。

    Claude0

同产品的其他教程

  1. 01

    Claude Code 历史记录在哪、文件夹在哪:~/.claude 里每个文件是什么,哪些 30 天后会被清掉,哪些不能删

    Claude Code 的会话记录、提示历史、配置和登录凭据都在用户目录下的 .claude 文件夹(Windows 是 %USERPROFILE%\.claude)。本文按官方文档列出各文件的用途、默认保留期、哪些不能删,以及怎么清理、怎么换位置。

    Claude0
  2. 02

    Claude Code 怎么导出会话、导出上下文:/export、/copy 和 .jsonl 会话记录的区别

    Claude Code 导出对话用 /export(纯文本,可直接写入文件),只要最后一条回答用 /copy。本文讲两个命令的区别、会话记录 .jsonl 在哪、脚本怎么拿结构化结果,以及「导出上下文」换新会话时官方给的做法。

    Claude0
  3. 03

    Claude Code 代码改坏了怎么回退:/rewind 或连按两次 Esc,三种恢复方式,哪些改动回退不了

    Claude Code 改坏了代码,可以输入 /rewind(别名 /undo),或在输入框为空时连按两次 Esc,选择只恢复代码、只回退对话或两者一起。本文讲菜单里每一项的含义,以及 Bash 命令、子代理、外部改动为什么回退不了。

    Claude0
  4. 04

    Claude Code 官网下载在哪、怎么安装:原生安装、npm、Homebrew、WinGet 怎么选,Windows 要不要装 Git

    搜「Claude Code 官网下载」「为什么要装 Git」「为什么不推荐 npm」,官方文档的答案是:安装说明在 code.claude.com,原生安装标为推荐,npm 要 Node.js 22,Windows 的 Git 是可选的。本文按官方文档逐项说明。

    Claude0
  5. 05

    Claude Code 无法粘贴、无法读取图片怎么办:Ctrl+V 和 Alt+V 的区别,拖放和路径三种放图方法

    Claude Code 里粘贴不了截图、读不到图片?官方文档给了三种把图放进对话的方法:拖放进窗口、Ctrl+V 粘贴(Windows 和 WSL 用 Alt+V)、直接写图片路径。官方没有为「粘贴失败」单列排查,本文把官方写明的做法和通用排查分开讲。

    Claude0
  6. 06

    Claude 报错 529 overloaded_error 怎么办:API 暂时过载是什么意思,和 429、500、504 怎么区分

    Claude API 返回 529 overloaded_error,官方的解释是 API 暂时过载,全体用户高峰时都可能遇到,不是你的 Key 或余额出了问题。本文按官方错误页(2026-10 查询)讲清它和 429、500、504 的区别、SDK 怎么自动重试、流式请求中途报错怎么处理。

    Claude0

0 条评论

登录 后参与评论

还没有评论,来抢沙发~