No server process
One .db file per project. No Redis, Postgres, queue, daemon, or network dependency.
Open source / Built for agent teams
No servers. No daemons. No queues. Durable task coordination through one SQLite file. Agents claim work atomically, report progress, survive crashes, and hand off reviews without anything in the middle.
# Manager creates work
$ kanban task dispatch \
--title "Implement token refresh" \
--role worker --priority 8
{"id":"TASK-04","status":"TODO"}
# Agent claims the next task
$ kanban task claim-next \
--agent worker-2 --role worker
{
"id": "TASK-04",
"title": "Implement token refresh",
"status": "IN_PROGRESS",
"lease_owner": "worker-2"
}
01 / Install
curl -sfL https://raw.githubusercontent.com/mrSamDev/agentic-kanban/main/install.sh | sh
Single Go binary + SQLite. For pinned versions, use GitHub Releases.
02 / Problem
One edits code. Another writes tests. A third reviews. Without shared state, they conflict, duplicate work, and wait.
Most setups reach for familiar infrastructure:
That's a lot to run for a handful of agents on the same machine.
The simpler answer
Treat coordination as a database problem.
Every agent reads and writes to the same SQLite file. No RPC. No event bus. No server process. Just durable shared state.
03 / Why
Use the filesystem you already share. Keep task ownership explicit and recoverable.
One .db file per project. No Redis, Postgres, queue, daemon, or network dependency.
Concurrent agents calling claim-next receive different tasks through SQLite write serialization.
Tasks use 15-minute leases. Progress renews ownership; expired work becomes claimable again.
Commands write predictable JSON to stdout. Errors use stderr and exit code 2.
Write-Ahead Log checkpointing prevents unbounded disk growth during long-running coordination.
Markdown role skills teach agents the workflow without another tool-calling protocol.
04 / Workflow
A manager creates prioritized work for a role.
An agent atomically claims the highest-priority task.
Progress notes renew the lease and preserve context.
Complete directly or hand the task to a reviewer.
# Initialize this project
$ kanban init --harness pi
# Dispatch work
$ kanban task dispatch \
--title "Set up auth" \
--role worker --priority 10
# Claim, report, complete
$ kanban task claim-next \
--agent my-agent --role worker
$ kanban task log-progress TASK-1 \
--agent my-agent --note "Working"
$ kanban task complete TASK-1 \
--agent my-agent --review
SQLite Database
│
┌────────────┼────────────┐
│ │ │
Worker A Worker B Reviewer
│ │ │
claim-next claim-next approve
│ │ │
progress progress reject
│ │
complete complete
05 / Reference
Small enough to learn, explicit enough to debug.
task dispatch --title --role [--project] [--priority]anyCreate a task in TODO.
task claim-next --agent --role [--project]worker, reviewerAtomically claim the highest-priority task.
task log-progress <id> --agent --note [--type]workerLog progress and renew the 15-minute lease.
task block <id> --agent --reasonworkerMark blocked and clear the current lease.
task complete <id> --agent [--review]workerMark done or submit the task for review.
task view <id> [--notes] [--history]allView task detail, notes, and history.
task search [--status] [--role] [--agent] [--project]managerFilter the task list.
task approve <id> --agentreviewerMove IN_REVIEW to DONE.
task reject <id> --agent --reasonreviewerReturn IN_REVIEW to TODO with context.
task batch set-priority --ids --prioritymanagerSet priority for multiple tasks.
task batch set-project --ids --projectmanagerSet a project label for multiple tasks.
init [--harness] [--plan] [--dir]setupScaffold the database and role skills.
06 / Skills
Skills teach agents the coordination protocol. One set per role.
manager/dispatch-task, dispatch-plan, approve-plan, review-backlog, view-taskPlan work, dispatch tasks, review progress
worker/claim-next-task, log-progress, complete-task, block-taskClaim tasks, report progress, finish work
reviewer/claim-review, approve-task, reject-taskReview submissions, approve or reject
Protocol skills vs task skills
Protocol skills teach coordination—they ship with the binary. Task skills teach domain logic—you bring your own. Both live side by side in the agent's skill directory. The agents change. The protocol stays.
07 / Hooks
Drop an executable in .kanban/hooks/ and extend the workflow without touching the core.
task.createdtask-createdTask dispatched
task.claimedtask-claimedAgent claims a task
task.progresstask-progressProgress logged
task.completedtask-completedTask finished
task.submitted_for_reviewtask-submitted-for-reviewSubmitted for review
task.blockedtask-blockedBlocked
review.approvedreview-approvedApproved
review.rejectedreview-rejectedRejected
task.priority_updatedtask-priority-updatedBatch priority update
task.project_updatedtask-project-updatedBatch project label update
Hooks receive event JSON on stdin with a 30-second timeout. Errors log to stderr but don't fail the operation. Missing hooks are silently ignored. Chain multiple hooks using a .d/ directory — hooks run concurrently so a slow notifier won't block the caller.
task-created
task-completed
task-completed.d/
slack
metrics
dashboard
08 / Fit
Agentic Kanban solves one problem: reliable coordination. Bring your own agents, models, and workflow.
Best for Claude Code subagents, PI subagents, Codex workflows, and local coding agents on the same machine or shared filesystem. Concurrency tested up to 50 agents.
Read the sourceReady to coordinate?
Git became the shared source of truth for code.
Agentic Kanban becomes the shared source of truth for work.