Skip to main content
The complete set a definition may compose from. It is closed: a renderer meeting an unknown type would have nothing to draw, so adding to it is a change to every SDK.
Generated from definition-1.2.schema.json and the token files, so it cannot fall behind what ships.

Structure

A container. The one you reach for by default, and the thing every layout is built from.
Children in one direction, spaced evenly. A Box that has already decided it is a stack.
Children left to right. Stacks automatically once the space runs out.
Children top to bottom.
requires template
Repeats one subtree over a list, either a literal items array or a bound field.
requires on + cases
Draws one case out of several, chosen by a single discriminant field.
Where a component renders inside an app. A bare slot is the conversation flow; one with select is a reaction surface.
The conversation itself. You supply the user and assistant turn subtrees, and the stream fills them.

Leaf

A string. Bound to a field, or a literal you typed.
An image, from a bound URL or a literal src.
Something to press. Carries the action that runs when it is pressed.
A text field. Its bind.value is the one two-way binding in the set: it reads and writes the same key.
added in 1.1
A choice from a fixed list of options.
Renders markdown, for text an Agent wrote rather than text you laid out.
A loading placeholder in the shape of the thing that has not arrived.
One glyph from the icon set. A literal name, or a bound field.
The voice indicator. Shows that a call is live and who is speaking.

Helper

added in 1.2
Composes an atom. props remaps fields onto it, with passes literals into it.

Next steps

Style keys

Every key a style block accepts, and what each one takes.

Components

How these compose into something an Agent can send.