给多个 Agent CLI 做了个 tmux 小面板,专门确认agent请求

9 阅读2分钟

最近顺手写了个小工具,叫 agent-tmux-hub

场景很简单:tmux 里同时跑 Copilot、Claude Code、Codex 这类 Agent CLI 时,有的 pane 还在跑,有的已经停下来等确认。得一个个切过去看,才能知道哪里在等回车。

单个 Agent 还好。多个一起跑,来回切 pane 就开始烦了。

所以补了个很轻的小面板,把多个 tmux pane 的状态收进一个地方。哪些在 waiting,哪些在 running,哪些只是 idle,一眼能看出来。

agent-tmux-hub 截图

它现在主要做几件事:

  • 扫描 tmux 里正在跑的 Agent pane
  • 识别哪些 pane 在等待确认
  • 抓最近一段输出
  • 给一个很粗的风险分类
  • 支持跳回原 pane,或者直接发 Entery + Enter

现在先认三种 CLI:

  • Copilot CLI
  • Claude Code
  • Codex

waiting 的判断也很直接,就是扫最近输出,匹配几种常见提示:

  • y/N
  • Press Enter
  • Allow ...
  • Continue?
  • 1. Yes / 2. No 这类菜单确认

命中这些模式,就标成 waiting。输出还在变化,就标成 running。没变化,就当 idle

另外顺手加了个很粗的风险提示。比如 allow tool 算低风险,allow directory access 算中风险,git pushrm -rfterraform destroy 这类命令确认会提到高风险。

面板里会展示:

  • status
  • provider
  • pane 位置
  • 当前路径
  • 建议动作
  • 最近一段输出

也留了几个最常用的操作:

  • a:批准当前项
  • A:批准全部 waiting
  • l:只批准 low-risk waiting
  • o:跳回原 pane
  • e / y / d:手动发 Enter / y / n

如果有 waiting 项,tmux window 名字会变成 agent-tmux-hub[2],远远看一眼就知道有没有东西堵在那里。

现在这东西还很玩具:provider 识别是猜的,waiting 检测靠正则,风险分类也很粗。

项目地址:

github.com/zero-click/…

如果你也在 tmux 里同时跑多个 Agent CLI,也许能用上,或者拿去改改。