# ai-switch **Repository Path**: tommy2z/ai-switch ## Basic Information - **Project Name**: ai-switch - **Description**: claude 供应快速切换,支持多终端不同模型 - **Primary Language**: Rust - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 1 - **Created**: 2026-03-23 - **Last Updated**: 2026-04-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: cli-tools ## README # switch CLI 工具,用于切换 Claude Code API 配置。支持多 profile 管理,一键切换不同的 AI 服务商。 ## 安装 ```bash # 编译 cargo build --release # 安装到系统(需要 sudo) sudo ./target/release/switch install # 或手动复制 sudo cp ./target/release/switch /usr/local/bin/ ``` ## 快速开始 ```bash # 添加 profile switch add glm --key "your-api-key" --base-url "https://open.bigmodel.cn/api/anthropic" # 初始化 shell(自动写入配置文件) switch init zsh source ~/.zshrc # 切换 profile sw glm # 查看当前 profile switch current # 列出所有 profiles switch list ``` ## 命令 ### switch add 添加新的 profile。 ```bash switch add --key [options] ``` | 参数 | 说明 | |------|------| | `--key, -k` | API key(必填) | | `--base-url, -b` | API 端点(可选) | | `--default-model, -d` | 默认模型,设置 `ANTHROPIC_MODEL`(可选) | | `--model, -m` | 模型映射,格式 `ENV_VAR=MODEL`(可多次指定) | ### switch use 切换到指定 profile,输出 shell export 语句。 ```bash # 切换到指定 profile eval "$(switch use glm)" # 无参数时加载当前 profile eval "$(switch use)" ``` ### switch list / ls 列出所有 profiles。 ### switch current 显示当前激活的 profile 配置。 ### switch edit 编辑已有 profile。 ```bash switch edit [options] ``` | 参数 | 说明 | |------|------| | `--key, -k` | 更新 API key | | `--base-url, -b` | 更新 base URL(空字符串移除) | | `--default-model, -d` | 更新默认模型(空字符串移除) | | `--model, -m` | 添加模型映射 | | `--remove-model, -r` | 删除模型映射 | ### switch rm 删除 profile。 ```bash switch rm ``` ### switch export / import 导出/导入 profiles 配置。 ```bash # 导出所有 switch export -o profiles.toml # 导出指定 switch export glm minimax -o profiles.toml # 导入 switch import -i profiles.toml # 导入并覆盖 switch import -i profiles.toml --force ``` ### switch validate 验证配置。 ```bash switch validate # 验证所有 switch validate glm # 验证指定 profile ``` ### switch init 自动写入 shell 初始化脚本到配置文件。 ```bash # zsh switch init zsh # bash switch init bash # fish switch init fish ``` 特点: - 自动检测重复,不会重复添加 - 写入后提示 `source` 命令 配置后: - 新终端自动加载当前 profile - 使用 `sw ` 快速切换 ## 示例:添加服务商 ### 智谱 GLM ```bash switch add glm \ --key "your-zhipu-api-key" \ --default-model "glm-5" \ --base-url "https://open.bigmodel.cn/api/anthropic" \ --model "ANTHROPIC_DEFAULT_OPUS_MODEL=glm-5" \ --model "ANTHROPIC_DEFAULT_SONNET_MODEL=glm-5" \ --model "ANTHROPIC_DEFAULT_HAIKU_MODEL=glm-4.5-air" ``` ### MiniMax ```bash switch add minimax \ --key "your-minimax-api-key" \ --default-model "MiniMax-M2.7-highspeed" \ --base-url "https://api.minimaxi.com/anthropic" \ --model "ANTHROPIC_DEFAULT_OPUS_MODEL=MiniMax-M2.7-highspeed" \ --model "ANTHROPIC_DEFAULT_SONNET_MODEL=MiniMax-M2.7-highspeed" \ --model "ANTHROPIC_DEFAULT_HAIKU_MODEL=MiniMax-M2.7-highspeed" ``` ### DeepSeek ```bash switch add deepseek \ --key "your-deepseek-api-key" \ --default-model "deepseek-chat" \ --base-url "https://api.deepseek.com/anthropic" \ --model "ANTHROPIC_DEFAULT_OPUS_MODEL=deepseek-chat" \ --model "ANTHROPIC_DEFAULT_SONNET_MODEL=deepseek-chat" \ --model "ANTHROPIC_DEFAULT_HAIKU_MODEL=deepseek-chat" ``` ### Anthropic 原生(无需 base_url) ```bash switch add claude \ --key "sk-ant-your-key" \ --model "ANTHROPIC_DEFAULT_OPUS_MODEL=claude-opus-4-6" \ --model "ANTHROPIC_DEFAULT_SONNET_MODEL=claude-sonnet-4-6" \ --model "ANTHROPIC_DEFAULT_HAIKU_MODEL=claude-haiku-4-5" ``` ## 环境变量 切换 profile 时会设置以下环境变量: | 变量 | 说明 | |------|------| | `ANTHROPIC_AUTH_TOKEN` | API key | | `ANTHROPIC_BASE_URL` | API 端点(如果配置) | | `ANTHROPIC_MODEL` | 默认模型(如果配置) | | `ANTHROPIC_DEFAULT_OPUS_MODEL` | Opus 模型映射 | | `ANTHROPIC_DEFAULT_SONNET_MODEL` | Sonnet 模型映射 | | `ANTHROPIC_DEFAULT_HAIKU_MODEL` | Haiku 模型映射 | | `SWITCH_CURRENT_PROFILE` | 当前 profile 名称 | ## Shell 集成 **推荐方式**(使用 `switch init`): ```bash # zsh switch init zsh source ~/.zshrc # bash switch init bash source ~/.bashrc # fish switch init fish source ~/.config/fish/config.fish ``` 配置后: - 新终端自动加载当前 profile - `sw ` 快速切换 - `sw` 无参数加载当前 profile **手动方式**: ```bash # 添加到 ~/.zshrc 或 ~/.bashrc alias sw='eval "$(switch use)"' ``` ## 配置文件 配置存储在 `~/.switch/config.toml`: ```toml current = "glm" [profiles.glm] api_key = "your-api-key" base_url = "https://open.bigmodel.cn/api/anthropic" default_model = "glm-5" [profiles.glm.model_mapping] ANTHROPIC_DEFAULT_OPUS_MODEL = "glm-5" ANTHROPIC_DEFAULT_SONNET_MODEL = "glm-5" ANTHROPIC_DEFAULT_HAIKU_MODEL = "glm-4.5-air" ``` ## 构建 ```bash cargo build --release # 构建 cargo test # 测试 ```