101 KiB
🚀 OmniRoute — The Free AI Gateway (中文(简体))
🌐 Languages: 🇺🇸 English · 🇪🇸 es · 🇫🇷 fr · 🇩🇪 de · 🇮🇹 it · 🇷🇺 ru · 🇨🇳 zh-CN · 🇯🇵 ja · 🇰🇷 ko · 🇸🇦 ar · 🇮🇳 hi · 🇮🇳 in · 🇹🇭 th · 🇻🇳 vi · 🇮🇩 id · 🇲🇾 ms · 🇳🇱 nl · 🇵🇱 pl · 🇸🇪 sv · 🇳🇴 no · 🇩🇰 da · 🇫🇮 fi · 🇵🇹 pt · 🇷🇴 ro · 🇭🇺 hu · 🇧🇬 bg · 🇸🇰 sk · 🇺🇦 uk-UA · 🇮🇱 he · 🇵🇭 phi · 🇧🇷 pt-BR · 🇨🇿 cs · 🇹🇷 tr
Never stop coding. Smart routing to FREE & low-cost AI models with automatic fallback.
您的通用 API 代理 — 一个端点、60 多个提供商、零停机时间。现在拥有MCP 服务器(25 个工具)、A2A 协议、内存/技能系统和Electron 桌面应用程序。
聊天完成 • 嵌入 • 图像生成 • 视频 • 音乐 • 音频 • 重新排名 •网页搜索• MCP 服务器 • A2A 协议 • 100% TypeScript---
🌐可用版本:🇺🇸 英语 | 🇧🇷 葡萄牙语(巴西) | 🇪🇸 西班牙语 | 🇫🇷 法语 | 🇮🇹 意大利语 | 🇷🇺 Русский | 🇨🇳 中文 (简体) | 🇩🇪 德语 | 🇮🇳 हिन्दी | 🇹🇭 ไทย | 🇺🇦 Українська | 🇸🇦 更新 | 🇯🇵 日本语 | 🇻🇳 Tiếng Việt | 🇧🇬 Български | 🇩🇰 丹麦 | 🇫🇮 Suomi | 🇮🇱 עברйת | 🇭🇺 Magyar | 🇮🇩 印尼语 | 🇰🇷 한국어 | 🇲🇾 马来语 | 🇳🇱 荷兰 | 🇳🇴 挪威 | 🇵🇹 葡萄牙语(葡萄牙) | 🇷🇴 Română | 🇵🇱 Polski | 🇸🇰 斯洛文尼亚 | 🇸🇪 Svenska | 🇵🇭 菲律宾语 | 🇨🇿 捷克---
🖼️ Main Dashboard
📸 Dashboard Preview
<详情>
| 页 | 截图 | |
|---|---|---|
| 提供商 | ![]() |
|
| 组合 | ![]() |
|
| 分析 | ![]() |
|
| 健康 | ![]() |
|
| 翻译 | ![]() |
|
| 设置 | ![]() |
|
| CLI 工具 | ![]() |
|
| 使用日志 | ![]() |
|
| 端点 | ![]() |
🤖 Free AI Provider for your favorite coding agents
通过 OmniRoute 连接任何人工智能驱动的 IDE 或 CLI 工具 — 免费 API 网关,可进行无限编码。
<表>
张开爪
<子>⭐205K
纳米机器人
<子>⭐20.9K
微微爪
<子>⭐ 14.6K
零爪
<子>⭐9.9K
铁爪
<子>⭐2.1K
开放代码
<子>⭐106K
法典 CLI
<子>⭐ 60.8K
克劳德代码
<子>⭐ 67.3K
双子座 CLI
<子>⭐94.7K
基洛代码
<子>⭐ 15.5K
📡 所有代理均通过 http://localhost:20128/v1 或 http://cloud.omniroute.online/v1 连接 - 一个配置,无限型号和配额---
🤔 Why OmniRoute?
停止浪费金钱和达到极限:
OmniRoute 解决了这个问题:
- ✅最大化订阅- 跟踪配额,在重置之前使用所有位
- ✅自动回退- 订阅 → API 密钥 → 便宜 → 免费,零停机时间
- ✅多帐户- 每个提供商的帐户之间循环
- ✅通用- 可与 Claude Code、Codex、Gemini CLI、Cursor、Cline、OpenClaw、任何 CLI 工具配合使用---
📧 Support
💬加入我们的社区!WhatsApp 群组 — 获取帮助、分享提示并保持更新。
-网站:omniroute.online -GitHub:github.com/diegosouzapw/OmniRoute -问题:github.com/diegosouzapw/OmniRoute/issues -WhatsApp:社区组 -贡献:请参阅 CONTRIBUTING.md,打开 PR,或选择“好第一期” -原始项目:9router by decolua### 🐛 Reporting a Bug?
打开问题时,请运行 system-info 命令并附加生成的文件:```bash npm run system-info
这会生成一个“system-info.txt”,其中包含您的 Node.js 版本、OmniRoute 版本、操作系统详细信息、已安装的 CLI 工具(qoder、gemini、claude、codex、antigravity、droid 等)、Docker/PM2 状态和系统包 - 我们快速重现您的问题所需的一切。将该文件直接附加到您的 GitHub 问题。---
## 🔄 How It Works
┌─────────────┐ │ Your CLI │ (Claude Code, Codex, Gemini CLI, OpenClaw, Cursor, Cline...) │ Tool │ └──────┬──────┘ │ http://localhost:20128/v1 ↓ ┌─────────────────────────────────────────┐ │ OmniRoute (Smart Router) │ │ • Format translation (OpenAI ↔ Claude) │ │ • Quota tracking + Embeddings + Images │ │ • Auto token refresh │ └──────┬──────────────────────────────────┘ │ ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex, Gemini CLI │ ↓ quota exhausted ├─→ [Tier 2: API KEY] DeepSeek, Groq, xAI, Mistral, NVIDIA NIM, etc. │ ↓ budget limit ├─→ [Tier 3: CHEAP] GLM ($0.6/1M), MiniMax ($0.2/1M) │ ↓ budget limit └─→ [Tier 4: FREE] Qoder, Qwen, Kiro (unlimited)
Result: Never stop coding, minimal cost
---
## 🎯 What OmniRoute Solves — 30 Real Pain Points & Use Cases
>**每个使用 AI 工具的开发人员每天都会面临这些问题。**OmniRoute 的构建是为了解决所有这些问题 - 从成本超支到区域封锁,从损坏的 OAuth 流程到协议操作和企业可观察性。
<详情>
<summary><b>💸 1.“我支付了昂贵的订阅费用,但仍然受到限制的干扰”</b></summary>
开发人员每月为 Claude Pro、Codex Pro 或 GitHub Copilot 支付 20-200 美元。即使付费,配额也有上限——5 小时的使用时间、每周限制或每分钟的费率限制。在编码会话中,提供商停止响应,开发人员失去流量和生产力。
**OmniRoute 如何解决:**
-**智能 4 层回退**— 如果订阅配额用完,自动重定向到 API 密钥 → 便宜 → 免费,零手动干预
-**提供商限制跟踪**— 按服务器端计划刷新缓存配额快照(默认“PROVIDER_LIMITS_SYNC_INTERVAL_MINUTES=70”),并在 UI 中提供手动刷新
-**多帐户支持**— 每个提供商有多个帐户,具有自动循环 — 当一个帐户用完时,切换到下一个帐户
-**自定义组合**— 可定制的后备链,具有 9 种平衡策略(优先级、加权、先填充、循环、P2C、随机、最少使用、成本优化、严格随机)
-**Codex Business Quotas**— 直接在仪表板中监控业务/团队工作空间配额</details>
<详情>
<summary><b>🔌 2.“我需要使用多个提供程序,但每个提供程序都有不同的 API”</b></summary>
OpenAI 使用一种格式,Claude(Anthropic)使用另一种格式,Gemini 使用另一种格式。如果开发人员想要测试来自不同提供商的模型或在它们之间进行回退,他们需要重新配置 SDK、更改端点、处理不兼容的格式。自定义提供程序(FriendLI、NIM)具有非标准模型端点。
**OmniRoute 如何解决:**
-**统一端点**— 单个“http://localhost:20128/v1”充当所有 60 多个提供商的代理
-**格式翻译**— 自动且透明:OpenAI ↔ Claude ↔ Gemini ↔ Responses API
-**响应清理**— 删除破坏 OpenAI SDK v1.83+ 的非标准字段(`x_groq`、`usage_breakdown`、`service_tier`)
-**角色标准化**— 对于非 OpenAI 提供商,将“开发人员”转换为“系统”; GLM/ERNIE 的“系统”→“用户”
-**思考标签提取**— 将 DeepSeek R1 等模型中的“<think>”块提取为标准化的“reasoning_content”
-**Gemini 的结构化输出**— `json_schema` → `responseMimeType`/`responseSchema` 自动转换
-**`stream` 默认为 `false`**— 与 OpenAI 规范保持一致,避免 Python/Rust/Go SDK 中出现意外的 SSE</details>
<详情>
<summary><b>🌐 3.“我的人工智能提供商屏蔽了我的地区/国家”</b></summary>
OpenAI/Codex 等提供商会阻止来自某些地理区域的访问。用户在 OAuth 和 API 连接期间会收到诸如“unsupported_country_region_territory”之类的错误。这对于发展中国家的开发商来说尤其令人沮丧。
**OmniRoute 如何解决:**
-**3 级代理配置**— 3 级可配置代理:全局(所有流量)、每个提供商(仅一个提供商)和每个连接/密钥
-**颜色编码的代理徽章**— 视觉指示器:🟢 全局代理、🟡 提供商代理、🔵 连接代理,始终显示 IP
-**通过代理进行 OAuth 令牌交换**— OAuth 流程也通过代理,解决了“unsupported_country_region_territory”问题
-**通过代理进行连接测试**— 连接测试使用配置的代理(不再直接绕过)
-**SOCKS5 支持**— 对出站路由的完整 SOCKS5 代理支持
-**TLS 指纹欺骗**- 通过“wreq-js”的类似浏览器的 TLS 指纹来绕过机器人检测
-**🔏 CLI 指纹匹配**— 重新排序标头和正文字段以匹配本机 CLI 二进制签名,从而大大降低帐户标记风险。代理 IP 被保留 — 您同时获得隐秘**和**IP 屏蔽</details>
<详情>
<summary><b>🆓 4.“我想用AI来编码,但我没有钱”</b></summary>
并不是每个人都能每月支付 20-200 美元来订阅 AI。来自新兴国家的学生、开发人员、业余爱好者和自由职业者需要以零成本获得优质模型。
**OmniRoute 如何解决:**
-**内置免费层提供商**- 对 100% 免费提供商的本机支持:Qoder(通过 OAuth 实现 5 个无限模型:kimi-k2-thinking、qwen3-coder-plus、deepseek-r1、minimax-m2、kimi-k2)、Qwen(4 个无限模型:qwen3-coder-plus、qwen3-coder-flash、qwen3-coder-next、vision-model)、Kiro(Claude + AWS Builder ID 免费)、Gemini CLI(180K 代币/月免费)
-**Ollama Cloud**— 位于 `api.ollama.com` 的云托管 Ollama 模型,具有免费的“轻度使用”级别;使用 `ollamacloud/<model>` 前缀
-**仅限免费组合**— 链 `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = 0 美元/月,零停机时间
-**NVIDIA NIM 免费访问**— ~40 RPM 开发者永远免费访问 build.nvidia.com 上的 70 多个模型(从积分过渡到纯粹的速率限制)
-**成本优化策略**— 自动选择最便宜的可用提供商的路由策略</details>
<详情>
<summary><b>🔒 5.“我需要保护我的 AI 网关免遭未经授权的访问”</b></summary>
当将人工智能网关暴露到网络(LAN、VPS、Docker)时,任何拥有该地址的人都可以消耗开发者的代币/配额。如果没有保护,API 很容易被误用、提示注入和滥用。
**OmniRoute 如何解决:**
-**API 密钥管理**— 使用专用的“/dashboard/api-manager”页面生成、轮换和确定每个提供商的范围
-**模型级权限**- 将 API 密钥限制为特定模型(`openai/*`、通配符模式),并具有“允许全部”/“限制”切换功能
-**API 端点保护**— 需要“/v1/models”密钥并阻止列表中的特定提供商
-**Auth Guard + CSRF 保护**- 所有仪表板路由均受“withAuth”中间件 + CSRF 令牌保护
-**速率限制器**— 通过可配置窗口限制每个 IP 的速率
-**IP 过滤**— 用于访问控制的允许列表/阻止列表
-**Prompt Injection Guard**— 针对恶意提示模式的清理
-**AES-256-GCM 加密**— 静态加密的凭证</details>
<详情>
<summary><b>🛑 6.“我的提供商宕机了,我失去了编码流程”</b></summary>
AI 提供商可能会变得不稳定、返回 5xx 错误或达到临时速率限制。如果开发人员依赖于单一提供商,他们就会受到干扰。如果没有断路器,重复重试可能会使应用程序崩溃。
**OmniRoute 如何解决:**
-**每个模型的断路器**- 自动打开/关闭,具有可配置的阈值和冷却时间(关闭/打开/半打开),每个模型的范围以避免级联块
-**指数退避**— 渐进式重试延迟
-**Anti-Thundering Herd**— 互斥锁 + 信号量保护,防止并发重试风暴
-**组合后备链**— 如果主要提供商发生故障,则自动从该链中掉下来,无需干预
-**组合断路器**— 自动禁用组合链中出现故障的提供商
-**运行状况仪表板**— 正常运行时间监控、断路器状态、锁定、缓存统计、p50/p95/p99 延迟</details>
<详情>
<summary><b>🔧 7.“配置每个AI工具都是繁琐且重复的”</b></summary>
开发人员使用 Cursor、Claude Code、Codex CLI、OpenClaw、Gemini CLI、Kilo Code...每个工具都需要不同的配置(API 端点、密钥、模型)。切换提供商或模型时重新配置是浪费时间。
**OmniRoute 如何解决:**
-**CLI 工具仪表板**— 专用页面,可一键设置 Claude Code、Codex CLI、OpenClaw、Kilo Code、Antigravity、Cline
-**GitHub Copilot 配置生成器**— 通过批量模型选择为 VS Code 生成 `chatLanguageModels.json`
-**入门向导**— 为首次使用的用户提供 4 步设置指导
-**一个端点,所有型号**— 配置 `http://localhost:20128/v1` 一次,访问 60 多个提供商</details>
<详情>
<summary><b>🔑 8.“管理来自多个提供商的 OAuth 令牌简直就是地狱”</b></summary>
Claude Code、Codex、Gemini CLI、Copilot — 全部使用带有过期令牌的 OAuth 2.0。开发人员需要不断地重新进行身份验证,处理“client_secret is Missing”、“redirect_uri_mismatch”以及远程服务器上的故障。 LAN/VPS 上的 OAuth 问题尤其严重。
**OmniRoute 如何解决:**
-**自动令牌刷新**— OAuth 令牌在过期前在后台刷新
-**OAuth 2.0 (PKCE) 内置**— Claude Code、Codex、Gemini CLI、Copilot、Kiro、Qwen、Qoder 的自动流程
-**多帐户 OAuth**— 每个提供商通过 JWT/ID 令牌提取多个帐户
-**OAuth LAN/远程修复**— `redirect_uri` 的私有 IP 检测 + 远程服务器的手动 URL 模式
-**Nginx 背后的 OAuth**— 使用 `window.location.origin` 实现反向代理兼容性
-**远程 OAuth 指南**— VPS/Docker 上的 Google Cloud 凭据分步指南</details>
<详情>
<summary><b>📊 9.“我不知道我花了多少钱或在哪里”</b></summary>
开发商使用多个付费提供商,但对支出没有统一的看法。每个提供商都有自己的计费仪表板,但没有统一的视图。意外的成本可能会不断增加。
**OmniRoute 如何解决:**
-**成本分析仪表板**— 每个提供商的每个代币成本跟踪和预算管理
-**每层预算限制**— 触发自动回退的每层支出上限
-**按型号定价配置**— 每个型号的可配置价格
-**每个 API 密钥的使用统计信息**— 每个密钥的请求计数和上次使用的时间戳
-**分析仪表板**— 统计卡、模型使用图表、包含成功率和延迟的提供商表</details>
<详情>
<summary><b>🐛 10.“我无法诊断 AI 调用中的错误和问题”</b></summary>
当调用失败时,开发人员不知道这是否是速率限制、令牌过期、格式错误或提供商错误。跨不同终端的碎片日志。如果没有可观察性,调试就是反复试验。
**OmniRoute 如何解决:**
-**统一日志仪表板**— 4 个选项卡:请求日志、代理日志、审核日志、控制台
-**控制台日志查看器**— 实时终端式查看器,具有颜色编码级别、自动滚动、搜索、过滤功能
-**SQLite 代理日志**— 服务器重新启动后仍保留的持久日志
-**Translator Playground**— 4 种调试模式:Playground(格式翻译)、Chat Tester(往返)、Test Bench(批量)、Live Monitor(实时)
-**请求遥测**— p50/p95/p99 延迟 + X-Request-Id 跟踪
-**基于文件的日志记录与轮换**— 应用程序日志按大小、保留天数和存档计数轮换;通话记录工件按保留天数和文件计数轮换
-**系统信息报告**— `npm run system-info` 生成包含完整环境(Node 版本、OmniRoute 版本、操作系统、CLI 工具、Docker/PM2 状态)的 `system-info.txt`。报告问题时附上它以进行即时分类。</details>
<详情>
<summary><b>🏗️ 11.“部署和维护网关很复杂”</b></summary>
跨不同环境(本地、VPS、Docker、云)安装、配置和维护 AI 代理是一项劳动密集型工作。硬编码路径、目录上的“EACCES”、端口冲突和跨平台构建等问题会增加摩擦。
**OmniRoute 如何解决:**
-**npm 全局安装**— `npm install -gomniroute &&omniroute` — 完成
-**Docker 多平台**— AMD64 + ARM64 本机(Apple Silicon、AWS Graviton、Raspberry Pi)
-**Docker Compose Profiles**— `base`(无 CLI 工具)和 `cli`(使用 Claude Code、Codex、OpenClaw)
-**Electron 桌面应用程序**— 适用于 Windows/macOS/Linux 的本机应用程序,带系统托盘、自动启动、离线模式
-**分割端口模式**— API 和仪表板位于单独的端口上,适用于高级场景(反向代理、容器网络)
-**云同步**— 通过 Cloudflare Workers 跨设备配置同步
-**数据库备份**— 自动备份、恢复、导出和导入所有设置,使用“DISABLE_SQLITE_AUTO_BACKUP”进行外部管理备份</details>
<详情>
<summary><b>🌍 12.“界面只有英文,我的团队不会说英语”</b></summary>
非英语国家的团队,尤其是拉丁美洲、亚洲和欧洲的团队,在纯英文界面上遇到了困难。语言障碍会降低采用率并增加配置错误。
**OmniRoute 如何解决:**
-**仪表板 i18n — 30 种语言**— 所有 500 多个按键已翻译,包括阿拉伯语、保加利亚语、丹麦语、德语、西班牙语、芬兰语、法语、希伯来语、印地语、匈牙利语、印度尼西亚语、意大利语、日语、韩语、马来语、荷兰语、挪威语、波兰语、葡萄牙语(PT/BR)、罗马尼亚语、俄语、斯洛伐克语、瑞典语、泰语、乌克兰语、越南语、中文、菲律宾语、英语
-**RTL 支持**— 从右到左支持阿拉伯语和希伯来语
-**多语言自述文件**— 30 个完整的文档翻译
-**语言选择器**— 标题中的地球图标用于实时切换</details>
<详情>
<summary><b>🔄 13.“我需要的不仅仅是聊天 - 我需要嵌入、图像、音频”</b></summary>
人工智能不仅仅是完成聊天。开发人员需要生成图像、转录音频、为 RAG 创建嵌入、重新排列文档以及审核内容。每个 API 都有不同的端点和格式。
**OmniRoute 如何解决:**
-**Embeddings**— `/v1/embeddings` 具有 6 个提供商和 9 个以上模型
-**图像生成**— `/v1/images/Generations` 拥有 10 个提供商和 20 多个模型(OpenAI、xAI、Together、Fireworks、Nebius、Hyperbolic、NanoBanana、Antigravity、SD WebUI、ComfyUI)
-**文本到视频**— `/v1/videos/ Generations` — ComfyUI(AnimateDiff、SVD)和 SD WebUI
-**文本到音乐**— `/v1/music/generations` — ComfyUI(稳定音频开放,MusicGen)
-**音频转录**— `/v1/audio/transcriptions` — Whisper + Nvidia NIM、HuggingFace、Qwen3
-**文本转语音**— `/v1/audio/speech` — ElevenLabs、Nvidia NIM、HuggingFace、Coqui、Tortoise、Qwen3、**Inworld**、**Cartesia**、**PlayHT**、+ 现有提供商
-**审核**— `/v1/moderations` — 内容安全检查
-**重新排名**— `/v1/rerank` — 文档相关性重新排名
-**响应 API**— 对 Codex 的完整 `/v1/responses` 支持</details>
<详情>
<summary><b>🧪 14.“我无法测试和比较不同模型的质量”</b></summary>
开发人员想知道哪种模型最适合他们的用例(代码、翻译、推理),但手动比较速度很慢。不存在集成的评估工具。
**OmniRoute 如何解决:**
-**LLM 评估**— 黄金套装测试,包含 10 个预加载案例,涵盖问候语、数学、地理、代码生成、JSON 合规性、翻译、降价、安全拒绝
-**4 种匹配策略**— `exact`、`contains`、`regex`、`custom` (JS 函数)
-**Translator Playground 测试台**— 使用多个输入和预期输出进行批量测试、跨提供商比较
-**聊天测试器**— 带有视觉响应渲染的完整往返
-**实时监控**— 流经代理的所有请求的实时流</details>
<详情>
<summary><b>📈 15.“我需要在不损失性能的情况下进行扩展”</b></summary>
随着请求量的增长,如果不缓存相同的问题,就会产生重复的成本。如果没有幂等性,重复的请求就会浪费处理。必须遵守每个提供商的速率限制。
**OmniRoute 如何解决:**
-**语义缓存**- 两层缓存(签名+语义)降低成本和延迟
-**请求幂等性**— 相同请求的 5 秒重复数据删除窗口
-**速率限制检测**— 每个提供商的 RPM、最小间隙和最大并发跟踪
-**可编辑的速率限制**— 可在“设置”→“持久弹性”中配置默认值
-**API 密钥验证缓存**— 用于提高生产性能的 3 层缓存
-**带有遥测功能的运行状况仪表板**— p50/p95/p99 延迟、缓存统计数据、正常运行时间</details>
<详情>
<summary><b>🤖 16.“我想全局控制模型行为”</b></summary>
希望所有响应都以特定语言、特定语气或想要限制推理标记的开发人员。在每个工具/请求中配置此功能是不切实际的。
**OmniRoute 如何解决:**
-**系统提示注入**— 全局提示应用于所有请求
-**思考预算验证**- 每个请求的推理令牌分配控制(直通、自动、自定义、自适应)
-**9 路由策略**— 确定如何分发请求的全局策略
-**通配符路由器**— `provider/*` 模式动态路由到任何提供商
-**组合启用/禁用切换**— 直接从仪表板切换组合
-**提供商切换**— 一键启用/禁用提供商的所有连接
-**阻止的提供商**— 从“/v1/models”列表中排除特定提供商</details>
<详情>
<summary><b>🧰 17.“我需要 MCP 工具作为一流的产品能力”</b></summary>
许多 AI 网关仅将 MCP 作为隐藏的实现细节公开。团队需要一个可见的、可管理的操作层。
**OmniRoute 如何解决:**
- MCP 显示在仪表板导航和端点协议选项卡中
- 专用 MCP 管理页面,包含流程、工具、范围和审计
- 内置“omniroute --mcp”快速启动和客户端入门</details>
<详情>
<summary><b>🧠 18.“我需要具有同步+流任务路径的 A2A 编排”</b></summary>
代理工作流程需要直接回复和具有生命周期控制的长时间运行的流式执行。
**OmniRoute 如何解决:**
- 具有“消息/发送”和“消息/流”的 A2A JSON-RPC 端点(“POST /a2a”)
- 具有终端状态传播的 SSE 流式传输
- 用于“tasks/get”和“tasks/cancel”的任务生命周期 API</details>
<详情>
<summary><b>🛰️ 19.“我需要真实的 MCP 进程运行状况,而不是猜测的状态”</b></summary>
运营团队需要知道 MCP 是否确实存在,而不仅仅是 API 是否可访问。
**OmniRoute 如何解决:**
- 带有 PID、时间戳、传输、工具计数和范围模式的运行时心跳文件
- MCP状态API结合心跳+最近的活动
- 用于流程/正常运行时间/心跳新鲜度的 UI 状态卡</details>
<详情>
<summary><b>📋 20.“我需要可审核的 MCP 工具执行”</b></summary>
当工具改变配置或触发操作操作时,团队需要取证可追溯性。
**OmniRoute 如何解决:**
- SQLite 支持的 MCP 工具调用审核日志记录
- 按工具、成功/失败、API 密钥和分页过滤
- 仪表板审核表+自动化统计端点</details>
<详情>
<summary><b>🔐 21.“每次集成我都需要范围内的 MCP 权限”</b></summary>
不同的客户端应该具有对工具类别的最低权限访问权限。
**OmniRoute 如何解决:**
- 10 个粒度 MCP 范围,用于受控工具访问
- MCP 管理 UI 中的范围执行和可见性
- 操作工具的安全默认姿势</details>
<详情>
<summary><b>⚙️ 22.“我需要无需重新部署的操作控制”</b></summary>
团队需要在事件或成本事件期间快速更改运行时。
**OmniRoute 如何解决:**
- 直接从 MCP 仪表板切换组合激活
- 应用预定义策略包中的弹性配置文件
- 从同一操作面板重置断路器状态</details>
<详情>
<summary><b>🔄 23.“我需要实时 A2A 任务生命周期可见性和取消”</b></summary>
如果没有生命周期可见性,任务事件就很难分类。
**OmniRoute 如何解决:**
- 任务列表/按状态/技能过滤并分页
- 深入了解任务元数据、事件和工件
- 任务取消端点和带有确认的 UI 操作</details>
<详情>
<summary><b>🌊 24.“我需要 A2A 负载的活动流指标”</b></summary>
流媒体工作流程需要对并发和实时连接的操作洞察。
**OmniRoute 如何解决:**
- 活动流计数器集成到 A2A 状态中
- 最后任务时间戳和每个状态计数
- 用于实时操作监控的 A2A 仪表板卡</details>
<详情>
<summary><b>🪪 25.“我需要为客户发现标准代理”</b></summary>
外部客户端和协调器需要机器可读的元数据来进行引导。
**OmniRoute 如何解决:**
- 代理卡暴露于`/.wellknown/agent.json`
- 管理 UI 中显示的能力和技能
- A2A 状态 API 包括用于自动化的发现元数据</details>
<详情>
<summary><b>🧭 26.“我需要产品用户体验中的协议可发现性”</b></summary>
如果用户无法发现协议表面,采用和支持质量就会下降。
**OmniRoute 如何解决:**
- 合并**端点**页面,其中包含代理、MCP、A2A 和 API 端点选项卡
- MCP 和 A2A 的在线服务状态切换(在线/离线)
- 从概述到专用管理选项卡的链接</details>
<详情>
<summary><b>🧪 27.“我需要与真实客户端进行端到端协议验证”</b></summary>
模拟测试不足以在发布前验证协议兼容性。
**OmniRoute 如何解决:**
- E2E 套件,可启动应用程序并使用真正的 MCP SDK 客户端传输
- A2A 客户端测试发现、发送、流式传输、获取和取消流程
- 针对 MCP 审计和 A2A 任务 API 交叉检查断言</details>
<详情>
<summary><b>📡 28.“我需要跨所有接口的统一可观察性”</b></summary>
按协议分割可观察性会产生盲点和更长的 MTTR。
**OmniRoute 如何解决:**
- 一个产品中的统一仪表板/日志/分析
- 跨 OpenAI、MCP 和 A2A 层的运行状况 + 审计 + 请求遥测
- 用于状态和自动化的操作 API</details>
<详情>
<summary><b>💼 29.“我需要一个用于代理+工具+代理编排的运行时”</b></summary>
运行许多单独的服务会增加运营成本和故障模式。
**OmniRoute 如何解决:**
- 兼容 OpenAI 的代理、MCP 服务器和 A2A 服务器位于一个堆栈中
- 共享身份验证、弹性、数据存储和可观察性
- 所有交互界面上一致的策略模型</details>
<详情>
<summary><b>🚀 30.“我需要在没有胶水代码蔓延的情况下交付代理工作流程”</b></summary>
拼接多个临时服务和脚本时,团队会失去速度。
**OmniRoute 如何解决:**
- 客户端和代理的统一端点策略
- 内置协议管理 UI 和烟雾验证路径
- 生产就绪的基础(安全性、日志记录、弹性、备份)</details>
### Example Playbooks (Integrated Use Cases)
**剧本 A:最大化付费订阅 + 廉价备份**```txt
Combo: "maximize-claude"
1. cc/claude-opus-4-6
2. glm/glm-4.7
3. if/kimi-k2-thinking
Monthly cost: $20 + small backup spend
Outcome: higher quality, near-zero interruption
剧本 B:零成本编码堆栈```txt Combo: "free-forever"
- gc/gemini-3-flash
- if/kimi-k2-thinking
- qw/qwen3-coder-plus
Monthly cost: $0 Outcome: stable free coding workflow
**剧本 C:24/7 始终在线的后备链**```txt
Combo: "always-on"
1. cc/claude-opus-4-6
2. cx/gpt-5.2-codex
3. glm/glm-4.7
4. minimax/MiniMax-M2.1
5. if/kimi-k2-thinking
Outcome: deep fallback depth for deadline-critical workloads
剧本 D:使用 MCP + A2A 进行特工操作```txt
- Start MCP transport (
omniroute --mcp) for tool-driven operations - Run A2A tasks via
message/sendandmessage/stream - Observe via /dashboard/endpoint (MCP and A2A tabs)
- Toggle services via inline status controls
---
## 🆓 Start Free — Zero Configuration Cost
> 只需几分钟即可设置 AI 编码,费用为**0 美元/月**。连接这些免费帐户并使用内置的**Free Stack**组合。
|步骤|行动|供应商已解锁 |
| ---- | -------------------------------------------------- | ------------------------------------------------------------------ |
| 1 |连接**Kiro**(AWS Builder ID OAuth)|克劳德十四行诗 4.5、俳句 4.5 —**无限**|
| 2 |连接**Qoder**(Google OAuth) | kimi-k2-thinking、qwen3-coder-plus、deepseek-r1... —**无限**|
| 3 |连接**Qwen**(设备代码)| qwen3-coder-plus、qwen3-coder-flash... —**无限制**|
| 4 |连接**Gemini CLI**(Google OAuth) | gemini-3-flash、gemini-2.5-pro —**180K/月 免费**|
| 5 | `/dashboard/combos` →**免费堆栈 ($0)**模板 |自动循环所有免费提供商 |
**将任何 IDE/CLI 指向:**`http://localhost:20128/v1` · API 密钥:`any-string` · 完成。
>**可选的额外覆盖范围(也是免费的):**Groq API 密钥(30 RPM 免费)、NVIDIA NIM(40 RPM 免费,70 多个模型)、Cerebras(1M tok/天)、LongCat API 密钥(50M 令牌/天!)、Cloudflare Workers AI(10K 神经元/天,50 多个模型)。## 快速开始
### 1) Install and run
```bash
npm install -g omniroute
omniroute
**pnpm 用户:**安装后运行
pnpmapprove-builds -g以启用better-sqlite3和@swc/core所需的本机构建脚本:pnpm install -g 全方位路由 pnpmapprove-builds -g # 选择所有包 → 批准 全向路线
仪表板在“http://localhost:20128”打开,API 基本 URL 为“http://localhost:20128/v1”。
| 命令 | 描述 |
|---|---|
全向 |
启动服务器(PORT=20128,API 和仪表板位于同一端口) |
omniroute --端口 3000 |
将规范/API 端口设置为 3000 |
omniroute --mcp |
启动 MCP 服务器(stdio 传输) |
omniroute --no-open |
不要自动打开浏览器 |
omniroute --help |
显示帮助 |
可选的分割端口模式:```bash PORT=20128 DASHBOARD_PORT=20129 omniroute
API: http://localhost:20128/v1
Dashboard: http://localhost:20129
### Long-Running Streaming Timeouts
对于大多数部署,您只需要:
|变量|默认 |目的|
| ------------------------ | -------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- |
| `REQUEST_TIMEOUT_MS` | `600000` |上游获取的共享基线、隐藏的 Undici 超时、TLS 指纹请求和 API 桥接请求/代理超时 |
| `STREAM_IDLE_TIMEOUT_MS` |继承`REQUEST_TIMEOUT_MS` | OmniRoute 中止 SSE 流之前流块之间的最大间隙 |
保留向后兼容性:现有的“FETCH_TIMEOUT_MS”、“API_BRIDGE_PROXY_TIMEOUT_MS”和其他每层超时变量仍然有效并覆盖共享基线。
如果您需要更精细的控制,可以使用高级覆盖:|变量|默认 |目的|
| ---------------------------------------------------- | ------------------------------------------------------ | -------------------------------------------------------------------------------- |
| `FETCH_TIMEOUT_MS` |继承`REQUEST_TIMEOUT_MS` |主获取中止信号使用的总上游请求超时 |
| `FETCH_HEADERS_TIMEOUT_MS` |继承`FETCH_TIMEOUT_MS` | Undici 接收上游响应标头的时间限制 |
| `FETCH_BODY_TIMEOUT_MS` |继承`FETCH_TIMEOUT_MS` |上游主体块之间的 Undici 时间限制(“0”禁用它)|
| `FETCH_CONNECT_TIMEOUT_MS` | `30000` | Undici TCP 连接超时 |
| `FETCH_KEEPALIVE_TIMEOUT_MS` | `4000` | Undici 空闲保持活动套接字超时 |
| `TLS_CLIENT_TIMEOUT_MS` |继承`FETCH_TIMEOUT_MS` |通过“wreq-js”发出的 TLS 指纹请求超时 |
| `API_BRIDGE_PROXY_TIMEOUT_MS` |继承`REQUEST_TIMEOUT_MS`或`30000` |从 API 端口到仪表板端口的“/v1”代理转发超时 |
| `API_BRIDGE_SERVER_REQUEST_TIMEOUT_MS` | `最大(API_BRIDGE_PROXY_TIMEOUT_MS,300000)` | API 桥接服务器上的传入请求超时 |
| `API_BRIDGE_SERVER_HEADERS_TIMEOUT_MS` | `60000` | API 桥接服务器上的传入标头超时 |
| `API_BRIDGE_SERVER_KEEPALIVE_TIMEOUT_MS` | `5000` | API 桥接服务器上的保持活动超时 |
| `API_BRIDGE_SERVER_SOCKET_TIMEOUT_MS` | `0` | API 桥接服务器上的套接字不活动超时(“0”禁用它)|
如果您在 Nginx、Caddy、Cloudflare 或其他反向代理后面运行 OmniRoute,请确保代理
超时也高于 OmniRoute 流/获取超时。### 2) Connect providers and create your API key
1. 打开仪表板 → `Providers` 并连接至少一个提供商(OAuth 或 API 密钥)。
2. 打开仪表板 → `Endpoints` 并创建 API 密钥。
3.(可选)打开仪表板 → `Combos` 并设置后备链。### 3) Point your coding tool to OmniRoute
```txt
Base URL: http://localhost:20128/v1
API Key: [copy from Endpoint page]
Model: if/kimi-k2-thinking (or any provider/model prefix)
可与 Claude Code、Codex CLI、Gemini CLI、Cursor、Cline、OpenClaw、OpenCode 和 OpenAI 兼容的 SDK 配合使用。### 4) Enable and validate protocols (v2.0)
MCP(用于工具驱动的操作):```bash omniroute --mcp
然后通过“stdio”连接您的 MCP 客户端并测试工具,例如:
- `omniroute_get_health`
- `omniroute_list_combos`
**A2A(针对客服人员到客服人员的工作流程):**```bash
curl http://localhost:20128/.well-known/agent.json
curl -X POST http://localhost:20128/a2a \
-H 'content-type: application/json' \
-d '{"jsonrpc":"2.0","id":"quickstart","method":"message/send","params":{"skill":"quota-management","messages":[{"role":"user","content":"Give me a short quota summary."}]}}'
5) Validate everything end-to-end (recommended)
npm run test:protocols:e2e
该套件根据正在运行的应用程序验证真实的 MCP 和 A2A 客户端流。### Alternative: run from source
cp .env.example .env
npm install
PORT=20128 DASHBOARD_PORT=20129 NEXT_PUBLIC_BASE_URL=http://localhost:20129 npm run dev
<详情>
对于 Void Linux 用户,您可以使用“xbps-src”构建本机包。将此块保存为“srcpkgs/omniroute/template”:```bash
Template file for 'omniroute'
pkgname=omniroute version=3.4.1 revision=1 hostmakedepends="nodejs python3 make" depends="openssl" short_desc="Universal AI gateway with smart routing for multiple LLM providers" maintainer="zenobit zenobit@disroot.org" license="MIT" homepage="https://github.com/diegosouzapw/OmniRoute" distfiles="https://github.com/diegosouzapw/OmniRoute/archive/refs/tags/v${version}.tar.gz" checksum=009400afee90a9f32599d8fe734145cfd84098140b7287990183dde45ae2245b system_accounts="_omniroute" omniroute_homedir="/var/lib/omniroute" export NODE_ENV=production export npm_config_engine_strict=false export npm_config_loglevel=error export npm_config_fund=false export npm_config_audit=false
do_build() { # Determine target CPU arch for node-gyp local _gyp_arch case "$XBPS_TARGET_MACHINE" in aarch64*) _gyp_arch=arm64 ;; armv7*|armv6*) _gyp_arch=arm ;; i686*) _gyp_arch=ia32 ;; *) _gyp_arch=x64 ;; esac
# 1) Install all deps – skip scripts (no network in do_build, native modules
# compiled separately below; better-sqlite3 is serverExternalPackage so
# Next.js does not execute it during next build)
NODE_ENV=development npm ci --ignore-scripts
# 2) Build the Next.js standalone bundle
npm run build
# 3) Copy static assets into standalone
cp -r .next/static .next/standalone/.next/static
[ -d public ] && cp -r public .next/standalone/public || true
# 4) Compile better-sqlite3 native binding for the target architecture.
# Use node-gyp directly so CC/CXX from xbps-src cross-toolchain are used
# without npm altering them.
local _node_gyp=/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js
(cd node_modules/better-sqlite3 && node "$_node_gyp" rebuild --arch="$_gyp_arch")
# 5) Place the compiled binding into the standalone bundle
local _bs3_release=.next/standalone/node_modules/better-sqlite3/build/Release
mkdir -p "$_bs3_release"
cp node_modules/better-sqlite3/build/Release/better_sqlite3.node "$_bs3_release/"
# 6) Remove arch-specific sharp bundles – upstream sets images.unoptimized=true
# so sharp is not used at runtime; x64 .so files would break aarch64 strip
rm -rf .next/standalone/node_modules/@img
# 7) Copy pino runtime deps omitted by Next.js static analysis:
# pino-abstract-transport – required by pino's worker thread
# split2 – dep of pino-abstract-transport
# process-warning – dep of pino itself
for _mod in pino-abstract-transport split2 process-warning; do
cp -r "node_modules/$_mod" .next/standalone/node_modules/
done
}
do_check() { npm run test:unit }
do_install() { vmkdir usr/lib/omniroute/.next
vcopy .next/standalone/. usr/lib/omniroute/.next/standalone
# Prevent removal of empty Next.js app router dirs by the post-install hook
for _d in \
.next/standalone/.next/server/app/dashboard \
.next/standalone/.next/server/app/dashboard/settings \
.next/standalone/.next/server/app/dashboard/providers; do
touch "${DESTDIR}/usr/lib/omniroute/${_d}/.keep"
done
cat > "${WRKDIR}/omniroute" <<'EOF'
#!/bin/sh export PORT="${PORT:-20128}" export DATA_DIR="${DATA_DIR:-${XDG_DATA_HOME:-${HOME}/.local/share}/omniroute}" export LOG_TO_FILE="${LOG_TO_FILE:-false}" mkdir -p "${DATA_DIR}" exec node /usr/lib/omniroute/.next/standalone/server.js "$@" EOF vbin "${WRKDIR}/omniroute" }
post_install() { vlicense LICENSE }
</details>
---
## 🐳 Docker
OmniRoute 在 [Docker Hub](https://hub.docker.com/r/diegosouzapw/omniroute) 上作为公共 Docker 映像提供。
**快速运行:**```bash
docker run -d \
--name omniroute \
--restart unless-stopped \
--stop-timeout 40 \
-p 20128:20128 \
-v omniroute-data:/app/data \
diegosouzapw/omniroute:latest
带有环境文件:```bash
Copy and edit .env first
cp .env.example .env
docker run -d
--name omniroute
--restart unless-stopped
--stop-timeout 40
--env-file .env
-p 20128:20128
-v omniroute-data:/app/data
diegosouzapw/omniroute:latest
**Using Docker Compose:**
```bash
# Base profile (no CLI tools)
docker compose --profile base up -d
# CLI profile (Claude Code, Codex, OpenClaw built-in)
docker compose --profile cli up -d
对 Docker 部署的仪表板支持现在包括“仪表板 → 端点”上的一键Cloudflare 快速隧道。第一个启用仅在需要时下载“cloudflared”,启动到当前“/v1”端点的临时隧道,并在正常公共 URL 正下方显示生成的“https://*.trycloudflare.com/v1” URL。
注意事项:
- 快速隧道 URL 是临时的,每次重新启动后都会更改。
- OmniRoute 或容器重新启动后,快速隧道不会自动恢复。需要时从仪表板重新启用它们。
- 托管安装目前支持“x64”/“arm64”上的 Linux、macOS 和 Windows。
- 托管快速隧道默认采用 HTTP/2 传输,以避免在受限容器环境中出现嘈杂的 QUIC UDP 缓冲区警告。如果您想要不同的传输,请设置“CLOUDFLARED_PROTOCOL=quic”或“auto”。
- Docker 镜像捆绑系统 CA 根并将其传递给托管的“cloudflared”,这样可以避免在容器内引导隧道时出现 TLS 信任失败。
- SQLite 以 WAL 模式运行。应允许“docker stop”完成,以便 OmniRoute 可以将最新更改检查点回“storage.sqlite”。
- 捆绑的 Compose 文件已设置 40 秒的停止宽限期。如果直接运行映像,请保留“--stop-timeout 40”(或类似值),以便手动停止不会中断关机清理。
- 如果您希望 OmniRoute 使用现有二进制文件而不是下载二进制文件,请设置“CLOUDFLARED_BIN=/absolute/path/to/cloudflared”。
将 Docker Compose 与 Caddy 结合使用(HTTPS 自动 TLS):
可以使用 Caddy 的自动 SSL 配置安全地公开 OmniRoute。确保您域的 DNS A 记录指向您服务器的 IP。```yaml services: omniroute: image: diegosouzapw/omniroute:latest container_name: omniroute restart: unless-stopped volumes: - omniroute-data:/app/data environment: - PORT=20128 - NEXT_PUBLIC_BASE_URL=https://your-domain.com
caddy: image: caddy:latest container_name: caddy restart: unless-stopped ports: - "80:80" - "443:443" command: caddy reverse-proxy --from https://your-domain.com --to http://omniroute:20128
volumes: omniroute-data:
|图片|标签 |尺寸|描述 |
| ------------------------ | -------- | ------ | -------------------- |
| `diegosouzapw/omniroute` | `最新` | 〜250MB |最新稳定版本 |
| `diegosouzapw/omniroute` | `1.0.3` | 〜250MB |当前版本 |---
## 🖥️ Desktop App — Offline & Always-On
> 🆕**新!**OmniRoute 现已作为适用于 Windows、macOS 和 Linux 的**本机桌面应用程序**提供。
将 OmniRoute 作为独立的桌面应用程序运行 — 本地模型无需终端、浏览器、互联网。基于 Electron 的应用程序包括:
- 🖥️**本机窗口**— 具有系统托盘集成的专用应用程序窗口
- 🔄**自动启动**— 在系统登录时启动 OmniRoute
- 🔔**本机通知**— 获取配额耗尽或提供商问题的警报
- ⚡**一键安装**— NSIS (Windows)、DMG (macOS)、AppImage (Linux)
- 🌐**离线模式**— 使用捆绑服务器完全离线工作### 快速开始
```bash
# Development mode
npm run electron:dev
# Build for your platform
npm run electron:build # Current platform
npm run electron:build:win # Windows (.exe)
npm run electron:build:mac # macOS (.dmg) — x64 & arm64
npm run electron:build:linux # Linux (.AppImage)
System Tray
最小化后,OmniRoute 会出现在您的系统托盘中,并可进行快速操作:
- 打开仪表板
- 更改服务器端口
- 退出应用程序
📖 完整文档:electron/README.md---
💰 Pricing at a Glance
|等级 |供应商|成本|配额重置 |最适合 | | ------------------- | ------------------------ | | ---------------------------------- | ---------------- | --------------------------------- | |💳 订阅|克劳德代码(专业版)| $20/月 | 5 小时+ 每周 |已经订阅 | | | Codex(增强版/专业版)| $20-200/月 | 5 小时+ 每周 | OpenAI 用户 | | |双子座 CLI |免费| 180K/月 + 1K/天 |每个人! | | | GitHub 副驾驶 | $10-19/月 |每月 | GitHub 用户 | |🔑 API 密钥| NVIDIA NIM |免费(永远开发)|约 40 转/分 | 70+ 开放模型 | | |大脑 |免费(1M tok/天)| 60K TPM / 30 转/分钟 |世界最快 | | |格罗克 |免费(30 RPM) | 14.4K RPD |超快 Llama/Gemma | | | DeepSeek V3.2 |每 100 万美元 0.27 美元/1.10 美元 |无 |最佳价格/质量推理 | | | xAI Grok-4 快速 |每 100 万美元 0.20 美元/0.50 美元🆕 |无 |最快+工具调用,超低| | | xAI Grok-4(标准)|每 100 万美元 0.20 美元/1.50 美元 🆕 |无 | xAI 推理旗舰 | | |米斯特拉尔|免费试用+付费|限价|欧洲人工智能 | | |开放路由器|按使用付费 |无 |总计 100 多个型号 | |💰便宜| GLM-5(来自 Z.AI)🆕 | 0.5 美元/100 万美元 |每日上午 10 点 | 128K输出,最新旗舰| | | GLM-4.7 | 0.6 美元/100 万美元 |每日上午 10 点 |预算备份| | | MiniMax M2.5 🆕 | 0.3 美元/100 万输入 | 5小时滚动|推理+代理任务| | |迷你最大M2.1 | 0.2 美元/100 万美元 | 5小时滚动 |最便宜的选择| | | Kimi K2.5(Moonshot API)🆕 |按使用付费 |无 |直接 Moonshot API 访问 | | |基米K2 |每月 9 美元的公寓 | 10M 代币/月 |可预测的成本| |🆓 免费|科德尔 |$0|无限| 5款无限 | | |奎文 |$0|无限| 4款无限| | |基罗 |$0|无限| Claude Sonnet/俳句(AWS Builder)| | | LongCat Flash-Lite 🆕 |$0(50M tok/天 🔥) | 1 RPS |地球上最大的免费配额| | |授粉 AI 🆕 |$0(无需钥匙)| 1 请求/15 秒 | GPT-5、克劳德、DeepSeek、Llama 4 | | | Cloudflare Workers AI 🆕 |$0(10K 神经元/天)| ~150 次/天 | 50+车型,全球优势| | | Scaleway 人工智能 🆕 |$0(总计 100 万代币)|限价|欧盟/GDPR、Qwen3 235B、Llama 70B |> 🆕**添加新型号(2026 年 3 月):**Grok-4 Fast 系列售价 0.20 美元/0.50 美元/月(基准测试速度为 1143 毫秒 — 比 Gemini 2.5 Flash 快 30%)、GLM-5 通过 Z.AI 提供 128K 输出、MiniMax M2.5 推理、DeepSeek V3.2 更新定价、Kimi K2.5 通过 Moonshot 直接 API。
💡 0 美元组合堆栈 — 完整的免费设置:```
🆓 Ultimate Free Stack 2026 — 11 Providers, $0 Forever
Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed Qwen (qw/) → qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next UNLIMITED Gemini (gemini/) → Gemini 2.5 Flash — 1,500 req/day free API key Cloudflare AI (cf/) → Llama 70B, Gemma 3, Mistral — 10K Neurons/day Scaleway (scw/) → Qwen3 235B, Llama 70B — 1M free tokens (EU) Groq (groq/) → Llama/Gemma ultra-fast — 14.4K req/day NVIDIA NIM (nvidia/) → 70+ open models — 40 RPM forever Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day
**零成本。永远不会停止编码。**将其配置为一个 OmniRoute 组合,所有回退都会自动发生 - 无需手动切换。---
---
## 🆓 Free Models — What You Actually Get
> 以下所有型号**100% 免费,零信用卡要求**。当一个配额用完时,OmniRoute 会在它们之间自动路由 - 将它们全部组合起来,形成牢不可破的 0 美元组合。### 🔵 CLAUDE MODELS (via Kiro — AWS Builder ID)
|型号|前缀|限制|速率限制 |
| ------------------- | ------ | ------------- | -------------------- |
| `克劳德十四行诗-4.5` | `kr/` |**无限制**|没有报道每日上限 |
| `克劳德俳句-4.5` | `kr/` |**无限制**|没有报道每日上限 |
| `克劳德-opus-4.6` | `kr/` |**无限制**| Kiro 的最新作品 |### 🟢 QODER MODELS (Free PAT via qodercli)
|型号|前缀|限制|速率限制 |
| ------------------ | ------ | ------------- | ---------------- |
| `kimi-k2-思考` | `如果/` |**无限制**|没有报告上限 |
| `qwen3-coder-plus` | `如果/` |**无限制**|没有报告上限 |
| `deepseek-r1` | `如果/` |**无限制**|没有报告上限 |
| `minimax-m2.1` | `如果/` |**无限制**|没有报告上限 |
| `kimi-k2` | `如果/` |**无限制**|没有报告上限 |
> 推荐连接方法:**个人访问令牌 + `qodercli`**。浏览器 OAuth 是
> 实验性的,默认禁用,除非配置了`QODER_OAUTH_*`环境变量。### 🟡 QWEN MODELS (Device Code Auth)
|型号|前缀|限制|速率限制 |
| ------------------- | ------ | ------------- | ------------------- |
| `qwen3-coder-plus` | `qw/` |**无限制**|没有报告上限 |
| `qwen3-coder-flash` | `qw/` |**无限制**|没有报告上限 |
| `qwen3-coder-next` | `qw/` |**无限制**|没有报告上限 |
| `视觉模型` | `qw/` |**无限制**|多式联运(图像)|### 🟣 GEMINI CLI (Google OAuth)
|型号|前缀|限制|速率限制 |
| ------------------------ | ------ | ------------------------ | | ------------- |
| `gemini-3-flash-预览` | `gc/` |**180K tok/月**+ 1K/天 |每月重置 |
| `gemini-2.5-pro` | `gc/` | 180K/月(共享池)|高品质|### ⚫ NVIDIA NIM (Free API Key — build.nvidia.com)
|等级 |每日限额 |速率限制 |笔记|
| ---------- | ------------ | ----------- | ------------------------------------------------------ |
|免费(开发)|无代币上限 |**~40 转/分**| 70+型号; 2025 年中期过渡到纯粹的费率限制 |
热门免费模型:`moonshotai/kimi-k2.5` (Kimi K2.5)、`z-ai/glm4.7` (GLM 4.7)、`deepseek-ai/deepseek-v3.2` (DeepSeek V3.2)、`nvidia/llama-3.3-70b-instruct`、`deepseek/deepseek-r1`### ⚪ CEREBRAS (Free API Key — inference.cerebras.ai)
|等级 |每日限额 |速率限制 |笔记|
| ---- | ----------------- | ---------------- | ------------------------------------------- |
|免费|**100 万个代币/天**| 60K TPM / 30 转/分钟 |世界上最快的LLM推理;每日重置 |
免费提供:`llama-3.3-70b`、`llama-3.1-8b`、`deepseek-r1-distill-llama-70b`### 🔴 GROQ (Free API Key — console.groq.com)
|等级 |每日限额 |速率限制 |笔记|
| ---- | ------------- | ---------------- | ---------------------------------------------------- |
|免费|**14.4K RPD**|每个型号 30 RPM |没有信用卡; 429 限量,不收费 |
免费提供:`llama-3.3-70b-versatile`、`gemma2-9b-it`、`mixtral-8x7b`、`whisper-large-v3`### 🔴 LONGCAT AI (Free API Key — longcat.chat) 🆕
|型号|前缀|每日免费额度|笔记|
| -------------------------------------- | ------ | ----------------- | ----------------------- |
| `LongCat-Flash-Lite` | `lc/` |**5000 万代币**💥 |有史以来最大的免费配额|
| `LongCat-Flash-Chat` | `lc/` | 50 万个代币 |多轮聊天 |
| 《长猫闪思维》 | `lc/` | 50 万个代币 |推理/CoT |
| `LongCat-Flash-Thinking-2601` | `lc/` | 50 万个代币 | 2026 年 1 月版本 |
| `LongCat-Flash-Omni-2603` | `lc/` | 50 万个代币 |多式联运 |
> 公测期间 100% 免费。使用电子邮件或电话在 [longcat.chat](https://longcat.chat) 上注册。每天 00:00 UTC 重置。### 🟢 POLLINATIONS AI (No API Key Required) 🆕
|型号|前缀|速率限制 |背后的提供商 |
| ---------- | ------ | ---------- | ------------------ |
| `openai` | `pol/` | 1 请求/15 秒 | GPT-5 |
| '克劳德' | `pol/` | 1 请求/15 秒 |人类克劳德 |
| `双子座` | `pol/` | 1 请求/15 秒 |谷歌双子座 |
| '深探' | `pol/` | 1 请求/15 秒 |深思V3 |
| `美洲驼` | `pol/` | 1 请求/15 秒 | Meta Llama 4 侦察兵 |
|米斯特拉尔 | `pol/` | 1 请求/15 秒 |米斯特拉尔人工智能 |
> ✨**零摩擦:**无需注册,无需 API 密钥。添加具有空键字段的授粉提供程序,它会立即起作用。### 🟠 CLOUDFLARE WORKERS AI (Free API Key — cloudflare.com) 🆕
|等级 |每日神经元 |等效用法|笔记|
| ---- | ------------- | --------------------------------------- | ----------------------- |
|免费|**10,000**|约 150 个法学硕士 / 500 秒音频 / 15K 嵌入 |全球优势,50+型号|
流行的免费模型:`@cf/meta/llama-3.3-70b-instruct`、`@cf/google/gemma-3-12b-it`、`@cf/openai/whisper-large-v3-turbo`(免费音频!)、`@cf/qwen/qwen2.5-coder-15b-instruct`
> 需要来自 [dash.cloudflare.com](https://dash.cloudflare.com) 的 API 令牌 + 帐户 ID。将帐户 ID 存储在提供商设置中。### 🟣 SCALEWAY AI (1M Free Tokens — scaleway.com) 🆕
|等级 |免费配额 |地点 |笔记|
| ---- | ------------- | ------------ | ----------------------------------- |
|免费|**1M 代币**| 🇫🇷 欧盟巴黎 |限额内无需信用卡 |
免费提供:“qwen3-235b-a22b-instruct-2507”(Qwen3 235B!)、“llama-3.1-70b-instruct”、“mistral-small-3.2-24b-instruct-2506”、“deepseek-v3-0324”
> 符合欧盟/GDPR 标准。在 [console.scaleway.com](https://console.scaleway.com) 获取 API 密钥。
>**💡 终极免费堆栈(11 个提供商,永远 0 美元):**
>
> ```
> Kiro (kr/) → 克劳德十四行诗/俳句无限
> Qoder (if/) → kimi-k2-thinking、qwen3-coder-plus、deepseek-r1 无限
> LongCat Lite (lc/) → LongCat-Flash-Lite — 5000 万代币/天 🔥
> 授粉 (pol/) → GPT-5、Claude、DeepSeek、Llama 4 — 无需密钥
> Qwen (qw/) → qwen3-coder 模型无限
> Gemini (gemini/) → Gemini 2.5 Flash — 1,500 请求/天免费
> Cloudflare AI (cf/) → 50 多个模型 — 10K 神经元/天
> Scaleway (scw/) → Qwen3 235B、Llama 70B — 100 万个免费代币(欧盟)
> Groq (groq/) → Llama/Gemma — 14.4K 请求/天超快
> NVIDIA NIM (nvidia/) → 70 多个开放型号 — 永远 40 RPM
> Cerebras (cerebras/) → Llama/Qwen 世界最快 — 1M tok/天
> ```## 🎙️ Free Transcription Combo
> 以**0 美元**转录任何音频/视频 — Deepgram 领先,免费 200 美元,AssemblyAI 50 美元后备,Groq Whisper 作为无限紧急备份。
|供应商|免费积分|最佳模特|速率限制 |
| ----------------- | ---------------------- | -------------------------------------------------------- | ---------------------------- |
| 🟢**Deepgram**|**200 美元免费**(注册)| `nova-3` — 最高准确度,30 多种语言 |免费积分没有 RPM 限制 |
| 🔵**AssemblyAI**|**50 美元免费**(注册)| `universal-3-pro` — 章节、情绪、PII |免费积分没有 RPM 限制 |
| 🔴**Groq**|**永远免费**| `whisper-large-v3` — OpenAI Whisper | 30 RPM(速率有限)|
**`/dashboard/combos`中建议的组合:**```
Name: free-transcription
Strategy: Priority
Nodes:
[1] deepgram/nova-3 → uses $200 free first
[2] assemblyai/universal-3-pro → fallback when Deepgram credits run out
[3] groq/whisper-large-v3 → free forever, emergency fallback
然后在 /dashboard/media →转录选项卡中:上传任何音频或视频文件 → 选择您的组合端点 → 以支持的格式获取转录。## 💡 Key Features
OmniRoute v2.0 被构建为一个操作平台,而不仅仅是一个中继代理。### 🆕 New — ClawRouter-Inspired Improvements (Mar 2026)
| 特色 | 它有什么作用 | |
|---|---|---|
| ⚡Grok-4 快速家族 | xAI 模型价格为 $0.20/$0.50/M — 基准测试为 1143ms(比 Gemini 2.5 Flash 快 30%) | |
| 🧠GLM-5 通过 Z.AI | 128K 输出上下文,0.5 美元/100 万美元 — GLM 系列的最新旗舰产品 | |
| 🔮MiniMax M2.5 | 推理 + 代理任务,价格为 0.30 美元/100 万美元 — M2.1 的重大升级 | |
| 🎯每个模型的工具调用标志 | 注册表中的每个模型 toolCalling: true/false — AutoCombo 会跳过不支持工具的模型 |
|
| 🌍多语言意图检测 | AutoCombo 评分中的 PT/ZH/ES/AR 关键字 — 更好地选择非英语内容的模型 | |
| 📊基准驱动的回退 | 来自实时请求的真实 p95 延迟提供组合评分 — AutoCombo 从实际数据中学习 | |
| 🔁请求重复数据删除 | 基于内容哈希的重复数据删除窗口 — 多代理安全,防止重复收费 | |
| 🔌可插拔路由器策略 | 可扩展的“RouterStrategy”接口 - 添加自定义路由逻辑作为插件 | ### 🚀 Previous v2.0.9+ — Playground, CLI Fingerprints & ACP |
| 特色 | 它有什么作用 | |
|---|---|---|
| 🎮模型游乐场 | 直接测试任何模型的仪表板页面 - 提供者/模型/端点选择器、Monaco 编辑器、流式传输、中止、计时 | |
| 🔏CLI 指纹匹配 | 每个提供商的标头/正文排序以匹配本机 CLI 签名 - 在“设置”>“安全”中切换每个提供商。您的代理 IP 已保留 | |
| 🤝ACP 支持(代理客户端协议) | CLI 代理发现(Codex、Claude、Goose、Gemini CLI、OpenClaw + 9 个以上)、进程生成器、/api/acp/agents 端点 |
|
| 🤖ACP 代理仪表板 | 调试 › 代理页面 — 14 个代理网格,包含任何 CLI 工具的安装状态、版本、自定义代理表单。OpenCode用户可以获得一个“下载 opencode.json”按钮,该按钮会自动生成包含所有可用模型的即用型配置。 | |
🔧自定义模型 apiFormat 路由 |
带有 apiFormat: "responses" 的自定义模型现在可以正确路由到 Responses API 转换器 |
|
| 🏢Codex 工作区隔离 | 每封电子邮件有多个 Codex 工作区 — OAuth 通过工作区 ID 正确分隔连接 | |
| 🔄Electron 自动更新 | 桌面应用程序检查更新+重新启动时自动安装 | ### 🤖 Agent & Protocol Operations (v2.0) |
| 特色 | 它有什么作用 | |
|---|---|---|
| 🔧MCP 服务器(25 个工具) | 通过 3 种传输的 IDE/代理工具:stdio、SSE (/api/mcp/sse)、可流式 HTTP (/api/mcp/stream)。 18核+3内存+4技能工具 |
|
| 🤝A2A 服务器(JSON-RPC + SSE) | 通过同步和流式传输代理到代理的任务执行 | |
| 🧭综合端点页面 | 带有端点代理、MCP、A2A 和 API 端点选项卡的选项卡式管理页面 | |
| 🎚️服务启用/禁用切换 | MCP 和 A2A 的 ON/OFF 开关,具有设置持久性(默认值:OFF) | |
| 🛰️MCP 运行时心跳 | 真实进程状态(pid、正常运行时间、心跳寿命、传输、范围模式) | |
| 📋MCP 审计追踪 | 可过滤的审核日志,包含成功/失败和关键归因 | |
| 🔐MCP 范围执行 | 受控工具访问的 10 个精细范围权限 | |
| 📡A2A 任务生命周期管理 | 列出/过滤任务、检查事件/工件、取消正在运行的任务 | |
| 📋代理卡发现 | 用于客户端自动发现的/.well-known/agent.json |
|
| 🧪协议 E2E 测试工具 | 真正的 MCP SDK + A2A 客户端在 test:protocols:e2e 中流动 |
|
| ⚙️操作控制 | 开关组合、应用弹性配置文件、从一个控制表面重置断路器 | ### 🧠 Routing & Intelligence |
| 特色 | 它有什么作用 | |
|---|---|---|
| 🎯智能 4 层回退 | 自动路由:订阅 → API 密钥 → 便宜 → 免费 | |
| 📊实时配额跟踪 | 每个提供商的实时代币计数 + 重置倒计时 | |
| 🔄格式翻译 | OpenAI ↔ Claude ↔ Gemini ↔ 具有模式安全转换的响应 | |
| 👥多帐户支持 | 每个提供商有多个帐户,可进行智能选择 | |
| 🔄自动令牌刷新 | OAuth 令牌通过重试自动刷新 | |
| 🎨自定义组合 | 9种平衡策略+后备链控制 | |
| 🌐通配符路由器 | provider/* 动态路由 |
|
| 🧠思考预算控制 | 直通、自动、自定义和自适应推理限制 | |
| 🔀模型别名 | 内置+自定义模型别名和迁移安全 | |
| ⚡背景退化 | 将低优先级后台任务路由到更便宜的模型 | |
| 🧪任务感知智能路由 | 按内容类型自动选择模型(编码/视觉/分析/摘要) | |
| 🔄A2A 代理工作流程 | 用于状态多步骤代理执行的确定性 FSM 协调器 | |
| 🔀自适应路由 | 基于代币数量和提示复杂性的动态策略覆盖 | |
| 🎲提供商多元化 | 香农熵评分平衡自动组合流量分布 | |
| 💬系统提示注入 | 一致应用全球行为控制 | |
| 📄响应 API 兼容性 | 对 Codex 和高级代理工作流程的全面“/v1/responses”支持 | ### 🎵 Multi-Modal APIs |
| 特色 | 它有什么作用 | |
|---|---|---|
| 🖼️图像生成 | 具有云和本地后端的“/v1/images/ Generations” | |
| 📐嵌入 | 用于搜索和 RAG 管道的“/v1/embeddings” | |
| 🎤音频转录 | /v1/audio/transcriptions — 7 个提供商(Deepgram Nova 3、AssemblyAI、Groq Whisper、HuggingFace、ElevenLabs、OpenAI、Azure)、自动语言检测、MP4/MP3/WAV 支持 |
|
| 🔊文本转语音 | /v1/audio/speech — 10 个提供商(ElevenLabs、OpenAI、Deepgram、Cartesia、PlayHT、HuggingFace、Nvidia NIM、Inworld、Coqui、Tortoise),并提供正确的错误消息 |
|
| 🎬视频生成 | /v1/videos/ Generations(ComfyUI + SD WebUI 工作流程) |
|
| 🎵音乐一代 | /v1/music/generations(ComfyUI 工作流程) |
|
| 🛡️审核 | /v1/moderations 安全检查 |
|
| 🔀重新排名 | /v1/rerank 用于相关性评分 |
|
| 🔍网络搜索🆕 | /v1/search — 5 个提供商(Serper、Brave、Perplexity、Exa、Tavily)、每月 6,500 多个免费、自动故障转移、缓存 |
### 🛡️ Resilience, Security & Governance |
| 特色 | 它有什么作用 |
|---|---|
| 🔌断路器 | 每个模型的行程/恢复与阈值控制 |
| 🎯端点感知模型 | 自定义模型声明支持的端点+ API 格式 |
| 🛡️抗雷群 | 重试/速率事件的互斥锁 + 信号量保护 |
| 🧠语义 + 签名缓存 | 通过两个缓存层降低成本/延迟 |
| ⚡请求幂等性 | 重复防护窗 |
| 🔒TLS 指纹欺骗 | 类似浏览器的 TLS 指纹 —减少机器人检测和帐户标记 |
| 🔏CLI 指纹匹配 | 匹配本机 CLI 请求签名 —降低禁令风险,同时保留代理 IP |
| 🌐IP 过滤 | 公开部署的允许列表/阻止列表控制 |
| 📊可编辑的速率限制 | 可配置的全局/提供商级别的持久限制 |
| 📉优雅的降级 | 保护核心网关运营的多层能力回退 |
| 📜配置审计跟踪 | 基于差异的变更跟踪通过简单的回滚防止操作漂移 |
| ⏳提供商健康同步 | 主动令牌过期监控在授权失败之前触发警报 |
| 🚪自动禁用被禁止的帐户 | 运行断路器自动密封永久冻结的代币账户 |
| 🔑API 密钥管理 + 范围界定 | 安全密钥发行/轮换和模型/提供商控制 |
| 👁️范围 API 密钥公开🆕 | 通过“ALLOW_API_KEY_REVEAL”选择恢复 API 密钥 |
🛡️受保护的/models |
模型目录的可选身份验证门控和提供者隐藏### 📊 Observability & Analytics |
| 特色 | 它有什么作用 | |
|---|---|---|
| 📝请求 + 代理日志 | 完整的请求/响应和代理日志记录 | |
| 📉流式详细日志🆕 | 将 SSE 负载流干净地重构到 UI 中 | |
| 📋统一日志仪表板 | 一页中的请求、代理、审核和控制台视图 | |
| 🔍请求遥测 | p50/p95/p99 延迟和请求跟踪 | |
| 🏥健康仪表板 | 正常运行时间、断路器状态、锁定、缓存统计信息 | |
| 💰成本跟踪 | 预算控制和每个型号的定价可见性 | |
| 📈分析可视化 | 模型/提供商使用情况洞察和趋势视图 | |
| 🧪评估框架 | 具有可配置匹配策略的黄金集测试 | |
| 📡实时诊断🆕 | 用于精确组合实时测试的语义缓存旁路 | ### ☁️ Deployment & Platform |
| 特色 | 它有什么作用 | |
|---|---|---|
| 🌐随处部署 | 本地主机、VPS、Docker、云环境 | |
| 🚇Cloudflare 隧道🆕 | 从仪表板一键快速隧道集成 | |
| 🔑API 密钥模型过滤 | 通过分配的承载上下文角色过滤本机 /v1/models 响应 | |
| ⚡智能缓存绕过 | 可配置的 TTL 启发式和强制重新获取控制 | |
| 🔄备份/恢复 | 出口/进口和灾难恢复流程 | |
| 🧙入门向导 | 首次运行引导设置 | |
| 🔧CLI 工具仪表板 | 一键设置流行的编码工具 | |
| 🎮模型游乐场 | 从仪表板测试任何提供者/模型/端点 | |
| 🔏CLI 指纹切换 | 设置 > 安全 | 中每个提供商的指纹匹配 |
| 🌐i18n(30 种语言) | 完整的仪表板 + 文档语言支持和 RTL 覆盖 | |
| 🧹清除所有型号 | 供应商详情中一键清空型号列表 | |
| 👁️侧边栏控件🆕 | 从外观设置中隐藏组件和集成 | |
| 📋问题模板 | 针对错误和功能的标准化 GitHub 模板 | |
| 📂自定义数据目录 | 存储位置的DATA_DIR覆盖### Feature Deep Dive |
Smart fallback with practical cost control
Combo: "my-coding-stack"
1. cc/claude-opus-4-6
2. nvidia/llama-3.3-70b
3. glm/glm-4.7
4. if/kimi-k2-thinking
当配额、费率或运行状况失败时,OmniRoute 会自动移至下一个候选,无需手动切换。#### Protocol management that is visible and operable
- MCP + A2A 可在 UI 和文档中发现(未隐藏)
- 协议状态 API 公开实时操作数据(
/api/mcp/*、/api/a2a/*) - 仪表板包括第二天操作的操作(组合切换、断路器重置、任务取消)#### Translator + validation workflow
翻译器区域包括:
-Playground:请求转换检查 -聊天测试器:完整的请求/响应往返 -测试台:一次运行多个案例 -实时监控:实时交通视图
另外,通过“npm run test:protocols:e2e”与真实客户端进行协议验证。
📖MCP 服务器自述文件— 工具参考、IDE 配置和客户端示例
📖A2A 服务器自述文件— 技能、JSON-RPC 方法、流式处理和任务生命周期## 🧪 Evaluations (Evals)
OmniRoute 包含一个内置评估框架,用于根据黄金集测试 LLM 响应质量。通过仪表板中的分析→评估访问它。### Built-in Golden Set
预加载的“OmniRoute Golden Set”包含以下测试用例:
- 问候、数学、地理、代码生成
- JSON格式合规、翻译、Markdown生成
- 安全拒绝(有害内容)、计数、布尔逻辑### Evaluation Strategies
| 战略 | 描述 | 示例 | |
|---|---|---|---|
精确 |
输出必须完全匹配 | "4" |
|
包含 |
输出必须包含子字符串(不区分大小写) | “巴黎” |
|
正则表达式 |
输出必须匹配正则表达式模式 | "1.*2.*3" |
|
定制 |
自定义 JS 函数返回 true/false | (输出) => 输出.长度 > 10 |
--- |
📖 Setup Guide
Protocol Setup (MCP + A2A)
<详情>
以 stdio 模式启动 MCP 传输:```bash omniroute --mcp
推荐的验证流程:
1. 通过 stdio 连接 MCP 客户端。
2. 运行 `omniroute_get_health`。
3. 运行 `omniroute_list_combos`。
4. 打开 `/dashboard/mcp` 以确认心跳、活动和审核。
有用的自动化 API:
- `GET /api/mcp/status`
- `GET /api/mcp/tools`
- `GET /api/mcp/audit`
- `GET /api/mcp/audit/stats`</details>
<详情>
<summary><b>🤝 A2A 设置(Agent2Agent)</b></summary>
发现代理:```bash
curl http://localhost:20128/.well-known/agent.json
发送任务:```bash
curl -X POST http://localhost:20128/a2a
-H 'content-type: application/json'
-d '{"jsonrpc":"2.0","id":"setup-a2a","method":"message/send","params":{"skill":"quota-management","messages":[{"role":"user","content":"Summarize quota status."}]}}'
管理生命周期:
- `GET /api/a2a/status`
- `GET /api/a2a/tasks`
- `GET /api/a2a/tasks/:id`
- `POST /api/a2a/tasks/:id/cancel`
操作界面:
- `/dashboard/a2a` 用于任务/状态/流可观察性和烟雾操作</details>
<详情>
<summary><b>🧪 端到端协议验证</b></summary>
与真实客户端验证这两个协议:```bash
npm run test:protocols:e2e
这验证了:
- MCP SDK客户端连接/列表/调用
- A2A发现/发送/流/获取/取消
- 在 MCP 审计和 A2A 任务管理 API 中交叉检查数据
<详情>
Dashboard → Providers → Connect Claude Code
→ OAuth login → Auto token refresh
→ 5-hour + weekly quota tracking
Models:
cc/claude-opus-4-6
cc/claude-sonnet-4-5-20250929
cc/claude-haiku-4-5-20251001
**专业提示:**使用 Opus 来完成复杂的任务,使用 Sonnet 来提高速度。 OmniRoute 跟踪每个模型的配额!### OpenAI Codex (Plus/Pro)
Dashboard → Providers → Connect Codex
→ OAuth login (port 1455)
→ 5-hour + weekly reset
Models:
cx/gpt-5.2-codex
cx/gpt-5.1-codex-max
Codex Account Limit Management (5h + Weekly)
现在,每个 Codex 帐户在“仪表板 -> 提供商”中都有策略切换:
5h(开/关):强制执行 5 小时窗口阈值政策。- “每周”(开/关):强制执行每周窗口阈值政策。
- 阈值行为:当启用的窗口达到 >=90% 使用率时,将跳过该帐户。
- 轮换行为:OmniRoute 自动路由到下一个符合条件的 Codex 帐户。
- 重置行为:当提供商“resetAt”时间过去后,该帐户将自动再次符合资格。
应用场景:
5h ON+Weekly ON:当任一窗口达到阈值时,帐户将被跳过。5h OFF+Weekly ON:只有每周使用才能阻止帐户。5h ON+Weekly OFF:仅使用 5 小时即可冻结帐户。resetAt通过:帐户自动重新进入轮换(无需手动重新启用)。### Gemini CLI (FREE 180K/month!)
Dashboard → Providers → Connect Gemini CLI
→ Google OAuth
→ 180K completions/month + 1K/day
Models:
gc/gemini-3-flash-preview
gc/gemini-2.5-pro
**最超值:**巨大的免费套餐!在付费等级之前使用此功能。### GitHub Copilot
Dashboard → Providers → Connect GitHub
→ OAuth via GitHub
→ Monthly reset (1st of month)
Models:
gh/gpt-5
gh/claude-4.5-sonnet
gh/gemini-3.1-pro-preview
<详情>
- 注册:build.nvidia.com
- 获取免费 API 密钥(包含 1000 个推理积分)
- 仪表板 → 添加提供商 → NVIDIA NIM:
- API 密钥:
nvapi-your-key
- API 密钥:
型号:nvidia/llama-3.3-70b-instruct、nvidia/mistral-7b-instruct 以及 50 多个型号
**专业提示:**OpenAI 兼容 API — 与 OmniRoute 的格式翻译无缝协作!### DeepSeek
- 注册:platform.deepseek.com
- 获取API密钥
- 仪表板 → 添加提供商 → DeepSeek
模型:deepseek/deepseek-chat、deepseek/deepseek-coder### Groq (Free Tier Available!)
- 注册:console.groq.com
- 获取API密钥(包括免费套餐)
- 仪表板 → 添加提供商 → Groq
型号:groq/llama-3.3-70b、groq/mixtral-8x7b
**专业提示:**超快速推理 - 最适合实时编码!### OpenRouter (100+ Models)
- 注册:openrouter.ai
- 获取API密钥
- 仪表板 → 添加提供商 → OpenRouter
**模型:**通过单个 API 密钥访问来自所有主要提供商的 100 多个模型。
仪表板行为:OpenRouter 模型通过可用模型进行管理。手动添加、导入和自动同步都会更新同一列表。
<详情>
1、注册:【智普AI】(https://open.bigmodel.cn/) 2. 从 Coding Plan 获取 API 密钥 3. 仪表板 → 添加 API 密钥:
- 提供者:
glm - API 密钥:
你的密钥
使用:glm/glm-4.7
**专业提示:**Coding Plan 以 1/7 的成本提供 3× 配额!每天上午 10:00 重置。### MiniMax M2.1 (5h reset, $0.20/1M)
- 注册:MiniMax
- 获取API密钥
- 仪表板 → 添加 API 密钥
使用:minimax/MiniMax-M2.1
**专业提示:**长上下文的最便宜选择(1M 代币)!### Kimi K2 ($9/month flat)
1.订阅:【Moonshot AI】(https://platform.moonshot.ai/) 2. 获取API密钥 3. 仪表板 → 添加 API 密钥
使用:kimi/kimi-latest
**专业提示:**1000 万个代币固定为 9 美元/月 = 0.90 美元/100 万个有效成本!
<详情>
Dashboard → Connect Qoder
→ Qoder OAuth login
→ Unlimited usage
Models:
if/kimi-k2-thinking
if/qwen3-coder-plus
if/glm-4.7
if/minimax-m2
if/deepseek-r1
Qwen (4 FREE models via Device Code)
Dashboard → Connect Qwen
→ Device code authorization
→ Unlimited usage
Models:
qw/qwen3-coder-plus
qw/qwen3-coder-flash
Kiro (Claude FREE)
Dashboard → Connect Kiro
→ AWS Builder ID or Google/GitHub
→ Unlimited usage
Models:
kr/claude-sonnet-4.5
kr/claude-haiku-4.5
<详情>
Dashboard → Combos → Create New
Name: premium-coding
Models:
1. cc/claude-opus-4-6 (Subscription primary)
2. glm/glm-4.7 (Cheap backup, $0.6/1M)
3. minimax/MiniMax-M2.1 (Cheapest fallback, $0.20/1M)
Use in CLI: premium-coding
Example 2: Free-Only (Zero Cost)
Name: free-combo
Models:
1. gc/gemini-3-flash-preview (180K free/month)
2. if/kimi-k2-thinking (unlimited)
3. qw/qwen3-coder-plus (unlimited)
Cost: $0 forever!
<详情>
Settings → Models → Advanced:
OpenAI API Base URL: http://localhost:20128/v1
OpenAI API Key: [from OmniRoute dashboard]
Model: cc/claude-opus-4-6
Claude Code
使用仪表板中的CLI Tools页面进行一键配置,或手动编辑 ~/.claude/settings.json。### Codex CLI
export OPENAI_BASE_URL="http://localhost:20128"
export OPENAI_API_KEY="your-omniroute-api-key"
codex "your prompt"
OpenClaw
选项 1 — 仪表板(推荐):``` Dashboard → CLI Tools → OpenClaw → Select Model → Apply
**选项 2 — 手动:**编辑 `~/.openclaw/openclaw.json`:```json
{
"models": {
"providers": {
"omniroute": {
"baseUrl": "http://127.0.0.1:20128/v1",
"apiKey": "sk_omniroute",
"api": "openai-completions"
}
}
}
}
**注意:**OpenClaw 仅适用于本地 OmniRoute。使用
127.0.0.1而不是localhost以避免 IPv6 解析问题。### Cline / Continue / RooCode
Settings → API Configuration:
Provider: OpenAI Compatible
Base URL: http://localhost:20128/v1
API Key: [from OmniRoute dashboard]
Model: if/kimi-k2-thinking
OpenCode
**第 1 步:**添加 OmniRoute 作为自定义提供程序:```bash opencode /connect
Select "Other" → Enter ID: "omniroute" → Enter your OmniRoute API key
**第 2 步:**在项目根目录中创建/编辑 `opencode.json`:```json
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"omniroute": {
"npm": "@ai-sdk/openai-compatible",
"name": "OmniRoute",
"options": {
"baseURL": "http://localhost:20128/v1"
},
"models": {
"cc/claude-sonnet-4-20250514": { "name": "Claude Sonnet 4" },
"gg/gemini-2.5-pro": { "name": "Gemini 2.5 Pro" },
"if/kimi-k2-thinking": { "name": "Kimi K2 (Free)" }
}
}
}
}
**步骤3:**在OpenCode中选择模型:```bash /models
Select any OmniRoute model from the list
>**提示:**将 OmniRoute `/v1/models` 端点中可用的任何模型添加到 `models` 部分。使用 OmniRoute 仪表板中的“provider/model-id”格式。</details>
---
## 故障排除
<详情>
<summary><b>单击展开故障排除指南</b></summary>
**“语言模型未提供消息”**
- 提供商配额耗尽 → 检查仪表板配额跟踪器
- 解决方案:使用组合回退或切换到更便宜的层
**速率限制**
- 订阅配额耗尽 → 回退到 GLM/MiniMax
- 添加组合:`cc/claude-opus-4-6 → glm/glm-4.7 → if/kimi-k2-thinking`
**OAuth 令牌已过期**
- 由 OmniRoute 自动刷新
- 如果问题仍然存在:仪表板 → 提供商 → 重新连接
**成本高**
- 在仪表板 → 成本中检查使用情况统计数据
- 将主要模型切换为 GLM/MiniMax
- 使用免费层(Gemini CLI、Qoder)执行非关键任务
**仪表板/API端口错误**
- `PORT` 是规范的基本端口(默认情况下是 API 端口)
- `API_PORT` 仅覆盖 OpenAI 兼容的 API 监听器
- `DASHBOARD_PORT` 仅覆盖仪表板/Next.js 监听器
- 将“NEXT_PUBLIC_BASE_URL”设置为您的仪表板/公共 URL(用于 OAuth 回调)
**云同步错误**
- 验证“BASE_URL”指向您正在运行的实例
- 验证“CLOUD_URL”指向您预期的云端点
- 保持“NEXT_PUBLIC_*”值与服务器端值一致
**首次登录无法使用**
- 检查“.env”中的“INITIAL_PASSWORD”
- 如果未设置,后备密码为“123456”
**没有请求日志**
- 请求工件作为每个请求的一个 JSON 文件写入“DATA_DIR/call_logs/”
- 如果您需要详细的每阶段有效负载,请从仪表板 → 日志 → 请求日志启用管道捕获
- 如果您还希望应用程序控制台日志记录在“logs/application/app.log”中,请设置“APP_LOG_TO_FILE=true”
- 根据需要调整`APP_LOG_MAX_FILE_SIZE`、`APP_LOG_RETENTION_DAYS`、`APP_LOG_MAX_FILES`和`CALL_LOG_MAX_ENTRIES`
**连接测试显示 OpenAI 兼容提供商“无效”**
- 许多提供商不公开“/models”端点
- OmniRoute v1.0.6+ 包括通过聊天完成进行后备验证
- 确保基本 URL 包含“/v1”后缀### 🔐 OAuth on a Remote Server
<a name="oauth-on-a-remote-server"></a>
<a name="oauth-em-servidor-remoto"></a>
>**⚠️ 对于在 VPS、Docker 或任何远程服务器上运行 OmniRoute 的用户来说很重要**#### Why does Antigravity / Gemini CLI OAuth fail on remote servers?
**Antigravity**和**Gemini CLI**提供商使用**Google OAuth 2.0**。 Google 要求 OAuth 流程中的“redirect_uri”与应用的 Google Cloud Console 中预先注册的 URI 之一完全匹配。
OmniRoute 中捆绑的 OAuth 凭据仅针对“localhost”注册**。当您访问远程服务器上的 OmniRoute(例如“https://omniroute.myserver.com”)时,Google 将拒绝身份验证:```
Error 400: redirect_uri_mismatch
Solution: Configure your own OAuth credentials
您需要使用服务器的 URI 在 Google Cloud Console 中创建OAuth 2.0 客户端 ID。#### Step-by-step
1.打开 Google Cloud Console
转到:https://console.cloud.google.com/apis/credentials
2.创建新的 OAuth 2.0 客户端 ID
- 单击**“+ 创建凭据”→“OAuth 客户端 ID”**
- 应用程序类型:“Web 应用程序”
- 名称:任何您喜欢的名称(例如“OmniRoute Remote”)
3.添加授权重定向 URI
在**“授权重定向 URI”**字段中,添加:``` https://your-server.com/callback
> 将 `your-server.com` 替换为您的服务器的域或 IP(如果需要,请包括端口,例如 `http://45.33.32.156:20128/callback`)。
**4.保存并复制凭据**
创建后,Google 将显示**Client ID**和**Client Secret**。
**5.设置环境变量**
在你的 `.env` (或 Docker 环境变量)中:```bash
# For Antigravity:
ANTIGRAVITY_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com
ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-your-secret
# For Gemini CLI:
GEMINI_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com
GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret
GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret
6。重新启动 OmniRoute```bash
npm:
npm run dev
Docker:
docker restart omniroute
**7.尝试重新连接**
仪表板 → 提供商 → 反重力(或 Gemini CLI) → OAuth
Google 现在将正确重定向到“https://your-server.com/callback”。---
#### Temporary workaround (without custom credentials)
如果您现在不想设置自己的凭据,您仍然可以使用**手动 URL 流程**:
1.OmniRoute打开Google授权URL
2.授权后,Google尝试重定向到`localhost`(在远程服务器上失败)
3.**从浏览器的地址栏中复制完整的 URL**(即使页面未加载)
4. 将该 URL 粘贴到 OmniRoute 连接模式中显示的字段中
5. 单击**“连接”**
> 这是有效的,因为无论是否加载重定向页面,URL 中的授权代码都是有效的。---
<详情>
<summary><b>🇧🇷 葡萄牙语版本</b></summary>#### Por que o OAuth do Antigravity / Gemini CLI falha em servidores remotos?
验证**反重力**和**Gemini CLI**使用**Google OAuth 2.0**进行验证。 O Google exige que a `redirect_uri` usada no Fluxo OAuth seja**exatamente**uma das URIs pre-cadastradas no Google Cloud Console do applicativo.
作为凭证,OAuth 不支持 OmniRoute estão cadastradas**apenas para `localhost`**。您可以通过远程服务访问 OmniRoute(例如:`https://omniroute.meuservidor.com`),或通过 Google 访问 autenticação com:```
Error 400: redirect_uri_mismatch
Solução: Configure suas próprias credenciais OAuth
请注意,OAuth 2.0 客户端 ID不是 Google Cloud Console com,而是 seu 服务器的 URI。#### Passo a passo
1.访问 Google Cloud Console
阿布拉:https://console.cloud.google.com/apis/credentials
2.呐喊 OAuth 2.0 客户端 ID
- 派系**“+ 创建凭证”→“OAuth 客户端 ID”**
- 应用类型:“Web 应用程序”
- 名称:escolha qualquer nome(例如:
OmniRoute Remote)
3. Adicione 作为授权重定向 URI
没有坎波**“授权重定向 URI”**,adicione:``` https://seu-servidor.com/callback
> 将 `seu-servidor.com` 替换为 seu 服务的 IP 地址(包括必要的端口,例如:`http://45.33.32.156:20128/callback`)。
**4.保存电子副本作为凭据**
请通过 Google 查询**客户端 ID**和**客户端秘密**。
**5.配置为环境变量**
没有 seu `.env`(或 Docker 环境变量):```bash
# Para Antigravity:
ANTIGRAVITY_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com
ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret
# Para Gemini CLI:
GEMINI_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com
GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret
GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret
6。 Reinicie 或 OmniRoute```bash
Se usando npm:
npm run dev
Se usando Docker:
docker restart omniroute
**7.新连接的帐篷**
仪表板 → 提供商 → 反重力(ou Gemini CLI) → OAuth
Agora 或 Google 重定向“https://seu-servidor.com/callback”和验证功能。---
#### Workaround temporário (sem configurar credenciais próprias)
请参阅我们的官方文档,了解如何使用 Fluxo**URL 手册**:
1. OmniRoute 是 Google 授权的 URL
2. 点击“localhost”,通过 Google 重新定向(que falha no server remoto)
3.**复制 URL 完整**da barra de endereço do seu browser (mesmo que a página não carregue)
4. 可以使用 OmniRoute 连接模式中的 URL
5. 拉帮结**“连接”**
> 这是一个解决方法,可以通过 URL 的自动控制功能来进行重定向,但不可以。</details>
---
</details>
## 🛠️ Tech Stack
<详情>
<summary><b>点击展开技术堆栈详细信息</b></summary>
-**运行时**:Node.js 18–22 LTS(⚠️ Node.js 24+**不支持**- `better-sqlite3` 本机二进制文件不兼容)
-**语言**:TypeScript 5.9 —**跨 `src/` 和 `open-sse/` 的 100% TypeScript**(自 v2.0 以来核心模块中的“any”为零)
-**框架**:Next.js 16 + React 19 + Tailwind CSS 4
-**数据库**:LowDB (JSON) + SQLite(域状态 + 代理日志 + MCP 审核 + 路由决策)
-**模式**:Zod(MCP 工具 I/O 验证、API 合约)
-**协议**:MCP (stdio/HTTP) + A2A v0.3 (JSON-RPC 2.0 + SSE)
-**流式传输**:服务器发送的事件 (SSE)
-**Auth**:OAuth 2.0 (PKCE) + JWT + API 密钥 + MCP 范围授权
-**测试**:Node.js 测试运行器 + Vitest(900 多个测试,包括单元、集成、E2E)
-**CI/CD**:GitHub Actions(自动 npm 发布 + Docker Hub 发布)
-**网站**:[omniroute.online](https://omniroute.online)
-**包**:[npmjs.com/package/omniroute](https://www.npmjs.com/package/omniroute)
-**Docker**:[hub.docker.com/r/diegosouzapw/omniroute](https://hub.docker.com/r/diegosouzapw/omniroute)
-**弹性**:断路器、指数退避、防雷群、TLS 欺骗、自动组合自愈</details>
---
## 文档
|文件|描述 |
| ---------------------------------------------------------- | --------------------------------------------------- |
| [用户指南](docs/USER_GUIDE.md) |提供程序、组合、CLI 集成、部署 |
| [API参考](docs/API_REFERENCE.md) |所有端点及示例 |
| [MCP 服务器](open-sse/mcp-server/README.md) | 16 个 MCP 工具、IDE 配置、Python/TS/Go 客户端 |
| [A2A 服务器](src/lib/a2a/README.md) | JSON-RPC 2.0 协议、技能、流媒体、任务管理 |
| [自动组合引擎](docs/auto-combo.md) | 6 因素评分、模式包、自我修复 |
| [疑难解答](docs/TROUBLESHOOTING.md) |常见问题及解决办法 |
| [架构](docs/ARCHITECTURE.md) |系统架构和内部结构|
| [贡献](CONTRIBUTING.md) |开发设置和指南 |
| [OpenAPI 规范](docs/openapi.yaml) | OpenAPI 3.0 规范 |
| [安全策略](SECURITY.md) |漏洞报告和安全实践|
| [虚拟机部署](docs/VM_DEPLOYMENT_GUIDE.md) |完整指南:VM + nginx + Cloudflare 设置 |
| [功能图库](docs/FEATURES.md) |带有屏幕截图的可视化仪表板导览 |
| [发布清单](docs/RELEASE_CHECKLIST.md) |预发布验证步骤 |---
## 🗺️ Roadmap
OmniRoute 在多个开发阶段规划了**210 多项功能**。以下是关键领域:
|类别 |计划的功能|亮点|
| -------------------------------------- | ---------------- | ------------------------------------------------------------------------------------------ |
| 🧠**路由和智能**| 25+ |最低延迟路由、基于标签的路由、配额预检、P2C 账户选择 |
| 🔒**安全与合规性**| 20+ | SSRF 强化、凭证隐藏、每个端点的速率限制、管理密钥范围 |
| 📊**可观察性**| 15+ | OpenTelemetry 集成、实时配额监控、每个模型的成本跟踪 |
| 🔄**提供商集成**| 20+ |动态模型注册表、提供商冷却时间、多帐户 Codex、Copilot 配额解析 |
| ⚡**性能**| 15+ |双缓存层、提示缓存、响应缓存、流式保活、批处理 API |
| 🌐**生态系统**| 10+ | WebSocket API、配置热重载、分布式配置存储、商业模式 |### 🔜 Coming Soon
- 🔗**OpenCode 集成**— 对 OpenCode AI 编码 IDE 的本机提供商支持
- 🔗**TRAE 集成**— 全面支持 TRAE AI 开发框架
- 📦**Batch API**— 批量请求的异步批处理
- 🎯**基于标签的路由**— 基于自定义标签和元数据路由请求
- 💰**最低成本策略**— 自动选择最便宜的可用提供商
> 📝 完整的功能规格可在 [`docs/new-features/`](docs/new-features/) 中找到(217 个详细规格)---
## 👥 Contributors
[](https://github.com/diegosouzapw/OmniRoute/graphs/contributors)
### How to Contribute
1. 分叉存储库
2. 创建您的功能分支(`git checkout -b feature/amazing-feature`)
3. 提交您的更改(`git commit -m '添加惊人的功能'`)
4.推送到分支(`git push origin feature/amazing-feature`)
5. 发起拉取请求
请参阅 [CONTRIBUTING.md](CONTRIBUTING.md) 了解详细指南。### Releasing a New Version
```bash
# Create a release — npm publish happens automatically
gh release create v2.0.0 --title "v2.0.0" --generate-notes
📊 Star History
Stargazers over time
🙏 Acknowledgments
特别感谢**decolua的9router**— 激发此分支的原始项目。 OmniRoute 建立在这个令人难以置信的基础上,具有附加功能、多模式 API 和完整的 TypeScript 重写。
特别感谢**CLIProxyAPI**— 启发此 JavaScript 移植的原始 Go 实现。---
许可证
MIT 许可证 - 有关详细信息,请参阅[许可证](许可证)。---









