AI AgentAI CodingDeveloper Tools

Herdr: Agent GUIs Are Already Good Enough, So Why Use a Terminal Multiplexer?

If you’ve been following multi-agent tools recently, you may already have heard of Herdr. It’s earned some specific praise among heavy CLI users: some run over ten agents simultaneously, using it to keep approval requests from idling in the background for days; and there are developers who used tmux for years before switching because they were juggling Claude Code, Codex, Cursor, and Kiro at the same time. What workflows do these recommendations actually describe? Agent GUIs already work well — what does Herdr add on top of them?

In an earlier discussion, we noted that Harness Engineering is introducing new interaction bottlenecks. As developers deploy more and more agents in local or remote environments, these tools run independently for longer and longer stretches. The old habit of a human watching command-line output scroll by on a screen is gradually losing relevance. More programs are running in parallel — some processing in the background, some already finished, and some paused waiting for your input or approval. When multiple agents are in flight, you still have to flip through windows one by one to see who’s done, who’s stuck, who’s awaiting confirmation. More tasks are running, but the management approach still belongs to the single-agent era. This quickly became a major pain point in workflows.

Faced with this concurrency, the market has responded at different layers. The Codex desktop app, Claude Code’s Agent View, and the various OpenCode clients can each group and arrange tasks within their own ecosystems. Beyond single-vendor solutions, there are also cross-tool aggregated dashboards and system-tray floating widgets that consolidate your background programs.

Since these graphical interfaces can already indicate which tasks need attention, support remote approval from your phone, and make code diffs far more intuitive than the terminal, why would anyone still choose a terminal multiplexer?

The choice only makes sense in one specific situation: when the terminal session itself remains your primary execution interface.

Three Answers to the Same Interaction Problem

When multiple agents are running concurrently, the first decision is at which layer to manage them.

If your day-to-day development mostly stays within a single tool ecosystem, using that vendor’s official interface is usually the smoothest approach. The Codex desktop app can manage multiple threads simultaneously with in-app code diffs; its mobile client handles cross-thread tracking and approvals, and the desktop client includes built-in Remote SSH for connecting to remote dev machines. Claude Code’s Agent View takes a similar approach, grouping sessions by Needs input, Working, and Completed; with Remote Control, you can take over tasks on the host machine from your phone or browser. For those using OpenCode, it offers multi-device support — once the web service is enabled, the attached text-only TUI client can also share session information with it.

If you use several model tools simultaneously and don’t want to change the underlying terminal, only needing a unified notification, then adding an aggregated dashboard or a lightweight floating widget is enough. AgentsRoom connects to multiple providers, offers terminal stream replay and notifications, and comes with a mobile app. If you’d rather not install a large application, a system-edge floating widget is a lighter alternative. According to their official pages, CodeIsland and Vibe Island can extract pending requests from different tools and display them at the edge of the screen — a click jumps you back to the corresponding terminal panel. Vibe Island’s page also states that it supports cross-network monitoring of running states on remote servers.

Only against this backdrop does Herdr, as a pure terminal multiplexer, stand out. It does not operate at the graphical layer. It is useful only when your work environment demands that sessions stay inside the terminal. It directly owns these session processes, rather than merely observing them from outside and helping you jump back to a window.

Herdr Owns the Sessions Themselves, Not Just the Notifications

A floating widget’s role is to observe — to notice when a program is blocked and guide the user back to the original location. Each vendor’s GUI, in turn, packages the execution process into its own defined project and thread records. Herdr, as a terminal multiplexer, holds actual PTY (pseudo-terminal) processes and attaches this information to its own panels.

As a result, it preserves native command-line interaction behavior. In the split panes it creates, you can simultaneously run ordinary Bash scripts alongside CLI tools from different vendors. Full-screen text interfaces and ordinary command prompts remain unaffected — they are still complete terminal sessions. It also possesses the basic capabilities you’d expect from a multiplexer: you can run the detach command to close the local connection, leaving the server and running programs to continue working in the background; later, use the reattach command to reconnect. While programs are running, Herdr extracts their execution phases and aggregates them into a hierarchy of panels, tabs, and workspaces.

Herdr turns multiple terminal windows into an attention queue sorted by blocked, working, and done status

Because it owns the underlying processes and hierarchical structure, Herdr exposes a CLI and Socket API that local scripts can call directly. Developers can write scripts to create new panels, list the current task inventory, switch focus, capture text output from a panel, or directly send input commands. Scripts can also suspend and wait until a task in a specific panel changes state before continuing.

In a case from GENDA, a development team needed to work on five or six code issues simultaneously, with each issue requiring both Claude Code and Codex in parallel. In this workflow, Herdr only provided terminal panel control and information gathering. What actually stitched these model tools together was a custom external protocol the author wrote, which called Herdr’s Agent skill interface to make it work.

Why Most Users Should Not Switch

Most developers do not need this level of direct access to underlying terminal panels, and therefore do not need to switch multiplexers.

If you primarily use a single vendor’s GUI tool, staying there gives you direct product integration, a purpose-built code-diffing interface, and a more polished mobile approval flow. For macOS users who only need a notification, adding a floating widget costs far less than replacing the entire terminal multiplexer. Those who have long been comfortable with tmux or Zellij and want alerts can add indicator plugins through community-provided hooks for tmux or Zellij, while preserving the mature environment they’ve configured over years.

Furthermore, Herdr’s own inference mechanism is not particularly accurate. As its official documentation states, to obtain the running phases of Claude Code and Codex, Herdr still relies heavily on foreground process monitoring and screen content parsing (screen-manifest). This approach of guessing program execution intent purely by inspecting screen content is not perfect in practice. Issue #1362, filed during version 0.7.3, documents a case where an OpenCode sub-session mounted inside a split pane may still be working but the sub-panel displays as idle — the activity signal therefore does not always reliably propagate to the panel or workspace level.

Additionally, it has explicit boundaries around session state persistence. As mentioned earlier, the client-side detach and reattach operations do allow processes to keep running. But if the Herdr server process is fully stopped and restarted, it will only restore the window layout, working directories, and focus exactly as they were. A server restart does not guarantee that any given process or conversation history will be recovered.

The Niche Where Herdr Fits

With the above cases excluded, the audience that Herdr suits is extremely specific.

It suits developers who need to run three or more long-running CLI agents simultaneously. These tools may come from different frameworks and are always interleaved with various ordinary terminal commands. For these users, the local terminal, a Linux box, or a headless remote host connected over the network is their primary ground for writing code and running programs. They want a unified tool that can oversee all these PTY processes and expose them to other local scripts or tools for inspection and manipulation. For this need, they are willing to accept the state-detection limitations of the current 0.x early-stage release.

By contrast, if your situation falls into any of the following categories, switching is not recommended. If your workflow revolves solely around Claude, use Claude Code’s Agent View and Remote Control first. If your work centers entirely on Codex, use Codex’s official desktop client, mobile client, and Remote SSH. If you rely heavily on OpenCode, its built-in desktop, web, and multi-session interfaces also come first. If you’re on macOS and just want alerts, don’t touch your current multiplexer — install a floating widget instead. If your work depends heavily on a UI for code diffs, you’re used to working from your phone, or you rely on an IDE, graphical interfaces, and voice input, a pure CLI multiplexer is equally unsuitable. For organizations that need task schedulers, automated PR review pipelines, or multi-team collaboration systems, Herdr cannot do any of those things either.

Although some people use phone-based SSH to access Herdr’s tasks, this is usually just an auxiliary path for emergencies. The official guide does demonstrate this responsive TUI interface over SSH. But in practice, reviewing code or entering large amounts of text on a small screen is far less pleasant than using purpose-built, optimized official mobile apps. This should not be your reason to migrate.

Agent GUIs, status notification layers, and Herdr’s terminal session layer solve different problems

If the terminal screen where you run commands is no longer your primary execution interface, Herdr is most likely not the tool you need.