Two ways to fan out
A persistent bottom bar with @-addressing for fast power use, plus a Ctrl+B modal that pre-selects every live pane with per-terminal checkboxes for deliberate, reviewed sends.
Send the same command to many running terminals in one shot — address panes by index, range, or rig role, and watch a live target count as you type.
Broadcast lets you send the same keystrokes to many running terminals at once instead of retyping a command in each pane. It comes in two surfaces: a persistent command bar at the bottom of the grid where you address panes with @-selectors, and a Ctrl+B modal where you tick the exact terminals and type the command once. Both write the line verbatim to each targeted PTY through the same backend write path a real keystroke uses, so anything you'd type in a shell or paste into a coding agent works.
A persistent bottom bar with @-addressing for fast power use, plus a Ctrl+B modal that pre-selects every live pane with per-terminal checkboxes for deliberate, reviewed sends.
Selectors resolve against rig slot roles — SHELL, DEV, TEST, GIT, AGENT, LOG, SCRATCH — and @relay maps to the internal MANAGED role, so you can hit just the coding agents with one @agent /clear.
Targets are derived from the active workspace's sessions only. A broadcast can never reach a backgrounded project's terminals, so nothing leaks across projects.
Only running or starting sessions are eligible, the selection is re-intersected with live targets at send time, and writes are fired concurrently and settled independently — a pane that dies mid-send lands in 'failed' instead of throwing.
Every write goes straight to a local PTY via the write_to_terminal Tauri command. No broadcast content, target list, or history ever leaves the machine — no cloud, no accounts, no telemetry.
A live target count, inline hints for invalid or empty targets, and a transient 'sent … → N · M failed' confirmation. State is shown by text, never by colour.
Jump to the bar
With a grid running, click the bar at the bottom of the grid or press Ctrl+Enter to take the keyboard. The bar renders only over a live grid in grid view.
Address your targets
Type a @<target> <command> line — @all, @2, @2,3, @1-3, @agent, @relay, or a mixed list like @1,3,agent. As you type, the bar shows → N for a valid plan or a monochrome hint for an invalid one.
Send with Enter
Press Enter and the command runs in every matching live pane, with a trailing carriage return appended so the shell actually submits the line. Each target also registers as input activity, just like a real keystroke.
Or open the modal for deliberate sends
Press Ctrl+B to open the checkbox modal. It pre-selects every live target; toggle individual rows or all/none, optionally drop the trailing Enter, and a multi-target send requires a confirm step showing the exact command and count.
Read the result
After a send, the bar or modal shows 'sent … → N' and '· M failed' if any writes failed, then auto-clears. The bar also keeps a session-only Up/Down history of recent lines.
The persistent bar always appends Enter on send, so the shell submits the line. If you want to send text without submitting, use the Ctrl+B modal — it has a 'send Enter' toggle (on by default) you can turn off.
@relay targets the relay panes, which carry the internal MANAGED role. The old @managed keyword is intentionally retired and now errors as an unknown target — use @relay instead.
No. Targets are derived from the active workspace's sessions only, so a command can never reach terminals belonging to another open project.
Liveness is inferred from session status, not a real handshake. The selection is re-intersected with live targets at send time, and writes are settled independently — a pane that died is reported as 'failed' rather than crashing the send.
13x is local-first and free of telemetry — your code, commands and shells never leave the machine. Join the waitlist for the next build.