Plans dashboard server with progress tracking and timeline visualization. Use when viewing plan directories with progress tracking, Gantt charts, and phase status.
Plans dashboard server with progress tracking and timeline visualization.
This skill requires npm dependencies. Run one of the following:
# Option 1: Install via ClaudeKit CLI (recommended)
ck init # Runs install.sh which handles all skills
# Option 2: Manual installation
cd .claude/skills/plans-kanban
npm install
Dependencies: gray-matter
Without installation, you'll get Error 500 when viewing plan details.
Visual dashboard for viewing plan directories with:
# View plans dashboard
node .claude/skills/plans-kanban/scripts/server.cjs \
--dir ./plans \
--open
# Remote access (all interfaces)
node .claude/skills/plans-kanban/scripts/server.cjs \
--dir ./plans \
--host 0.0.0.0 \
--open
# Background mode
node .claude/skills/plans-kanban/scripts/server.cjs \
--dir ./plans \
--background
# Stop all running servers
node .claude/skills/plans-kanban/scripts/server.cjs --stop
Use /kanban for quick access:
/kanban plans/ # View plans dashboard
/kanban --stop # Stop kanban server
| Option | Description | Default |
|---|---|---|
--dir <path> |
Plans directory | - |
--port <number> |
Server port | 3500 |
--host <addr> |
Host to bind (0.0.0.0 for remote) |
localhost |
--open |
Auto-open browser | false |
--background |
Run in background | false |
--stop |
Stop all servers | - |
scripts/
āāā server.cjs # Main entry point
āāā lib/
āāā port-finder.cjs # Port allocation (3500-3550)
āāā process-mgr.cjs # PID management
āāā http-server.cjs # HTTP routing
āāā plan-parser.cjs # Plan.md parsing
āāā plan-scanner.cjs # Directory scanning
āāā plan-metadata-extractor.cjs # Rich metadata
āāā dashboard-renderer.cjs # HTML generation
assets/
āāā dashboard-template.html # Dashboard HTML template
āāā dashboard.css # Styles
āāā dashboard.js # Client interactivity
| Route | Description |
|---|---|
/ or /kanban |
Dashboard view |
/kanban?dir=<path> |
Dashboard for specific directory |
/api/plans |
JSON API for plans data |
/api/plans?dir=<path> |
JSON API for specific directory |
/assets/* |
Static assets |
/file/* |
Local file serving |
When using --host 0.0.0.0, the server auto-detects your local network IP:
{
"success": true,
"url": "http://localhost:3500/kanban?dir=...",
"networkUrl": "http://192.168.2.75:3500/kanban?dir=...",
"port": 3500
}
Use networkUrl to access from other devices on the same network.
The dashboard scans for directories containing plan.md files:
plans/
āāā 251215-feature-a/
ā āāā plan.md # Required - parsed for phases
ā āāā phase-01-setup.md
ā āāā phase-02-impl.md
āāā 251214-feature-b/
ā āāā plan.md
āāā templates/ # Excluded by default
IMPORTANT: Run server as Claude Code background task using run_in_background: true with the Bash tool. This makes the server visible in /tasks and manageable via KillShell.
Check if this script is located in the current workspace or in $HOME/.claude/skills/plans-kanban directory:
$SKILL_DIR_PATH = ./.claude/skills/plans-kanban/$SKILL_DIR_PATH = $HOME/.claude/skills/plans-kanban/If --stop flag is provided:
node $SKILL_DIR_PATH/scripts/server.cjs --stop
Run the kanban server as CC background task with --foreground flag (keeps process alive for CC task management):
INPUT_DIR="{{dir}}"
PLANS_DIR="${INPUT_DIR:-./plans}"
node $SKILL_DIR_PATH/scripts/server.cjs \
--dir "$PLANS_DIR" \
--host 0.0.0.0 \
--open \
--foreground
Critical: When calling the Bash tool:
run_in_background: true to run as CC background tasktimeout: 300000 (5 minutes) to prevent premature terminationExample Bash tool call:
{
"command": "node .claude/skills/plans-kanban/scripts/server.cjs --dir \"./plans\" --host 0.0.0.0 --open --foreground",
"run_in_background": true,
"timeout": 300000,
"description": "Start kanban server in background"
}
After starting, parse the JSON output (e.g., {"success":true,"url":"http://localhost:3500/kanban?dir=...","networkUrl":"http://192.168.1.x:3500/kanban?dir=..."}) and report:
/tasks)CRITICAL: MUST display the FULL URL including path and query string. NEVER truncate to just host:port. The full URL is required for direct access.
Track progress: https://github.com/claudekit/claudekit-engineer/issues/189
Port in use: Server auto-increments from 3500-3550
No plans found: Ensure directories contain plan.md files
Remote access denied: Use --host 0.0.0.0 to bind all interfaces
PID files: Located at /tmp/plans-kanban-*.pid