Files
OmniRoute/docs/i18n/fi

🚀 OmniRoute — The Free AI Gateway (Suomi)

🌐 Languages: 🇺🇸 English · 🇪🇸 es · 🇫🇷 fr · 🇩🇪 de · 🇮🇹 it · 🇷🇺 ru · 🇨🇳 zh-CN · 🇯🇵 ja · 🇰🇷 ko · 🇸🇦 ar · 🇮🇳 hi · 🇮🇳 in · 🇹🇭 th · 🇻🇳 vi · 🇮🇩 id · 🇲🇾 ms · 🇳🇱 nl · 🇵🇱 pl · 🇸🇪 sv · 🇳🇴 no · 🇩🇰 da · 🇫🇮 fi · 🇵🇹 pt · 🇷🇴 ro · 🇭🇺 hu · 🇧🇬 bg · 🇸🇰 sk · 🇺🇦 uk-UA · 🇮🇱 he · 🇵🇭 phi · 🇧🇷 pt-BR · 🇨🇿 cs · 🇹🇷 tr


Never stop coding. Smart routing to FREE & low-cost AI models with automatic fallback.

Universaali API-välityspalvelin yksi päätepiste, yli 60 palveluntarjoajaa, nolla seisokkiaikaa. Nyt mukanaMCP-palvelin (25 työkalua),A2A-protokolla,muisti/taitojärjestelmätjaelectron-työpöytäsovellus.

Pikaviestien loppuun saattaminen • upotukset • kuvien luonti • video • musiikki • ääni • uudelleensijoitus •verkkohaku• MCP-palvelin • A2A-protokolla • 100 % TypeScript---

🌐Saatavilla:🇺🇸 Englanti | 🇧🇷 Português (Brasilia) | 🇪🇸 Español | 🇫🇷 Français | 🇮🇹 Italiano | 🇷🇺 Русский | 🇨🇳 中文 (简体) | 🇩🇪 Deutsch | 🇮🇳 हिन्दी | 🇹🇭 ไทย | 🇺🇦 Українська | 🇸🇦 العربية | 🇯🇵 日本語 | 🇻🇳 Tiếng Việt | 🇧🇬 Български | 🇩🇰 Tanska | 🇫🇮 Suomi | 🇮🇱 עברית | 🇭🇺 Magyar | 🇮🇩 Bahasa Indonesia | 🇰🇷 한국어 | 🇲🇾 Bahasa Melayu | 🇳🇱 Nederlands | 🇳🇴 Norsk | 🇵🇹 Português (Portugali) | 🇷🇴 Română | 🇵🇱 Polski | 🇸🇰 Slovenčina | 🇸🇪 Svenska | 🇵🇭 filipino | 🇨🇿 Čeština---

🖼️ Main Dashboard

OmniRoute Dashboard

📸 Dashboard Preview

Napsauta nähdäksesi hallintapaneelin kuvakaappaukset
Sivu Kuvakaappaus
Tarjoajat Providers
Yhdistelmät Combos
Analytics Analytics
Terveys Terveys
Kääntäjä Kääntäjä
Asetukset Asetukset
CLI-työkalut CLI-työkalut
Käyttölokit Käyttö
Päätepisteet Päätepisteet

🤖 Free AI Provider for your favorite coding agents

Yhdistä mikä tahansa tekoälyllä toimiva IDE- tai CLI-työkalu OmniRouten kautta ilmainen API-yhdyskäytävä rajoittamattomaan koodaukseen.

OpenClaw
OpenClaw

205 000 NanoBot
NanoBot

20,9 kt PicoClaw
PicoClaw

14,6 kt ZeroClaw
ZeroClaw

9,9 kt IronClaw
IronClaw

2,1 kt Avoin koodi
OpenCode

106 kt Codex CLI
Codex CLI

60,8 kt Claude Code
Claude Code

67,3 kt Gemini CLI
Gemini CLI

94,7 kt Kilokoodi
Kilo-koodi

15,5 tk

📡 Kaikki agentit muodostavat yhteyden http://localhost:20128/v1 tai http://cloud.omniroute.online/v1 kautta yksi kokoonpano, rajattomasti malleja ja kiintiö---

🤔 Why OmniRoute?

Lopeta rahan tuhlaaminen ja rajojen ylittäminen:

  • Tilauskiintiö vanhenee käyttämättä joka kuukausi
  • Hintarajoitukset estävät sinua koodaamasta puolivälissä
  • kalliita sovellusliittymiä (20-50 $/kk per tarjoaja)
  • Manuaalinen vaihtaminen palveluntarjoajien välillä

OmniRoute ratkaisee tämän:

  • Maksimoi tilaukset- Seuraa kiintiötä, käytä jokainen bitti ennen nollausta
  • Automaattinen palautus- Tilaus → API-avain → Halpa → Ilmainen, nolla seisonta-aikaa
  • Moni tili- Pyöreä haku tilien välillä per palveluntarjoaja
  • Universaali- Toimii Claude Coden, Codexin, Gemini CLI:n, Cursorin, Clinen, OpenClawin ja minkä tahansa CLI-työkalun kanssa---

📧 Support

💬Liity yhteisöömme!WhatsApp Group — Hanki apua, jaa vinkkejä ja pysy ajan tasalla.

-Verkkosivusto: omniroute.online -GitHub: github.com/diegosouzapw/OmniRoute -Ongelmat: github.com/diegosouzapw/OmniRoute/issues -WhatsApp: yhteisöryhmä -Osallistuminen: Katso CONTRIBUTING.md, avaa PR tai valitse "hyvä ensimmäinen numero". -Alkuperäinen projekti: 9router by decolua### 🐛 Reporting a Bug?

Kun avaat ongelman, suorita system-info-komento ja liitä luotu tiedosto:```bash npm run system-info


Tämä luo `system-info.txt-tiedoston, joka sisältää Node.js-versiosi, OmniRoute-versiosi, käyttöjärjestelmän tiedot, asennetut CLI-työkalut (qoder, gemini, claude, codex, antigravity, droidi jne.), Docker/PM2-tilan ja järjestelmäpaketit  kaikki mitä tarvitsemme ongelmasi nopeaan toistamiseen. Liitä tiedosto suoraan GitHub-ongelmaasi.---

## 🔄 How It Works

┌─────────────┐ │ Your CLI │ (Claude Code, Codex, Gemini CLI, OpenClaw, Cursor, Cline...) │ Tool │ └──────┬──────┘ │ http://localhost:20128/v1 ↓ ┌─────────────────────────────────────────┐ │ OmniRoute (Smart Router) │ │ • Format translation (OpenAI ↔ Claude) │ │ • Quota tracking + Embeddings + Images │ │ • Auto token refresh │ └──────┬──────────────────────────────────┘ │ ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex, Gemini CLI │ ↓ quota exhausted ├─→ [Tier 2: API KEY] DeepSeek, Groq, xAI, Mistral, NVIDIA NIM, etc. │ ↓ budget limit ├─→ [Tier 3: CHEAP] GLM ($0.6/1M), MiniMax ($0.2/1M) │ ↓ budget limit └─→ [Tier 4: FREE] Qoder, Qwen, Kiro (unlimited)

Result: Never stop coding, minimal cost


---

## 🎯 What OmniRoute Solves — 30 Real Pain Points & Use Cases

>**Jokainen tekoälytyökaluja käyttävä kehittäjä kohtaa nämä ongelmat päivittäin.**OmniRoute luotiin ratkaisemaan ne kaikki  kustannusten ylityksistä alueellisiin lohkoihin, rikkinäisistä OAuth-virroista protokollatoimintoihin ja yrityksen havainnointikykyyn.

<tiedot>
<summary><b>💸 1. "Maksan kalliista tilauksesta, mutta silti rajoitukset häiritsevät minua"</b></summary>

Kehittäjät maksavat 20200 dollaria kuukaudessa Claude Prosta, Codex Prosta tai GitHub Copilotista. Maksamallakin kiintiöllä on katto  5 tuntia käyttöä, viikkorajat tai minuuttirajoitukset. Koodausistunnon puolivälissä palveluntarjoaja lakkaa vastaamasta ja kehittäjä menettää virtauksen ja tuottavuuden.

**Kuinka OmniRoute ratkaisee sen:**

-**Smart 4-Tier Fallback**— Jos tilauskiintiö loppuu, ohjataan automaattisesti kohtaan API-avain → Halpa → Ilmainen ilman manuaalista toimenpiteitä
-**Provider Limits Tracking** Välimuistissa olevat kiintiön tilannevedokset päivittyvät palvelinpuolen aikataulun mukaan (oletus `PROVIDER_LIMITS_SYNC_INTERVAL_MINUTES=70`), ja manuaalinen päivitys on saatavilla käyttöliittymässä
-**Useiden tilien tuki**— Useita tilejä palveluntarjoajaa kohden automaattisella kierrätyksellä — kun yksi loppuu, vaihtuu seuraavaan
-**Muokatut yhdistelmät**— Muokattavat varaketjut, joissa on 9 tasapainotusstrategiaa (prioriteetti, painotettu, täytä ensin, round-robin, P2C, satunnainen, vähiten käytetty, kustannusoptimoitu, tiukasti satunnainen)
-**Codex Business Quotat**— Yritysten/Tiimien työtilan kiintiöiden valvonta suoraan kojelaudassa</details>

<tiedot>
<summary><b>🔌 2. "Minun täytyy käyttää useita palveluntarjoajia, mutta jokaisella on eri sovellusliittymä"</b></summary>

OpenAI käyttää yhtä muotoa, Claude (Anthropic) käyttää toista, Gemini vielä toista. Jos kehittäjä haluaa testata eri palveluntarjoajien malleja tai vaihtoehtoja niiden välillä, hänen on määritettävä SDK:t uudelleen, muutettava päätepisteitä ja käsiteltävä yhteensopimattomia muotoja. Mukautetuilla palveluntarjoajilla (FriendLI, NIM) on mallista poikkeavat päätepisteet.

**Kuinka OmniRoute ratkaisee sen:**

-**Unified Endpoint**— Yksi "http://localhost:20128/v1" toimii välityspalvelimena kaikille yli 60 palveluntarjoajalle
-**Format Translation**- Automaattinen ja läpinäkyvä: OpenAI ↔ Claude ↔ Gemini ↔ Responses API
-**Response Sanitization** Poistaa standardista poikkeavat kentät (`x_groq`, `usage_breakdown`, `service_tier`), jotka rikkovat OpenAI SDK v1.83+:n
-**Roolin normalisointi**— Muuntaa "kehittäjä" → "järjestelmä" muille kuin OpenAI-palveluntarjoajille; "järjestelmä" → "käyttäjä" GLM:lle/ERNIE:lle
-**Think Tag Extraction** Purkaa "<think>"-lohkot malleista, kuten DeepSeek R1, standardoituun "reasoning_content" -sisältöön
-**Structured Output for Gemini**— `json_schema` → `responseMimeType`/`responseSchema` automaattinen muunnos
-**"stream" oletusarvo on "false"**- yhdenmukaistuu OpenAI-spesifikaatioiden kanssa välttäen odottamattoman SSE:n Python/Rust/Go SDK:issa</details>

<tiedot>
<summary><b>🌐 3. "Tekoälypalveluntarjoajani estää alueeni/maani"</b></summary>

Palveluntarjoajat, kuten OpenAI/Codex, estävät pääsyn tietyiltä maantieteellisiltä alueilta. Käyttäjät saavat virheitä, kuten "unsupported_country_region_territory" OAuth- ja API-yhteyksien aikana. Tämä on erityisen turhauttavaa kehitysmaiden kehittäjille.

**Kuinka OmniRoute ratkaisee sen:**

-**3-tason välityspalvelimen määritys** Muokattava välityspalvelin kolmella tasolla: yleinen (kaikki liikenne), palveluntarjoajakohtainen (vain yksi palveluntarjoaja) ja yhteys/avain
-**Värikoodatut välityspalvelinmerkit**— Visuaaliset ilmaisimet: 🟢 maailmanlaajuinen välityspalvelin, 🟡 tarjoajan välityspalvelin, 🔵 yhteysvälityspalvelin, joka näyttää aina IP-osoitteen
-**OAuth-tunnusten vaihto välityspalvelimen kautta**— OAuth-kulku kulkee myös välityspalvelimen kautta ja ratkaisee "unsupported_country_region_territory"
-**Yhteystestit välityspalvelimen kautta**- Yhteystestit käyttävät määritettyä välityspalvelinta (ei enää suoraa ohitusta)
-**SOCKS5-tuki**— Täysi SOCKS5-välityspalvelintuki lähtevään reititykseen
-**TLS-sormenjälkien huijaus**— Selaimen kaltainen TLS-sormenjälki wreq-js:n kautta botin tunnistuksen ohittamiseksi
-**🔏 CLI Fingerprint Matching** Järjestää otsikot ja tekstikentät uudelleen vastaamaan alkuperäisiä CLI-binääriallekirjoituksia, mikä vähentää merkittävästi tilin ilmoittamisriskiä. Välityspalvelimen IP-osoite säilyy  saat sekä salaperäisen**- että**IP-peitetyksen samanaikaisesti</details>

<tiedot>
<summary><b>🆓 4. "Haluan käyttää tekoälyä koodaukseen, mutta minulla ei ole rahaa"</b></summary>

Kaikki eivät voi maksaa 20200 dollaria kuukaudessa tekoälytilauksista. Opiskelijat, kehittäjät nousevista maista, harrastajat ja freelancerit tarvitsevat pääsyn laadukkaisiin malleihin ilman kustannuksia.

**Kuinka OmniRoute ratkaisee sen:**

-**Free Tier Providers -sisäänrakennettu**— Natiivituki 100 % ilmaisille palveluntarjoajille: Qoder (5 rajoittamatonta mallia OAuthin kautta: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited3 mallia) qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID ilmaiseksi), Gemini CLI (180 000 tokenia / kuukausi ilmaiseksi)
-**Ollama Cloud**— pilvissä isännöimät Ollama-mallit osoitteessa `api.ollama.com` ilmaisella "kevytkäyttö"-tasolla; käytä `ollamacloud/<malli>-etuliitettä
-**Vain ilmaiset yhdistelmät**— Ketju `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = 0 $/kk ilman seisokkeja
-**NVIDIA NIM Free Access**- ~40 RPM:n kehittäjä - ikuisesti ilmainen pääsy yli 70 malliin osoitteessa build.nvidia.com (siirrytään hyvityksistä puhtaisiin hintarajoihin)
-**Kustannusoptimoitu strategia**— Reititysstrategia, joka valitsee automaattisesti halvimman saatavilla olevan palveluntarjoajan</details>

<tiedot>
<summary><b>🔒 5. "Minun täytyy suojata tekoälyyhdyskäytävääni luvattomalta käytöltä"</b></summary>

Kun paljastat tekoälyyhdyskäytävän verkkoon (LAN, VPS, Docker), kuka tahansa osoitteen tietävä voi kuluttaa kehittäjän tunnukset/kiintiöt. Ilman suojaa API:t ovat alttiita väärinkäytölle, nopealle injektiolle ja väärinkäytöksille.

**Kuinka OmniRoute ratkaisee sen:**

-**API-avainten hallinta** Luominen, kierto ja laajuus palveluntarjoajan mukaan erillisellä /dashboard/api-manager-sivulla
-**Mallitason käyttöoikeudet** Rajoita API-avaimet tiettyihin malleihin ('openai/*', jokerimerkkimallit) Salli kaikki/Rajoita -kytkimellä
-**Sovellusliittymän päätepistesuojaus** vaadi avainta /v1/modelsille ja estä tietyt palveluntarjoajat luettelosta
-**Auth Guard + CSRF-suojaus**— Kaikki kojelaudan reitit on suojattu "withAuth"-väliohjelmistolla + CSRF-tunnuksilla
-**Rate Limiter**— IP-nopeuden rajoitus konfiguroitavilla ikkunoilla
-**IP-suodatus**— Pääsynhallinnan sallittu-/estolista
-**Prompt Injection Guard**— Desinfiointi haitallisia kehotusmalleja vastaan
-**AES-256-GCM Encryption**— Tunnistetiedot on salattu lepotilassa</details>

<tiedot>
<summary><b>🛑 6. "Palvelajani kaatui ja menetin koodauskulkuni"</b></summary>

Tekoälypalveluntarjoajat voivat muuttua epävakaiksi, palauttaa 5xx-virheitä tai saavuttaa väliaikaiset nopeusrajoitukset. Jos kehittäjä on riippuvainen yhdestä palveluntarjoajasta, se keskeytyy. Ilman katkaisijoita toistuvat uudelleenyritykset voivat kaataa sovelluksen.

**Kuinka OmniRoute ratkaisee sen:**

-**Malleittainen katkaisija**- Automaattinen avautuminen/sulkeminen konfiguroitavilla kynnyksillä ja jäähdytys (suljettu/auki/puoliauki), mallikohtainen, jotta vältetään peräkkäiset lohkot
-**Eksponentiaalinen peruutus**— Progressiiviset uudelleenyritysviiveet
-**Anti-Thundering Herd**— Mutex + semaforisuoja samanaikaisia myrskyjä vastaan
-**Yhdistelmävaraketjut** Jos ensisijainen toimittaja epäonnistuu, putoaa automaattisesti ketjun läpi ilman väliintuloa
-**Combo Circuit Breaker**— Poistaa automaattisesti käytöstä vialliset palveluntarjoajat yhdistelmäketjussa
-**Health Dashboard**— käytettävyyden valvonta, katkaisijoiden tilat, lukitukset, välimuistitilastot, p50/p95/p99-viive</details>

<tiedot>
<summary><b>🔧 7. "Jokaisen tekoälytyökalun määrittäminen on työlästä ja toistuvaa"</b></summary>

Kehittäjät käyttävät kursoria, Claude Codea, Codex CLI:tä, OpenClaw:ta, Gemini CLI:tä, Kilo Codea... Jokainen työkalu tarvitsee eri konfiguraation (API-päätepiste, avain, malli). Uudelleenmääritys toimittajaa tai mallia vaihdettaessa on ajanhukkaa.

**Kuinka OmniRoute ratkaisee sen:**

-**CLI Tools Dashboard**- Erillinen sivu yhdellä napsautuksella Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline
-**GitHub Copilot Config Generator**— Luo chatLanguageModels.json-tiedoston VS-koodille joukkomallin valinnalla
-**Ohjattu käyttöönottotoiminto**— Ohjattu 4-vaiheinen asennus ensikertalaisille
-**Yksi päätepiste, kaikki mallit**- Määritä "http://localhost:20128/v1" kerran, käytä yli 60 palveluntarjoajaa</details>

<tiedot>
<summary><b>🔑 8. "Useiden palveluntarjoajien OAuth-tunnusten hallinta on helvettiä"</b></summary>

Claude Code, Codex, Gemini CLI, Copilot  kaikki käyttävät OAuth 2.0:aa vanhentuvilla tunnuksilla. Kehittäjien täytyy todentaa jatkuvasti uudelleen, käsitellä "asiakassalaisuus puuttuu", "redirect_uri_mismatch" ja etäpalvelimien vikoja. OAuth LAN/VPS:ssä on erityisen ongelmallinen.

**Kuinka OmniRoute ratkaisee sen:**

-**Automaattinen tunnuksen päivitys**- OAuth-tunnukset päivittyvät taustalla ennen vanhenemista
-**Sisäänrakennettu OAuth 2.0 (PKCE)**- Automaattinen kulku Claude Codelle, Codexille, Gemini CLI:lle, Copilotille, Kirolle, Qwenille, Qoderille
-**Multi-Account OAuth**- Useita tilejä palveluntarjoajaa kohden JWT/ID-tunnuksen purkamisen kautta
-**OAuth LAN/Remote Fix**- Yksityinen IP-tunnistus `redirect_uri':lle + manuaalinen URL-tila etäpalvelimille
-**OAuth Nginxin takana**- Käyttää "window.location.origin" käänteisen välityspalvelimen yhteensopivuutta varten
-**OAuth-etäopas**— Vaiheittainen opas Google Cloud -kirjautumistiedoille VPS/Dockerissa</details>

<tiedot>
<summary><b>📊 9. "En tiedä kuinka paljon kulutan tai minne"</b></summary>

Kehittäjät käyttävät useita maksullisia palveluntarjoajia, mutta heillä ei ole yhtenäistä näkemystä kuluttamisesta. Jokaisella palveluntarjoajalla on oma laskutuksen hallintapaneeli, mutta yhdistettyä näkymää ei ole. Odottamattomat kustannukset voivat kasaantua.

**Kuinka OmniRoute ratkaisee sen:**

-**Cost Analytics Dashboard** Token-kohtainen kustannusseuranta ja budjetin hallinta palveluntarjoajakohtaisesti
-**Tasokohtaiset budjettirajat** Tasokohtainen kulutuskatto, joka laukaisee automaattisen varauksen
-**Malleittainen hinnoittelu**— Muokattavat hinnat mallikohtaisesti
-**Käyttötilastot API-avainta kohti**— Pyyntömäärä ja viimeksi käytetty aikaleima avainta kohti
-**Analytics Dashboard**- Tilastokortit, mallin käyttökaavio, toimittajataulukko onnistumisprosenteilla ja viiveellä</details>

<tiedot>
<summary><b>🐛 10. "En pysty diagnosoimaan tekoälypuhelujen virheitä ja ongelmia"</b></summary>

Kun puhelu epäonnistuu, kehittäjä ei tiedä, oliko kyseessä nopeusrajoitus, vanhentunut tunnus, väärä muoto vai palveluntarjoajan virhe. Sirpaloituneet lokit eri terminaaleissa. Ilman havaittavuutta virheenkorjaus on yrityksen ja erehdysten menetelmää.

**Kuinka OmniRoute ratkaisee sen:**

-**Yhdistettyjen lokien hallintapaneeli**- 4 välilehteä: pyyntölokit, välityspalvelimen lokit, tarkastuslokit, konsoli
-**Console Log Viewer**- Reaaliaikainen päätetyylinen katseluohjelma värikoodatuilla tasoilla, automaattinen vieritys, haku, suodatin
-**SQLite-välityspalvelimen lokit**— Pysyvät lokit, jotka kestävät palvelimen uudelleenkäynnistyksen
-**Kääntäjän leikkikenttä**— 4 virheenkorjaustilaa: Playground (muodon käännös), Chat Tester (meno-paluu), testipenkki (erä), Live Monitor (reaaliaikainen)
-**Pyyntötelemetria**— p50/p95/p99-latenssi + X-Request-Id-seuranta
-**Tiedostopohjainen kirjaaminen rotaatiolla** Sovelluslokit pyörivät koon, säilytyspäivien ja arkiston määrän mukaan; puhelulokin artefaktit kiertävät säilytyspäivien ja tiedostojen määrän mukaan
-**Järjestelmätietoraportti**— `npm run system-info` luo `system-info.txt-tiedoston koko ympäristössäsi (solmuversio, OmniRoute-versio, käyttöjärjestelmä, CLI-työkalut, Docker/PM2-tila). Liitä se, kun ilmoitat ongelmista välittömässä triagessa.</details>

<tiedot>
<summary><b>🏗️ 11. "Yhdyskäytävän käyttöönotto ja ylläpito on monimutkaista"</b></summary>

AI-välityspalvelimen asentaminen, määrittäminen ja ylläpito eri ympäristöissä (paikallinen, VPS, Docker, pilvi) on työvoimavaltaista. Ongelmat, kuten kovakoodatut polut, 'EACCES' hakemistoissa, porttiristiriidat ja cross-platform buildit lisäävät kitkaa.

**Kuinka OmniRoute ratkaisee sen:**

-**npm globaali asennus**— `npm install -g omniroute && omniroute` — valmis
-**Docker Multi-Platform**- AMD64 + ARM64 natiivi (Apple Silicon, AWS Graviton, Raspberry Pi)
-**Docker Compose -profiilit**— "base" (ei CLI-työkaluja) ja "cli" (Claude Coden, Codexin, OpenClawn kanssa)
-**Electron Desktop App**- Natiivisovellus Windowsille/macOS:lle/Linuxille, jossa ilmaisinalue, automaattinen käynnistys, offline-tila
-**Split-Port Mode**— API ja Dashboard erillisissä porteissa edistyneille skenaarioille (käänteinen välityspalvelin, konttiverkko)
-**Cloud Sync**- Määritä synkronointi laitteiden välillä Cloudflare Workersin kautta
-**DB-varmuuskopiot**— Kaikkien asetusten automaattinen varmuuskopiointi, palautus, vienti ja tuonti DISABLE_SQLITE_AUTO_BACKUP-toiminnolla ulkoisesti hallituille varmuuskopioille</details>

<tiedot>
<summary><b>🌍 12. "Käyttöliittymä on vain englanninkielinen ja tiimini ei puhu englantia"</b></summary>

Ryhmät muissa kuin englanninkielisissä maissa, erityisesti Latinalaisessa Amerikassa, Aasiassa ja Euroopassa, kamppailevat vain englanninkielisten käyttöliittymien kanssa. Kielimuurit vähentävät käyttöönottoa ja lisäävät konfigurointivirheitä.

**Kuinka OmniRoute ratkaisee sen:**

-**Dashboard i18n — 30 kieltä**— Kaikki yli 500 näppäintä käännetty mukaan lukien arabia, bulgaria, tanska, saksa, espanja, suomi, ranska, heprea, hindi, unkari, indonesia, italia, japani, korea, malaiji, hollanti, norja, puola, portugali (PT/BR), romania, thai, venäjä, ukraina, slovakki, ruotsi, englanti
-**RTL-tuki**— Tuki oikealta vasemmalle arabian ja heprean kielelle
-**Multi-Language READMEs**- 30 täydellistä dokumentaation käännöstä
-**Kielen valitsin**— Maapallokuvake otsikossa reaaliaikaista vaihtoa varten</details>

<tiedot>
<summary><b>🔄 13. "Tarvitsen muutakin kuin chatin  tarvitsen upotuksia, kuvia, ääntä"</b></summary>

Tekoäly ei ole vain chatin loppuun saattamista. Kehittäjien on luotava kuvia, litteroitava ääni, luotava upotuksia RAG:lle, järjestettävä asiakirjat uudelleen ja valvottava sisältöä. Jokaisella API:lla on eri päätepiste ja muoto.

**Kuinka OmniRoute ratkaisee sen:**

-**Upotukset**— `/v1/embeddings` kuudella palveluntarjoajalla ja 9+ mallilla
-**Image Generation**— `/v1/images/generations` 10 tarjoajalla ja 20+ mallilla (OpenAI, xAI, Together, Fireworks, Nebius, Hyperbolic, NanoBanana, Antigravity, SD WebUI, ComfyUI)
-**Tekstistä videoon**— `/v1/videos/generations` — ComfyUI (AnimateDiff, SVD) ja SD WebUI
-**Text-to-Music**— `/v1/music/generations` — ComfyUI (Stable Audio Open, MusicGen)
-**Äänitranskriptio**— `/v1/audio/transcriptions` — Whisper + Nvidia NIM, HuggingFace, Qwen3
-**Tekstistä puheeksi**— `/v1/audio/speech` — ElevenLabs, Nvidia NIM, HuggingFace, Coqui, Tortoise, Qwen3,**Inworld**,**Cartesia**,**PlayHT**ja olemassa olevat palveluntarjoajat
-**Moderations**— `/v1/moderations` — Sisällön turvallisuustarkastukset
-**Uudelleensijoitus**— `/v1/rerank` — Asiakirjan relevanssin uudelleensijoitus
-**Responses API**- Täysi `/v1/responses` -tuki Codexille</details>

<tiedot>
<summary><b>🧪 14. "Minulla ei ole mahdollisuutta testata ja vertailla eri mallien laatua"</b></summary>

Kehittäjät haluavat tietää, mikä malli sopii parhaiten heidän käyttötapaukseensa  koodi, käännös, päättely  mutta manuaalinen vertailu on hidasta. Integroituja arviointityökaluja ei ole olemassa.

**Kuinka OmniRoute ratkaisee sen:**

-**LLM-arvioinnit**— Golden set -testaus 10 esiladatulla kotelolla, jotka kattavat tervehdyksen, matematiikan, maantieteen, koodin luomisen, JSON-yhteensopivuuden, käännöksen, merkinnän, turvallisuuden kieltämisen
-**4 vastaavuusstrategiaa**— "tarkka", "sisältää", "säännöllinen lauseke", "muokattu" (JS-funktio)
-**Translator Playground Test Bench**- Erätestaus useilla tuloilla ja odotetulla lähdöllä, tarjoajien välinen vertailu
-**Chat Tester**- Täysi edestakainen matka visuaalisen vasteen renderöinnillä
-**Live Monitor**— Reaaliaikainen tietovirta kaikista välityspalvelimen kautta kulkevista pyynnöistä</details>

<tiedot>
<summary><b>📈 15. "Minun täytyy skaalata suorituskykyä menettämättä"</b></summary>

Pyynnön määrän kasvaessa samat kysymykset aiheuttavat päällekkäisiä kustannuksia välimuistiin tallentamatta. Ilman idempotenssia kaksoiskappaleet pyytävät jätteenkäsittelyä. Palveluntarjoajakohtaisia hintarajoja on noudatettava.

**Kuinka OmniRoute ratkaisee sen:**

-**Semanttinen välimuisti** Kaksitasoinen välimuisti (allekirjoitus + semanttinen) vähentää kustannuksia ja viivettä
-**Request Idempotency**— 5 sekunnin deduplikaatioikkuna identtisille pyynnöille
-**nopeusrajoituksen tunnistus** palveluntarjoajakohtainen RPM, pienin väli ja suurin samanaikainen seuranta
-**Muokattavat nopeusrajoitukset**- Määritettävissä olevat oletusasetukset kohdassa Asetukset → Resilience with persistence
-**API Key Validation Cache** 3-tasoinen välimuisti tuotannon suorituskykyä varten
-**Health Dashboard telemetrialla**- p50/p95/p99 latenssi, välimuistitilastot, käyttöaika</details>

<tiedot>
<summary><b>🤖 16. "Haluan hallita mallien käyttäytymistä maailmanlaajuisesti"</b></summary>

Kehittäjät, jotka haluavat kaikki vastaukset tietyllä kielellä, tietyllä sävyllä tai haluavat rajoittaa perusteluita. Tämän määrittäminen jokaiseen työkaluun/pyyntöön on epäkäytännöllistä.

**Kuinka OmniRoute ratkaisee sen:**

-**Järjestelmäkehotteen lisäys**— Yleinen kehote koskee kaikkia pyyntöjä
-**Thinking Budget Validation** perustelutunnisteen allokoinnin ohjaus pyyntöä kohti (läpivienti, automaattinen, mukautettu, mukautuva)
-**9 reititysstrategiaa**— Globaalit strategiat, jotka määrittävät pyyntöjen jakautumisen
-**Wildcard Router**- "palveluntarjoaja/*" -mallit reitittävät dynaamisesti mille tahansa palveluntarjoajalle
-**Yhdistelmä käyttöön/pois käytöstä**- Vaihda yhdistelmät suoraan kojelaudalta
-**Provider Toggle**— Ota käyttöön tai poista käytöstä kaikki palveluntarjoajan yhteydet yhdellä napsautuksella
-**Estetyt palveluntarjoajat**- Sulje pois tietyt palveluntarjoajat /v1/models-luettelosta</details>

<tiedot>
<summary><b>🧰 17. "Tarvitsen MCP-työkaluja ensiluokkaisina tuoteominaisuuksina"</b></summary>

Monet tekoälyyhdyskäytävät paljastavat MCP:n vain piilotettuna toteutustietona. Tiimit tarvitsevat näkyvän, hallittavan toimintakerroksen.

**Kuinka OmniRoute ratkaisee sen:**

- MCP näkyy kojelaudan navigointi- ja päätepisteprotokolla-välilehdessä
- Erillinen MCP-hallintasivu, jossa on prosessit, työkalut, laajuudet ja tarkastus
- Sisäänrakennettu pikakäynnistys omniroute --mcp:lle ja asiakkaan käyttöönottoon</details>

<tiedot>
<summary><b>🧠 18. "Tarvitsen A2A-orkesterin synkronointi- ja stream-tehtäväpoluilla"</b></summary>

Agenttityönkulut tarvitsevat sekä suoria vastauksia että pitkäkestoista suoratoistoa elinkaariohjauksella.

**Kuinka OmniRoute ratkaisee sen:**

- A2A JSON-RPC -päätepiste ("POST /a2a") ja "message/send" ja "message/stream"
- SSE-suoratoisto päätetilan etenemisellä
- Tehtävien elinkaaren sovellusliittymät tehtäville/get- ja tasks/cancel</details>

<tiedot>
<summary><b>🛰️ 19. "Tarvitsen todellista MCP-prosessin kuntoa, en arvattua tilaa"</b></summary>

Operatiivisten tiimien on tiedettävä, onko MCP todella elossa, ei vain sitä, onko API tavoitettavissa.

**Kuinka OmniRoute ratkaisee sen:**

- Ajonaikainen syketiedosto, jossa on PID, aikaleimat, kuljetus, työkalujen määrä ja laajuustila
- MCP-tilan API, joka yhdistää sykkeen + viimeaikaisen toiminnan
- Käyttöliittymän tilakortit prosessin / käytettävyyden / sydämenlyöntien tuoreudelle</details>

<tiedot>
<summary><b>📋 20. "Tarvitsen tarkastettavan MCP-työkalun suorittamisen"</b></summary>

Kun työkalut muuttavat määrityksiä tai käynnistävät operaatioita, tiimit tarvitsevat rikosteknistä jäljitettävyyttä.

**Kuinka OmniRoute ratkaisee sen:**

- SQLite-tuettu tarkastusloki MCP-työkalukutsuille
- Suodattimet työkalun, onnistumisen/epäonnistumisen, API-avaimen ja sivutuksen mukaan
- Kojelaudan tarkastustaulukko + tilastopäätepisteet automatisointia varten</details>

<tiedot>
<summary><b>🔐 21. "Tarvitsen laajennettuja MCP-oikeuksia integraatiota kohti"</b></summary>

Eri asiakkailla tulisi olla vähiten käyttöoikeus työkaluluokkiin.

**Kuinka OmniRoute ratkaisee sen:**

- 10 rakeista MCP-skooppia ohjattua työkalujen käyttöä varten
- Laajuuden valvonta ja näkyvyys MCP-hallintaliittymässä
- Turvallinen oletusasento käyttötyökaluille</details>

<tiedot>
<summary><b>⚙️ 22. "Tarvitsen toiminnanohjausta ilman uudelleensijoittamista"</b></summary>

Tiimit tarvitsevat nopeita ajonaikaisia muutoksia tapausten tai kustannustapahtumien aikana.

**Kuinka OmniRoute ratkaisee sen:**

- Vaihda yhdistelmäaktivointia suoraan MCP-kojelaudalta
- Käytä joustavuusprofiileja ennalta määritetyistä käytäntöpaketeista
- Nollaa katkaisijan tila samasta käyttöpaneelista</details>

<tiedot>
<summary><b>🔄 23. "Tarvitsen live-A2A-tehtävän elinkaaren näkyvyyden ja peruutuksen"</b></summary>

Ilman elinkaaren näkyvyyttä tehtäväkohtauksista tulee vaikeasti luokiteltuja.

**Kuinka OmniRoute ratkaisee sen:**

- Tehtäväluettelo / suodatus tilan / taitojen mukaan ja sivutus
- Tehtävän metatietojen, tapahtumien ja artefaktien yksityiskohdat
- Tehtävän peruutuksen päätepiste ja käyttöliittymätoiminto vahvistuksen kanssa</details>

<tiedot>
<summary><b>🌊 24. "Tarvitsen aktiivisia suoratoistotietoja A2A-kuormitukseen"</b></summary>

Streaming-työnkulut edellyttävät toiminnallista tietoa samanaikaisuudesta ja reaaliaikaisista yhteyksistä.

**Kuinka OmniRoute ratkaisee sen:**

- Aktiiviset virtalaskurit integroitu A2A-tilaan
- Viimeisen tehtävän aikaleima ja tilakohtaiset määrät
- A2A kojelautakortit reaaliaikaiseen toimintojen seurantaan</details>

<tiedot>
<summary><b>🪪 25. "Tarvitsen asiakkaille tavallisen agenttihaun"</b></summary>

Ulkoiset asiakkaat ja orkesterit tarvitsevat koneellisesti luettavaa metadataa käyttöönottoa varten.

**Kuinka OmniRoute ratkaisee sen:**

- Agenttikortti esillä osoitteessa `/.well-known/agent.json'
- Johdon käyttöliittymässä näkyvät valmiudet ja taidot
- A2A status API sisältää etsintämetatiedot automatisointia varten</details>

<tiedot>
<summary><b>🧭 26. "Tarvitsen protokollan löydettävyyden tuotteen käyttökokemuksessa"</b></summary>

Jos käyttäjät eivät löydä protokollapintoja, käyttöönoton ja tuen laatu heikkenee.

**Kuinka OmniRoute ratkaisee sen:**

- Yhdistetty**Päätepisteet**-sivu, jossa on välilehdet välityspalvelin-, MCP-, A2A- ja API-päätepisteille
- Inline-palvelun tila vaihtuu (Online/Offline) MCP:lle ja A2A:lle
- Linkit yleiskatsauksesta erityisiin hallintavälilehtiin</details>

<tiedot>
<summary><b>🧪 27. "Tarvitsen päästä päähän -protokollan validoinnin oikeiden asiakkaiden kanssa"</b></summary>

Valetestit eivät riitä vahvistamaan protokollan yhteensopivuutta ennen julkaisua.

**Kuinka OmniRoute ratkaisee sen:**

- E2E-paketti, joka käynnistää sovelluksen ja käyttää todellista MCP SDK -asiakassiirtoa
- A2A-asiakas testaa virtojen löytämistä, lähettämistä, suoratoistoa, vastaanottamista ja peruuttamista
- Tarkista väitteet MCP-tarkastuksen ja A2A-tehtävien sovellusliittymien kanssa</details>

<tiedot>
<summary><b>📡 28. "Tarvitsen yhtenäisen havaittavuuden kaikissa käyttöliittymissä"</b></summary>

Havainnon jakaminen protokollan mukaan luo kuolleita kulmia ja pidemmän MTTR:n.

**Kuinka OmniRoute ratkaisee sen:**

- Yhdistetyt kojelaudat/lokit/analytiikka yhdessä tuotteessa
- Terveys + auditointi + pyyntö telemetria OpenAI-, MCP- ja A2A-tasoilla
- Toiminnalliset sovellusliittymät tilaa ja automaatiota varten</details>

<tiedot>
<summary><b>💼 29. "Tarvitsen yhden suoritusajan välityspalvelimelle + työkaluille + agentin orkestraatiolle"</b></summary>

Useiden erillisten palvelujen suorittaminen lisää käyttökustannuksia ja vikatiloja.

**Kuinka OmniRoute ratkaisee sen:**

- OpenAI-yhteensopiva välityspalvelin, MCP-palvelin ja A2A-palvelin yhdessä pinossa
- Jaettu todennus, joustavuus, tietovarasto ja havaittavuus
- Yhdenmukainen toimintamalli kaikilla vuorovaikutuspinnoilla</details>

<tiedot>
<summary><b>🚀 30. "Minun on lähetettävä agenttityönkulkuja ilman liimakoodin leviämistä"</b></summary>

Tiimit menettävät nopeutta yhdistäessään useita ad-hoc-palveluita ja skriptejä.

**Kuinka OmniRoute ratkaisee sen:**

- Yhtenäinen päätepistestrategia asiakkaille ja edustajille
- Sisäänrakennetut protokollien hallinnan käyttöliittymät ja savun vahvistuspolut
- Tuotantovalmis perusta (turvallisuus, puunkorjuu, joustavuus, varmuuskopiointi)</details>

### Example Playbooks (Integrated Use Cases)

**Ohjekirja A: maksimoi maksullinen tilaus + halpa varmuuskopio**```txt
Combo: "maximize-claude"
  1. cc/claude-opus-4-6
  2. glm/glm-4.7
  3. if/kimi-k2-thinking

Monthly cost: $20 + small backup spend
Outcome: higher quality, near-zero interruption

Ohjekirja B: Nollahintainen koodauspino```txt Combo: "free-forever"

  1. gc/gemini-3-flash
  2. if/kimi-k2-thinking
  3. qw/qwen3-coder-plus

Monthly cost: $0 Outcome: stable free coding workflow


**Playbook C: 24/7 aina päällä oleva varaketju**```txt
Combo: "always-on"
  1. cc/claude-opus-4-6
  2. cx/gpt-5.2-codex
  3. glm/glm-4.7
  4. minimax/MiniMax-M2.1
  5. if/kimi-k2-thinking

Outcome: deep fallback depth for deadline-critical workloads

Pelikirja D: Agentti toimii MCP:llä + A2A```txt

  1. Start MCP transport (omniroute --mcp) for tool-driven operations
  2. Run A2A tasks via message/send and message/stream
  3. Observe via /dashboard/endpoint (MCP and A2A tabs)
  4. Toggle services via inline status controls

---

## 🆓 Start Free — Zero Configuration Cost

> Määritä AI-koodaus minuuteissa hintaan**0 $/kk**. Yhdistä nämä ilmaiset tilit ja käytä sisäänrakennettua**Free Stack**-yhdistelmää.

| Vaihe | Toiminta | Palveluntarjoajat avattu |
| ---- | --------------------------------------------------- | ------------------------------------------------------------------- |
| 1 | Yhdistä**Kiro**(AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 —**rajaton**|
| 2 | Yhdistä**Qoder**(Google OAuth) | kimi-k2-ajattelu, qwen3-coder-plus, deepseek-r1... —**rajoittamaton**|
| 3 | Yhdistä**Qwen**(laitekoodi) | qwen3-coder-plus, qwen3-coder-flash... —**rajoittamaton**|
| 4 | Yhdistä**Gemini CLI**(Google OAuth) | gemini-3-flash, gemini-2.5-pro —**180K/kk ilmaiseksi**|
| 5 | `/dashboard/combos` →**Ilmainen pino ($0)**malli | Round-robin kaikki ilmaiset palveluntarjoajat automaattisesti |

**Osoita mikä tahansa IDE/CLI osoitteeseen:**"http://localhost:20128/v1" · API-avain: "any-string" · Valmis.

>**Valinnainen lisäkattavuus (myös ilmainen):**Groq API-avain (30 RPM ilmaiseksi), NVIDIA NIM (40 RPM ilmaiseksi, 70+ mallit), Cerebras (1 milj. tok/päivä), LongCat API-avain (50 milj. tokenia/päivä!), Cloudflare Workers AI (10 000 neuronia/vrk, 50+ mallia).## Pikakäynnistys

### 1) Install and run

```bash
npm install -g omniroute
omniroute

**pnpm-käyttäjät:**Suorita pnpm approve-builds -g asennuksen jälkeen, jotta voit ottaa käyttöön better-sqlite3 ja @swc/core vaatimat alkuperäiset koontiskriptit:

pnpm install -g omniroute
pnpm approve-builds -g # Valitse kaikki paketit → hyväksy
kaikkialla

Hallintapaneeli avautuu osoitteessa "http://localhost:20128" ja API-perus-URL-osoite on "http://localhost:20128/v1".

Komento Kuvaus
omniroute Käynnistä palvelin (PORT=20128, API ja kojelauta samassa portissa)
omniroute --port 3000 Aseta kanoninen/API-portiksi 3000
omniroute --mcp Käynnistä MCP-palvelin (stdio-kuljetus)
omniroute --no-open Älä avaa selainta automaattisesti
omniroute --help Näytä ohje

Valinnainen jaettu porttitila:```bash PORT=20128 DASHBOARD_PORT=20129 omniroute

API: http://localhost:20128/v1

Dashboard: http://localhost:20129


### Long-Running Streaming Timeouts

Useimpiin käyttöönottoihin tarvitset vain:

| Muuttuja | Oletus | Tarkoitus |
| ------------------------- | ------------------------------ | -------------------------------------------------------------- --------------------------------------------------------------- |
| `REQUEST_TIMEOUT_MS` | "600000" | Jaettu lähtötaso ylävirran noutoa, piilotettuja Undici-aikakatkaisuja, TLS-sormenjälkipyyntöjä ja API-siltapyyntöjen/välityspalvelinten aikakatkaisuja varten |
| `STREAM_IDLE_TIMEOUT_MS` | perii REQUEST_TIMEOUT_MS | Suurin väli suoratoistopalojen välillä ennen kuin OmniRoute keskeyttää SSE-virran |

Taaksepäin yhteensopivuus säilyy: olemassa olevat "FETCH_TIMEOUT_MS", "API_BRIDGE_PROXY_TIMEOUT_MS" ja muut tasokohtaiset aikakatkaisumuuttujat toimivat edelleen ja ohittavat jaetun perustason.

Edistyneet ohitukset ovat käytettävissä, jos tarvitset tarkempaa ohjausta:| Muuttuja | Oletus | Tarkoitus |
| ----------------------------------------- | ------------------------------------------- | --------------------------------------------------------------------- |
| `FETCH_TIMEOUT_MS` | perii REQUEST_TIMEOUT_MS | Päähaun keskeytyssignaalin käyttämä ylävirran pyynnön kokonaisaikakatkaisu |
| `FETCH_HEADERS_TIMEOUT_MS` | perii `FETCH_TIMEOUT_MS` | Undici-aikaraja ylävirran vastausotsikoiden vastaanottamiselle |
| `FETCH_BODY_TIMEOUT_MS` | perii `FETCH_TIMEOUT_MS` | Undici-aikaraja ylävirran runkokappaleiden välillä (`0` poistaa sen käytöstä) |
| `FETCH_CONNECT_TIMEOUT_MS` | "30000" | Undici TCP-yhteyden aikakatkaisu |
| `FETCH_KEEPALIVE_TIMEOUT_MS` | "4000" | Undici idle keep-alive socket timeout |
| `TLS_CLIENT_TIMEOUT_MS` | perii `FETCH_TIMEOUT_MS` | Aikakatkaisu wreq-js:n kautta tehdyille TLS-sormenjälkipyynnöille |
| `API_BRIDGE_PROXY_TIMEOUT_MS` | perii REQUEST_TIMEOUT_MS tai 30000 | Aikakatkaisu välityspalvelimen `/v1' edelleenlähetykselle API-portista kojelautaporttiin |
| `API_BRIDGE_SERVER_REQUEST_TIMEOUT_MS` | "max(API_BRIDGE_PROXY_TIMEOUT_MS, 300000)" | Saapuvan pyynnön aikakatkaisu API-siltapalvelimella |
| `API_BRIDGE_SERVER_HEADERS_TIMEOUT_MS` | "60000" | Saapuvan otsikon aikakatkaisu API-siltapalvelimella |
| `API_BRIDGE_SERVER_KEEPALIVE_TIMEOUT_MS` | "5000" | Keep-alive aikakatkaisu API-siltapalvelimella |
| `API_BRIDGE_SERVER_SOCKET_TIMEOUT_MS` | "0" | Socketin passiivisuuden aikakatkaisu API-siltapalvelimessa (`0` poistaa sen käytöstä) |

Jos käytät OmniRoutea Nginxin, Caddyn, Cloudflaren tai muun käänteisen välityspalvelimen takana, varmista, että välityspalvelin
aikakatkaisut ovat myös korkeammat kuin OmniRoute-streamin/haun aikakatkaisut.### 2) Connect providers and create your API key

1. Avaa Dashboard → Providers ja yhdistä vähintään yksi palveluntarjoaja (OAuth- tai API-avain).
2. Avaa Dashboard → `Endpoints` ja luo API-avain.
3. (Valinnainen) Avaa Dashboard → "Yhdistelmät" ja aseta varaketju.### 3) Point your coding tool to OmniRoute

```txt
Base URL: http://localhost:20128/v1
API Key:  [copy from Endpoint page]
Model:    if/kimi-k2-thinking (or any provider/model prefix)

Toimii Claude Coden, Codex CLI:n, Gemini CLI:n, Cursorin, Clinen, OpenClawn, OpenCoden ja OpenAI-yhteensopivien SDK:iden kanssa.### 4) Enable and validate protocols (v2.0)

MCP (työkaluohjattuihin toimintoihin):```bash omniroute --mcp


Yhdistä sitten MCP-asiakkaasi "stdion" kautta ja testaa työkaluja, kuten:

- `omniroute_get_health'
- "omniroute_list_combos".

**A2A (agenttien välisille työnkuluille):**```bash
curl http://localhost:20128/.well-known/agent.json
curl -X POST http://localhost:20128/a2a \
  -H 'content-type: application/json' \
  -d '{"jsonrpc":"2.0","id":"quickstart","method":"message/send","params":{"skill":"quota-management","messages":[{"role":"user","content":"Give me a short quota summary."}]}}'
npm run test:protocols:e2e

Tämä sarja tarkistaa todelliset MCP- ja A2A-asiakasvirrat käynnissä olevaa sovellusta vastaan.### Alternative: run from source

cp .env.example .env
npm install
PORT=20128 DASHBOARD_PORT=20129 NEXT_PUBLIC_BASE_URL=http://localhost:20129 npm run dev
Vid Linux (`xbps-src` malli)

Void Linux -käyttäjille voit rakentaa alkuperäisen paketin käyttämällä xbps-src. Tallenna tämä lohko nimellä "srcpkgs/omniroute/template":```bash

Template file for 'omniroute'

pkgname=omniroute version=3.4.1 revision=1 hostmakedepends="nodejs python3 make" depends="openssl" short_desc="Universal AI gateway with smart routing for multiple LLM providers" maintainer="zenobit zenobit@disroot.org" license="MIT" homepage="https://github.com/diegosouzapw/OmniRoute" distfiles="https://github.com/diegosouzapw/OmniRoute/archive/refs/tags/v${version}.tar.gz" checksum=009400afee90a9f32599d8fe734145cfd84098140b7287990183dde45ae2245b system_accounts="_omniroute" omniroute_homedir="/var/lib/omniroute" export NODE_ENV=production export npm_config_engine_strict=false export npm_config_loglevel=error export npm_config_fund=false export npm_config_audit=false

do_build() { # Determine target CPU arch for node-gyp local _gyp_arch case "$XBPS_TARGET_MACHINE" in aarch64*) _gyp_arch=arm64 ;; armv7*|armv6*) _gyp_arch=arm ;; i686*) _gyp_arch=ia32 ;; *) _gyp_arch=x64 ;; esac

# 1) Install all deps  skip scripts (no network in do_build, native modules
#    compiled separately below; better-sqlite3 is serverExternalPackage so
#    Next.js does not execute it during next build)
NODE_ENV=development npm ci --ignore-scripts

# 2) Build the Next.js standalone bundle
npm run build

# 3) Copy static assets into standalone
cp -r .next/static .next/standalone/.next/static
[ -d public ] && cp -r public .next/standalone/public || true

# 4) Compile better-sqlite3 native binding for the target architecture.
#    Use node-gyp directly so CC/CXX from xbps-src cross-toolchain are used
#    without npm altering them.
local _node_gyp=/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js
(cd node_modules/better-sqlite3 && node "$_node_gyp" rebuild --arch="$_gyp_arch")

# 5) Place the compiled binding into the standalone bundle
local _bs3_release=.next/standalone/node_modules/better-sqlite3/build/Release
mkdir -p "$_bs3_release"
cp node_modules/better-sqlite3/build/Release/better_sqlite3.node "$_bs3_release/"

# 6) Remove arch-specific sharp bundles  upstream sets images.unoptimized=true
#    so sharp is not used at runtime; x64 .so files would break aarch64 strip
rm -rf .next/standalone/node_modules/@img

# 7) Copy pino runtime deps omitted by Next.js static analysis:
#    pino-abstract-transport  required by pino's worker thread
#    split2  dep of pino-abstract-transport
#    process-warning  dep of pino itself
for _mod in pino-abstract-transport split2 process-warning; do
	cp -r "node_modules/$_mod" .next/standalone/node_modules/
done

}

do_check() { npm run test:unit }

do_install() { vmkdir usr/lib/omniroute/.next

vcopy .next/standalone/. usr/lib/omniroute/.next/standalone

# Prevent removal of empty Next.js app router dirs by the post-install hook
for _d in \
	.next/standalone/.next/server/app/dashboard \
	.next/standalone/.next/server/app/dashboard/settings \
	.next/standalone/.next/server/app/dashboard/providers; do
	touch "${DESTDIR}/usr/lib/omniroute/${_d}/.keep"
done

cat > "${WRKDIR}/omniroute" <<'EOF'

#!/bin/sh export PORT="${PORT:-20128}" export DATA_DIR="${DATA_DIR:-${XDG_DATA_HOME:-${HOME}/.local/share}/omniroute}" export LOG_TO_FILE="${LOG_TO_FILE:-false}" mkdir -p "${DATA_DIR}" exec node /usr/lib/omniroute/.next/standalone/server.js "$@" EOF vbin "${WRKDIR}/omniroute" }

post_install() { vlicense LICENSE }


</details>

---

## 🐳 Docker

OmniRoute on saatavilla julkisena Docker-kuvana [Docker Hubista](https://hub.docker.com/r/diegosouzapw/omniroute).

**Pikaajo:**```bash
docker run -d \
  --name omniroute \
  --restart unless-stopped \
  --stop-timeout 40 \
  -p 20128:20128 \
  -v omniroute-data:/app/data \
  diegosouzapw/omniroute:latest

Ympäristötiedostolla:```bash

Copy and edit .env first

cp .env.example .env

docker run -d
--name omniroute
--restart unless-stopped
--stop-timeout 40
--env-file .env
-p 20128:20128
-v omniroute-data:/app/data
diegosouzapw/omniroute:latest


**Docker Composen käyttäminen:**```bash
# Base profile (no CLI tools)
docker compose --profile base up -d

# CLI profile (Claude Code, Codex, OpenClaw built-in)
docker compose --profile cli up -d

Dashboard-tuki Dockerin käyttöönottoille sisältää nyt yhden napsautuksenCloudflare Quick Tunnelkohdassa "Dashboard → Endpoints". Ensimmäinen sallii lataukset "cloudflared" vain tarvittaessa, käynnistää väliaikaisen tunnelin nykyiseen "/v1"-päätepisteeseen ja näyttää luodun "https://*.trycloudflare.com/v1" URL-osoitteen suoraan tavallisen julkisen URL-osoitteesi alapuolelle.

Huomautuksia:

  • Quick Tunnelin URL-osoitteet ovat väliaikaisia ja muuttuvat jokaisen uudelleenkäynnistyksen jälkeen.
  • Pikatunneleita ei palauteta automaattisesti OmniRouten tai kontin uudelleenkäynnistyksen jälkeen. Ota ne uudelleen käyttöön kojelaudasta tarvittaessa.
  • Hallittu asennus tukee tällä hetkellä Linuxia, macOS:ää ja Windowsia x64-/arm64-käyttöjärjestelmässä.
  • Hallitut pikatunnelit käyttävät oletusarvoisesti HTTP/2-siirtoa, jotta vältetään meluisat QUIC UDP -puskurivaroitukset rajoitetuissa säiliöympäristöissä. Aseta CLOUDFLARED_PROTOCOL=quic tai auto, jos haluat toisenlaisen kuljetuksen.
  • Docker-kuvat niputtavat järjestelmän CA-juuret ja välittävät ne hallitulle "cloudflaredille", mikä välttää TLS-luottamushäiriöt, kun tunneli käynnistyy säilön sisällä.
  • SQLite toimii WAL-tilassa. docker stop:n tulee antaa päättyä, jotta OmniRoute voi tarkistaa viimeisimmät muutokset takaisin storage.sqlite-tiedostoon.
  • Mukana olevissa Compose-tiedostoissa on jo asetettu 40 s stop lisäaika. Jos suoritat kuvan suoraan, pidä --stop-timeout 40 (tai vastaava), jotta manuaaliset pysäytykset eivät katkaise sammutusta.
  • Aseta `CLOUDFLARED_BIN=/absolute/path/to/cloudflared', jos haluat OmniRouten käyttävän olemassa olevaa binaaria sen lataamisen sijaan.

Docker Compose with Caddy (HTTPS Auto-TLS) käyttäminen:

OmniRoute voidaan paljastaa turvallisesti käyttämällä Caddyn automaattista SSL-tilausta. Varmista, että verkkotunnuksesi DNS-tietue A osoittaa palvelimesi IP-osoitteeseen.```yaml services: omniroute: image: diegosouzapw/omniroute:latest container_name: omniroute restart: unless-stopped volumes: - omniroute-data:/app/data environment: - PORT=20128 - NEXT_PUBLIC_BASE_URL=https://your-domain.com

caddy: image: caddy:latest container_name: caddy restart: unless-stopped ports: - "80:80" - "443:443" command: caddy reverse-proxy --from https://your-domain.com --to http://omniroute:20128

volumes: omniroute-data:


| Kuva | Tag | Koko | Kuvaus |
| ------------------------- | -------- | ------ | ---------------------- |
| "diegosouzapw/omniroute" | "viimeisin" | ~250 Mt | Uusin vakaa julkaisu |
| "diegosouzapw/omniroute" | "1.0.3" | ~250 Mt | Nykyinen versio |---

## 🖥️ Desktop App — Offline & Always-On

> 🆕**UUSI!**OmniRoute on nyt saatavilla**alkuperäisenä työpöytäsovelluksena**Windowsille, macOS:lle ja Linuxille.

Suorita OmniRoute itsenäisenä työpöytäsovelluksena  ei päätelaitetta, ei selainta, ei vaadi Internetiä paikallisiin malleihin. Elektronipohjainen sovellus sisältää:

- 🖥️**Native Window**- Oma sovellusikkuna, jossa on integraatio järjestelmälokeroon
- 🔄**Automaattinen käynnistys**— Käynnistä OmniRoute järjestelmään kirjautuessasi
- 🔔**Alkuperäiset ilmoitukset**- Saat ilmoituksia kiintiön loppumisesta tai palveluntarjoajan ongelmista
- ⚡**Asennus yhdellä napsautuksella**— NSIS (Windows), DMG (macOS), AppImage (Linux)
- 🌐**Offline-tila**— Toimii täysin offline-tilassa mukana toimitetun palvelimen kanssa### Pikakäynnistys

```bash
# Development mode
npm run electron:dev

# Build for your platform
npm run electron:build         # Current platform
npm run electron:build:win     # Windows (.exe)
npm run electron:build:mac     # macOS (.dmg) — x64 & arm64
npm run electron:build:linux   # Linux (.AppImage)

System Tray

Kun OmniRoute on minimoitu, se elää ilmaisinalueellasi nopeilla toimilla:

  • Avaa kojelauta
  • Vaihda palvelimen portti
  • Lopeta sovellus

📖 Täydellinen dokumentaatio: electron/README.md---

💰 Pricing at a Glance

Taso Palveluntarjoaja Kustannukset Kiintiön nollaus Paras
💳 TILAUS Claude Code (Pro) 20 dollaria/kk 5h + viikoittain jo tilattu
Codex (Plus/Pro) 20-200 $/kk 5h + viikoittain OpenAI-käyttäjät
Gemini CLI ILMAINEN 180 tk/kk + 1 tk/päivä Kaikki!
GitHub Copilot 10-19 $/kk Kuukausittain GitHub-käyttäjät
🔑 API-AVAIN NVIDIA NIM ILMAINEN(kehittäjä ikuisesti) ~40 rpm 70+ avointa mallia
Aivot ILMAINEN(1M tok/päivä) 60K TPM / 30 RPM Maailman nopein
Groq ILMAINEN(30 RPM) 14.4K RPD Erittäin nopea Llama/Gemma
DeepSeek V3.2 0,27 /1,10 per 1 milj Ei yhtään Paras hinta/laatu perustelu
xAI Grok-4 Fast 0,20 /0,50 per 1 milj🆕 Ei yhtään Nopein + työkalukutsu, ultralow
xAI Grok-4 (vakio) 0,20 /1,50 per 1 milj 🆕 Ei yhtään Päättelyn lippulaiva xAI:lta
Mistral Ilmainen kokeilu + maksullinen Hinta rajoitettu Eurooppalainen tekoäly
OpenRouter Maksu per käyttö Ei yhtään 100+ mallia agr.
💰 EDULLISET GLM-5 (Z.AI:n kautta) 🆕 0,5 $/1 milj. Päivittäin klo 10 128K lähtö, uusin lippulaiva
GLM-4.7 0,6 $/1 milj. Päivittäin klo 10 Budjetin varmuuskopio
MiniMax M2.5 🆕 0,3 $/1 milj. tulo 5 tunnin rullaus Päättely + agenttitehtävät
MiniMax M2.1 0,2 $/1 milj. 5 tunnin rullaus Halvin vaihtoehto
Kimi K2.5 (Moonshot API) 🆕 Maksu per käyttö Ei yhtään Suora Moonshot API -käyttö
Kimi K2 9 dollaria/kk asunto 10 milj. rahakkeita/kk Ennustettavat kustannukset
🆓 ILMAINEN Qoder 0 $ Rajoittamaton 5 mallia rajoittamaton
Qwen 0 $ Rajoittamaton 4 mallia rajoittamaton
Kiro 0 $ Rajoittamaton Claude Sonnet/Haiku (AWS Builder)
LongCat Flash-Lite 🆕 0 $(50 milj. tok/päivä 🔥) 1 RPS Suurin ilmainen kiintiö maailmassa
Pölytys AI 🆕 0 $(avainta ei tarvita) 1 kpl/15 s GPT-5, Claude, DeepSeek, Llama 4
Cloudflare Workers AI 🆕 0 $(10 000 neuronia/päivä) ~150 tk/päivä Yli 50 mallia, globaali reuna
Scaleway AI 🆕 0 $(yhteensä 1 milj. tokeneja) Hinta rajoitettu EU/GDPR, Qwen3 235B, Llama 70B > 🆕**Uusia malleja lisätty (maaliskuu 2026):**Grok-4 Fast -perhe hintaan 0,20 $/0,50 $/M (vertailuarvo 1143 ms 30 % nopeampi kuin Gemini 2.5 Flash), GLM-5 Z.AI:n kautta 128K:n lähdöllä, MiniMax M2.5 Vc3 -perustelu, KiepSeed2-päivitys. Moonshot Direct API.

💡 0 dollarin yhdistelmäpino täydellinen ilmainen asennus:```

🆓 Ultimate Free Stack 2026 — 11 Providers, $0 Forever

Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed Qwen (qw/) → qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next UNLIMITED Gemini (gemini/) → Gemini 2.5 Flash — 1,500 req/day free API key Cloudflare AI (cf/) → Llama 70B, Gemma 3, Mistral — 10K Neurons/day Scaleway (scw/) → Qwen3 235B, Llama 70B — 1M free tokens (EU) Groq (groq/) → Llama/Gemma ultra-fast — 14.4K req/day NVIDIA NIM (nvidia/) → 70+ open models — 40 RPM forever Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day


**Nolla kustannuksia. Ei koskaan lopeta koodausta.**Määritä tämä yhdeksi OmniRoute-yhdistelmäksi, ja kaikki palautukset tapahtuvat automaattisesti  ei manuaalista vaihtoa koskaan.---

---

## 🆓 Free Models — What You Actually Get

> Kaikki alla olevat mallit ovat**100 % ilmaisia ilman luottokorttia**. OmniRoute reitittää automaattisesti niiden välillä, kun yksi kiintiö loppuu  yhdistä ne kaikki rikkomattomaksi 0 dollarin yhdistelmäksi.### 🔵 CLAUDE MODELS (via Kiro — AWS Builder ID)

| Malli | Etuliite | Raja | Hintarajoitus |
| -------------------- | ------ | ------------- | ---------------------- |
| `claude-sonnet-4,5` | `kr/` |**Rajoittamaton**| Ei raportoitu päivittäistä ylärajaa |
| `claude-haiku-4,5` | `kr/` |**Rajoittamaton**| Ei raportoitu päivittäistä ylärajaa |
| `claude-opus-4.6` | `kr/` |**Rajoittamaton**| Uusin Opus kautta Kiro |### 🟢 QODER MODELS (Free PAT via qodercli)

| Malli | Etuliite | Raja | Hintarajoitus |
| ------------------- | ------ | ------------- | ---------------- |
| `kimi-k2-ajattelu` | "jos/" |**Rajoittamaton**| Ei ilmoitettu yläraja |
| "qwen3-coder-plus" | "jos/" |**Rajoittamaton**| Ei ilmoitettu yläraja |
| `deepseek-r1` | "jos/" |**Rajoittamaton**| Ei ilmoitettu yläraja |
| "minimi-m2,1" | "jos/" |**Rajoittamaton**| Ei ilmoitettu yläraja |
| "kimi-k2" | "jos/" |**Rajoittamaton**| Ei ilmoitettu yläraja |

> Suositeltu yhteystapa:**Personal Access Token + `qodercli`**. Selain OAuth on
> kokeellinen ja oletuksena poistettu käytöstä, ellei QODER_OAUTH_*-ympäristömuuttujia ole määritetty.### 🟡 QWEN MODELS (Device Code Auth)

| Malli | Etuliite | Raja | Hintarajoitus |
| -------------------- | ------ | ------------- | -------------------- |
| "qwen3-coder-plus" | `qw/` |**Rajoittamaton**| Ei ilmoitettu yläraja |
| "qwen3-coder-flash" | `qw/` |**Rajoittamaton**| Ei ilmoitettu yläraja |
| "qwen3-coder-next" | `qw/` |**Rajoittamaton**| Ei ilmoitettu yläraja |
| "näön malli" | `qw/` |**Rajoittamaton**| Multimodaalinen (kuvat) |### 🟣 GEMINI CLI (Google OAuth)

| Malli | Etuliite | Raja | Hintarajoitus |
| ------------------------- | ------ | ---------------------------- | ------------- |
| `gemini-3-flash-preview` | `gc/` |**180 tk/kk**+ 1 tk/päivä | Kuukausittainen nollaus |
| "gemini-2.5-pro" | `gc/` | 180 000/kk (jaettu pool) | Korkea laatu |### ⚫ NVIDIA NIM (Free API Key — build.nvidia.com)

| Taso | Päiväraja | Hintarajoitus | Huomautuksia |
| ----------- | ------------ | ----------- | ------------------------------------------------------- |
| Ilmainen (kehittäjä) | Ei tunnuskorkkia |**~40 RPM**| 70+ mallia; siirtyminen puhtaisiin korkorajoihin vuoden 2025 puolivälissä |

Suositut ilmaiset mallit: moonshotai/kimi-k2.5 (Kimi K2.5), z-ai/glm4.7 (GLM 4.7), deepseek-ai/deepseek-v3.2 (DeepSeek V3.2), nvidia/llama-3.3-70b-deepseekr,/deepseekr### ⚪ CEREBRAS (Free API Key — inference.cerebras.ai)

| Taso | Päiväraja | Hintarajoitus | Huomautuksia |
| ---- | ------------------ | ----------------- | -------------------------------------------- |
| Ilmainen |**1 milj. rahakkeita/päivä**| 60K TPM / 30 RPM | Maailman nopein LLM-päätelmä; nollautuu päivittäin |

Saatavilla ilmaiseksi: "llama-3.3-70b", "llama-3.1-8b", "deepseek-r1-distill-llama-70b"### 🔴 GROQ (Free API Key — console.groq.com)

| Taso | Päiväraja | Hintarajoitus | Huomautuksia |
| ---- | ------------- | ----------------- | ------------------------------------------ |
| Ilmainen |**14.4K RPD**| 30 rpm mallia kohden | Ei luottokorttia; 429 rajalla, ei veloiteta |

Saatavilla ilmaiseksi: "llama-3.3-70b-versatile", "gemma2-9b-it", "mixtral-8x7b", "whisper-large-v3"### 🔴 LONGCAT AI (Free API Key — longcat.chat) 🆕

| Malli | Etuliite | Päivittäinen ilmainen kiintiö | Huomautuksia |
| ------------------------------ | ------ | ------------------ | ------------------------ |
| "LongCat-Flash-Lite" | `lc/` |**50 milj. rahakkeita**💥 | Suurin ilmainen kiintiö koskaan |
| "LongCat-Flash-Chat" | `lc/` | 500 000 kuponkia | Monipuolinen chat |
| "LongCat-Flash-Thinking" | `lc/` | 500 000 kuponkia | Päättely / CoT |
| "LongCat-Flash-Thinking-2601" | `lc/` | 500 000 kuponkia | Tammikuun 2026 versio |
| "LongCat-Flash-Omni-2603" | `lc/` | 500 000 kuponkia | Multimodaalinen |

> 100 % ilmainen julkisessa beta-tilassa. Rekisteröidy osoitteessa [longcat.chat](https://longcat.chat) sähköpostitse tai puhelimitse. Nollautuu päivittäin 00:00 UTC.### 🟢 POLLINATIONS AI (No API Key Required) 🆕

| Malli | Etuliite | Hintarajoitus | Toimittaja Takana |
| ----------- | ------ | ----------- | ------------------- |
| "openai" | `pol/` | 1 tarve/15 s | GPT-5 |
| `claude` | `pol/` | 1 tarve/15 s | Antrooppinen Claude |
| "kaksoset" | `pol/` | 1 tarve/15 s | Google Gemini |
| `deepseek` | `pol/` | 1 kpl/15 s | DeepSeek V3 |
| `laama` | `pol/` | 1 kpl/15 s | Meta Llama 4 Scout |
| "mistral" | `pol/` | 1 kpl/15 s | Mistral AI |

> ✨**Nolla kitkaa:**Ei rekisteröitymistä, ei API-avainta. Lisää Pollinations-palveluntarjoaja tyhjällä avainkentällä ja se toimii välittömästi.### 🟠 CLOUDFLARE WORKERS AI (Free API Key — cloudflare.com) 🆕

| Taso | Päivittäiset neuronit | Vastaava käyttö | Huomautuksia |
| ---- | ------------- | ---------------------------------------- | ------------------------ |
| Ilmainen |**10 000**| ~150 LLM vastinetta / 500 s ääni / 15 000 upotusta | Maailmanlaajuinen etu, yli 50 mallia |

Suositut ilmaiset mallit: `@cf/meta/llama-3.3-70b-instruct`, `@cf/google/gemma-3-12b-it`, `@cf/openai/whisper-large-v3-turbo` (ilmainen ääni!), `@cf/qwen/qwen2.5-coder-`15b-coder-

> Vaatii API-tunnuksen + tilitunnuksen osoitteesta [dash.cloudflare.com](https://dash.cloudflare.com). Tallenna tilitunnus palveluntarjoajan asetuksiin.### 🟣 SCALEWAY AI (1M Free Tokens — scaleway.com) 🆕

| Taso | Ilmainen kiintiö | Sijainti | Huomautuksia |
| ---- | ------------- | ------------ | ------------------------------------ |
| Ilmainen |**1 milj. rahakkeita**| 🇫🇷 Pariisi, EU | Luottokorttia ei tarvita rajoissa |

Saatavilla ilmaiseksi: "qwen3-235b-a22b-instruct-2507" (Qwen3 235B!), "llama-3.1-70b-instruct", "mistral-small-3.2-24b-instruct-2506", "deepseek-v3-032"

> EU/GDPR-yhteensopiva. Hanki API-avain osoitteesta [console.scaleway.com](https://console.scaleway.com).

>**💡 The Ultimate Free Stack (11 tarjoajaa, 0 dollaria ikuisesti):**
>
> ```
> Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED
> Qoder (if/) → kimi-k2-ajattelu, qwen3-coder-plus, deepseek-r1 UNLIMITED
> LongCat Lite (lc/) → LongCat-Flash-Lite  50 miljoonaa rahaketta/päivä 🔥
> Pölytys (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — avainta ei tarvita
> Qwen (qw/) → qwen3-kooderimallit RAJOITTAMATTA
> Gemini (gemini/) → Gemini 2.5 Flash  1 500 rekv/päivä ilmaiseksi
> Cloudflare AI (vrt./) → 50+ mallia  10 000 neuronia/päivä
> Scaleway (scw/) → Qwen3 235B, Llama 70B — 1 miljoona ilmaista rahaketta (EU)
> Groq (groq/) → Llama/Gemma  14,4 000 req/päivä erittäin nopea
> NVIDIA NIM (nvidia/) → 70+ avointa mallia  40 RPM ikuisesti
> Aivot (cerebras/) → Llama/Qwen maailman nopein  1 milj. tok/päivä
> ```## 🎙️ Free Transcription Combo

> Literoi mikä tahansa ääni/video hintaan**$0**— Deepgram-johdot 200 dollarilla ilmaiseksi, AssemblyAI 50 dollarin varavara, Groq Whisper rajoittamattomana hätävarmuuskopiona.

| Palveluntarjoaja | Ilmaisia luottoja | Paras malli | Hintarajoitus |
| ------------------ | ----------------------- | --------------------------------------------- | ----------------------------- |
| 🟢**Deepgram**|**200 dollaria ilmaiseksi**(kirjautuminen) | `nova-3` — paras tarkkuus, yli 30 kieltä | Ei RPM-rajoitusta ilmaisille luottoille |
| 🔵**AssemblyAI**|**50 dollaria ilmaiseksi**(kirjautuminen) | "universal-3-pro" — luvut, tunnelma, henkilötiedot | Ei RPM-rajoitusta ilmaisille luottoille |
| 🔴**Groq**|**Ilmainen ikuisesti**| `whisper-large-v3` — OpenAI Whisper | 30 RPM (nopeus rajoitettu) |

**Ehdotettu yhdistelmä kohdassa `/dashboard/combos':**```
Name: free-transcription
Strategy: Priority
Nodes:
  [1] deepgram/nova-3          → uses $200 free first
  [2] assemblyai/universal-3-pro → fallback when Deepgram credits run out
  [3] groq/whisper-large-v3    → free forever, emergency fallback

Sitten /dashboard/mediaTranskriptio-välilehti: lataa mikä tahansa ääni- tai videotiedosto → valitse yhdistelmäpäätepiste → hanki transkriptio tuetuissa muodoissa.## 💡 Key Features

OmniRoute v2.0 on rakennettu toiminnalliseksi alustaksi, ei vain välityspalvelimeksi.### 🆕 New — ClawRouter-Inspired Improvements (Mar 2026)

Ominaisuus Mitä se tekee
Grok-4 Fast Family xAI-mallit hintaan 0,20 $/0,50 $/M vertailuarvo 1143 ms (30 % nopeampi kuin Gemini 2.5 Flash)
🧠GLM-5 Z.AI:n kautta 128 000 tuloskonteksti, 0,5 $/1 milj. GLM-perheen uusin lippulaiva
🔮MiniMax M2.5 Päättely + agenttitehtävät hintaan 0,30 $/1M merkittävä parannus M2.1:stä
🎯ToolCalling Flag mallikohtainen Mallikohtainen työkalukutsu: tosi/epätosi rekisterissä — AutoCombo ohittaa mallit, joissa ei ole työkaluja
🌍Monikielinen tarkoituksentunnistus PT/ZH/ES/AR avainsanat AutoCombo-pisteytyksissä — parempi mallivalinta ei-englanninkieliselle sisällölle
📊Vertailuarvoihin perustuvat varaehdotukset Todellinen p95-viive live-pyyntöjen syötteiden yhdistelmäpisteistä — AutoCombo oppii todellisista tiedoista
🔁Pyydä päällekkäisyyden poistamista Sisältö-hash-pohjainen dedup-ikkuna — turvallinen usealle agentille, estää päällekkäiset veloitukset
🔌Pluggable RouterStrategy Laajentuva RouterStrategy-käyttöliittymä — lisää mukautettu reitityslogiikka laajennuksiksi ### 🚀 Previous v2.0.9+ — Playground, CLI Fingerprints & ACP
Ominaisuus Mitä se tekee
🎮Model Playground Dashboard-sivu minkä tahansa mallin testaamiseen suoraan palveluntarjoajan/mallin/päätepisteen valitsimet, Monaco Editor, suoratoisto, keskeytys, ajoitus
🔏CLI-sormenjälkien vastaavuus Palveluntarjoajakohtainen otsikko/runkojärjestys vastaamaan alkuperäisiä CLI-allekirjoituksia vaihda palveluntarjoajan mukaan kohdassa Asetukset > Suojaus.Välipalvelimesi IP-osoite säilyy
🤝ACP-tuki (Agent Client Protocol) CLI-agentin etsintä (Codex, Claude, Goose, Gemini CLI, OpenClaw + 9 muuta), prosessin synnyttäjä, /api/acp/agents-päätepiste
🤖ACP Agents Dashboard Vianetsintä Agentit -sivu — 14 agentin ruudukko, jossa on asennustila, versio ja mukautettu agenttilomake mille tahansa CLI-työkalulle.OpenCode-käyttäjät saavat "Download opencode.json" -painikkeen, joka luo automaattisesti käyttövalmiin kokoonpanon kaikille saatavilla oleville malleille.
🔧Muokatun mallin apiFormat -reititys Mukautetut mallit, joissa on apiFormat: "responses", ohjaavat nyt oikein Responses API -kääntäjään
🏢Codex Workspace Isolation Useita Codex-työtiloja sähköpostissa — OAuth erottaa yhteydet oikein työtilan tunnuksen
🔄Automaattinen elektroninen päivitys Työpöytäsovellus tarkistaa päivitykset + automaattinen asennus uudelleenkäynnistyksen yhteydessä ### 🤖 Agent & Protocol Operations (v2.0)
Ominaisuus Mitä se tekee
🔧MCP-palvelin (25 työkalua) IDE/agenttityökalut kolmen kuljetuksen kautta: stdio, SSE (/api/mcp/sse), Streamable HTTP (/api/mcp/stream). 18 ydintä + 3 muistia + 4 taitotyökalua
🤝A2A-palvelin (JSON-RPC + SSE) Agenttien välinen tehtävien suorittaminen synkronointi- ja suoratoistovirroilla
🧭Konsolidoitu päätepistesivu Välilehdillä varustettu hallintasivu Endpoint Proxy-, MCP-, A2A- ja API Endpoints -välilehdillä
🎚️Palvelun käyttöönoton/poistamisen valinnat ON/OFF kytkimet MCP:lle ja A2A:lle ja asetusten pysyvyys (oletus: OFF)
🛰️MCP Runtime Heartbeat Todellinen prosessin tila (pid, käytettävyys, sykeikä, kuljetus, mittaustila)
📋MCP Audit Trail Suodatettavat tarkastuslokit onnistumis/epäonnistuminen ja avainattribuutio
🔐MCP Scope Enforcement 10 yksityiskohtaista käyttöoikeutta työkalujen hallitukselle
📡A2A-tehtävän elinkaaren hallinta Listaa/suodata tehtäviä, tarkasta tapahtumat/artefaktit, peruuta käynnissä olevat tehtävät
📋Agenttikortin löytäminen /.well-known/agent.json asiakkaan automaattiseen löytämiseen
🧪Protokollan E2E-testivaljaat Todellinen MCP SDK + A2A-asiakas kulkee muodossa "test:protocols:e2e"
⚙️Toimintaohjaimet Vaihda yhdistelmä, käytä kimmoisuusprofiileja, nollaa katkaisijat yhdeltä ohjauspinnalta ### 🧠 Routing & Intelligence
Ominaisuus Mitä se tekee
🎯Smart 4-Tier Fallback Automaattinen reitti: Tilaus → API-avain → Halpa → Ilmainen
📊Reaaliaikainen kiintiöseuranta Live-tunnusten määrä + nollaa lähtölaskenta palveluntarjoajaa kohti
🔄Käännösmuoto OpenAI ↔ Claude ↔ Gemini ↔ Vastaukset skeematurvallisilla muunnoksilla
👥Useiden tilien tuki Useita tilejä per palveluntarjoaja älykkäällä valinnalla
🔄Automaattinen Token Refresh OAuth-tunnukset päivittyvät automaattisesti yrittämällä uudelleen
🎨Muokatut yhdistelmät 9 tasapainotusstrategiaa + varaketjun ohjaus
🌐Wildcard-reititin provider/* dynaaminen reititys
🧠Ajatteleva budjettihallinta Läpivienti-, automaatti-, mukautetut ja mukautuvat päättelyrajat
🔀Mallialiakset Sisäänrakennettu + mukautetun mallin alias ja siirtoturva
Taustan heikkeneminen Ohjaa matalan prioriteetin taustatehtävät halvempiin malleihin
🧪Task-Aware Smart Routing Automaattinen mallin valinta sisältötyypin mukaan (koodaus/näkemys/analyysi/yhteenveto)
🔄A2A-agenttityönkulut Deterministinen FSM-organisaattori tilallisiin monivaiheisiin agenttien suorituksiin
🔀Adaptiivinen reititys Dynaaminen strategian ohitus tunnuksen määrän ja nopean monimutkaisuuden perusteella
🎲Tarjoajien monimuotoisuus Shannonin entropiapisteytys tasapainottava automaattinen yhdistelmäliikenteen jakelu
💬Järjestelmän pikaruiskutus Globaalia käyttäytymisen valvontaa sovelletaan johdonmukaisesti
📄Responses API -yhteensopivuus Täysi "/v1/responses" tuki Codexille ja edistyneille agenttityönkuluille ### 🎵 Multi-Modal APIs
Ominaisuus Mitä se tekee
🖼️Kuvan luominen `/v1/images/generations' pilvipalveluilla ja paikallisilla taustaohjelmilla
📐Upotukset `/v1/embeddings' haku- ja RAG-putkistoja varten
🎤Äänitranskriptio `/v1/audio/transcriptions' — 7 palveluntarjoajaa (Deepgram Nova 3, AssemblyAI, Groq Whisper, HuggingFace, ElevenLabs, OpenAI, Azure), automaattinen kielentunnistus, MP4/MP3/WAV-tuki
🔊Tekstistä puheeksi /v1/audio/speech 10 palveluntarjoajaa (ElevenLabs, OpenAI, Deepgram, Cartesia, PlayHT, HuggingFace, Nvidia NIM, Inworld, Coqui, Tortoise) oikeilla virheilmoituksilla
🎬Videon sukupolvi `/v1/videos/generations' (ComfyUI + SD WebUI -työnkulut)
🎵Musiikin sukupolvi `/v1/music/generations' (ComfyUI-työnkulut)
🛡️Moderaatiot "/v1/moderations" turvallisuustarkastukset
🔀Uudelleenjärjestys `/v1/uudelleensijoitus' osuvuuden arvioimiseksi
🔍Verkkohaku🆕 "/v1/search" 5 palveluntarjoajaa (Serper, Brave, Perplexity, Exa, Tavily), 6 500+ ilmaista kuukaudessa, automaattinen vikasieto, välimuisti ### 🛡️ Resilience, Security & Governance
Ominaisuus Mitä se tekee
🔌Katkaisijat Mallikohtainen laukaisu/palautus kynnysohjaimilla
🎯Endpoint-Aware mallit Mukautetut mallit ilmoittavat tuetut päätepisteet + API-muoto
🛡️Ukkosen vastainen lauma Mutex + semaforisuojat uudelleenyritys-/nopeustapahtumissa
🧠Semanttinen + allekirjoitusvälimuisti Kustannusten/viiveen vähentäminen kahdella välimuistikerroksella
Pyydä idempotenssia Kaksoissuojaikkuna
🔒TLS-sormenjälkien huijaus Selaimen kaltainen TLS-sormenjälki —vähentää botin havaitsemista ja tilimerkintöjä
🔏CLI-sormenjälkien vastaavuus Vastaa alkuperäisten CLI-pyyntöjen allekirjoituksia —vähentää eston riskiä säilyttäen samalla välityspalvelimen IP-osoitteen
🌐IP-suodatus Salli-/estoluettelon hallinta paljaille käyttöönotuksille
📊Muokattavat hintarajat Muokattavat globaalit/toimittajatason rajoitukset pysyvillä
📉Graceful Degradation Monikerroksiset valmiudet, jotka suojaavat ydinyhdyskäytävätoimintoja
📜Config Audit Trail Diff-pohjainen muutosseuranta, joka estää toiminnan ajautumisen yksinkertaisilla palautuksilla
Provider Health Sync Ennakoiva tunnuksen vanhenemisen valvonta laukaisee hälytyksiä ennen valtuutusvirheitä
🚪Poista kielletyt tilit automaattisesti käytöstä Toiminnassa oleva katkaisija sinetöi pysyvästi estettyjen tokentilien automaattisesti
🔑API-avainten hallinta + rajaus Suojattu avainten myöntäminen/kierto ja mallin/toimittajan hallintalaitteet
👁️Scoped API Key Reveal🆕 Ota käyttöön API-avainten palautus ALLOW_API_KEY_REVEAL
🛡️Suojattu /mallit Valinnainen todennus ja palveluntarjoajan piilottaminen malliluetteloon ### 📊 Observability & Analytics
Ominaisuus Mitä se tekee
📝Pyyntö + välityspalvelimen kirjaus Täysi pyyntö/vastaus ja välityspalvelimen kirjaus
📉Striimatut yksityiskohtaiset lokit🆕 Rekonstruoi SSE-hyötykuormavirrat puhtaasti käyttöliittymään
📋Unified Logs Dashboard Pyyntö-, välityspalvelin-, tarkastus- ja konsolinäkymät yhdellä sivulla
🔍Pyydä telemetriaa p50/p95/p99 latenssi ja pyynnön jäljitys
🏥Terveyden hallintapaneeli Käyttöaika, katkaisutilat, lukitukset, välimuistitilastot
💰Kustannusseuranta Budjetin hallinta ja mallikohtainen hinnoittelun näkyvyys
📈Analytiikan visualisoinnit Mallin/palveluntarjoajan käyttötiedot ja trendinäkymät
🧪Arviointikehys Golden set -testaus konfiguroitavilla ottelustrategioilla
📡Live Diagnostics🆕 Semanttisen välimuistin ohitus tarkkaan yhdistelmätestaukseen livenä ### ☁️ Deployment & Platform
Ominaisuus Mitä se tekee
🌐Ota käyttöön missä tahansa Localhost, VPS, Docker, pilviympäristöt
🚇Cloudflare-tunneli🆕 Yhden napsautuksen Quick Tunnel -integrointi kojelaudalta
🔑API-avainmallin suodatus Alkuperäinen /v1/models-vastaus suodatettu määritettyjen verkkopalvelukontekstin roolien kautta
Smart Cache Bypass Konfiguroitava TTL-heuristiikka ja pakotetut palautusohjaimet
🔄Varmuuskopioi/Palauta Vienti/tuonti ja katastrofien palautusvirrat
🧙Ohjattu käyttöönottotoiminto Ensimmäisen kerran ohjattu asennus
🔧CLI Tools Dashboard Asennus yhdellä napsautuksella suosittuja koodaustyökaluja varten
🎮Model Playground Testaa mitä tahansa palveluntarjoajaa/mallia/päätepistettä hallintapaneelista
🔏CLI-sormenjälkivalitsin Palveluntarjoajakohtainen sormenjälkien vastaavuus kohdassa Asetukset > Suojaus
🌐i18n (30 kieltä) Täysi kojelauta + asiakirjojen kielen tuki RTL-kattauksella
🧹Tyhjennä kaikki mallit Yhden napsautuksen malliluettelon tyhjennys toimittajan tiedoissa
👁️Sivupalkin säätimet🆕 Piilota komponentit ja integraatiot ulkoasuasetuksista
📋Ongelman mallit Standardoidut GitHub-mallit bugeille ja ominaisuuksille
📂Muokattu tietohakemisto Tallennuspaikan DATA_DIR-ohitus ### Feature Deep Dive

Smart fallback with practical cost control

Combo: "my-coding-stack"
  1. cc/claude-opus-4-6
  2. nvidia/llama-3.3-70b
  3. glm/glm-4.7
  4. if/kimi-k2-thinking

Kun kiintiö, korko tai kunto epäonnistuu, OmniRoute siirtyy automaattisesti seuraavaan ehdokkaaseen ilman manuaalista vaihtoa.#### Protocol management that is visible and operable

  • MCP + A2A ovat löydettävissä käyttöliittymässä ja asiakirjoissa (ei piilotettu)
  • Protokollan tilasovellusliittymät paljastavat reaaliaikaiset toimintatiedot (/api/mcp/*, /api/a2a/*)
  • Hallintapaneelit sisältävät toimintoja 2. päivän toimintoihin (kombinvaihto, katkaisijan nollaukset, tehtävien peruutus)#### Translator + validation workflow

Kääntäjä-alue sisältää:

-Playground: pyydä muunnostarkistuksia -Chat Tester: täydellinen pyyntö/vastaus edestakaisin -Testipenkki: useita tapauksia yhdellä kertaa -Live Monitor: reaaliaikainen liikennenäkymä

Plus protokollan validointi oikeiden asiakkaiden kanssa komennolla "npm run test:protocols:e2e".

📖MCP-palvelimen README— työkaluviittaus, IDE-määritykset ja asiakasesimerkit

📖A2A-palvelimen README— Taidot, JSON-RPC-menetelmät, suoratoisto ja tehtävien elinkaari## 🧪 Evaluations (Evals)

OmniRoute sisältää sisäänrakennetun arviointikehyksen, jolla testataan LLM-vastauksen laatua kultaiseen joukkoon verrattuna. Käytä sitä kojelaudan kohdassaAnalytics → Evals.### Built-in Golden Set

Esiladattu "OmniRoute Golden Set" sisältää testitapauksia:

  • Tervehdys, matematiikka, maantiede, koodin luominen
  • JSON-muodon yhteensopivuus, käännös, hinnanalennusten luominen
  • Turvallisuuskielto (haitallinen sisältö), laskenta, boolen logiikka### Evaluation Strategies
Strategia Kuvaus Esimerkki
"tarkka" Tulosten on vastattava tarkasti "4"
"sisältää" Tulosteen tulee sisältää alimerkkijono (kirjainkoolla ei ole merkitystä) "Pariisi"
"regulex" Tulostuksen on vastattava regex-mallia "1.*2.*3"
"muokattu" Mukautettu JS-funktio palauttaa true/false (lähtö) => output.length > 10 ---

📖 Setup Guide

Protocol Setup (MCP + A2A)

🧩 MCP-asetukset (mallikontekstiprotokolla)

Aloita MCP-siirto stdio-tilassa:```bash omniroute --mcp


Suositeltu vahvistuskulku:

1. Yhdistä MCP-asiakas stdion kautta.
2. Suorita "omniroute_get_health".
3. Suorita "omniroute_list_combos".
4. Avaa `/dashboard/mcp' vahvistaaksesi syke, toiminta ja tarkastus.

Hyödyllisiä sovellusliittymiä automatisointiin:

- "GET /api/mcp/status".
- "GET /api/mcp/tools".
- "GET /api/mcp/audit".
- "GET /api/mcp/audit/stats".</details>

<tiedot>
<summary><b>🤝 A2A-asetukset (Agent2Agent)</b></summary>

Tutustu agenttiin:```bash
curl http://localhost:20128/.well-known/agent.json

Lähetä tehtävä:```bash curl -X POST http://localhost:20128/a2a
-H 'content-type: application/json'
-d '{"jsonrpc":"2.0","id":"setup-a2a","method":"message/send","params":{"skill":"quota-management","messages":[{"role":"user","content":"Summarize quota status."}]}}'


Hallitse elinkaarta:

- "GET /api/a2a/status".
- "GET /api/a2a/tasks".
- "GET /api/a2a/tasks/:id".
- POST /api/a2a/tasks/:id/cancel

Käyttöliittymä:

- `/dashboard/a2a` tehtävän/tilan/virran havainnointia ja savutoimintoja varten</details>

<tiedot>
<summary><b>🧪 Päästä päähän -protokollan validointi</b></summary>

Vahvista molemmat protokollat oikeilla asiakkailla:```bash
npm run test:protocols:e2e

Tämä varmistaa:

  • MCP SDK -asiakas yhdistä/luettelo/soita
  • A2A Discovery/Send/stream/get/cancel
  • Tarkista tiedot MCP-tarkastuksessa ja A2A-tehtävienhallinnan sovellusliittymissä
💳 Tilauspalveluntarjoajat### Claude Code (Pro/Max)
Dashboard → Providers → Connect Claude Code
→ OAuth login → Auto token refresh
→ 5-hour + weekly quota tracking

Models:
  cc/claude-opus-4-6
  cc/claude-sonnet-4-5-20250929
  cc/claude-haiku-4-5-20251001

**Provinkki:**Käytä Opusta monimutkaisiin tehtäviin ja Sonnetia nopeutta varten. OmniRoute jäljityskiintiö mallia kohti!### OpenAI Codex (Plus/Pro)

Dashboard → Providers → Connect Codex
→ OAuth login (port 1455)
→ 5-hour + weekly reset

Models:
  cx/gpt-5.2-codex
  cx/gpt-5.1-codex-max

Codex Account Limit Management (5h + Weekly)

Jokaisella Codex-tilillä on nyt käytäntökytkimet kohdassa "Dashboard -> Providers":

  • "5h" (ON/OFF): pakottaa 5 tunnin ikkunan kynnyskäytäntö.
  • "Viikoittain" (ON/OFF): pakottaa viikoittaisen ikkunan kynnyskäytäntöä.
  • Kynnyskäyttäytyminen: kun käytössä oleva ikkuna saavuttaa >=90 % käytön, tili ohitetaan.
  • Kiertokäyttäytyminen: OmniRoute reitittää automaattisesti seuraavalle kelvolliselle Codex-tilille.
  • Nollauskäyttäytyminen: kun palveluntarjoajan "resetAt" aika kuluu, tili tulee uudelleen kelpoiseksi automaattisesti.

Skenaariot:

  • "5h PÄÄLLÄ" + "Viikoittain PÄÄLLÄ": tili ohitetaan, kun jompikumpi ikkuna saavuttaa kynnyksen.
  • "5h OFF" + "Weekly ON": vain viikoittainen käyttö voi estää tilin.
  • "5h ON" + "Weekly OFF": vain 5 tunnin käyttö voi estää tilin.
  • resetAt hyväksytty: tili siirtyy uudelleen kiertoon automaattisesti (ei manuaalista uudelleenkäyttöä).### Gemini CLI (FREE 180K/month!)
Dashboard → Providers → Connect Gemini CLI
→ Google OAuth
→ 180K completions/month + 1K/day

Models:
  gc/gemini-3-flash-preview
  gc/gemini-2.5-pro

**Paras hinta-laatusuhde:**Valtava ilmainen taso! Käytä tätä ennen maksettuja tasoja.### GitHub Copilot

Dashboard → Providers → Connect GitHub
→ OAuth via GitHub
→ Monthly reset (1st of month)

Models:
  gh/gpt-5
  gh/claude-4.5-sonnet
  gh/gemini-3.1-pro-preview
🔑 API-avaintoimittajat### NVIDIA NIM (FREE developer access — 70+ models)
  1. Rekisteröidy: build.nvidia.com
  2. Hanki ilmainen API-avain (sisältää 1000 johtopäätöskrediittiä)
  3. Kojelauta → Lisää toimittaja → NVIDIA NIM:
    • API-avain: "nvapi-your-key".

Mallit:"nvidia/llama-3.3-70b-instruct", "nvidia/mistral-7b-instruct" ja yli 50 muuta

**Provinkki:**OpenAI-yhteensopiva API toimii saumattomasti OmniRouten muotokäännöksen kanssa!### DeepSeek

  1. Rekisteröidy: platform.deepseek.com
  2. Hanki API-avain
  3. Dashboard → Add Provider → DeepSeek

Mallit:"deepseek/deepseek-chat", "deepseek/deepseek-coder"### Groq (Free Tier Available!)

  1. Rekisteröidy: console.groq.com
  2. Hanki API-avain (ilmainen taso mukana)
  3. Dashboard → Add Provider → Groq

Mallit:"groq/llama-3.3-70b", "groq/mixtral-8x7b"

**Provinkki:**Äärimmäisen nopea johtopäätös paras reaaliaikaiseen koodaukseen!### OpenRouter (100+ Models)

  1. Rekisteröidy: openrouter.ai
  2. Hanki API-avain
  3. Dashboard → Add Provider → OpenRouter

**Mallit:**Käytä yli 100 mallia kaikilta tärkeimmiltä palveluntarjoajilta yhdellä API-avaimella.

Kojelaudan toiminta:OpenRouter-malleja hallitaanSaatavilla olevista malleista. Manuaalinen lisääminen, tuonti ja automaattinen synkronointi päivittävät kaikki saman luettelon.

💰 Halvat palveluntarjoajat (Varmuuskopio)### GLM-4.7 (Daily reset, $0.6/1M)
  1. Rekisteröidy: Zhipu AI
  2. Hanki API-avain Coding Planista
  3. Hallintapaneeli → Lisää API-avain:
    • Palveluntarjoaja: "glm".
    • API-avain: "oma-avain".

Käytä:glm/glm-4.7

**Provinkki:**Koodaussuunnitelma tarjoaa 3-kertaisen kiintiön 1/7 hinnalla! Nollaa päivittäin klo 10.00.### MiniMax M2.1 (5h reset, $0.20/1M)

  1. Rekisteröidy: MiniMax
  2. Hanki API-avain
  3. Kojelauta → Lisää API-avain

Käytä:minimax/MiniMax-M2.1

**Ammattilaisen vinkki:**Halvin vaihtoehto pitkälle kontekstille (1 milj. merkkiä)!### Kimi K2 ($9/month flat)

  1. Tilaa: Moonshot AI
  2. Hanki API-avain
  3. Kojelauta → Lisää API-avain

Käytä:kimi/kimi-latest

**Ammattilaisen vinkki:**Kiinteä 9 dollaria kuukaudessa 10 miljoonalle tokenille = 0,90 dollaria / 1 miljoona todellista hintaa!

🆓 ILMAISIA palveluntarjoajia (hätävarmuuskopiointi)### Qoder (5 FREE models via OAuth)
Dashboard → Connect Qoder
→ Qoder OAuth login
→ Unlimited usage

Models:
  if/kimi-k2-thinking
  if/qwen3-coder-plus
  if/glm-4.7
  if/minimax-m2
  if/deepseek-r1

Qwen (4 FREE models via Device Code)

Dashboard → Connect Qwen
→ Device code authorization
→ Unlimited usage

Models:
  qw/qwen3-coder-plus
  qw/qwen3-coder-flash

Kiro (Claude FREE)

Dashboard → Connect Kiro
→ AWS Builder ID or Google/GitHub
→ Unlimited usage

Models:
  kr/claude-sonnet-4.5
  kr/claude-haiku-4.5
🎨 Luo komboja### Example 1: Maximize Subscription → Cheap Backup
Dashboard → Combos → Create New

Name: premium-coding
Models:
  1. cc/claude-opus-4-6 (Subscription primary)
  2. glm/glm-4.7 (Cheap backup, $0.6/1M)
  3. minimax/MiniMax-M2.1 (Cheapest fallback, $0.20/1M)

Use in CLI: premium-coding

Example 2: Free-Only (Zero Cost)

Name: free-combo
Models:
  1. gc/gemini-3-flash-preview (180K free/month)
  2. if/kimi-k2-thinking (unlimited)
  3. qw/qwen3-coder-plus (unlimited)

Cost: $0 forever!
🔧 CLI-integrointi### Cursor IDE
Settings → Models → Advanced:
  OpenAI API Base URL: http://localhost:20128/v1
  OpenAI API Key: [from OmniRoute dashboard]
  Model: cc/claude-opus-4-6

Claude Code

Käytä kojelaudanCLI Tools-sivua määritysten tekemiseen yhdellä napsautuksella tai muokkaa ~/.claude/settings.json manuaalisesti.### Codex CLI

export OPENAI_BASE_URL="http://localhost:20128"
export OPENAI_API_KEY="your-omniroute-api-key"

codex "your prompt"

OpenClaw

Vaihtoehto 1 hallintapaneeli (suositus):``` Dashboard → CLI Tools → OpenClaw → Select Model → Apply


**Vaihtoehto 2  Manuaalinen:**Muokkaa `~/.openclaw/openclaw.json`:```json
{
  "models": {
    "providers": {
      "omniroute": {
        "baseUrl": "http://127.0.0.1:20128/v1",
        "apiKey": "sk_omniroute",
        "api": "openai-completions"
      }
    }
  }
}

**Huomaa:**OpenClaw toimii vain paikallisen OmniRouten kanssa. Käytä "127.0.0.1" "localhost" sijaan IPv6-resoluutioongelmien välttämiseksi.### Cline / Continue / RooCode

Settings → API Configuration:
  Provider: OpenAI Compatible
  Base URL: http://localhost:20128/v1
  API Key: [from OmniRoute dashboard]
  Model: if/kimi-k2-thinking

OpenCode

**Vaihe 1:**Lisää OmniRoute mukautetuksi palveluntarjoajaksi:```bash opencode /connect

Select "Other" → Enter ID: "omniroute" → Enter your OmniRoute API key


**Vaihe 2:**Luo/muokkaa `opencode.json` projektisi juuressa:```json
{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "omniroute": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "OmniRoute",
      "options": {
        "baseURL": "http://localhost:20128/v1"
      },
      "models": {
        "cc/claude-sonnet-4-20250514": { "name": "Claude Sonnet 4" },
        "gg/gemini-2.5-pro": { "name": "Gemini 2.5 Pro" },
        "if/kimi-k2-thinking": { "name": "Kimi K2 (Free)" }
      }
    }
  }
}

**Vaihe 3:**Valitse malli OpenCodessa:```bash /models

Select any OmniRoute model from the list


>**Vinkki:**Lisää mikä tahansa malli, joka on saatavilla OmniRoute `/v1/models' -päätepisteessäsi "mallit"-osioon. Käytä muotoa "provider/model-id" OmniRoute-hallintapaneelista.</details>

---

## Vianmääritys

<tiedot>
<summary><b>Laajenna vianetsintäopas napsauttamalla</b></summary>

**"Kielimalli ei antanut viestejä"**

- Palveluntarjoajan kiintiö käytetty loppuun → Tarkista kojelaudan kiintiön seuranta
- Ratkaisu: Käytä yhdistelmävaraa tai vaihda halvempaan tasoon

**hintarajoitus**

- Tilauskiintiö loppu → Varaa GLM/MiniMaxiin
- Lisää yhdistelmä: `cc/claude-opus-4-6 → glm/glm-4.7 → if/kimi-k2-thinking`

**OAuth-tunnus vanhentunut**

- OmniRoute päivittää automaattisesti
- Jos ongelmat jatkuvat: Kojelauta → Palveluntarjoaja → Yhdistä uudelleen

**Korkeat kustannukset**

- Tarkista käyttötilastot kohdassa Dashboard → Costs
- Vaihda ensisijaiseksi malliksi GLM/MiniMax
- Käytä ilmaista tasoa (Gemini CLI, Qoder) ei-kriittisiin tehtäviin

**Kojelauta/API-portit ovat väärin**

- "PORT" on kanoninen perusportti (ja oletuksena API-portti)
- "API_PORT" ohittaa vain OpenAI-yhteensopivan API-kuuntelijan
- `DASHBOARD_PORT' ohittaa vain kojelaudan/Next.js-kuuntelijan
- Aseta "NEXT_PUBLIC_BASE_URL" kojelaudaksi/julkiseksi URL-osoitteeksi (OAuth-takaisinsoittoja varten)

**Pilvisynkronointivirheet**

- Varmista, että BASE_URL osoittaa käynnissä olevaan esiintymääsi
- Varmista, että CLOUD_URL osoittaa odotettuun pilvipäätepisteeseen
- Pidä NEXT_PUBLIC_*-arvot kohdakkain palvelinpuolen arvojen kanssa

**Ensimmäinen kirjautuminen ei toimi**

- Tarkista .env:stä ALKUPERÄINEN_SALASANA
- Jos ei ole asetettu, varasalasana on "123456".

**Ei pyyntölokeja**

- Pyynnön artefaktit kirjoitetaan hakemistoon DATA_DIR/call_logs/ yhtenä JSON-tiedostona pyyntöä kohden.
- Ota käyttöön liukuhihnan sieppaus kohdasta Dashboard → Logs → Request Logs, jos tarvitset yksityiskohtaisia vaihekohtaisia hyötykuormia
- Aseta APP_LOG_TO_FILE=true, jos haluat myös sovelluskonsolin lokit hakemistoon `logs/application/app.log'
- Säädä APP_LOG_MAX_FILE_SIZE, APP_LOG_RETENTION_DAYS, APP_LOG_MAX_FILES ja CALL_LOG_MAX_ENTRIES tarpeen mukaan

**Yhteystesti näyttää "Virheellinen" OpenAI-yhteensopiville palveluntarjoajille**

- Monet palveluntarjoajat eivät paljasta /mallit-päätepistettä
- OmniRoute v1.0.6+ sisältää varatarkistuksen chatin loppuunsaattamisen kautta
- Varmista, että perus-URL sisältää /v1-liitteen### 🔐 OAuth on a Remote Server

<a name="oauth-on-a-remote-server"></a>
<a name="oauth-em-servidor-remoto"></a>

>**⚠️ Tärkeää käyttäjille, jotka käyttävät OmniRoutea VPS:ssä, Dockerissa tai millä tahansa etäpalvelimella**#### Why does Antigravity / Gemini CLI OAuth fail on remote servers?

**Antigravity**- ja**Gemini CLI**-palveluntarjoajat käyttävät**Google OAuth 2.0**-versiota. Google edellyttää, että OAuth-kulun "redirect_uri" vastaa täsmälleen yhtä sovelluksen Google Cloud Consolessa esirekisteröityistä URI:ista.

OmniRouteen niputetut OAuth-tunnistetiedot on rekisteröity**vain `localhost'ille**. Kun käytät OmniRoutea etäpalvelimella (esim. `https://omniroute.myserver.com`), Google hylkää todennuksen seuraavilla tavoilla:```
Error 400: redirect_uri_mismatch

Solution: Configure your own OAuth credentials

Sinun on luotavaOAuth 2.0 -asiakastunnusGoogle Cloud Consolessa palvelimesi URI:lla.#### Step-by-step

1. Avaa Google Cloud Console

Siirry osoitteeseen: https://console.cloud.google.com/apis/credentials

2. Luo uusi OAuth 2.0 -asiakastunnus

  • Napsauta**"+ Luo kirjautumistiedot""OAuth-asiakastunnus"**
  • Sovellustyyppi:"Web-sovellus"
  • Nimi: kaikki mistä pidät (esim. "OmniRoute Remote")

3. Add Authorized Redirect URIs

Lisää**"Authorized redirect URIs"**-kenttään:``` https://your-server.com/callback


> Korvaa "your-server.com" palvelimesi verkkotunnuksella tai IP-osoitteella (lisää tarvittaessa portti, esim. "http://45.33.32.156:20128/callback").

**4. Tallenna ja kopioi tunnistetiedot**

Luomisen jälkeen Google näyttää**Client ID**ja**Client Secret**.

**5. Aseta ympäristömuuttujat**

.env-tiedostossa (tai Docker-ympäristömuuttujat):```bash
# For Antigravity:
ANTIGRAVITY_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com
ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-your-secret

# For Gemini CLI:
GEMINI_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com
GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret
GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret

6. Käynnistä OmniRoute uudelleen```bash

npm:

npm run dev

Docker:

docker restart omniroute


**7. Yritä muodostaa yhteys uudelleen**

Dashboard → Providers → Antigravity (tai Gemini CLI) → OAuth

Google ohjaa nyt oikein osoitteeseen https://your-server.com/callback.---

#### Temporary workaround (without custom credentials)

Jos et halua määrittää omia tunnistetietojasi juuri nyt, voit silti käyttää**manuaalista URL-kulkua**:

1. OmniRoute avaa Googlen valtuutus-URL-osoitteen
2. Valtuutuksen jälkeen Google yrittää uudelleenohjata palvelimeen "localhost" (joka epäonnistuu etäpalvelimella)
3.**Kopioi koko URL-osoite**selaimesi osoitepalkista (vaikka sivu ei latautuisi)
4. Liitä URL-osoite OmniRoute-yhteysmodaalissa näkyvään kenttään
5. Napsauta**"Yhdistä"**

> Tämä toimii, koska URL-osoitteessa oleva valtuutuskoodi on kelvollinen riippumatta siitä, ladattiinko uudelleenohjaussivu.---

<tiedot>
<summary><b>🇧🇷 Versão em Português</b></summary>#### Por que o OAuth do Antigravity / Gemini CLI falha em servidores remotos?

Os provedores**Antigravity**ja**Gemini CLI**usam**Google OAuth 2.0**para autenticação. O Google exige que a `redirect_uri` usada no fluxo OAuth seja**exatamente**uma das URIs pre-cadastradas no Google Cloud Console do aplicativo.

As credenciais OAuth embutidas no OmniRoute estão cadastradas**apenas para `localhost`**. Quando você acessa tai OmniRoute em um servidor Remoto (esim. `https://omniroute.meuservidor.com`), o Google rejeita a autenticação com:```
Error 400: redirect_uri_mismatch

Solução: Configure suas próprias credenciais OAuth

Você precisa criar umOAuth 2.0 Client IDei Google Cloud Console com URI do seu servidor.#### Passo a passo

1. Acesse tai Google Cloud Console

Abra: https://console.cloud.google.com/apis/credentials

2. Crie um novo OAuth 2.0 -asiakastunnus

  • Klikkaa em**"+ Luo kirjautumistiedot""OAuth-asiakastunnus"**
  • Tipo de aplicativo:"Web-sovellus"
  • Nimi: escolha qualquer nome (esim. "OmniRoute Remote")

3. Adicione valtuutettuina uudelleenohjaus-URI:ina

No campo**"Authorized redirect URIs"**, lisäys:``` https://seu-servidor.com/callback


> Korvaa `seu-servidor.com` pelo domínio tai IP do seu servidor (mukaan lukien porta se necessário, esim. `http://45.33.32.156:20128/callback`).

**4. Tallenna kopio valtuutuksena**

Após criar, o Google mostrará o**Client ID**e o**Client Secret**.

**5. Määritä variáveis de ambiente**

Ei seu `.env` (ou nas variáveis de ambiente do Docker):```bash
# Para Antigravity:
ANTIGRAVITY_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com
ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret

# Para Gemini CLI:
GEMINI_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com
GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret
GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret

6. Reinicie o OmniRoute```bash

Se usando npm:

npm run dev

Se usando Docker:

docker restart omniroute


**7. Tente conectar novamente**

Dashboard → Providers → Antigravity (ou Gemini CLI) → OAuth

Agora o Google redirecionará corretamente para `https://seu-servidor.com/callback` e a autenticação funcionará.---

#### Workaround temporário (sem configurar credenciais próprias)

Se não quiser criar credenciais próprias agora, ainda é possível usar o fluxo**manual de URL**:

1. OmniRoute lähettää Googlen lupa-osoitteen
2. Após você autorizar, o Google tentará redirecionar para "localhost" (que falha no servidor Remoto)
3.**Kopioi URL-osoite täydellinen**da barra de endereço do seu selaimessa (mesmo que a página não carregue)
4. Cole essa URL no campo que aparece no modal de conexão do OmniRoute
5. Klikkaa em**"Yhdistä"**

> Este workaround funciona porque o código de autorização na URL é válido independente do redirect ter carregado ou não.</details>

---

</details>

## 🛠️ Tech Stack

<tiedot>
<summary><b>Click to expand tech stack details</b></summary>

-**Runtime**: Node.js 1822 LTS (⚠️ Node.js 24+ is**not supported**— `better-sqlite3` native binaries are incompatible)
-**Language**: TypeScript 5.9 —**100% TypeScript**across `src/` and `open-sse/` (zero `any` in core modules since v2.0)
-**Framework**: Next.js 16 + React 19 + Tailwind CSS 4
-**Database**: LowDB (JSON) + SQLite (domain state + proxy logs + MCP audit + routing decisions)
-**Schemas**: Zod (MCP tool I/O validation, API contracts)
-**Protocols**: MCP (stdio/HTTP) + A2A v0.3 (JSON-RPC 2.0 + SSE)
-**Striimaus**: Palvelimen lähettämät tapahtumat (SSE)
-**Auth**: OAuth 2.0 (PKCE) + JWT + API Keys + MCP Scoped Authorization
-**Testing**: Node.js test runner + Vitest (900+ tests including unit, integration, E2E)
-**CI/CD**: GitHub Actions (auto npm publish + Docker Hub on release)
-**Verkkosivusto**: [omniroute.online](https://omniroute.online)
-**Package**: [npmjs.com/package/omniroute](https://www.npmjs.com/package/omniroute)
-**Docker**: [hub.docker.com/r/diegosouzapw/omniroute](https://hub.docker.com/r/diegosouzapw/omniroute)
-**Resilience**: Circuit breaker, exponential backoff, anti-thundering herd, TLS spoofing, auto-combo self-healing</details>

---

## Dokumentaatio

| Asiakirja | Kuvaus |
| ----------------------------------------------- | ---------------------------------------------------- |
| [Käyttöopas](docs/USER_GUIDE.md) | Palveluntarjoajat, yhdistelmät, CLI-integrointi, käyttöönotto |
| [API-viite](docs/API_REFERENCE.md) | Kaikki päätepisteet esimerkeineen |
| [MCP-palvelin](open-sse/mcp-server/README.md) | 16 MCP-työkalua, IDE-konfiguraatioita, Python/TS/Go-asiakkaita |
| [A2A-palvelin](src/lib/a2a/README.md) | JSON-RPC 2.0 -protokolla, taidot, suoratoisto, tehtävänhallinta |
| [Auto-Combo Engine](docs/auto-combo.md) | 6-faktorinen pisteytys, tilapaketit, itsestään paraneva |
| [Vianetsintä](docs/TROUBLESHOOTING.md) | Yleisiä ongelmia ja ratkaisuja |
| [Arkkitehtuuri](docs/ARCHITECTURE.md) | Järjestelmäarkkitehtuuri ja sisäosat |
| [Osallistuva](CONTRIBUTING.md) | Kehittämisjärjestelyt ja -ohjeet |
| [OpenAPI-määritys](docs/openapi.yaml) | OpenAPI 3.0 -spesifikaatio |
| [Turvallisuuspolitiikka](SECURITY.md) | Haavoittuvuusraportointi ja tietoturvakäytännöt |
| [VM-käyttöönotto](docs/VM_DEPLOYMENT_GUIDE.md) | Täydellinen opas: VM + nginx + Cloudflare-asennus |
| [Ominaisuudet Galleria](docs/FEATURES.md) | Visuaalinen kojelautakierros kuvakaappauksilla |
| [Julkaisun tarkistuslista](docs/RELEASE_CHECKLIST.md) | Julkaisua edeltävän vahvistuksen vaiheet |---

## 🗺️ Roadmap

OmniRoutella on**210+ suunniteltua ominaisuutta**useissa kehitysvaiheissa. Tässä ovat tärkeimmät alueet:

| Category                      | Suunnitellut ominaisuudet | Kohokohdat |
| ------------------------------ | ----------------- | --------------------------------------------------------------------------------------- |
| 🧠**Routing & Intelligence**| 25+ | Pienimmän viiveen reititys, tunnistepohjainen reititys, kiintiön esitarkastus, P2C-tilin valinta |
| 🔒**Turvallisuus ja vaatimustenmukaisuus**| 20+ | SSRF-karkaisu, valtuustietojen peittäminen, päätepistekohtainen nopeusraja, hallintaavaimen laajuus |
| 📊**Havaittavuus**| 15+ | OpenTelemetry-integraatio, reaaliaikainen kiintiöiden seuranta, kustannusseuranta mallikohtaisesti |
| 🔄**Tarjoajien integraatiot**| 20+ | Dynaaminen mallirekisteri, palveluntarjoajan jäähtyminen, usean tilin Codex, Copilot-kiintiön jäsentäminen |
| ⚡**Suorituskyky**| 15+ | Kaksoisvälimuistikerros, kehotevälimuisti, vastausvälimuisti, suoratoiston ylläpitäminen, erä-API |
| 🌐**Ekosysteemi**| 10+ | WebSocket API, konfiguroinnin hot-reload, hajautettu konfiguraatiosäilö, kaupallinen tila |### 🔜 Coming Soon

- 🔗**OpenCode Integration**- Natiivitoimittajan tuki OpenCode AI -koodaus-IDE:lle
- 🔗**TRAE-integraatio**— Täysi tuki TRAE AI -kehityskehykselle
- 📦**Eräsovellusliittymä**— Asynkroninen eräkäsittely joukkopyyntöille
- 🎯**Tagipohjainen reititys**- Reittipyynnöt mukautettujen tunnisteiden ja metatietojen perusteella
- 💰**Alhaisimman kustannustason strategia**- Valitse automaattisesti halvin saatavilla oleva palveluntarjoaja

> 📝 Täydelliset ominaisuudet saatavilla osoitteesta [`docs/new-features/`](docs/new-features/) (217 yksityiskohtaista spesifikaatiota)---

## 👥 Contributors

[![Contributors](https://contrib.rocks/image?repo=diegosouzapw/OmniRoute&max=100&columns=20&anon=1)](https://github.com/diegosouzapw/OmniRoute/graphs/contributors)

### How to Contribute

1. Haarukka arkisto
2. Luo ominaisuushaara (`git checkout -b feature/amazing-feature`)
3. Vahvista muutokset (`git commit -m 'Lisää upea ominaisuus')
4. Työnnä haaraan (`git push origin ominaisuus/amazing-feature`)
5. Avaa vetopyyntö

Katso tarkemmat ohjeet kohdasta [CONTRIBUTING.md](CONTRIBUTING.md).### Releasing a New Version

```bash
# Create a release — npm publish happens automatically
gh release create v2.0.0 --title "v2.0.0" --generate-notes

📊 Star History

Stargazers over time

Stargazers over time

🙏 Acknowledgments

Erityinen kiitos**decolua****9router** alkuperäiselle projektille, joka inspiroi tätä haarukkaa. OmniRoute rakentaa tälle uskomattomalle perustalle lisäominaisuuksia, multimodaalisia sovellusliittymiä ja täydellistä TypeScript-uudelleenkirjoitusta.

Erityiset kiitokset**CLIProxyAPI**-sovellukselle, joka on alkuperäinen Go-toteutus, joka inspiroi tätä JavaScript-porttia.---

Lisenssi

MIT-lisenssi katso LICENSE saadaksesi lisätietoja.---

Built with ❤️ for developers who code 24/7
omniroute.online