One of your agents stopped to ask whether it could deploy, sometime in the last hour. You know one of them did. You don't know which.
The shape is always the same: Claude Code on the Mac, Codex on a build box, something else on a server you log into twice a week. Every one of them stops before it deploys, deletes or installs, and waits for a yes. The yes takes two seconds. Working out who is waiting, and where, is what ate my evenings.
The obvious discipline is a tmux session per machine, one terminal per project, and a habit of tailing the right scrollback. That holds until the third machine, and then you are the router. You alt-tab, you read a wall of output to see whether the agent is stuck or just quiet, you SSH in to check.
None of that is a complaint about Herdr. Herdr already knows which agent is working, waiting, done or idle, and it keeps them all alive whether or not anyone is looking. What I wanted was narrower: one Mac window with every agent in it, on every machine, and two keys to the one that needs me.
So I built Shepi for Herdr. It is a native Mac client for Herdr: every agent in a real terminal, on this Mac or your servers, with the one that needs you in amber.
It does not replace Herdr. Herdr keeps running your agents and Shepi is a window onto it. Quit Shepi and nothing stops; open it again and every space, tab and agent you already had is exactly where you left it.
Amber means exactly one thing
When an agent stops to ask, it turns amber in three places at once: the sidebar, its pane header and the status line. A card shows the command it wants to run, when the agent says so. A banner reaches you even with the sidebar folded away with ⇧⌘1, and you hear Herdr's own sound, at the moments Herdr would play it, from every machine.
Then it is the prefix and a. ⌃B a lands you on the next agent that needs you, whichever machine it is on. Review on the card does the same thing with the mouse.
Amber means one thing in Shepi: something needs you. That is the whole colour language.
The agent can ask you with buttons, not just a menu
Most of the time an agent's question is a numbered menu in a wall of terminal output, and the cheap thing to do is hit 1 and hope. In Shepi an agent can ask you properly:
shepi-agent ask "Deploy to staging?" --options Deploy,Wait
It arrives like any agent that needs you, and your click goes straight back to it as the answer. The same small plugin lets an agent open a page or a file on your Mac, report its progress under its own name in the sidebar ("Step 3 of 7 · migrating"), and open a pane beside itself to run tests or a dev server, marked as opened by it and never taking your keyboard. On your servers too.
Shepi installs that plugin on every machine it connects to, and Claude Code, Codex, Cursor, OpenCode, Gemini CLI, Copilot CLI, Amp and Grok Build pick the skill up by themselves. Any other agent needs one line in its instructions. Agents ask, show, report and arrange; they never type into a pane or click for you.
Your servers are in the same sidebar
Add any machine you reach over SSH from the sidebar or Settings › Machines, as you@server or a host from ~/.ssh/config. Herdr's own machine setup runs in a terminal inside Shepi, so host keys and passphrases stay in your hands.
It joins as its own group, and every space shows how many agents need you, are working, are done or idle. Agents on a server keep going even while this Mac sleeps.
When a server prints http://localhost:5173, ⌘-click it. Shepi forwards that port over your SSH connection and opens the page here, on another port if 5173 is taken, and the status line says which.
Five letters to a pane on another machine
⌘F searches agents, spaces, panes, machines and the recent output of every pane, local and over SSH. Type a word or two in any order; separators do not matter and first letters work, so fat finds fix-flaky-auth-test. One typo in a longer word is forgiven. Land on output and ⌘G steps through the matches.
⌘E lists the panes you used last, newest first, with the one you just left already selected. ⌘E, Return, and you are back in it.
Then the terminal chores are just gone
None of these are the reason I built it, and all of them are the reason I stopped going back.
Paste a screenshot or drop files onto a pane. On this Mac the paths are pasted; on a server Shepi copies them over SSH first, so Claude Code sees the image as if it were local, up to 32 MB at a time. The prefix and d shows every file changed since the last commit, side by side or in one column, on this Mac or a server, and only shows: it never stages or edits.
The pane your keys go to is the lighter card and the only one with a blinking cursor, and its header names the agent in it, while every other pane stays at full brightness. Drag a pane by its header and the layout shows where it will land before you let go; drop it on another tab and the program inside never stops running. The prefix and = evens out every pane in the tab, the prefix and z takes one full-window and puts the layout back, and a macro on any key of your choosing can type /model, press Return, wait for "Select model", then two more keys into the pane you are in, on this Mac or a server.
The keys are Herdr's, read live from its config. Shepi never edits that file, and change one there and Shepi follows. Almost everything also has a mouse equivalent, and every tooltip names its key.
Step away for six hours
Leave Shepi open and walk away. Every agent that needed you, finished or asked a question meanwhile waits in the inbox next to Find, one entry per pane, until you look at that pane. The Dock icon shows how many and right-clicking it lists them.
Quit the window instead and it works out the same. Herdr keeps your agents running, and on your servers they keep going even while the Mac sleeps. Reopen Shepi and everything is where you left it. If the connection dropped, the status line says how many panes changed while you were gone.
What it is, and what it isn't
- It works with Claude Code, Codex, OpenCode, Gemini CLI, Cursor, Copilot CLI and anything else that runs in a terminal. Every agent Herdr recognises shows its state; the common ones show their own mark.
- No analytics, no crash reports, and no Shepi account to create.
- macOS 14 or later, Apple silicon and Intel, notarized by Apple. Herdr 0.9.3 or later; if it is missing, Shepi shows you the one-line install command.
- Two honest limits: a screenshot pasted into a pane on a server is a file there, not a picture on your screen, and a pane can move between tabs of one space, not between machines.
- An independent client built on Herdr's public interface. Not made by the Herdr project, and not affiliated with it.
If your agents are spread across a Mac and two servers, how do you keep track of which one is waiting on you without checking all three?



Top comments (0)