## 💰 ~1.62B de tokenuri / lună din nivelurile gratuite ale terților
> **Folosește propriile conturi de furnizor.** Aceasta este o estimare agregată pentru niveluri gratuite distincte ale terților, pentru care eligibilitatea se stabilește separat, nu o alocare de tokenuri oferită de OmniRoute. Înregistrează-te, obține acreditările acolo unde este necesar și conectează furnizorii pe care îi poți utiliza; fiecare furnizor își controlează limitele, disponibilitatea și condițiile.
>
> Combinarea manuală a nivelurilor gratuite este dificilă — zeci de SDK-uri, zeci de limite de rată și nicio idee despre capacitatea totală de care dispui de fapt. OmniRoute cataloghează **489 de intrări de nivel gratuit în 35 de chei de pool recurente** și calculează totalul de tokenuri din **cele 17 pool-uri cu un buget lunar pozitiv publicat, plus cinci limite Groq per model**, eliminând dublurile în funcție de pool-ul comun. Cotele care devin disponibile numai după verificarea regională a identității (în prezent: ModelScope) sunt afișate separat, +~6M condiționate de verificarea regională a identității, și nu sunt incluse niciodată în totalul principal. Rezultatul rămâne vizibil în panoul de control (`/dashboard/free-tiers`).
> Rezumat animat al paginii live `/dashboard/free-tiers`. Metodologia completă (eliminarea dublurilor per pool, nivelurile de credit, condițiile furnizorilor): **[docs/reference/FREE_TIERS.md](docs/reference/FREE_TIERS.md)**.
>
> Aceste cifre sunt reauditate la fiecare două săptămâni pe baza catalogului live și **se modifică în ambele sensuri** — dacă un furnizor elimină un nivel gratuit, numărul scade; dacă apare unul nou, numărul crește. Publicăm ceea ce calculează efectiv catalogul, niciodată un scenariu optimist rotunjit în sus.
⭐ Acordă o stea depozitului dacă OMNIROUTE te-a ajutat să economisești bani și să-ți ușurezi munca.
[](https://github.com/diegosouzapw/OmniRoute)
[](https://www.star-history.com/diegosouzapw/omniroute)
[](https://olud.ai/project/diegosouzapw-omniroute.html)
### 💬 Alătură-te comunității
**👋 Urmărește maintainerul — află primul despre furnizori noi, versiuni și sfaturi:**
[](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)
**Întrebări, recomandări despre furnizori, foaie de parcurs și asistență → [Discord](https://discord.gg/U47eFqAXCn) · [Telegram](https://t.me/omnirouteOficial) · WhatsApp [🌍 Global](https://chat.whatsapp.com/FvuCbrpZmQ6I85n2vW5QIC?s=cl&p=a&mlu=4) / [🇧🇷 Brazilia](https://chat.whatsapp.com/KWgatljAjmbELQory59Oti?s=cl&p=a&mlu=4) / [Portal](https://portal.sthub.com.br/communities/groups/st-hub/channels/Omniroute-World-8kRjmK)**
## 📈 Gateway-ul continuă să crească
| | v3.8.50 | **v3.8.51** | `v3.8.52+` |
| ----------------------------------- | :------------------------: | :---------: | :-------------------: |
| 🌐 Furnizori | 352 | **358** | 372 |
| 🧠 ID-uri unice de modele de chat | 1320 | **1374** | 1443 |
| 🖼️ Punte pentru modalități | 🆕 viziune + audio + video | ✓ | ✓ |
| 📡 Catalog Radar gratuit | 🆕 participare opțională | ✓ | ✓ |
| ⚖️ Planificare adaptată cotelor | 🆕 Quota-Share | ✓ | ✓ |
| 📊 Telemetria cotelor | 🆕 în timp real | ✓ | ✓ |
| 🧰 Mod fără interfață | — | — | 🆕 `serve --headless` |
| 🛤️ Infrastructură pentru ramura LTS | — | — | 🆕 canale de lansare |
**→ [Foaie de parcurs](ROADMAP.md) — pe drumul către `v3.9.0 LTS`**
## 🆓 Instalează, conectează un furnizor, apoi rutează printr-un singur endpoint
```bash
# După conectarea unui furnizor, copiază cheia OmniRoute din Panou de control → Endpoint-uri:
curl http://localhost:20128/v1/chat/completions \
-H "Authorization: Bearer YOUR_OMNIROUTE_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"auto","messages":[{"role":"user","content":"Hello!"}]}'
```
`auto` necesită o rută eligibilă. Este posibil ca o instalare nouă să nu aibă destinații eligibile fără cheie, iar un furnizor fără cheie poate respinge clienții terți. Furnizorii marcați cu `tos: avoid`, inclusiv OpenCode Free și Kiro, sunt excluși implicit din rutarea automată; conectarea unui cont nu suprascrie această setare. Consultă [Ghidul nivelurilor gratuite](docs/getting-started/FREE-TIERS-GUIDE.md) înainte de a alege un furnizor.📦 Scripturi de pornire rapidă, gata de copiat și lipit, pentru **Python, Node.js, PHP și cURL** → [`examples/quickstart/`](examples/quickstart/)
# 💥 Promisiunea
# 🤔 De ce OmniRoute?
## 🤝 Susținut de Prietenii noștri Open Source
> **Vrei să te alături ca Prieten Open Source?** Acestea sunt companiile care susțin open source și ajută la menținerea OmniRoute în mișcare — și spunem public unde se duce fiecare token pe care ni-l oferă. Contactează-ne: [diegosouza.pw@outlook.com](mailto:diegosouza.pw@outlook.com)
Kimi Moonshot AI
Mulțumiri Kimi (Moonshot AI), Prietenul nostru Fondator Open Source, pentru susținerea acestui proiect! Kimi este laboratorul AI din spatele familiilor de modele K2 și K3 cu greutate deschisă — Kimi K3 oferă o fereastră de context de 1M-tokeni, viziune nativă și codare la nivel de frontieră la o fracțiune din prețurile modelelor închise, și funcționează imediat cu Claude Code, Codex și fiecare instrument de codare pe care OmniRoute îl servește.
Ce susține sprijinul Kimi: Creditele API Kimi alimentează pipeline-ul de lansare validat de AI al OmniRoute — etapa de validare a fuzionării alimentată de Kimi K3 care revizuiește fiecare cerere de pull înainte de a fi expediată — plus dezvoltarea zilnică de funcționalități. Suportul Kimi de primă clasă este livrat pe ambele căi: API-ul Kimi direct (kimi-k3) și planul de codare Kimi Code (OAuth și cheie API). OmniRoute este, de asemenea, primul proiect open-source brazilian din programul de suport Kimi. Obține o cheie API Kimi cu 15% credite suplimentare →
Cheaper Inference cheaperinference.com
Mulțumiri Cheaper Inference, un Prieten Open Source OmniRoute, pentru susținerea acestui proiect! Cheaper Inference este un gateway clasificat după cost care revinde 42 de modele de frontieră — Claude, GPT-5.x, Gemini, Kimi K3, GLM, DeepSeek, Grok și MiniMax — printr-un singur endpoint compatibil OpenAI, rutând fiecare cerere către cel mai ieftin furnizor eligibil fără a percepe vreodată mai mult decât prețul de listă al creatorului modelului.
Suport de primă clasă în OmniRoute: Chat Completions, endpoint-ul nativ /v1/responses, viziune, apelare de instrumente și 3 modele de imagine (grok-imagine, nano-banana-pro, nano-banana-2, accesibile ca cheaperinference/<model>). Obține o cheie API →
Link-urile etichetate aff=omniroute sunt link-uri partenere. Acestea finanțează proiectul fără costuri suplimentare pentru tine. 🎟️ Promoții Afiliate — cupoane de înregistrare gratuite de la furnizori pe care nu îi sponsorizăm (click pentru a extinde)Această secțiune este doar pentru coduri de recomandare/cupon. Parteneriatele sponsorizate se găsesc în secțiunea 🤝 Susținut de Prietenii noștri Open Source de mai sus. OmniRoute nu are sponsorizare sau parteneriat cu furnizorii enumerați aici — acestea sunt cupoane publice pe care oricine le poate folosi.
AgentRouter agentrouter.org
AgentRouter — înregistrare afiliat · $100 credite gratuite la înregistrare (server gratuit, așteptați-vă la o latență mai mare — cel mai bun pentru testare, nu pentru producție). Suport de primă clasă în OmniRoute începând cu v3.8.50: Chat Completions, formatul wire compatibil Anthropic și calea compatibilă OpenAI. Modelele disponibile includ claude-opus-4-8, claude-opus-5, gpt-5.6-sol și altele. Ia-ți cei $100 →
⚠️ Link afiliat — OmniRoute nu are sponsorizare sau parteneriat cu acest furnizor.
Cunoști un alt furnizor cu un cupon generos de înregistrare gratuită care aduce beneficii utilizatorilor OmniRoute? Deschide o problemă și îl vom adăuga aici.
## 🎯 Combos — Funcționalitatea principală
> Un **combo** este un lanț de modele între care OmniRoute rutează **automat**. Dacă se epuizează cota, un furnizor eșuează sau costurile cresc brusc, combo-ul poate trece la următorul model eligibil și funcțional. 🛡️
### ⚡ Fără configurare — folosiți doar `auto`
Nu trebuie să creați niciun combo. Setați modelul la `auto` (sau la o variantă), iar OmniRoute construiește un combo virtual din furnizorii conectați, evaluați în timp real:
ID model
Pentru ce optimizează
auto
🎯 Opțiune implicită echilibrată (LKGP — rămâne la ultimul furnizor funcțional)
auto/coding
🧑💻 Ponderi axate pe calitate pentru generarea de cod
auto/fast
⚡ Cea mai mică latență mai întâi
auto/cheap
💰 Cel mai mic cost per token mai întâi
auto/offline
🔋 Cea mai mare rezervă de cotă / limită de rată mai întâi
auto/smart
🔭 Calitatea pe primul loc + 10% explorare pentru a descoperi modele mai bune
auto/lkgp
📌 Preferință explicită pentru ultimul furnizor cunoscut ca funcțional
auto/chaos
🧪 Distribuire paralelă către un grup de modele (câte unul per furnizor, implicit 5), returnează un singur răspuns; câte un apel în amonte pentru fiecare model din grup, nu injectare de erori
##
### 🔀 Sau creați-vă propriul combo — 19 strategii de rutare
Toate cele **19** strategii — combinați-le după preferințe pentru fiecare pas al combo-ului:
#
Strategie
Ce face
1
priority
Listă ordonată cu prima destinație prioritară — o epuizează pe fiecare înainte de a trece la următoarea 🥇
2
fill-first
Utilizează integral cota fiecărei destinații înainte de a trece mai departe
3
weighted
Selecție aleatorie ponderată în funcție de ponderea fiecărei destinații
4
round-robin
Parcurge ciclic destinațiile, în ordine
5
p2c
Echilibrare aleatorie a încărcării prin alegerea dintre două opțiuni
6
least-used
Alege destinația cu cea mai mică încărcare curentă
7
random
Selecție aleatorie uniformă (deduplicată)
8
strict-random
Selecție aleatorie fără deduplicarea repetărilor 🎲
9
cost-optimized
Minimizează costul în $ per cerere folosind prețurile în timp real din catalog 💸
10
headroom
Alege destinația cu cea mai mare cotă rămasă
11
reset-window
Preferă destinația a cărei fereastră de cotă se resetează cel mai curând
12
reset-aware
Clasifică după momentul resetării cotei — ferestrele scurte mai întâi 📊
13
context-relay
Transferă contextul între destinații pentru conversații lungi 🧠
14
context-optimized
Alege cea mai potrivită opțiune pentru dimensiunea actuală a contextului
15
cache-optimized
Fixează fiecare prefix reutilizabil al promptului la același cont — maximizează accesările cache-ului de prompturi 🎯
16
lkgp
Ultima cale cunoscută ca funcțională — fixează rutarea la ultimul furnizor care a reușit, apoi recurge la reguli
17
auto
Evaluare în timp real pe baza a 16 factori pentru fiecare conexiune 🤖
18
fusion
Distribuie cererea către un grup de modele + un arbitru sintetizează un singur răspuns 🧬
19
pipeline
Înlănțuie pașii — rezultatul fiecărei destinații îl alimentează pe următorul 🔗
Motorul Auto-Combo evaluează fiecare candidat pe baza a **16 factori** (stare de funcționare, cotă, cost, latență, adecvare la sarcină, calitate, disponibilitatea sesiunii…) — consultați [`docs/routing/AUTO-COMBO.md`](docs/routing/AUTO-COMBO.md).
##
### 🧱 Reziliența este integrată (3 niveluri independente)
📖 [Motorul Auto-Combo](docs/routing/AUTO-COMBO.md) · [Ghid de reziliență](docs/architecture/RESILIENCE_GUIDE.md)
## 🏆 Ce diferențiază OmniRoute
📊 Metodologia completă și detalii pentru fiecare funcționalitate, comparativ cu 9router, OpenRouter, CLIProxyAPI și LiteLLM → [`docs/comparison/OMNIROUTE_VS_ALTERNATIVES.md`](docs/comparison/OMNIROUTE_VS_ALTERNATIVES.md)
## 💚 Susține OmniRoute
OmniRoute este licențiat sub MIT și întreținut în mod deschis. Dacă te ajută să economisești timp sau bani, iată cum îl poți ajuta să rămână independent — alege opțiunea care ți se potrivește. Sponsorizarea nu afectează niciodată prioritatea rutării; aceasta oferă vizibilitate, nu o poziție mai bună în clasament.
**🇧🇷 PIX** — instantaneu, fără comisioane (Brazilia)
Cheie (aleatorie): `5d865059-bc44-483a-962d-43ceb80126eb`
Pix copia-e-cola:
```
00020101021126580014br.gov.bcb.pix01365d865059-bc44-483a-962d-43ceb80126eb5204000053039865802BR5922OMNIROUTE CONTRIBUICAO6006BRASIL62070503***630475DD
```
₿ Criptomonede — BTC · ETH · USDT-TRC20 · USDC-Solana (fă clic pentru a extinde)
₿ BTC
Bitcoin (SegWit)
bc1qh00smz004sy85wyl28v77tenkt3ckl6eaep7fd
Ξ ETH
Ethereum (ERC20)
0x64Cf6B68A6Ff34288e89172950a2d00102337a84
₮ USDT
Tron (TRC20)
TKAF41JpuQrHbKTnsQa9svJE2T192Hvsc2
$ USDC
Solana
2emNNZzVVWQc3FQ2wk9M6qXUQmW8AKdjjL174fXR28Tu
⚠️ Trimite fiecare monedă numai prin rețeaua indicată — trimiterea prin rețeaua greșită poate duce la pierderea fondurilor.
🐛 Ai găsit o eroare sau ai sugestii? Deschide o [Discuție](https://github.com/diegosouzapw/OmniRoute/discussions).
Note pentru dezvoltatori: Proiectul poate genera un fișier local .env în timpul npm install/postinstall, pentru confortul dezvoltatorilor. Acest fișier este ignorat în mod intenționat prin .gitignore (consultă .gitignore) și nu trebuie inclus niciodată în depozit — dacă a fost inclus accidental, înlocuiește toate secretele expuse și elimină fișierul din istoric. Consultă docs/DEVELOPER-ENVIRONMENT.md pentru îndrumări privind gestionarea fișierelor locale de mediu și a secretelor.
## 📡 OmniRoute Radar
Principalul reper pentru nivelul gratuit rămâne **~1,62 mld. de tokenuri/lună** din catalogul documentat,
cu pool-uri deduplicate, de mai sus. Creditele temporare oferite la înregistrarea la furnizori pot crește separat prima
lună la **~2,22 mld.**. Radar este un strat opțional de catalog, semnat, pentru cei care doresc
informații mai recente despre disponibilitatea modelelor gratuite între versiunile OmniRoute; catalogul comunității și toate funcționalitățile gratuite
existente rămân gratuite.
Susținătorii pot primi catalogul actualizat în timp real și oportunități suplimentare oferite de furnizori. Plafonul său separat,
variabil, este de **cel mult aproximativ 3 mld. de tokenuri/lună**, în funcție de disponibilitatea furnizorilor.
Acest plafon nu reprezintă o garanție: furnizorii pot modifica oricând cotele, criteriile de eligibilitate, modelele sau regiunile.
Radar este opțional și utilizează exclusiv solicitări GET. Clientul OmniRoute nu încarcă prompturi, trafic, configurația
furnizorilor, telemetrie privind utilizarea sau starea locală de închidere a anunțurilor. Aflați mai multe despre eligibilitate și
catalogul actual la **[radar.omniroute.online/planos](https://radar.omniroute.online/planos)**.
## ✨ Noutăți
> Noutăți recente din **v3.8.20 → v3.8.50**. Istoricul complet este disponibil în [`CHANGELOG.md`](CHANGELOG.md).
- **🎛️ OmniConductor** — delegare A2A la intrare către flota dvs. de agenți, abilități Conductor pe Agent Card și un panou de control cu chat vocal Faro de tip push-to-talk. → [Server A2A](docs/frameworks/A2A-SERVER.md)
- **🛂 Admitere adaptivă și protecție la supraîncărcare** — solicitările de chat care consumă multe resurse sunt puse în coadă în loc să returneze 503, cu concesiuni RPM glisante și atomice pentru fiecare conexiune. → [Ghid de reziliență](docs/architecture/RESILIENCE_GUIDE.md)
- **🗂️ Ordonare canonică pentru `/v1/models`** — câte un bloc contiguu, grupat după furnizor, pentru fiecare furnizor (combinațiile sunt fixate primele), stabil pentru fiecare sursă de catalog. → [Referință API](docs/reference/API_REFERENCE.md)
- **🗜️ Consolidarea compresiei** — protecție implicit activată împotriva expansiunii, pachete Caveman pentru DE / FR / JA + chineză (wényán), filtre RTK pentru Gradle și .NET. → [Compresie](docs/compression/COMPRESSION_ENGINES.md)
- **💸 Cost fix realist** — furnizorii pe bază de abonament / planuri de programare afișează **$0** în analizele de cost; bugetul, cota și rutarea continuă să facă estimări. → [Referință API](docs/reference/API_REFERENCE.md)
- **⚖️ Rutare cu partajarea cotei** — împarte echitabil cota unui cont comun între cheile grupate, conservând utilizarea, astfel încât porțiunile inactive să fie împrumutate. → [Ghid de reziliență](docs/architecture/RESILIENCE_GUIDE.md)
- **🤖 Configurare CLI/agent cu o singură comandă** — 13 comenzi `setup-*` înregistrate; `omniroute run` lansează 7 CLI-uri (Claude Code, Codex, Aider, Goose, OpenCode, Qwen Code, Gemini CLI); `omniroute configure` acceptă 10 ținte, cu un selector interactiv pentru furnizor și model și favorite pentru fiecare context. → [Integrări CLI](docs/guides/CLI-INTEGRATIONS.md)
- **🛰️ Mod la distanță** — controlați o instanță OmniRoute la distanță folosind tokenuri cu domeniu limitat (`connect` / `contexts` / `tokens`) și un instrument OAuth `antigravity` pentru instalări pe VPS. → [Mod la distanță](docs/guides/REMOTE-MODE.md)
- **🧭 Rutare automată mai inteligentă** — combinații `auto/:`, **Fusion** (panou de modele + arbitru), rutare adaptată sarcinii, suprascrieri pentru fiecare solicitare privind modelul / modul / bugetul în USD. → [Auto-Combo](docs/routing/AUTO-COMBO.md)
- **🗜️ Compresie extensibilă** — 12 motoare combinabile + Compression Studios: LLMLingua-2, Ultra pe două niveluri, omniglyph, prag de fidelitate pentru fiecare pas, GCF v3.2, editor cu reordonare prin glisare. → [Compresie](docs/compression/COMPRESSION_ENGINES.md)
- **🕵️ Decriptare MITM transparentă (TPROXY)** — interceptează CLI-urile care ignoră variabilele de mediu pentru proxy, cu o CA pentru fiecare SNI și un program de instalare în depozitul de încredere. → [MITM/TPROXY](docs/security/MITM-TPROXY-DECRYPT.md)
- **💸 Telemetrie de cost pretutindeni** — antete `X-OmniRoute-*` privind costurile/utilizarea pentru fiecare endpoint, antet pentru economiile obținute la cache-HIT, cote de cheltuieli în USD pentru fiecare cheie. → [Referință API](docs/reference/API_REFERENCE.md)
- **🧠 Memorie pe care o controlați** — dezactivată implicit, cuantizare vectorială int8 opțională + degradare tipizată, `x-omniroute-no-memory` pentru fiecare solicitare. → [Memorie](docs/frameworks/MEMORY.md)
- **🛡️ Securitate** — protecție împotriva injectării de prompturi pe fiecare rută LLM (suită red-team), mecanism opțional de mascare a credențialelor (elimină cheile API/secretele expuse în ambele direcții), căutare web gratuită DuckDuckGo ca ultimă soluție și un mecanism opțional de autentificare OIDC pentru panoul de control (autentificarea cu parolă rămâne permanent disponibilă). → [Mecanisme de protecție](docs/security/GUARDRAILS.md)
- **🖼️ Endpointuri noi** — `/v1/ocr` (Mistral OCR) și `/v1/audio/translations` (în stil Whisper) completează funcționalitățile media. → [Referință API](docs/reference/API_REFERENCE.md)
- **🎨 Generare de imagini / videoclipuri / conținut audio** — un singur API pentru conținut media: videoclipuri xAI Grok Imagine și Novita AI, ComfyUI, Magnific, Adobe Firefly, Segmind și furnizori vocali precum ElevenLabs. → [Referință API](docs/reference/API_REFERENCE.md)
- **🌍 Implementare și operațiuni** — `basePath` pentru proxy invers, detectarea automată a limbii browserului, urmărirea dispozitivelor pentru fiecare cheie, încredere MITM fără privilegii root, localizare zh-TW. → [Mediu](docs/reference/ENVIRONMENT.md)
- **🤝 Mai mulți furnizori și agenți** — agenți cloud (Codex Cloud, Cursor, Devin, Jules), Grok Build (xAI) cu browser + autentificare OAuth, card dedicat pentru Ollama, Claude Opus 5 și Sonnet 5, parteneriat oficial Kimi (Code/Web/Moonshot), Zed, Requesty, SenseNova, Yuanbao, Agnes AI… și un **catalog actualizat cu 352 de furnizori**. → [Furnizori](docs/reference/PROVIDER_REFERENCE.md)
- **📡 Transparența rutării** — fiecare răspuns include un antet `X-OmniRoute-Decision` care indică strategia/furnizorul/ latența utilizată, o nouă strategie de combinare `cache-optimized` + factorul Auto-Combo `cacheAffinity` direcționează solicitările repetate înapoi către conexiunea care deține prefixul memorat în cache, iar un endpoint doar în citire `/v1/auto-combo/{channel}/candidates` expune grupul actual de candidați al unui canal `auto/*`. → [Auto-Combo](docs/routing/AUTO-COMBO.md)
- **⚡ Performanță locală și infrastructură** — Redis local cu un singur clic, instrumente de implementare pentru relee Cloudflare Workers / Deno Deploy, Bifrost și Mux ca servicii încorporate supravegheate. → [Servicii încorporate](docs/frameworks/EMBEDDED-SERVICES.md)
- **🧩 De asemenea, incluse** — cadru de pluginuri + marketplace, cadre de abilități Omni/Agent/GitHub, integrare cu seifuri Obsidian (22 de instrumente MCP), API-uri Batch și Files compatibile cu OpenAI, cache semantic pentru răspunsuri, gamificare cu clasamente, descoperirea agenților ACP (15 agenți integrați), export programat al jurnalelor în BigQuery, distribuire paralelă către mai multe modele prin `auto/chaos`, o punte pentru boți Telegram, un manager de versiuni în aplicație și clasamente LMArena-ELO pentru furnizorii gratuiți. → [Documentație](docs/README.md)
## 🤖 CLI-uri și agenți de programare compatibili
> O singură configurație — `http://localhost:20128/v1` — și **orice** IDE sau CLI cu AI rulează pe modele gratuite și cu cost redus.
+ funcționează și cu · Agent Deck · Kiro · Command Code · Antigravity · Windsurf · AMP · orice instrument compatibil cu OpenAI
📖 Configurare specifică pentru toate cele 36 de instrumente (26 CLI Code + 10 agenți CLI) → [`docs/reference/CLI-TOOLS.md`](docs/reference/CLI-TOOLS.md) · 🧩 Plugin OpenCode → [`@omniroute/opencode-provider`](https://www.npmjs.com/package/@omniroute/opencode-provider)
**Lansați orice CLI acceptat prin OmniRoute cu o singură comandă** — fără a scrie fișiere de configurare,
cu credențialele injectate pentru fiecare proces și cu un director principal izolat, temporar, pentru Qwen/Gemini:
```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"
# Sau selectați interactiv furnizorul și modelul și scrieți configurația proprie a instrumentului:
omniroute configure codex # de asemenea: claude opencode qwen aider goose gemini cline continue kilo
```
Fiecare comandă respectă contextul remote activ (`omniroute connect `), `--dry-run`
previzualizează variabilele de mediu/argumentele exacte fără a le executa, iar `--api-key-env NAME` păstrează secretele în afara
istoricului shell-ului. → [Integrări CLI](docs/guides/CLI-INTEGRATIONS.md)
## 🌐 372 de furnizori AI — 154 marcați în catalog ca fiind gratuiți
> **372 de furnizori înregistrați** în colecțiile canonice de chat, media, căutare, locale, agenți cloud și sistem, inclusiv **154 care conțin metadatele de descoperire `hasFree: true`**. Registrul modelelor de chat acoperă **237 de furnizori / 3.009 perechi distincte furnizor-model / 1.443 de ID-uri brute de modele**; catalogul separat cu bugete gratuite conține **491 de rânduri per model**, **35 de fonduri recurente** și **54 de furnizori cu acces gratuit permanent, recurent/fără cheie**. Aceștia sunt numitori diferiți în mod intenționat; definițiile și calculele cu eliminarea duplicatelor între fonduri se găsesc în [Referința furnizorilor](docs/reference/PROVIDER_REFERENCE.md) și [Nivelurile gratuite](docs/reference/FREE_TIERS.md).
### 🏢 Toate laboratoarele importante — printr-un singur endpoint
OpenAI
Anthropic
Gemini
xAI Grok
DeepSeek
Mistral
Qwen
Meta Llama
Groq
NVIDIA
MiniMax
Cohere
Perplexity
HuggingFace
Together
Fireworks
Cloudflare
Baidu
…și încă peste 330 — fiecare pictogramă este preluată în timp real din catalogul de furnizori al panoului de control. 📖 [Referința furnizorilor](docs/reference/PROVIDER_REFERENCE.md)
### 🆓 Gratuit pentru totdeauna — 0 $, fără card
OpenCode Zen DeepSeek V4, Nemotron 3 Fără limită de tokenuri
Kilo Code Rutare automată, Tencent Hy3 Gratuit pentru totdeauna
Requesty GPT-OSS 120B, Nemotron Gratuit pentru totdeauna
SiliconFlow DeepSeek V3.2 / R1 Nivel gratuit
Z.AI GLM GLM-4.7 / 4.5-Flash Gratuit pentru totdeauna
### 🧩 Nou: OmniRoute în Copilot Chat nativ din VS Code
> Nicio bară laterală nouă, nicio interfață nouă de chat — fiecare model furnizat de OmniRoute apare direct în
> **selectorul de modele Copilot Chat pe care îl folosești deja**. Începând cu VS Code 1.122, modelele furnizorilor funcționează
> fără autentificare GitHub sau abonament Copilot — mod agent, apelare de instrumente și capabilități vizuale,
> gratuit.
Instalează extensia **[OmniCopilot](https://github.com/diegosouzapw/OmniCopilot)**, configureaz-o să utilizeze
serverul tău OmniRoute (implicit `localhost:20128`), apoi deschide Copilot Chat → selectorul de modele
→ **Gestionează modelele…** → **OmniRoute**.
Din editor: deschide vizualizarea **Extensii**, caută **„OmniRoute”**, apasă pe **Instalează**
— funcționează la fel în ambele magazine. Codul sursă, problemele și ghidul de publicare se află la
[diegosouzapw/OmniCopilot](https://github.com/diegosouzapw/OmniCopilot).
📖 [Ghid VS Code Copilot Chat](docs/guides/VSCODE-COPILOT.md) — configurare, ce afișează selectorul, panou de control într-o filă, depanare
### 🎩 Nou: OmniRouteTray — gateway-ul tău, direct în bara de meniu
> `omniroute serve` funcționează cel mai bine când este mereu pornit. **[OmniRouteTray](https://github.com/zoispag/omniroute-tray)**
> îl transformă într-o aplicație pentru bara de meniu din macOS, pe care o configurezi și apoi o poți uita: pornește serverul, îl menține activ
> după reporniri, îl actualizează fără reinstalare și îți pune bugetul de tokenuri în timp real la un clic distanță — **fără
> o fereastră de terminal lăsată deschisă, fără `npm install -g omniroute` care să necesite supraveghere.**
Construit cu [Tauri v2](https://v2.tauri.app/) (un nucleu Rust minuscul), include
propriul runtime Node 24 semnat și gestionează o instalare OmniRoute deținută de aplicație, astfel încât să nu intre niciodată în conflict cu
instalarea ta globală `node`/`bun`. **Partajează configurația și baza de date existente din `~/.omniroute/`** — așadar, este
același OmniRoute pe care îl rulezi deja, doar că poartă o pălărie. 🎩
Ce face
Cum
🟢 Monitorizează serverul
Pornește omniroute serve și preia o instanță deja pornită în loc să o dubleze
📊 Utilizare în timp real, dintr-o privire
Bare pentru cotele furnizorilor, limite Claude per sesiune/săptămânale cu numărătoare inversă până la resetare, defalcare a costurilor pe 30 de zile
🔄 Actualizări automate fără reinstalare
Instalare etapizată, înlocuire atomică, revenire în caz de eșec — mereu la cea mai nouă versiune
🚀 Pornire la autentificare
Pornire opțională la autentificare; doar în zona de notificare, fără pictogramă în dock
🩺 Diagnosticare și jurnale
Diagnosticare cu un singur clic și acces la jurnalele serverului
```sh
brew install --cask zoispag/tap/omniroute-tray
```
Preferați o descărcare? Luați cel mai recent fișier .dmg din
Versiuni. Codul sursă, problemele și documentația de compilare
se găsesc la zoispag/omniroute-tray.
💛 Un proiect al comunității realizat de @zoispag — nu este o versiune oficială OmniRoute.
## 🔒 Privat și local în primul rând
📖 [Autorizare](docs/architecture/AUTHZ_GUIDE.md) · [Mecanisme de protecție](docs/security/GUARDRAILS.md) · [Conformitate](docs/security/COMPLIANCE.md)
## 🔌 CLI complet + A2A și MCP
> Dincolo de server, OmniRoute este un **centru de comandă complet în linia de comandă**, cu **peste 80 de comenzi**, plus protocoale deschise pentru agenți, astfel încât un agent AI să îl poată controla **singur**.
### ⌨️ Un CLI adevărat (nu doar `start`)
```bash
omniroute # pornește gateway-ul și tabloul de bord (portul 20128)
omniroute chat # client TUI interactiv pentru chat (comenzi slash: /model /combo /skill /memory)
omniroute setup # asistent ghidat pentru prima rulare
omniroute doctor # diagnostichează furnizorii, porturile și dependențele native
```
### 🛰️ Mod la distanță — rulați CLI-ul aici, iar OmniRoute pe un VPS
OmniRoute rulează pe un server? Controlați-l de pe laptop cu **același CLI**. Autentificați-vă o singură dată
cu un token de acces cu domeniu limitat; apoi, fiecare comandă va viza instanța la distanță.
```bash
omniroute connect 192.168.0.15 # parolă → token cu domeniu limitat, salvat drept context
omniroute models list # ← rulează pe serverul LA DISTANȚĂ
omniroute configure codex # ← selectează un model la distanță și scrie un profil Codex local
omniroute tokens create --name ci --scope read # generează tokenuri cu permisiuni mai restrânse pentru alte dispozitive
omniroute contexts use default # ← comută înapoi la serverul local
```
Tokenurile au domeniile `read` / `write` / `admin`; rutele care lansează procese rămân accesibile doar prin interfața loopback.
📖 [Mod la distanță](docs/guides/REMOTE-MODE.md)
### 🤝 Conectați un agent — iar acesta controlează OmniRoute
Expuneți OmniRoute prin **MCP**, **A2A**, un **API REST**, **webhook-uri** sau un **CLI la distanță** — orice agent capabil (sau propriul dvs. cod) primește acces la întregul gateway: rutare, furnizori, combinații, cache, compresie, memorie — în mod autonom. Endpointurile HTTP de mai jos sunt disponibile la `http://localhost:20128`.
Interfață
Endpoint/comandă
Utilizare
🧰 MCP (stdio)
omniroute --mcp
Conectați-l la Claude Desktop, Cursor sau orice client MCP
🌊 MCP (HTTP)
/api/mcp/stream
MCP la distanță — 110 instrumente, 33 de domenii (aplicare opțională), jurnal de audit complet
📡 MCP (SSE)
/api/mcp/sse
Transport MCP prin streaming
🤝 A2A
/.well-known/agent.json
Agent-la-agent, JSON-RPC 2.0 + SSE, 6 abilități
🌐 API REST
/v1/*
Compatibil cu OpenAI — chat, încorporări, imagini, audio, OCR
🔔 Webhook-uri
/api/webhooks
Trimite evenimente privind cererile/cotele către Slack, Discord, Telegram sau orice URL
🛰️ CLI la distanță
omniroute connect
Controlați o instanță la distanță cu tokenuri de acces cu domeniu limitat
```bash
# Oferiți Claude Code setul complet de instrumente OmniRoute prin MCP:
claude mcp add-server omniroute --type http --url http://localhost:20128/api/mcp/stream
```
📖 [Server MCP](docs/frameworks/MCP-SERVER.md) · [Server A2A](docs/frameworks/A2A-SERVER.md) · [Protocoale pentru agenți](docs/frameworks/AGENT_PROTOCOLS_GUIDE.md)
## 🗜️ Economisiți automat 15–95% din tokenuri
### 📖 Cum funcționează — flux, arhitectură și calculul economiilor
Combinația implicită rulează `RTK → Caveman`. Atunci când ambele acționează asupra aceleiași încărcături utile de instrument/context, economiile se cumulează:
```txt
combined = 1 − (1 − RTK) × (1 − Caveman_input)
average = 1 − (1 − 0.80) × (1 − 0.46) = 89.2%
range = 78.4 – 94.6%
```
Blocurile de cod, URL-urile, JSON și datele structurate sunt **întotdeauna protejate** de motorul de conservare.
> **De ce să folosiți multe tokenuri când doar câteva sunt suficiente?** Fiecare solicitare trece prin fluxul de compresie OmniRoute în mod **transparent** — fără modificări ale clientului. Acesta este acum o **stivă de 12 motoare composabile** care rulează în ordine și pot fi combinate în funcție de fiecare configurație de rutare — dezvoltate pe baza ideilor din [RTK](https://github.com/rtk-ai/rtk), [Caveman](https://github.com/JuliusBrussee/caveman) (⭐ 90K+), [LLMLingua-2](https://github.com/microsoft/LLMLingua) și [Troglodita](https://github.com/leninejunior/troglodita) (PT-BR).
### 🧱 Stiva de 12 motoare
Motoarele rulează în ordinea fluxului; fiecare poate fi activat sau dezactivat independent și configurat pentru fiecare combinație:
#
Motor
Ce face
1
Session-Dedup
Elimină conținutul repetat între schimburi (adresat după conținut, între schimburi)
2
CCR
Arhivează blocurile mari în spatele unor marcaje de recuperare, fiind preluate la cerere
3
Lite
Eliminarea spațiilor albe și scurtarea URL-urilor imaginilor (nivel de bază cu latență redusă)
4
RTK
Filtrare inteligentă, deduplicare și trunchiere a rezultatelor instrumentelor (în funcție de comandă)
5
Responses Tool Output
JSON procesat prioritar fără pierderi, plus compresie limitată a informațiilor de diagnosticare pentru rezultatele shell/patch/search/build (Responses API)
6
Headroom
Compactarea tabelară fără pierderi a matricelor JSON (~30%) printr-un codec GCF integrat
7
Relevance
Evaluarea extractivă a propozițiilor în raport cu ultima interogare a utilizatorului
8
Caveman
Compresie a prozei bazată pe reguli (~65–75% pentru ieșire)
9
Aggressive
Rezumare și învechire progresivă a schimburilor anterioare
10
LLMLingua-2
Eliminare semantică bazată pe ML prin MobileBERT ONNX — sigură pentru cod, asincronă
11
Ultra
Eliminare euristică a tokenurilor, cu un nivel opțional bazat pe un model mic (SLM)
12
OmniGlyph
Codificare experimentală a contextului sub formă de imagine pentru Claude Fable 5 evaluat pe conexiunea directă Anthropic; transformatoarele GPT 5.6 rămân implicit blocate în așteptarea confirmărilor furnizorului. Patru profiluri de compresie (agresiv implicit, echilibrat, sigur pentru cod, fără procesare) (cel mai agresiv; necesită activare explicită)
Blocurile de cod, URL-urile și datele structurate sunt **întotdeauna păstrate** identic la nivel de octet. **Presetările cu un singur clic** combină motoarele:
Mod
Economii
Recomandat pentru
🪶 Lite
~15%
Setare implicită sigură, permanent activă
🪨 Standard (Caveman)
~30%
Programare zilnică
⚡ Aggressive
~50%
Sesiuni lungi care utilizează intens instrumente
🔥 Ultra
~75%
Economii maxime
🧰 RTK
60–90%
Rezultate shell/test/build/git
🔗 Combinate (RTK → Caveman)
78–95%
Prompturi mixte și jurnale ale instrumentelor
**Exemplu real — modul Standard:**
> **Înainte (69 de tokenuri):** _„Motivul pentru care componenta React este randată din nou este probabil faptul că creați o referință nouă de obiect la fiecare ciclu de randare. Atunci când transmiteți un obiect inline ca prop, comparația superficială din React îl consideră de fiecare dată un obiect diferit, ceea ce declanșează o nouă randare. V-aș recomanda să utilizați useMemo pentru memorarea obiectului.”_
>
> **După (19 tokenuri):** _„Referință nouă de obiect la fiecare randare. Obiect inline ca prop = referință nouă = randare nouă. Încapsulați în useMemo.”_
>
> **Același răspuns. Cu 72% mai puține tokenuri. Fără pierderi de acuratețe.** ✅
**Exemplu PT-BR — modul [Troglodita](https://github.com/leninejunior/troglodita):**
> **Înainte (42 de tokenuri):** _„Problema este că această componentă se randează din nou deoarece o nouă referință la obiect este creată la fiecare ciclu de randare. Aș recomanda utilizarea useMemo.”_
>
> **După (12 tokenuri):** _„Re-randare: referință nouă la fiecare ciclu (obiect inline recreat). Folosiți `useMemo`.”_
>
> **Același răspuns. Cu ~70% mai puține tokenuri. Precizie tehnică intactă.** ✅
### 🎚️ Dincolo de motoare — stiluri de răspuns, reglajul adaptiv și controlul per solicitare
Cele 12 motoare de mai sus reduc ceea ce intră. Alte trei niveluri modelează **cum**, **când** și ceea ce iese:
- **🪄 Stiluri de răspuns** _(direcționare pe axa răspunsului)_ — injectează instrucțiuni deterministe și compatibile cu memoria cache pentru modelarea răspunsului; pot fi combinate, fiecare cu intensitatea `lite` / `full` / `ultra`. Adăugarea unui stil necesită o singură linie în registru:
- **Proză concisă** — elimină umplutura / articolele / exprimările ezitante; păstrează cu exactitate substanța tehnică.
- **Mai puțin cod** — YAGNI în stilul „dezvoltatorului senior comod”: cea mai mică modificare funcțională, fără infrastructură nesolicitată.
- **Ponytail (dezvoltator senior comod)** — urcă pe scara YAGNI, remediază cauza principală, cu cel mai mic diff funcțional.
- **Am ADHD (acțiunea mai întâi)** — începe cu următoarea acțiune, pași numerotați, un singur pas următor concret, fără preambul.
- **CJK concis (文言)** — stil ultraconcis în chineza clasică (limitat la configurația regională `zh`).
- **🎯 Buget de context adaptiv** _(reglajul)_ — în locul unui singur prag de tokenuri activat/dezactivat, aplică progresiv cele mai ieftine motoare, cu cele mai mici pierderi, doar atât cât este necesar pentru **a se încadra în fereastra de context a modelului**. Politică: `reserve-output` (implicită, adaptată modelului) · `percentage` · `absolute`. Mod: `floor` (garantează încadrarea) · `replace-autotrigger` (alegerea dvs. explicită prevalează) · `off` (prag vechi).
- **🎛️ Unde este decisă compresia** _(precedență, de la ridicată la scăzută)_ — antetul per solicitare `x-omniroute-compression` › suprascrierea combinației de rutare › profilul denumit activ › declanșarea adaptivă / automată › valoarea implicită din panou › dezactivat. Planul aplicat este reflectat în antetul de răspuns `X-OmniRoute-Compression: ; source=`.
Declanșați automat după pragul de tokenuri, activați reglajul adaptiv, fixați un profil denumit, configurați o singură solicitare sau atribuiți un flux unei combinații de rutare — oricare variantă se potrivește volumului de lucru. Un **instrument de evaluare** offline opțional (`npm run eval:compression`) evaluează fidelitatea în raport cu economiile pe un corpus fixat înainte de a promova o modificare.
📖 [`COMPRESSION_GUIDE.md`](docs/compression/COMPRESSION_GUIDE.md) · [`RTK_COMPRESSION.md`](docs/compression/RTK_COMPRESSION.md) · [`COMPRESSION_ENGINES.md`](docs/compression/COMPRESSION_ENGINES.md)
# ⚡ Pornire rapidă
**1) Instalați și rulați**
```bash
npm install -g omniroute
omniroute
```
> 💡 Vedeți `npm warn ERESOLVE` sau avertismente privind dependențele peer? [Sunt inofensive](docs/guides/TROUBLESHOOTING.md#npm-install-warnings-eresolve--peer--deprecated).
> **Folosiți npm 11 sau o versiune ulterioară?** npm poate bloca scripturile ciclului de viață al pachetelor dacă acestea nu sunt permise. Scriptul `postinstall` al OmniRoute (`node scripts/build/postinstall.mjs`) este necesar pentru pregătirea fișierelor native de rulare. Permiteți pachetele menționate în avertismentul npm atunci când instalați global. Pentru setul de pachete raportat de OmniRoute 3.8.51:
>
> ```bash
> npm install -g --allow-scripts=omniroute,keytar,onnxruntime-node,@parcel/watcher,@swc/core,protobufjs,esbuild omniroute
> ```
>
> Pentru a reutiliza această listă de permisiuni la instalările globale viitoare, configurați-o o singură dată, apoi instalați în mod obișnuit:
>
> ```bash
> npm config set allow-scripts=omniroute,keytar,onnxruntime-node,@parcel/watcher,@swc/core,protobufjs,esbuild --location=user
> npm install -g omniroute
> ```
>
> Lista de dependențe se poate modifica între versiuni; dacă npm raportează o listă diferită, utilizați numele pachetelor din acel avertisment. Permiterea unui pachet autorizează rularea scripturilor sale de instalare.
> **Folosiți Gemini Web sau alt furnizor bazat pe cookie-uri web?** Pachetul npm include
> Playwright, dar nu și binarul său Chromium. Consultați nota despre
> [configurarea Chromium pentru Playwright](docs/guides/TROUBLESHOOTING.md#gemini-web-and-playwright-chromium)
> înainte de a efectua prima solicitare către furnizorul web.
Panou de control la `http://localhost:20128` · API la `http://localhost:20128/v1`.
**2) Conectați un furnizor eligibil folosind propriul cont**
Panou de control → **Furnizori** → alegeți un furnizor ale cărui condiții și cote actuale se potrivesc cazului dvs. de utilizare → adăugați cheia sa API sau finalizați fluxul de conectare a contului. Nivelurile gratuite pot necesita înregistrare, aprobare sau o metodă de plată. Consultați [Ghidul nivelurilor gratuite](docs/getting-started/FREE-TIERS-GUIDE.md); disponibilitatea fără cheie nu este garantată, iar furnizorii marcați `tos: avoid` sunt excluși implicit din `auto`.
**3) Configurați instrumentul de programare**
```txt
URL de bază: http://localhost:20128/v1
Cheie API: [copiați din Panou de control → Puncte finale]
Model: auto (rutează între conexiunile eligibile — sau alegeți furnizorul/modelul)
```
**4) Verificați dacă funcționează**
```bash
curl http://localhost:20128/v1/models -H "Authorization: Bearer YOUR_KEY"
```
Ar trebui să vedeți listate modelele conectate. 🎉 Gata — începeți să programați, iar OmniRoute va efectua automat rutarea și va folosi alternative când este necesar.
Dacă aplicația client nu poate trimite antete personalizate, OmniRoute oferă și aliasuri de compatibilitate cu tokenuri:
```txt
Catalog OpenAI: http://localhost:20128/vscode/YOUR_KEY/
Modele OpenAI: http://localhost:20128/vscode/YOUR_KEY/models
Chat OpenAI: http://localhost:20128/vscode/YOUR_KEY/chat/completions
Răspunsuri OpenAI: http://localhost:20128/vscode/YOUR_KEY/responses
Chat Ollama: http://localhost:20128/vscode/YOUR_KEY/api/chat
Etichete Ollama: http://localhost:20128/vscode/YOUR_KEY/api/tags
```
Folosiți-le numai pentru aplicațiile client care nu pot atașa `Authorization: Bearer ...`. Autentificarea prin antet rămâne metoda preferată.
## 📦 Mai multe metode de instalare — Docker, sursă, 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` urmărește cea mai mare versiune SemVer stabilă **publicată**. Nu urmărește ramura git `main`. Fixați versiunea la `:X.Y.Z` pentru GitOps. Consultați [Canalele de lansare Docker](docs/guides/DOCKER_GUIDE.md#release-channels). Imaginea fixează **`OMNIROUTE_MEMORY_MB=1024`**. Această valoare este suficientă pentru panoul de control și conversații ușoare. **Agenții de programare** (`POST /v1/responses` din Claude Code, Codex, Grok, …) necesită un heap V8 mult mai mare, altfel procesul întâmpină o `FATAL ERROR` la aproximativ 12 GiB, în cazul a două contexte lungi care se suprapun. Dimensionați containerul peste dimensiunea heap-ului (bufferele native se află în afara V8):
| Sarcină de lucru | Heap (`-e OMNIROUTE_MEMORY_MB`) | Container (`--memory`) |
| -------------------------------------------------- | -------------------------------------- | ---------------------- |
| Panou de control / conversații ușoare | `1024` (valoarea implicită a imaginii) | ≥2 g |
| Un agent de programare | `8192` | ≥10 g |
| Două solicitări `/v1/responses` lungi și simultane | `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
```
Tabelul complet: [Ghid Docker — RAM în timpul rulării](docs/guides/DOCKER_GUIDE.md#runtime-ram-for-coding-agents).
> **Canal Docker de pre-lansare:** `diegosouzapw/omniroute:next` și
> `diegosouzapw/omniroute:next-web` urmăresc ramura implicită curentă `release/v*`.
> Aceste etichete mutabile sunt destinate exclusiv testării remedierilor nelansate și
> **nu sunt acceptate pentru utilizare în producție**. Consultați
> [Canalele de lansare Docker](docs/guides/DOCKER_GUIDE.md#release-channels).
**🥟 Bun**
Comanda standard `bun install` și instalarea globală (`bun install -g omniroute`) sunt acceptate prin detectarea mediului de rulare Bun:
- **`bun:sqlite` încorporat**: OmniRoute utilizează driverul `bun:sqlite` încorporat în Bun atunci când rulează sub Bun, folosind alternativ `better-sqlite3` pe Node.js sau `sql.js`.
- **Selectarea automată a bundlerului Webpack în dezvoltare**: Mediul de dezvoltare (`bun run dev`) detectează automat Bun și dezactivează Turbopack în favoarea Webpack, pentru a preveni incompatibilitățile cu bindingurile native V8. Buildurile de producție (`bun run build`) respectă `OMNIROUTE_USE_TURBOPACK` exact ca pe Node: Turbopack în mod implicit, `OMNIROUTE_USE_TURBOPACK=0` pentru a construi cu Webpack (`Dockerfile.bun` îl expune drept `--build-arg`).
- **Dockerfile dedicat pentru Bun**: `Dockerfile.bun` în mai multe etape pentru implementări native Bun în producție (`docker build -f Dockerfile.bun -t omniroute:bun .`).
```bash
# Instalați și rulați cu Bun
bun install
bun run dev
```
**🛠️ Din sursă**
```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
# Utilizând flake-uri Nix
nix develop
npm run dev
# Sau utilizând devbox
devbox run npm run dev
```
📖 [Ghid Docker](docs/guides/DOCKER_GUIDE.md) — Profiluri Compose, HTTPS cu Caddy, tuneluri Cloudflare.
**🦭 Podman**
```bash
# 1. Pregătiți directorul de date montat prin bind
mkdir -p data
# 2. Numai pentru Linux + Podman rootless local (niciodată pentru un client Podman Machine la distanță):
podman unshare chown 1000:1000 ./data
# 3. Setați indicația pentru mediul de rulare, construiți imaginea Compose locală și porniți
echo "CONTAINER_HOST=podman" >> .env
podman compose --profile base up -d --build
```
Pe macOS sau Windows, Podman utilizează o instanță Podman Machine la distanță: omiteți `podman unshare` și
urmați [instrucțiunile privind directorul de date, specifice topologiei](contrib/podman/README.md#data-directory-permissions-by-topology).
📖 [Ghid Podman](contrib/podman/README.md) — Builduri Compose, Podman Machine și
configurare Quadlet Linux/systemd.
**⚡ Instalare mai rapidă / mai compactă (omiteți buildul nativ)**
Motorul SQLite nativ (`better-sqlite3`) este o dependență **opțională**, astfel încât o instalare
globală nu este niciodată blocată de compilarea din sursă: utilizează un binar precompilat atunci când unul este compatibil
cu platforma/versiunea Node utilizată, iar în caz contrar trece în mod transparent la un motor JavaScript pur
(`node:sqlite` pe Node 22+, altfel varianta WASM `sql.js` inclusă) — nu sunt necesare instrumente de build.
Pentru a omite complet inițializarea nativă ulterioară instalării (CI, sisteme headless sau lente):
```bash
OMNIROUTE_SKIP_POSTINSTALL=1 npm install -g omniroute # CI=1 o omite, de asemenea
```
Pentru instalări cât mai rapide, preferați **pnpm** (stocare adresată după conținut + linkuri fizice — consultați mai sus).
Pentru un mediu de rulare headless, fără panou de control, utilizați profilul Docker `base` (de mai sus) sau
[ghidul Termux](docs/guides/TERMUX_GUIDE.md). CLI-ul și panoul de control web sunt furnizate de același
proces pe un singur port, astfel că în prezent nu există un pachet separat destinat exclusiv CLI-ului.
Întrerupător de circuit, temporizare exponențială, protecție împotriva efectului de turmă, auto-vindecare prin combinare automată
Jurnalizare
pino — jurnale JSON structurate, cu contextul solicitării
Testare
Rularea de teste Node.js + Vitest — peste 39.000 de declarații statice de test în peste 5.100 de fișiere de test urmărite (unitare, de integrare, E2E, de securitate, de ecosistem)
Strategia de acoperire cu teste pentru peste 39.000 de declarații statice de teste din peste 5.100 de fișiere de testare urmărite
# ⭐ Contribuitori principali
> OmniRoute este modelat de o comunitate open-source pasionată. Aceste persoane au avut contribuții excepționale care influențează direct calitatea, stabilitatea și amploarea proiectului. **Vă mulțumim.**
### Contribuitori externi după numărul de pull request-uri fuzionate
Date fixate la cel mai recent commit activ din release/v3.8.50, dafb4ae808, incluzând fuziunile până la 2026-08-24 05:26:03 UTC. Recensământul paginat GitHub GraphQL conține 5.911 PR-uri fuzionate: 2.707 create de proprietarul depozitului, 179 de Dependabot și 3.025 de PR-uri externe de la 535 de contribuitori distincți. „Linii modificate” reprezintă suma adăugărilor și ștergerilor de pe GitHub și include fișiere generate, fișiere lock, cataloage, traduceri și documentație; măsoară volumul modificărilor, nu liniile de cod scrise. Egalitățile de la pragul de includere sunt păstrate.
### Commituri atribuite de GitHub
Bob.Hou 🏅 51 de commit-uri atribuite de GitHub · la egalitate pe locul 10
Xiangzhe 🏅 51 de commit-uri atribuite de GitHub · la egalitate pe locul 10
Reverificat la 2026-08-24 06:14:31 UTC: commit-uri atribuite de GitHub, raportate de API-ul Contributors al depozitului pentru ramura implicită release/v3.8.50. API-ul a returnat 525 de identități (415 utilizatori, 2 boți, 108 anonime); acest tabel exclude responsabilul de întreținere, boții și identitățile anonime și păstrează egalitățile din clasament. Acesta este distinct atât de clasamentul PR-urilor îmbinate de mai sus, cât și de recensământul de mai jos, bazat pe metadatele Git, care cuprinde 639 de persoane.
> 🙏 Funcționalitățile, remedierile erorilor și îmbunătățirile de infrastructură realizate de acești contribuitori reprezintă o **parte esențială** a ceea ce face ca OmniRoute să fie fiabil și bogat în funcționalități. Fiecare solicitare de integrare, fiecare caz de testare și fiecare fișier de traducere i18n contează. Proiectele open source sunt construite de oameni ca ei.
---
## 💖 Sponsori
Mulțumiri din suflet celor care finanțează OmniRoute din propriul buzunar — fiecare contribuție menține proiectul gratuit, independent și în continuă dezvoltare.
… și alții care preferă să rămână anonimi 💛Sponsorii GitHub publici au fost revalidați la 2026-08-24. Starea activeOnly din GitHub determină etichetele active de mai sus; susținătorilor publici cu contribuții unice declarați anterior li se mulțumește în continuare, iar sponsorii privați rămân anonimi.💖 Devino sponsor → — fiecare dolar menține OmniRoute gratuit și independent.
## 👥 Peste 600 de contribuitori
[](https://github.com/diegosouzapw/OmniRoute/graphs/contributors)
Auditat la 2026-08-24 pe baza înghețată ac02c5b42f și reverificat la vârful activ release/v3.8.50dafb4ae808: 639 de identități Git umane normalizate — 407 apar ca autori de commituri (inclusiv responsabilul de întreținere), iar 232 apar doar în câmpuri explicite Co-authored-by. Recensământul normalizează identificatorii GitHub noreply, exclude 26 de identități de boți/agenți/servicii/substituenți și nu combină adresele de e-mail obișnuite doar pentru că numele lor afișate coincid.
### Cum să contribui
1. Creează un fork al depozitului
2. Creează ramura pornind de la vârful **activ** `release/vX.Y.Z` (nu de la `main`) — consultă [Modelul de ramificare și lansare](docs/ops/BRANCHING_MODEL.md)
3. Creează ramura pentru funcționalitatea ta (`git checkout -b feat/amazing-feature`)
4. Înregistrează modificările (`git commit -m 'feat: add amazing feature'`)
5. Trimite modificările în ramură (`git push origin feat/amazing-feature`)
6. Deschide un Pull Request cu **base = ramura `release/vX.Y.Z` respectivă**
Consultă [CONTRIBUTING.md](CONTRIBUTING.md) pentru instrucțiuni detaliate.
### Lansarea unei versiuni noi
```bash
# Creează o versiune — publicarea npm are loc automat
VERSION=x.y.z
gh release create "v${VERSION}" --title "v${VERSION}" --generate-notes
```
## 📊 Stele
## 🌍 StarMapper
## 🙏 Mulțumiri
OmniRoute se sprijină pe umerii unor giganți. A început ca un fork al proiectului **[9router](https://github.com/decolua/9router)** și ca o portare în TypeScript a proiectului Go **[CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI)** — iar de atunci, fiecare subsistem de mai jos a fost inspirat de un proiect open-source care a ajuns acolo primul. Fiecare dintre ele a modelat o componentă concretă a OmniRoute. Acesta este modul nostru de a le mulțumi tuturor. 🙏
> ⭐ numărul de stele a fost verificat prin API-ul REST al GitHub pe 24 august 2026 — acordați-le o stea acestor proiecte. Valorile reprezintă un instantaneu exact, datat, și se vor schimba în mod natural.
### 🧬 Origine și gateway
Gateway-ul AI al cărui set public de date despre prețuri alimentează sincronizarea noastră pentru urmărirea costurilor și al cărui model de normalizare a furnizorilor a stat la baza rutării noastre.
Sursă MIT adaptată în puntea inclusă în proiect ChatGPT Web → Codex Responses, inclusiv adaptoare pentru sesiunea browserului, încadrarea răspunsurilor, utilizare și căutarea pe web.
Modele portate pentru recuperarea fluxurilor, aliasuri fără raționament, căutare web de rezervă, limite cu fereastră glisantă, redactarea jurnalelor și fluxuri de lansare securizate.
Valorile implicite pentru transformări compatibile cu Claude Code și comportamentul antetelor de facturare, generalizate în puntea OmniRoute bazată pe configurare.
Mapările sale pentru modelele Grok, generatorul Statsig de TypeError simulat, valorile implicite pentru cereri și dispozitive, precum și procesorul de răspunsuri NDJSON au fost adaptate în mod substanțial în executorul Grok Web al OmniRoute.
Principala sursă tranzitivă de cod din spatele grok2api-merged; implementările sale pentru modele, antete, sarcini utile, Statsig și procesoare sunt păstrate în filiația Grok Web.
Sursa MIT de bază pentru sarcinile utile Grok și valorile implicite ale dispozitivelor, generatorul Statsig și procesorul result.response, preluate prin TQZHR și grok2api-merged.
O sursă tranzitivă creditată de grok2api-merged pentru stratul său de fond comun de proxy-uri; OmniRoute păstrează această mențiune de filiație, dar nu revendică portarea unui fond comun de proxy-uri în executorul său Grok Web cu domeniu limitat.
Implementarea originală Grok Web a consultat designul său upstream HTTP/browser; calea sa HTTP directă derivă din GrokProxy, astfel că nu este revendicată nicio portare independentă de cod.
Schemele sale Rust ChatOptions și cele pentru anvelopa de răspuns au stat la baza tipurilor TypeScript pentru cererile Grok și răspunsurile în flux ale OmniRoute.
### 🗜️ Comprimarea contextului și a tokenurilor — motoare
Proiectul viral „de ce folosi multe tokenuri când puține tokenuri rezolvă” — filosofia sa de om al peșterilor stă la baza modului nostru standard de compresie și a peste 30 de reguli pentru eliminarea expresiilor de umplutură și condensare.
Cercetare privind compresia prompturilor (LLMLingua / LLMLingua-2) — a inspirat motorul nostru asincron llmlingua, sigur pentru cod și cu funcționare neîntreruptă în caz de eroare.
Compresie de tokenuri pentru portugheza braziliană — stă la baza pachetului nostru lingvistic pt-BR: reducerea pleonasmelor și eliminarea expresiilor de umplutură, ajustate pentru gramatica portughezei braziliene.
Abilitatea virală de programare YAGNI a „dezvoltatorului senior leneș” — a inspirat stilul nostru de ieșire less-code: orientarea către cea mai mică modificare funcțională, care reduce codul _generat_ (echivalentul pentru axa ieșirii al prozei concise Caveman).
Formatul său compact pentru grafuri și arhitectura bazată pe profiluri generice au contribuit la compactarea tabelară și la formatul codecului Headroom din OmniRoute.
Compresie a ieșirii în funcție de conținut și de tipul fișierului, cu abandonare în caz de eșec — a validat distribuirea noastră în funcție de tip și omiterea compresiei când câștigul este insuficient.
„Găsește tokenurile-fantomă” — modelul său de externalizare și identificator recuperabil a contribuit la modul nostru de gândire privind externalizarea CCR.
Un model bazat pe grafuri de sesiune și deduplicarea liniilor între interacțiuni, care a contribuit la proiectarea sistemului nostru de deduplicare a sesiunilor.
JSON columnar în Rust + recuperare adresată după conținut + deduplicare între mesaje — a validat proiectarea motoarelor noastre headroom/ccr/session-dedup și invariantul stabil pentru cache „forma comprimată este independentă de poziție”.
Clasificarea hărților de depozite în stil Aider — a contribuit la explorarea noastră privind hărțile de depozite și clasificarea rezultatelor recuperării.
Set de instrumente pentru TypeScript Compiler API — a inspirat eliminarea comentariilor bazată pe parser, care păstrează literalii șir, șablon și expresie regulată.
Interceptarea/analiza MITM a traficului dintre asistentul de programare și LLM a contribuit la definirea cerințelor inițiale pentru Traffic Inspector. Patru module derivate anterior — îmbinarea SSE, normalizarea conversațiilor, mascarea secretelor și igienizarea anteturilor — au fost înlocuite cu implementări independente de tip clean-room, bazate pe standarde publice de protocol. Cele două suprafețe de trecere directă către gazdă (passthrough.ts și _internal/bypass.cjs) rămân implementări interne OmniRoute, clasificate independent; acestea nu au fost rescrise ca parte a înlocuirii respective.
Rutare transparentă prin proxy pentru fiecare proces — a inspirat dezactivarea MITM sigură în caz de blocare, temporizările de inactivitate pentru socketuri, atribuirea proceselor prin /proc și capturarea TPROXY.
### 📚 Date despre modele, observabilitate și interfață
Observabilitate pentru rețeaua de servicii Istio — a inspirat insignele pentru întrerupătoarele de circuit și reprezentările vizuale ale muchiilor cu erori din Routing/Combo Studio.
O listă atent selecționată de biblioteci securizate implicit, care ne ghidează alegerile privind securitatea (Helmet.js, DOMPurify, ssrf-req-filter, safe-regex, Google Tink).
A inspirat deduplicarea solicitărilor, soluția de rezervă de urgență fără costuri, strategiile Auto-Combo extensibile și clasificarea multilingvă a intențiilor.
Remaparea modelelor în funcție de cont, validarea căii executabilului și comportamentul etichetelor planurilor au contribuit la definirea mediului de execuție Antigravity din OmniRoute.