Skip to main content

Kanban Boards (Beta)

:::caution Beta Kanban Boards are a beta feature in v1.1.9. The data model and API surface are stable, but expect UI refinements in subsequent releases. The web dashboard labels this section "Kanban Boards (Beta mode)". :::

Mercury's Kanban system provides persistent task management with agent-driven execution. Boards are stored in SQLite (with JSON fallback) and accessible via the Web Dashboard (/board) or the REST/SSE API.

Cards

PropertyDescription
TitleCard name
DescriptionMarkdown-rendered task description
Statuspending, running, paused, done, failed, question
Prioritycritical, high, normal, low
LabelsArbitrary tags for categorization
CommentsThreaded comments with author tracking
AttachmentsLinked files (stored on disk, downloadable)
DependenciesBlocks/blocked-by relationships
Parent–childHierarchical card grouping

Status meanings

StatusMeaning
pendingNot yet picked up — waiting to be run
runningThe agent is actively working on it
pausedExecution paused (often after token-budget exhaustion or manual halt)
doneCompleted successfully
failedThe agent could not complete the card
questionThe agent has a clarifying question and is awaiting human feedback

The question status is what powers the Feedback loop — when the agent needs input, it parks the card in question and waits for you to respond from the UI or via POST /api/boards/:id/feedback/:feedbackId/respond.

Web Dashboard UI

Board list (/board)

  • Header reads "Kanban Boards (Beta mode)".
  • Create new boards, generate boards from a natural-language description, archive, delete, activate / deactivate.

Board view (/board/:boardId)

  • Columns — one per status, each scrollable independently (Trello-style). The whole row scrolls horizontally if you have many statuses.
  • Cards — drag and drop a card between columns to change status. The drag handler calls PATCH /api/boards/:boardId/cards/:cardId with the new status.
  • Description rendering — card descriptions are full Markdown (lists, code, headings). Descriptions longer than 280 characters are truncated with a "See more" link.
    • Clicking the truncated text (or "See more") opens the full description in a modal with scrolling and full Markdown.
    • The pencil icon next to the description is the only way to enter edit mode — clicking the description body itself just opens the read-only modal. This prevents accidental edits.
  • AI Plan — click Plan on a card and Mercury drafts an execution plan (GET /api/boards/:id/execution-plan) you can review before running. Smart execution runs the plan card-by-card respecting dependencies.
  • Run / Halt — per-card Run (▶) and Halt (■) buttons. Board-level Run all and Halt all buttons in the toolbar.
  • Feedback — when a card is in question status, a callout appears at the top with the question text and a response field.

Agent Execution

When a card is run, the agent autonomously processes the task:

  1. Card status moves to running.
  2. Agent executes the described task within a configurable token budget.
  3. On completion the status moves to done and a comment is appended with results.
  4. If the token budget is exhausted, execution auto-pauses (paused).
  5. If the agent needs human input, status moves to question and a feedback record is created.

Cascade execution

POST /api/boards/:boardId/cards/:cardId/cascade runs the selected card and recursively all of its dependents in dependency order.

Smart execution

POST /api/boards/:id/smart-execute walks the whole board, picking up pending cards whose dependencies are done, until either the board is fully done or it hits an unresolved blocker.

Board Context

Each board can define context that is injected into every card's prompt:

  • Working directory — where file operations execute (POST /api/boards/:id/context/directory)
  • Custom variables — key-value pairs (/context/variables)
  • Instructions — system-level guidance (/context/instructions)
  • Structure definition — expected project layout (/context/structure)
  • Knowledge base — reference material (/context/knowledge)

API Surface

Boards

GET /api/boards
POST /api/boards
GET /api/boards/:id
PATCH /api/boards/:id
DELETE /api/boards/:id
POST /api/boards/:id/activate
POST /api/boards/:id/deactivate
POST /api/boards/:id/generate # natural-language board generation
GET /api/boards/:id/execution-plan
POST /api/boards/:id/smart-execute
POST /api/boards/:id/run-all
POST /api/boards/:id/halt-all

Cards

POST /api/boards/:id/cards
POST /api/boards/:id/cards/bulk
PATCH /api/boards/:boardId/cards/:cardId
DELETE /api/boards/:boardId/cards/:cardId
POST /api/boards/:id/cards/reorder
POST /api/boards/:id/cards/clear-done
POST /api/boards/:boardId/cards/:cardId/run
POST /api/boards/:boardId/cards/:cardId/halt
POST /api/boards/:boardId/cards/:cardId/cascade

Comments, attachments, labels, hierarchy

GET /api/boards/:boardId/cards/:cardId/comments
POST /api/boards/:boardId/cards/:cardId/comments
DELETE /api/boards/:boardId/cards/:cardId/comments/:commentId
GET /api/boards/:boardId/cards/:cardId/attachments
POST /api/boards/:boardId/cards/:cardId/attachments
DELETE /api/boards/:boardId/cards/:cardId/attachments/:attachmentId
GET /api/boards/:boardId/cards/:cardId/attachments/:attachmentId/content
GET /api/boards/:boardId/cards/:cardId/attachments/:attachmentId/download
POST /api/boards/:boardId/cards/:cardId/labels
DELETE /api/boards/:boardId/cards/:cardId/labels/:labelId
POST /api/boards/:boardId/cards/:cardId/parent
POST /api/boards/:boardId/cards/:cardId/dependencies
DELETE /api/boards/:boardId/cards/:cardId/dependencies/:depId

Context

GET /api/boards/:id/context
POST /api/boards/:id/context/directory
POST /api/boards/:id/context/variables
POST /api/boards/:id/context/instructions
POST /api/boards/:id/context/structure
POST /api/boards/:id/context/knowledge

Feedback (question status)

GET /api/boards/:id/feedback
POST /api/boards/:boardId/feedback/:feedbackId/respond

Real-time updates (SSE)

GET /api/boards/:id/events

Subscribe to a Server-Sent Events stream for live status updates as cards are processed (status changes, comments added, feedback raised).