Code Agent Kanban
A real-time web dashboard that monitors AI coding sessions across multiple servers (currently supports Claude Code and Codex), displaying them as a kanban board with AI-powered task summaries.
If you run coding agents on multiple machines simultaneously, it's easy to lose track of what each agent is doing. This tool SSHs into your servers, collects sessions, and presents them in a single unified view.
Features
- Multi-server monitoring — SSH into remote servers to collect session data in parallel
- Live kanban board — Sessions organized into Running / Completed / Errors columns
- Multi-provider support — Switch between
claudeandcodexproviders from Settings - AI-powered summaries — Sessions are summarized by local CLI (
claudeorcodex) with task description, progress status, and estimated completion percentage - Auto-refresh — Dashboard updates automatically; fast-polls on first load to pick up AI summaries quickly
- Session lifecycle tracking — Sessions move from Running to Completed when the Claude Code process exits; resumed sessions move back to Running
- Web-based configuration — Add/edit/remove SSH servers and test connections from the Settings panel, no config files needed
- Summary caching — Summaries are cached on disk; unchanged sessions won't be re-summarized, even across restarts
Prerequisites
- Python 3.11+
- uv package manager
- For
claudeprovider: Claude Code CLI installed - For
codexprovider: Codex CLI installed (codex) - SSH key-based access to remote servers (for multi-server monitoring)
Quick Start
Install with uv (recommended)
uvx claude-kanban
Install with pip
pip install claude-kanban
claude-kanban
Run from source
git clone https://github.com/ShenJiahuan/claude-kanban.git
cd claude-kanban
uv run claude-kanban
Open http://localhost:5555 in your browser.
By default, it scans the local machine for Claude Code sessions. You can switch provider to Codex in Settings.
How It Works
- Session discovery — Scans provider-specific session logs (
~/.claude/...or~/.codex/...) on each server - Conversation parsing — Extracts first task messages and latest progress messages from JSONL logs
- AI summarization — Sends conversation excerpts (first 3 + last 6 messages) to local CLI (
claude -porcodex exec) - Lifecycle tracking — Sessions move between Running and Completed based on activity/process state
Configuration
All configuration is done through the web UI (Settings button). Under the hood, settings are persisted to ~/.claude-kanban/config.yaml:
include_local: true
provider: claude # claude | codex
servers:
- host: gpu-server-1.example.com
user: ubuntu
label: GPU Server 1
- host: 10.0.0.50
user: root
port: 2222
key: ~/.ssh/id_ed25519
label: Dev Box
Server options
| Field | Required | Default | Description |
|---|---|---|---|
host |
Yes | — | Hostname or IP |
user |
No | Current user | SSH username |
port |
No | 22 | SSH port |
key |
No | ~/.ssh/id_rsa |
Path to SSH private key |
label |
No | Same as host | Display name on the dashboard |
Remote server requirements
- Python 3 installed
- For
claudeprovider: Claude Code installed (sessions stored in~/.claude/) - For
codexprovider: Codex installed (sessions stored in~/.codex/) - SSH key-based authentication configured
Environment variables
| Variable | Default | Description |
|---|---|---|
KANBAN_CONFIG |
~/.claude-kanban/config.yaml |
Path to configuration file |
KANBAN_DATA_DIR |
~/.claude-kanban |
Data directory for config and summary cache |
API
| Endpoint | Method | Description |
|---|---|---|
GET /api/sessions |
GET | Returns all sessions (cached 30s) |
POST /api/refresh |
POST | Force refresh and return sessions |
GET /api/servers |
GET | List configured servers |
POST /api/servers |
POST | Add a server |
PUT /api/servers/<id> |
PUT | Update a server |
DELETE /api/servers/<id> |
DELETE | Remove a server |
POST /api/servers/<id>/test |
POST | Test SSH connection |
PUT /api/config/local |
PUT | Toggle local machine scanning |
PUT /api/config/provider |
PUT | Set provider (claude / codex) |
License
MIT
Metadata
Release files for claude-kanban 0.3.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| claude_kanban-0.3.1.tar.gz | 497.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| claude_kanban-0.3.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 519.5 kB
Release files / claude_kanban-0.3.1.tar.gz
| Download URL | claude_kanban-0.3.1.tar.gz |
|---|---|
| Size | 497.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
11af13eb7064e9accaed214f019bd1e81266cbaa643371f54f0cd818ba121bc2
|
|
BLAKE2b-256 checksum How to use checksums |
04bcce8b6095f9ec829300e7eba8b780e0dea1de7669f594e0d6ccb88d3b68ad
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.6.9
|
Release files / claude_kanban-0.3.1-py3-none-any.whl
| Download URL | claude_kanban-0.3.1-py3-none-any.whl |
|---|---|
| Size | 21.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b53e27488bfecb694e029b72e96a1a9c0cd806e0cb6eb299ff9ad26b144ff3ea
|
|
BLAKE2b-256 checksum How to use checksums |
4ffa01be17c4adc091003d3a14841be0f29783f442569082f35f78200804081a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.6.9
|