AI Deck

herdr と Superset の違いと選び方 ─ エージェント多重化ツールの現在地

  • AI
  • CodingAgent

AI コーディングエージェントが実用段階に入り、ターミナルの役割が変わり始めています。かつては人間がコードを書く場所でした。今は、複数のエージェントを並列で走らせ、その出力をレビューする場所になりつつあります。

tmux や screen は、人間のマルチタスクを前提に設計されたツールです。ペインの中で何が起きているかは関知しません。エージェントが承認待ちで止まっていても、作業を終えていても、ターミナルから見れば同じ「動いているプロセス」です。

このズレを埋めようと、エージェントを第一級の対象として扱うマルチプレクサが現れました。herdr と Superset です。名前は並んで挙がりますが、中身は正反対と言っていいほど違います。両者のアーキテクチャを確認したうえで、永続化・外部からの操作・コンフリクト回避の 3 観点で比べていきます。

herdr ─ 既存のターミナルの中で動く単一バイナリ

herdr は自らを “agent multiplexer that lives in your terminal” と説明しています。README にある “one rust binary, no electron — runs in whatever terminal you already use” が、その立ち位置を端的に表しています。

実体は単一の Rust バイナリで、コードの 85% を Rust が占めます。専用のターミナルアプリを名乗るのではなく、あなたがすでに使っている Ghostty や iTerm2、kitty、WezTerm、Alacritty、Warp の中で起動します。対応 OS は Linux と macOS が安定版で、Windows はプレビューベータ。リポジトリ(ogulcancelik/herdr)の作成は 2026 年 3 月 27 日で、2026 年 7 月時点の star は 15,000 超です。ただし開発は単独メンテナによるもので、いわゆる bus factor of one の状態にあります。

誤解されやすいのが、herdr を「マウスを嫌う人向けのツール」と捉えることです。実際は逆で、マウスを第一級市民として扱います。クリックでペインにフォーカスし、ドラッグでリサイズし、テキストをドラッグ選択するだけでクリップボードへ自動コピーされます。キーボード操作は tmux 型の prefix(既定は ctrl+b)が主経路ですが、マウスを封じる思想では作られていません。

エージェントの状態を 5 値で持つ

ただのペイン分割ツールと違うのは、各ペインで動くエージェントの状態を持っている点です。状態は 5 つあります。

  • idle ─ 完了して確認も済み、待機している
  • working ─ 稼働中
  • blocked ─ 入力・承認・判断を待っている
  • done ─ 完了したが、まだ人間が確認していない
  • unknown ─ 分類できない

この 5 値はサイドバーで上位にロールアップされます。blocked のエージェントが 1 体でもいれば、そのペイン・タブ・workspace 全体が blocked として表示され、done は人間が確認するまで消えません。10 個のペインを開いていても、「今どれが自分の手を待っているか」がサイドバーの 1 行に集約される設計です。

検知方式は 2 つあり、排他的に使われます。公式ドキュメントに「二重の真実の源(dual sources of truth)を避ける」という設計思想が明記されているためです。既定は画面マニフェスト検出で、ペインのフォアグラウンドプロセスを特定し、画面バッファの下部を TOML のマニフェストと突き合わせて分類します。もう 1 つはライフサイクルフックで、インストールされていればこちらが権威になり、画面検出は併用されません。

興味深いのは、Claude Code / Codex / GitHub Copilot CLI / Cursor Agent CLI / Droid / Qoder CLI について、herdr が意図的にフックを権威にしていない点です。これらのフックはライフサイクル全体をカバーせず、権限承認の結果やエスケープ割り込みを取りこぼすことがある ─ というのが公式の理由。状態判定は画面検出に委ね、フックからはセッション復元用の session identity だけを受け取ります。Pi や OpenCode、Hermes Agent などではフックが権威として機能します。

blocked の判定は意図的に厳格で、既知の承認 UI と一致した場合だけ blocked とし、未知の UI 形状は idle にフォールバックします。判定に納得がいかなければ herdr agent explain <target> で、最終状態・権威の種類・マッチしたルール・フォールバックの理由まで確認できます。なお、herdr の中で tmux を起動すると、tmux 内のエージェントは検出されません。

Superset ─ macOS のデスクトップアプリとして束ねる

Superset は TypeScript と Electron で作られたデスクトップ GUI アプリです。公式のエンジニアリングブログ「The Terminal That (Almost) Never Dies: Building a Persistent Terminal Daemon for Electron」が、その構成を明かしています。対応 OS は現時点で macOS のみ、Windows と Linux は coming soon の状態です。

掲げているのは “Run 10+ parallel coding agents on your machine”、そして “Each agent runs in its own isolated Git worktree. No merge conflicts, no stepping on each other’s changes.” というメッセージ。並列エージェントの衝突問題に、worktree による隔離で正面から答える立場です。

エージェントは中立に扱い、Claude Code、Codex、Cursor Agent、OpenCode、Amp、Gemini CLI、GitHub Copilot、Droid など主要な CLI エージェントを横断的に呼び出せます。star は 2026 年 7 月時点で 12,000 超。ライセンスは Elastic License 2.0 で、ソースコードは公開されているものの、OSI 承認のオープンソースライセンスではありません。料金は Free / Pro($20/seat/月)/ Enterprise の 3 段階です。

GUI アプリらしい機能も揃います。レビューから stage、commit、push までを 1 つの UI で完結できる Diff ビューア(diff の行をダブルクリックすると該当位置のエディタが開きます)、--json 出力と CI 環境の自動検出を備えた Superset CLI、RFC 5545 の RRULE で定期実行を組める Automations、dev サーバーをプレビューできる In-App Browser。

比較 1. セッションの永続化

エージェントを長時間走らせるなら、アプリやターミナルを閉じても生き続けてほしい。この要求への 2 つの答えは、アーキテクチャの違いをそのまま映しています。

herdr はサーバー・クライアント方式です。ctrl+b q でデタッチしてもエージェントは動き続け、herdr で再アタッチできます。SSH 越しでも同じで、名前付きセッションは herdr session list / attach / stop / delete <name> で管理します。リモート運用は 2 通りで、サーバーに SSH して herdr を起動する tmux 型と、herdr --remote ssh://you@server:2222 でローカルの herdr をシンクライアント化し、リモートの UI をストリーミングする型が選べます。

ただし万能ではありません。サーバーの再起動をまたぐ場合、プロセスは継続しません。レイアウトは復元されますが、画面の復元は pane screen history を有効にしている場合のみ、会話の再開はエージェントがネイティブの session restore に対応している場合のみです。

Superset が解いたのは、Electron 固有の問題でした。通常の Electron と node-pty の構成では、PTY が main プロセスで spawn されるため、アプリを閉じるとセッションが殺されます。Superset は Unix ソケット経由で main プロセスから切り離した独立デーモンとして PTY を管理し、アプリを閉じてもセッションを殺しません。再起動すれば、動いているセッションにそのまま再接続できます。ブログのタイトルの “(Almost) Never Dies” は、この実装を指しています。

比較 2. AI による自律操作

エージェント自身にツールを操作させたい。この需要への答え方も対照的です。

herdr が用意したのはローカルのソケット API です。~/.config/herdr/herdr.sock に Unix domain socket を開き、NDJSON(改行区切り JSON)でやり取りします(Windows では名前付きパイプ)。herdr api schema --json を叩けば全ツールとイベントの JSON Schema が出力され、メソッドは workspace / worktree / tab / pane / agent / events / plugins の名前空間に分かれます。触り方は 3 層 ─ ペイン内のエージェントに使い方を教える Agent skill、シェルスクリプトや人間のデバッグ用の CLI wrapper、カスタムツールや長寿命のイベント購読のための生ソケット API です。

実際のコマンドはこうした形になります。

Terminal window
herdr agent start reviewer --cwd ~/project --split right -- pi
herdr pane split --direction right
herdr wait agent-status w1:p1 --status done
herdr pane run w1:p2 "npm test"
herdr pane read w1:p2 --source recent --lines 50
herdr notification show "build failed" --body "api workspace" --sound request

公式の SKILL.md を npx skills add ogulcancelik/herdr --skill herdr -g でエージェントに読ませると、ペインの中のエージェント自身が隣のペインを split して別のエージェントを起動し、完了を待ち、ログを読めるようになります。エージェントがエージェントを呼ぶ構造です。暴走への備えとして、環境変数 HERDR_ENV=1 が立っていない限りエージェントは herdr の操作を拒否します。プラグインは herdr-plugin.tomlworktree.created のようなイベントにフックできます。

Superset の外部インターフェースは MCP ですが、アプリに内蔵されたローカルサーバーではありません。クラウドの HTTP エンドポイント(https://api.superset.sh/api/v2/agent/mcp)として提供されます。公開されているツールは tasks_* / workspaces_* / agents_* / terminals_create / automations_* / projects_list で、ファイル編集用のツールは存在しません。

この差は小さくありません。herdr の API は「ターミナルの中の作業空間を操作する」ためのもの、Superset の MCP は「タスクやワークスペースといった上位の管理単位を操作する」ためのものです。同じ MCP という言葉から、エージェントがファイルを直接書き換える絵を想像すると、実物とはズレます。

比較 3. コンフリクトの回避

複数のエージェントを同じリポジトリで走らせれば、当然ぶつかります。ここは Superset が最も強く打ち出している領域です。

Superset は各エージェントを独立した git worktree に自動的に隔離します。既存のローカルリポジトリの上に worktree を生やす方式なので、リポジトリを再クローンする必要はありません。さらに .superset/config.jsonsetup フィールドで、worktree 作成時の依存インストールなどを自動化できます。

ここで注意したいのは、.superset/setup.sh を置くだけでは自動実行されないことです。config から明示的に呼びます。

{
"setup": ["./.superset/setup.sh"]
}

設定は worktree / リポジトリ / ユーザーホームの 3 段階で解決され、config.local.json で個人の拡張も足せます。隔離したブランチのレビューは Diff ビューアが受け止める、という流れが GUI の中で閉じています。

一方の herdr も、worktree 管理を持っていないわけではありません。herdr worktree create --branch NAME を標準で備えています。Hacker News では「killer feature は git worktree 管理」と評されたほどで、ここを弱点と見るのは正確ではありません。

ただし、herdr が持つのは worktree を切る機能までです。自動的なファイルロックや排他制御はなく、そこから先の運用はユーザー側に委ねられます。jj(Jujutsu)には未対応で、git worktree のみが対象です。

比較表

Supersetherdr
アプリ形態TypeScript / Electron のデスクトップ GUI単一の Rust バイナリ(既存ターミナルの中で動く TUI)
対応 OSmacOS のみLinux / macOS 安定、Windows はプレビューベータ
ライセンスElastic License 2.0(source-available)AGPL-3.0-or-later + 商用のデュアル
料金Free / Pro $20/seat/月 / EnterpriseAGPL 版は無償。商用は問い合わせ
永続化pty を main プロセスから切り離した独立デーモンサーバー・クライアント方式。デタッチ後も継続、SSH 越しに再アタッチ
外部からの操作クラウドの HTTP MCP エンドポイントローカルの Unix domain socket(NDJSON)
コンフリクト対策各エージェントを独立 worktree に自動隔離herdr worktree create で worktree を切る(自動ファイルロックは無し)
状態の可視化GUI ダッシュボード5 値の状態をサイドバーに集約(idle / working / blocked / done / unknown)
GitHub star(2026 年 7 月)12,000 超15,000 超

「tmux で十分では」という問い

herdr を紹介した Hacker News のスレッドは 2 本あります。「Herdr: One terminal to rule them all」が約 400pt・170 件超のコメント、「Herdr: Agent multiplexer that lives in your terminal」が約 170pt・110 件超のコメント。反応は熱狂一色ではありませんでした。

最も繰り返された疑問は「なぜ tmux や zellij ではダメなのか」です。ベル通知やステータスバーのフックで代替できる、という反論が多数を占めました。

冷静な評価として、こんな整理も出ています。マウスで全部クリックできる、tmux 風の popup UI、エージェント状態の表示、選択で自動クリップボードコピー、リモート SSH アタッチが楽、見た目が良い ─ それ以外はほぼ tmux そのもの。herdr を検討するときの、現実的な期待値になる見立てです。

批判もあります。入力に体感遅延があるという証言、jj 未対応で git worktree のみという制約、tmuxinator 相当の宣言的なレイアウト起動がない点。「Vibecoded(AI に書かせただけ)」という論争も起きました。

どちらを選ぶか

機能表を眺めるより、自分の作業場所と制約から逆算した方が早く決まります。

herdr が向くのは、次のような人です。

  • 普段からターミナルの中で作業していて、使い慣れたターミナルをそのまま使いたい
  • Linux がメイン、あるいは Windows で使いたい(Superset は macOS のみ)
  • SSH の向こう側やサーバー上でエージェントを動かし続けたい
  • シェルスクリプトやソケット API で、自分のワークフローを組み立てたい

Superset が向くのは、次のような人です。

  • GUI の一枚窓で完結させたい。macOS を使っている
  • ビジュアルな diff ビューアでレビューし、stage・commit・push まで同じ画面で終えたい
  • チームで統一して使いたい(Pro は $20/seat/月)

ライセンス審査がある組織への注記

どちらも「オープンソースだから自由に入れられる」とは限りません。

herdr は AGPL-3.0-or-later と商用のデュアルライセンスです。AGPL 版は無償ですが、AGPL は企業では審査対象になりやすい。Google は公開ポリシーで AGPL ソフトウェアに対する「意図的に広範な禁止(aggressively-broad ban)」を掲げ、Open Source Programs Office の許可なく AGPL ライセンスのプログラムを業務端末にインストールすることを禁じています。業務で使うなら、商用ライセンスの問い合わせが選択肢になります。

Superset の Elastic License 2.0 も、ソースは読めますが OSI 承認のオープンソースライセンスではありません。個人の開発環境として使うのか、会社の端末に入れるのか。この 1 点で、必要な手続きは変わります。

おわりに

これまで、AI エージェントの扱いづらさは人間がシェル芸でカバーしてきました。ペインを手で並べ、終了を目視で確認し、ぶつからないようにブランチを切る。その手作業を、インフラ側であるマルチプレクサが引き取り始めた ─ herdr と Superset が示しているのは、その流れです。

ただし、Hacker News で最も多かった疑問が「tmux で十分では」だったことも忘れずにおきたい。「それ以外はほぼ tmux そのもの」という評価は、けなしているようでいて正確な要約でもあります。差分は小さい。その小さな差分が、複数のエージェントを同時に走らせる日常で効いてくるかどうかは、あなたの作業量と作業場所によります。

まずは今の環境で何が面倒になっているかを、一つ挙げてみてください。「どのエージェントが待っているか分からない」なら herdr の状態表示が効きます。「ブランチがぶつかる」なら Superset の自動 worktree が効きます。どちらも当てはまらないなら、tmux のままでいいという結論も十分にあり得ます。


参考情報

← ブログ