đ Setup Guide â OmniRoute (Français)
MĂ©thodes dâinstallation
Section intitulĂ©e « MĂ©thodes dâinstallation »npm (recommandĂ©)
Section intitulĂ©e « npm (recommandĂ©) »npm install -g omnirouteomnirouteLe tableau de bord sâouvre Ă lâadresse http://localhost:20128 et lâURL de base de lâAPI est http://localhost:20128/v1.
pnpm add -g omniroute@latest --allow-build=better-sqlite3 --allow-build=@swc/coreomnirouteUtilisateurs de pnpm : lâoption
--allow-buildest requise pour activer les scripts de compilation natifs debetter-sqlite3et@swc/core. La commandepnpm approve-builds -gnâest pas prise en charge pour les installations globales avec pnpm v11.
Arch Linux (AUR)
Section intitulée « Arch Linux (AUR) »yay -S omniroute-binsystemctl --user enable --now omniroute.serviceLe paquet AUR installe OmniRoute et fournit un service utilisateur systemd.
Depuis les sources
Section intitulée « Depuis les sources »npm installPORT=20128 DASHBOARD_PORT=20129 NEXT_PUBLIC_BASE_URL=http://localhost:20129 npm run devRemarque pour Windows : par défaut, OmniRoute utilise
%APPDATA%\omniroutelorsque lâancien rĂ©pertoire%USERPROFILE%\.omniroutenâest pas prĂ©sent. DĂ©finissezDATA_DIRpour choisir un autre emplacement pour le rĂ©pertoire de donnĂ©es.
Remarque :
npm installgénÚre automatiquement.envà partir de.env.examplelors de la premiÚre exécution. Les installations suivantes ne remplaceront pas un fichier.envexistant, ce qui permet de conserver les personnalisations. Pour le régénérer, supprimez.envavant de relancer la commande.
Consultez le Guide Docker pour obtenir les instructions complĂštes de configuration de Docker, notamment les profils Compose et le HTTPS avec Caddy.
Application de bureau (Electron)
Section intitulĂ©e « Application de bureau (Electron) »OmniRoute inclut une application de bureau basĂ©e sur Electron 41 + electron-builder 26.10. Scripts disponibles (Ă la racine de lâespace de travail) :
npm run electron:dev # ExĂ©cuter lâapplication de bureau avec rechargement Ă chaudnpm run electron:build # Compiler pour le systĂšme dâexploitation actuel (dĂ©tectĂ© automatiquement)npm run electron:build:win # Programme dâinstallation Windows (NSIS + portable)npm run electron:build:mac # macOS (dmg + zip, arm64+x64)npm run electron:build:linux # Linux (AppImage + deb + rpm)npm run electron:smoke:packaged # Tester sommairement la version empaquetĂ©eLes programmes dâinstallation de lâapplication de bureau sont joints aux versions publiĂ©es sur GitHub. Pour une prĂ©sentation approfondie dâElectron (signature, pont IPC, distributions), consultez ELECTRON_GUIDE.md (créé lors dâune phase ultĂ©rieure).
Serveur sans interface graphique (CI/automatisation)
Section intitulée « Serveur sans interface graphique (CI/automatisation) »Pour les configurations sans intervention (Docker, Kubernetes, CI), utilisez :
omniroute setup --non-interactiveomniroute providers test-batchAssociĂ© Ă des variables dâenvironnement (INITIAL_PASSWORD, OMNIROUTE_WS_BRIDGE_SECRET, etc.), cela vous permet de dĂ©ployer une instance OmniRoute entiĂšrement automatisable par script.
Options de la CLI
Section intitulée « Options de la CLI »| Commande | Description |
|---|---|
omniroute |
DĂ©marrer le serveur (PORT=20128, API et tableau de bord sur le mĂȘme port) |
omniroute setup |
Configuration guidée via la CLI pour le mot de passe et le premier fournisseur |
omniroute doctor |
ExĂ©cuter des vĂ©rifications dâintĂ©gritĂ© locales sans dĂ©marrer le serveur |
omniroute providers |
Découvrir, répertorier, valider et tester les fournisseurs depuis la CLI |
omniroute config |
Configuration de lâoutil CLI â rĂ©pertorier, obtenir, dĂ©finir et valider les configurations |
omniroute status |
Tableau de bord dâĂ©tat hors ligne â version, base de donnĂ©es, outils, configuration |
omniroute logs |
Diffuser les journaux dâutilisation depuis lâAPI (prend en charge --follow) |
omniroute update |
Rechercher ou appliquer les mises Ă jour dâOmniRoute |
omniroute provider |
GĂ©rer les connexions aux fournisseurs â ajouter, rĂ©pertorier, supprimer, tester, dĂ©finir par dĂ©faut |
omniroute --port 3000 |
DĂ©finir le port canonique/de lâAPI sur 3000 |
omniroute --mcp |
Démarrer le serveur MCP (transport stdio) |
omniroute --no-open |
Ne pas ouvrir automatiquement le navigateur |
omniroute --help |
Afficher lâaide |
La configuration sans interface graphique peut ĂȘtre automatisĂ©e Ă lâaide dâoptions ou de variables dâenvironnement :
omniroute setup --non-interactive --password "$OMNIROUTE_PASSWORD"omniroute setup --non-interactive --add-provider --provider openai --api-key "$OPENAI_API_KEY"omniroute setup --non-interactive --add-provider --provider openai --api-key "$OPENAI_API_KEY" --test-providerExécutez les diagnostics locaux sans ouvrir le tableau de bord :
omniroute doctoromniroute doctor --jsonomniroute doctor --no-livenessGérez les fournisseurs via SSH ou des scripts sans ouvrir le tableau de bord :
omniroute providers availableomniroute providers available --search openaiomniroute providers available --category api-keyomniroute providers listomniroute providers test <id-or-name>omniroute providers test-allomniroute providers validateConfiguration de lâoutil CLI
Section intitulĂ©e « Configuration de lâoutil CLI »1) Connecter des fournisseurs et crĂ©er une clĂ© API
Section intitulĂ©e « 1) Connecter des fournisseurs et crĂ©er une clĂ© API »- Ouvrez le Dashboard â
Providerset connectez au moins un fournisseur (OAuth ou clĂ© API). - Ouvrez le Dashboard â
Endpointset crĂ©ez une clĂ© API. - (Facultatif) Ouvrez le Dashboard â
Comboset définissez votre chaßne de repli.
2) Configurer votre outil de programmation
Section intitulĂ©e « 2) Configurer votre outil de programmation »URL de base : http://localhost:20128/v1ClĂ© API : [copiĂ©e depuis la page Endpoint]ModĂšle : if/qwen3.8-max-preview (ou tout prĂ©fixe fournisseur/modĂšle)Si votre Ă©diteur ne peut pas envoyer Authorization: Bearer ..., utilisez plutĂŽt lâURL de base de compatibilitĂ© contenant le jeton :
URL de base : http://localhost:20128/api/v1/vscode/YOUR_KEY/URL des modĂšles : http://localhost:20128/api/v1/vscode/YOUR_KEY/modelsURL du chat : http://localhost:20128/api/v1/vscode/YOUR_KEY/chat/completionsURL des tags Ollama : http://localhost:20128/api/v1/vscode/YOUR_KEY/api/tagsFonctionne avec Claude Code, Codex CLI, Cursor, Cline, OpenClaw, OpenCode et les SDK compatibles avec OpenAI.
Configuration automatique avec setup-*
Section intitulĂ©e « Configuration automatique avec setup-* »Au lieu de coller manuellement lâURL de base et la clĂ©, laissez OmniRoute Ă©crire la configuration propre Ă chaque outil Ă partir du catalogue de modĂšles actif. Une commande par outil :
omniroute setup-codex # Profils ~/.codex/<name>.config.tomlomniroute setup-claude # ~/.claude/profiles/<name>/settings.jsonomniroute setup-opencode # ~/.config/opencode/opencode.json (compatible avec OpenAI)omniroute setup-cline # ParamĂštres de Cline CLI et de lâextension VS Codeomniroute setup-kilo # Kilo Codeomniroute setup-continue # ~/.continue/config.yaml (Continue / cn)omniroute setup-cursor # Affiche les Ă©tapes Ă suivre dans lâapplication Cursoromniroute setup-roo # Importation Roo Code et pointeur autoImportomniroute setup-crush # ~/.config/crush/crush.jsonomniroute setup-goose # ~/.config/goose/config.yamlomniroute setup-aider # ~/.aider.conf.ymlomniroute setup-qwen # ~/.qwen/settings.json + ~/.qwen/.envChaque commande accepte --remote <url> --api-key <key> afin de configurer un outil local pour une instance OmniRoute distante, ainsi que --dry-run pour afficher un aperçu. Pour lancer une CLI avec les variables dâenvironnement appropriĂ©es injectĂ©es sans Ă©crire le moindre fichier de configuration, utilisez le lanceur gĂ©nĂ©rique omniroute run <target> (claude, codex, aider, goose, opencode, qwen, gemini) ; les anciens lanceurs propres Ă chaque outil, omniroute launch (Claude Code) et omniroute launch-codex (Codex), restent disponibles.
Pour consulter le tableau complet (éléments écrits par chaque commande, tous les indicateurs, fonctionnement local ou distant et conventions /v1 des URL de base), consultez Intégrations CLI.
Pour obtenir des instructions de configuration détaillées pour chaque outil (Claude Code, Codex CLI, Cursor, Cline, OpenClaw, Kilo Code, Copilot, etc.), consultez le Guide des outils CLI dédié.
Configuration des protocoles (MCP + A2A)
Section intitulée « Configuration des protocoles (MCP + A2A) »Configuration de MCP (Model Context Protocol)
Section intitulée « Configuration de MCP (Model Context Protocol) »Démarrez le transport MCP en mode stdio :
omniroute --mcpProcédure de validation recommandée :
# 1. Démarrer le serveur MCPomniroute --mcp
# 2. Depuis votre client MCP, appeler :omniroute_get_health # Doit renvoyer lâĂ©tat du systĂšmeomniroute_list_combos # Doit renvoyer les combos actifs
# 3. Ou exécuter la suite E2E complÚte :npm run test:protocols:e2eConfiguration du client MCP
Section intitulée « Configuration du client MCP »Claude Code :
claude mcp add-server omniroute --type http --url http://localhost:20128/api/mcp/streamCursor / Cline :
Ajoutez ceci Ă vos paramĂštres MCP :
{ "mcpServers": { "omniroute": { "command": "omniroute", "args": ["--mcp"], "env": {} } }}Documentation MCP complĂšte : README du serveur MCP â 110 outils, configurations dâIDE, clients Python/TS/Go.
Configuration dâA2A (protocole agent-Ă -agent)
Section intitulĂ©e « Configuration dâA2A (protocole agent-Ă -agent) »VĂ©rifiez lâAgent Card :
curl http://localhost:20128/.well-known/agent.jsonEnvoyez une tĂąche :
curl -X POST http://localhost:20128/a2a \ -H 'content-type: application/json' \ -d '{"jsonrpc":"2.0","id":"quickstart","method":"message/send","params":{"skill":"quota-management","messages":[{"role":"user","content":"Donnez-moi un bref rĂ©sumĂ© des quotas."}]}}'Documentation A2A complĂšte : README du serveur A2A â JSON-RPC 2.0, compĂ©tences, diffusion en continu et cycle de vie des tĂąches.
Configuration des dĂ©lais dâexpiration
Section intitulĂ©e « Configuration des dĂ©lais dâexpiration »DĂ©lais dâexpiration de base
Section intitulĂ©e « DĂ©lais dâexpiration de base »Pour la plupart des dĂ©ploiements, seules ces deux variables sont nĂ©cessaires :
| Variable | Valeur par défaut | Objectif |
|---|---|---|
REQUEST_TIMEOUT_MS |
600000 |
RĂ©fĂ©rence commune pour le dĂ©lai dâattente du dĂ©but de la rĂ©ponse en amont, les dĂ©lais Undici masquĂ©s, les requĂȘtes dâempreinte TLS et les dĂ©lais de requĂȘte/proxy du pont dâAPI |
STREAM_IDLE_TIMEOUT_MS |
hérite de REQUEST_TIMEOUT_MS |
Intervalle maximal entre les fragments de streaming avant quâOmniRoute nâinterrompe le flux SSE |
La rĂ©trocompatibilitĂ© est prĂ©servĂ©e : les variables existantes FETCH_TIMEOUT_MS, API_BRIDGE_PROXY_TIMEOUT_MS et les autres variables de dĂ©lai dâexpiration propres Ă chaque couche continuent de fonctionner et remplacent la rĂ©fĂ©rence commune.
Remarques spécifiques aux fournisseurs
Section intitulĂ©e « Remarques spĂ©cifiques aux fournisseurs »Pour les services en amont compatibles avec Claude Code (anthropic-compatible-cc-*), OmniRoute calcule lâen-tĂȘte sortant X-Stainless-Timeout Ă partir du dĂ©lai dâexpiration de rĂ©cupĂ©ration rĂ©solu, afin que les dĂ©lais de lecture cĂŽtĂ© fournisseur restent alignĂ©s sur votre configuration dâenvironnement.
Pour les proxys inverses tiers compatibles avec Claude Code, OmniRoute conserve un ensemble anthropic-beta par dĂ©faut prudent et, lorsque Client Cache Control reste dĂ©fini sur Auto, transmet uniquement les marqueurs cache_control fournis par le client. Activez lâoption « Enable redact-thinking beta » pour chaque connexion uniquement lorsque le service en amont exige spĂ©cifiquement des flux de raisonnement Claude expurgĂ©s.
Remplacements avancĂ©s des dĂ©lais dâexpiration
Section intitulĂ©e « Remplacements avancĂ©s des dĂ©lais dâexpiration »| Variable | Valeur par dĂ©faut | Objectif |
|---|---|---|
FETCH_TIMEOUT_MS |
hérite de REQUEST_TIMEOUT_MS |
DĂ©lai dâattente du dĂ©but de la rĂ©ponse en amont, utilisĂ© jusquâĂ la rĂ©ception des en-tĂȘtes de rĂ©ponse |
FETCH_HEADERS_TIMEOUT_MS |
hérite de FETCH_TIMEOUT_MS |
DurĂ©e limite Undici pour la rĂ©ception des en-tĂȘtes de rĂ©ponse en amont |
FETCH_BODY_TIMEOUT_MS |
hérite de FETCH_TIMEOUT_MS |
Durée limite Undici entre les fragments du corps en amont (0 la désactive) |
FETCH_CONNECT_TIMEOUT_MS |
30000 |
DĂ©lai dâexpiration Undici pour la connexion TCP |
FETCH_KEEPALIVE_TIMEOUT_MS |
4000 |
DĂ©lai dâexpiration Undici pour les sockets persistants inactifs |
TLS_CLIENT_TIMEOUT_MS |
hérite de FETCH_TIMEOUT_MS |
DĂ©lai dâexpiration des requĂȘtes dâempreinte TLS effectuĂ©es via wreq-js |
API_BRIDGE_PROXY_TIMEOUT_MS |
hérite de REQUEST_TIMEOUT_MS ou 600000 |
DĂ©lai dâexpiration du transfert proxy de /v1 depuis le port de lâAPI vers celui du tableau de bord |
API_BRIDGE_SERVER_REQUEST_TIMEOUT_MS |
max(API_BRIDGE_PROXY_TIMEOUT_MS, 300000) |
DĂ©lai dâexpiration des requĂȘtes entrantes sur le serveur du pont dâAPI |
API_BRIDGE_SERVER_HEADERS_TIMEOUT_MS |
60000 |
DĂ©lai dâexpiration des en-tĂȘtes entrants sur le serveur du pont dâAPI |
API_BRIDGE_SERVER_KEEPALIVE_TIMEOUT_MS |
5000 |
DĂ©lai dâexpiration des connexions persistantes sur le serveur du pont dâAPI |
API_BRIDGE_SERVER_SOCKET_TIMEOUT_MS |
0 |
DĂ©lai dâexpiration en cas dâinactivitĂ© du socket sur le serveur du pont dâAPI (0 le dĂ©sactive) |
Remarque : Pour les requĂȘtes en streaming,
FETCH_TIMEOUT_MScouvre uniquement lâĂ©tablissement de la connexion et lâattente de la premiĂšre rĂ©ponse en amont. Une fois le flux actif, OmniRoute ne lâinterrompt quâen cas de blocage effectif (STREAM_IDLE_TIMEOUT_MS) ou dâinactivitĂ© du corps Undici (FETCH_BODY_TIMEOUT_MS).
Compatibilité avec les proxys inverses
Section intitulĂ©e « CompatibilitĂ© avec les proxys inverses »Si vous exĂ©cutez OmniRoute derriĂšre Nginx, Caddy, Cloudflare ou un autre proxy inverse, assurez-vous que les dĂ©lais dâexpiration du proxy sont Ă©galement supĂ©rieurs aux dĂ©lais de streaming/rĂ©cupĂ©ration dâOmniRoute.
Mode à ports séparés
Section intitulĂ©e « Mode Ă ports sĂ©parĂ©s »ExĂ©cutez lâAPI et le tableau de bord sur des ports distincts pour les scĂ©narios avancĂ©s (proxy inverse, mise en rĂ©seau de conteneurs) :
PORT=20128 DASHBOARD_PORT=20129 omniroute# Tableau de bord : http://localhost:20129ModĂšle Void Linux (xbps-src)
Section intitulée « ModÚle Void Linux (xbps-src) »Les utilisateurs de Void Linux peuvent créer un paquet natif avec xbps-src. Enregistrez ce bloc sous srcpkgs/omniroute/template :
# Fichier modÚle pour 'omniroute'pkgname=omnirouteversion=3.8.0revision=1hostmakedepends="nodejs python3 make"depends="openssl"short_desc="Universal AI gateway with smart routing for multiple LLM providers"maintainer="zenobit <zenobit@disroot.org>"license="MIT"homepage="https://github.com/diegosouzapw/OmniRoute"distfiles="https://github.com/diegosouzapw/OmniRoute/archive/refs/tags/v${version}.tar.gz"# Régénérez la somme de contrÎle pour chaque version avec :# curl -L -o /tmp/omniroute.tar.gz "https://github.com/diegosouzapw/OmniRoute/archive/refs/tags/v${version}.tar.gz" && sha256sum /tmp/omniroute.tar.gzchecksum=PLACEHOLDER_REGENERATE_PER_RELEASEsystem_accounts="_omniroute"omniroute_homedir="/var/lib/omniroute"export NODE_ENV=productionexport npm_config_engine_strict=falseexport npm_config_loglevel=errorexport npm_config_fund=falseexport npm_config_audit=false
do_build() { local _gyp_arch case "$XBPS_TARGET_MACHINE" in aarch64*) _gyp_arch=arm64 ;; armv7*|armv6*) _gyp_arch=arm ;; i686*) _gyp_arch=ia32 ;; *) _gyp_arch=x64 ;; esac
NODE_ENV=development npm ci --ignore-scripts npm run build cp -r .next/static .next/standalone/.next/static [ -d public ] && cp -r public .next/standalone/public || true
local _node_gyp=/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js (cd node_modules/better-sqlite3 && node "$_node_gyp" rebuild --arch="$_gyp_arch")
local _bs3_release=.next/standalone/node_modules/better-sqlite3/build/Release mkdir -p "$_bs3_release" cp node_modules/better-sqlite3/build/Release/better_sqlite3.node "$_bs3_release/"
rm -rf .next/standalone/node_modules/@img
for _mod in pino-abstract-transport split2 process-warning; do cp -r "node_modules/$_mod" .next/standalone/node_modules/ done}
do_check() { npm run test:unit}
do_install() { vmkdir usr/lib/omniroute/.next vcopy .next/standalone/. usr/lib/omniroute/.next/standalone
for _d in \ .next/standalone/.next/server/app/dashboard \ .next/standalone/.next/server/app/dashboard/settings \ .next/standalone/.next/server/app/dashboard/providers; do touch "${DESTDIR}/usr/lib/omniroute/${_d}/.keep" done
cat > "${WRKDIR}/omniroute" <<'EOF'#!/bin/shexport PORT="${PORT:-20128}"export DATA_DIR="${DATA_DIR:-${XDG_DATA_HOME:-${HOME}/.local/share}/omniroute}"export APP_LOG_TO_FILE="${APP_LOG_TO_FILE:-false}"mkdir -p "${DATA_DIR}"exec node /usr/lib/omniroute/.next/standalone/server.js "$@"EOF vbin "${WRKDIR}/omniroute"}
post_install() { vlicense LICENSE}Désinstallation
Section intitulée « Désinstallation »| Commande | Action |
|---|---|
npm run uninstall |
Supprime lâapplication du systĂšme, mais conserve votre base de donnĂ©es et vos configurations dans ~/.omniroute. |
npm run uninstall:full |
Supprime lâapplication ET efface dĂ©finitivement toutes les configurations, clĂ©s et bases de donnĂ©es. |
Pour obtenir des instructions de désinstallation détaillées pour toutes les méthodes, consultez UNINSTALL.md.
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.