是什么

auto-mode-config 是 auto mode 的配置参考,通过 autoMode settings 块告知分类器(classifier)哪些 repo、bucket 和域名是可信的,从而让 Claude Code 在无需权限提示的情况下安全执行常规内部操作。

核心机制

Auto Mode 工作原理 Auto mode 让每个工具调用经过分类器审查,阻止不可逆、破坏性或指向外部环境的操作。默认只信任工作目录和当前 repo 的 configured remotes,其他目标(公司 SCM、云 bucket)需要显式配置。

配置读取位置

Scope文件用途
个人~/.claude/settings.json个人可信基础设施
项目(个人).claude/settings.local.json项目级可信配置,gitignore
组织Managed settings全员分发的可信基础设施
自动化--settings 或 Agent SDK单次调用覆盖

注意:分类器不读取 .claude/settings.json(共享项目设置),防止 repo 注入自己的 allow 规则。

定义可信基础设施

{
  "autoMode": {
    "environment": [
      "$defaults",
      "Source control: github.example.com/acme-corp and all repos under it",
      "Trusted cloud buckets: s3://acme-build-artifacts, gs://acme-ml-datasets",
      "Trusted internal domains: *.corp.example.com",
      "Key services: Jenkins at ci.example.com, Artifactory at artifacts.example.com"
    ]
  }
}

$defaults 占位符保留默认的工作 repo 和 remotes,自定义条目可放在前后。

覆盖 block/allow 规则

  • autoMode.allow:添加分类器默认会阻止的操作的例外
  • autoMode.soft_deny:添加软阻止规则(可被 allow 覆盖)
  • autoMode.hard_deny:添加硬阻止规则(不可被覆盖)

检查有效配置

claude auto-mode show    # 显示当前有效配置
claude auto-mode denials # 查看最近的拒绝记录

关键细节

  • Auto mode 可用计划:Max、Team、Enterprise、API(Anthropic API);不可用:Pro、Bedrock、Vertex、Foundry
  • 分类器是权限系统之后的第二道门,permissions.deny 在分类器之前执行且不可覆盖
  • 开发者添加的 allow 条目可以覆盖组织的 soft_deny,但不能覆盖 hard_deny
  • CLAUDE.md 中的指令同时影响 Claude 和分类器(如”never force push”)

与其他概念的关联

实践要点

  • environment 条目用自然语言描述,写法类似向新工程师介绍基础设施
  • 先用 claude auto-mode denials 查看被拒绝的操作,再针对性添加 environment 条目
  • 组织级配置放 managed settings,个人可信基础设施放 ~/.claude/settings.json