Prodular UI

AI

TraceAI

A quiet list of the steps an agent took, with running, error and pending states and collapsible detail.

npx prodular-ui add trace

Steps

One line per step. Running shimmers, pending is dimmed, errors are colored.

Read 214 vendor invoices2.1sMatched 198 to purchase orders0.8sCould not open Northbeam MSA 2026.pdfComparing rates with contractsWrite the exceptions report

With detail

Steps can open to show what the agent read or computed, behind a left hairline.

  • IFRS 16 Leases, paragraphs 18 to 21
  • Lease term and reassessment, a practical guide
  • Short term lease exemption explained
  • Ledgerline lease register, Rotterdam warehouse

Anatomy

<Trace>  <TraceLine status="running">    <TraceIcon><SearchIcon /></TraceIcon>    <TraceTitle>Searching invoices</TraceTitle>    <TraceDescription>1.2s</TraceDescription>  </TraceLine></Trace>

Guidance

Use it when

  • For agent runs with many small steps, where a ToolCall card for each would be too heavy.
  • As the base of Reasoning, which is a Trace with a timer.

Avoid

  • Long sentences. A step is a verb and an object, plus a number when it helps.
  • Hiding errors inside collapsed steps. Keep failed steps visible.

Rules for AI agents

Published in llms-full.txt and the registry, so coding agents follow them when they build with this component.

  • Write TraceTitle in the past tense for finished steps (Read 214 invoices) and the present for running ones (Comparing rates).
  • Set status="running" on the step in progress, "pending" on queued steps and "error" on failures. Leave it unset for finished steps.
  • Put durations and counts in TraceDescription. They are tabular.
  • Use ToolCall instead when people need to see inputs and outputs or approve the step.

API

TraceLine

PropTypeDefaultDescription
status"running" | "error" | "pending"Shimmer, error color or dimmed.

TraceCollapsible

PropTypeDefaultDescription
open / defaultOpen / onOpenChangebooleanExpand a step to show detail.

TraceDescription

PropTypeDefaultDescription
childrenReactNodeDuration or count after the title.