herdr: manage multiple AI coding agents in one terminal

herdr is a terminal-based AI agent multiplexer for managing Claude Code, Codex, OpenCode, Devin, and other coding agents, with detach, remote mode, and a socket API.

herdr is a terminal multiplexer for AI coding agents. Think of it as tmux redesigned for agents: each agent runs in a real terminal, while herdr organizes them into workspaces, tabs, and panes, and shows whether each agent is blocked, working, done, or idle.

If you use Claude Code, Codex, OpenCode, Devin, Cursor Agent, or other CLI agents at the same time, the hard part is not launching them. The hard part is remembering which one is waiting, which one is still running, and whether a disconnected terminal can be recovered. herdr focuses on that multi-agent scheduling problem.

What herdr is

The official description is: an agent multiplexer that lives in your terminal.

It is not an Electron GUI and it does not redraw terminals inside a separate app window. herdr is a local Rust binary that runs in your existing terminal. Each agent gets a real terminal, which helps full-screen TUIs, interactive prompts, mouse support, Unicode, and complex output behave normally.

Key ideas:

  • single Rust binary;
  • real terminal per agent;
  • workspace, tab, pane;
  • agent state detection;
  • detach / reattach;
  • SSH remote;
  • local socket API;
  • no account, no telemetry.

The project is mainly Rust, uses master as the default branch, has herdr.dev as its site, and the latest release is v0.7.1.

What problem it solves

tmux is powerful, but it does not know whether a pane is running an AI agent or waiting for user confirmation. GUI agent managers can show state, but they are separate apps and often give up some native terminal behavior.

herdr sits between them:

  • sessions persist like tmux;
  • agent status is visible like a GUI manager;
  • it still lives in the terminal and works over SSH;
  • it does not replace Claude Code, Codex, or other agents;
  • it exposes a socket API so agents can control herdr.

That matters when Codex is debugging one issue, Claude Code is editing a module, and OpenCode is exploring another branch. The sidebar can show who is blocked, finished, or still working.

Main features

One real terminal per agent

herdr gives each agent a real pane instead of simulating a terminal. Full-screen TUIs, interactive input, multiline paste, colors, and wide characters should be more reliable than inside a GUI-embedded terminal view.

Clear agent state

The sidebar groups agents into:

  • blocked;
  • working;
  • done;
  • idle.

The README says detection defaults to process-name matching plus terminal-output heuristics, so every agent does not need a hook. Some official integrations provide more native session restore and semantic state.

Workspace, tab, pane

You can split work by repository, project, or task using workspaces, tabs, and panes. herdr supports mouse clicks, drag and drop, pane splits, and keyboard shortcuts.

Detach while tasks keep running

herdr has a background server. After detach, panes and agents keep running; running herdr again reattaches. This also fits server workflows over SSH.

Remote mode

Plain ssh + tmux can lose some modern terminal capabilities such as image paste or richer protocol features. herdr provides --remote, where the local terminal acts as a client for a remote herdr server.

1
2
herdr --remote workbox
herdr --remote ssh://you@yourserver:2222

If your agents run on a remote development machine, this is one of herdr’s most useful features.

Socket API and scripting

herdr exposes a local Unix socket API. Agents can create workspaces, split panes, launch helpers, read output, and subscribe to state changes instead of scraping the screen.

It also provides a reusable skill:

1
npx skills add ogulcancelik/herdr --skill herdr -g

That makes herdr not only a human multiplexer, but also a component in agent workflows.

Installation

The recommended script is:

1
curl -fsSL https://herdr.dev/install.sh | sh

Windows preview beta:

1
powershell -ExecutionPolicy Bypass -c "irm https://herdr.dev/install.ps1 | iex"

Other options:

1
2
3
brew install herdr
mise use -g herdr
nix run github:ogulcancelik/herdr

You can also download stable Linux/macOS binaries from GitHub releases. For v0.7.1, the assets include:

  • herdr-linux-aarch64;
  • herdr-linux-x86_64;
  • herdr-macos-aarch64;
  • herdr-macos-x86_64.

Script installs can update with:

1
herdr update

Homebrew, mise, and Nix versions should be updated through their package managers.

Quick start

Start herdr:

1
herdr

It starts or connects to the background server and opens a workspace. Then launch agents in panes:

1
2
3
codex
claude
opencode

The default prefix is ctrl+b: press ctrl+b, release it, then press the action key.

Action Shortcut
New workspace ctrl+b, then shift+n
Split pane vertically or horizontally ctrl+b, then v or minus
New tab ctrl+b, then c
Switch workspace ctrl+b, then w
Detach ctrl+b, then q
Show all shortcuts ctrl+b, then ?

After detach, agents keep running. Run this to return:

1
herdr

Supported agents

The README lists many supported agents:

  • pi;
  • Claude Code;
  • Codex;
  • Droid;
  • Amp;
  • OpenCode;
  • Grok CLI;
  • Hermes Agent;
  • Kilo Code CLI;
  • Devin CLI;
  • Cursor Agent;
  • Antigravity CLI;
  • Kimi Code CLI;
  • GitHub Copilot CLI;
  • Qoder CLI;
  • Kiro CLI.

Gemini CLI and Cline are marked as detected but not fully tested. Other terminal programs can still run as ordinary panes, though state accuracy may be lower without a dedicated integration.

Install official integrations with:

1
herdr integration install <agent>

The README mentions integrations for pi, omp, claude, codex, copilot, devin, droid, kimi, opencode, kilo, hermes, qodercli, and cursor.

How to choose against tmux and GUI managers

tmux is still excellent if you mostly run shells on servers. If you use only one agent and do not need status overview, herdr may not add much.

herdr fits better when you run multiple agents, need to see who is waiting, want detach/reattach, work over SSH, dislike GUI wrappers, or want agents to orchestrate terminal state through the socket API.

GUI managers suit desktop-product workflows. herdr is more for terminal users and remote development environments.

Building from source

1
2
3
4
git clone https://github.com/ogulcancelik/herdr
cd herdr
cargo build --release
./target/release/herdr

Tests and checks:

1
2
just test
just check

Most users should use the install script or release binary instead of building from source.

Notable updates in v0.7.1

v0.7.1 was released on 2026-06-24. Highlights include:

  • [update].version_check and [update].manifest_check to disable background version and remote agent-detection manifest checks;
  • HERDR_AGENT=<agent> for Linux cases where wrappers, VMs, Bubblewrap, or fence hide the real agent;
  • ui.pane_borders and ui.pane_gaps;
  • the Agents panel now shows all agents by default after removing workspace/all filters;
  • user keybindings no longer leave two actions on the same key when overriding defaults;
  • fixes for Windows Terminal multiline paste, ConPTY, CJK branch-name truncation, and remote handshake latency.

The release shows active work around Windows support and multi-agent lifecycle details.

License notes

herdr is dual licensed:

  1. open source under GNU Affero General Public License v3.0 or later;
  2. commercial licensing for organizations that cannot meet AGPL requirements.

Personal or internal trial use is usually straightforward. Product integration, hosted services, or modified distribution should review AGPL obligations carefully.

Practical advice

Treat herdr as a multi-agent parallel workbench, not just a terminal decoration.

A natural workflow is:

  1. one repository per workspace;
  2. one task per pane;
  3. one agent per pane;
  4. use the sidebar for state;
  5. use detach/reattach for long tasks;
  6. use herdr --remote on remote development machines;
  7. add official integrations or the socket API after the workflow is stable.

If you already run Codex, Claude Code, and OpenCode in tmux, herdr’s appeal is direct: it keeps terminal freedom while adding an agent-status layer.

记录并分享
Built with Hugo
Theme Stack designed by Jimmy