Claude Code Plan Mode 是一种权限模式,它让 Claude 读取项目文件,并在不编辑源码的情况下提出计划。你先审阅这份计划,再决定是否实现。除了可以使用 bypass permissions 的交互式终端会话,编辑会一直被拦截,直到你批准;在那些会话里,plan mode 的拦截不会生效。下面的示例提示会要求写出文件、每个文件为什么要改、顺序,以及检查项。
比方说,要给待办列表加上截止日期。是不是改一下界面就够了?你可能也需要看看日期存在哪里、列表里怎么显示。这种时候用 Plan Mode,可以在 Claude 改文件之前,先看清它打算覆盖的范围。
什么时候值得用
要一起改多个文件,或项目还不熟、需要先摸清结构时,Plan Mode 很有用。实现办法有两种以上、想先比较利弊时,也可以先规划。
反过来,按钮文案写错了这种改什么、改哪里都很清楚的事,直接让它改就行。不是每次都要先走规划。
1. 先打开 Plan Mode
在终端进入项目目录,用下面的命令启动 Claude Code:
claude --permission-mode plan
如果已经在 Claude Code 会话里,按 Shift+Tab 循环权限模式,直到状态栏显示 plan mode on。停在这里:再按一次会离开 plan mode,而且不会批准计划。在提示里也可以用 /plan 进入 plan mode,后面可以选择性加上说明,例如 /plan fix the auth bug。
2. 说清想要的结果,以及这次不要动什么
下面假设你要给待办应用加上截止日期。可以直接用,也可以按自己的任务改写。
我想在待办列表里加上截止日期。
先不要改文件。请先看现有代码,再给出一份计划。
完成后应该是这样:
- 每条待办都能填写截止日期,并在列表里看到。
- 还没有日期的旧待办也要正常显示。
登录和列表的整体设计保持不变。
计划里请写明:
1. 会改哪些文件,以及每个文件为什么要改
2. 建议的实现顺序
3. 做完后要跑哪些测试、看哪个画面
如果日期显示格式需要先定,请在动手前问我。
比起只说「加个截止日期」,这份请求补上了完成标准和范围。尤其是「没有日期的旧待办也要正常显示」这一条,会让计划同时覆盖新功能,以及如何保住现有行为。
3. 读计划,改完再批准
Claude 给出计划后,先核对这三点:
- 改动范围: 有没有把登录功能或整体设计也卷进来?那些和截止日期无关。
- 漏掉的情况: 没有日期的待办怎么处理?存下来的日期重新打开时,还能正确显示吗?
- 怎么验收: 实现之后要跑哪些测试、看哪个画面?
缺了就先别批准,补一句「请把没有日期的旧条目怎么处理也写进计划」。如果还要继续改计划,在批准界面选择 No, keep planning。按 Ctrl+G,在默认文本编辑器中打开提出的计划,并在继续之前修改。
计划合适时,选择实现要如何开始。Yes, manually approve edits 会批准计划,并逐项审阅每一次编辑。Yes, and use auto mode 会批准并在 auto mode 中开始。如果 auto mode 不可用,这一项会显示为 Yes, auto-accept edits。如果已经启用 bypass permissions,则会显示为 Yes, and switch to BYPASS PERMISSIONS (no further prompts) for this session。批准会退出 plan mode,并把会话切换到该选项所描述的权限模式。实现结束后,再核对实际改动和测试结果。计划写得好,并不等于代码已经能用。
Plan Mode 仍可以运行命令来检查仓库。只读集合之外的命令可能会要求批准,或者在规划期间 auto mode 可用时由分类器审查。Claude 在规划时不会编辑源码。除可以使用 bypass permissions 的交互式终端会话以外,编辑会一直被拦截,直到你批准;在那些会话里,plan mode 的拦截不会生效。