Documentation menu

shadcn CLI

Beste UI uses the standard shadcn CLI, so anything that works with shadcn works here. This is a quick reference for the commands you will actually use; the official CLI docs are the full source of truth.

init

Set up shadcn/ui in a project: config, theme variables, and the base dependencies.

Terminal
npx shadcn@latest init
-t, --templateFramework: next, vite, start, react-router, astro.
-b, --basePrimitive layer: base (Base UI) or radix.
-d, --defaultsUse sensible defaults without prompts.
--css-variablesTheme with CSS variables (default: on).
-f, --forceOverwrite an existing configuration.
-c, --cwdRun against a different working directory.

add

Add a component, block, or piece to an existing project. The source can be a shadcn component name, a local path, or a URL — which is exactly how Beste assets install.

Terminal
# From the shadcn registry
npx shadcn@latest add button
# From Beste UI (a URL)
npx shadcn@latest add "https://ui.beste.co/r-base/pricing10.json"
-y, --yesSkip the confirmation prompt.
-o, --overwriteOverwrite files that already exist.
-p, --pathInstall into a specific directory.
-a, --allAdd every item from the source.
--dry-runPreview changes without writing anything.
-c, --cwdTarget a different working directory.

build

Generates registry JSON from a registry.json file. You only need this if you are publishing your own registry; installing Beste assets never requires it.

Terminal
npx shadcn@latest build

Beste registry URLs

Each asset is available at a predictable URL, in both flavors:

Blocks/r-base/{name}.json · Radix: /r/{name}.json
Pieces/piece/r-base/{name}.json · Radix: /piece/r/{name}.json
Components/component/r-base/{name}.json · Radix: /component/r/{name}.json

You rarely type these by hand — every asset page has a copy button that also lets you flip between Base UI and Radix, and pre-fills your license for Pro items.