{"slug": "herdr-agent-multiplexer-that-lives-in-your-terminal", "title": "Herdr: Agent multiplexer that lives in your terminal", "summary": "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.", "body_md": "[herdr.dev](https://herdr.dev) · [install](#install) · [quick start](#quick-start) · [supported agents](#supported-agents) · [integrations](https://herdr.dev/docs/integrations/) · [configuration](https://herdr.dev/docs/configuration/) · [socket api](https://herdr.dev/docs/socket-api/) · [sponsor](#sponsors)\n\n## v.0.4.0.mp4\n\n**agent multiplexer that lives in your terminal.**\n\nworkspaces, 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.\n\n```\ncurl -fsSL https://herdr.dev/install.sh | sh\n```\n\non windows preview beta:\n\n```\npowershell -ExecutionPolicy Bypass -c \"irm https://herdr.dev/install.ps1 | iex\"\n```\n\nor install with homebrew:\n\n```\nbrew install herdr\n```\n\nor install with mise:\n\n```\nmise use -g herdr\n```\n\nif mise reports `herdr not found in mise tool registry`\n\n, update mise and retry. older mise versions predate the herdr registry entry; `mise use -g github:ogulcancelik/herdr`\n\nworks as a temporary fallback.\n\nor download the stable Linux/macOS binary from [releases](https://github.com/ogulcancelik/herdr/releases). Native Windows binaries are preview-only beta builds.\n\nStart Herdr in the directory where the work lives:\n\n```\nherdr\n```\n\nHerdr 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`\n\n, then `shift+n`\n\nto create another workspace, `ctrl+b`\n\n, then `v`\n\nor `minus`\n\nto split panes, `ctrl+b`\n\n, then `c`\n\nto create a tab, and `ctrl+b`\n\n, then `w`\n\nto switch workspaces.\n\nPress `ctrl+b q`\n\nto detach the client. The server and pane processes keep running. Open another terminal and run `herdr`\n\nagain to reattach.\n\n**Server and client.** By default, `herdr`\n\nattaches to a background server. Detaching closes only the client. `herdr server stop`\n\nstops the default server and kills its panes. Named sessions are separate server namespaces: use `herdr session attach work`\n\n, `herdr session stop work`\n\n, and `herdr session list`\n\nwhen you want fully separate runtime state.\n\n**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.\n\n**Copy.** Herdr copies pane text, not the sidebar. Drag-select inside a pane, double-click a word or token, or press `prefix+[`\n\nfor keyboard copy mode. In copy mode, move with `h/j/k/l`\n\n, `w/b/e`\n\n, and `{`\n\n/`}`\n\n, start selection with `v`\n\nor Space, copy with `y`\n\nor Enter, and leave with `q`\n\nor Esc. In PuTTY and some SSH terminals, hold `Shift`\n\nwhile dragging to use the terminal's own selection, and `Shift`\n\n+ right click to paste.\n\n**Update and restore.** `herdr update`\n\ninstalls 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`\n\n, then run `herdr`\n\nagain for the default session. For a named session, run `herdr session stop <name>`\n\n, then run `herdr session attach <name>`\n\nagain. `herdr update --handoff`\n\nis 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.\n\n**Keybindings.** Herdr uses explicit keybinding strings. `prefix+n`\n\nmeans press the configured prefix, then `n`\n\n. `ctrl+alt+n`\n\n, `cmd+k`\n\n, `alt+1`\n\n, and function-key chords are direct terminal-mode shortcuts and do not need the prefix. Plain direct printable keys such as `n`\n\nsteal normal typing, so use `prefix+n`\n\nunless you intentionally want a modifier-gated direct binding.\n\n**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.\n\nHerdr notifies you when a new version is available. Run manually:\n\n```\nherdr update\n```\n\n`herdr update`\n\nis for installs managed by Herdr's own installer. Homebrew, mise, and Nix installs update through `brew upgrade herdr`\n\n, `mise upgrade herdr`\n\n, 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`\n\nand return to stable with `herdr channel set stable`\n\n. Windows beta installs are preview-only for now. See [install docs](https://herdr.dev/docs/install/) and [session state docs](https://herdr.dev/docs/session-state/) for the full update, restart, restore, and handoff matrix.\n\nLinux and macOS direct installs use the stable update channel by default. Windows beta installs default to preview. To test preview builds from `master`\n\nbefore the next stable release:\n\n```\nherdr channel set preview\n```\n\nTo return Linux and macOS direct installs to stable:\n\n```\nherdr channel set stable\n```\n\nFor direct installs, changing channels also checks that channel and installs its latest binary. If that update fails, run `herdr update`\n\nto retry from the configured channel.\n\nPreview is only for direct installs managed by Herdr's updater. Homebrew, mise, and Nix stay on stable and update through their package managers.\n\n| tmux | gui managers | herdr | |\n|---|---|---|---|\n| persistent sessions | ✓ | — | ✓ |\n| detach / reattach | ✓ | — | ✓ |\n| panes, tabs, workspaces | ✓ | ✓ | ✓ |\n| agent awareness | — | ✓ | ✓ |\n| lives in your terminal | ✓ | — | ✓ |\n| real terminal views | ✓ | — | ✓ |\n| mouse-native | — | ✓ | ✓ |\n| lightweight binary | ✓ | — | ✓ |\n| agents can orchestrate | ? | ? | ✓ |\n\ntmux 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.\n\nHerdr works over normal SSH. Run it on the remote host, detach, and reattach later:\n\n```\nssh you@yourserver\nherdr\n```\n\nYou can also attach from your local terminal without opening a shell first:\n\n```\nherdr --remote workbox\nherdr --remote ssh://you@yourserver:2222\n```\n\nRemote attach adds fallback SSH keepalives by default while preserving your own SSH config. Set `[remote].manage_ssh_config = false`\n\nto use plain `ssh`\n\n.\n\nDirect attach connects your current terminal to one server-owned terminal:\n\n```\nherdr agent attach <target>\nherdr terminal attach <terminal_id>\n```\n\nSee [persistence and remote docs](https://herdr.dev/docs/persistence-remote/) for remote keybinding, named-session, and handoff details.\n\nthe 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.\n\nstates:\n\n- 🔴\n**blocked**— agent needs input or approval - 🟡\n**working**— agent is actively running - 🔵\n**done**— work finished, you have not looked at it yet - 🟢\n**idle**— done and seen\n\ndetection 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.\n\nnot 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.\n\n**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 with`prefix+[`\n\n,`h/j/k/l`\n\n,`{`\n\n/`}`\n\n,`v`\n\n, and`y`\n\n**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 palettes**session persistence**— pane processes survive client detach; sessions restore panes after full restart, with opt-in recent screen history\n\nThe 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](https://herdr.dev/docs/socket-api/) and [ SKILL.md](/ogulcancelik/herdr/blob/master/SKILL.md).\n\nautomatic detection works out of the box. process name matching plus terminal output heuristics.\n\n| agent | idle / done | working | blocked |\n|---|---|---|---|\n|\n\n[claude code](https://docs.anthropic.com/en/docs/claude-code)[codex](https://github.com/openai/codex)[droid](https://factory.ai)[amp](https://ampcode.com)[opencode](https://github.com/anomalyco/opencode)[grok cli](https://x.ai/grok)[hermes agent](https://github.com/NousResearch/hermes-agent)[kilo code cli](https://kilo.ai/)[devin cli](https://docs.devin.ai/cli)[github copilot cli](https://github.com/features/copilot)[qodercli](https://qoder.com/cli)[kiro cli](https://kiro.dev/docs/cli/)detected but not fully tested: gemini cli, cline.\n\nfor 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](https://herdr.dev/docs/socket-api/).\n\nofficial 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:\n\n```\nherdr integration install pi\nherdr integration install omp\nherdr integration install claude\nherdr integration install codex\nherdr integration install copilot\nherdr integration install devin\nherdr integration install droid\nherdr integration install kimi\nherdr integration install opencode\nherdr integration install kilo\nherdr integration install hermes\nherdr integration install qodercli\nherdr integration install cursor\n```\n\nsee the [integrations docs](https://herdr.dev/docs/integrations/) for setup details.\n\nPress `ctrl+b`\n\nto enter prefix mode. Default actions are prefix-first and tmux-like:\n\n| key | action |\n|---|---|\n`prefix+c` |\nnew tab |\n`prefix+n` / `prefix+p` |\nnext / previous tab |\n`prefix+1..9` |\nswitch tab |\n`prefix+w` |\nworkspace navigation |\n`prefix+g` |\nsession navigator |\n`prefix+shift+n` |\nnew workspace |\n`prefix+shift+g` |\nnew worktree |\n`prefix+shift+w` |\nrename workspace |\n`prefix+shift+d` |\nclose workspace |\n`prefix+h/j/k/l` |\nfocus pane |\n`prefix+shift+h/j/k/l` |\nswap pane |\n`prefix+v` / `prefix+minus` |\nsplit pane |\n`prefix+x` |\nclose pane |\n`prefix+b` |\ntoggle sidebar |\n`prefix+z` |\nzoom pane |\n`prefix+r` |\nresize mode |\n`prefix+q` |\ndetach |\n\nMouse is supported throughout. Resize mode uses `h`\n\n/`l`\n\nfor width, `j`\n\n/`k`\n\nfor height, and `esc`\n\nto exit. Full syntax, optional actions, indexed bindings, and custom command bindings live in the [configuration docs](https://herdr.dev/docs/configuration/).\n\nconfig file: `~/.config/herdr/config.toml`\n\n```\nherdr --default-config   # print full default config\n```\n\nIn-app settings cover theme, sound, and toast preferences. Herdr writes logs under `~/.config/herdr/`\n\n; in persistent session mode, `herdr-client.log`\n\nand `herdr-server.log`\n\nare usually the useful files. Full configuration and logging details live in the [configuration docs](https://herdr.dev/docs/configuration/).\n\n[quick start](https://herdr.dev/docs/quick-start/)— first session, panes, copy, and named sessions[install](https://herdr.dev/docs/install/)— install, update, Homebrew, mise, and Nix[session state](https://herdr.dev/docs/session-state/)— detach, restart restore, agent restore, and live handoff[configuration](https://herdr.dev/docs/configuration/)— keybindings, themes, notifications, environment variables[integrations](https://herdr.dev/docs/integrations/)— pi, omp, claude code, codex, cursor agent cli, github copilot cli, droid, kimi code cli, opencode, kilo code cli, hermes, qodercli integrations— reusable agent skill`SKILL.md`\n\n[socket api](https://herdr.dev/docs/socket-api/)— socket protocol and cli reference\n\nif you are an ai agent helping with this repository, read [ AGENTS.md](/ogulcancelik/herdr/blob/master/AGENTS.md) before making changes and read\n\n[before opening issues or PRs.](/ogulcancelik/herdr/blob/master/CONTRIBUTING.md)\n\n`CONTRIBUTING.md`\n\n```\ngit clone https://github.com/ogulcancelik/herdr\ncd herdr\ncargo build --release\n./target/release/herdr\n\njust test        # unit tests\njust check       # formatting, tests, and maintenance checks\n```\n\nherdr 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.\n\n[ → become a sponsor](https://github.com/sponsors/ogulcancelik) · enterprise / partnership:\n\n[hey@herdr.dev](mailto:hey@herdr.dev)· see\n\n[SPONSORS.md](/ogulcancelik/herdr/blob/master/SPONSORS.md)for tiers. thank you 🐑\n\nHerdr is dual-licensed:\n\n- Open source: GNU Affero General Public License v3.0 or later (AGPL-3.0-or-later).\n- Commercial: commercial licenses are available for organizations that cannot comply with AGPL.\n\nContact: [hey@herdr.dev](mailto:hey@herdr.dev)", "url": "https://wpnews.pro/news/herdr-agent-multiplexer-that-lives-in-your-terminal", "canonical_source": "https://github.com/ogulcancelik/herdr", "published_at": "2026-06-29 04:27:46+00:00", "updated_at": "2026-06-29 04:58:17.613239+00:00", "lang": "en", "topics": ["developer-tools", "ai-agents", "ai-tools"], "entities": ["Herdr", "ogulcancelik", "Homebrew", "mise", "Linux", "macOS", "Windows"], "alternates": {"html": "https://wpnews.pro/news/herdr-agent-multiplexer-that-lives-in-your-terminal", "markdown": "https://wpnews.pro/news/herdr-agent-multiplexer-that-lives-in-your-terminal.md", "text": "https://wpnews.pro/news/herdr-agent-multiplexer-that-lives-in-your-terminal.txt", "jsonld": "https://wpnews.pro/news/herdr-agent-multiplexer-that-lives-in-your-terminal.jsonld"}}