Replies: 10 comments 2 replies
|
Same need here: two Alacritty windows attached to the default session, want window A on workspace 2 and window B on workspace 1 at the same time. Today both mirror. Dug into why. Selection is shared session state, so there is one selection for every attached client:
So mirroring is structural, not a config gap. Independent windows need selection to become per-client. The interesting part:
and the project is "migrating toward a server-owned runtime protocol with the TUI as one client." So this feature is the endpoint of a migration already in progress, not a new concept. Workspaces/tabs/panes stay shared session organization. Only the view into them (which ws/tab/pane each client looks at) moves to the client layer, where the guardrail says it belongs. Sketch of the seam:
Phaseable: Phase 1 introduces Open questions that need a maintainer call before any code:
Happy to build Phase 1 as a no-behavior-change PR if the seam looks right to you. Mainly want your read on direction and the v1 scope before writing it. |
|
I have this working on my fork: the active workspace becomes per-client via a ClientView context swap, so two windows attached to the same session can sit on different workspaces at once, with no shared mirror. @renatojf's read is right, the blocker is that the active workspace is shared session state; this moves it into the client. diff at Castrozan#5 what you guys think? |
|
Tested this fork (commit 65d6079, herdr 0.7.3) with two clients of The core behavior works. Both clients held different workspaces at the Findings beyond the happy path: 1. Views are per-client, sizing is not. All workspaces share one global 2. done→idle "seen" is global. An agent ran to 3. Focus is a single global value that tracks the last-interacted 4. Concurrent interaction held up. A modal open in one client while the 5. Reattach does not restore a client's view. 6. Heavy output didn't wedge anything. A several-hundred-thousand-line 7. One unconfirmed client exit. While one client was viewing a Overall: the per-client view swap itself looks solid. The real gaps are |
|
I would also love to see this. in fact, until this is a thing I would never waste time (forgive me for putting it that way) learning herdr because while tmux isn't nearly as ideal for this, and herdr is clearly superior in a lot of ways, the ability to connect multiple clients to different parts of the same session (with different non-mirrored views) is an absolute requirement for my workflows. it's more common that I need that than that I don't. I'd be happy to assist with development, but don't want to waste time if it's not something the core devs are willing to accept; I'd want some guidance on how they'd want to see it done as well. |
|
Disclosure: this comment was written by Fable, an AI model. The human posting it asked for an independent review of the working fork discussed above and is sharing the results here hoping they help. Two fresh reviewer agents examined the branch independently — one Fable agent at xhigh reasoning effort, one sol 5.6 at xhigh — and I (Fable) verified and synthesized their reports against the code. Everything below refers to @Castrozan's First, what both reviewers cleared: the swap primitive itself. Both reviewers also independently found the same two P1 bugs, plus two P2s from sol 5.6. These are new — none overlap with the limitations already reported above. 1. P1 — deferred
|
|
Heavy tmux user here. Two things I do constantly that herdr can't cover today. Multiple windows of the same session on one machine. I usually keep four or five terminal windows open side by side, each on a different window of the same session, because I need to watch several agents at once and steer them in real time. When an agent goes off track, I want to catch it in the moment, not read about it afterwards. Splits inside a single window aren't a substitute — with five agents each pane gets too small to actually read, and I want them as separate OS windows I can place and size independently. The same session from different machines at the same time. Laptop and phone over mosh, each looking at a different window. tmux grouped sessions give me both of these today. I genuinely want to move to herdr — agents in panes with real status tracking is exactly the model I need, and I've already set it up as a second layer next to tmux. But the mirrored view is what blocks a full migration: if every attached client renders the same frame, five terminal windows just show me the same thing five times, which defeats the purpose. +1 on this, and please consider implementing it. Happy to test on a real multi-agent workload, including across two very differently sized clients. |
|
I have created a fork which seems to be working well from my quick testing. https://github.com/josevelaz/herdr CleanShot.2026-07-30.at.13.17.42.mp4 |
|
some update on this: this feature and #515 are joined together and will be, hopefully, released in next 1-2 updates. multi-session requires some heavy refactors on how each session either remote or local is rendered so it's taking a bit of time. which would also enable multiple local clients per session. so bear with me :) |
|
This is something I miss from Zellij - looking forward to it! |
|
this is live now with the multi-server update https://herdr.dev/blog/connecting-the-machines/ |
Uh oh!
There was an error while loading. Please reload this page.
idea / problem
In tmux, I am able to open two terminal windows, and attach the same session and each terminal window acts independent as long as i am in different tmux windows. Herdr mirrors the session regarless of the terminal window.
requested change
I would like to ability to have the same session open in seperate terminal windows.
why you want this
Adding this would allow me to monitor two, or even 3 workspaces simultaneously side by side without having to switch between them.
All reactions