附录 C:环境变量完整参考
本附录汇总 Claude Code 支持的所有环境变量,按功能分类整理。环境变量可以在 shell 配置文件(
~/.zshrc)、settings.json的env字段、settings.local.json的env字段、或 VSCode 扩展设置中定义。优先级详见 第 13 章:配置体系深度解析。
C.1 API 认证
| 变量 | 说明 | 示例 | 必选 |
|---|---|---|---|
ANTHROPIC_AUTH_TOKEN | API 认证令牌(推荐使用) | sk-xxxxxxxxxxxxxxxx | ✓ |
ANTHROPIC_API_KEY | API 密钥(旧称,与 AUTH_TOKEN 等效) | sk-xxxxxxxxxxxxxxxx | — |
ANTHROPIC_BASE_URL | 自定义 API 端点地址 | https://api.deepseek.com/anthropic | — |
注意:
ANTHROPIC_AUTH_TOKEN和ANTHROPIC_API_KEY功能完全相同,设置其中一个即可。推荐使用ANTHROPIC_AUTH_TOKEN(新命名规范)。如果两者同时设置,ANTHROPIC_AUTH_TOKEN优先。
C.2 模型映射
这些变量将 Claude Code 的三个模型档位(Haiku / Sonnet / Opus)映射到实际模型 ID——是使用第三方模型服务商(如 DeepSeek、OpenAI 兼容端点)的核心配置。
| 变量 | 说明 | 示例 |
|---|---|---|
ANTHROPIC_DEFAULT_HAIKU_MODEL | Haiku 档位映射的实际模型 | deepseek-v4-flash |
ANTHROPIC_DEFAULT_SONNET_MODEL | Sonnet 档位映射的实际模型 | deepseek-v4-flash[1M] |
ANTHROPIC_DEFAULT_OPUS_MODEL | Opus 档位映射的实际模型 | deepseek-v4-pro[1m] |
ANTHROPIC_DEFAULT_SONNET_MODEL_NAME | Sonnet 档位的 UI 显示名称 | deepseek-v4-flash |
ANTHROPIC_MODEL | 覆盖默认模型选择(所有档位) | deepseek-v4-flash |
模型后缀说明:[1M]、[1m] 等后缀用于指定上下文窗口大小——DeepSeek V4 系列通过后缀来区分不同上下文容量的模型变体。DEFAULT_SONNET_MODEL_NAME 是去掉后缀的简洁名称,用于 UI 显示和日志输出。
C.3 性能与控制
| 变量 | 说明 | 默认值 | 推荐值 |
|---|---|---|---|
API_TIMEOUT_MS | API 请求超时时间(毫秒) | 取决于 SDK | 3000000(DeepSeek 用户) |
CLAUDE_CODE_MAX_OUTPUT_TOKENS | 单次响应的最大输出 token 数 | — | 32768 |
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC | 禁用非必要网络流量(更新检查等) | 0 | 1(第三方 API 用户) |
CLAUDE_CODE_DISABLE_TELEMETRY | 禁用遥测数据上报 | 0 | 1(隐私敏感用户) |
NO_COLOR | 禁用 CLI 彩色输出 | 0 | 1(CI/CD 环境) |
DISABLE_AUTOUPDATER | 禁用自动更新检查 | 0 | — |
详细说明:
API_TIMEOUT_MS:DeepSeek 等第三方服务在使用高 Effort + 长上下文时响应可能需 10–30 分钟。设置3000000(50 分钟)避免误中断。Anthropic 官方 API 通常不需要调整此值。CLAUDE_CODE_MAX_OUTPUT_TOKENS:限制单次响应的最大长度。对于批量代码生成、长文档编写等场景,可适当调高。注意:值越大,单次响应的延迟和成本越高。CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC:设为1后,Claude Code 不会发送更新检查、使用统计等非必要网络请求。使用第三方 API 端点时建议开启——这些流量对非 Anthropic 端点没有意义。CLAUDE_CODE_DISABLE_TELEMETRY:设为1后阻止所有遥测数据上报。与DISABLE_NONESSENTIAL_TRAFFIC的区别:后者禁用所有非必要流量(包括更新检查),前者仅禁用遥测。NO_COLOR:在日志文件记录、CI/CD 流水线、或不支持 ANSI 颜色的终端中使用。设为1后所有输出为纯文本。DISABLE_AUTOUPDATER:阻止 Claude Code 在启动时检查新版本。在企业代理环境或锁定版本的场景中使用。
C.4 目录与路径
| 变量 | 说明 | 示例 |
|---|---|---|
CLAUDE_CODE_WORKING_DIRECTORY | 强制指定工作目录(覆盖当前目录) | /path/to/project |
CLAUDE_CODE_PROJECT_DIR | 项目根目录路径 | /path/to/project |
这两个变量在以下场景中有用:
- 在非项目目录中启动 Claude Code 但希望它工作在指定项目下
- 编写包装脚本时精确控制 Claude Code 的工作上下文
- VSCode 多根工作区中指定 Claude Code 的主项目
C.5 网络与代理
| 变量 | 说明 | 示例 |
|---|---|---|
HTTP_PROXY | HTTP 代理地址 | http://proxy.company.com:8080 |
HTTPS_PROXY | HTTPS 代理地址 | http://proxy.company.com:8080 |
NO_PROXY | 不走代理的地址列表 | localhost,127.0.0.1,.internal.com |
NODE_EXTRA_CA_CERTS | 额外的 CA 证书文件路径 | /path/to/company-ca.pem |
企业网络环境中,Claude Code(基于 Node.js)会遵循这些标准代理环境变量。如果公司使用自签名证书进行 TLS 检查,需要将公司 CA 证书路径设置到 NODE_EXTRA_CA_CERTS 中。
C.6 环境变量优先级
当同一个变量在多个位置定义时,按以下优先级生效:
1. Shell 环境变量(export 方式)或 ~/.claude/.env 文件 ← 最高优先级
2. .claude/settings.local.json 的 env 字段
3. .claude/settings.json 的 env 字段
4. ~/.claude/settings.json 的 env 字段 ← 最低优先级⚠️ 排查技巧:很多"配置改了但不生效"的问题根因是 shell 中残留了
export的变量。排查第一步:执行env | grep ANTHROPIC检查当前 shell 环境。
C.7 建议的配置方式
按安全性从高到低排列:
| 优先级 | 方式 | 适用场景 | 安全性 |
|---|---|---|---|
| 1 | .claude/settings.local.json 的 env 字段 | 项目级密钥、本地数据库 URL | ★★★★★ |
| 2 | ~/.claude/.env 文件 | 全局密钥(所有项目共享) | ★★★★☆ |
| 3 | ~/.claude/settings.json 的 env 字段 | 全局非敏感配置 | ★★★☆☆ |
| 4 | Shell 配置文件(~/.zshrc 等) | 开发环境统一管理 | ★★☆☆☆ |
| 5 | VSCode claudeCode.environment | VSCode 扩展专属 | ★★★★☆ |
核心原则:密钥不进 Git,不进 shell 全局环境。最佳实践是把所有敏感变量放在 .claude/settings.local.json 中,搭配 .gitignore 确保该文件不会被提交。
C.8 模型服务商配置片段
Anthropic 官方
使用 Anthropic 官方 API 是最简配置,通常只需要 API 密钥:
方法一:settings.local.json
{
"env": {
"ANTHROPIC_AUTH_TOKEN": "sk-ant-xxxxxxxxxxxxxxxx"
}
}方法二:Shell 环境变量
export ANTHROPIC_AUTH_TOKEN="sk-ant-xxxxxxxxxxxxxxxx"不需要设置 ANTHROPIC_BASE_URL(使用默认的 https://api.anthropic.com),也不需要设置模型映射变量(使用内置的模型 ID 映射)。
DeepSeek
DeepSeek 是社区中最流行的替代模型服务商,通过 Anthropic 兼容 API 提供服务。核心配置包括端点重定向和模型映射:
完整配置(settings.local.json):
{
"model": "haiku",
"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_SONNET_MODEL": "deepseek-v4-flash[1M]",
"ANTHROPIC_DEFAULT_OPUS_MODEL": "deepseek-v4-pro[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"
}
}关键说明:
model设为"haiku"→ 由ANTHROPIC_DEFAULT_HAIKU_MODEL映射到deepseek-v4-flash(日常使用)- 需要复杂推理时通过
/model命令切换到opus→ 由ANTHROPIC_DEFAULT_OPUS_MODEL映射到 Pro [1M]/[1m]后缀指定 DeepSeek V4 的 1M token 上下文窗口变体API_TIMEOUT_MS设为 50 分钟以适应 DeepSeek 高 Effort 模式下的长响应- 禁用遥测和非必要流量——这些数据对 DeepSeek 端点没有意义
- 建议同时设置
autoCompactTokenLimit为500000以充分利用 1M 上下文:
{
"autoCompactTokenLimit": 500000
}OpenAI 兼容端点
任何兼容 OpenAI Chat Completions API 的端点都可以通过适配器使用。以下以通用 OpenAI 兼容端点为示例:
{
"env": {
"ANTHROPIC_AUTH_TOKEN": "sk-你的-api-key",
"ANTHROPIC_BASE_URL": "https://your-openai-compatible-endpoint.com/v1",
"ANTHROPIC_DEFAULT_HAIKU_MODEL": "gpt-4o-mini",
"ANTHROPIC_DEFAULT_SONNET_MODEL": "gpt-4o",
"ANTHROPIC_DEFAULT_OPUS_MODEL": "gpt-4o",
"ANTHROPIC_DEFAULT_SONNET_MODEL_NAME": "GPT-4o",
"ANTHROPIC_MODEL": "gpt-4o-mini"
}
}注意:OpenAI 兼容端点的支持程度取决于具体实现。并非所有功能(如 extended thinking、prompt caching)都能在第三方端点上正常工作。建议在正式使用前用简单任务验证基础功能。
多模型切换
如果需要在多个模型服务商之间切换(如日常用 DeepSeek 省钱,关键任务用 Anthropic 官方保质量),有两种策略:
策略一:准备多份 local 配置,通过注释切换
{
"env": {
// ===== DeepSeek(日常使用)=====
"ANTHROPIC_AUTH_TOKEN": "sk-你的-deepseek-api-key",
"ANTHROPIC_BASE_URL": "https://api.deepseek.com/anthropic",
"ANTHROPIC_DEFAULT_HAIKU_MODEL": "deepseek-v4-flash",
"ANTHROPIC_DEFAULT_SONNET_MODEL": "deepseek-v4-flash[1M]",
"ANTHROPIC_DEFAULT_OPUS_MODEL": "deepseek-v4-pro[1m]",
"ANTHROPIC_DEFAULT_SONNET_MODEL_NAME": "deepseek-v4-flash",
// ===== Anthropic 官方(需要时取消注释并注释掉上面 DeepSeek 部分)=====
// "ANTHROPIC_AUTH_TOKEN": "sk-ant-xxxxxxxxxxxxxxxx",
// "ANTHROPIC_BASE_URL": "",
// "ANTHROPIC_DEFAULT_HAIKU_MODEL": "",
// ...
}
}策略二:使用 cc-switch 等第三方工具
通过 cc-switch 管理多套配置 profiles,一键在模型服务商间切换,避免手动编辑 JSON 文件。
企业代理环境
在需要 HTTP 代理和自定义 CA 证书的企业网络中使用 Claude Code:
{
"env": {
"ANTHROPIC_AUTH_TOKEN": "sk-xxxxxxxxxxxxxxxx",
"HTTP_PROXY": "http://proxy.company.com:8080",
"HTTPS_PROXY": "http://proxy.company.com:8080",
"NO_PROXY": "localhost,127.0.0.1,.internal.company.com",
"NODE_EXTRA_CA_CERTS": "/etc/ssl/certs/company-ca.pem"
}
}或者在 shell 配置中设置:
export HTTP_PROXY="http://proxy.company.com:8080"
export HTTPS_PROXY="http://proxy.company.com:8080"
export NO_PROXY="localhost,127.0.0.1,.internal.company.com"
export NODE_EXTRA_CA_CERTS="/etc/ssl/certs/company-ca.pem"C.9 快速排错清单
当 Claude Code 无法连接或行为异常时,按以下顺序排查环境变量:
- 检查 shell 环境:
env | grep -iE 'anthropic|claude'— 查看是否有意外的全局覆盖 - 检查 API 端点可达性:bash
curl -v https://api.deepseek.com/anthropic/v1/messages \ -H "Authorization: Bearer sk-your-key" \ -H "Content-Type: application/json" \ -d '{"model":"deepseek-v4-flash","messages":[{"role":"user","content":"hi"}]}' - 检查模型映射:确认
ANTHROPIC_MODEL和各DEFAULT_*_MODEL变量没有互相冲突 - 检查超时设置:如果看到超时错误,确认
API_TIMEOUT_MS是否足够大 - 检查代理设置:企业网络中,确认
HTTP_PROXY/HTTPS_PROXY/NODE_EXTRA_CA_CERTS是否正确 - 最小化测试:将配置精简到只有
ANTHROPIC_AUTH_TOKEN和ANTHROPIC_BASE_URL两个变量,验证基础连通性后再逐步添加其他变量
更多配置调试技巧见 第 13 章 13.7 节。