
2026/07/02 13:28
Herdr:これらをすべて統べる一つのターミナル
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
herdrは、Electron、アカウント、またはテレメトリを使用しない軽量なターミナルベースのエージェントマルチプレクサーであり、Linux/macOS(安定版)とWindows(プレビューベータ版)で利用可能です。
tmux などの従来のツールのようにはエージェントの状態を理解せず、単一のマシンに縛り付けられたデスクトップアプリとは異なり、herdr はエージェントの意味論を理解し、セッションをマシンの再起動やターミナルの閉鎖にも耐えさせることができ、SSH の再接続を介してモバイルファーストなワークフローを可能にします。各エージェントは統一的なインターフェース内の独立した実際の PTY セッションで実行されます。このツールには、エージェントが UI を制御しワークスペースをオーケストレーションするために使用できる豊かな API(CLI と JSON ソケット)が含まれており、スリムクライアントでのクリップボードブリッジとキーバインドにネイティブなサポートがあります。これは、Pi、Claude Code、Cursor、および Codex などの人気のある AI モデルとそのまま動作し、GitHub 上のプラグイン(カスタムレイアウト、通知など)を介してコミュニティによる拡張が可能なオープンなプラグインエコシステムにも対応しています。現在、サイドバーは急速な状態更新中にロールアップの再計算によりちらつきが生じますが、開発計画ではティックごとに状態イベントをバッファに蓄積し、1 フレームごとに表示を更新することです。herdr は、JetBrains、Google、AWS、NVIDIA、Docker を含む主要な組織のエンジニアから推薦されています。本文
Agent マルチプレクサ:app ではなく、ターミナル上のバイナリ
Agent マルチプレクサ(herdr) は、独立したアプリケーションではなくターミナル内で動作するバイナリです。
すべてのコーディングエージェントを一台のターミナル上で統合し、どの端末からでも SSH 経由で利用可能です。ラップトップを閉じてもセッションが維持され、各エージェントは独立した実際のターミナル環境として動作します。
🔌 安定版インストール
以下のスクリプトを実行することで、Linux/macOS および Windows (PowerShell) にインストールできます。
# Linux/macOS curl -fsSL https://herdr.dev/install.sh | sh # Windows (PowerShell) PS> irm https://herdr.dev/install.ps1 | iex
主な特徴:
- OS 対応: Linux / macOS / Windows(プレビューベータ版)
- 軽量設計: Electron 不使用、アカウント不要、テレメトリ無効
🚀 開発現場からの声:opencodeherd+
スクロールバーのちらつき現象と解決策
サイドバーのエージェント状態切り替え時のちらつきが特定・対策済みです。
- 原因:
(要約表示)が PTY チャンクごとに再計算され、状態の二重切り替えでドットが描画直されていました。rollup - 解決策:
: セカンダリイベントをバッファ化src/app/state.rs
: フレームごとに rollup を一度だけ再描画src/ui/sidebar.rs
自動テストの実行
回帰テストが進行中です(残り約 13 分)。
esc キーで中断可能です。
❯ ~/Projects/herdr > master > ctx ─── 3% 34k/1M >> パス権限をバイパスする処理を実行中(Shift+Tab で操作モード切り替え) $ bun run dev (node scripts/prepare-docs.mjs) && astro dev [types] タイプ定義生成完了 [content] コンテンツ同期完了 astro v5.18.1 が準備就绪(668 ms) ローカル環境:http://localhost:4321/ (ネットワーク利用には --host フラグを指定してください)
📂 エントリーポイント機能:src/main.rs
herdr の主プログラムは
src/main.rs です。主要な 3 つの機能を実現しています。
- 引数解析
で初期設定を行い、SSH ブリッジ用の遠隔引数を処理します。session::configure_from_args()
- サブコマンドディスパッチ
,server
,client
の各コマンドは早期リターンを実行し、適切にハンドリングされます。update
- セッションモード
により既存サーバーへの接続を試みます。不可能な場合のみ新規起動します。auto_detect_launch()
🗃 データベースマイグレーション:llm-proxy+
リクエストログ移行の準備と実行が完了しました。
- SQL ファイル作成:
migrations/0007_request_log.sql
テーブルの作成request_log
による保持期間インデックス付与created_at- 毎日集計ビューの定義
- ローカルチェック:
で問題なし、41,209 ラインをバックフィル処理済み。sqlx prepare
リアルタイムログ確認
❯ tail -f logs/proxy.log INFO リクエスト ID=4818 ルート=/v1/messages ステータス 200 所要 312ms DEBUG キャッシュヒット率:0.93 WARN アップストリーム遅延 p99: 1.8 秒 WARN ステータス 429(上限到達):2 秒後に再試行
🧪 探索とテスト:codexserver+
テスト実行結果
- 対象:
の読み込みlive_handoff.rs - 結果: 14 テスト成功・0 失敗(所要 41.3 秒)
- 確認事項:
- ハンドオフスイートすべてのテストをパスしました。
- Pane PTY(分割画面のターミナルプロセス)はサーバー置換後も存続します。
- 長期タスク(例:
)も正常応答します。http.server
HTTP サーバー起動
❯ python3 -m http.server 8080 GET /runs/latest.json → ステータス 200 GET /qmp/report.html → ステータス 200
💡 なぜ herdr か?
核となる価値
「作業が起きている場所にエージェントを配置」「どこからでも再接続可能」
エージェントはサーバー、Mac Mini、サンドボックス VM など、SSH が可能な場所ならどこでも作動します。デスクトップ向けエージェントマネージャには縛られません。
利用シナリオとメリット
| シナリオ | メリット |
|---|---|
| ローカル環境 | ペイン分割・タブ作成・ワークスペース管理をあなたのマシン上で行う |
| SSH 経由 | サーバー上で Herdr を起動(tmux 同様)。脱着後もセッション維持、スマートフォンから再接続可能 |
| 遠隔接続 | ローカルクライアントからホストのセッションへ接続。clipboard やショートカットを継承 |
| レスポンシブ TUI | スマートフォン・タブレットでも最適化表示。狭い画面ではタッチ操作に合わせたスイッチャーを表示 |


スクリーンショットは iPhone で Moshi を使用して撮影 ❤️
⚖️ 「アプリ」との違い
多くのエージェントマネージャとは構造と動作原理が異なります。
| 特徴 | 多くのエージェントマネージャ | herdr |
|---|---|---|
| 起動形式 | アプリとして独立起動 ❌ | ターミナル内で実行 ✅ |
| 永続的 PTY セッション | 一部対応 / 限定的 ⚠️ | 完全サポート ✅ |
| SSH 経由での再接続 | 限定的機能 ⚠️ | 完全サポート ✅ |
| エージェント状態の理解 | 部分的な実装 ⚠️ | 完全実装 ✅ |
| 直接接続・オーケストレーション | 不可 / スクリプト依存 ❌/⚠️ | API 提供で可能 ✅ |
3 つの重要なポイント
- ターミナルエミュレータではない: Ghostty、Kitty、iTerm など、好みの端末はそのまま使えます。
- ウェブダッシュボードではない: アカウント不要なホスト型コントローラー平面を必要としません。
- tmux の拡張ではありません: tmux はエージェントを理解していません。herdr は「ターミナル内にマルチプレクサを持ち込み、エージェントを意識させる」独自の設計です。
機能比較表
| 機能 | tmux/Zellij | エージェントアプリ | ワークツリーオーケストレータ | herdr |
|---|---|---|---|---|
| ターミナル内で動作 | ✓ | — | — | ✓ |
| 永続的 PTY セッション | ✓ | 限定的 | インタナード | ✓ |
| SSH 経由での再接続 | ✓ | 限定的 | 遠隔プロジェクト | ✓ |
| セマンティックなエージェント状態 | ❌ | 部分的 | ワークスペースステータス | ✓ |
| エージェントへの直接接続 | ❌ | ❌ | ❌ | ✓ |
| エージェントによるオーケストレーション | スクリプト依存 | 部分的 | ワークフロー管理 | ✓ |
🛠 what you get(得られるもの)
リアルなペイン、エージェントの状態管理、それらを制御する API を提供します。
- チャットビューの再構築なし: リアルなプロセスがリアルな PTY で動作し、クリック可能なレイアウトと永続セッションを備えています。
- リアルなペイン: マウスファースト操作、タブ・ワークスペース管理。シェルフォントやショートカットをそのまま維持します。
- エージェントの状態管理: セッション全体で「ブロック中」「進行中」「完了」「待機」を一瞬で把握可能です。
- 永続性: デタッチとリアタッチが自由自在。ターミナル終了後もセッションとエージェントは存続します。
- コントロール表面: CLI と JSON ソケット API を提供し、作業を細かく制御できます。
ワークスペース作成例
# ワークスペースを作成 herdr workspace create --cwd ~/project --label api # タブを追加 herdr tab create --label logs
ペイン分割と実行
# 右方向にペインを分割 herdr pane split 1-1 --direction right # 別のペインでコマンドを実行 herdr pane run 1-2 "just test"
ステータス確認と読み込み
# エージェントの完了状態を確認 herdr wait agent-status 1-1 --status done # 最近の出力を読み取る herdr pane read 1-2 --source recent-unwrapped
🤝 インテグレーション対応
既存のエージェントを herdr に取り込むことができます。
対応エージェント: Pi|Claude Code|Codex|Droid Amp|OpenCode|Grok CLI|Hermes|Cursor|Antigravity|Kimi|Kiro|Copilot|Qoder CLI|MastraCode
さらに、ご自身で定義したエージェントも可能です。すべてのターミナルベースのエージェントはそのまま利用でき、より豊富な状態情報やセッション再開が実現します。
🏗 マーケットプレイス
herdr は**「構築された上で拡張されるプラットフォーム」**です。
- CLI とソケット API がプラグイン表面として提供されています。
- コミュニティにより通知器・レイアウトプリセット・リンクハンドラなどを動的に機能拡張できます。
- GitHub トピックなどを介して、他人が作った機能をブラウズしたり、自身のプラグインを公開することも可能です。
🎯 始め方:Herdr を開始する
- インストール: herdr をインストールします。
- 実行: 2 つのエージェントを実行します。
- デタッチ:一度ターミナルを離れます(
,Ctrl+A
など)。D
ターミナルが消えた後も herdr が動作し続ける最初の瞬間に、その価値が実感できるはずです。