# Run trace

A React component in [Beamline](https://beamline.io/)'s [AI & agents](https://beamline.io/components/ai) category. Live demo: https://beamline.io/components/run-trace

One agent run as a waterfall: every step (model calls, tools, retrieval, checks, sub-agents) nested under the step that started it, each a bar on a shared time axis, with retries as separate attempts on the same bar, tokens and cost per step and for the run; while it runs the bars grow live, and choosing a step shows its timing, attempts, input and output beside the trace.

## Use it for

- Debugging or reviewing an agent run: what ran, in what order, what waited on what, what failed and was retried, and what it cost.
- An observability page for model and tool calls (spans from your tracing).

## Not for

- A single tool call in a conversation ([tool-call](https://beamline.io/components/tool-call)).
- The agent's thinking in words ([reasoning](https://beamline.io/components/reasoning)).
- Background jobs a person follows ([task-rows](https://beamline.io/components/task-rows)).
- The designed workflow before it runs ([flowchart](https://beamline.io/components/flowchart)).

## Anatomy

- header: the run's status (a glyph and a word), total time, how many steps and how many failed, tokens in and out, cost
- axis: time marks across the lane (0, 2 s, 4 s…), a line at now while running
- row: indent and a chevron for steps with children, the kind's glyph (model, tool, retrieval, check, agent, wait), the name and the model; the bar on the lane from start to end in the kind's colour; failed attempts before it as hatched segments with a gap; the duration at the end
- selected step: the row ringed and a detail panel (beside the trace when wide, under it when narrow): name, kind, start and duration, attempts with their errors, tokens and cost, input and output
- running step: the bar's open end grows with time and carries a soft edge; the duration counts

## Variants

- **density**: compact, default

## States

- running (live)
- succeeded
- failed (the failing step and its parents are marked)
- retried
- cancelled
- collapsed
- selected
- empty (no steps yet)

## Keyboard

- The trace is a tree grid with one tab stop: ↑/↓ move between visible steps, → opens a step or goes to its first child, ← closes it or goes to its parent
- Home/End go to the first and last step; Enter or Space shows the step's detail
- Escape clears the selection

## Motion

New steps grow into the list and the rows below slide down (useFlip). While the run is live the open bars grow on a clock that runs only while something is running and the trace is on screen, then stops. Opening and closing a step folds its children. The detail cross-fades to the chosen step. Reduced motion: bars jump to their length each tick of the clock; nothing slides.

## Props

| Prop | Type | Default | Description |
| --- | --- | --- | --- |
| `spans` (required) | `TraceSpan[]` | — |  |
| `now` | `number` | — | ms since the run started, for live bars; omit to let the trace keep its own clock while a span is running. |
| `title` | `ReactNode` | — | The run's name (the request it answered). |
| `selected / defaultSelected / onSelectedChange` | `string \| null` | — |  |
| `expanded / defaultExpanded / onExpandedChange` | `string[]` | — | Open steps. Default: every step. |
| `density` | `"compact" \| "default"` | — |  |
| `currency` | `string` | — | Cost symbol. Default "$". |
| `className / classNames / style / ref` | `root` | — |  |

## Built from

- spinner

## Dependencies

`lucide-react`

## Import

```tsx
import { RunTrace } from "@/components/run-trace/run-trace";
```

## Get it

Run trace is part of Beamline: 200+ components and 50+ complete screens for React that your coding agent (Claude Code, Codex, Cursor or any MCP client) installs into your app through Beamline's MCP server, as a ready-built package or as plain React source you can change. $49 launch price, one payment, no subscription, lifetime updates, one licence for your whole team. [Get Beamline](https://beamline.io/checkout?pack=complete) · [Connect your agent](https://beamline.io/connect)

## More in AI & agents

- [Image generation](https://beamline.io/components/image-generation): The frame an AI image is generated into: a field of brand-hued pixels breathes with the progress while the model works, then the image arrives —…
- [Flowchart](https://beamline.io/components/flowchart): A workflow as steps on a dotted canvas: a trigger, conditions that branch into paths side by side, actions and waits, read top to bottom; during a run…
- [Answer compare](https://beamline.io/components/answer-compare): Two answers to the same prompt side by side, and a person's verdict: A is better, a tie, B is better, or both are bad, with the reasons that decided it…
- [Response](https://beamline.io/components/response): An assistant's answer as streamed markdown in the system's reading type: bursty tokens flow in at an even pace, each new word fades in through a short…
- [Chat thread](https://beamline.io/components/chat-thread): People talking to people: messages grouped by person and day, reactions, delivery and read receipts that glide to the newest message read, who is typing…
- [Model picker](https://beamline.io/components/model-picker): Choose the AI model for a request by what it can do and what it costs: a trigger with the model's name opens a searchable list grouped by provider, with…
- [Task rows](https://beamline.io/components/task-rows): Background work an agent is doing, one row per task: status as a glyph and a word, what it produced, how long it has run or took, a progress bar while…
- [Conversation](https://beamline.io/components/conversation): The scrolling column of a conversation: follows new content while you are at the bottom, stops when you scroll up to read, and offers a way back; shared…
- [Context cards](https://beamline.io/components/context-cards): The knowledge an agent retrieved before it answered: one card per chunk with what it is about, the text it read with the search words marked, how…
- [Prompt suggestions](https://beamline.io/components/prompt-suggestions): Ready-made prompts a person can start from or follow up with: chips, cards or a list; a picked one lifts off and flies into the composer as its text…
- [Plan](https://beamline.io/components/plan): An agent's plan: numbered steps with live status, progress, and Approve / Edit / Reject when it needs sign-off; approving shows progress, and a refusal…
- [Approval card](https://beamline.io/components/approval-card): The agent stops and asks before it acts: what it wants to do, exactly what that changes, any choices it needs, and Approve or Reject; both run your…
- [Tool call](https://beamline.io/components/tool-call): One tool call in an agent's run: status, what it did and a short result on one quiet row that opens to the exact input and output; stops for permission…
- [Recommendation card](https://beamline.io/components/recommendation-card): One suggestion from the agent that the person may take or leave: what it suggests, why, the expected effect and how sure it is (a meter and a word…
- [Citations](https://beamline.io/components/citations): Inline numbered citations that preview their source on hover or focus, plus a numbered source list; streamed answers flow in at an even pace with the…
- [Reasoning](https://beamline.io/components/reasoning): The agent's trace, fed by your stream: a shimmering label and the seconds so far while it works, then "Thought for N seconds"; steps that check off…
- [Attachment](https://beamline.io/components/attachment): A file tile: preview or typed glyph with the type named, name, size, upload progress, error with retry, and a keyboard-reachable remove.
- [Prompt bar](https://beamline.io/components/prompt-bar): The agent composer: a field that grows, @ to add a source, / for a command, a model picker, files and dictation, and one button that sends with progress…
- [Selection actions](https://beamline.io/components/selection-actions): Select a passage and hand it to the agent: a bar over the selection with quick actions, your own instruction and More; while the agent works it says so…
- [Message](https://beamline.io/components/message): One turn in a conversation with an agent: the person's words in a quiet bubble, the agent's answer on the page with its orb mark, trace, tool calls and…
