如果你同时用 Claude Code、Cursor 和 Copilot,你可能已经习惯了每隔几天切换 API 配置的琐碎流程。一个用完了切另一个,一个挂了切第三个。然后月底收到账单,发现三分之一的花费是配额过期浪费的。
OmniRoute 做的事情就是把这种痛苦一次性解决掉。
它在本机跑一个代理,对外暴露一个 http://localhost:20128/v1 的 OpenAI 兼容端点,背后聚合了 231+ 个 LLM 提供商。你的 Claude Code 指向这个地址,Copilot 也指向这个地址,所有编码工具共享一套路由和回退策略。哪个提供商的配额用完了,它自动切到下一个;哪个模型太贵了,它自动切到便宜的同类;API 挂了,它在毫秒级时间内换到备用线路。整个过程对你是透明的。
它的核心机制叫 combo——你可以把它理解为一个有优先级的模型队列。比如设一个 "永远在线" 的 combo:先烧 Claude Code Pro 的订阅配额,用完切到 Codex 的订阅,再切到 GLM-5 的廉价 API($0.5/百万 token),最后落到 Kiro 的免费 Claude 接口。四层回退,零停机。OmniRoute 提供了 17 种路由策略:优先级、加权轮询、成本优化、上下文接力、融合(并行调用多个模型再由评委模型合成结果)、配额感知等,基本覆盖了你能想到的所有路由场景。
但这个项目的真正杀器不是路由,是压缩。
RTK + Caveman 双层压缩能把 token 消耗砍掉 15% 到 95%。
原理是这样的:编码工具产生的上下文——git diff、grep 结果、构建日志——里面充斥着大量重复和冗余信息。RTK(Rust Token Killer,一个独立开源项目)专门压缩命令行输出,识别同构 JSON 数组、重复行、固定格式日志,用标记替代完整内容。Caveman(一个病毒式项目,口号是 "why use many token when few token do trick")则用 30 多条语言规则压缩自然语言输出——保留技术实质、删除填充词。
两者堆叠使用(Stacked 模式),效果可以叠加到 78% 到 95%。代码块、URL、JSON 等结构化数据永远不被压缩,保证代码生成的准确性不受影响。OmniRoute 还提供了 9 个可组合的压缩引擎:Session-Dedup(跨轮去重)、CCR(大块归档)、headroom(同构数组压缩)、LLMLingua-2(MobileBERT ONNX 语义剪枝,代码安全)、Lite(空白符和图片 URL 裁剪)、Aggressive(摘要+老化)、Ultra(启发式+可选 SLM 小模型二次压缩)。
安装使用。
只需npm install -g omniroute,浏览器打开 http://localhost:20128 进入仪表板,连接一个免费提供商——比如 Kiro AI(免费 Claude,约 50 个信用点/月/账号)或 Qoder(免费 Kimi-K2 和 DeepSeek,无限制)。然后在 Claude Code 或 Cursor 里把 API base URL 设成 http://localhost:20128/v1,Model 填 auto——自动路由模式会根据你连接的所有提供商,实时计算 9 个维度的评分(健康度、配额、成本、延迟、成功率、新鲜度等),选出当前最优模型。
有意思的是 OmniRoute 对"免费"的定义很诚实。它的免费额度仪表板不会把每个提供商的速率上限简单相加——那是竞品常用的虚标套路。它按池去重:同一个免费池只算一次,速率限制天花板不算入总额。首页写着 "约 1.6B 免费 token/月",并注明了计算方法论的独立文档链接。50 多个免费层提供商中,有 11 个是永久免费、无 token 上限的——包括 Qoder(Kimi、Qwen、DeepSeek)、Pollinations(GPT-5、Claude、Gemini,无需 API Key)、Cloudflare AI(50+ 模型,1 万神经元/天)、LongCat(1000 万一次性 token)等。
和同类项目比,OmniRoute 目前是市面上体量最大的开源 AI 网关。
最直接的竞品是 LiteLLM(BerriAI/litellm,50.8k Star),定位相似但不是网关而是 SDK——需要你在代码里集成,不提供一个透明的 HTTP 代理层。另一个是 OpenRouter,这是一个商业服务而非开源项目,路由能力优秀但数据要经过他们的服务器。OmniRoute 选择了第三条路:本机代理,数据不过第三方,全部 MIT 开源。从提供商数量看,OmniRoute 的 236 个远超 LiteLLM 和 Portkey 等竞品的几十到上百个;从路由策略看,17 种策略对 1-3 种;从压缩能力看,OmniRoute 是唯一内置 token 压缩引擎的网关。
技术栈是 TypeScript 6.0 + Node.js 22.x/24.x + Next.js 16 + React 19 + Tailwind CSS 4 + SQLite(better-sqlite3)。14,965 个测试用例分布在 517 个文件中,CI/CD 检查项 103 个——CodeQL、Semgrep、8 路单元测试分片、覆盖率、Node 24/26 兼容性、9 路端到端测试、集成测试、Electron 烟雾测试。这不是一个人的车库项目,而是一个有社区治理规范的生产级工具。
MCP 和 A2A 支持是另一个亮点。OmniRoute 内置 MCP Server 暴露 87 个工具、3 种传输方式(stdio/HTTP/SSE)、30 个权限作用域,Claude Desktop 或任何 MCP 客户端可以直接控制整个网关——路由、提供商、combo、缓存、压缩、内存。A2A(Agent-to-Agent)协议用 JSON-RPC 2.0 + SSE 实现,6 个技能包让 Agent 之间可以互相调用 OmniRoute 的能力。这意味着你可以让一个编码 Agent 自动管理自己的模型路由,不需要人工干预。
部署方式也相当灵活。除了全局 npm 安装,还有 Docker 镜像(AMD64 + ARM64)、Electron 桌面应用(Windows/macOS/Linux + 系统托盘)、pnpm、Arch Linux AUR、Nix Flakes、Podman、PWA,甚至可以通过 Termux 在 Android 手机上跑。远程模式支持从笔记本驱动 VPS 上的 OmniRoute 实例,访问令牌可以限定 read/write/admin 三种作用域。
这个项目最让人意外的地方是免费额度能堆到什么程度。
把 11 个永久免费提供商叠在一个 combo 里,配合 aggressive 压缩模式(约 50% 节省)和自动故障转移,实际可用的免费 token 远超市面上任何一个单项免费服务。一个重度编码用户(日均 200-300 次 LLM 调用)用这套配置,月度模型成本可以压到接近零。当然,前提是你愿意花时间管理多个免费账号——OmniRoute 只是把这件事从"每天手动切换"变成"一次配置,永远不用管"。
踩坑方面,有几个点需要提前了解。Docker 部署时 SQLite 的 WAL 模式在 docker stop 时需要 40 秒的 --stop-timeout 来保证数据一致性,否则可能损坏数据库。Node.js 版本必须严格在 22.0-22.x 或 24.0-26.x 区间,23.x 和 27.x 会有运行时问题。Kiro 的免费配额是约 50 个信用点/月/账号而非真正无限,高频使用需要多账号轮换。压缩引擎中的 LLMLingua-2 依赖 ONNX 运行时,Docker 基础镜像需要额外安装依赖。
适合用 OmniRoute 的人:同时使用多个 AI 编码工具的开发者、想最大化免费额度的学生或个人开发者、需要统一管理团队 AI 配额的小型团队、在 AI 服务受限地区需要代理和反检测的网络受限用户。 不适合的人:只用 Claude Code 一个工具的轻度用户(OmniRoute 的配置成本高于收益)、对延迟极其敏感的实时交互场景(多一跳代理必然增加 50-200ms)、偏好 SaaS 托管方案的企业用户(OmniRoute 需要自己运维)。
项目当前处于活跃迭代中,截止 2026 年 7 月 2 日已发布 v3.8.42,累计 4,536 次提交。README 提供 41 个语种的翻译版本,包括简体中文和繁体中文——文档完善度在同类项目中属于头部水平。
项目地址:https://github.com/diegosouzapw/OmniRoute
竞品参考:
LiteLLM:https://github.com/BerriAI/litellm(50.8k Star,LLM SDK/代理,非透明网关)
OpenRouter:https://openrouter.ai(商业服务,非开源,路由能力强但数据经第三方)
Portkey:https://github.com/Portkey-AI/gateway(开源 AI 网关,功能集小于 OmniRoute)