> Rankiniu būdu apjungti nemokamus planus yra sudėtinga — dešimtys SDK, dešimtys dažnio apribojimų ir jokio supratimo, kiek iš tikrųjų turite. OmniRoute kataloge pateikiami **446 nemokamų planų įrašai, suskirstyti pagal 38 pasikartojančių išteklių fondų raktus**, o antraštėje rodomas žetonų skaičius apskaičiuojamas pagal **20 fondų, kuriems paskelbtas teigiamas mėnesio biudžetas**, pašalinant bendrų fondų pasikartojimus. Rezultatas visada matomas valdymo skydelyje (`/dashboard/free-tiers`).
> Animacinė tiesiogiai atnaujinamo `/dashboard/free-tiers` puslapio santrauka. Visa metodika (fondų pasikartojimų šalinimas, kreditų lygiai, teikėjų sąlygos): **[docs/reference/FREE_TIERS.md](docs/reference/FREE_TIERS.md)**.
>
> Šie skaičiai kas dvi savaites pakartotinai tikrinami pagal aktualų katalogą ir **gali keistis į abi puses** — teikėjui nutraukus nemokamą planą, skaičius sumažėja; atsiradus naujam, jis padidėja. Skelbiame tai, ką iš tikrųjų apskaičiuoja katalogas, o ne suapvalintą geriausią įmanomą rezultatą.
⭐ Pažymėkite saugyklą žvaigždute, jei OMNIROUTE padėjo jums sutaupyti pinigų ir palengvino darbą.
[](https://github.com/diegosouzapw/OmniRoute)
[](https://www.star-history.com/diegosouzapw/omniroute)
[](https://olud.ai/project/diegosouzapw-omniroute.html)
### 💬 Prisijunkite prie bendruomenės
**👋 Sekite prižiūrėtoją — pirmieji sužinokite apie naujus teikėjus, leidimus ir patarimus:**
[](https://www.linkedin.com/in/diegosouzapw/)
[](https://github.com/diegosouzapw)
[](https://discord.gg/U47eFqAXCn)
[](https://t.me/omnirouteOficial)
[](https://chat.whatsapp.com/FvuCbrpZmQ6I85n2vW5QIC?s=cl&p=a&mlu=4)
[](https://chat.whatsapp.com/KWgatljAjmbELQory59Oti?s=cl&p=a&mlu=4)
[](https://omniroute.online)
**Klausimai, patarimai apie teikėjus, plėtros planas ir pagalba → [Discord](https://discord.gg/U47eFqAXCn) · [Telegram](https://t.me/omnirouteOficial) · WhatsApp [🌍 pasaulinė grupė](https://chat.whatsapp.com/FvuCbrpZmQ6I85n2vW5QIC?s=cl&p=a&mlu=4) / [🇧🇷 Brazilija](https://chat.whatsapp.com/KWgatljAjmbELQory59Oti?s=cl&p=a&mlu=4) / [portalas](https://portal.sthub.com.br/communities/groups/st-hub/channels/Omniroute-World-8kRjmK)**
## 📈 Šliuzas toliau auga
## 🆓 Veikia iškart įdiegus — jokių raktų, jokios konfigūracijos
```bash
# Naujas diegimas, jokių prisijungimo duomenų — `auto` jau veikia:
curl http://localhost:20128/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{"model":"auto","messages":[{"role":"user","content":"Hello!"}]}'
```
Pageidaujate konkrečios nemokamos galinės paslaugos? Iškvieskite `oc/…` (OpenCode Free) tiesiogiai. Vėliau pereikite prie `auto` ir leiskite OmniRoute pasirinkti.📦 Kopijuoti ir įklijuoti paruošti greitojo paleidimo scenarijai, skirti **Python, Node.js, PHP ir cURL** → [`examples/quickstart/`](examples/quickstart/)
# 💥 Pažadas
# 🤔 Kodėl OmniRoute?
## 🤝 Remia mūsų atvirojo kodo draugai
> **Norite tapti atvirojo kodo draugu?** Tai įmonės, kurios remia atvirąjį kodą ir padeda „OmniRoute“ judėti pirmyn — o mes viešai nurodome, kur panaudojamas kiekvienas jų suteiktas žetonas. Susisiekite: [diegosouza.pw@outlook.com](mailto:diegosouza.pw@outlook.com)
Kimi Moonshot AI
Dėkojame Kimi (Moonshot AI), mūsų atvirojo kodo draugui steigėjui, už šio projekto rėmimą! „Kimi“ yra DI laboratorija, sukūrusi atvirų svorių K2 ir K3 modelių šeimas — Kimi K3 suteikia 1M žetonų konteksto langą, integruotą vaizdų apdorojimą ir pažangiausio lygio programavimo galimybes už gerokai mažesnę kainą nei uždarieji modeliai, taip pat iš karto veikia su „Claude Code“, „Codex“ ir visais programavimo įrankiais, kuriuos palaiko „OmniRoute“.
Ką užtikrina „Kimi“ parama: „Kimi“ API kreditai naudojami „OmniRoute“ DI patvirtinamo leidimų proceso etapui — suliejimo patvirtinimui, kurį vykdo Kimi K3 ir kuris peržiūri kiekvieną pakeitimų užklausą prieš ją išleidžiant — bei kasdieniam funkcijų kūrimui. Visavertis „Kimi“ palaikymas teikiamas abiem kanalais: per tiesioginę Kimi API (kimi-k3) ir Kimi Code programavimo planą (OAuth ir API raktas). „OmniRoute“ taip pat yra pirmasis Brazilijos atvirojo kodo projektas „Kimi“ paramos programoje. Gaukite „Kimi“ API raktą su 15 % papildomų kreditų →
Cheaper Inference cheaperinference.com
Dėkojame Cheaper Inference, „OmniRoute“ atvirojo kodo draugui, už šio projekto rėmimą! „Cheaper Inference“ yra pagal kainą optimizuotas šliuzas, per vieną su „OpenAI“ suderinamą galinį tašką perparduodantis 42 pažangiausius modelius — „Claude“, GPT-5.x, „Gemini“, Kimi K3, GLM, „DeepSeek“, „Grok“ ir „MiniMax“ — bei nukreipiantis kiekvieną užklausą pigiausiam tinkamam teikėjui, niekada netaikant didesnės kainos už modelio kūrėjo kataloginę kainą.
Visavertis palaikymas „OmniRoute“: „Chat Completions“, savasis /v1/responses galinis taškas, vaizdų apdorojimas, įrankių iškvietimas ir 3 vaizdų modeliai (grok-imagine, nano-banana-pro, nano-banana-2, pasiekiami kaip cheaperinference/<model>). Gaukite API raktą →
Nuorodos, pažymėtos aff=omniroute, yra partnerių nuorodos. Jos padeda finansuoti projektą jums nepatiriant jokių papildomų išlaidų. 🎟️ Partnerių akcijos — nemokami registracijos kuponai iš mūsų neremiamų teikėjų (spustelėkite, kad išskleistumėte)Ši skiltis skirta tik rekomendacijų ir kuponų kodams. Remiamos partnerystės pateiktos pirmiau esančioje skiltyje 🤝 Remia mūsų atvirojo kodo draugai. „OmniRoute“ nesieja jokie rėmimo ar partnerystės ryšiai su čia išvardytais teikėjais — tai vieši kuponai, kuriais gali pasinaudoti visi.
AgentRouter agentrouter.org
AgentRouter — partnerių registracija · užsiregistravę gausite $100 nemokamų kreditų (nemokamas serveris, todėl tikėtina didesnė delsa — geriausiai tinka testavimui, o ne gamybinei aplinkai). Visavertis palaikymas „OmniRoute“ nuo v3.8.50: „Chat Completions“, su „Anthropic“ suderinamas duomenų perdavimo formatas ir su „OpenAI“ suderinamas kelias. Tarp galimų modelių yra claude-opus-4-8, claude-opus-5, gpt-5.6-sol ir kiti. Pasiimkite savo $100 →
⚠️ Partnerio nuoroda — „OmniRoute“ nesieja jokie rėmimo ar partnerystės ryšiai su šiuo teikėju.
Žinote kitą teikėją, siūlantį dosnų nemokamą registracijos kuponą, kuris būtų naudingas „OmniRoute“ naudotojams? Sukurkite problemos įrašą, ir mes jį čia pridėsime.
## 🎯 Kombinacijos — pagrindinė funkcija
> **Kombinacija** yra modelių grandinė, tarp kurių OmniRoute maršrutą parenka **automatiškai**. Jei išnaudojama kvota, sutrinka teikėjo veikimas arba išauga išlaidos, kombinacija gali pereiti prie kito tinkamo ir veikiančio modelio. 🛡️
### ⚡ Nereikia jokios konfigūracijos — tiesiog naudokite `auto`
Nereikia kurti kombinacijos. Nustatykite modelį į `auto` (arba jo variantą), ir OmniRoute iš prijungtų teikėjų sukurs virtualią kombinaciją, vertinamą realiuoju laiku:
Modelio ID
Kam optimizuojama
auto
🎯 Subalansuota numatytoji parinktis (LKGP — lieka prie paskutinio sėkmingai naudoto teikėjo)
auto/coding
🧑💻 Kodo generavimo svoriai, pirmenybę teikiantys kokybei
auto/fast
⚡ Pirmiausia — mažiausia delsa
auto/cheap
💰 Pirmiausia — mažiausia vieno žetono kaina
auto/offline
🔋 Pirmiausia — didžiausias kvotos / užklausų dažnio limito rezervas
auto/smart
🔭 Pirmenybė kokybei + 10 % bandymų geresniems modeliams atrasti
auto/lkgp
📌 Aiškus prisirišimas prie paskutinio žinomo gero teikėjo
📊 Visa metodika ir išsami informacija apie kiekvieną funkciją, palyginti su 9router, OpenRouter, CLIProxyAPI ir LiteLLM → [`docs/comparison/OMNIROUTE_VS_ALTERNATIVES.md`](docs/comparison/OMNIROUTE_VS_ALTERNATIVES.md)
## 💚 Paremkite OmniRoute
OmniRoute platinamas pagal MIT licenciją ir yra atvirai prižiūrimas. Jei jis padeda sutaupyti laiko ar pinigų, štai kaip galite padėti jam išlikti nepriklausomam — rinkitės jums tinkamiausią būdą. Rėmimas niekada nedaro įtakos maršruto parinkimo prioritetui; jis suteikia matomumą, o ne aukštesnę vietą.
**🇧🇷 PIX** — akimirksniu, be mokesčių (Brazilija)
Raktas (atsitiktinis): `5d865059-bc44-483a-962d-43ceb80126eb`
Pix nukopijuokite ir įklijuokite:
```
00020101021126580014br.gov.bcb.pix01365d865059-bc44-483a-962d-43ceb80126eb5204000053039865802BR5922OMNIROUTE CONTRIBUICAO6006BRASIL62070503***630475DD
```
₿ Kriptovaliutos — BTC · ETH · USDT-TRC20 · USDC-Solana (spustelėkite, kad išskleistumėte)
₿ BTC
Bitcoin (SegWit)
bc1qh00smz004sy85wyl28v77tenkt3ckl6eaep7fd
Ξ ETH
Ethereum (ERC20)
0x64Cf6B68A6Ff34288e89172950a2d00102337a84
₮ USDT
Tron (TRC20)
TKAF41JpuQrHbKTnsQa9svJE2T192Hvsc2
$ USDC
Solana
2emNNZzVVWQc3FQ2wk9M6qXUQmW8AKdjjL174fXR28Tu
⚠️ Kiekvieną monetą siųskite tik nurodytu tinklu — siunčiant netinkamu tinklu galima prarasti lėšas.
🐛 Radote klaidą ar turite atsiliepimų? Pradėkite [diskusiją](https://github.com/diegosouzapw/OmniRoute/discussions).
Pastabos kūrėjams: Kūrėjų patogumui projekto npm install/postinstall metu gali būti sugeneruotas vietinis .env failas. Šis failas sąmoningai ignoruojamas naudojant .gitignore (žr. .gitignore) ir jo niekada negalima įtraukti į saugyklą — jei jis buvo įtrauktas netyčia, pakeiskite visus atskleistus slaptuosius duomenis ir pašalinkite failą iš istorijos. Vietinių aplinkos failų ir slaptųjų duomenų valdymo rekomendacijas rasite faile docs/DEVELOPER-ENVIRONMENT.md.
## 📡 „OmniRoute Radar“
Pagrindinis nemokamo plano rodiklis išlieka **~1.51B žetonų per mėnesį** pagal pirmiau aprašytą
katalogą, kuriame pašalinti bendrų telkinių dublikatai. Laikini registracijos pas teikėjus kreditai
pirmojo mėnesio limitą gali atskirai padidinti iki **~2.13B**. „Radar“ yra pasirenkamas pasirašytas
katalogo papildinys žmonėms, norintiems gauti naujesnę informaciją apie nemokamų modelių
prieinamumą tarp „OmniRoute“ leidimų; bendruomenės katalogas ir visos esamos nemokamos funkcijos
lieka nemokami.
Rėmėjai gali gauti tiesiogiai atnaujinamą katalogą ir papildomas teikėjų galimybes. Atskiros,
kintamos jo lubos yra **daugiausia maždaug 3B žetonų per mėnesį**, priklausomai nuo teikėjų
prieinamumo. Šios lubos nėra garantija: teikėjai gali bet kada pakeisti kvotas, tinkamumo
reikalavimus, modelius ar regionus.
„Radar“ naudojamas tik pasirinktinai ir palaiko tik GET. „OmniRoute“ klientas neįkelia užklausų,
srauto, teikėjų konfigūracijos, naudojimo telemetrijos ar vietinės pranešimų atmetimo būsenos.
Apie tinkamumo reikalavimus ir dabartinį katalogą sužinokite adresu
**[radar.omniroute.online/planos](https://radar.omniroute.online/planos)**.
## ✨ Kas naujo
> Naujausi svarbiausi pakeitimai nuo **v3.8.20 → v3.8.50**. Visa istorija pateikta [`CHANGELOG.md`](CHANGELOG.md).
- **🎛️ OmniConductor** — gaunamų A2A užduočių delegavimas jūsų agentų parkui, „Conductor“ gebėjimai agento kortelėje ir valdymo skydelio skiltis su „Faro“ tiesioginiu balso pokalbiu paspaudus mygtuką. → [A2A serveris](docs/frameworks/A2A-SERVER.md)
- **🛂 Adaptyvus užklausų priėmimas ir apsauga nuo perkrovos** — daug išteklių reikalaujančios pokalbių užklausos įtraukiamos į eilę, užuot grąžinus 503, o kiekvienam ryšiui taikomos atominės slenkančios RPM nuomos. → [Atsparumo vadovas](docs/architecture/RESILIENCE_GUIDE.md)
- **🗂️ Kanoninė `/v1/models` tvarka** — kiekvienam teikėjui skiriamas vienas vientisas pagal teikėjus sugrupuotas blokas (deriniai pateikiami pirmiausia), išliekantis stabilus visuose katalogo šaltiniuose. → [API žinynas](docs/reference/API_REFERENCE.md)
- **🗜️ Sustiprintas glaudinimas** — pagal numatytuosius nustatymus įjungta išskleidimo apsauga, „Caveman“ paketai DE / FR / JA + kinų (wényán) kalboms, RTK filtrai, skirti „Gradle“ ir .NET. → [Glaudinimas](docs/compression/COMPRESSION_ENGINES.md)
- **💸 Sąžiningai pateikiamos fiksuoto tarifo sąnaudos** — prenumeratos / programavimo planų teikėjų sąnaudų analizėje rodoma **$0**; biudžeto, kvotų ir maršruto parinkimo įverčiai skaičiuojami toliau. → [API žinynas](docs/reference/API_REFERENCE.md)
- **⚖️ Maršruto parinkimas pagal kvotų dalis** — bendrinamos paskyros kvota sąžiningai padalijama telkinyje esantiems raktams, o nenaudojamos dalys paskolinamos, kad pajėgumai neliktų neišnaudoti. → [Atsparumo vadovas](docs/architecture/RESILIENCE_GUIDE.md)
- **🤖 CLI / agentų sąranka viena komanda** — 13 registruotų `setup-*` komandų; `omniroute run` paleidžia 7 CLI („Claude Code“, „Codex“, „Aider“, „Goose“, „OpenCode“, „Qwen Code“, „Gemini CLI“); `omniroute configure` palaiko 10 tikslinių sistemų, interaktyvų teikėjo ir modelio parinkiklį bei kiekvienam kontekstui skirtus parankinius. → [CLI integracijos](docs/guides/CLI-INTEGRATIONS.md)
- **🛰️ Nuotolinis režimas** — valdykite nuotolinį „OmniRoute“ naudodami ribotos apimties prieigos raktus (`connect` / `contexts` / `tokens`) ir `antigravity` OAuth pagalbinę priemonę, skirtą VPS diegimams. → [Nuotolinis režimas](docs/guides/REMOTE-MODE.md)
- **🧭 Išmanesnis automatinis maršruto parinkimas** — `auto/:` deriniai, **Fusion** (modelių grupė + vertintojas), į užduotį atsižvelgiantis maršruto parinkimas, kiekvienos užklausos modelio / režimo / USD biudžeto perrašos. → [Automatiniai deriniai](docs/routing/AUTO-COMBO.md)
- **🗜️ Modulinis glaudinimas** — 12 tarpusavyje derinamų variklių ir „Compression Studios“: „LLMLingua-2“, dviejų lygių „Ultra“, `omniglyph`, kiekvieno žingsnio tikslumo patikra, GCF v3.2, pertvarkymo velkant redaktorius. → [Glaudinimas](docs/compression/COMPRESSION_ENGINES.md)
- **🕵️ Skaidrus MITM iššifravimas (TPROXY)** — perimkite CLI, ignoruojančias tarpinio serverio aplinkos kintamuosius, naudodami kiekvienam SNI skirtą CA ir patikimų sertifikatų saugyklos diegimo priemonę. → [MITM/TPROXY](docs/security/MITM-TPROXY-DECRYPT.md)
- **💸 Sąnaudų telemetrija visur** — `X-OmniRoute-*` sąnaudų / naudojimo antraštės kiekviename galiniame taške, talpyklos HIT sutaupymo antraštė, kiekvienam raktui taikomos išlaidų USD kvotos. → [API žinynas](docs/reference/API_REFERENCE.md)
- **🧠 Jūsų valdoma atmintis** — pagal numatytuosius nustatymus išjungta, pasirinktinai įjungiama int8 vektorių kvantizacija ir tipizuotas nykimas, kiekvienai užklausai skirtas `x-omniroute-no-memory`. → [Atmintis](docs/frameworks/MEMORY.md)
- **🛡️ Saugumas** — apsauga nuo raginimų injekcijų visuose LLM maršrutuose (raudonosios komandos testų rinkinys), pasirinktinai įjungiama prisijungimo duomenų maskavimo apsauga (abiem kryptimis užmaskuoja nutekintus API raktus / slaptus duomenis), nemokama paskutinės išeities „DuckDuckGo“ paieška žiniatinklyje ir pasirenkamas OIDC prisijungimo barjeras valdymo skydeliui (prisijungimas slaptažodžiu visada lieka prieinamas). → [Apsaugos priemonės](docs/security/GUARDRAILS.md)
- **🖼️ Nauji galiniai taškai** — `/v1/ocr` („Mistral OCR“) ir `/v1/audio/translations` („Whisper“ stiliaus) papildo medijos API galimybes. → [API žinynas](docs/reference/API_REFERENCE.md)
- **🎨 Vaizdų / vaizdo įrašų / garso generavimas** — viena API medijai: „xAI Grok Imagine“ ir „Novita AI“ vaizdo įrašai, „ComfyUI“, „Magnific“, „Adobe Firefly“, „Segmind“ ir kalbos teikėjai, tokie kaip „ElevenLabs“. → [API žinynas](docs/reference/API_REFERENCE.md)
- **🌍 Diegimas ir eksploatavimas** — atvirkštinio tarpinio serverio `basePath`, automatinis naršyklės kalbos aptikimas, įrenginių stebėjimas pagal raktą, MITM patikimumo nustatymas be root teisių, zh-TW lokalizacija. → [Aplinka](docs/reference/ENVIRONMENT.md)
- **🤝 Daugiau teikėjų ir agentų** — debesijos agentai („Codex Cloud“, „Cursor“, „Devin“, „Jules“), „Grok Build“ (xAI) su naršykle ir OAuth prisijungimu, visavertė „Ollama“ kortelė, „Claude Opus 5“ ir „Sonnet 5“, oficiali partnerystė su „Kimi“ („Code“ / „Web“ / „Moonshot“), „Zed“, „Requesty“, „SenseNova“, „Yuanbao“, „Agnes AI“… ir atnaujintas **352 teikėjų katalogas**. → [Teikėjai](docs/reference/PROVIDER_REFERENCE.md)
- **📡 Maršruto parinkimo skaidrumas** — kiekviename atsakyme pateikiama `X-OmniRoute-Decision` antraštė, nurodanti jį aptarnavusią strategiją / teikėją / delsą; nauja `cache-optimized` derinių strategija ir automatinių derinių `cacheAffinity` veiksnys pakartotines užklausas nukreipia į ryšį, kuriame saugomas talpyklos prefiksas, o tik skaitymui skirtas `/v1/auto-combo/{channel}/candidates` galinis taškas atskleidžia tiesiogiai atnaujinamą `auto/*` kanalo kandidatų telkinį. → [Automatiniai deriniai](docs/routing/AUTO-COMBO.md)
- **⚡ Vietinis našumas ir infrastruktūra** — vienu spustelėjimu įdiegiamas vietinis „Redis“, „Cloudflare Workers“ / „Deno Deploy“ perdavimo serverių diegimo priemonės, „Bifrost“ ir „Mux“ kaip prižiūrimos įtaisytosios paslaugos. → [Įtaisytosios paslaugos](docs/frameworks/EMBEDDED-SERVICES.md)
- **🧩 Taip pat įtraukta** — papildinių sistema ir prekyvietė, „Omni“ / agentų / „GitHub“ gebėjimų sistemos, „Obsidian“ saugyklos integracija (22 MCP įrankiai), su „OpenAI“ suderinamos „Batch“ ir „Files“ API, semantinė atsakymų talpykla, žaidybinimas su lyderių lentelėmis, ACP agentų aptikimas (15 integruotų agentų), suplanuotas žurnalų eksportas į „BigQuery“, `auto/chaos` gedimų imitavimas, „Telegram“ roboto tiltas, programoje integruota versijų tvarkytuvė ir nemokamų teikėjų „LMArena-ELO“ reitingai. → [Dokumentacija](docs/README.md)
## 🤖 Suderinamos CLI ir programavimo agentai
> Viena konfigūracija — `http://localhost:20128/v1` — ir **kiekviena** DI IDE ar CLI veikia su nemokamais ir nebrangiais modeliais.
+ taip pat veikia su · Kiro · Command Code · Antigravity · Windsurf · AMP · bet kuriuo su OpenAI suderinamu įrankiu
📖 Visų 36 įrankių konfigūravimas pagal konkretų įrankį (26 CLI programavimo įrankiai ir 10 CLI agentų) → [`docs/reference/CLI-TOOLS.md`](docs/reference/CLI-TOOLS.md) · 🧩 OpenCode papildinys → [`@omniroute/opencode-provider`](https://www.npmjs.com/package/@omniroute/opencode-provider)
**Paleiskite bet kurią palaikomą CLI per OmniRoute viena komanda** — konfigūracijos failai neįrašomi,
prisijungimo duomenys įterpiami kiekvienam procesui atskirai, o Qwen/Gemini gauna laikiną izoliuotą namų katalogą:
```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"
# Arba interaktyviai pasirinkite teikėją ir modelį bei įrašykite paties įrankio konfigūraciją:
omniroute configure codex # taip pat: claude opencode qwen aider goose gemini cline continue kilo
```
Kiekviena komanda naudoja aktyvų nuotolinį kontekstą (`omniroute connect `), `--dry-run`
parodo tikslias aplinkos reikšmes ir argumentus nevykdydama komandos, o `--api-key-env NAME` neleidžia paslaptims
patekti į jūsų apvalkalo istoriją. → [CLI integracijos](docs/guides/CLI-INTEGRATIONS.md)
## 🌐 352 DI teikėjai — 152 kataloge pažymėti kaip nemokami
> **352 registruoti teikėjai** kanoniniuose pokalbių, medijos, paieškos, vietinių, debesijos agentų ir sistemos rinkiniuose, įskaitant **152 su `hasFree: true` aptikimo metaduomenimis**. Pokalbių modelių registre yra **229 teikėjai / 2,554 unikalios teikėjo ir modelio poros / 1,283 neapdoroti modelių ID**; atskirame nemokamų limitų kataloge yra **446 kiekvieno modelio įrašai**, **38 pasikartojantys fondai** ir **53 pasikartojantys / rakto nereikalaujantys amžinai nemokami teikėjai**. Šie vardikliai skiriasi specialiai; apibrėžimus ir skaičiavimus, kuriuose pasikartojantys fondai skaičiuojami tik vieną kartą, rasite [Teikėjų žinyne](docs/reference/PROVIDER_REFERENCE.md) ir [Nemokamų planų apraše](docs/reference/FREE_TIERS.md).
### 🏢 Visos pagrindinės laboratorijos — per vieną galinį tašką
OpenAI
Anthropic
Gemini
xAI Grok
DeepSeek
Mistral
Qwen
Meta Llama
Groq
NVIDIA
MiniMax
Cohere
Perplexity
HuggingFace
Together
Fireworks
Cloudflare
Baidu
…ir dar 330+ — kiekviena piktograma tiesiogiai gaunama iš ataskaitų skydelio teikėjų katalogo. 📖 [Teikėjų žinynas](docs/reference/PROVIDER_REFERENCE.md)
### 🆓 Nemokamai visam laikui — $0, nereikia kortelės
OpenCode Zen DeepSeek V4, Nemotron 3 Nėra žetonų limito
Kilo Code Automatinis maršruto parinkimas, Tencent Hy3 Nemokamai visam laikui
Requesty GPT-OSS 120B, Nemotron Nemokamai visam laikui
SiliconFlow DeepSeek V3.2 / R1 Nemokamas planas
Z.AI GLM GLM-4.7 / 4.5-Flash Nemokamai visam laikui
Baidu ERNIE ERNIE 4.0 Nemokamai visam laikui
Qoder AI Qwen3-Max, Kimi-K2 Neribotai ir NEMOKAMAI
Pollinations GPT, Llama, Claude Rakto nereikia
Cloudflare AI 50+ modelių 10K neuronų per dieną
NVIDIA NIM GLM, MiniMax ~40 RPM nemokamai
Cerebras GLM 4.7, GPT-OSS 1M žetonų per dieną
OpenRouter :free modeliai +$10 → didesnis RPM
📖 Visas mašininiu būdu skaitomas katalogas → [`docs/reference/PROVIDER_REFERENCE.md`](docs/reference/PROVIDER_REFERENCE.md)
## 🖥️ Kur veikia „OmniRoute“ — bet kur
> Ta pati programa, jūsų įrenginys, jūsų taisyklės. Nuo visuotinio diegimo per npm iki **jūsų telefono** naudojant „Termux“.
Platforma
Diegimas
Svarbiausios ypatybės
📦 npm (visuotinis)
npm install -g omniroute
Viena komanda, bet kuri OS
🐳 Docker
docker run … diegosouzapw/omniroute
Kelių architektūrų: AMD64 + ARM64
🖥️ Darbalaukis (Electron)
npm run electron:build
Savasis langas ir sistemos dėklas — Windows / macOS / Linux
💪 ARM
savasis arm64
Raspberry Pi, ARM serveriai, Apple Silicon
📱 Android (Termux)
pkg install nodejs && npx -y omniroute
Veikia jūsų telefone visą parą, nereikia „root“ teisių
📲 PWA
„Pridėti prie pradžios ekrano“
Viso ekrano režimas, veikia neprisijungus, galima įdiegti iš naršyklės
🧩 OpenCode papildinys
@omniroute/opencode-provider
Savoji „OpenCode“ integracija
🤖 VS Code Copilot Chat
įdiekite OmniCopilot plėtinį
Visi „OmniRoute“ modeliai savajame „Copilot Chat“ pasirinkimo sąraše — stabilioje ir „Insiders“ versijose
> Jokios naujos šoninės juostos, jokios naujos pokalbių sąsajos — visi „OmniRoute“ pateikiami modeliai rodomi tiesiog
> **jūsų jau naudojamame „Copilot Chat“ modelių pasirinkimo sąraše**. Nuo VS Code 1.122 teikėjų modeliai veikia
> neprisijungus prie „GitHub“ ir be „Copilot“ prenumeratos — agento režimas, įrankių iškvietimas ir vaizdų apdorojimas,
> nemokamai.
Įdiekite **[OmniCopilot](https://github.com/diegosouzapw/OmniCopilot)** plėtinį, nukreipkite jį
į savo „OmniRoute“ serverį (numatytoji reikšmė — `localhost:20128`), tada atverkite „Copilot Chat“ → modelių pasirinkimo sąrašą
→ **Tvarkyti modelius…** → **OmniRoute**.
> Be serverio, „OmniRoute“ yra **visavertis komandų eilutės valdymo centras**, turintis **daugiau nei 80 komandų**, taip pat atviruosius agentų protokolus, todėl DI agentas gali jį valdyti **savarankiškai**.
### ⌨️ Tikra CLI (ne vien `start`)
```bash
omniroute # paleisti tinklų sietuvą ir valdymo skydelį (20128 prievadas)
omniroute chat # interaktyvus TUI pokalbių klientas (komandos su pasviruoju brūkšniu: /model /combo /skill /memory)
omniroute setup # vedlys, padedantis atlikti pradinę sąranką
omniroute doctor # diagnozuoti teikėjus, prievadus ir savąsias priklausomybes
```
### 🛰️ Nuotolinis režimas — CLI paleiskite čia, o „OmniRoute“ — VPS serveryje
„OmniRoute“ veikia serveryje? Valdykite jį iš savo nešiojamojo kompiuterio naudodami **tą pačią CLI**. Vieną kartą prisijunkite
naudodami ribotos aprėpties prieigos prieigos raktą; tuomet kiekviena komanda bus vykdoma nuotoliniame serveryje.
```bash
omniroute connect 192.168.0.15 # slaptažodis → ribotos aprėpties prieigos raktas, išsaugomas kaip kontekstas
omniroute models list # ← vykdoma NUOTOLINIAME serveryje
omniroute configure codex # ← pasirenkamas nuotolinis modelis, įrašomas vietinis Codex profilis
omniroute tokens create --name ci --scope read # sukurti siauresnės aprėpties prieigos raktus kitiems kompiuteriams
omniroute contexts use default # ← grįžti prie vietinio serverio
```
Prieigos raktų aprėptys yra `read` / `write` / `admin`; procesus paleidžiantys maršrutai lieka pasiekiami tik per atgalinio ryšio sąsają.
📖 [Nuotolinis režimas](docs/guides/REMOTE-MODE.md)
### 🤝 Prijunkite agentą — ir jis pats valdys „OmniRoute“
Suteikite prieigą prie „OmniRoute“ per **MCP**, **A2A**, **REST API**, **saityno įvykių pranešimus** arba **nuotolinę CLI** — bet kuris pajėgus agentas (ar jūsų pačių kodas) gaus viso tinklų sietuvo valdymo galimybes: maršrutizavimo, teikėjų, derinių, podėlio, glaudinimo ir atminties — visa tai galės valdyti savarankiškai. Toliau nurodyti HTTP galiniai taškai pasiekiami adresu `http://localhost:20128`.
Sąsaja
Galinis taškas / komanda
Kam skirta
🧰 MCP (stdio)
omniroute --mcp
Prijungti prie Claude Desktop, Cursor ar bet kurio MCP kliento
Ryšys tarp agentų, JSON-RPC 2.0 + SSE, 6 gebėjimai
🌐 REST API
/v1/*
Suderinama su OpenAI — pokalbiai, įterpiniai, vaizdai, garsas, OCR
🔔 Saityno įvykių pranešimai
/api/webhooks
Siųsti užklausų / kvotų įvykius į Slack, Discord, Telegram arba bet kurį URL
🛰️ Nuotolinė CLI
omniroute connect
Valdyti nuotolinį egzempliorių naudojant ribotos aprėpties prieigos raktus
```bash
# Suteikti Claude Code visą „OmniRoute“ įrankių rinkinį per MCP:
claude mcp add-server omniroute --type http --url http://localhost:20128/api/mcp/stream
```
📖 [MCP serveris](docs/frameworks/MCP-SERVER.md) · [A2A serveris](docs/frameworks/A2A-SERVER.md) · [Agentų protokolai](docs/frameworks/AGENT_PROTOCOLS_GUIDE.md)
## 🗜️ Sutaupykite 15–95 % tokenų — automatiškai
### 📖 Kaip tai veikia — konvejeris, architektūra ir sutaupymo skaičiavimas
Numatytasis sudėtinis derinys vykdo `RTK → Caveman`. Kai abu varikliai apdoroja tą pačią įrankio ar konteksto naudingąją apkrovą, sutaupymas dauginasi:
```txt
combined = 1 − (1 − RTK) × (1 − Caveman_input)
average = 1 − (1 − 0.80) × (1 − 0.46) = 89.2%
range = 78.4 – 94.6%
```
Kodo blokai, URL, JSON ir struktūriniai duomenys išsaugojimo variklio yra **visada apsaugomi**.
> **Kam naudoti daug tokenų, kai pakanka kelių?** Kiekviena užklausa pereina per OmniRoute glaudinimo konvejerį **skaidriai** — kliento keisti nereikia. Dabar tai yra **12 komponuojamų variklių rinkinys**, kuris vykdomas nustatyta tvarka ir kurio komponentus galima derinti kiekviename maršruto parinkimo derinyje — remiantis [RTK](https://github.com/rtk-ai/rtk), [Caveman](https://github.com/JuliusBrussee/caveman) (⭐ 90K+), [LLMLingua-2](https://github.com/microsoft/LLMLingua) ir [Troglodita](https://github.com/leninejunior/troglodita) (PT-BR) idėjomis.
### 🧱 12 variklių rinkinys
Varikliai vykdomi konvejerio tvarka; kiekvieną jų galima atskirai įjungti, išjungti ir konfigūruoti kiekvienam deriniui:
#
Variklis
Ką jis daro
1
Session-Dedup
Pašalina tarp sąveikos etapų pasikartojantį turinį (pagal turinio adresavimą, tarp etapų)
2
CCR
Archyvuoja didelius blokus už gavimo žymeklių, o prireikus juos gauna
3
Lite
Pašalina perteklinius tarpus ir vaizdų URL (mažos delsos bazinis variantas)
4
RTK
Išmaniai filtruoja, deduplikuoja ir trumpina įrankių rezultatus (atsižvelgdamas į komandą)
5
Responses Tool Output
Pirmiausia nenuostolingas JSON ir ribotas diagnostinis shell/patch/search/build išvesčių glaudinimas (Responses API)
Apibendrina ir laipsniškai sendina senus sąveikos etapus
10
LLMLingua-2
ML semantinis retinimas naudojant MobileBERT ONNX — saugus kodui, asinchroninis
11
Ultra
Heuristinis tokenų retinimas su pasirinktine mažo modelio (SLM) pakopa
12
OmniGlyph
Eksperimentinis konteksto kaip vaizdo kodavimas, skirtas išmatuotam Claude Fable 5 tiesioginiame Anthropic ryšyje; GPT 5.6 transformatoriai lieka saugiai išjungti, kol laukiama tiekėjo patvirtinimų. Keturi glaudinimo profiliai (numatytasis agresyvus, subalansuotas, saugus kodavimui, praleidžiantis be pakeitimų) (agresyviausias; pasirenkamas)
Kodo blokai, URL ir struktūriniai duomenys **visada išsaugomi** baito tikslumu. **Vienu spustelėjimu pasirenkami išankstiniai nustatymai** sujungia variklius:
Režimas
Sutaupymas
Geriausiai tinka
🪶 Lite
~15 %
Saugus numatytasis režimas, kurį galima visada laikyti įjungtą
🪨 Standard (Caveman)
~30 %
Kasdieniam programavimui
⚡ Aggressive
~50 %
Ilgoms sesijoms, kuriose intensyviai naudojami įrankiai
🔥 Ultra
~75 %
Didžiausiam sutaupymui
🧰 RTK
60–90 %
Shell/test/build/git išvesčiai
🔗 Sudėtinis (RTK → Caveman)
78–95 %
Mišrioms užklausoms ir įrankių žurnalams
**Tikras pavyzdys — Standard režimas:**
> **Prieš (69 tokenai):** _„Tikėtina, kad jūsų React komponentas atvaizduojamas iš naujo todėl, kad per kiekvieną atvaizdavimo ciklą sukuriate naują objekto nuorodą. Kai perduodate įterptinį objektą kaip prop, React paviršinis palyginimas kiekvieną kartą jį laiko kitu objektu, todėl suaktyvinamas pakartotinis atvaizdavimas. Rekomenduočiau naudoti useMemo objektui įsiminti.“_
>
> **Po (19 tokenų):** _„Kiekvieną kartą atvaizduojant sukuriama nauja objekto nuoroda. Įterptinis objekto prop = nauja nuoroda = pakartotinis atvaizdavimas. Naudokite useMemo.“_
>
> **Tas pats atsakymas. 72 % mažiau tokenų. Jokio tikslumo praradimo.** ✅
**PT-BR pavyzdys — [Troglodita](https://github.com/leninejunior/troglodita) režimas:**
> **Prieš (42 tokenai):** _„Problema ta, kad komponentas atvaizduojamas iš naujo, nes per kiekvieną atvaizdavimo ciklą sukuriama nauja objekto nuoroda. Rekomenduočiau naudoti useMemo.“_
>
> **Po (12 tokenų):** _„Pakartotinis atvaizdavimas: nauja nuoroda kiekviename cikle (įterptinis objektas sukuriamas iš naujo). Naudokite `useMemo`.“_
>
> **Tas pats atsakymas. ~70 % mažiau tokenų. Techninis tikslumas nepakito.** ✅
### 🎚️ Daugiau nei varikliai — išvesties stiliai, adaptyvus reguliatorius ir kiekvienos užklausos valdymas
12 pirmiau nurodytų variklių sumažina tai, kas patenka **į vidų**. Dar trys sluoksniai nustato, **kaip**, **kada** ir kas pateikiama **išorėn**:
- **🪄 Išvesties stiliai** _(išvesties ašies valdymas)_ — įterpia deterministines, podėliui saugias atsakymo formavimo instrukcijas; stilius galima derinti, kiekvienam pasirenkant `lite` / `full` / `ultra` intensyvumą. Stiliui pridėti pakanka vienos registro eilutės:
- **Glausta proza** — pašalinami užpildai, artikeliai ir abejonės; techninis turinys išlaikomas tikslus.
- **Mažiau kodo** — „tingaus vyresniojo programuotojo“ YAGNI principas: mažiausias veikiantis pakeitimas, jokios neprašytos papildomos struktūros.
- **Ponytail (tingus vyresnysis programuotojas)** — kopkite YAGNI laipteliais, pašalinkite pagrindinę priežastį, pateikite mažiausią veikiančią pataisą.
- **Turiu ADHD (pirmiausia veiksmas)** — pradėkite nuo kito veiksmo, sunumeruokite veiksmus, pateikite vieną konkretų kitą žingsnį, be įžangos.
- **Glaustas CJK (文言)** — itin glaustas klasikinės kinų kalbos stilius (pagal lokalę apribotas iki `zh`).
- **🎯 Adaptyvus konteksto biudžetas** _(reguliatorius)_ — užuot naudojus vieną įjungimo ar išjungimo tokenų slenkstį, pigiausi ir mažiausiai nuostolingi varikliai stiprinami tik tiek, kiek reikia, kad turinys **tilptų į modelio konteksto langą**. Strategija: `reserve-output` (numatytoji, atsižvelgianti į modelį) · `percentage` · `absolute`. Režimas: `floor` (garantuoti, kad tilps) · `replace-autotrigger` (jūsų aiškus pasirinkimas turi pirmenybę) · `off` (senasis slenkstis).
- **🎛️ Kur priimamas sprendimas dėl glaudinimo** _(pirmenybė nuo aukščiausios iki žemiausios)_ — kiekvienos užklausos `x-omniroute-compression` antraštė › maršruto parinkimo derinio perrašymas › aktyvus įvardytasis profilis › adaptyvus arba automatinis suaktyvinimas › skydelio numatytoji nuostata › išjungta. Pritaikytas planas grąžinamas `X-OmniRoute-Compression: ; source=` atsakymo antraštėje.
Nustatykite automatinį suaktyvinimą pagal tokenų slenkstį, įjunkite adaptyvų reguliatorių, prisekite įvardytąjį profilį, nustatykite vienkartinę parinktį konkrečiai užklausai arba priskirkite konvejerį kiekvienam maršruto parinkimo deriniui — rinkitės tai, kas geriausiai atitinka darbo krūvį. Pasirenkama autonominė **vertinimo sistema** (`npm run eval:compression`) prieš paskelbiant pakeitimą įvertina fiksuoto tekstyno tikslumo ir sutaupymo santykį.
📖 [`COMPRESSION_GUIDE.md`](docs/compression/COMPRESSION_GUIDE.md) · [`RTK_COMPRESSION.md`](docs/compression/RTK_COMPRESSION.md) · [`COMPRESSION_ENGINES.md`](docs/compression/COMPRESSION_ENGINES.md)
# ⚡ Greitoji pradžia
**1) Įdiekite ir paleiskite**
```bash
npm install -g omniroute
omniroute
```
> 💡 Matote `npm warn ERESOLVE` arba peer-dep įspėjimus? [Jie nepavojingi](docs/guides/TROUBLESHOOTING.md#npm-install-warnings-eresolve--peer--deprecated).
Valdymo skydelis pasiekiamas adresu `http://localhost:20128` · API pasiekiama adresu `http://localhost:20128/v1`.
**2) Prijunkite NEMOKAMĄ tiekėją (registruotis nereikia)**
Valdymo skydelis → **Tiekėjai** → prijunkite **Kiro AI** (nemokamas Claude, ~50 kreditų per mėnesį vienai paskyrai) arba **OpenCode Free** (autentifikuotis nereikia) → atlikta.
**3) Nukreipkite savo programavimo įrankį**
```txt
Base URL: http://localhost:20128/v1
API Key: [nukopijuokite iš Valdymo skydelis → Galiniai taškai]
Model: auto (išmanusis maršruto parinkimas be konfigūracijos — arba bet kuris tiekėjas / modelis)
```
**4) Patikrinkite, ar viskas veikia**
```bash
curl http://localhost:20128/v1/models -H "Authorization: Bearer YOUR_KEY"
```
Turėtumėte matyti prijungtų modelių sąrašą. 🎉 Štai ir viskas — pradėkite programuoti, o OmniRoute automatiškai parinks maršrutą ir prireikus persijungs į atsarginį variantą.
Jei jūsų klientas negali siųsti pasirinktinių antraščių, OmniRoute taip pat pateikia su tokenu susietus suderinamumo alternatyviuosius adresus:
```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
```
Juos naudokite tik klientams, kurie negali pridėti `Authorization: Bearer ...`. Autentifikavimas naudojant antraštę išlieka pageidaujamu režimu.
## 📦 Daugiau diegimo būdų — Docker, šaltinio kodas, 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` nurodo aukščiausią **paskelbtą** stabilų SemVer leidimą. Jis neseka git `main` šakos. Naudodami GitOps, prisekite `:X.Y.Z`. Žr. [Docker leidimų kanalai](docs/guides/DOCKER_GUIDE.md#release-channels). Atvaizde nustatyta fiksuota **`OMNIROUTE_MEMORY_MB=1024`** reikšmė. Jos pakanka valdymo skydeliui ir lengvam pokalbiui. **Programavimo agentams** (`POST /v1/responses` iš Claude Code, Codex, Grok, …) reikia gerokai didesnės V8 krūvos, kitaip, persidengus dviem ilgiems kontekstams, procesas patiria `FATAL ERROR` ties ~12 GiB riba. Konteineriui skirkite daugiau atminties nei krūvai (vietiniai buferiai yra už V8 ribų):
| Darbo krūvis | Krūva (`-e OMNIROUTE_MEMORY_MB`) | Konteineris (`--memory`) |
| ------------------------------------------------ | ------------------------------------ | ------------------------ |
| Valdymo skydelis / lengvas pokalbis | `1024` (numatytoji atvaizdo reikšmė) | ≥2 g |
| Vienas programavimo agentas | `8192` | ≥10 g |
| Dvi lygiagrečios ilgos `/v1/responses` užklausos | `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
```
Visa lentelė: [Docker vadovas — vykdymo atmintis](docs/guides/DOCKER_GUIDE.md#runtime-ram-for-coding-agents).
> **Išankstinių Docker leidimų kanalas:** `diegosouzapw/omniroute:next` ir
> `diegosouzapw/omniroute:next-web` seka dabartinę numatytąją `release/v*`
> šaką. Šios kintamos žymos skirtos tik dar neišleistoms pataisoms testuoti ir
> **nėra palaikomos gamybinėje aplinkoje**. Žr.
> [Docker leidimų kanalai](docs/guides/DOCKER_GUIDE.md#release-channels).
**🥟 Bun**
Standartinis `bun install` ir visuotinis diegimas (`bun install -g omniroute`) palaikomi aptinkant Bun vykdymo aplinką:
- **Integruotas `bun:sqlite`**: veikdama Bun aplinkoje, OmniRoute naudoja integruotą Bun `bun:sqlite` tvarkyklę, o Node.js aplinkoje naudoja `better-sqlite3` arba `sql.js` kaip atsarginį variantą.
- **Automatinis Webpack paketų kūrimo įrankio parinkimas kūrimo aplinkoje**: kūrimo režimas (`bun run dev`) automatiškai aptinka Bun ir vietoje Turbopack įjungia Webpack, kad būtų išvengta nesuderinamumo su vietinėmis V8 sąsajomis. Gamybiniai komponavimai (`bun run build`) tiksliai vadovaujasi `OMNIROUTE_USE_TURBOPACK`, kaip ir Node aplinkoje: pagal numatytąją parinktį naudojamas Turbopack, o `OMNIROUTE_USE_TURBOPACK=0` nurodo komponuoti naudojant Webpack (`Dockerfile.bun` pateikia jį kaip `--build-arg`).
- **Specialus Bun Dockerfile**: kelių etapų `Dockerfile.bun`, skirtas vietiniams Bun gamybiniams diegimams (`docker build -f Dockerfile.bun -t omniroute:bun .`).
```bash
# Įdiekite ir paleiskite naudodami Bun
bun install
bun run dev
```
**🛠️ Iš šaltinio kodo**
```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
# Naudojant Nix flakes
nix develop
npm run dev
# Arba naudojant devbox
devbox run npm run dev
```
📖 [Docker vadovas](docs/guides/DOCKER_GUIDE.md) — Compose profiliai, Caddy HTTPS, Cloudflare tuneliai.
**🦭 Podman**
```bash
# 1. Paruoškite prijungiamą duomenų katalogą
mkdir -p data
# 2. Tik Linux ir vietiniam bešakniam Podman (niekada ne nuotoliniam Podman Machine klientui):
podman unshare chown 1000:1000 ./data
# 3. Nustatykite vykdymo aplinkos nuorodą, sukomponuokite vietinį Compose atvaizdą ir paleiskite
echo "CONTAINER_HOST=podman" >> .env
podman compose --profile base up -d --build
```
macOS arba Windows sistemose Podman naudoja nuotolinę Podman Machine: praleiskite `podman unshare` ir
vadovaukitės [konkrečiai topologijai skirtomis duomenų katalogo gairėmis](contrib/podman/README.md#data-directory-permissions-by-topology).
📖 [Podman vadovas](contrib/podman/README.md) — Compose komponavimas, Podman Machine ir
Linux/systemd Quadlet sąranka.
**⚡ Spartesnis / mažiau išteklių naudojantis diegimas (praleidžiant vietinį komponavimą)**
Vietinis SQLite variklis (`better-sqlite3`) yra **pasirenkamoji** priklausomybė, todėl visuotinis
diegimas niekada neužstringa dėl kompiliavimo iš šaltinio kodo: kai jūsų platformai ar Node versijai
tinka iš anksto sukompiliuotas dvejetainis failas, naudojamas jis, o kitu atveju skaidriai pereinama
prie grynojo JS variklio (`node:sqlite` Node 22+ aplinkoje, kitu atveju — pridėtojo `sql.js` WASM) — komponavimo įrankių nereikia.
Norėdami visiškai praleisti po įdiegimo atliekamą vietinį paruošimą (CI, aplinkose be grafinės sąsajos ar lėtuose įrenginiuose):
```bash
OMNIROUTE_SKIP_POSTINSTALL=1 npm install -g omniroute # CI=1 taip pat jį praleidžia
```
Sparčiausiam diegimui rinkitės **pnpm** (pagal turinį adresuojama saugykla ir standžiosios nuorodos — žr. pirmiau).
Norėdami naudoti begrafinę vykdymo aplinką be valdymo skydelio, pasirinkite Docker `base` profilį (pirmiau) arba
[Termux vadovą](docs/guides/TERMUX_GUIDE.md). CLI ir žiniatinklio valdymo skydelį aptarnauja tas pats
procesas per vieną prievadą, todėl šiuo metu atskiro tik CLI skirto paketo nėra.
Testų aprėpties strategija, skirta 39 000+ statinių testų deklaracijų daugiau nei 5 100 sekamų testų failų
# ⭐ Daugiausia prisidėję dalyviai
> OmniRoute kuria entuziastinga atvirojo kodo bendruomenė. Šie žmonės išskirtinai prisidėjo ir tiesiogiai veikia projekto kokybę, stabilumą bei pasiekiamumą. **Ačiū.**
### Išorės dalyviai pagal sulietas ištraukimo užklausas
Duomenys užfiksuoti ties aktyvios release/v3.8.50 šakos viršūne dafb4ae808, įtraukiant suliejimus iki 2026-08-24 05:26:03 UTC. GitHub GraphQL puslapiais suskirstytame surašyme yra 5 911 sulietų PR: 2 707 pateikė saugyklos savininkas, 179 — Dependabot, o 3 025 išorines PR pateikė 535 skirtingi dalyviai. „Pakeistos eilutės“ yra GitHub pridėtų ir pašalintų eilučių suma, apimanti sugeneruotus failus, priklausomybių fiksavimo failus, katalogus, vertimus ir dokumentaciją; tai pakeitimų apimtis, o ne autoriaus parašytų kodo eilučių skaičius. Lygiosios ties atrankos riba išlaikytos.
### GitHub priskirti įrašai
Bob.Hou 🏅 51 GitHub priskirtas įrašas · dalijasi 10 vietą
Xiangzhe 🏅 51 GitHub priskirtas įrašas · dalijasi 10 vietą
Pakartotinai patikrinta 2026-08-24 06:14:31 UTC: GitHub priskirti įrašai, kuriuos saugyklos Contributors API pateikė numatytajai release/v3.8.50 šakai. API grąžino 525 tapatybes (415 naudotojų, 2 robotus, 108 anoniminius dalyvius); šioje lentelėje neįtrauktas prižiūrėtojas, robotai ir anoniminės tapatybės, o vienodi rezultatai išlaikyti. Šis sąrašas skiriasi ir nuo pirmiau pateikto sulietų PR reitingo, ir nuo toliau pateikto 639 asmenų Git metaduomenų surašymo.
> 🙏 Šių dalyvių sukurtos funkcijos, klaidų pataisymai ir infrastruktūros patobulinimai yra **esminė dalis** to, kas daro OmniRoute patikimą ir funkcionalų. Svarbi kiekviena ištraukimo užklausa, kiekvienas testavimo atvejis ir kiekvienas i18n vertimo failas. Atvirąjį kodą kuria tokie žmonės kaip jie.
---
## 💖 Rėmėjai
Nuoširdžiai dėkojame žmonėms, kurie finansuoja „OmniRoute“ iš savo kišenės — kiekvienas įnašas padeda projektui išlikti nemokamam, nepriklausomam ir judėti pirmyn.
longtao 💛 Anksčiau vienkartinę paramą suteikęs rėmėjas
… ir kiti, pageidaujantys likti nežinomi 💛Vieši „GitHub Sponsors“ rėmėjai pakartotinai patikrinti 2026-08-24. Anksčiau pateiktas aktyvumo žymas nustato „GitHub“ būsena activeOnly; anksčiau paviešintiems vienkartiniams rėmėjams ir toliau dėkojama, o privatūs rėmėjai išlieka anonimiški.💖 Tapkite rėmėju → — kiekvienas doleris padeda „OmniRoute“ išlikti nemokamam ir nepriklausomam.
## 👥 Daugiau nei 600 prisidėjusiųjų
[](https://github.com/diegosouzapw/OmniRoute/graphs/contributors)
Auditas atliktas 2026-08-24 naudojant fiksuotą bazę ac02c5b42f ir pakartotinai patikrintas tiesioginės release/v3.8.50 šakos viršūnėje dafb4ae808: 639 normalizuotos žmonių „Git“ tapatybės — 407 nurodyti kaip įsipareigojimų autoriai (įskaitant prižiūrėtoją), o 232 nurodyti tik aiškiose Co-authored-by pabaigos eilutėse. Atliekant apskaitą normalizuojamos „GitHub“ noreply paskyros, neįtraukiamos 26 robotų, agentų, paslaugų ir vietaženklių tapatybės, o įprasti el. pašto adresai nesujungiami vien todėl, kad sutampa jų rodomi vardai.
### Kaip prisidėti
1. Sukurkite saugyklos kopiją
2. Sukurkite šaką nuo **aktyvios** `release/vX.Y.Z` šakos viršūnės (ne nuo `main`) — žr. [Šakų ir laidų modelį](docs/ops/BRANCHING_MODEL.md)
3. Sukurkite savo funkcijos šaką (`git checkout -b feat/amazing-feature`)
4. Patvirtinkite savo pakeitimus (`git commit -m 'feat: add amazing feature'`)
5. Nusiųskite pakeitimus į šaką (`git push origin feat/amazing-feature`)
6. Atidarykite pakeitimų užklausą, kurios **bazė = ta `release/vX.Y.Z` šaka**
Išsamias gaires rasite faile [CONTRIBUTING.md](CONTRIBUTING.md).
### Naujos versijos išleidimas
```bash
# Sukurkite laidą — npm publish bus įvykdyta automatiškai
VERSION=x.y.z
gh release create "v${VERSION}" --title "v${VERSION}" --generate-notes
```
## 📊 Žvaigždutės
## 🌍 StarMapper
## 🙏 Padėkos
OmniRoute remiasi milžinų pasiekimais. Projektas prasidėjo kaip **[9router](https://github.com/decolua/9router)** atšaka ir Go projekto **[CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI)** perkėlimas į TypeScript, o nuo tada kiekvieną toliau nurodytą posistemę įkvėpė atvirojo kodo projektas, pirmasis įgyvendinęs atitinkamą idėją. Kiekvienas jų prisidėjo prie konkrečios OmniRoute dalies. Taip jiems visiems dėkojame. 🙏
> ⭐ žvaigždučių skaičius patikrintas naudojant GitHub REST API 2026 m. rugpjūčio 24 d. — suteikite šiems projektams po žvaigždutę. Skaičiai yra tiksli konkrečios datos momentinė kopija ir laikui bėgant natūraliai keisis.
### 🧬 Kilmė ir šliuzas
DI šliuzas, kurio viešas kainų duomenų rinkinys naudojamas mūsų išlaidų stebėjimo sinchronizavimui, o paslaugų teikėjų normalizavimo modelis padėjo suformuoti mūsų maršrutizavimą.
MIT šaltinio kodas, pritaikytas į projektą įtrauktam ChatGPT Web → Codex Responses tiltui, įskaitant naršyklės seanso, atsakymų kadravimo, naudojimo apskaitos ir žiniatinklio paieškos adapterius.
Pagrindinis netiesioginis grok2api-merged kodo šaltinis; jo modelių, antraščių, naudingųjų duomenų, Statsig ir apdorojimo modulių realizacijos išsaugotos Grok Web kilmės grandinėje.
Pirminis MIT šaltinis, skirtas Grok naudingųjų duomenų ir įrenginių numatytosioms nuostatoms, Statsig generatoriui bei result.response apdorojimo moduliui, perduotam per TQZHR ir grok2api-merged.
Netiesioginis šaltinis, kurį grok2api-merged nurodo kaip savo tarpinių serverių telkinio sluoksnio šaltinį; OmniRoute išsaugo šią kilmės nuorodą, tačiau neteigia, kad į ribotos apimties Grok Web vykdymo modulį buvo perkeltas tarpinių serverių telkinys.
Jo slapukais autentifikuojamas Grok tarpinis serveris ir result.response.token srautinio perdavimo šablonas padėjo suformuoti OmniRoute Grok Web perdavimo sluoksnį.
Kuriant pradinę Grok Web realizaciją remtasi jo HTTP / naršyklės aukštesniojo lygio serverio architektūra; jo tiesioginis HTTP kelias kilęs iš GrokProxy, todėl neteigiama, kad kodas buvo perkeltas savarankiškai.
Virusiniu tapęs projektas „kam naudoti daug žodžių, kai pakanka kelių“ — jo urvinio žmogaus kalbos filosofija užtikrina mūsų standartinio glaudinimo režimo ir daugiau nei 30 perteklinių žodžių šalinimo bei sutraukimo taisyklių veikimą.
Raginimų glaudinimo tyrimai (LLMLingua / LLMLingua-2) — įkvėpė mūsų asinchroninį, kodui saugų ir sutrikus glaudinimui pradinę išvestį grąžinantį llmlingua variklį.
PT-BR prieigos raktų glaudinimas — užtikrina mūsų pt-BR kalbos paketo veikimą: pleonazmų mažinimą ir perteklinių žodžių šalinimą, pritaikytą Brazilijos portugalų kalbos gramatikai.
Virusiniu tapęs „tingaus vyresniojo programuotojo“ YAGNI kodavimo įgūdis — įkvėpė mūsų mažiau kodo išvesties stilių: orientavimą į mažiausią veikiantį pakeitimą, sumažinantį _sugeneruoto_ kodo kiekį (išvesties ašies atitikmenį glaustai Caveman prozai).
Jo į veiksmą orientuotas, ADHD turintiems žmonėms pritaikytas atsakymų stilius buvo pritaikytas glaustam OmniRoute išvesties stiliui penkiomis kalbomis.
### 🧩 Kompaktiški formatai, prieigos raktų tyrimai ir kodą išmanantys įrankiai
Turinį ir failų tipus atpažįstantis išvesties glaudinimas, atsisakantis glaudinti nesėkmės atveju — patvirtino mūsų paskirstymo pagal tipą ir praleidimo nepasiekus minimalaus sutaupymo principus.
Rust stulpelinis JSON, turiniu adresuojamas gavimas ir pasikartojimų šalinimas tarp pranešimų — patvirtino mūsų headroom / ccr / session-dedup variklių architektūrą ir podėlio stabilumo invariantą „suglaudinto pavidalo reikšmė nepriklauso nuo jo padėties“.
TypeScript Compiler API įrankių rinkinys — įkvėpė mūsų analizatoriumi pagrįstą komentarų šalinimą, išsaugantį eilučių, šablonų ir reguliariųjų reiškinių literalus.
Kodavimo asistento ↔ LLM srauto MITM perėmimas ir analizė padėjo suformuoti ankstyvuosius Traffic Inspector reikalavimus. Keturi anksčiau išvestiniai moduliai — SSE sujungimas, pokalbių normalizavimas, slaptų duomenų maskavimas ir antraščių valymas — pakeisti nepriklausomomis švariojo kambario realizacijomis, pagrįstomis viešais protokolų standartais. Dvi pagrindinio kompiuterio tiesioginio perdavimo sąsajos (passthrough.ts ir _internal/bypass.cjs) tebėra atskirai klasifikuojamos vidinės OmniRoute realizacijos; atliekant šį pakeitimą jos nebuvo perrašytos.
Skaidrusis kiekvieno proceso tarpinio serverio maršrutizavimas — įkvėpė mūsų gedimams atsparų MITM išjungimą, lizdų neveiklumo skirtąjį laiką, /proc procesų priskyrimą ir TPROXY perėmimą.
### 📚 Modelių duomenys, stebimumas ir naudotojo sąsaja
Atrinktas pagal numatytąsias nuostatas saugių bibliotekų sąrašas, kuriuo vadovaujamės priimdami saugumo sprendimus (Helmet.js, DOMPurify, ssrf-req-filter, safe-regex, Google Tink).
Jo paskyras atpažįstantis modelių persiejimas, vykdomųjų failų kelių tikrinimas ir planų žymų elgsena padėjo formuoti OmniRoute Antigravity vykdymo aplinką.