Generative UI on Lynx with A2UI

All Posts
June 8, 2026
Jing Hu
Jing HuEngineering @ Lynx
HaoYang Wang
HaoYang WangEngineering @ Lynx
Hao Ai
Hao AiEngineering @ Lynx
ChenChao Gao
ChenChao GaoEngineering @ Lynx
Zhou Fang
Zhou FangEngineering @ Lynx
MoonfaceX
MoonfaceXComponent Lead @ Lynx
Jingkai Zhao
Jingkai ZhaoFramework Lead @ Lynx
Xuan Huang
Xuan HuangArchitect @ Lynx

Since the rise of AI Agents, we have been exploring what it would take to make Agent-driven generative UI feel truly native inside real apps. Lynx is uniquely placed for this: it renders natively across Mobile, Web, and Desktop, and embeds directly into the apps people already use. So when Google introduced A2UI, an open Agent-to-UI protocol that lets AI Agents safely generate rich interactive interfaces without executing arbitrary code, we saw a clean fit.

Today, we are officially releasing our A2UI renderer that brings Generative UI to Lynx.

Lynx A2UI Overview
Agents reason. Lynx renders.

Streaming Generation, Native Rendering

The A2UI protocol natively supports streaming: the Agent sends UI fragments as it reasons, and the client renders them progressively. This incremental interaction model eliminates blank waiting screens, letting users watch the interface take shape as the Agent produces output.

Lynx A2UI inherits Lynx's dual-thread architecture, parsing A2UI protocol messages on the Background Thread while committing UI updates on the Main Thread, both running in parallel without blocking each other. Even when the Agent outputs UI fragments at high frequency, the interface remains smooth and responsive.

The <A2UI> container parses streamed protocol messages on the Background Thread and commits updates to the Main Thread, keeping the UI responsive even at high message frequency.

A Catalog Built on lynx-ui

The core mechanism of A2UI is the Catalog: the client declares which components, functions, and parameters it supports, and the Agent can only choose from that authorized scope. This keeps generation bounded, while leaving how each component renders to the renderer.

Lynx A2UI ships with a built-in default component catalog based on lynx-ui, covering common components such as buttons, lists, and dialogs, ready to use out of the box. Beyond the defaults, developers will likely want to define their own components, registering business capabilities into the Catalog so the Agent can invoke them on demand during conversations.

The default Catalog, rendered live inside the Lynx GenUI Playground.

Programmable Actions

A2UI handles user interaction through the Action mechanism: components describe user intent as structured payloads instead of running arbitrary code. The spec also distinguishes functionCall, which runs locally without informing the Agent, from event, which round-trips back to the Agent.

What Lynx A2UI adds is the API shape on top. The <A2UI> render container subscribes to a MessageStore that holds raw protocol messages in arrival order. When an Action fires, onAction hands your code a unified { name, context } payload: push a follow-up message into the same store for a local update, or post to the Agent and stream the response back into it. The renderer stays the same; you own the round-trip.

Forward an Action to the Agent, or consume it on the rendering side to drive UI updates directly.

Try It Now

Lynx GenUI Playground provides a complete interactive experience covering the full pipeline from model conversation to UI rendering. No local setup required: open your browser, chat with the Agent, and watch the interface generate in real time. To experience native rendering on a real device, download Lynx Explorer and scan the QR code on the page.

Read the A2UI Guide under ReactLynx, or jump straight to the more detailed preview version of the integration guide to integrate Lynx A2UI into your app. The renderer ships as the @lynx-js/genui/a2ui package, with support starting at A2UI 0.9; we'll work with the A2UI team at Google to adapt the v1.0 candidate soon. If you encounter issues, have feature suggestions, or want to share your use cases, feel free to open an Issue or join the discussion on GitHub.

We believe that cross-platform frameworks in the AI era should do more than just run AI-generated code: they should provide Agents with a secure, efficient, and native channel for rendering interfaces. Lynx A2UI is our first step in that direction, and we look forward to exploring the future of Generative UI, Open UI included, together with the community.

Except as otherwise noted, this work is licensed under a Creative Commons Attribution 4.0 International License, and code samples are licensed under the Apache License 2.0.