AI News HubLIVE
站内改写2 分钟阅读

Show HN: RunKit – 基于浏览器的 tmux 管理器

RunKit 是一个远程控制台,让你可以通过浏览器管理 tmux 会话,包括监控 AI 编码代理。它由生成器(run-kit riff)和仪表盘服务器(run-kit serve)组成,与代理无关,无需数据库,支持移动端和键盘快捷键。

来源Hacker News AI作者: sahil87

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 代理的开发人员。