Show HN: Rmux – A programmable terminal multiplexer with a Playwright-style SDK

https://github.com/helvesec/rmux
Author here. RMUX started from a frustration: I've used tmux for years and got tired of scraping output with grep and sleeps to automate anything. So I rebuilt the multiplexer from scratch in Rust, with a programmable layer on top.

Two surfaces: a tmux-compatible CLI (~90 commands, your keybindings just work), and a typed async Rust SDK on the same daemon — stable pane IDs, structured snapshots, locator-style waits. The idea is Playwright-style automation, but for terminals.

Native on Linux, macOS, Windows (real ConPTY, no WSL).

Demos and docs at rmux.io. Happy to answer questions about the daemon protocol, ConPTY, or the SDK design.

Comments

pamaMay 21, 2026, 11:42 AM
Congrats on the launch. If emacs was unavailable and I needed tmux, I would try it. I am old school, and use emacs daemons for all shell multiplexing. The agents dont need explanations and know how to use emacsclient to create, read, or send inputs to named buffers that run the shells. Elisp is powerful, so manipulating windows is a breeze. Lots of people on tmux would benefit from this design though.
deangibersonMay 23, 2026, 1:09 AM
Funny, I started vibing this (https://github.com/deangiberson/emacs-mux) yesterday on the train after playing with cmux for the day and thinking to myself there was nothing that emacs couldn't accomplish.

The repo doesn't quite work yet. Many sharp corners. But the basic idea is there.

pama, I'd be interested in hearing more about how you are using emacs for multiplexing. I'm trying to build up tooling for myself based around file and input workflows and I /really/ don't want to write a text editor and would prefer to stick with emacs.

pamaMay 24, 2026, 2:36 AM
The key idea is to have many differently named shells. Typically, I group them by project (common prefix name), and the projects live in directories. I have some hacks to organize ibuffer, to split frames, to reflow buffers in the existing windows (eg to organize related project buffers (shells, magit, dired), or to show shells from multiple projects, or selected buffers, and so on). Emacs’ natural frame splitting and buffer selecting/switching commands are good enough if you dont display more than four buffers at a time, but soon you may need to show 5, 6, 8, 9, 10, 12, 15, 16, 18, 20, 24 or have funky arrangements, so you may collect functions to help along splitting n*m grids or keeping useful splits. The shells work very organically inside Emacs and you can still use it as a text editor. The so-called “dumb terminal” in M-x shell is a thing of beauty as it really is just a text buffer like any other; I think of it as a bash repl. If you are used to curses TUI commands it may not work, so for these rare occasions I also use eat (but tend to avoid). See also answer to a sibling comment.
evanjrowleyMay 21, 2026, 3:55 PM
Are there any guides on accomplishing this with Emacs? Perhaps something that might be useful for someone coming from Tmux?
pamaMay 21, 2026, 8:13 PM
Not sure, tbh. I use emacs -daemon to start a server; emacsclient -nw to connect. I use ssh and start a server on the remote. I spawn multiple shells with infinte buffer size and dumb terminals (M-x shell) so I can seamlessly edit. (These are based on comint, a neat command interpreter.) I use my own hacks for named shells (https://github.com/pjj/Emacs-nsh) and for rearranging/splitting windows, but any of the latest powerful LLMs can help with ergonomic modifications to M-x shell or the various improved terminal emulators (vterm, eat, ansi-term) or with renaming and moving/splitting windows. The Emacs manual is excellent but long; worth it IMHO, but focus on things you use. The tutorial is quick; worth it. I avoid curses programs (fancy TUI) or write wrappers around some of them. I love the -p option in codex/claude/copilot.
sroerickMay 21, 2026, 1:29 PM
I didn't know you could do this with Emacs
scottyeagerMay 21, 2026, 2:30 PM
It's just too bad Emacs doesn't also include a decent text editor, right?
smaudetMay 21, 2026, 7:22 PM
Eh? Not sure what you mean by that...
theshrike79May 21, 2026, 9:52 PM
An ancient joke:

"Emacs is a nice programming language but the editor sucks"

SirentalMay 21, 2026, 9:42 AM
The website is a little too obviously made by Claude. The first thing I noticed is the classic "pill with pulsing green dot that says something is active or live" claudism.
shideneyuMay 21, 2026, 9:56 AM
The video of the front page is assisted by AI, I am not a vfx artist; please check rmux code architecture instead, I put a lot of efforts on it
saghmMay 21, 2026, 1:38 PM
FWIW, I did suspect AI was probably used when looking through the README, but it also didn't really impact my opinion much because the value proposition of "I can use a Rust library to control this through the same primitives the tool itself uses instead of writing a bunch of shell scripts" far outweighs that. I haven't had a chance to try it out yet but plan to later today, and ultimately the experience I have is going to matter a lot more to me than what tools you used to generate the README visuals.

I've tried out plenty of things that seemed promising but turned out to have sloppy implementations before the LLM days, and I've also used some things that are ostensibly vibe-coded but had shockingly high quality of UX compared to the alternatives because the creators put in time and effort into polish beyond what people who make software the "traditional" way tend to, so to me, the important signal is what level of care went into the creation of the software. I'm hoping that this project turns out to be one of the good ones, and if it is, the people who dismiss it because of vibes (pun intended) will be the ones missing out.

powvansMay 21, 2026, 1:19 PM
For what it's worth I genuinely loved your landing page. I casually clicked through and got an immediate unexpected chuckle at the giant animated crab.

It's obviously AI assisted but I interpreted it as a nod to itself on that and really appreciated it.

shideneyuMay 21, 2026, 1:57 PM
Thank you ! I am proud of my little blue crab haha. I got it thanks to a lot of iteration between gpt image 2.0 and see dance 2
vunderbaMay 21, 2026, 4:11 PM
I wouldn't worry too much about it. I think the big AI standout (not your fault) is the classic GenAI lightning that behaves more like a weird viscous liquid. Another one I see a lot is the number of avian creatures flapping their wings with all the subtlety and grace of an ornithopter going in reverse.

Feedback

Your site needs some work on the responsiveness. At around 1200 pixels width on my browser, half of the video just gets cut off. It just doesn't scale correctly.

ookblahMay 21, 2026, 11:13 AM
"site made by ai" is the new "bootstrap template" criticism that honestly gets tiring after a while. just read the content.
herrjMay 21, 2026, 4:05 PM
If there’s anything I don’t mind being done with AI, it’s a product landing page. There are only so many ways to creatively design one, so who cares how it was made?
shideneyuMay 21, 2026, 3:01 PM
And the site is actually quite cool I believe , I put a lot of efforts in the design.
redroveMay 21, 2026, 9:43 AM
I’m genuinely interested in what you find to be the problem with that?

It’s a landing page.

xienzeMay 21, 2026, 4:13 PM
The usual answer is some handwavy nonsense about "well if you were too lazy to write the text, why should I read it?" said by the same people too lazy to write the code...
cultofmetatronMay 21, 2026, 10:32 AM
commonlisp (sbcl) is one of the best sleeper techs out there. one of those if you're in the know type industry secrets. part of it is because their website looks like something out of the 90's. clearly having a nice website and some level of marketing is necessary to get adoption. Im more than happy to see devs use AI to automate that so they have more time to focus on their creations.
alcasaMay 21, 2026, 11:08 AM
Isn't lisp getting advertisement every couple months here or so. After so many decades I don't believe the reason lisp doesn't have traction is just marketing.
saghmMay 21, 2026, 1:41 PM
Given that Hacker News somewhat famously was written in lisp, "an advertisement every couple of months here" probably translates to an order of magnitude less in places that have a lower density of long-time lisp fans from the early days.
OrasMay 21, 2026, 10:17 AM
and why this is a problem? I found the landing page covering exactly what the product does, with nice demos and examples.
stefanfiskMay 21, 2026, 10:33 AM
Not to mention those absolutely horrible scroll animations.
shideneyuMay 21, 2026, 10:47 AM
you don't like parallax effects ? maybe I'm too 2010 for you
stefanfiskMay 26, 2026, 12:12 PM
I’ve never seen a scroll related animation that I didn’t hate to some degree. I suspect that the issue is that I skim and scroll REALLY fast and the animations always break the feeling of the page being a real surface.

Apple is the worst offender. Some of their product pages make me physically uncomfortable like when you miscount the number of steps in a stair and step into empty air.

And it’s not that I’m sensitive to animations or motion in general. Video games are no problem at all even when the physics make no sense.

There’s something special about how good scrolling is on Apple’s trackpads and mobile screens which causes a really deep immersion for me. I have an Ubuntu desktop with an old school scroll wheel mouse and there the animations are just annoying but not uncomfortable.

backwardsponchoMay 21, 2026, 1:40 PM
I think the issue is that the parallax is choppy in your page. For whatever it's worth, I typically don't care much about parallax in itself but I thought the same thing about the scrolling not being smooth.
perseusaiMay 21, 2026, 1:43 PM
As someone new to this site, I understand wanting to keep the AI Slop at bay, but for some of us, it's been a boon to get our ideas into an actual working application. I have decades of IT/Network/Enterprise experience, but creating and writing a complex tool would have been well beyond my abilities or patience. I had a friend say that AI is a "scourge on the intellectually lazy" and I couldn't really refute that, but I had to add that it is a boon to a lazy intellectual, which I consider myself to be.
SirentalMay 22, 2026, 6:09 PM
I'm not saying don't use AI. It's alright to use AI in my books, I'm just saying watch out for obvious hints. Some people translate that to "this product is cheap" even if it isn't at all the case.

I understand you've put a hell of a lot of work into this. You might want to have a look at https://www.awwwards.com/ and take some inspiration for some of the designs, then write up a general spec sheet of how the website should look and feed that into Claude.

Otherwise Claude just does what a language model does best, and regurgitates a lot of the same styles.

jarymMay 21, 2026, 10:16 AM
So?
shideneyuMay 21, 2026, 10:53 AM
@jarym what don't you like with the homepage ? I am curious how I can improve
jarymMay 21, 2026, 11:17 PM
I like it, and I’m not bothered if it was made with AI or not. Good work as far as I’m concerned
FergusArgyllMay 21, 2026, 11:26 AM
I like it
florianistMay 21, 2026, 10:32 AM
The paragraph on the website inviting us to switch to rmux from tmux claims that tmux is programmed in C++. tmux is made in C.
shideneyuMay 21, 2026, 10:42 AM
wupsy ! thanks, I just fixed it
kosolamMay 21, 2026, 9:56 AM
Hey, I automate tmux all the time with send keys and capture.. how is your project improves vs tmux or zellij?
shideneyuMay 21, 2026, 10:24 AM
rmux is much faster than tmux or zellj, I did some internal benchmark and it's promising. rmux is a multiplexer engine, meaning that you can rewrite entirely zellij using rmux.. I created a mini zellij in a few hundred lines of rust. You can check the demoes on the repo
kosolamMay 21, 2026, 10:50 AM
But wait, I’m a user of tmux or zellij which for me was basically another tmux and I went back to tmux eventually. I’m not looking to develop another tmux or something. Is this project more of a library to create tmux like apps?
shideneyuMay 21, 2026, 11:06 AM
As of today you can replace tmux by rmux. Its behavior should be 1-1 iso; tmux is more stable though, it has been battle tested with a dozen of years of edge cases refinement. rmux is a faster and more elegant clone of tmux + windows support + programmable sdk
GalanweMay 21, 2026, 10:19 AM
I don't get it as well, everything mentioned in the readme is already trivially possible with tmux or zellij
shideneyuMay 21, 2026, 10:28 AM
windows support + async + public sdk. You can rewrite zellij with rmux, but not the opposite. rmux is a multiplexer engine
noodletheworldMay 21, 2026, 10:09 AM
I mean, the obvious immediate answer is “windows”, which tmux flat out doesn't support (except via WSL and a shared mount).
kloudMay 21, 2026, 11:36 AM
Cool project, I like the idea of having tmux-compatible CLI. I used Zellij to get better UX, but many agent tools integrate with tmux. This way agent tools can still integrate tmux as a defacto standard for programmatic interface while having better interface for users.

But I wonder if tmux/rmux design is suboptimal since it couples session persistence and window management together. Do you have an opinion the design which separates the responsibilities? An example that pioneered this approach is abduco, and libghostty-based zmx being a modern implementation.

shideneyuMay 21, 2026, 12:02 PM
I thought I was too zealous because I created 11 crates respecting single responsibility principles.. I would have been all in to risk it further and separating responsibilities for session and window management but it would have diverged too much from tmux. I wanted a 1-1 port for now
kloudMay 21, 2026, 12:32 PM
Fair point, given it is more unconventional design, it is a riskier way in order to get something that works.
shideneyuMay 21, 2026, 8:29 PM
correct... it's sad but recognition is a lot. After putting months of efforts, it's a risk I didn't want to take. And following tmux was like a red thread of life to code. Maybe in the future !
btownMay 21, 2026, 12:18 PM
Very cool! I think the hype around “agents are so good that you never actually need to see the underlying commands they are running or interact with the terminal session that they’re running” misses out on a lot of very important use cases, particularly around long running processes that may be shared across multiple agents. This will be very cool to see how best practices evolve!
shideneyuMay 21, 2026, 12:33 PM
Same ! TUI are becoming more and more mainstream so there is a need for automated multiplexing , not used by humans but by programs (and agents)
luizfwolfMay 21, 2026, 10:07 AM
I found the project quite interesting but what's the advantage over just using tmux with a hotkey to send keys?
saghmMay 21, 2026, 1:47 PM
Writing shell scripts to orchestrate things is not a particularly great experience. "Shell scripts are annoying to write compared to the programming languages we use for other things" isn't a universal opinion, but it's not exactly uncommon; I've heard plenty of people talk about switching to Python as soon as anything gets even moderately complex. (I often tend to go with the lines "my bar for when to switch to a real programming language is as soon as I have to write an if statement" and "the number of times I've had to write a for loop in bash is the same as the number of times I've had to google the syntax for a for loop in bash", which are only slight exaggerations). Having an actual library for interactions that isn't just a wrapper around the CLI seems like it would be a huge improvement for anything that isn't a one-off interaction.
shideneyuMay 21, 2026, 10:22 AM
windows support, and the sdk. native async "wait until" something appears on your terminal, so you don't spam send-keys
cultofmetatronMay 21, 2026, 10:04 AM
a week ago I was using cmux but its osx only and doen't work on remote terminals. then I switched to herdr which is great so far except its not s great at managing panes. I can't move them around or change ordering. now another terminal multiplexer. I'm getting whiplash.

all that said, none of the existing solutions are perfect and rust codebases are nice. how easy is it to reorder panes? is there a cli that lets me control the panel layout via a skill file and allow my opencode session to target and send data to other panes?

OrasMay 21, 2026, 10:15 AM
I started using cmux a month ago and it had made my life a lot easier. Finally I have a pane with all my projects open all the time, I can switch between them, have multiple terminals for each one.

What do you mean by remote terminals?

cultofmetatronMay 21, 2026, 10:36 AM
my plan is to eventually move my entire workflow to a remote workmachine over ssh. with kernal, I can automate all my smoketests entirely from a headless machine rendering my laptop overkill to run agentic workflows. I'd rather be using it to watch movies, learn new stuff or hand code in my downtime. if your workflow requires cmux, you're stuck running your agents on your local machine.

To be clear, That doesn't make cmux bad. if you WANT to do everythign on your mac, cmux is fantastic. its just not designed with the remote ssh control use case in mind.

lawrencechenMay 21, 2026, 11:27 AM
I'm one of the creators of cmux. I'm moving a lot of my own dev work to Mac Minis, so I'm starting to feel quite a lot of the pain you mentioned... will try to make this better!
shideneyuMay 21, 2026, 8:33 PM
please do and let me know ! quick story fast, I'm working a loooot remotely. I'm using https://github.com/sanchxt/yoop to synchronize my keyboard. Since I'm using moonlight it's blazing fast. But when I work in the train I'm back to ssh. My quick tip would be to: build your own tools, build them once, use them forever. and rmux is exactly made for that, it's prefect for TUIs over ssh and low connection that needs to stay alive even if you get disconnected
vardalabMay 21, 2026, 5:22 PM
Exactly, the whole point of having a laptop is that you can close it at some point. Once you move to these newfangled workflows it is all gone. That is why I have been slow on uptake with all these new apps they are releasing like Codex GUI and Claude GUI and all that stuff. I like that work continues when I close my laptop, but also I like that it continues on my hardware, not somewhere in the cloud being a supply chain attacked by who knows what.
qudatMay 21, 2026, 11:40 AM
I built https://zmx.sh to make it easier to interact with your terminal sessions programmatically. 1 window = 1 session which might feel like a negative but it makes programmatic access easy and agents can use it just by pointing it at the zmx help command. Basically, an agent just needs 2 commands (run and write) for full control and the commands are synchronous so you don’t need to do any polling.
shideneyuMay 21, 2026, 8:27 PM
nice, zmx is a very nice approach. I did not want to take risks and change the expected behavior of the renown tmux. My main goal was 1) to rewrite tmux the modern way more elegantly (async, rust) and give it windows support 2) to give it a SDK. I think 1 window = 1 session is the right way, but it's a risky market move I didn't want to tackle for adoption. Maybe on a breaking v2 !
ogulcancelikMay 23, 2026, 10:24 AM
hey, i’m the herdr dev. pane reordering will be in the next release, let me know if you have more feedback :)
cultofmetatronMay 23, 2026, 11:56 AM
so far really liking it. if I had one critisism, I'd say a less awkward meta combo would be nice. ctrl-b feels awkward and I have caps remapped to ctrl. something on the same row as the caps lock would be way easier to learn from a muscle memory perspective.

that said, really appreciating the world you're putting into it!

shideneyuMay 23, 2026, 2:13 PM
@ogulcancelij rmux author here. I just tested herdr, I really liked it !
shideneyuMay 21, 2026, 10:23 AM
no skill file, you get the same 90 commands of tmux. and if you build a rust app you can have many more cool stuff like "wait for" some text to appear, asyncly
cultofmetatronMay 21, 2026, 10:40 AM
well it looks great so far but Its a no go for me for now until you have at least a cli that a coding harness can use to drive it. thats going to be the killer feature going forward for all these multiplexers. last week I vibecoded a plugin that lets me open a line specific input box that sends the context of my code along with my prompt into my opencode session running on a seperate pane. its a game changer when it comes to moving faster.

excited to check back in on the progress as you work on it though! I think these kinds of tools are going to be much more relevant going forward as we all move to agentic workflows.

shideneyuMay 21, 2026, 10:46 AM
ok will check it out then ! Thank you, putting it on my todo list
SwellJoeMay 21, 2026, 4:58 PM
It's not clear to me what this does that tmux doesn't? Agents can already interact with tmux, so what does this provide?
gobdovanMay 21, 2026, 6:40 PM

  I think it's trying to be like a code-first/API alternative to Tmux. So instead of:
``` tmux new-session -d -s a

tmux send-keys -t a 'npm test' Enter

sleep 2

tmux capture-pane -p -t a ```

  you'd do something like:
``` pane.send_text("npm test\n").await?;

pane.wait_for_text("Tests passed").await?;

let snapshot = pane.snapshot().await?; ```

  I don't know why it would be better for agents, maybe the author also works on an LLM agent harness.
shideneyuMay 21, 2026, 8:22 PM
gobdovan nailed it. The CLI is a drop-in for existing tmux workflows; the SDK eases your flow when you'd otherwise be writing brittle send-keys + sleep + capture loop. But that's just one one of the use cases. rmux should be used to make beautiful TUI, something very dirty to do with tmux. Especially the day you want to do integration testing (playwright style)
gitaarikMay 22, 2026, 3:54 AM
And what are you automating regarding your tmux sessions exactly actually? I use tmux daily, but I never feel the need to do any automation of managing my tmux panes.
0x1ceb00daMay 21, 2026, 11:33 AM
Getting this error when installing from git bash:

$ curl -fsSL https://rmux.io/install.sh | sh rmux install: unsupported OS: MINGW64_NT-10.0-26200

shideneyuMay 22, 2026, 11:32 PM
Hello ! I just updated rmux, you can run the command again, it should work ! Thank you for your curiosity and support
shideneyuMay 21, 2026, 4:48 PM
noted, I'll check this out, thank you
cat-whispererMay 21, 2026, 11:33 AM
I used to use ghostty's applescript and built that into a claude skill. It worked like a charm. But this feels super interesting for programmability
notoranditMay 21, 2026, 11:48 AM
Scriptable terminal multiplexer?

Interesting portable scripting thingy. But it would only work with portable tools, not just everything. Especially with Windows tools.

shideneyuMay 21, 2026, 11:55 AM
I wrote it for rust apps in mind, same usecase as for Ratatui. You’re right maybe I need to expose more tools with the cli
chaoticbeardMay 22, 2026, 6:39 AM
Does it support sixel or images at all?
chaoticbeardMay 24, 2026, 9:00 PM
I see that it has kitty image protocol support, will raise an issue about sixel support
small_modelMay 21, 2026, 9:50 AM
Never had the need to do playwright automation for tmux, so not sure why I would use this above tmux which works well.
shideneyuMay 21, 2026, 9:57 AM
with rmux you can finally do acceptance/integration tests on your terminal user interfaces. tmux is made for humans, rmux is made for both humans and machines
jochMay 21, 2026, 2:29 PM
Very nice!

I created `ygg`[0] a while back to easily spawn a new worktree when working with Claude/codex, and it also spawns that in a dedicated zellij tab. I think making the terminal multiplexer pluggable, so it would be easy to integrate something like this.

[0] https://github.com/joch/ygg

shideneyuMay 21, 2026, 8:30 PM
nice tool ! totally. rmux is lightweight, I believe it would be easy
DeathArrowMay 21, 2026, 11:25 AM
1. ask Claude to rewrite X in Rust

2. ask Claude to make a website and claim R is better than X because it's Rust

3. advertise on HN, X and Reddit

4. ???

5. profit!

miroljubMay 21, 2026, 11:41 AM
If the tokens are already burned, it's better for the environment to share the result for everyone to use it.
hi083May 23, 2026, 4:06 AM
so is this, among other things, a bypass to the recent claude -p restriction Anthropic recently shared?

basically an api to a terminal?

shideneyuMay 23, 2026, 2:15 PM
exactly, claude-cli is just running behind the scenes in a detached way. rmux is parsing the output beautifully
shadowfax92May 21, 2026, 6:31 PM
this might fit very nicely with gascity/gastown which orchestrates other coding agent over tmux.

currently, i finds it's tmux orchestration code is too complex.

will check it out

shadowfax92May 21, 2026, 6:33 PM
> got tired of scraping output with grep and sleeps to automate anything.

curious, what was the usecase here?

shideneyuMay 21, 2026, 8:22 PM
Hehe. I am building a multi agent orchestration system of course ;) I believe this is the future, agents speaking to one each other. It's very dirty with tmux
yes_but_noMay 21, 2026, 12:01 PM
Floating panes seems not possible, or are they?
shideneyuMay 21, 2026, 12:04 PM
Not part of the current version, it’s on my roadmap :)
mutantMay 25, 2026, 9:12 PM
zmux.
elromulousMay 21, 2026, 10:22 AM
Can someone describe the pros/cons vs zellij?
shideneyuMay 21, 2026, 10:27 AM
You can rewrite Zellij entirely with rmux , that's the main difference. I put a demo on the repo. Because rmux is an engine. I wrote it to be the multiplexer of multiplexers
eddyaiptMay 21, 2026, 1:13 PM
[flagged]
shideneyuMay 21, 2026, 3:00 PM
Yes exactly. And it enables integration testing too. I hope it will foster the release of more cool TUIs.
agentifyshMay 21, 2026, 7:18 PM
[dead]
nikhilpareek13May 21, 2026, 10:17 AM
[dead]
perkovskyMay 21, 2026, 2:49 PM
[dead]
tomaspiaggio12May 21, 2026, 4:44 PM
[dead]
abdullahobMay 21, 2026, 7:28 PM
[dead]
labonteseMay 23, 2026, 8:30 AM
[dead]