简介
环境变量用于给 Claude Code CLI、IDE插件传递密钥、模型参数、代理等配置信息。优先级别:终端环境变量 > 项目settings.json > 全局settings.json。
重要:密钥不要硬编码写在
settings.json或者代码里,推荐使用环境变量。
核心环境变量列表
| 环境变量 | 说明 |
|---|---|
ANTHROPIC_API_KEY | Anthropic官方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_PROXY | HTTP/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
永久设置(系统环境变量)
- 系统属性 → 高级 → 环境变量
- 在用户变量新建变量名和值
- 重启终端 / 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启动参数和环境变量优先级
- CLI命令行参数(最高)
- 环境变量
- 项目
.claude/settings.json - 全局
~/.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
常见问题
- 设置环境变量后,Claude Code读取不到
- 临时变量:确认在同一个终端窗口启动
claude - 永久变量:修改完shell配置后,执行
source或者重启终端/IDE - .env文件:确认放在项目根目录,文件名是
.env
- API密钥写在settings.json,提交Git导致泄露
最佳实践:密钥一律放环境变量/.env,不要写进settings.json。settings只保留配置结构。
- 配置了
CLAUDE_CODE_BASE_URL但是不生效
检查模型服务商是否兼容Anthropic协议;部分第三方接口需要额外请求头配置。
安全提示
.env文件包含密钥,务必加入.gitignore。- 生产环境不要开启debug日志,避免密钥打印在日志输出。
- 不要把环境变量打印输出到终端、报告。
0 条笔记