Skip to main content
Design the interfaces your Agents speak through. You write a component once, in YAML, and every channel renders it natively.
Server-driven UI
The interface travels as data
UI is data, not code. Your universe sends the definition. An SDK on the other side draws it with that device’s own native controls.

One definition serves every channel: your website, your iOS and Android apps, ChatGPT, Claude. Publish a change and it is live on every one of them, with no rebuild or release cycle.

How it works here · MCP Apps · SDUI
Why YAML. It is the plainest thing that can carry structure. Your editor checks it against a schema as you type. Any AI tool you already use can read and write it. There is nothing to compile. Definitions are composed from a small closed set of primitives, and every visual value is a token name the theme resolves. That is all the theory this page needs. The Design tab is the full journey.

Build it

1

Open Studio

Open studio:
Then open Components. Every definition renders from its prop defaults, and the controls walk its layouts and states.Open the code view on any of them: the definition on one side, the live preview on the other. Edit the definition and the preview follows as you save.A component definition open in studio, with its code beside the live preview
2

Create your org

Your own work lives in your org: its components, its apps, its brand. The folder you run in becomes its name, and that name travels with everything the org publishes.
Terminal
Choose Studio. Adding a second org later is the New project item in studio’s project dropdown.You get three folders, and your org sits inside design/:
A worked example lands in each, so no folder starts empty: a welcome component, a chat app, and a colour file showing how the token cascade works.
3

Make your theme

The first design work in a new org is the brand. It lives in design/acme/styles/:Start with base/color.yaml and base/typography.yaml: your palette and your fonts. In studio, switch to your org and change a value. Every component re-renders in your brand, live, with no build step. Edit the file, and the preview follows as you save.Change token values freely; keep every token name, and the theme contract stays green.
4

Create your own component

Author your component in your project, at design/acme/components/pricecard/pricecard.yaml. The file name is the component’s name, and the lint enforces it. Here is a complete simple price card, and what it renders:
design/acme/components/pricecard/pricecard.yaml
Reading it top to bottom:
5

Check it

Lint runs when you ship, and blocks on any error, so nothing broken reaches a universe.The linter enforces the design rules with doc-cited messages: token names only (no raw px or hex), every bound field declared in props, one home for every piece of state. studio and the platform apply the same rules, so a clean lint means it ships.
6

Put it in a workflow

One Component node serves every component you write, so there is nothing to register and nothing to restart. A new definition is renderable the moment you save it.Your component travels from studio to canvas by copy and paste:
  1. In studio, open PriceCard under Components.
  2. Click Copy for Canvas. The component is copied to your clipboard as a canvas node. The Copy for Canvas button in Studio
  3. In canvas, open your workflow and paste with Cmd+V. The node lands on the canvas, sized to the card.
  4. Double-click it and fill its fields, the same title, price, and features you saw in the Data tab, from upstream signals or literals.
Step through the workflow and the card renders live in the conversation, in your org’s theme.
Restarts are only for new components, because the platform synthesizes a node per definition at boot. Edits to existing components apply live.

How far this goes

A price card is the small end. A component can carry states and layouts of its own: a wizard that walks through steps, a card that expands to full screen, a product finder with its own private flow. Apps go further. They are whole microapps, with their own layouts and states, discovered and opened by Agents in the conversation. State is handled for you. Each component owns its own, and the platform keeps one shared state for the whole conversation. Views, panels and flows stay in sync, with no state library to wire. The Design section covers all of it: components, state, apps and tokens.

Have Claude Code build it

Installed by unoverse update
unoverse-create
The same skill that builds nodes designs components. Open your project and describe what you want:
Create a pricing card component with a title, three feature lines, and a call to action.
It follows the rules this page just walked through: the closed primitives, token names only, a realistic default on every prop. What it writes passes the same lint your own work does.

How the skills work.

Next steps

The Design journey

Components, state, apps, and tokens, in full depth.

Create a client app

Put your Agent on your own website.