CLI Tools — OmniRoute (Français)
Comment ça fonctionne
Section intitulée « Comment ça fonctionne »Code CLI / Agents CLI (flux de consommation) :Claude / Codex / OpenCode / Cline / KiloCode / Continue / Hermes Agent / Goose / ... │ ▼ (tous pointent vers OmniRoute) http://YOUR_SERVER:20128/v1 │ ▼ (OmniRoute route vers le bon fournisseur) Anthropic / OpenAI / Gemini / DeepSeek / Groq / Mistral / ...
Agents ACP (flux de génération inverse) : Demande client → OmniRoute → génère CLI via stdio/ACP → réponseAvantages :
- Une clé API pour gérer tous les outils
- Suivi des coûts à travers tous les CLIs dans le tableau de bord
- Changement de modèle sans reconfigurer chaque outil
- Fonctionne localement et sur des serveurs distants (VPS, Docker, Akamai, Cloudflare Tunnel)
Configuration automatique avec setup-*
Section intitulée « Configuration automatique avec setup-* »Vous n’avez pas à écrire la configuration de chaque outil à la main. OmniRoute
fournit une commande setup-* par CLI prise en charge qui lit le catalogue de
modèles en direct à partir d’un OmniRoute en cours d’exécution (local ou
distant) et écrit la propre configuration de l’outil sur votre machine :
omniroute setup-codex omniroute setup-claude omniroute setup-opencodeomniroute setup-cline omniroute setup-kilo omniroute setup-continueomniroute setup-cursor omniroute setup-roo omniroute setup-crushomniroute setup-goose omniroute setup-qwen omniroute setup-aideromniroute setup-5diveChacune accepte --remote <url> --api-key <key> (configure un outil local
contre un OmniRoute distant), --dry-run (aperçu sans écriture) et --port.
Les outils sans auto-découverte de modèle (Cline, Kilo, Roo, Goose, Aider, Qwen,
5dive) prennent --model <id> (et --yes pour les exécutions non
interactives). setup-5dive est la seule recette qui n’écrit pas sous $HOME :
elle configure une flotte d’agents 5dive en écrivant un profil d’authentification
appartenant à la racine sur l’hôte de la flotte, elle se ré-exécute donc via
sudo et n’a pas de mode distant propre. Pour lancer une CLI avec l’environnement
correct injecté et sans aucune configuration écrite, utilisez le lanceur générique
omniroute run <target> (claude, codex, aider, goose, opencode, qwen, gemini —
les cibles et alias proviennent de bin/cli/cli-manifest.mjs) ; les lanceurs
hérités par outil omniroute launch (Claude Code) et omniroute launch-codex
(Codex) restent disponibles. Gemini CLI est uniquement en mode lancement : c’est
une cible omniroute run mais n’a pas de recette setup-*/configure.
Référence complète : le tableau principal — ce que chaque commande écrit, chaque drapeau, local vs distant, et quels outils nécessitent un suffixe
/v1— se trouve dans Intégrations CLI.
Exécution de ces commandes dans un conteneur
Section intitulée « Exécution de ces commandes dans un conteneur »Une commande setup-* exécutée à l’intérieur du conteneur OmniRoute écrit dans
le propre répertoire personnel du conteneur, qu’aucune CLI hôte ne lit et qui
disparaît avec le conteneur. OmniRoute détecte cela et quitte avec le code 2
et des instructions plutôt que d’écrire. Deux méthodes prises en charge :
installer la CLI sur l’hôte et omniroute connect au conteneur, ou monter les
répertoires de configuration et définir CLI_CONFIG_HOME (le profil host de
compose). Chaque commande setup-*, plus omniroute configure et
omniroute config set, accepte --allow-container-write lorsque la
configuration des propres CLI du conteneur est ce que vous vouliez réellement ;
OMNIROUTE_ALLOW_CONTAINER_CONFIG_WRITE=true fait de même pour le serveur.
Voir Guide Docker → Configuration des outils CLI hôtes.
Le point de terminaison d’application du tableau de bord (POST /api/cli-tools/apply)
applique la même protection : dans un conteneur, une écriture dont la cible n’est
pas montée depuis l’hôte répond 422 avec containerEphemeralTarget: true,
le texte d’erreur sécurisé et — pour les outils avec une recette hôte (claude,
codex, opencode, cline, kilo, continue) — une hostSetupCommand (par exemple
omniroute setup-opencode) à exécuter sur l’hôte à la place ; rien n’est écrit.
dryRun: true continue de fonctionner en mode conteneur et renvoie un aperçu
expurgé + chemin cible sans toucher le disque. Le contenu de l’aperçu n’est pas
une configuration contenant des informations d’identification à copier ou à
importer. Appliquez avec l’outil d’origine/l’URL de base/la clé API/les entrées
de modèle sur l’hôte, ou utilisez la commande de configuration côté hôte indiquée.
Voir Sécurité de la configuration CLI pour
l’en-tête d’aperçu et le contrat de requête. Ce comportement est intentionnel et
protégé contre les régressions par tests/unit/api/cli-tools/apply-container-guard.test.ts
— ne “corrigez” jamais une 422 en supprimant la protection.
Source de vérité
Section intitulée « Source de vérité »Le catalogue unifié se trouve dans src/shared/constants/cliTools.ts sous CLI_TOOLS: Record<string, CliCatalogEntry>.
Chaque entrée a ces champs (définis dans src/shared/schemas/cliCatalog.ts):
| Champ | Type | Description |
|---|---|---|
category |
"code" | "agent" |
Sur quelle page l’outil apparaît |
vendor |
string |
Origine de l’outil (“Anthropic”, “OSS (P. Gauthier)”) |
acpSpawnable |
boolean |
Également utilisable en tant qu’agent ACP (badge affiché) |
baseUrlSupport |
"full" | "partial" | "none" |
Niveau de support des points de terminaison personnalisés. "none" = backlog MITM |
configType |
"env" | "custom" | "guide" | "custom-builder" | "mitm" |
Mécanisme de configuration |
id, name, color, description, docsUrl |
standard | Champs d’affichage principaux |
Les entrées avec baseUrlSupport: "none" ne sont pas affichées dans les pages du tableau de bord — elles sont enregistrées dans le backlog MITM pour le plan 11 (voir _tasks/features-v3.8.6/refactorpages/_orchestration/_plan11-mitm-backlog.md).
Niveaux de capacité (catalogué × détectable × configurable × lançable)
Section intitulée « Niveaux de capacité (catalogué × détectable × configurable × lançable) »Tous les outils catalogués ne sont pas détectables, configurables ou lançables. Chaque niveau a une source déclarative, et un test de dérive les maintient alignés :
| Niveau | Signification | Déclaré dans |
|---|---|---|
| Catalogué | Apparaît dans le catalogue du tableau de bord (nom, fournisseur, docs, type de configuration) | src/shared/constants/cliTools.ts (CLI_TOOLS) |
| Détectable | Détection binaire/configuration, vérifications de santé, chemins de configuration | src/shared/services/cliRuntime.ts (CLI_TOOLS catalogue d’exécution) |
| Configuré | Supporté par omniroute configure <cli> (recette de configuration existante) |
bin/cli/cli-manifest.mjs (configure: true) |
| Lançable | Supporté par omniroute run <target> (injection d’env/args définie) |
bin/cli/cli-manifest.mjs (run: true) |
bin/cli/cli-manifest.mjs est le manifeste exécutable canonique pour les commandes CLI : run, configure et les générateurs de complétion de shell dérivent tous leurs listes de cibles, résolution d’alias (par exemple kilocode/kilo-code/kilo_cli → kilo) et câblage du drapeau --model à partir de celui-ci. Le garde de dérive tests/unit/cli/cli-manifest-drift.test.ts affirme que le manifeste, le catalogue d’exécution, le catalogue UI et chaque surface de consommateur restent synchronisés — une cible ajoutée à une surface sans les autres échoue la suite au lieu de dériver silencieusement.
1. Catalogue des outils CLI (26 outils)
Section intitulée « 1. Catalogue des outils CLI (26 outils) »Tous les outils qui apparaissent dans /dashboard/cli-code. Ceux avec baseUrlSupport: none sont connectés via MITM ou un guide manuel au lieu d’une URL de base personnalisée :
| id | nom | fournisseur | supportBaseUrl | typeConfig | acpSpawnable |
|---|---|---|---|---|---|
| claude | Claude Code | Anthropic | complet | env | vrai |
| codex | OpenAI Codex CLI | OpenAI | complet | personnalisé | vrai |
| zcode | ZCode (GLM Coding Plan) | Z.ai | aucun | personnalisé | faux |
| cline | Cline | OSS (ex-Claude Dev) | complet | personnalisé | vrai |
| kilo | Kilo Code | Kilo-Org | complet | personnalisé | faux |
| roo | Roo Code | Roo (OSS) | complet | guide | faux |
| continue | Continue | continue.dev | complet | guide | faux |
| aider | Aider | OSS (P. Gauthier) | complet | guide | vrai |
| forge | ForgeCode | Antinomy HQ | complet | personnalisé | vrai |
| jcode | jcode | 1jehuang (OSS) | complet | personnalisé | faux |
| deepseek-tui | DeepSeek TUI | Hunter Bown (OSS) | complet | personnalisé | faux |
| codewhale | CodeWhale | Hmbown (OSS) | complet | personnalisé | faux |
| opencode | OpenCode | Anomaly (ex-SST) | complet | guide | vrai |
| droid | Factory Droid | Factory AI | partiel | guide | faux |
| copilot | GitHub Copilot CLI | GitHub/MS | complet | personnalisé | faux |
| cursor-cli | Cursor CLI | Anysphere | partiel | guide | vrai |
| smelt | Smelt | leonardcser (OSS) | complet | personnalisé | faux |
| pi | Pi (pi-coding-agent) | M. Zechner (OSS) | complet | personnalisé | faux |
| grok-build | Grok Build | xAI | complet | personnalisé | faux |
| crush | Crush | OSS (Charm) | complet | personnalisé | faux |
| qwen | Qwen Code | Alibaba | complet | guide | vrai |
| cursor | Cursor | Anysphere | aucun | guide | faux |
| antigravity | Antigravity | aucun | mitm | faux | |
| hermes | Hermes | Nous Research | aucun | guide | faux |
| kiro | Kiro AI | Amazon | aucun | mitm | faux |
| custom | Custom CLI | — | complet | constructeur-personnalisé | faux |
Les outils avec baseUrlSupport: "partiel" affichent un badge “⚠ Base URL partiel” dans la carte du tableau de bord.
Section intitulée « Les outils avec baseUrlSupport: "partiel" affichent un badge “⚠ Base URL partiel” dans la carte du tableau de bord. »2. Catalogue des agents CLI (8 outils)
Section intitulée « 2. Catalogue des agents CLI (8 outils) »Agents autonomes qui apparaissent dans /dashboard/cli-agents :
| id | nom | fournisseur | baseUrlSupport | acpSpawnable |
|---|---|---|---|---|
| hermes-agent | Agent Hermes | Nous Research | complet | faux |
| openclaw | OpenClaw | OSS (P. Steinberger) | complet | vrai |
| goose | Goose | Block / Linux Foundation | complet | vrai |
| interpreter | Open Interpreter | OSS | complet | vrai |
| warp | Warp AI | Warp Inc. | partiel | vrai |
| agent-deck | Agent Deck | asheshgoplani (OSS) | complet | faux |
| omp | Oh My Pi | OSS | complet | vrai |
| letta | Letta CLI | Letta | complet | faux |
3. Agents ACP (/dashboard/acp-agents)
Section intitulée « 3. Agents ACP (/dashboard/acp-agents) »Cette page (renommée depuis /dashboard/agents) montre les CLI que OmniRoute peut générer en tant que moteurs d’exécution backend via le protocole stdio/ACP. Le catalogue est maintenu séparément dans src/lib/acp/registry.ts et n’est pas le même que CLI_TOOLS.
4. Retard MITM (non affiché dans le tableau de bord)
Section intitulée « 4. Retard MITM (non affiché dans le tableau de bord) »Les CLI suivantes ne prennent pas en charge l’URL de base personnalisée nativement et ne sont pas listées dans les pages de Code CLI ou d’Agents CLI. Elles sont candidates à l’interception MITM dans le plan 11 :
| CLI | Raison |
|---|---|
| windsurf | BYOK limité à certains modèles Claude + URL/token d’entreprise |
| amp | Écosystème fermé (Sourcegraph) |
| amazon-q / kiro-cli | Auth AWS SSO, pas d’URL personnalisée |
| cowork | Anthropic Desktop, pas de point de terminaison configurable |
Voir _tasks/features-v3.8.6/refactorpages/_orchestration/_plan11-mitm-backlog.md pour la référence complète.
5. API de détection par lot
Section intitulée « 5. API de détection par lot »Toute détection d’outil est agrégée via un seul point de terminaison :
GET /api/cli-tools/all-statuses
- Auth :
requireCliToolsAuth(request)(identique aux autres routes/api/cli-tools/) - Retourne :
Record<toolId, ToolBatchStatus>(type :src/shared/types/cliBatchStatus.ts) - Stratégie :
Promise.allsur tous les outils, délai d’attente de 5s par outil - Cache : LRU en mémoire indexé par le fichier de configuration
mtime. Cache invalidé lorsque mtime change. Réinitialisé au redémarrage du serveur.
Structure de la réponse par outil :
interface ToolBatchStatus { detection: { installed: boolean; runnable: boolean; version?: string; command?: string; commandPath?: string; reason?: string; }; config: { status: "configured" | "not_configured" | "not_installed" | "unknown" | "other"; endpoint?: string | null; lastConfiguredAt?: string | null; }; error?: string; // assaini, pas de traces de pile}6. Gestionnaires de Paramètres pour Nouveaux Outils
Section intitulée « 6. Gestionnaires de Paramètres pour Nouveaux Outils »Les nouveaux outils avec configType: "custom" ont des routes API de paramètres dédiées :
| Route | Outil |
|---|---|
POST /api/cli-tools/forge-settings |
ForgeCode (.forge.toml) |
POST /api/cli-tools/jcode-settings |
jcode (–base-url flag) |
POST /api/cli-tools/deepseek-tui-settings |
DeepSeek TUI (OPENAI_BASE_URL, legacy) |
POST /api/cli-tools/codewhale-settings |
CodeWhale (OPENAI_BASE_URL, primaire + synchronisation legacy ~/.deepseek) |
POST /api/cli-tools/smelt-settings |
Smelt |
POST /api/cli-tools/pi-settings |
Agent de codage Pi |
POST /api/cli-tools/grok-build-settings |
Grok Build (~/.grok/config.toml, [model.omniroute]) |
POST /api/cli-tools/qwen-settings |
Qwen Code (~/.qwen/settings.json + clé .env dédiée) |
Toutes les routes utilisent sanitizeErrorMessage() pour les réponses d’erreur (Règle stricte #12).
7. Architecture des Pages du Tableau de Bord
Section intitulée « 7. Architecture des Pages du Tableau de Bord »Code CLI (/dashboard/cli-code)
Section intitulée « Code CLI (/dashboard/cli-code) »src/app/(dashboard)/dashboard/cli-code/page.tsx— composant serveursrc/app/(dashboard)/dashboard/cli-code/CliCodePageClient.tsx— grille clientsrc/app/(dashboard)/dashboard/cli-code/[id]/page.tsx— page de détail de l’outilsrc/app/(dashboard)/dashboard/cli-code/components/— 12 cartes d’outils spécialisées +ToolDetailClient.tsx
Agents CLI (/dashboard/cli-agents)
Section intitulée « Agents CLI (/dashboard/cli-agents) »src/app/(dashboard)/dashboard/cli-agents/page.tsx— composant serveursrc/app/(dashboard)/dashboard/cli-agents/CliAgentsPageClient.tsx— grille clientsrc/app/(dashboard)/dashboard/cli-agents/[id]/page.tsx— réutiliseToolDetailClient
Agents ACP (/dashboard/acp-agents)
Section intitulée « Agents ACP (/dashboard/acp-agents) »src/app/(dashboard)/dashboard/acp-agents/page.tsx— composant serveur (déplacé deagents/)
Composants UI Partagés (src/shared/components/cli/)
Section intitulée « Composants UI Partagés (src/shared/components/cli/) »| Fichier | But |
|---|---|
CliToolCard.tsx |
Carte d’état intelligente (détection + config + point de terminaison) |
CliConceptCard.tsx |
Carte d’explication de concept par page |
CliComparisonCard.tsx |
Comparaison en trois colonnes entre les types de CLI |
BaseUrlSelect.tsx |
Menu déroulant de point de terminaison (Local/Cloud/Personnalisé) |
ApiKeySelect.tsx |
Sélecteur de clé API |
ManualConfigModal.tsx |
Modal de snippet de configuration copiable |
Hook Partagé (src/shared/hooks/cli/)
Section intitulée « Hook Partagé (src/shared/hooks/cli/) »| Fichier | But |
|---|---|
useToolBatchStatuses.ts |
Récupère /api/cli-tools/all-statuses, gère l’état de chargement/rafraîchissement |
Nouveaux espaces de noms ajoutés dans le plan 14 F9 :
| Namespace | But |
|---|---|
cliCommon |
Chaînes partagées (étiquettes de carte, textes de concept/comparaison, étiquettes de page de détail) |
cliCode |
Chaînes de page du code CLI |
cliAgents |
Chaînes de page des agents CLI |
acpAgents |
Chaînes de page des agents ACP |
Des traductions complètes en PT-BR et EN sont fournies. 39 autres locales se rabattent automatiquement sur l’EN via la fusion au niveau de l’espace de noms dans src/i18n/request.ts.
9. Démarrage rapide
Section intitulée « 9. Démarrage rapide »Étape 1 — Obtenez une clé API OmniRoute
Section intitulée « Étape 1 — Obtenez une clé API OmniRoute »- Ouvrez
/dashboard/api-manager→ Créer une clé API - Donnez-lui un nom (par exemple
cli-tools) et sélectionnez toutes les autorisations - Copiez la clé — vous en aurez besoin pour chaque CLI ci-dessous
Votre clé ressemble à :
sk-xxxxxxxxxxxxxxxx-xxxxxxxxx
Étape 2 — Installez les outils CLI
Section intitulée « Étape 2 — Installez les outils CLI »Tous les outils basés sur npm nécessitent Node.js 22.22.2+ ou 24.x :
# Claude Code (Anthropic)npm install -g @anthropic-ai/claude-code
# OpenAI Codexnpm install -g @openai/codex
# OpenCodenpm install -g opencode-ai
# Clinenpm install -g cline
# KiloCodenpm install -g kilocode
# Qwen Codenpm install -g @qwen-code/qwen-code
# Google Gemini CLI (lancé via `omniroute run gemini` → /v1beta surface)npm install -g @google/gemini-cli
# Aiderpip install aider-chat
# Smeltcargo install smelt # Basé sur Rust
# Agent de codage Pi# voir https://github.com/zechnerj/pi-coding-agent pour l'installation
# jcode# voir https://github.com/1jehuang/jcode pour l'installationÉtape 3 — Configurez via le tableau de bord
Section intitulée « Étape 3 — Configurez via le tableau de bord »- Allez à
http://localhost:20128/dashboard/cli-code - Trouvez votre outil dans la grille
- Cliquez sur la carte pour ouvrir la page de détail de l’outil
- Sélectionnez votre clé API et l’URL de base
- Cliquez sur Appliquer la configuration ou copiez le snippet de configuration manuelle
Étape 4 — Définir des variables d’environnement globales
Section intitulée « Étape 4 — Définir des variables d’environnement globales »# Point de terminaison universel OmniRouteexport OPENAI_BASE_URL="http://localhost:20128/v1"export OPENAI_API_KEY="sk-your-omniroute-key"export ANTHROPIC_BASE_URL="http://localhost:20128"export ANTHROPIC_AUTH_TOKEN="sk-your-omniroute-key"# Le CLI Gemini lit GOOGLE_GEMINI_BASE_URL à la RACINE (son SDK ajoute /v1beta/... lui-même)export GOOGLE_GEMINI_BASE_URL="http://localhost:20128"export GEMINI_API_KEY="sk-your-omniroute-key"Pour un serveur distant, remplacez
localhost:20128par l’IP ou le domaine du serveur, par exemplehttp://<your-server-ip>:20128.
Étape 4 — Configurez chaque outil
Section intitulée « Étape 4 — Configurez chaque outil »Claude Code
Section intitulée « Claude Code »# Créez ~/.claude/settings.json :mkdir -p ~/.claude && cat > ~/.claude/settings.json << EOF{ "env": { "ANTHROPIC_BASE_URL": "http://localhost:20128", "ANTHROPIC_AUTH_TOKEN": "sk-your-omniroute-key" }}EOFUtilisez la racine de la passerelle unifiée Anthropic pour Claude Code. Ne pas ajouter /v1 ici.
Test : claude "say hello"
OpenAI Codex
Section intitulée « OpenAI Codex »Le Codex moderne (v0.137+) lit uniquement ~/.codex/config.toml — l’ancien
config.yaml appartient au CLI npm hérité et est silencieusement ignoré. La clé API
reste dans la variable d’environnement OMNIROUTE_API_KEY (env_key), jamais
dans le fichier :
mkdir -p ~/.codex && cat > ~/.codex/config.toml << EOFmodel_provider = "omniroute"
[model_providers.omniroute]name = "OmniRoute"base_url = "http://localhost:20128/v1"env_key = "OMNIROUTE_API_KEY"requires_openai_auth = falseEOFexport OMNIROUTE_API_KEY="sk-your-omniroute-key"Référence complète (profils, wire_api, fenêtres de contexte) : CODEX-CLI-CONFIGURATION.md.
Test : codex "what is 2+2?"
OpenCode
Section intitulée « OpenCode »mkdir -p ~/.config/opencode && cat > ~/.config/opencode/opencode.json << EOF{ "\$schema": "https://opencode.ai/config.json", "provider": { "omniroute": { "npm": "@ai-sdk/openai-compatible", "name": "OmniRoute", "options": { "baseURL": "http://localhost:20128/v1", "apiKey": "sk-your-omniroute-key" }, "models": { "claude-sonnet-4-5": { "name": "claude-sonnet-4-5" }, "claude-sonnet-4-5-thinking": { "name": "claude-sonnet-4-5-thinking" }, "gemini-3-flash": { "name": "gemini-3-flash" } } } }}EOFTest : opencode
Utilisez
opencode run "your prompt" --model omniroute/claude-sonnet-4-5-thinking --variant highpour envoyer des variantes de réflexion.
Cline (CLI ou VS Code)
Section intitulée « Cline (CLI ou VS Code) »Mode CLI :
mkdir -p ~/.cline/data && cat > ~/.cline/data/globalState.json << EOF{ "apiProvider": "openai", "openAiBaseUrl": "http://localhost:20128/v1", "openAiApiKey": "sk-your-omniroute-key"}EOFMode VS Code :
Paramètres de l’extension Cline → Fournisseur API : OpenAI Compatible → URL de base : http://localhost:20128/v1
Ou utilisez le tableau de bord OmniRoute → Outils CLI → Cline → Appliquer la configuration.
KiloCode (CLI ou VS Code)
Section intitulée « KiloCode (CLI ou VS Code) »Mode CLI :
kilocode --api-base http://localhost:20128/v1 --api-key sk-your-omniroute-keyParamètres VS Code :
{ "kilo-code.openAiBaseUrl": "http://localhost:20128/v1", "kilo-code.apiKey": "sk-your-omniroute-key"}Ou utilisez le tableau de bord OmniRoute → Outils CLI → KiloCode → Appliquer la configuration.
Continue (Extension VS Code)
Section intitulée « Continue (Extension VS Code) »Éditez ~/.continue/config.yaml :
models: - name: OmniRoute provider: openai model: auto apiBase: http://localhost:20128/v1 apiKey: sk-your-omniroute-key default: trueRedémarrez VS Code après l’édition.
VS Code Insiders (chatLanguageModels.json)
Section intitulée « VS Code Insiders (chatLanguageModels.json) »Utilisez ceci lorsque VS Code Insiders est configuré pour des modèles de point de terminaison personnalisés et que vous souhaitez qu’OmniRoute fonctionne sans champ d’en-tête personnalisé.
Emplacement recommandé :
- Linux :
~/.config/Code - Insiders/User/chatLanguageModels.json - Windows :
%APPDATA%/Code - Insiders/User/chatLanguageModels.json
Exemple utilisant l’alias OmniRoute tokenisé :
[ { "vendor": "customendpoint", "id": "auto", "name": "OmniRoute Auto", "family": "gpt-4", "version": "1.0.0", "url": "http://localhost:20128/api/v1/vscode/sk-your-omniroute-key/chat/completions", "modelsUrl": "http://localhost:20128/api/v1/vscode/sk-your-omniroute-key/models", "requestFormat": "openai-chat-completions", "contextWindow": 256000, "maxOutputTokens": 32768, "auth": { "type": "none" } }]Remarques :
- Remplacez
sk-your-omniroute-keypar une clé API créée dans OmniRoute. - Le champ
urldoit pointer vers/api/v1/vscode/{token}/chat/completions. - Le champ
modelsUrldoit pointer vers/api/v1/vscode/{token}/models. - Préférez le flux normal
/v1+ en-tête Bearer lorsque le client prend en charge les en-têtes personnalisés. - Les tokens intégrés dans l’URL sont un retour de compatibilité et peuvent apparaître dans les journaux de l’éditeur ou l’historique du proxy.
Kiro CLI (Amazon)
Section intitulée « Kiro CLI (Amazon) »# Connectez-vous à votre compte AWS/Kiro :kiro-cli login
# Le CLI utilise sa propre authentification — OmniRoute n'est pas nécessaire en tant que backend pour Kiro CLI lui-même.# Utilisez kiro-cli avec OmniRoute pour d'autres outils.kiro-cli statusPour l’application de bureau Kiro IDE, utilisez le point de terminaison MITM exposé par OmniRoute
sous /dashboard/cli-tools → Kiro.
10. CLI OmniRoute interne
Section intitulée « 10. CLI OmniRoute interne »Le binaire omniroute fournit des commandes pour le cycle de vie du serveur, la configuration, les diagnostics et la gestion des fournisseurs. Point d’entrée : bin/omniroute.mjs.
omniroute # Démarrer le serveur (port par défaut : 20128)omniroute setup # Assistant de configuration interactifomniroute doctor # Vérifier la configuration, la BDD, les ports et l’environnement d’exécutionomniroute providers list # Connexions aux fournisseurs configuréesomniroute providers test-all # Tester chaque connexion activeomniroute reset-password # Réinitialiser le mot de passe administrateuromniroute logs # Diffuser les journaux des requêtesomniroute health # État de santé détaillé (disjoncteurs, cache, mémoire)omniroute --version # Afficher la versionomniroute --help # Afficher toutes les commandesConfiguration et initialisation
Section intitulée « Configuration et initialisation »omniroute setup # Assistant de configuration interactifomniroute setup --non-interactive # Mode CI/automatisation (lit les variables d’environnement et les options)omniroute setup --password '<value>' # Définir directement le mot de passe administrateuromniroute setup --add-provider \ --provider openai \ --api-key '<value>' \ --test-provider # Ajouter et tester un fournisseur en une seule opérationVariables d’environnement reconnues pour la configuration non interactive :
| Variable | Objectif |
|---|---|
OMNIROUTE_API_KEY |
Clé API du fournisseur (liée à --api-key via .env() de Commander) |
DATA_DIR |
Remplacer le répertoire de données d’OmniRoute |
Toutes les autres entrées non interactives sont transmises sous forme d’options et non de variables d’environnement :
--password, --provider, --provider-name, --provider-base-url, --default-model
(voir les options de omniroute setup ci-dessus).
Diagnostics
Section intitulée « Diagnostics »omniroute doctor # Vérifier la configuration, la BDD, les ports, l’environnement d’exécution, la mémoire et la disponibilitéomniroute doctor --json # JSON lisible par une machineomniroute doctor --no-liveness # Ignorer la sonde de santé HTTPomniroute doctor --host 0.0.0.0 # Remplacer l’hôte utilisé pour la vérification de disponibilitéomniroute doctor --liveness-url <url> # Remplacer l’URL complète du point de terminaison de santéLa commande doctor exécute les vérifications suivantes : Config, Database, Storage/encryption,
Port availability, Node runtime, Native binary (better-sqlite3),
Memory et Server liveness. Elle se termine avec un code différent de zéro si une vérification est en état fail.
Gestion des fournisseurs
Section intitulée « Gestion des fournisseurs »omniroute providers available # Catalogue des fournisseurs OmniRouteomniroute providers available --search openai # Filtrer le catalogue par identifiant/nom/alias/catégorieomniroute providers available --category api-key # Filtrer par catégorie (api-key, oauth, free, ...)omniroute providers available --json # JSON lisible par une machine
omniroute providers list # Connexions aux fournisseurs configuréesomniroute providers list --json
omniroute providers test <id|name> # Tester une connexion configuréeomniroute providers test-all # Tester chaque connexion activeomniroute providers validate # Validation structurelle locale uniquementomniroute providers add <provider> --credential-env PROVIDER_KEYomniroute providers import ./providers.json --dry-run --jsonomniroute providers auth <provider> # Flux OAuth existantomniroute providers edit <id|name> --default-model <model>omniroute providers remove <id|name> --yesproviders add/import/auth/edit/remove utilisent l’API en priorité et fonctionnent donc avec
le contexte actif, qu’il soit local ou distant. Les identifiants doivent être fournis via
--credential-stdin ou --credential-env ; --dry-run --json indique uniquement
leur présence et leur structure sous une forme expurgée. providers available lit le catalogue OmniRoute ;
providers list/test/test-all/validate conservent leur comportement SQLite local et
ne nécessitent pas que le serveur soit en cours d’exécution.
Récupération et réinitialisation
Section intitulée « Récupération et réinitialisation »omniroute reset-password # Réinitialiser le mot de passe administrateur (également : omniroute-reset-password)omniroute reset-encrypted-columns # Afficher un avertissement et simuler la réinitialisation des identifiants chiffrésomniroute reset-encrypted-columns --force # Définir réellement les identifiants chiffrés sur null dans SQLiteExportation des identifiants (⚠ à manipuler avec précaution)
Section intitulée « Exportation des identifiants (⚠ à manipuler avec précaution) »omniroute auth export # Afficher un avertissement et demander confirmation — aucun accès à la BDDomniroute auth export --force # Exporter les identifiants DÉCHIFFRÉS de TOUTES les connexions vers stdout au format JSONomniroute auth export --force --id <id> # Exporter uniquement la connexion correspondanteomniroute auth export --force --format env # Émettre des lignes OMNIROUTE_<PROVIDER>_<FIELD>=<value>omniroute auth export --force --out creds.json # Écrire dans un fichier (créé avec les permissions 0600)auth export fonctionne uniquement en local (lecture directe de SQLite, sans route HTTP) et affiche/écrit intentionnellement
les valeurs apiKey/accessToken/refreshToken/idToken en clair — il s’agit d’une fonctionnalité, pas d’un
bogue. Aucune donnée n’est lue depuis la base de données et rien n’est déchiffré sans --force. Une bannière
d’avertissement est toujours affichée sur stderr avant l’émission de toute donnée en clair. Nécessite que
STORAGE_ENCRYPTION_KEY soit définie. Un champ dont le déchiffrement échoue (clé obsolète, texte chiffré corrompu) est signalé par
<field>DecryptFailed: true au lieu d’interrompre toute l’exportation ou de divulguer l’erreur sous-jacente.
Autres sous-commandes
Section intitulée « Autres sous-commandes »Celles-ci supposent qu’un serveur OmniRoute est en cours d’exécution, sauf indication contraire :
omniroute status # État d’exécution completomniroute logs # Diffuser les journaux de requêtes (--json, --search, --follow)omniroute config list # Afficher les outils CLI configurés
omniroute provider list # Répertorier les fournisseurs disponibles (alias de providers list)omniroute provider add # Enregistrer OmniRoute comme fournisseur dans un outilomniroute keys add | list | remove # Gérer les clés APIomniroute models [provider] # Répertorier les modèles (--json, --search)omniroute combo list | switch | create | delete
omniroute backup # Créer un instantané de la configuration et de la BDDomniroute restore # Restaurer un instantané précédent
omniroute health # État de santé détaillé (disjoncteurs, cache, mémoire)omniroute quota # Utilisation des quotas des fournisseursomniroute cache # État du cacheomniroute cache clear # Vider les caches sémantique et de signatures
omniroute mcp status | restart # État / redémarrage du serveur MCPomniroute a2a status | card # État du serveur A2A / fiche de l’agent
omniroute tunnel list | create | stop # Gérer les tunnels (cloudflare/tailscale/ngrok)omniroute env show | get <k> | set <k> <v> # Consulter / définir les variables d’environnement (temporaire)
omniroute test # Test rapide de connectivité des fournisseursomniroute update # Rechercher les mises à jouromniroute completion # Générer l’autocomplétion du shellOptions courantes
Section intitulée « Options courantes »| Option | Description |
|---|---|
--no-open |
Ne pas ouvrir automatiquement le navigateur au démarrage |
--port <n> |
Remplacer le port de l’API (20128 par défaut) |
--mcp |
Exécuter comme serveur MCP via stdio (pour les IDE) |
--non-interactive |
Mode CI (aucune invite ; lit les variables d’environnement/options) |
--json |
Sortie JSON lisible par machine (doctor, providers, etc.) |
--help, -h |
Afficher l’aide propre à la commande |
--version, -v |
Afficher la version installée |
Points de terminaison API disponibles
Section intitulée « Points de terminaison API disponibles »| Point de terminaison | Description | Utilisé pour |
|---|---|---|
/v1/chat/completions |
Chat standard (tous les fournisseurs) | Tous les outils modernes |
/v1/responses |
API des réponses (format OpenAI) | Codex, flux agentique |
/v1/completions |
Complétions de texte héritées | Outils plus anciens utilisant prompt: |
/v1/embeddings |
Embeddings de texte | RAG, recherche |
/v1/images/generations |
Génération d’images | GPT-Image, Flux, etc. |
/v1/audio/speech |
Texte en parole | ElevenLabs, OpenAI TTS |
/v1/audio/transcriptions |
Parole en texte | Deepgram, AssemblyAI |
Exemples prêts à coller avec une URL OmniRoute tokenisée :
Exemple de token : sk-a3ab3c080beaee3a-69f4a4-070d71af
Base OpenAI standard : http://localhost:20128/v1Modèles VS Code : http://localhost:20128/api/v1/vscode/sk-a3ab3c080beaee3a-69f4a4-070d71af/modelsChat VS Code : http://localhost:20128/api/v1/vscode/sk-a3ab3c080beaee3a-69f4a4-070d71af/chat/completionsRéponses VS Code : http://localhost:20128/api/v1/vscode/sk-a3ab3c080beaee3a-69f4a4-070d71af/responsesTags Ollama : http://localhost:20128/api/v1/vscode/sk-a3ab3c080beaee3a-69f4a4-070d71af/api/tagsChat Ollama : http://localhost:20128/api/v1/vscode/sk-a3ab3c080beaee3a-69f4a4-070d71af/api/chatDépannage
Section intitulée « Dépannage »| Erreur | Cause | Solution |
|---|---|---|
Connection refused |
OmniRoute non en cours d’exécution | omniroute serve |
401 Unauthorized |
Clé API incorrecte | Vérifiez dans /dashboard/api-manager |
No combo configured |
Pas de combo de routage actif | Configurez dans /dashboard/combos |
| CLI affiche “not installed” | Binaire non dans le PATH | Vérifiez which <command> |
| Le tableau de bord affiche “not detected” après l’installation | Cache obsolète | Cliquez sur “⟳ Actualiser la détection” dans le tableau de bord |
Ancien lien /dashboard/cli-tools |
Favori avant v3.8.6 | Redirection automatique vers /dashboard/cli-code (308) |
Ancien lien /dashboard/agents |
Favori avant v3.8.6 | Redirection automatique vers /dashboard/acp-agents (308) |
HagiCode
HagiCode est un espace de développement agentique qui associe workflows structurés, exécution multi-agent et vues Hero Dungeon.
Transformez vos idées en logiciels utiles grâce à un workflow agentique plus intelligent, rapide et agréable.

- SmartDes workflows structurés transforment une intention en parcours exécutable, de l’idée à la livraison.
- EfficientLes workflows multi-agents font avancer recherche, réalisation et revue en parallèle.
- FunHero Dungeon rend les longues sessions de code plus visuelles et collaboratives.