A2UI is transport-agnostic: the protocol defines a sequence of JSON messages, and anything that can carry JSON from an agent to a client is a valid transport. The choice of transport depends on your application architecture — whether you are building a multi-agent enterprise system, a full-stack React application, or a simple REST endpoint serving a mobile client.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/a2ui-project/a2ui/llms.txt
Use this file to discover all available pages before exploring further.
Transport Comparison
| Transport | Status | Best For |
|---|---|---|
| A2A Protocol | ✅ Stable | Multi-agent systems, enterprise service meshes, agents with built-in auth |
| AG-UI (CopilotKit) | ✅ Stable | Full-stack React, Vue, and Angular applications |
| REST / HTTP | 📋 Planned | Simple request-response patterns, mobile clients |
| WebSockets | 💡 Proposed | Real-time bidirectional communication, persistent connections |
| SSE (Server-Sent Events) | 💡 Proposed | One-way streaming from server to browser |
Any JSON-capable transport works. If your application already has a reliable message-passing channel, you can deliver A2UI messages over it without adopting a new protocol.
A2A Protocol
The Agent2Agent (A2A) protocol is a standardized, open-source protocol for secure communication between AI agents and between agents and their clients. It is the recommended transport for production A2UI deployments because it provides authentication, message framing, and multi-agent orchestration out of the box.How A2A works with A2UI
An A2UI-capable agent advertises its support in its A2A Agent Card by declaring an A2UI extension URI and listing the catalog IDs it supports:supportedCatalogIds in the metadata of every A2A message it sends to the agent:
Benefits of A2A
- Authentication and authorization built into the protocol.
- Multi-transport bindings — A2A runs over HTTP, gRPC, WebSockets, and message queues.
- Agent orchestration — cleanly routes messages in multi-agent pipelines without the orchestrator needing to understand A2UI message internals.
- Zero additional setup for teams already using A2A.
AG-UI (CopilotKit)
AG-UI is a bidirectional, real-time agent–UI protocol created and maintained by CopilotKit. It handles transport, state synchronization, and event routing automatically, making it the fastest path to integrating A2UI into a full-stack React, Vue, or Angular application.How AG-UI works with A2UI
AG-UI wraps A2UI messages as AG-UI custom events and delivers them over its existing WebSocket or SSE channel. On the client side, the A2UI renderer subscribes to these events and processes them exactly as it would over any other transport:What AG-UI handles for you
- Transport negotiation (WebSocket with SSE fallback).
- Client state synchronization across re-renders.
- Reconnection and message replay on network interruption.
- Integration with CopilotKit’s agent framework adapters (LangGraph, CrewAI, Mastra, and others).
REST / HTTP
For simpler patterns — or when streaming is not required — A2UI messages can be delivered as a standard HTTP response body. The response body is a JSONL stream (one message per newline) or a JSON array of messages.Basic HTTP pattern
The agent streams JSONL over a regular HTTP response withContent-Type: application/x-ndjson:
REST transport is planned for official support. In the meantime, the JSONL-over-HTTP pattern works with any HTTP client that supports streaming responses.
WebSockets
WebSockets provide a persistent, full-duplex connection, making them ideal for long-running sessions where the agent and client exchange many messages — for example, a conversational UI that builds and updates surfaces over multiple turns.Bidirectional pattern
The agent sends A2UI messages as individual WebSocket text frames (one JSON object per frame):WebSocket transport is proposed but not yet in the formal specification. The framing pattern described here follows community practice.
Server-Sent Events (SSE)
SSE provides a one-way streaming channel from server to client over a standard HTTP connection. It is well-supported in browsers and does not require a WebSocket handshake, making it a lightweight option for streaming A2UI messages to web clients. Each A2UI message is sent as an SSEdata: event:
SSE transport is proposed but not yet in the formal specification.
Custom Transports
Because A2UI messages are plain JSON objects, any message-passing system that can carry JSON is a valid transport. This includes gRPC (with JSON encoding), message queues (AMQP, Kafka, Pub/Sub), IPC pipes, and custom protocols. The only requirement is that the receiver can parse each A2UI message as a JSON object and pass it to the renderer in the order it was sent. For streaming use cases, JSONL (newline-delimited JSON) is the conventional framing format.Message Reference
All A2UI message types, schemas, and streaming examples.
Data Binding
How reactive data updates flow through the component tree.
Catalogs
Catalog negotiation and how clients declare their capabilities.
Component Reference
Full gallery of basic catalog components and properties.