CLI-Anything : Générer une interface de ligne de commande pour n'importe quel logiciel à partir de son code source
CLI-Anything est un plugin open-source pour les agents de codage IA (principalement Claude Code) qui génère automatiquement une interface de ligne de commande pour tout logiciel disposant d'une base de code. Dirigez-le vers GIMP, Blender, LibreOffice ou toute autre application, et il analyse le code source pour produire une interface CLI structurée, exploitable par votre agent IA pour contrôler ce logiciel de manière programmable.
Essayez Apidog dès aujourd'hui
Le problème : les agents IA ne peuvent pas utiliser les logiciels à interface graphique
Aujourd'hui, la pile logicielle est scindée en deux mondes :
- Les services "API-first" (stockage cloud, paiement, email, analytics) exposent des API HTTP. Un agent IA peut les appeler directement.
- Les outils métiers courants (GIMP, Blender, LibreOffice, Audacity...) sont conçus pour l'usage humain via des interfaces graphiques, sans API structurée.
Pour connecter un agent IA à ces outils, les options classiques sont limitées :
- Écrire à la main des wrappers personnalisés (fragiles et à maintenir).
- Automatiser l'interface graphique via RPA (robotic process automation), qui simule les clics et les captures d'écran (peu robuste, facilement cassé par un changement visuel).
CLI-Anything adopte une approche différente : il analyse le code source pour trouver les API internes utilisées par la GUI, puis génère une CLI qui appelle ces API directement. Plus besoin de simuler l'usage humain : l'agent IA envoie des commandes structurées, le logiciel exécute.
💡 Si vos workflows d'agents doivent aussi appeler des API REST externes, Apidog gère le test, l'inspection et l'organisation de requêtes API. Gratuit, il permet de valider vos intégrations API avant de les automatiser.
Ce que fait CLI-Anything
CLI-Anything est développé par le lab HKUDS. Son principe : générer une interface CLI cohérente pour tout logiciel, rendant les outils GUI accessibles aux agents IA.
Le plugin fonctionne principalement dans Claude Code (et expérimentalement dans Codex et OpenCode). Il s'utilise en pointant vers la base de code à analyser, puis exécute automatiquement un pipeline en 7 étapes :
- Analyse : Scanne le code source, mappe les actions GUI aux API internes, produit un doc de procédures (SOP).
- Conception : Définit les groupes de commandes, états, formats de sortie.
-
Implémentation : Génère une CLI Python basée sur Click, avec mode REPL, sortie
--json, undo/redo. -
Planification des tests : Crée un fichier
TEST.mddécrivant les plans de test. -
Écriture des tests : Génère
test_core.py(tests unitaires) ettest_full_e2e.py(tests end-to-end). -
Documentation : Exécute les tests, ajoute les résultats à
TEST.md. -
Publication : Crée
setup.py, configure les scripts exécutables, place la CLI dans le PATH.
À la fin, vous obtenez une CLI installable, cohérente, avec sortie tabulaire ou JSON, gestion d’état, annulation/rétablissement, mode REPL. L'agent IA peut la découvrir (which cli-anything-gimp), lister l’aide (cli-anything-gimp --help), et envoyer des commandes structurées.
Installation de CLI-Anything
CLI-Anything est un plugin Python à installer dans votre agent de codage IA. Les CLI générées sont des paquets Python (pip install -e .).
Prérequis :
- Python 3.10+
- Le logiciel cible installé sur la machine
- Un agent de codage IA compatible (Claude Code principalement)
Installation sur Claude Code
/plugin marketplace add HKUDS/CLI-Anything
/plugin install cli-anything
Installation sur OpenCode
Clonez le repo, copiez les fichiers de commande et HARNESS.md dans ~/.config/opencode/commands/ pour activer cinq commandes slash : /cli-anything, /cli-anything-refine, /cli-anything-test, /cli-anything-validate, /cli-anything-list.
Installation sur Codex
bash CLI-Anything/codex-skill/scripts/install.sh
Installation sur Qodercli
bash CLI-Anything/qoder-plugin/setup-qodercli.sh
Note Windows
Nécessite Git for Windows (avec bash et cygpath) ou WSL. Le shell Windows natif n'est pas supporté.
Installer la CLI générée
Après génération, installez la CLI dans le PATH :
cd <logiciel>/agent-harness
pip install -e .
Générer votre première interface CLI
Une fois le plugin installé, la génération est immédiate. Exemple pour GIMP :
Dans Claude Code :
/cli-anything ./gimp
Depuis GitHub :
/cli-anything https://github.com/blender/blender
Le pipeline en 7 étapes s’enclenche. Pendant l’analyse, le plugin cartographie les actions GUI vers les API internes et génère un document SOP spécifique (ex : GIMP.md). L’implémentation s’appuie sur Python Click, chaque commande supporte --json, l’état est sauvegardé dans un fichier JSON, et le mode REPL est inclus.
Structure générée :
gimp/
agent-harness/
GIMP.md
setup.py
cli_anything/
gimp/
README.md
gimp_cli.py
core/
utils/
tests/
test_core.py
test_full_e2e.py
TEST.md
Toutes les CLI se retrouvent sous l’espace de noms cli_anything.* (ex : cli_anything.gimp).
Utiliser l’interface de ligne de commande générée
Après pip install -e ., la CLI est disponible :
cli-anything-gimp --help
La CLI suit la même convention de nommage pour chaque outil : cli-anything-<logiciel>.
Sortie lisible par l’humain (par défaut)
# Nouveau projet
cli-anything-gimp project new --width 1920 --height 1080
# Lister les calques
cli-anything-gimp layer list
# Ajouter un calque
cli-anything-gimp layer add --name "Background" --type solid --color "#ffffff"
# Appliquer un filtre
cli-anything-gimp filter apply --name "gaussian-blur" --radius 3
# Exporter
cli-anything-gimp export save --format png --output ./output.png
Sortie JSON pour agents IA
cli-anything-gimp --json project new --width 1920 --height 1080
# {"status": "ok", "project_id": "proj_abc123", "width": 1920, "height": 1080}
cli-anything-gimp --json layer add -n "Background"
# {"status": "ok", "layer_id": "layer_001", "name": "Background"}
Sortie JSON standardisée pour toutes les commandes.
Mode REPL interactif
cli-anything-gimp
Shell interactif avec complétion, historique, invites colorées.
Annuler/rétablir
cli-anything-gimp undo
cli-anything-gimp redo
Jusqu’à 50 niveaux d’annulation.
Affiner et tester votre interface CLI
Les CLI générées peuvent nécessiter un affinage. Utilisez :
Affinage général
/cli-anything:refine /home/user/gimp
Ajoute les commandes manquantes détectées par rapport à la surface API.
Affinage ciblé
/cli-anything:refine /home/user/blender "systèmes de particules et simulation physique"
Affinage sur une zone précise du code.
Exécuter les tests
/cli-anything:test /home/user/gimp
Met à jour TEST.md avec les résultats.
Validation
/cli-anything:validate /home/user/gimp
Valide la conformité à la spec HARNESS.md.
Lister les CLI disponibles
/cli-anything:list
/cli-anything:list --json
/cli-anything:list --path /home
Cas d’utilisation réels
Traitement d’images par lot avec GIMP
Automatisez des pipelines sans interaction humaine :
cli-anything-gimp project open --file product.jpg
cli-anything-gimp layer add --name "Watermark" --type image --source watermark.png
cli-anything-gimp layer position --name "Watermark" --x 10 --y 10
cli-anything-gimp export save --format webp --output product-final.webp
Génération de documents avec LibreOffice
Création automatisée de PDF à partir de modèles :
cli-anything-libreoffice document open --template invoice-template.ods
cli-anything-libreoffice cell set --address "B5" --value "Acme Corp"
cli-anything-libreoffice cell set --address "C10" --value "1500.00"
cli-anything-libreoffice export pdf --output invoice-2026-001.pdf
Rendu 3D avec Blender
Automatisez les rendus :
cli-anything-blender scene open --file product-scene.blend
cli-anything-blender render set --samples 256 --output /renders/product
cli-anything-blender render start --format png
Automatisation du streaming avec OBS Studio
cli-anything-obs scene set --name "Main Camera"
cli-anything-obs recording start
cli-anything-obs scene set --name "Screen Share"
cli-anything-obs recording stop --output session.mp4
Intégration CI/CD
Intégrez ces commandes dans vos pipelines CI/CD (GitHub Actions, scripts de build, etc).
Construire des workflows d’agent avec Apidog
CLI-Anything gère l’automatisation locale. Pour enchaîner avec des API externes (ex : uploader une image, envoyer un PDF...), Apidog est un client API gratuit pour tester et automatiser les appels REST.
Exemple :
- Configurez un environnement avec vos identifiants API.
- Testez le endpoint d’upload avec un exemple de fichier.
- Ajoutez des assertions sur la réponse.
- Exporte la requête comme commande curl ou snippet à intégrer dans votre script d’agent.
Cela permet de valider les intégrations API avant de les automatiser, d’éviter les cycles de débogage fastidieux, et d’ajouter des suites de tests automatisées pour surveiller les régressions.
Limitations à connaître
Le support Windows nécessite Git Bash ou WSL
Les CLI générées utilisent bash et cygpath. PowerShell natif non supporté.
Le logiciel cible doit être installé
La CLI n’inclut pas le logiciel cible : il doit être présent sur la machine.
Sortie Python uniquement
Les CLIs générées sont des applications Python Click. Pas de génération Node.js, Go, etc.
Claude Code = plateforme stable
Intégrations Codex/OpenCode expérimentales. Claude Code est la référence.
Qualité dépendante de la base de code
La génération dépend fortement de la clarté et structure de la base de code. Logiciels propriétaires ou code obfusqué = résultats moins fiables.
FAQ
CLI-Anything fonctionne-t-il avec tous les logiciels ?
Oui, si la base de code est accessible et suffisamment structurée (idéalement open-source). Démontré avec GIMP, Blender, Inkscape, Audacity, Kdenlive, Shotcut, OBS Studio, Draw.io, LibreOffice, AnyGen, Zoom.
Le projet est-il gratuit ?
Oui, sous licence MIT, disponible sur GitHub.
Dois-je connaître Python ?
Non, tout est généré. Il faut juste Python 3.10+ installé.
Puis-je utiliser la CLI générée dans mes propres scripts/applications ?
Oui, c’est un outil CLI standard, utilisable dans shell, Makefile, Python, etc.
Qu’est-ce que HARNESS.md ?
Spécification décrivant la structure, les formats, les tests attendus d’une CLI générée. La validation s’appuie sur ce fichier.
Puis-je générer des CLI pour mes outils internes ?
Oui, il suffit de pointer vers la base de code locale ou privée.
Différences avec le Model Context Protocol (MCP) ?
MCP connecte agents IA et services externes via protocole serveur standardisé. CLI-Anything crée des wrappers CLI locaux pour applications GUI sans API. Usage complémentaire possible.
Top comments (0)