Skip to content

Registry

Own the code without forking the design system

The registry turns package source into copyable component files, preserving dependencies and local aliases for every app.

Flow

Generate

The registry is generated from real @cooud-ui/ui component sources, keeping docs, packages, and copy-paste output aligned.

Resolve

When you add a component, registry dependencies are expanded so required primitives come with it.

Rewrite

Imports are rewritten to your configured aliases, such as @/components/ui and @/lib/cn.

Diff

The diff command exposes local drift before teams upgrade copied components.

Local registry

Use a local registry path when developing or testing component changes before publishing.

bash
bun run -F cooud-ui registry
pnpm dlx cooud-ui@latest list --registry ./registry
pnpm dlx cooud-ui@latest add button card --registry ./registry

Use with the shadcn CLI

The registry also speaks the shadcn registry spec, so any shadcn-compatible tool can install Cooud UI without the cooud-ui CLI.

bash
npx shadcn@latest add https://ui.testcooud.cloud/r/button.json

Every item is served at /r/<name>.json, with the full index at /r/registry.json. Registry dependencies resolve back to this registry automatically, and imports are rewritten to your components.json aliases.

Registry item shape

Each item records files, npm dependencies, and other registry items required by the component.

json
{
"name": "button",
"type": "registry:ui",
"files": ["components/ui/button.tsx"],
"dependencies": ["@radix-ui/react-slot", "class-variance-authority"],
"registryDependencies": []
}

The CLI reads cooud-ui.json before writing files, so copied components follow the receiving app's folder structure.