Live

Quarterdeck

The tool I built to run my own agent fleet. It watches every Claude Code session and lets the agents reach back.

Quick facts
Launched
2026-07
Stack
Tauri v2 · Rust · TypeScript · MCP
Audience
Developers running Claude Code
Status
Live
What it proves
Open source MIT, runs entirely on your machine, no account and no telemetry
Win + macOS one tray app for every Claude Code session on the box

Why I built it

I run a lot of Claude Code agents at once, and for months the bottleneck was me. Not the models. Me. I couldn’t tell which of the five needed me right now without alt-tabbing through every terminal, and by the time I finished the loop one had stalled and another had guessed wrong on a decision it should have just asked me about. This is not a product the factory ships. It is a piece of the system itself: the thing I built so I could run a fleet of agents without becoming the bottleneck.

Quarterdeck: a storm-tossed cargo ship stacked with server containers, each holding a little Claude at work, watched over by a glowing command bridge.
The whole idea in one picture. A fleet of agents working in the storm, and one deck you command it all from.

The moment

Every monitor for Claude Code stops at the same place: it shows you a status and goes quiet. That is the cheap half. The expensive half is the agent that needs a decision only I can make, and a dashboard can’t carry my answer back. So Quarterdeck adds the return trip. Any session can ask me a question through an always-on-top popup while it works, and my answer routes straight back into that session. A twenty-minute run stops and asks “which of these two migrations?” instead of guessing.

The hard part

Getting the plumbing honest. Status comes from Claude Code’s own hook events, not from polling or scraping transcripts. The ask channel is a local MCP server bound to your own machine, nothing leaves the box. The permission takeover is fail-open by design, so if the app isn’t running or I don’t answer, Claude Code just falls through to its normal terminal prompt and no agent is ever left stuck.

I wrote up the full argument, why a reach-back channel matters more than another dashboard, in Autonomous agents don’t need a dashboard. The code is open on GitHub.

What I learned
  • The hard part of autonomy is not making the agent more independent. It is making the handoff sharper: a fast, reliable way for it to reach you at the one moment only you can decide.
  • I build my own tools when the missing piece is small and load-bearing. Every monitor I tried showed status and stopped. The thing I actually needed was the channel back.