The thesis
Terminal sessions should be organized, not accumulated.
You work across multiple projects. Each one needs its own terminal
session with the right working directory and the right tool running.
Tabs pile up. You cd around. You lose track. When you reboot,
everything is gone. muxr makes sessions declarative: where they live,
what tool runs in them, how they're grouped.
How it works
One config file declares your session topology. Verticals are local
directory trees. Remotes are SSH hosts. Each session knows its
working directory and default tool.
Verticals
Group sessions by directory tree. muxr work api opens a
session in ~/projects/work/api. The vertical name is the
prefix, the session name is the subdirectory.
Remotes
SSH hosts as first-class sessions. muxr remote lab opens
a session that connects to your configured host. Same TUI switcher,
same save/restore.
Save and restore
muxr save snapshots all active sessions. muxr restore
brings them all back after a reboot. No manual reconstruction.
Server isolation
Run separate tmux servers per context. Demo recordings, CI scripts,
and production sessions never interfere with each other.
MUXR_TMUX_SERVER=demo for isolation.
Pre-create hooks
Run commands when a session is created. rune sync on
session start ensures skills are current before the agent begins work.
Hooks are per-vertical.
TUI switcher
muxr switch opens a picker across all sessions, all
verticals, all remotes. One keybind in your tmux config. No more
hunting for the right tab.
Commands
muxr initcreate config
muxr <vertical> <name>open session
muxr switchTUI picker
muxr savesnapshot all sessions
muxr restorebring them all back
muxr lslist active sessions
muxr kill <session>close a session
muxr statustmux server health