DEV Community

Andrew
Andrew

Posted on • Originally published at andrew.ooo

Herdr Review: The Agent Multiplexer Your Terminal Needed

Originally published on andrew.ooo — visit the original for any updates, code snippets that aged out, or follow-up posts.

TL;DR

Herdr is an open-source terminal multiplexer built specifically for the age of AI coding agents. Think tmux, but every pane knows whether its agent is working, blocked, done, or idle — and agents can drive the multiplexer back through a socket API.

It hit 13,900+ GitHub stars and 4,500 new stars this week, landing in the top 5 trending repos. Built in Rust, distributed as a single binary, AGPL-licensed, and installable with Homebrew or a one-liner curl.

Why the sudden popularity? If you've been running Claude Code in one tmux pane, Codex in another, and a third agent waiting on review feedback, you've felt the pain Herdr solves natively.

Key facts:

  • Persistent sessions — detach and agents keep running. Reattach from any terminal or over SSH.
  • Real agent state — Herdr detects what each agent is doing and surfaces blocked, working, done, and idle status across all workspaces.
  • Both keyboard and mouse — tmux-style prefix keys plus click, drag, split, and context menus. No trade-off.
  • Socket API — agents can spawn panes, read output, wait on each other, and split terminals.
  • Plugin marketplace — extend workflows beyond the built-in features.
  • One Rust binary, no Electron — runs in whatever terminal you already have.
  • Homebrew install in one command, plus Homebrew, mise, and direct binary downloads.

If you're a developer running coding agents daily and still using tmux (or no multiplexer at all), Herdr is the tool that brings both worlds together.

Quick Reference

Field Value
Repo ogulcancelik/herdr
Website herdr.dev
Docs herdr.dev/docs
License AGPL-3.0 (commercial licenses available)
Language Rust
Install brew install herdr or `curl -fsSL https://herdr.dev/install.sh \
Current version v0.4.0
Stars 13,900+ (4,500/week)

The Problem Herdr Solves

Coding agents have changed how we work, but our terminal multiplexers have not.

If you run Claude Code to refactor a backend, Codex for frontend work, and a third agent iterating on docs, you're probably using tmux with three windows. It works, but tmux has no idea what the foreground process is doing. Is the agent typing? Waiting for approval? Stuck on a permission prompt? You have to check each pane manually.

The community noticed. On Hacker News (287 points, front page this week), the top comment thread compared Herdr to tmux and Zellij. The consensus: tmux persists terminals, but Herdr persists agent workspaces and understands their state.

"Herdr is a purpose-built answer to a problem that tmux was never designed to solve." — AI Weekly

The question is not whether a tool can run terminals. The question is whether it combines terminal-native persistence with semantic agent state and agent-driven automation.

How It Works

Architecture

Herdr runs as a background server process that owns persistent PTY sessions. When you run {% raw %}herdr, it either launches or attaches to your default session. The server keeps running after you detach, and agents in its panes keep running too.

Each session contains workspaces (project-level containers), workspaces contain tabs, and tabs contain panes. Herdr detects which panes contain coding agents and rolls their state up the hierarchy so the sidebar shows you what needs attention at a glance.

herdr server (background daemon)
  └── session (persistent PTY runtime)
       ├── workspace "project-a"
       │    ├── tab "backend"
       │    │    ├── pane 1 [Claude Code — working]
       │    │    └── pane 2 [shell]
       │    └── tab "frontend"
       │         └── pane 1 [Codex — blocked]
       └── workspace "project-b"
            └── tab "docs"
                 └── pane 1 [pi — done]
Enter fullscreen mode Exit fullscreen mode

Installation

# macOS (Homebrew)
brew install herdr

# Linux / macOS (direct)
curl -fsSL https://herdr.dev/install.sh | sh

# Windows (PowerShell)
powershell -ExecutionPolicy Bypass -c "irm https://herdr.dev/install.ps1 | iex"

# or use mise
mise use -g herdr

# or download binaries from GitHub releases
Enter fullscreen mode Exit fullscreen mode

That's it. One binary, no npm install, no Electron, no runtime dependencies.

Quick Start

# Start Herdr in your project directory
herdr

# Herdr opens with an empty workspace. Start an agent:
claude

# The sidebar shows the agent's state. Split the pane:
# (mouse: right-click → split vertically)
# (keyboard: ctrl+b v for vertical split, ctrl+b - for horizontal)

# Open another tab:
# ctrl+b c

# Start another agent there:
codex

# Detach (agents keep running):
# ctrl+b q

# Reattach from anywhere:
herdr
Enter fullscreen mode Exit fullscreen mode

Agent State Detection

This is Herdr's killer feature. The sidebar shows:

  • Working (green) — agent is actively processing
  • Blocked (yellow) — agent is waiting on input, approval, or permission
  • Done (gray) — agent completed its task
  • Idle (dim) — agent is running but not doing anything

Detection works through two systems:

1. Lifecycle hooks (for agents with deep integrations): pi, OMP, Kimi Code CLI, Hermes Agent, OpenCode, Kilo Code CLI, MastraCode. These agents report their state directly to Herdr.

2. Screen manifest detection (for all other agents): Claude Code, Codex, Cursor Agent CLI, GitHub Copilot CLI, Devin CLI, Qoder CLI, Droid. Herdr reads the live bottom-buffer screen snapshot and matches known UI patterns for approval prompts, permission questions, and idle states.

Blocked detection is deliberately conservative for screen-manifest agents — only matching known visible approval or question UI. If Herdr doesn't recognize a new prompt pattern, it falls back to idle.

You can install native integrations for richer state tracking:

herdr integration install claude
herdr integration install codex
herdr integration install copilot
herdr integration install devin
herdr integration install opencode
Enter fullscreen mode Exit fullscreen mode

FAQ

How is Herdr different from tmux?

tmux persists terminals. Herdr persists agent workspaces and understands agent state. tmux has no concept of "blocked" or "working" — it's just panes with running processes. Herdr detects the foreground agent, reads its state from the screen buffer (or lifecycle hooks), and surfaces status across all workspaces. It also adds a socket API that agents can use to create panes, split, read output, and wait on each other. Under the hood, Herdr takes a similar approach to tmux (C vs Rust), but the feature set is agent-native from day one.

Can I use Herdr without any agents?

Yes. Herdr works as a general-purpose terminal multiplexer similar to tmux or Zellij. Its keyboard bindings, mouse support, session persistence, and split panes all work without an agent. The agent features are additive — you get a good multiplexer either way, and if you start using coding agents later, Herdr already knows what to do.

Which agents are officially supported?

Claude Code, Codex, pi, OMP, GitHub Copilot CLI, Devin CLI, Kimi Code CLI, Hermes Agent, Qoder CLI, Droid, OpenCode, Kilo Code CLI, MastraCode, and Cursor Agent CLI. Gemini CLI and Cline are detected but less thoroughly tested. Any terminal-based agent still runs as a multiplexer — you just won't get automatic state badges without an integration.

Can I use Herdr over SSH?

Yes. Herdr sessions are persistent and can be detached and reattached from any terminal. Run herdr on your remote server, start your agents, detach, and reattach over SSH from your local machine. The herdr --remote workflow supports direct connections to specific workspaces.

How does the AGPL license affect me?

Herdr is AGPL-3.0 for open-source use. If you use it as an individual developer or within your company without distributing modifications, AGPL doesn't impose new obligations. If your organization needs to embed or modify Herdr in a proprietary product, commercial licenses are available by contacting hey@herdr.dev.

Hands-On Experience

I installed Herdr via Homebrew on macOS and tested it across a day of real work with Claude Code and Codex.

Setup took under 10 seconds. Running herdr in my project directory opened a clean workspace with a pane already available. Starting claude in that pane was immediate — the sidebar showed the agent status within a second.

The mouse support is genuinely good. Right-click context menus for splitting, clicking panes to focus, and drag-to-resize all work as expected. I have been a tmux user for years (prefix keys muscle-memorized), and the fact that I could also just click felt liberating.

The agent state detection worked well for Claude Code and Codex. Blocked was the most useful signal. When Claude hit a permission prompt or Codex asked for clarification, the pane border turned yellow and the sidebar updated. In practice, this meant I could work in one pane, glance at the sidebar, and know exactly which project needed attention without scrolling through every terminal.

The socket API is the underrated feature. Agents can call Herdr's homie socket to create new workspaces, split panes, read output from other panes, and wait on agent completion. This enables multi-agent workflows where one agent delegates to another and waits for the result — all managed through the same multiplexer.

Performance

Herdr is written in Rust and it shows. Memory usage stays under 15MB for a session with 6 panes and 3 agents. CPU impact is negligible — process detection is event-driven, not a polling loop. Starting a new session is instant (< 100ms).

What I Missed from tmux

  • tmux kill-session -a — no quick way to kill all sessions
  • Built-in buffer management — tmux's copy mode is more mature
  • display-panes visual selector — Herdr's pane navigation relies more on sidebar clicking
  • Tiling window management (tmux's select-layout even-horizontal) — Herdr has manual splitting but fewer automatic layouts

These are gaps, not dealbreakers. Herdr is at v0.4.0 and the development pace is aggressive (multiple releases per week).

Community & Ecosystem

The Herdr community has already built a plugin marketplace with extensions for workflows, pane management, and integrations. The socket API has been picked up by the OpenCode and Kilo Code teams for native Herdr support.

On Reddit, discussions in r/coding_agents and r/coolgithubprojects noted the speed of development:

"Watching this project grow is impressive. Two weeks ago it was a basic tmux clone with agent labels. Now it has lifecycle hooks, remote sessions, and a plugin system." — r/coding_agents

The project is built full-time by Oğulcan Çelik and sponsored through GitHub Sponsors. The AGENTS.md file in the repo gives explicit instructions for AI coding agents contributing to the project — a signal that Herdr takes its own philosophy seriously.

Limitations & Honest Concerns

  1. v0.4.0 maturity. Herdr is new. Expect rough edges, missing features, and the occasional breaking change. The rapid release cadence is a double-edged sword — features arrive fast, but config stability is not guaranteed.

  2. Blocked detection is conservative. For screen-manifest agents, Herdr only marks blocked when it recognizes a known approval UI pattern. New or unusual prompts may show as idle instead of blocked. This is safe (no false positives for "needs input"), but it means the state awareness is not perfect.

  3. AGPL licensing friction. Some organizations have blanket bans on AGPL dependencies. If you want Herdr in a corporate environment, check with legal before adopting it as a shared team tool.

  4. Plugin ecosystem is young. The marketplace has a handful of plugins. Compare this to tmux's decade-plus plugin ecosystem (tpm, tmuxinator, tmux-resurrect, etc.) and the gap is significant.

  5. No Windows GUI integration. Windows support exists via PowerShell installer, but the experience on Windows Terminal is less polished than native terminal multiplexers like ConEmu or Windows Terminal's built-in panes.

Verdict

Herdr solves a real problem that existing tools ignore. If you run even one coding agent regularly in the terminal, the agent state awareness and session persistence alone justify the switch. If you run multiple agents across multiple projects, Herdr becomes a genuine productivity multiplier.

Skip it if: you only use one agent, you have no interest in terminal multiplexers, or your org has AGPL compliance concerns.

Install it if: you run Claude Code, Codex, or any coding agent in the terminal and want to know — at a glance — what each agent is doing without checking every pane manually.

What to watch for: The v1.0 release. If the plugin ecosystem grows and blocked detection becomes more comprehensive, this will be the default terminal multiplexer for AI-era developers.

When to Use What

Tool Best for
Herdr Multiple coding agents, agent state awareness, SSH-accessible persistent sessions
tmux Established workflows, complex custom configs, plugin-rich ecosystems, any terminal process
Zellij Modern terminal workspace with a friendlier UX, no agent focus needed
Warp macOS users who want an all-in-one agentic development platform
Solo Dev-stack supervision and process health with auto-restart
Conductor/Emdash Git worktree and diff review workflow isolation

Sources

Top comments (0)