Components · Legibility
Agent Roster
Multi-agent products love to say 'a team of agents is working for you' and then show a spinner. The roster is the team sheet: one line per agent with its role, state, and live activity. A blocked agent stays on the sheet with its blocker named, because a team that hides its stuck members isn't a team you can manage.
When to use
Orchestrator-and-workers runs where more than one agent acts at once. For a single agent, use the Agent Task List instead; a roster of one is an org chart for a solo founder.
Behavior
Four states: working (pulsing), waiting, blocked, idle. Every state is written in words next to its dot. Blocked rows name the blocker in the activity line and read as the human's cue to intervene; pair with the Interrupt Bar for targeted steering.
Usage
tsx
import { AgentRoster } from "@/components/agent-roster"; <AgentRoster label="Report crew" agents={[ { id: "r", name: "Researcher", state: "working", activity: "reading 4 filings" }, { id: "w", name: "Writer", state: "waiting", activity: "waiting on research" }, ]} />
Install
shell
npx shadcn@latest add https://agent-pitstop.vercel.app/r/agent-roster.json
Or copy the source from registry/agent-roster. MIT licensed.
Report crew2/4 working
- Orchestratorplans and delegatesassigning research tasksWorking
- Researcherfinds and verifies sourcesreading 4 filingsWorking
- Writerdrafts the reportwaiting on researchWaiting
- Checkerverifies claimsIdle