Overview
hermes kanban est un tableau de tâches persistant basé sur SQLite, partagé entre les profils Hermes. Les tâches peuvent dépendre les unes des autres, être revendiquées atomiquement et exécutées par un profil nommé dans un workspace isolé.
hermes kanban [--board <slug>] <sous-commande>
Option globale
--board <slug>— Opérer sur un tableau spécifique. Le tableau courant est utilisé par défaut (défini viahermes kanban boards switch <slug>ou la variable d’environnementHERMES_KANBAN_BOARD).
Sous-commandes
Gestion des tableaux
init
Créer kanban.db s’il manque (idempotent).
hermes kanban init
boards
Gérer les tableaux. Un tableau par projet/flux de travail.
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— Lister tous les tableaux avec le nombre de tâches.create/new— Créer un nouveau tableau.rm/remove/delete— Archiver un tableau (par défaut) ou le supprimer définitivement avec--delete.switch/use— Définir le tableau actif.show/current— Afficher le slug du tableau actif.rename— Modifier le nom affiché d’un tableau (le slug est immuable).set-default-workdir— Définir ou effacer le workspace par défaut d’un tableau.
Cycle de vie des tâches
create <title>
Créer une nouvelle tâche.
hermes kanban create "Implement auth" --body "Add OAuth login" --assignee work --workspace worktree --priority 1
list / ls
Lister les tâches.
hermes kanban list [--mine] [--assignee ASSIGNEE] [--status STATUS] [--tenant TENANT] [--session SESSION] [--archived] [--json] [--sort SORT]
show <task_id>
Afficher une tâche avec commentaires et événements.
hermes kanban show <task_id> [--json] [--state-type {status,outcome}] [--state-name VALUE]
assign <task_id> <profile>
Assigner ou réassigner une tâche. Utilisez none pour désassigner.
hermes kanban assign <task_id> work
set-model <task_id> [model]
Définir ou effacer la surcharge modèle/fournisseur d’une tâche.
hermes kanban set-model <task_id> claude-sonnet --provider anthropic
hermes kanban set-model <task_id> none
reclaim <task_id>
Libérer le claim d’un worker actif sur une tâche en cours.
hermes kanban reclaim <task_id> [--yes]
reassign <task_id> <profile>
Réassigner une tâche à un autre profil, en libérant éventuellement d’abord le claim.
hermes kanban reassign <task_id> <profile> [--reclaim] [--yes]
claim <task_id>
Réclamer atomiquement une tâche prête.
hermes kanban claim <task_id> [--ttl 900]
complete <task_id>...
Marquer une ou plusieurs tâches comme terminées.
hermes kanban complete <task_id> --result "Done" --summary "Implemented" --metadata '{"files": ["auth.py"]}'
edit <task_id>
Modifier les champs de récupération d’une tâche déjà terminée.
hermes kanban edit <task_id> --result "Updated" --summary "..."
block <task_id> [reason...]
Marquer une ou plusieurs tâches comme bloquées.
hermes kanban block <task_id> "waiting for API" --kind dependency
unblock <task_id>...
Remettre des tâches bloquées/programmées à ready ou todo.
hermes kanban unblock <task_id> --reason "API ready"
schedule <task_id> [reason...]
Placer une ou plusieurs tâches en Scheduled.
hermes kanban schedule <task_id> "deploy window" --ids t2 t3
promote <task_id> [reason...]
Déplacer manuellement des tâches todo/blocked à ready.
hermes kanban promote <task_id> "ready to start" [--force] [--dry-run] [--json]
archive <task_id>...
Archiver une ou plusieurs tâches. Utilisez --rm pour supprimer définitivement des IDs déjà archivés.
hermes kanban archive <task_id>... [--rm PURGE_IDS...]
Décomposition des tâches
specify [task_id]
Détailler une tâche de la colonne triage en une spécification concrète et la promouvoir en todo.
hermes kanban specify <task_id> [--all] [--tenant TENANT] [--author AUTHOR] [--json]
decompose [task_id]
Décomposer une tâche de triage en sous-tâches routées vers des profils spécialistes.
hermes kanban decompose <task_id> [--all] [--tenant TENANT] [--author AUTHOR] [--json]
swarm <goal>
Créer un graphe Kanban Swarm v1 : workers parallèles → vérificateur → synthétiseur.
hermes kanban swarm "Refactor auth" --worker backend:Backend --worker frontend:Frontend --verifier reviewer --synthesizer writer
Dépendances
link <parent_id> <child_id>
Ajouter une dépendance parent→enfant.
hermes kanban link parent-task child-task
unlink <parent_id> <child_id>
Supprimer une dépendance parent→enfant.
hermes kanban unlink parent-task child-task
Exécution & surveillance
dispatch
Un passage du dispatcher : récupérer les revendications périmées, promouvoir les tâches prêtes, lancer les workers.
hermes kanban dispatch [--dry-run] [--max N] [--failure-limit N] [--json]
daemon
Déprécié — le dispatcher s’exécute désormais dans la gateway. Utilisez hermes gateway start.
watch
Diffuser en direct les événements de tâches vers le terminal.
hermes kanban watch [--assignee ASSIGNEE] [--tenant TENANT] [--kinds KINDS] [--interval 0.5]
tail <task_id>
Suivre le flux d’événements d’une tâche.
hermes kanban tail <task_id> [--interval SECONDS]
log <task_id>
Afficher le log worker d’une tâche.
hermes kanban log <task_id> [--tail N]
runs <task_id>
Afficher l’historique des tentatives d’une tâche.
hermes kanban runs <task_id> [--json] [--state-type {status,outcome}] [--state-name VALUE]
heartbeat <task_id>
Émettre un événement de heartbeat pour une tâche en cours.
hermes kanban heartbeat <task_id> --note "still running"
Contexte & pièces jointes
context <task_id>
Afficher le contexte complet vu par le worker d’une tâche.
comment <task_id> <text...>
Ajouter un commentaire à une tâche.
hermes kanban comment <task_id> "Waiting on review" --author user
attach <task_id> <path>
Attacher un fichier local à une tâche.
hermes kanban attach <task_id> ./log.txt --name deploy.log
attachments <task_id>
Lister les pièces jointes d’une tâche.
hermes kanban attachments <task_id> [--json]
attach-rm <attachment_id>
Supprimer une pièce jointe par ID.
Notifications
notify-subscribe <task_id>
Abonner une source gateway aux événements terminaux d’une tâche.
hermes kanban notify-subscribe <task_id> --platform telegram --chat-id 123456
notify-list [task_id]
Lister les abonnements de notification.
hermes kanban notify-list [<task_id>] [--json]
notify-unsubscribe <task_id>
Supprimer un abonnement gateway d’une tâche.
hermes kanban notify-unsubscribe <task_id> --platform telegram --chat-id 123456
Diagnostic & maintenance
diagnostics / diag
Lister les diagnostics actifs du tableau courant.
hermes kanban diagnostics [--severity {warning,error,critical}] [--task TASK] [--json]
assignees
Lister les profils connus et le nombre de tâches par profil.
hermes kanban assignees [--json]
stats
Afficher les comptes par statut et assignee, plus l’âge de la tâche ready la plus ancienne.
hermes kanban stats [--json]
gc
Nettoyer les anciens événements, logs worker et workspaces archivés.
hermes kanban gc [--event-retention-days N] [--log-retention-days N]
repair
Vérifier l’intégrité de la DB et réparer automatiquement les corruptions d’index.
hermes kanban repair [--json]
Exemples
# Créer et passer à un nouveau tableau
hermes kanban init
hermes kanban boards create sprint-42 --switch
# Ajouter une tâche haute priorité
hermes kanban create "Refactor auth module" --assignee backend --workspace worktree --priority 1
# Lister les tâches prêtes assignées au profil courant
hermes kanban list --mine --status ready
# Exécuter un passage du dispatcher
hermes kanban dispatch --max 3
Astuces
- Exécutez
hermes kanban initune fois avant les autres commandes pour créer la base de données. - Utilisez
--board <slug>pour une commande ponctuelle, ouhermes kanban boards switch <slug>pour changer le tableau par défaut. - Les statuts de tâche incluent : triage, todo, ready, running, review, blocked, scheduled, done, archived.
- Utilisez
claimpour prendre atomiquement une tâche prête ;dispatchest la boucle d’exécution principale. daemonest déprécié. Exécutez le dispatch viahermes gateway startou en planifianthermes kanban dispatch.