ogulcancelik / herdr

ogulcancelik / herdr

herdr herdr.dev · install · quick start · supported agents · docs · socket api · sponsor

Run all your coding agents in one terminal. See who’s blocked, working, or done at a glance. Run your agents where they already run; your machine, a server, anywhere you can ssh. Each one gets its own real terminal, not an app’s imitation of one, so even full-screen TUIs render right. Click, drag, and split panes into workspaces and tabs, and watch each agent go blocked, working, done. Close the laptop and nothing dies; reattach from another terminal, or from your phone over ssh. One local Rust binary, not an app: no GUI, no Electron, no Mac-only wrapper, no account, no telemetry. (If you’ve used tmux: it’s that, rebuilt for agents.)

在同一个终端中运行你所有的编程智能体(Coding Agents)。一眼就能看出谁在阻塞、谁在工作、谁已完成。在智能体原本运行的地方运行它们:你的电脑、服务器,或者任何你可以通过 SSH 连接的地方。每个智能体都拥有真实的终端,而不是应用程序的模拟终端,因此即使是全屏的 TUI(终端用户界面)也能完美渲染。你可以点击、拖拽并将窗格拆分为工作区和标签页,实时观察每个智能体的状态。合上笔记本电脑,任务也不会中断;你可以从另一个终端重新连接,甚至可以通过手机 SSH 重新接入。这是一个本地 Rust 二进制文件,而非应用程序:没有 GUI,没有 Electron,没有仅限 Mac 的封装,没有账户,没有遥测。(如果你用过 tmux:它就是为智能体重新构建的 tmux。)

What you get

你将获得什么

  • A real terminal per agent: You see each agent’s own screen, not an app’s imitation of one, so even full-screen TUIs render right.

  • Agent state at a glance: The sidebar rolls every agent up to 🔴 blocked, 🟡 working, 🔵 done, or 🟢 idle, so you always know who needs you.

  • Zero config, no hooks required.

  • Workspaces, tabs, panes: Organize by repo or folder, click, drag, and split, mouse-native throughout.

  • Nothing dies on detach: A background server keeps panes and agents alive; detach and reattach from any terminal, including your phone over ssh.

  • Runs anywhere: Single ~10MB Rust binary, Linux and macOS (Windows beta), no dependencies, runs inside the terminal you already use.

  • Scriptable: A local socket API and CLI that agents can drive, plus plugins you can write in any language.

  • 每个智能体拥有真实的终端: 你看到的是每个智能体自己的屏幕,而不是应用程序的模拟界面,因此即使是全屏 TUI 也能正确渲染。

  • 智能体状态一目了然: 侧边栏会将每个智能体的状态汇总为 🔴 阻塞、🟡 工作中、🔵 已完成或 🟢 空闲,让你随时知道谁需要你的关注。

  • 零配置,无需钩子(hooks)。

  • 工作区、标签页、窗格: 按仓库或文件夹组织,支持点击、拖拽和拆分,全程原生支持鼠标操作。

  • 断开连接后任务不中断: 后台服务器保持窗格和智能体运行;你可以从任何终端(包括手机 SSH)断开并重新连接。

  • 随处运行: 单个约 10MB 的 Rust 二进制文件,支持 Linux 和 macOS(Windows 测试版),无依赖,在你现有的终端内运行。

  • 可脚本化: 提供本地 Socket API 和 CLI 供智能体驱动,此外还支持用任何语言编写插件。


How it compares

对比分析

tmuxGUI managersherdr
Persistent sessions
Detach / reattach
Runs anywhere, over ssh
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. It has no idea which pane is blocked, working, or done; you can bolt a bell character and per-harness hooks onto it, but you wire each one yourself and still have no shared view of the fleet. The GUI agent managers (conductor, cmux, emdash) do show agent state, so call that table stakes. The difference is everything around it. They are apps, often Mac-only and closed, that redraw the terminal inside a wrapper. Herdr is a single binary that runs in the terminal you already use, anywhere you can ssh, and shows each agent’s real screen on a server that keeps it alive when you disconnect.

Tmux 提供了持久化和窗格功能,但它诞生于智能体出现之前。它无法识别哪个窗格处于阻塞、工作或完成状态;你可以通过添加响铃字符和钩子来勉强实现,但你需要手动配置每一个,且无法获得全局的统一视图。GUI 智能体管理器(如 conductor, cmux, emdash)确实能显示智能体状态,但这只是基础门槛。真正的区别在于其他方面:它们通常是仅限 Mac 的闭源应用程序,在封装器内重绘终端。而 Herdr 是一个单一的二进制文件,在你现有的终端中运行,支持任何 SSH 环境,并在服务器上显示每个智能体的真实屏幕,确保你在断开连接时任务依然存活。


Install

安装

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

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

Also available with brew install herdr, mise use -g herdr, nix run github:ogulcancelik/herdr, or as a stable Linux/macOS binary from releases.

Windows 预览测试版: powershell -ExecutionPolicy Bypass -c "irm https://herdr.dev/install.ps1 | iex"

也可通过 brew install herdrmise use -g herdrnix run github:ogulcancelik/herdr 安装,或从 GitHub Releases 下载稳定的 Linux/macOS 二进制文件。


Quick Start

快速开始

herdr starts or attaches to a background server and opens a workspace. Run an agent in the pane. Herdr is mouse-native, so clicking and dragging panes, tabs, and split borders gets you everywhere without a single keybinding. For the keyboard, ctrl+b is the prefix: press it, release, then press the action key, so ctrl+b then c makes a tab. One reserved key keeps herdr out of your shell’s way.

herdr 会启动或连接到一个后台服务器并打开一个工作区。在窗格中运行你的智能体。Herdr 原生支持鼠标操作,因此点击和拖拽窗格、标签页及拆分边框即可完成所有操作,无需记忆快捷键。对于键盘操作,ctrl+b 是前缀键:按下并松开,然后按下动作键,例如 ctrl+b 后按 c 即可创建一个标签页。这个保留键确保了 Herdr 不会干扰你的 Shell 操作。

  • ctrl+b then shift+n for a new workspace

  • ctrl+b then v or minus to split panes

  • ctrl+b then c for a new tab

  • ctrl+b then w to switch workspaces

  • ctrl+b then q to detach; agents keep running, run herdr again to reattach

  • Press ctrl+b then ? for every binding.

  • ctrl+b 然后 shift+n:新建工作区

  • ctrl+b 然后 v-:拆分窗格

  • ctrl+b 然后 c:新建标签页

  • ctrl+b 然后 w:切换工作区

  • ctrl+b 然后 q:断开连接;智能体继续运行,再次运行 herdr 即可重新连接

  • 按下 ctrl+b 然后 ?:查看所有快捷键绑定。


Remote

远程使用

Run herdr on a VPS and reach it from your local terminal. herdr --remote makes your local terminal the client of the remote server, so pasting images into your agents keeps working, the thing plain ssh + tmux breaks.

在 VPS 上运行 herdr 并从本地终端连接。herdr --remote 会使你的本地终端成为远程服务器的客户端,因此向智能体粘贴图片等功能依然有效,而这正是普通 SSH + tmux 无法做到的。

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


Supported Agents

支持的智能体

Detection works out of the box with process-name matching plus terminal-output heuristics.

检测功能开箱即用,通过进程名称匹配和终端输出启发式算法实现。

(Table omitted for brevity, includes: 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, qodercli, kiro cli)

Any other agent still works; herdr runs it as a terminal multiplexer, and custom integrations can report labels and state over the socket api.

任何其他智能体也同样适用;Herdr 将其作为终端复用器运行,自定义集成可以通过 Socket API 上报标签和状态。


Agents can use herdr too

智能体也可以使用 Herdr

The local Unix socket lets agents create workspaces, split or zoom panes, spawn helpers, read output, and subscribe to state changes instead of polling.

本地 Unix Socket 允许智能体创建工作区、拆分或缩放窗格、生成辅助进程、读取输出,并订阅状态变更,而无需轮询。

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