Thanks @Junior-HJ! This adds CodeBuddy international (codebuddy-intl / cbai), splitting the CN and intl modules over shared executor, OAuth, usage and token-refresh helpers. Your commits are kept intact. Maintainer fix-up commits on top: restored the 'N AI providers' wording that the count bump had turned into bare numbers in 67 llm.txt files, README alt texts and SVGs; synced the total to 372, since the tip had meanwhile added typesafe without regenerating the reference; typed the two `any` casts in codebuddyDeviceAuth.ts; and regenerated the executor-map and translate-path goldens. The translate-path golden had been generated on win32. Protected surfaces (AGENTS.md, llm.txt) carry the count change only, approved by the owner. Validated: typecheck:core, open-sse typecheck, file-size, t11 any-budget, ESLint, check:docs-all, provider consistency/assets/order/provenance, and 195/195 focused tests across 13 files.
|
|
@ -47,7 +47,7 @@ Repository map and Reference Documentation sections below.
|
|||
|
||||
## Project at a Glance
|
||||
|
||||
**OmniRoute** — unified AI proxy/router. One endpoint, 370 LLM providers, auto-fallback.
|
||||
**OmniRoute** — unified AI proxy/router. One endpoint, 372 LLM providers, auto-fallback.
|
||||
|
||||
| Layer | Location | Purpose |
|
||||
| ------------- | ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@
|
|||
|
||||
# 🚀 OmniRoute — The Free AI Gateway
|
||||
|
||||
<img src="./docs/diagrams/readme-hero.svg" width="100%" alt="OmniRoute — Never stop coding. Every AI tool → 370 providers — 150+ free — through one endpoint. Claude Code, Codex, Cursor, Cline, Copilot & Antigravity into FREE Claude / GPT / Gemini with auto-fallback. RTK + Caveman stacked compression saves 15–95% tokens (~89% avg) — never hit limits. 370 AI providers · 150+ free tiers · ~1.62B free tokens/mo · 19 routing strategies · $0 to start."/>
|
||||
<img src="./docs/diagrams/readme-hero.svg" width="100%" alt="OmniRoute — Never stop coding. Every AI tool → 372 providers — 150+ free — through one endpoint. Claude Code, Codex, Cursor, Cline, Copilot & Antigravity into FREE Claude / GPT / Gemini with auto-fallback. RTK + Caveman stacked compression saves 15–95% tokens (~89% avg) — never hit limits. 372 AI providers · 150+ free tiers · ~1.62B free tokens/mo · 19 routing strategies · $0 to start."/>
|
||||
|
||||
</div>
|
||||
|
||||
|
|
@ -237,7 +237,7 @@ curl http://localhost:20128/v1/chat/completions \
|
|||
|
||||
</div>
|
||||
|
||||
<img src="./docs/diagrams/promise-pillars.svg" width="100%" alt="The Promise — One endpoint and 370 providers. Automatic fallback keeps routing while another healthy target is available. Six pillars: resilient fallback across 370 providers · up to 95% token savings on eligible workloads · $0 to start with 150+ free tiers and 54 recurring/keyless free-forever providers · 36 CLI/agent integrations through one config · OpenAI, Claude, Gemini and Responses API compatibility at /v1 · production controls including circuit breakers, TLS stealth, MCP 110 tools, A2A, memory, guardrails, evals and 39,000+ static test declarations across 5,100+ tracked test files."/>
|
||||
<img src="./docs/diagrams/promise-pillars.svg" width="100%" alt="The Promise — One endpoint and 372 providers. Automatic fallback keeps routing while another healthy target is available. Six pillars: resilient fallback across 372 providers · up to 95% token savings on eligible workloads · $0 to start with 150+ free tiers and 54 recurring/keyless free-forever providers · 36 CLI/agent integrations through one config · OpenAI, Claude, Gemini and Responses API compatibility at /v1 · production controls including circuit breakers, TLS stealth, MCP 110 tools, A2A, memory, guardrails, evals and 39,000+ static test declarations across 5,100+ tracked test files."/>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
|
@ -492,7 +492,7 @@ All **19** strategies — mix & match per combo step:
|
|||
|
||||
</div>
|
||||
|
||||
<img src="./docs/diagrams/comparison-table.svg" width="100%" alt="What sets OmniRoute apart — a dated feature snapshot vs 9router, OpenRouter, CLIProxyAPI and LiteLLM across 13 capabilities. OmniRoute: 370 providers, 150+ free tiers built in, 19 routing strategies, 12-engine token compression, built-in MCP server with 110 tools, A2A agent protocol, persistent memory, guardrails, cloud agents, TLS fingerprint stealth, Desktop/Termux/PWA and 42 i18n UI locales. OmniRoute is MIT-licensed and self-hostable. Competitor capabilities and counts may change; see the linked methodology."/>
|
||||
<img src="./docs/diagrams/comparison-table.svg" width="100%" alt="What sets OmniRoute apart — a dated feature snapshot vs 9router, OpenRouter, CLIProxyAPI and LiteLLM across 13 capabilities. OmniRoute: 372 providers, 150+ free tiers built in, 19 routing strategies, 12-engine token compression, built-in MCP server with 110 tools, A2A agent protocol, persistent memory, guardrails, cloud agents, TLS fingerprint stealth, Desktop/Termux/PWA and 42 i18n UI locales. OmniRoute is MIT-licensed and self-hostable. Competitor capabilities and counts may change; see the linked methodology."/>
|
||||
|
||||
<sub>📊 Full methodology & per-feature detail vs 9router, OpenRouter, CLIProxyAPI & LiteLLM → [`docs/comparison/OMNIROUTE_VS_ALTERNATIVES.md`](docs/comparison/OMNIROUTE_VS_ALTERNATIVES.md)</sub>
|
||||
|
||||
|
|
|
|||
4
changelog.d/features/15173-codebuddy-intl-provider.md
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
# CodeBuddy International (codebuddy-intl) Provider
|
||||
|
||||
Added the CodeBuddy International (`codebuddy.ai`) provider under the `cbai` alias (#15173).
|
||||
Parametrizes the shared CodeBuddy device-auth flow, executor, token refresh, and quota fetcher by realm.
|
||||
|
|
@ -548,14 +548,6 @@
|
|||
"count": 3
|
||||
}
|
||||
},
|
||||
"open-sse/services/usage/codebuddy-cn.ts": {
|
||||
"@typescript-eslint/no-explicit-any": {
|
||||
"count": 2
|
||||
},
|
||||
"@typescript-eslint/no-unused-vars": {
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
"open-sse/services/usage/github.ts": {
|
||||
"@typescript-eslint/no-unused-vars": {
|
||||
"count": 1
|
||||
|
|
@ -1462,11 +1454,6 @@
|
|||
"count": 1
|
||||
}
|
||||
},
|
||||
"src/lib/oauth/providers/codebuddy-cn.ts": {
|
||||
"@typescript-eslint/no-unused-vars": {
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
"src/lib/oauth/providers/codex.ts": {
|
||||
"@typescript-eslint/no-unused-vars": {
|
||||
"count": 1
|
||||
|
|
|
|||
|
|
@ -17,13 +17,13 @@ It provides a single OpenAI-compatible endpoint (`/v1/*`) and routes traffic acr
|
|||
|
||||
Core capabilities:
|
||||
|
||||
- OpenAI-compatible API surface for CLI/tools (355 providers, 108 executors)
|
||||
- OpenAI-compatible API surface for CLI/tools (372 providers, 148 executors)
|
||||
- Request/response translation across provider formats
|
||||
- Model combo fallback (multi-model sequence)
|
||||
- Structured combo steps (`provider + model + connection`) with runtime ordering by `compositeTiers`
|
||||
- Account-level fallback (multi-account per provider)
|
||||
- Quota preflight and quota-aware P2C account selection in the main chat path
|
||||
- OAuth + API-key provider connection management (22 OAuth provider modules)
|
||||
- OAuth + API-key provider connection management (27 OAuth provider modules)
|
||||
- Embedding generation via `/v1/embeddings` (18 providers)
|
||||
- Image generation via `/v1/images/generations` (10+ providers, 20+ models)
|
||||
- Audio transcription via `/v1/audio/transcriptions` (18 providers)
|
||||
|
|
@ -321,10 +321,11 @@ Domain layer modules:
|
|||
- Eval runner: `src/lib/evals/evalRunner.ts`
|
||||
- Domain state persistence: `src/lib/db/domainState.ts` — SQLite CRUD for fallback chains, budgets, cost history, lockout state, circuit breakers
|
||||
|
||||
OAuth provider modules (22 individual files under `src/lib/oauth/providers/`):
|
||||
OAuth provider modules (27 individual files under `src/lib/oauth/providers/`):
|
||||
|
||||
- Registry index: `src/lib/oauth/providers/index.ts`
|
||||
- Individual providers: `agy.ts`, `antigravity.ts`, `claude.ts`, `cline.ts`, `codebuddy-cn.ts`, `codex.ts`, `cursor.ts`, `devin-desktop.ts`, `ghe-copilot.ts`, `github.ts`, `gitlab-duo.ts`, `grok-cli-oauth.ts`, `grok-cli.ts`, `kilocode.ts`, `kimi-coding.ts`, `kiro.ts`, `openference.ts`, `qoder.ts`, `trae.ts`, `xai-oauth.ts`, `zed-hosted.ts`, `zed.ts`
|
||||
- Individual providers: `agy.ts`, `antigravity.ts`, `claude.ts`, `cline.ts`, `codebuddy-cn.ts`, `codebuddy-intl.ts`, `codex.ts`, `cursor.ts`, `devin-desktop.ts`, `ghe-copilot.ts`, `github.ts`, `gitlab-duo.ts`, `grok-cli-oauth.ts`, `grok-cli.ts`, `kilocode.ts`, `kimi-coding.ts`, `kiro.ts`, `muse-code.ts`, `openference.ts`, `qoder.ts`, `trae.ts`, `workbuddy.ts`, `xai-oauth.ts`, `zed-hosted.ts`, `zed.ts`
|
||||
- Shared helpers: `codebuddyDeviceAuth.ts` (CodeBuddy CN/intl device flow), `museCodeDeviceResponse.ts`
|
||||
- Thin wrapper: `src/lib/oauth/providers.ts` — re-exports from individual modules
|
||||
|
||||
## 5) Embedded Services (v3.8.4)
|
||||
|
|
|
|||
|
|
@ -479,7 +479,7 @@ open-sse/
|
|||
|
||||
### 4.2 `open-sse/executors/`
|
||||
|
||||
108 provider executors, each extending `BaseExecutor` (`base.ts`):
|
||||
148 provider executors, each extending `BaseExecutor` (`base.ts`):
|
||||
|
||||
`antigravity`, `azure-openai`, `blackbox-web`, `cliproxyapi`,
|
||||
`chatgpt-web-codex`, `cloudflare-ai`, `codex`, `commandCode`, `cursor`, `default`, `devin-cli`,
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
<svg viewBox="0 0 1200 350" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="Animated terminal demoing the OmniRoute CLI: omniroute providers list (370 providers registered, anthropic, codex, glm, kimi shown active), omniroute combo list (always-on priority, cost-saver, fusion-panel, context-relay) and omniroute health (healthy, 18412 requests in 24h, p95 412ms, circuit breakers 24 closed, 1 half-open, 0 open), cycling over 86 top-level commands: providers, oauth, keys, combo, nodes, models, cache, compression, cost, usage, quota, health, resilience, telemetry, logs, audit, mcp, a2a, cloud, memory, skills, eval, doctor, repl, tunnel, backup, sync, webhooks, policy, pricing, translator, simulate and more.">
|
||||
<svg viewBox="0 0 1200 350" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="Animated terminal demoing the OmniRoute CLI: omniroute providers list (372 providers registered, anthropic, codex, glm, kimi shown active), omniroute combo list (always-on priority, cost-saver, fusion-panel, context-relay) and omniroute health (healthy, 18412 requests in 24h, p95 412ms, circuit breakers 24 closed, 1 half-open, 0 open), cycling over 86 top-level commands: providers, oauth, keys, combo, nodes, models, cache, compression, cost, usage, quota, health, resilience, telemetry, logs, audit, mcp, a2a, cloud, memory, skills, eval, doctor, repl, tunnel, backup, sync, webhooks, policy, pricing, translator, simulate and more.">
|
||||
<desc>Compact animated terminal cycling three real OmniRoute CLI commands with a typewriter effect and a scrolling subcommand ticker; the first frame shows the completed providers-list screen.</desc>
|
||||
<defs><clipPath id="tickerClip"><rect x="12" y="304" width="1176" height="40"/></clipPath><clipPath id="tw0"><rect x="64" y="46" height="26" width="0"><animate attributeName="width" calcMode="discrete" values="0;31;61;92;122;153;184;214;245;245" keyTimes="0;0.012;0.018;0.024;0.030;0.036;0.042;0.048;0.054;1" dur="18s" repeatCount="indefinite"/></rect></clipPath><clipPath id="tw1"><rect x="64" y="46" height="26" width="0"><animate attributeName="width" calcMode="discrete" values="0;26;51;76;102;128;153;178;204;204" keyTimes="0;0.348;0.351;0.357;0.363;0.369;0.375;0.381;0.387;1" dur="18s" repeatCount="indefinite"/></rect></clipPath><clipPath id="tw2"><rect x="64" y="46" height="26" width="0"><animate attributeName="width" calcMode="discrete" values="0;20;41;61;82;102;122;143;163;163" keyTimes="0;0.678;0.684;0.690;0.696;0.702;0.708;0.714;0.720;1" dur="18s" repeatCount="indefinite"/></rect></clipPath></defs>
|
||||
<rect width="1200" height="350" fill="#0d1117"/>
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
|
|
@ -1,4 +1,4 @@
|
|||
<svg viewBox="0 0 1200 780" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="Comparison table: OmniRoute versus 9router, OpenRouter, CLIProxyAPI and LiteLLM across 13 capabilities. OmniRoute is the only one with the full set: 370 providers, 150+ free providers built-in, 20 routing strategies, 12-engine token compression, a built-in MCP server with 110 tools, A2A protocol, persistent memory, guardrails, cloud agents, TLS fingerprint stealth, desktop/Termux/PWA, 43 UI locales and 100% MIT self-hosted. 9router has free providers, RTK compression and translation but no MCP, A2A, memory, guardrails, cloud agents or stealth. OpenRouter is a hosted SaaS with 400+ models, guardrails and a hosted MCP but is not self-hosted and lacks A2A, memory, cloud agents and stealth. CLIProxyAPI is a light OAuth proxy with two routing strategies. LiteLLM has 100+ providers, A2A and extensive guardrails but no memory, compression, free tier, stealth or cloud agents.">
|
||||
<svg viewBox="0 0 1200 780" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="Comparison table: OmniRoute versus 9router, OpenRouter, CLIProxyAPI and LiteLLM across 13 capabilities. OmniRoute is the only one with the full set: 372 providers, 150+ free providers built-in, 20 routing strategies, 12-engine token compression, a built-in MCP server with 110 tools, A2A protocol, persistent memory, guardrails, cloud agents, TLS fingerprint stealth, desktop/Termux/PWA, 43 UI locales and 100% MIT self-hosted. 9router has free providers, RTK compression and translation but no MCP, A2A, memory, guardrails, cloud agents or stealth. OpenRouter is a hosted SaaS with 400+ models, guardrails and a hosted MCP but is not self-hosted and lacks A2A, memory, cloud agents and stealth. CLIProxyAPI is a light OAuth proxy with two routing strategies. LiteLLM has 100+ providers, A2A and extensive guardrails but no memory, compression, free tier, stealth or cloud agents.">
|
||||
<desc>Static-header comparison table where each capability row fades in top to bottom; the OmniRoute column is highlighted and shows a check or a leading value in every row, while competitors show a mix of checks, partials and crosses.</desc>
|
||||
<defs>
|
||||
<pattern id="gC" width="32" height="32" patternUnits="userSpaceOnUse"><path d="M 32 0 L 0 0 0 32" fill="none" stroke="#ffffff" stroke-opacity="0.05" stroke-width="1"/></pattern>
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 13 KiB |
|
|
@ -1,4 +1,4 @@
|
|||
<svg viewBox="0 0 1200 540" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="The OmniRoute promise: one endpoint and 370 providers. Six pillars. Resilient fallback: automatic routing continues while another healthy target is available. Save up to 95 percent of eligible tokens: RTK plus Caveman stacked compression averages about 89 percent on tool-heavy sessions. Zero dollars to start: 150+ providers with a free tier and 54 recurring or keyless free-forever providers. Every tool works: 36 CLI and agent integration records, including Claude Code, Codex, Cursor, Cline, Copilot and Antigravity, through one config. One endpoint: OpenAI, Claude, Gemini and Responses API translation at /v1. Production controls: circuit breakers, TLS stealth, MCP with 110 tools, A2A, memory, guardrails, evals, and 39,000+ static test declarations across 5,100+ tracked test files.">
|
||||
<svg viewBox="0 0 1200 540" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="The OmniRoute promise: one endpoint and 372 providers. Six pillars. Resilient fallback: automatic routing continues while another healthy target is available. Save up to 95 percent of eligible tokens: RTK plus Caveman stacked compression averages about 89 percent on tool-heavy sessions. Zero dollars to start: 150+ providers with a free tier and 54 recurring or keyless free-forever providers. Every tool works: 36 CLI and agent integration records, including Claude Code, Codex, Cursor, Cline, Copilot and Antigravity, through one config. One endpoint: OpenAI, Claude, Gemini and Responses API translation at /v1. Production controls: circuit breakers, TLS stealth, MCP with 110 tools, A2A, memory, guardrails, evals, and 39,000+ static test declarations across 5,100+ tracked test files.">
|
||||
<desc>Animated promise card: six pillar tiles fade in in reading order, then a soft colored border highlight sweeps from tile to tile in a continuous cycle.</desc>
|
||||
<defs>
|
||||
<pattern id="gridPaperP" width="32" height="32" patternUnits="userSpaceOnUse">
|
||||
|
|
@ -21,7 +21,7 @@
|
|||
<line x1="150" y1="53" x2="1160" y2="53" stroke="#232b38" stroke-width="1.5"/>
|
||||
</g>
|
||||
<g>
|
||||
<text x="40" y="100" font-family="Inter, 'Segoe UI', Arial, Helvetica, system-ui, sans-serif" font-size="23" font-weight="600" fill="#c9d1d9">One endpoint. <tspan fill="#a78bfa" font-weight="800">370 providers.</tspan> Never stop building — OmniRoute picks <tspan fill="#7ee787" font-weight="700">the cheapest one that works</tspan>.</text>
|
||||
<text x="40" y="100" font-family="Inter, 'Segoe UI', Arial, Helvetica, system-ui, sans-serif" font-size="23" font-weight="600" fill="#c9d1d9">One endpoint. <tspan fill="#a78bfa" font-weight="800">372 providers.</tspan> Never stop building — OmniRoute picks <tspan fill="#7ee787" font-weight="700">the cheapest one that works</tspan>.</text>
|
||||
</g>
|
||||
|
||||
<g font-family="Inter, 'Segoe UI', Arial, Helvetica, system-ui, sans-serif">
|
||||
|
|
@ -38,7 +38,7 @@
|
|||
<line x1="3.9" y1="3.9" x2="18.1" y2="18.1"/>
|
||||
</g>
|
||||
<text x="102" y="170" font-size="18" font-weight="800" fill="#74b9ff">Never hit limits</text>
|
||||
<text x="66" y="204" font-size="13.5" fill="#a1a1aa">Auto-fallback across 370 providers in</text>
|
||||
<text x="66" y="204" font-size="13.5" fill="#a1a1aa">Auto-fallback across 372 providers in</text>
|
||||
<text x="66" y="226" font-size="13.5" fill="#a1a1aa">milliseconds. Quota out? The next provider</text>
|
||||
<text x="66" y="248" font-size="13.5" fill="#a1a1aa">takes over while a healthy target remains.</text>
|
||||
</g>
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 10 KiB |
|
|
@ -1,4 +1,4 @@
|
|||
<svg viewBox="0 0 1200 548" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="OmniRoute hero: Never stop coding. Every AI tool to 370 providers — 150+ free — through one endpoint. Claude Code, Codex, Cursor, Cline, Copilot and Antigravity into free Claude, GPT and Gemini with auto-fallback. RTK + Caveman stacked compression saves 15 to 95 percent of tokens — about 89 percent average on tool-heavy sessions — so you never hit limits. Stats: 370 AI providers, 150+ free tiers, about 1.62B free tokens per month, 15 to 95 percent token savings, 20 routing strategies, zero dollars to start.">
|
||||
<svg viewBox="0 0 1200 548" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="OmniRoute hero: Never stop coding. Every AI tool to 372 providers — 150+ free — through one endpoint. Claude Code, Codex, Cursor, Cline, Copilot and Antigravity into free Claude, GPT and Gemini with auto-fallback. RTK + Caveman stacked compression saves 15 to 95 percent of tokens — about 89 percent average on tool-heavy sessions — so you never hit limits. Stats: 372 AI providers, 150+ free tiers, about 1.62B free tokens per month, 15 to 95 percent token savings, 20 routing strategies, zero dollars to start.">
|
||||
<desc>Animated hero card: a pulse travels the divider line and a compression bar demo repeatedly shrinks a prompt by up to 95 percent; all headline content is static and readable on the first frame.</desc>
|
||||
<defs>
|
||||
<pattern id="gridPaperH" width="32" height="32" patternUnits="userSpaceOnUse">
|
||||
|
|
@ -28,7 +28,7 @@
|
|||
<text x="48" y="138" font-family="Inter, 'Segoe UI', Arial, Helvetica, system-ui, sans-serif" font-size="60" font-weight="800" fill="#e9edf3">Never stop coding<tspan fill="#a855f7">.</tspan></text>
|
||||
|
||||
<!-- subheadline -->
|
||||
<text x="48" y="184" font-family="Inter, 'Segoe UI', Arial, Helvetica, system-ui, sans-serif" font-size="25" font-weight="600" fill="#c9d1d9">Every AI tool → <tspan fill="#a78bfa" font-weight="800">370 providers</tspan> — <tspan fill="#7ee787" font-weight="800">150+ free</tspan> — through one endpoint.</text>
|
||||
<text x="48" y="184" font-family="Inter, 'Segoe UI', Arial, Helvetica, system-ui, sans-serif" font-size="25" font-weight="600" fill="#c9d1d9">Every AI tool → <tspan fill="#a78bfa" font-weight="800">372 providers</tspan> — <tspan fill="#7ee787" font-weight="800">150+ free</tspan> — through one endpoint.</text>
|
||||
|
||||
<!-- plug line -->
|
||||
<text x="48" y="222" font-family="Inter, 'Segoe UI', Arial, Helvetica, system-ui, sans-serif" font-size="16.5" fill="#a1a1aa">Claude Code · Codex · Cursor · Cline · Copilot · Antigravity  →  <tspan fill="#7ee787" font-weight="700">FREE</tspan> Claude / GPT / Gemini · auto-fallback</text>
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 7.3 KiB After Width: | Height: | Size: 7.3 KiB |
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
---
|
||||
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 370 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 372 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
|
||||
## Overview
|
||||
|
||||
|
|
@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo
|
|||
## Key Features (v3.8.50)
|
||||
|
||||
### Core Proxy
|
||||
- **370 AI providers** with automatic format translation
|
||||
- **372 AI providers** with automatic format translation
|
||||
- **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible)
|
||||
- **19 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, context-relay, fusion, pipeline
|
||||
- **4-tier fallback**: Subscription → API Key → Cheap → Free
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
---
|
||||
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 370 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 372 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
|
||||
## Overview
|
||||
|
||||
|
|
@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo
|
|||
## Key Features (v3.8.50)
|
||||
|
||||
### Core Proxy
|
||||
- **370 AI providers** with automatic format translation
|
||||
- **372 AI providers** with automatic format translation
|
||||
- **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible)
|
||||
- **19 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, context-relay, fusion, pipeline
|
||||
- **4-tier fallback**: Subscription → API Key → Cheap → Free
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
---
|
||||
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 370 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 372 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
|
||||
## Overview
|
||||
|
||||
|
|
@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo
|
|||
## Key Features (v3.8.50)
|
||||
|
||||
### Core Proxy
|
||||
- **370 AI providers** with automatic format translation
|
||||
- **372 AI providers** with automatic format translation
|
||||
- **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible)
|
||||
- **19 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, context-relay, fusion, pipeline
|
||||
- **4-tier fallback**: Subscription → API Key → Cheap → Free
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
---
|
||||
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 370 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 372 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
|
||||
## Overview
|
||||
|
||||
|
|
@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo
|
|||
## Key Features (v3.8.50)
|
||||
|
||||
### Core Proxy
|
||||
- **370 AI providers** with automatic format translation
|
||||
- **372 AI providers** with automatic format translation
|
||||
- **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible)
|
||||
- **19 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, context-relay, fusion, pipeline
|
||||
- **4-tier fallback**: Subscription → API Key → Cheap → Free
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
---
|
||||
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 370 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 372 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
|
||||
## Overview
|
||||
|
||||
|
|
@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo
|
|||
## Key Features (v3.8.50)
|
||||
|
||||
### Core Proxy
|
||||
- **370 AI providers** with automatic format translation
|
||||
- **372 AI providers** with automatic format translation
|
||||
- **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible)
|
||||
- **19 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, context-relay, fusion, pipeline
|
||||
- **4-tier fallback**: Subscription → API Key → Cheap → Free
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
---
|
||||
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 370 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 372 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
|
||||
## Overview
|
||||
|
||||
|
|
@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo
|
|||
## Key Features (v3.8.50)
|
||||
|
||||
### Core Proxy
|
||||
- **370 AI providers** with automatic format translation
|
||||
- **372 AI providers** with automatic format translation
|
||||
- **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible)
|
||||
- **19 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, context-relay, fusion, pipeline
|
||||
- **4-tier fallback**: Subscription → API Key → Cheap → Free
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
---
|
||||
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 370 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 372 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
|
||||
## Overview
|
||||
|
||||
|
|
@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo
|
|||
## Key Features (v3.8.50)
|
||||
|
||||
### Core Proxy
|
||||
- **370 AI providers** with automatic format translation
|
||||
- **372 AI providers** with automatic format translation
|
||||
- **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible)
|
||||
- **19 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, context-relay, fusion, pipeline
|
||||
- **4-tier fallback**: Subscription → API Key → Cheap → Free
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
---
|
||||
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 370 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 372 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
|
||||
## Overview
|
||||
|
||||
|
|
@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo
|
|||
## Key Features (v3.8.50)
|
||||
|
||||
### Core Proxy
|
||||
- **370 AI providers** with automatic format translation
|
||||
- **372 AI providers** with automatic format translation
|
||||
- **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible)
|
||||
- **19 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, context-relay, fusion, pipeline
|
||||
- **4-tier fallback**: Subscription → API Key → Cheap → Free
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
---
|
||||
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 370 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 372 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
|
||||
## Overview
|
||||
|
||||
|
|
@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo
|
|||
## Key Features (v3.8.50)
|
||||
|
||||
### Core Proxy
|
||||
- **370 AI providers** with automatic format translation
|
||||
- **372 AI providers** with automatic format translation
|
||||
- **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible)
|
||||
- **19 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, context-relay, fusion, pipeline
|
||||
- **4-tier fallback**: Subscription → API Key → Cheap → Free
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
---
|
||||
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 370 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 372 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
|
||||
## Overview
|
||||
|
||||
|
|
@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo
|
|||
## Key Features (v3.8.50)
|
||||
|
||||
### Core Proxy
|
||||
- **370 AI providers** with automatic format translation
|
||||
- **372 AI providers** with automatic format translation
|
||||
- **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible)
|
||||
- **19 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, context-relay, fusion, pipeline
|
||||
- **4-tier fallback**: Subscription → API Key → Cheap → Free
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
---
|
||||
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 370 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 372 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
|
||||
## Overview
|
||||
|
||||
|
|
@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo
|
|||
## Key Features (v3.8.50)
|
||||
|
||||
### Core Proxy
|
||||
- **370 AI providers** with automatic format translation
|
||||
- **372 AI providers** with automatic format translation
|
||||
- **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible)
|
||||
- **19 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, context-relay, fusion, pipeline
|
||||
- **4-tier fallback**: Subscription → API Key → Cheap → Free
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
---
|
||||
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 370 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 372 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
|
||||
## Overview
|
||||
|
||||
|
|
@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo
|
|||
## Key Features (v3.8.50)
|
||||
|
||||
### Core Proxy
|
||||
- **370 AI providers** with automatic format translation
|
||||
- **372 AI providers** with automatic format translation
|
||||
- **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible)
|
||||
- **19 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, context-relay, fusion, pipeline
|
||||
- **4-tier fallback**: Subscription → API Key → Cheap → Free
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
---
|
||||
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 370 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 372 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
|
||||
## Overview
|
||||
|
||||
|
|
@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo
|
|||
## Key Features (v3.8.50)
|
||||
|
||||
### Core Proxy
|
||||
- **370 AI providers** with automatic format translation
|
||||
- **372 AI providers** with automatic format translation
|
||||
- **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible)
|
||||
- **19 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, context-relay, fusion, pipeline
|
||||
- **4-tier fallback**: Subscription → API Key → Cheap → Free
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
---
|
||||
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 370 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 372 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
|
||||
## Overview
|
||||
|
||||
|
|
@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo
|
|||
## Key Features (v3.8.50)
|
||||
|
||||
### Core Proxy
|
||||
- **370 AI providers** with automatic format translation
|
||||
- **372 AI providers** with automatic format translation
|
||||
- **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible)
|
||||
- **19 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, context-relay, fusion, pipeline
|
||||
- **4-tier fallback**: Subscription → API Key → Cheap → Free
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
---
|
||||
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 370 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 372 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
|
||||
## Overview
|
||||
|
||||
|
|
@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo
|
|||
## Key Features (v3.8.50)
|
||||
|
||||
### Core Proxy
|
||||
- **370 AI providers** with automatic format translation
|
||||
- **372 AI providers** with automatic format translation
|
||||
- **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible)
|
||||
- **19 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, context-relay, fusion, pipeline
|
||||
- **4-tier fallback**: Subscription → API Key → Cheap → Free
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
---
|
||||
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 370 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 372 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
|
||||
## Overview
|
||||
|
||||
|
|
@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo
|
|||
## Key Features (v3.8.50)
|
||||
|
||||
### Core Proxy
|
||||
- **370 AI providers** with automatic format translation
|
||||
- **372 AI providers** with automatic format translation
|
||||
- **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible)
|
||||
- **19 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, context-relay, fusion, pipeline
|
||||
- **4-tier fallback**: Subscription → API Key → Cheap → Free
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
---
|
||||
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 370 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 372 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
|
||||
## Overview
|
||||
|
||||
|
|
@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo
|
|||
## Key Features (v3.8.50)
|
||||
|
||||
### Core Proxy
|
||||
- **370 AI providers** with automatic format translation
|
||||
- **372 AI providers** with automatic format translation
|
||||
- **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible)
|
||||
- **19 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, context-relay, fusion, pipeline
|
||||
- **4-tier fallback**: Subscription → API Key → Cheap → Free
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
---
|
||||
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 370 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 372 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
|
||||
## Overview
|
||||
|
||||
|
|
@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo
|
|||
## Key Features (v3.8.50)
|
||||
|
||||
### Core Proxy
|
||||
- **370 AI providers** with automatic format translation
|
||||
- **372 AI providers** with automatic format translation
|
||||
- **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible)
|
||||
- **19 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, context-relay, fusion, pipeline
|
||||
- **4-tier fallback**: Subscription → API Key → Cheap → Free
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
---
|
||||
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 370 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 372 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
|
||||
## Overview
|
||||
|
||||
|
|
@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo
|
|||
## Key Features (v3.8.50)
|
||||
|
||||
### Core Proxy
|
||||
- **370 AI providers** with automatic format translation
|
||||
- **372 AI providers** with automatic format translation
|
||||
- **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible)
|
||||
- **19 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, context-relay, fusion, pipeline
|
||||
- **4-tier fallback**: Subscription → API Key → Cheap → Free
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
---
|
||||
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 370 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 372 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
|
||||
## Overview
|
||||
|
||||
|
|
@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo
|
|||
## Key Features (v3.8.50)
|
||||
|
||||
### Core Proxy
|
||||
- **370 AI providers** with automatic format translation
|
||||
- **372 AI providers** with automatic format translation
|
||||
- **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible)
|
||||
- **19 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, context-relay, fusion, pipeline
|
||||
- **4-tier fallback**: Subscription → API Key → Cheap → Free
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
---
|
||||
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 370 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 372 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
|
||||
## Overview
|
||||
|
||||
|
|
@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo
|
|||
## Key Features (v3.8.50)
|
||||
|
||||
### Core Proxy
|
||||
- **370 AI providers** with automatic format translation
|
||||
- **372 AI providers** with automatic format translation
|
||||
- **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible)
|
||||
- **19 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, context-relay, fusion, pipeline
|
||||
- **4-tier fallback**: Subscription → API Key → Cheap → Free
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
---
|
||||
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 370 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 372 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
|
||||
## Overview
|
||||
|
||||
|
|
@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo
|
|||
## Key Features (v3.8.50)
|
||||
|
||||
### Core Proxy
|
||||
- **370 AI providers** with automatic format translation
|
||||
- **372 AI providers** with automatic format translation
|
||||
- **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible)
|
||||
- **19 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, context-relay, fusion, pipeline
|
||||
- **4-tier fallback**: Subscription → API Key → Cheap → Free
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
---
|
||||
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 370 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 372 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
|
||||
## Overview
|
||||
|
||||
|
|
@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo
|
|||
## Key Features (v3.8.50)
|
||||
|
||||
### Core Proxy
|
||||
- **370 AI providers** with automatic format translation
|
||||
- **372 AI providers** with automatic format translation
|
||||
- **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible)
|
||||
- **19 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, context-relay, fusion, pipeline
|
||||
- **4-tier fallback**: Subscription → API Key → Cheap → Free
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
---
|
||||
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 370 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 372 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
|
||||
## Overview
|
||||
|
||||
|
|
@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo
|
|||
## Key Features (v3.8.50)
|
||||
|
||||
### Core Proxy
|
||||
- **370 AI providers** with automatic format translation
|
||||
- **372 AI providers** with automatic format translation
|
||||
- **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible)
|
||||
- **19 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, context-relay, fusion, pipeline
|
||||
- **4-tier fallback**: Subscription → API Key → Cheap → Free
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
---
|
||||
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 370 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 372 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
|
||||
## Overview
|
||||
|
||||
|
|
@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo
|
|||
## Key Features (v3.8.50)
|
||||
|
||||
### Core Proxy
|
||||
- **370 AI providers** with automatic format translation
|
||||
- **372 AI providers** with automatic format translation
|
||||
- **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible)
|
||||
- **19 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, context-relay, fusion, pipeline
|
||||
- **4-tier fallback**: Subscription → API Key → Cheap → Free
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
---
|
||||
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 370 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 372 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
|
||||
## Overview
|
||||
|
||||
|
|
@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo
|
|||
## Key Features (v3.8.50)
|
||||
|
||||
### Core Proxy
|
||||
- **370 AI providers** with automatic format translation
|
||||
- **372 AI providers** with automatic format translation
|
||||
- **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible)
|
||||
- **19 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, context-relay, fusion, pipeline
|
||||
- **4-tier fallback**: Subscription → API Key → Cheap → Free
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
---
|
||||
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 370 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 372 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
|
||||
## Overview
|
||||
|
||||
|
|
@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo
|
|||
## Key Features (v3.8.50)
|
||||
|
||||
### Core Proxy
|
||||
- **370 AI providers** with automatic format translation
|
||||
- **372 AI providers** with automatic format translation
|
||||
- **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible)
|
||||
- **19 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, context-relay, fusion, pipeline
|
||||
- **4-tier fallback**: Subscription → API Key → Cheap → Free
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
---
|
||||
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 370 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 372 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
|
||||
## Overview
|
||||
|
||||
|
|
@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo
|
|||
## Key Features (v3.8.50)
|
||||
|
||||
### Core Proxy
|
||||
- **370 AI providers** with automatic format translation
|
||||
- **372 AI providers** with automatic format translation
|
||||
- **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible)
|
||||
- **19 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, context-relay, fusion, pipeline
|
||||
- **4-tier fallback**: Subscription → API Key → Cheap → Free
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
---
|
||||
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 370 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 372 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
|
||||
## Overview
|
||||
|
||||
|
|
@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo
|
|||
## Key Features (v3.8.50)
|
||||
|
||||
### Core Proxy
|
||||
- **370 AI providers** with automatic format translation
|
||||
- **372 AI providers** with automatic format translation
|
||||
- **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible)
|
||||
- **19 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, context-relay, fusion, pipeline
|
||||
- **4-tier fallback**: Subscription → API Key → Cheap → Free
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
---
|
||||
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 370 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 372 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
|
||||
## Overview
|
||||
|
||||
|
|
@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo
|
|||
## Key Features (v3.8.50)
|
||||
|
||||
### Core Proxy
|
||||
- **370 AI providers** with automatic format translation
|
||||
- **372 AI providers** with automatic format translation
|
||||
- **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible)
|
||||
- **19 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, context-relay, fusion, pipeline
|
||||
- **4-tier fallback**: Subscription → API Key → Cheap → Free
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
---
|
||||
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 370 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 372 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
|
||||
## Overview
|
||||
|
||||
|
|
@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo
|
|||
## Key Features (v3.8.50)
|
||||
|
||||
### Core Proxy
|
||||
- **370 AI providers** with automatic format translation
|
||||
- **372 AI providers** with automatic format translation
|
||||
- **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible)
|
||||
- **19 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, context-relay, fusion, pipeline
|
||||
- **4-tier fallback**: Subscription → API Key → Cheap → Free
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
---
|
||||
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 370 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 372 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
|
||||
## Overview
|
||||
|
||||
|
|
@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo
|
|||
## Key Features (v3.8.50)
|
||||
|
||||
### Core Proxy
|
||||
- **370 AI providers** with automatic format translation
|
||||
- **372 AI providers** with automatic format translation
|
||||
- **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible)
|
||||
- **19 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, context-relay, fusion, pipeline
|
||||
- **4-tier fallback**: Subscription → API Key → Cheap → Free
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
---
|
||||
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 370 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 372 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
|
||||
## Overview
|
||||
|
||||
|
|
@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo
|
|||
## Key Features (v3.8.50)
|
||||
|
||||
### Core Proxy
|
||||
- **370 AI providers** with automatic format translation
|
||||
- **372 AI providers** with automatic format translation
|
||||
- **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible)
|
||||
- **19 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, context-relay, fusion, pipeline
|
||||
- **4-tier fallback**: Subscription → API Key → Cheap → Free
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
---
|
||||
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 370 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 372 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
|
||||
## Overview
|
||||
|
||||
|
|
@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo
|
|||
## Key Features (v3.8.50)
|
||||
|
||||
### Core Proxy
|
||||
- **370 AI providers** with automatic format translation
|
||||
- **372 AI providers** with automatic format translation
|
||||
- **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible)
|
||||
- **19 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, context-relay, fusion, pipeline
|
||||
- **4-tier fallback**: Subscription → API Key → Cheap → Free
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
---
|
||||
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 370 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 372 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
|
||||
## Overview
|
||||
|
||||
|
|
@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo
|
|||
## Key Features (v3.8.50)
|
||||
|
||||
### Core Proxy
|
||||
- **370 AI providers** with automatic format translation
|
||||
- **372 AI providers** with automatic format translation
|
||||
- **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible)
|
||||
- **19 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, context-relay, fusion, pipeline
|
||||
- **4-tier fallback**: Subscription → API Key → Cheap → Free
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
---
|
||||
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 370 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 372 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
|
||||
## Overview
|
||||
|
||||
|
|
@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo
|
|||
## Key Features (v3.8.50)
|
||||
|
||||
### Core Proxy
|
||||
- **370 AI providers** with automatic format translation
|
||||
- **372 AI providers** with automatic format translation
|
||||
- **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible)
|
||||
- **19 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, context-relay, fusion, pipeline
|
||||
- **4-tier fallback**: Subscription → API Key → Cheap → Free
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
---
|
||||
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 370 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 372 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
|
||||
## Overview
|
||||
|
||||
|
|
@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo
|
|||
## Key Features (v3.8.50)
|
||||
|
||||
### Core Proxy
|
||||
- **370 AI providers** with automatic format translation
|
||||
- **372 AI providers** with automatic format translation
|
||||
- **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible)
|
||||
- **19 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, context-relay, fusion, pipeline
|
||||
- **4-tier fallback**: Subscription → API Key → Cheap → Free
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
---
|
||||
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 370 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 372 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
|
||||
## Overview
|
||||
|
||||
|
|
@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo
|
|||
## Key Features (v3.8.50)
|
||||
|
||||
### Core Proxy
|
||||
- **370 AI providers** with automatic format translation
|
||||
- **372 AI providers** with automatic format translation
|
||||
- **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible)
|
||||
- **19 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, context-relay, fusion, pipeline
|
||||
- **4-tier fallback**: Subscription → API Key → Cheap → Free
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
---
|
||||
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 370 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 372 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
|
||||
## Overview
|
||||
|
||||
|
|
@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo
|
|||
## Key Features (v3.8.50)
|
||||
|
||||
### Core Proxy
|
||||
- **370 AI providers** with automatic format translation
|
||||
- **372 AI providers** with automatic format translation
|
||||
- **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible)
|
||||
- **19 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, context-relay, fusion, pipeline
|
||||
- **4-tier fallback**: Subscription → API Key → Cheap → Free
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
---
|
||||
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 370 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 372 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
|
||||
## Overview
|
||||
|
||||
|
|
@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo
|
|||
## Key Features (v3.8.50)
|
||||
|
||||
### Core Proxy
|
||||
- **370 AI providers** with automatic format translation
|
||||
- **372 AI providers** with automatic format translation
|
||||
- **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible)
|
||||
- **19 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, context-relay, fusion, pipeline
|
||||
- **4-tier fallback**: Subscription → API Key → Cheap → Free
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
---
|
||||
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 370 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 372 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
|
||||
## Overview
|
||||
|
||||
|
|
@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo
|
|||
## Key Features (v3.8.50)
|
||||
|
||||
### Core Proxy
|
||||
- **370 AI providers** with automatic format translation
|
||||
- **372 AI providers** with automatic format translation
|
||||
- **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible)
|
||||
- **19 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, context-relay, fusion, pipeline
|
||||
- **4-tier fallback**: Subscription → API Key → Cheap → Free
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
---
|
||||
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 370 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 372 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
|
||||
## Overview
|
||||
|
||||
|
|
@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo
|
|||
## Key Features (v3.8.50)
|
||||
|
||||
### Core Proxy
|
||||
- **370 AI providers** with automatic format translation
|
||||
- **372 AI providers** with automatic format translation
|
||||
- **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible)
|
||||
- **19 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, context-relay, fusion, pipeline
|
||||
- **4-tier fallback**: Subscription → API Key → Cheap → Free
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
---
|
||||
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 370 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 372 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
|
||||
## Overview
|
||||
|
||||
|
|
@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo
|
|||
## Key Features (v3.8.50)
|
||||
|
||||
### Core Proxy
|
||||
- **370 AI providers** with automatic format translation
|
||||
- **372 AI providers** with automatic format translation
|
||||
- **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible)
|
||||
- **19 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, context-relay, fusion, pipeline
|
||||
- **4-tier fallback**: Subscription → API Key → Cheap → Free
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
---
|
||||
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 370 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 372 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
|
||||
## Overview
|
||||
|
||||
|
|
@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo
|
|||
## Key Features (v3.8.50)
|
||||
|
||||
### Core Proxy
|
||||
- **370 AI providers** with automatic format translation
|
||||
- **372 AI providers** with automatic format translation
|
||||
- **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible)
|
||||
- **19 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, context-relay, fusion, pipeline
|
||||
- **4-tier fallback**: Subscription → API Key → Cheap → Free
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
---
|
||||
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 370 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 372 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
|
||||
## Overview
|
||||
|
||||
|
|
@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo
|
|||
## Key Features (v3.8.50)
|
||||
|
||||
### Core Proxy
|
||||
- **370 AI providers** with automatic format translation
|
||||
- **372 AI providers** with automatic format translation
|
||||
- **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible)
|
||||
- **19 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, context-relay, fusion, pipeline
|
||||
- **4-tier fallback**: Subscription → API Key → Cheap → Free
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
---
|
||||
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 370 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 372 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
|
||||
## Overview
|
||||
|
||||
|
|
@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo
|
|||
## Key Features (v3.8.50)
|
||||
|
||||
### Core Proxy
|
||||
- **370 AI providers** with automatic format translation
|
||||
- **372 AI providers** with automatic format translation
|
||||
- **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible)
|
||||
- **19 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, context-relay, fusion, pipeline
|
||||
- **4-tier fallback**: Subscription → API Key → Cheap → Free
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
---
|
||||
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 370 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 372 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
|
||||
## Overview
|
||||
|
||||
|
|
@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo
|
|||
## Key Features (v3.8.50)
|
||||
|
||||
### Core Proxy
|
||||
- **370 AI providers** with automatic format translation
|
||||
- **372 AI providers** with automatic format translation
|
||||
- **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible)
|
||||
- **19 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, context-relay, fusion, pipeline
|
||||
- **4-tier fallback**: Subscription → API Key → Cheap → Free
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
---
|
||||
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 370 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 372 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
|
||||
## Overview
|
||||
|
||||
|
|
@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo
|
|||
## Key Features (v3.8.50)
|
||||
|
||||
### Core Proxy
|
||||
- **370 AI providers** with automatic format translation
|
||||
- **372 AI providers** with automatic format translation
|
||||
- **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible)
|
||||
- **19 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, context-relay, fusion, pipeline
|
||||
- **4-tier fallback**: Subscription → API Key → Cheap → Free
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
---
|
||||
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 370 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 372 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
|
||||
## Overview
|
||||
|
||||
|
|
@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo
|
|||
## Key Features (v3.8.50)
|
||||
|
||||
### Core Proxy
|
||||
- **370 AI providers** with automatic format translation
|
||||
- **372 AI providers** with automatic format translation
|
||||
- **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible)
|
||||
- **19 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, context-relay, fusion, pipeline
|
||||
- **4-tier fallback**: Subscription → API Key → Cheap → Free
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
---
|
||||
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 370 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 372 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
|
||||
## Overview
|
||||
|
||||
|
|
@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo
|
|||
## Key Features (v3.8.50)
|
||||
|
||||
### Core Proxy
|
||||
- **370 AI providers** with automatic format translation
|
||||
- **372 AI providers** with automatic format translation
|
||||
- **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible)
|
||||
- **19 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, context-relay, fusion, pipeline
|
||||
- **4-tier fallback**: Subscription → API Key → Cheap → Free
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
---
|
||||
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 370 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 372 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
|
||||
## Overview
|
||||
|
||||
|
|
@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo
|
|||
## Key Features (v3.8.50)
|
||||
|
||||
### Core Proxy
|
||||
- **370 AI providers** with automatic format translation
|
||||
- **372 AI providers** with automatic format translation
|
||||
- **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible)
|
||||
- **19 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, context-relay, fusion, pipeline
|
||||
- **4-tier fallback**: Subscription → API Key → Cheap → Free
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
---
|
||||
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 370 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 372 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
|
||||
## Overview
|
||||
|
||||
|
|
@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo
|
|||
## Key Features (v3.8.50)
|
||||
|
||||
### Core Proxy
|
||||
- **370 AI providers** with automatic format translation
|
||||
- **372 AI providers** with automatic format translation
|
||||
- **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible)
|
||||
- **19 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, context-relay, fusion, pipeline
|
||||
- **4-tier fallback**: Subscription → API Key → Cheap → Free
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
---
|
||||
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 370 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 372 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
|
||||
## Overview
|
||||
|
||||
|
|
@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo
|
|||
## Key Features (v3.8.50)
|
||||
|
||||
### Core Proxy
|
||||
- **370 AI providers** with automatic format translation
|
||||
- **372 AI providers** with automatic format translation
|
||||
- **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible)
|
||||
- **19 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, context-relay, fusion, pipeline
|
||||
- **4-tier fallback**: Subscription → API Key → Cheap → Free
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
---
|
||||
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 370 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 372 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
|
||||
## Overview
|
||||
|
||||
|
|
@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo
|
|||
## Key Features (v3.8.50)
|
||||
|
||||
### Core Proxy
|
||||
- **370 AI providers** with automatic format translation
|
||||
- **372 AI providers** with automatic format translation
|
||||
- **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible)
|
||||
- **19 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, context-relay, fusion, pipeline
|
||||
- **4-tier fallback**: Subscription → API Key → Cheap → Free
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
---
|
||||
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 370 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 372 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
|
||||
## Overview
|
||||
|
||||
|
|
@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo
|
|||
## Key Features (v3.8.50)
|
||||
|
||||
### Core Proxy
|
||||
- **370 AI providers** with automatic format translation
|
||||
- **372 AI providers** with automatic format translation
|
||||
- **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible)
|
||||
- **19 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, context-relay, fusion, pipeline
|
||||
- **4-tier fallback**: Subscription → API Key → Cheap → Free
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
---
|
||||
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 370 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 372 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
|
||||
## Overview
|
||||
|
||||
|
|
@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo
|
|||
## Key Features (v3.8.50)
|
||||
|
||||
### Core Proxy
|
||||
- **370 AI providers** with automatic format translation
|
||||
- **372 AI providers** with automatic format translation
|
||||
- **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible)
|
||||
- **19 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, context-relay, fusion, pipeline
|
||||
- **4-tier fallback**: Subscription → API Key → Cheap → Free
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
---
|
||||
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 370 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 372 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
|
||||
## Overview
|
||||
|
||||
|
|
@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo
|
|||
## Key Features (v3.8.50)
|
||||
|
||||
### Core Proxy
|
||||
- **370 AI providers** with automatic format translation
|
||||
- **372 AI providers** with automatic format translation
|
||||
- **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible)
|
||||
- **19 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, context-relay, fusion, pipeline
|
||||
- **4-tier fallback**: Subscription → API Key → Cheap → Free
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
---
|
||||
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 370 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 372 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
|
||||
## Overview
|
||||
|
||||
|
|
@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo
|
|||
## Key Features (v3.8.50)
|
||||
|
||||
### Core Proxy
|
||||
- **370 AI providers** with automatic format translation
|
||||
- **372 AI providers** with automatic format translation
|
||||
- **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible)
|
||||
- **19 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, context-relay, fusion, pipeline
|
||||
- **4-tier fallback**: Subscription → API Key → Cheap → Free
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
---
|
||||
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 370 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 372 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
|
||||
## Overview
|
||||
|
||||
|
|
@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo
|
|||
## Key Features (v3.8.50)
|
||||
|
||||
### Core Proxy
|
||||
- **370 AI providers** with automatic format translation
|
||||
- **372 AI providers** with automatic format translation
|
||||
- **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible)
|
||||
- **19 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, context-relay, fusion, pipeline
|
||||
- **4-tier fallback**: Subscription → API Key → Cheap → Free
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
---
|
||||
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 370 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 372 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
|
||||
## Overview
|
||||
|
||||
|
|
@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo
|
|||
## Key Features (v3.8.50)
|
||||
|
||||
### Core Proxy
|
||||
- **370 AI providers** with automatic format translation
|
||||
- **372 AI providers** with automatic format translation
|
||||
- **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible)
|
||||
- **19 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, context-relay, fusion, pipeline
|
||||
- **4-tier fallback**: Subscription → API Key → Cheap → Free
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
---
|
||||
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 370 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 372 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
|
||||
## Overview
|
||||
|
||||
|
|
@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo
|
|||
## Key Features (v3.8.50)
|
||||
|
||||
### Core Proxy
|
||||
- **370 AI providers** with automatic format translation
|
||||
- **372 AI providers** with automatic format translation
|
||||
- **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible)
|
||||
- **19 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, context-relay, fusion, pipeline
|
||||
- **4-tier fallback**: Subscription → API Key → Cheap → Free
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
---
|
||||
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 370 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 372 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
|
||||
## Overview
|
||||
|
||||
|
|
@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo
|
|||
## Key Features (v3.8.50)
|
||||
|
||||
### Core Proxy
|
||||
- **370 AI providers** with automatic format translation
|
||||
- **372 AI providers** with automatic format translation
|
||||
- **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible)
|
||||
- **19 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, context-relay, fusion, pipeline
|
||||
- **4-tier fallback**: Subscription → API Key → Cheap → Free
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
---
|
||||
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 370 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 372 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
|
||||
## Overview
|
||||
|
||||
|
|
@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo
|
|||
## Key Features (v3.8.50)
|
||||
|
||||
### Core Proxy
|
||||
- **370 AI providers** with automatic format translation
|
||||
- **372 AI providers** with automatic format translation
|
||||
- **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible)
|
||||
- **19 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, context-relay, fusion, pipeline
|
||||
- **4-tier fallback**: Subscription → API Key → Cheap → Free
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
---
|
||||
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 370 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 372 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
|
||||
## Overview
|
||||
|
||||
|
|
@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo
|
|||
## Key Features (v3.8.50)
|
||||
|
||||
### Core Proxy
|
||||
- **370 AI providers** with automatic format translation
|
||||
- **372 AI providers** with automatic format translation
|
||||
- **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible)
|
||||
- **19 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, context-relay, fusion, pipeline
|
||||
- **4-tier fallback**: Subscription → API Key → Cheap → Free
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
---
|
||||
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 370 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 372 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
|
||||
## Overview
|
||||
|
||||
|
|
@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo
|
|||
## Key Features (v3.8.50)
|
||||
|
||||
### Core Proxy
|
||||
- **370 AI providers** with automatic format translation
|
||||
- **372 AI providers** with automatic format translation
|
||||
- **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible)
|
||||
- **19 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, context-relay, fusion, pipeline
|
||||
- **4-tier fallback**: Subscription → API Key → Cheap → Free
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
---
|
||||
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 370 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 372 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
|
||||
## Overview
|
||||
|
||||
|
|
@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo
|
|||
## Key Features (v3.8.50)
|
||||
|
||||
### Core Proxy
|
||||
- **370 AI providers** with automatic format translation
|
||||
- **372 AI providers** with automatic format translation
|
||||
- **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible)
|
||||
- **19 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, context-relay, fusion, pipeline
|
||||
- **4-tier fallback**: Subscription → API Key → Cheap → Free
|
||||
|
|
|
|||
|
|
@ -1,16 +1,16 @@
|
|||
---
|
||||
title: "Provider Reference"
|
||||
version: 3.8.52
|
||||
lastUpdated: 2026-10-08
|
||||
lastUpdated: 2026-10-10
|
||||
---
|
||||
|
||||
# Provider Reference
|
||||
|
||||
> **Auto-generated** from `src/shared/constants/providers.ts` — do not edit by hand.
|
||||
> Regenerate with: `npm run gen:provider-reference`
|
||||
> **Last generated:** 2026-10-08
|
||||
> **Last generated:** 2026-10-10
|
||||
|
||||
Total providers: **370**. See category breakdown below.
|
||||
Total providers: **372**. See category breakdown below.
|
||||
|
||||
## Categories
|
||||
|
||||
|
|
@ -49,7 +49,7 @@ Use the dashboard at `/dashboard/providers` to enable, configure, and test each
|
|||
| `veoaifree-web` | `veo-free` | Veo AI Free | No-auth, video | [link](https://veoaifree.com) | No auth required. Rate limited to 6 requests/hour per IP. | — |
|
||||
| `zcode` | `zc` | ZCode (GLM Coding Plan) | No-auth | [link](https://zcode.z.ai) | No API key stored by OmniRoute. The local ZCode app-server uses the existing builtin:zai-coding-plan login. | — |
|
||||
|
||||
## OAuth Providers (26)
|
||||
## OAuth Providers (27)
|
||||
|
||||
| ID | Alias | Name | Tags | Website | Notes |
|
||||
|----|-------|------|------|---------|-------|
|
||||
|
|
@ -60,6 +60,7 @@ Use the dashboard at `/dashboard/providers` to enable, configure, and test each
|
|||
| `cline` | `cl` | Cline | OAuth | — | Sign in with your Cline account (OAuth), or paste a direct API key from app.cline.bot → Settings → API Keys. Multiple API keys are supported and rotated automatically — add each as a separate connection. |
|
||||
| `clinepass` | `cp` | ClinePass | OAuth | [link](https://cline.bot/cline-pass) | ClinePass is Cline's $9.99/mo subscription bundling 10 open coding models. Sign in with your Cline account (same login as the Cline CLI/IDE), or paste a direct ClinePass API key (app.cline.bot → Settings → API Keys). A ClinePass subscription unlocks the cline-pass/* models. Reuses the Cline WorkOS OAuth flow. |
|
||||
| `codebuddy-cn` | `cbcn` | CodeBuddy CN | OAuth | [link](https://copilot.tencent.com) | Tencent CodeBuddy CN (copilot.tencent.com). Sign in via the official CLI device-code flow, or paste a direct API key (sent as Authorization: Bearer). Catalog: GLM / Kimi / MiniMax / DeepSeek / Hunyuan. |
|
||||
| `codebuddy-intl` | `cbai` | CodeBuddy Intl | OAuth | [link](https://www.codebuddy.ai) | CodeBuddy International (codebuddy.ai). Sign in via the device-code flow, or paste a direct API key (sent as Authorization: Bearer). Catalog: GLM / Kimi / MiniMax / DeepSeek / Hunyuan. |
|
||||
| `codex` | `cx` | OpenAI Codex | OAuth | — | — |
|
||||
| `cursor` | `cu` | Cursor IDE | OAuth | — | — |
|
||||
| `devin-cli` | `dv` | Devin CLI | OAuth | [link](https://cli.devin.ai) | Requires the Devin CLI binary. Run `devin auth login` to authenticate, or provide your WINDSURF_API_KEY. Install: https://cli.devin.ai |
|
||||
|
|
@ -73,7 +74,7 @@ Use the dashboard at `/dashboard/providers` to enable, configure, and test each
|
|||
| `kiro` | `kr` | Kiro AI | OAuth | — | Free tier: 50 credits/month (~25K–100K tokens). ⚠️ Kiro ToS prohibits third-party proxy/harness use. |
|
||||
| `muse-code` | `mc` | Muse Code (Meta) | OAuth | [link](https://ai.developer.meta.com/docs/muse-code/auth) | Sign in with the Muse Code device flow (same as `muse login` / CLIProxyAPI `-meta-login`) to use a Muse subscription, or paste a META_API_KEY. Device login keeps the durable dca token and mints the inference key; a 401 remints that key. Wire format is OpenAI Responses (POST /responses). |
|
||||
| `openference` | `of` | Openference | OAuth | [link](https://openference.com) | Sign in with your Openference account to route requests through api.openference.com. Includes free-tier access to Qwen3.8 27b and Llama 3.2 3B — see openference.com/pricing for current plan terms. |
|
||||
| `qoder` | `if` | Qoder | OAuth | — | — |
|
||||
| `qoder` | `if` | Qoder | OAuth | — | PAT (pt-): requires local qodercli; plain chat only, no caller tools, buffered streaming and a 45-second chat limit. HTTP keys use DashScope; browser OAuth requires administrator configuration. |
|
||||
| `trae` | `tr` | Trae | OAuth | [link](https://trae.ai) | Trae is an AI-native IDE by ByteDance (SOLO remote agent). Authorize via trae.ai in the popup, or sign in at solo.trae.ai and paste the Cloud-IDE-JWT (sent as 'Authorization: Cloud-IDE-JWT <token>', ~14-day lifetime) as the access token; web_id/biz_user_id/user_unique_id/scope/tenant/region propagate via providerSpecificData. No headless refresh for pasted tokens — re-paste on expiry. |
|
||||
| `workbuddy` | `wb` | WorkBuddy | OAuth | [link](https://www.workbuddy.ai) | Tencent WorkBuddy (www.workbuddy.ai). Authorize the CLI device flow in the popup; OmniRoute then polls for the token and attaches the required X-Product: SaaS header. The model roster is served by the authenticated catalogue, so it is discovered live rather than listed here. WorkBuddy only accepts streaming requests, which OmniRoute accumulates back into a JSON response for non-streaming callers. |
|
||||
| `xai-oauth` | `xao` | xAI OAuth (Grok) | OAuth | [link](https://x.ai) | Sign in with xAI to use api.x.ai models such as Grok 4.5. This is separate from Grok Build JWT sessions, which use cli-chat-proxy.grok.com and grok-build model aliases. |
|
||||
|
|
@ -122,7 +123,7 @@ Use the dashboard at `/dashboard/providers` to enable, configure, and test each
|
|||
| `zai-web` | `zw` | Z.ai Web | Web cookie | [link](https://chat.z.ai) | Copy the "token" value from chat.z.ai → DevTools → Application → Local Storage. Do not copy cookies; OmniRoute handles the per-request CAPTCHA through its browser transport. | — |
|
||||
| `zenmux-free` | `zmf` | ZenMux Free (Web) | Web cookie | [link](https://zenmux.ai) | Login at zenmux.ai, then export all cookies using EditThisCookie or Cookie-Editor and paste the full Cookie header string here. Refresh every ~30 days. | — |
|
||||
|
||||
## API Key Providers (paid / paid-with-free-credits) (248)
|
||||
## API Key Providers (paid / paid-with-free-credits) (249)
|
||||
|
||||
| ID | Alias | Name | Tags | Website | Notes |
|
||||
|----|-------|------|------|---------|-------|
|
||||
|
|
@ -342,6 +343,7 @@ Use the dashboard at `/dashboard/providers` to enable, configure, and test each
|
|||
| `tokenreply` | `tokenreply` | TokenReply | API key, aggregator | [link](https://www.tokenreply.com) | Free-tagged models have model- and campaign-specific daily limits; no fixed global free quota is published. |
|
||||
| `tokenrouter` | `trk` | TokenRouter | API key | [link](https://tokenrouter.com) | Use your TokenRouter API key in Authorization: Bearer <key>. Fully OpenAI-compatible. API base URL: https://api.tokenrouter.com/v1. |
|
||||
| `topaz` | `topaz` | Topaz | API key, image | [link](https://topazlabs.com) | — |
|
||||
| `typesafe` | `typesafe` | TypeSafe AI | API key | [link](https://docs.typesafe.ai) | Bearer API key for api.typesafe.ai. OmniRoute uses it for System One evaluation (Jev) — not chat completions. Store the key here; the jev combo strategy reads it at request time. |
|
||||
| `typhoon` | `typhoon` | Typhoon | API key | [link](https://docs.opentyphoon.ai) | Free API key with a 5 req/s and 200 req/m rate limit. |
|
||||
| `uc-direct` | `ucd` | UC Direct (uncensored.com) | API key | [link](https://uncensored.com) | Use your uncensored.com Developer API key (uai_sk_live_...). OmniRoute sends it as the X-api-key header to the OpenAI-compatible https://api.uncensored.com/api/v1 endpoint. The key never expires. This is the metered/credits surface; the un-metered subscription chat is the separate 'uc' provider. |
|
||||
| `udio` | `udio` | Udio | API key | [link](https://udio.com) | Paste session cookie from udio.com (Supabase auth) |
|
||||
|
|
@ -458,7 +460,7 @@ Use the dashboard at `/dashboard/providers` to enable, configure, and test each
|
|||
|
||||
- Catalog: [`src/shared/constants/providers.ts`](../../src/shared/constants/providers.ts)
|
||||
- Registry (per-model details): [`open-sse/config/providerRegistry.ts`](../../open-sse/config/providerRegistry.ts)
|
||||
- Executors: [`open-sse/executors/`](../../open-sse/executors/) (146 implementations)
|
||||
- Executors: [`open-sse/executors/`](../../open-sse/executors/) (148 implementations)
|
||||
- Translators: [`open-sse/translator/`](../../open-sse/translator/)
|
||||
|
||||
## See Also
|
||||
|
|
|
|||
4
llm.txt
|
|
@ -1,6 +1,6 @@
|
|||
# OmniRoute
|
||||
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 370 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 372 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
|
||||
## Overview
|
||||
|
||||
|
|
@ -277,7 +277,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo
|
|||
## Key Features (v3.8.50)
|
||||
|
||||
### Core Proxy
|
||||
- **370 AI providers** with automatic format translation
|
||||
- **372 AI providers** with automatic format translation
|
||||
- **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible)
|
||||
- **19 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, context-relay, fusion, pipeline
|
||||
- **4-tier fallback**: Subscription → API Key → Cheap → Free
|
||||
|
|
|
|||
|
|
@ -191,6 +191,9 @@ export const QODER_DEFAULT_USER_AGENT = "Qoder-Cli";
|
|||
// getCodeBuddyCnUserAgent(), which may replace both numbers with a newer npm publish.
|
||||
export const CODEBUDDY_CN_USER_AGENT = "CLI/2.108.1 CodeBuddy/2.108.1";
|
||||
|
||||
// CodeBuddy International (codebuddy.ai) - single source of truth for intl profile.
|
||||
export const CODEBUDDY_INTL_USER_AGENT = "IDE/2.108.1 CodeBuddy/2.108.1";
|
||||
|
||||
const QWEN_DOTTED_TRIPLE_PATTERN = /^\d+\.\d+\.\d+$/;
|
||||
const NPM_QWEN_CODE_LATEST_URL = "https://registry.npmjs.org/@qwen-code/qwen-code/latest";
|
||||
const NPM_CODEBUDDY_LATEST_URL = "https://registry.npmjs.org/@tencent-ai/codebuddy-code/latest";
|
||||
|
|
|
|||
|
|
@ -226,6 +226,7 @@ import { tokenrouterProvider } from "./registry/tokenrouter/index.ts";
|
|||
import { token_kioskProvider } from "./registry/token-kiosk/index.ts";
|
||||
import { grok_cliProvider } from "./registry/grok-cli/index.ts";
|
||||
import { codebuddy_cnProvider } from "./registry/codebuddy-cn/index.ts";
|
||||
import { codebuddy_intlProvider } from "./registry/codebuddy-intl/index.ts";
|
||||
import { pioneerProvider } from "./registry/pioneer/index.ts";
|
||||
import { zenmux_freeProvider } from "./registry/zenmux-free/index.ts";
|
||||
import { tinycmsProvider } from "./registry/tinycms/index.ts";
|
||||
|
|
@ -515,6 +516,7 @@ export const REGISTRY: Record<string, RegistryEntry> = {
|
|||
"token-kiosk": token_kioskProvider,
|
||||
"grok-cli": grok_cliProvider,
|
||||
"codebuddy-cn": codebuddy_cnProvider,
|
||||
"codebuddy-intl": codebuddy_intlProvider,
|
||||
pioneer: pioneerProvider,
|
||||
"zenmux-free": zenmux_freeProvider,
|
||||
"tinycms-web": tinycmsProvider,
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ import type { RegistryEntry } from "../../shared.ts";
|
|||
* `reasoning_effort` (not vendor-native thinking shapes). Streaming is forced
|
||||
* by the executor because non-stream requests are rejected with code 11101.
|
||||
*
|
||||
* Short alias "cbcn" reserves "cbai" for a future CodeBuddy intl variant.
|
||||
* Short alias "cbcn" (paired with "cbai" for the CodeBuddy intl variant).
|
||||
* Per-model context windows/vision are advertised in the catalog below.
|
||||
*/
|
||||
export const codebuddy_cnProvider: RegistryEntry = {
|
||||
|
|
|
|||
199
open-sse/config/providers/registry/codebuddy-intl/index.ts
Normal file
|
|
@ -0,0 +1,199 @@
|
|||
import { CODEBUDDY_INTL_USER_AGENT } from "../../../providerHeaderProfiles.ts";
|
||||
import type { RegistryEntry } from "../../shared.ts";
|
||||
|
||||
/**
|
||||
* CodeBuddy International (codebuddy.ai).
|
||||
*
|
||||
* Unified OpenAI-compatible gateway behind the CodeBuddy International service.
|
||||
* Carries live-probed models (GLM, Kimi, MiniMax, DeepSeek, Hunyuan, GPT, Gemini)
|
||||
* and reasons via OpenAI-style `reasoning_effort` (not vendor-native thinking shapes).
|
||||
* Streaming is forced by the executor because non-stream requests are rejected
|
||||
* with code 11101. The intl gateway publishes no model-catalog endpoint, so
|
||||
* this list is curated from live-gateway probes.
|
||||
*
|
||||
* Short alias "cbai" matches the reserved alias convention.
|
||||
*/
|
||||
export const codebuddy_intlProvider: RegistryEntry = {
|
||||
id: "codebuddy-intl",
|
||||
alias: "cbai",
|
||||
format: "openai",
|
||||
executor: "codebuddy-intl",
|
||||
baseUrl: "https://www.codebuddy.ai/v2/chat/completions",
|
||||
authType: "oauth",
|
||||
authHeader: "bearer",
|
||||
headers: {
|
||||
"User-Agent": CODEBUDDY_INTL_USER_AGENT,
|
||||
"X-Product": "SaaS",
|
||||
"X-IDE-Type": "IDE",
|
||||
"X-IDE-Name": "IDE",
|
||||
"x-requested-with": "XMLHttpRequest",
|
||||
"x-codebuddy-request": "1",
|
||||
},
|
||||
models: [
|
||||
{
|
||||
id: "hy4-preview",
|
||||
name: "Hy4-Preview",
|
||||
contextLength: 256000,
|
||||
maxOutputTokens: 64000,
|
||||
supportsReasoning: true,
|
||||
supportsVision: true,
|
||||
},
|
||||
{
|
||||
id: "hy3",
|
||||
name: "Hy3",
|
||||
contextLength: 192000,
|
||||
maxOutputTokens: 64000,
|
||||
supportsReasoning: true,
|
||||
supportsVision: true,
|
||||
},
|
||||
{
|
||||
id: "gpt-6-astra",
|
||||
name: "GPT 6.0 Astra",
|
||||
contextLength: 1000000,
|
||||
maxOutputTokens: 64000,
|
||||
supportsReasoning: true,
|
||||
},
|
||||
{
|
||||
id: "gpt-6-luna",
|
||||
name: "GPT-6-Luna",
|
||||
contextLength: 1000000,
|
||||
maxOutputTokens: 64000,
|
||||
supportsReasoning: true,
|
||||
},
|
||||
{
|
||||
id: "gpt-6-sol",
|
||||
name: "GPT-6-Sol",
|
||||
contextLength: 1000000,
|
||||
maxOutputTokens: 64000,
|
||||
supportsReasoning: true,
|
||||
},
|
||||
{
|
||||
id: "gpt-5.6-sol",
|
||||
name: "GPT-5.6-Sol",
|
||||
contextLength: 512000,
|
||||
maxOutputTokens: 64000,
|
||||
supportsReasoning: true,
|
||||
},
|
||||
{
|
||||
id: "gpt-5.6-terra",
|
||||
name: "GPT-5.6-Terra",
|
||||
contextLength: 256000,
|
||||
maxOutputTokens: 64000,
|
||||
supportsReasoning: true,
|
||||
},
|
||||
{
|
||||
id: "gpt-5.6-luna",
|
||||
name: "GPT-5.6-Luna",
|
||||
contextLength: 256000,
|
||||
maxOutputTokens: 64000,
|
||||
supportsReasoning: true,
|
||||
},
|
||||
{
|
||||
id: "gpt-5.5",
|
||||
name: "GPT-5.5",
|
||||
contextLength: 256000,
|
||||
maxOutputTokens: 64000,
|
||||
supportsReasoning: true,
|
||||
},
|
||||
{
|
||||
id: "gpt-5.4",
|
||||
name: "GPT-5.4",
|
||||
contextLength: 256000,
|
||||
maxOutputTokens: 64000,
|
||||
supportsReasoning: true,
|
||||
},
|
||||
{
|
||||
id: "gpt-5.3-codex",
|
||||
name: "GPT-5.3-Codex",
|
||||
contextLength: 256000,
|
||||
maxOutputTokens: 64000,
|
||||
supportsReasoning: true,
|
||||
},
|
||||
{
|
||||
id: "gemini-3.5-flash",
|
||||
name: "Gemini-3.5-Flash",
|
||||
contextLength: 1000000,
|
||||
maxOutputTokens: 64000,
|
||||
supportsReasoning: true,
|
||||
supportsVision: true,
|
||||
},
|
||||
{
|
||||
id: "glm-5v-turbo",
|
||||
name: "GLM-5v-Turbo",
|
||||
contextLength: 200000,
|
||||
maxOutputTokens: 38000,
|
||||
supportsReasoning: true,
|
||||
supportsVision: true,
|
||||
},
|
||||
{
|
||||
id: "glm-5.3",
|
||||
name: "GLM-5.3",
|
||||
contextLength: 1000000,
|
||||
maxOutputTokens: 48000,
|
||||
supportsReasoning: true,
|
||||
},
|
||||
{
|
||||
id: "glm-5.3-flash",
|
||||
name: "GLM-5.3-Flash",
|
||||
contextLength: 1000000,
|
||||
maxOutputTokens: 48000,
|
||||
supportsReasoning: true,
|
||||
},
|
||||
{
|
||||
id: "glm-5.2",
|
||||
name: "GLM-5.2",
|
||||
contextLength: 1000000,
|
||||
maxOutputTokens: 48000,
|
||||
supportsReasoning: true,
|
||||
},
|
||||
{
|
||||
id: "glm-5.1",
|
||||
name: "GLM-5.1",
|
||||
contextLength: 200000,
|
||||
maxOutputTokens: 48000,
|
||||
supportsReasoning: true,
|
||||
},
|
||||
{
|
||||
id: "minimax-m3",
|
||||
name: "MiniMax-M3",
|
||||
contextLength: 512000,
|
||||
maxOutputTokens: 48000,
|
||||
supportsReasoning: true,
|
||||
supportsVision: true,
|
||||
},
|
||||
{
|
||||
id: "kimi-k3",
|
||||
name: "Kimi-K3",
|
||||
contextLength: 256000,
|
||||
maxOutputTokens: 32000,
|
||||
supportsReasoning: true,
|
||||
supportsVision: true,
|
||||
},
|
||||
{
|
||||
id: "kimi-k2.7",
|
||||
name: "Kimi-K2.7-Code",
|
||||
contextLength: 256000,
|
||||
maxOutputTokens: 32000,
|
||||
supportsReasoning: true,
|
||||
supportsVision: true,
|
||||
},
|
||||
{
|
||||
id: "kimi-k2.6",
|
||||
name: "Kimi-K2.6",
|
||||
contextLength: 256000,
|
||||
maxOutputTokens: 32000,
|
||||
supportsReasoning: true,
|
||||
supportsVision: true,
|
||||
},
|
||||
{
|
||||
id: "deepseek-v4.1-flash",
|
||||
name: "DeepSeek-V4.1-Flash",
|
||||
contextLength: 1000000,
|
||||
maxOutputTokens: 50000,
|
||||
supportsReasoning: true,
|
||||
supportsVision: true,
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
export default codebuddy_intlProvider;
|
||||
|
|
@ -1,208 +1,14 @@
|
|||
import { DefaultExecutor } from "./default.ts";
|
||||
import type { ExecuteInput, ExecutorExecuteResult, ProviderCredentials } from "./base.ts";
|
||||
|
||||
const SENSITIVE_CONTENT_REJECTION =
|
||||
"抱歉,系统检测到您当前输入的信息存在敏感内容,我无法响应您的请求,请检查后重新输入";
|
||||
const LARGE_TOOL_METADATA_BYTES = 64 * 1024;
|
||||
|
||||
function responseFromResult(result: ExecutorExecuteResult): Response {
|
||||
return result instanceof Response ? result : result.response;
|
||||
}
|
||||
|
||||
function credentialsFromResult(
|
||||
result: ExecutorExecuteResult,
|
||||
fallback: ProviderCredentials
|
||||
): ProviderCredentials {
|
||||
if (result instanceof Response || !result.headers) return fallback;
|
||||
|
||||
const authorization = Object.entries(result.headers).find(
|
||||
([name]) => name.toLowerCase() === "authorization"
|
||||
)?.[1];
|
||||
if (!authorization?.startsWith("Bearer ")) return fallback;
|
||||
|
||||
return {
|
||||
...fallback,
|
||||
accessToken: authorization.slice("Bearer ".length),
|
||||
expiresAt: undefined,
|
||||
};
|
||||
}
|
||||
|
||||
function compactToolDescriptions(body: unknown): unknown | null {
|
||||
if (!body || typeof body !== "object" || Array.isArray(body)) return null;
|
||||
|
||||
const request = body as Record<string, unknown>;
|
||||
if (!Array.isArray(request.tools) || request.tools.length === 0) return null;
|
||||
|
||||
const originalTools = request.tools;
|
||||
try {
|
||||
const serializedTools = JSON.stringify(originalTools);
|
||||
if (new TextEncoder().encode(serializedTools).byteLength < LARGE_TOOL_METADATA_BYTES) {
|
||||
return null;
|
||||
}
|
||||
} catch {
|
||||
return null;
|
||||
}
|
||||
|
||||
let tools: unknown[] | null = null;
|
||||
originalTools.forEach((tool, index) => {
|
||||
if (!tool || typeof tool !== "object" || Array.isArray(tool)) return;
|
||||
|
||||
const declaration = tool as Record<string, unknown>;
|
||||
if (
|
||||
declaration.type !== "function" ||
|
||||
!declaration.function ||
|
||||
typeof declaration.function !== "object" ||
|
||||
Array.isArray(declaration.function)
|
||||
) {
|
||||
return;
|
||||
}
|
||||
|
||||
const toolFunction = declaration.function as Record<string, unknown>;
|
||||
if (!Object.prototype.hasOwnProperty.call(toolFunction, "description")) return;
|
||||
|
||||
const compactFunction = { ...toolFunction };
|
||||
delete compactFunction.description;
|
||||
tools ??= originalTools.slice();
|
||||
tools[index] = { ...declaration, function: compactFunction };
|
||||
});
|
||||
|
||||
return tools ? { ...request, tools } : null;
|
||||
}
|
||||
|
||||
async function isSensitiveContentRejection(response: Response): Promise<boolean> {
|
||||
if (response.status !== 400) return false;
|
||||
const responseText = await response
|
||||
.clone()
|
||||
.text()
|
||||
.catch(() => "");
|
||||
return responseText.includes(SENSITIVE_CONTENT_REJECTION);
|
||||
}
|
||||
import { CodeBuddyBaseExecutor } from "./codebuddy/shared.ts";
|
||||
|
||||
/**
|
||||
* CodeBuddyCnExecutor — talks to https://copilot.tencent.com/v2/chat/completions
|
||||
*
|
||||
* CodeBuddy CN is an OpenAI-compatible Tencent gateway but it rejects non-stream
|
||||
* chat requests (HTTP 400, code 11101 "Non-stream chat request is currently not
|
||||
* supported"). The same-format (openai→openai) translator path leaves body.stream
|
||||
* as the client sent it, so we force it true here — OmniRoute still re-aggregates
|
||||
* the SSE into a JSON response for non-streaming clients.
|
||||
*
|
||||
* Reasoning params are opt-in: reasoning_summary:"auto" is only added when the
|
||||
* client explicitly sets reasoning_effort. Plain requests are left untouched.
|
||||
* When the caller explicitly asks for "none"/"off" we drop the field entirely
|
||||
* (the gateway has no "none" value). Forcing reasoning on plain requests trips
|
||||
* CodeBuddy's content filter and returns an error.
|
||||
*
|
||||
* Agent system prompt replacement: Tencent's content filter flags CLI agent system
|
||||
* prompts ("You are Claude Code, Anthropic's official CLI…") as prompt injection /
|
||||
* sensitive content and rejects the whole request. Detect agent system prompts
|
||||
* (length catch-all + identity-marker regex) and replace them with a neutral one,
|
||||
* while leaving legitimate user system prompts untouched. Content may be a string
|
||||
* or typed blocks ([{type:"text",text}]) depending on the incoming client format,
|
||||
* so flatten before matching and preserve the original shape on replacement.
|
||||
* CodeBuddy CN is an OpenAI-compatible Tencent gateway. Inherits all shared
|
||||
* CodeBuddy gateway behavior (forced stream, reasoning_summary, agent-prompt
|
||||
* sanitization, tool compaction).
|
||||
*/
|
||||
export class CodeBuddyCnExecutor extends DefaultExecutor {
|
||||
constructor() {
|
||||
super("codebuddy-cn");
|
||||
}
|
||||
|
||||
async execute(input: ExecuteInput): Promise<ExecutorExecuteResult> {
|
||||
const result = await super.execute(input);
|
||||
if (!(await isSensitiveContentRejection(responseFromResult(result)))) {
|
||||
return result;
|
||||
}
|
||||
|
||||
const compactBody = compactToolDescriptions(input.body);
|
||||
if (!compactBody) return result;
|
||||
|
||||
input.log?.debug?.(
|
||||
"CODEBUDDY_CN",
|
||||
"Upstream rejected an oversized tool request as sensitive content; retrying with compact tool descriptions"
|
||||
);
|
||||
return super.execute({
|
||||
...input,
|
||||
body: compactBody,
|
||||
credentials: credentialsFromResult(result, input.credentials),
|
||||
});
|
||||
}
|
||||
|
||||
transformRequest(
|
||||
model: string,
|
||||
body: unknown,
|
||||
stream: boolean,
|
||||
credentials: ProviderCredentials
|
||||
): unknown {
|
||||
const transformed = super.transformRequest(model, body, stream, credentials);
|
||||
if (!transformed || typeof transformed !== "object" || Array.isArray(transformed)) {
|
||||
return transformed;
|
||||
}
|
||||
const out = transformed as Record<string, unknown>;
|
||||
out.stream = true;
|
||||
|
||||
const eff = out.reasoning_effort;
|
||||
if (eff === "none" || eff === "off") {
|
||||
delete out.reasoning_effort;
|
||||
} else if (eff) {
|
||||
out.reasoning_summary = "auto";
|
||||
}
|
||||
|
||||
// --- Agent system prompt replacement ---
|
||||
// Tencent's content filter flags CLI agent system prompts as sensitive content.
|
||||
// Detect and replace them with a neutral prompt.
|
||||
const NEUTRAL_PROMPT = "You are a helpful AI assistant that helps with software engineering tasks.";
|
||||
const AGENT_PATTERN = /you are claude code|claude.?code.+official.+cli|anthropic.+official.+cli|anxthxropic.+official.+cli|you are (?:cursor|windsurf|cline|aider|continue|copilot|cody)|you are an? (?:ai )?(?:coding |code )?agent|cc_entrypoint\s*=\s*(?:cli|vscode|jetbrains|gui)|claude.?code.+issues|give feedback.+claude.?code|you are .{0,30}(?:powerful )?ai agent|orchestration capabilities|OhMyOpenCode|<agent-identity>|<Role>|<Behavior_Instructions>/i;
|
||||
const flatten = (content: unknown): string =>
|
||||
typeof content === "string"
|
||||
? content
|
||||
: Array.isArray(content)
|
||||
? (content as Array<Record<string, unknown>>)
|
||||
.map((b) => (b && typeof b.text === "string" ? b.text : ""))
|
||||
.join("\n")
|
||||
: "";
|
||||
|
||||
// Handle top-level `system` field (Anthropic format after translation)
|
||||
if (out.system) {
|
||||
const text = flatten(out.system);
|
||||
if (text && (text.length > 2000 || AGENT_PATTERN.test(text))) {
|
||||
out.system = NEUTRAL_PROMPT;
|
||||
}
|
||||
}
|
||||
|
||||
// Handle messages array with role: "system"
|
||||
if (Array.isArray(out.messages)) {
|
||||
out.messages = (out.messages as Array<Record<string, unknown>>).map((message) => {
|
||||
if (!message || message.role !== "system") return message;
|
||||
const text = flatten(message.content);
|
||||
if (!text) return message;
|
||||
if (text.length > 2000 || AGENT_PATTERN.test(text)) {
|
||||
return typeof message.content === "string"
|
||||
? { ...message, content: NEUTRAL_PROMPT }
|
||||
: { ...message, content: [{ type: "text", text: NEUTRAL_PROMPT }] };
|
||||
}
|
||||
return message;
|
||||
});
|
||||
}
|
||||
|
||||
// --- Strip oversized tool descriptions (>64KB) ---
|
||||
// Large tool descriptions can also trigger the content filter.
|
||||
if (Array.isArray(out.tools) && out.tools.length > 0) {
|
||||
try {
|
||||
const s = JSON.stringify(out.tools);
|
||||
if (new TextEncoder().encode(s).byteLength >= 65536) {
|
||||
out.tools = (out.tools as Array<Record<string, unknown>>).map((tool) => {
|
||||
if (!tool || typeof tool !== "object" || Array.isArray(tool)) return tool;
|
||||
if (tool.type !== "function" || !tool.function || typeof tool.function !== "object" || Array.isArray(tool.function)) return tool;
|
||||
if (!Object.prototype.hasOwnProperty.call(tool.function, "description")) return tool;
|
||||
const cf = { ...(tool.function as Record<string, unknown>) };
|
||||
delete cf.description;
|
||||
return { ...tool, function: cf };
|
||||
});
|
||||
}
|
||||
} catch {}
|
||||
}
|
||||
|
||||
return out;
|
||||
export class CodeBuddyCnExecutor extends CodeBuddyBaseExecutor {
|
||||
constructor(providerId: string = "codebuddy-cn") {
|
||||
super(providerId);
|
||||
}
|
||||
}
|
||||
|
||||
export default CodeBuddyCnExecutor;
|
||||
|
|
|
|||
38
open-sse/executors/codebuddy-intl.ts
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
import { CodeBuddyBaseExecutor, NEUTRAL_PROMPT } from "./codebuddy/shared.ts";
|
||||
import type { ProviderCredentials } from "./base.ts";
|
||||
|
||||
/**
|
||||
* CodeBuddyIntlExecutor — talks to https://www.codebuddy.ai/v2/chat/completions
|
||||
*
|
||||
* CodeBuddy International gateway strictly requires the first message in the
|
||||
* request to be a system prompt (rejects with 400 "first message is not system
|
||||
* prompt" otherwise). Inherits all shared CodeBuddy gateway behavior and
|
||||
* prepends a neutral system prompt when callers/probes send none.
|
||||
*/
|
||||
export class CodeBuddyIntlExecutor extends CodeBuddyBaseExecutor {
|
||||
constructor(providerId: string = "codebuddy-intl") {
|
||||
super(providerId);
|
||||
}
|
||||
|
||||
transformRequest(
|
||||
model: string,
|
||||
body: unknown,
|
||||
stream: boolean,
|
||||
credentials: ProviderCredentials
|
||||
): unknown {
|
||||
const transformed = super.transformRequest(model, body, stream, credentials);
|
||||
if (!transformed || typeof transformed !== "object" || Array.isArray(transformed)) {
|
||||
return transformed;
|
||||
}
|
||||
const out = transformed as Record<string, unknown>;
|
||||
|
||||
if (Array.isArray(out.messages)) {
|
||||
const first = out.messages[0] as Record<string, unknown> | undefined;
|
||||
if (!first || first.role !== "system") {
|
||||
out.messages = [{ role: "system", content: NEUTRAL_PROMPT }, ...out.messages];
|
||||
}
|
||||
}
|
||||
|
||||
return out;
|
||||
}
|
||||
}
|
||||
199
open-sse/executors/codebuddy/shared.ts
Normal file
|
|
@ -0,0 +1,199 @@
|
|||
import { DefaultExecutor } from "../default.ts";
|
||||
import type { ExecuteInput, ExecutorExecuteResult, ProviderCredentials } from "../base.ts";
|
||||
|
||||
export const SENSITIVE_CONTENT_REJECTION =
|
||||
"抱歉,系统检测到您当前输入的信息存在敏感内容,我无法响应您的请求,请检查后重新输入";
|
||||
export const LARGE_TOOL_METADATA_BYTES = 64 * 1024;
|
||||
export const NEUTRAL_PROMPT =
|
||||
"You are a helpful AI assistant that helps with software engineering tasks.";
|
||||
export const AGENT_PATTERN =
|
||||
/you are claude code|claude.?code.+official.+cli|anthropic.+official.+cli|anxthxropic.+official.+cli|you are (?:cursor|windsurf|cline|aider|continue|copilot|cody)|you are an? (?:ai )?(?:coding |code )?agent|cc_entrypoint\s*=\s*(?:cli|vscode|jetbrains|gui)|claude.?code.+issues|give feedback.+claude.?code|you are .{0,30}(?:powerful )?ai agent|orchestration capabilities|OhMyOpenCode|<agent-identity>|<Role>|<Behavior_Instructions>/i;
|
||||
|
||||
export function responseFromResult(result: ExecutorExecuteResult): Response {
|
||||
return result instanceof Response ? result : result.response;
|
||||
}
|
||||
|
||||
export function credentialsFromResult(
|
||||
result: ExecutorExecuteResult,
|
||||
fallback: ProviderCredentials
|
||||
): ProviderCredentials {
|
||||
if (result instanceof Response || !result.headers) return fallback;
|
||||
|
||||
const authorization = Object.entries(result.headers).find(
|
||||
([name]) => name.toLowerCase() === "authorization"
|
||||
)?.[1];
|
||||
if (!authorization?.startsWith("Bearer ")) return fallback;
|
||||
|
||||
return {
|
||||
...fallback,
|
||||
accessToken: authorization.slice("Bearer ".length),
|
||||
expiresAt: undefined,
|
||||
};
|
||||
}
|
||||
|
||||
export function compactToolDescriptions(body: unknown): unknown | null {
|
||||
if (!body || typeof body !== "object" || Array.isArray(body)) return null;
|
||||
|
||||
const request = body as Record<string, unknown>;
|
||||
if (!Array.isArray(request.tools) || request.tools.length === 0) return null;
|
||||
|
||||
const originalTools = request.tools;
|
||||
try {
|
||||
const serializedTools = JSON.stringify(originalTools);
|
||||
if (new TextEncoder().encode(serializedTools).byteLength < LARGE_TOOL_METADATA_BYTES) {
|
||||
return null;
|
||||
}
|
||||
} catch {
|
||||
return null;
|
||||
}
|
||||
|
||||
let tools: unknown[] | null = null;
|
||||
originalTools.forEach((tool, index) => {
|
||||
if (!tool || typeof tool !== "object" || Array.isArray(tool)) return;
|
||||
|
||||
const declaration = tool as Record<string, unknown>;
|
||||
if (
|
||||
declaration.type !== "function" ||
|
||||
!declaration.function ||
|
||||
typeof declaration.function !== "object" ||
|
||||
Array.isArray(declaration.function)
|
||||
) {
|
||||
return;
|
||||
}
|
||||
|
||||
const toolFunction = declaration.function as Record<string, unknown>;
|
||||
if (!Object.prototype.hasOwnProperty.call(toolFunction, "description")) return;
|
||||
|
||||
const compactFunction = { ...toolFunction };
|
||||
delete compactFunction.description;
|
||||
tools ??= originalTools.slice();
|
||||
tools[index] = { ...declaration, function: compactFunction };
|
||||
});
|
||||
|
||||
return tools ? { ...request, tools } : null;
|
||||
}
|
||||
|
||||
export async function isSensitiveContentRejection(response: Response): Promise<boolean> {
|
||||
if (response.status !== 400) return false;
|
||||
const responseText = await response
|
||||
.clone()
|
||||
.text()
|
||||
.catch(() => "");
|
||||
return responseText.includes(SENSITIVE_CONTENT_REJECTION);
|
||||
}
|
||||
|
||||
export function flattenContent(content: unknown): string {
|
||||
if (typeof content === "string") return content;
|
||||
if (Array.isArray(content)) {
|
||||
return (content as Array<Record<string, unknown>>)
|
||||
.map((b) => (b && typeof b.text === "string" ? b.text : ""))
|
||||
.join("\n");
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
/**
|
||||
* Shared base executor for CodeBuddy gateways (Tencent CN and International).
|
||||
*
|
||||
* Both speak OpenAI-compatible SSE over their respective gateways. Shared behavior:
|
||||
* - forces stream: true (non-stream rejected with code 11101)
|
||||
* - handles reasoning_effort (strips none/off, adds reasoning_summary:"auto")
|
||||
* - sanitizes agent system prompts to avoid Tencent's content filter
|
||||
* - proactively strips oversized tool descriptions (>64KB)
|
||||
* - retries sensitive-content 400 rejections once with compact tool descriptions
|
||||
*/
|
||||
export class CodeBuddyBaseExecutor extends DefaultExecutor {
|
||||
constructor(providerId: string) {
|
||||
super(providerId);
|
||||
}
|
||||
|
||||
async execute(input: ExecuteInput): Promise<ExecutorExecuteResult> {
|
||||
const result = await super.execute(input);
|
||||
if (!(await isSensitiveContentRejection(responseFromResult(result)))) {
|
||||
return result;
|
||||
}
|
||||
|
||||
const compactBody = compactToolDescriptions(input.body);
|
||||
if (!compactBody) return result;
|
||||
|
||||
const logTag = (this.provider || "codebuddy").toUpperCase().replace(/-/g, "_");
|
||||
input.log?.debug?.(
|
||||
logTag,
|
||||
"Upstream rejected an oversized tool request as sensitive content; retrying with compact tool descriptions"
|
||||
);
|
||||
return super.execute({
|
||||
...input,
|
||||
body: compactBody,
|
||||
credentials: credentialsFromResult(result, input.credentials),
|
||||
});
|
||||
}
|
||||
|
||||
transformRequest(
|
||||
model: string,
|
||||
body: unknown,
|
||||
stream: boolean,
|
||||
credentials: ProviderCredentials
|
||||
): unknown {
|
||||
const transformed = super.transformRequest(model, body, stream, credentials);
|
||||
if (!transformed || typeof transformed !== "object" || Array.isArray(transformed)) {
|
||||
return transformed;
|
||||
}
|
||||
const out = transformed as Record<string, unknown>;
|
||||
out.stream = true;
|
||||
|
||||
const eff = out.reasoning_effort;
|
||||
if (eff === "none" || eff === "off") {
|
||||
delete out.reasoning_effort;
|
||||
} else if (eff) {
|
||||
out.reasoning_summary = "auto";
|
||||
}
|
||||
|
||||
// --- Agent system prompt replacement ---
|
||||
if (out.system) {
|
||||
const text = flattenContent(out.system);
|
||||
if (text && (text.length > 2000 || AGENT_PATTERN.test(text))) {
|
||||
out.system = NEUTRAL_PROMPT;
|
||||
}
|
||||
}
|
||||
|
||||
if (Array.isArray(out.messages)) {
|
||||
out.messages = (out.messages as Array<Record<string, unknown>>).map((message) => {
|
||||
if (!message || message.role !== "system") return message;
|
||||
const text = flattenContent(message.content);
|
||||
if (!text) return message;
|
||||
if (text.length > 2000 || AGENT_PATTERN.test(text)) {
|
||||
return typeof message.content === "string"
|
||||
? { ...message, content: NEUTRAL_PROMPT }
|
||||
: { ...message, content: [{ type: "text", text: NEUTRAL_PROMPT }] };
|
||||
}
|
||||
return message;
|
||||
});
|
||||
}
|
||||
|
||||
// --- Strip oversized tool descriptions (>64KB) ---
|
||||
if (Array.isArray(out.tools) && out.tools.length > 0) {
|
||||
try {
|
||||
const s = JSON.stringify(out.tools);
|
||||
if (new TextEncoder().encode(s).byteLength >= 65536) {
|
||||
out.tools = (out.tools as Array<Record<string, unknown>>).map((tool) => {
|
||||
if (!tool || typeof tool !== "object" || Array.isArray(tool)) return tool;
|
||||
if (
|
||||
tool.type !== "function" ||
|
||||
!tool.function ||
|
||||
typeof tool.function !== "object" ||
|
||||
Array.isArray(tool.function)
|
||||
) {
|
||||
return tool;
|
||||
}
|
||||
if (!Object.prototype.hasOwnProperty.call(tool.function, "description")) return tool;
|
||||
const cf = { ...(tool.function as Record<string, unknown>) };
|
||||
delete cf.description;
|
||||
return { ...tool, function: cf };
|
||||
});
|
||||
}
|
||||
} catch {}
|
||||
}
|
||||
|
||||
return out;
|
||||
}
|
||||
}
|
||||
|
|
@ -168,6 +168,8 @@ const lazyExecutors: Record<string, () => Promise<BaseExecutor>> = {
|
|||
gc: () => import("./grok-cli.ts").then((m) => new m.GrokCliExecutor()), // Alias
|
||||
"codebuddy-cn": () => import("./codebuddy-cn.ts").then((m) => new m.CodeBuddyCnExecutor()),
|
||||
cbcn: () => import("./codebuddy-cn.ts").then((m) => new m.CodeBuddyCnExecutor()), // Alias for codebuddy-cn
|
||||
"codebuddy-intl": () => import("./codebuddy-intl.ts").then((m) => new m.CodeBuddyIntlExecutor()),
|
||||
cbai: () => import("./codebuddy-intl.ts").then((m) => new m.CodeBuddyIntlExecutor()), // Alias for codebuddy-intl
|
||||
"zenmux-free": () => import("./zenmux-free.ts").then((m) => new m.ZenmuxFreeExecutor()),
|
||||
"cloudflare-playground": () =>
|
||||
import("./cloudflare-playground.ts").then((m) => new m.CloudflarePlaygroundExecutor()),
|
||||
|
|
|
|||
|
|
@ -40,6 +40,7 @@ import {
|
|||
refreshWithRetry,
|
||||
} from "./tokenRefresh/circuitBreaker.ts";
|
||||
import { refreshCodebuddyCnToken } from "./tokenRefresh/providers/codebuddyCn.ts";
|
||||
import { refreshCodebuddyIntlToken } from "./tokenRefresh/providers/codebuddyIntl.ts";
|
||||
import { refreshWorkbuddyToken } from "./tokenRefresh/providers/workbuddy.ts";
|
||||
import { refreshClineToken } from "./tokenRefresh/providers/cline.ts";
|
||||
import { refreshKimiCodingToken } from "./tokenRefresh/providers/kimiCoding.ts";
|
||||
|
|
@ -472,6 +473,9 @@ async function _getAccessTokenInternal(provider, credentials, log, proxyConfig:
|
|||
case "codebuddy-cn":
|
||||
return await refreshCodebuddyCnToken(credentials.refreshToken, log, proxyConfig);
|
||||
|
||||
case "codebuddy-intl":
|
||||
return await refreshCodebuddyIntlToken(credentials.refreshToken, log, proxyConfig);
|
||||
|
||||
case "workbuddy":
|
||||
return await refreshWorkbuddyToken(credentials.refreshToken, log, proxyConfig);
|
||||
|
||||
|
|
@ -506,6 +510,7 @@ export function supportsTokenRefresh(provider) {
|
|||
// testStatus="expired" / errorCode="no_refresh_token".
|
||||
"gitlab-duo",
|
||||
"codebuddy-cn",
|
||||
"codebuddy-intl",
|
||||
"workbuddy",
|
||||
"cursor",
|
||||
]);
|
||||
|
|
|
|||
|
|
@ -1,71 +1,12 @@
|
|||
// @ts-nocheck
|
||||
// Extracted from open-sse/services/tokenRefresh.ts — see ../shared.ts for
|
||||
// provenance notes (ported idea from KooshaPari's PR #7338, redone on tip).
|
||||
import { runWithProxyContext } from "../../../utils/proxyFetch.ts";
|
||||
import type { RefreshLogger } from "../shared.ts";
|
||||
import { refreshCodebuddyToken } from "./codebuddyShared.ts";
|
||||
|
||||
/**
|
||||
* CodeBuddy CN (Tencent) token refresh — POST /v2/plugin/auth/token/refresh with
|
||||
* the refresh token carried in the X-Refresh-Token header (not a form body),
|
||||
* matching the official CodeBuddy CLI. Response: { code: 0, data: <token> }.
|
||||
*/
|
||||
export async function refreshCodebuddyCnToken(
|
||||
refreshToken: string,
|
||||
log: RefreshLogger,
|
||||
proxyConfig: unknown = null
|
||||
) {
|
||||
if (!refreshToken) return null;
|
||||
const { CODEBUDDY_CN_CONFIG } = await import("@/lib/oauth/constants/oauth");
|
||||
const oauth = CODEBUDDY_CN_CONFIG;
|
||||
try {
|
||||
const response = await runWithProxyContext(proxyConfig, () =>
|
||||
fetch(oauth.refreshUrl, {
|
||||
method: "POST",
|
||||
headers: {
|
||||
"Content-Type": "application/json",
|
||||
Accept: "application/json",
|
||||
"User-Agent": oauth.userAgent,
|
||||
"X-Requested-With": "XMLHttpRequest",
|
||||
"X-Domain": "copilot.tencent.com",
|
||||
"X-Refresh-Token": refreshToken,
|
||||
"X-Auth-Refresh-Source": "plugin",
|
||||
"X-Product": "SaaS",
|
||||
},
|
||||
body: "{}",
|
||||
})
|
||||
);
|
||||
|
||||
if (!response.ok) {
|
||||
const errorText = await response.text();
|
||||
log?.error?.("TOKEN_REFRESH", "Failed to refresh CodeBuddy CN token", {
|
||||
status: response.status,
|
||||
error: errorText,
|
||||
});
|
||||
return null;
|
||||
}
|
||||
|
||||
const data = await response.json();
|
||||
if (data?.code !== 0 || !data?.data?.accessToken) {
|
||||
log?.error?.("TOKEN_REFRESH", "CodeBuddy CN token refresh returned no token", {
|
||||
code: data?.code,
|
||||
msg: data?.msg,
|
||||
});
|
||||
return null;
|
||||
}
|
||||
|
||||
log?.info?.("TOKEN_REFRESH", "Successfully refreshed CodeBuddy CN token", {
|
||||
hasNewAccessToken: !!data.data.accessToken,
|
||||
hasNewRefreshToken: !!data.data.refreshToken,
|
||||
expiresIn: data.data.expiresIn,
|
||||
});
|
||||
|
||||
return {
|
||||
accessToken: data.data.accessToken,
|
||||
refreshToken: data.data.refreshToken || refreshToken,
|
||||
expiresIn: data.data.expiresIn,
|
||||
};
|
||||
} catch (error) {
|
||||
log?.error?.("TOKEN_REFRESH", `Network error refreshing CodeBuddy CN token: ${error?.message}`);
|
||||
return null;
|
||||
}
|
||||
return refreshCodebuddyToken(CODEBUDDY_CN_CONFIG, refreshToken, log, proxyConfig, "CodeBuddy CN");
|
||||
}
|
||||
|
|
|
|||
18
open-sse/services/tokenRefresh/providers/codebuddyIntl.ts
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
// @ts-nocheck
|
||||
import type { RefreshLogger } from "../shared.ts";
|
||||
import { refreshCodebuddyToken } from "./codebuddyShared.ts";
|
||||
|
||||
export async function refreshCodebuddyIntlToken(
|
||||
refreshToken: string,
|
||||
log: RefreshLogger,
|
||||
proxyConfig: unknown = null
|
||||
) {
|
||||
const { CODEBUDDY_INTL_CONFIG } = await import("@/lib/oauth/constants/oauth");
|
||||
return refreshCodebuddyToken(
|
||||
CODEBUDDY_INTL_CONFIG,
|
||||
refreshToken,
|
||||
log,
|
||||
proxyConfig,
|
||||
"CodeBuddy Intl"
|
||||
);
|
||||
}
|
||||
75
open-sse/services/tokenRefresh/providers/codebuddyShared.ts
Normal file
|
|
@ -0,0 +1,75 @@
|
|||
// @ts-nocheck
|
||||
// Extracted from open-sse/services/tokenRefresh.ts — see ../shared.ts for
|
||||
// provenance notes (ported idea from KooshaPari's PR #7338, redone on tip).
|
||||
import { runWithProxyContext } from "../../../utils/proxyFetch.ts";
|
||||
import type { RefreshLogger } from "../shared.ts";
|
||||
|
||||
/**
|
||||
* Shared CodeBuddy token refresh — POST /v2/plugin/auth/token/refresh with
|
||||
* the refresh token carried in the X-Refresh-Token header (not a form body),
|
||||
* matching the official CodeBuddy CLI. Response: { code: 0, data: <token> }.
|
||||
*/
|
||||
export async function refreshCodebuddyToken(
|
||||
oauthConfig: { refreshUrl: string; userAgent: string; domain?: string },
|
||||
refreshToken: string,
|
||||
log: RefreshLogger,
|
||||
proxyConfig: unknown = null,
|
||||
realmLabel: string = "CodeBuddy"
|
||||
) {
|
||||
if (!refreshToken) return null;
|
||||
const domain = oauthConfig.domain || "copilot.tencent.com";
|
||||
try {
|
||||
const response = await runWithProxyContext(proxyConfig, () =>
|
||||
fetch(oauthConfig.refreshUrl, {
|
||||
method: "POST",
|
||||
headers: {
|
||||
"Content-Type": "application/json",
|
||||
Accept: "application/json",
|
||||
"User-Agent": oauthConfig.userAgent,
|
||||
"X-Requested-With": "XMLHttpRequest",
|
||||
"X-Domain": domain,
|
||||
"X-Refresh-Token": refreshToken,
|
||||
"X-Auth-Refresh-Source": "plugin",
|
||||
"X-Product": "SaaS",
|
||||
},
|
||||
body: "{}",
|
||||
})
|
||||
);
|
||||
|
||||
if (!response.ok) {
|
||||
const errorText = await response.text();
|
||||
log?.error?.("TOKEN_REFRESH", `Failed to refresh ${realmLabel} token`, {
|
||||
status: response.status,
|
||||
error: errorText,
|
||||
});
|
||||
return null;
|
||||
}
|
||||
|
||||
const data = await response.json();
|
||||
if (data?.code !== 0 || !data?.data?.accessToken) {
|
||||
log?.error?.("TOKEN_REFRESH", `${realmLabel} token refresh returned no token`, {
|
||||
code: data?.code,
|
||||
msg: data?.msg,
|
||||
});
|
||||
return null;
|
||||
}
|
||||
|
||||
log?.info?.("TOKEN_REFRESH", `Successfully refreshed ${realmLabel} token`, {
|
||||
hasNewAccessToken: !!data.data.accessToken,
|
||||
hasNewRefreshToken: !!data.data.refreshToken,
|
||||
expiresIn: data.data.expiresIn,
|
||||
});
|
||||
|
||||
return {
|
||||
accessToken: data.data.accessToken,
|
||||
refreshToken: data.data.refreshToken || refreshToken,
|
||||
expiresIn: data.data.expiresIn,
|
||||
};
|
||||
} catch (error) {
|
||||
log?.error?.(
|
||||
"TOKEN_REFRESH",
|
||||
`Network error refreshing ${realmLabel} token: ${error?.message}`
|
||||
);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
|
@ -55,6 +55,7 @@ import { getLlmgatewayUsage } from "./usage/llmgateway.ts";
|
|||
import { getLyceumUsage } from "./usage/lyceum.ts";
|
||||
import { getOllamaCloudUsage } from "./opencodeOllamaUsage.ts";
|
||||
import { getCodeBuddyCnUsage } from "./usage/codebuddy-cn.ts";
|
||||
import { getCodeBuddyIntlUsage } from "./usage/codebuddy-intl.ts";
|
||||
import { getPromptQlUsage } from "./usage/promptql.ts";
|
||||
import { getHyperAgentUsage } from "./usage/hyperagent.ts";
|
||||
import { getGitHubUsage, formatGitHubQuotaSnapshot, inferGitHubPlanName } from "./usage/github.ts";
|
||||
|
|
@ -236,6 +237,9 @@ export async function getUsageForProvider(
|
|||
return await getGrokCliUsage(accessToken);
|
||||
case "codebuddy-cn":
|
||||
return await getCodeBuddyCnUsage(accessToken, apiKey, providerSpecificData);
|
||||
case "codebuddy-intl":
|
||||
case "cbai":
|
||||
return await getCodeBuddyIntlUsage(accessToken, apiKey, providerSpecificData);
|
||||
case "promptql":
|
||||
case "pql":
|
||||
// DDN lux JWTs carry projectId only in JWT aud; connection.projectId may be set by sync.
|
||||
|
|
|
|||
|
|
@ -1,201 +1,19 @@
|
|||
/**
|
||||
* CodeBuddy CN usage handler — scoped to the "codebuddy-cn" provider.
|
||||
*
|
||||
* Quota lives behind a Tencent billing endpoint (POST, payload wrapped twice
|
||||
* under data.Response.Data). It mixes two credit types that must NOT be merged:
|
||||
*
|
||||
* - Refill / base ("基础体验包"): recurring allowance whose cycle resets long
|
||||
* before the resource itself expires (CycleEndTime << DeductionEndTime).
|
||||
* Live numbers in the *Cycle* fields; resetAt = next refresh.
|
||||
* - Bonus ("活动赠送包"): one-shot credits that run a single cycle and expire
|
||||
* (CycleEndTime ≈ DeductionEndTime). Numbers in the plain Capacity fields.
|
||||
*
|
||||
* One quota row per package — cadence label (Monthly/Weekly/Daily) for refill
|
||||
* packs, "Bonus Pack N" for bonus packs (soonest-expiring first).
|
||||
*/
|
||||
|
||||
import { CODEBUDDY_CN_USER_AGENT } from "../../config/providerHeaderProfiles.ts";
|
||||
import { fetchCodeBuddyQuotaFromEndpoint, type CodeBuddyUsageResult } from "./codebuddyShared.ts";
|
||||
|
||||
const USAGE_URL = "https://copilot.tencent.com/v2/billing/meter/get-user-resource";
|
||||
|
||||
interface TencentAccount {
|
||||
PackageName?: string;
|
||||
SubProductName?: string;
|
||||
CycleStartTime?: string | number;
|
||||
CycleEndTime?: string | number;
|
||||
DeductionEndTime?: string | number;
|
||||
CycleCapacitySize?: number | string;
|
||||
CycleCapacitySizePrecise?: string | number;
|
||||
CycleCapacityUsed?: number | string;
|
||||
CycleCapacityUsedPrecise?: string | number;
|
||||
CapacitySize?: number | string;
|
||||
CapacitySizePrecise?: string | number;
|
||||
CapacityUsed?: number | string;
|
||||
CapacityUsedPrecise?: string | number;
|
||||
}
|
||||
|
||||
function parseResetTime(value: unknown): string | null {
|
||||
if (!value) return null;
|
||||
try {
|
||||
if (value instanceof Date) return value.toISOString();
|
||||
if (typeof value === "number") {
|
||||
const ts = value < 1e12 ? value * 1000 : value;
|
||||
const d = new Date(ts);
|
||||
return d.getTime() > 0 ? d.toISOString() : null;
|
||||
}
|
||||
if (typeof value === "string") {
|
||||
if (/^\d+$/.test(value)) {
|
||||
const n = Number(value);
|
||||
const d = new Date(n < 1e12 ? n * 1000 : n);
|
||||
return d.getTime() > 0 ? d.toISOString() : null;
|
||||
}
|
||||
const d = new Date(value);
|
||||
return Number.isNaN(d.getTime()) || d.getTime() <= 0 ? null : d.toISOString();
|
||||
}
|
||||
return null;
|
||||
} catch {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
// Prefer the *Precise string fields (exact), fall back to the numeric ones.
|
||||
function num(precise: unknown, plain: unknown): number {
|
||||
const n = Number(precise ?? plain);
|
||||
return Number.isFinite(n) ? n : 0;
|
||||
}
|
||||
|
||||
// Label a refill pack by its cycle length (Monthly is the common CodeBuddy case).
|
||||
function refillCadence(acc: TencentAccount): "Monthly" | "Weekly" | "Daily" {
|
||||
const start = parseResetTime(acc.CycleStartTime);
|
||||
const end = parseResetTime(acc.CycleEndTime);
|
||||
if (start && end) {
|
||||
const days = (new Date(end).getTime() - new Date(start).getTime()) / 86400000;
|
||||
if (days <= 1.5) return "Daily";
|
||||
if (days <= 10) return "Weekly";
|
||||
}
|
||||
return "Monthly";
|
||||
}
|
||||
|
||||
function cycleEndMs(acc: TencentAccount): number {
|
||||
const r = parseResetTime(acc.CycleEndTime);
|
||||
return r ? new Date(r).getTime() : Number.POSITIVE_INFINITY;
|
||||
}
|
||||
|
||||
function deductionEndMs(acc: TencentAccount): number {
|
||||
const v = acc.DeductionEndTime;
|
||||
if (typeof v === "number") return v < 1e12 ? v * 1000 : v;
|
||||
if (typeof v === "string" && /^\d+$/.test(v)) {
|
||||
const n = Number(v);
|
||||
return n < 1e12 ? n * 1000 : n;
|
||||
}
|
||||
const r = parseResetTime(v);
|
||||
return r ? new Date(r).getTime() : Number.POSITIVE_INFINITY;
|
||||
}
|
||||
|
||||
// Refill packs roll into a new cycle before the resource expires; bonus packs
|
||||
// end at expiry. >2d gap between cycle end and validity end = refill.
|
||||
const REFILL_GAP_MS = 2 * 24 * 60 * 60 * 1000;
|
||||
function isRefill(acc: TencentAccount): boolean {
|
||||
const ce = cycleEndMs(acc);
|
||||
const de = deductionEndMs(acc);
|
||||
return Number.isFinite(ce) && Number.isFinite(de) && de - ce > REFILL_GAP_MS;
|
||||
}
|
||||
|
||||
interface CodeBuddyUsageResult {
|
||||
plan?: string;
|
||||
quotas?: Record<
|
||||
string,
|
||||
{
|
||||
used: number;
|
||||
total: number;
|
||||
resetAt: string | null;
|
||||
unlimited: boolean;
|
||||
}
|
||||
>;
|
||||
message?: string;
|
||||
}
|
||||
export const CN_USAGE_URL = "https://copilot.tencent.com/v2/billing/meter/get-user-resource";
|
||||
|
||||
export async function getCodeBuddyCnUsage(
|
||||
accessToken?: string,
|
||||
apiKey?: string,
|
||||
_providerSpecificData?: unknown
|
||||
): Promise<CodeBuddyUsageResult> {
|
||||
const token = accessToken || apiKey;
|
||||
if (!token) {
|
||||
return { message: "CodeBuddy CN credential not available." };
|
||||
}
|
||||
|
||||
try {
|
||||
const response = await fetch(USAGE_URL, {
|
||||
method: "POST",
|
||||
headers: {
|
||||
Authorization: `Bearer ${token}`,
|
||||
"Content-Type": "application/json",
|
||||
Accept: "application/json",
|
||||
"User-Agent": CODEBUDDY_CN_USER_AGENT,
|
||||
"X-Product": "SaaS",
|
||||
"X-IDE-Type": "CLI",
|
||||
"X-IDE-Name": "CLI",
|
||||
"x-requested-with": "XMLHttpRequest",
|
||||
"x-codebuddy-request": "1",
|
||||
},
|
||||
body: "{}",
|
||||
});
|
||||
|
||||
if (response.status === 401 || response.status === 403) {
|
||||
return { message: "CodeBuddy CN credential invalid or expired." };
|
||||
}
|
||||
if (!response.ok) {
|
||||
return { message: `CodeBuddy CN quota API error (${response.status}).` };
|
||||
}
|
||||
|
||||
const json: any = await response.json();
|
||||
if (json?.code !== 0) {
|
||||
return { message: `CodeBuddy CN quota error: ${json?.msg || "unknown"}` };
|
||||
}
|
||||
|
||||
const data = json?.data?.Response?.Data || {};
|
||||
const accountsRaw: TencentAccount[] = Array.isArray(data.Accounts) ? data.Accounts : [];
|
||||
if (accountsRaw.length === 0) {
|
||||
return { message: "CodeBuddy CN connected. No credit package found." };
|
||||
}
|
||||
|
||||
const byExpiry = (a: TencentAccount, b: TencentAccount) => cycleEndMs(a) - cycleEndMs(b);
|
||||
const refills = accountsRaw.filter(isRefill).sort(byExpiry);
|
||||
const bonuses = accountsRaw.filter((a) => !isRefill(a)).sort(byExpiry);
|
||||
|
||||
const quotas: NonNullable<CodeBuddyUsageResult["quotas"]> = {};
|
||||
const seenRefill: Record<string, number> = {};
|
||||
refills.forEach((acc) => {
|
||||
const base = refillCadence(acc);
|
||||
seenRefill[base] = (seenRefill[base] || 0) + 1;
|
||||
const name = seenRefill[base] > 1 ? `${base} ${seenRefill[base]}` : base;
|
||||
quotas[name] = {
|
||||
used: num(acc.CycleCapacityUsedPrecise, acc.CycleCapacityUsed),
|
||||
total: num(acc.CycleCapacitySizePrecise, acc.CycleCapacitySize),
|
||||
resetAt: parseResetTime(acc.CycleEndTime),
|
||||
unlimited: false,
|
||||
};
|
||||
});
|
||||
bonuses.forEach((acc, i) => {
|
||||
quotas[`Bonus Pack ${i + 1}`] = {
|
||||
used: num(acc.CapacityUsedPrecise, acc.CapacityUsed),
|
||||
total: num(acc.CapacitySizePrecise, acc.CapacitySize),
|
||||
resetAt: parseResetTime(acc.CycleEndTime),
|
||||
unlimited: false,
|
||||
};
|
||||
});
|
||||
|
||||
const basePkg = refills[0] || accountsRaw[0] || {};
|
||||
const plan = basePkg.PackageName || basePkg.SubProductName || "CodeBuddy CN";
|
||||
|
||||
return { plan, quotas };
|
||||
} catch (error: any) {
|
||||
// Hard Rule #12: no raw err.message in any HTTP/SSE/executor response. Usage
|
||||
// handler returns a controlled string for the dashboard; do not include the
|
||||
// raw exception text in case it carries a path/stack snippet.
|
||||
return { message: "CodeBuddy CN error: failed to fetch quota." };
|
||||
}
|
||||
return fetchCodeBuddyQuotaFromEndpoint(accessToken, apiKey, {
|
||||
url: CN_USAGE_URL,
|
||||
userAgent: CODEBUDDY_CN_USER_AGENT,
|
||||
ideType: "CLI",
|
||||
label: "CodeBuddy CN",
|
||||
});
|
||||
}
|
||||
|
||||
export default getCodeBuddyCnUsage;
|
||||
|
|
|
|||
19
open-sse/services/usage/codebuddy-intl.ts
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
import { CODEBUDDY_INTL_USER_AGENT } from "../../config/providerHeaderProfiles.ts";
|
||||
import { fetchCodeBuddyQuotaFromEndpoint, type CodeBuddyUsageResult } from "./codebuddyShared.ts";
|
||||
|
||||
export const INTL_USAGE_URL = "https://www.codebuddy.ai/v2/billing/meter/get-user-resource";
|
||||
|
||||
export async function getCodeBuddyIntlUsage(
|
||||
accessToken?: string,
|
||||
apiKey?: string,
|
||||
_providerSpecificData?: unknown
|
||||
): Promise<CodeBuddyUsageResult> {
|
||||
return fetchCodeBuddyQuotaFromEndpoint(accessToken, apiKey, {
|
||||
url: INTL_USAGE_URL,
|
||||
userAgent: CODEBUDDY_INTL_USER_AGENT,
|
||||
ideType: "IDE",
|
||||
label: "CodeBuddy Intl",
|
||||
});
|
||||
}
|
||||
|
||||
export default getCodeBuddyIntlUsage;
|
||||
190
open-sse/services/usage/codebuddyShared.ts
Normal file
|
|
@ -0,0 +1,190 @@
|
|||
export interface TencentAccount {
|
||||
PackageName?: string;
|
||||
SubProductName?: string;
|
||||
CycleStartTime?: string | number;
|
||||
CycleEndTime?: string | number;
|
||||
DeductionEndTime?: string | number;
|
||||
CycleCapacitySize?: number | string;
|
||||
CycleCapacitySizePrecise?: string | number;
|
||||
CycleCapacityUsed?: number | string;
|
||||
CycleCapacityUsedPrecise?: string | number;
|
||||
CapacitySize?: number | string;
|
||||
CapacitySizePrecise?: string | number;
|
||||
CapacityUsed?: number | string;
|
||||
CapacityUsedPrecise?: string | number;
|
||||
}
|
||||
|
||||
export function parseResetTime(value: unknown): string | null {
|
||||
if (!value) return null;
|
||||
try {
|
||||
if (value instanceof Date) return value.toISOString();
|
||||
if (typeof value === "number") {
|
||||
const ts = value < 1e12 ? value * 1000 : value;
|
||||
const d = new Date(ts);
|
||||
return d.getTime() > 0 ? d.toISOString() : null;
|
||||
}
|
||||
if (typeof value === "string") {
|
||||
if (/^\d+$/.test(value)) {
|
||||
const n = Number(value);
|
||||
const d = new Date(n < 1e12 ? n * 1000 : n);
|
||||
return d.getTime() > 0 ? d.toISOString() : null;
|
||||
}
|
||||
const d = new Date(value);
|
||||
return Number.isNaN(d.getTime()) || d.getTime() <= 0 ? null : d.toISOString();
|
||||
}
|
||||
return null;
|
||||
} catch {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
export function num(precise: unknown, plain: unknown): number {
|
||||
const n = Number(precise ?? plain);
|
||||
return Number.isFinite(n) ? n : 0;
|
||||
}
|
||||
|
||||
export function refillCadence(acc: TencentAccount): "Monthly" | "Weekly" | "Daily" {
|
||||
const start = parseResetTime(acc.CycleStartTime);
|
||||
const end = parseResetTime(acc.CycleEndTime);
|
||||
if (start && end) {
|
||||
const days = (new Date(end).getTime() - new Date(start).getTime()) / 86400000;
|
||||
if (days <= 1.5) return "Daily";
|
||||
if (days <= 10) return "Weekly";
|
||||
}
|
||||
return "Monthly";
|
||||
}
|
||||
|
||||
export function cycleEndMs(acc: TencentAccount): number {
|
||||
const r = parseResetTime(acc.CycleEndTime);
|
||||
return r ? new Date(r).getTime() : Number.POSITIVE_INFINITY;
|
||||
}
|
||||
|
||||
export function deductionEndMs(acc: TencentAccount): number {
|
||||
const v = acc.DeductionEndTime;
|
||||
if (typeof v === "number") return v < 1e12 ? v * 1000 : v;
|
||||
if (typeof v === "string" && /^\d+$/.test(v)) {
|
||||
const n = Number(v);
|
||||
return n < 1e12 ? n * 1000 : n;
|
||||
}
|
||||
const r = parseResetTime(v);
|
||||
return r ? new Date(r).getTime() : Number.POSITIVE_INFINITY;
|
||||
}
|
||||
|
||||
export const REFILL_GAP_MS = 2 * 24 * 60 * 60 * 1000;
|
||||
export function isRefill(acc: TencentAccount): boolean {
|
||||
const ce = cycleEndMs(acc);
|
||||
const de = deductionEndMs(acc);
|
||||
return Number.isFinite(ce) && Number.isFinite(de) && de - ce > REFILL_GAP_MS;
|
||||
}
|
||||
|
||||
export interface CodeBuddyUsageResult {
|
||||
plan?: string;
|
||||
quotas?: Record<
|
||||
string,
|
||||
{
|
||||
used: number;
|
||||
total: number;
|
||||
resetAt: string | null;
|
||||
unlimited: boolean;
|
||||
}
|
||||
>;
|
||||
message?: string;
|
||||
}
|
||||
|
||||
export interface CodeBuddyQuotaOptions {
|
||||
url: string;
|
||||
userAgent: string;
|
||||
ideType: string;
|
||||
label: string;
|
||||
}
|
||||
|
||||
export async function fetchCodeBuddyQuotaFromEndpoint(
|
||||
accessToken: string | undefined,
|
||||
apiKey: string | undefined,
|
||||
options: CodeBuddyQuotaOptions
|
||||
): Promise<CodeBuddyUsageResult> {
|
||||
const token = accessToken || apiKey;
|
||||
const { url, userAgent, ideType, label } = options;
|
||||
if (!token) {
|
||||
return { message: `${label} credential not available.` };
|
||||
}
|
||||
|
||||
try {
|
||||
const response = await fetch(url, {
|
||||
method: "POST",
|
||||
headers: {
|
||||
Authorization: `Bearer ${token}`,
|
||||
"Content-Type": "application/json",
|
||||
Accept: "application/json",
|
||||
"User-Agent": userAgent,
|
||||
"X-Product": "SaaS",
|
||||
"X-IDE-Type": ideType,
|
||||
"X-IDE-Name": ideType,
|
||||
"x-requested-with": "XMLHttpRequest",
|
||||
"x-codebuddy-request": "1",
|
||||
},
|
||||
body: "{}",
|
||||
});
|
||||
|
||||
if (response.status === 401 || response.status === 403) {
|
||||
return { message: `${label} credential invalid or expired.` };
|
||||
}
|
||||
if (!response.ok) {
|
||||
return { message: `${label} quota API error (${response.status}).` };
|
||||
}
|
||||
|
||||
const json = (await response.json()) as {
|
||||
code?: number;
|
||||
msg?: string;
|
||||
data?: {
|
||||
Response?: {
|
||||
Data?: {
|
||||
Accounts?: TencentAccount[];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
if (json?.code !== 0) {
|
||||
return { message: `${label} quota error: ${json?.msg || "unknown"}` };
|
||||
}
|
||||
|
||||
const data = json?.data?.Response?.Data || {};
|
||||
const accountsRaw: TencentAccount[] = Array.isArray(data.Accounts) ? data.Accounts : [];
|
||||
if (accountsRaw.length === 0) {
|
||||
return { message: `${label} connected. No credit package found.` };
|
||||
}
|
||||
|
||||
const byExpiry = (a: TencentAccount, b: TencentAccount) => cycleEndMs(a) - cycleEndMs(b);
|
||||
const refills = accountsRaw.filter(isRefill).sort(byExpiry);
|
||||
const bonuses = accountsRaw.filter((a) => !isRefill(a)).sort(byExpiry);
|
||||
|
||||
const quotas: NonNullable<CodeBuddyUsageResult["quotas"]> = {};
|
||||
const seenRefill: Record<string, number> = {};
|
||||
refills.forEach((acc) => {
|
||||
const base = refillCadence(acc);
|
||||
seenRefill[base] = (seenRefill[base] || 0) + 1;
|
||||
const name = seenRefill[base] > 1 ? `${base} ${seenRefill[base]}` : base;
|
||||
quotas[name] = {
|
||||
used: num(acc.CycleCapacityUsedPrecise, acc.CycleCapacityUsed),
|
||||
total: num(acc.CycleCapacitySizePrecise, acc.CycleCapacitySize),
|
||||
resetAt: parseResetTime(acc.CycleEndTime),
|
||||
unlimited: false,
|
||||
};
|
||||
});
|
||||
bonuses.forEach((acc, i) => {
|
||||
quotas[`Bonus Pack ${i + 1}`] = {
|
||||
used: num(acc.CapacityUsedPrecise, acc.CapacityUsed),
|
||||
total: num(acc.CapacitySizePrecise, acc.CapacitySize),
|
||||
resetAt: parseResetTime(acc.CycleEndTime),
|
||||
unlimited: false,
|
||||
};
|
||||
});
|
||||
|
||||
const basePkg = refills[0] || accountsRaw[0] || {};
|
||||
const plan = basePkg.PackageName || basePkg.SubProductName || label;
|
||||
|
||||
return { plan, quotas };
|
||||
} catch (_error: unknown) {
|
||||
return { message: `${label} error: failed to fetch quota.` };
|
||||
}
|
||||
}
|
||||
|
|
@ -61,6 +61,8 @@ export const USAGE_FETCHER_PROVIDERS = [
|
|||
"vertex",
|
||||
"vertex-partner",
|
||||
"codebuddy-cn",
|
||||
"codebuddy-intl",
|
||||
"cbai",
|
||||
"openrouter",
|
||||
// LLM Gateway DevPass allowance (GET /v1/key → monthly + weekly premium)
|
||||
"llmgateway",
|
||||
|
|
|
|||
|
|
@ -52,6 +52,8 @@ export const USAGE_SUPPORTED_PROVIDERS: readonly string[] = [
|
|||
"vertex",
|
||||
"vertex-partner",
|
||||
"codebuddy-cn",
|
||||
"codebuddy-intl",
|
||||
"cbai",
|
||||
// PromptQL playground credits (getCreditSummary → USD micros)
|
||||
"promptql",
|
||||
"pql",
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"name": "omniroute",
|
||||
"version": "3.8.52",
|
||||
"description": "Unified AI router with 370 providers, RTK+Caveman compression, auto fallback, MCP/A2A, desktop, PWA, and OpenAI-compatible APIs.",
|
||||
"description": "Unified AI router with 372 providers, RTK+Caveman compression, auto fallback, MCP/A2A, desktop, PWA, and OpenAI-compatible APIs.",
|
||||
"type": "module",
|
||||
"bin": {
|
||||
"omniroute": "bin/omniroute.mjs",
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 800 420" font-family="system-ui, -apple-system, Segoe UI, Arial, Helvetica, sans-serif" role="img" aria-label="OmniRoute 4-tier fallback: your IDE or CLI calls one local endpoint and the OmniRoute Smart Router fails over across 370 providers in 4 tiers — Tier 1 Subscription, Tier 2 API, Tier 3 Cheap, Tier 4 Free.">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 800 420" font-family="system-ui, -apple-system, Segoe UI, Arial, Helvetica, sans-serif" role="img" aria-label="OmniRoute 4-tier fallback: your IDE or CLI calls one local endpoint and the OmniRoute Smart Router fails over across 372 providers in 4 tiers — Tier 1 Subscription, Tier 2 API, Tier 3 Cheap, Tier 4 Free.">
|
||||
<title>OmniRoute 4-tier fallback</title>
|
||||
<desc>OmniRoute 4-tier fallback: your IDE or CLI calls one local endpoint and the OmniRoute Smart Router fails over across 370 providers in 4 tiers — Tier 1 Subscription, Tier 2 API, Tier 3 Cheap, Tier 4 Free.</desc>
|
||||
<desc>OmniRoute 4-tier fallback: your IDE or CLI calls one local endpoint and the OmniRoute Smart Router fails over across 372 providers in 4 tiers — Tier 1 Subscription, Tier 2 API, Tier 3 Cheap, Tier 4 Free.</desc>
|
||||
<defs>
|
||||
<marker id="arrow-dark" markerWidth="10" markerHeight="10" refX="9" refY="3" orient="auto">
|
||||
<path d="M0,0 L0,6 L9,3 z" fill="#9ca3af"/>
|
||||
|
|
@ -15,7 +15,7 @@
|
|||
|
||||
<!-- Title -->
|
||||
<text x="400" y="32" text-anchor="middle" font-size="18" font-weight="700" fill="#f9fafb">OmniRoute 4-tier fallback</text>
|
||||
<text x="400" y="52" text-anchor="middle" font-size="12" fill="#6b7280">Never stop building — automatic zero-config failover across 370 providers</text>
|
||||
<text x="400" y="52" text-anchor="middle" font-size="12" fill="#6b7280">Never stop building — automatic zero-config failover across 372 providers</text>
|
||||
|
||||
<!-- Client box -->
|
||||
<rect x="275" y="70" width="250" height="52" rx="8" fill="#1f2937" stroke="#374151" stroke-width="1.5"/>
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 6.2 KiB After Width: | Height: | Size: 6.2 KiB |
|
|
@ -1,6 +1,6 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 800 420" font-family="system-ui, -apple-system, Segoe UI, Arial, Helvetica, sans-serif" role="img" aria-label="OmniRoute 4-tier fallback: your IDE or CLI calls one local endpoint and the OmniRoute Smart Router fails over across 370 providers in 4 tiers — Tier 1 Subscription, Tier 2 API, Tier 3 Cheap, Tier 4 Free.">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 800 420" font-family="system-ui, -apple-system, Segoe UI, Arial, Helvetica, sans-serif" role="img" aria-label="OmniRoute 4-tier fallback: your IDE or CLI calls one local endpoint and the OmniRoute Smart Router fails over across 372 providers in 4 tiers — Tier 1 Subscription, Tier 2 API, Tier 3 Cheap, Tier 4 Free.">
|
||||
<title>OmniRoute 4-tier fallback</title>
|
||||
<desc>OmniRoute 4-tier fallback: your IDE or CLI calls one local endpoint and the OmniRoute Smart Router fails over across 370 providers in 4 tiers — Tier 1 Subscription, Tier 2 API, Tier 3 Cheap, Tier 4 Free.</desc>
|
||||
<desc>OmniRoute 4-tier fallback: your IDE or CLI calls one local endpoint and the OmniRoute Smart Router fails over across 372 providers in 4 tiers — Tier 1 Subscription, Tier 2 API, Tier 3 Cheap, Tier 4 Free.</desc>
|
||||
<defs>
|
||||
<marker id="arrow-light" markerWidth="10" markerHeight="10" refX="9" refY="3" orient="auto">
|
||||
<path d="M0,0 L0,6 L9,3 z" fill="#6b7280"/>
|
||||
|
|
@ -15,7 +15,7 @@
|
|||
|
||||
<!-- Title -->
|
||||
<text x="400" y="32" text-anchor="middle" font-size="18" font-weight="700" fill="#111827">OmniRoute 4-tier fallback</text>
|
||||
<text x="400" y="52" text-anchor="middle" font-size="12" fill="#6b7280">Never stop building — automatic zero-config failover across 370 providers</text>
|
||||
<text x="400" y="52" text-anchor="middle" font-size="12" fill="#6b7280">Never stop building — automatic zero-config failover across 372 providers</text>
|
||||
|
||||
<!-- Client box -->
|
||||
<rect x="275" y="70" width="250" height="52" rx="8" fill="#ffffff" stroke="#d1d5db" stroke-width="1.5"/>
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 6.2 KiB After Width: | Height: | Size: 6.2 KiB |
|
|
@ -68,6 +68,7 @@ const NO_PKCE_DEVICE_CODE_PROVIDERS = new Set([
|
|||
"kimi-coding",
|
||||
"kilocode",
|
||||
"codebuddy-cn",
|
||||
"codebuddy-intl",
|
||||
"workbuddy",
|
||||
"grok-cli",
|
||||
"ghe-copilot",
|
||||
|
|
|
|||