111 KiB
đ 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---
đ Webbplats âą đ Snabbstart âą đĄ Funktioner âą đ Dokument âą đ° PrissĂ€ttning âą đŹ WhatsApp
đ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
đž Dashboard Preview
| Sida | SkÀrmdump | |
|---|---|---|
| Leverantörer | ![]() |
|
| Kombos | ![]() |
|
| Analytik | ![]() |
|
| HĂ€lsa | ![]() |
|
| ĂversĂ€ttare | ![]() |
|
| InstÀllningar | ![]() |
|
| CLI-verktyg | ![]() |
|
| AnvÀndningsloggar | ![]() |
|
| Slutpunkter | ![]() |
đ€ 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
â 205K
NanoBot
â 20,9K
PicoClaw
â 14,6K
ZeroClaw
â 9,9K
IronClaw
â 2,1K
OpenCode
â 106K
Codex CLI
â 60,8K
Claude Code
â 67,3K
Gemini CLI
â 94,7K
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"
- gc/gemini-3-flash
- if/kimi-k2-thinking
- qw/qwen3-coder-plus
Monthly cost: $0 Outcome: stable free coding workflow
**Playbook C: 24/7 alltid-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
- Start MCP transport (
omniroute --mcp) for tool-driven operations - Run A2A tasks via
message/sendandmessage/stream - Observe via /dashboard/endpoint (MCP and A2A tabs)
- Toggle services via inline status controls
---
## đ Start Free â Zero Configuration Cost
> 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 -gefter installationen för att aktivera inbyggda byggskript som krĂ€vs avbĂ€ttre-sqlite3och@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."}]}}'
5) Validate everything end-to-end (recommended)
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
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=quicellerautoom 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.
dockerstopbör tillÄtas avslutas sÄ att OmniRoute kan kontrollera de senaste Àndringarna tillbaka tillstorage.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/cloudflaredom 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)
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
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.resetAtgodkÀ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
- Registrera dig: build.nvidia.com
- FÄ gratis API-nyckel (1000 slutsatspoÀng ingÄr)
- Dashboard â LĂ€gg till leverantör â NVIDIA NIM:
- API-nyckel:
nvapi-din-nyckel
- API-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
- Registrera dig: platform.deepseek.com
- HĂ€mta API-nyckel
- Dashboard â LĂ€gg till leverantör â DeepSeek
Modeller:deepseek/deepseek-chat, deepseek/deepseek-coder### Groq (Free Tier Available!)
- Registrera dig: console.groq.com
- Skaffa API-nyckel (gratis nivÄ ingÄr)
- 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)
- Registrera dig: openrouter.ai
- HĂ€mta API-nyckel
- 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.
- Registrera dig: Zhipu AI
- HÀmta API-nyckel frÄn Coding Plan
- Instrumentpanel â LĂ€gg till API-nyckel:
- Leverantör:
glm - API-nyckel:
din nyckel
- Leverantör:
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)
- Registrera dig: MiniMax
- HĂ€mta API-nyckel
- 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)
- Prenumerera: Moonshot AI
- HĂ€mta API-nyckel
- 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!
Dashboard â Connect Qoder
â Qoder OAuth login
â Unlimited usage
Models:
if/kimi-k2-thinking
if/qwen3-coder-plus
if/glm-4.7
if/minimax-m2
if/deepseek-r1
Qwen (4 FREE models via Device Code)
Dashboard â Connect Qwen
â Device code authorization
â Unlimited usage
Models:
qw/qwen3-coder-plus
qw/qwen3-coder-flash
Kiro (Claude FREE)
Dashboard â Connect Kiro
â AWS Builder ID or Google/GitHub
â Unlimited usage
Models:
kr/claude-sonnet-4.5
kr/claude-haiku-4.5
Dashboard â Combos â Create New
Name: premium-coding
Models:
1. cc/claude-opus-4-6 (Subscription primary)
2. glm/glm-4.7 (Cheap backup, $0.6/1M)
3. minimax/MiniMax-M2.1 (Cheapest fallback, $0.20/1M)
Use in CLI: premium-coding
Example 2: Free-Only (Zero Cost)
Name: free-combo
Models:
1. gc/gemini-3-flash-preview (180K free/month)
2. if/kimi-k2-thinking (unlimited)
3. qw/qwen3-coder-plus (unlimited)
Cost: $0 forever!
Settings â Models â Advanced:
OpenAI API Base URL: http://localhost:20128/v1
OpenAI API Key: [from OmniRoute dashboard]
Model: cc/claude-opus-4-6
Claude Code
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.1istÀllet förlocalhostfö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
[](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
đ 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.---









