This is an early release preview. You may encounter bugs.
A2ui logo
Unclaimed

Tool inference interface

A2ui

A 80/100 GitHub score ? This grade is derived from GitHub signals, not user votes. Open for the full breakdown.
Discussion

01 / Summary

About A2ui.

A2UI (Agent-to-User Interface) is an open protocol and set of renderer libraries that let agents send rich, interactive user interfaces to a client without executing code. An agent sends a declarative JSON description of the UI's intent, and the client renders it with its own native component library, so the same payload displays on web, mobile, and desktop clients built on different frameworks. The project is an early public preview: v0.9.1 is the current production release, v1.0 is a release candidate, and v0.8 is legacy.

The client keeps a catalog of trusted, pre-approved components (such as Card, Button, and TextField), and the agent can only request components from that catalog. The UI is a flat list of components with ID references, which LLMs can generate incrementally, so the interface streams and renders progressively and the agent can update it as the conversation continues. An open registry maps server-side types to custom client implementations, including iframe containers for legacy content, with sandboxing policies enforced in the developer's own component logic.

The flow separates UI generation from execution: an agent (using Gemini or another LLM that produces JSON) generates an A2UI response, a transport such as A2A or AG-UI carries it to the client, and the client's A2UI renderer maps abstract components to concrete widgets. Renderers exist for Angular, Flutter, Lit, React, and Markdown, and the Flutter GenUI SDK uses A2UI under the hood. Through the AG-UI scaffolding CLI, A2UI rendering works with frameworks such as Agent Development Kit (ADK), LangGraph, CrewAI, Mastra, and Strands Agents.

  • Declarative format: agents send JSON component descriptions, not executable code
  • Component catalog: clients allow only pre-approved components, which blocks UI injection
  • Incremental streaming: a flat component list with ID references lets LLMs build and update the UI progressively
  • Portable rendering: one payload renders with each client's native widgets on Angular, Flutter, Lit, React, and Markdown renderers
  • Custom components: an open registry with Smart Wrappers connects existing components to A2UI data binding and events
  • Transports: works over A2A and AG-UI
  • A2UI Composer: a visual editor that generates A2UI JSON to paste into an agent prompt
  • A2UI Theater: pre-built streaming scenarios across Lit, React, and Angular renderers

02 / Discussion CREDIBILITY-GATED

Discussion

Reading is open to everyone. Posting and voting need a verified identity or a GitHub grade of B or higher.

  • No discussions yet.

04 / Build

Build with A2ui.

Browse the catalog for frameworks, tools, and harnesses, each scored on real GitHub credibility.

Get A2ui →

Browse the catalog