Overview
hermes kanban ist ein persistenter SQLite-gestützter Aufgabenboard, das über Hermes-Profile hinweg geteilt wird. Aufgaben können voneinander abhängen, atomar beansprucht und von einem benannten Profil in einem isolierten Workspace ausgeführt werden.
hermes kanban [--board <slug>] <Unterbefehl>
Globale Option
--board <slug>— Auf einem bestimmten Board arbeiten. Standard ist das aktuelle Board (gesetzt viahermes kanban boards switch <slug>oder UmgebungsvariableHERMES_KANBAN_BOARD).
Unterbefehle
Board-Verwaltung
init
kanban.db erstellen, falls nicht vorhanden (idempotent).
hermes kanban init
boards
Boards verwalten. Ein Board pro Projekt/Arbeitsstream.
hermes kanban boards list [--json] [--all]
hermes kanban boards create <slug> [--name NAME] [--description DESCRIPTION] [--icon ICON] [--color COLOR] [--switch] [--default-workdir PATH]
hermes kanban boards rm <slug> [--delete]
hermes kanban boards switch <slug>
hermes kanban boards show
hermes kanban boards rename <slug> <name>
hermes kanban boards set-default-workdir <slug> [path]
list/ls— Alle Boards mit Aufgabenzahlen auflisten.create/new— Neues Board erstellen.rm/remove/delete— Board archivieren (Standard) oder mit--deletehart löschen.switch/use— Aktives Board setzen.show/current— Aktiven Board-Slug ausgeben.rename— Anzeigenamen eines Boards ändern (Slug bleibt unverändert).set-default-workdir— Standard-Workspace-Pfad eines Boards setzen oder löschen.
Aufgaben-Lebenszyklus
create <title>
Neue Aufgabe erstellen.
hermes kanban create "Implement auth" --body "Add OAuth login" --assignee work --workspace worktree --priority 1
list / ls
Aufgaben auflisten.
hermes kanban list [--mine] [--assignee ASSIGNEE] [--status STATUS] [--tenant TENANT] [--session SESSION] [--archived] [--json] [--sort SORT]
show <task_id>
Aufgabe mit Kommentaren und Ereignissen anzeigen.
hermes kanban show <task_id> [--json] [--state-type {status,outcome}] [--state-name VALUE]
assign <task_id> <profile>
Aufgabe zuweisen oder neu zuweisen. Mit none Zuweisung entfernen.
hermes kanban assign <task_id> work
set-model <task_id> [model]
Modell/Provider-Überschreibung einer Aufgabe setzen oder löschen.
hermes kanban set-model <task_id> claude-sonnet --provider anthropic
hermes kanban set-model <task_id> none
reclaim <task_id>
Einen aktiven Worker-Claim auf einer laufenden Aufgabe freigeben.
hermes kanban reclaim <task_id> [--yes]
reassign <task_id> <profile>
Eine Aufgabe einem anderen Profil zuweisen, optional unter vorheriger Rückforderung.
hermes kanban reassign <task_id> <profile> [--reclaim] [--yes]
claim <task_id>
Eine bereite Aufgabe atomar beanspruchen.
hermes kanban claim <task_id> [--ttl 900]
complete <task_id>...
Eine oder mehrere Aufgaben als erledigt markieren.
hermes kanban complete <task_id> --result "Done" --summary "Implemented" --metadata '{"files": ["auth.py"]}'
edit <task_id>
Wiederherstellungsfelder einer bereits erledigten Aufgabe bearbeiten.
hermes kanban edit <task_id> --result "Updated" --summary "..."
block <task_id> [reason...]
Eine oder mehrere Aufgaben als blockiert markieren.
hermes kanban block <task_id> "waiting for API" --kind dependency
unblock <task_id>...
Blockierte/geplante Aufgaben zurück auf ready oder todo setzen.
hermes kanban unblock <task_id> --reason "API ready"
schedule <task_id> [reason...]
Eine oder mehrere Aufgaben in Scheduled parken.
hermes kanban schedule <task_id> "deploy window" --ids t2 t3
promote <task_id> [reason...]
Todo/blockierte Aufgaben manuell auf ready befördern.
hermes kanban promote <task_id> "ready to start" [--force] [--dry-run] [--json]
archive <task_id>...
Eine oder mehrere Aufgaben archivieren. Mit --rm bereits archivierte IDs dauerhaft löschen.
hermes kanban archive <task_id>... [--rm PURGE_IDS...]
Aufgaben-Zerlegung
specify [task_id]
Eine Triage-Aufgabe zu einer konkreten Spezifikation ausbauen und auf todo befördern.
hermes kanban specify <task_id> [--all] [--tenant TENANT] [--author AUTHOR] [--json]
decompose [task_id]
Eine Triage-Aufgabe in Kinderaufgaben zerlegen, die an Spezialprofile geroutet werden.
hermes kanban decompose <task_id> [--all] [--tenant TENANT] [--author AUTHOR] [--json]
swarm <goal>
Kanban Swarm v1 Graph erstellen: parallele Worker → Verifizierer → Synthetisierer.
hermes kanban swarm "Refactor auth" --worker backend:Backend --worker frontend:Frontend --verifier reviewer --synthesizer writer
Abhängigkeiten
link <parent_id> <child_id>
Eltern→Kind-Abhängigkeit hinzufügen.
hermes kanban link parent-task child-task
unlink <parent_id> <child_id>
Eltern→Kind-Abhängigkeit entfernen.
hermes kanban unlink parent-task child-task
Ausführung & Überwachung
dispatch
Ein Dispatcher-Durchlauf: veraltete Claims zurückfordern, bereite Aufgaben befördern, Worker starten.
hermes kanban dispatch [--dry-run] [--max N] [--failure-limit N] [--json]
daemon
Veraltet — der Dispatcher läuft jetzt im Gateway. Verwende hermes gateway start.
watch
Aufgabenereignisse live ins Terminal streamen.
hermes kanban watch [--assignee ASSIGNEE] [--tenant TENANT] [--kinds KINDS] [--interval 0.5]
tail <task_id>
Ereignisstrom einer Aufgabe verfolgen.
hermes kanban tail <task_id> [--interval SECONDS]
log <task_id>
Worker-Log einer Aufgabe ausgeben.
hermes kanban log <task_id> [--tail N]
runs <task_id>
Versuchshistorie einer Aufgabe anzeigen.
hermes kanban runs <task_id> [--json] [--state-type {status,outcome}] [--state-name VALUE]
heartbeat <task_id>
Heartbeat-Ereignis für eine laufende Aufgabe senden.
hermes kanban heartbeat <task_id> --note "still running"
Kontext & Anhänge
context <task_id>
Den vollständigen Kontext ausgeben, den ein Worker für eine Aufgabe sieht.
comment <task_id> <text...>
Kommentar zu einer Aufgabe hinzufügen.
hermes kanban comment <task_id> "Waiting on review" --author user
attach <task_id> <path>
Lokale Datei an eine Aufgabe anhängen.
hermes kanban attach <task_id> ./log.txt --name deploy.log
attachments <task_id>
Anhänge einer Aufgabe auflisten.
hermes kanban attachments <task_id> [--json]
attach-rm <attachment_id>
Anhang per ID löschen.
Benachrichtigungen
notify-subscribe <task_id>
Gateway-Quelle für Terminal-Ereignisse einer Aufgabe abonnieren.
hermes kanban notify-subscribe <task_id> --platform telegram --chat-id 123456
notify-list [task_id]
Benachrichtigungsabonnements auflisten.
hermes kanban notify-list [<task_id>] [--json]
notify-unsubscribe <task_id>
Gateway-Abonnement von einer Aufgabe entfernen.
hermes kanban notify-unsubscribe <task_id> --platform telegram --chat-id 123456
Diagnose & Wartung
diagnostics / diag
Aktive Diagnosen des aktuellen Boards auflisten.
hermes kanban diagnostics [--severity {warning,error,critical}] [--task TASK] [--json]
assignees
Bekannte Profile und Aufgabenzahlen pro Profil auflisten.
hermes kanban assignees [--json]
stats
Zählungen pro Status und Assignee sowie Alter der ältesten bereiten Aufgabe anzeigen.
hermes kanban stats [--json]
gc
Alte Ereignisse, Worker-Logs und archivierte Workspaces bereinigen.
hermes kanban gc [--event-retention-days N] [--log-retention-days N]
repair
DB-Integrität prüfen und reine Index-Korruption automatisch reparieren.
hermes kanban repair [--json]
Häufige Szenarien
# Board erstellen und aktivieren
hermes kanban init
hermes kanban boards create sprint-42 --switch
# Hochprioritäre Aufgabe hinzufügen
hermes kanban create "Refactor auth module" --assignee backend --workspace worktree --priority 1
# Bereite Aufgaben des aktuellen Profils auflisten
hermes kanban list --mine --status ready
# Einen Dispatcher-Durchlauf ausführen
hermes kanban dispatch --max 3
Tipps
- Führe vor anderen Befehlen einmal
hermes kanban initaus, um die Datenbank anzulegen. - Verwende
--board <slug>für einmalige Befehle oderhermes kanban boards switch <slug>, um den Standard zu ändern. - Aufgabenstatus umfassen: triage, todo, ready, running, review, blocked, scheduled, done, archived.
- Verwende
claim, um bereite Arbeit atomar zu übernehmen;dispatchist die Hauptschleife. daemonist veraltet. Führe Dispatch überhermes gateway startoder regelmäßighermes kanban dispatchaus.