---
audience: power_user
summary: Delegate a task to a background AI room and watch it run.
title: Spawn and monitor sidekicks
path: tutorials/power-user/spawn-and-monitor-sidekicks
status: published
---

# 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](/docs/scaiwave/concepts/planner) instead.

## Where to go next

- [Use the planner](/docs/scaiwave/tutorials/power-user/use-the-planner) — for sequential structured work.
- [Concepts: Sidekicks](/docs/scaiwave/concepts/sidekicks).
- API: [Sidekicks](/docs/scaiwave/reference/api/sidekicks-and-plans).
