by L1AD
A web-based Kanban board for viewing Claude Code tasks
# Add to your Claude Code skills
git clone https://github.com/L1AD/claude-task-viewerA real-time Kanban board for observing Claude Code tasks. See what Claude is working on, track dependencies between tasks, and manage task cleanup and priority.


When Claude Code breaks down complex work into tasks, you get visibility into its thinking — but only in the terminal. Claude Task Viewer gives you a persistent, visual dashboard to:
Claude Code controls task state — the viewer shows you what's happening:
No comments yet. Be the first to share your thoughts!
D (includes safety checks for dependencies)View and organise your Claude Code sessions:
~/.claude/tasks/ and ~/.claude/projects/? — Show help with all keyboard shortcutsD — Delete the currently selected task (with confirmation and dependency checking)Esc — Close detail panel or modalsnpx claude-task-viewer
Open http://localhost:3456
git clone https://github.com/L1AD/claude-task-viewer.git
cd claude-task-viewer
npm install
npm start
Claude Code stores tasks in ~/.claude/tasks/. Each session has its own folder:
~/.claude/tasks/
└── {session-uuid}/
├── 1.json
├── 2.json
└── ...
The viewer watches this directory and pushes updates via Server-Sent Events. Changes appear instantly — no polling, no refresh needed.
{
"id": "1",
"subject": "Implement user authentication",
"description": "Add JWT-based auth with refresh tokens",
"activeForm": "Setting up auth middleware",
"status": "in_progress",
"blocks": ["2", "3"],
"blockedBy": []
}
activeForm — What Claude is doing right now (shown in Live Updates)blocks / blockedBy — Task dependency relationships# Custom port
PORT=8080 npx claude-task-viewer
# Open browser automatically
npx claude-task-viewer --open
# Use a different Claude config directory (for multiple accounts)
npx claude-task-viewer --dir=~/.claude-work
| Endpoint | Method | Description |
|----------|--------|-------------|
| /api/sessions | GET | List all sessions with task counts |
| /api/sessions/:id | GET | Get all tasks for a session |
| /api/tasks/all | GET | Get all tasks across all sessions |
| /api/tasks/:session/:task | DELETE | Delete a task (checks dependencies) |
| /api/tasks/:session/:task/note | POST | Add a note to a task |
| /api/events | GET | SSE stream for live updates |
Observation over Control: Claude Code owns task state. The task viewer's job is to show you what Claude is doing, not to direct it. This keeps the viewer in sync with reality and prevents confusion about whether a task's status reflects what Claude is actually doing or just human intent.
Limited interaction: You can delete tasks and add notes, but task status, subject, and description reflect Claude's actual work and can only be changed by Claude Code itself.
Open an issue with ideas or feedback.
MIT