a2ui-project / a2ui
git clone https://github.com/a2ui-project/a2ui.git
python/a2ui-adk/v0.1.0 · 5d ago
—
+5
stars, 24h · #2,942
+~35
stars, 7 days · #3,570
+~150
stars, 30 days · #3,566
17k
★ total · +0% this week
1.3k
forks · 517 open issues
Star history (as recorded here)
LanguageTypeScript
LicenseApache-2.0
Created2025-09-24 (1y ago)
Last pushtoday
Watchers98
OwnerOrganization
Links
- GitHub: github.com/a2ui-project/a2ui
- Homepage: https://a2ui.org/
- Releases · Issues · Hacker News mentions
README excerpt
# A2UI: Agent-to-User Interface A2UI is an open-source project, complete with a format optimized for representing updatable agent-generated UIs and an initial set of renderers, that allows agents to generate or populate rich user interfaces. _A gallery of A2UI rendered cards, showing a variety of UI compositions that A2UI can achieve._ ## ⚠️ Status: Early stage public preview > **Note:** 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. The specification and implementations are > functional but are still evolving. We are opening the project to foster > collaboration, gather feedback, and solicit contributions (e.g., on client > renderers). Expect changes. ## Summary Generative AI excels at creating text and code, but agents can struggle to present rich, interactive interfaces to users, especially when those agents are remote or running across trust boundaries. **A2UI** is an open standard and set of libraries that allows agents to "speak UI." Agents send a declarative JSON format describing the _intent_ of the UI. The client application then renders this using its own native component library (Flutter, Angular, Lit, etc.). This approach ensures that agent-generated UIs are **safe like data, but expressive like code**. ## High-level philosophy A2UI was designed to address the specific challenges of interoperable, cross-platform, generative or template-based UI responses from agents. The project's core philosophies: - **Security first**: Running arbitrary code generated by an LLM may present a security risk. A2UI is a declarative data format, not executable code. 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. - **LLM-friendly and incrementally updatable**: 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. An agent can efficiently make incremental changes to the UI based on new user requests as the conversation progresses. - **Framework-agnostic and portable**: A2UI separates the UI structure from the UI implementation. The agent sends a description of the component tree and its associated data model. Your client application is responsible for mapping these abstract descriptions to its native widgets—be it web components, Flutter widgets, React components, SwiftUI views or something else entirely. The same A2UI JSON payload from an agent can be rendered on multiple different clients built on top of different frameworks. - **Flexibility**: A2UI also features an open registry pattern that allows developers to map server-side types to custom client implementations, from native mobile widgets to React components. By registering a "Smart Wra