Clauce Code 使用第三方 API 并优雅地完成多个供应商切换(如 Kimi K2等)
编辑
30
2025-07-17
Claude Code 除了登录 Claude 账号使用,还可以通过设定 ANTHROPIC_BASE_URL
和 ANTHROPIC_AUTH_TOKEN
/ ANTHROPIC_API_KEY
来使用第三方的 API 或者其他兼容 Anthropic 接口格式的模型。
一般的使用方式:
ANTHROPIC_BASE_URL=<YOUR_URL> ANTHROPIC_AUTH_TOKEN=<YOUR_TOKEN> claude
也有用以下这种的,不建议,会把环境变量留在当前会话里:
export ANTHROPIC_BASE_URL=<YOUR_URL>; export ANTHROPIC_AUTH_TOKEN=<YOUR_TOKEN>; claude
于是我们可以写一个简单的 zsh 脚本来实现切换多个供应商的功能。
function claude() {
# 定义不同服务的配置
local base_url=""
local auth_token=""
local api_key=""
case "$1" in
"kimi")
base_url="https://api.moonshot.cn/anthropic"
auth_token="YOUR_MOONSHOT_KEY"
shift # 移除第一个参数
;;
"aihubmix")
base_url="https://aihubmix.com"
api_key="YOUR_AIHUBMIX_KEY"
shift # 移除第一个参数
;;
"anthropic"|"")
# 默认或显式指定 anthropic
base_url="https://api.anthropic.com"
auth_token="YOUR_ANTHROPIC_API_TOKEN"
if [[ "$1" == "anthropic" ]]; then
shift # 移除第一个参数
fi
;;
*)
echo "未知的服务: $1"
return 1
;;
esac
# 设置环境变量并调用实际的 claude 命令
if [[ -n "$auth_token" ]]; then
ANTHROPIC_BASE_URL="$base_url" ANTHROPIC_AUTH_TOKEN="$auth_token" command claude "$@"
elif [[ -n "$api_key" ]]; then
ANTHROPIC_BASE_URL="$base_url" ANTHROPIC_API_KEY="$api_key" command claude "$@"
else
ANTHROPIC_BASE_URL="$base_url" command claude "$@"
fi
}
使用时,只需要输入 claude kimi
或者 claude aihubmix
就可以切换不同的供应商,同时还能支持 claude 原来的各种命令参数。
其他方式
这种方式只能支持 Anthropic 接口格式的 API,如果你的供应商是 OpenAI 格式的,可以使用 musistudio/claude-code-router这个项目,同时还支持指定不同情况下使用的模型。但是毕竟这个方式是通过逆向接口、本地起代理来实现的,用起来并非 Claude Code 正宗的体验,也不是很优雅。
通过我这种方法,如果使用 aihubmix 或者 anyrouter 这种支持 Anthropic 接口格式的服务,就可以获得正宗的 Claude Code 体验啦。需要注意他们对应的接口不一定跟 OpenAI 格式的相同,具体可以参考使用文档。另外,aihubmix 使用 ANTHROPIC_API_KEY
而不是 ANTHROPIC_AUTH_TOKEN
,脚本里已经做了兼容。
References
Claude Code settings - Anthropic
Kimi K2 详测|超强代码和 Agent 能力!内附 Claude Code 邪修教程
AiHubMix Documentation Hub
- 0
- 0
-
赞助
微信赞赏码
-
分享