> Combinare manualmente i tier gratuiti è scomodo: decine di SDK, decine di rate limit e nessuna idea chiara di quanta capacità sia davvero disponibile. OmniRoute aggrega i tier gratuiti **documentati** di **42 pool di provider / 495 modelli** in un unico numero trasparente e lo mostra in tempo reale nella dashboard (`/dashboard/free-tiers`).
> Riepilogo animato della pagina live `/dashboard/free-tiers`. Metodologia completa (deduplicazione dei pool, tier di credito, condizioni dei provider): **[docs/reference/FREE_TIERS.md](../../reference/FREE_TIERS.md)**.
>
> Questi valori vengono ricontrollati ogni due settimane rispetto al catalogo live e **possono sia salire sia scendere**: se un provider termina un tier gratuito, il numero diminuisce; se ne arriva uno nuovo, aumenta. Pubblichiamo ciò che il catalogo calcola realmente, mai una stima ottimistica arrotondata verso l'alto.
⭐ Metti una stella alla repo se OMNIROUTE ti ha aiutato a risparmiare e a lavorare meglio.
[](https://github.com/diegosouzapw/OmniRoute)
[](https://www.star-history.com/diegosouzapw/omniroute)
[](https://olud.ai/project/diegosouzapw-omniroute.html)
### 💬 Unisciti alla community
**👋 Segui il maintainer — scopri per primo nuovi provider, release e suggerimenti:**
[](https://www.linkedin.com/in/diegosouzapw/)
[](https://github.com/diegosouzapw)
[](https://discord.gg/U47eFqAXCn)
[](https://t.me/omnirouteOficial)
[](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t)
[](https://chat.whatsapp.com/LTSpdFhXTxjH4R6CCNiKWz)
[](https://omniroute.online)
**Domande, suggerimenti sui provider, roadmap e supporto → [Discord](https://discord.gg/U47eFqAXCn) · [Telegram](https://t.me/omnirouteOficial) · WhatsApp [🌍 Global](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) / [🇧🇷 Brasil](https://chat.whatsapp.com/LTSpdFhXTxjH4R6CCNiKWz)**
## 📈 Il gateway continua a crescere
## 🆓 Funziona subito dopo l'installazione — nessuna chiave, nessuna configurazione
```bash
# Fresh install, zero credentials — `auto` already works:
curl http://localhost:20128/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{"model":"auto","messages":[{"role":"user","content":"Hello!"}]}'
```
Preferisci uno specifico backend gratuito? Chiamalo direttamente, ad esempio `oc/…` (OpenCode Free) o `felo/…` (Felo). Poi passa a `auto` e lascia che sia OmniRoute a scegliere.📦 Script di avvio rapido pronti da copiare per **Python, Node.js, PHP e cURL** → [`examples/quickstart/`](../../../examples/quickstart/)
# 💥 La promessa
# 🤔 Perché OmniRoute?
## 🤝 Supportato dai nostri amici dell'Open Source
> **Vuoi diventare un Open Source Friend?** Queste sono le aziende che sostengono l'open source e aiutano OmniRoute a continuare a crescere — e dichiariamo pubblicamente dove viene usato ogni token che ci forniscono. Contatto: [diegosouza.pw@outlook.com](mailto:diegosouza.pw@outlook.com)
Kimi Moonshot AI
Grazie a Kimi (Moonshot AI), il nostro Open Source Friend fondatore, per il sostegno al progetto! Kimi è il laboratorio AI dietro le famiglie di modelli open-weight K2 e K3 — Kimi K3 offre una finestra di contesto da 1M token, vision nativa e capacità di coding di frontiera a una frazione del prezzo dei modelli chiusi, e funziona subito con Claude Code, Codex e ogni strumento di coding supportato da OmniRoute.
Cosa rende possibile il supporto di Kimi: i crediti API di Kimi alimentano la pipeline di release validata dall'AI di OmniRoute — la fase merge validation powered by Kimi K3 che esamina ogni pull request prima del rilascio — oltre allo sviluppo quotidiano delle funzionalità. Il supporto Kimi di prima classe è disponibile su entrambi i canali: la Kimi API diretta (kimi-k3) e il piano di coding Kimi Code (OAuth e API key). OmniRoute è anche il primo progetto open source brasiliano nel programma di supporto di Kimi. Ottieni una Kimi API key con il 15% di crediti extra →
Cheaper Inference cheaperinference.com
Grazie a Cheaper Inference, un Open Source Friend di OmniRoute, per il sostegno al progetto! Cheaper Inference è un gateway ordinato per costo che rivende 42 modelli di frontiera — Claude, GPT-5.x, Gemini, Kimi K3, GLM, DeepSeek, Grok e MiniMax — dietro un unico endpoint compatibile con OpenAI, instradando ogni richiesta verso il provider idoneo più economico senza mai addebitare più del prezzo di listino del produttore del modello.
Supporto di prima classe in OmniRoute: Chat Completions, endpoint nativo /v1/responses, vision, tool calling e 3 modelli immagine (grok-imagine, nano-banana-pro, nano-banana-2, raggiungibili come cheaperinference/<model>). Ottieni una API key →
I link contrassegnati con aff=omniroute sono link partner. Finanziano il progetto senza costi aggiuntivi per te. 🎟️ Promo affiliati — coupon gratuiti di registrazione da provider che non sponsorizziamo (clicca per espandere)Questa sezione contiene soltanto codici referral/coupon. Le partnership sponsorizzate sono riportate sopra in 🤝 Supportato dai nostri amici dell'Open Source. OmniRoute non ha sponsorizzazioni o partnership con i provider elencati qui: sono coupon pubblici utilizzabili da chiunque.
AgentRouter agentrouter.org
AgentRouter — registrazione affiliata · $100 di crediti gratuiti alla registrazione (server gratuito, aspettati una latenza maggiore — ideale per test, non per produzione). Supporto di prima classe in OmniRoute dalla v3.8.50: Chat Completions, formato wire compatibile con Anthropic e percorso compatibile con OpenAI. I modelli disponibili includono claude-opus-4-8, claude-opus-5, gpt-5.6-sol e altri. Ottieni i tuoi $100 →
⚠️ Link affiliato — OmniRoute non ha sponsorizzazioni o partnership con questo provider.
Conosci un altro provider con un generoso coupon gratuito di registrazione utile agli utenti OmniRoute? Apri una issue e lo aggiungeremo qui.
## 🎯 Combo — La funzionalità di punta
> Una **combo** è una catena di modelli tra cui OmniRoute instrada le richieste **automaticamente**. La quota finisce, un provider fallisce o i costi aumentano: la combo passa silenziosamente al modello successivo. **È questo che rende OmniRoute resistente ai guasti.** 🛡️
### ⚡ Zero-config — usa semplicemente `auto`
Non devi creare nessuna combo. Imposta il modello su `auto` (o una sua variante) e OmniRoute costruisce una combo virtuale a partire dai provider collegati, assegnando i punteggi in tempo reale:
🧑💻 Pesi orientati prima alla 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 il maggiore margine di quota / rate limit
auto/smart
🔭 Prima la qualità + 10% di esplorazione per scoprire modelli migliori
##
### 🔀 Oppure creane una tua — 19 strategie di routing
Tutte e **19** le strategie — combinabili liberamente per ogni passaggio della combo:
#
Strategia
Cosa fa
1
priority
Lista ordinata con priorità al primo target — esaurisce ciascuno prima di passare al successivo 🥇
2
fill-first
Usa completamente la quota di ogni target prima di passare oltre
3
weighted
Scelta casuale pesata in base al peso assegnato a ogni target
4
round-robin
Scorre ciclicamente i target in ordine
5
p2c
Bilanciamento casuale del carico Power-of-Two-Choices
6
least-used
Sceglie il target con il carico corrente più basso
7
random
Scelta casuale uniforme (con deduplicazione)
8
strict-random
Casuale senza deduplicare le ripetizioni 🎲
9
cost-optimized
Riduce al minimo il costo per richiesta usando i prezzi live del catalogo 💸
10
headroom
Sceglie il target con la maggiore quota residua
11
reset-window
Preferisce il target la cui finestra di quota si resetta prima
12
reset-aware
Ordina in base al reset della quota — prima le finestre più brevi 📊
13
context-relay
Passa il contesto tra i target nelle conversazioni lunghe 🧠
14
context-optimized
Sceglie il target più adatto alla dimensione corrente del contesto
15
cache-optimized
Fissa ogni prefisso di prompt riutilizzabile allo stesso account — massimizza gli hit della prompt cache 🎯
16
lkgp
Last-Known-Good Path — resta sull'ultimo target che ha risposto correttamente
17
auto
Punteggio live su 14 fattori per ogni connessione 🤖
18
fusion
Invia la richiesta a un gruppo di modelli + un giudice sintetizza una sola risposta 🧬
19
pipeline
Concatena i passaggi — l'output di ogni target alimenta il successivo 🔗
Il motore Auto-Combo valuta ogni candidato su **14 fattori** (salute, quota, costo, latenza, tasso di successo, freschezza…) — consulta [`docs/routing/AUTO-COMBO.md`](../../routing/AUTO-COMBO.md).
##
### 🧱 Resilienza integrata (3 livelli indipendenti)
📖 [Motore Auto-Combo](../../routing/AUTO-COMBO.md) · [Guida alla resilienza](../../architecture/RESILIENCE_GUIDE.md)
## 🏆 Cosa distingue OmniRoute
📊 Metodologia completa e dettaglio per funzionalità rispetto a 9router, OpenRouter, CLIProxyAPI e LiteLLM → [`docs/comparison/OMNIROUTE_VS_ALTERNATIVES.md`](../../comparison/OMNIROUTE_VS_ALTERNATIVES.md)
## 💚 Supporta OmniRoute
OmniRoute è distribuito con licenza MIT e mantenuto apertamente. Se ti fa risparmiare tempo o denaro, ecco come aiutarlo a restare indipendente — scegli ciò che preferisci. Le sponsorizzazioni non influenzano mai la priorità del routing: acquistano visibilità, non posizionamento.
**🇧🇷 PIX** — istantaneo, senza commissioni (Brasile)
Chiave (casuale): `5d865059-bc44-483a-962d-43ceb80126eb`
Pix copia-e-cola:
```
00020101021126580014br.gov.bcb.pix01365d865059-bc44-483a-962d-43ceb80126eb5204000053039865802BR5922OMNIROUTE CONTRIBUICAO6006BRASIL62070503***630475DD
```
₿ Crypto — BTC · ETH · USDT-TRC20 · USDC-Solana (clicca per espandere)
₿ BTC
Bitcoin (SegWit)
bc1qh00smz004sy85wyl28v77tenkt3ckl6eaep7fd
Ξ ETH
Ethereum (ERC20)
0x64Cf6B68A6Ff34288e89172950a2d00102337a84
₮ USDT
Tron (TRC20)
TKAF41JpuQrHbKTnsQa9svJE2T192Hvsc2
$ USDC
Solana
2emNNZzVVWQc3FQ2wk9M6qXUQmW8AKdjjL174fXR28Tu
⚠️ Invia ogni moneta esclusivamente sulla rete indicata: inviarla sulla rete sbagliata può causare la perdita dei fondi.
🐛 Hai trovato un bug o vuoi lasciare un feedback? Apri una [Discussion](https://github.com/diegosouzapw/OmniRoute/discussions).
Note per gli sviluppatori: il progetto può generare un file locale .env durante npm install/postinstall per comodità nello sviluppo. Questo file viene intenzionalmente ignorato tramite .gitignore (vedi .gitignore) e non deve mai essere incluso nei commit; se viene committato accidentalmente, ruota ogni secret esposto e rimuovi il file dalla cronologia. Consulta docs/DEVELOPER-ENVIRONMENT.md per le indicazioni sulla gestione dei file di ambiente locali e dei secret.
## 📡 OmniRoute Radar
Il valore principale dei tier gratuiti resta **~1,53 miliardi di token/mese**, calcolato sul catalogo documentato con deduplicazione dei pool riportato sopra. I crediti temporanei di registrazione dei provider possono separatamente portare il primo mese a **~2,15 miliardi**. Radar è un overlay opzionale e firmato del catalogo, pensato per chi vuole informazioni più aggiornate sulla disponibilità dei modelli gratuiti tra una release di OmniRoute e la successiva; il catalogo della community e tutte le funzionalità gratuite esistenti restano gratuiti.
I sostenitori possono ricevere il catalogo live e ulteriori opportunità offerte dai provider. Il relativo tetto separato e variabile è di **circa 3 miliardi di token/mese al massimo**, a seconda della disponibilità dei provider. Questo limite non è una garanzia: i provider possono modificare quote, requisiti, modelli o regioni in qualsiasi momento.
Radar è opt-in e usa soltanto richieste GET. Il client OmniRoute non carica prompt, traffico, configurazione dei provider, telemetria d'uso o lo stato locale di chiusura degli annunci. Dettagli sui requisiti e sul catalogo corrente su **[radar.omniroute.online/planos](https://radar.omniroute.online/planos)**.
## ✨ Novità
> Novità principali 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 Conductor nell'Agent Card e un pannello dashboard con chat vocale push-to-talk Faro. → [A2A Server](../../frameworks/A2A-SERVER.md)
- **🛂 Admission adattiva e protezione dal sovraccarico** — le richieste chat pesanti vengono messe in coda invece di ricevere 503, con lease RPM rolling atomici per connessione. → [Guida alla resilienza](../../architecture/RESILIENCE_GUIDE.md)
- **🗂️ Ordinamento canonico di `/v1/models`** — un blocco contiguo raggruppato per provider per ciascun provider (combo sempre in testa), stabile tra tutte le fonti del catalogo. → [Riferimento API](../../reference/API_REFERENCE.md)
- **🗜️ Rafforzamento della compressione** — protezione dall'inflazione attiva per impostazione predefinita, pack Caveman per DE / FR / JA + cinese (wényán), filtri RTK per Gradle e .NET. → [Compressione](../../compression/COMPRESSION_ENGINES.md)
- **💸 Costo flat-rate trasparente** — i provider in abbonamento / coding plan risultano a **$0** nelle analytics dei costi; budget, quote e routing continuano a fare stime. → [Riferimento API](../../reference/API_REFERENCE.md)
- **⚖️ Routing Quota-Share** — divide equamente la quota di un account condiviso tra chiavi in pool, in modo work-conserving così le porzioni inattive vengono prestate. → [Guida alla resilienza](../../architecture/RESILIENCE_GUIDE.md)
- **🤖 Configurazione CLI/agente con un comando** — `setup-*` configura oltre 12 strumenti di coding; `omniroute run` avvia 7 CLI (Claude Code, Codex, Aider, Goose, OpenCode, Qwen Code, Gemini CLI) senza scrivere configurazioni; `omniroute configure` è un selettore interattivo provider+modello con preferiti per contesto. → [Integrazioni CLI](../../guides/CLI-INTEGRATIONS.md)
- **🛰️ Modalità remota** — controlla un OmniRoute remoto con token scoped (`connect` / `contexts` / `tokens`) + helper OAuth `antigravity` per installazioni VPS. → [Modalità remota](../../guides/REMOTE-MODE.md)
- **🧭 Auto-routing più intelligente** — combo `auto/:`, **Fusion** (gruppo di modelli + giudice), routing task-aware, override per-request di modello / modalità / budget USD. → [Auto-Combo](../../routing/AUTO-COMBO.md)
- **🗜️ Compressione pluggable** — 12 motori componibili + Compression Studios: LLMLingua-2, Ultra a due livelli, omniglyph, fidelity gate per passaggio, GCF v3.2, editor drag-reorder. → [Compressione](../../compression/COMPRESSION_ENGINES.md)
- **🕵️ Decrittazione MITM trasparente (TPROXY)** — cattura le CLI che ignorano le variabili d'ambiente del proxy, con CA per-SNI + installer del trust store. → [MITM/TPROXY](../../security/MITM-TPROXY-DECRYPT.md)
- **💸 Telemetria dei costi ovunque** — header di costo/utilizzo `X-OmniRoute-*` su ogni endpoint, header del risparmio su cache HIT, quote di spesa USD per chiave. → [Riferimento API](../../reference/API_REFERENCE.md)
- **🧠 Memoria sotto il tuo controllo** — disattivata per impostazione predefinita, quantizzazione vettoriale int8 opt-in + decadimento tipizzato, `x-omniroute-no-memory` per-request. → [Memoria](../../frameworks/MEMORY.md)
- **🛡️ Sicurezza** — guard contro la prompt injection su ogni route LLM (suite red-team), guardrail opzionale per il masking delle credenziali (oscura API key/secret trapelati in entrambe le direzioni), web search DuckDuckGo gratuita come ultima risorsa e gate di login OIDC opzionale per la dashboard (il login con password resta sempre disponibile). → [Guardrail](../../security/GUARDRAILS.md)
- **🖼️ Nuovi endpoint** — `/v1/ocr` (Mistral OCR) e `/v1/audio/translations` (stile Whisper) completano la superficie media. → [Riferimento API](../../reference/API_REFERENCE.md)
- **🎨 Generazione immagini / video / audio** — una sola API per i media: xAI Grok Imagine e Novita AI video, ComfyUI, Freepik, Adobe Firefly, Microsoft Designer, Segmind, EdgeTTS. → [Riferimento API](../../reference/API_REFERENCE.md)
- **🌍 Deployment e operazioni** — `basePath` del reverse proxy, rilevamento automatico della lingua del browser, tracking dei dispositivi per chiave, trust MITM senza root, localizzazione zh-TW. → [Ambiente](../../reference/ENVIRONMENT.md)
- **🤝 Più provider e agenti** — Cursor Cloud Agent, Grok Build (xAI) con login browser + OAuth, scheda Ollama di prima classe, Claude Opus 5 e Sonnet 5, partnership ufficiale Kimi (Code/Web/Moonshot), Zed, Requesty, SenseNova, Yuanbao, Agnes AI… e un catalogo aggiornato di **350 provider**. → [Provider](../../reference/PROVIDER_REFERENCE.md)
- **📡 Trasparenza del routing** — ogni risposta include un header `X-OmniRoute-Decision` con strategia/provider/latenza che l'ha servita; una nuova strategia combo `cache-optimized` + il fattore `cacheAffinity` di Auto-Combo riportano le richieste ripetute alla connessione che possiede il prefisso in cache; un endpoint read-only `/v1/auto-combo/{channel}/candidates` espone il pool di candidati live di un canale `auto/*`. → [Auto-Combo](../../routing/AUTO-COMBO.md)
- **⚡ Prestazioni e infrastruttura locali** — Redis locale con un clic, deployer relay Cloudflare Workers / Deno Deploy, Bifrost e Mux come servizi embedded supervisionati. → [Servizi embedded](../../frameworks/EMBEDDED-SERVICES.md)
## 🤖 CLI e agenti di coding compatibili
> Una sola configurazione — `http://localhost:20128/v1` — e **qualsiasi** IDE o CLI AI può usare modelli gratuiti e a basso costo.
**Avvia qualsiasi CLI supportata tramite OmniRoute con un solo comando** — senza scrivere file di configurazione,
con le credenziali iniettate per singolo processo e una home temporanea isolata 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"
# Or pick provider+model interactively and write the tool's own config:
omniroute configure codex # also: claude opencode qwen aider goose cline continue kilo
```
Ogni comando rispetta il contesto remoto attivo (`omniroute connect `); `--dry-run`
mostra in anteprima env/argomenti esatti senza eseguire nulla, mentre `--api-key-env NAME` evita che i segreti
finiscano nella cronologia della shell. → [Integrazioni CLI](../../guides/CLI-INTEGRATIONS.md)
## 🌐 349 provider AI — oltre 90 gratuiti
> Il catalogo più completo tra i router open source: **349 provider**, **oltre 90 con un piano gratuito**, **56 gratuiti per sempre**.
### 🏢 Tutti i principali laboratori — tramite un solo endpoint
OpenAI
Anthropic
Gemini
xAI Grok
DeepSeek
Mistral
Qwen
Meta Llama
Groq
NVIDIA
MiniMax
Cohere
Perplexity
HuggingFace
Together
Fireworks
Cloudflare
Baidu
…e oltre 220 altri — ogni icona viene risolta in tempo reale dal catalogo provider della dashboard. 📖 [Riferimento provider](../../reference/PROVIDER_REFERENCE.md)
### 🆓 Gratuiti per sempre — $0, nessuna carta
OpenCode Zen DeepSeek V4, Nemotron 3 Nessun limite di token
Kilo Code Auto-router, Tencent Hy3 Gratuito per sempre
Requesty GPT-OSS 120B, Nemotron Gratuito per sempre
SiliconFlow DeepSeek V3.2 / R1 Piano gratuito
Z.AI GLM GLM-4.7 / 4.5-Flash Gratuito per sempre
Baidu ERNIE ERNIE 4.0 Gratuito per sempre
Qoder AI Qwen3-Max, Kimi-K2 GRATUITO senza limiti
Pollinations GPT, Llama, Claude Nessuna chiave necessaria
Cloudflare AI 50+ modelli 10K neuroni/giorno
NVIDIA NIM GLM, MiniMax ~40 RPM gratuiti
Cerebras GLM 4.7, GPT-OSS 1M token/giorno
OpenRouter modelli :free +$10 → RPM più elevati
📖 Catalogo completo leggibile dalle macchine → [`docs/reference/PROVIDER_REFERENCE.md`](../../reference/PROVIDER_REFERENCE.md)
## 🖥️ Dove gira OmniRoute — ovunque
> La stessa app, sulla tua macchina, secondo le tue regole. Da un'installazione npm globale fino al **tuo telefono** tramite Termux.
Piattaforma
Installazione
Punti di forza
📦 npm (globale)
npm install -g omniroute
Un comando, qualsiasi OS
🐳 Docker
docker run … diegosouzapw/omniroute
Multi-arch AMD64 + ARM64
🖥️ Desktop (Electron)
npm run electron:build
Finestra nativa + system tray — Windows / macOS / Linux
💪 ARM
nativo arm64
Raspberry Pi, server ARM, Apple Silicon
📱 Android (Termux)
pkg install nodejs && npx -y omniroute
Gira sul tuo telefono, 24/7, senza root
📲 PWA
"Aggiungi alla schermata Home"
Schermo intero, offline, installabile dal browser
🧩 Plugin OpenCode
@omniroute/opencode-provider
Integrazione nativa con OpenCode
🤖 VS Code Copilot Chat
installa l'estensione OmniCopilot
Tutti i modelli OmniRoute nel selettore nativo di Copilot Chat — Stable e Insiders
### 🧩 Novità: OmniRoute dentro il Copilot Chat nativo di VS Code
> Nessuna nuova barra laterale, nessuna nuova UI di chat — ogni modello servito da OmniRoute compare direttamente nel
> **selettore modelli di Copilot Chat che usi già**. Da VS Code 1.122, i modelli dei provider funzionano
> senza accesso GitHub né abbonamento Copilot — modalità agent, tool calling e vision, gratuitamente.
Installa l'estensione **[OmniCopilot](https://github.com/diegosouzapw/OmniCopilot)**, collegala
al tuo server OmniRoute (predefinito `localhost:20128`), poi apri Copilot Chat → selettore modelli
→ **Manage Models…** → **OmniRoute**.
Dall'editor: apri la vista **Extensions**, cerca **"OmniRoute"**, fai clic su **Install**
— funziona allo stesso modo su entrambi gli store. Sorgenti, issue e runbook di pubblicazione sono su
[diegosouzapw/OmniCopilot](https://github.com/diegosouzapw/OmniCopilot).
📖 [Guida VS Code Copilot Chat](../../guides/VSCODE-COPILOT.md) — configurazione, contenuto del selettore, dashboard in una scheda, risoluzione dei problemi
> Oltre al server, OmniRoute è una **console completa da riga di comando** con **oltre 80 comandi**, più protocolli agent aperti che permettono a un agent AI di gestirlo **autonomamente**.
### ⌨️ Una vera CLI (non solo `start`)
```bash
omniroute # serve gateway + dashboard (port 20128)
omniroute chat # interactive TUI chat client (slash: /model /combo /skill /memory)
omniroute setup # guided first-run wizard
omniroute doctor # diagnose providers, ports, native deps
```
### 🛰️ Modalità remota — esegui qui la CLI, OmniRoute su un VPS
OmniRoute gira su un server? Gestiscilo dal laptop con la **stessa CLI**. Accedi una volta
con un token di accesso con scope; da quel momento ogni comando punta all'istanza remota.
```bash
omniroute connect 192.168.0.15 # password → scoped token, saved as a context
omniroute models list # ← runs against the REMOTE server
omniroute configure codex # ← picks a remote model, writes a local Codex profile
omniroute tokens create --name ci --scope read # mint narrower tokens for other machines
omniroute contexts use default # ← switch back to the local server
```
I token hanno scope `read` / `write` / `admin`; le route che avviano processi restano limitate al loopback.
📖 [Modalità remota](../../guides/REMOTE-MODE.md)
### 🤝 Collega un agent — e controllerà OmniRoute stesso
Esponi OmniRoute tramite **MCP**, **A2A**, una **REST API**, **webhook** o una **CLI remota** — qualsiasi agent compatibile (o il tuo codice) ottiene accesso al gateway: routing, provider, combo, cache, compressione, memoria — in autonomia. Gli endpoint HTTP qui sotto sono serviti su `http://localhost:20128`.
Interfaccia
Endpoint / comando
A cosa serve
🧰 MCP (stdio)
omniroute --mcp
Collegamento a Claude Desktop, Cursor e qualsiasi client MCP
Compatibile con OpenAI — chat, embedding, immagini, audio, OCR
🔔 Webhook
/api/webhooks
Invia eventi (utilizzo, quota, errori, routing) al tuo URL
🛰️ CLI remota
omniroute connect
Gestisci un'istanza remota con token di accesso con scope
```bash
# Give Claude Code the full OmniRoute toolset over MCP:
claude mcp add-server omniroute --type http --url http://localhost:20128/api/mcp/stream
```
📖 [MCP Server](../../frameworks/MCP-SERVER.md) · [A2A Server](../../frameworks/A2A-SERVER.md) · [Protocolli agent](../../frameworks/AGENT_PROTOCOLS_GUIDE.md)
## 🗜️ Risparmia il 15–95% dei token — automaticamente
### 📖 Come funziona — pipeline, architettura e calcolo del risparmio
La combinazione in cascata predefinita esegue `RTK → Caveman`. Quando entrambi intervengono sullo stesso payload di tool/contesto, i risparmi si compongono:
```txt
combined = 1 − (1 − RTK) × (1 − Caveman_input)
average = 1 − (1 − 0.80) × (1 − 0.46) = 89.2%
range = 78.4 – 94.6%
```
Blocchi di codice, URL, JSON e dati strutturati sono **sempre protetti** dal motore di preservazione.
> **Perché usare molti token quando ne bastano pochi?** Ogni richiesta attraversa la pipeline di compressione di OmniRoute **in modo trasparente** — senza modifiche al client. Ora è una **stack di 12 motori componibili** eseguiti in ordine e combinabili per ciascun routing combo — basati anche su 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 stack di 12 motori
I motori vengono eseguiti nell'ordine della pipeline; ciascuno può essere attivato/disattivato e configurato indipendentemente per combo:
#
Motore
Cosa fa
1
Session-Dedup
Elimina contenuti ripetuti tra i turni (content-addressed, cross-turn)
2
CCR
Archivia blocchi grandi dietro marker di recupero, caricati su richiesta
3
Lite
Riduzione di spazi e URL immagine (baseline a bassa latenza)
4
RTK
Filtro intelligente dei risultati dei tool, deduplica e troncamento (consapevole del comando)
Compattazione tabellare lossless di array JSON (~30%) tramite codec GCF incluso nel progetto
7
Relevance
Valutazione estrattiva delle frasi rispetto all'ultima richiesta dell'utente
8
Caveman
Compressione della prosa basata su regole (~65–75% sull'output)
9
Aggressive
Riepilogo + invecchiamento progressivo dei turni precedenti
10
LLMLingua-2
Pruning semantico ML tramite MobileBERT ONNX — code-safe, asincrono
11
Ultra
Pruning euristico dei token con livello opzionale basato su piccolo modello (SLM)
12
OmniGlyph
Codifica sperimentale del contesto come immagine per Claude Fable 5 misurato sul protocollo Anthropic diretto; i transformer GPT 5.6 restano fail-closed in attesa di ricevute del provider. Quattro profili di compressione (aggressive predefinito, balanced, coding-safe, passthrough) (il più aggressivo; opt-in)
Blocchi di codice, URL e dati strutturati sono **sempre preservati** byte per byte. I **preset con un clic** combinano i motori:
Modalità
Risparmio
Ideale per
🪶 Lite
~15%
Impostazione predefinita sicura sempre attiva
🪨 Standard (Caveman)
~30%
Coding quotidiano
⚡ Aggressive
~50%
Sessioni lunghe con molti tool
🔥 Ultra
~75%
Massimo risparmio
🧰 RTK
60–90%
Output di shell/test/build/git
🔗 Stacked (RTK → Caveman)
78–95%
Prompt misti + log dei tool
**Esempio reale — modalità Standard:**
> **Prima (69 token):** _"The reason your React component is re-rendering is likely because you're creating a new object reference on each render cycle. When you pass an inline object as a prop, React's shallow comparison sees it as a different object every time, which triggers a re-render. I would recommend using useMemo to memoize the object."_
>
> **Dopo (19 token):** _"New object ref each render. Inline object prop = new ref = re-render. Wrap in useMemo."_
>
> **Stessa risposta. 72% di token in meno. Nessuna perdita di accuratezza.** ✅
**Esempio PT-BR — modalità [Troglodita](https://github.com/leninejunior/troglodita):**
> **Antes (42 tokens):** _"O problema é que o componente está re-renderizando porque uma nova referência de objeto está sendo criada em cada ciclo de renderização. Eu recomendaria usar useMemo."_
>
> **Depois (12 tokens):** _"Re-render: ref nova cada ciclo (objeto inline recriado). Usar `useMemo`."_
>
> **Mesma resposta. ~70% menos tokens. Precisão técnica intacta.** ✅
### 🎚️ Oltre i motori — output style, regolazione adattiva e controllo per richiesta
I 12 motori sopra riducono ciò che entra **in input**. Altri tre livelli definiscono **come**, **quando** e cosa esce **in output**:
- **🪄 Output Styles** _(controllo dell'output)_ — iniettano istruzioni deterministiche e cache-safe per modellare la risposta; sono combinabili, ciascuno con intensità `lite` / `full` / `ultra`. Aggiungere uno style richiede una sola voce nel registry:
- **Terse prose** — elimina riempitivi / articoli / esitazioni; mantiene esatto il contenuto tecnico.
- **Less code** — YAGNI da "senior dev pigro": modifica minima funzionante, nessuna infrastruttura non richiesta.
- **Terse CJK (文言)** — stile cinese classico ultra-conciso (limitato alla locale `zh`).
- **🎯 Adaptive context-budget** _(la regolazione)_ — invece di una singola soglia token on/off, aumenta gradualmente l'uso dei motori più economici e lossless solo quanto necessario per **rientrare nella context window del modello**. Policy: `reserve-output` (predefinita, model-aware) · `percentage` · `absolute`. Modalità: `floor` (garantisce il fit) · `replace-autotrigger` (vince la tua scelta esplicita) · `off` (soglia legacy).
- **🎛️ Dove viene decisa la compressione** _(precedenza, alta → bassa)_ — header per richiesta `x-omniroute-compression` › override del routing combo › profilo nominato attivo › adaptive / auto-trigger › impostazione predefinita del pannello › off. Il piano applicato viene restituito nell'header di risposta `X-OmniRoute-Compression: ; source=`.
Puoi attivare l'auto-trigger tramite soglia token, abilitare la regolazione adattiva, fissare un profilo nominato, impostare una scelta una tantum per richiesta oppure assegnare una pipeline a ciascun routing combo — scegli ciò che si adatta al carico di lavoro. Un **eval harness** offline opt-in (`npm run eval:compression`) misura fedeltà e risparmio su un corpus fissato prima di promuovere una modifica.
📖 [`COMPRESSION_GUIDE.md`](../../compression/COMPRESSION_GUIDE.md) · [`RTK_COMPRESSION.md`](../../compression/RTK_COMPRESSION.md) · [`COMPRESSION_ENGINES.md`](../../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](../../guides/TROUBLESHOOTING.md#npm-install-warnings-eresolve--peer--deprecated).
Dashboard su `http://localhost:20128` · API su `http://localhost:20128/v1`.
**2) Collega un provider GRATUITO (senza registrazione)**
Dashboard → **Providers** → collega **Kiro AI** (Claude gratuito, ~50 crediti/mese per account) oppure **OpenCode Free** (nessuna autenticazione) → fatto.
**3) Configura il tuo strumento di coding**
```txt
Base URL: http://localhost:20128/v1
API Key: [copy from Dashboard → Endpoints]
Model: auto (zero-config smart routing — or any provider/model)
```
**4) Verifica che funzioni**
```bash
curl http://localhost:20128/v1/models -H "Authorization: Bearer YOUR_KEY"
```
Dovresti vedere elencati i modelli collegati. 🎉 Tutto qui — inizia a programmare: OmniRoute instrada automaticamente le richieste ed esegue il fallback quando serve.
Se il tuo client non può inviare header personalizzati, OmniRoute espone anche alias di compatibilità con token incorporato:
```txt
OpenAI catalog: http://localhost:20128/vscode/YOUR_KEY/
OpenAI models: http://localhost:20128/vscode/YOUR_KEY/models
OpenAI chat: http://localhost:20128/vscode/YOUR_KEY/chat/completions
OpenAI responses: http://localhost:20128/vscode/YOUR_KEY/responses
Ollama chat: http://localhost:20128/vscode/YOUR_KEY/api/chat
Ollama tags: http://localhost:20128/vscode/YOUR_KEY/api/tags
```
Usali solo con client che non possono aggiungere `Authorization: Bearer ...`. L'autenticazione tramite header resta la modalità consigliata.
## 📦 Altri metodi di installazione — Docker, sorgente, 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ù alta. Non segue il branch git `main`. Per GitOps, fissa `:X.Y.Z`. Vedi [Canali di release Docker](../../guides/DOCKER_GUIDE.md#release-channels). L'immagine imposta **`OMNIROUTE_MEMORY_MB=1024`**. È sufficiente per la dashboard e una chat leggera. I **coding agent** (`POST /v1/responses` da Claude Code, Codex, Grok, …) richiedono un heap V8 molto più grande, altrimenti il processo va in `FATAL ERROR` a ~12 GiB con due contesti lunghi sovrapposti. Dimensiona il container oltre l'heap (i buffer nativi si trovano fuori da V8):
| Carico di lavoro | Heap (`-e OMNIROUTE_MEMORY_MB`) | Container (`--memory`) |
| ----------------------------------- | ------------------------------- | ---------------------- |
| Dashboard / chat leggera | `1024` (predefinito immagine) | ≥2 g |
| Un coding agent | `8192` | ≥10 g |
| Due `/v1/responses` lunghe simultanee | `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](../../guides/DOCKER_GUIDE.md#runtime-ram-for-coding-agents).
> **Canale Docker pre-release:** `diegosouzapw/omniroute:next` e
> `diegosouzapw/omniroute:next-web` seguono l'attuale branch `release/v*` predefinito.
> Questi tag mutabili sono destinati esclusivamente al test di fix non ancora rilasciati e
> **non sono supportati in produzione**. Vedi
> [Canali di release Docker](../../guides/DOCKER_GUIDE.md#release-channels).
**🥟 Bun**
Sono supportati `bun install` standard e l'installazione globale (`bun install -g omniroute`) tramite rilevamento del runtime Bun:
- **`bun:sqlite` integrato**: OmniRoute usa il driver integrato `bun:sqlite` quando gira con Bun, con fallback a `better-sqlite3` su Node.js o a `sql.js`.
- **Selezione automatica del bundler Webpack**: sviluppo (`bun run dev`) e build di produzione (`bun run build`) rilevano automaticamente Bun e disabilitano Turbopack a favore di Webpack per evitare incompatibilità dei binding V8 nativi.
- **Dockerfile Bun dedicato**: `Dockerfile.bun` multi-stage per deployment di produzione nativi Bun (`docker build -f Dockerfile.bun -t omniroute:bun .`).
```bash
# Install and run with Bun
bun install
bun run dev
```
**🛠️ Da sorgente**
```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
# Using Nix flakes
nix develop
npm run dev
# Or using devbox
devbox run npm run dev
```
📖 [Guida Docker](../../guides/DOCKER_GUIDE.md) — profili Compose, Caddy HTTPS, tunnel Cloudflare.
**🦭 Podman**
```bash
# 1. Prepare the bind-mounted data directory
mkdir -p data
# 2. Linux + local rootless Podman only (never a remote Podman Machine client):
podman unshare chown 1000:1000 ./data
# 3. Set the runtime hint, build the local Compose image, and start
echo "CONTAINER_HOST=podman" >> .env
podman compose --profile base up -d --build
```
Su macOS o Windows, Podman usa una Podman Machine remota: salta `podman unshare` e
segui le [indicazioni sui permessi della directory dati specifiche per topologia](../../../contrib/podman/README.md#data-directory-permissions-by-topology).
📖 [Guida Podman](../../../contrib/podman/README.md) — build Compose, Podman Machine e
configurazione Quadlet Linux/systemd.
**⚡ Installazione più rapida / leggera (salta la build nativa)**
Il motore SQLite nativo (`better-sqlite3`) è una dipendenza **opzionale**, quindi un'installazione
globale non si blocca mai per compilare da sorgente: usa un binario precompilato quando disponibile
per la tua piattaforma/Node e altrimenti passa in modo trasparente a un motore pure-JS
(`node:sqlite` su Node 22+, altrimenti `sql.js` WASM incluso) — senza richiedere strumenti di build.
Per saltare completamente il warm-up nativo post-installazione (CI, sistemi headless o macchine lente):
```bash
OMNIROUTE_SKIP_POSTINSTALL=1 npm install -g omniroute # CI=1 also skips it
```
Per installazioni più rapide preferisci **pnpm** (store content-addressed + hard link — vedi sopra).
Per un runtime headless senza dashboard usa il profilo Docker `base` (sopra) oppure la
[guida Termux](../../guides/TERMUX_GUIDE.md). CLI e dashboard web sono servite dallo
stesso processo su una sola porta, quindi oggi non esiste un pacchetto separato solo CLI.
# 🎬 OmniRoute in azione
## 📹 Guide video
Dati di copertura social al 2026-08-17 · YT: 741 | TT: 137 | IG: 124 · Aggiornamento (giorni): YT 0 · TT 14 · IG 15
Strategia di copertura dei test e suite da oltre 25.000 test
# ⭐ Principali contributor
> OmniRoute è plasmato da una community open source appassionata. Queste persone hanno apportato contributi eccezionali che incidono direttamente su qualità, stabilità e diffusione del progetto. **Grazie.**
oyi77 🥇 213 commit • +114K righe Motore analytics, aggregazioni SQL, marketplace proxy, copertura test
R.D. & Randi 🥈 108 commit • +38K righe Pagina Endpoints, integrazioni tunnel, workflow Docker, stato A2A, UI compressione
Chris Staley 🥉 70 commit • +1.8K righe Hardening stream SSE, Responses API, paginazione Gemini, fix di regressione test
zenobit 🏅 62 commit • +22K righe Pipeline CI/CD, i18n per 33 lingue, pacchetto Void Linux, fix di piattaforma
Jan Leon 🏅 58 commit • +22K righe Routing reasoning-effort, controlli proxy, visibilità quota, compressione Live Zone
Benson K B 🏅 28 commit • +9.2K righe App desktop Electron, auto-updater, workflow build release, CI multipiattaforma
Hernan J. Ardila 🏅 25 commit • +174K righe Combo zero-latency, auto-routing vision bridge, context-length catalogo, hint resilienza 429
> 🙏 Funzionalità, bug fix e miglioramenti infrastrutturali di questi contributor 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 conta. L'open source è costruito da persone come loro.
---
## 💖 Sponsor
Un grazie di cuore alle persone che finanziano OmniRoute di tasca propria — ogni contributo aiuta a mantenere il progetto gratuito, indipendente e in evoluzione.
… e altri che preferiscono restare anonimi 💛💖 Diventa sponsor → — ogni contributo mantiene OmniRoute gratuito e indipendente.
## 👥 Oltre 320 contributor
[](https://github.com/diegosouzapw/OmniRoute/graphs/contributors)
### Come contribuire
1. Fai un fork del repository
2. Crea il branch dalla punta della `release/vX.Y.Z` **attiva** (non da `main`) — vedi [Modello di branching e release](../../ops/BRANCHING_MODEL.md)
3. Crea il tuo feature branch (`git checkout -b feat/amazing-feature`)
4. Esegui il commit delle modifiche (`git commit -m 'feat: add amazing feature'`)
5. Esegui il push del branch (`git push origin feat/amazing-feature`)
6. Apri una Pull Request con **base = quel branch `release/vX.Y.Z`**
Vedi [CONTRIBUTING.md](../../../CONTRIBUTING.md) per le linee guida complete.
### Pubblicare una nuova versione
```bash
# Create a release — npm publish happens automatically
gh release create v3.8.2 --title "v3.8.2" --generate-notes
```
## 📊 Stelle
## 🌍 StarMapper
## 🙏 Ringraziamenti
OmniRoute è costruito sulle spalle di giganti. È nato come fork di **[9router](https://github.com/decolua/9router)** e come port TypeScript del progetto Go **[CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI)** — da lì, ogni sottosistema qui sotto è stato ispirato da un progetto open source arrivato prima. Ognuno ha influenzato una parte concreta di OmniRoute. Questo è il nostro ringraziamento a tutti loro. 🙏
> ⭐ conteggio stelle a luglio 2026 — vai a lasciare una stella a questi progetti.
### 🧬 Origini e gateway
Il gateway AI il cui dataset pubblico dei prezzi alimenta la sincronizzazione del cost tracking e il cui modello di normalizzazione dei provider ha influenzato il nostro routing.
Il progetto virale "why use many token when few token do trick" — la sua filosofia caveman-speak alimenta la nostra modalità di compressione standard e oltre 30 regole di rimozione riempitivi/condensazione.
Compressione ad alte prestazioni dell'output dei comandi — ha ispirato il nostro motore RTK, la DSL per filtri JSON, il recupero dell'output grezzo e la pipeline stacked RTK → Caveman.
Compressione token PT-BR — alimenta il nostro language pack pt-BR: riduzione dei pleonasmi e rimozione dei riempitivi ottimizzate per la grammatica portoghese brasiliana.
La skill virale da "lazy senior dev" basata su YAGNI — ha ispirato il nostro Output Style less-code: orientamento alla modifica minima funzionante che riduce il codice _generato_ (l'equivalente sull'asse output della prosa concisa di Caveman).
### 🧩 Formati compatti, ricerca sui token e tooling code-aware
Ha inizialmente ispirato la nostra fase di compattazione tabellare; ora il suo encoder generic-profile lossless e senza dipendenze è incluso direttamente come codec Headroom (MIT, con marcatura SPDX), insieme ai successivi fix di correttezza per dominio numerico e discrepanze nei conteggi.
Compattazione dell'output Bash + profili MCP — ha ispirato la nostra disciplina di bail-out nella compressione e la riduzione del manifest dei tool MCP.
Compressione dell'output consapevole del contenuto e del tipo di file, con bail-out in caso di errore — ha validato il nostro dispatch per tipo e lo skip basato sul guadagno minimo.
JSON colonnare in Rust + retrieve content-addressed + deduplica cross-message — ha validato il design dei nostri motori headroom/ccr/session-dedup e l'invariante cache-stable "la forma compressa è indipendente dalla posizione".
Toolkit per la TypeScript Compiler API — ha ispirato la nostra rimozione dei commenti basata su parser, che preserva stringhe, template e literal regex.
Intercettazione/analisi MITM del traffico coding-assistant ↔ LLM — il nostro Traffic Inspector adatta il suo merge SSE, la normalizzazione delle conversazioni, il passthrough degli host e il masking dei segreti (MIT).
Routing proxy trasparente per processo — ha ispirato il teardown MITM crash-safe, gli idle timeout dei socket, l'attribuzione dei processi tramite /proc e la cattura TPROXY.
Una raccolta curata di librerie secure-by-default che guida le nostre scelte di sicurezza (Helmet.js, DOMPurify, ssrf-req-filter, safe-regex, Google Tink).
### 🧭 Strumenti complementari
Progetto
⭐
Come ha ispirato OmniRoute
## 📄 Licenza
Licenza MIT - vedi [LICENSE](../../../LICENSE) per i dettagli.
---
**[⬆ Torna all'inizio](#-omniroute)** · Realizzato con ❤️ per la community AI open source.
OmniRoute v3.8.49 · Node ≥22.22.2 · Licenza MIT · omniroute.online