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 代理的開發人員。