Seedance 2.5 is live — 30-second cinematic video with native audio & real-person references
如何停止 Claude Code 权限提示
2026/07/27

如何停止 Claude Code 权限提示

Claude Code 有六种权限模式。自动模式使用分类器审查,规则可以解决重复提示的命令,特殊配置文件会静默忽略自动模式。

Claude Code 在执行任何操作前都会先问。这是其设计,在第一次探索不熟悉的代码库时这是正确的默认行为。但经过二十个权限提示后,这种安全感就变成了摩擦。

有一个官方答案,它不是一个关闭检查的开关。Claude Code 提供六种权限模式,其中一种模式的设计就是为了解决这个问题——它将操作通过一个独立的分类器而非通过你来处理。

TL;DR

  • 六种模式default(界面标签为Manual),acceptEditsplanautodontAskbypassPermissions[1]
  • auto 是长任务的首选。分类器审查每个操作;你不再看到常规提示[1]
  • Shift+Tab 可在会话中切换模式。 状态栏显示当前活跃的模式[1]
  • 权限规则是精准的修复方案。 预批准那些你持续批准的特定命令,使用 allow,让其他所有命令保持提示[2]
  • 一个常见陷阱:在 .claude/settings.json 中设置 defaultMode: "auto" 会被忽略。它必须在 ~/.claude/settings.json[1]
  • bypassPermissions 不是正确答案,除非在隔离容器或虚拟机中[1]

六种模式

Claude Code 权限模式从最多审查到最少审查排列:Manual、acceptEdits、plan、有分类器审查每个操作的 auto、dontAsk 和仅限容器的 bypassPermissions

模式无需询问就运行的内容最适合用于
defaultManual仅读取入门、敏感工作
acceptEdits读取加文件编辑你主动观察的编辑会话
plan读取,加自动模式可用时分类器批准的命令更改前的探索
auto一切,带后台安全检查长任务、减少提示疲劳
dontAsk仅预批准的工具锁定的 CI 和脚本
bypassPermissions一切隔离容器和虚拟机

来源是 Anthropic 的权限模式文档[1]。注意命名:审查每个操作的模式在 CLI 和扩展中标记为 Manual,但其配置值保持 default。在 v2.1.200 及更高版本中,manual 作为别名在任何输入值的地方都有效。

在会话中切换

Shift+TabdefaultacceptEditsplan 中循环。状态栏显示活跃模式:⏸ manual mode on⏵⏵ accept edits on⏵⏵ auto mode on⏵⏵ don't ask on⏵⏵ bypass permissions on[1]

默认情况下不是所有模式都在此循环中:

  • auto 在你的账户满足其要求后出现,切换到它不会要求确认。
  • bypassPermissions 仅当你使用 --permission-mode bypassPermissions--dangerously-skip-permissions--allow-dangerously-skip-permissions 启动或将其设置为 defaultMode 时才出现。
  • dontAsk 永远不会出现。使用 --permission-mode dontAsk 设置它。

启动时,将其作为标志传递:

claude --permission-mode auto

自动模式及其实际检查内容

自动模式不是移除审查。它将审查从你的键盘转移到一个独立的分类器模型,该模型检查操作是否运行,阻止任何超出你要求范围的内容、针对无法识别的基础设施或看起来由 Claude 读取的恶意内容驱动的内容[1]

显式 ask 规则仍然会强制提示,因此任何你刻意标记为需要确认的内容会继续确认。

默认阻止的内容[1]

  • 下载和执行代码,如 curl | bash
  • 向外部端点发送敏感数据
  • 生产部署和迁移
  • 云存储的批量删除
  • 授予 IAM 或仓库权限
  • 强制推送
  • git reset --hardgit checkout -- .git restore .git clean -fdgit stash dropgit stash clear
  • git commit --amend 当 HEAD 提交不是在此会话中创建的,或已被推送
  • terraform destroypulumi destroycdk destroyterragrunt destroy
  • 不可逆地删除会话前存在的文件
  • 提交或推送会向仓库外发送密钥的更改,或扩大部署暴露的内容

分类器信任你的工作目录和会话启动时配置的 git 远程。在会话中使用 git remote addgit remote set-url 添加或重新指向的远程受信任[1]

Anthropic 明确说明了限制:自动模式减少提示但不保证安全。它适用于你信任一般方向的任务,不是敏感操作审查的替代[1]

要求

只有当这些条件都满足时才能使用自动模式[1]

  • 计划:所有计划。
  • 所有者:在 Team 和 Enterprise 上,所有者必须先在 Claude Code 管理设置中启用。管理员也可以使用托管设置中的 permissions.disableAutoMode: "disable" 强制关闭。
  • 模型:在 Anthropic API 上,Claude Opus 4.6 或更高版本、Sonnet 4.6 或更高版本或 Fable 5。在 Bedrock、Google Cloud 的 Agent Platform 和 Microsoft Foundry 上,仅 Sonnet 5、Opus 4.7 或更高版本和 Fable 5。Sonnet 4.5、Opus 4.5、Haiku 和 claude-3 等较旧模型在任何地方都不支持。
  • 提供商:默认在 Anthropic API、AWS 上的 Claude Platform、Bedrock、Agent Platform、Foundry 和已登录的 Claude 应用网关会话中可用。

如果 Claude Code 报告自动模式不可用,则这些条件之一未得到满足。这不是暂时性中断。

设置陷阱

这会浪费真实时间。如果你设置 defaultMode: "auto" 而会话仍以 Manual 启动且没有错误,该设置可能在错误的文件中。

从 v2.1.142 起,Claude Code 忽略 .claude/settings.json.claude/settings.local.json 中的 auto,所以一个仓库无法为自己授予自动模式[1]。它必须在你的用户设置中:

// ~/.claude/settings.json
{
  "permissions": {
    "defaultMode": "auto"
  }
}

设置文件热重载,所以 permissions 更改在不重启的情况下应用到运行中的会话[2]

精准的修复方案:权限规则

模式设置基线。规则是当同三个命令持续提示而其他一切都正常时的办法。

// ~/.claude/settings.json
{
  "permissions": {
    "allow": ["Bash(git diff *)", "Bash(npm test *)"],
    "ask":   ["Bash(git push *)"],
    "deny":  ["Read(./.env)", "Read(./secrets/**)", "Bash(curl *)"]
  }
}

这些的三个行为值得了解[2]

规则跨作用域合并而非覆盖。 与大多数设置不同,项目值替换用户值,权限规则来自用户、项目、本地和托管设置都保持有效。

deny 和显式 ask 在每种模式中应用,包括 bypassPermissions。这使 deny 成为秘钥的正确位置:Read(./.env) 无论某人切换到什么模式都有效。

本地 allow 规则跳过工作区信任步骤。 你自己的 .claude/settings.local.json 中的规则无需信任提示即可生效,该提示需要 .claude/settings.json allow 规则,因为那个文件是你的而不是仓库的。如果仓库提交文件,信任再次应用。

为什么不直接绕过一切

bypassPermissions 存在且其名字就说明了它的作用。Anthropic 将其限制在隔离容器和虚拟机,原因是结构性而非谨慎的。

受保护路径的写入在任何模式中都不会自动批准,除了 bypassPermissions[1]。这些保护防止仓库状态和 Claude 自己的配置被意外损坏。在一台持有你关心内容的机器上将其关闭会移除阻止坏命令和你工作树之间的最后一道防线。

如果提示疲劳是问题,auto 可以在保持分类器参与的同时解决。仅当整个环境可丢弃时才使用 bypassPermissions

选择设置

在不熟悉的仓库中工作:保持 Manual。提示正在做它们的工作。

你主动观察的编辑会话:通过 Shift+Tab 使用 acceptEdits。文件编辑不再提示,命令仍然提示。

长期自主任务auto,如果你想每次会话都这样,将其设置为 ~/.claude/settings.json 中的 defaultMode

同一命令提示二十次:为该命令设置 allow 规则,而非模式更改。

CI 或脚本dontAsk 加显式允许列表,所以任何未列出的东西会失败而不是等待。

可丢弃的容器bypassPermissions,且仅在那里。

FAQ

我如何停止 Claude Code 要求权限?

切换到自动模式,它通过分类器而非提示你来路由操作。按 Shift+Tab 在会话中循环到它,使用 claude --permission-mode auto 启动,或在 ~/.claude/settings.json 中设置 defaultMode: "auto"[1]

为什么我的 defaultMode: "auto" 被忽略?

因为它在 .claude/settings.json.claude/settings.local.json 中。Claude Code 从这些文件中忽略 auto 以防止仓库为自己授予模式。将其移动到 ~/.claude/settings.json[1]

自动模式意味着没有安全检查吗?

不。独立的分类器审查每个操作并阻止升级、无法识别的基础设施、破坏性 git 操作、生产部署等。显式 ask 规则仍然提示[1]

为什么自动模式对我不可用?

某个要求未得满足:计划、Team 或 Enterprise 中由所有者启用、支持的模型或支持的提供商。这不是暂时性失败[1]

我如何停止一个特定的命令提示?

为它添加 allow 规则而不是更改模式:"allow": ["Bash(npm test *)"][2]

Manual 和 default 有什么区别?

没有区别。default 是配置值;Manual 是 CLI 和扩展中显示的标签。在 v2.1.200 及更高版本上,manual 作为别名有效[1]

我能阻止 Claude 读取 .env 吗?

是的,使用 deny 规则。否定规则在每种模式中应用,包括 bypassPermissions[2]

bypassPermissions 在我的笔记本电脑上安全吗?

不。它限于隔离容器和虚拟机,它是唯一将受保护路径的写入自动批准的模式[1]

将模式与风险相匹配

当提示堆积时,本能是寻找关闭检查的开关。那个开关存在,它是针对你关心的机器的错误。

更好的框架是 Claude Code 给你三个独立的拨盘:设置基线的模式、在两个方向上切割特定工具的规则和审查模式会放过的分类器。长任务上的提示疲劳是模式问题,由 auto 解决。同一命令询问二十次是规则问题,由一个 allow 行解决。知道如何停止 Claude Code 要求权限主要是知道你实际有哪个问题。

References

  1. Anthropic. Claude Code permission modes — the six modes, auto mode requirements, and what the classifier blocks. Retrieved July 2026 from docs.claude.com/en/docs/claude-code/permission-modes
  2. Anthropic. Claude Code settings — permission rules, scopes, and precedence. Retrieved July 2026 from docs.claude.com/en/docs/claude-code/settings

Further reading