herdr実践ガイド:1つのターミナルで全AIコーディングエージェントを管理する(2026年)
Claude CodeとCodex CLIを同時に実行しているとき、どちらが承認待ちになっているか、どうやって把握していますか?多くの開発者の答えはこうです。タブを1つずつ切り替えて、プロンプトが出ていないか確認する。エージェントが1つだけならそれで十分ですが、3つや4つを同時に管理するようになると、タブ切り替えの精神的コストはあっという間に積み上がっていきます。
herdrは2026年6月末にGitHub Trending(Rustカテゴリ1位、全体デイリー17位)で話題を集めたオープンソースツールです。コアのアイデアはシンプルです。すべてのAIエージェントの実行状態を1つのターミナルウィンドウに表示し、誰が動いていて、誰が待っていて、誰が完了したかを一目で確認できるようにする。このガイドでは、インストールから高度な使い方まで、herdrの実際の能力と限界を丁寧に解説します。
TL;DR
- herdrはRust製のターミナルエージェントマルチプレクサで、1つのウィンドウからClaude Code、Codex、Devinなど複数のAIエージェントを管理でき、各エージェントのblocked/working/done/idleをリアルタイム表示
- tmuxとの本質的な違い:tmuxはエージェントの状態を一切知らない汎用ターミナルマルチプレクサ。herdrはAIエージェント時代のために作られており、状態認識がネイティブ機能として搭載されている
- 1行でインストール可能(
brew install herdr)、tmuxユーザーへの学習コストは低い。現在v0.7.1のpre-1.0で、Windowsの--remoteサポートは限定的
複数のAIエージェントを並行実行するとき、どう管理していますか?
3つのClaude Code worktreeを同時に走らせるシナリオを実際に試したことがあります。1つはcollectを処理し、1つはsynthesizeを実行し、1つはwriteを担当する構成です。表面上は効率的に見えますが、実態は数分おきに3つのターミナルタブを手動で切り替え、誰が承認待ちで、誰が止まっていて、誰がまだ実行中かを確認し続けるという作業です。
このタブ切り替えのコストは見た目以上に高くなります。切り替えるたびにターミナルの出力を読んで状態を判断し、元の作業に戻る必要があります。エージェントがちょうど待機状態に入ったばかりなら、切り替えた瞬間に対応しなければなりません。まだ実行中なら、その切り替えは無駄になります。さらに悪いことに、ラップトップを閉じたりネットワークが切断されたりすると、実行中のセッションが消えてしまう可能性もあります。
マルチエージェントの並行開発はすでに多くの開発者の日常の一部になっていますが、管理ツールはAIエージェントが登場する以前の設計のままです。tmuxはセッションの永続化とpane分割を解決してくれましたが、Claude Codeが今あなたの承認を待っているのか、それともまだ考え中なのかについては、何も知りません。
herdrがもたらす認識の転換:「tmuxからherdrに乗り換えるべきか?」ではなく、「各エージェントの実行状態をリアルタイムで把握する必要があるか?」が問うべき問いです。答えがYesなら、tmuxをどれだけ使いこなしていても解決策にはなりません。
マルチエージェント並行ワークフローの全体設計について詳しく知りたい方は、Claude Code並行作業完全ガイドでgit worktreeによる隔離戦略を網羅的に解説しています。
herdrとは何か:tmuxからAIネイティブターミナルへ
herdr(「herd-er」と発音し、群れを管理する者を意味する)はRust製のターミナルエージェントマルチプレクサで、2026年6月末までにGitHub上で12.2kスター、728フォーク(2026-07-06に直接fetchで確認)を獲得し、Hacker Newsのフロントページ(item #48714802)にも登場しました。
機能の定義:herdr = PTYマルチプレクサ + エージェント状態認識 + 永続セッション + Socket API。それぞれの意味を具体的に見てみましょう。
PTYマルチプレクサ:tmuxと同様に、pane分割、タブ作成、デタッチ/リアタッチが可能です。単一バイナリで約10MB、外部依存なし、Rust比率85.3%。
エージェント状態認識:これはtmuxにはないコア機能です。herdrのサイドバーは各エージェントの状態をリアルタイム表示します。blocked(入力待ち)、working(実行中)、done(完了)、idle(待機)。タブ切り替えなしで一目確認できます。
永続セッション:バックグラウンドサーバーモードにより、ラップトップを閉じたりSSH接続が切れたりしてもセッションは生き続けます。SSHリモートアタッチにも対応しており、リモートサーバー上のエージェントをローカルから監視できます。
Socket API:ローカルUnixソケットを介して、エージェントがherdrを直接呼び出してpaneの作成、サブエージェントの起動、他のエージェントの出力の読み取り、状態変化イベントのサブスクライブが可能です。この機能がherdrを「ビューワー」から「オーケストレーター」へと昇格させます(後述の「Socket API」セクションで詳しく説明します)。
| 機能 | herdr | tmux |
|---|---|---|
| Pane分割 / タブ管理 | あり | あり |
| セッション永続化(デタッチ/リアタッチ) | あり | あり |
| SSHリモートリアタッチ | あり | あり |
| エージェント状態追跡(blocked/working/done) | あり | なし |
| エージェントSocket API | あり | なし |
| AIエージェントネイティブ設計 | あり | なし |
注目に値する点として、中国語コミュニティ(moewah blog)ではherdr対tmuxの位置付けを「置き換えではなく補完」と表現しています。これは適切な見方です。herdrにはtmuxのマルチプレクシング機能も含まれているため、tmux経験者にとってはアップグレードの選択肢であり、初心者は最初からherdrを使い始めることもできます。
5分でherdrをセットアップしてClaude Codeの最初のセッションを実行する
ステップ1:インストール(3択)
Macの場合はHomebrew(最速、公式formulaで確認済み):
brew install herdr
Linuxやその他のプラットフォームはインストールスクリプト:
curl -fsSL https://herdr.dev/install.sh | sh
ソースからビルド(Rust環境が必要):
cargo install herdr
miseとNixにも対応しています。詳細はherdr公式インストールドキュメントをご確認ください。
ステップ2:herdrを起動
herdr
tmuxに似たインターフェースが表示されますが、右側にエージェント状態サイドバーが追加されています。基本的なキーバインド:
Ctrl+Bプレフィックスキー(tmuxと同じ)Ctrl+B V垂直方向のpane分割Ctrl+B C新しいタブを作成Ctrl+B Qデタッチ(バックグラウンドで継続実行)
ステップ3:Claude Code連携を有効化
herdr内で実行:
herdr integration install claude
このコマンドはClaude Codeのhookスクリプトをインストールし、herdrがセッション識別情報を受け取れるようにします。インストール後、任意のpaneでclaudeを起動すると、サイドバーにClaude Codeの状態が表示されます。
ステップ4:動作確認
Claude Codeを起動してタスクを与えてみてください。herdrのサイドバーが現在の状態を更新します。入力待ちの場合はblocked、実行中の場合はworkingと表示されます。
重要:herdrのpane内でtmuxセッションを開くとエージェント状態検出が無効になります。エージェントはherdrのpane内で直接実行し、herdrの中にtmuxをネストしないようにしてください。
エージェント状態追跡:herdrはどうやってClaude Codeの待機状態を検出するのか?
herdrには精度の異なる2種類の状態検出メカニズムがあります。どのエージェントを使用するかによって、取得できる情報の品質が直接変わります。
メカニズム1:ライフサイクルフック(精確)
エージェントが自身の状態をherdrのローカルソケットに能動的に報告します。herdr integration install <agent>を実行してhookスクリプトをインストールする必要があります。エージェントがblocked、working、doneなどの状態に入ると、hookが即座にherdrに通知します。精度が高いです。
メカニズム2:スクリーンマニフェストTOMLルール(自動だが精度は低め)
herdrが定期的にターミナル下部のバッファスクリーンショットを読み取り、TOMLルールでUIパターンを照合して状態を推測します。設定不要のゼロコンフィグですが、ライフサイクルフックより精度が低くなります。実行中のエージェントをblockedと誤判定しないよう、blocked検出は意図的に厳しめに設計されています。
各エージェントはどちらのメカニズムを使う?
| サポートレベル | 代表的なエージェント |
|---|---|
| フルライフサイクルフック(精確) | Pi、OMP、Kimi Code CLI、OpenCode、Hermes Agent、Kilo Code CLI |
| スクリーンマニフェストのみ(自動、精度低め) | Claude Code、GitHub Copilot CLI、Codex、Devin CLI、Cursor Agent CLI、Droid、Grok CLI、Amp |
| 部分的/実験的 | Gemini CLI、Cline |
Claude Codeは現在スクリーンマニフェストのみの対応です。 herdr integration install claudeでインストールされるhookはセッション識別情報の報告(どのpaneがどのClaude Codeセッションかherdrに知らせる)のみを担い、blocked/workingなどの状態は依然としてスクリーンの視覚的解析で判断されます。
つまり、Claude Codeのためのherdrによる状態検出は、PiやOpenCodeより精度が低いということです。実際の使用感として、idleとworkingの判断は概ね信頼できますが、blockedの更新には数秒かかることがあります。日常的なモニタリングには十分ですが、ミリ秒単位のイベント駆動トリガーが必要な場合は、それを念頭に置いておく必要があります。
herdr vs tmux vs Warp vs Zellij:どれを使うべきか?
ツールを選ぶ前に、自分自身に1つ質問してみてください。「各AIエージェントの実行状態をリアルタイムで把握する必要があるか?」
答えが「不要、pane分割とセッション永続化だけあれば十分」なら、tmuxで完結します。答えが「必要、複数のエージェントを並行実行していてどれが待機中か知りたい」なら、tmuxをどれだけ使いこなしてもその問題は解決できません。
| 機能 | herdr | tmux | Zellij | Warp |
|---|---|---|---|---|
| ターミナルネイティブ(CLI環境で使用可能) | あり | あり | あり | なし(GUIアプリ) |
| セッション永続化 / デタッチ-リアタッチ | あり | あり | あり(部分的) | あり |
| SSHリモートリアタッチ | あり | あり | なし | なし |
| エージェント状態追跡 | あり | なし | なし | なし |
| Socket / Agent API | あり | なし | なし | なし |
| macOS / Linuxサポート | あり | あり | あり | あり |
| Windowsサポート | ベータ | あり | あり | あり |
選択の指針:
- ターミナルのマルチプレクシングだけが必要 -- tmuxまたはZellijで十分、乗り換え不要
- 複数のAIエージェントを並行実行していて状態の可視化が重要 -- herdr
- GUIが好み、macOSネイティブな体験を求めている -- Warp(ただしエージェント状態追跡なし)
- tmuxを使い慣れている -- herdrはtmuxと同じシンタックス(同じCtrl+Bプレフィックス)を採用しており、移行コストが低い
AIエージェントフレームワーク選定の考え方については、AIエージェントフレームワーク比較:LangGraph vs CrewAI vs Google ADK 2026をご参照ください。
Socket API:エージェントがエージェントを管理する
herdrについて書かれた記事の多くは状態の可視化(サイドバーでblocked/workingを見る)に焦点を当てていますが、Socket APIこそがherdrの最も強力で、最も過小評価されている機能です。
herdrはローカルUnixソケット(デフォルトパス~/.local/share/herdr/herdr.sock)を公開しており、ソケットを呼び出せるプログラムであればJSON-RPCでherdrと通信できます。サポートされる操作:
- spawn pane:指定タブに新しいpaneを作成
- spawn agent:新しいpaneで特定のエージェントを起動
- read pane output:任意のpaneのターミナル出力を読み取る
- subscribe state events:エージェント状態変化イベントをサブスクライブ(エージェントAがdoneになったときにトリガー)
これにより、herdrは「マルチウィンドウ監視ボード」から「エージェントオーケストレーションレイヤー」へと進化します。
具体的なユースケース:Claude CodeがcollectタスクをこなすことでhookがSocket APIを呼び出し、herdrに次のClaude CodeインスタンスをsynthesizeのためにStartするよう通知します。手動の切り替えは不要で、herdrが連携を担います。
# Socket APIを通じてspawn agentコマンドを送信(例示)
echo '{"jsonrpc":"2.0","method":"pane.spawn_agent","params":{"agent":"claude","args":["--task","synthesize"]},"id":1}' \
| nc -U ~/.local/share/herdr/herdr.sock
明確にしておくべき点として、Socket APIを使うには基本的なシェルスクリプティングまたはプログラミング能力が必要です。点数クリックで設定できる機能ではありません。FossEngineerの実践的なレポートには具体的な呼び出し方法が示されていますが、エンドツーエンドのオーケストレーションワークフローは自分で組み上げる必要があります。herdrをパイプラインのトリガーとして活用したい開発者には、ここが最も深堀りする価値のある領域です。
制限事項と知っておくべきこと
herdr v0.7.1はpre-1.0のツールです。公式ドキュメントでの制限の説明はやや分散しているため、影響度順にまとめました。
1. Windows:--remoteに非対応(影響:Windowsを使う開発者)
WindowsバージョンはConPTYバックエンドを使用しており、現在--remoteに対応していないためSSHリモートアタッチが利用できません。ローカルでの基本操作は動作しますが、リモート管理や本番環境での使用は推奨しません。
2. pre-1.0のプロトコルバージョンアップ(影響:本番のCI/CD)
herdrがアップグレードされてプロトコルバージョンが変わると、古いクライアントは新しいサーバーに直接アタッチできなくなります。継続するにはherdrサーバーの再起動が必要です。日常的な開発への影響は軽微ですが、長時間デタッチ後にリアタッチが必要なCI/CD環境では、対応するrunbook(例:再起動スクリプト)を準備しておくことをお勧めします。
3. Claude Codeはスクリーンマニフェストのみのためblockedステータスが不正確(影響:正確なblocked検出に依存するユーザー)
前述の通り、Claude CodeのblockState状態は視覚的解析で推測されており、イベントに基づいていません。検出は意図的に厳しめに設定されており、更新に数秒かかることがあります。多くのシナリオでは十分ですが、タイミングに敏感な自動化トリガーには適していません。
4. herdrのpane内でtmuxを使うとエージェント検出が機能しない(影響:既存のtmuxワークフローを持つユーザー)
herdrのpane内でtmuxセッションを開くと、herdrはその中身を検査できなくなります。DockerやVM内で実行しているエージェントには環境変数HERDR_AGENT=<agent>を設定する必要があります。
5. AGPL-3.0ライセンス(影響:herdrをSaaS製品に組み込む開発者)
AGPL-3.0の各ユースケースへの適用:
- 個人開発者のローカル使用:制限なし、完全無料
- 社内ツール(従業員が使用し、外部サービスとして提供しない):実質的な制限なし
- SaaSシナリオ(修正済みのherdrを外部ユーザー向けサービスとして提供):修正箇所のソースコード公開、または商業ライセンスの取得が必要
herdrのGitHubリポジトリには商業ライセンスのオプションも用意されています。商業化が関わるユースケースには、作者に直接連絡して確認することをお勧めします。
まとめ:今すぐherdrを導入すべき人は?
herdrが12.2k GitHubスター(2026年7月6日)を獲得したのは偶然ではありません。複数エージェントの並行実行時における可視性の混乱という具体的な問題を、低いインストール障壁で解決しています。しかし、すべての人に必要なわけではありません。
今すぐ導入をおすすめするケース
2つ以上のAIコーディングエージェントを同時に実行していて、どのエージェントが入力待ちのためblockedになっているかを把握する必要がある開発者。特に、Claude Code + Codexの並行実行ワークフローがすでにある方や、エージェントパイプラインを構築中の方には、herdrの状態サイドバーとSocket APIが直接的な価値をもたらします。
様子を見ることをおすすめするケース
Windowsユーザー(--remoteが未対応)や、本番のCI/CD環境にマルチエージェントをデプロイしていてpre-1.0の安定性に懸念がある DevOpsエンジニア。まずステージング環境で試して、プロトコルバージョンアップのrunbookを準備してから評価することをお勧めします。
現時点では不要なケース
単一のAIエージェントだけを使用していてtmuxのセッション永続化で十分な開発者。または、どのエージェントが待機中かを気にせず、主に同期的なワークフローで作業している方。
試してみたい方は、まずインストールしてサイドバーの違いを体感してみましょう:
brew install herdr
herdr
公式ドキュメントはherdr.dev/docsにあります。Socket APIの詳細はagentsページに記載されています。自分のパイプラインにherdrを組み込もうと考えている方には、そのページが最も重要な出発点になります。
FAQ
herdrのインストール方法は?
Macの場合は`brew install herdr`を実行します。Linuxやその他のプラットフォームでは`curl -fsSL https://herdr.dev/install.sh | sh`を使用してください。`cargo install herdr`でソースからビルドすることも、miseを使ってインストールすることも可能です。
herdrは有料ですか?
herdrはAGPL-3.0のオープンソースライセンスで提供されており、個人利用や社内ツール(外部サービスとして提供しない場合)は完全無料です。修正版のherdrを外部ユーザー向けSaaSサービスとして提供する場合のみ、ソースコードの公開または商業ライセンスの取得が必要になります。
herdrとtmuxは一緒に使えますか?
共存できますが注意点があります。herdrのpane内でtmuxセッションを開くと、herdrのエージェント状態検出が機能しなくなります。エージェントはherdrのpane内で直接実行し、マルチプレクシングと状態追跡はherdrに任せるアプローチを推奨します。
herdrはWindowsに対応していますか?
Windowsベータ版はありますが、ConPTYバックエンドが現在`--remote`に対応していないため、SSHリモートアタッチは利用できません。個人のローカル環境での試用は可能ですが、本番環境での使用は推奨しません。
herdrは安定して使えますか?
herdr v0.7.1は日常的な開発用途では十分に安定しています。12.2k GitHubスター(2026年7月6日時点)は多くの実ユーザーによる検証を示しています。pre-1.0時代の主な注意点は、プロトコルバージョンアップ時に古いクライアントが新しいサーバーに再アタッチするためにサーバー再起動が必要になること。本番CI/CD環境ではそれに対応するrunbookを準備しておくことを推奨します。
この記事は役に立ちましたか?



