herdr — コーディングエージェント向け Rust 製ターミナル環境
herdrdev/herdr
★ 50,356 ・ Rust ・ Apache-2.0
概要
herdr は、ターミナル上で自律的に動作するコーディングエージェントを管理・運用するためのランタイム環境(ターミナルマルチプレクサ)です。Rust 言語で実装されており、Electron などの GUI フレームワークを使わずに単一のバイナリとして動作します。
近年、Claude Code や Codex、Cursor などのコーディングエージェントをターミナルで実行する機会が増えています。しかし、tmux などの従来型マルチプレクサでは「どのエージェントが作業中で、どのエージェントがユーザーの入力を待って止まっているか」を一目で把握することが難しく、長時間の処理や複数マシンの管理にも課題がありました。herdr はこうした課題に対応し、エージェントの実行状態の監視やバックグラウンドでのセッション維持、マシン間をまたいだペイン管理を提供します。複数のコーディングエージェントを並行して動かす開発者や、リモートサーバー上で安全にエージェントを実行したいエンジニアに向いています。
主な特徴
- 切断時も処理を継続するバックグラウンド実行: クライアントを終了したり SSH 接続が切断されたりしても、バックグラウンドサーバー上でターミナルセッションを維持します。サーバーやマシンが再起動した場合には、保存されたレイアウトを復元し、サポートされているエージェントセッションを再開する仕組みを備えています(元の OS プロセス自体は維持されません)。
- ローカルと複数リモートマシンを 1 画面で統合: ローカル環境の作業と SSH 接続された複数のリモートマシンを同一ウィンドウ内にまとめられます。エージェントの一覧をまとめて表示しつつ、接続ごとに独立して再接続が可能です。
- エージェントの状態表示(working / blocked / idle): すべてのペインに対して、実行中(working)、入力待ち(blocked)、待機中(idle)のラベルが付与されます。エージェントが処理を停止してユーザーの応答を求めている場合、どのペインを確認すべきかが即座に分かります。
- エージェント自身による操作(Agent-native): エージェント自身が CLI や Socket API を介して herdr を操作できます。ペインの生成、他のエージェントへのプロンプト送信、別のエージェントがブロック状態になるまでの待機といった連携が可能です。
- 既存ツールの非侵入的な実行: Claude Code、Codex、Cursor、OpenCode、Grok などをそのままターミナル内で実行できます。ツール自体をラップしたり置き換えたりするのではなく、エージェントが動くターミナルそのものを herdr が管理する設計です。
- キーボードとマウスの両立: tmux スタイルのプレフィックスキーによるキーボード操作に加え、クリック、ドラッグ、画面分割などのマウス操作にも対応しています。利用シーンに応じて操作方法を自由に使い分けられます。
- プラグイン機能と単一バイナリ設計: プラグインによってペインやワークフローを拡張できるエコシステムが用意されています。また、Electron などの重量なランタイムを使わず、既存のターミナルエミュレータ内で直接動作します。
使い方
README では複数のインストール方法が案内されています。
インストール
シェルスクリプトを使用した自動インストールのほか、各種パッケージマネージャーが利用できます。
シェルスクリプトによるインストール:
curl -fsSL https://herdr.dev/install.sh | sh
Homebrew または mise を使用する場合:
brew install herdr
# または
mise use -g herdr
Windows(PowerShell)の場合:
powershell -ExecutionPolicy Bypass -c "irm https://herdr.dev/install.ps1 | iex"
このほか、GitHub Releases ページからコンパイル済みバイナリを直接取得することも可能です。
起動と基本操作
作業対象のディレクトリでコマンドを実行して起動します。
herdr
ペインを分割してエージェントを実行した後、作業を切り離す(デタッチする)には次のキーを入力します。
- デタッチ:
Ctrl + bを押した後にq
作業を再開する際は、再度ターミナルで herdr コマンドを実行することで再アタッチできます。
ソースコードからのビルド(開発者向け)
リポジトリをクローンして自分でビルドする場合は、Rust のビルドツールおよび just コマンドを使用します。
git clone https://github.com/herdrdev/herdr
cd herdr
cargo build --release
just test # ユニットテストの実行
just check # フォーマット、テスト、メンテナンスチェックの実行
技術的なポイント
- Rust 実装による軽量・高信頼なアーキテクチャ: Electron などのブラウザベースの GUI を採用せず、Rust 製のネイティブバイナリとして構築されています。これにより起動速度とリソース消費の面で軽量さを保ちつつ、既存のターミナル環境の中でそのまま機能します。
- クライアント / サーバー構造による耐障害性: ターミナルの描画を行うクライアントと、プロセスを保持するバックグラウンドサーバーが分離されています。この構造により、SSH セッションの一時的な断絶やウィンドウの誤終了が発生しても、実行中のエージェントプロセスを中断させずに保護できます。
- エージェント間通信を支える Socket API: CLI だけではなく Socket API を露出させることで、プログラムやエージェント自体からのペイン操作を可能にしています。エージェントが自律的に新しいサブタスクのペインを立ち上げたり、他のエージェントの状態をポーリング・待機したりするオーケストレーション基盤として機能します。
- マルチマシン対応の統合セッション管理: 単一マシンにとどまらず、SSH 経由のリモートマシンも同一のセッション管理レイヤーで扱えます。リモート接続が切れた場合でも個別に再接続が試行されるなど、分散した環境での作業継続性が考慮されています。
注意点
- 再起動時のプロセス復元制限: README の記述によると、サーバーやマシン自体の再起動時には「保存されたレイアウトの復元」と「対応しているエージェントセッションの再開」は行われますが、元の OS プロセスそのものが再起動をまたいで生存するわけではありません。長時間の永続化を前提とする運用では挙動に留意が必要です。
- Windows 環境のサポート状況: Windows 向けのインストールスクリプトが用意されていますが、README 内のリンクでは Windows 向けサポートに関して Beta 扱い(endpoint-protected Windows / windows-beta)を示す記述があります。プラットフォームごとの制約や要件については公式ドキュメントの確認が推奨されます。
- ライセンス: 本プロジェクトは Apache License 2.0 で公開されています。商用利用や改変、再配布が許容されたオープンソースライセンスです。
まとめ
herdr は、ターミナル上で動くコーディングエージェントの監視とマルチマシン運用に特化した Rust 製のターミナル環境です。エージェントの「実行中」「入力待ち」といった状態の可視化や、API を通じたエージェント同士の連携、デタッチによるセッション維持など、自律型 AI ツールを活用する開発ワークフローを支える機能を備えています。





