OmniRoute 是 TypeScript/Next.js 写的本地 OpenAI 兼容网关,把 Claude Code、Codex CLI、Cursor、Cline 等编程工具发出的请求按订阅→API Key→低价→免费四级 Combo 自动路由到 160+ Provider,附带 Dashboard、MCP Server、A2A 协议端、Electron 桌面端。
来源:README + package.json + docs/ARCHITECTURE.md 查看 GitHub 仓库 →OmniRoute 之所以受关注,是因为它把过去散落在 ClawRouter、9router、各种 OAuth 代理脚本里的能力做成了一个可上手的本地服务。开发者只要 npm install -g omniroute 就能拿到 Dashboard、MCP Server 和一份 4 级回退 Combo,把 Kiro、Qoder、Qwen、Gemini CLI 等免费额度连成「$0/月」工作流,对国内用户和预算紧的开发者来说替代付费订阅的吸引力很大。最近一年节奏明显提速:v3.6 引入 WebSocket Bridge、Sync Token、Hybrid Token Counting,v3.7 直接把 Codex GPT-5.5、CrofAI 加进默认 Provider 库,issue 和 PR 都活跃。仓库 ★2.7K、Fork 408、29 个 MCP 工具、41 种界面语言,叠加 Docker 多架构与 Electron 桌面端,把「LLM 网关」这个赛道从命令行工具卷成了带运维面板的产品。
来源:README + GitHub Releases + package.json本地 Next.js 服务把 OpenAI Chat、Anthropic Messages、Gemini、OpenAI Responses 四种请求格式以 OpenAI 为中转 hub 互转,统一暴露 /v1/chat/completions、/v1/messages、/v1/responses、/v1/embeddings、/v1/images/generations、/v1/audio/* 等端点。覆盖响应清洗(去除 x_groq、usage_breakdown 等 SDK 不识别字段)、developer→system 角色归一、
Combo 由「subscription→api key→cheap→free」四档组成,运行时按 priority、weighted、fill-first、round-robin、P2C、cost-optimized、context-relay 等 13 种策略选择具体 Provider+Model+Account 三元组。Quota-aware P2C 会综合配额余量、回退冷却、最近错误、连续命中次数挑账号;context-relay 在跨账号切换时通过 contextHandoff 服务注入摘要保留对话上下文。
来源:README + docs/ARCHITECTURE.md (open-sse/services/combo.ts, accountSelector.ts, contextHandoff.ts)内建 13 个 OAuth Provider 模块(claude、codex、gemini、qwen、qoder、kiro、cursor、antigravity、kilocode、cline、kimi-coding、github、gemini-cli),实现后台自动 Token Refresh、PKCE 流程、设备码、JWT 提取多账号。配套支持局域网/远程的 redirect_uri 私网检测、Nginx 反向代理下用 window.location.origin 修正、Round-robin 多账号 + JWT/ID Token 抽取,解决 unsupported_country_region_territory 与 redirect_uri_mismatch。
来源:README + docs/ARCHITECTURE.md (src/lib/oauth/providers/, open-sse/services/tokenRefresh.ts)请求会先经过 Per-connection request bucket 限流,遇到可重试错误进入 Connection Cooldown,遵守上游 Retry-After。多账号同时冷却时支持服务端 Wait-For-Cooldown(可配置 maxRetries / maxRetryWaitSec)等下一个可用窗口;只有在回退链耗尽且整体仍失败时才升级到 Provider 级断路器。配 Anti-thundering-herd mutex+semaphore 防止重试风暴,所有状态写到 domain_circuit_breakers 表实现冷启动恢复。
来源:docs/ARCHITECTURE.md (open-sse/services/rateLimitManager.ts, circuitBreaker.ts, src/sse/services/cooldownAwareRetry.ts)omniroute --mcp 用 stdio/SSE/Streamable HTTP 三种 transport 暴露 29 个工具(健康检查、Combo CRUD、配额查询、缓存管理、Memory/Skills 等),写 SQLite audit 表,10 档 Scope 控制最小权限。同时跑 A2A Server:POST /a2a 走 JSON-RPC 2.0 的 message/send、message/stream、tasks/get、tasks/cancel,配 /.well-known/agent.json Agent Card;MCP 与 A2A 状态卡片直接挂在 /dashboard/endpoint 页。
来源:README + docs/ARCHITECTURE.md (open-sse/mcp-server/*, schemas/a2a.ts)基于 Next.js App Router + React 19 + Recharts 实现 Provider 列表、Combo 步骤化构建器、Translator Playground(含 Chat Tester、Test Bench、Live Monitor 四种调试模式)、Health 页(断路器、冷却、p50/p95/p99 延迟)、Logs 页(Request/Proxy/Audit/Console 四 Tab),并内建 LLM Eval 框架(金集 + exact/contains/regex/custom 4 种判分)。
来源:README + docs/ARCHITECTURE.md (src/app/(dashboard)/dashboard/*)除聊天补全外,还落地 6 Provider/9+ 模型的 /v1/embeddings、10+ Provider/20+ 模型的 /v1/images/generations、ComfyUI+SD WebUI 的视频/音乐生成、Whisper+Nvidia NIM+ElevenLabs 的语音转写与合成、5 Provider 的 /v1/search、/v1/moderations、/v1/rerank。全部走同一份账号管理、回退、Token 计量管线。
来源:README + docs/ARCHITECTURE.md (open-sse/handlers/{embeddings,imageGeneration,audioSpeech,...})本地 API Key 走 HMAC(API_KEY_SECRET),按 Provider+Model 通配限定可访问范围;所有出站 fetch 经 outboundUrlGuard 拦截私网/本机/Link-local 段,URL_GUARD_BLOCKED 走 422 + 审计落库;登录页用 JWT_SECRET 签名 cookie,Settings 端运行时用 Zod 校验环境变量;CSRF + 速率限制 + IP 白/黑名单覆盖 Dashboard 路由。
来源:docs/ARCHITECTURE.md (src/shared/network/outboundUrlGuard.ts, runtimeEnv.ts, providerAudit.ts)整体是一个 Next.js 16 单进程:路由层用 App Router 在 src/app/api/v1/* 暴露 OpenAI 兼容 API,在 src/app/api/* 暴露管理 API,next.config.mjs 把 /v1/* 重写到 /api/v1/*。核心 SSE 与翻译逻辑被拆到 open-sse/ 这个 npm workspace 包(@omniroute/open-sse),通过 transpilePackages 引用:translator/ 注册请求和响应转换器,executors/ 一个文件一个 Provider 实现 BaseExecutor 策略模式(DefaultExecutor 默认覆盖通用 OpenAI 兼容 Provider,CodexExecutor、KiroExecutor、CursorExecutor、AntigravityExecutor 等做特殊认证和协议处理),handlers/ 编排 chatCore、embeddings、imageGeneration 等业务流。所有状态写到 better-sqlite3 的 storage.sqlite(providerConnections、combos、apiKeys、domain_fallback_chains、domain_circuit_breakers、context_handoffs 等 26 个模块),WAL 模式 + 启动迁移 + 旧 JSON→SQLite 兼容。前端 Dashboard 用 React 19 + Tailwind 4 + Recharts + Zustand + Monaco Editor。可选 MCP Server(stdio/SSE/HTTP 三种 transport)、A2A JSON-RPC 端、Electron 桌面壳、Cloudflare Quick Tunnel 共用同一个核心。整体偏「单体路由器+面板」一体化设计:好处是开箱即用、状态都在本地;潜在过度设计的地方在于把 Memory、Skills、A2A、MCP、Eval、Sync Token、WebSocket Bridge 等都塞进同一个 Next.js 进程,模块边界靠目录而非真正的服务隔离,对单人开发者足够,但对要做多租户、横向扩展的团队来说,未来很可能需要把 open-sse 拆成独立可执行进程。
来源:docs/ARCHITECTURE.md + tree.txt + package.json中心为项目本体,内环 = 核心功能模块,外环 = 关键技术依赖;按 deep.json 中的 core_features 与 tech_stack.key_deps 自动生成
better-sqlite3(本地 SQLite,WAL 模式)undici + wreq-js + tls-client-node(出…@modelcontextprotocol/sdk(MCP Server…jose + bcryptjs + selfsigned(JWT、密码、…zod(运行时环境变量与请求 schema 校验)zustand + recharts + monaco-editor +…pino + pino-pretty(结构化日志)next-intl + 41 种语言包(i18n)1) 已经在用 Claude Code / Codex CLI / Gemini CLI 的开发者,把订阅额度榨干后自动 fallback 到 GLM、Kimi、MiniMax 这种低价 API,再兜底到 Qoder、Kiro、Qwen 等免费档,避免「订阅周限到了就停工」。 2) 国内或受限地区用户,需要本地部署、配置 SOCKS5/HTTP 代理、走 OAuth 还能正确处理 unsupported_country_region_territory 的网关。 3) 个人用户搭「$0/月编程栈」:把 Kiro+Qoder+Qwen+Gemini CLI+Cloudflare AI+NVIDIA NIM 等 11 个免费 Provider 串成一个 Combo,纯免费跑 Cursor / Cline / OpenClaw。 4) 团队或工作室自部署 Agent ops:通过 MCP Server 暴露 29 个运维工具给 Claude Code/Codex 使用,配 A2A 跑长 Task,把 Combo 切换、断路器复位、配额查看做成 Agent 操作。
来源:README + 综合分析v3.7.1(2026-04-27 发布):Codex Provider 新增 GPT-5.5(1.05M 上下文 + 工具调用 + 视觉 + 推理,cx/openai 双前缀加价目);新增 omniroute reset-encrypted-columns CLI 把 provider_connections 中 api_key/access_token/refresh_token/id_token 加密列重置(修复 #1622);i18n 增加 9 种语言包(孟加拉/波斯/古吉拉特/印尼/马拉地/斯瓦希里/泰米尔/泰卢固/乌尔都),合计 41 种。同时修复 GitHub Copilot 单模型 429 误锁整连接、OpenCode 配置保存破坏 MCP/自定义 Provider/注释、API Key 复制误用掩码等。上一版 v3.7.0(2026-04-26)引入 ChatGPT Web 图像生成 + 缓存、CrofAI 内建 Provider、OpenCode Zen/Go logo。
来源:GitHub ReleasesOmniRoute 当前是开源 LLM 网关里把「免费/低价路由」做得最完整、运维面板最齐的一个。如果你正在用 Claude Code、Codex CLI、Cursor、Cline 这类 OpenAI/Anthropic 兼容的编程工具,又想把 Anthropic / OpenAI 订阅额度用满后自动 fallback 到 GLM、Kimi、MiniMax、Qoder、Kiro、Gemini CLI,那它确实能让你「永不停工」,特别是配合 4 级 Combo 和 13 种调度策略。建议从 npm 全局安装起步,先在 Dashboard 里跑通 1-2 个 OAuth Provider + 1 个 Combo,再逐步把 MCP、A2A、Eval 这些进阶模块开起来;生产/团队部署优先用 Docker base 镜像并把 DATA_DIR 挂出来,避免 SQLite 数据丢失。不太适合三类人:① 只想要一个最小化、稳定不动的 OpenAI 反代脚本——OmniRoute 的功能矩阵和发版节奏都太密集;② 需要严格合规、不允许伪装 TLS 指纹或绕过区域限制的企业;③ 高 QPS、要做多实例水平扩展的服务化场景,目前架构里冷却/断路器状态依赖单进程 SQLite,上多实例需要自己拆。先试 7 天免费 Combo 跑日常编码,再决定要不要接入到团队内部。
来源:综合分析