A Kanban board where every card is a task run by your local CLI coding agents (Claude, Codex, Gemini, GLM/ZAI, or any CLI you define).
Project description
KanBot
A visual control room for your coding-agent TUIs — and a Kanban board where every card is a task run by them.
Live demo: https://getkanbot.vercel.app · Install: pipx install kanbot && kanbot up
You run a lot of terminal coding agents (Claude Code, Codex, …). KanBot gives you one screen to see what every session is doing, pick any of them back up, and drop new tasks that agents run for you — with live logs streamed straight to the card.
Two things in one board:
- Track your TUIs. A background runner watches each agent's local session store and surfaces every session as a card: the project, the latest message, how many turns, how long it's been brewing, and whether it's working right now. Sessions flow by recency — working → Running, just-finished → Done, older → Backlog.
- Run new tasks. Drop a card, pick an agent, and the runner executes it and
streams stdout/stderr to the card. Or drag any tracked session into Running
to resume it (
claude --resume,codex exec resume).
Backlog Running Review Done
(stale sessions (sessions (your (recently
+ new tasks) working now finished finished
+ running tasks) tasks) sessions)
│ drag → Running, or "Run", queues for a runner
▼
╔══════════════════════════════╗
║ kanbot runner (background) ║ detects claude · codex · gemini · glm · shell
║ watches ~/.claude, ~/.codex ║ executes & resumes, streams logs back
╚══════════════════════════════╝
Quickstart
Easiest (isolated, sidesteps Homebrew's PEP 668 externally-managed error):
pipx install kanbot && kanbot up # or zero-install: uvx kanbot up
From source (until it's on PyPI):
python3 -m venv .venv && . .venv/bin/activate
pip install -e .
kanbot up # server + local runner, board at :8787
Don't use bare
pip installon macOS Homebrew Python — it errors withexternally-managed-environment(PEP 668).pipx/uvhandle the env for you.
The board immediately fills with your recent Claude/Codex sessions. Click any one to see its recent transcript in a terminal view and resume it; or hit + add task to give an agent fresh work.
Run the pieces separately (e.g. runner on another machine):
kanbot server # the board / API
kanbot runner --server http://HOST:8787 --name gpu-box
Tracking other agents (Hermes, OpenCode, your own…)
Claude Code and Codex are tracked out of the box. Any agent that logs
newline-delimited JSON transcripts can be added with no code change — point
KanBot at its store in ~/.kanbot/config.json:
{
"discovery_sources": [
{
"name": "hermes",
"label": "Hermes",
"root": "~/.hermes/sessions",
"pattern": "*.jsonl",
"recursive": true,
"fmt": "claude"
}
]
}
fmt:"claude"for flat records ({type, message, cwd, timestamp}) or"codex"for payload-nested records ({payload: {role, content, cwd}}).kanbot agentsshows which trackers are active and where they read from.
Run agents
kanbot agents lists the CLIs detected on this machine. Built-in catalog:
| agent | run | resume |
|---|---|---|
claude |
claude -p "<prompt>" |
claude --resume <id> -p "<prompt>" |
codex |
codex exec --sandbox workspace-write "<prompt>" |
codex exec resume <id> "<prompt>" |
gemini |
gemini -y -p "<prompt>" |
— |
glm |
Claude Code w/ ANTHROPIC_BASE_URL=https://api.z.ai/api/anthropic |
✓ |
opencode, aider, cursor-agent, hermes, shell |
see kanbot/agents.py |
— |
Override or add any agent's command in ~/.kanbot/config.json →
agent_overrides. A card set to auto runs on whatever the matched runner has.
Note: built-in run commands use auto-approve flags so tasks run unattended. Review
kanbot/agents.pyand dial them back if you want a human in the loop.
Tags & insights
Tags are colored labels; a tag can also be an insight provider (◆) that pulls
live context onto any card: git (branch/diff), files (recent changes), or
a custom command (e.g. pytest -q).
CLI
kanbot up server + local runner (best first run)
kanbot server board / API only
kanbot runner background runner only (--server, --name, --concurrency)
kanbot agents detected agents + active session trackers
kanbot config server URL, token, runner name, enable/disable agents
kanbot open open the board
Config: ~/.kanbot/config.json · data: ~/.kanbot/kanbot.db.
Set KANBOT_TOKEN on the server to require a matching --token from runners.
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file kanbot-0.2.0.tar.gz.
File metadata
- Download URL: kanbot-0.2.0.tar.gz
- Upload date:
- Size: 56.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5b36160aab9e7edb8091a3b1de9d1fa1bb1b91f0efdf628d7acee2a19ef8b0b9
|
|
| MD5 |
7c19df3144003fea0f2a1bcea91af507
|
|
| BLAKE2b-256 |
46338e3e0bdfa66bed92859eed39f2a5338da8ad5943e132cf489b21702996dd
|
File details
Details for the file kanbot-0.2.0-py3-none-any.whl.
File metadata
- Download URL: kanbot-0.2.0-py3-none-any.whl
- Upload date:
- Size: 59.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5e406c1d434e4face3976489677b24f48873a8d2b837c8cdbd84d5cc0b42d602
|
|
| MD5 |
1a0f863db6b0900320df0297002d488e
|
|
| BLAKE2b-256 |
922d0a2d651da0849f067ba6a3473235dd4018f1af01888f8a7ade211606a96d
|