kylecarbs
Coder requires zero internet-access, many of our customers run entirely airgapped. We _currently_ create an HTTP tunnel for first-time users to their Coder instance for a smooth setup. This removes the need to expose their deployment for workspace infra (e.g. EC2 VMs) just to try it out.
We could communicate this more clearly in our UX, which I'll fix up!
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.
Show HN: Boo – Screen-style terminal multiplexer built on libghostty
Congrats to Jarred and the team!
Thank you for letting me know!
Ghostty has much better VT100 compatibility. It should have much better performance as well once we optimize.
`npx @ghostty-web/demo@next` starts an HTTP server on `localhost:8080`, so you could just wrap a basic Dockerfile with NPM installed (and maybe a variety of fun Linux tooling, ala vim).
Feel free to shoot me an email: [email protected]. I'll happily add it to the README.
We can easily make a browser shell that let's people run basic commands, but presumably most want to try `vim` and other commands they'd typically invoke.
Considering the native Ghostty does, I _think_ the answer would be yes? I might tinker around with this and let you know.
I'll swap it over to the new RenderState API and post some benchmarks!
Many kudos to y'all, we were shocked how simple it was to hack this together.
Currently you need the command-line to try it, which is an unfortunate UX.