herdr:编码智能体在后台一直跑herdr: a home where coding agents keep running
Claude Code、Codex 跑在终端里,合上电脑或断了 SSH 就没了。开五个,还得找谁在等你。
herdr 是一个 Rust 程序,像 tmux:服务端管终端,客户端只管画。
结构。 一个会话一个服务端。会话装工作区,工作区装标签页,标签页装面板。面板是真终端,智能体是其中被认出的进程。
怎么连。 本地窗口、SSH、herdr --remote、多台机器同一窗口,或接一个面板。ctrl+b q 断开,活照干。
主循环。 等输出、按键、接口调用或定时器,更新状态,改动 5 秒后存 session.json,只画有人看的。
谁卡住了。 找到智能体进程,拿屏幕底部对照规则(22 个清单),标出工作中、卡住、完成或空闲。6 个集成和支持 herdr 的智能体自己报状态。
互相指挥。 通过 herdr 命令或本地 socket,能开面板、给别的智能体发话、等它完成或卡住。
herdr integration install 要手动装,写进智能体配置,报会话 ID。插件以你的身份运行,没有沙箱。
服务端停了,进程就没了。布局回来,换新 shell;报过会话的智能体接着聊;面板历史要自己开。herdr update --handoff 保住进程,尚属实验。
You run Claude Code, Codex and the rest in terminals. Close the laptop or drop SSH and they die. Run five at once and you keep hunting for the one that's waiting on you.
herdr is one Rust binary, split like tmux: a server owns the terminals, clients just draw.
Structure. One server per session. A session holds workspaces, a workspace holds tabs, a tab holds panes. A pane is a real terminal. An agent is a process recognised in a pane.
Ways in. A local window, SSH, herdr --remote, several machines in one window, or just one pane. ctrl+b q detaches and the work keeps going.
The loop. Wait for output, keys, API calls or timers. Update the state, save session.json 5 seconds after a change, and draw only what someone is looking at.
Who's stuck. herdr finds the agent's process and reads the bottom of its screen against per-agent rules (22 manifests). It marks the pane working, blocked, done or idle. Six integrations, and agents built for herdr, report their own state.
Agents driving agents. Through the herdr CLI or a local socket, an agent can open panes, prompt another agent and wait until it's done or blocked.
herdr integration install is opt-in. It writes into the agent's config and reports the session ID. Plugins run as you, with no sandbox.
If the server stops, the processes are gone. The layout comes back with fresh shells. Agents that reported a session resume it. Pane history is opt-in. herdr update --handoff keeps processes alive, but it is experimental.
来源Source: github.com