Skip to content

Teams (Multi-Agent)

When Claude orchestrates multiple agents to complete a task, Magia surfaces the collaboration as a structured team conversation rather than a flat event log. You can follow each agent’s work in real time, filter down to a single agent’s thread, and drill into nested subagent transcripts.

A team session starts when Claude emits a team.created event and spawns one or more teammate agents via teammate.spawned. Each agent receives a name and a color assigned by the orchestrator. They work independently — reading files, running tools, writing code — and communicate back to the orchestrator through teammate.message events.

When all agents finish, a team.deleted event marks the team as dissolved. The total wall-clock duration is recorded from team.created to team.deleted.

Clicking into a team conversation from the session sidebar opens the Team Conversation View, a dedicated panel with a breadcrumb back to the main chat.

The panel has three sections:

  • Header — shows the team name and the number of active agents.
  • Filter bar — one tab per agent, plus an “All” tab. Selecting an agent filters the timeline to events from that agent only.
  • Timeline — a chronological stream of messages, task events, and lifecycle chips.

Each teammate message is rendered as a TeamMessageBubble: a card with a colored left border and a color dot next to the agent name. The color is assigned by the orchestrator (green, blue, yellow, red, purple, cyan, orange, pink, teal) and mapped to a consistent hex value. Message bodies are rendered as Markdown.

State transitions appear inline in the timeline as compact chips rather than full messages:

EventChip labelColor
team.createdTeam createdEmerald
teammate.spawnedjoinedBlue
teammate.terminatedleftOrange
team.deletedTeam dissolvedRed

Idle notifications (teammate.idle) are suppressed from the timeline to reduce noise.

When an agent calls TaskCreate, TaskUpdate, or TaskList, a brief italicized system line appears in the timeline: for example, “Task created: implement auth middleware” or “Task #3 → completed”.

The filter bar lists every agent that appeared in the session. Selecting an agent’s tab narrows the timeline to events where teammate_id or agent_id matches. Switching back to “All” restores the full chronological view.

Agents spawned by other agents (not the top-level orchestrator) appear in the main chat as SubagentCard components. Each card shows:

  • The agent’s description and type.
  • Live progress messages streamed from agent.progress events while the agent is running.
  • A status icon (spinning loader, green check, or red X).
  • Stats after completion: total tokens, tool uses, and wall-clock duration.
  • A link icon to open the subagent’s full transcript in a dedicated sub-session view.

Cards are indented based on nesting depth (1 rem per level, capped at 3) so you can visually read the hierarchy. Depth 0 is the orchestrator’s direct subagents; depth 1 is agents they spawned, and so on.