Generative UI is interface an agent composes on the spot. The person can tell agent-built controls from the product's own. The controls reach only what they were allowed to, and their origin is marked.
When to Use It
Agents compose UI at runtime inside your product
Third-party surfaces need sandboxing and a declared contract
Generated interface must be distinguishable from host interface
When Not To
A fixed template would do — generation adds risk without value
You can't sandbox rendering — don't ship what you can't contain
Generated UI would collect input the host never sees
Three views
The exchange between the human, the agent and the system the agent acts on; who holds each part of it; and the component that implements it.
01 · the interaction
02 · who holds what
01SlotThe place on screen where AI-built controls appear
02SandboxThe fence that keeps AI-built controls from reaching anything else
03AllowlistThe parts the AI is allowed to build with
04ProvenanceA mark that says the AI made this control
03 · the component
generative ui · primitives
Slot
Sandbox
Allowlist
Provenance
primitive wireframe, generated from the anatomy — the installable component ships when this
pattern's anatomy stabilizes
The view is bound to the agent that made it. That one design move changes what a human can do: they can see who built the surface before they touch it. Generative-ui without that binding leaves the human with no footing.
The revised agent dynamically shifts its reply style — greeting and affect-reception vs. direct execution — based on inferred user stance, constituting an adaptive response surface.
Chart unlocks as the corpus grows — n = 0 mentions across 0 quarters.
AnthropicMCP Apps / artifacts
OpenAIApps SDK / canvas
Tensions & Failure Modes
Expressiveness vs. safety: the more the agent can render, the more it can misrender
Host coherence: generated UI that ignores host conventions erodes trust
What we are learning from the community
Readers who build with Generative UI add what they found: questions, use cases, critiques, other ways to solve it.
An editor reads each one before it shows here. Nothing here changes the pattern's status on its own.
This pattern has no contributions yet. The form below sends the first one.