Show HN: RunKit – 基於瀏覽器的 tmux 管理器
RunKit 是一個遠端控制台,讓你可以透過瀏覽器管理 tmux 會話,包括監控 AI 編碼代理。它由生成器(run-kit riff)和儀表盤伺服器(run-kit serve)組成,與代理無關,無需資料庫,支援移動端和鍵盤快捷鍵。
RunKit 是 shll 工具包的一部分,旨在將 tmux 會話擴充套件到瀏覽器和手機。它本質上是一個遠端控制台,讓你可以在任何裝置上透過側邊欄即時檢視所有 tmux 會話和窗格,無需配置、無需資料庫,狀態直接從 tmux 讀取。在 2026 年,它的亮點在於你可以在這些窗格中同時執行多個 AI 編碼代理:透過 run-kit riff 命令,每個代理可以在獨立的 git 工作樹中啟動,而儀表盤則讓你像看艦隊一樣監控所有代理。但 RunKit 從不封裝代理——窗格只是窗格,可以執行構建、REPL、SSH 會話、htop 等任意命令。代理只是你執行的東西之一,而不是 RunKit 本身的核心。這一點很重要:當底層代理工具頻繁更新(每月一次)時,終端層保持穩定。
安裝與快速啟動
安裝非常簡單,只需執行 curl -fsSL https://shll.ai/install | sh,即可透過 Homebrew 安裝整個 shll 工具包,包括 RunKit 及其依賴(如 wt)。啟動也很直接:首先執行 run-kit agent-setup(可選,用於啟用代理狀態監控),然後 run-kit daemon start 啟動後臺守護程序,最後在瀏覽器中開啟 http://localhost:3000 即可看到儀表盤。之後,在任意 tmux 會話中執行 run-kit riff 即可生成一個帶有工作區的窗格。如果出現錯誤,run-kit doctor 可以列印各個依賴的狀態。升級時執行 run-kit update,它會拉取最新版本並重啟守護程序。
核心架構:run-kit riff 和 run-kit serve
RunKit 由兩個獨立但可組合的部分組成。run-kit riff 是生成器:一次呼叫即可建立一個 git 工作樹、一個 tmux 視窗以及一個或多個窗格。預設窗格執行編碼代理,但你可以透過 --skill 或 --cmd 指定其他命令。支援多種佈局(平鋪、水平、垂直等),並且可以透過 -N 並行生成多個工作區,失敗時會自動回滾。run-kit serve 是 HTTP 伺服器:它執行一個儀表盤,即時顯示所有 tmux 窗格。你可以單獨使用其中任意一個,也可以組合使用。
狀態指示 每個窗格在側邊欄和儀表盤中都帶有一個狀態點,透過顏色和形狀分別表示階段和健康狀態。顏色(色相)表示進度階段:灰色表示無變化,彩色表示從接單到執行、完成、釋出再到 PR 的旅程。形狀表示狀態:環形表示待定,實心圓表示活躍/就緒,虛線環加紅點表示失敗,方塊表示完成/合併,灰色環表示跳過/關閉。這種設計讓你一眼就能瞭解每個視窗的進度。
代理狀態監控
透過 run-kit agent-setup 可以啟用代理狀態報告。它會在 Claude Code 配置中安裝鉤子,在生命週期事件發生時在窗格中設定狀態(active、waiting、idle)。這些鉤子是輕量級的,邏輯在二進位制檔案中,因此鉤子修復會隨 brew upgrade run-kit 一起更新,無需修改配置或重啟會話。waiting 狀態特別有用:代理在等待你的輸入(如許可權提示),此時你會希望從手機上檢視。
看板功能 看板是一個命名的、跨伺服器的窗格儀表盤。你可以將任意 tmux 視窗固定到一個看板中,所有固定的窗格會並排顯示在水平滾動的佈局中。這非常適合同時監控多個並行代理會話。固定方式包括側邊欄的圖釘圖示、命令面板 (Cmd+K) 以及窗格頭部的取消固定按鈕。在看板內,可以透過快捷鍵(Cmd+] / Cmd+[)切換窗格焦點,在桌面上可以拖動調整大小,在移動端則顯示為滑動輪播。
RunKit 的設計哲學是“代理無關”,這意味著它不會繫結任何特定的 AI 代理,因此可以隨代理工具的發展而長期使用。它是一個強大的遠端終端管理工具,特別適合需要同時執行和管理大量 AI 代理的開發人員。