Comment by kylecarbs

4 days ago

Fair. Adding a section for this now.

screen actually works the same way architecturally: it parses all output through its own built-in terminal emulator and redraws from that state on reattach. But that emulator is decades old and lags far behind what modern programs emit. Whatever it doesn't understand gets dropped or mangled on redraw. boo swaps that layer for libghostty-vt, Ghostty's VT core, so the saved state matches what your terminal would actually display, and terminal queries get answered while detached so TUIs don't hang unattended.

tmux is great, it was just never the model I wanted. I really liked screen's simplicity, sessions and a prefix key and nothing else to learn, and boo keeps exactly that.

can you share more on the tmux model vs boo?

  • Tmux is n clients to 1 server.

    Screen is 1 server to 1 client.

    In screen each client session is a fork of the screen server. In tmux there's one server and many client forks iirc.

  • I want boo to be a screen replacement, not a tmux replacement. tmux gives you a whole workspace: layout, scrollback, copy mode, a status bar. screen's appeal was that it did almost none of that: sessions, a prefix key, done. boo keeps that model and swaps the emulation for libghostty so reattach actually redraws correctly.

    They also compose: a boo session is just a PTY running a program, so you can run tmux inside one if you want.