直接答案
从配置边界出发解释 settings.json,而不是堆砌容易随版本变化的字段清单。
这篇内容解决什么问题
帮助个人和团队建立可审查、可调试的 Claude Code 配置方式。
先按共享范围选择设置文件
Claude Code 配置不是单一文件。用户设置适用于本机所有项目,项目设置可以提交给团队,本地项目设置只属于当前开发者,组织还可以下发托管策略。
把字段放在最小必要作用域:个人主题不应进入仓库,团队权限基线不应只存在于某位成员的用户目录,凭据也不应进入共享项目文件。
~/.claude/settings.json:用户全局设置。.claude/settings.json:可提交的团队项目设置。.claude/settings.local.json:项目本地覆盖,应保持不提交。- 托管设置:由组织管理员强制分发。
从最小有效 JSON 开始
手工编辑 settings.json 时保持标准 JSON,不使用注释、尾逗号或重复键。每次只增加一组配置,保存后运行诊断,便于定位哪一项造成解析或行为变化。
下面的用户级示例只设置稳定更新通道和非敏感环境变量。真实 gateway token 不应直接出现在共享示例中。
{
"autoUpdatesChannel": "stable",
"env": {
"EDITOR": "code --wait"
}
}把确定性的权限边界写入配置
项目可以通过 allow、ask 和 deny 规则描述常用命令边界。deny 应用于明确禁止访问的敏感文件或危险动作,allow 只覆盖团队反复验证过的低风险命令。
权限规则不能替代系统沙箱。文件读取、网络访问和命令执行应同时考虑权限模式与操作系统级隔离。
{
"permissions": {
"allow": ["Bash(pnpm test *)", "Bash(pnpm lint)"],
"deny": [
"Read(./.env)", "Edit(./.env)",
"Read(./secrets/**)", "Edit(./secrets/**)"
]
}
}理解优先级与不可覆盖的托管策略
同一字段可能同时来自托管、命令行、项目本地、项目共享和用户配置。排查“我改了但没生效”时,必须检查最终解析结果,而不是只盯着当前文件。
组织托管设置用于强制安全与合规要求,低层级文件不能绕过。教程应明确这是策略边界,不应提供规避方法。
用内置命令检查最终生效状态
claude doctor 检查设置文件格式和安装状态;会话内 /status 展示认证与 base URL;/context 可以看到 CLAUDE.md 等上下文来源。MCP 与 Hooks 分别使用 /mcp 和 /hooks 检查。
调试配置时先备份文件,然后逐项缩小。不要一边修改用户设置、一边修改项目设置和 shell 环境变量。
claude doctor
claude --debug-file /tmp/claude-settings-debug.log让团队配置可审查、可演进
提交 .claude/settings.json 时像审查代码一样审查权限与 Hooks;项目级 MCP 服务通常在仓库根目录 .mcp.json 中维护,也应单独审查来源、命令和凭据边界。
经常变化的说明不要硬编码进 CLAUDE.md 或 settings;可复用工作流放到 Skills,强制执行动作放到 Hooks,外部工具连接放到 MCP。
- 不提交 token、个人路径和个人偏好。
- 权限放宽必须说明具体命令和风险。
- 升级 CLI 后重新运行 doctor 和核心工作流。
- 删除已经由工具默认正确处理的冗余配置。
官方来源与核验范围
本文以公开官方文档为事实依据;命令和配置可能随客户端版本变化,执行前请同时核对对应来源。
查看技术核验方法