boo:基于 libghostty 的现代终端复用器,Zig 语言的新锐之作

📅 2026年06月17日 · 技术

文章封面

项目简介

boo 是知名开发工具公司 coder 推出的一款 GNU screen 风格终端复用器(terminal multiplexer),使用 Zig 语言编写,底层基于 libghostty(Ghostty 终端模拟器的 VT 核心)。项目口号是"Sessions that haunt your terminal"——让终端会话在断开后依然存活。

为什么值得关注

终端复用器赛道看似已经被 tmux 和 GNU screen 占据,但 boo 选择了一条差异化的技术路线。它没有从零实现终端模拟,而是直接复用 libghostty 的 VT 解析引擎。这意味着 boo 能够准确理解每一个 SGR 样式、光标位置、滚动区域和终端模式,在重新 attach 时真正做到"所见即所得"的还原。

传统 screen 的终端模拟器已数十年未更新,许多现代程序的输出在重绘时会被丢失或错乱。boo 从根本上解决了这个问题。

自动化原语

boo 的一大亮点是为脚本和 AI Agent 设计了原生自动化支持。核心原语包括:

这些原语让 boo 成为一个天然的沙盒环境,AI Agent 可以驱动交互式程序、读取输出、判断状态,完全不需要 PTY 支持。

安装与使用

一行命令即可安装:curl -fsSL https://raw.githubusercontent.com/coder/boo/main/install.sh | sh。基础操作包括 boo new 创建会话、boo attach 重新连接、boo ui 侧边栏管理界面。快捷键沿用 GNU screen 的 Ctrl-A 前缀体系,学习成本极低。

技术架构

boo 采用客户端-守护进程架构:客户端将 TTY 置于 raw 模式后通过 Unix socket 与会话守护进程通信;守护进程拥有 PTY 子进程的输出,并将其持续喂给 libghostty 的 TerminalStream。attach 时,守护进程直接从 libghostty 状态重建屏幕渲染;detach 期间,终端查询由 libghostty 自动应答,避免 TUI 程序因无人响应而挂起。

参考来源

🔧 在线开发者工具 — JSON格式化 · Base64 · UUID生成 · 正则测试 等80+免费工具
🔧 在线开发者工具 — JSON格式化 · Base64 · UUID生成 · 正则测试 等80+免费工具