plugins/ainb-fleet/skills/broadcast/SKILL.md
Fan out a single prompt to selected claude sessions across the fleet. Use when you need to apply the same instruction (e.g. `/clear`, `git pull`, `remote-control disconnect`) to many sessions at once. Routing: peers-first (broker HTTP) when peer registered, tmux send-keys fallback otherwise. Refuses to run without an explicit targeting flag (--all, --filter <regex>, or --cwd <substring>) — no implicit fan-out.
npx skillsauth add stevengonsalvez/agents-in-a-box ainb-fleet:broadcastInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Send one prompt to selected sessions. Mandatory targeting flag.
ainb fleet broadcast "<prompt>" --all # every running session
ainb fleet broadcast "<prompt>" --filter "<regex>" # match tmux/workspace name
ainb fleet broadcast "<prompt>" --cwd "<substring>" # match cwd
| flag | matches against |
|---|---|
| --all | every session in ainb fleet standup |
| --filter <regex> | regex against tmux_session OR workspace_name |
| --cwd <substring> | substring against cwd |
If none provided, the command exits with broadcast requires --all, --filter <regex>, or --cwd <substring> — by design, to prevent
accidental fan-out.
ainb fleet broadcast — sent to N target(s)
✓ <name> via broker peer <peer_id>
✓ <name> via tmux <tmux_session>
✗ <name>: <reason>
✓ via broker = sent through claude-peers HTTP (clean, structured).
✓ via tmux = sent via tmux send-keys -l (literal mode, works for any
tmux pane regardless of peer state).
For each target:
peer_id and broker is healthy → POST /send-message to broker.tmux_session and tmux says it exists → tmux send-keys -l.Failed { reason: "no peer registered and no tmux session found" }.Cycle a specific app:
ainb fleet broadcast "/clear" --filter "shotclubhouse"
Pull latest in every active worktree:
ainb fleet broadcast "git pull" --cwd "/agents-in-a-box/worktrees/"
Universal reset:
ainb fleet broadcast "/exit" --all # careful — quits everything
tmux send-keys -l uses literal mode → shell metacharacters in the
prompt are safe (no injection).For each target, tail the JSONL transcript:
ls -t ~/.claude/projects/<cwd-slug>/*.jsonl | head -1 | xargs grep "<prompt-text>"
(<cwd-slug> = replace / with - in the target's cwd.)
documentation
Report reflect drain spend over a time window — tokens split by cached (cache_read), uncached writes (cache_creation), and io (input+output), with a $ estimate, grouped by day / outcome / model / transcript. Reads the drainer's cost log and surfaces outlier runs and cache-reuse health (the 41.5M-token failure mode = low cache reuse + high cache writes). Use to answer "what is reflection costing me" for the last day / week.
development
Show fleet status — every claude session running on the host, merged across ainb + claude-peers broker + background jobs. Use when you need to enumerate sessions before composing an action, see which sessions have a peer registered (broker-routable) vs tmux-only, check the `summary` of each session, or pipe the list into jq for filtering. Default output: text table. Pass --format json for LLM consumption.
testing
Ordered multi-step prompts to fleet targets, ack-gated between steps via JSONL assistant-turn-end detection. Use for cycles like disconnect→reconnect→verify, or any flow where step N+1 requires step N to have completed first. The skill BLOCKS until each target's transcript shows the next assistant turn finishing OR per-step timeout fires (default 300s).
development
Center control panel — enumerate every claude session that is blocked waiting on something: a user answer (AskUserQuestion fired), an API error retry, an idle assistant turn-end with no follow-up, or an explicit WAITING: marker. Returns rich JSON with signal kind + context per session. Use this when you've stepped away from the fleet and want one place to see everything that wants your attention and answer it.