Overview
hermes kanban es un tablero de tareas persistente basado en SQLite, compartido entre perfiles de Hermes. Las tareas pueden depender de otras, reclamarse atómicamente y ejecutarse por un perfil concreto en un espacio de trabajo aislado.
hermes kanban [--board <slug>] <subcomando>
Opción global
--board <slug>— Opera en un tablero específico. El predeterminado es el tablero actual (se establece conhermes kanban boards switch <slug>o la variable de entornoHERMES_KANBAN_BOARD).
Subcomandos
Configuración del tablero
init
Crear kanban.db si no existe (idempotente).
hermes kanban init
boards
Gestionar tableros. Un tablero por proyecto/flujo de trabajo.
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— Listar todos los tableros con conteos de tareas.create/new— Crear un nuevo tablero.rm/remove/delete— Archivar un tablero (por defecto) o eliminarlo definitivamente con--delete.switch/use— Establecer el tablero activo.show/current— Mostrar el slug del tablero activo.rename— Cambiar el nombre visible de un tablero (el slug no cambia).set-default-workdir— Establecer o borrar la ruta de workspace por defecto de un tablero.
Ciclo de vida de tareas
create <title>
Crear una tarea nueva.
hermes kanban create "Implement auth" --body "Add OAuth login" --assignee work --workspace worktree --priority 1
list / ls
Listar tareas.
hermes kanban list [--mine] [--assignee ASSIGNEE] [--status STATUS] [--tenant TENANT] [--session SESSION] [--archived] [--json] [--sort SORT]
show <task_id>
Mostrar una tarea con comentarios y eventos.
hermes kanban show <task_id> [--json] [--state-type {status,outcome}] [--state-name VALUE]
assign <task_id> <profile>
Asignar o reasignar una tarea. Usa none para desasignar.
hermes kanban assign <task_id> work
set-model <task_id> [model]
Establecer o borrar la sobreescritura de modelo/proveedor de una tarea.
hermes kanban set-model <task_id> claude-sonnet --provider anthropic
hermes kanban set-model <task_id> none
reclaim <task_id>
Liberar el claim de un worker activo sobre una tarea en ejecución.
hermes kanban reclaim <task_id> [--yes]
reassign <task_id> <profile>
Reasignar una tarea a otro perfil, opcionalmente liberando el claim primero.
hermes kanban reassign <task_id> <profile> [--reclaim] [--yes]
claim <task_id>
Reclamar atómicamente una tarea lista.
hermes kanban claim <task_id> [--ttl 900]
complete <task_id>...
Marcar una o más tareas como completadas.
hermes kanban complete <task_id> --result "Done" --summary "Implemented" --metadata '{"files": ["auth.py"]}'
edit <task_id>
Editar campos de recuperación en una tarea ya completada.
hermes kanban edit <task_id> --result "Updated" --summary "..."
block <task_id> [reason...]
Marcar una o más tareas como bloqueadas.
hermes kanban block <task_id> "waiting for API" --kind dependency
unblock <task_id>...
Devolver tareas bloqueadas/programadas a ready o todo.
hermes kanban unblock <task_id> --reason "API ready"
schedule <task_id> [reason...]
Poner una o más tareas en Scheduled.
hermes kanban schedule <task_id> "deploy window" --ids t2 t3
promote <task_id> [reason...]
Mover manualmente tareas de todo/blocked a ready.
hermes kanban promote <task_id> "ready to start" [--force] [--dry-run] [--json]
archive <task_id>...
Archivar una o más tareas. Usa --rm para eliminar permanentemente ids ya archivados.
hermes kanban archive <task_id>... [--rm PURGE_IDS...]
Descomposición de tareas
specify [task_id]
Convertir una tarea de la columna triage en una especificación concreta y promoverla a todo.
hermes kanban specify <task_id> [--all] [--tenant TENANT] [--author AUTHOR] [--json]
decompose [task_id]
Descomponer una tarea de triage en subtareas enrutadas a perfiles especialistas.
hermes kanban decompose <task_id> [--all] [--tenant TENANT] [--author AUTHOR] [--json]
swarm <goal>
Crear un grafo Kanban Swarm v1: workers paralelos → verificador → sintetizador.
hermes kanban swarm "Refactor auth" --worker backend:Backend --worker frontend:Frontend --verifier reviewer --synthesizer writer
Dependencias
link <parent_id> <child_id>
Añadir una dependencia padre→hijo.
hermes kanban link parent-task child-task
unlink <parent_id> <child_id>
Eliminar una dependencia padre→hijo.
hermes kanban unlink parent-task child-task
Ejecución y monitoreo
dispatch
Un pase del dispatcher: reclamar claims vencidos, promover tareas listas, lanzar workers.
hermes kanban dispatch [--dry-run] [--max N] [--failure-limit N] [--json]
daemon
Obsoleto — el dispatcher ahora corre en el gateway. Usa hermes gateway start.
watch
Transmitir eventos de tareas en vivo a la terminal.
hermes kanban watch [--assignee ASSIGNEE] [--tenant TENANT] [--kinds KINDS] [--interval 0.5]
tail <task_id>
Seguir el flujo de eventos de una tarea.
hermes kanban tail <task_id> [--interval SECONDS]
log <task_id>
Imprimir el log del worker de una tarea.
hermes kanban log <task_id> [--tail N]
runs <task_id>
Mostrar el historial de intentos de una tarea.
hermes kanban runs <task_id> [--json] [--state-type {status,outcome}] [--state-name VALUE]
heartbeat <task_id>
Emitir un evento de heartbeat para una tarea en ejecución.
hermes kanban heartbeat <task_id> --note "still running"
Contexto y adjuntos
context <task_id>
Imprimir el contexto completo que ve el worker de una tarea.
comment <task_id> <text...>
Añadir un comentario a una tarea.
hermes kanban comment <task_id> "Waiting on review" --author user
attach <task_id> <path>
Adjuntar un archivo local a una tarea.
hermes kanban attach <task_id> ./log.txt --name deploy.log
attachments <task_id>
Listar los adjuntos de una tarea.
hermes kanban attachments <task_id> [--json]
attach-rm <attachment_id>
Eliminar un adjunto por id.
Notificaciones
notify-subscribe <task_id>
Suscribir una fuente gateway a los eventos terminales de una tarea.
hermes kanban notify-subscribe <task_id> --platform telegram --chat-id 123456
notify-list [task_id]
Listar suscripciones de notificación.
hermes kanban notify-list [<task_id>] [--json]
notify-unsubscribe <task_id>
Eliminar una suscripción gateway de una tarea.
hermes kanban notify-unsubscribe <task_id> --platform telegram --chat-id 123456
Diagnóstico y mantenimiento
diagnostics / diag
Listar diagnósticos activos en el tablero actual.
hermes kanban diagnostics [--severity {warning,error,critical}] [--task TASK] [--json]
assignees
Listar perfiles conocidos y conteos de tareas por perfil.
hermes kanban assignees [--json]
stats
Mostrar conteos por estado y asignado, más la antigüedad de la tarea lista más vieja.
hermes kanban stats [--json]
gc
Recoger eventos antiguos, logs de workers y workspaces archivados.
hermes kanban gc [--event-retention-days N] [--log-retention-days N]
repair
Comprobar integridad de la DB y reparar automáticamente corrupciones de índice.
hermes kanban repair [--json]
Ejemplos
# Crear y cambiar a un nuevo tablero
hermes kanban init
hermes kanban boards create sprint-42 --switch
# Añadir una tarea de alta prioridad
hermes kanban create "Refactor auth module" --assignee backend --workspace worktree --priority 1
# Listar tareas listas asignadas al perfil actual
hermes kanban list --mine --status ready
# Ejecutar un pase del dispatcher
hermes kanban dispatch --max 3
Consejos
- Ejecuta
hermes kanban inituna vez antes de otros comandos para crear la base de datos. - Usa
--board <slug>para comandos puntuales, ohermes kanban boards switch <slug>para cambiar el tablero predeterminado. - Los estados de tarea incluyen: triage, todo, ready, running, review, blocked, scheduled, done, archived.
- Usa
claimpara reclamar atómicamente trabajo listo;dispatches el bucle de ejecución principal. daemonestá obsoleto. Ejecuta dispatch mediantehermes gateway starto programandohermes kanban dispatch.