● … MIT Rust Linux · macOS · Windows

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 — sessions
$ 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.

01 — MODEL

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.

02 — TMUX

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.

03 — BINDS

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.

04 — NAV

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.

05 — COPY

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.

06 — PICK

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.

07 — SAVE

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).

08 — MOUSE

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.

09 — LOOK

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.

tmxr — package managers
# 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