Current behavior
Herdr currently has a 1:1 client/server attach model.
herdr attaches to one local headless server.
herdr --remote <target> attaches to one remote headless server.
- For users working across two or more local/remote Herdr or tmux-backed servers, the practical workaround is still separate windows or nested Herdr/tmux sessions.
That nesting technically works, but even two layers create friction: shortcuts become ambiguous, mouse UI actions can go to the wrong layer or stop working reliably, and host-terminal features such as image paste do not behave consistently.
Requested change
It would be genuinely useful if a user could add remote Herdr headless servers once, then use several servers from one Herdr sidebar almost as if they were one server.
Desired user experience:
- launch
herdr locally or herdr --remote <target>;
- treat the launched server as the main server;
- use
menu -> add remote to add another remote host or localhost;
- show local and remote workspaces/agents together in the sidebar;
- click a workspace or agent to switch to that server;
- cycle the
spaces header through all -> local/main -> remote...;
- when creating a workspace from
all, ask which server should receive it.
The server boundary should be visible only as lightweight labels such as local, x, or x herdr, not as another nested terminal app.
Reason
Many tmux users work locally while also managing several remote development or service hosts. Today that means the user has to remember which server owns which workspace, which nested UI currently has focus, and where a new shell or agent will be created.
This feature would trade internal Herdr complexity for a simpler user workflow: one client, one sidebar, clear server labels, and predictable workspace/agent routing.
Product impact
Yes, this changes UI and workflow expectations. It adds an add remote flow and makes the sidebar a multi-server navigation surface.
Non-goals:
- do not merge panes, PTYs, processes, or runtime state across machines;
- do not move workspaces between servers;
- do not require nested Herdr UIs for the multi-server workflow;
- do not make this a general SSH session manager.
Implementation notes draft
This is only a possible direction, not the requested user-facing contract.
- Keep the launched server as the main server.
- Persist only a lightweight remote registry on the main server.
- Keep actual secondary server connections client-owned.
- Refactor sidebar ownership so the thin client can render a unified sidebar from server/workspace/agent summary data.
- Reuse the existing remote attach/SSH bridge where possible for secondary connections.
Current behavior
Herdr currently has a 1:1 client/server attach model.
herdrattaches to one local headless server.herdr --remote <target>attaches to one remote headless server.That nesting technically works, but even two layers create friction: shortcuts become ambiguous, mouse UI actions can go to the wrong layer or stop working reliably, and host-terminal features such as image paste do not behave consistently.
Requested change
It would be genuinely useful if a user could add remote Herdr headless servers once, then use several servers from one Herdr sidebar almost as if they were one server.
Desired user experience:
herdrlocally orherdr --remote <target>;menu -> add remoteto add another remote host orlocalhost;spacesheader throughall -> local/main -> remote...;all, ask which server should receive it.The server boundary should be visible only as lightweight labels such as
local,x, orx herdr, not as another nested terminal app.Reason
Many tmux users work locally while also managing several remote development or service hosts. Today that means the user has to remember which server owns which workspace, which nested UI currently has focus, and where a new shell or agent will be created.
This feature would trade internal Herdr complexity for a simpler user workflow: one client, one sidebar, clear server labels, and predictable workspace/agent routing.
Product impact
Yes, this changes UI and workflow expectations. It adds an
add remoteflow and makes the sidebar a multi-server navigation surface.Non-goals:
Implementation notes draft
This is only a possible direction, not the requested user-facing contract.