CLI
Install, preview and update Blank items with the shadcn CLI, and connect the registry to an AI agent through the shadcn MCP server.
Blank does not ship its own CLI. Everything goes through the shadcn CLI, which
reads the registries you list in components.json.
Namespaces
| Namespace | Serves | Auth |
|---|---|---|
@blank | Free components, animations, starter blocks, the theme | None |
@blank-pro | Pro components and Pro blocks | Licence key |
{
"registries": {
"@blank": "https://useblank.design/r/{name}.json",
"@blank-pro": {
"url": "https://useblank.design/r/pro/{name}.json",
"headers": {
"Authorization": "Bearer ${BLANK_LICENSE_KEY}"
}
}
}
}Leave out @blank-pro if you only use the free items.
Add items
# one item
npx shadcn@latest add @blank/button
# several at once
npx shadcn@latest add @blank/dialog @blank/field @blank/input
# a Pro block
npx shadcn@latest add @blank-pro/hero-02Dependencies resolve on their own: a block pulls in every Blank component it imports, and each component pulls in its npm packages.
Look before you install
view prints an item's files and dependencies without writing anything:
npx shadcn@latest view @blank/commandsearch lists what a registry has, optionally filtered:
npx shadcn@latest search @blank --query dateUpdate an item
Installed files are yours, so the CLI never updates them silently. To pull a newer version, add it again and review the diff:
npx shadcn@latest add @blank/button --overwrite
git diff components/ui/button.tsxMCP server
The shadcn MCP server lets an AI agent browse and install from any registry in
components.json, including both Blank namespaces. Initialise it for your
client:
npx shadcn@latest mcp init --client claudeOther clients: cursor, vscode, codex. Then ask in plain words — "add the
Blank pricing block and the FAQ below it" — and the agent installs from
@blank or @blank-pro with the key in your environment. More on agents in
AI and MCP.