环境变量是控制 Claude Code 行为的重要方式,无需编辑配置文件即可灵活调整各项设置。本章详细介绍 Claude Code 支持的所有环境变量、它们的用途、配置方式以及常见使用场景。
环境变量概述
Claude Code 使用环境变量来控制行为,这些变量可以通过以下方式设置:
环境变量优先级从高到低:命令行 > 项目级 settings.json > 用户级 settings.json > shell 环境变量。在 settings.json 中配置的变量会自动传递给 Claude 进程。
认证相关变量
配置示例
实例
模型配置变量
使用场景
子代理默认继承主对话的模型。通过 CLAUDE_CODE_SUBAGENT_MODEL 可以统一设置,将简单任务交给 Haiku,将复杂分析交给 Sonnet,从而优化成本:
工具与命令变量
权限与安全变量
权限模式详解
日志与调试变量
会话与历史变量
MCP 相关变量
当 Claude Code 执行 MCP 工具时,会设置以下环境变量:
工作流相关变量
GitHub Actions 专用变量
settings.json 配置方式
所有环境变量都可以在 settings.json 中配置,这种方式更加声明式和可移植:
VS Code 插件配置
在 VS Code 中使用 Claude Code 插件时,可以通过 environmentVariables 设置:
常见使用场景
场景一:使用代理或自定义 API 端点
场景二:优化成本配置
场景三:CI/CD 环境安全配置
场景四:Windows PowerShell 环境
优先级与覆盖
环境变量的优先级(从高到低):
在 settings.json 中配置的变量会覆盖同名的 shell 环境变量。这是因为 settings.json 在 Claude Code 进程启动时被显式读取,优先级更高。
查看当前配置
使用 /config 命令可以查看当前的完整配置:
/config
这会显示所有当前生效的设置,包括环境变量和 settings.json 中的配置。
最佳实践
1、敏感信息处理
2、按环境配置
3、集中管理
常见问题
Q:环境变量和 settings.json 哪个优先?
在 settings.json 中配置的变量优先级更高,会覆盖同名的 shell 环境变量。
Q:如何让 Claude Code 使用不同的 API 端点?
设置 ANTHROPIC_BASE_URL 环境变量指向你的代理或自定义端点。
Q:子代理如何控制使用的模型?
可以通过 CLAUDE_CODE_SUBAGENT_MODEL 统一设置所有子代理的模型,也可以在每个子代理的 frontmatter 中单独指定。
Q:在 Windows 上如何启用 PowerShell?
设置环境变量 CLAUDE_CODE_USE_POWERSHELL_TOOL=1 ,同时在 settings.json 中设置 defaultShell: "powershell" 。
Q:如何禁用所有斜杠命令?
设置 CLAUDE_CODE_DISABLE_SLASH_COMMANDS=1 环境变量。