# 🚀 OmniRoute — Den kostnadsfria AI-gatewayen
**Skapad av [Diego Souza](https://github.com/diegosouzapw)**
## 💰 ~1.62B token per månad från kostnadsfria tredjepartsnivåer
> **Använd dina egna leverantörskonton.** Detta är en uppskattad totalsumma från separat berättigade kostnadsfria tredjepartsnivåer, inte ett tokenanslag 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 begränsningar, sin tillgänglighet och sina villkor.
>
> Att stapla kostnadsfria nivåer manuellt är besvärligt — dussintals SDK:er, dussintals hastighetsbegränsningar och ingen uppfattning om hur mycket du faktiskt har. OmniRoute katalogiserar **465 poster på kostnadsfria nivåer över 34 återkommande poolnycklar** och beräknar tokenrubriken från **17 pooler med en publicerad positiv månadsbudget plus fem Groq-gränser per modell**, deduplicerade efter delad pool. Kvoter som endast blir tillgängliga efter en regional identitetskontroll (i dag: ModelScope) visas separat, +~6M efter regional identitetsverifiering, och summeras aldrig i rubriken. Resultatet förblir synligt på instrumentpanelen (`/dashboard/free-tiers`).
> Animerad sammanfattning av den aktuella sidan `/dashboard/free-tiers`. Fullständig metodik (pooldeduplicering, kreditnivåer, leverantörsvillkor): **[docs/reference/FREE_TIERS.md](docs/reference/FREE_TIERS.md)**.
>
> Dessa siffror granskas på nytt varannan vecka mot den aktuella katalogen och **kan röra 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 som katalogen faktiskt beräknar, aldrig ett avrundat bästa scenario.
⭐ Stjärnmärk repot om OMNIROUTE hjälpte dig att 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, versioner 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, färdplan 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) / [🇧🇷 Brasilien](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 dirigera sedan via en enda slutpunkt
```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` behöver en kvalificerad rutt. En ny installation kan sakna kvalificerade mål utan nyckel, och en leverantör utan nyckel kan avvisa klienter från tredje part. Leverantörer märkta med `tos: avoid`, inklusive Kiro, utesluts som standard från automatisk routning; anslutning av ett konto åsidosätter inte den inställningen. Se [guiden om kostnadsfria nivåer](docs/getting-started/FREE-TIERS-GUIDE.md) innan du väljer leverantör.📦 Kopiera-och-klistra-in-skript för snabbstart 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 metodbeskrivning och detaljinformation per 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)**.
## ✨ Nyheter
> Senaste höjdpunkterna från **v3.8.20 → v3.8.54**. Fullständig historik finns i [`CHANGELOG.md`](CHANGELOG.md).
- **⚖️ Routning med `quota-weighted`** — den 20:e kombostrategin hoppar över uttömda konton och väljer sedan bland de återstående i proportion till återstående kvot ÷ pågående belastning, samtidigt som befintliga konversationer förblir bundna. → [Auto-Combo](docs/routing/AUTO-COMBO.md)
- **🧰 Huvudlöst läge** — `omniroute serve --headless` (eller `OMNIROUTE_HEADLESS=1`) kör endast proxy-motorn för `/v1/*`, medan instrumentpanelen och dess exklusiva delsystem är avstängda. → [Huvudlöst läge](docs/guides/HEADLESS.md)
- **🔎 Modellidentifiering** — `/v1/models` filtrerar efter funktion, kontext, typ och text, och `POST /v1/models/query` returnerar en kort deterministisk lista med samma synlighet per nyckel. → [API-referens](docs/reference/API_REFERENCE.md)
- **🔑 Routningskontroll per nyckel** — bind en API-nyckel till en modell eller kombination med `forcedModel`, och lägg till eller ta bort en nyckels modeller och kombinationer atomärt (`/api/keys/{id}/access`). → [API-referens](docs/reference/API_REFERENCE.md) · [OpenAPI](docs/openapi.yaml)
- **🛡️ Mer detaljerad PII-kontroll** — val per typ, upp till 20 validerade anpassade maskeringsmönster och detekteringsräknare per typ; själva maskeringen förblir valfri. → [Skyddsräcken](docs/security/GUARDRAILS.md)
- **🌍 67 språk** — instrumentpanel, dokumentationsspeglar och CLI, där `npm run i18n:add-locale` 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-färdigheter på Agent Card och en panel i instrumentpanelen med Faro push-to-talk-röstchatt. → [A2A-server](docs/frameworks/A2A-SERVER.md)
- **🛂 Adaptiv åtkomstkontroll och överbelastningsskydd** — tunga chattförfrågningar köas i stället för att ge 503, med atomiska rullande RPM-leasingavtal per anslutning. → [Resiliensguide](docs/architecture/RESILIENCE_GUIDE.md)
- **🗂️ Kanonisk ordning för `/v1/models`** — ett sammanhängande leverantörsgrupperat block per leverantör (kombinationer först), stabilt för alla katalogkällor. → [API-referens](docs/reference/API_REFERENCE.md)
- **🗜️ Härdning av komprimering** — inflationsskydd aktiverat som standard, Caveman-paket för DE / FR / JA + kinesiska (wényán), RTK-filter för Gradle och .NET. → [Komprimering](docs/compression/COMPRESSION_ENGINES.md)
- **💸 Ärlig kostnad för fast pris** — prenumerations- och kodplansleverantörer visas som **$0** i kostnadsanalysen; budget, kvot och routning fortsätter att uppskattas. → [API-referens](docs/reference/API_REFERENCE.md)
- **⚖️ Quota-Share-routning** — fördelar ett delat kontos kvot rättvist mellan poolade nycklar och utnyttjar resurserna effektivt genom att låna ut inaktiva delar. → [Resiliensguide](docs/architecture/RESILIENCE_GUIDE.md)
- **🤖 CLI-/agentkonfiguration 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 begränsade tokens (`connect` / `contexts` / `tokens`) samt en `antigravity`-hjälpfunktion för OAuth vid VPS-installationer. → [Fjärrläge](docs/guides/REMOTE-MODE.md)
- **🧭 Smartare automatisk routning** — `auto/:`-kombinationer, **Fusion** (modellpanel + bedömare), uppgiftsmedveten routning och åsidosättningar per förfrågan för modell, läge och USD-budget. → [Auto-Combo](docs/routing/AUTO-COMBO.md)
- **🗜️ Modulär komprimering** — 12 kombinerbara motorer + Compression Studios: LLMLingua-2, Ultra i två nivåer, omniglyph, trohetskontroll per steg, GCF v3.2 och en editor med drag-and-drop-omordning. → [Komprimering](docs/compression/COMPRESSION_ENGINES.md)
- **🕵️ Transparent MITM-dekryptering (TPROXY)** — fångar upp CLI:er som ignorerar proxy-miljövariabler, med ett CA-certifikat per SNI samt installerare för trust stores. → [MITM/TPROXY](docs/security/MITM-TPROXY-DECRYPT.md)
- **💸 Kostnadstelemetri överallt** — `X-OmniRoute-*`-headers för kostnad/användning på alla endpoints, en header för besparingar från cache-träffar och USD-utgiftskvoter per nyckel. → [API-referens](docs/reference/API_REFERENCE.md)
- **🧠 Minne under din kontroll** — avstängt som standard, opt-in-int8-vektorkvantisering + typad avklingning samt `x-omniroute-no-memory` per förfrågan. → [Minne](docs/frameworks/MEMORY.md)
- **🛡️ Säkerhet** — skydd mot promptinjektion på varje LLM-rutt (red-team-testsvit), valfritt skydd för maskering av autentiseringsuppgifter (redigerar läckta API-nycklar/hemligheter i båda riktningarna), kostnadsfri webbsökning i DuckDuckGo som sista utväg samt en valfri OIDC-inloggningsspärr för instrumentpanelen (lösenordsinloggning är alltid tillgänglig). → [Skyddsräcken](docs/security/GUARDRAILS.md)
- **🖼️ Nya endpoints** — `/v1/ocr` (Mistral OCR) och `/v1/audio/translations` (Whisper-liknande) kompletterar medieytan. → [API-referens](docs/reference/API_REFERENCE.md)
- **🎨 Bild-, video- och ljudgenerering** — ett API för medier: xAI Grok Imagine och Novita AI-video, ComfyUI, Magnific, Adobe Firefly, Segmind samt talleverantörer som ElevenLabs. → [API-referens](docs/reference/API_REFERENCE.md)
- **🌍 Driftsättning och drift** — reverse-proxy-`basePath`, automatisk identifiering av webbläsarspråk, enhetsspårning per nyckel, root-lös MITM-trust och zh-TW-lokalisering. → [Miljö](docs/reference/ENVIRONMENT.md)
- **🤝 Fler leverantörer och agenter** — molnagenter (Codex Cloud, Cursor, Devin, Jules), Grok Build (xAI) med webbläsar- och OAuth-inloggning, förstaklasskort för Ollama, Claude Opus 5 och Sonnet 5, officiellt Kimi-samarbete (Code/Web/Moonshot), Zed, Requesty, SenseNova, Yuanbao, Agnes AI … samt en uppdaterad **388-leverantörskatalog**. → [Leverantörer](docs/reference/PROVIDER_REFERENCE.md)
- **📡 Transparens i routningen** — varje svar innehåller en `X-OmniRoute-Decision`-header som anger strategin, leverantören och latensen som hanterade det, en ny `cache-optimized`-kombostrategi samt faktorn `cacheAffinity` i Auto-Combo som dirigerar upprepade förfrågningar tillbaka till anslutningen som innehåller det cachade prefixet, och en skrivskyddad endpoint på `/v1/auto-combo/{channel}/candidates` visar den aktuella kandidatpoolen för en `auto/*`-kanal. → [Auto-Combo](docs/routing/AUTO-COMBO.md)
- **⚡ Lokal prestanda och infrastruktur** — Redis lokalt med ett klick, relädistributörer för 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å** — pluginramverk och marknadsplats, ramverk för Omni-/Agent-/GitHub-färdigheter, Obsidian-valvintegrering (22 MCP-verktyg), OpenAI-kompatibla Batch- och Files-API:er, semantisk svarscache, spelifiering med topplistor, ACP-agentidentifiering (15 inbyggda agenter), schemalagd loggexport till BigQuery, parallell `auto/chaos`-fan-out med flera modeller, en Telegram-botbrygga, en versionshanterare i appen och LMArena-ELO-rankningar av kostnadsfria leverantörer. → [Dokumentation](docs/README.md)
## 🤖 Kompatibla CLI:er & Kodningsagenter
> En konfiguration — `http://localhost:20128/v1` — och **alla** AI IDE:er eller CLI:er körs på gratis & lågkostnadsmodeller.
**Starta valfritt stödd CLI via OmniRoute med ett enda kommando** — inga konfigurationsfiler skrivs,
uppgifter injiceras per process, Qwen/Gemini får ett tillfälligt isolerat hem:
```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+modell interaktivt och skriv verktygets egen konfiguration:
omniroute configure codex # även: claude opencode qwen aider goose gemini cline continue kilo 5dive
```
Varje kommando respekterar den aktiva fjärrkontexten (`omniroute connect `), `--dry-run`
visar exakt miljö/argument utan att köra, och `--api-key-env NAME` håller hemligheter borta
från din shellhistorik. → [CLI-integrationer](docs/guides/CLI-INTEGRATIONS.md)
## 🌐 388 AI-leverantörer — 153 katalogmarkerade som gratis
> **388 registrerade leverantörer** i de kanoniska samlingarna för chatt, media, sökning, lokalt, molnagenter och system, inklusive **153 med `hasFree: true`-metadata för upptäckt**. Chattmodellregistret omfattar **239 leverantörer / 3 059 unika leverantör-modell-par / 1 475 råa modell-ID:n**; den separata katalogen för gratisbudgetar har **471 rader per modell**, **34 återkommande pooler** och **52 återkommande eller nyckellösa leverantörer som är gratis för alltid**. Dessa är avsiktligt olika nämnare; definitioner och pooldeduplicerade beräkningar finns i [Leverantörsreferensen](docs/reference/PROVIDER_REFERENCE.md) och [Gratisnivåer](docs/reference/FREE_TIERS.md).
### 🏢 Alla större labb — via en enda endpoint
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 dashboardens leverantörskatalog. 📖 [Leverantörsreferens](docs/reference/PROVIDER_REFERENCE.md)
### 🆓 Gratis för alltid — $0, inget kort
OpenCode Zen DeepSeek V4, Nemotron 3 Ingen tokenbegränsning
Kilo Code Automatisk 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 Över 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 inuti VS Codes ursprungliga Copilot Chat
> Ingen ny sidofält, ingen ny chatt- UI - varje modell OmniRoute tjänar dyker upp direkt i**Copilot Chat modellväljare som du redan använder** . Sedan VS Code 1.122 fungerar leverantörsmodeller utan en GitHub -inloggning eller en Copilot prenumeration – agentläge, verktygsanrop och vision, gratis.
Installera** [OmniCopilot](https://github.com/diegosouzapw/OmniCopilot)** förlängning, rikta den mot din OmniRoute server (standard är `localhost:20128`), öppna sedan Copilot Chat → modellväljare →** Hantera modeller...** →**OmniRoute** .
Inifrån redigeraren: öppna** Tillägg** se, sök** "OmniRoute"** , klicka** Installera** — fungerar på samma sätt i båda butikerna. Källa, nummer och publiceringsrunbook live på [diegosouzapw/OmniCopilot](https://github.com/diegosouzapw/OmniCopilot).
📖 [VS Code Copilot Chattguide](docs/guides/VSCODE-COPILOT.md) — inställning, vad väljaren visar, instrumentpanel-i-en-flik, felsökning av
### 🎩 Nytt: OmniRouteTray — din gateway, som bor i menyraden
> `omniroute serve` är lyckligast när den alltid är på.** [OmniRouteTray](https://github.com/zoispag/omniroute-tray)** förvandlar det till en ställ-och-glöm-menyradsapp för macOS: den startar servern, håller den vid liv vid omstarter, uppdaterar den på plats och lägger din token-budget ett klick bort —** inget terminalfönster lämnat öppet, ingen `npm install -g omniroute` att vara barnvakt.**
Byggd med [Tauri v2](https://v2.tauri.app/) (en Rust-kärna storleken på ett avrundningsfel), levererar den sin egen signerade Node 24-körtid och hanterar en appägd OmniRoute installation, så den bekämpar aldrig din globala `node`/`bun`. Det** delar din befintliga `~/.omniroute/` -konfiguration och databas** — så det är samma OmniRoute som du redan kör, bara med en hatt på. 🎩
Vad det gör
Hur
🟢 Övervakar servern
Spawns omniroute serve , antar en redan körande instans istället för att duplicera den
📊 Liveanvändning i korthet
Leverantörskvotstaplar, Claude session/weekly gränser med återställda nedräkningar, 30-dagars kostnadsuppdelning
🔄 Automatiska uppdateringar på plats
Etappinstallation, atomärt byte, återställning vid fel — alltid på den senaste versionen
🚀 Starta vid inloggning
Valfri start vid inloggning; Endast fack, ingen dockningsikon
🩺 Doktor & loggar
Diagnostik med ett klick och serverloggåtkomst
```sh
brew install --cask zoispag/tap/omniroute-tray
```
Föredrar du en nedladdning? Ta den senaste .dmg från
Släpper . Källa, frågor och bygga
docs live på zoispag/omniroute-tray.
💛 Ett community-projekt av @zoispag — inte en officiell OmniRoute release.
> 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
Standardkombinationen kör `RTK → Caveman`. När båda verkar på samma verktygs-/kontextnyttolast ackumuleras besparingarna:
```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 strukturerade data är **alltid skyddade** av bevarandemotorn.
> **Varför använda många tokens när få tokens räcker?** Varje begäran passerar genom OmniRoutes komprimeringspipeline **transparent** — inga klientändringar krävs. Den består nu av en **stack med 12 komponerbara motorer** som körs i ordning och kan kombineras fritt per routningskombination — med 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 aktiveras eller inaktiveras oberoende och konfigureras 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
Borttagning av blanksteg och trimning av bild-URL:er (latenslätt baslinje)
4
RTK
Smart filtrering, deduplicering och trunkering av verktygsresultat (kommandomedveten)
5
Responses Tool Output
Förlustfri förstahandskomprimering av JSON samt begränsad diagnostikkomprimering för shell-/patch-/sök-/byggutdata (Responses API)
6
Headroom
Förlustfri tabellkomprimering av JSON-matriser (~30 %) via en medföljande GCF-codec
7
Relevance
Extraktiv meningsbedömning utifrån den senaste användarfrågan
8
Caveman
Regelbaserad prosa-komprimering (~65–75 % av utdata)
9
Aggressive
Sammanfattning och progressiv åldring av äldre turer
10
LLMLingua-2
ML-baserad semantisk gallring via MobileBERT ONNX — kodsäker, asynkron
11
Ultra
Heuristisk tokengallring med ett valfritt småmodellsskikt (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 stängda vid fel i väntan på leverantörskvitton. Fyra komprimeringsprofiler (aggressiv standard, balanserad, kodsäker, oförändrad) (mest aggressiv; opt-in)
Kodblock, URL:er och strukturerade data bevaras **alltid** byte-exakt. **Förinställningar med ett klick** kombinerar motorerna:
Läge
Besparing
Bäst för
🪶 Lite
~15 %
Säkert standardläge som alltid är aktivt
🪨 Standard (Caveman)
~30 %
Daglig kodning
⚡ Aggressive
~50 %
Långa sessioner med många verktyg
🔥 Ultra
~75 %
Maximala besparingar
🧰 RTK
60–90 %
Shell-/test-/bygg-/git-utdata
🔗 Staplade (RTK → Caveman)
78–95 %
Blandade promptar och 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 du använder useMemo för att memorera objektet."_
>
> **Efter (19 tokens):** _"Ny objektreferens vid varje rendering. Inline-objekt som prop = ny referens = omrendering. Omslut i useMemo."_
>
> **Samma svar. 72 % färre tokens. Ingen förlust av precision.** ✅
**PT-BR-exempel — [Troglodita](https://github.com/leninejunior/troglodita)-läge:**
> **Före (42 tokens):** _"Problemet är att komponenten renderas om eftersom en ny objektreferens skapas i varje renderingscykel. Jag rekommenderar att du använder useMemo."_
>
> **Efter (12 tokens):** _"Renderas om: ny ref i varje cykel (inline-objekt återskapas). Använd `useMemo`."_
>
> **Samma svar. ~70 % färre tokens. Teknisk precision intakt.** ✅
### 🎚️ Bortom motorerna — utdatasstilar, den adaptiva ratten och kontroll per begäran
De 12 motorerna ovan minskar det som går **in**. Ytterligare tre lager formar **hur**, **när** och vad som kommer **ut**:
- **🪄 Utdatasstilar** _(styrning längs utdataaxeln)_ — infogar deterministiska, cache-säkra instruktioner för att forma svar; kan kombineras, var och en med intensiteten `lite` / `full` / `ultra`. Att lägga till en stil är en rad i registret:
- **Kortfattad prosa** — ta bort utfyllnad / artiklar / garderingar; behåll det tekniska innehållet exakt.
- **Mindre kod** — "lat seniorutvecklare" enligt YAGNI: minsta fungerande ändring, ingen oönskad ställningskod.
- **Hästsvans (lat seniorutvecklare)** — klättra på YAGNI-stegen, åtgärda grundorsaken, minsta fungerande diff.
- **Jag har ADHD (handlingsorienterad)** — nästa åtgärd först, numrerade steg, ett konkret nästa steg, ingen inledning.
- **Kortfattad CJK (文言)** — ultrakort stil på klassisk kinesiska (lokaliseringsstyrd till `zh`).
- **🎯 Adaptiv kontextbudget** _(ratten)_ — i stället för ett enda tröskelvärde för på/av eskaleras de billigaste motorerna med minst informationsförlust endast så långt som krävs för att **rymmas i modellens kontextfönster**. Policy: `reserve-output` (standard, modellmedveten) · `percentage` · `absolute`. Läge: `floor` (garanterar att det ryms) · `replace-autotrigger` (ditt uttryckliga val vinner) · `off` (äldre tröskel).
- **🎛️ Var komprimering avgörs** _(prioritet, hög → låg)_ — `x-omniroute-compression`-header per begäran › åsidosättning för routingkombination › aktiv namngiven profil › adaptiv / automatisk utlösare › standardinställning i panelen › av. Den tillämpade planen återspeglas i svarshuvudet `X-OmniRoute-Compression: ; source=`.
Utlös automatiskt efter tokentröskel, aktivera den adaptiva ratten, fäst en namngiven profil, ange en engångsinställning per begäran eller tilldela en pipeline per routingkombination — beroende på vad som passar arbetsbelastningen. En valfri offline-**utvärderingsmiljö** (`npm run eval:compression`) bedömer trohet kontra besparingar på en fixerad korpus innan du lanserar 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 och kör**
```bash
npm install -g omniroute
omniroute
```
> 💡 Ser du `npm warn ERESOLVE` eller varningar om peer-beroenden? [De är ofarliga](docs/guides/TROUBLESHOOTING.md#npm-install-warnings-eresolve--peer--deprecated).
> **Använder du npm 11 eller senare?** npm kan blockera pakets livscykelskript om de inte tillåts. OmniRoutes `postinstall` (`node scripts/build/postinstall.mjs`) krävs för att förbereda dess inbyggda runtimefiler. Tillåt paketen som anges i npms varning när du installerar globalt. För den paketuppsättning som rapporteras av OmniRoute 3.8.54:
>
> ```bash
> npm install -g --allow-scripts=omniroute,keytar,onnxruntime-node,@parcel/watcher,@swc/core,protobufjs,esbuild omniroute
> ```
>
> Om du vill återanvända denna tillåtelselista för framtida globala installationer konfigurerar du den en gång och installerar sedan normalt:
>
> ```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änder du 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 en annan leverantör av webbkakor?** npm-paketet innehåller
> Playwright men inte dess Chromium-binär. Se anmärkningen om
> [konfiguration av Playwright Chromium](docs/guides/TROUBLESHOOTING.md#gemini-web-and-playwright-chromium)
> innan du gör den första begäran till en webbleverantör.
Instrumentpanelen finns på `http://localhost:20128` · API:t finns på `http://localhost:20128/v1`.
**2) Anslut en kvalificerad leverantör med ditt eget konto**
Instrumentpanel → **Leverantörer** → 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 [guiden om gratisnivåer](docs/getting-started/FREE-TIERS-GUIDE.md); tillgänglighet utan nyckel garanteras inte, och leverantörer märkta med `tos: avoid` utesluts från `auto` som standard.
**3) Ange ditt kodverktyg**
```txt
Bas-URL: http://localhost:20128/v1
API-nyckel: [kopiera från Instrumentpanel → Slutpunkter]
Modell: auto (dirigerar mellan kvalificerade anslutningar — eller välj leverantör/modell)
```
**4) Kontrollera 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 och återkopplar OmniRoute automatiskt åt dig.
Om din klient inte kan skicka anpassade headers exponerar OmniRoute även tokeniserade kompatibilitetsalias:
```txt
OpenAI-katalog: http://localhost:20128/vscode/YOUR_KEY/
OpenAI-modeller: http://localhost:20128/vscode/YOUR_KEY/models
OpenAI-chatt: http://localhost:20128/vscode/YOUR_KEY/chat/completions
OpenAI-svar: http://localhost:20128/vscode/YOUR_KEY/responses
Ollama-chatt: http://localhost:20128/vscode/YOUR_KEY/api/chat
Ollama-taggar: 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 rekommenderade 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 över 60 000 statiska testdeklarationer i över 8 400 spårade testfiler
# ⭐ Främsta bidragsgivare
> OmniRoute formas av en engagerad öppen källkod-gemenskap. Dessa personer har gjort enastående insatser som direkt påverkar projektets kvalitet, stabilitet och räckvidd. **Tack.**
### Externa bidragsgivare efter sammanfogade pull requests
Inventeringen genomfördes 2026-11-03 03:01:19 UTC med aktuell release/v3.8.53-spets 05bc048d6c. Den paginerade GitHub GraphQL-inventeringen innehåller 9 947 sammanfogade PR:er: 4 130 av arkivägaren, 240 av Dependabot, 6 av andra botar/appar och 5 571 externa PR:er från 883 unika bidragsgivare. ”Ändrade rader” är GitHub-tillägg + borttagningar och omfattar genererade filer, låsfiler, kataloger, översättningar och dokumentation; det är förändringsvolym, inte författade kodrader. 53 PR:er rapporterar GitHub-diffar på över 500 000 rader (till exempel #13399, ett enda tillägg av en provider, listar 2 347 ändrade filer), vilket blåser upp flera av totalsummorna ovan. Lika resultat rangordnas tillsammans.
### Commits som tillskrivs GitHub
Kontrollerad igen 2026-11-03 02:09:16 UTC: GitHub-attribuerade commits rapporterade av Contributors API för repots standardgren release/v3.8.53. API:et returnerade 903 identiteter (429 användare, 2 botar, 472 anonyma); denna tabell exkluderar underhållaren, botar och anonyma identiteter och behåller delade placeringar. Den skiljer sig från både rankningen ovan av mergade PR:er och Git-metadatafolkräkningen nedan.
> 🙏 Dessa bidragsgivares funktioner, buggfixar och infrastrukturförbättringar är en **central del** av det som gör OmniRoute tillförlitligt och funktionsrikt. Varje pull request, varje testfall och varje i18n-översättningsfil spelar roll. Öppen källkod byggs av människor som dem.
---
## 💖 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.
## 👥 1 000+ bidragsgivare
[](https://github.com/diegosouzapw/OmniRoute/graphs/contributors)
Granskad 2026-11-02 vid live-release/v3.8.53-tippen 1c7135e0fb (7 972 commits): 1 074 normaliserade mänskliga Git-identiteter — 759 visas som commitförfattare (inklusive underhållaren) och 315 endast i explicita Co-authored-by-trailers. Kartläggningen tillämpar .mailmap, jämför e-postadresser skiftlägesokänsligt, sammanfogar numeriska och vanliga GitHub noreply-adresser endast när de kodar samma användarnamn, utesluter 29 bot-/agent-/tjänste-/platshållaridentiteter och slår inte samman vanliga e-postadresser enbart för att deras visningsnamn matchar. Granskningen 2026-08-24 publicerade 639; när denna metod körs igen på den granskningens bas ac02c5b42f blir resultatet 619, så ökningen beror på nya bidragsgivare, inte på en mindre strikt metod.
### Så bidrar du
1. Skapa en fork av kodförrådet
2. Skapa en gren från den **aktiva** tippen för `release/vX.Y.Z` (inte `main`) — se [Förgrenings- och versionsmodellen](docs/ops/BRANCHING_MODEL.md)
3. Skapa din funktionsgren (`git checkout -b feat/amazing-feature`)
4. Committa 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 `release/vX.Y.Z`-grenen**
Se [CONTRIBUTING.md](CONTRIBUTING.md) för detaljerade riktlinjer.
### Släppa en ny version
```bash
# Skapa en version — 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-port av Go-projektet **[CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI)** — och därefter inspirerades varje subsystem nedan av ett open source-projekt som var först med att nå dit. Vart och ett formade en konkret del av OmniRoute. Detta är vårt tack till dem alla. 🙏
> ⭐ antal stjärnor verifierades via GitHubs REST API den 3 november 2026 — gå och ge dessa projekt en stjärna. Antalen är en exakt ögonblicksbild från detta datum och kommer naturligtvis att förändras.
### 🧬 Arv & gateway
AI-gatewayen vars publika prisdataset används i vår synkronisering av kostnadsspårning och vars modell för leverantörsnormalisering informerade vår routning.
MIT-källkod som anpassats till den levererade ChatGPT Web → Codex Responses-bryggan, inklusive adaptrar för webbläsarsessioner, svarsramning, användning och webbsökning.
Mönster som porterats till strömningsåterställning, alias utan tänkande, reservlösning för webbsökning, gränser med glidande fönster, loggredigering och härdade startflöden.
Dess Grok-modellmappningar, fake-TypeError Statsig-generator, standardvärden för förfrågningar och enheter samt NDJSON-svarsprocessor anpassades i betydande omfattning till OmniRoutes Grok Web-exekverare.
Den huvudsakliga transitiva kodkällan bakom grok2api-merged; dess implementationer av modeller, headers, payloads, Statsig och processor bevaras i Grok Web-arvslinjen.
Den underliggande MIT-källan för Grok-payloads och standardvärden för enheter, Statsig-generatorn och processorn result.response som förts vidare genom TQZHR och grok2api-merged.
En transitiv källa som grok2api-merged anger för sitt proxy-pool-lager; OmniRoute bevarar denna arvshänvisning men gör inte anspråk på att ha porterat en proxy-pool i sin avgränsade Grok Web-exekverare.
Den ursprungliga Grok Web-implementationen konsulterades för dess design av HTTP-/webbläsaruppströms; dess direkta HTTP-sökväg härstammar från GrokProxy, så inget självständigt kodarbete anges som portning.
Projektet bakom det virala uttrycket "why use many token when few token do trick" – dess grottmänniskoaktiga filosofi driver vårt standardläge för komprimering och över 30 regler för utfyllnad/kondensering.
Högpresterande komprimering av kommandoutdata – inspirerade vår RTK-motor, DSL:en för JSON-filter, återställning av råutdata och den staplade RTK → Caveman-pipelinen.
PT-BR-tokenkomprimering – driver vårt pt-BR-språkpaket: reduktion av pleonasmer och borttagning av utfyllnadsord anpassad för brasiliansk portugisisk grammatik.
Den virala YAGNI-kodarfärdigheten för "lat seniorutvecklare" – inspirerade vår less-code-utdataformat: styrning mot minsta fungerande ändring som minskar _genererad_ kod (motsvarigheten på utdatasidan till Cavemans kortfattade prosa).
Kolumnbaserad JSON i Rust, innehållsadresserad hämtning och deduplicering mellan meddelanden – bekräftade vår design av motorerna headroom/ccr/session-dedup samt invariantet att den cache-stabila "komprimerade formen är positionsoberoende".
Verktygslåda för TypeScript Compiler API – inspirerade vår parserbaserade borttagning av kommentarer som bevarar sträng-, mall- och reguljära uttryckslitteraler.
MITM-interception och analys av trafik mellan kodassistent och LLM låg till grund för de tidiga kraven på 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) är fortfarande OmniRoute-interna implementationer som klassificeras separat; de skrevs inte om som en del av den ersättningen.
Transparent proxydirigering per process — inspirerade vår krasch-säkra MITM-nedmontering, socketens inaktivitets-timeouts, processattribuering via /proc och TPROXY-infångning.
### 📚 Modellinformation, observerbarhet och användargränssnitt
En kurerad lista över bibliotek som är säkra som standard och som vägleder våra säkerhetsval (Helmet.js, DOMPurify, ssrf-req-filter, safe-regex, Google Tink).
Dess kontomedvetna ommappning av modeller, validering av körbara sökvägar och beteende för planetiketter låg till grund för OmniRoutes Antigravity-runtime.
Identifierade Grok Build-kvotytan; OmniRoute verifierade och korrigerade därefter det aktiva wire-formatet oberoende.
## 📄 Licens
MIT-licens – se [LICENSE](LICENSE) för mer information.
---
**[⬆ Tillbaka till toppen](#-omniroute)** · Byggt med ❤️ för den AI-gemenskap med öppen källkod.
Skapat av Diego Souza · OmniRoute v3.8.54 · Node ≥22.22.2 · MIT-licens · omniroute.online