docs/guides/client-setup.md
Integrate A2UI into your application using the renderer for your platform.
| Renderer | Platform | v0.8 | v0.9 | Status |
|---|---|---|---|---|
| React | Web | ✅ | ❌ | ✅ Stable |
| Lit (Web Components) | Web | ✅ | ✅ | ✅ Stable |
| Angular | Web | ✅ | ✅ | ✅ Stable |
| Flutter (GenUI SDK) | Mobile/Desktop/Web | ✅ | ✅ | ✅ Stable |
| SwiftUI | iOS/macOS | — | — | 🚧 Planned Q2 2026 |
| Jetpack Compose | Android | — | — | 🚧 Planned Q2 2026 |
A component catalog is any collection of components — standard ones, your custom components, or shared libraries. Your design system is what matters. You can register any collection of components and functions, and A2UI will work with them. The catalog is just the contract between your agent and your renderer.
See Custom Components for how to extend or replace the standard catalog.
All web renderers (Lit, Angular, React) share a common foundation: @a2ui/web-lib. This library provides the message processor, state management, and data binding logic that every web renderer needs. Each framework-specific renderer builds on top of it, adding only the rendering layer for its framework.
This means core protocol handling is consistent across web platforms — only the component rendering differs.
⚠️ Attention
The Lit client library is not yet published to NPM. Check back in the coming days.
npm install @a2ui/web-lib lit @lit-labs/signals
The Lit renderer uses:
<a2ui-surface> component: Renders surfaces in your appTODO: Add verified setup example.
See working example: Lit shell sample
⚠️ Attention
The Angular client library is not yet published to NPM. Check back in the coming days.
npm install @a2ui/angular @a2ui/web_core
The Angular renderer provides:
A2uiRendererService: A service that manages the A2UI message processor and reactive model.a2ui-v09-component-host component: A dynamic component host that renders A2UI components from a surface.A2UI_RENDERER_CONFIG token: Used to configure the renderer with catalogs and action handlers.A2UI uses versioned imports for its protocol-specific implementations. For v0.9, configure your application providers as follows:
import { ApplicationConfig } from '@angular/core';
import {
A2UI_RENDERER_CONFIG,
A2uiRendererService,
minimalCatalog
} from '@a2ui/angular/v0_9';
export const appConfig: ApplicationConfig = {
providers: [
{
provide: A2UI_RENDERER_CONFIG,
useValue: {
catalogs: [minimalCatalog],
actionHandler: (action) => {
console.log('Action dispatched:', action);
}
}
},
A2uiRendererService
]
};
See working example: Angular v0.9 Explorer
npm install @a2ui/react @a2ui/web-lib
The React renderer provides:
<A2UISurface> component: Renders A2UI surfaces in your React appuseA2UI() hook: Accesses the message processor from any componentMessageProcessor class: Handles incoming A2UI messages (shared with other web renderers)See working example: React shell
flutter pub add flutter_genui
Flutter uses the GenUI SDK which provides native A2UI rendering.
Docs: GenUI SDK | GitHub | README in GenUI Flutter Package
Your client application needs to:
Common transport options:
TODO: Add transport implementation examples.
See: Transports guide
When users interact with A2UI components (clicking buttons, submitting forms, etc.), the client:
TODO: Add action handling examples.
Common errors to handle:
beginRendering (v0.8) or createSurface (v0.9) was receivedTODO: Add error handling examples.