herdr——ターミナルに棲む、コーディングエージェントの群れ管理者
1つのターミナル内で複数のAIコーディングエージェントを並行起動し、状態監視・自動デタッチ・ソケット操作までできるRust製マルチプレクサ「herdr」のセットアップと使い方を紹介します。
1つのターミナル内で複数のAIコーディングエージェントを並行起動し、状態監視・自動デタッチ・ソケット操作までできるRust製マルチプレクサ「herdr」のセットアップと使い方を紹介します。
📑 目次
「Claude Code 走らせてる裏で Codex も回したい」 「Aider の出力待ちしながら、Cursor Agent で別のリポジトリを眺めたい」
——そんなこと、思ったことありませんか。チカちゃんは、よくあります。
コーディングエージェントを 同時に複数走らせる という行為は、2026年になったいま普通の光景になりました。でもそれを「1つのターミナルの中」で、しかも「どのエージェントが詰まっていて、どれが片付いたか」を一目で把握しながら運用するツールは、意外と少なかった。herdr(ハーダー)は、その「ちょうど真ん中」にスポッと落ちる OSS です。2026年6月時点で GitHub スター約3,300、3月の公開から3ヶ月ほどで急成長中の Rust 製シングルバイナリ。tmux と GUI エージェントアプリのはざまで、ターミナル派のあいだで静かに広がっています。
ふむふむ、今回はこれをとりあげます。
本記事は公開情報をもとにした個人的な技術メモです。第三者ツール・AIサービス・モデルの仕様、料金、利用条件、安全性は変わる可能性があります。導入前に公式ドキュメント、ライセンス、利用規約、商用利用条件、データ送信先を確認してください。業務環境や秘密情報を含む環境では、隔離環境で検証してから利用することをおすすめします。
herdr って何者?——3行でつかむ
- ターミナル内マルチプレクサ:tmux のように「セッションを保ったまま、ペインを分割して、SSH が切れても戻れる」
- エージェント認識型:走っているプロセスが「blocked / working / done / idle」のどの状態かを自動で推定して、サイドバーに表示
- エージェント自身が herdr を操作できる:Unix ドメインソケット経由で CLI を出せるので、AI 同士が連携できる
「え、それ tmux でよくない?」と思った方、たしかにペイン分割と永続性だけなら tmux でも十分です。ここが違うのは、tmux の時代にはなかった 「今どのエージェントが何に詰まっているか」 を状態として見せてくれるところ。たとえば「Codex は done、Claude Code は working、Aider は blocked」が横並びで並ぶ。この agent awareness が herdr の核です。
インストール——3 つの公式ルート
執筆時点(2026年6月5日)で herdr の最新安定版は v0.6.8。シングルバイナリで動作するので、入れ方はとてもシンプルです。
方法 A: インストールスクリプト(最短)
curl -fsSL https://herdr.dev/install.sh | sh
公式サイトの install.sh が、OS とアーキテクチャを判別してバイナリを ~/.local/bin/herdr に配置します。インストール後、PATH が通っていない場合は export PATH="$HOME/.local/bin:$PATH" を ~/.zshrc などに追加。
注意:
curl | sh系は実行前に配布元のスクリプト内容を確認する癖をつけると安心です。業務端末や秘密情報を含む環境では、まず別の仮想マシンやコンテナで動作確認することをおすすめします。
方法 B: Homebrew(macOS / Linux)
brew install herdr
執筆時点で Homebrew の Core に herdr フォーミュラが入っており、stable 0.6.8 が bottled として配信されています。brew upgrade で更新管理できるぶん、こちらがベターな運用になりがち。
方法 C: Nix Flake(再現性重視)
リポジトリで Nix Flake も配布されているので、Nix 派の方は flake.nix から。プレビュー版を試したいときは [update] channel = "preview" を ~/.config/herdr/config.toml に書きます(Homebrew と Nix は preview チャネルを無視する点に注意)。
動作環境
| 項目 | 要件 |
|---|---|
| OS | macOS / Linux(Windows は WSL2 経由で動作報告あり) |
| Rust | ビルドする場合は 1.78 以降 |
| 必要なターミナル | Ghostty / Alacritty / Kitty / WezTerm / iTerm など。既存のターミナルをそのまま使う |
| tmux | 中に居ても OK(herdr は tmux の中でも外でも動く) |
起動と最初の30秒
herdr
と打つだけ。シングル Rust バイナリで、Electron なし、ブラウザダッシュボードなし、アカウント登録なし。初回は短いオンボーディングが走って、通知スタイル(ベル音・トースト・サイレント)の選択だけ求められます。
終わると TUI が立ち上がります。デフォルトは「navigate mode」で、ctrl+b がプレフィックス(tmux と同じ)。
┌─ workspace 1 ───────┐ ┌─ workspace 2 ───────┐
│ pane 1 (claude) │ │ pane 1 (codex) │
│ working │ │ done │
├─────────────────────┤ ├─────────────────────┤
│ pane 2 (bash) │ │ pane 2 (opencode) │
│ │ │ blocked │
└─────────────────────┘ └─────────────────────┘
このとき、左のサイドバーに blocked / working / done のロールアップが表示される、というのが herdr の体感価値。「あれ、Claude Code 動いてるっけ?」とタブを切り替えずに済むのは、地味に助かります。
最初の5ステップ
公式がすすめる「最初の5分」を超訳すると、こんな流れ。
1. `herdr` を起動
2. `n` でワークスペース作成
3. ルートペインで `claude` または `codex` を起動
4. `ctrl+b` を押して navigate mode に入る
5. `v` または `-` でペインを分割、`c` で新しいタブを作る
6. もう片方のペインでも別のエージェントを走らせる
7. サイドバーを見て「どの子が仕事してる?」を眺める
v / - は縦・横分割、c は新規タブ。Vim 触ってきた身からすると「hjkl で移動できたら完璧」と思うのですが、デフォルトのキーマップは tmux 互換寄りに prefix+h/j/k/l を使うので、最初のうちは少し指が迷います。~/.config/herdr/config.toml で navigate_pane_down = "j" のように直接バインドを上書きできる、という逃げ道があるのもありがたい。
ここがすごい——3 つの差別化ポイント
1. 「エージェント自身が herdr を操作する」ソケット API
多くのツールは「人間がターミナルを切り替える」のが基本動作。herdr は一歩踏み込んで、エージェント自身が Unix ドメインソケット経由で herdr を駆動 できます。
# ワークスペースとタブを作る
herdr workspace create --cwd ~/project --label api
herdr tab create --label logs
# ペインを分割してコマンドを走らせる
herdr pane split 1-1 --direction right
herdr pane run 1-2 "npm test"
# あるエージェントが "done" になるのを待ってから次へ
herdr wait agent-status 1-1 --status done
# ペインの最近の出力を読む
herdr pane read 1-2 --source recent --lines 50
CLI の裏側では、改行区切り JSON over Unix ドメインソケットのプロトコルが動いています。ソケットの実体は ~/.config/herdr/herdr.sock(セッション名は別)。つまり シェルスクリプト・別の AI エージェント・自作ツールのどれからでも、herdr をリモートコントロールできる。
README では、これを「エージェントから herdr をオーケストレーションする」シンタックスとして強調しています。たとえばこんなワークフローがありえます。
Claude Code がフロントエンドのテストを流している間に、Codex がバックエンドの DB マイグレーションを進め、終わったら Aider が PR の説明を自動生成する。人間が複数のターミナルを覗きに行く必要がない。
ここは他ツールに対する herdr のいちばん尖った主張で、チカちゃん的にもかなり「おいしい」ところです。
2. 自動エージェント状態検出
herdr の賢さは「プロセス名と、出力末尾のスナップショット」を読み取って、running の CLI エージェントがどの状態にあるか推定するところにあります。フックもプラグインも不要で、claude-code / codex / opencode などが動いていれば、自動で idle / working / done / blocked のラベルが振られる。
- Pi / Claude Code / Codex / OpenCode は
blocked検出まで対応 - Droid / Amp / Grok CLI / Hermes / Cursor Agent / Antigravity / Kimi / Copilot / Qoder CLI も検出対応
- それ以外の CLI エージェントでも、ターミナルマルチプレクサとしては普通に動く
「CLI エージェントを雑多に放り込んでも、それっぽく状態管理してくれる」のは、複数運用する人間にとって想像以上に効きます。
3. tmux 互換の永続性 + リモートアタッチ
ここは tmux の領分ですが、herdr も同じ土俵で勝負しています。
# ローカルで起動
herdr
# SSH 先のサーバーで起動
ssh you@server
herdr
# ローカルからリモートに「Thin Client」として接続
herdr --remote workbox
herdr --remote workbox は、~/.ssh/config の workbox ホストに対してローカルの Herdr クライアントを接続し、リモートの TUI をローカルのターミナルにストリームするしくみ。[remote] manage_ssh_config = true を設定すると、ServerAliveInterval などのキープアライブが Herdr 側の temp SSH config に自動追加されます(自分の設定が常に優先されるよう上書きしない設計)。
さらに iPhone などのモバイルから SSH 越しに使うと、狭い画面幅で自動的にシングルカラムに切り替わる ui.mobile_width_threshold も v0.6.3 で追加されています。電車のなかで「Claude Code がどこまで進んでるか」をチラ見する、みたいな使い方ができるのは、ちょっと未来的で好きです。
基本的な設定——config.toml の場所
設定ファイルは 無くても動く が、あると俄然便利、という設計。herdr --default-config で全項目を書き出せるので、最初の一歩はそこから。
herdr --default-config > ~/.config/herdr/config.toml
herdr server reload-config
チカちゃん的に「これは覚えておいて損ない」な項目をいくつか。
# プレビュー版を試したいとき
[update]
channel = "preview"
# 新しいペインの初期ディレクトリ
[terminal]
new_cwd = "follow" # 親ペインから引き継ぐ(デフォルト)
# Git worktree の置き場所
[worktrees]
directory = "~/Projects/herdr-worktrees"
# リモートアタッチ用の SSH 設定自動生成
[remote]
manage_ssh_config = true
worktrees 設定は結構おもしろくて、Git リポジトリの worktree を Herdr のワークスペースに「ぶら下げる」運用ができます。herdr worktree create --branch worktree/api で、ブランチ切り替えがそのまま Herdr 上の別ワークスペースに化ける。複数エージェントに「同じリポジトリの別ブランチで並列実装させる」ときに、めちゃくちゃ効きます。
気をつけること——制約と注意点
良いところばかり並べると胡散臭いので、惜しい点も正直に。
- v0.6.x 系でまだ破壊的変更が残る可能性。執筆時点(2026年6月)で v0.6.8、ソケットプロトコルも v11 まで来ており成熟度は上がってきていますが、config 項目や CLI は今後変わる前提で触ったほうがよいです。
- 「複数エージェントを並列で走らせる」と消費トークンも並列で増える。herdr が便利だと気分の発散が止まり、気づいたら API 課金がいつもの倍、みたいな事故は普通にあり得ます。人間側の節度 がやっぱり大事。
- 「エージェント自身が herdr を操作する」のは諸刃の剣。CLI 経由とはいえ、エージェントにソケット操作を許すということは、エージェントが任意のペインで任意のコマンドを走らせられるということ。同一マシン上の他のテナント作業者が居る環境では、ソケットのアクセス権と運用ルールをきちんと設計してから解放すべきです。
- Kiro CLI は
blocked検出が未対応 など、エージェント側の成熟度に依存する「対応表の凹凸」がある。ふだん使いの CLI が完璧にカバーされているかは、公式の「Supported agents」表で必ず確認を。 - macOS での復元時に FD 不足 になる報告あり(v0.6.3 直後の Hotfix で修正)。大きなセッションを復元するときは念のため最新パッチの v0.6.5 以降を使うのが無難です。
- macOS サウンド通知の挙動。Linux では
pw-play/ffplay/mpg123/mpvへのフォールバックが入ったので安定しましたが、macOS 側はafplay前提。mp3 などのカスタム通知音を使いたい場合は事前にテストしておくのがおすすめ。
まとめ——「群れ」を飼いならす道具
herdr が投かけている問いは、じつはツールの話だけではありません。「人間ひとりが、複数の AI を同時に飼いならせるのか」 —— そして 「その群れの面倒を、誰がどうやって見るのか」。これは 2026 年の AI 開発が避けられないテーマのひとつです。
デスクトップアプリ型のエージェントランチャー(GUI で動くあれやこれや)は「見やすさ」を提供しますが、ターミナルから出ていけなくなる。tmux は「永続性」を提供しますが、エージェントのことは何も知らない。herdr はそのちょうど真ん中で、「ターミナルに居たまま、エージェントの群れを監督する」 という新しいレイヤを切り開いています。
チカちゃん的には、「tmux ユーザーで、かつ複数の CLI エージェントを並列で回している」 という条件がひとつでも当てはまるなら、試す価値はかなりあると思います。インストールは1コマンド、起動も1コマンド、エージェントは「ただそこにいるだけ」で状態が表示される。あとはペインを増やすだけ。
エージェントを「道具」から「チームメイト」に見立て直す、その最初の一歩。herdr で始めてみるのは、いかがでしょうか。
参考URL
- herdr 公式サイト → https://herdr.dev
- herdr 公式 GitHub リポジトリ → https://github.com/ogulcancelik/herdr
- herdr インストール手順 → https://herdr.dev/docs/installation/
- herdr ソケット API リファレンス → https://herdr.dev/docs/socket-api/
- herdr 設定リファレンス → https://herdr.dev/docs/configuration/
- herdr 対応エージェント一覧 → https://herdr.dev/docs/agents/
- インターネット上のツールは第三者が提供するものです。開発工程や配布経路を悪用した攻撃(サプライチェーン攻撃)が仕掛けられる可能性もゼロではありません。ご利用の際は公式リポジトリの情報をご確認いただき、自己責任でお使いください。
- AIに関する技術や情報は急速に変化します。本記事の内容が公開後に古くなる可能性があります。各サービスの公式ドキュメントや最新情報をご確認ください。