Learn how to use the ReUI Registry with shadcn/ui.
The ReUI Registry serves every ReUI item from a single @reui namespace: free primitives and c-* components, paid blocks and paid icons. The shadcn CLI resolves the full alias suffix into the registry URL, so ReUI items install as @reui/<name> and ReUI handles access rules on the server. Stock shadcn/ui components are not ReUI items and install by their bare name, for example npx shadcn@latest add button. Templates are not registry items either: each one is a download from its page in Templates.
@reui is a registry namespace, not an npm scope
There is no ReUI npm package to install. Running npm i @reui/data-grid
asks npm's own @reui scope, which belongs to an unrelated publisher, so it
either fails or installs a package that is not ours. ReUI items are installed
only with the shadcn CLI, which resolves @reui/<name> against the registry
URL in your components.json.
Setup ReUI Registry
Add the ReUI registry namespace to your components.json. Learn more about registry config from shadcn registry docs.
{style} is not free-form. The shadcn CLI substitutes it with the style value from your components.json, which ReUI reads as <base>-<variant>: the base picks the primitive library the code is built on, the variant picks the visual style. Every pairing of the two lists below is served, so base-nova (the default), radix-lyra and base-sera are all valid. A {style} outside these lists is not served and the install fails as not found.
ReUI items that merge classes use cn, a compiled drop-in for clsx plus tailwind-merge, imported as a package:
import { cn } from "cn"
The CLI installs it for you: any item that imports it lists cn in its dependencies, so shadcn add adds it to your package.json on the first such install and skips it after that.
This follows shadcn, which moved every component onto the package in its September 2026 cn release: one dependency instead of two, and no local helper to maintain.
Earlier ReUI releases imported cn from your own @/lib/utils. Items already in your project keep working, and your @/lib/utils is untouched.
To drop clsx and tailwind-merge from your own project, run the upstream migration:
pnpm dlx shadcn@latest migrate cn
If you had customized cn in @/lib/utils, rebuild it with createCn from cn/config. Newly installed ReUI items import the package directly, so they no longer route through that file.
Free Components
Free component examples use the c-* naming pattern and can be installed without a license key.
pnpm dlx shadcn@latest add @reui/c-alert-1
Some free c-* items pull shared @reui/* primitives such as @reui/alert or @reui/data-grid as registry dependencies. Those supporting files remain publicly accessible so free component installs keep working.
Paid Blocks And Icons
Premium blocks and icons use the same @reui namespace, but they require a valid license key. Templates are not installed through the registry: download them from their page in Templates.
If you want the full premium setup flow with a visible account key state, copy-ready snippets, and install examples in one place, see the License Setup guide.
Add your license key to .env.local.
REUI_LICENSE_KEY=your-license-key
Change the registry entry to the authenticated object form.