Changez une seule base_url dans Claude Code, Cursor ou votre propre Agent et basculez entre Claude, GPT, Gemini, DeepSeek, Kimi et des centaines d'autres modèles via une seule API compatible OpenAI—ce n'est pas exclusif à OpenRouter. OmniRoute compte parmi les passerelles IA open source à la croissance la plus rapide sur GitHub en 2026 : licence MIT, auto-hébergée, catalogue de 290+ fournisseurs et 500+ modèles (90+ avec offre gratuite). Ce guide couvre le concept, le premier appel API réussi, le branchement Claude Code et une checklist sécurité production.
Ce qu'est OmniRoute et ce qu'il résout
En bref : OmniRoute est un reverse proxy LLM sur votre propre machine. Il expose en amont des /v1/chat/completions unifiés (plus Anthropic /v1/messages, Gemini /v1beta/models, etc.) et se connecte en aval à vos clés API fournisseurs, abonnements OAuth ou pools gratuits.
Cas d'usage typiques
- Repli multi-clés quand un abonnement Claude atteint ses limites
- Point d'entrée Agent unique pour Claude Code, Cursor et Cline avec journaux d'audit partagés
- Les données restent en interne—aucun proxy tiers dans le chemin de requête
- Budgets & quotas—voir notre guide de routage budgétaire Auto Combo
OmniRoute vs OpenRouter vs LiteLLM
| Dimension | OmniRoute | OpenRouter | LiteLLM Proxy |
|---|---|---|---|
| Hébergement | Auto-hébergé | SaaS cloud | Auto-hébergé (Python) |
| Facturation | Tarifs fournisseurs + votre infra | Tokens prépayés + ~5,5 % de recharge | Tarifs fournisseurs + votre infra |
| Catalogue | 290+ fournisseurs / 500+ modèles | 300+ modèles hébergés | Ce que vous configurez |
| Idéal pour | Passerelle locale, abonnements mixtes, budgets | Expérimentation rapide, sans ops | Proxy Python minimal |
Pour les tableaux de prix par token, lisez notre comparatif de tarifs OpenRouter. Pour les budgets de requêtes Agent sur OmniRoute, voir routage budgétaire Auto Combo.
Installation & démarrage (Docker / npm)
Docker (recommandé)
docker run -d --name omniroute \
-p 20128:20128 \
-v omniroute-data:/data \
diegosouzapw/omniroute
Ouvrez http://localhost:20128 → /dashboard.
npm (essai local rapide)
npm install -g omniroute
omniroute
Astuce Cloud Mac
Exécutez OmniRoute sur un Mac cloud Zilmac pour une IP stable et un accès SSH—associez la passerelle LLM à xcodebuild sur le même hôte ou un hôte voisin.
Dashboard en quatre étapes
- Créer une clé API—tous les clients utilisent
Authorization: Bearer <key>. - Connecter les fournisseurs—OAuth, coller des clés API ou activer des pools no-auth gratuits (essai uniquement).
- Orienter les clients vers
http://<host>:20128/v1. - Surveiller l'usage—les routes de gestion sans clé doivent renvoyer
401.
Lister tous les modèles : GET /v1/models
export OMNI_KEY="your-omniroute-api-key"
curl -s http://localhost:20128/v1/models \
-H "Authorization: Bearer $OMNI_KEY" | jq '.data | length'
Premier appel API (curl / Python / Node)
Utilisez des identifiants provider/model. Un préfixe manquant peut être ajouté automatiquement ; les incohérences renvoient 400.
curl
curl -s http://localhost:20128/v1/chat/completions \
-H "Authorization: Bearer $OMNI_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"anthropic/claude-sonnet-4-6","messages":[{"role":"user","content":"Explain OmniRoute in one sentence"}],"max_tokens":256}'
Python
from openai import OpenAI
client = OpenAI(api_key="your-key", base_url="http://localhost:20128/v1")
print(client.chat.completions.create(
model="openai/gpt-5.4",
messages=[{"role": "user", "content": "Hello"}],
).choices[0].message.content)
Streaming
curl -N http://localhost:20128/v1/chat/completions \
-H "Authorization: Bearer $OMNI_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"deepseek/deepseek-chat","messages":[{"role":"user","content":"Count to 5"}],"stream":true}'
Anthropic Messages
Les clients Anthropic natifs peuvent utiliser POST /v1/messages. Liste complète des points de terminaison : API Reference.
Alias d'intention auto/* & repli
Des alias comme auto/best-coding choisissent un modèle sain sous quota—aucun changement client lors d'un changement de fournisseur. En production, utilisez le routage budgétaire pour éviter un repli involontaire vers l'offre gratuite.
curl -s http://localhost:20128/v1/chat/completions \
-H "Authorization: Bearer $OMNI_KEY" -H "Content-Type: application/json" \
-d '{"model":"auto/best-coding","messages":[{"role":"user","content":"quicksort"}]}'
Claude Code, Cursor & Copilot
| Client | Configuration | Notes |
|---|---|---|
| Claude Code | ANTHROPIC_BASE_URL=http://host:20128 | OAuth ou routage API |
| Cursor | Remplacer OpenAI Base URL → /v1 | Clé OmniRoute comme clé API |
| Cline / Continue | Fournisseur compatible OpenAI | Essayer auto/best-coding |
Checklist production & sécurité
- Mettre à jour vers la dernière version (v3.8.50+) ; supprimer les mots de passe par défaut ;
- Ne jamais exposer le port
20128sur Internet public sans TLS ; - Clés API par membre, limites de tokens, listes blanches IP ;
- Pools gratuits en repli uniquement ; sauvegarder le volume
/data.
FAQ
400 model not found ?
Vérifiez l'orthographe provider/model et la connexion fournisseur dans le dashboard. Essayez auto/best-free pour valider la chaîne.
Ollama en local ?
Oui—POST /v1/api/chat intègre les modèles locaux dans la même table de routage.
Utiliser avec OpenRouter ?
Oui—OmniRoute peut traiter OpenRouter comme fournisseur aval pour une configuration hybride.
Passerelle pour les modèles, Mac cloud pour les builds
OmniRoute choisit le LLM ; les pipelines iOS/macOS ont toujours besoin de Xcode. Le Mac cloud Zilmac gère signature, notarisation et TestFlight aux côtés des workflows Agent.