Claude Code settings.json 位置在哪?2026 年 Mac、Windows、Linux 路径和优先级一次说清
Claude Code settings.json 位置,按 Anthropic 官方文档 2026 年 10 月 27 日核对:四种配置文件在各系统的路径、为什么新装后找不到、多个文件冲突时谁优先、怎么用 /status 确认加载了什么。

Claude Code settings.json 位置先说结论:个人配置文件在 ~/.claude/settings.json,Windows 上是 %USERPROFILE%\.claude\settings.json。每个项目还可以有 .claude/settings.json(团队共用)和 .claude/settings.local.json(只对你生效)。公司还可以下发一份托管配置,优先级比上面几个都高。找不到文件也正常,因为装好 Claude Code 时不会自动生成任何配置文件。下面的路径和规则我都在 2026 年 10 月 27 日(北京时间)对照 Anthropic 的官方设置文档核对过。
简短回答
Claude Code settings.json 位置按文件分四种:
- 用户配置:
~/.claude/settings.json。对你在这台电脑上的所有项目生效。 - 项目共享配置:项目里的
.claude/settings.json。提交到 git,队友就能拿到。 - 项目本地配置:
.claude/settings.local.json。只对你、只对这个项目生效,不进 git。 - 托管配置:系统目录里的
managed-settings.json,由公司管理员部署,你自己的文件改不掉它。 - 不是配置文件:
~/.claude.json。这是 Claude Code 自己写的,里面有账号信息、MCP 服务器配置和各项目状态,一般不用手动改。

各系统的 Claude Code settings.json 位置
用户配置放在你主目录下的 .claude 文件夹里。macOS 和 Linux 上是 ~/.claude/settings.json。Windows 上 ~/.claude 指的是 %USERPROFILE%\.claude,所以完整路径是 %USERPROFILE%\.claude\settings.json。
这个位置可以改。设置环境变量 CLAUDE_CONFIG_DIR 后,Claude Code 会把配置、会话历史和插件都放到那个目录。
项目里的两个文件和操作系统无关,都在项目根目录的 .claude 文件夹里:.claude/settings.json 和 .claude/settings.local.json。
托管配置文件放在哪
只有托管配置的 Claude Code settings.json 位置会随系统变。按托管设置文档:
- macOS:
/Library/Application Support/ClaudeCode/managed-settings.json - Linux 和 WSL:
/etc/claude-code/managed-settings.json - Windows:
C:\Program Files\ClaudeCode\managed-settings.json
旧的 Windows 路径 C:\ProgramData\ClaudeCode\managed-settings.json 已经不再读取。同一目录下还可以放一个 managed-settings.d/ 文件夹,Claude Code 先读 managed-settings.json,再按字母顺序合并文件夹里的每个 .json 文件。托管配置也可能来自 MDM 策略或 claude.ai 管理后台,这种情况下你的磁盘上根本没有文件。
为什么找不到这个文件
新装的 Claude Code 没有任何配置文件,它会在你用的过程中创建:
- 第一次在
/config里改了某个存到用户配置的选项(比如主题),它会写出~/.claude/settings.json。 - 第一次在权限提示里选「Yes, and don’t ask again」,它会写出
.claude/settings.local.json。 - 少数
/config选项,比如 Show tips,会存到本地配置文件里。
你也可以自己新建,Claude Code settings.json 位置不会因为是手动创建就变。注意必须是严格的 JSON:写了 // 注释或多一个逗号都算语法错误,下次启动时会提示 Settings Error。
官方文档里的例子如下。它允许 Claude Code 不经询问就跑 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 这一行能让 VS Code、Cursor 等支持 JSON schema 的编辑器给出自动补全和校验。文档也提醒,schema 可能跟不上最新版本,新出的键报警告不一定是你写错了。
git 仓库里的本地配置
本地配置文件的 Claude Code settings.json 位置和 git 有关。如果你在 git 仓库的子目录里启动 Claude Code,它会在仓库根目录读写这个文件;在 worktree 里则用主检出目录的根。这是 v2.1.211 起的行为,之前文件放在你启动时所在的目录。
有几个例外:不在 git 仓库里、仓库根目录就是你的主目录、在 Windows 上,或者仓库根目录不属于当前用户时,文件仍然和 .claude/settings.json 放在一起。
Claude Code 第一次写这个文件时,会把 **/.claude/settings.local.json 加进你的全局 git 忽略列表。如果是你手动建的,要自己加到 .gitignore。
共享的 .claude/settings.json 不一样,它是从你启动会话的目录读取的。想用提交在仓库根目录的那份,就要在根目录启动 Claude Code。

多个文件冲突时谁说了算
同一个键在多个地方都设置了,Claude Code 用优先级最高的那个,从高到低:
- 托管配置:公司下发,下面任何一层都改不掉。
- 命令行:
claude --settings传入的文件或 JSON,只对这一次会话有效。 - 项目本地配置:
.claude/settings.local.json。 - 项目共享配置:
.claude/settings.json。 - 用户配置:
~/.claude/settings.json。
像 permissions.allow 这样的列表会合并,不会互相覆盖,所以每个文件都能加规则。环境变量不在这个层级里。比如在 shell 里 export 的 ANTHROPIC_MODEL,会盖过任何文件里的 model 键。配置文件里的 env 块则按上面的层级走。
有些键会故意忽略某些文件。permissions.defaultMode 设成 auto 或 bypassPermissions 时,写在项目或本地配置里不生效,要写在用户配置或托管配置里,或者单次会话用 --permission-mode。
怎么确认加载了哪些文件
知道了 Claude Code settings.json 位置,还要确认它真的读到了。在 Claude Code 里运行 /status,Setting sources 那一行会列出这次会话加载的每个配置文件,有托管配置也会写出来源。它不会告诉你每个键来自哪个文件。想看被拒绝的条目,运行 claude doctor。
大部分修改不用重启就会生效,因为 Claude Code 会监视这些文件。少数键只在启动时读一次,包括 model 和 effortLevel,会话中途要用 /model 和 /effort 来改。
还有一点:云端会话不读你的用户配置和本地配置,只看仓库里提交的文件和服务器下发的托管配置。

该改哪个文件
- 个人默认值,比如主题、编辑模式、你自己的权限规则:用户配置。
- 团队的权限、hooks 和插件:项目共享配置,提交到仓库。
- 某个项目里的个人例外:本地配置。
- 公司策略:托管配置,由管理员部署。
如果你想通过 env 块让 Claude Code 接其他模型,可以看 Claude Code 接 DeepSeek、Kimi、GLM。配置文件里的 hooks 和插件,在 Claude Code Skills 和 MCP 区别里讲过。思考等级的设置见 ultrathink 怎么用。
没能确认的地方
- WSL 下的用户目录。 文档给了 WSL 的托管配置路径,但没写清 WSL 里的用户配置用哪个主目录,我不乱猜。
- schema 覆盖范围。 Anthropic 说 JSON schema 可能落后于新版本,具体缺了哪些键我没有测。
Claude Code settings.json 位置的规则会随版本变,v2.1.211 那次改动就是例子。如果和你看到的不一致,先跑 /status,再看官方页面。