Skip to content

Latest commit

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

session-deck

CI

Mission control for parallel Claude Code sessions — your agents, on one screen.

Animated demo: session cards updating live — a new session card appears, two sessions flash as their intents change, one fades to stale, and one leaves the board

Run three Claude Code sessions at once and they're invisible to each other — and mostly to you. session-deck is a live local dashboard for the session presence board from agent-ops: one card per live session, grouped by repo, showing which account it runs under, what it's doing right now, and how fresh it is (green under 2 minutes, amber under 10, gray stale). Updates stream in over SSE the moment the board file changes. Zero dependencies — a single Node script, stdlib only.

Quickstart

npx github:dylanpulver/session-deck
# ▸ http://localhost:4680

Or straight from a clone:

git clone https://github.com/dylanpulver/session-deck
node session-deck/bin/session-deck.js

Over SSH (no browser), print the board as a table instead:

npx github:dylanpulver/session-deck --once
 REPO CFG SEEN DOING
● atlas-api .claude 26s ago migrating events table to the new schema
● checkout-web .claude 26s ago wire the new coupon flow into the cart drawer
● atlas-api .claude-b 1m ago sweeping flaky tests in the payments suite
● checkout-web .claude-c 4m ago chasing a hydration mismatch on the receipt page
● docs-site .claude-b 7m ago regenerate the API reference from the openapi spec
● billing-worker .claude 26m ago backfill invoices for the July dunning run
● infra .claude-c 1h ago rotate the staging cluster certs before friday
7 sessions · 3 live

Pairing with agent-ops

session-deck renders a board; agent-ops writes one. Its hooks/board-register.sh hook self-registers every Claude Code session — across all your config dirs and accounts — into ~/.claude-sessions/board.jsonl, one JSON line per live session:

{"sid":"<session-uuid>","cwd":"/path/to/repo","cfg":".claude-b","seen":"2026-08-16 14:02","doing":"migrating events table to the new schema"}

SessionStart registers, UserPromptSubmit heartbeats (refreshing seen and doing), SessionEnd deregisters, and stale rows age off after 24h. Setup:

  1. Install the hook — see agent-ops pattern 01.
  2. Run session-deck. It watches the default board path out of the box; every session appears the moment it starts, and its card flashes when its intent changes.

The board is advisory presence, not a lock — session-deck is the human half of that protocol: the sessions read the file, you read the deck.

Options

FlagDefaultWhat it does
--board <path>~/.claude-sessions/board.jsonlBoard file to watch
--port <n>4680Port for the dashboard
--oncePrint the board as a table to stdout and exit
-h, --helpShow usage

Malformed board lines (torn concurrent writes) are skipped silently; a missing board file gets a friendly pointer to the agent-ops setup instead of a stack trace.

Development

npm test# node:test, zero dev-dependencies either

Siblings

  • agent-ops — the operating patterns (and the hook) this dashboard visualizes.
  • claude-skills — a governed skills setup for Claude Code.

License

MIT

About

Mission control for parallel Claude Code sessions — a zero-dependency live dashboard over the agent-ops session board. Your agents, on one screen.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages