Skip to content
 
 

Latest commit

 

History

1,548 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

herdr

Downstream fork — Profreshor/herdr-multi-remote. This build keeps the herdr executable, 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.

What this fork adds

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, then s by 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.

Connect your first remote

  1. Confirm that normal SSH works: ssh workbox. Herdr uses your existing OpenSSH hosts, keys, and authentication.
  2. Make sure the remote has a compatible Herdr installation. If it does not, run herdr --remote workbox once and follow the setup prompt. The multi-machine UI does not install software on remote hosts.
  3. Start local herdr, open settings → remotes, and add a connection named workbox with workbox as its SSH host. Leave the session field blank to use that machine's default session.
  4. 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.

herdr

fork repository · install · upstream quick start · upstream docs

Apache 2.0 license latest stable release


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.

install

curl -fsSL https://raw.githubusercontent.com/Profreshor/herdr-multi-remote/master/distribution/install.sh | sh

Windows: 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:

herdr

run your agents, split panes, walk away. ctrl+b q detaches, herdr reattaches. quick start →

docs

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

thanks

every past sponsor and backer is listed in SPONSORS.md — thank you 🐑

agent instructions

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.

development

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 checks

To 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.

license

Herdr is licensed under the Apache License 2.0.

About

Downstream Herdr fork with a multi-remote control plane: local and remote Herdr servers in one terminal UI.

Topics

Resources

Contributing

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages