A2UI 1.0 stabilizes a generative-UI protocol with bidirectional functions, native renderers, and explicit caller permissions
Google released A2UI 1.0 on November 11 as the first stable version of its open generative-UI protocol. Agents send declarative interface descriptions while hosts render them with native React, Angular, Lit, Flutter, or SwiftUI components. Version 1.0 adds bidirectional UI-agent function calls, inline components and data, accessibility and extension metadata, plus agent SDKs for Python, TypeScript, and Dart.
Why it matters
A stable protocol moves generative-UI interoperability beyond one framework toward a message boundary shared across hosts and devices. More consequentially, functions now carry rendererOnly, agentOnly, rendererOrAgent, and requiresUserActivation semantics, allowing teams to review model-described UI separately from host-executed side effects.
A closer look
Version 1.0 can carry an initial component tree and data model in a single createSurface message and defines callRendererFunction, callAgentFunction, and paired responses. Official docs require requiresUserActivation functions to be rendererOnly, fitting actions such as opening a URL or native share sheet that must follow a direct click. Core releases add static guards for unsafe regular expressions, fallback routing for unimplemented functions, and cancellation of pending calls. Web and Flutter renderers can run inside MCP Apps, while A2UI CLI 0.3.0 adds deterministic catalog linting.
Who this is for
Protocol, frontend, agent-platform, design-system, security, and governance teams building generative interfaces across web, mobile, desktop, or MCP Apps.
Original sources
- Google Developers Blog, A2UI documentation and project releases ↗developers.googleblog.com
- A2UI caller permissions and user-activation rules ↗a2ui.org
- Official A2UI v1.0 overview and version status ↗github.com
- A2UI project package and CLI releases ↗github.com
Revisions & corrections (1)
— Google's dated launch, the official v1.0 overview, function-permission documentation, and immutable package releases jointly establish the stable protocol milestone, capabilities, migration boundaries, and incomplete platform rollout.