¿Qué hace cli-anything-libreoffice?
Una interfaz de línea de comandos con estado para la edición de documentos, que produce archivos ODF reales (archivos ZIP con XML). Diseñada para agentes de IA y usuarios avanzados que necesitan crear y manipular documentos de Writer, Calc e Impress sin una interfaz gráfica o instalación de LibreOffice.
Instalación
Esta CLI se instala como parte del paquete cli-anything-libreoffice:
pip install cli-anything-libreoffice
Requisitos previos:
- Python 3.10+
- Debe tener libreoffice instalado en su sistema
Uso
Comandos básicos
# Mostrar ayuda
cli-anything-libreoffice --help
# Iniciar modo REPL interactivo
cli-anything-libreoffice
# Crear un nuevo proyecto
cli-anything-libreoffice project new -o project.json
# Ejecutar con salida JSON (para consumo por agentes)
cli-anything-libreoffice --json project info -p project.json
Modo REPL
Cuando se invoca sin un subcomando, la CLI entra en una sesión REPL interactiva:
cli-anything-libreoffice
# Introduzca comandos interactivamente con autocompletado e historial
Grupos de comandos
Documento
Comandos de gestión de documentos.
| Comando | Descripción |
|---|---|
new | Crear un nuevo documento |
open | Abrir un proyecto JSON, o importar un archivo Office/ODF existente |
import | Importar un archivo Office/ODF existente a un proyecto JSON |
import-formats | Listar los formatos de importación compatibles |
save | Guardar el documento actual |
info | Mostrar información del documento |
profiles | Listar los perfiles de página disponibles |
json | Imprimir el proyecto JSON en bruto |
Writer
Comandos de Writer (procesador de texto).
| Comando | Descripción |
|---|---|
add-paragraph | Añadir un párrafo al documento |
add-heading | Añadir un encabezado al documento |
add-list | Añadir una lista al documento |
add-table | Añadir una tabla al documento |
add-page-break | Añadir un salto de página |
remove | Eliminar un elemento de contenido por índice |
list | Listar todos los elementos de contenido |
set-text | Establecer el texto de un elemento de contenido |
Calc
Comandos de Calc (hoja de cálculo).
| Comando | Descripción |
|---|---|
add-sheet | Añadir una nueva hoja |
remove-sheet | Eliminar una hoja por índice |
rename-sheet | Renombrar una hoja |
set-cell | Establecer el valor de una celda |
get-cell | Obtener el valor de una celda |
list-sheets | Listar todas las hojas |
Impress
Comandos de Impress (presentación).
| Comando | Descripción |
|---|---|
add-slide | Añadir una diapositiva a la presentación |
remove-slide | Eliminar una diapositiva por índice |
set-content | Actualizar el título y/o contenido de una diapositiva |
list-slides | Listar todas las diapositivas |
add-element | Añadir un elemento a una diapositiva |
Grupo de Estilo
Comandos de gestión de estilos.
| Comando | Descripción |
|---|---|
create | Crear un nuevo estilo |
modify | Modificar un estilo existente |
list | Listar todos los estilos |
apply | Aplicar un estilo a un elemento de contenido (solo Writer) |
remove | Eliminar un estilo |
Grupo de Exportación
Comandos de exportación/renderización.
| Comando | Descripción |
|---|---|
presets | Listar preajustes de exportación |
preset-info | Mostrar detalles del preajuste |
render | Exportar el documento a un archivo |
Sesión
Comandos de gestión de sesión.
| Comando | Descripción |
|---|---|
status | Mostrar el estado de la sesión |
undo | Deshacer la última operación |
redo | Rehacer la última operación deshecha |
history | Mostrar el historial de deshacer |
Ejemplos
Crear un Nuevo Proyecto
Crear un nuevo archivo de proyecto de libreoffice.
cli-anything-libreoffice project new -o myproject.json
# O con salida JSON para uso programático
cli-anything-libreoffice --json project new -o myproject.json
Sesión REPL Interactiva
Iniciar una sesión interactiva con soporte de deshacer/rehacer.
cli-anything-libreoffice
# Introduzca comandos interactivamente
# Use 'help' para ver los comandos disponibles
# Use 'undo' y 'redo' para navegar por el historial
Exportar Proyecto
Exportar el proyecto a un formato de salida final.
cli-anything-libreoffice --project myproject.json export render output.pdf --overwrite
Gestión de Estado
La CLI mantiene el estado de la sesión con:
- Deshacer/Rehacer: Hasta 50 niveles de historial
- Persistencia del proyecto: Guardar/cargar el estado del proyecto como JSON
- Importación de archivos existentes: Convertir ODF/DOCX/XLSX/PPTX y formatos relacionados en proyectos JSON editables
- Seguimiento de la sesión: Rastrear modificaciones y cambios
Formatos de Salida
Todos los comandos admiten dos modos de salida:
- Legible por humanos (predeterminado): Tablas, colores, texto formateado
- Legible por máquina (bandera
--json): JSON estructurado para consumo por agentes
# Salida para humanos
cli-anything-libreoffice project info -p project.json
# Salida JSON para agentes
cli-anything-libreoffice --json project info -p project.json
Para Agentes de IA
Al usar esta CLI programáticamente:
- Use siempre la bandera
--jsonpara obtener una salida analizable - Verifique los códigos de retorno: 0 para éxito, distinto de cero para errores
- Analice stderr para mensajes de error en caso de fallo
- Use rutas absolutas para todas las operaciones de archivos
- Importe primero los archivos Office existentes a JSON con
document import input.docx -o work.json - Verifique que las salidas existan después de las operaciones de exportación
Más Información
- Documentación completa: Consulte README.md en el paquete
- Cobertura de pruebas: Consulte TEST.md en el paquete
- Metodología: Consulte HARNESS.md en cli-anything-plugin
Versión
1.0.0