Assistant de démarrage rapide pour OmniRoute.
OmniRoute Wizzard aide d'abord à démarrer vite avec OmniRoute : s'inscrire en série à des modèles d'IA gratuits ou payants, déclarer les accès, puis brancher les outils de travail sur une même configuration.
Le reste du projet sert de bonus utile : configuration déclarative, versionnable, exports clients, agents locaux, déploiement distant et contrôles. Objectif simple : passer plus vite de "j'ai accès à plusieurs modèles" à "VS Code, Hermes, OpenClaw et Buzz utilisent OmniRoute correctement".
Démarrer avec OmniRoute commence souvent par une étape très concrète : s'inscrire à plusieurs fournisseurs et modèles d'IA, gratuits ou non, puis mettre ces accès derrière OmniRoute.
Sans wizzard, il faut ensuite refaire plusieurs petites étapes répétitives :
- déclarer les providers et modèles disponibles;
- choisir les modèles ou combos à exposer dans OmniRoute;
- configurer VS Code pour utiliser OmniRoute;
- configurer Hermes, OpenClaw et Buzz avec des formats différents;
- éviter de committer les clés API;
- tester une config avant de l'installer;
- refaire la même configuration sur une autre machine ou un VPS.
OmniRoute Wizzard centralise ces choix dans config/, puis applique la bonne
forme pour chaque outil.
- Aide à organiser l'inscription et l'activation en série des modèles IA.
- Centralise les providers, combos, clients et endpoints dans
config/. - Configure Hermes, OpenClaw, Buzz et VS Code Custom Endpoint.
- Génère les fichiers de configuration depuis des YAML lisibles.
- Lance des agents locaux avec Docker Compose.
- Déploie des configurations sur un serveur par SSH/SCP.
- Crée des backups avant remplacement.
- Valide les fichiers déclaratifs avec
doctor. - Garde les secrets hors Git via
${VAR}et${VAR:-default}.
Prérequis :
- Python 3.10 ou plus récent;
sshetscppour les déploiements distants;- Docker Compose seulement pour les agents locaux.
Depuis un clone Git :
git clone https://github.com/OWNER/omniroute_wizzard.git
cd omniroute_wizzard
./install.shInstallation en une ligne, une fois le dépôt publié sur GitHub :
curl -fsSL https://raw.githubusercontent.com/OWNER/omniroute_wizzard/main/bootstrap.sh \
| sh -s -- https://github.com/OWNER/omniroute_wizzard.gitRemplacer OWNER par le compte ou l'organisation GitHub.
Depuis un dossier déjà cloné :
./install.shSi votre python3 pointe vers une version trop ancienne :
PYTHON=/chemin/vers/python3.12 ./install.shVérifier :
./omniroute_wizzard --help
./omniroute_wizzard doctor- S'inscrire en série aux modèles d'IA.
Créer ou compléter les accès chez les providers souhaités, puis renseigner les modèles exposés à OmniRoute dans :
config/providers.yaml
config/combos.yaml
Garder les vraies clés API dans des variables d'environnement, pas dans Git.
- Paramétrer VS Code pour utiliser OmniRoute.
Par défaut, le wizzard cible :
http://localhost:20128
Configurer l'endpoint :
# config/endpoint.yaml
url: http://localhost:20128
api_key: ${OMNIROUTE_API_KEY:-sk_omniroute}Vérifier la configuration VS Code :
./omniroute_wizzard doctor --client vscode
./omniroute_wizzard configure vscode --dry-run- Paramétrer Hermes, OpenClaw et Buzz pour utiliser OmniRoute.
Vérifier toute la configuration :
./omniroute_wizzard doctorGénérer les configurations clients :
./omniroute_wizzard export hermes --clean
./omniroute_wizzard export openclaw --clean
./omniroute_wizzard export buzz --cleanExemple de fichier généré pour Hermes :
export/hermes/.hermes/config.yaml
Lancer un agent local si besoin :
./omniroute_wizzard local hermes --dry-run
./omniroute_wizzard local hermesLe dépôt devient la source de vérité.
config/
├── endpoint.yaml
├── combos.yaml
├── providers.yaml
├── clients/
│ ├── buzz.yaml
│ ├── hermes.yaml
│ ├── openclaw.yaml
│ └── vscode.yaml
└── servers/
├── local.yaml
├── local-agents.yaml
└── vps-agents.yaml
Le code Python vit dans src/omniroute_wizzard/.
src/omniroute_wizzard/
├── cli.py # commandes et options CLI
├── config.py # lecture YAML et variables d'environnement
├── security.py # masquage des secrets
├── adapters/ # rendu par client IA
└── commands/ # workflows CLI
Le principe est volontairement simple :
cli.pylit la commande demandée;config.pycharge les YAML;- un adapter transforme
endpoint + clienten fichiers; - une commande décide où écrire, déployer ou vérifier ces fichiers.
url: http://localhost:20128
api_key: ${OMNIROUTE_API_KEY:-sk_omniroute}Pour un vrai secret :
export OMNIROUTE_API_KEY='...'enabled: true
adapter: hermes
target: .hermes/config.yaml
model: dev
reasoning_model: reasoning
fast_model: dev-fastenabled: true
adapter: openclaw
target: .openclaw/openclaw.json
model: dev
reasoning_model: reasoning
fast_model: dev-fastenabled: true
adapter: buzz
target: .config/buzz/omniroute.env
model: devenabled: true
adapter: vscode
target: Library/Application Support/Code/User/chatLanguageModels.json
model: auto/coding
reasoning_model: auto
fast_model: auto/fastLister ce qui est déclaré :
./omniroute_wizzard showValider tout :
./omniroute_wizzard doctorValider un client :
./omniroute_wizzard doctor --client vscodeGénérer une config sans l'installer :
./omniroute_wizzard export openclaw --cleanSauvegarder le dossier config/ :
./omniroute_wizzard backupLes stacks Docker locales permettent de démarrer Hermes, OpenClaw ou Buzz déjà branchés sur OmniRoute.
Ces conteneurs n'embarquent pas OmniRoute. Ils utilisent l'instance OmniRoute de la machine hôte via :
http://host.docker.internal:20128
Exemples :
./omniroute_wizzard local hermes
./omniroute_wizzard local openclaw
./omniroute_wizzard local buzzLes fichiers générés sont placés dans runtime/.
Pour contrôler avant lancement :
./omniroute_wizzard local hermes --dry-runImages surchargeables :
OPENCLAW_IMAGE=my-openclaw:latest ./omniroute_wizzard local openclaw
BUZZ_IMAGE=my-buzz:latest ./omniroute_wizzard local buzzLe wizzard sait ajouter ou remplacer uniquement le bloc OmniRoute dans
chatLanguageModels.json, sans supprimer Gemini, Copilot ou les autres
providers.
Simulation :
./omniroute_wizzard configure vscode --dry-runApplication :
./omniroute_wizzard configure vscodeAvec un fichier explicite :
./omniroute_wizzard configure vscode \
--file "$HOME/Library/Application Support/Code/User/chatLanguageModels.json"Après modification, recharger VS Code :
Developer: Reload Window
Déclarer un serveur :
# config/servers/vps-agents.yaml
host: agents.example.com
user: debian
port: 22
target_dir: ~/.config/omniroute-wizzard
clients:
- hermes
- openclaw
- buzz
restart:
- systemctl --user restart hermes.service || true
- systemctl --user restart openclaw.service || true
healthcheck:
- test -f ~/.hermes/config.yaml
- test -f ~/.openclaw/openclaw.jsonTester sans rien modifier :
./omniroute_wizzard deploy vps-agents --dry-runDéployer :
./omniroute_wizzard deploy vps-agentsDéployer un seul client :
./omniroute_wizzard deploy vps-agents --client hermesLe déploiement :
- crée un staging distant;
- rend les configs localement;
- envoie les fichiers avec
scp; - sauvegarde chaque fichier distant existant en
.bak-YYYYMMDD-HHMMSS; - installe la nouvelle version;
- supprime le staging;
- exécute les commandes
restart; - exécute les
healthcheck.
Le CLI utilise les commandes système ssh et scp; votre ~/.ssh/config,
vos clés, votre agent SSH et vos alias continuent donc de fonctionner.
Ne mettez pas de vraie clé API dans config/.
Préférer :
api_key: ${OMNIROUTE_API_KEY}ou, pour un environnement local sans secret réel :
api_key: ${OMNIROUTE_API_KEY:-sk_omniroute}Le moteur remplace les formes ${VAR} et ${VAR:-default} au chargement. Si
une variable sans valeur par défaut n'est pas définie, la référence reste
littérale dans le rendu; cela permet de laisser le secret être résolu sur la
machine cible quand le client le supporte.
Créer un adapter :
src/omniroute_wizzard/adapters/myagent.py
from .base import Adapter
class MyAgentAdapter(Adapter):
name = "myagent"
def render(self, client_cfg, endpoint):
return {
".config/myagent/config.json": "..."
}Enregistrer l'adapter :
src/omniroute_wizzard/adapters/registry.py
Ajouter la déclaration :
config/clients/myagent.yaml
Puis vérifier :
./omniroute_wizzard doctor --client myagent
./omniroute_wizzard export myagent --cleanOmniRoute Wizzard ne remplace pas OmniRoute. Il réduit la friction autour du démarrage et de la configuration des clients IA.
config/
↓
omniroute_wizzard
├── doctor
├── export
├── local
├── configure vscode
├── deploy
└── backup
Une fois les choix déclarés dans Git, vous pouvez reconstruire rapidement une machine de développement, préparer un VPS d'agents, ou partager une configuration OmniRoute propre sans copier de secrets.
- Commande
diffavant déploiement. - Vrai
syncbidirectionnel. - Pull des configs distantes.
- Rollback automatique depuis backup.
- Chiffrement SOPS/age pour secrets.
- Bootstrap complet d'un VPS agent.
- Adapters supplémentaires pour autres outils IA.