Multiple AI agents (or humans) can now work on the same kanban board concurrently. This release adds cooperative task locking (--claim/--release), an atomic pick command for automatic task assignment, classes of service for priority lanes, and --group-by swimlanes for workload visibility.
New: pick command
Atomically find and claim the next available task — replaces the manual list/edit/move pattern for agent workflows.
kanban-md pick --claim agent-1 --move in-progress
kanban-md pick --claim agent-2 --status todo --tag backendThe pick algorithm considers class of service, priority, blocked state, dependencies, and existing claims.
New: Claim/release semantics
Tasks can be claimed by an agent to prevent concurrent modification. Claims expire after a configurable timeout (default: 1 hour).
kanban-md edit 5 --claim agent-1 # claim a task
kanban-md edit 5 --release # release when done
kanban-md list --unclaimed # find available work
kanban-md list --claimed-by agent-1 # see what an agent ownsClaim checks are enforced on edit, move, and delete. Use --force to override.
New: Classes of service
Tasks now have a class that affects WIP limits and pick priority:
| Class | Behavior |
|---|---|
| expedite | Bypasses column WIP limits (has its own board-wide limit). Picked first. |
| fixed-date | Sorted by earliest due date within its priority tier. |
| standard | Default. Normal WIP and priority rules. |
| intangible | Picked last. For background/maintenance work. |
kanban-md create "Critical hotfix" --class expedite --priority criticalNew: Swimlanes (--group-by)
Group board or list views by any field to visualize work distribution:
kanban-md board --group-by assignee # who is working on what
kanban-md board --group-by class # class of service breakdown
kanban-md list --group-by tag # work by tagChanged: Config schema v3
The config file is automatically migrated from v2 to v3 on first use. New fields:
claim_timeout— claim expiration duration (default:1h)classes— list of classes of service with optional WIP limitsdefaults.class— default class for new tasks (default:standard)
Upgrading
No action needed. Existing boards auto-migrate when any command runs. New fields use safe defaults that preserve existing behavior.
Full diff: v0.17.0...v0.18.0