Downstream fork — Profreshor/herdr-multi-remote. This build keeps the
herdrexecutable, configuration, and artifact names for compatibility, but publishes and updates from this repository only. It is stable-channel-only today; preview releases are not provided. Upstream Herdr remains at herdrdev/herdr.
Status: actively maintained downstream fork; release automation and direct install/update paths are fork-owned. Package-manager distribution is not provided by this fork.
Your local machine and remote coding agents, in one terminal UI. Keep work running on a laptop, a development server, or several VMs, and switch between their workspaces from one Herdr sidebar. Each machine runs its own Herdr server and owns its terminals, agents, and saved sessions.
- Connect when you need a machine. Saved remotes start disconnected. Open one from new → new remote connection, or click its machine heading. Saving ten VMs does not open ten SSH connections at startup.
- Disconnect while work keeps running. Choose disconnect: SERVER from menu or the connection picker. This closes the client's SSH connection; the remote Herdr server, terminals, and agents keep running. Reconnect when you want to check on them.
- Manage remotes in Settings. Open settings → remotes with
prefix+s(ctrl+b, thensby default). Add, edit, or remove connections without editing a config file. Each entry has a name, SSH host or alias, and optional named session. - Keep each workspace on the right machine. The sidebar groups workspaces by server. new → new workspace creates a workspace on the active machine. Switching machines leaves other open connections attached.
- Keep working through a dropped connection. An opened remote reconnects after a network interruption while local and other remote workspaces remain usable. Choose cancel connection: SERVER to stop retrying.
Version 0.10.0 adds these connection controls, remote settings, and SSH
frame-delivery improvements. Install this fork below, or run herdr update from
an existing fork installation and reopen the client to use the new features.
- Confirm that normal SSH works:
ssh workbox. Herdr uses your existing OpenSSH hosts, keys, and authentication. - Make sure the remote has a compatible Herdr installation. If it does not,
run
herdr --remote workboxonce and follow the setup prompt. The multi-machine UI does not install software on remote hosts. - Start local
herdr, open settings → remotes, and add a connection namedworkboxwithworkboxas its SSH host. Leave the session field blank to use that machine's default session. - Choose new → new remote connection → workbox. Herdr keeps your current workspace available while it connects, then opens the remote workspace.
You can also add remotes directly to ~/.config/herdr/config.toml on Linux or
macOS, or %APPDATA%\herdr\config.toml on Windows:
[remotes.linux]
host = "workbox" # An alias from ~/.ssh/config also works.
[remotes.mac]
host = "dev@mac.example.com"
session = "agents" # Optional; omit to use the default session.Removing a saved remote closes its connection and preserves its remote work. Remote settings are saved on the machine running the client, even when a remote workspace is selected. See the fork's remote guide for connection behavior and configuration details.
fork repository · install · upstream quick start · upstream docs
v.0.4.0.mp4
the runtime your coding agents live on.
- persistent sessions — herdr keeps terminals in a background server. detach or close the client and agents keep working while their host stays awake and running. after a server restart, herdr restores the saved session structure. reattach from any terminal, or over ssh.
- never hunt for the stuck one — every pane is marked working, blocked, or idle. when an agent stops and needs an answer, herdr says so.
- agent-native — agents drive herdr through the cli and socket api: they can spawn panes, prompt each other, and wait until another agent is genuinely blocked. agent skill →
- runs what you already run — claude code, codex, cursor, opencode, grok and the rest. herdr doesn't wrap or replace them; it owns their terminals.
- keyboard and mouse, both first-class — tmux-style prefix keys and click, drag, split. pick per moment, not per tool.
- plugins — extend panes and workflows. browse the marketplace →
- one rust binary, no electron — runs in whatever terminal you already use.
curl -fsSL https://raw.githubusercontent.com/Profreshor/herdr-multi-remote/master/distribution/install.sh | shWindows: powershell -ExecutionPolicy Bypass -c "irm https://raw.githubusercontent.com/Profreshor/herdr-multi-remote/master/distribution/install.ps1 | iex" · cmd: curl.exe -fsSLo install.cmd https://raw.githubusercontent.com/Profreshor/herdr-multi-remote/master/distribution/install.cmd && install.cmd && del install.cmd · binaries
Fork defaults are stable-only and use the existing Herdr configuration format. For example:
[update]
channel = "stable"then start it where the work lives:
herdrrun your agents, split panes, walk away. ctrl+b q detaches, herdr reattaches. quick start →
Upstream Herdr's documentation covers the shared runtime and interface at herdr.dev/docs: quick start · concepts · supported agents · keyboard · configuration · session state · remote · integrations · plugins · socket api
every past sponsor and backer is listed in SPONSORS.md — thank you 🐑
if you are an ai agent helping with this repository, read AGENTS.md before making changes and read CONTRIBUTING.md before opening issues or PRs.
git clone https://github.com/Profreshor/herdr-multi-remote
cd herdr-multi-remote
cargo build --release
./target/release/herdr
just test # unit tests
just check # formatting, tests, and maintenance checksTo investigate remote switching delays, run just bench-remote-latency workbox
from this checkout. It measures transport latency, server handling, and workspace
switching in disposable named sessions, then saves the timings and traces under
/var/tmp. It requires Python 3 on both machines. Use --local without a host
for a local comparison, or --binary target/release/herdr to test a new build.
Measurements end at terminal output, before the terminal emulator paints it.
Herdr is licensed under the Apache License 2.0.
