herdr(ハーダー)は、Claude Code・Codex・Cursor Agent CLIなどのコーディングエージェントを1つのターミナルで並べて動かし、どのペインが入力待ちで止まっているかを色で示すRust製のターミナルワークスペースです。2026年10月13日時点の安定版はv0.9.3(2026年9月29日公開)で、GitHubのStarは約4.36万です。この記事では、tmuxとの違い、macOS・Linux・Windows・WSLへのインストール、キー操作、CLIで自動化するときの落とし穴を、v0.9.3のバイナリで動かした結果をもとに整理します。
まとめ|herdr v0.9の要点と採用判断
- herdrは、tmuxと同じく
ctrl+bをプレフィックスにしたペイン分割と常駐セッションに、エージェントの状態表示(blocked・working・done・idle)を足した道具です。 - ライセンスはv0.8.0(2026年8月3日)でAGPL-3.0-or-laterからApache-2.0に変わりました。社内ツールへの組み込みでAGPLを気にする必要は無くなっています。
- Windowsはv0.8.2(2026年8月19日)でベータを外れ、安定版の配布になりました。ただしプラグインはWindowsではプレビュー扱いで、日本語IMEの変換候補がずれる既知の制限があります。
- 導入は
curl -fsSL https://herdr.dev/install.sh | shかbrew install herdr、Windowsは公式のPowerShellスクリプトです。 - エージェントを日常的に3本以上並べて動かすなら入れる価値があります。1本で完結する開発や、エージェントごとの環境分離が目的なら、herdrだけでは足りません(分離はgit worktreeで別途行います)。
herdrとは|エージェントの状態が見えるターミナルワークスペース
herdrは公式に「the runtime your coding agents live on」(コーディングエージェントが住むランタイム)と名乗っています。エージェントを包んだり置き換えたりはせず、エージェントが動くターミナルの側を受け持つ設計です。リポジトリはGitHubのherdrdev/herdrで、2026年3月27日に作成されました。
herdrの読み方・開発元・ライセンス
公式サイトとドキュメントには読み方の記載がなく、国内の記事では「ハーダー」と読まれています。英単語のherder(家畜の群れを追う人)と同じ綴りから1文字落とした名前です。GitHub APIのコントリビューター集計(2026年10月13日時点)ではOgulcan Celik氏(GitHub: ogulcancelik)が1,297件で最多で、旧リポジトリ名のogulcancelik/herdrは現在herdrdev/herdrへ転送されます。
ライセンスはCHANGELOGのv0.8.0の項に「Relicensed Herdr from AGPL-3.0-or-later to Apache-2.0」とあり、現行版はApache-2.0の単独ライセンスです。v0.7系の時点で書かれた記事に残る「AGPLと商用ライセンスのデュアル」は、現在は当てはまりません。
tmuxとの違い
操作感はtmuxに寄せてあり、プレフィックスの既定も同じctrl+bです。違いはペインの中で動いているものを理解するかどうかと、マウスを最初から使える点にあります。
| 項目 | herdr 0.9.3 | tmux |
|---|---|---|
| プレフィックス既定 | ctrl+b(複数指定可) | ctrl+b |
| エージェント状態の表示 | あり(サイドバー) | なし |
| マウス操作の既定 | 有効 | 無効 |
| セッションの常駐 | あり | あり |
| エージェントからの操作 | CLI・ソケットAPI | tmuxコマンド |
| Windowsネイティブ | 対応(v0.8.2〜) | 公式は非対応 |
| ライセンス | Apache-2.0 | ISC |
tmuxにはエージェントの承認待ちを識別する標準機能がないため、claudeが3つ動いていても、どれが承認待ちかは各ペインを覗くまで分かりません。herdrはここを埋める道具です。tmux自体の使い方やWindowsでの代替はtmuxの使い方とWindowsでの導入を解説した記事にまとめています。
エージェント状態の5区分
公式のコンセプト解説では、状態を次の5つに分けています。idleとdoneはどちらも入力を受け付ける状態で、違いは完了を見たかどうかだけです。
| 状態 | 意味 |
|---|---|
| blocked | 入力・承認・判断を待っている |
| working | 実行中 |
| done | 完了したがまだ見ていない |
| idle | 完了または待機で、確認済み |
| unknown | 判定できない |
判定は、ペインの前面プロセスからエージェントを特定し、画面下部を検出ルール(マニフェスト)と照らす方式です。blockedの判定は意図的に厳しく、見覚えのない新しい確認画面は最初はidleと表示されることがあります。誤判定で変わるのは表示と待機だけで、herdrが勝手に入力を送ることはありません。
herdrのインストール手順(macOS・Linux・Windows・WSL)
macOS・Linux向けは単一の実行ファイルとして配布されます。Windows向けzipにはherdr.exeとConPTYランタイムが含まれるため、展開したファイル一式をまとめて配置します。v0.9.3のリリース資産はmacOS(Apple silicon)版が約22.2MB、macOS(Intel)版が約24.0MB、Linux x86_64版が約30.0MB、Windows版のzipが約9.8MBです。旧版の記事にある「約10MB」は、現在はWindowsのzipにしか当てはまりません。
macOS・Linuxへのインストール
公式のインストール手順は次のいずれかです。Homebrewとmiseで入れた場合は、更新もそれぞれのパッケージマネージャーで行います。
# 公式スクリプト(PATH上に配置)
curl -fsSL https://herdr.dev/install.sh | sh
# Homebrew
brew install herdr
# mise(古いmiseで見つからない場合は github:herdrdev/herdr を指定)
mise use -g herdr
# 動作確認
herdr --version
Homebrewでビルド済みパッケージ(bottle)が用意されていない環境では、依存のcmakeからソースビルドが始まり、数分以上かかることがあります。その場合はGitHub Releasesからherdr-macos-x86_64などのバイナリを取り、実行権限を付けてPATHへ置く方が早く済みます。
Windowsへのインストール(PowerShell)
Windows版はv0.8.2で正式提供になり、新規インストールは安定版チャンネルを使います。PowerShellで次を実行します。
powershell -ExecutionPolicy Bypass -c "irm https://herdr.dev/install.ps1 | iex"
# エンドポイントセキュリティが上の方式を止める場合(コマンドプロンプトで実行)
curl.exe -fsSLo install.cmd https://herdr.dev/install.cmd && install.cmd && del install.cmd
Windowsサポートのページによると、ペインはConPTYで動き、PowerShell 7が入っていれば既定のシェルになります(v0.9.2〜)。日本語環境で効いてくる制限は2つあります。1つ目は、ちらつき対策でherdrが自前でカーソルを描くため、日本語IMEの変換候補が別の位置に出ることです。[ui]にhost_cursor = "native"を書くと位置は直りますが、出力中のちらつきが戻ります。2つ目は、プラグインがWindowsではプレビュー扱いで、shやBashを前提にしたプラグインはそのままでは動かないことです。
WSLで使う場合の判断
WSLの中ではLinux版としてインストールスクリプトで入ります。リポジトリとClaude CodeなどのエージェントをWSL側に置いているなら、herdrもWSLで動かす方が素直です。プラグインがWindows向けのプレビュー制限を受けず、v0.9.0ではWSLへのリモート接続でWindowsのクリップボード画像を貼り付けられるよう修正されています。PowerShellで動くエージェントを並べたい場合だけネイティブ版を選びます。WSL2自体の導入はWSL2の仕組みとインストール方法の記事を参照してください。
アップデートと更新チャンネル
公式スクリプトで入れた場合はherdr updateで更新します。既定では新しいバイナリを入れても実行中のサーバーとエージェントは止まらず、次にherdrを起動したときに新しいクライアントで再接続します。開発ブランチから定期公開されるプレビュー版はherdr channel set previewで選べますが、回帰の可能性があるため、普段使いは安定版に置いておく方が無難です。
herdrの使い方|起動・キー操作・エージェント連携
作業したいディレクトリでherdrを実行すると、裏でサーバーが立ち上がり、そこへ接続します。ワークスペース(プロジェクト単位の入れ物)の中にタブとペインを作り、各ペインでエージェントを起動する流れです。
herdrセッションの起動・デタッチ・再接続
prefix+qを押すか、ターミナルのウィンドウを閉じるとクライアントだけが外れ、エージェントは動き続けます。もう一度herdrを実行すると同じセッションに戻ります。セッションごと止めるときはherdr server stopです。サーバーやマシンを再起動した場合、レイアウトは復元され、対応するエージェントは会話を再開できますが、元のプロセスそのものは残りません。
キー操作(ショートカット)一覧
マウスでペインのクリック、境界のドラッグ、右クリックメニューからの分割ができるので、キー操作は必須ではありません。herdr --default-configで出力される既定値のうち、よく使うものは次のとおりです。
| 操作 | 既定キー |
|---|---|
| 右に分割/下に分割 | prefix+v / prefix+minus |
| ペイン移動 | prefix+h・j・k・l |
| ズーム/ペインを閉じる | prefix+z / prefix+x |
| 新しいタブ/次・前のタブ | prefix+c / prefix+n・p |
| ワークスペース一覧/新規 | prefix+w / prefix+shift+n |
| git worktreeを作成 | prefix+shift+g |
| コピーモード/キー一覧 | prefix+[ / prefix+? |
| デタッチ | prefix+q |
設定ファイルは~/.config/herdr/config.tomlです。v0.9.2からはプレフィックスをprefix = ["ctrl+space", "ctrl+s"]のように複数指定でき、tmuxと併用してctrl+bがぶつかる場合の逃げ道になります。
Claude Code・Codex・Cursorなどの対応状況と統合設定
ペインでclaudeやcodexを普通に起動すれば、herdrが自動で検出します。サーバー再起動後に同じ会話へ戻したいエージェントは、herdr integration install claudeのように統合を入れます。公式のエージェント一覧(0.9.3版)では、統合が用意されているのはClaude Code・Codex・GitHub Copilot CLI・Cursor Agent CLI・OpenCode・Pi・OMP・Droid・Devin CLI・Kimi Code CLI・Kilo Code CLI・Hermes Agent・Qoder CLI・Qwen Code・Letta Code・MastraCode・Grok CLI・Antigravity CLIの18種です。Amp・Kiro CLI・Maki・Gemini CLI・Clineは状態表示のみで、Gemini CLIとClineは「テストは限定的」と明記されています。
このほか、Command Code・Crush・Kiro CLI・Muse Code・Prime Agentはエージェント側が自分の状態をherdrへ報告する方式で、統合のインストールは要りません。MetaのコーディングエージェントについてはMeta Muse Codeの仕組みと導入判断の記事で扱っています。
CLIでエージェントを自動化する手順と落とし穴(v0.9.3で実測)
herdrの操作はすべてCLIとソケットAPIから呼べます。エージェントに渡す説明書はherdr --skillで出力でき、エージェント自身がペインを分割して別のエージェントに作業を振る構成も組めます。ここではv0.9.3のmacOS版バイナリでヘッドレスサーバー(herdr server)を立て、名前付きセッションで手順を確かめた結果を載せます。
ワークスペース作成からコマンド実行まで
herdr workspace create --cwd ~/proj --label demo # 返されたIDを確認。以下は w1:p1 の例
herdr pane split w1:p1 --direction right # 右に w1:p2 ができる
herdr pane run w1:p2 "npm test" # 入力してEnterまで送る
herdr pane read w1:p2 --lines 20 # 直近の出力を読む
作成・分割・実行コマンドはJSONを返しますが、pane readは端末のテキストを直接出力します。ペインIDはw1:p2のような「ワークスペース:ペイン」の形で、作成直後のagent_statusはエージェントが動いていないのでunknownでした。ペイン2つの状態でサーバープロセスのメモリ使用量をps -o rssで見ると、18,980KB(約19MB)でした。
wait-outputが入力したコマンド行や過去の出力に一致する問題
テストの終了をpane wait-outputで待つときは注意が要ります。エージェント自動化のページにあるとおり、待機は画面の直近80行(既定)を即座に検索するので、既に表示されている文字列にも一致します。このため、herdr pane run w1:p2 'sleep 2; echo BUILD-DONE'の直後に--match BUILD-DONEで待つと、画面に打ち込まれたコマンド行そのものに一致し、2秒待たずに0.05秒で戻りました。さらに、前回の実行で出た文字列が画面に残っていると、新しい実行を待たずにそれに一致します。
実行ごとに一意な目印を付け、数字を含む正規表現で待つと、2回続けて実行しても、どちらもsleep 2の終了を待って2.2〜2.4秒後に終了コードの行に一致しました。
ID=$(uuidgen)
herdr pane run w1:p2 "npm test; echo DONE-${ID}-\$?"
herdr pane wait-output w1:p2 --regex "DONE-${ID}-[0-9]+" --timeout 600000
打ち込まれたコマンド行には$?が文字のまま残るため、[0-9]+を含む正規表現はコマンド行に一致しません。--timeoutを付けないと永久に待つので、CIやエージェントに組み込むときは必ず指定します。
agent wait・agent promptの待機条件と制限
エージェントの待機には状態を監視するagent waitを使えます。ただし、現在の状態が条件に一致していれば即座に戻るため、今回送った指示の完了を保証するものではありません。herdr agent wait <対象>は--untilを省くとidle・done・blockedのいずれかで戻り、--until idle --until doneのように繰り返して複数の状態を指定できます。herdr agent promptで別のエージェントに指示を送る場合、相手が承認や質問の画面で止まっているとagent_blockedで拒否され(v0.8.2〜)、--wait付きでworking以外の状態から送信した場合、送信後5秒以内にworkingまたはblockedを観測できないとagent_prompt_stalledを返します(v0.7.5〜)。呼び出し側のタイムアウトが先に切れた場合はtimeoutになります。複数のエージェントに同じリポジトリを触らせるなら、通常のペイン分割だけではGitの作業ツリーは分かれないので、herdr内蔵のherdr worktree create(既定キーはprefix+shift+g)を使うか、Claude Codeのgit worktreeで並列開発する方法と組み合わせます。
SSH・スマートフォンからのリモート運用
herdrのサーバーは接続が切れても動き続けるため、エージェントを開発サーバーで回し、手元は様子を見る窓として使う運用に向いています。接続の方法は公式の作業スタイル解説で3通りに整理されています。
remoteオプションとmachine addの使い分け
1台のサーバーにつなぐだけなら、sshでログインしてそこでherdrを実行するtmuxと同じ方法が最も単純です。手元のクリップボードの画像をリモートのエージェントに貼りたい場合はherdr --remote workboxで接続します。v0.9.0からはherdr machine add workboxでSSH先を保存すると、ローカルと複数のサーバーのエージェントを1つの画面とエージェント一覧で扱え、1台の接続が切れても他は止まりません。マシン接続のページによると、接続先にできるのはx86_64かaarch64のLinux・macOSと、x86_64のWindowsです。
スマートフォン(Android・iPhone)からのSSH接続
専用のモバイルアプリやWebダッシュボードはありません。スマートフォンにSSHクライアントを入れ、エージェントが動いているマシンへ接続してherdrを起動すると、同じセッションが狭い画面向けの表示で開きます。Claude Code単体をスマートフォンから操作する公式の方法と比べたい場合はClaude Codeをスマホで使う方法の記事が参考になります。
導入判断|採用すべきチームと見送る条件
採用が効くのはエージェントを3本以上並べる体制
機能追加・不具合調査・テスト生成を別々のエージェントに振り、人はレビューと承認に回る運用では、blockedのペインだけを拾えることがそのまま待ち時間の短縮になります。2本程度で承認待ちの見落としがなければ、まず既存のターミナルのタブや分割で運用することを勧めます。3本以上を並列で動かし、どれが止まっているか探す時間が目立ってきた時点を、導入検討の目安にします。
herdrの導入を見送る条件と運用上の制限
- 環境の分離が目的の場合:herdrはファイルシステムやネットワークを隔離しません。同じディレクトリで複数のエージェントを動かすと編集がぶつかります。
- 1.0前の破壊的変更:v0.9.2ではherdr独自の画像表示API(pane.graphics)が削除され、v0.7.5ではプラグインの登録がセッション単位からユーザー単位に変わりました。CLIやAPIに依存した自作スクリプトは、更新のたびにCHANGELOGのBreaking Changesを確認する前提で組みます。
- プラグインの安全性:プラグインのページは、マーケットプレイスへの掲載が自動かつ無審査で、herdrはプラグインをサンドボックス化しないと明記しています。業務端末では入れるリポジトリを決めておくべきです。
複数のエージェントにどの作業を振り、成果物の品質をどう確かめるかという設計は、道具を入れた後に残る課題です。社内業務へのエージェント組み込みや並列運用の設計は、一創のAIエージェント開発で支援しています。Claude Code側で複数エージェントを協調させる機能と比べたい場合はClaude Code Agent Teamsの使い方と料金の記事も参照してください。
よくある質問
herdrは無料で商用利用できますか?
できます。v0.8.0以降はApache-2.0で、利用料はかかりません。AGPLと商用ライセンスのデュアル構成だったのはv0.7系までで、社内ツールやSaaSに組み込む場合もApache-2.0の条件(著作権表示とライセンス文の同梱など)に従えば足ります。
herdrの読み方と名前の意味は?
公式には読み方の記載がなく、国内では「ハーダー」と読まれています。英語のherder(群れを追う人)に近い綴りで、複数のエージェントをまとめて見張る用途と重なります。
herdrのショートカットキーを確認・変更するには?
herdrの中でprefix+?(既定はctrl+bの後に?)を押すと有効なキーの一覧が出ます。変更は~/.config/herdr/config.tomlの[keys]で行い、herdr server reload-configで反映します。既定値の全体はherdr --default-configで確認できます。
herdrのプラグインはどう入れて、どう更新しますか?
herdr plugin install owner/repoで入れます。独立した更新コマンドは無く、新しい版にするときは同じコマンドで入れ直します。特定の版に固定したい場合は--refを付けます。
tmuxの中でherdrを動かせますか?
外側の環境としてtmuxの中でherdrを起動することはできます。逆に、herdrのペインの中で起動したtmuxの内側までは状態検出が届きません。シェルの設定で自動的にtmuxへ入るようにしている場合は、HERDR_ENVが1のときは除外する条件を足します。