Hermes Kanban – Multi-Agent Profile Collaboration Hermes Kanban, a durable task board for multi-agent profile collaboration, is now available, allowing multiple named agents to work on tasks via a shared SQLite database and a dedicated kanban_* toolset. The board supports completion checkpoints, circuit breakers, and CLI/dashboard interfaces, with features for research triage, scheduled ops, digital twins, engineering pipelines, and fleet work. Kanban — Multi-Agent Profile Collaboration Want a walkthrough? Read the Kanban tutorial /docs/user-guide/features/kanban-tutorial — four user stories solo dev, fleet farming, role pipeline with retry, circuit breaker with dashboard screenshots of each. This page is the reference; the tutorial is the narrative. Hermes Kanban is a durable task board, shared across all your Hermes profiles, that lets multiple named agents collaborate on work without fragile in-process subagent swarms. Every task is a row in ~/.hermes/kanban.db ; every handoff is a row anyone can read and write; every worker is a full OS process with its own identity. Completion checkpoints before the iteration cap Dispatcher-owned workers get one checkpoint notice near 90% of their finite iteration budget, attached to a fresh tool result while another tool-capable call remains. Use agent.budget warning ratio to choose an earlier threshold. Tiny budgets warn no later than their penultimate iteration; a one-iteration run has no pre-cap checkpoint window. The notice is saved in the session transcript before the next request. Workers should call kanban complete only after verifying the task contract, or persist a progress comment and continue. A commit or diff alone never automatically completes a task. The hard cap, toolless final summary, and consecutive-failure circuit breaker are unchanged: workers that still exhaust their budget remain subject to bounded retries. This is a reporting opportunity, not a guarantee that a model will heed the notice. Ordinary conversations and delegated children do not inherit the automatic Kanban checkpoint; their iteration warning remains opt-in. Two surfaces: the model talks through tools, you talk through the CLI The board has two front doors, both backed by the same ~/.hermes/kanban.db : - Agents drive the board through a dedicated kanban toolset — kanban show , kanban list , kanban complete , kanban request review , kanban request changes , kanban block , kanban heartbeat , kanban comment , kanban attach , kanban attach url , kanban attachments , kanban create , kanban link , kanban unblock . The dispatcher spawns each worker with these tools already in its schema; orchestrator profiles can also enable the kanban toolset explicitly. The model reads and routes tasks by calling tools directly, not by shelling out to hermes kanban . See How workers interact with the board how-workers-interact-with-the-board below. - You and scripts, and cron drive the board through hermes kanban … on the CLI, /kanban … as a slash command, or the dashboard. These are for humans and automation — the places without a tool-calling model behind them. Both surfaces route through the same kanban db layer, so reads see a consistent view and writes can't drift. The rest of this page shows CLI examples because they're easy to copy-paste, but every CLI verb has a tool-call equivalent the model uses. This is the shape that covers the workloads delegate task can't: - Research triage — parallel researchers + analyst + writer, human-in-the-loop. - Scheduled ops — recurring daily briefs that build a journal over weeks. - Digital twins — persistent named assistants inbox-triage , ops-review that accumulate memory over time. - Engineering pipelines — decompose → implement in parallel worktrees → review → iterate → PR. - Fleet work — one specialist managing N subjects 50 social accounts, 12 monitored services . For the full design rationale, comparative analysis against Cline Kanban / Paperclip / NanoClaw / Google Gemini Enterprise, and the eight canonical collaboration patterns, see docs/hermes-kanban-v1-spec.pdf in the repository. PR completion contracts Declare PR work at creation with --completion-contract OWNER/REPO or an exact https://github.com/OWNER/REPO/pull/123 URL for existing work . kanban create accepts the same completion contract . Use local-only for intentionally local work; existing and undeclared cards retain that default. Prose URLs are not policy. After publishing, pass metadata.published pr to completion. The first matching URL binds the card permanently; retries cannot substitute a green sibling PR. CLI show --json and kanban show expose the persisted contract. The shared complete task boundary covers worker tools, CLI, review approval and dashboard completion. It reads classic branch protection and active ruleset required contexts, paginates exact-head check runs and legacy statuses, then re-reads the PR head/base. Optional failed/skipped telemetry does not veto accepted required checks. Missing, pending, failed, cancelled, timed-out, stale, skipped or neutral required evidence cannot complete the card. Neither can zero-run acceptance, unreadable policy or GitHub API failures. A repository without required checks needs a local-only contract. gh must be authenticated with read access to the repository's checks and rules; no remote writes are performed by this gate. Rejection retains the active card and workspace. Durable pr acceptance events store PR URL, SHA, required contexts, check IDs/URLs, classifications and recovery instructions; last failure error surfaces the next step. Fix failures, rerun infrastructure checks or wait, then retry completion. Use kanban block when human action is needed. Generic GitHub failure cannot establish whether a test or artifact upload failed; inspect its retained URL. Explicit infrastructure conclusions and API failures are classified separately. No extra worker is spawned. Receipt persistence and the terminal write recheck run/status/contract ownership under one SQLite lock: a reclaimed worker cannot complete or attach acceptance to the new run. The final GitHub read is a completion-time snapshot, not a distributed transaction or a continuous post-completion monitor. This is a single-user lifecycle guard, not OS isolation against arbitrary direct database writes. GitHub Enterprise is not covered. Related publication/lifecycle work: 91230, 84254, 52311; local verification and publication alone are not remote acceptance. Kanban vs. delegate task They look similar; they are not the same primitive. | | delegate task | Kanban | |---|---|---| | Shape | RPC call fork → join | Durable message queue + state machine | | Parent | Blocks until child returns | Fire-and-forget after create | | Child identity | Anonymous subagent | Named profile with persistent memory | | Resumability | None — failed = failed | Block → unblock → re-run; crash → reclaim | | Human in the loop | Not supported | Comment / unblock at any point | | Agents per task | One call = one subagent | N agents over task's life retry, review, follow-up | | Audit trail | Lost on context compression | Durable rows in SQLite forever | | Coordination | Hierarchical caller → callee | Peer — any profile reads/writes any task | One-sentence distinction: delegate task is a function call; Kanban is a work queue where every handoff is a row any profile or human can see and edit. Use delegate task when the parent agent needs a short reasoning answer before continuing, no humans involved, result goes back into the parent's context. Use Kanban when work crosses agent boundaries, needs to survive restarts, might need human input, might be picked up by a different role, or needs to be discoverable after the fact. They coexist: a kanban worker may call delegate task internally during its run. Core concepts - Board — a standalone queue of tasks with its own SQLite DB, workspaces directory, and dispatcher loop. A single install can have many boards e.g. one per project, repo, or domain ; see Boards multi-project boards-multi-project below. Single-project users stay on the default board and never see the word "board" outside this docs section. - Task — a row with title, optional body, one assignee a profile name , status triage | todo | ready | running | blocked | review | done | archived , optional tenant namespace, optional idempotency key dedup for retried automation . - Link — task links row recording a parent → child dependency. The dispatcher promotes todo → ready when all parents are done . - Comment — the inter-agent protocol. Agents and humans append comments; when a worker is re- spawned it reads the full comment thread as part of its context. - Workspace — the directory a worker operates in. Three kinds: - scratch default — fresh tmp dir under ~/.hermes/kanban/workspaces/