
掌握 settings.json 的所有参数,让 Claude Code 完全按你的方式工作。
Claude Code 的 settings.json 是整个应用的配置中枢。它存在于三个层级,优先级从低到高:
| 层级 | 路径 | 提交到 Git | 作用 |
|---|---|---|---|
| 用户级 | ~/.claude/settings.json | — | 全局个人偏好 |
| 项目级(团队) | .claude/settings.json | ✅ | 团队共享规则 |
| 项目级(个人) | .claude/settings.local.json | ❌ | 个人本地覆盖 |
三者支持完全相同的配置结构,高优先级会覆盖低优先级的同名配置。
{
"permissions": {
"allow": [
"Read(*)",
"Bash(npm test)",
"Bash(git *)",
"Edit(src/**)"
],
"deny": [
"Bash(rm -rf *)",
"Edit(//.ssh/**)"
],
"ask": [
"Bash(npm publish:*)",
"WebFetch(domain:*.internal.com)"
]
}
}
规则语法:工具名(内容匹配模式)
* — 匹配任意内容前缀:* — 前缀匹配domain:example.com — 域名匹配(用于 WebFetch)| 工具名 | 说明 |
|---|---|
Bash | Shell 命令执行 |
Read | 文件读取 |
Edit | 文件编辑 |
Write | 文件写入 |
WebFetch | 网页抓取 |
{
"permissions": {
"defaultMode": "normal"
}
}
可选值:"normal" | "bypassPermissions" | "plan" | "auto"
{
"permissions": {
"additionalDirectories": [
"/path/to/another/project",
"/shared/libraries"
]
}
}
{
"sandbox": {
"enabled": true,
"failIfUnavailable": false,
"autoAllowBashIfSandboxed": true,
"allowUnsandboxedCommands": true
}
}
| 参数 | 默认值 | 说明 |
|---|---|---|
enabled | false | 启用沙箱 |
failIfUnavailable | false | 沙箱不可用时是否报错退出 |
autoAllowBashIfSandboxed | true | 沙箱内命令自动跳过权限询问 |
allowUnsandboxedCommands | true | 是否允许命令跳过沙箱 |
{
"sandbox": {
"network": {
"allowedDomains": ["npmjs.org", "github.com", "*.amazonaws.com"],
"allowLocalBinding": true,
"httpProxyPort": 8080
}
}
}
{
"sandbox": {
"filesystem": {
"allowWrite": ["~/.cargo", "/tmp/build"],
"denyWrite": ["/etc", "/usr"],
"denyRead": ["~/.ssh", "~/.aws"],
"allowRead": ["~/.aws/config"]
}
}
}
注意:
permissions中的Edit(path)和Read(path)规则会自动同步到沙箱的文件系统限制中。
{
"sandbox": {
"excludedCommands": ["docker", "bazel", "podman"]
}
}
这些命令不会在沙箱中运行(通常因为它们自身有隔离机制)。
{
"model": "claude-opus-4-6"
}
{
"availableModels": ["opus", "sonnet", "claude-sonnet-4-6"]
}
支持三种匹配方式:
"opus" 匹配所有 opus 版本"opus-4-5" 仅匹配该版本{
"modelOverrides": {
"claude-opus-4-6": "arn:aws:bedrock:us-east-1:123456:inference-profile/xxx"
}
}
将 Anthropic 模型 ID 映射到 Bedrock ARN 或其他提供商 ID。
{
"alwaysThinkingEnabled": true,
"effortLevel": "high",
"fastMode": false
}
{
"env": {
"NODE_ENV": "development",
"CUSTOM_API_KEY": "sk-xxx",
"PATH": "/usr/local/bin:$PATH"
}
}
所有在 Claude Code session 中执行的命令都会继承这些环境变量。
如果需要为 Claude Code CLI 调整 Anthropic API 的连接方式,可以直接在 settings.json 的 env 中声明相关变量:
ANTHROPIC_API_KEY:常规 API Key,适用于官方 API 或完全兼容的代理网关。ANTHROPIC_AUTH_TOKEN:用于需要 OAuth/控制台会话注入的场景,例如企业内部控制台登录态下发短期 Token。ANTHROPIC_BASE_URL:自定义接口地址。典型用途包括通过可代理的内网出口访问官方 API,或在一、二方/预发环境之间切换。同时,settings.json 顶层的 model 字段可设定 CLI 的默认模型;若命令行未显式传入 --model,则会优先读取这里的值;再没有时才回退至 ANTHROPIC_MODEL 环境变量。也就是说,CLI 参数 > model 字段 > ANTHROPIC_MODEL,确保团队可以在配置层面固定默认模型,而仍允许个人临时覆盖。
示例:
{
"model": "claude-sonnet-4.2",
"env": {
"ANTHROPIC_API_KEY": "${ANTHROPIC_API_KEY}",
"ANTHROPIC_BASE_URL": "https://proxy.internal.example.com",
"ANTHROPIC_AUTH_TOKEN": "${ANTHROPIC_AUTH_TOKEN}"
}
}
提示:涉及密钥/Token 的值建议放在
.claude/settings.local.json或使用系统环境变量占位,防止误提交。
安全注意事项:
ANTHROPIC_BASE_URL,避免出现不兼容行为。ANTHROPIC_AUTH_TOKEN、ANTHROPIC_API_KEY 属于敏感凭证,务必存储在本地未提交的配置或凭证管理服务中。除了 ANTHROPIC_MODEL 以外,CLI 还支持通过 ANTHROPIC_DEFAULT_OPUS_MODEL、ANTHROPIC_DEFAULT_SONNET_MODEL、ANTHROPIC_DEFAULT_HAIKU_MODEL 为「自动/计划模式」的家族默认值设定不同的模型。当且仅当用户没有在命令中显式选择模型时,这些变量才会生效:
claude --model > ANTHROPIC_MODEL > settings.json 顶层 model 字段 > ANTHROPIC_DEFAULT_* 环境变量。
因此,如果既未传 --model,也没有配置 ANTHROPIC_MODEL 与 model,CLI 会根据对应家族的 ANTHROPIC_DEFAULT_* 值在 src/utils/model/model.ts 中自动回退到你定义的默认模型。配合 ANTHROPIC_DEFAULT_*_MODEL_NAME 与 ANTHROPIC_DEFAULT_*_MODEL_DESCRIPTION,src/utils/model/modelOptions.ts 中的模型选择器和 Planner 视图也会展示你自定义的文案,方便团队成员区分官方模型与代理模型。
典型场景包括:
claude-opus-* 映射到代理的模型 ID;注意:这些字符串必须与代理或提供商实际支持的模型 ID 完全一致;若代理不支持部分工具(代码执行、检索等),请配合
capabilityOverrides或相关配置禁用对应功能,避免运行期异常。
推荐将此类覆盖放在 .claude/settings.local.json 或其他未提交的配置文件中,示例:
{
"env": {
"ANTHROPIC_DEFAULT_OPUS_MODEL": "bedrock:arn:aws:bedrock:us-east-1:123:inference-profile/opus-proxy",
"ANTHROPIC_DEFAULT_OPUS_MODEL_NAME": "企业 Opus 代理",
"ANTHROPIC_DEFAULT_OPUS_MODEL_DESCRIPTION": "通过内网代理访问,具备代码解释器",
"ANTHROPIC_DEFAULT_SONNET_MODEL": "gpt-sonnet-lite",
"ANTHROPIC_DEFAULT_SONNET_MODEL_NAME": "GPT Sonnet",
"ANTHROPIC_DEFAULT_HAIKU_MODEL": "local-haiku-fast"
}
}
这样,未显式指定模型的自动模式(如 Planner、Auto QA)都会回退到新的默认值,同时 UI 也能展示符合团队语境的命名与说明。
{
"apiKeyHelper": "/path/to/auth-script.sh",
"awsCredentialExport": "/path/to/aws-creds.sh",
"gcpAuthRefresh": "gcloud auth application-default login",
"forceLoginMethod": "console"
}
apiKeyHelper 脚本需要输出认证信息到 stdout。
{
"attribution": {
"commit": "Generated with Claude Code\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
"pr": "This PR was created with assistance from Claude Code."
},
"includeGitInstructions": true
}
设为空字符串可完全隐藏归属信息。
{
"language": "chinese",
"outputStyle": "concise",
"syntaxHighlightingDisabled": false,
"prefersReducedMotion": false,
"showThinkingSummaries": true,
"promptSuggestionEnabled": true,
"spinnerTipsEnabled": true,
"spinnerVerbs": {
"mode": "append",
"verbs": ["思考中", "分析中", "推理中"]
}
}
{
"autoMemoryEnabled": true,
"autoMemoryDirectory": "~/.claude/my-project-memory/"
}
{
"cleanupPeriodDays": 30
}
设为 0 将完全禁用 session 持久化。
{
"autoUpdatesChannel": "stable"
}
{
"companyAnnouncements": [
"请使用内部模型端点,不要使用外部 API Key",
"本周五进行系统维护,请及时保存进度"
]
}
启动时会随机显示其中一条。
settings.json:权限规则、hooks、沙箱配置等settings.local.json:模型选择、语言、UI 配置等~/.claude/settings.json:适用于所有项目的通用配置apiKeyHelper:不要直接在配置文件中存储密钥