Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/a2uicatalog/a2ui/a2ui-composenpx skills add a2uicatalog/a2ui --skill a2ui-composegit clone --depth 1 https://github.com/a2uicatalog/a2uiWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/a2uicatalog/a2ui/a2ui-compose)<a href="https://agentmods.dev/skills/a2uicatalog/a2ui/a2ui-compose"><img src="https://agentmods.dev/badge/skills/a2uicatalog/a2ui/a2ui-compose.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00102 | $0.01072 |
| Opus 5 | $0.00051 | $0.00536 |
| Sonnet 5 | $0.00020 | $0.00214 |
| Haiku 4.5 | $0.00010 | $0.00107 |
Grade A, and why
a2ui-compose scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 4d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 85 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Composing and rendering an A2UI payload
The payload shape
{
"title": "Weekly numbers",
"theme": "light",
"blocks": [
{ "type": "heading", "text": "This week" },
{ "type": "stat_card", "value": "1,234", "label": "Daily users", "delta": "+12%" }
]
}
blocks is an ordered array of atoms (the "blocks dialect"). A v1.0 createSurface
envelope (templates + dataModel bindings) is also accepted wherever a payload is taken —
theme is light, dark, or terminal (the catalog's own dark/monospace brand skin).
Render, by host capability
- MCP Apps-capable host (renders inline in the conversation, no URL, no size
ceiling):
render_surface(payload). - Any other MCP host:
preview_url(payload)— a shareable link on the shared demo renderer (rate-limited: 10 calls per client per 7 days). - No rate limit, your own deployment:
make_surface_url(payload, renderer_url)— renders against a renderer YOU deployed (see the self-hosting quickstart below), or omitrenderer_urlfor the encoded-fragment + BYO guidance. - Protocol-free, no MCP client at all:
POST https://a2uicatalog.ai/api/renderwith the payload as the JSON body — returns a complete self-contained HTML page. Same guards, same 50-requests/day-per-IP limit as the MCP tools above.POST /api/render/batchdoes up to 25 payloads in one call with PARTIAL SUCCESS semantics (one malformed payload doesn't fail the batch).
Failure modes worth knowing before they surprise you
- Preview-stage or unpublished atoms aren't an error — they render as a visible
"not published here" notice rather than being silently dropped, and are named in the
X-A2UI-Unpublishedresponse header. - Atoms that need a render-time server fetch (
data_source,firestore_read,doc_ai_summary,multi_doc_ai_brief,gemini_handoff) are refused with 400 on the public renderer — deploy your own renderer for those (see below). - Limits: 256 KB body, 300 blocks, 12 levels of nesting on
/api/render. An oversized or over-nested payload is a 400, not a silent truncation — check the error body for which limit was hit. - A surface query param (
?surface=web|mcp-apps|google-apps-script-web|google-meet-stage) applies that surface's declared compatibility policy: atoms markeddegraded_onstill render (named inX-A2UI-Degraded); atoms markedincompatible_onare replaced with a visible callout (named inX-A2UI-Incompatible) rather than rendering something wrong.pdf,emailandgoogle-chatare refused with 400 here — this endpoint emits HTML, and answering half-honestly about portability on those surfaces is worse than refusing.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 4d ago First seen · 85 lines · 102 tokens per session scan A d6750d93bb78
a2ui-compose is a skill published in the GitHub repository a2uicatalog/a2ui (4 stars, last pushed 4d ago), licensed MIT. It adds 102 tokens to every session and 1,072 once invoked, about $0.0005 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
design-taste-frontend
Anti-slop frontend skill for landing pages, portfolios, and redesigns. The agent reads the brief, infers the right design direction, and ships interfaces that do not look templated. Real design systems when applicable, audit-first on redesigns, strict pre-flight check.
image-to-code
Elite website image-to-code skill for Codex. For visually important web tasks, it must first generate the design image(s) itself, deeply analyze them, then implement the website to match them as closely as possible. In Codex, it must prefer large, readable, section-specific images instead of tiny compressed boards…
brandkit
Premium brand-kit image generation skill for creating high-end brand-guidelines boards, logo systems, identity decks, and visual-world presentations. Trained for minimalist, cinematic, editorial, dark-tech, luxury, cultural, security, gaming, developer-tool, and consumer-app brand systems. Optimized for intentional…
redesign-existing-projects
Upgrades existing websites and apps to premium quality. Audits current design, identifies generic AI patterns, and applies high-end design standards without breaking functionality. Works with any CSS framework or vanilla CSS.
minimalist-ui
Clean editorial-style interfaces. Warm monochrome palette, typographic contrast, flat bento grids, muted pastels. No gradients, no heavy shadows.
immunology-assays
Computational analysis of immunology experimental data. ATAC-seq differential accessibility, immune cell tracking from microscopy, ELISA data processing with 4-parameter logistic fitting, immunohistochemistry quantification, antibody titer analysis, and cell cycle phase duration estimation. For flow cytometry use…