O que cli-anything-drawio faz?
Um harness de linha de comando para o Draw.io — crie, edite e exporte diagramas a partir do terminal.
Instalação
Este CLI é instalado como parte do pacote cli-anything-drawio:
pip install cli-anything-drawio
Pré-requisitos:
- Python 3.10+
- drawio deve estar instalado no seu sistema
Uso
Comandos Básicos
# Mostrar ajuda
cli-anything-drawio --help
# Iniciar modo REPL interativo
cli-anything-drawio
# Criar um novo projeto
cli-anything-drawio project new -o project.json
# Executar com saída JSON (para consumo por agentes)
cli-anything-drawio --json project info -p project.json
Modo REPL
Quando invocado sem um subcomando, o CLI entra em uma sessão REPL interativa:
cli-anything-drawio
# Insira comandos interativamente com auto-completar e histórico
Grupos de Comandos
Projeto
Gerenciamento de projetos: novo, abrir, salvar, informações.
| Comando | Descrição |
|---|---|
new | Criar um novo diagrama em branco |
open | Abrir um arquivo de projeto .drawio existente |
save | Salvar o projeto atual |
info | Mostrar informações detalhadas do projeto |
xml | Imprimir o XML bruto do projeto atual |
presets | Listar predefinições de tamanho de página disponíveis |
Forma
Operações de forma: adicionar, remover, mover, redimensionar, estilizar.
| Comando | Descrição |
|---|---|
add | Adicionar uma forma ao diagrama |
remove | Remover uma forma por ID |
list | Listar todas as formas em uma página |
label | Atualizar o texto do rótulo de uma forma |
move | Mover uma forma para novas coordenadas |
resize | Redimensionar uma forma |
style | Definir uma propriedade de estilo em uma forma |
info | Mostrar informações detalhadas sobre uma forma |
types | Listar todos os tipos de forma disponíveis |
Conectar
Operações de conector: adicionar, remover, estilizar.
| Comando | Descrição |
|---|---|
add | Adicionar um conector entre duas formas |
remove | Remover um conector por ID |
label | Atualizar o rótulo de um conector |
style | Definir uma propriedade de estilo em um conector |
list | Listar todos os conectores em uma página |
styles | Listar estilos de borda disponíveis |
Página
Operações de página: adicionar, remover, renomear, listar.
| Comando | Descrição |
|---|---|
add | Adicionar uma nova página |
remove | Remover uma página por índice |
rename | Renomear uma página |
list | Listar todas as páginas |
Exportar
Operações de exportação: renderizar para PNG, PDF, SVG.
| Comando | Descrição |
|---|---|
render | Exportar o diagrama para um arquivo |
formats | Listar formatos de exportação disponíveis |
Sessão
Gerenciamento de sessão: status, desfazer, refazer.
| Comando | Descrição |
|---|---|
status | Mostrar status da sessão atual |
undo | Desfazer a última operação |
redo | Refazer a última operação desfeita |
save-state | Salvar estado da sessão em disco |
list | Listar todas as sessões salvas |
Exemplos
Criar um Novo Projeto
Crie um novo arquivo de projeto drawio.
cli-anything-drawio project new -o myproject.json
# Ou com saída JSON para uso programático
cli-anything-drawio --json project new -o myproject.json
Sessão REPL Interativa
Inicie uma sessão interativa com suporte a desfazer/refazer.
cli-anything-drawio
# Insira comandos interativamente
# Use 'help' para ver comandos disponíveis
# Use 'undo' e 'redo' para navegação no histórico
Exportar Projeto
Exporte o projeto para um formato de saída final.
cli-anything-drawio --project myproject.json export render output.pdf --overwrite
Gerenciamento de Estado
O CLI mantém 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
- Rastreamento de sessão: Rastrear modificações e alterações
Formatos de Saída
Todos os comandos suportam modos de saída duais:
- Legível por humanos (padrão): Tabelas, cores, texto formatado
- Legível por máquina (flag
--json): JSON estruturado para consumo por agentes
# Saída humana
cli-anything-drawio project info -p project.json
# Saída JSON para agentes
cli-anything-drawio --json project info -p project.json
Para Agentes de IA
Ao usar este CLI programaticamente:
- Sempre use a flag
--jsonpara saída parseável - Verifique 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
- Verifique se as saídas existem após operações de exportação
Mais Informações
- Documentação completa: Veja o arquivo README.md no pacote
- Cobertura de teste: Veja o arquivo TEST.md no pacote
- Metodologia: Veja o arquivo HARNESS.md no cli-anything-plugin
Versão
1.0.0