Claude Code 有几种模式?一篇说清模式切换的完整逻辑
用了 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 团队推荐的做法:
- 启动一个 Claude,用 Plan Mode 设计方案
- 启动第二个 Claude,把方案粘贴过去,让它审查
- 审查通过后,第一个 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 身份伪造排查实录]
更多推荐


所有评论(0)