A Protocol for Agent-Driven Interfaces¶

3 min read Original article ↗

A2UI Logo

A2UI Logo

A2UI enables AI agents to generate rich, interactive user interfaces that render natively across web, mobile, and desktop—without executing arbitrary code.

️Status: Early Stage Public Preview

A2UI is currently in v0.8 (Public Preview). The specification and implementations are functional but are still evolving. We are opening the project to foster collaboration, gather feedback, and solicit contributions (e.g., on client renderers). Expect changes.

At a Glance

A2UI is currently v0.8, Apache 2.0 licensed, created by Google with contributions from CopilotKit and the open source community, and is in active development on GitHub.

The problem A2UI solves is: how can AI agents safely send rich UIs across trust boundaries?

Instead of text-only responses or risky code execution, A2UI lets agents send declarative component descriptions that clients render using their own native widgets. It's like having agents speak a universal UI language.

In this repo you will find A2UI specifications and implementations for renderers (eg: Angular, Flutter, etc.) on the client side, and transports (eg: A2A, etc.) which communicate A2UI messages between agents and clients.

  • Secure by Design


    Declarative data format, not executable code. Agents can only use pre-approved components from your catalog—no UI injection attacks.

  • LLM-Friendly


    Flat, streaming JSON structure designed for easy generation. LLMs can build UIs incrementally without perfect JSON in one shot.

  • Framework-Agnostic


    One agent response works everywhere. Render the same UI on Angular, Flutter, React, or native mobile with your own styled components.

  • Progressive Rendering


    Stream UI updates as they're generated. Users see the interface building in real-time instead of waiting for complete responses.

Get Started in 5 Minutes

How It Works

  1. User sends a message to an AI agent
  2. Agent generates A2UI messages describing the UI (structure + data)
  3. Messages stream to the client application
  4. Client renders using native components (Angular, Flutter, React, etc.)
  5. User interacts with the UI, sending actions back to the agent
  6. Agent responds with updated A2UI messages

End-to-End Data Flow

A2UI in Action

Landscape Architect Demo

Watch an agent generate all of the interfaces for a landscape architect application. The user uploads a photo; the agent uses Gemini to understand it and generate a custom form for landscaping needs.

Custom Components: Interactive Charts & Maps

Watch an agent chose to respond with a chart component to answer a numerical summary question. Then the agent chooses a Google Map component to answer a location question. Both are custom components offered by the client.

A2UI Composer

CopilotKit has a public A2UI Widget Builder to try out as well.

A2UI Composer