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

111 KiB
Raw Blame History

🚀 OmniRoute — The Free AI Gateway (Svenska)

🌐 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 universella API-proxy — en slutpunkt, 60+ leverantörer, noll driftstopp. Nu medMCP Server (25 verktyg),A2A Protocol,Memory/Skills SystemsochElectron Desktop App.

Slutförda chattar ‱ InbĂ€ddningar ‱ Bildgenerering ‱ Video ‱ Musik ‱ Ljud ‱ Omrankning ‱Webbsökning‱ MCP-server ‱ A2A-protokoll ‱ 100 % TypeScript---

🌐TillgĂ€nglig pĂ„:đŸ‡ș🇾 engelska | đŸ‡§đŸ‡· PortuguĂȘs (Brasilien) | đŸ‡Ș🇾 Español | đŸ‡«đŸ‡· Français | 🇼đŸ‡č Italiano | đŸ‡·đŸ‡ș РуссĐșĐžĐč | 🇹🇳 äž­æ–‡ (çź€äœ“) | đŸ‡©đŸ‡Ș tyska | 🇼🇳 à€čà€żà€šà„à€Šà„€ | đŸ‡č🇭 àč„àž—àžą | đŸ‡ș🇩 ĐŁĐșŃ€Đ°Ń—ĐœŃŃŒĐșа | 🇾🇩 Ű§Ù„ŰčŰ±ŰšÙŠŰ© | đŸ‡ŻđŸ‡” æ—„æœŹèȘž | đŸ‡»đŸ‡ł Tiáșżng Việt | 🇧🇬 БългарсĐșĐž | đŸ‡©đŸ‡° Dansk | đŸ‡«đŸ‡ź Suomi | đŸ‡źđŸ‡± ŚąŚ‘ŚšŚ™ŚȘ | 🇭đŸ‡ș Magyar | đŸ‡źđŸ‡© Bahasa Indonesia | đŸ‡°đŸ‡· 한ꔭ얎 | đŸ‡ČđŸ‡Ÿ Bahasa Melayu | đŸ‡łđŸ‡± Nederlands | 🇳🇮 norska | đŸ‡”đŸ‡č PortuguĂȘs (Portugal) | đŸ‡·đŸ‡Ž RomĂąnă | đŸ‡”đŸ‡± Polski | 🇾🇰 Slovenčina | 🇾đŸ‡Ș Svenska | đŸ‡”đŸ‡­ filippinska | 🇹🇿 ČeĆĄtina---

đŸ–Œïž Main Dashboard

OmniRoute Dashboard

📾 Dashboard Preview

Klicka för att se skÀrmdumpar frÄn instrumentpanelen
Sida SkÀrmdump
Leverantörer Providers
Kombos Combos
Analytik Analytics
HĂ€lsa HĂ€lsa
ÖversĂ€ttare ÖversĂ€ttare
InstÀllningar Settings
CLI-verktyg CLI-verktyg
AnvÀndningsloggar AnvÀndning
Slutpunkter Endpoints

đŸ€– Free AI Provider for your favorite coding agents

Anslut alla AI-drivna IDE- eller CLI-verktyg via OmniRoute — gratis API-gateway för obegrĂ€nsad kodning.

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

⭐ 15,5K

📡 Alla agenter ansluter via http://localhost:20128/v1 eller http://cloud.omniroute.online/v1 — en konfiguration, obegrĂ€nsade modeller och kvot---

đŸ€” Why OmniRoute?

Sluta slösa pengar och nÄ grÀnser:

  • Prenumerationskvoten löper ut oanvĂ€nd varje mĂ„nad
  • PrisgrĂ€nser stoppar dig mellankodning
  • Dyra API:er ($20-50/mĂ„nad per leverantör)
  • Manuellt byte mellan leverantörer

OmniRoute löser detta:

  • ✅Maximera prenumerationer- SpĂ„ra kvot, anvĂ€nd varje bit innan Ă„terstĂ€llning
  • ✅Automatisk reserv- Prenumeration → API-nyckel → Billigt → Gratis, noll driftstopp
  • ✅Multi-konto- Round-robin mellan konton per leverantör
  • ✅Universal- Fungerar med Claude Code, Codex, Gemini CLI, Cursor, Cline, OpenClaw, vilket CLI-verktyg som helst---

📧 Support

💬GĂ„ med i vĂ„r community!WhatsApp Group — FĂ„ hjĂ€lp, dela tips och hĂ„ll dig uppdaterad.

-Webbplats: omniroute.online -GitHub: github.com/diegosouzapw/OmniRoute -Problem: github.com/diegosouzapw/OmniRoute/issues -WhatsApp: Community Group -Bidrar: Se CONTRIBUTING.md, öppna en PR eller vĂ€lj ett "bra första nummer" -Original Project: 9router av decolua### 🐛 Reporting a Bug?

NÀr du öppnar ett problem, kör kommandot systeminfo och bifoga den genererade filen:```bash npm run system-info


Detta genererar en `system-info.txt` med din Node.js-version, OmniRoute-version, OS-detaljer, installerade CLI-verktyg (qoder, gemini, claude, codex, antigravity, droid, etc.), Docker/PM2-status och systempaket - allt vi behöver för att snabbt reproducera ditt problem. Bifoga filen direkt till ditt GitHub-problem.---

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

>**Varje utvecklare som anvĂ€nder AI-verktyg möter dessa problem dagligen.**OmniRoute byggdes för att lösa dem alla — frĂ„n kostnadsöverskridanden till regionala block, frĂ„n trasiga OAuth-flöden till protokolloperationer och observerbarhet i företag.

<detaljer>
<summary><b>💾 1. "Jag betalar för en dyr prenumeration men blir Ă€ndĂ„ avbruten av limits"</b></summary>

Utvecklare betalar $20–200/mĂ„nad för Claude Pro, Codex Pro eller GitHub Copilot. Även om du betalar har kvoten ett tak - 5 timmars anvĂ€ndning, veckogrĂ€nser eller grĂ€nser per minut. Mid-coding session, leverantören slutar svara och utvecklaren tappar flöde och produktivitet.

**Hur OmniRoute löser det:**

-**Smart 4-lagers fallback**— Om prenumerationskvoten tar slut, omdirigeras automatiskt till API-nyckel → Billigt → Gratis med noll manuellt ingrepp
-**SpĂ„rning av leverantörsgrĂ€nser**— Cachade ögonblicksbilder av kvoter uppdateras pĂ„ ett schema pĂ„ serversidan (standard `PROVIDER_LIMITS_SYNC_INTERVAL_MINUTES=70`) med manuell uppdatering tillgĂ€nglig i anvĂ€ndargrĂ€nssnittet
-**Stöd för flera konton**- Flera konton per leverantör med automatisk round-robin - nÀr ett tar slut, byter du till nÀsta
-**Anpassade kombinationer**— Anpassningsbara reservkedjor med 9 balanseringsstrategier (prioritet, viktad, fyll först, round-robin, P2C, slumpmĂ€ssig, minst anvĂ€nda, kostnadsoptimerad, strikt slumpmĂ€ssig)
-**Codex Business Quotas**— Övervakning av företags-/teamarbetsutrymmeskvoter direkt i instrumentpanelen</details>

<detaljer>
<summary><b>🔌 2. "Jag mĂ„ste anvĂ€nda flera leverantörer men alla har olika API"</b></summary>

OpenAI anvÀnder ett format, Claude (Anthropic) anvÀnder ett annat, Gemini Ànnu ett annat. Om en utvecklare vill testa modeller frÄn olika leverantörer eller fallback mellan dem mÄste de konfigurera om SDK:er, Àndra slutpunkter, hantera inkompatibla format. Anpassade leverantörer (FriendLI, NIM) har icke-standardiserade modellslutpunkter.

**Hur OmniRoute löser det:**

-**Unified Endpoint**— En enda "http://localhost:20128/v1" fungerar som proxy för alla 60+ leverantörer
-**FormatöversĂ€ttning**— Automatisk och transparent: OpenAI ↔ Claude ↔ Gemini ↔ Responses API
-**Response Sanitization**— Tar bort icke-standardiserade fĂ€lt (`x_groq`, `usage_breakdown`, `service_tier`) som bryter OpenAI SDK v1.83+
-**Rollnormalisering**— Konverterar `utvecklare` → `system` för icke-OpenAI-leverantörer; `system` → `anvĂ€ndare` för GLM/ERNIE
-**Think Tag Extraction**— Extraherar `<think>`-block frĂ„n modeller som DeepSeek R1 till standardiserat `reasoning_content`
-**Structured Output for Gemini**— `json_schema` → `responseMimeType`/`responseSchema` automatisk konvertering
-**`stream` har som standard "false"**- Justerar med OpenAI-specifikationen, undviker ovÀntade SSE i Python/Rust/Go SDK:er</details>

<detaljer>
<summary><b>🌐 3. "Min AI-leverantör blockerar min region/land"</b></summary>

Leverantörer som OpenAI/Codex blockerar Ätkomst frÄn vissa geografiska regioner. AnvÀndare fÄr fel som "unsupported_country_region_territory" under OAuth- och API-anslutningar. Detta Àr sÀrskilt frustrerande för utvecklare frÄn utvecklingslÀnder.

**Hur OmniRoute löser det:**

-**3-Level Proxy Config**— Konfigurerbar proxy pĂ„ 3 nivĂ„er: global (all trafik), per leverantör (endast en leverantör) och per anslutning/nyckel
-**FĂ€rgkodade proxymĂ€rken**— Visuella indikatorer: 🟱 global proxy, 🟡 leverantörsproxy, đŸ”” anslutningsproxy, visar alltid IP:n
-**OAuth Token Exchange Through Proxy**— OAuth-flödet gĂ„r ocksĂ„ genom proxyn och löser "unsupported_country_region_territory"
-**Anslutningstester via proxy**— Anslutningstester anvĂ€nder den konfigurerade proxyn (ingen mer direkt förbikoppling)
-**SOCKS5-stöd**— FullstĂ€ndigt SOCKS5-proxystöd för utgĂ„ende routing
-**TLS Fingerprint Spoofing**— WebblĂ€sarliknande TLS-fingeravtryck via "wreq-js" för att kringgĂ„ botdetektering
-**🔏 CLI Fingerprint Matching**— Ordnar om rubriker och kroppsfĂ€lt för att matcha inbyggda CLI-binĂ€ra signaturer, vilket drastiskt minskar risken för kontoflaggning. Proxy-IP:n bevaras – du fĂ„r bĂ„de smyg**och**IP-maskering samtidigt</details>

<detaljer>
<summary><b>🆓 4. "Jag vill anvĂ€nda AI för kodning men jag har inga pengar"</b></summary>

Alla kan inte betala $20–200/mĂ„nad för AI-prenumerationer. Studenter, utvecklare frĂ„n tillvĂ€xtlĂ€nder, hobbyister och frilansare behöver tillgĂ„ng till kvalitetsmodeller utan kostnad.

**Hur OmniRoute löser det:**

-**Gratis leverantörer inbyggda**— Inbyggt stöd för 100 % gratis leverantörer: Qoder (5 obegrĂ€nsade 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Ă„nad gratis)
-**Ollama Cloud**— Ollama-modeller med molnvĂ€rd pĂ„ `api.ollama.com` med gratis nivĂ„ "LĂ€tt anvĂ€ndning"; anvĂ€nd prefixet `ollamacloud/<modell>`
-**Free-Only Combos**— Chain `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/mĂ„nad utan stillestĂ„ndstid
-**NVIDIA NIM fri tillgĂ„ng**— ~40 RPM dev-för evigt fri tillgĂ„ng till 70+ modeller pĂ„ build.nvidia.com (övergĂ„ng frĂ„n krediter till rena hastighetsgrĂ€nser)
-**Kostnadsoptimerad strategi**— Routingstrategi som automatiskt vĂ€ljer den billigaste tillgĂ€ngliga leverantören</details>

<detaljer>
<summary><b>🔒 5. "Jag mĂ„ste skydda min AI-gateway frĂ„n obehörig Ă„tkomst"</b></summary>

NÀr du exponerar en AI-gateway för nÀtverket (LAN, VPS, Docker) kan vem som helst med adressen konsumera utvecklarens tokens/kvot. Utan skydd Àr API:er sÄrbara för missbruk, snabb injektion och missbruk.

**Hur OmniRoute löser det:**

-**API Key Management**— Generering, rotation och omfattning per leverantör med en dedikerad `/dashboard/api-manager`-sida
-**Behörigheter pĂ„ modellnivĂ„**— BegrĂ€nsa API-nycklar till specifika modeller ('openai/*', jokerteckenmönster), med vĂ€xlingen TillĂ„t alla/BegrĂ€nsa
-**API Endpoint Protection**— KrĂ€v en nyckel för `/v1/modeller` och blockera specifika leverantörer frĂ„n listan
-**Auth Guard + CSRF Protection**— Alla instrumentpanelsrutter skyddade med 'withAuth' middleware + CSRF-tokens
-**Rate Limiter**— Per-IP-hastighetsbegrĂ€nsning med konfigurerbara fönster
-**IP-filtrering**— TillĂ„telselista/blockeringslista för Ă„tkomstkontroll
-**Prompt Injection Guard**— Sanering mot skadliga promptmönster
-**AES-256-GCM-kryptering**— Autentiseringsuppgifter krypterade i vila</details>

<detaljer>
<summary><b>🛑 6. "Min leverantör gick ner och jag tappade mitt kodningsflöde"</b></summary>

AI-leverantörer kan bli instabila, returnera 5xx-fel eller nÄ tillfÀlliga hastighetsgrÀnser. Om en utvecklare Àr beroende av en enskild leverantör avbryts de. Utan strömbrytare kan upprepade försök krascha programmet.

**Hur OmniRoute löser det:**

-**Circuit Breaker per modell**— Autoöppning/stĂ€ngning med konfigurerbara trösklar och nedkylning (stĂ€ngd/öppen/halvöppen), omfattning per modell för att undvika kaskadblock
-**Exponentiell backoff**— Progressiva fördröjningar igen
-**Anti-Thundering Herd**— Mutex + semaforskydd mot samtidiga stormar igen
-**Combo reservkedjor**— Om den primĂ€ra leverantören misslyckas, faller den automatiskt genom kedjan utan ingrepp
-**Combo Circuit Breaker**- Inaktiverar automatiskt felande leverantörer inom en kombinationskedja
-**Health Dashboard**— Drifttidsövervakning, strömbrytartillstĂ„nd, lĂ„sningar, cachestatistik, p50/p95/p99 latens</details>

<detaljer>
<summary><b>🔧 7. "Att konfigurera varje AI-verktyg Ă€r trĂ„kigt och repetitivt"</b></summary>

Utvecklare anvÀnder Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code... Varje verktyg behöver en annan konfiguration (API-slutpunkt, nyckel, modell). Att konfigurera om nÀr man byter leverantör eller modell Àr ett slöseri med tid.

**Hur OmniRoute löser det:**

-**CLI Tools Dashboard**— Dedikerad sida med ett-klicksinstĂ€llningar för Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline
-**GitHub Copilot Config Generator**— Genererar `chatLanguageModels.json` för VS-kod med bulkmodellval
-**Onboarding Wizard**— Guidad 4-stegs installation för förstagĂ„ngsanvĂ€ndare
-**En slutpunkt, alla modeller**— Konfigurera "http://localhost:20128/v1" en gĂ„ng, Ă„tkomst till 60+ leverantörer</details>

<detaljer>
<summary><b>🔑 8. "Hantera OAuth-tokens frĂ„n flera leverantörer Ă€r ett helvete"</b></summary>

Claude Code, Codex, Gemini CLI, Copilot — alla anvĂ€nder OAuth 2.0 med utgĂ„ende tokens. Utvecklare mĂ„ste autentisera om hela tiden, hantera "klienthemlighet saknas", "redirect_uri_mismatch" och fel pĂ„ fjĂ€rrservrar. OAuth pĂ„ LAN/VPS Ă€r sĂ€rskilt problematiskt.

**Hur OmniRoute löser det:**

-**Automatisk uppdatering av token**— OAuth-tokens uppdateras i bakgrunden innan de löper ut
-**OAuth 2.0 (PKCE) Inbyggd**— Automatiskt flöde för Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, Qoder
-**Multi-Account OAuth**— Flera konton per leverantör via JWT/ID-tokenextraktion
-**OAuth LAN/Remote Fix**— Privat IP-detektering för `redirect_uri` + manuellt URL-lĂ€ge för fjĂ€rrservrar
-**OAuth Behind Nginx**— AnvĂ€nder `window.location.origin` för omvĂ€nd proxykompatibilitet
-**Remote OAuth Guide**— Steg-för-steg-guide för Google Cloud-uppgifter pĂ„ VPS/Docker</details>

<detaljer>
<summary><b>📊 9. "Jag vet inte hur mycket jag spenderar eller var"</b></summary>

Utvecklare anvÀnder flera betalleverantörer men har ingen enhetlig syn pÄ utgifter. Varje leverantör har sin egen faktureringspanel, men det finns ingen konsoliderad vy. OvÀntade kostnader kan hopa sig.

**Hur OmniRoute löser det:**

-**Kostnadsanalysinstrumentpanel**— KostnadsspĂ„rning per token och budgethantering per leverantör
-**BudgetgrĂ€nser per nivĂ„**— Utgiftstak per nivĂ„ som utlöser automatisk reserv
-**Priskonfiguration per modell**— Konfigurerbara priser per modell
-**AnvĂ€ndningsstatistik per API-nyckel**— Antal förfrĂ„gningar och senast anvĂ€nda tidsstĂ€mpel per nyckel
-**Analytics Dashboard**— Statistikkort, modellanvĂ€ndningsdiagram, leverantörstabell med framgĂ„ngsfrekvens och latens</details>

<detaljer>
<summary><b>🐛 10. "Jag kan inte diagnostisera fel och problem i AI-samtal"</b></summary>

NÀr ett samtal misslyckas vet inte utvecklaren om det var en hastighetsgrÀns, utgÄngen token, fel format eller leverantörsfel. Fragmenterade loggar över olika terminaler. Utan observerbarhet Àr felsökning att trial-and-error.

**Hur OmniRoute löser det:**

-**Unified Logs Dashboard**— 4 flikar: Request Logs, Proxy Logs, Audit Logs, Console
-**Console Log Viewer**— Viewer i realtid i terminalstil med fĂ€rgkodade nivĂ„er, automatisk rullning, sökning, filtrering
-**SQLite Proxy-loggar**— BestĂ€ndiga loggar som överlever serverstarter
-**Translator Playground**— 4 felsökningslĂ€gen: Playground (formatöversĂ€ttning), Chat Tester (tur och retur), TestbĂ€nk (batch), Live Monitor (realtid)
-**Request Telemetri**— p50/p95/p99 latens + X-Request-Id-spĂ„rning
-**Filbaserad loggning med rotation**— Apploggar roterar efter storlek, lagringsdagar och arkivantal; anropsloggartefakter roterar efter lagringsdagar och filantal
-**System Info Report**— `npm run system-info` genererar `system-info.txt` med din fullstĂ€ndiga miljö (nodversion, OmniRoute-version, OS, CLI-verktyg, Docker/PM2-status). Bifoga den nĂ€r du rapporterar problem för omedelbar triage.</details>

<detaljer>
<summary><b>đŸ—ïž 11. "Det Ă€r komplicerat att distribuera och underhĂ„lla gatewayen"</b></summary>

Att installera, konfigurera och underhÄlla en AI-proxy i olika miljöer (lokalt, VPS, Docker, moln) Àr arbetskrÀvande. Problem som hÄrdkodade sökvÀgar, "EACCES" pÄ kataloger, portkonflikter och plattformsoberoende konstruktioner ger friktion.

**Hur OmniRoute löser det:**

-**npm global installation**— `npm install -g omniroute && omniroute` – klar
-**Docker Multi-Platform**— AMD64 + ARM64 inbyggt (Apple Silicon, AWS Graviton, Raspberry Pi)
-**Docker Compose Profiles**— 'base' (inga CLI-verktyg) och 'cli' (med Claude Code, Codex, OpenClaw)
-**Electron Desktop App**— Inbyggd app för Windows/macOS/Linux med systemfĂ€ltet, autostart, offlinelĂ€ge
-**Split-Port Mode**— API och Dashboard pĂ„ separata portar för avancerade scenarier (omvĂ€nd proxy, containernĂ€tverk)
-**Cloud Sync**— Konfigurera synkronisering mellan enheter via Cloudflare Workers
-**DB-sĂ€kerhetskopior**— Automatisk sĂ€kerhetskopiering, Ă„terstĂ€llning, export och import av alla instĂ€llningar, med `DISABLE_SQLITE_AUTO_BACKUP` för externt hanterade sĂ€kerhetskopior</details>

<detaljer>
<summary><b>🌍 12. "GrĂ€nssnittet Ă€r endast engelska och mitt team talar inte engelska"</b></summary>

Lag i icke-engelsktalande lÀnder, sÀrskilt i Latinamerika, Asien och Europa, kÀmpar med enbart engelska grÀnssnitt. SprÄkbarriÀrer minskar anvÀndningen och ökar konfigurationsfelen.

**Hur OmniRoute löser det:**

-**Dashboard i18n — 30 sprĂ„k**— Alla 500+ nycklar översatta, inklusive arabiska, bulgariska, danska, tyska, spanska, finska, franska, hebreiska, hindi, ungerska, indonesiska, italienska, japanska, koreanska, malaysiska, hollĂ€ndska, norska, polska, portugisiska (PT/BR), rumĂ€nska, ryska, thailĂ€ndska, ukrainska, ukrainska, kinesiska, engelska, ukrainska, vietnamesiska, ukrainska, svenska, ukrainska
-**RTL-stöd**— Höger-till-vĂ€nster-stöd för arabiska och hebreiska
-**Multi-Language READMEs**— 30 fullstĂ€ndiga dokumentationsöversĂ€ttningar
-**SprĂ„kvĂ€ljare**— Globikon i rubriken för vĂ€xling i realtid</details>

<detaljer>
<summary><b>🔄 13. "Jag behöver mer Ă€n chatt — jag behöver inbĂ€ddningar, bilder, ljud"</b></summary>

AI Àr inte bara att slutföra chatt. Utvecklare mÄste generera bilder, transkribera ljud, skapa inbÀddningar för RAG, ranka om dokument och moderera innehÄll. Varje API har olika slutpunkt och format.

**Hur OmniRoute löser det:**

-**InbĂ€ddningar**— `/v1/inbĂ€ddningar` med 6 leverantörer och 9+ modeller
-**Bildgenerering**— `/v1/images/generations` med 10 leverantörer och 20+ modeller (OpenAI, xAI, Together, Fireworks, Nebius, Hyperbolic, NanoBanana, Antigravity, SD WebUI, ComfyUI)
-**Text-to-Video**— `/v1/videos/generations` — ComfyUI (AnimateDiff, SVD) och SD WebUI
-**Text-to-Music**— `/v1/music/generations` — ComfyUI (Stable Audio Open, MusicGen)
-**Audio Transcription**— `/v1/audio/transcriptions` — Whisper + Nvidia NIM, HuggingFace, Qwen3
-**Text-to-Speech**— `/v1/audio/speech` — ElevenLabs, Nvidia NIM, HuggingFace, Coqui, Tortoise, Qwen3,**Inworld**,**Cartesia**,**PlayHT**, + befintliga leverantörer
-**Moderations**— `/v1/moderations` — InnehĂ„llssĂ€kerhetskontroller
-**Omrankning**— `/v1/rerank` — Omrankning av dokumentrelevans
-**Responses API**— FullstĂ€ndigt `/v1/responses`-stöd för Codex</details>

<detaljer>
<summary><b>đŸ§Ș 14. "Jag har inget sĂ€tt att testa och jĂ€mföra kvalitet mellan olika modeller"</b></summary>

Utvecklare vill veta vilken modell som Àr bÀst för deras anvÀndningsfall - kod, översÀttning, resonemang - men det gÄr lÄngsamt att jÀmföra manuellt. Det finns inga integrerade utvÀrderingsverktyg.

**Hur OmniRoute löser det:**

-**LLM Evaluations**— Golden set-testning med 10 förinstallerade fall som tĂ€cker hĂ€lsningar, matematik, geografi, kodgenerering, JSON-efterlevnad, översĂ€ttning, markdown, sĂ€kerhetsvĂ€gran
-**4 matchningsstrategier**— "exakt", "innehĂ„ller", "regex", "anpassad" (JS-funktion)
-**Translator Playground Test Bench**— Batchtestning med flera ingĂ„ngar och förvĂ€ntade utgĂ„ngar, jĂ€mförelse mellan olika leverantörer
-**Chatttestare**— FullstĂ€ndig tur och retur med visuell responsĂ„tergivning
-**Live Monitor**— Realtidsström av alla förfrĂ„gningar som flödar genom proxyn</details>

<detaljer>
<summary><b>📈 15. "Jag behöver skala utan att förlora prestanda"</b></summary>

NÀr förfrÄgningsvolymen ökar, utan att cachelagra genererar samma frÄgor dubbla kostnader. Utan idempotens, dubbletter begÀr avfallshantering. PrisgrÀnser per leverantör mÄste respekteras.

**Hur OmniRoute löser det:**

-**Semantisk cache**— TvĂ„skiktscache (signatur + semantisk) minskar kostnaden och fördröjningen
-**Request Idempotency**— 5s dedupliceringsfönster för identiska förfrĂ„gningar
-**Rate Limit Detection**— RPM per leverantör, min gap och max samtidig spĂ„rning
-**Redigerbara hastighetsgrĂ€nser**— Konfigurerbara standardinstĂ€llningar i InstĂ€llningar → MotstĂ„ndskraft med uthĂ„llighet
-**API Key Validation Cache**— 3-lagers cache för produktionsprestanda
-**HĂ€lsoinstrumentpanel med telemetri**— p50/p95/p99 latens, cachestatistik, drifttid</details>

<detaljer>
<summary><b>đŸ€– 16. "Jag vill kontrollera modellbeteende globalt"</b></summary>

Utvecklare som vill ha alla svar pÄ ett specifikt sprÄk, med en specifik ton, eller som vill begrÀnsa resonemangstokens. Att konfigurera detta i varje verktyg/förfrÄgan Àr opraktiskt.

**Hur OmniRoute löser det:**

-**System Prompt Injection**— Global prompt tillĂ€mpas pĂ„ alla förfrĂ„gningar
-**Thinking Budget Validation**— Reasoning token allocation control per request (passthrough, auto, custom, adaptive)
-**9 routingstrategier**— Globala strategier som avgör hur förfrĂ„gningar distribueras
-**Wildcard Router**— `provider/*`-mönster dirigerar dynamiskt till vilken leverantör som helst
-**Kombo Aktivera/Inaktivera VĂ€xla**— VĂ€xla kombinationer direkt frĂ„n instrumentpanelen
-**Visa leverantör**— Aktivera/inaktivera alla anslutningar för en leverantör med ett klick
-**Blockerade leverantörer**— Exkludera specifika leverantörer frĂ„n `/v1/models`-listan</details>

<detaljer>
<summary><b>🧰 17. "Jag behöver MCP-verktyg som förstklassiga produktegenskaper"</b></summary>

MÄnga AI-gateways exponerar MCP endast som en dold implementeringsdetalj. Team behöver ett synligt, hanterbart driftlager.

**Hur OmniRoute löser det:**

- MCP visas pÄ navigeringspanelen och fliken för slutpunktsprotokoll
- Dedikerad MCP-hanteringssida med process, verktyg, omfattningar och revision
- Inbyggd snabbstart för `omniroute --mcp` och klientintroduktion</details>

<detaljer>
<summary><b>🧠 18. "Jag behöver A2A-orkestrering med sökvĂ€gar för synkronisering och streaming"</b></summary>

Agentarbetsflöden krÀver bÄde direkta svar och lÄngvarig streamad exekvering med livscykelkontroll.

**Hur OmniRoute löser det:**

- A2A JSON-RPC-slutpunkt ('POST /a2a') med 'meddelande/sÀnd' och 'meddelande/ström'
- SSE-strömning med terminaltillstÄndspridning
- Task lifecycle API:er för "tasks/get" och "tasks/cancel".</details>

<detaljer>
<summary><b>đŸ›°ïž 19. "Jag behöver riktig MCP-processhĂ€lsa, inte gissad status"</b></summary>

Operativa team mÄste veta om MCP faktiskt lever, inte bara om ett API Àr tillgÀngligt.

**Hur OmniRoute löser det:**

- Runtime heartbeat-fil med PID, tidsstÀmplar, transport, verktygsrÀkning och scope-lÀge
- MCP status API som kombinerar hjÀrtslag + senaste aktivitet
- UI-statuskort för process/upptid/hjÀrtslagsnyhet</details>

<detaljer>
<summary><b>📋 20. "Jag behöver granskningsbar MCP-verktygsexekvering"</b></summary>

NÀr verktyg muterar konfiguration eller utlöser operationsÄtgÀrder behöver team rÀttsmedicinsk spÄrbarhet.

**Hur OmniRoute löser det:**

- SQLite-stödd revisionsloggning för MCP-verktygsanrop
- Filtrerar efter verktyg, framgÄng/misslyckande, API-nyckel och paginering
- Dashboard revisionstabell + statistikslutpunkter för automatisering</details>

<detaljer>
<summary><b>🔐 21. "Jag behöver scoped MCP-behörigheter per integration"</b></summary>

Olika klienter bör ha minst privilegierad Ätkomst till verktygskategorier.

**Hur OmniRoute löser det:**

- 10 granulÀra MCP-scopes för kontrollerad verktygsÄtkomst
- TillÀmpning av omfattning och synlighet i MCP-hanteringsgrÀnssnitt
- SÀker standardstÀllning för operativa verktyg</details>

<detaljer>
<summary><b>⚙ 22. "Jag behöver operativa kontroller utan att omdistribuera"</b></summary>

Team behöver snabba körtidsförÀndringar under incidenter eller kostnadshÀndelser.

**Hur OmniRoute löser det:**

- VÀxla kombinationsaktivering direkt frÄn MCP-instrumentpanelen
- TillÀmpa motstÄndskraftsprofiler frÄn fördefinierade policypaket
- ÅterstĂ€ll strömbrytarens tillstĂ„nd frĂ„n samma manöverpanel</details>

<detaljer>
<summary><b>🔄 23. "Jag behöver synlighet och annullering av A2A-uppgiftens livscykel"</b></summary>

Utan livscykelsynlighet blir uppgiftsincidenter svÄra att triage.

**Hur OmniRoute löser det:**

- Uppgiftslista/filtrering efter stat/fÀrdighet med sidnumrering
- Drill down pÄ uppgiftens metadata, hÀndelser och artefakter
- Slutpunkt för annullering av uppgifter och grÀnssnittsÄtgÀrd med bekrÀftelse</details>

<detaljer>
<summary><b>🌊 24. "Jag behöver aktiv strömningsstatistik för A2A-laddning"</b></summary>

Strömmande arbetsflöden krÀver operativ insikt i samtidighet och direktanslutningar.

**Hur OmniRoute löser det:**

- Aktiva strömrÀknare integrerade i A2A-status
- Senaste uppgiftens tidsstÀmpel och antal per stat
- A2A instrumentpanelskort för operationsövervakning i realtid</details>

<detaljer>
<summary><b>đŸȘȘ 25. "Jag behöver standardagentupptĂ€ckt för klienter"</b></summary>

Externa klienter och orkestratorer behöver maskinlÀsbar metadata för onboarding.

**Hur OmniRoute löser det:**

- Agentkort exponerat pÄ `/.well-known/agent.json`
- FörmÄga och fÀrdigheter som visas i ledningsgrÀnssnittet
- A2A status API inkluderar upptÀcktsmetadata för automatisering</details>

<detaljer>
<summary><b>🧭 26. "Jag behöver protokollupptĂ€ckbarhet i produktens UX"</b></summary>

Om anvÀndare inte kan upptÀcka protokollytor, sjunker kvaliteten pÄ adoption och support.

**Hur OmniRoute löser det:**

- Konsoliderad sida**Endpoints**med flikar för proxy-, MCP-, A2A- och API-slutpunkter
- Inline-tjÀnststatus vÀxlar (Online/Offline) för MCP och A2A
- LÀnkar frÄn översikt till dedikerade hanteringsflikar</details>

<detaljer>
<summary><b>đŸ§Ș 27. "Jag behöver end-to-end protokollvalidering med riktiga klienter"</b></summary>

Mock-tester rÀcker inte för att validera protokollkompatibilitet före release.

**Hur OmniRoute löser det:**

- E2E-svit som startar appen och anvÀnder riktig MCP SDK-klienttransport
- A2A-klient testar för upptÀckt, skicka, streama, hÀmta och avbryta flöden
- Korskontrollera pÄstÄenden mot MCP-revision och A2A-uppgifter API:er</details>

<detaljer>
<summary><b>📡 28. "I need unified observability across all interfaces"</b></summary>

Splitting observability by protocol creates blind spots and longer MTTR.

**Hur OmniRoute löser det:**

- Unified dashboards/logs/analytics in one product
- Health + audit + request telemetry across OpenAI, MCP, and A2A layers
- Operational APIs for status and automation</details>

<detaljer>
<summary><b>đŸ’Œ 29. "Jag behöver en körtid för proxy + verktyg + agentorkestrering"</b></summary>

Att köra mÄnga separata tjÀnster ökar driftskostnaderna och fellÀgen.

**Hur OmniRoute löser det:**

- OpenAI-kompatibel proxy, MCP-server och A2A-server i en stack
- Delad autentisering, resiliens, datalagring och observerbarhet
- Konsekvent policymodell över alla interaktionsytor</details>

<detaljer>
<summary><b>🚀 30. "Jag behöver skicka agentiska arbetsflöden utan limkodsprawl"</b></summary>

Lag tappar hastighet nÀr de sammanfogar flera ad-hoc-tjÀnster och skript.

**Hur OmniRoute löser det:**

- Enhetlig slutpunktsstrategi för kunder och agenter
- Inbyggda grÀnssnitt för protokollhantering och rökvalideringsvÀgar
- ProduktionsfÀrdiga grunder (sÀkerhet, loggning, resiliens, backup)</details>

### Example Playbooks (Integrated Use Cases)

**Playbook A: Maximera betald prenumeration + 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: Noll-kostnad kodningsstack```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-pÄ reservkedja**```txt
Combo: "always-on"
  1. cc/claude-opus-4-6
  2. cx/gpt-5.2-codex
  3. glm/glm-4.7
  4. minimax/MiniMax-M2.1
  5. if/kimi-k2-thinking

Outcome: deep fallback depth for deadline-critical workloads

Playbook D: Agent ops med MCP + A2A```txt

  1. Start MCP transport (omniroute --mcp) for tool-driven operations
  2. Run A2A tasks via message/send and message/stream
  3. Observe via /dashboard/endpoint (MCP and A2A tabs)
  4. Toggle services via inline status controls

---

## 🆓 Start Free — Zero Configuration Cost

> StÀll in AI-kodning pÄ nÄgra minuter till**$0/mÄnad**. Anslut dessa gratiskonton och anvÀnd den inbyggda**Free Stack**-kombinationen.

| Steg | ÅtgĂ€rd | Leverantörer olĂ„sta |
| ---- | ---------------------------------------------------------- | -------------------------------------------------------------------------- |
| 1 | Anslut**Kiro**(AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 —**obegrĂ€nsad**|
| 2 | Anslut**Qoder**(Google OAuth) | kimi-k2-tĂ€nkande, qwen3-coder-plus, deepseek-r1... —**obegrĂ€nsat**|
| 3 | Anslut**Qwen**(enhetskod) | qwen3-coder-plus, qwen3-coder-flash... —**obegrĂ€nsat**|
| 4 | Anslut**Gemini CLI**(Google OAuth) | gemini-3-flash, gemini-2.5-pro —**180K/mĂ„nad gratis**|
| 5 | `/dashboard/combos` →**Gratis stack ($0)**mall | Round-robin alla gratis leverantörer automatiskt |

**Peka valfri IDE/CLI till:**`http://localhost:20128/v1` · API-nyckel: `any-string` · Klar.

>**Valfri extra tÀckning (ocksÄ gratis):**Groq API-nyckel (30 rpm gratis), NVIDIA NIM (40 rpm gratis, 70+ modeller), Cerebras (1M tok/dag), LongCat API-nyckel (50M tokens/dag!), Cloudflare Workers AI (10K Neurons/day, 50+ modeller).## Snabbstart

### 1) Install and run

```bash
npm install -g omniroute
omniroute

**pnpm-anvÀndare:**Kör pnpm approve-builds -g efter installationen för att aktivera inbyggda byggskript som krÀvs av bÀttre-sqlite3 och @swc/core:

pnpm installera -g omniroute
pnpm approve-builds -g # VĂ€lj alla paket → godkĂ€nn
omniroute

Dashboard öppnas pÄ http://localhost:20128 och API-bas-URL Àr http://localhost:20128/v1.

Kommando Beskrivning
omniroute Startserver (PORT=20128, API och instrumentpanel pÄ samma port)
omniroute --port 3000 StÀll in kanonisk/API-port till 3000
omniroute --mcp Starta MCP-server (stdio-transport)
omniroute --no-open Öppna inte webblĂ€saren automatiskt
omniroute --hjÀlp Visa hjÀlp

Valfritt lÀge med delad port:```bash PORT=20128 DASHBOARD_PORT=20129 omniroute

API: http://localhost:20128/v1

Dashboard: http://localhost:20129


### Long-Running Streaming Timeouts

För de flesta distributioner behöver du bara:

| Variabel | Standard | Syfte |
| ------------------------ | ------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ |
| `REQUEST_TIMEOUT_MS` | `600000` | Delad baslinje för uppströmshÀmtning, dolda Undici-timeouter, TLS-fingeravtrycksbegÀranden och API-bryggbegÀran/proxy-timeout |
| `STREAM_IDLE_TIMEOUT_MS` | Àrver `REQUEST_TIMEOUT_MS` | Maximalt gap mellan strömmande delar innan OmniRoute avbryter SSE-strömmen |

BakÄtkompatibilitet bevaras: befintliga `FETCH_TIMEOUT_MS`, `API_BRIDGE_PROXY_TIMEOUT_MS` och andra tidsgrÀnser per lager fungerar fortfarande och ÄsidosÀtter den delade baslinjen.

Avancerade ÄsidosÀttningar Àr tillgÀngliga om du behöver bÀttre kontroll:| Variabel | Standard | Syfte |
| ------------------------------------------ | ------------------------------------------ | ---------------------------------------------------------------------------- |
| `FETCH_TIMEOUT_MS` | Àrver `REQUEST_TIMEOUT_MS` | Total uppströms begÀran timeout som anvÀnds av huvudhÀmtningsavbrytsignalen |
| `FETCH_HEADERS_TIMEOUT_MS` | Àrver `FETCH_TIMEOUT_MS` | Undici tidsgrÀns för att ta emot uppströms svarsrubriker |
| `FETCH_BODY_TIMEOUT_MS` | Àrver `FETCH_TIMEOUT_MS` | Undici tidsgrÀns mellan uppströms kroppsdelar (`0` inaktiverar den) |
| `FETCH_CONNECT_TIMEOUT_MS` | `30 000` | Undici TCP anslutning timeout |
| `FETCH_KEEPALIVE_TIMEOUT_MS` | `4000` | Undici idle keep-alive socket timeout |
| `TLS_CLIENT_TIMEOUT_MS` | Àrver `FETCH_TIMEOUT_MS` | Timeout för TLS-fingeravtrycksbegÀranden gjorda via `wreq-js` |
| `API_BRIDGE_PROXY_TIMEOUT_MS` | Àrver `REQUEST_TIMEOUT_MS` eller `30000` | Timeout för `/v1` proxy-vidarebefordran frÄn API-port till instrumentpanelsport |
| `API_BRIDGE_SERVER_REQUEST_TIMEOUT_MS` | `max(API_BRIDGE_PROXY_TIMEOUT_MS, 300000)` | Timeout för inkommande begÀran pÄ API-bryggservern |
| `API_BRIDGE_SERVER_HEADERS_TIMEOUT_MS` | `60 000` | Timeout för inkommande rubrik pÄ API-bryggservern |
| `API_BRIDGE_SERVER_KEEPALIVE_TIMEOUT_MS` | `5000` | Keep-alive timeout pÄ API-bryggservern |
| `API_BRIDGE_SERVER_SOCKET_TIMEOUT_MS` | `0` | Socket inaktivitet timeout pÄ API-bryggservern (`0` inaktiverar den) |

Om du kör OmniRoute bakom Nginx, Caddy, Cloudflare eller annan omvÀnd proxy, se till att proxyn
timeouts Àr ocksÄ högre Àn dina OmniRoute-strömnings-/hÀmtningstider.### 2) Connect providers and create your API key

1. Öppna Dashboard → `Providers` och anslut minst en leverantör (OAuth- eller API-nyckel).
2. Öppna Dashboard → `Endpoints` och skapa en API-nyckel.
3. (Valfritt) Öppna Dashboard → `Combos` och stĂ€ll in din reservkedja.### 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)

Fungerar med Claude Code, Codex CLI, Gemini CLI, Cursor, Cline, OpenClaw, OpenCode och OpenAI-kompatibla SDK:er.### 4) Enable and validate protocols (v2.0)

MCP (för verktygsdrivna operationer):```bash omniroute --mcp


Anslut sedan din MCP-klient över "stdio" och testverktyg som:

- `omniroute_get_health`
- `omniroute_list_combos`

**A2A (för agent-till-agent-arbetsflöden):**```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

Denna svit validerar riktiga MCP- och A2A-klientflöden mot en app som körs.### 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
Ogiltigt Linux (`xbps-src`-mall)

För Void Linux-anvÀndare kan du bygga ett inbyggt paket med xbps-src. Spara detta block som srcpkgs/omniroute/template:```bash

Template file for 'omniroute'

pkgname=omniroute version=3.4.1 revision=1 hostmakedepends="nodejs python3 make" depends="openssl" short_desc="Universal AI gateway with smart routing for multiple LLM providers" maintainer="zenobit zenobit@disroot.org" license="MIT" homepage="https://github.com/diegosouzapw/OmniRoute" distfiles="https://github.com/diegosouzapw/OmniRoute/archive/refs/tags/v${version}.tar.gz" checksum=009400afee90a9f32599d8fe734145cfd84098140b7287990183dde45ae2245b system_accounts="_omniroute" omniroute_homedir="/var/lib/omniroute" export NODE_ENV=production export npm_config_engine_strict=false export npm_config_loglevel=error export npm_config_fund=false export npm_config_audit=false

do_build() { # Determine target CPU arch for node-gyp local _gyp_arch case "$XBPS_TARGET_MACHINE" in aarch64*) _gyp_arch=arm64 ;; armv7*|armv6*) _gyp_arch=arm ;; i686*) _gyp_arch=ia32 ;; *) _gyp_arch=x64 ;; esac

# 1) Install all deps – skip scripts (no network in do_build, native modules
#    compiled separately below; better-sqlite3 is serverExternalPackage so
#    Next.js does not execute it during next build)
NODE_ENV=development npm ci --ignore-scripts

# 2) Build the Next.js standalone bundle
npm run build

# 3) Copy static assets into standalone
cp -r .next/static .next/standalone/.next/static
[ -d public ] && cp -r public .next/standalone/public || true

# 4) Compile better-sqlite3 native binding for the target architecture.
#    Use node-gyp directly so CC/CXX from xbps-src cross-toolchain are used
#    without npm altering them.
local _node_gyp=/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js
(cd node_modules/better-sqlite3 && node "$_node_gyp" rebuild --arch="$_gyp_arch")

# 5) Place the compiled binding into the standalone bundle
local _bs3_release=.next/standalone/node_modules/better-sqlite3/build/Release
mkdir -p "$_bs3_release"
cp node_modules/better-sqlite3/build/Release/better_sqlite3.node "$_bs3_release/"

# 6) Remove arch-specific sharp bundles – upstream sets images.unoptimized=true
#    so sharp is not used at runtime; x64 .so files would break aarch64 strip
rm -rf .next/standalone/node_modules/@img

# 7) Copy pino runtime deps omitted by Next.js static analysis:
#    pino-abstract-transport – required by pino's worker thread
#    split2 – dep of pino-abstract-transport
#    process-warning – dep of pino itself
for _mod in pino-abstract-transport split2 process-warning; do
	cp -r "node_modules/$_mod" .next/standalone/node_modules/
done

}

do_check() { npm run test:unit }

do_install() { vmkdir usr/lib/omniroute/.next

vcopy .next/standalone/. usr/lib/omniroute/.next/standalone

# Prevent removal of empty Next.js app router dirs by the post-install hook
for _d in \
	.next/standalone/.next/server/app/dashboard \
	.next/standalone/.next/server/app/dashboard/settings \
	.next/standalone/.next/server/app/dashboard/providers; do
	touch "${DESTDIR}/usr/lib/omniroute/${_d}/.keep"
done

cat > "${WRKDIR}/omniroute" <<'EOF'

#!/bin/sh export PORT="${PORT:-20128}" export DATA_DIR="${DATA_DIR:-${XDG_DATA_HOME:-${HOME}/.local/share}/omniroute}" export LOG_TO_FILE="${LOG_TO_FILE:-false}" mkdir -p "${DATA_DIR}" exec node /usr/lib/omniroute/.next/standalone/server.js "$@" EOF vbin "${WRKDIR}/omniroute" }

post_install() { vlicense LICENSE }


</details>

---

## 🐳 Docker

OmniRoute Àr tillgÀnglig som en offentlig Docker-bild pÄ [Docker Hub](https://hub.docker.com/r/diegosouzapw/omniroute).

**Snabbkörning:**```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


**AnvÀnda 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öd för Docker-distributioner inkluderar nu enCloudflare Quick Tunnelmed ett klick pĂ„ Dashboard → Endpoints. Den första aktiveringen laddar ner cloudflared endast nĂ€r det behövs, startar en tillfĂ€llig tunnel till din nuvarande /v1-slutpunkt och visar den genererade https://*.trycloudflare.com/v1-URL:n direkt under din vanliga offentliga URL.

AnmÀrkningar:

  • Quick Tunnel-URL:er Ă€r tillfĂ€lliga och Ă€ndras efter varje omstart.
  • Snabbtunnlar Ă„terstĂ€lls inte automatiskt efter omstart av OmniRoute eller container. Återaktivera dem frĂ„n instrumentpanelen vid behov.
  • Hanterad installation stöder för nĂ€rvarande Linux, macOS och Windows pĂ„ x64 / arm64.
  • Managed Quick Tunnels standard till HTTP/2-transport för att undvika bullriga QUIC UDP-buffertvarningar i begrĂ€nsade containermiljöer. StĂ€ll in CLOUDFLARED_PROTOCOL=quic eller auto om du vill ha en annan transport.
  • Docker-bilder buntar systemets CA-rötter och skickar dem till hanterade cloudflared, vilket undviker TLS-förtroendefel nĂ€r tunneln startar inuti behĂ„llaren.
  • SQLite körs i WAL-lĂ€ge. dockerstop bör tillĂ„tas avslutas sĂ„ att OmniRoute kan kontrollera de senaste Ă€ndringarna tillbaka till storage.sqlite.
  • De medföljande Compose-filerna har redan satt en frist pĂ„ 40-talet. Om du kör bilden direkt, hĂ„ll --stop-timeout 40 (eller liknande) sĂ„ att manuella stopp inte avbryter avstĂ€ngningsrensningen.
  • StĂ€ll in CLOUDFLARED_BIN=/absolute/path/to/cloudflared om du vill att OmniRoute ska anvĂ€nda en befintlig binĂ€r istĂ€llet för att ladda ner en.

AnvÀnda Docker Compose med Caddy (HTTPS Auto-TLS):

OmniRoute kan exponeras sÀkert med Caddys automatiska SSL-provisionering. Se till att din domÀns DNS A-post pekar pÄ din servers 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:


| Bild | Tagga | Storlek | Beskrivning |
| ------------------------ | -------- | ------ | ---------------------- |
| `diegosouzapw/omniroute` | `senaste` | ~250MB | Senaste stabila utgÄvan |
| `diegosouzapw/omniroute` | `1.0.3` | ~250MB | Aktuell version |---

## đŸ–„ïž Desktop App — Offline & Always-On

> 🆕**NYTT!**OmniRoute Ă€r nu tillgĂ€ngligt som ett**inbyggt skrivbordsprogram**för Windows, macOS och Linux.

Kör OmniRoute som en fristĂ„ende skrivbordsapp — ingen terminal, ingen webblĂ€sare, inget internet krĂ€vs för lokala modeller. Den elektronbaserade appen innehĂ„ller:

- đŸ–„ïž**Native Window**— Dedikerat appfönster med systemfĂ€ltsintegration
- 🔄**Autostart**— Starta OmniRoute vid systeminloggning
- 🔔**Native Notifications**— FĂ„ varningar om kvotutmattning eller leverantörsproblem
- ⚡**One-Click Install**— NSIS (Windows), DMG (macOS), AppImage (Linux)
- 🌐**OfflinelĂ€ge**— Fungerar helt offline med medföljande server### Snabbstart

```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 Àr minimerad, finns OmniRoute i systemfÀltet med snabba ÄtgÀrder:

  • Öppna instrumentpanelen
  • Byt serverport
  • Avsluta applikationen

📖 FullstĂ€ndig dokumentation: electron/README.md---

💰 Pricing at a Glance

NivÄ Leverantör Kostnad KvotÄterstÀllning BÀst för
💳 PRENUMERATION Claude Code (Pro) 20 USD/mĂ„nad 5h + veckovis Har redan prenumererat
Codex (Plus/Pro) 20-200 USD/mÄnad 5h + veckovis OpenAI-anvÀndare
Gemini CLI GRATIS 180K/mÄnad + 1K/dag Alla!
GitHub Copilot $10-19/mÄnad MÄnatlig GitHub-anvÀndare
🔑 API-NYCKEL NVIDIA NIM GRATIS(dev forever) ~40 RPM 70+ öppna modeller
Cerebras GRATIS(1M tok/dag) 60K TPM / 30 RPM VĂ€rldens snabbaste
Groq GRATIS(30 RPM) 14,4K RPD Ultrasnabba Lama/Gemma
DeepSeek V3.2 0,27 USD/1,10 USD per 1M Inga BĂ€sta pris/kvalitetsresonemang
xAI Grok-4 Fast $0,20/$0,50 per 1M🆕 Inga Snabbast + verktygsanrop, ultralĂ„gt
xAI Grok-4 (standard) 0,20 USD/1,50 USD per 1M 🆕 Inga Resonerande flaggskepp frĂ„n xAI
Mistral Gratis provperiod + betald BegrÀnsat pris Europeisk AI
OpenRouter Betala per anvÀndning Inga 100+ modeller aggr.
💰 BILLIGT GLM-5 (via Z.AI) 🆕 $0,5/1M Dagligen 10:00 128K-utgĂ„ng, senaste flaggskeppet
GLM-4.7 $0,6/1M Dagligen 10:00 Budget backup
MiniMax M2.5 🆕 $0,3/1M ingĂ„ng 5-timmars rullande Resonemang + agentuppgifter
MiniMax M2.1 $0,2/1M 5-timmars rullande Billigaste alternativet
Kimi K2.5 (Moonshot API) 🆕 Betala per anvĂ€ndning Inga Direkt Ă„tkomst till Moonshot API
Kimi K2 9 USD/mÄn lÀgenhet 10 miljoner tokens/mÄnad FörutsÀgbar kostnad
🆓 GRATIS Qoder $0 ObegrĂ€nsad 5 modeller obegrĂ€nsat
Qwen $0 ObegrÀnsad 4 modeller obegrÀnsat
Kiro $0 ObegrÀnsad Claude Sonnet/Haiku (AWS Builder)
LongCat Flash-Lite 🆕 $0(50 miljoner tok/dag đŸ”„) 1 RPS Största gratiskvoten pĂ„ jorden
Pollinationer AI 🆕 $0(ingen nyckel behövs) 1 req/15s GPT-5, Claude, DeepSeek, Llama 4
Cloudflare Workers AI 🆕 $0(10 000 neuroner/dag) ~150 resp/dag 50+ modeller, global edge
Scaleway AI 🆕 $0(1 miljoner tokens totalt) BegrĂ€nsat pris EU/GDPR, Qwen3 235B, Lama 70B > 🆕**Nya modeller tillagda (mars 2026):**Grok-4 Fast-familjen till $0,20/$0,50/M (benchmarkerad till 1143ms — 30 % snabbare Ă€n Gemini 2.5 Flash), GLM-5 via Z.AI med 128K-utgĂ„ng, MiniMax M2.5-resonemang, DeepSeek2.5-resonemang, KimSeek2.5 updates. direkt API.

💡 $0 Combo Stack — Den kompletta gratis installationen:```

🆓 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


**Noll kostnad. Slutar aldrig koda.**Konfigurera detta som en OmniRoute-kombination och alla fallbacks sker automatiskt – ingen manuell vĂ€xling nĂ„gonsin.---

---

## 🆓 Free Models — What You Actually Get

> Alla modeller nedan Ă€r**100 % gratis utan kreditkort krĂ€vs**. OmniRoute dirigerar automatiskt mellan dem nĂ€r en kvot tar slut — kombinera dem alla för en okrossbar 0 $-kombination.### đŸ”” CLAUDE MODELS (via Kiro — AWS Builder ID)

| Modell | Prefix | BegrÀnsa | PrisgrÀns |
| ------------------ | ------ | ------------- | ---------------------- |
| `claude-sonnet-4.5` | `kr/` |**ObegrÀnsat**| Inget rapporterat dagligt tak |
| `claude-haiku-4.5` | `kr/` |**ObegrÀnsat**| Inget rapporterat dagligt tak |
| `claude-opus-4.6` | `kr/` |**ObegrĂ€nsat**| Senaste Opus via Kiro |### 🟱 QODER MODELS (Free PAT via qodercli)

| Modell | Prefix | BegrÀnsa | PrisgrÀns |
| ------------------ | ------ | ------------- | --------------- |
| `kimi-k2-tÀnkande` | `om/` |**ObegrÀnsat**| Inget rapporterat tak |
| `qwen3-coder-plus` | `om/` |**ObegrÀnsat**| Inget rapporterat tak |
| `deepseek-r1` | `om/` |**ObegrÀnsat**| Inget rapporterat tak |
| `minimax-m2.1` | `om/` |**ObegrÀnsat**| Inget rapporterat tak |
| `kimi-k2` | `om/` |**ObegrÀnsat**| Inget rapporterat tak |

> Rekommenderad anslutningsmetod:**Personal Access Token + `qodercli`**. WebblÀsarens OAuth Àr
> experimentell och inaktiverad som standard om inte `QODER_OAUTH_*` miljövariabler Ă€r konfigurerade.### 🟡 QWEN MODELS (Device Code Auth)

| Modell | Prefix | BegrÀnsa | PrisgrÀns |
| ------------------ | ------ | ------------- | ------------------ |
| `qwen3-coder-plus` | `qw/` |**ObegrÀnsat**| Inget rapporterat tak |
| `qwen3-coder-flash` | `qw/` |**ObegrÀnsat**| Inget rapporterat tak |
| `qwen3-coder-next` | `qw/` |**ObegrÀnsat**| Inget rapporterat tak |
| `vision-modell` | `qw/` |**ObegrĂ€nsat**| Multimodal (bilder) |### 🟣 GEMINI CLI (Google OAuth)

| Modell | Prefix | BegrÀnsa | PrisgrÀns |
| ------------------------ | ------ | -------------------------- | ------------- |
| `gemini-3-flash-preview` | `gc/` |**180K tok/mÄnad**+ 1K/dag | MÄnatlig ÄterstÀllning |
| `gemini-2.5-pro` | `gc/` | 180K/mĂ„nad (delad pool) | Hög kvalitet |### ⚫ NVIDIA NIM (Free API Key — build.nvidia.com)

| NivÄ | Daglig grÀns | PrisgrÀns | Anteckningar |
| ---------- | ------------ | ----------- | -------------------------------------------------------------- |
| Gratis (Dev) | Ingen token cap |**~40 RPM**| 70+ modeller; övergÄng till rena rÀntegrÀnser i mitten av 2025 |

PopulĂ€ra 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 grÀns | PrisgrÀns | Anteckningar |
| ---- | ------------------ | ---------------- | -------------------------------------------------- |
| Gratis |**1M tokens/dag**| 60K TPM / 30 RPM | VÀrldens snabbaste LLM slutledning; ÄterstÀlls dagligen |

TillgĂ€ngligt gratis: `llama-3.3-70b`, `llama-3.1-8b`, `deepseek-r1-destill-llama-70b`### 🔮 GROQ (Free API Key — console.groq.com)

| NivÄ | Daglig grÀns | PrisgrÀns | Anteckningar |
| ---- | ------------- | ---------------- | ------------------------------------------ |
| Gratis |**14,4K RPD**| 30 RPM per modell | Inget kreditkort; 429 pÄ grÀns, inte debiterad |

TillgĂ€ngligt gratis: `llama-3.3-70b-versatile`, `gemma2-9b-it`, `mixtral-8x7b`, `whisper-large-v3`### 🔮 LONGCAT AI (Free API Key — longcat.chat) 🆕

| Modell | Prefix | Daglig gratiskvot | Anteckningar |
| ------------------------------ | ------ | ------------------ | ---------------------------- |
| `LongCat-Flash-Lite` | `lc/` |**50 miljoner tokens**đŸ’„ | Största gratiskvoten nĂ„gonsin |
| `LongCat-Flash-Chat` | `lc/` | 500 000 tokens | Multi-turn chat |
| `LongCat-Flash-Thinking` | `lc/` | 500 000 tokens | Resonemang / CoT |
| `LongCat-Flash-Thinking-2601` | `lc/` | 500 000 tokens | Jan 2026 version |
| `LongCat-Flash-Omni-2603` | `lc/` | 500 000 tokens | Multimodal |

> 100 % gratis medan den Ă€r i offentlig beta. Registrera dig pĂ„ [longcat.chat](https://longcat.chat) med e-post eller telefon. ÅterstĂ€lls dagligen 00:00 UTC.### 🟱 POLLINATIONS AI (No API Key Required) 🆕

| Modell | Prefix | PrisgrÀns | Provider bakom |
| ---------- | ------ | ---------- | ------------------ |
| `openai` | `pol/` | 1 req/15s | GPT-5 |
| `claude` | `pol/` | 1 req/15s | Antropisk Claude |
| "tvillingarna" | `pol/` | 1 req/15s | Google Tvillingarna |
| `deepseek` | `pol/` | 1 req/15s | DeepSeek V3 |
| `llama` | `pol/` | 1 req/15s | Meta Llama 4 Scout |
| `mistral` | `pol/` | 1 req/15s | Mistral AI |

> ✹**Noll friktion:**Ingen registrering, ingen API-nyckel. LĂ€gg till pollineringsleverantören med ett tomt nyckelfĂ€lt sĂ„ fungerar det direkt.### 🟠 CLOUDFLARE WORKERS AI (Free API Key — cloudflare.com) 🆕

| NivÄ | Dagliga neuroner | LikvÀrdig anvÀndning | Anteckningar |
| ---- | ------------- | ----------------------------------------------- | ---------------------------- |
| Gratis |**10 000**| ~150 LLM resp / 500-tals ljud / 15K inbÀddningar | Global edge, 50+ modeller |

PopulÀra gratismodeller: `@cf/meta/llama-3.3-70b-instruct`, `@cf/google/gemma-3-12b-it`, `@cf/openai/whisper-large-v3-turbo` (gratis ljud!), `@cf/qwen/qwen2.5-coder-15b-instruct`

> KrĂ€ver API-token + konto-ID frĂ„n [dash.cloudflare.com](https://dash.cloudflare.com). Lagra konto-ID i leverantörsinstĂ€llningar.### 🟣 SCALEWAY AI (1M Free Tokens — scaleway.com) 🆕

| NivÄ | Gratis kvot | Plats | Anteckningar |
| ---- | ------------- | ------------ | ------------------------------------------ |
| Gratis |**1M tokens**| đŸ‡«đŸ‡· Paris, EU | Inget kreditkort behövs inom grĂ€nserna |

TillgÀngligt gratis: `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. HÀmta API-nyckel pÄ [console.scaleway.com](https://console.scaleway.com).

>**💡 Den ultimata gratisstacken (11 leverantörer, $0 för alltid):**
>
> ```
> Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED
> Qoder (om/) → kimi-k2-tĂ€nkande, qwen3-coder-plus, deepseek-r1 UNLIMITED
> LongCat Lite (lc/) → LongCat-Flash-Lite — 50 miljoner tokens/dag đŸ”„
> Pollinationer (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — ingen nyckel behövs
> Qwen (qw/) → qwen3-kodarmodeller OBEGRÄNSAT
> Gemini (gemini/) → Gemini 2.5 Flash — 1 500 req/dag gratis
> Cloudflare AI (jfr/) → 50+ modeller — 10K neuroner/dag
> Scaleway (scw/) → Qwen3 235B, Llama 70B — 1M gratis tokens (EU)
> Groq (groq/) → Lama/Gemma — 14,4K req/dag ultrasnabb
> NVIDIA NIM (nvidia/) → 70+ öppna modeller — 40 RPM för alltid
> Cerebras (cerebras/) → Lama/Qwen vĂ€rldens snabbaste — 1M tok/dag
> ```## đŸŽ™ïž Free Transcription Combo

> Transkribera valfritt ljud/video för**$0**— Deepgram leads med $200 gratis, AssemblyAI $50 reserv, Groq Whisper som obegrĂ€nsad nödbackup.

| Leverantör | Gratis krediter | BÀsta modellen | PrisgrÀns |
| ------------------ | ---------------------------- | -------------------------------------------- | ---------------------------- |
|**Deepgram**|**$200 gratis**(registrering) | `nova-3` — bĂ€sta noggrannhet, 30+ sprĂ„k | Ingen RPM-grĂ€ns pĂ„ gratis krediter |
| đŸ””**AssemblyAI**|**$50 gratis**(registrering) | "universal-3-pro" — kapitel, sentiment, PII | Ingen RPM-grĂ€ns pĂ„ gratis krediter |
| 🔮**Groq**|**Fri för alltid**| `whisper-large-v3` — OpenAI Whisper | 30 RPM (hastighetsbegrĂ€nsad) |

**Föreslagen kombination 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

Sedan i /dashboard/media → flikenTranskription: ladda upp valfri ljud- eller videofil → vĂ€lj din kombinationsslutpunkt → hĂ€mta transkription i format som stöds.## 💡 Key Features

OmniRoute v2.0 Ă€r byggd som en operativ plattform, inte bara en relĂ€proxy.### 🆕 New — ClawRouter-Inspired Improvements (Mar 2026)

Funktion Vad det gör
⚡Grok-4 Fast Family xAI-modeller för $0,20/$0,50/M — benchmarkerade 1143ms (30 % snabbare Ă€n Gemini 2,5 Flash)
🧠GLM-5 via Z.AI 128K utdatakontext, $0,5/1M — senaste flaggskeppet frĂ„n GLM-familjen
🔼MiniMax M2.5 Resonemang + agentuppgifter för $0,30/1M — betydande uppgradering frĂ„n M2.1
🎯verktyg Calling Flag per modell Per modell 'toolCalling: true/false' i registret — AutoCombo hoppar över modeller som inte har verktygskapacitet
🌍FlersprĂ„kig avsiktsdetektering PT/ZH/ES/AR-nyckelord i AutoCombo-poĂ€ngsĂ€ttning — bĂ€ttre modellval för icke-engelsk innehĂ„ll
📊Benchmarkdrivna fallbacks Verklig p95 latens frĂ„n liveförfrĂ„gningar feeds combo scoring — AutoCombo lĂ€r sig av faktiska data
🔁BegĂ€r deduplicering InnehĂ„llshashbaserat dedup-fönster – sĂ€ker för flera agenter, förhindrar dubbletter av avgifter
🔌Strategi för pluggbar router Utökningsbart RouterStrategy-grĂ€nssnitt — lĂ€gg till anpassad routinglogik som plugins ### 🚀 Previous v2.0.9+ — Playground, CLI Fingerprints & ACP
Funktion Vad det gör
🎼Modell lekplats Dashboard-sida för att testa alla modeller direkt — leverantör/modell/slutpunktsvĂ€ljare, Monaco Editor, streaming, avbryt, timing
🔏CLI Fingerprint Matching BestĂ€llning av rubrik/kropp per leverantör för att matcha inbyggda CLI-signaturer – vĂ€xla per leverantör i InstĂ€llningar > SĂ€kerhet.Din proxy-IP bevaras
đŸ€ACP Support (Agent Client Protocol) CLI-agentupptĂ€ckt (Codex, Claude, Goose, Gemini CLI, OpenClaw + 9 till), process spawner, /api/acp/agents slutpunkt
đŸ€–ACP Agents Dashboard Debug â€ș Agentsida — rutnĂ€t med 14 agenter med installationsstatus, version, anpassad agentform för alla CLI-verktyg.OpenCode-anvĂ€ndare fĂ„r en "Ladda ner opencode.json"-knapp som automatiskt genererar en fĂ€rdig att anvĂ€nda konfiguration med alla tillgĂ€ngliga modeller.
🔧Anpassad modell apiFormat Routing Anpassade modeller med apiFormat: "responses" dirigeras nu korrekt till Responses API-översĂ€ttaren
🏱Codex Workspace Isolation Flera Codex-arbetsytor per e-post — OAuth separerar anslutningar korrekt efter arbetsyte-ID
🔄Automatisk uppdatering av elektroner Skrivbordsapp söker efter uppdateringar + automatisk installation vid omstart ### đŸ€– Agent & Protocol Operations (v2.0)
Funktion Vad det gör
🔧MCP-server (25 verktyg) IDE/agent-verktyg via 3 transporter: stdio, SSE (/api/mcp/sse), Streamable HTTP (/api/mcp/stream). 18 kĂ€rnor + 3 minne + 4 fĂ€rdighetsverktyg
đŸ€A2A-server (JSON-RPC + SSE) Agent-till-agent-uppgiftskörning med synkroniserings- och streamingflöden
🧭Konsoliderade slutpunkterssida Hanteringssida med flikar med flikarna Endpoint Proxy, MCP, A2A och API Endpoints
đŸŽšïžService aktivera/inaktivera vĂ€xlar ON/OFF-omkopplare för MCP och A2A med instĂ€llningsbestĂ€ndighet (standard: OFF)
đŸ›°ïžMCP Runtime Heartbeat Verklig processstatus (pid, drifttid, hjĂ€rtslagsĂ„lder, transport, omfĂ„ngslĂ€ge)
📋MCP Audit Trail Filtrerbara granskningsloggar med framgĂ„ng/misslyckande och nyckeltillskrivning
🔐MCP Scope Enforcement 10 granulĂ€ra scope-behörigheter för kontrollerad verktygsĂ„tkomst
📡A2A Task Lifecycle Management Lista/filtrera uppgifter, inspektera hĂ€ndelser/artefakter, avbryt pĂ„gĂ„ende uppgifter
📋Agent Card Discovery /.well-known/agent.json för automatisk upptĂ€ckt av klient
đŸ§ȘProtokoll E2E testsele Verkliga MCP SDK + A2A-klientflöden i test:protocols:e2e
⚙Driftskontroller Switch combo, applicera elasticitetsprofiler, Ă„terstĂ€ll brytare frĂ„n en kontrollyta ### 🧠 Routing & Intelligence
Funktion Vad det gör
🎯Smart 4-lagers reserv Automatisk rutt: Prenumeration → API-nyckel → Billigt → Gratis
📊KvotspĂ„rning i realtid Live token count + Ă„terstĂ€ll nedrĂ€kning per leverantör
🔄FormatöversĂ€ttning OpenAI ↔ Claude ↔ Gemini ↔ Svar med schemasĂ€kra konverteringar
đŸ‘„Multi-Account Support Flera konton per leverantör med intelligent urval
🔄Auto Token Refresh OAuth-tokens uppdateras automatiskt med försök igen
🎹Anpassade kombinationer 9 balanseringsstrategier + reservkedjekontroll
🌐Wildcard-router provider/* dynamisk routing
🧠TĂ€nker pĂ„ budgetkontroller GrĂ€nser för passthrough, auto, anpassade och adaptiva resonemang
🔀Modellalias Inbyggd + anpassad modellaliasing och migreringssĂ€kerhet
⚡BakgrundsförsĂ€mring Rikta lĂ„gprioriterade bakgrundsuppgifter till billigare modeller
đŸ§ȘTask-Aware Smart Routing VĂ€lj modell automatiskt efter innehĂ„llstyp (kodning/vision/analys/sammanfattning)
🔄A2A Agent Workflows Deterministisk FSM-orkestrator för statistiska agentavrĂ€ttningar i flera steg
🔀Adaptiv routing Dynamisk strategiöverstyrning baserad pĂ„ tokenvolym och promptkomplexitet
đŸŽČProvider MĂ„ngfald Shannon entropi poĂ€ng balanserar auto-combo trafikdistribution
💬System Prompt Injection Globala beteendekontroller tillĂ€mpas konsekvent
📄Responses API-kompatibilitet FullstĂ€ndigt /v1/responses-stöd för Codex och avancerade agentarbetsflöden ### đŸŽ” Multi-Modal APIs
Funktion Vad det gör
đŸ–ŒïžBildgenerering /v1/images/generations med moln och lokala backends
📐InbĂ€ddningar /v1/embeddings för sök- och RAG-pipelines
đŸŽ€Ljudtranskription /v1/audio/transcriptions — 7 leverantörer (Deepgram Nova 3, AssemblyAI, Groq Whisper, HuggingFace, ElevenLabs, OpenAI, Azure), automatisk sprĂ„kdetektering, MP4/MP3/WAV-stöd
🔊Text-till-tal /v1/audio/speech — 10 leverantörer (ElevenLabs, OpenAI, Deepgram, Cartesia, PlayHT, HuggingFace, Nvidia NIM, Inworld, Coqui, Tortoise) med korrekta felmeddelanden
🎬Videogenerering /v1/videos/generations (ComfyUI + SD WebUI-arbetsflöden)
đŸŽ”Music Generation /v1/music/generations (ComfyUI-arbetsflöden)
đŸ›ĄïžModerationer /v1/moderations sĂ€kerhetskontroller
🔀Omrankning /v1/rerank för relevanspoĂ€ng
🔍Webbsökning🆕 /v1/search — 5 leverantörer (Serper, Brave, Perplexity, Exa, Tavily), 6 500+ gratis/mĂ„nad, auto-failover, cache ### đŸ›Ąïž Resilience, Security & Governance
Funktion Vad det gör
🔌Cremsbrytare Per modell trip/Ă„terhĂ€mtning med tröskelkontroller
🎯Endpoint-Aware Models Anpassade modeller deklarerar stödda slutpunkter + API-format
đŸ›ĄïžAnti-Ă„nflock Mutex + semaforskydd vid Ă„terförsök/hastighetshĂ€ndelser
🧠Semantisk + Signaturcache Kostnads-/latensminskning med tvĂ„ cachelager
⚡BegĂ€r idempotens Dubblett skyddsfönster
🔒TLS Fingerprint Spoofing WebblĂ€sarliknande TLS-fingeravtryck —minskar botdetektering och kontoflaggning
🔏CLI Fingerprint Matching Matchar inbyggda CLI-begĂ€ransignaturer —minskar förbudsrisken samtidigt som proxy-IP bevaras
🌐IP-filtrering Kontroll av tillĂ„telse/blockeringslista för exponerade distributioner
📊Redigerbara hastighetsgrĂ€nser Konfigurerbara globala/leverantörsnivĂ„grĂ€nser med bestĂ€ndighet
📉Graciös nedbrytning Reserver med flerskiktskapacitet som skyddar kĂ€rn-gatewayoperationer
📜Config Audit Trail Diff-baserad Ă€ndringsspĂ„rning förhindrar driftdrift med enkla rollbacks
⏳Provider Health Sync Proaktiv övervakning av tokens utgĂ„ng som utlöser varningar före auktoriseringsfel
đŸšȘAuto-inaktivera förbjudna konton Funktionsbrytare tĂ€tar permanent blockerade tokenkonton automatiskt
🔑API Key Management + Scoping SĂ€ker nyckelutgivning/rotation och modell/leverantörskontroller
đŸ‘ïžOmfattad API-nyckel avslöja🆕 Opt-in Ă„terstĂ€llning av API-nycklar via ALLOW_API_KEY_REVEAL
đŸ›ĄïžSkyddade /modeller Valfri autentisering och leverantörsdöljning för modellkatalog ### 📊 Observability & Analytics
Funktion Vad det gör
📝BegĂ€ran + proxyloggning FullstĂ€ndig begĂ€ran/svar och proxyloggning
📉Strömmade detaljerade loggar🆕 Rekonstruerar SSE-nyttolastströmmar rent in i anvĂ€ndargrĂ€nssnittet
📋Unified Logs Dashboard BegĂ€ran, proxy, revision och konsolvyer pĂ„ en sida
🔍BegĂ€r telemetri p50/p95/p99 latens och spĂ„rning av begĂ€ran
đŸ„HĂ€lsoinstrumentpanel Drifttid, brytartillstĂ„nd, lockouter, cachestatistik
💰KostnadsspĂ„rning Budgetkontroller och prissĂ€ttning per modell
📈Analytiska visualiseringar Modell-/leverantörsanvĂ€ndningsinsikter och trendvyer
đŸ§ȘUtvĂ€rderingsram Golden set-testning med konfigurerbara matchstrategier
📡Live Diagnostics🆕 Semantisk cache-bypass för exakt combo live-testning ### ☁ Deployment & Platform
Funktion Vad det gör
🌐Distribuera var som helst Localhost, VPS, Docker, Molnmiljöer
🚇Cloudflare Tunnel🆕 Snabbtunnelintegrering med ett klick frĂ„n instrumentpanelen
🔑API-nyckelmodellfiltrering Native /v1/models-svar filtreras via tilldelade bĂ€rarkontextroller
⚡Smart Cache Bypass Konfigurerbar TTL-heuristik och tvingade Ă„terhĂ€mtningskontroller
🔄SĂ€kerhetskopiering/Ă„terstĂ€llning Export/import och katastrofĂ„terstĂ€llningsflöden
🧙Onboarding Wizard Första körningen guidad installation
🔧CLI Tools Dashboard InstĂ€llning med ett klick för populĂ€ra kodningsverktyg
🎼Modell lekplats Testa valfri leverantör/modell/slutpunkt frĂ„n instrumentpanelen
🔏CLI Fingerprint Toggle Fingeravtrycksmatchning per leverantör i InstĂ€llningar > SĂ€kerhet
🌐i18n (30 sprĂ„k) FullstĂ€ndig instrumentpanel + stöd för dokumentsprĂ„k med RTL-tĂ€ckning
đŸ§čRensa alla modeller Rensa modelllistan med ett klick i leverantörsinformation
đŸ‘ïžSidofĂ€ltskontroller🆕 Dölj komponenter och integrationer frĂ„n UtseendeinstĂ€llningar
📋UtgĂ„vamallar Standardiserade GitHub-mallar för buggar och funktioner
📂Anpassad datakatalog DATA_DIR Ă„sidosĂ€ttande för lagringsplats ### 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 kvot, rÀnta eller hÀlsa misslyckas, flyttar OmniRoute automatiskt till nÀsta kandidat utan manuell vÀxling.#### Protocol management that is visible and operable

  • MCP + A2A kan upptĂ€ckas i anvĂ€ndargrĂ€nssnitt och dokument (inte dolda)
  • Protokollstatus-API:er exponerar live operationsdata (/api/mcp/*, /api/a2a/*)
  • Dashboards inkluderar Ă„tgĂ€rder för dag-2 operationer (kombinationsvĂ€xlingar, Ă„terstĂ€llning av brytare, avbokning av uppgifter)#### Translator + validation workflow

ÖversĂ€ttaromrĂ„det inkluderar:

-Lekplats: begÀr omvandlingskontroller -Chatttestare: fullstÀndig begÀran/svar tur och retur -TestbÀnk: flera fall i en körning -Live Monitor: trafikvy i realtid

Plus protokollvalidering med riktiga klienter via npm run test:protocols:e2e.

📖MCP Server README— Verktygsreferens, IDE-konfigurationer och klientexempel

📖A2A Server README— FĂ€rdigheter, JSON-RPC-metoder, streaming och uppgiftslivscykel## đŸ§Ș Evaluations (Evals)

OmniRoute inkluderar ett inbyggt utvĂ€rderingsramverk för att testa LLM-svarskvalitet mot en gyllene uppsĂ€ttning. FĂ„ Ă„tkomst till den viaAnalytics → Evalsi instrumentpanelen.### Built-in Golden Set

Det förinstallerade "OmniRoute Golden Set" innehÄller testfall för:

  • HĂ€lsningar, matematik, geografi, kodgenerering
  • ÖverensstĂ€mmelse med JSON-format, översĂ€ttning, generering av markdown
  • SĂ€kerhetsvĂ€gran (skadligt innehĂ„ll), rĂ€kning, boolesk logik### Evaluation Strategies
Strategi Beskrivning Exempel
exakt Utdata mÄste matcha exakt "4"
innehÄller Utdata mÄste innehÄlla delstrÀng (skiftlÀgeskÀnslig) "Paris"
regex Utdata mÄste matcha regexmönster "1.*2.*3"
anpassad Anpassad JS-funktion returnerar true/false (output) => output.length > 10 ---

📖 Setup Guide

Protocol Setup (MCP + A2A)

đŸ§© MCP Setup (Model Context Protocol)

Starta MCP-transport i stdio-lÀge:```bash omniroute --mcp


Rekommenderat valideringsflöde:

1. Anslut din MCP-klient via stdio.
2. Kör `omniroute_get_health`.
3. Kör `omniroute_list_combos`.
4. Öppna `/dashboard/mcp` för att bekrĂ€fta hjĂ€rtslag, aktivitet och granskning.

AnvÀndbara API:er för automatisering:

- `GET /api/mcp/status`
- `GET /api/mcp/tools`
- `GET /api/mcp/audit`
- `GET /api/mcp/audit/stats`</details>

<detaljer>
<summary><b>đŸ€ A2A-instĂ€llning (Agent2Agent)</b></summary>

UpptÀck agenten:```bash
curl http://localhost:20128/.well-known/agent.json

Skicka en uppgift:```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."}]}}'


Hantera livscykel:

- `GET /api/a2a/status`
- `GET /api/a2a/tasks`
- `GET /api/a2a/tasks/:id`
- `POST /api/a2a/tasks/:id/avbryt`

Operativt anvÀndargrÀnssnitt:

- `/dashboard/a2a` för observerbarhet för uppgift/tillstÄnd/ström och rökÄtgÀrder</details>

<detaljer>
<summary><b>đŸ§Ș End-to-end-protokollvalidering</b></summary>

Validera bÄda protokollen med riktiga klienter:```bash
npm run test:protocols:e2e

Detta verifierar:

  • MCP SDK-klientanslut/lista/samtal
  • A2A upptĂ€ckt/skicka/strömma/fĂ„/avbryt
  • Korskontrollera data i MCP-revision och A2A-uppgiftshanterings-API:er
💳 Prenumerationsleverantö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

**Proffstips:**AnvÀnd Opus för komplexa uppgifter, Sonnet för snabbhet. OmniRoute spÄrar kvot 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)

Varje Codex-konto har nu policyvÀxlingar i Dashboard -> Providers:

  • 5h (PÅ/AV): tillĂ€mpa policyn för 5-timmars fönstertröskel.
  • "Veckovis" (PÅ/AV): tillĂ€mpa policyn för tröskelvĂ€rden för veckofönster.
  • Tröskelbeteende: nĂ€r ett aktiverat fönster nĂ„r >=90 % anvĂ€ndning hoppas kontot över.
  • Rotationsbeteende: OmniRoute leder automatiskt till nĂ€sta kvalificerade Codex-konto.
  • ÅterstĂ€llbeteende: nĂ€r leverantörens "resetAt"-tiden gĂ„r, blir kontot automatiskt kvalificerat igen.

Scenarier:

  • 5h ON + Weekly ON: kontot hoppas över nĂ€r endera fönstret nĂ„r tröskeln.
  • 5h OFF + Weekly ON: endast veckovis anvĂ€ndning kan blockera kontot.
  • 5h ON + Weekly OFF: endast 5-timmars anvĂ€ndning kan blockera kontot.
  • resetAt godkĂ€nd: kontot Ă„tergĂ„r till rotation automatiskt (ingen manuell Ă„teraktivering).### 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

**BÀst vÀrde:**Enorma gratis nivÄ! AnvÀnd detta före betalda 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-nyckelleverantörer### NVIDIA NIM (FREE developer access — 70+ models)
  1. Registrera dig: build.nvidia.com
  2. FÄ gratis API-nyckel (1000 slutsatspoÀng ingÄr)
  3. Dashboard → LĂ€gg till leverantör → NVIDIA NIM:
    • API-nyckel: nvapi-din-nyckel

Modeller:"nvidia/llama-3.3-70b-instruct", "nvidia/mistral-7b-instruct" och 50+ till

**Proffstips:**OpenAI-kompatibelt API — fungerar sömlöst med OmniRoutes formatöversĂ€ttning!### DeepSeek

  1. Registrera dig: platform.deepseek.com
  2. HĂ€mta API-nyckel
  3. Dashboard → LĂ€gg till leverantör → DeepSeek

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

  1. Registrera dig: console.groq.com
  2. Skaffa API-nyckel (gratis nivÄ ingÄr)
  3. Dashboard → LĂ€gg till leverantör → Groq

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

**Proffstips:**Ultrasnabb slutledning — bĂ€st för realtidskodning!### OpenRouter (100+ Models)

  1. Registrera dig: openrouter.ai
  2. HĂ€mta API-nyckel
  3. Dashboard → LĂ€gg till leverantör → OpenRouter

**Modeller:**FÄ tillgÄng till 100+ modeller frÄn alla större leverantörer genom en enda API-nyckel.

Beteende pÄ instrumentpanelen:OpenRouter-modeller hanteras frÄnTillgÀngliga modeller. Manuell tillÀgg, import och automatisk synkronisering uppdaterar alla samma lista.

💰 Billiga leverantörer (backup)### GLM-4.7 (Daily reset, $0.6/1M)
  1. Registrera dig: Zhipu AI
  2. HÀmta API-nyckel frÄn Coding Plan
  3. Instrumentpanel → LĂ€gg till API-nyckel:
    • Leverantör: glm
    • API-nyckel: din nyckel

AnvÀnd:glm/glm-4.7

**Proffstips:**Coding Plan erbjuder 3× kvot till 1/7 kostnad! ÅterstĂ€ll dagligen 10:00.### MiniMax M2.1 (5h reset, $0.20/1M)

  1. Registrera dig: MiniMax
  2. HĂ€mta API-nyckel
  3. Instrumentpanel → LĂ€gg till API-nyckel

AnvÀnd:minimax/MiniMax-M2.1

**Proffstips:**Billigaste alternativet för lÄnga sammanhang (1M tokens)!### Kimi K2 ($9/month flat)

  1. Prenumerera: Moonshot AI
  2. HĂ€mta API-nyckel
  3. Instrumentpanel → LĂ€gg till API-nyckel

AnvÀnd:kimi/kimi-latest

**Proffstips:**Fast $9/mÄnad för 10 miljoner tokens = $0,90/1 miljon effektiv kostnad!

🆓 GRATIS leverantörer (nödbackup)### 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
🎹 Skapa kombinationer### 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-integration### 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

AnvÀnd sidanCLI Toolsi instrumentpanelen för konfiguration med ett klick, eller redigera ~/.claude/settings.json manuellt.### Codex CLI

export OPENAI_BASE_URL="http://localhost:20128"
export OPENAI_API_KEY="your-omniroute-api-key"

codex "your prompt"

OpenClaw

Alternativ 1 — Instrumentpanel (rekommenderas):``` Dashboard → CLI Tools → OpenClaw → Select Model → Apply


**Alternativ 2 — Manuell:**Redigera `~/.openclaw/openclaw.json`:```json
{
  "models": {
    "providers": {
      "omniroute": {
        "baseUrl": "http://127.0.0.1:20128/v1",
        "apiKey": "sk_omniroute",
        "api": "openai-completions"
      }
    }
  }
}

**Obs!**OpenClaw fungerar endast med lokala OmniRoute. AnvÀnd 127.0.0.1 istÀllet för localhost för att undvika problem med IPv6-upplö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

**Steg 1:**LÀgg till OmniRoute som en anpassad leverantör:```bash opencode /connect

Select "Other" → Enter ID: "omniroute" → Enter your OmniRoute API key


**Steg 2:**Skapa/redigera `opencode.json` i din projektrot:```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)" }
      }
    }
  }
}

**Steg 3:**VĂ€lj modell i OpenCode:```bash /models

Select any OmniRoute model from the list


>**Tips:**LÀgg till valfri modell som Àr tillgÀnglig i din OmniRoute `/v1/models` slutpunkt till avsnittet `modeller`. AnvÀnd formatet `provider/model-id` frÄn din OmniRoute-instrumentpanel.</details>

---

## Felsökning

<detaljer>
<summary><b>Klicka för att expandera felsökningsguiden</b></summary>

**"SprÄkmodellen gav inga meddelanden"**

- Leverantörskvoten Ă€r slut → Kontrollera instrumentpanelens kvotföljare
- Lösning: AnvÀnd kombinationsalternativ eller byt till billigare nivÄ

**TaxebegrÀnsning**

- Prenumerationskvot ute → Fallback till GLM/MiniMax
- LĂ€gg till kombination: `cc/claude-opus-4-6 → glm/glm-4.7 → if/kimi-k2-thinking`

**OAuth-token har löpt ut**

- Automatisk uppdatering av OmniRoute
- Om problemen kvarstĂ„r: Dashboard → Leverantör → Återanslut

**Höga kostnader**

- Kontrollera anvĂ€ndningsstatistik i Dashboard → Kostnader
- Byt primÀr modell till GLM/MiniMax
- AnvÀnd gratis nivÄ (Gemini CLI, Qoder) för icke-kritiska uppgifter

**Dashboard/API-portar Àr fel**

- `PORT` Àr den kanoniska basporten (och API-porten som standard)
- `API_PORT` ÄsidosÀtter endast OpenAI-kompatibel API-lyssnare
- `DASHBOARD_PORT` ÄsidosÀtter endast instrumentpanelen/Next.js-lyssnaren
- StÀll in `NEXT_PUBLIC_BASE_URL` till din instrumentpanel/offentliga webbadress (för OAuth-Äteruppringningar)

**Molnsynkroniseringsfel**

- Verifiera att `BASE_URL` pekar pÄ din körinstans
- Verifiera "CLOUD_URL" pekar till din förvÀntade molnslutpunkt
- HÄll `NEXT_PUBLIC_*`-vÀrdena i linje med vÀrden pÄ serversidan

**Första inloggningen fungerar inte**

- Kontrollera `INITIAL_PASSWORD` i `.env`
- Om det inte Àr instÀllt Àr reservlösenordet "123456".

**Inga förfrÄgningsloggar**

- BegÀran artefakter skrivs till `DATA_DIR/call_logs/` som en JSON-fil per begÀran
- Aktivera pipelinefĂ„ngst frĂ„n Dashboard → Loggar → BegĂ€r loggar om du behöver detaljerade nyttolaster per steg
- StÀll in `APP_LOG_TO_FILE=true` om du ocksÄ vill ha applikationskonsolloggar i `logs/application/app.log`
- Justera "APP_LOG_MAX_FILE_SIZE", "APP_LOG_RETENTION_DAYS", "APP_LOG_MAX_FILES" och "CALL_LOG_MAX_ENTRIES" efter behov

**Anslutningstest visar "Invalid" för OpenAI-kompatibla leverantörer**

- MÄnga leverantörer exponerar inte en `/models` slutpunkt
- OmniRoute v1.0.6+ inkluderar reservvalidering via chattslutföranden
- Se till att baswebbadressen innehĂ„ller suffixet `/v1`### 🔐 OAuth on a Remote Server

<a name="oauth-on-a-remote-server"></a>
<a name="oauth-em-servider-remoto"></a>

>**⚠ Viktigt för anvĂ€ndare som kör OmniRoute pĂ„ en VPS, Docker eller vilken fjĂ€rrserver som helst**#### Why does Antigravity / Gemini CLI OAuth fail on remote servers?

**Antigravity**och**Gemini CLI**-leverantörerna anvÀnder**Google OAuth 2.0**. Google krÀver att "redirect_uri" i OAuth-flödet exakt matchar en av de förregistrerade URI:erna i appens Google Cloud Console.

OAuth-uppgifterna som Àr paketerade i OmniRoute Àr registrerade**endast för "localhost"**. NÀr du anvÀnder OmniRoute pÄ en fjÀrrserver (t.ex. `https://omniroute.myserver.com`), avvisar Google autentiseringen med:```
Error 400: redirect_uri_mismatch

Solution: Configure your own OAuth credentials

Du mÄste skapa ettOAuth 2.0 Client IDi Google Cloud Console med din servers URI.#### Step-by-step

1. Öppna Google Cloud Console

GĂ„ till: https://console.cloud.google.com/apis/credentials

2. Skapa ett nytt OAuth 2.0-klient-ID

  • Klicka pĂ„**"+ Skapa inloggningsuppgifter"→"OAuth-klient-ID"**
  • Applikationstyp:"Webbapplikation"
  • Namn: allt du gillar (t.ex. "OmniRoute Remote")

3. LĂ€gg till auktoriserade omdirigerings-URI:er

I fÀltet**"Auktoriserade omdirigerings-URI:er"**lÀgger du till:``` https://your-server.com/callback


> ErsÀtt `din-server.com` med din servers domÀn eller IP (inkludera porten om det behövs, t.ex. `http://45.33.32.156:20128/callback`).

**4. Spara och kopiera inloggningsuppgifterna**

NĂ€r du har skapat kommer Google att visa**klient-ID**och**klienthemlighet**.

**5. StÀll in miljövariabler**

I din `.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. Starta om OmniRoute```bash

npm:

npm run dev

Docker:

docker restart omniroute


**7. Försök ansluta igen**

Dashboard → Leverantörer → Antigravity (eller Gemini CLI) → OAuth

Google kommer nu att omdirigera korrekt till `https://din-server.com/callback`.---

#### Temporary workaround (without custom credentials)

Om du inte vill stÀlla in dina egna autentiseringsuppgifter just nu kan du fortfarande anvÀnda det**manuella URL-flödet**:

1. OmniRoute öppnar Googles auktoriserings-URL
2. Efter auktorisering försöker Google omdirigera till `localhost` (som misslyckas pÄ fjÀrrservern)
3.**Kopiera hela webbadressen**frÄn webblÀsarens adressfÀlt (Àven om sidan inte laddas)
4. Klistra in den URL:en i fÀltet som visas i OmniRoute-anslutningsmodalen
5. Klicka pÄ**"Anslut"**

> Detta fungerar eftersom auktoriseringskoden i URL:en Àr giltig oavsett om omdirigeringssidan har laddats.---

<detaljer>
<summary><b>đŸ‡§đŸ‡· VersĂŁo em PortuguĂȘs</b></summary>#### Por que o OAuth do Antigravity / Gemini CLI falha em servidores remotos?

Os provedores**Antigravity**och**Gemini CLI**usam**Google OAuth 2.0**för autenticação. O Google exige que a `redirect_uri` usada no fluxo OAuth seja**exatamente**uma das URIs pré-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 (ex: `https://omniroute.meuservidor.com`), o Google rejeita a autenticação com:```
Error 400: redirect_uri_mismatch

Solução: Configure suas próprias credenciais OAuth

VocĂȘ precisa criar umOAuth 2.0 Client IDno Google Cloud Console com a URI do seu service.#### Passo a passo

1. Åtkomst till Google Cloud Console

Abra: https://console.cloud.google.com/apis/credentials

2. Crie um novo OAuth 2.0 Client ID

  • Klicka pĂ„ dem**"+ Skapa inloggningsuppgifter"→"OAuth-klient-ID"**
  • Typo de aplicativo:"Webbapplikation"
  • Namn: escolha qualquer nome (ex: OmniRoute Remote)

3. Adicione som auktoriserade omdirigerings-URI

Ingen campo**"Auktoriserade omdirigerings-URIs"**, adicione:``` https://seu-servidor.com/callback


> Substitua `seu-servidor.com` pelo domĂ­nio eller IP do seu servidor (inklusive en porta se necessĂĄrio, ex: `http://45.33.32.156:20128/callback`).

**4. Spara e kopia som credenciais**

ApĂłs criar, o Google mostrarĂĄ o**Client ID**e o**Client Secret**.

**5. Konfigurera 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 → Leverantörer → Antigravity (ou Gemini CLI) → OAuth

Agora o Google redirecionarå corretamente para `https://seu-servidor.com/callback` och 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 de autorização till Google
2. ApĂłs vocĂȘ autorizar, o Google tentarĂĄ redirecionar para `localhost` (que falha no servidor remoto)
3.**Kopiera en URL komplett**da barra de endereço do seu webblÀsare (mesmo que a pågina não carregue)
4. Cole essa URL no campo que aparece no modal de conexĂŁo do OmniRoute
5. Klicka pÄ dem**"Anslut"**

> Este workaround funciona porque o código de autorização na URL é vålido independente do redirect ter carregado ou não.</details>

---

</details>

## đŸ› ïž Tech Stack

<detaljer>
<summary><b>Klicka för att expandera teknisk stackinformation</b></summary>

-**Runtime**: Node.js 18–22 LTS (⚠ Node.js 24+ stöds**inte**— inbyggda binĂ€ra filer för "better-sqlite3" Ă€r inkompatibla)
-**SprĂ„k**: TypeScript 5.9 —**100 % TypeScript**över `src/` och `open-sse/` (noll `alla` i kĂ€rnmoduler sedan v2.0)
-**Framework**: Next.js 16 + React 19 + Tailwind CSS 4
-**Databas**: LowDB (JSON) + SQLite (domÀntillstÄnd + proxyloggar + MCP-granskning + routingbeslut)
-**Schema**: Zod (MCP-verktyg I/O-validering, API-kontrakt)
-**Protokoll**: MCP (stdio/HTTP) + A2A v0.3 (JSON-RPC 2.0 + SSE)
-**Streaming**: ServersÀnda hÀndelser (SSE)
-**Auth**: OAuth 2.0 (PKCE) + JWT + API-nycklar + MCP Scoped Authorization
-**Test**: Node.js testlöpare + Vitest (900+ tester inklusive enhet, integration, E2E)
-**CI/CD**: GitHub-ÄtgÀrder (automatisk npm-publicering + Docker Hub vid release)
-**Webbplats**: [omniroute.online](https://omniroute.online)
-**Paket**: [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ömbrytare, exponentiell backoff, anti-dundrande flock, TLS-spoofing, auto-combo sjÀlvlÀkning</details>

---

## Dokumentation

| Dokument | Beskrivning |
| ------------------------------------------------------ | ---------------------------------------------------------- |
| [AnvÀndarguide](docs/USER_GUIDE.md) | Leverantörer, kombinationer, CLI-integration, distribution |
| [API-referens](docs/API_REFERENCE.md) | Alla slutpunkter med exempel |
| [MCP-server](open-sse/mcp-server/README.md) | 16 MCP-verktyg, IDE-konfigurationer, Python/TS/Go-klienter |
| [A2A-server](src/lib/a2a/README.md) | JSON-RPC 2.0-protokoll, fÀrdigheter, streaming, uppgiftshantering |
| [Auto-Combo Engine](docs/auto-combo.md) | 6-faktor poÀng, lÀgespaket, sjÀlvlÀkande |
| [Felsökning](docs/TROUBLESHOOTING.md) | Vanliga problem och lösningar |
| [Arkitektur](docs/ARCHITECTURE.md) | Systemarkitektur och interna delar |
| [Bidrar](CONTRIBUTING.md) | UtvecklingsupplÀgg och riktlinjer |
| [OpenAPI Spec](docs/openapi.yaml) | OpenAPI 3.0-specifikation |
| [SÀkerhetspolicy](SECURITY.md) | SÄrbarhetsrapportering och sÀkerhetsrutiner |
| [VM-distribution](docs/VM_DEPLOYMENT_GUIDE.md) | Komplett guide: VM + nginx + Cloudflare-installation |
| [Feature Gallery](docs/FEATURES.md) | Visuell visning av instrumentpanelen med skÀrmdumpar |
| [Releasechecklista](docs/RELEASE_CHECKLIST.md) | Steg för validering av pre-release |---

## đŸ—ș Roadmap

OmniRoute har**210+ funktioner planerade**över flera utvecklingsfaser. HÀr Àr nyckelomrÄdena:

| Kategori | Planerade funktioner | Höjdpunkter |
| ------------------------------ | ---------------- | ------------------------------------------------------------------------------------------------------ |
| 🧠**Routing & intelligens**| 25+ | Routing med lĂ€gsta latens, taggbaserad routing, kvotförhandskontroll, val av P2C-konto |
| 🔒**SĂ€kerhet och efterlevnad**| 20+ | SSRF-hĂ€rdning, cloaking av autentiseringsuppgifter, hastighetsgrĂ€ns per endpoint, hanteringsnyckelomfattning |
| 📊**Observerbarhet**| 15+ | OpenTelemetry-integration, kvotövervakning i realtid, kostnadsspĂ„rning per modell |
| 🔄**Providerintegrationer**| 20+ | Dynamiskt modellregister, nedkylning av leverantörer, Codex för flera konton, Copilot-kvotanalys |
| ⚡**Prestanda**| 15+ | Dubbla cachelager, promptcache, svarscache, streaming keepalive, batch API |
| 🌐**Ekosystem**| 10+ | WebSocket API, config hot-reload, distribuerad config store, kommersiellt lĂ€ge |### 🔜 Coming Soon

- 🔗**OpenCode Integration**— Inbyggt leverantörsstöd för OpenCode AI-kodnings-IDE
- 🔗**TRAE Integration**— FullstĂ€ndigt stöd för TRAE AI-utvecklingsramverket
- 📩**Batch API**— Asynkron batchbearbetning för bulkförfrĂ„gningar
- 🎯**Taggbaserad routing**— RuttbegĂ€randen baserade pĂ„ anpassade taggar och metadata
- 💰**LĂ€gsta kostnadsstrategi**— VĂ€lj automatiskt den billigaste tillgĂ€ngliga leverantören

> 📝 FullstĂ€ndiga funktionsspecifikationer tillgĂ€ngliga i [`docs/new-features/`](docs/new-features/) (217 detaljerade specifikationer)---

## đŸ‘„ 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. Dela förvaret
2. Skapa din funktionsgren (`git checkout -b feature/amazing-feature`)
3. BekrÀfta dina Àndringar (`git commit -m 'LÀgg till fantastisk funktion'`)
4. Tryck till grenen (`git push origin feature/amazing-feature`)
5. Öppna en Pull Request

Se [CONTRIBUTING.md](CONTRIBUTING.md) för detaljerade riktlinjer.### 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

SĂ€rskilt tack till**9routeravdecolua**— originalprojektet som inspirerade denna gaffel. OmniRoute bygger pĂ„ den otroliga grunden med ytterligare funktioner, multimodala API:er och en fullstĂ€ndig TypeScript-omskrivning.

SĂ€rskilt tack till**CLIProxyAPI**— den ursprungliga Go-implementeringen som inspirerade denna JavaScript-port.---

Licens

MIT-licens - se LICENS för detaljer.---

Built with ❀ for developers who code 24/7
omniroute.online