「Herdr」を使い始めたら、もう他のターミナルには戻れなくなった
複数のAIコーディングエージェント(Claude CodeやCodex、OpenCodeなど)をターミナルで並行して走らせたとき、「どのエージェントが処理を終えたのか?」「どいつがユーザーの承認待ちで止まっているのか?」が分からず、タブやウィンドウを切り替えまくった経験はありませんか?
また、エージェントが動いている最中にPCがスリープしたり、SSH接続が切れたりして、長時間の作業が消し飛んでしまったことはないでしょうか?
これらの問題を一挙に解決するのが、Rustで構築されたターミナルネイティブなエージェントマルチプレクサ「Herdr」です。この記事では、Herdrの魅力と基本的な使い方、そしてtmuxやcmuxといった既存ツールとの違いを徹底解説します。
1. Herdrとは?
Herdrは、お気に入りのターミナルエミュレータ(Ghostty、iTerm、Alacrittyなど)の中でそのまま動作するマルチプレクサです。Electronなどの外部依存がない単一のRustバイナリとして提供されます。
主な特徴:
- Tmuxスタイルのセッション永続化: ターミナルを閉じてもプロセスが裏で動き続ける。
- 状態の可視化: エージェントの動作状態(Blocked, Working, Doneなど)をリアルタイムに自動検知。
- マウスネイティブな操作性: ペインのリサイズ、クリックフォーカス、テキストの自動コピーなどを完全サポート。
- APIによる自己制御: エージェント自身がHerdrを操作するためのCLIとSocket APIを完備。
2. tmuxやcmuxとの決定的な違い
ターミナルマルチプレクサといえば「tmux」、AI向けアプリといえば「cmux」などを思い浮かべるかもしれませんが、Herdrはこれらとどう違うのでしょうか。
| 機能・特徴 | tmux / Zellij | cmux (Agent apps) | Herdr |
|---|---|---|---|
| 動作環境 | ターミナル内 | Mac専用GUIデスクトップアプリ | ターミナル内(OS問わず) |
| セッション永続性 | 完璧 | 限定的 | 完璧 |
| 状態(Context)の把握 | なし(汎用プロセス扱い) | あり(アプリ内で可視化) | あり(ターミナル出力から状態検知) |
| マウス操作 | 設定が必要 / 限定的 | フルサポート | デフォルトでフルサポート |
| 自動オーケストレーション | スクリプトで一部可能 | 一部可能 | ネイティブAPIで完全対応 |
tmuxとの違い
tmuxやZellijは汎用的なマルチプレクサとしては非常に優秀ですが、「現在動いているプロセスがAIエージェントである」という概念を持っていません。そのため、エージェントがAPIキーの入力を待って止まっていたとしても、画面を切り替えて確認するまで気づくことができません。Herdrはエージェント特有の状態を自動で認識し、サイドバーで通知してくれます。
cmuxとの違い
cmuxはAIエージェントを管理するために作られ、内蔵ブラウザなどを持つ強力なツールですが、Mac専用の独立したデスクトップアプリケーションです。自分の好きなターミナル環境やシェル設定を捨てて、cmuxの世界に移行する必要があります。一方Herdrは、「あなたのターミナル環境を維持したまま、足りないレイヤー(状態認識と永続性)を追加する」というアプローチをとっています。
3. Herdrのコア機能
① エージェント状態の自動検知 (Semantic Agent State)
Herdrの最大の発明は、各ペインで動いているエージェントの状態をサイドバーで可視化することです。特別な設定やプラグインは不要で、エージェントのターミナル出力をHerdrが裏側で読み取り、ヒューリスティックに以下の5つの状態に分類します。
- 🔴 Blocked (赤): 承認待ちや質問など、ユーザーの入力を待って停止している最も緊急な状態。
- 🟡 Working (黄): エージェントが自律的に作業中。
- 🔵 Done (青): タスクが完了したが、まだユーザーが未確認(未読状態)。
- 🟢 Idle (緑): 完了が確認され、入力待ちで落ち着いている状態。
- ⚪ Unknown (白): 通常のシェルや、Herdrが認識していないプロセス。
何か問題が起きればサイドバーが赤く光るため、ユーザーは「赤いインジケーターが出たペインだけ見に行けばいい」という効率的な運用が可能になります。
② セッションの永続化とリモートアタッチ
Herdrは背後でセッションサーバーを立ち上げます。そのため、ショートカットキーで画面をデタッチ(隠す)しても、ターミナルウィンドウ自体を閉じても、裏でエージェントは働き続けます。
また、herdr --remote <SSH_HOST> というコマンドを使えば、リモートサーバー上で動いているHerdrセッションに、ローカルマシンの設定(テーマやショートカットキー)を維持したままシームレスにアタッチすることができます。
③ Agent Orchestration
※ もしかしたら他のターミナルもできるかも???
これがHerdrを単なるターミナルUIから一段階引き上げてくれる機能です。
Herdrは人間だけでなく、エージェント自身が操作できるコントロールサーフェスでもあります。HerdrはCLIとUnixソケットAPIを提供しており、エージェントが自らワークスペースを作ったり、コマンドを実行したりできます。
このように、人間が手動でターミナルを行き来して結果をコピー&ペーストしなくても、エージェントが自ら別ペインでテストを走らせ、結果を待って回収するという自律的なオーケストレーションが可能になります。公式リポジトリにある skill.md をエージェントに読み込ませるだけで、Herdrの全コマンドが使えるようになります。

隣のClaude Codeの作業を監視する指示も、複雑なセットアップなど必要なくSKILLを入れれば、自然言語で指示して動いてくれます。

4. Herdrの使い方
詳しくは公式サイトをご覧ください
インストール
# Script
curl -fsSL https://herdr.dev/install.sh | sh
# Homebrew
brew install herdr
#Nix flake
nix run github:ogulcancelik/herdr
起動と画面構成
ターミナルで herdr と入力するだけで起動します。
画面の構成は、Workspace > Tab > Pane の3階層になっています。tmuxと違い、Herdrは起動したディレクトリのGitリポジトリ名を読み取り、自動的にワークスペースの名前を設定してくれるため、面倒な名付けの儀式は不要です。
基本操作(キーボード & マウス)
Herdrには通常のシェルとして振る舞う「ターミナルモード」と、操作を行う「ナビゲートモード」があります。デフォルトのプレフィックスキーは Ctrl + B です。
-
ナビゲートモードへの移行:
Ctrl + B -
ショートカット一覧の表示: ナビゲートモード移行後、
?キー -
デタッチ(セッションを裏側に隠す):
Ctrl + BのあとQ -
ペインを閉じる:
Ctrl + BのあとX
5. まとめ
Herdrは複数のAIコーディングツールを使いこなしているエンジニアであれば、ぜひ一度インストールして2つのエージェントを並べて動かしてみてください。
あんまりこういうターミナル系にはこだわりない派でしたが、今はHerdrしか使っておりませぬ
Discussion