Skip to content

SDKs

Official A2UI SDKs are organized into three layers:

  • Core SDK for shared protocol models and surface state.
  • Agent SDK for catalog-driven prompt generation and model output compilation.
  • Renderer SDK for mounting surface state in a client UI framework.

Both the Agent SDK and the Renderer SDK build on their language’s Core SDK, so server-side validation and client-side message resolution share one implementation per language. Client-server applications typically pair two layers on each side of a network boundary, such as a Python agent server communicating with a SwiftUI or Jetpack Compose client. Codebases that handle both model inference and UI rendering in the same language, such as TypeScript web apps or Dart and Flutter apps, can use all three layers together in one project.

Core SDK

Every Agent SDK and Renderer SDK depends on its language’s Core SDK, which implements the protocol data structures, reactive state containers, and expression evaluators common to agents and clients.

Primary functions

  1. Parses and serializes A2UI wire messages across supported protocol versions (v1.0, v0.9.1, and v0.8 in TypeScript and Python).
  2. Loads Catalog JSON Schemas and validates component hierarchies, placement constraints, and message payloads.
  3. Maintains per-surface component graphs and JSON data model state while applying incremental updates by component ID and JSON Pointer path.
  4. Evaluates data bindings, collection templates, string interpolation expressions, function invocations, and validation checks.

Packages

LanguagePublished packagesVersionsSource
TypeScript@a2ui/web_corev0.8, v0.9.1, v1.0typescript/core/web_core
Pythona2ui-corev0.8, v0.9.1, v1.0python/a2ui_core
Darta2ui_corev0.9.1, v1.0dart/a2ui_core
SwiftA2UISwiftCore
BasicCatalog
v0.9.1, v1.0swift/core
Kotlinandroidx.a2uiv0.9.1AndroidX a2ui

All v0.9.1 packages accept v0.9 wire envelopes and catalog IDs. Swift packages are distributed through Swift Package Manager from a2ui-project/a2ui (the A2UISwiftCore product exposes the A2UICore module), and the AndroidX group on Google Maven publishes the a2ui-model and a2ui-engine artifacts.

Most applications install a Core SDK automatically through an Agent SDK or Renderer SDK, though you can depend on a Core SDK directly to build headless state processors or custom UI adapters. To implement a Core SDK in another language, read blueprints/modules and validate against the YAML suites in conformance/core.

Agent SDK

An Agent SDK connects a language model or agent runtime to the A2UI protocol while leaving model selection, tool execution, and conversation state under your application’s control.

Primary functions

  1. Negotiates active Catalog definitions and protocol versions (v0.9.1 and v1.0) against the capabilities reported by the client renderer (see Overview).
  2. Generates skills, system prompt instructions, and examples directly from catalog schemas and prompt instructions, replacing hand-written prompts that become outdated when components change.
  3. Compiles streaming or batch model output from inference formats (such as compact Express syntax, which cuts output tokens without client changes, or chunk-healed Direct JSON) into standard A2UI wire messages.
  4. Validates outgoing messages statefully against active surface state on the server so broken component IDs, placement violations, or schema mismatches can be fed back to the model for self-correction before transmission.
  5. Supports optional server-side @macro expansion in Python and integrates with agent frameworks and transports including Google ADK and the A2A protocol.

Packages

LanguagePublished packagesVersionsSource
TypeScript@a2ui/agentv0.9.1, v1.0typescript/agents/a2ui_agent
Pythona2ui-agent-sdk
a2ui-adk (ADK)
a2ui-a2a (A2A)
v0.8, v0.9.1, v1.0python/a2ui_agent
python/a2ui_adk
python/a2ui_a2a
Darta2ui_agentv0.9.1, v1.0dart/a2ui_agent

Swift and Kotlin target client-side rendering; for legacy v0.8 and v0.9 JVM servers, kotlin/agent_sdk_legacy remains in the repository.

Go and community SDKs

For Go services and CLI clients, community-maintained libraries cover server-side validation, streaming parsers, and terminal rendering—including satorunooshie/a2ui-go, tmc/a2ui, charmbracelet/a2tea, and muncus/a2term (listed with version details in Community Projects).

To implement a conformance-verified Core or Agent SDK in Go, Rust, C#, or another language, follow the language-agnostic specifications in blueprints/modules, verify behavioral parity against the YAML suites in conformance/core and conformance/agent, and open a pull request to add your package to Community Projects.

See Using a catalog in an agent and Inference Formats for TypeScript, Python, and Dart examples of configuring A2uiGenerator, negotiating capabilities, and compiling model responses, or run a working agent in the Quickstart.

Renderer SDK

A Renderer SDK connects a Core SDK’s resolved surface state to a client UI framework. Official Renderer SDKs include a built-in implementation of the Basic Catalog styled through the host framework’s theming system, and let you register custom catalogs with per-component rendering logic and local functions (see How to Define a Catalog).

Primary functions

  1. Applies incremental surface, component, and data model updates across supported protocol versions (v0.9.1, v1.0, and v0.8 on Web), updating only changed subtrees so unchanged siblings keep focus and local UI state.
  2. Evaluates reactive data bindings, nested collection scopes, relative JSON Pointers, and local two-way input edits.
  3. Executes local catalog functions and reactive validation checks, enforcing v1.0 caller and user-activation rules.
  4. Builds capability and data-model sync metadata payloads for your transport layer, dispatches user action events and structured error messages, and handles v1.0 bidirectional function RPCs.
  5. Maps protocol accessibility attributes to host accessibility APIs across Flutter, Web WAI-ARIA, SwiftUI, and Jetpack Compose.

Packages

FrameworkPublished packagesVersionsSource
Fluttera2ui_flutterv0.9.1, v1.0dart/a2ui_flutter
React@a2ui/reactv0.8, v0.9.1, v1.0typescript/renderers/react
Lit@a2ui/litv0.8, v0.9.1, v1.0typescript/renderers/lit
Angular@a2ui/angularv0.8, v0.9.1, v1.0typescript/renderers/angular
SwiftUIA2UISwiftUI
BasicCatalogSwiftUI
v0.9.1, v1.0swift/swiftui
Jetpack Composeandroidx.a2ui.compose
material3-a2ui
v0.9.1AndroidX a2ui · material3-a2ui · Docs

On Web, @a2ui/web_core provides the shared Basic Catalog implementation used by React, Lit, and Angular, @a2ui/markdown-it (source) renders Markdown inside text components, and @a2ui/catalog-mcp adds MCP app components (see Call MCP Tools from A2UI).

See Registering a catalog in a renderer and How to Define a Catalog for Flutter, Web, SwiftUI, and Jetpack Compose examples of setting up a message processor, registering component widgets and local functions, and mounting surfaces, or run a React or Flutter client in the Quickstart. Read Authoring Universal Web Components to share custom components across React, Lit, and Angular, or see the Android Jetpack Compose guide for Android integration. Browse Community Projects for community renderers, or consult blueprints/modules and conformance to build a custom framework adapter.