Claude directs Codex, Gemini, and Grok through rmux.
View source on GitHubThe multiplexer engine forAgents.
RMUX keeps your shell alive, scriptable, and fully inspectable. Drop it in as a blazing-fast, tmux-compatible multiplexer, or use it as an engine for terminal-native automation with persistent sessions, snapshots, and typed orchestration. 100% Rust.
Natively available on Windows , macOS , and Linux .
DEMOS
Explore the demos
See RMUX in action through concrete terminal automation workflows.
Usable like tmux, automated like Playwright.
rmux new-session -d -s ci
rmux send-keys -t ci "printf 'test result: ok\n'; rmux wait-for -S ci-done" Enter
rmux wait-for ci-done
rmux capture-pane -p -t ci
let rmux = Rmux::builder().connect_or_start().await?;
let session = rmux
.ensure_session(
EnsureSession::try_named("ci")?
.create_or_reuse()
.detached(true),
)
.await?;
let pane = session.pane(0, 0);
pane.send_text("printf 'test result: ok\n'\n").await?;
pane.wait_for_text("test result: ok").await?;
let snapshot = pane.snapshot().await?;
One binary. Three platforms.
Install a prebuilt binary from rmux.io, or use Cargo from crates.io. GitHub release binaries include SHA256 checksums.
curl -fsSL https://rmux.io/install.sh | shirm https://rmux.io/install.ps1 | iexcargo install rmux --lockedSwitch to RMUX with ONE letter.
Same 90 commands. Aiming for same behaviour, same look.
RMUX
tmux
Persistent sessions, detach & reattach
Yes
Yes
Native Linux, macOS & Windows
All three
Unix only
Typed SDK (Rust handles, async)
Yes
No
Language
Rust
C
Terminal-native locators and structured snapshots
Yes
Plain text only
Streamed output & line events
Yes
No
tmux key bindings & muscle memory
Compatible
Native
When the keyboard is the user, tmux still fits. When code is the user, RMUX takes over.