SkillAgentSearch skills...

agent-kanban

Local-first kanban for AI-agent workflows. Drag a task to Approved and your AI coding agent picks it up via MCP and drives it through analyst → in_progress → testing on its own. MCP for Claude Code & Cline, OpenAPI for opencode / Open WebUI / Ollama / any function-calling LLM.

Install / Use

claude mcp add nerkoman -- npx -y github:nerkoman/agent-kanban

If the server publishes to npm under a different name, use that package instead — check the repo README.

About this skill
🔌

MCP Server

Model Context Protocol server

Quality Score

77/100

Category

Automation

Supported Platforms

Claude Code
Claude Desktop
Cline

agent-kanban

Local-first kanban for AI-agent workflows. SQLite, FastAPI, no auth, no cloud.

License: MIT Python

A self-hosted kanban board designed to be driven by AI coding agents (Claude Code, Cline, opencode, Open WebUI, any function-calling LLM). Drag-drop in browser, REST + MCP for agents. Multi-project, light/dark theme, markdown plan-file import, automation rules.

Board — light theme

<details> <summary>More themes & profiles</summary>

| Dark theme | Cyberpunk profile | Horizon profile | |---|---|---| | dark | cyberpunk | horizon |

Toggle theme with t, cycle profiles with p. Or pin a theme/profile via URL: ?theme=light&profile=cyberpunk.

</details>

Features

  • 9 workflow columns: Backlog → Approved → Analyst → In progress → Testing → UAT → Done, plus Blocked / Cancelled.
  • Multiple projects in one DB, URL-routed (/p/{slug}), each with optional Claude Code-project directory binding.
  • Light/dark theme switcher (t), density toggle (d), collapsible columns, sidebar.
  • Search + filter chips, keyboard shortcuts (/, n, r, \, Esc).
  • Inbox watcher: drop a .md into kanban_data/inbox/, get a card in 5 sec. Point KANBAN_INBOX_DIR at any folder you like — even ~/.claude/projects/<proj>/memory/inbox/ for Claude session captures.
  • PLAN.md import (loose-mode parser): any ## Section → cards in backlog with section-name in description.
  • Automation rules (kanban_data/rules.json): task_idle: status=done, days=14 → move_to cancelled, etc. Hot-reloaded.
  • Outbound webhooks (kanban_data/webhooks.json): POST to Slack / Telegram / any HTTP endpoint on task_created/task_moved/task_commented/task_updated. 3 formats: generic, slack, telegram.
  • MCP server (kanban_mcp/) with 14 tools for Claude Code / Cline (project-aware: kanban_projects, kanban_board, kanban_search, kanban_my_active).
  • REST API + auto-generated OpenAPI for opencode / Open WebUI / any LLM with function calling.

Quickstart

5 minutes from clone to an AI agent doing your work for you: see QUICKSTART.md.

Bare minimum (one command after install):

# Install uv once: `curl -LsSf https://astral.sh/uv/install.sh | sh` or `brew install uv`
git clone https://github.com/<your-user>/agent-kanban.git
cd agent-kanban
uv run python -m kanban_ui                     # http://localhost:7777

uv run auto-creates a .venv/, installs deps from pyproject.toml (~5 sec on a warm cache), and launches the server.

<details> <summary>Legacy pip / venv path</summary>
python3.12 -m venv .venv
.venv/bin/pip install -r requirements.txt
.venv/bin/python -m kanban_ui                  # http://localhost:7777

requirements.txt is kept in sync with pyproject.toml for Dependabot and pip-only environments.

</details>

Optional — auto-start on login (macOS):

bash scripts/install_launchd.sh install        # macOS launchd
bash scripts/install_launchd.sh status
bash scripts/install_launchd.sh uninstall

Logs: ~/Library/Logs/agent-kanban/{stdout,stderr}.log.

AI agent integrations

Pick the integration matching your agent:

| Agent | Transport | Reference | |---|---|---| | Claude Code (Anthropic CLI) | MCP stdio via ~/.claude.json or .mcp.json | docs/INTEGRATION.md#claude-code | | Cline (VSCode extension, legacy stdio) | MCP stdio, same config block | docs/INTEGRATION.md#cline | | 🆕 Cursor | HTTP MCP @ http://localhost:7777/mcp | docs/INTEGRATION.md#cursor | | 🆕 Cline (new versions) | HTTP MCP @ http://localhost:7777/mcp | docs/INTEGRATION.md#cline-http | | opencode (sst/opencode) | OpenAPI tools / REST | docs/INTEGRATION.md#opencode | | Open WebUI | OpenAPI Tool Server pointing at /openapi.json | docs/INTEGRATION.md#open-webui | | Generic LLM (Hermes / Llama / Ollama / Mistral / vLLM) | function-calling + REST | docs/INTEGRATION.md#generic-llm | | MCP Inspector (debugging) | HTTP MCP @ http://localhost:7777/mcp | docs/INTEGRATION.md#mcp-inspector |

The kanban runs two MCP transports in parallel: legacy stdio (python -m kanban_mcp, for Claude Code) and streamable HTTP at /mcp (for Cursor / new Cline / Open WebUI / MCP Inspector / anything that speaks the MCP SSE transport).

Static OpenAPI schema: docs/openapi.yaml. Interactive Swagger: http://localhost:7777/docs.

Real-world flows: docs/USECASES.md — 11 use cases (solo dev, team Slack, legacy import, multi-project, agent session, auto-launch, etc.).

Why

  • vs. Trello/Jira/Linear — local-first; no SaaS account, no rate limits, your data on your disk.
  • vs. plain TODO.md — drag-drop, history, multi-project, MCP integration, automation rules.
  • vs. building your own — already battle-tested for solo + agent workflow.

Configuration (env vars)

| Variable | Default | Purpose | |---|---|---| | KANBAN_HOST | 127.0.0.1 | bind address | | KANBAN_PORT | 7777 | port | | KANBAN_DB | <repo>/tasks.db | SQLite path | | KANBAN_ACTOR | user | author name written to history | | KANBAN_DEFAULT_PROJECT_ID | default | id of seed project on first launch | | KANBAN_DEFAULT_PROJECT_NAME | Default | display name of seed project | | KANBAN_DEFAULT_PROJECT_COLOR | #F10D30 | accent color of seed project | | KANBAN_INBOX_DIR | <repo>/kanban_data/inbox | inbox watcher folder | | KANBAN_RULES_FILE | <repo>/kanban_data/rules.json | automation rules | | KANBAN_WEBHOOKS_FILE | <repo>/kanban_data/webhooks.json | outbound webhook notifications | | KANBAN_AUTOMATION_INTERVAL | 60 | rule engine interval (sec) | | KANBAN_INBOX_INTERVAL | 5 | inbox poll interval (sec) | | KANBAN_CORS_ORIGINS | (empty) | comma-separated origins for CORS (e.g. for remote Open WebUI) | | KANBAN_PROJECT_ID | (empty) | for MCP server: default project_id when agent calls kanban_create without one |

Project layout

agent-kanban/
├── kanban_store/    SQLite store + schema (4 tables, 4 migrations)
├── kanban_ui/       FastAPI web UI + automation/{inbox,rules,plan_md}
│   └── static/      index.html · styles.css · app.js · vendor/Sortable
├── kanban_mcp/      MCP server (14 tools)
├── seed/            generic example tasks
├── examples/        llm-tool-calling demo scripts
├── docs/            INTEGRATION.md, openapi.yaml, screenshots
├── tests/           pytest tests
├── scripts/         install_launchd.sh
├── snapshots/       JSON snapshots (gitignored except .gitkeep)
└── kanban_data/     runtime DB, inbox/, rules.json (gitignored)

Roadmap

  • Bidirectional sync: edits in UI write back to PLAN.md.
  • GitHub Issues importer (already has source-config table; needs gh API client).
  • Multi-user mode with simple cookie-based auth.
  • Optional Postgres backend.

License

MIT

Related Skills

View on GitHub
GitHub Stars3
CategoryAutomation
Updated3mo ago
Forks0

Languages

Python

Security Score

90/100

Audited on May 11, 2026

1 low1 info