Gitee 镜像: https://gitee.com/776311606/API-Switch
Claude Code 多模型代理 — 一键切换 DeepSeek、Qwen(通义千问)、GLM(智谱)、Moonshot(月之暗面)、Agnes AI 等大模型,协议自动转换,零配置即用。
接收 Anthropic 格式请求,根据模型名自动路由到对应提供商,协议自动转换,模型即切即用。
claude → api-switch → ├─ claude-* → Anthropic API (透传)
├─ gpt-4o → 转 OpenAI 协议 → OpenAI API → 转回 Anthropic 格式
├─ deepseek → 转 OpenAI 协议 → DeepSeek API → 转回 Anthropic 格式
├─ agnes → 转 OpenAI 协议 → Agnes AI → 转回 Anthropic 格式
└─ qwen → 转 OpenAI 协议 → DashScope API → 转回 Anthropic 格式
-
零配置切换模型 —
api-switch use <model>即刻切换,Claude Code 热加载 - 多提供商支持 — Anthropic、OpenAI、DeepSeek、Qwen、Moonshot、Agnes AI 等任意 OpenAI 兼容 API
- 协议自动转换 — Anthropic ↔ OpenAI 双向转换,含流式 SSE、工具调用、多模态图片
- Provider 模板 — 内置 13 个厂商预设(含 Agnes AI 免费大模型),一条命令添加
- 安全加固 — API Key 加密存储、Bearer 认证、速率限制、TLS 支持
- 自动更新 — 启动时自动检测新版本,SHA256 校验和验证,静默下载并重启升级
- 优雅关闭 — SIGINT/SIGTERM 信号处理,安全关闭代理服务
- 实时监控 — Web 仪表盘 + 终端实时日志
- 热加载配置 — 修改配置文件自动生效,无需重启
-
一键诊断 —
api-switch doctor快速定位配置问题 - 批量导入 — 自动拉取 API 可用模型列表
-
端到端测试 —
api-switch test [model]验证代理是否正常工作 -
provider 连通性检测 —
api-switch provider test <name>测试厂商 API 是否可达 -
用量统计 —
api-switch usage按天统计 Token 用量、缓存命中率 - 国内镜像 — Gitee 同步 + goproxy.cn 加速安装
v0.9.2 — 安全审计加固版:31 个问题修复、滑动窗口限流、时序安全比对、原子配置、SSE 流稳定性
# 安装
npm install -g api-switch-cc
# 查看所有内置厂商
api-switch provider known
# DeepSeek — 自动填充 base_url、type、建议模型
api-switch setup deepseek --key sk-xxx
# Agnes AI — 免费大模型,注册即用 https://platform.agnes-ai.com/
api-switch setup agnes --key sk-xxx
# 启动(自动检测更新)
api-switch serve# 1. 查看已知厂商
api-switch provider known
# 2. 添加提供商
api-switch provider add deepseek --key sk-xxx
# 2. 导入模型
api-switch model import deepseek
# 3. 切换模型,启动代理
api-switch use deepseek-chat
api-switch serve之后正常使用 claude 命令即可,所有请求自动通过代理路由。
# 全局安装(秒完成,二进制首次运行时自动安装)
npm install -g api-switch-cc
# 或直接使用(无需安装)
npx api-switch-cc servenpm 包秒装(无 postinstall 阻塞),二进制在首次运行 api-switch 时自动安装。
# 更新到最新版
api-switch update
# 或
npm install -g api-switch-cc@latest国内用户: npm 包会自动优先从 gitee.com 版本化镜像下载(release/vX.Y.Z/ 目录),其次尝试 GitHub,最后回退到源码编译或 go install。全程无需手动干预。
# 普通用户
curl -sSL https://raw.githubusercontent.com/hxz0727/API-Switch/master/install.sh | bash
# 国内用户(优先 Gitee 镜像)
curl -sSL https://gitee.com/776311606/API-Switch/raw/master/install.sh | bash脚本会自动:检查/安装 Go → 克隆仓库 → 编译二进制 → 添加到 PATH。
docker build -t api-switch .
docker run -d -p 8080:8080 \
-v ~/.api-switch.yaml:/root/.api-switch.yaml \
-v ~/.claude:/root/.claude \
api-switchgit clone https://github.com/hxz0727/API-Switch.git
cd API-Switch
make build # 或 go build -o api-switch ./cmd/api-switch/
make install # 安装到 ~/.local/bin/$ api-switch
API-Switch — LLM API proxy for Claude Code
================================================
快速开始:
# 1. 添加一个供应商(支持已知厂商预设)
api-switch provider add deepseek --key sk-xxx
...# 从预设模板添加(自动填充 base_url 和 type,未传 --key 会交互式输入)
api-switch provider add deepseek --key sk-xxx
api-switch provider add qwen
# → Enter API key for "qwen": _
# 支持的厂商(共 13 个,运行 api-switch provider known 查看完整列表)
# deepseek → https://api.deepseek.com
# qwen → https://dashscope.aliyuncs.com/compatible-mode/v1
# moonshot → https://api.moonshot.cn/v1
# glm → https://open.bigmodel.cn/api/paas/v4
# kimi → https://api.moonshot.cn/v1
# yi → https://api.lingyiwanwu.com/v1
# step → https://api.stepfun.com/v1
# ernie → https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat
# hunyuan → https://api.hunyuan.cloud.tencent.com/v1
# agnes → https://apihub.agnes-ai.com/v1 (免费,注册即用)
# apifree → https://api.apifree.ai/agent/v1
# sensenova → https://token.sensenova.cn/v1 (商汤商量)
# nvidia → https://integrate.api.nvidia.com/v1 (英伟达)
# 自定义提供商
api-switch provider add my-provider \
--url https://my-api.com/v1 \
--type openai \
--key sk-xxx
# 查看所有提供商
api-switch provider list # 已配置的提供商
api-switch provider known # 查看所有内置厂商预设(13 个)
# 测试提供商连通性
api-switch provider test deepseek # 也可用 provider ping# 列出所有模型
api-switch model list # 也可用 model ls
# 添加模型路由
api-switch model add deepseek-chat deepseek
# 批量导入(自动查询 API 的 /v1/models)
api-switch model import deepseek
api-switch model import openai --filter gpt-4 # 只导入 gpt-4 相关模型
# 删除模型
api-switch model remove deepseek-chat# 查看所有可用模型(→ 标记当前激活的)
api-switch use
# 切换到指定模型
api-switch use gpt-4o
api-switch use deepseek-chat
api-switch use qwen-plus
api-switch use agnes-2.0-flash# 已知厂商(自动填充 type、url、建议模型)
api-switch setup deepseek --key sk-xxx
# 自定义厂商
api-switch setup --name custom --type openai --url https://... --key sk-xxx --models m1,m2
# 以上命令会自动:
# 1. 添加 provider 到配置
# 2. 添加模型到路由表
# 3. 生成 Claude Code settings.json# 测试当前激活的模型
api-switch test
# 测试指定模型
api-switch test deepseek-chat
# → ✓ Response received (stop_reason=end_turn, input=56, output=10)# 默认 8080 端口(自动同步 settings.json)
api-switch serve
# 自定义端口 + 持久化到配置
api-switch serve -p 9090
# settings.json 和 .api-switch.yaml 自动同步
# 仅运行时使用,不保存到配置
api-switch serve -p 9090 --no-save-port
# 日志级别
api-switch serve -vv # debug 级别日志
api-switch serve -v # 带请求详情
api-switch serve -q # 仅显示错误
api-switch serve --no-auto-update # 跳过自动更新检查# 启动后台服务
api-switch start
# 查看状态
api-switch status
# 查看日志
api-switch logs
# 重启
api-switch restart
# 停止
api-switch stop# 按天查看 Token 用量和缓存命中率
api-switch usage
# 重置统计
api-switch usage --reset# 检查更新
api-switch update --check
# 自动更新到最新版
api-switch update
# 启动时自动检测(默认开启)
api-switch serve # 自动检查 + 静默升级
api-switch serve --no-auto-update # 跳过自动检查# Web 仪表盘(浏览器打开 http://localhost:8080/admin/)
api-switch monitor --web
# 终端实时监控
api-switch monitor
# 一键诊断
api-switch doctorapi-switch config show # 查看配置(key 脱敏)
api-switch config cat # 同上,别名
api-switch config set providers.openai.api_key sk-xxx
api-switch config init # 创建默认配置启动服务后访问 http://localhost:8080/admin/:
- 实时请求列表(SSE 推送)
- 请求总数、平均耗时、模型分布统计
- 每条请求的模型、Provider、耗时、状态
# 配置
api-switch provider add anthropic --key sk-ant-xxx --url https://api.anthropic.com --type anthropic
api-switch provider add deepseek --key sk-xxx
api-switch setup agnes --key sk-xxx # Agnes AI 免费大模型
# 使用
api-switch use deepseek-chat # 切换到 DeepSeek
api-switch serve
# Claude Code 会话中随时切换:
api-switch use agnes-2.0-flash # 切到 Agnes AI(免费)
api-switch use claude-sonnet-4-20250514 # 切回 Claudeapi-switch setup qwen --key sk-xxx
api-switch setup deepseek --key sk-xxx
api-switch use qwen-plus
api-switch serve# 注册获取 API Key: https://platform.agnes-ai.com/
api-switch setup agnes --key sk-xxx
api-switch use agnes-2.0-flash
api-switch serve
# 零成本使用大模型# 终端 1(代理服务)
api-switch serve
# 终端 2(随时切换模型)
api-switch use gpt-4o # 切换到 GPT-4o
# Claude Code 自动生效
api-switch use deepseek-chat # 切换到 DeepSeek
# 也立即生效 ┌─ Anthropic Client (透传) ──→ Anthropic API
│
claude ──→ /v1/messages ──┤
POST │ ┌─ 请求转换 ──┐
└─ OpenAI Client ──→ ──→ │ OpenAI 协议 │ ──→ OpenAI/DeepSeek/Agnes 等
└─ 响应转换 ──┘
管理端点:
/health → 健康检查 (JSON: models, providers, requests)
/admin/ → Web 仪表盘
/admin/stats → JSON 统计
/admin/events → SSE 实时事件
/admin/reload → 热加载配置 (POST)
| 文件 | 说明 |
|---|---|
~/.api-switch.yaml |
API-Switch 配置(提供商、模型路由、安全设置) |
~/.api-switch/.key |
API Key 加密密钥(自动生成,权限 0600) |
~/.claude/settings.json |
Claude Code 配置(由 api-switch use 管理) |
~/.api-switch/usage.json |
用量统计数据 |
~/.api-switch/update-state.json |
自动更新状态(上次检查时间) |
server:
port: 8080 # 代理端口
auth_token: "" # API 认证 Token(可选,设置后需 Bearer 认证)
rate_limit: 100 # 每分钟每 IP 请求数限制(0 = 禁用)
tls_cert: "" # TLS 证书路径(可选)
tls_key: "" # TLS 密钥路径(可选)| 功能 | 配置 | 说明 |
|---|---|---|
| API Key 加密 | 自动 | 使用 AES-256-GCM 加密存储,向后兼容明文配置 |
| Bearer 认证 | server.auth_token |
设置后所有 API 请求需携带 Authorization: Bearer <token>
|
| 速率限制 | server.rate_limit |
每分钟每 IP 请求数限制,防止滥用 |
| TLS/HTTPS |
server.tls_cert, server.tls_key
|
启用 HTTPS 加密传输 |
| 更新验证 | 自动 | SHA256 校验和验证,防止供应链攻击 |
| 管理端点保护 | 自动 | 仅 localhost 可访问,检查代理头防止绕过 |
| 类型 | 说明 |
|---|---|
anthropic |
直连 Anthropic API,无协议转换 |
openai |
走 OpenAI 兼容协议,请求/响应自动双向转换 |
| 特性 | 支持 | 说明 |
|---|---|---|
| Text 消息 | ✅ | 双向转换 |
| 流式 SSE | ✅ | OpenAI ↔ Anthropic SSE |
| 工具调用 | ✅ | tools / tool_choice / tool_use / tool_result |
| 流式工具调用 | ✅ | input_json_delta streaming |
| 多模态图片 | ✅ | Anthropic image block → OpenAI image_url(支持 base64 和 URL) |
| System 消息 | ✅ | 自动置顶 |
# 一键测试(推荐)
api-switch test deepseek-chat
# 健康检查
curl http://localhost:8080/health
# 完整诊断
api-switch doctor不需要。API-Switch 会自动监听 ~/.api-switch.yaml 的文件变更,500ms 防抖后自动重载。也可以手动触发:
curl -X POST http://localhost:8080/admin/reload# Web 仪表盘
api-switch monitor --web
# 终端实时日志
api-switch monitor不需要。Claude Code 热加载 ~/.claude/settings.json,api-switch use 切换后立即生效。
# 自动更新(推荐)
api-switch update
# 或手动
npm install -g api-switch-cc@latest# 方案一:配置文件
api-switch config set server.port 9090
# 方案二:运行时指定(推荐)
api-switch serve -p 9090
api-switch use gpt-4o # 自动使用配置中的端口api-switch config set providers.openai.api_key sk-new-key确保文件是保存到原路径而非临时文件。大部分编辑器(vim/nano)直接保存可以触发。如果使用 VS Code Remote,可能需要手动触发:
curl -X POST http://localhost:8080/admin/reloadapi-switch serve 启动时在后台检查 Gitee/GitHub Release API,24 小时内最多检查一次。发现新版本后自动下载对应平台的二进制(优先 Gitee 版本化镜像 release/vX.Y.Z/)、替换当前文件、无缝重启。api-switch update 可手动触发更新。可用 --no-auto-update 禁用。
更新优先级: Gitee 镜像 → GitHub Release → npm 更新 → go install
# 1. 更新 CHANGELOG.md
# 2. 试运行检查前置条件
./release.sh v0.9.3 --dry-run
# 3. 正式发布
export GITEE_TOKEN=<gitee_access_token>
export NPM_TOKEN=<npm_publish_token>
./release.sh v0.9.3发布脚本会自动完成:版本号更新 → 二进制编译校验 → SHA256 生成 → Git tag + push → Gitee release 页创建 → 二进制上传 → npm 发布 → 验证。
├── release.sh # 自动化发布脚本 (6阶段)
├── bump.sh # release.sh 兼容包装
cmd/api-switch/
├── main.go # CLI 入口和命令注册
├── serve.go # serve / daemon 命令
├── provider.go # provider / model 管理
├── use.go # use / setup / test 命令
├── config_cmd.go # config 管理命令
├── update.go # 自动更新命令
├── doctor.go # 一键诊断命令
└── monitor.go # 实时监控命令
internal/
├── config/
│ ├── config.go # 配置类型、加载、保存、路由
│ ├── config_test.go # 配置单元测试
│ ├── claude_config.go # Claude Code 配置管理
│ └── doctor.go # 一键诊断
├── daemon/
│ ├── daemon.go # 后台进程管理
│ ├── daemon_test.go # daemon 单元测试
│ ├── daemon_unix.go # Unix 进程属性
│ └── daemon_windows.go # Windows 进程属性
├── logutil/
│ ├── logger.go # 分级日志
│ └── logger_test.go # 日志单元测试
├── monitor/
│ ├── tracker.go # 请求事件追踪
│ └── tracker_test.go # 追踪器单元测试
├── provider/
│ ├── anthropic.go # Anthropic API 客户端
│ ├── openai.go # OpenAI API 客户端
│ └── openai_test.go # 客户端单元测试
├── proxy/
│ ├── handler.go # HTTP 代理 + 请求处理 + 认证中间件
│ ├── admin.go # 管理端点(仪表盘、SSE、监控)
│ ├── converter.go # Anthropic ↔ OpenAI 请求转换
│ ├── converter_test.go # 转换器单元测试
│ ├── response.go # OpenAI → Anthropic 响应转换
│ ├── ratelimit.go # 请求速率限制中间件
│ └── router.go # 模型路由
├── secrets/
│ ├── encrypt.go # API Key AES-256-GCM 加密
│ └── encrypt_test.go # 加密单元测试
├── streaming/
│ ├── sse.go # SSE 流式转换
│ └── sse_test.go # SSE 转换单元测试
├── update/
│ ├── updater.go # 自动更新 + SHA256 校验
│ ├── updater_test.go # 更新功能单元测试
│ ├── exec_unix.go # Unix 进程重启
│ └── exec_windows.go # Windows 进程重启
└── usage/
├── tracker.go # Token 用量追踪
└── tracker_test.go # 用量追踪单元测试
pkg/
├── anthropic/types.go # Anthropic 类型定义
└── openai/types.go # OpenAI 类型定义