O que cli-anything-gimp faz?
Uma interface de linha de comando com estado para edição de imagens, construída sobre o Pillow. Projetada para agentes de IA e usuários avançados que precisam criar e manipular imagens sem uma interface gráfica.
Instalação
Esta CLI é instalada como parte do pacote cli-anything-gimp:
pip install cli-anything-gimp
Pré-requisitos:
- Python 3.10+
- gimp é recomendado para renderização nativa em lote, mas composições com camadas podem
ser renderizadas através do caminho interno do Pillow quando o GIMP não estiver disponível ou quando
operações de
drawadiadas estiverem presentes
Uso
Comandos Básicos
# Exibir ajuda
cli-anything-gimp --help
# Iniciar modo REPL interativo
cli-anything-gimp
# Criar um novo projeto
cli-anything-gimp project new -o project.json
# Executar com saída JSON (para consumo por agente)
cli-anything-gimp --json project info -p project.json
Modo REPL
Quando invocada sem um subcomando, a CLI entra em uma sessão REPL interativa:
cli-anything-gimp
# Insira comandos interativamente com autocompletar e histórico
Grupos de Comandos
Projeto
Comandos de gerenciamento de projeto.
| Comando | Descrição |
|---|---|
new | Criar um novo projeto |
open | Abrir um projeto existente |
save | Salvar o projeto atual |
info | Mostrar informações do projeto |
profiles | Listar perfis de canvas disponíveis |
json | Imprimir o JSON bruto do projeto |
Camada
Comandos de gerenciamento de camadas.
| Comando | Descrição |
|---|---|
new | Criar uma nova camada em branco |
add-from-file | Adicionar uma camada a partir de um arquivo de imagem |
list | Listar todas as camadas |
remove | Remover uma camada por índice |
duplicate | Duplicar uma camada |
move | Mover uma camada para uma nova posição |
set | Definir uma propriedade da camada (nome, opacidade, visível, modo, offset_x, offset_y); deslocamentos negativos são aceitos naturalmente |
flatten | Achatar todas as camadas visíveis |
merge-down | Mesclar uma camada com a camada abaixo dela |
Canvas
Operações de canvas.
| Comando | Descrição |
|---|---|
info | Mostrar informações do canvas |
resize | Redimensionar o canvas (sem escalar o conteúdo) |
scale | Escalar o canvas e todo o conteúdo proporcionalmente |
crop | Cortar o canvas em um retângulo |
mode | Definir o modo de cor do canvas |
dpi | Definir o DPI do canvas |
Grupo de Filtros
Comandos de gerenciamento de filtros.
| Comando | Descrição |
|---|---|
list-available | Listar todos os filtros disponíveis |
info | Mostrar detalhes sobre um filtro |
add | Adicionar um filtro a uma camada |
remove | Remover um filtro por índice |
set | Definir um parâmetro de filtro |
list | Listar filtros em uma camada |
Mídia
Operações com arquivos de mídia.
| Comando | Descrição |
|---|---|
probe | Analisar um arquivo de imagem |
list | Listar arquivos de mídia referenciados no projeto |
check | Verificar se todos os arquivos de mídia referenciados existem |
histogram | Mostrar análise de histograma de uma imagem |
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 | Renderizar o projeto para um arquivo de imagem; operações de desenho adiadas são aplicadas no momento da renderização |
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 |
Desenho
Operações de desenho (aplicadas no momento da renderização).
| Comando | Descrição |
|---|---|
text | Desenhar texto em uma camada (convertendo-a para uma camada de texto) |
rect | Desenhar um retângulo (armazenado como operação de desenho) |
Exemplos
Criar um Novo Projeto
Crie um novo arquivo de projeto gimp.
cli-anything-gimp project new -o myproject.json
# Ou com saída JSON para uso programático
cli-anything-gimp --json project new -o myproject.json
Sessão REPL Interativa
Inicie uma sessão interativa com suporte a desfazer/refazer.
cli-anything-gimp
# 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-gimp --project myproject.json export render output.png --overwrite
Fluxo de Trabalho de Composição com Camadas
Para composições com muitas sobreposições:
cli-anything-gimp --project poster.gimp-cli.json layer set 0 offset_x -48
cli-anything-gimp --project poster.gimp-cli.json layer set 0 offset_y 24
cli-anything-gimp --project poster.gimp-cli.json draw text --layer 0 --text "Lançamento Noturno" --x 96 --y 120 --size 72 --color "#f6f1e8"
cli-anything-gimp --project poster.gimp-cli.json export render output.png --overwrite
Notas:
layer setagora aceita valores negativos paraoffset_xeoffset_y, tanto no modo comando quanto no modo REPL.draw textedraw rectsão operações executadas no momento da renderização. Considere a imagem exportada, não apenas o JSON do projeto, como objeto de revisão.- Para projetos com operações de desenho adiadas, espere que o caminho de renderização do Pillow seja o padrão estável, mesmo que o GIMP esteja instalado.
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
- 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-gimp project info -p project.json
# Saída JSON para agentes
cli-anything-gimp --json project info -p project.json
Para Agentes de IA
Ao usar esta CLI programaticamente:
- Sempre use a flag
--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
- Verifique se as saídas existem após operações de exportação
- Revise as saídas renderizadas após alterações de deslocamento, desenho, modo de mesclagem ou filtro, em vez de confiar apenas no estado salvo do projeto
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