DEV Community

Little Pan
Little Pan

Posted on Originally published at ponymux.com

The icon says it's waiting. The pane shows what for.

In February a Codex user asked for four conversations on screen at once. The reply was that the app already runs as many sessions as you want. The answer back: "the multi-session feature works perfectly, and I use it as well. It’s more about the visual experience — being able to display, say, four sessions in parallel." Seven months later, in the same thread, someone else put it shorter: "fast switching between tabs is not enough" (openai/codex #13036).

In a terminal you've been able to do this for decades: split the window. Past four panes, though, you're arranging a layout instead of watching agents, and the layout doesn't know which agent needs you.

PonyMux keeps your Terminals in a list, the way an app keeps conversations, with the real CLI running in each one. In 0.15 that list can show several at once. Select a few Terminals and they appear side by side, live, each at its real size. When one needs you, click its pane and type. You never leave the group, and the other agents keep going around it.

Why isn't a status icon enough?

Three agents, three rows, three icons. One of them turns yellow. I click it: Codex wants to run a migration and is asking first. I approve, click back to the Claude Code row to see how far it got, and while I'm reading that, Grok has been waiting four minutes for me to pick between two approaches.

The icon told me something was waiting. It didn't tell me what. Knowing which one is already more than many people get: in a Claude Code issue from March, someone running several sessions wrote that "there's no way to know which session is blocked waiting for user input" (#36885). But the next question is always what: what is it asking, how far did it get, is the other one about to finish? A row in a list can only show a summary. The terminal shows the actual question.

A summary tells you to look. The pane is the thing you look at.

How do I see several agents at once?

Select them. ⌘-click rows, Shift-click a range, or press ⌥⌘A for the whole list. Then click the Preview Layout button in the toolbar, the little 2 × 2 grid, and choose Auto. The preview stays off until you pick a layout, so nothing changes for people who select rows only to move them.

PonyMux preview grid: three selected Terminals running Claude Code, Codex, and Grok side by side, with the Codex pane's title bar showing and its row in the list lit
Claude Code, Codex, and Grok in the preview grid. Hovering a pane lights up its row in the list.

Auto lays the Terminals out in tall, narrow columns. That was a deliberate choice. An agent's output wraps at about 80 columns, and what you want more of is rows: the question, the diff above it, the plan above that. If you'd rather fix the shape, pick up to 5 × 4 from the table.

Every pane is the real Terminal at that size, not a screenshot. The program reflows to fit, and the output keeps moving.

How is this different from splitting the window?

Splitting a terminal is old news. tmux, and the terminals that took after it, give you panes first: you divide the window, decide what goes where, and the layout stays until you change it. That works. Past four or five panes, each one gets too small to read, and the layout is one more thing to look after.

PonyMux started from the list instead. One Terminal at a time, picked from a list, and that's still how it opens. The grid isn't a layout you build. It's what a selection looks like. Select three Terminals and you see three. Press Esc and the grid goes away, and the list is still where your Terminals live.

Because the grid shows only what you selected, it doesn't have to fit on one screen. Select ten, and Auto keeps every pane at least 40 columns by 24 rows, then scrolls by whole rows. A 2 × 2 with eight Terminals scrolls the same way. You scroll through agents the way you scroll through the list.

A split is a layout you keep. A selection is a question you're asking right now.

Can I answer an agent without leaving the grid?

Yes. Click a pane and type. The toolbar says Typing in and the Terminal's name, so you always know where your keys go. ⇧⌘] and ⇧⌘[ move the keyboard to the next pane. Click the × to give it back. While you're typing, the Inspector switches to that Terminal, with its pull requests, links, and model, as if you had opened it.

PonyMux preview grid with the Codex pane outlined in the accent color and "Typing in api-migrate" in the toolbar
Typing in the Codex pane while the other two keep running.

The list and the grid track each other. Hover a pane and its row lights up. Hover a row and its pane does. Click a selected row to type in its pane. When you want one agent full size, click the open button on its title bar. Back brings the group back.

Watching is free. Answering costs one click, and you stay where you are.

Can I wake a whole group at once?

When you quit and reopen PonyMux, your Terminals come back asleep, each with its conversation saved. In the grid, a sleeping Terminal shows a moon in its pane. Click it, and it wakes right there and takes the keyboard once its shell is up.

To bring the whole selection back, choose Wake … Sleeping in the Inspector. PonyMux wakes them one at a time, resumes each conversation, and shows the progress in the Inspector. For more than five it asks first, and Stop ends the queue. Without PonyMux, this guide has the commands to resume several Claude Code and Codex sessions after a restart.

With a group selected and no pane typing, the Inspector holds the batch actions: List, Reaction, Archive, Trash. Settings the Terminals don't share say Mixed, so you know you're about to set them all. Back and Forward remember the selection, and Esc leaves it.

What else changed?

PonyMux runs on Intel Macs now, as well as Apple silicon: one app, macOS 14 or later. Usage limits fit in one ring per agent, and an empty ring tells you why, whether you're signed out, offline, or on an API key with no plan usage to read. In the Inspector, you can mark a pull request ready for review or turn it back into a draft.

The Windows version got the same preview in its own 0.15.0. The preview is covered in Preview several Terminals, and usage in Usage limits. For everything else, see the changelog.

Download PonyMux, free for macOS and Windows.

Top comments (0)