Insights·2026-07-24

什么是 Claude Code 权限模式,何时可以用 auto 放手不管?

权限模式(permission mode)一次性决定 Claude Code 在不必每次征得你同意的情况下可以运行什么。一共有六种。manual 只读,其余一切都要询问。acceptEdits 对读取、文件编辑以及常见的文件系统命令不再逐次询问,让你事后一次性审阅。plan 只读并调研以提出方案,但不做编辑。auto 会执行一切,同时由一个独立的分类器模型在每个动作执行前进行审查,只拦截危险动作——这是放手不管的默认选择。dontAsk 只允许预先批准的工具,其余一律不提示直接自动拒绝,适合 CI 和夜间批处理。bypassPermissions 跳过所有检查,等同于 dangerously-skip-permissions,只应在隔离的容器或虚拟机中运行。按 shift+tab 在 manual → acceptEdits → plan → auto 之间循环,状态栏会显示当前模式。auto 的分类器守护的是意图,却无法判断代码是否正确,因此要与运行测试的 stop hook 搭配使用:分类器盯意图,hook 确认正确性。归根结底,放手到什么程度要按任务来定,而不是凭胆量,并为其选择合适的模式。

클로드 코드 권한 모드 6종을 게 캐릭터로 표현한 그리드 — manual(읽기만), acceptEdits(편집 수락), plan(모자·돋보기로 조사), auto(빗자루로 자동 작업), dontAsk(잠자는 zzz), bypassPermissions(경고 표지). 각 모드마다 다른 배경색 카드.
출처: Anthropic Claude Code 공식 영상 — 권한 모드 6종(manual·acceptEdits·plan·auto·dontAsk·bypassPermissions)

什么是权限模式,为何一次性设定

权限模式让你一次性决定 Claude Code 在不必每次征询你的情况下可以运行什么。Claude Code 做的是实际工作——读写文件、执行终端命令、安装依赖包——如果每个动作前都问一句“可以这么做吗”,任务越长,你就越要守在批准提示旁。权限模式预先设定这条界线,让 Claude 在安全范围内不再询问、直接推进。

设置很简单。在 Claude Code 中按住 shift 再按 tab,模式会按顺序切换。manual、acceptEdits、plan、auto 这四种在此循环中轮换,当前处于哪一种会显示在底部的状态栏(status bar)。其余两种 dontAsk 和 bypassPermissions 用于无人值守运行或隔离环境等特殊场景。

关键在于“让模式匹配任务”。前期你想逐行查看每处改动时,多询问的模式更安全;方向已定、只剩重复性工作时,少询问的模式更快。下面按“自动放行的程度”依次说明六种模式。

模式自动做什么何时使用
manual只读;其余一切每次都问逐个动作确认、谨慎推进时
acceptEdits读取 + 文件编辑 + 常见文件系统命令反复修改代码、事后一次性审阅时
plan只读、调研、提方案;不编辑执行前先拿到方案时
auto执行一切,由分类器预先拦截危险动作放手不管的默认选择
dontAsk只允许预批准工具,其余静默自动拒绝CI、夜间批处理等无人批准时
bypassPermissions跳过所有检查仅在隔离的容器或虚拟机中

每次都问的一侧——manual 与 plan

manual 是最保守的模式。Claude Code 只对读取不加询问,其余动作——编辑文件、执行命令——都要在运行前得到你的确认。当你想逐一查看并批准每处改动,或是在小心处理陌生代码库时,它很合适。

plan(计划模式)同样只读,但目的不同。plan 会调研代码,提出“要改什么、怎么改”的方案,却不真正编辑文件。在启动大任务前,让 Claude 先通读代码并给出执行计划,你读过之后再把握方向。计划越周密,执行时偏离的余地越小。

把审阅推后的一侧——acceptEdits

acceptEdits 对读取、文件编辑以及常用的文件系统类终端命令都不再询问。Claude 改代码时你不必每次去按批准键,流程得以持续,你在结果出来后一次性审阅。

因此 acceptEdits 契合“先快速迭代、审阅放到后面”的工作方式,在打磨方向已定的代码、需要多轮修改时尤其高效。只是由于改动是事后确认的,前提是你之后必须回过头去核对改了什么。

放手不管的默认选择——auto 模式与分类器

想要放手交办时,首先要考虑的模式是 auto。在 auto 模式下,Claude 不询问就执行动作,但在前端有一个独立的分类器模型(classifier)在每个动作执行前进行审查。它只拦下被判定为危险的动作,其余日常工作照常放行。也就是“全部自动”,但只挑出危险的加以叫停。

分类器拦截的是“超出你请求、把事情做大”的动作。例如生产环境部署与数据库迁移、强制推送(force push)、把下载的代码直接管道输入 shell 执行、把敏感数据发往外部端点、删除会话所需的文件等。相反放行的是日常工作:项目内的本地编辑、按锁文件(lockfile)安装依赖、只读请求,以及推送到你自己的分支。

auto 位于 shift+tab 循环的末位,便于开启,状态栏可确认当前是否为 auto。之所以称它为“放手不管的默认选择”,是因为即便没有人一直守着批准,分类器也会守住危险的边界。

分类器的盲区与 stop hook

auto 的分类器有明确的局限。它守护的是意图,却不检查代码是否真的正确运行。比如你让 Claude 重构认证逻辑,结果写出的是坏掉的认证代码,分类器仍会放行——因为“坏掉”并不等于“危险”。

因此 auto 的正确用法是与运行测试的 stop hook 搭配。stop hook 是 Claude 完成一轮工作时自动运行的检查,把测试运行接进去,auto 守住“想做什么(意图)”的同时,hook 确认“代码是否真的能跑(正确性)”。意图归分类器,正确性归 hook。

auto 的护栏仍在演进,拦截与放行的清单会不断变化。真正使用 auto 时,最好在官方文档查看当前的拦截与放行清单。

.claude/settings.json —— 一轮结束时运行测试的 stop hook
{
  "hooks": {
    "Stop": [
      { "hooks": [ { "type": "command", "command": "npm test" } ] }
    ]
  }
}

无人值守流水线用 dontAsk,隔离环境用 bypassPermissions

dontAsk 面向没有人能批准的自动化场景。它只允许你预先批准的工具,凡不在清单上的动作都不提示、直接自动拒绝。在 CI 流水线、定时任务、通宵批处理这类身边无人的场景里,它让流水线继续前进,而不是卡在一个无人点击的批准提示上。

bypassPermissions 跳过所有检查。它等同于 Claude Code 的 dangerously-skip-permissions 设置——没有分类器、没有批准,什么都照跑。正因如此危险,只应在隔离的容器或虚拟机(VM)中运行。它不是可以在真实工作环境里常开的模式。

结论——让模式匹配任务

权限模式有多种,但日常使用的几种都在 shift+tab 循环之内。放手不管的默认选择是 auto,其安全由两层守护:动作运行前,分类器检查意图;一轮结束后,stop hook 检查代码是否真的能跑。

身边无人批准的无人值守流水线交给 dontAsk,而跳过一切检查的 bypassPermissions 只属于隔离的容器与虚拟机。最终归为一条:放手到什么程度要按任务而非胆量来定,并选择与之匹配的权限模式。