绍完整的配置流程。原理Claude Code 启动时会读取~/.claude/settings.json中的env字段将其作为环境变量注入运行时。我们只需修改ANTHROPIC_BASE_URL和ANTHROPIC_AUTH_TOKEN就能把请求指向第三方 API。核心是Anthropic Messages API 兼容协议——DeepSeek、阿里云百炼等平台都提供了兼容该协议的端点Claude Code 无需修改即可直接对接。关键环境变量变量说明ANTHROPIC_BASE_URLAPI 端点地址改为第三方服务地址ANTHROPIC_AUTH_TOKENAPI Key / TokenANTHROPIC_MODEL默认使用的模型名称ANTHROPIC_DEFAULT_OPUS_MODELOpus 级别模型ANTHROPIC_DEFAULT_SONNET_MODELSonnet 级别模型ANTHROPIC_DEFAULT_HAIKU_MODELHaiku 级别模型CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC设为1禁用非必要网络请求建议开启Claude Code 区分三个模型级别Opus Sonnet HaikuFast/Think 模式走 Opus普通模式走 Sonnet轻量任务走 Haiku。如果第三方只提供一个模型把三个值设成同一个即可。绕过登录验证必须Claude Code 启动时会检查你是否完成了 Anthropic 官方的登录引导未完成则强制进入登录流程。使用第三方 API 时需要手动跳过此检查。编辑~/.claude.jsonWindows 路径C:\Users\用户名\.claude.json添加或修改{ hasCompletedOnboarding: true }如果该文件已有其他内容只需确保hasCompletedOnboarding字段存在且为true不要覆盖其他字段。做完这一步Claude Code 就不会再要求登录 Anthropic 账号了。接入 DeepSeekDeepSeek 提供了原生的 Anthropic 兼容端点。在~/.claude/settings.json中配置{ env: { ANTHROPIC_BASE_URL: https://api.deepseek.com/anthropic, ANTHROPIC_AUTH_TOKEN: sk-你的DeepSeek-API-Key, ANTHROPIC_MODEL: deepseek-v4-pro[1m], ANTHROPIC_DEFAULT_OPUS_MODEL: deepseek-v4-pro[1m], ANTHROPIC_DEFAULT_SONNET_MODEL: deepseek-v4-pro[1m], ANTHROPIC_DEFAULT_HAIKU_MODEL: deepseek-v4-flash[1m], CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC: 1 } }获取 API Keyplatform.deepseek.com接入千问阿里云百炼通过阿里云百炼平台的模型服务接入千问模型。{ env: { ANTHROPIC_BASE_URL: https://token-plan.cn-beijing.maas.aliyuncs.com/apps/anthropic, ANTHROPIC_AUTH_TOKEN: sk-你的千问Token, ANTHROPIC_MODEL: qwen3.6-plus, ANTHROPIC_DEFAULT_HAIKU_MODEL: qwen3.6-plus, ANTHROPIC_DEFAULT_SONNET_MODEL: qwen3.6-plus, ANTHROPIC_DEFAULT_OPUS_MODEL: qwen3.6-plus } }获取 Token阿里云百炼控制台 → 模型服务 → Anthropic 兼容接口。多环境管理cenv如果你和我一样同时用多个模型手动改 JSON 很烦。我写了一个小脚本cenv两步切换环境。安装第一步创建脚本文件touch ~/.claude/cenv chmod x ~/.claude/cenv第二步复制以下代码到~/.claude/cenv#!/usr/bin/env bash set -euo pipefail CLAUDE_DIR$HOME/.claude SETTINGS_FILE$CLAUDE_DIR/settings.json list_envs() { local current if [[ -L $SETTINGS_FILE ]]; then current$(basename $(readlink $SETTINGS_FILE)) fi echo 可用环境: for f in $CLAUDE_DIR/claude-settings-*.json; do [[ -f $f ]] || continue local filename$(basename $f) local name${filename#claude-settings-} name${name%.json} local marker [[ $filename $current ]] marker* echo ${marker}${name} done echo echo 当前: ${current:-未设置} } switch_env() { local name$1 local target$CLAUDE_DIR/claude-settings-${name}.json if [[ ! -f $target ]]; then echo 错误: 环境 $name 不存在 exit 1 fi rm -f $SETTINGS_FILE ln -s $target $SETTINGS_FILE echo 已切换到: $name } case ${1:-} in ls|list) list_envs ;; use) switch_env ${2:?请指定环境名称} ;; *) echo 用法: cenv ls|use name ;; esac第三步将~/.claude加入 PATH在~/.zshrc末尾添加bash 用户改~/.bashrcexport PATH$HOME/.claude:$PATH**第四步让zshrc生效source ~/.zshrc目录结构示意以上步骤完成后你的~/.claude目录应类似~/.claude/ ├── cenv # 切换脚本 ├── settings.json # 软链接 → 指向当前激活的配置 ├── claude-settings-ds.json # DeepSeek 配置 ├── claude-settings-qw.json # 千问配置 └── claude-settings-xxx.json # 未来新增的任何配置 # 还有一些别的自动生成的配置不重要使用只有两条命令cenv ls # 列出所有环境* 标注当前激活 cenv use qw # 切换到千问切换后直接claude启动即可不需要重启终端。原理cenv 做的事情非常简单cenv use qw执行时它删除settings.json然后创建一个同名的软链接指向claude-settings-qw.json。Claude Code 启动时无感读取始终只认settings.json实际内容由软链接决定。命名约定cenv use xx中的xx必须对应claude-settings-xx.json的文件名。例如cenv use ds → claude-settings-ds.json cenv use qw → claude-settings-qw.json cenv use qianfan → claude-settings-qianfan.jsoncenv ls会自动扫描~/.claude/下所有claude-settings-*.json文件并提取名称所以新增模型配置时只需按claude-settings-名称.json命名放进去脚本不用改。注意事项第三方 API 支持程度不一不同厂商的 Anthropic 兼容实现深度不同实际体验可能有差异。建议所有模型级别Opus/Sonnet/Haiku都指向同一个模型避免行为不一致。Token 消耗Claude Code 是对话密集型工具token 消耗较大。使用第三方模型前确认账户额度充足。