Claude Code 配置文件 settings.json 详解(附示例)

浏览:2次阅读
没有评论

Claude Code 配置文件 主要是 settings.json:个人配置放 ~/.claude/settings.json,团队共享放项目里的 .claude/settings.json,个人项目覆盖放 .claude/settings.local.json。改完运行 /status 看是否加载,不生效优先查优先级和 JSON 语法。

Claude Code 配置文件 settings.json 详解(附示例)插图
图片来源:Claude Code Docs · Settings files and precedence

一、Claude Code settings.json 在哪里

官方文档把配置分成四个作用域,安装 Claude Code 时 不会自动创建 任何配置文件,需要自己建,或者让 Claude Code 在你第一次改设置时自动写入。

作用域 文件位置 对谁生效 适合放什么
用户 ~/.claude/settings.json 你本机的所有项目 主题、默认模型、个人权限规则
项目共享 .claude/settings.json 该项目所有成员(提交到 git) 团队权限、hooks、插件、项目环境变量
项目本地 .claude/settings.local.json 只有你,只在这个项目 个人覆盖、测试配置
托管 managed-settings.json 等 组织统一下发 安全策略、合规要求

Windows 下 ~/.claude 指的是 %USERPROFILE%\.claude,例如 C:\Users\ 你的用户名 \.claude\settings.json。如果想把配置目录放到别处,可以设置环境变量 CLAUDE_CONFIG_DIR。还没装好的话,先看 Claude Code Windows 安装教程(2026)。

另外还有一个 ~/.claude.json,它由 Claude Code 自己维护,存账号信息、MCP 服务器配置和项目信任状态,一般不需要手动改。MCP 的添加方法见 Claude Code 配置 MCP 教程。

二、三种修改配置的方法

方法 1:用 /config 菜单

在 Claude Code 里输入 /config,在 Config 标签页改主题、编辑模式、详细输出等常用选项,大多数会自动保存到 ~/.claude/settings.json。也可以直接写成 /config verbose=true 这种形式。注意 /config 只在终端界面可用,VS Code 面板和桌面版需要直接改文件。

方法 2:直接编辑 settings.json

用编辑器打开对应作用域的文件,按需写入键值。下面是官方示例:允许免确认运行 lint 和测试命令,同时禁止读取 .env:

{
  "$schema": "https://json.schemastore.org/claude-code-settings.json",
  "permissions": {
    "allow": ["Bash(npm run lint)",
      "Bash(npm run test *)"
    ],
    "deny": ["Read(./.env)",
      "Read(./.env.*)"
    ]
  }
}

第一行 $schema 指向官方发布的 JSON Schema,在 VS Code、Cursor 里能获得字段自动补全和校验。

方法 3:只对本次会话生效

不想改文件时,可以启动时用 --settings 传 JSON:

claude --settings '{"model":"claude-opus-5-5"}'

也可以用单项参数(如 --model)或对应环境变量(如 ANTHROPIC_MODEL)。这些都只影响当前会话。

Claude Code 配置文件 settings.json 详解(附示例)插图1
图片来源:Claude Code Docs · All settings

三、常用字段与示例

model:默认模型

{"model": "claude-sonnet-5"}

设置后每个新会话默认使用该模型,会话中仍可用 /model 切换。优先级:--model > ANTHROPIC_MODEL > 配置文件里的 model。

permissions:权限规则与默认模式

permissions.allow、ask、deny 分别是放行、询问、拒绝规则。permissions.defaultMode 决定新会话的权限模式,可选 default、acceptEdits、plan、auto、dontAsk、bypassPermissions。其中 auto 和 bypassPermissions 写在项目或本地配置里不生效,只能写在 ~/.claude/settings.json。

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

env:环境变量(接入第三方 API 常用)

env 可以给每次会话注入环境变量。接 Anthropic 兼容网关时,常用 ANTHROPIC_BASE_URL(改 API 地址)和 ANTHROPIC_AUTH_TOKEN(会作为 Authorization: Bearer 发送):

{
  "env": {
    "ANTHROPIC_BASE_URL": "https:// 你的网关地址",
    "ANTHROPIC_AUTH_TOKEN": "你的密钥",
    "DISABLE_AUTO_COMPACT": "1"
  }
}

官方提醒:env 里的值以明文保存,并会传给 Claude Code 启动的所有子进程;需要轮换的凭据更推荐用 apiKeyHelper,让一条命令动态输出密钥。接 DeepSeek 的完整写法可参考 Claude Code 接入 DeepSeek V4 教程。

四、配置优先级:谁覆盖谁

同一个键在多处设置时,从高到低依次是:

  1. 托管配置(组织下发,个人无法覆盖)
  2. 命令行 --settings(仅本次会话)
  3. 项目本地 .claude/settings.local.json
  4. 项目共享 .claude/settings.json
  5. 用户 ~/.claude/settings.json

注意两点:一是 permissions.allow 这类列表会 合并 而不是覆盖;二是环境变量不在这个层级里,比如在 shell 里 export 的 ANTHROPIC_MODEL 会压过任何文件里的 model。

Claude Code 配置文件 settings.json 详解(附示例)插图2
图片来源:anthropics/claude-code GitHub

五、常见报错与解决

1. 启动时提示 Settings Error

配置文件是严格 JSON,不能写 // 注释,也不能有结尾多余逗号。出现 Settings Error 时可以选择让 Claude 帮你修、退出或跳过坏配置继续。只是个别条目有问题时会显示 Settings Warning,坏条目被跳过,其余照常生效。之后运行 claude doctor 查看具体错误。

2. settings.json 改了不生效

  • 先运行 /status,看 Setting sources 一行里有没有你改的那个文件。
  • 检查更高层级是否设置了同一个键(项目配置、--settings、托管配置)。
  • 检查是否有环境变量或启动参数覆盖,例如 ANTHROPIC_MODEL、--model。
  • model、effortLevel 只在启动时读取,改完要新开会话,或在会话里用 /model、/effort。

3. 提交到仓库的配置队友那边不生效

部分键只能写在用户或托管配置中;另外 permissions.allow、多数 env 值要等队友 信任该文件夹 后才会生效,而 deny 和 ask 规则立即生效。

4. 用 /model 选的模型下次又变回去了

/model 会把选择写进 ~/.claude/settings.json。如果该文件只读、或被其他工具生成覆盖,改动只在当前会话有效。另外在 /model 选择器里按 s 切换的模型本来就不会保存为默认。

FAQ

settings.local.json 需要手动加进 .gitignore 吗?

如果是 Claude Code 自动创建的,它会把 **/.claude/settings.local.json 写进全局 git 排除文件;如果是你手动创建的,需要自己加进 .gitignore。

改完配置要重启吗?

大多数不用。Claude Code 会监听配置文件并自动重载,包括 permissions、hooks、apiKeyHelper;但 model、effortLevel 只在启动时读取。

信息来源

正文完
 0