muxley · a macOS menu-bar app
Arrange your terminal once.
Keep it forever.
Muxley remembers your tmux sessions — every window, every split, every command — and launches the whole thing again with one click from your Mac’s menu bar. I built it because I was tired of rebuilding the same four panes every morning.
▸ launch “fullstack” — one click in the menu bar
1:the-ritual
The same four panes. Every single morning.
If you live in tmux, you know the ceremony. New window. Split right. Split down. Change directory — three times. Start the editor. Start the server. Start the agent. By the time everything looks right, you’ve retyped yesterday from memory.
There are two classic escapes. You script it — and then you maintain that script forever. Or you never let the session die: one precious tmux session, weeks old, carried around like a houseplant, because rebuilding it hurts more than keeping it alive.
A working setup is something you made. It deserves to be kept.
That’s what Muxley does. It keeps your sessions as layouts — and gives every one of them 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 gives you easy ways to make them.
One click, whole environment
Every layout sits in the popover with a play button beside it. Click, and your terminal opens with the session fully built — editor here, server there, an agent already asking what to build.
Running sessions show live too. Click any row and Muxley raises your terminal, selects the window, and puts your cursor in that exact pane.
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.
Nothing to install first
Muxley bundles its own tmux, so it works out of the box — and politely defers to your Homebrew tmux and .tmux.conf if you have them. It speaks to the terminal you already love: Ghostty, WezTerm, kitty, Warp, iTerm2, Alacritty, or plain Terminal.app.
The whole app is keyboard-first, with a global hotkey to summon it from anywhere.
3:what-runs-inside
And it watches what runs inside
These days my panes are full of AI agents — Claude Code in one, opencode in another. Agents are terrible at asking for attention: they stop and wait, silently. So Muxley’s mark sits in the menu bar and tells the truth about every pane at once.
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 mid 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 write software in South Africa, and I’ve lived inside tmux for years. Muxley started small: I wanted my sessions back without retyping them every morning.
Then AI agents moved into my panes, and Muxley learned its second trick — telling me the moment one of them needs me. It’s native, fast, and completely local. It doesn’t replace your terminal. It remembers how you like it, and keeps an eye on it.
— Stephen