> **Käytä omia palveluntarjoajatilejäsi.** Tämä on erikseen kelvollisten kolmansien osapuolten maksuttomien tasojen yhteenlaskettu arvio, ei OmniRouten myöntämä tokenimäärä. Rekisteröidy, hanki tunnistetiedot tarvittaessa ja yhdistä käyttämäsi palveluntarjoajat; kukin palveluntarjoaja hallitsee omia rajojaan, saatavuuttaan ja ehtojaan.
>
> Maksuttomien tasojen yhdistäminen käsin on työlästä — kymmeniä SDK:ita, kymmeniä nopeusrajoituksia eikä mitään käsitystä siitä, kuinka paljon sinulla todellisuudessa on käytettävissä. OmniRoute luetteloi **465 maksuttoman tason merkintää 34 toistuvan pooliavaimen kautta** ja laskee tokenien kokonaismäärän **17 poolista, joilla on julkaistu positiivinen kuukausibudjetti, sekä viidestä mallikohtaisesta Groq-rajoituksesta**, ja poistaa yhteisten poolien päällekkäisyydet. Kiintiöt, jotka avautuvat vasta alueellisen henkilöllisyyden tarkistuksen jälkeen (tällä hetkellä: ModelScope), näytetään erikseen: alueellisen henkilöllisyyden varmennuksen takana on lisäksi noin 6 miljoonaa tokenia, eikä niitä koskaan lasketa otsikon kokonaismäärään. Tulos pysyy näkyvissä hallintapaneelissa (`/dashboard/free-tiers`).
> Reaaliaikainen `/dashboard/free-tiers`-sivu animoituna yhteenvetona. Täydellinen menetelmä (poolien päällekkäisyyksien poisto, hyvitystasot, palveluntarjoajien ehdot): **[docs/reference/FREE_TIERS.md](docs/reference/FREE_TIERS.md)**.
>
> Nämä luvut tarkastetaan uudelleen kahden viikon välein reaaliaikaista luetteloa vasten, ja ne **muuttuvat molempiin suuntiin** — palveluntarjoajan maksuton taso päättyy ja luku pienenee; uusi palveluntarjoaja lisätään ja luku kasvaa. Julkaisemme sen, minkä luettelo todellisuudessa laskee, emme ylöspäin pyöristettyä parasta mahdollista arviota.
⭐ Anna repositoriolle tähti, jos OMNIROUTE auttoi säästämään rahaa ja helpotti työtäsi.
[](https://github.com/diegosouzapw/OmniRoute)
[](https://www.star-history.com/diegosouzapw/omniroute)
[](https://olud.ai/project/diegosouzapw-omniroute.html)
### 💬 Liity yhteisöön
**👋 Seuraa ylläpitäjää — saat uudet palveluntarjoajat, julkaisut ja vinkit ensimmäisenä:**
[](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)
**Kysymykset, palveluntarjoajavinkit, etenemissuunnitelma ja tuki → [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) / [Portaali](https://portal.sthub.com.br/communities/groups/st-hub/channels/Omniroute-World-8kRjmK)**
## 📈 Gateway kasvaa jatkuvasti
## 🆓 Asenna, yhdistä palveluntarjoaja ja reititä yhden päätepisteen kautta
```bash
# Kun olet yhdistänyt palveluntarjoajan, kopioi OmniRoute-avaimesi kohdasta 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` tarvitsee kelvollisen reitin. Uudessa asennuksessa ei välttämättä ole yhtään kelvollista avaimetonta kohdetta, ja avaimeton palveluntarjoaja voi hylätä kolmannen osapuolen asiakkaat. Palveluntarjoajat, joiden merkintä on `tos: avoid`, mukaan lukien Kiro, jätetään oletusarvoisesti automaattisen reitityksen ulkopuolelle; tilin yhdistäminen ei ohita tätä asetusta. Tutustu [Free Tiers Guide](docs/getting-started/FREE-TIERS-GUIDE.md) -oppaaseen ennen palveluntarjoajan valitsemista.📦 Kopioi ja suorita pika-aloituskomentosarjat kielille **Python, Node.js, PHP ja cURL** → [`examples/quickstart/`](examples/quickstart/)
# 💥 Lupaus
# 🤔 Miksi OmniRoute?
## 🤝 Avointen lähdekoodin ystäviemme tukema
> **Haluatko liittyä avoimen lähdekoodin ystäväksi?** Nämä ovat yrityksiä, jotka tukevat avointa lähdekoodia ja auttavat pitämään OmniRouten toiminnassa – ja me kerromme julkisesti, mihin jokainen heidän meille antamansa token menee. Ota yhteyttä: [diegosouza.pw@outlook.com](mailto:diegosouza.pw@outlook.com)
Kimi Moonshot AI
Kiitos Kimille (Moonshot AI), perustajajäsenellemme avoimen lähdekoodin ystävälle, tämän projektin tukemisesta! Kimi on tekoälylaboratorio avoimen painon K2- ja K3-malliperheiden takana – Kimi K3 tarjoaa 1M-tokenin konteksti-ikkunan, natiivin näön ja huipputason koodauksen murto-osalla suljettujen mallien hinnoista, ja toimii suoraan Claude Coden, Codexistin ja kaikkien OmniRouten tukemien koodaustyökalujen kanssa.
Mitä Kimin tuki mahdollistaa: Kimin API-krediitit mahdollistavat OmniRouten tekoälyllä validoidun julkaisuputken – *Kimi K3:n tehostaman yhdistämisvalidoinnin* vaiheen, joka tarkistaa jokaisen pull-pyynnön ennen sen julkaisua – sekä päivittäisen ominaisuuskehityksen. Ensiluokkainen Kimi-tuki toimitetaan molemmilla tavoilla: suora [Kimi API](https://platform.kimi.ai?track_id=track-8197581fdd7d4139a0f562e4a03c3798&aff=omniroute) (kimi-k3) ja [Kimi Code -koodaussuunnitelma](https://www.kimi.ai/code?aff=omniroute) (OAuth ja API-avain). OmniRoute on myös ensimmäinen brasilialainen avoimen lähdekoodin projekti Kimin tukiohjelmassa. Hanki Kimi API-avain 15 % lisäkrediiteillä →
Cheaper Inference cheaperinference.com
Kiitos Cheaper Inferencelle, OmniRouten avoimen lähdekoodin ystävälle, tämän projektin tukemisesta! Cheaper Inference on kustannusten mukaan järjestetty yhdyskäytävä, joka jälleenmyy 42 huippumallia – Claude, GPT-5.x, Gemini, Kimi K3, GLM, DeepSeek, Grok ja MiniMax – yhden OpenAI-yhteensopivan päätepisteen takana, reitittäen jokaisen pyynnön edullisimmalle kelvolliselle palveluntarjoajalle veloittamatta koskaan yli mallinvalmistajan listahinnan.
Ensiluokkainen tuki OmniRoutessa: Chat Completions, natiivi /v1/responses-päätepiste, näkö, työkalukutsut ja 3 kuvamallia (grok-imagine, nano-banana-pro, nano-banana-2, saatavilla nimellä cheaperinference/<model>). Hanki API-avain →
Linkit, joissa on tunniste aff=omniroute, ovat kumppanilinkkejä. Ne rahoittavat projektia ilman lisäkustannuksia sinulle. 🎟️ Kumppanitarjoukset — ilmaisia rekisteröitymiskuponkeja palveluntarjoajilta, joita emme sponsoroi (napsauta laajentaaksesi)Tämä osio on tarkoitettu vain viittaus-/kuponkikoodeille. Sponsoroidut kumppanuudet löytyvät yllä olevasta osiosta **🤝 Avointen lähdekoodin ystäviemme tukema**. OmniRoutella ei ole sponsorointia tai kumppanuutta tässä lueteltujen palveluntarjoajien kanssa – nämä ovat julkisia kuponkeja, joita kuka tahansa voi käyttää.
AgentRouter agentrouter.org
AgentRouter — kumppanirekisteröityminen · $100 ilmaista krediittiä rekisteröitymisen yhteydessä (ilmainen palvelin, odotettavissa korkeampi viive – paras testaukseen, ei tuotantoon). Ensiluokkainen tuki OmniRoutessa versiosta v3.8.50 alkaen: Chat Completions, Anthropic-yhteensopiva tiedostomuoto ja OpenAI-yhteensopiva polku. Saatavilla olevia malleja ovat muun muassa claude-opus-4-8, claude-opus-5, gpt-5.6-sol. Hanki 100 $ →
⚠️ Kumppanilinkki – OmniRoutella ei ole sponsorointia tai kumppanuutta tämän palveluntarjoajan kanssa.
Tiedätkö toisen palveluntarjoajan, jolla on antelias ilmainen rekisteröitymiskuponki, joka hyödyttää OmniRouten käyttäjiä? Avaa ongelma, niin lisäämme sen tänne.
## 🎯 Yhdistelmät — lippulaivaominaisuus
> **Yhdistelmä** on malliketju, jonka kautta OmniRoute reitittää **automaattisesti**. Jos kiintiö loppuu, palveluntarjoaja vikaantuu tai kustannukset nousevat äkillisesti, yhdistelmä voi siirtyä seuraavaan soveltuvaan ja toimintakuntoiseen malliin. 🛡️
### ⚡ Ei määrityksiä — käytä vain mallia `auto`
Yhdistelmää ei tarvitse luoda. Aseta malliksi `auto` (tai jokin sen muunnelma), niin OmniRoute rakentaa yhdistetyistä palveluntarjoajistasi virtuaalisen yhdistelmän, joka pisteytetään reaaliaikaisesti:
Mallitunnus
Mitä se optimoi
auto
🎯 Tasapainoinen oletus (LKGP — pysyy viimeksi toimineessa palveluntarjoajassa)
auto/coding
🧑💻 Laatua ensisijaisesti painottava koodin generointi
auto/fast
⚡ Pienin viive ensin
auto/cheap
💰 Halvin tokenikohtainen hinta ensin
auto/subscription
🎟️ Vain jo maksamasi tilauksen kiintiö — sulkeutuu virhetilanteessa eikä koskaan siirry laskutettavaan varavaihtoehtoon (opas)
auto/thrifty
🪜 Ensin tilauspaketin kiintiö, sitten askel kerrallaan halvimpiin maksullisiin vaihtoehtoihin — takaisin tilauspakettiin sen nollauduttua (opas)
auto/offline
🔋 Eniten kiintiö- tai nopeusrajoitusvaraa ensin
auto/smart
🔭 Laatu ensin + 10 % kokeilua parempien mallien löytämiseksi
auto/lkgp
📌 Eksplisiittinen pysyvyys viimeksi toimivaksi tiedetyssä palveluntarjoajassa
auto/chaos
🧪 Rinnakkainen hajautus mallipaneelille (yksi palveluntarjoajaa kohden, oletuksena 5) palauttaa yhden vastauksen; yksi kutsu ylävirtaan paneelin kutakin mallia kohden, ei vikojen injektointia
##
### 🔀 Tai rakenna omasi — 20 reititysstrategiaa
Kaikki **20** strategiaa — yhdistele vapaasti yhdistelmän jokaisessa vaiheessa:
#
Strategia
Mitä se tekee
1
priority
Ensisijaiseen kohteeseen perustuva järjestetty luettelo — käytä kukin loppuun ennen seuraavaa 🥇
2
fill-first
Käytä kunkin kohteen kiintiö kokonaan ennen siirtymistä seuraavaan
3
weighted
Painotettu satunnaisvalinta kohdekohtaisten painojen perusteella
4
round-robin
Kierrä kohteita järjestyksessä
5
p2c
Satunnainen kuormantasaus kahden vaihtoehdon menetelmällä
6
least-used
Valitse kohde, jolla on pienin nykyinen kuormitus
7
random
Tasajakaumaan perustuva satunnaisvalinta (ilman kaksoiskappaleita)
8
strict-random
Satunnaisvalinta poistamatta toistoja 🎲
9
cost-optimized
Minimoi pyyntökohtainen hinta reaaliaikaisten luettelohintojen perusteella 💸
10
headroom
Valitse kohde, jolla on eniten kiintiötä jäljellä
11
quota-weighted
Ohita loppuun käytetyt tilit ja valitse sitten suhteessa jäljellä olevaan kiintiöön ÷ käsiteltävänä olevaan kuormaan — nykyiset keskustelut pysyvät kiinnitettyinä ⚖️
12
reset-window
Suosi kohdetta, jonka kiintiöjakso nollautuu pian
13
reset-aware
Järjestä kiintiön nollautumisajan mukaan — lyhyet jaksot ensin 📊
14
context-relay
Siirrä konteksti kohteiden välillä pitkissä keskusteluissa 🧠
15
context-optimized
Valitse nykyiseen kontekstikokoon parhaiten sopiva kohde
16
cache-optimized
Kiinnitä jokainen uudelleenkäytettävä kehotteen etuliite samaan tiliin — maksimoi kehotteiden välimuistiosumat 🎯
17
lkgp
Viimeksi toimivaksi tiedetty polku — kiinnittää viimeksi onnistuneeseen palveluntarjoajaan ja turvautuu sitten sääntöihin
18
auto
16 tekijän reaaliaikainen pisteytys kaikille yhteyksille 🤖
19
fusion
Hajauttaa pyynnön mallipaneelille, minkä jälkeen arvioija koostaa yhden vastauksen 🧬
20
pipeline
Ketjuta vaiheet — kunkin kohteen tuloste syötetään seuraavalle 🔗
Auto-Combo-moottori pisteyttää jokaisen ehdokkaan **16 tekijän** perusteella (toimintakunto, kiintiö, kustannukset, viive, soveltuvuus tehtävään, laatu, istunnon saatavuus…) — katso [`docs/routing/AUTO-COMBO.md`](docs/routing/AUTO-COMBO.md).
##
### 🧱 Vikasietoisuus on sisäänrakennettu (3 itsenäistä kerrosta)
📖 [Auto-Combo-moottori](docs/routing/AUTO-COMBO.md) · [Vikasietoisuusopas](docs/architecture/RESILIENCE_GUIDE.md)
## 🏆 Mikä erottaa OmniRouten muista
📊 Täydellinen menetelmäkuvaus ja ominaisuuskohtaiset tiedot verrattuna 9routeriin, OpenRouteriin, CLIProxyAPI:in ja LiteLLM:ään → [`docs/comparison/OMNIROUTE_VS_ALTERNATIVES.md`](docs/comparison/OMNIROUTE_VS_ALTERNATIVES.md)
## 💚 Tue OmniRoutea
OmniRoute on MIT-lisensoitu, ja sitä ylläpidetään avoimesti. Jos se säästää aikaasi tai rahaasi, voit auttaa pitämään sen riippumattomana valitsemalla sinulle sopivan tavan. Sponsorointi ei koskaan vaikuta reitityksen prioriteettiin; sillä saa näkyvyyttä, ei parempaa sijoitusta.
⚠️ Lähetä kutakin valuuttaa vain sille ilmoitetussa verkossa — väärän verkon käyttäminen voi johtaa varojen menettämiseen.
🐛 Löysitkö virheen tai haluatko antaa palautetta? Avaa [keskustelu](https://github.com/diegosouzapw/OmniRoute/discussions).
Kehittäjän huomautukset: Projekti saattaa kehittäjien käytännön työn helpottamiseksi luoda paikallisen .env-tiedoston npm install/postinstall -vaiheessa. Tämä tiedosto ohitetaan tarkoituksella .gitignore-tiedoston avulla (katso .gitignore), eikä sitä saa koskaan commitoida — jos se commitoidaan vahingossa, vaihda kaikki paljastuneet salaisuudet ja poista tiedosto historiasta. Ohjeita paikallisten ympäristötiedostojen ja salaisuuksien hallintaan on tiedostossa docs/DEVELOPER-ENVIRONMENT.md.
## 📡 OmniRoute Radar
Ilmaistason tärkein luku on edelleen **~1,62 mrd. tokenia/kuukausi** yllä kuvatusta
resurssivarantojen päällekkäisyydet poistavasta luettelosta. Palveluntarjoajien tilapäiset rekisteröitymishyvitykset voivat erikseen nostaa ensimmäisen
kuukauden määrän **~2,22 miljardiin**. Radar on valinnainen, allekirjoitettu luetteloa täydentävä taso käyttäjille, jotka haluavat ajantasaisempaa
tietoa ilmaismallien saatavuudesta OmniRoute-julkaisujen välillä; yhteisöluettelo ja kaikki nykyiset ilmaiset
ominaisuudet säilyvät maksuttomina.
Tukijat voivat saada reaaliaikaisen luettelon ja tietoa palveluntarjoajien lisämahdollisuuksista. Sen erillinen,
muuttuva enimmäismäärä on **enintään noin 3 mrd. tokenia/kuukausi** palveluntarjoajien saatavuuden mukaan.
Tämä enimmäismäärä ei ole tae: palveluntarjoajat voivat muuttaa kiintiöitä, kelpoisuusehtoja, malleja tai alueita
milloin tahansa.
Radar on valinnainen ja käyttää vain GET-pyyntöjä. OmniRoute-asiakasohjelma ei lähetä kehotteita, liikennetietoja, palveluntarjoajien
määrityksiä, käyttötelemetriaa tai ilmoitusten ohittamista koskevaa paikallista tilaa. Lisätietoja kelpoisuudesta ja
nykyisestä luettelosta on osoitteessa **[radar.omniroute.online/planos](https://radar.omniroute.online/planos)**.
## ✨ Mitä uutta
> Viimeaikaiset kohokohdat versiosta **v3.8.20 → v3.8.54**. Täydellinen historia tiedostossa [`CHANGELOG.md`](CHANGELOG.md).
- **⚖️ `quota-weighted` -reititys** — 20. yhdistelmästrategia ohittaa loppuun käytetyt tilit ja arpoo jäljelle jääneiden joukosta suhteessa jäljellä olevaan kiintiöön ÷ käynnissä olevaan kuormaan, pitäen olemassa olevat keskustelut kiinnitettyinä. → [Auto-Combo](docs/routing/AUTO-COMBO.md)
- **🧰 Pääteetön tila** — `omniroute serve --headless` (tai `OMNIROUTE_HEADLESS=1`) suorittaa vain `/v1/*`-välityspalvelinkoneiston ja poistaa käytöstä hallintapaneelin sekä vain hallintapaneelissa käytettävät alijärjestelmät. → [Pääteetön tila](docs/guides/HEADLESS.md)
- **🔎 Mallien etsintä** — `/v1/models` suodattaa ominaisuuden, kontekstin, tyypin ja tekstin perusteella, ja `POST /v1/models/query` palauttaa lyhyen deterministisen ehdokaslistan samalla avainkohtaisella näkyvyydellä. → [API-viite](docs/reference/API_REFERENCE.md)
- **🔑 Avainkohtainen reitityksen hallinta** — kiinnitä API-avain yhteen malliin tai yhdistelmään `forcedModel`-määrityksellä ja lisää tai poista avaimen malleja ja yhdistelmiä atomisesti (`/api/keys/{id}/access`). → [API-viite](docs/reference/API_REFERENCE.md) · [OpenAPI](docs/openapi.yaml)
- **🛡️ Tarkemmat henkilötietojen hallintatoiminnot** — tyyppikohtainen valinta, enintään 20 validoitua mukautettua peittokuviota ja tyyppikohtaiset tunnistuslaskurit; peittäminen on edelleen valinnaista. → [Suojakaiteet](docs/security/GUARDRAILS.md)
- **🌍 67 kieltä** — hallintapaneeli, dokumentaation peilit ja CLI, ja `npm run i18n:add-locale` lisää kielen kaikkialle yhdellä komennolla. → [i18n-opas](docs/guides/I18N.md)
- **🎛️ OmniConductor** — saapuva A2A-delegointi agenttijoukkoosi, Conductor-taidot Agent Cardissa ja hallintapaneelin osio, jossa on Faro push-to-talk -äänikeskustelu. → [A2A-palvelin](docs/frameworks/A2A-SERVER.md)
- **🛂 Mukautuva pääsynhallinta ja ylikuormitussuojaus** — raskaat keskustelupyynnöt jonoutuvat 503-virheen sijaan, ja yhteyskohtaiset atomiset RPM-liukuvaraukset ovat käytössä. → [Vikasietoisuusopas](docs/architecture/RESILIENCE_GUIDE.md)
- **🗂️ Kanoninen `/v1/models`-järjestys** — yksi yhtenäinen palveluntarjoajaryhmitelty lohko palveluntarjoajaa kohden (yhdistelmät ensin), vakaana jokaisessa luettelolähteessä. → [API-viite](docs/reference/API_REFERENCE.md)
- **🗜️ Pakkauksen vahvistaminen** — oletusarvoisesti käytössä oleva paisumissuoja, Caveman-paketit DE / FR / JA + kiinalaiselle (wényán), RTK-suodattimet Gradlelle ja .NET:lle. → [Pakkaus](docs/compression/COMPRESSION_ENGINES.md)
- **💸 Rehelliset kiinteähintaiset kustannukset** — tilaus- ja koodisuunnitelmapalveluntarjoajien kustannusanalytiikan arvo on **$0**; budjetti, kiintiö ja reititys jatkavat arvioiden tekemistä. → [API-viite](docs/reference/API_REFERENCE.md)
- **⚖️ Quota-Share-reititys** — jakaa jaetun tilin kiintiön oikeudenmukaisesti koottujen avainten kesken ja lainaa käyttämättömät osuudet aktiivisille käyttäjille. → [Vikasietoisuusopas](docs/architecture/RESILIENCE_GUIDE.md)
- **🤖 CLI:n ja agentin määritys yhdellä komennolla** — 15 rekisteröityä `setup-*`-komentoa; `omniroute run` käynnistää 7 CLI:tä (Claude Code, Codex, Aider, Goose, OpenCode, Qwen Code, Gemini CLI); `omniroute configure` tukee 11 kohdetta interaktiivisella palveluntarjoaja- ja mallivalitsimella sekä kontekstikohtaisilla suosikeilla. → [CLI-integraatiot](docs/guides/CLI-INTEGRATIONS.md)
- **🛰️ Etätila** — hallitse etäkäytössä olevaa OmniRoutea rajatuilla tunnuksilla (`connect` / `contexts` / `tokens`) sekä `antigravity` OAuth-aputoiminnolla VPS-asennuksia varten. → [Etätila](docs/guides/REMOTE-MODE.md)
- **🧭 Älykkäämpi automaattinen reititys** — `auto/:`-yhdistelmät, **Fusion** (mallipaneeli + arvioija), tehtävätietoinen reititys sekä pyyntökohtaiset mallin, tilan ja USD-budjetin ohitukset. → [Auto-Combo](docs/routing/AUTO-COMBO.md)
- **🗜️ Liitettävä pakkaus** — 12 yhdisteltävää konetta + Compression Studios: LLMLingua-2, kaksitasoinen Ultra, omniglyph, vaihekohtainen tarkkuusportti, GCF v3.2 ja vetämällä järjestettävä muokkain. → [Pakkaus](docs/compression/COMPRESSION_ENGINES.md)
- **🕵️ Läpinäkyvä MITM-purku (TPROXY)** — välityspalvelimen ympäristömuuttujat ohittavien CLI:iden kaappaus sekä SNI-kohtainen CA- ja luottamusvaraston asennusohjelma. → [MITM/TPROXY](docs/security/MITM-TPROXY-DECRYPT.md)
- **💸 Kustannusten telemetria kaikkialla** — `X-OmniRoute-*`-kustannus- ja käyttöotsakkeet jokaisessa päätepisteessä, välimuistiosuman säästöotsake ja avainkohtaiset USD-kulutuskiintiöt. → [API-viite](docs/reference/API_REFERENCE.md)
- **🧠 Hallitsemasi muisti** — oletusarvoisesti pois käytöstä, valinnaisesti käyttöön otettava int8-vektorikvantisointi + tyypitetty vaimeneminen, pyyntökohtainen `x-omniroute-no-memory`. → [Muisti](docs/frameworks/MEMORY.md)
- **🛡️ Tietoturva** — prompt-injektiosuoja jokaisella LLM-reitillä (red team -testikokoelma), valinnainen tunnistetietojen peittämissuojakaide (poistaa vuotaneet API-avaimet ja salaisuudet molempiin suuntiin), maksuton DuckDuckGo-verkkohaun viimeinen varavaihtoehto sekä valinnainen OIDC-kirjautumisportti hallintapaneeliin (salasanakirjautuminen on aina käytettävissä). → [Suojakaiteet](docs/security/GUARDRAILS.md)
- **🖼️ Uudet päätepisteet** — `/v1/ocr` (Mistral OCR) ja `/v1/audio/translations` (Whisper-tyylinen) täydentävät median käsittelyn rajapintaa. → [API-viite](docs/reference/API_REFERENCE.md)
- **🎨 Kuvien, videoiden ja äänen luonti** — yksi media-API: xAI Grok Imagine ja Novita AI -video, ComfyUI, Magnific, Adobe Firefly, Segmind sekä puhepalveluntarjoajat, kuten ElevenLabs. → [API-viite](docs/reference/API_REFERENCE.md)
- **🌍 Käyttöönotto ja operointi** — käänteisen välityspalvelimen `basePath`, selaimen kielen automaattinen tunnistus, avainkohtainen laitteiden seuranta, pääkäyttäjättömän MITM-luottamus ja zh-TW-lokalisointi. → [Ympäristö](docs/reference/ENVIRONMENT.md)
- **🤝 Lisää palveluntarjoajia ja agentteja** — pilviagentit (Codex Cloud, Cursor, Devin, Jules), Grok Build (xAI) selain- ja OAuth-kirjautumisella, Ollaman ensiluokkainen kortti, Claude Opus 5 ja Sonnet 5, Kimin virallinen kumppanuus (Code/Web/Moonshot), Zed, Requesty, SenseNova, Yuanbao, Agnes AI… sekä uudistettu **388 palveluntarjoajan luettelo**. → [Palveluntarjoajat](docs/reference/PROVIDER_REFERENCE.md)
- **📡 Reitityksen läpinäkyvyys** — jokainen vastaus sisältää `X-OmniRoute-Decision`-otsakkeen, joka ilmoittaa sitä palvelleen strategian, palveluntarjoajan ja viiveen; uusi `cache-optimized`-yhdistelmästrategia sekä Auto-Combossa oleva `cacheAffinity`-tekijän reitti toistuvat pyynnöt takaisin välimuistissa olevaa etuliitettä hallussaan pitävään yhteyteen, ja vain lukuun tarkoitettu `/v1/auto-combo/{channel}/candidates`-päätepiste paljastaa `auto/*`-kanavan reaaliaikaisen ehdokasjoukon. → [Auto-Combo](docs/routing/AUTO-COMBO.md)
- **⚡ Paikallinen suorituskyky ja infrastruktuuri** — paikallinen Redis yhdellä napsautuksella, Cloudflare Workers- / Deno Deploy -välityspalvelinten käyttöönottajat, Bifrost ja Mux valvottuina upotettuina palveluina. → [Upotetut palvelut](docs/frameworks/EMBEDDED-SERVICES.md)
- **🧩 Myös mukana** — lisäosakehys ja markkinapaikka, Omni/Agent/GitHub-taitokehykset, Obsidian-holvi-integraatio (22 MCP-työkalua), OpenAI-yhteensopivat Batch- ja Files-rajapinnat, semanttinen vastausvälimuisti, pelillistäminen tulostaulukoilla, ACP-agenttien haku (15 sisäänrakennettua agenttia), ajoitettu lokien vienti BigQueryyn, `auto/chaos`-rinnakkainen usean mallin fan-out, Telegram-bottisilta, sovelluksen sisäinen versionhallinta ja LMArena-ELO:n ilmaisten palveluntarjoajien sijoitukset. → [Dokumentaatio](docs/README.md)
## 🤖 Yhteensopivat CLI:t & Koodausagentit
> Yksi konfiguraatio — `http://localhost:20128/v1` — ja **jokainen** AI-IDE tai CLI toimii ilmaisilla & edullisilla malleilla.
**Käynnistä mikä tahansa tuettu CLI OmniRouten kautta yhdellä komennolla** — ei konfiguraatiotiedostoja,
tunnistetiedot injektoidaan prosessikohtaisesti, Qwen/Gemini saa kertakäyttöisen eristetyn kotihakemiston:
```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"
# Tai valitse tarjoaja+malli interaktiivisesti ja kirjoita työkalun oma konfiguraatio:
omniroute configure codex # myös: claude opencode qwen aider goose gemini cline continue kilo 5dive
```
Jokainen komento huomioi aktiivisen etäyhteyden (`omniroute connect `), `--dry-run`
esikatselee tarkan ympäristön/parametrit ilman suorittamista, ja `--api-key-env NAME` pitää salaisuudet poissa
komentorivihistoriastasi. → [CLI-integraatiot](docs/guides/CLI-INTEGRATIONS.md)
> **388 rekisteröityä palveluntarjoajaa** kanonisissa chat-, media-, haku-, paikallis-, pilviagentti- ja järjestelmäkokoelmissa, joista **153:lla on `hasFree: true` -hakumetatiedot**. Chat-mallirekisteri kattaa **239 palveluntarjoajaa / 3 059 erillistä palveluntarjoaja–malli-paria / 1 475 raakaa mallitunnistetta**; erillisessä ilmaisen budjetin luettelossa on **471 mallikohtaista riviä**, **34 toistuvaa allasta** ja **52 toistuvasti tai ilman avainta maksutta käytettävää palveluntarjoajaa**. Nämä ovat tarkoituksella eri nimittäjiä; määritelmät ja allasduplikaatit poistavat laskelmat ovat saatavilla [palveluntarjoajien viiteoppaassa](docs/reference/PROVIDER_REFERENCE.md) ja [ilmaisissa käyttöoikeustasoissa](docs/reference/FREE_TIERS.md).
### 🏢 Kaikki merkittävät laboratoriot — yhden päätepisteen kautta
OpenAI
Anthropic
Gemini
xAI Grok
DeepSeek
Mistral
Qwen
Meta Llama
Groq
NVIDIA
MiniMax
Cohere
Perplexity
HuggingFace
Together
Fireworks
Cloudflare
Baidu
…ja yli 350 muuta — jokainen kuvake haetaan reaaliajassa hallintapaneelin palveluntarjoajaluettelosta. 📖 [Palveluntarjoajien viiteopas](docs/reference/PROVIDER_REFERENCE.md)
### 🆓 Maksutta ikuisesti — 0 $, ei korttia tarvitse antaa
OpenCode Zen DeepSeek V4, Nemotron 3 Ei tokenirajoitusta
Kilo Code Automaattinen reititin, Tencent Hy3 Aina ilmainen
Requesty GPT-OSS 120B, Nemotron Aina ilmainen
SiliconFlow DeepSeek V3.2 / R1 Ilmainen taso
Z.AI GLM GLM-4.7 / 4.5-Flash Aina ilmainen
Baidu ERNIE ERNIE 4.0 Aina ilmainen
Qoder AI Qwen3-Max, Kimi-K2 RAJOITTAMATON ILMAINEN
Pollinations GPT, Llama, Claude Avainta ei tarvita
Cloudflare AI Yli 50 mallia 10 000 neuronia/päivä
NVIDIA NIM GLM, MiniMax ~40 RPM ilmaiseksi
Cerebras GLM 4.7, GPT-OSS Kertaluonteinen 5 $:n hyvitys; kortti vaaditaan
OpenRouter :free-mallit +10 $ → suurempi RPM
📖 Täydellinen koneellisesti luettava luettelo → [`docs/reference/PROVIDER_REFERENCE.md`](docs/reference/PROVIDER_REFERENCE.md)
## 🖥️ Missä OmniRoute juoksee – missä tahansa
> Sama sovellus, koneesi, sinun säännöt. Globaalista npm-asennuksesta** puhelimesi** Termuxin kautta.
Kohokohdat
📦 npm (maailmanlaajuinen)
npm asenna -g omniroute
Yksi komento, mikä tahansa OS
⚡ Bun (maailmanlaajuinen)
bun add -g omniroute
Sama rekisteritarball, nopeammat asennukset
🐳 Docker
docker run … diegosouzapw/omniroute
Monikaari AMD64 + ARM64
🖥️ Työpöytä (Electron
npm suorita elektroni:build
Natiiviikkuna + ilmaisinalue
Windows / macOS / Linux
🎩 Valikkopalkki
OmniRouteTray)
brew install --cask zoispag/tap/omniroute-tray
& palvelimen automaattisia päivityksiä — macOS
💪 ARM
alkuperäinen arm64
Raspberry Pi, ARM palvelimet, Apple Silicon
📱 Android (Termux)
pkg install nodejs && npx -y omniroute
Suorittaa puhelimellasi , 24/7, ei
📲 PWA
"Lisää aloitusnäyttöön"
Koko näyttö, offline, asennettavissa selaimesta
🧩 OpenCode plugin
@omniroute/opencode-provider
Natiivi OpenCode integrointi
🤖 VS Koodi Copilot Chat
asenna OmniCopilot -laajennus
Jokainen OmniRoute -malli alkuperäisessä Copilot -keskusteluvalitsimessa — vakaa & Sisäpiiriläiset
### 🧩 Uutta: OmniRoute VS Coden alkuperäisessä Copilot chatissa
> Ei uutta sivupalkkia, ei uutta chat- UI – jokainen OmniRoute malli, jota palvelee, näkyy suoraan**Copilot Chat-mallinvalitsin, jota käytät jo** . VS Code 1.122:sta lähtien palveluntarjoajan mallit toimivat ilman GitHub -kirjautumista tai Copilot tilausta – agenttitila, työkalukutsut ja visio ilmaiseksi.
Asenna** [OmniCopilot](https://github.com/diegosouzapw/OmniCopilot)** laajennus, osoita se OmniRoute -palvelimellesi (oletus on `localhost:20128`) ja avaa sitten Copilot Chat → mallivalitsin →** Hallinnoi malleja…** →**OmniRoute** .
< td kohdista ="vasemmalle">Cursor, Windsurf, VSCodium, Theia, AntigravityKiro server ...
Editorin sisältä: avaa** Laajennukset** katsoa, etsiä** "OmniRoute"** , napsauta** Asentaa** - toimii samalla tavalla molemmissa myymälöissä. Lähde, numerot ja julkaisuohjekirja livenä osoitteessa [diegosouzapw/OmniCopilot](https://github.com/diegosouzapw/OmniCopilot).
📖 [VS Code Copilot Chat-opas](docs/guides/VSCODE-COPILOT.md) — asetukset, mitä valitsin näyttää, kojelauta välilehdellä, vianmääritys
### 🎩 Uutta: OmniRouteTray – yhdyskäytäväsi, joka on valikkopalkissa
> `omniroute serve` on onnellisin, kun se on aina päällä.** [OmniRouteTray](https://github.com/zoispag/omniroute-tray)** muuttaa sen macOS määritä ja unohda -valikkopalkkisovellukseksi: se käynnistää palvelimen, pitää sen hengissä uudelleenkäynnistyksen jälkeen, päivittää sen ja asettaa live-tunnusbudjettisi yhden napsautuksen päähän –** ei pääteikkunaa jätetty auki, ei `npm install -g omniroute` lapsenvahtiin.**
Rakennettu [Tauri v2:](https://v2.tauri.app/) lla (pyöristysvirheen kokoinen Rust-ydin), se lähettää oman allekirjoitetun Node 24 -ajonaikaisena ja hallitsee sovelluksen omistamaa OmniRoute -asennusta, joten se ei koskaan taistele globaalia `node`/`bun` tä vastaan. Se** jakaa olemassa olevan `~/.omniroute/` -kokoonpanosi ja tietokantasi** - joten se on sama OmniRoute, jota jo juoksit, vain hattu päässä. 🎩
Mitä se tekee
Miten
🟢 Valvoo palvelinta
Muodostaa omniroute service , ottaa käyttöön jo käynnissä olevan ilmentymän kopioimisen sijaan
📊 Live-käyttö yhdellä silmäyksellä
Palveluntarjoajan kiintiöpalkit, Claude session/weekly rajat nollatuilla lähtölaskeilla, 30 päivän kustannuserittely
🔄 Automaattiset päivitykset paikallaan
Vaiheittainen asennus, atomin vaihto, palautus epäonnistuessa – aina uusimmassa versiossa
🚀 Aloita sisäänkirjautumisen yhteydessä
Valinnainen käynnistys kirjautumisen yhteydessä; vain lokero, ei telakointikuvaketta
🩺 Doctor & lokit
Yhden napsautuksen diagnostiikka ja palvelinlokin käyttö
```sh
brew install --cask zoispag/tap/omniroute-tray
```
Haluatko ladata mieluummin? Lataa uusin .dmg osoitteesta
Julkaisee . Lähde, ongelmat ja rakenne
docs livenä osoitteessa zoispag/omniroute-tray.
💛 Yhteisöprojekti, jonka tekijä on @zoispag – ei virallinen OmniRoute julkaisu.
> Palvelimen lisäksi OmniRoute on **täydellinen komentoriviohjaamo**, jossa on **yli 80 komentoa** sekä avoimet agenttiprotokollat, joiden avulla tekoälyagentti voi hallita sitä **itsenäisesti**.
### ⌨️ Todellinen CLI (ei pelkkä `start`)
```bash
omniroute # käynnistä yhdyskäytävä ja hallintapaneeli (portti 20128)
omniroute chat # interaktiivinen TUI-keskusteluasiakas (vinoviivakomennot: /model /combo /skill /memory)
omniroute setup # ohjattu ensikäynnistyksen määritys
omniroute doctor # diagnosoi palveluntarjoajat, portit ja natiiviriippuvuudet
```
### 🛰️ Etätila — suorita CLI täällä ja OmniRoute VPS-palvelimella
Onko OmniRoute palvelimella? Hallitse sitä kannettavaltasi **samalla CLI:llä**. Kirjaudu kerran
käyttöoikeuksiltaan rajatulla tunnuksella, minkä jälkeen jokainen komento kohdistuu etäpalvelimeen.
```bash
omniroute connect 192.168.0.15 # salasana → rajattu tunnus, tallennetaan kontekstina
omniroute models # ← suoritetaan ETÄPALVELIMELLA
omniroute configure codex # ← valitsee etämallin ja kirjoittaa paikallisen Codex-profiilin
omniroute tokens create --name ci --scope read # luo suppeampia tunnuksia muille koneille
omniroute contexts use default # ← vaihda takaisin paikalliseen palvelimeen
```
Tunnusten käyttöoikeustasot ovat `read` / `write` / `admin`; prosesseja käynnistävät reitit ovat käytettävissä vain loopback-osoitteesta.
📖 [Etätila](docs/guides/REMOTE-MODE.md)
### 🤝 Yhdistä agentti — ja se hallitsee OmniRoutea itse
Aseta OmniRoute käytettäväksi **MCP:n**, **A2A:n**, **REST API:n**, **webhookien** tai **etä-CLI:n** kautta — mikä tahansa kykenevä agentti (tai oma koodisi) saa koko yhdyskäytävän hallintaansa: reitityksen, palveluntarjoajat, yhdistelmät, välimuistin, pakkauksen ja muistin — itsenäisesti. Alla olevat HTTP-päätepisteet ovat käytettävissä osoitteessa `http://localhost:20128`.
Rajapinta
Päätepiste / komento
Käyttötarkoitus
🧰 MCP (stdio)
omniroute --mcp
Liitä Claude Desktopiin, Cursoriin tai mihin tahansa MCP-asiakasohjelmaan
🌊 MCP (HTTP)
/api/mcp/stream
MCP-etäyhteys — 110 työkalua, 33 käyttöoikeusaluetta (valinnainen valvonta), täydellinen kirjausketju
📡 MCP (SSE)
/api/mcp/sse
Suoratoistava MCP-siirtotapa
🤝 A2A
/.well-known/agent.json
Agenttien välinen viestintä, JSON-RPC 2.0 + SSE, 6 taitoa
🌐 REST API
/v1/*
OpenAI-yhteensopiva — keskustelut, upotukset, kuvat, ääni ja OCR
🔔 Webhookit
/api/webhooks
Lähetä pyyntö- ja kiintiötapahtumat Slackiin, Discordiin, Telegramiin tai mihin tahansa URL-osoitteeseen
```bash
# Anna Claude Codelle kaikki OmniRoute-työkalut MCP:n kautta:
claude mcp add-server omniroute --type http --url http://localhost:20128/api/mcp/stream
```
📖 [MCP-palvelin](docs/frameworks/MCP-SERVER.md) · [A2A-palvelin](docs/frameworks/A2A-SERVER.md) · [Agenttiprotokollat](docs/frameworks/AGENT_PROTOCOLS_GUIDE.md)
## 🗜️ Säästä 15–95 % tokeneita — automaattisesti
### 📖 Näin se toimii — putki, arkkitehtuuri ja säästölaskelmat
Oletusarvoinen pinottu yhdistelmä suorittaa `RTK → Caveman`. Kun molemmat toimivat samaan työkalu-/kontekstihyötykuormaan, säästöt kumuloituvat:
```txt
combined = 1 − (1 − RTK) × (1 − Caveman_input)
average = 1 − (1 − 0.80) × (1 − 0.46) = 89.2%
range = 78.4 – 94.6%
```
Koodilohkot, URL-osoitteet, JSON ja rakenteiset tiedot ovat **aina suojattuja** säilytysmoottorilla.
> **Miksi käyttää paljon tokeneita, kun vähemmälläkin pärjää?** Jokainen pyyntö kulkee OmniRouten pakkausputken läpi **läpinäkyvästi** — asiakasmuutoksia ei tarvita. Se on nyt **12 yhdisteltävän moottorin pino**, jotka suoritetaan järjestyksessä ja joita voidaan yhdistellä reititysyhdistelmän mukaan — pohjautuen [RTK](https://github.com/rtk-ai/rtk)-, [Caveman](https://github.com/JuliusBrussee/caveman)- (⭐ 90K+), [LLMLingua-2](https://github.com/microsoft/LLMLingua)- ja [Troglodita](https://github.com/leninejunior/troglodita)-projekteissa (PT-BR) esitettyihin ideoihin.
### 🧱 12 moottorin pino
Moottorit suoritetaan putken järjestyksessä; jokainen voidaan ottaa käyttöön tai poistaa käytöstä itsenäisesti ja määrittää yhdistelmäkohtaisesti:
#
Moottori
Toiminto
1
Session-Dedup
Poistaa vuorojen välillä toistetun sisällön (sisältöosoitteinen, vuorojen välinen)
2
CCR
Arkistoi suuret lohkot noutomerkkien taakse ja hakee ne tarvittaessa
3
Lite
Välilyöntien ja kuvan URL-osoitteiden karsiminen (kevyt viiveen suhteen)
4
RTK
Älykäs työkalutulosten suodatus, duplikointi ja lyhentäminen (komennot huomioiva)
Yhteenveto + vanhojen vuorojen asteittainen vanhentaminen
10
LLMLingua-2
ML-pohjainen semanttinen karsinta MobileBERT ONNX:n avulla — kooditurvallinen, asynkroninen
11
Ultra
Heuristinen tokenien karsinta valinnaisella pienen mallin (SLM) tasolla
12
OmniGlyph
Kokeellinen kontekstin kuvaksi koodaaminen mitattua Claude Fable 5:tä varten suorassa Anthropic-yhteydessä; GPT 5.6 -muuntajat pysyvät vikasuljettuina palveluntarjoajan kuittauksia odotettaessa. Neljä pakkausprofiilia (aggressiivinen oletus, tasapainotettu, kooditurvallinen, läpivienti) (aggressiivisin; erikseen käyttöön otettava)
Koodilohkot, URL-osoitteet ja rakenteiset tiedot säilytetään **aina** tavu tavalta täydellisinä. **Yhden napsautuksen esiasetukset** yhdistävät moottorit:
Tila
Säästöt
Sopii parhaiten
🪶 Lite
~15 %
Aina käytössä oleva turvallinen oletus
🪨 Standard (Caveman)
~30 %
Päivittäinen koodaus
⚡ Aggressive
~50 %
Pitkät, työkaluvaltaiset istunnot
🔥 Ultra
~75 %
Maksimaaliset säästöt
🧰 RTK
60–90 %
Shell-/testi-/koonti-/git-tulosteet
🔗 Stacked (RTK → Caveman)
78–95 %
Sekalaiset kehotteet + työkalulokit
**Todellinen esimerkki — Standard-tila:**
> **Ennen (69 tokenia):** _"Syy siihen, että React-komponenttisi renderöityy uudelleen, on todennäköisesti se, että luot uuden objekti\-viitteen jokaisella renderöintikierroksella. Kun välität inline-objektin propina, Reactin pinnallinen vertailu näkee sen joka kerta eri objektina, mikä käynnistää uudelleenrenderöinnin. Suosittelen käyttämään useMemoa objektin memoisoimiseen."_
>
> **Jälkeen (19 tokenia):** _"Uusi objektiviite jokaisella renderöinnillä. Inline-objektiproppi = uusi viite = uudelleenrenderöinti. Käär i useMemo-funktioon."_
>
> **Sama vastaus. 72 % vähemmän tokeneita. Ei tarkkuuden menetystä.** ✅
**PT-BR-esimerkki — [Troglodita](https://github.com/leninejunior/troglodita)-tila:**
> **Ennen (42 tokenia):** _"Ongelma on, että komponentti renderöidään uudelleen, koska jokaisella renderöintikierroksella luodaan uusi objektiviittaus. Suosittelisin käyttämään useMemoa."_
>
> **Jälkeen (12 tokenia):** _"Uudelleenrenderöinti: uusi viittaus joka kierroksella (sisäkkäinen objekti luodaan uudelleen). Käytä `useMemo`."_
>
> **Sama vastaus. ~70 % vähemmän tokeneita. Tekninen tarkkuus säilyy ennallaan.** ✅
### 🎚️ Moottoreiden lisäksi — tulostyylit, mukautuva säädin ja pyyntökohtainen hallinta
Yllä olevat 12 moottoria pienentävät sitä, mitä menee **sisään**. Kolme lisäkerrosta muotoilee **miten**, **milloin** ja mitä tulee **ulos**:
- **🪄 Tulostyylit** _(tulosteen ohjaus)_ — lisäävät deterministisiä ja välimuistiturvallisia vastausten muotoiluohjeita; tyylejä voi yhdistellä, ja jokaisella on voimakkuustasot `lite` / `full` / `ultra`. Tyylin lisääminen vaatii yhden rivin rekisterimerkinnän:
- **Tiivis proosa** — poista täytesanat / artikkelit / epäröinti; säilytä tekninen sisältö täsmällisenä.
- **Vähemmän koodia** — ”laiska seniorikehittäjä” YAGNI: pienin toimiva muutos, ei pyytämätöntä rakennustyötä.
- **Poninhäntä (laiska seniorikehittäjä)** — kiipeä YAGNI-tikkaita, korjaa perimmäinen syy, tee pienin toimiva diff.
- **Minulla on ADHD (toiminta ensin)** — seuraava toimenpide ensin, vaiheet numeroituina, yksi konkreettinen seuraava askel, ei alustusta.
- **Tiivis CJK (文言)** — erittäin tiivis klassisen kiinan tyyli (rajoitettu localeen `zh`).
- **🎯 Mukautuva kontekstibudjetti** _(säädin)_ — yhden käytössä/pois käytöstä -tokenikynnyksen sijaan käytetään halvimpia ja vähiten tietoa hukkaavia moottoreita vain niin pitkälle kuin tarvitaan, jotta sisältö **mahtuu mallin konteksti-ikkunaan**. Käytäntö: `reserve-output` (oletus, mallikohtainen) · `percentage` · `absolute`. Tila: `floor` (takaa mahtumisen) · `replace-autotrigger` (oma nimenomainen valintasi voittaa) · `off` (vanha kynnys).
- **🎛️ Missä pakkaamisesta päätetään** _(ensisijaisuus, korkea → matala)_ — pyyntökohtainen `x-omniroute-compression`-otsake › reititysyhdistelmän ohitus › aktiivinen nimetty profiili › mukautuva / automaattinen käynnistin › paneelin oletus › pois käytöstä. Käytetty suunnitelma palautetaan `X-OmniRoute-Compression: ; source=`-vastausotsakkeessa.
Käynnistä automaattisesti tokenikynnyksen perusteella, ota mukautuva säädin käyttöön, kiinnitä nimetty profiili, määritä kertaluonteinen pyyntökohtainen asetus tai määritä putki kullekin reititysyhdistelmälle — valitse työkuormaan sopivin vaihtoehto. Valinnainen offline-**arviointikehys** (`npm run eval:compression`) pisteyttää uskollisuuden suhteessa säästöihin kiinteällä aineistolla ennen muutoksen julkaisemista.
📖 [`COMPRESSION_GUIDE.md`](docs/compression/COMPRESSION_GUIDE.md) · [`RTK_COMPRESSION.md`](docs/compression/RTK_COMPRESSION.md) · [`COMPRESSION_ENGINES.md`](docs/compression/COMPRESSION_ENGINES.md)
# ⚡ Pika-aloitus
**1) Asenna ja suorita**
```bash
npm install -g omniroute
omniroute
```
> 💡 Näetkö `npm warn ERESOLVE`- tai peer-riippuvuuksien varoituksia? [Ne ovat harmittomia](docs/guides/TROUBLESHOOTING.md#npm-install-warnings-eresolve--peer--deprecated).
> **Käytätkö versiota npm 11 tai uudempaa?** npm saattaa estää pakettien elinkaarikomentosarjat, ellei niitä sallita. OmniRouten `postinstall` (`node scripts/build/postinstall.mjs`) tarvitaan sen natiivien runtime-tiedostojen valmistelemiseen. Salli npm:n varoituksessa nimetyt paketit asentaessasi paketteja globaalisti. OmniRoute 3.8.54:n ilmoittamalle pakettijoukolle:
>
> ```bash
> npm install -g --allow-scripts=omniroute,keytar,onnxruntime-node,@parcel/watcher,@swc/core,protobufjs,esbuild omniroute
> ```
>
> Jos haluat käyttää tätä sallittujen pakettien luetteloa tulevissa globaaleissa asennuksissa, määritä se kerran ja asenna sen jälkeen normaalisti:
>
> ```bash
> npm config set allow-scripts=omniroute,keytar,onnxruntime-node,@parcel/watcher,@swc/core,protobufjs,esbuild --location=user
> npm install -g omniroute
> ```
>
> Riippuvuusluettelo voi muuttua julkaisujen välillä; jos npm ilmoittaa eri luettelon, käytä kyseisessä varoituksessa mainittuja pakettien nimiä. Paketin salliminen antaa sen asennuskomentosarjoille luvan suorittaa.
> **Käytätkö Gemini Webiä tai muuta verkkoselainevästeitä käyttävää palveluntarjoajaa?** npm-paketti sisältää
> Playwrightin, mutta ei sen Chromium-binaaria. Tutustu
> [Playwright Chromiumin asennusohjeeseen](docs/guides/TROUBLESHOOTING.md#gemini-web-and-playwright-chromium)
> ennen ensimmäistä verkkopalveluntarjoajan pyyntöä.
Kojelauta osoitteessa `http://localhost:20128` · API osoitteessa `http://localhost:20128/v1`.
**2) Yhdistä soveltuva palveluntarjoaja omalla tililläsi**
Kojelauta → **Palveluntarjoajat** → valitse käyttötarkoitukseesi sopiva palveluntarjoaja, jonka nykyiset ehdot ja kiintiö vastaavat tarpeitasi → lisää sen API-avain tai suorita sen tilin käyttöönottovaiheet. Ilmaiset käyttöoikeustasot saattavat edellyttää rekisteröitymistä, hyväksyntää tai maksutapaa. Tutustu [Ilmaisten käyttöoikeustasojen oppaaseen](docs/getting-started/FREE-TIERS-GUIDE.md); avaimeton saatavuus ei ole taattua, ja palveluntarjoajat, joiden merkintä on `tos: avoid`, jätetään oletusarvoisesti `auto`-valinnan ulkopuolelle.
**3) Osoita koodityökalusi palveluun**
```txt
Base URL: http://localhost:20128/v1
API Key: [copy from Dashboard → Endpoints]
Model: auto (routes among eligible connections — or choose provider/model)
```
**4) Varmista toiminta**
```bash
curl http://localhost:20128/v1/models -H "Authorization: Bearer YOUR_KEY"
```
Näet yhdistettyjen malliesi luettelon. 🎉 Siinä kaikki — aloita koodaaminen, niin OmniRoute huolehtii automaattisesta reitityksestä ja varayhteyksistä.
Jos asiakkaasi ei voi lähettää mukautettuja otsakkeita, OmniRoute tarjoaa myös tokenisoidut yhteensopivuusaliakset:
```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
```
Käytä näitä vain asiakkailla, jotka eivät voi liittää `Authorization: Bearer ...` -otsaketta. Otsaketodennus on edelleen suositeltu tapa.
## 📦 Lisää asennustapoja — Docker, lähdekoodi, 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` seuraa korkeinta **julkaistua** vakaata SemVer-versiota. Se ei seuraa git-haaraa `main`. Kiinnitä GitOps-käyttöä varten versioon `:X.Y.Z`. Katso [Docker-julkaisukanavat](docs/guides/DOCKER_GUIDE.md#release-channels). Levykuva määrittää arvoksi **`OMNIROUTE_MEMORY_MB=1024`**. Se riittää hallintapaneelille ja kevyeen keskusteluun. **Koodausagentit** (Claude Coden, Codexin, Grokin jne. tekemät `POST /v1/responses` -pyynnöt) tarvitsevat huomattavasti suuremman V8-keon, tai prosessi päätyy `FATAL ERROR` -virheeseen noin 12 GiB:n kohdalla kahden päällekkäisen pitkän kontekstin aikana. Mitoita säilö kekoa suuremmaksi (natiivipuskurit sijaitsevat V8:n ulkopuolella):
| Kuormitus | Keko (`-e OMNIROUTE_MEMORY_MB`) | Säilö (`--memory`) |
| -------------------------------------------------- | ------------------------------- | ------------------ |
| Hallintapaneeli / kevyt keskustelu | `1024` (levykuvan oletusarvo) | ≥2 g |
| Yksi koodausagentti | `8192` | ≥10 g |
| Kaksi samanaikaista pitkää `/v1/responses`-pyyntöä | `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
```
Koko taulukko: [Docker-opas — käytönaikainen RAM](docs/guides/DOCKER_GUIDE.md#runtime-ram-for-coding-agents).
> **Dockerin esijulkaisukanava:** `diegosouzapw/omniroute:next` ja
> `diegosouzapw/omniroute:next-web` seuraavat nykyistä oletusarvoista `release/v*`-
> haaraa. Nämä muuttuvat tunnisteet on tarkoitettu vain julkaisemattomien korjausten testaamiseen,
> eikä niitä **tueta tuotantokäytössä**. Katso
> [Docker-julkaisukanavat](docs/guides/DOCKER_GUIDE.md#release-channels).
**🥟 Bun**
Tavallista `bun install` -asennusta ja yleistä asennusta (`bun install -g omniroute`) tuetaan Bun-ympäristön automaattisen tunnistuksen avulla:
- **Sisäänrakennettu `bun:sqlite`**: OmniRoute käyttää Bunin sisäänrakennettua `bun:sqlite`-ajuria Bun-ympäristössä ja käyttää varajärjestelmänä `better-sqlite3`:a Node.js-ympäristössä tai `sql.js`:ää.
- **Webpack-paketoijan automaattinen valinta kehityksessä**: Kehitysympäristö (`bun run dev`) tunnistaa Bunin automaattisesti ja poistaa Turbopackin käytöstä Webpackin hyväksi natiivien V8-sidosten yhteensopimattomuuksien estämiseksi. Tuotantokoontiversiot (`bun run build`) noudattavat muuttujaa `OMNIROUTE_USE_TURBOPACK` täsmälleen samoin kuin Nodessa: oletuksena käytetään Turbopackia ja arvolla `OMNIROUTE_USE_TURBOPACK=0` koonti tehdään Webpackilla (`Dockerfile.bun` tuo sen saataville `--build-arg`-argumenttina).
- **Erillinen Bun-Dockerfile**: Monivaiheinen `Dockerfile.bun` natiiveihin Bun-tuotantokäyttöönottoihin (`docker build -f Dockerfile.bun -t omniroute:bun .`).
```bash
# Asenna ja suorita Bunilla
bun install
bun run dev
```
**🛠️ Lähdekoodista**
```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
# Nix-flakejen käyttö
nix develop
npm run dev
# Tai devboxin käyttö
devbox run npm run dev
```
📖 [Docker-opas](docs/guides/DOCKER_GUIDE.md) — Compose-profiilit, Caddy HTTPS ja Cloudflare-tunnelit.
**🦭 Podman**
```bash
# 1. Valmistele liitoskohtaan sidottava datahakemisto
mkdir -p data
# 2. Vain Linux ja paikallinen pääkäyttäjätön Podman (ei koskaan Podman Machine -etäasiakas):
podman unshare chown 1000:1000 ./data
# 3. Aseta ajoympäristövihje, koosta paikallinen Compose-levykuva ja käynnistä
echo "CONTAINER_HOST=podman" >> .env
podman compose --profile base up -d --build
```
macOS- tai Windows-järjestelmässä Podman käyttää Podman Machine -etäympäristöä: ohita `podman unshare` ja
noudata [topologiakohtaisia datahakemiston ohjeita](contrib/podman/README.md#data-directory-permissions-by-topology).
📖 [Podman-opas](contrib/podman/README.md) — Compose-koonnit, Podman Machine ja
Linux/systemd Quadlet -määritys.
**⚡ Nopeampi / kevyempi asennus (ohita natiivikoonti)**
Natiivi SQLite-moottori (`better-sqlite3`) on **valinnainen** riippuvuus, joten yleinen
asennus ei koskaan pysähdy odottamaan lähdekoodista kääntämistä: se käyttää esikäännettyä binääritiedostoa, kun sellainen vastaa
alustaasi ja Node-versiotasi, ja muussa tapauksessa siirtyy läpinäkyvästi puhdasta JavaScriptiä käyttävään moottoriin
(`node:sqlite` Node 22+:ssa, muussa tapauksessa pakettiin sisältyvä `sql.js` WASM) — koontityökaluja ei tarvita.
Voit ohittaa asennuksen jälkeisen natiivin esilämmityksen kokonaan (CI-ympäristöt, käyttöliittymättömät ympäristöt tai hitaat laitteet):
```bash
OMNIROUTE_SKIP_POSTINSTALL=1 npm install -g omniroute # Myös CI=1 ohittaa sen
```
Nopeimpiin asennuksiin kannattaa käyttää **pnpm**:ää (sisältöosoitteinen varasto + kovat linkit — katso edellä).
Käytä ilman hallintapaneelia toimivaan käyttöliittymättömään ajoympäristöön Dockerin `base`-profiilia (edellä) tai
[Termux-opasta](docs/guides/TERMUX_GUIDE.md). CLI ja verkkohallintapaneeli tarjotaan saman
prosessin kautta yhdessä portissa, joten erillistä vain CLI:n sisältävää pakettia ei tällä hetkellä ole.
Testikattavuusstrategia yli 60 000 staattiselle testimäärittelylle yli 8 400 seurattavassa testitiedostossa
# ⭐ Tärkeimmät osallistujat
> OmniRoutea rakentaa innostunut avoimen lähdekoodin yhteisö. Nämä henkilöt ovat tehneet poikkeuksellisen merkittävää työtä, joka vaikuttaa suoraan projektin laatuun, vakauteen ja tavoittavuuteen. **Kiitos.**
### Ulkopuoliset osallistujat yhdistettyjen pull requestien perusteella
Tilanne tarkistettu 2026-11-03 03:01:19 UTC, käytössä olevan release/v3.8.53-haaran kärjessä 05bc048d6c. Sivutettu GitHub GraphQL -laskenta sisältää 9 947 yhdistettyä PR:ää: tietovaraston omistajan tekemiä 4 130, Dependabotin tekemiä 240, muiden bottien/sovellusten tekemiä 6 ja 5 571 ulkopuolista PR:ää 883 eri osallistujalta. ”Muutetut rivit” tarkoittaa GitHubin lisäysten ja poistojen summaa, ja sisältää luodut tiedostot, lukitustiedostot, luettelot, käännökset ja dokumentaation; se kuvaa muutosten määrää, ei kirjoittajan LOC-määrää. 53 PR:ää ilmoittaa GitHubin diffien kooksi yli 500 000 riviä (esimerkiksi #13399, jossa lisättiin yksi palveluntarjoaja, sisältää 2 347 muutettua tiedostoa), mikä kasvattaa useita edellä esitettyjä kokonaismääriä. Tasasijat on merkitty samalla sijalla.
### GitHubin kohdistamat commitit
Tarkistettu uudelleen 2026-11-03 02:09:16 UTC: GitHubin määrittämät toimitukset, jotka repositorion Contributors API ilmoitti oletushaaralle release/v3.8.53. API palautti 903 identiteettiä (429 käyttäjää, 2 bottia, 472 anonyymiä); tästä taulukosta on jätetty pois ylläpitäjä, botit ja anonyymit identiteetit, ja tasatilanteet on säilytetty. Tämä eroaa sekä yllä olevasta yhdistettyjen PR:ien rankingista että alla olevasta Git-metatietojen laskennasta.
> 🙏 Näiden osallistujien ominaisuudet, virheenkorjaukset ja infrastruktuurin parannukset ovat **olennainen osa** sitä, mikä tekee OmniRoutesta luotettavan ja monipuolisen. Jokainen pull request, jokainen testitapaus ja jokainen i18n-käännöstiedosto on tärkeä. Avoimen lähdekoodin ohjelmistot syntyvät heidän kaltaistensa ihmisten työn tuloksena.
---
## 💖 Sponsorit
Sydämellinen kiitos kaikille, jotka rahoittavat OmniRoutea omasta pussistaan — jokainen lahjoitus auttaa pitämään projektin ilmaisena, riippumattomana ja kehityksessä.
… sekä muut, jotka haluavat pysyä yksityisinä 💛Julkiset GitHub Sponsors -sponsoroinnit tarkistettiin uudelleen 2026-10-18 GitHub Sponsors GraphQL API:n kautta: yhteensä 14 sponsoroinnista 11 on julkisia (6 aktiivista ja 5 aiempaa). GitHubin isActive-tila määrittää yllä olevat aktiivisuusmerkinnät; aiempia julkisia kertaluonteisia tukijoita kiitetään edelleen, ja yksityiset sponsorit pysyvät nimettöminä. Ko-fi-, Buy Me a Coffee-, Liberapay-, PIX- ja kryptolahjoituksia ei ole lueteltu, koska niistä ei ole julkista sponsoritietuetta.💖 Ryhdy sponsoriksi → — jokainen dollari auttaa pitämään OmniRouten ilmaisena ja riippumattomana.
## 👥 Yli 1 000 osallistujaa
[](https://github.com/diegosouzapw/OmniRoute/graphs/contributors)
Tarkastettu 2026-11-02 aktiivisen release/v3.8.53-haaran kärjessä 1c7135e0fb (7 972 committia): 1 074 normalisoitua ihmisen Git-identiteettiä — 759 esiintyy commit-tekijöinä (ylläpitäjä mukaan lukien) ja 315 ainoastaan eksplisiittisissä Co-authored-by-jälkiliitteissä. Laskennassa käytetään tiedostoa .mailmap, sähköpostiosoitteita verrataan kirjainkoosta riippumatta, numeeriset ja tavalliset GitHubin noreply-osoitteet yhdistetään vain, kun ne koodaavat saman käyttäjänimen, ja 29 botti-, agentti-, palvelu- tai paikkamerkki-identiteettiä jätetään pois. Tavallisia sähköpostiosoitteita ei yhdistetä vain siksi, että niiden näyttönimet täsmäävät. 2026-08-24 tehdyssä tarkastuksessa julkaistiin luku 639; kun tämä menetelmä suoritetaan uudelleen kyseisen tarkastuksen perustalle ac02c5b42f, tulokseksi saadaan 619, joten kasvu johtuu uusista osallistujista eikä väljemmästä menetelmästä.
### Osallistuminen
1. Tee repositoriosta fork
2. Luo haara aktiivisen `release/vX.Y.Z`-haaran kärjestä (ei `main`-haarasta) — katso [Haarautumis- ja julkaisumalli](docs/ops/BRANCHING_MODEL.md)
3. Luo ominaisuushaarasi (`git checkout -b feat/amazing-feature`)
4. Tee muutoksesi sisältävä commit (`git commit -m 'feat: add amazing feature'`)
5. Vie muutokset haaraan (`git push origin feat/amazing-feature`)
6. Avaa pull request, jonka **base = kyseinen `release/vX.Y.Z`-haara**
Katso yksityiskohtaiset ohjeet tiedostosta [CONTRIBUTING.md](CONTRIBUTING.md).
### Uuden version julkaiseminen
```bash
# Luo julkaisu — npm publish suoritetaan automaattisesti
VERSION=x.y.z
gh release create "v${VERSION}" --title "v${VERSION}" --generate-notes
```
## 📊 Tähdet
## 🌍 StarMapper
## 🙏 Kiitokset
OmniRoute seisoo jättiläisten harteilla. Se alkoi projektin **[9router](https://github.com/decolua/9router)** forkina ja Go-projektin **[CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI)** TypeScript-siirtona — ja siitä eteenpäin jokainen alla oleva alijärjestelmä sai vaikutteita avoimen lähdekoodin projektista, joka ehti ensin. Jokainen niistä muovasi konkreettista osaa OmniRoutesta. Tämä on kiitoksemme niille kaikille. 🙏
> ⭐ tähtimäärät on vahvistettu GitHubin REST API:sta 3. marraskuuta 2026 — käy antamassa näille projekteille tähti. Määrät ovat tarkka päivätty tilannekuva ja muuttuvat luonnollisesti.
### 🧬 Perimä ja yhdyskäytävä
Alkuperäinen projekti, jonka päälle tämä fork on rakennettu — sitä on täällä laajennettu monimuotoisilla API-rajapinnoilla ja kokonaan uudelleenkirjoitettu TypeScriptillä.
AI-yhdyskäytävä, jonka julkinen hinnoitteluaineisto syöttää kustannusseurannan synkronointiamme ja jonka palveluntarjoajien normalisointimalli vaikutti reititykseemme.
MIT-lähde, jota muokattiin vendoroituun ChatGPT Web → Codex Responses -siltaan, mukaan lukien selainistunto-, vastauskehystys-, käyttö- ja verkkohakuadapterit.
Sen Grok-mallimääritykset, väärennettyä TypeErroria tuottava Statsig-generaattori, pyyntö- ja laiteoletusarvot sekä NDJSON-vastauksenkäsittelijä sovitettiin olennaisin osin OmniRouten Grok Web -suorittimeen.
grok2api-mergedin tärkein transitiviinen koodilähde; sen malli-, otsake-, hyötykuorma-, Statsig- ja käsittelijätoteutukset säilyvät Grok Web -perimässä.
Taustalla oleva MIT-lähde Grok-hyötykuormille ja laiteoletusarvoille, Statsig-generaattorille sekä result.response-käsittelijälle, jotka kulkeutuivat TQZHR:n ja grok2api-mergedin kautta.
grok2api-mergedin mainitsema transitiivinen lähde sen välityspoolikerrokselle; OmniRoute säilyttää tämän perimämaininnan, mutta ei väitä siirtäneensä välityspoolia rajattuun Grok Web -suorittimeensa.
Sen alkuperäiseen Grok Web -toteutukseen tutustuttiin HTTP-/selainpohjaisen upstream-suunnittelun osalta; sen suora HTTP-polku perustuu GrokProxyyn, joten erillistä koodin siirtoa ei väitetä.
Viraali "why use many token when few token do trick" -projekti – sen luolamieskielinen filosofia ohjaa vakiomuotoista pakkaustilaamme ja yli 30 täytesana- ja tiivistyssääntöä.
PT-BR-tokenien pakkaus – antaa voiman pt-BR-kielipaketillemme: pleonasmin vähentäminen ja täytesanojen poistaminen brasilianportugalin kielioppiin sovitettuna.
Viraali "laiska seniorikehittäjä" -YAGNI-koodaustaito – inspiroi less-code-tulostustyyliämme: pienimmän toimivan muutoksen ohjaus, joka vähentää _generoitua_ koodia (Cavemanin ytimekkään proosan tulostusakselin vastinpari).
Sisältötietoinen, tiedostotyypeittäin tehtävä tulosteen pakkaus ja virhetietoinen keskeytys – vahvistivat tyyppikohtaisen ohjauksemme ja vähimmäishyödyn ohituksen.
TypeScript Compiler API -työkalupakki – inspiroi jäsenninpohjaista kommenttien poistamista, joka säilyttää merkkijono-, malline- ja säännöllisen lausekkeen literaalit.
Koodausavustajan ja LLM:n välisen liikenteen MITM-kaappaus/analysointi vaikutti Traffic Inspectorin varhaisiin vaatimuksiin. Neljä aiemmin johdettua moduulia — SSE-yhdistäminen, keskustelujen normalisointi, salaisuuksien peittäminen ja otsakkeiden puhdistus — on korvattu itsenäisillä, puhtaan huoneen toteutuksilla, jotka perustuvat julkisiin protokollastandardeihin. Kaksi isäntäkoneen välityksen ohituspintaa (passthrough.ts ja _internal/bypass.cjs) ovat edelleen OmniRouten sisäisiä toteutuksia, jotka on luokiteltu itsenäisesti; niitä ei kirjoitettu uudelleen osana tätä korvaamista.
Kuratoitu luettelo oletusarvoisesti turvallisista kirjastoista, joka ohjaa tietoturvavalintojamme (Helmet.js, DOMPurify, ssrf-req-filter, safe-regex, Google Tink).
Sen tilikohtainen mallien uudelleenmääritys, suoritettavien tiedostopolkujen validointi ja tilausmerkintöjen toiminta vaikuttivat OmniRouten Antigravity-ajonaikaiseen ympäristöön.
Tunnisti Grok Build -kiintiöpinnan; OmniRoute varmisti ja korjasi sitten aktiivisen wire-muodon itsenäisesti.
## 📄 Lisenssi
MIT-lisenssi – katso lisätietoja tiedostosta [LICENSE](LICENSE).
---
**[⬆ Takaisin alkuun](#-omniroute)** · Rakennettu ❤️:lla avoimen lähdekoodin tekoäly-yhteisöä varten.
Tekijä: Diego Souza · OmniRoute v3.8.54 · Node ≥22.22.2 · MIT-lisenssi · omniroute.online