Model Router:给 Claude Code / Codex CLI 接非 Anthropic 模型,本地代理做三协议互转 + 标签路由
项目地址:github.com/yinnho/model-router
下载安装包:Releases
Model Router 是一个桌面端代理程序,位于 AI 客户端(Claude Code、Codex CLI)与模型提供商之间,对外暴露 Anthropic Messages、OpenAI Chat Completions、OpenAI Responses 三种协议,做透明转换和基于标签的路由。
协议转换
三种 API 格式支持任意互转:
| 客户端格式 | Provider 格式 | 典型场景 |
|---|---|---|
| Anthropic Messages | OpenAI Chat Completions | DeepSeek、SiliconFlow |
| Anthropic Messages | OpenAI Responses API | 通义千问 DashScope |
| Anthropic Messages | Anthropic(透传) | 百度文心、智谱 GLM、Moonshot Kimi |
| OpenAI Chat Completions | OpenAI Responses API | Codex CLI |
| OpenAI Responses API | OpenAI Chat Completions | Codex CLI |
| OpenAI Responses API | Anthropic Messages | Codex CLI |
流式 SSE 转换同样完整支持,thinking 块、text 块、tool_use 块都会被正确处理。
标签路由系统
通过 opus / sonnet / haiku / auto 标签路由请求:
opus → 百度文心 (qianfan-code-latest)
sonnet → DeepSeek (deepseek-v4-pro)
haiku → Moonshot Kimi (K2.6)
auto → 智谱 GLM (glm-5.1)
未识别的模型名自动落到 auto 路由,不会丢请求。
Claude Code 一键接管
管理界面点 "Takeover",程序自动写入 Claude Code 的环境变量,把所有流量指到 Model Router。点 "Restore" 恢复原配置。
Codex CLI 支持
管理界面点 "Codex" 开关,把 Codex CLI(走 OpenAI Responses API 协议)接到 Model Router。支持的 Codex 模型名:gpt-5.2、gpt-5.3-codex、gpt-5.4、gpt-5.4-mini、gpt-5.5。
模型名保护
provider 返回的 model 字段会被替换回原始请求里的模型别名。客户端的模型校验、后续请求的模型选择都基于响应中的这个字段,回传 provider 真实模型名会让客户端以为目标模型被换掉,进而触发校验失败或多发一轮请求;替换之后这条反馈链就断了。
管理界面
内建 Web UI(http://127.0.0.1:8083):
- 实时请求日志
- Provider / 路由 / 标签管理
- Takeover 开关状态
- 一键测试路由
Thinking Blocks 自动处理
支持 type: "thinking" 内容块的自动转换与透传,兼容 DeepSeek 等 provider 的 reasoning_content 字段。
架构
Claude Code / Codex CLI
│
▼ HTTP
Model Router (Tauri v2 + axum)
│
├─── 协议转换引擎 (Anthropic ↔ OpenAI ↔ Responses)
├─── 标签路由 (tag → provider)
└─── 模型名替换
│
┌───────┴────────┬──────────┐
▼ ▼ ▼
OpenAI Chat OpenAI Resp. Anthropic
(DeepSeek, (DashScope) (Baidu, Zhipu)
Moonshot, ...)
快速开始
下载安装
从 Releases 下载对应平台的安装包,双击安装即用。
源码编译
git clone https://github.com/yinnho/model-router
cd model-router
# 开发模式
npm --prefix web install
npm --prefix web run tauri dev
# 构建安装包
npm --prefix web run tauri build
配置
编辑 ~/.model-router/config.yaml:
port: 8083
current_tag: auto
tags:
- name: opus
color: "#A855F7"
- name: sonnet
color: "#3B82F6"
- name: haiku
color: "#22C55E"
- name: auto
color: "#F59E0B"
is_auto: true
providers:
deepseek:
name: DeepSeek
base_url: https://api.deepseek.com
api_key: sk-your-key
auth_type: bearer
dashscope_responses:
name: Qwen (DashScope)
base_url: https://dashscope.aliyuncs.com/compatible-mode
api_key: sk-your-key
auth_type: bearer
routes:
- endpoint: /v1/chat/completions
model: deepseek-v4-pro
provider: deepseek
tags: [sonnet]
format: openai
- endpoint: /v1/responses
model: qwen-plus
provider: dashscope_responses
tags: [haiku]
format: openai_responses
使用
- 启动 Model Router(常驻系统托盘)
- 浏览器打开
http://127.0.0.1:8083 - 点 Claude Code 或 Codex 开关接管 CLI 配置
- 正常使用 Claude Code / Codex CLI,流量自动经过 Model Router
配置参考
| 字段 | 类型 | 说明 |
|---|---|---|
port | number | 监听端口 (默认 8083) |
current_tag | string | 当前激活的标签 |
management_key | string | 管理 API 认证密钥 (默认 model-router-local) |
providers | map | Provider 配置 (name / base_url / api_key / auth_type) |
routes | array | 路由规则 (endpoint / model / provider / tags / format) |
tags | array | 标签定义 (name / color / is_auto) |
Provider format
anthropic— 透传 Anthropic Messages 格式openai— OpenAI Chat Completions 格式openai_responses— OpenAI Responses API 格式
License
MIT