# đ OmniRoute â Den gratis AI-gateway
### Stop aldrig med at kode. Smart routing til **GRATIS og billige AI-modeller** med automatisk fallback.
_Din universelle API-proxy â ĂŠt slutpunkt, 36+ udbydere, ingen nedetid. Nu med **MCP & A2A** agentorkestrering._
**Chatafslutninger ⢠Indlejringer ⢠Billedgenerering ⢠Video ⢠Musik ⢠Lyd ⢠Genrangering ⢠MCP-server ⢠A2A-protokol ⢠100 % TypeScript**
---
### đ¤ Gratis AI-udbyder til dine foretrukne kodningsagenter
_Tilslut ethvert AI-drevet IDE- eller CLI-vÌrktøj gennem OmniRoute - gratis API-gateway til ubegrÌnset kodning._
đĄ Alle agenter opretter forbindelse via http://localhost:20128/v1 eller http://cloud.omniroute.online/v1XQZPH00 og unlimited model conf. quota
---
### đ What's New in v3.0.0
| Area | Change |
| -------------------------- | --------------------------------------------------------------------------------- |
| đ **CodeQL Security** | Fixed 10+ CodeQL alerts: polynomial-redos, insecure-randomness, shell-injection |
| â
**Route Validation** | All 176 API routes validated with Zod schemas + `validateBody()` |
| đ **omniModel Tag Leak** | Internal `` tags no longer leak to clients in SSE streams (#585) |
| đ **Registered Keys API** | Auto-provision API keys via `POST /api/v1/registered-keys` with quota enforcement |
| đ¨ **Provider Icons** | 130+ provider logos via `@lobehub/icons` (SVG) with PNG fallback |
| đ **Model Auto-Sync** | 24h scheduler refreshes model lists for 16 providers |
| đ **OpenCode Zen/Go** | Two new providers: free tier + subscription tier |
| đ§ **926 Tests** | Full test suite passes with 0 failures |
### đ What's New in v3.0.0
| Area | Change |
| -------------------------- | --------------------------------------------------------------------------------- |
| đ **CodeQL Security** | Fixed 10+ CodeQL alerts: polynomial-redos, insecure-randomness, shell-injection |
| â
**Route Validation** | All 176 API routes validated with Zod schemas + `validateBody()` |
| đ **omniModel Tag Leak** | Internal `` tags no longer leak to clients in SSE streams (#585) |
| đ **Registered Keys API** | Auto-provision API keys via `POST /api/v1/registered-keys` with quota enforcement |
| đ¨ **Provider Icons** | 130+ provider logos via `@lobehub/icons` (SVG) with PNG fallback |
| đ **Model Auto-Sync** | 24h scheduler refreshes model lists for 16 providers |
| đ **OpenCode Zen/Go** | Two new providers: free tier + subscription tier |
| đ§ **926 Tests** | Full test suite passes with 0 failures |
---
## đ¤ Hvorfor OmniRoute?
**Stop med at spilde penge og nĂĽ grĂŚnser:**
-
Abonnementskontingent udløber ubrugt hver müned
-
HastighedsgrĂŚnser stopper dig med midtkodning
-
Dyre API'er ($20-50/mĂĽned pr. udbyder)
-
Manuel skift mellem udbydere
**OmniRoute løser dette:**
- â
**Maksimer abonnementer** - Spor kvote, brug hver bit før nulstilling
- â
**Automatisk fallback** - Abonnement â API-nøgle â Billig â Gratis, ingen nedetid
- â
**Multi-konto** - Round-robin mellem konti pr. udbyder
- â
**Universal** - Virker med Claude Code, Codex, Gemini CLI, Cursor, Cline, OpenClaw, ethvert CLI-vÌrktøj
---
## đ§ Support> đŹ **Tilmeld dig vores fĂŚllesskab!** [WhatsApp Group](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) â FĂĽ hjĂŚlp, del tips, og hold dig opdateret.
- **Websted**: [omniroute.online](https://omniroute.online)
- **GitHub**: [github.com/diegosouzapw/OmniRoute](https://github.com/diegosouzapw/OmniRoute)
- **Problemer**: [github.com/diegosouzapw/OmniRoute/issues](https://github.com/diegosouzapw/OmniRoute/issues)
- **WhatsApp**: [FĂŚllesskabsgruppe](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t)
- **Bidrager**: Se [CONTRIBUTING.md](CONTRIBUTING.md), ĂĽbn en PR, eller vĂŚlg en `good first issue`
- **Originalt projekt**: [9router af decolua](https://github.com/decolua/9router)
---
## đ SĂĽdan virker det
```
âââââââââââââââ
â 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] iFlow, Qwen, Kiro (unlimited)
Result: Never stop coding, minimal cost
```
---
## đŻ Hvad OmniRoute løser â 30 rigtige smertepunkter og brugssager
> **Alle udviklere, der bruger AI-vÌrktøjer, stür over for disse problemer dagligt.** OmniRoute blev bygget til at løse dem alle - fra omkostningsoverskridelser til regionale blokke, fra ødelagte OAuth-flows til protokoloperationer og observerbarhed i virksomheden.
đ¸ 1. "Jeg betaler for et dyrt abonnement, men bliver stadig afbrudt af grĂŚnser"
Udviklere betaler $20-200/mĂĽned for Claude Pro, Codex Pro eller GitHub Copilot. Selv ved betaling har kvoten et loft - 5 timers brug, ugentlige grĂŚnser eller satsgrĂŚnser pr. minut. Mid-coding session, udbyderen holder op med at svare, og udvikleren mister flow og produktivitet.
**Südan løser OmniRoute det:**
- **Smart 4-Tier Fallback** â Hvis abonnementskvoten løber ud, omdirigeres automatisk til API Key â Billig â Gratis uden manuel indgriben
- **Kvotesporing i realtid** â Viser tokenforbrug i realtid med nulstillingsnedtĂŚlling (5 timer, dagligt, ugentligt)
- **Multi-Account Support** - Flere konti pr. udbyder med automatisk round-robin - nür den ene løber tør, skifter til den nÌste
- **Custom Combos** â Tilpasselige fallback-kĂŚder med 6 balanceringsstrategier (fill-first, round-robin, P2C, tilfĂŚldig, mindst brugt, omkostningsoptimeret)
- **Codex Business Quotas** â Business/Team Workspace kvoteovervĂĽgning direkte i dashboardet
đ 2. "Jeg skal bruge flere udbydere, men hver har en forskellig API"
OpenAI bruger et format, Claude (Antropisk) bruger et andet, Gemini endnu et andet. Hvis en udvikler ønsker at teste modeller fra forskellige udbydere eller fallback mellem dem, skal de omkonfigurere SDK'er, Ìndre slutpunkter, hündtere inkompatible formater. Tilpassede udbydere (FriendLI, NIM) har ikke-standardmodelslutpunkter.
**Südan løser OmniRoute det:**
- **Unified Endpoint** â En enkelt `http://localhost:20128/v1` fungerer som proxy for alle 36+ udbydere
- **FormatoversĂŚttelse** â Automatisk og gennemsigtig: OpenAI â Claude â Gemini â Responses API
- **Responssanering** â Fjerner ikke-standardfelter (`x_groq`, `usage_breakdown`, `service_tier`), der bryder OpenAI SDK v1.83+
- **Rollenormalisering** â Konverterer `developer` â `system` for ikke-OpenAI-udbydere; `system` â `user` til GLM/ERNIE
- **Think Tag Extraction** â UdtrĂŚkker ``-blokke fra modeller som DeepSeek R1 til standardiseret `reasoning_content`
- **Structured Output for Gemini** â `json_schema` â `responseMimeType`/`responseSchema` automatisk konvertering
- **`stream` er som standard `false`** â Justerer med OpenAI-specifikationer, og undgĂĽr uventede SSE i Python/Rust/Go SDK'er
đ 3. "Min AI-udbyder blokerer mit omrĂĽde/land"
Udbydere som OpenAI/Codex blokerer adgang fra visse geografiske omrĂĽder. Brugere fĂĽr fejl som `unsupported_country_region_territory` under OAuth- og API-forbindelser. Dette er isĂŚr frustrerende for udviklere fra udviklingslande.
**Südan løser OmniRoute det:**
- **3-Level Proxy Config** â Konfigurerbar proxy pĂĽ 3 niveauer: global (al trafik), pr. udbyder (kun ĂŠn udbyder) og pr. forbindelse/nøgle
- **Farvekodede proxy-badges** â Visuelle indikatorer: đ˘ global proxy, đĄ udbyder proxy, đľ forbindelsesproxy, viser altid IP'en
- **OAuth-tokenudveksling gennem proxy** â OAuth-flowet gĂĽr ogsĂĽ gennem proxyen og løser `unsupported_country_region_territory`
- **Forbindelsestest via proxy** â Forbindelsestest bruger den konfigurerede proxy (ikke mere direkte omgĂĽelse)
- **SOCKS5-understøttelse** â Fuld SOCKS5-proxy-understøttelse til udgĂĽende routing
- **TLS Fingerprint Spoofing** â Browserlignende TLS-fingeraftryk via `wreq-js` for at omgĂĽ botdetektion
đ 4. "Jeg vil bruge AI til kodning, men jeg har ingen penge"
Ikke alle kan betale $20-200/mĂĽned for AI-abonnementer. Studerende, udviklere fra vĂŚkstlande, hobbyfolk og freelancere har brug for adgang til kvalitetsmodeller uden omkostninger.
**Südan løser OmniRoute det:**
- **Free Tier Providers Indbygget** â Indbygget support for 100 % gratis udbydere: iFlow (8 ubegrĂŚnsede modeller), Qwen (3 ubegrĂŚnsede modeller), Kiro (Claude gratis), Gemini CLI (180K/mĂĽned gratis)
- **Ollama Cloud** â Cloud-hosted Ollama models at `api.ollama.com` with free "Light usage" tier; use `ollamacloud/` prefix
- **Kun gratis kombinationer** â KĂŚde `gc/gemini-3-flash â if/kimi-k2-thinking â qw/qwen3-coder-plus` = $0/mĂĽned uden nedetid
- **NVIDIA NIM gratis kreditter** â 1000 gratis kreditter integreret
- **Cost Optimized Strategy** â Routingstrategi, der automatisk vĂŚlger den billigste tilgĂŚngelige udbyder
đ 5. "Jeg skal beskytte min AI-gateway mod uautoriseret adgang"
NĂĽr en AI-gateway eksponeres for netvĂŚrket (LAN, VPS, Docker), kan enhver med adressen forbruge udviklerens tokens/kvote. Uden beskyttelse er API'er sĂĽrbare over for misbrug, hurtig injektion og misbrug.
**Südan løser OmniRoute det:**
- **API Key Management** â Generering, rotation og scoping pr. udbyder med en dedikeret `/dashboard/api-manager` side
- **Tilladelser pĂĽ modelniveau** â BegrĂŚns API-nøgler til specifikke modeller (`openai/*`, jokertegnmønstre) med Tillad alt/BegrĂŚns-skift
- **API Endpoint Protection** â KrĂŚv en nøgle til `/v1/models` og bloker specifikke udbydere fra fortegnelsen
- **Auth Guard + CSRF Protection** â Alle dashboard-ruter beskyttet med `withAuth` middleware + CSRF-tokens
- **Rate Limiter** â Per-IP hastighedsbegrĂŚnsning med konfigurerbare vinduer
- **IP-filtrering** â Tilladelsesliste/blokeringsliste til adgangskontrol
- **Prompt Injection Guard** â Sanering mod ondsindede promptmønstre
- **AES-256-GCM-kryptering** â Legitimationsoplysninger krypteret i hvile
đ 6. "Min udbyder gik ned, og jeg mistede mit kodningsflow"
AI-udbydere kan blive ustabile, returnere 5xx-fejl eller ramme midlertidige hastighedsgrÌnser. Hvis en udvikler afhÌnger af en enkelt udbyder, bliver de afbrudt. Uden strømafbrydere kan gentagne genforsøg crashe programmet.
**Südan løser OmniRoute det:**
- **Circuit Breaker pr. udbyder** â Automatisk ĂĽbning/lukning med konfigurerbare tĂŚrskler og nedkøling (lukket/ĂĽbent/halvt ĂĽbent)
| đŻ **Endpoint-Aware Models** | Custom models declare supported endpoints + API format |
- **Eksponentiel backoff** â Progressive forsinkelser af genforsøg
- **Anti-tordenbesĂŚtning** â Mutex + semaforbeskyttelse mod samtidige genforsøgsstorme
- **Combo Fallback Chains** â Hvis den primĂŚre udbyder fejler, falder den automatisk gennem kĂŚden uden indgriben
- **Combo Circuit Breaker** - Deaktiverer automatisk fejlende udbydere i en kombinationskĂŚde
| đŻ **Endpoint-Aware Models** | Custom models declare supported endpoints + API format |
- **Health Dashboard** â OppetidsovervĂĽgning, strømafbrydertilstande, lockouts, cachestatistik, p50/p95/p99 latency
đ§ 7. "Konfiguration af hvert AI-vĂŚrktøj er trĂŚttende og gentagende"
Udviklere bruger Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code... Hvert vÌrktøj har brug for en anden konfiguration (API-endepunkt, nøgle, model). At omkonfigurere, nür du skifter udbyder eller model, er spild af tid.
**Südan løser OmniRoute det:**
- **CLI Tools Dashboard** â Dedikeret side med et-klik opsĂŚtning til Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline
- **GitHub Copilot Config Generator** â Genererer `chatLanguageModels.json` til VS-kode med bulk modelvalg
- **Onboarding Wizard** â Guidet 4-trins opsĂŚtning for førstegangsbrugere
- **Ăt slutpunkt, alle modeller** â Konfigurer `http://localhost:20128/v1` ĂŠn gang, fĂĽ adgang til 36+ udbydere
đ 8. "Administration af OAuth-tokens fra flere udbydere er et helvede"
Claude Code, Codex, Gemini CLI, Copilot - alle bruger OAuth 2.0 med udløbende tokens. Udviklere skal re-godkende konstant, hündtere `client_secret is missing`, `redirect_uri_mismatch` og fejl pü fjernservere. OAuth pü LAN/VPS er sÌrligt problematisk.
**Südan løser OmniRoute det:**
- **Automatisk tokenopdatering** â OAuth-tokens opdateres i baggrunden før udløb
- **OAuth 2.0 (PKCE) Indbygget** â Automatisk flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, iFlow
- **Multi-Account OAuth** â Flere konti pr. udbyder via JWT/ID-tokenudtrĂŚkning
- **OAuth LAN/Remote Fix** â Privat IP-detektion for `redirect_uri` + manuel URL-tilstand til fjernservere
- **OAuth Behind Nginx** â Bruger `window.location.origin` til omvendt proxykompatibilitet
- **Remote OAuth Guide** â Trin-for-trin guide til Google Cloud-legitimationsoplysninger pĂĽ VPS/Docker
đ 9. "Jeg ved ikke, hvor meget jeg bruger eller hvor"
Udviklere bruger flere betalte udbydere, men har ikke noget samlet syn pĂĽ udgifter. Hver udbyder har sit eget faktureringsdashboard, men der er ingen konsolideret visning. Uventede omkostninger kan hobe sig op.
**Südan løser OmniRoute det:**
- **Dashboard for omkostningsanalyse** â omkostningssporing pr. token og budgetstyring pr. udbyder
- **BudgetgrĂŚnser pr. niveau** â Udgiftsloft pr. niveau, der udløser automatisk fallback
- **Priskonfiguration pr. model** â Konfigurerbare priser pr. model- **Brugsstatistik pr. API-nøgle** â Antal anmodninger og sidst anvendte tidsstempel pr. nøgle
- **Analytics Dashboard** â Statiske kort, modelbrugsdiagram, udbydertabel med succesrater og latens
đ 10. "Jeg kan ikke diagnosticere fejl og problemer i AI-opkald"
Nür et opkald mislykkes, ved udvikleren ikke, om det var en takstgrÌnse, udløbet token, forkert format eller udbyderfejl. Fragmenterede logfiler pü tvÌrs af forskellige terminaler. Uden observerbarhed er fejlfinding trial-and-error.
**Südan løser OmniRoute det:**
- **Unified Logs Dashboard** â 4 faner: Request Logs, Proxy Logs, Audit Logs, Console
- **Console Log Viewer** â Realtidsterminal-fremviser med farvekodede niveauer, automatisk rulning, søg, filtrer
- **SQLite Proxy Logs** â Vedvarende logfiler, der overlever servergenstarter
- **OversĂŚtterlegeplads** â 4 fejlfindingstilstande: Legeplads (formatoversĂŚttelse), Chattester (rundtur), TestbĂŚnk (batch), Live Monitor (realtid)
- **Request Telemetri** â p50/p95/p99 latency + X-Request-Id-sporing
- **Filbaseret logning med rotation** â Konsolinterceptor fanger alt til JSON-log med størrelsesbaseret rotation
đď¸ 11. "Deployering og vedligeholdelse af gatewayen er kompleks"
Installation, konfiguration og vedligeholdelse af en AI-proxy pü tvÌrs af forskellige miljøer (lokalt, VPS, Docker, cloud) er arbejdskrÌvende. Problemer som hürdkodede stier, `EACCES` pü mapper, portkonflikter og cross-platform builds tilføjer friktion.
**Südan løser OmniRoute det:**
- **npm global installation** â `npm install -g omniroute && omniroute` â udført
- **Docker Multi-Platform** â AMD64 + ARM64 native (Apple Silicon, AWS Graviton, Raspberry Pi)
- **Docker Compose Profiles** â `base` (ingen CLI-vĂŚrktøjer) og `cli` (med Claude Code, Codex, OpenClaw)
- **Electron Desktop App** â Indbygget app til Windows/macOS/Linux med systembakke, autostart, offlinetilstand
- **Split-Port Mode** â API og Dashboard pĂĽ separate porte til avancerede scenarier (omvendt proxy, containernetvĂŚrk)
- **Cloud Sync** â Konfigurer synkronisering pĂĽ tvĂŚrs af enheder via Cloudflare Workers
- **DB Backups** â Automatisk backup, gendannelse, eksport og import af alle indstillinger
đ 12. "GrĂŚnsefladen er kun engelsk, og mit team taler ikke engelsk"
Hold i ikke-engelsktalende lande, isÌr i Latinamerika, Asien og Europa, kÌmper med grÌnseflader, der kun er pü engelsk. Sprogbarrierer reducerer adoption og øger konfigurationsfejl.
**Südan løser OmniRoute det:**
- **Dashboard i18n â 30 sprog** â Alle 500+ taster oversat, inklusive arabisk, bulgarsk, dansk, tysk, spansk, finsk, fransk, hebraisk, hindi, ungarsk, indonesisk, italiensk, japansk, koreansk, malaysisk, hollandsk, norsk, polsk, portugisisk (PT/BR), rumĂŚnsk, russisk, ukrainsk, kinesisk, ukrainsk, kinesisk, kinesisk, ukrainsk, kinesisk, ukrainsk, kinesisk, ukrainsk, svensk, Vietnam, Vietnam
- **RTL-understøttelse** â Højre-til-venstre-understøttelse for arabisk og hebraisk
- **Multi-Language READMEs** â 30 komplette dokumentationsoversĂŚttelser
- **SprogvĂŚlger** â Globusikon i overskriften til skift i realtid
đ 13. "Jeg har brug for mere end chat â jeg har brug for indlejringer, billeder, lyd"
AI er ikke kun fuldførelse af chat. Udviklere skal generere billeder, transskribere lyd, oprette indlejringer til RAG, omrangere dokumenter og moderere indhold. Hver API har et andet slutpunkt og format.
**Südan løser OmniRoute det:**
- **Indlejringer** â `/v1/embeddings` med 6 udbydere og 9+ modeller
- **Billedgenerering** â `/v1/images/generations` med 10 udbydere og 20+ modeller (OpenAI, xAI, Together, Fireworks, Nebius, Hyperbolic, NanoBanana, Antigravity, SD WebUI, ComfyUI)
- **Tekst-til-video** â `/v1/videos/generations` â ComfyUI (AnimateDiff, SVD) og SD WebUI
- **Tekst-til-musik** â `/v1/music/generations` â ComfyUI (Stable Audio Open, MusicGen)
- **Lydtransskription** â `/v1/audio/transcriptions` â Whisper + Nvidia NIM, HuggingFace, Qwen3
- **Tekst-til-tale** â `/v1/audio/speech` â ElevenLabs, Nvidia NIM, HuggingFace, Coqui, Tortoise, Qwen3, Inworld, Cartesia, PlayHT, + eksisterende udbydere
- **Moderationer** â `/v1/moderations` â Indholdssikkerhedstjek
- **Omrangering** â `/v1/rerank` â Omrangering af dokumentrelevans
- **Responses API** â Fuld `/v1/responses`-understøttelse af Codex
đ§Ş 14. "Jeg har ingen mĂĽde at teste og sammenligne kvalitet pĂĽ tvĂŚrs af modeller"
Udviklere vil gerne vide, hvilken model der er bedst til deres brug - kode, oversÌttelse, rÌsonnement - men manuel sammenligning er langsom. Der findes ingen integrerede evalueringsvÌrktøjer.
**Südan løser OmniRoute det:**
- **LLM-evalueringer** â Gyldne sĂŚt-test med 10 forudindlĂŚste cases, der dĂŚkker hilsner, matematik, geografi, kodegenerering, JSON-overholdelse, oversĂŚttelse, markdown, sikkerhedsafvisning
- **4 matchstrategier** â `exact`, `contains`, `regex`, `custom` (JS-funktion)
- **Translator Playground Test Bench** â Batchtest med flere input og forventede output, sammenligning pĂĽ tvĂŚrs af udbydere
- **Chattester** â Fuld rundtur med visuel responsgengivelse
- **Live Monitor** â Realtidsstream af alle anmodninger, der flyder gennem proxyen
đ 15. "Jeg har brug for at skalere uden at miste ydeevne"
Efterhünden som forespørgselsvolumen vokser, genererer de samme spørgsmül duplikerede omkostninger uden cache. Uden idempotens, dublerede anmodninger om affaldsbehandling. TakstgrÌnser pr. udbyder skal overholdes.
**Südan løser OmniRoute det:**
- **Semantisk cache** â To-lags cache (signatur + semantisk) reducerer omkostninger og latens
- **Request Idempotency** â 5s deduplikeringsvindue for identiske anmodninger
- **Detektion af hastighedsgrĂŚnse** â RPM pr. udbyder, min. gap og maks. samtidig sporing
- **Redigerbare hastighedsgrĂŚnser** â Konfigurerbare standardindstillinger i Indstillinger â Modstandsdygtighed med vedholdenhed
- **API Key Validation Cache** â 3-lags cache til produktionsydeevne
- **Health Dashboard med telemetri** â p50/p95/p99 latency, cachestatistik, oppetid
đ¤ 16. "Jeg vil kontrollere modeladfĂŚrd globalt"
Udviklere, der ønsker alle svar pü et bestemt sprog, med en bestemt tone, eller ønsker at begrÌnse rÌsonnementstokens. Det er upraktisk at konfigurere dette i hvert vÌrktøj/anmodning.
**Südan løser OmniRoute det:**
- **System Prompt Injection** â Global prompt anvendt pĂĽ alle anmodninger
- **Thinking Budget Validation** â Reasoning token allocation control pr. anmodning (passthrough, auto, custom, adaptive)
- **6 Routing Strategies** â Globale strategier, der bestemmer, hvordan anmodninger distribueres
- **Wildcard-router** â `provider/*`-mønstre ruter dynamisk til enhver udbyder
- **Kombo Aktiver/Deaktiver Til/fra** â Skift kombinationer direkte fra dashboardet
- **Tilskiftning af udbyder** â Aktiver/deaktiver alle forbindelser for en udbyder med et enkelt klik
- **Blokerede udbydere** â Ekskluder specifikke udbydere fra `/v1/models`-fortegnelsen
𧰠17. "Jeg har brug for MCP-vÌrktøjer som førsteklasses produktegenskaber"
Mange AI-gateways afslører kun MCP som en skjult implementeringsdetalje. Teams har brug for et synligt, overskueligt operationslag.
**Südan løser OmniRoute det:**
- MCP vises pĂĽ fanen dashboardnavigation og endepunktsprotokol
- Dedikeret MCP-administrationsside med proces, vÌrktøjer, omfang og revision
- Indbygget hurtigstart til `omniroute --mcp` og klient onboarding
đ§ 18. "Jeg har brug for A2A-orkestrering med synkronisering + streamopgavestier"
Agentarbejdsgange krÌver büde direkte svar og langvarig streamet udførelse med livscykluskontrol.
**Südan løser OmniRoute det:**
- A2A JSON-RPC slutpunkt (`POST /a2a`) med `message/send` og `message/stream`
- SSE-streaming med udbredelse af terminaltilstand
- Task lifecycle API'er til `tasks/get` og `tasks/cancel`
đ°ď¸ 19. "Jeg har brug for ĂŚgte MCP-processundhed, ikke gĂŚttet status"
Operationelle teams skal vide, om MCP faktisk er i live, ikke kun om en API er tilgĂŚngelig.
**Südan løser OmniRoute det:**
- Runtime-hjerteslagsfil med PID, tidsstempler, transport, vÌrktøjstÌlling og omfangstilstand
- MCP status API, der kombinerer hjerteslag + seneste aktivitet
- UI-statuskort til proces/oppetid/hjerteslagsfriskhed
đ 20. "Jeg har brug for revisionsbar MCP-vĂŚrktøjsudførelse"
Nür vÌrktøjer muterer konfiguration eller udløser ops-handlinger, har teams brug for retsmedicinsk sporbarhed.
**Südan løser OmniRoute det:**
- SQLite-støttet revisionslogning for MCP-vÌrktøjsopkald
- Filtrerer efter vÌrktøj, succes/fiasko, API-nøgle og paginering
- Dashboard revisionstabel + statistik slutpunkter til automatisering
đ 21. "Jeg har brug for scoped MCP-tilladelser pr. integration"
Forskellige klienter bør have mindst privilegeret adgang til vÌrktøjskategorier.
**Südan løser OmniRoute det:**
- 9 granulÌre MCP-skoper til kontrolleret vÌrktøjsadgang
- HĂĽndhĂŚvelse af omfang og synlighed i MCP management UI
- Sikker standardstilling for operationelt vÌrktøj
âď¸ 22. "Jeg har brug for operationelle kontroller uden omfordeling"
Teams har brug for hurtige runtime-ĂŚndringer under hĂŚndelser eller omkostningsbegivenheder.
**Südan løser OmniRoute det:**
- Skift kombinationsaktivering direkte fra MCP-dashboard
- Anvend modstandsdygtighedsprofiler fra foruddefinerede politikpakker
- Nulstil strømafbrydertilstand fra det samme betjeningspanel
đ 23. "Jeg har brug for live A2A opgave livscyklus synlighed og annullering"
Uden livscyklussynlighed bliver opgavehĂŚndelser svĂŚre at triage.
**Südan løser OmniRoute det:**
- Opgaveliste/filtrering efter tilstand/fĂŚrdighed med paginering
- Drill-down pĂĽ opgavemetadata, hĂŚndelser og artefakter
- Slutpunkt for annullering af opgave og UI-handling med bekrĂŚftelse
đ 24. "Jeg har brug for aktive stream-metrics for A2A-indlĂŚsning"
Streaming-arbejdsgange krĂŚver operationel indsigt i samtidighed og live-forbindelser.
**Südan løser OmniRoute det:**
- Aktive stream-tĂŚllere integreret i A2A-status
- Tidsstempel for sidste opgave og tĂŚller pr. stat
- A2A dashboard-kort til operationsovervĂĽgning i realtid
𪪠25. "Jeg har brug for standardagentopdagelse til klienter"
Eksterne klienter og orkestratorer har brug for maskinlĂŚsbare metadata til onboarding.
**Südan løser OmniRoute det:**
- Agentkort afsløret pü `/.well-known/agent.json`
- Evner og fĂŚrdigheder vist i ledelsens brugergrĂŚnseflade
- A2A status API inkluderer opdagelsesmetadata til automatisering
đ§ 26. "Jeg har brug for protokolsynlighed i produktets UX"
Hvis brugere ikke kan opdage protokoloverflader, falder kvaliteten af adoption og support.
**Südan løser OmniRoute det:**
- Sidebar-indgange til MCP og A2A
- Endpoint-siden Protokoller-fane med hurtig start og status
- Links fra oversigt til dedikerede ledelsesdashboards
đ§Ş 27. "Jeg har brug for end-to-end protokolvalidering med rigtige klienter"
Mock-tests er ikke nok til at validere protokolkompatibilitet før frigivelse.
**Südan løser OmniRoute det:**
- E2E-pakke, der starter app og bruger ĂŚgte MCP SDK-klienttransport
- A2A klient tester for opdagelse, send, stream, hent og annuller flows
- Krydstjek pĂĽstande mod MCP-revision og A2A-opgaver API'er
đĄ 28. "Jeg har brug for samlet observerbarhed pĂĽ tvĂŚrs af alle grĂŚnseflader"
Opdeling af observerbarhed efter protokol skaber blinde pletter og lĂŚngere MTTR.
**Südan løser OmniRoute det:**
- Samlede dashboards/logfiler/analyse i ĂŠt produkt
- Health + audit + request telemetri pĂĽ tvĂŚrs af OpenAI, MCP og A2A lag
- Operationelle API'er til status og automatisering
đź 29. "Jeg har brug for ĂŠn køretid til proxy + vĂŚrktøjer + agentorkestrering"
At køre mange separate tjenester øger driftsomkostninger og fejltilstande.
**Südan løser OmniRoute det:**- OpenAI-kompatibel proxy, MCP-server og A2A-server i Ên stak
- Delt godkendelse, robusthed, datalager og observerbarhed
- Ensartet politikmodel pĂĽ tvĂŚrs af alle interaktionsflader
đ 30. "Jeg har brug for at sende agentiske arbejdsgange uden limkodesprawl"
Hold mister hastighed, nĂĽr de sammensĂŚtter flere ad-hoc-tjenester og scripts.
**Südan løser OmniRoute det:**
- Ensartet slutpunktsstrategi for kunder og agenter
- Indbygget protokolstyring UI'er og røgvalideringsstier
- Produktionsklare fundamenter (sikkerhed, logning, robusthed, backup)
### Eksempler pĂĽ Playbooks
**Playbook A: Maksimer betalt abonnement + billig backup**
```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: Gratis kodningsstak**
```txt
Combo: "free-forever"
1. gc/gemini-3-flash
2. if/kimi-k2-thinking
3. qw/qwen3-coder-plus
Monthly cost: $0
Outcome: stable free coding workflow
```
**Playbook C: 24/7 altid aktiv reservekĂŚde**
```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: Agent ops med MCP + A2A**
```txt
1) Start MCP transport (`omniroute --mcp`) for tool-driven operations
2) Run A2A tasks via `message/send` and `message/stream`
3) Observe via /dashboard/mcp and /dashboard/a2a
4) Control incidents with resilience profile + task cancellation
```
---
## ⥠Hurtig start
### 1) Installer og kør
```bash
npm install -g omniroute
omniroute
```
Dashboard ĂĽbner ved `http://localhost:20128`, og API-base-URL er `http://localhost:20128/v1`.
| Kommando | Beskrivelse |
| ----------------------- | ----------------------------------------------------------- |
| `omniroute` | Start server (`PORT=20128`, API og dashboard pĂĽ samme port) |
| `omniroute --port 3000` | Indstil kanonisk/API-port til 3000 |
| `omniroute --mcp` | Start MCP-server (stdio-transport) |
| `omniroute --no-open` | Ă
bn ikke browseren automatisk |
| `omniroute --help` | Vis hjĂŚlp |
Valgfri split-port-tilstand:
```bash
PORT=20128 DASHBOARD_PORT=20129 omniroute
# API: http://localhost:20128/v1
# Dashboard: http://localhost:20129
```
### 2) Tilslut udbydere og opret din API-nøgle
1. Ă
bn Dashboard â `Providers` og tilslut mindst ĂŠn udbyder (OAuth- eller API-nøgle).
2. Ă
bn Dashboard â `Endpoint` og opret en API-nøgle.
3. (Valgfrit) Ă
bn Dashboard â `Combos` og indstil din reservekĂŚde.
### 3) Peg dit kodningsvÌrktøj til OmniRoute
```txt
Base URL: http://localhost:20128/v1
API Key: [copy from Endpoint page]
Model: if/kimi-k2-thinking (or any provider/model prefix)
```
Fungerer med Claude Code, Codex CLI, Gemini CLI, Cursor, Cline, OpenClaw, OpenCode og OpenAI-kompatible SDK'er.
### 4) Aktiver og valider protokoller (v2.0)
**MCP (til vÌrktøjsdrevne operationer):**
```bash
omniroute --mcp
```
Tilslut derefter din MCP-klient over `stdio` og test vÌrktøjer som:
- `omniroute_get_health`
- `omniroute_list_combos`
**A2A (for agent-til-agent arbejdsgange):**
```bash
curl http://localhost:20128/.well-known/agent.json
```
```bash
curl -X POST http://localhost:20128/a2a \
-H 'content-type: application/json' \
-d '{"jsonrpc":"2.0","id":"quickstart","method":"message/send","params":{"skill":"quota-management","messages":[{"role":"user","content":"Give me a short quota summary."}]}}'
```
### 5) Valider alt ende-til-ende (anbefales)
```bash
npm run test:protocols:e2e
```
Denne suite validerer rigtige MCP- og A2A-klientstrømme mod en kørende app.
### Alternativ: Kør fra kilden
```bash
cp .env.example .env
npm install
PORT=20128 DASHBOARD_PORT=20129 NEXT_PUBLIC_BASE_URL=http://localhost:20129 npm run dev
```
---
## đł Docker
OmniRoute er tilgĂŚngelig som et offentligt Docker-billede pĂĽ [Docker Hub](https://hub.docker.com/r/diegosouzapw/omniroute).
**Hurtigt løb:**
```bash
docker run -d \
--name omniroute \
--restart unless-stopped \
-p 20128:20128 \
-v omniroute-data:/app/data \
diegosouzapw/omniroute:latest
```
**Med miljøfil:**
```bash
# Copy and edit .env first
cp .env.example .env
docker run -d \
--name omniroute \
--restart unless-stopped \
--env-file .env \
-p 20128:20128 \
-v omniroute-data:/app/data \
diegosouzapw/omniroute:latest
```
**Brug af 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
```
| Billede | Tag | Størrelse | Beskrivelse |
| ------------------------ | -------- | --------- | ------------------------- |
| `diegosouzapw/omniroute` | `latest` | ~250MB | Seneste stabile udgivelse |
| `diegosouzapw/omniroute` | `1.0.3` | ~250MB | NuvĂŚrende version |
---
## đĽď¸
Kør OmniRoute som en selvstÌndig desktop-app - ingen terminal, ingen browser, intet internet pükrÌvet for lokale modeller. Den elektronbaserede app inkluderer:
- đĽď¸ **Native Window** â Dedikeret appvindue med systembakkeintegration
- đ **Auto-Start** â Start OmniRoute ved systemlogin
- đ **Native notifikationer** â FĂĽ advarsler om kvoteopbrugt eller udbyderproblemer
- ⥠**One-Click Install** â NSIS (Windows), DMG (macOS), AppImage (Linux)
- đ **Offline-tilstand** â Fungerer fuldt ud offline med medfølgende server
### Hurtig start
```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)
```
### Systembakke
NĂĽr den er minimeret, lever OmniRoute i din procesbakke med hurtige handlinger:
- Ă
bn instrumentbrĂŚttet
- Skift serverport
- Afslut programmet
đ Fuld dokumentation: [`electron/README.md`](electron/README.md)
---
## đ° PrissĂŚtning pĂĽ et øjeblik
| Tier | Udbyder | Omkostninger | Kvote nulstil | Bedst til |
| ----------------- | ----------------- | --------------------------- | ------------------ | -------------------------- |
| **đł ABONNEMENT** | Claude Code (Pro) | 20 USD/md. | 5 timer + ugentlig | Allerede abonneret |
| | Codex (Plus/Pro) | $20-200/md. | 5 timer + ugentlig | OpenAI-brugere |
| | Gemini CLI | **GRATIS** | 180K/md + 1K/dag | Alle sammen! |
| | GitHub Copilot | $10-19/md. | MĂĽnedlig | GitHub-brugere |
| **đ API NĂGLE** | NVIDIA NIM | **GRATIS** (1000 kreditter) | Engangs | Gratis tier test |
| | DeepSeek | Betal pr. brug | Ingen | Bedste pris/kvalitet |
| | Groq | Gratis niveau + betalt | Sats begrĂŚnset | Ultrahurtig slutning |
| | xAI (Grok) | Betal pr. brug | Ingen | Grok modeller |
| | Mistral | Gratis niveau + betalt | Sats begrĂŚnset | EuropĂŚisk AI |
| | OpenRouter | Betal pr. brug | Ingen | 100+ modeller |
| **đ° BILLIG** | GLM-4.7 | 0,6 USD/1 mio. | Dagligt 10:00 | Budget backup |
| | MiniMax M2.1 | $0,2/1 mio. | 5-timers rullende | Billigste mulighed |
| | Kimi K2 | 9 USD/md. lejlighed | 10M tokens/md. | Forudsigelige omkostninger |
| **đ GRATIS** | iFlow | $0 | UbegrĂŚnset | 8 modeller gratis |
| | Qwen | $0 | UbegrĂŚnset | 3 modeller gratis |
| | Kiro | $0 | UbegrĂŚnset | Claude gratis |
**đĄ Pro-tip:** Start med Gemini CLI (180K gratis/mĂĽned) + iFlow (ubegrĂŚnset gratis) combo = $0 omkostninger!
---
## đĄ Nøglefunktioner
OmniRoute v2.0 er bygget som en operationel platform, ikke kun en relĂŚ-proxy.
### đ¤ Agent- og protokoloperationer (v2.0)| Funktion | Hvad det gør |
| ------------------------------------ | ---------------------------------------------------------------------------------- |
| đ§ **MCP-server (16 vĂŚrktøjer)** | IDE/agent-vĂŚrktøjer kontrollerer routing, sundhed, kombinationer, grĂŚnser og operationer | IDE/agent tools via 3 transports: stdio, SSE (`/api/mcp/sse`), Streamable HTTP (`/api/mcp/stream`)
| đ¤ **A2A-server (JSON-RPC + SSE)** | Agent-til-agent opgaveudførelse med synkronisering og streaming flows |
| đ§ **Consolidated Endpoints Page** | Dedikerede administrationssider (`/dashboard/mcp`, `/dashboard/a2a`) |
| đď¸ **Service Enable/Disable Toggles** | ON/OFF switches for MCP and A2A with settings persistence (default: OFF) |
| đ°ď¸ **MCP Runtime Heartbeat** | Reel processtatus (pid, oppetid, hjerteslagsalder, transport, omfangstilstand) |
| đ **MCP Audit Trail** | Filtrerbare revisionslogfiler med succes/fejl og nøgletilskrivning |
| đ **MCP Scope Enforcement** | 9 granulĂŚre omfangstilladelser til kontrolleret vĂŚrktøjsadgang |
| đĄ **A2A Task Lifecycle Management** | Liste/filtrere opgaver, inspicere hĂŚndelser/artefakter, annullere kørende opgaver |
| đ **Agent Card Discovery** | `/.well-known/agent.json` til klientens automatiske opdagelse |
| đ§Ş **Protokol E2E testsele** | Ăgte MCP SDK + A2A klientstrømme i `test:protocols:e2e` |
| âď¸ **Driftskontrol** | Switch combo, pĂĽfør elasticitetsprofiler, nulstil afbrydere fra ĂŠn kontrolflade |
### đ§ Routing og intelligens
| Funktion | Hvad det gør |
| ----------------------------------- | ------------------------------------------------------------------------------- |
| đŻ **Smart 4-lags fallback** | Auto-rute: Abonnement â API-nøgle â Billig â Gratis |
| đ **Kvotesporing i realtid** | Live token count + nulstil nedtĂŚlling pr. udbyder |
| đ **FormatoversĂŚttelse** | OpenAI â Claude â Gemini â Svar med skemasikre konverteringer |
| đĽ **Multi-Account Support** | Flere konti pr. udbyder med intelligent valg |
| đ **Automatisk token-opdatering** | OAuth-tokens opdateres automatisk med genforsøg |
| đ¨ **Tilpassede kombinationer** | 6 balanceringsstrategier + fallback kĂŚdekontrol |
| đ **Wildcard-router** | `provider/*` dynamisk routing |
| đ§ **TĂŚnker pĂĽ budgetkontrol** | GrĂŚnser for gennemstrømning, automatisk, brugerdefineret og adaptiv rĂŚsonnement |
| đ **Modelaliaser** | Indbygget + brugerdefineret model aliasing og migration sikkerhed |
| ⥠**Baggrundsforringelse** | Send baggrundsopgaver med lav prioritet til billigere modeller |
| đŹ **System Prompt Injection** | Globale adfĂŚrdskontroller anvendes konsekvent |
| đ **Responses API-kompatibilitet** | Fuld `/v1/responses`-understøttelse af Codex og avancerede agentarbejdsgange |
### đľ Multi-Modal API'er
| Funktion | Hvad det gør || -------------------------- | -------------------------------------------------------------------- |
| đźď¸ **Billedgenerering** | `/v1/images/generations` med cloud og lokale backends |
| đ **Indlejringer** | `/v1/embeddings` til søgning og RAG-rørledninger |
| đ¤ **Lydtransskription** | `/v1/audio/transcriptions` â 7 providers (Deepgram Nova 3, AssemblyAI, Groq Whisper, HuggingFace, ElevenLabs, OpenAI, Azure), auto-language detection, MP4/MP3/WAV support |
| đ **Tekst-til-tale** | `/v1/audio/speech` â 10 providers (ElevenLabs, OpenAI, Deepgram, Cartesia, PlayHT, HuggingFace, Nvidia NIM, Inworld, Coqui, Tortoise) |
| đŹ **Videogenerering** | `/v1/videos/generations` (ComfyUI + SD WebUI-arbejdsgange) |
| đľ **Music Generation** | `/v1/music/generations` (ComfyUI-arbejdsgange) |
| đĄď¸ **Moderationer** | `/v1/moderations` sikkerhedstjek |
| đ **Omrangering** | `/v1/rerank` for relevansscoring |
### đĄď¸ Resiliens, sikkerhed og styring
| Funktion | Hvad det gør |
| ----------------------------------- | -------------------------------------------------------------------------------------- |
| đ **Maksimalafbrydere** | Trip/recover pĂĽ udbyderniveau med tĂŚrskelkontrol |
| đĄď¸ **Anti-tordenbesĂŚtning** | Mutex + semaforbeskyttelse ved genforsøg/rate hĂŚndelser |
| đ§ **Semantisk + signaturcache** | Reduktion af omkostninger/latens med to cachelag |
| ⥠**Anmod om idempotens** | Dobbelt beskyttelsesvindue |
| đ **TLS Fingerprint Spoofing** | Bedre kompatibilitet med anti-bot-filtrerede udbydere |
| đ **CLI Fingerprint Matching** | Matches native CLI request signatures â **reduces ban risk while preserving proxy IP** |
| đ **IP-filtrering** | Tilladelsesliste/blokeringslistekontrol for udsatte implementeringer |
| đ **Redigerbare satsgrĂŚnser** | Konfigurerbare grĂŚnser pĂĽ globalt niveau/udbyderniveau med persistens |
| đ **API Key Management + Scoping** | Sikker nøgleudstedelse/rotation og model-/leverandørkontrol |
| đĄď¸ **Beskyttet `/models`** | Valgfri godkendelse og udbyderskjul til modelkatalog |
### đ Observerbarhed og analyse
| Funktion | Hvad det gør |
| ---------------------------------- | ------------------------------------------------------ |
| đ **Forespørgsel + Proxylogning** | Fuld anmodning/svar og proxy-logning |
| đ **Unified Logs Dashboard** | Anmodning, proxy, revision og konsolvisning pĂĽ ĂŠn side |
| đ **Anmod om telemetri** | p50/p95/p99 latens og anmodningssporing |
| đĽ **Sundhedskontrolpanel** | Oppetid, breaker-tilstande, lockouts, cache-statistik |
| đ° **Omkostningssporing** | Budgetkontrol og prisfastsĂŚttelse pr. model |
| đ **Analytiske visualiseringer** | Model-/udbyderbrugsindsigt og trendvisninger |
| đ§Ş **Evalueringsramme** | Gyldne sĂŚt-test med konfigurerbare matchstrategier |
### âď¸ Implementering og platform
| Funktion | Hvad det gør |
| -------------------------------------- | -------------------------------------------------------------- | --- | ----------------- | ------------------------------------------------ |
| đ **Deploy hvor som helst** | Localhost, VPS, Docker, Cloud-miljøer | | đž **Cloud Sync** | Synkronisering af konfiguration via cloud worker |
| đ **Sikkerhedskopiering/gendannelse** | Eksport/import og gendannelsesstrømme |
| đ§ **Onboarding Wizard** | Første kørsel guidet opsĂŚtning |
| đ§ **CLI Tools Dashboard** | Et-klik opsĂŚtning til populĂŚre kodningsvĂŚrktøjer |
| đ **i18n (30 sprog)** | Fuldt dashboard + understøttelse af docs-sprog med RTL-dĂŚkning |
| đ§š **Clear All Models** | One-click model list clearing in provider details |
| đ **Issue Templates** | Standardized GitHub templates for bugs and features |
| đ **Tilpasset datakatalog** | `DATA_DIR` tilsidesĂŚttelse af lagerplacering |
### Feature Deep Dive
#### Smart fallback med praktisk omkostningskontrol
```txt
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
```
NĂĽr kvote, sats eller sundhed svigter, flytter OmniRoute automatisk til den nĂŚste kandidat uden manuel skift.
#### Protokolstyring, der er synlig og funktionsdygtig
- MCP + A2A kan findes i brugergrĂŚnsefladen og dokumenter (ikke skjult)
- Protokolstatus API'er afslører live driftsdata (`/api/mcp/*`, `/api/a2a/*`)
- Dashboards inkluderer handlinger for dag-2 operationer (kombinationsskift, nulstilling af breaker, annullering af opgave)
#### OversĂŚtter + valideringsarbejdsgang
OversĂŚtteromrĂĽdet omfatter:
- **Legeplads**: anmod om transformationstjek
- **Chattester**: fuld anmodning/svar tur/retur
- **TestbĂŚnk**: flere sager pĂĽ ĂŠn gang
- **Live Monitor**: trafikvisning i realtid
Plus protokolvalidering med rigtige klienter via `npm run test:protocols:e2e`.
> đ **[MCP Server README](open-sse/mcp-server/README.md)** â VĂŚrktøjsreference, IDE-konfigurationer og klienteksempler
>
> đ **[A2A Server README](src/lib/a2a/README.md)** â FĂŚrdigheder, JSON-RPC-metoder, streaming og opgavelivscyklus
## đ§Ş Evalueringer (evalueringer)
OmniRoute inkluderer en indbygget evalueringsramme til at teste LLM-svarkvaliteten mod et gyldent sĂŚt. FĂĽ adgang til det via **Analytics â Evals** i dashboardet.
### Indbygget gyldent sĂŚt
Det forudindlĂŚste "OmniRoute Golden Set" indeholder testcases til:
- Hilsen, matematik, geografi, kodegenerering
- JSON format compliance, oversĂŚttelse, markdown generation
- Sikkerhedsafvisning (skadeligt indhold), optĂŚlling, boolsk logik
### Evalueringsstrategier
| Strategi | Beskrivelse | Eksempel |
| ---------- | ----------------------------------------------------------------------- | -------------------------------- |
| `exact` | Output skal matche nøjagtigt | `"4"` |
| `contains` | Output skal indeholde understreng (uafhĂŚngig af store og smĂĽ bogstaver) | `"Paris"` |
| `regex` | Output skal matche regex-mønster | `"1.*2.*3"` |
| `custom` | Brugerdefineret JS-funktion returnerer sand/falsk | `(output) => output.length > 10` |
---
## đ OpsĂŚtningsvejledning
### ProtokolopsĂŚtning (MCP + A2A)
đ§Š MCP-opsĂŚtning (modelkontekstprotokol)
Start MCP-transport i stdio-tilstand:
```bash
omniroute --mcp
```
Anbefalet valideringsflow:
1. Tilslut din MCP-klient via stdio.
2. Kør `omniroute_get_health`.
3. Kør `omniroute_list_combos`.
4. Ă
bn `/dashboard/mcp` for at bekrĂŚfte hjerteslag, aktivitet og audit.
Nyttige API'er til automatisering:
- `GET /api/mcp/status`
- `GET /api/mcp/tools`
- `GET /api/mcp/audit`
- `GET /api/mcp/audit/stats`
đ¤ A2A-opsĂŚtning (Agent2Agent)
Opdag agenten:
```bash
curl http://localhost:20128/.well-known/agent.json
```
Send en opgave:
```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."}]}}'
```
Administrer livscyklus:
- `GET /api/a2a/status`
- `GET /api/a2a/tasks`
- `GET /api/a2a/tasks/:id`
- `POST /api/a2a/tasks/:id/cancel`
Operationel UI:
- `/dashboard/a2a` til observerbarhed af opgave/tilstand/strøm og røghandlinger
đ§Ş End-to-end protokolvalidering
Valider begge protokoller med rigtige klienter:
```bash
npm run test:protocols:e2e
```
Dette verificerer:
- MCP SDK-klient forbinde/liste/opkald
- A2A opdagelse/send/stream/hent/annuller
- Krydstjek data i MCP-audit og A2A opgavestyring API'er
đł Abonnementsudbydere
### Claude Code (Pro/Max)
```bash
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
```
**Prof tip:** Brug Opus til komplekse opgaver, Sonnet for hurtighed. OmniRoute sporer kvote pr. model!
### OpenAI Codex (Plus/Pro)
```bash
Dashboard â Providers â Connect Codex
â OAuth login (port 1455)
â 5-hour + weekly reset
Models:
cx/gpt-5.2-codex
cx/gpt-5.1-codex-max
```
### Gemini CLI (GRATIS 180K/mĂĽned!)
```bash
Dashboard â Providers â Connect Gemini CLI
â Google OAuth
â 180K completions/month + 1K/day
Models:
gc/gemini-3-flash-preview
gc/gemini-2.5-pro
```
**Bedste vÌrdi:** KÌmpe gratis niveau! Brug dette før betalte niveauer.
### GitHub Copilot
```bash
Dashboard â Providers â Connect GitHub
â OAuth via GitHub
â Monthly reset (1st of month)
Models:
gh/gpt-5
gh/claude-4.5-sonnet
gh/gemini-3-pro
```
đ API nøgleudbydere
### NVIDIA NIM (GRATIS 1000 kreditter!)
1. Tilmeld dig: [build.nvidia.com](https://build.nvidia.com)
2. Fü gratis API-nøgle (1000 slutningskreditter inkluderet)
3. Dashboard â Tilføj udbyder â NVIDIA NIM:
- API-nøgle: `nvapi-your-key`
**Modeller:** `nvidia/llama-3.3-70b-instruct`, `nvidia/mistral-7b-instruct` og 50+ flere
**Prof tip:** OpenAI-kompatibel API â fungerer problemfrit med OmniRoutes formatoversĂŚttelse!
### DeepSeek
1. Tilmeld dig: [platform.deepseek.com](https://platform.deepseek.com)
2. Hent API-nøgle
3. Dashboard â Tilføj udbyder â DeepSeek
**Modeller:** `deepseek/deepseek-chat`, `deepseek/deepseek-coder`
### Groq (gratis niveau tilgĂŚngelig!)
1. Tilmeld dig: [console.groq.com](https://console.groq.com)
2. Fü API-nøgle (gratis niveau inkluderet)
3. Dashboard â Tilføj udbyder â Groq
**Modeller:** `groq/llama-3.3-70b`, `groq/mixtral-8x7b`
**Prof tip:** Ultrahurtig slutning â bedst til realtidskodning!
### OpenRouter (100+ modeller)
1. Tilmeld dig: [openrouter.ai](https://openrouter.ai)
2. Hent API-nøgle
3. Dashboard â Tilføj udbyder â OpenRouter
**Modeller:** Fü adgang til mere end 100 modeller fra alle større udbydere via en enkelt API-nøgle.
đ° Billige udbydere (backup)
### GLM-4.7 (Daglig nulstilling, $0,6/1 mio.)
1. Tilmeld dig: [Zhipu AI](https://open.bigmodel.cn/)
2. Hent API-nøgle fra Coding Plan
3. Dashboard â Tilføj API-nøgle:
- Udbyder: `glm`
- API-nøgle: `your-key`
**Brug:** `glm/glm-4.7`
**Pro-tip:** Coding Plan tilbyder 3Ă kvote til 1/7 pris! Nulstil dagligt 10:00.
### MiniMax M2.1 (5 timers nulstilling, $0,20/1 mio.)
1. Tilmeld dig: [MiniMax](https://www.minimax.io/)
2. Hent API-nøgle
3. Dashboard â Tilføj API-nøgle
**Brug:** `minimax/MiniMax-M2.1`
**Prof tip:** Billigste mulighed for lang sammenhĂŚng (1M tokens)!
### Kimi K2 ($9/mĂĽned lejlighed)
1. Abonner: [Moonshot AI](https://platform.moonshot.ai/)
2. Hent API-nøgle
3. Dashboard â Tilføj API-nøgle
**Brug:** `kimi/kimi-latest`
**Prof tip:** Fast $9/mĂĽned for 10M tokens = $0,90/1M effektive omkostninger!
đ GRATIS udbydere (nødbackup)
### iFlow (8 GRATIS modeller)```bash
Dashboard â Connect iFlow
â iFlow OAuth login
â Unlimited usage
Models:
if/kimi-k2-thinking
if/qwen3-coder-plus
if/glm-4.7
if/minimax-m2
if/deepseek-r1
````
### Qwen (3 GRATIS modeller)
```bash
Dashboard â Connect Qwen
â Device code authorization
â Unlimited usage
Models:
qw/qwen3-coder-plus
qw/qwen3-coder-flash
````
### Kiro (Claude GRATIS)
```bash
Dashboard â Connect Kiro
â AWS Builder ID or Google/GitHub
â Unlimited usage
Models:
kr/claude-sonnet-4.5
kr/claude-haiku-4.5
```
đ¨ Opret kombinationer
### Eksempel 1: Maksimer abonnement â Billig backup
```
Dashboard â Combos â Create New
Name: premium-coding
Models:
1. cc/claude-opus-4-6 (Subscription primary)
2. glm/glm-4.7 (Cheap backup, $0.6/1M)
3. minimax/MiniMax-M2.1 (Cheapest fallback, $0.20/1M)
Use in CLI: premium-coding
```
### Eksempel 2: Kun gratis (nul omkostninger)
```
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-integration
### Markør IDE
```
Settings â Models â Advanced:
OpenAI API Base URL: http://localhost:20128/v1
OpenAI API Key: [from OmniRoute dashboard]
Model: cc/claude-opus-4-6
```
### Claude Code
Brug siden **CLI Tools** i dashboardet til konfiguration med et enkelt klik, eller rediger `~/.claude/settings.json` manuelt.
### Codex CLI
```bash
export OPENAI_BASE_URL="http://localhost:20128"
export OPENAI_API_KEY="your-omniroute-api-key"
codex "your prompt"
```
### OpenClaw
**Mulighed 1 â Dashboard (anbefalet):**
```
Dashboard â CLI Tools â OpenClaw â Select Model â Apply
```
**Mulighed 2 â Manuel:** Rediger `~/.openclaw/openclaw.json`:
```json
{
"models": {
"providers": {
"omniroute": {
"baseUrl": "http://127.0.0.1:20128/v1",
"apiKey": "sk_omniroute",
"api": "openai-completions"
}
}
}
}
```
> **BemÌrk:** OpenClaw fungerer kun med lokale OmniRoute. Brug `127.0.0.1` i stedet for `localhost` for at undgü problemer med IPv6-opløsning.
### Cline / FortsĂŚt / RooCode
```
Settings â API Configuration:
Provider: OpenAI Compatible
Base URL: http://localhost:20128/v1
API Key: [from OmniRoute dashboard]
Model: if/kimi-k2-thinking
```
### OpenCode
**Trin 1:** Tilføj OmniRoute som en tilpasset udbyder:
```bash
opencode
/connect
# Select "Other" â Enter ID: "omniroute" â Enter your OmniRoute API key
```
**Trin 2:** Opret/rediger `opencode.json` i dit projektrod:
```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)" }
}
}
}
}
```
**Trin 3:** VĂŚlg modellen i OpenCode:
```bash
/models
# Select any OmniRoute model from the list
```
> **Tip:** Tilføj enhver tilgÌngelig model i dit OmniRoute `/v1/models`-endepunkt til `models`-sektionen. Brug formatet `provider/model-id` fra dit OmniRoute-dashboard.
---
## đ Fejlfinding
Klik for at udvide fejlfindingsvejledning
**"Sprogmodellen leverede ikke beskeder"**
- Udbyderkvote opbrugt â Tjek dashboardkvotesporing
- Løsning: Brug combo fallback eller skift til et billigere niveau
**SatsbegrĂŚnsende**
- Abonnementskontingent ude â Fallback til GLM/MiniMax
- Tilføj kombination: `cc/claude-opus-4-6 â glm/glm-4.7 â if/kimi-k2-thinking`
**OAuth-token er udløbet**
- Automatisk genopfrisket af OmniRoute
- Hvis problemerne fortsĂŚtter: Dashboard â Udbyder â Genopret forbindelse
**Høje omkostninger**
- Tjek brugsstatistik i Dashboard â Omkostninger
- Skift primĂŚr model til GLM/MiniMax
- Brug gratis niveau (Gemini CLI, iFlow) til ikke-kritiske opgaver
**Dashboard/API-porte er forkerte**
- `PORT` er den kanoniske basisport (og API-port som standard)
- `API_PORT` tilsidesĂŚtter kun OpenAI-kompatibel API-lytter
- `DASHBOARD_PORT` tilsidesĂŚtter kun dashboard/Next.js-lytter
- Indstil `NEXT_PUBLIC_BASE_URL` til dit dashboard/offentlige URL (til OAuth-tilbagekald)
**Skysynkroniseringsfejl**
- BekrÌft, at `BASE_URL` peger pü din kørende instans
- BekrĂŚft `CLOUD_URL`-punkter til dit forventede cloud-endepunkt
- Hold `NEXT_PUBLIC_*`-vĂŚrdier pĂĽ linje med vĂŚrdier pĂĽ serversiden
**Første login virker ikke**
- Tjek `INITIAL_PASSWORD` i `.env`
- Hvis den ikke er indstillet, er reserveadgangskoden `123456`
**Ingen anmodningslogfiler**
- Indstil `ENABLE_REQUEST_LOGS=true` i `.env`
**Forbindelsestest viser "Ugyldig" for OpenAI-kompatible udbydere**
- Mange udbydere eksponerer ikke et `/models`-endepunkt
- OmniRoute v1.0.6+ inkluderer fallback-validering via chatafslutninger
- Sørg for, at basis-URL inkluderer `/v1` suffiks
### đ OAuth
> **â ď¸ VIGTIGT til brugere af OmniRoute med VPS/Docker/server-fjernbetjening**
#### OAuth
Som credenciais OAuth embutidas no OmniRoute estão cadastradas **apenas para `localhost`**. Quando você acessa o OmniRoute em um servidor remoto (ex: `https://omniroute.meuservidor.com`), o Google afviser en autenticação com:
```
Error 400: redirect_uri_mismatch
```
#### Løsning: Konfigurer OAuth-tilgÌngelighed
Você precisa criar um **OAuth 2.0 Client ID** ingen Google Cloud Console med en URI, der udfører denne service.
#### Passo a passo
**1. Adgang til Google Cloud Console**
Abra: [https://console.cloud.google.com/apis/credentials](https://console.cloud.google.com/apis/credentials)
**2. Crie um novo OAuth 2.0 Client ID**
- Klik pĂĽ dem **"+ Opret legitimationsoplysninger"** â **"OAuth-klient-id"**
- Tipo de aplicativo: **"Webapplikation"**
- Navn: escolha qualquer nome (eks.: `OmniRoute Remote`)
**3. Adicione som autoriseret omdirigerings-URI**
Ingen campo **"Autoriseret omdirigerings-URI'er"**, adicione:
```
https://seu-servidor.com/callback
```
> Substitua `seu-servidor.com` pelo domĂnio eller IP do seu servidor (inklusive en porta se necessĂĄrio, ex: `http://45.33.32.156:20128/callback`).
**4. Salve e copy as credenciais**
ApĂłs criar, o Google mostrarĂĄ o **Client ID** e o **Client Secret**.
**5. Konfigurer som variĂĄveis de ambiente**
Ingen seu `.env` (denne variĂĄveis de ambiente do 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 o OmniRoute**
```bash
# Se usando npm:
npm run dev
# Se usando Docker:
docker restart omniroute
```
**7. Tente conectar novamente**
Dashboard â Udbydere â Antigravity (ou Gemini CLI) â OAuth
Agora eller Google redirecionarå corretamente para `https://seu-servidor.com/callback` og autenticação funcionarå.
---
#### Midlertidig løsning (som konfigureret tiltrods próprias)
Se nĂŁo quiser criar credenciais prĂłprias agora, ainda ĂŠ possĂvel usar o fluxo **manual de URL**:
1. O OmniRoute abrirå en URL de autorização til Google
2. ApĂłs vocĂŞ autorizar, o Google tentarĂĄ redirecionar para `localhost` (que falha no servidor remoto)
3. **Kopier en URL komplet** da barra de endereço do sin browser (mesmo que a pågina não carregue)
4. Cole essa URL no campo que aparece no modal de conexĂŁo do OmniRoute
5. Klik pĂĽ **"Forbind"**
> Este workaround funciona porque or código de autorização na URL Ê vålido independente do redirect ter carregado or não.
---
## đ ď¸
Klik for at udvide tekniske stakdetaljer
- **Runtime**: Node.js 18â22 LTS (â ď¸ Node.js 24+ er **ikke understøttet** â `better-sqlite3` native binĂŚre filer er inkompatible)
- **Sprog**: TypeScript 5.9 â **100 % TypeScript** pĂĽ tvĂŚrs af `src/` og `open-sse/` (nul `any` i kernemoduler siden v2.0)
- **Framework**: Next.js 16 + React 19 + Tailwind CSS 4
- **Database**: LowDB (JSON) + SQLite (domĂŚnetilstand + proxylogfiler + MCP-revision + routingbeslutninger)
- **Skemaer**: Zod (MCP-vÌrktøj I/O-validering, API-kontrakter)
- **Protokoller**: MCP (stdio/HTTP) + A2A v0.3 (JSON-RPC 2.0 + SSE)
- **Streaming**: Server-sendte hĂŚndelser (SSE)
- **Auth**: OAuth 2.0 (PKCE) + JWT + API-nøgler + MCP Scoped Authorization
- **Test**: Node.js testløber + Vitest (900+ tests inklusive enhed, integration, E2E)- **CI/CD**: GitHub-handlinger (automatisk npm-udgivelse + Docker Hub ved udgivelse)
- **Websted**: [omniroute.online](https://omniroute.online)
- **Pakke**: [npmjs.com/package/omniroute](https://www.npmjs.com/package/omniroute)
- **Docker**: [hub.docker.com/r/diegosouzapw/omniroute](https://hub.docker.com/r/diegosouzapw/omniroute)
- **Resiliens**: Circuit breaker, eksponentiel backoff, anti-tordenbesĂŚtning, TLS spoofing, auto-combo selvhelbredelse
---
## đ Dokumentation
| Dokument | Beskrivelse |
| ------------------------------------------------ | ------------------------------------------------------------ |
| [Brugervejledning](docs/USER_GUIDE.md) | Udbydere, kombinationer, CLI-integration, implementering |
| [API-reference](docs/API_REFERENCE.md) | Alle endepunkter med eksempler |
| [MCP-server](open-sse/mcp-server/README.md) | 16 MCP-vÌrktøjer, IDE-konfigurationer, Python/TS/Go-klienter |
| [A2A-server](src/lib/a2a/README.md) | JSON-RPC 2.0 protokol, fĂŚrdigheder, streaming, opgavestyring |
| [Auto-kombimotor](docs/auto-combo.md) | 6-faktor scoring, tilstandspakker, selvhelbredende |
| [Fejlfinding](docs/TROUBLESHOOTING.md) | Almindelige problemer og løsninger |
| [Arkitektur](docs/ARCHITECTURE.md) | Systemarkitektur og indre |
| [Bidrager](CONTRIBUTING.md) | UdviklingsopsĂŚtning og retningslinjer |
| [OpenAPI Spec](docs/openapi.yaml) | OpenAPI 3.0-specifikation |
| [Sikkerhedspolitik](SECURITY.md) | SĂĽrbarhedsrapportering og sikkerhedspraksis |
| [VM-implementering](docs/VM_DEPLOYMENT_GUIDE.md) | Komplet guide: VM + nginx + Cloudflare opsĂŚtning |
| [Feature Gallery](docs/FEATURES.md) | Visuel dashboard-rundvisning med skĂŚrmbilleder |
| [Udgivelsestjekliste](docs/RELEASE_CHECKLIST.md) | Pre-release valideringstrin |
---
## đşď¸
OmniRoute har **210+ funktioner planlagt** pü tvÌrs af flere udviklingsfaser. Her er nøgleomrüderne:
| Kategori | Planlagte funktioner | Højdepunkter |
| -------------------------------- | -------------------- | ---------------------------------------------------------------------------------------------------------- |
| đ§ **Routing & intelligens** | 25+ | Routing med laveste latens, tag-baseret routing, kvote preflight, valg af P2C-konto |
| đ **Sikkerhed og overholdelse** | 20+ | SSRF-hĂŚrdning, tilsløring af legitimationsoplysninger, hastighedsgrĂŚnse pr. slutpunkt, styringsnøgleomfang |
| đ **Observabilitet** | 15+ | OpenTelemetry-integration, kvoteovervĂĽgning i realtid, omkostningssporing pr. model |
| đ **Udbyderintegrationer** | 20+ | Dynamisk modelregistrering, leverandørnedkøling, multi-konto Codex, Copilot-kvoteparsing |
| ⥠**Ydeevne** | 15+ | Dobbelt cachelag, promptcache, svarcache, streaming keepalive, batch API |
| đ **Ăkosystem** | 10+ | WebSocket API, config hot-reload, distribueret config butik, kommerciel tilstand |
### đ Kommer snart- đ **OpenCode-integration** â Native udbyderunderstøttelse af OpenCode AI-kodnings-IDE
- đ **TRAE-integration** â Fuld understøttelse af TRAE AI-udviklingsrammen
- đŚ **Batch API** â Asynkron batchbehandling til masseanmodninger
- đŻ **Tag-baseret Routing** â Ruteanmodninger baseret pĂĽ tilpassede tags og metadata
- đ° **Laveste omkostningsstrategi** â VĂŚlg automatisk den billigste tilgĂŚngelige udbyder
> đ Fuld funktionsspecifikationer tilgĂŚngelige i [`docs/new-features/`](docs/new-features/) (217 detaljerede specifikationer)
---
## đĽ Bidragydere
[](https://github.com/diegosouzapw/OmniRoute/graphs/contributors)
### SĂĽdan bidrager du
1. Fork depotet
2. Opret din funktionsgren (`git checkout -b feature/amazing-feature`)
3. BekrĂŚft dine ĂŚndringer (`git commit -m 'Add amazing feature'`)
4. Skub til grenen (`git push origin feature/amazing-feature`)
5. Ă
bn en pull-anmodning
Se [CONTRIBUTING.md](CONTRIBUTING.md) for detaljerede retningslinjer.
### Frigiver en ny version
```bash
# Create a release â npm publish happens automatically
gh release create v2.0.0 --title "v2.0.0" --generate-notes
```
---
## đ Stjernehistorie
## Stargazers over time
## [](https://starchart.cc/diegosouzapw/OmniRoute)
## đ Tak
SĂŚrlig tak til **[9router](https://github.com/decolua/9router)** af **[decolua](https://github.com/decolua)** â det originale projekt, der inspirerede denne gaffel. OmniRoute bygger pĂĽ det utrolige fundament med yderligere funktioner, multimodale API'er og en fuld TypeScript-omskrivning.
SĂŚrlig tak til **[CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI)** â den originale Go-implementering, der inspirerede denne JavaScript-port.
---
## đ Licens
MIT-licens - se [LICENS](LICENSE) for detaljer.
---