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

一、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)。这些都只影响当前会话。

三、常用字段与示例
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 教程。
四、配置优先级:谁覆盖谁
同一个键在多处设置时,从高到低依次是:
- 托管配置(组织下发,个人无法覆盖)
- 命令行
--settings(仅本次会话) - 项目本地
.claude/settings.local.json - 项目共享
.claude/settings.json - 用户
~/.claude/settings.json
注意两点:一是 permissions.allow 这类列表会 合并 而不是覆盖;二是环境变量不在这个层级里,比如在 shell 里 export 的 ANTHROPIC_MODEL 会压过任何文件里的 model。

五、常见报错与解决
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 只在启动时读取。