Stacked panes: why your agents should behave like a deck of cards
Eight agents don't need eight visible panes. rysh stacks panes like cards — top one visible, the rest as live title bars — and Ctrl+S rotates the deck.
Here's the math problem nobody solved before agents: your screen has room for maybe four readable panes. Your workflow now has eight concurrent conversations.
The tmux answer is to make panes smaller. Now everything is unreadable equally. The tiling-WM answer is more monitors. Now you're funding a display company.
The rysh answer: stop showing everything at once.
The deck
In rysh, panes inside a group are stacked like a deck of cards:
- The top pane (index 0) is fully visible and receives all input.
- Every background pane collapses to a styled title bar — name, status — pinned at the edge of the group.
One readable conversation, plus a visible roster of everything else in the stack. Not hidden. Not miniaturized. Queued.
┌─ worker-1 ─────────────────────────┐
│ > refactor the codec registry… │
│ [edit] internal/msg/codec.go │
│ ✓ tests passing │
│ │
├─ worker-2 · running ───────────────┤
├─ worker-3 · waiting on approval ───┤
├─ ops · shell ──────────────────────┤
└────────────────────────────────────┘
Four panes, one group, one column. The three title bars aren't screenshots — they're live panes whose agents are still working.
Rotating the deck
Ctrl+P s creates a new stacked pane on top of the active group. Then:
Stack mode — Ctrl+S:
j/Down/l— rotate next: the front card goes to the back, the next one surfacesk/Up/h— rotate prev: the back card comes to the frontEscor.— done
The invariant is simple: the active pane is always index 0. You don't select cards out of the middle; you rotate the deck. It sounds restrictive and turns out to be the whole point — rotation is a rhythm, not a decision. Flip through your workers like flipping through cards: done, running, needs approval, next.
The part that matters: background panes are alive
A collapsed pane is not a paused pane.
Every pane in rysh is its own actor with its own PTY and its own conversation state. Output doesn't flow through the renderer — it flows through the message bus. The PTY read loop and the LLM execution loop publish to the pane's output topics regardless of whether that pane is currently the top card. The pane's buffers are maintained by the pane actor, not by whatever happens to be on screen.
So while worker-2 sits collapsed as a title bar, it's still:
- running its agentic loop and buffering output
- executing shell commands
- updating its status (which the title bar reflects)
- persisting its state to the session's KV store
Rotate it to the front and the full transcript is just there — including everything that happened while you weren't looking. Rendering is a projection of pane state, never the container of it.
This is the difference between stacking and tabbing-inside-a-pane: nothing stops when it leaves the foreground.
When to stack vs when to split
Rough heuristic we've settled on:
- Split into lanes (
Ctrl+P n) for things you watch simultaneously — editor next to test output, agent next to the shell it's affecting. - Split down (
Ctrl+P v) for a column that has two jobs — code above, logs below. - Stack (
Ctrl+P s) for things that are peers — four worker agents grinding through a task list, three investigation threads during an incident, one pane per microservice.
A tab full of lanes, each lane holding a small deck: that's the shape that scales. Width stays readable; depth absorbs the agent count.
And when one card deserves everything: Alt+P f — fullscreen the active pane, Alt+P f again to come back. The deck is still there.
Why "one visible pane" is a governance feature
Unexpected side effect worth naming: the stack gives every conversation a moment of full attention.
When an agent wants to do something gated — a file write, a git commit, a shell command outside the safe allowlist — that approval deserves a readable pane, not a 4-line sliver you squint at. Rotation means every agent gets reviewed at full width when its turn comes. Density without skimming.
Agents you can see are agents you can trust. Stacking is how seeing scales past four.
The deck is state, not decoration
Because stack order lives in the pane-group actor and is persisted with the workspace, your deck survives detach and reattach. Leave with worker-3 on top; come back tomorrow, worker-3 is on top, its background siblings faithfully queued beneath it, everything they did in between sitting in their buffers.
Your screen has four panes of room. Your workflow has eight conversations. Stacks are how both statements stay true.
Rysh is early — we're recruiting design partners who want to run real multi-agent workflows and shape the roadmap. → rysh.ai/design-partner
Related: Tabs, lanes, and stacked panes · Double-Escape