Skip to content

Agent Status

Premium

A status pill that says what the agent is doing, whose move it is, time and cost, and opens to the step history and token bill.

AI Agent UIAI coding agentsChat assistantsApp headers

Examples

Working with live usage
Running the tests npm test -- --runInBand
Waiting for approval

Run details

5 steps
  1. Planned the change2.1s
  2. SearchedparseDate11 matches0.6s
  3. Readpackages/billing-service/src/integrations/payments/providers/webhooks/handlers/subscription-renewal-handler.test.ts212 lines0.4s
  4. Editedsrc/date.ts+12−30.9s
  5. Now: Waiting for your approval

Cost

Total
$1.18
Wants to run a migration db/migrations/0023_add_index.sql
Stalled on a dependency
Waiting on the package registry, no new output
Finished
Fixed the date bug, cost $1.62
Stopped by you
Stopped by you
Ready to begin

Add to your projectPremium component

One command adds this component to your project.

1

Run the following command. New project? Run npx shadcn@latest init first to set up Tailwind and path aliases.

npx shadcn@latest add @aicanvas/••••••••••••
2

For dark mode, add the dark class to your <html> element:

Optional
<html class="dark">

Install with AI Canvas MCP

With AI Canvas MCP, your AI knows every component we ship. Ask for one inside Claude Code, Codex, or Cursor and it installs the component you pick. Works with any AI Canvas account, free or premium.

Props

Every prop this component accepts. Any other prop is forwarded to the underlying element.

StatusStep

PropTypeDefaultDescription
kindreqStepKind-Selects the activity icon and waiting treatment for the step.
labelreqstring-Step action text shown in the run details.
targetstring-File, command or other target shown after the label; left out, no target is shown.
outcomestring-Result text shown at the end of the row; left out, no result text is shown.
diff{added: number, removed: number}-Added and removed counts shown instead of outcome; left out, outcome is used when present.
failedboolean-Colors the outcome as a failure when true; left out, the outcome uses the muted treatment.
durationMsnumber-Step duration shown at the row end; left out, no duration is shown.
status'done'|'live'|'canceled'-Sets the row state; left out, the row is treated as done.

TokenUse

PropTypeDefaultDescription
inputreqnumber-Input token count shown in the cost breakdown.
outputreqnumber-Output token count shown in the cost breakdown.
inputUsdnumber-Input cost used in the breakdown and calculated total; left out, no input price is shown.
outputUsdnumber-Output cost used in the breakdown and calculated total; left out, no output price is shown.

AgentStatus

PropTypeDefaultDescription
stateAgentState-Sets the agent state and its pill treatment; left out, it is ready in host mode, while passing it turns the demo off.
phrasestring-Replaces the state phrase in the pill; left out, a phrase is chosen from the state, while passing it turns the demo off.
targetstring-Adds a file, command or other target after the phrase; left out, no target is shown, while passing it turns the demo off.
elapsedMsnumber-Shows elapsed or terminal duration in milliseconds; left out, no elapsed time is shown, while passing it turns the demo off.
waitingMsnumber-Shows how long the waiting state has lasted; left out, the waiting pill has no clock, while passing it turns the demo off.
quietMsnumber-Marks working or thinking as stalled after the tuning threshold; left out, no quiet-time stall is inferred, while passing it turns the demo off.
costUsdnumber-Shows the total run cost in US dollars; left out, a total is calculated only when token prices are supplied, while passing it turns the demo off.
stepsStatusStep[]-Supplies rows for the expandable run details; left out, the details contain no steps in host mode, while passing it turns the demo off.
tokensTokenUse-Supplies input and output usage for the cost breakdown; left out, token lines are not shown, while passing it turns the demo off.
defaultOpenbooleanfalseSets whether run details start expanded.
onStop() => void-Handles stopping an active run and makes the stop control available outside the demo; left out, host runs have no stop control.
onReview() => void-Handles the review action and makes that control available while waiting; left out, host waiting states have no review control.
classNamestring-Adds classes to the outermost root; left out, only the built-in classes are used.
tuningPartial<Tuning>-Overrides status measurements, timing and motion values; left out, every value in TUNING is used.

About Agent Status

Agent Status is one line that always says what the agent is doing: idle, thinking, running a named tool, waiting for the user, done or failed, with elapsed time and cost that only updates when a turn completes. It reads like a sentence with the object in mono, hovering expands a short history with durations, the waiting state pulses and adds a needs you chip that scrolls to the decision, and it ships as a 28px pill for headers or a 40px bar with the history inline. State changes are announced once to screen readers.

Built with

MotionTailwind CSS

Frequently asked questions

Is Agent Status free to use?
Agent Status is a Premium AI Canvas component. Premium unlocks the full source code, the full remix prompt, and one-command installs for every Premium component, block, and template.
How do I install Agent Status?
Premium unlocks one-command installs: run the shadcn CLI with your AI Canvas token, or connect the AI Canvas MCP server and ask your AI editor to install it for you. Premium also unlocks the full remix prompt in the Remix panel.
What is Agent Status built with?
Agent Status is built with React and TypeScript, using Motion and Tailwind CSS. It ships with both light and dark styling.
Where would I use Agent Status?
Common uses include AI coding agents, Chat assistants, and App headers. Like every AI Canvas component, it is self-contained and drops into any React project.
Can I remix Agent Status with AI?
Yes. Open "Remix with AI" on this page to read the setup and the constants Agent Status is built from. The engine, the markup and the notes on how it works are part of Premium. For the exact component, install it with the one-command CLI.

Featured in collections

More like this