rmux 0.4.3

A local terminal multiplexer with a tmux-style CLI, daemon runtime, Rust SDK, and ratatui integration.
.TH RMUX 1 "2026-06-03" "RMUX 0.4.1" "RMUX Manual"
.SH NAME
rmux \- tmux-compatible terminal multiplexer CLI
.SH SYNOPSIS
.B rmux
.RB [ -2CDhlNuVv ]
.RB [ -c " shell-command" ]
.RB [ -f " file" ]
.RB [ -L " socket-name" ]
.RB [ -S " socket-path" ]
.RB [ -T " features" ]
.RI [ command " [" flags ]]
.SH DESCRIPTION
RMUX is a cross-platform terminal multiplexer built around a local client and
server architecture. Unix builds use OS socket credentials; Windows builds use
same-user named pipes and ConPTY.
It preserves tmux-compatible command-line behavior while keeping RMUX product
labels in binary output, help text, and status text.
.SH TOP-LEVEL OPTIONS
.TP
.B -2
Accept the tmux-compatible 256-colour compatibility flag.
.TP
.B -C
Enter tmux text control mode.
.TP
.B -D
Run the hidden server in the foreground.
.TP
.B -h
Print the tmux-style top-level usage line to standard output and exit 0.
.TP
.B -l
Accept the tmux-compatible login-shell flag.
.TP
.B -N
Disable automatic server startup for commands that otherwise auto-start.
.TP
.B -u
Force UTF-8 mode for the client process.
.TP
.B -V
Print the RMUX package version and exit 0.
For build and support details, use
.B rmux diagnose --json
or
.BR rmux\ diagnose\ --human .
In short-option clusters,
.B -V
stops the
.B -h
scan, so
.B -Vh
prints the version.
.TP
.B -v
Accept the tmux-compatible verbose flag.
.TP
.BI "-c " shell-command
Start or connect to the rmux server, then execute the resolved shell with
.B "-c shell-command"
using the current terminal.
.TP
.BI "-f " file
Load the given configuration file.
.TP
.BI "-L " socket-name
Use the named socket below the rmux UID socket directory.
.TP
.BI "-S " socket-path
Use the given absolute socket path.
.TP
.BI "-T " features
Accept tmux-compatible terminal feature declarations.
.SH COMMAND HELP
Command help uses
.BR "rmux <command> --help" .
Short
.B -h
remains available for tmux command semantics such as
.BR "rmux split-window -h" .
.SH LIST-COMMANDS
.B list-commands
is client-local and does not contact the server.
With no arguments it prints one line per implemented command in tmux command
table order.
.PP
.B list-keys
can render the compiled default key table without a running server when no
runtime key-table mutations are available.
.SH IMPLEMENTED COMMAND SURFACE
The public CLI dispatches 91 commands:
.nf
attach-session (attach)
bind-key (bind)
break-pane (breakp)
capture-pane (capturep)
choose-buffer
choose-client
choose-tree
clear-history (clearhist)
clear-prompt-history (clearphist)
clock-mode
command-prompt
confirm-before (confirm)
copy-mode
customize-mode
delete-buffer (deleteb)
detach-client (detach)
display-menu (menu)
display-message (display)
display-popup (popup)
display-panes (displayp)
find-window (findw)
has-session (has)
if-shell (if)
join-pane (joinp)
kill-pane (killp)
kill-server
kill-session
kill-window (killw)
last-pane (lastp)
last-window (last)
link-window (linkw)
list-buffers (lsb)
list-clients (lsc)
list-commands (lscm)
list-keys (lsk)
list-panes (lsp)
list-sessions (ls)
list-windows (lsw)
load-buffer (loadb)
lock-client (lockc)
lock-server (lock)
lock-session (locks)
move-pane (movep)
move-window (movew)
new-session (new)
new-window (neww)
next-layout (nextl)
next-window (next)
paste-buffer (pasteb)
pipe-pane (pipep)
previous-layout (prevl)
previous-window (prev)
refresh-client (refresh)
rename-session (rename)
rename-window (renamew)
resize-pane (resizep)
resize-window (resizew)
respawn-pane (respawnp)
respawn-window (respawnw)
rotate-window (rotatew)
run-shell (run)
save-buffer (saveb)
select-layout (selectl)
select-pane (selectp)
select-window (selectw)
send-keys (send)
send-prefix
server-access
set-buffer (setb)
set-environment (setenv)
set-hook
set-option (set)
set-window-option (setw)
show-buffer (showb)
show-environment (showenv)
show-hooks
show-messages (showmsgs)
show-options (show)
show-prompt-history (showphist)
show-window-options (showw)
source-file (source)
split-window (splitw)
start-server (start)
suspend-client (suspendc)
swap-pane (swapp)
swap-window (swapw)
switch-client (switchc)
unbind-key (unbind)
unlink-window (unlinkw)
wait-for (wait)
web-share
.fi
.SH BUILT-IN COMMAND ALIASES
.TP
.B choose-session
Expands to
.BR "choose-tree -s" .
.TP
.B choose-window
Expands to
.BR "choose-tree -w" .
.SH NOTES
.B link-window
and
.B unlink-window
ship in the public CLI surface with tmux-style shared window links across
sessions, including linked-window format variables and hook context.
.PP
.B web-share
local mode opens
.B https://share.rmux.io/
against
.B ws://127.0.0.1:<port>/share .
The
.B -t
target may be a pane or a session name. Pane targets share one pane. Session
targets mirror the active window layout and can switch windows through the web
client.
By default both URLs are minted: a private operator URL and a spectator URL for
sharing. Pass
.B --operator-only
or
.B --spectator-only
to restrict the share to one role. Operator session shares can use rmux prefix
commands from the browser.
Treat the private operator URL as equivalent to a local attached rmux client:
an authenticated operator is trusted to control the targeted session.
It requires a browser that allows public-origin access to loopback
WS connections. Chromium-based browsers may block this under Local Network
Access; allow Local Network access for
.B share.rmux.io .
Pass
.B --tunnel-url
to use a bring-your-own public endpoint, pass
.B --tunnel-provider NAME
to spawn a configured tunnel preset, and pass
.B --frontend-url
to use a self-hosted frontend.
The out-of-band pairing code printed by
.B web-share
is required by default before a browser can authenticate. Pass
.B --no-pin
to disable it. Shares do not expire unless
.B --ttl
or
.B --expires-at
is supplied. Pass
.B --ttl SECONDS
or
.B --expires-at RFC3339
to set the share expiry. Expiry revokes the share and closes browser clients;
it does not stop the rmux daemon. Pass
.B --kill-session-on-expire
only on a session share when the target session should be destroyed at expiry.
Pass
.B --max-spectators COUNT
to cap concurrent spectators, and
.B --max-operators COUNT
to cap concurrent operators. Spectator caps require a spectator URL; operator
caps require an operator URL.
Pass
.B --no-navbar
or
.B --no-disclaimer
to generate a minimal spectator URL.
The live connected browser count is shown in the navbar by default. Pass
.B --hide-viewers
to hide it.
Use
.B web-share stop SHARE-ID
or
.B web-share disconnect SHARE-ID
to revoke one active browser share and close its clients. These commands do not
stop the rmux daemon or the web-share listener.
Pass
.B start-server --web-port PORT --frontend-url URL
to configure the local web listener and the default frontend URL; port 0 is
rejected.
In-app webviews are not guaranteed.