A kanban board that runs Claude Code and Codex agents in parallel. Drop a folder. Get a board. Dispatch agents on every card — at the same time, each in its own worktree. Or hit autopilot and let them split tasks, run them in parallel slots, and check their own work while you sleep.
- Parallel agents on the board. Dispatch on as many cards as you
want; each agent runs in its own git worktree on a
kanbots/issue-Nbranch. The board updates live as runs progress, decisions surface, costs accrue. Drag a card, start an agent — that's the whole loop. - Autopilot mode. Hand kanbots an issue and a budget; it iterates in cycles until the work converges or the cost cap hits. Two flavours: feature-dev (multi-persona round-robin) and QA (run typecheck/tests/lint/e2e, fix what fails, repeat).
- Self-evolving feature dev. Plug in personas — product author, engineer, reviewer, tester — and a parallelism count (up to 4). The orchestrator round-robins through personas, runs slots concurrently, splits parent issues into subtasks, and evolves the backlog as agents discover work. Personas spawn personas.
- Pick your CLI. Claude Code or Codex. Same board, same worktrees,
same decision UI — kanbots speaks both stream formats behind a
single
AgentCliAdapterinterface. - Local-first, zero servers. Everything lives in
.kanbots/next to your repo: SQLite database, configs, worktrees. No cloud account, no telemetry, no HTTP server. This is the open-source desktop edition.
Autopilot — Feature Dev: pick personas, parallelism (up to 4), effort, and model. Slots round-robin through personas; agents split the issue into subtasks as they go.
KanBots Cloud adds real-time collaboration, multi-user boards, and managed agent infrastructure — same UI, paid tier. The OSS desktop stays free forever.
Read more about the two-product split: docs/why-two-products.md.
- Kanban with five columns (Backlog → Done) plus an Inbox for
unlabeled cards. Drag to move; in GitHub mode the move is mirrored
as
status:*label edits. - Local-first issues by default — stored in SQLite. Switch to GitHub mode to drive real issues on a repo.
- Claude Code or Codex agents per run, isolated in per-run worktrees. A pre-push hook prevents agents from pushing.
- Live agent thread — every
tool_use/tool_resultstreams in. Decision prompts pop into the UI; click an option, the run continues. - Branch preview — start the worktree's dev server in one click and open a live URL.
- Promote — land an agent's worktree as a real commit, or open a draft PR (GitHub mode).
- Sentry import — auto-pull error groups onto the board for triage; one click hands the issue to an agent.
- MCP server —
kanbots-mcp-serverexposes the board over Model Context Protocol so Cursor, Claude Desktop, or anything MCP-aware can drive it.
- Node 20+ and pnpm 10+
claudeonPATH(Claude Code CLI) — sign in withclaude /logincodexonPATHif you want Codex agentsgit- Optional:
ghCLI for GitHub mode auth
Packaged builds for Linux, macOS (Apple Silicon + Intel), and Windows (x64) are published to the GitHub releases page. macOS and Windows builds are currently unsigned — see docs/getting-started.md for the right-click-Open / SmartScreen-bypass walkthrough. Releasing infrastructure lives in docs/releasing.md.
pnpm install
pnpm desktop # build everything, open Electron
# or, for hot-reload:
pnpm desktop:dev # Vite + tsup --watch + electronmonA workspace picker opens. Pick any folder that contains a git
repository. On first open, kanbots creates .kanbots/ (db + config +
worktrees) and drops you on the board.
See docs/getting-started.md for the full walkthrough.
.kanbots/
├── db.sqlite # all issues, threads, runs, providers, settings
├── config.json # workspace mode + defaults (see docs/configuration.md)
├── worktrees/ # one subdir per agent run
├── attachments/ # files dragged into chats / cards
├── mcp-runtime/ # transient MCP configs handed to claude / codex
└── promote/ # staging area when promoting a worktree to a commit
Nothing is written outside this directory or the worktrees it creates.
| Mode | Source of issues | Use it for |
|---|---|---|
local |
SQLite in .kanbots/db.sqlite |
Solo work, side projects, anywhere you don't want GitHub Issues |
github |
GitHub REST via Octokit | When the repo's issues already live on GitHub |
See docs/issues.md for auth setup and the
IssueSource contract.
- Click Dispatch on a card.
- kanbots creates
.kanbots/worktrees/issue-<n>-<runId>/, branched from the repo's default branch. - It spawns
claude -p(orcodexexec mode) against that worktree with stream-JSON output, parses every event, and forwards it to the UI. - If the agent requests a decision, the run pauses and a card pops up. You answer it; the run continues.
- When the run finishes (or you stop it), the worktree stays on disk:
- Branch preview — start its dev server.
- Promote commit — land it on your real branch.
- Open draft PR — GitHub mode only.
- Discard — remove worktree + branch.
A pre-push hook is installed in every worktree so agents can't push to remote on their own. Promotion is always an explicit user step.
Issue detail: live agent thread, decision prompt with numbered
options, run stats (model, elapsed, tokens, cost), check buttons,
worktree/branch info, and a Reply box that accepts slash commands
(/spec, /review, /split).
Details: docs/agents.md.
Autopilot turns dispatch from a one-shot click into a loop.
feature-dev— Multi-persona, parallel slots (up to 4). Round-robin through your persona roster on the parent issue; agents split into subtasks as they go. Stops on completion, stop button, or session cost budget.qa— Runs configurable check commands (typecheck/tests/lint/build/e2e), optionally starts a dev server and watches it, and dispatches fix runs against whatever fails.
Both write to autopilot_sessions so you can watch the cycle history,
see every child run, and stop the whole tree from a single button.
Details: docs/agents.md#autopilot.
| Topic | What's there |
|---|---|
| Getting started | Install, first run, picking a workspace |
| Agents | Claude Code & Codex runs, decision prompts, containment, costs, autopilot, personas |
| Providers | AI providers modal — picking the agent CLI, API key storage |
| Issues | Local mode, GitHub mode, auth, Sentry import |
| MCP server | Wiring kanbots-mcp-server into Cursor or Claude Desktop |
| Configuration | .kanbots/config.json, env vars, check command overrides |
| Architecture | Packages, IPC bridge, database, dependency graph |
| Package | Purpose |
|---|---|
@kanbots/core |
Domain types, GitHub client, IssueSource contract |
@kanbots/local-store |
SQLite schema, migrations, repos, LocalIssueSource |
@kanbots/dispatcher |
Agent runtime — spawns Claude Code / Codex, parses stream-json, manages worktrees |
@kanbots/llm |
CLI adapters and provider catalogue |
@kanbots/api |
Pure handler library + agent supervisor (no HTTP server) |
@kanbots/mcp |
MCP server (kanbots-mcp-server bin) |
@kanbots/web |
React + Vite UI |
@kanbots/desktop |
Electron shell, IPC bridge, workspace picker |
MIT — see LICENSE.


