## 💰 ~1,62 md tokener/månad via kostnadsfria nivåer hos tredje part
> **Ta med dina egna leverantörskonton.** Detta är en uppskattad aggregering över separat kvalificerade kostnadsfria nivåer hos tredje part, inte en tilldelning av tokener från OmniRoute. Registrera dig, skaffa autentiseringsuppgifter där det krävs och anslut de leverantörer du kan använda; varje leverantör styr sina egna gränser, sin tillgänglighet och sina villkor.
>
> Att stapla kostnadsfria nivåer manuellt är besvärligt – dussintals SDK:er, dussintals hastighetsbegränsningar och ingen aning om hur mycket du egentligen har. OmniRoute katalogiserar **467 poster för kostnadsfria nivåer över 34 återkommande poolnycklar** och beräknar huvudsumman för tokener utifrån de **17 pooler med en publicerad positiv månadsbudget plus fem per-modell-tak för Groq**, avdubblerade per delad pool. Kvoter som endast öppnas efter en regional identitetskontroll (i dag: ModelScope) visas separat, +~6M bakom regional identitetsverifiering, och summeras aldrig in i huvudsumman. Resultatet är alltid synligt på instrumentpanelen (`/dashboard/free-tiers`).
> Animerad sammanfattning av den live-sidan `/dashboard/free-tiers`. Fullständig metodik (poolavdubbling, kreditnivåer, leverantörsvillkor): **[docs/reference/FREE_TIERS.md](docs/reference/FREE_TIERS.md)**.
>
> Dessa siffror granskas om varannan vecka mot den live-katalogen och **rör sig åt båda hållen** – en leverantör avslutar en kostnadsfri nivå och siffran sjunker; en ny tillkommer och den stiger. Vi publicerar det katalogen faktiskt beräknar, aldrig ett avrundat uppåt bästa fall.
⭐ Ge repot en stjärna om OMNIROUTE hjälpte dig spara pengar och göra ditt arbete enklare.
[](https://github.com/diegosouzapw/OmniRoute)
[](https://www.star-history.com/diegosouzapw/omniroute)
[](https://olud.ai/project/diegosouzapw-omniroute.html)
### 💬 Gå med i communityn
**👋 Följ underhållaren – få nya leverantörer, utgåvor och tips först:**
[](https://www.linkedin.com/in/diegosouzapw/)
[](https://github.com/diegosouzapw)
[](https://discord.gg/U47eFqAXCn)
[](https://t.me/omnirouteOficial)
[](https://chat.whatsapp.com/FvuCbrpZmQ6I85n2vW5QIC?s=cl&p=a&mlu=4)
[](https://chat.whatsapp.com/KWgatljAjmbELQory59Oti?s=cl&p=a&mlu=4)
[](https://omniroute.online)
**Frågor, leverantörstips, roadmap och support → [Discord](https://discord.gg/U47eFqAXCn) · [Telegram](https://t.me/omnirouteOficial) · WhatsApp [🌍 Global](https://chat.whatsapp.com/FvuCbrpZmQ6I85n2vW5QIC?s=cl&p=a&mlu=4) / [🇧🇷 Brasil](https://chat.whatsapp.com/KWgatljAjmbELQory59Oti?s=cl&p=a&mlu=4) / [Portal](https://portal.sthub.com.br/communities/groups/st-hub/channels/Omniroute-World-8kRjmK)**
## 📈 Gatewayen fortsätter att växa
## 🆓 Installera, anslut en leverantör och routa sedan via en enda endpoint
```bash
# När du har anslutit en leverantör kopierar du din OmniRoute-nyckel från Dashboard → Endpoints:
curl http://localhost:20128/v1/chat/completions \
-H "Authorization: Bearer YOUR_OMNIROUTE_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"auto","messages":[{"role":"user","content":"Hello!"}]}'
```
`auto` kräver en kvalificerad route. En nyinstallation kan sakna kvalificerade nyckelfria mål, och en nyckelfri leverantör kan avvisa tredjepartsklienter. Leverantörer märkta `tos: avoid`, inklusive Kiro, utesluts som standard från automatisk routning; att ansluta ett konto åsidosätter inte den inställningen. Se [Guiden för gratispaket](docs/getting-started/FREE-TIERS-GUIDE.md) innan du väljer leverantör.📦 Kopiera-och-klistra-in-snabbstartsskript för **Python, Node.js, PHP och cURL** → [`examples/quickstart/`](examples/quickstart/)
# 💥 Löftet
# 🤔 Varför OmniRoute?
## 🤝 Stöds av våra Open Source-vänner
> **Vill du bli en Open Source-vän?** Dessa företag stöder öppen källkod och hjälper till att hålla OmniRoute igång – och vi berättar offentligt vart varje token de ger oss går. Hör av dig: [diegosouza.pw@outlook.com](mailto:diegosouza.pw@outlook.com)
Kimi Moonshot AI
Tack till Kimi (Moonshot AI), vår grundande Open Source-vän, för att de stöder detta projekt! Kimi är AI-labbet bakom de öppna K2- och K3-modellfamiljerna — Kimi K3 levererar ett 1M-token kontextfönster, inbyggd syn och kodning på gränsnivå till en bråkdel av priset för slutna modeller, och fungerar direkt med Claude Code, Codex och alla kodningsverktyg som OmniRoute använder.
Vad Kimis stöd driver: Kimis API-krediter driver OmniRoutes AI-validerade release-pipeline — steget *sammanslagningsvalidering driven av Kimi K3* som granskar varje pull request innan den släpps — plus daglig funktionsutveckling. Förstklassigt Kimi-stöd levereras på båda sätten: det direkta Kimi API (kimi-k3) och Kimi Code kodningsplan (OAuth och API-nyckel). OmniRoute är också det första brasilianska open source-projektet i Kimis supportprogram. Skaffa en Kimi API-nyckel med 15% extra krediter →
Cheaper Inference cheaperinference.com
Tack till Cheaper Inference, en OmniRoute Open Source-vän, för att de stöder detta projekt! Cheaper Inference är en kostnadsrankad gateway som säljer vidare 42 gränsmodeller — Claude, GPT-5.x, Gemini, Kimi K3, GLM, DeepSeek, Grok och MiniMax — bakom en OpenAI-kompatibel slutpunkt, som dirigerar varje förfrågan till den billigaste kvalificerade leverantören utan att någonsin ta ut mer än modellskaparens listpris.
Förstklassigt stöd i OmniRoute: Chat Completions, den inbyggda /v1/responses-slutpunkten, syn, verktygsanrop och 3 bildmodeller (grok-imagine, nano-banana-pro, nano-banana-2, nåbara som cheaperinference/<model>). Skaffa en API-nyckel →
Länkar taggade aff=omniroute är partnerlänkar. De finansierar projektet utan extra kostnad för dig. 🎟️ Affiliates Promo — gratis registreringskuponger från leverantörer vi inte sponsrar (klicka för att expandera)Detta avsnitt är endast för hänvisnings-/kupongkoder. Sponsrade partnerskap finns under 🤝 Stöds av våra Open Source-vänner ovan. OmniRoute har ingen sponsring eller partnerskap med de leverantörer som listas här — dessa är offentliga kuponger som vem som helst kan använda.
AgentRouter agentrouter.org
AgentRouter — affiliate-registrering · $100 gratis krediter vid registrering (gratis server, förvänta dig högre latens — bäst för testning, inte produktion). Förstklassigt stöd i OmniRoute sedan v3.8.50: Chat Completions, det Anthropic-kompatibla trådformatet och den OpenAI-kompatibla sökvägen. Tillgängliga modeller inkluderar claude-opus-4-8, claude-opus-5, gpt-5.6-sol och mer. Hämta dina $100 →
⚠️ Affiliatelänk — OmniRoute har ingen sponsring eller partnerskap med denna leverantör.
Känner du till någon annan leverantör med en generös gratis registreringskupong som gynnar OmniRoutes användare? Öppna ett ärende så lägger vi till den här.
## 🎯 Kombinationer — flaggskeppet
> En **kombination** är en kedja av modeller som OmniRoute routar mellan **automatiskt**. Om kvoten tar slut, en leverantör slutar fungera eller kostnaderna skjuter i höjden kan kombinationen gå vidare till nästa kvalificerade och fungerande modell. 🛡️
### ⚡ Nollkonfiguration — använd bara `auto`
Du behöver inte skapa någon kombination. Ställ in modellen på `auto` (eller en variant), så skapar OmniRoute en virtuell kombination från dina anslutna leverantörer, poängsatt i realtid:
Modell-ID
Vad den optimerar för
auto
🎯 Balanserad standardinställning (LKGP — håller fast vid din senast fungerande leverantör)
auto/coding
🧑💻 Kvalitetsprioriterade vikter för kodgenerering
auto/fast
⚡ Lägsta latens först
auto/cheap
💰 Lägsta kostnad per token först
auto/subscription
🎟️ Endast prenumerationskvoten du redan betalar för — stoppar vid fel, utan avgiftsbelagd reservlösning (guide)
auto/thrifty
🪜 Plankvoten först, därefter ett steg i taget till de billigaste betalda alternativen — tillbaka till planen efter att den återställts (guide)
auto/offline
🔋 Störst marginal för kvot/hastighetsgräns först
auto/smart
🔭 Kvalitet först + 10 % utforskning för att hitta bättre modeller
auto/lkgp
📌 Håller uttryckligen fast vid senast kända fungerande leverantör
auto/chaos
🧪 Parallell utspridning till en panel av modeller (en per leverantör, 5 som standard), returnerar ett svar; ett uppströmsanrop per panelmodell, inte felinjektion
##
### 🔀 Eller bygg din egen — 20 routningsstrategier
Alla **20** strategier — blanda fritt per steg i kombinationen:
#
Strategi
Vad den gör
1
priority
Ordnad lista med första målet först — töm varje mål innan nästa används 🥇
2
fill-first
Fyll varje måls kvot helt innan nästa används
3
weighted
Viktat slumpmässigt val enligt vikten för varje mål
4
round-robin
Växla mellan målen i ordningsföljd
5
p2c
Slumpmässig lastbalansering enligt principen ”två val”
6
least-used
Välj målet med lägst aktuell belastning
7
random
Likformigt slumpmässigt val (dubbletter tas bort)
8
strict-random
Slumpmässigt val utan att ta bort upprepningar 🎲
9
cost-optimized
Minimera $ per begäran utifrån katalogpriser i realtid 💸
10
headroom
Välj målet med störst återstående kvot
11
quota-weighted
Hoppa över konton med förbrukad kvot och välj sedan proportionellt mot återstående kvot ÷ pågående belastning — befintliga konversationer förblir låsta ⚖️
12
reset-window
Föredra målet vars kvotfönster återställs först
13
reset-aware
Rangordna efter kvotens återställningstid — korta fönster först 📊
14
context-relay
Överför kontext mellan mål för långa konversationer 🧠
15
context-optimized
Välj det mål som passar bäst för den aktuella kontextstorleken
16
cache-optimized
Lås varje återanvändbart promptprefix till samma konto — maximera träffar i promptcachen 🎯
17
lkgp
Senast kända fungerande väg — låser till den senast fungerande leverantören och använder därefter reservregler
18
auto
Poängsättning i realtid utifrån 16 faktorer för varje anslutning 🤖
19
fusion
Sprider begäran till en panel av modeller + en bedömare sammanställer ett enda svar 🧬
20
pipeline
Kedjar steg — varje måls utdata matas till nästa mål 🔗
Auto-Combo-motorn poängsätter varje kandidat utifrån **16 faktorer** (hälsa, kvot, kostnad, latens, uppgiftslämplighet, kvalitet, sessionstillgänglighet …) – se [`docs/routing/AUTO-COMBO.md`](docs/routing/AUTO-COMBO.md).
##
### 🧱 Motståndskraft är inbyggd (3 oberoende lager)
📖 [Auto-Combo-motorn](docs/routing/AUTO-COMBO.md) · [Guide till motståndskraft](docs/architecture/RESILIENCE_GUIDE.md)
## 🏆 Vad som skiljer OmniRoute från mängden
📊 Fullständig metodik och information om varje funktion jämfört med 9router, OpenRouter, CLIProxyAPI och LiteLLM → [`docs/comparison/OMNIROUTE_VS_ALTERNATIVES.md`](docs/comparison/OMNIROUTE_VS_ALTERNATIVES.md)
## 💚 Stöd OmniRoute
OmniRoute är MIT-licensierat och underhålls öppet. Om det sparar tid eller pengar åt dig kan du hjälpa till att hålla det oberoende — välj det alternativ som passar dig. Sponsring påverkar aldrig routningsprioriteten; den ger synlighet, inte högre rankning.
**🇧🇷 PIX** — omedelbart, utan avgifter (Brasilien)
Nyckel (slumpmässig): `5d865059-bc44-483a-962d-43ceb80126eb`
Pix copia-e-cola:
```
00020101021126580014br.gov.bcb.pix01365d865059-bc44-483a-962d-43ceb80126eb5204000053039865802BR5922OMNIROUTE CONTRIBUICAO6006BRASIL62070503***630475DD
```
₿ Kryptovaluta — BTC · ETH · USDT-TRC20 · USDC-Solana (klicka för att expandera)
₿ BTC
Bitcoin (SegWit)
bc1qh00smz004sy85wyl28v77tenkt3ckl6eaep7fd
Ξ ETH
Ethereum (ERC20)
0x64Cf6B68A6Ff34288e89172950a2d00102337a84
₮ USDT
Tron (TRC20)
TKAF41JpuQrHbKTnsQa9svJE2T192Hvsc2
$ USDC
Solana
2emNNZzVVWQc3FQ2wk9M6qXUQmW8AKdjjL174fXR28Tu
⚠️ Skicka varje valuta endast via det nätverk som visas — om du skickar via fel nätverk kan pengarna gå förlorade.
🐛 Hittat ett fel eller har du synpunkter? Starta en [diskussion](https://github.com/diegosouzapw/OmniRoute/discussions).
Information för utvecklare: Projektet kan generera en lokal .env-fil under npm install/postinstall för att underlätta för utvecklare. Den här filen ignoreras avsiktligt via .gitignore (se .gitignore) och får aldrig checkas in — om den av misstag checkas in ska alla exponerade hemligheter bytas ut och filen tas bort från historiken. Se docs/DEVELOPER-ENVIRONMENT.md för vägledning om hantering av lokala miljöfiler och hemligheter.
## 📡 OmniRoute Radar
Den huvudsakliga rubriken för gratisnivån är fortfarande **~1,62 md tokens/månad** från den dokumenterade,
pooldeduplicerade katalogen ovan. Tillfälliga registreringskrediter från leverantörer kan separat höja den första
månaden till **~2,22 md**. Radar är ett valfritt, signerat katalogöverlägg för dem som vill ha mer aktuell
tillgänglighet för gratismodeller mellan OmniRoute-versioner; communitykatalogen och alla befintliga kostnadsfria
funktioner förblir gratis.
Supportrar kan få tillgång till livekatalogen och ytterligare leverantörsmöjligheter. Dess separata,
föränderliga tak är **högst cirka 3 md tokens/månad**, beroende på leverantörernas tillgänglighet.
Detta tak är ingen garanti: leverantörer kan när som helst ändra kvoter, behörighetskrav, modeller eller regioner.
Radar är frivilligt och använder endast GET. OmniRoute-klienten laddar inte upp prompter, trafik, leverantörs-
konfiguration, användningstelemetri eller lokal status för avfärdade meddelanden. Läs mer om behörighetskraven och
den aktuella katalogen på **[radar.omniroute.online/planos](https://radar.omniroute.online/planos)**.
## ✨ Nytt
> Senaste höjdpunkterna från **v3.8.20 → v3.8.53**. Full historik i [`CHANGELOG.md`](CHANGELOG.md).
- **⚖️ `quota-weighted`-routing** — den 20:e combo-strategin hoppar över uttömda konton och drar sedan bland resten i proportion till återstående kvot ÷ pågående belastning, samtidigt som befintliga konversationer hålls kvar. → [Auto-Combo](docs/routing/AUTO-COMBO.md)
- **🧰 Headless-läge** — `omniroute serve --headless` (eller `OMNIROUTE_HEADLESS=1`) kör endast `/v1/*`-proxy-motorn, med instrumentpanelen och de instrumentpanels-exklusiva delsystemen avstängda. → [Headless-läge](docs/guides/HEADLESS.md)
- **🔎 Modellupptäckt** — `/v1/models` filtrerar på kapacitet, kontext, typ och text, och `POST /v1/models/query` returnerar en kort deterministisk urvalslista med samma synlighet per nyckel. → [API-referens](docs/reference/API_REFERENCE.md)
- **🔑 Routingkontroll per nyckel** — lås en API-nyckel till en modell eller combo med `forcedModel`, och lägg till eller ta bort en nyckels modeller och combos atomiskt (`/api/keys/{id}/access`). → [API-referens](docs/reference/API_REFERENCE.md) · [OpenAPI](docs/openapi.yaml)
- **🛡️ Finare PII-kontroller** — val per typ, upp till 20 validerade anpassade maskeringsmönster och detekteringsräknare per typ; själva maskeringen förblir opt-in. → [Guardrails](docs/security/GUARDRAILS.md)
- **🌍 67 språk** — instrumentpanel, dokumentationsspeglar och CLI, med `npm run i18n:add-locale` som lägger till ett språk överallt med ett enda kommando. → [i18n-guide](docs/guides/I18N.md)
- **🎛️ OmniConductor** — inkommande A2A-delegering till din agentflotta, Conductor-skills på Agent Card och en instrumentpanelspanel med Faro push-to-talk-röstchatt. → [A2A-server](docs/frameworks/A2A-SERVER.md)
- **🛂 Adaptiv insläppning & överbelastningsskydd** — tunga chattförfrågningar köas i stället för att 503:a, med atomiska rullande RPM-leasar per anslutning. → [Resiliensguide](docs/architecture/RESILIENCE_GUIDE.md)
- **🗂️ Kanonisk `/v1/models`-ordning** — ett sammanhängande leverantörsgrupperat block per leverantör (combos fästa först), stabilt över alla källkataloger. → [API-referens](docs/reference/API_REFERENCE.md)
- **🗜️ Härdad komprimering** — uppblåsningsskydd på som standard, Caveman-paket för DE / FR / JA + kinesiska (wényán), RTK-filter för Gradle & .NET. → [Komprimering](docs/compression/COMPRESSION_ENGINES.md)
- **💸 Ärlig fastpriskostnad** — prenumerations- / kodningsplansleverantörer visas som **$0** i kostnadsanalys; budget, kvot & routing fortsätter att uppskatta. → [API-referens](docs/reference/API_REFERENCE.md)
- **⚖️ Quota-Share-routing** — dela ett delat kontos kvot rättvist mellan poolade nycklar, arbetsbevarande så att oanvända andelar lånas ut. → [Resiliensguide](docs/architecture/RESILIENCE_GUIDE.md)
- **🤖 CLI-/agentuppsättning med ett kommando** — 15 registrerade `setup-*`-kommandon; `omniroute run` startar 7 CLI:er (Claude Code, Codex, Aider, Goose, OpenCode, Qwen Code, Gemini CLI); `omniroute configure` stöder 11 mål med en interaktiv leverantörs- och modellväljare samt favoriter per kontext. → [CLI-integrationer](docs/guides/CLI-INTEGRATIONS.md)
- **🛰️ Fjärrläge** — styr en fjärransluten OmniRoute med avgränsade token (`connect` / `contexts` / `tokens`) + en `antigravity`-OAuth-hjälpare för VPS-installationer. → [Fjärrläge](docs/guides/REMOTE-MODE.md)
- **🧭 Smartare autorouting** — `auto/:`-combos, **Fusion** (modellpanel + domare), uppgiftsmedveten routing, åsidosättningar per förfrågan för modell / läge / USD-budget. → [Auto-Combo](docs/routing/AUTO-COMBO.md)
- **🗜️ Utbytbar komprimering** — 12 sammansättbara motorer + Compression Studios: LLMLingua-2, tvåstegs Ultra, omniglyph, fidelitetsgrind per steg, GCF v3.2, dra-och-släpp-omordningsredigerare. → [Komprimering](docs/compression/COMPRESSION_ENGINES.md)
- **🕵️ Transparent MITM-dekryptering (TPROXY)** — fånga CLI:er som ignorerar proxy-miljövariabler, med ett CA per SNI + installatör för trust store. → [MITM/TPROXY](docs/security/MITM-TPROXY-DECRYPT.md)
- **💸 Kostnadstelemetri överallt** — `X-OmniRoute-*`-kostnads-/användningsrubriker på varje endpoint, rubrik för cache-HIT-besparingar, USD-utgiftskvoter per nyckel. → [API-referens](docs/reference/API_REFERENCE.md)
- **🧠 Minne du styr över** — av som standard, opt-in int8-vektorkvantisering + typad avklingning, `x-omniroute-no-memory` per förfrågan. → [Minne](docs/frameworks/MEMORY.md)
- **🛡️ Säkerhet** — prompt-injektionsskydd på varje LLM-rutt (red-team-svit), opt-in-railguard för referensmaskering (redigerar läckta API-nycklar/hemligheter i båda riktningarna), gratis DuckDuckGo-websökning som sista utväg och en valfri OIDC-inloggningsgrind för instrumentpanelen (lösenordsinloggning finns alltid kvar). → [Guardrails](docs/security/GUARDRAILS.md)
- **🖼️ Nya endpoints** — `/v1/ocr` (Mistral OCR) och `/v1/audio/translations` (Whisper-stil) kompletterar medieytan. → [API-referens](docs/reference/API_REFERENCE.md)
- **🎨 Bild- / video- / ljudgenerering** — ett API för media: xAI Grok Imagine & Novita AI-video, ComfyUI, Magnific, Adobe Firefly, Segmind och talleverantörer som ElevenLabs. → [API-referens](docs/reference/API_REFERENCE.md)
- **🌍 Distribution & drift** — `basePath` för omvänd proxy, automatisk identifiering av webbläsarspråk, enhetsspårning per nyckel, root-lös MITM-tillit, zh-TW-lokalisering. → [Miljö](docs/reference/ENVIRONMENT.md)
- **🤝 Fler leverantörer & agenter** — molnagenter (Codex Cloud, Cursor, Devin, Jules), Grok Build (xAI) med webbläsar- + OAuth-inloggning, förstklassigt Ollama-kort, Claude Opus 5 & Sonnet 5, officiellt Kimi-partnerskap (Code/Web/Moonshot), Zed, Requesty, SenseNova, Yuanbao, Agnes AI… och en uppdaterad **katalog med 375 leverantörer**. → [Leverantörer](docs/reference/PROVIDER_REFERENCE.md)
- **📡 Routingtransparens** — varje svar bär en `X-OmniRoute-Decision`-rubrik som anger strategin/leverantören/latensen som betjänade det, en ny `cache-optimized`-combo-strategi + Auto-Combo-faktorn `cacheAffinity` som routar upprepade förfrågningar tillbaka till anslutningen som håller det cachade prefixet, och en skrivskyddad `/v1/auto-combo/{channel}/candidates`-endpoint som exponerar en `auto/*`-kanals levande kandidatpool. → [Auto-Combo](docs/routing/AUTO-COMBO.md)
- **⚡ Lokal prestanda och infrastruktur** — lokal Redis med ett klick, relädistribution till Cloudflare Workers / Deno Deploy, Bifrost och Mux som övervakade inbäddade tjänster. → [Inbäddade tjänster](docs/frameworks/EMBEDDED-SERVICES.md)
- **🧩 Ingår också** — ramverk och marknadsplats för insticksprogram, färdighetsramverk för Omni/Agent/GitHub, integrering med Obsidian-valv (22 MCP-verktyg), OpenAI-kompatibla Batch- och Files-API:er, semantisk svarscache, spelifiering med topplistor, agentidentifiering via ACP (15 inbyggda agenter), schemalagd loggexport till BigQuery, parallell fan-out till flera modeller med `auto/chaos`, en Telegram-brygga för bottar, en versionshanterare i appen och LMArena-ELO-rankningar av kostnadsfria leverantörer. → [Dokumentation](docs/README.md)
## 🤖 Kompatibla CLI:er och kodningsagenter
> En konfiguration — `http://localhost:20128/v1` — och **varje** AI-IDE eller CLI körs med kostnadsfria modeller och lågkostnadsmodeller.
+ fungerar även med · Agent Deck · Kiro · Command Code · Antigravity · Windsurf · AMP · alla OpenAI-kompatibla verktyg
📖 Verktygsspecifik konfiguration för alla 37 verktyg (27 CLI-kodverktyg + 10 CLI-agenter) → [`docs/reference/CLI-TOOLS.md`](docs/reference/CLI-TOOLS.md) · 🧩 OpenCode-plugin → [`@omniroute/opencode-provider`](https://www.npmjs.com/package/@omniroute/opencode-provider)
**Starta valfri CLI som stöds via OmniRoute med ett enda kommando** — inga konfigurationsfiler skrivs,
autentiseringsuppgifter injiceras per process och Qwen/Gemini får en tillfällig isolerad hemkatalog:
```bash
omniroute run claude --model openai/gpt-5.4 # Claude Code
omniroute run codex --model glm/glm-5.2 # OpenAI Codex CLI
omniroute run aider --model glm/glm-5.2 -- --message "reply OK"
omniroute run goose --model glm/glm-5.2
omniroute run opencode --model glm/glm-5.2 -- run "reply OK"
omniroute run qwen --model glm/glm-5.2 -- -p "reply OK"
omniroute run gemini --model glm/glm-5.2 -- --skip-trust -p "reply OK"
# Eller välj leverantör och modell interaktivt och skriv verktygets egen konfiguration:
omniroute configure codex # även: claude opencode qwen aider goose gemini cline continue kilo 5dive
```
Varje kommando använder den aktiva fjärrkontexten (`omniroute connect `), `--dry-run`
förhandsvisar exakt miljö och argument utan att köra något, och `--api-key-env NAME` håller hemligheter borta
från din skalhistorik. → [CLI-integrationer](docs/guides/CLI-INTEGRATIONS.md)
## 🌐 375 AI-leverantörer — 153 katalogmarkerade som kostnadsfria
> **375 registrerade leverantörer** i de kanoniska samlingarna för chatt, medier, sökning, lokala tjänster, molnagenter och system, inklusive **153 med identifieringsmetadata `hasFree: true`**. Registret över chattmodeller omfattar **239 leverantörer / 3 059 unika par av leverantörer och modeller / 1 475 råa modell-ID:n**; den separata katalogen över kostnadsfria budgetar innehåller **467 rader per modell**, **34 återkommande pooler** och **51 återkommande/nyckellösa leverantörer som är kostnadsfria för alltid**. Dessa har avsiktligt olika nämnare; definitioner och pooldeduplicerade beräkningar finns i [Leverantörsreferensen](docs/reference/PROVIDER_REFERENCE.md) och [Kostnadsfria nivåer](docs/reference/FREE_TIERS.md).
### 🏢 Alla större labb — via en enda slutpunkt
OpenAI
Anthropic
Gemini
xAI Grok
DeepSeek
Mistral
Qwen
Meta Llama
Groq
NVIDIA
MiniMax
Cohere
Perplexity
HuggingFace
Together
Fireworks
Cloudflare
Baidu
…och över 350 till — varje ikon hämtas live från kontrollpanelens leverantörskatalog. 📖 [Leverantörsreferens](docs/reference/PROVIDER_REFERENCE.md)
### 🆓 Kostnadsfritt för alltid — $0, inget kort krävs
OpenCode Zen DeepSeek V4, Nemotron 3 Ingen tokengräns
Kilo Code Auto-router, Tencent Hy3 Gratis för alltid
Requesty GPT-OSS 120B, Nemotron Gratis för alltid
SiliconFlow DeepSeek V3.2 / R1 Gratisnivå
Z.AI GLM GLM-4.7 / 4.5-Flash Gratis för alltid
Baidu ERNIE ERNIE 4.0 Gratis för alltid
Qoder AI Qwen3-Max, Kimi-K2 Obegränsat GRATIS
Pollinations GPT, Llama, Claude Ingen nyckel krävs
Cloudflare AI 50+ modeller 10K neuroner/dag
NVIDIA NIM GLM, MiniMax ~40 RPM gratis
Cerebras GLM 4.7, GPT-OSS Engångskredit på $5; kort krävs
### 🧩 Nytt: OmniRoute i VS Codes inbyggda Copilot Chat
> Inget nytt sidofält, inget nytt chattgränssnitt — varje modell som OmniRoute tillhandahåller visas direkt i
> **Copilot Chats modellväljare som du redan använder**. Sedan VS Code 1.122 fungerar leverantörsmodeller
> utan GitHub-inloggning eller Copilot-prenumeration — agentläge, verktygsanrop och bildstöd,
> kostnadsfritt.
Installera tillägget **[OmniCopilot](https://github.com/diegosouzapw/OmniCopilot)**, rikta det
mot din OmniRoute-server (standard är `localhost:20128`) och öppna sedan Copilot Chat → modellväljaren
→ **Hantera modeller…** → **OmniRoute**.
Inifrån redigeraren: öppna vyn **Tillägg**, sök efter **"OmniRoute"** och klicka på **Installera**
— det fungerar på samma sätt i båda butikerna. Källkod, ärenden och publiceringsinstruktioner finns på
[diegosouzapw/OmniCopilot](https://github.com/diegosouzapw/OmniCopilot).
📖 [Guide för VS Code Copilot Chat](docs/guides/VSCODE-COPILOT.md) — konfiguration, vad väljaren visar, instrumentpanel i en flik, felsökning
### 🎩 Nytt: OmniRouteTray — din gateway, direkt i menyraden
> `omniroute serve` trivs bäst när den alltid är igång. **[OmniRouteTray](https://github.com/zoispag/omniroute-tray)**
> gör den till en menyradsapp för macOS som du kan konfigurera och sedan glömma: den startar servern, håller den igång
> mellan omstarter, uppdaterar den på plats och gör din aktuella tokenbudget tillgänglig med ett klick — **inget
> terminalfönster behöver lämnas öppet och ingen `npm install -g omniroute` behöver övervakas.**
Den är byggd med [Tauri v2](https://v2.tauri.app/) (en Rust-kärna lika liten som ett avrundningsfel) och levereras
med en egen signerad Node 24-körmiljö samt hanterar en appägd OmniRoute-installation, så den krockar aldrig med din
globala `node`/`bun`. Den **delar din befintliga konfiguration och databas i `~/.omniroute/`** — så det är samma
OmniRoute som du redan kör, bara med en hatt på. 🎩
Vad den gör
Hur
🟢 Övervakar servern
Startar omniroute serve och tar över en instans som redan körs i stället för att duplicera den
📊 Aktuell användning i korthet
Kvotindikatorer för leverantörer, Claude-gränser per session/vecka med nedräkning till återställning samt kostnadsöversikt för 30 dagar
🔄 Uppdateras automatiskt på plats
Stegvis installation, atomärt byte och återställning vid fel — alltid den senaste versionen
🚀 Starta vid inloggning
Valfri start vid inloggning; endast menyraden, ingen Dock-ikon
🩺 Diagnostik och loggar
Diagnostik och åtkomst till serverloggar med ett klick
```sh
brew install --cask zoispag/tap/omniroute-tray
```
Föredrar du en nedladdning? Hämta den senaste .dmg-filen från
Releases. Källkod, ärenden och byggdokumentation
finns på zoispag/omniroute-tray.
💛 Ett communityprojekt av @zoispag — inte en officiell OmniRoute-version.
> Utöver servern är OmniRoute en **fullständig kommandoradscentral** med **över 80 kommandon**, samt öppna agentprotokoll så att en AI-agent kan styra den **på egen hand**.
### ⌨️ Ett riktigt CLI (inte bara `start`)
```bash
omniroute # kör gateway + kontrollpanel (port 20128)
omniroute chat # interaktiv TUI-chattklient (snabbkommandon: /model /combo /skill /memory)
omniroute setup # guidad guide för första körningen
omniroute doctor # diagnostisera leverantörer, portar och inbyggda beroenden
```
### 🛰️ Fjärrläge — kör CLI:t här och OmniRoute på en VPS
Kör du OmniRoute på en server? Styr den från din bärbara dator med **samma CLI**. Logga in en gång
med en åtkomsttoken med avgränsad behörighet; därefter riktas varje kommando mot fjärrservern.
```bash
omniroute connect 192.168.0.15 # lösenord → avgränsad token, sparad som en kontext
omniroute models # ← körs mot FJÄRRSERVERN
omniroute configure codex # ← väljer en fjärrmodell och skriver en lokal Codex-profil
omniroute tokens create --name ci --scope read # skapa mer begränsade token för andra datorer
omniroute contexts use default # ← växla tillbaka till den lokala servern
```
Token har behörighetsnivåerna `read` / `write` / `admin`; rutter som startar processer förblir begränsade till loopback.
📖 [Fjärrläge](docs/guides/REMOTE-MODE.md)
### 🤝 Anslut en agent — så styr den OmniRoute själv
Exponera OmniRoute via **MCP**, **A2A**, ett **REST-API**, **webhooks** eller ett **CLI för fjärråtkomst** — valfri kapabel agent (eller din egen kod) får tillgång till hela gatewayen: routning, leverantörer, kombinationer, cache, komprimering och minne — autonomt. HTTP-ändpunkterna nedan tillhandahålls under `http://localhost:20128`.
Gränssnitt
Ändpunkt/kommando
Använd det för att
🧰 MCP (stdio)
omniroute --mcp
Ansluta till Claude Desktop, Cursor eller valfri MCP-klient
🌊 MCP (HTTP)
/api/mcp/stream
MCP på distans — 110 verktyg, 33 behörighetsomfattningar (tillämpning är valfri), fullständig granskningslogg
Skicka begärande- och kvothändelser till Slack, Discord, Telegram eller valfri URL
🛰️ CLI för fjärråtkomst
omniroute connect
Styr en fjärrinstans med åtkomsttoken med avgränsad behörighet
```bash
# Ge Claude Code tillgång till hela OmniRoutes verktygsuppsättning via MCP:
claude mcp add-server omniroute --type http --url http://localhost:20128/api/mcp/stream
```
📖 [MCP-server](docs/frameworks/MCP-SERVER.md) · [A2A-server](docs/frameworks/A2A-SERVER.md) · [Agentprotokoll](docs/frameworks/AGENT_PROTOCOLS_GUIDE.md)
## 🗜️ Spara 15–95 % tokens — automatiskt
### 📖 Så fungerar det — pipeline, arkitektur och besparingsmatematik
Standardkombon för staplad körning kör `RTK → Caveman`. När båda verkar på samma verktygs-/kontextpayload förstärks besparingen:
```txt
combined = 1 − (1 − RTK) × (1 − Caveman_input)
average = 1 − (1 − 0.80) × (1 − 0.46) = 89.2%
range = 78.4 – 94.6%
```
Kodblock, URL:er, JSON och strukturerad data är **alltid skyddade** av bevarandemotorn.
> **Varför använda många tokens när få tokens räcker?** Varje förfrågan passerar OmniRoutes komprimeringspipeline **transparent** — inga klientändringar behövs. Det är nu en **stack med 12 kombinerbara motorer** som körs i ordning och kan mixas och matchas per routingkombination — byggt på idéer från [RTK](https://github.com/rtk-ai/rtk), [Caveman](https://github.com/JuliusBrussee/caveman) (⭐ 90K+), [LLMLingua-2](https://github.com/microsoft/LLMLingua) och [Troglodita](https://github.com/leninejunior/troglodita) (PT-BR).
### 🧱 Stacken med 12 motorer
Motorerna körs i pipelineordning; var och en kan slås på/av och konfigureras oberoende per kombination:
#
Motor
Vad den gör
1
Session-Dedup
Tar bort innehåll som upprepas mellan turer (innehållsadresserat, mellan turer)
2
CCR
Arkiverar stora block bakom hämtningsmarkörer som hämtas vid behov
3
Lite
Trimming av blanksteg + bild-URL:er (latenslätt baslinje)
4
RTK
Smart filtrering, dedup och trunkering av verktygsresultat (kommandomedveten)
5
Responses Tool Output
Förlustfri-först JSON + avgränsad diagnostikkomprimering för shell-/patch-/search-/build-utdata (Responses API)
6
Headroom
Förlustfri tabulär kompaktering av JSON-arrayer (~30 %) via en vendorerad GCF-codec
7
Relevance
Extraktiv meningspoängsättning mot den senaste användarfrågan
8
Caveman
Regelbaserad proskomprimering (~65–75 % på utdata)
9
Aggressive
Sammanfattning + progressiv åldring av gamla turer
10
LLMLingua-2
ML-semantisk beskärning via MobileBERT ONNX — kodsäker, asynkron
11
Ultra
Heuristisk tokenbeskärning med ett valfritt small-model-lager (SLM)
12
OmniGlyph
Experimentell kontext-som-bild-kodning för uppmätt Claude Fable 5 på den direkta Anthropic-tråden; GPT 5.6-transformatorer förblir fail-closed i väntan på leverantörskvitton. Fyra komprimeringsprofiler (aggressiv standard, balanserad, kodningssäker, passthrough) (mest aggressiv; opt-in)
Kodblock, URL:er och strukturerad data **bevaras alltid** byte-perfekt. **Ettklicksförval** kombinerar motorerna:
Läge
Besparing
Bäst för
🪶 Lite
~15 %
Alltid på, säker standard
🪨 Standard (Caveman)
~30 %
Daglig kodning
⚡ Aggressiv
~50 %
Långa verktygstunga sessioner
🔥 Ultra
~75 %
Maximal besparing
🧰 RTK
60–90 %
Shell-/test-/build-/git-utdata
🔗 Staplad (RTK → Caveman)
78–95 %
Blandade prompter + verktygsloggar
**Verkligt exempel — standardläge:**
> **Före (69 tokens):** _"Anledningen till att din React-komponent renderas om är troligen att du skapar en ny objektreferens vid varje renderingscykel. När du skickar ett inline-objekt som prop ser Reacts ytliga jämförelse det som ett annat objekt varje gång, vilket utlöser en omrendering. Jag rekommenderar att använda useMemo för att memoisera objektet."_
>
> **Efter (19 tokens):** _"Ny objektreferens vid varje rendering. Inline-objekt som prop = ny ref = omrendering. Linda in i useMemo."_
>
> **Samma svar. 72 % färre tokens. Noll förlust i noggrannhet.** ✅
**PT-BR-exempel — läget [Troglodita](https://github.com/leninejunior/troglodita):**
> **Före (42 tokens):** _"Problemet är att komponenten renderar om eftersom en ny objektreferens skapas i varje renderingscykel. Jag skulle rekommendera att använda useMemo."_
>
> **Efter (12 tokens):** _"Omrendering: ny ref varje cykel (inline-objekt återskapat). Använd `useMemo`."_
>
> **Samma svar. ~70 % färre tokens. Teknisk precision intakt.** ✅
### 🎚️ Bortom motorerna — utmatningsstilar, den adaptiva ratten & styrning per förfrågan
De 12 motorerna ovan minskar det som går **in**. Ytterligare tre lager formar **hur**, **när** och vad som kommer **ut**:
- **🪄 Output Styles** _(styrning på utmatningsaxeln)_ — injicera deterministiska, cache-säkra instruktioner som formar svaret; kombinerbara, var och en i intensiteten `lite` / `full` / `ultra`. Att lägga till en stil är en rad i registret:
- **Koncis prosa** — ta bort utfyllnad / artiklar / försiktighetsformuleringar; behåll den tekniska substansen exakt.
- **Mindre kod** — "lat seniorutvecklare" YAGNI: minsta fungerande ändring, ingen oombedd scaffolding.
- **Ponytail (lat seniorutvecklare)** — klättra på YAGNI-stegen, åtgärda grundorsaken, minsta fungerande diff.
- **Jag har ADHD (åtgärd först)** — nästa åtgärd först, numrerade steg, ett konkret nästa steg, ingen ingress.
- **Koncis CJK (文言)** — ultrakoncis stil med klassisk kinesiska (lokalanpassad till `zh`).
- **🎯 Adaptiv kontextbudget** _(ratten)_ — i stället för en enda på/av-tokenströskel, eskalera de billigaste och mest förlustfria motorerna bara så långt som behövs för att **rymmas i modellens kontextfönster**. Policy: `reserve-output` (standard, modellmedveten) · `percentage` · `absolute`. Läge: `floor` (garantiera att det ryms) · `replace-autotrigger` (ditt explicita val vinner) · `off` (äldre tröskel).
- **🎛️ Var komprimeringen beslutas** _(prioritetsordning, hög → låg)_ — per förfrågan `x-omniroute-compression`-header › routingkombinations-överstyrning › aktiv namngiven profil › adaptiv / autotrigger › panelstandard › av. Den tillämpade planen ekar tillbaka i svarshuvudet `X-OmniRoute-Compression: ; source=`.
Autotrigger via tokenströskel, slå på den adaptiva ratten, fäst en namngiven profil, ange en engångsinställning per förfrågan eller tilldela en pipeline per routingkombination — vad som än passar arbetsbelastningen. En valfri offline-**eval-harness** (`npm run eval:compression`) poängsätter trohet kontra besparingar på ett fixerat korpus innan du befordrar en ändring.
📖 [`COMPRESSION_GUIDE.md`](docs/compression/COMPRESSION_GUIDE.md) · [`RTK_COMPRESSION.md`](docs/compression/RTK_COMPRESSION.md) · [`COMPRESSION_ENGINES.md`](docs/compression/COMPRESSION_ENGINES.md)
# ⚡ Snabbstart
**1) Installera & kör**
```bash
npm install -g omniroute
omniroute
```
> 💡 Ser du `npm warn ERESOLVE` eller peer-dep-varningar? [De är ofarliga](docs/guides/TROUBLESHOOTING.md#npm-install-warnings-eresolve--peer--deprecated).
> **Använder du npm 11 eller senare?** npm kan blockera paketets lifecycle-skript om de inte är tillåtna. OmniRoutes `postinstall` (`node scripts/build/postinstall.mjs`) krävs för att förbereda dess inbyggda runtime-filer. Tillåt paketen som anges i npms varning när du installerar globalt. För den paketuppsättning som rapporteras av OmniRoute 3.8.53:
>
> ```bash
> npm install -g --allow-scripts=omniroute,keytar,onnxruntime-node,@parcel/watcher,@swc/core,protobufjs,esbuild omniroute
> ```
>
> För att återanvända denna allowlist för framtida globala installationer, konfigurera den en gång och installera sedan som vanligt:
>
> ```bash
> npm config set allow-scripts=omniroute,keytar,onnxruntime-node,@parcel/watcher,@swc/core,protobufjs,esbuild --location=user
> npm install -g omniroute
> ```
>
> Beroendelistan kan ändras mellan versioner; om npm rapporterar en annan lista, använd paketnamnen från den varningen. Att tillåta ett paket gör att dess installationsskript får köras.
> **Använder du Gemini Web eller någon annan web-cookie-leverantör?** npm-paketet innehåller
> Playwright men inte dess Chromium-binär. Se anteckningen om
> [Playwright Chromium-setup](docs/guides/TROUBLESHOOTING.md#gemini-web-and-playwright-chromium)
> innan du gör den första förfrågan mot en webbaserad leverantör.
Instrumentpanel på `http://localhost:20128` · API på `http://localhost:20128/v1`.
**2) Anslut en kvalificerad leverantör med ditt eget konto**
Instrumentpanel → **Providers** → välj en leverantör vars aktuella villkor och kvot passar ditt användningsfall → lägg till dess API-nyckel eller slutför dess kontoflöde. Gratisnivåer kan kräva registrering, godkännande eller en betalningsmetod. Läs [Free Tiers Guide](docs/getting-started/FREE-TIERS-GUIDE.md); nyckelfri tillgänglighet garanteras inte, och leverantörer märkta `tos: avoid` utesluts som standard från `auto`.
**3) Peka ditt kodverktyg**
```txt
Base URL: http://localhost:20128/v1
API Key: [copy from Dashboard → Endpoints]
Model: auto (routes among eligible connections — or choose provider/model)
```
**4) Verifiera att det fungerar**
```bash
curl http://localhost:20128/v1/models -H "Authorization: Bearer YOUR_KEY"
```
Du bör se dina anslutna modeller listade. 🎉 Det var allt — börja koda, så dirigerar OmniRoute automatiskt och faller tillbaka åt dig.
Om din klient inte kan skicka anpassade headers, exponerar OmniRoute även tokeniserade kompatibilitetsalias:
```txt
OpenAI catalog: http://localhost:20128/vscode/YOUR_KEY/
OpenAI models: http://localhost:20128/vscode/YOUR_KEY/models
OpenAI chat: http://localhost:20128/vscode/YOUR_KEY/chat/completions
OpenAI responses: http://localhost:20128/vscode/YOUR_KEY/responses
Ollama chat: http://localhost:20128/vscode/YOUR_KEY/api/chat
Ollama tags: http://localhost:20128/vscode/YOUR_KEY/api/tags
```
Använd dessa endast för klienter som inte kan bifoga `Authorization: Bearer ...`. Header-autentisering är fortfarande det föredragna läget.
## 📦 Fler installationsmetoder — Docker, källkod, pnpm, Arch
**🐳 Docker**
```bash
docker run -d --name omniroute --restart unless-stopped --stop-timeout 40 \
-p 127.0.0.1:20128:20128 -v omniroute-data:/app/data diegosouzapw/omniroute:latest
```
`:latest` följer den högsta **publicerade** stabila SemVer-versionen. Den följer inte git `main`. Lås till `:X.Y.Z` för GitOps. Se [Docker-utgivningskanaler](docs/guides/DOCKER_GUIDE.md#release-channels). Avbildningen låser **`OMNIROUTE_MEMORY_MB=1024`**. Det räcker för kontrollpanelen och enklare chatt. **Kodningsagenter** (`POST /v1/responses` från Claude Code, Codex, Grok, …) behöver en mycket större V8-heap, annars får processen ett `FATAL ERROR` vid cirka 12 GiB med två överlappande långa kontexter. Dimensionera containern större än heapen (inbyggda buffertar ligger utanför V8):
| Arbetsbelastning | Heap (`-e OMNIROUTE_MEMORY_MB`) | Container (`--memory`) |
| ----------------------------------- | ------------------------------- | ---------------------- |
| Kontrollpanel/enklare chatt | `1024` (avbildningens standard) | ≥2 g |
| En kodningsagent | `8192` | ≥10 g |
| Två samtidiga långa `/v1/responses` | `10240`–`12288` | ≥12–16 g |
```bash
docker run -d --name omniroute --restart unless-stopped --stop-timeout 40 \
-e OMNIROUTE_MEMORY_MB=8192 --memory=10g \
-p 127.0.0.1:20128:20128 -v omniroute-data:/app/data diegosouzapw/omniroute:latest
```
Fullständig tabell: [Docker-guide — RAM vid körning](docs/guides/DOCKER_GUIDE.md#runtime-ram-for-coding-agents).
> **Docker-kanal för förhandsversioner:** `diegosouzapw/omniroute:next` och
> `diegosouzapw/omniroute:next-web` följer den aktuella standardgrenen `release/v*`.
> Dessa föränderliga taggar är endast avsedda för att testa ännu ej utgivna korrigeringar och
> **stöds inte för produktion**. Se
> [Docker-utgivningskanaler](docs/guides/DOCKER_GUIDE.md#release-channels).
**🥟 Bun**
Standardinstallation med `bun install` och global installation (`bun install -g omniroute`) stöds via detektering av Bun-körmiljön:
- **Inbyggd `bun:sqlite`**: OmniRoute använder Buns inbyggda `bun:sqlite`-drivrutin när det körs under Bun och återgår till `better-sqlite3` på Node.js eller `sql.js`.
- **Automatiskt val av Webpack-paketerare vid utveckling**: Utvecklingsläget (`bun run dev`) identifierar automatiskt Bun och inaktiverar Turbopack till förmån för Webpack för att förhindra inkompatibilitet med inbyggda V8-bindningar. Produktionsbyggen (`bun run build`) följer `OMNIROUTE_USE_TURBOPACK` exakt som på Node: Turbopack som standard, `OMNIROUTE_USE_TURBOPACK=0` för att bygga med Webpack (`Dockerfile.bun` exponerar detta som ett `--build-arg`).
- **Dedikerad Dockerfile för Bun**: `Dockerfile.bun` i flera steg för produktionsdistributioner med inbyggd Bun (`docker build -f Dockerfile.bun -t omniroute:bun .`).
```bash
# Installera och kör med Bun
bun install
bun run dev
```
**🛠️ Från källkod**
```bash
cp .env.example .env && npm install
PORT=20128 npm run dev
```
**📦 pnpm**
```bash
pnpm add -g omniroute@latest --allow-build=better-sqlite3 --allow-build=@swc/core && omniroute
```
**🐧 Arch Linux (AUR)**
```bash
yay -S omniroute-bin && systemctl --user enable --now omniroute.service
```
**🔧 Nix (Flake)**
```bash
# Med Nix flakes
nix develop
npm run dev
# Eller med devbox
devbox run npm run dev
```
📖 [Docker-guide](docs/guides/DOCKER_GUIDE.md) — Compose-profiler, Caddy HTTPS, Cloudflare-tunnlar.
**🦭 Podman**
```bash
# 1. Förbered datakatalogen som ska bind-monteras
mkdir -p data
# 2. Endast Linux + lokal rootless Podman (aldrig en fjärrklient för Podman Machine):
podman unshare chown 1000:1000 ./data
# 3. Ange körmiljötips, bygg den lokala Compose-avbildningen och starta
echo "CONTAINER_HOST=podman" >> .env
podman compose --profile base up -d --build
```
På macOS eller Windows använder Podman en fjärransluten Podman Machine: hoppa över `podman unshare` och
följ den [topologispecifika vägledningen för datakataloger](contrib/podman/README.md#data-directory-permissions-by-topology).
📖 [Podman-guide](contrib/podman/README.md) — Compose-byggen, Podman Machine och
konfiguration av Quadlet för Linux/systemd.
**⚡ Snabbare/resurssnålare installation (hoppa över det inbyggda bygget)**
Den inbyggda SQLite-motorn (`better-sqlite3`) är ett **valfritt** beroende, så en global
installation blockeras aldrig av kompilering från källkod: den använder en förkompilerad binärfil när någon matchar
din plattform/Node och återgår annars transparent till en ren JS-motor
(`node:sqlite` på Node 22+, annars medföljande `sql.js` WASM) — inga byggverktyg krävs.
Så här hoppar du helt över den inbyggda uppvärmningen efter installationen (CI, headless eller långsamma datorer):
```bash
OMNIROUTE_SKIP_POSTINSTALL=1 npm install -g omniroute # CI=1 hoppar också över den
```
För de snabbaste installationerna bör du använda **pnpm** (innehållsadresserat lager + hårda länkar — se ovan).
För en headless-körmiljö utan kontrollpanel använder du Docker-profilen `base` (ovan) eller
[Termux-guiden](docs/guides/TERMUX_GUIDE.md). CLI-verktyget och webbkontrollpanelen tillhandahålls av samma
process på en port, så det finns för närvarande inget separat paket enbart för CLI.
Strategi för testtäckning av fler än 56 000 statiska testdeklarationer i fler än 7 800 spårade testfiler
# ⭐ Främsta bidragsgivare
> OmniRoute formas av en engagerad gemenskap för öppen källkod. Dessa personer har gjort enastående insatser som direkt påverkar projektets kvalitet, stabilitet och räckvidd. **Tack.**
### Externa bidragsgivare efter sammanslagna pull requests
Sammanställningen gjordes 2026-10-18 15:09:09 UTC med den aktuella spetsen 656f01cb43 för release/v3.8.52. Den sidindelade sammanställningen från GitHub GraphQL omfattar 9 191 sammanslagna PR:er: 3 834 av lagringsplatsens ägare, 229 av Dependabot, 6 av andra bottar/appar och 5 122 externa PR:er från 835 unika bidragsgivare. ”Ändrade rader” är GitHubs tillägg + borttagningar och inkluderar genererade filer, låsfiler, kataloger, översättningar och dokumentation; det mäter ändringsvolym, inte författade kodrader. 49 PR:er rapporterar GitHub-diffar på över 500 000 rader (exempelvis #13399, där en enda leverantör lades till, med 2 347 ändrade filer), vilket blåser upp flera av totalsummorna ovan. Delade placeringar rankas tillsammans.
### Commits tillskrivna av GitHub
Återkontrollerad 2026-10-18 14:44:45 UTC: GitHub-tillskrivna commits som rapporterats av repositoriets Contributors API för standardgrenen release/v3.8.52. API:et returnerade 849 identiteter (429 användare, 2 botar, 418 anonyma); den här tabellen utesluter underhållaren, botar och anonyma identiteter och behåller delade placeringar. Den skiljer sig från både rankingen för mergade PR ovan och Git-metadatainventeringen nedan.
> 🙏 Dessa bidragsgivares funktioner, buggfixar och infrastrukturförbättringar är en **kärndel** av det som gör OmniRoute pålitligt och funktionsrikt. Varje pull request, varje testfall och varje i18n-översättningsfil spelar roll. Öppen källkod byggs av människor som de.
---
## 💖 Sponsorer
Ett varmt tack till alla som finansierar OmniRoute ur egen ficka — varje bidrag hjälper projektet att förbli kostnadsfritt, oberoende och i ständig utveckling.
… och andra som föredrar att förbli privata 💛Offentliga GitHub-sponsorer validerades på nytt 2026-10-18 via GitHub Sponsors GraphQL API: 11 offentliga sponsorskap (6 aktiva, 5 tidigare) av totalt 14. GitHubs isActive-status avgör de aktiva etiketterna ovan; tidigare offentliga engångssupportrar fortsätter att uppmärksammas, och privata sponsorer förblir anonyma. Donationer via Ko-fi, Buy Me a Coffee, Liberapay, PIX och kryptovalutor listas inte eftersom de saknar offentliga sponsorposter.💖 Bli sponsor → — varje dollar hjälper OmniRoute att förbli kostnadsfritt och oberoende.
## 👥 900+ bidragsgivare
[](https://github.com/diegosouzapw/OmniRoute/graphs/contributors)
Granskad 2026-10-18 vid den aktuella spetsen ad160ab2d1 för release/v3.8.52 (6 826 incheckningar): 993 normaliserade mänskliga Git-identiteter — 707 förekommer som incheckningsförfattare (inklusive underhållaren) och 286 endast i uttryckliga Co-authored-by-trailers. Inventeringen tillämpar .mailmap, jämför e-postadresser utan hänsyn till skiftläge, sammanför numeriska och vanliga GitHub-noreply-adresser endast när de kodar samma användarnamn, utesluter 26 bot-/agent-/tjänste-/platshållaridentiteter och sammanför inte vanliga e-postadresser enbart för att deras visningsnamn överensstämmer. Granskningen 2026-08-24 publicerade siffran 639; när den här metoden körs på nytt mot granskningens bas ac02c5b42f blir resultatet 619, så ökningen kommer från nya bidragsgivare och inte från en mindre strikt metod.
### Så bidrar du
1. Skapa en fork av repositoriet
2. Skapa en gren från den **aktiva** spetsen för `release/vX.Y.Z` (inte `main`) — se [Gren- och utgivningsmodell](docs/ops/BRANCHING_MODEL.md)
3. Skapa din funktionsgren (`git checkout -b feat/amazing-feature`)
4. Checka in dina ändringar (`git commit -m 'feat: add amazing feature'`)
5. Pusha till grenen (`git push origin feat/amazing-feature`)
6. Öppna en Pull Request med **base = den aktuella `release/vX.Y.Z`-grenen**
Se [CONTRIBUTING.md](CONTRIBUTING.md) för detaljerade riktlinjer.
### Ge ut en ny version
```bash
# Skapa en utgåva — npm publish sker automatiskt
VERSION=x.y.z
gh release create "v${VERSION}" --title "v${VERSION}" --generate-notes
```
## 📊 Stjärnor
## 🌍 StarMapper
## 🙏 Tack
OmniRoute står på jättars axlar. Det började som en fork av **[9router](https://github.com/decolua/9router)** och en TypeScript-portning av Go-projektet **[CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI)** — och därifrån inspirerades varje delsystem nedan av ett projekt med öppen källkod som banade vägen. Vart och ett formade en konkret del av OmniRoute. Detta är vårt tack till dem alla. 🙏
> ⭐ antalet stjärnor verifierades via GitHubs REST API den 18 oktober 2026 — ge gärna dessa projekt en stjärna. Antalen är en exakt ögonblicksbild från detta datum och kommer naturligtvis att förändras.
### 🧬 Ursprung & gateway
AI-gatewayen vars offentliga prisdata används för vår synkronisering av kostnadsspårning och vars modell för leverantörsnormalisering låg till grund för vår routning.
MIT-källkod som anpassats till den inbäddade bryggan ChatGPT Web → Codex Responses, inklusive adaptrar för webbläsarsessioner, svarsramning, användning och webbsökning.
Mönster som portats till återställning av strömmar, alias utan tänkande, reservlösning för webbsökning, gränser med glidande fönster, maskning av loggar och härdade startflöden.
Claude Code-kompatibla standardvärden för transformering och beteenden för faktureringshuvuden som generaliserats i OmniRoutes konfigurationsstyrda brygga.
Dess Grok-modellmappningar, Statsig-generator för falska TypeError-fel, standardvärden för förfrågningar och enheter samt NDJSON-svarsprocessor anpassades i betydande grad till OmniRoutes Grok Web-exekverare.
Den huvudsakliga transitiva källkodskällan bakom grok2api-merged; dess implementationer för modeller, huvuden, nyttolaster, Statsig och processorer bevaras i Grok Web-härstamningen.
Den underliggande MIT-källkoden för Groks nyttolast- och enhetsstandardvärden, Statsig-generatorn och result.response-processorn som förts vidare genom TQZHR och grok2api-merged.
En transitiv källa som anges av grok2api-merged för dess proxypoolslager; OmniRoute bevarar denna ursprungsnotis men gör inte anspråk på någon portning av proxypoolen i sin avgränsade Grok Web-exekverare.
Den ursprungliga Grok Web-implementationen konsulterade dess uppströmsdesign för HTTP/webbläsare; dess direkta HTTP-sökväg härstammar från GrokProxy, så inget anspråk görs på en oberoende kodportning.
Det virala projektet "varför använda många token när få token gör jobbet" — dess grottmänniskofilosofi driver vårt standardläge för komprimering och över 30 regler för utfyllnadsborttagning och kondensering.
Högpresterande komprimering av kommandoutdata — inspirerade vår RTK-motor, vårt JSON-filter-DSL, återställning av råutdata och den staplade pipelinen RTK → Caveman.
Forskning om promptkomprimering (LLMLingua / LLMLingua-2) — inspirerade vår asynkrona, kodsäkra llmlingua-motor som fortsätter utan komprimering vid fel.
PT-BR-tokenkomprimering — driver vårt pt-BR-språkpaket: minskning av pleonasmer och borttagning av utfyllnad, anpassat för brasiliansk-portugisisk grammatik.
Den virala YAGNI-kodarfärdigheten "lat seniorutvecklare" — inspirerade vår utdatastil less-code: styrning mot minsta fungerande ändring som minskar _genererad_ kod (motsvarigheten på utdataaxeln till Cavemans kortfattade prosa).
Komprimering av Bash-utdata + MCP-profiler — inspirerade vår disciplin för att avbryta olönsam komprimering och vår reducering av MCP-verktygsmanifest.
Innehållsmedveten utdatakomprimering per filtyp med felmedvetet avbrytande — bekräftade vår dirigering per typ och att komprimering hoppas över när vinsten är för liten.
Kolumnbaserad JSON i Rust + innehållsadresserad hämtning + avduplicering mellan meddelanden — bekräftade designen av våra headroom/ccr/session-dedup-motorer och den cache-stabila invarianten "komprimerad form är positionsoberoende".
MITM-avlyssning och analys av trafiken mellan kodningsassistenten och LLM informerade de tidiga kraven för Traffic Inspector. Fyra tidigare härledda moduler — SSE-sammanslagning, konversationsnormalisering, maskering av hemligheter och sanering av headers — har ersatts av oberoende clean-room-implementationer baserade på offentliga protokollstandarder. De två ytorna för host-passthrough (passthrough.ts och _internal/bypass.cjs) förblir interna OmniRoute-implementationer som klassificerats oberoende; de skrevs inte om som en del av den ersättningen.
Transparent proxy-routing per process — inspirerade vår kraschsäkra nedstängning av MITM, tidsgränser för inaktiva sockets, processtillskrivning via /proc och TPROXY-insamling.
### 📚 Modelldata, observerbarhet och användargränssnitt
En handplockad lista över bibliotek som är säkra som standard och vägleder våra säkerhetsval (Helmet.js, DOMPurify, ssrf-req-filter, safe-regex, Google Tink).
Inspirerade deduplicering av förfrågningar, kostnadsfri reservlösning för nödsituationer, utbytbara Auto-Combo-strategier och flerspråkig avsiktsklassificering.
Dess kontomedvetna ommappning av modeller, validering av sökvägar till körbara filer och beteende för abonnemangsetiketter påverkade OmniRoutes Antigravity-körmiljö.
Identifierade kvotgränssnittet för Grok Build; OmniRoute verifierade och korrigerade därefter det aktiva dataformatet oberoende.
## 📄 Licens
MIT-licens – se [LICENSE](LICENSE) för detaljer.
---
**[⬆ Tillbaka till toppen](#-omniroute)** · Byggt med ❤️ för AI-gemenskapen med öppen källkod.
OmniRoute v3.8.53 · Node ≥22.22.2 · MIT-licens · omniroute.online