> **Käytä omia palveluntarjoajatilejäsi.** Tämä on arvioitu kokonaismäärä erikseen saatavilla olevilta kolmansien osapuolten ilmaistasoilta, ei OmniRouten myöntämä token-paketti. Rekisteröidy, hanki tarvittavat tunnukset ja yhdistä palveluntarjoajat, joita voit käyttää. Kukin palveluntarjoaja hallitsee omia rajojaan, saatavuuttaan ja ehtojaan.
>
> Ilmaistasojen yhdistäminen käsin on työlästä — kymmeniä SDK:ita, kymmeniä nopeusrajoituksia eikä mitään käsitystä siitä, kuinka paljon kapasiteettia sinulla todella on. OmniRoute luetteloi **489 ilmaistason tietuetta 35 toistuvan resurssipooliavaimen alla** ja laskee token-määrän **17 poolista, joilla on julkaistu positiivinen kuukausibudjetti, sekä viidestä mallikohtaisesta Groq-rajasta**, ja poistaa jaettujen poolien kaksoislaskennan. Kiintiöt, jotka avautuvat vasta alueellisen henkilöllisyystarkistuksen jälkeen (tällä hetkellä ModelScope), esitetään erikseen: +~6M alueellisen henkilöllisyyden vahvistamisen takana, eikä niitä koskaan lasketa mukaan pääotsikon lukuun. Tulos pysyy näkyvissä hallintapaneelissa (`/dashboard/free-tiers`).
> Animoitu yhteenveto reaaliaikaisesta `/dashboard/free-tiers`-sivusta. Täydellinen menetelmäkuvaus (poolien kaksoislaskennan poisto, krediittitasot, 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** — kun palveluntarjoaja lopettaa ilmaistason, luku pienenee; kun uusi lisätään, se kasvaa. Julkaisemme sen, minkä luettelo todellisuudessa laskee, emmekä koskaan ylöspäin pyöristettyä parasta mahdollista arviota.
⭐ Anna repositoriolle tähti, jos OMNIROUTE auttoi sinua 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 tiedon uusista palveluntarjoajista, julkaisuista ja vinkeistä 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 [🌍 Maailmanlaajuinen](https://chat.whatsapp.com/FvuCbrpZmQ6I85n2vW5QIC?s=cl&p=a&mlu=4) / [🇧🇷 Brasilia](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)**
## 📈 Yhdyskäytävä jatkaa kasvuaan
## 🆓 Asenna, yhdistä palveluntarjoaja ja reititä sitten 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 soveltuvan reitin. Uudessa asennuksessa ei välttämättä ole yhtään soveltuvaa avaimetonta kohdetta, ja avaimeton palveluntarjoaja saattaa hylätä kolmannen osapuolen asiakasohjelmat. Merkinnällä `tos: avoid` varustetut palveluntarjoajat, mukaan lukien OpenCode Free ja Kiro, jätetään oletusarvoisesti automaattisen reitityksen ulkopuolelle. Tilin yhdistäminen ei ohita tätä asetusta. Tutustu [ilmaistasojen oppaaseen](docs/getting-started/FREE-TIERS-GUIDE.md) ennen palveluntarjoajan valitsemista.📦 Kopioitavat ja suoraan käytettävät pika-aloitusskriptit **Pythonille, Node.js:lle, PHP:lle ja cURLille** → [`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.
## 🎯 Kombot — lippulaivaominaisuus
> **Kombo** on malliketju, jonka välillä OmniRoute reitittää **automaattisesti**. Jos kiintiö loppuu, palveluntarjoaja vikaantuu tai kustannukset nousevat äkillisesti, kombo voi siirtyä seuraavaan kelvolliseen ja toimintakuntoiseen malliin. 🛡️
### ⚡ Ei määrityksiä — käytä vain `auto`
Komboa ei tarvitse luoda. Aseta malliksi `auto` (tai jokin sen muunnelma), niin OmniRoute muodostaa yhdistetyistä palveluntarjoajistasi virtuaalisen kombon, jonka pisteytys päivittyy reaaliajassa:
Mallitunnus
Mitä se optimoi
auto
🎯 Tasapainoinen oletus (LKGP — pysyy viimeksi toimineessa palveluntarjoajassa)
auto/coding
🧑💻 Laatua painottavat painot koodin generointiin
auto/fast
⚡ Pienin viive ensin
auto/cheap
💰 Halvin tunnistetta kohden ensin
auto/offline
🔋 Eniten vapaata kiintiötä / nopeusrajoituskapasiteettia ensin
auto/smart
🔭 Laatu ensin + 10 % kokeilua parempien mallien löytämiseksi
auto/lkgp
📌 Pysyy nimenomaisesti viimeksi toimineessa palveluntarjoajassa
auto/chaos
🧪 Rinnakkainen hajautus mallipaneelille (yksi palveluntarjoajaa kohden, oletuksena 5), palauttaa yhden vastauksen; yksi ylävirran kutsu paneelin kutakin mallia kohden, ei vikojen injektointia
##
### 🔀 Tai rakenna omasi — 19 reititysstrategiaa
Kaikki **19** strategiaa — yhdistele vapaasti kombon eri vaiheissa:
#
Strategia
Mitä se tekee
1
priority
Ensimmäistä kohdetta painottava järjestetty luettelo — käytä kukin loppuun ennen seuraavaa 🥇
2
fill-first
Käytä kunkin kohteen kiintiö kokonaan ennen seuraavaan siirtymistä
3
weighted
Painotettu satunnaisvalinta kohdekohtaisten painojen perusteella
4
round-robin
Kierrä kohteita järjestyksessä
5
p2c
Kahden vaihtoehdon satunnaiseen valintaan perustuva kuormantasaus
Minimoi pyynnön dollarikustannus reaaliaikaisten luettelohintojen perusteella 💸
10
headroom
Valitse kohde, jolla on eniten kiintiötä jäljellä
11
reset-window
Suosi kohdetta, jonka kiintiöjakso nollautuu pian
12
reset-aware
Järjestä kiintiön nollautumisajan perusteella — lyhyet jaksot ensin 📊
13
context-relay
Siirrä konteksti kohteiden välillä pitkissä keskusteluissa 🧠
14
context-optimized
Valitse nykyiseen kontekstikokoon parhaiten sopiva kohde
15
cache-optimized
Kiinnitä kukin uudelleenkäytettävä kehotteen etuliite samaan tiliin — maksimoi kehotteiden välimuistiosumat 🎯
16
lkgp
Viimeksi toimivaksi tunnettu polku — kiinnittää viimeksi onnistuneeseen palveluntarjoajaan ja turvautuu sitten sääntöihin
17
auto
16 tekijän reaaliaikainen pisteytys kaikissa yhteyksissä 🤖
18
fusion
Hajauta pyynnöt mallipaneelille + arvioija koostaa yhden vastauksen 🧬
19
pipeline
Ketjuta vaiheet — kunkin kohteen tulos syötetään seuraavalle 🔗
Auto-Combo-moottori pisteyttää jokaisen ehdokkaan **16 tekijän** perusteella (toimintakunto, kiintiö, kustannukset, viive, sopivuus 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)
📖 [Automaattisen yhdistelmän moottori](docs/routing/AUTO-COMBO.md) · [Resilienssiopas](docs/architecture/RESILIENCE_GUIDE.md)
## 🏆 Mikä erottaa OmniRouten muista
📊 Täydellinen menetelmäkuvaus & ominaisuuskohtaiset tiedot verrattuna 9routeriin, OpenRouteriin, CLIProxyAPI:in & 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
> Viimeisimmät kohokohdat versioväliltä **v3.8.20 → v3.8.50**. Koko historia tiedostossa [`CHANGELOG.md`](CHANGELOG.md).
- **🎛️ OmniConductor** — saapuvien A2A-pyyntöjen delegointi agenttijoukollesi, Conductor-taidot Agent Cardissa sekä hallintapaneeli, jossa on Faron push-to-talk-äänikeskustelu. → [A2A-palvelin](docs/frameworks/A2A-SERVER.md)
- **🛂 Mukautuva pyyntöjen hyväksyntä ja ylikuormitussuojaus** — raskaat keskustelupyynnöt asetetaan jonoon 503-virheen palauttamisen sijaan, ja yhteyskohtaiset RPM-liukuvat vuokraukset käsitellään atomisesti. → [Vikasietoisuusopas](docs/architecture/RESILIENCE_GUIDE.md)
- **🗂️ Kanoninen `/v1/models`-järjestys** — yksi yhtenäinen palveluntarjoajittain ryhmitelty lohko kutakin palveluntarjoajaa kohden (yhdistelmät kiinnitettyinä alkuun), vakaana kaikissa katalogilähteissä. → [API-viite](docs/reference/API_REFERENCE.md)
- **🗜️ Pakkauksen vahvistukset** — oletusarvoisesti käytössä oleva purkukoon rajoitin, Caveman-paketit saksalle, ranskalle, japanille ja kiinalle (wényán) sekä RTK-suodattimet Gradlelle ja .NETille. → [Pakkaus](docs/compression/COMPRESSION_ENGINES.md)
- **💸 Rehelliset kiinteähintaiset kustannukset** — tilaus- ja ohjelmointipakettien palveluntarjoajien kustannukseksi merkitään analytiikassa **$0**; budjetin, kiintiön ja reitityksen arviot säilyvät. → [API-viite](docs/reference/API_REFERENCE.md)
- **⚖️ Quota-Share-reititys** — jakaa yhteisen tilin kiintiön oikeudenmukaisesti yhdistettyjen avainten kesken ja säilyttää työtehokkuuden lainaamalla käyttämättömät osuudet muille. → [Vikasietoisuusopas](docs/architecture/RESILIENCE_GUIDE.md)
- **🤖 CLI:n/agentin käyttöönotto yhdellä komennolla** — 13 rekisteröityä `setup-*`-komentoa; `omniroute run` käynnistää 7 CLI:tä (Claude Code, Codex, Aider, Goose, OpenCode, Qwen Code, Gemini CLI); `omniroute configure` tukee 10 kohdetta, interaktiivista palveluntarjoajan ja mallin valitsinta sekä kontekstikohtaisia suosikkeja. → [CLI-integraatiot](docs/guides/CLI-INTEGRATIONS.md)
- **🛰️ Etätila** — ohjaa OmniRoute-etäinstanssia rajatuilla tunnuksilla (`connect` / `contexts` / `tokens`) sekä VPS-asennuksille tarkoitetulla `antigravity`-OAuth-apuohjelmalla. → [Etätila](docs/guides/REMOTE-MODE.md)
- **🧭 Älykkäämpi automaattinen reititys** — `auto/:`-yhdistelmät, **Fusion** (mallipaneeli + arvioija), tehtävät huomioiva reititys sekä pyyntökohtaiset malli-, tila- ja USD-budjettiohitukset. → [Auto-Combo](docs/routing/AUTO-COMBO.md)
- **🗜️ Laajennettava pakkaus** — 12 yhdisteltävää moottoria sekä Compression Studios: LLMLingua-2, kaksitasoinen Ultra, omniglyph, vaihekohtainen tarkkuusportti, GCF v3.2 ja vetämällä uudelleenjärjestettävä editori. → [Pakkaus](docs/compression/COMPRESSION_ENGINES.md)
- **🕵️ Läpinäkyvä MITM-salauksen purku (TPROXY)** — kaappaa välityspalvelimen ympäristömuuttujat ohittavat CLI:t käyttämällä SNI-kohtaista varmentajaa ja luottamussäilön asennusohjelmaa. → [MITM/TPROXY](docs/security/MITM-TPROXY-DECRYPT.md)
- **💸 Kustannustelemetria kaikkialla** — `X-OmniRoute-*`-kustannus- ja käyttöotsakkeet jokaisessa päätepisteessä, välimuistiosuman säästöt ilmaiseva otsake sekä avainkohtaiset USD-kulutuskiintiöt. → [API-viite](docs/reference/API_REFERENCE.md)
- **🧠 Hallitsemasi muisti** — oletusarvoisesti poissa käytöstä, valinnainen int8-vektorikvantisointi ja tyypitetty vanheneminen sekä pyyntökohtainen `x-omniroute-no-memory`. → [Muisti](docs/frameworks/MEMORY.md)
- **🛡️ Tietoturva** — kehotesyötteiden manipuloinnin esto kaikilla LLM-reiteillä (red team -testikokonaisuus), valinnainen tunnistetietojen peittävä suojakaide (peittää vuotaneet API-avaimet ja salaisuudet molempiin suuntiin), maksuton DuckDuckGo-verkkohaku viimeisenä keinona sekä valinnainen OIDC-kirjautumisportti hallintapaneelille (salasanakirjautuminen pysyy 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 mediaominaisuuksia. → [API-viite](docs/reference/API_REFERENCE.md)
- **🎨 Kuvien, videoiden ja äänen generointi** — yksi API medialle: 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 ylläpito** — käänteisen välityspalvelimen `basePath`, selaimen kielen automaattinen tunnistus, avainkohtainen laiteseuranta, pääkäyttäjäoikeuksia tarvitsematon 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, virallinen Kimi-kumppanuus (Code/Web/Moonshot), Zed, Requesty, SenseNova, Yuanbao, Agnes AI… sekä päivitetty **352 palveluntarjoajan katalogi**. → [Palveluntarjoajat](docs/reference/PROVIDER_REFERENCE.md)
- **📡 Reitityksen läpinäkyvyys** — jokainen vastaus sisältää `X-OmniRoute-Decision`-otsakkeen, joka ilmoittaa pyynnön palvelleen strategian, palveluntarjoajan ja viiveen; uusi `cache-optimized`-yhdistelmästrategia ja Auto-Combon `cacheAffinity`-tekijä reitittävät toistuvat pyynnöt takaisin yhteyteen, jossa välimuistiin tallennettu etuliite sijaitsee; lisäksi vain luku -muotoinen `/v1/auto-combo/{channel}/candidates`-päätepiste näyttää `auto/*`-kanavan reaaliaikaisen ehdokasjoukon. → [Auto-Combo](docs/routing/AUTO-COMBO.md)
- **⚡ Paikallinen suorituskyky ja infrastruktuuri** — yhdellä napsautuksella asennettava paikallinen Redis, Cloudflare Workers- ja Deno Deploy -välityspalvelinten käyttöönottotyökalut sekä Bifrost ja Mux valvottuina sulautettuina palveluina. → [Sulautetut palvelut](docs/frameworks/EMBEDDED-SERVICES.md)
- **🧩 Mukana myös** — liitännäiskehys ja markkinapaikka, Omni-, Agent- ja GitHub-taitokehykset, Obsidian-holvi-integraatio (22 MCP-työkalua), OpenAI-yhteensopivat Batch- ja Files-API:t, semanttinen vastausvälimuisti, pelillistäminen tulostauluineen, ACP-agenttien löytäminen (15 sisäänrakennettua agenttia), ajastettu lokien vienti BigQueryyn, rinnakkaisen usean mallin hajautuksen tekevä `auto/chaos`, Telegram-bottisilta, sovelluksen sisäinen versionhallinta sekä LMArena-ELO:n maksuttomien palveluntarjoajien sijoitukset. → [Dokumentaatio](docs/README.md)
## 🤖 Yhteensopivat CLI-työkalut ja koodausagentit
> Yksi määritys — `http://localhost:20128/v1` — ja **jokainen** tekoälyä hyödyntävä IDE tai CLI toimii ilmaisilla ja edullisilla malleilla.
**Käynnistä mikä tahansa tuettu CLI OmniRouten kautta yhdellä komennolla** — määritystiedostoja ei kirjoiteta,
tunnistetiedot syötetään prosessikohtaisesti ja Qwen/Gemini saavat väliaikaisen 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 palveluntarjoaja ja malli vuorovaikutteisesti ja kirjoita työkalun oma määritys:
omniroute configure codex # myös: claude opencode qwen aider goose gemini cline continue kilo
```
Jokainen komento noudattaa aktiivista etäkontekstia (`omniroute connect `), `--dry-run`
esikatselee tarkat ympäristömuuttujat ja argumentit suorittamatta komentoa, ja `--api-key-env NAME` pitää salaisuudet poissa
komentotulkkisi historiasta. → [CLI-integraatiot](docs/guides/CLI-INTEGRATIONS.md)
## 🌐 372 tekoälypalveluntarjoajaa — 154 merkitty luettelossa maksuttomiksi
> **372 rekisteröityä palveluntarjoajaa** kanonisissa keskustelu-, media-, haku-, paikallis-, pilviagentti- ja järjestelmäkokoelmissa, joista **154 sisältää `hasFree: true` -löytämismetatiedon**. Keskustelumallirekisteri kattaa **237 palveluntarjoajaa / 3 009 yksilöllistä palveluntarjoajan ja mallin yhdistelmää / 1 443 käsittelemätöntä mallitunnusta**; erillisessä maksuttomien käyttökiintiöiden luettelossa on **491 mallikohtaista riviä**, **35 uusiutuvaa resurssipoolia** ja **54 uusiutuvan tai avaimettoman, pysyvästi maksuttoman käytön tarjoavaa palveluntarjoajaa**. Näissä käytetään tarkoituksella eri nimittäjiä; määritelmät ja resurssipoolien päällekkäisyydet poistavat laskelmat löytyvät [palveluntarjoajien viitteestä](docs/reference/PROVIDER_REFERENCE.md) ja [maksuttomista käyttökiintiöistä](docs/reference/FREE_TIERS.md).
### 🏢 Kaikki merkittävät laboratoriot — yhden rajapinnan kautta
OpenAI
Anthropic
Gemini
xAI Grok
DeepSeek
Mistral
Qwen
Meta Llama
Groq
NVIDIA
MiniMax
Cohere
Perplexity
HuggingFace
Together
Fireworks
Cloudflare
Baidu
…ja yli 330 muuta — jokainen kuvake haetaan reaaliaikaisesti hallintapaneelin palveluntarjoajaluettelosta. 📖 [Palveluntarjoajien viite](docs/reference/PROVIDER_REFERENCE.md)
### 🆓 Maksuton pysyvästi — $0, ei maksukorttia
OpenCode Zen DeepSeek V4, Nemotron 3 Ei tokenirajaa
Kilo Code Automaattinen reititys, 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 Rajattomasti ILMAISEKSI
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 saldo; kortti vaaditaan
OpenRouter :free-mallit +10 $ → suurempi RPM
📖 Kattava koneluettava luettelo → [`docs/reference/PROVIDER_REFERENCE.md`](docs/reference/PROVIDER_REFERENCE.md)
## 🖥️ Missä OmniRoute toimii — kaikkialla
> Sama sovellus, sinun laitteesi, sinun sääntösi. Globaalista npm-asennuksesta aina **puhelimeesi** asti Termuxin kautta.
Alusta
Asennus
Kohokohdat
📦 npm (globaali)
npm install -g omniroute
Yksi komento, mikä tahansa käyttöjärjestelmä
🐳 Docker
docker run … diegosouzapw/omniroute
Useita arkkitehtuureja: AMD64 + ARM64
🖥️ Työpöytäsovellus (Electron)
npm run electron:build
Natiivi ikkuna + ilmaisinalue — Windows / macOS / Linux
🎩 Valikkorivi (OmniRouteTray)
brew install --cask zoispag/tap/omniroute-tray
Valvoo palvelinta ja päivittää sen automaattisesti — macOS
💪 ARM
natiivi arm64
Raspberry Pi, ARM-palvelimet, Apple Silicon
📱 Android (Termux)
pkg install nodejs && npx -y omniroute
Toimii puhelimessasi ympäri vuorokauden ilman root-oikeuksia
📲 PWA
"Lisää aloitusnäyttöön"
Koko näytön tila, offline-käyttö, asennettavissa selaimesta
🧩 OpenCode-lisäosa
@omniroute/opencode-provider
Natiivi OpenCode-integraatio
🤖 VS Code Copilot Chat
asenna OmniCopilot-laajennus
Kaikki OmniRoute-mallit natiivissa Copilot Chatin mallivalitsimessa — vakaa versio ja Insiders
### 🧩 Uutta: OmniRoute VS Coden natiivissa Copilot Chatissa
> Ei uutta sivupalkkia eikä uutta keskustelukäyttöliittymää — kaikki OmniRouten tarjoamat mallit näkyvät suoraan
> **jo käyttämässäsi Copilot Chatin mallivalitsimessa**. VS Code 1.122:sta alkaen palveluntarjoajien mallit toimivat
> ilman GitHub-kirjautumista tai Copilot-tilausta — agenttitila, työkalukutsut ja konenäkö
> ilmaiseksi.
Asenna **[OmniCopilot](https://github.com/diegosouzapw/OmniCopilot)**-laajennus, määritä se käyttämään
OmniRoute-palvelintasi (oletuksena `localhost:20128`) ja avaa sitten Copilot Chat → mallivalitsin
→ **Hallitse malleja…** → **OmniRoute**.
Editorissa: avaa **Laajennukset**-näkymä, etsi **"OmniRoute"** ja napsauta **Asenna**
— toimii samalla tavalla kummassakin kaupassa. Lähdekoodi, ongelmat ja julkaisuohjeet löytyvät osoitteesta
[diegosouzapw/OmniCopilot](https://github.com/diegosouzapw/OmniCopilot).
📖 [VS Code Copilot Chat -opas](docs/guides/VSCODE-COPILOT.md) — käyttöönotto, mitä valitsin näyttää, hallintapaneeli välilehdessä, vianmääritys
> `omniroute serve` toimii parhaiten, kun se on aina käynnissä. **[OmniRouteTray](https://github.com/zoispag/omniroute-tray)**
> tekee siitä macOS:n huolettoman valikkorivisovelluksen: se käynnistää palvelimen, pitää sen toiminnassa
> uudelleenkäynnistysten jälkeen, päivittää sen paikallaan ja tuo reaaliaikaisen tunnusbudjettisi yhden napsautuksen päähän — **ilman
> avoimeksi jätettävää pääteikkunaa tai jatkuvasti huollettavaa `npm install -g omniroute` -asennusta.**
Se on rakennettu [Tauri v2:lla](https://v2.tauri.app/) (Rust-ydin on pyöristysvirheen kokoinen), ja se sisältää
oman allekirjoitetun Node 24 -suoritusympäristönsä sekä hallinnoi sovelluksen omistamaa OmniRoute-asennusta, joten se ei koskaan kilpaile
globaalin `node`/`bun`-asennuksesi kanssa. Se **jakaa nykyiset `~/.omniroute/`-määrityksesi ja tietokantasi** — joten kyseessä on
sama jo käyttämäsi OmniRoute, nyt vain hattu päässään. 🎩
Mitä se tekee
Miten
🟢 Valvoo palvelinta
Käynnistää komennon omniroute serve ja ottaa jo käynnissä olevan instanssin hallintaansa sen monistamisen sijaan
📊 Reaaliaikainen käyttö yhdellä silmäyksellä
Palveluntarjoajien kiintiöpalkit, Claude-istuntojen ja viikkokohtaisten rajojen nollautumislaskurit sekä 30 päivän kustannuserittely
🔄 Päivittyy automaattisesti paikallaan
Vaiheistettu asennus, atominen vaihto ja palautus epäonnistumistilanteessa — aina uusin julkaisu käytössä
🚀 Käynnistyy kirjauduttaessa
Valinnainen käynnistys kirjautumisen yhteydessä; vain valikkorivillä, ei Dock-kuvaketta
🩺 Diagnostiikka ja lokit
Diagnostiikka ja pääsy palvelinlokeihin yhdellä napsautuksella
```sh
brew install --cask zoispag/tap/omniroute-tray
```
Lataatko mieluummin? Hae uusin .dmgjulkaisuista. Lähdekoodi, ongelmat ja koontiohjeet
löytyvät osoitteesta zoispag/omniroute-tray.
💛 Yhteisöprojekti, jonka tekijä on @zoispag — ei virallinen OmniRoute-julkaisu.
> Palvelimen lisäksi OmniRoute on **täysiverinen komentoriviohjaamo**, jossa on **yli 80 komentoa**, sekä avoimet agenttiprotokollat, joiden avulla tekoälyagentti voi käyttää sitä **itsenäisesti**.
### ⌨️ Oikea komentorivityökalu (ei pelkkä `start`)
```bash
omniroute # käynnistä yhdyskäytävä + hallintapaneeli (portti 20128)
omniroute chat # interaktiivinen TUI-keskusteluasiakas (vinoviivakomennot: /model /combo /skill /memory)
omniroute setup # ohjattu ensimmäisen käyttökerran määritys
omniroute doctor # diagnosoi palveluntarjoajat, portit ja natiiviriippuvuudet
```
### 🛰️ Etätila — suorita komentorivityökalu täällä ja OmniRoute VPS-palvelimella
Onko OmniRoute palvelimella? Ohjaa sitä kannettavaltasi **samalla komentorivityökalulla**. Kirjaudu kerran
rajatulla käyttöoikeustunnuksella, minkä jälkeen jokainen komento kohdistuu etäpalvelimeen.
```bash
omniroute connect 192.168.0.15 # salasana → rajattu tunnus, tallennetaan kontekstina
omniroute models list # ← suoritetaan ETÄPALVELIMELLA
omniroute configure codex # ← valitsee etämallin ja kirjoittaa paikallisen Codex-profiilin
omniroute tokens create --name ci --scope read # luo käyttöoikeuksiltaan rajatumpia tunnuksia muille koneille
omniroute contexts use default # ← vaihda takaisin paikalliseen palvelimeen
```
Tunnusten käyttöalueet ovat `read` / `write` / `admin`; prosesseja käynnistävät reitit pysyvät vain loopback-rajapinnan käytettävissä.
📖 [Etätila](docs/guides/REMOTE-MODE.md)
### 🤝 Yhdistä agentti — ja se ohjaa OmniRoutea itse
Avaa OmniRoute käytettäväksi **MCP:n**, **A2A:n**, **REST API:n**, **webhookien** tai **etäkomentorivityökalun** kautta — mikä tahansa kykenevä agentti (tai oma koodisi) saa koko yhdyskäytävän hallintaansa: reitityksen, palveluntarjoajat, yhdistelmät, välimuistin, pakkauksen ja muistin — autonomisesti. 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äkäyttö — 110 työkalua, 33 käyttöaluetta (valinnainen valvonta), täydellinen tarkastusloki
Lähetä pyyntö- ja kiintiötapahtumat Slackiin, Discordiin, Telegramiin tai mihin tahansa URL-osoitteeseen
🛰️ Etäkomentorivityökalu
omniroute connect
Ohjaa etäinstanssia rajatuilla käyttöoikeustunnuksilla
```bash
# Anna Claude Codelle OmniRouten koko työkaluvalikoima 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 % tokeneista — automaattisesti
### 📖 Näin se toimii — putki, arkkitehtuuri ja säästölaskelmat
Pinottu oletusyhdistelmä suorittaa moottorit järjestyksessä `RTK → Caveman`. Kun molemmat käsittelevät samaa työkalu-/kontekstihyötykuormaa, säästöt kertautuvat:
```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 rakenteinen data ovat säilytysmoottorin **aina suojaamia**.
> **Miksi käyttää monta tokenia, kun vähemmälläkin pärjää?** Jokainen pyyntö kulkee OmniRouten pakkausputken läpi **läpinäkyvästi** — asiakasohjelmaan ei tarvita muutoksia. Se on nyt **12 yhdisteltävän moottorin pino**, joka suoritetaan järjestyksessä ja jonka moottoreita voidaan yhdistellä reititysyhdistelmäkohtaisesti — pohjautuen projekteista [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) (PT-BR) saatuihin ideoihin.
### 🧱 12 moottorin pino
Moottorit suoritetaan putkijärjestyksessä; jokainen niistä voidaan ottaa erikseen käyttöön tai poistaa käytöstä ja määrittää yhdistelmäkohtaisesti:
#
Moottori
Mitä se tekee
1
Session-Dedup
Poistaa eri vuorojen välillä toistuvan sisällön (sisältöosoitteinen, vuorojen välinen)
2
CCR
Arkistoi suuret lohkot noutomerkintöjen taakse, joista ne haetaan tarvittaessa
3
Lite
Tyhjätilan ja kuvien URL-osoitteiden karsiminen (kevyt perusratkaisu viiveen kannalta)
4
RTK
Älykäs työkalutulosten suodatus, duplikaattien poisto ja katkaisu (komentotietoinen)
5
Responses Tool Output
Ensisijaisesti häviötön JSON-pakkaus sekä rajattu diagnostiikkapakkaus komentotulkin, korjaustiedostojen, hakujen ja koontien tulosteille (Responses API)
6
Headroom
JSON-taulukoiden häviötön taulukkomuotoinen tiivistäminen (~30 %) sisällytetyn GCF-koodekin avulla
7
Relevance
Lauseiden poimiva pisteytys viimeisimmän käyttäjäkyselyn perusteella
Yhteenvetojen luonti ja vanhojen vuorojen asteittainen vanhentaminen
10
LLMLingua-2
Koneoppimiseen perustuva semanttinen karsinta MobileBERT ONNXin avulla — kooditurvallinen ja asynkroninen
11
Ultra
Heuristinen tokenien karsinta valinnaisella pienen mallin (SLM) tasolla
12
OmniGlyph
Kokeellinen kontekstin koodaus kuvaksi mitattua Claude Fable 5 -mallia varten suorassa Anthropic-yhteydessä; GPT 5.6 -muuntimet pysyvät turvallisesti suljettuina, kunnes palveluntarjoajalta saadaan kuittaukset. Neljä pakkausprofiilia (oletuksena aggressiivinen, tasapainoinen, kooditurvallinen ja läpivienti) (aggressiivisin; otettava erikseen käyttöön)
Koodilohkot, URL-osoitteet ja rakenteinen data säilytetään **aina** tavutasolla muuttumattomina. **Yhden napsautuksen esiasetukset** yhdistelevät moottoreita:
Tila
Säästö
Sopii parhaiten
🪶 Lite
~15 %
Aina käytössä olevaksi turvalliseksi oletukseksi
🪨 Standard (Caveman)
~30 %
Päivittäiseen ohjelmointiin
⚡ Aggressive
~50 %
Pitkiin, runsaasti työkaluja käyttäviin istuntoihin
🔥 Ultra
~75 %
Suurimpiin mahdollisiin säästöihin
🧰 RTK
60–90 %
Komentotulkin, testien, koontien ja gitin tulosteisiin
🔗 Pinottu (RTK → Caveman)
78–95 %
Sekoitettuihin kehotteisiin ja työkalulokeihin
**Todellinen esimerkki — Standard-tila:**
> **Ennen (69 tokenia):** _"React-komponenttisi hahmontuu uudelleen todennäköisesti siksi, että luot uuden objektiviittauksen jokaisella hahmonnuskerralla. Kun välität sisäkkäisen objektin prop-arvona, Reactin pinnallinen vertailu näkee sen joka kerta eri objektina, mikä käynnistää uudelleenhahmonnuksen. Suosittelen muistamaan objektin useMemo-toiminnolla."_
>
> **Jälkeen (19 tokenia):** _"Uusi objektiviittaus jokaisella hahmonnuksella. Sisäkkäinen objekti prop-arvona = uusi viittaus = uudelleenhahmonnus. Kääri useMemo-toimintoon."_
>
> **Sama vastaus. 72 % vähemmän tokeneita. Ei lainkaan tarkkuuden heikkenemistä.** ✅
**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. Suosittelen käyttämään useMemoa."_
>
> **Jälkeen (12 tokenia):** _"Uudelleenrenderöinti: uusi viittaus joka kierroksella (inline-objekti luodaan uudelleen). Käytä `useMemo`."_
>
> **Sama vastaus. ~70 % vähemmän tokeneita. Tekninen tarkkuus 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ätasoa määrittävät, **miten**, **milloin** ja mitä tulee **ulos**:
- **🪄 Tulostyylit** _(tulostusakselin ohjaus)_ — lisää deterministisiä ja välimuistiturvallisia ohjeita vastausten muotoiluun; tyylejä voi yhdistellä, ja jokaisella on voimakkuus `lite` / `full` / `ultra`. Tyylin lisääminen vaatii vain yhden rivin rekisterimerkinnän:
- **Tiivis proosa** — poista täytesanat / artikkelit / varaukset; säilytä tekninen sisältö täsmällisenä.
- **Vähemmän koodia** — "laiskan seniorikehittäjän" YAGNI: pienin toimiva muutos, ei pyytämättömiä tukirakenteita.
- **Ponytail (laiska seniorikehittäjä)** — etene YAGNI-portaita, korjaa juurisyy, tee pienin toimiva muutos.
- **Minulla on ADHD (toiminta ensin)** — aloita seuraavasta toimesta, numeroi vaiheet, anna yksi konkreettinen seuraava askel, ei johdantoa.
- **Tiivis CJK (文言)** — klassisen kiinan äärimmäisen tiivis tyyli (käytettävissä vain `zh`-kielialueella).
- **🎯 Mukautuva kontekstibudjetti** _(säädin)_ — yhden käytössä/pois käytöstä -tokenrajan sijaan edetään halvimmissa ja vähiten tietoa hukkaavissa moottoreissa vain niin pitkälle kuin tarvitaan, jotta sisältö **mahtuu mallin konteksti-ikkunaan**. Käytäntö: `reserve-output` (oletus, mallitietoinen) · `percentage` · `absolute`. Tila: `floor` (takaa mahtumisen) · `replace-autotrigger` (oma nimenomainen valintasi ohittaa automaattisen laukaisun) · `off` (vanha kynnysarvo).
- **🎛️ Missä pakkauksesta päätetään** _(etusijajärjestys, korkea → matala)_ — pyyntökohtainen `x-omniroute-compression`-otsake › reititysyhdistelmän ohitus › aktiivinen nimetty profiili › mukautuva / automaattinen laukaisu › paneelin oletus › pois käytöstä. Käytetty suunnitelma palautetaan `X-OmniRoute-Compression: ; source=`-vastausotsakkeessa.
Käytä tokenrajaan perustuvaa automaattista laukaisua, ota mukautuva säädin käyttöön, kiinnitä nimetty profiili, määritä kertaluonteinen asetus pyyntökohtaisesti tai määritä putki reititysyhdistelmälle — valitse työkuormaan sopiva tapa. Valinnainen offline-tilassa toimiva **arviointikehys** (`npm run eval:compression`) pisteyttää sisällön vastaavuuden suhteessa säästöihin kiinnitetyllä aineistolla ennen muutoksen käyttöönottoa.
📖 [`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 käynnistä**
```bash
npm install -g omniroute
omniroute
```
> 💡 Näetkö `npm warn ERESOLVE`-varoituksen tai vertaisriippuvuusvaroituksia? [Ne ovat harmittomia](docs/guides/TROUBLESHOOTING.md#npm-install-warnings-eresolve--peer--deprecated).
> **Käytätkö npm 11:tä tai uudempaa?** npm saattaa estää pakettien elinkaarikomentosarjat, ellei niitä ole sallittu. OmniRouten `postinstall` (`node scripts/build/postinstall.mjs`) tarvitaan sen natiivien ajonaikaisten tiedostojen valmistelemiseen. Salli npm:n varoituksessa nimetyt paketit, kun asennat globaalisti. OmniRoute 3.8.51:n ilmoittamalle pakettijoukolle:
>
> ```bash
> npm install -g --allow-scripts=omniroute,keytar,onnxruntime-node,@parcel/watcher,@swc/core,protobufjs,esbuild omniroute
> ```
>
> Voit käyttää tätä sallittujen pakettien luetteloa uudelleen tulevissa globaaleissa asennuksissa määrittämällä sen kerran ja asentamalla sen jälkeen tavalliseen tapaan:
>
> ```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 luvan suorittaa sen asennuskomentosarjat.
> **Käytätkö Gemini Webiä tai muuta verkkovästeisiin perustuvaa palveluntarjoajaa?** npm-paketti sisältää
> Playwrightin mutta ei sen Chromium-binääriä. Lue
> [Playwright Chromiumin määrityksiä](docs/guides/TROUBLESHOOTING.md#gemini-web-and-playwright-chromium)
> koskeva huomautus ennen ensimmäisen pyynnön lähettämistä verkkopalveluntarjoajalle.
Hallintapaneeli osoitteessa `http://localhost:20128` · API osoitteessa `http://localhost:20128/v1`.
**2) Yhdistä vaatimukset täyttävä palveluntarjoaja omalla tililläsi**
Hallintapaneeli → **Palveluntarjoajat** → valitse palveluntarjoaja, jonka nykyiset ehdot ja kiintiö sopivat käyttötarkoitukseesi → lisää sen API-avain tai suorita sen tiliprosessi loppuun. Ilmaiset käyttöluokat voivat edellyttää rekisteröitymistä, hyväksyntää tai maksutapaa. Tutustu [ilmaisten käyttöluokkien oppaaseen](docs/getting-started/FREE-TIERS-GUIDE.md); avaimetonta saatavuutta ei taata, ja palveluntarjoajat, joiden merkintä on `tos: avoid`, jätetään oletusarvoisesti pois `auto`-reitityksestä.
**3) Määritä koodaustyökalusi**
```txt
Perus-URL: http://localhost:20128/v1
API-avain: [kopioi kohdasta Hallintapaneeli → Päätepisteet]
Malli: auto (reitittää vaatimukset täyttävien yhteyksien välillä — tai valitse palveluntarjoaja/malli)
```
**4) Varmista toiminta**
```bash
curl http://localhost:20128/v1/models -H "Authorization: Bearer YOUR_KEY"
```
Yhdistettyjen malliesi pitäisi näkyä luettelossa. 🎉 Siinä kaikki — aloita koodaaminen, niin OmniRoute reitittää pyynnöt automaattisesti ja vaihtaa tarvittaessa varavaihtoehtoon.
Jos asiakasohjelmasi ei voi lähettää mukautettuja otsakkeita, OmniRoute tarjoaa myös tokenisoidut yhteensopivuusaliakset:
```txt
OpenAI-luettelo: http://localhost:20128/vscode/YOUR_KEY/
OpenAI-mallit: http://localhost:20128/vscode/YOUR_KEY/models
OpenAI-keskustelu: http://localhost:20128/vscode/YOUR_KEY/chat/completions
OpenAI-vastaukset: http://localhost:20128/vscode/YOUR_KEY/responses
Ollama-keskustelu: http://localhost:20128/vscode/YOUR_KEY/api/chat
Ollama-tunnisteet: http://localhost:20128/vscode/YOUR_KEY/api/tags
```
Käytä näitä vain asiakasohjelmissa, jotka eivät voi liittää `Authorization: Bearer ...`-otsaketta. Otsakkeeseen perustuva todennus on edelleen suositeltava 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 39 000 staattiselle testimääritykselle yli 5 100 seuratussa testitiedostossa
# ⭐ Parhaat osallistujat
> Intohimoinen avoimen lähdekoodin yhteisö muovaa OmniRoutea. Nämä henkilöt ovat antaneet poikkeuksellisen panoksen, joka vaikuttaa suoraan projektin laatuun, vakauteen ja tavoittavuuteen. **Kiitos.**
### Ulkopuoliset osallistujat yhdistettyjen vetopyyntöjen mukaan
Tilanne jäädytetty aktiivisen release/v3.8.50-haaran kärkeen dafb4ae808, ja mukana ovat yhdistämiset ajankohtaan 2026-08-24 05:26:03 UTC asti. Sivutettu GitHub GraphQL -kartoitus sisältää 5 911 yhdistettyä PR:ää: 2 707 arkiston omistajalta, 179 Dependabotilta ja 3 025 ulkopuolista PR:ää 535 eri osallistujalta. ”Muutetut rivit” tarkoittaa GitHubin lisäysten ja poistojen summaa ja sisältää generoidut tiedostot, lukitustiedostot, luettelot, käännökset ja dokumentaation; se kuvaa muutosten määrää, ei kirjoitettujen lähdekoodirivien määrää. Tasasijat rajalla säilytetään.
### GitHubin tekijöihin liittämät commitit
Bob.Hou 🏅 51 GitHubiin liitettyä committia · jaettu 10. sija
Xiangzhe 🏅 51 GitHubiin liitettyä committia · jaettu 10. sija
Tarkistettu uudelleen 2026-08-24 06:14:31 UTC: GitHubiin liitetyt commitit, jotka repositorion Contributors API ilmoitti oletushaaralle release/v3.8.50. API palautti 525 identiteettiä (415 käyttäjää, 2 bottia, 108 anonyymiä); tästä taulukosta on jätetty pois ylläpitäjä, botit ja anonyymit identiteetit, ja tasatilanteet on säilytetty. Se eroaa sekä yllä olevasta yhdistettyjen PR:ien sijoituksesta että alla olevasta 639 henkilön Git-metatietolaskennasta.
> 🙏 Näiden osallistujien ominaisuudet, virheenkorjaukset ja infrastruktuuriparannukset ovat **keskeinen osa** sitä, mikä tekee OmniRoutesta luotettavan ja monipuolisen. Jokaisella pull requestilla, testitapauksella ja i18n-käännöstiedostolla on merkitystä. Avoimen lähdekoodin rakentavat heidän kaltaisensa ihmiset.
---
## 💖 Sponsorit
Sydämellinen kiitos ihmisille, jotka rahoittavat OmniRoutea omasta pussistaan — jokainen lahjoitus auttaa pitämään projektin maksuttomana, riippumattomana ja jatkuvasti kehittyvänä.
… ja muut, jotka haluavat pysyä yksityisinä 💛Julkiset GitHub-sponsorit vahvistettu uudelleen 2026-08-24. GitHubin activeOnly-tila määrittää yllä olevat aktiivisuusmerkinnät; aiemmin julkistetut kertaluonteiset tukijat saavat edelleen kiitoksemme, ja yksityiset sponsorit pysyvät nimettöminä.💖 Ryhdy sponsoriksi → — jokainen dollari auttaa pitämään OmniRouten maksuttomana ja riippumattomana.
## 👥 Yli 600 osallistujaa
[](https://github.com/diegosouzapw/OmniRoute/graphs/contributors)
Auditoitu 2026-08-24 jäädytetyssä kantaversiossa ac02c5b42f ja tarkistettu uudelleen aktiivisen release/v3.8.50-haaran viimeisimmässä commitissa dafb4ae808: 639 normalisoitua ihmisen Git-identiteettiä — 407 esiintyy committien tekijöinä (ylläpitäjä mukaan lukien) ja 232 ainoastaan erillisissä Co-authored-by-trailereissa. Laskennassa normalisoidaan GitHubin noreply-tunnukset, suljetaan pois 26 botti-, agentti-, palvelu- tai paikkamerkki-identiteettiä eikä yhdistetä tavallisia sähköpostiosoitteita pelkästään siksi, että niiden näyttönimet täsmäävät.
### Osallistumisohjeet
1. Forkkaa repositorio
2. Luo haara **aktiivisen** `release/vX.Y.Z`-haaran viimeisimmästä commitista (ei `main`-haarasta) — katso [Haarautumis- ja julkaisumalli](docs/ops/BRANCHING_MODEL.md)
3. Luo ominaisuushaarasi (`git checkout -b feat/amazing-feature`)
4. Commitoi muutoksesi (`git commit -m 'feat: add amazing feature'`)
5. Pushaa 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 sai alkunsa **[9router](https://github.com/decolua/9router)**-projektin haarana ja Go-projektin **[CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI)** TypeScript-porttauksena — ja siitä eteenpäin jokainen alla mainittu alijärjestelmä sai inspiraationsa avoimen lähdekoodin projektista, joka ehti toteuttaa vastaavan ensin. Jokainen niistä muovasi jotakin konkreettista osaa OmniRoutesta. Tämä on kiitoksemme niille kaikille. 🙏
> ⭐ tähtimäärät on tarkistettu GitHubin REST API -rajapinnasta 24. elokuuta 2026 — käy antamassa näille projekteille tähti. Määrät ovat täsmällinen, tiettynä päivänä otettu tilannekuva ja muuttuvat luonnollisesti ajan myötä.
### 🧬 Kehityslinja ja yhdyskäytävä
Alkuperäinen projekti, johon tämä fork perustuu — sitä on laajennettu tässä multimodaalisilla API-rajapinnoilla ja täydellisellä TypeScript-uudelleenkirjoituksella.
Tekoäly-yhdyskäytävä, jonka julkinen hinnoitteluaineisto syöttää kustannusseurannan synkronointiamme ja jonka palveluntarjoajien normalisointimalli vaikutti reititykseemme.
MIT-lisensoitu lähdekoodi, joka mukautettiin mukana toimitettavaan ChatGPT Web → Codex Responses -siltaan, mukaan lukien selainistunto-, vastauskehystys-, käyttö- ja verkkohakusovittimet.
Sen Grok-mallikartoitukset, vale-TypeError Statsig -generaattori, pyyntöjen ja laitteiden oletusarvot sekä NDJSON-vastausprosessori mukautettiin olennaisin osin OmniRouten Grok Web -suorittimeen.
grok2api-mergedin tärkein transitiivinen koodilähde; sen malli-, otsake-, hyötykuorma-, Statsig- ja prosessoritoteutukset on säilytetty Grok Webin kehityslinjassa.
Taustalla oleva MIT-lisensoitu lähdekoodi Grokin hyötykuorman ja laitteen oletusarvoille, Statsig-generaattorille sekä result.response-prosessorille, jotka välittyivät TQZHR:n ja grok2api-mergedin kautta.
Transitiivinen lähde, jonka grok2api-merged mainitsee proxy-pool-kerroksensa yhteydessä; OmniRoute säilyttää tämän alkuperämaininnan, mutta ei väitä portanneensa proxy-poolia rajattuun Grok Web -suorittimeensa.
Alkuperäinen Grok Web -toteutus hyödynsi sen HTTP-/selainpohjaista ylävirran suunnittelua; sen suora HTTP-polku pohjautuu GrokProxyyn, joten itsenäistä koodiporttausta ei väitetä tehdyn.
Viraaliksi noussut ”miksi käyttää monta tokenia, kun muutama token hoitaa homman” -projekti — sen luolamiespuhefilosofia toimii vakiopakkaustilamme sekä yli 30 täytesanojen poisto- ja tiivistyssäännön perustana.
Brasilianportugalin token-pakkaus — toimii pt-BR-kielipakettimme perustana: pleonasmien vähentäminen ja täytesanojen poisto on mukautettu brasilianportugalin kielioppiin.
Viraaliksi noussut ”laiskan seniorikehittäjän” YAGNI-koodaustaito — inspiroi less-code-tulostustyyliämme: ohjausta kohti pienintä toimivaa muutosta, joka vähentää _generoidun_ koodin määrää (Cavemanin ytimekkään proosan tulostepuolen sisarominaisuus).
Sisältötietoinen, tiedostotyyppikohtainen tulosteen pakkaus, joka osaa keskeyttää käsittelyn virhetilanteissa — vahvisti tiedostotyyppikohtaisen käsittelymme ja vähimmäishyödyn alittuessa tehtävän ohituksen toimivuuden.
Rust-pohjainen sarakkeinen JSON, sisältöosoitteinen haku ja viestien välinen kaksoiskappaleiden poisto — vahvistivat headroom-, ccr- ja session-dedup-moottoriemme suunnittelun sekä välimuistin vakautta koskevan invariantin ”pakattu muoto ei riipu sijainnista”.
TypeScript Compiler API -työkalupakki — inspiroi jäsenninpohjaista kommenttien poistoamme, joka säilyttää merkkijono-, mallipohja- ja säännöllisten lausekkeiden literaalit.
Koodausavustajan ↔ LLM:n välisen liikenteen MITM-kaappaus ja -analyysi vaikuttivat Traffic Inspectorin alkuperäisiin vaatimuksiin. Neljä aiemmin johdettua moduulia — SSE-yhdistäminen, keskustelujen normalisointi, salaisuuksien peittäminen ja otsakkeiden puhdistaminen — on korvattu riippumattomilla puhtaalta pöydältä toteutetuilla ratkaisuilla, jotka perustuvat julkisiin protokollastandardeihin. Kaksi isäntäkoneen liikenteen läpipäästävää rajapintaa (passthrough.ts ja _internal/bypass.cjs) ovat edelleen itsenäisesti luokiteltuja OmniRouten sisäisiä toteutuksia; 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 tilit huomioiva mallien uudelleenkartoitus, suoritettavien tiedostojen polkujen validointi ja tilaustunnisteiden toiminta vaikuttivat OmniRouten Antigravity-ajoaikaympäristöön.