Appearance
环境变量参考
Claude Code 通过环境变量精细控制各种行为,包括 API 认证(ANTHROPIC_API_KEY)、模型选择(ANTHROPIC_MODEL)、Bash 超时、上下文压缩触发、Bedrock/Vertex/Foundry 企业提供商、MCP 服务器、遥测开关等。可在 Shell 中临时设置,也可写入 ~/.bashrc 永久生效,或通过 settings.json 的 env 字段统一下发给团队。
Claude Code 通过环境变量控制各种行为。在启动 claude 前在 Shell 中设置,或者在 settings.json 的 env 字段中配置,以便应用到每次会话或在团队中统一下发。
如果你是在排查 settings 相关问题,可以先按这个规则分工:权限、默认模型、statusLine、插件市场写进 settings;API Key、云服务商认证、代理、临时调试开关更适合放环境变量。不要把明文密钥提交到项目 .claude/settings.json。
settings 和环境变量怎么分工
| 目标 | 更适合放哪里 | 原因 |
|---|---|---|
| 权限规则、Hooks、MCP 白名单 | .claude/settings.json | 团队需要共享,且不包含密钥 |
| 个人默认模型、statusLine | ~/.claude/settings.json | 属于个人偏好,跨项目生效 |
| API Key、代理、云服务商凭证 | Shell 环境变量或密钥脚本 | 避免明文进入仓库 |
| 项目临时覆盖 | .claude/settings.local.json | 只影响当前仓库,不应提交 |
| CI 或自动化 Token | CI Secret + 环境变量 | 便于轮换和审计 |
快速设置方法
临时生效(当前会话):
bash
export ANTHROPIC_API_KEY="your-key"
claude永久生效(写入 ~/.zshrc 或 ~/.bashrc):
bash
echo 'export ANTHROPIC_API_KEY="your-key"' >> ~/.zshrc
source ~/.zshrcWindows PowerShell 当前会话:
powershell
$env:ANTHROPIC_API_KEY = "your-key"
claudeWindows 用户级永久环境变量:
powershell
[Environment]::SetEnvironmentVariable("ANTHROPIC_API_KEY", "your-key", "User")重新打开终端后生效。
通过 settings.json 配置:
json
{
"env": {
"ANTHROPIC_MODEL": "claude-sonnet-4-6",
"BASH_DEFAULT_TIMEOUT_MS": "60000"
}
}如果改完没生效,按这个顺序查:新终端是否已经重新打开;/status 里当前认证方式是否符合预期;同名变量是否被 shell profile、IDE、CI 或项目本地配置覆盖;Desktop/Web 版是否支持对应变量。
API 认证
| 变量 | 说明 |
|---|---|
ANTHROPIC_API_KEY | API 密钥,作为 X-Api-Key 请求头发送。设置后优先于 Pro/Max/Team/Enterprise 订阅,即使已登录也会使用此 Key。交互模式下首次使用会提示确认。恢复使用订阅请运行 unset ANTHROPIC_API_KEY |
ANTHROPIC_AUTH_TOKEN | 自定义 Authorization 请求头值(自动添加 Bearer 前缀) |
ANTHROPIC_BASE_URL | 覆盖 API 端点,用于通过代理或网关路由请求。指向非 Anthropic 主机时默认禁用 MCP 工具搜索 |
ANTHROPIC_CUSTOM_HEADERS | 添加到请求的自定义请求头(Name: Value 格式,多个请求头用换行分隔) |
模型配置
| 变量 | 说明 |
|---|---|
ANTHROPIC_MODEL | 使用的模型名称 |
ANTHROPIC_DEFAULT_HAIKU_MODEL | 自定义 Haiku 类模型 |
ANTHROPIC_DEFAULT_SONNET_MODEL | 自定义 Sonnet 类模型 |
ANTHROPIC_DEFAULT_OPUS_MODEL | 自定义 Opus 类模型 |
ANTHROPIC_CUSTOM_MODEL_OPTION | 在 /model 选择器中添加自定义模型条目(不替换内置别名) |
ANTHROPIC_CUSTOM_MODEL_OPTION_NAME | 自定义模型条目的显示名称 |
ANTHROPIC_CUSTOM_MODEL_OPTION_DESCRIPTION | 自定义模型条目的描述(默认为 Custom model (<model-id>)) |
CLAUDE_CODE_SUBAGENT_MODEL | 子代理使用的模型 |
CLAUDE_CODE_EFFORT_LEVEL | 模型思考深度:low/medium/high/max(仅 Opus 4.6)/auto。优先于 /effort 和 effortLevel 设置 |
MAX_THINKING_TOKENS | 覆盖扩展思考的 Token 预算。设为 0 完全禁用思考 |
Bash 执行控制
| 变量 | 说明 |
|---|---|
BASH_DEFAULT_TIMEOUT_MS | 长时间运行的 Bash 命令的默认超时时间(毫秒) |
BASH_MAX_TIMEOUT_MS | 模型可以为 Bash 命令设置的最大超时时间(毫秒) |
BASH_MAX_OUTPUT_LENGTH | Bash 输出在被中间截断前的最大字符数 |
CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR | 每次 Bash 命令后返回原始工作目录 |
CLAUDE_CODE_SHELL | 覆盖自动 Shell 检测(如 bash vs zsh) |
CLAUDE_CODE_SHELL_PREFIX | 包装所有 Bash 命令的前缀命令(用于日志记录或审计)。示例:/path/to/logger.sh 会执行 /path/to/logger.sh <命令> |
CLAUDE_ENV_FILE | Claude Code 在每次 Bash 命令前 source 的 Shell 脚本路径。用于跨命令持久化 virtualenv 或 conda 激活 |
上下文和记忆
| 变量 | 说明 |
|---|---|
CLAUDE_AUTOCOMPACT_PCT_OVERRIDE | 触发自动压缩的上下文容量百分比(1-100)。默认约 95%,设低值(如 50)更早压缩 |
CLAUDE_CODE_AUTO_COMPACT_WINDOW | 用于自动压缩计算的上下文容量 Token 数。标准模型默认 200K,扩展上下文模型默认 1M |
CLAUDE_CODE_DISABLE_AUTO_MEMORY | 设为 1 禁用自动记忆功能 |
CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENS | 覆盖文件读取的默认 Token 限制 |
CLAUDE_CODE_MAX_OUTPUT_TOKENS | 设置大多数请求的最大输出 Token 数 |
CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD | 设为 1 从 --add-dir 指定的目录加载 CLAUDE.md 文件 |
会话和任务
| 变量 | 说明 |
|---|---|
CLAUDE_CODE_DISABLE_BACKGROUND_TASKS | 设为 1 禁用所有后台任务功能(包括 Ctrl+B 快捷键) |
CLAUDE_CODE_DISABLE_CRON | 设为 1 禁用定时任务(/loop 命令和 cron 工具不可用) |
CLAUDE_CODE_ENABLE_TASKS | 设为 true 在非交互模式(-p)启用任务追踪系统 |
CLAUDE_CODE_TASK_LIST_ID | 跨会话共享任务列表的 ID |
CLAUDE_CODE_EXIT_AFTER_STOP_DELAY | 查询循环空闲后自动退出前等待的毫秒数 |
CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION | 设为 false 禁用提示词建议(灰色预测) |
CLAUDE_CODE_NEW_INIT | 设为 true 让 /init 运行交互式设置流程 |
检测和调试
| 变量 | 说明 |
|---|---|
CLAUDECODE | Claude Code 在其衍生的 Shell 环境中设为 1。用于检测脚本是否在 Claude Code 衍生的 Shell 中运行 |
CLAUDE_CODE_REMOTE | 云端远程会话中设为 true。可用于区分本地和云端环境 |
CLAUDE_CODE_DISABLE_TERMINAL_TITLE | 设为 1 禁用基于对话上下文的终端标题自动更新 |
企业级提供商
AWS Bedrock
| 变量 | 说明 |
|---|---|
CLAUDE_CODE_USE_BEDROCK | 使用 Amazon Bedrock |
AWS_BEARER_TOKEN_BEDROCK | Bedrock API 密钥 |
CLAUDE_CODE_SKIP_BEDROCK_AUTH | 跳过 AWS 认证(用于 LLM 网关) |
ANTHROPIC_SMALL_FAST_MODEL_AWS_REGION | 使用 Bedrock 时 Haiku 类模型的 AWS 区域 |
Google Vertex AI
| 变量 | 说明 |
|---|---|
CLAUDE_CODE_USE_VERTEX | 使用 Google Vertex AI |
CLAUDE_CODE_SKIP_VERTEX_AUTH | 跳过 Google 认证(用于 LLM 网关) |
VERTEX_REGION_CLAUDE_4_0_SONNET | Sonnet 4.6 在 Vertex AI 上的区域 |
VERTEX_REGION_CLAUDE_4_0_OPUS | Opus 4.6 在 Vertex AI 上的区域 |
VERTEX_REGION_CLAUDE_3_5_HAIKU | Haiku 4.5 在 Vertex AI 上的区域 |
VERTEX_REGION_CLAUDE_3_7_SONNET | Sonnet 3.7 在 Vertex AI 上的区域 |
Microsoft Foundry
| 变量 | 说明 |
|---|---|
CLAUDE_CODE_USE_FOUNDRY | 使用 Microsoft Foundry |
ANTHROPIC_FOUNDRY_API_KEY | Foundry 认证 API 密钥 |
ANTHROPIC_FOUNDRY_RESOURCE | Foundry 资源名称(如 my-resource) |
ANTHROPIC_FOUNDRY_BASE_URL | Foundry 资源的完整 Base URL |
CLAUDE_CODE_SKIP_FOUNDRY_AUTH | 跳过 Azure 认证(用于 LLM 网关) |
网络和代理
| 变量 | 说明 |
|---|---|
HTTP_PROXY | HTTP 代理服务器 |
HTTPS_PROXY | HTTPS 代理服务器 |
NO_PROXY | 绕过代理直接请求的域名和 IP 列表 |
CLAUDE_CODE_PROXY_RESOLVES_HOSTS | 设为 true 允许代理执行 DNS 解析 |
CLAUDE_CODE_CLIENT_CERT | mTLS 认证的客户端证书文件路径 |
CLAUDE_CODE_CLIENT_KEY | mTLS 认证的客户端私钥文件路径 |
CLAUDE_CODE_CLIENT_KEY_PASSPHRASE | 加密客户端密钥的密码(可选) |
MCP 配置
| 变量 | 说明 |
|---|---|
MCP_TIMEOUT | MCP 服务器启动超时时间(毫秒) |
MCP_TOOL_TIMEOUT | MCP 工具执行超时时间(毫秒) |
MAX_MCP_OUTPUT_TOKENS | MCP 工具响应的最大 Token 数(默认 25000) |
MCP_CLIENT_SECRET | 需要预配置凭证的 MCP 服务器的 OAuth 客户端密钥 |
MCP_OAUTH_CALLBACK_PORT | OAuth 重定向回调的固定端口 |
ENABLE_CLAUDEAI_MCP_SERVERS | 设为 false 禁用 claude.ai MCP 服务器(登录用户默认启用) |
ENABLE_TOOL_SEARCH | 控制 MCP 工具搜索:true/auto/auto:N/false |
遥测和隐私
| 变量 | 说明 |
|---|---|
DISABLE_TELEMETRY | 设为 1 退出 Statsig 遥测 |
DISABLE_ERROR_REPORTING | 设为 1 退出 Sentry 错误报告 |
CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY | 设为 1 禁用会话质量调查 |
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC | 相当于同时设置 DISABLE_AUTOUPDATER、DISABLE_FEEDBACK_COMMAND、DISABLE_ERROR_REPORTING 和 DISABLE_TELEMETRY |
DISABLE_PROMPT_CACHING | 设为 1 禁用所有模型的提示词缓存 |
DISABLE_PROMPT_CACHING_HAIKU | 设为 1 禁用 Haiku 模型的提示词缓存 |
DISABLE_PROMPT_CACHING_SONNET | 设为 1 禁用 Sonnet 模型的提示词缓存 |
DISABLE_PROMPT_CACHING_OPUS | 设为 1 禁用 Opus 模型的提示词缓存 |
CLAUDE_CODE_ENABLE_TELEMETRY | 设为 1 启用 OpenTelemetry 数据收集 |
自动更新和安装
| 变量 | 说明 |
|---|---|
DISABLE_AUTOUPDATER | 设为 1 禁用自动更新 |
DISABLE_COST_WARNINGS | 设为 1 禁用费用警告消息 |
DISABLE_FEEDBACK_COMMAND | 设为 1 禁用 /feedback 命令 |
DISABLE_INSTALLATION_CHECKS | 设为 1 禁用安装警告(仅在手动管理安装位置时使用) |
CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL | 跳过 IDE 扩展自动安装 |
实验性功能
| 变量 | 说明 |
|---|---|
CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS | 设为 1 启用 Agent Teams(实验性,默认关闭) |
CLAUDE_CODE_DISABLE_1M_CONTEXT | 设为 1 禁用 1M 上下文窗口支持 |
CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING | 设为 1 禁用 Opus 4.6 和 Sonnet 4.6 的自适应推理 |
CLAUDE_CODE_DISABLE_FAST_MODE | 设为 1 禁用 Fast 模式 |
CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS | 设为 1 删除系统提示中内置的 commit 和 PR 工作流指令 |
CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS | 设为 1 移除请求中的 anthropic-beta 头(解决某些代理的兼容问题) |
目录和路径
| 变量 | 说明 |
|---|---|
CLAUDE_CONFIG_DIR | 自定义 Claude Code 配置和数据文件的存储位置 |
CLAUDE_CODE_TMPDIR | 覆盖内部临时文件使用的临时目录(Claude Code 会在此路径后追加 /claude/) |
CLAUDE_CODE_PLUGIN_SEED_DIR | 只读插件种子目录路径(多个路径用 : 分隔,Windows 用 ;) |
安全隔离
| 变量 | 说明 |
|---|---|
CLAUDE_CODE_SUBPROCESS_ENV_SCRUB | 设为 1 从子进程环境(Bash、Hooks、MCP stdio)中清除 Anthropic 和云提供商凭证,防止提示注入攻击通过 Shell 展开泄露密钥 |
CLAUDE_CODE_SCRIPT_CAPS | 限制每个会话中特定脚本的最大调用次数(JSON 对象,键匹配命令文本的子串) |
CLAUDE_CODE_PERFORCE_MODE | 设为 1 启用 Perforce 感知写保护,防止绕过 Perforce 变更跟踪 |
SDK 集成
| 变量 | 说明 |
|---|---|
CLAUDE_CODE_OAUTH_TOKEN | OAuth 访问令牌(SDK 和自动化环境中替代 /login)。用 claude setup-token 生成长期令牌 |
CLAUDE_CODE_OAUTH_REFRESH_TOKEN | OAuth 刷新令牌(配合 CLAUDE_CODE_OAUTH_SCOPES 用于自动化环境中的认证供给) |
CLAUDE_CODE_OAUTH_SCOPES | 刷新令牌颁发的 OAuth 作用域(需配合 CLAUDE_CODE_OAUTH_REFRESH_TOKEN 使用) |
CLAUDE_CODE_RESUME_INTERRUPTED_TURN | 设为 1 在 SDK 模式下上一轮次中断时自动继续 |
CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS | 设为 1 禁用所有内置子代理类型(仅限非交互模式) |
CLAUDE_AGENT_SDK_MCP_NO_PREFIX | 设为 1 跳过 SDK 创建的 MCP 服务器工具名前缀(仅 SDK 使用) |
演示模式
| 变量 | 说明 |
|---|---|
IS_DEMO | 设为 true 启用演示模式:隐藏邮箱和组织、跳过引导(适用于直播或录制) |
相关资源
常见问题
Q: 如何通过环境变量为 Claude Code 配置 API Key?
设置 ANTHROPIC_API_KEY 环境变量即可。临时用 export ANTHROPIC_API_KEY="your-key" 设置,或写入 ~/.zshrc/~/.bashrc 永久生效。注意:设置后它会优先于 Pro/Max/Team 订阅被使用,如要恢复订阅认证请运行 unset ANTHROPIC_API_KEY。
Q: 如何通过环境变量切换 Claude Code 使用的模型?
设置 ANTHROPIC_MODEL 为目标模型名(如 claude-sonnet-4-6)。也可分别用 ANTHROPIC_DEFAULT_HAIKU_MODEL、ANTHROPIC_DEFAULT_SONNET_MODEL、ANTHROPIC_DEFAULT_OPUS_MODEL 重新映射三种基础别名。
Q: Claude Code 如何在企业代理后面工作?
设置 HTTP_PROXY 和 HTTPS_PROXY 环境变量指向企业代理,或将代理 URL 写入 settings.json 的 env 字段统一下发。如果代理做 TLS 检查,还需要通过 NODE_EXTRA_CA_CERTS 指定企业 CA 证书。