OmniRoute Dashboard # 🚀 OmniRoute — La Passerelle IA Gratuite ### N'arrêtez jamais de coder. Routage intelligent vers des **modèles IA GRATUITS et économiques** avec fallback automatique. _Votre proxy API universel — un endpoint, 36+ fournisseurs, zéro temps d'arrêt._ **Chat Completions • Embeddings • Génération d'images • Audio • Reranking • 100% TypeScript** --- ### 🤖 Fournisseur IA gratuit pour vos agents de programmation préférés _Connectez n'importe quel IDE ou outil CLI alimenté par l'IA via OmniRoute — passerelle API gratuite pour un codage illimité._
OpenClaw
OpenClaw

⭐ 205K
NanoBot
NanoBot

⭐ 20.9K
PicoClaw
PicoClaw

⭐ 14.6K
ZeroClaw
ZeroClaw

⭐ 9.9K
IronClaw
IronClaw

⭐ 2.1K
OpenCode
OpenCode

⭐ 106K
Codex CLI
Codex CLI

⭐ 60.8K
Claude Code
Claude Code

⭐ 67.3K
Gemini CLI
Gemini CLI

⭐ 94.7K
Kilo Code
Kilo Code

⭐ 15.5K
📡 Tous les agents se connectent via http://localhost:20128/v1 ou http://cloud.omniroute.online/v1 — une configuration, modèles et quota illimités --- [![npm version](https://img.shields.io/npm/v/omniroute?color=cb3837&logo=npm)](https://www.npmjs.com/package/omniroute) [![Docker Hub](https://img.shields.io/docker/v/diegosouzapw/omniroute?label=Docker%20Hub&logo=docker&color=2496ED)](https://hub.docker.com/r/diegosouzapw/omniroute) [![License](https://img.shields.io/github/license/diegosouzapw/OmniRoute)](https://github.com/diegosouzapw/OmniRoute/blob/main/LICENSE) [![Website](https://img.shields.io/badge/Website-omniroute.online-blue?logo=google-chrome&logoColor=white)](https://omniroute.online) [![WhatsApp](https://img.shields.io/badge/WhatsApp-Community-25D366?logo=whatsapp&logoColor=white)](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) [🌐 Site web](https://omniroute.online) • [🚀 Démarrage rapide](#-démarrage-rapide) • [💡 Fonctionnalités](#-fonctionnalités-principales) • [📖 Docs](#-documentation) • [💰 Tarifs](#-aperçu-des-tarifs) 🌐 **Disponible en :** 🇺🇸 [English](README.md) | 🇧🇷 [Português (Brasil)](README.pt-BR.md) | 🇪🇸 [Español](README.es.md) | 🇫🇷 [Français](README.fr.md) | 🇮🇹 [Italiano](README.it.md) | 🇷🇺 [Русский](README.ru.md) | 🇨🇳 [中文 (简体)](README.zh-CN.md) | 🇩🇪 [Deutsch](README.de.md) | 🇮🇳 [हिन्दी](README.in.md) | 🇹🇭 [ไทย](README.th.md) | 🇺🇦 [Українська](README.uk-UA.md) | 🇸🇦 [العربية](README.ar.md) | 🇯🇵 [日本語](README.ja.md) | 🇻🇳 [Tiếng Việt](README.vi.md) | 🇧🇬 [Български](README.bg.md) | 🇩🇰 [Dansk](README.da.md) | 🇫🇮 [Suomi](README.fi.md) | 🇮🇱 [עברית](README.he.md) | 🇭🇺 [Magyar](README.hu.md) | 🇮🇩 [Bahasa Indonesia](README.id.md) | 🇰🇷 [한국어](README.ko.md) | 🇲🇾 [Bahasa Melayu](README.ms.md) | 🇳🇱 [Nederlands](README.nl.md) | 🇳🇴 [Norsk](README.no.md) | 🇵🇹 [Português (Portugal)](README.pt.md) | 🇷🇴 [Română](README.ro.md) | 🇵🇱 [Polski](README.pl.md) | 🇸🇰 [Slovenčina](README.sk.md) | 🇸🇪 [Svenska](README.sv.md) | 🇵🇭 [Filipino](README.phi.md)
--- ## 🤔 Pourquoi OmniRoute ? **Arrêtez de gaspiller de l'argent et de vous heurter aux limites :** - Le quota d'abonnement expire inutilisé chaque mois - Les limites de débit vous arrêtent en plein codage - APIs coûteuses (20-50 $/mois par fournisseur) - Changement manuel entre fournisseurs **OmniRoute résout ces problèmes :** - ✅ **Maximisez les abonnements** — Suivez les quotas, utilisez chaque bit avant la réinitialisation - ✅ **Fallback automatique** — Abonnement → Clé API → Économique → Gratuit, zéro temps d'arrêt - ✅ **Multi-comptes** — Round-robin entre les comptes par fournisseur - ✅ **Universel** — Fonctionne avec Claude Code, Codex, Gemini CLI, Cursor, Cline, OpenClaw, tout outil CLI --- ## 🔄 Comment ça fonctionne ``` ┌─────────────┐ │ Votre CLI │ (Claude Code, Codex, Gemini CLI, OpenClaw, Cursor, Cline...) │ Tool │ └──────┬──────┘ │ http://localhost:20128/v1 ↓ ┌─────────────────────────────────────────┐ │ OmniRoute (Routeur intelligent) │ │ • Traduction de format (OpenAI ↔ Claude) │ │ • Suivi des quotas + Embeddings + Images │ │ • Renouvellement automatique des tokens │ └──────┬──────────────────────────────────┘ │ ├─→ [Tier 1: ABONNEMENT] Claude Code, Codex, Gemini CLI │ ↓ quota épuisé ├─→ [Tier 2: CLÉ API] DeepSeek, Groq, xAI, Mistral, NVIDIA NIM, etc. │ ↓ limite de budget ├─→ [Tier 3: ÉCONOMIQUE] GLM ($0.6/1M), MiniMax ($0.2/1M) │ ↓ limite de budget └─→ [Tier 4: GRATUIT] iFlow, Qwen, Kiro (illimité) Résultat : Ne jamais arrêter de coder, coût minimal ``` --- ## 🎯 What OmniRoute Solves — 16 Real Pain Points > **Every developer using AI tools faces these problems daily.** OmniRoute was built to solve them all — from cost overruns to regional blocks, from broken OAuth flows to zero observability.
💸 1. "I pay for an expensive subscription but still get interrupted by limits" Developers pay $20–200/month for Claude Pro, Codex Pro, or GitHub Copilot. Even paying, quota has a ceiling — 5h of usage, weekly limits, or per-minute rate limits. Mid-coding session, the provider stops responding and the developer loses flow and productivity. **How OmniRoute solves it:** - **Smart 4-Tier Fallback** — If subscription quota runs out, automatically redirects to API Key → Cheap → Free with zero manual intervention - **Real-Time Quota Tracking** — Shows token consumption in real-time with reset countdown (5h, daily, weekly) - **Multi-Account Support** — Multiple accounts per provider with auto round-robin — when one runs out, switches to the next - **Custom Combos** — Customizable fallback chains with 6 balancing strategies (fill-first, round-robin, P2C, random, least-used, cost-optimized) - **Codex Business Quotas** — Business/Team workspace quota monitoring directly in the dashboard
🔌 2. "I need to use multiple providers but each has a different API" OpenAI uses one format, Claude (Anthropic) uses another, Gemini yet another. If a dev wants to test models from different providers or fallback between them, they need to reconfigure SDKs, change endpoints, deal with incompatible formats. Custom providers (FriendLI, NIM) have non-standard model endpoints. **How OmniRoute solves it:** - **Unified Endpoint** — A single `http://localhost:20128/v1` serves as proxy for all 36+ providers - **Format Translation** — Automatic and transparent: OpenAI ↔ Claude ↔ Gemini ↔ Responses API - **Response Sanitization** — Strips non-standard fields (`x_groq`, `usage_breakdown`, `service_tier`) that break OpenAI SDK v1.83+ - **Role Normalization** — Converts `developer` → `system` for non-OpenAI providers; `system` → `user` for GLM/ERNIE - **Think Tag Extraction** — Extracts `` blocks from models like DeepSeek R1 into standardized `reasoning_content` - **Structured Output for Gemini** — `json_schema` → `responseMimeType`/`responseSchema` automatic conversion - **`stream` defaults to `false`** — Aligns with OpenAI spec, avoiding unexpected SSE in Python/Rust/Go SDKs
🌐 3. "My AI provider blocks my region/country" Providers like OpenAI/Codex block access from certain geographic regions. Users get errors like `unsupported_country_region_territory` during OAuth and API connections. This is especially frustrating for developers from developing countries. **How OmniRoute solves it:** - **3-Level Proxy Config** — Configurable proxy at 3 levels: global (all traffic), per-provider (one provider only), and per-connection/key - **Color-Coded Proxy Badges** — Visual indicators: 🟢 global proxy, 🟡 provider proxy, 🔵 connection proxy, always showing the IP - **OAuth Token Exchange Through Proxy** — OAuth flow also goes through the proxy, solving `unsupported_country_region_territory` - **Connection Tests via Proxy** — Connection tests use the configured proxy (no more direct bypass) - **SOCKS5 Support** — Full SOCKS5 proxy support for outbound routing - **TLS Fingerprint Spoofing** — Browser-like TLS fingerprint via `wreq-js` to bypass bot detection
🆓 4. "I want to use AI for coding but I have no money" Not everyone can pay $20–200/month for AI subscriptions. Students, devs from emerging countries, hobbyists, and freelancers need access to quality models at zero cost. **How OmniRoute solves it:** - **Free Tier Providers Built-in** — Native support for 100% free providers: iFlow (8 unlimited models), Qwen (3 unlimited models), Kiro (Claude for free), Gemini CLI (180K/month free) - **Free-Only Combos** — Chain `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime - **NVIDIA NIM Free Credits** — 1000 free credits integrated - **Cost Optimized Strategy** — Routing strategy that automatically chooses the cheapest available provider
🔒 5. "I need to protect my AI gateway from unauthorized access" When exposing an AI gateway to the network (LAN, VPS, Docker), anyone with the address can consume the developer's tokens/quota. Without protection, APIs are vulnerable to misuse, prompt injection, and abuse. **How OmniRoute solves it:** - **API Key Management** — Generation, rotation, and scoping per provider with a dedicated `/dashboard/api-manager` page - **Model-Level Permissions** — Restrict API keys to specific models (`openai/*`, wildcard patterns), with Allow All/Restrict toggle - **API Endpoint Protection** — Require a key for `/v1/models` and block specific providers from the listing - **Auth Guard + CSRF Protection** — All dashboard routes protected with `withAuth` middleware + CSRF tokens - **Rate Limiter** — Per-IP rate limiting with configurable windows - **IP Filtering** — Allowlist/blocklist for access control - **Prompt Injection Guard** — Sanitization against malicious prompt patterns - **AES-256-GCM Encryption** — Credentials encrypted at rest
🛑 6. "My provider went down and I lost my coding flow" AI providers can become unstable, return 5xx errors, or hit temporary rate limits. If a dev depends on a single provider, they're interrupted. Without circuit breakers, repeated retries can crash the application. **How OmniRoute solves it:** - **Circuit Breaker per-provider** — Auto-open/close with configurable thresholds and cooldown (Closed/Open/Half-Open) - **Exponential Backoff** — Progressive retry delays - **Anti-Thundering Herd** — Mutex + semaphore protection against concurrent retry storms - **Combo Fallback Chains** — If the primary provider fails, automatically falls through the chain with no intervention - **Combo Circuit Breaker** — Auto-disables failing providers within a combo chain - **Health Dashboard** — Uptime monitoring, circuit breaker states, lockouts, cache stats, p50/p95/p99 latency
🔧 7. "Configuring each AI tool is tedious and repetitive" Developers use Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code... Each tool needs a different config (API endpoint, key, model). Reconfiguring when switching providers or models is a waste of time. **How OmniRoute solves it:** - **CLI Tools Dashboard** — Dedicated page with one-click setup for Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline - **GitHub Copilot Config Generator** — Generates `chatLanguageModels.json` for VS Code with bulk model selection - **Onboarding Wizard** — Guided 4-step setup for first-time users - **One endpoint, all models** — Configure `http://localhost:20128/v1` once, access 36+ providers
🔑 8. "Managing OAuth tokens from multiple providers is hell" Claude Code, Codex, Gemini CLI, Copilot — all use OAuth 2.0 with expiring tokens. Developers need to re-authenticate constantly, deal with `client_secret is missing`, `redirect_uri_mismatch`, and failures on remote servers. OAuth on LAN/VPS is particularly problematic. **How OmniRoute solves it:** - **Auto Token Refresh** — OAuth tokens refresh in background before expiration - **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, iFlow - **Multi-Account OAuth** — Multiple accounts per provider via JWT/ID token extraction - **OAuth LAN/Remote Fix** — Private IP detection for `redirect_uri` + manual URL mode for remote servers - **OAuth Behind Nginx** — Uses `window.location.origin` for reverse proxy compatibility - **Remote OAuth Guide** — Step-by-step guide for Google Cloud credentials on VPS/Docker
📊 9. "I don't know how much I'm spending or where" Developers use multiple paid providers but have no unified view of spending. Each provider has its own billing dashboard, but there's no consolidated view. Unexpected costs can pile up. **How OmniRoute solves it:** - **Cost Analytics Dashboard** — Per-token cost tracking and budget management per provider - **Budget Limits per Tier** — Spending ceiling per tier that triggers automatic fallback - **Per-Model Pricing Configuration** — Configurable prices per model - **Usage Statistics Per API Key** — Request count and last-used timestamp per key - **Analytics Dashboard** — Stat cards, model usage chart, provider table with success rates and latency
🐛 10. "I can't diagnose errors and problems in AI calls" When a call fails, the dev doesn't know if it was a rate limit, expired token, wrong format, or provider error. Fragmented logs across different terminals. Without observability, debugging is trial-and-error. **How OmniRoute solves it:** - **Unified Logs Dashboard** — 4 tabs: Request Logs, Proxy Logs, Audit Logs, Console - **Console Log Viewer** — Real-time terminal-style viewer with color-coded levels, auto-scroll, search, filter - **SQLite Proxy Logs** — Persistent logs that survive server restarts - **Translator Playground** — 4 debugging modes: Playground (format translation), Chat Tester (round-trip), Test Bench (batch), Live Monitor (real-time) - **Request Telemetry** — p50/p95/p99 latency + X-Request-Id tracing - **File-Based Logging with Rotation** — Console interceptor captures everything to JSON log with size-based rotation
🏗️ 11. "Deploying and maintaining the gateway is complex" Installing, configuring, and maintaining an AI proxy across different environments (local, VPS, Docker, cloud) is labor-intensive. Problems like hardcoded paths, `EACCES` on directories, port conflicts, and cross-platform builds add friction. **How OmniRoute solves it:** - **npm global install** — `npm install -g omniroute && omniroute` — done - **Docker Multi-Platform** — AMD64 + ARM64 native (Apple Silicon, AWS Graviton, Raspberry Pi) - **Docker Compose Profiles** — `base` (no CLI tools) and `cli` (with Claude Code, Codex, OpenClaw) - **Electron Desktop App** — Native app for Windows/macOS/Linux with system tray, auto-start, offline mode - **Split-Port Mode** — API and Dashboard on separate ports for advanced scenarios (reverse proxy, container networking) - **Cloud Sync** — Config synchronization across devices via Cloudflare Workers - **DB Backups** — Automatic backup, restore, export and import of all settings
🌍 12. "The interface is English-only and my team doesn't speak English" Teams in non-English-speaking countries, especially in Latin America, Asia, and Europe, struggle with English-only interfaces. Language barriers reduce adoption and increase configuration errors. **How OmniRoute solves it:** - **Dashboard i18n — 30 Languages** — All 500+ keys translated including Arabic, Bulgarian, Danish, German, Spanish, Finnish, French, Hebrew, Hindi, Hungarian, Indonesian, Italian, Japanese, Korean, Malay, Dutch, Norwegian, Polish, Portuguese (PT/BR), Romanian, Russian, Slovak, Swedish, Thai, Ukrainian, Vietnamese, Chinese, Filipino, English - **RTL Support** — Right-to-left support for Arabic and Hebrew - **Multi-Language READMEs** — 30 complete documentation translations - **Language Selector** — Globe icon in header for real-time switching
🔄 13. "I need more than chat — I need embeddings, images, audio" AI isn't just chat completion. Devs need to generate images, transcribe audio, create embeddings for RAG, rerank documents, and moderate content. Each API has a different endpoint and format. **How OmniRoute solves it:** - **Embeddings** — `/v1/embeddings` with 6 providers and 9+ models - **Image Generation** — `/v1/images/generations` with 4 providers and 9+ models - **Audio Transcription** — `/v1/audio/transcriptions` — Whisper-compatible - **Text-to-Speech** — `/v1/audio/speech` — Multi-provider audio synthesis - **Moderations** — `/v1/moderations` — Content safety checks - **Reranking** — `/v1/rerank` — Document relevance reranking - **Responses API** — Full `/v1/responses` support for Codex
🧪 14. "I have no way to test and compare quality across models" Developers want to know which model is best for their use case — code, translation, reasoning — but comparing manually is slow. No integrated eval tools exist. **How OmniRoute solves it:** - **LLM Evaluations** — Golden set testing with 10 pre-loaded cases covering greetings, math, geography, code generation, JSON compliance, translation, markdown, safety refusal - **4 Match Strategies** — `exact`, `contains`, `regex`, `custom` (JS function) - **Translator Playground Test Bench** — Batch testing with multiple inputs and expected outputs, cross-provider comparison - **Chat Tester** — Full round-trip with visual response rendering - **Live Monitor** — Real-time stream of all requests flowing through the proxy
📈 15. "I need to scale without losing performance" As request volume grows, without caching the same questions generate duplicate costs. Without idempotency, duplicate requests waste processing. Per-provider rate limits must be respected. **How OmniRoute solves it:** - **Semantic Cache** — Two-tier cache (signature + semantic) reduces cost and latency - **Request Idempotency** — 5s deduplication window for identical requests - **Rate Limit Detection** — Per-provider RPM, min gap, and max concurrent tracking - **Editable Rate Limits** — Configurable defaults in Settings → Resilience with persistence - **API Key Validation Cache** — 3-tier cache for production performance - **Health Dashboard with Telemetry** — p50/p95/p99 latency, cache stats, uptime
🤖 16. "I want to control model behavior globally" Developers who want all responses in a specific language, with a specific tone, or want to limit reasoning tokens. Configuring this in every tool/request is impractical. **How OmniRoute solves it:** - **System Prompt Injection** — Global prompt applied to all requests - **Thinking Budget Validation** — Reasoning token allocation control per request (passthrough, auto, custom, adaptive) - **6 Routing Strategies** — Global strategies that determine how requests are distributed - **Wildcard Router** — `provider/*` patterns route dynamically to any provider - **Combo Enable/Disable Toggle** — Toggle combos directly from the dashboard - **Provider Toggle** — Enable/disable all connections for a provider with one click - **Blocked Providers** — Exclude specific providers from `/v1/models` listing
## ⚡ Démarrage rapide **1. Installer globalement :** ```bash npm install -g omniroute omniroute ``` 🎉 Le tableau de bord s'ouvre sur `http://localhost:20128` | Commande | Description | | ----------------------- | ------------------------------------------- | | `omniroute` | Démarrer le serveur (port par défaut 20128) | | `omniroute --port 3000` | Utiliser un port personnalisé | | `omniroute --no-open` | Ne pas ouvrir le navigateur automatiquement | | `omniroute --help` | Afficher l'aide | **2. Connecter un fournisseur GRATUIT :** Tableau de bord → Fournisseurs → Connecter **Claude Code** ou **Antigravity** → Connexion OAuth → Terminé ! **3. Utiliser dans votre outil CLI :** ``` Claude Code/Codex/Gemini CLI/OpenClaw/Cursor/Cline Paramètres : Endpoint : http://localhost:20128/v1 API Key : [copier depuis le tableau de bord] Model : if/kimi-k2-thinking ``` **C'est tout !** Commencez à coder avec des modèles IA GRATUITS. **Alternative — exécuter depuis le code source :** ```bash cp .env.example .env npm install PORT=20128 NEXT_PUBLIC_BASE_URL=http://localhost:20128 npm run dev ``` --- ## 🐳 Docker OmniRoute est disponible en tant qu'image Docker publique sur [Docker Hub](https://hub.docker.com/r/diegosouzapw/omniroute). **Démarrage rapide :** ```bash docker run -d \ --name omniroute \ --restart unless-stopped \ -p 20128:20128 \ -v omniroute-data:/app/data \ diegosouzapw/omniroute:latest ``` **Avec fichier d'environnement :** ```bash # Copier et modifier le .env d'abord cp .env.example .env docker run -d \ --name omniroute \ --restart unless-stopped \ --env-file .env \ -p 20128:20128 \ -v omniroute-data:/app/data \ diegosouzapw/omniroute:latest ``` **Avec Docker Compose :** ```bash # Profil de base (sans outils CLI) docker compose --profile base up -d # Profil CLI (Claude Code, Codex, OpenClaw intégrés) docker compose --profile cli up -d ``` | Image | Tag | Taille | Description | | ------------------------ | -------- | ------ | ----------------------- | | `diegosouzapw/omniroute` | `latest` | ~250MB | Dernière version stable | | `diegosouzapw/omniroute` | `1.0.6` | ~250MB | Version actuelle | --- --- ## 🖥️ Application Bureau — Hors Ligne et Toujours Actif > 🆕 **NOUVEAU !** OmniRoute est maintenant disponible en tant qu'**application de bureau native** pour Windows, macOS et Linux. Exécutez OmniRoute en tant qu'application de bureau autonome — sans terminal, sans navigateur, sans internet requis pour les modèles locaux. - 🖥️ **Fenêtre Native** — Fenêtre dédiée avec intégration dans la barre d'état système - 🔄 **Démarrage Automatique** — Lancez OmniRoute à la connexion système - 🔔 **Notifications Natives** — Alertes pour l'épuisement de quota ou les problèmes - ⚡ **Installation en Un Clic** — NSIS (Windows), DMG (macOS), AppImage (Linux) - 🌐 **Mode Hors Ligne** — Fonctionne entièrement hors ligne avec serveur intégré ```bash npm run electron:dev # Mode développement npm run electron:build # Plateforme actuelle npm run electron:build:win # Windows (.exe) npm run electron:build:mac # macOS (.dmg) npm run electron:build:linux # Linux (.AppImage) ``` 📖 Documentation complète : [`electron/README.md`](electron/README.md) --- ## 💰 Aperçu des tarifs | Tier | Fournisseur | Coût | Réinitialisation | Idéal pour | | ----------------- | ----------------- | -------------------------- | ------------------- | ----------------------------- | | **💳 ABONNEMENT** | Claude Code (Pro) | 20 $/mois | 5h + hebdomadaire | Déjà abonné | | | Codex (Plus/Pro) | 20-200 $/mois | 5h + hebdomadaire | Utilisateurs OpenAI | | | Gemini CLI | **GRATUIT** | 180K/mois + 1K/jour | Tout le monde ! | | | GitHub Copilot | 10-19 $/mois | Mensuel | Utilisateurs GitHub | | **🔑 CLÉ API** | NVIDIA NIM | **GRATUIT** (1000 crédits) | Unique | Tests gratuits | | | DeepSeek | À l'usage | Aucune | Meilleur rapport qualité-prix | | | Groq | Niveau gratuit + payant | Limité | Inférence ultra-rapide | | | xAI (Grok) | À l'usage | Aucune | Modèles Grok | | | Mistral | Niveau gratuit + payant | Limité | IA européenne | | | OpenRouter | À l'usage | Aucune | 100+ modèles | | **💰 ÉCONOMIQUE** | GLM-4.7 | 0,6 $/1M | Quotidien 10h | Backup économique | | | MiniMax M2.1 | 0,2 $/1M | Rotatif 5h | Option la moins chère | | | Kimi K2 | 9 $/mois fixe | 10M tokens/mois | Coût prévisible | | **🆓 GRATUIT** | iFlow | 0 $ | Illimité | 8 modèles gratuits | | | Qwen | 0 $ | Illimité | 3 modèles gratuits | | | Kiro | 0 $ | Illimité | Claude gratuit | **💡 Conseil Pro :** Commencez avec Gemini CLI (180K gratuits/mois) + iFlow (illimité gratuit) = 0 $ de coût ! --- ## 💡 Fonctionnalités principales ### 🧠 Routage & Intelligence | Fonctionnalité | Ce qu'elle fait | | ------------------------------------- | ------------------------------------------------------------------------------- | | 🎯 **Fallback intelligent 4 niveaux** | Auto-routage : Abonnement → Clé API → Économique → Gratuit | | 📊 **Suivi des quotas en temps réel** | Comptage de tokens en direct + compte à rebours de réinitialisation | | 🔄 **Traduction de format** | OpenAI ↔ Claude ↔ Gemini ↔ Cursor ↔ Kiro transparent | | 👥 **Support multi-comptes** | Plusieurs comptes par fournisseur avec sélection intelligente | | 🔄 **Renouvellement auto des tokens** | Les tokens OAuth se renouvellent automatiquement avec retry | | 🎨 **Combos personnalisés** | 6 stratégies : fill-first, round-robin, p2c, random, least-used, cost-optimized | | 🧩 **Modèles personnalisés** | Ajoutez n'importe quel ID de modèle à n'importe quel fournisseur | | 🌐 **Routeur wildcard** | Routez les patterns `provider/*` vers n'importe quel fournisseur dynamiquement | | 🧠 **Budget de raisonnement** | Modes passthrough, auto, custom et adaptive pour les modèles de raisonnement | | 🔀 **Model Aliases** | Auto-forward deprecated model IDs to current replacements (built-in + custom) | | ⚡ **Background Degradation** | Auto-route background tasks (titles, summaries) to cheaper models | | 💬 **Injection System Prompt** | System prompt global appliqué à toutes les requêtes | | 📄 **API Responses** | Support complet de l'API Responses d'OpenAI (`/v1/responses`) pour Codex | ### 🎵 APIs multi-modales | Fonctionnalité | Ce qu'elle fait | | -------------------------- | ------------------------------------------------------- | | 🖼️ **Génération d'images** | `/v1/images/generations` — 4 fournisseurs, 9+ modèles | | 📐 **Embeddings** | `/v1/embeddings` — 6 fournisseurs, 9+ modèles | | 🎤 **Transcription audio** | `/v1/audio/transcriptions` — compatible Whisper | | 🔊 **Texte vers parole** | `/v1/audio/speech` — synthèse audio multi-fournisseur | | 🛡️ **Modérations** | `/v1/moderations` — vérifications de sécurité | | 🔀 **Reranking** | `/v1/rerank` — reclassement de pertinence des documents | ### 🛡️ Résilience & Sécurité | Fonctionnalité | Ce qu'elle fait | | ------------------------------- | ---------------------------------------------------------------------------- | | 🔌 **Circuit Breaker** | Ouverture/fermeture auto par fournisseur avec seuils configurables | | 🛡️ **Anti-Thundering Herd** | Mutex + sémaphore de rate-limit pour les fournisseurs avec clé API | | 🧠 **Cache sémantique** | Cache à deux niveaux (signature + sémantique) réduit coût et latence | | ⚡ **Idempotence des requêtes** | Fenêtre de dédup 5s pour les requêtes dupliquées | | 🔒 **Spoofing TLS Fingerprint** | Contournement de détection de bot via wreq-js | | 🌐 **Filtrage IP** | Allowlist/blocklist pour le contrôle d'accès API | | 📊 **Rate limits éditables** | RPM configurable, intervalle minimum, concurrence max | | 💾 **Rate Limit Persistence** | Learned limits survive restarts via SQLite with 60s debounce + 24h staleness | | 🔄 **Token Refresh Resilience** | Per-provider circuit breaker (5 fails→30min) + 30s timeout per attempt | ### 📊 Observabilité & Analytique | Fonctionnalité | Ce qu'elle fait | | --------------------------------- | ------------------------------------------------------------------------- | | 📝 **Logs de requêtes** | Mode debug avec logs complets requête/réponse | | 💾 **Logs SQLite** | Logs proxy persistants survivant aux redémarrages | | 📊 **Tableau de bord analytique** | Recharts : cartes de stats, graphique d'utilisation, tableau fournisseurs | | 📈 **Suivi de progression** | Événements SSE de progression opt-in pour le streaming | | 🧪 **Évaluations LLM** | Tests avec golden set et 4 stratégies de correspondance | | 🔍 **Télémétrie des requêtes** | Agrégation de latence p50/p95/p99 + traçage X-Request-Id | | 📋 **Logs + Quotas** | Pages dédiées pour navigation des logs et suivi des quotas | | 🏥 **Tableau de bord santé** | Uptime, états circuit breaker, lockouts, stats cache | | 💰 **Suivi des coûts** | Gestion de budget + configuration des prix par modèle | ### ☁️ Déploiement & Synchronisation | Fonctionnalité | Ce qu'elle fait | | --------------------------------- | ------------------------------------------------------------------------------- | | 💾 **Cloud Sync** | Synchroniser les paramètres entre appareils via Cloudflare Workers | | 🌐 **Déployer partout** | Localhost, VPS, Docker, Cloudflare Workers | | 🔑 **Gestion des clés API** | Générer, faire tourner et limiter les clés API par fournisseur | | 🧙 **Assistant de configuration** | Setup guidé en 4 étapes pour les nouveaux utilisateurs | | 🔧 **Tableau de bord CLI Tools** | Configuration en un clic pour Claude, Codex, Cline, OpenClaw, Kilo, Antigravity | | 🔄 **Sauvegardes DB** | Sauvegarde et restauration automatiques de tous les paramètres |
📖 Détails des fonctionnalités ### 🎯 Fallback intelligent 4 niveaux Créez des combos avec fallback automatique : ``` Combo : "my-coding-stack" 1. cc/claude-opus-4-6 (votre abonnement) 2. nvidia/llama-3.3-70b (API NVIDIA gratuite) 3. glm/glm-4.7 (backup économique, $0.6/1M) 4. if/kimi-k2-thinking (fallback gratuit) → Bascule automatiquement lorsque le quota est épuisé ou en cas d'erreurs ``` ### 📊 Suivi des quotas en temps réel - Consommation de tokens par fournisseur - Compte à rebours de réinitialisation (5 heures, quotidien, hebdomadaire) - Estimation des coûts pour les niveaux payants - Rapports de dépenses mensuels ### 🔄 Traduction de format Traduction transparente entre les formats : - **OpenAI** ↔ **Claude** ↔ **Gemini** ↔ **OpenAI Responses** - Votre CLI envoie le format OpenAI → OmniRoute traduit → Le fournisseur reçoit le format natif - Fonctionne avec tout outil supportant les endpoints OpenAI personnalisés ### 👥 Support multi-comptes - Ajouter plusieurs comptes par fournisseur - Round-robin automatique ou routage par priorité - Basculement vers le compte suivant lorsqu'un quota est atteint ### 🔄 Renouvellement automatique des tokens - Les tokens OAuth se renouvellent automatiquement avant expiration - Pas de réauthentification manuelle nécessaire - Expérience transparente sur tous les fournisseurs ### 🎨 Combos personnalisés - Créer des combinaisons de modèles illimitées - 6 stratégies : fill-first, round-robin, power-of-two-choices, random, least-used, cost-optimized - Partager les combos entre appareils avec Cloud Sync ### 🏥 Tableau de bord santé - Statut du système (uptime, version, utilisation mémoire) - États des circuit breakers par fournisseur (Closed/Open/Half-Open) - Statut des rate limits et lockouts actifs - Statistiques du cache de signatures - Télémétrie de latence (p50/p95/p99) + cache de prompt - Réinitialisation de la santé en un clic ### 🔧 Playground du traducteur - Déboguer, tester et visualiser les traductions de format d'API - Envoyer des requêtes et voir comment OmniRoute traduit entre les formats des fournisseurs - Inestimable pour résoudre les problèmes d'intégration ### 💾 Cloud Sync - Synchroniser fournisseurs, combos et paramètres entre appareils - Synchronisation en arrière-plan automatique - Stockage chiffré sécurisé
--- ## 🎯 Cas d'utilisation ### Cas 1 : « J'ai un abonnement Claude Pro » **Problème :** Le quota expire inutilisé, limites de débit pendant le codage intensif ``` Combo : "maximize-claude" 1. cc/claude-opus-4-6 (utiliser l'abonnement au maximum) 2. glm/glm-4.7 (backup économique quand le quota est épuisé) 3. if/kimi-k2-thinking (fallback d'urgence gratuit) Coût mensuel : 20 $ (abonnement) + ~5 $ (backup) = 25 $ au total vs. 20 $ + atteindre les limites = frustration ``` ### Cas 2 : « Je veux zéro coût » **Problème :** Impossible de payer des abonnements, besoin d'IA fiable pour coder ``` Combo : "free-forever" 1. gc/gemini-3-flash (180K gratuits/mois) 2. if/kimi-k2-thinking (illimité gratuit) 3. qw/qwen3-coder-plus (illimité gratuit) Coût mensuel : 0 $ Qualité : Modèles prêts pour la production ``` ### Cas 3 : « Je dois coder 24/7, sans interruption » **Problème :** Délais serrés, ne peut pas se permettre de temps d'arrêt ``` Combo : "always-on" 1. cc/claude-opus-4-6 (meilleure qualité) 2. cx/gpt-5.2-codex (deuxième abonnement) 3. glm/glm-4.7 (économique, reset quotidien) 4. minimax/MiniMax-M2.1 (le moins cher, reset 5h) 5. if/kimi-k2-thinking (gratuit illimité) Résultat : 5 niveaux de fallback = zéro temps d'arrêt ``` ### Cas 4 : « Je veux l'IA GRATUITE dans OpenClaw » **Problème :** Besoin d'assistant IA dans les apps de messagerie, entièrement gratuit ``` Combo : "openclaw-free" 1. if/glm-4.7 (illimité gratuit) 2. if/minimax-m2.1 (illimité gratuit) 3. if/kimi-k2-thinking (illimité gratuit) Coût mensuel : 0 $ Accès via : WhatsApp, Telegram, Slack, Discord, iMessage, Signal... ``` --- ## 📖 Guide de configuration
💳 Fournisseurs par abonnement ### Claude Code (Pro/Max) ```bash Tableau de bord → Fournisseurs → Connecter Claude Code → Connexion OAuth → Renouvellement auto des tokens → Suivi de quota 5h + hebdomadaire Modèles : cc/claude-opus-4-6 cc/claude-sonnet-4-5-20250929 cc/claude-haiku-4-5-20251001 ``` **Conseil Pro :** Utilisez Opus pour les tâches complexes, Sonnet pour la vitesse. OmniRoute suit les quotas par modèle ! ### OpenAI Codex (Plus/Pro) ```bash Tableau de bord → Fournisseurs → Connecter Codex → Connexion OAuth (port 1455) → Reset 5h + hebdomadaire Modèles : cx/gpt-5.2-codex cx/gpt-5.1-codex-max ``` ### Gemini CLI (GRATUIT 180K/mois !) ```bash Tableau de bord → Fournisseurs → Connecter Gemini CLI → Google OAuth → 180K completions/mois + 1K/jour Modèles : gc/gemini-3-flash-preview gc/gemini-2.5-pro ``` **Meilleure valeur :** Niveau gratuit énorme ! Utilisez avant les niveaux payants. ### GitHub Copilot ```bash Tableau de bord → Fournisseurs → Connecter GitHub → OAuth via GitHub → Reset mensuel (1er du mois) Modèles : gh/gpt-5 gh/claude-4.5-sonnet gh/gemini-3-pro ```
🔑 Fournisseurs par clé API ### NVIDIA NIM (GRATUIT 1000 crédits !) 1. S'inscrire : [build.nvidia.com](https://build.nvidia.com) 2. Obtenir une clé API gratuite (1000 crédits d'inférence inclus) 3. Tableau de bord → Ajouter fournisseur → NVIDIA NIM : - API Key : `nvapi-your-key` **Modèles :** `nvidia/llama-3.3-70b-instruct`, `nvidia/mistral-7b-instruct` et 50+ autres **Conseil Pro :** API compatible OpenAI — fonctionne parfaitement avec la traduction de format d'OmniRoute ! ### DeepSeek 1. S'inscrire : [platform.deepseek.com](https://platform.deepseek.com) 2. Obtenir une clé API 3. Tableau de bord → Ajouter fournisseur → DeepSeek **Modèles :** `deepseek/deepseek-chat`, `deepseek/deepseek-coder` ### Groq (Niveau gratuit disponible !) 1. S'inscrire : [console.groq.com](https://console.groq.com) 2. Obtenir une clé API (niveau gratuit inclus) 3. Tableau de bord → Ajouter fournisseur → Groq **Modèles :** `groq/llama-3.3-70b`, `groq/mixtral-8x7b` **Conseil Pro :** Inférence ultra-rapide — idéal pour le codage en temps réel ! ### OpenRouter (100+ modèles) 1. S'inscrire : [openrouter.ai](https://openrouter.ai) 2. Obtenir une clé API 3. Tableau de bord → Ajouter fournisseur → OpenRouter **Modèles :** Accès à 100+ modèles de tous les grands fournisseurs via une seule clé API.
💰 Fournisseurs économiques (Backup) ### GLM-4.7 (Reset quotidien, $0.6/1M) 1. S'inscrire : [Zhipu AI](https://open.bigmodel.cn/) 2. Obtenir une clé API du Coding Plan 3. Tableau de bord → Ajouter clé API : - Fournisseur : `glm` - API Key : `your-key` **Utilisez :** `glm/glm-4.7` **Conseil Pro :** Le Coding Plan offre 3× le quota à 1/7 du coût ! Reset quotidien à 10h. ### MiniMax M2.1 (Reset 5h, $0.20/1M) 1. S'inscrire : [MiniMax](https://www.minimax.io/) 2. Obtenir une clé API 3. Tableau de bord → Ajouter clé API **Utilisez :** `minimax/MiniMax-M2.1` **Conseil Pro :** L'option la moins chère pour le contexte long (1M tokens) ! ### Kimi K2 (9 $/mois fixe) 1. S'abonner : [Moonshot AI](https://platform.moonshot.ai/) 2. Obtenir une clé API 3. Tableau de bord → Ajouter clé API **Utilisez :** `kimi/kimi-latest` **Conseil Pro :** 9 $/mois fixe pour 10M tokens = 0,90 $/1M de coût effectif !
🆓 Fournisseurs GRATUITS (Backup d'urgence) ### iFlow (8 modèles GRATUITS) ```bash Tableau de bord → Connecter iFlow → Connexion OAuth iFlow → Utilisation illimitée Modèles : if/kimi-k2-thinking if/qwen3-coder-plus if/glm-4.7 if/minimax-m2 if/deepseek-r1 ``` ### Qwen (3 modèles GRATUITS) ```bash Tableau de bord → Connecter Qwen → Autorisation par code d'appareil → Utilisation illimitée Modèles : qw/qwen3-coder-plus qw/qwen3-coder-flash ``` ### Kiro (Claude GRATUIT) ```bash Tableau de bord → Connecter Kiro → AWS Builder ID ou Google/GitHub → Utilisation illimitée Modèles : kr/claude-sonnet-4.5 kr/claude-haiku-4.5 ```
🎨 Créer des combos ### Exemple 1 : Maximiser l'abonnement → Backup économique ``` Tableau de bord → Combos → Créer nouveau Nom : premium-coding Modèles : 1. cc/claude-opus-4-6 (Abonnement principal) 2. glm/glm-4.7 (Backup économique, $0.6/1M) 3. minimax/MiniMax-M2.1 (Fallback le moins cher, $0.20/1M) Utilisez en CLI : premium-coding ``` ### Exemple 2 : Gratuit uniquement (Zéro coût) ``` Nom : free-combo Modèles : 1. gc/gemini-3-flash-preview (180K gratuits/mois) 2. if/kimi-k2-thinking (illimité) 3. qw/qwen3-coder-plus (illimité) Coût : 0 $ pour toujours ! ```
🔧 Intégration CLI ### Cursor IDE ``` Paramètres → Modèles → Avancé : OpenAI API Base URL : http://localhost:20128/v1 OpenAI API Key : [du tableau de bord OmniRoute] Model : cc/claude-opus-4-6 ``` ### Claude Code Utilisez la page **CLI Tools** dans le tableau de bord pour la configuration en un clic, ou modifiez `~/.claude/settings.json` manuellement. ### Codex CLI ```bash export OPENAI_BASE_URL="http://localhost:20128" export OPENAI_API_KEY="your-omniroute-api-key" codex "your prompt" ``` ### OpenClaw **Option 1 — Tableau de bord (recommandé) :** ``` Tableau de bord → CLI Tools → OpenClaw → Sélectionner modèle → Appliquer ``` **Option 2 — Manuel :** Modifier `~/.openclaw/openclaw.json` : ```json { "models": { "providers": { "omniroute": { "baseUrl": "http://127.0.0.1:20128/v1", "apiKey": "sk_omniroute", "api": "openai-completions" } } } } ``` > **Note :** OpenClaw fonctionne uniquement avec OmniRoute local. Utilisez `127.0.0.1` au lieu de `localhost` pour éviter les problèmes de résolution IPv6. ### Cline / Continue / RooCode ``` Paramètres → Configuration API : Fournisseur : OpenAI Compatible Base URL : http://localhost:20128/v1 API Key : [du tableau de bord OmniRoute] Model : if/kimi-k2-thinking ```
--- ## 🧪 Évaluations (Evals) OmniRoute inclut un framework d'évaluation intégré pour tester la qualité des réponses LLM contre un golden set. Accès via **Analytics → Evals** dans le tableau de bord. ### Golden Set intégré Le « OmniRoute Golden Set » préchargé contient 10 cas de test : - Salutations, mathématiques, géographie, génération de code - Conformité format JSON, traduction, markdown - Rejet de sécurité (contenu nocif), comptage, logique booléenne ### Stratégies d'évaluation | Stratégie | Description | Exemple | | ---------- | -------------------------------------------------------------- | -------------------------------- | | `exact` | La sortie doit correspondre exactement | `"4"` | | `contains` | La sortie doit contenir la sous-chaîne (insensible à la casse) | `"Paris"` | | `regex` | La sortie doit correspondre au motif regex | `"1.*2.*3"` | | `custom` | Fonction JS personnalisée retourne true/false | `(output) => output.length > 10` | --- ## 🐛 Dépannage
Cliquez pour développer le guide de dépannage **« Language model did not provide messages »** - Quota du fournisseur épuisé → Vérifiez le suivi de quota dans le tableau de bord - Solution : Utilisez un combo avec fallback ou passez à un niveau moins cher **Rate limiting** - Quota d'abonnement épuisé → Fallback vers GLM/MiniMax - Ajoutez un combo : `cc/claude-opus-4-6 → glm/glm-4.7 → if/kimi-k2-thinking` **Token OAuth expiré** - Renouvelé automatiquement par OmniRoute - Si le problème persiste : Tableau de bord → Fournisseur → Reconnecter **Coûts élevés** - Vérifiez les statistiques d'utilisation dans Tableau de bord → Coûts - Changez le modèle principal pour GLM/MiniMax - Utilisez le niveau gratuit (Gemini CLI, iFlow) pour les tâches non critiques **Le tableau de bord s'ouvre sur le mauvais port** - Définissez `PORT=20128` et `NEXT_PUBLIC_BASE_URL=http://localhost:20128` **Erreurs de cloud sync** - Vérifiez que `BASE_URL` pointe vers votre instance en cours d'exécution - Vérifiez que `CLOUD_URL` pointe vers le point de terminaison cloud attendu - Gardez les valeurs `NEXT_PUBLIC_*` alignées avec les valeurs du serveur **Le premier login ne fonctionne pas** - Vérifiez `INITIAL_PASSWORD` dans `.env` - Si non défini, le mot de passe par défaut est `123456` **Pas de logs de requêtes** - Définissez `ENABLE_REQUEST_LOGS=true` dans `.env` **Le test de connexion affiche « Invalid » pour les fournisseurs compatibles OpenAI** - Beaucoup de fournisseurs n'exposent pas le point de terminaison `/models` - OmniRoute v1.0.6+ inclut une validation de secours via chat completions - Assurez-vous que l'URL de base inclut le suffixe `/v1`
--- ## 🛠️ Stack technologique - **Runtime** : Node.js 20+ - **Langage** : TypeScript 5.9 — **100% TypeScript** dans `src/` et `open-sse/` (v1.0.6) - **Framework** : Next.js 16 + React 19 + Tailwind CSS 4 - **Base de données** : LowDB (JSON) + SQLite (état du domaine + logs proxy) - **Streaming** : Server-Sent Events (SSE) - **Auth** : OAuth 2.0 (PKCE) + JWT + API Keys - **Tests** : Node.js test runner (368+ tests unitaires) - **CI/CD** : GitHub Actions (publication automatique npm + Docker Hub lors du release) - **Site web** : [omniroute.online](https://omniroute.online) - **Package** : [npmjs.com/package/omniroute](https://www.npmjs.com/package/omniroute) - **Docker** : [hub.docker.com/r/diegosouzapw/omniroute](https://hub.docker.com/r/diegosouzapw/omniroute) - **Résilience** : Circuit breaker, backoff exponentiel, anti-thundering herd, spoofing TLS --- ## 📖 Documentation | Document | Description | | ------------------------------------------ | --------------------------------------------------- | | [Guide utilisateur](docs/USER_GUIDE.md) | Fournisseurs, combos, intégration CLI, déploiement | | [Référence API](docs/API_REFERENCE.md) | Tous les endpoints avec exemples | | [Dépannage](docs/TROUBLESHOOTING.md) | Problèmes courants et solutions | | [Architecture](docs/ARCHITECTURE.md) | Architecture système et détails internes | | [Contribuer](CONTRIBUTING.md) | Configuration de développement et directives | | [Spécification OpenAPI](docs/openapi.yaml) | Spécification OpenAPI 3.0 | | [Politique de sécurité](SECURITY.md) | Signalement de vulnérabilités et pratiques sécurité | --- ## 📧 Support > 💬 **Rejoignez notre communauté !** [Groupe WhatsApp](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) — Obtenez de l'aide, partagez des astuces et restez informé. - **Site web** : [omniroute.online](https://omniroute.online) - **GitHub** : [github.com/diegosouzapw/OmniRoute](https://github.com/diegosouzapw/OmniRoute) - **Issues** : [github.com/diegosouzapw/OmniRoute/issues](https://github.com/diegosouzapw/OmniRoute/issues) - **WhatsApp** : [Groupe communautaire](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) - **Projet original** : [9router par decolua](https://github.com/decolua/9router) --- ## 👥 Contributeurs [![Contributors](https://contrib.rocks/image?repo=diegosouzapw/OmniRoute&max=100&columns=20&anon=1)](https://github.com/diegosouzapw/OmniRoute/graphs/contributors) ### Comment contribuer 1. Forkez le dépôt 2. Créez votre branche de fonctionnalité (`git checkout -b feature/amazing-feature`) 3. Committez vos changements (`git commit -m 'Add amazing feature'`) 4. Poussez vers la branche (`git push origin feature/amazing-feature`) 5. Ouvrez une Pull Request Consultez [CONTRIBUTING.md](CONTRIBUTING.md) pour les directives détaillées. ### Publier une nouvelle version ```bash # Créer un release — la publication npm est automatique gh release create v1.0.6 --title "v1.0.6" --generate-notes ``` --- ## 📊 Historique des Stars Star History Chart --- ## 🙏 Remerciements Remerciements spéciaux à **[9router](https://github.com/decolua/9router)** par **[decolua](https://github.com/decolua)** — le projet original qui a inspiré ce fork. OmniRoute construit sur cette base incroyable avec des fonctionnalités supplémentaires, des APIs multi-modales et une réécriture complète en TypeScript. Remerciements spéciaux à **[CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI)** — l'implémentation originale en Go qui a inspiré ce portage en JavaScript. --- ## 📄 Licence Licence MIT — voir [LICENSE](LICENSE) pour les détails. ---
Fait avec ❤️ pour les développeurs qui codent 24/7
omniroute.online