hrdx Terminal Multiplexer
hrdx 是一款針對 AI agent 優化的終端機多工處理器
hrdx 是一款使用 Go 語言編寫的實驗性、極簡化終端機多工處理器,允許開發者並排運行多個 AI 編碼 agent(例如 Claude Code、Codex CLI、pi 和 zot)以及標準 shell。它將專案組織為側邊欄中的工作區,提供一個集中化的環境來監控並與不同目錄下的各種 agent 進行互動。
核心架構:真實終端機與持久性
與終端機封裝工具不同,hrdx 為每個面板(pane)使用真實的 PTY(偽終端)會話,並配備完整的終端機模擬器。這確保了 Agent TUI(文字使用者介面)能保持完整功能,包括串流、斜線指令(slash commands)以及滑鼠支援。工具可以透過 HRDX=1 環境變數來偵測自己是否正在 hrdx 中運行。
會話持久性
hrdx 使用輕量級的會話持有者進程(session holder process),即使在 TUI 關閉後仍能保持面板進程處於活動狀態。重新啟動時,hrdx 會重新連接到這些會話,恢復執行中指令的確切狀態、捲動回溯(scrollback)以及螢幕佈局(包括工作區、分頁與分割比例)。
工作區與 Agent 管理
視覺化組織
介面包含一個側邊欄,顯示工作區、Git 分支與面板的層級結構。為了減少雜亂,只有在工作區包含多個分頁時才會加入分頁列。
Agent 狀態追蹤
每個面板都包含一個狀態指示器來追蹤 agent 的活動:
- Working: Agent 會顯示動畫化的點字旋轉器(braille spinners)。
- Finished (Unfocused): 當一個未聚焦的 agent 完成任務時,會變為橘色。
- Acknowledged: 聚焦該面板後,指示器會恢復為綠色。
自定義 Agent 整合
使用者可以透過 harness.json 檔案將任何 agent CLI 註冊為自定義 harness。這讓第三方 agent(例如 Aider 或 Goose)能夠整合進 hrdx 生態系統,使其能出現在選擇器與側邊欄中,並透過自定義的忙碌偵測字串來驅動狀態旋轉器。
可擴展性與控制
用於自動化的 Socket API
hrdx 提供一個 JSON socket API(透過 Unix socket),允許外部腳本、編輯器或其他 AI agent 來驅動會話。支援的指令包括:
workspace.create: 開啟一個目錄作為工作區。pane.create: 在特定工作區中新增一個面板。pane.send_text: 在面板中輸入文字。pane.read: 取得可見螢幕的純文字內容。pane.wait: 阻塞直到 agent 進入閒置或忙碌狀態。
遠端與容器化工作流
因為每個面板都是真實的 PTY,hrdx 支援遠端主機、Docker 容器以及 Kubernetes 工作負載。使用者可以透過類似 ssh -tt user@host 'cd /path/to/project && exec codex' 的指令,直接在遠端目標上啟動 agent。這些可以被註冊為自定義 harness,使其出現在原生的 hrdx 選擇器中。
設定與自定義
- Keybindings: 前綴鍵(預設為
ctrl+b)可以透過keys.json進行重新映射。 - Themes: 視覺風格可以透過 JSON 主題檔案來自定義,藉以覆寫 ANSI 256 色或十六進位碼。
- Notifications: 使用者可以設定系統通知或自定義音效檔案,以便在 agent 完成一輪操作時提醒自己。
社群觀點
雖然有些使用者稱讚該工具的響應速度,以及它將開發者帶回終端機開發工作流的潛力,但也有人對其與 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 與 tmux 的不同之處在於它提供了專門用於 agent 狀態監控的 UI,以及專門為 agent 驅動的自動化而設計的可程式化 socket API。
Sources
相關
- 專案
- 專案
- Dispatch
- 專案
- 專案