What's New in Herdr 0.9.5 for Running Coding Agents?
Herdr 0.9.5 adds multi-machine SSH, the --machine flag, per-client UI, safer updates, session persistence and agent self-reporting. Here is what to know.
For Engineering

What is new in Herdr 0.9.5?
Herdr is a terminal multiplexer for coding agents. It works like tmux, but it tracks whether each agent is working, blocked on a question, or done, and shows that in a sidebar. The 0.9.x releases add multi-machine management over SSH, a --machine flag for remote commands, per-client UI, non-destructive updates, stronger session persistence, and a way for agents to report their own state. It is still pre-1.0, so some rough edges remain.
TL;DR
- One Herdr window now manages your local machine plus every saved SSH machine, with all agents in a single list and a single notification stream.
- The
--machineflag runs any Herdr command against a saved machine without opening a Herdr window, which lets one agent drive another on a different box. - The terminal UI now runs in each client, so a laptop and a desktop can view different workspaces on the same server.
- Updating a client no longer has to kill the server, so running agents survive an update when the server is compatible.
- Persistence is much better: saves happen before shutdown, writes are crash-safe, and agents restart one at a time after a restore.
- Agents can report their own status and resume command, so Herdr no longer needs a built-in integration for each new tool.
- Known limits remain, including a Codex status regression in 0.9.5 and an open Zsh prompt bug.
How does multi-machine management work?
Before 0.9.x, remote mode meant one client connected to one SSH host. Now a single Herdr window can manage local and all saved SSH machines together. Added machines appear in the sidebar under local. If you add one interactively, Herdr looks for Herdr sessions already running on that host and lets you pick one, so you don't start a duplicate by accident. A label is optional, because it falls back to the SSH host name.
The agent list merges every machine. A Claude Code agent on your laptop and a Codex agent on a server show up together. If the server one blocks on an approval, you see it in the same place and get the same notification.
A few details matter for reliability:
- Each machine reconnects on its own, so a dropped server doesn't stall your local agents.
- Keyboard navigation moves across machines in sidebar order and highlights the target before you press enter, which helps avoid sending input to the wrong box.
herdr machine statuschecks all saved machines without prompting you.herdr machine reconnectlets you finish a password or MFA login in your terminal.- Open clients recheck failed machines every 30 seconds.
- Windows SSH hosts are now supported.
Bandwidth got attention too. SSH connections use compression, typing and switching no longer resend the whole pane screen, and scrolling output sends only changed rows. That should keep an agent streaming build logs usable on a poor connection.
What does the --machine flag do?
The --machine flag runs a Herdr command against a saved machine from your local terminal, with no Herdr window open. Running it with a server's name and agent list returns the agents on that server.
The bigger point is that agents can use it. An agent on your laptop can start another agent on your server, send it a prompt, wait for it, and read the output back. That makes agent-controls-agent workflows scriptable through the CLI.
Two constraints apply. You need to update Herdr on both machines for this to work. And if a remote command fails, it never falls back to running locally. That is the safe behavior, since a silent local fallback could run work on the wrong machine.
How do per-client UIs change things?
The terminal UI now runs in each client instead of on the server. In practice, a laptop and a desktop attached to the same server can look at different workspaces and tabs at the same time. One can sit on a front-end project while the other watches backend agents.
Each client also keeps its own theme, menus, and copy mode, so changing one screen doesn't affect the other.
Can you update Herdr without killing running agents?
Mostly, yes. Earlier, updating could mean stopping the server, which killed every pane and every agent inside. Now a client update can leave a compatible server and its agents alone.
- If the server lacks a feature, only that action is disabled.
- If Herdr must replace a remote server, it asks first, and the default answer is no.
- After
herdr update, it lists which running servers are still on the old version, gives the exact restart command for each, and reminds you to update saved machines.
Plugin updates follow the same idea. herdr plugin update updates all your GitHub plugins at once, and running plugin panes keep using their old files until their next run.
How well does Herdr persist sessions now?
This is where the release is most practical for long jobs.
- On a Mac restart or Windows shutdown, Herdr saves before the system starts closing apps, so agents come back where they were.
- Saves are written to disk before they replace the old file, so a crash or power cut can't leave a broken session file.
- Herdr keeps up to 48 layout snapshots in a session snapshots folder for manual recovery.
- On Mac and Linux, closing the shell that started Herdr no longer stops the server.
- If the machine runs out of processes or threads, the server keeps running instead of taking every pane down.
- On restore, agents start one at a time, 100 milliseconds apart by default. With 20 agents, that eases the CPU spike. The delay is configurable through the startup per-agent delay setting in the session section of the config.
How do agents report their own state?
Previously, Herdr needed a built-in integration for an agent, or it read the screen and guessed. Now there is a guide for adding Herdr support to an agent. An agent can tell Herdr directly that it is working, blocked, or idle. It can also hand over the exact command that reopens its session.
After a server restart, Herdr runs that command in the same pane and folder, and the conversation comes back with no built-in support for that agent. This shifts Herdr toward being a runtime that agents plug into, rather than a tool that must chase every new CLI.
Built-in detection also expanded to cover Muse and Letta Code (as named in the walkthrough), with status bug fixes for Claude Code, Codex, OpenCode, Antigravity, Grok, Kiro, and others.
What smaller changes shipped?
- Go to lists every agent and terminal as its own row, grouped by workspace, with status and path. Left and right jump between workspaces.
- You can set more than one prefix key, for example Control Space and Control S, and both open prefix mode.
- A clear pane action clears the screen and scrollback but keeps the current prompt line. It is unbound by default and leaves full-screen apps like Vim alone.
- Text inputs behave like normal text boxes, with cursor movement and delete by word.
- Holding Control over a link highlights it before you open it.
- Pane images use standard Kitty graphics.
- Clicking a pane no longer sends a stray escape that could interrupt a working agent, server CPU use is lower with many panes, and closing a workspace's only pane asks first.
Is Herdr 0.9.5 reliable enough for many agents?
For terminal-heavy workflows, it looks close, with caveats. The repo was close to 49,000 GitHub stars at the time of the walkthrough, and the update, persistence, and reconnect work targets exactly the failures that hurt long sessions. But it is pre-1.0, and the release cadence shows it.
Known limitations:
- Version 0.9.2 removed the old Herdr pane graphics API. Anything built on it had to move to standard Kitty graphics.
- Version 0.9.3 shipped the same day as 0.9.2 to fix escape-based shortcuts, and 0.9.5 arrived the day after 0.9.4.
- Codex support regressed slightly in 0.9.5. Herdr stopped installing Codex turn hooks to remove a startup warning, so Codex status is read from the screen again. Run
herdr integration install codexto update it. - A Zsh with Powerlevel10k bug, where resizing a pane repeats parts of your prompt, is still open while a fix is awaited in Ghostty.
--machineneeds the new version on both machines.
If you run more than two or three agents in a terminal, or live on SSH boxes, it is worth trying. If you prefer diffs, review panels, and click-based approvals, a desktop agent app may fit better. Some people run both: Herdr for long server jobs, a GUI for day-to-day review.
Frequently Asked Questions
What is Herdr?
Herdr is a terminal multiplexer built for coding agents. Like tmux, it manages panes and sessions, but it also tracks each agent's state (working, blocked, done) and shows it in a sidebar.
Do I need to update both machines to use --machine?
Yes. The --machine flag requires the new Herdr version on both your local machine and the remote one. If a remote command fails, Herdr does not fall back to running it locally.
Will updating Herdr kill my running agents?
Not necessarily. A client update can leave a compatible server and its agents running. If Herdr needs to replace a remote server, it asks first and defaults to no.
Can Herdr support agents it has no integration for?
Yes. Agents can report their own working, blocked, or idle state and supply a resume command. Herdr then reruns that command in the same pane and folder after a restart.
Does Herdr work with Windows?
Windows SSH hosts can now be connected as remote machines. Session saving also now runs before a Windows shutdown, so agents can return where they were.
Useful for
How we source, write, and correct our articles. Editorial standards
Related articles

Herdr vs Panda Code: Which Should You Use for Coding Agents?

How Much Does Gemini 4 Carbon Cost and Who Can Use It?

Coding Agent Context Rot: How to Fix It With a Handoff File
