
前段时间连续写了几篇 Claude Code、Codex 这类 coding agent 的用法和进阶配置,这次补一篇 Claude Code 接国产模型的配置方法。
前面两种是直接落在 Claude Code 本地配置里的方法:
• 直接改环境变量,先试通
• 给常用模型单独做一个命令
实际会改到的变量有:
• ANTHROPIC_BASE_URL
• ANTHROPIC_API_KEY 或 ANTHROPIC_AUTH_TOKEN
• ANTHROPIC_MODEL
常见原因有:
• 成本更低,适合把日常任务先跑起来
• 国内访问更稳定,延迟和超时问题会少一些
• 中文场景里,有些模型用起来更顺手
先装好 Claude Code。Node.js 18 以上可以安装,Node.js v20 以后更稳定。macOS 适合用 nvm 或 Homebrew 管版本,Windows 还要先装 Git for Windows。
node -v
npm install -g @anthropic-ai/claude-code
如果在国内网络环境下安装比较慢,也可以直接走 npm 镜像:
npm install -g @anthropic-ai/claude-code --registry=https://registry.npmmirror.com
安装完成后,先确认 Claude Code 已经正常起来:

先从一个平台走一遍。下面用智谱举例。
先去智谱开放平台注册账号,进控制台创建一个 API Key。
拿到 key 以后,可以先把下面两行写进当前 shell:
export ANTHROPIC_BASE_URL=https://open.bigmodel.cn/api/anthropic
export ANTHROPIC_AUTH_TOKEN=你的智谱APIKey
然后执行:
claude
这一轮先确认三件事:
• 接口能不能通
• 模型能不能正常回结果
• Claude Code 的基本工具调用有没有明显兼容问题
这一步只是试通。长期使用时常见的问题有:
• 当前终端到底连的是哪个模型,很容易忘
• 原版 Claude 和替代模型会互相覆盖
• 多开几个终端后,配置很容易混
如果试通以后准备继续用,可以直接写配置文件。
智谱官方文档给的是这套写法:
{
"env": {
"ANTHROPIC_AUTH_TOKEN": "your_zhipu_api_key",
"ANTHROPIC_BASE_URL": "https://open.bigmodel.cn/api/anthropic",
"API_TIMEOUT_MS": "3000000",
"CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": 1
}
}
这个文件的位置是:
• macOS / Linux:~/.claude/settings.json
• Windows:用户目录/.claude/settings.json
另外还要补一个 onboarding 标记:
{
"hasCompletedOnboarding": true
}
这个文件的位置是:
• macOS / Linux:~/.claude.json
• Windows:用户目录/.claude.json
macOS 上如果直接把环境变量写进 ~/.bashrc,还要注意 shell 差异。默认终端往往跑的是 zsh,新开 session 时不一定会自动加载 ~/.bashrc。
处理办法有两种:
1. 直接把 Claude Code 相关配置写进 ~/.zshrc
2. 或者在 ~/.zshrc 里补一段,把 ~/.bashrc 自动加载进来
if [ -f ~/.bashrc ]; then
source ~/.bashrc
fi
不然就会出现这种情况:刚 source ~/.bashrc 时能用,新开一个终端又失效。
如果第一轮不是想试智谱,下面这些写法也可以直接换进去。
MiniMax:
export ANTHROPIC_BASE_URL=https://api.minimaxi.com/anthropic
export ANTHROPIC_AUTH_TOKEN=你的MiniMaxAPIKey
export API_TIMEOUT_MS=3000000
export CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1
export ANTHROPIC_MODEL=MiniMax-M2.7
claude
Kimi 官方:
export ANTHROPIC_BASE_URL=https://api.moonshot.cn/anthropic
export ANTHROPIC_AUTH_TOKEN=你的KimiAPIKey
export ANTHROPIC_MODEL=kimi-k2.5
export ANTHROPIC_DEFAULT_OPUS_MODEL=kimi-k2.5
export ANTHROPIC_DEFAULT_SONNET_MODEL=kimi-k2.5
export ANTHROPIC_DEFAULT_HAIKU_MODEL=kimi-k2.5
export CLAUDE_CODE_SUBAGENT_MODEL=kimi-k2.5
export ENABLE_TOOL_SEARCH=false
claude
Kimi 这组配置里容易漏的是:
• 除了主模型,还要把 DEFAULT_OPUS / DEFAULT_SONNET / DEFAULT_HAIKU / SUBAGENT_MODEL 一起映射到同一个模型
第三方聚合平台:
export ANTHROPIC_BASE_URL=https://api.poloai.top/v1
export ANTHROPIC_API_KEY=你的第三方APIKey
claude
先看一个区分:有的平台用 ANTHROPIC_API_KEY,有的平台用 ANTHROPIC_AUTH_TOKEN。
智谱、MiniMax、Kimi 这类 Anthropic 兼容端点,官方文档更常见的是 ANTHROPIC_AUTH_TOKEN。
第三方聚合平台更常见的是 ANTHROPIC_API_KEY。
除了认证字段,不同平台还会在下面这些变量上有差别:
• 只需要 BASE_URL + TOKEN
• 还要加 ANTHROPIC_MODEL
• 还要改 DEFAULT_OPUS / DEFAULT_SONNET / DEFAULT_HAIKU
• 有的还会改 CLAUDE_CODE_SUBAGENT_MODEL
如果只是试通,先配最少的一组。 如果准备长期使用,再按平台文档把默认模型映射补齐。
长期使用时,不要动系统里原来的 claude,单独再造一个命令。下面用 claude-doubao 举例。
先在单独目录里装一份 Claude Code:
mkdir ~/claude-model
cd ~/claude-model
npm init -y
npm install @anthropic-ai/claude-code
mkdir .claude-doubao
mkdir ~/claude-model/bin
再在 ~/claude-model/bin 下面放一个 wrapper:
#!/usr/bin/env bash
CLAUDE_BIN="$HOME/claude-model/node_modules/.bin/claude"
export ANTHROPIC_AUTH_TOKEN="YOUR_DOUBAO_API_KEY"
export ANTHROPIC_BASE_URL="https://ark.cn-beijing.volces.com/api/compatible"
export ANTHROPIC_MODEL="doubao-seed-code-preview-latest"
export API_TIMEOUT_MS=3000000
export CLAUDE_CONFIG_DIR="$HOME/claude-model/.claude-doubao"
exec "
加执行权限:
chmod +x ~/claude-model/bin/claude-doubao
以后用豆包时直接执行:
claude-doubao
claude 继续连原版 Claude。
claude-doubao 只连豆包。
配置目录单独隔开:
export CLAUDE_CONFIG_DIR="$HOME/claude-model/.claude-doubao"
这样可以把配置、缓存和状态隔开。后面可以继续加:
• claude-kimi
• claude-glm
• claude-minimax
工作流本身不变:
• 进项目目录
• 启动 Claude Code
• 给任务
• 看它读文件、写代码、跑命令
只是底层模型换了。平台差异也可以收进 wrapper 里,不用自己去记一堆环境变量组合。
如果不只接一个模型,而是想按任务类型切模型,单靠环境变量和 wrapper 就不够了。这个时候可以在本地再放一层代理。
安装命令是:
npm i -g @anthropic-ai/claude-code-router
它的做法不是直接改 Claude Code 本体,而是在本地起一个服务,然后让 Claude Code 去访问这个本地服务。 本地服务再把请求转发到你指定的国产模型。
配置文件是:
~/.claude-code-router/config.json
这份配置里先看两部分:
• Providers
• Router
Providers 负责把不同模型提供商挂进来。
Router 负责决定什么任务走什么模型。
可以按任务类型做路由:
{
"Router": {
"default": "aliyun,qwen3-max-preview",
"background": "GLM,deepseek-v3.1",
"think": "aliyun,deepseek-r1-0528",
"longContext": "GLM,deepseek-v3.1",
"longContextThreshold": 50000,
"webSearch": "GLM,qwen3-max-preview"
}
}
下面这组字段就是按任务类型拆模型:
• default:普通任务
• background:后台任务
• think:推理更重的任务
• longContext:长上下文任务
• webSearch:联网搜索相关任务
如果已经开始并行试多个模型,这种方式更适合长期使用。
claude-code-router 自己提供的是 ccr 命令,但直接用 ccr 会有几个问题:
• VS Code 里的 Claude Code 插件用不上这套模型
• 命令行里不能继续直接用 claude
• 某些包月兼容服务也接不进去
做法是继续让 claude 当入口。
做法是在:
~/.claude/settings.json
里写环境变量,让 Claude Code 继续走本地代理:
{
"env": {
"ANTHROPIC_BASE_URL": "http://127.0.0.1:65430",
"ANTHROPIC_API_KEY": "yourpassword"
}
}
这样你命令行里还是敲:
claude
但背后已经不再是直连 Anthropic,而是先走本地 router。
这样做解决两件事:
• 平时不用换命令习惯
• VS Code 插件也能跟这套配置对齐
如果改了配置,记得再执行一次:
claude restart
不重启的话,旧配置还会留在当前会话里。
如果你不想手改 settings.json,也不想自己维护 wrapper,cc-switch 是另一条路。
它本身是一个桌面工具,支持:
• Claude Code
• Codex
• Gemini CLI
• OpenCode
• OpenClaw
Claude Code 这边最直接的用法,就是把不同 provider 做成可切换配置。
macOS 可以直接用 Homebrew:
brew tap farion1231/ccswitch
brew install --cask cc-switch
装好以后,基本流程就是:
1. 添加一个 provider
2. 选择预设或自己填兼容端点
3. 切换到这个 provider
4. 重开终端或对应 CLI 工具
它的 README 里写得很明确:系统始终会保留一个 active configuration。 如果想切回官方登录,也是在 provider 列表里加一个 official provider,再走登录流程。
cc-switch 适合下面几种情况:
• 平时会在多个 provider 之间切换
• 不想手改配置文件
• 不只在用 Claude Code,还同时在用 Codex、Gemini CLI 这类工具
Write an HTML and JavaScript page implementing space invaders
然后在新目录里执行:
mkdir space-invaders
cd space-invaders
claude-doubao
这个例子可以用来看三件事:
• Claude Code 这套交互还能不能继续用
• 工程 agent 这套操作方式有没有变
• 差异是落在模型质量、速度和稳定性,还是落在外层工作流
接得上,不代表效果会一样。
差异通常会落在:
• 代码质量
• 长上下文表现
• 工具调用稳定性
• 中文说明能力
• 出错后的自我修复能力
常见做法是:
• 成本敏感、中文任务、普通生成任务:先用国产模型
• 复杂重构、深度调试、难题攻坚:切回原版 Claude
Claude Code 的 token 消耗很快。
如果只是用免费额度,或者按 token 直接计费,跑一段时间就会看到消耗上来。 这也是为什么它会区分:
• 免费额度先试
• 长期使用再考虑包月或按 prompt 计次的服务
无论你改的是:
• ~/.claude/settings.json
• ~/.claude-code-router/config.json
• wrapper 里的环境变量
都不要忘了重启相关会话。 不然你看到的行为,很可能还是旧配置。
重启之后,最好进 Claude Code 跑一次:
/status
用这一步确认当前会话切到了哪个模型。
如果平时在 VS Code 里用 Claude Code 插件,终端配好以后,插件侧也要补一次。
至少要改两块:
1. Claude Code: Selected Model 改成 MiniMax-M2.7
2. claudeCode.environmentVariables 里写同一组环境变量
最小配置大概是:
{
"claudeCode.selectedModel": "minimax-m2.7",
"claudeCode.environmentVariables": [
{
"name": "ANTHROPIC_BASE_URL",
"value": "https://api.minimaxi.com/anthropic"
},
{
"name": "ANTHROPIC_AUTH_TOKEN",
"value": "<MINIMAX_API_KEY>"
},
{
"name": "ANTHROPIC_MODEL",
"value": "MiniMax-M2.7"
}
]
}
终端里已经能用,插件里还是默认 Claude,通常就是这一步没有补。
智谱文档里专门提到过 Claude Code v2.1.69 的一个已知问题。
如果你在这个版本里跑 claude-opus-4-6 有异常,要先补这两个环境变量:
export ENABLE_TOOL_SEARCH=0
export CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1
再重新启动 Claude Code。
如果你把密钥写进:
• .env
• wrapper 脚本
• settings.json
• router 配置文件
就要知道它已经是敏感信息。 不要顺手提交进公开仓库。
尤其是下面这些字段:
• ANTHROPIC_BASE_URL
• ANTHROPIC_MODEL
• ANTHROPIC_API_KEY
• ANTHROPIC_AUTH_TOKEN
不同平台会调整兼容路径、模型别名和认证字段。 配置可以先照着教程起步,最后还是要以对应平台当天的官方文档为准。