Spawn parallel Pi agents
Use this skill instead of manually opening Herdr tabs or inventing your own fan-out.
Workflow
- Draft a short brief from the conversation (or from “on this”: summarize the current topic).
- Present the brief in chat and ask the user to confirm: yes / edit / cancel.
- Only after explicit confirm, call the
spawn_runtool with:brief: the confirmed textconfirmed:trueuseDefaultSet: truefor “the agents”, ornames: ["…"]for a named agentbackground: trueif the user asked for background/headless
- Synthesize the returned findings in chat. Mark missing/failed agents clearly. Do not claim they finished.
- Follow-ups: when the user asks the same already-spawned Herdr agents “what if…?”, asks them to reconsider, or asks a direct follow-up, call
spawn_follow_upinstead ofspawn_run. It reuses the existing child sessions and creates no tabs. Do not substitute a new spawn if no resumable Herdr run exists. - Investigate stragglers: for each missing agent that has a pane, use non-blocking herdr tools (
herdr_agentget/read) to see whether it is stuck, blocked, waiting on usage limits, or still working. - Late findings: use
/spawn status(or ask to check the run) and read finding files under the kept run dir. Children do not ping the parent chat.
Surfaces
/spawn— ask what to look into, then draft → confirm →spawn_run/spawn <name> on this— draft from current topic for that named agent/spawn the agents on this— draft from current topic for the default set/spawn status— list kept partial runs and which findings landed- Follow-up requests to the parent (“ask the spawned agents what if we use X?”) — call
spawn_follow_upto reuse the latest Herdr tabs - Natural language (“spawn the agents on this”, “run opus and fable on …”, “get the agents to investigate …”) — same workflow
Rules
- Never start children until the user confirms the brief.
- Never open Herdr tabs or run
pi -pyourself for spawn; the tools own runtime selection (HERDR_ENV=1→ Herdr tabs, else headless; background forces headless). spawn_runwaits until every child finishes (returns early when the last one lands). OptionaltimeoutMsinspawn.jsonis only a safety ceiling; omit/nullmeans wait until done or cancel.- Never call
herdr_agent waiton spawn children. That freezes the parent chat.spawn_follow_upowns its own wait/collect cycle. - Never close spawn tabs or panes, on success or failure, unless the user explicitly asks.
- Children write findings under
~/.pi/agent/spawn-runs/. Complete runs are cleaned up; partial/cancelled runs are kept for/spawn status. spawn_follow_upworks only for Herdr children. Headless--no-sessionchildren cannot be resumed, so say so instead of starting replacement children.- Parent owns synthesis. There are no modes, no editor/optimizer model, and no parent-pane pings.