自学教程

Claude Code 环境变量

简介

环境变量用于给 Claude Code CLI、IDE插件传递密钥、模型参数、代理等配置信息。优先级别:终端环境变量 > 项目settings.json > 全局settings.json。

重要:密钥不要硬编码写在 settings.json 或者代码里,推荐使用环境变量。

核心环境变量列表

环境变量说明
ANTHROPIC_API_KEYAnthropic官方API密钥,Claude官方接口
CLAUDE_CODE_BASE_URL自定义API接口地址,对接中转/第三方模型例如DeepSeek
CLAUDE_CODE_MODEL默认使用模型,如 claude-3-5-sonnet、claude-3-opus
CLAUDE_CODE_NO_MEMORY设置为true,本次会话关闭记忆系统
CLAUDE_CODE_NO_MCP设置为true,禁用全部MCP服务
CLAUDE_CODE_LOG_LEVEL日志级别:debug / info / warn / error,调试排错用
HTTP_PROXY / HTTPS_PROXYHTTP/HTTPS网络代理
NO_PROXY不使用代理的地址列表

操作系统设置环境变量

Linux / macOS

临时设置(当前终端会话有效,关闭终端失效)

export ANTHROPIC_API_KEY="sk-xxxxxx"
export CLAUDE_CODE_MODEL="claude-3-5-sonnet"
# 启动 claude
claude

永久设置(写入shell配置文件)

# zsh
nano ~/.zshrc
# bash
nano ~/.bashrc

写入内容:

export ANTHROPIC_API_KEY="sk-xxxxxx"
export CLAUDE_CODE_BASE_URL="https://xxx.example.com/v1"

生效:

source ~/.zshrc

Windows PowerShell

临时设置(仅当前窗口)

$env:ANTHROPIC_API_KEY="sk-xxxxxx"
claude

永久设置(系统环境变量)

  1. 系统属性 → 高级 → 环境变量
  2. 在用户变量新建变量名和值
  3. 重启终端 / VS Code

项目本地 .env 文件(推荐开发使用)

在项目根目录新建 .env 文件

ANTHROPIC_API_KEY="sk-xxxxxx"
CLAUDE_CODE_MODEL="claude-3-5-sonnet"
CLAUDE_CODE_NO_MEMORY=false

⚠️ 一定要把 .env 加入 .gitignore,禁止提交到Git仓库,防止密钥泄露。

Claude Code 默认会自动读取项目根目录 .env。

在settings.json引用环境变量

使用 ${变量名} 语法读取环境变量,适合MCP服务配置:

{
  "mcpServers": {
    "postgres": {
      "command": "npx",
      "args": ["@modelcontextprotocol/server-postgres"],
      "env": {
        "POSTGRES_CONNECTION_STRING": "${DB_CONN}"
      }
    }
  }
}

CLI启动参数和环境变量优先级

  1. CLI命令行参数(最高)
  2. 环境变量
  3. 项目 .claude/settings.json
  4. 全局 ~/.claude/settings.json(最低)

示例:

# 环境变量设置模型为 sonnet,但是命令行参数强制使用opus
export CLAUDE_CODE_MODEL="sonnet"
claude --model opus
# 最终使用 opus

CI/CD流水线使用环境变量

CI环境(GitHub Actions / GitLab CI)不要写死密钥,使用平台内置的Secret注入环境变量。

claude --no-memory -p "调用技能 code-review,评审src目录"

查看当前环境变量

Linux/macOS

env | grep CLAUDE

PowerShell

Get-ChildItem Env:CLAUDE*

在Claude Code交互会话查看环境信息:

/status

常见问题

  1. 设置环境变量后,Claude Code读取不到
  • 临时变量:确认在同一个终端窗口启动 claude
  • 永久变量:修改完shell配置后,执行 source 或者重启终端/IDE
  • .env文件:确认放在项目根目录,文件名是 .env
  1. API密钥写在settings.json,提交Git导致泄露

最佳实践:密钥一律放环境变量/.env,不要写进settings.json。settings只保留配置结构。

  1. 配置了 CLAUDE_CODE_BASE_URL 但是不生效
    检查模型服务商是否兼容Anthropic协议;部分第三方接口需要额外请求头配置。

安全提示

  1. .env 文件包含密钥,务必加入 .gitignore。
  2. 生产环境不要开启debug日志,避免密钥打印在日志输出。
  3. 不要把环境变量打印输出到终端、报告。
标签:

0 条笔记