🚀 OmniRoute — The Free AI Gateway (Română)
🌐 Languages: 🇺🇸 English · 🇪🇸 es · 🇫🇷 fr · 🇩🇪 de · 🇮🇹 it · 🇷🇺 ru · 🇨🇳 zh-CN · 🇯🇵 ja · 🇰🇷 ko · 🇸🇦 ar · 🇮🇳 hi · 🇮🇳 in · 🇹🇭 th · 🇻🇳 vi · 🇮🇩 id · 🇲🇾 ms · 🇳🇱 nl · 🇵🇱 pl · 🇸🇪 sv · 🇳🇴 no · 🇩🇰 da · 🇫🇮 fi · 🇵🇹 pt · 🇷🇴 ro · 🇭🇺 hu · 🇧🇬 bg · 🇸🇰 sk · 🇺🇦 uk-UA · 🇮🇱 he · 🇵🇭 phi · 🇧🇷 pt-BR · 🇨🇿 cs · 🇹🇷 tr
Never stop coding. Smart routing to FREE & low-cost AI models with automatic fallback.
Proxy-ul dvs. universal API — un punct final, peste 60 de furnizori, zero timpi de nefuncționare. Acum cuServer MCP (25 de instrumente),Protocol A2A,Memory/Skills SystemsșiElectron Desktop App.
Finalizări de chat • Încorporare • Generare de imagini • Video • Muzică • Audio • Reclasificare •Căutare Web• Server MCP • Protocol A2A • 100% TypeScript---
🌐 Site web • [🚀 Pornire rapidă](#-pornire rapidă) • 💡 Funcții • 📖 Documente • [💰 Preț](#-preț-din-o privire) • 💬 WhatsApp
🌐Disponibil în:🇺🇸 Engleză | 🇧🇷 Português (Brasil) | 🇪🇸 Español | 🇫🇷 Français | 🇮🇹 Italiano | 🇷🇺 Русский | 🇨🇳 中文 (简体) | 🇩🇪 Deutsch | 🇮🇳 हिन्दी | 🇹🇭 ไทย | 🇺🇦 Українська | 🇸🇦 العربية | 🇯🇵 日本語 | 🇻🇳 Tiếng Việt | 🇧🇬 Български | 🇩🇰 Dansk | 🇫🇮 Suomi | 🇮🇱 עברית | 🇭🇺 Magyar | 🇮🇩 Bahasa Indonesia | 🇰🇷 한국어 | 🇲🇾 Bahasa Melayu | 🇳🇱 Nederlands | 🇳🇴 Norsk | 🇵🇹 Português (Portugalia) | 🇷🇴 Română | 🇵🇱 Polski | 🇸🇰 Slovenčina | 🇸🇪 Svenska | 🇵🇭 Filippine | 🇨🇿 Čeština---
🖼️ Main Dashboard
📸 Dashboard Preview
| Pagina | Captură de ecran | |
|---|---|---|
| Furnizori | ![]() |
|
| Combo | ![]() |
|
| Analitice | ![]() |
|
| Sănătate | ![]() |
|
| Translator | ![]() |
|
| Setări | ![]() |
|
| Instrumente CLI | ![]() |
|
| Jurnale de utilizare | ![]() |
|
| Punctele finale | ![]() |
🤖 Free AI Provider for your favorite coding agents
Conectați orice instrument IDE sau CLI alimentat de AI prin OmniRoute — gateway API gratuit pentru codare nelimitată.
OpenClaw
⭐ 205K
NanoBot
⭐ 20,9K
PicoClaw
⭐ 14,6K
ZeroClaw
⭐ 9,9K
Gheară de Fier
⭐ 2,1K
OpenCode
⭐ 106K
Codex CLI
⭐ 60,8K
Claude Code
⭐ 67,3K
CLI Gemini
⭐ 94,7K
Cod kilo
⭐ 15,5K
📡 Toți agenții se conectează prin http://localhost:20128/v1 sau http://cloud.omniroute.online/v1 — o singură configurare, modele și cotă nelimitate---
🤔 Why OmniRoute?
Nu mai risipi banii și nu mai atingeți limitele:
Cota de abonament expiră neutilizată în fiecare lună
Limitele ratelor vă opresc codificarea la mijloc
API-uri scumpe (20-50 USD/lună per furnizor)
Comutare manuală între furnizori
OmniRoute rezolvă asta:
- ✅Maximizați abonamentele- Urmăriți cota, utilizați fiecare bit înainte de resetare
- ✅Auto de rezervă- Abonament → Cheie API → Ieftin → Gratuit, timp de nefuncționare zero
- ✅Multi-cont- Round-robin între conturi pentru fiecare furnizor
- ✅Universal- Funcționează cu Claude Code, Codex, Gemini CLI, Cursor, Cline, OpenClaw, orice instrument CLI---
📧 Support
💬Alăturați-vă comunității noastre!WhatsApp Group — Obțineți ajutor, împărtășiți sfaturi și rămâneți la curent.
-Site web: omniroute.online -GitHub: github.com/diegosouzapw/OmniRoute -Probleme: github.com/diegosouzapw/OmniRoute/issues -WhatsApp: Grup comunitar -Contribuind: Consultați CONTRIBUTING.md, deschideți un PR sau alegeți o „prima ediție bună” -Proiect original: 9router by decolua### 🐛 Reporting a Bug?
Când deschideți o problemă, rulați comanda system-info și atașați fișierul generat:```bash npm run system-info
Acest lucru generează un `system-info.txt` cu versiunea dvs. Node.js, versiunea OmniRoute, detaliile sistemului de operare, instrumentele CLI instalate (qoder, gemini, claude, codex, antigravity, droid etc.), starea Docker/PM2 și pachetele de sistem - tot ce avem nevoie pentru a reproduce problema rapid. Atașați fișierul direct la problema dvs. GitHub.---
## 🔄 How It Works
┌─────────────┐ │ Your CLI │ (Claude Code, Codex, Gemini CLI, OpenClaw, Cursor, Cline...) │ Tool │ └──────┬──────┘ │ http://localhost:20128/v1 ↓ ┌─────────────────────────────────────────┐ │ OmniRoute (Smart Router) │ │ • Format translation (OpenAI ↔ Claude) │ │ • Quota tracking + Embeddings + Images │ │ • Auto token refresh │ └──────┬──────────────────────────────────┘ │ ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex, Gemini CLI │ ↓ quota exhausted ├─→ [Tier 2: API KEY] DeepSeek, Groq, xAI, Mistral, NVIDIA NIM, etc. │ ↓ budget limit ├─→ [Tier 3: CHEAP] GLM ($0.6/1M), MiniMax ($0.2/1M) │ ↓ budget limit └─→ [Tier 4: FREE] Qoder, Qwen, Kiro (unlimited)
Result: Never stop coding, minimal cost
---
## 🎯 What OmniRoute Solves — 30 Real Pain Points & Use Cases
>**Fiecare dezvoltator care folosește instrumente AI se confruntă zilnic cu aceste probleme.**OmniRoute a fost creat pentru a le rezolva pe toate - de la depășiri de costuri la blocaje regionale, de la fluxuri OAuth întrerupte la operațiuni de protocol și observabilitate a întreprinderii.
<detalii>
<summary><b>💸 1. „Plătesc pentru un abonament scump, dar tot sunt întrerupt de limite”</b></summary>
Dezvoltatorii plătesc 20–200 USD/lună pentru Claude Pro, Codex Pro sau GitHub Copilot. Chiar și plătind, cota are un plafon - 5 ore de utilizare, limite săptămânale sau limite de tarif pe minut. La mijlocul sesiunii de codare, furnizorul nu mai răspunde și dezvoltatorul își pierde fluxul și productivitatea.
**Cum o rezolvă OmniRoute:**
-**Smart 4-Tier Fallback**— Dacă cota de abonament se epuizează, redirecționează automat la cheia API → Ieftin → Gratuit fără intervenție manuală
-**Urmărirea limitelor furnizorului**— Instantaneele de cotă stocate în cache se reîmprospătează pe o programare pe partea de server (implicit `PROVIDER_LIMITS_SYNC_INTERVAL_MINUTES=70`) cu reîmprospătare manuală disponibilă în interfața de utilizare
-**Asistență pentru mai multe conturi**— Conturi multiple per furnizor cu turneu automat automat — când unul se epuizează, trece la următorul
-**Combinații personalizate**— Lanțuri de rezervă personalizabile cu 9 strategii de echilibrare (prioritar, ponderat, completare mai întâi, round-robin, P2C, aleatoriu, cel mai puțin utilizat, optimizat din punct de vedere al costurilor, strict aleatoriu)
-**Cote de afaceri Codex**— Monitorizarea cotelor de spațiu de lucru pentru afaceri/echipe direct în tabloul de bord</details>
<detalii>
<summary><b>🔌 2. „Trebuie să folosesc mai mulți furnizori, dar fiecare are un API diferit”</b></summary>
OpenAI folosește un format, Claude (Anthropic) folosește altul, Gemini încă altul. Dacă un dezvoltator dorește să testeze modele de la diferiți furnizori sau să se retragă între aceștia, trebuie să reconfigureze SDK-urile, să schimbe punctele finale, să se ocupe de formate incompatibile. Furnizorii personalizați (FriendLI, NIM) au puncte finale de model non-standard.
**Cum o rezolvă OmniRoute:**
-**Unified Endpoint**— Un singur `http://localhost:20128/v1` servește ca proxy pentru toți cei peste 60 de furnizori
-**Traducerea formatului**— Automată și transparentă: OpenAI ↔ Claude ↔ Gemeni ↔ Responses API
-**Response Sanitization**— Elimina câmpurile non-standard (`x_groq`, `usage_breakdown`, `service_tier`) care încalcă OpenAI SDK v1.83+
-**Normalizarea rolurilor**— Convertește `dezvoltator` → `sistem` pentru furnizorii non-OpenAI; `sistem` → `utilizator` pentru GLM/ERNIE
-**Think Tag Extraction**— Extrage blocurile `<think>` din modele precum DeepSeek R1 în `conținut_raționament` standardizat
-**Ieșire structurată pentru Gemini**— `json_schema` → `responseMimeType`/`responseSchema` conversie automată
-**`stream` este implicit `false`**— Se aliniază cu specificațiile OpenAI, evitând SSE neașteptat în SDK-urile Python/Rust/Go</details>
<detalii>
<summary><b>🌐 3. „Furnizorul meu de AI îmi blochează regiunea/țara”</b></summary>
Furnizori precum OpenAI/Codex blochează accesul din anumite regiuni geografice. Utilizatorii primesc erori precum „unsupported_country_region_territory” în timpul conexiunilor OAuth și API. Acest lucru este frustrant în special pentru dezvoltatorii din țările în curs de dezvoltare.
**Cum o rezolvă OmniRoute:**
-**3-Level Proxy Config**— Proxy configurabil la 3 niveluri: global (tot traficul), per furnizor (doar un singur furnizor) și per conexiune/cheie
-**Insigne de proxy cu coduri de culoare**— Indicatori vizuali: 🟢 proxy global, 🟡 proxy furnizor, 🔵 proxy de conexiune, indicând întotdeauna IP-ul
-**Schimb de jetoane OAuth prin proxy**— fluxul OAuth trece și prin proxy, rezolvând `unsupported_country_region_territory`
-**Teste de conexiune prin proxy**— Testele de conexiune folosesc proxy-ul configurat (nu mai este ocolire directă)
-**Support SOCKS5**— Suport complet SOCKS5 proxy pentru rutarea de ieșire
-**TLS Fingerprint Spoofing**- Amprenta TLS asemănătoare unui browser prin `wreq-js` pentru a ocoli detectarea botului
-**🔏 Potrivirea amprentei CLI**— Reordonează anteturile și câmpurile de corp pentru a se potrivi cu semnăturile binare CLI native, reducând drastic riscul de semnalare a contului. IP-ul proxy este păstrat - obțineți simultan mascarea IP stealth**și**</details>
<detalii>
<summary><b>🆓 4. „Vreau să folosesc AI pentru codare, dar nu am bani”</b></summary>
Nu toată lumea poate plăti 20–200 USD/lună pentru abonamentele AI. Studenții, dezvoltatorii din țările emergente, pasionații și freelancerii au nevoie de acces la modele de calitate la cost zero.
**Cum o rezolvă OmniRoute:**
-**Free Tier Providers Built-in**— Suport nativ pentru furnizori 100% gratuiti: Qoder (5 modele nelimitate prin OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 modele nelimitate: q-coder-3-fwen: qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID gratuit), Gemini CLI (180.000 de jetoane/lună gratuit)
-**Ollama Cloud**— Modele Ollama găzduite în cloud la `api.ollama.com` cu nivelul gratuit „Utilizare ușoară”; utilizați prefixul `ollamacloud/<model>`
-**Free-Only Combo**— Lanț `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = 0 USD/lună fără timp de nefuncționare
-**NVIDIA NIM Free Access**— ~40 RPM dev-forever acces gratuit la peste 70 de modele la build.nvidia.com (tranziție de la credite la limitele de rate pur)
-**Cost Optimized Strategy**— Strategie de rutare care alege automat cel mai ieftin furnizor disponibil</details>
<detalii>
<summary><b>🔒 5. „Trebuie să-mi protejez poarta AI de accesul neautorizat”</b></summary>
Când expuneți un gateway AI în rețea (LAN, VPS, Docker), oricine are adresa poate consuma jetoanele/cota dezvoltatorului. Fără protecție, API-urile sunt vulnerabile la utilizare greșită, injectare promptă și abuz.
**Cum o rezolvă OmniRoute:**
-**Gestionarea cheilor API**— Generare, rotație și stabilire a domeniului pentru fiecare furnizor cu o pagină dedicată „/dashboard/api-manager”
-**Permisiuni la nivel de model**— Restricționați cheile API la anumite modele (`openai/*`, modele de metacaractere), cu comutarea Permite tot/Restricționați
-**API Endpoint Protection**— Solicitați o cheie pentru `/v1/models` și blocați anumiți furnizori din listă
-**Auth Guard + CSRF Protection**— Toate rutele tabloului de bord sunt protejate cu middleware `withAuth` + jetoane CSRF
-**Rate Limiter**— Limitarea ratei per-IP cu ferestre configurabile
-**Filtrare IP**— Lista permisă/lista blocată pentru controlul accesului
-**Prompt Injection Guard**— Igienizare împotriva tiparelor de prompte rău intenționate
-**Criptare AES-256-GCM**— Acreditări criptate în repaus</details>
<detalii>
<summary><b>🛑 6. „Furnizorul meu a căzut și mi-am pierdut fluxul de codare”</b></summary>
Furnizorii de AI pot deveni instabili, pot returna erori 5xx sau pot atinge limitele temporare ale ratei. Dacă un dezvoltator depinde de un singur furnizor, acesta este întrerupt. Fără întreruptoare, reîncercări repetate pot bloca aplicația.
**Cum o rezolvă OmniRoute:**
-**Circuit Breaker per-model**- Deschidere/închidere automată cu praguri configurabile și răcire (Închis/Deschis/Pe jumătate deschis), pentru fiecare model pentru a evita blocurile în cascadă
-**Backoff exponențial**— Întârzieri progresive ale reîncercării
-**Anti-Thundering Herd**— Mutex + protecție semafor împotriva furtunilor concurente de reîncercare
-**Combo Fallback Chains**— Dacă furnizorul principal eșuează, trece automat prin lanț fără nicio intervenție
-**Combo Circuit Breaker**— Dezactivează automat furnizorii care eșuează dintr-un lanț combinat
-**Tabloul de bord pentru sănătate**— Monitorizare timp de funcționare, stări întrerupătoare de circuit, blocări, statistici cache, latență p50/p95/p99</details>
<detalii>
<summary><b>🔧 7. „Configurarea fiecărui instrument AI este plictisitoare și repetitivă”</b></summary>
Dezvoltatorii folosesc Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code... Fiecare instrument are nevoie de o configurație diferită (punct final API, cheie, model). Reconfigurarea la schimbarea de furnizor sau de model este o pierdere de timp.
**Cum o rezolvă OmniRoute:**
-**CLI Tools Dashboard**— pagină dedicată cu setare cu un singur clic pentru Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline
-**GitHub Copilot Config Generator**— Generează `chatLanguageModels.json` pentru VS Code cu selecție de model în bloc
-**Onboarding Wizard**— Configurare ghidată în 4 pași pentru utilizatorii debutanți
-**Un punct final, toate modelele**— Configurați `http://localhost:20128/v1` o dată, accesați peste 60 de furnizori</details>
<detalii>
<summary><b>🔑 8. „Gestionarea jetoanelor OAuth de la mai mulți furnizori este un iad”</b></summary>
Claude Code, Codex, Gemini CLI, Copilot - toate folosesc OAuth 2.0 cu token-uri care expiră. Dezvoltatorii trebuie să se reautentifice în mod constant, să se ocupe de `client_secret is missing`, `redirect_uri_mismatch` și eșecurile pe serverele de la distanță. OAuth pe LAN/VPS este deosebit de problematică.
**Cum o rezolvă OmniRoute:**
-**Reîmprospătare automată a simbolurilor**— jetoanele OAuth se reîmprospătează în fundal înainte de expirare
-**OAuth 2.0 (PKCE) încorporat**— Flux automat pentru Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, Qoder
-**OAuth cu mai multe conturi**— Conturi multiple per furnizor prin extragerea jetonului JWT/ID
-**OAuth LAN/Remote Fix**— Detectare IP privată pentru `redirect_uri` + modul URL manual pentru servere la distanță
-**OAuth în spatele Nginx**— Utilizează `window.location.origin` pentru compatibilitatea cu proxy invers
-**Ghid OAuth la distanță**— Ghid pas cu pas pentru acreditările Google Cloud pe VPS/Docker</details>
<detalii>
<summary><b>📊 9. „Nu știu cât cheltuiesc sau unde”</b></summary>
Dezvoltatorii folosesc mai mulți furnizori plătiți, dar nu au o viziune unificată asupra cheltuielilor. Fiecare furnizor are propriul tablou de bord de facturare, dar nu există o vizualizare consolidată. Costurile neașteptate se pot acumula.
**Cum o rezolvă OmniRoute:**
-**Tabloul de bord pentru analiza costurilor**— Urmărirea costurilor pe token și gestionarea bugetului per furnizor
-**Limite bugetare pe nivel**— Plafonul de cheltuieli pe nivel care declanșează o rezervă automată
-**Configurație de preț pe model**— Prețuri configurabile pe model
-**Statistici de utilizare per cheie API**— Numărul de solicitări și marcajul temporal al ultimei utilizări per cheie
-**Tabloul de bord de analiză**— Carduri cu statistici, diagramă de utilizare a modelului, tabel cu furnizori cu rate de succes și latență</details>
<detalii>
<summary><b>🐛 10. „Nu pot diagnostica erorile și problemele în apelurile AI”</b></summary>
Când un apel eșuează, dezvoltatorul nu știe dacă a fost o limită de rată, un simbol expirat, un format greșit sau o eroare a furnizorului. Jurnalele fragmentate pe diferite terminale. Fără observabilitate, depanarea este încercare și eroare.
**Cum o rezolvă OmniRoute:**
-**Tabloul de bord pentru jurnalele unificate**— 4 file: jurnalele de solicitare, jurnalele proxy, jurnalele de audit, consolă
-**Console Log Viewer**— Vizualizator în timp real în stil terminal cu niveluri codificate în culori, defilare automată, căutare, filtru
-**SQLite Proxy Logs**— Jurnale persistente care supraviețuiesc repornirilor serverului
-**Translator Playground**— 4 moduri de depanare: Playground (traducere format), Chat Tester (dus-întors), Test Bench (lot), Live Monitor (în timp real)
-**Solicitare telemetrie**— latență p50/p95/p99 + urmărire X-Request-Id
-**Înregistrare bazată pe fișiere cu rotație**— Jurnalele aplicațiilor se rotesc în funcție de dimensiune, zile de păstrare și număr de arhive; artefactele jurnalului de apeluri se rotesc în funcție de zilele de reținere și de numărul de fișiere
-**System Info Report**— `npm run system-info` generează `system-info.txt` cu mediul dumneavoastră complet (versiunea Node, versiunea OmniRoute, OS, instrumente CLI, starea Docker/PM2). Atașați-l când raportați probleme pentru triaj instantaneu.</details>
<detalii>
<summary><b>🏗️ 11. „Implementarea și întreținerea gateway-ului este complexă”</b></summary>
Instalarea, configurarea și menținerea unui proxy AI în diferite medii (local, VPS, Docker, cloud) necesită multă muncă. Probleme precum căile hardcoded, `EACCES` pe directoare, conflictele de porturi și build-urile pe mai multe platforme adaugă fricțiuni.
**Cum o rezolvă OmniRoute:**
-**npm global install**— `npm install -g omniroute && omniroute` — gata
-**Docker Multi-Platform**- AMD64 + ARM64 nativ (Apple Silicon, AWS Graviton, Raspberry Pi)
-**Docker Compose Profiles**— `base` (fără instrumente CLI) și `cli` (cu Claude Code, Codex, OpenClaw)
-**Electron Desktop App**— aplicație nativă pentru Windows/macOS/Linux cu bară de sistem, pornire automată, mod offline
-**Split-Port Mode**— API și tablou de bord pe porturi separate pentru scenarii avansate (reverse proxy, rețea container)
-**Cloud Sync**— Configurați sincronizarea între dispozitive prin Cloudflare Workers
-**Backups DB**— Backup automat, restaurare, export și import al tuturor setărilor, cu `DISABLE_SQLITE_AUTO_BACKUP` pentru copiile de rezervă gestionate extern</details>
<detalii>
<summary><b>🌍 12. „Interfața este doar în limba engleză și echipa mea nu vorbește engleză”</b></summary>
Echipele din țările care nu vorbesc engleza, în special din America Latină, Asia și Europa, se luptă cu interfețele doar în limba engleză. Barierele lingvistice reduc adoptarea și cresc erorile de configurare.
**Cum o rezolvă OmniRoute:**
-**Tabloul de bord i18n — 30 de limbi**— Toate cele peste 500 de taste traduse, inclusiv arabă, bulgară, daneză, germană, spaniolă, finlandeză, franceză, ebraică, hindi, maghiară, indoneziană, italiană, japoneză, coreeană, malay, olandeză, norvegiană, poloneză, portugheză (PT/BR), română, rusă, slovacă, suedeză, thailandeză, ucraineană, filipineză, engleză, chineză, vietnameză,
-**Suport RTL**— Suport de la dreapta la stânga pentru arabă și ebraică
-**ReadME-uri în mai multe limbi**— 30 de traduceri complete de documentație
-**Selector de limbă**— Pictograma glob în antet pentru comutare în timp real</details>
<detalii>
<summary><b>🔄 13. „Am nevoie de mai mult decât de chat — am nevoie de încorporare, imagini, audio”</b></summary>
AI nu este doar finalizarea chatului. Dezvoltatorii trebuie să genereze imagini, să transcrie sunetul, să creeze înglobări pentru RAG, să reclasifice documentele și să modereze conținutul. Fiecare API are un punct final și un format diferit.
**Cum o rezolvă OmniRoute:**
-**Embeddings**— `/v1/embeddings` cu 6 furnizori și peste 9 modele
-**Image Generation**— `/v1/images/generations` cu 10 furnizori și peste 20 de modele (OpenAI, xAI, Together, Fireworks, Nebius, Hyperbolic, NanoBanana, Antigravity, SD WebUI, ComfyUI)
-**Text-to-Video**— `/v1/videos/generations` — ComfyUI (AnimateDiff, SVD) și SD WebUI
-**Text-to-Music**— `/v1/music/generations` — ComfyUI (Stable Audio Open, MusicGen)
-**Transcriere audio**— `/v1/audio/transcriptions` — Whisper + Nvidia NIM, HuggingFace, Qwen3
-**Text-to-Speech**— `/v1/audio/speech` — ElevenLabs, Nvidia NIM, HuggingFace, Coqui, Tortoise, Qwen3,**Inworld**,**Cartesia**,**PlayHT**, + furnizori existenți
-**Moderații**— `/v1/moderations` — Verificări de siguranță a conținutului
-**Reclasificare**— `/v1/rerank` — Reclasificarea relevanței documentului
-**Responses API**— Suport complet `/v1/responses` pentru Codex</details>
<detalii>
<summary><b>🧪 14. „Nu am cum să testez și să compar calitatea între modele”</b></summary>
Dezvoltatorii vor să știe care model este cel mai bun pentru cazul lor de utilizare - cod, traducere, raționament - dar compararea manuală este lentă. Nu există instrumente de evaluare integrate.
**Cum o rezolvă OmniRoute:**
-**Evaluări LLM**— Testarea setului de aur cu 10 cazuri preîncărcate care acoperă salutări, matematică, geografie, generare de cod, conformitate cu JSON, traducere, reducere, refuz de siguranță
-**4 strategii de potrivire**— `exact`, `contains`, `regex`, `custom` (funcția JS)
-**Translator Playground Test Bench**— Testare în loturi cu mai multe intrări și rezultate așteptate, comparație între furnizori
-**Tester de chat**— Tur complet dus-întors cu randare vizuală a răspunsului
-**Live Monitor**— Flux în timp real al tuturor solicitărilor care circulă prin proxy</details>
<detalii>
<summary><b>📈 15. „Trebuie să mă extind fără a pierde performanța”</b></summary>
Pe măsură ce volumul cererilor crește, fără memorarea în cache aceleași întrebări generează costuri duplicate. Fara idempotenta, cererile duplicate procesarea deseurilor. Limitele de tarife pentru fiecare furnizor trebuie respectate.
**Cum o rezolvă OmniRoute:**
-**Cache semantic**— Cache-ul pe două niveluri (semnătură + semantică) reduce costurile și latența
-**Request Idempotency**— fereastră de deduplicare 5s pentru cereri identice
-**Rate Limit Detection**— RPM per furnizor, interval minim și urmărire simultană maximă
-**Limite de rată editabile**— Valori implicite configurabile în Setări → Reziliență cu persistență
-**API Key Validation Cache**— cache pe 3 niveluri pentru performanța producției
-**Tabloul de bord pentru sănătate cu telemetrie**— latență p50/p95/p99, statistici cache, timp de funcționare</details>
<detalii>
<summary><b>🤖 16. „Vreau să controlez comportamentul modelului la nivel global”</b></summary>
Dezvoltatori care doresc toate răspunsurile într-o anumită limbă, cu un anumit ton sau care doresc să limiteze simbolurile de raționament. Configurarea acestui lucru în fiecare instrument/cerere nu este practică.
**Cum o rezolvă OmniRoute:**
-**System Prompt Injection**— Prompt global aplicat tuturor solicitărilor
-**Thinking Budget Validation**— Controlul raționării alocării token-ului per cerere (transmis, automat, personalizat, adaptiv)
-**9 Strategii de rutare**— Strategii globale care determină modul în care sunt distribuite cererile
-**Wildcard Router**— modelele `furnizor/*` direcționează dinamic către orice furnizor
-**Combo Activare/Dezactivare Comutare**— Comută combo direct din tabloul de bord
-**Comutare furnizor**— Activați/dezactivați toate conexiunile pentru un furnizor cu un singur clic
-**Furnizori blocați**— Excludeți anumiți furnizori din lista `/v1/models`</details>
<detalii>
<summary><b>🧰 17. „Am nevoie de instrumente MCP ca capabilități de produs de primă clasă”</b></summary>
Multe gateway-uri AI expun MCP doar ca un detaliu ascuns de implementare. Echipele au nevoie de un nivel de operare vizibil și ușor de gestionat.
**Cum o rezolvă OmniRoute:**
- MCP apare în panoul de bord de navigare și fila de protocol final
- Pagina de management MCP dedicată cu proces, instrumente, domenii și audit
- Pornire rapidă încorporată pentru `omniroute --mcp` și integrarea clientului</details>
<detalii>
<summary><b>🧠 18. „Am nevoie de orchestrare A2A cu sincronizare + căi de activități de flux”</b></summary>
Fluxurile de lucru ale agenților necesită atât răspunsuri directe, cât și execuție în flux de lungă durată, cu control ciclului de viață.
**Cum o rezolvă OmniRoute:**
- A2A JSON-RPC endpoint (`POST /a2a`) cu `message/send` și `message/stream`
- Streaming SSE cu propagare a stării terminale
- API-uri pentru ciclul de viață al sarcinilor pentru `tasks/get` și `tasks/cancel`</details>
<detalii>
<summary><b>🛰️ 19. „Am nevoie de sănătate reală a procesului MCP, nu de stare ghicită”</b></summary>
Echipele operaționale trebuie să știe dacă MCP este de fapt în viață, nu doar dacă un API este accesibil.
**Cum o rezolvă OmniRoute:**
- Fișier runtime heartbeat cu PID, marcaje de timp, transport, număr de instrumente și modul de aplicare
- API de stare MCP care combină bătăile inimii + activitatea recentă
- Carduri de stare a interfeței de utilizare pentru prospețimea procesului/uptime/inima</details>
<detalii>
<summary><b>📋 20. „Am nevoie de o execuție auditabilă a instrumentului MCP”</b></summary>
Când instrumentele modifică configurația sau declanșează acțiuni operaționale, echipele au nevoie de trasabilitate criminalistică.
**Cum o rezolvă OmniRoute:**
- Înregistrare de audit susținută de SQLite pentru apelurile instrumentelor MCP
- Filtrează după instrument, succes/eșec, cheie API și paginare
- Tabelul de audit al tabloului de bord + punctele finale de statistici pentru automatizare</details>
<detalii>
<summary><b>🔐 21. „Am nevoie de permisiuni MCP pentru fiecare integrare”</b></summary>
Clienții diferiți ar trebui să aibă cel mai mic privilegiu de acces la categoriile de instrumente.
**Cum o rezolvă OmniRoute:**
- 10 lunete MCP granulare pentru acces controlat la instrumente
- Aplicarea domeniului de aplicare și vizibilitatea în interfața de utilizare a managementului MCP
- Poziție implicită sigură pentru instrumentele operaționale</details>
<detalii>
<summary><b>⚙️ 22. „Am nevoie de controale operaționale fără redistribuire”</b></summary>
Echipele au nevoie de modificări rapide ale timpului de rulare în timpul incidentelor sau evenimentelor de cost.
**Cum o rezolvă OmniRoute:**
- Comutați activarea comboi direct din tabloul de bord MCP
- Aplicați profiluri de rezistență din pachetele de politici predefinite
- Resetați starea întreruptorului de la același panou de operare</details>
<detalii>
<summary><b>🔄 23. „Am nevoie de vizibilitate și anulare a ciclului de viață a sarcinii A2A live”</b></summary>
Fără vizibilitatea ciclului de viață, incidentele sarcinilor devin greu de triat.
**Cum o rezolvă OmniRoute:**
- Listarea sarcinilor/filtrarea după stare/abilitate cu paginare
- Detaliați metadatele sarcinii, evenimentele și artefactele
- Punct final de anulare a sarcinii și acțiune UI cu confirmare</details>
<detalii>
<summary><b>🌊 24. „Am nevoie de valori de flux active pentru încărcarea A2A”</b></summary>
Fluxurile de lucru în flux necesită o perspectivă operațională privind concurența și conexiunile live.
**Cum o rezolvă OmniRoute:**
- Contoare active de flux integrate în starea A2A
- Marcaj de timp pentru ultima sarcină și numărătoare pentru fiecare stat
- Carduri de bord A2A pentru monitorizarea operațiunilor în timp real</details>
<detalii>
<summary><b>🪪 25. „Am nevoie de descoperire de agenți standard pentru clienți”</b></summary>
Clienții externi și orchestratorii au nevoie de metadate care pot fi citite de mașină pentru integrare.
**Cum o rezolvă OmniRoute:**
- Card de agent expus la `/.well-known/agent.json`
- Capabilități și abilități afișate în UI de management
- API-ul de stare A2A include metadate de descoperire pentru automatizare</details>
<detalii>
<summary><b>🧭 26. „Am nevoie de descoperirea protocolului în UX-ul produsului”</b></summary>
Dacă utilizatorii nu pot descoperi suprafețele de protocol, calitatea adoptării și a suportului scade.
**Cum o rezolvă OmniRoute:**
- Pagina consolidată**Puncte finale**cu file pentru punctele finale Proxy, MCP, A2A și API
- Comută starea serviciului în linie (Online/Offline) pentru MCP și A2A
- Link-uri de la prezentare generală la file dedicate de gestionare</details>
<detalii>
<summary><b>🧪 27. „Am nevoie de validarea protocolului end-to-end cu clienți reali”</b></summary>
Testele simulate nu sunt suficiente pentru a valida compatibilitatea protocolului înainte de lansare.
**Cum o rezolvă OmniRoute:**
- Suita E2E care pornește aplicația și utilizează transportul clientului MCP SDK real
- Testele client A2A pentru descoperirea, trimiterea, transmiterea în flux, obținerea și anularea fluxurilor
- Verificați încrucișați afirmațiile cu auditul MCP și API-urile pentru sarcini A2A</details>
<detalii>
<summary><b>📡 28. „Am nevoie de observabilitate unificată pe toate interfețele”</b></summary>
Împărțirea observabilității în funcție de protocol creează puncte oarbe și MTTR mai lung.
**Cum o rezolvă OmniRoute:**
- Tablouri de bord/jurnale/analitice unificate într-un singur produs
- Sănătate + audit + solicitare de telemetrie în straturi OpenAI, MCP și A2A
- API-uri operaționale pentru stare și automatizare</details>
<detalii>
<summary><b>💼 29. „Am nevoie de un timp de execuție pentru proxy + instrumente + orchestrare agent”</b></summary>
Rularea multor servicii separate crește costurile operaționale și modurile de eșec.
**Cum o rezolvă OmniRoute:**
- Proxy compatibil OpenAI, server MCP și server A2A într-o singură stivă
- Autentificare partajată, rezistență, depozit de date și observabilitate
- Model de politică consistent pe toate suprafețele de interacțiune</details>
<detalii>
<summary><b>🚀 30. „Trebuie să trimit fluxuri de lucru agentice fără extinderea codului lipici”</b></summary>
Echipele își pierd din viteza atunci când realizează mai multe servicii și scripturi ad-hoc.
**Cum o rezolvă OmniRoute:**
- Strategie unificată pentru clienți și agenți
- Interfețe de utilizare a protocolului încorporate și căi de validare a fumului
- Baze pregătite pentru producție (securitate, logare, rezistență, backup)</details>
### Example Playbooks (Integrated Use Cases)
**Playbook A: Maximizați abonamentul plătit + backup ieftin**```txt
Combo: "maximize-claude"
1. cc/claude-opus-4-6
2. glm/glm-4.7
3. if/kimi-k2-thinking
Monthly cost: $20 + small backup spend
Outcome: higher quality, near-zero interruption
Playbook B: teanc de codare cu costuri zero```txt Combo: "free-forever"
- gc/gemini-3-flash
- if/kimi-k2-thinking
- qw/qwen3-coder-plus
Monthly cost: $0 Outcome: stable free coding workflow
**Playbook C: lanț alternativ permanent activ 24/7**```txt
Combo: "always-on"
1. cc/claude-opus-4-6
2. cx/gpt-5.2-codex
3. glm/glm-4.7
4. minimax/MiniMax-M2.1
5. if/kimi-k2-thinking
Outcome: deep fallback depth for deadline-critical workloads
Playbook D: Agentul operează cu MCP + A2A```txt
- Start MCP transport (
omniroute --mcp) for tool-driven operations - Run A2A tasks via
message/sendandmessage/stream - Observe via /dashboard/endpoint (MCP and A2A tabs)
- Toggle services via inline status controls
---
## 🆓 Start Free — Zero Configuration Cost
> Configurați codarea AI în minute la**$0/lună**. Conectați aceste conturi gratuite și utilizați combinația încorporată**Free Stack**.
| Pasul | Acțiune | Furnizori deblocați |
| ---- | -------------------------------------------------- | ----------------------------------------------------------------- |
| 1 | Conectați**Kiro**(AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 —**nelimitat**|
| 2 | Conectați**Qoder**(Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... —**nelimitat**|
| 3 | Conectați**Qwen**(Codul dispozitivului) | qwen3-coder-plus, qwen3-coder-flash... —**nelimitat**|
| 4 | Conectați**Gemini CLI**(Google OAuth) | gemini-3-flash, gemini-2.5-pro —**180K/lună gratuit**|
| 5 | `/dashboard/combos` →**Stivă gratuită ($0)**șablon | Round-robin toți furnizorii gratuiti în mod automat |
**Indicați orice IDE/CLI către:**`http://localhost:20128/v1` · Cheie API: `orice șir` · Terminat.
>**Acoperire suplimentară opțională (de asemenea gratuită):**Cheia API Groq (30 RPM gratuit), NVIDIA NIM (40 RPM fără, peste 70 de modele), Cerebras (1M tok/zi), LongCat API key (50M tokens/zi!), Cloudflare Workers AI (10K Neuroni/zi, 50+ modele).## Pornire rapidă
### 1) Install and run
```bash
npm install -g omniroute
omniroute
**Utilizatori pnpm:**Rulați
pnpm approve-builds -gdupă instalare pentru a activa scripturile de compilare native cerute debetter-sqlite3și@swc/core:pnpm install -g omniroute pnpm approve-builds -g # Selectați toate pachetele → approve omniroute
Tabloul de bord se deschide la http://localhost:20128 și adresa URL de bază a API-ului este http://localhost:20128/v1.
| Comanda | Descriere |
|---|---|
omniroute |
Porniți serverul (PORT=20128, API și tabloul de bord pe același port) |
omniroute --port 3000 |
Setați portul canonic/API la 3000 |
omniroute --mcp |
Porniți serverul MCP (transport stdio) |
omniroute --no-open |
Nu deschideți automat browserul |
omniroute --help |
Arată ajutor |
Opțional modul split-port:```bash PORT=20128 DASHBOARD_PORT=20129 omniroute
API: http://localhost:20128/v1
Dashboard: http://localhost:20129
### Long-Running Streaming Timeouts
Pentru majoritatea implementărilor, aveți nevoie doar de:
| Variabila | Implicit | Scop |
| ------------------------ | ----------------------------- | ------------------------------------------------------------ ------------------------------------------------------------- |
| `REQUEST_TIMEOUT_MS` | `600000` | Linie de referință partajată pentru preluarea în amonte, timeout-uri ascunse Undici, solicitări de amprentă TLS și timeout-uri de solicitare/proxy bridge API |
| `STREAM_IDLE_TIMEOUT_MS` | moștenește `REQUEST_TIMEOUT_MS` | Distanța maximă între bucățile de streaming înainte ca OmniRoute să anuleze fluxul SSE |
Compatibilitatea cu versiunea anterioară este păstrată: `FETCH_TIMEOUT_MS`, `API_BRIDGE_PROXY_TIMEOUT_MS` existente și alte variante de expirare pe strat încă funcționează și suprascriu linia de bază partajată.
Sunt disponibile modificări avansate dacă aveți nevoie de un control mai fin:| Variabila | Implicit | Scop |
| ---------------------------------------- | ------------------------------------------ | ------------------------------------------------------------------- |
| `FETCH_TIMEOUT_MS` | moștenește `REQUEST_TIMEOUT_MS` | Timeout total de solicitare în amonte utilizat de semnalul principal de întrerupere a preluării |
| `FETCH_HEADERS_TIMEOUT_MS` | moștenește `FETCH_TIMEOUT_MS` | Limită de timp Undici pentru primirea antetelor de răspuns în amonte |
| `FETCH_BODY_TIMEOUT_MS` | moștenește `FETCH_TIMEOUT_MS` | Limita de timp Undici între bucățile de corp din amonte (`0` îl dezactivează) |
| `FETCH_CONNECT_TIMEOUT_MS` | `30000` | Undici TCP conectare timeout |
| `FETCH_KEEPALIVE_TIMEOUT_MS` | `4000` | Undici idle keep-alive socket timeout |
| `TLS_CLIENT_TIMEOUT_MS` | moștenește `FETCH_TIMEOUT_MS` | Timeout pentru solicitările de amprentă TLS făcute prin `wreq-js` |
| `API_BRIDGE_PROXY_TIMEOUT_MS` | moștenește `REQUEST_TIMEOUT_MS` sau `30000` | Timeout pentru redirecționarea proxy `/v1` de la portul API la portul tabloului de bord |
| `API_BRIDGE_SERVER_REQUEST_TIMEOUT_MS` | `max(API_BRIDGE_PROXY_TIMEOUT_MS, 300000)` | Solicitarea de intrare expiră pe serverul API bridge |
| `API_BRIDGE_SERVER_HEADERS_TIMEOUT_MS` | `60000` | Timeout antet de intrare pe serverul API bridge |
| `API_BRIDGE_SERVER_KEEPALIVE_TIMEOUT_MS` | `5000` | Timeout de menținere activă pe serverul API bridge |
| `API_BRIDGE_SERVER_SOCKET_TIMEOUT_MS` | `0` | Timeout inactivitate socket pe serverul de punte API (`0` îl dezactivează) |
Dacă rulați OmniRoute în spatele Nginx, Caddy, Cloudflare sau alt proxy invers, asigurați-vă că proxy-ul
timeout-urile sunt, de asemenea, mai mari decât timeout-urile pentru flux/preluare OmniRoute.### 2) Connect providers and create your API key
1. Deschideți Dashboard → `Providers` și conectați cel puțin un furnizor (OAuth sau cheie API).
2. Deschideți Dashboard → `Endpoints` și creați o cheie API.
3. (Opțional) Deschideți Dashboard → `Combos` și setați lanțul de rezervă.### 3) Point your coding tool to OmniRoute
```txt
Base URL: http://localhost:20128/v1
API Key: [copy from Endpoint page]
Model: if/kimi-k2-thinking (or any provider/model prefix)
Funcționează cu Claude Code, Codex CLI, Gemini CLI, Cursor, Cline, OpenClaw, OpenCode și SDK-uri compatibile cu OpenAI.### 4) Enable and validate protocols (v2.0)
MCP (pentru operațiuni cu scule):```bash omniroute --mcp
Apoi conectați-vă clientul MCP la `stdio` și instrumente de testare precum:
- `omniroute_get_health`
- `omniroute_list_combos`
**A2A (pentru fluxuri de lucru de la agent la agent):**```bash
curl http://localhost:20128/.well-known/agent.json
curl -X POST http://localhost:20128/a2a \
-H 'content-type: application/json' \
-d '{"jsonrpc":"2.0","id":"quickstart","method":"message/send","params":{"skill":"quota-management","messages":[{"role":"user","content":"Give me a short quota summary."}]}}'
5) Validate everything end-to-end (recommended)
npm run test:protocols:e2e
Această suită validează fluxurile reale de clienți MCP și A2A împotriva unei aplicații care rulează.### Alternative: run from source
cp .env.example .env
npm install
PORT=20128 DASHBOARD_PORT=20129 NEXT_PUBLIC_BASE_URL=http://localhost:20129 npm run dev
Pentru utilizatorii Void Linux, puteți construi un pachet nativ folosind xbps-src. Salvați acest bloc ca srcpkgs/omniroute/template:```bash
Template file for 'omniroute'
pkgname=omniroute version=3.4.1 revision=1 hostmakedepends="nodejs python3 make" depends="openssl" short_desc="Universal AI gateway with smart routing for multiple LLM providers" maintainer="zenobit zenobit@disroot.org" license="MIT" homepage="https://github.com/diegosouzapw/OmniRoute" distfiles="https://github.com/diegosouzapw/OmniRoute/archive/refs/tags/v${version}.tar.gz" checksum=009400afee90a9f32599d8fe734145cfd84098140b7287990183dde45ae2245b system_accounts="_omniroute" omniroute_homedir="/var/lib/omniroute" export NODE_ENV=production export npm_config_engine_strict=false export npm_config_loglevel=error export npm_config_fund=false export npm_config_audit=false
do_build() { # Determine target CPU arch for node-gyp local _gyp_arch case "$XBPS_TARGET_MACHINE" in aarch64*) _gyp_arch=arm64 ;; armv7*|armv6*) _gyp_arch=arm ;; i686*) _gyp_arch=ia32 ;; *) _gyp_arch=x64 ;; esac
# 1) Install all deps – skip scripts (no network in do_build, native modules
# compiled separately below; better-sqlite3 is serverExternalPackage so
# Next.js does not execute it during next build)
NODE_ENV=development npm ci --ignore-scripts
# 2) Build the Next.js standalone bundle
npm run build
# 3) Copy static assets into standalone
cp -r .next/static .next/standalone/.next/static
[ -d public ] && cp -r public .next/standalone/public || true
# 4) Compile better-sqlite3 native binding for the target architecture.
# Use node-gyp directly so CC/CXX from xbps-src cross-toolchain are used
# without npm altering them.
local _node_gyp=/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js
(cd node_modules/better-sqlite3 && node "$_node_gyp" rebuild --arch="$_gyp_arch")
# 5) Place the compiled binding into the standalone bundle
local _bs3_release=.next/standalone/node_modules/better-sqlite3/build/Release
mkdir -p "$_bs3_release"
cp node_modules/better-sqlite3/build/Release/better_sqlite3.node "$_bs3_release/"
# 6) Remove arch-specific sharp bundles – upstream sets images.unoptimized=true
# so sharp is not used at runtime; x64 .so files would break aarch64 strip
rm -rf .next/standalone/node_modules/@img
# 7) Copy pino runtime deps omitted by Next.js static analysis:
# pino-abstract-transport – required by pino's worker thread
# split2 – dep of pino-abstract-transport
# process-warning – dep of pino itself
for _mod in pino-abstract-transport split2 process-warning; do
cp -r "node_modules/$_mod" .next/standalone/node_modules/
done
}
do_check() { npm run test:unit }
do_install() { vmkdir usr/lib/omniroute/.next
vcopy .next/standalone/. usr/lib/omniroute/.next/standalone
# Prevent removal of empty Next.js app router dirs by the post-install hook
for _d in \
.next/standalone/.next/server/app/dashboard \
.next/standalone/.next/server/app/dashboard/settings \
.next/standalone/.next/server/app/dashboard/providers; do
touch "${DESTDIR}/usr/lib/omniroute/${_d}/.keep"
done
cat > "${WRKDIR}/omniroute" <<'EOF'
#!/bin/sh export PORT="${PORT:-20128}" export DATA_DIR="${DATA_DIR:-${XDG_DATA_HOME:-${HOME}/.local/share}/omniroute}" export LOG_TO_FILE="${LOG_TO_FILE:-false}" mkdir -p "${DATA_DIR}" exec node /usr/lib/omniroute/.next/standalone/server.js "$@" EOF vbin "${WRKDIR}/omniroute" }
post_install() { vlicense LICENSE }
</details>
---
## 🐳 Docker
OmniRoute este disponibil ca imagine publică Docker pe [Docker Hub](https://hub.docker.com/r/diegosouzapw/omniroute).
**Alergare rapidă:**```bash
docker run -d \
--name omniroute \
--restart unless-stopped \
--stop-timeout 40 \
-p 20128:20128 \
-v omniroute-data:/app/data \
diegosouzapw/omniroute:latest
Cu fișierul de mediu:```bash
Copy and edit .env first
cp .env.example .env
docker run -d
--name omniroute
--restart unless-stopped
--stop-timeout 40
--env-file .env
-p 20128:20128
-v omniroute-data:/app/data
diegosouzapw/omniroute:latest
**Utilizarea Docker Compose:**```bash
# Base profile (no CLI tools)
docker compose --profile base up -d
# CLI profile (Claude Code, Codex, OpenClaw built-in)
docker compose --profile cli up -d
Suportul tabloului de bord pentru implementările Docker include acum un singur clicCloudflare Quick Tunnelpe Tabloul de bord → Puncte finale. Prima activare descarcă cloudflare numai când este necesar, pornește un tunel temporar către punctul final /v1 curent și afișează adresa URL generată https://*.trycloudflare.com/v1 direct sub adresa URL publică normală.
Note:
- URL-urile tunelului rapid sunt temporare și se modifică după fiecare repornire.
- Tunelurile rapide nu sunt restaurate automat după repornirea unui OmniRoute sau a containerului. Reactivați-le din tabloul de bord când este necesar.
- Instalarea gestionată acceptă în prezent Linux, macOS și Windows pe
x64/arm64. - Managed Quick Tunnels este implicit la transportul HTTP/2 pentru a evita avertismentele zgomotoase ale bufferului QUIC UDP în mediile de containere constrânse. Setați
CLOUDFLARED_PROTOCOL=quicsauautodacă doriți un alt transport. - Imaginile Docker reunesc rădăcinile CA ale sistemului și le transmit la „cloudflared” gestionat, ceea ce evită eșecurile de încredere TLS atunci când tunelul pornește în interiorul containerului.
- SQLite rulează în modul WAL.
Docker stopar trebui permis să se termine, astfel încât OmniRoute să poată verifica cele mai recente modificări înapoi înstorage.sqlite. - Fișierele Compose incluse au stabilit deja o perioadă de grație de 40 de ani. Dacă rulați imaginea direct, păstrați
--stop-timeout 40(sau similar), astfel încât opririle manuale să nu întrerupă curățarea închiderii. - Setați
CLOUDFLARED_BIN=/absolute/path/to/cloudflareddacă doriți ca OmniRoute să folosească un binar existent în loc să descarce unul.
Utilizarea Docker Compose cu Caddy (HTTPS Auto-TLS):
OmniRoute poate fi expus în siguranță utilizând furnizarea automată SSL de la Caddy. Asigurați-vă că înregistrarea DNS A a domeniului dvs. indică IP-ul serverului dvs.```yaml services: omniroute: image: diegosouzapw/omniroute:latest container_name: omniroute restart: unless-stopped volumes: - omniroute-data:/app/data environment: - PORT=20128 - NEXT_PUBLIC_BASE_URL=https://your-domain.com
caddy: image: caddy:latest container_name: caddy restart: unless-stopped ports: - "80:80" - "443:443" command: caddy reverse-proxy --from https://your-domain.com --to http://omniroute:20128
volumes: omniroute-data:
| Imagine | Etichetă | Dimensiune | Descriere |
| ------------------------ | -------- | ------ | --------------------- |
| `diegosouzapw/omniroute` | `ultimul` | ~250MB | Ultima versiune stabilă |
| `diegosouzapw/omniroute` | `1.0.3` | ~250MB | Versiunea curentă |---
## 🖥️ Desktop App — Offline & Always-On
> 🆕**NOU!**OmniRoute este acum disponibil ca**aplicație desktop nativă**pentru Windows, macOS și Linux.
Rulați OmniRoute ca o aplicație desktop autonomă - fără terminal, fără browser, fără internet necesar pentru modelele locale. Aplicația bazată pe electroni include:
- 🖥️**Fereastra nativă**— Fereastra aplicației dedicată cu integrare în tava de sistem
- 🔄**Auto-Start**— Lansați OmniRoute la autentificarea sistemului
- 🔔**Notificări native**— Primiți alerte pentru epuizarea cotelor sau probleme legate de furnizor
- ⚡**Instalare cu un singur clic**— NSIS (Windows), DMG (macOS), AppImage (Linux)
- 🌐**Mod offline**— Funcționează complet offline cu serverul inclus### Pornire rapidă
```bash
# Development mode
npm run electron:dev
# Build for your platform
npm run electron:build # Current platform
npm run electron:build:win # Windows (.exe)
npm run electron:build:mac # macOS (.dmg) — x64 & arm64
npm run electron:build:linux # Linux (.AppImage)
System Tray
Când este minimizat, OmniRoute se află în bara de sistem cu acțiuni rapide:
- Deschide tabloul de bord
- Schimbați portul serverului
- Închideți aplicația
📖 Documentație completă: electron/README.md---
💰 Pricing at a Glance
| Nivelul | Furnizor | Cost | Resetare cotă | Cel mai bun pentru | |
|---|---|---|---|---|---|
| 💳 ABONARE | Claude Code (Pro) | 20 USD/lună | 5h + săptămânal | Deja abonat | |
| Codex (Plus/Pro) | 20-200 USD/lună | 5h + săptămânal | Utilizatori OpenAI | ||
| Gemeni CLI | GRATIS | 180K/lună + 1K/zi | Toată lumea! | ||
| GitHub Copilot | 10-19 USD/lună | Lunar | utilizatorii GitHub | ||
| 🔑 CHEIA API | NVIDIA NIM | GRATIS(dev forever) | ~40 RPM | 70+ modele deschise | |
| Cerebre | GRATIS(1M tok/zi) | 60K TPM / 30 RPM | Cel mai rapid din lume | ||
| Groq | GRATIS(30 RPM) | 14,4K RPD | Llama/Gemma ultra-rapidă | ||
| DeepSeek V3.2 | 0,27 USD/1,10 USD per 1 milion | Niciuna | Cel mai bun raționament preț/calitate | ||
| xAI Grok-4 Fast | 0,20 USD/0,50 USD pe 1M🆕 | Niciuna | Cea mai rapidă + apelare instrument, ultralow | ||
| xAI Grok-4 (standard) | 0,20 USD/1,50 USD per 1 milion 🆕 | Niciuna | Raționamentul emblematic de la xAI | ||
| Mistral | Probă gratuită + plătit | Tarif limitat | IA europeană | ||
| OpenRouter | Plată-pe-utilizare | Niciuna | 100+ modele agr. | ||
| 💰 IEFTIN | GLM-5 (prin Z.AI) 🆕 | 0,5 USD/1 milion | Zilnic 10:00 | Ieșire 128K, cel mai nou flagship | |
| GLM-4.7 | 0,6 USD/1 milion | Zilnic 10:00 | Backup buget | ||
| MiniMax M2.5 🆕 | Intrare de 0,3 USD/1 milion | rulare de 5 ore | Raționament + sarcini agentice | ||
| MiniMax M2.1 | 0,2 USD/1 milion | rulare de 5 ore | Cea mai ieftină opțiune | ||
| Kimi K2.5 (API Moonshot) 🆕 | Plată-pe-utilizare | Niciuna | Acces direct API Moonshot | ||
| Kimi K2 | 9 USD/lună plat | 10 milioane de jetoane/lună | Cost previzibil | ||
| 🆓 GRATUIT | Qoder | $0 | Nelimitat | 5 modele nelimitat | |
| Qwen | $0 | Nelimitat | 4 modele nelimitat | ||
| Kiro | $0 | Nelimitat | Claude Sonnet/Haiku (AWS Builder) | ||
| LongCat Flash-Lite 🆕 | $0(50 M tok/zi 🔥) | 1 RPS | Cea mai mare cotă gratuită de pe Pământ | ||
| Polenizări AI 🆕 | $0(nu este nevoie de cheie) | 1 solicitat/15s | GPT-5, Claude, DeepSeek, Llama 4 | ||
| Cloudflare Workers AI 🆕 | $0(10K Neuroni/zi) | ~150 resp/zi | 50+ modele, avantaj global | ||
| Scaleway AI 🆕 | $0(1 milion de jetoane în total) | Tarif limitat | UE/GDPR, Qwen3 235B, Llama 70B | > 🆕**Modele noi adăugate (mar 2026):**Familia Grok-4 Fast la 0,20 USD/0,50 USD/M (evaluat la 1143 ms — 30% mai rapid decât Gemini 2.5 Flash), GLM-5 prin Z.AI cu ieșire de 128K, MiniMax M2.5 Raționamentul, actualizarea KimiSeek V3. API direct Moonshot. |
💡 Stivă combinată de 0 USD — Configurare completă gratuită:```
🆓 Ultimate Free Stack 2026 — 11 Providers, $0 Forever
Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed Qwen (qw/) → qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next UNLIMITED Gemini (gemini/) → Gemini 2.5 Flash — 1,500 req/day free API key Cloudflare AI (cf/) → Llama 70B, Gemma 3, Mistral — 10K Neurons/day Scaleway (scw/) → Qwen3 235B, Llama 70B — 1M free tokens (EU) Groq (groq/) → Llama/Gemma ultra-fast — 14.4K req/day NVIDIA NIM (nvidia/) → 70+ open models — 40 RPM forever Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day
**Cost zero. Nu se oprește niciodată codificarea.**Configurați acest lucru ca un combo OmniRoute și toate alternativele au loc automat - fără comutare manuală vreodată.---
---
## 🆓 Free Models — What You Actually Get
> Toate modelele de mai jos sunt**100% gratuite, fără card de credit necesar**. OmniRoute face trasee automate între ele atunci când se epuizează o cotă - combină-le pe toate pentru o combinație de 0 USD de neîntrerupt.### 🔵 CLAUDE MODELS (via Kiro — AWS Builder ID)
| Model | Prefix | Limită | Limită de rată |
| ------------------- | ------ | ------------- | --------------------- |
| `claude-sonet-4.5` | `kr/` |**Nelimitat**| Niciun plafon zilnic raportat |
| `claude-haiku-4.5` | `kr/` |**Nelimitat**| Niciun plafon zilnic raportat |
| `claude-opus-4.6` | `kr/` |**Nelimitat**| Ultimul Opus prin Kiro |### 🟢 QODER MODELS (Free PAT via qodercli)
| Model | Prefix | Limită | Limită de rată |
| ------------------ | ------ | ------------- | --------------- |
| `kimi-k2-thinking` | `dacă/` |**Nelimitat**| Nicio limită raportată |
| `qwen3-coder-plus` | `dacă/` |**Nelimitat**| Nicio limită raportată |
| `deepseek-r1` | `dacă/` |**Nelimitat**| Nicio limită raportată |
| `minimax-m2.1` | `dacă/` |**Nelimitat**| Nicio limită raportată |
| `kimi-k2` | `dacă/` |**Nelimitat**| Nicio limită raportată |
> Metoda de conectare recomandată:**Personal Access Token + `qodercli`**. Browser OAuth este
> experimental și dezactivat implicit, cu excepția cazului în care variabilele de mediu `QODER_OAUTH_*` sunt configurate.### 🟡 QWEN MODELS (Device Code Auth)
| Model | Prefix | Limită | Limită de rată |
| ------------------- | ------ | ------------- | ------------------- |
| `qwen3-coder-plus` | `qw/` |**Nelimitat**| Nicio limită raportată |
| `qwen3-coder-flash` | `qw/` |**Nelimitat**| Nicio limită raportată |
| `qwen3-coder-next` | `qw/` |**Nelimitat**| Nicio limită raportată |
| `model-vizual` | `qw/` |**Nelimitat**| Multimodal (imagini) |### 🟣 GEMINI CLI (Google OAuth)
| Model | Prefix | Limită | Limită de rată |
| ------------------------ | ------ | --------------------------- | ------------- |
| `gemeni-3-flash-preview` | `gc/` |**180K tok/lună**+ 1K/zi | Resetare lunară |
| `gemini-2.5-pro` | `gc/` | 180K/lună (piscina comună) | Calitate înaltă |### ⚫ NVIDIA NIM (Free API Key — build.nvidia.com)
| Nivelul | Limită zilnică | Limită de rată | Note |
| ---------- | ------------ | ----------- | ------------------------------------------------------ |
| Gratuit (Dev) | Fără capac de simbol |**~40 RPM**| 70+ modele; trecerea la limitele ratei pure la mijlocul anului 2025 |
Modele gratuite populare: `moonshotai/kimi-k2.5` (Kimi K2.5), `z-ai/glm4.7` (GLM 4.7), `deepseek-ai/deepseek-v3.2` (DeepSeek V3.2), `nvidia/llama-3.3-deepseek`,/deepseek`,/deepseek-70b### ⚪ CEREBRAS (Free API Key — inference.cerebras.ai)
| Nivelul | Limită zilnică | Limită de rată | Note |
| ---- | ----------------- | ---------------- | ------------------------------------------- |
| Gratuit |**1 milion de jetoane/zi**| 60K TPM / 30 RPM | Cea mai rapidă inferență LLM din lume; resetează zilnic |
Disponibil gratuit: `llama-3.3-70b`, `llama-3.1-8b`, `deepseek-r1-distill-llama-70b`### 🔴 GROQ (Free API Key — console.groq.com)
| Nivelul | Limită zilnică | Limită de rată | Note |
| ---- | ------------- | ---------------- | ----------------------------------------- |
| Gratuit |**14,4K RPD**| 30 RPM per model | Fără card de credit; 429 la limită, netaxat |
Disponibil gratuit: `llama-3.3-70b-versatile`, `gemma2-9b-it`, `mixtral-8x7b`, `whisper-large-v3`### 🔴 LONGCAT AI (Free API Key — longcat.chat) 🆕
| Model | Prefix | Cotă zilnică gratuită | Note |
| ----------------------------- | ------ | ----------------- | ----------------------- |
| `LongCat-Flash-Lite` | `lc/` |**50M de jetoane**💥 | Cea mai mare cotă gratuită vreodată |
| `LongCat-Flash-Chat` | `lc/` | 500K jetoane | Chat cu mai multe ture |
| `LongCat-Flash-Thinking` | `lc/` | 500K jetoane | Raționament / CoT |
| `LongCat-Flash-Thinking-2601` | `lc/` | 500K jetoane | Versiunea ianuarie 2026 |
| `LongCat-Flash-Omni-2603` | `lc/` | 500K jetoane | Multimodal |
> 100% gratuit în timpul beta public. Înscrieți-vă la [longcat.chat](https://longcat.chat) cu e-mail sau telefon. Se resetează zilnic la 00:00 UTC.### 🟢 POLLINATIONS AI (No API Key Required) 🆕
| Model | Prefix | Limită de rată | Furnizor în spatele |
| ---------- | ------ | ---------- | ------------------ |
| `openai` | `pol/` | 1 solicitat/15s | GPT-5 |
| `claude` | `pol/` | 1 solicitat/15s | Claude antropic |
| `gemeni` | `pol/` | 1 solicitat/15s | Google Gemeni |
| `deepseek` | `pol/` | 1 solicitat/15s | DeepSeek V3 |
| `llama` | `pol/` | 1 solicitat/15s | Meta Llama 4 Scout |
| `mistral` | `pol/` | 1 solicitat/15s | Mistral AI |
> ✨**Zero frecare:**Fără înscriere, fără cheie API. Adăugați furnizorul de polenizări cu un câmp cheie gol și funcționează imediat.### 🟠 CLOUDFLARE WORKERS AI (Free API Key — cloudflare.com) 🆕
| Nivelul | Neuroni zilnici | Utilizare echivalentă | Note |
| ---- | ------------- | --------------------------------------- | ----------------------- |
| Gratuit |**10.000**| ~150 LLM resp / 500s audio / 15K încorporare | Avantaj global, peste 50 de modele |
Modele gratuite populare: `@cf/meta/llama-3.3-70b-instruct`, `@cf/google/gemma-3-12b-it`, `@cf/openai/whisper-large-v3-turbo` (audio gratuit!), `@cf/qwen/qwen2.5-coder-15b-instruct`
> Necesită API Token + ID cont de la [dash.cloudflare.com](https://dash.cloudflare.com). Stocați ID-ul contului în setările furnizorului.### 🟣 SCALEWAY AI (1M Free Tokens — scaleway.com) 🆕
| Nivelul | Cotă gratuită | Localizare | Note |
| ---- | ------------- | ------------ | ----------------------------------- |
| Gratuit |**1 milion de jetoane**| 🇫🇷 Paris, UE | Nu este nevoie de card de credit în limite |
Disponibil gratuit: `qwen3-235b-a22b-instruct-2507` (Qwen3 235B!), `llama-3.1-70b-instruct`, `mistral-small-3.2-24b-instruct-2506`, `deepseek-v3-0324`
> Conform UE/GDPR. Obțineți cheia API la [console.scaleway.com](https://console.scaleway.com).
>**💡 Ultima stivă gratuită (11 furnizori, 0 USD pentru totdeauna):**
>
> ```
> Kiro (kr/) → Claude Sonnet/Haiku NELIMITAT
> Qoder (dacă/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 NELIMITAT
> LongCat Lite (lc/) → LongCat-Flash-Lite — 50 de milioane de jetoane/zi 🔥
> Polenizări (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — nu este necesară cheia
> Qwen (qw/) → modele qwen3-coder NELIMITAT
> Gemeni (gemeni/) → Gemeni 2.5 Flash — 1.500 de solicitări/zi gratuit
> Cloudflare AI (cf/) → 50+ modele — 10K neuroni/zi
> Scaleway (scw/) → Qwen3 235B, Llama 70B — 1 milion de jetoane gratuite (UE)
> Groq (groq/) → Llama/Gemma — 14.4K solicitat/zi ultra-rapid
> NVIDIA NIM (nvidia/) → 70+ modele deschise — 40 RPM pentru totdeauna
> Cerebre (cerebre/) → Llama/Qwen cel mai rapid din lume — 1M tok/zi
> ```## 🎙️ Free Transcription Combo
> Transcrie orice audio/video pentru**$0**— Deepgram conduce cu 200 USD gratuit, AssemblyAI 50 USD alternativ, Groq Whisper ca rezervă nelimitată de urgență.
| Furnizor | Credite gratuite | Cel mai bun model | Limită de rată |
| ----------------- | ---------------------- | -------------------------------------------- | ---------------------------- |
| 🟢**Deepgram**|**200 USD gratuit**(înscriere) | `nova-3` — cea mai bună acuratețe, peste 30 de limbi | Fără limită RPM pentru creditele gratuite |
| 🔵**AsamblareAI**|**50 USD gratuit**(înscriere) | `universal-3-pro` — capitole, sentiment, PII | Fără limită RPM pentru creditele gratuite |
| 🔴**Groq**|**Gratuit pentru totdeauna**| `whisper-large-v3` — OpenAI Whisper | 30 RPM (rată limitată) |
**Combinație sugerată în `/dashboard/combos`:**```
Name: free-transcription
Strategy: Priority
Nodes:
[1] deepgram/nova-3 → uses $200 free first
[2] assemblyai/universal-3-pro → fallback when Deepgram credits run out
[3] groq/whisper-large-v3 → free forever, emergency fallback
Apoi, în /dashboard/media → filaTranscriere: încărcați orice fișier audio sau video → selectați punctul final combo → obțineți transcrierea în formatele acceptate.## 💡 Key Features
OmniRoute v2.0 este construit ca o platformă operațională, nu doar un proxy releu.### 🆕 New — ClawRouter-Inspired Improvements (Mar 2026)
| Caracteristica | Ce face | |
|---|---|---|
| ⚡Grok-4 Fast Family | Modele xAI la 0,20 USD/0,50 USD/M — etalon de 1143 ms (30% mai rapid decât Gemini 2.5 Flash) | |
| 🧠GLM-5 prin Z.AI | Context de ieșire de 128.000, 0,5 USD/1 milion — cel mai nou flagship din familia GLM | |
| 🔮MiniMax M2.5 | Raționament + sarcini agentice la 0,30 USD/1 milion – upgrade semnificativ de la M2.1 | |
| 🎯toolCalling Flag per model | „ToolCalling: true/false” per model în registru — AutoCombo omite modelele care nu sunt compatibile cu instrumente | |
| 🌍Detecția intenției multilingve | Cuvinte cheie PT/ZH/ES/AR în scorul AutoCombo — o selecție mai bună a modelului pentru conținut care nu este în limba engleză | |
| 📊Backmark-uri bazate pe benchmark | Latența reală p95 de la solicitările live alimentează scorul combinat — AutoCombo învață din datele reale | |
| 🔁Solicitare deduplicare | Fereastra de deduplicare bazată pe hash de conținut — sigură pentru mai mulți agenți, previne taxele duplicate | |
| 🔌Pluggable RouterStrategy | Interfață extensibilă RouterStrategy — adăugați logica de rutare personalizată ca pluginuri |
### 🚀 Previous v2.0.9+ — Playground, CLI Fingerprints & ACP |
| Caracteristica | Ce face | |
|---|---|---|
| 🎮Teren de joacă model | Pagina tabloului de bord pentru a testa orice model direct — selectoare furnizor/model/punct final, Editor Monaco, streaming, anulare, sincronizare | |
| 🔏Potrivirea amprentei CLI | Ordinea antetului/corpului pentru fiecare furnizor pentru a se potrivi cu semnăturile CLI native - comutați pentru fiecare furnizor în Setări > Securitate.IP-ul dvs. proxy este păstrat | |
| 🤝Suport ACP (Agent Client Protocol) | Descoperire agent CLI (Codex, Claude, Goose, Gemini CLI, OpenClaw + încă 9), generator de proces, punct final /api/acp/agents |
|
| 🤖Tabloul de bord pentru agenții ACP | Depanare › Pagina Agenți — grilă de 14 agenți cu starea instalării, versiunea, formularul de agent personalizat pentru orice instrument CLI. UtilizatoriiOpenCodeprimesc un buton „Descărcați opencode.json” care generează automat o configurație gata de utilizare cu toate modelele disponibile. | |
🔧Rutare apiFormat model personalizat |
Modelele personalizate cu apiFormat: "răspunsuri" sunt acum direcționate corect către traducătorul API-ului Responses |
|
| 🏢Izolarea spațiului de lucru Codex | Spații de lucru Codex multiple per e-mail — OAuth separă corect conexiunile după ID-ul spațiului de lucru | |
| 🔄Actualizare automată Electron | Aplicația desktop verifică actualizările + instalare automată la repornire | ### 🤖 Agent & Protocol Operations (v2.0) |
| Caracteristica | Ce face | |
|---|---|---|
| 🔧Server MCP (25 de instrumente) | Instrumente IDE/agent prin 3 transporturi: stdio, SSE (/api/mcp/sse), HTTP Streamable (/api/mcp/stream). 18 nuclee + 3 memorie + 4 instrumente de calificare |
|
| 🤝Server A2A (JSON-RPC + SSE) | Execuția sarcinilor de la agent la agent cu fluxuri de sincronizare și streaming | |
| 🧭Pagină de puncte finale consolidate | Pagina de gestionare cu file cu file Endpoint Proxy, MCP, A2A și API Endpoints | |
| 🎚️Servicii Activare/Dezactivare Comutări | Comutatoare ON/OFF pentru MCP și A2A cu persistența setărilor (implicit: OFF) | |
| 🛰️MCP Runtime Heartbeat | Starea reală a procesului (pid, uptime, vârsta bătăilor inimii, transport, mod scope) | |
| 📋MCP Audit Trail | Jurnale de audit filtrabile cu succes/eșec și atribuire cheie | |
| 🔐MCP Scope Enforcement | 10 permisiuni granulare pentru acces controlat la instrument | |
| 📡A2A Task Lifecycle Management | Listați/filtrați sarcinile, inspectați evenimentele/artefactele, anulați activitățile care rulează | |
| 📋Descoperire card de agent | /.well-known/agent.json pentru descoperirea automată a clientului |
|
| 🧪Protocol E2E Test Harness | Real MCP SDK + A2A client flux în test:protocoale:e2e |
|
| ⚙️Controale operaționale | Combo de comutare, aplicați profile de rezistență, resetați întrerupătoarele de pe o suprafață de control | ### 🧠 Routing & Intelligence |
| Caracteristica | Ce face | |
|---|---|---|
| 🎯Backback inteligent pe 4 niveluri | Rută automată: Abonament → Cheie API → Ieftin → Gratuit | |
| 📊Urmărirea cotelor în timp real | Numărătoare de jetoane live + numărătoare inversă de resetare per furnizor | |
| 🔄Traducerea formatului | OpenAI ↔ Claude ↔ Gemeni ↔ Răspunsuri cu conversii sigure pentru schema | |
| 👥Asistență pentru mai multe conturi | Conturi multiple per furnizor cu selecție inteligentă | |
| 🔄Reîmprospătare automată a simbolului | Tokenurile OAuth se reîmprospătează automat cu reîncercarea | |
| 🎨Combinații personalizate | 9 strategii de echilibrare + controlul lanțului de rezervă | |
| 🌐Wildcard Router | furnizor/* rutare dinamică |
|
| 🧠Gândirea controalelor bugetare | Limite de raționament de trecere, automate, personalizate și adaptive | |
| 🔀Aliasuri de model | Aliasarea modelului încorporat + personalizat și siguranța migrării | |
| ⚡Degradarea fundalului | Direcționați sarcinile de fundal cu prioritate redusă către modele mai ieftine | |
| 🧪Rutare inteligentă în funcție de sarcini | Se selectează automat modelul după tipul de conținut (codificare/viziune/analiza/rezumat) | |
| 🔄Fluxuri de lucru pentru agenți A2A | Orchestrator determinist FSM pentru execuții de agenți cu mai mulți pași | |
| 🔀Rutare adaptivă | Modificarea dinamică a strategiei bazată pe volumul jetonului și complexitatea promptă | |
| 🎲Diversitatea furnizorilor | Scorul entropiei Shannon echilibrând distribuția traficului combo automat | |
| 💬System Prompt Injection | Controalele globale ale comportamentului aplicate în mod consecvent | |
| 📄Responses API Compatibility | Suport complet /v1/responses pentru Codex și fluxuri de lucru agentice avansate |
### 🎵 Multi-Modal APIs |
| Caracteristica | Ce face | |
|---|---|---|
| 🖼️Generarea imaginii | /v1/images/generations cu cloud și backend-uri locale |
|
| 📐Inglobări | /v1/embeddings pentru conducte de căutare și RAG |
|
| 🎤Transcriere audio | /v1/audio/transcriptions — 7 furnizori (Deepgram Nova 3, AssemblyAI, Groq Whisper, HuggingFace, ElevenLabs, OpenAI, Azure), detectarea automată a limbii, suport MP4/MP3/WAV |
|
| 🔊Text-to-speech | /v1/audio/speech — 10 furnizori (ElevenLabs, OpenAI, Deepgram, Cartesia, PlayHT, HuggingFace, Nvidia NIM, Inworld, Coqui, Tortoise) cu mesaje de eroare corecte |
|
| 🎬Generație video | /v1/videos/generations (fluxuri de lucru ComfyUI + SD WebUI) |
|
| 🎵Generație muzicală | /v1/music/generations (fluxuri de lucru ComfyUI) |
|
| 🛡️Moderații | verificări de siguranță /v1/moderations |
|
| 🔀Reclasificare | /v1/rerank pentru scorul de relevanță |
|
| 🔍Căutare pe web🆕 | /v1/search — 5 furnizori (Serper, Brave, Perplexity, Exa, Tavily), peste 6.500 gratuit/lună, auto-failover, cache |
### 🛡️ Resilience, Security & Governance |
| Caracteristica | Ce face | |
|---|---|---|
| 🔌Întrerupătoare | Deplasare/recuperare per model cu controale de prag | |
| 🎯Modele compatibile cu punctele finale | Modelele personalizate declară puncte finale acceptate + format API | |
| 🛡️Turmă Anti-Tunete | Protecții Mutex + semafor la evenimentele de reîncercare/evaluare | |
| 🧠Semantică + Cache de semnătură | Reducerea costului/latenței cu două straturi de cache | |
| ⚡Solicita Idempotenta | Fereastra de protecție duplicată | |
| 🔒TLS Fingerprint Spoofing | Amprenta digitală TLS asemănătoare unui browser —reduce detectarea botului și semnalizarea contului | |
| 🔏Potrivirea amprentei CLI | Se potrivește cu semnăturile cererilor CLI native —reduce riscul de interzicere, păstrând IP-ul proxy | |
| 🌐Filtrare IP | Controlul listei de permise/liste de blocare pentru implementările expuse | |
| 📊Limite de rată editabile | Limite configurabile globale/la nivel de furnizor cu persistență | |
| 📉Degradare grațioasă | Funcții de rezervă a capacității multistrat care protejează operațiunile de bază ale gateway-ului | |
| 📜Config Audit Trail | Urmărirea modificărilor bazată pe diferențe prevenind deviația operațională prin derulări simple | |
| ⏳Sincronizarea sănătății furnizorului | Monitorizarea proactivă a expirării jetonului care declanșează alerte înainte de eșecurile de autorizare | |
| 🚪Dezactivați automat conturile interzise | Întrerupător de circuit operațional sigilând automat conturile de simbol blocate permanent | |
| 🔑Administrarea cheilor API + Scoping | Emiterea/rotarea cheilor securizate și controale model/furnizor | |
| 👁️Scoped API Key Reveal🆕 | Înscrieți-vă recuperarea cheilor API prin ALLOW_API_KEY_REVEAL |
|
🛡️Protejat /modele |
Autentificare opțională și ascunderea furnizorului pentru catalogul de modele | ### 📊 Observability & Analytics |
| Caracteristica | Ce face | |
|---|---|---|
| 📝Solicitare + Înregistrare proxy | Cerere/răspuns complet și înregistrare proxy | |
| 📉Jurnalele detaliate în flux🆕 | Reconstituie fluxurile de sarcină utilă SSE în mod curat în UI | |
| 📋Tabloul de bord pentru jurnalele unificate | Vizualizări de solicitare, proxy, audit și consolă într-o singură pagină | |
| 🔍Solicitare telemetrie | latența p50/p95/p99 și urmărirea solicitărilor | |
| 🏥Tabloul de bord pentru sănătate | Uptime, stări de întrerupere, blocări, statistici cache | |
| 💰Urmărirea costurilor | Controalele bugetare și vizibilitatea prețurilor pe model | |
| 📈Vizualizări de analiză | Informații despre utilizarea modelului/furnizorului și vizualizări ale tendințelor | |
| 🧪Cadru de evaluare | Testarea setului de aur cu strategii de meci configurabile | |
| 📡Diagnosticare live🆕 | Ocolire semantică a memoriei cache pentru testare combo în direct precisă | ### ☁️ Deployment & Platform |
| Caracteristica | Ce face | |
|---|---|---|
| 🌐Implementează oriunde | Localhost, VPS, Docker, medii cloud | |
| 🚇Cloudflare Tunnel🆕 | Integrare rapidă a tunelului cu un singur clic din tabloul de bord | |
| 🔑Filtrare model cheie API | Răspunsul nativ /v1/models filtrat prin rolurile de context Bearer atribuite | |
| ⚡Smart Cache Bypass | Euristice TTL configurabile și comenzi de recăpătare forțată | |
| 🔄Backup/Restaurare | Export/import și fluxuri de recuperare în caz de dezastru | |
| 🧙Onboarding Wizard | Configurare ghidată pentru prima rulare | |
| 🔧Tabloul de bord CLI Tools | Configurare cu un singur clic pentru instrumentele populare de codare | |
| 🎮Teren de joacă model | Testați orice furnizor/model/punct final din tabloul de bord | |
| 🔏CLI Fingerprint Toggle | Potrivirea amprentelor pentru fiecare furnizor în Setări > Securitate | |
| 🌐i18n (30 de limbi) | Tabloul de bord complet + suport pentru limbajul documentelor cu acoperire RTL | |
| 🧹Șterge toate modelele | Ștergerea listei de modele cu un singur clic în detaliile furnizorului | |
| 👁️Comenzi din bara laterală🆕 | Ascunde componentele și integrările din Setări de aspect | |
| 📋Șabloane de probleme | Șabloane GitHub standardizate pentru erori și caracteristici | |
| 📂Director de date personalizate | DATA_DIR înlocuire pentru locația de stocare |
### Feature Deep Dive |
Smart fallback with practical cost control
Combo: "my-coding-stack"
1. cc/claude-opus-4-6
2. nvidia/llama-3.3-70b
3. glm/glm-4.7
4. if/kimi-k2-thinking
Când cota, rata sau starea de sănătate eșuează, OmniRoute trece automat la următorul candidat fără comutare manuală.#### Protocol management that is visible and operable
- MCP + A2A pot fi descoperite în UI și în documente (nu sunt ascunse)
- API-urile privind starea protocolului expun date operaționale live (
/api/mcp/*,/api/a2a/*) - Tablourile de bord includ acțiuni pentru operațiunile din a doua zi (comutații combo, resetări întrerupătoare, anularea sarcinilor)#### Translator + validation workflow
Zona Translator include:
-Teren de joacă: solicitați verificări de transformare -Tester de chat: cerere/răspuns complet dus-întors -Bancul de testare: mai multe cazuri într-o singură cursă -Live Monitor: vizualizare în timp real a traficului
Plus validarea protocolului cu clienți reali prin npm run test:protocols:e2e.
📖MCP Server README— Referință pentru instrumente, configurații IDE și exemple de clienți
📖A2A Server README— Abilități, metode JSON-RPC, streaming și ciclul de viață al sarcinilor## 🧪 Evaluations (Evals)
OmniRoute include un cadru de evaluare încorporat pentru a testa calitatea răspunsului LLM față de un set de aur. Accesați-l prinAnalitice → Evaluăriîn tabloul de bord.### Built-in Golden Set
„Setul de aur OmniRoute” preîncărcat conține cazuri de testare pentru:
- Salutări, matematică, geografie, generare de cod
- Conformitatea formatului JSON, traducere, generare de reduceri
- Refuz de siguranță (conținut nociv), numărare, logică booleană### Evaluation Strategies
| Strategie | Descriere | Exemplu | |
|---|---|---|---|
exact |
Ieșirea trebuie să se potrivească exact cu | "4" |
|
conține |
Ieșirea trebuie să conțină subșir (indiferență de majuscule și minuscule) | "Paris" |
|
regex |
Ieșirea trebuie să se potrivească cu modelul regex | "1.*2.*3" |
|
personalizat |
Funcția JS personalizată returnează adevărat/fals | (ieșire) => ieșire.lungime > 10 |
--- |
📖 Setup Guide
Protocol Setup (MCP + A2A)
Porniți transportul MCP în modul stdio:```bash omniroute --mcp
Flux de validare recomandat:
1. Conectați clientul MCP prin stdio.
2. Rulați `omniroute_get_health`.
3. Rulați `omniroute_list_combos`.
4. Deschideți `/dashboard/mcp` pentru a confirma bătăile inimii, activitatea și auditul.
API-uri utile pentru automatizare:
- `GET /api/mcp/status`
- `GET /api/mcp/tools`
- `GET /api/mcp/audit`
- `GET /api/mcp/audit/stats`</details>
<detalii>
<summary><b>🤝 Configurare A2A (Agent2Agent)</b></summary>
Descoperiți agentul:```bash
curl http://localhost:20128/.well-known/agent.json
Trimiteți o sarcină:```bash
curl -X POST http://localhost:20128/a2a
-H 'content-type: application/json'
-d '{"jsonrpc":"2.0","id":"setup-a2a","method":"message/send","params":{"skill":"quota-management","messages":[{"role":"user","content":"Summarize quota status."}]}}'
Gestionați ciclul de viață:
- `GET /api/a2a/status`
- `GET /api/a2a/tasks`
- `GET /api/a2a/tasks/:id`
- `POST /api/a2a/tasks/:id/cancel`
Interfața de utilizare operațională:
- `/dashboard/a2a` pentru observabilitatea sarcinii/starea/fluxului și acțiunilor de fum</details>
<detalii>
<summary><b>🧪 Validare end-to-end a protocolului</b></summary>
Validați ambele protocoale cu clienți reali:```bash
npm run test:protocols:e2e
Aceasta verifică:
- Conectare/lista/apelare client MCP SDK
- A2A descoperire/trimitere/stream/obține/anulează
- Verificați încrucișați datele în auditul MCP și API-urile de gestionare a sarcinilor A2A
Dashboard → Providers → Connect Claude Code
→ OAuth login → Auto token refresh
→ 5-hour + weekly quota tracking
Models:
cc/claude-opus-4-6
cc/claude-sonnet-4-5-20250929
cc/claude-haiku-4-5-20251001
**Sfat profesionist:**Folosiți Opus pentru sarcini complexe, Sonnet pentru viteză. OmniRoute urmărește cota per model!### OpenAI Codex (Plus/Pro)
Dashboard → Providers → Connect Codex
→ OAuth login (port 1455)
→ 5-hour + weekly reset
Models:
cx/gpt-5.2-codex
cx/gpt-5.1-codex-max
Codex Account Limit Management (5h + Weekly)
Fiecare cont Codex are acum comutări de politică în „Tabloul de bord -> Furnizori”:
5h(ON/OFF): aplicați politica privind pragul ferestrei de 5 ore.Săptămânal(ON/OFF): impuneți politica săptămânală privind pragul ferestrei.- Comportamentul de prag: când o fereastră activată atinge >=90% utilizare, acel cont este omis.
- Comportament de rotație: OmniRoute direcționează automat către următorul cont Codex eligibil.
- Comportament de resetare: când furnizorul
resetAttrece timpul, contul devine din nou eligibil automat.
Scenarii:
5h ON+Weekly ON: contul este omis atunci când oricare dintre ferestre atinge pragul.5h OFF+Săptămânal ON: numai utilizarea săptămânală poate bloca contul.5h ON+Săptămânal OFF: doar utilizarea de 5 ore poate bloca contul.resetAta trecut: contul reintră automat în rotație (fără reactivare manuală).### Gemini CLI (FREE 180K/month!)
Dashboard → Providers → Connect Gemini CLI
→ Google OAuth
→ 180K completions/month + 1K/day
Models:
gc/gemini-3-flash-preview
gc/gemini-2.5-pro
**Cea mai bună valoare:**Nivel gratuit imens! Utilizați acest lucru înainte de nivelurile plătite.### GitHub Copilot
Dashboard → Providers → Connect GitHub
→ OAuth via GitHub
→ Monthly reset (1st of month)
Models:
gh/gpt-5
gh/claude-4.5-sonnet
gh/gemini-3.1-pro-preview
- Înscrieți-vă: build.nvidia.com
- Obțineți cheia API gratuită (1000 de credite de inferență incluse)
- Tabloul de bord → Adăugați furnizor → NVIDIA NIM:
- Cheie API:
nvapi-your-key
- Cheie API:
Modele:nvidia/llama-3.3-70b-instruct, nvidia/mistral-7b-instruct și peste 50 de altele
**Sfat profesional:**API compatibil cu OpenAI - funcționează perfect cu traducerea formatului OmniRoute!### DeepSeek
- Înscrieți-vă: platform.deepseek.com
- Obțineți cheia API
- Tabloul de bord → Adăugați furnizor → DeepSeek
Modele:deepseek/deepseek-chat, deepseek/deepseek-coder### Groq (Free Tier Available!)
- Înscrieți-vă: console.groq.com
- Obțineți cheia API (nivel gratuit inclus)
- Tabloul de bord → Adăugați furnizor → Groq
Modele:groq/llama-3.3-70b, groq/mixtral-8x7b
**Sfat profesionist:**Inferență ultra-rapidă - cel mai bun pentru codare în timp real!### OpenRouter (100+ Models)
- Înscrieți-vă: openrouter.ai
- Obțineți cheia API
- Tabloul de bord → Adăugare furnizor → OpenRouter
**Modele:**Accesați peste 100 de modele de la toți furnizorii importanți printr-o singură cheie API.
Comportamentul tabloului de bord:modelele OpenRouter sunt gestionate dinModele disponibile. Adăugarea manuală, importarea și sincronizarea automată toate actualizează aceeași listă.
- Înscrieți-vă: Zhipu AI
- Obțineți cheia API din Coding Plan
- Tabloul de bord → Adăugați cheia API:
- Furnizor:
glm - Cheia API:
cheia-voastra
- Furnizor:
Utilizați:glm/glm-4.7
**Sfat profesionist:**Planul de codare oferă cotă de 3 ori la 1/7 cost! Resetați zilnic la 10:00.### MiniMax M2.1 (5h reset, $0.20/1M)
- Înscrieți-vă: MiniMax
- Obțineți cheia API
- Tabloul de bord → Adăugați cheia API
Utilizați:minimax/MiniMax-M2.1
**Sfat pro:**Cea mai ieftină opțiune pentru context lung (1 milion de jetoane)!### Kimi K2 ($9/month flat)
- Abonați-vă: Moonshot AI
- Obțineți cheia API
- Tabloul de bord → Adăugați cheia API
Folosiți:kimi/kimi-latest
**Sfat profesionist:**Fix 9 USD/lună pentru 10 milioane de jetoane = 0,90 USD/cost efectiv de 1 milion!
Dashboard → Connect Qoder
→ Qoder OAuth login
→ Unlimited usage
Models:
if/kimi-k2-thinking
if/qwen3-coder-plus
if/glm-4.7
if/minimax-m2
if/deepseek-r1
Qwen (4 FREE models via Device Code)
Dashboard → Connect Qwen
→ Device code authorization
→ Unlimited usage
Models:
qw/qwen3-coder-plus
qw/qwen3-coder-flash
Kiro (Claude FREE)
Dashboard → Connect Kiro
→ AWS Builder ID or Google/GitHub
→ Unlimited usage
Models:
kr/claude-sonnet-4.5
kr/claude-haiku-4.5
Dashboard → Combos → Create New
Name: premium-coding
Models:
1. cc/claude-opus-4-6 (Subscription primary)
2. glm/glm-4.7 (Cheap backup, $0.6/1M)
3. minimax/MiniMax-M2.1 (Cheapest fallback, $0.20/1M)
Use in CLI: premium-coding
Example 2: Free-Only (Zero Cost)
Name: free-combo
Models:
1. gc/gemini-3-flash-preview (180K free/month)
2. if/kimi-k2-thinking (unlimited)
3. qw/qwen3-coder-plus (unlimited)
Cost: $0 forever!
Settings → Models → Advanced:
OpenAI API Base URL: http://localhost:20128/v1
OpenAI API Key: [from OmniRoute dashboard]
Model: cc/claude-opus-4-6
Claude Code
Utilizați paginaInstrumente CLIdin tabloul de bord pentru configurarea cu un singur clic sau editați manual ~/.claude/settings.json.### Codex CLI
export OPENAI_BASE_URL="http://localhost:20128"
export OPENAI_API_KEY="your-omniroute-api-key"
codex "your prompt"
OpenClaw
Opțiunea 1 — Tabloul de bord (recomandat):``` Dashboard → CLI Tools → OpenClaw → Select Model → Apply
**Opțiunea 2 — Manual:**Editați `~/.openclaw/openclaw.json`:```json
{
"models": {
"providers": {
"omniroute": {
"baseUrl": "http://127.0.0.1:20128/v1",
"apiKey": "sk_omniroute",
"api": "openai-completions"
}
}
}
}
**Notă:**OpenClaw funcționează numai cu OmniRoute local. Utilizați
127.0.0.1în loc delocalhostpentru a evita problemele de rezoluție IPv6.### Cline / Continue / RooCode
Settings → API Configuration:
Provider: OpenAI Compatible
Base URL: http://localhost:20128/v1
API Key: [from OmniRoute dashboard]
Model: if/kimi-k2-thinking
OpenCode
**Pasul 1:**Adăugați OmniRoute ca furnizor personalizat:```bash opencode /connect
Select "Other" → Enter ID: "omniroute" → Enter your OmniRoute API key
**Pasul 2:**Creați/editați `opencode.json` în rădăcina proiectului dvs.:```json
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"omniroute": {
"npm": "@ai-sdk/openai-compatible",
"name": "OmniRoute",
"options": {
"baseURL": "http://localhost:20128/v1"
},
"models": {
"cc/claude-sonnet-4-20250514": { "name": "Claude Sonnet 4" },
"gg/gemini-2.5-pro": { "name": "Gemini 2.5 Pro" },
"if/kimi-k2-thinking": { "name": "Kimi K2 (Free)" }
}
}
}
}
**Pasul 3:**Selectați modelul în OpenCode:```bash /models
Select any OmniRoute model from the list
>**Sfat:**Adăugați orice model disponibil în punctul final OmniRoute `/v1/models` la secțiunea `modele`. Utilizați formatul `furnizor/model-id` din tabloul de bord OmniRoute.</details>
---
## Depanare
<detalii>
<summary><b>Dați clic pentru a extinde ghidul de depanare</b></summary>
**„Modelul de limbă nu a furnizat mesaje”**
- Cota de furnizor epuizată → Verificați instrumentul de urmărire a cotei din tabloul de bord
- Soluție: utilizați alternativă combinată sau treceți la un nivel mai ieftin
**Limitarea ratei**
- Scăderea cotei de abonament → Fallback la GLM/MiniMax
- Adăugați combo: `cc/claude-opus-4-6 → glm/glm-4.7 → if/kimi-k2-thinking`
**Tokenul OAuth a expirat**
- Reîmprospătat automat de OmniRoute
- Dacă problemele persistă: Dashboard → Provider → Reconnect
**Costuri mari**
- Verificați statisticile de utilizare în Tabloul de bord → Costuri
- Comutați modelul principal la GLM/MiniMax
- Utilizați nivelul gratuit (Gemini CLI, Qoder) pentru sarcini necritice
**Tabloul de bord/porturile API sunt greșite**
- `PORT` este portul de bază canonic (și portul API implicit)
- `API_PORT` suprascrie numai ascultatorul API compatibil cu OpenAI
- `DASHBOARD_PORT` suprascrie numai tabloul de bord/ascultătorul Next.js
- Setați `NEXT_PUBLIC_BASE_URL` la tabloul de bord/adresa URL publică (pentru apelurile inverse OAuth)
**Erori de sincronizare în cloud**
- Verificați punctele `BASE_URL` către instanța dvs. care rulează
- Verificați punctele `CLOUD_URL` către punctul final de cloud așteptat
- Păstrați valorile `NEXT_PUBLIC_*` aliniate cu valorile de pe partea serverului
**Prima conectare nu funcționează**
- Verificați `INITIAL_PASSWORD` în `.env`
- Dacă nu este setată, parola de rezervă este `123456`
**Fără jurnal de solicitare**
- Artefactele de solicitare sunt scrise în `DATA_DIR/call_logs/` ca un fișier JSON per solicitare
- Activați capturarea conductei din Dashboard → Jurnale → Solicitați jurnale dacă aveți nevoie de încărcături utile detaliate pe etapă
- Setați `APP_LOG_TO_FILE=true` dacă doriți, de asemenea, jurnalele din consola aplicației în `logs/application/app.log`
- Ajustați `APP_LOG_MAX_FILE_SIZE`, `APP_LOG_RETENTION_DAYS`, `APP_LOG_MAX_FILES` și `CALL_LOG_MAX_ENTRIES` după cum este necesar
**Testul de conectare arată „Invalid” pentru furnizorii compatibili cu OpenAI**
- Mulți furnizori nu expun un punct final `/models`
- OmniRoute v1.0.6+ include validarea alternativă prin finalizarea chatului
- Asigurați-vă că adresa URL de bază include sufixul „/v1”.### 🔐 OAuth on a Remote Server
<a name="oauth-on-a-remote-server"></a>
<a name="oauth-em-servidor-remoto"></a>
>**⚠️ Important pentru utilizatorii care rulează OmniRoute pe un VPS, Docker sau orice server la distanță**#### Why does Antigravity / Gemini CLI OAuth fail on remote servers?
Furnizorii de**Antigravity**și**Gemini CLI**folosesc**Google OAuth 2.0**. Google solicită ca „redirect_uri” din fluxul OAuth să se potrivească exact cu unul dintre URI-urile preînregistrate în Google Cloud Console a aplicației.
Acreditările OAuth incluse în OmniRoute sunt înregistrate**doar pentru `localhost`**. Când accesați OmniRoute pe un server la distanță (de exemplu, `https://omniroute.myserver.com`), Google respinge autentificarea cu:```
Error 400: redirect_uri_mismatch
Solution: Configure your own OAuth credentials
Trebuie să creați unOAuth 2.0 Client IDîn Google Cloud Console cu URI-ul serverului dvs.#### Step-by-step
1. Deschide Google Cloud Console
Accesați: https://console.cloud.google.com/apis/credentials
2. Creați un nou ID de client OAuth 2.0
- Faceți clic pe**"+ Creați acreditări"→"ID client OAuth"**
- Tip aplicație:"Aplicație web"
- Nume: orice vă place (de exemplu, „OmniRoute Remote”)
3. Adăugați URI de redirecționare autorizate
În câmpul**„URI-uri de redirecționare autorizate”**, adăugați:``` https://your-server.com/callback
> Înlocuiți `your-server.com` cu domeniul sau IP-ul serverului dvs. (includeți portul dacă este necesar, de exemplu, `http://45.33.32.156:20128/callback`).
**4. Salvați și copiați acreditările**
După creare, Google va afișa**Client ID**și**Client Secret**.
**5. Setați variabile de mediu**
În `.env` (sau variabilele de mediu Docker):```bash
# For Antigravity:
ANTIGRAVITY_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com
ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-your-secret
# For Gemini CLI:
GEMINI_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com
GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret
GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret
6. Reporniți OmniRoute```bash
npm:
npm run dev
Docker:
docker restart omniroute
**7. Încercați să vă conectați din nou**
Tabloul de bord → Furnizori → Antigravity (sau Gemini CLI) → OAuth
Google va redirecționa acum corect către `https://your-server.com/callback`.---
#### Temporary workaround (without custom credentials)
Dacă nu doriți să vă configurați propriile acreditări chiar acum, puteți utiliza în continuare**fluxul manual de adrese URL**:
1. OmniRoute deschide adresa URL de autorizare Google
2. După autorizare, Google încearcă să redirecționeze către `localhost` (care nu reușește pe serverul de la distanță)
3.**Copiați adresa URL completă**din bara de adrese a browserului dvs. (chiar dacă pagina nu se încarcă)
4. Lipiți acea adresă URL în câmpul afișat în modalul de conexiune OmniRoute
5. Faceți clic pe**"Conectați"**
> Acest lucru funcționează deoarece codul de autorizare din URL este valid, indiferent dacă pagina de redirecționare a fost încărcată.---
<detalii>
<summary><b>🇧🇷 Versão em Português</b></summary>#### Por que o OAuth do Antigravity / Gemini CLI falha em servidores remotos?
Pentru autentificare,**Antigravity**și**Gemini CLI**folosesc**Google OAuth 2.0**. Google exige că a `redirect_uri` utilizat nu fluxo OAuth seja**exatamente**uma das URIs pre-cadastradas no Google Cloud Console do aplicative.
În calitate de acreditare OAuth, nu există OmniRoute care sunt cadastrate**apenas pentru `localhost`**. Când accesați OmniRoute într-un server remot (ex: `https://omniroute.meuservidor.com`), sau Google respinge autentificarea com:```
Error 400: redirect_uri_mismatch
Solução: Configure suas próprias credenciais OAuth
Você necesita criar umOAuth 2.0 Client IDnu Google Cloud Console ca URI pentru server.#### Passo a passo
1. Acces sau Google Cloud Console
Abra: https://console.cloud.google.com/apis/credentials
2. Plângeți nou OAuth 2.0 Client ID
- Faceți clic pe**"+ Create Credentials"→"OAuth client ID"**
- Tip de aplicație:"Aplicație web"
- Nume: scolha qualquer nome (ex:
OmniRoute Remote)
3. Adăugați ca URI de redirecționare autorizate
No campo**„URI-uri de redirecționare autorizate”**, adiție:``` https://seu-servidor.com/callback
> Substitue `seu-servidor.com` pelo domínio sau IP do seu server (inclua a porta se necessário, ex: `http://45.33.32.156:20128/callback`).
**4. Salve și copie ca credenciais**
Após criar, o Google afișează o**Client ID**e o**Client Secret**.
**5. Configurați ca variabile de mediu**
Nu ai `.env` (ai variat de ambient do Docker):```bash
# Para Antigravity:
ANTIGRAVITY_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com
ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret
# Para Gemini CLI:
GEMINI_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com
GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret
GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret
6. Reinicie o OmniRoute```bash
Se usando npm:
npm run dev
Se usando Docker:
docker restart omniroute
**7. Tente connect novamente**
Tabloul de bord → Furnizori → Antigravity (sau Gemini CLI) → OAuth
Agora sau Google redirecționează corect pentru `https://seu-servidor.com/callback` și funcționează autenticação.---
#### Workaround temporário (sem configurar credenciais próprias)
Nu vă rugăm să vă convingeți acum, dar este posibil să utilizați sau să fluxați**manual de URL**:
1. OmniRoute deschide o adresă URL de autorizare Google
2. Após você autorizar, o Google tentará redirecionar for `localhost` (que falha no server remote)
3.**Copiați o adresă URL completă**da bara de accesare a browserului (mesmo que a page não carregue)
4. Cole essa URL nu există câmpuri care nu apar modal de conexão pentru OmniRoute
5. Faceți clic pe**„Conectați-vă”**
> Această soluție de soluționare funcționează deoarece codul de autorizare a URL-ului este valabil independent de redirecționare pentru a încărca sau nu.</details>
---
</details>
## 🛠️ Tech Stack
<detalii>
<summary><b>Dați clic pentru a extinde detaliile stivei de tehnologie</b></summary>
-**Runtime**: Node.js 18–22 LTS (⚠️ Node.js 24+ este**nu este acceptat**— binarele native `better-sqlite3` sunt incompatibile)
-**Limba**: TypeScript 5.9 —**100% TypeScript**în `src/` și `open-sse/` (zero `orice` în modulele de bază de la v2.0)
-**Cadru**: Next.js 16 + React 19 + Tailwind CSS 4
-**Bază de date**: LowDB (JSON) + SQLite (starea domeniului + jurnalele proxy + audit MCP + decizii de rutare)
-**Scheme**: Zod (validare I/O instrument MCP, contracte API)
-**Protocoale**: MCP (stdio/HTTP) + A2A v0.3 (JSON-RPC 2.0 + SSE)
-**Streaming**: evenimente trimise de server (SSE)
-**Auth**: OAuth 2.0 (PKCE) + JWT + Chei API + Autorizare MCP
-**Testare**: Runner de testare Node.js + Vitest (900+ teste inclusiv unitate, integrare, E2E)
-**CI/CD**: GitHub Actions (publicare automată npm + Docker Hub la lansare)
-**Site web**: [omniroute.online](https://omniroute.online)
-**Pachet**: [npmjs.com/package/omniroute](https://www.npmjs.com/package/omniroute)
-**Docker**: [hub.docker.com/r/diegosouzapw/omniroute](https://hub.docker.com/r/diegosouzapw/omniroute)
-**Reziliență**: întrerupător de circuit, backoff exponențial, turmă anti-tunet, falsificare TLS, auto-vindecare combo</details>
---
## Documentație
| Document | Descriere |
| ---------------------------------------------- | --------------------------------------------------- |
| [Ghid de utilizare](docs/USER_GUIDE.md) | Furnizori, combo-uri, integrare CLI, implementare |
| [Referință API](docs/API_REFERENCE.md) | Toate punctele finale cu exemple |
| [Server MCP](open-sse/mcp-server/README.md) | 16 instrumente MCP, configurații IDE, clienți Python/TS/Go |
| [Server A2A](src/lib/a2a/README.md) | Protocol JSON-RPC 2.0, abilități, streaming, gestionarea sarcinilor |
| [Auto-Combo Engine](docs/auto-combo.md) | Scor în 6 factori, pachete de moduri, auto-vindecare |
| [Depanare](docs/TROUBLESHOOTING.md) | Probleme și soluții comune |
| [Arhitectura](docs/ARHITECTURE.md) | Arhitectura sistemului și elementele interne |
| [Contribuind](CONTRIBUTING.md) | Configurare și linii directoare de dezvoltare |
| [OpenAPI Spec](docs/openapi.yaml) | Specificație OpenAPI 3.0 |
| [Politica de securitate](SECURITY.md) | Raportarea vulnerabilităților și practicile de securitate |
| [Implementarea VM](docs/VM_DEPLOYMENT_GUIDE.md) | Ghid complet: VM + nginx + configurare Cloudflare |
| [Galeria de caracteristici](docs/FEATURES.md) | Tur vizual al tabloului de bord cu capturi de ecran |
| [Lista de verificare a lansării](docs/RELEASE_CHECKLIST.md) | Pașii de validare înainte de lansare |---
## 🗺️ Roadmap
OmniRoute are**210+ funcții planificate**în mai multe faze de dezvoltare. Iată domeniile cheie:
| Categoria | Caracteristici planificate | Repere |
| ----------------------------- | ---------------- | ------------------------------------------------------------------------------------ |
| 🧠**Routing & Intelligence**| 25+ | Rutare cu cea mai mică latență, rutare bazată pe etichete, verificare preliminară a cotei, selecție contului P2C |
| 🔒**Securitate și conformitate**| 20+ | Întărirea SSRF, acoperirea acreditărilor, limita de rată per punct final, domeniul de aplicare al cheii de management |
| 📊**Observabilitate**| 15+ | Integrarea OpenTelemetry, monitorizarea cotelor în timp real, urmărirea costurilor per model |
| 🔄**Integrări furnizori**| 20+ | Registrul modelului dinamic, perioadele de încărcare ale furnizorului, Codexul cu mai multe conturi, analiza cotelor Copilot |
| ⚡**Performanță**| 15+ | Strat cache dublu, cache prompt, cache de răspuns, streaming keepalive, API batch |
| 🌐**Ecosistem**| 10+ | WebSocket API, config hot-reload, magazin de configurare distribuit, mod comercial |### 🔜 Coming Soon
- 🔗**Integrare OpenCode**— Suport furnizor nativ pentru IDE-ul de codare OpenCode AI
- 🔗**Integrare TRAE**— Suport deplin pentru cadrul de dezvoltare TRAE AI
- 📦**Batch API**— Procesare asincronă în lot pentru solicitări în bloc
- 🎯**Rutare bazată pe etichete**— Solicitări de rutare bazate pe etichete și metadate personalizate
- 💰**Strategia cu cel mai mic cost**— Selectați automat cel mai ieftin furnizor disponibil
> 📝 Specificații complete disponibile în [`docs/new-features/`](docs/new-features/) (217 specificații detaliate)---
## 👥 Contributors
[](https://github.com/diegosouzapw/OmniRoute/graphs/contributors)
### How to Contribute
1. Bifurcați depozitul
2. Creați-vă ramura caracteristică (`git checkout -b feature/amazing-feature`)
3. Commiteți modificările dvs. (`git commit -m 'Adăugați o funcție uimitoare'`)
4. Apăsați la ramură (`caracteristică git push origin/amazing-feature`)
5. Deschideți o cerere de tragere
Consultați [CONTRIBUTING.md](CONTRIBUTING.md) pentru instrucțiuni detaliate.### Releasing a New Version
```bash
# Create a release — npm publish happens automatically
gh release create v2.0.0 --title "v2.0.0" --generate-notes
📊 Star History
Stargazers over time
🙏 Acknowledgments
Mulțumiri speciale pentru**9routerdedecolua**— proiectul original care a inspirat această furcă. OmniRoute se bazează pe această bază incredibilă, cu funcții suplimentare, API-uri multimodale și o rescrie completă TypeScript.
Mulțumiri speciale pentru**CLIProxyAPI**— implementarea Go inițială care a inspirat acest port JavaScript.---
Licență
Licență MIT - consultați LICENȚĂ pentru detalii.---









