# 🚀 OmniRoute — Den kostnadsfrie AI-gatewayen
**Laget av [Diego Souza](https://github.com/diegosouzapw)**
## 💰 ~1,62 mrd. tokens / måned på tvers av tredjeparts gratistjenester
> **Bruk dine egne leverandørkontoer.** Dette er et estimert samlet tall på tvers av separate, kvalifiserte gratistjenester fra tredjeparter – ikke en token-tildeling fra OmniRoute. Registrer deg, skaff legitimasjon der det kreves, og koble til leverandørene du kan bruke; hver leverandør styrer sine egne grenser, sin tilgjengelighet og sine vilkår.
>
> Det er tungvint å sette sammen gratistjenester manuelt – dusinvis av SDK-er, dusinvis av hastighetsgrenser og ingen oversikt over hvor mye du faktisk har. OmniRoute katalogiserer **465 oppføringer på gratisnivå fordelt på 34 tilbakevendende pool-nøkler** og beregner tokenoversikten fra de **17 poolene med et publisert positivt månedlig budsjett, pluss fem Groq-grenser per modell**, deduplisert basert på delte pooler. Kvoter som bare blir tilgjengelige etter en regional identitetskontroll (i dag: ModelScope), vises separat, +~6M etter regional identitetsverifisering, og summeres aldri inn i oversikten. Resultatet forblir synlig på kontrollpanelet (`/dashboard/free-tiers`).
> Animert sammendrag av den aktive siden `/dashboard/free-tiers`. Fullstendig metodikk (pool-deduplisering, kredittnivåer, leverandørvilkår): **[docs/reference/FREE_TIERS.md](docs/reference/FREE_TIERS.md)**.
>
> Disse tallene revideres på nytt annenhver uke mot den aktive katalogen og **går begge veier** – en leverandør avslutter en gratistjeneste, og tallet synker; en ny kommer til, og det stiger. Vi publiserer det katalogen faktisk beregner, aldri et avrundet best-case-tall.
⭐ Gi repoet en stjerne hvis OMNIROUTE hjalp deg med å spare penger og gjøre arbeidet enklere.
[](https://github.com/diegosouzapw/OmniRoute)
[](https://www.star-history.com/diegosouzapw/omniroute)
[](https://olud.ai/project/diegosouzapw-omniroute.html)
### 💬 Bli med i fellesskapet
**👋 Følg vedlikeholderen – få nye leverandører, utgivelser og 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)
**Spørsmål, tips om leverandører, veikart og brukerstøtte → [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 fortsetter å vokse
## 🆓 Installer, koble til en leverandør og send deretter trafikken gjennom ett endepunkt
```bash
# Etter at du har koblet til en leverandør, kopierer du OmniRoute-nøkkelen din fra Instrumentpanel → 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` trenger en kvalifisert rute. En ny installasjon kan ha ingen kvalifiserte målløsninger uten nøkkel, og en leverandør uten nøkkel kan avvise tredjepartsklienter. Leverandører merket `tos: avoid`, inkludert Kiro, utelukkes som standard fra automatisk ruting; tilkobling av en konto overstyrer ikke denne innstillingen. Se [veiledningen for gratistilbud](docs/getting-started/FREE-TIERS-GUIDE.md) før du velger en leverandør.📦 Kopier-og-lim-inn-hurtigstartskript for **Python, Node.js, PHP og cURL** → [`examples/quickstart/`](examples/quickstart/)
# 💥 Løftet
# 🤔 Hvorfor OmniRoute?
## 🤝 Støttet av våre åpen kildekode-venner
> **Vil du bli med som en åpen kildekode-venn?** Dette er selskapene som støtter åpen kildekode og hjelper OmniRoute med å holde det gående – og vi sier offentlig hvor hver token de gir oss går. Ta kontakt: [diegosouza.pw@outlook.com](mailto:diegosouza.pw@outlook.com)
Kimi Moonshot AI
Takk til Kimi (Moonshot AI), vår grunnleggende åpen kildekode-venn, for å støtte dette prosjektet! Kimi er AI-laboratoriet bak de åpen-vektede K2- og K3-modellfamiliene – Kimi K3 leverer et 1M-token kontekstvindu, innebygd syn og grense-nivå koding til en brøkdel av prisen for lukkede modeller, og fungerer ut av boksen med Claude Code, Codex og alle kodingsverktøy OmniRoute tilbyr.
Hva Kimis støtte driver: Kimis API-kreditter driver OmniRoutes AI-validerte utgivelses-pipeline – sammenslåingsvalideringen drevet av Kimi K3-stadiet som gjennomgår hver pull-forespørsel før den sendes – pluss daglig funksjonsutvikling. Førsteklasses Kimi-støtte leveres på begge måter: den direkte Kimi API (kimi-k3) og Kimi Code kodingplanen (OAuth og API-nøkkel). OmniRoute er også det første brasilianske åpen kildekode-prosjektet i Kimis støtteprogram. Få en Kimi API-nøkkel med 15 % ekstra kreditter →
Cheaper Inference cheaperinference.com
Takk til Cheaper Inference, en OmniRoute åpen kildekode-venn, for å støtte dette prosjektet! Cheaper Inference er en kostnadsrangert gateway som videreselger 42 grensemodeller – Claude, GPT-5.x, Gemini, Kimi K3, GLM, DeepSeek, Grok og MiniMax – bak ett OpenAI-kompatibelt endepunkt, og ruter hver forespørsel til den billigste kvalifiserte leverandøren uten å noensinne ta mer enn modellprodusentens listepris.
Førsteklasses støtte i OmniRoute: Chat Completions, det native /v1/responses-endepunktet, visjon, verktøykall og 3 bildemodeller (grok-imagine, nano-banana-pro, nano-banana-2, tilgjengelig som cheaperinference/<model>). Få en API-nøkkel →
Lenker merket aff=omniroute er partnerlenker. De finansierer prosjektet uten ekstra kostnad for deg. 🎟️ Affiliates Promo — gratis registreringskuponger fra leverandører vi ikke sponser (klikk for å utvide)Denne seksjonen er kun for henvisnings-/kupongkoder. Sponsede partnerskap finnes i 🤝 Støttet av våre åpen kildekode-venner ovenfor. OmniRoute har ingen sponsing eller partnerskap med leverandørene som er oppført her – dette er offentlige kuponger som alle kan bruke.
AgentRouter agentrouter.org
AgentRouter — affiliate-registrering · $100 gratis kreditter ved registrering (gratis server, forvent høyere latens – best for testing, ikke produksjon). Førsteklasses støtte i OmniRoute siden v3.8.50: Chat Completions, det Anthropic-kompatible trådformatet og den OpenAI-kompatible stien. Tilgjengelige modeller inkluderer claude-opus-4-8, claude-opus-5, gpt-5.6-sol og mer. Hent dine $100 →
⚠️ Affiliate-lenke — OmniRoute har ingen sponsing eller partnerskap med denne leverandøren.
Kjenner du en annen leverandør med en generøs gratis registreringskupong som gagner OmniRoute-brukere? Åpne en sak, så legger vi den til her.
## 🎯 Comboer — flaggskipet
> En **combo** er en kjede av modeller som OmniRoute ruter mellom **automatisk**. Hvis kvoten tar slutt, en leverandør svikter eller kostnadene øker kraftig, kan comboen gå videre til den neste kvalifiserte, fungerende modellen. 🛡️
### ⚡ Null konfigurasjon — bare bruk `auto`
Ingen combo å opprette. Sett modellen din til `auto` (eller en variant), så bygger OmniRoute en virtuell combo fra de tilkoblede leverandørene dine, vurdert i sanntid:
Modell-ID
Hva den optimaliserer for
auto
🎯 Balansert standardvalg (LKGP — holder seg til den siste fungerende leverandøren)
auto/coding
🧑💻 Kvalitetsprioriterte vekter for kodegenerering
auto/fast
⚡ Lavest latenstid først
auto/cheap
💰 Lavest kostnad per token først
auto/subscription
🎟️ Bare abonnementskvoten du allerede betaler for — stenges ved feil og bruker aldri et fakturerbart reservealternativ (veiledning)
auto/thrifty
🪜 Plankvote først, deretter ett trinn om gangen til de billigste betalte alternativene — tilbake til planen etter tilbakestilling (veiledning)
auto/offline
🔋 Mest tilgjengelig kvote-/frekvensgrensekapasitet først
auto/smart
🔭 Kvalitet først + 10 % utforsking for å finne bedre modeller
auto/lkgp
📌 Eksplisitt binding til sist kjente fungerende leverandør
auto/chaos
🧪 Parallell utsending til et panel av modeller (én per leverandør, 5 som standard), returnerer ett svar; ett oppstrømskall per panelmodell, ikke feilinjisering
##
### 🔀 Eller bygg din egen — 20 rutingstrategier
Alle **20** strategiene — kombiner fritt per combo-trinn:
#
Strategi
Hva den gjør
1
priority
Ordnet liste med første mål som prioritet — tøm hvert mål før neste 🥇
2
fill-first
Bruk opp kvoten til hvert mål før du går videre
3
weighted
Vektet tilfeldig valg basert på vekten til hvert mål
4
round-robin
Gå gjennom målene i rekkefølge
5
p2c
Tilfeldig lastbalansering med «power of two choices»
6
least-used
Velg målet med lavest gjeldende belastning
7
random
Ensartet tilfeldig valg (duplikater fjernes)
8
strict-random
Tilfeldig valg uten å fjerne gjentakelser 🎲
9
cost-optimized
Minimer $ per forespørsel basert på gjeldende katalogpriser 💸
10
headroom
Velg målet med mest gjenværende kvote
11
quota-weighted
Hopp over oppbrukte kontoer, og velg deretter proporsjonalt med gjenværende kvote ÷ pågående belastning — eksisterende samtaler forblir bundet ⚖️
12
reset-window
Foretrekk målet der kvoteperioden tilbakestilles først
13
reset-aware
Ranger etter tidspunkt for tilbakestilling av kvoten — korte perioder først 📊
14
context-relay
Overfør kontekst mellom mål for lange samtaler 🧠
15
context-optimized
Velg det beste alternativet for den gjeldende kontekststørrelsen
16
cache-optimized
Bind hvert gjenbrukbare ledetekstprefiks til den samme kontoen — maksimer treff i ledetekstbufferen 🎯
17
lkgp
Sist kjente fungerende bane — binder til den siste vellykkede leverandøren og bruker deretter reserveregler
18
auto
Sanntidsvurdering med 16 faktorer på tvers av alle tilkoblinger 🤖
19
fusion
Sender forespørselen til et panel av modeller + en dommer sammenstiller ett svar 🧬
20
pipeline
Kjeder sammen trinn — utdataene fra hvert mål mates inn i det neste 🔗
Auto-Combo-motoren vurderer hver kandidat ut fra **16 faktorer** (tilstand, kvote, kostnad, latenstid, oppgavetilpasning, kvalitet, økttilgjengelighet …) – se [`docs/routing/AUTO-COMBO.md`](docs/routing/AUTO-COMBO.md).
##
### 🧱 Robusthet er innebygd (3 uavhengige lag)
📖 [Auto-Combo-motoren](docs/routing/AUTO-COMBO.md) · [Veiledning for robusthet](docs/architecture/RESILIENCE_GUIDE.md)
## 🏆 Hva skiller OmniRoute fra andre
📊 Full metodebeskrivelse og detaljer per funksjon sammenlignet med 9router, OpenRouter, CLIProxyAPI og LiteLLM → [`docs/comparison/OMNIROUTE_VS_ALTERNATIVES.md`](docs/comparison/OMNIROUTE_VS_ALTERNATIVES.md)
## 💚 Støtt OmniRoute
OmniRoute er MIT-lisensiert og vedlikeholdes åpent. Hvis det sparer deg for tid eller penger, kan du bidra til å holde det uavhengig — velg det som passer deg. Sponsing påvirker aldri rutingsprioriteten; det kjøper synlighet, ikke rangering.
**🇧🇷 PIX** — umiddelbart, uten gebyrer (Brasil)
Nøkkel (tilfeldig): `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 (klikk for å utvide)
₿ BTC
Bitcoin (SegWit)
bc1qh00smz004sy85wyl28v77tenkt3ckl6eaep7fd
Ξ ETH
Ethereum (ERC20)
0x64Cf6B68A6Ff34288e89172950a2d00102337a84
₮ USDT
Tron (TRC20)
TKAF41JpuQrHbKTnsQa9svJE2T192Hvsc2
$ USDC
Solana
2emNNZzVVWQc3FQ2wk9M6qXUQmW8AKdjjL174fXR28Tu
⚠️ Send hver valuta kun via nettverket som vises — sending via feil nettverk kan føre til at midlene går tapt.
🐛 Funnet en feil eller har du tilbakemeldinger? Start en [diskusjon](https://github.com/diegosouzapw/OmniRoute/discussions).
Merknader for utviklere: Prosjektet kan generere en lokal .env-fil under npm install/postinstall for å gjøre det enklere for utviklere. Denne filen ignoreres med hensikt via .gitignore (se .gitignore) og må aldri legges inn i repositoriet — hvis den ved et uhell blir lagt inn, må alle eksponerte hemmeligheter roteres og filen fjernes fra historikken. Se docs/DEVELOPER-ENVIRONMENT.md for veiledning om håndtering av lokale miljøfiler og hemmeligheter.
## 📡 OmniRoute Radar
Hovedtallet for gratisnivået er fortsatt **~1,62 mrd. tokens/måned** fra den dokumenterte,
utvalgsduplikatfjernede katalogen ovenfor. Midlertidige registreringskreditter fra leverandører kan separat øke den første
måneden til **~2,22 mrd.** Radar er et valgfritt, signert katalogoverlegg for dem som ønsker mer oppdatert
tilgjengelighet av gratismodeller mellom OmniRoute-utgivelser. Fellesskapskatalogen og alle eksisterende
gratisfunksjoner forblir gratis.
Støttespillere kan motta den oppdaterte katalogen og flere leverandørmuligheter. Den separate,
variable øvre grensen er **maksimalt omtrent 3 mrd. tokens/måned**, avhengig av leverandørtilgjengeligheten.
Denne grensen er ingen garanti: Leverandører kan når som helst endre kvoter, kvalifikasjonskrav, modeller eller
regioner.
Radar er valgfritt og bruker kun GET. OmniRoute-klienten laster ikke opp ledetekster, trafikk, leverandørkonfigurasjon,
brukstelemetri eller lokal status for avviste kunngjøringer. Les mer om kvalifikasjonskravene og
den gjeldende katalogen på **[radar.omniroute.online/planos](https://radar.omniroute.online/planos)**.
## ✨ Hva er nytt
> Nylige høydepunkter fra **v3.8.20 → v3.8.54**. Se hele historikken i [`CHANGELOG.md`](CHANGELOG.md).
- **⚖️ `quota-weighted`-ruting** — den 20. kombinasjonsstrategien hopper over uttømte kontoer og trekker deretter blant resten i forhold til gjenværende kvote ÷ belastning under behandling, slik at eksisterende samtaler forblir bundet til samme konto. → [Auto-Combo](docs/routing/AUTO-COMBO.md)
- **🧰 Hodeløs modus** — `omniroute serve --headless` (eller `OMNIROUTE_HEADLESS=1`) kjører bare `/v1/*`-proxy-motoren, mens kontrollpanelet og delsystemene som bare brukes av kontrollpanelet er slått av. → [Hodeløs modus](docs/guides/HEADLESS.md)
- **🔎 Modelloppdagelse** — `/v1/models` filtrerer etter funksjonalitet, kontekst, type og tekst, og `POST /v1/models/query` returnerer en kort, deterministisk utvalgsliste med samme synlighet per nøkkel. → [API-referanse](docs/reference/API_REFERENCE.md)
- **🔑 Rutingkontroll per nøkkel** — fest en API-nøkkel til én modell eller kombinasjon med `forcedModel`, og legg til eller fjern nøkkelens modeller og kombinasjoner atomisk (`/api/keys/{id}/access`). → [API-referanse](docs/reference/API_REFERENCE.md) · [OpenAPI](docs/openapi.yaml)
- **🛡️ Mer detaljerte PII-kontroller** — valg per type, opptil 20 validerte egendefinerte maskeringsmønstre og deteksjonstellere per type; selve maskeringen forblir valgfri. → [Sikkerhetsregler](docs/security/GUARDRAILS.md)
- **🌍 67 språk** — kontrollpanel, dokumentspeilinger og CLI, der `npm run i18n:add-locale` legger til et språk overalt med én kommando. → [i18n-veiledning](docs/guides/I18N.md)
- **🎛️ OmniConductor** — innkommende A2A-delegering til agentflåten din, Conductor-ferdigheter på Agent Card og et kontrollpanel med Faro push-to-talk-talechat. → [A2A-server](docs/frameworks/A2A-SERVER.md)
- **🛂 Adaptiv tilgangskontroll og overbelastningsbeskyttelse** — tunge chatforespørsler legges i kø i stedet for å svare med 503, med atomiske rullerende RPM-leieavtaler per tilkobling. → [Veiledning for robusthet](docs/architecture/RESILIENCE_GUIDE.md)
- **🗂️ Kanonisk rekkefølge for `/v1/models`** — én sammenhengende leverandørgruppert blokk per leverandør (kombinasjoner først), stabil på tvers av alle katalogkilder. → [API-referanse](docs/reference/API_REFERENCE.md)
- **🗜️ Herding av komprimering** — inflasjonsvern aktivert som standard, Caveman-pakker for DE / FR / JA + kinesisk (wényán), RTK-filtre for Gradle og .NET. → [Komprimering](docs/compression/COMPRESSION_ENGINES.md)
- **💸 Ærlige kostnader med fastpris** — abonnements- og kodeplanleverandører vises med **$0** i kostnadsanalysen; budsjett, kvote og ruting fortsetter å gjøre estimater. → [API-referanse](docs/reference/API_REFERENCE.md)
- **⚖️ Quota-Share-ruting** — del en delt kontos kvote rettferdig mellom sammenslåtte nøkler, med effektiv ressursutnyttelse slik at ledige deler lånes ut. → [Veiledning for robusthet](docs/architecture/RESILIENCE_GUIDE.md)
- **🤖 CLI-/agentoppsett med én kommando** — 15 registrerte `setup-*`-kommandoer; `omniroute run` starter 7 CLI-er (Claude Code, Codex, Aider, Goose, OpenCode, Qwen Code, Gemini CLI); `omniroute configure` støtter 11 mål med en interaktiv velger for leverandør og modell samt favoritter per kontekst. → [CLI-integrasjoner](docs/guides/CLI-INTEGRATIONS.md)
- **🛰️ Ekstern modus** — styr en ekstern OmniRoute med begrensede tokens (`connect` / `contexts` / `tokens`) + en `antigravity`-OAuth-hjelper for VPS-installasjoner. → [Ekstern modus](docs/guides/REMOTE-MODE.md)
- **🧭 Smartere automatisk ruting** — `auto/:`-kombinasjoner, **Fusion** (modellpanel + dommer), oppgavebevisst ruting og overstyring per forespørsel av modell, modus og USD-budsjett. → [Auto-Combo](docs/routing/AUTO-COMBO.md)
- **🗜️ Pluggbar komprimering** — 12 kombinerbare motorer + Compression Studios: LLMLingua-2, Ultra i to nivåer, omniglyph, troskapskontroll per trinn, GCF v3.2 og redigeringsverktøy med dra-og-slipp-sortering. → [Komprimering](docs/compression/COMPRESSION_ENGINES.md)
- **🕵️ Transparent MITM-dekryptering (TPROXY)** — fangst-CLI-er som ignorerer proxy-miljøvariabler, med en CA per SNI + installasjonsprogram for tillitslager. → [MITM/TPROXY](docs/security/MITM-TPROXY-DECRYPT.md)
- **💸 Kostnadstelemetri overalt** — `X-OmniRoute-*`-kostnads-/bruksheadere på alle endepunkter, header for besparelser ved cache-treff og USD-forbrukskvoter per nøkkel. → [API-referanse](docs/reference/API_REFERENCE.md)
- **🧠 Minne du kontrollerer** — deaktivert som standard, valgfri int8-vektorkvantisering + typet nedbrytning, `x-omniroute-no-memory` per forespørsel. → [Minne](docs/frameworks/MEMORY.md)
- **🛡️ Sikkerhet** — vern mot prompt-injisering på alle LLM-ruter (red-team-suite), valgfritt vern for legitimasjonsmaskering (sladder lekkede API-nøkler/hemmeligheter i begge retninger), kostnadsfritt DuckDuckGo-nettsøk som siste utvei og en valgfri OIDC-innloggingsport for kontrollpanelet (passordinnlogging er alltid tilgjengelig). → [Sikkerhetsregler](docs/security/GUARDRAILS.md)
- **🖼️ Nye endepunkter** — `/v1/ocr` (Mistral OCR) og `/v1/audio/translations` (Whisper-stil) kompletterer medieoverflaten. → [API-referanse](docs/reference/API_REFERENCE.md)
- **🎨 Generering av bilder, video og lyd** — ett API for medier: xAI Grok Imagine og Novita AI-video, ComfyUI, Magnific, Adobe Firefly, Segmind og taleleverandører som ElevenLabs. → [API-referanse](docs/reference/API_REFERENCE.md)
- **🌍 Distribusjon og drift** — reverse-proxy-`basePath`, automatisk gjenkjenning av nettleserspråk, enhetssporing per nøkkel, MITM-tillit uten root og zh-TW-lokalisering. → [Miljø](docs/reference/ENVIRONMENT.md)
- **🤝 Flere leverandører og agenter** — skyagenter (Codex Cloud, Cursor, Devin, Jules), Grok Build (xAI) med nettleser- og OAuth-innlogging, førsteklasses Ollama-kort, Claude Opus 5 og Sonnet 5, offisielt Kimi-partnerskap (Code/Web/Moonshot), Zed, Requesty, SenseNova, Yuanbao, Agnes AI … og en oppdatert **388-leverandørskatalog**. → [Leverandører](docs/reference/PROVIDER_REFERENCE.md)
- **📡 Åpenhet i ruting** — alle svar inneholder en `X-OmniRoute-Decision`-header som angir strategien, leverandøren og forsinkelsen som leverte svaret, en ny `cache-optimized`-kombinasjonsstrategi og faktoren `cacheAffinity` i Auto-Combo sender gjentatte forespørsler tilbake til tilkoblingen som har det bufrede prefikset, og et skrivebeskyttet `/v1/auto-combo/{channel}/candidates`-endepunkt viser en `auto/*`-kanals aktive kandidatpool. → [Auto-Combo](docs/routing/AUTO-COMBO.md).
- **⚡ Lokal ytelse og infrastruktur** — Redis lokalt med ett klikk, reléimplementeringer for Cloudflare Workers / Deno Deploy, Bifrost og Mux som overvåkede innebygde tjenester. → [Innebygde tjenester](docs/frameworks/EMBEDDED-SERVICES.md)
- **🧩 Også inkludert** — plugin-rammeverk og markedsplass, Omni/Agent/GitHub-ferdighetsrammeverk, Obsidian-hvelvintegrasjon (22 MCP-verktøy), OpenAI-kompatible Batch- og Files-API-er, semantisk responsbuffer, spillifisering med ledertavler, ACP-agentoppdagelse (15 innebygde agenter), planlagt loggeksport til BigQuery, `auto/chaos` parallell fan-out til flere modeller, en Telegram-botbro, en versjonsbehandler i appen og LMArena-ELO-rangeringer for gratisleverandører. → [Dokumentasjon](docs/README.md)
## 🤖 Kompatible CLI-er og kodeagenter
> Én konfigurasjon — `http://localhost:20128/v1` — og **alle** AI IDE-er eller CLI-er kjører på gratis- og rimelige modeller.
+ fungerer også med · Agent Deck · Kiro · Command Code · Antigravity · Windsurf · AMP · alle OpenAI-kompatible verktøy
📖 Oppsett per verktøy for alle 39 verktøy (28 CLI Code's + 11 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)
**Start hvilket som helst støttet CLI gjennom OmniRoute med én kommando** — ingen konfigurasjonsfiler skrives,
legitimasjon injiseres per prosess, Qwen/Gemini får et isolert engangshjem:
```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 velg leverandør+modell interaktivt og skriv verktøyets egen konfigurasjon:
omniroute configure codex # også: claude opencode qwen aider goose gemini cline continue kilo 5dive
```
Hver kommando respekterer den aktive eksterne konteksten (`omniroute connect `), `--dry-run`
viser forhåndsvisning av nøyaktig miljø/argumenter uten å kjøre, og `--api-key-env NAME` holder hemmeligheter ute
av shell-historikken din. → [CLI-integrasjoner](docs/guides/CLI-INTEGRATIONS.md)
> **388 registrerte leverandører** på tvers av de kanoniske samlingene for chat, medier, søk, lokale tjenester, skyagenter og systemer, inkludert **153 med `hasFree: true`-metadata for oppdagelse**. Chatmodellregisteret dekker **239 leverandører / 3 059 unike leverandør-modell-par / 1 475 rå modell-ID-er**; den separate katalogen for gratisbudsjetter har **471 rader per modell**, **34 tilbakevendende kvoter** og **52 tilbakevendende/gratis-for-alltid-leverandører uten nøkkel**. Dette er ulike nevnerverdier med hensikt; definisjoner og beregninger deduplisert etter kvote finnes i [Leverandørreferansen](docs/reference/PROVIDER_REFERENCE.md) og [Gratisnivåer](docs/reference/FREE_TIERS.md).
### 🏢 Alle større laboratorier — via ett endepunkt
OpenAI
Anthropic
Gemini
xAI Grok
DeepSeek
Mistral
Qwen
Meta Llama
Groq
NVIDIA
MiniMax
Cohere
Perplexity
HuggingFace
Together
Fireworks
Cloudflare
Baidu
…og 350+ flere — hvert ikon hentes direkte fra dashbordets leverandørkatalog. 📖 [Leverandørreferanse](docs/reference/PROVIDER_REFERENCE.md)
### 🆓 Gratis for alltid — $0, uten kort
OpenCode Zen DeepSeek V4, Nemotron 3 Ingen tokenbegrensning
Kilo Code Automatisk ruting, Tencent Hy3 Gratis for alltid
Requesty GPT-OSS 120B, Nemotron Gratis for alltid
SiliconFlow DeepSeek V3.2 / R1 Gratisnivå
Z.AI GLM GLM-4.7 / 4.5-Flash Gratis for alltid
Baidu ERNIE ERNIE 4.0 Gratis for alltid
Qoder AI Qwen3-Max, Kimi-K2 Ubegrenset GRATIS
Pollinations GPT, Llama, Claude Ingen nøkkel nødvendig
Cloudflare AI 50+ modeller 10K nevroner/dag
NVIDIA NIM GLM, MiniMax ~40 RPM gratis
Cerebras GLM 4.7, GPT-OSS Engangskreditt på $5; kort kreves
### 🧩 Nytt: OmniRoute inne i VS Codes opprinnelige Copilot Chat
> Ingen ny sidefelt, ingen ny chat UI - hver modell OmniRoute serverer vises rett i**Copilot Chat modellvelger du allerede bruker** . Siden VS -kode 1.122 fungerer leverandørmodeller uten GitHub -pålogging eller et Copilot -abonnement – agentmodus, verktøyanrop og visjon, gratis.
Installer** [OmniCopilot](https://github.com/diegosouzapw/OmniCopilot)** utvidelse, pek den mot OmniRoute serveren din (standard er `localhost:20128`), åpne deretter Copilot Chat → modellvelger →** Administrer modeller...** →**OmniRoute** .
Fra innsiden av redigeringsprogrammet: åpne** Utvidelser** se, søk** "OmniRoute"** , klikk** Installer** — fungerer på samme måte i begge butikkene. Kilde, utgaver og publiseringsboken live på [diegosouzapw/OmniCopilot](https://github.com/diegosouzapw/OmniCopilot).
📖 [VS Code Copilot Chatveiledning](docs/guides/VSCODE-COPILOT.md) — oppsett, hva velgeren viser, dashbord-i-en-fane, feilsøking av
### 🎩 Nytt: OmniRouteTray — din gateway, bor i menylinjen
> `omniroute serve` er lykkeligst når den alltid er på.** [OmniRouteTray](https://github.com/zoispag/omniroute-tray)** gjør det om til en sett-og-glem-menylinje-app for macOS: den starter serveren, holder den i live ved omstart, oppdaterer den på plass, og setter live token-budsjettet ett klikk unna —** ikke noe terminalvindu åpent, ingen `npm install -g omniroute` til barnevakt.**
Bygget med [Tauri v2](https://v2.tauri.app/) (en Rust-kjerne på størrelse med en avrundingsfeil), sender den sin egen signerte Node 24-kjøretid og administrerer en app-eid OmniRoute installasjon, slik at den aldri bekjemper din globale `node`/`bun`. Den** deler din eksisterende `~/.omniroute/` -konfigurasjon og database** — så det er den samme OmniRoute du allerede kjører, bare med en lue på. 🎩
Hva den gjør
Hvordan
🟢 Overvåker serveren
Spawns omniroute serve , tar i bruk en allerede kjørende instans i stedet for å duplisere den
📊 Live-bruk på et øyeblikk
Leverandørkvotebarer, Claude session/weekly grenser med tilbakestilte nedtellinger, 30-dagers kostnadsoversikt
🔄 Automatiske oppdateringer på plass
trinnvis installasjon, atombytte, tilbakeføring ved feil — alltid på den nyeste versjonen
🚀 Start ved pålogging
Valgfri start ved pålogging; Kun brett, ingen dock-ikon
🩺 Doctor & logger
Ett-klikks diagnostikk og serverloggtilgang
```sh
brew install --cask zoispag/tap/omniroute-tray
```
Foretrekker en nedlasting? Hent den nyeste .dmg fra
Utgir . Kilde, problemer og bygge
docs live på zoispag/omniroute-tray.
💛 Et fellesskapsprosjekt av @zoispag — ikke en offisiell OmniRoute utgivelse.
> I tillegg til serveren er OmniRoute et **komplett kommandolinjekontrollsenter** med **over 80 kommandoer**, samt åpne agentprotokoller som gjør at en KI-agent kan styre det **på egen hånd**.
### ⌨️ Et ekte CLI (ikke bare `start`)
```bash
omniroute # start gateway + kontrollpanel (port 20128)
omniroute chat # interaktiv TUI-chatklient (skråstrekkommandoer: /model /combo /skill /memory)
omniroute setup # veiviser for første gangs oppsett
omniroute doctor # diagnostiser leverandører, porter og systemavhengigheter
```
### 🛰️ Ekstern modus — kjør CLI-et her og OmniRoute på en VPS
Kjører OmniRoute på en server? Styr det fra den bærbare datamaskinen din med **samme CLI**. Logg inn én gang
med et omfangsbegrenset tilgangstoken; deretter rettes alle kommandoer mot den eksterne serveren.
```bash
omniroute connect 192.168.0.15 # passord → omfangsbegrenset token, lagret som en kontekst
omniroute models # ← kjører mot den EKSTERNE serveren
omniroute configure codex # ← velger en ekstern modell og skriver en lokal Codex-profil
omniroute tokens create --name ci --scope read # opprett mer begrensede tokener for andre maskiner
omniroute contexts use default # ← bytt tilbake til den lokale serveren
```
Tokener er begrenset til omfangene `read` / `write` / `admin`; ruter som starter prosesser, forblir begrenset til loopback.
📖 [Ekstern modus](docs/guides/REMOTE-MODE.md)
### 🤝 Koble til en agent — så styrer den OmniRoute selv
Gjør OmniRoute tilgjengelig via **MCP**, **A2A**, et **REST-API**, **webhooks** eller et **eksternt CLI** — enhver agent med nødvendige funksjoner (eller din egen kode) får tilgang til hele gatewayen: ruting, leverandører, kombinasjoner, hurtigbuffer, komprimering og minne — helt autonomt. HTTP-endepunktene nedenfor leveres under `http://localhost:20128`.
Grensesnitt
Endepunkt / kommando
Bruk det til
🧰 MCP (stdio)
omniroute --mcp
Koble til Claude Desktop, Cursor eller en hvilken som helst MCP-klient
Send forespørsels- og kvotehendelser til Slack, Discord, Telegram eller en hvilken som helst URL
🛰️ Eksternt CLI
omniroute connect
Styr en ekstern instans med omfangsbegrensede tilgangstokener
```bash
# Gi Claude Code hele OmniRoute-verktøysettet 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) · [Agentprotokoller](docs/frameworks/AGENT_PROTOCOLS_GUIDE.md)
## 🗜️ Spar 15–95 % tokens — automatisk
### 📖 Slik fungerer det — pipeline, arkitektur og besparelsesberegning
Standardkombinasjonen kjører `RTK → Caveman`. Når begge virker på den samme tool-/kontekstnyttelasten, akkumuleres besparelsene:
```txt
combined = 1 − (1 − RTK) × (1 − Caveman_input)
average = 1 − (1 − 0.80) × (1 − 0.46) = 89.2%
range = 78.4 – 94.6%
```
Kodeblokker, URL-er, JSON og strukturerte data er **alltid beskyttet** av bevaringsmotoren.
> **Hvorfor bruke mange tokens når få tokens gjør jobben?** Hver forespørsel passerer gjennom OmniRoutes komprimeringspipeline **transparent** — uten klientendringer. Den er nå en **stabel med 12 komponerbare motorer** som kjøres i rekkefølge og kan kombineres fritt per rutingskombinasjon — basert på ideer fra [RTK](https://github.com/rtk-ai/rtk), [Caveman](https://github.com/JuliusBrussee/caveman) (⭐ 90K+), [LLMLingua-2](https://github.com/microsoft/LLMLingua) og [Troglodita](https://github.com/leninejunior/troglodita) (PT-BR).
### 🧱 Stabelen med 12 motorer
Motorene kjøres i pipeline-rekkefølge; hver av dem kan aktiveres eller deaktiveres uavhengig og konfigureres per kombinasjon:
#
Motor
Hva den gjør
1
Session-Dedup
Fjerner innhold som gjentas på tvers av turer (innholdsadressert, på tvers av turer)
2
CCR
Arkiverer store blokker bak hentemarkører som hentes ved behov
3
Lite
Trimmer mellomrom og bilde-URL-er (latenslett grunnnivå)
4
RTK
Smart filtrering av tool-resultater, deduplisering og trunkering (kommandobevisst)
5
Responses Tool Output
JSON med tapsfri tilnærming først + avgrenset diagnostisk komprimering for shell-/patch-/search-/build-utdata (Responses API)
6
Headroom
Tapsfri tabellkomprimering av JSON-arrayer (~30 %) via en inkludert GCF-kodek
7
Relevance
Ekstraktiv setningsrangering opp mot den siste brukerforespørselen
8
Caveman
Regelbasert prosa-komprimering (~65–75 % på utdata)
9
Aggressive
Oppsummering + progressiv foreldelse av gamle turer
10
LLMLingua-2
ML-basert semantisk beskjæring via MobileBERT ONNX — kodesikker, asynkron
11
Ultra
Heuristisk token-beskjæring med et valgfritt nivå for små modeller (SLM)
12
OmniGlyph
Eksperimentell kontekstkoding som bilde for målt Claude Fable 5 på den direkte Anthropic-linjen; GPT 5.6-transformatorer forblir lukket ved feil i påvente av leverandørkvitteringer. Fire komprimeringsprofiler (aggressiv som standard, balansert, kodesikker, gjennomslipp) (mest aggressiv; krever opt-in)
Kodeblokker, URL-er og strukturerte data bevares **alltid** byte-for-byte. **Forhåndsinnstillinger med ett klikk** kombinerer motorene:
Modus
Besparelse
Best egnet for
🪶 Lite
~15 %
Trygt standardvalg som alltid er aktivert
🪨 Standard (Caveman)
~30 %
Daglig koding
⚡ Aggressive
~50 %
Lange økter med mange verktøy
🔥 Ultra
~75 %
Maksimale besparelser
🧰 RTK
60–90 %
Shell-/test-/build-/git-utdata
🔗 Stablet (RTK → Caveman)
78–95 %
Blandede forespørsler + verktøblogger
**Eksempel fra virkeligheten — Standard-modus:**
> **Før (69 tokens):** _«Grunnen til at React-komponenten din gjengis på nytt, er sannsynligvis at du oppretter en ny objektreferanse i hver gjengivelsessyklus. Når du sender et innebygd objekt som en prop, ser Reacts overfladiske sammenligning det som et annet objekt hver gang, noe som utløser en ny gjengivelse. Jeg anbefaler å bruke useMemo til å mellomlagre objektet.»_
>
> **Etter (19 tokens):** _«Ny objektreferanse ved hver gjengivelse. Innebygd objekt-prop = ny referanse = ny gjengivelse. Pakk inn i useMemo.»_
>
> **Samme svar. 72 % færre tokens. Ingen tap av nøyaktighet.** ✅
**PT-BR-eksempel — [Troglodita](https://github.com/leninejunior/troglodita)-modus:**
> **Før (42 tokens):** _"Problemet er at komponenten gjengir på nytt fordi en ny objektreferanse opprettes i hver gjengivelsessyklus. Jeg vil anbefale å bruke useMemo."_
>
> **Etter (12 tokens):** _"Ny gjengivelse: ny ref. i hver syklus (innebygd objekt opprettet på nytt). Bruk `useMemo`."_
>
> **Samme svar. ~70 % færre tokens. Teknisk presisjon intakt.** ✅
### 🎚️ Forbi motorene — utdatastiler, den adaptive skiven og kontroll per forespørsel
De 12 motorene ovenfor reduserer det som går **inn**. Ytterligere tre lag former **hvordan**, **når** og hva som kommer **ut**:
- **🪄 Utdatastiler** _(styring langs utdataaksen)_ — setter inn deterministiske, cache-sikre instruksjoner for utforming av svar; kan kombineres, hver med intensiteten `lite` / `full` / `ultra`. Å legge til en stil er én linje i registeret:
- **Kortfattet prosa** — fjern fyllord / artikler / forbehold; behold det tekniske innholdet nøyaktig.
- **Mindre kode** — YAGNI for en «lat seniorutvikler»: minste fungerende endring, ingen uforespurt stillasbygging.
- **Hestehale (lat seniorutvikler)** — klatre opp YAGNI-stigen, rett den egentlige årsaken, minste fungerende diff.
- **Jeg har ADHD (handlingsorientert)** — neste handling først, nummererte trinn, ett konkret neste trinn, ingen innledning.
- **Kortfattet CJK (文言)** — ultrakort stil på klassisk kinesisk (lokaltilpasset til `zh`).
- **🎯 Adaptivt kontekstbudsjett** _(skiven)_ — i stedet for én terskel for av/på-token, trappes de billigste og mest tapsfrie motorene opp bare så langt det trengs for å **få plass innenfor modellens kontekstvindu**. Policy: `reserve-output` (standard, modellbevisst) · `percentage` · `absolute`. Modus: `floor` (garanter plass) · `replace-autotrigger` (ditt eksplisitte valg vinner) · `off` (eldre terskel).
- **🎛️ Hvor komprimering avgjøres** _(prioritet, høy → lav)_ — overskriften `x-omniroute-compression` per forespørsel › overstyring av rutingskombinasjon › aktiv navngitt profil › adaptiv / automatisk utløsning › panelstandard › av. Den anvendte planen gjenspeiles i svaroverskriften `X-OmniRoute-Compression: ; source=`.
Utløs automatisk etter token-terskel, slå på den adaptive skiven, fest en navngitt profil, angi noe som gjelder for én forespørsel, eller tildel en pipeline per rutingskombinasjon — det som passer arbeidsbelastningen. Et valgfritt offline-**evalueringsmiljø** (`npm run eval:compression`) vurderer nøyaktighet mot besparelser på et fastsatt korpus før du setter en endring i produksjon.
📖 [`COMPRESSION_GUIDE.md`](docs/compression/COMPRESSION_GUIDE.md) · [`RTK_COMPRESSION.md`](docs/compression/RTK_COMPRESSION.md) · [`COMPRESSION_ENGINES.md`](docs/compression/COMPRESSION_ENGINES.md)
# ⚡ Hurtigstart
**1) Installer og kjør**
```bash
npm install -g omniroute
omniroute
```
> 💡 Ser du `npm warn ERESOLVE` eller advarsler om peer-avhengigheter? [De er ufarlige](docs/guides/TROUBLESHOOTING.md#npm-install-warnings-eresolve--peer--deprecated).
> **Bruker du npm 11 eller nyere?** npm kan blokkere skripter for pakkelivssyklus med mindre de er tillatt. OmniRoutes `postinstall` (`node scripts/build/postinstall.mjs`) kreves for å klargjøre de opprinnelige kjøretidsfilene. Tillat pakkene som er navngitt i npm-advarselen når du installerer globalt. For pakkesettet som rapporteres av OmniRoute 3.8.54:
>
> ```bash
> npm install -g --allow-scripts=omniroute,keytar,onnxruntime-node,@parcel/watcher,@swc/core,protobufjs,esbuild omniroute
> ```
>
> Hvis du vil bruke denne tillatelseslisten ved fremtidige globale installasjoner, konfigurerer du den én gang og installerer deretter normalt:
>
> ```bash
> npm config set allow-scripts=omniroute,keytar,onnxruntime-node,@parcel/watcher,@swc/core,protobufjs,esbuild --location=user
> npm install -g omniroute
> ```
>
> Avhengighetslisten kan endres mellom utgivelser. Hvis npm rapporterer en annen liste, bruker du pakkenavnene fra den advarselen. Når du tillater en pakke, kan installasjonsskriptene dens kjøres.
> **Bruker du Gemini Web eller en annen leverandør med web-informasjonskapsler?** npm-pakken inkluderer
> Playwright, men ikke Chromium-binærfilen. Se merknaden om
> [oppsett av Playwright Chromium](docs/guides/TROUBLESHOOTING.md#gemini-web-and-playwright-chromium)
> før du gjør den første forespørselen til en web-leverandør.
Instrumentbord på `http://localhost:20128` · API på `http://localhost:20128/v1`.
**2) Koble til en kvalifisert leverandør med din egen konto**
Instrumentbord → **Leverandører** → velg en leverandør med gjeldende vilkår og kvote som passer bruken din → legg til API-nøkkelen eller fullfør kontoflyten. Gratisnivåer kan kreve registrering, godkjenning eller en betalingsmåte. Gå gjennom [veiledningen for gratisnivåer](docs/getting-started/FREE-TIERS-GUIDE.md); tilgjengelighet uten nøkkel er ikke garantert, og leverandører merket `tos: avoid` utelukkes fra `auto` som standard.
**3) Pek kodeverktøyet ditt hit**
```txt
Base URL: http://localhost:20128/v1
API Key: [copy from Dashboard → Endpoints]
Model: auto (routes among eligible connections — or choose provider/model)
```
**4) Bekreft at det fungerer**
```bash
curl http://localhost:20128/v1/models -H "Authorization: Bearer YOUR_KEY"
```
Du skal se de tilkoblede modellene dine oppført. 🎉 Det var alt — begynn å kode, så ruter og bytter OmniRoute automatisk for deg.
Hvis klienten din ikke kan sende egendefinerte overskrifter, tilbyr OmniRoute også tokeniserte kompatibilitetsaliaser:
```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
```
Bruk disse bare for klienter som ikke kan legge ved `Authorization: Bearer ...`. Autentisering med overskrift er fortsatt den anbefalte modusen.
## 📦 Flere installasjonsmetoder — Docker, kildekode, 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ølger den høyeste **publiserte** stabile SemVer-versjonen. Den følger ikke git `main`. Fest til `:X.Y.Z` for GitOps. Se [Docker-utgivelseskanaler](docs/guides/DOCKER_GUIDE.md#release-channels).Avbildningen angir **`OMNIROUTE_MEMORY_MB=1024`**. Det er nok for kontrollpanelet og lett bruk av chat. **Kodeagenter** (`POST /v1/responses` fra Claude Code, Codex, Grok, …) trenger en mye større V8-heap, ellers får prosessen `FATAL ERROR` ved ~12 GiB med to overlappende lange kontekster. Dimensjoner containeren større enn heapen (interne buffere ligger utenfor V8):
| Arbeidsbelastning | Heap (`-e OMNIROUTE_MEMORY_MB`) | Container (`--memory`) |
| ---------------------------------- | ---------------------------------- | ---------------------- |
| Kontrollpanel / lett bruk av chat | `1024` (standard for avbildningen) | ≥2 g |
| Én kodeagent | `8192` | ≥10 g |
| To samtidige lange `/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
```
Fullstendig tabell: [Docker-veiledning — RAM under kjøring](docs/guides/DOCKER_GUIDE.md#runtime-ram-for-coding-agents).
> **Docker-kanal for forhåndsutgivelser:** `diegosouzapw/omniroute:next` og
> `diegosouzapw/omniroute:next-web` følger den gjeldende standardgrenen `release/v*`.
> Disse foranderlige taggene er kun beregnet på testing av rettelser som ennå ikke er utgitt, og
> **støttes ikke i produksjon**. Se
> [Docker-utgivelseskanaler](docs/guides/DOCKER_GUIDE.md#release-channels).
**🥟 Bun**
Standard `bun install` og global installasjon (`bun install -g omniroute`) støttes gjennom registrering av Bun-kjøremiljøet:
- **Innebygd `bun:sqlite`**: OmniRoute bruker Buns innebygde `bun:sqlite`-driver når det kjøres under Bun, og faller tilbake til `better-sqlite3` på Node.js eller `sql.js`.
- **Automatisk valg av Webpack-pakker i utviklingsmiljøet**: Utviklingsmiljøet (`bun run dev`) registrerer automatisk Bun og deaktiverer Turbopack til fordel for Webpack for å unngå inkompatibilitet med native V8-bindinger. Produksjonsbygg (`bun run build`) følger `OMNIROUTE_USE_TURBOPACK` på nøyaktig samme måte som på Node: Turbopack som standard, `OMNIROUTE_USE_TURBOPACK=0` for å bygge med Webpack (`Dockerfile.bun` eksponerer den som et `--build-arg`).
- **Dedikert Dockerfile for Bun**: Flertrinns `Dockerfile.bun` for native Bun-produksjonsdistribusjoner (`docker build -f Dockerfile.bun -t omniroute:bun .`).
```bash
# Installer og kjør med Bun
bun install
bun run dev
```
**🛠️ Fra kildekode**
```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
# Bruk av Nix-flakes
nix develop
npm run dev
# Eller bruk av devbox
devbox run npm run dev
```
📖 [Docker-veiledning](docs/guides/DOCKER_GUIDE.md) — Compose-profiler, Caddy HTTPS, Cloudflare-tunneler.
**🦭 Podman**
```bash
# 1. Klargjør den bind-monterte datakatalogen
mkdir -p data
# 2. Kun Linux + lokal rotløs Podman (aldri en ekstern Podman Machine-klient):
podman unshare chown 1000:1000 ./data
# 3. Angi kjøretidshintet, bygg det lokale Compose-avbildningen og start
echo "CONTAINER_HOST=podman" >> .env
podman compose --profile base up -d --build
```
På macOS eller Windows bruker Podman en ekstern Podman Machine: hopp over `podman unshare` og
følg [den topologispesifikke veiledningen for datakatalogen](contrib/podman/README.md#data-directory-permissions-by-topology).
📖 [Podman-veiledning](contrib/podman/README.md) — Compose-bygg, Podman Machine og
oppsett av Linux/systemd Quadlet.
**⚡ Raskere / slankere installasjon (hopp over native-byggingen)**
Den native SQLite-motoren (`better-sqlite3`) er en **valgfri** avhengighet, så en global
installasjon blokkeres aldri av kompilering fra kildekode: Den bruker en forhåndsbygd binærfil når en samsvarer med
plattformen/Node-versjonen din, og faller ellers transparent tilbake til en ren JS-motor
(`node:sqlite` på Node 22+, ellers den medfølgende `sql.js` WASM) — ingen byggeverktøy kreves.
Slik hopper du helt over den native oppvarmingen etter installasjon (CI, uten grafisk grensesnitt eller trege maskiner):
```bash
OMNIROUTE_SKIP_POSTINSTALL=1 npm install -g omniroute # CI=1 hopper også over den
```
For de raskeste installasjonene bør du foretrekke **pnpm** (innholdsadressert lager + harde lenker — se ovenfor).
For et kjøremiljø uten kontrollpanel og grafisk grensesnitt bruker du Docker-profilen `base` (ovenfor) eller
[Termux-veiledningen](docs/guides/TERMUX_GUIDE.md). CLI-verktøyet og nettkontrollpanelet betjenes av den
samme prosessen på én port, så det finnes foreløpig ingen separat pakke kun for CLI-verktøyet.
Strategi for testdekning av over 60 000 statiske testdeklarasjoner på tvers av over 8 400 sporede testfiler
# ⭐ Fremste bidragsytere
> OmniRoute formes av et engasjert åpen kildekode-fellesskap. Disse personene har gitt eksepsjonelle bidrag som direkte påvirker prosjektets kvalitet, stabilitet og rekkevidde. **Takk.**
### Eksterne bidragsytere etter sammenslåtte pull requests
Folketellingen ble gjennomført 2026-11-03 03:01:19 UTC med live-tuppen release/v3.8.5305bc048d6c. Den paginerte GitHub GraphQL-folketellingen inneholder 9,947 sammenslåtte PR-er: 4,130 av repo-eieren, 240 av Dependabot, 6 av andre boter/apper og 5,571 eksterne PR-er fra 883 unike bidragsytere. «Endrede linjer» er GitHub-addisjoner + slettinger og inkluderer genererte filer, låsefiler, kataloger, oversettelser og dokumentasjon; det er endringsomfang, ikke forfatterens LOC. 53 PR-er rapporterer GitHub-differanser på over 500,000 linjer (for eksempel #13399, der ett enkelt leverandørtillegg viser 2,347 endrede filer), noe som blåser opp flere av totalene ovenfor. Lik plassering rangeres sammen.
### GitHub-tilskrevne commits
Sist kontrollert 2026-11-03 02:09:16 UTC: GitHub-tilskrevne commits rapportert av Contributors API for repositoriets standardgren release/v3.8.53. API-et returnerte 903 identiteter (429 brukere, 2 boter, 472 anonyme); denne tabellen utelater vedlikeholderen, boter og anonyme identiteter, og beholder delte plasseringer. Den er forskjellig fra både rangeringen av sammenslåtte PR-er ovenfor og Git-metadata-opptellingen nedenfor.
> 🙏 Funksjonene, feilrettingene og infrastrukturforbedringene fra disse bidragsyterne er en **sentral del** av det som gjør OmniRoute pålitelig og funksjonsrikt. Hver pull request, hvert testtilfelle og hver i18n-oversettelsesfil betyr noe. Åpen kildekode bygges av mennesker som dem.
---
## 💖 Sponsorer
En hjertelig takk til dem som finansierer OmniRoute fra egen lomme — hvert bidrag holder prosjektet gratis, uavhengig og i utvikling.
… og andre som foretrekker å være private 💛Offentlige GitHub-sponsorer ble kontrollert på nytt 2026-10-18 via GitHub Sponsors GraphQL API: 11 offentlige sponsorater (6 aktive, 5 tidligere) av totalt 14. GitHubs isActive-status avgjør hvilke etiketter som er merket som aktive ovenfor. Tidligere offentlige engangsbidragsytere takkes fortsatt, mens private sponsorer forblir anonyme. Donasjoner via Ko-fi, Buy Me a Coffee, Liberapay, PIX og kryptovaluta er ikke oppført fordi de ikke har noen offentlig sponsoroppføring.💖 Bli sponsor → — hver dollar bidrar til å holde OmniRoute gratis og uavhengig.
## 👥 1 000+ bidragsytere
[](https://github.com/diegosouzapw/OmniRoute/graphs/contributors)
Revidert 2026-11-02 på live-tuppen av release/v3.8.531c7135e0fb (7 972 commits): 1 074 normaliserte menneskelige Git-identiteter — 759 vises som commit-forfattere (inkludert vedlikeholderen), og 315 finnes kun i eksplisitte Co-authored-by-trailere. Opptellingen bruker .mailmap, sammenligner e-postadresser uten hensyn til store og små bokstaver, slår sammen numeriske og vanlige GitHub noreply-adresser bare når de koder samme brukernavn, utelukker 29 bot-, agent-, tjeneste- og plassholderidentiteter, og slår ikke sammen vanlige e-postadresser kun fordi visningsnavnene samsvarer. Revisjonen 2026-08-24 publiserte 639; når denne metoden kjøres på nytt på revisjonens utgangspunkt ac02c5b42f, gir den 619, så økningen skyldes nye bidragsytere, ikke en mindre streng metode.
### Slik bidrar du
1. Lag en fork av repositoriet
2. Lag en branch fra den **aktive** `release/vX.Y.Z`-tuppen (ikke `main`) — se [Branching- og release-modell](docs/ops/BRANCHING_MODEL.md)
3. Opprett feature-branchen din (`git checkout -b feat/amazing-feature`)
4. Commit endringene dine (`git commit -m 'feat: add amazing feature'`)
5. Push til branchen (`git push origin feat/amazing-feature`)
6. Åpne en pull request med **base = den `release/vX.Y.Z`-branchen**
Se [CONTRIBUTING.md](CONTRIBUTING.md) for detaljerte retningslinjer.
### Publisere en ny versjon
```bash
# Opprett en release — npm publish skjer automatisk
VERSION=x.y.z
gh release create "v${VERSION}" --title "v${VERSION}" --generate-notes
```
## 📊 Stjerner
## 🌍 StarMapper
## 🙏 Anerkjennelser
OmniRoute står på skuldrene til giganter. Det startet som en fork av **[9router](https://github.com/decolua/9router)** og en TypeScript-port av Go-prosjektet **[CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI)** — og derfra ble hvert delsystem nedenfor inspirert av et åpen kildekode-prosjekt som kom dit først. Hvert av dem formet en konkret del av OmniRoute. Dette er vår takk til dem alle. 🙏
> ⭐ antall stjerner bekreftet fra GitHubs REST API 3. november 2026 — gå og gi disse prosjektene en stjerne. Antallene er et nøyaktig øyeblikksbilde fra den angitte datoen og vil naturligvis endre seg.
### 🧬 Opphav og gateway
AI-gatewayen hvis offentlige prisdatasett driver synkroniseringen av kostnadssporingen vår, og hvis modell for leverandørnormalisering informerte rutingen vår.
Mønstre portet inn i strømgjenoppretting, aliasser uten tenking, reservebasert nettsøk, grenser med skyvevinduer, loggredigering og herdet oppstartslogikk.
Prosjektets Grok-modelltilordninger, falske-TypeError Statsig-generator, forespørsels- og enhetsstandarder samt NDJSON-responsprosessor ble i vesentlig grad tilpasset OmniRoutes Grok Web-kjører.
Den viktigste transitive kodekilden bak grok2api-merged; implementasjonene for modell, hode, nyttelast, Statsig og prosessor er bevart i Grok Web-opphavet.
Den underliggende MIT-kilden for Grok-nyttelast og enhetsstandarder, Statsig-generatoren og result.response-prosessoren som er videreført gjennom TQZHR og grok2api-merged.
En transitiv kilde kreditert av grok2api-merged for laget med proxy-pool; OmniRoute bevarer denne opphavshenvisningen, men hevder ikke å ha portet en proxy-pool i sin avgrensede Grok Web-kjører.
Den opprinnelige Grok Web-implementasjonen ble konsultert for utformingen av HTTP-/nettleseroppstrømsforbindelsen; den direkte HTTP-banen stammer fra GrokProxy, så det hevdes ingen uavhengig kodeport.
### 🗜️ Komprimering av kontekst og tokener — motorer
Det virale prosjektet «why use many token when few token do trick» – dets hulemanns-språkfilosofi driver vår standardkomprimeringsmodus og over 30 regler for utfylling/kondensering.
Høyytelseskomprimering av kommandoresultater – inspirerte RTK-motoren vår, DSL-en for JSON-filtrering, gjenoppretting av råutdata og den stablede RTK → Caveman-pipelinen.
PT-BR-tokenkomprimering – driver språkpakken vår for pt-BR: reduksjon av pleonasmer og fjerning av utfyllingsord tilpasset brasiliansk-portugisisk grammatikk.
Den virale YAGNI-kodeferdigheten for «lat seniorutvikler» – inspirerte vår less-code-utdatastil: styring mot den minste fungerende endringen som kutter _generert_ kode (søskenet til Cavemans knappe prosa langs utdataaksen).
Innholdsbevisst komprimering av utdata per filtype med avbrudd ved feil – bekreftet vår utsending per type og hopp over komprimering ved minimal gevinst.
Kolonnebasert Rust-JSON + innholdsadressert henting + deduplisering på tvers av meldinger – bekreftet utformingen av headroom/ccr/session-dedup-motorene våre og den bufferstabile invarianten «komprimert form er posisjonsuavhengig».
Verktøysett for TypeScript Compiler API – inspirerte vår parserbaserte fjerning av kommentarer som bevarer streng-, mal- og regulære uttrykksliteraler.
MITM-avskjæring/-analyse av trafikk mellom kodeassistent og LLM ga innspill til de tidlige kravene til Traffic Inspector. Fire tidligere avledede moduler — SSE-sammenslåing, normalisering av samtaler, maskering av hemmeligheter og sanering av headere — er erstattet av uavhengige clean-room-implementasjoner basert på offentlige protokollstandarder. De to vertsgjennomslippsflatene (passthrough.ts og _internal/bypass.cjs) er fortsatt OmniRoute-interne implementasjoner som er klassifisert uavhengig; de ble ikke skrevet om som en del av denne erstatningen.
Transparent proxy-ruting per prosess — inspirerte vår krasjsikre MITM-nedkobling, inaktive tidsavbrudd for sokler, prosessattribusjon via /proc og TPROXY-registrering.
### 📚 Modelldata, observerbarhet og brukergrensesnitt
En kuratert liste over biblioteker med sikre standardinnstillinger som veileder sikkerhetsvalgene våre (Helmet.js, DOMPurify, ssrf-req-filter, safe-regex, Google Tink).
Identifiserte kvoteområdet for Grok Build; OmniRoute verifiserte og korrigerte deretter det aktive wire-formatet uavhengig.
## 📄 Lisens
MIT-lisens – se [LICENSE](LICENSE) for mer informasjon.
---
**[⬆ Tilbake til toppen](#-omniroute)** · Bygget med ❤️ for det åpne AI-fellesskapet.
Opprettet av Diego Souza · OmniRoute v3.8.54 · Node ≥22.22.2 · MIT-lisens · omniroute.online