A2UI (Agent to UI) Protocol A2UI
Present A2UI (Agent to UI) is a JSON message protocol that lets an agent describe and incrementally stream a declarative, framework-neutral user interface to a client renderer. Communication is a stream of JSON objects; the agent-to-renderer protocol defines four message types — createSurface, updateComponents, updateDataModel, and deleteSurface — and the renderer maps abstract component descriptions (Card, Button, TextField, etc.) onto its own native widgets (Flutter, Angular, Lit, React, SwiftUI, or plain web components) [1]. The core design goal is safety: agents can only reference components from a client-defined, pre-approved 'catalog,' so a UI payload is 'safe like data, but expressive like code' rather than executable code [2].
Overview
A2UI does not define its own transport. It is explicitly transport-agnostic and is documented with named bindings for three carriers: AG-UI (described as A2UI's 'standard transport binding'), the A2A protocol (via a dedicated A2A extension spec), and MCP (carried over tool calls, tool outputs, or resource subscriptions), plus generic support for SSE+JSON-RPC, WebSockets, and REST [1]. It solves the problem of agents needing to present rich, interactive interfaces — especially remote agents or agents running across a trust boundary — without shipping arbitrary executable code to the client [2]. It does not itself specify authentication, payment, or discovery of an agent's existence; those are left to whichever transport (AG-UI, A2A, MCP) carries it.
Current state (as of 2026-09-05): the project describes itself as an 'early stage public preview.' The production-recommended version is v0.9.1 (a patch on the stable v0.9 family); v1.0 is a release candidate adding bidirectional typed function calls and single-message UI instantiation; v0.8 is legacy [2]. The canonical repository, github.com/a2ui-project/a2ui, carries an Apache-2.0 license and Google LLC copyright headers, and the spec site's own 'view source' link resolves to that same repository [1][2]. Reference renderers exist for Flutter and web frameworks (Lit, Angular, React), with a visual 'A2UI Composer' and a multi-renderer 'A2UI Theater' demo; the AG-UI project ships an a2ui-toolkit package and CopilotKit has added catalog-forwarding integration, indicating active cross-project use rather than a single-vendor demo [3].
What is disputed or unknown: whether A2UI should be classified as a single-vendor (Google) spec or something closer to a vendor-consortium is judgment-dependent — the code and copyright are Google's, but the working GitHub org name ('a2ui-project') and the AG-UI/CopilotKit integration suggest broader de facto involvement. AG-UI's own docs (fetched 2026-09-05) still point to github.com/google/A2UI rather than the current a2ui-project org, an unresolved naming/rename inconsistency. No independent adoption count exists; observed ecosystem activity (16.3k GitHub stars, AG-UI/CopilotKit integration, multiple demo renderers) has not been converted into a documented probe run, so adoption here is 'observed,' not 'measured.'
Discovery and probe
No fixed well-known path; renderer and agent capabilities (supported catalogs, custom components) are exchanged via transport-specific handshakes, e.g. A2A Agent Cards or MCP initialization metadata
GET {endpoint} — the AG-UI, A2A, or MCP endpoint the agent exposes; inspect its handshake/Agent Card/initialization payload
parse: Presence of an A2UI catalogId/capability declaration in the handshake metadata, or a createSurface/updateComponents/updateDataModel/deleteSurface message in the response stream
on absent: No A2UI capability declared; the agent returns only text or opaque structured JSON, not a declarative UI surface
History
- 2026-09-05 — seeded from Exa Agent research run
- 2026-09-06 — verified against a2ui.org v1.0 spec and github.com/a2ui-project/a2ui
Instances
- AG-UI / CopilotKit (names AG-UI as A2UI's standard transport binding; ships an a2ui-toolkit package and catalog-forwarding integration) · Observed 2026-09-05 · service
- A2UI Theater (Lit/React/Angular streaming demo renderers) · Observed 2026-09-05 · service
- A2UI Composer (visual JSON editor) · Observed 2026-09-05 · service
- Google Maps Agentic UI Toolkit (A2UI) · Observed 2026-05-14 · service
- ANGULARarchitects A2UI/AG-UI integration · Observed 2026-05-01 · business
- CopilotKit · Observed 2026-04-17 · service
- Oracle Open Agent Spec · Observed 2026-03-12 · business
See also
- Not to be confused with: AG-UI
References
- A2UI Protocol v1.0 spec text (Status: Candidate, Created Nov 20 2025, Last Updated Jun 8 2026) defines a streaming JSON UI protocol with four agent-to-renderer message types (createSurface, updateComponents, updateDataModel, deleteSurface) and named transport bindings for AG-UI, A2A, and MCP. — https://a2ui.org/specification/v1.0-a2ui/ (2026-06-08) VERIFIED
- Canonical repo github.com/a2ui-project/a2ui: Apache-2.0 license, Google LLC copyright headers, README states current status 'Early stage public preview' with v0.9.1 as the current production release, v1.0 a release candidate, v0.8 legacy; renderers/host frameworks listed are Web and Flutter, with Lit/Angular/React renderer demos. — https://github.com/a2ui-project/a2ui (2026-09-05) VERIFIED
- AG-UI's own documentation lists A2UI as a supported 'Generative UI, declarative' spec and names AG-UI as A2UI's standard transport binding, but still links A2UI to github.com/google/A2UI rather than the current a2ui-project org. — https://docs.ag-ui.com/introduction (2026-09-05) VERIFIED
Disputed: Two GitHub locations are both cited for A2UI: the canonical 'View source of this page' link on a2ui.org points to a2ui-project/a2ui, but AG-UI's own docs (fetched 2026-09-05) still link A2UI to github.com/google/A2UI. This looks like an org rename or fork that the AG-UI docs have not caught up with, not a governance dispute, but it is unresolved which is authoritative going forward.