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

# 🚀 OmniRoute — Il Gateway AI Gratuito OmniRoute — Non smettere mai di programmare. Ogni strumento AI → 358 provider — 150+ gratuiti — tramite un unico endpoint. Claude Code, Codex, Cursor, Cline, Copilot & Antigravity in Claude / GPT / Gemini GRATUITI con fallback automatico. La compressione RTK + Caveman stacked risparmia il 15–95% dei token (media ~89%) — mai più limiti. 358 provider AI · 150+ livelli gratuiti · ~1.62B token gratuiti/mese · 19 strategie di routing · $0 per iniziare.
## 💰 ~1,62 mld di token gratuiti al mese
> Combinare manualmente i piani gratuiti è complicato: decine di SDK, decine di limiti di frequenza e nessuna idea di quanto si abbia effettivamente a disposizione. OmniRoute cataloga **489 voci di piani gratuiti distribuite su 35 chiavi di pool ricorrenti** e calcola il totale dei token a partire dai **17 pool con un budget mensile positivo pubblicato, più cinque limiti Groq per modello**, eliminando i duplicati in base al pool condiviso. Le quote disponibili solo dopo una verifica regionale dell'identità (attualmente: ModelScope) vengono mostrate separatamente, +~6M previa verifica regionale dell'identità, e non vengono mai incluse nel totale principale. Il risultato rimane visibile nella dashboard (`/dashboard/free-tiers`). Scheda del budget dei piani gratuiti di OmniRoute: ~1,62 mld di token gratuiti al mese in modo continuativo, fino a ~2,22 mld nel primo mese con i crediti di registrazione, provenienti da 35 chiavi di pool ricorrenti documentate che coprono 489 voci di piani gratuiti catalogate dietro un unico endpoint. Calcolo trasparente con deduplicazione dei pool: ogni pool condiviso viene conteggiato una sola volta, inclusi 17 pool ricorrenti con un budget mensile positivo di token pubblicato più cinque limiti Groq per modello; 13 provider sono contrassegnati come da evitare nel catalogo dei rischi relativi ai termini, così puoi decidere autonomamente. La barra del budget include Mistral 1B, Nara 210M, LLM7 150M, xKiro 150M, Groq 30M (cinque limiti per modello) e pool più piccoli, oltre ai crediti di registrazione del primo mese e ai provider permanentemente gratuiti senza limiti di token, mostrati separatamente affinché non gonfino mai il totale principale. Utilizzo e saldo residuo in tempo reale su /dashboard/free-tiers. > Riepilogo animato della pagina `/dashboard/free-tiers` in tempo reale. Metodologia completa (deduplicazione dei pool, livelli di credito, termini dei provider): **[docs/reference/FREE_TIERS.md](docs/reference/FREE_TIERS.md)**. > > Queste cifre vengono verificate nuovamente ogni due settimane rispetto al catalogo in tempo reale e **possono variare in entrambe le direzioni**: se un provider termina un piano gratuito, il numero diminuisce; se ne arriva uno nuovo, aumenta. Pubblichiamo ciò che il catalogo calcola effettivamente, mai una stima ottimistica arrotondata per eccesso.

⭐ Metti una stella al repository se OMNIROUTE ti ha aiutato a risparmiare denaro e a semplificare il tuo lavoro.

[![Stelle](https://img.shields.io/github/stars/diegosouzapw/OmniRoute?style=social)](https://github.com/diegosouzapw/OmniRoute) diegosouzapw%2FOmniRoute | Trendshift [![Posizione nella cronologia delle stelle](https://api.star-history.com/badge?repo=diegosouzapw/OmniRoute&theme=dark)](https://www.star-history.com/diegosouzapw/omniroute) [![olud.ai](https://olud.ai/badge.php?tool=diegosouzapw-omniroute)](https://olud.ai/project/diegosouzapw-omniroute.html) ### 💬 Unisciti alla community **👋 Segui il maintainer per scoprire per primo nuovi provider, versioni e suggerimenti:** [![Segui Diego su LinkedIn](https://img.shields.io/badge/Follow_Diego_on-LinkedIn-0A66C2?style=for-the-badge&logo=linkedin&logoColor=white)](https://www.linkedin.com/in/diegosouzapw/) [![Segui @diegosouzapw su GitHub](https://img.shields.io/github/followers/diegosouzapw?style=for-the-badge&logo=github&logoColor=white&label=Follow%20on%20GitHub&color=181717)](https://github.com/diegosouzapw) [![Discord](https://img.shields.io/badge/Discord-5865F2?style=for-the-badge&logo=discord&logoColor=white)](https://discord.gg/U47eFqAXCn) [![Telegram](https://img.shields.io/badge/Telegram-26A5E4?style=for-the-badge&logo=telegram&logoColor=white)](https://t.me/omnirouteOficial) [![WhatsApp globale](https://img.shields.io/badge/WhatsApp_Global-25D366?style=for-the-badge&logo=whatsapp&logoColor=white)](https://chat.whatsapp.com/FvuCbrpZmQ6I85n2vW5QIC?s=cl&p=a&mlu=4) [![WhatsApp Brasile](https://img.shields.io/badge/WhatsApp_Brasil-25D366?style=for-the-badge&logo=whatsapp&logoColor=white)](https://chat.whatsapp.com/KWgatljAjmbELQory59Oti?s=cl&p=a&mlu=4) [![Sito web](https://img.shields.io/badge/Website-omniroute.online-blue?logo=google-chrome&logoColor=white)](https://omniroute.online) **Domande, suggerimenti sui provider, roadmap e supporto → [Discord](https://discord.gg/U47eFqAXCn) · [Telegram](https://t.me/omnirouteOficial) · WhatsApp [🌍 Globale](https://chat.whatsapp.com/FvuCbrpZmQ6I85n2vW5QIC?s=cl&p=a&mlu=4) / [🇧🇷 Brasile](https://chat.whatsapp.com/KWgatljAjmbELQory59Oti?s=cl&p=a&mlu=4) / [Portale](https://portal.sthub.com.br/communities/groups/st-hub/channels/Omniroute-World-8kRjmK)**
## 📈 Il Gateway continua a crescere
| | v3.8.49 | **v3.8.50** | `v3.8.51+` | | ------------------------------------ | :-----: | :------------------------: | :-----------: | | 🌐 Provider | 290 | **357** | altri in coda | | 🧠 ID univoci dei modelli di chat | 1185 | **1312** | — | | 🖼️ Bridge di modalità | — | 🆕 visione + audio + video | — | | 📡 Catalogo gratuito Radar | — | 🆕 su adesione | — | | ⚖️ Pianificazione basata sulle quote | — | 🆕 Quota-Share | — | | 📊 Telemetria delle quote | — | 🆕 in tempo reale | — | **→ [Roadmap](ROADMAP.md) — in viaggio verso `v3.9.0 LTS`**

## 🧩 Disponibile [![versione npm](https://img.shields.io/npm/v/omniroute?color=cb3837&logo=npm)](https://www.npmjs.com/package/omniroute) ![Download NPM mensili](https://img.shields.io/npm/dm/omniroute?label=npm/month&color=cb3837&logo=npm) [![Docker Hub](https://img.shields.io/docker/v/diegosouzapw/omniroute?label=Docker%20Hub&logo=docker&color=2496ED)](https://hub.docker.com/r/diegosouzapw/omniroute) [![Licenza: MIT](https://img.shields.io/badge/License-MIT-yellow.svg?style=flat-square)](LICENSE) ![Download Docker](https://img.shields.io/docker/pulls/diegosouzapw/omniroute?label=docker%20pulls&logo=docker&color=2496ED) ![Download Electron](https://img.shields.io/github/downloads/diegosouzapw/omniroute/total?style=flat&label=electron%20downloads&logo=electron&color=47848F)
🚀 Inizia 🚀 Avvio rapido 📦 Installazione 🆓 Nessuna configurazione
💡 Scopri 💥 La promessa 🤔 Perché OmniRoute 🏆 Cosa lo distingue
⚙️ Funzionalità 🎯 Combo 🌐 Provider 🔌 CLI e MCP
🗜️ Compressione 🖥️ Dove funziona 🔒 Privato
👀 Guardalo 🎬 In azione ✨ Novità 🤖 CLI compatibili
💚 Supporto 💚 Supporta / Dona 💬 Community 💖 Sponsor
📦 Progetto 🛠️ Stack tecnologico 📖 Documentazione 👥 Collaboratori
🌐 In 67 lingue

English (en) Português — Brasil (pt-BR) Português (pt) Español (es) Français (fr) Italiano (it) Deutsch (de) Nederlands (nl) Русский (ru) Українська (uk-UA) Polski (pl) Čeština (cs) Slovenčina (sk) Română (ro) Magyar (hu) Български (bg) Dansk (da) Suomi (fi) Norsk (no) Svenska (sv) 中文 — 简体 (zh-CN) 中文 — 繁體 (zh-TW) 日本語 (ja) 한국어 (ko) ไทย (th) Tiếng Việt (vi) Bahasa Indonesia (id) Bahasa Melayu (ms) Filipino (phi) हिन्दी (hi) ગુજરાતી (gu) मराठी (mr) தமிழ் (ta) తెలుగు (te) বাংলা (bn) اردو (ur) فارسی (fa) العربية (ar) עברית (he) Türkçe (tr) Azərbaycan (az) Kiswahili (sw) Ελληνικά (el) Hrvatski (hr) Српски (sr) Lietuvių (lt) Eesti (et) Latviešu (lv) Slovenščina (sl) Malti (mt) Gaeilge (ga) ಕನ್ನಡ (kn) മലയാളം (ml) ଓଡ଼ିଆ (or) ਪੰਜਾਬੀ (pa) नेपाली (ne) සිංහල (si) မြန်မာ (my) ខ្មែរ (km) Hausa (ha) Yorùbá (yo) Igbo (ig) አማርኛ (am) Oʻzbekcha (uz) ქართული (ka) Հայերեն (hy) Bosanski (bs)


## 🆓 Funziona non appena lo installi — nessuna chiave, nessuna configurazione
Funziona non appena lo installi — configurazione zero. Tre passaggi: 1. Installa — npm i -g omniroute, il server si avvia su localhost:20128. 2. Punta il tuo strumento su http://localhost:20128/v1 — qualsiasi strumento compatibile con OpenAI (Claude Code, Cursor, Cline). 3. Risponde — chiama il modello auto per una risposta istantanea, senza chiave API, senza registrazione, senza configurazione. Il provider senza chiave OpenCode Free è pre-cablato nella combinazione auto, quindi una nuova installazione risponde immediatamente. ```bash # Nuova installazione, zero credenziali — `auto` funziona già: curl http://localhost:20128/v1/chat/completions \ -H "Content-Type: application/json" \ -d '{"model":"auto","messages":[{"role":"user","content":"Hello!"}]}' ``` Preferisci un backend gratuito specifico? Chiama direttamente `oc/…` (OpenCode Free). Poi passa ad `auto` e lascia che OmniRoute scelga. 📦 Script di avvio rapido copia-incolla per **Python, Node.js, PHP e cURL** → [`examples/quickstart/`](examples/quickstart/)
# 💥 La Promessa
La Promessa — Un endpoint e 358 provider. Il fallback automatico mantiene il routing mentre è disponibile un altro target sano. Sei pilastri: fallback resiliente su 358 provider · fino al 95% di risparmio di token su carichi di lavoro idonei · $0 per iniziare con oltre 150 livelli gratuiti e 54 provider gratuiti per sempre/senza chiave ricorrenti · 36 integrazioni CLI/agente tramite una configurazione · compatibilità OpenAI, Claude, Gemini e Responses API su /v1 · controlli di produzione inclusi interruttori automatici, stealth TLS, strumenti MCP 110, A2A, memoria, guardrail, valutazioni e oltre 39.000 dichiarazioni di test statici su oltre 5.100 file di test tracciati.

# 🤔 Perché OmniRoute?
Perché OmniRoute — smetti di destreggiarti tra 10 dashboard, chiavi API morte e bollette a sorpresa. Dieci problemi quotidiani vs soluzioni: quota in scadenza non utilizzata → massimizza gli abbonamenti; limiti di velocità a metà codifica → fallback automatico a 4 livelli (Abbonamento → API → Economico → Gratuito); output degli strumenti che bruciano token → compressione RTK + Caveman (15–95%); API costose → routing ottimizzato per i costi; ogni strumento la sua configurazione → un endpoint, una dashboard; AI bloccata → proxy a 3 livelli + stealth TLS; chiavi morte → resilienza a 3 strati (interruttori automatici, cooldown delle chiavi, blocco del modello); team che condivide un abbonamento → pool di chiavi con quote eque; prompt tramite il cloud di qualcuno → local-first con chiavi crittografate AES-256-GCM; nessuna visibilità della spesa → analisi in tempo reale (utilizzo, quota, risparmi, latenza p95).
Flusso di richiesta OmniRoute: il tuo IDE o CLI (Claude Code, Cursor, Cline…) chiama un endpoint locale (http://localhost:20128/v1); lo Smart Router OmniRoute (compressione RTK + Caveman, 19 strategie di routing, interruttori automatici, stealth TLS, MCP, A2A, guardrail) può ricorrere a 4 livelli di provider finché rimane un target sano idoneo — Livello 1 Abbonamento, Livello 2 Chiave API, Livello 3 Economico e Livello 4 Gratuito.

## 🤝 Supportato dai nostri Amici Open Source

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

> **Vuoi unirti come Amico Open Source?** Queste sono le aziende che supportano l'open source e aiutano a mantenere OmniRoute in movimento — e noi dichiariamo pubblicamente dove va ogni token che ci danno. Contattaci: [diegosouza.pw@outlook.com](mailto:diegosouza.pw@outlook.com)
Kimi (Moonshot AI)
Kimi
Moonshot AI

Amico Fondatore Open Source
Grazie a Kimi (Moonshot AI), il nostro Amico Fondatore Open Source, per aver supportato questo progetto! Kimi è il laboratorio di IA dietro le famiglie di modelli open-weight K2 e K3 — Kimi K3 offre una finestra di contesto da 1M di token, visione nativa e codifica a livello di frontiera a una frazione dei prezzi dei modelli chiusi, e funziona immediatamente con Claude Code, Codex e ogni strumento di codifica che OmniRoute serve.

Cosa alimenta il supporto di Kimi: I crediti API di Kimi alimentano la pipeline di rilascio convalidata dall'IA di OmniRoute — la fase di validazione della fusione alimentata da Kimi K3 che esamina ogni pull request prima che venga spedita — oltre allo sviluppo quotidiano delle funzionalità. Il supporto di prima classe per Kimi viene fornito su entrambi i binari: l'API Kimi diretta (kimi-k3) e il piano di codifica Kimi Code (OAuth e chiave API). OmniRoute è anche il primo progetto open-source brasiliano nel programma di supporto di Kimi. Ottieni una chiave API Kimi con il 15% di crediti extra →
Cheaper Inference
Cheaper Inference
cheaperinference.com

Amico Open Source
Grazie a Cheaper Inference, un Amico Open Source di OmniRoute, per aver supportato questo progetto! Cheaper Inference è un gateway classificato per costo che rivende 42 modelli all'avanguardia — Claude, GPT-5.x, Gemini, Kimi K3, GLM, DeepSeek, Grok e MiniMax — dietro un unico endpoint compatibile con OpenAI, instradando ogni richiesta al provider idoneo più economico senza mai addebitare un prezzo superiore a quello di listino del creatore del modello.

Supporto di prima classe in OmniRoute: Chat Completions, l'endpoint nativo /v1/responses, visione, tool calling e 3 modelli di immagine (grok-imagine, nano-banana-pro, nano-banana-2, raggiungibili come cheaperinference/<model>). Ottieni una chiave API →
I link taggati aff=omniroute sono link partner. Finanziano il progetto senza costi aggiuntivi per te.
🎟️ Promo Affiliati — coupon di iscrizione gratuiti da provider che non sponsorizziamo (clicca per espandere) Questa sezione è solo per codici di riferimento/coupon. Le partnership sponsorizzate si trovano in 🤝 Supportato dai nostri Amici Open Source sopra. OmniRoute non ha sponsorizzazioni o partnership con i provider elencati qui — questi sono coupon pubblici che chiunque può usare.
AgentRouter
AgentRouter
agentrouter.org
AgentRouter — iscrizione affiliato · $100 di crediti gratuiti all'iscrizione (server gratuito, aspettati una latenza maggiore — ottimo per test, non per la produzione). Supporto di prima classe in OmniRoute dalla v3.8.50: Chat Completions, il formato wire compatibile con Anthropic e il percorso compatibile con OpenAI. I modelli disponibili includono claude-opus-4-8, claude-opus-5, gpt-5.6-sol e altro. Prendi i tuoi $100 →

⚠️ Link affiliato — OmniRoute non ha sponsorizzazioni o partnership con questo provider.
Conosci un altro provider con un generoso coupon di iscrizione gratuito che beneficia gli utenti di OmniRoute? Apri un'issue e lo aggiungeremo qui.

## 🎯 Combo — La funzionalità di punta
Tutte le 19 strategie di instradamento delle combo animate — una scheda per strategia: priority, fill-first, weighted, round-robin, p2c, least-used, random, strict-random, cost-optimized, headroom, reset-window, reset-aware, context-relay, context-optimized, cache-optimized, lkgp, auto, fusion, pipeline. Consulta la tabella precedente per scoprire cosa fa ciascuna strategia. > Una **combo** è una catena di modelli tra i quali OmniRoute instrada le richieste **automaticamente**. Se la quota si esaurisce, un provider non risponde o i costi aumentano improvvisamente, la combo può passare al successivo modello idoneo e operativo. 🛡️ ### ⚡ Configurazione zero: basta usare `auto` Non serve creare alcuna combo. Imposta il modello su `auto` (o su una sua variante) e OmniRoute crea una combo virtuale a partire dai provider connessi, valutandoli in tempo reale:
ID modelloCosa ottimizza
auto🎯 Impostazione predefinita bilanciata (LKGP — mantiene l'ultimo provider valido)
auto/coding🧑💻 Pesi che privilegiano la qualità per la generazione di codice
auto/fast⚡ Prima la latenza più bassa
auto/cheap💰 Prima il costo per token più basso
auto/offline🔋 Prima la maggiore quota disponibile / il maggior margine rispetto ai limiti di frequenza
auto/smart🔭 Prima la qualità + 10% di esplorazione per scoprire modelli migliori
auto/lkgp📌 Preferenza esplicita per l'ultimo provider noto come valido
auto/chaos🧪 Pesi per l'iniezione di guasti nei test di resilienza (chaos engineering)
## ### 🔀 Oppure creane una personalizzata: 19 strategie di instradamento Tutte le **19** strategie: combinale liberamente per ciascun passaggio della combo:
# Strategia Cosa fa
1 priority Elenco ordinato con priorità al primo obiettivo: esaurisce ciascuno prima di passare al successivo 🥇
2 fill-first Utilizza completamente la quota di ciascun obiettivo prima di passare al successivo
3 weighted Selezione casuale ponderata in base al peso di ciascun obiettivo
4 round-robin Scorre ciclicamente gli obiettivi nell'ordine
5 p2c Bilanciamento casuale del carico con la tecnica delle due scelte
6 least-used Sceglie l'obiettivo con il carico corrente più basso
7 random Selezione casuale uniforme (senza duplicati)
8 strict-random Selezione casuale senza eliminare le ripetizioni 🎲
9 cost-optimized Riduce al minimo il costo in $ per richiesta in base ai prezzi del catalogo in tempo reale 💸
10 headroom Sceglie l'obiettivo con la maggiore quota residua
11 reset-window Preferisce l'obiettivo la cui finestra di quota viene reimpostata per prima
12 reset-aware Ordina in base al tempo di reimpostazione della quota, dando la precedenza alle finestre brevi 📊
13 context-relay Trasferisce il contesto tra gli obiettivi per le conversazioni lunghe 🧠
14 context-optimized Sceglie l'opzione più adatta alle dimensioni correnti del contesto
15 cache-optimized Associa ogni prefisso di prompt riutilizzabile allo stesso account, massimizzando i riscontri nella cache dei prompt 🎯
16 lkgp Ultimo percorso noto come valido: mantiene l'ultimo provider utilizzato con successo, quindi ripiega sulle regole
17 auto Valutazione in tempo reale su 16 fattori per ogni connessione 🤖
18 fusion Invia la richiesta in parallelo a un gruppo di modelli e un giudice sintetizza un'unica risposta 🧬
19 pipeline Concatena i passaggi: l'output di ciascun obiettivo alimenta quello successivo 🔗
Il motore Auto-Combo valuta ogni candidato in base a **16 fattori** (stato operativo, quota, costo, latenza, idoneità all'attività, qualità, disponibilità della sessione…) — consulta [`docs/routing/AUTO-COMBO.md`](docs/routing/AUTO-COMBO.md). ## ### 🧱 Resilienza integrata (3 livelli indipendenti) Resilienza di OmniRoute — 3 livelli indipendenti di autoriparazione, il livello giusto per il guasto giusto. Livello 1: circuit breaker del provider (intero provider): scatta solo in caso di 408/5xx, soglie OAuth 8× / chiave API 12× / locale 2×, ripristino dopo 60s/30s/15s con una sonda in stato HALF-OPEN, recupero differito; mentre è OPEN, la combo reindirizza al provider successivo. Livello 2: cooldown della connessione (una chiave/account): base di 5s per OAuth / 3s per chiave API, backoff esponenziale ×2 con protezione contro il thundering herd, il 429 rispetta Retry-After, un esito positivo cancella tutto lo stato di errore; una chiave in cooldown viene ignorata mentre le chiavi equivalenti continuano a servire le richieste. Livello 3: blocco del modello (un modello): un 429 specifico del modello, un 404 locale o il rifiuto di una modalità bloccano soltanto quel modello, mai l'intera connessione. Gli stati terminali (bannato, scaduto, crediti esauriti) sono destinati all'operatore, non ai cooldown. 📖 [Motore Auto-Combo](docs/routing/AUTO-COMBO.md) · [Guida alla resilienza](docs/architecture/RESILIENCE_GUIDE.md)
## 🏆 Cosa distingue OmniRoute
Cosa distingue OmniRoute — un'istantanea delle funzionalità datata rispetto a 9router, OpenRouter, CLIProxyAPI e LiteLLM attraverso 13 capacità. OmniRoute: 358 provider, oltre 150 livelli gratuiti integrati, 19 strategie di routing, compressione token a 12 motori, server MCP integrato con 110 strumenti, protocollo agente A2A, memoria persistente, guardrail, agenti cloud, stealth di fingerprinting TLS, Desktop/Termux/PWA e 42 lingue UI i18n. OmniRoute è con licenza MIT e auto-ospitabile. Le capacità e i conteggi dei concorrenti possono cambiare; vedere la metodologia collegata. 📊 Metodologia completa e dettagli per funzionalità rispetto a 9router, OpenRouter, CLIProxyAPI e LiteLLM → [`docs/comparison/OMNIROUTE_VS_ALTERNATIVES.md`](docs/comparison/OMNIROUTE_VS_ALTERNATIVES.md)
## 💚 Sostieni OmniRoute OmniRoute è distribuito con licenza MIT e mantenuto apertamente. Se ti fa risparmiare tempo o denaro, ecco come contribuire a mantenerlo indipendente: scegli l'opzione che preferisci. Le sponsorizzazioni non influiscono mai sulla priorità di routing; offrono visibilità, non un posizionamento migliore.
⭐ Aggiungi una stella al repositoryGratis — aiuta davvero la visibilitàAggiungi una stella a OmniRoute
🐙 GitHub SponsorsUna tantum o mensile · nessuna commissione della piattaformagithub.com/sponsors/diegosouzapw
☕ Ko-fiDonazione rapida una tantum, senza registrazione per il donatoreko-fi.com/diegosouzapw
🧋 Buy Me a CoffeePiccolo gesto informalebuymeacoffee.com/diegosouzapw
🖐 LiberapayRicorrente · senza scopo di lucro · open sourceliberapay.com/diegosouzapw
🇧🇷 PIX (Brasile)Istantaneo, senza commissionichiave e codice QR qui sotto
₿ CriptovaluteBTC · ETH · USDT-TRC20 · USDC-Solanaindirizzi qui sotto
**🇧🇷 PIX** — istantaneo, senza commissioni (Brasile) Codice QR PIX di OmniRoute Chiave (casuale): `5d865059-bc44-483a-962d-43ceb80126eb` Pix copia e incolla: ``` 00020101021126580014br.gov.bcb.pix01365d865059-bc44-483a-962d-43ceb80126eb5204000053039865802BR5922OMNIROUTE CONTRIBUICAO6006BRASIL62070503***630475DD ```
₿ Criptovalute — BTC · ETH · USDT-TRC20 · USDC-Solana (fai clic per espandere)
₿ BTCBitcoin (SegWit)bc1qh00smz004sy85wyl28v77tenkt3ckl6eaep7fd
Ξ ETHEthereum (ERC20)0x64Cf6B68A6Ff34288e89172950a2d00102337a84
₮ USDTTron (TRC20)TKAF41JpuQrHbKTnsQa9svJE2T192Hvsc2
$ USDCSolana2emNNZzVVWQc3FQ2wk9M6qXUQmW8AKdjjL174fXR28Tu
⚠️ Invia ogni valuta esclusivamente sulla rete indicata: l'invio sulla rete sbagliata può comportare la perdita dei fondi.
🐛 Hai trovato un bug o vuoi lasciare un feedback? Apri una [Discussione](https://github.com/diegosouzapw/OmniRoute/discussions).

Note per gli sviluppatori: Il progetto può generare un file locale .env durante npm install/postinstall per agevolare gli sviluppatori. Questo file viene intenzionalmente ignorato tramite .gitignore (consulta .gitignore) e non deve mai essere incluso in un commit; se viene incluso accidentalmente, sostituisci tutti i segreti esposti e rimuovi il file dalla cronologia. Consulta docs/DEVELOPER-ENVIRONMENT.md per indicazioni sulla gestione dei file di ambiente locali e dei segreti.

## 📡 OmniRoute Radar Il dato principale del piano gratuito rimane **~1,62 miliardi di token/mese**, in base al catalogo documentato e deduplicato per pool riportato sopra. I crediti temporanei di registrazione dei provider possono incrementare separatamente il primo mese fino a **~2,22 miliardi**. Radar è un overlay opzionale e firmato del catalogo, destinato a chi desidera informazioni più aggiornate sulla disponibilità dei modelli gratuiti tra una release di OmniRoute e l'altra; il catalogo della community e tutte le funzionalità gratuite esistenti rimangono gratuiti. I sostenitori possono ricevere il catalogo in tempo reale e ulteriori opportunità offerte dai provider. Il relativo limite massimo, separato e variabile, è **di circa 3 miliardi di token/mese al massimo**, a seconda della disponibilità dei provider. Tale limite non è garantito: i provider possono modificare quote, requisiti di idoneità, modelli o regioni in qualsiasi momento. Radar è facoltativo ed effettua esclusivamente richieste GET. Il client OmniRoute non carica prompt, traffico, configurazioni dei provider, telemetria sull'utilizzo o lo stato locale relativo alla chiusura degli annunci. Scopri i requisiti di idoneità e il catalogo attuale su **[radar.omniroute.online/planos](https://radar.omniroute.online/planos)**.
## ✨ Novità
> Novità principali recenti da **v3.8.20 → v3.8.50**. Cronologia completa in [`CHANGELOG.md`](CHANGELOG.md). - **🎛️ OmniConductor** — delega A2A in ingresso alla tua flotta di agenti, skill di Conductor nell'Agent Card e un pannello della dashboard con chat vocale push-to-talk Faro. → [Server A2A](docs/frameworks/A2A-SERVER.md) - **🛂 Ammissione adattiva e protezione dal sovraccarico** — le richieste di chat più pesanti vengono accodate anziché generare errori 503, con lease RPM progressivi atomici per connessione. → [Guida alla resilienza](docs/architecture/RESILIENCE_GUIDE.md) - **🗂️ Ordinamento canonico di `/v1/models`** — un blocco contiguo raggruppato per ciascun provider (con le combo fissate all'inizio), stabile in ogni origine del catalogo. → [Riferimento API](docs/reference/API_REFERENCE.md) - **🗜️ Rafforzamento della compressione** — protezione dall'espansione attiva per impostazione predefinita, pacchetti Caveman per DE / FR / JA + cinese (wényán), filtri RTK per Gradle e .NET. → [Compressione](docs/compression/COMPRESSION_ENGINES.md) - **💸 Costi forfettari trasparenti** — i provider con abbonamento / piano di coding mostrano **$0** nelle analisi dei costi; budget, quote e routing continuano a effettuare stime. → [Riferimento API](docs/reference/API_REFERENCE.md) - **⚖️ Routing Quota-Share** — suddivide equamente la quota di un account condiviso tra le chiavi del pool, con conservazione del lavoro, così le porzioni inutilizzate vengono prestate. → [Guida alla resilienza](docs/architecture/RESILIENCE_GUIDE.md) - **🤖 Configurazione di CLI/agenti con un solo comando** — 13 comandi `setup-*` registrati; `omniroute run` avvia 7 CLI (Claude Code, Codex, Aider, Goose, OpenCode, Qwen Code, Gemini CLI); `omniroute configure` supporta 10 destinazioni con un selettore interattivo di provider e modello e preferiti specifici per contesto. → [Integrazioni CLI](docs/guides/CLI-INTEGRATIONS.md) - **🛰️ Modalità remota** — controlla un'istanza OmniRoute remota con token ad ambito limitato (`connect` / `contexts` / `tokens`) e un helper OAuth `antigravity` per le installazioni su VPS. → [Modalità remota](docs/guides/REMOTE-MODE.md) - **🧭 Routing automatico più intelligente** — combo `auto/:`, **Fusion** (pannello di modelli + giudice), routing consapevole dell'attività, override per richiesta di modello / modalità / budget in USD. → [Auto-Combo](docs/routing/AUTO-COMBO.md) - **🗜️ Compressione modulare** — 12 motori componibili + Compression Studios: LLMLingua-2, Ultra a due livelli, omniglyph, controllo di fedeltà per ogni fase, GCF v3.2, editor con riordinamento tramite trascinamento. → [Compressione](docs/compression/COMPRESSION_ENGINES.md) - **🕵️ Decrittazione MITM trasparente (TPROXY)** — intercetta le CLI che ignorano le variabili d'ambiente del proxy, con una CA per SNI e un programma di installazione per l'archivio di attendibilità. → [MITM/TPROXY](docs/security/MITM-TPROXY-DECRYPT.md) - **💸 Telemetria dei costi ovunque** — header di costo/utilizzo `X-OmniRoute-*` su ogni endpoint, header dei risparmi da cache-HIT, quote di spesa in USD per chiave. → [Riferimento API](docs/reference/API_REFERENCE.md) - **🧠 Memoria sotto il tuo controllo** — disattivata per impostazione predefinita, quantizzazione vettoriale int8 opzionale + decadimento tipizzato, `x-omniroute-no-memory` per richiesta. → [Memoria](docs/frameworks/MEMORY.md) - **🛡️ Sicurezza** — protezione dalla prompt injection su ogni route LLM (suite di red teaming), protezione opzionale per il mascheramento delle credenziali (oscura chiavi API/segreti trapelati in entrambe le direzioni), ricerca web gratuita di ultima istanza tramite DuckDuckGo e un gate di accesso OIDC opzionale per la dashboard (l'accesso con password rimane sempre disponibile). → [Protezioni](docs/security/GUARDRAILS.md) - **🖼️ Nuovi endpoint** — `/v1/ocr` (Mistral OCR) e `/v1/audio/translations` (in stile Whisper) completano le funzionalità multimediali. → [Riferimento API](docs/reference/API_REFERENCE.md) - **🎨 Generazione di immagini / video / audio** — un'unica API per i contenuti multimediali: xAI Grok Imagine e video Novita AI, ComfyUI, Magnific, Adobe Firefly, Segmind e provider vocali come ElevenLabs. → [Riferimento API](docs/reference/API_REFERENCE.md) - **🌍 Distribuzione e operazioni** — `basePath` per reverse proxy, rilevamento automatico della lingua del browser, tracciamento dei dispositivi per chiave, attendibilità MITM senza privilegi di root, localizzazione zh-TW. → [Ambiente](docs/reference/ENVIRONMENT.md) - **🤝 Più provider e agenti** — agenti cloud (Codex Cloud, Cursor, Devin, Jules), Grok Build (xAI) con browser + accesso OAuth, scheda dedicata a Ollama, Claude Opus 5 e Sonnet 5, partnership ufficiale con Kimi (Code/Web/Moonshot), Zed, Requesty, SenseNova, Yuanbao, Agnes AI… e un **catalogo di 352 provider** aggiornato. → [Provider](docs/reference/PROVIDER_REFERENCE.md) - **📡 Trasparenza del routing** — ogni risposta include un header `X-OmniRoute-Decision` che indica la strategia/il provider/la latenza utilizzati; una nuova strategia combo `cache-optimized` + il fattore `cacheAffinity` di Auto-Combo instradano le richieste ripetute verso la connessione che conserva il prefisso nella cache; inoltre, un endpoint di sola lettura `/v1/auto-combo/{channel}/candidates` espone il pool di candidati in tempo reale di un canale `auto/*`. → [Auto-Combo](docs/routing/AUTO-COMBO.md) - **⚡ Prestazioni locali e infrastruttura** — Redis locale con un clic, strumenti di distribuzione relay per Cloudflare Workers / Deno Deploy, Bifrost e Mux come servizi incorporati supervisionati. → [Servizi incorporati](docs/frameworks/EMBEDDED-SERVICES.md) - **🧩 Incluso inoltre** — framework per plugin + marketplace, framework di skill Omni/Agent/GitHub, integrazione con i vault di Obsidian (22 strumenti MCP), API Batch e Files compatibili con OpenAI, cache semantica delle risposte, gamification con classifiche, rilevamento degli agenti ACP (15 agenti integrati), esportazione pianificata dei log verso BigQuery, iniezione di errori `auto/chaos`, un bridge per bot Telegram, un gestore di versioni in-app e classifiche LMArena-ELO dei provider gratuiti. → [Documentazione](docs/README.md)
## 🤖 CLI e agenti di coding compatibili > Un'unica configurazione — `http://localhost:20128/v1` — e **qualsiasi** IDE o CLI basato sull'IA funziona con modelli gratuiti e a basso costo.
Claude Code
Claude Code
                           
Codex CLI
Codex CLI
                           
Cline
Cline
                           
Kilo Code
Kilo Code
Zoo Code
Zoo Code
Continue
Continue
                           
Aider
Aider
                           
ForgeCode
ForgeCode
                           
jcode
jcode
                           
DeepSeek TUI
DeepSeek TUI
                           
CodeWhale
CodeWhale
                           
OpenCode
OpenCode
                           
Factory Droid
Factory Droid
                           
GitHub Copilot CLI
Copilot CLI
                           
Cursor CLI
Cursor CLI
                           
Smelt
Smelt
                           
Pi (pi-coding-agent)
Pi
                           
Grok Build (xAI)
Grok Build
                           
Hermes Agent (Nous Research)
Hermes Agent
                           
OpenClaw
OpenClaw
                           
Goose
Goose
                           
Open Interpreter
Open Interpreter
                           
Warp AI
Warp AI
                           
deyin.ai
deyin.ai
                           
+ funziona anche con · Agent Deck · Kiro · Command Code · Antigravity · Windsurf · AMP · qualsiasi strumento compatibile con OpenAI
📖 Configurazione specifica per tutti i 36 strumenti (26 CLI di coding + 10 agenti CLI) → [`docs/reference/CLI-TOOLS.md`](docs/reference/CLI-TOOLS.md) · 🧩 Plugin OpenCode → [`@omniroute/opencode-provider`](https://www.npmjs.com/package/@omniroute/opencode-provider)

**Avvia qualsiasi CLI supportata tramite OmniRoute con un solo comando** — senza scrivere file di configurazione, con credenziali iniettate per ogni processo e una home isolata temporanea per 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" # Oppure scegli interattivamente provider e modello e scrivi la configurazione dello strumento: omniroute configure codex # disponibili anche: claude opencode qwen aider goose gemini cline continue kilo ``` Ogni comando rispetta il contesto remoto attivo (`omniroute connect `), `--dry-run` mostra in anteprima le variabili di ambiente e gli argomenti esatti senza eseguire nulla, mentre `--api-key-env NAME` evita che i segreti finiscano nella cronologia della shell. → [Integrazioni CLI](docs/guides/CLI-INTEGRATIONS.md)
## 🌐 357 provider di IA — 152 contrassegnati come gratuiti nel catalogo
> **357 provider registrati** nelle raccolte canoniche di chat, contenuti multimediali, ricerca, servizi locali, agenti cloud e sistema, inclusi **152 con metadati di rilevamento `hasFree: true`**. Il registro dei modelli di chat comprende **229 provider / 2.554 coppie provider-modello distinte / 1.283 ID modello non elaborati**; il catalogo separato delle quote gratuite contiene **491 righe per modello**, **35 pool ricorrenti** e **54 provider gratuiti per sempre, ricorrenti o senza chiave**. Questi denominatori sono diversi intenzionalmente; le definizioni e i calcoli con deduplicazione dei pool sono disponibili nella [Documentazione di riferimento dei provider](docs/reference/PROVIDER_REFERENCE.md) e nei [Piani gratuiti](docs/reference/FREE_TIERS.md).
### 🏢 Tutti i principali laboratori — tramite un unico endpoint
OpenAI
OpenAI
                           
Anthropic
Anthropic
                           
Gemini
Gemini
                           
xAI Grok
xAI Grok
                           
DeepSeek
DeepSeek
                           
Mistral
Mistral
                           
Qwen
Qwen
                           
Meta Llama
Meta Llama
                           
Groq
Groq
                           
NVIDIA
NVIDIA
                           
MiniMax
MiniMax
                           
Cohere
Cohere
                           
Perplexity
Perplexity
                           
Hugging Face
HuggingFace
                           
Together
Together
                           
Fireworks
Fireworks
                           
Cloudflare
Cloudflare
                           
Baidu
Baidu
                           
…e oltre 330 altri — ogni icona viene caricata in tempo reale dal catalogo dei provider della dashboard. 📖 [Documentazione di riferimento dei provider](docs/reference/PROVIDER_REFERENCE.md)
### 🆓 Gratis per sempre — $0, nessuna carta richiesta
OpenCode Zen
OpenCode Zen
DeepSeek V4, Nemotron 3
Nessun limite di token
Kilo Code
Kilo Code
Router automatico, Tencent Hy3
Gratis per sempre
Requesty
Requesty
GPT-OSS 120B, Nemotron
Gratis per sempre
SiliconFlow
SiliconFlow
DeepSeek V3.2 / R1
Piano gratuito
Z.AI GLM
Z.AI GLM
GLM-4.7 / 4.5-Flash
Gratis per sempre
Baidu ERNIE
Baidu ERNIE
ERNIE 4.0
Gratis per sempre
Qoder AI
Qoder AI
Qwen3-Max, Kimi-K2
GRATIS senza limiti
Pollinations
Pollinations
GPT, Llama, Claude
Nessuna chiave necessaria
Cloudflare AI
Cloudflare AI
Oltre 50 modelli
10.000 neuroni/giorno
NVIDIA NIM
NVIDIA NIM
GLM, MiniMax
~40 RPM gratis
Cerebras
Cerebras
GLM 4.7, GPT-OSS
1 milione di token/giorno
OpenRouter
OpenRouter
Modelli :free
+$10 → RPM più elevati
📖 Catalogo completo leggibile dalle macchine → [`docs/reference/PROVIDER_REFERENCE.md`](docs/reference/PROVIDER_REFERENCE.md)
## 🖥️ Dove funziona OmniRoute — ovunque
> Stessa app, la tua macchina, le tue regole. Da un'installazione globale tramite npm fino al **tuo telefono** tramite Termux.
PiattaformaInstallazioneCaratteristiche principali
📦 npm (globale)npm install -g omnirouteUn solo comando, qualsiasi sistema operativo
🐳 Dockerdocker run … diegosouzapw/omnirouteMulti-arch AMD64 + ARM64
🖥️ Desktop (Electron)npm run electron:buildFinestra nativa + barra delle applicazioni — Windows / macOS / Linux
🎩 Barra dei menu (OmniRouteTray)brew install --cask zoispag/tap/omniroute-traySupervisiona e aggiorna automaticamente il server — macOS
💪 ARMarm64 nativoRaspberry Pi, server ARM, Apple Silicon
📱 Android (Termux)pkg install nodejs && npx -y omnirouteFunziona sul tuo telefono, 24/7, senza root
📲 PWA"Aggiungi alla schermata Home"A schermo intero, offline, installabile dal browser
🧩 Plugin OpenCode@omniroute/opencode-providerIntegrazione nativa con OpenCode
🤖 VS Code Copilot Chatinstalla l'estensione OmniCopilotOgni modello OmniRoute nel selettore nativo di Copilot Chat — versione stabile e Insiders
🛠️ Dal codice sorgentenpm install && npm run devModificalo, contribuisci
📖 [Guida a Docker](docs/guides/DOCKER_GUIDE.md) · [Desktop](electron/README.md) · [Icona nella barra dei menu](https://github.com/zoispag/omniroute-tray) · [Termux](docs/guides/TERMUX_GUIDE.md) · [PWA](docs/guides/PWA_GUIDE.md) · [OpenCode](docs/frameworks/OPENCODE.md)
### 🧩 Novità: OmniRoute all'interno del Copilot Chat nativo di VS Code
> Nessuna nuova barra laterale, nessuna nuova interfaccia di chat: ogni modello fornito da OmniRoute appare direttamente nel > **selettore di modelli di Copilot Chat che già utilizzi**. A partire da VS Code 1.122, i modelli dei provider funzionano > senza accesso a GitHub o abbonamento a Copilot: modalità agente, chiamate agli strumenti e visione, > gratuitamente. Installa l'estensione **[OmniCopilot](https://github.com/diegosouzapw/OmniCopilot)**, collegala al tuo server OmniRoute (il valore predefinito è `localhost:20128`), quindi apri Copilot Chat → selettore di modelli → **Gestisci modelli…** → **OmniRoute**.
StoreLinkCompatibile con
🧩 VS Code MarketplaceInstalla →VS Code — versione stabile e Insiders
🔓 Open VSX RegistryInstalla →Cursor, Windsurf, VSCodium, Theia, code-server, Gitpod, Antigravity, Kiro…
Dall'editor: apri la vista **Estensioni**, cerca **"OmniRoute"**, fai clic su **Installa** — funziona allo stesso modo in entrambi gli store. Il codice sorgente, le segnalazioni e la guida alla pubblicazione si trovano in [diegosouzapw/OmniCopilot](https://github.com/diegosouzapw/OmniCopilot). 📖 [Guida a VS Code Copilot Chat](docs/guides/VSCODE-COPILOT.md) — configurazione, cosa mostra il selettore, dashboard in una scheda, risoluzione dei problemi
### 🎩 Novità: OmniRouteTray — il tuo gateway, nella barra dei menu
> `omniroute serve` dà il meglio di sé quando è sempre attivo. **[OmniRouteTray](https://github.com/zoispag/omniroute-tray)** > lo trasforma in un'app per la barra dei menu di macOS che puoi configurare e dimenticare: avvia il server, lo mantiene attivo > dopo i riavvii, lo aggiorna direttamente e rende accessibile il tuo budget di token in tempo reale con un clic — **senza > lasciare aperta una finestra del terminale e senza dover gestire `npm install -g omniroute`.** Realizzato con [Tauri v2](https://v2.tauri.app/) (un core Rust dalle dimensioni trascurabili), include il proprio runtime Node 24 firmato e gestisce un'installazione di OmniRoute appartenente all'app, quindi non entra mai in conflitto con le tue installazioni globali di `node`/`bun`. **Condivide la configurazione e il database esistenti in `~/.omniroute/`** — quindi è lo stesso OmniRoute che già utilizzi, semplicemente con un cappello. 🎩
Cosa faCome
🟢 Supervisiona il serverAvvia omniroute serve e adotta un'istanza già in esecuzione invece di duplicarla
📊 Utilizzo in tempo reale a colpo d'occhioBarre delle quote dei provider, limiti di sessione/settimanali di Claude con conto alla rovescia per il ripristino, ripartizione dei costi degli ultimi 30 giorni
🔄 Aggiornamento automatico sul postoInstallazione in più fasi, sostituzione atomica, rollback in caso di errore — sempre aggiornato alla versione più recente
🚀 Avvio all'accessoAvvio facoltativo all'accesso; solo nella barra dei menu, senza icona nel dock
🩺 Diagnostica e logDiagnostica con un clic e accesso ai log del server
```sh brew install --cask zoispag/tap/omniroute-tray ``` Preferisci un download? Scarica l'ultimo .dmgReleases. Il codice sorgente, le segnalazioni e la documentazione di compilazione si trovano su zoispag/omniroute-tray.
💛 Un progetto della community a cura di @zoispag — non è una versione ufficiale di OmniRoute.

## 🔒 Privato e local-first
Privato e local-first — il gateway e il piano di controllo di OmniRoute vengono eseguiti sulla tua macchina. I prompt vengono inviati al provider upstream selezionato per ciascuna richiesta; OmniRoute non aggiunge alcun passaggio ospitato per l'elaborazione dei prompt e la telemetria è disabilitata per impostazione predefinita. Le credenziali sono crittografate a riposo con AES-256-GCM; i controlli includono limitazione dell'ambito delle chiavi API, filtraggio IP, limiti di frequenza, protezioni contro la prompt injection, rimozione degli header upstream, oscuramento opzionale dei dati PII, errori anonimizzati e un audit trail SQLite locale. OmniRoute è distribuito con licenza MIT e può essere ospitato autonomamente. 📖 [Autorizzazione](docs/architecture/AUTHZ_GUIDE.md) · [Misure di sicurezza](docs/security/GUARDRAILS.md) · [Conformità](docs/security/COMPLIANCE.md)
## 🔌 CLI completa + A2A e MCP
> Oltre al server, OmniRoute è una **console completa da riga di comando** con **oltre 80 comandi**, più protocolli aperti per agenti che consentono a un agente AI di controllarlo **autonomamente**. ### ⌨️ Una vera CLI (non solo `start`) ```bash omniroute # avvia il gateway + la dashboard (porta 20128) omniroute chat # client di chat TUI interattivo (comandi slash: /model /combo /skill /memory) omniroute setup # procedura guidata per il primo avvio omniroute doctor # diagnostica provider, porte e dipendenze native ``` ### 🛰️ Modalità remota — esegui la CLI qui e OmniRoute su un VPS OmniRoute è su un server? Controllalo dal tuo laptop con la **stessa CLI**. Accedi una volta con un token di accesso con ambito limitato; da quel momento ogni comando sarà indirizzato al server remoto. ```bash omniroute connect 192.168.0.15 # password → token con ambito limitato, salvato come contesto omniroute models # ← viene eseguito sul server REMOTO omniroute configure codex # ← seleziona un modello remoto e scrive un profilo Codex locale omniroute tokens create --name ci --scope read # genera token con ambito più ristretto per altre macchine omniroute contexts use default # ← torna al server locale ``` Gli ambiti dei token sono `read` / `write` / `admin`; le route che avviano processi rimangono accessibili solo tramite loopback. 📖 [Modalità remota](docs/guides/REMOTE-MODE.md)
Demo animata nel terminale della CLI di OmniRoute — omniroute providers list, omniroute combo list e omniroute health — che scorre gli 86 comandi di primo livello disponibili: providers · oauth · keys · combo · nodes · models · cache · compression · cost · usage · quota · health · resilience · telemetry · logs · audit · mcp · a2a · cloud · memory · skills · eval · tunnel · backup · sync · webhooks · policy · pricing · translator · simulate …
### 🤝 Collega un agente — e controllerà direttamente OmniRoute Esponi OmniRoute tramite **MCP**, **A2A**, una **REST API**, **webhook** o una **CLI remota**: qualsiasi agente compatibile (o il tuo codice) otterrà il controllo dell'intero gateway, inclusi routing, provider, combo, cache, compressione e memoria, in modo autonomo. Gli endpoint HTTP seguenti sono disponibili all'indirizzo `http://localhost:20128`.
InterfacciaEndpoint / comandoUtilizzalo per
🧰 MCP (stdio)omniroute --mcpIntegrarlo con Claude Desktop, Cursor o qualsiasi client MCP
🌊 MCP (HTTP)/api/mcp/streamMCP remoto — 110 strumenti, 33 ambiti (applicazione opzionale), audit trail completo
📡 MCP (SSE)/api/mcp/sseTrasporto MCP in streaming
🤝 A2A/.well-known/agent.jsonDa agente ad agente, JSON-RPC 2.0 + SSE, 6 skill
🌐 REST API/v1/*Compatibile con OpenAI — chat, embedding, immagini, audio, OCR
🔔 Webhook/api/webhooksInviare eventi relativi a richieste / quote a Slack, Discord, Telegram o qualsiasi URL
🛰️ CLI remotaomniroute connect Controllare un'istanza remota con token di accesso con ambito limitato
```bash # Fornisci a Claude Code il set completo di strumenti OmniRoute tramite 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) · [Protocolli per agenti](docs/frameworks/AGENT_PROTOCOLS_GUIDE.md)
## 🗜️ Risparmia il 15–95% dei token — automaticamente
### 📖 Come funziona — pipeline, architettura e calcolo del risparmio Pipeline di compressione OmniRoute: una richiesta client illustrativa da 10.000 token passa attraverso 12 motori componibili — Session-Dedup, CCR, Lite, RTK, Responses Tool Output, Headroom, Relevance, Caveman, Aggressive, LLMLingua-2, Ultra e OmniGlyph — e può raggiungere il provider con circa 1.080 token nell'esempio documentato con motori combinati. I contenuti strutturati sono protetti da meccanismi di conservazione e controlli di fedeltà a ogni passaggio; le modalità esplicitamente con perdita o sperimentali possono trasformare i contenuti idonei. La combinazione predefinita esegue `RTK → Caveman`. Quando entrambi intervengono sullo stesso payload di strumenti/contesto, i risparmi si moltiplicano: ```txt combined = 1 − (1 − RTK) × (1 − Caveman_input) average = 1 − (1 − 0.80) × (1 − 0.46) = 89.2% range = 78.4 – 94.6% ``` I blocchi di codice, gli URL, il JSON e i dati strutturati sono **sempre protetti** dal motore di conservazione. > **Perché usare molti token quando ne bastano pochi?** Ogni richiesta passa attraverso la pipeline di compressione di OmniRoute **in modo trasparente** — senza modifiche al client. Ora è una **pila di 12 motori componibili** che vengono eseguiti in ordine e possono essere combinati per ciascuna configurazione di routing — basandosi sulle idee di [RTK](https://github.com/rtk-ai/rtk), [Caveman](https://github.com/JuliusBrussee/caveman) (⭐ 90K+), [LLMLingua-2](https://github.com/microsoft/LLMLingua) e [Troglodita](https://github.com/leninejunior/troglodita) (PT-BR). ### 🧱 La pila di 12 motori I motori vengono eseguiti nell'ordine della pipeline; ciascuno può essere attivato o disattivato e configurato in modo indipendente per ogni combinazione:
#MotoreCosa fa
1Session-DedupElimina i contenuti ripetuti tra i turni (indirizzati per contenuto, tra turni diversi)
2CCRArchivia blocchi di grandi dimensioni dietro marcatori di recupero, richiamandoli su richiesta
3LiteRiduzione degli spazi vuoti e degli URL delle immagini (base a bassa latenza)
4RTKFiltraggio intelligente, deduplicazione e troncamento dei risultati degli strumenti (con riconoscimento dei comandi)
5Responses Tool OutputCompressione JSON prioritariamente senza perdita e compressione diagnostica limitata per gli output di shell/patch/ricerca/build (Responses API)
6HeadroomCompattazione tabellare senza perdita degli array JSON (~30%) tramite un codec GCF integrato
7RelevanceValutazione estrattiva delle frasi rispetto all'ultima richiesta dell'utente
8CavemanCompressione della prosa basata su regole (~65–75% sull'output)
9AggressiveRiepilogo e invecchiamento progressivo dei turni precedenti
10LLMLingua-2Potatura semantica tramite ML con MobileBERT ONNX — sicura per il codice, asincrona
11UltraPotatura euristica dei token con un livello opzionale basato su un modello di piccole dimensioni (SLM)
12OmniGlyphCodifica sperimentale del contesto come immagine per Claude Fable 5 misurato sulla connessione Anthropic diretta; i transformer GPT 5.6 restano bloccati in sicurezza in attesa delle ricevute del provider. Quattro profili di compressione (aggressivo predefinito, bilanciato, sicuro per il codice, passthrough) (il più aggressivo; attivazione esplicita)
I blocchi di codice, gli URL e i dati strutturati vengono **sempre conservati** byte per byte. Le **preimpostazioni con un clic** combinano i motori:
ModalitàRisparmioIdeale per
🪶 Lite~15%Impostazione predefinita sicura e sempre attiva
🪨 Standard (Caveman)~30%Programmazione quotidiana
⚡ Aggressive~50%Sessioni lunghe con un uso intensivo degli strumenti
🔥 Ultra~75%Massimo risparmio
🧰 RTK60–90%Output di shell/test/build/git
🔗 Combinata (RTK → Caveman)78–95%Prompt misti e log degli strumenti
**Esempio reale — modalità Standard:** > **Prima (69 token):** _"Il motivo per cui il tuo componente React viene renderizzato nuovamente è probabilmente che stai creando un nuovo riferimento a un oggetto a ogni ciclo di rendering. Quando passi un oggetto inline come prop, il confronto superficiale di React lo considera ogni volta un oggetto diverso, attivando così un nuovo rendering. Consiglierei di utilizzare useMemo per memorizzare l'oggetto."_ > > **Dopo (19 token):** _"Nuovo riferimento all'oggetto a ogni rendering. Oggetto inline come prop = nuovo riferimento = nuovo rendering. Usa useMemo."_ > > **Stessa risposta. 72% di token in meno. Nessuna perdita di accuratezza.** ✅ **Esempio PT-BR — modalità [Troglodita](https://github.com/leninejunior/troglodita):** > **Prima (42 token):** _"Il problema è che il componente viene renderizzato nuovamente perché a ogni ciclo di rendering viene creato un nuovo riferimento all'oggetto. Consiglierei di usare useMemo."_ > > **Dopo (12 token):** _"Re-render: nuovo ref a ogni ciclo (oggetto inline ricreato). Usare `useMemo`."_ > > **Stessa risposta. ~70% di token in meno. Precisione tecnica intatta.** ✅
### 🎚️ Oltre i motori — stili di output, regolazione adattiva e controllo per richiesta I 12 motori precedenti riducono ciò che entra **in input**. Altri tre livelli determinano **come**, **quando** e cosa viene prodotto **in output**: - **🪄 Stili di output** _(controllo dell'asse di output)_ — inseriscono istruzioni deterministiche e compatibili con la cache per modellare le risposte; sono combinabili e ciascuno dispone dell'intensità `lite` / `full` / `ultra`. Per aggiungere uno stile basta una riga nel registro: - **Prosa concisa** — elimina riempitivi / articoli / esitazioni; mantiene intatta la sostanza tecnica. - **Meno codice** — YAGNI da "sviluppatore senior pigro": la modifica funzionante più piccola possibile, senza strutture non richieste. - **Ponytail (sviluppatore senior pigro)** — percorre la scala YAGNI, risolve la causa principale, produce il diff funzionante più piccolo possibile. - **Ho l'ADHD (prima l'azione)** — inizia dall'azione successiva, numera i passaggi, propone un solo passo successivo concreto, senza preamboli. - **CJK conciso (文言)** — stile cinese classico ultra-conciso (limitato alla locale `zh`). - **🎯 Budget adattivo del contesto** _(la regolazione)_ — anziché una singola soglia di token attiva/disattiva, intensifica i motori più economici e con minori perdite solo quanto necessario per **rientrare nella finestra di contesto del modello**. Criterio: `reserve-output` (predefinito, adattato al modello) · `percentage` · `absolute`. Modalità: `floor` (garantisce che rientri) · `replace-autotrigger` (prevale la scelta esplicita) · `off` (soglia precedente). - **🎛️ Dove viene decisa la compressione** _(precedenza, dalla più alta alla più bassa)_ — header per richiesta `x-omniroute-compression` › override della combinazione di routing › profilo denominato attivo › attivazione adattiva / automatica › impostazione predefinita del pannello › disattivata. Il piano applicato viene restituito nell'header di risposta `X-OmniRoute-Compression: ; source=`. Imposta l'attivazione automatica tramite soglia di token, abilita la regolazione adattiva, fissa un profilo denominato, specifica un'impostazione occasionale per singola richiesta oppure assegna una pipeline a ciascuna combinazione di routing, a seconda del carico di lavoro. Un **harness di valutazione** offline opzionale (`npm run eval:compression`) misura fedeltà e risparmio su un corpus fissato prima di promuovere una modifica. 📖 [`COMPRESSION_GUIDE.md`](docs/compression/COMPRESSION_GUIDE.md) · [`RTK_COMPRESSION.md`](docs/compression/RTK_COMPRESSION.md) · [`COMPRESSION_ENGINES.md`](docs/compression/COMPRESSION_ENGINES.md)
# ⚡ Avvio rapido
**1) Installa e avvia** ```bash npm install -g omniroute omniroute ``` > 💡 Vedi `npm warn ERESOLVE` o avvisi sulle peer dependency? [Sono innocui](docs/guides/TROUBLESHOOTING.md#npm-install-warnings-eresolve--peer--deprecated). > **Usi Gemini Web o un altro provider basato su cookie web?** Il pacchetto npm include > Playwright, ma non il relativo binario Chromium. Consulta la nota sulla > [configurazione di Chromium per Playwright](docs/guides/TROUBLESHOOTING.md#gemini-web-and-playwright-chromium) > prima di effettuare la prima richiesta a un provider web. Dashboard all'indirizzo `http://localhost:20128` · API all'indirizzo `http://localhost:20128/v1`. **2) Connetti un provider GRATUITO (senza registrazione)** Dashboard → **Provider** → connetti **Kiro AI** (Claude gratuito, ~50 crediti/mese per account) oppure **OpenCode Free** (senza autenticazione) → fatto. **3) Configura il tuo strumento di programmazione** ```txt URL di base: http://localhost:20128/v1 Chiave API: [copia da Dashboard → Endpoint] Modello: auto (routing intelligente senza configurazione — oppure qualsiasi provider/modello) ``` **4) Verifica che funzioni** ```bash curl http://localhost:20128/v1/models -H "Authorization: Bearer YOUR_KEY" ``` Dovresti vedere l'elenco dei modelli connessi. 🎉 Tutto qui: inizia a programmare e OmniRoute gestirà automaticamente il routing e il fallback per te. Se il client non può inviare header personalizzati, OmniRoute espone anche alias di compatibilità con token: ```txt Catalogo OpenAI: http://localhost:20128/vscode/YOUR_KEY/ Modelli OpenAI: http://localhost:20128/vscode/YOUR_KEY/models Chat OpenAI: http://localhost:20128/vscode/YOUR_KEY/chat/completions Risposte OpenAI: http://localhost:20128/vscode/YOUR_KEY/responses Chat Ollama: http://localhost:20128/vscode/YOUR_KEY/api/chat Tag Ollama: http://localhost:20128/vscode/YOUR_KEY/api/tags ``` Usali solo per i client che non possono aggiungere `Authorization: Bearer ...`. L'autenticazione tramite header resta la modalità consigliata.
## 📦 Altri metodi di installazione — Docker, sorgenti, 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` segue la versione SemVer stabile **pubblicata** più recente. Non segue il branch git `main`. Usa `:X.Y.Z` per GitOps. Consulta [Canali di rilascio Docker](docs/guides/DOCKER_GUIDE.md#release-channels). L'immagine imposta **`OMNIROUTE_MEMORY_MB=1024`**. È sufficiente per la dashboard e una chat leggera. Gli **agenti di programmazione** (`POST /v1/responses` da Claude Code, Codex, Grok, …) richiedono un heap V8 molto più grande, altrimenti il processo genera un `FATAL ERROR` a circa 12 GiB con due contesti lunghi sovrapposti. Dimensiona il container al di sopra dell'heap (i buffer nativi risiedono al di fuori di V8): | Carico di lavoro | Heap (`-e OMNIROUTE_MEMORY_MB`) | Container (`--memory`) | | ------------------------------------- | ----------------------------------------- | ---------------------- | | Dashboard / chat leggera | `1024` (valore predefinito dell'immagine) | ≥2 g | | Un agente di programmazione | `8192` | ≥10 g | | Due `/v1/responses` lunghi simultanei | `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 ``` Tabella completa: [Guida Docker — RAM di runtime](docs/guides/DOCKER_GUIDE.md#runtime-ram-for-coding-agents). > **Canale Docker di pre-release:** `diegosouzapw/omniroute:next` e > `diegosouzapw/omniroute:next-web` seguono il branch `release/v*` predefinito > corrente. Questi tag modificabili sono destinati esclusivamente al test di correzioni non ancora rilasciate e > **non sono supportati in produzione**. Consulta > [Canali di rilascio Docker](docs/guides/DOCKER_GUIDE.md#release-channels). **🥟 Bun** L'installazione standard con `bun install` e quella globale (`bun install -g omniroute`) sono supportate tramite il rilevamento del runtime Bun: - **`bun:sqlite` integrato**: durante l'esecuzione con Bun, OmniRoute utilizza il driver `bun:sqlite` integrato di Bun, ricorrendo a `better-sqlite3` su Node.js oppure a `sql.js`. - **Selezione automatica del bundler Webpack in sviluppo**: la modalità di sviluppo (`bun run dev`) rileva automaticamente Bun e disabilita Turbopack a favore di Webpack per evitare incompatibilità con i binding nativi V8. Le build di produzione (`bun run build`) rispettano esattamente `OMNIROUTE_USE_TURBOPACK` come su Node: Turbopack per impostazione predefinita, `OMNIROUTE_USE_TURBOPACK=0` per compilare con Webpack (`Dockerfile.bun` lo espone come `--build-arg`). - **Dockerfile dedicato a Bun**: `Dockerfile.bun` multi-stage per distribuzioni di produzione native con Bun (`docker build -f Dockerfile.bun -t omniroute:bun .`). ```bash # Installa ed esegui con Bun bun install bun run dev ``` **🛠️ Dai sorgenti** ```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 # Utilizzando i flake di Nix nix develop npm run dev # Oppure utilizzando devbox devbox run npm run dev ``` 📖 [Guida Docker](docs/guides/DOCKER_GUIDE.md) — Profili Compose, HTTPS con Caddy, tunnel Cloudflare. **🦭 Podman** ```bash # 1. Prepara la directory dei dati montata tramite bind mkdir -p data # 2. Solo Linux + Podman rootless locale (mai un client Podman Machine remoto): podman unshare chown 1000:1000 ./data # 3. Imposta l'indicazione del runtime, crea l'immagine Compose locale e avvia echo "CONTAINER_HOST=podman" >> .env podman compose --profile base up -d --build ``` Su macOS o Windows, Podman utilizza una Podman Machine remota: salta `podman unshare` e segui le [indicazioni sulla directory dei dati specifiche per la topologia](contrib/podman/README.md#data-directory-permissions-by-topology). 📖 [Guida Podman](contrib/podman/README.md) — Build Compose, Podman Machine e configurazione Quadlet di Linux/systemd. **⚡ Installazione più veloce / leggera (senza build nativa)** Il motore SQLite nativo (`better-sqlite3`) è una dipendenza **opzionale**, quindi un'installazione globale non rimane mai bloccata durante la compilazione dai sorgenti: utilizza un binario precompilato quando ne esiste uno compatibile con la piattaforma/Node in uso; in caso contrario, passa automaticamente a un motore JavaScript puro (`node:sqlite` su Node 22+, altrimenti il modulo WASM `sql.js` incluso) — senza richiedere strumenti di compilazione. Per saltare completamente l'**inizializzazione nativa** successiva all'installazione (CI, sistemi headless o computer lenti). Nota: questa opzione salta solo il passaggio di inizializzazione di SQLite nativo (`scripts/postinstall.mjs`); l'hook di copia/riparazione del binario (`scripts/build/postinstall.mjs`) viene comunque eseguito normalmente: ```bash OMNIROUTE_SKIP_POSTINSTALL=1 npm install -g omniroute # Anche CI=1 lo salta ``` Per installazioni più rapide, preferisci **pnpm** (archivio indirizzato in base al contenuto + hard link — vedi sopra). Per un runtime headless senza dashboard, utilizza il profilo Docker `base` (sopra) oppure la [guida Termux](docs/guides/TERMUX_GUIDE.md). La CLI e la dashboard web vengono servite dallo stesso processo su un'unica porta, quindi attualmente non esiste un pacchetto separato dedicato esclusivamente alla CLI.
# 🎬 OmniRoute in azione
## 📹 Guide video
Istantanea del pannello al 2026-08-24 · Catalogo grezzo: YT 809 | TT 137 | IG 124 · Aggiornamento (giorni): YT 1 | TT 21 | IG 22
Reel di Instagram
🎬 #1 — Instagram
nick_saraev — 3,042,474 visualizzazioni
Reel di Instagram — theopenstack
🎬 #2 — Instagram
theopenstack — 692,419 visualizzazioni
TikTok — milesreevesai
🎬 #3 — TikTok
milesreevesai — 620,400 visualizzazioni
YouTube — Vaibhav Sisinty
🎬 #4 — YouTube
Vaibhav Sisinty — 391,109 visualizzazioni
Reel di Instagram — buildwithai.club
🎬 #5 — Instagram
buildwithai.club — 347,652 visualizzazioni
**Classifica completa (URL canonici deduplicati, `v > 0`, maggiore copertura):** | #1 | #2 | #3 | #4 | #5 | | -------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | | [nick_saraev — Instagram](https://www.instagram.com/reel/Da8ZthUPK98/) — **3,042,474** | [theopenstack — Instagram](https://www.instagram.com/reel/DaSs65mMrHk/) — **692,419** | [milesreevesai — TikTok](https://www.tiktok.com/@milesreevesai/video/7667980059189366019) — **620,400** | [Vaibhav Sisinty — YouTube](https://www.youtube.com/watch?v=QucgvbO5gsM) — **391,109** | [buildwithai.club — Instagram](https://www.instagram.com/reel/DbIt9AjK7-U/) — **347,652** | | #6 | #7 | #8 | #9 | #10 | | ----------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | | [nivedan.ai — Instagram](https://www.instagram.com/reel/DbIrCksJiqq/) — **331,973** | [vaibhavsisinty — Instagram](https://www.instagram.com/reel/Dae05TSAK1l/) — **263,744** | [Nick Automates — YouTube Shorts](https://www.youtube.com/shorts/fZIBK_4fKq8) — **218,174** | [theroshankrishna — Instagram](https://www.instagram.com/reel/Dapjs58z0P0/) — **186,786** | [midudev — TikTok](https://www.tiktok.com/@midudev/video/7664636453544152342) — **177,800** | Metriche canoniche al 2026-08-24: **1.029 video unici** · **11.132.922 visualizzazioni note** (`v > 0`) · **639 canali/profili per piattaforma**. Il pannello grezzo contiene 1.070 righe; 41 duplicati di Instagram sono stati normalizzati in base all'URL canonico, mantenendo il conteggio più alto per ciascun video. > 🎬 **Hai realizzato un video su OmniRoute?** Apri una [segnalazione](https://github.com/diegosouzapw/OmniRoute/issues/new) o una [discussione](https://github.com/diegosouzapw/OmniRoute/discussions) con il link: lo metteremo in evidenza qui.
# 📧 Community e assistenza > Tutto in un unico posto: segui il maintainer, chatta con la community oppure apri una segnalazione. | Canale | Dove / come | | --------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | | 💼 **LinkedIn** — segui il manutentore | [linkedin.com/in/diegosouzapw](https://www.linkedin.com/in/diegosouzapw/) | | 🐙 **GitHub** — segui per release e consigli | [@diegosouzapw](https://github.com/diegosouzapw) | | 💬 **Discord** | [discord.gg/U47eFqAXCn](https://discord.gg/U47eFqAXCn) | | ✈️ **Telegram** | [t.me/omnirouteOficial](https://t.me/omnirouteOficial) | | 🟢 **WhatsApp — 🌍 Globale** | [unisciti al gruppo](https://chat.whatsapp.com/FvuCbrpZmQ6I85n2vW5QIC?s=cl&p=a&mlu=4) | | 🟢 **WhatsApp — 🇧🇷 Brasile** | [unisciti al gruppo](https://chat.whatsapp.com/KWgatljAjmbELQory59Oti?s=cl&p=a&mlu=4) | | 🌍 **Sito web** | [omniroute.online](https://omniroute.online) | | 🌍 **🌍Community StHub OmniRoute (gratuita)** | [portale StHub](https://portal.sthub.com.br/communities/groups/st-hub/channels/Omniroute-World-8kRjmK) | | 📦 **Codice sorgente** | [github.com/diegosouzapw/OmniRoute](https://github.com/diegosouzapw/OmniRoute) | | 🐛 **Segnala un bug** | [apri una segnalazione](https://github.com/diegosouzapw/OmniRoute/issues) — allega l'output di `npm run system-info` | | 🤝 **Contribuisci** | [CONTRIBUTING.md](CONTRIBUTING.md) · [Modello di branching e rilascio](docs/ops/BRANCHING_MODEL.md) · scegli una `good first issue` | | 💚 **Sostieni il progetto** | [Modi per sostenerci ↑](#-support-omniroute) · [GitHub Sponsors](https://github.com/sponsors/diegosouzapw) |
---
## 🛠️ Stack Tecnologico
LivelloTecnologia
RuntimeNode.js 22.x / 24.x LTS — >=22.22.2 <23 || >=24.0.0 <27
LinguaggioTypeScript 6.0 — 100% TypeScript in src/ e open-sse/ (zero any nel core dalla v2.0)
FrameworkNext.js 16 + React 19 + Tailwind CSS 4
Databasebetter-sqlite3 (SQLite, journaling WAL) + LowDB (JSON legacy) — 122 moduli di dominio, 183 migrazioni
MemoriaSQLite FTS5 full-text + int8-quantized vector embeddings, typed decay
SchemiZod 4 — Validazione I/O strumento MCP + contratti API
ProtocolliMCP (stdio / HTTP / SSE) + A2A v0.3 (JSON-RPC 2.0 + SSE)
StreamingServer-Sent Events (SSE) + bridge WebSocket (/v1/ws)
CompressionePipeline a 12 motori — RTK, Caveman, LLMLingua-2 (MobileBERT ONNX), GCF, OmniGlyph
Autenticazione e sicurezzaOAuth 2.0 (PKCE) + JWT + Chiavi API + autenticazione con ambito MCP · AES-256-GCM a riposo · DOMPurify
Stealthwreq-js — Impersonificazione fingerprint JA3 / JA4 TLS, proxy a 3 livelli
ResilienzaCircuit breaker, exponential backoff, anti-thundering-herd, auto-combo self-healing
Loggingpino — log JSON strutturati con contesto di richiesta
TestingNode.js test runner + Vitest — Oltre 39.000 dichiarazioni di test statici in oltre 5.100 file di test tracciati (unit, integrazione, E2E, sicurezza, ecosistema)
PiattaformeDesktop (Electron) · Android (Termux) · PWA (qualsiasi browser)
CI/CDGitHub Actions — pubblicazione automatica npm + Docker Hub al rilascio
LinkSito web · npm · Docker Hub

## 📖 Documentazione
### 📘 Per iniziare
DocumentoDescrizione
Guida utenteProvider, combo, integrazione CLI, distribuzione
Guida alla configurazioneMetodi di installazione completi, configurazioni degli strumenti CLI, configurazione dei protocolli, ottimizzazione dei timeout
Guida agli strumenti CLIConfigurazione specifica per Claude Code, Codex, Cursor, Cline, OpenClaw, Kilo, Copilot
Modalità remotaControlla un'istanza OmniRoute remota (VPS) dalla CLI del tuo laptop tramite token di accesso con ambito
Configurazione di Claude CodeCollega Claude Code a OmniRoute (locale/remoto) con launch + profili per modello
Avvio rapidoInstallazione in 3 passaggi → connessione → configurazione
### 🔧 Operazioni e distribuzione
DocumentoDescrizione
Guida a DockerDocker run, profili Compose, Caddy HTTPS, tunnel, tag delle immagini
Guida a PodmanIntegrazione con Quadlet systemd, podman-compose, SELinux
Distribuzione su VMGuida completa: configurazione di VM + nginx + Cloudflare
Distribuzione su Fly.ioDistribuisci su Fly.io con archiviazione persistente
Guida a TermuxEsegui OmniRoute su Android tramite Termux
Guida alla PWAInstallazione, caching e architettura della Progressive Web App
Guida alla disinstallazioneRimozione completa per tutti i metodi di installazione
Configurazione dell'ambienteVariabili .env complete e riferimenti
### 🧠 Funzionalità e architettura
DocumentoDescrizione
ArchitetturaArchitettura del sistema, flusso dei dati e meccanismi interni
Guida alla compressionePipeline con 7 opzioni: disattivata / leggera / standard / aggressiva / ultra / RTK / combinata
Compressione RTKCompressione dell'output dei comandi, filtri, attendibilità, verifica e recupero dell'output non elaborato
Motori di compressioneCaveman, RTK, pipeline combinate e interfacce dashboard/API/MCP
Formato delle regole di compressioneSchemi dei pacchetti di regole JSON per Caveman e i filtri RTK
Pacchetti linguistici per la compressioneRilevamento della lingua e creazione di pacchetti di regole Caveman
Guida alla resilienzaCircuit breaker, periodi di attesa, coda, prevenzione del thundering herd e spoofing TLS
Motore Auto-ComboValutazione basata su 16 fattori, pacchetti di modalità e autoriparazione
Guida ai proxySistema proxy a 3 livelli, marketplace 1proxy e operazioni CRUD sul registro
Piani gratuitiDirectory consolidata: 35 pool ricorrenti documentati / 489 offerte di piani gratuiti catalogate
Galleria delle funzionalitàTour visivo della dashboard con schermate
Documentazione del codebasePanoramica del codebase adatta ai principianti
### 🤖 Protocolli e API
DocumentoDescrizione
Riferimento APITutti gli endpoint con esempi
Specifica OpenAPISpecifica OpenAPI 3.0
Server MCP110 strumenti MCP, configurazioni IDE e client Python/TS/Go
Guida al server MCPInstallazione di MCP, trasporti e riferimento degli strumenti
Server A2AProtocollo JSON-RPC 2.0, competenze, streaming e gestione delle attività
Guida al server A2AScheda dell'agente A2A, attività, competenze e streaming
### 📋 Progetto e qualità
DocumentoDescrizione
ContribuireConfigurazione dell'ambiente di sviluppo e linee guida
Modello di branching e rilascioBranch di destinazione delle PR (release/*) e significato di main e dei tag
Registro delle modificheCronologia completa dei rilasci per versione
Politica di sicurezzaSegnalazione delle vulnerabilità e pratiche di sicurezza
Guida all'i18nSupporto per 42 lingue, flusso di lavoro per la traduzione e RTL
Checklist di rilascioPassaggi di convalida preliminari al rilascio
Piano di coperturaStrategia di copertura dei test per oltre 39.000 dichiarazioni di test statiche distribuite in oltre 5.100 file di test monitorati

# ⭐ Principali contributori > OmniRoute è plasmato da un'appassionata comunità open source. Queste persone hanno fornito contributi eccezionali che incidono direttamente sulla qualità, sulla stabilità e sulla portata del progetto. **Grazie.** ### Contributori esterni per pull request unite
PosizioneCollaboratorePR unificate~Righe modificate
1backryun190227,977
2oyi77180407,678
3rdself14580,663
4JxnLexn128387,049
5KooshaPari101125,747
6herjarsa88230,872
7RaviTharuma7955,106
8maxmad64bis69394,715
9artickc5933,260
10HouMinXi5147,334
10chirag127515,153
12xz-dev50245,976
13hartmark4752,185
14rqzbeh39143,181
15dhaern3419,559
16Dingding-leo331,986
17NomenAK3213,854
18MumuTW3016,953
19benzntech2911,641
20pacocartones249,331
20Prudhvivuda246,312
Dati congelati in corrispondenza del commit più recente dafb4ae808 del ramo live release/v3.8.50, con merge fino al 2026-08-24 05:26:03 UTC. Il censimento paginato tramite GitHub GraphQL contiene 5,911 PR unificate: 2,707 dal proprietario del repository, 179 da Dependabot e 3,025 PR esterne provenienti da 535 collaboratori distinti. Per «righe modificate» si intende la somma di aggiunte ed eliminazioni di GitHub, inclusi file generati, lockfile, cataloghi, traduzioni e documentazione; è una misura delle modifiche complessive, non delle righe di codice scritte. Le posizioni ex aequo al limite della classifica sono mantenute. ### Commit attribuiti da GitHub
backryun
backryun

🥇 220 commit attribuiti da GitHub
Paijo
Paijo

🥈 219 commit attribuiti da GitHub
Randi
Randi

🥉 108 commit attribuiti da GitHub
Ravi Tharuma
Ravi Tharuma

🏅 81 commit attribuiti da GitHub
Chris
Chris

🏅 70 commit attribuiti da GitHub
Markus Hartung
Markus Hartung

🏅 69 commit attribuiti da GitHub · pari merito al 6º posto
Dizzle
Dizzle

🏅 69 commit attribuiti da GitHub · pari merito al 6º posto
Jan Leon
Jan Leon

🏅 64 commit attribuiti da GitHub
zenobit
zenobit

🏅 62 commit attribuiti da GitHub
Bob.Hou
Bob.Hou

🏅 51 commit attribuiti da GitHub · pari merito al 10º posto
Xiangzhe
Xiangzhe

🏅 51 commit attribuiti da GitHub · pari merito al 10º posto
Ricontrollato il 2026-08-24 alle 06:14:31 UTC: commit attribuiti da GitHub segnalati dall'API Contributors del repository per il ramo predefinito release/v3.8.50. L'API ha restituito 525 identità (415 utenti, 2 bot, 108 anonime); questa tabella esclude il manutentore, i bot e le identità anonime e mantiene i pari merito. È distinta sia dalla classifica delle PR unite riportata sopra sia dal censimento di 639 persone basato sui metadati Git riportato sotto. > 🙏 Le funzionalità, le correzioni di bug e i miglioramenti all'infrastruttura apportati da questi collaboratori sono una **parte fondamentale** di ciò che rende OmniRoute affidabile e ricco di funzionalità. Ogni pull request, ogni caso di test e ogni file di traduzione i18n è importante. L'open source è costruito da persone come loro.
---
## 💖 Sponsor
Un sentito ringraziamento alle persone che finanziano OmniRoute di tasca propria: ogni contributo mantiene il progetto gratuito, indipendente e in continua evoluzione.
Andrew
Andrew

💛 Sponsor mensile attivo
Vlad I
Vlad I

💛 Sponsor mensile attivo
Paco Cartones
Paco Cartones

💛 Sponsor attivo con contributo una tantum
Professor Igor Morais Vasconcelos
Prof. Igor Morais

💛 Sostenitore passato con contributo una tantum
longtao
longtao

💛 Sostenitore passato con contributo una tantum
… e altri che preferiscono rimanere anonimi 💛 Gli sponsor pubblici di GitHub sono stati riconvalidati il 2026-08-24. Lo stato activeOnly di GitHub determina le etichette relative agli sponsor attivi riportate sopra; i sostenitori pubblici con contributo una tantum già resi noti continuano a essere ringraziati, mentre gli sponsor privati rimangono anonimi. 💖 Diventa sponsor → — ogni dollaro contribuisce a mantenere OmniRoute gratuito e indipendente.

## 👥 Oltre 600 contributori
[![Contributori](https://contrib.rocks/image?repo=diegosouzapw/OmniRoute&max=639&columns=20&anon=1)](https://github.com/diegosouzapw/OmniRoute/graphs/contributors) Verificato il 2026-08-24 sulla base congelata ac02c5b42f e ricontrollato sulla punta attuale di release/v3.8.50, dafb4ae808: 639 identità Git umane normalizzate — 407 figurano come autori di commit (incluso il manutentore) e 232 compaiono soltanto nei trailer espliciti Co-authored-by. Il censimento normalizza gli handle noreply di GitHub, esclude 26 identità appartenenti a bot, agenti, servizi o segnaposto e non unifica i normali indirizzi email soltanto perché i relativi nomi visualizzati coincidono. ### Come contribuire 1. Crea un fork del repository 2. Crea un branch a partire dalla punta **attiva** di `release/vX.Y.Z` (non da `main`) — consulta [Modello di branching e rilascio](docs/ops/BRANCHING_MODEL.md) 3. Crea il branch per la tua funzionalità (`git checkout -b feat/amazing-feature`) 4. Esegui il commit delle modifiche (`git commit -m 'feat: add amazing feature'`) 5. Esegui il push sul branch (`git push origin feat/amazing-feature`) 6. Apri una Pull Request con **base = quel branch `release/vX.Y.Z`** Consulta [CONTRIBUTING.md](CONTRIBUTING.md) per le linee guida dettagliate. ### Rilasciare una nuova versione ```bash # Crea un rilascio: npm publish viene eseguito automaticamente VERSION=x.y.z gh release create "v${VERSION}" --title "v${VERSION}" --generate-notes ```
## 📊 Stelle Grafico della cronologia delle stelle
## 🌍 StarMapper StarMapper

## 🙏 Ringraziamenti
OmniRoute si regge sulle spalle di giganti. È nato come fork di **[9router](https://github.com/decolua/9router)** e come porting TypeScript del progetto Go **[CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI)** e, da lì, ogni sottosistema riportato di seguito è stato ispirato da un progetto open source che lo aveva realizzato per primo. Ognuno di essi ha plasmato una parte concreta di OmniRoute. Questo è il nostro modo di ringraziarli tutti. 🙏 > ⭐ conteggi delle stelle verificati tramite l'API REST di GitHub il 24 agosto 2026 — date una stella a questi progetti. I conteggi rappresentano un'istantanea esatta riferita a quella data e cambieranno naturalmente. ### 🧬 Origini e gateway
Progetto⭐Come ha ispirato OmniRoute
9router26,161Il progetto originale su cui si basa questo fork, qui esteso con API multimodali e una riscrittura completa in TypeScript.
CLIProxyAPI48,497L'implementazione in Go che ha ispirato questo porting in JavaScript / TypeScript.
LiteLLM57,100Il gateway di IA il cui dataset pubblico dei prezzi alimenta la nostra sincronizzazione del monitoraggio dei costi e il cui modello di normalizzazione dei provider ha contribuito a definire il nostro sistema di routing.
codex-chatgpt-web1,410Codice sorgente MIT adattato nel bridge ChatGPT Web → Codex Responses integrato, inclusi gli adattatori per sessioni del browser, strutturazione delle risposte, utilizzo e ricerca sul web.
free-claude-code48,112Pattern trasferiti nel ripristino degli stream, negli alias senza ragionamento, nella ricerca web di fallback, nei limiti a finestra scorrevole, nell'oscuramento dei log e nei flussi di avvio resi più sicuri.
composer-api322Pattern di Cursor Composer per la scelta degli strumenti, i vincoli di output e il commit degli strumenti, adattati nell'esecutore Cursor nativo.
codex-multi-auth457Pattern di nuovo accesso e rotazione dei token di aggiornamento trasferiti nella riautenticazione OAuth di Codex.
opencode-anthropic-auth510Valori predefiniti di trasformazione compatibili con Claude Code e comportamento delle intestazioni di fatturazione, generalizzati nel bridge basato sulla configurazione di OmniRoute.
grok2api-merged2Le mappature dei modelli Grok, il generatore Statsig con TypeError simulato, i valori predefiniti per richieste e dispositivi e il processore di risposte NDJSON sono stati adattati in modo sostanziale nell'esecutore Grok Web di OmniRoute.
TQZHR/grok2api705La principale fonte indiretta di codice alla base di grok2api-merged; le sue implementazioni di modelli, intestazioni, payload, Statsig e processori sono preservate nella derivazione di Grok Web.
chenyme/grok2api7,520Il codice sorgente MIT sottostante per i valori predefiniti del payload e dei dispositivi Grok, il generatore Statsig e il processore result.response propagato tramite TQZHR e grok2api-merged.
grok2api-pro27Una fonte indiretta accreditata da grok2api-merged per il suo livello di pool di proxy; OmniRoute ne preserva l'attribuzione nella derivazione, ma non dichiara alcun porting del pool di proxy nel proprio esecutore Grok Web circoscritto.
GrokProxy50Il suo proxy Grok autenticato tramite cookie e il pattern di streaming result.response.token hanno contribuito a definire il trasporto Grok Web di OmniRoute.
GrokBridge5L'implementazione originale di Grok Web ha preso in esame la sua architettura upstream HTTP/browser; il suo percorso HTTP diretto deriva da GrokProxy, pertanto non viene dichiarato alcun porting indipendente del codice.
grok-web-api14Gli schemi Rust ChatOptions e delle buste di risposta hanno contribuito a definire i tipi TypeScript di OmniRoute per le richieste Grok e le risposte in streaming.
### 🗜️ Compressione del contesto e dei token — motori
Progetto⭐Come ha ispirato OmniRoute
Caveman100,538Il progetto virale «perché usare molti token quando pochi token bastano» — la sua filosofia da uomo delle caverne alimenta la nostra modalità di compressione standard e oltre 30 regole per la rimozione dei riempitivi e la condensazione.
RTK – Rust Token Killer77,185Compressione ad alte prestazioni dell'output dei comandi — ha ispirato il nostro motore RTK, il DSL per i filtri JSON, il recupero dell'output grezzo e la pipeline combinata RTK → Caveman.
headroom67,310Compressione reversibile del contesto (SmartCrusher) — ha ispirato il nostro motore headroom e il modello di marcatori di recupero ccr.
LLMLingua6,598Ricerca sulla compressione dei prompt (LLMLingua / LLMLingua-2) — ha ispirato il nostro motore llmlingua asincrono, sicuro per il codice e con comportamento fail-open.
llmlingua-2-js31Il port JS/ONNX (MobileBERT / XLM-RoBERTa) utilizzato come backend con thread worker per il nostro motore LLMLingua.
Troglodita40Compressione dei token in portoghese brasiliano — alimenta il nostro pacchetto linguistico pt-BR: riduzione dei pleonasmi e rimozione dei riempitivi ottimizzate per la grammatica del portoghese brasiliano.
ponytail108,957La skill virale del «senior dev pigro» basata su YAGNI — ha ispirato il nostro stile di output less-code: orientamento alla modifica funzionante più piccola, che riduce il codice _generato_ (l'equivalente, sull'asse dell'output, della prosa concisa di Caveman).
i-have-adhd23,526Il suo stile di risposta orientato all'azione e adatto alle persone con ADHD è stato adattato nello stile di output conciso di OmniRoute in cinque lingue.
### 🧩 Formati compatti, ricerca sui token e strumenti sensibili al codice
Progetto⭐Come ha ispirato OmniRoute
TOON25,233Token-Oriented Object Notation — il suo modello colonnare, basato su intestazione e righe, ha plasmato la nostra fase di compattazione tabulare.
GCF – Graph Compact Format41Il suo formato compatto per grafi e il design a profilo generico hanno contribuito alla progettazione della compattazione tabulare e del formato codec Headroom di OmniRoute.
gcf-typescript4L'implementazione MIT in TypeScript, integrata direttamente ed estesa come codec a profilo generico di Headroom.
token-optimizer-mcp494Cache Brotli/SQLite + delta del contesto per sessione — ha ispirato il nostro motore session-dedup.
token-savior1,122Compattazione dell'output Bash + profili MCP — ha ispirato la nostra disciplina di interruzione della compressione e la riduzione dei manifest degli strumenti MCP.
token-saver138Compressione dell'output sensibile al contenuto e specifica per tipo di file, con interruzione in caso di errore — ha convalidato il nostro dispatch per tipo e il salto in caso di guadagno inferiore alla soglia minima.
token-optimizer1,951«Trova i token fantasma» — il suo modello di offload con handle recuperabile ha contribuito alla nostra concezione dell'offload CCR.
TokenMizer28Un modello basato su grafo di sessione e deduplicazione delle righe tra turni, che ha contribuito alla progettazione di session-dedup.
OmniCompress3JSON colonnare in Rust + recupero con indirizzamento per contenuto + deduplicazione tra messaggi — ha convalidato il design dei nostri motori headroom/ccr/session-dedup e l'invariante «la forma compressa è indipendente dalla posizione», che garantisce la stabilità della cache.
mcp-compressor113Compressione degli schemi e delle descrizioni degli strumenti MCP — ha contribuito alla nostra riduzione della cardinalità dei manifest degli strumenti MCP.
RepoMapper197Classificazione delle mappe dei repository in stile Aider — ha contribuito alla nostra esplorazione delle mappe dei repository e della classificazione per il recupero.
quiet-shell-mcp4Riduzione dichiarativa dell'output della shell tramite MCP — ha convalidato la nostra compattazione dichiarativa dell'output Bash.
ts-morph6,162Toolkit per la TypeScript Compiler API — ha ispirato la nostra rimozione dei commenti basata su parser, che preserva i letterali stringa, template e regex.
### 🧠 Memoria e RAG
Progetto⭐Come ha ispirato OmniRoute
Mem063,902Livello di memoria universale — il suo modello proxy come confine di scrittura/lettura ha plasmato la nostra architettura della memoria.
Letta (MemGPT)24,382Agenti con stato e memoria a livelli — hanno ispirato il nostro modello a livelli Context Control & Recovery (CCR).
WFGY1,781La tassonomia ProblemMap di 16 modalità di errore ricorrenti di RAG/LLM — il vocabolario condiviso nella nostra guida alla risoluzione dei problemi.
### 🛰️ Ispezione del traffico, MITM e proxy trasparente
Progetto⭐Come ha ispirato OmniRoute
llm-interceptor66L'intercettazione/analisi MITM del traffico tra assistente di programmazione e LLM ha contribuito a definire i requisiti iniziali di Traffic Inspector. Quattro moduli derivati in precedenza — unione SSE, normalizzazione delle conversazioni, mascheramento dei segreti e sanificazione degli header — sono stati sostituiti da implementazioni clean-room indipendenti basate su standard di protocollo pubblici. Le due superfici di passthrough dell'host (passthrough.ts e _internal/bypass.cjs) rimangono implementazioni interne di OmniRoute classificate in modo indipendente; non sono state riscritte nell'ambito di tale sostituzione.
ProxyBridge5,995Instradamento proxy trasparente per processo — ha ispirato il nostro arresto MITM resistente ai crash, i timeout di inattività dei socket, l'attribuzione dei processi tramite /proc e l'acquisizione TPROXY.
### 📚 Dati dei modelli, osservabilità e UI
Progetto⭐Come ha ispirato OmniRoute
models.dev6,555Database aperto di specifiche, prezzi e funzionalità dei modelli di IA — sincronizzato nativamente nel nostro catalogo dei modelli.
React Flow / xyflow38,108La libreria di grafi basata su nodi alla base dei nostri Compression Studio e Combo/Routing Studio in tempo reale.
LangGraph40,314La visualizzazione in tempo reale del grafo del flusso di lavoro di LangGraph Studio ha ispirato la vista a cascata in tempo reale dei nostri Studio.
Langfuse33,592Il suo modello di osservabilità trace → span → generation ha plasmato la vista a cascata del nostro Compression Studio.
Kiali3,631Osservabilità della service mesh Istio — ha ispirato i nostri badge dei circuit breaker e la rappresentazione visiva degli archi di errore nel Routing/Combo Studio.
lobe-icons2,428Loghi dei marchi IA/LLM usati per visualizzare le icone dei provider nella nostra dashboard.
flag-icons12,354Fornisce le bandiere SVG con licenza MIT utilizzate dal selettore della lingua del README.
### 🛡️ Sicurezza
Progetto⭐Come ha ispirato OmniRoute
awesome-secure-defaults721Un elenco curato di librerie sicure per impostazione predefinita che guida le nostre scelte in materia di sicurezza (Helmet.js, DOMPurify, ssrf-req-filter, safe-regex, Google Tink).
### 🧭 Strumenti complementari
Progetto⭐Come ha ispirato OmniRoute
ClawRouter6,564Ha ispirato la deduplicazione delle richieste, il fallback di emergenza a costo zero, le strategie Auto-Combo collegabili e la classificazione multilingue degli intenti.
Antigravity-Manager30,652La rimappatura dei modelli basata sull'account, la convalida del percorso dell'eseguibile e il comportamento delle etichette dei piani hanno contribuito a definire il runtime Antigravity di OmniRoute.
vscode-antigravity-cockpit4,817Il suo formato compatto per il conto alla rovescia fino al ripristino della quota ha ispirato la corrispondente visualizzazione dei limiti del provider in OmniRoute.
AionUi32,230Le sue integrazioni ACP hanno ispirato il rilevamento automatico degli agenti CLI installati da parte di OmniRoute.
CodexBar20,507Ha identificato la superficie delle quote di Grok Build; OmniRoute ha quindi verificato e corretto in modo indipendente il formato dei dati trasmessi in tempo reale.
## 📄 Licenza Licenza MIT - consulta [LICENSE](LICENSE) per i dettagli. ---
**[⬆ Torna all'inizio](#-omniroute)** · Realizzato con ❤️ per la comunità IA open source. OmniRoute v3.8.51 · Node ≥22.22.2 · Licenza MIT · omniroute.online