cd /news/developer-tools/herdr-agent-multiplexer-that-lives-i… Β· home β€Ί topics β€Ί developer-tools β€Ί article
[ARTICLE Β· art-42987] src=github.com β†— pub= topic=developer-tools verified=true sentiment=Β· neutral

Herdr: Agent multiplexer that lives in your terminal

Herdr, an open-source terminal-based agent multiplexer, launched version 0.4.0, allowing developers to manage multiple AI agents in workspaces, tabs, and panes directly from the terminal. The tool supports mouse-native interactions, detachable sessions, and integrates with various agents, aiming to replace GUI-based agent managers.

read9 min views1 publishedJun 29, 2026
Herdr: Agent multiplexer that lives in your terminal
Image: source

herdr.dev Β· install Β· quick start Β· supported agents Β· integrations Β· configuration Β· socket api Β· sponsor

v.0.4.0.mp4 #

agent multiplexer that lives in your terminal.

workspaces, tabs, panes. mouse-native: click, drag, split. every agent at a glance: blocked, working, done. detach and reattach, agents keep running. no gui app, no electron, no mac-only native wrapper. you see the agent's own terminal, not someone's interpretation of it.

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

on windows preview beta:

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

or install with homebrew:

brew install herdr

or install with mise:

mise use -g herdr

if mise reports herdr not found in mise tool registry

, update mise and retry. older mise versions predate the herdr registry entry; mise use -g github:ogulcancelik/herdr

works as a temporary fallback.

or download the stable Linux/macOS binary from releases. Native Windows binaries are preview-only beta builds.

Start Herdr in the directory where the work lives:

herdr

Herdr starts or attaches to one background session server. When a session has no workspaces, Herdr opens one automatically. Run an agent in the root pane. Press ctrl+b

, then shift+n

to create another workspace, ctrl+b

, then v

or minus

to split panes, ctrl+b

, then c

to create a tab, and ctrl+b

, then w

to switch workspaces.

Press ctrl+b q

to detach the client. The server and pane processes keep running. Open another terminal and run herdr

again to reattach.

Server and client. By default, herdr

attaches to a background server. Detaching closes only the client. herdr server stop

stops the default server and kills its panes. Named sessions are separate server namespaces: use herdr session attach work

, herdr session stop work

, and herdr session list

when you want fully separate runtime state.

Workspaces, tabs, panes. A workspace is the project-level container. Tabs group panes inside a workspace. Panes are real terminal processes, not rewritten agent views.

Copy. Herdr copies pane text, not the sidebar. Drag-select inside a pane, double-click a word or token, or press prefix+[

for keyboard copy mode. In copy mode, move with h/j/k/l

, w/b/e

, and {

/}

, start selection with v

or Space, copy with y

or Enter, and leave with q

or Esc. In PuTTY and some SSH terminals, hold Shift

while dragging to use the terminal's own selection, and Shift

  • right click to paste.

Update and restore. herdr update

installs a new binary, but a running server keeps using the old process until it is stopped or handed off. Stop the old server to use the new version. Stopping exits pane processes. Run herdr server stop

, then run herdr

again for the default session. For a named session, run herdr session stop <name>

, then run herdr session attach <name>

again. herdr update --handoff

is experimental and tries to move live panes, including foreground processes such as dev servers, from the old server to the new one. With current official integrations installed, supported agent panes can restart from their native agent sessions after a server restart or update.

Keybindings. Herdr uses explicit keybinding strings. prefix+n

means press the configured prefix, then n

. ctrl+alt+n

, cmd+k

, alt+1

, and function-key chords are direct terminal-mode shortcuts and do not need the prefix. Plain direct printable keys such as n

steal normal typing, so use prefix+n

unless you intentionally want a modifier-gated direct binding.

Agent awareness. The sidebar shows blocked, working, done, and idle states. Detection works with process names and terminal output by default. Official integrations can add native session identity for restore, semantic state reports, or both.

Herdr notifies you when a new version is available. Run manually:

herdr update

herdr update

is for installs managed by Herdr's own installer. Homebrew, mise, and Nix installs update through brew upgrade herdr

, mise upgrade herdr

, or your Nix workflow, then use the same stop-and-run-again flow if a session is still running the old server. Linux and macOS direct installs can opt into development preview builds with herdr channel set preview

and return to stable with herdr channel set stable

. Windows beta installs are preview-only for now. See install docs and session state docs for the full update, restart, restore, and handoff matrix.

Linux and macOS direct installs use the stable update channel by default. Windows beta installs default to preview. To test preview builds from master

before the next stable release:

herdr channel set preview

To return Linux and macOS direct installs to stable:

herdr channel set stable

For direct installs, changing channels also checks that channel and installs its latest binary. If that update fails, run herdr update

to retry from the configured channel.

Preview is only for direct installs managed by Herdr's updater. Homebrew, mise, and Nix stay on stable and update through their package managers.

tmux gui managers herdr
persistent sessions βœ“ β€” βœ“
detach / reattach βœ“ β€” βœ“
panes, tabs, workspaces βœ“ βœ“ βœ“
agent awareness β€” βœ“ βœ“
lives in your terminal βœ“ β€” βœ“
real terminal views βœ“ β€” βœ“
mouse-native β€” βœ“ βœ“
lightweight binary βœ“ β€” βœ“
agents can orchestrate ? ? βœ“

tmux gives you persistence and panes, but it was built before agents existed. gui managers show agent state, but they make you leave your terminal and use their wrapped view. herdr is persistence and awareness in one tool that stays out of your way.

Herdr works over normal SSH. Run it on the remote host, detach, and reattach later:

ssh you@yourserver
herdr

You can also attach from your local terminal without opening a shell first:

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

Remote attach adds fallback SSH keepalives by default while preserving your own SSH config. Set [remote].manage_ssh_config = false

to use plain ssh

.

Direct attach connects your current terminal to one server-owned terminal:

herdr agent attach <target>
herdr terminal attach <terminal_id>

See persistence and remote docs for remote keybinding, named-session, and handoff details.

the sidebar shows which agents are blocked, working, or done. workspaces roll up to their most urgent state so you can scan the full list at a glance.

states:

  • πŸ”΄ blockedβ€” agent needs input or approval - 🟑 workingβ€” agent is actively running - πŸ”΅ doneβ€” work finished, you have not looked at it yet - 🟒 idleβ€” done and seen

detection works by reading foreground process and terminal output. zero config, no hooks required. official claude code, codex, github copilot cli, devin, droid, kimi code cli, qodercli, and cursor agent cli integrations provide session restore identity; pi, omp, kimi code cli, opencode, kilo code cli, hermes, and custom socket integrations can report their own state.

not a gui window, not a web dashboard, not electron. herdr runs inside whatever terminal you already use. single rust binary, no dependencies. works inside tmux as the outer terminal environment.

workspacesβ€” organized around git repos or folder names, each with its own tabs and panes** tabs**β€” first-class in the socket api and cli** copy-friendly**β€” drag-select pane text, double-click tokens, or use keyboard copy mode withprefix+[

,h/j/k/l

,{

/}

,v

, andy

notificationsβ€” sounds and toasts for background events; tab-aware suppression** 18 built-in themes**β€” catppuccin, terminal, tokyo night, gruvbox, one, solarized, kanagawa, rosΓ© pine, vesper, and light variants for the main palettessession persistenceβ€” pane processes survive client detach; sessions restore panes after full restart, with opt-in recent screen history

The local Unix socket lets agents create workspaces, split or zoom panes, spawn helpers, read output, and wait for state changes. Start with the socket API docs and SKILL.md.

automatic detection works out of the box. process name matching plus terminal output heuristics.

agent idle / done working blocked

claude codecodexdroidampopencodegrok clihermes agentkilo code clidevin cligithub copilot cliqoderclikiro clidetected but not fully tested: gemini cli, cline.

for agents outside the built-in list, herdr still works as a terminal multiplexer with workspaces, panes, and tiling. custom integrations can report agent labels over the socket api. see the socket api docs.

official integrations have two roles. claude code, codex, github copilot cli, devin, droid, qodercli, and cursor agent cli report session identity for native restore, while their state still comes from screen detection. pi, omp, kimi code cli, opencode, kilo code cli, and hermes report both semantic state and session identity. install with:

herdr integration install pi
herdr integration install omp
herdr integration install claude
herdr integration install codex
herdr integration install copilot
herdr integration install devin
herdr integration install droid
herdr integration install kimi
herdr integration install opencode
herdr integration install kilo
herdr integration install hermes
herdr integration install qodercli
herdr integration install cursor

see the integrations docs for setup details.

Press ctrl+b

to enter prefix mode. Default actions are prefix-first and tmux-like:

key action
prefix+c
new tab
prefix+n / prefix+p
next / previous tab
prefix+1..9
switch tab
prefix+w
workspace navigation
prefix+g
session navigator
prefix+shift+n
new workspace
prefix+shift+g
new worktree
prefix+shift+w
rename workspace
prefix+shift+d
close workspace
prefix+h/j/k/l
focus pane
prefix+shift+h/j/k/l
swap pane
prefix+v / prefix+minus
split pane
prefix+x
close pane
prefix+b
toggle sidebar
prefix+z
zoom pane
prefix+r
resize mode
prefix+q
detach

Mouse is supported throughout. Resize mode uses h

/l

for width, j

/k

for height, and esc

to exit. Full syntax, optional actions, indexed bindings, and custom command bindings live in the configuration docs.

config file: ~/.config/herdr/config.toml

herdr --default-config   # print full default config

In-app settings cover theme, sound, and toast preferences. Herdr writes logs under ~/.config/herdr/

; in persistent session mode, herdr-client.log

and herdr-server.log

are usually the useful files. Full configuration and logging details live in the configuration docs.

quick startβ€” first session, panes, copy, and named sessionsinstallβ€” install, update, Homebrew, mise, and Nixsession stateβ€” detach, restart restore, agent restore, and live handoffconfigurationβ€” keybindings, themes, notifications, environment variablesintegrationsβ€” pi, omp, claude code, codex, cursor agent cli, github copilot cli, droid, kimi code cli, opencode, kilo code cli, hermes, qodercli integrationsβ€” reusable agent skillSKILL.md

socket apiβ€” socket protocol and cli reference

if you are an ai agent helping with this repository, read AGENTS.md before making changes and read

before opening issues or PRs.

CONTRIBUTING.md

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

just test        # unit tests
just check       # formatting, tests, and maintenance checks

herdr is built full-time, in the open, with no revenue behind it. sponsoring directly funds development, stability, and the path to a real agent runtime.

β†’ become a sponsor Β· enterprise / partnership:

hey@herdr.devΒ· see

SPONSORS.mdfor tiers. thank you πŸ‘

Herdr is dual-licensed:

  • Open source: GNU Affero General Public License v3.0 or later (AGPL-3.0-or-later).
  • Commercial: commercial licenses are available for organizations that cannot comply with AGPL.

Contact: hey@herdr.dev

── more in #developer-tools 4 stories Β· sorted by recency
── more on @herdr 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain β€” perfect for shipping the agent you just read about.

$git push zahid main
β†’ Live at https://your-agent.zahid.host βœ“
Get free account β†’ Pricing
from €0/mo Β· no card required
LIVE [news/herdr-agent-multiple…] indexed:0 read:9min 2026-06-29 Β· β€”