Skip to content

Instantly share code, notes, and snippets.

@LeslieLeung
Last active December 15, 2025 06:40
Show Gist options
  • Select an option

  • Save LeslieLeung/46838a2009d35916392aab04613ed7a6 to your computer and use it in GitHub Desktop.

Select an option

Save LeslieLeung/46838a2009d35916392aab04613ed7a6 to your computer and use it in GitHub Desktop.
A sleek script to switch between Claude Code providers.
function claude() {
# 默认渠道配置
local default_provider=""
# 定义不同服务的配置
local base_url=""
local auth_token=""
local api_key=""
local model=""
local small_fast_model=""
local default_sonnet_model=""
local default_opus_model=""
local default_haiku_model=""
local api_timeout_ms=""
local disable_nonessential_traffic=""
case "$1" in
"kimi")
base_url="https://api.moonshot.cn/anthropic"
auth_token=""
model="kimi-k2-thinking"
small_fast_model="kimi-k2-turbo-preview"
shift
;;
"aihubmix")
base_url="https://aihubmix.com"
api_key=""
shift
;;
"siliconflow")
base_url="https://api.siliconflow.cn/"
model="moonshotai/Kimi-K2-Instruct"
api_key=""
shift
;;
"anthropic")
base_url="https://api.anthropic.com"
auth_token=""
shift
;;
"minimax")
base_url="https://api.minimaxi.com/anthropic"
auth_token=""
model="MiniMax-M2"
small_fast_model="MiniMax-M2"
default_sonnet_model="MiniMax-M2"
default_opus_model="MiniMax-M2"
default_haiku_model="MiniMax-M2"
api_timeout_ms="3000000"
disable_nonessential_traffic="1"
shift
;;
"glm")
base_url="https://open.bigmodel.cn/api/anthropic"
auth_token=""
api_timeout_ms="3000000"
disable_nonessential_traffic="1"
shift
;;
*|"")
# 如果第一个参数不在case里,使用默认提供商
# 只有当default_provider不为空时才递归调用
if [[ -n "$default_provider" ]]; then
claude "$default_provider" "$@"
return 0
else
# 如果default_provider为空,直接使用command claude
command claude "$@"
return 0
fi
;;
esac
# 构建环境变量字符串
local env_vars=""
# 设置基础URL
if [[ -n "$base_url" ]]; then
env_vars="$env_vars ANTHROPIC_BASE_URL=\"$base_url\""
fi
# 设置认证token
if [[ -n "$auth_token" ]]; then
env_vars="$env_vars ANTHROPIC_AUTH_TOKEN=\"$auth_token\""
fi
# 设置API key
if [[ -n "$api_key" ]]; then
env_vars="$env_vars ANTHROPIC_API_KEY=\"$api_key\""
fi
# 设置model环境变量
if [[ -n "$model" ]]; then
env_vars="$env_vars ANTHROPIC_MODEL=\"$model\""
fi
# 设置small_fast_model环境变量
if [[ -n "$small_fast_model" ]]; then
env_vars="$env_vars ANTHROPIC_SMALL_FAST_MODEL=\"$small_fast_model\""
fi
# 设置default_sonnet_model环境变量
if [[ -n "$default_sonnet_model" ]]; then
env_vars="$env_vars ANTHROPIC_DEFAULT_SONNET_MODEL=\"$default_sonnet_model\""
fi
# 设置default_opus_model环境变量
if [[ -n "$default_opus_model" ]]; then
env_vars="$env_vars ANTHROPIC_DEFAULT_OPUS_MODEL=\"$default_opus_model\""
fi
# 设置default_haiku_model环境变量
if [[ -n "$default_haiku_model" ]]; then
env_vars="$env_vars ANTHROPIC_DEFAULT_HAIKU_MODEL=\"$default_haiku_model\""
fi
# 设置api_timeout_ms环境变量
if [[ -n "$api_timeout_ms" ]]; then
env_vars="$env_vars API_TIMEOUT_MS=\"$api_timeout_ms\""
fi
# 设置disable_nonessential_traffic环境变量
if [[ -n "$disable_nonessential_traffic" ]]; then
env_vars="$env_vars CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=\"$disable_nonessential_traffic\""
fi
# 设置环境变量并调用实际的 claude 命令
if [[ -n "$env_vars" ]]; then
eval "$env_vars command claude \"\$@\""
else
command claude "$@"
fi
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment