← Back to the fleetS P A C Y A P P SGROUND-CONTROL
🛰

Ground Control.

MAC · v
IN PRIVATE ALPHA · COMING SOON TO MACOS

Mission control for every agent you're running. AND jump directly to it!

A menu-bar app for anyone running more than one AI agent at once.

Every session gets a row — its name, what it's doing right now, and a dot that turns red the moment it is blocked and needs you.

Click the row and the terminal tab that owns it comes to the front. No hunting through windows.

Built for the AI coding CLIs you already run on your Mac — Claude Code and Grok CLI today.

And it is skinnable, WinAmp-style. Swap the entire look in seconds. A status panel you stare at all day should be a thing you actually want on screen.

THE SPACE-STATION THEME, RUNNING LIVE
TAP A ROW, LAND ON ITS TERMINAL
◈ WHY IT EXISTS

The cost was never the waiting. It was the checking.

You start an agent and go somewhere else — email, Slack, a review, a question from the desk behind you. That is the whole point of starting it. The work is supposed to happen while you are not watching.

Then it goes wrong in one of two directions, and they point away from each other.

IF YOU FORGET

An agent sits blocked for twenty minutes, waiting on a one-word answer you would have given instantly.

IF YOU CHECK INSTEAD

You shred the focus you switched away to protect — over and over, mostly to find nothing.

Neither is a discipline problem. You cannot remember what you were never shown, and the only way to find out is to stop what you are doing and go look.

IF YOU FORGET14:02the agent stops.it needs one word from you.39 MINUTESnothing happens.14:41you go back and look.IF YOU CHECK INSTEADeight glances that found nothing.one that did.AN ILLUSTRATION, NOT A MEASUREMENT
WITH THE PANEL OPEN
14:02the agent stops.14:02you already know.0 MINUTES

So the fix is not a faster check. It is a free one — a glance instead of a context switch.

◈ FEATURES

Key original features

I.01

Every agent, one panel

A live row per session — Claude Code and Grok CLI — with what it's doing right now and a red dot the moment it needs you.

I.02

One click to the terminal

Jumps straight to the exact tab or pane that owns the session — whichever terminal or editor you happen to be running it in.

I.03

Skinnable

Drop-in theme folders, WinAmp-style — swap the whole panel's look without touching a line of Swift.

◈ HOW IT WORKS

How it works

Your agent already announces itself as it works — starting, thinking, finishing, stuck. Nobody is usually listening.

Ground Control listens.

  • It does not read your screen
  • It does not poll your terminals to guess at a state

Each session says which tty it is speaking from — the name the system gives that one terminal — and which application owns it. The tty says which session. The application says what can be done about it.

Because a tty is a system-level fact, every session that runs in a terminal identifies itself the same way, editor pane or terminal window alike. What differs is how precisely a click can land: straight to the tab in some terminals, to the application in the rest. And working out which application owns a session was not free — editors bury their terminals inside nested helper bundles, so the obvious answer is a helper rather than the app you can see.

Some agents never run in a terminal at all. An editor's own agent still reports in, and its rows still appear — but today it does not report the one moment you were waiting for, the pause where it needs your answer. That is not silence. It is an agent that tells you everything except the thing you were watching for.

Your agent reports in
Ground Control listens
You see who needs you

Research note: We proved we could type into your terminal. Then decided never to.

The question was whether Ground Control could answer an agent for you, from your phone. Approve or deny is the easy half — clean, no tricks needed.

But approve and deny are not what you need to send. You need words: use Postgres, not SQLite. The only route to words was scripting the terminal directly. That was tested, deliberately, to find out whether it could be done. It can.

Which is exactly where it stops. A yes tapped on a lock screen is not the same yes — you cannot see the working directory, or the diff, or what the last three approvals already unlocked. And approvals chain: each one clears the way for the next.

✦ No relay was ever built. Anything that can type into your terminal is a remote execution capability, and putting a relay in that path would have turned one compromised server into every Mac connected to it. Some of that could be mitigated. None of it belongs in an app whose whole job is to tell you something needs you.

It would have been the easiest thing here to sell.

WHAT ARRIVES ON YOUR PHONEGROUND CONTROLA session is waiting on your answer.ApproveDenyWHAT IT WAS ASKINGinstall a packageUNDO IT IN A MINUTEdrop the production tableDO NOTOn a lock screen, these are the same notification.AN ILLUSTRATION · NOT A FEATURE

Finding out you can do something is not the same as finding a reason to.

◈ WHAT CHANGED

Why the notifications were never going to be enough

At work there were eight terminal sessions open on a good day, often more, and not all of them running the same agent.

System notifications helped a little, and then stopped helping.

  • They tell you something happened, not which of eight sessions it was
  • They do not tell you what it wants
  • Arrive together and they stop being information — they become a stack you clear

Underneath that is what AI actually changed about the work. Not that it produces more. Good output comes from a loop: input, review, input, review.

The bottleneck moved to the reviewer.
The reviewer is you, and you are in a meeting.

◈ FUN IS A FEATURE

Fun is a feature

Ground Control is a serious monitor for production coding agents. It can be YOUR jewelled unicorn, if you want.

It has a face

The needs-you avatar state, animatedTHAT REQUESTS YOUR PRESENCE

Every session gets an avatar, and the avatar has moods.

  • Nothing happening — asleep, with little z's
  • Working — working
  • Finished — a thumbs up
  • Needs you! — attention seeking, on purpose

The design brief for that last one: you should notice it from across the room without reading anything. And it stays lit until your click actually lands somewhere — silencing an alarm nobody attended to is the one thing a monitor must not do.

It has your billboard

Across the title strip, a little dot-matrix display — the kind that lived on the front of a 90s hi-fi. When nothing needs you, it scrolls.

  • Bad developer jokes
  • The house name
  • Words pinched from your own agents — file names, tool names, whatever today is full of

A theme brings its own vocabulary, so a theme has a voice. The font knows capitals, digits and little else, so everything it says is short and shouty. That is most of the charm.

It has your unicorns?

THE UNICORN THEME, RUNNING.

WinAmp skins were the last time a mainstream utility assumed you would want to make it yours. Everything since has assumed you want it to look like everything else.

The retro pull is not nostalgia for its own sake. It is nostalgia for a period when software let you fiddle.

So this is not a bonus bolted onto a serious tool. A monitor only works if you keep it open, and you keep open what you like looking at. The skins are load-bearing.

ADDITIONAL THEMES WILL BE AVAILABLE SEPARATELY.

THE SIGN, RECORDED RUNNING. ANALYSER EITHER SIDE, THE HOUSE NAME GOING PAST IN THE MIDDLE.

◈ THE THEME TOOL

Dynamic theme prompt for your LLM

Themes are plain folders — some images and a JSON file. Save the file and the panel re-skins instantly. Let the app write up a prompt for you...

  • Answer a few questions — mascot, mood, colours, what the sign should say
  • It hands you a complete prompt for any image-capable model
  • It builds the folder too, already wired up and waiting for the pictures

Two difficulty levels, and the split is the interesting part

The beginner route is one picture, scaled to fit. Draw anything, at any proportions — the panel takes your picture's shape and the rows scroll inside it. Nothing to measure, nothing to get wrong. A whole theme in an afternoon with no idea how any of it works.

Advanced panel frames allow resizing in parts, with transparent background effects... like this.

CORNERS HOLD. EDGES STRETCH.

It does not know how to draw. It knows what breaks.

The brief it writes is long. Every file, every size, each state and what it has to communicate, and the drawing rules for whichever route you picked.

Those rules are not style advice. One animation came back with frames varying seventeen pixels in height, which on screen read as the panel resizing while it played — so the brief now says lock the silhouette, and never draw a frame from the previous one, because that drifts. Another grew heavier as it went and then snapped back at the wrap — so it says close the loop. At avatar size an expression is invisible, so a state has to be carried by colour and shape.

Try this in...

The generated theme manifest beside dozens of avatar and frame variations returned by an image model
THE BRIEF ON THE LEFT. WHAT CAME BACK ON THE RIGHT.

This one was made with Grok Imagine, a product of xAI — one of many models the brief works with. No affiliation.

Bring your own animated GIFs — the whole panel can move, not just the faces. Shapes that are not rectangles. Themes translucent enough to blend into the desktop rather than sit on top of it. A handful exist today — imagine a thousand.

Not a wizard and not a preset library. The app hands the model a detailed list of what to generate, and why.

Still in the hangar

Ground Control is in private alpha — built, working, and flown daily on the machine it was written on. It isn't public yet, so there's nothing to download today.

When it ships the app will be free and open source under AGPL-3.0. The artwork is a separate thing: themes are not derivative works of the program, so they carry their own licence. That split is what lets the app be free forever while a theme is something you can buy — and it means nothing is held back from the free version. The app is whole.

Charge for the artwork. Never for the software.

COMING SOON TO MACOS