Was macht cli-anything-inkscape?
Eine zustandsbehaftete Kommandozeilenschnittstelle für die Vektorgrafik-Bearbeitung, die denselben Mustern folgt wie die GIMP- und Blender-CLI-Harnesses. Sie manipuliert direkt SVG (XML)-Dokumente mit einem JSON-Projektformat für die Zustandsverfolgung.
Installation
Diese CLI wird als Teil des Pakets cli-anything-inkscape installiert:
pip install cli-anything-inkscape
Voraussetzungen:
- Python 3.10+
- inkscape muss auf Ihrem System installiert sein
Verwendung
Grundlegende Befehle
# Hilfe anzeigen
cli-anything-inkscape --help
# Interaktiven REPL-Modus starten
cli-anything-inkscape
# Ein neues Dokument erstellen
cli-anything-inkscape document new -o project.json
# Mit JSON-Ausgabe (für Agenten) ausführen
cli-anything-inkscape --json document info -p project.json
REPL-Modus
Wenn die CLI ohne Unterbefehl aufgerufen wird, startet sie eine interaktive REPL-Sitzung:
cli-anything-inkscape
# Befehle interaktiv mit Tab-Vervollständigung und Verlauf eingeben
Sie können die REPL auch mit einem nicht existierenden Projektpfad starten. Die CLI erzeugt dann ein neues In-Memory-Dokument, anstatt sofort zu scheitern:
cli-anything-inkscape --project /abs/path/new-title.inkscape-cli.json
Befehlsgruppen
Dokument
Befehle zur Dokumentverwaltung.
| Befehl | Beschreibung |
|---|---|
new | Neues Dokument erstellen |
open | Vorhandenes Projekt öffnen |
save | Aktuelles Projekt speichern |
info | Dokumentinformationen anzeigen |
profiles | Verfügbare Dokumentprofile auflisten |
canvas-size | Leinwandgröße festlegen |
units | Dokumenteinheiten festlegen |
json | Rohes Projekt-JSON ausgeben |
Formen
Befehle zur Formverwaltung.
| Befehl | Beschreibung |
|---|---|
add-rect | Rechteck hinzufügen |
add-circle | Kreis hinzufügen |
add-ellipse | Ellipse hinzufügen |
add-line | Linie hinzufügen |
add-polygon | Polygon hinzufügen |
add-path | Pfad hinzufügen |
add-star | Stern hinzufügen |
remove | Form nach Index entfernen |
duplicate | Form duplizieren |
list | Alle Formen/Objekte auflisten |
get | Detaillierte Informationen zu einer Form abrufen |
Text
Befehle zur Textverwaltung.
| Befehl | Beschreibung |
|---|---|
add | Textelement hinzufügen; unterstützt --box-width, --box-height und --line-height für umbrochene Layouts |
set | Texteigenschaft festlegen (Text, Schriftart, Schriftgröße, Füllung, Boxbreite, Boxhöhe, Zeilenhöhe usw.) |
list | Alle Textobjekte auflisten |
Stil
Befehle zur Stilverwaltung.
| Befehl | Beschreibung |
|---|---|
set-fill | Füllfarbe eines Objekts festlegen |
set-stroke | Konturfarbe (und optional -breite) eines Objekts festlegen |
set-opacity | Deckkraft eines Objekts festlegen (0.0-1.0) |
set | Beliebige Stileigenschaft eines Objekts festlegen |
get | Stileigenschaften eines Objekts abrufen |
list-properties | Alle verfügbaren Stileigenschaften auflisten |
Transformation
Transformationsoperationen (Verschieben, Drehen, Skalieren, Scheren).
| Befehl | Beschreibung |
|---|---|
translate | Objekt verschieben |
rotate | Objekt drehen |
scale | Objekt skalieren |
skew-x | Objekt horizontal scheren |
skew-y | Objekt vertikal scheren |
get | Aktuelle Transformation eines Objekts abrufen |
clear | Alle Transformationen eines Objekts zurücksetzen |
Ebene
Befehle zur Ebenenverwaltung.
| Befehl | Beschreibung |
|---|---|
add | Neue Ebene hinzufügen |
remove | Ebene nach Index entfernen |
move-object | Objekt in eine andere Ebene verschieben |
set | Ebeneneigenschaft festlegen (Name, sichtbar, gesperrt, Deckkraft) |
list | Alle Ebenen auflisten |
reorder | Ebene von einer Position an eine andere verschieben |
get | Detaillierte Informationen zu einer Ebene abrufen |
Pfadgruppe
Boolesche Pfadoperationen.
| Befehl | Beschreibung |
|---|---|
union | Vereinigung zweier Objekte |
intersection | Schnittmenge zweier Objekte |
difference | Differenz zweier Objekte (A minus B) |
exclusion | Exklusion (XOR) zweier Objekte |
convert | Form in Pfad umwandeln |
list-operations | Verfügbare boolesche Pfadoperationen auflisten |
Verlauf
Befehle zur Verlaufsverwaltung.
| Befehl | Beschreibung |
|---|---|
add-linear | Linearen Verlauf hinzufügen |
add-radial | Radialen Verlauf hinzufügen |
apply | Verlauf auf ein Objekt anwenden |
list | Alle Verläufe auflisten |
Exportgruppe
Export-/Renderbefehle.
| Befehl | Beschreibung |
|---|---|
png | Dokument als PNG rendern |
svg | Dokument als SVG exportieren |
pdf | Dokument als PDF exportieren (erfordert Inkscape) |
presets | Exportvoreinstellungen auflisten |
Sitzung
Befehle zur Sitzungsverwaltung.
| Befehl | Beschreibung |
|---|---|
status | Sitzungsstatus anzeigen |
undo | Letzte Aktion rückgängig machen |
redo | Letzte rückgängig gemachte Aktion wiederholen |
history | Rückgängig-Verlauf anzeigen |
Beispiele
Neues Projekt erstellen
Erstellen Sie eine neue Inkscape-Projektdatei.
cli-anything-inkscape document new -o myproject.json
# Oder mit JSON-Ausgabe für programmatische Nutzung
cli-anything-inkscape --json document new -o myproject.json
Interaktive REPL-Sitzung
Starten Sie eine interaktive Sitzung mit Unterstützung für Rückgängig/Wiederholen.
cli-anything-inkscape
# Befehle interaktiv eingeben
# 'help' verwenden, um verfügbare Befehle anzuzeigen
# 'undo' und 'redo' für die Verlaufsnavigation verwenden
Projekt exportieren
Exportieren Sie das Projekt in ein endgültiges Ausgabeformat.
cli-anything-inkscape --project myproject.json export pdf output.pdf --overwrite
Umbruchender Text-Layout
Für Titel-Karten, Chips und portrait-sichere Panels bevorzugen Sie umbrechende Textboxen anstelle manueller Zeilenumbrüche:
cli-anything-inkscape --project title.json text add \
--text "Real capture + Veo cold open + Gemini score + thumbnail plate" \
--x 180 --y 470 --font-size 118 \
--box-width 1180 --box-height 260 --line-height 1.05
cli-anything-inkscape --project title.json text set 0 box-width 980
cli-anything-inkscape --project title.json text set 0 line-height 1.15
Hinweise:
box-widthbricht lange Texte in mehrere exportierte SVGtspan-Zeilen um.box-heightlässt lange Texte sicher fehlschlagen, anstatt über die Leinwand zu laufen.- Verwenden Sie umbrechende Textboxen für Grafiken mit langem Text, bevor Sie manuelle Zeilenumbrüche in Betracht ziehen.
Zustandsverwaltung
Die CLI verwaltet den Sitzungszustand mit:
- Rückgängig/Wiederholen: Bis zu 50 Verlaufsebenen
- Projektpersistenz: Projektzustand 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-inkscape project info -p project.json
# JSON-Ausgabe für Agenten
cli-anything-inkscape --json project info -p project.json
Für KI-Agenten
Wenn Sie diese CLI programmatisch verwenden:
- Verwenden Sie immer das
--json-Flag für analysierbare Ausgabe - Prüfen Sie die Rückgabecodes – 0 für Erfolg, ungleich 0 für Fehler
- Analysieren Sie stderr auf Fehlermeldungen bei Misserfolg
- Verwenden Sie absolute Pfade für alle Dateioperationen
- Überprüfen Sie, ob Ausgaben existieren nach Exportvorgängen
- Bevorzugen Sie umbrechende Textboxen für Überschriften und variable Textlängen, damit Layouts bei Bearbeitungen stabil bleiben
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.1