## 💰 ~1,62 mrd. tokens / måned på tvers av tredjeparts gratisnivåer
> **Ta med dine egne leverandørkontoer.** Dette er et estimert aggregat på tvers av separat kvalifiserte tredjeparts gratisnivåer, ikke en tildeling av tokens fra OmniRoute. Registrer deg, skaff legitimasjon der det kreves, og koble til leverandørene du kan bruke; hver leverandør styrer sine egne grenser, tilgjengelighet og vilkår.
>
> Å stable gratisnivåer manuelt er krevende — dusinvis av SDK-er, dusinvis av hastighetsbegrensninger, og ingen anelse om hvor mye du faktisk har. OmniRoute katalogiserer **467 oppføringer for gratisnivåer fordelt på 34 tilbakevendende poolnøkler** og beregner token-hovedtallet fra de **17 poolene med et publisert positivt månedlig budsjett pluss fem per-modell Groq-tak**, deduplisert etter delt pool. Kvoter som først åpnes etter en regional identitetskontroll (i dag: ModelScope) vises separat, +~6M bak regional identitetsverifisering, og summeres aldri inn i hovedtallet. Resultatet forblir synlig på dashbordet (`/dashboard/free-tiers`).
> Animert sammendrag av den live `/dashboard/free-tiers`-siden. Full metodikk (pool-dedupe, kredittnivåer, leverandørvilkår): **[docs/reference/FREE_TIERS.md](docs/reference/FREE_TIERS.md)**.
>
> Disse tallene revideres hver annen uke mot den live katalogen og **beveger seg begge veier** — en leverandør avslutter et gratisnivå og tallet synker; en ny kommer til og det stiger. Vi publiserer det katalogen faktisk beregner, aldri et avrundet opp beste-fall.
⭐ Gi repoet en stjerne hvis OMNIROUTE hjalp deg å 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, leverandørtips, veikart og stø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 rut deretter gjennom ett endepunkt
```bash
# Etter at du har koblet til en leverandør, kopier OmniRoute-nøkkelen din fra 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` trenger en kvalifisert rute. En fersk installasjon kan mangle kvalifiserte nøkkelfrie mål, og en nøkkelfri leverandør kan avvise tredjepartsklienter. Leverandører merket `tos: avoid`, inkludert Kiro, er ekskludert fra automatisk ruting som standard; å koble til en konto overstyrer ikke denne innstillingen. Se [Free Tiers Guide](docs/getting-started/FREE-TIERS-GUIDE.md) før du velger en leverandør.📦 Kopier-og-lim 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 som skiller OmniRoute fra resten
📊 Fullstendig metodikk og detaljert funksjonssammenligning 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)**.
## ✨ Dette er nytt
> Nylige høydepunkter fra **v3.8.20 → v3.8.53**. Fullstendig historikk i [`CHANGELOG.md`](CHANGELOG.md).
- **⚖️ `quota-weighted`-ruting** — den 20. kombinasjonsstrategien hopper over kontoer med oppbrukt kvote og velger deretter blant resten proporsjonalt med gjenværende kvote ÷ pågående belastning, samtidig som eksisterende samtaler forblir bundet. → [Automatisk kombinasjon](docs/routing/AUTO-COMBO.md)
- **🧰 Hodeløs modus** — `omniroute serve --headless` (eller `OMNIROUTE_HEADLESS=1`) kjører bare `/v1/*`-proxy-motoren, med kontrollpanelet og delsystemene som bare brukes av kontrollpanelet, 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 liste med samme synlighet per nøkkel. → [API-referanse](docs/reference/API_REFERENCE.md)
- **🔑 Rutingskontroll per nøkkel** — bind en API-nøkkel til én modell eller kombinasjon med `forcedModel`, og legg til eller fjern modeller og kombinasjoner for en nøkkel 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 er fortsatt valgfri. → [Sikkerhetsmekanismer](docs/security/GUARDRAILS.md)
- **🌍 67 språk** — kontrollpanel, dokumentasjonsspeil 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-trykk-for-å-snakke-talechat. → [A2A-server](docs/frameworks/A2A-SERVER.md)
- **🛂 Adaptivt inntak og overbelastningsvern** — ressurskrevende chatteforespørsler legges i kø i stedet for å returnere 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 festet først), stabil på tvers av alle katalogkilder. → [API-referanse](docs/reference/API_REFERENCE.md)
- **🗜️ Styrket komprimering** — oppblåsingsvern 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 fastpriskostnader** — leverandører med abonnement / kodeplan viser **$0** i kostnadsanalysen; budsjett, kvote og ruting fortsetter å estimere. → [API-referanse](docs/reference/API_REFERENCE.md)
- **⚖️ Quota-Share-ruting** — fordel kvoten til en delt konto rettferdig mellom samlede nøkler, med arbeidsbevarende utlån av ubrukte andeler. → [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 leverandør- og modellvelger samt favoritter per kontekst. → [CLI-integrasjoner](docs/guides/CLI-INTEGRATIONS.md)
- **🛰️ Ekstern modus** — styr en ekstern OmniRoute med avgrensede tokener (`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 samt overstyring av modell / modus / USD-budsjett per forespørsel. → [Automatisk kombinasjon](docs/routing/AUTO-COMBO.md)
- **🗜️ Utvidbar komprimering** — 12 kombinerbare motorer + Compression Studios: LLMLingua-2, Ultra med to nivåer, omniglyph, kvalitetsport per trinn, GCF v3.2 og dra-og-omorganiser-redigering. → [Komprimering](docs/compression/COMPRESSION_ENGINES.md)
- **🕵️ Transparent MITM-dekryptering (TPROXY)** — fang opp CLI-er som ignorerer proxy-miljøvariabler, med en CA per SNI + installasjonsprogram for klareringslageret. → [MITM/TPROXY](docs/security/MITM-TPROXY-DECRYPT.md)
- **💸 Kostnadstelemetri overalt** — `X-OmniRoute-*`-hoder for kostnad/bruk på hvert endepunkt, sparehode for cache-HIT og forbrukskvoter i USD per nøkkel. → [API-referanse](docs/reference/API_REFERENCE.md)
- **🧠 Minne du kontrollerer** — av som standard, valgfri int8-vektorkvantisering + typebestemt nedbrytning og `x-omniroute-no-memory` per forespørsel. → [Minne](docs/frameworks/MEMORY.md)
- **🛡️ Sikkerhet** — vern mot prompt-injeksjon på hver LLM-rute (red-team-testsamling), valgfritt vern for maskering av påloggingsopplysninger (sladder lekkede API-nøkler/hemmeligheter i begge retninger), gratis DuckDuckGo-nettsøk som siste utvei og en valgfri OIDC-påloggingsport for kontrollpanelet (passordpålogging forblir alltid tilgjengelig). → [Sikkerhetsmekanismer](docs/security/GUARDRAILS.md)
- **🖼️ Nye endepunkter** — `/v1/ocr` (Mistral OCR) og `/v1/audio/translations` (Whisper-lignende) kompletterer medietilbudet. → [API-referanse](docs/reference/API_REFERENCE.md)
- **🎨 Generering av bilder / video / 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** — `basePath` for omvendt proxy, automatisk gjenkjenning av nettleserspråk, enhetssporing per nøkkel, rotløs MITM-klaring 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 + OAuth-pålogging, 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 **katalog med 375 leverandører**. → [Leverandører](docs/reference/PROVIDER_REFERENCE.md)
- **📡 Gjennomsiktig ruting** — hvert svar inneholder et `X-OmniRoute-Decision`-hode som angir strategien/leverandøren/latensen som behandlet det, en ny `cache-optimized`-kombinasjonsstrategi + Auto-Combo-faktoren `cacheAffinity` ruter gjentatte forespørsler tilbake til tilkoblingen som inneholder det hurtigbufrede prefikset, og et skrivebeskyttet `/v1/auto-combo/{channel}/candidates`-endepunkt eksponerer den aktive kandidatgruppen til en `auto/*`-kanal. → [Automatisk kombinasjon](docs/routing/AUTO-COMBO.md)
- **⚡ Lokal ytelse og infrastruktur** — lokalt Redis-oppsett med ett klikk, distribusjonsverktøy for Cloudflare Workers / Deno Deploy-reléer samt Bifrost og Mux som overvåkede, innebygde tjenester. → [Innebygde tjenester](docs/frameworks/EMBEDDED-SERVICES.md)
- **🧩 Også inkludert** — rammeverk og markedsplass for programtillegg, rammeverk for Omni-/Agent-/GitHub-ferdigheter, integrasjon med Obsidian-hvelv (22 MCP-verktøy), OpenAI-kompatible Batch- og Files-API-er, semantisk svarhurtigbuffer, spillifisering med poengtavler, ACP-agentoppdagelse (15 innebygde agenter), planlagt eksport av logger til BigQuery, `auto/chaos` parallell utsending til flere modeller, en Telegram-botbro, en versjonsbehandler i appen og LMArena-ELO-rangeringer av 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 med 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 37 verktøyene (27 CLI-kodeverktøy + 10 CLI-agenter) → [`docs/reference/CLI-TOOLS.md`](docs/reference/CLI-TOOLS.md) · 🧩 OpenCode-programtillegg → [`@omniroute/opencode-provider`](https://www.npmjs.com/package/@omniroute/opencode-provider)
**Start en hvilken som helst støttet CLI gjennom OmniRoute med én kommando** — ingen konfigurasjonsfiler skrives,
legitimasjon settes inn per prosess, og Qwen/Gemini får en midlertidig, isolert hjemmekatalog:
```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 og modell interaktivt, og skriv verktøyets egen konfigurasjon:
omniroute configure codex # også: claude opencode qwen aider goose gemini cline continue kilo 5dive
```
Hver kommando bruker den aktive eksterne konteksten (`omniroute connect `), `--dry-run`
forhåndsviser de nøyaktige miljøvariablene/argumentene uten å kjøre noe, og `--api-key-env NAME` holder hemmeligheter ute
av skallhistorikken din. → [CLI-integrasjoner](docs/guides/CLI-INTEGRATIONS.md)
## 🌐 375 AI-leverandører — 153 merket som gratis i katalogen
> **375 registrerte leverandører** på tvers av de kanoniske samlingene chat, media, søk, lokale, skyagent og system, inkludert **153 som har `hasFree: true`-oppdagelsesmetadata**. Chatmodellregisteret dekker **239 leverandører / 3 059 distinkte leverandør-modell-par / 1 475 rå modell-ID-er**; den separate gratisbudsjettkatalogen har **467 rader per modell**, **34 tilbakevendende pooler** og **51 tilbakevendende/nøkkelfrie leverandører som er gratis for alltid**. Dette er forskjellige nevnere av design; definisjoner og pool-dedupliserte beregninger finnes i [Provider Reference](docs/reference/PROVIDER_REFERENCE.md) og [Free Tiers](docs/reference/FREE_TIERS.md).
### 🏢 Hvert store laboratorium — gjennom ett endepunkt
OpenAI
Anthropic
Gemini
xAI Grok
DeepSeek
Mistral
Qwen
Meta Llama
Groq
NVIDIA
MiniMax
Cohere
Perplexity
HuggingFace
Together
Fireworks
Cloudflare
Baidu
…og 350+ til — hvert ikon hentes direkte fra dashbordets leverandørkatalog. 📖 [Provider Reference](docs/reference/PROVIDER_REFERENCE.md)
### 🆓 Gratis for alltid — $0, uten kort
OpenCode Zen DeepSeek V4, Nemotron 3 Ingen grense for tokens
Kilo Code Auto-ruter, 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 påkrevd
### 🧩 Nytt: OmniRoute i VS Codes integrerte Copilot Chat
> Ingen ny sidestolpe, ikke noe nytt chatgrensesnitt — alle modellene OmniRoute leverer, vises direkte i
> **modellvelgeren i Copilot Chat som du allerede bruker**. Fra og med VS Code 1.122 fungerer leverandørmodeller
> uten GitHub-innlogging eller Copilot-abonnement — agentmodus, verktøykall og bildeanalyse,
> helt gratis.
Installer utvidelsen **[OmniCopilot](https://github.com/diegosouzapw/OmniCopilot)**, koble den
til OmniRoute-serveren din (standard er `localhost:20128`), og åpne deretter Copilot Chat → modellvelger
→ **Administrer modeller…** → **OmniRoute**.
Fra redigeringsprogrammet: åpne visningen **Utvidelser**, søk etter **«OmniRoute»**, og klikk på **Installer**
— fungerer på samme måte i begge butikkene. Kildekode, saker og publiseringshåndboken finnes på
[diegosouzapw/OmniCopilot](https://github.com/diegosouzapw/OmniCopilot).
📖 [Veiledning for VS Code Copilot Chat](docs/guides/VSCODE-COPILOT.md) — oppsett, hva modellvelgeren viser, kontrollpanel i en fane, feilsøking
### 🎩 Nytt: OmniRouteTray — gatewayen din, rett i menylinjen
> `omniroute serve` trives best når den alltid er på. **[OmniRouteTray](https://github.com/zoispag/omniroute-tray)**
> gjør dette til en menylinjeapp for macOS som du kan sette opp og glemme: Den starter serveren, holder den i gang
> på tvers av omstarter, oppdaterer den på stedet og gir deg direkte tilgang til gjeldende tokenbudsjett med ett klikk — **uten
> et terminalvindu som står åpent, og uten en `npm install -g omniroute`-installasjon som må passes på.**
Den er bygget med [Tauri v2](https://v2.tauri.app/) (en Rust-kjerne på størrelse med en avrundingsfeil) og leveres med
sin egen signerte Node 24-kjøretid. Den administrerer en appeid OmniRoute-installasjon, slik at den aldri kommer i konflikt med din
globale `node`/`bun`. Den **deler den eksisterende konfigurasjonen og databasen din i `~/.omniroute/`** — så det er
den samme OmniRoute du allerede kjører, bare med hatt på. 🎩
Hva den gjør
Hvordan
🟢 Overvåker serveren
Starter omniroute serve og overtar en instans som allerede kjører, i stedet for å duplisere den
📊 Direkte bruksoversikt
Kvotelinjer for leverandører, økt- og ukesgrenser for Claude med nedtelling til tilbakestilling, kostnadsfordeling for 30 dager
🔄 Autooppdaterer på stedet
Trinnvis installasjon, atomisk bytte, tilbakerulling ved feil — alltid på den nyeste utgivelsen
🚀 Start ved innlogging
Valgfri oppstart ved innlogging; kun systemstatusfelt, uten Dock-ikon
🩺 Diagnostikk og logger
Diagnostikk med ett klikk og tilgang til serverlogger
```sh
brew install --cask zoispag/tap/omniroute-tray
```
Foretrekker du en nedlasting? Hent den nyeste .dmg-filen fra
Utgivelser. Kildekode, feilrapporter og byggedokumentasjon
finner du 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 besparelsesmatematikk
Standard stablet kombinasjon kjører `RTK → Caveman`. Når begge virker på samme verktøy-/kontekstnyttelast, kombineres 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 susen?** Hver forespørsel går gjennom OmniRoutes komprimeringspipeline **transparent** — uten endringer i klienten. Den er nå en **stabel med 12 kombinerbare motorer** som kjører i rekkefølge og mikses og matches per rutingkombinasjon — bygget 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).
### 🧱 Stacken med 12 motorer
Motorene kjører i pipeline-rekkefølge; hver kan slås av/på uavhengig og konfigureres per kombinasjon:
#
Motor
Hva den gjør
1
Session-Dedup
Fjerner innhold som gjentas på tvers av runder (innholdsadressert, på tvers av runder)
2
CCR
Arkiverer store blokker bak hentemarkører, hentes ved behov
3
Lite
Trimming av mellomrom + bilde-URL-er (lettvekts baseline for latens)
4
RTK
Smart filtrering, deduplisering og trunkering av verktøyresultater (kommandobevisst)
5
Responses Tool Output
Tapsfri-først JSON + begrenset diagnostisk komprimering for shell-/patch-/søk-/bygg-utdata (Responses API)
6
Headroom
Tapsfri tabellkomprimering av JSON-matriser (~30 %) via en vendorisert GCF-kodek
7
Relevance
Ekstraktiv setningsskåring mot den siste brukerforespørselen
8
Caveman
Regelbasert prosakomprimering (~65–75 % på utdata)
9
Aggressive
Oppsummering + progressiv aldring av gamle runder
10
LLMLingua-2
ML-basert semantisk beskjæring via MobileBERT ONNX — kodesikker, asynkron
11
Ultra
Heuristisk tokenbeskjæring med et valgfritt småmodell-(SLM)-nivå
12
OmniGlyph
Eksperimentell kontekst-som-bilde-koding for målt Claude Fable 5 på den direkte Anthropic-forbindelsen; GPT 5.6-transformere forblir fail-closed i påvente av leverandørkvitteringer. Fire komprimeringsprofiler (aggressiv som standard, balansert, kodesikker, passthrough) (mest aggressiv; opt-in)
Kodeblokker, URL-er og strukturerte data **bevares alltid** byte-for-byte. **Forhåndsinnstillinger med ett klikk** kombinerer motorene:
Modus
Besparelser
Best for
🪶 Lite
~15 %
Alltid på, trygg standard
🪨 Standard (Caveman)
~30 %
Daglig koding
⚡ Aggressive
~50 %
Lange verktøytunge økter
🔥 Ultra
~75 %
Maksimale besparelser
🧰 RTK
60–90 %
Shell-/test-/bygg-/git-utdata
🔗 Stacked (RTK → Caveman)
78–95 %
Blandede ledetekster + verktøylogger
**Ekte eksempel — standardmodus:**
> **Før (69 tokens):** _"Grunnen til at React-komponenten din rendres på nytt, er sannsynligvis at du oppretter en ny objektreferanse i hver render-syklus. Når du sender et innebygd objekt som en prop, ser Reacts grunne sammenligning det som et annet objekt hver gang, noe som utløser en ny rendring. Jeg vil anbefale å bruke useMemo for å memorere objektet."_
>
> **Etter (19 tokens):** _"Ny objektreferanse ved hver rendring. Innebygd objektprop = ny referanse = ny rendring. Pakk inn i useMemo."_
>
> **Samme svar. 72 % færre tokens. Null tap av nøyaktighet.** ✅
**PT-BR-eksempel — [Troglodita](https://github.com/leninejunior/troglodita)-modus:**
> **Før (42 tokens):** _"Problemet er at komponenten re-renderiseres fordi en ny objektreferanse opprettes i hver render-syklus. Jeg vil anbefale å bruke useMemo."_
>
> **Etter (12 tokens):** _"Re-render: ny ref hver syklus (inline objekt gjenopprettes). Bruk `useMemo`."_
>
> **Samme svar. ~70 % færre tokens. Teknisk presisjon intakt.** ✅
### 🎚️ Utover motorene — utdata-stiler, den adaptive skruen og styring per forespørsel
De 12 motorene over krymper det som går **inn**. Tre lag til former **hvordan**, **når** og hva som kommer **ut**:
- **🪄 Utdata-stiler** _(styring på utdata-aksen)_ — injiserer deterministiske, cache-trygge instruksjoner som former svaret; kan kombineres, hver med intensiteten `lite` / `full` / `ultra`. Å legge til en stil er én linje i registeret:
- **Kortfattet prosa** — fjern fyllord / artikler / forbehold; hold det tekniske innholdet eksakt.
- **Mindre kode** — «lat seniorutvikler»-YAGNI: minste fungerende endring, ingen uønsket stillas.
- **Ponytail (lat seniorutvikler)** — klatre YAGNI-stigen, fiks rotårsaken, minste fungerende diff.
- **Jeg har ADHD (handling først)** — neste handling først, nummererte steg, ett konkret neste steg, ingen innledning.
- **Kortfattet CJK (文言)** — ultrakort klassisk kinesisk stil (låst til `zh`).
- **🎯 Adaptivt kontekstbudsjett** _(skruen)_ — i stedet for én av/på-terskel for tokens, eskalerer du de billigste og mest tapsfrie motorene bare så langt det er nødvendig for å **passe inn i modellens kontekstvindu**. Policy: `reserve-output` (standard, modellbevisst) · `percentage` · `absolute`. Modus: `floor` (garanterer plass) · `replace-autotrigger` (ditt eksplisitte valg vinner) · `off` (eldre terskel).
- **🎛️ Hvor komprimeringen bestemmes** _(prioritet, høy → lav)_ — `x-omniroute-compression`-header per forespørsel › overstyring i rutingkombinasjon › aktiv navngitt profil › adaptiv / auto-trigger › panelstandard › av. Den anvendte planen gjenspeiles i responsheaderen `X-OmniRoute-Compression: ; source=`.
Auto-trigger via token-terskel, slå på den adaptive skruen, fest en navngitt profil, angi en engangsinnstilling per forespørsel eller tilordne en pipeline per rutingkombinasjon — det som passer arbeidsbelastningen. En valgfri offline **eval-harness** (`npm run eval:compression`) skårer troskap mot besparelser på et fastsatt korpus før du forfremmer en endring.
📖 [`COMPRESSION_GUIDE.md`](docs/compression/COMPRESSION_GUIDE.md) · [`RTK_COMPRESSION.md`](docs/compression/RTK_COMPRESSION.md) · [`COMPRESSION_ENGINES.md`](docs/compression/COMPRESSION_ENGINES.md)
# ⚡ Kom i gang
**1) Installer og kjør**
```bash
npm install -g omniroute
omniroute
```
> 💡 Ser du `npm warn ERESOLVE` eller peer-dep-varsler? [De er harmløse](docs/guides/TROUBLESHOOTING.md#npm-install-warnings-eresolve--peer--deprecated).
> **Bruker du npm 11 eller nyere?** npm kan blokkere livssyklus-skript for pakker med mindre de er tillatt. OmniRoutes `postinstall` (`node scripts/build/postinstall.mjs`) kreves for å klargjøre de innebygde kjøretidsfilene. Tillat pakkene som nevnes i npms advarsel når du installerer globalt. For pakkesettet som rapporteres av OmniRoute 3.8.53:
>
> ```bash
> npm install -g --allow-scripts=omniroute,keytar,onnxruntime-node,@parcel/watcher,@swc/core,protobufjs,esbuild omniroute
> ```
>
> For å gjenbruke denne tillatelseslisten for fremtidige globale installasjoner, konfigurer den én gang og installer deretter som vanlig:
>
> ```bash
> npm config set allow-scripts=omniroute,keytar,onnxruntime-node,@parcel/watcher,@swc/core,protobufjs,esbuild --location=user
> npm install -g omniroute
> ```
>
> Avhengighetslisten kan endre seg mellom utgivelser; hvis npm rapporterer en annen liste, bruk pakkenavnene fra den advarselen. Å tillate en pakke gir installasjonsskriptene dens lov til å kjøre.
> **Bruker du Gemini Web eller en annen web-cookie-leverandør?** npm-pakken inkluderer Playwright, men ikke Chromium-binæren. Se notatet om [Playwright Chromium-oppsett](docs/guides/TROUBLESHOOTING.md#gemini-web-and-playwright-chromium) før du gjør den første forespørselen til en web-leverandør.
Dashbord på `http://localhost:20128` · API på `http://localhost:20128/v1`.
**2) Koble til en kvalifisert leverandør med din egen konto**
Dashbord → **Leverandører** → velg en leverandør hvis gjeldende vilkår og kvote passer bruksområdet ditt → legg til API-nøkkelen eller fullfør kontoflyten. Gratisnivåer kan kreve registrering, godkjenning eller en betalingsmetode. Les [Veiledning for gratisnivåer](docs/getting-started/FREE-TIERS-GUIDE.md); nøkkelfri tilgjengelighet er ikke garantert, og leverandører merket `tos: avoid` er som standard utelukket fra `auto`.
**3) Pek kodeverktøyet ditt mot OmniRoute**
```txt
Base URL: http://localhost:20128/v1
API Key: [copy from Dashboard → Endpoints]
Model: auto (ruter blant kvalifiserte tilkoblinger — eller velg leverandør/modell)
```
**4) Verifiser at det fungerer**
```bash
curl http://localhost:20128/v1/models -H "Authorization: Bearer YOUR_KEY"
```
Du skal se de tilkoblede modellene listet opp. 🎉 Det var det — begynn å kode, så ruter og faller OmniRoute tilbake for deg automatisk.
Hvis klienten din ikke kan sende egendefinerte headere, eksponerer OmniRoute også tokeniserte kompatibilitetsaliaser:
```txt
OpenAI-katalog: http://localhost:20128/vscode/YOUR_KEY/
OpenAI-modeller: http://localhost:20128/vscode/YOUR_KEY/models
OpenAI-chat: http://localhost:20128/vscode/YOUR_KEY/chat/completions
OpenAI-responser: http://localhost:20128/vscode/YOUR_KEY/responses
Ollama-chat: http://localhost:20128/vscode/YOUR_KEY/api/chat
Ollama-tagger: http://localhost:20128/vscode/YOUR_KEY/api/tags
```
Bruk disse bare for klienter som ikke kan legge ved `Authorization: Bearer ...`. Header-autentisering er fortsatt foretrukket.
## 📦 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.
Testdekningsstrategi for over 56 000 statiske testdeklarasjoner i over 7 800 sporede testfiler
# ⭐ Toppbidragsytere
> OmniRoute formes av et engasjert åpen kildekode-fellesskap. Disse personene har gjort ekstraordinære bidrag som direkte påvirker kvaliteten, stabiliteten og rekkevidden til prosjektet. **Takk.**
### Eksterne bidragsytere etter sammenslåtte pull-forespørsler
Folketellingen ble utført 2026-10-18 15:09:09 UTC med live release/v3.8.52-spiss 656f01cb43. Den paginerte GitHub GraphQL-tellingen inneholder 9 191 sammenslåtte PR-er: 3 834 av repositorieeieren, 229 av Dependabot, 6 av andre boter/apper, og 5 122 eksterne PR-er fra 835 unike bidragsytere. «Endrede linjer» er GitHubs tillegg + slettinger og inkluderer genererte filer, lockfiler, kataloger, oversettelser og dokumentasjon; det er churn, ikke forfattede LOC. 49 PR-er rapporterer GitHub-differ over 500 000 linjer (for eksempel #13399, en enkelt leverandørtillegg, viser 2 347 endrede filer), noe som blåser opp flere av totalene ovenfor. Like plasseringer rangeres sammen.
### GitHub-tilskrevne commits
Sjekket på nytt 2026-10-18 14:44:45 UTC: GitHub-tilskrevne commits rapportert av repositoriets Contributors API for standardgrenen release/v3.8.52. API-et returnerte 849 identiteter (429 brukere, 2 boter, 418 anonyme); denne tabellen utelater vedlikeholderen, boter og anonyme identiteter og beholder uavgjorte plasseringer. Den skiller seg fra både den sammenslåtte PR-rangeringen ovenfor og Git-metadatatellingen nedenfor.
> 🙏 Disse bidragsyternes funksjoner, feilrettinger og infrastrukturforbedringer 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 folk 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.
## 👥 900+ bidragsytere
[](https://github.com/diegosouzapw/OmniRoute/graphs/contributors)
Revidert 2026-10-18 på det aktive endepunktet ad160ab2d1 i release/v3.8.52 (6 826 commits): 993 normaliserte menneskelige Git-identiteter — 707 forekommer som commit-forfattere (inkludert vedlikeholderen), og 286 forekommer bare i eksplisitte Co-authored-by-trailere. Opptellingen anvender .mailmap, sammenligner e-postadresser uten å skille mellom store og små bokstaver, slår bare sammen numeriske og vanlige GitHub-noreply-adresser når de koder for samme brukernavn, utelukker 26 bot-/agent-/tjeneste-/plassholderidentiteter og slår ikke sammen vanlige e-postadresser bare fordi visningsnavnene deres samsvarer. Revisjonen 2026-08-24 oppga 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. Fork repositoriet
2. Opprett en gren fra det **aktive** endepunktet i `release/vX.Y.Z` (ikke `main`) — se [Modell for grener og utgivelser](docs/ops/BRANCHING_MODEL.md)
3. Opprett funksjonsgrenen din (`git checkout -b feat/amazing-feature`)
4. Commit endringene dine (`git commit -m 'feat: add amazing feature'`)
5. Push til grenen (`git push origin feat/amazing-feature`)
6. Åpne en pull request med **base = den aktuelle `release/vX.Y.Z`-grenen**
Se [CONTRIBUTING.md](CONTRIBUTING.md) for detaljerte retningslinjer.
### Slik utgir du en ny versjon
```bash
# Opprett en utgivelse — npm publish skjer automatisk
VERSION=x.y.z
gh release create "v${VERSION}" --title "v${VERSION}" --generate-notes
```
## 📊 Stjerner
## 🌍 StarMapper
## 🙏 Takk
OmniRoute står på skuldrene til kjemper. Det startet som en fork av **[9router](https://github.com/decolua/9router)** og en TypeScript-portering av Go-prosjektet **[CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI)** — og derfra ble hvert delsystem nedenfor inspirert av et åpen kildekode-prosjekt som var først ute. Hvert av dem formet en konkret del av OmniRoute. Dette er vår takk til dem alle. 🙏
> ⭐ antall stjerner ble verifisert via GitHubs REST API 18. oktober 2026 — gi gjerne disse prosjektene en stjerne. Antallene er et nøyaktig, datert øyeblikksbilde og vil naturligvis endre seg.
### 🧬 Opphav & gateway
AI-gatewayen der det offentlige prisdatasettet forsyner synkroniseringen av kostnadssporingen vår, og der modellen for leverandørnormalisering dannet grunnlaget for rutingen vår.
MIT-kildekode tilpasset i den medfølgende broen fra ChatGPT Web → Codex Responses, inkludert adaptere for nettleserøkter, responsinnramming, bruk og nettsøk.
Mønstre portert til gjenoppretting av strømmer, aliaser uten tenking, reservefunksjon for nettsøk, grenser for glidende vinduer, sladding av logger og sikrede oppstartsflyter.
Prosjektets Grok-modelltilordninger, Statsig-generator for falske TypeError-feil, standardverdier for forespørsler og enheter samt NDJSON-responsprosessor ble i vesentlig grad tilpasset til OmniRoutes Grok Web-eksekverer.
Den viktigste indirekte kodekilden bak grok2api-merged; implementasjonene av modeller, hoder, nyttelast, Statsig og prosessorer er bevart i Grok Web-opphavet.
Den underliggende MIT-kilden for Grok-nyttelast og standardverdier for enheter, Statsig-generatoren og result.response-prosessoren som er videreført gjennom TQZHR og grok2api-merged.
En indirekte kilde som krediteres av grok2api-merged for proxy-pool-laget; OmniRoute bevarer denne opphavsmerknaden, men hevder ikke å ha portert en proxy-pool i sin avgrensede Grok Web-eksekverer.
Den opprinnelige Grok Web-implementasjonen benyttet prosjektets oppstrømsdesign for HTTP/nettleser som referanse; den direkte HTTP-banen er avledet fra GrokProxy, så det hevdes ingen uavhengig kodeportering.
Det virale «why use many token when few token do trick»-prosjektet — huleboerspråkfilosofien driver vår standardmodus for komprimering og over 30 regler for fjerning av fyllord og kondensering.
Høytytende komprimering av kommandoutdata — inspirerte RTK-motoren vår, DSL-en for JSON-filtrering, gjenoppretting av rådata og den stablede RTK → Caveman-pipelinen.
PT-BR-tokenkomprimering — driver språkpakken vår for pt-BR: reduksjon av pleonasmer og fjerning av fyllord tilpasset brasiliansk-portugisisk grammatikk.
Den virale «lazy senior dev»-YAGNI-koderferdigheten — inspirerte utdatastilen vår less-code: styring mot den minste fungerende endringen, som reduserer _generert_ kode (motstykket på utdataaksen til Cavemans konsise prosa).
Innholdsbevisst utdatakomprimering per filtype med feilbevisst avbrudd — bekreftet rutingen vår per type og at komprimering hoppes over ved for liten gevinst.
Kolonnebasert JSON i Rust + innholdsadressert henting + deduplisering på tvers av meldinger — bekreftet utformingen av headroom/ccr/session-dedup-motorene våre og den hurtigbufferstabile invarianten «den komprimerte formen er posisjonsuavhengig».
Verktøysett for TypeScript Compiler API — inspirerte den parserbaserte kommentarfjerningen vår som bevarer streng-, mal- og regulære uttrykksliteraler.
MITM-avskjæring og -analyse av trafikk mellom kodeassistenter og LLM-er dannet grunnlaget for tidlige krav til Traffic Inspector. Fire tidligere avledede moduler — SSE-sammenslåing, samtalenormalisering, maskering av hemmeligheter og rensing av headere — er erstattet av uavhengige renromsimplementasjoner basert på offentlige protokollstandarder. De to vertsgjennomslippingsflatene (passthrough.ts og _internal/bypass.cjs) er fortsatt interne OmniRoute-implementasjoner som er klassifisert uavhengig; de ble ikke skrevet om som en del av denne utskiftingen.
Transparent proxy-ruting per prosess — inspirerte den krasjsikre MITM-nedkoblingen vår, tidsavbrudd for inaktive sokler, prosesstilknytning via /proc og TPROXY-oppfanging.
### 📚 Modelldata, observerbarhet og brukergrensesnitt
En kuratert liste over biblioteker som er sikre som standard, og som veileder sikkerhetsvalgene våre (Helmet.js, DOMPurify, ssrf-req-filter, safe-regex, Google Tink).
Inspirerte deduplisering av forespørsler, kostnadsfri reservefunksjon for nødstilfeller, utskiftbare Auto-Combo-strategier og flerspråklig intensjonsklassifisering.
Den kontobevisste omtilordningen av modeller, valideringen av kjørbare filbaner og håndteringen av planetiketter dannet grunnlaget for OmniRoutes Antigravity-kjøretidsmiljø.
Identifiserte kvotegrensesnittet til Grok Build; OmniRoute verifiserte og korrigerte deretter det aktive dataformatet uavhengig.
## 📄 Lisens
MIT-lisens – se [LICENSE](LICENSE) for detaljer.
---
**[⬆ Tilbake til toppen](#-omniroute)** · Bygget med ❤️ for AI-fellesskapet innen åpen kildekode.
OmniRoute v3.8.53 · Node ≥22.22.2 · MIT-lisens · omniroute.online