Claude Code settings.json 配置详解:文件位置、优先级与常用示例

Claude Code 的 settings.json 有几个、放在哪、谁覆盖谁?本文讲清四级配置文件与优先级、列表合并规则、怎么确认生效,并给出个人与团队两份可复制的配置示例和常用字段。

NNathaniel bigo··原创首发·AI 辅助撰写
12 分钟读完
资料核对于 2026-10-07 · 依据官方文档与公开资料整理 Plus 账号
本文根据 Claude Code 官方文档《Settings files and precedence》《All settings》《Example settings files》整理,核对日期 2026-10-07。设置项很多(官方参考页列了上百个),本文只讲最常用的部分。

适用于谁

  • 想让 Claude Code 默认用某个模型、默认用中文回复、少弹几次确认框的人;
  • 团队里想统一权限、Hooks、插件配置的人;
  • 改了 settings.json 却不生效,搞不清是哪个文件覆盖了它的人。

结论先说

  1. Claude Code 读 4 个设置文件:用户级 ~/.claude/settings.json、项目共享 .claude/settings.json、项目本地 .claude/settings.local.json,以及组织下发的托管设置(managed)。
  2. 同一个字段出现在多处时,优先级从高到低:托管设置 → 命令行参数 → 项目本地 → 项目共享 → 用户级。
  3. 列表类字段会合并,比如 permissions.allow 在几个文件里的规则会合在一起,而不是互相覆盖。
  4. 设置文件是严格 JSON:不能写 // 注释,不能有多余的逗号,否则启动时报 Settings Error。
  5. 改完在会话里运行 /status,看「Setting sources」一行确认读到了哪些文件;claude doctor 会列出被拒绝的条目。

一、四个设置文件分别管什么

范围文件影响谁适合放
用户~/.claude/settings.json你在本机的所有项目个人偏好:主题、编辑模式、默认模型、自己的权限规则
项目共享.claude/settings.json这个项目的所有人(提交到 git 后)团队的权限、Hooks、插件、项目需要的环境变量
项目本地.claude/settings.local.json只有你、只在这个项目对团队配置的个人覆盖、分享前的试验
托管managed-settings.json 等组织部署到的所有人安全策略、合规要求,个人无法覆盖

几点补充:

  • ~/.claude 指你用户目录下的 .claude 文件夹;Windows 上是 %USERPROFILE%\.claude。不带 ~ 的 .claude 指项目里的文件夹。
  • 安装后不会自动生成任何设置文件。你在 /config 里改主题等选项时,Claude Code 会创建 ~/.claude/settings.json;你在权限确认框里选「Yes, and don't ask again」时,会创建 .claude/settings.local.json,并自动把它加入 git 的全局忽略。如果你手动创建 local 文件,要自己加进 .gitignore。
  • 还有一个 ~/.claude.json,是 Claude Code 自己写的:登录状态、MCP 服务器配置、各项目的信任记录等,一般不需要手动改。

二、优先级:到底听谁的

从高到低:

  1. 托管设置:组织下发,个人的任何设置都覆盖不了(少数安全相关字段允许更严格的个人值);
  2. 命令行参数:本次启动时传的,比如 --model、--settings;
  3. 项目本地 .claude/settings.local.json;
  4. 项目共享 .claude/settings.json;
  5. 用户级 ~/.claude/settings.json。

举个官方的例子:你在用户级关掉了转圈时的小提示("spinnerTipsEnabled": false),但团队的 .claude/settings.json 写了 true,那么在这个项目里提示会重新出现,其他项目不会——因为项目共享高于用户级。想在这个项目里也关掉,就在 .claude/settings.local.json 里再写一次 false。

环境变量不在这个层级里,每个变量和设置字段的关系单独规定:例如在 shell 里导出的 ANTHROPIC_MODEL 会盖过任何文件里的 model。而写在设置文件 env 块里的变量,按文件优先级处理,并且会覆盖 shell 里同名的变量。

列表合并:permissions.allow、permissions.deny 这类列表在多个文件里会合并。所以项目里 allow 了、你个人 deny 了,结果是被拒绝——deny 永远先判定。

三、三种修改方式

1. /config 菜单:会话里运行 /config,在 Config 标签里改主题、编辑模式、详细输出等个人选项;也可以一句话直接改:/config theme=dark。注意它只列了一小部分常用项,不是 settings.json 的完整视图;VS Code 聊天面板和桌面版不提供 /config。

2. 直接编辑文件:开头加一行 $schema,VS Code、Cursor 等编辑器就能自动补全和校验:

json
{
  "$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 可能落后于最新版本,新字段出现校验警告不一定代表写错。

3. 只对本次会话生效:

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

--settings 也可以传一个 JSON 文件路径。某些字段有专门的参数,如 --model、--effort。

什么时候生效:Claude Code 会监视设置文件,permissions、hooks 等大多数改动保存后立即生效,不用重启。例外是 model、effortLevel 这类只在启动时读一次的字段,会话中途请用 /model、/effort 切换。

四、可复制的配置示例

个人配置(~/.claude/settings.json)

改写自官方示例,并加了两个国内用户常用的字段:

json
{
  "$schema": "https://json.schemastore.org/claude-code-settings.json",
  "model": "claude-sonnet-5",
  "language": "chinese",
  "theme": "light-daltonized",
  "spinnerTipsEnabled": false,
  "preferredNotifChannel": "terminal_bell",
  "permissions": {
    "allow": [
      "Bash(git diff *)",
      "Bash(git status)"
    ]
  },
  "autoUpdatesChannel": "stable",
  "cleanupPeriodDays": 30
}
字段作用
model新会话默认使用的模型
language让 Claude 默认用这种语言回复;官方说明这个值会原样作为指令交给 Claude,不做校验,也会影响语音输入语言和自动生成的会话标题
theme配色,light-daltonized 是色弱友好的浅色主题
spinnerTipsEnabled是否显示转圈时的小提示
preferredNotifChannel通知方式,terminal_bell 为终端响铃
permissions权限规则,写法详见本站《Claude Code 权限模式详解:auto、手动、plan、bypass 与权限规则配置》
autoUpdatesChannel更新通道:latest(默认,最新版)或 stable(一般晚一周左右,跳过有严重问题的版本)
cleanupPeriodDays本地会话记录保留天数,默认 30 天,过期的会话在 /resume 里就找不到了

团队共享配置(.claude/settings.json,提交到仓库)

json
{
  "permissions": {
    "allow": ["Bash(npm run *)"],
    "ask": ["Bash(git push *)"],
    "deny": [
      "Read(./.env)",
      "Read(./.env.*)",
      "Read(./secrets/**)"
    ]
  },
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Bash",
        "hooks": [
          { "type": "command", "command": "${CLAUDE_PROJECT_DIR}/.claude/hooks/block-rm.sh" }
        ]
      }
    ]
  },
  "env": {
    "MCP_TIMEOUT": "60000"
  },
  "plansDirectory": "./plans"
}

意思是:npm 脚本直接跑,推送前确认,密钥文件不让读;每条 shell 命令执行前先过一遍仓库里的检查脚本(Hook 写法详见本站《Claude Code Hooks 怎么用:配置示例(完成通知、自动格式化、拦截危险命令)》);把 MCP 启动超时放宽到 60 秒;plan 模式生成的方案保存到 ./plans。

提交团队配置前,官方提醒的几件事:

  • 云端会话也会读它(云端是从仓库克隆开始的);
  • allow 规则要等每个人「信任这个文件夹」后才生效,deny 和 ask 规则则始终生效;
  • 遥测相关的环境变量写在项目文件里会被忽略,要放到托管设置或个人设置里;
  • 权限规则按命令和路径的字面匹配,Bash(git push *) 匹配不到 git -C . push,需要更严格就配合沙箱。

五、其他常用字段速查

字段作用
env给每个会话及其子进程设置环境变量
hooksHooks 配置
statusLine自定义底部状态栏
outputStyle默认输出风格
alwaysThinkingEnabled是否默认开启扩展思考
attribution自定义 Claude 提交时加的署名;设为 false 可全部隐藏(v2.1.281 起)
enabledPlugins / extraKnownMarketplaces启用的插件 / 额外的插件市场
agent让整个会话以某个子代理身份运行
disableAllHooks一键停用所有 Hooks

attribution 取代了旧的 includeCoAuthoredBy,后者从 v2.0.62 起已弃用。完整字段请查官方《All settings》参考页,每个字段都写明了可放在哪些文件、默认值和对应的命令行参数 / 环境变量。

常见问题

Q:启动时弹出「Settings Error」?

文件里 JSON 写错了(最常见是加了注释或多了逗号),或者某个值不被接受。对话框里可以让 Claude 帮你修、退出,或忽略这个文件继续。只是个别条目有问题时显示「Settings Warning」,那几条会被跳过,其他照常生效。之后用 claude doctor 看具体错误。

Q:我设置的值被忽略了?

按优先级排查:是不是项目文件或托管设置里也设了同一个字段;是不是 shell 里导出了对应的环境变量;还有些字段在项目文件里不生效,比如 defaultMode: "auto" 只认用户级文件。

Q:/model 切换的模型下次还在吗?

/model 会把选择保存为新会话的默认值;在选择器里按 s 则只对当前会话生效,不保存。

Q:MCP 服务器也写在 settings.json 里吗?

不是。MCP 服务器保存在 ~/.claude.json(个人)和项目根目录的 .mcp.json(团队),详见本站《Claude Code MCP 配置教程:claude mcp add、配置文件位置与常用 MCP》。

Q:~/.claude.json 坏了怎么办?

Claude Code 会把坏文件备份到 ~/.claude/backups/ 并询问是手动修还是重置。它每次写入前都会保存备份,可以从 ~/.claude/backups/ 里最近的 .claude.json.backup.<时间戳> 恢复。

参考资料

  • Settings files and precedence(官方):https://code.claude.com/docs/en/settings
  • All settings(官方参考):https://code.claude.com/docs/en/settings-reference
  • Example settings files(官方):https://code.claude.com/docs/en/settings-example
  • Environment variables(官方):https://code.claude.com/docs/en/env-vars
需要开通或续费?Claude Pro 充值 →

Nathaniel 的更多内容

  1. 01

    ChatGPT 个人资料怎么改:头像、名字、用户名在哪设置,个人主页怎么公开和关闭

    想换 ChatGPT 的头像、改显示的名字,或者看到别人分享的 chatgpt.com/u/ 开头的主页链接?本文按官方帮助中心讲清个人资料页在哪打开、能改哪些信息、名字改了不生效怎么办,个人主页上会显示什么、怎么公开和收回,以及公司工作区里的不同规则。

    ChatGPT0
  2. 02

    ChatGPT Space 是什么、怎么用:页面(Pages)怎么创建和编辑、多人协作与分享权限

    ChatGPT 侧边栏多了个 Space,文件库却不见了?Space 是放页面、文件和成果的新地方,页面可以让 ChatGPT 起草、多人一起编辑。本文按官方帮助中心讲清谁能用、Space 和项目 / 文件库的关系、怎么创建和整理页面、分享后别人能看到什么,以及手机上的限制。

    ChatGPT0
  3. 03

    ChatGPT 录音模式(Record)怎么用:录会议自动出纪要,按钮不见了、没有声音怎么办

    ChatGPT 的录音功能(Record)可以在 Mac 上边录边转写,结束后自动生成会议纪要。本文按官方帮助中心讲清谁能用、怎么开始和结束、单次能录多久、录音会不会被保存和训练,以及 Record 按钮不见、权限报错、找不到纪要时的处理办法。

    ChatGPT0
  4. 04

    ChatGPT 购物研究怎么用:从选商品到拿到购买指南,结果准不准、和普通购物结果的区别

    ChatGPT 的购物研究(shopping research)能帮你比较商品、列出取舍,最后给一份个性化的购买指南。本文按官方帮助中心讲清现在从哪里启动、过程中怎么调整、指南里有什么、价格和库存为什么可能不准,以及虚拟试穿、收藏商品这些相关功能。

    ChatGPT0
  5. 05

    ChatGPT 群聊功能还能用吗:2026 年 7 月起停止新建,旧群聊怎么办、用什么替代

    想找 ChatGPT 的群聊(群组对话)入口却找不到?这个功能是 2025 年底的一次试点,官方已从 2026 年 7 月 9 日起停止新建和加入。本文按官方帮助中心讲清时间线、已有群聊会怎样、历史记录还在不在,以及现在多人协作可以改用的三种官方功能。

    ChatGPT0
  6. 06

    ChatGPT 深色模式怎么开:夜间模式、主题颜色、对比度与字体大小在哪设置

    想把 ChatGPT 换成深色(夜间)模式、改掉蓝色的消息气泡,或者把字调大?本文按官方帮助中心讲清网页、Windows、iPhone、安卓各自的入口,外观、对比度、强调色、文字大小四个设置分别管什么、哪些会跨设备同步,以及「为什么突然变蓝了」等常见问题。

    ChatGPT0

同产品的其他教程

  1. 01

    Claude Code 网页版(claude.ai/code)怎么用:在云端跑任务

    Claude Code 网页版(云端会话)不用在电脑上装任何东西:连接 GitHub、选仓库、交代任务,Claude 在云端虚拟机里改代码并推送分支。本文讲哪些套餐能用、怎么开始、审阅 diff、建 PR、和本地会话互相转移。

    Claude0
  2. 02

    Claude Desktop MCP 配置教程:claude_desktop_config.json 在哪、怎么写、不生效怎么查

    Claude 桌面版怎么手动配置本地 MCP 服务器?按 MCP 官方教程讲清 Edit Config 入口、claude_desktop_config.json 在 macOS 和 Windows 上的路径、完整 JSON 写法、重启后在哪看工具,以及不生效时的日志位置和五步排查。

    Claude0
  3. 03

    Claude 语音模式怎么用:语音对话、语音输入与常见问题

    Claude 语音模式(Voice mode)在网页、桌面、手机上怎么开,免提和按住说话怎么切,声音和语言怎么改,和语音输入(听写)的区别,以及没反应、断断续续怎么排查。

    Claude0
  4. 04

    MCP Server 开发入门(Python):用官方 SDK 写第一个 MCP 服务器并调试

    想自己写一个 MCP 服务器?按 MCP 官方 Python SDK 文档讲清安装命令、十几行代码定义一个工具和一个资源、用 mcp dev 打开 Inspector 调试、切换到 Streamable HTTP 运行,以及 v2 把 FastMCP 改名为 MCPServer 后旧教程要改的地方。

    Claude其他 AI 工具0
  5. 05

    用 AI 写简历与模拟面试:对照岗位改简历、STAR 法整理经历、语音模拟面试的流程

    AI 写简历、AI 模拟面试怎么做才有用?给出五步流程:整理经历素材库、对照岗位描述找差距、用 STAR 法改写要点、生成针对性的面试题、用语音模式做模拟面试并复盘;附可复制提示词,并提醒不能让 AI 编造经历、简历上的个人信息怎么保护。

    ChatGPTClaude0
  6. 06

    Claude Code VS Code 插件使用教程:安装、登录与常用操作

    在 VS Code(及 Cursor 等)里用 Claude Code:扩展安装、登录、@ 引用文件和选中代码、审阅改动、切换模型与权限模式、快捷键、和命令行版的区别,以及图标不见、没反应等常见问题。

    Claude0

0 条评论

登录 后参与评论

还没有评论,来抢沙发~