herdrdev/herdr
端末を閉じてもエージェントを止めず、どれが手を止めているかが一目で分かる
どういうものか
コーディングエージェントを何本も同時に走らせると、二つのことで困る。端末の窓を閉じたりSSHが切れたりすると作業が死ぬこと、そして今どれが人の返事を待って止まっているのか分からなくなることだ。herdr はこの二つを引き受ける、エージェント専用の端末の土台。作りはサーバーと画面の分離で、端末のプロセスを実際に抱えているのは裏で動き続けるサーバーのほうであり、手元に見えている窓はそこに繋いでいるだけの表示係にすぎない。だから窓を閉じても、繋ぎ直せば続きが出てくる。ノートPCの蓋を閉じる、家のマシンに ssh で入り直す、といった使い方が前提に置かれている。
置き場所は3段になっている。案件ごとのワークスペース、その中の用途別のタブ(エージェント用・ログ用など)、そして実際の端末であるペイン。ここに herdr の中心的な仕掛けが乗る。ペインごとに状態が付き、working(動いている)/blocked(返事を待って止まっている)/done(終わったがまだ見ていない)/idle(終わって確認済み)/unknown(判別できない) に分けて表示される。ワークスペースの一覧にはその集計が出るので、10本走らせていても「返事を待っているのはこれ」がすぐ分かる。見たかどうかは繋いでいる窓ごとに別々に記録されるので、複数の端末から覗いても表示が混ざらない。
もう一つの特徴は、エージェント自身が herdr を操作する側に回れること。コマンドラインとソケット経由のAPIが用意されていて、エージェントが新しいペインを立てる、ほかのエージェントに指示を出す、相手が本当に止まるまで待つ、といったことができる。herdr は Claude Code・Codex・Cursor・OpenCode・Grok などを包み込んだり置き換えたりはせず、それらの端末を預かるだけという立ち位置。Rust の単体バイナリで、Electron のような重い土台は使わず、いま使っている端末の中で動く。tmux 風のプレフィックスキーと、クリックやドラッグでの分割の両方が使える。
どんなときに使うか
エージェントを何本も並べて、返事待ちを取りこぼしたくないとき
3本4本と同時に走らせると、「終わっているのに気づかず放置していた」「聞かれていたのに見ていなかった」が起きる。状態がペインごとに出て、案件の一覧にも集計されるので、巡回して確認する手間がなくなる。
会社と自宅、ノートとデスクトップを行き来しながら進めたいとき
サーバーが裏で持っている前提なので、蓋を閉じて移動し、別の端末から繋ぎ直せる。SSHで登録したマシンも同じ一覧に並ぶので、どのマシンで走らせたかを覚えていなくてよい。
注意点
「落ちても平気」ではない。 README に明記されているが、マシンやサーバーを再起動した場合、herdr が戻すのは保存しておいた配置であり、対応しているエージェントのセッションは再開できるものの、元のプロセスそのものは生き残らない。守られるのは「窓を閉じた・回線が切れた」までで、電源が落ちる話とは別と考えたほうがいい。
tmux の代わりに全部やる、という道具ではない。 狙いがコーディングエージェントの管理に寄っているので、ふつうの端末多重化としての機能や作法を求めると、覚え直しのぶんが割に合わない可能性がある。エージェントを1本しか走らせないなら、得られるものは薄い。
確信をもって判別できない場合がある。 状態には unknown(判別できない)という区分がそもそも用意されている。対応しているエージェントかどうかで見え方が変わる点は、導入前に確かめておきたい。
ライセンスは Apache-2.0。