gustavodev.pt

Subagent City

A live map of the Claude Code subagents running on your machine. Once work is handed to subagents, the terminal stops saying much: several of them can be reading, editing and testing at once, in sessions you cannot keep on screen together. Subagent City puts them in one picture, with who started each one, what it is doing now, which model it runs on and when it is done.

Screen

Open sessions on the left, their subagents in the middle, the projects they work on to the right, and a panel of subagent cards
Sessions on the left, their subagents in the middle and the projects they touch on the right. From the demo, with made-up sessions.

What it shows

  • A card for every subagent, with its name, task, model and last step: the tool it just called, or its last words.
  • Four states: working, paused, done and idle. Idle subagents fold into a single node until opened.
  • Opus, Sonnet and Haiku, each in its own colour.
  • It refreshes every few seconds and pauses while the tab is hidden.
The panel of subagent cards, grouped by session

How it works

A small Node server reads the files Claude Code already writes under ~/.claude and serves the page and a single API route. A session counts as open only while its process is alive. Transcripts are read only at their start and end and cached by modification time, so a quiet subagent costs nothing.

It runs entirely on your machine, only reads, and sends nothing anywhere. The server has no dependencies.

Install

Requires Node.js 20 or later.

git clone https://github.com/gustavos00/subagent-city.git
cd subagent-city
npm install
npm run build
npm start

Then open localhost:4777 and start a Claude Code session that uses subagents. npm run demo serves a made-up set instead.