在使用 Claude Code 开发项目时,我们可能会遇到这样的需求:一个终端使用速度更快、成本更低的模型处理日常代码修改,另一个终端使用推理能力更强的模型处理复杂问题。
比如:
一个终端用deepseek-v4-pro[1m],另一个终端用glm-5.1;或者一个终端用sonnet,另一个终端用opus。
其实实现方式很简单:每个终端单独设置环境变量或启动参数即可。不同终端之间的环境变量是相互独立的。
一、核心思路
Claude Code 选择模型通常有几种方式:
claude --model 模型名或者设置环境变量:
ANTHROPIC_MODEL=模型名如果你同时打开两个终端,只要在不同终端里设置不同的模型,再分别启动 Claude Code,就可以实现多个 Claude Code 会话同时使用不同模型。
二、Windows PowerShell 的正确写法
很多人在 Windows 里会直接复制 Linux / macOS 的写法,例如:
ANTHROPIC_MODEL="deepseek-v4-pro[1m]" \ claude但这在 PowerShell 里会报错。
因为这是 Bash 语法,不是 PowerShell 语法。
在 PowerShell 中,环境变量要这样写:
$env:ANTHROPIC_MODEL = "deepseek-v4-pro[1m]" claude如果你还需要设置第三方接口地址和 API Key,可以这样写:
$env:ANTHROPIC_BASE_URL = "https://你的第三方接口地址" $env:ANTHROPIC_AUTH_TOKEN = "你的API Key" $env:ANTHROPIC_MODEL = "deepseek-v4-pro[1m]" claude三、在两个终端里使用不同模型
假设我们要在两个 PowerShell 终端中分别使用两个模型。
终端 A:使用 DeepSeek 模型
$env:ANTHROPIC_BASE_URL = "https://你的第三方接口地址" $env:ANTHROPIC_AUTH_TOKEN = "你的API Key" $env:ANTHROPIC_MODEL = "deepseek-v4-pro[1m]" claude终端 B:使用 GLM 模型
$env:ANTHROPIC_BASE_URL = "https://你的第三方接口地址" $env:ANTHROPIC_AUTH_TOKEN = "你的API Key" $env:ANTHROPIC_MODEL = "glm-5.1" claude这样两个终端就会分别使用不同模型。
终端 A 的 Claude Code 会话使用:
deepseek-v4-pro[1m]终端 B 的 Claude Code 会话使用:
glm-5.1两个终端互不影响。
四、推荐使用--model强制指定模型
有时候你明明设置了:
$env:ANTHROPIC_MODEL = "deepseek-v4-pro[1m]"但启动 Claude Code 后,顶部显示的还是之前的模型,比如:
glm-5.1 · API Usage Billing这通常说明模型被更高优先级的配置覆盖了。
这种情况下,建议直接使用--model参数:
claude --model "deepseek-v4-pro[1m]"完整写法如下:
$env:ANTHROPIC_BASE_URL = "https://你的第三方接口地址" $env:ANTHROPIC_AUTH_TOKEN = "你的API Key" claude --model "deepseek-v4-pro[1m]"另一个终端可以这样:
$env:ANTHROPIC_BASE_URL = "https://你的第三方接口地址" $env:ANTHROPIC_AUTH_TOKEN = "你的API Key" claude --model "glm-5.1"这种方式更直观,也更适合临时切换模型。
五、为什么设置了环境变量却没有生效?
如果你发现 Claude Code 仍然使用旧模型,可以检查下面几个地方。
1. 是否被/model覆盖
Claude Code 内部可以使用:
/model来切换模型。
如果你之前在 Claude Code 中选择过某个模型,它可能会被保存下来,下次启动时继续生效。
可以在 Claude Code 里输入:
/model deepseek-v4-pro[1m]或者退出后用启动参数强制指定:
claude --model "deepseek-v4-pro[1m]"2. 是否被项目配置覆盖
Claude Code 项目目录下可能存在配置文件:
.claude/settings.json .claude/settings.local.json可以在 PowerShell 中查看:
Get-Content .\.claude\settings.json -ErrorAction SilentlyContinue Get-Content .\.claude\settings.local.json -ErrorAction SilentlyContinue如果里面有类似配置:
{ "model": "glm-5.1" }那么 Claude Code 可能会继续使用这个模型。
可以删除这个model配置,或者改成你想使用的模型。
六、如果使用的是第三方模型
使用第三方模型时,一般需要配置三个变量:
$env:ANTHROPIC_BASE_URL = "第三方接口地址" $env:ANTHROPIC_AUTH_TOKEN = "第三方 API Key" $env:ANTHROPIC_MODEL = "第三方模型名"需要注意的是,模型名必须是第三方平台支持的模型 ID。
例如:
$env:ANTHROPIC_BASE_URL = "https://你的中转平台地址" $env:ANTHROPIC_AUTH_TOKEN = "sk-xxxx" $env:ANTHROPIC_MODEL = "deepseek-v4-pro[1m]" claude如果你使用的是某个中转平台提供的模型名,例如:
deepseek-v4-pro[1m]那么ANTHROPIC_BASE_URL也必须填写这个中转平台提供的 Anthropic 兼容接口地址,而不是随便填写其他平台的地址。
否则可能会出现模型不存在、请求失败,或者实际使用的不是你想要的模型。
七、做成快捷命令
每次手动输入环境变量比较麻烦,可以在 PowerShell 里写成函数。
例如:
function cc-deepseek { $env:ANTHROPIC_BASE_URL = "https://你的第三方接口地址" $env:ANTHROPIC_AUTH_TOKEN = "你的API Key" claude --model "deepseek-v4-pro[1m]" } function cc-glm { $env:ANTHROPIC_BASE_URL = "https://你的第三方接口地址" $env:ANTHROPIC_AUTH_TOKEN = "你的API Key" claude --model "glm-5.1" }之后就可以直接运行:
cc-deepseek或者:
cc-glm这样在不同终端中启动不同模型会方便很多。