Loading...
正在加载...
请稍候

herdr 深度研究:让编码智能体自己管自己的终端

QianXun (QianXun) 2026年08月13日 05:17

the runtime your coding agents live on —— 编码智能体栖身的运行时

研究对象:herdrdev/herdr(本地克隆 c:/github/herdr
研究时间:2026-08-13 | 一手仓库深读 + 多源交叉核证(官网/博客/GitHub API/独立媒体)


〇、费曼视角 · 一句话讲清

设想你牧着十只羊(十个编码智能体),散在十片草场(十个终端)。旧日的做法,是亲自逐片巡视:哪只羊在吃草、哪只羊掉进了坑(卡在权限询问上,等你拍板),全凭两条腿。

herdr 就是那位住在草场中央的牧人。 羊群住进他的围栏(后台服务器),他替你盯着:working(在吃草)、blocked(掉坑了,喊你)、done(吃完了,等你验收)。你合上笔记本走人,羊一只不丢;回来时从任意终端「归队」即可。更有意思的是——牧人的哨子(socket API)羊自己也会吹:一只羊能给另一只羊开新草场、派活计、等它卡住再去搭手。羊管羊,人只管拍板。

一句话:tmux 是终端的客栈(留宿进程),herdr 是客栈加前台——既留宿,又懂状态,还给住客(智能体)彼此通信的电话。


一、它到底是什么(侦察结论 + 事实校正)

1.1 基本档案

内容
定位 编码智能体的终端运行时(agent-native terminal multiplexer)。官方中文自称「智能体复用器」
作者 Can Celik(GitHub 账号 Ogulcan Celik,土耳其,提交时区 +0300),单人开发起步
首发 2026-03-27(v0.1.0,initial release 仅一行 changelog)
当前版本 v0.8.0(2026-08-03);本地 HEAD 已领先 90 个提交(2026-08-13)
实现 单个 Rust 二进制,无 Electron。~22.4 万行 Rust,245 个 .rs 文件;ratatui + crossterm + 自家补丁版 portable-pty
平台 Linux / macOS 稳定;Windows 为 beta/preview(捆绑 ConPTY 运行时)
GitHub 28,337 星、2,009 fork、156 open issues、79 个 release、累计下载 380,624(GitHub API,2026-08-13 实测)
许可 Apache-2.0(2026-07-22 由 AGPL-3.0-or-later 改许可,早于融资宣布)
融资 Y Combinator F26 批次(2026-08-06 官宣),公开承诺运行时永保 Apache-2.0 开源免费
官网 herdr.dev | 仓库 github.com/herdrdev/herdr(2026-07-29 从个人仓库迁入组织)

1.2 关键事实校正

常见说法 核证结论
「herdr 是 tmux 的封装/Rust 重写版」 。herdr 是独立实现:自带终端模拟(VT 解析、Kitty graphics、滚动回溯),运行在你已有的终端里(WezTerm/iTerm2/Kitty 皆可),不取代你的终端。它甚至可以跑在 tmux 里,但不解析 herdr 窗格内部的 tmux 会话。
「herdr 包装或替代你的编码智能体」 恰恰相反。README 明言:herdr doesn't wrap or replace them; it owns their terminals. Claude Code、Codex、Cursor 照旧是它们自己,herdr 只「拥有它们的终端」——提供持久、状态感知与互操作。
「AGPL 双许可,企业需买商业授权」 过时。2026-07-22 提交 cd5ea1be 已改许可 Apache-2.0,且赶在 8 月 6 日 YC 公告之前——官方称此举正是为「让所有人自由使用,融资不改初心」。
「代码/会话经 herdr.dev 云端」 无此架构。local-first:无账号、无遥测、无云同步,会话以纯 JSON 存于 ~/.config/herdr。与 herdr.dev 的联络仅限检测 manifest 的热更新(可一行配置关闭)。
「Windows 已全平台支持」 尚为 beta。0.8.0 起 Windows 预览版捆绑应用级 ConPTY 运行时;changelog 中 Windows 修复密度极高(Escape 键、Shift+Enter、命名管道……),可见其「补课」之勤,亦见其尚未毕业。
「团队项目」 至今主体仍是一人。git shortlog:Ogulcan Celik 1,179 提交 + Can Celik 73,其余为 bot 与社区贡献者。YC 公告中才首次表态要「组小团队」。

1.3 时间线速览

时间 事件
2026-03-27 v0.1.0 首发(作者彼时还在找工作,自觉「我即瓶颈」,遂自建)
2026-06-10 博客《Coding agents are becoming runtimes》——提出「智能体 CLI 正在变成开发者基础设施」之论
2026-07-02 登上 Hacker News;7 月 8 日已达 13.6k 星
2026-07-22 AGPL → Apache-2.0 改许可
2026-07-29 仓库迁入 herdrdev 组织
2026-08-03 v0.8.0 发布 + 性能博客《Ten agents, three clients, 95% less CPU》
2026-08-06 官宣加入 YC F26
2026-08-09 起 DHH(Rails 之父 David Heinemeier Hansson)开始提交代码(tab bar、窗口标题同步等 9 笔)

二、架构鸟瞰(技术深拆)

2.1 第一性设计:服务器拥有终端,UI 只是访客

   你的任意终端(WezTerm / iTerm2 / Kitty / Windows Terminal)
        │  herdr(TUI 客户端,可随时 detach)
        ▼
┌─────────────────── herdr 后台服务器 ───────────────────┐
│  拥有:PTY 进程 · 窗格状态 · 工作区布局 · 智能体身份      │
│                                                        │
│   workspace(项目)→ tab(视图)→ pane(真终端)         │
│        └─ 侧边栏状态逐级上卷:一羊 blocked,全场可见      │
│                                                        │
│  检测引擎:前台进程识别 → 每窗格唯一 status authority     │
│  socket API:Unix socket / Windows 命名管道             │
└────────────────────────────────────────────────────────┘
        ▲            ▲              ▲
   CLI 包装层    agent skill     原始 socket(JSON Schema 可导出)
   (脚本/人)  (智能体自用)      (自建工具/事件订阅)

要点在「状态与运行时分离」:AppState 是纯数据(可脱离 PTY 单测),渲染是纯函数(render() 只读不写)。这是 herdr 仓库 AGENTS.md 立的第一条军规,也是它能做到「客户端断了、服务器照跑;机器重启、布局与智能体会话随快照归来」的根。

2.2 状态检测:herdr 的看家本领

五态语义(此乃 herdr 之于 tmux 的分水岭):

状态 含义
blocked 需要你拍板:权限批准、提问、决策
working 正在干活
done 干完了,你还没看(看过即转 idle;CLI 读取不算「看过」)
idle 空闲待命
unknown 在场但无法确信分类——不等于完成

判定机制,双轨并行:

  1. Lifecycle hooks(官方集成已装者):Pi、OMP、Kimi、OpenCode、Kilo、MastraCode 等直接向 herdr 报告生命周期——此为「自报家门」。
  2. Screen manifest(其余智能体):Claude Code、Codex、Cursor Agent CLI、Copilot、Devin、Grok、Qwen Code 等走「看相」——读取底部缓冲区实时快照(注意:不是你滚动看到的视口),与 TOML 规则比对。

试看 src/detect/manifests/claude.toml 真迹(2026-08-12 版):

[[rules]]
id = "osc_title_working"
state = "working"
priority = 1100
region = "osc_title"
# Braille 覆盖 <= 2.1.227;半圆是 2.1.228 的忙碌转轮
regex = ['^[\x{2800}-\x{28FF}\x{25D0}-\x{25D1}] ']

[[rules]]
id = "live_blocked_form"
state = "blocked"
region = "after_last_horizontal_rule"
contains = ["esc to cancel"]
any = [ { contains = ["enter to confirm"] }, ... ]

规则之细,令人莞尔:连 Claude Code 转轮符号从盲文点换成半圆(2.1.228 版)这种上游鸡毛蒜皮,都须 herdr 跟进打补丁——changelog 里满是这类猫鼠游戏(fix: detect claude 2.1.228 half-circle busy spinner)。

三条军规值得记取:

  • 每窗格只有一个 status authority,避免「两个真理源」打架;
  • blocked 判定故意保守:不认识的 UI 宁落 idle,不误报——误判只影响显示与等待,不会诱发任何输入或破坏性动作
  • manifest 可热更新:herdr.dev 远程下发规则补丁(不必升级二进制),本地 ~/.config/herdr/agent-detection/<agent>.toml 覆盖永远优先;调试有 herdr agent explain 逐条亮证据。

自动检测覆盖 20 员:Pi、OMP、Copilot CLI、Devin CLI、Kimi Code、Hermes、Qoder、Qwen Code、Droid、OpenCode、Kilo Code、MastraCode、Claude Code、Codex、Cursor Agent CLI、Amp、Grok CLI、Antigravity、Kiro、Maki;Gemini CLI 与 Cline 检测但测试稍浅。不支持的智能体照常当普通终端跑。

2.3 控制平面:人、脚本、智能体三层同源

用途
CLI shell 脚本、人肉调试(herdr pane split / agent prompt / agent wait
agent skill 智能体自用(herdr --skill 打印,随二进制捆绑;要求 HERDR_ENV=1 方可动手)
原始 socket API 自建工具、事件订阅;herdr api schema --json 导出完整 JSON Schema

智能体被注入 HERDR_WORKSPACE_ID / TAB_ID / PANE_ID 环境变量,由此「知道自己住哪间房」,可用 --current 精确操作自家窗格,不碰别人的焦点。智能体名字是别名,随占用者走——agent 退出即释放,不留僵尸身份。

一份典型「羊管羊」脚本(官方 agent-automation 文档):

split=\((herdr pane split --current --direction right --no-focus)
review_pane=\)(printf '%s\n' "\(split" | jq -r '.result.pane.pane_id')
herdr agent start reviewer --kind codex --pane "\)review_pane"
herdr agent prompt reviewer "Review the current diff" --wait --timeout 120000
herdr agent read reviewer --source recent-unwrapped --lines 120

agent prompt --wait 有个防呆设计:提交后 5 秒内观察不到生命周期变化,即返回 agent_prompt_stalled绝不傻等——这是被真实事故喂出来的细节。

2.4 持久化分四档,强弱分明

情形 进程存活 布局归来 屏幕内容 智能体会话续接
detach/reattach ✓(活终端) ✓(进程未停)
服务器重启 仅 pane 历史(默认关) 靠原生 resume
更新(无 handoff) 视情况 同上 同上
update --handoff(实验) 尽力保活

原生 resume 已覆盖 17 家(Claude --resume、Codex resume、Grok、Cursor、Devin、Kimi、Qwen、OpenCode、Kilo……),集成版本号逐一登记在案。pane 历史回放默认关闭,官方理由很直白:终端输出里可能有密钥与 token——把会话目录当终端历史一样看管。这份隐私自觉,值得点赞。


三、工程实录:95% less CPU 的故事

v0.8.0 配套的性能博客,是本研究读到的最诚实的工程写作之一——不吹「快了多少倍」,而是逐条交代「省掉的是哪一次渲染」:

三刀砍向「无谓渲染」(总 CPU 降 89–95%,客户端越多省越多):

  1. 删转轮:侧边栏每个 working 智能体原先各顶一个 8fps 动画转轮——20 个智能体就是 20 个东西一起转,说的都是同一句话「我活着」,却没人指出谁需要你。改为静态色点后,定时器、动画帧、逐客户端序列化全部蒸发。设计决策在先,CPU 节省只是副产品——此语大可玩味。
  2. 隐藏窗格的输出不触发渲染:渲染请求从此携带来源窗格身份;后台 tab 里写日志的 agent,不再让三个客户端各画一帧给它看。字节照旧解析(切回去时屏幕是新的),只是不画。
  3. 鼠标移动不重绘:每秒 60 个移动事件,原先触发 60 次「画同一幅画」。现在只在全局菜单等真正响应悬停的模式下才重绘。

实测数字(服务器+全部客户端总 CPU):

场景 0.7.5 0.8.0
1 个静默 working 窗格(Linux) 1.467% 0.133%
10 窗格 9 隐藏写入 × 3 客户端(Linux) 13.014% 0.617%
被动鼠标移动 60Hz(Linux) 9.450% 0.667%
隐藏输出场景(macOS) 22.958% 1.673%

且博客主动交代「哪里不灵」:50 窗格 49 个狂写时,瓶颈回到 PTY 读取与终端解析本身,仅省 23.6%——优化针对无谓渲染,不冒充终端仿真的魔法。每个 CPU 数字都配一个机制计数器(调度帧数、跳过次数、鼠标包精确计数 1,680/1,680),「裸 CPU 数字可以有十种解释,配了机制计数器的数字就很难辩驳」。

仓库军规(AGENTS.md)同样值得抄送所有 Rust 项目:状态与运行时分离、渲染纯函数、禁 god object、平台代码隔离、检测器只读快照不碰解析器,以及「乘法性能路径」——凡渲染/解析/检测路径上的新工作,先报「频率 × 基数」(每字节 × 窗格数 × 客户端数),再谈实现。


四、开源、许可与 YC(最该细读的一节)

4.1 改许可的时间点,是态度

2026-07-22 改 Apache-2.0,两周后(08-06)才官宣 YC F26。顺序很重要:若是拿了钱再改,可解读为「为融资清障」;先改再融,则近乎公开宣誓。博文原话:

The runtime, what you use right now, stays free. Apache-2.0. That's why I recently switched it from AGPL: I want everyone to use Herdr freely.

商业化的边界画得清楚:运行时开源免费,公司建在运行时之上——多机协同(笔记本 + 跑长活的 VPS + 跑险代码的沙箱)、多客户端(TUI 之外)。作者的立场亦颇倔强:

You know how every company releases their own agent these days? No, don't do that. Let my agent integrate with your product, don't offer me another agent.

——不做智能体,只做智能体的地基。

4.2 一人军团与豪华访客

  • git shortlog:Ogulcan Celik 1,179 笔 + Can Celik 73 笔(同一人两个身份),贡献者长尾里有 72/66 笔的两个 bot(kangal-bot / akbash-bot,皆牧羊犬品种名——连 bot 都姓羊犬,趣味可见);
  • DHH(David Heinemeier Hansson)2026-08-09 起提交 9 笔:tab 居中、移动 tab 快捷键、pane 边框可配、窗口标题同步……皆是日常自用者的手感打磨。Rails 之父亲自下场提 PR,是比任何 star 数都硬的「用脚投票」;
  • 赞助已关门(SPONSORS.md 列名永志,金主 Terminal Trove),企业洽谈走 hey@herdr.dev

4.3 插件生态:核心守瘦,外围任长

插件即「一个目录 + herdr-plugin.toml 清单 + 任意可执行命令」——Bash、JS、Lua、Rust 皆可,整个 herdr CLI 就是插件 SDK,无独立 SDK、无受限指令集。市场(marketplace)上线一个月,500+ 插件(独立媒体计 531),含 Raycast 扩展、Stream Deck 面板、社区 iOS 客户端——皆非作者手笔。

但须正视:插件无沙箱,以你的用户权限跑你的机器,官方文档直言「Treat a plugin like any extension you add to an editor」,安装前自行审清单与脚本(herdr plugin install 交互模式下先预览后确认)。这是「核心小、信任外移」的架构取舍,用者不可不察。


五、横向对比:runtime vs 多路复用器 vs 管理应用

官方 compare 页开宗明义:Apps manage the herd. Herdr runs it.——多数被拿来对比的工具是「应用」:开一个窗口管理智能体,窗口一关,工作悬于一线;herdr 是「运行时」:服务器在机器上握着真终端,一切 UI(含自家 TUI)都只是挂上去的客户端。

维度 tmux / zellij cmux / Warp / Solo / Conductor 等 herdr
物种 终端多路复用器 智能体管理应用(桌面/Web) 运行时 + 客户端
懂智能体状态 ✗(只见进程) 各自封装转述 ✓ blocked/working/done/idle/unknown
进程持久 随窗口/应用存亡 ✓(服务器持有)
智能体互操作 API 各家私有 ✓ socket API + agent skill
Windows ✗(tmux)/部分 视产品 beta(捆绑 ConPTY)
鼠标 键盘为主 鼠标为主 双一等公民(前缀键 + 点击拖拽)
代码去向 本地 视产品(多有云端) 本地,无遥测无账号
许可 BSD/MIT 多为闭源 Apache-2.0

与 tmux 的关系不妨一言蔽之:tmux 持久化终端,herdr 持久化「智能体的工作」并理解其状态。不用智能体时,herdr 亦是称职的通用多路复用器——智能体功能是加法,不是门槛。


六、诚实的边界

  1. 看相术的脆弱性:screen manifest 是对上游 UI 的猫鼠追逐。Claude 换个转轮、Codex 挪个标题,herdr 就得跟一刀(changelog 可证)。远程 manifest 热更新是缓冲,但新 UI 初来乍到会被误判 idle——好在误判只影响显示与等待,不诱发危险动作。
  2. 检测即信任面:远程 manifest 自 herdr.dev 下发,虽可关闭([update] manifest_check = false)、本地覆盖优先,且未发布版已加 SHA-256 校验,但「二进制之外还有规则源」这一事实,苛刻的安全审计场景须纳入考量。
  3. Windows 未毕业:beta 二字非谦辞。changelog 密度可证投入之巨,亦可证欠账之多。步子哥的 Windows 主力机若要尝鲜,宜以「预览版心态」待之。
  4. 多机协同尚在路上:笔记本 + VPS + 沙箱「该连起来」是 YC 公告里的愿景,今日仍靠 SSH 单机作战。
  5. 插件无沙箱、tmux-in-pane 不解析、pane 历史默认关——皆是明示的取舍,非隐瞒的缺陷。
  6. 单人项目 → 初创公司的过渡风险:核心团队尚未成形,商业化形态未落地;Apache-2.0 的公开承诺是当下最好的保险,但「YC 会不会改变算计」仍是社区正当的追问。

七、结论

herdr 押中的,是 2026 年多智能体时代的真实空隙:智能体越来越多,看管智能体的工具却没人做。它给出的答案朴素得近乎古典——不做智能体,做羊圈与牧人:

  • :一个 Rust 二进制,本地优先,无账号无遥测,Apache-2.0;
  • :架构军规严明(状态/运行时分离、渲染纯函数、证据式检测),性能博客连「哪里不灵」都如实招供;
  • :五态语义 + socket API,把人从「逐屏巡视」中解放,把智能体从「孤岛」变成「可互相派活的邻居」;
  • :看相检测的长期维护税、Windows 欠账、多机愿景未兑现、初创转型未定。

四个月,28,337 星,38 万下载,DHH 亲自提 PR,YC 入场而许可不改——夫工具之兴,乘时也;其可信,在诚也。 herdr 的时运与诚意,目前都经得起细看。值得装来一试;若你整日与三五个智能体周旋,它多半就是你在找的那座瞭望塔。


附:资料来源(均 2026-08-13 核证)

一手(本地仓库 c:/github/herdr,HEAD 952729ee):

  • README.md / README.zh-CN.mdCargo.tomlCHANGELOG.md(v0.1.0–0.8.0 全文)
  • AGENTS.md(架构军规)、skills/herdr/SKILL.md(agent skill 全文)
  • src/detect/manifests/claude.toml(检测规则实例);src 模块结构(detect / integration / api / server / remote / persist / app)
  • git 历史:首发提交、改许可提交 cd5ea1be、组织迁移、shortlog、DHH 提交
  • docs/next/website/src/content/docs/:concepts / agents / agent-automation / session-state / socket-api / plugins 六篇文档;docs/next/CHANGELOG.md(未发布条目)
  • website/src/pages/compare.astro(官方对比页)

GitHub API(实时):

  • api.github.com/repos/herdrdev/herdr:28,337 stars / 2,009 forks / 156 issues / Apache-2.0
  • releases 汇总:79 个 release,累计下载 380,624

官方站:

  • herdr.dev/blog/herdr-is-joining-y-combinator/(2026-08-06,YC 公告原文)
  • herdr.dev/blog/ten-agents-three-clients-95-percent-less-cpu/(2026-08-03,性能实录)
  • herdr.dev/blog/coding-agents-are-becoming-runtimes/(2026-06-10)

独立来源:

  • byteiota.com:YC 报道(25,976 星 / 363,843 下载之 08-06 时点数据、531 插件)
  • runtimewire.com:HN 推举复盘(07-08 时点 13.6k 星、作者背景 oddbit.ai)
  • dev.to 评测(andrew-ooo,一日实操)、chaseai.io 介绍、toutiao.com 中文综述

注:星数与下载量随日增长,本报告数字以核证时点为准。

讨论回复

加载中...
正在加载回复...

正在加载回复...

推荐
智谱 GLM-5 已上线

我正在智谱大模型开放平台 BigModel.cn 上打造 AI 应用,智谱新一代旗舰模型 GLM-5 已上线,在推理、代码、智能体综合能力达到开源模型 SOTA 水平。

领取 2000万 Tokens 通过邀请链接注册即可获得大礼包,期待和你一起在 BigModel 上畅享卓越模型能力
登录