agenticweb.wiki

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

Not probed live: no-fixed-path. A2UI is carried inside an AG-UI, A2A or MCP session; no fixed path.

History

Instances

Every instance with its source is listed on the instances page.

See also

References

  1. 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
  2. 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
  3. 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.

JSON · Markdown