MoriMori
Mori

Command Deck

Run up to four live chats side by side — each with its own conversation, model, and composer — then broadcast one prompt to all of them and promote the winner.

Single, 1+1, and 2×2

The Command Deck lets you split the chat surface into more than one live session. There are three layouts, and you switch between them from a small control in the chat header:

  • Single — one chat, exactly the classic experience.
  • 1 + 1 — two panes side by side.
  • 2 × 2 — four panes in a grid.

Single isn't a special case bolted on — it *is* the primary session, byte-for-byte the single chat you've always had. Growing to a split or a quad adds panes around it; collapsing back leaves the primary chat untouched. Command Deck shipped in 1.5.0.

Single    1 + 1        2 × 2
┌────┐    ┌──┬──┐     ┌──┬──┐
│    │    │  │  │     │ 1│ 2│
│    │    │ 1│ 2│     ├──┼──┤
│    │    │  │  │     │ 3│ 4│
└────┘    └──┴──┘     └──┴──┘

Every pane is its own session

A pane isn't a view of one shared conversation — each one is a fully independent chat with its own state:

  • Its own conversation. Each pane's header carries a picker to start a fresh chat or swap in any saved conversation, searchable once you have a few.
  • Its own model. A pane can override the model from its composer's model chip; leave it alone and it follows your global model. The header shows which model that pane is on.
  • Its own composer, stage, and status. Each pane types, thinks, and streams on its own, with its own run spinner and thinking-stage tag.

Click a pane to focus it, or jump with Cmd/Ctrl + 1–4 — the number in each pane's corner is its shortcut. The focused pane owns the overlays and conversation openers, and gets a highlighted border so you always know where your keystrokes are going.

Truly concurrent

The panes don't take turns. The whole chat engine was made session-scoped so they can run at the same time without stepping on each other.

Everything that used to be a single "which run am I" global — the abort controller, the task state, the steering queue, the per-turn scratch, the failure lessons, the compaction keys — is now held per-session. Two panes sending at once each drive their own turn to completion; neither one's Stop button, streaming tokens, or usage accounting bleeds into the other. That re-entrancy is the whole reason the Deck can exist, and it's why the Single preset stays exactly the chat it always was: it's just the primary session running alone.

Broadcast — ask everyone at once

Above a multi-pane deck sits the Broadcast bar. Type a prompt there once, hit send, and it fans out to every pane at the same moment — and because each pane runs on its own model, you get the same question answered several ways in parallel.

Before you send, a cost hint sums the estimated spend across every pane at its own model, so you see up front what firing one prompt at four models will cost. You're the aggregator: the answers land side by side for you to read and compare. Nothing is merged or auto-judged — the comparison is yours to make.

Promote the winner — nothing is deleted

Once you've compared the answers, promote the one you want. The Promote control on a pane collapses the deck back to Single with that pane as the primary session — you carry the winning conversation forward and drop back into a normal single chat.

The other panes' conversations are archived, never deleted. Promote flags the losing broadcast targets as archived in both the local and signed-in stores; they drop out of your active list but stay fully recoverable. A bake-off never costs you the runners-up — you keep every branch you explored.

Broadcast  →  "which of these three headlines is strongest, and why?"
              pane 1        pane 2        pane 3
              (model A)      (model B)      (model C)
Compare    →  read all three answers side by side
Promote ▲  →  keep pane 2  →  collapses to Single
              panes 1 & 3 archived (recoverable, not deleted)

When to reach for it

The Deck earns its place whenever one chat isn't enough:

  • Model bake-offs. Put a different model in each pane, broadcast one prompt, and compare how they handle it — then promote the best answer and keep going.
  • Parallel workstreams. Build in one pane while you research in another, or keep a long-running task in pane 1 and hold a normal conversation in pane 2. Because sessions are isolated, one pane grinding away never blocks the others.
  • Branching a decision. Fork the same question three ways, explore each, and keep the branch that pans out without losing the rest.

And when you don't need any of it, Single is right there — the classic single chat, unchanged.