简介
Claude Code 的控制模式(权限模式)是会话级运行控制开关,用来控制 Claude 执行文件修改、终端命令、MCP工具调用时,是否需要人工审批。
模式仅对当前会话生效,重启会话会恢复默认;不能绕过项目底层权限规则(.claude/rules、.claude/ignore)。
快捷键:
Shift + Tab循环切换模式(CLI / IDE插件通用)
四种核心模式
| 模式名称 | 行为说明 | 适用场景 |
|---|---|---|
| Manual(默认模式) | 文件修改、终端命令、MCP工具调用全部需要人工确认,每次变更预览Diff后手动批准/拒绝 | 日常开发、新项目、生产代码,最安全 |
| Plan(计划模式) | 仅允许读取文件、分析代码、输出方案计划;禁止任何文件修改、执行命令,只做调研和方案设计 | 大型重构、需求评估、风险预检查,先定方案再动手 |
| Accept Edits(接受编辑) | 文件编辑、基础文件操作(mkdir、mv、cp)自动放行;执行shell命令、高危操作仍然需要审批 | 批量重构、格式化、大量文件重命名,信任代码变更场景 |
| Auto(自动模式) | 自动执行操作,内置安全风控自动识别高危行为;高危命令依然强制拦截询问 | 沙箱环境、一次性批量任务、CI自动化,生产慎用 |
额外:
bypassPermissions绕过权限模式,完全跳过审批,风险极高,仅隔离测试容器使用,不推荐日常开发。
模式切换方式
1. 会话斜杠命令
/mode manual
/mode plan
/mode acceptEdits
/mode auto
/mode status # 查看当前会话模式
2. 快捷键
Shift + Tab 循环切换模式:Manual → Plan → Accept Edits → Auto
3. CLI启动参数(会话初始模式,一次性生效)
# 直接以plan模式启动会话
claude --permission-mode plan
4. IDE插件
VS Code / JetBrains 插件底部状态栏,点击模式指示器,图形界面切换。
典型工作流:Plan模式先行(推荐最佳实践)
- 切换到
Plan模式,提出需求 - Claude 读取代码、分析依赖,输出完整执行计划(修改文件清单、变更内容、风险点)
- 人工审核计划,调整方案
- 确认方案后,切换为
Manual或Accept Edits执行修改 - 逐一审阅代码变更
示例对话:
/mode plan
把用户模块迁移到新目录,拆分类型定义与业务逻辑
Claude 将输出完整迁移方案,不会修改任何文件。审核完成后切换模式执行。
模式与权限体系关系
权限优先级:
.claude/ignore>.claude/rules(项目规则) > 会话控制模式
- 控制模式只控制是否弹窗审批,不能突破项目规则黑名单。
- 即使开启Auto模式,如果
.claude/rules禁止修改某个目录,Claude依然无法写入。 - 钩子、MCP、子代理、技能的操作,全部遵循当前会话模式。
模型控制命令(会话内)
/mode status # 查看当前权限模式
/approve all # 一次性批准所有待处理变更(谨慎使用)
/reject all # 拒绝全部待执行操作
/abort # 终止当前正在运行的任务,保留会话
模式配置持久化
可以在全局或项目 settings.json 设置会话初始默认模式:
{
"initialPermissionMode": "manual"
}
可选值:manual、plan、acceptEdits
auto不建议设置为默认启动模式。
使用场景推荐
✅ Manual(默认):绝大多数开发场景,新项目、生产代码、陌生项目
✅ Plan:大型重构、架构调整、代码审计、评估方案
✅ Accept Edits:批量文件整理、代码格式化、类型批量迁移
✅ Auto:本地沙箱、一次性脚本任务、CI流水线
❌ 不推荐:生产环境长期使用 Auto / bypassPermissions
常见问题
- 切换模式之后,仍然不能修改被rules禁止的文件
模式仅控制审批弹窗,不能绕过项目权限规则。 - Plan模式下还能执行命令?
Plan模式仅允许只读类查询命令(git status等),禁止修改文件、破坏性命令。 - 关闭会话再重新进入,模式会保留吗?
不会,新建会话会加载settings.json的initialPermissionMode,默认是Manual。 - Accept Edits 代表所有命令自动执行?
不是,仅文件写入与基础文件操作自动放行,shell终端命令依然需要审批。
安全提示
- Auto模式自动执行代码与命令,仅限本地沙箱项目,严禁直接在生产项目长期开启。
- 任何模式都建议搭配
.claude/rules做底层权限限制,双层防护。 - 执行批量变更时,优先使用Plan模式先审阅方案,确认后再执行。
0 条笔记