An in-terminal TUI app very similar to cssh or i2cssh, but with no dependency on the terminal app used.
The main reason this exists is because other approaches had issues:
- unmaintained
- dependent on a specific terminal app
- required X11
- (the biggest reason for me:) Panes did not guarantee matching geometry
This is just a quick implementation/proof-of-concept. It needs some cosmetic work still, but functionally it's only lacking a few things.
To use, create a configuration file ~/.sshmux.yaml to define appropriate defaults for your environment, and to define some clusters (or groups of hosts that you want to connect to). You can find the syntax described in DESIGN.md.
Then just make your terminal window large enough to contain all the panes you expect to need (one per host in your cluster) and run it:
sshmux clustername
It will try to be smart about choosing an appropriate layout, from a horizontal stack of windows, a vertical stack of windows, or a grid. You can change the layout method either in the config file or during the run by using the prefix key. (The default prefix key is ctrl-G). When you type the prefix key you'll get a one-line menu of options at the bottom of the window for the different commands.
Many other details can be found in the design document, DESIGN.md.
The initial code is nearly 100% generated and maintained by AI, written from scratch with OpenCode, unless or until external contributions occur - at which point who knows. Use at your own risk!
The code itself does not contain or use any LLM or any other AI capabilities.
Currently, the project is set up to build for Linux and MacOS. It is written in Go so you'll need Go (golang) installed (I use the homebrew install) as well as GNU Make.
To build for just the current platform that you're building on:
make build
To build for all currently supported platforms:
make cross
These will generate sshmux binaries in the bin/ directory. (Cross-compiled binaries will have a suffix describing where they'll run.)