agenticweb.wiki

A2UI (Agent to UI) Protocol

Last checked · 34 primary sources

This page is about A2UI, the Google-originated open format in which an agent sends a declarative JSON description of a user interface and the client draws it with its own native components [1][6]. It is not AG-UI, the agent–frontend transport protocol from the CopilotKit team, which can carry A2UI [20][27]; see Agent-User Interaction Protocol (AG-UI). It is not MCP Apps, the official MCP extension (SEP-1865) in which a server ships pre-built HTML as a ui:// resource rendered in a sandboxed iframe [20]; see MCP Apps.

Overview

A2UI lets an agent describe a user interface as data rather than code, which the client then draws: "The client application then renders this using its own native component library (Flutter, Angular, Lit, etc.)." [6], and the agent can only ask for components from a catalog of components the client already trusts [6]. The agent streams JSON messages that create a surface, add or update its components and fill its data model; v0.8 used surfaceUpdate, dataModelUpdate, beginRendering and deleteSurface, and v0.9 onward uses createSurface, updateComponents, updateDataModel and deleteSurface [13][15]. A2UI does not fix a transport: the v1.0 candidate defines bindings for AG-UI, A2A and MCP, and also lists SSE with JSON-RPC, WebSockets and REST [16]. Google maintains official Flutter, Lit, Angular and React renderers, and the project lists community renderers for other platforms [2][18].

Who uses it

Each URL below returned HTTP 200 with no redirect and no login on 2026-10-28. No app was installed and no agent was registered, so A2UI rendering was not tested in either product. No third-party consumer app was found showing a live A2UI deployment on its own pages (checked 2026-10-28).

Who reads it

Dated statements from vendors of renderers, client SDKs and agent frameworks that support A2UI.

Recent coverage

See also

References

  1. Google A2UI Team, Google Developers Blog, Introducing A2UI: An open project for agent-driven interfaces, 2025-12-15, checked 2026-10-28: "Today we are making the A2UI project public so we can collaborate with others on this early stage format and implementations." "Our format is currently at v0.8 because we have been through many rounds of battle hardening and testing for the initial use cases, and there is more to evolve and discover." "We have early, but working, client libraries for Flutter, Web Components and Angular." "A2UI is an Apache 2 licensed project, and we believe its success depends on the community." "Instead of retrieving an opaque payload to display in a sandbox, an A2UI agent sends a blueprint of native components." "AG-UI fully supports the A2UI spec for rich declarative generative UIs dynamically generated by agents." "We're excited to provide day-0 compatibility between AG-UI and A2UI." "In the next few weeks, you'll be able to see and experience A2UI in action in Opal." — https://developers.googleblog.com/introducing-a2ui-an-open-project-for-agent-driven-interfaces/
  2. Google A2UI Team, Google Developers Blog, A2UI v0.9: The New Standard for Portable, Framework-Agnostic Generative UI, 2026-04-17, checked 2026-10-28: "A2UI v0.9 is our answer; a framework-agnostic standard for declaring UI intent." "We've also landed the official React renderer and version-bumped all A2UI supported renderers (Flutter, Lit, Angular, and React), while carving out a dedicated spot for community renderers." — https://developers.googleblog.com/a2ui-v0-9-generative-ui/
  3. Google A2UI Team, Ido Salomon and Liad Yosef, Google Developers Blog, A2UI + MCP Apps: Combining the best of declarative and custom agentic UIs, 2026-06-17, checked 2026-10-28: "We are considering making a MCP extension to support A2UI, making these patterns easier to adopt." "it returns a structured JSON payload with a specific MIME type: application/a2ui+json" — https://developers.googleblog.com/a2ui-and-mcp-apps/
  4. GitHub, a2ui-project/a2ui repository metadata (API): created 2025-09-24, licence Apache-2.0, homepage https://a2ui.org/, owner type Organization, checked 2026-10-28: ""full_name": "a2ui-project/a2ui"" ""created_at": "2025-09-24" ""spdx_id": "Apache-2.0"" — https://api.github.com/repos/a2ui-project/a2ui
  5. GitHub, a2ui-project organisation metadata (API): created 2026-03-03, checked 2026-10-28: ""login": "a2ui-project"" ""created_at": "2026-03-03" — https://api.github.com/orgs/a2ui-project
  6. A2UI project, a2ui-project/a2ui (README on main) (text checked at the raw.githubusercontent.com copy), checked 2026-10-28: "The client application then renders this using its own native component library (Flutter, Angular, Lit, etc.)." "Your client application maintains a "catalog" of trusted, pre-approved UI components (e.g., Card, Button, TextField), and the agent can only request to render components from that catalog." "The UI is represented as a flat list of components with ID references which is easy for LLMs to generate incrementally, allowing for progressive rendering and a responsive user experience." "A2UI's current production release is v0.9.1, a patch release in the stable v0.9 protocol family. The v1.0 specification is a release candidate, while v0.8 is legacy." "Early stage public preview" — https://github.com/a2ui-project/a2ui
  7. A2UI project, CONTRIBUTING.md on main, checked 2026-10-28: "Contributions to this project must be accompanied by a Contributor License Agreement (CLA)." "This project follows Google's Open Source Community Guidelines" — https://raw.githubusercontent.com/a2ui-project/a2ui/main/CONTRIBUTING.md
  8. A2UI project, LICENSE on main (Apache License, Version 2.0), checked 2026-10-28: "Apache License Version 2.0, January 2004" — https://raw.githubusercontent.com/a2ui-project/a2ui/main/LICENSE
  9. GitHub API, a2ui-project/a2ui tags: v0.8 and v0.9 both point to commit 19919ef, checked 2026-10-28: ""name": "v0.9"" ""name": "v0.8"" ""sha": "19919ef4c8ad3185867f70386fa4669284d7714c"" — https://api.github.com/repos/a2ui-project/a2ui/tags
  10. GitHub API, commit 19919ef in a2ui-project/a2ui, committed 2026-04-06, checked 2026-10-28: ""sha": "19919ef4c8ad3185867f70386fa4669284d7714c"" ""date": "2026-04-06" — https://api.github.com/repos/a2ui-project/a2ui/commits/19919ef4c8ad3185867f70386fa4669284d7714c
  11. GitHub API, a2ui-project/a2ui releases (Python packages only), checked 2026-10-28: ""tag_name": "python/a2ui-agent-sdk/v0.9.0"" ""published_at": "2026-10-17" — https://api.github.com/repos/a2ui-project/a2ui/releases
  12. A2UI project, a2ui.org home page, checked 2026-10-28: "A2UI is Apache 2.0 licensed, created by Google with contributions from CopilotKit and the open source community, and is in active development on GitHub." — https://a2ui.org/
  13. A2UI project, A2UI Protocol v0.8 (Legacy), checked 2026-10-28: "Created: Sep 19, 2025 Updated: Nov 12, 2025" "Communication occurs via a JSON Lines (JSONL) stream. The client parses each line as a distinct message and incrementally builds the UI." "surfaceUpdate: Provides a list of component definitions to be added to or updated in a specific UI area called a "surface."" "dataModelUpdate: Provides new data to be inserted into or to replace a surface's data model. Each surface has its own data model." "beginRendering: Signals to the client that it has enough information to perform the initial render, specifying the ID of the root component and, optionally, the component catalog to use." — https://a2ui.org/specification/v0.8-a2ui/
  14. A2UI project, A2UI Protocol v0.9, checked 2026-10-28: "Version: 0.9 Status: Stable Created: Nov 20, 2025" — https://a2ui.org/specification/v0.9-a2ui/
  15. A2UI project, A2UI Protocol v0.9.1 (Current), checked 2026-10-28: "Version: 0.9.1 Status: Current Production Created: Nov 20, 2025 Last Updated: Dec 3, 2025" "The server-to-client protocol defines four message types: createSurface: Signals the client to create a new surface and begin rendering it. updateComponents: Provides a list of component definitions to be added to or updated in a specific surface. updateDataModel: Provides new data to be inserted into or to replace a surface's data model. deleteSurface: Explicitly removes a surface and its contents from the UI." "Version 0.9 introduced A2UI's prompt-first protocol family. While v0.8 was optimized for LLMs that support structured output, v0.9 is designed to be embedded directly within a model's prompt." — https://a2ui.org/specification/v0.9.1-a2ui/
  16. A2UI project, A2UI Protocol v1.0 (Candidate), checked 2026-10-28: "Version: 1.0 Status: Candidate Created: Nov 20, 2025 Last Updated: Jun 8, 2026" "Version 1.0 (previously v0.10 in draft) is currently a release candidate." "While A2UI is transport agnostic, it is most commonly used with the following transports." "AG-UI is the standard transport binding for Agent-to-User Interaction." "The A2A Extension maps A2UI over the A2A Protocol. It standardizes metadata placement, renderer-to-agent capability negotiation, and bidirectional data model synchronization for agent-to-agent interactions." "A2UI can be carried over MCP tool calls, tool outputs, or resource subscriptions, allowing agents to dynamically render rich user interfaces for renderer-side applications." "WebSockets: For bidirectional, real-time sessions." "REST: For simple use case, REST APIs will work but lack streaming capabilities." "a DataBinding ({"@path": "..."} using JSON Pointer)" — https://a2ui.org/specification/v1.0-a2ui/
  17. A2UI project, A2A Extension for A2UI v0.9.1, checked 2026-10-28: "The URI of this extension is https://a2ui.org/a2a-extension/a2ui/v0.9.1" "A2UI extension activation is optional as clients and agents can negotiate A2UI support using A2A message.metadata["a2uiClientCapabilities"] which is attached to every A2A message from the client and contains the supported protocol version and catalogs." "Agents advertising A2UI support in their AgentCard is encouraged as clients may rely on it to determine if they should send message.metadata["a2uiClientCapabilities"], however it is not explicitly required." — https://a2ui.org/specification/v0.9.1-a2ui-extension-specification/
  18. A2UI project, Roadmap, checked 2026-10-28: "Web Core" "Flutter (GenUI SDK)" "SwiftUI" — https://a2ui.org/roadmap/
  19. A2UI project, A2UI in the World, checked 2026-10-28: "They use A2UI to power the dynamic, generative UI system that makes Opal's AI mini-apps possible." "Managed agents deployed on Vertex AI Agent Engine and registered using the adkAgentDefinition path do not currently support A2UI rendering." "OpenClaw uses A2UI to render agent-generated UI on connected devices via its canvas system." — https://a2ui.org/ecosystem/a2ui-in-the-world/
  20. A2UI project, How Does A2UI Compare?, checked 2026-10-28: "AG-UI is a transport protocol connecting agent backends to frontends with real-time state sync. A2UI is a UI format: the payload that describes what to render. They're complementary: use AG-UI as the pipe, A2UI as the content." "MCP Apps treat UI as a resource: servers provide pre-built HTML via ui:// URIs, rendered in sandboxed iframes." "A2UI takes a declarative UI approach: agents send component blueprints" — https://a2ui.org/introduction/agent-ui-ecosystem/
  21. Dave Wang and Yuan Tian, Google Cloud Blog, Developer's guide to Gemini Enterprise and A2UI integration, 2026-05-30, checked 2026-10-28: "Gemini Enterprise ships with a built-in A2UI renderer." — https://cloud.google.com/blog/topics/developers-practitioners/guide-to-gemini-enterprise-and-a2ui-integration/
  22. Google, Opal home page (an app shell; the fetched HTML does not contain the string "A2UI"), checked 2026-10-28: "Opal" — https://opal.google/
  23. OpenClaw, Dashboards documentation (dashboards.md), checked 2026-10-28: "A2UI widgets and the plugin API for registering widget content kinds have been removed." — https://docs.openclaw.ai/web/dashboards.md
  24. Andrew Brogdon, The Flutter Blog, New updates to A2UI and Flutter's GenUI package, 2026-05-14, checked 2026-10-28: "For Flutter developers, implementing GenUI means using A2UI, an open protocol that defines a way for agents and clients (or "renderers") to collaborate on the composition and state of a user interface." — https://flutter.dev/blog/new-updates-to-a2ui-and-flutters-genui-package
  25. Flutter team, flutter/genui (README), checked 2026-10-28: "The Flutter Gen UI SDK uses the A2UI protocol to represent UI content internally." "The Flutter Gen UI SDK currently supports A2UI v0.9." — https://github.com/flutter/genui
  26. CopilotKit documentation, A2UI (undated), checked 2026-10-28: "Once configured, any A2UI output returned from your agent will automatically be rendered in the chat interface — no additional frontend code required." — https://docs.copilotkit.ai/generative-ui/a2ui
  27. AG-UI documentation, AG-UI Overview (undated), checked 2026-10-28: "A2UI is a generative UI specification - allowing agents to deliver UI widgets, where AG-UI is the Agent↔User Interaction protocol - which connects an agentic frontend to any agentic backend." — https://docs.ag-ui.com/introduction
  28. Mark Sze, AG2 blog, A2UIAgent: Rich UI from Your AG2 Agents, 2026-03-20, checked 2026-10-28: "Instead of returning plain text, the agent generates structured JSON that client-side renderers transform into native UI components." — https://docs.ag2.ai/latest/docs/blog/2026/03/20/AG2-A2UI/
  29. Lynx, lynx-family/lynx-stack packages/genui (README) (text checked at the raw.githubusercontent.com copy), checked 2026-10-28: "@lynx-js/genui is the single npm package for the GenUI toolchain. It exposes A2UI rendering, OpenUI rendering, A2UI prompt/catalog utilities, Lynx XML utilities, ReactLynx generation/build utilities, and the CLI from one package while keeping implementation directories private to this monorepo." — https://github.com/lynx-family/lynx-stack/tree/main/packages/genui
  30. npm registry, @lynx-js/genui: created 2026-05-25; latest 0.7.1, published 2026-10-23, checked 2026-10-28: ""name":"@lynx-js/genui"" ""latest":"0.7.1"" ""2026-05-25" — https://registry.npmjs.org/@lynx-js/genui
  31. AGenUI, AGenUI/AGenUI (README) (text checked at the raw.githubusercontent.com copy), checked 2026-10-28: "AGenUI is a high-performance A2UI SDK for building native generative UI experiences across iOS, Android, and HarmonyOS." "What's New in v1.7.0 Released on 2026-10-19" — https://github.com/AGenUI/AGenUI
  32. Jenna Barron, SD Times, Google launches A2UI project to enable agents to build contextually relevant UIs, 2025-12-16, checked 2026-10-28: "A2UI offers a standard declarative data format for agents to generate structured output that can then be sent to the client application, which renders it using its own native UI components, retaining full control over styling and security." — https://sdtimes.com/ai/google-launches-a2ui-project-to-enable-agents-to-build-contextually-relevant-uis/
  33. Richard MacManus, The New Stack, Agent UI Standards Multiply: MCP Apps and Google's A2UI, 2025-12-19, checked 2026-10-28: "New standards for AI agent UIs highlight key differences between Google's native-first A2UI and the web-centric MCP Apps favored by OpenAI." — https://thenewstack.io/agent-ui-standards-multiply-mcp-apps-and-googles-a2ui/
  34. Daniel Curtis, InfoQ, Google Releases A2UI v0.9: Portable, Framework-Agnostic Generative UI, 2026-07-03, checked 2026-10-28: "Google has released A2UI v0.9, a framework-agnostic standard that lets AI agents declare user interface intent and render it natively across web, mobile, and desktop without shipping arbitrary code." — https://www.infoq.com/news/2026/07/google-a2ui-genui/

JSON · Markdown · OKF v0.2