大家好,我是何三,独立开发者

你用过 tmux 或者 GNU screen 吗?就是那种能在服务器上挂着 session,断网了再连回去继续干的玩意儿。

但现在有个叫 Boo 的项目,把这个概念玩出了新花样。

Session detach 之后还能回查、还能等输出、还能回答问题——像个幽灵一样一直活着。

这玩意儿是 Coder 团队(就是做 code-server 那个团队)用 Zig 写的,371 Star,才 4 天前刚发布。基于 Ghostty 的 VT 引擎(对,就是那个 GPU 加速的 Zig 终端模拟器),目标很简单:做 GNU screen 的现代替代品。

一个上古神器的"临终关怀"

用过 screen 的人都知道,这玩意儿设计理念在当时绝对是超前的——在服务器上开一个 session 跑任务,就算你电脑关机了,session 还在后台跑着。

问题出在哪?

screen 内置的终端模拟器,是几十年前的东西了。 现代程序输出各种花里胡哨的控制序列(颜色、样式、光标移动、滚动区域),screen 的复古模拟器根本认不全。

结果就是:session 重连的时候,屏幕内容各种乱掉、丢字、样式不对。

说白了,你辛辛苦苦跑了一天的任务,想回来看看结果,结果 screen 给你返回一坨乱码——想骂人的心情都有。

Boo 的做法是把 screen 那个老旧的终端模拟器换成了 Ghostty 的 VT 核心(libghostty-vt)。Ghostty 是什么?一个近期爆火的 Zig 终端模拟器,对现代控制序列的兼容性做得极其到位。

所以 Boo 的 session 重连是"忠实重绘"——你看到的就是该看到的,不会丢东西。

那就只是"更准确的 screen"?

不止。

Boo 的真正亮点,是让 session detach 之后还能"活着"。

怎么理解?

传统复用器里,detach 就是 detach——session 还在后台跑,但你没法跟它交互了。想看输出?得 attach 回去。想发命令?得 attach 回去。

但 Boo 不一样。

它提供了三个原语:sendpeekwait

boo new build -d -- bash               # 创建后台 session
boo send build --text 'make' --enter   # 发送命令
boo wait build --idle                  # 等输出稳定
boo peek build --scrollback            # 读取屏幕内容
boo kill build                         # 清理

看明白了吗?你可以在不 attach 的情况下,给 session 发命令、等它执行、读它的输出。

而且读输出不是读原始字节流——Boo 用 Ghostty 的 VT 引擎重新渲染了屏幕状态,所以读到的是"经过渲染的屏幕内容"。

boo peek build --scrollback --json

加上 --json,还能拿到光标位置、窗口标题、屏幕尺寸这些信息。

它在把终端 session 变成一个 API。

boo自动化

说起来,Zig 这个语言这两年是真的猛。从 Ghostty(终端模拟器)到 TigerBeetle(金融数据库)到 Bun(JS 运行时)到现在 Boo——每个项目都很有想法。一个字面意义上"越老越香"的语言生态居然在 2026 年开始爆发了。

扯远了。

对 AI Agent 开发者来说,这才是最骚的部分

以前 AI Agent 想操控交互式程序(比如 ssh 上去改配置、进数据库执行命令、跑 make 编译),最痛苦的是什么?缺乏一个标准化的"操控接口"

你让 Agent 跑一段脚本?可以。但脚本跑的是批处理,遇到错误提示、确认框、交互式输入就傻了。

你让 Agent 用 expect?可以,但 expect 的语法让人类都觉得反人类,更别提 Agent 了。

你让 Agent 开一个 tmux session 然后发按键?可以,但怎么读输出?怎么知道命令执行完了?怎么判断意外情况?

大部分方案只能靠 sleep 5 轮询——每次等待固定时间,效率低不说,还不稳定。

Boo 的做法:

boo wait build --text 'Build complete' --timeout 30s

等输出中出现"Build complete",或者超时 30 秒。不再需要 sleep 轮询。

boo wait build --idle --timeout 2m

等输出安静 2 秒,说明命令执行完了。真正的"等到结束",不是"等 5 秒赌它结束"。

而且所有命令都可以不带 TTY 执行——也就是说,AI Agent 不需要模拟终端,直接发指令就行。

boo ls --json
boo peek build --json

JSON 输出,Agent 直接解析。

这个设计,怎么说呢,就是……就是那种"明显是为了 Agent 时代设计的,但假装自己只是一个普通的终端复用器"的感觉。

上手体验

安装只需要一行命令:

curl -fsSL https://raw.githubusercontent.com/coder/boo/main/install.sh | sh

或者直接去 release 页面下载二进制。

基本用法跟 GNU screen 几乎一致:

boo new                   # 创建新 session
boo new work              # 命名 session
boo new work -d -- make   # 后台创建 session,跑 make
boo ui                    # 全屏管理器(类似 screen 的 C-a ")
boo ls                    # 列出 session
boo attach work           # 重连 session
boo kill work             # 干掉 session

快捷键默认跟 GNU screen 一样:Ctrl-a d detach,Ctrl-a l 重绘。

如果你用过 screen,几乎 0 学习成本。

觉得 Zig 有意思?Boo 用的 libghostty 本身就是 Zig 生态的代表作。如果你对这类工具感兴趣,我此前还整理过《2026 年 GitHub 高性能神器排行榜》,关注后回复「工具」获取。

GitHub 地址

项目地址:https://github.com/coder/boo

371 Star,4 天前发布,MIT 协议。目前还在早期阶段,不支持多窗口(一个 session 一个窗口)、不支持 -x 共享、不支持自定义快捷键。但核心功能已经跑得很稳了。

说实话,这项目现在还不够成熟到能替代你的日常 tmux 配置。

但它的设计方向,我觉得是对的——终端复用器不应该只是"给你挂几个 session",它应该是 AI Agent 和人类共同操控终端的桥梁。

等它把多窗口和快捷键自定义补上,我可能会真的切过去试试。

本文使用 MGO 编辑并发布

关注"何三笔记",回复"mgo" 免费下载使用