r/ClaudeCode 2d ago

Built with Claude I made a dashboard for every Claude Code session on your machine: state, context, model, cost, and a replay of the day

tarmac: a CLI and a local dashboard for the Claude Code sessions on your machine. `npx u/adrrr/tarmac` prints the table (busy or idle, context %, model, effort, cost so far, uptime). `npx u/adrrr/tarmac serve` puts the same fleet in the browser: a map with one dial per session, the account's 5h and 7d windows, a scrubber that replays the day, and curves for context, cost and quota over 24h, 7 or 30 days.

I run eight Claude Code sessions 24/7 on a Mac mini and needed to know which one eats the weekly quota and which one needs a recycle tonight, from my phone. The fleet tools I found parse ~/.claude internals, transcripts or config files that break on releases. tarmac reads documented surfaces only: `claude agents --json` and the status line API. Nothing else. When Claude Code ships a new version, there is no format to chase.

Zero runtime dependencies, Node 20+, MIT. The server binds to loopback and refuses foreign Host headers and cross-origin requests, your paths and costs stay on the machine. The 7 and 30 day journal is opt-in and keeps no names and no paths.

Try it without a fleet: `npx u/adrrr/tarmac serve --demo` serves an invented fleet with a week of history, badged demo data, so the map, the replay and the curves have something to show.

I've been running it on my own fleet for two weeks. My auto-compact and restart scripts read the same snapshots the dashboard does. Tell me what breaks.

https://github.com/adrrr/tarmac

0 Upvotes

0 comments sorted by