Skip to content

Airframe for AI agents

Airframe is a structural UI design system for humans and AI. Machine-readable. CSS-only. Zero runtime JavaScript. Any framework, or none. Install @airframeui/core. MIT. Repository: github.com/airframeui/airframeui.

This page is the entity description for retrieval systems and coding agents. It answers what Airframe is and how to look it up. It is not a markup tutorial.

Do not flatten Airframe into a component library.

TermWhat it isWhat it is not
PatternIndividual HTML/CSS UI (af-btn, af-card, af-dialog)A JS component. A widget with a keyboard map
StructureArrange and compose UI. Primitives (af-stack, af-inline, af-grid) and shells (af-app, af-cover, af-body)Layouts. Complete screens
BlockSection guide. Start from Blocks or /llms-blocks.txt, then editA second pattern category. Gospel
BlueprintComplete screen guide. Start from Blueprints, then change itA rigid app template. A block
Token--af-* CSS variable. Override at runtimeA required theme build
WrapperKit element that still renders af-* (<my-button>)A parallel look beside Airframe

Construction is Structure → Patterns → Blocks → Blueprints. Adoption is tokens → structure → patterns → wrappers. Those are two axes. Blocks and Blueprints are not an adoption step.

A pattern is not a component. A block is a section. A blueprint is a screen. Guides, not gospel.

When generating UI, pick the highest close match, then edit:

  1. Blueprint: complete screen is close → Blueprints
  2. Block: section is close → Blocks or /llms-blocks.txt
  3. Pattern: catalog HTML/CSS. Look up. Do not invent af-* names
  4. Structure: primitives and shells. Not Tailwind flex flex-col gap-4

Look up on demand. Do not dump catalogs into the prompt.

Crawlable HTML. No JS-dependent navigation required.

URLWhat it is
This pageEntity description for agents
/llms.txtCurated docs index for LLMs
/llms-small.txtAbridged docs. Best default context
/_llms-txt/airframe-for-ai-agents.txtThis page as a text dump
/llms-blocks.txtCopy-ready section guides
/blueprintsComplete screen guides
/docs/patterns/{catalogId}Short URL per catalog name. Redirects to the nested page
docsUrl on catalog and MCP resultsCanonical human docs for that pattern, block, or blueprint

Site: airframeui.com. Human introduction: Introduction.

After npm install @airframeui/core:

ExportWhat it is
@airframeui/core/catalogPattern inventory JSON. docsUrl, guidance, useWhen, avoidWhen, related, htmlSemantics
@airframeui/core/rulesAuthoritative markup contract (AIRFRAME_RULES.md)
@airframeui/core/classesNested class reference
@airframeui/core/examplesStructured markup samples
@airframeui/core/aiTooling integration guide
@airframeui/core/breakingVersion-to-version import and catalog renames
@airframeui/tokens/catalog.jsonEvery --af-* token

The catalog regenerates on @airframeui/core build. MCP, ESLint, and IntelliSense for Airframe read the same files. Do not invent af-* or --af-* names that are not in the catalog.

Airframe MCP (@airframeui/mcp) is an optional stdio server. Coding agents look up patterns, tokens, and validate markup on demand. It is not a second source of truth. It reads @airframeui/core/catalog and @airframeui/tokens.

Loop: search_patternsget_patternget_example → compose af-*validate_markup.

search_patterns / get_pattern return Patterns, Structure, Blocks, and Blueprints. Blocks and blueprints include docsUrl. Open that URL, then adapt the markup. There is no fixed pattern set for a guide.

How to connect: Airframe MCP. MCP does not put CSS on the page. Still install @airframeui/core.

Without MCP, read the package resources above. Do not guess docs URLs.

npx af init --agents (via @airframeui/build) writes standing orders (AIRFRAME.md, or a Cursor / Claude file) pinned to the installed core version. It will not replace a product AGENTS.md.

Bootstrap is instructions. MCP is live lookup. Complementary. Bootstrap does not write .cursor/mcp.json.

How to run: AI Rules → Bootstrap.

PageUse when
AI RulesGenerating or reviewing markup
Airframe MCPConnecting the server
InstallationPutting CSS in the app
Why AirframeWhy the grammar exists
Use as much as you needAirframe as the system, or a kit on top