What is Hermes Kanban?
A durable task queue built into Hermes. Tasks live in SQLite, survive restarts, and can be claimed atomically by different profiles. Think of it as a shared todo list that multiple agents/workers can pull from.
Unlike cron (scheduled), kanban is demand-driven. Tasks sit until someone claims them.
Core Concepts
Boards
Each board is a separate SQLite database. One board per project or work stream.
$ hermes kanban boards --create my-project
Task States
| Status | Meaning | Badge |
|---|---|---|
triage |
New task, needs specification | triage |
todo |
Specified but waiting | todo |
ready |
Unclaimed and ready to run | ready |
running |
Currently being worked on | running |
blocked |
Waiting on dependency or external | blocked |
done |
Completed | done |
Lifecycle Flow
Create
→
Triage
→
Todo
→
Ready
→
Running
→
Done
Essential Commands
Create a Task
# Basic task
hermes kanban create "Fix the login bug"
# With body
hermes kanban create "Refactor auth" --body "Move JWT to utils/ folder"
# Auto-assign to a profile
hermes kanban create "Research MCP" --assignee tina
# Start in triage (needs spec)
hermes kanban create "Big feature" --triage
# Set max runtime (minutes)
hermes kanban create "Scraping job" --max-runtime 60
List Tasks
# All tasks on current board
hermes kanban list
# Filter by status
hermes kanban list --status ready
hermes kanban list --status running
# Just my tasks
hermes kanban list --mine
# Specific assignee
hermes kanban list --assignee tina
Claim & Work
# Claim next ready task (atomic - only one wins)
hermes kanban claim
# Claim specific task
hermes kanban claim --id t_abc123
# After working, mark complete
hermes kanban complete t_abc123
# Or mark blocked
hermes kanban block t_abc123
Task Operations
# Show task details + comments
hermes kanban show t_abc123
# Add comment
hermes kanban comment t_abc123 "Stuck on API rate limits"
# Reassign
hermes kanban assign t_abc123 --assignee other-profile
# Edit task (even after done, for recovery)
hermes kanban edit t_abc123 --body "Updated requirements..."
# Archive old tasks
hermes kanban archive t_abc123
Worker Pattern
The kanban dispatcher runs automatically with Hermes gateway. It:
- Reclaims stale tasks (workers that died)
- Promotes
todo→ready - Spawns workers for ready tasks
# Check what task worker sees (full context)
hermes kanban context t_abc123
# View worker logs
hermes kanban log t_abc123
# See all attempts/runs
hermes kanban runs t_abc123
# Watch live events
hermes kanban watch
Run
hermes kanban dispatch to force a dispatcher pass manually (useful for testing).
Task Dependencies
Tasks can block on other tasks. Parent must complete before child becomes ready.
# Create parent task
PARENT=$(hermes kanban create "Setup database" --json | jq -r '.id')
# Create child with dependency
hermes kanban create "Seed data" --parent $PARENT
# Link existing tasks
hermes kanban link t_parent t_child
# Remove dependency
hermes kanban unlink t_parent t_child
Board Management
# List all boards
hermes kanban boards
# Create new board
hermes kanban boards --create side-projects
# Switch board (set env var)
export HERMES_KANBAN_BOARD=side-projects
# Or use --board flag
hermes kanban list --board side-projects
# Board stats
hermes kanban stats
Quick Reference Card
| Command | Purpose |
|---|---|
hermes kanban init |
Create kanban.db if missing |
hermes kanban create "Title" |
New task |
hermes kanban list |
Show all tasks |
hermes kanban claim |
Grab next ready task |
hermes kanban complete ID |
Mark done |
hermes kanban block ID |
Mark blocked |
hermes kanban unblock ID |
Resume blocked task |
hermes kanban show ID |
Task details + comments |
hermes kanban context ID |
What worker sees |
hermes kanban watch |
Live event stream |
When to Use Kanban
Good for:
- Work that survives across sessions (durable queue)
- Multi-step projects with dependencies
- Collaborative work (multiple agents/profiles)
- Jobs that need retry/archival
- Tasks you want to claim on-demand vs scheduled
Use cron instead when:
- Time-based triggers (daily, weekly)
- Monitoring/alerts
- Regular maintenance (backups, git sync)