A2UI
A2UI is an open-source project with a format optimized for representing updatable agent-generated UIs and an initial set of renderers. It enables agents to generate or populate rich user interfaces.
Summary
Generative AI excels at creating text and code, but agents can struggle to present rich, interactive interfaces to users, especially when those agents are remote or running across trust boundaries.
A2UI is an open standard and set of libraries that allows agents to “speak UI.” Agents send a declarative JSON format describing the intent of the UI. The client application then renders this using its own native component library.
Core strengths
- Security first
- LLM-friendly and incrementally updatable
- Framework-agnostic and portable
- Flexible custom registry and wrappers
High-level philosophy
A2UI was designed to address the challenges of interoperable, cross-platform, generative or template-based UI responses from agents.
Security first
- Declarative data format instead of executable code.
- Client keeps a trusted catalog of approved components.
- Agents can only request trusted UI primitives.
LLM-friendly
- Flat list of components with ID references.
- Easy to update incrementally as chat state changes.
- Progressive and responsive rendering.
Framework-agnostic
- Same JSON payload can render across web, Flutter, and more.
- Client maps abstract UI to native widgets.
- Works across different host frameworks.
Use cases
Dynamic Data Collection
Agents generate bespoke forms and workflows based on the current conversation, such as specialized reservations or requests.
Remote Sub-Agents
An orchestrator can delegate a task to a specialized agent and render its returned UI payload directly inside the main experience.
Adaptive Workflows
Enterprise agents generate approval dashboards, visualizations, and task flows dynamically based on user intent.
Architecture
Generation
An agent generates an A2UI JSON payload describing the composition of components and properties.
Transport
The payload is sent to the client application via A2A, AG-UI, or another transport.
Resolution
The client’s A2UI renderer parses the message and resolves component intent.
Rendering
The renderer maps abstract components to the concrete implementation in the application codebase.
Dependencies
A2UI is designed to be lightweight, but it fits into a larger ecosystem:
- Transports: A2A Protocol and AG-UI
- LLMs: Any model capable of generating structured JSON output
- Host Frameworks: Web or Flutter, with more renderers emerging over time
Getting started
Restaurant Finder Demo
Full-stack A2UI running locally with a Gemini-powered ADK agent and Lit renderer.
Open quickstart →Use A2UI with any agent framework
Scaffold an AG-UI app or harness and enable A2UI rendering for your framework of choice.
Read guide →A2UI Composer
Generate A2UI JSON from a visual editor and paste it into any agent prompt.
Launch composer →A2UI Theater
Step through pre-built A2UI streaming scenarios for Lit, React, and Angular renderers.
Open theater →Quickstart Example
git clone https://github.com/a2ui-project/a2ui.git cd a2ui export GEMINI_API_KEY="your_gemini_api_key" corepack enable yarn install cd samples/client/lit yarn demo:restaurant
Roadmap
Spec stabilization
- Moving toward a v1.0 specification.
- Improving long-term compatibility and clarity.
More renderers
- Official support for React, Jetpack Compose, SwiftUI, and more.
Additional transports
- Support for REST and additional transport layers.
More frameworks
- Support across Genkit, LangGraph, and other agent stacks.
Contribute
A2UI is an Apache 2.0 licensed project. We believe the future of UI is agentic, and we want to work with the community to help build it.
Learn how to contribute