Skip to content

配置系统

Configuration System

Claude Code 的配置系统提供了灵活的多层级配置管理,支持通过配置文件、环境变量和命令行参数进行自定义。


settings.json 三个层级

Three Levels of settings.json

Claude Code 的配置文件采用三层层级结构,与 CLAUDE.md 的层级逻辑一致。

层级结构

优先级(从高到低):

┌────────────────────────────────────────────┐
│  本地级 .claude/settings.local.json        │  ← 最高优先级
│  不提交到 Git,个人本地覆盖                  │
├────────────────────────────────────────────┤
│  项目级 .claude/settings.json              │  ← 中等优先级
│  提交到 Git,团队共享                       │
├────────────────────────────────────────────┤
│  用户级 ~/.claude/settings.json            │  ← 最低优先级
│  全局配置,适用于所有项目                    │
└────────────────────────────────────────────┘

用户级配置

User-Level Configuration

文件路径:~/.claude/settings.json

json
{
  "permissions": {
    "allow": [
      "Bash(git *)",
      "Bash(npm test)",
      "Read",
      "Glob",
      "Grep"
    ],
    "deny": [
      "Bash(rm -rf *)",
      "Bash(git push --force)"
    ]
  },
  "env": {
    "CLAUDE_CODE_MAX_TURNS": "50"
  }
}

项目级配置

Project-Level Configuration

文件路径:.claude/settings.json(项目根目录下)

json
{
  "permissions": {
    "allow": [
      "Bash(pnpm *)",
      "Bash(docker compose *)",
      "Bash(prisma *)",
      "Read",
      "Write",
      "Edit"
    ],
    "deny": [
      "Bash(rm -rf /)",
      "Bash(DROP TABLE)",
      "Bash(git push --force)"
    ]
  },
  "env": {
    "NODE_ENV": "development"
  }
}

本地级配置

Local-Level Configuration

文件路径:.claude/settings.local.json

json
{
  "permissions": {
    "allow": [
      "Bash(kubectl *)"
    ]
  },
  "env": {
    "DATABASE_URL": "postgresql://localhost:5433/mydb",
    "REDIS_URL": "redis://localhost:6380"
  }
}

配置合并规则

配置项合并行为
permissions.allow合并所有层级的列表
permissions.deny合并所有层级的列表(deny 优先于 allow)
env高优先级覆盖低优先级
其他配置项高优先级覆盖低优先级

常用配置项

Common Configuration Options

配置项速查表

配置项类型说明默认值
permissions.allowstring[]允许的工具和命令[]
permissions.denystring[]拒绝的工具和命令[]
envobject环境变量{}
mcpServersobjectMCP 服务器配置{}
hooksobject事件钩子配置{}

权限配置示例

json
{
  "permissions": {
    "allow": [
      "Read",
      "Write",
      "Edit",
      "Glob",
      "Grep",
      "Bash(git *)",
      "Bash(npm *)",
      "Bash(pnpm *)",
      "Bash(node *)",
      "Bash(npx *)",
      "Bash(cat *)",
      "Bash(ls *)",
      "Bash(find *)",
      "Bash(echo *)"
    ],
    "deny": [
      "Bash(rm -rf /)",
      "Bash(git push --force *)",
      "Bash(sudo *)",
      "Bash(curl * | bash)",
      "Bash(wget * | bash)"
    ]
  }
}

MCP 服务器配置

json
{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-filesystem",
        "/path/to/allowed/directory"
      ]
    },
    "github": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-github"
      ],
      "env": {
        "GITHUB_TOKEN": "your-token-here"
      }
    },
    "postgres": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-postgres",
        "postgresql://localhost:5432/mydb"
      ]
    }
  }
}

环境变量

Environment Variables

Claude Code 支持通过环境变量进行配置,适用于 CI/CD 和自动化场景。

核心环境变量

环境变量说明示例值
ANTHROPIC_API_KEYAnthropic API 密钥sk-ant-api03-...
CLAUDE_CODE_MAX_TURNS非交互模式最大轮次50
CLAUDE_CODE_USE_BEDROCK使用 AWS Bedrock1
CLAUDE_CODE_USE_VERTEX使用 Google Vertex AI1
CLAUDE_MODEL指定默认模型claude-sonnet-4-20250514
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC禁用非必要网络请求1

AWS Bedrock 相关

环境变量说明示例值
CLAUDE_CODE_USE_BEDROCK启用 Bedrock1
AWS_REGIONAWS 区域us-east-1
AWS_ACCESS_KEY_IDAWS 访问密钥 IDAKIA...
AWS_SECRET_ACCESS_KEYAWS 秘密访问密钥wJalr...
AWS_SESSION_TOKENAWS 临时会话令牌FwoG...
ANTHROPIC_MODELBedrock 模型 IDanthropic.claude-sonnet-4-20250514-v1:0

Google Vertex AI 相关

环境变量说明示例值
CLAUDE_CODE_USE_VERTEX启用 Vertex AI1
CLOUD_ML_REGIONGCP 区域us-east5
ANTHROPIC_VERTEX_PROJECT_IDGCP 项目 IDmy-project-123
GOOGLE_APPLICATION_CREDENTIALS服务账户密钥路径/path/to/key.json

设置环境变量的方式

bash
# 方式 1: 命令行直接设置
export ANTHROPIC_API_KEY="sk-ant-api03-..."
claude

# 方式 2: 在 .env 文件中(Claude Code 不自动读取)
# 需要通过 direnv 或 dotenv 加载

# 方式 3: 在 settings.json 的 env 中配置
# ~/.claude/settings.json
{
  "env": {
    "CLAUDE_CODE_MAX_TURNS": "100"
  }
}

# 方式 4: 在 shell 配置文件中
# ~/.bashrc 或 ~/.zshrc
export ANTHROPIC_API_KEY="sk-ant-api03-..."

模型选择配置

Model Selection

Claude Code 支持多种方式选择和切换 AI 模型。

命令行参数

bash
# 使用 --model 参数指定模型
claude --model claude-sonnet-4-20250514

# 使用环境变量
CLAUDE_MODEL=claude-sonnet-4-20250514 claude

对话中切换

bash
# 使用 /model 命令
> /model
当前模型: claude-sonnet-4-20250514

可用模型:
  1. claude-sonnet-4-20250514
  2. claude-sonnet-4-20250514
  3. claude-haiku-35-20241022

> /model claude-sonnet-4-20250514
已切换到: claude-sonnet-4-20250514

快速模式切换

bash
# /fast 切换到更快的模型
> /fast
已切换到快速模式

# /slow 切换回标准模型
> /slow
已切换到标准模式

模型选择建议

场景推荐模型原因
复杂架构设计Opus最强推理能力
日常开发Sonnet速度和质量平衡
简单问答Haiku (/fast)响应速度快
代码审查Sonnet足够细致
大规模重构Opus/Sonnet需要强推理

API Provider 配置

API Provider Configuration

Claude Code 支持三种 API 提供商:Anthropic Direct、AWS Bedrock 和 Google Vertex AI。

Anthropic Direct(默认)

最简单的配置方式,直接使用 Anthropic API:

bash
# 设置 API 密钥
export ANTHROPIC_API_KEY="sk-ant-api03-..."

# 启动 Claude Code
claude

配置文件方式:

json
{
  "env": {
    "ANTHROPIC_API_KEY": "sk-ant-api03-..."
  }
}

AWS Bedrock

适合已有 AWS 基础设施的企业用户:

bash
# 环境变量配置
export CLAUDE_CODE_USE_BEDROCK=1
export AWS_REGION=us-east-1
export AWS_ACCESS_KEY_ID="AKIA..."
export AWS_SECRET_ACCESS_KEY="wJalr..."

# 如果使用 AWS SSO
aws sso login --profile my-profile
export AWS_PROFILE=my-profile
export CLAUDE_CODE_USE_BEDROCK=1

# 启动
claude

Bedrock 配置注意事项:

注意事项说明
模型可用性需要在 AWS 控制台启用模型访问
区域支持不是所有区域都支持所有模型
定价按 AWS Bedrock 定价计费
IAM 权限需要 bedrock:InvokeModel 权限

Google Vertex AI

适合已有 GCP 基础设施的企业用户:

bash
# 环境变量配置
export CLAUDE_CODE_USE_VERTEX=1
export CLOUD_ML_REGION=us-east5
export ANTHROPIC_VERTEX_PROJECT_ID=my-project-123

# 使用应用默认凭据
gcloud auth application-default login

# 或使用服务账户
export GOOGLE_APPLICATION_CREDENTIALS="/path/to/service-account-key.json"

# 启动
claude

Vertex AI 配置注意事项:

注意事项说明
API 启用需要在 GCP 控制台启用 Vertex AI API
区域推荐 us-east5(模型可用性最好)
定价按 GCP Vertex AI 定价计费
配额可能需要申请配额提升

Provider 对比

特性Anthropic DirectAWS BedrockGoogle Vertex
设置复杂度
企业合规-
数据驻留美国可选区域可选区域
计费方式按量付费AWS 账单GCP 账单
SLA标准AWS SLAGCP SLA
模型可用性最新略有延迟略有延迟

配置文件完整示例

Complete Configuration Examples

个人开发者配置

json
// ~/.claude/settings.json
{
  "permissions": {
    "allow": [
      "Read",
      "Write",
      "Edit",
      "Glob",
      "Grep",
      "Bash(git *)",
      "Bash(npm *)",
      "Bash(node *)",
      "Bash(npx *)",
      "Bash(pnpm *)",
      "Bash(ls *)",
      "Bash(cat *)",
      "Bash(find *)",
      "Bash(mkdir *)"
    ],
    "deny": [
      "Bash(rm -rf /)",
      "Bash(sudo *)",
      "Bash(git push --force *)"
    ]
  }
}

团队项目配置

json
// .claude/settings.json (提交到 Git)
{
  "permissions": {
    "allow": [
      "Read",
      "Write",
      "Edit",
      "Glob",
      "Grep",
      "Bash(pnpm *)",
      "Bash(docker compose *)",
      "Bash(prisma *)",
      "Bash(git *)"
    ],
    "deny": [
      "Bash(rm -rf *)",
      "Bash(git push --force *)",
      "Bash(DROP *)",
      "Bash(TRUNCATE *)"
    ]
  },
  "mcpServers": {
    "postgres": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-postgres"],
      "env": {
        "DATABASE_URL": "postgresql://localhost:5432/devdb"
      }
    }
  }
}

CI/CD 配置

bash
#!/bin/bash
# ci-claude.sh - CI 环境中使用 Claude Code

export ANTHROPIC_API_KEY="${CLAUDE_API_KEY}"
export CLAUDE_CODE_MAX_TURNS=30
export CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1

# 代码审查
claude -p "审查最近一次提交的代码质量" \
  --model claude-sonnet-4-20250514 \
  --dangerously-skip-permissions

# 生成变更日志
claude -p "根据最近 10 次提交生成变更日志" \
  --model claude-sonnet-4-20250514 \
  --dangerously-skip-permissions

/config 命令

The /config Command

在对话中使用 /config 命令可以查看和修改部分配置。

bash
# 查看当前配置
> /config

# 配置概览:
配置层级:
  用户级: ~/.claude/settings.json (已加载)
  项目级: .claude/settings.json (已加载)
  本地级: .claude/settings.local.json (未找到)

当前模型: claude-sonnet-4-20250514
权限规则: 12 allow, 3 deny
MCP 服务器: 2 个已连接

配置调试

Configuration Debugging

常见问题排查

bash
# 检查 API 密钥是否设置
echo $ANTHROPIC_API_KEY

# 检查配置文件是否存在
ls -la ~/.claude/settings.json
ls -la .claude/settings.json
ls -la .claude/settings.local.json

# 验证 JSON 格式
cat ~/.claude/settings.json | python -m json.tool

# 检查 Bedrock 配置
aws sts get-caller-identity  # 验证 AWS 凭据
aws bedrock list-foundation-models --region us-east-1  # 验证模型可用性

# 检查 Vertex 配置
gcloud auth application-default print-access-token  # 验证 GCP 凭据

配置问题自检清单

检查项命令期望结果
API 密钥echo $ANTHROPIC_API_KEY非空
配置格式python -m json.tool < settings.json无错误
文件权限ls -la settings.json可读
AWS 凭据aws sts get-caller-identity正确的账户
GCP 凭据gcloud auth list正确的账户

小结

Summary

Claude Code 的配置系统设计围绕以下原则:

  1. 层级覆盖 - 三层配置从全局到局部逐步细化
  2. 安全优先 - deny 规则始终优先于 allow
  3. 灵活适配 - 支持多种 API 提供商和部署方式
  4. 团队协作 - 项目级配置可共享,本地级配置私有

建议从简单配置开始,根据需要逐步添加更多规则。使用 /config 命令可以随时查看当前生效的配置。