Que fait cli-anything-libreoffice ?
Une interface en ligne de commande avec état pour l'édition de documents, produisant de véritables fichiers ODF (archives ZIP avec XML). Conçue pour les agents IA et les utilisateurs avancés qui doivent créer et manipuler des documents Writer, Calc et Impress sans interface graphique ni installation de LibreOffice.
Installation
Cette CLI est installée dans le cadre du paquet cli-anything-libreoffice :
pip install cli-anything-libreoffice
Prérequis :
- Python 3.10+
- libreoffice doit être installé sur votre système
Utilisation
Commandes de base
# Afficher l'aide
cli-anything-libreoffice --help
# Démarrer le mode REPL interactif
cli-anything-libreoffice
# Créer un nouveau projet
cli-anything-libreoffice project new -o project.json
# Exécuter avec sortie JSON (pour consommation agent)
cli-anything-libreoffice --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-libreoffice
# Saisissez les commandes de manière interactive avec complétion par tabulation et historique
Groupes de commandes
Document
Commandes de gestion des documents.
| Commande | Description |
|---|---|
new | Créer un nouveau document |
open | Ouvrir un projet JSON, ou importer un fichier Office/ODF existant |
import | Importer un fichier Office/ODF existant vers un projet JSON |
import-formats | Lister les formats d'import pris en charge |
save | Enregistrer le document courant |
info | Afficher les informations du document |
profiles | Lister les profils de page disponibles |
json | Afficher le projet JSON brut |
Writer
Commandes Writer (traitement de texte).
| Commande | Description |
|---|---|
add-paragraph | Ajouter un paragraphe au document |
add-heading | Ajouter un titre au document |
add-list | Ajouter une liste au document |
add-table | Ajouter un tableau au document |
add-page-break | Ajouter un saut de page |
remove | Supprimer un élément de contenu par index |
list | Lister tous les éléments de contenu |
set-text | Définir le texte d'un élément de contenu |
Calc
Commandes Calc (tableur).
| Commande | Description |
|---|---|
add-sheet | Ajouter une nouvelle feuille |
remove-sheet | Supprimer une feuille par index |
rename-sheet | Renommer une feuille |
set-cell | Définir la valeur d'une cellule |
get-cell | Obtenir la valeur d'une cellule |
list-sheets | Lister toutes les feuilles |
Impress
Commandes Impress (présentation).
| Commande | Description |
|---|---|
add-slide | Ajouter une diapositive à la présentation |
remove-slide | Supprimer une diapositive par index |
set-content | Mettre à jour le titre et/ou le contenu d'une diapositive |
list-slides | Lister toutes les diapositives |
add-element | Ajouter un élément à une diapositive |
Groupe Style
Commandes de gestion des styles.
| Commande | Description |
|---|---|
create | Créer un nouveau style |
modify | Modifier un style existant |
list | Lister tous les styles |
apply | Appliquer un style à un élément de contenu (Writer uniquement) |
remove | Supprimer un style |
Groupe Export
Commandes d'export/rendu.
| Commande | Description |
|---|---|
presets | Lister les préréglages d'export |
preset-info | Afficher les détails d'un préréglage |
render | Exporter le document vers un fichier |
Session
Commandes de gestion de session.
| Commande | Description |
|---|---|
status | Afficher le statut de la session |
undo | Annuler la dernière opération |
redo | Rétablir la dernière opération annulée |
history | Afficher l'historique d'annulation |
Exemples
Créer un nouveau projet
Créer un nouveau fichier de projet LibreOffice.
cli-anything-libreoffice project new -o myproject.json
# Ou avec sortie JSON pour une utilisation programmatique
cli-anything-libreoffice --json project new -o myproject.json
Session REPL interactive
Démarrer une session interactive avec prise en charge de l'annulation/rétablissement.
cli-anything-libreoffice
# Saisissez les commandes de manière interactive
# Utilisez 'help' pour voir les commandes disponibles
# Utilisez 'undo' et 'redo' pour naviguer dans l'historique
Exporter un projet
Exporter le projet vers un format de sortie final.
cli-anything-libreoffice --project myproject.json export render output.pdf --overwrite
Gestion d'état
La CLI maintient l'état de session avec :
- Annulation/Rétablissement : Jusqu'à 50 niveaux d'historique
- Persistance du projet : Sauvegarder/charger l'état du projet au format JSON
- Import de fichiers existants : Convertir les fichiers ODF/DOCX/XLSX/PPTX et formats associés en projet JSON modifiable
- Suivi de session : Suivre les modifications et les changements
Formats de sortie
Toutes les commandes prennent en charge deux modes de sortie :
- Lisible par l'humain (par défaut) : Tableaux, couleurs, texte formaté
- Lisible par machine (drapeau
--json) : JSON structuré pour consommation agent
# Sortie humaine
cli-anything-libreoffice project info -p project.json
# Sortie JSON pour les agents
cli-anything-libreoffice --json project info -p project.json
Pour les agents IA
Lors de l'utilisation de cette CLI de manière programmatique :
- Utilisez toujours le drapeau
--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
- Importez d'abord les fichiers Office existants en JSON avec
document import input.docx -o work.json - 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 plugin cli-anything
Version
1.0.0