编程 Model Router:给 Claude Code / Codex CLI 接非 Anthropic 模型,本地代理做三协议互转 + 标签路由

2026-09-21 00:04:47

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 MessagesOpenAI Chat CompletionsDeepSeek、SiliconFlow
Anthropic MessagesOpenAI Responses API通义千问 DashScope
Anthropic MessagesAnthropic(透传)百度文心、智谱 GLM、Moonshot Kimi
OpenAI Chat CompletionsOpenAI Responses APICodex CLI
OpenAI Responses APIOpenAI Chat CompletionsCodex CLI
OpenAI Responses APIAnthropic MessagesCodex 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.2gpt-5.3-codexgpt-5.4gpt-5.4-minigpt-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

使用

  1. 启动 Model Router(常驻系统托盘)
  2. 浏览器打开 http://127.0.0.1:8083
  3. 点 Claude Code 或 Codex 开关接管 CLI 配置
  4. 正常使用 Claude Code / Codex CLI,流量自动经过 Model Router

配置参考

字段类型说明
portnumber监听端口 (默认 8083)
current_tagstring当前激活的标签
management_keystring管理 API 认证密钥 (默认 model-router-local)
providersmapProvider 配置 (name / base_url / api_key / auth_type)
routesarray路由规则 (endpoint / model / provider / tags / format)
tagsarray标签定义 (name / color / is_auto)

Provider format

  • anthropic — 透传 Anthropic Messages 格式
  • openai — OpenAI Chat Completions 格式
  • openai_responses — OpenAI Responses API 格式

License

MIT

推荐文章

程序员茄子在线接单