u/Dangerous_Net_7223

▲ 14 r/tmux

I ported tmux to windows, added async, and a public sdk

tmux is awesome but parsed stdout with grep was a nightmare. I added Multiplatform, playwright capabilities, allowing novel ways of use cases. I called it rmux. All 90 commands of tmux are there.
This is a fresh public preview, please let me know what you think about it 😄

https://github.com/Helvesec/rmux

u/Dangerous_Net_7223 — 17 hours ago
▲ 293 r/rust

RMUX: native terminal multiplexer in Rust (Linux/macOS/Windows) with a programmable SDK

I've spent the last few months building RMUX, a terminal multiplexer written from scratch in Rust.

What it is

A tmux-compatible multiplexer with about 90 command snapshots covered in the docs, plus a second surface: a typed async Rust SDK talking to the same local daemon. Many tmux-style workflows, keybindings, and scripts should feel familiar, but RMUX also exposes structured automation primitives instead of only terminal text scraping.

Architecture

  • One local daemon and one wire protocol behind the public surfaces: a tmux-style CLI, a typed SDK, and a ratatui integration crate.
  • Native PTY/runtime handling per platform: Unix PTYs + Unix domain sockets on Linux/macOS, real ConPTY + Named Pipes on Windows. No WSL required. Getting ConPTY to behave was one of the hardest parts. And Tokio for async ofc
  • The SDK exposes typed handles for `Session` / `Window` / `Pane`, with stable pane IDs, structured snapshots, output streams, and locator-style waits.

Example:

pane.get_by_text("Ready").wait_for().await?;
pane.keyboard().type_text("hello").await?;
pane.wait_for_load_state(TerminalLoadState::Quiet).await?;
pane.expect_visible_text().to_contain("hello").await?;

The public SDK/protocol/render crates use `#![forbid(unsafe_code)]`; unsafe code is isolated in the low-level platform crates that need OS/PTY/IPC FFI.

Why I built it

I've been using tmux for a long time and grew tired of having to do grep every now and since. I then thought that adding playwright capabilities and rewriting everything in Rust would be a game changer. I hope you will like it :) You can do so much: ci, agents orchestration, testing TUIs, building custom dashboards... and it includes natively ratatui.

Repo: https://github.com/Helvesec/rmux

Docs + demos: https://rmux.io

Install: cargo install rmux --locked

 It's a v0.2 preview. Very open to feedback on the architecture, the async API design, or how I'm handling ConPTY. Happy to answer anything.

u/Dangerous_Net_7223 — 1 day ago