Was macht cli-anything-gimp?
Eine zustandsbehaftete Kommandozeilenschnittstelle für Bildbearbeitung, basierend auf Pillow. Entwickelt für KI-Agenten und Power-User, die Bilder ohne GUI erstellen und bearbeiten möchten.
Installation
Diese CLI wird als Teil des Pakets cli-anything-gimp installiert:
pip install cli-anything-gimp
Voraussetzungen:
- Python 3.10+
- gimp wird für nativen Batch-Rendering empfohlen, aber Ebenenkompositionen können auch über den integrierten Pillow-Pfad gerendert werden, wenn GIMP nicht verfügbar ist oder wenn aufgeschobene
draw-Operationen vorhanden sind
Verwendung
Grundlegende Befehle
# Hilfe anzeigen
cli-anything-gimp --help
# Interaktiven REPL-Modus starten
cli-anything-gimp
# Neues Projekt erstellen
cli-anything-gimp project new -o project.json
# Mit JSON-Ausgabe ausführen (für Agenten)
cli-anything-gimp --json project info -p project.json
REPL-Modus
Wenn ohne Unterbefehl aufgerufen, wechselt die CLI in eine interaktive REPL-Sitzung:
cli-anything-gimp
# Befehle interaktiv eingeben mit Tab-Vervollständigung und Verlauf
Befehlskategorien
Projekt
Befehle zur Projektverwaltung.
| Befehl | Beschreibung |
|---|---|
new | Ein neues Projekt erstellen |
open | Ein vorhandenes Projekt öffnen |
save | Das aktuelle Projekt speichern |
info | Projektinformationen anzeigen |
profiles | Verfügbare Leinwandprofile auflisten |
json | Roh-Projekt-JSON ausgeben |
Ebene
Befehle zur Ebenenverwaltung.
| Befehl | Beschreibung |
|---|---|
new | Eine neue leere Ebene erstellen |
add-from-file | Eine Ebene aus einer Bilddatei hinzufügen |
list | Alle Ebenen auflisten |
remove | Eine Ebene nach Index entfernen |
duplicate | Eine Ebene duplizieren |
move | Eine Ebene an eine neue Position verschieben |
set | Eine Ebeneneigenschaft setzen (Name, Deckkraft, sichtbar, Modus, offset_x, offset_y); negative Offsets werden natürlich akzeptiert |
flatten | Alle sichtbaren Ebenen zusammenführen |
merge-down | Eine Ebene mit der darunter liegenden zusammenführen |
Leinwand
Leinwandoperationen.
| Befehl | Beschreibung |
|---|---|
info | Leinwandinformationen anzeigen |
resize | Die Leinwandgröße ändern (ohne Inhalt zu skalieren) |
scale | Die Leinwand und den gesamten Inhalt proportional skalieren |
crop | Die Leinwand auf ein Rechteck zuschneiden |
mode | Den Farbmodus der Leinwand setzen |
dpi | Die DPI der Leinwand setzen |
Filter-Kategorie
Befehle zur Filterverwaltung.
| Befehl | Beschreibung |
|---|---|
list-available | Alle verfügbaren Filter auflisten |
info | Details zu einem Filter anzeigen |
add | Einen Filter zu einer Ebene hinzufügen |
remove | Einen Filter nach Index entfernen |
set | Einen Filterparameter setzen |
list | Filter auf einer Ebene auflisten |
Medien
Operationen für Mediendateien.
| Befehl | Beschreibung |
|---|---|
probe | Eine Bilddatei analysieren |
list | Im Projekt referenzierte Mediendateien auflisten |
check | Prüfen, ob alle referenzierten Mediendateien existieren |
histogram | Histogrammanalyse eines Bildes anzeigen |
Export-Kategorie
Befehle zum Exportieren/Rendern.
| Befehl | Beschreibung |
|---|---|
presets | Export-Voreinstellungen auflisten |
preset-info | Details einer Voreinstellung anzeigen |
render | Das Projekt in eine Bilddatei rendern; aufgeschobene Zeichenoperationen werden zur Render-Zeit angewendet |
Sitzung
Befehle zur Sitzungsverwaltung.
| Befehl | Beschreibung |
|---|---|
status | Sitzungsstatus anzeigen |
undo | Die letzte Operation rückgängig machen |
redo | Die letzte rückgängig gemachte Operation wiederherstellen |
history | Undo-Verlauf anzeigen |
Zeichnen
Zeichenoperationen (werden zur Render-Zeit angewendet).
| Befehl | Beschreibung |
|---|---|
text | Text auf eine Ebene zeichnen (durch Konvertierung in eine Textebene) |
rect | Ein Rechteck zeichnen (als Zeichenoperation gespeichert) |
Beispiele
Ein neues Projekt erstellen
Eine neue GIMP-Projektdatei erstellen.
cli-anything-gimp project new -o myproject.json
# Oder mit JSON-Ausgabe für programmatische Nutzung
cli-anything-gimp --json project new -o myproject.json
Interaktive REPL-Sitzung
Eine interaktive Sitzung mit Undo/Redo-Unterstützung starten.
cli-anything-gimp
# Befehle interaktiv eingeben
# 'help' für verfügbare Befehle verwenden
# 'undo' und 'redo' für Verlaufsnavigation verwenden
Projekt exportieren
Das Projekt in ein endgültiges Ausgabeformat exportieren.
cli-anything-gimp --project myproject.json export render output.png --overwrite
Workflow für geschichtete Kompositionen
Für überlagerungsintensive Kompositionen:
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 "Launch Night" --x 96 --y 120 --size 72 --color "#f6f1e8"
cli-anything-gimp --project poster.gimp-cli.json export render output.png --overwrite
Hinweise:
layer setakzeptiert jetzt negativeoffset_x- undoffset_y-Werte sowohl im Befehls- als auch im REPL-Modus.draw textunddraw rectsind Rendering-Zeit-Operationen. Behandle das exportierte Bild, nicht nur das Projekt-JSON, als das zu überprüfende Objekt.- Bei Projekten mit aufgeschobenen Zeichenoperationen ist der Pillow-Render-Pfad der stabile Standard, auch wenn GIMP installiert ist.
Zustandsverwaltung
Die CLI verwaltet den Sitzungszustand mit:
- Undo/Redo: Bis zu 50 Verlaufsebenen
- Projektpersistenz: Projektstatus als JSON speichern/laden
- Sitzungsverfolgung: Änderungen und Modifikationen verfolgen
Ausgabeformate
Alle Befehle unterstützen zwei Ausgabemodi:
- Menschenlesbar (Standard): Tabellen, Farben, formatierter Text
- Maschinenlesbar (
--json-Flag): Strukturiertes JSON für Agenten
# Menschliche Ausgabe
cli-anything-gimp project info -p project.json
# JSON-Ausgabe für Agenten
cli-anything-gimp --json project info -p project.json
Für KI-Agenten
Bei programmatischer Nutzung dieser CLI:
- Immer das
--json-Flag verwenden für analysierbare Ausgabe - Rückgabecodes prüfen – 0 für Erfolg, nicht-null für Fehler
- stderr parsen für Fehlermeldungen bei Fehlschlag
- Absolute Pfade verwenden für alle Dateioperationen
- Ausgaben auf Existenz prüfen nach Exportoperationen
- Gerenderte Ausgaben überprüfen nach Offset-, Zeichen-, Mischmodus- oder Filteränderungen, anstatt sich allein auf den gespeicherten Projektstatus zu verlassen
Weitere Informationen
- Vollständige Dokumentation: Siehe README.md im Paket
- Testabdeckung: Siehe TEST.md im Paket
- Methodik: Siehe HARNESS.md im cli-anything-plugin
Version
1.0.0