GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - a2ui-project/a2ui: Open-source generative UI framework: agents stream layout data, and apps render it with native components in React, Angular, Lit, Flutter, SwiftUI and Jetpack Compose.

BranchesTags
Open more actions menu

Latest commit

 

History

1,906 Commits
1,906 Commits

Folders and files

NameName
Last commit message
Last commit date
.agents/skills
.agents/skills
 
 
.gemini
.gemini
 
 
.github
.github
 
 
.vscode
.vscode
 
 
blueprints
blueprints
 
 
catalogs
catalogs
 
 
conformance
conformance
 
 
dart
dart
 
 
docs
docs
 
 
eval
eval
 
 
kotlin/agent_sdk_legacy
kotlin/agent_sdk_legacy
 
 
python
python
 
 
samples
samples
 
 
scripts
scripts
 
 
skills/a2ui
skills/a2ui
 
 
specification
specification
 
 
swift
swift
 
 
tools
tools
 
 
typescript
typescript
 
 
.editorconfig
.editorconfig
 
 
.geminiignore
.geminiignore
 
 
.gitignore
.gitignore
 
 
.prettierignore
.prettierignore
 
 
.prettierrc
.prettierrc
 
 
.syncpackrc
.syncpackrc
 
 
.yarnrc.yml
.yarnrc.yml
 
 
AGENTS.md
AGENTS.md
 
 
CONTRIBUTING.md
CONTRIBUTING.md
 
 
LICENSE
LICENSE
 
 
Package.swift
Package.swift
 
 
README.md
README.md
 
 
analysis_options.yaml
analysis_options.yaml
 
 
context7.json
context7.json
 
 
eslint.preset.mjs
eslint.preset.mjs
 
 
hooks.py
hooks.py
 
 
lychee.toml
lychee.toml
 
 
mkdocs.yaml
mkdocs.yaml
 
 
package.json
package.json
 
 
pubspec.yaml
pubspec.yaml
 
 
pyproject.toml
pyproject.toml
 
 
requirements-docs.txt
requirements-docs.txt
 
 
skills_lint.yaml
skills_lint.yaml
 
 
swift.code-workspace
swift.code-workspace
 
 
uv.lock
uv.lock
 
 
yarn.lock
yarn.lock
 
 

Repository files navigation

A2UI

Build delightful, fast, reliable agentic experiences

A2UI (Agent-to-User Interface) is an open-source generative UI framework, complete with a protocol optimized for streaming dynamic user interfaces at low latency, native renderers for web and mobile frameworks, and agent SDKs in several popular languages. With A2UI, your agents can communicate with your users using natively rendered widgets, in addition to text.

Gallery of A2UI components

Examples of UI compositions that A2UI can express.

Quick links

  • Main website.
  • Try it in your browser using A2UI Composer.
  • Supported renderers.
  • Supported agents.
  • Protocol specification.

Introduction

Large language models (LLMs) and decision models (e.g. Jev) excel at creating text and code and at making fast decisions on top of raw structured data (e.g. JSON). A2UI gives these models a specialized vocabulary for expressing user interfaces.

A2UI expresses UI using data, not code. A schema for the data exchanged between the agent and the renderer enforces strict capability boundaries for the agent, keeping agent-generated experiences safe and aligned with the business requirements of your application. A core library, a native framework adapter, and a catalog of components provide access to native components and form the building blocks that the agent composes into a final user experience, making the result expressive and high-performance.

When to use A2UI

Use A2UI when any of the following apply to your application:

  • Parts of your application are agent- and/or server-driven. By design, A2UI supports remote rendering.
  • You want the UI to be composed dynamically, tailored to the user's immediate need. Instead of making your users navigate through multiple screens to solve their problems, have the agent build the right flow of UI that guides users directly to solutions.
  • You need the highest performance and visual fidelity. A2UI renders UI using the framework of your choice, typically one that the host app itself is written in. WebViews or HTML are not required.
  • The same agent streams UI to multiple platforms or frameworks, such as Flutter, React, SwiftUI, and Jetpack Compose. A2UI helps keep the user experience compatible and consistent across all screens.
  • The agent is remote, third-party, or operates across a trust boundary. For example, the agent must not be able to handle certain kinds of data (credit card/account numbers, PII, financial data). A2UI helps enforce the trust boundary and protect your app's critical functionality from hallucinations using a strict schema, and by expressing UI using validated data rather than executable code.

A2UI core philosophy

We develop A2UI under the guidance of the following core principles:

  • Security first: The app developer controls what the agent can and cannot do in the app. A2UI provides a framework for specifying and enforcing the necessary guardrails, such as expressing UI as data, validating inputs and outputs against a schema, and disallowing arbitrary executable code. Every capability granted to the agent is either a safe standard capability built into the framework, or a capability explicitly granted by the app developer.
  • Model-friendly and server-driven: The A2UI protocol is designed to be efficiently generated by language and decision models and transported over the network, and to support progressive rendering (or "streaming") for a responsive user experience. An agent can adapt the UI based on where the user takes the conversation. A2UI supports swappable inference formats, so you can tailor inference to specific models and use cases.
  • Native rendering and portability: A2UI renders UI using the framework native to your app, with renderers for many major UI frameworks. No need to change frameworks unless required for other reasons.

Architecture

A2UI's architecture is made of multiple layers spanning the full stack that connects the agent to the application:

  1. Inference: An agent (typically backed by a language or a decision model) instructed by an A2UI skill (created using an A2UI Agent SDK) generates the description of UI and data using an appropriate inference format (e.g. A2UI Express, or a decision tree).
  2. Transport: An A2UI Agent SDK, embedded in a larger agent architecture, parses and validates the model's output, expands macros, and converts the UI to the wire-stable A2UI Transport protocol messages, which are sent to the renderer.
  3. Rendering: A renderer is made of an A2UI Core library (e.g. the @a2ui/web_core npm package, or a2ui_core Dart package), a UI framework adapter (e.g. @a2ui/react React adapter, or a2ui_flutter Flutter adapter), and a widget catalog. The core library parses the incoming messages and creates a framework-agnostic in-memory representation of the UI and data. The framework adapter maps the in-memory representation to concrete framework-specific UI widgets. The widget catalog provides access to the widgets the agent is allowed to compose.

Getting started

Pick the path that matches where you want to start:

Path What you get Time
🍜 Quickstart A full-stack A2UI app with a backend and frontend. Learn A2UI end-to-end and customize to your use case. ~5 min
🎨 A2UI Composer Generate A2UI JSON from a visual editor and paste it into any agent prompt — no install required. ~1 min
🎬 A2UI Theater Step through pre-built A2UI streaming scenarios across Lit, React, and Angular renderers — no install required. ~1 min

Packages

These packages are developed in this repository. Packages marked "Not published yet" can be used from source.

Python

Package Description Version
a2ui-core Protocol messages, data model, data binding, expression evaluation, and catalog validation. PyPI
a2ui-agent-sdk Agent SDK: negotiates catalogs, generates prompts and skills, and compiles model output into A2UI. PyPI
a2ui-a2a Connects the agent SDK to the Agent-to-Agent (A2A) protocol. PyPI
a2ui-adk Connects the agent SDK to the Agent Development Kit (ADK). PyPI

TypeScript

Package Description Version
@a2ui/web_core Protocol messages, state management, expressions, and basic catalog shared by renderers and @a2ui/agent. npm
@a2ui/lit Lit (web components) renderer. npm
@a2ui/angular Angular renderer. npm
@a2ui/react React renderer. npm
@a2ui/markdown-it Markdown rendering with markdown-it and DOMPurify, shared by the web renderers. npm
@a2ui/agent Agent SDK: negotiates catalogs, generates prompts and skills, and compiles model output into A2UI. npm
@a2ui/catalog-mcp MCP catalog: calls MCP tools and renders A2UI messages returned in tool results and UI resources. npm
@a2ui/catalog-vegachart VegaChart catalog: renders Vega and Vega-Lite chart specifications on A2UI surfaces. Not published yet

Dart and Flutter

Package Description Version
a2ui_core Protocol messages, data model, data binding, and expressions for renderers and agents. pub
a2ui_agent Agent SDK: negotiates catalogs, generates prompts and skills, and compiles model output into A2UI. pub
a2ui_flutter Flutter renderer. pub
a2ui_cli Developer tool that generates typesafe component code from a catalog. GitHub Releases

Swift

The Swift libraries are distributed via Swift Package Manager from Package.swift at the root of this repository.

Package Description
A2UISwiftCore, BasicCatalog Message processor, data model, expression evaluation, and basic catalog definitions.
A2UISwiftUI, BasicCatalogSwiftUI SwiftUI renderer and basic catalog views.

Roadmap

  • Protocol v1.1: We are collecting requirements for the next iteration of the A2UI protocol.
  • Inference: Support for decision models (e.g. Jev).
  • Templates: A cross-framework templating engine and a set of standard primitives for rendering reusable rich UI widgets.
  • Sandboxed logic: A way to securely attach logic to A2UI components.
  • Agent SDK: Skill generation, better diagnostics, and integrations with more agent frameworks.
  • Evals: A set of tools for evaluating generated UI quality.
  • MCP Apps: Embedding MCP Apps inside A2UI, and embedding A2UI experiences into MCP Apps.
  • CLI: Schema validation, codegen, local preview, and integration with coding agents.

Contribute

A2UI is an Apache 2.0 licensed project. We believe the future of UI is agentic, and we want to work with you to help build it.

See CONTRIBUTING.md for details on how to get started.

About

Open-source generative UI framework: agents stream layout data, and apps render it with native components in React, Angular, Lit, Flutter, SwiftUI and Jetpack Compose.

a2ui.org/

Topics

a2aa2uiagentangularfluttergenerative-uijetpack-composelitllmmcpreactswiftui

Resources

Readme
Apache-2.0 license

Contributing

Contributing
Activity
Custom properties

Stars

17.2k stars

Watchers

93 watching

Forks

1.4k forks
Report repository

Releases

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.