🚀 OmniRoute — The Free AI Gateway (Nederlands)
🌐 Languages: 🇺🇸 English · 🇪🇸 es · 🇫🇷 fr · 🇩🇪 de · 🇮🇹 it · 🇷🇺 ru · 🇨🇳 zh-CN · 🇯🇵 ja · 🇰🇷 ko · 🇸🇦 ar · 🇮🇳 hi · 🇮🇳 in · 🇹🇭 th · 🇻🇳 vi · 🇮🇩 id · 🇲🇾 ms · 🇳🇱 nl · 🇵🇱 pl · 🇸🇪 sv · 🇳🇴 no · 🇩🇰 da · 🇫🇮 fi · 🇵🇹 pt · 🇷🇴 ro · 🇭🇺 hu · 🇧🇬 bg · 🇸🇰 sk · 🇺🇦 uk-UA · 🇮🇱 he · 🇵🇭 phi · 🇧🇷 pt-BR · 🇨🇿 cs · 🇹🇷 tr
Never stop coding. Smart routing to FREE & low-cost AI models with automatic fallback.
Uw universele API-proxy: één eindpunt, meer dan 60 providers, geen downtime. Nu metMCP-server (25 tools),A2A-protocol,Geheugen-/vaardigheidssystemenenElectron Desktop-app.
Chat voltooid • Insluitingen • Beeldgeneratie • Video • Muziek • Audio • Herrangschikking •Webzoeken• MCP-server • A2A-protocol • 100% TypeScript---
🌐Beschikbaar in:🇺🇸 Engels | 🇧🇷 Português (Brazilië) | 🇪🇸 Español | 🇫🇷 Français | 🇮🇹 Italiaans | 🇷🇺 Русский | 🇨🇳 中文 (简体) | 🇩🇪 Duits | 🇮🇳 हिन्दी | 🇹🇭 ไทย | 🇺🇦 Українська | 🇸🇦 العربية | 🇯🇵 日本語 | 🇻🇳 Tiếng Việt | 🇧🇬 Български | 🇩🇰 Dansk | 🇫🇮 Suomi | 🇮🇱 עברית | 🇭🇺 Magyaars | 🇮🇩 Bahasa Indonesië | 🇰🇷 한국어 | 🇲🇾 Bahasa Melayu | 🇳🇱 Nederlands | 🇳🇴 Norsk | 🇵🇹 Português (Portugal) | 🇷🇴 Română | 🇵🇱 Polski | 🇸🇰 Slovenië | 🇸🇪 Svenska | 🇵🇭 Filipijns | 🇨🇿 Čeština---
🖼️ Main Dashboard
📸 Dashboard Preview
Klik om dashboardscreenshots te bekijken
| Pagina | Schermafbeelding | |
|---|---|---|
| Aanbieders | ![]() |
|
| Combo's | ![]() |
|
| Analytics | ![]() |
|
| Gezondheid | ![]() |
|
| Vertaler | ![]() |
|
| Instellingen | ![]() |
|
| CLI-hulpmiddelen | ![]() |
|
| Gebruikslogboeken | ![]() |
|
| Eindpunten | ![]() |
🤖 Free AI Provider for your favorite coding agents
Verbind elke AI-aangedreven IDE- of CLI-tool via OmniRoute: gratis API-gateway voor onbeperkte codering.

Openklauw
⭐ 205K
NanoBot
⭐ 20,9K

Picoklauw
⭐ 14,6K

ZeroClaw
⭐ 9,9K

IJzerklauw
⭐ 2,1K
OpenCode
⭐ 106K

Codex-CLI
⭐ 60,8K

Claude Code
⭐ 67,3K
Gemini-CLI
⭐ 94,7K

Kilocode
⭐ 15,5K
📡 Alle agenten maken verbinding via http://localhost:20128/v1 of http://cloud.omniroute.online/v1 — één configuratie, onbeperkte modellen en quota---
🤔 Why OmniRoute?
Stop met het verspillen van geld en het bereiken van grenzen:
Het abonnementsquotum verloopt elke maand ongebruikt
Tarieflimieten voorkomen dat u halverwege codeert
Dure API's ($20-50/maand per provider)
Handmatig schakelen tussen providers
OmniRoute lost dit op:
- ✅Maximaliseer abonnementen- Houd quota bij, gebruik elk bit voordat u het opnieuw instelt
- ✅Automatische terugval- Abonnement → API-sleutel → Goedkoop → Gratis, geen downtime
- ✅Multi-account- Round-robin tussen accounts per provider
- ✅Universeel- Werkt met Claude Code, Codex, Gemini CLI, Cursor, Cline, OpenClaw, elke CLI-tool---
📧 Support
💬Word lid van onze community!WhatsApp Group — Krijg hulp, deel tips en blijf op de hoogte.
-Website: omniroute.online -GitHub: github.com/diegosouzapw/OmniRoute -Problemen: github.com/diegosouzapw/OmniRoute/issues -WhatsApp: Communitygroep -Bijdragen: zie CONTRIBUTING.md, open een PR of kies een goed eerste nummer -Origineel project: 9router door decolua### 🐛 Reporting a Bug?
Wanneer u een probleem opent, voert u de opdracht system-info uit en voegt u het gegenereerde bestand toe:```bash npm run system-info
Dit genereert een `system-info.txt` met uw Node.js-versie, OmniRoute-versie, OS-details, geïnstalleerde CLI-tools (qoder, gemini, claude, codex, antigravity, droid, enz.), Docker/PM2-status en systeempakketten - alles wat we nodig hebben om uw probleem snel te reproduceren. Voeg het bestand rechtstreeks toe aan uw GitHub-probleem.---
## 🔄 How It Works
┌─────────────┐ │ Your CLI │ (Claude Code, Codex, Gemini CLI, OpenClaw, Cursor, Cline...) │ Tool │ └──────┬──────┘ │ http://localhost:20128/v1 ↓ ┌─────────────────────────────────────────┐ │ OmniRoute (Smart Router) │ │ • Format translation (OpenAI ↔ Claude) │ │ • Quota tracking + Embeddings + Images │ │ • Auto token refresh │ └──────┬──────────────────────────────────┘ │ ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex, Gemini CLI │ ↓ quota exhausted ├─→ [Tier 2: API KEY] DeepSeek, Groq, xAI, Mistral, NVIDIA NIM, etc. │ ↓ budget limit ├─→ [Tier 3: CHEAP] GLM ($0.6/1M), MiniMax ($0.2/1M) │ ↓ budget limit └─→ [Tier 4: FREE] Qoder, Qwen, Kiro (unlimited)
Result: Never stop coding, minimal cost
---
## 🎯 What OmniRoute Solves — 30 Real Pain Points & Use Cases
>**Elke ontwikkelaar die AI-tools gebruikt, wordt dagelijks met deze problemen geconfronteerd.**OmniRoute is gebouwd om ze allemaal op te lossen: van kostenoverschrijdingen tot regionale blokkades, van kapotte OAuth-stromen tot protocolbewerkingen en bedrijfsobservatie.
<details>
<summary><b>💸 1. "Ik betaal voor een duur abonnement, maar word nog steeds onderbroken door limieten"</b></summary>
Ontwikkelaars betalen $20-200/maand voor Claude Pro, Codex Pro of GitHub Copilot. Zelfs als je betaalt, heeft het quotum een plafond: 5 uur gebruik, wekelijkse limieten of tarieflimieten per minuut. Halverwege de codeersessie reageert de provider niet meer en verliest de ontwikkelaar flow en productiviteit.
**Hoe OmniRoute het oplost:**
-**Smart 4-Tier Fallback**— Als het abonnementsquotum opraakt, wordt automatisch doorgestuurd naar API Key → Goedkoop → Gratis zonder handmatige tussenkomst
-**Provider Limits Tracking**— In de cache opgeslagen quota-snapshots worden vernieuwd volgens een schema aan de serverzijde (standaard `PROVIDER_LIMITS_SYNC_INTERVAL_MINUTES=70`) met handmatige vernieuwing beschikbaar in de gebruikersinterface
-**Ondersteuning voor meerdere accounts**— Meerdere accounts per provider met automatische round-robin — als de ene op is, wordt er overgeschakeld naar de volgende
-**Aangepaste combo's**— Aanpasbare fallback-ketens met 9 balanceringsstrategieën (prioriteit, gewogen, eerst vullen, round-robin, P2C, willekeurig, minst gebruikt, kostengeoptimaliseerd, strikt willekeurig)
-**Codex Business Quota**— Quotabewaking van zakelijke/teamwerkruimte rechtstreeks in het dashboard</details>
<details>
<summary><b>🔌 2. "Ik moet meerdere providers gebruiken, maar elk heeft een andere API"</b></summary>
OpenAI gebruikt het ene formaat, Claude (Anthropic) gebruikt een ander, Gemini nog een ander. Als een ontwikkelaar modellen van verschillende providers wil testen of terug wil vallen tussen deze providers, moet hij SDK's opnieuw configureren, eindpunten wijzigen en omgaan met incompatibele formaten. Aangepaste providers (FriendLI, NIM) hebben niet-standaard modeleindpunten.
**Hoe OmniRoute het oplost:**
-**Unified Endpoint**— Eén enkele `http://localhost:20128/v1` dient als proxy voor alle 60+ providers
-**Formatvertaling**— Automatisch en transparant: OpenAI ↔ Claude ↔ Gemini ↔ Responses API
-**Response Sanitization**— Verwijdert niet-standaard velden (`x_groq`, `usage_breakdown`, `service_tier`) die de OpenAI SDK v1.83+ verbreken
-**Rolnormalisatie**— Converteert `ontwikkelaar` → `systeem` voor niet-OpenAI-providers; `systeem` → `gebruiker` voor GLM/ERNIE
-**Think Tag Extraction**— Extraheert `<think>` blokken uit modellen zoals DeepSeek R1 in gestandaardiseerde `reasoning_content`
-**Gestructureerde uitvoer voor Gemini**— `json_schema` → `responseMimeType`/`responseSchema` automatische conversie
-**`stream` is standaard ingesteld op `false`**— Sluit aan bij de OpenAI-specificaties en vermijdt onverwachte SSE in Python/Rust/Go SDK's</details>
<details>
<summary><b>🌐 3. "Mijn AI-provider blokkeert mijn regio/land"</b></summary>
Providers zoals OpenAI/Codex blokkeren de toegang vanuit bepaalde geografische regio's. Gebruikers krijgen fouten zoals `unsupported_country_region_territory` tijdens OAuth- en API-verbindingen. Dit is vooral frustrerend voor ontwikkelaars uit ontwikkelingslanden.
**Hoe OmniRoute het oplost:**
-**Proxyconfiguratie op 3 niveaus**— Configureerbare proxy op 3 niveaus: globaal (al het verkeer), per provider (slechts één provider) en per verbinding/sleutel
-**Kleurgecodeerde proxybadges**— Visuele indicatoren: 🟢 globale proxy, 🟡 providerproxy, 🔵verbindingsproxy, waarbij altijd het IP-adres wordt weergegeven
-**OAuth-tokenuitwisseling via proxy**— OAuth-stroom gaat ook via de proxy, waardoor `unsupported_country_region_territory` wordt opgelost
-**Verbindingstests via proxy**— Verbindingstests gebruiken de geconfigureerde proxy (geen directe bypass meer)
-**SOCKS5-ondersteuning**— Volledige SOCKS5-proxyondersteuning voor uitgaande routering
-**TLS Fingerprint Spoofing**— Browserachtige TLS-vingerafdruk via `wreq-js` om botdetectie te omzeilen
-**🔏 CLI Fingerprint Matching**— Herschikt headers en body-velden zodat ze overeenkomen met de oorspronkelijke binaire CLI-handtekeningen, waardoor het risico op accountmarkeringen drastisch wordt verminderd. Het proxy-IP blijft behouden: u krijgt tegelijkertijd zowel stealth**als**IP-maskering</details>
<details>
<summary><b>🆓 4. "Ik wil AI gebruiken voor het coderen, maar ik heb geen geld"</b></summary>
Niet iedereen kan $ 20-200 per maand betalen voor AI-abonnementen. Studenten, ontwikkelaars uit opkomende landen, hobbyisten en freelancers hebben kosteloos toegang nodig tot kwaliteitsmodellen.
**Hoe OmniRoute het oplost:**
-**Free Tier Providers ingebouwd**— Native ondersteuning voor 100% gratis providers: Qoder (5 onbeperkte modellen via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 onbeperkte modellen: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID gratis), Gemini CLI (180K tokens/maand gratis)
-**Ollama Cloud**— In de cloud gehoste Ollama-modellen op `api.ollama.com` met gratis laag "Licht gebruik"; gebruik het voorvoegsel `ollamacloud/<model>`
-**Alleen gratis combo's**— Chain `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/maand zonder downtime
-**NVIDIA NIM Free Access**— ~40 RPM ontwikkelaars-voor altijd gratis toegang tot meer dan 70 modellen op build.nvidia.com (overgang van credits naar pure tarieflimieten)
-**Kostengeoptimaliseerde strategie**— Routingstrategie die automatisch de goedkoopste beschikbare provider kiest</details>
<details>
<summary><b>🔒 5. "Ik moet mijn AI-gateway beschermen tegen ongeautoriseerde toegang"</b></summary>
Bij het blootstellen van een AI-gateway aan het netwerk (LAN, VPS, Docker) kan iedereen met het adres de tokens/quota van de ontwikkelaar gebruiken. Zonder bescherming zijn API's kwetsbaar voor misbruik, snelle injectie en misbruik.
**Hoe OmniRoute het oplost:**
-**API Key Management**— Generatie, rotatie en bereik per provider met een speciale `/dashboard/api-manager` pagina
-**Machtigingen op modelniveau**— Beperk API-sleutels tot specifieke modellen (`openai/*`, jokertekenpatronen), met de schakelaar Alles toestaan/Beperken
-**API Endpoint Protection**— Vereist een sleutel voor `/v1/models` en blokkeer specifieke providers uit de lijst
-**Auth Guard + CSRF-bescherming**— Alle dashboardroutes beschermd met `withAuth` middleware + CSRF-tokens
-**Rate Limiter**— Per-IP-snelheidslimiet met configureerbare vensters
-**IP-filtering**— Toelatingslijst/blokkeerlijst voor toegangscontrole
-**Prompt Injection Guard**— Sanering tegen kwaadaardige promptpatronen
-**AES-256-GCM-codering**— Inloggegevens gecodeerd in rust</details>
<details>
<summary><b>🛑 6. "Mijn provider is uitgevallen en ik ben mijn codeerstroom kwijtgeraakt"</b></summary>
AI-aanbieders kunnen instabiel worden, 5xx-fouten retourneren of tijdelijke tarieflimieten bereiken. Als een ontwikkelaar afhankelijk is van één enkele provider, worden deze onderbroken. Zonder stroomonderbrekers kunnen herhaalde pogingen de toepassing laten crashen.
**Hoe OmniRoute het oplost:**
-**Stroomonderbreker per model**— Automatisch openen/sluiten met configureerbare drempels en cooldown (Gesloten/Open/Half-Open), bereik per model om trapsgewijze blokkades te voorkomen
-**Exponentiële uitstel**— Progressieve vertragingen bij nieuwe pogingen
-**Anti-Thundering Herd**— Mutex + semafoorbescherming tegen gelijktijdige nieuwe stormen
-**Combo Fallback Chains**— Als de primaire provider faalt, valt deze automatisch zonder tussenkomst door de keten
-**Combo-stroomonderbreker**— Schakelt falende providers binnen een combo-keten automatisch uit
-**Gezondheidsdashboard**— Uptime-monitoring, status van stroomonderbrekers, uitsluitingen, cachestatistieken, p50/p95/p99-latentie</details>
<details>
<summary><b>🔧 7. "Het configureren van elke AI-tool is vervelend en repetitief"</b></summary>
Ontwikkelaars gebruiken Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code... Elke tool heeft een andere configuratie nodig (API-eindpunt, sleutel, model). Opnieuw configureren bij het wisselen van provider of model is tijdverspilling.
**Hoe OmniRoute het oplost:**
-**CLI Tools Dashboard**— Speciale pagina met installatie met één klik voor Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline
-**GitHub Copilot Config Generator**— Genereert `chatLanguageModels.json` voor VS Code met bulkmodelselectie
-**Onboarding Wizard**— Begeleide installatie in 4 stappen voor nieuwe gebruikers
-**Eén eindpunt, alle modellen**— Configureer `http://localhost:20128/v1` één keer, krijg toegang tot meer dan 60 providers</details>
<details>
<summary><b>🔑 8. "Het beheren van OAuth-tokens van meerdere providers is een hel"</b></summary>
Claude Code, Codex, Gemini CLI, Copilot: ze gebruiken allemaal OAuth 2.0 met aflopende tokens. Ontwikkelaars moeten zich voortdurend opnieuw authenticeren en omgaan met `client_secret ontbreekt`, `redirect_uri_mismatch` en fouten op externe servers. OAuth op LAN/VPS is bijzonder problematisch.
**Hoe OmniRoute het oplost:**
-**Automatische tokenvernieuwing**: OAuth-tokens worden op de achtergrond vernieuwd voordat ze verlopen
-**OAuth 2.0 (PKCE) ingebouwd**— Automatische stroom voor Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, Qoder
-**Multi-Account OAuth**— Meerdere accounts per provider via JWT/ID-tokenextractie
-**OAuth LAN/Remote Fix**— Privé-IP-detectie voor `redirect_uri` + handmatige URL-modus voor externe servers
-**OAuth achter Nginx**— Gebruikt `window.location.origin` voor reverse proxy-compatibiliteit
-**Remote OAuth-handleiding**— Stapsgewijze handleiding voor Google Cloud-inloggegevens op VPS/Docker</details>
<details>
<summary><b>📊 9. "Ik weet niet hoeveel ik uitgeef of waar"</b></summary>
Ontwikkelaars gebruiken meerdere betaalde providers, maar hebben geen uniform beeld van de uitgaven. Elke provider heeft zijn eigen factureringsdashboard, maar er is geen geconsolideerd overzicht. Onverwachte kosten kunnen zich opstapelen.
**Hoe OmniRoute het oplost:**
-**Cost Analytics Dashboard**— Kostenregistratie per token en budgetbeheer per provider
-**Budgetlimieten per niveau**— Uitgavenplafond per niveau dat automatische terugval activeert
-**Prijsconfiguratie per model**— Configureerbare prijzen per model
-**Gebruiksstatistieken per API-sleutel**— Verzoekaantal en laatst gebruikte tijdstempel per sleutel
-**Analytics Dashboard**— Statistiekkaarten, modelgebruiksgrafiek, providertabel met succespercentages en latentie</details>
<details>
<summary><b>🐛 10. "Ik kan geen fouten en problemen in AI-oproepen diagnosticeren"</b></summary>
Wanneer een oproep mislukt, weet de ontwikkelaar niet of het een snelheidslimiet, een verlopen token, een verkeerd formaat of een providerfout is. Gefragmenteerde logboeken over verschillende terminals. Zonder waarneembaarheid is debuggen een kwestie van vallen en opstaan.
**Hoe OmniRoute het oplost:**
-**Unified Logs Dashboard**— 4 tabbladen: aanvraaglogboeken, proxylogboeken, auditlogboeken, console
-**Consolelogviewer**— Realtime viewer in terminalstijl met kleurgecodeerde niveaus, automatisch scrollen, zoeken, filteren
-**SQLite Proxy Logs**— Persistente logs die het opnieuw opstarten van de server overleven
-**Translator Playground**— 4 foutopsporingsmodi: Playground (formaatvertaling), Chat Tester (retour), Testbank (batch), Live Monitor (realtime)
-**Request Telemetry**— p50/p95/p99 latentie + X-Request-Id-tracering
-**Op bestanden gebaseerd loggen met rotatie**— App-logboeken roteren op basis van grootte, bewaardagen en archiefaantal; oproeplogartefacten roteren op retentiedagen en aantal bestanden
-**Systeeminforapport**— `npm run system-info` genereert `system-info.txt` met uw volledige omgeving (knooppuntversie, OmniRoute-versie, besturingssysteem, CLI-tools, Docker/PM2-status). Voeg het toe bij het melden van problemen, zodat u direct kunt triageen.</details>
<details>
<summary><b>🏗️ 11. "Het implementeren en onderhouden van de gateway is complex"</b></summary>
Het installeren, configureren en onderhouden van een AI-proxy in verschillende omgevingen (lokaal, VPS, Docker, cloud) is arbeidsintensief. Problemen zoals hardgecodeerde paden, 'EACCES' op mappen, poortconflicten en platformonafhankelijke builds zorgen voor extra wrijving.
**Hoe OmniRoute het oplost:**
-**npm globale installatie**— `npm install -g omniroute && omniroute` — klaar
-**Docker Multi-Platform**— AMD64 + ARM64 native (Apple Silicon, AWS Graviton, Raspberry Pi)
-**Docker Compose Profiles**— `base` (geen CLI-tools) en `cli` (met Claude Code, Codex, OpenClaw)
-**Electron Desktop App**— Native app voor Windows/macOS/Linux met systeemvak, automatisch starten, offlinemodus
-**Split-Port-modus**— API en Dashboard op afzonderlijke poorten voor geavanceerde scenario's (reverse proxy, containernetwerken)
-**Cloud Sync**— Configureer synchronisatie tussen apparaten via Cloudflare Workers
-**DB Backups**— Automatische back-up, herstel, export en import van alle instellingen, met `DISABLE_SQLITE_AUTO_BACKUP` voor extern beheerde back-ups</details>
<details>
<summary><b>🌍 12. "De interface is alleen in het Engels en mijn team spreekt geen Engels"</b></summary>
Teams in niet-Engelssprekende landen, vooral in Latijns-Amerika, Azië en Europa, worstelen met interfaces die alleen in het Engels beschikbaar zijn. Taalbarrières verminderen de adoptie en vergroten de configuratiefouten.
**Hoe OmniRoute het oplost:**
-**Dashboard i18n — 30 talen**— Alle 500+ toetsen vertaald, waaronder Arabisch, Bulgaars, Deens, Duits, Spaans, Fins, Frans, Hebreeuws, Hindi, Hongaars, Indonesisch, Italiaans, Japans, Koreaans, Maleis, Nederlands, Noors, Pools, Portugees (PT/BR), Roemeens, Russisch, Slowaaks, Zweeds, Thais, Oekraïens, Vietnamees, Chinees, Filipijns, Engels
-**RTL-ondersteuning**— Ondersteuning van rechts naar links voor Arabisch en Hebreeuws
-**Meertalige README's**— 30 volledige documentatievertalingen
-**Taalkiezer**— Wereldbolpictogram in de koptekst voor realtime schakelen</details>
<details>
<summary><b>🔄 13. "Ik heb meer nodig dan chatten: ik heb insluitingen, afbeeldingen en audio nodig"</b></summary>
AI is niet alleen het voltooien van chats. Ontwikkelaars moeten afbeeldingen genereren, audio transcriberen, insluitingen voor RAG maken, documenten opnieuw rangschikken en inhoud modereren. Elke API heeft een ander eindpunt en formaat.
**Hoe OmniRoute het oplost:**
-**Embeddings**— `/v1/embeddings` met 6 providers en 9+ modellen
-**Beeldgeneratie**— `/v1/images/generations` met 10 providers en 20+ modellen (OpenAI, xAI, Together, Fireworks, Nebius, Hyperbolic, NanoBanana, Antigravity, SD WebUI, ComfyUI)
-**Tekst-naar-video**— `/v1/videos/generations` — ComfyUI (AnimateDiff, SVD) en SD WebUI
-**Tekst-naar-muziek**— `/v1/music/generations` — ComfyUI (Stable Audio Open, MusicGen)
-**Audiotranscriptie**— `/v1/audio/transcriptions` — Whisper + Nvidia NIM, HuggingFace, Qwen3
-**Tekst-naar-spraak**— `/v1/audio/speech` — ElevenLabs, Nvidia NIM, HuggingFace, Coqui, Tortoise, Qwen3,**Inworld**,**Cartesia**,**PlayHT**, + bestaande providers
-**Moderaties**— `/v1/moderations` — Veiligheidscontroles van inhoud
-**Herrangschikking**— `/v1/rerang` — Herrangschikking van de relevantie van documenten
-**Responses API**— Volledige `/v1/responses` ondersteuning voor Codex</details>
<details>
<summary><b>🧪 14. "Ik heb geen manier om de kwaliteit van modellen te testen en te vergelijken"</b></summary>
Ontwikkelaars willen weten welk model het beste is voor hun gebruiksscenario (code, vertaling, redenering), maar handmatig vergelijken gaat traag. Er bestaan geen geïntegreerde evaluatietools.
**Hoe OmniRoute het oplost:**
-**LLM-evaluaties**— Golden set-tests met 10 vooraf geladen cases over begroetingen, wiskunde, aardrijkskunde, codegeneratie, JSON-compliance, vertaling, prijsverlaging, veiligheidsweigering
-**4 Matchstrategieën**— `exact`, `contains`, `regex`, `custom` (JS-functie)
-**Translator Playground Test Bench**— Batchtests met meerdere inputs en verwachte outputs, vergelijking tussen providers
-**Chat Tester**— Volledige rondreis met visuele responsweergave
-**Live Monitor**— Realtime stream van alle verzoeken die door de proxy stromen</details>
<details>
<summary><b>📈 15. "Ik moet schalen zonder prestatieverlies"</b></summary>
Naarmate het verzoekvolume groeit, genereren dezelfde vragen dubbele kosten als dezelfde vragen niet in de cache worden opgeslagen. Zonder idempotentie verspillen dubbele aanvragen de verwerking. Tarieflimieten per aanbieder moeten worden gerespecteerd.
**Hoe OmniRoute het oplost:**
-**Semantische cache**— Cache met twee lagen (handtekening + semantisch) verlaagt de kosten en de latentie
-**Request Idempotency**— 5s deduplicatievenster voor identieke verzoeken
-**Detectie van tarieflimiet**— RPM per provider, minimale tussenruimte en maximale gelijktijdige tracking
-**Bewerkbare snelheidslimieten**— Configureerbare standaardinstellingen in Instellingen → Veerkracht met doorzettingsvermogen
-**API Key Validation Cache**— 3-tier cache voor productieprestaties
-**Gezondheidsdashboard met telemetrie**— p50/p95/p99-latentie, cachestatistieken, uptime</details>
<details>
<summary><b>🤖 16. "Ik wil modelgedrag wereldwijd controleren"</b></summary>
Ontwikkelaars die alle antwoorden in een specifieke taal willen, met een specifieke toon, of redeneringstokens willen beperken. Het is onpraktisch om dit in elke tool/verzoek te configureren.
**Hoe OmniRoute het oplost:**
-**Systeempromptinjectie**: algemene prompt toegepast op alle verzoeken
-**Thinking Budget Validation**— Redenering van tokentoewijzingscontrole per verzoek (passthrough, automatisch, aangepast, adaptief)
-**9 Routingstrategieën**— Globale strategieën die bepalen hoe verzoeken worden gedistribueerd
-**Wildcard Router**— `provider/*`-patronen routeren dynamisch naar elke provider
-**Combo in-/uitschakelen schakelen**— Schakel combo's rechtstreeks vanuit het dashboard in
-**Provider wisselen**— Schakel alle verbindingen voor een provider met één klik in/uit
-**Geblokkeerde providers**— Sluit specifieke providers uit van de `/v1/models`-lijst</details>
<details>
<summary><b>🧰 17. "Ik heb MCP-tools nodig als eersteklas productmogelijkheden"</b></summary>
Veel AI-gateways stellen MCP alleen bloot als een verborgen implementatiedetail. Teams hebben een zichtbare, beheersbare operationele laag nodig.
**Hoe OmniRoute het oplost:**
- MCP verschijnt op het dashboardnavigatie- en eindpuntprotocoltabblad
- Speciale MCP-beheerpagina met proces, tools, scopes en audit
- Ingebouwde snelstart voor `omniroute --mcp` en client-onboarding</details>
<details>
<summary><b>🧠 18. "Ik heb A2A-orkestratie nodig met synchronisatie- en streamtaakpaden"</b></summary>
Agentworkflows hebben zowel directe antwoorden nodig als langdurige gestreamde uitvoering met levenscycluscontrole.
**Hoe OmniRoute het oplost:**
- A2A JSON-RPC-eindpunt (`POST /a2a`) met `message/send` en `message/stream`
- SSE-streaming met voortplanting van de terminalstatus
- Taaklevenscyclus-API's voor 'tasks/get' en 'tasks/cancel'</details>
<details>
<summary><b>🛰️ 19. "Ik heb echte MCP-processtatus nodig, geen geraden status"</b></summary>
Operationele teams moeten weten of MCP daadwerkelijk leeft, en niet alleen of een API bereikbaar is.
**Hoe OmniRoute het oplost:**
- Runtime-hartslagbestand met PID, tijdstempels, transport, aantal gereedschappen en scope-modus
- MCP-status-API die hartslag + recente activiteit combineert
- UI-statuskaarten voor proces/uptime/hartslagversheid</details>
<details>
<summary><b>📋 20. "Ik heb controleerbare MCP-tooluitvoering nodig"</b></summary>
Wanneer tools de configuratie muteren of operationele acties activeren, hebben teams forensische traceerbaarheid nodig.
**Hoe OmniRoute het oplost:**
- SQLite-ondersteunde auditregistratie voor MCP-toolaanroepen
- Filters op tool, succes/mislukking, API-sleutel en paginering
- Dashboard-audittabel + statistiekeneindpunten voor automatisering</details>
<details>
<summary><b>🔐 21. "Ik heb specifieke MCP-rechten nodig per integratie"</b></summary>
Verschillende clients moeten toegang tot de toolcategorieën met de minste bevoegdheden hebben.
**Hoe OmniRoute het oplost:**
- 10 gedetailleerde MCP-scopes voor gecontroleerde toegang tot tools
- Bereikafdwinging en zichtbaarheid in de gebruikersinterface voor MCP-beheer
- Veilige standaardhouding voor operationeel gereedschap</details>
<details>
<summary><b>⚙️ 22. "Ik heb operationele controles nodig zonder opnieuw te implementeren"</b></summary>
Teams hebben snelle runtimewijzigingen nodig tijdens incidenten of kostengebeurtenissen.
**Hoe OmniRoute het oplost:**
- Schakel combo-activering rechtstreeks vanuit het MCP-dashboard
- Pas veerkrachtprofielen toe uit vooraf gedefinieerde beleidspakketten
- Reset de status van de stroomonderbreker vanaf hetzelfde bedieningspaneel</details>
<details>
<summary><b>🔄 23. "Ik heb live zichtbaarheid en annulering van de levenscyclus van A2A-taken nodig"</b></summary>
Zonder inzicht in de levenscyclus worden taakincidenten moeilijk te beoordelen.
**Hoe OmniRoute het oplost:**
- Takenlijst/filteren op staat/vaardigheid met paginering
- Inzoomen op taakmetagegevens, gebeurtenissen en artefacten
- Eindpunt voor het annuleren van taken en UI-actie met bevestiging</details>
<details>
<summary><b>🌊 24. "Ik heb actieve streamstatistieken nodig voor A2A-belasting"</b></summary>
Streamingworkflows vereisen operationeel inzicht in gelijktijdigheid en liveverbindingen.
**Hoe OmniRoute het oplost:**
- Actieve streamtellers geïntegreerd in de A2A-status
- Tijdstempel van de laatste taak en tellingen per staat
- A2A-dashboardkaarten voor real-time operationele monitoring</details>
<details>
<summary><b>🪪 25. "Ik heb standaard agentdetectie nodig voor klanten"</b></summary>
Externe klanten en orkestrators hebben machinaal leesbare metagegevens nodig voor onboarding.
**Hoe OmniRoute het oplost:**
- Agentkaart weergegeven op `/.well-known/agent.json`
- Mogelijkheden en vaardigheden weergegeven in de management-UI
- A2A-status-API bevat ontdekkingsmetagegevens voor automatisering</details>
<details>
<summary><b>🧭 26. "Ik heb protocolvindbaarheid nodig in de product-UX"</b></summary>
Als gebruikers protocoloppervlakken niet kunnen ontdekken, neemt de acceptatie- en ondersteuningskwaliteit af.
**Hoe OmniRoute het oplost:**
- Geconsolideerde pagina**Eindpunten**met tabbladen voor proxy-, MCP-, A2A- en API-eindpunten
- Inline servicestatus schakelt (online/offline) voor MCP en A2A
- Links van overzicht naar speciale beheertabbladen</details>
<details>
<summary><b>🧪 27. "Ik heb end-to-end protocolvalidatie nodig met echte clients"</b></summary>
Mock-tests zijn niet voldoende om de protocolcompatibiliteit vóór de release te valideren.
**Hoe OmniRoute het oplost:**
- E2E-suite die de app opstart en echt MCP SDK-clienttransport gebruikt
- A2A-clienttests voor het ontdekken, verzenden, streamen, ophalen en annuleren van stromen
- Controleer beweringen aan de hand van MCP-audit- en A2A-taken-API's</details>
<details>
<summary><b>📡 28. "Ik heb uniforme observatie nodig over alle interfaces heen"</b></summary>
Het opsplitsen van de waarneembaarheid per protocol creëert blinde vlekken en een langere MTTR.
**Hoe OmniRoute het oplost:**
- Uniforme dashboards/logboeken/analyses in één product
- Gezondheid + audit + verzoektelemetrie over OpenAI-, MCP- en A2A-lagen
- Operationele API's voor status en automatisering</details>
<details>
<summary><b>💼 29. "Ik heb één runtime nodig voor proxy + tools + agentorkestratie"</b></summary>
Het uitvoeren van veel afzonderlijke services verhoogt de operationele kosten en faalwijzen.
**Hoe OmniRoute het oplost:**
- OpenAI-compatibele proxy, MCP-server en A2A-server in één stapel
- Gedeelde authenticatie, veerkracht, gegevensopslag en waarneembaarheid
- Consistent beleidsmodel op alle interactieoppervlakken</details>
<details>
<summary><b>🚀 30. "Ik moet agentische workflows verzenden zonder wildgroei van lijmcodes"</b></summary>
Teams verliezen snelheid bij het samenvoegen van meerdere ad-hocservices en scripts.
**Hoe OmniRoute het oplost:**
- Uniforme eindpuntstrategie voor klanten en agenten
- Ingebouwde gebruikersinterfaces voor protocolbeheer en rookvalidatiepaden
- Productieklare fundamenten (beveiliging, loggen, veerkracht, back-up)</details>
### Example Playbooks (Integrated Use Cases)
**Playbook A: Maximaliseer betaald abonnement + goedkope back-up**```txt
Combo: "maximize-claude"
1. cc/claude-opus-4-6
2. glm/glm-4.7
3. if/kimi-k2-thinking
Monthly cost: $20 + small backup spend
Outcome: higher quality, near-zero interruption
Playbook B: Codeerstapel zonder kosten```txt Combo: "free-forever"
- gc/gemini-3-flash
- if/kimi-k2-thinking
- qw/qwen3-coder-plus
Monthly cost: $0 Outcome: stable free coding workflow
**Playbook C: 24/7, altijd actieve fallback-keten**```txt
Combo: "always-on"
1. cc/claude-opus-4-6
2. cx/gpt-5.2-codex
3. glm/glm-4.7
4. minimax/MiniMax-M2.1
5. if/kimi-k2-thinking
Outcome: deep fallback depth for deadline-critical workloads
Playbook D: Agentoperaties met MCP + A2A```txt
- Start MCP transport (
omniroute --mcp) for tool-driven operations - Run A2A tasks via
message/sendandmessage/stream - Observe via /dashboard/endpoint (MCP and A2A tabs)
- Toggle services via inline status controls
---
## 🆓 Start Free — Zero Configuration Cost
> Stel AI-codering in enkele minuten in voor**$0/maand**. Verbind deze gratis accounts en gebruik de ingebouwde**Gratis Stack**-combinatie.
| Stap | Actie | Aanbieders ontgrendeld |
| ---- | --------------------------------------------- | ---------------------------------------------------------- |
| 1 | Verbind**Kiro**(AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 —**onbeperkt**|
| 2 |**Qoder**(Google OAuth) verbinden | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... —**onbeperkt**|
| 3 | Verbind**Qwen**(apparaatcode) | qwen3-coder-plus, qwen3-coder-flash... —**onbeperkt**|
| 4 |**Gemini CLI**verbinden (Google OAuth) | gemini-3-flash, gemini-2.5-pro —**180K/maand gratis**|
| 5 | `/dashboard/combos` →**Gratis stapel ($0)**sjabloon | Round-robin alle gratis aanbieders automatisch |
**Wijs een IDE/CLI naar:**`http://localhost:20128/v1` · API-sleutel: `any-string` · Klaar.
>**Optionele extra dekking (ook gratis):**Groq API-sleutel (30 RPM gratis), NVIDIA NIM (40 RPM gratis, 70+ modellen), Cerebras (1M tok/dag), LongCat API-sleutel (50M tokens/dag!), Cloudflare Workers AI (10K Neurons/dag, 50+ modellen).## Snel starten
### 1) Install and run
```bash
npm install -g omniroute
omniroute
**pnpm-gebruikers:**Voer
pnpm Approved-builds -guit na de installatie om native build-scripts in te schakelen die vereist zijn doorbetter-sqlite3en@swc/core:pnpm install -g omniroute pnpm goedkeuring-builds -g # Selecteer alle pakketten → goedkeuren omniroute
Dashboard wordt geopend op http://localhost:20128 en de API-basis-URL is http://localhost:20128/v1.
| Commando | Beschrijving |
|---|---|
omniroute |
Startserver (PORT=20128, API en dashboard op dezelfde poort) |
omniroute --poort 3000 |
Stel de canonieke/API-poort in op 3000 |
omniroute --mcp |
MCP-server starten (stdio-transport) |
omniroute --no-open |
Browser niet automatisch openen |
omniroute --help |
Hulp tonen |
Optionele split-port-modus:```bash PORT=20128 DASHBOARD_PORT=20129 omniroute
API: http://localhost:20128/v1
Dashboard: http://localhost:20129
### Long-Running Streaming Timeouts
Voor de meeste implementaties heeft u alleen het volgende nodig:
| Variabel | Standaard | Doel |
| ----------------------- | --------------------------- | ------------------------------------------------------- ------------------------------------------------------- |
| `REQUEST_TIMEOUT_MS` | `600000` | Gedeelde basislijn voor upstream ophalen, verborgen Undici-time-outs, TLS-vingerafdrukverzoeken en API-bridgeverzoeken/proxy-time-outs |
| `STREAM_IDLE_TIMEOUT_MS` | erft `REQUEST_TIMEOUT_MS` | Maximale afstand tussen streaming-brokken voordat OmniRoute de SSE-stream afbreekt |
Achterwaartse compatibiliteit blijft behouden: bestaande `FETCH_TIMEOUT_MS`, `API_BRIDGE_PROXY_TIMEOUT_MS` en andere time-outvariabelen per laag werken nog steeds en overschrijven de gedeelde basislijn.
Er zijn geavanceerde overschrijvingen beschikbaar als u een nauwkeurigere controle nodig heeft:| Variabel | Standaard | Doel |
| ------------------------------------- | --------------------------------------- | ------------------------------------------------------------ |
| `FETCH_TIMEOUT_MS` | erft `REQUEST_TIMEOUT_MS` | Totale time-out van het upstream-verzoek gebruikt door het signaal voor het afbreken van het hoofdophalen |
| `FETCH_HEADERS_TIMEOUT_MS` | erft `FETCH_TIMEOUT_MS` | Undici-tijdslimiet voor het ontvangen van upstream-antwoordheaders |
| `FETCH_BODY_TIMEOUT_MS` | erft `FETCH_TIMEOUT_MS` | Undici tijdslimiet tussen upstream body chunks (`0` schakelt dit uit) |
| `FETCH_CONNECT_TIMEOUT_MS` | `30000` | Undici TCP-verbindingstime-out |
| `FETCH_KEEPALIVE_TIMEOUT_MS` | `4000` | Undici inactieve keep-alive socket time-out |
| `TLS_CLIENT_TIMEOUT_MS` | erft `FETCH_TIMEOUT_MS` | Time-out voor TLS-vingerafdrukverzoeken gedaan via `wreq-js` |
| `API_BRIDGE_PROXY_TIMEOUT_MS` | erft `REQUEST_TIMEOUT_MS` of `30000` | Time-out voor het doorsturen van `/v1` proxy van API-poort naar dashboardpoort |
| `API_BRIDGE_SERVER_REQUEST_TIMEOUT_MS` | `max(API_BRIDGE_PROXY_TIMEOUT_MS, 300000)` | Time-out voor binnenkomend verzoek op de API-bridgeserver |
| `API_BRIDGE_SERVER_HEADERS_TIMEOUT_MS` | `60000` | Time-out voor inkomende header op de API-bridgeserver |
| `API_BRIDGE_SERVER_KEEPALIVE_TIMEOUT_MS` | `5000` | Time-out voor keep-alive op de API-bridgeserver |
| `API_BRIDGE_SERVER_SOCKET_TIMEOUT_MS` | `0` | Time-out voor socket-inactiviteit op de API-bridgeserver (`0` schakelt dit uit) |
Als u OmniRoute achter Nginx, Caddy, Cloudflare of een andere reverse proxy uitvoert, zorg er dan voor dat de proxy
time-outs zijn ook hoger dan uw OmniRoute-time-outs voor streamen/ophalen.### 2) Connect providers and create your API key
1. Open Dashboard → `Providers` en verbind minimaal één provider (OAuth of API-sleutel).
2. Open Dashboard → `Eindpunten` en maak een API-sleutel aan.
3. (Optioneel) Open Dashboard → `Combo's` en stel uw fallback-keten in.### 3) Point your coding tool to OmniRoute
```txt
Base URL: http://localhost:20128/v1
API Key: [copy from Endpoint page]
Model: if/kimi-k2-thinking (or any provider/model prefix)
Werkt met Claude Code, Codex CLI, Gemini CLI, Cursor, Cline, OpenClaw, OpenCode en OpenAI-compatibele SDK's.### 4) Enable and validate protocols (v2.0)
MCP (voor gereedschapgestuurde bewerkingen):```bash omniroute --mcp
Verbind vervolgens uw MCP-client via `stdio` en test tools zoals:
- `omniroute_get_health`
- `omniroute_lijst_combo`s`
**A2A (voor agent-tot-agent-workflows):**```bash
curl http://localhost:20128/.well-known/agent.json
curl -X POST http://localhost:20128/a2a \
-H 'content-type: application/json' \
-d '{"jsonrpc":"2.0","id":"quickstart","method":"message/send","params":{"skill":"quota-management","messages":[{"role":"user","content":"Give me a short quota summary."}]}}'
5) Validate everything end-to-end (recommended)
npm run test:protocols:e2e
Deze suite valideert echte MCP- en A2A-clientstromen tegen een actieve app.### Alternative: run from source
cp .env.example .env
npm install
PORT=20128 DASHBOARD_PORT=20129 NEXT_PUBLIC_BASE_URL=http://localhost:20129 npm run dev
Linux ongeldig maken (`xbps-src` sjabloon)
Voor Void Linux-gebruikers kun je een native pakket bouwen met xbps-src. Sla dit blok op als srcpkgs/omniroute/template:```bash
Template file for 'omniroute'
pkgname=omniroute version=3.4.1 revision=1 hostmakedepends="nodejs python3 make" depends="openssl" short_desc="Universal AI gateway with smart routing for multiple LLM providers" maintainer="zenobit zenobit@disroot.org" license="MIT" homepage="https://github.com/diegosouzapw/OmniRoute" distfiles="https://github.com/diegosouzapw/OmniRoute/archive/refs/tags/v${version}.tar.gz" checksum=009400afee90a9f32599d8fe734145cfd84098140b7287990183dde45ae2245b system_accounts="_omniroute" omniroute_homedir="/var/lib/omniroute" export NODE_ENV=production export npm_config_engine_strict=false export npm_config_loglevel=error export npm_config_fund=false export npm_config_audit=false
do_build() { # Determine target CPU arch for node-gyp local _gyp_arch case "$XBPS_TARGET_MACHINE" in aarch64*) _gyp_arch=arm64 ;; armv7*|armv6*) _gyp_arch=arm ;; i686*) _gyp_arch=ia32 ;; *) _gyp_arch=x64 ;; esac
# 1) Install all deps – skip scripts (no network in do_build, native modules
# compiled separately below; better-sqlite3 is serverExternalPackage so
# Next.js does not execute it during next build)
NODE_ENV=development npm ci --ignore-scripts
# 2) Build the Next.js standalone bundle
npm run build
# 3) Copy static assets into standalone
cp -r .next/static .next/standalone/.next/static
[ -d public ] && cp -r public .next/standalone/public || true
# 4) Compile better-sqlite3 native binding for the target architecture.
# Use node-gyp directly so CC/CXX from xbps-src cross-toolchain are used
# without npm altering them.
local _node_gyp=/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js
(cd node_modules/better-sqlite3 && node "$_node_gyp" rebuild --arch="$_gyp_arch")
# 5) Place the compiled binding into the standalone bundle
local _bs3_release=.next/standalone/node_modules/better-sqlite3/build/Release
mkdir -p "$_bs3_release"
cp node_modules/better-sqlite3/build/Release/better_sqlite3.node "$_bs3_release/"
# 6) Remove arch-specific sharp bundles – upstream sets images.unoptimized=true
# so sharp is not used at runtime; x64 .so files would break aarch64 strip
rm -rf .next/standalone/node_modules/@img
# 7) Copy pino runtime deps omitted by Next.js static analysis:
# pino-abstract-transport – required by pino's worker thread
# split2 – dep of pino-abstract-transport
# process-warning – dep of pino itself
for _mod in pino-abstract-transport split2 process-warning; do
cp -r "node_modules/$_mod" .next/standalone/node_modules/
done
}
do_check() { npm run test:unit }
do_install() { vmkdir usr/lib/omniroute/.next
vcopy .next/standalone/. usr/lib/omniroute/.next/standalone
# Prevent removal of empty Next.js app router dirs by the post-install hook
for _d in \
.next/standalone/.next/server/app/dashboard \
.next/standalone/.next/server/app/dashboard/settings \
.next/standalone/.next/server/app/dashboard/providers; do
touch "${DESTDIR}/usr/lib/omniroute/${_d}/.keep"
done
cat > "${WRKDIR}/omniroute" <<'EOF'
#!/bin/sh export PORT="${PORT:-20128}" export DATA_DIR="${DATA_DIR:-${XDG_DATA_HOME:-${HOME}/.local/share}/omniroute}" export LOG_TO_FILE="${LOG_TO_FILE:-false}" mkdir -p "${DATA_DIR}" exec node /usr/lib/omniroute/.next/standalone/server.js "$@" EOF vbin "${WRKDIR}/omniroute" }
post_install() { vlicense LICENSE }
</details>
---
## 🐳 Docker
OmniRoute is beschikbaar als openbare Docker-image op [Docker Hub](https://hub.docker.com/r/diegosouzapw/omniroute).
**Snelle uitvoering:**```bash
docker run -d \
--name omniroute \
--restart unless-stopped \
--stop-timeout 40 \
-p 20128:20128 \
-v omniroute-data:/app/data \
diegosouzapw/omniroute:latest
Met omgevingsbestand:```bash
Copy and edit .env first
cp .env.example .env
docker run -d
--name omniroute
--restart unless-stopped
--stop-timeout 40
--env-file .env
-p 20128:20128
-v omniroute-data:/app/data
diegosouzapw/omniroute:latest
**Met behulp van Docker Compose:**```bash
# Base profile (no CLI tools)
docker compose --profile base up -d
# CLI profile (Claude Code, Codex, OpenClaw built-in)
docker compose --profile cli up -d
Dashboardondersteuning voor Docker-implementaties omvat nu eenCloudflare Quick Tunnelmet één klik op Dashboard → Endpoints. De eerste optie downloadt cloudflared alleen wanneer dat nodig is, start een tijdelijke tunnel naar uw huidige /v1 eindpunt en toont de gegenereerde https://*.trycloudflare.com/v1 URL direct onder uw normale openbare URL.
Opmerkingen:
- Quick Tunnel-URL's zijn tijdelijk en veranderen na elke herstart.
- Quick Tunnels worden niet automatisch hersteld na een herstart van OmniRoute of een container. Schakel ze indien nodig opnieuw in vanaf het dashboard.
- Beheerde installatie ondersteunt momenteel Linux, macOS en Windows op
x64/arm64. - Beheerde Quick Tunnels gebruiken standaard HTTP/2-transport om luidruchtige QUIC UDP-bufferwaarschuwingen in beperkte containeromgevingen te voorkomen. Stel
CLOUDFLARED_PROTOCOL=quicofautoin als u een ander transport wilt. - Docker-images bundelen de CA-roots van het systeem en geven deze door aan het beheerde
cloudflared, waardoor TLS-vertrouwensfouten worden vermeden wanneer de tunnel in de container opstart. - SQLite draait in WAL-modus.
docker stopmoet worden voltooid, zodat OmniRoute de laatste wijzigingen kan terugzetten instorage.sqlite. - De gebundelde Compose-bestanden stellen al een stopperiode van 40 seconden in. Als u de image rechtstreeks uitvoert, houd dan
--stop-timeout 40(of iets dergelijks) aan, zodat handmatig stoppen het opschonen van het afsluiten niet onderbreekt. - Stel
CLOUDFLARED_BIN=/absolute/path/to/cloudflaredin als u wilt dat OmniRoute een bestaand binair bestand gebruikt in plaats van er een te downloaden.
Docker Compose gebruiken met Caddy (HTTPS Auto-TLS):
OmniRoute kan veilig worden blootgesteld met behulp van de automatische SSL-voorziening van Caddy. Zorg ervoor dat de DNS A-record van uw domein verwijst naar het IP-adres van uw server.```yaml services: omniroute: image: diegosouzapw/omniroute:latest container_name: omniroute restart: unless-stopped volumes: - omniroute-data:/app/data environment: - PORT=20128 - NEXT_PUBLIC_BASE_URL=https://your-domain.com
caddy: image: caddy:latest container_name: caddy restart: unless-stopped ports: - "80:80" - "443:443" command: caddy reverse-proxy --from https://your-domain.com --to http://omniroute:20128
volumes: omniroute-data:
| Afbeelding | Label | Maat | Beschrijving |
| ----------------------- | -------- | ------ | -------------------- |
| `diegosouzapw/omniroute` | `nieuwste` | ~250MB | Nieuwste stabiele release |
| `diegosouzapw/omniroute` | `1.0.3` | ~250MB | Huidige versie |---
## 🖥️ Desktop App — Offline & Always-On
> 🆕**NIEUW!**OmniRoute is nu beschikbaar als**native desktop-applicatie**voor Windows, macOS en Linux.
Voer OmniRoute uit als een zelfstandige desktop-app: geen terminal, geen browser, geen internet vereist voor lokale modellen. De op Electron gebaseerde app omvat:
- 🖥️**Native Window**— Speciaal app-venster met systeemvakintegratie
- 🔄**Autostart**— Start OmniRoute bij systeemaanmelding
- 🔔**Native Notificaties**— Ontvang waarschuwingen voor opgebruikte quota of problemen met providers
- ⚡**Installeren met één klik**— NSIS (Windows), DMG (macOS), AppImage (Linux)
- 🌐**Offlinemodus**— Werkt volledig offline met gebundelde server### Snel starten
```bash
# Development mode
npm run electron:dev
# Build for your platform
npm run electron:build # Current platform
npm run electron:build:win # Windows (.exe)
npm run electron:build:mac # macOS (.dmg) — x64 & arm64
npm run electron:build:linux # Linux (.AppImage)
System Tray
Wanneer geminimaliseerd, blijft OmniRoute in uw systeemvak staan met snelle acties:
- Dashboard openen
- Wijzig de serverpoort
- Sluit de applicatie af
📖 Volledige documentatie: electron/README.md---
💰 Pricing at a Glance
| Niveau | Aanbieder | Kosten | Quotum opnieuw instellen | Beste voor | |
|---|---|---|---|---|---|
| 💳 ABONNEMENT | Claude Code (Pro) | $ 20/maand | 5u + wekelijks | Al geabonneerd | |
| Codex (Plus/Pro) | $ 20-200/maand | 5u + wekelijks | OpenAI-gebruikers | ||
| Tweeling CLI | GRATIS | 180K/maand + 1K/dag | Iedereen! | ||
| GitHub-copiloot | $ 10-19/maand | Maandelijks | GitHub-gebruikers | ||
| 🔑 API-SLEUTEL | NVIDIA NIM | GRATIS(ontwikkelaar voor altijd) | ~40 tpm | 70+ open modellen | |
| Hersenen | GRATIS(1 miljoen tok/dag) | 60K TPM / 30 RPM | 's Werelds snelste | ||
| Groq | GRATIS(30 toeren) | 14,4K RPD | Ultrasnelle lama/gemma | ||
| DeepSeek V3.2 | $0,27/$1,10 per 1 miljoen | Geen | Beste prijs/kwaliteit-redenering | ||
| xAI Grok-4 Snel | $0,20/$0,50 per 1M🆕 | Geen | Snelste + gereedschapsoproep, ultralaag | ||
| xAI Grok-4 (standaard) | 0,20/ 1,50 per 1 miljoen 🆕 |
Geen | Redenerend vlaggenschip van xAI | ||
| Mistral | Gratis proefversie + betaald | Tarief beperkt | Europese AI | ||
| OpenRouter | Betalen per gebruik | Geen | 100+ modellen aggr. | ||
| 💰GOEDKOOP | GLM-5 (via Z.AI) 🆕 | $ 0,5/1 miljoen | Dagelijks 10.00 uur | 128K-uitvoer, nieuwste vlaggenschip | |
| GLM-4.7 | $ 0,6/1 miljoen | Dagelijks 10.00 uur | Budgetback-up | ||
| MiniMax M2.5 🆕 | $0,3/1 miljoen invoer | 5-uurs rollen | Redeneren + agenttaken | ||
| MiniMax M2.1 | $ 0,2/1 miljoen | 5-uurs rollen | Goedkoopste optie | ||
| Kimi K2.5 (Moonshot-API) 🆕 | Betalen per gebruik | Geen | Directe Moonshot API-toegang | ||
| Kimi K2 | $ 9/maand plat | 10 miljoen tokens/maand | Voorspelbare kosten | ||
| 🆓 GRATIS | Qoder | $0 | Onbeperkt | 5 modellen onbeperkt | |
| Qwen | $0 | Onbeperkt | 4 modellen onbeperkt | ||
| Kiro | $0 | Onbeperkt | Claude Sonnet/Haiku (AWS-bouwer) | ||
| LongCat Flash-Lite 🆕 | $0(50 miljoen tok/dag 🔥) | 1 RPS | Grootste gratis quotum ter wereld | ||
| Bestuivingen AI 🆕 | $0(geen sleutel nodig) | 1 verzoek/15s | GPT-5, Claude, DeepSeek, Lama 4 | ||
| Cloudflare Workers AI 🆕 | $0(10.000 neuronen/dag) | ~150 resp./dag | 50+ modellen, mondiale voorsprong | ||
| Scaleway-AI 🆕 | $0(totaal 1 miljoen tokens) | Tarief beperkt | EU/AVG, Qwen3 235B, Lama 70B | > 🆕**Nieuwe modellen toegevoegd (maart 2026):**Grok-4 Fast-familie voor 0,20/ 0,50/M (benchmarked op 1143 ms - 30% sneller dan Gemini 2.5 Flash), GLM-5 via Z.AI met 128K-uitvoer, MiniMax M2.5-redenering, DeepSeek V3.2 bijgewerkte prijzen, Kimi K2.5 via Moonshot direct API. |
💡 $0 Combo Stack — De complete gratis installatie:```
🆓 Ultimate Free Stack 2026 — 11 Providers, $0 Forever
Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed Qwen (qw/) → qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next UNLIMITED Gemini (gemini/) → Gemini 2.5 Flash — 1,500 req/day free API key Cloudflare AI (cf/) → Llama 70B, Gemma 3, Mistral — 10K Neurons/day Scaleway (scw/) → Qwen3 235B, Llama 70B — 1M free tokens (EU) Groq (groq/) → Llama/Gemma ultra-fast — 14.4K req/day NVIDIA NIM (nvidia/) → 70+ open models — 40 RPM forever Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day
**Nul kosten. Stopt nooit met coderen.**Configureer dit als één OmniRoute-combo en alle fallbacks gebeuren automatisch - nooit handmatig schakelen.---
---
## 🆓 Free Models — What You Actually Get
> Alle onderstaande modellen zijn**100% gratis, zonder creditcard**. OmniRoute berekent automatisch routes ertussen wanneer één quotum op is – combineer ze allemaal voor een onbreekbare combinatie van $ 0.### 🔵 CLAUDE MODELS (via Kiro — AWS Builder ID)
| Model | Voorvoegsel | Limiet | Tarieflimiet |
| ------------------ | ------ | ------------- | -------------------- |
| `claude-sonnet-4.5` | `kr/` |**Onbeperkt**| Geen gerapporteerde dagelijkse limiet |
| `claude-haiku-4.5` | `kr/` |**Onbeperkt**| Geen gerapporteerde dagelijkse limiet |
| `claude-opus-4.6` | `kr/` |**Onbeperkt**| Nieuwste opus via Kiro |### 🟢 QODER MODELS (Free PAT via qodercli)
| Model | Voorvoegsel | Limiet | Tarieflimiet |
| ------------------ | ------ | ------------- | --------------- |
| `kimi-k2-denken` | `als/` |**Onbeperkt**| Geen gerapporteerde limiet |
| `qwen3-coder-plus` | `als/` |**Onbeperkt**| Geen gerapporteerde limiet |
| `diepzoek-r1` | `als/` |**Onbeperkt**| Geen gerapporteerde limiet |
| `minimax-m2.1` | `als/` |**Onbeperkt**| Geen gerapporteerde limiet |
| `kimi-k2` | `als/` |**Onbeperkt**| Geen gerapporteerde limiet |
> Aanbevolen verbindingsmethode:**Persoonlijk toegangstoken + `qodercli`**. Browser-OAuth is
> experimenteel en standaard uitgeschakeld tenzij `QODER_OAUTH_*` omgevingsvariabelen zijn geconfigureerd.### 🟡 QWEN MODELS (Device Code Auth)
| Model | Voorvoegsel | Limiet | Tarieflimiet |
| ------------------ | ------ | ------------- | ------------------ |
| `qwen3-coder-plus` | `qw/` |**Onbeperkt**| Geen gerapporteerde limiet |
| `qwen3-coder-flash` | `qw/` |**Onbeperkt**| Geen gerapporteerde limiet |
| `qwen3-coder-volgende` | `qw/` |**Onbeperkt**| Geen gerapporteerde limiet |
| `visiemodel` | `qw/` |**Onbeperkt**| Multimodaal (afbeeldingen) |### 🟣 GEMINI CLI (Google OAuth)
| Model | Voorvoegsel | Limiet | Tarieflimiet |
| ----------------------- | ------ | ------------------------- | ------------- |
| `gemini-3-flash-preview` | `gc/` |**180K tok/maand**+ 1K/dag | Maandelijkse reset |
| `gemini-2.5-pro` | `gc/` | 180K/maand (gedeeld zwembad) | Hoge kwaliteit |### ⚫ NVIDIA NIM (Free API Key — build.nvidia.com)
| Niveau | Dagelijkse limiet | Tarieflimiet | Opmerkingen |
| ---------- | ------------ | ----------- | ------------------------------------------------- |
| Gratis (ontwikkelaar) | Geen tokenlimiet |**~40 tpm**| 70+ modellen; overgang naar zuivere tarieflimieten medio 2025 |
Populaire gratis modellen: `moonshotai/kimi-k2.5` (Kimi K2.5), `z-ai/glm4.7` (GLM 4.7), `deepseek-ai/deepseek-v3.2` (DeepSeek V3.2), `nvidia/llama-3.3-70b-instruct`, `deepseek/deepseek-r1`### ⚪ CEREBRAS (Free API Key — inference.cerebras.ai)
| Niveau | Dagelijkse limiet | Tarieflimiet | Opmerkingen |
| ---- | ----------------- | ---------------- | --------------------------------------- |
| Gratis |**1 miljoen tokens/dag**| 60K TPM / 30 RPM | 's Werelds snelste LLM-gevolgtrekking; wordt dagelijks gereset |
Gratis verkrijgbaar: `llama-3.3-70b`, `llama-3.1-8b`, `deepseek-r1-distill-llama-70b`### 🔴 GROQ (Free API Key — console.groq.com)
| Niveau | Dagelijkse limiet | Tarieflimiet | Opmerkingen |
| ---- | ------------- | ---------------- | -------------------------------------- |
| Gratis |**14,4K RPD**| 30 RPM per model | Geen creditcard; 429 op limiet, niet in rekening gebracht |
Gratis verkrijgbaar: `llama-3.3-70b-versatile`, `gemma2-9b-it`, `mixtral-8x7b`, `whisper-large-v3`### 🔴 LONGCAT AI (Free API Key — longcat.chat) 🆕
| Model | Voorvoegsel | Dagelijks gratis quotum | Opmerkingen |
| --------------------------- | ------ | ----------------- | ---------------------- |
| `LongCat-Flash-Lite` | `lc/` |**50 miljoen tokens**💥 | Grootste gratis quotum ooit |
| `LongCat-Flash-Chat` | `lc/` | 500K-tokens | Chat met meerdere beurten |
| `LongCat-Flash-denken` | `lc/` | 500K-tokens | Redenering / CoT |
| `LongCat-Flash-Thinking-2601` | `lc/` | 500K-tokens | Versie januari 2026 |
| `LongCat-Flash-Omni-2603` | `lc/` | 500K-tokens | Multimodaal |
> 100% gratis tijdens de openbare bèta. Meld u aan op [longcat.chat](https://longcat.chat) met e-mail of telefoon. Wordt dagelijks gereset om 00:00 UTC.### 🟢 POLLINATIONS AI (No API Key Required) 🆕
| Model | Voorvoegsel | Tarieflimiet | Aanbieder achter |
| ---------- | ------ | ---------- | ------------------ |
| `openai` | `pol/` | 1 verzoek/15s | GPT-5 |
| `claude` | `pol/` | 1 verzoek/15s | Antropische Claude |
| `Tweeling` | `pol/` | 1 verzoek/15s | Google Tweeling |
| `diep zoeken` | `pol/` | 1 verzoek/15s | DeepSeek V3 |
| `lama` | `pol/` | 1 verzoek/15s | Meta Lama 4 Scout |
| `mistral` | `pol/` | 1 verzoek/15s | Mistral-AI |
> ✨**Geen wrijving:**Geen aanmelding, geen API-sleutel. Voeg de Pollinations-provider toe met een leeg sleutelveld en het werkt meteen.### 🟠 CLOUDFLARE WORKERS AI (Free API Key — cloudflare.com) 🆕
| Niveau | Dagelijkse neuronen | Equivalent gebruik | Opmerkingen |
| ---- | ------------- | ------------------------------------ | ---------------------- |
| Gratis |**10.000**| ~150 LLM resp / 500s audio / 15K insluitingen | Wereldwijde voorsprong, 50+ modellen |
Populaire gratis modellen: `@cf/meta/llama-3.3-70b-instruct`, `@cf/google/gemma-3-12b-it`, `@cf/openai/whisper-large-v3-turbo` (gratis audio!), `@cf/qwen/qwen2.5-coder-15b-instruct`
> Vereist API-token + account-ID van [dash.cloudflare.com](https://dash.cloudflare.com). Bewaar account-ID in providerinstellingen.### 🟣 SCALEWAY AI (1M Free Tokens — scaleway.com) 🆕
| Niveau | Gratis quotum | Locatie | Opmerkingen |
| ---- | ------------- | ------------ | ---------------------------------- |
| Gratis |**1 miljoen tokens**| 🇫🇷 Parijs, EU | Binnen bepaalde grenzen geen creditcard nodig |
Gratis verkrijgbaar: `qwen3-235b-a22b-instruct-2507` (Qwen3 235B!), `llama-3.1-70b-instruct`, `mistral-small-3.2-24b-instruct-2506`, `deepseek-v3-0324`
> EU/AVG-compatibel. Haal de API-sleutel op op [console.scaleway.com](https://console.scaleway.com).
>**💡 De ultieme gratis stapel (11 providers, $ 0 voor altijd):**
>
> ```
> Kiro (kr/) → Claude Sonnet/Haiku ONBEPERKT
> Qoder (if/) → kimi-k2-denken, qwen3-coder-plus, deepseek-r1 ONBEPERKT
> LongCat Lite (lc/) → LongCat-Flash-Lite — 50 miljoen tokens/dag 🔥
> Bestuivingen (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — geen sleutel nodig
> Qwen (qw/) → qwen3-codermodellen ONBEPERKT
> Gemini (gemini/) → Gemini 2.5 Flash — 1.500 vereist/dag gratis
> Cloudflare AI (cf/) → 50+ modellen — 10K neuronen/dag
> Scaleway (scw/) → Qwen3 235B, Llama 70B — 1M gratis tokens (EU)
> Groq (groq/) → Llama/Gemma — 14,4K vereist/dag ultrasnel
> NVIDIA NIM (nvidia/) → 70+ open modellen — altijd 40 RPM
> Cerebras (cerebras/) → Lama/Qwen snelste ter wereld — 1M tok/dag
> ```## 🎙️ Free Transcription Combo
> Transcribeer audio/video voor**$0**— Deepgram-leads met $200 gratis, AssemblyAI $50 fallback, Groq Whisper als onbeperkte noodback-up.
| Aanbieder | Gratis tegoeden | Beste model | Tarieflimiet |
| ----------------- | ---------------------- | ---------------------------------------- | -------------------------- |
| 🟢**Deepgram**|**$200 gratis**(aanmelding) | `nova-3` — beste nauwkeurigheid, meer dan 30 talen | Geen RPM-limiet op gratis credits |
| 🔵**AssemblageAI**|**$ 50 gratis**(aanmelding) | `universal-3-pro` — hoofdstukken, sentiment, PII | Geen RPM-limiet op gratis credits |
| 🔴**Groq**|**Voor altijd gratis**| `fluister-groot-v3` — OpenAI Whisper | 30 RPM (snelheid beperkt) |
**Voorgestelde combo in `/dashboard/combos`:**```
Name: free-transcription
Strategy: Priority
Nodes:
[1] deepgram/nova-3 → uses $200 free first
[2] assemblyai/universal-3-pro → fallback when Deepgram credits run out
[3] groq/whisper-large-v3 → free forever, emergency fallback
Vervolgens in /dashboard/media → tabbladTranscriptie: upload een audio- of videobestand → selecteer uw combo-eindpunt → ontvang transcriptie in ondersteunde formaten.## 💡 Key Features
OmniRoute v2.0 is gebouwd als een operationeel platform, niet alleen als een relay-proxy.### 🆕 New — ClawRouter-Inspired Improvements (Mar 2026)
| Kenmerk | Wat het doet | |
|---|---|---|
| ⚡Grok-4 Fast Familie | xAI-modellen voor 0,20/ 0,50/M — gebenchmarkt 1143 ms (30% sneller dan Gemini 2.5 Flash) |
|
| 🧠GLM-5 via Z.AI | 128K outputcontext, $0,5/1M — nieuwste vlaggenschip uit de GLM-familie | |
| 🔮MiniMax M2.5 | Redeneren + agenttaken voor $ 0,30/1 miljoen – aanzienlijke upgrade van M2.1 | |
| 🎯toolCalling-vlag per model | Per model toolCalling: true/false in register: AutoCombo slaat modellen die niet geschikt zijn voor tools over |
|
| 🌍Meertalige intentiedetectie | PT/ZH/ES/AR-trefwoorden in AutoCombo-scores — betere modelselectie voor niet-Engelse inhoud | |
| 📊Benchmarkgestuurde terugval | Echte p95-latentie van live-verzoeken feeds combo-scores - AutoCombo leert van feitelijke gegevens | |
| 🔁Ontdubbeling aanvragen | Op inhoud-hash gebaseerd ontdubbelingsvenster — veilig voor meerdere agenten, voorkomt dubbele kosten | |
| 🔌Inplugbare routerstrategie | Uitbreidbare RouterStrategy-interface — voeg aangepaste routeringslogica toe als plug-ins |
### 🚀 Previous v2.0.9+ — Playground, CLI Fingerprints & ACP |
| Kenmerk | Wat het doet | |
|---|---|---|
| 🎮Modelspeeltuin | Dashboardpagina om elk model rechtstreeks te testen: provider/model/eindpuntkiezers, Monaco Editor, streaming, afbreken, timing | |
| 🔏CLI-vingerafdrukmatching | Kop-/tekstvolgorde per provider zodat deze overeenkomt met de oorspronkelijke CLI-handtekeningen: schakel per provider in Instellingen > Beveiliging.Uw proxy-IP blijft behouden | |
| 🤝ACP-ondersteuning (Agent Client Protocol) | CLI-agentdetectie (Codex, Claude, Goose, Gemini CLI, OpenClaw + nog 9), process spawner, /api/acp/agents eindpunt |
|
| 🤖ACP-agentendashboard | Debug › Agentenpagina — raster van 14 agenten met installatiestatus, versie en aangepast agentformulier voor elke CLI-tool.OpenCode-gebruikers krijgen een knop 'Opencode.json downloaden' die automatisch een gebruiksklare configuratie genereert met alle beschikbare modellen. | |
🔧Aangepast model apiFormat Routing |
Aangepaste modellen met apiFormat: "responses" routeren nu correct naar de Responses API-vertaler |
|
| 🏢Codex-werkruimte-isolatie | Meerdere Codex-werkruimten per e-mail: OAuth scheidt verbindingen correct op werkruimte-ID | |
| 🔄Elektronische automatische update | Desktop-app controleert op updates + automatisch installeren bij opnieuw opstarten | ### 🤖 Agent & Protocol Operations (v2.0) |
| Kenmerk | Wat het doet | |
|---|---|---|
| 🔧MCP-server (25 tools) | IDE/agent-tools via 3 transporten: stdio, SSE (/api/mcp/sse), Streamable HTTP (/api/mcp/stream). 18 core + 3 geheugen + 4 vaardigheidstools |
|
| 🤝A2A-server (JSON-RPC + SSE) | Agent-naar-agent-taakuitvoering met synchronisatie- en streamingstromen | |
| 🧭Geconsolideerde eindpuntenpagina | Beheerpagina met tabbladen met tabbladen Endpoint Proxy, MCP, A2A en API Endpoints | |
| 🎚️Service in-/uitschakelen schakelt | AAN/UIT-schakelaars voor MCP en A2A met persistentie van de instellingen (standaard: UIT) | |
| 🛰️MCP Runtime-hartslag | Echte processtatus (pid, uptime, hartslagleeftijd, transport, scopemodus) | |
| 📋MCP-audittraject | Filterbare auditlogboeken met succes/mislukking en sleuteltoeschrijving | |
| 🔐MCP-scopehandhaving | 10 gedetailleerde scope-machtigingen voor gecontroleerde toegang tot tools | |
| 📡A2A Taaklevenscyclusbeheer | Lijst/filter taken, inspecteer gebeurtenissen/artefacten, annuleer lopende taken | |
| 📋Agentenkaart ontdekken | /.well-known/agent.json voor automatische detectie van clients |
|
| 🧪Protocol E2E-testharnas | Echte MCP SDK + A2A-clientstromen in test:protocols:e2e |
|
| ⚙️Operationele controles | Wissel van combo, pas veerkrachtprofielen toe, reset onderbrekers vanaf één bedieningsoppervlak | ### 🧠 Routing & Intelligence |
| Kenmerk | Wat het doet | |
|---|---|---|
| 🎯Slimme terugval op 4 niveaus | Autoroute: Abonnement → API-sleutel → Goedkoop → Gratis | |
| 📊Realtime quota bijhouden | Live tokentelling + reset-aftelling per provider | |
| 🔄Formaatvertaling | OpenAI ↔ Claude ↔ Gemini ↔ Reacties met schemaveilige conversies | |
| 👥Ondersteuning voor meerdere accounts | Meerdere accounts per aanbieder met intelligente selectie | |
| 🔄Automatische tokenvernieuwing | OAuth-tokens worden automatisch vernieuwd bij nieuwe poging | |
| 🎨Aangepaste combo's | 9 balanceringsstrategieën + terugvalketencontrole | |
| 🌐Wildcard-router | provider/* dynamische routering |
|
| 🧠Begrotingscontroles bedenken | Passthrough-, automatische, aangepaste en adaptieve redeneerlimieten | |
| 🔀Modelaliassen | Ingebouwde + aangepaste modelaliasing en migratieveiligheid | |
| ⚡Achtergronddegradatie | Achtergrondtaken met lage prioriteit routeren naar goedkopere modellen | |
| 🧪Taakbewuste slimme routering | Model automatisch selecteren op inhoudstype (codering/visie/analyse/samenvatting) | |
| 🔄A2A-agentworkflows | Deterministische FSM-orkestrator voor stateful meerstaps agentuitvoeringen | |
| 🔀Adaptieve routering | Dynamische strategie-overschrijving op basis van tokenvolume en promptcomplexiteit | |
| 🎲Diversiteit van aanbieders | Shannon-entropiescore balanceert automatische combo-verkeersdistributie | |
| 💬Systeempromptinjectie | Wereldwijde gedragscontroles consequent toegepast | |
| 📄Reacties API-compatibiliteit | Volledige /v1/responses ondersteuning voor Codex en geavanceerde agentische workflows |
### 🎵 Multi-Modal APIs |
| Kenmerk | Wat het doet | |
|---|---|---|
| 🖼️Beeld genereren | /v1/images/generations met cloud- en lokale backends |
|
| 📐Insluitingen | /v1/embeddings voor zoek- en RAG-pijplijnen |
|
| 🎤Audiotranscriptie | /v1/audio/transcriptions — 7 providers (Deepgram Nova 3, AssemblyAI, Groq Whisper, HuggingFace, ElevenLabs, OpenAI, Azure), automatische taaldetectie, MP4/MP3/WAV-ondersteuning |
|
| 🔊Tekst-naar-spraak | /v1/audio/speech — 10 providers (ElevenLabs, OpenAI, Deepgram, Cartesia, PlayHT, HuggingFace, Nvidia NIM, Inworld, Coqui, Tortoise) met correcte foutmeldingen |
|
| 🎬Videogeneratie | /v1/videos/generations (ComfyUI + SD WebUI-workflows) |
|
| 🎵Muziekgeneratie | /v1/music/generations (ComfyUI-workflows) |
|
| 🛡️Moderaties | /v1/moderations veiligheidscontroles |
|
| 🔀Herschikking | /v1/rerank voor relevantiescore |
|
| 🔍Webzoeken🆕 | /v1/search — 5 providers (Serper, Brave, Perplexity, Exa, Tavily), 6.500+ gratis/maand, automatische failover, cache |
### 🛡️ Resilience, Security & Governance |
| Kenmerk | Wat het doet | |
|---|---|---|
| 🔌Stroomonderbrekers | Trip/herstel per model met drempelcontroles | |
| 🎯Eindpuntbewuste modellen | Aangepaste modellen declareren ondersteunde eindpunten + API-indeling | |
| 🛡️Anti-donderende kudde | Mutex + semafoorbescherming bij nieuwe pogingen/beoordeelgebeurtenissen | |
| 🧠Semantische + handtekeningcache | Kosten-/latentiereductie met twee cachelagen | |
| ⚡Idempotentie aanvragen | Dubbelbeschermingsvenster | |
| 🔒TLS-vingerafdrukspoofing | Browserachtige TLS-vingerafdruk —vermindert botdetectie en accountmarkering | |
| 🔏CLI-vingerafdrukmatching | Komt overeen met de handtekeningen van native CLI-verzoeken —vermindert het verbodsrisico terwijl het proxy-IP behouden blijft | |
| 🌐IP-filtering | Toelatingslijst/blokkeerlijstbeheer voor blootgestelde implementaties | |
| 📊Bewerkbare tarieflimieten | Configureerbare limieten op globaal/providerniveau met persistentie | |
| 📉Sierlijke degradatie | Fallbacks met meerlaagse mogelijkheden ter bescherming van kerngatewaybewerkingen | |
| 📜Config-audittraject | Op verschillen gebaseerde tracking van wijzigingen voorkomt operationele drift met eenvoudige rollbacks | |
| ⏳Provider Health Sync | Proactieve monitoring van de vervaldatum van tokens, waardoor waarschuwingen worden geactiveerd voordat autorisatie mislukt | |
| 🚪Verbannen accounts automatisch uitschakelen | Operationele stroomonderbreker die permanent geblokkeerde token-accounts automatisch verzegelt | |
| 🔑API-sleutelbeheer + Scoping | Veilige sleuteluitgifte/roulatie en controles op modellen/aanbieders | |
| 👁️Scoped API Key Reveal🆕 | Meld u aan voor herstel van API-sleutels via ALLOW_API_KEY_REVEAL |
|
🛡️Beschermde /modellen |
Optionele authenticatie en providerverberging voor modelcatalogus | ### 📊 Observability & Analytics |
| Kenmerk | Wat het doet | |
|---|---|---|
| 📝Verzoek + proxyregistratie | Volledige aanvraag/antwoord en proxyregistratie | |
| 📉Gestreamde gedetailleerde logboeken🆕 | Reconstrueert SSE-payloadstromen netjes in de gebruikersinterface | |
| 📋Unified Logdashboard | Verzoek-, proxy-, audit- en consoleweergaven op één pagina | |
| 🔍Telemetrie aanvragen | p50/p95/p99-latentie en tracering van aanvragen | |
| 🏥Gezondheidsdashboard | Uptime, status van stroomonderbrekers, uitsluitingen, cachestatistieken | |
| 💰Kosten bijhouden | Budgetcontroles en prijszichtbaarheid per model | |
| 📈Analytische visualisaties | Gebruiksinzichten in modellen/aanbieders en trendweergaven | |
| 🧪Evaluatiekader | Golden set-testen met configureerbare wedstrijdstrategieën | |
| 📡Live diagnostiek🆕 | Semantische cache-bypass voor nauwkeurige combo-livetests | ### ☁️ Deployment & Platform |
| Kenmerk | Wat het doet | |
|---|---|---|
| 🌐Overal implementeren | Localhost, VPS, Docker, Cloudomgevingen | |
| 🚇Cloudflare-tunnel🆕 | Snelle Tunnel-integratie met één klik vanaf het dashboard | |
| 🔑API-sleutelmodelfiltering | Native /v1/models-antwoord gefilterd via toegewezen Bearer-contextrollen | |
| ⚡Smart Cache Bypass | Configureerbare TTL-heuristieken en geforceerde ophaalbedieningen | |
| 🔄Back-up/herstellen | Export/import en noodherstelstromen | |
| 🧙Onboarding-wizard | Begeleide installatie bij eerste gebruik | |
| 🔧CLI Tools-dashboard | Installatie met één klik voor populaire codeertools | |
| 🎮Modelspeeltuin | Test elke provider/model/eindpunt vanaf het dashboard | |
| 🔏CLI-vingerafdrukschakelaar | Matching van vingerafdrukken per provider in Instellingen > Beveiliging | |
| 🌐i18n (30 talen) | Volledig dashboard + documenttaalondersteuning met RTL-dekking | |
| 🧹Alle modellen wissen | Modellijst wissen met één klik in providergegevens | |
| 👁️Zijbalkbediening🆕 | Componenten en integraties verbergen in Weergave-instellingen | |
| 📋Uitgiftesjablonen | Gestandaardiseerde GitHub-sjablonen voor bugs en functies | |
| 📂Aangepaste gegevensmap | DATA_DIR overschrijven voor opslaglocatie |
### Feature Deep Dive |
Smart fallback with practical cost control
Combo: "my-coding-stack"
1. cc/claude-opus-4-6
2. nvidia/llama-3.3-70b
3. glm/glm-4.7
4. if/kimi-k2-thinking
Wanneer quota, tarief of gezondheid falen, gaat OmniRoute automatisch naar de volgende kandidaat zonder handmatig te schakelen.#### Protocol management that is visible and operable
- MCP + A2A zijn vindbaar in de gebruikersinterface en documenten (niet verborgen)
- Protocolstatus-API's geven live operationele gegevens weer (
/api/mcp/*,/api/a2a/*) - Dashboards bevatten acties voor operaties van dag 2 (combinatieschakelaars, reset van onderbrekers, annulering van taken)#### Translator + validation workflow
Het Vertalergebied omvat:
-Speeltuin: transformatiecontroles aanvragen -Chat Tester: volledige aanvraag/antwoordrondreis -Testbank: meerdere cases in één run -Live Monitor: realtime verkeersinformatie
Plus protocolvalidatie met echte clients via npm run test:protocols:e2e.
📖MCP Server README— Toolreferentie, IDE-configuraties en clientvoorbeelden
📖A2A Server README— Vaardigheden, JSON-RPC-methoden, streaming en taaklevenscyclus## 🧪 Evaluations (Evals)
OmniRoute bevat een ingebouwd evaluatieframework om de LLM-responskwaliteit te testen aan de hand van een gouden set. U kunt deze openen viaAnalytics → Evaluatiesin het dashboard.### Built-in Golden Set
De vooraf geladen "OmniRoute Golden Set" bevat testcases voor:
- Groeten, wiskunde, aardrijkskunde, codegeneratie
- Naleving van JSON-formaten, vertaling, genereren van prijsverlagingen
- Veiligheidsweigering (schadelijke inhoud), tellen, booleaanse logica### Evaluation Strategies
| Strategie | Beschrijving | Voorbeeld | |
|---|---|---|---|
exact |
De uitvoer moet exact overeenkomen met | "4" |
|
bevat |
De uitvoer moet een subtekenreeks bevatten (niet hoofdlettergevoelig) | "Parijs" |
|
regex |
Uitvoer moet overeenkomen met regex-patroon | "1.*2.*3" |
|
op maat |
Aangepaste JS-functie retourneert waar/onwaar | (uitvoer) => uitvoer.lengte > 10 |
--- |
📖 Setup Guide
Protocol Setup (MCP + A2A)
🧩 MCP-installatie (Model Context Protocol)
Start MCP-transport in stdio-modus:```bash omniroute --mcp
Aanbevolen validatiestroom:
1. Verbind uw MCP-client via stdio.
2. Voer `omniroute_get_health` uit.
3. Voer 'omniroute_list_combos' uit.
4. Open `/dashboard/mcp` om hartslag, activiteit en audit te bevestigen.
Handige API's voor automatisering:
- `KRIJG /api/mcp/status`
- `Haal /api/mcp/tools`
- `GET /api/mcp/audit`
- `Haal /api/mcp/audit/stats`</details>
<details>
<summary><b>🤝 A2A-installatie (Agent2Agent)</b></summary>
Ontdek de makelaar:```bash
curl http://localhost:20128/.well-known/agent.json
Stuur een taak:```bash
curl -X POST http://localhost:20128/a2a
-H 'content-type: application/json'
-d '{"jsonrpc":"2.0","id":"setup-a2a","method":"message/send","params":{"skill":"quota-management","messages":[{"role":"user","content":"Summarize quota status."}]}}'
Levenscyclus beheren:
- `KRIJG /api/a2a/status`
- `GET /api/a2a/tasks`
- `Haal /api/a2a/tasks/:id`
- `POST /api/a2a/tasks/:id/cancel`
Operationele gebruikersinterface:
- `/dashboard/a2a` voor observatie van taken/status/stream en rookacties</details>
<details>
<summary><b>🧪 End-to-end protocolvalidatie</b></summary>
Valideer beide protocollen met echte clients:```bash
npm run test:protocols:e2e
Dit verifieert:
- MCP SDK-client verbinden/lijst/oproepen
- A2A-detectie/verzenden/streamen/ophalen/annuleren
- Controleer gegevens in MCP-audit en A2A-taakbeheer-API's
💳 Abonnementaanbieders
### Claude Code (Pro/Max)Dashboard → Providers → Connect Claude Code
→ OAuth login → Auto token refresh
→ 5-hour + weekly quota tracking
Models:
cc/claude-opus-4-6
cc/claude-sonnet-4-5-20250929
cc/claude-haiku-4-5-20251001
**Pro-tip:**Gebruik Opus voor complexe taken, Sonnet voor snelheid. OmniRoute houdt quota bij per model!### OpenAI Codex (Plus/Pro)
Dashboard → Providers → Connect Codex
→ OAuth login (port 1455)
→ 5-hour + weekly reset
Models:
cx/gpt-5.2-codex
cx/gpt-5.1-codex-max
Codex Account Limit Management (5h + Weekly)
Elk Codex-account heeft nu beleidsschakelaars in Dashboard -> Providers:
5h(AAN/UIT): handhaaf het drempelbeleid van 5 uur.Wekelijks(AAN/UIT): het drempelbeleid voor wekelijkse vensters afdwingen.- Drempelgedrag: wanneer een ingeschakeld venster >=90% gebruik bereikt, wordt dat account overgeslagen.
- Rotatiegedrag: OmniRoute routeert automatisch naar het volgende in aanmerking komende Codex-account.
- Resetgedrag: wanneer de
resetAt-tijd van de provider verstrijkt, komt het account automatisch weer in aanmerking.
Scenario's:
5u AAN+Wekelijks AAN: account wordt overgeslagen wanneer een van beide vensters de drempel bereikt.5u UIT+Wekelijks AAN: alleen wekelijks gebruik kan het account blokkeren.5u AAN+Wekelijks UIT: alleen 5 uur gebruik kan het account blokkeren.resetAtdoorgegeven: account gaat automatisch opnieuw in rotatie (geen handmatige herinschakeling).### Gemini CLI (FREE 180K/month!)
Dashboard → Providers → Connect Gemini CLI
→ Google OAuth
→ 180K completions/month + 1K/day
Models:
gc/gemini-3-flash-preview
gc/gemini-2.5-pro
**Beste waarde:**Enorm gratis niveau! Gebruik dit vóór betaalde niveaus.### GitHub Copilot
Dashboard → Providers → Connect GitHub
→ OAuth via GitHub
→ Monthly reset (1st of month)
Models:
gh/gpt-5
gh/claude-4.5-sonnet
gh/gemini-3.1-pro-preview
🔑 API-sleutelproviders
### NVIDIA NIM (FREE developer access — 70+ models)- Aanmelden: build.nvidia.com
- Ontvang een gratis API-sleutel (inclusief 1000 inferentiecredits)
- Dashboard → Provider toevoegen → NVIDIA NIM:
- API-sleutel:
nvapi-uw-sleutel
- API-sleutel:
Modellen:nvidia/llama-3.3-70b-instruct, nvidia/mistral-7b-instruct en 50+ meer
**Pro-tip:**OpenAI-compatibele API — werkt naadloos samen met de formaatvertaling van OmniRoute!### DeepSeek
- Aanmelden: platform.deepseek.com
- Haal de API-sleutel op
- Dashboard → Provider toevoegen → DeepSeek
Modellen:deepseek/deepseek-chat, deepseek/deepseek-coder### Groq (Free Tier Available!)
- Aanmelden: console.groq.com
- Ontvang een API-sleutel (inclusief gratis laag)
- Dashboard → Provider toevoegen → Groq
Modellen:groq/llama-3.3-70b, groq/mixtral-8x7b
**Pro-tip:**Ultrasnelle gevolgtrekking — het beste voor realtime coderen!### OpenRouter (100+ Models)
- Aanmelden: openrouter.ai
- Haal de API-sleutel op
- Dashboard → Provider toevoegen → OpenRouter
**Modellen:**Krijg toegang tot meer dan 100 modellen van alle grote providers via één enkele API-sleutel.
Dashboardgedrag:OpenRouter-modellen worden beheerd vanuitBeschikbare modellen. Handmatig toevoegen, importeren en automatisch synchroniseren werken allemaal dezelfde lijst bij.
💰 Goedkope providers (back-up)
### GLM-4.7 (Daily reset, $0.6/1M)- Aanmelden: Zhipu AI
- Haal de API-sleutel op uit het Coderingsplan
- Dashboard → API-sleutel toevoegen:
- Aanbieder:
glm - API-sleutel:
uw-sleutel
- Aanbieder:
Gebruik:glm/glm-4.7
**Pro-tip:**Coderingsplan biedt 3× quotum tegen 1/7 kosten! Dagelijks resetten om 10:00 uur.### MiniMax M2.1 (5h reset, $0.20/1M)
- Aanmelden: MiniMax
- Haal de API-sleutel op
- Dashboard → API-sleutel toevoegen
Gebruik:minimax/MiniMax-M2.1
**Pro-tip:**Goedkoopste optie voor lange context (1 miljoen tokens)!### Kimi K2 ($9/month flat)
- Abonneer je op: Moonshot AI
- Haal de API-sleutel op
- Dashboard → API-sleutel toevoegen
Gebruik:kimi/kimi-latest
**Pro-tip:**Vaste 9/maand voor 10 miljoen tokens = 0,90/1 miljoen effectieve kosten!
🆓 GRATIS providers (noodback-up)
### Qoder (5 FREE models via OAuth)Dashboard → Connect Qoder
→ Qoder OAuth login
→ Unlimited usage
Models:
if/kimi-k2-thinking
if/qwen3-coder-plus
if/glm-4.7
if/minimax-m2
if/deepseek-r1
Qwen (4 FREE models via Device Code)
Dashboard → Connect Qwen
→ Device code authorization
→ Unlimited usage
Models:
qw/qwen3-coder-plus
qw/qwen3-coder-flash
Kiro (Claude FREE)
Dashboard → Connect Kiro
→ AWS Builder ID or Google/GitHub
→ Unlimited usage
Models:
kr/claude-sonnet-4.5
kr/claude-haiku-4.5
🎨 Combo's maken
### Example 1: Maximize Subscription → Cheap BackupDashboard → Combos → Create New
Name: premium-coding
Models:
1. cc/claude-opus-4-6 (Subscription primary)
2. glm/glm-4.7 (Cheap backup, $0.6/1M)
3. minimax/MiniMax-M2.1 (Cheapest fallback, $0.20/1M)
Use in CLI: premium-coding
Example 2: Free-Only (Zero Cost)
Name: free-combo
Models:
1. gc/gemini-3-flash-preview (180K free/month)
2. if/kimi-k2-thinking (unlimited)
3. qw/qwen3-coder-plus (unlimited)
Cost: $0 forever!
🔧 CLI-integratie
### Cursor IDESettings → Models → Advanced:
OpenAI API Base URL: http://localhost:20128/v1
OpenAI API Key: [from OmniRoute dashboard]
Model: cc/claude-opus-4-6
Claude Code
Gebruik de paginaCLI Toolsin het dashboard voor configuratie met één klik, of bewerk ~/.claude/settings.json handmatig.### Codex CLI
export OPENAI_BASE_URL="http://localhost:20128"
export OPENAI_API_KEY="your-omniroute-api-key"
codex "your prompt"
OpenClaw
Optie 1 — Dashboard (aanbevolen):``` Dashboard → CLI Tools → OpenClaw → Select Model → Apply
**Optie 2 — Handmatig:**Bewerk `~/.openclaw/openclaw.json`:```json
{
"models": {
"providers": {
"omniroute": {
"baseUrl": "http://127.0.0.1:20128/v1",
"apiKey": "sk_omniroute",
"api": "openai-completions"
}
}
}
}
**Opmerking:**OpenClaw werkt alleen met lokale OmniRoute. Gebruik
127.0.0.1in plaats vanlocalhostom IPv6-resolutieproblemen te voorkomen.### Cline / Continue / RooCode
Settings → API Configuration:
Provider: OpenAI Compatible
Base URL: http://localhost:20128/v1
API Key: [from OmniRoute dashboard]
Model: if/kimi-k2-thinking
OpenCode
**Stap 1:**Voeg OmniRoute toe als aangepaste provider:```bash opencode /connect
Select "Other" → Enter ID: "omniroute" → Enter your OmniRoute API key
**Stap 2:**Maak/bewerk `opencode.json` in de hoofdmap van uw project:```json
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"omniroute": {
"npm": "@ai-sdk/openai-compatible",
"name": "OmniRoute",
"options": {
"baseURL": "http://localhost:20128/v1"
},
"models": {
"cc/claude-sonnet-4-20250514": { "name": "Claude Sonnet 4" },
"gg/gemini-2.5-pro": { "name": "Gemini 2.5 Pro" },
"if/kimi-k2-thinking": { "name": "Kimi K2 (Free)" }
}
}
}
}
**Stap 3:**Selecteer het model in OpenCode:```bash /models
Select any OmniRoute model from the list
>**Tip:**Voeg elk model dat beschikbaar is in uw OmniRoute `/v1/models`-eindpunt toe aan de sectie `modellen`. Gebruik het formaat `provider/model-id` van uw OmniRoute-dashboard.</details>
---
## Probleemoplossing
<details>
<summary><b>Klik om de probleemoplossingsgids uit te vouwen</b></summary>
**"Taalmodel heeft geen berichten verstrekt"**
- Providerquotum opgebruikt → Controleer dashboardquotumtracker
- Oplossing: gebruik combo-fallback of schakel over naar een goedkoper niveau
**Snelheidslimiet**
- Abonnementquotum op → Terugval op GLM/MiniMax
- Combo toevoegen: `cc/claude-opus-4-6 → glm/glm-4.7 → if/kimi-k2-thinking`
**OAuth-token verlopen**
- Automatisch vernieuwd door OmniRoute
- Als de problemen aanhouden: Dashboard → Provider → Opnieuw verbinding maken
**Hoge kosten**
- Controleer gebruiksstatistieken in Dashboard → Kosten
- Schakel het primaire model over naar GLM/MiniMax
- Gebruik de gratis laag (Gemini CLI, Qoder) voor niet-kritieke taken
**Dashboard-/API-poorten zijn verkeerd**
- `POORT` is de canonieke basispoort (en standaard de API-poort)
- `API_PORT` overschrijft alleen de OpenAI-compatibele API-listener
- `DASHBOARD_PORT` overschrijft alleen dashboard/Next.js-listener
- Stel `NEXT_PUBLIC_BASE_URL` in op uw dashboard/openbare URL (voor OAuth-callbacks)
**Cloudsynchronisatiefouten**
- Controleer of `BASE_URL` verwijst naar uw actieve exemplaar
- Controleer of `CLOUD_URL` verwijst naar uw verwachte cloudeindpunt
- Houd de `NEXT_PUBLIC_*`-waarden uitgelijnd met de waarden op de server
**Eerste login werkt niet**
- Controleer `INITIAL_PASSWORD` in `.env`
- Indien niet ingesteld, is het reservewachtwoord '123456'
**Geen verzoeklogboeken**
- Verzoekartefacten worden naar `DATA_DIR/call_logs/` geschreven als één JSON-bestand per verzoek
- Schakel het vastleggen van pijplijnen in vanuit Dashboard → Logboeken → Logboeken aanvragen als u gedetailleerde payloads per fase nodig heeft
- Stel `APP_LOG_TO_FILE=true` in als u ook logboeken van de applicatieconsole wilt in `logs/application/app.log`
- Pas indien nodig `APP_LOG_MAX_FILE_SIZE`, `APP_LOG_RETENTION_DAYS`, `APP_LOG_MAX_FILES` en `CALL_LOG_MAX_ENTRIES` aan
**Verbindingstest toont "Ongeldig" voor OpenAI-compatibele providers**
- Veel providers stellen geen `/modellen`-eindpunt beschikbaar
- OmniRoute v1.0.6+ omvat fallback-validatie via chat-voltooiingen
- Zorg ervoor dat de basis-URL het achtervoegsel `/v1` bevat### 🔐 OAuth on a Remote Server
<a name="oauth-op-een-remote-server"></a>
<a name="oauth-em-servidor-remoto"></a>
>**⚠️ Belangrijk voor gebruikers die OmniRoute gebruiken op een VPS, Docker of een externe server**#### Why does Antigravity / Gemini CLI OAuth fail on remote servers?
De providers**Antigravity**en**Gemini CLI**gebruiken**Google OAuth 2.0**. Google vereist dat de `redirect_uri` in de OAuth-stroom exact overeenkomt met een van de vooraf geregistreerde URI's in de Google Cloud Console van de app.
De OAuth-referenties die in OmniRoute zijn gebundeld, zijn**alleen voor `localhost`**geregistreerd. Wanneer u OmniRoute opent op een externe server (bijvoorbeeld `https://omniroute.myserver.com`), weigert Google de authenticatie met:```
Error 400: redirect_uri_mismatch
Solution: Configure your own OAuth credentials
U moet eenOAuth 2.0 Client IDmaken in Google Cloud Console met de URI van uw server.#### Step-by-step
1. Open Google Cloud Console
Ga naar: https://console.cloud.google.com/apis/credentials
2. Maak een nieuwe OAuth 2.0-client-ID
- Klik op**"+ Credentials aanmaken"→"OAuth-client-ID"**
- Applicatietype:"Webapplicatie"
- Naam: wat je maar wilt (bijvoorbeeld
OmniRoute Remote)
3. Geautoriseerde omleidings-URI's toevoegen
Voeg in het veld**"Geautoriseerde omleidings-URI's"**het volgende toe:``` https://your-server.com/callback
> Vervang `uw-server.com` door het domein of IP-adres van uw server (voeg indien nodig de poort toe, bijvoorbeeld `http://45.33.32.156:20128/callback`).
**4. Bewaar en kopieer de inloggegevens**
Na het maken toont Google de**Client-ID**en**Clientgeheim**.
**5. Omgevingsvariabelen instellen**
In uw `.env` (of Docker-omgevingsvariabelen):```bash
# For Antigravity:
ANTIGRAVITY_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com
ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-your-secret
# For Gemini CLI:
GEMINI_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com
GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret
GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret
6. Start OmniRoute opnieuw```bash
npm:
npm run dev
Docker:
docker restart omniroute
**7. Probeer opnieuw verbinding te maken**
Dashboard → Providers → Antigravity (of Gemini CLI) → OAuth
Google zal nu correct doorverwijzen naar `https://uw-server.com/callback`.---
#### Temporary workaround (without custom credentials)
Als u nu niet uw eigen inloggegevens wilt instellen, kunt u nog steeds de**handmatige URL-stroom**gebruiken:
1. OmniRoute opent de Google-autorisatie-URL
2. Na autorisatie probeert Google om te leiden naar `localhost` (wat mislukt op de externe server)
3.**Kopieer de volledige URL**uit de adresbalk van uw browser (zelfs als de pagina niet wordt geladen)
4. Plak die URL in het veld dat wordt weergegeven in het OmniRoute-verbindingsmodel
5. Klik op**"Verbinden"**
> Dit werkt omdat de autorisatiecode in de URL geldig is, ongeacht of de omleidingspagina is geladen.---
<details>
<samenvatting><b>🇧🇷 Versão em Português</b></summary>#### Por que o OAuth do Antigravity / Gemini CLI falha em servidores remotos?
Deze bewijzen**Antigravity**en**Gemini CLI**gebruiken**Google OAuth 2.0**voor authenticatie. Of Google zegt dat een `redirect_uri` geen OAuth-zoekopdracht**exatamente**een van de URI's vóór de kadaster heeft uitgevoerd zonder dat de Google Cloud Console een toepassing heeft.
Omdat OAuth geen OmniRoute-registratie heeft, is dit**apenas para `localhost`**. Wanneer u OmniRoute op een externe server opent (bijvoorbeeld: `https://omniroute.meuservidor.com`), of Google een autenticação com:```
Error 400: redirect_uri_mismatch
Solução: Configure suas próprias credenciais OAuth
U kunt precies zien hoeOAuth 2.0 Client IDgeen Google Cloud Console heeft met een URI van zijn server.#### Passo a passo
1. Toegang tot Google Cloud Console
Abra: https://console.cloud.google.com/apis/credentials
2. Nieuwe OAuth 2.0 client-ID
- Klik op**"+ Credentials aanmaken"→"OAuth-client-ID"**
- Applicatietip:"Webapplicatie"
- Nome: escolha qualquer nome (bijvoorbeeld:
OmniRoute Remote)
3. Adicione als geautoriseerde omleidings-URI's
Geen campagne**"Geautoriseerde omleidings-URI's"**, aanbevolen:``` https://seu-servidor.com/callback
> Vervang `seu-servidor.com` door de domicilie of het IP-adres van uw server (inclusief een noodzakelijke porta, bijvoorbeeld: `http://45.33.32.156:20128/callback`).
**4. Bewaar en kopieer als credenciais**
U kunt ook op Google klikken op**Client-ID**en**Clientgeheim**.
**5. Configureer als variáveis de ambiente**
Geen `.env` (of de verschillende omgevingen van Docker):```bash
# Para Antigravity:
ANTIGRAVITY_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com
ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret
# Para Gemini CLI:
GEMINI_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com
GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret
GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret
6. Reinicie van OmniRoute```bash
Se usando npm:
npm run dev
Se usando Docker:
docker restart omniroute
**7. Nieuwe verbinding**
Dashboard → Providers → Antigravity (ou Gemini CLI) → OAuth
Nadat Google de juiste verwijzing naar `https://seu-servidor.com/callback` heeft gemaakt en een automatische functie heeft uitgevoerd.---
#### Workaround temporário (sem configurar credenciais próprias)
Als u geen geloofwaardige geloofwaardigheid meer heeft, is het mogelijk om de stroom**handleiding van de URL**te gebruiken:
1. OmniRoute gebruikt een autorisatie-URL van Google
2. Nadat u de autorisatie heeft gegeven, zal Google de verwijzing naar 'localhost' doorsturen (die geen externe service biedt)
3.**Kopieer een volledige URL**door de browser van uw browser (het bericht dat de pagina niet verder gaat)
4. Cole essa URL is niet beschikbaar op de verbindingswijze van OmniRoute
5. Klik op**"Verbinden"**
> Deze tijdelijke oplossing werkt door de autorisatiecode van de URL en is onafhankelijk van het omleiden naar uw autorisatie of niet.</details>
---
</details>
## 🛠️ Tech Stack
<details>
<summary><b>Klik om de details van de tech-stack uit te vouwen</b></summary>
-**Runtime**: Node.js 18–22 LTS (⚠️ Node.js 24+ wordt**niet ondersteund**— `better-sqlite3` native binaire bestanden zijn incompatibel)
-**Taal**: TypeScript 5.9 —**100% TypeScript**voor `src/` en `open-sse/` (nul `any` in kernmodules sinds v2.0)
-**Framework**: Next.js 16 + React 19 + Tailwind CSS 4
-**Database**: LowDB (JSON) + SQLite (domeinstatus + proxylogboeken + MCP-audit + routeringsbeslissingen)
-**Schema's**: Zod (MCP-tool I/O-validatie, API-contracten)
-**Protocollen**: MCP (stdio/HTTP) + A2A v0.3 (JSON-RPC 2.0 + SSE)
-**Streaming**: door de server verzonden gebeurtenissen (SSE)
-**Auth**: OAuth 2.0 (PKCE) + JWT + API-sleutels + MCP-scoped autorisatie
-**Testen**: Node.js testrunner + Vitest (900+ tests inclusief unit, integratie, E2E)
-**CI/CD**: GitHub-acties (automatische npm-publicatie + Docker Hub bij release)
-**Website**: [omniroute.online](https://omniroute.online)
-**Pakket**: [npmjs.com/package/omniroute](https://www.npmjs.com/package/omniroute)
-**Docker**: [hub.docker.com/r/diegosouzapw/omniroute](https://hub.docker.com/r/diegosouzapw/omniroute)
-**Veerkracht**: stroomonderbreker, exponentiële uitstel, anti-donderkudde, TLS-spoofing, automatische combo-zelfherstel</details>
---
## Documentatie
| Document | Beschrijving |
| ----------------------------------------- | ---------------------------------------------- |
| [Gebruikershandleiding](docs/USER_GUIDE.md) | Providers, combo's, CLI-integratie, implementatie |
| [API-referentie](docs/API_REFERENCE.md) | Alle eindpunten met voorbeelden |
| [MCP-server](open-sse/mcp-server/README.md) | 16 MCP-tools, IDE-configuraties, Python/TS/Go-clients |
| [A2A-server](src/lib/a2a/README.md) | JSON-RPC 2.0-protocol, vaardigheden, streaming, taakbeheer |
| [Auto-Combo-engine](docs/auto-combo.md) | Scoren met 6 factoren, moduspakketten, zelfgenezing |
| [Problemen oplossen](docs/TROUBLESHOOTING.md) | Veelvoorkomende problemen en oplossingen |
| [Architectuur](docs/ARCHITECTURE.md) | Systeemarchitectuur en internals |
| [Bijdragen](CONTRIBUTING.md) | Ontwikkelingsopstelling en richtlijnen |
| [OpenAPI-specificatie](docs/openapi.yaml) | OpenAPI 3.0-specificatie |
| [Beveiligingsbeleid](SECURITY.md) | Kwetsbaarheidsrapportage en beveiligingspraktijken |
| [VM-implementatie](docs/VM_DEPLOYMENT_GUIDE.md) | Volledige gids: VM + nginx + Cloudflare-installatie |
| [Functiegalerij](docs/FEATURES.md) | Visuele dashboardrondleiding met screenshots |
| [Releasechecklist](docs/RELEASE_CHECKLIST.md) | Validatiestappen vóór de release |---
## 🗺️ Roadmap
OmniRoute heeft**210+ functies gepland**over meerdere ontwikkelingsfasen. Dit zijn de belangrijkste gebieden:
| Categorie | Geplande functies | Hoogtepunten |
| --------------------------- | ---------------- | ----------------------------------------------------------------------------- |
| 🧠**Routing en intelligentie**| 25+ | Routering met de laagste latentie, op tags gebaseerde routering, quota-preflight, P2C-accountselectie |
| 🔒**Beveiliging en naleving**| 20+ | SSRF-verharding, cloaking van inloggegevens, snelheidslimiet per eindpunt, scoping van beheersleutels |
| 📊**Waarneembaarheid**| 15+ | OpenTelemetry-integratie, realtime quotabewaking, kostenregistratie per model |
| 🔄**Provider-integraties**| 20+ | Dynamisch modelregister, cooldowns van providers, Codex met meerdere accounts, parseren van Copilot-quota |
| ⚡**Prestaties**| 15+ | Dubbele cachelaag, promptcache, responscache, streaming keepalive, batch-API |
| 🌐**Ecosysteem**| 10+ | WebSocket API, configuratie hot-reload, gedistribueerde configuratieopslag, commerciële modus |### 🔜 Coming Soon
- 🔗**OpenCode-integratie**— Native providerondersteuning voor de OpenCode AI-coderings-IDE
- 🔗**TRAE-integratie**— Volledige ondersteuning voor het TRAE AI-ontwikkelingsframework
- 📦**Batch API**— Asynchrone batchverwerking voor bulkaanvragen
- 🎯**Op tags gebaseerde routering**— Routeer verzoeken op basis van aangepaste tags en metagegevens
- 💰**Laagste kostenstrategie**— Selecteer automatisch de goedkoopste beschikbare provider
> 📝 Volledige functiespecificaties beschikbaar in [`docs/new-features/`](docs/new-features/) (217 gedetailleerde specificaties)---
## 👥 Contributors
[](https://github.com/diegosouzapw/OmniRoute/graphs/contributors)
### How to Contribute
1. Fork de repository
2. Maak je feature branch (`git checkout -b feature/amazing-feature`)
3. Voer je wijzigingen door (`git commit -m 'Geweldige functie toevoegen'`)
4. Push naar de branch (`git push origin feature/amazing-feature`)
5. Open een Pull Request
Zie [CONTRIBUTING.md](CONTRIBUTING.md) voor gedetailleerde richtlijnen.### Releasing a New Version
```bash
# Create a release — npm publish happens automatically
gh release create v2.0.0 --title "v2.0.0" --generate-notes
📊 Star History
Stargazers over time
🙏 Acknowledgments
Speciale dank aan**9routerdoordecolua**— het originele project dat deze vork inspireerde. OmniRoute bouwt voort op die ongelooflijke basis met extra functies, multimodale API's en een volledige TypeScript-herschrijving.
Speciale dank aan**CLIProxyAPI**— de originele Go-implementatie die deze JavaScript-poort inspireerde.---
Licentie
MIT-licentie - zie LICENTIE voor details.---









