What is RPML?
RPML (Rapid Prototype Markup Language) is the static UI spec language OriginAI uses so coding agents implement screens, states, and rules — not a running app.
RPML (Rapid Prototype Markup Language) is a static UI specification language. A .rpml file is one screen or functional region: the layout, every interaction state, permission variant, and loading / empty / error / validation branch, written as markup a person can read and a coding agent can implement.
It is not HTML you ship. It is not a clickable prototype. Time is replaced with space — states sit next to each other in one annotated layout, so a reviewer does not have to ask "but what happens when…".
OriginAI stores product specs as RPML. You edit them in the workbench, publish a release, and Claude Code, Cursor, or Codex reads that frozen snapshot through the originai CLI or MCP.
Why a language instead of a screenshot or a PRD
Screenshots miss states. A PRD goes stale and skips the empty table, the admin-only button, and the confirm dialog. Markdown task lists (the usual spec-driven-development kit) describe what to build next, not what the product looks like when each rule fires.
RPML is for that product contract:
- One
.rpmlfile per screen or region, rooted at<page>. - A single
<view>snapshot built from RPML primitives (button,table,navigator, …) — not rawdiv/input. - Numbered pins (
data-pin) with matching<annotation>blocks for the rules that belong to each region. <enum>/<enum-item>for conditional branches instead of burying them in prose.
The runtime that paints those files in a browser is @21stware/rpui. OriginAI's workbench uses the same language. Locally you can also npx @21stware/rpui serve . on a folder of .rpml files.
How OriginAI uses RPML
- Author — generate or write
.rpmlin the workbench (or have a coding agent write it viaoriginai write-documentbefore the first release). - Validate —
npx originai validate --content "…"checks the file locally, no token required. - Publish — a release freezes the tree. Agents implement that version, not the live draft.
- After publish — further agent writes become change requests you apply or dismiss.
See Files and README for how a multi-page product is split (README first, then one file per route).
RPML is not
- Not a replacement for Claude Code, Cursor, or Codex. Those tools write the product. RPML tells them what "done" looks like on each screen.
- Not GitHub Spec Kit. Spec Kit is a markdown specify → plan → tasks → implement workflow that lives in your repo. RPML is the visual product spec those tasks should implement. See OriginAI vs Spec Kit.
- Not Proto Markdown or a generic "rapid prototyping markup". RPML is the language OriginAI and
@21stware/rpuispeak.
Related
- What is OriginAI?
- OriginAI vs GitHub Spec Kit
- Files and README
- OriginAI CLI (
validate,write-document,get-diff)
What is OriginAI? Product specs Claude Code and Cursor implement
OriginAI turns product requirements into structured, versioned RPML specs. You publish a release; Claude Code, Cursor, or Codex implements that version — not last week's chat.
OriginAI vs GitHub Spec Kit
Spec Kit is a markdown specify → plan → tasks workflow in your repo. OriginAI is a visual product spec (RPML) you publish as an immutable release for Claude Code, Cursor, and Codex.