Command Palette

Search for a command to run...

UnylyUnyly
Browse all

A2ui

FreeNot checked

Typed UI vocabulary for AI agents using the a2ui protocol — 474 atoms an agent composes into real rendered interfaces across web, Google Meet, Apps Script, Goog

GitHubEmbed

About

Typed UI vocabulary for AI agents using the a2ui protocol — 474 atoms an agent composes into real rendered interfaces across web, Google Meet, Apps Script, Google Chat and MCP Apps. MCP server, no signup.

README

A2UI Catalog

The vocabulary layer for A2UI — useful for humans · declarative for agents.
The model names an atom. The renderer compiles the HTML, CSS, SVG, and animation.

Atoms Surfaces MCP ARD Smithery License A2UI

Independent, unofficial catalog — not affiliated with or endorsed by Google. A2UI is Google's protocol; the official spec lives at a2ui.org.


The idea

Rather than asking an agent to generate custom UI every turn — expensive, fragile, unpredictable — give it a stable vocabulary of atoms and let it compose from those.

Raw HTML   609 tok  ████████████████████████████████████████
OpenUI     287 tok  ███████████████████
A2UI        68 tok  ████

Fewer tokens to describe the same UI. The model names an atom; the renderer expands it into the full HTML server-side, and that expansion never re-enters the model's context window. (The efficiency framing here is still being validated — see benchmarks/BENCHMARK.md for the current methodology.)

Work in progress. The atom vocabulary itself is stable; what it's for is still being explored. The live catalog and this repo are the vocabulary and its renderers — applying that vocabulary to new use cases (rendering a CLI's own output, for instance, in a sibling project not yet published) is ongoing, not finished.


Connect an agent

The catalog is consumable three ways, no signup for any of them — BYO by design: renders happen in your environment, your data never touches us.

Channel Endpoint What an agent gets
MCP server a2uicatalog.ai/mcp Tools to browse catalogs, validate/compose payloads, emit render URLs, and render live views on MCP Apps hosts
ARD manifest /.well-known/ai-catalog.json Agentic Resource Discovery — every atom as a crawlable, typed entry
Machine catalog a2uicatalog.ai/spec.json The full schema in one fetch — types, fields, surface compatibility, degradation notes

5-minute quickstarts: Claude (Desktop / claude.ai) · Gemini Enterprise (BYO-MCP)

As an agent skill — this repo ships a SKILL.md, so any agent using the skills ecosystem can pick up the catalog's when-to-use guidance directly:

npx skills add a2uicatalog/a2ui@a2ui-atomic-catalog

A few atoms, live on the site — click through to a full spec + fields table for each:

glowing_stat atom preview
glowing_stat
stat_card atom preview
stat_card
before_after atom preview
before_after
annotated_code atom preview
annotated_code

Browse all 450+ atoms →


Google Apps Script renderer — try it live

450+ atoms running natively in Google Apps Script. No CDN, no dependencies, no server. Paste a JSON block list, get a rendered page.

{
  "title": "Hello A2UI",
  "theme": "light",
  "blocks": [
    { "type": "heading", "level": 1, "text": "My first A2UI page" },
    { "type": "callout", "icon": "💡", "text": "Built with 450+ atoms in Google Apps Script." },
    { "type": "chartjs_bar", "title": "Quick chart", "bar_color": "#6366f1",
      "data": [{ "label": "A", "value": 80 }, { "label": "B", "value": 45 }, { "label": "C", "value": 62 }] }
  ]
}

What's in the GAS renderer

Feature Detail
450+ atoms, growing Apps Script surface — superset of the web article renderer
CSS-only interactions Tabs, carousel, gallery lightbox, modals, accordions — zero JS required
Inline SVG charts Bar, line, pie, donut, heatmap, punch card, sankey, cohort retention, GitHub activity grid
8 form input types text, email, select, radio, checkbox, switch, slider, date — native HTML controls
Animation fallbacks 32 motion atoms degrade to readable content cards
No CDN Works inside GAS sandboxed iframes with no external requests
Large payload support Automatically switches to POST for schemas too large for a URL

Deploy your own renderer (recommended)

The renderer is fully open source. Deploy your own instance — you own the URL, you own the deployment, no dependency on the catalog's demo endpoint.

git clone https://github.com/a2uicatalog/a2ui
cd a2ui/apps-script-surface/gas-schema-renderer
clasp login
clasp create --type webapp --title "My A2UI Renderer"
clasp push
clasp deploy
# → Your renderer is live at https://script.google.com/macros/s/YOUR_ID/exec

Call it with any payload from the catalog (illustrative — encode() stands in for gzip + base64url of the JSON, see scripts/make_url.py for the exact encoding):

function doGet() {
  const blocks = [
    { type: "stat_card", value: "1,234", label: "Daily users", delta: "+12%", is_up: true },
    { type: "progress_bar", value: 75, label: "Q2 target" }
  ];
  const url = "https://script.google.com/macros/s/YOUR_ID/exec";
  return HtmlService.createHtmlOutput(
    `<script>window.location="${url}?p=${encode(blocks)}"</script>`
  );
}

The catalog's "Try it live" button uses a shared demo instance of the same renderer. For anything beyond exploration, deploy your own.


What's in this repo

Directory Contents
atoms/ Atom schema definitions (schema.yaml)
renderers/ Surface renderers — web_article.py is the canonical web renderer
apps-script-surface/ GAS rendereratom.gs + atom files (450+ atoms, no CDN)
components/ Lit Web Components for the meet-stage surface
scripts/ Build pipeline — atom pages, spec.json, MCP bundle, README compat matrix, link/brand checks
vendors/ Landscape analysis of 9 UI libraries mapped to A2UI atoms
benchmarks/ OpenUI comparison benchmark — token counts across 7 scenarios
spec/ Internal state/action contracts (gdm-v0.2, a2ui-state-v1) — the A2UI v1.0 candidate spec itself lives at a2ui.org, not vendored here
examples/ Playbook YAML examples
knowledge-catalogue/ Curriculum-to-atom pipeline — schema-validated curriculum markdown (Brevet 2026, NIST AI RMF) compiled into A2UI payloads. Separate concern from the atom vocabulary itself.

450+ atoms across 8 surfaces

Atoms declare which surfaces they support at the schema level. An agent picks an atom by name, supplies parameters, and the renderer handles the rest.

[{
  "type": "stat_card",
  "label": "Atoms published",
  "value": "450+",
  "delta": "+12 this week"
}]

Agents never write HTML. They compose from the vocabulary.


Surface compatibility

Every atom declares, at the schema level, which of the 8 surfaces it works on and where it degrades (with a note explaining the caveat). The matrix below is generated straight from public/spec.json — the same file agents consume — so this README can no longer drift from the catalog.

View full compatibility matrix (all atoms × 8 surfaces)

476 atoms · generated from public/spec.json by scripts/gen_compat_matrix.py — do not edit by hand.

Atom web gas-web gas-panel meet chat mcp-apps email pdf Source · license
abbr_tooltip ⚠️ ⚠️ a2uicatalog · MIT
accordion_item a2uicatalog · MIT
achievement_badge ⚠️ a2uicatalog · MIT
action_items a2uicatalog · MIT
action_required_card ⚠️ a2uicatalog · MIT
adsb_feed a2uicatalog · MIT
agenda_block a2uicatalog · MIT
ai_build_trace a2uicatalog · MIT
airspace_command_deck a2uicatalog · MIT
alert_banner ⚠️ UIverse.io community · MIT
ambient_gradient ⚠️ a2uicatalog · MIT
anchor_list ⚠️ a2uicatalog · MIT
animated_beam ⚠️ ⚠️ ⚠️ a2uicatalog · MIT
animated_border a2uicatalog · MIT
animated_border_card ⚠️ ⚠️ a2uicatalog · MIT
animated_counter ⚠️ ⚠️ a2uicatalog · MIT
annotated_code ⚠️ a2uicatalog · MIT
annotation_highlight a2uicatalog · MIT
api_param_table ⚠️ ⚠️ ⚠️ shadcn/ui · MIT
api_reference ⚠️ ⚠️ a2uicatalog · MIT
article_hero ⚠️ ⚠️ a2uicatalog · MIT
article_series_nav ⚠️ ⚠️ a2uicatalog · MIT
atom_anatomy a2uicatalog · MIT
audio_link a2uicatalog · MIT
audio_player ⚠️ ⚠️ a2uicatalog · MIT
aurora_background ⚠️ ⚠️ a2uicatalog · MIT
author_bio_card ⚠️ ⚠️ Flowbite · MIT
avatar_group ⚠️ ⚠️ UIverse.io community · MIT
back_button a2uicatalog · MIT
badge a2uicatalog · MIT
badge_group ⚠️ ⚠️ UIverse.io community · MIT
badge_showcase a2uicatalog · MIT
before_after ⚠️ a2uicatalog · MIT
before_after_stack a2uicatalog · MIT
benchmark_comparison ⚠️ a2uicatalog · MIT
bento_grid ⚠️ ⚠️ MagicUI / shadcn · MIT
big_reveal a2uicatalog · MIT
blockquote a2uicatalog · MIT
blockquote_with_avatar ⚠️ ⚠️ a2uicatalog · MIT
blur_fade_in ⚠️ ⚠️ ⚠️ a2uicatalog · MIT
body a2uicatalog · MIT
breadcrumb ⚠️ ⚠️ ⚠️ a2uicatalog · MIT
brevet_timeline a2uicatalog · MIT
bullet_list a2uicatalog · MIT
calendar_today a2uicatalog · MIT
calendar_upcoming a2uicatalog · MIT
call_mood_board a2uicatalog · MIT
callout ⚠️ ⚠️ a2uicatalog · MIT
canvas_plexus a2uicatalog · MIT
capability_checklist ⚠️ a2uicatalog · MIT
card_stack ⚠️ ⚠️ a2uicatalog · MIT
carousel ⚠️ a2uicatalog · MIT
case_study_card a2uicatalog · MIT
caution_block ⚠️ ⚠️ shadcn/ui · MIT
certification_card a2uicatalog · MIT
changelog_entry ⚠️ ⚠️ ⚠️ shadcn/ui · MIT
chartjs_bar ⚠️ ⚠️ ⚠️ a2uicatalog · MIT
chartjs_line ⚠️ ⚠️ ⚠️ a2uicatalog · MIT
chartjs_pie ⚠️ OpenUI / Thesys · MIT
chat_sequence ⚠️ a2uicatalog · MIT
checklist_interactive ⚠️ ⚠️ ⚠️ Flowbite · MIT
chip_group a2uicatalog · MIT
choicebox_group a2uicatalog · MIT
cli_command ⚠️ ⚠️ ⚠️ UIverse.io community · MIT
closing a2uicatalog · MIT
code ⚠️ ⚠️ a2uicatalog · MIT
code_block a2uicatalog · MIT
code_diff ⚠️ ⚠️ a2uicatalog · MIT
code_snippet_pair ⚠️ ⚠️ a2uicatalog · MIT
cohort_progress_board a2uicatalog · MIT
cohort_retention a2uicatalog · MIT
collapsible_panel a2uicatalog · MIT
color_section a2uicatalog · MIT
color_swatch_grid ⚠️ a2uicatalog · MIT
columns a2uicatalog · MIT
combobox ⚠️ shadcn/ui · MIT
command_palette ⚠️ ⚠️ ⚠️ a2uicatalog · MIT
command_step a2uicatalog · MIT
comparison_grid ⚠️ ⚠️ a2uicatalog · MIT
comparison_morph a2uicatalog · MIT
completion_gate a2uicatalog · MIT
concept_ladder a2uicatalog · MIT
concept_rung a2uicatalog · MIT
confetti_burst a2uicatalog · MIT
confetti_trigger a2uicatalog · MIT
confidence_bar ⚠️ a2uicatalog · MIT
contributor_list ⚠️ ⚠️ a2uicatalog · MIT
conversation_snippet a2uicatalog · MIT
conversion_funnel a2uicatalog · MIT
copy_code_button ⚠️ ⚠️ ⚠️ UIverse.io community · MIT
copy_prompt a2uicatalog · MIT
copy_to_clipboard ⚠️ a2uicatalog · MIT
count_up_stat a2uicatalog · MIT
countdown_ring a2uicatalog · MIT
countdown_timer ⚠️ ⚠️ a2uicatalog · MIT
counter_group ⚠️ a2uicatalog · MIT
course_progress_card ⚠️ ⚠️ a2uicatalog · MIT
css_dropdown_menu UIverse.io community · MIT
css_modal UIverse.io community · MIT
css_slide_panel UIverse.io community · MIT
cta_button a2uicatalog · MIT
cta_section ⚠️ ⚠️ a2uicatalog · MIT
cursor_glow a2uicatalog · MIT
cursor_trail a2uicatalog · MIT
custom_checkbox_group UIverse.io community · MIT
customer_logo_grid ⚠️ ⚠️ a2uicatalog · MIT
dark_divider a2uicatalog · MIT
dark_feature_grid a2uicatalog · MIT
dark_hero a2uicatalog · MIT
data_grid ⚠️ ⚠️ IBM Carbon Design System · Apache-2.0
data_source a2uicatalog · MIT
data_table_sortable ⚠️ ⚠️ a2uicatalog · MIT
deadline_ticker a2uicatalog · MIT
decision_tree a2uicatalog · MIT
deprecation_notice ⚠️ ⚠️ shadcn/ui · MIT
depth_stack a2uicatalog · MIT
diagram ⚠️ ⚠️ a2uicatalog · MIT
difficulty_badge ⚠️ ⚠️ Flowbite · MIT
display_quote a2uicatalog · MIT
divider ⚠️ a2uicatalog · MIT
doc_ai_summary a2uicatalog · MIT
document_link a2uicatalog · MIT
donut_stat ⚠️ UIverse.io community · MIT
dot_grid_background ⚠️ a2uicatalog · MIT
drive_file_card a2uicatalog · MIT
drive_file_list a2uicatalog · MIT
drive_folder_contents a2uicatalog · MIT
drive_image a2uicatalog · MIT
drive_recent_files a2uicatalog · MIT
drive_storage_usage a2uicatalog · MIT
effect_overlay ⚠️ ⚠️ a2uicatalog · MIT
embed_codepen ⚠️ ⚠️ ⚠️ ⚠️ a2uicatalog · MIT
embed_gist ⚠️ ⚠️ ⚠️ a2uicatalog · MIT
embed_google_slides ⚠️ ⚠️ ⚠️ ⚠️ a2uicatalog · MIT
embed_stackblitz ⚠️ ⚠️ ⚠️ ⚠️ a2uicatalog · MIT
embed_tweet ⚠️ ⚠️ ⚠️ ⚠️ a2uicatalog · MIT
empty_state ⚠️ ⚠️ a2uicatalog · MIT
encrypted_reveal ⚠️ ⚠️ a2uicatalog · MIT
entity_list a2uicatalog · MIT
env_var_list ⚠️ ⚠️ ⚠️ a2uicatalog · MIT
expandable_list ⚠️ ⚠️ a2uicatalog · MIT
expandable_text a2uicatalog · MIT
experimental_banner ⚠️ ⚠️ Flowbite · MIT
expert_endorsement ⚠️ ⚠️ a2uicatalog · MIT
faq_accordion ⚠️ ⚠️ a2uicatalog · MIT
feature_grid ⚠️ ⚠️ shadcn/ui · MIT
feature_matrix ⚠️ a2uicatalog · MIT
feed_status a2uicatalog · MIT
feedback_prompt a2uicatalog · MIT
figma_embed ⚠️ ⚠️ ⚠️ ⚠️ a2uicatalog · MIT
file_tree ⚠️ ⚠️ ⚠️ shadcn/ui · MIT
fill_in_blank ⚠️ ⚠️ a2uicatalog · MIT
firestore_read a2uicatalog · MIT
flashcard_deck a2uicatalog · MIT
flip_card UIverse.io community · MIT
floating_badge a2uicatalog · MIT
floating_orbs a2uicatalog · MIT
floating_particles a2uicatalog · MIT
flow_connector a2uicatalog · MIT
focus_lens a2uicatalog · MIT
follow_button ⚠️ ⚠️ ⚠️ UIverse.io community · MIT
follow_cta ⚠️ ⚠️ Flowbite · MIT
follow_up_chips OpenUI / Thesys · MIT
footnote a2uicatalog · MIT
footnote_group ⚠️ a2uicatalog · MIT
form OpenUI / Thesys · MIT
form_checkbox_group OpenUI / Thesys · MIT
form_date_picker OpenUI / Thesys · MIT
form_input OpenUI / Thesys · MIT
form_radio_group OpenUI / Thesys · MIT
form_select OpenUI / Thesys · MIT
form_slider OpenUI / Thesys · MIT
form_switch_group OpenUI / Thesys · MIT
framed_screenshot a2uicatalog · MIT
further_reading ⚠️ ⚠️ a2uicatalog · MIT
gallery ⚠️ ⚠️ a2uicatalog · MIT
gauge_sla a2uicatalog · MIT
gdm_rocket_panel a2uicatalog · MIT
gemini_prompt a2uicatalog · MIT
geo_contour_waves ⚠️ a2uicatalog · MIT
geo_europe_airspace ⚠️ a2uicatalog · MIT
geo_iso_fleet ⚠️ a2uicatalog · MIT
geo_iso_heli_hover ⚠️ a2uicatalog · MIT
geo_iso_rocket_launch ⚠️ a2uicatalog · MIT
geo_iso_takeoff a2uicatalog · MIT
geo_mercator_radar ⚠️ a2uicatalog · MIT
github_activity_grid a2uicatalog · MIT
github_repo_card ⚠️ ⚠️ ⚠️ ⚠️ a2uicatalog · MIT
glass_card a2uicatalog · MIT
glitch_text a2uicatalog · MIT
globe_3d a2uicatalog · MIT
glossary_inline ⚠️ ⚠️ ⚠️ shadcn/ui · MIT
glossary_term a2uicatalog · MIT
glow_button ⚠️ ⚠️ a2uicatalog · MIT
glowing_stat a2uicatalog · MIT
gmail_inbox a2uicatalog · MIT
gmail_summary a2uicatalog · MIT
gmail_unread_count a2uicatalog · MIT
google_icon a2uicatalog · MIT
gradient_border_card a2uicatalog · MIT
gradient_heading a2uicatalog · MIT
gradient_hero a2uicatalog · MIT
gradient_text ⚠️ ⚠️ a2uicatalog · MIT
heading a2uicatalog · MIT
heatmap UIverse.io community · MIT
heatmap_calendar ⚠️ ⚠️ IBM Carbon Design System · Apache-2.0
highlight_box a2uicatalog · MIT
highlight_sweep a2uicatalog · MIT
highlighted_text ⚠️ ⚠️ a2uicatalog · MIT
hint_reveal ⚠️ ⚠️ ⚠️ a2uicatalog · MIT
hover_card a2uicatalog · MIT
http_request_block ⚠️ ⚠️ ⚠️ Flowbite · MIT
hub a2uicatalog · MIT
icon_badge a2uicatalog · MIT
icon_checklist a2uicatalog · MIT
icon_feature_grid a2uicatalog · MIT
icon_list a2uicatalog · MIT
icon_row a2uicatalog · MIT
icon_stat_row a2uicatalog · MIT
image ⚠️ a2uicatalog · MIT
image_hotspots UIverse.io community · MIT
image_pair ⚠️ ⚠️ a2uicatalog · MIT
image_with_caption a2uicatalog · MIT
info_card a2uicatalog · MIT
inline_alert ⚠️ ⚠️ ⚠️ a2uicatalog · MIT
inline_code a2uicatalog · MIT
inline_feedback_message ⚠️ ⚠️ a2uicatalog · MIT
intro a2uicatalog · MIT
inventory_table ⚠️ Shopify Polaris · MIT
isometric_mesh a2uicatalog · MIT
jira_ticket ⚠️ Atlassian Design System · Apache-2.0
json_tree_viewer ⚠️ ⚠️ ⚠️ shadcn/ui · MIT
jump_nav a2uicatalog · MIT
key_takeaways ⚠️ ⚠️ Flowbite · MIT
key_value ⚠️ ⚠️ a2uicatalog · MIT
keyboard_shortcut ⚠️ ⚠️ Flowbite · MIT
kinetic_headline a2uicatalog · MIT
knowledge_check a2uicatalog · MIT
leaderboard_card a2uicatalog · MIT
learning_objectives ⚠️ ⚠️ Flowbite · MIT
learning_path_selector a2uicatalog · MIT
lesson_nav ⚠️ ⚠️ ⚠️ ⚠️ a2uicatalog · MIT
link_button a2uicatalog · MIT
linkedin_post_image a2uicatalog · MIT
liquid_button a2uicatalog · MIT
live_aggregator ⚠️ ⚠️ a2uicatalog · MIT
live_clock a2uicatalog · MIT
live_demo_embed ⚠️ ⚠️ ⚠️ ⚠️ a2uicatalog · MIT
live_edit a2uicatalog · MIT
live_metric a2uicatalog · MIT
live_vote a2uicatalog · MIT
llm_comparison_table ⚠️ ⚠️ a2uicatalog · MIT
loading_dots a2uicatalog · MIT
loading_skeleton UIverse.io community · MIT
log_output ⚠️ ⚠️ ⚠️ a2uicatalog · MIT
lottie_animation ⚠️ ⚠️ ⚠️ ⚠️ a2uicatalog · MIT
lozenge ⚠️ Atlassian Design System · Apache-2.0
magnetic_button a2uicatalog · MIT
magnetic_element a2uicatalog · MIT
maps_embed a2uicatalog · MIT
markdown_block ⚠️ OpenUI / Thesys · MIT
marquee a2uicatalog · MIT
marquee_strip ⚠️ ⚠️ a2uicatalog · MIT
match_exercise ⚠️ ⚠️ a2uicatalog · MIT
math_block a2uicatalog · MIT
media_mention_card ⚠️ ⚠️ a2uicatalog · MIT
media_stream_card ⚠️ ⚠️ a2uicatalog · MIT
mesh_gradient a2uicatalog · MIT
metar_feed a2uicatalog · MIT
meteor_shower ⚠️ ⚠️ a2uicatalog · MIT
metric_comparison_card ⚠️ a2uicatalog · MIT
metric_delta a2uicatalog · MIT
metric_row a2uicatalog · MIT
mini_sparkline_set ⚠️ a2uicatalog · MIT
modal OpenUI / Thesys · MIT
model_card a2uicatalog · MIT
module_map a2uicatalog · MIT
multi_doc_ai_brief a2uicatalog · MIT
multi_select_input ⚠️ shadcn/ui · MIT
multi_surface a2uicatalog · MIT
nav_bar a2uicatalog · MIT
nav_link a2uicatalog · MIT
navigation_menu ⚠️ Radix UI / shadcn · MIT
neon_glow ⚠️ a2uicatalog · MIT
neon_text ⚠️ a2uicatalog · MIT
newsletter_cta ⚠️ ⚠️ ⚠️ Flowbite · MIT
next_step_strip a2uicatalog · MIT
noise_card a2uicatalog · MIT
notification_badge ⚠️ ⚠️ a2uicatalog · MIT
notification_stack a2uicatalog · MIT
number_flip a2uicatalog · MIT
number_odometer ⚠️ ⚠️ a2uicatalog · MIT
numbered_list a2uicatalog · MIT
onboarding_stepper a2uicatalog · MIT
orbit_diagram a2uicatalog · MIT
order_status_card ⚠️ Shopify Polaris · MIT
otp_input ⚠️ shadcn/ui · MIT
page_header a2uicatalog · MIT
pagination ⚠️ ⚠️ ⚠️ a2uicatalog · MIT
palette a2uicatalog · MIT
paragraph a2uicatalog · MIT
parallax_card ⚠️ ⚠️ ⚠️ ⚠️ a2uicatalog · MIT
parallax_section a2uicatalog · MIT
particle_burst a2uicatalog · MIT
pattern_background a2uicatalog · MIT
pdf_preview ⚠️ ⚠️ a2uicatalog · MIT
person_card a2uicatalog · MIT
pipeline ⚠️ ⚠️ a2uicatalog · MIT
playbook a2uicatalog · MIT
poll_block ⚠️ ⚠️ a2uicatalog · MIT
post_metadata_bar ⚠️ ⚠️ a2uicatalog · MIT
prerequisite_checklist ⚠️ ⚠️ Flowbite · MIT
pricing_tier_card a2uicatalog · MIT
pricing_tier_group ⚠️ ⚠️ a2uicatalog · MIT
print_button a2uicatalog · MIT
product_spec_table ⚠️ a2uicatalog · MIT
product_thumbnail ⚠️ Shopify Polaris · MIT
progress_bar ⚠️ UIverse.io community · MIT
progress_checkpoint ⚠️ ⚠️ ⚠️ shadcn/ui · MIT
progress_circle ⚠️ UIverse.io community · MIT
progress_reveal a2uicatalog · MIT
progress_ring a2uicatalog · MIT
progress_store a2uicatalog · MIT
prompt_template ⚠️ ⚠️ a2uicatalog · MIT
prompt_to_schema a2uicatalog · MIT
pros_cons_list a2uicatalog · MIT
pull_stat a2uicatalog · MIT
pulse_dot a2uicatalog · MIT
punch_card a2uicatalog · MIT
quiz_question ⚠️ ⚠️ a2uicatalog · MIT
quiz_result_summary a2uicatalog · MIT
quiz_set a2uicatalog · MIT
quote ⚠️ a2uicatalog · MIT
raise_hand a2uicatalog · MIT
rating_comparison a2uicatalog · MIT
rating_stars ⚠️ ⚠️ UIverse.io community · MIT
rating_summary_bar a2uicatalog · MIT
reaction_group ⚠️ ⚠️ ⚠️ UIverse.io community · MIT
reaction_shower a2uicatalog · MIT
reading_progress_bar ⚠️ ⚠️ ⚠️ a2uicatalog · MIT
reflection_prompt a2uicatalog · MIT
related_posts_grid ⚠️ ⚠️ ⚠️ a2uicatalog · MIT
release_notes ⚠️ ⚠️ Flowbite · MIT
renderer_stats a2uicatalog · MIT
repo_links ⚠️ a2uicatalog · MIT
resources_list ⚠️ ⚠️ Flowbite · MIT
reveal a2uicatalog · MIT
reveal_line a2uicatalog · MIT
reveal_on_scroll ⚠️ ⚠️ ⚠️ a2uicatalog · MIT
review_callout ⚠️ ⚠️ a2uicatalog · MIT
ripple_button a2uicatalog · MIT
risk_flag a2uicatalog · MIT
roadmap_card a2uicatalog · MIT
rubric_card a2uicatalog · MIT
sankey_flow a2uicatalog · MIT
scatter_trend a2uicatalog · MIT
scenario_branch a2uicatalog · MIT
schema_qr QR-Code-generator (Project Nayuki) · MIT
schema_reveal a2uicatalog · MIT
score_summary ⚠️ ⚠️ a2uicatalog · MIT
scramble_reveal ⚠️ a2uicatalog · MIT
script_run_button a2uicatalog · MIT
scroll_progress a2uicatalog · MIT
scroll_to_top ⚠️ ⚠️ ⚠️ a2uicatalog · MIT
scroll_trigger a2uicatalog · MIT
search_result_card ⚠️ a2uicatalog · MIT
section_break a2uicatalog · MIT
section_label a2uicatalog · MIT
segmented_control UIverse.io community · MIT
sentiment_summary a2uicatalog · MIT
series_overview_card ⚠️ ⚠️ shadcn/ui · MIT
share_quote ⚠️ ⚠️ ⚠️ Flowbite · MIT
sheet_form a2uicatalog · MIT
sheet_form_submit a2uicatalog · MIT
sheet_preview a2uicatalog · MIT
sheet_stats a2uicatalog · MIT
shimmer_button ⚠️ ⚠️ a2uicatalog · MIT
shimmer_text a2uicatalog · MIT
shortcut_legend a2uicatalog · MIT
side_by_side_spec ⚠️ a2uicatalog · MIT
sidebar_note ⚠️ ⚠️ ⚠️ shadcn/ui · MIT
skeleton a2uicatalog · MIT
skeleton_stage_card ⚠️ a2uicatalog · MIT
skill_bars a2uicatalog · MIT
skill_radar a2uicatalog · MIT
social_feed_embed ⚠️ a2uicatalog · MIT
social_proof_banner ⚠️ ⚠️ UIverse.io community · MIT
social_share_bar ⚠️ ⚠️ ⚠️ UIverse.io community · MIT
sonar_pulse ⚠️ ⚠️ a2uicatalog · MIT
source_citation ⚠️ a2uicatalog · MIT
spaced_repetition_card a2uicatalog · MIT
spacer a2uicatalog · MIT
sparkline UIverse.io community · MIT
speed_counter a2uicatalog · MIT
spinner UIverse.io community · MIT
split_pane a2uicatalog · MIT
split_reveal a2uicatalog · MIT
split_stat a2uicatalog · MIT
spotlight_card a2uicatalog · MIT
spotlight_cursor a2uicatalog · MIT
spring_nodes a2uicatalog · MIT
sprint_board ⚠️ ⚠️ Atlassian Design System · Apache-2.0
stacked_area a2uicatalog · MIT
stagger_list a2uicatalog · MIT
star_rating_display ⚠️ ⚠️ UIverse.io community · MIT
star_rating_input UIverse.io community · MIT
stat_card ⚠️ UIverse.io community · MIT
status_dashboard ⚠️ a2uicatalog · MIT
status_pill ⚠️ ⚠️ UIverse.io community · MIT
status_timeline ⚠️ a2uicatalog · MIT
step_progress a2uicatalog · MIT
step_reveal_sequence a2uicatalog · MIT
stepper ⚠️ ⚠️ ⚠️ a2uicatalog · MIT
steps ⚠️ ⚠️ a2uicatalog · MIT
stripe_background a2uicatalog · MIT
study_timer a2uicatalog · MIT
subheading a2uicatalog · MIT
summary_box ⚠️ ⚠️ shadcn/ui · MIT
surface_map a2uicatalog · MIT
surface_unlocked a2uicatalog · MIT
svg_path_draw ⚠️ ⚠️ a2uicatalog · MIT
tab_bar ⚠️ ⚠️ ⚠️ a2uicatalog · MIT
tabbed_code ⚠️ ⚠️ ⚠️ shadcn/ui · MIT
table ⚠️ a2uicatalog · MIT
table_of_contents ⚠️ ⚠️ ⚠️ a2uicatalog · MIT
tabs a2uicatalog · MIT
tag_block ⚠️ OpenUI / Thesys · MIT
tag_chip a2uicatalog · MIT
tag_cloud a2uicatalog · MIT
take_away_card a2uicatalog · MIT
task_list a2uicatalog · MIT
tasks_today a2uicatalog · MIT
terminal_block ⚠️ ⚠️ ⚠️ a2uicatalog · MIT
terminal_boot ⚠️ a2uicatalog · MIT
testimonial_card ⚠️ ⚠️ a2uicatalog · MIT
text_block a2uicatalog · MIT
text_callout OpenUI / Thesys · MIT
text_highlight a2uicatalog · MIT
text_reveal_mask a2uicatalog · MIT
tilt_card a2uicatalog · MIT
time_estimate ⚠️ ⚠️ Flowbite · MIT
timeline ⚠️ ⚠️ a2uicatalog · MIT
toast_notification ⚠️ ⚠️ ⚠️ a2uicatalog · MIT
toggle_switch UIverse.io community · MIT
token_budget_meter ⚠️ ⚠️ a2uicatalog · MIT
tooltip a2uicatalog · MIT
tooltip_glossary a2uicatalog · MIT
tree_view ⚠️ IBM Carbon Design System · Apache-2.0
trend_indicator a2uicatalog · MIT
two_tone_card a2uicatalog · MIT
typewriter ⚠️ ⚠️ a2uicatalog · MIT
typewriter_text ⚠️ ⚠️ a2uicatalog · MIT
typing_indicator ⚠️ ⚠️ a2uicatalog · MIT
uptime_timeline ⚠️ a2uicatalog · MIT
url_anatomy a2uicatalog · MIT
user_greeting a2uicatalog · MIT
user_profile_card a2uicatalog · MIT
variant_selector OpenUI / Thesys · MIT
version_badge ⚠️ ⚠️ Flowbite · MIT
versus_block ⚠️ ⚠️ a2uicatalog · MIT
video_card ⚠️ ⚠️ a2uicatalog · MIT
video_checkpoint a2uicatalog · MIT
video_pair a2uicatalog · MIT
video_thumbnail ⚠️ ⚠️ a2uicatalog · MIT
vote_button_group ⚠️ ⚠️ a2uicatalog · MIT
wave_divider a2uicatalog · MIT
word_cloud a2uicatalog · MIT
word_flip ⚠️ ⚠️ a2uicatalog · MIT
word_reveal a2uicatalog · MIT
word_scramble ⚠️ ⚠️ a2uicatalog · MIT
workspace_logo a2uicatalog · MIT
workspace_logo_grid a2uicatalog · MIT
workspace_logo_strip a2uicatalog · MIT
xp_bar ⚠️ a2uicatalog · MIT
youtube ⚠️ a2uicatalog · MIT
zoomable_image UIverse.io community · MIT

✅ full support ⚠️ renders with caveats (degradation note in spec.json) — not declared for this surface — treat as unsupported


Vendor landscape

Nine UI libraries benchmarked against the A2UI atom vocabulary — gaps identified, licences checked, adaptation priority set. See vendors/LANDSCAPE.md for the full analysis.

Tier Libraries
Tier 1 — act now AI-native patterns, Microsoft Fluent UI
Tier 2 — delivered Shopify Polaris, Atlassian Design System, IBM Carbon
Tier 3 — monitor Tailwind UI, Radix UI, MagicUI / Aceternity, Vercel Geist

Using this vocabulary

  1. Copy atoms/schema.yaml into your agent's system prompt or tool definition
  2. Teach your agent the composition pattern — pick atoms by name, supply parameters
  3. Parse the agent's output and render using:
    • Google Apps Script — copy atom.gs + atoms_charts.gs into any GAS project, call renderAtoms(blocks)
    • Python / web — use renderers/web_article.py (server-side, web-surface atoms)
    • Meet Stagerenderers/meet_stage.py for live presentation panels via gdm-html-panel
    • Your own renderer — the spec is framework-agnostic

The renderer handles HTML, CSS, SVG, and animation. The model never touches them.


On the name

Google established the A2- prefix for agent-interface concepts and published the v0.9 spec in June 2026; this vocabulary is independently developed and interoperable with it. Not affiliated with Google.

The renderer has since moved to the v1.0 candidate spec (renderers/a2ui_v1.py, a2ui_v1_wired.py, a2ui_v1_updates.py) — conformant for the standard-mappable atoms and the blocks dialect's full envelope (createSurface, updateComponents, updateDataModel, action/function RPC). One real, flagged gap: the catalogue's own wired (stateful) dialect is richer than v1.0's flat dataModel — reactive primitives (filtering, computed values, validation, timers) have no v1.0 equivalent and travel as an explicit catalogId: a2ui-state-v1 extension. That's a property of bare v1.0 hosts that don't know the extension catalog — not of this catalogue's own renderer, which always carries a2ui-state-v1 and never degrades: full reactive fidelity on the surfaces that serve it. The degradation only exists as a fallback for a host that doesn't have the catalog at all, and it's spec-correct behavior in that case, not a violation. Not a blanket compliance claim either way — see the module docstrings for the exact scope.

Related work

Source Relevance
A2UI v1.0 candidate — a2ui.org Current spec this catalogue's renderer targets
A2UI v0.9 — Google Developers Blog Original announcement — separates structure (agent) from implementation (renderer), no surface compatibility layer yet
MCP-UI — Interactive UI for MCP Capability negotiation at client handshake level, not component level
The State of Agentic UI — CopilotKit Compares AG-UI, MCP-UI, A2UI — none have atom-level surface tagging
W3C UI Specification Schema CG Machine-readable meta-model for cross-platform UI constraints — closest to this approach

License

MIT. See LICENSE for details.


Built by Curtis Krygier.

from github.com/a2uicatalog/a2ui

Installing A2ui

This server has no published package — it is built from source. Open the repository and follow its README.

▸ github.com/a2uicatalog/a2ui

FAQ

Is A2ui MCP free?

Yes, A2ui MCP is free — one-click install via Unyly at no cost.

Does A2ui need an API key?

No, A2ui runs without API keys or environment variables.

Is A2ui hosted or self-hosted?

Self-hosted: the server runs locally on your machine via the install command above.

How do I install A2ui in Claude Desktop, Claude Code or Cursor?

Open A2ui on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.

Related MCPs

Compare A2ui with

Not sure what to pick?

Find your stack in 60 seconds

Author?

Embed badge for your README

Browse similar

All communication MCPs