110 KiB
🚀 OmniRoute — The Free AI Gateway (Norsk)
🌐 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.
Din universelle API-proxy – ett endepunkt, 60+ leverandører, null nedetid. Nå medMCP Server (25 verktøy),A2A Protocol,Memory/Skills SystemsogElectron Desktop App.
Chatfullføringer • Innebygginger • Bildegenerering • Video • Musikk • Lyd • Rerangering •Nettsøk• MCP-server • A2A-protokoll • 100 % TypeScript---
🌐Tilgjengelig på:🇺🇸 engelsk | 🇧🇷 Português (Brasil) | 🇪🇸 Español | 🇫🇷 Français | 🇮🇹 Italiano | 🇷🇺 Русский | 🇨🇳 中文 (简体) | 🇩🇪 Deutsch | 🇮🇳 हिन्दी | 🇹🇭 ไทย | 🇺🇦 Українська | 🇸🇦 العربية | 🇯🇵 日本語 | 🇻🇳 Tiếng Việt | 🇧🇬 Български | 🇩🇰 Dansk | 🇫🇮 Suomi | 🇮🇱 norsk | 🇭🇺 Magyar | 🇮🇩 Bahasa Indonesia | 🇰🇷 한국어 | 🇲🇾 Bahasa Melayu | 🇳🇱 Nederlands | 🇳🇴 norsk | 🇵🇹 Português (Portugal) | 🇷🇴 Română | 🇵🇱 Polski | 🇸🇰 Slovenčina | 🇸🇪 Svenska | 🇵🇭 filippinsk | 🇨🇿 Čeština---
🖼️ Main Dashboard
📸 Dashboard Preview
| Side | Skjermbilde | |
|---|---|---|
| Tilbydere | ![]() |
|
| Komboer | ![]() |
|
| Analyse | ![]() |
|
| Helse | ![]() |
|
| Oversetter | ![]() |
|
| Innstillinger | ![]() |
|
| CLI-verktøy | ![]() |
|
| Brukslogger | ![]() |
|
| Endepunkter | ![]() |
🤖 Free AI Provider for your favorite coding agents
Koble til ethvert AI-drevet IDE- eller CLI-verktøy gjennom OmniRoute – gratis API-gateway for ubegrenset koding.
OpenClaw
⭐ 205K
NanoBot
⭐ 20,9K
PicoClaw
⭐ 14,6K
ZeroClaw
⭐ 9,9K
IronClaw
⭐ 2.1K
OpenCode
⭐ 106K
Codex CLI
⭐ 60,8K
Claude Code
⭐ 67,3K
Gemini CLI
⭐ 94,7K
Kilokode
⭐ 15.5K
📡 Alle agenter kobler til via http://localhost:20128/v1 eller http://cloud.omniroute.online/v1 – én konfigurasjon, ubegrenset med modeller og kvote---
🤔 Why OmniRoute?
Slutt å kaste bort penger og nå grensene:
Abonnementskvoten utløper ubrukt hver måned
Satsgrenser hindrer deg i midtkoding
Dyre APIer ($20–50/måned per leverandør)
Manuell bytting mellom leverandører
OmniRoute løser dette:
- ✅Maksimer abonnementer- Spor kvote, bruk hver bit før tilbakestilling
- ✅Automatisk fallback- Abonnement → API-nøkkel → Billig → Gratis, null nedetid
- ✅Multi-konto- Round-robin mellom kontoer per leverandør
- ✅Universal- Fungerer med Claude Code, Codex, Gemini CLI, Cursor, Cline, OpenClaw, hvilket som helst CLI-verktøy---
📧 Support
💬Bli med i fellesskapet vårt!WhatsApp Group — Få hjelp, del tips og hold deg oppdatert.
-Nettsted: omniroute.online -GitHub: github.com/diegosouzapw/OmniRoute -Problemer: github.com/diegosouzapw/OmniRoute/issues -WhatsApp: fellesskapsgruppe -Bidra: Se CONTRIBUTING.md, åpne en PR, eller velg en "god første utgave". -Originalt prosjekt: 9router av decolua### 🐛 Reporting a Bug?
Når du åpner et problem, kjør systeminfo-kommandoen og legg ved den genererte filen:```bash npm run system-info
Dette genererer en `system-info.txt` med Node.js-versjonen din, OmniRoute-versjonen, OS-detaljer, installerte CLI-verktøy (qoder, gemini, claude, codex, antigravity, droid, etc.), Docker/PM2-status og systempakker – alt vi trenger for å gjenskape problemet raskt. Legg ved filen direkte til GitHub-problemet ditt.---
## 🔄 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
>**Hver utviklere som bruker AI-verktøy møter disse problemene daglig.**OmniRoute ble bygget for å løse dem alle – fra kostnadsoverskridelser til regionale blokker, fra ødelagte OAuth-flyter til protokolloperasjoner og observerbarhet i bedrifter.
<detaljer>
<summary><b>💸 1. "Jeg betaler for et dyrt abonnement, men blir fortsatt avbrutt av limits"</b></summary>
Utviklere betaler $20–200/måned for Claude Pro, Codex Pro eller GitHub Copilot. Selv om du betaler, har kvoten et tak – 5 timers bruk, ukentlige grenser eller rategrenser per minutt. Midtkodingsøkt, leverandøren slutter å svare og utvikleren mister flyt og produktivitet.
**Hvordan OmniRoute løser det:**
-**Smart 4-lags fallback**— Hvis abonnementskvoten går tom, omdirigeres automatisk til API-nøkkel → Billig → Gratis med null manuell intervensjon
-**Sporing av leverandørgrenser**— Bufret kvoteøyeblikksbilder oppdateres på en serversideplan (standard `PROVIDER_LIMITS_SYNC_INTERVAL_MINUTES=70`) med manuell oppdatering tilgjengelig i brukergrensesnittet
-**Støtte for flere kontoer**- Flere kontoer per leverandør med automatisk round-robin - når en går tom, bytter du til den neste
-**Egendefinerte kombinasjoner**— Tilpassbare reservekjeder med 9 balanseringsstrategier (prioritet, vektet, fyll først, round-robin, P2C, tilfeldig, minst brukt, kostnadsoptimalisert, strengt tilfeldig)
-**Codex Business Quotas**— Overvåking av bedrifts-/teamarbeidsområdekvoter direkte i dashbordet</details>
<detaljer>
<summary><b>🔌 2. "Jeg trenger å bruke flere leverandører, men hver har en annen API"</b></summary>
OpenAI bruker ett format, Claude (Anthropic) bruker et annet, Gemini enda et annet. Hvis en utvikler ønsker å teste modeller fra forskjellige leverandører eller fallback mellom dem, må de rekonfigurere SDK-er, endre endepunkter, håndtere inkompatible formater. Tilpassede leverandører (FriendLI, NIM) har ikke-standardmodellende endepunkter.
**Hvordan OmniRoute løser det:**
-**Unified Endpoint**- En enkelt "http://localhost:20128/v1" fungerer som proxy for alle 60+ leverandører
-**Formatoversettelse**— Automatisk og gjennomsiktig: OpenAI ↔ Claude ↔ Gemini ↔ Responses API
–**Responsrensing**– Fjerner ikke-standardiserte felt (`x_groq`, `usage_breakdown`, `service_tier`) som bryter OpenAI SDK v1.83+
-**Rollenormalisering**— Konverterer `utvikler` → `system` for ikke-OpenAI-leverandører; `system` → `bruker` for GLM/ERNIE
-**Think Tag Extraction**— Trekker ut «<tenke>»-blokker fra modeller som DeepSeek R1 til standardisert «reasoning_content»
-**Structured Output for Gemini**— `json_schema` → `responseMimeType`/`responseSchema` automatisk konvertering
-**`stream` er standard til "false"**- Justerer med OpenAI-spesifikasjoner, og unngår uventet SSE i Python/Rust/Go SDK-er</details>
<detaljer>
<summary><b>🌐 3. «Min AI-leverandør blokkerer min region/land»</b></summary>
Leverandører som OpenAI/Codex blokkerer tilgang fra visse geografiske områder. Brukere får feil som «unsupported_country_region_territory» under OAuth- og API-tilkoblinger. Dette er spesielt frustrerende for utviklere fra utviklingsland.
**Hvordan OmniRoute løser det:**
-**3-Level Proxy Config**— Konfigurerbar proxy på 3 nivåer: global (all trafikk), per leverandør (kun én leverandør) og per tilkobling/nøkkel
-**Fargekodede proxy-merker**— Visuelle indikatorer: 🟢 global proxy, 🟡 leverandørproxy, 🔵 tilkoblings proxy, viser alltid IP
-**OAuth-tokenutveksling gjennom proxy**- OAuth-flyt går også gjennom proxyen, og løser «unsupported_country_region_territory».
-**Test av tilkobling via proxy**— Tilkoblingstester bruker den konfigurerte proxyen (ikke mer direkte forbikobling)
-**SOCKS5-støtte**— Full SOCKS5-proxystøtte for utgående ruting
-**TLS-fingeravtrykkspoofing**- Nettleserlignende TLS-fingeravtrykk via 'wreq-js' for å omgå botdeteksjon
-**🔏 Matching av CLI-fingeravtrykk**— Omorganiserer overskrifter og brødtekstfelter for å matche native CLI-binære signaturer, noe som reduserer risikoen for kontoflagging drastisk. Proxy-IP-en er bevart – du får både skjult**og**IP-maskering samtidig</details>
<detaljer>
<summary><b>🆓 4. "Jeg vil bruke AI for koding, men jeg har ingen penger"</b></summary>
Ikke alle kan betale $20–200 per måned for AI-abonnementer. Studenter, utviklere fra fremvoksende land, hobbyfolk og frilansere trenger tilgang til kvalitetsmodeller uten kostnad.
**Hvordan OmniRoute løser det:**
-**Gratis-tilbydere innebygd**— Innebygd støtte for 100 % gratis leverandører: Qoder (5 ubegrensede modeller via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited-modeller:-r-modeller:-r qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID gratis), Gemini CLI (180K tokens/måned gratis)
-**Ollama Cloud**— Ollama-modeller som er vert for skyen på `api.ollama.com` med gratis "Lett bruk"-lag; bruk `ollamacloud/<modell>` prefiks
-**Kun gratis kombinasjoner**— Kjede `gc/gemini-3-flash → if/kimi-k2-tenking → qw/qwen3-coder-plus` = $0/måned med null nedetid
-**NVIDIA NIM Free Access**— ~40 RPM dev-forever gratis tilgang til 70+ modeller på build.nvidia.com (overgang fra kreditter til rene rategrenser)
-**Kostnadsoptimalisert strategi**— Rutingstrategi som automatisk velger den billigste tilgjengelige leverandøren</details>
<detaljer>
<summary><b>🔒 5. «Jeg må beskytte AI-gatewayen min mot uautorisert tilgang»</b></summary>
Når du eksponerer en AI-gateway til nettverket (LAN, VPS, Docker), kan alle med adressen konsumere utviklerens tokens/kvote. Uten beskyttelse er API-er sårbare for misbruk, umiddelbar injeksjon og misbruk.
**Hvordan OmniRoute løser det:**
-**API Key Management**— Generering, rotasjon og scoping per leverandør med en dedikert `/dashboard/api-manager`-side
-**Tillatelser på modellnivå**— Begrens API-nøkler til spesifikke modeller ('openai/*', jokertegnmønstre), med Tillat alt/begrens-bryteren
-**API Endpoint Protection**— Krev en nøkkel for `/v1/modeller` og blokker spesifikke leverandører fra oppføringen
-**Auth Guard + CSRF Protection**— Alle dashbordruter beskyttet med "withAuth" mellomvare + CSRF-tokens
-**Rate Limiter**— Per-IP ratebegrensning med konfigurerbare vinduer
-**IP-filtrering**— Tillatelsesliste/blokkeringsliste for tilgangskontroll
-**Prompt Injection Guard**— Sanitisering mot ondsinnede spørsmålsmønstre
-**AES-256-GCM-kryptering**— Legitimasjon kryptert i hvile</details>
<detaljer>
<summary><b>🛑 6. «Tilbyderen min gikk ned og jeg mistet kodeflyten min»</b></summary>
AI-leverandører kan bli ustabile, returnere 5xx-feil eller nå midlertidige hastighetsgrenser. Hvis en utvikler er avhengig av en enkelt leverandør, blir de avbrutt. Uten strømbrytere kan gjentatte forsøk krasje applikasjonen.
**Hvordan OmniRoute løser det:**
-**Circuit Breaker per modell**— Automatisk åpning/lukking med konfigurerbare terskler og nedkjøling (Lukket/Åpen/Halv-Åpen), omfang per modell for å unngå kaskadeblokker
-**Eksponentiell backoff**— Progressive forsinkelser på nytt forsøk
-**Anti-tordenflokk**— Mutex + semaforbeskyttelse mot samtidige stormer på nytt forsøk
-**Combo Fallback Chains**— Hvis primærleverandøren mislykkes, faller den automatisk gjennom kjeden uten inngrep
-**Combo Circuit Breaker**- Deaktiverer sviktende leverandører automatisk i en kombinasjonskjede
-**Helsedashbord**— Oppetidsovervåking, strømbrytertilstander, sperringer, cachestatistikk, p50/p95/p99 latency</details>
<detaljer>
<summary><b>🔧 7. "Å konfigurere hvert AI-verktøy er kjedelig og repeterende"</b></summary>
Utviklere bruker Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code... Hvert verktøy trenger en annen konfigurasjon (API-endepunkt, nøkkel, modell). Å konfigurere på nytt når du bytter leverandør eller modell er bortkastet tid.
**Hvordan OmniRoute løser det:**
-**CLI Tools Dashboard**— Dedikert side med ett-klikksoppsett for Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline
-**GitHub Copilot Config Generator**— Genererer `chatLanguageModels.json` for VS-kode med bulk modellvalg
-**Onboarding Wizard**— Veiledet 4-trinns oppsett for førstegangsbrukere
-**Ett endepunkt, alle modeller**— Konfigurer `http://localhost:20128/v1` én gang, få tilgang til 60+ leverandører</details>
<detaljer>
<summary><b>🔑 8. "Å administrere OAuth-tokens fra flere leverandører er et helvete"</b></summary>
Claude Code, Codex, Gemini CLI, Copilot – alle bruker OAuth 2.0 med tokens som utløper. Utviklere må re-autentisere hele tiden, håndtere "client_secret is missing", "redirect_uri_mismatch" og feil på eksterne servere. OAuth på LAN/VPS er spesielt problematisk.
**Hvordan OmniRoute løser det:**
-**Automatisk oppdatering av token**— OAuth-tokener oppdateres i bakgrunnen før utløp
-**OAuth 2.0 (PKCE) innebygd**— Automatisk flyt for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, Qoder
-**Multi-Account OAuth**- Flere kontoer per leverandør via JWT/ID-tokenutvinning
-**OAuth LAN/Remote Fix**- Privat IP-deteksjon for `redirect_uri` + manuell URL-modus for eksterne servere
-**OAuth Behind Nginx**- Bruker `window.location.origin` for omvendt proxy-kompatibilitet
-**Remote OAuth Guide**— Trinn-for-trinn-veiledning for Google Cloud-legitimasjon på VPS/Docker</details>
<detaljer>
<summary><b>📊 9. "Jeg vet ikke hvor mye jeg bruker eller hvor"</b></summary>
Utviklere bruker flere betalte leverandører, men har ikke noe enhetlig syn på utgifter. Hver leverandør har sitt eget faktureringsdashbord, men det er ingen konsolidert visning. Uventede kostnader kan hope seg opp.
**Hvordan OmniRoute løser det:**
-**Dashboard for kostnadsanalyse**— Kostnadssporing per token og budsjettadministrasjon per leverandør
–**Budsjettgrenser per nivå**– Utgiftstak per nivå som utløser automatisk fallback
-**Priskonfigurasjon per modell**— Konfigurerbare priser per modell
-**Bruksstatistikk per API-nøkkel**— Antall forespørsler og sist brukte tidsstempel per nøkkel
-**Analytics Dashboard**— Statistiske kort, modellbruksdiagram, leverandørtabell med suksessrater og latens</details>
<detaljer>
<summary><b>🐛 10. "Jeg kan ikke diagnostisere feil og problemer i AI-anrop"</b></summary>
Når et anrop mislykkes, vet ikke utvikleren om det var en takstgrense, utløpt token, feil format eller leverandørfeil. Fragmenterte logger på tvers av forskjellige terminaler. Uten observerbarhet er feilsøking prøving og feiling.
**Hvordan OmniRoute løser det:**
-**Unified Logs Dashboard**— 4 faner: Forespørselslogger, proxy-logger, revisjonslogger, konsoll
-**Console Log Viewer**— Viser i sanntid i terminalstil med fargekodede nivåer, automatisk rulling, søk, filter
-**SQLite Proxy Logger**— Vedvarende logger som overlever serverstarter
-**Translator Playground**— 4 feilsøkingsmoduser: Playground (formatoversettelse), Chat Tester (tur-retur), Test Bench (batch), Live Monitor (sanntid)
-**Request Telemetri**— p50/p95/p99 latens + X-Request-Id-sporing
-**Filbasert logging med rotasjon**— Applogger roterer etter størrelse, oppbevaringsdager og arkivantall; anropsloggartefakter roterer etter oppbevaringsdager og filantall
-**System Info Report**— `npm run system-info` genererer `system-info.txt` med hele miljøet ditt (Node-versjon, OmniRoute-versjon, OS, CLI-verktøy, Docker/PM2-status). Legg den ved når du rapporterer problemer for umiddelbar triage.</details>
<detaljer>
<summary><b>🏗️ 11. "Deployering og vedlikehold av gatewayen er kompleks"</b></summary>
Installering, konfigurering og vedlikehold av en AI-proxy på tvers av forskjellige miljøer (lokalt, VPS, Docker, sky) er arbeidskrevende. Problemer som hardkodede baner, "EACCES" på kataloger, portkonflikter og plattformkonstruksjoner gir friksjon.
**Hvordan OmniRoute løser det:**
-**npm global installasjon**— `npm install -g omniroute && omniroute` – ferdig
-**Docker Multi-Platform**— AMD64 + ARM64 native (Apple Silicon, AWS Graviton, Raspberry Pi)
-**Docker Compose Profiles**— 'base' (ingen CLI-verktøy) og 'cli' (med Claude Code, Codex, OpenClaw)
-**Electron Desktop App**— Innebygd app for Windows/macOS/Linux med systemstatusfelt, automatisk start, offline-modus
-**Split-Port Mode**— API og Dashboard på separate porter for avanserte scenarier (omvendt proxy, containernettverk)
-**Cloud Sync**— Konfigurer synkronisering på tvers av enheter via Cloudflare Workers
-**DB-sikkerhetskopier**— Automatisk sikkerhetskopiering, gjenoppretting, eksport og import av alle innstillinger, med `DISABLE_SQLITE_AUTO_BACKUP` for eksternt administrerte sikkerhetskopier</details>
<detaljer>
<summary><b>🌍 12. "Grensesnittet er kun engelsk, og teamet mitt snakker ikke engelsk"</b></summary>
Lag i ikke-engelsktalende land, spesielt i Latin-Amerika, Asia og Europa, sliter med grensesnitt som kun er på engelsk. Språkbarrierer reduserer bruken og øker konfigurasjonsfeil.
**Hvordan OmniRoute løser det:**
-**Dashboard i18n — 30 språk**— Alle 500+ nøkler oversatt, inkludert arabisk, bulgarsk, dansk, tysk, spansk, finsk, fransk, hebraisk, hindi, ungarsk, indonesisk, italiensk, japansk, koreansk, malaysisk, nederlandsk, norsk, polsk, portugisisk (PT/BR), rumensk, russisk, ukrainsk, ukrainsk, kinesisk, engelsk, kinesisk, ukrainsk, kinesisk, ukrainsk, kinesisk, ukrainsk, kinesisk, ukrainsk, kinesisk
-**RTL-støtte**— Høyre-til-venstre-støtte for arabisk og hebraisk
-**Multi-Language READMEs**- 30 komplette dokumentasjonsoversettelser
-**Språkvelger**— Globusikon i overskriften for sanntidsbytte</details>
<detaljer>
<summary><b>🔄 13. «Jeg trenger mer enn chat — jeg trenger innebygginger, bilder, lyd»</b></summary>
AI er ikke bare fullføring av chat. Utviklere må generere bilder, transkribere lyd, lage innbygginger for RAG, omrangere dokumenter og moderere innhold. Hver API har et annet endepunkt og format.
**Hvordan OmniRoute løser det:**
-**Embeddings**— `/v1/embeddings` med 6 leverandører og 9+ modeller
-**Image Generation**— `/v1/images/generations` med 10 leverandører og 20+ modeller (OpenAI, xAI, Together, Fireworks, Nebius, Hyperbolic, NanoBanana, Antigravity, SD WebUI, ComfyUI)
-**Tekst-til-video**— `/v1/videoer/generasjoner` — ComfyUI (AnimateDiff, SVD) og SD WebUI
-**Tekst-til-musikk**— `/v1/musikk/generasjoner` — ComfyUI (Stable Audio Open, MusicGen)
-**Lydtranskripsjon**— `/v1/audio/transcriptions` — Whisper + Nvidia NIM, HuggingFace, Qwen3
-**Tekst-til-tale**— `/v1/audio/tale` — ElevenLabs, Nvidia NIM, HuggingFace, Coqui, Tortoise, Qwen3,**Inworld**,**Cartesia**,**PlayHT**, + eksisterende leverandører
-**Moderasjoner**— `/v1/moderasjoner` — Innholdssikkerhetssjekker
-**Reranking**— `/v1/rerank' — Reranking av dokumentrelevans
-**Responses API**— Full `/v1/responses`-støtte for Codex</details>
<detaljer>
<summary><b>🧪 14. "Jeg har ingen måte å teste og sammenligne kvalitet på tvers av modeller"</b></summary>
Utviklere ønsker å vite hvilken modell som er best for deres brukssituasjon – kode, oversettelse, resonnement – men det går tregt å sammenligne manuelt. Det finnes ingen integrerte evalueringsverktøy.
**Hvordan OmniRoute løser det:**
-**LLM-evalueringer**— Gyldent sett-testing med 10 forhåndslastede tilfeller som dekker hilsener, matematikk, geografi, kodegenerering, JSON-overholdelse, oversettelse, nedskrivning, sikkerhetsavslag
-**4 matchstrategier**- "eksakt", "inneholder", "regex", "tilpasset" (JS-funksjon)
-**Translator Playground Test Bench**— Batchtesting med flere innganger og forventede utganger, sammenligning på tvers av leverandører
-**Chattetester**— Full rundtur med visuell responsgjengivelse
-**Live Monitor**— Sanntidsstrøm av alle forespørsler som strømmer gjennom proxyen</details>
<detaljer>
<summary><b>📈 15. «Jeg trenger å skalere uten å miste ytelse»</b></summary>
Når forespørselsvolumet vokser, genererer de samme spørsmålene dupliserte kostnader uten å bufre. Uten idempotens, dupliserte forespørsler om avfallsbehandling. Satsgrenser per leverandør må respekteres.
**Hvordan OmniRoute løser det:**
-**Semantisk hurtigbuffer**— To-lags cache (signatur + semantisk) reduserer kostnader og ventetid
-**Request Idempotency**— 5s dedupliseringsvindu for identiske forespørsler
-**Deteksjon av hastighetsgrense**- RPM per leverandør, minimum gap og maksimal samtidig sporing
-**Redigerbare frekvensgrenser**— Konfigurerbare standardinnstillinger i Innstillinger → Motstandsdyktighet med utholdenhet
-**API Key Validation Cache**— 3-lags cache for produksjonsytelse
-**Helsedashbord med telemetri**— p50/p95/p99-forsinkelse, hurtigbufferstatistikk, oppetid</details>
<detaljer>
<summary><b>🤖 16. «Jeg vil kontrollere modellatferd globalt»</b></summary>
Utviklere som vil ha alle svar på et spesifikt språk, med en bestemt tone, eller som ønsker å begrense resonnement-tokens. Å konfigurere dette i hvert verktøy/hver forespørsel er upraktisk.
**Hvordan OmniRoute løser det:**
-**System Prompt Injection**— Global forespørsel brukt på alle forespørsler
-**Thinking Budget Validation**— Reasoning token allocation control per request (passthrough, auto, custom, adaptive)
-**9 rutingstrategier**— Globale strategier som bestemmer hvordan forespørsler distribueres
-**Wildcard Router**— `leverandør/*`-mønstre ruter dynamisk til enhver leverandør
-**Kombo aktiver/deaktiver veksle**— Veksle kombinasjoner direkte fra dashbordet
-**Tilkobling av leverandør**— Aktiver/deaktiver alle tilkoblinger for en leverandør med ett klikk
-**Blokkerte leverandører**— Ekskluder spesifikke leverandører fra `/v1/models`-oppføringen</details>
<detaljer>
<summary><b>🧰 17. «Jeg trenger MCP-verktøy som førsteklasses produktegenskaper»</b></summary>
Mange AI-gatewayer avslører MCP bare som en skjult implementeringsdetalj. Team trenger et synlig, håndterbart driftslag.
**Hvordan OmniRoute løser det:**
- MCP vises i dashbordnavigasjons- og endepunktprotokollfanen
- Dedikert MCP-administrasjonsside med prosess, verktøy, omfang og revisjon
- Innebygd hurtigstart for `omniroute --mcp` og klient onboarding</details>
<detaljer>
<summary><b>🧠 18. "Jeg trenger A2A-orkestrering med synkronisering + strømmeoppgavestier"</b></summary>
Agentarbeidsflyter trenger både direkte svar og langvarig strømmet utførelse med livssykluskontroll.
**Hvordan OmniRoute løser det:**
- A2A JSON-RPC-endepunkt ('POST /a2a') med 'melding/send' og 'melding/strøm'
- SSE-streaming med forplantning av terminaltilstand
- Oppgavelivssyklus-API-er for "oppgaver/hent" og "oppgaver/avbryt".</details>
<detaljer>
<summary><b>🛰️ 19. «Jeg trenger ekte MCP-prosesshelse, ikke gjettet status»</b></summary>
Operasjonelle team må vite om MCP faktisk er i live, ikke bare om en API er tilgjengelig.
**Hvordan OmniRoute løser det:**
- Runtime hjerteslag-fil med PID, tidsstempler, transport, verktøytelling og omfangsmodus
- MCP status API som kombinerer hjerteslag + nylig aktivitet
- UI-statuskort for prosess/oppetid/hjerteslag</details>
<detaljer>
<summary><b>📋 20. "Jeg trenger reviderbar MCP-verktøykjøring"</b></summary>
Når verktøy muterer konfigurasjon eller utløser operasjonshandlinger, trenger teamene rettsmedisinsk sporbarhet.
**Hvordan OmniRoute løser det:**
- SQLite-støttet revisjonslogging for MCP-verktøykall
- Filtrerer etter verktøy, suksess/fiasko, API-nøkkel og paginering
- Dashboard revisjonstabell + statistikkendepunkter for automatisering</details>
<detaljer>
<summary><b>🔐 21. «Jeg trenger scoped MCP-tillatelser per integrasjon»</b></summary>
Ulike klienter bør ha minst privilegert tilgang til verktøykategorier.
**Hvordan OmniRoute løser det:**
- 10 granulære MCP-skoper for kontrollert verktøytilgang
- Håndhevelse av omfang og synlighet i MCP-administrasjonsgrensesnittet
- Sikker standardstilling for operativt verktøy</details>
<detaljer>
<summary><b>⚙️ 22. «Jeg trenger driftskontroller uten å omdistribuere»</b></summary>
Lag trenger raske endringer i kjøretiden under hendelser eller kostnadshendelser.
**Hvordan OmniRoute løser det:**
- Bytt kombinasjonsaktivering direkte fra MCP-dashbordet
- Bruk robusthetsprofiler fra forhåndsdefinerte policypakker
- Tilbakestill strømbryterens tilstand fra samme driftspanel</details>
<detaljer>
<summary><b>🔄 23. «Jeg trenger live A2A-oppgavelivssyklussynlighet og kansellering»</b></summary>
Uten livssyklussynlighet blir oppgavehendelser vanskelig å triage.
**Hvordan OmniRoute løser det:**
- Oppgaveliste/filtrering etter tilstand/ferdighet med paginering
- Drill-down på oppgavemetadata, hendelser og artefakter
- Sluttpunkt for kansellering av oppgave og UI-handling med bekreftelse</details>
<detaljer>
<summary><b>🌊 24. «Jeg trenger aktive strømmemålinger for A2A-last»</b></summary>
Strømmearbeidsflyter krever operasjonell innsikt i samtidighet og direkteforbindelser.
**Hvordan OmniRoute løser det:**
- Aktive strømtellere integrert i A2A-status
- Tidsstempel for siste oppgave og antall per stat
- A2A dashbordkort for operasjonsovervåking i sanntid</details>
<detaljer>
<summary><b>🪪 25. «Jeg trenger standard agentoppdagelse for klienter»</b></summary>
Eksterne klienter og orkestratorer trenger maskinlesbare metadata for onboarding.
**Hvordan OmniRoute løser det:**
- Agentkort eksponert på `/.well-known/agent.json`
- Evner og ferdigheter vist i ledelsens brukergrensesnitt
- A2A status API inkluderer oppdagelsesmetadata for automatisering</details>
<detaljer>
<summary><b>🧭 26. «Jeg trenger protokolloppdagbarhet i produktets UX»</b></summary>
Hvis brukere ikke kan oppdage protokolloverflater, faller kvaliteten på adopsjon og støtte.
**Hvordan OmniRoute løser det:**
- Konsolidert**Endepunkter**-side med faner for proxy-, MCP-, A2A- og API-endepunkter
- Inline tjenestestatus veksler (Online/Offline) for MCP og A2A
- Lenker fra oversikt til dedikerte administrasjonsfaner</details>
<detaljer>
<summary><b>🧪 27. "Jeg trenger ende-til-ende protokollvalidering med ekte klienter"</b></summary>
Mock-tester er ikke nok til å validere protokollkompatibilitet før utgivelse.
**Hvordan OmniRoute løser det:**
- E2E-suite som starter opp app og bruker ekte MCP SDK-klienttransport
- A2A-klient tester for å oppdage, sende, streame, hente og kansellere flyter
- Krysssjekk påstander mot MCP-revisjon og A2A-oppgave-APIer</details>
<detaljer>
<summary><b>📡 28. «Jeg trenger enhetlig observerbarhet på tvers av alle grensesnitt»</b></summary>
Å dele observerbarhet etter protokoll skaper blinde flekker og lengre MTTR.
**Hvordan OmniRoute løser det:**
- Samlede dashboards/logger/analyse i ett produkt
- Helse + revisjon + forespørsel om telemetri på tvers av OpenAI-, MCP- og A2A-lag
- Operasjonelle APIer for status og automatisering</details>
<detaljer>
<summary><b>💼 29. "Jeg trenger én kjøretid for proxy + verktøy + agentorkestrering"</b></summary>
Å kjøre mange separate tjenester øker driftskostnadene og feilmodusene.
**Hvordan OmniRoute løser det:**
- OpenAI-kompatibel proxy, MCP-server og A2A-server i én stabel
- Delt autentisering, robusthet, datalagring og observerbarhet
- Konsekvent policymodell på tvers av alle interaksjonsflater</details>
<detaljer>
<summary><b>🚀 30. "Jeg trenger å sende agentiske arbeidsflyter uten limkodespredning"</b></summary>
Lag mister hastighet når de setter sammen flere ad-hoc-tjenester og skript.
**Hvordan OmniRoute løser det:**
- Enhetlig endepunktstrategi for kunder og agenter
- Innebygde brukergrensesnitt for protokolladministrasjon og røykvalideringsveier
- Produksjonsklare fundamenter (sikkerhet, logging, robusthet, backup)</details>
### Example Playbooks (Integrated Use Cases)
**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: Nullkostnadskodestabel```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 alltid aktiv reservekjede**```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: Agentoperasjoner med 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
> Konfigurer AI-koding på minutter til**$0/måned**. Koble til disse gratis kontoene og bruk den innebygde**Free Stack**-kombinasjonen.
| Trinn | Handling | Leverandører ulåst |
| ---- | ---------------------------------------------------------- | -------------------------------------------------------------------------- |
| 1 | Koble til**Kiro**(AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 —**ubegrenset**|
| 2 | Koble til**Qoder**(Google OAuth) | kimi-k2-tenkning, qwen3-coder-plus, deepseek-r1... —**ubegrenset**|
| 3 | Koble til**Qwen**(enhetskode) | qwen3-coder-pluss, qwen3-coder-flash... —**ubegrenset**|
| 4 | Koble til**Gemini CLI**(Google OAuth) | gemini-3-flash, gemini-2.5-pro —**180K/mnd gratis**|
| 5 | `/dashboard/combos` →**Free Stack ($0)**mal | Round-robin alle gratisleverandører automatisk |
**Pek en hvilken som helst IDE/CLI til:**`http://localhost:20128/v1` · API-nøkkel: `any-string` · Ferdig.
>**Valgfri ekstra dekning (også gratis):**Groq API-nøkkel (30 RPM gratis), NVIDIA NIM (40 RPM gratis, 70+ modeller), Cerebras (1M tok/dag), LongCat API-nøkkel (50M tokens/dag!), Cloudflare Workers AI (10K Neurons/day, 50+ modeller).## Hurtigstart
### 1) Install and run
```bash
npm install -g omniroute
omniroute
**pnpm-brukere:**Kjør
pnpm approve-builds -getter installasjon for å aktivere native build-skript som kreves avbetter-sqlite3og@swc/core:pnpm installer -g omniroute pnpm approve-builds -g # Velg alle pakker → godkjenn omniroute
Dashboard åpnes på http://localhost:20128 og API-base-URL er http://localhost:20128/v1.
| Kommando | Beskrivelse |
|---|---|
omniroute |
Start server (PORT=20128, API og dashbord på samme port) |
omniroute --port 3000 |
Sett kanonisk/API-port til 3000 |
omniroute --mcp |
Start MCP-server (stdio-transport) |
omniroute --no-open |
Ikke åpne nettleseren automatisk |
omniroute --help |
Vis hjelp |
Valgfri delt port-modus:```bash PORT=20128 DASHBOARD_PORT=20129 omniroute
API: http://localhost:20128/v1
Dashboard: http://localhost:20129
### Long-Running Streaming Timeouts
For de fleste distribusjoner trenger du bare:
| Variabel | Standard | Formål |
| -------------------------- | ------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------- |
| `REQUEST_TIMEOUT_MS` | `600 000` | Delt grunnlinje for oppstrøms henting, skjulte Undici-tidsavbrudd, TLS-fingeravtrykkforespørsler og API-broforespørsel/proxy-tidsavbrudd |
| `STREAM_IDLE_TIMEOUT_MS` | arver `REQUEST_TIMEOUT_MS` | Maksimalt gap mellom streaming-biter før OmniRoute avbryter SSE-strømmen |
Bakoverkompatibilitet er bevart: eksisterende `FETCH_TIMEOUT_MS`, `API_BRIDGE_PROXY_TIMEOUT_MS` og andre tidsavbrudd per lag fungerer fortsatt og overstyrer den delte grunnlinjen.
Avanserte overstyringer er tilgjengelige hvis du trenger bedre kontroll:| Variabel | Standard | Formål |
| ------------------------------------------ | ------------------------------------------ | ---------------------------------------------------------------------------- |
| `FETCH_TIMEOUT_MS` | arver `REQUEST_TIMEOUT_MS` | Total tidsavbrudd for oppstrømsforespørsel brukt av hovedhentingsavbruddssignalet |
| `FETCH_HEADERS_TIMEOUT_MS` | arver `FETCH_TIMEOUT_MS` | Undici tidsbegrensning for mottak av oppstrøms svarhoder |
| `FETCH_BODY_TIMEOUT_MS` | arver `FETCH_TIMEOUT_MS` | Undici tidsbegrensning mellom oppstrøms kroppsdeler (`0` deaktiverer det) |
| `FETCH_CONNECT_TIMEOUT_MS` | `30 000` | Undici TCP tilkobling tidsavbrudd |
| `FETCH_KEEPALIVE_TIMEOUT_MS` | `4000` | Undici inaktiv hold-alive socket timeout |
| `TLS_CLIENT_TIMEOUT_MS` | arver `FETCH_TIMEOUT_MS` | Tidsavbrudd for TLS-fingeravtrykksforespørsler gjort gjennom `wreq-js` |
| `API_BRIDGE_PROXY_TIMEOUT_MS` | arver `REQUEST_TIMEOUT_MS` eller `30000` | Tidsavbrudd for "/v1" proxy-videresending fra API-port til dashbordport |
| `API_BRIDGE_SERVER_REQUEST_TIMEOUT_MS` | `maks(API_BRIDGE_PROXY_TIMEOUT_MS, 300 000)` | Tidsavbrudd for innkommende forespørsel på API-broserveren |
| `API_BRIDGE_SERVER_HEADERS_TIMEOUT_MS` | `60 000` | Tidsavbrudd for innkommende overskrift på API-broserveren |
| `API_BRIDGE_SERVER_KEEPALIVE_TIMEOUT_MS` | `5000` | Keep-alive-tidsavbrudd på API-broserveren |
| `API_BRIDGE_SERVER_SOCKET_TIMEOUT_MS` | `0` | Tidsavbrudd for socketinaktivitet på API-broserveren (`0` deaktiverer den) |
Hvis du kjører OmniRoute bak Nginx, Caddy, Cloudflare eller en annen omvendt proxy, sørg for at proxyen
tidsavbrudd er også høyere enn OmniRoute strøm-/hentingstidsavbrudd.### 2) Connect providers and create your API key
1. Åpne Dashboard → `Providers` og koble til minst én leverandør (OAuth- eller API-nøkkel).
2. Åpne Dashboard → `Endepunkter` og lag en API-nøkkel.
3. (Valgfritt) Åpne Dashboard → `Combos` og angi reservekjeden.### 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)
Fungerer med Claude Code, Codex CLI, Gemini CLI, Cursor, Cline, OpenClaw, OpenCode og OpenAI-kompatible SDK-er.### 4) Enable and validate protocols (v2.0)
MCP (for verktøydrevne operasjoner):```bash omniroute --mcp
Koble deretter MCP-klienten din over "stdio" og testverktøy som:
- `omniroute_get_health`
- `omniroute_list_combos`
**A2A (for agent-til-agent arbeidsflyter):**```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
Denne suiten validerer ekte MCP- og A2A-klientflyter mot en kjørende 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
For Void Linux-brukere kan du bygge en innebygd pakke ved å bruke xbps-src. Lagre denne blokken som srcpkgs/omniroute/mal:```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 er tilgjengelig som et offentlig Docker-bilde på [Docker Hub](https://hub.docker.com/r/diegosouzapw/omniroute).
**Rask løp:**```bash
docker run -d \
--name omniroute \
--restart unless-stopped \
--stop-timeout 40 \
-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
--stop-timeout 40
--env-file .env
-p 20128:20128
-v omniroute-data:/app/data
diegosouzapw/omniroute:latest
**Bruke 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
Dashboard-støtte for Docker-implementeringer inkluderer nå en ett-klikksCloudflare Quick Tunnelpå Dashboard → Endpoints. Den første aktiveringen laster bare ned cloudflared når det er nødvendig, starter en midlertidig tunnel til ditt nåværende /v1-endepunkt, og viser den genererte https://*.trycloudflare.com/v1-URLen rett under din vanlige offentlige URL.
Merknader:
- Hurtigtunnel-URL-er er midlertidige og endres etter hver omstart.
- Hurtigtunneler gjenopprettes ikke automatisk etter omstart av OmniRoute eller container. Aktiver dem på nytt fra dashbordet ved behov.
- Administrert installasjon støtter for øyeblikket Linux, macOS og Windows på
x64/arm64. - Managed Quick Tunnels standard til HTTP/2-transport for å unngå støyende QUIC UDP-buffervarsler i begrensede containermiljøer. Angi
CLOUDFLARED_PROTOCOL=quicellerautohvis du vil ha en annen transport. - Docker-bilder samler systemets CA-røtter og sender dem til administrert
cloudflared, noe som unngår TLS-tillitsfeil når tunnelen starter opp inne i containeren. - SQLite kjører i WAL-modus.
docker stopbør få fullføres slik at OmniRoute kan sjekke de siste endringene tilbake tilstorage.sqlite. - De medfølgende Compose-filene har allerede satt en utsettelsesperiode på 40-tallet. Hvis du kjører bildet direkte, behold
--stop-timeout 40(eller lignende) slik at manuelle stopp ikke avskjærer oppryddingen. - Angi
CLOUDFLARED_BIN=/absolute/path/to/cloudflaredhvis du vil at OmniRoute skal bruke en eksisterende binær i stedet for å laste ned en.
Bruke Docker Compose med Caddy (HTTPS Auto-TLS):
OmniRoute kan eksponeres sikkert ved hjelp av Caddys automatiske SSL-klargjøring. Sørg for at domenets DNS A-post peker til serverens IP.```yaml services: omniroute: image: diegosouzapw/omniroute:latest container_name: omniroute restart: unless-stopped volumes: - omniroute-data:/app/data environment: - PORT=20128 - NEXT_PUBLIC_BASE_URL=https://your-domain.com
caddy: image: caddy:latest container_name: caddy restart: unless-stopped ports: - "80:80" - "443:443" command: caddy reverse-proxy --from https://your-domain.com --to http://omniroute:20128
volumes: omniroute-data:
| Bilde | Tag | Størrelse | Beskrivelse |
| -------------------------- | -------- | ------ | ---------------------- |
| `diegosouzapw/omniroute` | `siste` | ~250MB | Siste stabile utgivelse |
| `diegosouzapw/omniroute` | `1.0.3` | ~250MB | Gjeldende versjon |---
## 🖥️ Desktop App — Offline & Always-On
> 🆕**NYHET!**OmniRoute er nå tilgjengelig som en**native desktop-applikasjon**for Windows, macOS og Linux.
Kjør OmniRoute som en frittstående skrivebordsapp – ingen terminal, ingen nettleser, ingen internett nødvendig for lokale modeller. Den elektronbaserte appen inkluderer:
- 🖥️**Native Window**— Dedikert appvindu med systemstatusfeltintegrasjon
- 🔄**Autostart**— Start OmniRoute ved systempålogging
- 🔔**Native notifications**— Få varsler for kvotebruk eller leverandørproblemer
- ⚡**One-Click Install**— NSIS (Windows), DMG (macOS), AppImage (Linux)
- 🌐**Frakoblet modus**— Fungerer helt offline med medfølgende server### Hurtigstart
```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
Når den er minimert, lever OmniRoute i systemstatusfeltet med raske handlinger:
- Åpne dashbordet
- Endre serverport
- Avslutt programmet
📖 Full dokumentasjon: electron/README.md---
💰 Pricing at a Glance
| Nivå | Leverandør | Kostnad | Kvote Tilbakestill | Best for | |
|---|---|---|---|---|---|
| 💳 ABONNEMENT | Claude Code (Pro) | $20/md | 5t + ukentlig | Allerede abonnert | |
| Codex (Pluss/Pro) | $20-200/md | 5t + ukentlig | OpenAI-brukere | ||
| Gemini CLI | GRATIS | 180K/mnd + 1K/dag | Alle sammen! | ||
| GitHub Copilot | $10-19/md | Månedlig | GitHub-brukere | ||
| 🔑 API NØKKEL | NVIDIA NIM | GRATIS(utvikler for alltid) | ~40 RPM | 70+ åpne modeller | |
| Cerebras | GRATIS(1M tok/dag) | 60K TPM / 30 RPM | Verdens raskeste | ||
| Groq | GRATIS(30 RPM) | 14,4K RPD | Ultrarask Llama/Gemma | ||
| DeepSeek V3.2 | $0,27/$1,10 per 1M | Ingen | Beste pris/kvalitet resonnement | ||
| xAI Grok-4 Fast | $0,20/$0,50 per 1M🆕 | Ingen | Raskeste + verktøykall, ultralavt | ||
| xAI Grok-4 (standard) | $0,20/$1,50 per 1M 🆕 | Ingen | Resonneringsflaggskip fra xAI | ||
| Mistral | Gratis prøveversjon + betalt | Begrenset pris | Europeisk AI | ||
| OpenRouter | Betal per bruk | Ingen | 100+ modeller aggr. | ||
| 💰 BILLIG | GLM-5 (via Z.AI) 🆕 | $0,5/1M | Daglig 10:00 | 128K utgang, nyeste flaggskip | |
| GLM-4.7 | $0,6/1M | Daglig 10:00 | Budsjett backup | ||
| MiniMax M2.5 🆕 | $0,3/1 million input | 5-timers rullende | Resonnement + agentoppgaver | ||
| MiniMax M2.1 | $0,2/1M | 5-timers rullende | Billigste alternativ | ||
| Kimi K2.5 (Moonshot API) 🆕 | Betal per bruk | Ingen | Direkte Moonshot API-tilgang | ||
| Kimi K2 | $9/md leilighet | 10 millioner tokens/mnd | Forutsigbar kostnad | ||
| 🆓 GRATIS | Qoder | $0 | Ubegrenset | 5 modeller ubegrenset | |
| Qwen | $0 | Ubegrenset | 4 modeller ubegrenset | ||
| Kiro | $0 | Ubegrenset | Claude Sonnet/Haiku (AWS-bygger) | ||
| LongCat Flash-Lite 🆕 | $0(50 millioner tok/dag 🔥) | 1 RPS | Største gratis kvote på jorden | ||
| Pollinasjoner AI 🆕 | $0(ingen nøkkel nødvendig) | 1 krav/15s | GPT-5, Claude, DeepSeek, Llama 4 | ||
| Cloudflare Workers AI 🆕 | $0(10K nevroner/dag) | ~150 resp/dag | 50+ modeller, global kant | ||
| Scaleway AI 🆕 | $0(1 millioner tokens totalt) | Begrenset pris | EU/GDPR, Qwen3 235B, Lama 70B | > 🆕**Nye modeller lagt til (mars 2026):**Grok-4 Fast-familie til $0,20/$0,50/M (benchmarked ved 1143ms — 30 % raskere enn Gemini 2.5 Flash), GLM-5 via Z.AI med 128K-utgang, MiniMax M2.5-resonnement, KimSeidek pr V3.2 update, KimSeidek pr. direkte API. |
💡 $0 Combo Stack — Det komplette gratis oppsettet:```
🆓 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
**Null kostnad. Slutter aldri å kode.**Konfigurer dette som én OmniRoute-kombinasjon og alle fallbacks skjer automatisk – ingen manuell veksling noensinne.---
---
## 🆓 Free Models — What You Actually Get
> Alle modellene nedenfor er**100 % gratis uten behov for kredittkort**. OmniRoute ruter automatisk mellom dem når én kvote går tom – kombiner dem alle for en ubrytelig kombinasjon av $0.### 🔵 CLAUDE MODELS (via Kiro — AWS Builder ID)
| Modell | Prefiks | Grens | Satsgrense |
| ------------------ | ------ | ------------- | ---------------------- |
| `claude-sonnett-4.5` | `kr/` |**Ubegrenset**| Ingen rapportert daglig tak |
| `claude-haiku-4.5` | `kr/` |**Ubegrenset**| Ingen rapportert daglig tak |
| `claude-opus-4.6` | `kr/` |**Ubegrenset**| Siste Opus via Kiro |### 🟢 QODER MODELS (Free PAT via qodercli)
| Modell | Prefiks | Grens | Satsgrense |
| ------------------ | ------ | ------------- | --------------- |
| `kimi-k2-tenking` | `hvis/` |**Ubegrenset**| Ingen rapportert cap |
| `qwen3-coder-pluss` | `hvis/` |**Ubegrenset**| Ingen rapportert tak |
| `deepseek-r1` | `hvis/` |**Ubegrenset**| Ingen rapportert cap |
| `minimax-m2.1` | `hvis/` |**Ubegrenset**| Ingen rapportert tak |
| `kimi-k2` | `hvis/` |**Ubegrenset**| Ingen rapportert tak |
> Anbefalt tilkoblingsmetode:**Personal Access Token + `qodercli`**. Nettleser OAuth er
> eksperimentell og deaktivert som standard med mindre `QODER_OAUTH_*` miljøvariabler er konfigurert.### 🟡 QWEN MODELS (Device Code Auth)
| Modell | Prefiks | Grens | Satsgrense |
| ------------------ | ------ | ------------- | ------------------ |
| `qwen3-coder-pluss` | `qw/` |**Ubegrenset**| Ingen rapportert cap |
| `qwen3-coder-flash` | `qw/` |**Ubegrenset**| Ingen rapportert cap |
| `qwen3-coder-next` | `qw/` |**Ubegrenset**| Ingen rapportert tak |
| `vision-model` | `qw/` |**Ubegrenset**| Multimodal (bilder) |### 🟣 GEMINI CLI (Google OAuth)
| Modell | Prefiks | Begrensning | Satsgrense |
| -------------------------- | ------ | -------------------------- | ------------- |
| `gemini-3-flash-preview` | `gc/` |**180K tok/måned**+ 1K/dag | Månedlig tilbakestilling |
| `gemini-2.5-pro` | `gc/` | 180K/måned (delt basseng) | Høy kvalitet |### ⚫ NVIDIA NIM (Free API Key — build.nvidia.com)
| Nivå | Daglig grense | Satsgrense | Merknader |
| ---------- | ------------ | ----------- | -------------------------------------------------------------- |
| Gratis (Dev) | Ingen token cap |**~40 RPM**| 70+ modeller; overgang til rene takstgrenser medio 2025 |
Populære gratismodeller: `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-seek-instruct`/`deepseek-seek`/`### ⚪ CEREBRAS (Free API Key — inference.cerebras.ai)
| Nivå | Daglig grense | Satsgrense | Merknader |
| ---- | ------------------ | ---------------- | -------------------------------------------------- |
| Gratis |**1 millioner tokens/dag**| 60K TPM / 30 RPM | Verdens raskeste LLM-slutning; tilbakestilles daglig |
Gratis tilgjengelig: `llama-3.3-70b`, `llama-3.1-8b`, `deepseek-r1-destill-llama-70b`### 🔴 GROQ (Free API Key — console.groq.com)
| Nivå | Daglig grense | Satsgrense | Merknader |
| ---- | ------------- | ---------------- | ------------------------------------------ |
| Gratis |**14,4K RPD**| 30 RPM per modell | Ingen kredittkort; 429 på grense, ikke belastet |
Gratis tilgjengelig: `llama-3.3-70b-versatile`, `gemma2-9b-it`, `mixtral-8x7b`, `whisper-large-v3`### 🔴 LONGCAT AI (Free API Key — longcat.chat) 🆕
| Modell | Prefiks | Daglig gratis kvote | Merknader |
| ------------------------------ | ------ | ------------------ | ---------------------------- |
| `LongCat-Flash-Lite` | `lc/` |**50 millioner tokens**💥 | Største gratis kvote noensinne |
| `LongCat-Flash-Chat` | `lc/` | 500K tokens | Multi-turn chat |
| `LongCat-Flash-tenker` | `lc/` | 500K tokens | Begrunnelse / CoT |
| `LongCat-Flash-Thinking-2601` | `lc/` | 500K tokens | Jan 2026 versjon |
| `LongCat-Flash-Omni-2603` | `lc/` | 500K tokens | Multimodal |
> 100 % gratis mens du er i offentlig beta. Registrer deg på [longcat.chat](https://longcat.chat) med e-post eller telefon. Tilbakestilles daglig 00:00 UTC.### 🟢 POLLINATIONS AI (No API Key Required) 🆕
| Modell | Prefiks | Satsgrense | Leverandøren bak |
| ---------- | ------ | ---------- | ------------------ |
| `openai` | `pol/` | 1 krav/15s | GPT-5 |
| `claude` | `pol/` | 1 krav/15s | Antropiske Claude |
| `tvilling` | `pol/` | 1 krav/15s | Google Gemini |
| `deepseek` | `pol/` | 1 krav/15s | DeepSeek V3 |
| `llama` | `pol/` | 1 krav/15s | Meta Llama 4 speider |
| `mistral` | `pol/` | 1 krav/15s | Mistral AI |
> ✨**Null friksjon:**Ingen registrering, ingen API-nøkkel. Legg til pollineringsleverandøren med et tomt nøkkelfelt og det fungerer umiddelbart.### 🟠 CLOUDFLARE WORKERS AI (Free API Key — cloudflare.com) 🆕
| Nivå | Daglige nevroner | Tilsvarende bruk | Merknader |
| ---- | ------------- | ----------------------------------------------- | ---------------------------- |
| Gratis |**10 000**| ~150 LLM resp / 500s lyd / 15K innebygging | Global edge, 50+ modeller |
Populære gratismodeller: `@cf/meta/llama-3.3-70b-instruct`, `@cf/google/gemma-3-12b-it`, `@cf/openai/whisper-large-v3-turbo` (gratis lyd!), `@cf/qwen/qwen2.5-coder-15b-instruct`
> Krever API-token + konto-ID fra [dash.cloudflare.com](https://dash.cloudflare.com). Lagre konto-ID i leverandørinnstillingene.### 🟣 SCALEWAY AI (1M Free Tokens — scaleway.com) 🆕
| Nivå | Gratis kvote | Plassering | Merknader |
| ---- | ------------- | ------------ | ---------------------------------- |
| Gratis |**1 millioner tokens**| 🇫🇷 Paris, EU | Ingen kredittkort nødvendig innenfor grensene |
Gratis tilgjengelig: `qwen3-235b-a22b-instruct-2507` (Qwen3 235B!), `llama-3.1-70b-instruct`, `mistral-small-3.2-24b-instruct-2506`, `deepseek-v3-0324`
> EU/GDPR-kompatibel. Få API-nøkkel på [console.scaleway.com](https://console.scaleway.com).
>**💡 Den ultimate gratisstakken (11 leverandører, $0 for alltid):**
>
> ```
> Kiro (kr/) → Claude Sonnet/Haiku UBEGRENSET
> Qoder (hvis/) → kimi-k2-tenkning, qwen3-koder-pluss, deepseek-r1 UBEGRENSET
> LongCat Lite (lc/) → LongCat-Flash-Lite — 50 millioner tokens/dag 🔥
> Pollinasjoner (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — ingen nøkkel nødvendig
> Qwen (qw/) → qwen3-kodermodeller UBEGRENSET
> Gemini (gemini/) → Gemini 2.5 Flash — 1500 rekv/dag gratis
> Cloudflare AI (jf/) → 50+ modeller — 10K nevroner/dag
> Scaleway (scw/) → Qwen3 235B, Llama 70B — 1M gratis tokens (EU)
> Groq (groq/) → Lama/Gemma — 14,4K req/dag ultrarask
> NVIDIA NIM (nvidia/) → 70+ åpne modeller — 40 RPM for alltid
> Cerebras (cerebras/) → Lama/Qwen verdens raskeste — 1M tok/dag
> ```## 🎙️ Free Transcription Combo
> Transkriber hvilken som helst lyd/video for**$0**— Deepgram-emner med $200 gratis, AssemblyAI $50 reserve, Groq Whisper som ubegrenset nødbackup.
| Leverandør | Gratis kreditter | Beste modell | Satsgrense |
| ------------------ | ---------------------------- | -------------------------------------------- | ---------------------------- |
|**Deepgram**|**$200 gratis**(påmelding) | `nova-3` — beste nøyaktighet, 30+ språk | Ingen RPM-grense på gratis kreditter |
| 🔵**AssemblyAI**|**$50 gratis**(påmelding) | `universal-3-pro` — kapitler, sentiment, PII | Ingen RPM-grense på gratis kreditter |
| 🔴**Groq**|**Gratis for alltid**| `whisper-large-v3` — OpenAI Whisper | 30 RPM (hastighetsbegrenset) |
**Foreslått kombinasjon i `/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
Deretter i /dashboard/media →Transkripsjon-fanen: last opp hvilken som helst lyd- eller videofil → velg det kombinasjonsendepunktet → få transkripsjon i støttede formater.## 💡 Key Features
OmniRoute v2.0 er bygget som en operativ plattform, ikke bare en reléproxy.### 🆕 New — ClawRouter-Inspired Improvements (Mar 2026)
| Funksjon | Hva det gjør | |
|---|---|---|
| ⚡Grok-4 Fast Family | xAI-modeller til $0,20/$0,50/M — benchmarked 1143ms (30 % raskere enn Gemini 2.5 Flash) | |
| 🧠GLM-5 via Z.AI | 128K utdatakontekst, $0,5/1M — nyeste flaggskip fra GLM-familien | |
| 🔮MiniMax M2.5 | Resonnering + agentoppgaver til $0,30/1M — betydelig oppgradering fra M2.1 | |
| 🎯verktøy Calling Flag per modell | Per-modell toolCalling: true/false i registeret — AutoCombo hopper over ikke-verktøy-kompatible modeller |
|
| 🌍Flerspråklig hensiktsgjenkjenning | PT/ZH/ES/AR nøkkelord i AutoCombo scoring — bedre modellvalg for ikke-engelsk innhold | |
| 📊Referansedrevne fallbacks | Ekte p95-forsinkelse fra live-forespørsler feeds combo scoring — AutoCombo lærer av faktiske data | |
| 🔁Be om deduplisering | Innhold-hash-basert dedup-vindu – multi-agent trygt, forhindrer dupliserte belastninger | |
| 🔌Plugbar ruterstrategi | Utvidbart RouterStrategy-grensesnitt – legg til tilpasset rutinglogikk som plugins |
### 🚀 Previous v2.0.9+ — Playground, CLI Fingerprints & ACP |
| Funksjon | Hva det gjør | |
|---|---|---|
| 🎮Modell lekeplass | Dashboard-side for å teste hvilken som helst modell direkte — leverandør/modell/endepunktvelgere, Monaco Editor, streaming, avbryt, timing | |
| 🔏CLI Fingerprint Matching | Bestilling av topptekst/kropp per leverandør for å matche native CLI-signaturer – bytt per leverandør i Innstillinger > Sikkerhet.Din proxy-IP er bevart | |
| 🤝ACP Support (Agent Client Protocol) | CLI-agentoppdagelse (Codex, Claude, Goose, Gemini CLI, OpenClaw + 9 flere), prosessoppstarter, /api/acp/agents endepunkt |
|
| 🤖ACP Agents Dashboard | Feilsøking › Agenter-side — rutenett med 14 agenter med installasjonsstatus, versjon, tilpasset agentskjema for ethvert CLI-verktøy.OpenCode-brukere får en "Last ned opencode.json"-knapp som automatisk genererer en klar-til-bruk konfig med alle tilgjengelige modeller. | |
🔧Egendefinert modell apiFormat-ruting |
Egendefinerte modeller med apiFormat: "responses" rutes nå riktig til Responses API-oversetteren |
|
| 🏢Codex Workspace Isolering | Flere Codex-arbeidsområder per e-post — OAuth skiller tilkoblinger riktig etter arbeidsområde-ID | |
| 🔄Automatisk oppdatering av elektroner | Desktop-app ser etter oppdateringer + automatisk installering ved omstart | ### 🤖 Agent & Protocol Operations (v2.0) |
| Funksjon | Hva det gjør | |
|---|---|---|
| 🔧MCP-server (25 verktøy) | IDE/agent-verktøy via 3 transporter: stdio, SSE (/api/mcp/sse), Streamable HTTP (/api/mcp/stream). 18 kjerner + 3 minne + 4 ferdighetsverktøy |
|
| 🤝A2A-server (JSON-RPC + SSE) | Agent-til-agent oppgavekjøring med synkronisering og strømmeflyter | |
| 🧭Side for konsoliderte endepunkter | Fanebasert administrasjonsside med Endpoint Proxy, MCP, A2A og API Endpoints faner | |
| 🎚️Tjenesteaktiver/deaktiver brytere | PÅ/AV-brytere for MCP og A2A med innstillingsfasthet (standard: AV) | |
| 🛰️MCP Runtime Heartbeat | Reell prosessstatus (pid, oppetid, hjerteslagsalder, transport, omfangsmodus) | |
| 📋MCP Audit Trail | Filtrerbare revisjonslogger med suksess/fiasko og nøkkelattribusjon | |
| 🔐MCP Scope Enforcement | 10 granulære omfangstillatelser for kontrollert verktøytilgang | |
| 📡A2A Task Lifecycle Management | List/filtrer oppgaver, inspiser hendelser/artefakter, avbryt kjørende oppgaver | |
| 📋Agent Card Discovery | /.well-known/agent.json for automatisk oppdagelse av klient |
|
| 🧪Protocol E2E Test Sele | Ekte MCP SDK + A2A-klient flyter i test:protocols:e2e |
|
| ⚙️Operasjonskontroller | Bytt kombinasjon, påfør elastisitetsprofiler, tilbakestill brytere fra én kontrollflate | ### 🧠 Routing & Intelligence |
| Funksjon | Hva det gjør | |
|---|---|---|
| 🎯Smart 4-lags fallback | Automatisk rute: Abonnement → API-nøkkel → Billig → Gratis | |
| 📊Sanntidskvotesporing | Live tokenantall + tilbakestilt nedtelling per leverandør | |
| 🔄Formatoversettelse | OpenAI ↔ Claude ↔ Gemini ↔ Svar med skjemasikre konverteringer | |
| 👥Støtte for flere kontoer | Flere kontoer per leverandør med intelligent utvalg | |
| 🔄Auto Token Refresh | OAuth-tokens oppdateres automatisk med prøv på nytt | |
| 🎨Egendefinerte kombinasjoner | 9 balansestrategier + reservekjedekontroll | |
| 🌐Wildcard-ruter | leverandør/* dynamisk ruting |
|
| 🧠Tenker budsjettkontroller | Begrensninger for gjennomgang, automatisk, tilpasset og adaptiv resonnement | |
| 🔀Modellaliaser | Innebygd + tilpasset modellaliasing og migrasjonssikkerhet | |
| ⚡Bakgrunnsforringelse | Rut lavprioriterte bakgrunnsoppgaver til billigere modeller | |
| 🧪Task-Aware Smart Ruting | Auto-velg modell etter innholdstype (koding/visjon/analyse/oppsummering) | |
| 🔄A2A-agentarbeidsflyt | Deterministisk FSM-orkestrator for stateful multi-step agent henrettelser | |
| 🔀Adaptiv ruting | Dynamisk strategioverstyring basert på tokenvolum og promptkompleksitet | |
| 🎲Tilbydermangfold | Shannon entropi scoring balansering av auto-combo trafikkdistribusjon | |
| 💬Systemprompt-injeksjon | Globale atferdskontroller brukes konsekvent | |
| 📄Responses API-kompatibilitet | Full /v1/responses-støtte for Codex og avanserte agentarbeidsflyter |
### 🎵 Multi-Modal APIs |
| Funksjon | Hva det gjør | |
|---|---|---|
| 🖼️Bildegenerering | /v1/images/generations med sky og lokale backends |
|
| 📐Innbygging | /v1/embeddings for søk og RAG-rørledninger |
|
| 🎤Lydtranskripsjon | /v1/audio/transcriptions — 7 leverandører (Deepgram Nova 3, AssemblyAI, Groq Whisper, HuggingFace, ElevenLabs, OpenAI, Azure), automatisk språkdeteksjon, MP4/MP3/WAV-støtte |
|
| 🔊Tekst-til-tale | /v1/audio/speech — 10 leverandører (ElevenLabs, OpenAI, Deepgram, Cartesia, PlayHT, HuggingFace, Nvidia NIM, Inworld, Coqui, Tortoise) med riktige feilmeldinger |
|
| 🎬Videogenerering | /v1/videos/generations (ComfyUI + SD WebUI arbeidsflyter) |
|
| 🎵Musikkgenerasjon | /v1/music/generations (ComfyUI-arbeidsflyter) |
|
| 🛡️Moderasjoner | /v1/moderations sikkerhetssjekker |
|
| 🔀Omrangering | /v1/rerank for relevansscoring |
|
| 🔍Nettsøk🆕 | /v1/search — 5 leverandører (Serper, Brave, Perplexity, Exa, Tavily), 6500+ gratis/måned, auto-failover, cache |
### 🛡️ Resilience, Security & Governance |
| Funksjon | Hva det gjør | |
|---|---|---|
| 🔌Maksimalbrytere | Per modell tur/gjenoppretting med terskelkontroller | |
| 🎯Endepunktbevisste modeller | Egendefinerte modeller erklærer støttede endepunkter + API-format | |
| 🛡️Anti-tordenflokk | Mutex + semaforbeskyttelse ved forsøk på nytt/rate hendelser | |
| 🧠Semantisk + signaturbuffer | Kostnads-/forsinkelsesreduksjon med to hurtigbufferlag | |
| ⚡Be om idempotens | Duplisert beskyttelsesvindu | |
| 🔒TLS-fingeravtrykkspoofing | Nettleserlignende TLS-fingeravtrykk —reduserer botdeteksjon og kontoflagging | |
| 🔏CLI Fingerprint Matching | Matcher native CLI-forespørselssignaturer —reduserer utestengelsesrisiko mens proxy-IP bevares | |
| 🌐IP-filtrering | Tillatelsesliste/blokkeringslistekontroll for eksponerte distribusjoner | |
| 📊Redigerbare satsgrenser | Konfigurerbare grenser på globalt nivå/leverandørnivå med utholdenhet | |
| 📉Grasiøs nedbrytning | Fallbacks med flerlagskapasitet som beskytter kjernegatewayoperasjoner | |
| 📜Config Audit Trail | Diff-basert endringssporing forhindrer driftsdrift med enkle tilbakeføringer | |
| ⏳Provider Health Sync | Proaktiv token-utløpsovervåking som utløser varsler før autorisasjonsfeil | |
| 🚪Automatisk deaktiver utestengte kontoer | Driftsbryter forsegling permanent blokkerte token-kontoer automatisk | |
| 🔑API Key Management + Scoping | Sikker nøkkelutstedelse/rotasjon og modell/leverandørkontroller | |
| 👁️Scoped API Key Reveal🆕 | Opt-in gjenoppretting av API-nøkler via ALLOW_API_KEY_REVEAL |
|
🛡️Beskyttet /modeller |
Valgfri godkjenning og leverandørskjul for modellkatalog | ### 📊 Observability & Analytics |
| Funksjon | Hva det gjør | |
|---|---|---|
| 📝Forespørsel + proxy-logging | Full forespørsel/svar og proxy-logging | |
| 📉Strømde detaljerte logger🆕 | Rekonstruerer SSE-nyttelaststrømmer rent inn i brukergrensesnittet | |
| 📋Unified Logs Dashboard | Forespørsels-, proxy-, revisjons- og konsollvisninger på én side | |
| 🔍Be om telemetri | p50/p95/p99 ventetid og forespørselssporing | |
| 🏥Helse Dashboard | Oppetid, breaker-tilstander, lockouts, cachestatistikk | |
| 💰Kostnadssporing | Budsjettkontroller og prissetting per modell | |
| 📈Analytics-visualiseringer | Modell-/leverandørbruksinnsikt og trendvisninger | |
| 🧪Evalueringsramme | Gylden sett-testing med konfigurerbare kampstrategier | |
| 📡Live Diagnostics🆕 | Semantisk cache-bypass for nøyaktig combo live testing | ### ☁️ Deployment & Platform |
| Funksjon | Hva det gjør | |
|---|---|---|
| 🌐Distribuer hvor som helst | Localhost, VPS, Docker, Cloud-miljøer | |
| 🚇Cloudflare Tunnel🆕 | Ett-klikks Quick Tunnel-integrasjon fra dashbordet | |
| 🔑API-nøkkelmodellfiltrering | Native /v1/modeller-svar filtrert via tildelte bærerkontekstroller | |
| ⚡Smart Cache Bypass | Konfigurerbar TTL-heuristikk og tvungen gjenhentingskontroller | |
| 🔄Sikkerhetskopiering/gjenoppretting | Eksport/import og gjenopprettingsflyter | |
| 🧙Onboarding Wizard | Førstegangs veiledet oppsett | |
| 🔧CLI Tools Dashboard | Ett-klikks oppsett for populære kodeverktøy | |
| 🎮Modell lekeplass | Test hvilken som helst leverandør/modell/endepunkt fra dashbordet | |
| 🔏CLI Fingerprint Toggle | Fingeravtrykksmatching per leverandør i Innstillinger > Sikkerhet | |
| 🌐i18n (30 språk) | Fullt dashbord + støtte for dokumentspråk med RTL-dekning | |
| 🧹Slett alle modeller | Sletting av modellliste med ett klikk i leverandørdetaljer | |
| 👁️Sidefeltkontroller🆕 | Skjul komponenter og integrasjoner fra Utseendeinnstillinger | |
| 📋Utgavemaler | Standardiserte GitHub-maler for feil og funksjoner | |
| 📂Tilpasset datakatalog | DATA_DIR overstyring for lagringssted |
### 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
Når kvote, sats eller helse svikter, flytter OmniRoute automatisk til neste kandidat uten manuelt bytte.#### Protocol management that is visible and operable
- MCP + A2A kan oppdages i brukergrensesnitt og dokumenter (ikke skjult)
- Protokollstatus-APIer avslører live driftsdata (
/api/mcp/*,/api/a2a/*) - Dashboards inkluderer handlinger for dag-2 operasjoner (kombinasjonsveksler, tilbakestilling av brytere, kansellering av oppgaver)#### Translator + validation workflow
Oversetterområdet inkluderer:
-Lekeplass: be om transformasjonssjekker -Chattetester: full forespørsel/svar tur/retur -Testbenk: flere kofferter i en kjøring -Live Monitor: trafikkvisning i sanntid
Pluss protokollvalidering med ekte klienter via npm run test:protocols:e2e.
📖MCP Server README— Verktøyreferanse, IDE-konfigurasjoner og klienteksempler
📖A2A Server README— Ferdigheter, JSON-RPC-metoder, strømming og oppgavelivssyklus## 🧪 Evaluations (Evals)
OmniRoute inkluderer et innebygd evalueringsrammeverk for å teste LLM-responskvaliteten mot et gyldent sett. Få tilgang til den viaAnalytics → Evalsi dashbordet.### Built-in Golden Set
Det forhåndsinnlastede "OmniRoute Golden Set" inneholder testtilfeller for:
- Hilsen, matematikk, geografi, kodegenerering
- Samsvar med JSON-format, oversettelse, generering av markdown
- Sikkerhetsavslag (skadelig innhold), telling, boolsk logikk### Evaluation Strategies
| Strategi | Beskrivelse | Eksempel | |
|---|---|---|---|
nøyaktig |
Utdata må samsvare nøyaktig med | "4" |
|
inneholder |
Utdata må inneholde understreng (uavhengig av store og små bokstaver) | "Paris" |
|
regex |
Utdata må samsvare med regulært uttrykksmønster | "1.*2.*3" |
|
egendefinert |
Egendefinert JS-funksjon returnerer true/false | (output) => output.length > 10 |
--- |
📖 Setup Guide
Protocol Setup (MCP + A2A)
Start MCP-transport i stdio-modus:```bash omniroute --mcp
Anbefalt valideringsflyt:
1. Koble til MCP-klienten over stdio.
2. Kjør `omniroute_get_health`.
3. Kjør `omniroute_list_combos`.
4. Åpne `/dashboard/mcp` for å bekrefte hjerteslag, aktivitet og revisjon.
Nyttige APIer for automatisering:
- `GET /api/mcp/status`
- `GET /api/mcp/tools`
- `GET /api/mcp/revisjon`
- `GET /api/mcp/audit/stats`</details>
<detaljer>
<summary><b>🤝 A2A-oppsett (Agent2Agent)</b></summary>
Oppdag agenten:```bash
curl http://localhost:20128/.well-known/agent.json
Send en oppgave:```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 livssyklus:
- `GET /api/a2a/status`
- `GET /api/a2a/oppgaver`
- `GET /api/a2a/tasks/:id`
- `POST /api/a2a/tasks/:id/cancel`
Driftsgrensesnitt:
- `/dashboard/a2a` for observerbarhet for oppgave/tilstand/strøm og røykhandlinger</details>
<detaljer>
<summary><b>🧪 End-to-end protokollvalidering</b></summary>
Valider begge protokollene med ekte klienter:```bash
npm run test:protocols:e2e
Dette bekrefter:
- MCP SDK-klient koble/liste/ringe
- A2A-oppdagelse/send/stream/hent/avbryt
- Krysssjekk data i MCP-revisjon og A2A-oppgavestyrings-APIer
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
**Profftips:**Bruk Opus for komplekse oppgaver, Sonnet for hastighet. OmniRoute sporer kvote per modell!### 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)
Hver Codex-konto har nå policy-veksler i Dashboard -> Providers:
5h(PÅ/AV): håndhev 5-timers vindusterskelpolicyen.- "Ukentlig" (PÅ/AV): håndhev terskelpolicyen for ukentlige vindu.
- Terskeladferd: når et aktivert vindu når >=90 % bruk, hoppes den kontoen over.
- Rotasjonsatferd: OmniRoute ruter automatisk til neste kvalifiserte Codex-konto.
- Tilbakestill atferd: når leverandøren 'resetAt'-tiden går, blir kontoen automatisk kvalifisert igjen.
Scenarier:
5h PÅ+Ukentlig PÅ: kontoen hoppes over når et av vinduene når terskelen.5h OFF+Weekly ON: bare ukentlig bruk kan blokkere kontoen.5h PÅ+Ukentlig AV: bare 5-timers bruk kan blokkere kontoen.resetAtbestått: kontoen går automatisk inn i rotasjonen på nytt (ingen manuell reaktivering).### 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
**Mest verdi:**Enormt gratis nivå! Bruk dette før betalte nivåer.### 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
- Registrer deg: build.nvidia.com
- Få gratis API-nøkkel (1000 slutningspoeng inkludert)
- Dashboard → Legg til leverandør → NVIDIA NIM:
- API-nøkkel:
nvapi-din-nøkkel
- API-nøkkel:
Modeller:nvidia/llama-3.3-70b-instruct, nvidia/mistral-7b-instruct og 50+ flere
**Profftips:**OpenAI-kompatibel API — fungerer sømløst med OmniRoutes formatoversettelse!### DeepSeek
- Registrer deg: platform.deepseek.com
- Få API-nøkkel
- Dashboard → Legg til leverandør → DeepSeek
Modeller:deepseek/deepseek-chat, deepseek/deepseek-coder### Groq (Free Tier Available!)
- Registrer deg: console.groq.com
- Få API-nøkkel (gratis nivå inkludert)
- Dashboard → Legg til leverandør → Groq
Modeller:groq/llama-3.3-70b, groq/mixtral-8x7b
**Profftips:**Ultrarask slutning — best for sanntidskoding!### OpenRouter (100+ Models)
- Registrer deg: openrouter.ai
- Få API-nøkkel
- Dashboard → Legg til leverandør → OpenRouter
**Modeller:**Få tilgang til 100+ modeller fra alle store leverandører gjennom én enkelt API-nøkkel.
Dashboard-atferd:OpenRouter-modeller administreres fraTilgjengelige modeller. Manuell legg til, import og automatisk synkronisering oppdaterer alle den samme listen.
- Registrer deg: Zhipu AI
- Få API-nøkkel fra Coding Plan
- Dashboard → Legg til API-nøkkel:
- Leverandør:
glm - API-nøkkel:
din-nøkkel
- Leverandør:
Bruk:glm/glm-4.7
**Profftips:**Coding Plan tilbyr 3× kvote til 1/7 kostnad! Tilbakestill daglig 10:00.### MiniMax M2.1 (5h reset, $0.20/1M)
- Registrer deg: MiniMax
- Få API-nøkkel
- Dashboard → Legg til API-nøkkel
Bruk:minimax/MiniMax-M2.1
**Profftips:**Billigste alternativet for lang kontekst (1M tokens)!### Kimi K2 ($9/month flat)
- Abonner: Moonshot AI
- Få API-nøkkel
- Dashboard → Legg til API-nøkkel
Bruk:kimi/kimi-latest
**Profftips:**Fast $9/måned for 10M tokens = $0,90/1M effektiv kostnad!
Dashboard → Connect Qoder
→ Qoder OAuth login
→ Unlimited usage
Models:
if/kimi-k2-thinking
if/qwen3-coder-plus
if/glm-4.7
if/minimax-m2
if/deepseek-r1
Qwen (4 FREE models via Device Code)
Dashboard → Connect Qwen
→ Device code authorization
→ Unlimited usage
Models:
qw/qwen3-coder-plus
qw/qwen3-coder-flash
Kiro (Claude FREE)
Dashboard → Connect Kiro
→ AWS Builder ID or Google/GitHub
→ Unlimited usage
Models:
kr/claude-sonnet-4.5
kr/claude-haiku-4.5
Dashboard → Combos → Create New
Name: premium-coding
Models:
1. cc/claude-opus-4-6 (Subscription primary)
2. glm/glm-4.7 (Cheap backup, $0.6/1M)
3. minimax/MiniMax-M2.1 (Cheapest fallback, $0.20/1M)
Use in CLI: premium-coding
Example 2: Free-Only (Zero Cost)
Name: free-combo
Models:
1. gc/gemini-3-flash-preview (180K free/month)
2. if/kimi-k2-thinking (unlimited)
3. qw/qwen3-coder-plus (unlimited)
Cost: $0 forever!
Settings → Models → Advanced:
OpenAI API Base URL: http://localhost:20128/v1
OpenAI API Key: [from OmniRoute dashboard]
Model: cc/claude-opus-4-6
Claude Code
BrukCLI Tools-siden i dashbordet for ett-klikks konfigurasjon, eller rediger ~/.claude/settings.json manuelt.### Codex CLI
export OPENAI_BASE_URL="http://localhost:20128"
export OPENAI_API_KEY="your-omniroute-api-key"
codex "your prompt"
OpenClaw
Alternativ 1 – Dashboard (anbefalt):``` Dashboard → CLI Tools → OpenClaw → Select Model → Apply
**Alternativ 2 — Manuell:**Rediger `~/.openclaw/openclaw.json`:```json
{
"models": {
"providers": {
"omniroute": {
"baseUrl": "http://127.0.0.1:20128/v1",
"apiKey": "sk_omniroute",
"api": "openai-completions"
}
}
}
}
**Merk:**OpenClaw fungerer bare med lokale OmniRoute. Bruk
127.0.0.1i stedet forlocalhostfor å unngå problemer med IPv6-oppløsning.### 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
**Trinn 1:**Legg til OmniRoute som en tilpasset leverandør:```bash opencode /connect
Select "Other" → Enter ID: "omniroute" → Enter your OmniRoute API key
**Trinn 2:**Opprett/rediger `opencode.json` i prosjektroten din:```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)" }
}
}
}
}
**Trinn 3:**Velg modellen i OpenCode:```bash /models
Select any OmniRoute model from the list
>**Tips:**Legg til en hvilken som helst modell som er tilgjengelig i OmniRoute `/v1/models`-endepunktet til `modeller`-delen. Bruk formatet `provider/model-id` fra OmniRoute-dashbordet.</details>
---
## Feilsøking
<detaljer>
<summary><b>Klikk for å utvide feilsøkingsveiledningen</b></summary>
**«Språkmodellen ga ikke meldinger»**
- Leverandørkvoten er oppbrukt → Sjekk dashboardkvotesporing
- Løsning: Bruk kombinasjonsalternativ eller bytt til et billigere nivå
**Satsbegrensning**
- Abonnementskvote ut → Fallback til GLM/MiniMax
- Legg til kombinasjon: `cc/claude-opus-4-6 → glm/glm-4.7 → if/kimi-k2-thinking`
**OAuth-token er utløpt**
- Automatisk oppdatering av OmniRoute
- Hvis problemene vedvarer: Dashboard → Leverandør → Koble til på nytt
**Høye kostnader**
- Sjekk bruksstatistikk i Dashboard → Kostnader
- Bytt primærmodell til GLM/MiniMax
- Bruk gratis nivå (Gemini CLI, Qoder) for ikke-kritiske oppgaver
**Dashboard/API-porter er feil**
- `PORT` er den kanoniske basisporten (og API-porten som standard)
- `API_PORT` overstyrer bare OpenAI-kompatibel API-lytter
- `DASHBOARD_PORT` overstyrer kun dashboard/Next.js-lytter
– Angi `NEXT_PUBLIC_BASE_URL` til dashbordet/den offentlige nettadressen din (for OAuth-tilbakeringing)
**Skysynkroniseringsfeil**
- Bekreft at "BASE_URL" peker på den kjørende forekomsten
- Bekreft `CLOUD_URL` peker til det forventede skyendepunktet
- Hold `NEXT_PUBLIC_*`-verdier på linje med verdiene på tjenersiden
**Første pålogging fungerer ikke**
- Sjekk `INITIAL_PASSWORD` i `.env`
- Hvis det ikke er angitt, er reservepassordet "123456".
**Ingen forespørselslogger**
- Forespørselsartefakter skrives til `DATA_DIR/call_logs/` som én JSON-fil per forespørsel
- Aktiver pipeline-fangst fra Dashboard → Logger → Forespørselslogger hvis du trenger detaljerte nyttelaster per trinn
- Angi `APP_LOG_TO_FILE=true` hvis du også vil ha applikasjonskonsolllogger i `logs/application/app.log`
– Juster «APP_LOG_MAX_FILE_SIZE», «APP_LOG_RETENTION_DAYS», «APP_LOG_MAX_FILES» og «CALL_LOG_MAX_ENTRIES» etter behov
**Test viser «Ugyldig» for OpenAI-kompatible leverandører**
- Mange leverandører avslører ikke et `/modeller`-endepunkt
- OmniRoute v1.0.6+ inkluderer reservevalidering via chatfullføringer
- Sørg for at basis-URL inkluderer `/v1`-suffiks### 🔐 OAuth on a Remote Server
<a name="oauth-on-a-remote-server"></a>
<a name="oauth-em-server-remoto"></a>
>**⚠️ Viktig for brukere som kjører OmniRoute på en VPS, Docker eller hvilken som helst ekstern server**#### Why does Antigravity / Gemini CLI OAuth fail on remote servers?
**Antigravity**og**Gemini CLI**-leverandørene bruker**Google OAuth 2.0**. Google krever at «redirect_uri» i OAuth-flyten nøyaktig samsvarer med en av de forhåndsregistrerte URIene i appens Google Cloud Console.
OAuth-legitimasjonen som er samlet i OmniRoute er registrert**kun for `localhost`**. Når du får tilgang til OmniRoute på en ekstern server (f.eks. `https://omniroute.myserver.com`), avviser Google autentiseringen med:```
Error 400: redirect_uri_mismatch
Solution: Configure your own OAuth credentials
Du må opprette enOAuth 2.0 Client IDi Google Cloud Console med serverens URI.#### Step-by-step
1. Åpne Google Cloud Console
Gå til: https://console.cloud.google.com/apis/credentials
2. Opprett en ny OAuth 2.0-klient-ID
- Klikk**"+ Opprett legitimasjon"→"OAuth-klient-ID"**
- Søknadstype:"Nettapplikasjon"
- Navn: alt du liker (f.eks. "OmniRoute Remote")
3. Legg til autoriserte omdirigerings-URIer
I feltet**«Authorized redirect URIs»**legger du til:``` https://your-server.com/callback
> Erstatt `din-server.com` med serverens domene eller IP (inkluder porten om nødvendig, f.eks. `http://45.33.32.156:20128/callback`).
**4. Lagre og kopier legitimasjonen**
Etter oppretting vil Google vise**klient-ID**og**klienthemmelighet**.
**5. Angi miljøvariabler**
I `.env` (eller Docker-miljøvariabler):```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 OmniRoutepå nytt```bash
npm:
npm run dev
Docker:
docker restart omniroute
**7. Prøv å koble til på nytt**
Dashboard → Leverandører → Antigravity (eller Gemini CLI) → OAuth
Google vil nå omdirigere riktig til `https://din-server.com/callback`.---
#### Temporary workaround (without custom credentials)
Hvis du ikke vil sette opp din egen legitimasjon akkurat nå, kan du fortsatt bruke den**manuelle URL-flyten**:
1. OmniRoute åpner Googles autorisasjons-URL
2. Etter godkjenning prøver Google å omdirigere til `localhost` (som mislykkes på den eksterne serveren)
3.**Kopiér hele nettadressen**fra nettleserens adressefelt (selv om siden ikke lastes inn)
4. Lim inn den URL-en i feltet vist i OmniRoute-tilkoblingsmodalen
5. Klikk på**"Koble til"**
> Dette fungerer fordi autorisasjonskoden i URL-en er gyldig uavhengig av om omdirigeringssiden er lastet.---
<detaljer>
<summary><b>🇧🇷 Versão em Português</b></summary>#### Por que o OAuth do Antigravity / Gemini CLI falha em servidores remotos?
Os testedores**Antigravity**og**Gemini CLI**usam**Google OAuth 2.0**for autenticação. O Google exige que a `redirect_uri` usada no fluxo OAuth seja**exatamente**uma das URIs pre-cadastradas no Google Cloud Console do aplicativo.
Som credenciais OAuth embutidas no OmniRoute estão cadastradas**apenas para `localhost`**. Quando você acessa o OmniRoute em um servidor remoto (eks: `https://omniroute.meuservidor.com`), o Google avviser en autenticação com:```
Error 400: redirect_uri_mismatch
Solução: Configure suas próprias credenciais OAuth
Você presa criar umOAuth 2.0 Client IDno Google Cloud Console com en URI for seu service.#### Passo a passo
1. Tilgang til Google Cloud Console
Abra: https://console.cloud.google.com/apis/credentials
2. Crie um novo OAuth 2.0 Client ID
- Klikk dem**"+ Opprett legitimasjon"→"OAuth-klient-ID"**
- Tipo de aplicativo:"Nettapplikasjon"
- Navn: escolha qualquer nome (eks:
OmniRoute Remote)
3. Adicione som autorisert omdirigerings-URI
Ingen campo**"Authorized redirect URIs"**, adicione:``` https://seu-servidor.com/callback
> Substitua `seu-servidor.com` pelo domínio eller IP do seu servidor (inkludert en porta se necessário, eks: `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**
No seu `.env` (ou nas 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 → Leverandører → Antigravity (ou Gemini CLI) → OAuth
Agora o Google redirecionará corretamente para `https://seu-servidor.com/callback` og autenticação funcionará.---
#### Workaround temporário (sem configurar credenciais 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 fra autorização til Google
2. Após você autorizar, o Google tentará redirecionar for `localhost` (que falha no servidor remoto)
3.**Kopier en URL fullført**da barra de endereço do seu nettleseren (mesmo que a página não carregue)
4. Cole essa URL no campo que aparece no modal de conexão do OmniRoute
5. Klikk på**"Koble til"**
> Este workaround funciona porque or código de autorização na URL é válido independente do redirect ter carregado or não.</details>
---
</details>
## 🛠️ Tech Stack
<detaljer>
<summary><b>Klikk for å utvide teknisk stackdetaljer</b></summary>
-**Kjøretid**: Node.js 18–22 LTS (⚠️ Node.js 24+ er**ikke støttet**— «better-sqlite3» native binærfiler er inkompatible)
-**Språk**: TypeScript 5.9 —**100 % TypeScript**på tvers av `src/` og `open-sse/` (null `noen` i kjernemoduler siden v2.0)
-**Rammeverk**: Next.js 16 + React 19 + Tailwind CSS 4
-**Database**: LowDB (JSON) + SQLite (domenetilstand + proxy-logger + MCP-revisjon + rutingbeslutninger)
-**Skjemaer**: Zod (MCP-verktøy I/O-validering, API-kontrakter)
-**Protokoller**: MCP (stdio/HTTP) + A2A v0.3 (JSON-RPC 2.0 + SSE)
-**Strøming**: Server-sendte hendelser (SSE)
-**Auth**: OAuth 2.0 (PKCE) + JWT + API-nøkler + MCP-omfanget autorisasjon
-**Test**: Node.js testløper + Vitest (900+ tester inkludert enhet, integrasjon, E2E)
-**CI/CD**: GitHub-handlinger (automatisk npm-publisering + Docker Hub ved utgivelse)
-**Nettsted**: [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**: Strømbryter, eksponentiell backoff, anti-trdnende flokk, TLS-spoofing, auto-combo selvhelbredelse</details>
---
## Dokumentasjon
| Dokument | Beskrivelse |
| ------------------------------------------------------ | ---------------------------------------------------------- |
| [Brukerveiledning](docs/USER_GUIDE.md) | Leverandører, kombinasjoner, CLI-integrasjon, distribusjon |
| [API-referanse](docs/API_REFERENCE.md) | Alle endepunkter med eksempler |
| [MCP-server](open-sse/mcp-server/README.md) | 16 MCP-verktøy, IDE-konfigurasjoner, Python/TS/Go-klienter |
| [A2A Server](src/lib/a2a/README.md) | JSON-RPC 2.0-protokoll, ferdigheter, streaming, oppgavehåndtering |
| [Auto-combo Engine](docs/auto-combo.md) | 6-faktor scoring, moduspakker, selvhelbredende |
| [Feilsøking](docs/TROUBLESHOOTING.md) | Vanlige problemer og løsninger |
| [Arkitektur](docs/ARCHITECTURE.md) | Systemarkitektur og innvendig |
| [Bidrar](CONTRIBUTING.md) | Utviklingsoppsett og retningslinjer |
| [OpenAPI Spec](docs/openapi.yaml) | OpenAPI 3.0-spesifikasjon |
| [Sikkerhetspolicy](SECURITY.md) | Sårbarhetsrapportering og sikkerhetspraksis |
| [VM-distribusjon](docs/VM_DEPLOYMENT_GUIDE.md) | Komplett guide: VM + nginx + Cloudflare-oppsett |
| [Funksjonsgalleri](docs/FEATURES.md) | Visuell dashbordomvisning med skjermbilder |
| [Utgivelsessjekkliste](docs/RELEASE_CHECKLIST.md) | Valideringstrinn før utgivelse |---
## 🗺️ Roadmap
OmniRoute har**210+ funksjoner planlagt**på tvers av flere utviklingsfaser. Her er nøkkelområdene:
| Kategori | Planlagte funksjoner | Høydepunkter |
| ------------------------------ | ---------------- | ---------------------------------------------------------------------------------------------- |
| 🧠**Routing og intelligens**| 25+ | Ruting med lavest ventetid, tag-basert ruting, forhåndskontroll av kvoter, valg av P2C-konto |
| 🔒**Sikkerhet og overholdelse**| 20+ | SSRF-herding, tilsløring av legitimasjon, hastighetsgrense per endepunkt, styringsnøkkelomfang |
| 📊**Observerbarhet**| 15+ | OpenTelemetry-integrasjon, kvoteovervåking i sanntid, kostnadssporing per modell |
| 🔄**Tilbyderintegrasjoner**| 20+ | Dynamisk modellregister, leverandørnedkjøling, multi-konto Codex, Copilot-kvoteparsing |
| ⚡**Ytelse**| 15+ | Dobbelt hurtigbufferlag, promptbuffer, svarbuffer, streaming keepalive, batch API |
| 🌐**Økosystem**| 10+ | WebSocket API, config hot-reload, distribuert config store, kommersiell modus |### 🔜 Coming Soon
- 🔗**OpenCode Integration**— Innebygd leverandørstøtte for OpenCode AI-kodings-IDE
- 🔗**TRAE-integrasjon**— Full støtte for utviklingsrammeverket for TRAE AI
- 📦**Batch API**— Asynkron batchbehandling for bulkforespørsler
- 🎯**Tag-basert ruting**— Ruteforespørsler basert på tilpassede tagger og metadata
- 💰**Laveste kostnadsstrategi**— Velg automatisk den billigste tilgjengelige leverandøren
> 📝 Full funksjonsspesifikasjoner tilgjengelig i [`docs/new-features/`](docs/new-features/) (217 detaljerte spesifikasjoner)---
## 👥 Contributors
[](https://github.com/diegosouzapw/OmniRoute/graphs/contributors)
### How to Contribute
1. Fordel depotet
2. Lag din funksjonsgren (`git checkout -b feature/amazing-feature`)
3. Overfør endringene dine (`git commit -m 'Legg til fantastisk funksjon'`)
4. Skyv til grenen (`git push origin feature/amazing-feature`)
5. Åpne en pull-forespørsel
Se [CONTRIBUTING.md](CONTRIBUTING.md) for detaljerte retningslinjer.### 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
Spesiell takk til**9routeravdecolua**– det originale prosjektet som inspirerte denne gaffelen. OmniRoute bygger på det utrolige grunnlaget med tilleggsfunksjoner, multimodale APIer og en full TypeScript-omskriving.
Spesiell takk til**CLIProxyAPI**— den originale Go-implementeringen som inspirerte denne JavaScript-porten.---
Lisens
MIT-lisens - se LISENS for detaljer.---









