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.

Muxley is coming soon. Leave your email and I’ll tell you the day it ships.

▸ 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.

  1. 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.

  2. 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”.

  3. 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