CLI Integrations (Français)
Tableau récapitulatif
Section intitulée « Tableau récapitulatif »Chaque commande respecte le contexte actif (défini avec omniroute connect, voir
Mode distant) ou les options explicites --remote <url> --api-key <key>.
« Local ou distant » signifie ci-dessous que, sans option, la commande cible http://localhost:20128 ;
avec --remote (ou un contexte distant actif), elle récupère le catalogue depuis ce
serveur et écrit la configuration localement.
| Commande | Outil | Ce qui est écrit | Options principales | Local ou distant |
|---|---|---|---|---|
omniroute setup-codex |
OpenAI Codex CLI | ~/.codex/<name>.config.toml — un profil par modèle de texte compatible (codex --profile <name>) |
--remote --api-key --only --dry-run --port --codex-home |
Les deux |
omniroute setup-claude |
Claude Code | ~/.claude/profiles/<name>/settings.json — un profil par modèle correspondant (CLAUDE_CONFIG_DIR) |
--remote --api-key --only --dry-run --port --claude-home |
Les deux |
omniroute setup-opencode |
OpenCode (compatible OpenAI) | ~/.config/opencode/opencode.json — fournisseur omniroute avec tous les modèles du catalogue (opencode -m omniroute/<model>) |
--remote --api-key --only --model --dry-run --port |
Les deux |
omniroute setup-cline |
Cline | ~/.cline/data/{globalState,secrets}.json (mode CLI) + affiche les paramètres de l’extension VS Code |
--remote --api-key --model --yes --dry-run --port --cline-dir |
Les deux |
omniroute setup-kilo |
Kilo Code | ~/.local/share/kilo/auth.json (CLI) + fusionne kilocode.* dans le fichier settings.json de VS Code s’il existe |
--remote --api-key --model --yes --dry-run --port --auth-path --vscode-settings |
Les deux |
omniroute setup-continue |
Continue / CLI cn |
~/.continue/config.yaml — modèles avec provider: openai, clé via ${{ secrets.OMNIROUTE_API_KEY }} |
--remote --api-key --only --dry-run --port --config-path |
Les deux |
omniroute setup-cursor |
Cursor | Rien — affiche les étapes à suivre dans l’application (la configuration de Cursor est une base SQLite opaque) | --remote --api-key --only --port |
Les deux |
omniroute setup-roo |
Roo Code | ~/.omniroute/roo-settings.json (document d’importation) + définit roo-cline.autoImportSettingsPath si un fichier settings.json de VS Code existe |
--remote --api-key --model --yes --dry-run --port --import-path --vscode-settings |
Les deux |
omniroute setup-crush |
Crush | ~/.config/crush/crush.json — fournisseur openai-compat, clé via $OMNIROUTE_API_KEY |
--remote --api-key --only --dry-run --port --config-path |
Les deux |
omniroute setup-goose |
Goose | ~/.config/goose/config.yaml (GOOSE_PROVIDER/OPENAI_HOST/GOOSE_MODEL) + affiche les instructions pour les variables d’environnement |
--remote --api-key --model --yes --dry-run --port --config-path |
Les deux |
omniroute setup-aider |
Aider | ~/.aider.conf.yml (openai-api-base + model: openai/<id>) + affiche les instructions pour les variables d’environnement |
--remote --api-key --model --yes --dry-run --port --config-path |
Les deux |
omniroute setup-qwen |
Qwen Code | ~/.qwen/settings.json — tableau V4 modelProviders.openai + OMNIROUTE_API_KEY dans ~/.qwen/.env |
--remote --api-key --model --yes --dry-run --port --config-path --env-path |
Les deux |
omniroute setup-5dive |
5dive (flotte d’agents) | Rien sous $HOME — écrit un profil d’authentification 5dive (/var/lib/5dive/auth-profiles/<name>/) via 5dive agent auth set ; réservé à root, s’exécute sur l’hôte de la flotte |
--remote --api-key --model --auth-profile --agent --byo-provider --fivedive-bin --no-sudo --yes --dry-run --port |
Les deux |
omniroute run <target> |
Lancement d’exécution (générique) | Rien — lance claude/codex/aider/goose/opencode/qwen/gemini avec l’environnement et les arguments appropriés ; Qwen et Gemini utilisent un répertoire personnel temporaire isolé |
--remote --base-url --context --provider --model --api-key --api-key-env --dry-run --json --port --profile --token |
Les deux |
omniroute launch |
Claude Code | Rien — lance claude en injectant ANTHROPIC_BASE_URL/ANTHROPIC_AUTH_TOKEN |
--remote --api-key --token --profile --port |
Les deux |
omniroute launch-codex |
OpenAI Codex CLI | Rien — lance codex en injectant le fournisseur omniroute via les options -c |
--remote --api-key --profile (-p) --port |
Les deux |
Notes sur les options (vérifiées dans le code source des commandes) :
--remote <url>— récupère le catalogue depuis une instance OmniRoute distante (remplace--portet le contexte actif).--api-key <key>fournit les identifiants pour ce serveur (par défaut, la variable d’environnementOMNIROUTE_API_KEYou le jeton du contexte actif).--only <patterns>— sous-chaînes séparées par des virgules ; conserve uniquement les identifiants de modèles correspondants (par ex.--only glm,kimi). Disponible avecsetup-codex,setup-claude,setup-opencode,setup-continue,setup-cursor,setup-crush.--dry-run— affiche exactement ce qui serait écrit sans modifier le système de fichiers. Disponible avec chaque commandesetup-*, saufsetup-cursor(qui n’écrit jamais de fichier).--model <id>— requis (ou sélectionné de manière interactive) pour les outils qui ne disposent pas de détection automatique des modèles : Cline, Kilo, Roo, Goose, Qwen, Aider, 5dive. Ces outils acceptent également--yespour les exécutions non interactives (ce qui rend alors--modelobligatoire).setup-opencodeaccepte--modelpour définir le modèle global par défaut.--model <id>avecomniroute runsuit le câblage propre à chaque cible dans le manifeste (bin/cli/cli-manifest.mjs) : aider reçoit--model openai/<id>et opencode--model omniroute/<id>(le préfixe n’est ajouté que si l’identifiant ne le contient pas déjà) ; qwen et gemini reçoivent l’identifiant tel quel ; claude le reçoit viaANTHROPIC_MODEL, goose viaGOOSE_MODEL, et codex via les arguments-c model_providers.omniroute.*. Qwen est la seule cible d’exécution qui exige impérativement--model—omniroute run qwensans cette option se termine avec le code2et une erreur explicite.--port <port>— port OmniRoute local (20128par défaut, ignoré lorsque--remoteest défini). Présent sur toutes les commandessetup-*et sur les deux lanceurs.- Codes de sortie de
omniroute run: le code de sortie propre à la CLI enfant est propagé tel quel ;2= arguments non valides (cible non prise en charge, option--modelrequise mais absente, protection du conteneur) ;127= le binaire cible n’est pas dansPATH;130/143/129lorsque le lancement est interrompu parSIGINT/SIGTERM/SIGHUP;1= autre échec d’exécution lors du lancement. - Les deux lanceurs (
launch,launch-codex) acceptent--profile <name>pour sélectionner un profil écrit parsetup-claude/setup-codex, ainsi que des arguments transmis directement au binaireclaude/codexsous-jacent.
Le sélecteur interactif est également partagé par les procédures de configuration :
# Sélectionnez un modèle dans le catalogue local ou distant actif et configurez la cible.omniroute configure claudeomniroute configure opencode --provider glmomniroute configure qwen --model qwen/qwen3.8-max-preview --yesconfigure délègue actuellement aux procédures testées pour codex, claude,
opencode, qwen, aider, goose, cline, continue, kilo et 5dive.
Les entrées du catalogue réservées aux IDE,
au MITM et aux guides restent des procédures explicites setup-*/manuelles et
ne sont pas présentées comme des cibles exécutables.
setup-opencodeest l’intégration OpenCode légère et compatible avec OpenAI. Il existe également une intégration plus complète sous forme de plugin —omniroute setup opencode— qui installe@omniroute/opencode-plugin. Il s’agit de commandes différentes ; le tableau ci-dessus documentesetup-opencode.Le plugin est fourni dans deux packages, un pour chaque version majeure d’OpenCode, car les deux chargeurs attendent des points d’entrée différents :
@omniroute/opencode-pluginpour OpenCode v1 et@omniroute/opencode-plugin-v2pour OpenCode v2. Le package v2 est nouveau (0.1.0) et suit un contrat d’hôte encore en évolution ; il lit donc la structure qu’OpenCode injecte dans l’ébauche du catalogue au lieu d’en supposer une. Installez-le en ajoutant une entréepluginsàopencode.json;omniroute setup opencodeinstalle toujours le package v1. Les options et l’ordre de recherche des identifiants figurent dans le README du package.
Utilisation locale
Section intitulée « Utilisation locale »Avec OmniRoute exécuté sur localhost:20128, lancez simplement la commande de configuration de votre
outil. Le catalogue est récupéré depuis le serveur local.
# Codex : écrire un profil par modèle correspondant dans ~/.codex/omniroute setup-codexcodex --profile glm52 # utiliser un profil généré
# Claude Code : écrire des profils par modèle, puis en lancer unomniroute setup-claudeomniroute launch --profile glm52
# OpenCode : écrire le fournisseur compatible avec OpenAI avec tous les modèles du catalogueomniroute setup-opencodeexport OMNIROUTE_API_KEY=sk-... # référencée via {env:OMNIROUTE_API_KEY}, jamais sur le disqueopencode -m omniroute/glm/glm-5.2 "..."
# Les outils sans détection automatique nécessitent un modèle explicite :omniroute setup-aider --model glm/glm-5.2omniroute setup-qwen --model qwen/qwen3.8-max-preview
# Prévisualiser sans rien écrire :omniroute setup-continue --dry-runLancez sans écrire la moindre configuration (injection de variables d’environnement uniquement) :
omniroute launch # Claude Code → OmniRoute localomniroute launch-codex # Codex CLI → OmniRoute localomniroute launch-codex --profile glm52omniroute run claude --model openai/gpt-5.4omniroute run codex --model openai/gpt-5.4 --dry-run --jsonomniroute run aider --model glm/glm-5.2 -- --message "reply OK"omniroute run goose --model glm/glm-5.2omniroute 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"
# Chemin de commande explicite : transmettre tel quel tout ce qui suit --omniroute run claude -- --print-system-prompt "review this diff"Utilisation à distance
Section intitulée « Utilisation à distance »Faites pointer n’importe quelle commande de configuration vers une instance OmniRoute distante avec --remote + --api-key. Le
catalogue est récupéré depuis l’instance distante ; la configuration est écrite sur votre machine locale.
# OpenCode avec un VPS distant, conserver uniquement les modèles glm/kimiomniroute setup-opencode --remote http://192.168.0.15:20128 --api-key oma_live_xxx \ --only glm,kimiopencode -m omniroute/glm/glm-5.2 "..." # exporter d’abord OMNIROUTE_API_KEY
# Profils Codex issus d’un catalogue distantomniroute setup-codex --remote http://192.168.0.15:20128 --api-key oma_live_xxx
# Lancer directement une CLI avec l’instance distanteomniroute launch --remote http://192.168.0.15:20128 --api-key oma_live_xxxomniroute launch-codex --remote http://192.168.0.15:20128 --api-key oma_live_xxxAu lieu de transmettre --remote/--api-key à chaque fois, connectez-vous une fois et laissez le
contexte actif les fournir automatiquement :
omniroute connect 192.168.0.15 # génère un jeton à portée limitée et stocke le contexteomniroute setup-codex # ← utilise désormais le catalogue distantomniroute setup-opencode # ← idemomniroute launch # ← Claude Code avec l’instance distanteConsultez Mode distant pour en savoir plus sur les contextes, les portées et la gestion des jetons.
Flottes d’agents 5dive
Section intitulée « Flottes d’agents 5dive »5dive exécute une flotte d’agents de programmation de longue durée, chacun étant une
unité systemd sous son propre utilisateur Unix. Il ne s’agit pas lui-même d’une CLI de programmation, il n’y a donc
rien à lancer avec omniroute run — 5dive est une cible de configuration uniquement.
omniroute configure 5dive --model failover-demo --yesomniroute setup-5dive --model failover-demo --auth-profile omniroute --agent worker1Les deux formes écrivent un profil d’authentification 5dive, et chaque poste claude associé à ce
profil communique ensuite avec OmniRoute. Trois éléments sont propres à cette cible :
- Elle s’exécute sur l’hôte de la flotte, en tant que root. Les commandes de 5dive agissent sur les unités systemd locales
et un répertoire d’état appartenant à root ; il n’existe aucun mode distant. La procédure se relance via
sudolorsqu’elle n’est pas déjà exécutée en tant que root (--no-sudodésactive ce comportement et affiche plutôt la commande). - Le point de terminaison doit utiliser
https://, sauf s’il s’agit de l’adresse de bouclage. La clé API de l’agent transite par cette URL à chaque requête, et 5dive refuse un point de terminaison distant en texte clair. Une adresse de réseau local privé ne constitue pas une exception. - Le modèle épinglé propre à chaque poste prévaut sur le profil. Le profil contient
ANTHROPIC_DEFAULT_{OPUS,SONNET,HAIKU}_MODEL, mais un poste toujours épinglé à un identifiant de modèle standard échoue dès son premier tour avec « Un problème est survenu avec le modèle sélectionné ». Transmettez--agent <name>(répétable) pour épingler également les postes ; la procédure affiche la commande lorsque vous ne le faites pas.
La clé API est transmise à 5dive sur l’entrée standard (--api-key=-), elle n’apparaît donc jamais dans
la sortie de ps.
Faire pointer le profil vers un combo OmniRoute plutôt que vers un seul modèle permet à la flotte de bénéficier du basculement du fournisseur : lorsque le point de terminaison principal est devenu totalement indisponible en cours de tour lors de l’exécution consignée dans #11578, l’agent a terminé les étapes restantes sur la solution de secours sans jamais signaler l’interruption.
Conventions d’URL de base (quels outils nécessitent /v1)
Section intitulée « Conventions d’URL de base (quels outils nécessitent /v1) »OmniRoute expose l’interface OpenAI sous /v1, l’interface Anthropic à la racine,
et une interface Gemini native sous /v1beta. Chaque intégration est configurée selon la forme
attendue par son outil (vérifié dans le code source de la commande) :
| Intégration | URL de base écrite | /v1 ? |
|---|---|---|
setup-cline (openAiBaseUrl) |
racine | Non — Cline ajoute /v1/chat/completions |
setup-goose (OPENAI_HOST) |
racine | Non — Goose ajoute le chemin |
setup-aider (OPENAI_API_BASE) |
racine | Non — LiteLLM ajoute /v1/chat/completions |
setup-kilo, setup-roo, setup-continue, setup-crush, setup-cursor |
avec /v1 |
Oui |
setup-claude (ANTHROPIC_BASE_URL), launch |
racine | Non — Claude Code ajoute /v1/messages |
setup-codex, launch-codex (model_providers.omniroute.base_url) |
avec /v1 |
Oui |
setup-qwen (modelProviders.openai[].baseUrl) |
avec /v1 |
Oui |
run gemini (GOOGLE_GEMINI_BASE_URL) |
racine | Non — le SDK ajoute /v1beta/models/… |
setup-5dive (ANTHROPIC_BASE_URL dans le profil d’authentification) |
racine | Non — Claude Code ajoute /v1/messages |
Conservation des dépendances natives lors de la mise à jour : --include=optional
Section intitulée « Conservation des dépendances natives lors de la mise à jour : --include=optional »Lorsque vous effectuez une mise à jour avec omniroute update (après confirmation ou avec --apply),
OmniRoute exécute l’installation en intégrant automatiquement --include=optional :
npm install -g omniroute@latest --include=optionalIl ne s’agit pas d’une option à transmettre à omniroute update — elle est toujours appliquée par le
programme de mise à jour. Cela garantit que les optionalDependencies (better-sqlite3, keytar,
tls-client, la pile SLM LLMLingua) sont conservées lors de la mise à jour, même si votre configuration npm
définit omit=optional, ce qui supprimerait autrement silencieusement le pilote SQLite natif
et la liaison au trousseau de clés du système d’exploitation. Pour prévisualiser la commande exacte sans l’appliquer :
omniroute update --dry-run# [EXÉCUTION SIMULÉE] Exécuterait : npm install -g omniroute@latest --include=optionalAutres options de omniroute update (vérifiées dans le code source) : --check (quitte avec le code 1 si
une mise à jour est disponible), --apply (installe sans demander de confirmation), --changelog, --no-backup,
--yes.
CLI Google Gemini via omniroute run gemini
Section intitulée « CLI Google Gemini via omniroute run gemini »Contrat vérifié avec @google/gemini-cli 0.50.0 : la CLI respecte
GOOGLE_GEMINI_BASE_URL et envoie des requêtes POST /v1beta/models/<model>:generateContent
(et :streamGenerateContent?alt=sse) à cette URL — exactement l’interface Gemini native
d’OmniRoute (/v1beta). omniroute run gemini configure cela automatiquement :
GOOGLE_GEMINI_BASE_URL→ l’URL de base OmniRoute active (racine, sans/v1) ;GEMINI_API_KEY→ l’identifiant OmniRoute résolu (option/environnement/contexte) ;- un
GEMINI_CLI_HOMEtemporaire et isolé dont le fichier.gemini/settings.jsonsélectionne l’authentificationgemini-api-key, afin qu’une session Google OAuth enregistrée (Code Assist) ne remplace jamais le lancement dirigé vers OmniRoute — supprimé après la fermeture ; - hygiène de l’environnement : les variables
GOOGLE_API_KEY,GOOGLE_GENAI_USE_VERTEXAIetGOOGLE_GENAI_USE_GCAsont retirées de l’environnement du processus enfant (elles redirigeraient l’authentification vers Vertex/Code Assist), etGEMINI_DEFAULT_AUTH_TYPE=gemini-api-keyest défini comme sécurité supplémentaire — les autres ciblesrunbénéficient du même traitement pour leurs propres variables conflictuelles ; - injection de
--model <id>depuis--provider/--model.
omniroute run gemini --model glm/glm-5.2 -- --skip-trust -p "hello"La protection de confiance de l’espace de travail de Gemini s’applique toujours en mode sans interface — transmettez
vous-même --skip-trust (ou approuvez le répertoire de manière interactive) ; le lanceur
ne la contourne délibérément pas. Ce lanceur est distinct de l’enregistrement ACP
(src/lib/acp/registry.ts, gemini --acp), qui reste l’intégration au protocole d’agent pour
/dashboard/acp-agents.
Test de fumée réel (facultatif)
Section intitulée « Test de fumée réel (facultatif) »Des tests de régression déterministes du plan de lancement s’exécutent dans la CI (tests/unit/cli/run-command.test.ts,
tests/unit/cli/run-execution.test.ts). Pour valider les VRAIS binaires auprès d’un VRAI
serveur OmniRoute, un banc de test facultatif est disponible dans
tests/integration/upstream-cli-smoke.int.test.ts. Il ne s’exécute jamais automatiquement
(chaque sous-test est ignoré sauf si RUN_CLI_SMOKE=1), transmet l’identifiant via le NOM
d’une variable d’environnement (jamais par sa valeur), masque les chaînes ressemblant à des clés dans toute sortie enregistrée, ignore
les cibles dont le binaire n’est pas installé et classe les échecs dans les catégories
auth / upstream / config plutôt que sous la forme d’un simple booléen :
RUN_CLI_SMOKE=1 \OMNIROUTE_SMOKE_BASE_URL="http://localhost:20128" \OMNIROUTE_SMOKE_MODEL="<provider/model>" \OMNIROUTE_SMOKE_API_KEY_ENV="OMNIROUTE_API_KEY" \node --import tsx/esm --test tests/integration/upstream-cli-smoke.int.test.tsFacultatif : OMNIROUTE_SMOKE_TARGETS="codex,opencode,qwen" limite le test ;
OMNIROUTE_SMOKE_TIMEOUT_MS remplace le délai d’expiration de 120 s par cible.
Voir aussi
Section intitulée « Voir aussi »- Configuration de Claude Code — le guide détaillé de Claude Code
- Configuration de Codex CLI — la configuration initiale de base de
[model_providers.omniroute] - Mode distant — contextes, jetons d’accès à portée limitée et pilotage d’un serveur distant
- Référence des outils CLI — le catalogue complet des outils pris en charge et des pages du tableau de bord
- Guide d’installation — méthodes d’installation et intégration lors de la première exécution
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.