权限模式只控制一件事:哪些操作需要你确认才能执行。它们不改变可用的工具、使用的模型或 Claude 能分析的内容。它们控制的是”Claude 想做 X”和”X 真正发生”之间的那道门。
四种模式
default — 每个工具调用都需要你确认。最大控制,最大摩擦。每次 Read、每次 Edit、每个 Bash 命令执行前你都能看到。适合学习 Claude Code 的行为或处理敏感代码。
acceptEdits — 文件修改(Write、Edit)自动批准,Bash 命令仍需确认。这是中间地带:Claude 可以自由编辑代码,但 shell 命令(可能对系统有更广泛影响)仍然经过你。
full — 全部自动批准。文件编辑、Bash 命令、所有工具调用不问就执行。最大速度,最少监督。适合你信任的任务,想让 Claude 自主工作。
plan — 只读模式。Claude 可以探索(Read、Grep、Glob)但不能修改任何东西。不能写、不能编辑、不能执行改变状态的 shell 命令。这不是”小的安全改动可以做”——是严格的零修改。
取舍
default vs full 就是安全 vs 速度。default 让你监督每个操作,代价是手动确认的摩擦。full 给你最大自动化,代价是减少了在错误发生前拦截的能力。哪个更好取决于任务。
所有模式都能用同样的工具。default 模式不会隐藏 Write 和 Edit——只是用之前会问你。所有模式用同一个模型。权限模式管的是执行控制,不是能力。
plan 模式是严格的
一个常见误解:plan 模式允许”小的、安全的”修改,比如注释或修正错别字。不允许。plan 模式阻止所有修改,不管大小或感知上的安全性。如果你在 plan 模式下 Claude 试图写任何东西,都会被拦住。这种严格性就是意义所在——探索代码库时,你要的是零副作用的保证。
CI/CD 模式选择
CI 流水线里,通常在 plan 和 full 之间选:
- 代码审查阶段 → plan 模式。只分析,不意外修改。
- 自动修复阶段 → full 模式。Claude 需要写改动,而且没有人来点”批准”。
CI 里不要用 default 模式——确认提示会让流水线永远挂着,没人回应。需要做修改的阶段也不要用 plan 模式——它在结构上就阻止了修改。
一句话总结: default(全部确认)、acceptEdits(自动批准文件修改)、full(全部自动批准)、plan(只读)——所有模式访问同样的工具和模型,区别只在哪些操作需要确认。