- Alert
- Autocomplete
- Badge
- CascaderNew component for nested multi-level selection
- Data Grid
- Date Selector
- Event Calendar
- File Upload
- FiltersRebuilt around a boolean query tree, with breaking API changes and a migration prompt
- Frame
- Gantt
- Icon Stack
- Icon Tile
- Kanban
- Number Field
- Phone Input
- Rating
- Scrollspy
- Sortable
- Stepper
- Timeline
- Tree
Grok Build is xAI's terminal coding agent (the grok command). It speaks MCP natively over Streamable HTTP, so one command connects it to the ReUI registry and you can build UI from ReUI components, examples, and blocks right in your terminal. For the shared background (the tools, the plan limits, the sign-in flow) see the MCP server overview.
Connect ReUI
Add the ReUI server
From your project, register ReUI as a remote HTTP server:
grok mcp add --transport http reui https://mcp.reui.ioThat writes an entry into ~/.grok/config.toml you can also edit by hand:
[mcp_servers.reui]
url = "https://mcp.reui.io"Sign in with ReUI
ReUI requires an account, and Grok triggers a browser flow on first use for servers that ask for OAuth. Approve the "Sign in with ReUI" prompt and you are set. If you do not have a ReUI account yet, a free one is created right there in the same flow, so there is nothing to set up in advance.
You can also start the flow yourself: type /mcps to open the MCP tab of the extensions modal, select reui, and press i to authenticate. Grok stores the tokens in ~/.grok/mcp_credentials.json.
Headless and CI
For non-interactive runs (grok -p, cron jobs, pipelines) where no browser prompt is possible, create a personal token at Account → MCP (it looks like reui_pat_...) and send it as a Bearer header instead:
grok mcp add --transport http reui https://mcp.reui.io \
--header "Authorization: Bearer reui_pat_your_token_here"Grok expands ${VAR} (and ${VAR:-default}) inside url, command, args, env and headers, so the token can stay in the environment rather than in the file:
[mcp_servers.reui]
url = "https://mcp.reui.io"
headers = { Authorization = "Bearer ${REUI_MCP_TOKEN}" }This header is an alternative to the browser sign-in, not an addition to it. It is sent on every request and takes precedence over any OAuth credential the client has stored, so leave it out entirely on the sign-in path - otherwise authenticating appears to succeed while every call keeps failing.
Tokens expire after 90 days by default (30, 60, 90 and 180 are offered, plus No expiry for pipelines that cannot rotate). Nothing warns you beforehand, so an expired token simply starts returning 401 - create a fresh one at Account → MCP and update the header or CI secret.
The ReUI skill
There is nothing to install. The build workflow rides on the MCP: once reui is connected, ask Grok to call get_agent_skill and it loads the full ReUI workflow (the reuse-first rule and the find, read the real API, install, then adapt order) as a document. If a build drifts off-pattern, tell it to "follow the ReUI skill" to reload that workflow.
If you would rather keep a local copy, the plain project installer already covers it. Grok reads Claude Code's skills, MCP entries, and instruction files with no configuration, and the installer writes the skill to both <project>/.claude/skills/reui and <project>/.agents/skills/reui:
curl -fsSL https://mcp.reui.io/install | node -Global mode writes the same skill to ~/.claude/skills/reui and ~/.agents/skills/reui, the user-level directories Grok reads:
curl -fsSL https://mcp.reui.io/install | REUI_GLOBAL=1 node -Two things to know before running either one. The installer adds a reui entry to Codex's ~/.codex/config.toml in both modes, so choosing project mode does not leave that file alone; global mode additionally merges one into ~/.claude.json. And each run replaces the managed reui skill directory outright rather than merging into it, so local edits inside it do not survive an update.
Build with ReUI
Describe the interface you want in plain language and Grok pulls the right ReUI components, examples, and blocks from the registry, then wires them into your project.
Use ReUI to scaffold an admin app - the app-shell with a collapsible sidebar and top bar, and a dashboard page with stat cards and a chart.Add a data-grid of orders with sorting, column filters, pagination, and row selection, wired to my /api/orders endpoint.Build a multi-step "create project" wizard with the ReUI stepper and form components, with validation on each step.Add a kanban board for support tickets with drag and drop, grouped by status, and a filters bar above it.Unlock premium items
Free items (the 20 components and every c-* example) install with no license. To let Grok install premium blocks, icons, and templates too, grab a Pro or Ultimate license - one license unlocks the whole premium registry and removes the daily MCP request limit. Then add your key to the project - two quick steps:
Add your license key
Copy your key from Account → Licenses into .env.local at the project root:
REUI_LICENSE_KEY=your-license-key-hereAdd the @reui registry to components.json
{
"registries": {
"@reui": {
"url": "https://reui.io/r/{style}/{name}.json",
"headers": {
"Authorization": "Bearer ${REUI_LICENSE_KEY}"
}
}
}
}The shadcn CLI expands ${REUI_LICENSE_KEY} from .env.local. Grok expands ${...} in its own config too, but the two read different values: components.json wants your license key, while the MCP header wants a personal token, so keep them in separate variables.
That is it - Grok can now install any premium item the MCP returns, and free items keep working through the same config. See License Setup for the full guide, or compare plans on the Pricing page.
Troubleshooting
Start with grok mcp doctor reui, which reports what the connection is actually doing. Beyond that, a browser sign-in can be renewed but a personal token has to be replaced.
- Tools missing, greyed out, or "not connected" - the server did not finish connecting. To fix it, open
/mcps, make surereuiis toggled on withSpace, pressrto refresh after any config edit, then restart Grok. - 401 and you signed in through the browser - your ReUI session expired. To fix it, open
/mcps, selectreui, and pressito authenticate again. - 401 and you use a personal token (headless or CI) - the token has expired or been revoked. Re-authenticating will not help, because the
Authorizationheader your job sends is not a browser session. Create a new token at Account → MCP and update the header. The 401 body names which of the two it was. - Requests hang or the session drops mid-build - long sessions can lose the connection. To fix it, press
rin/mcpsto refreshreuiand retry your last prompt. - Sign-in appears to work but every call still 401s - check whether you have a
headers = { Authorization = ... }line on thereuiserver. A configured credential is sent on every request and overrides the OAuth credential the sign-in stores, so while it is there opening/mcps, selectingreui, and pressingicannot take effect. The two are alternatives, not layers: use the header only on the headless path, and remove it if you want the browser sign-in. - 429 "daily limit reached" - you hit the free limit of 100 tool calls per day. Use a ReUI license for unlimited access, or wait for the next day.
- Every ReUI call fails and nothing asks you to sign in - the stored OAuth connection is dead (revoked, expired, or invalidated after a suspicious reuse), and the client is silently retrying a credential that can never work again. Account → MCP shows the connection as Disconnected when this is the case. Reconnect the same way as the 401 fix above; retrying without signing in again cannot recover it.