Connecting the machines
The next step for Herdr is connecting the machines.
Herdr already has more than 700,000 downloads and close to 1,000 plugins. There is a big community behind it, with people using it to manage their agents and their local machines.
Herdr already has --remote, so you can attach to a remote machine. As agents run for multiple hours, sometimes you want them on a machine that stays alive 24/7. You don’t want to keep your laptop open just because an agent is still working.
I think we’re also starting to think about our laptops as clients, instead of relying on them for all the compute. For a lot of us, it makes more sense to run a beefy machine somewhere else than spend a couple thousand dollars on the laptop we carry around. You could have a VPS, a Mac mini in your own setup, or both.
But until now, each machine needed a separate Herdr client, usually in a different terminal tab. You had to remember where each agent was running and switch between those tabs to check on them. That was the bottleneck.
People have been asking for this for months. There are already community workarounds, thanks to Herdr’s plugin system and some amazing contributors. But Herdr itself wasn’t built to support it.
Why this took longer
Multiplexers like tmux and Zellij don’t support one TUI client managing independent servers across machines. That was a niche use case. Agents are changing that. Now we want to run agents anywhere and control them from wherever we are.
Herdr already had a client and a server, but one client attached to one server. Everything you saw in Herdr was rendered on that server. Bringing multiple servers into that setup would have meant making one server aggregate all those connections, or changing where the UI lived.
I wanted the client to bring those machines together, while each server kept running its own terminals and agents. That meant changing how Herdr itself was built. That’s why this took longer than I expected.
With 0.9, Herdr’s outer UI is rendered on the client. The servers still own their sessions and supply the terminal views. The client can now bring those independent servers into the same TUI, instead of attaching to one server’s entire interface.
This also gives us room for more performance improvements as we keep separating the client from the runtime.
Connecting your machines
With this update, you can run:
herdr machine add workboxGive it your SSH target, and that machine’s workspaces, tabs, and agents become available alongside your local ones in the same Herdr TUI. Switch machines without opening another client. The agents keep running on their own machines when you disconnect.
For now, those machines need to be reachable over SSH. They could be on your local network, reachable over the internet, or connected through something like Tailscale. Many developers already have that setup.
You can find the setup details in the Connecting machines docs.
This is the first version of Herdr’s multi-machine support. The TUI can now bring your machines together, but the agent CLI still works within one server. It doesn’t yet see the agents running on your other machines.
I want the CLI to work across machines too, so agents can find and work with each other even when they’re running on different servers. Cross-machine agent collaboration is one of the things I want to build on top of this.
I wanted to release this before adding all of those features, so I can get feedback from people actually using it. Tell me what’s missing and where you hit problems. That will help me decide what to build next.
Getting to 1.0
After this update, what I want is to make connecting those machines more convenient. You shouldn’t need to think about SSH or deal with complicated network setup. It should be easy to connect any machine, anywhere, through one Herdr account.
Whether it’s a sandbox, a virtual machine, a remote server, or a machine in your own setup, you should be able to install Herdr and connect it to the rest of your machines.
This is where Herdr Cloud comes in. It didn’t make it into this release, but it’s the next missing piece.
The goal is to link your machines with a single command and stop worrying about how to reach them. Herdr Cloud would provide the middleman layer for those connections. Terminal traffic would be end-to-end encrypted between your machines and your Herdr client.
You still bring your own machines. Cloud connects them; it doesn’t host the agents for you.
Having Herdr own the terminals and agent sessions across different machines also brings more interesting things we could build on top. One thing I’d like to explore further out is moving an agent session between machines, so you don’t have to choose where it will live before you start working. That takes more than connecting the machines, but it’s the kind of use case I’m thinking about as Herdr gets closer to 1.0.
For now, you can connect your machines over SSH with 0.9. If you want to try the next piece, join the Herdr Cloud waitlist.