CommunitySchreiben & Editierengithub.com

ubie-oss/n8n-cli

Ein eigenständiges CLI-Tool für n8n

Was ist n8n-cli?

Dieses Skill für n8n-cli ermöglicht Entwicklern und KI-Assistenten die umfassende Verwaltung von n8n-Workflows über die Kommandozeile. Es unterstützt die Konfiguration von API-Verbindungen, den Abruf und Import von Workflows, die Durchführung von Änderungen mit Dry-Run-Prüfung sowie das Deployment von Workflows mit differenzierten Optionen wie „--ids" zur gezielten Steuerung. Zusätzlich bietet das Skill eine eingebaute Linter-Engine mit 11 Regeln zur Sicherstellung der Workflow-Qualität sowie Formatierungs- und Testfunktionen. Dank der automatischen Update-Logik und des lokalen Builds aus dem Quellcode ist das Tool immer auf dem neuesten Stand. Die Plattformen umfassen macOS (arm64, x64) und Linux (arm64, x64).

Funktioniert mit✓Claude Code~Codex CLI~Cursor
npx skills add ubie-oss/n8n-cli

Installed? Explore more Schreiben & Editieren skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

n8n-cli Operations-Skill

Ein Skill zur Unterstützung der Workflow-Verwaltung mit n8n-cli (TypeScript/Bun).

Sitzungsinitialisierung (Wichtig)

Führen Sie bei neuen Sitzungen immer zuerst Folgendes aus, um sicherzustellen, dass n8n-cli auf dem neuesten Stand ist.

Priorität 1: Aus lokaler Quelle erstellen (Entwicklung)

Wenn das n8n-cli-Quellrepository über add-dir verfügbar ist (z. B. /pfad/zu/n8n-cli/Makefile existiert), erstellen Sie aus der lokalen Quelle anstatt ein Release zu verwenden. Dadurch werden die neuesten Entwicklungsänderungen sofort übernommen.

# Wenn n8n-cli Repo über add-dir sichtbar ist
N8N_CLI_REPO="/pfad/zu/n8n-cli"  # Durch add-dir-Pfad ersetzen
if [ -f "$N8N_CLI_REPO/Makefile" ]; then
  echo "Erstelle n8n-cli aus lokaler Quelle: $N8N_CLI_REPO"
  cd "$N8N_CLI_REPO" && bun install && make build
  cp "$N8N_CLI_REPO/n8n-cli" /pfad/zu/ziel/n8n-cli
  cd /pfad/zu/ziel
  echo "Aus lokaler Quelle erstellt: $(./n8n-cli version 2>/dev/null | head -1)"
fi

Priorität 2: Automatisches Update von GitHub Releases (bevorzugt)

Vorgefertigte Binärdateien sind auf GitHub Releases verfügbar. Dies ist schneller als das Erstellen aus der Quelle und stellt sicher, dass Sie das offizielle Release ausführen.

# 1. Die neueste Release-Version prüfen
LATEST_TAG=$(gh release view --repo ubie-oss/n8n-cli --json tagName -q '.tagName' 2>/dev/null)

# 2. Aktuelle lokale Version prüfen (wenn Binärdatei existiert)
CURRENT_VERSION=""
if [ -x ./n8n-cli ]; then
  CURRENT_VERSION=$(./n8n-cli version 2>/dev/null | head -1 | grep -oE 'v[0-9]+\.[0-9]+\.[0-9]+' || echo "")
fi

# 3. Vergleichen und bei Bedarf herunterladen
if [ -z "$CURRENT_VERSION" ] || [ "$CURRENT_VERSION" != "$LATEST_TAG" ]; then
  echo "Aktualisiere n8n-cli: ${CURRENT_VERSION:-keine} -> ${LATEST_TAG}"

  # Plattform erkennen
  ARCH=$(uname -m)
  OS=$(uname -s | tr '[:upper:]' '[:lower:]')
  case "$ARCH" in
    arm64|aarch64) ASSET_NAME="n8n-cli-${OS}-arm64" ;;
    x86_64)        ASSET_NAME="n8n-cli-${OS}-x64" ;;
    *)             echo "Nicht unterstützte Architektur: $ARCH"; exit 1 ;;
  esac

  # Binärdatei herunterladen
  gh release download "$LATEST_TAG" --repo ubie-oss/n8n-cli --pattern "$ASSET_NAME" --output n8n-cli --clobber
  chmod +x ./n8n-cli
  echo "Aktualisiert auf $(./n8n-cli version 2>/dev/null | head -1)"
else
  echo "n8n-cli ist aktuell: $CURRENT_VERSION"
fi

Fallback: Aus Quelle erstellen

Wenn die gh CLI nicht verfügbar ist oder Sie einen Entwicklungsbuild benötigen:

# Abhängigkeiten installieren + CLI erstellen
bun install && make build

Build-Überprüfung:

./n8n-cli version

Umgebungseinrichtung

Prüfen der .env-Datei

Wenn .env im Projektstammverzeichnis existiert, kann n8n-cli ohne Angabe von Parametern verwendet werden. Lesen Sie den Inhalt nicht.

# Nur auf Existenz von .env prüfen (Inhalt nicht lesen)
test -f .env && echo ".env existiert - n8n-cli kann ohne Parameter verwendet werden"

Wenn .env existiert:

  • N8N_API_URL und N8N_API_KEY sind bereits konfiguriert
  • ./n8n-cli kann ohne Parameter ausgeführt werden

Wenn .env nicht existiert:

  • Fordern Sie den Benutzer auf, eine .env-Datei zu erstellen
  • Oder verwenden Sie die Flags --api-url und --api-key

Erstellen von .env (nur bei Bedarf)

cp .env.example .env
# Bitten Sie den Benutzer, die Datei zu bearbeiten

Häufige Befehle

1. Status von Remote-Workflows prüfen

Einen bestimmten Workflow prüfen:

# Workflow-Info nach ID abrufen
./n8n-cli workflow get <workflow-id>

# In Tabellenformat für Lesbarkeit anzeigen
./n8n-cli -o table workflow get <workflow-id>

# In Datei speichern (nützlich für Diff-Vergleiche)
./n8n-cli workflow get <workflow-id> > /tmp/remote-workflow.json

Workflows auflisten:

# Alle Workflows
./n8n-cli workflow list

# Tabellenformat
./n8n-cli -o table workflow list

# Nur aktive
./n8n-cli workflow list --active

2. Workflows importieren (Remote -> Lokal)

Lokales Format vor dem Import prüfen

Beim Abrufen von Remote-Inhalten ins Lokale führen Sie immer folgende Schritte aus:

  1. Lokales Dateiformat prüfen

    # Prüfen, ob Datei existiert und ihr Format
    ls -la definitions/*<workflow-id>* definitions/**/*<workflow-id>*
    
  2. Geeignete Import-Optionen basierend auf Format verwenden

    • .json-Dateien: nur --ids verwenden
    • .yaml/.yml-Dateien: sowohl --ids als auch --yaml verwenden

Einen bestimmten Workflow importieren:

# Workflow im JSON-Format
./n8n-cli import --ids=<workflow-id>

# Workflow im YAML-Format
./n8n-cli import --ids=<workflow-id> --yaml

# In ein benutzerdefiniertes Verzeichnis
./n8n-cli import --ids=<workflow-id> -d ./mein-verz

Mehrere Workflows importieren:

# Kommagetrennte Liste
./n8n-cli import --ids=abc123,def456,ghi789

Alle Workflows importieren:

./n8n-cli import

Zusätzliche Optionen:

OptionBeschreibung
--include-archivedArchivierte Workflows einschließen
--cleanup-orphansVerwaiste Dateien ohne passende IDs löschen
-t, --threshold <int>Mindestzeilen für die externe Dateiextraktion (Standard: 0, in CLAUDE.md konfigurierbar)
--dry-runNur Vorschau (keine Dateiänderungen)
--tags <tags>Nach kommagetrennten Tagnamen filtern (UND-Bedingung)

3. Dry-Run (Änderungsvorschau)

Vor der Anwendung immer mit Dry-Run überprüfen:

# Vorschau der Änderungen für alle Workflows
./n8n-cli apply --dry-run

# Nur für einen bestimmten Workflow (nach ID)
./n8n-cli apply --dry-run --ids=<workflow-id>

# Nur für eine bestimmte Datei
./n8n-cli apply --dry-run -d definitions/pfad/zum/workflow.json

Beispielausgabe:

=== ERSTELLEN (1 Workflow) ===
  + neuer-workflow.json (name: "Neue Automatisierung")

=== AKTUALISIEREN (2 Workflows) ===
  ~ vorhanden.json (id: R2cTI0LDzCJSnvNG)
    - name: "Alter Name" -> "Neuer Name"
    - nodes: 3 -> 5 nodes

=== ÜBERSPRINGEN (1 Workflow) ===
  = unverändert.json (keine Änderungen)

Zusammenfassung (Dry-Run): 1 zu erstellen, 2 zu aktualisieren, 1 unverändert

4. Anwenden (Deployment)

KI-Assistenten müssen immer --ids verwenden

# Nur einen bestimmten Workflow anwenden (empfohlen)
./n8n-cli apply --ids=<workflow-id>

# Nur eine bestimmte Datei anwenden
./n8n-cli apply -d definitions/pfad/zum/workflow.json

# Erzwungenes Anwenden (Remote-Änderungen überschreiben)
./n8n-cli apply --ids=<workflow-id> --force

Verboten: Anwenden auf ein ganzes Verzeichnis

# Diese dürfen NICHT von der KI ausgeführt werden
./n8n-cli apply -d definitions/
./n8n-cli apply

Zusätzliche Optionen:

OptionBeschreibung
--from-git-changes <spec>Nur in Git Diff geänderte Dateien anwenden
--yaml / --no-yamlYAML-Verarbeitung aktivieren/deaktivieren
--allow-duplicatesDie vorgelagerte Duplikatnamen-Prüfung überspringen (Standard: an; verwenden Sie --force, um Warnungen zu überschreiten, anstatt die Prüfung zu deaktivieren)
--no-auto-tagAutomatische Tag-Erstellung deaktivieren (managed-as-code)
-p, --project <id>Zielprojekt-ID angeben

Umgebungsvariablen:

  • APPLY_FILTER_BY_TAGS - Nach kommagetrennten Tagnamen filtern (UND-Bedingung)

Git-Diff-Modus:

# Nur Änderungen aus einem Feature-Branch anwenden
./n8n-cli apply --from-git-changes origin/main..HEAD

# Vorschau
./n8n-cli apply --from-git-changes origin/main..HEAD --dry-run

# Änderungen aus den letzten 3 Commits
./n8n-cli apply --from-git-changes HEAD~3..HEAD

3-Wege-Konflikterkennung: Wenn --from-git-changes angegeben wird, werden Konflikte erkannt, indem Basis (Referenzpunkt), Lokal (aktuell) und Remote (Server) verglichen werden, um nur echte Konflikte zu identifizieren.

5. Linter (Qualitätsprüfungen)

Der Linter ist in die CLI integriert. Kein separater Build erforderlich.

Hinweis: Positionsargumente werden nicht unterstützt. Geben Sie Dateien/Verzeichnisse immer mit -f oder -d an.

# Eine bestimmte Datei prüfen (-f erforderlich)
./n8n-cli lint -f definitions/<dateiname>

# Ein bestimmtes Verzeichnis prüfen
./n8n-cli lint -d ./definitions/beispiel-projekt

# Alle Workflows prüfen
./n8n-cli lint -d ./definitions

# JSON-Ausgabe (für CI/CD)
./n8n-cli lint -d ./definitions -o json

Optionen:

OptionBeschreibung
-d, --dir <pfad>Verzeichnis der Definitionsdateien
-f, --file <dateien...>Bestimmte Datei(en)
-c, --config <pfad>Konfigurationsdateipfad (.n8nlintrc.json)
--disable-rule <name>Bestimmte Regel(n) deaktivieren
--list-rulesAlle Regeln auflisten
-o, --output <format>Ausgabeformat: text, json (Standard: text)

Regeln (11 Regeln):

RegelSchweregradBeschreibung
json-syntaxFehlerJSON-Syntaxprüfung
required-fieldsFehlerPrüfung auf erforderliche Felder (name, nodes, connections)
connection-referenceFehlerPrüfung auf Existenz des Verbindungszielknotens
webhook-id-requiredFehlerPrüfung, ob Webhook- und formTrigger-Knoten das Feld webhookId haben
orphaned-nodeWarnungErkennung verwaister Knoten
implicit-json-refWarnungErkennung impliziter $json-Referenzen
expression-mode-prefixWarnungErkennung fehlender =-Präfixe
ai-agent-output-refWarnungErkennung von Fehlverweisen auf KI-Agentenausgaben
node-paramsWarnungValidierung des Knotenparameterschemas
node-ref-field-checkWarnungValidierung der Existenz referenzierter Felder
node-ref-cardinalityWarnungValidierung der .item/.first()-Verwendung

Konfigurationsdatei (.n8nlintrc.json):

{
  "rules": {
    "json-syntax": "error",
    "required-fields": "error",
    "orphaned-node": "warning",
    "implicit-json-ref": "off"
  }
}

Suchreihenfolge der Konfigurationsdatei:

  1. Mit --config-Flag angegebener Pfad
  2. .n8nlintrc.json / .n8nlintrc im Zielverzeichnis
  3. .n8nlintrc.json / .n8nlintrc im aktuellen Verzeichnis

6. Formatierer (Auto-Formatierung)

Hinweis: fmt akzeptiert Positionsargumente für Dateien (keine -f-Option).

# Eine bestimmte Datei formatieren (Positionsargument)
./n8n-cli fmt definitions/<dateiname>

# Mehrere Dateien
./n8n-cli fmt definitions/datei1.yaml definitions/datei2.yaml

# Ein ganzes Verzeichnis formatieren
./n8n-cli fmt -d ./definitions

# Nur Vorschau
./n8n-cli fmt -d ./definitions --dry-run

7. Testen (Ausführung)

Workflows über Test-Webhooks testen:

# Basistest
./n8n-cli test <workflow-id>

# Mit Testdaten
./n8n-cli test <workflow-id> -d '{"email": "[email protected]"}'

# Auf Ausführungsende warten (empfohlen)
./n8n-cli test <workflow-id> --wait-execution

# Inaktive Workflows automatisch aktivieren
./n8n-cli test <workflow-id> --activate

# Nur Webhook-URL prüfen
./n8n-cli test <workflow-id> --dry-run

# Eingabeparameter prüfen
./n8n-cli test <workflow-id> --show-inputs

Optionen:

OptionBeschreibung
-d, --data <json>Testdaten (JSON-String)
--timeout <dauer>HTTP-Timeout (Standard: 30s)
--wait-executionAuf Ausführungsende warten und Ergebnisse anzeigen
--activateInaktive Workflows automatisch aktivieren
--dry-runNur Webhook-URL prüfen
--show-inputsEingabeparameter anzeigen
-o, --output <fmt>Ausgabeformat: json, table (Standard: json)

Test aus einer lokalen Datei:

# Eine lokale JSON/YAML-Datei angeben
./n8n-cli test ./definitions/mein-workflow.json

8. Ausführung (Protokolle & Fehler)

Letzte Ausführungen auflisten:

# Alle letzten Ausführungen auflisten
./n8n-cli execution list

# Tabellenformat für Lesbarkeit
./n8n-cli -o table execution list

# Nach Status filtern
./n8n-cli execution list --status error
./n8n-cli execution list --status success

# Nach Workflow filtern
./n8n-cli execution list --workflow <workflow-id>

# Ergebnisse begrenzen
./n8n-cli execution list --limit 5

# Kombinierte Filter
./n8n-cli execution list --workflow <workflow-id> --status error --limit 10

Ausführungsdetails abrufen:

# Ausführung nach ID abrufen
./n8n-cli execution get <execution-id>

# Tabellenformat mit Fehlerdetails
./n8n-cli -o table execution get <execution-id>

# Knotenausführungszusammenfassung einschließen
./n8n-cli -o table execution get <execution-id> --show-data

Optionen für execution list:

OptionBeschreibung
-w, --workflow <id>Nach Workflow-ID filtern
-s, --status <status>Nach Status filtern (success, error, running, waiting)
-l, --limit <n>Maximale Anzahl von Ausführungen (Standard: 20)

Optionen für execution get:

OptionBeschreibung
--show-dataKnotenausführungszusammenfassung in die Ausgabe einschließen

Angezeigte Fehlerinformationen:

FeldBeschreibung
FehlerknotenDer Knoten, in dem der Fehler aufgetreten ist
FehlermeldungDie Fehlermeldung
FehlerdetailsZusätzliche Fehlerbeschreibung (falls verfügbar)
Letzter KnotenDer zuletzt ausgeführte Knoten

Typischer Debugging-Workflow:

# 1. Letzte Fehler auflisten
./n8n-cli -o table execution list --status error --limit 5

# 2. Details einer bestimmten fehlgeschlagenen Ausführung abrufen
./n8n-cli -o table execution get <execution-id> --show-data

# 3. Fehlerdetails überprüfen und Workflow korrigieren

9. Konvertieren (Formatkonvertierung)

Workflow-Dateien zwischen JSON- und YAML-Formaten konvertieren (nur lokal, keine API erforderlich):

# Alle JSON-Workflows nach YAML konvertieren
./n8n-cli convert -d ./definitions --format yaml

# Bestimmte Workflows nach ID konvertieren
./n8n-cli convert -d ./definitions --format json --ids <workflow-id>

# Vorschau ohne Schreiben
./n8n-cli convert -d ./definitions --format yaml --dry-run

# Originaldateien behalten
./n8n-cli convert -d ./definitions --format yaml --keep

# Eine einzelne Datei konvertieren
./n8n-cli convert --format yaml definitions/<dateiname>.json

Optionen:

OptionBeschreibung
--format <format>Zielformat: json, yaml (erforderlich)
-d, --directory <verz>Verzeichnis zum Durchsuchen von Workflow-Dateien
--ids <ids>Kommagetrennte Workflow-IDs zum Konvertieren
--tags <tags>Nach Tags filtern (kommagetrennt, UND-Bedingung)
-t, --threshold <n>Mindestzeilen für Code-Externalisierung (JSON→YAML)
--dry-runNur Vorschau
--keepOriginaldateien behalten

Verhalten:

  • JSON→YAML: erzeugt YAML + _subfiles/ mit externalisiertem Code
  • YAML→JSON: löst !include-Referenzen auf und entfernt _subfiles/
  • Dateien, die bereits im Zielformat vorliegen, werden übersprungen
  • Originaldateien werden nach der Konvertierung entfernt, außer bei --keep

10. Datentabellen

Datentabellen und Zeilen verwalten:

# Alle Datentabellen auflisten
./n8n-
...

Verwandte Skills