ui.swirski.dev
Hosted JSON for shadcn plus a local manifest for the Swirski CLI.
Swirski can be used as a normal package, copied with the Swirski CLI, or installed through the hosted shadcn-compatible registry. Pick the workflow based on how much source ownership you want.
Hosted JSON for shadcn plus a local manifest for the Swirski CLI.
Apps that want the simplest setup and package updates.
pnpm add @swirski/uiApps that want copied source they can edit directly.
pnpm add -D @swirski/cliApps that already use shadcn and want remote registry items.
pnpm dlx shadcn@latest add https://ui.swirski.dev/r/button.jsonThis is the fastest path for most apps. Install the package, import styles once, then import components from @swirski/ui.
Package setuppnpm add @swirski/uiimport "@swirski/ui/styles.css";import { Button, Card, Title } from "@swirski/ui";The Swirski CLI reads registry/swirski.registry.json and copies source folders into your app. Copied components become local code that you can edit, rename, or reshape.
| Command | What it does |
|---|---|
pnpm exec swirski init | Creates swirski.config.json with the component output path. |
pnpm exec swirski list | Prints every component and hook in the Swirski registry. |
pnpm exec swirski add button | Copies one component folder into your configured app path. |
pnpm exec swirski add button card dialog | Copies several registry entries in one command. |
pnpm exec swirski add --all | Copies the full local Swirski registry into your app. |
pnpm exec swirski add select --dry-run | Shows what would be copied without writing files. |
The hosted registry lives at https://ui.swirski.dev/registry.json. Use direct item URLs for one-off installs, or add a namespace to components.json if you want shorter commands.
shadcn is best for selected registry items. If you want the full Swirski source copied at once, use pnpm exec swirski add --all.
pnpm dlx shadcn@latest view https://ui.swirski.dev/r/button.jsonpnpm dlx shadcn@latest add https://ui.swirski.dev/r/button.json{
"registries": {
"@swirski": "https://ui.swirski.dev/r/{name}.json"
}
}pnpm dlx shadcn@latest add @swirski/button @swirski/dialogpnpm exec swirski init creates this config in your app. Use --path on swirski add to override the component destination for one command.
{
"componentsPath": "src/components/ui",
"stylePath": "src/styles.css"
}These are three doors into the same Swirski design language. The right one depends on whether you want imports, local source, or shadcn-compatible registry installs.