hrdx Terminal Multiplexer

hrdx は AI エージェントに最適化されたターミナルマルチプレクサです

hrdx は、Go で書かれた実験的かつ最小限のターミナルマルチプレクサであり、開発者が複数の AI コーディングエージェント(Claude Code、Codex CLI、pi、zot など)と標準的なシェルを並行して実行できるようにします。プロジェクトをサイドバーのワークスペースとして整理し、異なるディレクトリにまたがる様々なエージェントを監視・操作するための集約された環境を提供します。

コアアーキテクチャ:本物のターミナルと永続性

ターミナルラッパーとは異なり、hrdx はすべてのペインに対してフルターミナルエミュレータを備えた本物の PTY (pseudoterminal) セッションを利用します。これにより、エージェントの TUI (Text User Interface) が、ストリーミング、スラッシュコマンド、マウスサポートを含む完全な機能を維持できることが保証されます。ツールは HRDX=1 環境変数を通じて、hrdx 内で実行されていることを検出できます。

セッションの永続性

hrdx は、TUI が閉じられた後でもペインのプロセスを生存させ続ける軽量なセッションホルダープロセスを採用しています。再起動時には、hrdx はこれらのセッションに再アタッチし、実行中のコマンド、スクロールバック、および画面レイアウト(ワークスペース、タブ、分割比率を含む)の正確な状態を復元します。

ワークスペースとエージェントの管理

視覚的な整理

インターフェースには、ワークスペース、Git ブランチ、およびペインの階層を表示するサイドバーがあります。混乱を最小限に抑えるため、タブ行はワークスペースに複数のタブが含まれる場合にのみ追加されます。

エージェントのステータス追跡

すべてのペインには、エージェントのアクティビティを追跡するためのステータスインジケーターが含まれています:

  • Working: エージェントはアニメーション化された点字スピナーを表示します。
  • Finished (Unfocused): フォーカスされていないエージェントは、タスク完了時にオレンジ色に変わります。
  • Acknowledged: ペインにフォーカスを当てると、インジケーターは緑色に戻ります。

カスタムエージェントの統合

ユーザーは harness.json ファイルを介して、任意のエージェント CLI をカスタムハーネスとして登録できます。これにより、サードパーティ製のエージェント(Aider や Goose など)を hrdx エコシステムに統合でき、ピッカーやサイドバーに表示させ、カスタムのビジー検出文字列を使用してステータススピナーを駆動させることが可能になります。

拡張性と制御

自動化のための Socket API

hrdx は、Unix ソケットを介した JSON Socket API を提供しており、外部スクリプト、エディタ、または他の AI エージェントがセッションを操作できるようにします。サポートされているメソッドは以下の通りです:

  • workspace.create: ディレクトリをワークスペースとして開く。
  • pane.create: 特定のワークスペースにペインを追加する。
  • pane.send_text: ペインにテキストを入力する。
  • pane.read: 表示されている画面をプレーンテキストとして取得する。
  • pane.wait: エージェントがアイドル状態またはビジー状態になるまで待機する。

リモートおよびコンテナ化されたワークフロー

すべてのペインは本物の PTY であるため、hrdx はリモートホスト、Docker コンテナ、および Kubernetes ワークロードをサポートします。ユーザーは ssh -tt user@host 'cd /path/to/project && exec codex' のようなコマンドを使用して、リモートターゲット上でエージェントを直接起動できます。これらは、ネイティブの hrdx ピッカーに表示されるようにカスタムハーネスとして登録できます。

設定とカスタマイズ

  • Keybindings: プレフィックスキー(デフォルトは ctrl+b)は、keys.json を介して再マップ可能です。
  • Themes: 視覚的スタイルは、ANSI 256 色または 16 進数コードを上書きする JSON テーマファイルを使用してカスタマイズできます。
  • Notifications: ユーザーは、エージェントがターンを終了したときに通知するためのシステム通知またはカスタムオーディオファイルを設定できます。

コミュニティの視点

一部のユーザーは、その応答性と、ターミナルベースの開発ワークフローへの回帰を促す可能性を称賛していますが、一方で tmux のような既存のツールと比較してその有用性に疑問を呈するユーザーもいます。あるユーザーは次のように述べています:

"I hate to be that guy, but why would I use this over tmux? All of the features and qualities noted in the readme do not feel novel or unique."

しかし、hrdx は、エージェントのステータス監視のための特ライ化された UI と、エージェント駆動の自動化のために特別に設計されたプログラム可能な Socket API を提供することで、tmux と差別化を図っています。

Sources

関連

  • プロジェクト
  • プロジェクト
  • Dispatch
  • プロジェクト
  • プロジェクト