O que cli-anything-libreoffice faz?
Uma interface de linha de comando com estado para edição de documentos, produzindo arquivos ODF reais (arquivos ZIP com XML). Projetada para agentes de IA e usuários avançados que precisam criar e manipular documentos Writer, Calc e Impress sem uma GUI ou instalação do LibreOffice.
Instalação
Esta CLI é instalada como parte do pacote cli-anything-libreoffice:
pip install cli-anything-libreoffice
Pré-requisitos:
- Python 3.10+
- libreoffice deve estar instalado no sistema
Uso
Comandos Básicos
# Mostrar ajuda
cli-anything-libreoffice --help
# Iniciar modo REPL interativo
cli-anything-libreoffice
# Criar um novo projeto
cli-anything-libreoffice project new -o project.json
# Executar com saída JSON (para consumo por agentes)
cli-anything-libreoffice --json project info -p project.json
Modo REPL
Quando invocado sem um subcomando, a CLI entra em uma sessão REPL interativa:
cli-anything-libreoffice
# Insira comandos interativamente com autocompletar e histórico
Grupos de Comandos
Documento
Comandos de gerenciamento de documentos.
| Comando | Descrição |
|---|---|
new | Criar um novo documento |
open | Abrir um projeto JSON ou importar um arquivo Office/ODF existente |
import | Importar um arquivo Office/ODF existente para o projeto JSON |
import-formats | Listar formatos de importação suportados |
save | Salvar o documento atual |
info | Mostrar informações do documento |
profiles | Listar perfis de página disponíveis |
json | Imprimir o projeto JSON bruto |
Writer
Comandos do Writer (processador de texto).
| Comando | Descrição |
|---|---|
add-paragraph | Adicionar um parágrafo ao documento |
add-heading | Adicionar um cabeçalho ao documento |
add-list | Adicionar uma lista ao documento |
add-table | Adicionar uma tabela ao documento |
add-page-break | Adicionar uma quebra de página |
remove | Remover um item de conteúdo pelo índice |
list | Listar todos os itens de conteúdo |
set-text | Definir o texto de um item de conteúdo |
Calc
Comandos do Calc (planilha).
| Comando | Descrição |
|---|---|
add-sheet | Adicionar uma nova planilha |
remove-sheet | Remover uma planilha pelo índice |
rename-sheet | Renomear uma planilha |
set-cell | Definir o valor de uma célula |
get-cell | Obter o valor de uma célula |
list-sheets | Listar todas as planilhas |
Impress
Comandos do Impress (apresentação).
| Comando | Descrição |
|---|---|
add-slide | Adicionar um slide à apresentação |
remove-slide | Remover um slide pelo índice |
set-content | Atualizar o título e/ou conteúdo de um slide |
list-slides | Listar todos os slides |
add-element | Adicionar um elemento a um slide |
Grupo de Estilo
Comandos de gerenciamento de estilos.
| Comando | Descrição |
|---|---|
create | Criar um novo estilo |
modify | Modificar um estilo existente |
list | Listar todos os estilos |
apply | Aplicar um estilo a um item de conteúdo (apenas Writer) |
remove | Remover um estilo |
Grupo de Exportação
Comandos de exportação/renderização.
| Comando | Descrição |
|---|---|
presets | Listar predefinições de exportação |
preset-info | Mostrar detalhes de uma predefinição |
render | Exportar o documento para um arquivo |
Sessão
Comandos de gerenciamento de sessão.
| Comando | Descrição |
|---|---|
status | Mostrar status da sessão |
undo | Desfazer a última operação |
redo | Refazer a última operação desfeita |
history | Mostrar histórico de desfazer |
Exemplos
Criar um Novo Projeto
Criar um novo arquivo de projeto do LibreOffice.
cli-anything-libreoffice project new -o meuprojeto.json
# Ou com saída JSON para uso programático
cli-anything-libreoffice --json project new -o meuprojeto.json
Sessão REPL Interativa
Iniciar uma sessão interativa com suporte a desfazer/refazer.
cli-anything-libreoffice
# Insira comandos interativamente
# Use 'help' para ver comandos disponíveis
# Use 'undo' e 'redo' para navegação no histórico
Exportar Projeto
Exportar o projeto para um formato de saída final.
cli-anything-libreoffice --project meuprojeto.json export render output.pdf --overwrite
Gerenciamento de Estado
A CLI mantém o estado da sessão com:
- Desfazer/Refazer: Até 50 níveis de histórico
- Persistência de projeto: Salvar/carregar estado do projeto como JSON
- Importação de arquivos existentes: Converter ODF/DOCX/XLSX/PPTX e formatos relacionados em JSON editável do projeto
- Rastreamento de sessão: Acompanhar modificações e alterações
Formatos de Saída
Todos os comandos suportam dois modos de saída:
- Legível para humanos (padrão): Tabelas, cores, texto formatado
- Legível para máquinas (sinalizador
--json): JSON estruturado para consumo por agentes
# Saída humana
cli-anything-libreoffice project info -p project.json
# Saída JSON para agentes
cli-anything-libreoffice --json project info -p project.json
Para Agentes de IA
Ao usar esta CLI programaticamente:
- Sempre use o sinalizador
--jsonpara saída analisável - Verifique os códigos de retorno - 0 para sucesso, diferente de zero para erros
- Analise o stderr para mensagens de erro em caso de falha
- Use caminhos absolutos para todas as operações de arquivo
- Importe arquivos Office existentes para JSON primeiro com
document import input.docx -o work.json - Verifique se as saídas existem após operações de exportação
Mais Informações
- Documentação completa: Veja README.md no pacote
- Cobertura de testes: Veja TEST.md no pacote
- Metodologia: Veja HARNESS.md no cli-anything-plugin
Versão
1.0.0