Getting started

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

NamespaceServesAuth
@blankFree components, animations, starter blocks, the themeNone
@blank-proPro components and Pro blocksLicence key
components.json
{
"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-02

Dependencies 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/command

search lists what a registry has, optionally filtered:

npx shadcn@latest search @blank --query date

Update 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.tsx

MCP 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 claude

Other 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.