Que fait cli-anything-drawio ?
Un harnais en ligne de commande pour Draw.io — créez, modifiez et exportez des diagrammes depuis le terminal.
Installation
Cette CLI est installée dans le cadre du paquet cli-anything-drawio :
pip install cli-anything-drawio
Prérequis :
- Python 3.10+
- drawio doit être installé sur votre système
Utilisation
Commandes de base
# Afficher l'aide
cli-anything-drawio --help
# Lancer le mode REPL interactif
cli-anything-drawio
# Créer un nouveau projet
cli-anything-drawio project new -o project.json
# Exécuter avec sortie JSON (pour consommation par un agent)
cli-anything-drawio --json project info -p project.json
Mode REPL
Lorsqu'elle est invoquée sans sous-commande, la CLI entre dans une session REPL interactive :
cli-anything-drawio
# Saisissez des commandes de manière interactive avec complétion par tabulation et historique
Groupes de commandes
Projet
Gestion de projet : nouveau, ouvrir, enregistrer, informations.
| Commande | Description |
|---|---|
new | Créer un nouveau diagramme vierge |
open | Ouvrir un fichier de projet .drawio existant |
save | Enregistrer le projet actuel |
info | Afficher les informations détaillées du projet |
xml | Afficher le XML brut du projet actuel |
presets | Lister les tailles de page prédéfinies disponibles |
Forme
Opérations sur les formes : ajouter, supprimer, déplacer, redimensionner, style.
| Commande | Description |
|---|---|
add | Ajouter une forme au diagramme |
remove | Supprimer une forme par son ID |
list | Lister toutes les formes d'une page |
label | Modifier le texte de l'étiquette d'une forme |
move | Déplacer une forme vers de nouvelles coordonnées |
resize | Redimensionner une forme |
style | Définir une propriété de style sur une forme |
info | Afficher les informations détaillées d'une forme |
types | Lister tous les types de formes disponibles |
Connexion
Opérations sur les connecteurs : ajouter, supprimer, style.
| Commande | Description |
|---|---|
add | Ajouter un connecteur entre deux formes |
remove | Supprimer un connecteur par son ID |
label | Modifier l'étiquette d'un connecteur |
style | Définir une propriété de style sur un connecteur |
list | Lister tous les connecteurs d'une page |
styles | Lister les styles de connexion disponibles |
Page
Opérations sur les pages : ajouter, supprimer, renommer, lister.
| Commande | Description |
|---|---|
add | Ajouter une nouvelle page |
remove | Supprimer une page par son index |
rename | Renommer une page |
list | Lister toutes les pages |
Export
Opérations d'export : rendu en PNG, PDF, SVG.
| Commande | Description |
|---|---|
render | Exporter le diagramme vers un fichier |
formats | Lister les formats d'export disponibles |
Session
Gestion de session : état, annuler, rétablir.
| Commande | Description |
|---|---|
status | Afficher l'état de la session actuelle |
undo | Annuler la dernière opération |
redo | Rétablir la dernière opération annulée |
save-state | Enregistrer l'état de la session sur le disque |
list | Lister toutes les sessions enregistrées |
Exemples
Créer un nouveau projet
Créez un nouveau fichier de projet drawio.
cli-anything-drawio project new -o myproject.json
# Ou avec sortie JSON pour une utilisation programmatique
cli-anything-drawio --json project new -o myproject.json
Session REPL interactive
Démarrez une session interactive avec support d'annulation/rétablissement.
cli-anything-drawio
# Saisissez des commandes interactivement
# Utilisez 'help' pour voir les commandes disponibles
# Utilisez 'undo' et 'redo' pour naviguer dans l'historique
Exporter le projet
Exportez le projet vers un format de sortie final.
cli-anything-drawio --project myproject.json export render output.pdf --overwrite
Gestion d'état
La CLI maintient l'état de la session avec :
- Annuler/Rétablir : Jusqu'à 50 niveaux d'historique
- Persistance du projet : Enregistrer/charger l'état du projet au format JSON
- Suivi de session : Suivre les modifications et les changements
Formats de sortie
Toutes les commandes supportent deux modes de sortie :
- Lisible par l'humain (par défaut) : Tableaux, couleurs, texte formaté
- Lisible par machine (flag
--json) : JSON structuré pour la consommation par un agent
# Sortie humaine
cli-anything-drawio project info -p project.json
# Sortie JSON pour agents
cli-anything-drawio --json project info -p project.json
Pour les agents IA
Lorsque vous utilisez cette CLI de manière programmatique :
- Utilisez toujours le flag
--jsonpour une sortie analysable - Vérifiez les codes de retour - 0 pour succès, non nul pour erreurs
- Analysez stderr pour les messages d'erreur en cas d'échec
- Utilisez des chemins absolus pour toutes les opérations sur fichiers
- Vérifiez que les sorties existent après les opérations d'export
Plus d'informations
- Documentation complète : Voir README.md dans le paquet
- Couverture de tests : Voir TEST.md dans le paquet
- Méthodologie : Voir HARNESS.md dans le paquet cli-anything-plugin
Version
1.0.0