Agentic Kanban
A kanban board for managing AI agent sessions.
Each ticket is bound to an agent session (Claude Code, pi.dev) running inside its own git worktree, executed in the target repository's existing devcontainer. The active harness is selected globally in the app's settings.
Features
Agent sessions
- Every ticket runs an AI agent in its own git worktree, inside a Docker container — no contention, no rebasing pain.
- Reuses the target repo's
.devcontainer/devcontainer.json, or falls back to a bundled Ubuntu devcontainer (git, gh, node, Go) so any repo works with zero setup. - Pluggable harnesses (Claude Code, pi.dev), switchable globally in settings.
- Drive the agent from a full terminal in the browser, plus a second plain shell — both backed by a WASM terminal emulator.
- Claude Code conversations resume automatically across container and server restarts.
Boards & tickets
- Kanban boards tied to a git repo, with configurable columns and drag-and-drop tickets with markdown bodies.
- Sync (rebase/merge from base) and merge (merge-commit / squash / rebase) straight from the ticket panel.
- Optional AI-generated merge commit messages and per-board commit identity.
- Archive, unarchive, and delete tickets; archived drawer with bulk actions.
- Multi-board overview with tiling, resizable session panels for working several tickets at once.
Diff, tasks & ports
- Built-in diff viewer with a changed-files tree, syntax highlighting, whole-file view, and expandable context.
- Tasks tab discovers
.vscode/tasks.jsontasks, runs them, streams live output, and stops them. - Per-task port forwarding proxies in-container dev servers to host ports
13000–13099and surfaces them on the ticket. - Plans tab renders the
.mdplans the agent writes (e.g. Claude Code's/planmode).
GitHub integration
- Auto-moves tickets when their linked PR or issue changes state, with configurable column mappings.
- Live PR detail: diff totals, rolled-up review decision, and CI check status.
- Build Cop polls GitHub Actions and files tickets for jobs whose failure rate crosses a threshold, on its own auto-managed board (
Failing/Investigating/Fixed/Won't fix).
Interfaces & ops
- Web UI with light / dark / high-contrast themes, accent colors, and remappable keyboard shortcuts.
- REST API with Server-Sent Events for live updates, an MCP server for Claude Desktop / Claude Code, and noun-verb CLI subcommands.
- Ships as a single self-contained ~20 MB Go binary — also distributed as a Docker image and a PyPI wrapper — backed by local SQLite.
- Prometheus
/metricsand a/healthendpoint; project + user.kanban.tomlconfig that merge.
Install
uv tool install agentic-kanban
This installs the binary to ~/.local/bin/kanban.
Make sure to have that on your PATH.
Run
kanban serve
The server listens on :7474. Open http://localhost:7474/.
Or with Docker:
SOURCE=$HOME/code
docker run -d --name kanban \
--restart unless-stopped \
-p 127.0.0.1:7474:7474 \
-p 13000-13099:13000-13099 \
-v ${DOCKER_SOCK_PATH:-/var/run/docker.sock}:/var/run/docker.sock \
-v $HOME/.claude:$HOME/.claude \
-v $HOME/.claude.json:$HOME/.claude.json \
-v $HOME/.pi/agent:$HOME/.pi/agent \
-v $HOME/.local/share/kanban:$HOME/.local/share/kanban \
-v $HOME/.gitconfig:$HOME/.gitconfig:ro \
-v $HOME/.config/git:$HOME/.config/git:ro \
-v $SOURCE:$SOURCE \
-e HOME=$HOME \
-e XDG_RUNTIME_DIR=$XDG_RUNTIME_DIR \
-e KANBAN_DATA_DIR=$HOME/.local/share/kanban \
-e KANBAN_HOST_DOCKER_SOCK=${DOCKER_SOCK_PATH:-/var/run/docker.sock} \
-e GH_TOKEN=$(gh auth token) \
lahmanja/kanban:latest
📖 Documentation
Full documentation lives at https://jmelahman.github.io/agentic-kanban/:
- Quickstart — your first board and ticket in five minutes.
- Configuration —
.kanban.tomlschema and merge rules. - REST API — endpoints exposed by the running server.
- CLI —
serve,mcp,board list,ticket create. - MCP — Claude Desktop / Claude Code integration.
Release files for agentic-kanban 1.5.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| agentic_kanban-1.5.1-py3-none-win_arm64.whl | Python 3 | none | Windows ARM64 | Details |
| agentic_kanban-1.5.1-py3-none-win_amd64.whl | Python 3 | none | Windows x86-64 | Details |
| agentic_kanban-1.5.1-py3-none-manylinux_2_17_x86_64.whl | Python 3 | none | Linux glibc 2.17+ x86-64 | Details |
| agentic_kanban-1.5.1-py3-none-manylinux_2_17_aarch64.whl | Python 3 | none | Linux glibc 2.17+ ARM64 | Details |
| agentic_kanban-1.5.1-py3-none-macosx_11_0_arm64.whl | Python 3 | none | macOS 11.0+ ARM64 | Details |
| agentic_kanban-1.5.1-py3-none-macosx_10_12_x86_64.whl | Python 3 | none | macOS 10.12+ x86-64 | Details |
| agentic_kanban-1.5.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 109.4 MB
Release files / agentic_kanban-1.5.1-py3-none-win_arm64.whl
| Download URL | agentic_kanban-1.5.1-py3-none-win_arm64.whl |
|---|---|
| Size | 15.1 MB |
| Tags | Python 3 Windows ARM64 |
|
SHA-256 checksum How to use checksums |
3fe7c0882db83f87d62a563ddd0979fc67a67e1c5eff377811d49b7f8d7b33d4
|
|
BLAKE2b-256 checksum How to use checksums |
7c8c189b04b28e747760738391872229f950e6cc5466f44bc794c01f0616a584
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.18 {"installer":{"name":"uv","version":"0.12.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / agentic_kanban-1.5.1-py3-none-win_amd64.whl
| Download URL | agentic_kanban-1.5.1-py3-none-win_amd64.whl |
|---|---|
| Size | 16.1 MB |
| Tags | Python 3 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
5612d175a210fd8d69d6eead968acf74915afb957781fc6f3a89677d32149140
|
|
BLAKE2b-256 checksum How to use checksums |
39ac853b9005fc93bdd4118ac3810edfa7d27253df6fa1e6fecd0e9eabc9ee3d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.18 {"installer":{"name":"uv","version":"0.12.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / agentic_kanban-1.5.1-py3-none-manylinux_2_17_x86_64.whl
| Download URL | agentic_kanban-1.5.1-py3-none-manylinux_2_17_x86_64.whl |
|---|---|
| Size | 15.9 MB |
| Tags | Linux glibc 2.17+ x86-64 Python 3 |
|
SHA-256 checksum How to use checksums |
fc49f189be45f3ea9c958d60186f036d2c847a1ecf24ca9b409d2c2eb8dd8574
|
|
BLAKE2b-256 checksum How to use checksums |
44ebca9b96be521c6158021d374980bb88c20caa2f4c4e4001e6aebee7759a58
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.18 {"installer":{"name":"uv","version":"0.12.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / agentic_kanban-1.5.1-py3-none-manylinux_2_17_aarch64.whl
| Download URL | agentic_kanban-1.5.1-py3-none-manylinux_2_17_aarch64.whl |
|---|---|
| Size | 15.0 MB |
| Tags | Linux glibc 2.17+ ARM64 Python 3 |
|
SHA-256 checksum How to use checksums |
6ed14bc411bd4b3281f057cc525454e9b05ea20378937c6d4ec81ea10fe39147
|
|
BLAKE2b-256 checksum How to use checksums |
bf54bdc62fca56f31ae8a1325397e78ff0c8f08f5271b92b650fc670b040f57f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.18 {"installer":{"name":"uv","version":"0.12.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / agentic_kanban-1.5.1-py3-none-macosx_11_0_arm64.whl
| Download URL | agentic_kanban-1.5.1-py3-none-macosx_11_0_arm64.whl |
|---|---|
| Size | 15.6 MB |
| Tags | Python 3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
3d12b79b31ac4377a633c5189b5c823487d8fc48f957fc4777488d6af38013e2
|
|
BLAKE2b-256 checksum How to use checksums |
d4beaa79aad1f516bade5bf2980399f85fc9d124c963b996433d6e0ef2a9ace7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.18 {"installer":{"name":"uv","version":"0.12.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / agentic_kanban-1.5.1-py3-none-macosx_10_12_x86_64.whl
| Download URL | agentic_kanban-1.5.1-py3-none-macosx_10_12_x86_64.whl |
|---|---|
| Size | 16.0 MB |
| Tags | Python 3 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
54ace60edb88efc217af8a3c314d511c69fc5a8bbff5d3294da9463dc79013a2
|
|
BLAKE2b-256 checksum How to use checksums |
5ea689b39ccbd1fed7333c4ce9bea5d91ef36826a094965ced7dbe54d7d4fbfd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.18 {"installer":{"name":"uv","version":"0.12.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / agentic_kanban-1.5.1-py3-none-any.whl
| Download URL | agentic_kanban-1.5.1-py3-none-any.whl |
|---|---|
| Size | 15.9 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
329ae68ac619afc528d69593bae64202a435a71f16c01bcc4b483c6110647275
|
|
BLAKE2b-256 checksum How to use checksums |
0fbb662f9806c47418278b749f9efcf0533788dfede74a42d7ad1c558e452a9a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.18 {"installer":{"name":"uv","version":"0.12.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|