# README (中文 (简体)) 🌐 **Languages:** 🇺🇸 [English](../../../README.md) · 🇪🇹 [am](../am/README.md) · 🇸🇦 [ar](../ar/README.md) · 🇦🇿 [az](../az/README.md) · 🇧🇬 [bg](../bg/README.md) · 🇧🇩 [bn](../bn/README.md) · 🇧🇦 [bs](../bs/README.md) · 🇨🇿 [cs](../cs/README.md) · 🇩🇰 [da](../da/README.md) · 🇩🇪 [de](../de/README.md) · 🇬🇷 [el](../el/README.md) · 🇪🇸 [es](../es/README.md) · 🇪🇪 [et](../et/README.md) · 🇮🇷 [fa](../fa/README.md) · 🇫🇮 [fi](../fi/README.md) · 🇫🇷 [fr](../fr/README.md) · 🇮🇪 [ga](../ga/README.md) · 🇮🇳 [gu](../gu/README.md) · 🇳🇬 [ha](../ha/README.md) · 🇮🇱 [he](../he/README.md) · 🇮🇳 [hi](../hi/README.md) · 🇭🇷 [hr](../hr/README.md) · 🇭🇺 [hu](../hu/README.md) · 🇦🇲 [hy](../hy/README.md) · 🇮🇩 [id](../id/README.md) · 🇳🇬 [ig](../ig/README.md) · 🇮🇹 [it](../it/README.md) · 🇯🇵 [ja](../ja/README.md) · 🇬🇪 [ka](../ka/README.md) · 🇰🇭 [km](../km/README.md) · 🇮🇳 [kn](../kn/README.md) · 🇰🇷 [ko](../ko/README.md) · 🇱🇹 [lt](../lt/README.md) · 🇱🇻 [lv](../lv/README.md) · 🇮🇳 [ml](../ml/README.md) · 🇮🇳 [mr](../mr/README.md) · 🇲🇾 [ms](../ms/README.md) · 🇲🇹 [mt](../mt/README.md) · 🇲🇲 [my](../my/README.md) · 🇳🇵 [ne](../ne/README.md) · 🇳🇱 [nl](../nl/README.md) · 🇳🇴 [no](../no/README.md) · 🇮🇳 [or](../or/README.md) · 🇮🇳 [pa](../pa/README.md) · 🇵🇭 [phi](../phi/README.md) · 🇵🇱 [pl](../pl/README.md) · 🇵🇹 [pt](../pt/README.md) · 🇧🇷 [pt-BR](../pt-BR/README.md) · 🇷🇴 [ro](../ro/README.md) · 🇷🇺 [ru](../ru/README.md) · 🇱🇰 [si](../si/README.md) · 🇸🇰 [sk](../sk/README.md) · 🇸🇮 [sl](../sl/README.md) · 🇷🇸 [sr](../sr/README.md) · 🇸🇪 [sv](../sv/README.md) · 🇰🇪 [sw](../sw/README.md) · 🇮🇳 [ta](../ta/README.md) · 🇮🇳 [te](../te/README.md) · 🇹🇭 [th](../th/README.md) · 🇹🇷 [tr](../tr/README.md) · 🇺🇦 [uk-UA](../uk-UA/README.md) · 🇵🇰 [ur](../ur/README.md) · 🇺🇿 [uz](../uz/README.md) · 🇻🇳 [vi](../vi/README.md) · 🇳🇬 [yo](../yo/README.md) · 🇹🇼 [zh-TW](../zh-TW/README.md) ---
OmniRoute 控制面板

# 🚀 OmniRoute — 免费 AI 网关 **由 [Diego Souza](https://github.com/diegosouzapw) 创建** OmniRoute — 永不停下编程的脚步。每个 AI 工具 → 388 个提供者 — 其中 150+ 个免费 — 通过一个端点接入。Claude Code、Codex、Cursor、Cline、Copilot 和 Antigravity 接入免费的 Claude / GPT / Gemini,并支持自动故障转移。RTK + Caveman 堆叠式压缩可节省 15–95% 的令牌(平均约 89%)— 永不触及限制。388 个 AI 提供者 · 150+ 个免费层级 · 每月约 16.2 亿个免费令牌 · 20 种路由策略 · $0 起步。
## 💰 每月来自第三方免费层的约 16.2 亿 Tokens
> **使用您自己的提供者账户。** 这是对分别符合条件的第三方免费层的估算汇总,并非 OmniRoute 提供的 Token 赠额。请注册,并在需要时获取凭据,然后连接您可以使用的提供者;每个提供者自行决定其限制、可用性和条款。 > > 手动叠加免费层非常痛苦——几十个 SDK、几十种速率限制,而且完全不知道自己实际拥有多少额度。OmniRoute 汇总了 **34 个周期性池密钥下的 465 个免费层条目**,并根据 **17 个已发布正数月度预算的池,以及 Groq 的五项按模型计算的上限**,在去除共享池重复计算后得出 Token 总量。只有通过区域身份验证才会开放的配额(目前为 ModelScope)会单独显示,区域身份验证后额外增加约 600 万,并且永远不会计入总量。结果会持续显示在控制面板(`/dashboard/free-tiers`)中。 OmniRoute 免费层预算卡:每月稳定提供约 16.2 亿个免费 Token;首月加上注册赠金后最高约 22.2 亿个 Token,来自 34 个已记录的周期性池密钥,覆盖 465 个目录中的免费层条目,并通过一个端点统一访问。诚实的共享池去重计算——每个共享池只计算一次,其中包括 17 个已发布正数月度 Token 预算的周期性池,以及 Groq 的五项按模型计算的上限;条款风险目录中有 12 个提供者被标记为建议避免,具体选择由您决定。预算条包括 Mistral 10 亿、Nara 2.1 亿、LLM7 1.5 亿、xKiro 1.5 亿、Groq 3000 万(五项按模型计算的上限)及其他较小的池;此外还单独展示首月注册赠金和永久免费的无 Token 上限提供者,因此它们不会夸大总量。/dashboard/free-tiers 上显示实时已用/剩余额度。 > `/dashboard/free-tiers` 实时页面的动画摘要。完整方法(池去重、赠金额度层级、提供者条款):**[docs/reference/FREE_TIERS.md](docs/reference/FREE_TIERS.md)**。 > > 这些数据每两周根据实时目录重新审核,且**可能上下变动**——提供者结束免费层,数字就会下降;新增提供者,数字就会上升。我们公布的是目录实际计算出的结果,而不是向上取整后的最佳情况。

⭐ 如果 OMNIROUTE 帮助您节省开支并提高工作效率,请为仓库点亮 Star。

[![Stars](https://img.shields.io/github/stars/diegosouzapw/OmniRoute?style=social)](https://github.com/diegosouzapw/OmniRoute) diegosouzapw%2FOmniRoute | Trendshift [![Star History Rank](https://api.star-history.com/badge?repo=diegosouzapw/OmniRoute&theme=dark)](https://www.star-history.com/diegosouzapw/omniroute) [![olud.ai](https://olud.ai/badge.php?tool=diegosouzapw-omniroute)](https://olud.ai/project/diegosouzapw-omniroute.html) ### 💬 加入社区 **👋 关注维护者——第一时间获取新提供者、版本发布和技巧:** [![在 LinkedIn 上关注 Diego](https://img.shields.io/badge/Follow_Diego_on-LinkedIn-0A66C2?style=for-the-badge&logo=linkedin&logoColor=white)](https://www.linkedin.com/in/diegosouzapw/) [![在 GitHub 上关注 @diegosouzapw](https://img.shields.io/github/followers/diegosouzapw?style=for-the-badge&logo=github&logoColor=white&label=Follow%20on%20GitHub&color=181717)](https://github.com/diegosouzapw) [![Discord](https://img.shields.io/badge/Discord-5865F2?style=for-the-badge&logo=discord&logoColor=white)](https://discord.gg/U47eFqAXCn) [![Telegram](https://img.shields.io/badge/Telegram-26A5E4?style=for-the-badge&logo=telegram&logoColor=white)](https://t.me/omnirouteOficial) [![WhatsApp Global](https://img.shields.io/badge/WhatsApp_Global-25D366?style=for-the-badge&logo=whatsapp&logoColor=white)](https://chat.whatsapp.com/FvuCbrpZmQ6I85n2vW5QIC?s=cl&p=a&mlu=4) [![WhatsApp Brasil](https://img.shields.io/badge/WhatsApp_Brasil-25D366?style=for-the-badge&logo=whatsapp&logoColor=white)](https://chat.whatsapp.com/KWgatljAjmbELQory59Oti?s=cl&p=a&mlu=4) [![Website](https://img.shields.io/badge/Website-omniroute.online-blue?logo=google-chrome&logoColor=white)](https://omniroute.online) **问题、提供者建议、路线图和支持 → [Discord](https://discord.gg/U47eFqAXCn) · [Telegram](https://t.me/omnirouteOficial) · WhatsApp [🌍 全球](https://chat.whatsapp.com/FvuCbrpZmQ6I85n2vW5QIC?s=cl&p=a&mlu=4) / [🇧🇷 巴西](https://chat.whatsapp.com/KWgatljAjmbELQory59Oti?s=cl&p=a&mlu=4) / [门户](https://portal.sthub.com.br/communities/groups/st-hub/channels/Omniroute-World-8kRjmK)**
## 📈 网关持续增长
| | v3.8.50 | **v3.8.51** | `v3.8.54+` | | ------------------- | :-------------------: | :---------: | :-------------------: | | 🌐 提供者 | 352 | **358** | 388 | | 🧠 唯一聊天模型 ID | 1320 | **1374** | 1491 | | 🖼️ 模态桥接 | 🆕 视觉 + 音频 + 视频 | ✓ | ✓ | | 📡 Radar 免费目录 | 🆕 可选加入 | ✓ | ✓ | | ⚖️ 配额感知调度 | 🆕 Quota-Share | ✓ | ✓ | | 📊 配额遥测 | 🆕 实时 | ✓ | ✓ | | 🧰 无头模式 | — | — | 🆕 `serve --headless` | | 🛤️ LTS 轨道基础设施 | — | — | 🆕 发布渠道 | | 🔎 模型发现 API | — | — | 🆕 `/v1/models/query` | **→ [路线图](ROADMAP.md) — 沿着轨道驶向 `v3.9.0 LTS`**

## 🧩 可用 [![npm 版本](https://img.shields.io/npm/v/omniroute?color=cb3837&logo=npm)](https://www.npmjs.com/package/omniroute) ![NPM 月度下载量](https://img.shields.io/npm/dm/omniroute?label=npm/month&color=cb3837&logo=npm) [![Docker Hub](https://img.shields.io/docker/v/diegosouzapw/omniroute?label=Docker%20Hub&logo=docker&color=2496ED)](https://hub.docker.com/r/diegosouzapw/omniroute) [![许可证:MIT](https://img.shields.io/badge/License-MIT-yellow.svg?style=flat-square)](LICENSE) ![Docker 拉取次数](https://img.shields.io/docker/pulls/diegosouzapw/omniroute?label=docker%20pulls&logo=docker&color=2496ED) ![Electron 下载量](https://img.shields.io/github/downloads/diegosouzapw/omniroute/total?style=flat&label=electron%20downloads&logo=electron&color=47848F)
🚀 开始 🚀 快速开始 📦 安装 🆓 连接提供者
💡 了解 💥 愿景 🤔 为什么选择 OmniRoute 🏆 与众不同之处
⚙️ 功能 🎯 组合 🌐 提供者 🔌 CLI & MCP
🗜️ 压缩 🖥️ 运行位置 🔒 隐私
👀 查看 🎬 实际演示 ✨ 最新动态 🤖 兼容的 CLI
💚 支持 💚 支持 / 捐赠 💬 社区 💖 赞助商
📦 项目 🛠️ 技术栈 📖 文档 👥 贡献者
🌐 支持 67 种语言

英语 (en) 葡萄牙语 — 巴西 (pt-BR) 葡萄牙语 (pt) 西班牙语 (es) 法语 (fr) 意大利语 (it) 德语 (de) 荷兰语 (nl) 俄语 (ru) 乌克兰语 (uk-UA) 波兰语 (pl) 捷克语 (cs) 斯洛伐克语 (sk) 罗马尼亚语 (ro) 匈牙利语 (hu) 保加利亚语 (bg) 丹麦语 (da) 芬兰语 (fi) 挪威语 (no) 瑞典语 (sv) 中文 — 简体 (zh-CN) 中文 — 繁体 (zh-TW) 日语 (ja) 韩语 (ko) 泰语 (th) 越南语 (vi) 印度尼西亚语 (id) 马来语 (ms) 菲律宾语 (phi) 印地语 (hi) 古吉拉特语 (gu) 马拉地语 (mr) 泰米尔语 (ta) 泰卢固语 (te) 孟加拉语 (bn) 乌尔都语 (ur) 波斯语 (fa) 阿拉伯语 (ar) 希伯来语 (he) 土耳其语 (tr) 阿塞拜疆语 (az) 斯瓦希里语 (sw) 希腊语 (el) 克罗地亚语 (hr) 塞尔维亚语 (sr) 立陶宛语 (lt) 爱沙尼亚语 (et) 拉脱维亚语 (lv) 斯洛文尼亚语 (sl) 马耳他语 (mt) 爱尔兰语 (ga) 卡纳达语 (kn) 马拉雅拉姆语 (ml) 奥里亚语 (or) 旁遮普语 (pa) 尼泊尔语 (ne) 僧伽罗语 (si) 缅甸语 (my) 高棉语 (km) 豪萨语 (ha) 约鲁巴语 (yo) 伊博语 (ig) 阿姆哈拉语 (am) 乌兹别克语 (uz) 格鲁吉亚语 (ka) 亚美尼亚语 (hy) 波斯尼亚语 (bs)


## 🆓 安装、连接提供者,然后通过一个端点进行路由
三个步骤:安装并启动 OmniRoute,使用您自己的账户或 API 密钥连接符合条件的提供者,然后让您的工具指向 localhost:20128/v1,并使用 OmniRoute API 密钥和模型 auto。路由取决于可用的符合条件的连接和提供者限制。 ```bash # 连接提供者后,从 Dashboard → Endpoints 复制您的 OmniRoute 密钥: curl http://localhost:20128/v1/chat/completions \ -H "Authorization: Bearer YOUR_OMNIROUTE_KEY" \ -H "Content-Type: application/json" \ -d '{"model":"auto","messages":[{"role":"user","content":"Hello!"}]}' ``` `auto` 需要符合条件的路由。全新安装可能没有符合条件的免密钥目标,并且免密钥提供者可能会拒绝第三方客户端。默认情况下,标记为 `tos: avoid` 的提供者(包括 Kiro)会被排除在自动路由之外;连接账户不会覆盖此设置。选择提供者前,请参阅[免费层级指南](docs/getting-started/FREE-TIERS-GUIDE.md)。 📦 适用于 **Python、Node.js、PHP 和 cURL** 的复制粘贴式快速入门脚本 → [`examples/quickstart/`](examples/quickstart/)
# 💥 我们的承诺
我们的承诺 — 一个端点和 388 个提供者。当仍有其他健康目标可用时,自动回退会持续进行路由。六大支柱:跨 388 个提供者的高韧性回退 · 符合条件的工作负载最高可节省 95% 的令牌成本 · 从 $0 开始,提供 150+ 个免费层级以及 52 个定期提供或免密钥的永久免费提供者 · 通过一个配置支持 39 个 CLI/代理集成 · 在 /v1 提供 OpenAI、Claude、Gemini 和 Responses API 兼容性 · 生产级控制能力,包括断路器、TLS 隐身、MCP 110 个工具、A2A、记忆、护栏、评估,以及分布在 7,800+ 个受跟踪测试文件中的 56,000+ 个静态测试声明。

# 🤔 为什么选择 OmniRoute?
为什么选择 OmniRoute — 不再需要周旋于 10 个控制面板、失效的 API 密钥和意外账单之间。十大日常痛点及解决方案:配额到期未使用 → 最大化订阅权益;编码过程中遇到速率限制 → 4 层自动回退(订阅 → API → 廉价 → 免费);工具输出消耗令牌 → RTK + Caveman 压缩(15–95%);昂贵的 API → 成本优化路由;每个工具都要单独配置 → 一个端点、一个控制面板;AI 访问受阻 → 3 级代理 + TLS 隐身;密钥失效 → 3 层韧性机制(断路器、密钥冷却、模型锁定);团队共享一个订阅 → 采用公平分配配额的密钥池;提示词经过他人的云服务 → 本地优先,并使用 AES-256-GCM 加密密钥;无法了解支出情况 → 实时分析(使用量、配额、节省金额、p95 延迟)。
OmniRoute 请求流程:您的 IDE 或 CLI(Claude Code、Cursor、Cline……)调用一个本地端点(http://localhost:20128/v1);OmniRoute Smart Router(RTK + Caveman 压缩、20 种路由策略、断路器、TLS 隐身、MCP、A2A、护栏)可以在 4 个提供者层级之间进行回退,只要仍有符合条件且健康的目标即可 — 第 1 层订阅、第 2 层 API 密钥、第 3 层廉价和第 4 层免费。

## 🤝 我们的开源朋友支持

Kimi K3 — Open Frontier Intelligence · 2.8T parameters · 1M-token context

> **想加入成为开源朋友吗?** 这些公司支持开源并帮助 OmniRoute 持续发展 — 我们会公开说明他们提供的每一笔资金的去向。请联系:[diegosouza.pw@outlook.com](mailto:diegosouza.pw@outlook.com)
Kimi (Moonshot AI)
Kimi
月之暗面

Founding Open Source Friend
感谢我们的创始开源朋友 Kimi (月之暗面) 对本项目的支持!Kimi 是开放权重 K2 和 K3 模型系列背后的 AI 实验室 — Kimi K3 提供 1M-token 上下文窗口、原生视觉和前沿水平的编码能力,价格仅为闭源模型的一小部分,并且与 Claude Code、Codex 以及 OmniRoute 支持的所有编码工具开箱即用。

Kimi 的支持所赋能的: Kimi 的 API 积分支持 OmniRoute 的 AI 验证发布流程 — 即在每个拉取请求发布前进行审查的 *由 Kimi K3 提供支持的合并验证* 阶段 — 以及日常功能开发。一流的 Kimi 支持通过两种方式提供:直接的 Kimi API (kimi-k3) 和 Kimi Code 编码计划 (OAuth 和 API 密钥)。OmniRoute 也是 Kimi 支持计划中首个巴西开源项目。获取 Kimi API 密钥,额外获得 15% 积分 →
Cheaper Inference
Cheaper Inference
cheaperinference.com

Open Source Friend
感谢 OmniRoute 的开源朋友 Cheaper Inference 对本项目的支持!Cheaper Inference 是一个按成本排名的网关,通过一个与 OpenAI 兼容的端点转售 42 个前沿模型 — Claude、GPT-5.x、Gemini、Kimi K3、GLM、DeepSeek、Grok 和 MiniMax — 将每个请求路由到最便宜的合格提供者,且绝不收取高于模型制造商标价的费用。

OmniRoute 中的一流支持: 聊天补全、原生 /v1/responses 端点、视觉、工具调用和 3 个图像模型 (grok-imagine、nano-banana-pro、nano-banana-2,可作为 cheaperinference/<model> 访问)。获取 API 密钥 →
带有 aff=omniroute 标签的链接是合作伙伴链接。它们在不增加您成本的情况下为项目提供资金。
🎟️ 联盟推广 — 我们未赞助的提供者提供的免费注册优惠券(点击展开) 此部分仅用于推荐/优惠券代码。赞助合作关系位于上方的 **🤝 我们的开源朋友支持** 中。OmniRoute 与此处列出的提供者没有赞助或合作关系 — 这些是任何人都可以使用的公开优惠券。
AgentRouter
AgentRouter
agentrouter.org
AgentRouter — 联盟注册 · 注册时免费获得 $100 积分(免费服务器,延迟可能较高 — 最适合测试,不适合生产)。自 v3.8.50 起在 OmniRoute 中提供一流支持:聊天补全、Anthropic 兼容的线格式和 OpenAI 兼容的路径。可用模型包括 claude-opus-4-8、claude-opus-5、gpt-5.6-sol 等。立即获取您的 $100 →

⚠️ 联盟链接 — OmniRoute 与此提供者没有赞助或合作关系。
知道其他提供者有慷慨的免费注册优惠券,能惠及 OmniRoute 用户吗?请提交一个 issue,我们会将其添加到这里。

## 🎯 组合 — 旗舰功能
20 种组合路由策略中 18 种的动态示例——每种策略对应一个图块:priority、fill-first、weighted、round-robin、p2c、least-used、random、strict-random、cost-optimized、headroom、reset-window、reset-aware、context-relay、context-optimized、lkgp、auto、fusion、pipeline。cache-optimized 和 quota-weighted 没有动画;下表介绍了全部 20 种策略。 > **组合**是一条由 OmniRoute **自动**跨模型路由的链。如果配额耗尽、提供者出现故障或成本激增,组合可以切换到下一个符合条件且运行正常的模型。🛡️ ### ⚡ 零配置 — 只需使用 `auto` 无需创建组合。将模型设置为 `auto`(或其变体),OmniRoute 就会基于你已连接的提供者构建虚拟组合,并进行实时评分:
模型 ID优化目标
auto🎯 均衡的默认选项(LKGP——保持使用上次表现良好的提供者)
auto/coding🧑💻 面向代码生成的质量优先权重
auto/fast⚡ 最低延迟优先
auto/cheap💰 每 token 成本最低者优先
auto/subscription🎟️ 仅使用你已付费的订阅配额——失败时关闭,绝不会回退到计费选项(指南)
auto/thrifty🪜 优先使用套餐配额,然后逐级切换到最便宜的付费选项——套餐重置后自动切回(指南)
auto/offline🔋 配额/速率限制余量最大者优先
auto/smart🔭 质量优先 + 10% 探索,以发现更好的模型
auto/lkgp📌 明确保持使用上次已知可用的提供者
auto/chaos🧪 并行分发到一组模型(每个提供者一个,默认为 5 个),并返回一个答案;面板中的每个模型各进行一次上游调用,并非故障注入
## ### 🔀 或者自行构建 — 20 种路由策略 全部 **20** 种策略——可在组合的每个步骤中混搭使用:
# 策略 作用
1 priority 按首选目标排序的列表——用尽一个后再使用下一个 🥇
2 fill-first 完全用尽每个目标的配额后再切换到下一个
3 weighted 根据各目标的权重进行加权随机选择
4 round-robin 按顺序循环使用各个目标
5 p2c “二选一”随机负载均衡
6 least-used 选择当前负载最低的目标
7 random 均匀随机选择(去除重复项)
8 strict-random 随机选择,不对重复项去重 🎲
9 cost-optimized 根据实时目录定价,尽可能降低每次请求的费用 💸
10 headroom 选择剩余配额最多的目标
11 quota-weighted 跳过配额已耗尽的账户,然后按剩余配额 ÷ 进行中负载的比例进行选择——现有对话保持固定 ⚖️
12 reset-window 优先选择配额窗口最早重置的目标
13 reset-aware 按配额重置时间排序——短周期窗口优先 📊
14 context-relay 在长对话中跨目标移交上下文 🧠
15 context-optimized 选择最适合当前上下文大小的目标
16 cache-optimized 将每个可复用的提示词前缀固定到同一个账户——最大限度提高提示词缓存命中率 🎯
17 lkgp 上次已知可用路径——固定使用上次成功的提供者,然后根据规则进行回退
18 auto 对所有连接进行 16 因素实时评分 🤖
19 fusion 并行分发到一组模型,再由评审模型综合生成一个答案 🧬
20 pipeline 串联各个步骤——每个目标的输出都会传递给下一个目标 🔗
Auto-Combo 引擎基于 **16 个因素**(健康状态、配额、成本、延迟、任务适配度、质量、会话可用性……)对每个候选项进行评分——请参阅 [`docs/routing/AUTO-COMBO.md`](docs/routing/AUTO-COMBO.md)。 ## ### 🧱 内置韧性机制(3 个独立层级) OmniRoute 韧性机制——3 个独立的自愈层级,针对不同故障采用恰当的层级。第 1 层:提供者断路器(整个提供者):仅在出现 408/5xx 时触发,阈值为 OAuth 8 次/API 密钥 12 次/本地 2 次,并分别在 60s/30s/15s 后重置为 HALF-OPEN 探测状态,采用惰性恢复;处于 OPEN 状态时,组合会将请求重新路由至下一个提供者。第 2 层:连接冷却(单个密钥/账户):OAuth 的基础冷却时间为 5s,API 密钥为 3s,采用指数 ×2 退避并提供防惊群保护;429 遵循 Retry-After,成功后清除所有错误状态;一个正在冷却的密钥会被跳过,而同组的其他密钥继续提供服务。第 3 层:模型锁定(单个模型):单模型 429、本地 404 或模式拒绝只会锁定该模型——绝不会锁定整个连接。终止状态(被封禁、已过期、额度耗尽)需要由操作人员处理,而不是进入冷却。 📖 [Auto-Combo 引擎](docs/routing/AUTO-COMBO.md) · [韧性指南](docs/architecture/RESILIENCE_GUIDE.md)
## 🏆 OmniRoute 的独特之处
OmniRoute 的独特之处——一份截至特定日期的功能快照,对比了 9router、OpenRouter、CLIProxyAPI 和 LiteLLM 在 13 项能力上的表现。OmniRoute:388 个提供者、内置 150 多个免费层级、20 种路由策略、12 引擎令牌压缩、内置 MCP 服务器(含 110 个工具)、A2A 代理协议、持久化记忆、护栏、云代理、TLS 指纹隐身、Desktop/Termux/PWA,以及支持 67 种国际化语言环境的 UI。OmniRoute 采用 MIT 许可证并支持自托管。竞争对手的能力和数量可能会发生变化;请参阅链接的方法说明。 📊 与 9router、OpenRouter、CLIProxyAPI 和 LiteLLM 对比的完整方法说明及各功能详情 → [`docs/comparison/OMNIROUTE_VS_ALTERNATIVES.md`](docs/comparison/OMNIROUTE_VS_ALTERNATIVES.md)
## 💚 支持 OmniRoute OmniRoute 采用 MIT 许可证,并以开放方式维护。如果它为你节省了时间或金钱,可以通过以下方式帮助其保持独立——选择适合你的即可。赞助绝不会影响路由优先级;它购买的是曝光度,而不是排名。
⭐ 为仓库加星免费——确实有助于提升曝光度为 OmniRoute 加星
🐙 GitHub Sponsors一次性或每月赞助 · 平台零手续费github.com/sponsors/diegosouzapw
☕ Ko-fi快速的一次性打赏,捐助者无需注册ko-fi.com/diegosouzapw
🧋 Buy Me a Coffee小额、非正式的支持buymeacoffee.com/diegosouzapw
🖐 Liberapay定期赞助 · 非营利 · 开源liberapay.com/diegosouzapw
🇧🇷 PIX(巴西)即时到账、免手续费密钥和二维码见下方
₿ 加密货币BTC · ETH · USDT-TRC20 · USDC-Solana地址见下方
**🇧🇷 PIX** — 即时到账、免手续费(巴西) OmniRoute PIX 二维码 密钥(随机):`5d865059-bc44-483a-962d-43ceb80126eb` Pix 复制粘贴代码: ``` 00020101021126580014br.gov.bcb.pix01365d865059-bc44-483a-962d-43ceb80126eb5204000053039865802BR5922OMNIROUTE CONTRIBUICAO6006BRASIL62070503***630475DD ```
₿ 加密货币 — BTC · ETH · USDT-TRC20 · USDC-Solana(点击展开)
₿ BTCBitcoin (SegWit)bc1qh00smz004sy85wyl28v77tenkt3ckl6eaep7fd
Ξ ETHEthereum (ERC20)0x64Cf6B68A6Ff34288e89172950a2d00102337a84
₮ USDTTron (TRC20)TKAF41JpuQrHbKTnsQa9svJE2T192Hvsc2
$ USDCSolana2emNNZzVVWQc3FQ2wk9M6qXUQmW8AKdjjL174fXR28Tu
⚠️ 每种代币只能通过所示网络发送——使用错误网络可能会导致资金丢失。
🐛 发现错误或有反馈?请发起一个 [Discussion](https://github.com/diegosouzapw/OmniRoute/discussions)。

开发者说明:为方便开发者,本项目可能会在 npm install/postinstall 期间生成本地 .env 文件。该文件已通过 .gitignore(参见 .gitignore)被有意忽略,绝不能提交——如果意外提交,请轮换所有可能已泄露的密钥,并从历史记录中删除该文件。有关管理本地环境文件和密钥的指南,请参阅 docs/DEVELOPER-ENVIRONMENT.md。

## 📡 OmniRoute Radar 上述文档中经资源池去重后的目录,其免费套餐的主要亮点仍是**每月约 1.62B tokens**。临时的提供者注册赠送额度可另外将首月额度提升至**约 2.22B**。Radar 是一个可选的、带签名的目录覆盖层,适合希望在 OmniRoute 各版本发布间隔期间获取更新免费模型可用性信息的用户;社区目录和所有现有免费功能仍将保持免费。 支持者可以获得实时目录以及更多提供者机会。其独立且可变的上限**最高约为每月 3B tokens**,具体取决于提供者的可用性。该上限并非保证:提供者可随时更改配额、资格要求、模型或地区。 Radar 需主动选择启用,且仅使用 GET 请求。OmniRoute 客户端不会上传提示词、流量、提供者配置、使用情况遥测数据或本地公告忽略状态。有关资格要求和当前目录的信息,请访问 **[radar.omniroute.online/planos](https://radar.omniroute.online/planos)**。
## ✨ 最新内容
> **v3.8.20 → v3.8.54** 的近期亮点。完整历史记录请参阅 [`CHANGELOG.md`](CHANGELOG.md)。 - **⚖️ `quota-weighted` 路由** — 第 20 种组合策略会跳过配额耗尽的账户,然后按照剩余配额 ÷ 进行中负载的比例,在其余账户中进行选择,同时保持现有会话固定到原账户。→ [自动组合](docs/routing/AUTO-COMBO.md) - **🧰 无头模式** — `omniroute serve --headless`(或 `OMNIROUTE_HEADLESS=1`)仅运行 `/v1/*` 代理引擎,并关闭仪表板及仅供仪表板使用的子系统。→ [无头模式](docs/guides/HEADLESS.md) - **🔎 模型发现** — `/v1/models` 支持按能力、上下文、类型和文本进行筛选,`POST /v1/models/query` 则使用相同的每个密钥可见性规则返回简短且确定性的候选列表。→ [API 参考](docs/reference/API_REFERENCE.md) - **🔑 逐密钥路由控制** — 使用 `forcedModel` 将 API 密钥固定到单个模型或组合,并以原子方式添加或移除某个密钥的模型和组合(`/api/keys/{id}/access`)。→ [API 参考](docs/reference/API_REFERENCE.md) · [OpenAPI](docs/openapi.yaml) - **🛡️ 更细粒度的 PII 控制** — 支持按类型选择、最多 20 个经过验证的自定义掩码模式,以及按类型统计的检测计数器;掩码功能本身仍需选择启用。→ [防护措施](docs/security/GUARDRAILS.md) - **🌍 67 种语言** — 覆盖仪表板、文档镜像和 CLI,使用 `npm run i18n:add-locale` 即可通过一条命令在所有位置添加语言。→ [i18n 指南](docs/guides/I18N.md) - **🎛️ OmniConductor** — 向你的代理集群进行入站 A2A 委托,在 Agent Card 中提供 Conductor 技能,并通过 Faro 推送通话语音聊天仪表板面板。→ [A2A 服务器](docs/frameworks/A2A-SERVER.md) - **🛂 自适应准入与过载保护** — 重型聊天请求会进入队列,而不是返回 503;每个连接使用原子 RPM 滚动租约。→ [弹性指南](docs/architecture/RESILIENCE_GUIDE.md) - **🗂️ 标准化 `/v1/models` 排序** — 每个提供者对应一个连续且按提供者分组的区块(组合优先固定显示),无论目录来源为何都保持稳定。→ [API 参考](docs/reference/API_REFERENCE.md) - **🗜️ 压缩加固** — 默认启用膨胀防护,适用于 DE / FR / JA + 中文(文言文)的 Caveman packs,以及适用于 Gradle 和 .NET 的 RTK 过滤器。→ [压缩](docs/compression/COMPRESSION_ENGINES.md) - **💸 真实的统一费率成本** — 订阅类 / coding-plan 提供者在成本分析中显示为 **$0**;预算、配额和路由仍会继续进行估算。→ [API 参考](docs/reference/API_REFERENCE.md) - **⚖️ Quota-Share 路由** — 在共享账户的池化密钥之间公平分配配额,并采用工作保持机制,将空闲配额切片借给其他请求。→ [弹性指南](docs/architecture/RESILIENCE_GUIDE.md) - **🤖 一条命令完成 CLI/代理设置** — 注册了 15 个 `setup-*` 命令;`omniroute run` 可启动 7 个 CLI(Claude Code、Codex、Aider、Goose、OpenCode、Qwen Code、Gemini CLI);`omniroute configure` 支持 11 个目标,并提供交互式提供者 + 模型选择器及按上下文设置的收藏项。→ [CLI 集成](docs/guides/CLI-INTEGRATIONS.md) - **🛰️ 远程模式** — 使用作用域令牌(`connect` / `contexts` / `tokens`)驱动远程 OmniRoute,并为 VPS 安装提供 `antigravity` OAuth 辅助工具。→ [远程模式](docs/guides/REMOTE-MODE.md) - **🧭 更智能的自动路由** — 支持 `auto/:` 组合、**Fusion**(模型面板 + 评判器)、任务感知路由,以及按请求设置模型 / 模式 / USD 预算覆盖项。→ [自动组合](docs/routing/AUTO-COMBO.md) - **🗜️ 可插拔压缩** — 12 个可组合引擎 + Compression Studios:LLMLingua-2、双层 Ultra、omniglyph、逐步保真度门控、GCF v3.2,以及支持拖拽排序的编辑器。→ [压缩](docs/compression/COMPRESSION_ENGINES.md) - **🕵️ 透明 MITM 解密(TPROXY)** — 捕获忽略代理环境变量的 CLI,并提供按 SNI 设置的 CA 和信任存储安装器。→ [MITM/TPROXY](docs/security/MITM-TPROXY-DECRYPT.md) - **💸 全面的成本遥测** — 每个端点均提供 `X-OmniRoute-*` 成本 / 使用量标头、缓存命中节省量标头,以及按密钥设置的 USD 支出配额。→ [API 参考](docs/reference/API_REFERENCE.md) - **🧠 由你控制的记忆** — 默认关闭,可选择启用 int8 向量量化 + 类型化衰减,并支持按请求设置 `x-omniroute-no-memory`。→ [记忆](docs/frameworks/MEMORY.md) - **🛡️ 安全性** — 每条 LLM 路由均启用提示注入防护(红队测试套件);可选择启用凭据掩码防护(双向编辑泄露的 API 密钥 / 秘密);提供免费的 DuckDuckGo 最后手段网页搜索;仪表板还支持可选的 OIDC 登录门禁(密码登录始终可用)。→ [防护措施](docs/security/GUARDRAILS.md) - **🖼️ 新端点** — `/v1/ocr`(Mistral OCR)和 `/v1/audio/translations`(Whisper 风格)完善了媒体功能。→ [API 参考](docs/reference/API_REFERENCE.md) - **🎨 图像 / 视频 / 音频生成** — 通过一个 API 处理媒体:xAI Grok Imagine 与 Novita AI 视频、ComfyUI、Magnific、Adobe Firefly、Segmind,以及 ElevenLabs 等语音提供者。→ [API 参考](docs/reference/API_REFERENCE.md) - **🌍 部署与运维** — 反向代理 `basePath`、浏览器语言自动检测、按密钥进行设备跟踪、无 root 的 MITM 信任,以及 zh-TW 本地化。→ [环境变量](docs/reference/ENVIRONMENT.md) - **🤝 更多提供者与代理** — 云端代理(Codex Cloud、Cursor、Devin、Jules)、支持浏览器 + OAuth 登录的 Grok Build(xAI)、一等支持的 Ollama 卡片、Claude Opus 5 与 Sonnet 5、Kimi 官方合作伙伴(Code/Web/Moonshot)、Zed、Requesty、SenseNova、Yuanbao、Agnes AI……以及更新后的 **388 个提供者目录**。→ [提供者](docs/reference/PROVIDER_REFERENCE.md) - **📡 路由透明度** — 每个响应都携带 `X-OmniRoute-Decision` 标头,标明为其提供服务的策略 / 提供者 / 延迟;新增的 `cache-optimized` 组合策略和 Auto-Combo `cacheAffinity` 因子会将重复请求路由回持有缓存前缀的连接;只读端点 `/v1/auto-combo/{channel}/candidates` 则公开 `auto/*` 通道的实时候选池。→ [自动组合](docs/routing/AUTO-COMBO.md)。 - **⚡ 本地性能与基础设施** — 一键启动本地 Redis、Cloudflare Workers / Deno Deploy 中继部署器,以及作为受监管嵌入式服务运行的 Bifrost 和 Mux。→ [嵌入式服务](docs/frameworks/EMBEDDED-SERVICES.md) - **🧩 开箱即用** — 插件框架与市场、Omni/Agent/GitHub 技能框架、Obsidian vault 集成(22 个 MCP 工具)、兼容 OpenAI 的 Batch 和 Files API、语义响应缓存、带排行榜的游戏化机制、ACP 代理发现(15 个内置代理)、定时将日志导出到 BigQuery、`auto/chaos` 并行多模型扇出、Telegram 机器人桥接、应用内版本管理器,以及 LMArena-ELO 免费提供者排名。→ [文档](docs/README.md)
## 🤖 兼容的 CLI 和编码代理 > 只需一个配置 — `http://localhost:20128/v1` — **所有** AI IDE 或 CLI 都可以运行免费和低成本模型。
Claude Code
Claude Code
                           
Codex CLI
Codex CLI
                           
Cline
Cline
                           
Kilo Code
Kilo Code
Zoo Code
Zoo Code
Continue
Continue
                           
Aider
Aider
                           
ForgeCode
ForgeCode
                           
jcode
jcode
                           
DeepSeek TUI
DeepSeek TUI
                           
CodeWhale
CodeWhale
                           
OpenCode
OpenCode
                           
Factory Droid
Factory Droid
                           
GitHub Copilot CLI
Copilot CLI
                           
Cursor CLI
Cursor CLI
                           
Smelt
Smelt
                           
Pi (pi-coding-agent)
Pi
                           
Grok Build (xAI)
Grok Build
                           
Hermes Agent (Nous Research)
Hermes Agent
                           
OpenClaw
OpenClaw
                           
Goose
Goose
                           
Open Interpreter
Open Interpreter
                           
Warp AI
Warp AI
                           
deyin.ai
deyin.ai
                           
+ 同样适用于 · Agent Deck · Kiro · Command Code · Antigravity · Windsurf · AMP · 任何兼容 OpenAI 的工具
📖 全部 39 个工具的逐工具设置(28 个 CLI Code 工具 + 11 个 CLI Agents)→ [`docs/reference/CLI-TOOLS.md`](docs/reference/CLI-TOOLS.md) · 🧩 OpenCode 插件 → [`@omniroute/opencode-provider`](https://www.npmjs.com/package/@omniroute/opencode-provider)

**通过 OmniRoute 一条命令启动任何受支持的 CLI**——不会写入配置文件, 凭据按进程注入,Qwen/Gemini 会获得一个临时的隔离主目录: ```bash omniroute run claude --model openai/gpt-5.4 # Claude Code omniroute run codex --model glm/glm-5.2 # OpenAI Codex CLI omniroute run aider --model glm/glm-5.2 -- --message "reply OK" omniroute run goose --model glm/glm-5.2 omniroute run opencode --model glm/glm-5.2 -- run "reply OK" omniroute run qwen --model glm/glm-5.2 -- -p "reply OK" omniroute run gemini --model glm/glm-5.2 -- --skip-trust -p "reply OK" # 或以交互方式选择提供者和模型,并写入工具自身的配置: omniroute configure codex # 也支持:claude opencode qwen aider goose gemini cline continue kilo 5dive ``` 每条命令都会遵循当前激活的远程上下文(`omniroute connect `),`--dry-run` 会在不执行的情况下预览确切的环境变量/参数,而 `--api-key-env NAME` 可避免将密钥保存在 Shell 历史记录中。→ [CLI 集成](docs/guides/CLI-INTEGRATIONS.md)
## 🌐 388 个 AI 提供者 — 目录标记为免费的 153 个
> **388 个已注册的提供者**分布于规范聊天、媒体、搜索、本地、云端代理和系统集合中,其中包括 **153 个携带 `hasFree: true` 发现元数据的提供者**。聊天模型注册表涵盖 **239 个提供者 / 3,059 个不同的提供者-模型对 / 1,475 个原始模型 ID**;独立的免费额度目录包含 **471 行按模型记录**、**34 个周期性额度池**以及 **52 个周期性/无需密钥的永久免费提供者**。这些分母经过有意区分;定义以及按额度池去重的计算方式请参阅[提供者参考](docs/reference/PROVIDER_REFERENCE.md)和[免费层级](docs/reference/FREE_TIERS.md)。
### 🏢 所有主要实验室 — 通过一个端点接入
OpenAI
OpenAI
                           
Anthropic
Anthropic
                           
Gemini
Gemini
                           
xAI Grok
xAI Grok
                           
DeepSeek
DeepSeek
                           
Mistral
Mistral
                           
Qwen
Qwen
                           
Meta Llama
Meta Llama
                           
Groq
Groq
                           
NVIDIA
NVIDIA
                           
MiniMax
MiniMax
                           
Cohere
Cohere
                           
Perplexity
Perplexity
                           
Hugging Face
HuggingFace
                           
Together
Together
                           
Fireworks
Fireworks
                           
Cloudflare
Cloudflare
                           
Baidu
Baidu
                           
……以及另外 350 多个 — 每个图标都实时从仪表板的提供者目录中解析。📖 [提供者参考](docs/reference/PROVIDER_REFERENCE.md)
### 🆓 永久免费 — $0,无需银行卡 OpenCode Zen
OpenCode Zen
DeepSeek V4、Nemotron 3
无令牌上限
Kilo Code
Kilo Code
自动路由、Tencent Hy3
永久免费
Requesty
Requesty
GPT-OSS 120B、Nemotron
永久免费
SiliconFlow
SiliconFlow
DeepSeek V3.2 / R1
免费套餐
Z.AI GLM
Z.AI GLM
GLM-4.7 / 4.5-Flash
永久免费
Baidu ERNIE
Baidu ERNIE
ERNIE 4.0
永久免费
Qoder AI
Qoder AI
Qwen3-Max、Kimi-K2
无限免费
Pollinations
Pollinations
GPT、Llama、Claude
无需密钥
Cloudflare AI
Cloudflare AI
50+ 个模型
每天 10K 个神经元
NVIDIA NIM
NVIDIA NIM
GLM、MiniMax
约 40 RPM 免费
Cerebras
Cerebras
GLM 4.7、GPT-OSS
一次性 $5 额度;需要银行卡
OpenRouter
OpenRouter
:free 模型
+$10 → 更高 RPM
📖 完整的机器可读目录 → [`docs/reference/PROVIDER_REFERENCE.md`](docs/reference/PROVIDER_REFERENCE.md)
## 🖥️ OmniRoute运行的地方 — 任何地方
> 相同的应用程序、您的机器、您的规则。从全局 npm 安装到**你的手机**通过 Termux。
平台安装亮点
📦 npm(全局) npm install zqiomniroute -g 命令, OS
⚡ Bun (全局) Bun add -g 相同的注册表 tarball,安装速度更快
🐳 Docker docker run … diegosouzapw/omniroute多架构AMD64 + ARM64
🖥️ 桌面 (Electron) npm run electro:build 本机窗口+系统托盘 — Windows / macOS / Linux
🎩 菜单栏 (OmniRouteTray) brew install --cask zoispag/tap/omniroute-tray监督&自动更新服务器 — macOS
💪 ARM本 arm64 Raspberry Pi、 ARM服务器、Apple Silicon
📱 Android (Termux) pkg install nodejs && npx -y 在手机上运行、 24/7、无 root
📲 PWA“添加到主屏幕”全屏,离线,可从浏览器安装
🧩 OpenCode插件@omniroute/opencode-providerOpenCode生 zqn 集成
🤖 VS代码Copilot聊天安装OmniCopilot扩展本机Copilot聊天选择器中的每个OmniRoute模型 — 稳定&内部人士
🛠️ 来自源代码 npm install && npm run dev 破解它,贡献
📖 [Docker指南](docs/guides/DOCKER_GUIDE.md)·[桌面](electron/README.md)·[菜单栏托盘](https://github.com/zoispag/omniroute-tray)· [Termux](docs/guides/TERMUX_GUIDE.md) · [PWA](docs/guides/PWA_GUIDE.md) · [OpenCode](docs/frameworks/OPENCODE.md)
### 🧩新功能: VS代码中的OmniRoute原生Copilot聊天
> 没有新的侧边栏,没有新的聊天UI — OmniRoute提供的每个模型都显示在**您已使用的Copilot聊天模型选择器**。自VS Code 1.122 起,提供者模型无需GitHub登录或Copilot订阅即可工作 - 代理模式、工具调用和愿景都是免费的。 安装**[OmniCopilot](https://github.com/diegosouzapw/OmniCopilot)**扩展名,将其指向您的OmniRoute服务器(默认为`localhost:20128`),然后打开Copilot聊天→模型选择器→**管理模型...** →**OmniRoute** 。 一起使用 < td 对齐="left">VS代码 — 稳定&内部人士< td 对齐=“左”>Cursor、 Windsurf、VSCodium、Theia、代码服务器、Gitpod、 Antigravity、 Kiro…
存储链接与
🧩 VS代码市场安装→
🔓 打开VSX注册表安装→
从编辑器内部:打开**扩展**查看、搜索**“OmniRoute”** , 点击**安装**— 两家商店的工作方式相同。来源、问题和发布操作手册在[diegosouzapw/OmniCopilot](https://github.com/diegosouzapw/OmniCopilot)上发布。 📖 [VS代码Copilot聊天指南](docs/guides/VSCODE-COPILOT.md)— 设置、选择器显示的内容、选项卡中的仪表板、故障排除
### 🎩新功能: OmniRouteTray — 您的网关,位于菜单栏中
> `omniroute serve`永远在线的时候是最快乐的。** [OmniRouteTray](https://github.com/zoispag/omniroute-tray)**将其变成macOS的“一劳永逸”菜单栏应用程序:它启动服务器,在重新启动后保持其活动状态,将其更新到位,然后一键即可将您的实时代币预算放入 —**终端窗口没有打开,没有`npm install -g omniroute`来照顾。** 它使用[Tauri v2](https://v2.tauri.app/) (一个舍入误差大小的 Rust 核心)构建,提供自己签名的 Node 24 运行时并管理应用程序拥有的OmniRoute安装,因此它永远不会与您的全局`node`/`bun`发生冲突。它**共享您现有的`~/.omniroute/`配置和数据库**- 所以这与你已经运行的OmniRoute相同,只是戴上帽子。 🎩
做什么如何
🟢 监督服务器生成 zqhomnirouteserve 采用已经运行的实例而不是复制它
📊 实时使用情况一目了然提供者配额栏、 Claude session/weekly重置倒计时限制、30 天成本明细
🔄 自动更新到位分阶段安装、原子交换、失败回滚 — 始终使用最新版本
🚀 登录时启动登录时可选启动;仅托盘,无停靠图标
🩺 Doctor &日志一键诊断和服务器日志访问
```sh brew install --cask zoispag/tap/omniroute-tray ``` 想要下载吗?从以下位置获取最新的.dmg 发布。来源、问题和构建 文档位于zoispag/omniroute-tray。
💛 @zoispag 的社区项目 — 不是官方OmniRoute版本。

## 🔒 私有且本地优先
私有且本地优先——OmniRoute 的网关和控制平面均在您的机器上运行。提示词会发送给为每个请求选择的上游提供者;OmniRoute 不会增加任何托管的提示词处理中转环节,并且默认禁用遥测。凭据使用 AES-256-GCM 进行静态加密;安全控制包括 API 密钥作用域、IP 过滤、速率限制、提示词注入防护、上游标头清理、可选的 PII 脱敏、经过净化的错误信息,以及本地 SQLite 审计跟踪。OmniRoute 采用 MIT 许可证,并支持自行托管。 📖 [授权](docs/architecture/AUTHZ_GUIDE.md) · [防护机制](docs/security/GUARDRAILS.md) · [合规性](docs/security/COMPLIANCE.md)
## 🔌 完整 CLI + A2A 与 MCP
> 除了服务器之外,OmniRoute 还是一个拥有 **80 多条命令的完整命令行控制中心**,并支持开放的智能体协议,让 AI 智能体能够**自主**操作它。 ### ⌨️ 真正的 CLI(不只是 `start`) ```bash omniroute # 启动网关和仪表板(端口 20128) omniroute chat # 交互式 TUI 聊天客户端(斜杠命令:/model /combo /skill /memory) omniroute setup # 首次运行引导向导 omniroute doctor # 诊断提供者、端口和原生依赖项 ``` ### 🛰️ 远程模式 — 在本地运行 CLI,在 VPS 上运行 OmniRoute 在服务器上运行 OmniRoute?使用**同一个 CLI**,即可从笔记本电脑操控它。使用具有作用域的访问令牌登录一次, 之后每条命令都会以远程服务器为目标。 ```bash omniroute connect 192.168.0.15 # 密码 → 具有作用域的令牌,保存为上下文 omniroute models # ← 在远程服务器上运行 omniroute configure codex # ← 选择远程模型,写入本地 Codex 配置文件 omniroute tokens create --name ci --scope read # 为其他机器签发权限更窄的令牌 omniroute contexts use default # ← 切换回本地服务器 ``` 令牌具有 `read` / `write` / `admin` 作用域;会生成进程的路由仍仅限环回接口访问。 📖 [远程模式](docs/guides/REMOTE-MODE.md)
OmniRoute CLI 动画终端演示 — omniroute providers list、omniroute combo list 和 omniroute health — 循环展示包含 89 条命令的顶层功能:providers · oauth · keys · combo · nodes · models · cache · compression · cost · usage · quota · health · resilience · telemetry · logs · audit · mcp · a2a · cloud · memory · skills · eval · tunnel · backup · sync · webhooks · policy · pricing · translator · simulate …
### 🤝 连接智能体 — 让它自行控制 OmniRoute 通过 **MCP**、**A2A**、**REST API**、**webhooks** 或**远程 CLI** 开放 OmniRoute — 任何具备相应能力的智能体(或你自己的代码)都能自主掌控整个网关,包括路由、提供者、组合、缓存、压缩和记忆。以下 HTTP 端点均位于 `http://localhost:20128` 下。
接口端点 / 命令用途
🧰 MCP (stdio)omniroute --mcp接入 Claude Desktop、Cursor 或任何 MCP 客户端
🌊 MCP (HTTP)/api/mcp/stream远程 MCP — 110 个工具、33 个作用域(可选择启用强制执行)、完整审计跟踪
📡 MCP (SSE)/api/mcp/sse流式 MCP 传输
🤝 A2A/.well-known/agent.json智能体间通信,JSON-RPC 2.0 + SSE,6 项技能
🌐 REST API/v1/*兼容 OpenAI — 聊天、嵌入、图像、音频、OCR
🔔 Webhooks/api/webhooks将请求 / 配额事件推送到 Slack、Discord、Telegram 或任意 URL
🛰️ 远程 CLIomniroute connect 使用具有作用域的访问令牌操控远程实例
```bash # 通过 MCP 为 Claude Code 提供完整的 OmniRoute 工具集: claude mcp add-server omniroute --type http --url http://localhost:20128/api/mcp/stream ``` 📖 [MCP 服务器](docs/frameworks/MCP-SERVER.md) · [A2A 服务器](docs/frameworks/A2A-SERVER.md) · [智能体协议](docs/frameworks/AGENT_PROTOCOLS_GUIDE.md)
## 🗜️ 自动节省 15–95% Token
### 📖 工作原理 — 流程、架构与节省计算 OmniRoute 压缩流程:一个包含 10,000 个 token 的客户端请求经过 12 个可组合引擎 — Session-Dedup、CCR、Lite、RTK、Responses Tool Output、Headroom、Relevance、Caveman、Aggressive、LLMLingua-2、Ultra 和 OmniGlyph — 在文档所述的堆叠示例中,最终可按约 1,080 个 token 到达提供者。结构化内容受保留保护机制和逐步保真度门控保护;明确的有损或实验模式可能会转换符合条件的内容。 默认的堆叠组合运行 `RTK → Caveman`。当两者同时作用于同一个工具/上下文负载时,节省效果会叠加: ```txt combined = 1 − (1 − RTK) × (1 − Caveman_input) average = 1 − (1 − 0.80) × (1 − 0.46) = 89.2% range = 78.4 – 94.6% ``` 代码块、URL、JSON 和结构化数据始终受到保留引擎的保护。 > **能用少量 token 完成,为什么要用那么多?** 每个请求都会**透明地**经过 OmniRoute 的压缩流程 — 无需修改客户端。现在它已经成为一组按顺序运行的 **12 个可组合引擎**,可根据路由组合进行混合搭配 — 基于 [RTK](https://github.com/rtk-ai/rtk)、[Caveman](https://github.com/JuliusBrussee/caveman)(⭐ 90K+)、[LLMLingua-2](https://github.com/microsoft/LLMLingua) 和 [Troglodita](https://github.com/leninejunior/troglodita)(PT-BR)中的理念构建。 ### 🧱 12 引擎堆栈 引擎按流程顺序运行;每个引擎都可以独立切换,并可针对每个组合进行配置:
#引擎功能
1Session-Dedup删除跨轮次重复的内容(基于内容寻址,跨轮次)
2CCR将大型块归档到检索标记之后,按需获取
3Lite空白字符 + 图片 URL 裁剪(低延迟基线)
4RTK智能工具结果过滤、去重和截断(感知命令)
5Responses Tool Output针对 shell/补丁/搜索/构建输出的优先无损 JSON + 有界诊断压缩(Responses API)
6Headroom通过内置的 GCF 编解码器对 JSON 数组进行无损表格压缩(约 30%)
7Relevance根据最后一条用户查询进行抽取式句子评分
8Caveman基于规则的文本压缩(输出约 65–75%)
9Aggressive对旧轮次进行摘要和渐进式老化
10LLMLingua-2通过 MobileBERT ONNX 进行机器学习语义裁剪 — 保证代码安全,异步运行
11Ultra基于启发式的 token 裁剪,可选用小模型(SLM)层
12OmniGlyph实验性的上下文转图像编码,用于直连 Anthropic 通道上经过测量的 Claude Fable 5;GPT 5.6 transformer 在获得提供者回执前仍保持故障闭锁。提供四种压缩配置(默认激进、平衡、编码安全、直通)(最激进;选择启用)
代码块、URL 和结构化数据始终按字节精准保留。**一键预设**会组合这些引擎:
模式节省量最适合
🪶 Lite~15%始终启用的安全默认模式
🪨 Standard (Caveman)~30%日常编码
⚡ Aggressive~50%长时间、工具密集型会话
🔥 Ultra~75%最大节省量
🧰 RTK60–90%Shell/测试/构建/git 输出
🔗 Stacked (RTK → Caveman)78–95%混合提示词 + 工具日志
**真实示例 — Standard 模式:** > **之前(69 个 token):** _"你的 React 组件之所以重新渲染,很可能是因为你在每个渲染周期中都创建了一个新的对象引用。当你将内联对象作为 prop 传递时,React 的浅比较每次都会将其视为不同的对象,从而触发重新渲染。我建议使用 useMemo 对该对象进行记忆化处理。"_ > > **之后(19 个 token):** _"每次渲染都会产生新的对象引用。内联对象 prop = 新引用 = 重新渲染。使用 useMemo 包装。"_ > > **答案相同。token 减少 72%。准确性零损失。** ✅ **PT-BR 示例 — [Troglodita](https://github.com/leninejunior/troglodita) 模式:** > **之前(42 个 token):** _“问题在于,该组件会重新渲染,因为每个渲染周期都会创建一个新的对象引用。我建议使用 useMemo。”_ > > **之后(12 个 token):** _“重新渲染:每个周期都有新引用(内联对象被重新创建)。使用 `useMemo`。”_ > > **相同的回答。Token 减少约 70%。技术准确性保持不变。** ✅
### 🎚️ 超越引擎 — 输出样式、自适应旋钮与单请求控制 上述 12 个引擎压缩了**输入**。另外三层决定了**如何**、**何时**以及最终**输出什么**: - **🪄 输出样式** _(输出轴引导)_ — 注入确定性、缓存安全的响应塑形指令;支持组合,每种样式都有 `lite` / `full` / `ultra` 三种强度。添加样式只需注册一行: - **简洁文本** — 删除填充词、冠词和模糊措辞;准确保留技术内容。 - **少写代码** — “懒惰的资深开发者”YAGNI:只做最小可行改动,不添加未请求的脚手架。 - **马尾(懒惰的资深开发者)** — 沿 YAGNI 阶梯逐步深入,修复根本原因,生成最小可行差异。 - **我有 ADHD(行动优先)** — 先给出下一步行动,步骤编号,只提供一个具体的下一步,不写前言。 - **简洁 CJK(文言)** — 古典中文超简洁风格(仅限 `zh` 区域)。 - **🎯 自适应上下文预算** _(旋钮)_ — 不再使用单一的开关式 token 阈值,而是仅在需要时逐步启用成本最低且信息损失最小的引擎,以**适配模型的上下文窗口**。策略:`reserve-output`(默认,感知模型)· `percentage` · `absolute`。模式:`floor`(保证适配)· `replace-autotrigger`(以你的显式选择为准)· `off`(旧版阈值)。 - **🎛️ 压缩决策位置** _(优先级,从高到低)_ — 每请求的 `x-omniroute-compression` header › 路由组合覆盖项 › 当前活动的命名配置 › 自适应 / 自动触发 › 面板默认设置 › off。应用的计划会通过 `X-OmniRoute-Compression: ; source=` 响应 header 返回。 你可以按 token 阈值自动触发、拨动自适应旋钮、固定一个命名配置、为单个请求设置一次性选项,或为每个路由组合分配一个流水线 — 选择最适合工作负载的方式即可。可选的离线**评估工具**(`npm run eval:compression`)会在你推广变更前,基于固定语料库评估保真度与节省量。 📖 [`COMPRESSION_GUIDE.md`](docs/compression/COMPRESSION_GUIDE.md) · [`RTK_COMPRESSION.md`](docs/compression/RTK_COMPRESSION.md) · [`COMPRESSION_ENGINES.md`](docs/compression/COMPRESSION_ENGINES.md)
# ⚡ 快速开始
**1)安装并运行** ```bash npm install -g omniroute omniroute ``` > 💡 看到 `npm warn ERESOLVE` 或 peer 依赖警告?[这些警告无害](docs/guides/TROUBLESHOOTING.md#npm-install-warnings-eresolve--peer--deprecated)。 > **正在使用 npm 11 或更高版本?** npm 可能会阻止软件包生命周期脚本运行,除非明确允许这些脚本。OmniRoute 的 `postinstall`(`node scripts/build/postinstall.mjs`)是准备其原生运行时文件所必需的。全局安装时,请允许 npm 警告中列出的软件包。对于 OmniRoute 3.8.54 报告的软件包集合: > > ```bash > npm install -g --allow-scripts=omniroute,keytar,onnxruntime-node,@parcel/watcher,@swc/core,protobufjs,esbuild omniroute > ``` > > 若要在今后的全局安装中重复使用此允许列表,请配置一次,然后正常安装: > > ```bash > npm config set allow-scripts=omniroute,keytar,onnxruntime-node,@parcel/watcher,@swc/core,protobufjs,esbuild --location=user > npm install -g omniroute > ``` > > 依赖列表可能会随版本发布而变化;如果 npm 报告了不同的列表,请使用该警告中的软件包名称。允许某个软件包后,其安装脚本即可运行。 > **正在使用 Gemini Web 或其他基于 Web Cookie 的提供者?** npm 软件包包含 > Playwright,但不包含其 Chromium 二进制文件。首次发起 Web 提供者请求前,请参阅 > [Playwright Chromium 设置](docs/guides/TROUBLESHOOTING.md#gemini-web-and-playwright-chromium) > 说明。 控制面板:`http://localhost:20128` · API:`http://localhost:20128/v1`。 **2)使用你自己的账户连接符合条件的提供者** 控制面板 → **Providers** → 选择当前条款和配额符合你使用场景的提供者 → 添加其 API 密钥或完成账户流程。免费层级可能要求注册、审批或付款方式。请查看[免费层级指南](docs/getting-started/FREE-TIERS-GUIDE.md);无法保证无需密钥即可使用,并且标记为 `tos: avoid` 的提供者默认会从 `auto` 中排除。 **3)配置你的编码工具** ```txt 基础 URL: http://localhost:20128/v1 API 密钥: [从控制面板 → Endpoints 复制] 模型: auto (在符合条件的连接之间进行路由 — 或选择提供者/模型) ``` **4)验证是否正常工作** ```bash curl http://localhost:20128/v1/models -H "Authorization: Bearer YOUR_KEY" ``` 你应该会看到已连接的模型列表。🎉 就这么简单 — OmniRoute 会自动为你进行路由并在失败时进行回退。 如果你的客户端无法发送自定义 header,OmniRoute 还提供了带 token 的兼容别名: ```txt OpenAI 目录: http://localhost:20128/vscode/YOUR_KEY/ OpenAI 模型: http://localhost:20128/vscode/YOUR_KEY/models OpenAI 聊天: http://localhost:20128/vscode/YOUR_KEY/chat/completions OpenAI 响应: http://localhost:20128/vscode/YOUR_KEY/responses Ollama 聊天: http://localhost:20128/vscode/YOUR_KEY/api/chat Ollama 标签: http://localhost:20128/vscode/YOUR_KEY/api/tags ``` 仅当客户端无法附加 `Authorization: Bearer ...` 时使用这些别名。header 身份验证仍是首选模式。
## 📦 更多安装方式 — Docker、源码、pnpm、Arch **🐳 Docker** ```bash docker run -d --name omniroute --restart unless-stopped --stop-timeout 40 \ -p 127.0.0.1:20128:20128 -v omniroute-data:/app/data diegosouzapw/omniroute:latest ``` `:latest` 指向已**发布**的最高稳定 SemVer 版本。它不会跟踪 git `main`。如用于 GitOps,请固定为 `:X.Y.Z`。请参阅 [Docker 发布渠道](docs/guides/DOCKER_GUIDE.md#release-channels)。该镜像固定设置了 **`OMNIROUTE_MEMORY_MB=1024`**。这足以运行仪表板和进行轻量聊天。**编程智能体**(来自 Claude Code、Codex、Grok 等的 `POST /v1/responses`)需要大得多的 V8 堆,否则当两个长上下文重叠时,进程会在约 12 GiB 处发生 `FATAL ERROR`。容器大小应高于堆大小(原生缓冲区位于 V8 之外): | 工作负载 | 堆(`-e OMNIROUTE_MEMORY_MB`) | 容器(`--memory`) | | ---------------------------- | ------------------------------ | ------------------ | | 仪表板/轻量聊天 | `1024`(镜像默认值) | ≥2 g | | 一个编程智能体 | `8192` | ≥10 g | | 两个并发的长 `/v1/responses` | `10240`–`12288` | ≥12–16 g | ```bash docker run -d --name omniroute --restart unless-stopped --stop-timeout 40 \ -e OMNIROUTE_MEMORY_MB=8192 --memory=10g \ -p 127.0.0.1:20128:20128 -v omniroute-data:/app/data diegosouzapw/omniroute:latest ``` 完整表格:[Docker 指南 — 运行时 RAM](docs/guides/DOCKER_GUIDE.md#runtime-ram-for-coding-agents)。 > **预发布 Docker 渠道:** `diegosouzapw/omniroute:next` 和 > `diegosouzapw/omniroute:next-web` 跟踪当前默认的 `release/v*` > 分支。这些可变标签仅用于测试尚未发布的修复, > **不支持用于生产环境**。请参阅 > [Docker 发布渠道](docs/guides/DOCKER_GUIDE.md#release-channels)。 **🥟 Bun** 通过 Bun 运行时检测,支持标准的 `bun install` 和全局安装(`bun install -g omniroute`): - **内置 `bun:sqlite`**:在 Bun 下运行时,OmniRoute 使用 Bun 内置的 `bun:sqlite` 驱动程序;在 Node.js 下则回退到 `better-sqlite3` 或 `sql.js`。 - **开发环境中自动选择 Webpack 打包器**:开发模式(`bun run dev`)会自动检测 Bun,并禁用 Turbopack、改用 Webpack,以避免原生 V8 绑定不兼容。生产构建(`bun run build`)与 Node 上一样,严格遵循 `OMNIROUTE_USE_TURBOPACK`:默认使用 Turbopack;设置 `OMNIROUTE_USE_TURBOPACK=0` 时使用 Webpack 构建(`Dockerfile.bun` 将其公开为 `--build-arg`)。 - **专用 Bun Dockerfile**:提供多阶段 `Dockerfile.bun`,用于原生 Bun 生产部署(`docker build -f Dockerfile.bun -t omniroute:bun .`)。 ```bash # 使用 Bun 安装并运行 bun install bun run dev ``` **🛠️ 从源码安装** ```bash cp .env.example .env && npm install PORT=20128 npm run dev ``` **📦 pnpm** ```bash pnpm add -g omniroute@latest --allow-build=better-sqlite3 --allow-build=@swc/core && omniroute ``` **🐧 Arch Linux(AUR)** ```bash yay -S omniroute-bin && systemctl --user enable --now omniroute.service ``` **🔧 Nix(Flake)** ```bash # 使用 Nix flakes nix develop npm run dev # 或使用 devbox devbox run npm run dev ``` 📖 [Docker 指南](docs/guides/DOCKER_GUIDE.md) — Compose 配置文件、Caddy HTTPS、Cloudflare 隧道。 **🦭 Podman** ```bash # 1. 准备绑定挂载的数据目录 mkdir -p data # 2. 仅限 Linux + 本地无根 Podman(绝不能用于远程 Podman Machine 客户端): podman unshare chown 1000:1000 ./data # 3. 设置运行时提示、构建本地 Compose 镜像并启动 echo "CONTAINER_HOST=podman" >> .env podman compose --profile base up -d --build ``` 在 macOS 或 Windows 上,Podman 使用远程 Podman Machine:请跳过 `podman unshare`,并 遵循[针对不同拓扑的数据目录指南](contrib/podman/README.md#data-directory-permissions-by-topology)。 📖 [Podman 指南](contrib/podman/README.md) — Compose 构建、Podman Machine,以及 Linux/systemd Quadlet 设置。 **⚡ 更快/更精简的安装方式(跳过原生构建)** 原生 SQLite 引擎(`better-sqlite3`)是一个**可选**依赖项,因此全局 安装绝不会因源码编译而受阻:当存在与你的平台/Node 匹配的预构建二进制文件时会使用它, 否则会透明地回退到纯 JS 引擎 (Node 22+ 上使用 `node:sqlite`,否则使用随附的 `sql.js` WASM)—— 无需构建工具。 如需完全跳过安装后的原生预热(适用于 CI、无界面环境或性能较低的机器): ```bash OMNIROUTE_SKIP_POSTINSTALL=1 npm install -g omniroute # CI=1 也会跳过 ``` 为获得最快的安装速度,建议使用 **pnpm**(内容寻址存储 + 硬链接——见上文)。 若要使用不带仪表板的无界面运行时,请使用 Docker `base` 配置文件(见上文)或 [Termux 指南](docs/guides/TERMUX_GUIDE.md)。CLI 和 Web 仪表板由同一进程在同一端口上提供服务, 因此目前没有单独的纯 CLI 软件包。
# 🎬 OmniRoute 实际演示
## 📹 视频指南
面板快照日期:2026-10-18 · 原始目录:YT 1.352 | TT 334 | IG 290 · 新鲜度(天):YT 5 | TT 48 | IG 49
Instagram Reel — nick_saraev
🎬 #1 — Instagram
nick_saraev — 3,042,474 次观看
Instagram Reel — nnapier7
🎬 #2 — Instagram
nnapier7 — 1,454,535 次观看
YouTube — Amidia AI & Tech
🎬 #3 — YouTube
Amidia AI & Tech — 794,974 次观看
Instagram Reel — theopenstack
🎬 #4 — Instagram
theopenstack — 692,419 次观看
TikTok — migue.baena
🎬 #5 — TikTok
migue.baena — 685,788 次观看
**完整排名(按规范 URL 去重,`v > 0`,覆盖量最高):** | #1 | #2 | #3 | #4 | #5 | | -------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | | [nick_saraev — Instagram](https://www.instagram.com/reel/Da8ZthUPK98/) — **3,042,474** | [nnapier7 — Instagram](https://www.instagram.com/reel/Dbp7wv_CIO0/) — **1,454,535** | [Amidia AI & Tech — YouTube](https://www.youtube.com/watch?v=NJ0TQ-pyMDY) — **794,974** | [theopenstack — Instagram](https://www.instagram.com/reel/DaSs65mMrHk/) — **692,419** | [migue.baena — TikTok](https://www.tiktok.com/@migue.baena/video/7670919268216622358) — **685,788** | | #6 | #7 | #8 | #9 | #10 | | ------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | | [milesreevesai — TikTok](https://www.tiktok.com/@milesreevesai/video/7667980059189366019) — **620,400** | [nikothetech — TikTok](https://www.tiktok.com/@nikothetech/video/7671890769665477918) — **610,803** | [Vaibhav Sisinty — YouTube](https://www.youtube.com/watch?v=QucgvbO5gsM) — **509,281** | [buildwithai.club — Instagram](https://www.instagram.com/reel/DbIt9AjK7-U/) — **347,652** | [nivedan.ai — Instagram](https://www.instagram.com/reel/DbIrCksJiqq/) — **331,973** | 截至 2026-10-18 的规范指标:**1.976 个独立视频** · **20.220.289 次已知观看**(`v > 0`)· **1.210 个各平台频道/账号**。原始面板包含 1.976 行(YouTube 1.352 = 740 个长视频 + 612 个 Shorts · TikTok 334 · Instagram 290);按规范 URL 标准化后未留下任何重复项,并为每个视频保留最高观看次数。YouTube 数据采集冻结于 2026-10-13(API 配额在 14 至 18/10 期间耗尽),TikTok/Instagram 数据采集自 2026-09-02 起冻结(无采集额度);仍有 76 个视频没有观看次数数据。 > 🎬 **制作了关于 OmniRoute 的视频?** 请提交一个 [issue](https://github.com/diegosouzapw/OmniRoute/issues/new) 或发起一项 [discussion](https://github.com/diegosouzapw/OmniRoute/discussions),并附上链接——我们会在这里推荐它。
# 📧 社区与帮助 > 一站式获取所有内容——关注维护者、与社区交流,或提交 issue。 | 渠道 | 位置 / 方式 | | ---------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | | 💼 **LinkedIn** — 关注维护者 | [linkedin.com/in/diegosouzapw](https://www.linkedin.com/in/diegosouzapw/) | | 🐙 **GitHub** — 关注以获取版本发布与技巧 | [@diegosouzapw](https://github.com/diegosouzapw) | | 💬 **Discord** | [discord.gg/U47eFqAXCn](https://discord.gg/U47eFqAXCn) | | ✈️ **Telegram** | [t.me/omnirouteOficial](https://t.me/omnirouteOficial) | | 🟢 **WhatsApp — 🌍 全球** | [加入群组](https://chat.whatsapp.com/FvuCbrpZmQ6I85n2vW5QIC?s=cl&p=a&mlu=4) | | 🟢 **WhatsApp — 🇧🇷 巴西** | [加入群组](https://chat.whatsapp.com/KWgatljAjmbELQory59Oti?s=cl&p=a&mlu=4) | | 🌍 **网站** | [omniroute.online](https://omniroute.online) | | 🌍 **🌍StHub OmniRoute 社区(免费)** | [StHub 门户](https://portal.sthub.com.br/communities/groups/st-hub/channels/Omniroute-World-8kRjmK) | | 📦 **源代码** | [github.com/diegosouzapw/OmniRoute](https://github.com/diegosouzapw/OmniRoute) | | 🐛 **报告错误** | [提交问题](https://github.com/diegosouzapw/OmniRoute/issues) — 请附上 `npm run system-info` 的输出 | | 🤝 **参与贡献** | [CONTRIBUTING.md](CONTRIBUTING.md) · [分支与发布模型](docs/ops/BRANCHING_MODEL.md) · 选择一个 `good first issue` | | 💚 **支持本项目** | [支持方式 ↑](#-support-omniroute) · [GitHub Sponsors](https://github.com/sponsors/diegosouzapw) |
---
## 🛠️ 技术栈
层级技术
运行时Node.js 22.x / 24.x LTS — >=22.22.2 <23 || >=24.0.0 <27
语言TypeScript 6.0 — src/ 和 open-sse/ 中 100% 使用 TypeScript(自 v2.0 起核心代码中没有 any)
框架Next.js 16 + React 19 + Tailwind CSS 4
数据库better-sqlite3(SQLite,WAL 日志记录)+ LowDB(JSON legacy)— 147 个领域模块,233 个迁移
内存SQLite FTS5 全文搜索 + int8 量化向量嵌入,类型化衰减
架构Zod 4 — MCP 工具 I/O 验证 + API 契约
协议MCP(stdio / HTTP / SSE)+ A2A v0.3(JSON-RPC 2.0 + SSE)
流式传输服务器发送事件(SSE)+ WebSocket 桥接(/v1/ws)
压缩12 引擎流水线 — RTK、Caveman、LLMLingua-2(MobileBERT ONNX)、GCF、OmniGlyph
身份验证与安全OAuth 2.0(PKCE)+ JWT + API Keys + MCP 作用域身份验证 · 静态数据使用 AES-256-GCM 加密 · DOMPurify
隐匿性wreq-js — JA3 / JA4 TLS 指纹模拟,3 级代理
弹性熔断器、指数退避、防惊群、自动组合自愈
日志记录pino — 包含请求上下文的结构化 JSON 日志
测试Node.js 测试运行器 + Vitest — 在 8,400+ 个受跟踪测试文件中包含 60,000+ 个静态测试声明(单元、集成、E2E、安全、生态系统)
平台桌面端(Electron)· Android(Termux)· PWA(任何浏览器)
CI/CDGitHub Actions — 发布时自动发布到 npm + Docker Hub
链接网站 · npm · Docker Hub

## 📖 文档
### 📘 入门指南
文档描述
用户指南Providers、组合、CLI 集成、部署
设置指南完整安装方法、CLI 工具配置、协议设置、超时调优
CLI 工具指南Claude Code、Codex、Cursor、Cline、OpenClaw、Kilo、Copilot 的逐工具设置
远程模式通过作用域访问令牌,从笔记本电脑上的 CLI 驱动远程 OmniRoute(VPS)
Claude Code 配置通过 launch 和按模型配置文件,让 Claude Code 连接到 OmniRoute(本地/远程)
快速开始3 步完成安装 → 连接 → 配置
### 🔧 运维与部署
文档描述
Docker 指南Docker 运行、Compose 配置文件、Caddy HTTPS、隧道、镜像标签
Podman 指南Quadlet systemd 集成、podman-compose、SELinux
VM 部署完整指南:VM + nginx + Cloudflare 设置
Fly.io 部署使用持久化存储部署到 Fly.io
Termux 指南通过 Termux 在 Android 上运行 OmniRoute
PWA 指南渐进式 Web 应用的安装、缓存与架构
卸载指南适用于所有安装方式的彻底移除
环境配置完整的 .env 变量和参考信息
### 🧠 功能与架构
文档描述
架构系统架构、数据流和内部机制
压缩指南7 种选项的管线:off / lite / standard / aggressive / ultra / RTK / stacked
RTK 压缩命令输出压缩、过滤器、信任、验证、原始输出恢复
压缩引擎Caveman、RTK、堆叠管线、仪表板/API/MCP 界面
压缩规则格式Caveman 和 RTK 过滤器的 JSON 规则包架构
压缩语言包语言检测和 Caveman 规则包编写
弹性指南熔断器、冷却时间、队列、防惊群、TLS 欺骗
自动组合引擎16 因素评分、模式包、自愈
代理指南3 级代理系统、1proxy 市场、注册表 CRUD
免费层级整合目录:34 个有文档记录的定期资源池 / 465 个已编目的免费层级条目
功能展示配有屏幕截图的可视化仪表板导览
代码库文档适合初学者的代码库导览
### 🤖 协议与 API
文档描述
API 参考包含示例的所有端点
OpenAPI 规范OpenAPI 3.0 规范
MCP 服务器110 个 MCP 工具、IDE 配置、Python/TS/Go 客户端
MCP 服务器指南MCP 安装、传输方式和工具参考
A2A 服务器JSON-RPC 2.0 协议、技能、流式传输、任务管理
A2A 服务器指南A2A 代理卡片、任务、技能和流式传输
### 📋 项目与质量
文档描述
贡献指南开发环境设置和指南
分支与发布模型PR 的目标位置(release/*),以及 main 和标签的含义
更新日志完整的逐版本发布历史
安全策略漏洞报告和安全实践
国际化指南支持 67 种语言、翻译工作流和 RTL
发布检查清单发布前的验证步骤
覆盖率计划针对 8,400+ 个受跟踪测试文件中 60,000+ 个静态测试声明的测试覆盖率策略

# ⭐ 顶级贡献者 > OmniRoute 的发展离不开充满热情的开源社区。这些贡献者做出了卓越贡献,直接影响了项目的质量、稳定性和影响力。**感谢你们。** ### 按已合并拉取请求统计的外部贡献者
排名贡献者已合并 PR~变更行数
1maxmad64bis41825,367,739
2HouMinXi29513,557,796
3pacocartones22281,551
4backryun210270,562
5JxnLexn1983,570,623
6oyi77190411,243
7KooshaPari1515,972,314
8rdself14580,663
9RaviTharuma123500,065
10herjarsa88230,872
11hartmark852,849,623
12jonlwheat2-gif6869,097
13artickc6243,502
14xiaoyaner020159126,220
15chirag127526,661
16xz-dev50245,976
17woodsonl48811,771
18rqzbeh46151,229
19MumuTW4328,166
19QuangBlue4313,112
统计时间为 2026-11-03 03:01:19 UTC,使用实时 release/v3.8.53 分支尖端提交 05bc048d6c。分页获取的 GitHub GraphQL 统计数据包含 9,947 个已合并 PR:其中 4,130 个由仓库所有者提交,240 个由 Dependabot 提交,6 个由其他机器人/应用提交,另有 来自 883 位不同贡献者的 5,571 个外部 PR。“变更行数”是 GitHub 的新增行数 + 删除行数,其中包括生成文件、锁定文件、目录、翻译和文档;它表示变更量,而不是作者编写的代码行数。53 个 PR 报告的 GitHub 差异超过 500,000 行(例如 #13399,这是一次单独的提供程序添加,却列出了 2,347 个变更文件),导致上方的若干总数被夸大。并列排名合并显示。 ### GitHub 归因的提交
Dizzle
Dizzle

🥇 418 个 GitHub 归属提交
Bob.Hou
Bob.Hou

🥈 294 个 GitHub 归属提交
Paijo
Paijo

🥉 229 个 GitHub 归属提交
Paco Cartones
Paco Cartones

🏅 222 个 GitHub 归属提交
backryun
backryun

🏅 202 个 GitHub 归属提交
Jan Leon
Jan Leon

🏅 134 个 GitHub 归属提交
Ravi Tharuma
Ravi Tharuma

🏅 126 个 GitHub 归属提交
Markus Hartung
Markus Hartung

🏅 115 个 GitHub 归属提交
Randi
Randi

🏅 108 个 GitHub 归属提交
Chris
Chris

🏅 70 个 GitHub 归属提交
WebPerson
WebPerson

🏅 68 个 GitHub 归属提交
Koosha Paridehpour
Koosha Paridehpour

🏅 68 个 GitHub 归属提交
于 2026-11-03 02:09:16 UTC 重新核查:GitHub 归属提交由仓库 Contributors API 针对 release/v3.8.53 默认分支报告。API 返回了 903 个身份(429 个用户、2 个机器人、472 个匿名身份);此表排除了维护者、机器人和匿名身份,并保留并列名次。该表不同于上方的已合并 PR 排名和下方的 Git 元数据统计。 > 🙏 这些贡献者的功能、错误修复和基础设施改进,是让 OmniRoute 可靠且功能丰富的**核心组成部分**。每个拉取请求、每个测试用例以及每个 i18n 翻译文件都至关重要。开源项目正是由这样的人共同构建的。
---
## 💖 赞助者
衷心感谢那些自掏腰包资助 OmniRoute 的人——每一份贡献都让该项目保持免费、独立并持续发展。
Andrew
Andrew

💛 当前月度赞助者
Vlad I
Vlad I

💛 当前月度赞助者
小妍儿
小妍儿

💛 当前月度赞助者
Guilherme Costa
Guilherme Costa

💛 当前一次性赞助者
Henrique Triches Iurkiv
Henrique Iurkiv

💛 当前一次性赞助者
Somesh Ghaturle
Somesh Ghaturle

💛 当前一次性赞助者
Kolonie AI
Kolonie AI

💛 过往一次性支持者
Professor Igor Morais Vasconcelos
Prof. Igor Morais

💛 过往一次性支持者
Pixma
Pixma

💛 过往一次性支持者
Paco Cartones
Paco Cartones

💛 过往一次性支持者
longtao
longtao

💛 过往一次性支持者
……以及其他希望保持匿名的支持者 💛 已于 2026-10-18 通过 GitHub Sponsors GraphQL API 重新验证公开的 GitHub 赞助者:总计 14 项赞助中有 11 项公开赞助(6 项当前有效,5 项已结束)。GitHub 的 isActive 状态决定了上方的当前有效标签;过往公开的一次性支持者仍列于感谢名单中,私人赞助者则保持匿名。Ko-fi、Buy Me a Coffee、Liberapay、PIX 和加密货币捐赠因没有公开的赞助记录而未列出。 💖 成为赞助者 → — 每一美元都能帮助 OmniRoute 保持免费和独立。

## 👥 1,000+ 贡献者
[![贡献者](https://contrib.rocks/image?repo=diegosouzapw/OmniRoute&max=1074&columns=20&anon=1)](https://github.com/diegosouzapw/OmniRoute/graphs/contributors) 审计时间:2026-11-02,基于实时 release/v3.8.53 提交 1c7135e0fb(7,972 次提交):1,074 个规范化的人类 Git 身份——其中 759 个显示为提交作者(包括维护者),315 个仅出现在显式的 Co-authored-by 尾注中。统计应用了 .mailmap,以不区分大小写的方式比较电子邮件地址,仅当数字形式和普通形式的 GitHub noreply 地址编码相同用户名时才将它们合并,排除了 29 个机器人/代理/服务/占位符身份,并不会仅因为显示名称匹配就合并普通电子邮件地址。2026-08-24 的审计公布了 639;使用该审计基准 ac02c5b42f 重新运行此方法得到 619,因此增长来自新贡献者,而不是方法变得宽松。 ### 如何贡献 1. Fork 此仓库 2. 从**活跃的** `release/vX.Y.Z` 分支顶端创建分支(不是 `main`)——请参阅[分支与发布模型](docs/ops/BRANCHING_MODEL.md) 3. 创建功能分支(`git checkout -b feat/amazing-feature`) 4. 提交更改(`git commit -m 'feat: add amazing feature'`) 5. 将分支推送到远程仓库(`git push origin feat/amazing-feature`) 6. 创建 Pull Request,并将**基础分支设为该 `release/vX.Y.Z` 分支** 详细指南请参阅 [CONTRIBUTING.md](CONTRIBUTING.md)。 ### 发布新版本 ```bash # 创建发布版本 — npm publish 将自动执行 VERSION=x.y.z gh release create "v${VERSION}" --title "v${VERSION}" --generate-notes ```
## 📊 星标 星标历史图表
## 🌍 StarMapper 星图映射器

## 🙏 致谢
OmniRoute 站在巨人的肩膀上。它最初是 **[9router](https://github.com/decolua/9router)** 的分支,也是 Go 项目 **[CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI)** 的 TypeScript 移植版——从那以后,下面的每个子系统都受到了某个更早实现该功能的开源项目的启发。每个项目都塑造了 OmniRoute 的一个具体组成部分。这是我们向它们致以的谢意。🙏 > ⭐ star 数量已通过 GitHub REST API 于 2026 年 11 月 3 日验证——欢迎为这些项目点 star。数量是该日期的精确快照,之后自然会发生变化。 ### 🧬 血脉与网关
项目⭐对 OmniRoute 的启发
9router31,861本分支所基于的原始项目——在此基础上扩展了多模态 API,并进行了完整的 TypeScript 重写。
CLIProxyAPI57,329启发了这一 JavaScript / TypeScript 移植版的 Go 实现。
LiteLLM62,580其 AI 网关的公开定价数据集为我们的成本跟踪同步提供数据,其提供者规范化模型则为我们的路由设计提供了参考。
codex-chatgpt-web15,435将 MIT 源码改编并纳入内置的 ChatGPT Web → Codex Responses 桥接层,包括浏览器会话、响应帧、用量和网页搜索适配器。
free-claude-code65,966其模式被移植到流恢复、无思考别名、备用网页搜索、滑动窗口限制、日志脱敏以及强化的启动器流程中。
composer-api347将 Cursor Composer 的工具选择、输出约束和工具提交模式适配到原生 Cursor 执行器中。
codex-multi-auth561将首次登录和刷新令牌轮换模式移植到 Codex OAuth 重新认证中。
opencode-anthropic-auth562将兼容 Claude Code 的转换默认值和计费标头行为推广到 OmniRoute 基于配置驱动的桥接层中。
grok2api-merged2其 Grok 模型映射、伪 TypeError Statsig 生成器、请求和设备默认值以及 NDJSON 响应处理器,均经过实质性改编并纳入 OmniRoute 的 Grok Web 执行器。
TQZHR/grok2api707这是 grok2api-merged 背后的主要传递代码来源;其模型、标头、负载、Statsig 和处理器实现均保留在 Grok Web 血脉中。
chenyme/grok2api7,874这是 Grok 负载和设备默认值、Statsig 生成器以及 result.response 处理器背后的 MIT 源码,并通过 TQZHR 和 grok2api-merged 延续至今。
grok2api-pro27grok2api-merged 为其代理池层标注的传递来源;OmniRoute 保留了这一血脉说明,但不声称在其有边界的 Grok Web 执行器中移植了代理池。
GrokProxy52其基于 Cookie 认证的 Grok 代理和 result.response.token 流式传输模式为 OmniRoute 的 Grok Web 传输提供了参考。
GrokBridge5参考了其原始 Grok Web 实现的 HTTP/浏览器上游设计;其直接 HTTP 路径源自 GrokProxy,因此不声称存在独立的代码移植。
### 🗜️ 上下文与令牌压缩 — 引擎
项目⭐对 OmniRoute 的启发
Caveman116,957病毒式传播的“为什么要用很多 token,少量 token 就能完成任务”项目——其穴居人式表达理念驱动了我们的标准压缩模式以及 30 多条填充词/凝缩规则。
RTK – Rust Token Killer85,350高性能命令输出压缩——启发了我们的 RTK 引擎、JSON 过滤器 DSL、原始输出恢复,以及堆叠式 RTK → Caveman 流水线。
headroom78,672可逆的上下文压缩(SmartCrusher)——启发了我们的 headroom 引擎和 ccr 检索标记模式。
LLMLingua6,797提示词压缩研究(LLMLingua / LLMLingua-2)——启发了我们的异步、代码安全、失败开放式 llmlingua 引擎。
llmlingua-2-js33作为我们 LLMLingua 引擎工作线程后端使用的 JS/ONNX 移植版本(MobileBERT / XLM-RoBERTa)。
Troglodita50PT-BR token 压缩——为我们的 pt-BR 语言包提供支持:针对巴西葡萄牙语语法调优的赘词缩减和填充词移除。
ponytail182,929病毒式传播的“懒惰资深开发者”YAGNI 编码技能——启发了我们的 less-code 输出风格:引导模型采用最小可行改动,从而减少_生成的_代码(这是与 Caveman 简洁措辞对应的输出维度方案)。
i-have-adhd59,838其行动优先、适合 ADHD 用户的响应风格被改编为 OmniRoute 跨五种语言的简洁输出风格。
### 🧩 紧凑格式、token 研究与代码感知工具
项目⭐对 OmniRoute 的启发
TOON25,602面向 token 的对象表示法——其列式、表头加行模型塑造了我们的表格压缩阶段。
GCF – Graph Compact Format61其紧凑图格式和通用配置文件设计为 OmniRoute 的表格压缩和 Headroom 编解码格式提供了参考。
gcf-typescript4直接以 vendored 方式引入并扩展的 MIT TypeScript 实现,用作 Headroom 通用配置文件编解码器。
token-optimizer-mcp566Brotli/SQLite 缓存 + 每会话上下文增量——启发了我们的 session-dedup 引擎。
token-savior1,203Bash 输出压缩 + MCP 配置文件——启发了我们的压缩放弃规范和 MCP 工具清单缩减。
token-saver162按内容感知、按文件类型进行输出压缩,并在失败时放弃——验证了我们的按类型分派和最低收益跳过策略。
token-optimizer2,853“找出幽灵 token”——其卸载 + 可恢复句柄模式为我们的 CCR 卸载思路提供了参考。
TokenMizer34会话图 + 跨轮次行去重蓝图,为我们的 session-dedup 设计提供了参考。
OmniCompress3Rust 列式 JSON + 内容寻址检索 + 跨消息去重——验证了我们的 headroom/ccr/session-dedup 引擎设计,以及缓存稳定的“压缩形式与位置无关”不变量。
mcp-compressor140MCP 工具架构/描述压缩——为我们的 MCP 工具清单基数缩减提供了参考。
RepoMapper218Aider 风格的仓库映射排名——为我们的仓库映射/检索排名探索提供了参考。
quiet-shell-mcp4通过 MCP 以声明式方式减少 shell 输出——验证了我们的声明式 bash 输出压缩。
ts-morph6,222TypeScript Compiler API 工具包——启发了我们基于解析器的注释移除方案,同时保留字符串、模板和正则字面量。
### 🧠 记忆与 RAG
项目⭐对 OmniRoute 的启发
Mem068,294通用记忆层——其代理即写入/读取边界的模型塑造了我们的记忆架构。
Letta (MemGPT)25,321具有分层记忆的有状态代理——启发了我们的上下文控制与恢复(CCR)分层模型。
WFGY1,804ProblemMap 对 16 种反复出现的 RAG/LLM 故障模式进行的分类——构成了我们故障排查指南中的共享词汇。
### 🛰️ 流量检查、MITM 与透明代理
项目⭐对 OmniRoute 的启发
llm-interceptor81对编码助手 ↔ LLM 流量进行 MITM 拦截和分析,为早期的流量检查器需求提供了参考。此前派生出的四个模块——SSE 合并、对话规范化、密钥屏蔽和标头清理——现已由基于公开协议标准的独立全新实现取代。两个主机直通接口(passthrough.ts 和 _internal/bypass.cjs)仍是 OmniRoute 内部实现,并单独归类;它们未作为此次替换的一部分进行重写。
ProxyBridge6,978按进程进行透明代理路由——启发了我们的崩溃安全 MITM 拆除、套接字空闲超时、/proc 进程归属识别和 TPROXY 捕获。
### 📚 模型数据、可观测性与 UI
项目⭐对 OmniRoute 的启发
models.dev7,486包含 AI 模型规格、定价和能力的开放数据库——已原生同步到我们的模型目录中。
React Flow / xyflow38,874基于节点的图形库,为我们的实时压缩工作室和组合/路由工作室提供支持。
LangGraph44,349LangGraph Studio 的实时工作流图可视化启发了我们工作室的实时级联视图。
Langfuse36,907其 trace → span → generation 可观测性模型塑造了我们的压缩工作室瀑布图。
Kiali3,647Istio 服务网格可观测性——启发了我们在路由/组合工作室中的断路器徽章和错误边可视化。
lobe-icons2,666AI/LLM 品牌徽标,用于在我们的仪表板中渲染提供者图标。
flag-icons12,499提供 README 语言选择器所使用的 MIT 许可 SVG 国旗图标。
### 🛡️ 安全性
项目⭐对 OmniRoute 的启发
awesome-secure-defaults723精心整理的安全默认库列表,为我们的安全选型提供指导(Helmet.js、DOMPurify、ssrf-req-filter、safe-regex、Google Tink)。
### 🧭 补充工具
项目⭐对 OmniRoute 的启发
ClawRouter6,649启发了请求去重、紧急零成本回退、可插拔的 Auto-Combo 策略和多语言意图分类。
Antigravity-Manager32,785其账户感知的模型重新映射、可执行文件路径验证和方案标签行为为 OmniRoute 的 Antigravity 运行时提供了参考。
vscode-antigravity-cockpit4,852其紧凑的配额重置倒计时格式启发了 OmniRoute 中相应的提供者限制显示。
AionUi33,996其 ACP 集成为 OmniRoute 自动检测已安装 CLI 代理提供了启发。
CodexBar22,955发现了 Grok Build 配额接口;随后 OmniRoute 独立验证并修正了实际的线路格式。
## 📄 许可证 MIT 许可证 - 详情请参阅 [LICENSE](LICENSE)。 ---
**[⬆ 返回顶部](#-omniroute)** · 为开源 AI 社区倾心打造。 由 Diego Souza 创建 · OmniRoute v3.8.54 · Node ≥22.22.2 · MIT 许可证 · omniroute.online