A2UI Compose

  
The Jetpack Compose Agent-to-UI (A2UI) renderer provides an implementation of the A2UI protocol, enabling AI agents to generate rich, interactive user interfaces that render native Compose components—without executing arbitrary code.
Latest Update Stable Release Release Candidate Beta Release Alpha Release
September 23, 2026 - - - 1.0.0-alpha01

Declaring dependencies

To add a dependency on A2UI Compose, you must add the Google Maven repository to your project. Read Google's Maven repository for more information.

Add the dependencies for the artifacts you need in the build.gradle file for your app or module:

Groovy

dependencies {
    implementation "androidx.a2ui.compose:compose-runtime:1.0.0-alpha01"
    implementation "androidx.a2ui.compose:compose-ui:1.0.0-alpha01"
    androidTestImplementation "androidx.a2ui.compose:compose-ui-testing:1.0.0-alpha01"
}

Kotlin

dependencies {
    implementation("androidx.a2ui.compose:compose-runtime:1.0.0-alpha01")
    implementation("androidx.a2ui.compose:compose-ui:1.0.0-alpha01")
    androidTestImplementation("androidx.a2ui.compose:compose-ui-testing:1.0.0-alpha01")
}

For more information about dependencies, see Add build dependencies.

Feedback

Your feedback helps make Jetpack better. Let us know if you discover new issues or have ideas for improving this library. Please take a look at the existing issues in this library before you create a new one. You can add your vote to an existing issue by clicking the star button.

Create a new issue

See the Issue Tracker documentation for more information.

Version 1.0

Version 1.0.0-alpha01

September 23, 2026

androidx.a2ui.compose:compose-runtime:1.0.0-alpha01, androidx.a2ui.compose:compose-ui:1.0.0-alpha01, and androidx.a2ui.compose:compose-ui-testing:1.0.0-alpha01 are released. Version 1.0.0-alpha01 contains these commits.

New Features

The Jetpack Compose Agent-to-UI (A2UI) renderer provides an implementation of the A2UI protocol, enabling AI agents to generate rich, interactive user interfaces that render native Compose components—without executing arbitrary code. This library maps the A2UI protocol messages to Compose primitives while providing fine-grained reactivity based on the Compose Snapshot state system. The library also provides APIs for creating custom components and catalogs.

API Changes

  • Updated A2uiBasicCatalogV1.CatalogId from .../v0_9_1/... to .../v0_9/... to align with the canonical A2UI protocol specification. (Idcc20)
  • Update the order of components in A2uiBasicCatalogV to exactly match the basic catalog specification. (I23093, b/547851648)
  • Added ChecksProperty to all relevant component interfaces under A2uiBasicCatalogV1 and made the property value available via a parameter passed to TypedContent of each component. (I9f393, b/547851648)
  • Added A2uiBasicCatalogV1.ChoicePicker and MaterialA2uiBasicCatalogV1Defaults.choicePicker. (I875a6, b/547851648)
  • Added A2uiBasicCatalogV1.Modal and MaterialA2uiBasicCatalogV1Defaults.modal. (Icd553, b/547851648)
  • Renamed properties in A2uiBasicCatalogV1 to follow the pascal-case naming style. (I91512, b/547851648)
  • Added AccessibilityProperty to all component interfaces under A2uiBasicCatalogV1 and made the property value available via a parameter passed to TypedContent of each component. (I76b80, b/547851648)
  • Added A2uiBasicCatalogV1.TextField and MaterialA2uiBasicCatalogV1Defaults.textField. (Ifdaec, b/547851648)
  • Added A2uiBasicCatalogV1.Video and MaterialA2uiBasicCatalogV1Defaults.video. (I8595c, b/547851648)
  • Added A2uiBasicCatalogV1.AudioPlayer and MaterialA2uiBasicCatalogV1Defaults.audioPlayer. (Ida509, b/547851648)
  • Added support for format and conditional if-then schema keywords in a2ui-model and a2ui-engine, and updated A2uiBasicCatalogV1.DateTimeInput min and max property schemas. (I556d5, b/553193771)
  • Added A2uiBasicCatalogV1.Slider and MaterialA2uiBasicCatalogV1Defaults.slider. (Ieb72d, b/547851648)
  • Added A2uiBasicCatalogV1.CheckBox and MaterialA2uiBasicCatalogV1Defaults.checkBox. (I84525, b/547851648)
  • Added A2uiBasicCatalogV1.Divider and MaterialA2uiBasicCatalogV1Defaults.divider. (I91208, b/547851648)
  • Added A2uiBasicCatalogV1.Tabs and MaterialA2uiBasicCatalogV1Defaults.tabs. (Ic33d3, b/547851648)
  • Added A2uiBasicCatalogV1.List and MaterialA2uiBasicCatalogV1Defaults.list. (I89f73, b/547851648)
  • Added A2uiBasicCatalogV1.Icon and MaterialA2uiBasicCatalogV1Defaults.icon. (I65524, b/547851648)
  • Added ProvideActionInterceptor for intercepting actions of child components. (I6ae69, b/552486965)
  • Added support for advertising inline catalog schemas in A2uiClientCapabilities and A2uiCoreCatalog. (I973cf, b/537714970)
  • Added A2uiBasicCatalogV1.Image and MaterialA2uiBasicCatalogV1Defaults.image. (I673b3, b/547851648)
  • Added A2uiBasicCatalogV1.Button and MaterialA2uiBasicCatalogV1Defaults.button. (I5215f, b/547851648)
  • Added A2uiBasicCatalogV1.Row/A2uiBasicCatalogV1.Column and MaterialA2uiBasicCatalogV1Defaults.row/ MaterialA2uiBasicCatalogV1Defaults.column. (Ibcbe7, b/547851648)
  • Added default parameters to the enum, number, and boolean A2uiProperty types. (Id509e, b/547851648)
  • Added A2uiBasicCatalogV1.Card and MaterialA2uiBasicCatalogV1Defaults.card. (Icf604, b/547851648)
  • Added isAdditionalPropertiesAllowed and additionalPropertiesSchema parameters to A2uiProperty.nested and A2uiProperty.nestedList. (I72836, b/547815898)
  • Added minItems and maxItems parameters to the list A2uiProperty types. (I716d3, b/547798330)
  • Added A2uiProperty.enum, A2uiProperty.custom, and A2uiProperty.dynamicCustom property types. (I0647d, b/545522395)
  • Replace A2uiCoreSurfaceModel with A2uiSurfaceModel in observeA2uiComponentState to ensure that the public APIs in androidx.a2ui.compose.runtime don't expose types from androidx.a2ui.engine. (Ic45e2, b/544705890)
  • Added A2uiTestSurface composable to mount and test A2UI surfaces and components in isolation. (I03c8a, b/527415570)
  • A2uiSchema now support keywords within each subclass instead of dedicated subclasses for oneOf, allOf, anyOf, not, const, default and enum. (I6a6f8)
  • Added testing APIs for the Compose A2UI renderer. (I59c9f, b/527415570)
  • Added A2uiReadinessEvaluator and related APIs. (Ib37d3, b/527415547, b/524122705)
  • Added A2uiComponentCollection, A2uiFunctionCollection, and A2uiCoreComponentDefinitionCollection, and updated the catalog APIs to use the new collections. (I96438, b/527415547)
  • Added an A2uiMessageParser factory function. (I8596a, b/524122705)
  • Added the A2uiRuntimeCatalog marker interface, and APIs in androidx.a2ui.compose.ui for defining components and catalogs. (Ibea7a, b/527415547, b/524122705)
  • Moved androidx.compose.runtime:runtime-a2ui to androidx.a2ui.compose:compose-runtime. (Ifc7cf, b/524122705)

Bug Fixes

  • androidx.lifecycle:lifecycle-runtime dependency was updated to 2.10.0. This version is required for bundled lifecycle runtime lint checks to run with AGP version 9.5.0-alpha04 or later. (Id18ea, b/556807521)
  • compileSdk for Compose libraries updated to 37.1. This will require transitively updating compileSdk for all apps and libraries using Compose. (I05b0f)
  • Updated default Column horizontal alignment to Alignment.Start in A2UI Basic Catalog V1. Ia1c6db
  • Updated default Row vertical alignment to Alignment.Top in A2UI Basic Catalog V1. If0bca4