Skip to content
Published at:

附录 B:settings.json 配置项完整参考

本附录是第 13 章所涉及的全部 settings.json 配置项的速查参考,包含一张完整配置表以及四套可直接使用的 JSON 配置示例。

B.1 配置项完整参考表

配置键类型默认值层级说明
modelstring"claude-sonnet-4-6"global/project默认模型。支持完整模型 ID(如 "claude-sonnet-4-6")、别名("haiku" / "sonnet" / "opus"),配合环境变量可映射到第三方模型
themestring"dark"global界面主题。可选值:"dark" / "light" / "system"。仅影响 CLI,VSCode 扩展跟随 VSCode 主题
autoCompactbooleantrueglobal当上下文接近模型上限时是否自动触发 /compact 压缩。false 时由用户手动执行压缩
autoCompactTokenLimitnumber300000global触发自动压缩的 token 阈值。使用大上下文窗口的模型(如 DeepSeek V4 1M)时可调高至 500000 或更高
permissions.allowstring[][]global/project权限白名单。匹配的操作无需确认直接执行。支持通配符(如 "Bash(git:*)")。deny 优先级高于 allow
permissions.denystring[][]global/project权限黑名单。匹配的操作完全禁止执行,即使同时出现在 allow 列表中。用于封禁不可逆危险操作
hooksobject{}global/project事件钩子配置。支持的事件:PreToolUse / PostToolUse / SessionStart / Stop。每个事件可配置多个 { matcher, command } 规则
envobject{}global/project/local为 Claude Code 会话注入环境变量。常用变量:ANTHROPIC_AUTH_TOKENANTHROPIC_BASE_URLANTHROPIC_DEFAULT_*_MODEL 等。密钥应放在 settings.local.json
pluginsstring[][]global/project启用的插件列表。插件安装后自动添加。示例:["web-search", "web-fetch", "code-review"]
mcpServersobject{}global/projectMCP 服务器配置。每个服务器通过 command + args 启动子进程,为 Claude Code 提供外部工具和数据源
enableAllProjectMcpServersbooleanfalseproject是否自动启用项目中配置的所有 MCP 服务器。安全考量:默认关闭,避免克隆恶意项目后自动启动未知进程
keybindingsobject{}global自定义 CLI 键盘快捷键。可配置键位:submit / newline / interrupt 等。VSCode 扩展的快捷键在 VSCode 的 keybindings.json 中配置
sandboxobject{}global沙箱配置。控制文件系统和网络访问边界。包含 enabledautoAllowBashIfSandboxednetwork.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

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

json
{
  "claudeCode.preferredLocation": "sidebar",
  "claudeCode.enableNewConversationShortcut": true,
  "claudeCode.useCtrlEnterToSend": true,
  "claudeCode.initialPermissionMode": "askBeforeEdit"
}

特点:Claude 只能读取 Git 状态和搜索网络,任何文件修改和命令执行都需要你手动确认。


B.3.2 日常开发配置

适用场景:使用 Claude Code 一个月以上。Auto 模式,平衡效率与安全。

~/.claude/settings.json

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

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

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)

json
{
  "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

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)

json
{
  "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 模式在效率和安全间取得平衡
使用 DeepSeekB.3.3 DeepSeek 专用配置针对 DeepSeek 优化的超时和上下文配置
多模型策略B.3.4 双模型配置根据任务在省钱和质量之间灵活切换

提示:这些模板是起点而非终点。随着你对 Claude Code 行为的理解加深,应不断调整配置以匹配自己的使用习惯。关于各配置项的详细说明、合并规则、调试技巧,请参阅第 13 章:配置体系深度解析