Spawn and monitor sidekicks
A sidekick is an AI working on a task in the background. You ask the AI in your chat for something long; instead of holding up the conversation, it spawns a sidekick room, returns a codename, and keeps chatting.
1. Spawn one#
Two ways:
- Implicit: just ask. "Read the last 30 commits on
app/ai/and write a summary." If the AI judges the task long, it spawns a sidekick automatically. - Explicit:
/sidekick <task>. Forces it regardless of the AI's judgement.
The reply in the parent room will look like:
🤖 Sidekick brave-penguin spawned for: "Read the last 30 commits on app/ai/ and write a summary."
The codename is your handle to monitor it.
2. Monitor#
Three surfaces:
- Sidekicks panel (right sidebar, ⏵ button in chat header). Lists every active sidekick in the room with its codename, status, step count, and a "open room" button. Live-updates via WS.
/sidekick:status <codename>in the composer — prints a one-line status to chat.- Click the codename in the spawn message — opens the sidekick room. You see the sidekick's thinking, tool calls, and tentative output live.
3. The sidekick room#
A sidekick room is read-only — you watch but don't type. The header has a ← Parent room link to navigate back.
When the sidekick finishes, it posts its final summary in the parent
room as a swp.sidekick.result event:
🤖 brave-penguin completed. Found 3 candidate papers on surface codes:
- Paper 1 (link)
- Paper 2 (link)
- Paper 3 (link)
4. Cancel#
If a sidekick is going in the wrong direction:
- Sidekicks panel → Cancel button.
- /sidekick:cancel <codename> in the composer.
- API:
POST /v1/rooms/{room_id}/sidekicks/{task_id}/cancel.
Your concurrency budget frees up immediately.
5. Caps you'll hit#
| Cap | Default | What happens at the cap |
|---|---|---|
| Max steps per sidekick | 25 | Force-complete with current output. |
| Token budget per task | Tenant-set | Warning at 80%; hard stop at 100%. |
| Wall-clock timeout | 5 min | Auto-terminated. |
| Concurrent sidekicks per user | 3 | New spawns return an error. |
| Concurrent sidekicks per tenant | 10 | Same. |
6. Context modes#
When the AI spawns a sidekick, it picks context_mode:
task_only(default, cheap) — the sidekick sees only the task description. No conversation history.full— the sidekick gets the parent room's recent history. Use when the task references "this", "the file we discussed earlier", etc.
If you want to override, ask explicitly: "Spawn a sidekick with full context."
7. Sidekick spawning sidekicks#
A sidekick can itself spawn sub-sidekicks. They count against the same concurrency budget. Use sparingly — three-level nesting is usually a sign the original task wasn't decomposed well; consider a plan instead.
Where to go next#
- Use the planner — for sequential structured work.
- Concepts: Sidekicks.
- API: Sidekicks.