Registry
CupertinoUI is a shadcn registry: a set of JSON files the shadcn CLI reads to copy components into your project.
Endpoints
Every item is served as JSON with its source code, dependencies and the registry items it builds on:
https://www.cupertino-ui.com/r/registry.json # the index
https://www.cupertino-ui.com/r/{name}.json # one item, e.g. button.jsonYou can install an item straight from its URL, but the namespace below is the recommended way, since items depend on @cupertinoui/macos-theme.
Namespace
{
"registries": {
"@cupertinoui": "https://www.cupertino-ui.com/r/{name}.json"
}
}pnpm dlx shadcn@latest add @cupertinoui/comboboxThe CLI resolves @cupertinoui/combobox to its JSON, installs its npm dependencies, then installs every registry dependency it lists, such as @cupertinoui/button and @cupertinoui/input-group.
Item types
registry:style:macos-theme, the CSS variables and thecnhelper.registry:ui: components, installed tocomponents/ui.registry:block: complete windows, installed tocomponents/blocks.
The registry directory lists every item with its install command and JSON.
Building the registry
If you fork CupertinoUI, the items are declared in registry.json at the root of the repository. The shadcn CLI turns it into the files in public/r:
pnpm dlx shadcn@latest buildhomepage in registry.json and the NEXT_PUBLIC_SITE_URL environment variable to your deployed URL, so the install commands on the site point at your copy.