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

# 🚀 OmniRoute — La passerelle IA gratuite **Créé par [Diego Souza](https://github.com/diegosouzapw)** OmniRoute — Ne cessez jamais de coder. Chaque outil d’IA → 388 fournisseurs — dont 150+ gratuits — via un seul endpoint. Claude Code, Codex, Cursor, Cline, Copilot et Antigravity vers Claude / GPT / Gemini GRATUITS avec basculement automatique. La compression empilée RTK + Caveman économise 15–95 % de tokens (~89 % en moyenne) — ne rencontrez jamais de limites. 388 fournisseurs d’IA · 150+ offres gratuites · ~1,62 milliard de tokens gratuits/mois · 20 stratégies de routage · 0 $ pour commencer.
## 💰 ~1,62 Md de tokens / mois grâce aux niveaux gratuits de fournisseurs tiers
> **Utilisez vos propres comptes fournisseurs.** Il s’agit d’un agrégat estimé de niveaux gratuits tiers éligibles séparément, et non d’une attribution de tokens par OmniRoute. Inscrivez-vous, obtenez les identifiants requis et connectez les fournisseurs que vous pouvez utiliser ; chaque fournisseur contrôle ses limites, sa disponibilité et ses conditions. > > Empiler manuellement les niveaux gratuits 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 **465 entrées de niveaux gratuits réparties entre 34 clés de pools récurrentes** et calcule le total de tokens à partir des **17 pools ayant un budget mensuel positif publié, ainsi que de cinq limites Groq par modèle**, avec déduplication selon les pools partagés. Les quotas qui ne sont disponibles qu’après une vérification d’identité régionale (aujourd’hui : ModelScope) sont présentés séparément, +~6 M après vérification de l’identité régionale, et ne sont jamais inclus dans le total. Le résultat reste visible sur le tableau de bord (`/dashboard/free-tiers`). Carte des budgets des niveaux gratuits d’OmniRoute : ~1,62 Md de tokens gratuits par mois de manière stable, jusqu’à ~2,22 Md le premier mois avec les crédits d’inscription, provenant de 34 clés de pools récurrentes documentées couvrant 465 entrées de niveaux gratuits répertoriées derrière un seul endpoint. Calcul honnête avec déduplication des pools — chaque pool partagé n’est compté qu’une fois, y compris 17 pools récurrents avec un budget mensuel positif publié en tokens, ainsi que cinq limites Groq par modèle ; 12 fournisseurs sont marqués comme à éviter dans le catalogue des risques liés aux conditions, afin que vous puissiez décider. La barre de budget inclut Mistral 1 Md, Nara 210 M, LLM7 150 M, xKiro 150 M, Groq 30 M (cinq limites par modèle) et des pools plus petits, ainsi que les crédits d’inscription du premier mois et les fournisseurs définitivement gratuits sans plafond de tokens, présentés séparément afin qu’ils n’augmentent jamais le total. Utilisation et solde restants en direct sur /dashboard/free-tiers. > Résumé animé de la page `/dashboard/free-tiers` en direct. Méthodologie complète (déduplication des pools, niveaux de crédits, conditions des fournisseurs) : **[docs/reference/FREE_TIERS.md](docs/reference/FREE_TIERS.md)**. > > Ces chiffres sont réaudités toutes les deux semaines par rapport au catalogue en direct et **évoluent dans les deux sens** — un fournisseur met fin à un niveau gratuit et le nombre diminue ; un nouveau fournisseur arrive et il augmente. Nous publions ce que le catalogue calcule réellement, jamais une estimation optimiste arrondie à la hausse.

⭐ Ajoutez une étoile au dépôt si OMNIROUTE vous a aidé à économiser de l’argent et à faciliter votre travail.

[![Stars](https://img.shields.io/github/stars/diegosouzapw/OmniRoute?style=social)](https://github.com/diegosouzapw/OmniRoute) diegosouzapw%2FOmniRoute | Trendshift [![Classement de l’historique des étoiles](https://api.star-history.com/badge?repo=diegosouzapw/OmniRoute&theme=dark)](https://www.star-history.com/diegosouzapw/omniroute) [![olud.ai](https://olud.ai/badge.php?tool=diegosouzapw-omniroute)](https://olud.ai/project/diegosouzapw-omniroute.html) ### 💬 Rejoignez la communauté **👋 Suivez le responsable de la maintenance — découvrez en avant-première les nouveaux fournisseurs, les versions et les conseils :** [![Suivre Diego sur LinkedIn](https://img.shields.io/badge/Follow_Diego_on-LinkedIn-0A66C2?style=for-the-badge&logo=linkedin&logoColor=white)](https://www.linkedin.com/in/diegosouzapw/) [![Suivre @diegosouzapw sur GitHub](https://img.shields.io/github/followers/diegosouzapw?style=for-the-badge&logo=github&logoColor=white&label=Follow%20on%20GitHub&color=181717)](https://github.com/diegosouzapw) [![Discord](https://img.shields.io/badge/Discord-5865F2?style=for-the-badge&logo=discord&logoColor=white)](https://discord.gg/U47eFqAXCn) [![Telegram](https://img.shields.io/badge/Telegram-26A5E4?style=for-the-badge&logo=telegram&logoColor=white)](https://t.me/omnirouteOficial) [![WhatsApp Global](https://img.shields.io/badge/WhatsApp_Global-25D366?style=for-the-badge&logo=whatsapp&logoColor=white)](https://chat.whatsapp.com/FvuCbrpZmQ6I85n2vW5QIC?s=cl&p=a&mlu=4) [![WhatsApp Brésil](https://img.shields.io/badge/WhatsApp_Brasil-25D366?style=for-the-badge&logo=whatsapp&logoColor=white)](https://chat.whatsapp.com/KWgatljAjmbELQory59Oti?s=cl&p=a&mlu=4) [![Site web](https://img.shields.io/badge/Website-omniroute.online-blue?logo=google-chrome&logoColor=white)](https://omniroute.online) **Questions, conseils sur les fournisseurs, feuille de route et assistance → [Discord](https://discord.gg/U47eFqAXCn) · [Telegram](https://t.me/omnirouteOficial) · WhatsApp [🌍 Global](https://chat.whatsapp.com/FvuCbrpZmQ6I85n2vW5QIC?s=cl&p=a&mlu=4) / [🇧🇷 Brésil](https://chat.whatsapp.com/KWgatljAjmbELQory59Oti?s=cl&p=a&mlu=4) / [Portail](https://portal.sthub.com.br/communities/groups/st-hub/channels/Omniroute-World-8kRjmK)**
## 📈 La passerelle continue de grandir
| | v3.8.50 | **v3.8.51** | `v3.8.54+` | | ------------------------------------------ | :-----------------------: | :---------: | :----------------------: | | 🌐 Fournisseurs | 352 | **358** | 388 | | 🧠 Identifiants de modèles de chat uniques | 1320 | **1374** | 1491 | | 🖼️ Passerelle de modalités | 🆕 vision + audio + vidéo | ✓ | ✓ | | 📡 Catalogue gratuit du radar | 🆕 inscription volontaire | ✓ | ✓ | | ⚖️ Planification tenant compte des quotas | 🆕 Quota-Share | ✓ | ✓ | | 📊 Télémétrie des quotas | 🆕 en temps réel | ✓ | ✓ | | 🧰 Mode sans interface | — | — | 🆕 `serve --headless` | | 🛤️ Infrastructure ferroviaire LTS | — | — | 🆕 canaux de publication | | 🔎 API de découverte des modèles | — | — | 🆕 `/v1/models/query` | **→ [Feuille de route](ROADMAP.md) — en route vers `v3.9.0 LTS`**

## 🧩 Disponible [![version npm](https://img.shields.io/npm/v/omniroute?color=cb3837&logo=npm)](https://www.npmjs.com/package/omniroute) ![NPM mensuel](https://img.shields.io/npm/dm/omniroute?label=npm/month&color=cb3837&logo=npm) [![Docker Hub](https://img.shields.io/docker/v/diegosouzapw/omniroute?label=Docker%20Hub&logo=docker&color=2496ED)](https://hub.docker.com/r/diegosouzapw/omniroute) [![Licence : MIT](https://img.shields.io/badge/License-MIT-yellow.svg?style=flat-square)](LICENSE) ![Téléchargements Docker](https://img.shields.io/docker/pulls/diegosouzapw/omniroute?label=docker%20pulls&logo=docker&color=2496ED) ![Téléchargements Electron](https://img.shields.io/github/downloads/diegosouzapw/omniroute/total?style=flat&label=electron%20downloads&logo=electron&color=47848F)
🚀 Démarrer 🚀 Démarrage rapide 📦 Installer 🆓 Connecter un fournisseur
💡 Découvrir 💥 La promesse 🤔 Pourquoi OmniRoute 🏆 Ce qui nous distingue
⚙️ Fonctionnalités 🎯 Combos 🌐 Fournisseurs 🔌 CLI & MCP
🗜️ Compression 🖥️ Où il s’exécute 🔒 Privé
👀 Voir 🎬 En action ✨ Nouveautés 🤖 CLI compatibles
💚 Soutenir 💚 Soutenir / Faire un don 💬 Communauté 💖 Sponsors
📦 Projet 🛠️ Stack technique 📖 Documentation 👥 Contributeurs
🌐 En 67 langues

Anglais (en) Portugais — Brésil (pt-BR) Portugais (pt) Espagnol (es) Français (fr) Italien (it) Allemand (de) Néerlandais (nl) Russe (ru) Ukrainien (uk-UA) Polonais (pl) Tchèque (cs) Slovaque (sk) Roumain (ro) Hongrois (hu) Bulgare (bg) Danois (da) Finnois (fi) Norvégien (no) Suédois (sv) Chinois — simplifié (zh-CN) Chinois — traditionnel (zh-TW) Japonais (ja) Coréen (ko) Thaï (th) Vietnamien (vi) Indonésien (id) Malais (ms) Filipino (phi) Hindi (hi) Goudjarati (gu) Marathi (mr) Tamoul (ta) Télougou (te) Bengali (bn) Ourdou (ur) Persan (fa) Arabe (ar) Hébreu (he) Turc (tr) Azéri (az) Swahili (sw) Grec (el) Croate (hr) Serbe (sr) Lituanien (lt) Estonien (et) Letton (lv) Slovène (sl) Maltais (mt) Irlandais (ga) Kannada (kn) Malayalam (ml) Odia (or) Pendjabi (pa) Népalais (ne) Cingalais (si) Birman (my) Khmer (km) Haoussa (ha) Yoruba (yo) Igbo (ig) Amharique (am) Ouzbek (uz) Géorgien (ka) Arménien (hy) Bosniaque (bs)


## 🆓 Installer, connecter un fournisseur, puis router via un seul endpoint
Trois étapes : installer et démarrer OmniRoute, connecter un fournisseur éligible avec votre propre compte ou clé API, puis configurer votre outil pour utiliser localhost:20128/v1 avec une clé API OmniRoute et le modèle auto. Le routage dépend des connexions éligibles disponibles et des limites des fournisseurs. ```bash # Après avoir connecté un fournisseur, copiez votre clé OmniRoute depuis Tableau de bord → Endpoints : curl http://localhost:20128/v1/chat/completions \ -H "Authorization: Bearer YOUR_OMNIROUTE_KEY" \ -H "Content-Type: application/json" \ -d '{"model":"auto","messages":[{"role":"user","content":"Hello!"}]}' ``` `auto` nécessite une route éligible. Une installation fraîche peut ne disposer d'aucune cible éligible sans clé, et un fournisseur sans clé peut refuser les clients tiers. Les fournisseurs marqués `tos: avoid`, notamment Kiro, sont exclus du routage automatique par défaut ; la connexion d’un compte ne remplace pas ce paramètre. Consultez le [Guide des offres gratuites](docs/getting-started/FREE-TIERS-GUIDE.md) avant de choisir un fournisseur. 📦 Scripts de démarrage rapide à copier-coller pour **Python, Node.js, PHP et cURL** → [`examples/quickstart/`](examples/quickstart/)
# 💥 La promesse
La promesse — Un endpoint et 388 fournisseurs. Le basculement automatique maintient le routage tant qu’une autre cible saine est disponible. Six piliers : basculement résilient entre 388 fournisseurs · jusqu’à 95 % d’économies de tokens sur les charges de travail éligibles · 0 $ pour commencer avec plus de 150 offres gratuites et 52 fournisseurs gratuits récurrents ou sans clé, pour toujours · 39 intégrations CLI/agent via une seule configuration · compatibilité avec les API OpenAI, Claude, Gemini et Responses à /v1 · contrôles de production, notamment disjoncteurs, furtivité TLS, 110 outils MCP, A2A, mémoire, garde-fous, évaluations et plus de 56 000 déclarations de tests statiques réparties dans plus de 7 800 fichiers de test suivis.

# 🤔 Pourquoi OmniRoute ?
Pourquoi OmniRoute — cessez de jongler entre 10 tableaux de bord, les clés API désactivées et les factures surprises. Dix problèmes quotidiens et leurs solutions : quota expirant sans être utilisé → maximiser les abonnements ; limites de débit en plein codage → basculement automatique à 4 niveaux (Abonnement → API → Économique → Gratuit) ; sorties d’outils consommant des tokens → compression RTK + Caveman (15–95 %) ; API coûteuses → routage optimisé en fonction des coûts ; chaque outil nécessitant sa propre configuration → un endpoint, un tableau de bord ; IA bloquée → proxy à 3 niveaux + furtivité TLS ; clés désactivées → résilience à 3 niveaux (disjoncteurs, période de refroidissement des clés, verrouillage des modèles) ; équipe partageant un seul abonnement → pools de clés avec quotas équitables ; prompts transitant par le cloud d’un tiers → approche locale privilégiée avec clés chiffrées en AES-256-GCM ; absence de visibilité sur les dépenses → analyses en temps réel (utilisation, quota, économies, latence p95).
Flux d’une requête OmniRoute : votre IDE ou CLI (Claude Code, Cursor, Cline…) appelle un seul endpoint local (http://localhost:20128/v1) ; le routeur intelligent OmniRoute (compression RTK + Caveman, 20 stratégies de routage, disjoncteurs, furtivité TLS, MCP, A2A, garde-fous) peut basculer entre 4 niveaux de fournisseurs tant qu’une cible éligible et saine reste disponible — Niveau 1 Abonnement, Niveau 2 Clé API, Niveau 3 Économique et Niveau 4 Gratuit.

## 🤝 Soutenu par nos Amis Open Source

Kimi K3 — Intelligence de pointe ouverte · 2.8T paramètres · Contexte de 1M de jetons

> **Vous voulez nous rejoindre en tant qu'Ami Open Source ?** Ce sont les entreprises qui soutiennent l'open source et aident à maintenir OmniRoute en mouvement — et nous déclarons publiquement où va chaque jeton qu'elles nous donnent. Contactez-nous : [diegosouza.pw@outlook.com](mailto:diegosouza.pw@outlook.com)
Kimi (Moonshot AI)
Kimi
Moonshot AI

Ami Fondateur Open Source
Merci à Kimi (Moonshot AI), notre Ami Fondateur Open Source, de soutenir ce projet ! Kimi est le laboratoire d'IA derrière les familles de modèles à poids ouverts K2 et K3 — Kimi K3 offre une fenêtre contextuelle de 1M de jetons, une vision native et un codage de pointe à une fraction des prix des modèles fermés, et fonctionne directement avec Claude Code, Codex et tous les outils de codage qu'OmniRoute prend en charge.

Ce que le soutien de Kimi finance : Les crédits API de Kimi alimentent le pipeline de publication validé par l'IA d'OmniRoute — l'étape de validation de fusion alimentée par Kimi K3 qui examine chaque pull request avant sa publication — ainsi que le développement quotidien de fonctionnalités. Le support de première classe de Kimi est disponible sur les deux rails : l'API directe Kimi (kimi-k3) et le plan de codage Kimi Code (OAuth et clé API). OmniRoute est également le premier projet open source brésilien dans le programme de soutien de Kimi. Obtenez une clé API Kimi avec 15% de crédits supplémentaires →
Inférence Moins Chère
Cheaper Inference
cheaperinference.com

Ami Open Source
Merci à Cheaper Inference, un Ami Open Source d'OmniRoute, de soutenir ce projet ! Cheaper Inference est une passerelle classée par coût qui revend 42 modèles de pointe — Claude, GPT-5.x, Gemini, Kimi K3, GLM, DeepSeek, Grok et MiniMax — derrière un seul point d'accès compatible OpenAI, acheminant chaque requête vers le fournisseur éligible le moins cher sans jamais facturer au-dessus du prix catalogue du créateur du modèle.

Support de première classe dans OmniRoute : Chat Completions, le point d'accès 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 cheaperinference/<model>). Obtenez une clé API →
Les liens tagués aff=omniroute sont des liens partenaires. Ils financent le projet sans coût supplémentaire pour vous.
🎟️ Promo Affiliés — coupons d'inscription gratuits de fournisseurs que nous ne sponsorisons pas (cliquez pour développer) Cette section est uniquement destinée aux codes de parrainage/coupon. Les partenariats sponsorisés se trouvent dans 🤝 Soutenu par nos Amis Open Source ci-dessus. OmniRoute n'a aucun parrainage ou partenariat avec les fournisseurs listés ici — ce sont des coupons publics que tout le monde peut utiliser.
AgentRouter
AgentRouter
agentrouter.org
AgentRouter — inscription affiliée · 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). Support de première classe dans OmniRoute depuis la v3.8.50 : Chat Completions, le format de fil compatible Anthropic et le chemin compatible OpenAI. Les modèles disponibles incluent claude-opus-4-8, claude-opus-5, gpt-5.6-sol et plus encore. Récupérez vos 100 $ →

⚠️ Lien d'affiliation — OmniRoute n'a aucun parrainage ou partenariat avec ce fournisseur.
Vous connaissez un autre fournisseur avec un généreux coupon d'inscription gratuit qui profite aux utilisateurs d'OmniRoute ? Ouvrez une issue et nous l'ajouterons ici.

## 🎯 Combos — La fonctionnalité phare
Exemples animés pour 18 des 20 stratégies de routage des combos — une vignette par stratégie : priority, fill-first, weighted, round-robin, p2c, least-used, random, strict-random, cost-optimized, headroom, reset-window, reset-aware, context-relay, context-optimized, lkgp, auto, fusion, pipeline. cache-optimized et quota-weighted ne sont pas animées ; le tableau ci-dessous décrit les 20 stratégies. > Un **combo** est une chaîne de modèles entre lesquels OmniRoute effectue le routage **automatiquement**. Si le quota est épuisé, qu'un fournisseur tombe en panne ou que les coûts grimpent, le combo peut passer au modèle sain et éligible suivant. 🛡️ ### ⚡ Sans configuration — utilisez simplement `auto` Aucun combo à créer. Définissez votre modèle sur `auto` (ou une variante) et OmniRoute construit un combo virtuel à partir de vos fournisseurs connectés, évalués en temps réel :
ID du modèleCe qu'il optimise
auto🎯 Choix équilibré par défaut (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 token le plus bas en priorité
auto/subscription🎟️ Uniquement le quota d'abonnement que vous payez déjà — échec sans repli, jamais de solution de secours facturable (guide)
auto/thrifty🪜 D'abord le quota du forfait, puis progression palier par palier vers les options payantes les moins chères — retour au forfait après sa réinitialisation (guide)
auto/offline🔋 Plus grande marge de quota ou de limite de débit 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🧪 Diffusion parallèle vers un panel de modèles (un par fournisseur, 5 par défaut), avec renvoi d'une seule réponse ; un appel en amont par modèle du panel, sans injection de panne
## ### 🔀 Ou créez le vôtre — 20 stratégies de routage Les **20** stratégies — à combiner librement à chaque étape du combo :
# Stratégie Fonctionnement
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 dans l'ordre de manière cyclique
5 p2c Équilibrage de charge aléatoire selon la puissance de 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 du catalogue en temps réel 💸
10 headroom Sélectionne la cible disposant du plus grand quota restant
11 quota-weighted Ignore les comptes épuisés, puis effectue un tirage proportionnel au quota restant ÷ la charge en cours — les conversations existantes restent rattachées ⚖️
12 reset-window Privilégie la cible dont la fenêtre de quota est réinitialisée le plus tôt
13 reset-aware Classe selon l'heure de réinitialisation du quota — fenêtres courtes en premier 📊
14 context-relay Transmet le contexte entre les cibles pour les longues conversations 🧠
15 context-optimized Sélectionne la cible la mieux adaptée à la taille actuelle du contexte
16 cache-optimized Rattache chaque préfixe de prompt réutilisable au même compte — maximise les accès au cache de prompts 🎯
17 lkgp Dernier chemin fiable connu — rattache au dernier fournisseur ayant réussi, puis se replie sur les règles
18 auto Évaluation en temps réel selon 16 facteurs pour chaque connexion 🤖
19 fusion Diffuse vers un panel de modèles + un juge synthétise une réponse unique 🧬
20 pipeline Enchaîne les étapes — la sortie de chaque cible alimente la suivante 🔗
Le moteur Auto-Combo évalue chaque candidat selon **16 facteurs** (santé, quota, coût, latence, adéquation à la tâche, qualité, disponibilité de la session…) — voir [`docs/routing/AUTO-COMBO.md`](docs/routing/AUTO-COMBO.md). ## ### 🧱 La résilience est intégrée (3 couches indépendantes) Résilience d’OmniRoute — 3 couches indépendantes d’autoréparation, chacune adaptée au type de défaillance approprié. Couche 1 : disjoncteur du fournisseur (fournisseur entier) : se déclenche uniquement en cas de réponse 408/5xx, seuils OAuth 8× / clé API 12× / local 2×, réinitialisation après 60s/30s/15s avec une sonde HALF-OPEN, récupération différée ; tant qu’il est OPEN, le combo redirige vers le fournisseur suivant. Couche 2 : délai de récupération de la connexion (une clé/un compte) : base de 5s pour OAuth / 3s pour une clé API, temporisation exponentielle ×2 avec protection contre les reprises simultanées, une réponse 429 respecte Retry-After, une réussite efface tous les états d’erreur ; une clé en cours de récupération est ignorée tandis que les autres clés continuent d’assurer le service. Couche 3 : verrouillage du modèle (un modèle) : une réponse 429 propre au modèle, une réponse 404 locale ou un refus lié au mode verrouille uniquement ce modèle — jamais la connexion entière. Les états terminaux (banni, expiré, crédits épuisés) relèvent de l’opérateur, pas des délais de récupération. 📖 [Moteur Auto-Combo](docs/routing/AUTO-COMBO.md) · [Guide de résilience](docs/architecture/RESILIENCE_GUIDE.md)
## 🏆 Ce qui distingue OmniRoute
Ce qui distingue OmniRoute — instantané daté des fonctionnalités comparant 9router, OpenRouter, CLIProxyAPI et LiteLLM sur 13 capacités. OmniRoute : 388 fournisseurs, plus de 150 niveaux gratuits intégrés, 20 stratégies de routage, compression des tokens avec 12 moteurs, serveur MCP intégré avec 110 outils, protocole d’agents A2A, mémoire persistante, garde-fous, agents cloud, furtivité de l’empreinte TLS, Desktop/Termux/PWA et 67 paramètres régionaux d’interface utilisateur i18nisés. OmniRoute est sous licence MIT et peut être auto-hébergé. Les capacités et les chiffres des concurrents peuvent évoluer ; consultez la méthodologie liée. 📊 Méthodologie complète et détails par fonctionnalité comparant 9router, OpenRouter, CLIProxyAPI et LiteLLM → [`docs/comparison/OMNIROUTE_VS_ALTERNATIVES.md`](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ôtGratuit — cela améliore réellement sa visibilitéAjouter une étoile à OmniRoute
🐙 GitHub SponsorsDon ponctuel ou mensuel · aucuns frais de plateformegithub.com/sponsors/diegosouzapw
☕ Ko-fiPourboire ponctuel rapide, sans inscription pour le donateurko-fi.com/diegosouzapw
🧋 Buy Me a CoffeePetit geste informelbuymeacoffee.com/diegosouzapw
🖐 LiberapayRécurrent · sans but lucratif · open sourceliberapay.com/diegosouzapw
🇧🇷 PIX (Brésil)Instantané, sans fraisclé et code QR ci-dessous
₿ CryptomonnaiesBTC · ETH · USDT-TRC20 · USDC-Solanaadresses ci-dessous
**🇧🇷 PIX** — instantané, sans frais (Brésil) Code QR PIX d’OmniRoute 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)
₿ BTCBitcoin (SegWit)bc1qh00smz004sy85wyl28v77tenkt3ckl6eaep7fd
Ξ ETHEthereum (ERC20)0x64Cf6B68A6Ff34288e89172950a2d00102337a84
₮ USDTTron (TRC20)TKAF41JpuQrHbKTnsQa9svJE2T192Hvsc2
$ USDCSolana2emNNZzVVWQc3FQ2wk9M6qXUQmW8AKdjjL174fXR28Tu
⚠️ 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](https://github.com/diegosouzapw/OmniRoute/discussions).

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 Le principal chiffre à retenir pour l’offre gratuite reste **~1,62 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,22 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 contributeurs peuvent recevoir le catalogue en temps réel ainsi que des possibilités supplémentaires offertes 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 transmet 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 de masquage des annonces. Pour en savoir plus sur l’éligibilité et consulter le catalogue actuel, rendez-vous sur **[radar.omniroute.online/planos](https://radar.omniroute.online/planos)**.
## ✨ Nouveautés
> Points forts récents de **v3.8.20 → v3.8.54**. Historique complet dans [`CHANGELOG.md`](CHANGELOG.md). - **⚖️ Routage `quota-weighted`** — la 20e stratégie combinée ignore les comptes épuisés, puis sélectionne parmi les autres en proportion du quota restant ÷ de la charge en cours, tout en maintenant les conversations existantes sur leur compte. → [Auto-Combo](docs/routing/AUTO-COMBO.md) - **🧰 Mode sans interface** — `omniroute serve --headless` (ou `OMNIROUTE_HEADLESS=1`) exécute uniquement le moteur proxy `/v1/*`, en désactivant le tableau de bord et les sous-systèmes qui lui sont réservés. → [Mode sans interface](docs/guides/HEADLESS.md) - **🔎 Découverte des modèles** — `/v1/models` filtre par capacité, contexte, type et texte, tandis que `POST /v1/models/query` renvoie une courte sélection déterministe avec la même visibilité par clé. → [Référence de l’API](docs/reference/API_REFERENCE.md) - **🔑 Contrôle du routage par clé** — associez une clé API à un modèle ou une combinaison avec `forcedModel`, et ajoutez ou supprimez de manière atomique les modèles et combinaisons d’une clé (`/api/keys/{id}/access`). → [Référence de l’API](docs/reference/API_REFERENCE.md) · [OpenAPI](docs/openapi.yaml) - **🛡️ Contrôles PII plus précis** — sélection par type, jusqu’à 20 modèles de masquage personnalisés validés et compteurs de détection par type ; le masquage reste désactivé par défaut. → [Mesures de protection](docs/security/GUARDRAILS.md) - **🌍 67 langues** — tableau de bord, miroirs de la documentation et CLI, avec `npm run i18n:add-locale` qui ajoute une langue partout en une seule commande. → [Guide i18n](docs/guides/I18N.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 de Faro. → [Serveur A2A](docs/frameworks/A2A-SERVER.md) - **🛂 Admission adaptative et protection contre la surcharge** — les requêtes de chat lourdes sont mises en file d’attente au lieu de renvoyer une erreur 503, avec des baux glissants RPM atomiques par connexion. → [Guide de résilience](docs/architecture/RESILIENCE_GUIDE.md) - **🗂️ Ordre canonique de `/v1/models`** — un bloc contigu regroupé par fournisseur pour chaque fournisseur (combinaisons placées en premier), stable quelle que soit la source du catalogue. → [Référence de l’API](docs/reference/API_REFERENCE.md) - **🗜️ Renforcement de la compression** — protection contre l’expansion activée par défaut, packs Caveman pour DE / FR / JA + chinois (wényán), filtres RTK pour Gradle et .NET. → [Compression](docs/compression/COMPRESSION_ENGINES.md) - **💸 Coût forfaitaire transparent** — les fournisseurs par abonnement ou par coding plan affichent un coût de **0 $** dans les analyses de coûts ; le budget, le quota et le routage continuent d’effectuer leurs estimations. → [Référence de l’API](docs/reference/API_REFERENCE.md) - **⚖️ Routage Quota-Share** — répartit équitablement le quota d’un compte partagé entre les clés regroupées, en prêtant les tranches inutilisées afin d’exploiter toute la capacité disponible. → [Guide de résilience](docs/architecture/RESILIENCE_GUIDE.md) - **🤖 Configuration CLI/agent en une commande** — 15 commandes `setup-*` enregistrées ; `omniroute run` lance 7 CLI (Claude Code, Codex, Aider, Goose, OpenCode, Qwen Code, Gemini CLI) ; `omniroute configure` prend en charge 11 cibles avec un sélecteur interactif de fournisseur et de modèle, ainsi que des favoris par contexte. → [Intégrations CLI](docs/guides/CLI-INTEGRATIONS.md) - **🛰️ Mode distant** — pilotez un OmniRoute distant avec des jetons à portée limitée (`connect` / `contexts` / `tokens`) et un assistant OAuth `antigravity` pour les installations sur VPS. → [Mode distant](docs/guides/REMOTE-MODE.md) - **🧭 Routage automatique plus intelligent** — combinaisons `auto/:`, **Fusion** (panel de modèles + arbitre), routage adapté aux tâches et remplacements par requête du modèle, du mode ou du budget en USD. → [Auto-Combo](docs/routing/AUTO-COMBO.md) - **🗜️ Compression enfichable** — 12 moteurs composables et Compression Studios : LLMLingua-2, Ultra à deux niveaux, omniglyph, contrôle de fidélité par étape, GCF v3.2 et éditeur avec réorganisation par glisser-déposer. → [Compression](docs/compression/COMPRESSION_ENGINES.md) - **🕵️ Déchiffrement MITM transparent (TPROXY)** — capture les CLI qui ignorent les variables d’environnement du proxy, avec une autorité de certification par SNI et un programme d’installation du magasin de certificats de confiance. → [MITM/TPROXY](docs/security/MITM-TPROXY-DECRYPT.md) - **💸 Télémétrie des coûts partout** — en-têtes de coût et d’utilisation `X-OmniRoute-*` sur chaque endpoint, en-tête indiquant les économies liées aux accès au cache, et quotas de dépenses en USD par clé. → [Référence de l’API](docs/reference/API_REFERENCE.md) - **🧠 Une mémoire que vous contrôlez** — désactivée par défaut, quantification vectorielle int8 activable et décroissance typée, avec `x-omniroute-no-memory` par requête. → [Mémoire](docs/frameworks/MEMORY.md) - **🛡️ Sécurité** — protection contre l’injection de prompts sur toutes les routes LLM (suite red team), protection facultative de masquage des identifiants (supprime les clés API et secrets divulgués dans les deux sens), recherche web gratuite de dernier recours via DuckDuckGo et portail de connexion OIDC facultatif pour le tableau de bord (la connexion par mot de passe reste toujours disponible). → [Mesures de protection](docs/security/GUARDRAILS.md) - **🖼️ Nouveaux endpoints** — `/v1/ocr` (Mistral OCR) et `/v1/audio/translations` (de type Whisper) complètent l’offre multimédia. → [Référence de l’API](docs/reference/API_REFERENCE.md) - **🎨 Génération d’images, de vidéos et d’audio** — une API pour les médias : vidéo xAI Grok Imagine et Novita AI, ComfyUI, Magnific, Adobe Firefly, Segmind et fournisseurs vocaux tels qu’ElevenLabs. → [Référence de l’API](docs/reference/API_REFERENCE.md) - **🌍 Déploiement et exploitation** — `basePath` pour les reverse proxies, détection automatique de la langue du navigateur, suivi des appareils par clé, confiance MITM sans privilèges root et localisation zh-TW. → [Environnement](docs/reference/ENVIRONMENT.md) - **🤝 Davantage de fournisseurs et d’agents** — agents cloud (Codex Cloud, Cursor, Devin, Jules), Grok Build (xAI) avec navigateur et connexion OAuth, fiche Ollama de première classe, Claude Opus 5 et Sonnet 5, partenariat officiel avec Kimi (Code/Web/Moonshot), Zed, Requesty, SenseNova, Yuanbao, Agnes AI… et un catalogue renouvelé de **388 fournisseurs**. → [Fournisseurs](docs/reference/PROVIDER_REFERENCE.md) - **📡 Transparence du routage** — chaque réponse contient un en-tête `X-OmniRoute-Decision` indiquant la stratégie, le fournisseur et la latence qui l’ont servie ; une nouvelle stratégie combinée `cache-optimized` et le facteur `cacheAffinity` d’Auto-Combo réacheminent les requêtes répétées vers la connexion qui détient le préfixe mis en cache ; enfin, un endpoint en lecture seule `/v1/auto-combo/{channel}/candidates` expose le pool de candidats actif d’un canal `auto/*`. → [Auto-Combo](docs/routing/AUTO-COMBO.md) - **⚡ Performances locales et infrastructure** — Redis local en un clic, déployeurs de relais Cloudflare Workers / Deno Deploy, Bifrost et Mux en tant que services intégrés supervisés. → [Services intégrés](docs/frameworks/EMBEDDED-SERVICES.md) - **🧩 Également inclus** — framework de plugins + marketplace, frameworks de skills Omni/Agent/GitHub, intégration avec un coffre Obsidian (22 outils MCP), API Batch & Files compatibles avec OpenAI, cache sémantique des réponses, gamification avec classements, découverte d’agents ACP (15 agents intégrés), export planifié des journaux vers BigQuery, fan-out parallèle multi-modèles `auto/chaos`, pont avec un bot Telegram, gestionnaire de versions intégré à l’application et classements des fournisseurs gratuits LMArena-ELO. → [Documentation](docs/README.md)
## 🤖 CLIs & Agents de codage compatibles > Une seule configuration — `http://localhost:20128/v1` — et **tous** les IDE ou CLI IA fonctionnent avec des modèles gratuits & à faible coût.
Claude Code
Claude Code
                           
Codex CLI
Codex CLI
                           
Cline
Cline
                           
Kilo Code
Kilo Code
Zoo Code
Zoo Code
Continue
Continue
                           
Aider
Aider
                           
ForgeCode
ForgeCode
                           
jcode
jcode
                           
DeepSeek TUI
DeepSeek TUI
                           
CodeWhale
CodeWhale
                           
OpenCode
OpenCode
                           
Factory Droid
Factory Droid
                           
GitHub Copilot CLI
Copilot CLI
                           
Cursor CLI
Cursor CLI
                           
Smelt
Smelt
                           
Pi (pi-coding-agent)
Pi
                           
Grok Build (xAI)
Grok Build
                           
Hermes Agent (Nous Research)
Hermes Agent
                           
OpenClaw
OpenClaw
                           
Goose
Goose
                           
Open Interpreter
Open Interpreter
                           
Warp AI
Warp AI
                           
deyin.ai
deyin.ai
                           
+ fonctionne aussi avec · Agent Deck · Kiro · Command Code · Antigravity · Windsurf · AMP · tout outil compatible OpenAI
📖 Configuration par outil pour les 39 outils (28 CLI Code + 11 CLI Agents) → [`docs/reference/CLI-TOOLS.md`](docs/reference/CLI-TOOLS.md) · 🧩 Plugin OpenCode → [`@omniroute/opencode-provider`](https://www.npmjs.com/package/@omniroute/opencode-provider)

**Lancez n'importe quel CLI pris en charge via OmniRoute en une seule commande** — aucun fichier de configuration écrit, identifiants injectés par processus, Qwen/Gemini obtiennent un home isolé jetable : ```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" # Ou choisissez le fournisseur+modèle de façon interactive et écrivez la config propre à l'outil : omniroute configure codex # aussi : claude opencode qwen aider goose gemini cline continue kilo 5dive ``` Chaque commande respecte le contexte distant actif (`omniroute connect `), `--dry-run` affiche un aperçu précis de l'env/args sans exécuter, et `--api-key-env NAME` garde les secrets hors de l'historique de votre shell. → [Intégrations CLI](docs/guides/CLI-INTEGRATIONS.md)
## 🌐 388 fournisseurs d’IA — 153 signalés comme gratuits dans le catalogue
> **388 fournisseurs enregistrés** dans les collections canoniques de chat, de médias, de recherche, locales, d’agents cloud et système, dont **153 avec les métadonnées de découverte `hasFree: true`**. Le registre des modèles de chat couvre **239 fournisseurs / 3 059 paires fournisseur-modèle distinctes / 1 475 identifiants de modèles bruts** ; le catalogue séparé des budgets gratuits contient **471 lignes par modèle**, **34 pools récurrents** et **52 fournisseurs récurrents/gratuits sans clé, pour toujours**. Ces dénominateurs diffèrent intentionnellement ; les définitions et les calculs dédupliqués par pool sont disponibles dans la [Référence des fournisseurs](docs/reference/PROVIDER_REFERENCE.md) et les [Offres gratuites](docs/reference/FREE_TIERS.md).
### 🏢 Tous les grands laboratoires — via un seul endpoint
OpenAI
OpenAI
                           
Anthropic
Anthropic
                           
Gemini
Gemini
                           
xAI Grok
xAI Grok
                           
DeepSeek
DeepSeek
                           
Mistral
Mistral
                           
Qwen
Qwen
                           
Meta Llama
Meta Llama
                           
Groq
Groq
                           
NVIDIA
NVIDIA
                           
MiniMax
MiniMax
                           
Cohere
Cohere
                           
Perplexity
Perplexity
                           
Hugging Face
HuggingFace
                           
Together
Together
                           
Fireworks
Fireworks
                           
Cloudflare
Cloudflare
                           
Baidu
Baidu
                           
…et plus de 350 autres — chaque icône est résolue en direct depuis le catalogue de fournisseurs du tableau de bord. 📖 [Référence des fournisseurs](docs/reference/PROVIDER_REFERENCE.md)
### 🆓 Gratuit pour toujours — 0 $, sans carte bancaire
OpenCode Zen
OpenCode Zen
DeepSeek V4, Nemotron 3
Aucune limite de tokens
Kilo Code
Kilo Code
Routeur automatique, Tencent Hy3
Gratuit pour toujours
Requesty
Requesty
GPT-OSS 120B, Nemotron
Gratuit pour toujours
SiliconFlow
SiliconFlow
DeepSeek V3.2 / R1
Offre gratuite
Z.AI GLM
Z.AI GLM
GLM-4.7 / 4.5-Flash
Gratuit pour toujours
Baidu ERNIE
Baidu ERNIE
ERNIE 4.0
Gratuit pour toujours
Qoder AI
Qoder AI
Qwen3-Max, Kimi-K2
GRATUIT en illimité
Pollinations
Pollinations
GPT, Llama, Claude
Aucune clé requise
Cloudflare AI
Cloudflare AI
Plus de 50 modèles
10K neurones/jour
NVIDIA NIM
NVIDIA NIM
GLM, MiniMax
~40 RPM gratuits
Cerebras
Cerebras
GLM 4.7, GPT-OSS
Crédit unique de 5 $ ; carte requise
OpenRouter
OpenRouter
Modèles :free
+10 $ → RPM plus élevé
📖 Catalogue complet lisible par machine → [`docs/reference/PROVIDER_REFERENCE.md`](docs/reference/PROVIDER_REFERENCE.md)
## 🖥️ Où OmniRoute s'exécute - N'importe où
> Même application, votre machine, vos règles. D'une installation globale de NPM à** ton téléphone** via Termux.
Plateforme Installer Faits saillants
📦 npm (global) npm install -g omniroute Une commande, n'importe quel OS
⚡ Bun (global) bun add -g omniroute Même archive tar de registre, installations plus rapides
🐳 Docker docker run… diegosouzapw/omniroute Multi-arch AMD64 + ARM64
🖥️ Desktop (Electron) npm run electronic:build Fenêtre native barre + système zqm — Windows / macOS / Linux
🎩 Barre de menus (OmniRouteTray) Brew Install --cask zoispag/tap/omniroute-tray Supervise & met à jour automatiquement le serveur — macOS
💪 ARM natif arm64 Raspberry Pi, serveurs ARM, Apple Silicon
📱 Android (Termux) pkg installer nodejs && npx -y omniroute Exécute sur votre téléphone , 24/7, pas de racine
📲 PWA"Ajouter à l'écran d'accueil" Plein écran, hors ligne, installable à partir du navigateur
🧩 OpenCode plugin @omniroute/opencode-provider Intégration OpenCode
🤖 VS Code Copilot Chat install OmniCopilot extension Chaque modèle OmniRoute dans le sélecteur de chat natif Copilot — stable & Insiders
🛠️ À partir des sources npm install && npm run dev Hackez-le, contribuez
📖 [Docker Guide](docs/guides/DOCKER_GUIDE.md) · [Bureau](electron/README.md) · [Barre de menus](https://github.com/zoispag/omniroute-tray) · [Termux](docs/guides/TERMUX_GUIDE.md) · [PWA](docs/guides/PWA_GUIDE.md) · [OpenCode](docs/frameworks/OPENCODE.md)
### 🧩 Nouveau : OmniRoute dans le chat Copilot natif de VS Code
> Pas de nouvelle barre latérale, pas de nouveau chat UI — chaque modèle servi par OmniRoute apparaît directement dans le** Sélecteur de modèles de chat Copilot que vous utilisez déjà** . Depuis VS Code 1.122, les modèles de fournisseurs fonctionnent sans connexion GitHub ni abonnement Copilot : mode agent, appel d'outils et vision, gratuitement. Installez le** [OmniCopilot](https://github.com/diegosouzapw/OmniCopilot)** extension, pointez-la vers votre serveur OmniRoute (par défaut `localhost:20128`), puis ouvrez le sélecteur de modèles Copilot Chat → →** Gérer les modèles…** →**OmniRoute** . < td aligner ="gauche">VS Code — stable & Insiders < td aligner ="gauche">Cursor, Windsurf, VSCodium, Theia, code-server, Gitpod, Antigravity, Kiro…
Store Lien Fonctionne avec
🧩 VS Code Marketplace Installer →
🔓 VSX le registre Installer →
Depuis l'éditeur : ouvrez le** Rallonges** voir, rechercher** "OmniRoute"** , cliquez** Installer** — fonctionne de la même manière sur les deux magasins. Source, numéros et runbook de publication en direct sur [diegosouzapw/OmniCopilot](https://github.com/diegosouzapw/OmniCopilot). 📖 [VS Code Copilot Chat guide](docs/guides/VSCODE-COPILOT.md) — configuration, ce que le sélecteur affiche, tableau de bord dans un onglet, dépannage
### 🎩 Nouveau : OmniRouteTray — votre passerelle, vivant dans la barre de menus
> `omniroute serve` est plus heureux quand il est toujours allumé.** [OmniRouteTray](https://github.com/zoispag/omniroute-tray)** transforme cela en une application de barre de menus à définir et à oublier pour macOS: elle démarre le serveur, le maintient en vie lors des redémarrages, le met à jour et met votre budget de jetons en direct à portée de clic -** aucune fenêtre de terminal laissée ouverte, pas `npm install -g omniroute` pour garder les enfants.** Construit avec [Tauri v2](https://v2.tauri.app/) (un noyau Rust de la taille d'une erreur d'arrondi), il est livré avec son propre runtime Node 24 signé et gère une installation OmniRoute appartenant à l'application, de sorte qu'il ne combat jamais votre `node`/`bun` global. Il** partage votre configuration et votre base de données `~/.omniroute/` existantes** — donc c'est le même OmniRoute que vous courez déjà, juste avec un chapeau. 🎩
Ce qu'il fait Comment
🟢 Supervise le serveur Génère omniroute serve , adopte une instance déjà en cours d'exécution au lieu de la dupliquer
📊 Aperçu de l'utilisation en direct Barres de quota du fournisseur, Claude limites session/weekly avec comptes à rebours réinitialisés, répartition des coûts sur 30 jours
🔄 Mises à jour automatiques en place Installation par étapes, échange atomique, restauration en cas d'échec - toujours sur la version la plus récente
🚀 Démarrer à la connexion Lancement facultatif à la connexion ; bac uniquement, pas d'icône de dock
🩺 Doctor & logs Diagnostics en un clic et accès aux journaux du serveur
```sh brew install --cask zoispag/tap/omniroute-tray ``` Vous préférez un téléchargement ? Récupérez le dernier .dmg de Libère . Source, problèmes et construction les documents vivent sur zoispag/omniroute-tray.
💛 Un projet communautaire de @zoispag — pas une version officielle OmniRoute.

## 🔒 Privé et local par défaut
Privé et local par défaut — la passerelle et le plan de contrôle d’OmniRoute s’exécutent sur votre machine. Les prompts sont envoyés au fournisseur en amont sélectionné pour chaque requête ; OmniRoute n’ajoute aucun intermédiaire hébergé pour le traitement des prompts et la télémétrie est désactivée par défaut. Les identifiants sont chiffrés au repos avec AES-256-GCM ; les contrôles comprennent la définition de la portée des clés API, le filtrage IP, les limites de débit, les protections contre l’injection de prompts, le nettoyage des en-têtes en amont, la suppression facultative des PII, les erreurs assainies et une piste d’audit SQLite locale. OmniRoute est sous licence MIT et peut être auto-hébergé. 📖 [Autorisation](docs/architecture/AUTHZ_GUIDE.md) · [Garde-fous](docs/security/GUARDRAILS.md) · [Conformité](docs/security/COMPLIANCE.md)
## 🔌 CLI complète + A2A et MCP
> Au-delà du serveur, OmniRoute est un **véritable cockpit en ligne de commande** avec **plus de 80 commandes**, ainsi que des protocoles d’agents ouverts permettant à un agent IA de le piloter **de manière autonome**. ### ⌨️ Une véritable CLI (pas seulement `start`) ```bash omniroute # lancer la passerelle et le tableau de bord (port 20128) omniroute chat # client de chat TUI interactif (commandes slash : /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 fois avec un jeton d’accès à portée limitée ; chaque commande ciblera ensuite l’instance distante. ```bash omniroute connect 192.168.0.15 # mot de passe → jeton à portée limitée, enregistré comme contexte omniroute models # ← s’exécute sur le serveur DISTANT omniroute configure codex # ← sélectionne un modèle distant et crée un profil Codex local omniroute tokens create --name ci --scope read # créer des jetons plus restreints pour d’autres machines omniroute contexts use default # ← revenir au serveur local ``` Les jetons disposent des portées `read` / `write` / `admin` ; les routes lançant des processus restent accessibles uniquement depuis l’interface de bouclage. 📖 [Mode distant](docs/guides/REMOTE-MODE.md)
Démonstration animée dans un terminal de la CLI OmniRoute — omniroute providers list, omniroute combo list et omniroute health — parcourant les 89 commandes de premier niveau : providers · oauth · keys · combo · nodes · models · cache · compression · cost · usage · quota · health · resilience · telemetry · logs · audit · mcp · a2a · cloud · memory · skills · eval · tunnel · backup · sync · webhooks · policy · pricing · translator · simulate …
### 🤝 Connectez un agent — il contrôle alors 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 et peut gérer de manière autonome le routage, les fournisseurs, les combinaisons, le cache, la compression et la mémoire. Les points de terminaison HTTP ci-dessous sont servis sous `http://localhost:20128`.
InterfacePoint de terminaison / commandeUtilisation
🧰 MCP (stdio)omniroute --mcpIntégration à Claude Desktop, Cursor ou tout autre client MCP
🌊 MCP (HTTP)/api/mcp/streamMCP distant — 110 outils, 33 portées (application facultative), piste d’audit complète
📡 MCP (SSE)/api/mcp/sseTransport MCP en streaming
🤝 A2A/.well-known/agent.jsonCommunication d’agent à agent, JSON-RPC 2.0 + SSE, 6 compétences
🌐 API REST/v1/*Compatible avec OpenAI — chat, embeddings, images, audio, OCR
🔔 Webhooks/api/webhooksEnvoyer les événements de requêtes et de quotas vers Slack, Discord, Telegram ou toute autre URL
🛰️ CLI distanteomniroute connect Piloter une instance distante avec des jetons d’accès à portée limitée
```bash # 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](docs/frameworks/MCP-SERVER.md) · [Serveur A2A](docs/frameworks/A2A-SERVER.md) · [Protocoles d’agents](docs/frameworks/AGENT_PROTOCOLS_GUIDE.md)
## 🗜️ Économisez 15–95 % de tokens — automatiquement
### 📖 Fonctionnement — pipeline, architecture et calcul des économies Pipeline de compression OmniRoute : une requête client illustrative de 10 000 tokens passe par 12 moteurs composables — Session-Dedup, CCR, Lite, RTK, Responses Tool Output, Headroom, Relevance, Caveman, Aggressive, LLMLingua-2, Ultra et OmniGlyph — et peut parvenir au fournisseur avec environ 1 080 tokens dans l’exemple empilé documenté. Le contenu structuré est protégé par des garde-fous de préservation et des contrôles de fidélité à chaque étape ; les modes explicitement avec perte ou expérimentaux peuvent transformer le contenu éligible. La combinaison empilée par défaut exécute `RTK → Caveman`. Lorsque les deux agissent sur la même charge utile d’outil/de contexte, les économies se cumulent : ```txt 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 autant de tokens quand quelques-uns suffisent ?** Chaque requête passe par le pipeline de compression d’OmniRoute **en toute transparence** — 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 se combinent selon chaque combinaison de routage — en s’appuyant sur les concepts de [RTK](https://github.com/rtk-ai/rtk), [Caveman](https://github.com/JuliusBrussee/caveman) (⭐ 90K+), [LLMLingua-2](https://github.com/microsoft/LLMLingua) et [Troglodita](https://github.com/leninejunior/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 :
#MoteurFonction
1Session-DedupSupprime le contenu répété entre les tours (adressage par contenu, inter-tours)
2CCRArchive les gros blocs derrière des marqueurs de récupération, chargés à la demande
3LiteRéduction des espaces et des URL d’images (référence de base à faible latence)
4RTKFiltrage intelligent des résultats d’outils, déduplication et troncature (adapté aux commandes)
5Responses Tool OutputJSON d’abord sans perte + compression diagnostique limitée pour les sorties shell/patch/recherche/build (Responses API)
6HeadroomCompactage sans perte des tableaux JSON (~30 %) via un codec GCF intégré au fournisseur
7RelevanceÉvaluation extractive des phrases par rapport à la dernière requête utilisateur
8CavemanCompression de la prose fondée sur des règles (~65–75 % sur la sortie)
9AggressiveRésumé + vieillissement progressif des anciens tours
10LLMLingua-2Élagage sémantique par ML via MobileBERT ONNX — compatible avec le code, asynchrone
11UltraÉlagage heuristique des tokens avec un niveau optionnel à petit modèle (SLM)
12OmniGlyphEncodage expérimental du contexte sous forme d’image pour un Claude Fable 5 mesuré sur le réseau direct Anthropic ; les transformeurs GPT 5.6 restent en échec sécurisé en attendant les accusés de réception du fournisseur. Quatre profils de compression (agressif par défaut, équilibré, sûr pour le code, passthrough) (le plus agressif ; activation volontaire)
Les blocs de code, les URL et les données structurées sont **toujours préservés à l’octet près**. Les **préréglages en un clic** combinent les moteurs :
ModeÉconomiesIdéal pour
🪶 Lite~15 %Valeur sûre toujours activée par défaut
🪨 Standard (Caveman)~30 %Développement quotidien
⚡ Aggressive~50 %Longues sessions riches en outils
🔥 Ultra~75 %Économies maximales
🧰 RTK60–90 %Sorties 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 est probablement réaffiché est que vous créez une nouvelle référence d’objet à chaque cycle de rendu. Lorsque vous transmettez un objet inline comme propriété, la comparaison superficielle de React le considère comme un objet différent à chaque fois, 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. Propriété objet inline = nouvelle référence = nouveau rendu. Encapsulez-la dans useMemo."_ > > **Même réponse. 72 % de tokens en moins. Aucune perte de précision.** ✅ **Exemple PT-BR — mode [Troglodita](https://github.com/leninejunior/troglodita) :** > **Avant (42 tokens) :** _« Le problème est que le composant est re-rendu parce qu’une nouvelle référence d’objet est créée à chaque cycle de rendu. Je recommanderais d’utiliser useMemo. »_ > > **Après (12 tokens) :** _« Re-rendu : nouvelle référence à chaque cycle (objet inline recréé). Utiliser `useMemo`. »_ > > **Même réponse. ~70 % de tokens en moins. Précision technique intacte.** ✅
### 🎚️ Au-delà des moteurs — styles de sortie, cadran adaptatif et contrôle par requête Les 12 moteurs ci-dessus réduisent ce qui **entre**. Trois couches supplémentaires façonnent **comment**, **quand** et ce qui **sort** : - **🪄 Styles de sortie** _(orientation de l’axe de sortie)_ — injectent des instructions déterministes et compatibles avec le cache pour façonner les réponses ; ils sont combinables, chacun avec une intensité `lite` / `full` / `ultra`. Ajouter un style se fait avec une seule entrée dans le registre : - **Prose concise** — supprimer le remplissage, les articles et les formulations hésitantes ; conserver exactement le contenu technique. - **Moins de code** — approche YAGNI du « développeur senior paresseux » : la plus petite modification fonctionnelle, sans échafaudage non demandé. - **Ponytail (développeur senior paresseux)** — gravir l’échelle YAGNI, corriger la cause racine, produire le plus petit diff fonctionnel. - **J’ai un TDAH (axé sur l’action)** — l’action suivante en premier, étapes numérotées, une prochaine étape concrète, sans préambule. - **CJK concis (文言)** — style ultra-concis en chinois classique (limité à la locale `zh`). - **🎯 Budget de contexte adaptatif** _(le cadran)_ — au lieu d’un seul seuil de tokens activé ou désactivé, augmenter progressivement l’utilisation des moteurs les moins coûteux et causant le moins de pertes, uniquement autant que 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 que le contenu tient) · `replace-autotrigger` (votre choix explicite est prioritaire) · `off` (seuil historique). - **🎛️ Où la compression est décidée** _(priorité, de la plus haute à la plus basse)_ — en-tête de requête `x-omniroute-compression` › surcharge de la combinaison de routage › profil nommé actif › déclenchement adaptatif / automatique › valeur par défaut du panneau › désactivé. Le plan appliqué est renvoyé dans l’en-tête de réponse `X-OmniRoute-Compression: ; source=`. Déclenchez automatiquement la compression selon un seuil de tokens, activez le cadran adaptatif, épinglez un profil nommé, définissez un réglage ponctuel par requête ou affectez un pipeline à chaque combinaison de routage — selon ce qui convient à la charge de travail. Un **harnais d’évaluation** hors ligne facultatif (`npm run eval:compression`) mesure la fidélité par rapport aux économies sur un corpus figé avant la mise en production d’une modification. 📖 [`COMPRESSION_GUIDE.md`](docs/compression/COMPRESSION_GUIDE.md) · [`RTK_COMPRESSION.md`](docs/compression/RTK_COMPRESSION.md) · [`COMPRESSION_ENGINES.md`](docs/compression/COMPRESSION_ENGINES.md)
# ⚡ Démarrage rapide
**1) Installer et exécuter** ```bash npm install -g omniroute omniroute ``` > 💡 Vous voyez `npm warn ERESOLVE` ou des avertissements concernant les dépendances peer ? [Ils sont inoffensifs](docs/guides/TROUBLESHOOTING.md#npm-install-warnings-eresolve--peer--deprecated). > **Vous utilisez npm 11 ou une version ultérieure ?** npm peut bloquer les scripts du cycle de vie des paquets tant qu’ils ne sont pas autorisés. Le script `postinstall` d’OmniRoute (`node scripts/build/postinstall.mjs`) est requis pour préparer ses fichiers d’exécution natifs. Autorisez les paquets nommés dans l’avertissement de npm lors de l’installation globale. Pour l’ensemble de paquets signalé par OmniRoute 3.8.54 : > > ```bash > npm install -g --allow-scripts=omniroute,keytar,onnxruntime-node,@parcel/watcher,@swc/core,protobufjs,esbuild omniroute > ``` > > Pour réutiliser cette liste d’autorisation lors de futures installations globales, configurez-la une fois, puis installez normalement : > > ```bash > npm config set allow-scripts=omniroute,keytar,onnxruntime-node,@parcel/watcher,@swc/core,protobufjs,esbuild --location=user > npm install -g omniroute > ``` > > La liste des dépendances peut changer d’une version à l’autre ; si npm signale une liste différente, utilisez les noms de paquets indiqués dans cet avertissement. Autoriser un paquet permet l’exécution de ses scripts d’installation. > **Vous utilisez Gemini Web ou un autre fournisseur basé sur des cookies web ?** Le paquet npm inclut > Playwright, mais pas son binaire Chromium. Consultez la > [note de configuration de Chromium pour Playwright](docs/guides/TROUBLESHOOTING.md#gemini-web-and-playwright-chromium) > avant d’effectuer la première requête auprès d’un fournisseur web. Tableau de bord à `http://localhost:20128` · API à `http://localhost:20128/v1`. **2) Connecter un fournisseur éligible avec votre propre compte** Tableau de bord → **Fournisseurs** → choisissez un fournisseur dont les conditions actuelles et le quota correspondent à votre cas d’utilisation → ajoutez sa clé API ou terminez la procédure associée au compte. Les offres gratuites peuvent nécessiter une inscription, une approbation ou un moyen de paiement. Consultez le [Guide des offres gratuites](docs/getting-started/FREE-TIERS-GUIDE.md) ; la disponibilité sans clé n’est pas garantie, et les fournisseurs marqués `tos: avoid` sont exclus de `auto` par défaut. **3) Configurer votre outil de développement** ```txt Base URL: http://localhost:20128/v1 API Key: [copy from Dashboard → Endpoints] Model: auto (routes among eligible connections — or choose provider/model) ``` **4) Vérifier que tout fonctionne** ```bash curl http://localhost:20128/v1/models -H "Authorization: Bearer YOUR_KEY" ``` Vos modèles connectés devraient apparaître dans la liste. 🎉 C’est tout — commencez à coder, OmniRoute se charge automatiquement du routage et de la bascule pour vous. Si votre client ne peut pas envoyer d’en-têtes personnalisés, OmniRoute expose également des alias de compatibilité tokenisés : ```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 ``` Utilisez-les uniquement avec les clients qui ne peuvent pas joindre `Authorization: Bearer ...`. L’authentification par en-tête reste le mode privilégié.
## 📦 Autres méthodes d’installation — Docker, code source, 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` 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](docs/guides/DOCKER_GUIDE.md#release-channels). 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 | ```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 ``` Tableau complet : [Guide Docker — RAM d’exécution](docs/guides/DOCKER_GUIDE.md#runtime-ram-for-coding-agents). > **Canal Docker de préversion :** `diegosouzapw/omniroute:next` et > `diegosouzapw/omniroute:next-web` suivent la branche `release/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](docs/guides/DOCKER_GUIDE.md#release-channels). **🥟 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:sqlite` intégré** : OmniRoute utilise le pilote `bun:sqlite` intégré à Bun lors de son exécution sous Bun, avec repli sur `better-sqlite3` sous Node.js ou sur `sql.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ément `OMNIROUTE_USE_TURBOPACK`, comme sous Node : Turbopack par défaut, ou `OMNIROUTE_USE_TURBOPACK=0` pour compiler avec Webpack (`Dockerfile.bun` l’expose en tant que `--build-arg`). - **Dockerfile dédié à Bun** : `Dockerfile.bun` multiétape pour les déploiements natifs de Bun en production (`docker build -f Dockerfile.bun -t omniroute:bun .`). ```bash # Installer et exécuter avec Bun bun install bun run dev ``` **🛠️ Depuis le code source** ```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 # Avec les flakes Nix nix develop npm run dev # Ou avec devbox devbox run npm run dev ``` 📖 [Guide Docker](docs/guides/DOCKER_GUIDE.md) — Profils Compose, HTTPS avec Caddy, tunnels Cloudflare. **🦭 Podman** ```bash # 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](contrib/podman/README.md#data-directory-permissions-by-topology). 📖 [Guide Podman](contrib/podman/README.md) — 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) : ```bash 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](docs/guides/TERMUX_GUIDE.md). 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-10-18 · Catalogue brut : YT 1.352 | TT 334 | IG 290 · Fraîcheur (jours) : YT 5 | TT 48 | IG 49
Reel Instagram — nick_saraev
🎬 #1 — Instagram
nick_saraev — 3,042,474 vues
Reel Instagram — nnapier7
🎬 #2 — Instagram
nnapier7 — 1,454,535 vues
YouTube — Amidia AI & Tech
🎬 #3 — YouTube
Amidia AI & Tech — 794,974 vues
Reel Instagram — theopenstack
🎬 #4 — Instagram
theopenstack — 692,419 vues
TikTok — migue.baena
🎬 #5 — TikTok
migue.baena — 685,788 vues
**Classement complet (URL canoniques dédupliquées, `v > 0`, plus grande portée) :** | #1 | #2 | #3 | #4 | #5 | | -------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | | [nick_saraev — Instagram](https://www.instagram.com/reel/Da8ZthUPK98/) — **3,042,474** | [nnapier7 — Instagram](https://www.instagram.com/reel/Dbp7wv_CIO0/) — **1,454,535** | [Amidia AI & Tech — YouTube](https://www.youtube.com/watch?v=NJ0TQ-pyMDY) — **794,974** | [theopenstack — Instagram](https://www.instagram.com/reel/DaSs65mMrHk/) — **692,419** | [migue.baena — TikTok](https://www.tiktok.com/@migue.baena/video/7670919268216622358) — **685,788** | | #6 | #7 | #8 | #9 | #10 | | ------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | | [milesreevesai — TikTok](https://www.tiktok.com/@milesreevesai/video/7667980059189366019) — **620,400** | [nikothetech — TikTok](https://www.tiktok.com/@nikothetech/video/7671890769665477918) — **610,803** | [Vaibhav Sisinty — YouTube](https://www.youtube.com/watch?v=QucgvbO5gsM) — **509,281** | [buildwithai.club — Instagram](https://www.instagram.com/reel/DbIt9AjK7-U/) — **347,652** | [nivedan.ai — Instagram](https://www.instagram.com/reel/DbIrCksJiqq/) — **331,973** | Métriques canoniques au 2026-10-18 : **1.976 vidéos uniques** · **20.220.289 vues connues** (`v > 0`) · **1.210 chaînes/profils par réseau**. Le tableau de bord brut contient 1.976 lignes (YouTube 1.352 = 740 vidéos longues + 612 Shorts · TikTok 334 · Instagram 290) ; aucun doublon ne subsiste après la normalisation par URL canonique, qui conserve le nombre le plus élevé pour chaque vidéo. La collecte YouTube est figée au 2026-10-13 (quota de l’API épuisé du 14 au 18/10), tandis que celles de TikTok et d’Instagram le sont depuis le 2026-09-02 (absence de crédits de collecte) ; 76 vidéos n’ont toujours pas de nombre de vues. > 🎬 **Vous avez réalisé une vidéo sur OmniRoute ?** Ouvrez une [issue](https://github.com/diegosouzapw/OmniRoute/issues/new) ou une [discussion](https://github.com/diegosouzapw/OmniRoute/discussions) avec le lien — nous la présenterons ici.
# 📧 Communauté et aide > Tout au même endroit — suivez le mainteneur, discutez avec la communauté ou ouvrez une issue. | Canal | Où / comment | | ---------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | | 💼 **LinkedIn** — suivre le mainteneur | [linkedin.com/in/diegosouzapw](https://www.linkedin.com/in/diegosouzapw/) | | 🐙 **GitHub** — suivre les versions et astuces | [@diegosouzapw](https://github.com/diegosouzapw) | | 💬 **Discord** | [discord.gg/U47eFqAXCn](https://discord.gg/U47eFqAXCn) | | ✈️ **Telegram** | [t.me/omnirouteOficial](https://t.me/omnirouteOficial) | | 🟢 **WhatsApp — 🌍 International** | [rejoindre le groupe](https://chat.whatsapp.com/FvuCbrpZmQ6I85n2vW5QIC?s=cl&p=a&mlu=4) | | 🟢 **WhatsApp — 🇧🇷 Brésil** | [rejoindre le groupe](https://chat.whatsapp.com/KWgatljAjmbELQory59Oti?s=cl&p=a&mlu=4) | | 🌍 **Site web** | [omniroute.online](https://omniroute.online) | | 🌍 **Communauté 🌍StHub OmniRoute (gratuite)** | [portail StHub](https://portal.sthub.com.br/communities/groups/st-hub/channels/Omniroute-World-8kRjmK) | | 📦 **Code source** | [github.com/diegosouzapw/OmniRoute](https://github.com/diegosouzapw/OmniRoute) | | 🐛 **Signaler un bug** | [ouvrir un ticket](https://github.com/diegosouzapw/OmniRoute/issues) — joignez la sortie de `npm run system-info` | | 🤝 **Contribuer** | [CONTRIBUTING.md](CONTRIBUTING.md) · [Modèle de branches et de publication](docs/ops/BRANCHING_MODEL.md) · choisissez une `good first issue` | | 💚 **Soutenir le projet** | [Façons de nous soutenir ↑](#-support-omniroute) · [GitHub Sponsors](https://github.com/sponsors/diegosouzapw) |
---
## 🛠️ Pile technique
CoucheTechnologie
ExécutionNode.js 22.x / 24.x LTS — >=22.22.2 <23 || >=24.0.0 <27
LangageTypeScript 6.0 — 100 % TypeScript dans src/ et open-sse/ (any absent du cœur depuis la v2.0)
FrameworkNext.js 16 + React 19 + Tailwind CSS 4
Base de donnéesbetter-sqlite3 (SQLite, journalisation WAL) + LowDB (JSON legacy) — 147 modules métier, 233 migrations
MémoireRecherche en texte intégral SQLite FTS5 + embeddings vectoriels quantifiés en int8, décroissance typée
SchémasZod 4 — validation des entrées/sorties des outils MCP + contrats d’API
ProtocolesMCP (stdio / HTTP / SSE) + A2A v0.3 (JSON-RPC 2.0 + SSE)
Diffusion en continuServer-Sent Events (SSE) + pont WebSocket (/v1/ws)
CompressionPipeline à 12 moteurs — RTK, Caveman, LLMLingua-2 (MobileBERT ONNX), GCF, OmniGlyph
Authentification & sécuritéOAuth 2.0 (PKCE) + JWT + clés d’API + authentification MCP limitée · AES-256-GCM au repos · DOMPurify
Discrétionwreq-js — usurpation d’empreinte TLS JA3 / JA4, proxy à 3 niveaux
RésilienceDisjoncteur, backoff exponentiel, protection contre l’effet de troupeau, auto-rétablissement auto-combo
Journalisationpino — journaux JSON structurés avec contexte de requête
TestsExécuteur de tests Node.js + Vitest — plus de 60 000 déclarations de tests statiques dans plus de 8 400 fichiers de test suivis (unitaires, intégration, E2E, sécurité, écosystème)
PlateformesOrdinateur de bureau (Electron) · Android (Termux) · PWA (n’importe quel navigateur)
CI/CDGitHub Actions — publication npm automatique + Docker Hub lors d’une release
LiensSite web · npm · Docker Hub

## 📖 Documentation
### 📘 Premiers pas
DocumentDescription
Guide utilisateurFournisseurs, combinaisons, intégration CLI, déploiement
Guide de configurationMéthodes d'installation complètes, configurations des outils CLI, configuration des protocoles, réglage des délais d'expiration
Guide des outils CLIConfiguration par outil pour Claude Code, Codex, Cursor, Cline, OpenClaw, Kilo, Copilot
Mode distantPiloter un OmniRoute distant (VPS) depuis le CLI de votre ordinateur portable via des jetons d'accès à portée limitée
Configuration de Claude CodePointer Claude Code vers OmniRoute (local/distant) avec launch + des profils par modèle
Démarrage rapideInstallation → connexion → configuration en 3 étapes
### 🔧 Exploitation et déploiement
DocumentDescription
Guide DockerExécution de Docker, profils Compose, HTTPS avec Caddy, tunnels, balises d'image
Guide PodmanIntégration systemd avec Quadlet, podman-compose, SELinux
Déploiement sur VMGuide complet : configuration de VM + nginx + Cloudflare
Déploiement Fly.ioDéployer sur Fly.io avec un stockage persistant
Guide TermuxExécuter OmniRoute sur Android via Termux
Guide PWAInstallation, mise en cache et architecture d'une application web progressive
Guide de désinstallationSuppression propre pour toutes les méthodes d'installation
Configuration de l'environnementVariables et références complètes de .env
### 🧠 Fonctionnalités et architecture
DocumentDescription
ArchitectureArchitecture du système, flux de données et fonctionnement interne
Guide de compressionPipeline à 7 options : off / lite / standard / aggressive / ultra / RTK / stacked
Compression RTKCompression de la sortie des commandes, filtres, confiance, vérification, récupération de la sortie brute
Moteurs de compressionCaveman, RTK, pipelines empilés, interfaces dashboard/API/MCP
Format des règles de compressionSchémas de packs de règles JSON pour les filtres Caveman et RTK
Packs de langues de compressionDétection de la langue et création de packs de règles Caveman
Guide de résilienceDisjoncteurs, périodes de refroidissement, file d'attente, prévention de l'effet troupeau, usurpation TLS
Moteur Auto-ComboÉvaluation à 16 facteurs, packs de modes, auto-réparation
Guide des proxysSystème de proxy à 3 niveaux, marketplace 1proxy, opérations CRUD du registre
Niveaux gratuitsRépertoire consolidé : 34 pools récurrents documentés / 465 entrées de niveaux gratuits cataloguées
Galerie des fonctionnalitésVisite guidée visuelle du dashboard avec captures d'écran
Documentation du codePrésentation du code adaptée aux débutants
### 🤖 Protocoles et API
DocumentDescription
Référence de l'APITous les endpoints avec des exemples
Spécification OpenAPISpécification OpenAPI 3.0
Serveur MCP110 outils MCP, configurations IDE, clients Python/TS/Go
Guide du serveur MCPInstallation de MCP, transports et référence des outils
Serveur A2AProtocole JSON-RPC 2.0, compétences, diffusion en continu, gestion des tâches
Guide du serveur A2ACarte d'agent A2A, tâches, compétences et diffusion en continu
### 📋 Projet et qualité
DocumentDescription
ContributionConfiguration et directives de développement
Modèle de branches et de versionsDestination des PR (release/*), signification de main et des tags
Journal des modificationsHistorique complet des versions
Politique de sécuritéSignalement des vulnérabilités et pratiques de sécurité
Guide i18nPrise en charge de 67 langues, processus de traduction, RTL
Liste de contrôle des versionsÉtapes de validation avant publication
Plan de couvertureStratégie de couverture des tests pour plus de 60 000 déclarations de tests statiques réparties dans plus de 8 400 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 par nombre de pull requests fusionnées
RangContributeurPR fusionnées~Lignes modifiées
1maxmad64bis41825,367,739
2HouMinXi29513,557,796
3pacocartones22281,551
4backryun210270,562
5JxnLexn1983,570,623
6oyi77190411,243
7KooshaPari1515,972,314
8rdself14580,663
9RaviTharuma123500,065
10herjarsa88230,872
11hartmark852,849,623
12jonlwheat2-gif6869,097
13artickc6243,502
14xiaoyaner020159126,220
15chirag127526,661
16xz-dev50245,976
17woodsonl48811,771
18rqzbeh46151,229
19MumuTW4328,166
19QuangBlue4313,112
Recensement effectué le 2026-11-03 03:01:19 UTC avec la version active release/v3.8.53 et le commit 05bc048d6c. Le recensement GitHub GraphQL paginé contient 9 947 PR fusionnées : 4 130 par le propriétaire du dépôt, 240 par Dependabot, 6 par d’autres bots/applications, et 5 571 PR externes provenant de 883 contributeurs distincts. « Lignes modifiées » correspond aux ajouts + suppressions GitHub et inclut les fichiers générés, les fichiers de verrouillage, les catalogues, les traductions et la documentation ; il s’agit de la quantité de modifications, et non du nombre de lignes de code écrites. 53 PR signalent des différences GitHub de plus de 500 000 lignes (par exemple #13399, un ajout unique de fournisseur, qui répertorie 2 347 fichiers modifiés), ce qui gonfle plusieurs totaux ci-dessus. Les ex æquo sont classés ensemble. ### Commits attribués par GitHub
Dizzle
Dizzle

🥇 418 commits attribués à GitHub
Bob.Hou
Bob.Hou

🥈 294 commits attribués à GitHub
Paijo
Paijo

🥉 229 commits attribués à GitHub
Paco Cartones
Paco Cartones

🏅 222 commits attribués à GitHub
backryun
backryun

🏅 202 commits attribués à GitHub
Jan Leon
Jan Leon

🏅 134 commits attribués à GitHub
Ravi Tharuma
Ravi Tharuma

🏅 126 commits attribués à GitHub
Markus Hartung
Markus Hartung

🏅 115 commits attribués à GitHub
Randi
Randi

🏅 108 commits attribués à GitHub
Chris
Chris

🏅 70 commits attribués à GitHub
WebPerson
WebPerson

🏅 68 commits attribués à GitHub
Koosha Paridehpour
Koosha Paridehpour

🏅 68 commits attribués à GitHub
Vérifié à nouveau le 2026-11-03 02:09:16 UTC : commits attribués à GitHub et signalés par l’API Contributors du dépôt pour la branche par défaut release/v3.8.53. L’API a renvoyé 903 identités (429 utilisateurs, 2 robots, 472 anonymes) ; ce tableau exclut le mainteneur, les robots 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 des métadonnées Git ci-dessous. > 🙏 Les fonctionnalités, corrections de bugs et améliorations de l’infrastructure de ces contributeurs sont une **composante 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 eux.
---
## 💖 Sponsors
Un grand merci aux personnes qui financent OmniRoute de leur propre poche — chaque contribution permet au projet de rester gratuit, indépendant et actif.
Andrew
Andrew

💛 Sponsor mensuel actif
Vlad I
Vlad I

💛 Sponsor mensuel actif
小妍儿
小妍儿

💛 Sponsor mensuel actif
Guilherme Costa
Guilherme Costa

💛 Sponsor ponctuel actif
Henrique Triches Iurkiv
Henrique Iurkiv

💛 Sponsor ponctuel actif
Somesh Ghaturle
Somesh Ghaturle

💛 Sponsor ponctuel actif
Kolonie AI
Kolonie AI

💛 Ancien soutien ponctuel
Professor Igor Morais Vasconcelos
Prof. Igor Morais

💛 Ancien soutien ponctuel
Pixma
Pixma

💛 Ancien soutien ponctuel
Paco Cartones
Paco Cartones

💛 Ancien soutien ponctuel
longtao
longtao

💛 Ancien soutien ponctuel
… ainsi que d’autres personnes qui préfèrent rester anonymes 💛 Les sponsors GitHub publics ont été revérifiés le 2026-10-18 via l’API GraphQL de GitHub Sponsors : 11 parrainages publics (6 actifs, 5 passés) sur un total de 14. Le statut isActive de GitHub détermine les libellés d’activité ci-dessus ; les anciens soutiens publics ponctuels restent remerciés et les sponsors privés demeurent anonymes. Les dons effectués via Ko-fi, Buy Me a Coffee, Liberapay, PIX et les cryptomonnaies ne sont pas répertoriés, car ils ne disposent d’aucun enregistrement public de sponsor. 💖 Devenir sponsor → — chaque dollar permet à OmniRoute de rester gratuit et indépendant.

## 👥 Plus de 1 000 contributeurs
[![Contributors](https://contrib.rocks/image?repo=diegosouzapw/OmniRoute&max=1074&columns=20&anon=1)](https://github.com/diegosouzapw/OmniRoute/graphs/contributors) Audit réalisé le 2026-11-02 sur la pointe de release/v3.8.53 en production, 1c7135e0fb (7 972 commits) : 1 074 identités Git humaines normalisées — 759 apparaissent comme auteurs de commits (y compris le mainteneur) et 315 uniquement dans des mentions explicites Co-authored-by. Le recensement applique .mailmap, compare les adresses e-mail sans tenir compte de la casse, associe les adresses GitHub noreply numériques et classiques uniquement lorsqu’elles codent le même identifiant, exclut 29 identités de bots, d’agents, de services ou d’espaces réservés, et ne fusionne pas les adresses e-mail ordinaires uniquement parce que leurs noms affichés correspondent. L’audit du 2026-08-24 en avait publié 639 ; la réexécution de cette méthode sur sa base ac02c5b42f donne 619, l’augmentation provient donc de nouveaux contributeurs et non d’une méthode moins stricte. ### Comment contribuer 1. Dupliquez le dépôt 2. Créez une branche à partir de la pointe **active** `release/vX.Y.Z` (et non de `main`) — consultez [Modèle de branches et de publication](docs/ops/BRANCHING_MODEL.md) 3. Créez votre branche de fonctionnalité (`git checkout -b feat/amazing-feature`) 4. Validez vos modifications (`git commit -m 'feat: add amazing feature'`) 5. Envoyez la branche (`git push origin feat/amazing-feature`) 6. Ouvrez une pull request avec **base = cette branche `release/vX.Y.Z`** Consultez [CONTRIBUTING.md](CONTRIBUTING.md) pour obtenir des directives détaillées. ### Publier une nouvelle version ```bash # Créer une publication — npm publish est exécuté automatiquement VERSION=x.y.z gh release create "v${VERSION}" --title "v${VERSION}" --generate-notes ```
## 📊 Étoiles Graphique de l’historique des étoiles
## 🌍 StarMapper StarMapper

## 🙏 Remerciements
OmniRoute repose sur le travail de géants. Le projet a commencé comme un fork de **[9router](https://github.com/decolua/9router)** et un portage en TypeScript du projet Go **[CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI)** — puis chacun des sous-systèmes ci-dessous s’est inspiré d’un projet open source qui l’avait précédé. Chacun d’eux a façonné une partie concrète d’OmniRoute. Voici nos remerciements à tous. 🙏 > ⭐ nombres d’étoiles vérifiés via l’API REST de GitHub le 3 novembre 2026 — allez donner une étoile à ces projets. Ces nombres constituent un instantané exact à cette date et évolueront naturellement. ### 🧬 Lignée et passerelle
Projet⭐Son influence sur OmniRoute
9router31,861Le projet d'origine sur lequel ce fork est basé — étendu ici avec des API multimodales et une réécriture complète en TypeScript.
CLIProxyAPI57,329L'implémentation en Go qui a inspiré ce portage en JavaScript / TypeScript.
LiteLLM62,580La passerelle 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 orienté notre routage.
codex-chatgpt-web15,435Source MIT adaptée pour le pont intégré ChatGPT Web → Codex Responses, notamment les adaptateurs de session navigateur, de cadrage des réponses, d'utilisation et de recherche Web.
free-claude-code65,966Des modèles intégrés à la récupération des flux, aux alias no-thinking, à la recherche Web de secours, aux limites par fenêtre glissante, à la rédaction des journaux et aux flux de lancement renforcés.
composer-api347Les modèles de choix d'outils, de contraintes de sortie et de validation des outils de Cursor Composer ont été adaptés à l'exécuteur natif de Cursor.
codex-multi-auth561Les modèles de nouvelle connexion et de rotation des jetons d'actualisation ont été intégrés à la réauthentification OAuth de Codex.
opencode-anthropic-auth562Les valeurs par défaut de transformation compatibles avec Claude Code et le comportement des en-têtes de facturation ont été généralisés dans le pont d'OmniRoute piloté par la configuration.
grok2api-merged2Ses mappages de modèles Grok, son générateur Statsig de fake-TypeError, ses valeurs par défaut de requête et d'appareil, ainsi que son processeur de réponses NDJSON ont été substantiellement adaptés à l'exécuteur Grok Web d'OmniRoute.
TQZHR/grok2api707La principale source de code transitive derrière grok2api-merged ; ses implémentations des modèles, des en-têtes, des charges utiles, de Statsig et du processeur sont conservées dans la lignée de Grok Web.
chenyme/grok2api7,874La source MIT sous-jacente pour les valeurs par défaut des charges utiles et des appareils Grok, le générateur Statsig et le processeur result.response transmis via TQZHR et grok2api-merged.
grok2api-pro27Une source transitive citée par grok2api-merged pour sa couche de pool de proxys ; OmniRoute conserve cette mention de lignée, mais ne revendique pas de portage de pool de proxys dans son exécuteur Grok Web limité.
GrokProxy52Son proxy Grok authentifié par cookie et son modèle de diffusion result.response.token ont orienté le transport Grok Web d'OmniRoute.
GrokBridge5La conception de son implémentation Grok Web HTTP/navigateur en amont a été consultée ; son chemin HTTP direct dérive de GrokProxy, aussi aucun portage de code indépendant n'est revendiqué.
### 🗜️ Compression du contexte et des jetons — moteurs
Projet⭐Comment il a inspiré OmniRoute
Caveman116,957Le projet viral « pourquoi utiliser beaucoup de jetons quand quelques jetons suffisent » — sa philosophie d’expression façon homme des cavernes alimente notre mode de compression standard et plus de 30 règles de remplissage/condensation.
RTK – Rust Token Killer85,350Compression haute performance de la sortie des commandes — a inspiré notre moteur RTK, notre DSL de filtrage JSON, la récupération de la sortie brute et le pipeline RTK → Caveman empilé.
headroom78,672Compression réversible du contexte (SmartCrusher) — a inspiré notre moteur headroom et le modèle de marqueurs de récupération ccr.
LLMLingua6,797Recherche sur la compression des invites (LLMLingua / LLMLingua-2) — a inspiré notre moteur llmlingua asynchrone, sûr pour le code et à ouverture en cas d’échec.
llmlingua-2-js33Le portage JS/ONNX (MobileBERT / XLM-RoBERTa), utilisé comme backend de thread worker pour notre moteur LLMLingua.
Troglodita50Compression de jetons PT-BR — 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.
ponytail182,929La compétence YAGNI de programmation du « développeur senior paresseux » devenue virale — a inspiré notre style de sortie less-code : une orientation vers le plus petit changement fonctionnel, qui réduit le code _généré_ (le pendant sur l’axe de la sortie de la prose concise de Caveman).
i-have-adhd59,838Son style de réponse axé sur l’action et adapté aux personnes TDAH a été adapté au style de sortie concis d’OmniRoute dans cinq langues.
### 🧩 Formats compacts, recherche sur les jetons et outils sensibles au code
Projet⭐Comment il a inspiré OmniRoute
TOON25,602Token-Oriented Object Notation — son modèle en colonnes, avec en-tête et lignes, a façonné notre étape de compaction tabulaire.
GCF – Graph Compact Format61Son format de graphe compact et sa conception à profil générique ont orienté la compaction tabulaire d’OmniRoute et le format de codec Headroom.
gcf-typescript4L’implémentation TypeScript sous licence MIT, directement intégrée et étendue comme codec à profil générique de Headroom.
token-optimizer-mcp566Cache Brotli/SQLite + delta de contexte par session — a inspiré notre moteur session-dedup.
token-savior1,203Compaction de la sortie Bash + profils MCP — a inspiré notre discipline d’abandon de la compression et la réduction du manifeste des outils MCP.
token-saver162Compression de la sortie tenant compte du contenu et du type de fichier, avec abandon en cas d’échec — a validé notre dispatch par type et l’ignorance des gains insuffisants.
token-optimizer2,853« Trouver les jetons fantômes » — son modèle de déport + poignée récupérable a orienté notre réflexion sur le déport CCR.
TokenMizer34Un modèle de graphe de session + déduplication de lignes entre les tours qui a orienté la conception de notre session-dedup.
OmniCompress3JSON en colonnes Rust + récupération adressée par contenu + déduplication entre les messages — a validé la conception de nos moteurs headroom/ccr/session-dedup ainsi que l’invariant stable du cache selon lequel la « forme compressée est indépendante de la position ».
mcp-compressor140Compression des schémas et descriptions des outils MCP — a orienté la réduction de la cardinalité du manifeste des outils MCP.
RepoMapper218Classement de carte de dépôt de type Aider — a orienté notre exploration de la carte de dépôt et du classement de récupération.
quiet-shell-mcp4Réduction déclarative de la sortie shell via MCP — a validé notre compaction déclarative de la sortie bash.
ts-morph6,222Boîte à outils de l’API du compilateur TypeScript — a inspiré notre suppression des commentaires basée sur l’analyse syntaxique, qui préserve les littéraux de chaînes, de modèles et d’expressions régulières.
### 🧠 Mémoire et RAG
Projet⭐Comment il a inspiré OmniRoute
Mem068,294Couche de mémoire universelle — son modèle de proxy comme frontière d’écriture/lecture a façonné notre architecture mémoire.
Letta (MemGPT)25,321Agents avec état et mémoire hiérarchisée — a inspiré notre modèle hiérarchisé Context Control & Recovery (CCR).
WFGY1,804La taxonomie ProblemMap de 16 modes d’échec récurrents de RAG/LLM — le vocabulaire commun de notre guide de dépannage.
### 🛰️ Inspection du trafic, MITM et proxy transparent
Projet⭐Comment il a inspiré OmniRoute
llm-interceptor81L’interception et l’analyse MITM du trafic entre les assistants de programmation et les LLM ont orienté les premières exigences de Traffic Inspector. 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 environnement vierge, fondées sur des normes de protocole publiques. Les deux surfaces de transmission directe des hôtes (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.
ProxyBridge6,978Routage proxy transparent par processus — a inspiré notre démontage MITM sécurisé en cas de crash, 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.dev7,486Base de données ouverte des spécifications, tarifs et capacités des modèles d’IA — synchronisée nativement avec notre catalogue de modèles.
React Flow / xyflow38,874Bibliothèque de graphes fondée sur des nœuds qui alimente notre Compression Studio et notre Combo/Routing Studio en temps réel.
LangGraph44,349La visualisation en direct des graphes de workflows de LangGraph Studio a inspiré la vue en cascade en temps réel de nos Studios.
Langfuse36,907Son modèle d’observabilité trace → span → génération a façonné la vue en cascade de notre Compression Studio.
Kiali3,647Observabilité du maillage de services Istio — a inspiré nos badges de disjoncteur et nos visualisations des arêtes d’erreur dans le Routing/Combo Studio.
lobe-icons2,666Logos de marques d’IA/LLM qui affichent les icônes des fournisseurs dans l’ensemble de notre tableau de bord.
flag-icons12,499Fournit 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-defaults723Liste organisée de bibliothèques sécurisées par défaut qui guide nos choix de sécurité (Helmet.js, DOMPurify, ssrf-req-filter, safe-regex, Google Tink).
### 🧭 Outils complémentaires
Projet⭐Comment il a inspiré OmniRoute
ClawRouter6,649A inspiré la déduplication des requêtes, le mode de secours d’urgence sans coût, les stratégies Auto-Combo enfichables et la classification multilingue des intentions.
Antigravity-Manager32,785Son remappage des modèles tenant compte des comptes, sa validation des chemins d’exécutables et son comportement concernant les libellés de forfaits ont orienté le runtime Antigravity d’OmniRoute.
vscode-antigravity-cockpit4,852Son format compact de compte à rebours avant réinitialisation du quota a inspiré l’affichage correspondant des limites du fournisseur dans OmniRoute.
AionUi33,996Ses intégrations ACP ont inspiré la détection automatique par OmniRoute des agents CLI installés.
CodexBar22,955A identifié la surface de quota de Grok Build ; OmniRoute a ensuite vérifié et corrigé indépendamment le format filaire réel.
## 📄 Licence Licence MIT - voir [LICENCE](LICENSE) pour plus de détails. ---
**[⬆ Retour en haut](#-omniroute)** · Créé avec ❤️ pour la communauté open source de l’IA. Créé par Diego Souza · OmniRoute v3.8.54 · Node ≥22.22.2 · Licence MIT · omniroute.online