# README (Suomi) 🌐 **Languages:** 🇺🇸 [English](../../../README.md) · 🇪🇹 [am](../am/README.md) · 🇸🇦 [ar](../ar/README.md) · 🇦🇿 [az](../az/README.md) · 🇧🇬 [bg](../bg/README.md) · 🇧🇩 [bn](../bn/README.md) · 🇧🇦 [bs](../bs/README.md) · 🇨🇿 [cs](../cs/README.md) · 🇩🇰 [da](../da/README.md) · 🇩🇪 [de](../de/README.md) · 🇬🇷 [el](../el/README.md) · 🇪🇸 [es](../es/README.md) · 🇪🇪 [et](../et/README.md) · 🇮🇷 [fa](../fa/README.md) · 🇫🇷 [fr](../fr/README.md) · 🇮🇪 [ga](../ga/README.md) · 🇮🇳 [gu](../gu/README.md) · 🇳🇬 [ha](../ha/README.md) · 🇮🇱 [he](../he/README.md) · 🇮🇳 [hi](../hi/README.md) · 🇭🇷 [hr](../hr/README.md) · 🇭🇺 [hu](../hu/README.md) · 🇦🇲 [hy](../hy/README.md) · 🇮🇩 [id](../id/README.md) · 🇳🇬 [ig](../ig/README.md) · 🇮🇹 [it](../it/README.md) · 🇯🇵 [ja](../ja/README.md) · 🇬🇪 [ka](../ka/README.md) · 🇰🇭 [km](../km/README.md) · 🇮🇳 [kn](../kn/README.md) · 🇰🇷 [ko](../ko/README.md) · 🇱🇹 [lt](../lt/README.md) · 🇱🇻 [lv](../lv/README.md) · 🇮🇳 [ml](../ml/README.md) · 🇮🇳 [mr](../mr/README.md) · 🇲🇾 [ms](../ms/README.md) · 🇲🇹 [mt](../mt/README.md) · 🇲🇲 [my](../my/README.md) · 🇳🇵 [ne](../ne/README.md) · 🇳🇱 [nl](../nl/README.md) · 🇳🇴 [no](../no/README.md) · 🇮🇳 [or](../or/README.md) · 🇮🇳 [pa](../pa/README.md) · 🇵🇭 [phi](../phi/README.md) · 🇵🇱 [pl](../pl/README.md) · 🇵🇹 [pt](../pt/README.md) · 🇧🇷 [pt-BR](../pt-BR/README.md) · 🇷🇴 [ro](../ro/README.md) · 🇷🇺 [ru](../ru/README.md) · 🇱🇰 [si](../si/README.md) · 🇸🇰 [sk](../sk/README.md) · 🇸🇮 [sl](../sl/README.md) · 🇷🇸 [sr](../sr/README.md) · 🇸🇪 [sv](../sv/README.md) · 🇰🇪 [sw](../sw/README.md) · 🇮🇳 [ta](../ta/README.md) · 🇮🇳 [te](../te/README.md) · 🇹🇭 [th](../th/README.md) · 🇹🇷 [tr](../tr/README.md) · 🇺🇦 [uk-UA](../uk-UA/README.md) · 🇵🇰 [ur](../ur/README.md) · 🇺🇿 [uz](../uz/README.md) · 🇻🇳 [vi](../vi/README.md) · 🇳🇬 [yo](../yo/README.md) · 🇨🇳 [zh-CN](../zh-CN/README.md) · 🇹🇼 [zh-TW](../zh-TW/README.md) ---
OmniRoute-hallintapaneeli

# 🚀 OmniRoute — Ilmainen tekoäly-yhdyskäytävä OmniRoute — Älä koskaan lopeta koodaamista. Kaikki tekoälytyökalut → 375 palveluntarjoajaa — yli 150 ilmaista — yhden päätepisteen kautta. Claude Code, Codex, Cursor, Cline, Copilot ja Antigravity ILMAISIIN Claude-, GPT- ja Gemini-palveluihin automaattisella varajärjestelmään siirtymisellä. Yhdistetty RTK- ja Caveman-pakkaus säästää 15–95 % tokeneista (keskimäärin ~89 %) — et enää koskaan saavuta rajoja. 375 tekoälypalveluntarjoajaa · yli 150 ilmaistasoa · ~1,62 mrd. ilmaista tokenia/kk · 20 reititysstrategiaa · alkuun pääsee 0 dollarilla.
## 💰 ~1,62 mrd tokenia / kuukausi kolmannen osapuolen ilmaistasoilta
> **Käytä omia palveluntarjoajatilejäsi.** Tämä on arvio kolmannen osapuolen erikseen kelpoisten ilmaistasojen yhteenlasketusta määrästä — ei OmniRouten myöntämä tokenkiintiö. Rekisteröidy, hanki tarvittavat tunnukset ja yhdistä ne palveluntarjoajat, joita voit käyttää; kukin palveluntarjoaja hallitsee omia rajojaan, saatavuuttaan ja ehtojaan. > > Ilmaistasojen pinoaminen käsin on työlästä — kymmeniä SDK:ita, kymmeniä nopeusrajoituksia eikä hajuakaan siitä, paljonko sinulla todella on käytettävissä. OmniRoute luetteloi **467 ilmaistason merkintää 34 toistuvan pooliavaimen yli** ja laskee token-yläotsikon **17 poolista, joilla on julkaistu positiivinen kuukausibudjetti, sekä viidestä mallikohtaisesta Groq-katosta**, deduplikoituna jaetun poolin mukaan. Kiintiöt, jotka avautuvat vasta alueellisen henkilöllisyyden tarkistuksen jälkeen (tällä hetkellä: ModelScope), näytetään erikseen, +~6M alueellisen henkilöllisyyden vahvistuksen takana, eikä niitä koskaan lasketa mukaan yläotsikkoon. Tulos pysyy näkyvissä kojelaudassa (`/dashboard/free-tiers`). OmniRouten ilmaistason budjettikortti: ~1,62 mrd ilmaista tokenia kuukaudessa vakaasti, jopa ~2,22 mrd ensimmäisenä kuukautena rekisteröitymishyvityksineen, 34 dokumentoidusta toistuvasta pooliavaimesta, jotka kattavat 467 luetteloitua ilmaistason merkintää yhden päätepisteen takana. Rehellistä pool-deduplikoitua matematiikkaa — jokainen jaettu pooli lasketaan kerran, mukaan lukien 17 toistuvaa poolia, joilla on julkaistu positiivinen kuukausittainen tokenbudjetti, sekä viisi mallikohtaista Groq-kattoa; 12 palveluntarjoajaa on merkitty vältettäviksi ehtoriskiluettelossa, joten päätös on sinun. Budjettipalkki sisältää Mistral 1B, Nara 210M, LLM7 150M, xKiro 150M, Groq 30M (viisi mallikohtaista kattoa) ja pienempiä pooleja, sekä ensimmäisen kuukauden rekisteröitymishyvitykset ja pysyvästi ilmaiset palveluntarjoajat ilman tokenkattoa, jotka näytetään erikseen, jotta ne eivät koskaan paisuta yläotsikkoa. Live-käyttö/jäljellä: /dashboard/free-tiers. > Animoitu yhteenveto live-sivusta `/dashboard/free-tiers`. Koko menetelmäkuvaus (poolien deduplikointi, hyvitystasot, palveluntarjoajien ehdot): **[docs/reference/FREE_TIERS.md](docs/reference/FREE_TIERS.md)**. > > Nämä luvut tarkastetaan uudelleen kahden viikon välein live-luetteloa vastaan, ja ne **liikkuvat molempiin suuntiin** — palveluntarjoaja lopettaa ilmaistason ja luku laskee; uusi tulee mukaan ja luku nousee. Julkaisemme sen, mitä luettelo todella laskee — emme koskaan ylöspäin pyöristettyä parasta mahdollista tapausta.

⭐ Anna repolle tähti, jos OMNIROUTE auttoi sinua säästämään rahaa ja tekemään työstäsi helpompaa.

[![Seuraa Diegoa LinkedInissä](https://img.shields.io/github/stars/diegosouzapw/OmniRoute?style=social)](https://github.com/diegosouzapw/OmniRoute) diegosouzapw%2FOmniRoute | Trendshift [![Star History -sijoitus](https://api.star-history.com/badge?repo=diegosouzapw/OmniRoute&theme=dark)](https://www.star-history.com/diegosouzapw/omniroute) [![olud.ai](https://olud.ai/badge.php?tool=diegosouzapw-omniroute)](https://olud.ai/project/diegosouzapw-omniroute.html) ### 💬 Liity yhteisöön **👋 Seuraa ylläpitäjää — saat uudet palveluntarjoajat, julkaisut ja vinkit ensimmäisenä:** [![Seuraa Diegoa LinkedInissä](https://img.shields.io/badge/Follow_Diego_on-LinkedIn-0A66C2?style=for-the-badge&logo=linkedin&logoColor=white)](https://www.linkedin.com/in/diegosouzapw/) [![Seuraa @diegosouzapw GitHubissa](https://img.shields.io/github/followers/diegosouzapw?style=for-the-badge&logo=github&logoColor=white&label=Follow%20on%20GitHub&color=181717)](https://github.com/diegosouzapw) [![Discord](https://img.shields.io/badge/Discord-5865F2?style=for-the-badge&logo=discord&logoColor=white)](https://discord.gg/U47eFqAXCn) [![Telegram](https://img.shields.io/badge/Telegram-26A5E4?style=for-the-badge&logo=telegram&logoColor=white)](https://t.me/omnirouteOficial) [![WhatsApp Global](https://img.shields.io/badge/WhatsApp_Global-25D366?style=for-the-badge&logo=whatsapp&logoColor=white)](https://chat.whatsapp.com/FvuCbrpZmQ6I85n2vW5QIC?s=cl&p=a&mlu=4) [![WhatsApp Brasil](https://img.shields.io/badge/WhatsApp_Brasil-25D366?style=for-the-badge&logo=whatsapp&logoColor=white)](https://chat.whatsapp.com/KWgatljAjmbELQory59Oti?s=cl&p=a&mlu=4) [![Verkkosivusto](https://img.shields.io/badge/Website-omniroute.online-blue?logo=google-chrome&logoColor=white)](https://omniroute.online) **Kysymykset, palveluntarjoajavinkit, tiekartta 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)**
## 📈 Yhdyskäytävä kasvaa edelleen
| | v3.8.50 | **v3.8.51** | `v3.8.53+` | | -------------------------------------- | :--------------------: | :---------: | :-------------------: | | 🌐 Palveluntarjoajat | 352 | **358** | 375 | | 🧠 Yksilölliset keskustelumallien ID:t | 1320 | **1374** | 1475 | | 🖼️ Modaliteettisilta | 🆕 näkö + ääni + video | ✓ | ✓ | | 📡 Radarin ilmainen luettelo | 🆕 valinnainen | ✓ | ✓ | | ⚖️ Kiintiötietoinen ajastus | 🆕 Quota-Share | ✓ | ✓ | | 📊 Kiintiötelemetria | 🆕 reaaliaikainen | ✓ | ✓ | | 🧰 Headless-tila | — | — | 🆕 `serve --headless` | | 🛤️ LTS-kiskoinfrastruktuuri | — | — | 🆕 julkaisukanavat | | 🔎 Mallien etsintä -API | — | — | 🆕 `/v1/models/query` | **→ [Tiekartta](ROADMAP.md) — kiskoilla kohti `v3.9.0 LTS`:ää**

## 🧩 Saatavilla [![npm-versio](https://img.shields.io/npm/v/omniroute?color=cb3837&logo=npm)](https://www.npmjs.com/package/omniroute) ![NPM-kuukausittain](https://img.shields.io/npm/dm/omniroute?label=npm/month&color=cb3837&logo=npm) [![Docker Hub](https://img.shields.io/docker/v/diegosouzapw/omniroute?label=Docker%20Hub&logo=docker&color=2496ED)](https://hub.docker.com/r/diegosouzapw/omniroute) [![Lisenssi: MIT](https://img.shields.io/badge/License-MIT-yellow.svg?style=flat-square)](LICENSE) ![Docker-lataukset](https://img.shields.io/docker/pulls/diegosouzapw/omniroute?label=docker%20pulls&logo=docker&color=2496ED) ![Electron-lataukset](https://img.shields.io/github/downloads/diegosouzapw/omniroute/total?style=flat&label=electron%20downloads&logo=electron&color=47848F)
🚀 Aloita 🚀 Pika-aloitus 📦 Asenna 🆓 Yhdistä palveluntarjoaja
💡 Opi 💥 Lupaus 🤔 Miksi OmniRoute 🏆 Mikä erottaa sen muista
⚙️ Ominaisuudet 🎯 Yhdistelmät 🌐 Palveluntarjoajat 🔌 CLI & MCP
🗜️ Pakkaus 🖥️ Missä se toimii 🔒 Yksityinen
👀 Katso 🎬 Toiminnassa ✨ Mitä uutta 🤖 Yhteensopivat CLI:t
💚 Tue 💚 Tue / Lahjoita 💬 Yhteisö 💖 Sponsorit
📦 Projekti 🛠️ Teknologiapino 📖 Dokumentaatio 👥 Osallistujat
🌐 67 kielellä

Englanti (en) Portugali — Brasilia (pt-BR) Portugali (pt) Espanja (es) Ranska (fr) Italia (it) Saksa (de) Hollanti (nl) Venäjä (ru) Ukraina (uk-UA) Puola (pl) Tšekki (cs) Slovakki (sk) Romania (ro) Unkari (hu) Bulgaria (bg) Tanska (da) Suomi (fi) Norja (no) Ruotsi (sv) Kiina — yksinkertaistettu (zh-CN) Kiina — perinteinen (zh-TW) Japani (ja) Korea (ko) Thai (th) Vietnam (vi) Indonesia (id) Malaiji (ms) Filipino (phi) Hindi (hi) Gudžarati (gu) Marathi (mr) Tamili (ta) Telugu (te) Bengali (bn) Urdu (ur) Persia (fa) Arabia (ar) Heprea (he) Turkki (tr) Azerbaidžani (az) Swahili (sw) Kreikka (el) Kroatia (hr) Serbia (sr) Liettua (lt) Viro (et) Latvia (lv) Sloveeni (sl) Malta (mt) Iiri (ga) Kannada (kn) Malajalam (ml) Orija (or) Pandžabi (pa) Nepali (ne) Sinhali (si) Burma (my) Khmer (km) Hausa (ha) Joruba (yo) Igbo (ig) Amhara (am) Uzbekki (uz) Georgia (ka) Armenia (hy) Bosnia (bs)


## 🆓 Asenna, yhdistä palveluntarjoaja ja reititä sitten yhden päätepisteen kautta
Kolme vaihetta: asenna ja käynnistä OmniRoute, yhdistä kelvollinen palveluntarjoaja omalla tililläsi tai API-avaimellasi ja määritä sitten työkalusi käyttämään osoitetta localhost:20128/v1 OmniRoute-API-avaimella ja auto-mallilla. Reititys riippuu käytettävissä olevista kelvollisista yhteyksistä ja palveluntarjoajien rajoituksista. ```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 kelvollisia avaimettomia kohteita, ja avaimeton palveluntarjoaja saattaa 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 [ilmaistasojen oppaaseen](docs/getting-started/FREE-TIERS-GUIDE.md) ennen palveluntarjoajan valitsemista. 📦 Kopioitavat ja liitettävät pika-aloitusskriptit **Pythonille, Node.js:lle, PHP:lle ja cURLille** → [`examples/quickstart/`](examples/quickstart/)
# 💥 Lupaus
Lupaus — yksi päätepiste ja 375 palveluntarjoajaa. Automaattinen varareititys pitää reitityksen toiminnassa niin kauan kuin toinen toimintakuntoinen kohde on käytettävissä. Kuusi peruspilaria: vikasietoinen varareititys 375 palveluntarjoajan välillä · jopa 95 %:n token-säästöt soveltuvissa työkuormissa · aloittaminen maksutta yli 150 ilmaistasolla sekä 51 toistuvasti ilmaisella tai avaimettomalla, pysyvästi ilmaisella palveluntarjoajalla · 37 CLI-/agentti-integraatiota yhden määrityksen kautta · OpenAI-, Claude-, Gemini- ja Responses API -yhteensopivuus osoitteessa /v1 · tuotantokäytön hallintaominaisuudet, kuten katkaisijat, TLS-häivytys, MCP:n 110 työkalua, A2A, muisti, suojaukset, arvioinnit ja yli 56 000 staattista testimääritystä yli 7 800 seuratussa testitiedostossa.

# 🤔 Miksi OmniRoute?
Miksi OmniRoute — lopeta 10 hallintapaneelin, toimimattomien API-avainten ja yllättävien laskujen kanssa tasapainoilu. Kymmenen päivittäistä ongelmaa ja niiden ratkaisut: käyttämätön kiintiö vanhenee → hyödynnä tilaukset mahdollisimman tehokkaasti; nopeusrajoitukset kesken ohjelmoinnin → 4-tasoinen automaattinen varareititys (tilaus → API → edullinen → ilmainen); työkalujen tulosteet kuluttavat tokeneita → RTK + Caveman-pakkaus (15–95 %); kalliit API:t → kustannusoptimoitu reititys; jokainen työkalu vaatii oman määrityksensä → yksi päätepiste, yksi hallintapaneeli; tekoäly on estetty → 3-tasoinen välityspalvelin + TLS-häivytys; toimimattomat avaimet → 3-kerroksinen vikasietoisuus (katkaisijat, avainten jäähdytys, mallin lukitus); tiimi jakaa yhden tilauksen → avainpoolit oikeudenmukaisesti jaetuilla kiintiöillä; kehotteet kulkevat jonkun muun pilvipalvelun kautta → ensisijaisesti paikallinen toteutus ja AES-256-GCM-salatut avaimet; kulutuksesta ei ole näkyvyyttä → reaaliaikainen analytiikka (käyttö, kiintiö, säästöt, p95-viive).
OmniRoute-pyyntövirta: IDE:si tai CLI:si (Claude Code, Cursor, Cline…) kutsuu yhtä paikallista päätepistettä (http://localhost:20128/v1); OmniRoute Smart Router (RTK + Caveman-pakkaus, 20 reititysstrategiaa, katkaisijat, TLS-häivytys, MCP, A2A, suojaukset) voi käyttää varareititystä neljän palveluntarjoajatason välillä niin kauan kuin kelvollinen ja toimintakuntoinen kohde on käytettävissä — taso 1: tilaus, taso 2: API-avain, taso 3: edullinen ja taso 4: ilmainen.

## 🤝 Avointen lähdekoodin ystäviemme tukema

Kimi K3 — Open Frontier Intelligence · 2.8T parameters · 1M-token context

> **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)
Kimi
Moonshot AI

Perustajajäsen avoimen lähdekoodin ystävä
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
Cheaper Inference
cheaperinference.com

Avoimen lähdekoodin ystävä
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
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
Animoidut esimerkit 18:sta kaikkiaan 20 yhdistelmän reititysstrategiasta — yksi ruutu strategiaa kohden: priority, fill-first, weighted, round-robin, p2c, least-used, random, strict-random, cost-optimized, headroom, reset-window, reset-aware, context-relay, context-optimized, lkgp, auto, fusion, pipeline. Strategioita cache-optimized ja quota-weighted ei ole animoitu; alla oleva taulukko kuvaa kaikki 20. > **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:
MallitunnusMitä 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) OmniRouten vikasietoisuus — 3 itsenäistä, itsekorjautuvaa kerrosta, oikea kerros oikealle vialle. Kerros 1: palveluntarjoajan katkaisija (koko palveluntarjoaja): laukeaa vain 408/5xx-virheistä, raja-arvot OAuth 8× / API-avain 12× / paikallinen 2×, palautuu 60s/30s/15s kuluttua HALF-OPEN-koetilaan, laiska palautuminen; OPEN-tilassa yhdistelmä reitittää liikenteen seuraavalle palveluntarjoajalle. Kerros 2: yhteyden jäähdytys (yksi avain/tili): perusaika 5s OAuth / 3s API-avain, eksponentiaalinen ×2-viive ukkoslaumalta suojaavalla mekanismilla, 429 noudattaa Retry-After-arvoa, onnistuminen tyhjentää koko virhetilan; yksi jäähdytettävä avain ohitetaan muiden avainten jatkaessa palvelua. Kerros 3: mallin lukitus (yksi malli): mallikohtainen 429, paikallinen 404 tai tilan estot lukitsevat vain kyseisen mallin — eivät koskaan koko yhteyttä. Lopulliset tilat (estetty, vanhentunut, krediitit loppuneet) vaativat ylläpitäjän toimia, eivät jäähdytystä. 📖 [Auto-Combo-moottori](docs/routing/AUTO-COMBO.md) · [Vikasietoisuusopas](docs/architecture/RESILIENCE_GUIDE.md)
## 🏆 Mikä erottaa OmniRouten muista
Mikä erottaa OmniRouten muista — ajankohtaan sidottu ominaisuusvertailu 9routeriin, OpenRouteriin, CLIProxyAPI:in ja LiteLLM:ään 13 ominaisuuden osalta. OmniRoute: 375 palveluntarjoajaa, yli 150 sisäänrakennettua ilmaistasoa, 20 reititysstrategiaa, 12 moottorin token-pakkaus, sisäänrakennettu MCP-palvelin 110 työkalulla, A2A-agenttiprotokolla, pysyvä muisti, suojakaiteet, pilviagentit, TLS-sormenjälkien häivytys, Desktop/Termux/PWA sekä 67 kansainvälistettyä käyttöliittymän kielialuetta. OmniRoute on MIT-lisensoitu ja itse ylläpidettävissä. Kilpailijoiden ominaisuudet ja lukumäärät voivat muuttua; katso linkitetty menetelmäkuvaus. 📊 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.
⭐ Anna repositoriolle tähtiIlmaista — auttaa aidosti näkyvyydessäAnna OmniRoutelle tähti
🐙 GitHub SponsorsKertaluonteinen tai kuukausittainen · ei alustamaksuagithub.com/sponsors/diegosouzapw
☕ Ko-fiNopea kertalahjoitus, lahjoittajan ei tarvitse rekisteröityäko-fi.com/diegosouzapw
🧋 Buy Me a CoffeePieni, epämuodollinen elebuymeacoffee.com/diegosouzapw
🖐 LiberapayToistuva · voittoa tavoittelematon · avoin lähdekoodiliberapay.com/diegosouzapw
🇧🇷 PIX (Brasilia)Välitön, ei maksujaavain & QR-koodi alla
₿ KryptovaluuttaBTC · ETH · USDT-TRC20 · USDC-Solanaosoitteet alla
**🇧🇷 PIX** — välitön, ei maksuja (Brasilia) OmniRouten PIX-QR-koodi Avain (satunnainen): `5d865059-bc44-483a-962d-43ceb80126eb` Pix copia-e-cola: ``` 00020101021126580014br.gov.bcb.pix01365d865059-bc44-483a-962d-43ceb80126eb5204000053039865802BR5922OMNIROUTE CONTRIBUICAO6006BRASIL62070503***630475DD ```
₿ Kryptovaluutta — BTC · ETH · USDT-TRC20 · USDC-Solana (laajenna napsauttamalla)
₿ BTCBitcoin (SegWit)bc1qh00smz004sy85wyl28v77tenkt3ckl6eaep7fd
Ξ ETHEthereum (ERC20)0x64Cf6B68A6Ff34288e89172950a2d00102337a84
₮ USDTTron (TRC20)TKAF41JpuQrHbKTnsQa9svJE2T192Hvsc2
$ USDCSolana2emNNZzVVWQc3FQ2wk9M6qXUQmW8AKdjjL174fXR28Tu
⚠️ 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)**.
## ✨ Uutta
> Viimeisimmät kohokohdat versioväliltä **v3.8.20 → v3.8.53**. Täydellinen muutoshistoria on tiedostossa [`CHANGELOG.md`](CHANGELOG.md). - **⚖️ `quota-weighted`-reititys** — 20. yhdistelmästrategia ohittaa kiintiönsä käyttäneet tilit ja valitsee sitten muiden joukosta suhteessa jäljellä olevaan kiintiöön ÷ käynnissä olevaan kuormaan pitäen nykyiset keskustelut kiinnitettyinä. → [Automaattinen yhdistelmä](docs/routing/AUTO-COMBO.md) - **🧰 Headless-tila** — `omniroute serve --headless` (tai `OMNIROUTE_HEADLESS=1`) suorittaa vain `/v1/*`-välityspalvelinmoottorin poistamalla hallintapaneelin ja vain hallintapaneelin käyttämät alijärjestelmät käytöstä. → [Headless-tila](docs/guides/HEADLESS.md) - **🔎 Mallien löytäminen** — `/v1/models` suodattaa ominaisuuden, kontekstin, tyypin ja tekstin perusteella, ja `POST /v1/models/query` palauttaa lyhyen deterministisen valintalistan samalla avainkohtaisella näkyvyydellä. → [API-viite](docs/reference/API_REFERENCE.md) - **🔑 Avainkohtainen reitityksen hallinta** — kiinnitä API-avain yhteen malliin tai yhdistelmään asetuksella `forcedModel` 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, jopa 20 validoitua mukautettua peittokuviota ja tyyppikohtaiset tunnistuslaskurit; itse peittäminen on edelleen erikseen käyttöönotettava ominaisuus. → [Suojaukset](docs/security/GUARDRAILS.md) - **🌍 67 kieltä** — hallintapaneeli, dokumentaation peilisivustot ja CLI; `npm run i18n:add-locale` lisää kielen kaikkialle yhdellä komennolla. → [i18n-opas](docs/guides/I18N.md) - **🎛️ OmniConductor** — saapuvan A2A-liikenteen delegointi agenttijoukollesi, Conductor-taidot Agent Cardissa sekä hallintapaneeli Faro-pikapuheäänikeskustelulla. → [A2A-palvelin](docs/frameworks/A2A-SERVER.md) - **🛂 Mukautuva hyväksyntä ja ylikuormitussuojaus** — raskaat keskustelupyynnöt asetetaan jonoon 503-virheen palauttamisen sijaan, ja käytössä ovat yhteyskohtaiset atomiset RPM-liukuvat vuokraukset. → [Vikasietoisuusopas](docs/architecture/RESILIENCE_GUIDE.md) - **🗂️ Kanoninen `/v1/models`-järjestys** — yksi yhtenäinen palveluntarjoajan mukaan ryhmitelty lohko kutakin palveluntarjoajaa kohden (yhdistelmät kiinnitettyinä ensin), yhdenmukaisena kaikissa luettelolähteissä. → [API-viite](docs/reference/API_REFERENCE.md) - **🗜️ Pakkauksen vahvistaminen** — oletusarvoisesti käytössä oleva purkamissuojus, Caveman-paketit kielille DE / FR / JA + kiina (wényán) sekä RTK-suodattimet Gradlelle ja .NETille. → [Pakkaus](docs/compression/COMPRESSION_ENGINES.md) - **💸 Rehelliset kiinteähintaiset kustannukset** — tilaus- ja ohjelmointipakettien palveluntarjoajien kustannusanalytiikka näyttää **$0**; budjetin, kiintiön ja reitityksen arviointi jatkuu. → [API-viite](docs/reference/API_REFERENCE.md) - **⚖️ Quota-Share-reititys** — jaa yhteisen tilin kiintiö oikeudenmukaisesti yhdistettyjen avainten kesken ja lainaa käyttämättömät osuudet muille työn säilyttämiseksi. → [Vikasietoisuusopas](docs/architecture/RESILIENCE_GUIDE.md) - **🤖 CLI:n/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 sekä interaktiivista palveluntarjoajan ja mallin valitsinta ja kontekstikohtaisia suosikkeja. → [CLI-integraatiot](docs/guides/CLI-INTEGRATIONS.md) - **🛰️ Etätila** — ohjaa OmniRoute-etäinstanssia rajatuilla tunnisteilla (`connect` / `contexts` / `tokens`) sekä VPS-asennuksiin 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 mallin, tilan ja USD-budjetin ohitukset. → [Automaattinen yhdistelmä](docs/routing/AUTO-COMBO.md) - **🗜️ Laajennettava pakkaus** — 12 yhdisteltävää moottoria + Compression Studios: LLMLingua-2, kaksitasoinen Ultra, omniglyph, vaihekohtainen uskollisuusportti, GCF v3.2 ja vetämällä järjesteltävä editori. → [Pakkaus](docs/compression/COMPRESSION_ENGINES.md) - **🕵️ Läpinäkyvä MITM-salauksen purku (TPROXY)** — sieppaa välityspalvelimen ympäristömuuttujat ohittavat CLI:t SNI-kohtaisen CA:n ja luottamussäilön asennusohjelman avulla. → [MITM/TPROXY](docs/security/MITM-TPROXY-DECRYPT.md) - **💸 Kustannustelemetria kaikkialla** — `X-OmniRoute-*`-kustannus-/käyttöotsakkeet jokaisessa päätepisteessä, välimuistin osuman säästöotsake ja avainkohtaiset USD-kulutuskiintiöt. → [API-viite](docs/reference/API_REFERENCE.md) - **🧠 Hallitsemasi muisti** — oletusarvoisesti pois käytöstä, erikseen käyttöön otettava int8-vektorikvantisointi + tyypitetty häivytys sekä pyyntökohtainen `x-omniroute-no-memory`. → [Muisti](docs/frameworks/MEMORY.md) - **🛡️ Tietoturva** — kehotteensyöttöhyökkäysten suojaus jokaisella LLM-reitillä (red team -testikokoelma), erikseen käyttöön otettava tunnistetietojen peittosuojaus (peittää vuotaneet API-avaimet/salaisuudet molempiin suuntiin), ilmainen DuckDuckGo-verkkohaku viimeisenä vaihtoehtona sekä valinnainen OIDC-kirjautumisportti hallintapaneelille (salasanakirjautuminen säilyy aina käytettävissä). → [Suojaukset](docs/security/GUARDRAILS.md) - **🖼️ Uudet päätepisteet** — `/v1/ocr` (Mistral OCR) ja `/v1/audio/translations` (Whisper-tyylinen) täydentävät mediatoiminnot. → [API-viite](docs/reference/API_REFERENCE.md) - **🎨 Kuvien / videoiden / ää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 operointi** — käänteisen välityspalvelimen `basePath`, selaimen kielen automaattinen tunnistus, avainkohtainen laitteiden seuranta, pääkäyttäjätunnukseton 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ä uudistettu **375 palveluntarjoajan luettelo**. → [Palveluntarjoajat](docs/reference/PROVIDER_REFERENCE.md) - **📡 Reitityksen läpinäkyvyys** — jokaisessa vastauksessa on `X-OmniRoute-Decision`-otsake, joka ilmoittaa vastauksen toimittaneen strategian/palveluntarjoajan/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, ja vain luku -tyyppinen `/v1/auto-combo/{channel}/candidates`-päätepiste tuo näkyviin `auto/*`-kanavan reaaliaikaisen ehdokasjoukon. → [Automaattinen yhdistelmä](docs/routing/AUTO-COMBO.md) - **⚡ Paikallinen suorituskyky ja infra** — paikallinen Redis yhdellä napsautuksella, Cloudflare Workers / Deno Deploy -välityspalvelimen käyttöönottotyökalut, Bifrost ja Mux valvottuina sulautettuina palveluina. → [Sulautetut palvelut](docs/frameworks/EMBEDDED-SERVICES.md) - **🧩 Myös mukana** — liitännäiskehys + markkinapaikka, Omni/Agent/GitHub-taitokehykset, Obsidian-holvin integraatio (22 MCP-työkalua), OpenAI-yhteensopivat Batch- ja Files-rajapinnat, semanttinen vastausvälimuisti, pelillistäminen tulostauluineen, ACP-agenttien löytäminen (15 sisäänrakennettua agenttia), ajoitettu lokien vienti BigQueryyn, `auto/chaos` rinnakkainen monimallihajautus, Telegram-bottisilta, sovelluksen sisäinen versiohallinta ja LMArena-ELO-sijoitukset ilmaisille tarjoajille. → [Dokumentaatio](docs/README.md)
## 🤖 Yhteensopivat komentorivityökalut ja koodausagentit > Yksi määritys — `http://localhost:20128/v1` — ja **jokainen** tekoäly-IDE tai komentorivityökalu toimii ilmaisilla ja edullisilla malleilla.
Claude Code
Claude Code
                           
Codex CLI
Codex CLI
                           
Cline
Cline
                           
Kilo Code
Kilo Code
Zoo Code
Zoo Code
Continue
Continue
                           
Aider
Aider
                           
ForgeCode
ForgeCode
                           
jcode
jcode
                           
DeepSeek TUI
DeepSeek TUI
                           
CodeWhale
CodeWhale
                           
OpenCode
OpenCode
                           
Factory Droid
Factory Droid
                           
GitHub Copilot CLI
Copilot CLI
                           
Cursor CLI
Cursor CLI
                           
Smelt
Smelt
                           
Pi (pi-coding-agent)
Pi
                           
Grok Build (xAI)
Grok Build
                           
Hermes Agent (Nous Research)
Hermes Agent
                           
OpenClaw
OpenClaw
                           
Goose
Goose
                           
Open Interpreter
Open Interpreter
                           
Warp AI
Warp AI
                           
deyin.ai
deyin.ai
                           
+ toimii myös näiden kanssa · Agent Deck · Kiro · Command Code · Antigravity · Windsurf · AMP · mikä tahansa OpenAI-yhteensopiva työkalu
📖 Työkalukohtaiset määritysohjeet kaikille 37 työkalulle (27 CLI-koodaustyökalua + 10 CLI-agenttia) → [`docs/reference/CLI-TOOLS.md`](docs/reference/CLI-TOOLS.md) · 🧩 OpenCode-laajennus → [`@omniroute/opencode-provider`](https://www.npmjs.com/package/@omniroute/opencode-provider)

**Käynnistä mikä tahansa tuettu CLI OmniRouten kautta yhdellä komennolla** — määritystiedostoja ei kirjoiteta, tunnistetiedot lisätää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 sekä kirjoita työkalun oma määritys: omniroute configure codex # myös: claude opencode qwen aider goose gemini cline continue kilo 5dive ``` 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)
## 🌐 375 tekoälytarjoajaa — 153 luettelossa merkitty ilmaiseksi
> **375 rekisteröityä tarjoajaa** kanonisissa chat-, media-, search-, local-, cloud-agent- ja system-kokoelmissa, mukaan lukien **153, joilla on `hasFree: true` -löytömetatieto**. Chat-mallirekisteri kattaa **239 tarjoajaa / 3,059 erillistä tarjoaja–malli-paria / 1,475 raakaa mallitunnistetta**; erillisessä ilmaisbudjettiluettelossa on **467 mallikohtaista riviä**, **34 toistuvaa poolia** ja **51 toistuvaa/avaimetonta ikuisesti ilmaista tarjoajaa**. Nämä ovat tarkoituksella eri nimittäjiä; määritelmät ja pooleittain deduplikoidut laskelmat löytyvät kohdasta [Tarjoajaviite](docs/reference/PROVIDER_REFERENCE.md) ja [Ilmaistasot](docs/reference/FREE_TIERS.md).
### 🏢 Jokainen merkittävä laboratorio — yhden päätepisteen kautta
OpenAI
OpenAI
                           
Anthropic
Anthropic
                           
Gemini
Gemini
                           
xAI Grok
xAI Grok
                           
DeepSeek
DeepSeek
                           
Mistral
Mistral
                           
Qwen
Qwen
                           
Meta Llama
Meta Llama
                           
Groq
Groq
                           
NVIDIA
NVIDIA
                           
MiniMax
MiniMax
                           
Cohere
Cohere
                           
Perplexity
Perplexity
                           
Hugging Face
HuggingFace
                           
Together
Together
                           
Fireworks
Fireworks
                           
Cloudflare
Cloudflare
                           
Baidu
Baidu
                           
…ja yli 350 muuta — jokainen kuvake haetaan livenä dashboardin tarjoajaluettelosta. 📖 [Tarjoajaviite](docs/reference/PROVIDER_REFERENCE.md)
### 🆓 Ikuisesti ilmainen — 0 $, ei korttia
OpenCode Zen
OpenCode Zen
DeepSeek V4, Nemotron 3
Ei token-ylärajaa
Kilo Code
Kilo Code
Autorouter, Tencent Hy3
Ilmainen ikuisesti
Requesty
Requesty
GPT-OSS 120B, Nemotron
Ilmainen ikuisesti
SiliconFlow
SiliconFlow
DeepSeek V3.2 / R1
Ilmainen taso
Z.AI GLM
Z.AI GLM
GLM-4.7 / 4.5-Flash
Ilmainen ikuisesti
Baidu ERNIE
Baidu ERNIE
ERNIE 4.0
Ilmainen ikuisesti
Qoder AI
Qoder AI
Qwen3-Max, Kimi-K2
Rajaton ILMAINEN
Pollinations
Pollinations
GPT, Llama, Claude
Ei vaadi avainta
Cloudflare AI
Cloudflare AI
Yli 50 mallia
10 t. neuronia/päivä
NVIDIA NIM
NVIDIA NIM
GLM, MiniMax
~40 RPM ilmaiseksi
Cerebras
Cerebras
GLM 4.7, GPT-OSS
Kertaluonteinen 5 $ hyvitys; kortti vaaditaan
OpenRouter
OpenRouter
:free-mallit
+10 $ → suurempi RPM
📖 Koko koneellisesti luettava 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.
AlustaAsennusKohokohdat
📦 npm (globaali)npm install -g omnirouteYksi komento, mikä tahansa käyttöjärjestelmä
🐳 Dockerdocker run … diegosouzapw/omnirouteUseita arkkitehtuureja: AMD64 + ARM64
🖥️ Työpöytäsovellus (Electron)npm run electron:buildNatiivi ikkuna + ilmaisinalue — Windows / macOS / Linux
🎩 Valikkorivi (OmniRouteTray)brew install --cask zoispag/tap/omniroute-trayValvoo palvelinta ja päivittää sen automaattisesti — macOS
💪 ARMnatiivi arm64Raspberry Pi, ARM-palvelimet, Apple Silicon
📱 Android (Termux)pkg install nodejs && npx -y omnirouteToimii 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-providerNatiivi OpenCode-integraatio
🤖 VS Code Copilot Chatasenna OmniCopilot-laajennusKaikki OmniRoute-mallit natiivissa Copilot Chatin mallivalitsimessa — vakaa versio ja Insiders
🛠️ Lähdekoodistanpm install && npm run devMuokkaa ja osallistu kehitykseen
📖 [Docker-opas](docs/guides/DOCKER_GUIDE.md) · [Työpöytäsovellus](electron/README.md) · [Valikkorivisovellus](https://github.com/zoispag/omniroute-tray) · [Termux](docs/guides/TERMUX_GUIDE.md) · [PWA](docs/guides/PWA_GUIDE.md) · [OpenCode](docs/frameworks/OPENCODE.md)
### 🧩 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**.
KauppaLinkkiYhteensopivuus
🧩 VS Code MarketplaceAsenna →VS Code — vakaa versio ja Insiders
🔓 Open VSX RegistryAsenna →Cursor, Windsurf, VSCodium, Theia, code-server, Gitpod, Antigravity, Kiro…
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
### 🎩 Uutta: OmniRouteTray — yhdyskäytäväsi valikkorivillä
> `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 tekeeMiten
🟢 Valvoo palvelintaKä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 paikallaanVaiheistettu asennus, atominen vaihto ja palautus epäonnistumistilanteessa — aina uusin julkaisu käytössä
🚀 Käynnistyy kirjauduttaessaValinnainen käynnistys kirjautumisen yhteydessä; vain valikkorivillä, ei Dock-kuvaketta
🩺 Diagnostiikka ja lokitDiagnostiikka ja pääsy palvelinlokeihin yhdellä napsautuksella
```sh brew install --cask zoispag/tap/omniroute-tray ``` Lataatko mieluummin? Hae uusin .dmg julkaisuista. Lähdekoodi, ongelmat ja koontiohjeet löytyvät osoitteesta zoispag/omniroute-tray.
💛 Yhteisöprojekti, jonka tekijä on @zoispag — ei virallinen OmniRoute-julkaisu.

## 🔒 Yksityinen & paikallisuus edellä
Yksityinen ja paikallisuus edellä — OmniRouten yhdyskäytävä ja hallintataso toimivat omalla koneellasi. Kehotteet lähetetään kullekin pyynnölle valitulle ulkoiselle palveluntarjoajalle; OmniRoute ei lisää väliin omaa isännöityä kehotteiden käsittelyvaihetta, ja telemetria on oletusarvoisesti poistettu käytöstä. Tunnistetiedot salataan levossa AES-256-GCM-salauksella; suojauskeinoihin kuuluvat API-avainten käyttöalueiden rajaus, IP-suodatus, nopeusrajoitukset, kehotesyötteiden manipuloinnin estot, ulkoisten palveluntarjoajien otsakkeiden puhdistus, valinnainen henkilötietojen peittäminen, puhdistetut virheilmoitukset ja paikallinen SQLite-tarkastusloki. OmniRoute käyttää MIT-lisenssiä, ja sitä voi ylläpitää itse. 📖 [Valtuutus](docs/architecture/AUTHZ_GUIDE.md) · [Suojaukset](docs/security/GUARDRAILS.md) · [Vaatimustenmukaisuus](docs/security/COMPLIANCE.md)
## 🔌 Täysi CLI + A2A ja MCP
> 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)
Animoitu pääte-esittely OmniRoute CLI:stä — omniroute providers list, omniroute combo list ja omniroute health — kiertäen ylimmän tason 89 komennon valikoimaa: providers · oauth · keys · combo · nodes · models · cache · compression · cost · usage · quota · health · resilience · telemetry · logs · audit · mcp · a2a · cloud · memory · skills · eval · tunnel · backup · sync · webhooks · policy · pricing · translator · simulate …
### 🤝 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`.
RajapintaPäätepiste / komentoKäyttötarkoitus
🧰 MCP (stdio)omniroute --mcpLiitä Claude Desktopiin, Cursoriin tai mihin tahansa MCP-asiakasohjelmaan
🌊 MCP (HTTP)/api/mcp/streamMCP-etäyhteys — 110 työkalua, 33 käyttöoikeusaluetta (valinnainen valvonta), täydellinen kirjausketju
📡 MCP (SSE)/api/mcp/sseSuoratoistava MCP-siirtotapa
🤝 A2A/.well-known/agent.jsonAgenttien välinen viestintä, JSON-RPC 2.0 + SSE, 6 taitoa
🌐 REST API/v1/*OpenAI-yhteensopiva — keskustelut, upotukset, kuvat, ääni ja OCR
🔔 Webhookit/api/webhooksLähetä pyyntö- ja kiintiötapahtumat Slackiin, Discordiin, Telegramiin tai mihin tahansa URL-osoitteeseen
🛰️ Etä-CLIomniroute connect Hallitse etäinstanssia käyttöoikeuksiltaan rajatuilla tunnuksilla
```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 % tokeneista — automaattisesti
### 📖 Miten se toimii — putki, arkkitehtuuri ja säästölaskenta OmniRoute-pakkausputki: havainnollistava 10 000 tokenin asiakaspyyntö kulkee 12 yhdisteltävän moottorin läpi — Session-Dedup, CCR, Lite, RTK, Responses Tool Output, Headroom, Relevance, Caveman, Aggressive, LLMLingua-2, Ultra ja OmniGlyph — ja voi saavuttaa tarjoajan noin 1 080 tokenilla dokumentoidussa pinotussa esimerkissä. Jäsennetty sisältö on suojattu säilytysvahdeilla ja vaihekohtaisilla uskollisuusporteilla; eksplisiittiset häviölliset tai kokeelliset tilat voivat muuntaa kelvollista sisältöä. Oletusarvoinen pinottu yhdistelmä ajaa `RTK → Caveman`. Kun molemmat vaikuttavat samaan työkalu-/kontekstidataan, 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 jäsennetty data ovat **aina suojattuja** säilytysmoottorin toimesta. > **Miksi käyttää monta tokenia, kun harva token riittää?** Jokainen pyyntö kulkee OmniRoute'n pakkausputken läpi **läpinäkyvästi** — ilman muutoksia asiakaspäässä. Se on nyt **12 yhdisteltävän moottorin pino**, jotka ajetaan järjestyksessä ja yhdistellään reititysyhdistelmäkohtaisesti — rakentuen ideoille [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) pohjalta. ### 🧱 12 moottorin pino Moottorit ajetaan putken järjestyksessä; jokainen on itsenäisesti päälle kytkettävissä ja konfiguroitavissa yhdistelmäkohtaisesti:
#MoottoriMitä se tekee
1Session-DedupPudottaa sisällön, joka toistuu vuorojen välillä (sisältöosoitettu, vuorojen välinen)
2CCRArkistoi suuret lohkot noutomerkkien taakse, haetaan tarvittaessa
3LiteTyhjän tilan ja kuva-URL-osoitteiden karsinta (vähäviiveinen perustaso)
4RTKÄlykäs työkalutulosten suodatus, duplikaattien poisto ja katkaisu (komentotietoinen)
5Responses Tool OutputHäviötön ensisijaisesti JSON + rajattu diagnostinen pakkaus shell-/patch-/haku-/build-tulosteille (Responses API)
6HeadroomHäviötön taulukkomuotoinen tiivistys JSON-taulukoille (~30 %) sisällytetyn GCF-koodekin kautta
7RelevanceEkstraktiivinen lauseiden pisteytys viimeisintä käyttäjän kyselyä vasten
8CavemanSääntöpohjainen proosan pakkaus (~65–75 % tulosteesta)
9AggressiveTiivistäminen + vanhojen vuorojen asteittainen vanhentaminen
10LLMLingua-2ML-pohjainen semanttinen karsinta MobileBERT ONNX:n kautta — kooditurvallinen, asynkroninen
11UltraHeuristinen tokenien karsinta valinnaisella pienmallitasolla (SLM)
12OmniGlyphKokeellinen konteksti kuvana -koodaus mitatulle Claude Fable 5:lle suoralla Anthropic-yhteydellä; GPT 5.6 -transformers pysyvät fail-closed-tilassa odottaen tarjoajan kuittauksia. Neljä pakkausprofiilia (aggressiivinen oletus, tasapainoinen, kooditurvallinen, läpivienti) (aggressiivisin; valinnainen)
Koodilohkot, URL-osoitteet ja jäsennetty data **säilytetään aina** tavulleen. **Yhden napsautuksen esiasetukset** yhdistävät moottorit:
TilaSäästötParhaiten sopii
🪶 Lite~15 %Aina päällä oleva turvallinen oletus
🪨 Standard (Caveman)~30 %Päivittäinen koodaus
⚡ Aggressive~50 %Pitkät työkalupainotteiset istunnot
🔥 Ultra~75 %Maksimaaliset säästöt
🧰 RTK60–90 %Shell-/testi-/build-/git-tuloste
🔗 Stacked (RTK → Caveman)78–95 %Sekalaiset kehotteet + työkalulokit
**Todellinen esimerkki — Standard-tila:** > **Ennen (69 tokenia):** _"The reason your React component is re-rendering is likely because you're creating a new object reference on each render cycle. When you pass an inline object as a prop, React's shallow comparison sees it as a different object every time, which triggers a re-render. I would recommend using useMemo to memoize the object."_ > > **Jälkeen (19 tokenia):** _"New object ref each render. Inline object prop = new ref = re-render. Wrap in useMemo."_ > > **Sama vastaus. 72 % vähemmän tokeneita. Ei lainkaan tarkkuuden menetystä.** ✅ **PT-BR-esimerkki — [Troglodita](https://github.com/leninejunior/troglodita)-tila:** > **Ennen (42 tokenia):** _"Ongelma on, että komponentti renderöityy uudelleen, koska joka renderöintikierroksella luodaan uusi olion viittaus. Suosittelisin käyttämään `useMemo`."_ > > **Jälkeen (12 tokenia):** _"Uudelleenrenderöinti: uusi viittaus joka kierroksella (inline-olio luodaan uudelleen). Käytä `useMemo`."_ > > **Sama vastaus. ~70 % vähemmän tokeneita. Tekninen tarkkuus ennallaan.** ✅
### 🎚️ Moottoreiden tuolla puolen — tulostustyylit, adaptiivinen säädin ja pyyntökohtainen hallinta Yllä olevat 12 moottoria kutistavat sen, mitä menee **sisään**. Kolme lisäkerrosta muovaavat **miten**, **milloin** ja mitä tulee **ulos**: - **🪄 Output Styles** _(tulostusakselin ohjaus)_ — injektoi deterministisiä, välimuistiturvallisia vastauksen muotoiluohjeita; yhdisteltävissä, kukin `lite` / `full` / `ultra` -tehokkuudella. Tyylin lisääminen on yhden rivin rekisterimerkintä: - **Terse prose** — pudota täyteaineet / artikkelit / lieventelyt; pidä tekninen sisältö tarkkana. - **Less code** — "lazy senior dev" YAGNI: pienin toimiva muutos, ei pyytämätöntä rakennetta. - **Ponytail (lazy senior dev)** — kiipeä YAGNI-tikapuita, korjaa juurisyy, pienin toimiva diff. - **I have ADHD (action-first)** — seuraava toiminto edellä, vaiheet numeroitu, yksi konkreettinen seuraava askel, ei johdantoa. - **Terse CJK (文言)** — klassisen kiinan ultratiiviis tyyli (lokaatiorajoitettu kieleen `zh`). - **🎯 Adaptiivinen kontekstibudjetti** _(säädin)_ — yhden päälle/pois-tokenkynnyksen sijaan kasvata halvimmat ja häviöttömimmät moottorit vain niin pitkälle kuin on tarpeen, jotta **mahtuu mallin konteksti-ikkunaan**. Käytäntö: `reserve-output` (oletus, mallitietoinen) · `percentage` · `absolute`. Tila: `floor` (takaa mahtuminen) · `replace-autotrigger` (eksplisiittinen valintasi voittaa) · `off` (perinteinen kynnys). - **🎛️ Missä pakkaus päätetään** _(etusijajärjestys, korkea → matala)_ — pyyntökohtainen `x-omniroute-compression`-otsake › reititysyhdistelmän ohitus › aktiivinen nimetty profiili › adaptiivinen / automaattinen laukaisu › paneelin oletus › pois. Sovellettu suunnitelma kajastuu takaisin `X-OmniRoute-Compression: ; source=` -vastausotsakkeessa. Laukaise automaattisesti tokenkynnyksellä, kytke adaptiivinen säädin päälle, kiinnitä nimetty profiili, aseta kertaluonteinen pyyntökohtaisesti tai määritä putki reititysyhdistelmää kohden — mikä tahansa sopii työkuormaan. Valinnainen offline-**eval-harness** (`npm run eval:compression`) pisteyttää uskollisuuden vs. säästöt kiinnitetyllä korpuksella ennen kuin otat muutoksen käyttöön. 📖 [`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-dep-varoituksia? [Ne ovat vaarattomia](docs/guides/TROUBLESHOOTING.md#npm-install-warnings-eresolve--peer--deprecated). > **Käytätkö npm 11:tä tai uudempaa?** npm voi estää paketin elinkaariskriptit, ellei niitä sallita. OmniRouten `postinstall` (`node scripts/build/postinstall.mjs`) tarvitaan valmistelemaan sen natiivit ajonaikaiset tiedostot. Salli npm:n varoituksessa nimetyt paketit asennettaessa globaalisti. OmniRouten 3.8.53 raportoimalle pakettijoukolle: > > ```bash > npm install -g --allow-scripts=omniroute,keytar,onnxruntime-node,@parcel/watcher,@swc/core,protobufjs,esbuild omniroute > ``` > > Voit käyttää tätä sallittujen luetteloa uudelleen tulevissa globaaleissa asennuksissa määrittämällä sen kerran ja asentamalla sitten 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 raportoi eri luettelon, käytä kyseisen varoituksen pakettinimiä. Paketin salliminen antaa sen asennusskriptien suorittaa. > **Käytätkö Gemini Webiä tai toista web-evästepalveluntarjoajaa?** npm-paketti sisältää Playwrightin, mutta ei sen Chromium-binääriä. Katso [Playwright Chromium -asetukset](docs/guides/TROUBLESHOOTING.md#gemini-web-and-playwright-chromium) -huomautus ennen ensimmäisen web-palveluntarjoajapyynnön tekemistä. Kojelauta osoitteessa `http://localhost:20128` · API osoitteessa `http://localhost:20128/v1`. **2) Yhdistä kelvollinen palveluntarjoaja omalla tililläsi** Kojelauta → **Providers** → valitse palveluntarjoaja, jonka nykyiset ehdot ja kiintiö sopivat käyttötapaukseesi → lisää sen API-avain tai suorita sen tiliivirta loppuun. Ilmaistasot voivat vaatia rekisteröitymisen, hyväksynnän tai maksutavan. Tutustu [Ilmaistasojen oppaaseen](docs/getting-started/FREE-TIERS-GUIDE.md); avaimeton saatavuus ei ole taattua, ja palveluntarjoajat, jotka on merkitty `tos: avoid`, jätetään oletuksena `auto`-reitityksen ulkopuolelle. **3) Osoita koodaustyökalusi** ```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, että se toimii** ```bash curl http://localhost:20128/v1/models -H "Authorization: Bearer YOUR_KEY" ``` Sinun pitäisi nähdä yhdistetyt mallisi listattuna. 🎉 Siinä kaikki — aloita koodaaminen, ja OmniRoute reitittää automaattisesti ja vaihtaa varamalliin puolestasi. Jos asiakasohjelmasi ei voi lähettää mukautettuja otsakkeita, OmniRoute tarjoaa myös tokenisoidut yhteensopivuusalakset: ```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 asiakkaille, jotka eivät voi liittää `Authorization: Bearer ...`. Otsakeautentikointi on edelleen ensisijainen tila.
## 📦 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.
# 🎬 OmniRoute toiminnassa
## 📹 Video-oppaat
Tilannekuva hallintapaneelista 2026-10-18 · Raakaluettelo: YT 1.352 | TT 334 | IG 290 · Ajantasaisuus (päivää): YT 5 | TT 48 | IG 49
Instagram Reel — nick_saraev
🎬 #1 — Instagram
nick_saraev — 3,042,474 katselukertaa
Instagram Reel — nnapier7
🎬 #2 — Instagram
nnapier7 — 1,454,535 katselukertaa
YouTube — Amidia AI & Tech
🎬 #3 — YouTube
Amidia AI & Tech — 794,974 katselukertaa
Instagram Reel — theopenstack
🎬 #4 — Instagram
theopenstack — 692,419 katselukertaa
TikTok — migue.baena
🎬 #5 — TikTok
migue.baena — 685,788 katselukertaa
**Täydellinen sijoituslista (deduplikoidut kanoniset URL-osoitteet, `v > 0`, suurin tavoittavuus):** | #1 | #2 | #3 | #4 | #5 | | -------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | | [nick_saraev — Instagram](https://www.instagram.com/reel/Da8ZthUPK98/) — **3,042,474** | [nnapier7 — Instagram](https://www.instagram.com/reel/Dbp7wv_CIO0/) — **1,454,535** | [Amidia AI & Tech — YouTube](https://www.youtube.com/watch?v=NJ0TQ-pyMDY) — **794,974** | [theopenstack — Instagram](https://www.instagram.com/reel/DaSs65mMrHk/) — **692,419** | [migue.baena — TikTok](https://www.tiktok.com/@migue.baena/video/7670919268216622358) — **685,788** | | #6 | #7 | #8 | #9 | #10 | | ------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | | [milesreevesai — TikTok](https://www.tiktok.com/@milesreevesai/video/7667980059189366019) — **620,400** | [nikothetech — TikTok](https://www.tiktok.com/@nikothetech/video/7671890769665477918) — **610,803** | [Vaibhav Sisinty — YouTube](https://www.youtube.com/watch?v=QucgvbO5gsM) — **509,281** | [buildwithai.club — Instagram](https://www.instagram.com/reel/DbIt9AjK7-U/) — **347,652** | [nivedan.ai — Instagram](https://www.instagram.com/reel/DbIrCksJiqq/) — **331,973** | Kanoniset mittarit 2026-10-18: **1.976 yksilöllistä videota** · **20.220.289 tunnettua katselukertaa** (`v > 0`) · **1.210 kanavaa/profiilia verkostoittain**. Raakahallintapaneelissa on 1.976 riviä (YouTube 1.352 = 740 pitkää videota + 612 Shorts-videota · TikTok 334 · Instagram 290); kanonisen URL-osoitteen perusteella tehdyn normalisoinnin jälkeen yhtään kaksoiskappaletta ei jäänyt, ja kustakin videosta säilytetään suurin katselumäärä. YouTube-tietojen keruu on jäädytetty päivämäärään 2026-10-13 (API-kiintiö loppui ajanjaksolla 14.–18.10.) ja TikTok-/Instagram-tietojen keruu päivämäärään 2026-09-02 (keräyssaldoa ei ole); 76 videolta puuttuu edelleen katselumäärä. > 🎬 **Teitkö videon OmniRoutesta?** Avaa [issue](https://github.com/diegosouzapw/OmniRoute/issues/new) tai [discussion](https://github.com/diegosouzapw/OmniRoute/discussions) ja lisää siihen linkki — nostamme videon esiin täällä.
# 📧 Yhteisö ja ohjeet > Kaikki yhdessä paikassa — seuraa ylläpitäjää, keskustele yhteisön kanssa tai avaa issue. | Kanava | Missä / miten | | --------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | | 💼 **LinkedIn** — seuraa ylläpitäjää | [linkedin.com/in/diegosouzapw](https://www.linkedin.com/in/diegosouzapw/) | | 🐙 **GitHub** — seuraa julkaisuja ja vinkkejä | [@diegosouzapw](https://github.com/diegosouzapw) | | 💬 **Discord** | [discord.gg/U47eFqAXCn](https://discord.gg/U47eFqAXCn) | | ✈️ **Telegram** | [t.me/omnirouteOficial](https://t.me/omnirouteOficial) | | 🟢 **WhatsApp — 🌍 Maailmanlaajuinen** | [liity ryhmään](https://chat.whatsapp.com/FvuCbrpZmQ6I85n2vW5QIC?s=cl&p=a&mlu=4) | | 🟢 **WhatsApp — 🇧🇷 Brasilia** | [liity ryhmään](https://chat.whatsapp.com/KWgatljAjmbELQory59Oti?s=cl&p=a&mlu=4) | | 🌍 **Verkkosivusto** | [omniroute.online](https://omniroute.online) | | 🌍 **🌍StHub OmniRoute -yhteisö (maksuton)** | [StHub-portaali](https://portal.sthub.com.br/communities/groups/st-hub/channels/Omniroute-World-8kRjmK) | | 📦 **Lähdekoodi** | [github.com/diegosouzapw/OmniRoute](https://github.com/diegosouzapw/OmniRoute) | | 🐛 **Ilmoita virheestä** | [avaa ongelmailmoitus](https://github.com/diegosouzapw/OmniRoute/issues) — liitä mukaan `npm run system-info` -komennon tuloste | | 🤝 **Osallistu kehitykseen** | [CONTRIBUTING.md](CONTRIBUTING.md) · [Haarautumis- ja julkaisumalli](docs/ops/BRANCHING_MODEL.md) · valitse `good first issue` | | 💚 **Tue projektia** | [Tukitavat ↑](#-support-omniroute) · [GitHub Sponsors](https://github.com/sponsors/diegosouzapw) |
---
## 🛠️ Teknologiapino
KerrosTeknologia
AjoympäristöNode.js 22.x / 24.x LTS — >=22.22.2 <23 || >=24.0.0 <27
KieliTypeScript 6.0 — 100 % TypeScript kansioissa src/ ja open-sse/ (ei yhtään any-tyyppiä ytimessä versiosta v2.0 alkaen)
KehysNext.js 16 + React 19 + Tailwind CSS 4
Tietokantabetter-sqlite3 (SQLite, WAL-journalointi) + LowDB (JSON-perintö) — 147 domain-moduulia, 209 migraatiota
MuistiSQLite FTS5 -kokotekstihaku + int8-kvantisoidut vektoriupotukset, tyypitetty vaimeneminen
SkeematZod 4 — MCP-työkalujen I/O-validointi + API-sopimukset
ProtokollatMCP (stdio / HTTP / SSE) + A2A v0.3 (JSON-RPC 2.0 + SSE)
SuoratoistoServer-Sent Events (SSE) + WebSocket-silta (/v1/ws)
Pakkaaminen12-moottorinen putki — RTK, Caveman, LLMLingua-2 (MobileBERT ONNX), GCF, OmniGlyph
Todennus ja turvallisuusOAuth 2.0 (PKCE) + JWT + API-avaimet + MCP:n rajattu todennus · AES-256-GCM levossa · DOMPurify
Häivetekniikkawreq-js — JA3 / JA4 TLS -sormenjälkien jäljittely, 3-tason proxy
ResilienssiPiirikatkaisin, eksponentiaalinen backoff, thundering herd -ilmiön esto, auto-combon itsekorjautuvuus
Lokituspino — jäsennellyt JSON-lokit pyyntökontekstilla
TestausNode.js:n testiajuri + Vitest — 56 000+ staattista testideklaraatiota yli 7 800 versionhallinnassa seuratussa testitiedostossa (yksikkö-, integraatio-, E2E-, tietoturva- ja ekosysteemitestit)
AlustatTyöpöytä (Electron) · Android (Termux) · PWA (mikä tahansa selain)
CI/CDGitHub Actions — automaattinen npm-julkaisu + Docker Hub julkaisun yhteydessä
LinkitVerkkosivusto · npm · Docker Hub

## 📖 Dokumentaatio
### 📘 Aloittaminen
DokumenttiKuvaus
KäyttöopasPalveluntarjoajat, yhdistelmät, CLI-integraatio ja käyttöönotto
AsennusopasKaikki asennustavat, CLI-työkalujen määritykset, protokollien käyttöönotto ja aikakatkaisujen säätö
CLI-työkalujen opasTyökalukohtaiset määritykset: Claude Code, Codex, Cursor, Cline, OpenClaw, Kilo ja Copilot
EtätilaOhjaa etäpalvelimella (VPS) toimivaa OmniRoutea kannettavan tietokoneesi CLI:stä käyttöalaltaan rajatuilla käyttöoikeustunnuksilla
Claude Code -määritysYhdistä Claude Code OmniRouteen (paikalliseen tai etäpalvelimeen) käyttäen komentoa launch ja mallikohtaisia profiileja
Pika-aloitusKolme vaihetta: asenna → yhdistä → määritä
### 🔧 Käyttö ja käyttöönotto
DokumenttiKuvaus
Docker-opasDocker run, Compose-profiilit, Caddy HTTPS, tunnelit ja levykuvatunnisteet
Podman-opasQuadlet systemd -integraatio, podman-compose ja SELinux
VirtuaalikonekäyttöönottoKattava opas: virtuaalikoneen, nginxin ja Cloudflaren määritys
Fly.io-käyttöönottoOta käyttöön Fly.io-palvelussa pysyvän tallennustilan kanssa
Termux-opasSuorita OmniRoute Androidissa Termuxin kautta
PWA-opasProgressiivisen verkkosovelluksen asennus, välimuisti ja arkkitehtuuri
Asennuksen poisto-opasSiisti poistaminen kaikilla asennustavoilla
YmpäristömäärityksetKaikki .env-muuttujat ja viitteet
### 🧠 Ominaisuudet ja arkkitehtuuri
DokumenttiKuvaus
ArkkitehtuuriJärjestelmäarkkitehtuuri, tietovirta ja sisäinen toiminta
PakkausopasSeitsemän vaihtoehdon käsittelyketju: pois käytöstä / kevyt / normaali / aggressiivinen / ultra / RTK / pinottu
RTK-pakkausKomentotulosteiden pakkaus, suodattimet, luottamus, varmennus ja raakamuotoisen tulosteen palautus
PakkausmoottoritCaveman, RTK, pinotut käsittelyketjut sekä koontinäyttö-, API- ja MCP-rajapinnat
Pakkaussääntöjen muotoJSON-sääntöpakettien skeemat Caveman- ja RTK-suodattimille
Pakkauksen kielipaketitKielen tunnistus ja Caveman-sääntöpakettien laatiminen
VikasietoisuusopasKatkaisijat, jäähdytysajat, jono, yhtäaikaisten pyyntöryöppyjen esto ja TLS-väärentäminen
Auto-Combo-moottori16 tekijän pisteytys, tilapaketit ja itsekorjautuvuus
VälityspalvelinopasKolmitasoinen välityspalvelinjärjestelmä, 1proxy-markkinapaikka ja rekisterin CRUD-toiminnot
Ilmaiset palvelutasotKoottu hakemisto: 34 dokumentoitua toistuvaa resurssipoolia / 467 luetteloitua ilmaisen palvelutason kohdetta
OminaisuusgalleriaKoontinäytön visuaalinen esittely näyttökuvineen
Koodikannan dokumentaatioAloittelijaystävällinen koodikannan esittely
### 🤖 Protokollat ja API:t
DokumenttiKuvaus
API-viiteKaikki päätepisteet esimerkkeineen
OpenAPI-määritysOpenAPI 3.0 -määritys
MCP-palvelin110 MCP-työkalua, IDE-määritykset sekä Python-, TS- ja Go-asiakasohjelmat
MCP-palvelinopasMCP:n asennus, siirtotavat ja työkaluviite
A2A-palvelinJSON-RPC 2.0 -protokolla, taidot, suoratoisto ja tehtävien hallinta
A2A-palvelinopasA2A-agenttikortti, tehtävät, taidot ja suoratoisto
### 📋 Projekti ja laatu
AsiakirjaKuvaus
OsallistuminenKehitysympäristön pystytys ja ohjeet
Haarautumis- ja julkaisumalliMihin PR:t kohdistuvat (release/*), mitä main ja tagit tarkoittavat
MuutoslokiTäydellinen versiokohtainen julkaisuhistoria
TietoturvakäytäntöHaavoittuvuuksien raportointi ja tietoturvakäytännöt
i18n-opas67 kielen tuki, käännöstyönkulku, RTL
Julkaisun tarkistuslistaEnnen julkaisua tehtävät validoinnit
KattavuussuunnitelmaTestikattavuusstrategia yli 56 000 staattiselle testideklaraatiolle yli 7 800 seurattavassa testitiedostossa

# ⭐ Huippuavustajat > OmniRoutea muovaa intohimoinen avoimen lähdekoodin yhteisö. Nämä henkilöt ovat tehneet poikkeuksellisia panostuksia, jotka vaikuttavat suoraan projektin laatuun, vakauteen ja levikkiin. **Kiitos.** ### Ulkoiset avustajat yhdistettyjen pull requestien mukaan
SijaAvustajaYhdistetyt PR:t~Muutetut rivit
1maxmad64bis37125,326,561
2HouMinXi26913,456,272
3backryun210270,562
4oyi77190411,243
5pacocartones17478,276
6JxnLexn1513,562,936
6KooshaPari1515,972,314
8rdself14580,663
9RaviTharuma123500,065
10herjarsa88230,872
11hartmark842,849,554
12jonlwheat2-gif6768,548
13artickc6243,502
14chirag127526,661
15xz-dev50245,976
16xiaoyaner02014733,626
17woodsonl46809,391
18rqzbeh44147,896
19QuangBlue4313,112
20MumuTW4026,093
Laskenta suoritettu 2026-10-18 15:09:09 UTC, käytössä live release/v3.8.52 -haaran kärki 656f01cb43. Sivutettu GitHub GraphQL -laskenta sisältää 9 191 yhdistettyä PR:ää: 3 834 repositorion omistajalta, 229 Dependabotilta, 6 muilta boteilta/sovelluksilta ja 5 122 ulkoista PR:ää 835 eri avustajalta. "Muutetut rivit" on GitHubin lisäykset + poistot ja sisältää generoidut tiedostot, lockfile-tiedostot, luettelot, käännökset ja dokumentaation; se on churnia, ei kirjoitettuja koodirivejä. 49 PR:ää raportoi GitHub-diffin yli 500 000 riviltä (esimerkiksi #13399, yhden palveluntarjoajan lisäys, luettelee 2 347 muutettua tiedostoa), mikä paisuttaa useita yllä olevia summia. Tasapisteet on sijoitettu samalle sijalle. ### GitHubiin liitetyt commitit
Dizzle
Dizzle

🥇 367 GitHubiin liitettyä committia
Bob.Hou
Bob.Hou

🥈 269 GitHubiin liitettyä committia
Paijo
Paijo

🥉 229 GitHubiin liitettyä committia
backryun
backryun

🏅 202 GitHubiin liitettyä committia
Paco Cartones
Paco Cartones

🏅 174 GitHubiin liitettyä committia
Ravi Tharuma
Ravi Tharuma

🏅 126 GitHubiin liitettyä committia
Markus Hartung
Markus Hartung

🏅 114 GitHubiin liitettyä committia
Randi
Randi

🏅 108 GitHubiin liitettyä committia
Jan Leon
Jan Leon

🏅 87 GitHubiin liitettyä committia
Chris
Chris

🏅 70 GitHubiin liitettyä committia
Koosha Paridehpour
Koosha Paridehpour

🏅 68 GitHubiin liitettyä committia
Tarkistettu uudelleen 2026-10-18 14:44:45 UTC: GitHubiin liitetyt commitit, jotka repositorion Contributors API raportoi `release/v3.8.52`-oletushaaralle. API palautti 849 identiteettiä (429 käyttäjää, 2 bottia, 418 anonyymiä); tämä taulukko jättää pois ylläpitäjän, botit ja anonyymit identiteetit ja säilyttää jaetut kilpailusijoitukset. Se eroaa sekä yllä olevasta yhdistettyjen PR:ien sijoituksesta että alla olevasta Git-metatietojen kartoituksesta. > 🙏 Näiden avustajien ominaisuudet, bugikorjaukset ja infrastruktuuriparannukset ovat **ydinosa** sitä, mikä tekee OmniRoutesta luotettavan ja monipuolisen. Jokainen pull request, jokainen testitapaus ja jokainen i18n-käännöstiedosto on tärkeä. Avoimen lähdekoodin rakentavat heidän kaltaisensa ihmiset.
---
## 💖 Sponsorit
Sydämellinen kiitos kaikille, jotka rahoittavat OmniRoutea omasta pussistaan — jokainen lahjoitus auttaa pitämään projektin ilmaisena, riippumattomana ja kehityksessä.
Andrew
Andrew

💛 Aktiivinen kuukausisponsori
Vlad I
Vlad I

💛 Aktiivinen kuukausisponsori
小妍儿
小妍儿

💛 Aktiivinen kuukausisponsori
Guilherme Costa
Guilherme Costa

💛 Aktiivinen kertaluonteinen sponsori
Henrique Triches Iurkiv
Henrique Iurkiv

💛 Aktiivinen kertaluonteinen sponsori
Somesh Ghaturle
Somesh Ghaturle

💛 Aktiivinen kertaluonteinen sponsori
Kolonie AI
Kolonie AI

💛 Aiempi kertaluonteinen tukija
Professor Igor Morais Vasconcelos
Prof. Igor Morais

💛 Aiempi kertaluonteinen tukija
Pixma
Pixma

💛 Aiempi kertaluonteinen tukija
Paco Cartones
Paco Cartones

💛 Aiempi kertaluonteinen tukija
longtao
longtao

💛 Aiempi kertaluonteinen tukija
… 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 900 osallistujaa
[![Osallistujat](https://contrib.rocks/image?repo=diegosouzapw/OmniRoute&max=993&columns=20&anon=1)](https://github.com/diegosouzapw/OmniRoute/graphs/contributors) Auditoitu 2026-10-18 aktiivisen release/v3.8.52-haaran kärjessä ad160ab2d1 (6 826 committia): 993 normalisoitua ihmiskäyttäjän Git-identiteettiä — 707 esiintyy committien tekijöinä (ylläpitäjä mukaan lukien) ja 286 ainoastaan nimenomaisissa Co-authored-by-merkinnöissä. Laskennassa käytetään .mailmap-tiedostoa, sähköpostiosoitteita verrataan kirjainkoosta riippumatta, numeeriset ja tavalliset GitHubin noreply-osoitteet yhdistetään vain, jos ne sisältävät saman käyttäjätunnuksen, 26 botti-, agentti-, palvelu- tai paikkamerkki-identiteettiä jätetään pois eikä tavallisia sähköpostiosoitteita yhdistetä pelkästään samojen näyttönimien perusteella. 2026-08-24 tehty auditointi ilmoitti määräksi 639; kun tämä menetelmä suoritetaan uudelleen kyseisen auditoinnin pohjana olleelle kärjelle ac02c5b42f, tulokseksi saadaan 619, joten kasvu johtuu uusista osallistujista eikä väljemmästä menetelmästä. ### Näin osallistut 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. Commitoi muutoksesi (`git commit -m 'feat: add amazing feature'`) 5. Pushaa haaraan (`git push origin feat/amazing-feature`) 6. Avaa pull request niin, että **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 Tähtihistorian kaavio
## 🌍 StarMapper 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ä on saanut inspiraationsa avoimen lähdekoodin projektista, joka toteutti sen ensin. Jokainen niistä muovasi jotakin konkreettista OmniRouten osaa. Tämä on kiitoksemme niille kaikille. 🙏 > ⭐ tähtimäärät tarkistettiin GitHubin REST APIsta 18. lokakuuta 2026 — käy antamassa näille projekteille tähti. Määrät ovat tarkka, tiettynä päivänä otettu tilannekuva, joten ne muuttuvat luonnollisesti. ### 🧬 Alkuperä & yhdyskäytävä
Projekti⭐Miten se inspiroi OmniRoutea
9router31,004Alkuperäinen projekti, johon tämä haara perustuu — sitä on laajennettu tässä multimodaalisilla rajapinnoilla ja toteuttamalla koodi kokonaan uudelleen TypeScriptillä.
CLIProxyAPI55,591Go-toteutus, joka inspiroi tätä JavaScript- / TypeScript-porttausta.
LiteLLM61,482AI-yhdyskäytävä, jonka julkinen hintatietoaineisto syöttää kustannusseurantamme synkronointia ja jonka palveluntarjoajien normalisointimalli vaikutti reititykseemme.
codex-chatgpt-web14,526MIT-lisensoitua lähdekoodia mukautettiin mukana toimitettuun ChatGPT Web → Codex Responses -siltaan, mukaan lukien selainistunnon, vastausten kehystyksen, käytön ja verkkohaun sovittimet.
free-claude-code61,430Malleja portattiin suoratoiston palautukseen, ilman päättelyä toimiviin aliaksiin, varaverkkohakuun, liukuvan ikkunan rajoituksiin, lokien peittämiseen ja vahvistettuihin käynnistysprosesseihin.
composer-api346Cursor Composerin työkalun valinnan, tulosrajoitteiden ja työkalujen vahvistamisen malleja mukautettiin natiiviin Cursor-suorittimeen.
codex-multi-auth553Uuden kirjautumisen ja päivitystunnusten kierrätyksen malleja portattiin Codex OAuth -uudelleentodennukseen.
opencode-anthropic-auth558Claude Code -yhteensopivat muunnosten oletusarvot ja laskutusotsakkeiden toiminta yleistettiin OmniRouten määritysohjatuksi sillaksi.
grok2api-merged2Sen Grok-mallimäärityksiä, väärennettyyn TypeError-virheeseen perustuvaa Statsig-generaattoria, pyyntöjen ja laitteiden oletusarvoja sekä NDJSON-vastausprosessoria mukautettiin merkittävästi OmniRouten Grok Web -suorittimeen.
TQZHR/grok2api706grok2api-merged-projektin pääasiallinen välillinen koodilähde; sen malli-, otsake-, hyötykuorma-, Statsig- ja prosessoritoteutukset on säilytetty osana Grok Webin alkuperäketjua.
chenyme/grok2api7,819Taustalla 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-merged-projektin kautta.
grok2api-pro27Välillinen lähde, jonka grok2api-merged mainitsee välityspalvelinvarantokerroksensa lähteenä; OmniRoute säilyttää tämän alkuperämaininnan, mutta ei väitä portanneensa välityspalvelinvarantoa rajattuun Grok Web -suorittimeensa.
GrokProxy51Sen evästetodennusta käyttävä Grok-välityspalvelin ja result.response.token-suoratoistomalli vaikuttivat OmniRouten Grok Web -siirtokerrokseen.
GrokBridge5Alkuperäistä Grok Web -toteutusta varten perehdyttiin sen HTTP-/selainpohjaiseen vastapalvelinrakenteeseen; sen suora HTTP-polku perustuu GrokProxyyn, joten erillistä koodiporttausta ei väitetä tehdyn.
### 🗜️ Kontekstin ja tokenien pakkaus — moottorit
Projekti⭐Miten se inspiroi OmniRoutea
Caveman113,396Viraaliksi noussut "miksi käyttää monta tokenia, kun muutama token riittää" -projekti — sen luolamiespuheen filosofia toimii vakiopakkaustilamme sekä yli 30 täytesanojen poisto- ja tiivistyssäännön perustana.
RTK – Rust Token Killer83,835Tehokas komentotulosteiden pakkaus — inspiroi RTK-moottoriamme, JSON-suodattimien DSL:ää, raakatulosteen palautusta sekä pinottua RTK → Caveman -putkea.
headroom75,741Palautettava kontekstin pakkaus (SmartCrusher) — inspiroi headroom-moottoriamme ja ccr-hakumerkintämallia.
LLMLingua6,757Kehotteiden pakkaustutkimus (LLMLingua / LLMLingua-2) — inspiroi asynkronista, kooditurvallista ja virhetilanteissa alkuperäiseen toimintaan palaavaa llmlingua-moottoriamme.
llmlingua-2-js32JS/ONNX-porttaus (MobileBERT / XLM-RoBERTa), jota käytetään LLMLingua-moottorimme työntekijäsäietaustajärjestelmänä.
Troglodita50Brasilianportugalin token-pakkaus — toimii pt-BR-kielipakettimme perustana: pleonasmien vähentäminen ja Brasilian portugalin kielioppiin mukautettu täytesanojen poisto.
ponytail166,731Viraaliksi noussut "laiska vanhempi kehittäjä" -YAGNI-koodaustaito — inspiroi less-code-tulostetyyliämme: ohjausta pienimpään toimivaan muutokseen, mikä vähentää _luodun_ koodin määrää (Cavemanin niukan proosan tulostopuolen sisarmalli).
i-have-adhd57,628Sen toiminta ensin -periaatteeseen perustuva, ADHD-ystävällinen vastaustyyli mukautettiin OmniRouten ytimekkääksi tulostetyyliksi viidellä kielellä.
### 🧩 Kompaktit muodot, token-tutkimus ja kooditietoiset työkalut
Projekti⭐Miten se inspiroi OmniRoutea
TOON25,509Token-suuntautunut objektinotaatio — sen sarakkeinen, otsikosta ja riveistä koostuva malli muovasi taulukkomuotoisen tiivistämisen vaihettamme.
GCF – Graph Compact Format59Sen kompakti graafimuoto ja yleisprofiilien rakenne vaikuttivat OmniRouten taulukkomuotoiseen tiivistämiseen ja Headroom-koodekkimuotoon.
gcf-typescript4MIT-lisensoitu TypeScript-toteutus, joka sisällytettiin suoraan lähdekoodiin ja jota laajennettiin Headroomin yleisprofiilikoodekiksi.
token-optimizer-mcp551Brotli/SQLite-välimuisti + istuntokohtainen kontekstiero — inspiroi session-dedup-moottoriamme.
token-savior1,182Bash-tulosteen tiivistäminen + MCP-profiilit — inspiroi pakkaamisen keskeytysperiaatteitamme ja MCP-työkaluluetteloiden supistamista.
token-saver154Sisältötietoinen, tiedostotyyppikohtainen tulosteen pakkaus, joka keskeytetään virhetilanteissa — vahvisti tyyppikohtaisen reitityksemme ja liian pienen hyödyn tapauksessa tehtävän ohituksen.
token-optimizer2,595"Etsi haamutokenit" — sen ulkoistusmalli ja palautettavat kahvat vaikuttivat CCR-ulkoistusta koskevaan ajatteluumme.
TokenMizer33Istuntograafiin ja vuorojen väliseen rivien duplikaattien poistoon perustuva malli, joka vaikutti session-dedup-suunnitteluamme.
OmniCompress3Rust-pohjainen sarakkeinen JSON + sisältöosoitteinen haku + viestien välinen duplikaattien poisto — vahvisti headroom/ccr/session-dedup-moottoriemme suunnittelun ja välimuistivakaan invariantin "pakattu muoto on sijainnista riippumaton".
mcp-compressor133MCP-työkalujen skeemojen ja kuvausten pakkaus — vaikutti MCP-työkaluluetteloidemme kardinaliteetin vähentämiseen.
RepoMapper217Aider-tyylinen repositoriokartan luokittelu — vaikutti repositoriokarttojen ja hakutulosten luokittelun tutkimukseemme.
quiet-shell-mcp4Deklaratiivinen komentotulosteen vähentäminen MCP:n kautta — vahvisti deklaratiivisen Bash-tulosteiden tiivistämisemme.
ts-morph6,205TypeScript Compiler API -työkalupakki — inspiroi jäsenninpohjaista kommenttien poistoamme, joka säilyttää merkkijono-, malline- ja regex-literaalit.
### 🧠 Muisti ja RAG
Projekti⭐Miten se inspiroi OmniRoutea
Mem067,385Yleiskäyttöinen muistikerros — sen malli, jossa välityspalvelin toimii kirjoitus- ja lukurajana, muovasi muistiarkkitehtuuriamme.
Letta (MemGPT)25,179Tilalliset agentit ja kerrostettu muisti — innoitti kerrostettua Context Control & Recovery (CCR) -malliamme.
WFGY1,800ProblemMap-luokittelu 16 toistuvasta RAG-/LLM-virhetilasta — vianmääritysoppaamme yhteinen sanasto.
### 🛰️ Liikenteen tarkastus, MITM ja läpinäkyvä välityspalvelin
Projekti⭐Miten se inspiroi OmniRoutea
llm-interceptor79Ohjelmointiavustajan ↔ LLM:n välisen liikenteen MITM-sieppaus ja -analyysi vaikuttivat Traffic Inspectorin alkuvaiheen vaatimuksiin. Neljä aiemmin johdettua moduulia — SSE-yhdistäminen, keskustelujen normalisointi, salaisuuksien peittäminen ja otsaketietojen puhdistaminen — on korvattu riippumattomilla puhtaalta pöydältä toteutetuilla ratkaisuilla, jotka perustuvat julkisiin protokollastandardeihin. Kaksi isäntäjärjestelmän läpivientipintaa (passthrough.ts ja _internal/bypass.cjs) ovat edelleen itsenäisesti luokiteltuja OmniRouten sisäisiä toteutuksia; niitä ei kirjoitettu uudelleen kyseisen korvaamisen yhteydessä.
ProxyBridge6,814Läpinäkyvä prosessikohtainen välityspalvelinreititys — innoitti kaatumisilta suojattua MITM-purkua, yhteyksien joutokäyntiaikakatkaisuja, /proc-prosessikohdistusta ja TPROXY-kaappausta.
### 📚 Mallitiedot, havainnoitavuus ja käyttöliittymä
Projekti⭐Miten se inspiroi OmniRoutea
models.dev7,286Avoin tietokanta tekoälymallien määrityksistä, hinnoittelusta ja ominaisuuksista — synkronoidaan natiivisti malliluetteloomme.
React Flow / xyflow38,705Solmupohjainen graafikirjasto, joka toimii reaaliaikaisten Compression Studion ja Combo/Routing Studion perustana.
LangGraph43,443LangGraph Studion reaaliaikainen työnkulkugraafin visualisointi innoitti Studioidemme reaaliaikaista kaskadinäkymää.
Langfuse35,990Sen jäljitys → jakso → generointi -havainnoitavuusmalli muovasi Compression Studiomme vesiputousnäkymää.
Kiali3,645Istio-palveluverkon havainnoitavuus — innoitti Routing/Combo Studion piirikatkaisijamerkkejä ja virheyhteyksien visualisointeja.
lobe-icons2,615Tekoäly- ja LLM-brändien logot, joilla palveluntarjoajien kuvakkeet esitetään hallintapaneelissamme.
flag-icons12,473Tarjoaa README-tiedoston kielivalitsimessa käytettävät MIT-lisensoidut SVG-liput.
### 🛡️ Tietoturva
Projekti⭐Miten se inspiroi OmniRoutea
awesome-secure-defaults722Kuratoitu luettelo oletusarvoisesti turvallisista kirjastoista, joka ohjaa tietoturvavalintojamme (Helmet.js, DOMPurify, ssrf-req-filter, safe-regex, Google Tink).
### 🧭 Täydentävät työkalut
Projekti⭐Miten se inspiroi OmniRoutea
ClawRouter6,628Innoitti pyyntöjen kaksoiskappaleiden poistamista, hätätapauksissa käytettävää maksutonta vararatkaisua, liitettäviä Auto-Combo-strategioita ja monikielistä aikomusten luokittelua.
Antigravity-Manager32,333Sen tilit huomioiva mallien uudelleenkohdistus, suoritettavan tiedoston polun validointi ja pakettitunnisteiden toiminta vaikuttivat OmniRouten Antigravity-ajoympäristöön.
vscode-antigravity-cockpit4,850Sen kompakti kiintiön nollautumiseen jäljellä olevan ajan esitysmuoto innoitti vastaavaa palveluntarjoajarajoituksen näyttöä OmniRoutessa.
AionUi33,611Sen ACP-integraatiot innoittivat OmniRouten asennettujen CLI-agenttien automaattista tunnistusta.
CodexBar22,616Tunnisti Grok Build -kiintiöpinnan; OmniRoute varmisti ja korjasi tämän jälkeen käytössä olevan siirtomuodon itsenäisesti.
## 📄 Lisenssi MIT-lisenssi – katso lisätiedot tiedostosta [LICENSE](LICENSE). ---
**[⬆ Takaisin alkuun](#-omniroute)** · Rakennettu ❤️ avoimen lähdekoodin AI-yhteisölle. OmniRoute v3.8.53 · Node ≥22.22.2 · MIT-lisenssi · omniroute.online