claude-code-notifier
工作原理 指南 常见问题
◐简体中文
English العربية Deutsch Español Français עברית Italiano 日本語 한국어 Nederlands Polski Português (Brasil) Русский Türkçe Tiếng Việt 简体中文 繁體中文
开始使用
全部指南

Claude Code 权限模式详解(default、acceptEdits、plan、bypassPermissions)

更新于 2026年10月31日 · 阅读约 7 分钟
本页内容 01六种模式一览 02如何切换模式 03各模式详解 04规则叠加在模式之上 05离开电脑时该选哪种模式 06常见问题

Claude Code 的权限模式决定了哪些操作无需询问就能执行。default(显示为 Manual)在编辑文件和执行 shell 命令前都会询问。acceptEdits 还会放行文件编辑和常见文件命令。plan 让 Claude 只读代码并提出方案,不做修改。auto 由后台分类器代替你批准操作。dontAsk 会拒绝所有需要询问的操作。bypassPermissions(由 --dangerously-skip-permissions 开启)几乎完全跳过询问,只适合在隔离的容器或虚拟机中使用。按 Shift+Tab 可循环切换模式,也可以用 claude --permission-mode <mode> 启动。

本指南基于 Anthropic 的权限模式文档。Claude Code 更新频繁,请以你所用版本的文档为准。

01六种模式一览

模式无需询问即可执行的操作适用场景
default(Manual)仅读取需要逐一审核每个操作、处理敏感工作
acceptEdits读取、编辑文件,以及在工作目录内执行 mkdir、touch、mv、cp 等常见文件系统命令在你盯着的情况下迭代代码
plan读取;批准计划前禁止编辑动手修改前先摸清情况
auto所有操作,但每个操作执行前都会先经过分类器检查长任务,减少 prompt 次数
dontAsk读取工作目录和预先批准的工具;其余一律拒绝CI 和受限脚本
bypassPermissions所有操作,少数例外仅限隔离的容器和虚拟机

default 是在设置、hook 和 --permission-mode 参数中使用的名称。CLI、IDE 扩展和桌面应用里显示为 Manual,CLI 也接受 manual 作为别名。

02如何切换模式

在 terminal 中按 Shift+Tab。切换顺序为 default、acceptEdits、plan,然后是当前会话允许的其他可选模式。dontAsk 不会出现在循环中,只能通过参数设置。

以指定模式启动会话:

claude --permission-mode plan

要把某个模式设为默认,在 ~/.claude/settings.json 中设置:

{
  "permissions": {
    "defaultMode": "acceptEdits"
  }
}

参数优先于设置,设置优先于内置默认值。有一条限制值得注意:auto 和 bypassPermissions 在项目的 .claude/settings.json 或 .claude/settings.local.json 中设置不会生效。也就是说,仓库无法悄悄把你切到 bypass 模式。这两个模式请在用户设置中配置,或者通过参数传入。

新会话的初始模式

较新版本的 Claude Code(v2.1.283 及以上)在 auto 模式可用时,交互式 terminal 和 VS Code 会话默认以 auto 启动,除非你的设置另有指定。claude -p 和 Agent SDK 则以 default 启动。如果你从没选过模式,却发现 prompt 很少,原因就在这里。

03各模式详解

default(Manual)

Claude 可以直接读取文件。编辑、shell 命令和网络访问都会弹出 prompt。在 Bash prompt 中选择“Yes, and don't ask again”,会在 .claude/settings.local.json 中保存一条 allow 规则,之后在这个仓库里该命令就不会再询问。文件编辑的批准在会话结束前一直有效。

acceptEdits

工作目录内的编辑和简单文件命令(mkdir、touch、rm、rmdir、mv、cp、sed)无需 prompt 直接执行,其他 shell 命令仍会询问。如果你会实时盯着 diff,这是个不错的折中选择。

plan

Claude 通过读取和只读命令进行探索,然后给出计划。在你批准之前,源码不会有任何改动。适合陌生代码或高风险修改。

auto

每个操作执行前都会由一个独立模型审查,超出你请求范围、指向它不认识的基础设施,或疑似受恶意内容驱使的操作会被拦截。显式的 ask 规则仍会弹出 prompt。如果分类器连续拦截 3 次,或单个会话累计拦截 20 次,auto 模式会暂停,恢复正常的 prompt 流程。Anthropic 官方的说法是:auto 模式“减少权限 prompt,但不保证安全”。

dontAsk

凡是需要 prompt 的操作一律拒绝,只执行 allow 规则允许的操作和本就无需批准的操作。它是为脚本和 CI 准备的,因为那里没人能回应 prompt。

bypassPermissions 与 --dangerously-skip-permissions

--dangerously-skip-permissions 等同于 --permission-mode bypassPermissions。所有 prompt 都会跳过,包括写入 .git、.claude 等受保护路径。少数情况在任何模式下都会询问或被拒绝,包括显式的 ask 规则、AskUserQuestion 以及某些危险的 rm 命令。deny 规则依然生效。

Anthropic 建议只在无网络访问的容器、虚拟机或 dev container 中使用。在 Mac 和 Linux 上,如果不在可识别的沙箱中,Claude Code 会拒绝以 root 或 sudo 身份在此模式下启动。如果只想让 bypass 可选而不直接开启,可以用 --allow-dangerously-skip-permissions,它会把该模式加入 Shift+Tab 循环,但不会切换过去。

04规则叠加在模式之上

模式决定基线,设置中的权限规则用于微调:

{
  "permissions": {
    "allow": ["Bash(npm run test *)"],
    "ask": ["Bash(git push *)"],
    "deny": ["Read(./.env)"]
  }
}

规则按 deny、ask、allow 的顺序检查,第一条匹配的规则生效。deny 规则在所有模式下都会拦截,包括 bypassPermissions。allow 规则在 bypassPermissions 下不起作用,因为那里本来就全部放行。运行 /permissions 可以查看所有规则及其来源文件。

hook 也可以参与进来。PreToolUse hook 能在任何模式下拦截工具调用。PermissionRequest hook 可以替你回应 prompt,但无法覆盖 deny 规则。具体做法见 PermissionRequest 指南。

05离开电脑时该选哪种模式

大家想用 --dangerously-skip-permissions,通常是想让 Claude 自己跑着,回来时不会发现会话卡在某个 prompt 上。这个问题确实存在,但 bypass 模式的解法是在你自己的机器上彻底取消你的把关。

几种更安全的组合:

  • 给无聊的命令加 allow 规则。把测试、lint 和构建命令加到 allow,git push 和部署保留 ask,模式保持 default 或 acceptEdits。
  • auto 模式:适合长任务,前提是你愿意让分类器来判断常规操作。
  • 让 prompt 找到你。保留会询问的模式,在手机上回应那几个真正重要的 prompt。

最后一种正是 Claude Code Notifier 的做法。它是独立工具,并非 Anthropic 出品。它的命令行工具 ccn 以 Claude Code hook 的形式运行在 Mac、Windows 和 Linux 上。当 Claude Code 要请求权限而你不在键盘前时,请求会发到你配对的 iPhone 或 Android 手机上,你可以选择允许一次、本会话内允许或拒绝。它只会收到 Claude Code 本来就要显示的 prompt,所以哪些操作需要询问仍由模式和你的规则决定。在 auto 模式下请求会少一些;在 bypassPermissions 下则完全没有,不过“Claude 已完成”提醒和提问仍会送达。设置方法见手机审批指南,风险分析见在手机上审批安全吗?。

06常见问题

default 和 acceptEdits 有什么区别?

default 在每次编辑文件和执行 shell 命令前都会询问。acceptEdits 则允许在工作目录内直接编辑文件,以及运行 mkdir、mv、cp 等常见文件命令,无需询问。其他 shell 命令在两种模式下都会弹出 prompt。

--dangerously-skip-permissions 和 bypassPermissions 是一回事吗?

是的。这个 flag 等同于 --permission-mode bypassPermissions。Anthropic 建议只在隔离的容器或虚拟机中使用,最好断开网络。

怎样让 Claude Code 对某条命令不再请求权限?

在 prompt 上选择“Yes, and don't ask again”,或者在设置的 permissions.allow 下添加一条 allow 规则,例如 "Bash(npm test)"。这比切换整个模式更安全。

项目设置能把我切到 bypassPermissions 模式吗?

不能。写在 .claude/settings.json 或 .claude/settings.local.json 里的 bypassPermissions 和 auto 不会生效。它们只能通过用户设置、托管设置或命令行 flag 启用。

bypassPermissions 模式下 hook 还会运行吗?

会。hook 在所有模式下都会运行,即使在 bypassPermissions 下,拒绝工具调用的 PreToolUse hook 也能拦截它。PermissionRequest hook 只在有 prompt 需要回应时才运行,所以在 bypass 模式下很少触发。

Claude Code Notifier Claude Code 完成任务或需要你介入时,手机会收到 push,你可以直接在手机上批准、拒绝或回复。ccn 命令行工具在 Mac、Windows 和 Linux 上均可免费使用。
下载 iOS 版 下载 Android 版 安装 ccn

相关指南

  • 用 hook 应答权限请求(PermissionRequest)Claude Code 的 PermissionRequest hook 如何工作、如何在脚本中允许或拒绝,以及为什么权限规则往往是更好的选择。
  • 在手机上批准 Claude Code 权限请求Claude Code 的 PermissionRequest hook 可以返回 allow 或 deny。本文介绍如何在手机上回应权限提示,可以自己动手,也可以用 ccn。
  • 在手机上批准 Claude Code 的操作安全吗?Claude Code 远程批准的工作原理、可能出现的问题、哪些数据会离开你的电脑,以及保证安全的设置。
  • 让 Claude Code 跑着,人走开:一套工作流处理 Claude Code 长任务的实用流程:让电脑保持唤醒,减少不必要的 prompt,在手机上收到通知并直接回复。
claude-code-notifier

Claude Code Notifier 是一款独立的第三方应用,与 Anthropic, PBC 无关联,亦未获其认可或赞助。“Claude”和“Claude Code”是 Anthropic, PBC 的商标。

应用 iOS 应用 Android 应用 适用于 macOS、Windows 和 Linux 的 ccn 全部指南
法律信息 隐私政策 服务条款 其他语言 © 2026 touchtap。保留所有权利。 TouchTap Ltd 注册于英格兰和威尔士,公司编号 13942589。