docsorchestration

Type once. Fire into every pane.

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.

overview

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.

  • Writes verbatim to each PTY via the write_to_terminal Tauri command — local only
  • Scoped to the active workspace's sessions — never leaks across projects
  • Address panes by index, range, comma-list, or rig role (@all, @1-3, @2,3, @agent, @relay)
  • Writes fire concurrently via Promise.allSettled — a dead pane counts as failed, never throws
  • No cloud, no accounts, no telemetry, no network calls in a broadcast
  • Command history is in-memory, session-only, capped at 50 — never written to disk
why it matters

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.

Agent-aware and role-addressable

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.

Workspace-scoped by design

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.

Dead-pane safe

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.

Local-first, no network

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.

Honest monochrome feedback

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.

how it works
01

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.

02

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.

03

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.

04

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.

05

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.

faq

Does the bar always submit the command, or can I send raw text?

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.

What does @relay target, and what happened to @managed?

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

Can a broadcast hit terminals in another open project?

No. Targets are derived from the active workspace's sessions only, so a command can never reach terminals belonging to another open project.

What happens if a pane dies between selecting it and sending?

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.

get started

one project. many shells. zero noise.

13x is local-first and free of telemetry — your code, commands and shells never leave the machine. Join the waitlist for the next build.