Plan模式中Claude仍会运行分类器审查的命令;8月14日起Pro/Max/Team计划新会话默认切换为Auto模式,plan模式成为非默认选项。
Plan mode 从外部看很简单:按几次 Shift+Tab,Claude 停止编辑,你得到一个计划来审阅。但它底层的机制在近几个版本中已经发生了足够大的变化,以至于大多数人对它的 mental model 已经过时了——尤其是在你规划期间哪些命令仍在运行,以及批准后你会进入哪种权限模式。
还有一个让它值得现在重读的最后期限:从 2026 年 8 月 14 日起,auto mode 将成为 Pro、Max 和 Team 计划新会话的默认权限模式。Plan mode 最不为人知的特性之一——规划期间经 classifier 审查的命令——与 auto mode 的可用性挂钩,所以它即将从例外变成常态。
以下所有内容均对照当前官方文档(code.claude.com/docs/en/permission-modes,2026-08-13 核查)验证。
Plan mode 告诉 Claude 研究并提出变更,但不实际执行。Claude 会读取文件、运行 shell 命令来探索、写出一个计划——但不会编辑你的源代码。编辑动作会被阻塞,直到你批准该计划(一个重要例外见"坑"章节)。
这就是"我想在文件被任何操作触及之前,先理解 Claude 的意图"所使用的模式。文档将其定位为在修改代码库之前进行探索,这确实是它的强项:大重构、不熟悉的仓库、方法比 diff 更重要的变更。
先澄清一个命名冲突:plan mode(一种权限模式)不是 Plan agent(一种 subagent 类型)。权限规则语法 Agent(Plan) 针对的是 Plan subagent,这是另一种用于委托规划工作的机制。本文讲的是 mode。
Shift+Tab 在 CLI 中循环切换:default → acceptEdits → plan。状态栏会在进入时显示 ⏸ plan mode on。
/plan 作为提示前缀,可以将 plan mode 应用到单个提示——当你想要一个计划好的答案、但不想改变会话的模式时很有用。
claude --permission-mode plan 启动时即进入 plan mode。该 flag 也可以配合 -p 用于非交互式运行。
要让它跨会话持久化,需要在 settings 文件中设置——但见下文的 defaults 章节,因为有一个 VS Code 例外。
退出:再次按 Shift+Tab 离开 plan mode 而不批准计划。这是人们容易忘记的逃生舱——进入这个模式并不意味着你必须产出一个计划。
这是大多数 plan mode 描述过时的地方。有三种情况:
读取操作和内置的只读命令集无需提示即可运行。这是所有人都知道的基准。
当你的账户上 auto mode 可用,且 useAutoModeDuringPlan 设置为开启时——默认就是开启的——规划期间的其他 shell 命令会发送到 auto mode 的 classifier,而不是逐个提示你。获批的命令运行;被拒的命令被阻塞。实际上,这意味着当 auto mode 可用时,plan mode 可以在规划期间运行你的测试套件或构建,而无需任何提示。
没有 auto mode 时,只读集合之外的任何命令都会逐个提示审批。
版本脚注,因为很多人踩过这个坑:在 v2.1.212 到 v2.1.217 之间,只读集合之外的命令无论如何都会提示,即使 auto mode 可用。当前版本重新将它们路由到 classifier。
如果你使用了沙箱:plan mode 会特意跳过沙箱的"沙箱内则自动允许"替换逻辑。沙箱化但非只读的命令在规划期间仍会提示(或进入 classifier)。
当计划就绪时,Claude 展示它并询问如何继续。选项如下:
"Yes, and use auto mode"——批准并继续使用 auto mode。当 auto mode 不可用时,此选项显示"Yes, auto-accept edits"(→ acceptEdits)。使用 bypass permissions 启动的会话会显示"Yes, and bypass permissions"。
"Yes, manually approve edits"——批准计划,然后逐个审查每次编辑。
"No, keep planning"——保持在 plan mode,并告诉 Claude 需要修改什么。
令很多人意外的部分:批准一个计划会退出 plan mode,并将会话的权限模式切换为批准选项所描述的模式。Plan mode 是一个暂存区,不是你停留的地方。如果你还想规划下一个任务,用 Shift+Tab 循环回来,或者用 /plan 前缀下一个提示。
三个值得了解的便利功能:
Ctrl+G 在默认文本编辑器中打开发布的计划,这样你可以在 Claude 继续之前直接编辑。编辑计划往往比又一轮"No, keep planning"更快。
showClearContextOnPlanAccept 设置增加了一个首选选项:在批准计划的同时清除规划上下文——当探索记录很大、你希望实现阶段从干净状态开始时很方便。
批准计划后会自动根据计划内容为会话命名,除非你之前已经用 --name 或 /rename 命名过。
对于项目,在 .claude/settings.json 中设置:
{
"permissions": {
"defaultMode": "plan"
}
}
两个界面特定的例外:
VS Code 扩展:在扩展启动的会话中,settings 文件中的 defaultMode 不会设置起始模式。请在 VS Code 用户设置中将 claudeCode.initialPermissionMode 设为 plan。
桌面应用:在模式选择器中选择的模式会按文件夹记忆,并优先于 defaultMode——除了 Plan,它只应用于当前会话。你无法从选择器中"粘性"地固定 plan mode;请使用 settings 文件。
**1. bypass 可用的会话不会强制执行 plan mode 的阻塞。**在使用 bypass permissions 可用的会话中(用 --dangerously-skip-permissions 或等效方式启动),plan mode 成为一条指令而非强制:Claude 仍然被告知要规划但不编辑,但它在规划期间尝试的文件编辑或 shell 命令会无需提示地运行。如果你的工作流是"在容器中使用 bypass permissions,先规划",请注意那里的规划阶段是建议性的——围墙已经放下了。
**2. 保护路径在不同可用性下表现不同。**对保护路径(.git、.claude、.vscode、shell rc 文件、.mcp.json 等)的写入在 plan mode 正常操作中永远不会自动批准——它们会提示。但当规划期间 auto mode 可用时,它们会被路由到 classifier;在 bypass 可用的规划会话中,它们会被直接允许。同样的模式名称,根据其他启用的功能不同,有三种不同的行为。
不熟悉的仓库或跨领域变更 → plan mode。编辑前的强制暂停比它带来的按键成本更值得。
研究问题,不期望有编辑 → 通过 /plan 前缀使用 plan mode,或使用 Explore subagent。两者都会让你的会话不会产生任何变更。
在信任的仓库中执行充分理解的任务 → 跳过规划,直接进入 acceptEdits 或 auto mode。Plan mode 的价值与你的不确定程度成正比,当你已经知道想要的 diff 时,它接近于零。
还有一点:从 8 月 14 日起:如果你使用 Pro、Max 或 Team 并接受新的默认设置,你的会话将以 auto mode 启动——这意味着进入 plan mode 成为刻意减速的行为,规划期间有 classifier 审查的探索。在这个切换发生之前,值得把这些精确语义装进脑子里。
我维护着 Rulestack——实用的 Claude Code 技能包、hooks 和规则文件,与这些工具的实际行为保持同步。日常 AI 编程工作流笔记在 Bluesky:@ai-shop.bsky.social。