
Herdr 入門 - ノートPCを閉じてもコーディングエージェントが止まらないターミナルの仕組みと使い方
当サイトは Amazon.co.jp を宣伝しリンクすることで紹介料を得る手段を提供する、Amazonアソシエイト・プログラムの参加者です。価格・在庫はリンク先の最新情報をご確認ください。
コーディングエージェントに数時間かかる作業を任せるようになると、困るのは「エージェントの外側」です。ノートPCを閉じたらセッションが止まる。ターミナルのタブが10個に増えて、どれが承認待ちで止まっているのか分からない。外出先から様子を見たいのに、手元の画面にしか状態がない。
昔からの答えは tmux です。サーバー側でターミナルを持ち続け、デタッチしてもプロセスは動き続ける。ただし tmux は「どのペインがエージェントで、いま何を待っているのか」までは知りません。
Herdr は、この tmux の発想をそのまま引き継いだうえで、コーディングエージェントを前提にした機能を足したツールです。公式は自らを「the runtime coding agents run on(コーディングエージェントが動くランタイム)」と呼んでいます。この記事では、Herdrが何をするツールなのか、tmuxやデスクトップアプリ型の並列エージェントツールと何が違うのか、実際の使い方と自動化、導入前に知っておきたい注意点までを、公式ドキュメントとGitHubリポジトリを出典に整理します。
NOTE
本文中のバージョン・数値・仕様は2026年10月29日時点で確認したものです。スター数・Issue数・リリース日はGitHub APIの値、機能仕様は herdr.dev/docs(v0.9.5のドキュメント)、資金調達や経緯は公式ブログの記載に基づきます。Herdrはまだ0.x系で、細部は短期間で変わる可能性があります。
Herdrとは何か
Herdrは、ターミナルの中で動く「エージェント向けのターミナルワークスペースマネージャー」です。デスクトップアプリではなく、tmuxやZellijと同じくターミナルの中に立ち上がるTUI(テキストベースの画面)として動きます。
まず事実関係を並べておきます。
| 項目 | 内容 |
|---|---|
| 公式サイト | herdr.dev |
| GitHub | herdrdev/herdr |
| ライセンス | Apache License 2.0(2026年8月にAGPLから変更) |
| 開発元 | Herdr, Inc.(Y Combinator F26バッチ) |
| リポジトリ作成日 | 2026年3月27日 |
| 最新安定版 | v0.9.5(2026年10月14日) |
| GitHubスター | 約46,400 |
| オープンIssue | 385件 |
| 主要言語 | Rust |
| 対応OS | macOS、Linux、Windows(いずれも単一のバイナリ) |
| モバイル | 専用アプリはなし。スマホのSSHクライアントから使う |
| 料金 | 無料(料金ページはなし) |
公式サイトのトップには、インストール数が約164万、コミュニティのプラグインが1,789個、自動で認識するエージェントCLIが22種類と表示されています(いずれも10月29日にサイトで見た値で、サイト側の集計です)。
開発者は Can Celik 氏です。8月6日の公式ブログで「Herdrの唯一の開発者」としてY Combinatorへの参加を発表し、9月8日にはBessemer Venture Partnersが主導する600万ドルのシード資金調達を発表しています。同じ8月のブログで、ライセンスをAGPLからApache-2.0に切り替えたこと、ランタイムは今後も無料のまま公開すると明言しています。
「アプリ」ではなく「ランタイム」と名乗っている
Herdrの説明でいちばん大事なのは、この言葉の使い分けです。
Herdrの実体は、バックグラウンドで動くサーバーです。ターミナル(ペイン)とその中のプロセスはサーバーが持っていて、画面に見えているTUIは、そのサーバーに接続している「クライアント」にすぎません。クライアントを閉じても、落ちても、サーバーとエージェントは動き続けます。
公式の比較ページは、この点で他のツールを分類しています。Conductor、Emdash、Supersetのような「マネージャーアプリ」はウィンドウからエージェントを管理するもので、Herdrはエージェントが住む場所そのもの、という主張です。ただし、これはHerdr側から見た分類です。たとえばデスクトップアプリ型のツールにも、アプリを閉じてもターミナルを生かしておく仕組みを持つものがあります。比較表は「Herdrはこういう立ち位置を取っている」と読むのがよいと思います。
インストール
macOSとLinuxでは、公式のインストールスクリプトを使います。
curl -fsSL https://herdr.dev/install.sh | shWindowsでは PowerShell から入れます。
powershell -ExecutionPolicy Bypass -c "irm https://herdr.dev/install.ps1 | iex"パッケージマネージャーを使っている場合は、Homebrew(brew install herdr)、mise(mise use -g herdr)、Nix(flakeでソースからビルド)からも入れられます。GitHub Releasesにある単体バイナリを置くだけでも動きます。
| 環境 | バイナリ |
|---|---|
| Linux x86_64 / aarch64 | herdr-linux-x86_64 / herdr-linux-aarch64 |
| macOS Intel / Apple silicon | herdr-macos-x86_64 / herdr-macos-aarch64 |
| Windows x86_64 | herdr-windows-x86_64.zip |
Windows ARM64はx86_64版をエミュレーションで動かす形です。Windows版は一般提供になっていますが、Unix向けに作られた仕組みをConPTYで置き換えているため、一部の機能はLinuxやmacOSと挙動が違うとドキュメントに書かれています。
更新は herdr update です。安定版(stable)とプレビュー版(preview)の2つのチャンネルがあり、標準は安定版です。
最初の起動と基本の操作
プロジェクトのディレクトリで herdr と打つだけで始まります。
cd ~/projects/my-app
herdr初回はバックグラウンドのサーバーが立ち上がり、最初のワークスペースが自動で作られます。あとは、そのペインの中でいつもどおり claude や codex を起動するだけです。Herdrはエージェントを自動で認識し、サイドバーに状態を表示します。
構造は4階層です。
| 単位 | 役割 |
|---|---|
| ワークスペース | プロジェクト単位の入れ物。リポジトリやタスクごとに1つ |
| タブ | ワークスペースの中のレイアウト。エージェント用、ログ用、サーバー用などに分ける |
| ペイン | 本物のターミナル。左右・上下に分割できる |
| エージェント | ペインの中で動いている、Herdrが認識したエージェントのプロセス |
さらにその外側に「セッション」があり、herdr session attach work のように名前を付けて完全に分けることもできます。ただし公式は、まずワークスペースで分けて、ソケットや保存状態まで分けたいときだけセッションを使うよう勧めています。
マウスで操作できる
tmuxに慣れていない人にとって、Herdrで嬉しいのはマウスで操作できることです。ペインやタブはクリックで切り替え、境界線のドラッグで大きさを変え、右クリックのメニューから分割できます。文字はドラッグで選ぶとそのままクリップボードにコピーされます。
キーボード操作はtmuxと同じプレフィックス方式で、既定のプレフィックスもtmuxと同じ ctrl+b です。
| 操作 | キー |
|---|---|
| 右に分割 | prefix+v |
| 下に分割 | prefix+minus |
| 新しいタブ | prefix+c |
| ワークスペースの移動 | prefix+w |
| 新しいワークスペース | prefix+shift+n |
| デタッチ(画面だけ閉じる) | prefix+q |
prefix+q でデタッチするか、ターミナルのウィンドウをそのまま閉じても、サーバーとエージェントは動き続けます。もう一度 herdr と打てば同じ画面に戻ります。全部止めたいときは herdr server stop です。
ちなみにドキュメントの入口には、「いま使っているエージェントにHerdrの使い方を説明させる」ためのプロンプトが用意されています。https://herdr.dev/agent-guide.md をエージェントに読ませてから質問する、という形です。
エージェントの状態を見分ける仕組み
Herdrの中心的な機能が、各エージェントの状態を判定してサイドバーにまとめることです。状態は5種類あります。
| 状態 | 意味 |
|---|---|
| blocked | 入力、承認、判断を待っている |
| working | 作業中 |
| done | 終わったが、まだ見ていない |
| idle | 終わった、または待機中で、すでに見た |
| unknown | 判定できない |
状態は上の階層にまとめて表示されます。1つのエージェントがblockedなら、そのペイン、タブ、ワークスペースもblockedに見えます。10個のプロジェクトでエージェントを動かしていても、サイドバーを見れば「どこで誰が自分を待っているか」が分かる、というのが基本の使い方です。
画面を読んで判定している
判定方法は大きく2つあります。
- Herdrが対応しているエージェント(Claude Code、Codex、Cursor Agent、OpenCode、GitHub Copilot CLI、Grok CLIなど)は、ペインの一番下に表示されている画面を読み、「検出マニフェスト」というルールと照らし合わせて状態を決めます。
- エージェント側がHerdrに対応している場合(Crush、Kiro CLIなど)は、エージェント自身がHerdrに状態を報告します。
1つ目の方法は、エージェントの画面の見た目が変わると判定がずれます。そのためHerdrは herdr.dev から検出ルールの更新を取ってきて、再起動なしで差し替えます。この通信は設定の [update] manifest_check = false で止められます。判定がおかしいときは herdr agent explain <target> で、どのルールに当たったかを確認できます。
ここで注意したいのは、blockedの判定がわざと厳しくしてある点です。既知の承認画面や質問画面に一致したときだけblockedになり、見たことのない形のプロンプトは、最初はidleと判定されることがあります。ドキュメントも「idleは承認してよいという意味ではない」と明記しています。自動化でidleを信じて入力を送ると、承認ダイアログに文字を打ち込んでしまう可能性があるということです。
再起動しても戻ってくるもの、戻らないもの
「止まらない」といっても、何がどこまで残るかは場面によって違います。ドキュメントの表を整理するとこうなります。
| 場面 | プロセスは動き続ける | レイアウトが戻る | 直近の画面が戻る | エージェントの会話が再開する |
|---|---|---|---|---|
| デタッチして再接続 | はい | はい | はい | はい(止まっていないので) |
| サーバーの再起動 | いいえ | はい | 画面履歴の保存を有効にした場合だけ | 対応するエージェントだけ |
--handoff 付きの更新 | 対応環境なら概ね | はい | 引き継ぎに成功すれば | 引き継ぎに成功すれば |
いちばん強いのは普通のデタッチで、プロセスそのものが止まらないので何も失いません。
マシンを再起動するなどしてサーバーが止まると、プロセスは消えます。その場合Herdrは、ワークスペース、タブ、ペインの配置と作業ディレクトリを session.json から戻し、エージェントについては「インテグレーション」を入れていれば会話を再開します。たとえばClaude Codeなら claude --resume <id>、Codexなら codex resume <id> を自動で実行して、同じ会話に戻します。
インテグレーションは次のように入れます。
herdr integration install claude
herdr integration install codex
herdr integration status # 入っているバージョンを確認画面の履歴を保存して再起動後に戻す機能もありますが、こちらは初期状態で無効です。ペインの出力にはトークンやプロンプト、秘密情報が含まれることがあるため、という理由がドキュメントに書かれています。有効にする場合は設定ファイルに pane_history = true を書き、保存先の session-history.json をシェルの履歴と同じくらい慎重に扱う必要があります。
CLIとソケットAPIで自動化する
HerdrのCLIとローカルのソケットAPIは、人間だけでなくエージェント自身が使うことを想定して作られています。スクリプトからペインを分割し、別のエージェントを起動し、プロンプトを送り、終わるまで待つ、という一連の操作ができます。
公式ドキュメントにある例を少し整理すると、こうなります。
# 今のペインの右に新しいペインを作る(作られたペインのIDをJSONから取り出す)
split=$(herdr pane split --current --direction right --no-focus)
review_pane=$(printf '%s\n' "$split" | jq -r '.result.pane.pane_id')
# そのペインで Codex を "reviewer" という名前で起動する
herdr agent start reviewer --kind codex --pane "$review_pane"
# 差分のレビューを頼み、落ち着くまで最大2分待つ
herdr agent prompt reviewer "Review the current diff" --wait --timeout 120000
# 結果を読む
herdr agent read reviewer --source recent-unwrapped --lines 120ここで便利なのが agent wait と agent prompt --wait です。キーを送って適当な秒数だけ待つのではなく、Herdrが判定した状態(idle、done、blockedなど)になるまで待てます。相手がblockedのときに agent prompt を送ると、Herdrは入力せずに agent_blocked というエラーを返します。承認画面に誤ってプロンプトを流し込まないための作りです。
エージェントではない普通のプロセス(テストやビルド)は、pane run と pane wait-output で扱います。
herdr pane run w1:p3 "npm test"
herdr pane wait-output w1:p3 --regex "passed|failed" --timeout 120000ただし --timeout を付けない待機は無期限に待ち続けます。また、タイムアウトしたからといって入力が送られなかったとは限らない、とドキュメントにあります。再送する前に agent read で状態を確かめるのが安全です。
worktreeの扱い
並列エージェントツールの多くは「タスクごとにgit worktreeを切る」ことを中心に据えていますが、Herdrの中心はあくまでターミナルです。比較ページでもworktreeと差分レビューについては「pairs with it(組み合わせて使う)」と書いていて、主役ではありません。
それでもworktreeを作る機能はあります。Gitリポジトリのワークスペースを右クリックして「New worktree」を選ぶと、~/.herdr/worktrees/<repo>/<branch> にチェックアウトを作り、新しいワークスペースとして元のワークスペースの下にまとめて表示します。保存先は設定で変えられます。
[worktrees]
directory = "~/.herdr/worktrees"削除するときは「Delete worktree checkout...」で git worktree remove が走ります。未コミットの変更があってGitが削除を断った場合は、強制削除の前にもう一度確認されます。ブランチは消えません。ソケットAPIにも worktree.create などのメソッドがあります。
一方で、差分を見てレビューし、PRを出すところまでを1つの画面で済ませる機能はありません。そこはエディタやGitHubの画面、あるいはworktree管理に特化したツールと組み合わせる前提です。
複数のマシンをひとつの画面で扱う
Herdrの0.9系で入ったのが、手元のPCと、SSHでつながる別のマシンを同じ画面で扱う機能です。
# 事前に普通の ssh workbox が通ることを確認しておく
herdr machine add workbox追加したマシンのワークスペースとエージェントが、手元の「Local」と並んでサイドバーに出てきます。リモート側にHerdrが入っていなければ、確認したうえでインストールしてくれます。マシンごとに別のHerdrサーバーが動いているので、1台の接続が切れても他には影響しません。
使い方は3通りあります。
| やり方 | コマンド | 向いている場面 |
|---|---|---|
| サーバーにSSHしてから起動 | ssh you@server のあと herdr | tmuxと同じ感覚で使いたいとき、スマホのSSHアプリから使うとき |
| 手元から直接つなぐ | herdr --remote workbox | 手元のテーマやクリップボード(画像の貼り付けなど)を使いたいとき |
| 複数のマシンを保存する | herdr machine add workbox | Localと複数のリモートを1つの画面で切り替えたいとき |
保存されるのは接続先のラベルやSSHの宛先だけで、パスワードや秘密鍵は保存しません。認証はOpenSSHにまかせています。リモートのペインでGitの認証や署名を使いたい場合は、信頼できるホストに限って自分のSSH設定で ForwardAgent yes を有効にする必要があり、Herdrが勝手に有効にすることはありません。
スマホからはSSHアプリで
Herdrには専用のモバイルアプリもWebのダッシュボードもありません。代わりに、スマホのSSHクライアントからサーバーに入って herdr を起動すると、同じセッションが狭い画面向けのレイアウトで開きます。ドキュメントではiPhone向けに moshi というSSHアプリが例に挙がっています。
SSHの設定なしで自分のマシン同士をつなぐ「Herdr Cloud」も予告されていますが、10月29日時点ではウェイティングリストを受け付けている段階で、料金や提供時期は公表されていません。
プラグイン
Herdrはプラグインで機能を足せます。プラグインは herdr-plugin.toml というマニフェストを持つリポジトリで、GitHubで herdr-plugin というトピックを付けると公式サイトの一覧に自動で載ります。インストールは herdr plugin install です。
注意点として、一覧に載るプラグインはHerdr側で審査されていません。プラグインは自分のユーザー権限で動き、環境変数を引き継ぎ、Herdrのすべての操作を呼び出せる普通のプログラムです。公式も「エディタやシェルの拡張と同じように扱い、信頼できる作者のものだけを入れる」よう書いています。
Superset、cmux、Orcaとの違い
同じ日に記事にしたSuperset(Paradev)とcmux、以前の記事で紹介したOrcaと並べると、Herdrの立ち位置は次のようになります。
| 項目 | Superset(Paradev) | Herdr | cmux | Orca |
|---|---|---|---|---|
| 形 | デスクトップアプリ | ターミナルの中で動くTUI(Rust製の単一バイナリ) | macOSのターミナルアプリ(Swift、libghostty) | デスクトップアプリ |
| 中心にあるもの | worktreeの配布、差分レビュー、PR | 止まらないセッションと、エージェントの状態の判定 | 通知リング、分割ペイン、ソケットAPI | worktreeの配布、差分レビュー |
| worktreeを自動で作るか | 作る(タスクごと) | 作れるが主役ではない | 確認した範囲では機能なし | 作る(タスクごと) |
| 差分レビューとPRの画面 | あり | なし | なし | あり |
| 対応OS | macOS(Linuxは実験的) | macOS、Linux、Windows | macOS | macOS、Windows、Linux |
| スマホから | iPhone / iPadアプリ | SSHアプリ経由 | iOSアプリ(早期アクセス) | iOS、Android |
| ライセンス | Elastic License 2.0 | Apache-2.0 | GPL-3.0-or-later(サーバー側はBUSL-1.1) | MIT |
| 料金 | 無料、有料はPro 20ドル/月から | 無料 | 無料、有料はPro 50ドル/月から(Cloud VM) | 無料 |
Orcaの列は2026年8月26日、ほかの3つは2026年10月29日に確認した情報です。
SupersetとOrcaは、worktreeを配って差分を見てPRにするまでを1つのアプリで扱うツールです。Herdrとcmuxはターミナル側に軸足があり、その中でもHerdrは、Windowsを含む3つのOSで動くことと、エージェントがエージェントを起動して終わるまで待てる仕組みが特徴です。worktreeとレビューの画面が欲しい場合は、SupersetやOrcaと組み合わせるか、エディタやGitHubの画面で補うことになります。
使う前に把握しておきたいこと
良いところだけ並べても判断材料にならないので、導入前に見ておくべき点を挙げます。
1. まだ0.x系で、変化が速い最新安定版はv0.9.5で、9月29日から10月14日の約2週間で0.9.2から0.9.5まで4回リリースされています。プレビュー版はさらに頻繁です。バージョン違いのクライアントとサーバーがある程度つながるよう作られていますが、サーバー側の新機能を使うには、そのマシンのHerdrを更新して再起動する必要があります。
2. エージェントの設定ファイルに手が入るインテグレーションを入れると、Claude Codeなら ~/.claude/settings.json にフック(hooks)が追加され、Codexなら hooks.json と config.toml が書き換わります。アンインストールで元に戻りますが、Codexの config.toml は変更したまま残ります。設定ファイルをdotfilesで管理している人は、差分が出ることを知っておいたほうがよいでしょう。
前の節で書いたとおり、新しい形の承認画面は最初idleに見えることがあります。また、Herdrのペインの中でさらにtmuxを起動すると、Herdrにはtmuxしか見えず、その奥のエージェントは認識されません。シェルの起動時に自動でtmuxに入る設定をしている人は、HERDR_ENV を見て除外する設定がドキュメントに載っています。
Herdrはエージェントのターミナルを持ち続けるもので、ドキュメントを見る限り、エージェントの権限を制限する機能はありません。エージェントは自分のユーザー権限で同じマシンの上で動きます。ドキュメントには、fence(Linux)やnono(macOS)のようなサンドボックスのラッパー越しにエージェントを起動したときに、Herdrに正しく認識させる設定(HERDR_AGENT 環境変数)が載っています。隔離が必要なら、こうした別のツールと組み合わせる前提です。危険なコマンドの承認も、これまでどおりエージェント側の仕組みで行います。
ランタイム本体はApache-2.0で無料です。Herdr Cloudのような有料になりそうなサービスは予告段階で、料金体系は10月29日時点で未発表です。エージェントそのものは提供しないので、Claude MaxやChatGPT Proなどの契約は自分で用意します。並列に動かせばその分だけ利用枠を早く消費する点は、ほかの並列ツールと同じです。
どんな人に向くか
向いているのは、普段からターミナルで暮らしていて、tmuxやZellijの代わりにエージェントの状態も分かるものが欲しい人です。特に、自宅のデスクトップやVPSでエージェントを何時間も動かし、ノートPCやスマホからSSHで様子を見に行く、という使い方とは相性がよいと思います。単一のバイナリなので、SSHで入ったサーバーにも同じ環境をすぐ作れます。
スクリプトやエージェントから別のエージェントを起動して待つ、といった自動化を組みたい人にも向いています。状態を見て待てるCLIは、tmuxの send-keys と sleep で組むより確実です。
向いていないのは、差分のレビューやPR作成までを1つのGUIで完結させたい人です。Herdrはそこを担当しないので、worktreeと差分レビューを中心にしたデスクトップアプリ(たとえばOrcaのようなツール)のほうが合います。逆に、そうしたアプリとHerdrを組み合わせる使い方も公式は想定しています。
すでにtmuxでペインの中身をClaude Codeに読ませるような工夫をしている人なら、Herdrの agent read や pane read が同じことを公式の機能としてやってくれる、と考えると分かりやすいかもしれません。
まとめ
Herdrは、コーディングエージェントを「閉じても止まらないターミナル」の中で動かすための、tmuxの後継のようなツールです。
- バックグラウンドのサーバーがターミナルを持ち、画面はそこに接続するクライアントにすぎない
- エージェントの状態を blocked / working / done / idle で判定し、サイドバーにまとめる
- サーバーが再起動しても、レイアウトとエージェントの会話(対応するもの)を戻せる
- CLIとソケットAPIで、エージェントがエージェントを起動して待つ自動化を組める
- SSHでつながる複数のマシンを1つの画面で扱え、スマホからもSSHで使える
- Rust製の単一バイナリで、macOS、Linux、Windowsに対応。Apache-2.0で無料
デスクトップアプリ型の並列エージェントツールが「エージェントを管理する画面」を作っているのに対して、Herdrは「エージェントが住む場所」を作ろうとしています。エージェントに長い作業を任せることが増えてきた人、特にリモートのマシンでエージェントを動かしたい人は、一度試してみる価値があると思います。
参考リンク
- Herdr 公式サイト
- Herdr ドキュメント
- Install Herdr
- Quick start
- Concepts
- Agents
- Session state and restore
- Agent automation
- Integrations
- Connecting machines
- How to work with Herdr
- Configuration
- Plugins
- Compare(Herdr公式の比較ページ)
- Herdr is joining Y Combinator. The runtime stays open.
- Herdr raised a $6M seed. We're hiring.
- herdrdev/herdr(GitHub)
- Herdr リリース一覧


