tmux, everywhere,
Windows included.
A tmux-style terminal multiplexer that runs natively on Linux, macOS and Windows.
tmux's command language, key names and formats, so
split-window -h -c '#{pane_current_path}' means what it means
in tmux. Detachable sessions on a long-lived server, vim / hjkl navigation,
fuzzy pickers and session save / restore built in.
$ tmxr new -s work … prefix % to split, prefix c for a window, prefix d to detach $ tmxr ls work: 3 windows $ tmxr attach -t work $ tmxr split-window -h -c '#{pane_current_path}' $ tmxr resurrect-save … reboot … $ tmxr sessions restored, programs and directories included
why
Your tmux habits, on every machine you use.
Server and clients
A long-lived server owns every session, window, pane and program; clients attach from any terminal and detach without killing anything. The server starts on demand. openpty and Unix sockets on Linux and macOS; ConPTY and an owner-only named pipe on Windows.
tmux's language
Commands, flags, aliases and unambiguous prefixes (tmxr ls,
tmxr a), key names, #{formats} and targets, on
the command line, in binds and at the prefix : prompt.
tmxr list-commands lists them.
An opinionated tmux setup
vim-style pane selection, splits and windows in the current directory,
M-h / M-l through windows, synchronized panes,
tmux-sensible and tmux-yank binds plus tmux's own defaults.
prefix ? lists every bind with a note.
vim / hjkl navigation built in
C-h/j/k/l move between panes, or go to the program in front
when it is vim, hjkl or fzf — vim-tmux-navigator without the plugin. For
nvim,
tmxr-navigator.nvim ↗
hands the keys back at nvim's edge.
Copy mode, vi or emacs
tmux's vi and emacs copy tables, incremental search, counts, jumps, marks, brackets and paragraphs; copy to buffers, OSC 52 and the local clipboard, or pipe a selection to a command.
Fuzzy pickers
Sessions, windows and paste buffers through
hjkl-picker, with the highlighted session's pane previewed
below the list. Kill, rename or create a session from the picker.
Save and restore
tmux-resurrect built in: layouts, directories and allowlisted programs with their arguments, auto-saved, restored when the server starts, and saved when the system stops the server (SIGTERM / SIGHUP, Windows logoff).
Mouse keys, rebindable
Click to focus, drag borders, wheel into copy mode, drag or
double-click to copy, all as tmux's mouse keys
(MouseDown1Pane, WheelUpPane, …) you can
rebind or unbind.
Tokyo Night status line
The catppuccin layout in Tokyo Night colours, built from tmux formats you
can restyle. Inline images pass through to the outer terminal (tmux's
allow-passthrough), on Windows too.
commands
The tmux you already type.
| tmxr | new session, or attach to restored ones |
| tmxr new -s <name> | a named session |
| tmxr attach -t <name> | attach; prefix d detaches |
| tmxr ls | list sessions |
| tmxr -L <label> | a separate server with its own sessions and saves |
| tmxr <command> |
any tmux command, from a pane too ($TMXR names its
server)
|
| tmxr list-commands | every command and its flags |
| tmxr kill-server | end the server, saving the sessions first |
Settings and binds live in ~/.config/tmxr/config.toml on every
OS, layered over the defaults; binds are tmux command strings, keys tmux's
names or hjkl's.
install
Every channel drops a tmxr on your $PATH.
The tmxr name on crates.io belongs to another project, so the
crate is tmxr-cli; it installs the tmxr binary.
The Windows release and Scoop package carry Microsoft's ConPTY beside
tmxr.exe, which inline images need there.
# Arch (AUR) $ paru -S tmxr-bin # macOS (Homebrew tap) $ brew install kryptic-sh/tap/tmxr # Windows (Scoop) $ scoop bucket add kryptic-sh https://github.com/kryptic-sh/scoop-bucket $ scoop install tmxr # any platform (crates.io) $ cargo install tmxr-cli # Debian/Ubuntu, Fedora, Alpine: .deb / .rpm / .apk on the release page