Analysis updated 2026-06-24 · repo last pushed 2026-05-22
Have an LLM agent generate a booking form that renders in a React or Lit web app
Let a remote specialist agent return a UI fragment that appears inside a chat thread
Build enterprise approval dashboards an agent produces on demand from JSON
Stream a progressive UI update as the agent thinks, using the trusted component catalog
| google/a2ui | chocobozzz/peertube | botpress/botpress | |
|---|---|---|---|
| Stars | 14,670 | 14,683 | 14,685 |
| Language | TypeScript | TypeScript | TypeScript |
| Last pushed | 2026-05-22 | 2026-05-20 | — |
| Maintenance | Maintained | Maintained | — |
| Setup difficulty | moderate | hard | moderate |
| Complexity | 4/5 | 4/5 | 3/5 |
| Audience | developer | ops devops | developer |
Figures from each repo's GitHub metadata at analysis time.
The renderer needs a client component catalog set up in your framework before any agent JSON will display, and the v0.8 spec is still changing.
A2UI, which stands for Agent-to-User Interface, is a Google open-source project that lets an AI agent build a real, interactive user interface for the user to look at, not just text. Generative AI is good at writing words and code, but agents often struggle to show rich screens like forms, cards, sliders, or date pickers, especially when the agent is running on a different server than the user's app. A2UI fixes that by giving agents a standard way to describe a UI in JSON. The README marks the project as version 0.8, an early public preview, with the specification still evolving. The basic idea is that the agent sends a small JSON document describing what UI it wants, and the client application renders that JSON using its own native components, whether the client is built in Flutter, Angular, Lit, React, SwiftUI, or something else. The same JSON can therefore appear on many different platforms. The project's design choices are listed plainly. Security comes first: A2UI is data, not code, and the client only allows components from a trusted catalog it controls. The format is meant to be easy for large language models to generate piece by piece, so the UI can update progressively during a conversation. The structure is separated from the implementation, so the agent does not need to know which framework the client uses. A registry pattern lets developers attach custom components, including secure iframes for legacy content, with their own sandboxing rules. The README lists three example use cases: an agent generating a custom form for a booking, an orchestrator agent passing a job to a remote specialist agent that returns a UI to show inside the main chat, and enterprise agents producing approval dashboards or charts on demand. The flow is split into generation, transport over protocols like A2A or AG UI, parsing by the A2UI Renderer, and finally rendering by mapping abstract types to real widgets. Getting started options include a five-minute Restaurant Finder demo that uses a Gemini-powered Python agent and a Lit renderer, an integration with CopilotKit for React apps, a visual A2UI Composer and Widget Builder, and a Theater that steps through pre-built streaming scenarios across Lit, React, and Angular. A Flutter SDK called GenUI also uses A2UI underneath. The full README is longer than what was shown.
Google spec and renderers that let AI agents describe interactive UIs as JSON, which client apps in React, Lit, Angular, Flutter, or SwiftUI map to native components.
Mainly TypeScript. The stack also includes TypeScript, JSON, Lit.
Maintained — commit in last 6 months (last push 2026-05-22).
Apache 2.0 lets you use, modify, and ship this commercially as long as you keep the license and notice files.
Setup difficulty is rated moderate, with roughly 30min to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Verify against the repo before relying on details.