Last active
December 15, 2025 06:40
-
-
Save LeslieLeung/46838a2009d35916392aab04613ed7a6 to your computer and use it in GitHub Desktop.
A sleek script to switch between Claude Code providers.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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