What the agent is doing, right now

A dot-matrix indicator beside a line of status text. An agent spends most of its time in a state a person cannot see, so the indicator has one job: make the difference between working, waiting on you, and finished legible at a glance.

States

Six states. The three working states are deliberately monochrome and colour is held back for the states where it means something: waiting on a person, finished, failed. The terminal states fill the matrix solid, so the shape reads as done before the colour does.

Idle
Thinking
Reading 14 files
Waiting for approval
Finished in 4s
Tool call failed

Patterns

Fifteen named choreographies over one 4×3 grid. Each dot is told which of the cycle's twelve slots it lights in, and the dots a pattern never lights opt out entirely, so a pattern is a sequence of numbers rather than its own animation. One grid and one cycle length means switching pattern never changes the indicator's footprint or its rhythm.

Agent Braille
Agent Orbit
Agent Breathe
Agent Snake
Agent Fill sweep
Agent Pulse
Agent Columns
Agent Checkerboard
Agent Scan
Agent Rain
Agent Cascade
Agent Sparkle
Agent Wave rows
Agent Helix
Agent Diagonal swipe

The label sweep

While the agent is active a highlight sweeps the label left to right. It is the same treatment Reasoning uses on its summary, so “the model is working” looks the same wherever it appears. Turn it off with shimmer for a quieter row.

Sweeping
Not sweeping

Sizes and variants

Default, matching message text
Compact, matching compact message text

The bar variant is a full-width row for the top of a panel, where the status belongs to the whole surface rather than to a line of content.

Running the test suite

Accents

The working colours are deliberately quiet, and the status colours are spoken for. Every colour on the component routes through a custom property, though, so when several agents share a surface each row can take its identity from one of the core accent ramps: set --ds-agent-color and its label and sweep companions on the row, and the dots, the label, and the sweep all follow the accent.

Coral
Amber
Gold
Mint
Cobalt
Violet

Accessibility

The root is a polite live region and the matrix is hidden from assistive technology, so a state change is announced once as text rather than as twelve dots. Under reduced-motion preferences the matrix parks at a static, legible opacity and the sweep resolves to flat text. The meaning has to survive the animation being switched off, because for some readers it always is.