用了 Claude Code 三个月,直到被锁在 Plan Mode 里出不来,才发现我一直不知道这个工具有多少种模式、怎么切换、什么时候该用什么。

这篇写给和我一样"直接上手、没看文档"的用户。


一、Claude Code 到底有几种模式?

四种。按编辑权限从严格到宽松排列:

模式 一句话 能做什么 不能做什么 典型场景
Plan Mode(计划模式) 只动脑,不动手 读文件、搜索、写计划书 任何修改操作 设计架构、评估多方案、不确定怎么改时
Default(默认模式) 动手但每步要你点头 读 + 写,每次编辑需手动确认 自行执行高风险命令 日常开发,想把关每一步
Accept Edits(接受编辑) 改文件自动过,命令仍需确认 读 + 写文件自动通过 未经确认运行 Bash 批量重命名、格式化、信任的重复性修改
Auto Mode(自动模式) 全放权,干完叫你 读 + 写 + Bash,全自动 无(但危险) 跑测试、批量重构、CI 流程

一个比喻帮你记住

把 Claude 想象成一个装修队:

Plan = 建筑师画图纸。你可以讨论方案、推翻重来、换一种风格——但墙上不会多一个钉子。

Default = 工人每砌一块砖,举起来让你看一眼,你点头他才放下去。

Accept Edits = 工人整面墙砌完,退后一步说"你看看行不行"。砖都砌好了,但水电还得你亲自确认。

Auto = 你把钥匙给工人说"干完叫我"。回来时可能是一个完美的家,也可能把承重墙砸了。


二、怎么知道当前在什么模式?

看顶部状态栏

Claude Code 的屏幕顶部状态栏会显示当前模式名称:

[default]   ← 默认模式
[acceptEdits]   ← 接受编辑
[plan]   ← 计划模式
[auto]   ← 自动模式

状态栏隐藏了怎么办?

按一次 Shift+Tab,状态栏会闪现出来,同时切换到下一个模式。再按一次切回来就行——用这种方法"看一眼"当前模式而不改变它。

Plan Mode 特有标识

进入 Plan Mode 后,会话会被自动命名(如 vulnerability-disclosure-plan),你会在标题栏或启动提示中看到。如果发现会话名突然带了 -plan 后缀,说明你已经在计划模式里了。


三、怎么切换?四个入口

入口 1:快捷键 Shift+Tab(最常用)

按一次,状态栏循环显示:

[default] → [acceptEdits] → [plan] → [default] → ...

看到你要的模式时停手。再按继续循环。

入口 2:/plan 命令

在对话中输入 /plan,直接进入计划模式。适合"我想先讨论方案,不急着改代码"。

入口 3:CLI 启动参数

claude --permission-mode plan      # 启动即计划模式
claude --permission-mode auto      # 启动即自动模式
claude --permission-mode default   # 启动即默认模式

入口 4:永久设置(settings.json)

{
  "permissions": {
    "defaultMode": "plan"
  }
}

设置后每次启动默认进入指定模式。


四、最容易踩的四个坑

坑 1:AI 自己调用 EnterPlanMode,你不知道发生了什么

当你描述一个复杂需求时,Claude 有时会自己调用 EnterPlanMode 工具进入计划模式。你只会看到一个权限弹窗问"是否允许?"——但弹窗不告诉你:

  • 进入后不能写代码
  • 会创建一个 plan 文件到 .claude/plans/
  • 会话会被标记上计划名称

怎么办:弹窗出现时点"拒绝",然后口头告诉 Claude “先给方案,不用进计划模式”。或者允许进入后,用 Shift+Tab 随时退出。

坑 2:Plan Mode 下让 Claude 改代码——它不拒绝你,只是什么都没改

这是最隐蔽的坑。你在 Plan Mode 下说"帮我把 user_id 改成 userId"——

Claude 会输出一段代码,说"你应该改成这样"。你以为它改了,实际上文件纹丝未动。因为 Plan Mode 禁用了所有写操作,但 Claude 不会主动提醒你"我现在不能改文件"。

怎么发现:如果你发现 Claude 一直在输出"建议的修改"但从没弹出文件确认弹窗——检查一下状态栏是不是 [plan]

怎么办Shift+Tab 切回 [default],然后再说一次"执行刚才的修改"。

坑 3:切到 Auto Mode 忘了切回来

Auto Mode 下 Claude 能自己改文件、跑命令。你说了句"帮我把 id 改成 UUID",它可能改了 20 个文件——你还没反应过来。我见过有人因此丢了半天的工作成果。

怎么办:只在目标明确、后果可控时才用 Auto。建议 Auto 使用完毕后立即 Shift+Tab 切回 Default。

坑 4:不知道 Accept Edits 这一档的存在

Default 和 Auto 之间还有 Accept Edits——文件修改自动通过,但命令仍需手动确认。很多用户不知道这档:

  • 要么太保守(Default,每次改文件都点确认,点到手酸)
  • 要么太激进(Auto,全放权,然后后悔)

怎么办:重复性改文件时用 Accept Edits。Shift+Tab 循环到 [acceptEdits] 停住。改完切回 Default。


五、实战场景速查

你的意图 用什么模式 怎么进入
“这个架构怎么设计好?” Plan /plan
“先看看有哪些文件要改,别动手” Plan Shift+Tab
“加一个工具函数” Default 默认就是
“把这 10 个文件里的 var 全改成 const Accept Edits Shift+Tab
“跑测试,失败就自动修,修完再跑” Auto Shift+Tab
Claude 弹窗申请进 Plan Mode 拒绝 口头告诉它"先讨论不改代码"
发现自己在 Plan Mode 里出不去 切回 Default Shift+Tab 循环两次

六、Power User 技巧

opusplan:让最强的模型做规划,最快的模型做执行

Claude Code 内置了一个 opusplan 模型别名:

阶段 自动使用模型 为什么
Plan Mode(规划) Opus 推理能力最强,适合架构设计
代码执行(实现) Sonnet 更快更便宜,代码生成质量接近

你不需要手动切换模型——在 Plan Mode 下写好了方案,批准执行时模型自动切换。如果项目设置了 opusplan 作为默认模型,这个优化全程自动生效。

/effort 控制思考深度

/effort low      # 简单任务,快速响应
/effort medium   # 日常开发(默认)
/effort high     # 复杂逻辑
/effort max      # 架构设计、安全审计

和 Plan Mode 搭配效果最好:Plan Mode + high/max effort = 顶级代码审查和方案设计。

双 Claude 工作流(官方推荐)

Anthropic 团队推荐的做法:

  1. 启动一个 Claude,用 Plan Mode 设计方案
  2. 启动第二个 Claude,把方案粘贴过去,让它审查
  3. 审查通过后,第一个 Claude 切换到 Auto Mode 执行

两个 Claude 互相审查,比一个 Claude 自说自话安全得多。


七、模式决策流程图

你有一个需求
    │
    不确定怎么改?
    ├── 是 → /plan(先讨论)
    │         └── 方案定了 → Shift+Tab 切 Default → 执行
    │
    确定怎么改,但量大?
    ├── 是 → Accept Edits(改文件自动过,命令需确认)
    │         └── 改完 → Shift+Tab 切回 Default
    │
    确定怎么改,就一两个文件?
    ├── 是 → Default(正常改)
    │
    需要自动化循环(改→测→改→测)?
    └── 是 → Auto(全自动)
              └── 搞完立刻切回 Default

八、总结

你要做的事 最短路径
先讨论不改代码 /plan
正常开发,每步看一眼 保持 Default
批量修改,信任但不全放手 Shift+Tab → Accept Edits
自动化流程 Shift+Tab → Auto
退出当前模式 Shift+Tab 继续循环
确认当前模式 看顶部状态栏,或按一次 Shift+Tab 查看
让 Claude 做最难的规划 Plan Mode + /effort max

本文首发于掘金。同系列:[当"Claude"不再是 Claude——一次 AI 身份伪造排查实录]

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐