附录 B:settings.json 配置项完整参考
本附录是第 13 章所涉及的全部 settings.json 配置项的速查参考,包含一张完整配置表以及四套可直接使用的 JSON 配置示例。
B.1 配置项完整参考表
| 配置键 | 类型 | 默认值 | 层级 | 说明 |
|---|---|---|---|---|
model | string | "claude-sonnet-4-6" | global/project | 默认模型。支持完整模型 ID(如 "claude-sonnet-4-6")、别名("haiku" / "sonnet" / "opus"),配合环境变量可映射到第三方模型 |
theme | string | "dark" | global | 界面主题。可选值:"dark" / "light" / "system"。仅影响 CLI,VSCode 扩展跟随 VSCode 主题 |
autoCompact | boolean | true | global | 当上下文接近模型上限时是否自动触发 /compact 压缩。false 时由用户手动执行压缩 |
autoCompactTokenLimit | number | 300000 | global | 触发自动压缩的 token 阈值。使用大上下文窗口的模型(如 DeepSeek V4 1M)时可调高至 500000 或更高 |
permissions.allow | string[] | [] | global/project | 权限白名单。匹配的操作无需确认直接执行。支持通配符(如 "Bash(git:*)")。deny 优先级高于 allow |
permissions.deny | string[] | [] | global/project | 权限黑名单。匹配的操作完全禁止执行,即使同时出现在 allow 列表中。用于封禁不可逆危险操作 |
hooks | object | {} | global/project | 事件钩子配置。支持的事件:PreToolUse / PostToolUse / SessionStart / Stop。每个事件可配置多个 { matcher, command } 规则 |
env | object | {} | global/project/local | 为 Claude Code 会话注入环境变量。常用变量:ANTHROPIC_AUTH_TOKEN、ANTHROPIC_BASE_URL、ANTHROPIC_DEFAULT_*_MODEL 等。密钥应放在 settings.local.json 中 |
plugins | string[] | [] | global/project | 启用的插件列表。插件安装后自动添加。示例:["web-search", "web-fetch", "code-review"] |
mcpServers | object | {} | global/project | MCP 服务器配置。每个服务器通过 command + args 启动子进程,为 Claude Code 提供外部工具和数据源 |
enableAllProjectMcpServers | boolean | false | project | 是否自动启用项目中配置的所有 MCP 服务器。安全考量:默认关闭,避免克隆恶意项目后自动启动未知进程 |
keybindings | object | {} | global | 自定义 CLI 键盘快捷键。可配置键位:submit / newline / interrupt 等。VSCode 扩展的快捷键在 VSCode 的 keybindings.json 中配置 |
sandbox | object | {} | global | 沙箱配置。控制文件系统和网络访问边界。包含 enabled、autoAllowBashIfSandboxed、network.allowedDomains / network.deniedDomains。日常开发通常不需要 |
层级说明:
global表示可在~/.claude/settings.json中设置;project表示可在.claude/settings.json中设置;local表示可在.claude/settings.local.json中设置。
B.2 权限规则速查语法
权限规则使用 工具名(子命令:标志:参数) 格式,支持通配符 * 匹配任意内容。
| 规则示例 | 匹配范围 |
|---|---|
Bash(git:status) | 精确匹配 git status |
Bash(git:*) | 所有 git 子命令 |
Bash(git:push:--force:*) | 所有 force push 操作 |
Bash(pnpm:*) | 所有 pnpm 命令 |
Bash(ls:*) | ls 及所有参数组合 |
Bash(*:*) | 所有 Bash 命令(极宽,谨慎使用) |
Bash(rm:-rf:*) | 所有 rm -rf 操作 |
Bash(sudo:*) | 所有 sudo 提权操作 |
WebSearch | 允许网络搜索 |
WebFetch | 允许获取网页内容 |
Write | 允许写入文件 |
Edit | 允许编辑文件 |
B.3 完整 JSON 配置示例
B.3.1 初学者安全配置
适用场景:使用 Claude Code 第 1-2 周。严格权限,每一步操作需确认,最大化安全保障。
~/.claude/settings.json:
{
"model": "claude-sonnet-4-6",
"theme": "dark",
"autoCompact": true,
"permissions": {
"allow": [
"Bash(git:status)",
"Bash(git:diff)",
"Bash(git:log)",
"WebSearch",
"WebFetch"
],
"deny": [
"Bash(rm:-rf:*)",
"Bash(sudo:*)",
"Bash(git:push:--force:*)",
"Bash(git:reset:--hard:*)",
"Bash(git:clean:-fd:*)",
"Bash(git:branch:-D:*)",
"Bash(chmod:*)",
"Bash(curl:*|sh)",
"Bash(wget:*|sh)"
]
}
}配套 VSCode 设置(.vscode/settings.json):
{
"claudeCode.preferredLocation": "sidebar",
"claudeCode.enableNewConversationShortcut": true,
"claudeCode.useCtrlEnterToSend": true,
"claudeCode.initialPermissionMode": "askBeforeEdit"
}特点:Claude 只能读取 Git 状态和搜索网络,任何文件修改和命令执行都需要你手动确认。
B.3.2 日常开发配置
适用场景:使用 Claude Code 一个月以上。Auto 模式,平衡效率与安全。
~/.claude/settings.json:
{
"model": "sonnet",
"theme": "dark",
"autoCompact": true,
"permissions": {
"allow": [
"Bash(git:*)",
"Bash(pnpm:*)",
"Bash(npm:*)",
"Bash(node:*)",
"Bash(ls:*)",
"Bash(cat:*)",
"Bash(which:*)",
"Bash(mkdir:*)",
"Bash(cp:*)",
"Bash(mv:*)",
"WebSearch",
"WebFetch"
],
"deny": [
"Bash(rm:-rf:*)",
"Bash(sudo:*)",
"Bash(git:push:--force:*)",
"Bash(git:reset:--hard:*)",
"Bash(git:clean:-fd:*)",
"Bash(git:branch:-D:*)",
"Bash(curl:*-o-*|sh)",
"Bash(wget:*|sh)"
]
},
"hooks": {
"PostToolUse": [
{
"matcher": "Write|Edit",
"command": "echo '文件已修改:${CLAUDE_TOOL_FILE_PATH}'"
}
]
}
}配套 VSCode 设置(.vscode/settings.json):
{
"claudeCode.preferredLocation": "sidebar",
"claudeCode.enableNewConversationShortcut": true,
"claudeCode.useCtrlEnterToSend": true,
"claudeCode.initialPermissionMode": "autoMode"
}特点:Claude 可执行大部分日常开发命令(Git 全操作、包管理、文件浏览),危险操作被禁止,文件修改后自动通知。
B.3.3 DeepSeek 专用配置
适用场景:使用 DeepSeek 作为模型后端,优化成本和上下文利用率。将 Haiku 映射到 Flash(日常),Sonnet/Opus 映射到 Pro(复杂任务)。
~/.claude/settings.json:
{
"model": "haiku",
"theme": "dark",
"autoCompact": true,
"autoCompactTokenLimit": 500000,
"env": {
"ANTHROPIC_BASE_URL": "https://api.deepseek.com/anthropic",
"ANTHROPIC_DEFAULT_HAIKU_MODEL": "deepseek-v4-flash",
"ANTHROPIC_DEFAULT_OPUS_MODEL": "deepseek-v4-pro[1m]",
"ANTHROPIC_DEFAULT_SONNET_MODEL": "deepseek-v4-flash[1M]",
"ANTHROPIC_DEFAULT_SONNET_MODEL_NAME": "deepseek-v4-flash",
"ANTHROPIC_MODEL": "deepseek-v4-flash",
"API_TIMEOUT_MS": "3000000",
"CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": "1",
"CLAUDE_CODE_DISABLE_TELEMETRY": "1"
},
"permissions": {
"allow": [
"Bash(git:*)",
"Bash(pnpm:*)",
"Bash(npm:*)",
"Bash(node:*)",
"Bash(ls:*)",
"Bash(cat:*)",
"WebSearch",
"WebFetch"
],
"deny": [
"Bash(rm:-rf:*)",
"Bash(sudo:*)",
"Bash(git:push:--force:*)",
"Bash(git:reset:--hard:*)"
]
}
}配套 .claude/settings.local.json(放密钥,不提交 Git):
{
"env": {
"ANTHROPIC_AUTH_TOKEN": "sk-你的-deepseek-api-key"
}
}特点:
autoCompactTokenLimit调高到500000,充分利用 DeepSeek V4 的 1M 上下文窗口API_TIMEOUT_MS设为3000000(50 分钟),适应 DeepSeek 高 Effort 下的长响应时间- 禁用遥测和非必要流量(使用第三方 API 时这些流量没有意义)
- 默认模型为
"haiku"(映射到 Flash),需要强推理时通过/菜单切换到"opus"(映射到 Pro)
B.3.4 双模型配置
适用场景:同时配置 Anthropic 官方和 DeepSeek,日常开发用 DeepSeek(省钱),复杂任务切回 Anthropic Claude Opus(保质量)。
~/.claude/settings.json:
{
"model": "haiku",
"theme": "dark",
"autoCompact": true,
"permissions": {
"allow": [
"Bash(git:*)",
"Bash(pnpm:*)",
"Bash(npm:*)",
"Bash(node:*)",
"Bash(ls:*)",
"WebSearch",
"WebFetch"
],
"deny": [
"Bash(rm:-rf:*)",
"Bash(sudo:*)",
"Bash(git:push:--force:*)",
"Bash(git:reset:--hard:*)"
]
}
}配套 .claude/settings.local.json(双密钥 + DeepSeek 映射,不提交 Git):
{
"env": {
"ANTHROPIC_AUTH_TOKEN": "sk-你的-deepseek-api-key",
"ANTHROPIC_BASE_URL": "https://api.deepseek.com/anthropic",
"ANTHROPIC_DEFAULT_HAIKU_MODEL": "deepseek-v4-flash",
"ANTHROPIC_DEFAULT_OPUS_MODEL": "deepseek-v4-pro[1m]",
"ANTHROPIC_DEFAULT_SONNET_MODEL": "deepseek-v4-flash[1M]",
"ANTHROPIC_DEFAULT_SONNET_MODEL_NAME": "deepseek-v4-flash",
"ANTHROPIC_MODEL": "deepseek-v4-flash",
"API_TIMEOUT_MS": "3000000",
"CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": "1"
}
}切换方式:
- 日常使用:默认走 DeepSeek(
ANTHROPIC_BASE_URL指向 DeepSeek,所有模型档位映射到 DeepSeek V4) - 切换到 Anthropic 官方:注释掉或移除
settings.local.json中的ANTHROPIC_BASE_URL和模型映射变量,同时将ANTHROPIC_AUTH_TOKEN替换为 Anthropic 官方的 API Key - 按任务切换模型档位:简单任务保持默认 Haiku(Flash),复杂任务通过
/菜单切到 Opus(Pro)
B.3.5 模板选择建议
| 使用阶段 | 推荐模板 | 核心理由 |
|---|---|---|
| 第 1-2 周 | B.3.1 初学者安全配置 | 每一步确认是学习过程,安全第一 |
| 第 3-8 周 | B.3.2 日常开发配置 | Auto 模式在效率和安全间取得平衡 |
| 使用 DeepSeek | B.3.3 DeepSeek 专用配置 | 针对 DeepSeek 优化的超时和上下文配置 |
| 多模型策略 | B.3.4 双模型配置 | 根据任务在省钱和质量之间灵活切换 |
提示:这些模板是起点而非终点。随着你对 Claude Code 行为的理解加深,应不断调整配置以匹配自己的使用习惯。关于各配置项的详细说明、合并规则、调试技巧,请参阅第 13 章:配置体系深度解析。