No server process
One .db file per project. No Redis, Postgres, queue, daemon, or network dependency.
Open source / Built for agent teams
Agentic Kanban — a lightweight coordination protocol for autonomous AI agents. 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.
# Scaffold the project
$ kanban init
→ .kanban/kanban.db
→ .kanban/agents/ (manager, worker, reviewer)
→ .kanban/skills/ (14 protocol skills)
→ .kanban/tools/ (kanban CLI)
14 skills · 3 agents · 1 binary 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 / Motivation
Sprint 1, task 1.1, task 1.2. Agents kept overwriting each other's updates, forgetting to mark things done, or picking up work already claimed. The file became noise fast.
The answer was a database. Every state change is a transaction, so two agents can't claim the same task. If one crashes, its lease expires and another picks it up — same as Rust's ownership model: one owner at a time, released when the owner disappears.
The .db file is the only coordination point. No server. No daemon. No message queue. Just a shared file on the filesystem you already share.
"The simplest coordination is the one you don't have to run."
04 / 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.
05 / Workflow
Three roles. Three plans. One lifecycle.
Manager reads spec → 3-pass extraction → user reviews proposal → approved tasks dispatch.
Worker claims highest-priority TODO (or reclaims expired leases). Dependencies respected.
Heartbeats renew the 15-min lease. Blocked tasks get marked with reason.
Complete directly or hand to reviewer. Reviewer approves or rejects with notes.
# Initialize with plan
$ kanban init --plan plan.md
# Manager: create plan proposal
$ kanban plan create plan.md
# User approves → kanban plan approve dispatches tasks
# Worker: claim next, work, complete
$ kanban task claim-next --agent alice --role worker
$ kanban task log-progress TASK-1 --agent alice --note "Done"
$ kanban task complete TASK-1 --agent alice --review
# Reviewer: review submission
$ kanban task approve TASK-1 --agent bob Plan flow: plan.md → proposal → approve → dispatch tasks
Rejection: IN_REVIEW → TODO (with reason)
Blocked: IN_PROGRESS → BLOCKED (lease cleared)
Crash recovery: lease expiry → lazy reclaim on next claim-next
Dependencies: tasks support depends_on — claim-next skips unmet deps by default
┌─────────────────────────────────────────────────────┐
│ SQLite Database │
│ .kanban/kanban.db │
└─────────────┬───────────────┬────────────────────────┘
│ │
┌────────────┴─────┐ ┌──────┴─────────────┐
│ Agent Config │ │ Embedded CLI │
│ agent .md files │ │ kanban task ... │
│ role definitions│ │ kanban skill ... │
└────────┬─────────┘ └──────────┬──────────┘
│ │
┌────────┴───────────────────────┴─────────┐
│ Agent Roles │
│ ┌──────────┐ ┌────────┐ ┌──────────┐ │
│ │ manager │ │ worker │ │ reviewer │ │
│ │ .md file │ │ .md │ │ .md │ │
│ │ plan │ │ claim │ │ approve │ │
│ │ dispatch │ │ work │ │ reject │ │
│ └──────────┘ └────────┘ └──────────┘ │
└──────────────────────────────────────────┘ 06 / Reference
Small enough to learn, explicit enough to debug.
task dispatch --title --role [--project] [--priority] [--depends-on]anyCreate a task with optional dependency list.
task claim <id> --agentworker, reviewerClaim a specific task by ID (hierarchical delegation).
task claim-next --agent --role [--count N] [--project] [--respect-deps]worker, reviewerAtomically claim the highest-priority task. --count N claims multiple.
task log-progress <id> --agent --note [--type]workerLog progress and renew the 15-minute lease.
task extend-lease <id> --agent [--minutes]workerExtend lease without logging progress (heartbeat).
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.
batch claim --agent --role [--count N] [--project]workerClaim multiple tasks atomically.
batch complete --ids --agent [--to-review]workerComplete multiple tasks in one transaction.
batch set-priority --ids --prioritymanagerSet priority for multiple tasks.
batch set-project --ids --projectmanagerSet a project label for multiple tasks.
task stats [--status] [--role]managerAggregate task statistics by status or role.
plan lintmanagerCheck for structural problems (cycles, missing deps).
init [--harness generic] [--plan plan.md] [--dir]setupScaffold database, agent .md files, skill files.
re-initsetupRe-scaffold agent files without touching the database.
events [--task TASK-1]allView the event log, optionally filtered by task.
skill list / skill view <name>allList or view embedded skill definitions.
07 / Skills
Skills teach agents the coordination protocol. Skills are embedded in the binary and scaffolded by kanban init.
── manager/ ──
# "I need to turn a spec into tasks"
→ kanban plan create plan.md
# 3-pass extraction → writes proposal
# "The user approved the plan"
→ kanban plan approve
# dispatches all checked tasks
# "I need one task now"
→ kanban task dispatch --title "..." --role worker --priority 10
# "What's on the board?"
→ kanban task search --status BLOCKED
→ kanban task view TASK-4
# "Wire up Slack"
→ setup-hooks (bash)
── worker/ ──
# "I need work"
→ kanban task claim-next --agent alice --role worker
# grabs highest-priority TODO (or reclaims expired)
# "I know which task"
→ kanban task claim TASK-12 --agent alice
# "Making progress, renew my lease"
→ kanban task log-progress TASK-12 --agent alice --note "..."
# "I'm stuck"
→ kanban task block TASK-12 --agent alice --reason "..."
# "I'm done"
→ kanban task complete TASK-12 --agent alice --review
── reviewer/ ──
# "What needs reviewing?"
→ kanban task claim-next --agent bob --role reviewer
# "This looks good"
→ kanban task approve TASK-5 --agent bob
# status → DONE
# "Needs rework"
→ kanban task reject TASK-5 --agent bob --reason "..."
# status → TODO Agent .md filesmanager.md · worker.md · reviewer.mdYAML frontmatter: tools, model, workflow steps
.kanban/skills/ (protocol)14 skill files + INDEXEmbedded in binary, teach coordination protocol
Agent Configagent .md filesRole definitions, workflow steps, tool references
kanban CLIgo binarySQLite transactions, leases, WAL checkpointing
Protocol skills ship with the binary and teach coordination. Task skills teach domain logic — you bring your own. Both live side by side in .kanban/skills/.
---
name: worker
description: Kanban worker agent that claims and completes tasks
---
You are a kanban worker agent. Claim and complete tasks
from the kanban board.
Workflow:
1. Claim the next available task
2. Work on the task, logging progress periodically
3. Submit for review or mark complete
4. If blocked, mark with reason
Long-running tasks:
For work >15 min, periodically run:
kanban task extend-lease <task-id> --agent <name> --minutes 30
Use claim-next --count N to claim multiple tasks
for parallel execution.
Skills in .kanban/skills/ provide detailed usage
instructions for bash fallback. 1. Scaffold
$ kanban init --plan plan.md
→ .kanban/kanban.db created
→ .kanban/agents/{manager,worker,reviewer}.md
→ .kanban/skills/ (14 skill files + INDEX)
→ plan.md parsed → tasks dispatched
2. Agent loads the config
$ kanban init
→ kanban CLI ready
→ 14 skills available
3. Run agents (harness-specific, e.g. pi run worker)
pi run manager
pi run worker
pi run reviewer
→ Agent reads its .md file
→ Uses CLI commands + skill docs 08 / 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 09 / Fit
Agentic Kanban solves one problem: reliable coordination. Bring your own agents, models, and workflow.
Best for Claude Code subagents, Codex workflows, and local coding agents on the same machine or shared filesystem. Concurrency tested up to 50 agents.
Read the sourceReference
Install, configure, and extend agentic-kanban.
One command setup. Binary releases, build from source, or curl pipe.
Complete CLI reference. Every command, flag, and output format.
State machine, lease model, dependency resolution, event system.
Pi subagents, Claude Code, raw CLI, batch workflows, crash recovery.
Ready to coordinate?
Git became the shared source of truth for code.
Agentic Kanban becomes the shared source of truth for work.