A bidirectional kanban board for AI agents and humans. Both sides read and write the same .agentboard/board.json file, with a live web UI that syncs in real-time.
No database, no external services, just a JSON file.
pip install claude-agentboardRequires Python 3.10+.
# Initialize a board in your project
cd your-project
agentboard init
# Open the web UI (default: http://127.0.0.1:5555)
agentboardThe board file lives at .agentboard/board.json. Add it to version control or .gitignore, your call.
Human (browser) <--> board.json <--> AI agent (filesystem)
- The agent reads and writes
.agentboard/board.jsondirectly - The web server polls the file every second and pushes changes to the browser via SSE
- User changes in the UI are posted back to the server, which writes to the same file
- Tasks can be assigned to
humanoragentfor clear ownership
| Command | Description |
|---|---|
agentboard |
Start the web UI (default) |
agentboard init |
Create .agentboard/board.json in the current directory |
agentboard status |
Print task counts per column |
agentboard add "title" |
Add a task |
--column:backlog(default),todo,in_progress,done--tag:feature,bug,chore,docs,test,design--priority:high,medium,low--assign:human,agent
--host: Host to bind to (default:127.0.0.1)--port: Port to bind to (default:5555, auto-increments if taken)--no-open: Don't open browser automatically
Copy the skill file to make Claude Code aware of the board:
mkdir -p ~/.claude/skills/agentboard
cp skill/SKILL.md ~/.claude/skills/agentboard/SKILL.mdThe skill teaches the agent to:
- Read the board before writing to avoid overwriting user changes
- Move tasks through columns as it works (
backlog->in_progress->done) - Pick up tasks assigned to
agentby the user - Assign tasks back to
humanwhen manual action is needed (reviews, decisions, testing)
- Drag and drop cards between columns
- Double-click cards to edit title, description, tag, priority, and assignment
- Add tasks via the input at the bottom of the Backlog column
- Live updates when the agent modifies the board file
- Connection status indicator
- Light/dark mode
Tasks have these fields:
| Field | Type | Description |
|---|---|---|
id |
string | Unique identifier (e.g., t_a1b2c3d4) |
title |
string | Short imperative description |
description |
string | Optional longer description |
tag |
string | feature, bug, chore, docs, test, design |
priority |
string | high, medium, low, or null |
assigned_to |
string | human, agent, or null |
column |
string | backlog, todo, in_progress, done |
created_by |
string | agent or user |
Contributions are welcome. Here's how to get started:
- Fork the repository
- Clone your fork:
git clone https://github.com/YOUR_USERNAME/agentboard.git cd agentboard - Install in development mode:
pip install -e . - Initialize a test board:
agentboard init --project test agentboard - Make your changes and test them
- Submit a pull request
- Keep the core simple. The whole point is a JSON file, not a database.
- The web UI is a single HTML file with no build step. Keep it that way.
- Python 3.10+ only, no dependencies beyond
click. - Write clear commit messages.
- Filtering and search in the UI
- Keyboard shortcuts
- Task archiving
- Export/import
- Additional agent integrations beyond Claude Code
MIT