Seiten der Referenz

CLI-Referenz · Befehle

task

Tasks anlegen, übernehmen, verschieben und abschließen. Das sind die Befehle, die Agenten am häufigsten benutzen, vor allem task create, task start und task done.

Welcher Task gemeint ist

Task-Nummern gelten für den ganzen Workspace, nicht je Projekt. Bei show, start, move, done, comment, attach und edit ist die Nummer optional. Ohne Nummer nimmt die CLI den laufenden Task im Projekt aus der .workban.toml, den auch workban task current zeigt: meinen Task auf In Progress, Testing oder On Hold, und zwar

  1. den auf dem aktuellen Git-Branch,
  2. sonst den einzigen offenen,
  3. sonst den einzigen auf In Progress.

Bleibt es mehrdeutig, verlangt die CLI die Nummer (Exit-Code 2), damit ein Befehl nie auf dem falschen Task landet. Statt der Nummer geht überall auch die ID des Tasks.

workban task create

Legt einen Task an. Mit --start steht er sofort auf In Progress, gehört dem Token-Inhaber und bekommt Branch und Idempotenz-Schlüssel aus Git.

workban task create <title> [Optionen]

Argumente

  • <title>Pflicht

Optionen

  • --description <text>Wert
    Beschreibung inline
  • --description-file <path>Wert
    Beschreibung aus Datei
  • --stdinSchalter
    Beschreibung von stdin lesen
  • --project <slug>Wert
    sonst aus .workban.toml
  • --startSchalter
    direkt auf in_progress, Assignee = ich
  • --assignee [wer]optionaler Wert
    me oder Benutzername, ohne Wert eine Auswahl; ohne --start bleibt der Task sonst unzugewiesen
  • --agent <type>Wert
    wer arbeitetWerte: claude-code · codex · other · human
  • --branch <name>Wert
    mit --start sonst der aktuelle Git-Branch
  • --ref <external_ref>Wert
    Idempotenz-Schlüssel, mit --start sonst der Branch
  • --no-branch-detectSchalter
    Branch auch mit --start nicht aus Git ableiten
  • --keep-pathsSchalter
    lokale Pfade in Titel, Beschreibung oder Kommentar stehen lassen

Die Beschreibung kommt aus --description, --description-file oder --stdin. Für Agenten ist --stdin mit Heredoc der beste Weg, weil keine Datei entsteht, die jemand aufräumen muss.

  • Idempotent: Mit --start (oder --ref) gibt es je Branch nur einen offenen Task. Ein zweiter Aufruf gibt den bestehenden zurück, meldet existing task #42 reused und reused: true in der JSON-Antwort. Exit-Code bleibt 0.
  • Branch: Mit --start liest die CLI den aktuellen Git-Branch, außer auf main, master und develop. Ohne --start bekommt der Task keinen Branch.
  • Zuweisen ohne Start: --assignee me oder ein Benutzername. Ohne Wert erscheint im Terminal eine nummerierte Auswahl der Mitglieder (n steht für niemand). Ohne Terminal bricht das mit Exit-Code 2 ab und nennt die Benutzernamen.
  • Lokale Pfade in Titel und Beschreibung räumt die CLI vorher auf, siehe Lokale Pfade.

Beispiele

# Agent beginnt neue Arbeit: Task anlegen und sofort starten
workban task create "Login-Redirect nach Magic Link fixen" --stdin --start --agent claude-code --json <<'EOF'
Nach dem Klick auf den Magic Link landet man wieder auf /login.
EOF

# Ticket nur vormerken, im Backlog für mich
workban task create "Passkey-Login in Safari testen" --assignee me

workban task list

Listet Tasks als kompakte Tabelle. Standard ist das Projekt aus der .workban.toml, ohne erledigte Tasks, höchstens 50.

workban task list [Optionen]

Optionen

  • --mineSchalter
    nur meine
  • --status <list>Wert
    kommagetrennt, z. B. in_progress,testing
  • --project <slug>Wert
    nur dieses Projekt (Standard: das Projekt aus .workban.toml)
  • --all-projectsSchalter
    Tasks aller Projekte, auch in einem Repo mit .workban.toml
  • --archivedSchalter
    auch Tasks archivierter Projekte
  • --allSchalter
    auch erledigte (Standard: ohne done)
  • --limit <n>Wert
    max. AnzahlStandard: 50

--all-projects zeigt alle Projekte, auch in einem Repo mit .workban.toml, --archived auch Tasks archivierter Projekte, --all auch erledigte.

workban task list --mine
workban task list --status in_progress,testing --all-projects
#42  in_progress  workban   Login-Redirect nach Magic Link fixen    claude-code  fix/auth-redirect-loop  läuft 22m
#39  done         screenway Slider-Animation auf Safari             codex        feat/slider             1h 12m

workban task current

Zeigt meinen laufenden Task in diesem Projekt, nach den Regeln aus Welcher Task gemeint ist. Gibt es keinen, endet der Befehl mit Exit-Code 2 und nennt workban task start <nr>. Gibt es mehrere, nennt er ihre Nummern.

workban task current

workban task show

Zeigt einen Task mit Beschreibung, Kommentaren und Anhängen, ohne Nummer den laufenden.

workban task show [id] [Optionen]

Argumente

  • [id]optional

Optionen

  • --download [dir]optionaler Wert
    Anhänge laden; ohne Ordner in einen neuen privaten Ordner (Pfade unter downloaded)

--download lädt die Anhänge herunter. Ohne Ordner landen sie in einem neuen privaten Ordner (Rechte 0700), die Pfade stehen in der JSON-Antwort unter downloaded.

workban task show 28 --json --download

workban task start

Übernimmt einen Task und setzt ihn auf In Progress: die Kurzform für claim und move in_progress. Ohne Nummer der laufende Task, etwa zurück aus Testing oder On Hold.

workban task start [id] [Optionen]

Argumente

  • [id]optional

Optionen

  • --agent <type>Wert
    wer arbeitetWerte: claude-code · codex · other · human
  • --branch <name>Wert
    sonst aktueller Git-Branch
  • --forceSchalter
    auch einen erledigten Task wieder öffnen

start setzt die Zeitstempel, aus denen die Dauer berechnet wird. Einen erledigten Task öffnet es nur mit --force: Weil Nummern für den ganzen Workspace gelten, könnte eine Nummer aus einem anderen Repo sonst fertige Arbeit unbemerkt wieder öffnen.

workban task start 28 --agent claude-code --json   # bestehende Aufgabe übernehmen
workban task start --agent claude-code --json      # zurück an die Arbeit am laufenden Task

workban task claim

Übernimmt einen Task (Assignee = ich), der Status bleibt. Ein schon zugewiesener Task kann übernommen werden, der vorherige Assignee steht im Verlauf.

workban task claim <id> [Optionen]

Argumente

  • <id>Pflicht

Optionen

  • --agent <type>Wert
    wer arbeitetWerte: claude-code · codex · other · human
  • --branch <name>Wert
    Branch der Arbeit

workban task move

Setzt den Status: backlog, in_progress, testing, on_hold oder done. Ohne Nummer gilt der laufende Task, das erste Argument ist dann der Status.

workban task move <idOrStatus> [status] [Optionen]

Argumente

  • <idOrStatus>Pflicht
  • [status]optional

Optionen

  • --comment <text>Wert
    Kommentar im selben Schritt
  • --position <n>Wert
    Reihenfolge in der Spalte (kleiner = weiter oben)
  • --tokens <n>Wert
    bei done: Token-Verbrauch angeben, wenn er nicht gemessen werden kann
  • --no-tokensSchalter
    bei done: keinen Token-Verbrauch messen
  • --keep-pathsSchalter
    lokale Pfade in Titel, Beschreibung oder Kommentar stehen lassen

Ein Wechsel auf denselben Status ändert nichts und lässt sich deshalb gefahrlos wiederholen. --comment schreibt im selben Schritt einen Kommentar, etwa worauf ein Task auf On Hold wartet. Bei done gelten dieselben Regeln zum Token-Verbrauch wie bei task done.

workban task move testing --json                                   # Tests laufen
workban task move 42 on_hold --comment "Wartet auf Freigabe" --json
workban task move 42 backlog --position 1                          # ganz nach oben

workban task done

Setzt einen Task auf Done, die Kurzform für move done. Ohne Nummer der laufende Task.

workban task done [id] [Optionen]

Argumente

  • [id]optional

Optionen

  • --comment <text>Wert
    was gemacht wurde, PR-Link
  • --tokens <n>Wert
    Token-Verbrauch angeben, wenn er nicht gemessen werden kann (nie schätzen)
  • --no-tokensSchalter
    keinen Token-Verbrauch messen
  • --keep-pathsSchalter
    lokale Pfade in Titel, Beschreibung oder Kommentar stehen lassen

Beim Wechsel misst die CLI den Token-Verbrauch der Agenten-Sitzung, in der sie läuft, und hängt ihn an den Task. Ohne Agenten-Sitzung, etwa im eigenen Terminal, wird nichts gemessen. --tokens trägt eine echte Zahl von Hand ein, wenn sie nicht gemessen werden kann, --no-tokens schaltet die Messung ab. Scheitert die Messung, geht der Task trotzdem auf Done, auf stderr steht ein Hinweis.

workban task done --comment "Redirect gefixt, Commit a1b2c3d" --json

workban task comment

Schreibt einen Kommentar in Markdown, optional mit Dateien. Ohne Nummer am laufenden Task, das erste Argument ist dann der Text.

workban task comment <idOrText> [text] [Optionen]

Argumente

  • <idOrText>Pflicht
  • [text]optional

Optionen

  • --file <path...>Liste
    Dateien anhängen
  • --keep-pathsSchalter
    lokale Pfade in Titel, Beschreibung oder Kommentar stehen lassen
workban task comment "Ursache gefunden: der Cookie wird vor dem Redirect gelöscht"
workban task comment 42 "Screenshot vom Fehler" --file fehler.png

workban task attach

Hängt Dateien an den Task oder mit --comment-id an einen Kommentar. Ohne Nummer der laufende Task: Das erste Argument gilt als Task, wenn es eine Nummer oder ID ist, sonst als Datei.

workban task attach [idOrFile] [files...] [Optionen]

Argumente

  • [idOrFile]optional
  • [files]optional, mehrere möglich

Optionen

  • --comment-id <id>Wert
    an diesen Kommentar statt an den Task
  • --clipboardSchalter
    das Bild aus der Zwischenablage anhängen
  • --lastSchalter
    den neuesten Screenshot anhängen
  • --clipboard hängt das Bild aus der Zwischenablage an (macOS über AppleScript, Windows über PowerShell, Linux über wl-paste oder xclip).
  • --last hängt den neuesten Screenshot an. Den Ordner liest die CLI auf macOS aus com.apple.screencapture location, sonst nimmt sie den üblichen Bilder-Ordner.
  • Der Dateityp kommt aus der Endung (.png, .pdf, .md, .log, …). Unbekannte Endungen lehnt die API ab.

Ohne Bild in der Zwischenablage oder ohne Screenshot endet der Befehl mit Exit-Code 2 und sagt warum.

workban task attach screenshot.png log.txt
workban task attach --clipboard

workban task edit

Ändert Titel, Beschreibung, Branch, Agent, Zuweisung oder Projekt. Ohne Nummer der laufende Task.

workban task edit [id] [Optionen]

Argumente

  • [id]optional

Optionen

  • --title <text>Wert
    neuer Titel
  • --description <text>Wert
    neue Beschreibung inline
  • --description-file <path>Wert
    neue Beschreibung aus Datei
  • --stdinSchalter
    Beschreibung von stdin
  • --worked <minuten>Wert
    gearbeitete Zeit korrigieren, der Rest zählt als Pause
  • --branch <name>Wert
    Branch setzen, leer entfernt ihn
  • --no-branchSchalter
    Branch entfernen
  • --agent <type>Wert
    wer arbeitetWerte: claude-code · codex · other · human
  • --assignee [wer]optionaler Wert
    me, Benutzername oder none (entfernt die Zuweisung), ohne Wert eine Auswahl
  • --project <slug>Wert
    in dieses Projekt verschieben
  • --keep-pathsSchalter
    lokale Pfade in Titel, Beschreibung oder Kommentar stehen lassen
  • --worked <minuten> korrigiert die gearbeitete Zeit, die Differenz zur verstrichenen Spanne zählt als Pause. Nötig ist das selten, weil die Uhr nur in In Progress und Testing läuft und Leerlauf nach 45 Minuten gedeckelt wird.
  • --no-branch oder --branch "" entfernt den Branch. Ein Schlüssel, der aus dem Branch abgeleitet war, geht mit.
  • --assignee none entfernt die Zuweisung.
workban task edit --stdin <<'EOF'
Neue Beschreibung mit dem genaueren Plan.
EOF
workban task edit 42 --worked 90

workban task delete

Löscht einen Task endgültig, mit allen Anhängen. Das dürfen nur Owner und Admins.

workban task delete <id> [Optionen]

Argumente

  • <id>Pflicht

Optionen

  • --yesSchalter
    ohne Rückfrage

Im Terminal fragt die CLI vorher nach. Ohne Terminal ist --yes Pflicht, sonst endet der Befehl mit Exit-Code 2.