Files
OmniRoute/docs/i18n/no/README.md

110 KiB
Raw Blame History

🚀 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

OmniRoute Dashboard

📸 Dashboard Preview

Klikk for å se skjermbilder av oversikten
Side Skjermbilde
Tilbydere Providers
Komboer Combos
Analyse Analytics
Helse Helse
Oversetter Translator
Innstillinger Settings
CLI-verktøy CLI Tools
Brukslogger Usage
Endepunkter Endpoints

🤖 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
OpenClaw

205K NanoBot
NanoBot

20,9K PicoClaw
PicoClaw

14,6K ZeroClaw
ZeroClaw

9,9K IronClaw
IronClaw

2.1K OpenCode
OpenCode

106K Codex CLI
Codex CLI

60,8K Claude Code
Claude Code

67,3K Gemini CLI
Gemini CLI

94,7K Kilokode
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 ($2050/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 $20200/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 $20200 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"

  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 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

  1. Start MCP transport (omniroute --mcp) for tool-driven operations
  2. Run A2A tasks via message/send and message/stream
  3. Observe via /dashboard/endpoint (MCP and A2A tabs)
  4. 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 -g etter installasjon for å aktivere native build-skript som kreves av better-sqlite3 og @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."}]}}'
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
Ugyldig Linux (`xbps-src`-mal)

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 TunnelDashboard → 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=quic eller auto hvis 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 stop bør få fullføres slik at OmniRoute kan sjekke de siste endringene tilbake til storage.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/cloudflared hvis 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/mediaTranskripsjon-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)

🧩 MCP-oppsett (Model Context Protocol)

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
💳 Abonnementsleverandører### Claude Code (Pro/Max)
Dashboard → Providers → Connect Claude Code
→ OAuth login → Auto token refresh
→ 5-hour + weekly quota tracking

Models:
  cc/claude-opus-4-6
  cc/claude-sonnet-4-5-20250929
  cc/claude-haiku-4-5-20251001

**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.
  • resetAt bestå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
🔑 API nøkkelleverandører### NVIDIA NIM (FREE developer access — 70+ models)
  1. Registrer deg: build.nvidia.com
  2. Få gratis API-nøkkel (1000 slutningspoeng inkludert)
  3. Dashboard → Legg til leverandør → NVIDIA NIM:
    • API-nøkkel: nvapi-din-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

  1. Registrer deg: platform.deepseek.com
  2. Få API-nøkkel
  3. Dashboard → Legg til leverandør → DeepSeek

Modeller:deepseek/deepseek-chat, deepseek/deepseek-coder### Groq (Free Tier Available!)

  1. Registrer deg: console.groq.com
  2. Få API-nøkkel (gratis nivå inkludert)
  3. Dashboard → Legg til leverandør → Groq

Modeller:groq/llama-3.3-70b, groq/mixtral-8x7b

**Profftips:**Ultrarask slutning — best for sanntidskoding!### OpenRouter (100+ Models)

  1. Registrer deg: openrouter.ai
  2. Få API-nøkkel
  3. 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.

💰 Billige leverandører (backup)### GLM-4.7 (Daily reset, $0.6/1M)
  1. Registrer deg: Zhipu AI
  2. Få API-nøkkel fra Coding Plan
  3. Dashboard → Legg til API-nøkkel:
    • Leverandør: glm
    • API-nøkkel: din-nøkkel

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)

  1. Registrer deg: MiniMax
  2. Få API-nøkkel
  3. Dashboard → Legg til API-nøkkel

Bruk:minimax/MiniMax-M2.1

**Profftips:**Billigste alternativet for lang kontekst (1M tokens)!### Kimi K2 ($9/month flat)

  1. Abonner: Moonshot AI
  2. Få API-nøkkel
  3. Dashboard → Legg til API-nøkkel

Bruk:kimi/kimi-latest

**Profftips:**Fast $9/måned for 10M tokens = $0,90/1M effektiv kostnad!

🆓 GRATIS Leverandører (Emergency Backup)### Qoder (5 FREE models via OAuth)
Dashboard → Connect Qoder
→ Qoder OAuth login
→ Unlimited usage

Models:
  if/kimi-k2-thinking
  if/qwen3-coder-plus
  if/glm-4.7
  if/minimax-m2
  if/deepseek-r1

Qwen (4 FREE models via Device Code)

Dashboard → Connect Qwen
→ Device code authorization
→ Unlimited usage

Models:
  qw/qwen3-coder-plus
  qw/qwen3-coder-flash

Kiro (Claude FREE)

Dashboard → Connect Kiro
→ AWS Builder ID or Google/GitHub
→ Unlimited usage

Models:
  kr/claude-sonnet-4.5
  kr/claude-haiku-4.5
🎨 Lag kombinasjoner### Example 1: Maximize Subscription → Cheap 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

Example 2: Free-Only (Zero Cost)

Name: free-combo
Models:
  1. gc/gemini-3-flash-preview (180K free/month)
  2. if/kimi-k2-thinking (unlimited)
  3. qw/qwen3-coder-plus (unlimited)

Cost: $0 forever!
🔧 CLI-integrasjon### Cursor 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

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.1 i stedet for localhost for å 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 1822 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

[![Contributors](https://contrib.rocks/image?repo=diegosouzapw/OmniRoute&max=100&columns=20&anon=1)](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

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.---

Built with ❤️ for developers who code 24/7
omniroute.online