Show HN: Boo – screen-style terminal multiplexer built on libghostty Coder has released Boo, a GNU Screen-style terminal multiplexer built on libghostty that parses every session's output through Ghostty's terminal emulation core to maintain exact screen state. The tool enables sessions to survive disconnects, provides a full-screen session manager, and offers agent-friendly automation primitives including send, peek, wait, and JSON output that work without a TTY. A GNU screen style terminal multiplexer built on libghostty https://github.com/ghostty-org/ghostty libghostty-vt , written in Zig. Every session's output is parsed through Ghostty's terminal emulation core, so boo always knows the exact screen state of every session: contents, styles, cursor, scrollback, and terminal modes. That state is used to rehydrate your terminal on attach, to answer terminal queries for detached sessions, and to let scripts and AI agents read the screen exactly as a human would see it. - Sessions that survive disconnects: detach with Ctrl-A d , reattach with boo attach . - A full-screen session manager: boo ui lists sessions in a sidebar. - Faithful redraws from libghostty terminal state, including SGR styles, cursor position, scrolling regions, window title, and terminal modes. - Agent-friendly automation primitives: send , peek , wait , and --json output, all usable without a TTY. demo.mp4 For Linux and macOS: curl -fsSL https://raw.githubusercontent.com/coder/boo/main/install.sh | sh Pre-built binaries are published on the releases page https://github.com/coder/boo/releases . Set BOO VERSION to pin a release and BOO INSTALL DIR to change the install location default: /usr/local/bin when writable, otherwise ~/.local/bin . boo new new session running $SHELL, attached boo new work named session boo new work -d -- make create detached, running a command boo ui manage sessions in a full-screen UI alias: i boo ls list sessions boo attach work reattach alias: at, a boo rename work api rename a session boo kill work end a session boo kill --all end every session With no name, boo new names the session after the current directory, falling back to the process id when that name is taken or unusable. Run boo help for the full overview, boo help