Ballmac UI home

Agent Plan

A live task plan for agents: a vertical timeline with pending, running, done, failed and skipped steps, nested substeps, expandable output, segmented progress and retry on failure.

Fix rounding in checkout

The total is off by one cent for some carts.

0/5
  1. Opened 14 files. Totals are built in lib/cart.ts and formatted in components/summary.tsx.
  2. Pending: Choose a fix
    1. Pending: Round once, at the end
    2. Pending: Store prices as integer cents
  3. Pending: Run the test suite

Working on: Read the repository

Installation

$ pnpm dlx shadcn@latest add @ballmac/agent-plan

Usage

import { AgentPlan } from "@/components/ballmac/agent-plan"

The full example is in the Code tab above.

Examples

Failure with retry

Monthly invoice summary

2/4
  1. Done: Fetch the latest invoices0.8s
  2. The webhook returned 503 after 3 attempts.
    Last response: Service Unavailable. The payload was not stored.
  3. Skipped: Notify the finance channel

1 step failed

API reference

PropTypeDefault
steps*

The plan's steps, in order. Steps can nest one more level through `steps`.

PlanStep[]—
title

Heading of the plan.

string—
description

A sentence about the goal, under the heading.

string—
expanded

Ids of expanded steps (controlled).

string[]—
onExpandedChange

Called with the new list of expanded step ids.

(expanded: string[]) => void—
onRetry

Called when the retry button of a failed step is pressed. The button only shows when this is set.

(step: PlanStep) => void—
actions

Content on the right of the heading, such as a Stop button.

React.ReactNode—

Also accepts the standard attributes of its root element.

Accessibility

KeyAction
Enter / SpaceExpands or collapses a step's output
Screen readersEach step reads its status first; a polite status line announces the current step
ColorEvery state has an icon and, for running and failed, a word

Use with AI

steps is [{ id, title, status, description?, duration?, detail?, error?, steps? }]. Update statuses as the agent works and the timeline, progress bar and screen reader summary follow. onRetry adds a Retry button to failed steps. With the shadcn MCP server set up (guide), ask your agent:

Add the Ballmac UI Agent Plan (@ballmac/agent-plan) to this project with the shadcn MCP, then use it where it fits.

Use it for

  • Showing what an agent will do and is doing
  • Multi-step workflows that can fail part-way

Not for

  • A single tool invocation; use tool-call-card
  • Onboarding checklists; use onboarding-checklist

Registry JSON: https://ui.ballmac.com/r/agent-plan.json

Credits

Free to use in personal and commercial projects.