Claude Code · 新手入门

Claude Code 权限模式完全指南

六种授权模式一次说清楚——从「一直弹窗烦死人」到「全自动顺滑跑」,找到最适合你的那一档。

📖 约 8 分钟阅读 🎯 面向新手 ⚙️ 含设置示例与测验

为什么你应该懂权限模式

第一次用 Claude Code 的人几乎都会被「授权提示」弹窗劝退: 弹窗一直跳,很烦;你以为它已经开始干活了,结果它还在等你点 Yes

想关掉吧——不知道怎么关; 想完全放开吧——又怕权限失控搞出事。 于是很多人就一直用 acceptEdits「凑合活着」。

这篇文章帮你解决什么

把 Claude Code 官方目前的 六种权限模式讲清楚: 它们各自含义、适合场景、风险高低,以及怎么 启动时指定永久默认运行中一键切换。看完你就能根据场景挑最合适的那一档,不再无脑点 Yes。

六种权限模式概览

不查不知道,一查吓一跳——Claude Code 现在已经内置了 六种权限模式。 全都通过 --permission-mode 参数在启动时传入:

claude --permission-mode default
claude --permission-mode acceptEdits
claude --permission-mode plan
claude --permission-mode auto
claude --permission-mode dontAsk
claude --permission-mode bypassPermissions
规则

启动时通过 --permission-mode 传入的参数, 会 覆盖 settings.json 里写好的 defaultMode

一眼看完六张卡片

default
标准模式
最保守,遇到要授权的操作就问你。新手默认从这里开始。
风险 · 低
acceptEdits
自动接受编辑
自动放行文件修改,但运行命令、敏感操作还是会拦你。最常用的「省心档」。
风险 · 中低
plan
规划模式
只读 + 出方案,不直接动代码。重构前、大任务前用它先看计划。
风险 · 低
auto
智能自动模式
分类器自动判断:安全的放行,危险的继续询问。在「少打扰」和「安全」之间取平衡。
风险 · 中
dontAsk
不询问模式
不是「都同意」,而是「不要问」——没被允许的就直接拒。给脚本/CI 用。
风险 · 中
bypassPermissions
跳过权限检查
等同于「危险跳过」,全部放行。只在容器/沙盒/虚拟机里用。
风险 · 高

对比速览表

下面这张表把六种模式的含义、适合场景、风险横向铺开,方便你快速对号入座。

模式 含义 适合场景 风险
default 标准权限模式 日常开发、最稳妥
acceptEdits 自动接受文件编辑 写代码、批量改文件 中低
plan 规划模式(只读出方案) 大重构、复杂任务、先看方案
auto 自动模式(分类器判断) 想减少确认,又不想完全放开
dontAsk 不询问,没允许就拒绝 非交互、自动化、CI、脚本环境
bypassPermissions 跳过所有权限检查 容器、沙盒、临时测试环境
怎么记

从左到右记一个梯度—— default → acceptEdits → auto → dontAsk → bypassPermissions, 问得越来越少、自由度越来越高、风险也越来越大。 plan 是个特例:只读不动手,风险最低但产能也最低。

六种模式逐个详解

default

最保守、最常用
claude --permission-mode default

按默认权限系统运行:该问你的时候问你,问的还挺多。 适合刚上手的时候用——慢点没关系,先把「Claude Code 会主动做什么」摸清楚。

acceptEdits

自动接受编辑——「写代码档」
claude --permission-mode acceptEdits

这个模式主要 减少「是否允许修改文件」 的确认弹窗。 但它 不是完全放开:执行 Bash、访问敏感文件、运行危险命令时, 仍然可能受到权限规则限制。

最适合

让它连续改代码、修 bug、重构多个文件。是大多数人「日常省心档」的首选。

plan

先别动手,先说方案
claude --permission-mode plan

规划模式默认 偏只读,不直接改代码。 适合让 Claude Code 先阅读项目、理解结构、提出修改计划——你确认后再切换到其他模式去执行。

典型用法

大重构、跨文件改动、不确定影响面的任务,先 plan,再 acceptEdits/auto,把风险扼杀在动手之前。

auto

智能自动模式 · 官方推荐的「平衡档」
claude --permission-mode auto

官方工程博客的描述是:auto分类器 自动处理一部分权限决策, 减少审批疲劳,同时 比直接跳过权限更安全。简单理解:

default            # 经常问你
auto               # 安全的自动放行,风险高的拦截或询问
bypassPermissions  # 尽量不问,直接放行
官方注意事项

从 Claude Code v2.1.142 开始: 把 auto 写在项目级 .claude/settings.json.claude/settings.local.json 里会被忽略 ——避免某个仓库自己给自己开启 auto。 要默认启用 auto,必须写到用户级 ~/.claude/settings.json

dontAsk

不要问我,没允许就拒
claude --permission-mode dontAsk

这个名字最容易误解。它 不是「什么都同意」, 而是「不要问我」。所以如果某个工具调用没有被你的权限规则预先允许, 它会 直接失败 / 拒绝,而不是弹窗让你点同意。

适合非交互场景,比如:

claude -p "帮我检查项目问题" --permission-mode dontAsk

因为非交互模式下,你不希望它卡在权限确认那里。

bypassPermissions

危险跳过 · 仅限沙盒
claude --permission-mode bypassPermissions

等价于常见的:

claude --dangerously-skip-permissions
⚠️ 仅在这些环境用

Docker 容器、临时目录、测试仓库、虚拟机——可丢弃的环境。 不要在自己的主开发机、生产仓库直接用。

永久设置默认模式

不想每次启动都加 --permission-mode?写到设置文件里就好。

修改这个文件:

~/.claude/settings.json

例:默认启用 auto

{
  "permissions": {
    "defaultMode": "auto"
  }
}

例:默认启用 acceptEdits

{
  "permissions": {
    "defaultMode": "acceptEdits"
  }
}
再次提醒

auto 只能写在 用户级 ~/.claude/settings.json, 写在项目级 .claude/settings.json 会被忽略。其他模式没有这个限制。

运行中切换模式

已经在 Claude Code 交互界面里了,想临时换个模式?

键盘快捷键

在 CLI 里按 Shift + Tab 即可循环切换权限模式。 官方权限模式文档也是这么写的。

这样一来你完全可以:

  1. 启动用 plan,先让 Claude 看完代码、出方案。
  2. Shift + Tab 切到 acceptEdits,让它放手改代码。
  3. 遇到不放心的环节,再切回 default,让每一步都问你。

场景化使用建议

每次记一长串名字其实有点难。下面是按场景给的速选——直接照抄就行:

日常开发
auto

智能放行 + 危险拦截,最平衡。

claude --permission-mode auto
大型改动前
plan

先看完整方案再动手,最稳。

claude --permission-mode plan
想让它少问编辑确认
acceptEdits

连续改代码不打断,最顺。

claude --permission-mode acceptEdits
自动化 / 非交互
dontAsk

脚本、CI 场景,不要卡在弹窗。

claude -p "..." --permission-mode dontAsk
沙盒环境才用
bypassPermissions

容器/虚机里彻底放飞。

claude --permission-mode bypassPermissions
老司机的真心话

上面是对一般人的建议。非一般的人,直接上 bypassPermissions。 实践下来,目前的智能模型很少会主动做危险操作;而大部分人在面对授权询问的时候, 也都是无脑选 Yes / All / Always——既然总归要点同意,不如一开始就放飞。

前提:你清楚自己在做什么,且改动可回滚(Git worktree 是天然的兜底)。

在 Jcode / JClaude 里

我会在 Claude Code 启动器 Jcode 和桌面版 JClaude 中 把这六个选项都加进去——特别是 bypassPermissions给老司机一键飞起

知识测验

Q1:dontAsk 模式的真实行为是?
  • A所有授权请求一律自动同意
  • B所有授权请求一律弹窗询问
  • C不弹窗——没被规则预先允许的操作直接拒绝
  • D等价于 bypassPermissions
Q2:想让 auto 模式成为默认,应该写到哪个文件?
  • A项目根目录的 .claude/settings.json
  • B项目根目录的 .claude/settings.local.json
  • C用户主目录的 ~/.claude/settings.json
  • D任意 settings.json 都可以
Q3:在 Claude Code 交互界面里,运行时切换权限模式的快捷键是?
  • ACtrl + P
  • BShift + Tab
  • CAlt + M
  • D没有快捷键,必须重启
Q4:以下哪种模式 风险最高,只建议在容器/沙盒里使用?
  • AacceptEdits
  • Bauto
  • CdontAsk
  • DbypassPermissions
Q5:你正在准备一次跨多个文件的大重构,最稳的开局方式是?
  • A直接 bypassPermissions,一把梭
  • Bplan 看方案,确认后再切 acceptEdits / auto 动手
  • CdontAsk,让它自己跑完
  • Ddefault,每一步都点 Yes

速查表

claude --permission-mode default
标准模式 · 该问就问,新手起手式
claude --permission-mode acceptEdits
自动接受文件编辑 · 写代码省心档
claude --permission-mode plan
规划模式 · 只读出方案,不动手
claude --permission-mode auto
智能模式 · 分类器决定放行还是询问
claude --permission-mode dontAsk
不询问 · 没允许就拒,自动化场景用
claude --permission-mode bypassPermissions
跳过权限 · 仅限沙盒/容器/虚机
claude --dangerously-skip-permissions
bypassPermissions 的等价写法
Shift + Tab
交互界面里循环切换权限模式
~/.claude/settings.json
defaultMode 持久化(auto 必须写这里)
最后的提醒

权限模式不是「设了就一劳永逸」。 在生产仓库 / 主开发机用保守档,在沙盒/可丢弃环境才放飞—— 搭配 Git worktree 给 AI 一个独立工作目录,是最稳的玩法。