Skip to main content

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:

  1. 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.
  2. 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 install on macOS Homebrew Python — it errors with externally-managed-environment (PEP 668). pipx/uv handle 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 agents shows 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.jsonagent_overrides. A card set to auto runs on whatever the matched runner has.

Safety: by default agents run with auto-approve flags so tasks run unattended (Claude --dangerously-skip-permissions, Codex workspace-write). For safe mode — agents run without those flags (Codex read-only, Claude without skip-permissions) — start with kanbot up --safe or set it persistently with kanbot config --safe (--unsafe to revert). The runner shows a 🔒 safe badge on the board when safe mode is on.

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

kanbot-0.2.2.tar.gz (58.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

kanbot-0.2.2-py3-none-any.whl (62.2 kB view details)

Uploaded Python 3

File details

Details for the file kanbot-0.2.2.tar.gz.

File metadata

  • Download URL: kanbot-0.2.2.tar.gz
  • Upload date:
  • Size: 58.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for kanbot-0.2.2.tar.gz
Algorithm Hash digest
SHA256 a7722d0ce2e9755c9dd7c965a9cc23119f96f0310969d1198cd58d4d868d3cf6
MD5 57d90f51985582c9cd131ae979bb524c
BLAKE2b-256 eb76719e9d0c4dc0a1d7df4494bfe0a0223734fb2ea79c0e571570598373e753

See more details on using hashes here.

File details

Details for the file kanbot-0.2.2-py3-none-any.whl.

File metadata

  • Download URL: kanbot-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 62.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for kanbot-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 2ec1efa6d784bdc87820ea63ec7beddaf4a8d1e96e33c887437110e70f843d0a
MD5 62c096a05dddf3545e3188a8dbb44ced
BLAKE2b-256 93a4de3b5051aa091f39771789a6a741d1cbde849a11f9c7a697639dc183ddef

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page