https://github.com/neurosnap/zmx
I wrote previously about removing tmux from my dev stack in my post you might not need tmux. In it I argue that tmux acts as a drag on the terminal enthusiast ecosystem, has some edge cases that are annoying to deal with, and is a monolithic tool.
Well, after using shpool for a couple of months, there were enough issues with it that I decided to try and build my own session persistence tool. I knew that libghostty was coming and that I could potentially integrate with it. So after reading that post I decided it was time to create my first project in Zig.
After a couple of months of R&D I finally reached a place with this project where I'm using it as a full-time replacement for what I would normally use tmux for: session persistence of terminal processes.
This essentially extracts the attach/detach functionality from tmux and turns it into its own tool. Instead of using tmux for windows, tabs, and splits, you would instead leverage your own window manager to handle that.
Another neat aspect of this tool is terminal state and history restoration using libghostty-vt. We use libghostty-vt to restore the previous state of the terminal when a client re-attaches to a session.
It is the first project that adheres to the smol contract and overall I'm really excited about this project. It's sitting at around 1k LoC and uses a fantastic terminal emulator underneath it. It's fast, ergonomic, and has protection against one terminal session crashing the rest of them because we employ a daemon-per-session architecture.
The repo readme has all the details so I'm not going to copy/paste them in this post. I just wanted to make a formal announcement on my blog and hope you all give it a try.