1,104 mirrors rewritten over five passes of run-translation on the 22-source core set: the 14 sources edited since their translation, the 322 mirrors that were still English copies, and the frontmatter the old extractor leaked into the newer locales' bodies. The pipeline now caches per-`## `-section hashes and retranslates only changed sections, never reuses a section that is still English, rebuilds English-copy / leaked mirrors even when the source is unchanged, merges the state on save (parallel runs), and the drift gate (scoped to the core set) is blocking. Final audit: 0 stale, 0 English copies, 0 leaked frontmatter across 1,430 core mirrors. ⚠️ base-red inherited: #12732
README (Français)
🌐 Languages: 🇺🇸 English · 🇪🇹 am · 🇸🇦 ar · 🇦🇿 az · 🇧🇬 bg · 🇧🇩 bn · 🇨🇿 cs · 🇩🇰 da · 🇩🇪 de · 🇬🇷 el · 🇪🇸 es · 🇪🇪 et · 🇮🇷 fa · 🇫🇮 fi · 🇮🇪 ga · 🇮🇳 gu · 🇳🇬 ha · 🇮🇱 he · 🇮🇳 hi · 🇭🇷 hr · 🇭🇺 hu · 🇦🇲 hy · 🇮🇩 id · 🇳🇬 ig · 🇮🇹 it · 🇯🇵 ja · 🇬🇪 ka · 🇰🇭 km · 🇮🇳 kn · 🇰🇷 ko · 🇱🇹 lt · 🇱🇻 lv · 🇮🇳 ml · 🇮🇳 mr · 🇲🇾 ms · 🇲🇹 mt · 🇲🇲 my · 🇳🇵 ne · 🇳🇱 nl · 🇳🇴 no · 🇮🇳 or · 🇮🇳 pa · 🇵🇭 phi · 🇵🇱 pl · 🇵🇹 pt · 🇧🇷 pt-BR · 🇷🇴 ro · 🇷🇺 ru · 🇱🇰 si · 🇸🇰 sk · 🇸🇮 sl · 🇷🇸 sr · 🇸🇪 sv · 🇰🇪 sw · 🇮🇳 ta · 🇮🇳 te · 🇹🇭 th · 🇹🇷 tr · 🇺🇦 uk-UA · 🇵🇰 ur · 🇺🇿 uz · 🇻🇳 vi · 🇳🇬 yo · 🇨🇳 zh-CN · 🇹🇼 zh-TW
💰 ~1,47 Md de jetons gratuits / mois
Cumuler manuellement les offres gratuites est pénible — des dizaines de SDK, des dizaines de limites de débit et aucune idée de ce dont vous disposez réellement. OmniRoute répertorie 452 entrées d’offres gratuites réparties sur 34 clés de pools récurrents et calcule le total de jetons à partir des 16 pools disposant d’un budget mensuel positif publié, auxquels s’ajoutent cinq plafonds Groq par modèle, avec déduplication des pools partagés. Les quotas qui ne deviennent accessibles qu’après une vérification d’identité régionale (actuellement : ModelScope) sont présentés séparément, soit +~6 M derrière une vérification d’identité régionale, et ne sont jamais inclus dans le total principal. Le résultat reste visible dans le tableau de bord (
/dashboard/free-tiers).
Résumé animé de la page
/dashboard/free-tiersen direct. Méthodologie complète (déduplication des pools, niveaux de crédits, conditions des fournisseurs) : docs/reference/FREE_TIERS.md.Ces chiffres sont réaudités toutes les deux semaines à partir du catalogue en direct et évoluent dans les deux sens — si un fournisseur met fin à une offre gratuite, le chiffre baisse ; si une nouvelle offre apparaît, il augmente. Nous publions ce que le catalogue calcule réellement, jamais un scénario idéal arrondi à la hausse.
⭐ Ajoutez une étoile au dépôt si OMNIROUTE vous a aidé à économiser de l’argent et à faciliter votre travail.
💬 Rejoignez la communauté
👋 Suivez le mainteneur — découvrez en premier les nouveaux fournisseurs, les versions et les astuces :
Questions, suggestions de fournisseurs, feuille de route et assistance → Discord · Telegram · WhatsApp 🌍 Mondial / 🇧🇷 Brésil / Portail
📈 La passerelle continue de s’agrandir
| v3.8.49 | v3.8.50 | v3.8.51+ |
|
|---|---|---|---|
| 🌐 Fournisseurs | 290 | 352 | davantage à venir |
| 🧠 ID uniques de modèles de chat | 1185 | 1312 | — |
| 🖼️ Passerelle de modalités | — | 🆕 vision + audio + vidéo | — |
| 📡 Catalogue gratuit Radar | — | 🆕 sur inscription | — |
| ⚖️ Ordonnancement tenant compte des quotas | — | 🆕 Quota-Share | — |
| 📊 Télémétrie des quotas | — | 🆕 en direct | — |
→ Feuille de route — en route vers v3.9.0 LTS
🧩 Disponible
| 🚀 Démarrer | 🚀 Démarrage rapide | 📦 Installer | 🆓 Sans configuration |
| 💡 Découvrir | 💥 La promesse | 🤔 Pourquoi OmniRoute | 🏆 Ce qui le distingue |
| ⚙️ Fonctionnalités | 🎯 Combos | 🌐 Fournisseurs | 🔌 CLI et MCP |
| 🗜️ Compression | 🖥️ Où l’exécuter | 🔒 Privé | |
| 👀 Découvrir | 🎬 En action | ✨ Nouveautés | 🤖 CLI compatibles |
| 💚 Soutenir | 💚 Soutenir / Faire un don | 💬 Communauté | 💖 Sponsors |
| 📦 Projet | 🛠️ Pile technologique | 📖 Documentation | 👥 Contributeurs |
🆓 Fonctionne dès l’installation — aucune clé, aucune configuration
# Nouvelle installation, sans identifiants — `auto` fonctionne déjà :
curl http://localhost:20128/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{"model":"auto","messages":[{"role":"user","content":"Hello!"}]}'
Vous préférez un backend gratuit spécifique ? Appelez directement oc/… (OpenCode Free). Passez ensuite à auto et laissez OmniRoute choisir.
📦 Scripts de démarrage rapide à copier-coller pour Python, Node.js, PHP et cURL → examples/quickstart/
💥 La promesse
🤔 Pourquoi OmniRoute ?
🤝 Soutenu par nos amis de l’Open Source
Vous souhaitez nous rejoindre en tant qu’ami de l’Open Source ? Voici les entreprises qui soutiennent l’Open Source et contribuent à faire avancer OmniRoute — et nous indiquons publiquement à quoi sert chaque token qu’elles nous offrent. Contactez-nous : diegosouza.pw@outlook.com
|
Kimi Moonshot AI |
Merci à Kimi (Moonshot AI), notre ami fondateur de l’Open Source, de soutenir ce projet ! Kimi est le laboratoire d’IA à l’origine des familles de modèles à poids ouverts K2 et K3 — Kimi K3 offre une fenêtre de contexte de 1 million de tokens, une prise en charge native de la vision et des capacités de programmation de pointe pour une fraction du prix des modèles fermés, tout en fonctionnant immédiatement avec Claude Code, Codex et tous les outils de programmation pris en charge par OmniRoute.
Ce que permet le soutien de Kimi : les crédits API de Kimi alimentent le pipeline de publication validé par IA d’OmniRoute — l’étape de validation des fusions propulsée par Kimi K3, qui examine chaque pull request avant sa publication — ainsi que le développement quotidien de fonctionnalités. La prise en charge de premier ordre de Kimi est disponible via les deux canaux : l’API Kimi directe ( kimi-k3) et l’offre de programmation Kimi Code (OAuth et clé API). OmniRoute est également le premier projet open source brésilien à rejoindre le programme de soutien de Kimi. Obtenez une clé API Kimi avec 15 % de crédits supplémentaires →
|
|
Cheaper Inference cheaperinference.com |
Merci à Cheaper Inference, un ami de l’Open Source d’OmniRoute, de soutenir ce projet ! Cheaper Inference est une passerelle classée par coût qui revend l’accès à 42 modèles de pointe — Claude, GPT-5.x, Gemini, Kimi K3, GLM, DeepSeek, Grok et MiniMax — derrière un unique point de terminaison compatible avec OpenAI, en acheminant chaque requête vers le fournisseur admissible le moins cher sans jamais facturer plus que le prix catalogue de l’éditeur du modèle.
Prise en charge de premier ordre dans OmniRoute : Chat Completions, le point de terminaison natif /v1/responses, la vision, l’appel d’outils et 3 modèles d’image (grok-imagine, nano-banana-pro, nano-banana-2, accessibles sous la forme cheaperinference/<model>). Obtenez une clé API →
|
Les liens comportant aff=omniroute sont des liens partenaires. Ils financent le projet sans coût supplémentaire pour vous.
🎟️ Promotions d’affiliation — coupons d’inscription gratuits proposés par des fournisseurs qui ne nous sponsorisent pas (cliquez pour développer)
Cette section est réservée aux codes de parrainage et aux coupons. Les partenariats sponsorisés figurent dans la section 🤝 Soutenu par nos amis de l’Open Source ci-dessus. OmniRoute n’entretient aucune relation de sponsoring ou de partenariat avec les fournisseurs répertoriés ici — il s’agit de coupons publics que tout le monde peut utiliser.
|
AgentRouter agentrouter.org |
AgentRouter — inscription par affiliation · 100 $ de crédits gratuits à l’inscription (serveur gratuit, attendez-vous à une latence plus élevée — idéal pour les tests, pas pour la production). Prise en charge de premier ordre dans OmniRoute depuis la v3.8.50 : Chat Completions, le format de transmission compatible avec Anthropic et le chemin compatible avec OpenAI. Les modèles disponibles comprennent claude-opus-4-8, claude-opus-5, gpt-5.6-sol et bien d’autres. Obtenez vos 100 $ →
⚠️ Lien d’affiliation — OmniRoute n’entretient aucune relation de sponsoring ou de partenariat avec ce fournisseur. |
Vous connaissez un autre fournisseur proposant un généreux coupon d’inscription gratuit dont les utilisateurs d’OmniRoute pourraient bénéficier ? Ouvrez une issue et nous l’ajouterons ici.
🎯 Combos — La fonctionnalité phare
Un combo est une chaîne de modèles entre lesquels OmniRoute effectue le routage automatiquement. Si le quota est épuisé, qu'un fournisseur échoue ou que les coûts augmentent brusquement, le combo peut passer au prochain modèle éligible et opérationnel. 🛡️
⚡ Aucune configuration — utilisez simplement auto
Aucun combo à créer. Définissez votre modèle sur auto (ou une variante) et OmniRoute crée un combo virtuel à partir de vos fournisseurs connectés, avec une évaluation en temps réel :
| ID du modèle | Ce qu'il optimise |
|---|---|
auto | 🎯 Paramètre par défaut équilibré (LKGP — reste sur votre dernier fournisseur fiable) |
auto/coding | 🧑💻 Pondérations privilégiant la qualité pour la génération de code |
auto/fast | ⚡ Latence la plus faible en priorité |
auto/cheap | 💰 Coût par jeton le plus bas en priorité |
auto/offline | 🔋 Quota ou marge de limite de débit les plus élevés en priorité |
auto/smart | 🔭 Qualité en priorité + 10 % d'exploration pour découvrir de meilleurs modèles |
auto/lkgp | 📌 Affinité explicite avec le dernier fournisseur fiable connu |
auto/chaos | 🧪 Pondérations d'injection de pannes pour tester la résilience (ingénierie du chaos) |
🔀 Ou créez le vôtre — 19 stratégies de routage
Les 19 stratégies — à combiner librement à chaque étape du combo :
| # | Stratégie | Ce qu'elle fait |
|---|---|---|
| 1 | priority |
Liste ordonnée privilégiant la première cible — épuise chacune avant de passer à la suivante 🥇 |
| 2 | fill-first |
Utilise entièrement le quota de chaque cible avant de passer à la suivante |
| 3 | weighted |
Sélection aléatoire pondérée selon le poids de chaque cible |
| 4 | round-robin |
Parcourt les cibles à tour de rôle, dans l'ordre |
| 5 | p2c |
Équilibrage de charge aléatoire selon la méthode des deux choix |
| 6 | least-used |
Sélectionne la cible ayant la charge actuelle la plus faible |
| 7 | random |
Sélection aléatoire uniforme (sans doublons) |
| 8 | strict-random |
Sélection aléatoire sans éliminer les répétitions 🎲 |
| 9 | cost-optimized |
Minimise le coût en $ par requête selon les tarifs actuels du catalogue 💸 |
| 10 | headroom |
Sélectionne la cible disposant du quota restant le plus élevé |
| 11 | reset-window |
Privilégie la cible dont la fenêtre de quota sera réinitialisée le plus tôt |
| 12 | reset-aware |
Classe les cibles selon l'heure de réinitialisation du quota — fenêtres courtes en premier 📊 |
| 13 | context-relay |
Transmet le contexte d'une cible à l'autre pour les longues conversations 🧠 |
| 14 | context-optimized |
Sélectionne la cible la mieux adaptée à la taille actuelle du contexte |
| 15 | cache-optimized |
Associe chaque préfixe d'invite réutilisable au même compte — maximise les accès réussis au cache d'invites 🎯 |
| 16 | lkgp |
Dernier chemin fiable connu — reste sur le dernier fournisseur ayant réussi, puis se rabat sur les règles |
| 17 | auto |
Évaluation en temps réel selon 16 facteurs pour chaque connexion 🤖 |
| 18 | fusion |
Distribue la requête à un panel de modèles, puis un modèle juge synthétise une réponse unique 🧬 |
| 19 | pipeline |
Enchaîne les étapes — la sortie de chaque cible alimente la suivante 🔗 |
Le moteur Auto-Combo évalue chaque candidat selon 16 facteurs (état de fonctionnement, quota, coût, latence, adéquation à la tâche, qualité, disponibilité de la session…) — consultez docs/routing/AUTO-COMBO.md.
🧱 La résilience est intégrée (3 couches indépendantes)
📖 Moteur de combinaison automatique · Guide de résilience
🏆 Ce qui distingue OmniRoute
📊 Méthodologie complète et détails par fonctionnalité par rapport à 9router, OpenRouter, CLIProxyAPI et LiteLLM → docs/comparison/OMNIROUTE_VS_ALTERNATIVES.md
💚 Soutenir OmniRoute
OmniRoute est sous licence MIT et maintenu de manière ouverte. S’il vous fait gagner du temps ou de l’argent, voici comment contribuer à préserver son indépendance — choisissez l’option qui vous convient. Le parrainage n’influence jamais la priorité de routage ; il offre de la visibilité, pas un meilleur classement.
| ⭐ Ajouter une étoile au dépôt | Gratuit — cela améliore réellement sa visibilité | Ajouter une étoile à OmniRoute |
| 🐙 GitHub Sponsors | Don ponctuel ou mensuel · aucuns frais de plateforme | github.com/sponsors/diegosouzapw |
| ☕ Ko-fi | Pourboire ponctuel rapide, sans inscription pour le donateur | ko-fi.com/diegosouzapw |
| 🧋 Buy Me a Coffee | Petit geste informel | buymeacoffee.com/diegosouzapw |
| 🖐 Liberapay | Récurrent · sans but lucratif · open source | liberapay.com/diegosouzapw |
| 🇧🇷 PIX (Brésil) | Instantané, sans frais | clé et code QR ci-dessous |
| ₿ Cryptomonnaies | BTC · ETH · USDT-TRC20 · USDC-Solana | adresses ci-dessous |
🇧🇷 PIX — instantané, sans frais (Brésil)
Clé (aléatoire) : 5d865059-bc44-483a-962d-43ceb80126eb
Pix à copier-coller :
00020101021126580014br.gov.bcb.pix01365d865059-bc44-483a-962d-43ceb80126eb5204000053039865802BR5922OMNIROUTE CONTRIBUICAO6006BRASIL62070503***630475DD
₿ Cryptomonnaies — BTC · ETH · USDT-TRC20 · USDC-Solana (cliquez pour développer)
| ₿ BTC | Bitcoin (SegWit) | bc1qh00smz004sy85wyl28v77tenkt3ckl6eaep7fd |
| Ξ ETH | Ethereum (ERC20) | 0x64Cf6B68A6Ff34288e89172950a2d00102337a84 |
| ₮ USDT | Tron (TRC20) | TKAF41JpuQrHbKTnsQa9svJE2T192Hvsc2 |
| $ USDC | Solana | 2emNNZzVVWQc3FQ2wk9M6qXUQmW8AKdjjL174fXR28Tu |
⚠️ Envoyez chaque cryptomonnaie uniquement sur le réseau indiqué — un envoi sur le mauvais réseau peut entraîner la perte des fonds.
🐛 Vous avez trouvé un bug ou avez des commentaires ? Ouvrez une Discussion.
Notes pour les développeurs : Le projet peut générer un fichier local .env pendant npm install/postinstall afin de faciliter le travail des développeurs. Ce fichier est volontairement ignoré via .gitignore (voir .gitignore) et ne doit jamais être validé dans le dépôt — s’il l’est accidentellement, renouvelez tous les secrets exposés et supprimez le fichier de l’historique. Consultez docs/DEVELOPER-ENVIRONMENT.md pour obtenir des recommandations sur la gestion des fichiers d’environnement locaux et des secrets.
📡 Radar OmniRoute
L’offre gratuite principale reste à ~1,47 milliard de tokens/mois, d’après le catalogue documenté et dédupliqué par pool ci-dessus. Les crédits temporaires accordés lors de l’inscription auprès des fournisseurs peuvent porter séparément le premier mois à ~2,07 milliards. Radar est une surcouche de catalogue facultative et signée, destinée aux personnes qui souhaitent disposer d’informations plus récentes sur la disponibilité des modèles gratuits entre les versions d’OmniRoute ; le catalogue communautaire et toutes les fonctionnalités gratuites existantes restent gratuits.
Les soutiens peuvent recevoir le catalogue en direct ainsi que des opportunités supplémentaires proposées par les fournisseurs. Son plafond distinct et variable est d’environ 3 milliards de tokens/mois au maximum, selon la disponibilité des fournisseurs. Ce plafond n’est pas garanti : les fournisseurs peuvent modifier à tout moment les quotas, les critères d’éligibilité, les modèles ou les régions.
Radar est facultatif et utilise uniquement des requêtes GET. Le client OmniRoute ne téléverse ni les prompts, ni le trafic, ni la configuration des fournisseurs, ni les données télémétriques d’utilisation, ni l’état local indiquant que les annonces ont été ignorées. Consultez les critères d’éligibilité et le catalogue actuel sur radar.omniroute.online/planos.
✨ Nouveautés
Points forts récents de v3.8.20 → v3.8.50. Historique complet dans
CHANGELOG.md.
- 🎛️ OmniConductor — délégation A2A entrante vers votre flotte d’agents, compétences Conductor sur l’Agent Card et panneau de tableau de bord avec chat vocal push-to-talk Faro. → Serveur A2A
- 🛂 Admission adaptative et protection contre la surcharge — les requêtes de chat lourdes sont mises en file d’attente plutôt que de générer des erreurs 503, avec des baux glissants RPM atomiques par connexion. → Guide de résilience
- 🗂️ Ordonnancement canonique de
/v1/models— un bloc contigu regroupé par fournisseur pour chaque fournisseur (combinaisons épinglées en premier), stable pour toutes les sources du catalogue. → Référence de l’API - 🗜️ Renforcement de la compression — protection contre l’inflation activée par défaut, packs Caveman pour DE / FR / JA + chinois (wényán), filtres RTK pour Gradle et .NET. → Compression
- 💸 Coût forfaitaire transparent — les fournisseurs sur abonnement / forfait de codage affichent un coût de $0 dans les analyses ; le budget, le quota et le routage continuent d’effectuer des estimations. → Référence de l’API
- ⚖️ Routage Quota-Share — répartit équitablement le quota d’un compte partagé entre les clés mutualisées, tout en optimisant l’utilisation afin que les parts inutilisées soient prêtées. → Guide de résilience
- 🤖 Configuration des CLI/agents en une seule commande — 13 commandes
setup-*enregistrées ;omniroute runlance 7 CLI (Claude Code, Codex, Aider, Goose, OpenCode, Qwen Code, Gemini CLI) ;omniroute configureprend en charge 10 cibles avec un sélecteur interactif de fournisseur et de modèle, ainsi que des favoris propres à chaque contexte. → Intégrations CLI - 🛰️ Mode distant — pilotez une instance OmniRoute distante à l’aide de jetons à portée limitée (
connect/contexts/tokens) et d’un assistant OAuthantigravitypour les installations sur VPS. → Mode distant - 🧭 Routage automatique plus intelligent — combinaisons
auto/<category>:<tier>, Fusion (panel de modèles + juge), routage tenant compte de la tâche, remplacement par requête du modèle / mode / budget en USD. → Auto-Combo - 🗜️ Compression modulaire — 12 moteurs composables + Compression Studios : LLMLingua-2, Ultra à deux niveaux, omniglyph, contrôle de fidélité à chaque étape, GCF v3.2, éditeur avec réorganisation par glisser-déposer. → Compression
- 🕵️ Déchiffrement MITM transparent (TPROXY) — interceptez les CLI qui ignorent les variables d’environnement de proxy, avec une autorité de certification par SNI et un programme d’installation pour le magasin de confiance. → MITM/TPROXY
- 💸 Télémétrie des coûts partout — en-têtes de coût/d’utilisation
X-OmniRoute-*sur chaque point de terminaison, en-tête d’économies en cas de cache HIT, quotas de dépenses en USD par clé. → Référence de l’API - 🧠 Une mémoire que vous contrôlez — désactivée par défaut, quantification vectorielle int8 et décroissance typée sur activation,
x-omniroute-no-memorypar requête. → Mémoire - 🛡️ Sécurité — protection contre les injections de prompt sur chaque route LLM (suite red-team), garde-fou optionnel de masquage des identifiants (expurge les clés API/secrets divulgués dans les deux sens), recherche web DuckDuckGo gratuite en dernier recours et portail de connexion OIDC facultatif pour le tableau de bord (la connexion par mot de passe reste toujours disponible). → Garde-fous
- 🖼️ Nouveaux points de terminaison —
/v1/ocr(Mistral OCR) et/v1/audio/translations(de type Whisper) complètent la gamme multimédia. → Référence de l’API - 🎨 Génération d’images / vidéos / contenus audio — une API unique pour les médias : xAI Grok Imagine et les vidéos Novita AI, ComfyUI, Magnific, Adobe Firefly, Segmind, ainsi que des fournisseurs vocaux tels qu’ElevenLabs. → Référence de l’API
- 🌍 Déploiement et exploitation —
basePathpour proxy inverse, détection automatique de la langue du navigateur, suivi des appareils par clé, confiance MITM sans accès root, localisation zh-TW. → Environnement - 🤝 Davantage de fournisseurs et d’agents — agents cloud (Codex Cloud, Cursor, Devin, Jules), Grok Build (xAI) avec navigateur + connexion OAuth, fiche Ollama de premier ordre, Claude Opus 5 et Sonnet 5, partenariat officiel avec Kimi (Code/Web/Moonshot), Zed, Requesty, SenseNova, Yuanbao, Agnes AI… ainsi qu’un catalogue actualisé de 352 fournisseurs. → Fournisseurs
- 📡 Transparence du routage — chaque réponse contient un en-tête
X-OmniRoute-Decisionindiquant la stratégie/le fournisseur/la latence qui l’a servie ; une nouvelle stratégie de combinaisoncache-optimizedet le facteurcacheAffinityd’Auto-Combo redirigent les requêtes répétées vers la connexion détenant le préfixe mis en cache ; enfin, un point de terminaison en lecture seule/v1/auto-combo/{channel}/candidatesexpose le pool actif de candidats d’un canalauto/*. → Auto-Combo - ⚡ Performances locales et infrastructure — Redis local en un clic, outils de déploiement de relais pour Cloudflare Workers / Deno Deploy, Bifrost et Mux en tant que services intégrés supervisés. → Services intégrés
- 🧩 Également inclus — framework de plugins + place de marché, frameworks de compétences Omni/Agent/GitHub, intégration des coffres Obsidian (22 outils MCP), API Batch et Files compatibles OpenAI, cache sémantique des réponses, ludification avec classements, découverte d’agents ACP (15 agents intégrés), export planifié des journaux vers BigQuery, injection de pannes
auto/chaos, passerelle pour bot Telegram, gestionnaire de versions intégré à l’application et classements LMArena-ELO des fournisseurs gratuits. → Documentation
🤖 CLI compatibles et agents de codage
Une seule configuration —
http://localhost:20128/v1— et chaque IDE ou CLI d’IA fonctionne avec des modèles gratuits et à faible coût.
Claude Code |
Codex CLI |
Cline |
Kilo Code |
Zoo Code |
Continue |
Aider |
ForgeCode |
jcode |
DeepSeek TUI |
CodeWhale |
OpenCode |
Factory Droid |
Copilot CLI |
Cursor CLI |
Smelt |
Pi |
Grok Build |
Hermes Agent |
OpenClaw |
Goose |
Open Interpreter |
Warp AI |
Agent Deck |
📖 Configuration par outil pour les 36 outils (26 outils CLI de code + 10 agents CLI) → docs/reference/CLI-TOOLS.md · 🧩 Plugin OpenCode → @omniroute/opencode-provider
Lancez n’importe quel outil CLI pris en charge via OmniRoute avec une seule commande — aucun fichier de configuration n’est écrit, les identifiants sont injectés pour chaque processus, et Qwen/Gemini disposent d’un répertoire personnel isolé temporaire :
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"
# Ou sélectionnez interactivement le fournisseur et le modèle, puis écrivez la configuration propre à l’outil :
omniroute configure codex # également : claude opencode qwen aider goose gemini cline continue kilo
Chaque commande respecte le contexte distant actif (omniroute connect <host>), --dry-run
affiche un aperçu exact des variables d’environnement et des arguments sans rien exécuter, et --api-key-env NAME évite
que les secrets n’apparaissent dans l’historique de votre shell. → Intégrations CLI
🌐 352 fournisseurs d’IA — 152 marqués comme gratuits dans le catalogue
352 fournisseurs enregistrés dans les collections canoniques de chat, médias, recherche, exécution locale, agents cloud et système, dont 152 comportant la métadonnée de découverte
hasFree: true. Le registre des modèles de chat couvre 229 fournisseurs / 2 554 paires fournisseur-modèle distinctes / 1 283 identifiants de modèle bruts ; le catalogue distinct des quotas gratuits contient 443 entrées par modèle, 34 pools récurrents et 53 fournisseurs gratuits à vie, récurrents ou sans clé. Ces dénominateurs sont différents par conception ; les définitions et les calculs dédupliqués par pool figurent dans la Référence des fournisseurs et les Offres gratuites.
🏢 Tous les grands laboratoires — via un point de terminaison unique
OpenAI |
Anthropic |
Gemini |
xAI Grok |
DeepSeek |
Mistral |
Qwen |
Meta Llama |
Groq |
NVIDIA |
MiniMax |
Cohere |
Perplexity |
HuggingFace |
Together |
Fireworks |
Cloudflare |
Baidu |
…et plus de 330 autres — chaque icône est récupérée en direct depuis le catalogue de fournisseurs du tableau de bord. 📖 Référence des fournisseurs
🆓 Gratuit à vie — 0 $, sans carte bancaire
📖 Catalogue complet lisible par machine → docs/reference/PROVIDER_REFERENCE.md
🖥️ Où fonctionne OmniRoute — partout
Même application, votre machine, vos règles. D’une installation globale avec npm jusqu’à votre téléphone via Termux.
| Plateforme | Installation | Points forts |
|---|---|---|
| 📦 npm (global) | npm install -g omniroute | Une seule commande, sur tous les systèmes d’exploitation |
| 🐳 Docker | docker run … diegosouzapw/omniroute | Multiarchitecture AMD64 + ARM64 |
| 🖥️ Bureau (Electron) | npm run electron:build | Fenêtre native + zone de notification — Windows / macOS / Linux |
| 🎩 Barre des menus (OmniRouteTray) | brew install --cask zoispag/tap/omniroute-tray | Supervise et met automatiquement à jour le serveur — macOS |
| 💪 ARM | arm64 natif | Raspberry Pi, serveurs ARM, Apple Silicon |
| 📱 Android (Termux) | pkg install nodejs && npx -y omniroute | Fonctionne sur votre téléphone, 24 h/24 et 7 j/7, sans accès root |
| 📲 PWA | « Ajouter à l’écran d’accueil » | Plein écran, hors ligne, installable depuis le navigateur |
| 🧩 Extension OpenCode | @omniroute/opencode-provider | Intégration native à OpenCode |
| 🤖 VS Code Copilot Chat | installer l’extension OmniCopilot | Tous les modèles OmniRoute dans le sélecteur natif de Copilot Chat — versions stable et Insiders |
| 🛠️ Depuis les sources | npm install && npm run dev | Modifiez-le, contribuez |
📖 Guide Docker · Bureau · Barre des menus · Termux · PWA · OpenCode
🧩 Nouveau : OmniRoute dans l’interface native de Copilot Chat de VS Code
Aucune nouvelle barre latérale, aucune nouvelle interface de discussion — chaque modèle fourni par OmniRoute apparaît directement dans le sélecteur de modèles de Copilot Chat que vous utilisez déjà. Depuis VS Code 1.122, les modèles des fournisseurs fonctionnent sans connexion à GitHub ni abonnement Copilot — mode agent, appels d’outils et vision, gratuitement.
Installez l’extension OmniCopilot, configurez-la
pour utiliser votre serveur OmniRoute (localhost:20128 par défaut), puis ouvrez Copilot Chat → sélecteur de modèles
→ Gérer les modèles… → OmniRoute.
| Boutique | Lien | Compatible avec |
|---|---|---|
| 🧩 VS Code Marketplace | Installer → | VS Code — versions stable et Insiders |
| 🔓 Open VSX Registry | Installer → | Cursor, Windsurf, VSCodium, Theia, code-server, Gitpod, Antigravity, Kiro… |
Depuis l’éditeur : ouvrez la vue Extensions, recherchez « OmniRoute », puis cliquez sur Installer — le fonctionnement est identique dans les deux boutiques. Le code source, les tickets et le guide de publication sont disponibles sur diegosouzapw/OmniCopilot.
📖 Guide de VS Code Copilot Chat — configuration, contenu du sélecteur, tableau de bord dans un onglet, dépannage
🎩 Nouveau : OmniRouteTray — votre passerelle, directement dans la barre des menus
omniroute servedonne le meilleur de lui-même lorsqu’il fonctionne en permanence. OmniRouteTray en fait une application macOS pour la barre des menus que vous configurez une fois pour toutes : elle démarre le serveur, le maintient actif après les redémarrages, le met à jour sur place et vous permet de consulter votre budget de jetons en direct en un clic — sans fenêtre de terminal laissée ouverte ni installationnpm install -g omnirouteà surveiller.
Conçue avec Tauri v2 (un cœur Rust minuscule), elle embarque
son propre environnement d’exécution Node 24 signé et gère une installation d’OmniRoute propre à l’application, afin de ne jamais entrer en conflit avec vos installations
globales de node/bun. Elle partage votre configuration et votre base de données ~/.omniroute/ existantes — c’est donc le
même OmniRoute que vous utilisez déjà, simplement coiffé d’un chapeau. 🎩
| Fonctionnalité | Fonctionnement |
|---|---|
| 🟢 Supervise le serveur | Lance omniroute serve et adopte une instance déjà en cours d’exécution au lieu de la dupliquer |
| 📊 Utilisation en direct d’un seul coup d’œil | Barres de quota des fournisseurs, limites de session/hebdomadaires de Claude avec comptes à rebours avant réinitialisation, ventilation des coûts sur 30 jours |
| 🔄 Mises à jour automatiques sur place | Installation intermédiaire, remplacement atomique, retour en arrière en cas d’échec — toujours sur la version la plus récente |
| 🚀 Démarrage à l’ouverture de session | Lancement facultatif à l’ouverture de session ; uniquement dans la barre des menus, sans icône dans le Dock |
| 🩺 Diagnostic et journaux | Diagnostic en un clic et accès aux journaux du serveur |
brew install --cask zoispag/tap/omniroute-tray
Vous préférez un téléchargement ? Récupérez le dernier fichier .dmg depuis les
versions publiées. Le code source, les tickets et la documentation de
compilation sont disponibles sur zoispag/omniroute-tray.
💛 Un projet communautaire par @zoispag — il ne s’agit pas d’une version officielle d’OmniRoute.
🔒 Privé et local par défaut
📖 Autorisation · Garde-fous · Conformité
🔌 CLI complète + A2A et MCP
Au-delà du serveur, OmniRoute est un véritable poste de pilotage en ligne de commande proposant plus de 80 commandes, ainsi que des protocoles ouverts pour agents afin qu’un agent d’IA puisse le piloter de manière autonome.
⌨️ Une véritable CLI (pas seulement start)
omniroute # lancer la passerelle et le tableau de bord (port 20128)
omniroute chat # client de chat TUI interactif (commandes obliques : /model /combo /skill /memory)
omniroute setup # assistant guidé de première configuration
omniroute doctor # diagnostiquer les fournisseurs, les ports et les dépendances natives
🛰️ Mode distant — exécutez la CLI ici et OmniRoute sur un VPS
OmniRoute est installé sur un serveur ? Pilotez-le depuis votre ordinateur portable avec la même CLI. Connectez-vous une seule fois avec un jeton d’accès à portée limitée ; chaque commande ciblera ensuite le serveur distant.
omniroute connect 192.168.0.15 # mot de passe → jeton à portée limitée, enregistré comme contexte
omniroute models list # ← s’exécute sur le serveur DISTANT
omniroute configure codex # ← sélectionne un modèle distant et écrit un profil Codex local
omniroute tokens create --name ci --scope read # créer des jetons à portée plus restreinte pour d’autres machines
omniroute contexts use default # ← revenir au serveur local
Les jetons disposent des portées read / write / admin ; les routes qui lancent des processus restent limitées à l’interface de bouclage.
📖 Mode distant
🤝 Connectez un agent — et laissez-le contrôler OmniRoute lui-même
Exposez OmniRoute via MCP, A2A, une API REST, des webhooks ou une CLI distante — tout agent compatible (ou votre propre code) obtient les clés de l’ensemble de la passerelle : routage, fournisseurs, combinaisons, cache, compression, mémoire — de manière autonome. Les points de terminaison HTTP ci-dessous sont servis sous http://localhost:20128.
| Interface | Point de terminaison / commande | Utilisation |
|---|---|---|
| 🧰 MCP (stdio) | omniroute --mcp | Intégration à Claude Desktop, Cursor ou tout client MCP |
| 🌊 MCP (HTTP) | /api/mcp/stream | MCP distant — 110 outils, 33 portées (application facultative), piste d’audit complète |
| 📡 MCP (SSE) | /api/mcp/sse | Transport MCP en continu |
| 🤝 A2A | /.well-known/agent.json | D’agent à agent, JSON-RPC 2.0 + SSE, 6 compétences |
| 🌐 API REST | /v1/* | Compatible avec OpenAI — chat, embeddings, images, audio, OCR |
| 🔔 Webhooks | /api/webhooks | Envoyer les événements de requête et de quota à Slack, Discord, Telegram ou toute URL |
| 🛰️ CLI distante | omniroute connect | Piloter une instance distante avec des jetons d’accès à portée limitée |
# Fournir à Claude Code l’ensemble complet des outils OmniRoute via MCP :
claude mcp add-server omniroute --type http --url http://localhost:20128/api/mcp/stream
📖 Serveur MCP · Serveur A2A · Protocoles pour agents
🗜️ Économisez automatiquement 15 à 95 % de tokens
📖 Fonctionnement — pipeline, architecture et calcul des économies
La combinaison empilée par défaut exécute RTK → Caveman. Lorsque les deux agissent sur la même charge utile d’outil ou de contexte, les économies se cumulent :
combined = 1 − (1 − RTK) × (1 − Caveman_input)
average = 1 − (1 − 0.80) × (1 − 0.46) = 89.2%
range = 78.4 – 94.6%
Les blocs de code, les URL, le JSON et les données structurées sont toujours protégés par le moteur de préservation.
Pourquoi utiliser beaucoup de tokens quand quelques-uns suffisent ? Chaque requête traverse le pipeline de compression d’OmniRoute de manière transparente — aucune modification côté client. Il s’agit désormais d’une pile de 12 moteurs composables qui s’exécutent dans l’ordre et peuvent être combinés selon chaque configuration de routage — en s’appuyant sur les idées de RTK, Caveman (⭐ 90K+), LLMLingua-2 et Troglodita (PT-BR).
🧱 La pile de 12 moteurs
Les moteurs s’exécutent dans l’ordre du pipeline ; chacun peut être activé ou désactivé et configuré indépendamment pour chaque combinaison :
| # | Moteur | Fonctionnement |
|---|---|---|
| 1 | Session-Dedup | Supprime le contenu répété d’un tour à l’autre (adressé par le contenu, entre les tours) |
| 2 | CCR | Archive les blocs volumineux derrière des marqueurs de récupération, consultés à la demande |
| 3 | Lite | Réduction des espaces et des URL d’images (base légère en latence) |
| 4 | RTK | Filtrage intelligent, déduplication et troncature des résultats d’outils (avec prise en compte des commandes) |
| 5 | Responses Tool Output | JSON sans perte en priorité + compression limitée des diagnostics pour les sorties de shell/patch/recherche/build (Responses API) |
| 6 | Headroom | Compactage tabulaire sans perte des tableaux JSON (~30 %) via un codec GCF intégré |
| 7 | Relevance | Évaluation extractive des phrases par rapport à la dernière requête de l’utilisateur |
| 8 | Caveman | Compression de texte fondée sur des règles (~65–75 % sur la sortie) |
| 9 | Aggressive | Résumé + vieillissement progressif des anciens tours |
| 10 | LLMLingua-2 | Élagage sémantique par ML via MobileBERT ONNX — sans risque pour le code, asynchrone |
| 11 | Ultra | Élagage heuristique des tokens avec un niveau facultatif basé sur un petit modèle (SLM) |
| 12 | OmniGlyph | Encodage expérimental du contexte sous forme d’image pour Claude Fable 5 mesuré sur la connexion directe à Anthropic ; les transformeurs GPT 5.6 restent fermés par défaut dans l’attente des reçus du fournisseur. Quatre profils de compression (agressif par défaut, équilibré, sûr pour le code, transmission directe) (le plus agressif ; sur activation) |
Les blocs de code, les URL et les données structurées sont toujours préservés à l’octet près. Des préréglages en un clic combinent les moteurs :
| Mode | Économies | Idéal pour |
|---|---|---|
| 🪶 Lite | ~15% | Valeur par défaut sûre, toujours active |
| 🪨 Standard (Caveman) | ~30% | Développement quotidien |
| ⚡ Aggressive | ~50% | Longues sessions utilisant beaucoup d’outils |
| 🔥 Ultra | ~75% | Économies maximales |
| 🧰 RTK | 60–90% | Sorties de shell/test/build/git |
| 🔗 Empilé (RTK → Caveman) | 78–95% | Prompts mixtes + journaux d’outils |
Exemple réel — mode Standard :
Avant (69 tokens) : « La raison pour laquelle votre composant React s’affiche à nouveau vient probablement du fait que vous créez une nouvelle référence d’objet à chaque cycle de rendu. Lorsque vous transmettez un objet en ligne en tant que prop, la comparaison superficielle de React le considère chaque fois comme un objet différent, ce qui déclenche un nouveau rendu. Je vous recommande d’utiliser useMemo pour mémoriser l’objet. »
Après (19 tokens) : « Nouvelle référence d’objet à chaque rendu. Objet en ligne comme prop = nouvelle référence = nouveau rendu. Encapsulez-le dans useMemo. »
Même réponse. 72 % de tokens en moins. Aucune perte de précision. ✅
Exemple PT-BR — mode Troglodita :
Avant (42 tokens) : « Le problème est que le composant effectue un nouveau rendu, car une nouvelle référence d’objet est créée à chaque cycle de rendu. Je recommanderais d’utiliser useMemo. »
Après (12 tokens) : « Nouveau rendu : nouvelle réf. à chaque cycle (objet inline recréé). Utiliser
useMemo. »Même réponse. Environ 70 % de tokens en moins. Précision technique intacte. ✅
🎚️ Au-delà des moteurs — styles de sortie, réglage adaptatif et contrôle par requête
Les 12 moteurs ci-dessus réduisent ce qui entre. Trois couches supplémentaires déterminent comment, quand et ce qui sort :
- 🪄 Styles de sortie (pilotage de l’axe de sortie) — injectent des instructions déterministes et compatibles avec le cache pour façonner les réponses ; combinables, chacune avec une intensité
lite/full/ultra. Ajouter un style ne nécessite qu’une ligne dans le registre :- Prose concise — supprimer le remplissage, les articles et les précautions oratoires ; préserver exactement le fond technique.
- Moins de code — YAGNI façon « développeur senior paresseux » : la plus petite modification fonctionnelle, sans structure non demandée.
- Queue de cheval (développeur senior paresseux) — gravir l’échelle YAGNI, corriger la cause profonde, produire le plus petit diff fonctionnel.
- J’ai un TDAH (action d’abord) — commencer par l’action suivante, numéroter les étapes, fournir une seule prochaine étape concrète, sans préambule.
- CJK concis (文言) — style chinois classique ultra-concis (limité aux paramètres régionaux
zh).
- 🎯 Budget de contexte adaptatif (le réglage) — au lieu d’un seuil de tokens binaire unique, activer progressivement les moteurs les moins coûteux et les plus fidèles, uniquement dans la mesure nécessaire pour tenir dans la fenêtre de contexte du modèle. Politique :
reserve-output(par défaut, adaptée au modèle) ·percentage·absolute. Mode :floor(garantit la compatibilité) ·replace-autotrigger(votre choix explicite prévaut) ·off(seuil historique). - 🎛️ Où la compression est décidée (priorité, de la plus élevée à la plus faible) — en-tête
x-omniroute-compressionpar requête › remplacement par combinaison de routage › profil nommé actif › déclenchement adaptatif / automatique › valeur par défaut du panneau › désactivée. Le plan appliqué est renvoyé dans l’en-tête de réponseX-OmniRoute-Compression: <mode>; source=<source>.
Déclenchez automatiquement selon un seuil de tokens, activez le réglage adaptatif, épinglez un profil nommé, définissez un paramètre ponctuel par requête ou attribuez un pipeline à chaque combinaison de routage — selon les besoins de la charge de travail. Un banc d’évaluation hors ligne facultatif (npm run eval:compression) mesure la fidélité par rapport aux économies sur un corpus épinglé avant la mise en production d’une modification.
📖 COMPRESSION_GUIDE.md · RTK_COMPRESSION.md · COMPRESSION_ENGINES.md
⚡ Démarrage rapide
1) Installer et exécuter
npm install -g omniroute
omniroute
💡 Vous voyez
npm warn ERESOLVEou des avertissements concernant les dépendances homologues ? Ils sont sans conséquence.
Tableau de bord sur http://localhost:20128 · API sur http://localhost:20128/v1.
2) Connecter un fournisseur GRATUIT (sans inscription)
Tableau de bord → Fournisseurs → connectez Kiro AI (Claude gratuit, environ 50 crédits/mois par compte) ou OpenCode Free (sans authentification) → terminé.
3) Configurer votre outil de programmation
URL de base : http://localhost:20128/v1
Clé API : [copier depuis Tableau de bord → Points de terminaison]
Modèle : auto (routage intelligent sans configuration — ou tout fournisseur/modèle)
4) Vérifier que tout fonctionne
curl http://localhost:20128/v1/models -H "Authorization: Bearer YOUR_KEY"
Vous devriez voir la liste de vos modèles connectés. 🎉 C’est tout — commencez à programmer ; OmniRoute assure automatiquement le routage et le basculement pour vous.
Si votre client ne peut pas envoyer d’en-têtes personnalisés, OmniRoute expose également des alias de compatibilité avec token :
Catalogue OpenAI : http://localhost:20128/vscode/YOUR_KEY/
Modèles OpenAI : http://localhost:20128/vscode/YOUR_KEY/models
Chat OpenAI : http://localhost:20128/vscode/YOUR_KEY/chat/completions
Réponses OpenAI : http://localhost:20128/vscode/YOUR_KEY/responses
Chat Ollama : http://localhost:20128/vscode/YOUR_KEY/api/chat
Tags Ollama : http://localhost:20128/vscode/YOUR_KEY/api/tags
Utilisez-les uniquement pour les clients qui ne peuvent pas joindre Authorization: Bearer .... L’authentification par en-tête reste le mode recommandé.
📦 Autres méthodes d’installation — Docker, code source, pnpm, Arch
🐳 Docker
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 suit la version SemVer stable publiée la plus élevée. Elle ne suit pas la branche git main. Épinglez :X.Y.Z pour GitOps. Consultez Canaux de publication Docker. L’image définit OMNIROUTE_MEMORY_MB=1024. Cela suffit pour le tableau de bord et une conversation légère. Les agents de programmation (POST /v1/responses depuis Claude Code, Codex, Grok, …) nécessitent un tas V8 bien plus important, sans quoi le processus déclenche une FATAL ERROR à environ 12 Gio avec deux longs contextes qui se chevauchent. Dimensionnez le conteneur au-dessus de la taille du tas (les tampons natifs se trouvent en dehors de V8) :
| Charge de travail | Tas (-e OMNIROUTE_MEMORY_MB) |
Conteneur (--memory) |
|---|---|---|
| Tableau de bord / conversation légère | 1024 (valeur par défaut de l’image) |
≥2 g |
| Un agent de programmation | 8192 |
≥10 g |
Deux longs /v1/responses simultanés |
10240–12288 |
≥12–16 g |
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
Tableau complet : Guide Docker — RAM d’exécution.
Canal Docker de préversion :
diegosouzapw/omniroute:nextetdiegosouzapw/omniroute:next-websuivent la brancherelease/v*actuellement définie par défaut. Ces balises modifiables sont uniquement destinées à tester des correctifs non publiés et ne sont pas prises en charge en production. Consultez Canaux de publication Docker.
🥟 Bun
L’installation standard avec bun install et l’installation globale (bun install -g omniroute) sont prises en charge grâce à la détection de l’environnement d’exécution Bun :
bun:sqliteintégré : OmniRoute utilise le pilotebun:sqliteintégré à Bun lors de son exécution sous Bun, avec repli surbetter-sqlite3sous Node.js ou sursql.js.- Sélection automatique de Webpack pour le regroupement en développement : le mode développement (
bun run dev) détecte automatiquement Bun et désactive Turbopack au profit de Webpack afin d’éviter les incompatibilités avec les liaisons V8 natives. Les compilations de production (bun run build) respectent précisémentOMNIROUTE_USE_TURBOPACK, comme sous Node : Turbopack par défaut, ouOMNIROUTE_USE_TURBOPACK=0pour compiler avec Webpack (Dockerfile.bunl’expose en tant que--build-arg). - Dockerfile dédié à Bun :
Dockerfile.bunmultiétape pour les déploiements natifs de Bun en production (docker build -f Dockerfile.bun -t omniroute:bun .).
# Installer et exécuter avec Bun
bun install
bun run dev
🛠️ Depuis le code source
cp .env.example .env && npm install
PORT=20128 npm run dev
📦 pnpm
pnpm add -g omniroute@latest --allow-build=better-sqlite3 --allow-build=@swc/core && omniroute
🐧 Arch Linux (AUR)
yay -S omniroute-bin && systemctl --user enable --now omniroute.service
🔧 Nix (Flake)
# Avec les flakes Nix
nix develop
npm run dev
# Ou avec devbox
devbox run npm run dev
📖 Guide Docker — Profils Compose, HTTPS avec Caddy, tunnels Cloudflare.
🦭 Podman
# 1. Préparer le répertoire de données monté par liaison
mkdir -p data
# 2. Uniquement sous Linux avec Podman local sans privilèges root (jamais avec un client Podman Machine distant) :
podman unshare chown 1000:1000 ./data
# 3. Définir l’indication d’environnement d’exécution, créer l’image Compose locale et démarrer
echo "CONTAINER_HOST=podman" >> .env
podman compose --profile base up -d --build
Sous macOS ou Windows, Podman utilise une Podman Machine distante : ignorez podman unshare et
suivez les instructions relatives au répertoire de données propres à la topologie.
📖 Guide Podman — Compilations Compose, Podman Machine et configuration de Quadlet avec Linux/systemd.
⚡ Installation plus rapide / légère (sans compilation native)
Le moteur SQLite natif (better-sqlite3) est une dépendance facultative ; une installation
globale n’est donc jamais bloquée par une compilation depuis le code source : elle utilise un binaire précompilé lorsqu’il en existe un
pour votre plateforme/Node et, dans le cas contraire, se replie de façon transparente sur un moteur JavaScript pur
(node:sqlite sous Node 22+, sinon le moteur WASM sql.js inclus) — aucun outil de compilation n’est requis.
Pour ignorer entièrement la préparation native après l’installation (CI, environnement sans interface graphique ou machines lentes) :
OMNIROUTE_SKIP_POSTINSTALL=1 npm install -g omniroute # CI=1 l’ignore également
Pour des installations plus rapides, privilégiez pnpm (stockage adressé par contenu + liens physiques — voir ci-dessus).
Pour un environnement d’exécution sans tableau de bord et sans interface graphique, utilisez le profil Docker base (ci-dessus) ou le
guide Termux. La CLI et le tableau de bord web sont servis par le
même processus sur un seul port ; il n’existe donc actuellement aucun paquet distinct exclusivement destiné à la CLI.
🎬 OmniRoute en action
📹 Guides vidéo
Instantané du tableau de bord au 2026-08-24 · Catalogue brut : YT 809 | TT 137 | IG 124 · Fraîcheur (jours) : YT 1 | TT 21 | IG 22
Classement complet (URL canoniques dédupliquées, v > 0, portée maximale) :
| #1 | #2 | #3 | #4 | #5 |
|---|---|---|---|---|
| nick_saraev — Instagram — 3,042,474 | theopenstack — Instagram — 692,419 | milesreevesai — TikTok — 620,400 | Vaibhav Sisinty — YouTube — 391,109 | buildwithai.club — Instagram — 347,652 |
| #6 | #7 | #8 | #9 | #10 |
|---|---|---|---|---|
| nivedan.ai — Instagram — 331,973 | vaibhavsisinty — Instagram — 263,744 | Nick Automates — YouTube Shorts — 218,174 | theroshankrishna — Instagram — 186,786 | midudev — TikTok — 177,800 |
Métriques canoniques au 2026-08-24 : 1.029 vidéos uniques · 11.132.922 vues connues (v > 0) · 639 chaînes/profils par réseau. Le tableau de bord brut contient 1.070 lignes ; 41 doublons Instagram ont été normalisés à partir de l’URL canonique, en conservant le nombre de vues le plus élevé pour chaque vidéo.
🎬 Vous avez réalisé une vidéo sur OmniRoute ? Ouvrez une issue ou une discussion avec le lien — nous la mettrons en avant ici.
📧 Communauté et aide
Tout au même endroit — suivez le mainteneur, échangez avec la communauté ou ouvrez une issue.
| Canal | Où / comment |
|---|---|
| 💼 LinkedIn — suivre le mainteneur | linkedin.com/in/diegosouzapw |
| 🐙 GitHub — suivre les versions et astuces | @diegosouzapw |
| 💬 Discord | discord.gg/U47eFqAXCn |
| ✈️ Telegram | t.me/omnirouteOficial |
| 🟢 WhatsApp — 🌍 Monde | rejoindre le groupe |
| 🟢 WhatsApp — 🇧🇷 Brésil | rejoindre le groupe |
| 🌍 Site web | omniroute.online |
| 🌍 Communauté 🌍StHub OmniRoute (gratuite) | portail sthub |
| 📦 Code source | github.com/diegosouzapw/OmniRoute |
| 🐛 Signaler un bug | ouvrir un ticket — joignez la sortie de npm run system-info |
| 🤝 Contribuer | CONTRIBUTING.md · Modèle de branches et de publication · choisissez une good first issue |
| 💚 Soutenir le projet | Façons de contribuer ↑ · GitHub Sponsors |
🛠️ Stack technologique
| Couche | Technologie |
|---|---|
| Environnement d’exécution | Node.js 22.x / 24.x LTS — >=22.22.2 <23 || >=24.0.0 <27 |
| Langage | TypeScript 6.0 — 100 % TypeScript dans src/ et open-sse/ (aucun any dans le cœur depuis la v2.0) |
| Framework | Next.js 16 + React 19 + Tailwind CSS 4 |
| Base de données | better-sqlite3 (SQLite, journalisation WAL) + LowDB (ancien format JSON) — 122 modules métier, 176 migrations |
| Mémoire | Recherche plein texte SQLite FTS5 + plongements vectoriels quantifiés en int8, décroissance typée |
| Schémas | Zod 4 — validation des entrées/sorties des outils MCP + contrats d’API |
| Protocoles | MCP (stdio / HTTP / SSE) + A2A v0.3 (JSON-RPC 2.0 + SSE) |
| Diffusion en continu | Server-Sent Events (SSE) + passerelle WebSocket (/v1/ws) |
| Compression | Pipeline à 12 moteurs — RTK, Caveman, LLMLingua-2 (MobileBERT ONNX), GCF, OmniGlyph |
| Authentification & sécurité | OAuth 2.0 (PKCE) + JWT + clés API + authentification MCP à portée limitée · AES-256-GCM pour les données au repos · DOMPurify |
| Furtivité | wreq-js — usurpation d’empreintes TLS JA3 / JA4, proxy à 3 niveaux |
| Résilience | Disjoncteur, temporisation exponentielle, protection contre les afflux simultanés, auto-réparation par combinaison automatique |
| Journalisation | pino — journaux JSON structurés avec le contexte des requêtes |
| Tests | Exécuteur de tests Node.js + Vitest — plus de 39 000 déclarations de tests statiques réparties dans plus de 5 100 fichiers de test suivis (unitaires, intégration, E2E, sécurité, écosystème) |
| Plateformes | Ordinateur de bureau (Electron) · Android (Termux) · PWA (tout navigateur) |
| CI/CD | GitHub Actions — publication automatique sur npm + Docker Hub lors des versions |
| Liens | Site web · npm · Docker Hub |
📖 Documentation
📘 Bien démarrer
| Document | Description |
|---|---|
| Guide de l’utilisateur | Fournisseurs, combinaisons, intégration CLI, déploiement |
| Guide de configuration | Méthodes d’installation complètes, configurations des outils CLI, configuration des protocoles, réglage des délais d’expiration |
| Guide des outils CLI | Configuration propre à chaque outil pour Claude Code, Codex, Cursor, Cline, OpenClaw, Kilo, Copilot |
| Mode distant | Piloter une instance OmniRoute distante (VPS) depuis le CLI de votre ordinateur portable à l’aide de jetons d’accès à portée limitée |
| Configuration de Claude Code | Connecter Claude Code à OmniRoute (local/distant) avec launch et des profils propres à chaque modèle |
| Démarrage rapide | Installation en 3 étapes → connexion → configuration |
🔧 Exploitation et déploiement
| Document | Description |
|---|---|
| Guide Docker | Exécution de Docker, profils Compose, HTTPS avec Caddy, tunnels, étiquettes d’images |
| Guide Podman | Intégration de Quadlet avec systemd, podman-compose, SELinux |
| Déploiement sur une VM | Guide complet : configuration d’une VM, de nginx et de Cloudflare |
| Déploiement sur Fly.io | Déployer sur Fly.io avec un stockage persistant |
| Guide Termux | Exécuter OmniRoute sur Android via Termux |
| Guide PWA | Installation de l’application web progressive, mise en cache, architecture |
| Guide de désinstallation | Suppression propre pour toutes les méthodes d’installation |
| Configuration de l’environnement | Liste complète des variables .env et références |
🧠 Fonctionnalités et architecture
| Document | Description |
|---|---|
| Architecture | Architecture du système, flux de données et fonctionnement interne |
| Guide de compression | Pipeline à 7 options : désactivée / légère / standard / agressive / ultra / RTK / empilée |
| Compression RTK | Compression de la sortie des commandes, filtres, confiance, vérification, récupération de la sortie brute |
| Moteurs de compression | Caveman, RTK, pipelines empilés, interfaces de tableau de bord/API/MCP |
| Format des règles de compression | Schémas JSON des packs de règles pour les filtres Caveman et RTK |
| Packs linguistiques de compression | Détection de la langue et création de packs de règles Caveman |
| Guide de résilience | Disjoncteurs, périodes de récupération, file d’attente, prévention des afflux simultanés, usurpation TLS |
| Moteur Auto-Combo | Notation à 16 facteurs, packs de modes, autoréparation |
| Guide des proxys | Système de proxys à 3 niveaux, place de marché 1proxy, opérations CRUD sur le registre |
| Offres gratuites | Répertoire consolidé : 34 pools récurrents documentés / 452 entrées d’offres gratuites cataloguées |
| Galerie des fonctionnalités | Visite visuelle du tableau de bord avec captures d’écran |
| Documentation du code source | Présentation du code source adaptée aux débutants |
🤖 Protocoles et API
| Document | Description |
|---|---|
| Référence de l’API | Tous les points de terminaison avec des exemples |
| Spécification OpenAPI | Spécification OpenAPI 3.0 |
| Serveur MCP | 110 outils MCP, configurations d’IDE, clients Python/TS/Go |
| Guide du serveur MCP | Installation de MCP, transports et référence des outils |
| Serveur A2A | Protocole JSON-RPC 2.0, compétences, diffusion en continu, gestion des tâches |
| Guide du serveur A2A | Fiche d’agent A2A, tâches, compétences et diffusion en continu |
📋 Projet et qualité
| Document | Description |
|---|---|
| Contribution | Configuration et directives de développement |
| Modèle de branches et de publication | Branches ciblées par les PR (release/*), signification de main et des tags |
| Journal des modifications | Historique complet des publications par version |
| Politique de sécurité | Signalement des vulnérabilités et pratiques de sécurité |
| Guide d’internationalisation | Prise en charge de 42 langues, processus de traduction, RTL |
| Liste de contrôle de publication | Étapes de validation avant publication |
| Plan de couverture | Stratégie de couverture des tests pour plus de 39 000 déclarations de tests statiques réparties dans plus de 5 100 fichiers de test suivis |
⭐ Principaux contributeurs
OmniRoute est façonné par une communauté open source passionnée. Ces personnes ont apporté des contributions exceptionnelles qui ont un impact direct sur la qualité, la stabilité et la portée du projet. Merci.
Contributeurs externes classés par demandes de tirage fusionnées
| Rang | Contributeur | PR fusionnées | ~Lignes modifiées |
|---|---|---|---|
| 1 | backryun | 190 | 227,977 |
| 2 | oyi77 | 180 | 407,678 |
| 3 | rdself | 145 | 80,663 |
| 4 | JxnLexn | 128 | 387,049 |
| 5 | KooshaPari | 101 | 125,747 |
| 6 | herjarsa | 88 | 230,872 |
| 7 | RaviTharuma | 79 | 55,106 |
| 8 | maxmad64bis | 69 | 394,715 |
| 9 | artickc | 59 | 33,260 |
| 10 | HouMinXi | 51 | 47,334 |
| 10 | chirag127 | 51 | 5,153 |
| 12 | xz-dev | 50 | 245,976 |
| 13 | hartmark | 47 | 52,185 |
| 14 | rqzbeh | 39 | 143,181 |
| 15 | dhaern | 34 | 19,559 |
| 16 | Dingding-leo | 33 | 1,986 |
| 17 | NomenAK | 32 | 13,854 |
| 18 | MumuTW | 30 | 16,953 |
| 19 | benzntech | 29 | 11,641 |
| 20 | pacocartones | 24 | 9,331 |
| 20 | Prudhvivuda | 24 | 6,312 |
Classement arrêté à la pointe active de release/v3.8.50, commit dafb4ae808, avec les fusions effectuées jusqu’au 2026-08-24 à 05:26:03 UTC. Le recensement paginé via l’API GraphQL de GitHub contient 5 911 PR fusionnées : 2 707 par le propriétaire du dépôt, 179 par Dependabot et 3 025 PR externes provenant de 535 contributeurs distincts. Les « lignes modifiées » correspondent aux ajouts et suppressions calculés par GitHub et incluent les fichiers générés, les fichiers de verrouillage, les catalogues, les traductions et la documentation ; elles mesurent le volume de modifications, et non les lignes de code écrites. Les ex æquo à la limite du classement sont conservés.
Commits attribués par GitHub
|
backryun 🥇 220 commits attribués par GitHub |
Paijo 🥈 219 commits attribués par GitHub |
Randi 🥉 108 commits attribués par GitHub |
Ravi Tharuma 🏅 81 commits attribués par GitHub |
Chris 🏅 70 commits attribués par GitHub |
Markus Hartung 🏅 69 commits attribués par GitHub · ex æquo à la 6e place |
|
Dizzle 🏅 69 commits attribués par GitHub · ex æquo à la 6e place |
Jan Leon 🏅 64 commits attribués par GitHub |
zenobit 🏅 62 commits attribués par GitHub |
Bob.Hou 🏅 51 commits attribués par GitHub · ex æquo à la 10e place |
Xiangzhe 🏅 51 commits attribués par GitHub · ex æquo à la 10e place |
Revérifié le 2026-08-24 à 06:14:31 UTC : commits attribués par GitHub, tels que rapportés par l’API Contributors du dépôt pour la branche par défaut release/v3.8.50. L’API a renvoyé 525 identités (415 utilisateurs, 2 bots, 108 anonymes) ; ce tableau exclut le mainteneur, les bots et les identités anonymes, et conserve les ex æquo. Il est distinct à la fois du classement des PR fusionnées ci-dessus et du recensement de 639 personnes fondé sur les métadonnées Git ci-dessous.
🙏 Les fonctionnalités, les corrections de bugs et les améliorations de l’infrastructure apportées par ces contributeurs constituent une partie essentielle de ce qui rend OmniRoute fiable et riche en fonctionnalités. Chaque pull request, chaque cas de test et chaque fichier de traduction i18n compte. L’open source est construit par des personnes comme elles.
💖 Sponsors
Un grand merci aux personnes qui financent OmniRoute de leur propre poche — chaque contribution permet au projet de rester gratuit, indépendant et dynamique.
![]() Andrew 💛 Sponsor mensuel actif |
![]() Vlad I 💛 Sponsor mensuel actif |
![]() Paco Cartones 💛 Sponsor ponctuel actif |
![]() Prof. Igor Morais 💛 Ancien contributeur ponctuel |
![]() longtao 💛 Ancien contributeur ponctuel |
… et d’autres personnes qui préfèrent rester anonymes 💛
Les sponsors GitHub publics ont été revérifiés le 2026-08-24. Le statut activeOnly de GitHub détermine les libellés d’activité ci-dessus ; les contributeurs ponctuels publics précédemment déclarés restent remerciés, tandis que les sponsors privés restent anonymes.
💖 Devenir sponsor → — chaque dollar permet à OmniRoute de rester gratuit et indépendant.
👥 Plus de 600 contributeurs
Audit réalisé le 2026-08-24 à partir de la base figée ac02c5b42f, puis revérifié à la pointe active de release/v3.8.50, dafb4ae808 : 639 identités Git humaines normalisées — 407 apparaissent comme auteurs de commits (y compris le mainteneur) et 232 uniquement dans des lignes explicites Co-authored-by. Le recensement normalise les identifiants GitHub noreply, exclut 26 identités de bots, d’agents, de services ou d’espaces réservés, et ne fusionne pas les adresses e-mail ordinaires au seul motif que leurs noms d’affichage correspondent.
Comment contribuer
- Forkez le dépôt
- Créez votre branche à partir de la pointe active de
release/vX.Y.Z(et non demain) — consultez le modèle de branches et de versions - Créez votre branche de fonctionnalité (
git checkout -b feat/amazing-feature) - Commitez vos modifications (
git commit -m 'feat: add amazing feature') - Poussez vers la branche (
git push origin feat/amazing-feature) - Ouvrez une Pull Request avec base = cette branche
release/vX.Y.Z
Consultez CONTRIBUTING.md pour obtenir des directives détaillées.
Publier une nouvelle version
# Créer une version — npm publish s’exécute automatiquement
VERSION=x.y.z
gh release create "v${VERSION}" --title "v${VERSION}" --generate-notes
📊 Étoiles
🙏 Remerciements
OmniRoute repose sur les épaules de géants. Le projet a commencé comme un fork de 9router et un portage TypeScript du projet Go CLIProxyAPI — puis, à partir de là, chacun des sous-systèmes ci-dessous s’est inspiré d’un projet open source qui l’avait précédé. Chacun d’entre eux a façonné une partie concrète d’OmniRoute. Nous tenons à tous les remercier. 🙏
⭐ nombre d’étoiles vérifié à partir de l’API REST de GitHub le 24 août 2026 — allez attribuer une étoile à ces projets. Ces nombres constituent un instantané exact à cette date et évolueront naturellement.
🧬 Filiation et passerelle
| Projet | ⭐ | Comment il a inspiré OmniRoute |
|---|---|---|
| 9router | 26,161 | Le projet d’origine sur lequel repose ce fork — étendu ici avec des API multimodales et une réécriture complète en TypeScript. |
| CLIProxyAPI | 48,497 | L’implémentation en Go qui a inspiré ce portage JavaScript / TypeScript. |
| LiteLLM | 57,100 | La passerelle d’IA dont le jeu de données public sur les tarifs alimente notre synchronisation du suivi des coûts et dont le modèle de normalisation des fournisseurs a guidé notre routage. |
| codex-chatgpt-web | 1,410 | Code source sous licence MIT adapté dans la passerelle intégrée ChatGPT Web → Codex Responses, notamment les adaptateurs de session de navigateur, de structuration des réponses, d’utilisation et de recherche sur le Web. |
| free-claude-code | 48,112 | Modèles portés dans la récupération des flux, les alias sans raisonnement, la recherche Web de secours, les limites par fenêtre glissante, la caviardisation des journaux et les flux renforcés du lanceur. |
| composer-api | 322 | Modèles de sélection d’outils, de contraintes de sortie et de validation d’outils de Cursor Composer adaptés dans l’exécuteur Cursor natif. |
| codex-multi-auth | 457 | Modèles de nouvelle connexion et de rotation des jetons d’actualisation portés dans la réauthentification OAuth de Codex. |
| opencode-anthropic-auth | 510 | Valeurs par défaut de transformation compatibles avec Claude Code et comportement des en-têtes de facturation généralisés dans la passerelle d’OmniRoute pilotée par la configuration. |
| grok2api-merged | 2 | Ses correspondances de modèles Grok, son générateur Statsig simulant une TypeError, ses valeurs par défaut pour les requêtes et les appareils, ainsi que son processeur de réponses NDJSON ont été adaptés de manière substantielle dans l’exécuteur Grok Web d’OmniRoute. |
| TQZHR/grok2api | 705 | La principale source de code transitive à l’origine de grok2api-merged ; ses implémentations des modèles, des en-têtes, des charges utiles, de Statsig et du processeur sont préservées dans la lignée de Grok Web. |
| chenyme/grok2api | 7,520 | La source sous-jacente sous licence MIT pour les valeurs par défaut des charges utiles et des appareils de Grok, le générateur Statsig et le processeur result.response repris par l’intermédiaire de TQZHR et de grok2api-merged. |
| grok2api-pro | 27 | Une source transitive créditée par grok2api-merged pour sa couche de pool de proxys ; OmniRoute conserve cette mention de filiation, mais ne revendique pas le portage d’un pool de proxys dans son exécuteur Grok Web délimité. |
| GrokProxy | 50 | Son proxy Grok authentifié par cookie et son modèle de diffusion en continu result.response.token ont guidé le transport Grok Web d’OmniRoute. |
| GrokBridge | 5 | L’implémentation Grok Web d’origine a pris en compte sa conception du service en amont HTTP/navigateur ; son chemin HTTP direct dérive de GrokProxy, aucun portage de code indépendant n’est donc revendiqué. |
| grok-web-api | 14 | Ses schémas Rust ChatOptions et d’enveloppe de réponse ont guidé les types TypeScript d’OmniRoute pour les requêtes Grok et les réponses en continu. |
🗜️ Compression du contexte et des jetons — moteurs
| Projet | ⭐ | Comment il a inspiré OmniRoute |
|---|---|---|
| Caveman | 100,538 | Le projet viral « pourquoi utiliser beaucoup jetons quand peu jetons faire affaire » — sa philosophie de langage d’homme des cavernes alimente notre mode de compression standard et plus de 30 règles de suppression des mots de remplissage et de condensation. |
| RTK – Rust Token Killer | 77,185 | Compression haute performance des sorties de commandes — a inspiré notre moteur RTK, notre DSL de filtrage JSON, la récupération de la sortie brute et le pipeline en cascade RTK → Caveman. |
| headroom | 67,310 | Compression réversible du contexte (SmartCrusher) — a inspiré notre moteur headroom et le modèle de marqueur de récupération ccr. |
| LLMLingua | 6,598 | Recherche sur la compression des invites (LLMLingua / LLMLingua-2) — a inspiré notre moteur llmlingua asynchrone, compatible avec le code et conçu pour rester opérationnel en cas d’échec. |
| llmlingua-2-js | 31 | Le portage JS/ONNX (MobileBERT / XLM-RoBERTa) utilisé comme moteur d’exécution dans un thread de travail pour notre moteur LLMLingua. |
| Troglodita | 40 | Compression de jetons en portugais brésilien — alimente notre pack linguistique pt-BR : réduction des pléonasmes et suppression des mots de remplissage adaptées à la grammaire du portugais brésilien. |
| ponytail | 108,957 | La compétence virale de « développeur senior paresseux » adepte de YAGNI — a inspiré notre style de sortie less-code : privilégier la plus petite modification fonctionnelle afin de réduire le code _généré_ (l’équivalent, côté sortie, de la prose concise de Caveman). |
| i-have-adhd | 23,526 | Son style de réponse axé sur l’action et adapté au TDAH a été intégré au style de sortie concis d’OmniRoute dans cinq langues. |
🧩 Formats compacts, recherche sur les jetons et outils tenant compte du code
| Projet | ⭐ | Comment il a inspiré OmniRoute |
|---|---|---|
| TOON | 25,233 | Notation d’objet orientée jetons — son modèle en colonnes, composé d’un en-tête et de lignes, a façonné notre étape de compactage tabulaire. |
| GCF – Graph Compact Format | 41 | Son format de graphe compact et sa conception fondée sur un profil générique ont influencé le compactage tabulaire d’OmniRoute et le format du codec Headroom. |
| gcf-typescript | 4 | L’implémentation TypeScript sous licence MIT, directement intégrée et étendue pour servir de codec à profil générique de Headroom. |
| token-optimizer-mcp | 494 | Cache Brotli/SQLite et delta de contexte par session — a inspiré notre moteur session-dedup. |
| token-savior | 1,122 | Compactage des sorties Bash et profils MCP — a inspiré notre discipline d’abandon de la compression et la réduction des manifestes d’outils MCP. |
| token-saver | 138 | Compression de sortie tenant compte du contenu, adaptée à chaque type de fichier et avec abandon en cas d’échec — a validé notre répartition par type et notre mécanisme d’omission en cas de gain insuffisant. |
| token-optimizer | 1,951 | « Trouvez les jetons fantômes » — son modèle de déport et d’identifiant récupérable a influencé notre réflexion sur le déport CCR. |
| TokenMizer | 28 | Un modèle de graphe de session et de déduplication des lignes entre plusieurs tours qui a influencé la conception de notre moteur session-dedup. |
| OmniCompress | 3 | JSON en colonnes sous Rust, récupération adressée par le contenu et déduplication entre messages — a validé la conception de nos moteurs headroom/ccr/session-dedup ainsi que l’invariant de stabilité du cache selon lequel « la forme compressée est indépendante de la position ». |
| mcp-compressor | 113 | Compression des schémas et descriptions d’outils MCP — a influencé notre réduction de la cardinalité des manifestes d’outils MCP. |
| RepoMapper | 197 | Classement de cartes de dépôt dans le style d’Aider — a influencé notre exploration de la cartographie des dépôts et du classement pour la récupération. |
| quiet-shell-mcp | 4 | Réduction déclarative des sorties shell via MCP — a validé notre compactage déclaratif des sorties Bash. |
| ts-morph | 6,162 | Boîte à outils pour l’API du compilateur TypeScript — a inspiré notre suppression des commentaires fondée sur un analyseur syntaxique, qui préserve les littéraux de chaîne, de modèle et d’expression régulière. |
🧠 Mémoire et RAG
| Projet | ⭐ | Comment il a inspiré OmniRoute |
|---|---|---|
| Mem0 | 63,902 | Couche de mémoire universelle — son modèle de proxy servant de frontière de lecture/écriture a façonné notre architecture de mémoire. |
| Letta (MemGPT) | 24,382 | Agents avec état et mémoire hiérarchisée — a inspiré notre modèle hiérarchisé de contrôle et de récupération du contexte (CCR). |
| WFGY | 1,781 | La taxonomie ProblemMap de 16 modes de défaillance récurrents des systèmes RAG/LLM — le vocabulaire commun utilisé dans notre guide de dépannage. |
🛰️ Inspection du trafic, MITM et proxy transparent
| Projet | ⭐ | Comment il a inspiré OmniRoute |
|---|---|---|
| llm-interceptor | 66 | L'interception et l'analyse MITM du trafic entre assistants de programmation et LLM ont contribué à définir les premières exigences de l'Inspecteur de trafic. Quatre modules précédemment dérivés — fusion SSE, normalisation des conversations, masquage des secrets et assainissement des en-têtes — ont été remplacés par des implémentations indépendantes en salle blanche, fondées sur des normes de protocole publiques. Les deux surfaces de transmission directe vers l'hôte (passthrough.ts et _internal/bypass.cjs) restent des implémentations internes à OmniRoute, classées indépendamment ; elles n'ont pas été réécrites dans le cadre de ce remplacement. |
| ProxyBridge | 5,995 | Routage transparent du proxy par processus — a inspiré notre arrêt MITM résistant aux plantages, les délais d'inactivité des sockets, l'attribution des processus via /proc et la capture TPROXY. |
📚 Données des modèles, observabilité et interface utilisateur
| Projet | ⭐ | Comment il a inspiré OmniRoute |
|---|---|---|
| models.dev | 6,555 | Base de données ouverte regroupant les spécifications, les tarifs et les capacités des modèles d'IA — synchronisée nativement avec notre catalogue de modèles. |
| React Flow / xyflow | 38,108 | La bibliothèque de graphes à base de nœuds qui alimente en temps réel notre Studio de compression et notre Studio de combinaisons/routage. |
| LangGraph | 40,314 | La visualisation en direct des graphes de flux de travail de LangGraph Studio a inspiré la vue en cascade en temps réel de nos Studios. |
| Langfuse | 33,592 | Son modèle d'observabilité trace → span → génération a façonné la vue en cascade de notre Studio de compression. |
| Kiali | 3,631 | Observabilité du maillage de services Istio — a inspiré nos badges de coupe-circuit et la représentation visuelle des arêtes en erreur dans le Studio de routage/combinaisons. |
| lobe-icons | 2,428 | Logos de marques d'IA/LLM utilisés pour afficher les icônes des fournisseurs dans l'ensemble de notre tableau de bord. |
| flag-icons | 12,354 | Fournit les drapeaux SVG sous licence MIT utilisés par le sélecteur de langue du README. |
🛡️ Sécurité
| Projet | ⭐ | Comment il a inspiré OmniRoute |
|---|---|---|
| awesome-secure-defaults | 721 | Une liste soigneusement sélectionnée de bibliothèques sécurisées par défaut qui guide nos choix en matière de sécurité (Helmet.js, DOMPurify, ssrf-req-filter, safe-regex, Google Tink). |
🧭 Outils complémentaires
| Projet | ⭐ | Comment il a inspiré OmniRoute |
|---|---|---|
| ClawRouter | 6,564 | A inspiré la déduplication des requêtes, le repli d'urgence sans coût, les stratégies Auto-Combo enfichables et la classification multilingue des intentions. |
| Antigravity-Manager | 30,652 | Ses mécanismes de remappage des modèles tenant compte des comptes, de validation des chemins d'exécutables et de gestion des libellés de forfait ont influencé l'environnement d'exécution Antigravity d'OmniRoute. |
| vscode-antigravity-cockpit | 4,817 | Son format compact de compte à rebours avant la réinitialisation des quotas a inspiré l'affichage correspondant des limites des fournisseurs dans OmniRoute. |
| AionUi | 32,230 | Ses intégrations ACP ont inspiré la détection automatique par OmniRoute des agents CLI installés. |
| CodexBar | 20,507 | A permis d'identifier l'interface de quota de Grok Build ; OmniRoute a ensuite vérifié et corrigé indépendamment le format réellement utilisé sur le réseau. |
📄 Licence
Licence MIT — consultez le fichier LICENSE pour plus de détails.
⬆ Retour en haut · Conçu avec ❤️ pour la communauté de l’IA open source.
OmniRoute v3.8.51 · Node ≥22.22.2 · Licence MIT · omniroute.online





