settings.json
| 文件 | 路径 |
|---|---|
| 用户级 | ~/.claude/settings.json |
| 项目级 | <repo>/.claude/settings.json |
| 本地覆盖 | <repo>/.claude/settings.local.json |
常用字段(示例)
Section titled “常用字段(示例)”{ "model": "sonnet", "permissions": { "allow": [ "Read", "Grep", "Glob", "Bash(npm test:*)", "Bash(pnpm lint:*)" ], "deny": [ "Bash(rm:*)", "Bash(git push --force:*)" ] }}怎么读这个例子?
Section titled “怎么读这个例子?”model控制默认模型。官方文档会随版本更新可用模型与别名。permissions.allow里可以放工具名,也可以放更细的模式,例如只允许某类 Bash 命令。permissions.deny用来明确阻止高风险操作。deny 的语义应尽量具体,避免误伤正常开发。
权限规则不是越宽松越高级。好的配置应该减少重复确认,同时保留关键操作的人工判断。
与 CLAUDE.md 的关系
Section titled “与 CLAUDE.md 的关系”- settings.json:机器可读的配置(权限、模型等)
- CLAUDE.md:给模型的自然语言项目说明
两者互补,不要混在同一文件里堆长文。
修改前检查清单
Section titled “修改前检查清单”- 这个设置应该给所有团队成员共享,还是只属于我?
- 是否包含本机路径、Token、账号信息等不该提交的内容?
- 是否把 Bash 放得太宽?
- 是否有对应的
deny规则兜住危险命令? - 改完后能否用
/config或一次低风险任务验证效果?