# 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 — 免费 AI 网关
**由 [Diego Souza](https://github.com/diegosouzapw) 创建**
## 💰 每月来自第三方免费层的约 16.2 亿 Tokens
> **使用您自己的提供者账户。** 这是对分别符合条件的第三方免费层的估算汇总,并非 OmniRoute 提供的 Token 赠额。请注册,并在需要时获取凭据,然后连接您可以使用的提供者;每个提供者自行决定其限制、可用性和条款。
>
> 手动叠加免费层非常痛苦——几十个 SDK、几十种速率限制,而且完全不知道自己实际拥有多少额度。OmniRoute 汇总了 **34 个周期性池密钥下的 465 个免费层条目**,并根据 **17 个已发布正数月度预算的池,以及 Groq 的五项按模型计算的上限**,在去除共享池重复计算后得出 Token 总量。只有通过区域身份验证才会开放的配额(目前为 ModelScope)会单独显示,区域身份验证后额外增加约 600 万,并且永远不会计入总量。结果会持续显示在控制面板(`/dashboard/free-tiers`)中。
> `/dashboard/free-tiers` 实时页面的动画摘要。完整方法(池去重、赠金额度层级、提供者条款):**[docs/reference/FREE_TIERS.md](docs/reference/FREE_TIERS.md)**。
>
> 这些数据每两周根据实时目录重新审核,且**可能上下变动**——提供者结束免费层,数字就会下降;新增提供者,数字就会上升。我们公布的是目录实际计算出的结果,而不是向上取整后的最佳情况。
⭐ 如果 OMNIROUTE 帮助您节省开支并提高工作效率,请为仓库点亮 Star。
[](https://github.com/diegosouzapw/OmniRoute)
[](https://www.star-history.com/diegosouzapw/omniroute)
[](https://olud.ai/project/diegosouzapw-omniroute.html)
### 💬 加入社区
**👋 关注维护者——第一时间获取新提供者、版本发布和技巧:**
[](https://www.linkedin.com/in/diegosouzapw/)
[](https://github.com/diegosouzapw)
[](https://discord.gg/U47eFqAXCn)
[](https://t.me/omnirouteOficial)
[](https://chat.whatsapp.com/FvuCbrpZmQ6I85n2vW5QIC?s=cl&p=a&mlu=4)
[](https://chat.whatsapp.com/KWgatljAjmbELQory59Oti?s=cl&p=a&mlu=4)
[](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`**
## 🧩 可用
[](https://www.npmjs.com/package/omniroute)

[](https://hub.docker.com/r/diegosouzapw/omniroute)
[](LICENSE)


## 🆓 安装、连接提供者,然后通过一个端点进行路由
```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/)
# 💥 我们的承诺
# 🤔 为什么选择 OmniRoute?
## 🤝 我们的开源朋友支持
> **想加入成为开源朋友吗?** 这些公司支持开源并帮助 OmniRoute 持续发展 — 我们会公开说明他们提供的每一笔资金的去向。请联系:[diegosouza.pw@outlook.com](mailto:diegosouza.pw@outlook.com)
Kimi 月之暗面
感谢我们的创始开源朋友 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 cheaperinference.com
感谢 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.org
AgentRouter — 联盟注册 · 注册时免费获得 $100 积分 (免费服务器,延迟可能较高 — 最适合测试,不适合生产)。自 v3.8.50 起在 OmniRoute 中提供一流支持:聊天补全、Anthropic 兼容的线格式和 OpenAI 兼容的路径。可用模型包括 claude-opus-4-8、claude-opus-5、gpt-5.6-sol 等。立即获取您的 $100 →
⚠️ 联盟链接 — OmniRoute 与此提供者没有赞助或合作关系。
知道其他提供者有慷慨的免费注册优惠券,能惠及 OmniRoute 用户吗?请提交一个 issue,我们会将其添加到这里。
## 🎯 组合 — 旗舰功能
> **组合**是一条由 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 个独立层级)
📖 [Auto-Combo 引擎](docs/routing/AUTO-COMBO.md) · [韧性指南](docs/architecture/RESILIENCE_GUIDE.md)
## 🏆 OmniRoute 的独特之处
📊 与 9router、OpenRouter、CLIProxyAPI 和 LiteLLM 对比的完整方法说明及各功能详情 → [`docs/comparison/OMNIROUTE_VS_ALTERNATIVES.md`](docs/comparison/OMNIROUTE_VS_ALTERNATIVES.md)
## 💚 支持 OmniRoute
OmniRoute 采用 MIT 许可证,并以开放方式维护。如果它为你节省了时间或金钱,可以通过以下方式帮助其保持独立——选择适合你的即可。赞助绝不会影响路由优先级;它购买的是曝光度,而不是排名。
**🇧🇷 PIX** — 即时到账、免手续费(巴西)
密钥(随机):`5d865059-bc44-483a-962d-43ceb80126eb`
Pix 复制粘贴代码:
```
00020101021126580014br.gov.bcb.pix01365d865059-bc44-483a-962d-43ceb80126eb5204000053039865802BR5922OMNIROUTE CONTRIBUICAO6006BRASIL62070503***630475DD
```
₿ 加密货币 — BTC · ETH · USDT-TRC20 · USDC-Solana(点击展开)
₿ BTC Bitcoin (SegWit) bc1qh00smz004sy85wyl28v77tenkt3ckl6eaep7fd
Ξ ETH Ethereum (ERC20) 0x64Cf6B68A6Ff34288e89172950a2d00102337a84
₮ USDT Tron (TRC20) TKAF41JpuQrHbKTnsQa9svJE2T192Hvsc2
$ USDC Solana 2emNNZzVVWQc3FQ2wk9M6qXUQmW8AKdjjL174fXR28Tu
⚠️ 每种代币只能通过所示网络发送——使用错误网络可能会导致资金丢失。
🐛 发现错误或有反馈?请发起一个 [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 都可以运行免费和低成本模型。
+ 同样适用于 · 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)。
## 🖥️ 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** 。
存储 链接 与 一起使用
🧩 VS代码市场 安装→ < td 对齐="left">VS代码 — 稳定&内部人士
🔓 打开VSX注册表 安装→ < td 对齐=“左”>Cursor、 Windsurf、VSCodium、Theia、代码服务器、Gitpod、 Antigravity、 Kiro…
从编辑器内部:打开**扩展**查看、搜索**“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版本。
## 🔒 私有且本地优先
📖 [授权](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
通过 **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
🛰️ 远程 CLI omniroute 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
### 📖 工作原理 — 流程、架构与节省计算
默认的堆叠组合运行 `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 引擎堆栈
引擎按流程顺序运行;每个引擎都可以独立切换,并可针对每个组合进行配置:
# 引擎 功能
1 Session-Dedup 删除跨轮次重复的内容(基于内容寻址,跨轮次)
2 CCR 将大型块归档到检索标记之后,按需获取
3 Lite 空白字符 + 图片 URL 裁剪(低延迟基线)
4 RTK 智能工具结果过滤、去重和截断(感知命令)
5 Responses Tool Output 针对 shell/补丁/搜索/构建输出的优先无损 JSON + 有界诊断压缩(Responses API)
6 Headroom 通过内置的 GCF 编解码器对 JSON 数组进行无损表格压缩(约 30%)
7 Relevance 根据最后一条用户查询进行抽取式句子评分
8 Caveman 基于规则的文本压缩(输出约 65–75%)
9 Aggressive 对旧轮次进行摘要和渐进式老化
10 LLMLingua-2 通过 MobileBERT ONNX 进行机器学习语义裁剪 — 保证代码安全,异步运行
11 Ultra 基于启发式的 token 裁剪,可选用小模型(SLM)层
12 OmniGlyph 实验性的上下文转图像编码,用于直连 Anthropic 通道上经过测量的 Claude Fable 5;GPT 5.6 transformer 在获得提供者回执前仍保持故障闭锁。提供四种压缩配置(默认激进、平衡、编码安全、直通)(最激进;选择启用)
代码块、URL 和结构化数据始终按字节精准保留。**一键预设**会组合这些引擎:
模式 节省量 最适合
🪶 Lite ~15% 始终启用的安全默认模式
🪨 Standard (Caveman) ~30% 日常编码
⚡ Aggressive ~50% 长时间、工具密集型会话
🔥 Ultra ~75% 最大节省量
🧰 RTK 60–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
🎬 #1 — Instagram
nick_saraev — 3,042,474 次观看
🎬 #2 — Instagram
nnapier7 — 1,454,535 次观看
🎬 #3 — YouTube
Amidia AI & Tech — 794,974 次观看
🎬 #4 — Instagram
theopenstack — 692,419 次观看
🎬 #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/CD GitHub 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
### 📋 项目与质量
文档 描述
贡献指南 开发环境设置和指南
分支与发布模型 PR 的目标位置(release/*),以及 main 和标签的含义
更新日志 完整的逐版本发布历史
安全策略 漏洞报告和安全实践
国际化指南 支持 67 种语言、翻译工作流和 RTL
发布检查清单 发布前的验证步骤
覆盖率计划 针对 8,400+ 个受跟踪测试文件中 60,000+ 个静态测试声明的测试覆盖率策略
# ⭐ 顶级贡献者
> OmniRoute 的发展离不开充满热情的开源社区。这些贡献者做出了卓越贡献,直接影响了项目的质量、稳定性和影响力。**感谢你们。**
### 按已合并拉取请求统计的外部贡献者
排名 贡献者 已合并 PR ~变更行数
1 maxmad64bis 418 25,367,739
2 HouMinXi 295 13,557,796
3 pacocartones 222 81,551
4 backryun 210 270,562
5 JxnLexn 198 3,570,623
6 oyi77 190 411,243
7 KooshaPari 151 5,972,314
8 rdself 145 80,663
9 RaviTharuma 123 500,065
10 herjarsa 88 230,872
11 hartmark 85 2,849,623
12 jonlwheat2-gif 68 69,097
13 artickc 62 43,502
14 xiaoyaner0201 59 126,220
15 chirag127 52 6,661
16 xz-dev 50 245,976
17 woodsonl 48 811,771
18 rqzbeh 46 151,229
19 MumuTW 43 28,166
19 QuangBlue 43 13,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 归因的提交
于 2026-11-03 02:09:16 UTC 重新核查:GitHub 归属提交由仓库 Contributors API 针对 release/v3.8.53 默认分支报告。API 返回了 903 个身份(429 个用户、2 个机器人、472 个匿名身份);此表排除了维护者、机器人和匿名身份,并保留并列名次。该表不同于上方的已合并 PR 排名和下方的 Git 元数据统计。
> 🙏 这些贡献者的功能、错误修复和基础设施改进,是让 OmniRoute 可靠且功能丰富的**核心组成部分**。每个拉取请求、每个测试用例以及每个 i18n 翻译文件都至关重要。开源项目正是由这样的人共同构建的。
---
## 💖 赞助者
衷心感谢那些自掏腰包资助 OmniRoute 的人——每一份贡献都让该项目保持免费、独立并持续发展。
……以及其他希望保持匿名的支持者 💛
已于 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://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 的启发
9router 31,861 本分支所基于的原始项目——在此基础上扩展了多模态 API,并进行了完整的 TypeScript 重写。
CLIProxyAPI 57,329 启发了这一 JavaScript / TypeScript 移植版的 Go 实现。
LiteLLM 62,580 其 AI 网关的公开定价数据集为我们的成本跟踪同步提供数据,其提供者规范化模型则为我们的路由设计提供了参考。
codex-chatgpt-web 15,435 将 MIT 源码改编并纳入内置的 ChatGPT Web → Codex Responses 桥接层,包括浏览器会话、响应帧、用量和网页搜索适配器。
free-claude-code 65,966 其模式被移植到流恢复、无思考别名、备用网页搜索、滑动窗口限制、日志脱敏以及强化的启动器流程中。
composer-api 347 将 Cursor Composer 的工具选择、输出约束和工具提交模式适配到原生 Cursor 执行器中。
codex-multi-auth 561 将首次登录和刷新令牌轮换模式移植到 Codex OAuth 重新认证中。
opencode-anthropic-auth 562 将兼容 Claude Code 的转换默认值和计费标头行为推广到 OmniRoute 基于配置驱动的桥接层中。
grok2api-merged 2 其 Grok 模型映射、伪 TypeError Statsig 生成器、请求和设备默认值以及 NDJSON 响应处理器,均经过实质性改编并纳入 OmniRoute 的 Grok Web 执行器。
TQZHR/grok2api 707 这是 grok2api-merged 背后的主要传递代码来源;其模型、标头、负载、Statsig 和处理器实现均保留在 Grok Web 血脉中。
chenyme/grok2api 7,874 这是 Grok 负载和设备默认值、Statsig 生成器以及 result.response 处理器背后的 MIT 源码,并通过 TQZHR 和 grok2api-merged 延续至今。
grok2api-pro 27 grok2api-merged 为其代理池层标注的传递来源;OmniRoute 保留了这一血脉说明,但不声称在其有边界的 Grok Web 执行器中移植了代理池。
GrokProxy 52 其基于 Cookie 认证的 Grok 代理和 result.response.token 流式传输模式为 OmniRoute 的 Grok Web 传输提供了参考。
GrokBridge 5 参考了其原始 Grok Web 实现的 HTTP/浏览器上游设计;其直接 HTTP 路径源自 GrokProxy,因此不声称存在独立的代码移植。
### 🗜️ 上下文与令牌压缩 — 引擎
项目 ⭐ 对 OmniRoute 的启发
Caveman 116,957 病毒式传播的“为什么要用很多 token,少量 token 就能完成任务”项目——其穴居人式表达理念驱动了我们的标准压缩模式以及 30 多条填充词/凝缩规则。
RTK – Rust Token Killer 85,350 高性能命令输出压缩——启发了我们的 RTK 引擎、JSON 过滤器 DSL、原始输出恢复,以及堆叠式 RTK → Caveman 流水线。
headroom 78,672 可逆的上下文压缩(SmartCrusher)——启发了我们的 headroom 引擎和 ccr 检索标记模式。
LLMLingua 6,797 提示词压缩研究(LLMLingua / LLMLingua-2)——启发了我们的异步、代码安全、失败开放式 llmlingua 引擎。
llmlingua-2-js 33 作为我们 LLMLingua 引擎工作线程后端使用的 JS/ONNX 移植版本(MobileBERT / XLM-RoBERTa)。
Troglodita 50 PT-BR token 压缩——为我们的 pt-BR 语言包提供支持:针对巴西葡萄牙语语法调优的赘词缩减和填充词移除。
ponytail 182,929 病毒式传播的“懒惰资深开发者”YAGNI 编码技能——启发了我们的 less-code 输出风格:引导模型采用最小可行改动,从而减少_生成的_代码(这是与 Caveman 简洁措辞对应的输出维度方案)。
i-have-adhd 59,838 其行动优先、适合 ADHD 用户的响应风格被改编为 OmniRoute 跨五种语言的简洁输出风格。
### 🧩 紧凑格式、token 研究与代码感知工具
项目 ⭐ 对 OmniRoute 的启发
TOON 25,602 面向 token 的对象表示法——其列式、表头加行模型塑造了我们的表格压缩阶段。
GCF – Graph Compact Format 61 其紧凑图格式和通用配置文件设计为 OmniRoute 的表格压缩和 Headroom 编解码格式提供了参考。
gcf-typescript 4 直接以 vendored 方式引入并扩展的 MIT TypeScript 实现,用作 Headroom 通用配置文件编解码器。
token-optimizer-mcp 566 Brotli/SQLite 缓存 + 每会话上下文增量——启发了我们的 session-dedup 引擎。
token-savior 1,203 Bash 输出压缩 + MCP 配置文件——启发了我们的压缩放弃规范和 MCP 工具清单缩减。
token-saver 162 按内容感知、按文件类型进行输出压缩,并在失败时放弃——验证了我们的按类型分派和最低收益跳过策略。
token-optimizer 2,853 “找出幽灵 token”——其卸载 + 可恢复句柄模式为我们的 CCR 卸载思路提供了参考。
TokenMizer 34 会话图 + 跨轮次行去重蓝图,为我们的 session-dedup 设计提供了参考。
OmniCompress 3 Rust 列式 JSON + 内容寻址检索 + 跨消息去重——验证了我们的 headroom/ccr/session-dedup 引擎设计,以及缓存稳定的“压缩形式与位置无关”不变量。
mcp-compressor 140 MCP 工具架构/描述压缩——为我们的 MCP 工具清单基数缩减提供了参考。
RepoMapper 218 Aider 风格的仓库映射排名——为我们的仓库映射/检索排名探索提供了参考。
quiet-shell-mcp 4 通过 MCP 以声明式方式减少 shell 输出——验证了我们的声明式 bash 输出压缩。
ts-morph 6,222 TypeScript Compiler API 工具包——启发了我们基于解析器的注释移除方案,同时保留字符串、模板和正则字面量。
### 🧠 记忆与 RAG
项目 ⭐ 对 OmniRoute 的启发
Mem0 68,294 通用记忆层——其代理即写入/读取边界的模型塑造了我们的记忆架构。
Letta (MemGPT) 25,321 具有分层记忆的有状态代理——启发了我们的上下文控制与恢复(CCR)分层模型。
WFGY 1,804 ProblemMap 对 16 种反复出现的 RAG/LLM 故障模式进行的分类——构成了我们故障排查指南中的共享词汇。
### 🛰️ 流量检查、MITM 与透明代理
项目 ⭐ 对 OmniRoute 的启发
llm-interceptor 81 对编码助手 ↔ LLM 流量进行 MITM 拦截和分析,为早期的流量检查器需求提供了参考。此前派生出的四个模块——SSE 合并、对话规范化、密钥屏蔽和标头清理——现已由基于公开协议标准的独立全新实现取代。两个主机直通接口(passthrough.ts 和 _internal/bypass.cjs)仍是 OmniRoute 内部实现,并单独归类;它们未作为此次替换的一部分进行重写。
ProxyBridge 6,978 按进程进行透明代理路由——启发了我们的崩溃安全 MITM 拆除、套接字空闲超时、/proc 进程归属识别和 TPROXY 捕获。
### 📚 模型数据、可观测性与 UI
项目 ⭐ 对 OmniRoute 的启发
models.dev 7,486 包含 AI 模型规格、定价和能力的开放数据库——已原生同步到我们的模型目录中。
React Flow / xyflow 38,874 基于节点的图形库,为我们的实时压缩工作室和组合/路由工作室提供支持。
LangGraph 44,349 LangGraph Studio 的实时工作流图可视化启发了我们工作室的实时级联视图。
Langfuse 36,907 其 trace → span → generation 可观测性模型塑造了我们的压缩工作室瀑布图。
Kiali 3,647 Istio 服务网格可观测性——启发了我们在路由/组合工作室中的断路器徽章和错误边可视化。
lobe-icons 2,666 AI/LLM 品牌徽标,用于在我们的仪表板中渲染提供者图标。
flag-icons 12,499 提供 README 语言选择器所使用的 MIT 许可 SVG 国旗图标。
### 🛡️ 安全性
项目 ⭐ 对 OmniRoute 的启发
awesome-secure-defaults 723 精心整理的安全默认库列表,为我们的安全选型提供指导(Helmet.js、DOMPurify、ssrf-req-filter、safe-regex、Google Tink)。
### 🧭 补充工具
项目 ⭐ 对 OmniRoute 的启发
ClawRouter 6,649 启发了请求去重、紧急零成本回退、可插拔的 Auto-Combo 策略和多语言意图分类。
Antigravity-Manager 32,785 其账户感知的模型重新映射、可执行文件路径验证和方案标签行为为 OmniRoute 的 Antigravity 运行时提供了参考。
vscode-antigravity-cockpit 4,852 其紧凑的配额重置倒计时格式启发了 OmniRoute 中相应的提供者限制显示。
AionUi 33,996 其 ACP 集成为 OmniRoute 自动检测已安装 CLI 代理提供了启发。
CodexBar 22,955 发现了 Grok Build 配额接口;随后 OmniRoute 独立验证并修正了实际的线路格式。
## 📄 许可证
MIT 许可证 - 详情请参阅 [LICENSE](LICENSE)。
---