惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

L
LangChain Blog
N
Netflix TechBlog - Medium
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
V
V2EX
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Blog — PlanetScale
Blog — PlanetScale
Microsoft Security Blog
Microsoft Security Blog
D
Docker
WordPress大学
WordPress大学
罗磊的独立博客
J
Java Code Geeks
博客园 - 【当耐特】
博客园 - 司徒正美
雷峰网
雷峰网
H
Help Net Security
酷 壳 – CoolShell
酷 壳 – CoolShell
Last Week in AI
Last Week in AI
宝玉的分享
宝玉的分享
Martin Fowler
Martin Fowler
T
Tailwind CSS Blog
Google DeepMind News
Google DeepMind News
M
MIT News - Artificial intelligence
Recent Announcements
Recent Announcements
B
Blog

博客园 - 郭慕荣

kkFileView 4.4.0 部署操作手册(Linux) Nginx 常用操作(你这个是编译安装的nginx,路径 /usr/local/nginx/) 初级会计实务【第二章 会计基础】全知识点 + 考点 + 核心重点标注 Mac电脑穿透映射外网访问- Cloudflare Quick Tunnel mac 电脑brew安装MySQL详解 AGENTS.md文件详解 彻底搞懂 Codex Skill 与插件:区别、试用、核心作用、项目落地全指南(程序员实战向) Codex Skill 和插件到底有什么区别?程序员如何在项目中落地使用 claudecode 配置防止配置文件泄露总结 Claude code分析外部文件总结 Claude code三种模式详解 hasCompletedOnboarding详解 Claudecode 有哪些常用的命令 claude.md文件详解 Docker部署zookeeper总结 Mac中git ssh的配置(GitLab) Java 类加载机制 面试题(一) 如何监控和调优JVM性能? jvm常用的参数有哪些? 怎么配置? hashmap 和currenthashmap 的原理?详解一下 aop在项目中使用的场景?怎么使用? Java dubbo spring springboot中的spi机制 spring中常见的两种代理模式 Redis的zset 面试汇总 drools 规则引擎在线化配置 springcloud中常用的注解详解 springcloud中网关gateway总结 spring是怎么解决循环依赖的? MySQL 死锁 怎么处理? 在写left join的时候 是大表在左侧 还是小表在左侧(二)
claude code 的setting文件详解
郭慕荣 · 2026-06-06 · via 博客园 - 郭慕荣

一、Claude Code settings 配置分级规则(全局 + 项目两级)

不是必须每个项目新建配置,分 2 级配置,优先级:项目本地 > 全局配置

  1. 全局配置(全 Mac 所有项目共用)
    路径:~/.claude/settings.json,所有 Java / 其他项目默认继承这份配置(模型、API、权限、读取规则统一生效)
  2. 项目级配置(仅当前项目生效,覆盖全局)
    在单个 Java 项目根目录新建文件夹 .claude/,下放:
  • settings.json:项目公共配置(可提交 Git)
  • settings.local.json:私有配置(API 密钥、私密配置,必须写入.gitignore 禁止提交代码仓库) 

✅ 优先级:

项目/.claude/settings.local.json > 项目/.claude/settings.json > ~/.claude/settings.json(全局)

二、配置能干两件核心事:① 指定大模型 ② 控制文件读取 / 操作权限

1. 模型配置:自定义默认使用 DeepSeek / 原生 Claude 任意模型

通过env环境变量字段固定模型;

2. 权限配置:allowed_paths / denied_paths 管控 AI 能读哪些代码、禁止访问配置 / 密钥文件

  • allowed_paths:白名单,AI 仅能读取配置目录内代码
  • denied_paths:黑名单,禁止读取 yml 密钥、配置文件、敏感资源

三、实战场景:中通财务 NC 会计引擎项目(finance-nc-accounting-engine)

需求:

  1. 全局默认用 deepseek-v4-flash 免费模型;
  2. 本财务项目单独指定付费 deepseek-v4-pro [1m];
  3. 限制 AI:只允许读取 src 业务代码,禁止读取 resources 下数据库密钥 yml、配置文件,禁止读取本地环境变量配置;
  4. API 密钥统一放在项目 settings.local.json(不上传 Git)

1、项目完整目录结构(Java Maven 多模块项目)

finance-nc-accounting-engine/           # 项目根目录
├── .claude/                            # 项目专属Claude配置文件夹
│   ├── settings.json                   # 项目通用配置(模型/读写白名单,可提交git)
│   └── settings.local.json              # 私有配置(API KEY,禁止提交git)
├── .gitignore                          # 配置忽略 .claude/settings.local.json
├── pom.xml                             # 父工程pom
├── finance-nc-accounting-engine-core/   # core核心模块
│   ├── pom.xml
│   └── src/main/
│       ├── java/com/zto/...            # Java业务代码(白名单:允许AI读取)
│       └── resources/                  # 黑名单:禁止读取数据库配置yml
│           ├── application.yml
│           ├── db-config.yml  # 含数据库账号密码,禁止AI访问
│           └── secret.properties
├── finance-nc-accounting-engine-task/   # 定时任务模块
│   ├── pom.xml
│   └── src/
└── README.md

.gitignore 补充配置(关键:避免密钥上传)

# Claude私有密钥配置,禁止提交
.claude/settings.local.json

2、文件 1:项目 /.claude/settings.json(通用配置,可提交 Git,指定模型 + 读写权限)

{
  "env": {
    "ANTHROPIC_BASE_URL": "https://api.deepseek.com/anthropic",
    // 当前项目强制使用 deepseek-v4-pro[1m],覆盖全局默认flash
    "ANTHROPIC_MODEL": "deepseek-v4-pro[1m]",
    "ANTHROPIC_DEFAULT_OPUS_MODEL": "deepseek-v4-pro[1m]",
    "ANTHROPIC_DEFAULT_SONNET_MODEL": "deepseek-v4-pro[1m]",
    "ANTHROPIC_DEFAULT_HAIKU_MODEL": "deepseek-v4-flash",
    "CLAUDE_CODE_SUBAGENT_MODEL": "deepseek-v4-flash",
    "CLAUDE_CODE_EFFORT_LEVEL": "max"
  },
  // 权限规则:白名单:AI仅能访问src源码目录
  "allowed_paths": [
    "./finance-nc-accounting-engine-core/src",
    "./finance-nc-accounting-engine-task/src"
  ],
  // 黑名单:禁止读取配置、密钥文件
  "denied_paths": [
    "**/resources/*.yml",
    "**/resources/*.properties",
    "**/*.env",
    "./.claude/settings.local.json"
  ],
  // 额外限制:禁止AI执行rm/删除类高危shell命令
  "denied_commands": ["rm", "rm -rf", "drop table"]
}

3、文件 2:项目 /.claude/settings.local.json(私有密钥,不上 Git)

{
  "env": {
    "ANTHROPIC_AUTH_TOKEN": "sk-f52e0xxxxxxxxxxxxgc42"
  }
}

4、全局配置~/.claude/settings.json(所有新项目默认配置) 

{
  "env": {
    "ANTHROPIC_BASE_URL": "https://api.deepseek.com/anthropic",
    // 全局默认免费flash模型,新项目没项目配置就用这个
    "ANTHROPIC_MODEL": "deepseek-v4-flash",
    "ANTHROPIC_DEFAULT_OPUS_MODEL": "deepseek-v4-flash",
    "ANTHROPIC_DEFAULT_SONNET_MODEL": "deepseek-v4-flash",
    "ANTHROPIC_DEFAULT_HAIKU_MODEL": "deepseek-v4-flash",
    "CLAUDE_CODE_SUBAGENT_MODEL": "deepseek-v4-flash"
  }
}

四、配置生效逻辑说明 

  1. 当前财务项目:优先读取项目/.claude/settings.json+local → 使用deepseek-v4-pro[1m]付费模型,AI 只能看 src 源码、碰不到 yml 密钥;
  2. 新建另一个全新 Java 项目(无项目.claude 文件夹):自动继承全局配置,默认deepseek-v4-flash免费模型;
  3. 如果新项目想换回 pro:在新项目根目录新建.claude/settings.json覆写模型参数即可。

五、权限效果验证

当你在项目执行:分析一下这个项目架构

  • ✅ AI 正常读取所有 src 下 Java 代码、Service、Mapper;
  • ❌ AI 无法读取resources/db-config.yml里数据库账号密码,无法查看密钥配置,规避隐私泄露;
  • ❌ AI 无法执行危险删除 shell 指令。

六、补充快捷操作 Mac 终端 

# 打开当前项目claude配置目录
open .claude
# 编辑全局配置
code ~/.claude/settings.json