🐏

「Herdr」を使い始めたら、もう他のターミナルには戻れなくなった

に公開

複数のAIコーディングエージェント(Claude CodeやCodex、OpenCodeなど)をターミナルで並行して走らせたとき、「どのエージェントが処理を終えたのか?」「どいつがユーザーの承認待ちで止まっているのか?」が分からず、タブやウィンドウを切り替えまくった経験はありませんか?

また、エージェントが動いている最中にPCがスリープしたり、SSH接続が切れたりして、長時間の作業が消し飛んでしまったことはないでしょうか?

これらの問題を一挙に解決するのが、Rustで構築されたターミナルネイティブなエージェントマルチプレクサ「Herdr」です。この記事では、Herdrの魅力と基本的な使い方、そしてtmuxやcmuxといった既存ツールとの違いを徹底解説します。

https://herdr.dev/

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の全コマンドが使えるようになります。

https://github.com/ogulcancelik/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