muxley · a macOS menu-bar app
Manage your tmux sessions.
wherever they are.
Muxley remembers your tmux sessions: every window, every split, every command. Letting you launch the whole thing again and helping you keep an eye on the running processes.
▸ launch “fullstack” — one click in the menu bar
1:the-ritual
Your tmux sessions, windows and panes. The way you want them.
If you live in tmux, you know the ceremony. New window. Split right. Split down. Change directory. Start the editor. Start the server. Start the agent. Repeat.
A working tmux setup becomes muscle memory. It deserves to be saved and be replayable. Maybe you've scripted your setup. Maybe you're using tmux-resurrect.
That’s what Muxley does. A native macOS app that keeps your sessions as layouts, and gives every one a play button in your menu bar.
2:layouts
Your sessions, with a play button
A layout is a saved session: its windows, its splits, what runs in each pane, and where. Muxley turns launching one into a single click, and makes them simple to edit.
One click, whole environment
Every layout sits in the Muxley menu with a play button. Click, and your terminal opens with the session fully built: editor here, server there, an agent already asking what to build.
Click any row and Muxley raises your terminal, selects the window, and puts your cursor in that exact pane.
Hover on any session's pane in Muxley's menu and get a preview of the pane's contents. Great for monitoring local sessions. Even better for keeping an eye on remote tmux sessions!
Design layouts visually
Build windows and split panes the way you’d sketch them (rows here, columns there) and give each pane its command, its folder, its title. Undo, redo, Save As. No config language to learn first.
Or capture the real thing
Already arranged the perfect session by hand? Capture it, and Muxley writes the layout for you.
Underneath, layouts are plain, friendly YAML files in
~/.config/muxley/layouts. Easy to read, easy to edit,
easy to share with your team.
Simple first time setup
Don't have tmux? Muxley bundles tmux and offers to install for you. It
politely defers to your Homebrew tmux and
.tmux.conf if you have them. And it speaks to the
terminal you already love: Ghostty, WezTerm, kitty, Warp, iTerm2,
Alacritty, or plain Terminal.app.
To be honest, Ghostty works best since it is a first class macOS citizen with extensive integrations. These allow Muxley to control Ghostty to make the user experience optimal. Muxley works with other terminals, just not as nicely.
Muxley's key menu features are keyboard invocable with a global hotkey to summon it from anywhere. Once the menu is displaying, use up/down arrow keys, return to launch, backspace to close or terminate.
3:what-runs-inside
Muxley watches what runs inside
Muxley's menu icon changes in subtle, but noticeable ways to reflect the state of processes running in your tmux sessions. Also, Muxley can notify you when your coding agent is waiting for you. Useful for local sessions and extremely useful for remote sessions!
Combine this with Muxley's powerful pane preview and you can keep an eye on a fleet of anything you want. As long as whatever that is can run in a tmux pane.
Told once, told nicely
One notification per agent, replaced in place when things change, withdrawn the moment you’ve dealt with it. Hover any pane in the popover for a color-accurate preview of its last few lines, with live CPU and memory beside it. Click, and you’re there.
4:how-it-knows
How does it actually know?
Guessing an agent’s state from its output is flaky. Models get suspended mid-question; spinners lie. So Muxley listens on three levels and always uses the best one available.
-
hooks
Deterministic, from the agent itself
One click wires Muxley into Claude Code’s lifecycle hooks. Working, blocked, finished: reported by the agent’s own runtime, correct even when the model is frozen on a permission prompt.
-
mcp
Self-reported, with a task title
Agents can talk to Muxley’s local MCP server to report status and what they’re working on, so a pane says “Refactoring the router”, not just “busy”.
-
fallback
Pane-reading, for everything else
No setup at all? Muxley reads the pane like you would and works it out. Recognition rules live in plain JSON manifests. Adding a new agent CLI is a data file, not an app update.
Claude Code and opencode are understood out of the box. But Muxley is built deliberately neutral. One mark for every agent, whatever you run next year.
5:a-note
Why I made this
I’m Stephen. I’ve been writing software for over 30 years, and I’ve spent a fair chunk of that time inside tmux. I wanted a real, Mac-assed Mac app to make managing it effortless: native, incredibly fast, and driven entirely from the keyboard. Something lightweight that just feels right.
Muxley restores your sessions exactly how you want them with a single keystroke. And because we’re all running AI agents these days, it picked up a second trick I now rely on constantly: it pings you when the is waiting for your input. It’s completely local, it doesn’t replace your terminal, and it keeps your mental context intact.
— Stephen