DeckHQ GitHub

Every AI coding session on your machine, on one office floor.

DeckHQ draws each session as a robot at a desk. You see who is working, who is waiting on you, and for how long.

npx deckhq app

See what it does

Node 18 or newer. Free, MIT, zero dependencies, and it stays on your machine.

The DeckHQ window. The header reads 2 needs you: 1 hand up, 1 for review. Below it, an office seen from above: Your Office with two robots waiting on a sofa, one under a red badge reading 1d 2h; a lounge with five resting; and three project rooms, orbital-api, checkout-flow and design-system, each with a robot at a desk.

A session that finished is still on the floor.

An agent list shows what is running. DeckHQ reads every transcript on disk, so the session that finished an hour ago is still here, with what it last said.

The demo floor, moving: five project rooms with robots typing at desks, six robots waiting in Your Office with their waiting times over their heads, and fifteen resting in the lounge.
The demo floor: five repositories, twenty-one sessions. Every picture on this site is the running product, on invented projects.

One room per repository. One robot per session.

Start your agents anywhere: a terminal, your editor, the desktop app. Each one turns up in its project's room with a first name it keeps for good.

The plate on the room says what you might act on in the biggest type: 2 need you · oldest 1d 2h. Under it, what somebody is running right now, and today's tokens.

One project room, orbital-api. Its plate reads: 2 need you, oldest 1d 2h; Elif, Bash npm test; today 5.8M tok. A green robot named Elif sits at the desk with a terminal bubble over its head.

Everyone waiting on you is in your office.

A session that finishes its turn stands up, walks the corridor into Your Office and sits down. How long it has waited is over its head, and the longest wait sits nearest your desk.

A robot named Elif finishes its turn in the orbital-api room, stands up from its desk, walks along the corridor into Your Office and sits on the sofa beside the two already waiting.
One real walk, recorded at 25 frames a second.

Two signals, because they need different answers.

  • A raised hand means I am mid-task and blocked. It needs a decision.
  • A red badge with a time means I finished; review this. It needs a read.
  • They are counted separately. The header reads 2 hands up · 4 for review.
Your Office with six robots waiting. Four sit under red badges reading 4h, 40m, 7m and 1d 2h, each with a tick. Two more, Zola and Kobe, hold a hand up. The room's plate reads: 6 waiting, oldest 1d 2h.

Reading it does not clear it. Only you do.

What a session is doing changes on its own. What you owe it changes when you press a button. Opening a conversation does not clear it; scrolling past it does not clear it; reading it does not clear it.

Click anyone and the panel has how long they have waited, what they said as the markdown they wrote, and what changed in that project's working tree. Then 1 reply, 2 approve, 3 bench.

Go to session brings the terminal, the editor or the Claude desktop app that session is running in to the front. It is measured on Windows 11, and written and not yet run on macOS and Linux.

The panel, in full

The session panel for a robot named Emeka, for review in orbital-api, waiting 1d 2h. It shows what the session said, a code block reading npm test, 214 passing, the two files that changed with plus 142 and minus 18, and three buttons: 1 Reply, 2 Approve, 3 Bench.

The details people notice.

Everything on the floor is a session that exists on your disk. Nothing is animated to look busy.

A crew: a lead robot named Elif at its desk, and five juniors sitting cross-legged in an arc behind it, each with a laptop and a cable running to the desk. A chip at the desk reads 2/5 working.

A lead with a crew.

A session that starts three or more sub-agents turns its desk into a formation: juniors cross-legged in an arc, a laptop each, and a cable to the desk that pulses while that junior is still writing. Twelve are drawn; beyond that a +N chip.

Two small robots, Yogesh and Hooman, sitting on the floor behind their lead, Boris, each with a laptop in front of it. Each name tag has two rows: a dark chip reading Junior, and the name under it.

Juniors say so.

A sub-agent is drawn one size smaller than the session that started it, sitting on the floor with a laptop, under a two-row tag: a Junior chip over its name.

Two benches against the wall of one project room. Kobe and Emeka sit side by side at a bench labelled fix/refund-rows; Ravi sits at a second bench labelled with another branch name.

A worktree is a bench, and the branch is written on it.

Five checkouts of one repository are one room. The main checkout has the desks in the middle; each git worktree somebody is working in is a bench against the wall.

The checkout-flow room with its lights off: a grey room with one empty desk. Its plate reads: 2 need you, oldest 4h.

The lights go off.

When every session of a project is waiting in your office, its room keeps one empty desk and goes dark until one of them goes back to work.

Eleven styles, one click apart.

Look in the header repaints the whole floor: materials, furniture, partitions and light. Your agents keep their colours, because colour is state.

The floor in Studio oak, the default: warm herringbone wood in Your Office and the lounge, pale carpet in the project rooms.
Studio oak
The same floor in Night lab: dark floors and dark furniture, with the robots and their state colours standing out.
Night lab
The same floor in Colour plan: a neutral building where each project's room has a calm colour of its own.
Colour plan
The same floor in Graphite loft: grey terrazzo and loop pile, dark frames behind glass partitions, under evening light.
Graphite loft

All eleven, and the light

It listens on 127.0.0.1 and nothing else.

There is no --host flag and there never will be one. No account, no analytics, no telemetry, no update check, no crash report, no font or script from a CDN.

Before you install anything, npx deckhq doctor prints what is on your disk. Its last line is the one to read.

What it never does, and how to check

$ npx deckhq doctor
  claude code     available
  transcripts     77 sessions across 20 projects
  running now     6   (claude code's own agent view reports 6)
  on the floor    77  ← 71 sessions have already finished; the agent view no longer lists them
  codex           not installed
  waiting on you  0   (3 waiting, all still running)
  hooks           installed, port 4400, 285 events, last 1m ago
  state           ~/.deckhq/state.json, writable
  egress          none. no outbound sockets.

A real run on the development machine, 3 September 2026. Your numbers will differ.

The same office, stood up.

Same rooms, same robots, same seats, in 3D; not out yet.

To hear the day it lands: watch the releases on GitHub (Watch, Custom, Releases).

Two pictures side by side. On the left, the DeckHQ floor as it is today, seen from above. On the right, the same building in three dimensions, seen at an angle, with the same rooms and name plates. A label in the corner reads Coming.
ComingThe floor today, and the same building in 3D.
A close view of the 3D office: two round robots at a desk with terminals on their monitors, and two smaller ones sitting on the floor with laptops under tags that read Junior. A label in the corner reads Coming.
ComingA lead, a colleague and two juniors.

One command.

It starts DeckHQ, opens the floor in a window of its own, and asks once whether you want a desktop icon.

npx deckhq app

Needs Node 18 or newer. Nothing else: the package has no dependencies.

No Node on the machine

One line checks for Node, offers to install it, installs DeckHQ and opens the window. Both scripts are short files you can read first.

irm https://deckhq.dev/install.ps1 | iex

curl -fsSL https://deckhq.dev/install.sh | sh

A step at a time

Install it, open it, then add the icon when you want one.

npm install -g deckhq

deckhq app

Look before you install

The report installs nothing, writes nothing and sends nothing. It prints your own number.

npx deckhq doctor

Every way to install, and how to remove it