Claude Code 配置文件位置:每个文件在 macOS、Linux、Windows 上的路径(2026)
Claude Code 最主要的配置文件是 ~/.claude/settings.json,也就是对你所有项目生效的用户级设置。每个项目还可以有 .claude/settings.json(团队共享、提交进 git)和 .claude/settings.local.json(个人使用、不提交)。此外,Claude Code 会用 ~/.claude.json 保存登录状态和 MCP 服务器,企业还可以在系统目录下部署 managed-settings.json。在 Windows 上,~ 指的是 %USERPROFILE%。
下面把所有配置文件位置集中列在一处,路径因操作系统而不同的也分别列出。所有路径均出自 Claude Code 官方文档 code.claude.com(settings、.claude 目录参考、memory、MCP 与认证相关页面),核实日期 2026-09-26。
Claude Code 配置文件位置一览
|
文件 |
位置 |
存什么 |
要不要提交 git |
|---|---|---|---|
|
用户设置 |
|
对所有项目生效的默认值:模型、权限、hooks、 |
不涉及,它不在仓库里 |
|
共享项目设置 |
项目内 |
团队的权限规则、hooks、插件、项目需要的环境变量 |
要 |
|
本地项目设置 |
项目内 |
你个人在单个项目里的覆盖项 |
不要 |
|
托管设置 |
系统目录下的 |
企业策略,用户文件无法覆盖 |
由 IT 部署 |
|
全局配置 |
|
登录会话、user 与 local 作用域的 MCP 服务器、各项目状态、 |
不要 |
|
项目 MCP 服务器 |
项目根目录 |
团队共享的 MCP 服务器 |
要 |
|
指令文件 |
|
每次会话都会加载的上下文与约定 |
项目级的要 |
|
登录凭据 |
macOS 钥匙串,或 |
你的登录信息 |
永远不要 |
表中 ~/.claude 指家目录下的 .claude 文件夹,不带 ~ 的 .claude 指项目内的那个文件夹。
settings 配置文件:用户、项目、本地、托管四层
大多数人找的「配置文件」其实就是 settings.json,而它一共有四处。
- 用户级:
~/.claude/settings.json。 对你在这台机器上的所有项目生效。你第一次在/config里改一个存到用户设置的选项(比如主题)时,Claude Code 会创建它;用/model选默认模型时也会写到这里。 - 共享项目级:
.claude/settings.json。 放在仓库里,设计上就是要提交的,这样每个克隆仓库的人都拿到同一套权限和 hooks。 - 本地项目级:
.claude/settings.local.json。 你在单个项目里的个人覆盖。如果是 Claude Code 自己写的这个文件(比如你在权限弹窗里选了「Yes, and don't ask again」),它会把该文件加入你的全局 git 排除列表;如果是你手动创建的,需要自己加进.gitignore。 - 托管级:
managed-settings.json。 由管理员部署。基于文件的部署位置随操作系统而不同:
|
操作系统 |
托管设置路径 |
|---|---|
|
macOS |
|
|
Linux 与 WSL |
|
|
Windows |
|
官方文档特别说明,Claude Code 不再读取旧的 Windows 路径 C:\ProgramData\ClaudeCode\managed-settings.json。托管策略也可能通过 MDM 或服务端托管设置下发,这种情况下磁盘上可能根本没有这个文件。
同一个键在多个文件里都设置时,优先级从高到低是:托管设置、命令行参数、本地项目设置、共享项目设置、用户设置。各文件是按键合并的,而不是整份替换,细节见 Claude Code 配置:分几层、怎么合并。
~/.claude.json:全局配置文件
~/.claude.json 位于家目录下,和 ~/.claude 文件夹并列,而不在它里面。它由 Claude Code 自己写入,官方文档说你不需要手动编辑。里面保存:
- 你的登录会话;
- user 与 local 作用域的 MCP 服务器配置;
- 各项目的状态,比如信任决定;
/config替你写入的全局配置键。
如果这个文件无法解析,Claude Code 会把损坏的版本复制到 ~/.claude/backups/,并询问你是手动修复还是重置。最近的备份也保存在同一个文件夹里,所以改坏了也能恢复。
MCP 服务器配置存在哪里
MCP 服务器不在 settings.json 里配置。存放位置取决于你添加时选的作用域:
- project 作用域: 项目根目录的
.mcp.json,通过版本控制与所有人共享。 - local 作用域(
claude mcp add的默认值)和 user 作用域: 存在~/.claude.json里。 - 托管: 与
managed-settings.json同一系统目录下的managed-mcp.json。
提交进仓库的 .mcp.json 里如果带着可用的 token,就等于 token 泄露了,所以凭据要放在 local 或 user 作用域。
CLAUDE.md 等指令文件的位置
指令文件与 settings 是两套东西。memory 文档列出的位置如下:
|
作用域 |
位置 |
|---|---|
|
用户 |
|
|
项目 |
|
|
托管,macOS |
|
|
托管,Linux 与 WSL |
|
|
托管,Windows |
|
Claude Code 把登录凭据存在哪
按认证文档:
- macOS: 加密的 macOS 钥匙串。如果钥匙串拒绝写入(比如在 SSH 会话里处于锁定状态),Claude Code 会退而写到
~/.claude/.credentials.json,文件权限0600。 - Linux:
~/.claude/.credentials.json,文件权限0600。 - Windows:
%USERPROFILE%\.claude\.credentials.json,沿用用户目录的访问控制,默认只有你的账户能读。
这些文件通过 /login 和 /logout 管理。如果你要把请求路由到自定义端点,官方文档建议用 ANTHROPIC_BASE_URL 环境变量,而不是去改凭据文件,见 Claude Code 代理配置。
~/.claude 下的其他文件
.claude 目录参考还列出了以下文件,它们可以放在 ~/.claude/(全局)或项目的 .claude/ 文件夹里:
skills/<name>/SKILL.md与commands/*.md:用/name调用的提示agents/*.md:子代理定义output-styles/*.md:回答风格指令rules/*.md:按主题划分的指令keybindings.json与themes/*.json:仅全局projects/<project>/memory/:自动记忆,仅全局
会话记录等应用数据也保存在 ~/.claude 下,都是明文。
用 CLAUDE_CONFIG_DIR 换配置目录
设置环境变量 CLAUDE_CONFIG_DIR,可以把家目录下的这些文件放到别处。之后 Claude Code 会把设置、会话历史和插件都存到那个目录,.credentials.json 也会跟着放在该目录下。项目级和本地级 settings 文件不能设置这个变量,所以要在启动 Claude Code 的 shell 里 export。
怎么确认实际生效的是哪个文件
知道路径只是一半,另一半是确认你写的值确实在用。
- 在 Claude Code 里运行
/status,其中Setting sources一行会列出对你生效的托管来源(如果有的话)。 - settings 文件是严格 JSON。多一个尾逗号或写了
//注释,文件就无效,Claude Code 会在下次启动时报 Settings Error。 - Claude Code 会在大多数 settings 修改后自动重新加载,不必重启;但有少数键只在会话开始时读取。拿不准就开一个新会话。
- 非交互的
-p运行似乎忽略了某个设置时,运行claude doctor看它丢掉了什么。
常见问题
Windows 上 Claude Code 的配置文件在哪?
用户设置在 %USERPROFILE%\.claude\settings.json,项目文件在项目的 .claude 文件夹里。托管设置在 C:\Program Files\ClaudeCode\managed-settings.json。
Claude Code 的 MCP 服务器配置存在哪个文件?
project 作用域的服务器在项目根目录的 .mcp.json;local 与 user 作用域的服务器存在 ~/.claude.json,不在 settings.json 里。
Claude Code 有没有 config.json?
官方文件参考里没有列出这个文件。实际的配置文件是 settings.json(用户级与共享项目级)、settings.local.json、由企业部署的 managed-settings.json,以及全局的 ~/.claude.json。
为什么改了 settings.json 却没生效?
通常是同一个键在优先级更高的文件里也设置了,比如本地项目设置或托管设置;或者文件不是合法的 JSON。用 /status 看实际生效的来源,别只重读你改的那个文件。
把网关配置写进正确的文件
如果你通过中转端点使用 Claude Code,base URL 和凭据应写进 ~/.claude/settings.json 的 env 块(对所有项目生效),或 .claude/settings.local.json(只对一个项目生效),不要写进会提交的 .claude/settings.json。ROIBest AI 提供 Anthropic 兼容与 OpenAI 兼容端点,可以按这种方式接入;换端点之后哪些能力会变化,见 Claude Code 换用其他模型。