A local command center for Claude Code. Spawn, watch, and talk to many sessions at once — as live tiles at localhost:4747.
/plugin marketplace add Abhay-Sastha-S/claude-agent-dashboard
Subagents solve fan-out inside one task. This solves the layer above: many independent, long-lived, human-steerable sessions, all visible at once. An air traffic control view, not another chat window.
Every session is a genuine claude process in stream-json mode. Your settings, MCP servers, hooks, and skills apply unchanged. Nothing to keep in sync with upstream.
Restart and adopt both use --resume without --fork-session, so the session ID survives and the transcript in ~/.claude/projects stays the single source of truth.
No node_modules, no build step, no telemetry, no account. Binds to 127.0.0.1 and makes no network calls of its own.
Kill the server and every session is still on disk and still resumable. The dashboard is throwaway; your work isn't.
Every open session is a tile with its own chat and composer. Drag headers to reorder, maximize one, close a tile without stopping its session, rename and tag.
Name, tags, working directory with autocomplete, model, permission mode, and an optional first instruction so it starts working immediately.
Full multi-turn chat per tile with token-level streaming and file attachments. Sending to an exited session auto-resumes it.
Sidebar grouped by Working / Awaiting input / Error / Exited, with live indicators, last-message previews, per-session cost, and total spend.
Interrupt a turn mid-flight, restart an exited session, or switch model or permission mode without losing the conversation.
Sessions running in other terminals and IDEs are listed live and readable. Idle ones can be adopted and continued here — adopting a running one is blocked, because it would fork.
| Situation | What the dashboard gives you |
|---|---|
| Parallel feature work | Three branches or worktrees, one agent each — three tiles on one screen. No tab archaeology. |
| Long migrations | Start the codemod, glance at the status dot, go do something else. Interrupt from the tile the moment it goes wrong. |
| Fan-out then triage | Several agents chasing different hypotheses; read their conclusions side by side instead of serially. |
| Multi-repo changes | One session per repo, each already in the right directory, all steerable from one place. |
| Reviewing agent work | Per-session transcript, turn count, and cost, without reconstructing scrollback. |
| Picking up yesterday | Sessions from the last 48h listed with their opening prompt as the title — adopt and continue instead of hunting for an ID. |
| Budget awareness | Live total spend across every agent, on the same screen as the work. |
| Scripting | The whole thing is a plain JSON and SSE API — drive it from CI, a cron job, or your own UI. |
When not to use it: if your work is one task at a time in one repo, plain claude in a terminal is better.
browser (index.html) │ fetch + SSE ▼ server.js ── spawn ──► claude -p --input-format stream-json │ --output-format stream-json --include-partial-messages │ │ stdout: JSON lines │ ◄──────────────────────┘ ├─ ~/.claude-dashboard/ sessions.json, events/<id>.jsonl, uploads/ └─ ~/.claude/projects/ read-only: discover + tail outside sessions
control_request messages on stdin, not signals, so the agent stops cleanly mid-turn.~/.claude/projects transcripts — head for the working directory and opening prompt, tail for the latest text — behind an mtime-keyed cache.| Mode | Behaviour |
|---|---|
| acceptEdits | Default. Auto-accepts file edits; other tools follow your settings allowlist. |
| dontAsk | Never prompts; denies anything not pre-allowed. |
| plan | Read-only planning mode — the safest choice for exploration. |
| auto | Claude Code's auto classifier decides. |
Pick the narrowest mode that still lets the task finish, and use plan for anything you haven't scoped yet. Modes are switchable from the tile without losing the conversation.
/plugin marketplace add Abhay-Sastha-S/claude-agent-dashboard /plugin install agent-dashboard /dashboard # start it, or report that it's already up /dashboard restart # warns first if agents are mid-task /dashboard stop
git clone https://github.com/Abhay-Sastha-S/claude-agent-dashboard.git node claude-agent-dashboard/server.js # → http://localhost:4747 DASH_PORT=5000 node server.js # different port
Requires Node 18+, the claude CLI on your PATH, and an authenticated Claude Code install. macOS and Linux; Windows is untested.
The server binds to 127.0.0.1 only. Don't port-forward it, tunnel it, or bind it to 0.0.0.0 — anyone who reaches the port can spawn agents with your credentials.
~/.claude/projects to find your sessions. Those are your transcripts, and everything stays on your machine.dontAsk and acceptEdits with the care you'd apply in a terminal.claude process; the dashboard depends on its stream-json input/output format, its control_request interrupt protocol, and the transcript layout under ~/.claude/projects. Claude and Claude Code are Anthropic trademarks. This project is unofficial and not affiliated with, endorsed by, or supported by Anthropic.claude CLI.