# 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 网关
## 💰 每月约 1.62B Token,横跨第三方免费额度层级
> **自带服务商账户。** 这是对多个可单独申请的第三方免费层级所做的估算汇总,并非 OmniRoute 提供的 Token 赠送。请注册、在需要时获取凭据,并连接你可使用的服务商;每家服务商自行管控其限额、可用性与条款。
>
> 手动叠加免费层级非常痛苦——几十个 SDK、几十个速率限制,而且你根本不知道实际拥有多少。OmniRoute 编录了 **34 个周期性池键下的 467 条免费层级条目**,并根据 **17 个已公布正向月度预算的池,加上五个按模型的 Groq 上限**计算出 Token 头条数字,再按共享池去重。仅在通过区域身份验证后开放的配额(目前为 ModelScope)单独展示,位于区域身份验证之后约 +6M,且绝不累加进头条数字。结果始终显示在仪表盘(`/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 [🌍 Global](https://chat.whatsapp.com/FvuCbrpZmQ6I85n2vW5QIC?s=cl&p=a&mlu=4) / [🇧🇷 Brasil](https://chat.whatsapp.com/KWgatljAjmbELQory59Oti?s=cl&p=a&mlu=4) / [Portal](https://portal.sthub.com.br/communities/groups/st-hub/channels/Omniroute-World-8kRjmK)**
## 📈 网关持续壮大
| | v3.8.50 | **v3.8.51** | `v3.8.53+` |
| --------------------- | :-------------------: | :---------: | :-------------------: |
| 🌐 提供者 | 352 | **358** | 375 |
| 🧠 独立聊天模型 ID 数 | 1320 | **1374** | 1475 |
| 🖼️ 模态桥接 | 🆕 视觉 + 音频 + 视频 | ✓ | ✓ |
| 📡 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.53** 的近期亮点。完整历史见 [`CHANGELOG.md`](CHANGELOG.md)。
- **⚖️ `quota-weighted` 路由** — 第 20 种组合策略,先跳过已耗尽的账户,再在其余账户中按剩余配额 ÷ 在途负载的比例抽取,并保持现有对话固定不动。→ [Auto-Combo](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 语言包、适用于 Gradle 与 .NET 的 RTK 过滤器。→ [压缩](docs/compression/COMPRESSION_ENGINES.md)
- **💸 诚实的固定费率成本** — 订阅 / 编程套餐类提供者在成本分析中显示为 **$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**(模型面板 + 评审)、任务感知路由,以及按请求覆盖模型 / 模式 / 美元预算。→ [Auto-Combo](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-*` 成本/用量响应头、缓存命中节省响应头,以及按密钥的美元支出配额。→ [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……以及焕新的 **375 提供者目录**。→ [提供者](docs/reference/PROVIDER_REFERENCE.md)
- **📡 路由透明度** — 每个响应都带有 `X-OmniRoute-Decision` 响应头,标明处理该请求的策略/提供者/延迟;新增的 `cache-optimized` 组合策略 + Auto-Combo 的 `cacheAffinity` 因子会将重复请求路由回持有缓存前缀的连接;只读的 `/v1/auto-combo/{channel}/candidates` 端点会暴露 `auto/*` 通道的实时候选池。→ [Auto-Combo](docs/routing/AUTO-COMBO.md)
- **⚡ 本地性能与基础设施** — 一键本地 Redis、Cloudflare Workers / Deno Deploy 中继部署器、将 Bifrost 与 Mux 作为受监管的嵌入式服务。→ [嵌入式服务](docs/frameworks/EMBEDDED-SERVICES.md)
- **🧩 开箱即用** — 插件框架 + 应用市场、Omni/Agent/GitHub 技能框架、Obsidian 库集成(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 的工具
📖 全部 37 个工具(27 个 CLI Code + 10 个 CLI Agent)的逐工具设置指南 → [`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)
## 🌐 375 家 AI 提供者 — 153 家已在目录中标记为免费
> **375 家已注册提供者**,涵盖标准的对话、媒体、搜索、本地、云代理与系统集合,其中 **153 家带有 `hasFree: true` 发现元数据**。对话模型注册表覆盖 **239 家提供者 / 3,059 个不同的提供者-模型对 / 1,475 个原始模型 ID**;独立的免费额度目录包含 **467 行按模型划分的记录**、**34 个周期性池**以及 **51 家周期性/免密钥、永久免费的提供者**。这些是刻意设计的不同分母;定义与去重后的池计算方式见 [Provider Reference](docs/reference/PROVIDER_REFERENCE.md) 和 [Free Tiers](docs/reference/FREE_TIERS.md)。
## 🖥️ OmniRoute 可在何处运行 — 任何地方
> 同一个应用,运行在你的设备上,遵循你的规则。从全局 npm 安装到通过 Termux 运行在**你的手机**上。
平台 安装方式 亮点
📦 npm(全局) npm install -g omniroute一条命令,适用于任何操作系统
🐳 Docker docker run … diegosouzapw/omniroute多架构支持:AMD64 + ARM64
🖥️ 桌面端(Electron) npm run electron: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 omniroute全天候运行在你的手机上 ,无需 root
📲 PWA “添加到主屏幕” 全屏、离线,可从浏览器安装
🧩 OpenCode 插件 @omniroute/opencode-provider原生 OpenCode 集成
🤖 VS Code Copilot Chat 安装 OmniCopilot 扩展 原生 Copilot Chat 选择器中提供所有 OmniRoute 模型 — 稳定版和 Insiders 版
🛠️ 从源代码运行 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 Code 原生 Copilot Chat 中使用 OmniRoute
> 无需新侧边栏,也无需新聊天界面 — OmniRoute 提供的每个模型都会直接显示在你已经使用的
> **Copilot Chat 模型选择器中**。自 VS Code 1.122 起,无需登录 GitHub 或订阅 Copilot,
> 即可使用提供者模型 — 免费使用代理模式、工具调用和视觉功能。
安装 **[OmniCopilot](https://github.com/diegosouzapw/OmniCopilot)** 扩展,将其指向
你的 OmniRoute 服务器(默认为 `localhost:20128`),然后打开 Copilot Chat → 模型选择器
→ **管理模型…** → **OmniRoute**。
商店 链接 兼容平台
🧩 VS Code Marketplace 安装 → VS Code — 稳定版和 Insiders 版
🔓 Open VSX Registry 安装 → Cursor、Windsurf、VSCodium、Theia、code-server、Gitpod、Antigravity、Kiro…
在编辑器内:打开**扩展**视图,搜索 **“OmniRoute”**,点击**安装**
— 在两个商店中的使用方式相同。源代码、问题跟踪和发布运行手册位于
[diegosouzapw/OmniCopilot](https://github.com/diegosouzapw/OmniCopilot)。
📖 [VS Code Copilot Chat 指南](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,只是戴上了一顶帽子。🎩
功能 实现方式
🟢 监控服务器 启动 omniroute serve;若已有实例正在运行,则直接接管,而不是重复启动
📊 一目了然地查看实时用量 提供者配额进度条、Claude 会话/每周限额及重置倒计时、30 天成本明细
🔄 自动就地更新 分阶段安装、原子切换、失败时回滚 — 始终保持最新版本
🚀 登录时启动 可选择登录时启动;仅显示托盘图标,不显示程序坞图标
🩺 诊断与日志 一键诊断并访问服务器日志
```sh
brew install --cask zoispag/tap/omniroute-tray
```
更喜欢下载使用?请从
Releases 获取最新的 .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 时,为何要用很多 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/patch/search/build 输出的无损优先 JSON + 有界诊断压缩(Responses API)
6 Headroom 通过内置的 GCF 编解码器对 JSON 数组进行无损表格化压缩(约 30%)
7 Relevance 针对最后一条用户查询进行抽取式句子评分
8 Caveman 基于规则的文本压缩(输出侧约 65–75%)
9 Aggressive 摘要 + 旧轮次渐进式老化
10 LLMLingua-2 通过 MobileBERT ONNX 进行 ML 语义剪枝 —— 代码安全、异步
11 Ultra 启发式 token 剪枝,可选小模型(SLM)层级
12 OmniGlyph 实验性的上下文即图像编码,用于在直接 Anthropic 线路上实测 Claude Fable 5;GPT 5.6 transformers 仍保持故障关闭状态,等待提供者回执。四种压缩配置(默认 aggressive、balanced、coding-safe、passthrough)(最具侵略性;需主动启用)
代码块、URL 和结构化数据**始终按字节完美保留**。**一键预设**可组合这些引擎:
模式 节省 最适合
🪶 Lite ~15% 始终开启的安全默认项
🪨 标准(Caveman) ~30% 日常编码
⚡ Aggressive ~50% 长时间、工具密集型会话
🔥 Ultra ~75% 最大节省
🧰 RTK 60–90% Shell/测试/构建/git 输出
🔗 叠加(RTK → Caveman) 78–95% 混合提示词 + 工具日志
**真实示例 —— 标准模式:**
> **之前(69 token):** _"你的 React 组件之所以重新渲染,很可能是因为你在每个渲染周期都创建了新的对象引用。当你将内联对象作为 prop 传入时,React 的浅比较每次都会把它视为不同的对象,从而触发重新渲染。我建议使用 useMemo 来缓存该对象。"_
>
> **之后(19 token):** _"每次渲染都有新对象引用。内联对象 prop = 新引用 = 重新渲染。用 useMemo 包裹。"_
>
> **答案相同。Token 减少 72%。零准确率损失。** ✅
**PT-BR 示例 —— [Troglodita](https://github.com/leninejunior/troglodita) 模式:**
> **之前(42 tokens):** _"问题在于组件正在重复渲染,因为每次渲染循环都会创建新的对象引用。我会建议使用 useMemo。"_
>
> **之后(12 tokens):** _"重复渲染:每次循环都是新引用(内联对象被重建)。使用 `useMemo`。"_
>
> **同样的回答。token 减少约 70%。技术精度丝毫未损。** ✅
### 🎚️ 超越引擎本身 —— 输出风格、自适应旋钮与按请求控制
上面这 12 个引擎压缩的是**输入**。另外三层机制则决定**以何种方式**、**在何时**、以及**输出什么**:
- **🪄 输出风格(Output Styles)** _(输出轴调控)_ —— 注入确定性的、缓存安全的响应塑形指令;可自由组合,每种风格都有 `lite` / `full` / `ultra` 强度。新增一种风格只需在注册表中加一行:
- **简洁散文(Terse prose)** —— 去掉填充词 / 冠词 / 模糊措辞;技术内容保持精确。
- **少写代码(Less code)** —— “懒惰的资深开发者”式 YAGNI:只做最小可行改动,不搭未被要求的脚手架。
- **马尾辫(Ponytail,懒惰的资深开发者)** —— 沿着 YAGNI 阶梯往上爬,修复根因,只给最小可行 diff。
- **我有 ADHD(行动优先)** —— 下一步动作打头,步骤编号,只给一个具体的下一步,不要开场白。
- **简洁 CJK(Terse CJK · 文言)** —— 文言文式极简风格(按 locale 限定为 `zh`)。
- **🎯 自适应上下文预算(Adaptive context-budget)** _(那个旋钮)_ —— 不再依赖单一的开关式 token 阈值,而是只在必要时逐级启用成本最低、损失最小的引擎,直到**装得下模型的上下文窗口**。策略:`reserve-output`(默认,感知模型)· `percentage` · `absolute`。模式:`floor`(保证装得下)· `replace-autotrigger`(以你的显式选择为准)· `off`(沿用旧的阈值)。
- **🎛️ 压缩的决定权在哪** _(优先级,由高到低)_ —— 按请求的 `x-omniroute-compression` 头 › 路由组合覆写 › 生效的具名配置文件 › 自适应 / 自动触发 › 面板默认值 › 关闭。实际应用的方案会回显在 `X-OmniRoute-Compression: ; source=` 响应头中。
无论是按 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.53 报告的包集合而言:
>
> ```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)说明。
Dashboard 位于 `http://localhost:20128` · API 位于 `http://localhost:20128/v1`。
**2) 使用你自己的账号连接一个符合条件的提供者**
Dashboard → **Providers** → 选择一个当前条款和配额都适合你使用场景的提供者 → 添加其 API key 或完成其账号流程。免费额度可能需要注册、审批或绑定支付方式。请阅读[免费额度指南](docs/getting-started/FREE-TIERS-GUIDE.md);无密钥可用性不作保证,标记为 `tos: avoid` 的提供者会默认被排除在 `auto` 之外。
**3) 把你的编码工具指向它**
```txt
Base URL: http://localhost:20128/v1
API Key: [从 Dashboard → Endpoints 复制]
Model: auto (在符合条件的连接之间路由 —— 或直接选择 provider/model)
```
**4) 验证是否正常工作**
```bash
curl http://localhost:20128/v1/models -H "Authorization: Bearer YOUR_KEY"
```
你应该能看到已连接的模型列表。🎉 就这样 —— 开始写代码吧,OmniRoute 会为你自动路由并在必要时回退。
如果你的客户端无法发送自定义请求头,OmniRoute 还提供了带 token 的兼容别名:
```txt
OpenAI catalog: http://localhost:20128/vscode/YOUR_KEY/
OpenAI models: http://localhost:20128/vscode/YOUR_KEY/models
OpenAI chat: http://localhost:20128/vscode/YOUR_KEY/chat/completions
OpenAI responses: http://localhost:20128/vscode/YOUR_KEY/responses
Ollama chat: http://localhost:20128/vscode/YOUR_KEY/api/chat
Ollama tags: http://localhost:20128/vscode/YOUR_KEY/api/tags
```
这些别名仅用于无法附加 `Authorization: Bearer ...` 的客户端。请求头鉴权仍是首选方式。
## 📦 更多安装方式 — 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 遗留方案)— 147 个领域模块,209 个迁移
记忆 SQLite FTS5 全文检索 + int8 量化向量嵌入,类型化衰减
模式校验 Zod 4 — MCP 工具输入/输出校验 + API 契约
协议 MCP(stdio / HTTP / SSE)+ A2A v0.3(JSON-RPC 2.0 + SSE)
流式传输 Server-Sent Events(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 指纹模拟,三级代理
容错 熔断器、指数退避、防惊群(anti-thundering-herd)、auto-combo 自愈
日志 pino — 带请求上下文的结构化 JSON 日志
测试 Node.js test runner + Vitest — 7,800+ 个受跟踪测试文件中共 56,000+ 条静态测试声明 (单元、集成、E2E、安全、生态)
平台 桌面端(Electron)· Android(Termux)· PWA(任意浏览器)
CI/CD GitHub Actions — 发布时自动执行 npm 发布 + Docker Hub 推送
链接 网站 · npm · Docker Hub
## 📖 文档
### 📘 快速开始
文档 描述
用户指南 提供者、组合、CLI 集成、部署
安装指南 完整的安装方式、CLI 工具配置、协议设置、超时调优
CLI 工具指南 针对 Claude Code、Codex、Cursor、Cline、OpenClaw、Kilo、Copilot 的逐工具设置
远程模式 通过限定范围的访问令牌,从笔记本 CLI 驱动远程 OmniRoute(VPS)
Claude Code 配置 使用 launch + 按模型配置的 profile,将 Claude Code 指向 OmniRoute(本地/远程)
快速上手 三步:安装 → 连接 → 配置
### 🔧 运维与部署
文档 描述
Docker 指南 Docker 运行、Compose 配置档、Caddy HTTPS、隧道、镜像标签
Podman 指南 Quadlet systemd 集成、podman-compose、SELinux
虚拟机部署 完整指南: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 规则包 schema
压缩语言包 语言检测与 Caveman 规则包编写
弹性指南 断路器、冷却、队列、防惊群、TLS 伪装
自动组合引擎 16 因子评分、模式包、自愈
代理指南 三级代理系统、1proxy 市场、注册表 CRUD
免费额度 汇总目录:34 个有文档记录的循环池 / 467 条编目的免费额度条目
功能展示 带截图的仪表盘可视化导览
代码库文档 适合初学者的代码库导览
### 🤖 协议与 API
### 📋 项目与质量
文档 说明
贡献指南 开发环境配置与规范
分支与发布模型 PR 的目标分支(release/*),以及 main 和标签的含义
变更日志 完整的逐版本发布历史
安全策略 漏洞报告与安全实践
国际化指南 67 种语言支持、翻译工作流、RTL(从右到左)
发布检查清单 发布前验证步骤
覆盖率计划 面向 7,800+ 个受跟踪测试文件中 56,000+ 条静态测试声明的测试覆盖率策略
# ⭐ 顶级贡献者
> OmniRoute 由一个充满热情的开源社区共同塑造。以下个人做出了卓越贡献,直接影响着项目的质量、稳定性与影响力。**感谢你们。**
### 按已合并拉取请求排序的外部贡献者
排名 贡献者 已合并 PR 约变更行数
1 maxmad64bis 371 25,326,561
2 HouMinXi 269 13,456,272
3 backryun 210 270,562
4 oyi77 190 411,243
5 pacocartones 174 78,276
6 JxnLexn 151 3,562,936
6 KooshaPari 151 5,972,314
8 rdself 145 80,663
9 RaviTharuma 123 500,065
10 herjarsa 88 230,872
11 hartmark 84 2,849,554
12 jonlwheat2-gif 67 68,548
13 artickc 62 43,502
14 chirag127 52 6,661
15 xz-dev 50 245,976
16 xiaoyaner0201 47 33,626
17 woodsonl 46 809,391
18 rqzbeh 44 147,896
19 QuangBlue 43 13,112
20 MumuTW 40 26,093
统计于 2026-10-18 15:09:09 UTC,基于实时 release/v3.8.52 顶端提交 656f01cb43。分页 GitHub GraphQL 统计共包含 9,191 个已合并 PR:其中 3,834 个来自仓库所有者,229 个来自 Dependabot,6 个来自其他机器人/应用,以及 来自 835 位不同贡献者的 5,122 个外部 PR 。“变更行数”为 GitHub 的添加行数加删除行数,包含生成文件、锁文件、目录清单、翻译和文档;它反映的是代码变动量(churn),而非作者编写的代码行数(LOC)。有 49 个 PR 的 GitHub diff 超过 500,000 行(例如 #13399 仅新增一个提供者,却列出 2,347 个变更文件),这使得上表中若干总数被抬高。并列者排名相同。
### GitHub 归属提交
于 2026-10-18 14:44:45 UTC 重新核查:数据为仓库 Contributors API 针对默认分支 release/v3.8.52 报告的 GitHub 归属提交。该 API 返回了 849 个身份(429 名用户、2 个机器人、418 个匿名身份);此表排除了维护者、机器人和匿名身份,并保留并列名次。该排名既不同于上方的已合并 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 保持免费和独立。
## 👥 900+ 位贡献者
[](https://github.com/diegosouzapw/OmniRoute/graphs/contributors)
审计于 2026-10-18,基于当时最新的 release/v3.8.52 分支顶端提交 ad160ab2d1(6,826 次提交):共计 993 个经标准化处理的真实个人 Git 身份 ——其中 707 个以提交作者身份出现(包括维护者),另有 286 个仅出现在明确的 Co-authored-by 尾注中。此次统计应用了 .mailmap,以不区分大小写的方式比较电子邮件地址,仅当数字格式和普通格式的 GitHub noreply 地址编码了相同用户名时才进行合并;排除了 26 个机器人/代理/服务/占位身份,并且不会仅因显示名称相同而合并普通电子邮件地址。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,并将 **base 设置为对应的 `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 的某个具体部分。谨以此向它们一一致谢。🙏
> ⭐ 星标数已于 2026 年 10 月 18 日通过 GitHub REST API 核实——请为这些项目点亮星标。这里的数量是特定日期的精确快照,自然会随时间变化。
### 🧬 项目传承与网关
项目 ⭐ 它如何启发 OmniRoute
9router 31,004 本分支所基于的原始项目——在此基础上扩展了多模态 API,并使用 TypeScript 进行了完整重写。
CLIProxyAPI 55,591 启发了此 JavaScript / TypeScript 移植版本的 Go 实现。
LiteLLM 61,482 这个 AI 网关的公开定价数据集为我们的成本跟踪同步功能提供数据,其提供者标准化模型也为我们的路由设计提供了参考。
codex-chatgpt-web 14,526 其 MIT 源代码经过改编后被内置于 ChatGPT Web → Codex Responses 桥接器中,包括浏览器会话、响应分帧、用量统计和网络搜索适配器。
free-claude-code 61,430 其模式被移植到流恢复、无思考别名、后备网络搜索、滑动窗口限制、日志脱敏和强化的启动器流程中。
composer-api 346 将 Cursor Composer 的工具选择、输出约束和工具提交模式改编到原生 Cursor 执行器中。
codex-multi-auth 553 将全新登录和刷新令牌轮换模式移植到 Codex OAuth 重新认证中。
opencode-anthropic-auth 558 将 Claude Code 兼容的转换默认值和计费请求头行为泛化到 OmniRoute 的配置驱动型桥接器中。
grok2api-merged 2 其 Grok 模型映射、伪 TypeError Statsig 生成器、请求和设备默认值以及 NDJSON 响应处理器均被实质性地改编到 OmniRoute 的 Grok Web 执行器中。
TQZHR/grok2api 706 grok2api-merged 背后的主要传递性代码来源;其模型、请求头、负载、Statsig 和处理器实现均保留在 Grok Web 的项目传承中。
chenyme/grok2api 7,819 这是 Grok 负载和设备默认值、Statsig 生成器,以及经由 TQZHR 和 grok2api-merged 传承下来的 result.response 处理器的底层 MIT 源代码。
grok2api-pro 27 grok2api-merged 为其代理池层注明的一个传递性来源;OmniRoute 保留了该传承声明,但并不声称在其范围受限的 Grok Web 执行器中移植了代理池。
GrokProxy 51 其基于 Cookie 认证的 Grok 代理和 result.response.token 流式传输模式为 OmniRoute 的 Grok Web 传输层提供了参考。
GrokBridge 5 最初的 Grok Web 实现参考了其 HTTP/浏览器上游设计;由于其直接 HTTP 路径源自 GrokProxy,因此不主张存在独立的代码移植。
### 🗜️ 上下文与令牌压缩——引擎
项目 ⭐ 它如何启发 OmniRoute
Caveman 113,396 爆火的“能用少量 token 搞定,为什么还要用很多 token”项目——其穴居人式表达理念为我们的标准压缩模式以及 30 多条赘词删除/内容精简规则提供了基础。
RTK – Rust Token Killer 83,835 高性能命令输出压缩——启发了我们的 RTK 引擎、JSON 过滤器 DSL、原始输出恢复机制,以及串联式 RTK → Caveman 流水线。
headroom 75,741 可逆上下文压缩(SmartCrusher)——启发了我们的 headroom 引擎和 ccr 检索标记模式。
LLMLingua 6,757 提示词压缩研究(LLMLingua / LLMLingua-2)——启发了我们的异步、代码安全、故障时放行的 llmlingua 引擎。
llmlingua-2-js 32 JS/ONNX 移植版(MobileBERT / XLM-RoBERTa),用作我们 LLMLingua 引擎的工作线程后端。
Troglodita 50 巴西葡萄牙语 token 压缩——为我们的 pt-BR 语言包提供支持:针对巴西葡萄牙语语法调优的赘述精简和填充词删除。
ponytail 166,731 爆火的“懒惰高级开发者”YAGNI 编码技能——启发了我们的 less-code 输出风格:引导生成最小可用改动,减少_生成的_代码(与 Caveman 的简洁表达相对应的输出维度策略)。
i-have-adhd 57,628 其行动优先、对 ADHD 友好的响应风格被改造为 OmniRoute 支持五种语言的简洁输出风格。
### 🧩 紧凑格式、token 研究与代码感知工具
项目 ⭐ 它如何启发 OmniRoute
TOON 25,509 面向 token 的对象表示法——其列式、“表头加数据行”模型塑造了我们的表格压缩阶段。
GCF – Graph Compact Format 59 其紧凑图格式和通用配置设计为 OmniRoute 的表格压缩及 Headroom 编解码格式提供了参考。
gcf-typescript 4 该 MIT TypeScript 实现被直接内置并扩展为 Headroom 通用配置编解码器。
token-optimizer-mcp 551 Brotli/SQLite 缓存 + 按会话计算上下文增量——启发了我们的 session-dedup 引擎。
token-savior 1,182 Bash 输出压缩 + MCP 配置——启发了我们的压缩退出原则和 MCP 工具清单精简机制。
token-saver 154 内容感知、按文件类型进行输出压缩,并具备故障感知退出机制——验证了我们的按类型分派和低于最小收益时跳过的策略。
token-optimizer 2,595 “找出幽灵 token”——其卸载 + 可恢复句柄模式为我们的 CCR 卸载思路提供了参考。
TokenMizer 33 会话图 + 跨轮次行去重蓝图,为我们的 session-dedup 设计提供了参考。
OmniCompress 3 Rust 列式 JSON + 内容寻址检索 + 跨消息去重——验证了我们的 headroom/ccr/session-dedup 引擎设计,以及“压缩形式与位置无关”这一缓存稳定性不变量。
mcp-compressor 133 MCP 工具架构/描述压缩——为我们的 MCP 工具清单基数缩减提供了参考。
RepoMapper 217 Aider 风格的仓库映射排序——为我们的仓库映射/检索排序探索提供了参考。
quiet-shell-mcp 4 基于 MCP 的声明式 shell 输出精简——验证了我们的声明式 bash 输出压缩方案。
ts-morph 6,205 TypeScript Compiler API 工具包——启发了我们基于解析器的注释删除机制,同时保留字符串、模板和正则表达式字面量。
### 🧠 记忆与 RAG
项目 ⭐ 它如何启发 OmniRoute
Mem0 67,385 通用记忆层——其以代理作为写入/读取边界的模型塑造了我们的记忆架构。
Letta (MemGPT) 25,179 采用分层记忆的有状态智能体——启发了我们的上下文控制与恢复(CCR)分层模型。
WFGY 1,800 ProblemMap 对 16 种常见 RAG/LLM 故障模式的分类体系——构成了我们故障排除指南中的共享术语。
### 🛰️ 流量检查、MITM 与透明代理
项目 ⭐ 它如何启发 OmniRoute
llm-interceptor 79 对编码助手 ↔ LLM 流量的 MITM 拦截/分析为早期的流量检查器需求提供了参考。此前派生的四个模块——SSE 合并、对话规范化、敏感信息遮蔽和请求头清理——均已由基于公开协议标准、独立洁净室实现的版本取代。两个主机直通接口(passthrough.ts 和 _internal/bypass.cjs)仍为独立归类的 OmniRoute 内部实现;它们不属于此次替换重写的范围。
ProxyBridge 6,814 透明的按进程代理路由——启发了我们可防崩溃的 MITM 清理机制、套接字空闲超时、/proc 进程归属识别和 TPROXY 捕获。
### 📚 模型数据、可观测性与 UI
项目 ⭐ 它如何启发 OmniRoute
models.dev 7,286 开放的 AI 模型规格、定价与能力数据库——以原生方式同步至我们的模型目录。
React Flow / xyflow 38,705 为我们的实时压缩工作室和组合/路由工作室提供支持的节点式图形库。
LangGraph 43,443 LangGraph Studio 的实时工作流图可视化启发了我们各工作室的实时级联视图。
Langfuse 35,990 其追踪 → 跨度 → 生成的可观测性模型塑造了我们压缩工作室中的瀑布图。
Kiali 3,645 Istio 服务网格可观测性——启发了路由/组合工作室中的熔断器徽章和错误边可视化效果。
lobe-icons 2,615 用于在我们的仪表板中呈现各提供者图标的 AI/LLM 品牌徽标。
flag-icons 12,473 提供 README 语言选择器所使用的 MIT 许可证 SVG 旗帜图标。
### 🛡️ 安全
项目 ⭐ 它如何启发 OmniRoute
awesome-secure-defaults 722 一份精心整理的默认安全库列表,为我们的安全方案选择提供指导(Helmet.js、DOMPurify、ssrf-req-filter、safe-regex、Google Tink)。
### 🧭 互补工具
项目 ⭐ 它如何启发 OmniRoute
ClawRouter 6,628 启发了请求去重、紧急零成本回退、可插拔 Auto-Combo 策略和多语言意图分类。
Antigravity-Manager 32,333 其账户感知的模型重映射、可执行文件路径验证和套餐标签行为为 OmniRoute 的 Antigravity 运行时提供了参考。
vscode-antigravity-cockpit 4,850 其紧凑的配额重置倒计时格式启发了 OmniRoute 中相应的提供者限额显示。
AionUi 33,611 其 ACP 集成启发了 OmniRoute 对已安装 CLI 智能体的自动检测。
CodexBar 22,616 发现了 Grok Build 配额接口;随后 OmniRoute 独立验证并修正了实际使用的线级格式。
## 📄 许可证
MIT 许可证——详情请参阅 [LICENSE](LICENSE)。
---
**[⬆ 返回顶部](#-omniroute)** · 为开源 AI 社区用 ❤️ 构建。
OmniRoute v3.8.53 · Node ≥22.22.2 · MIT 许可证 · omniroute.online