Options Reference
All CLI prompts, flags, and commands.
Commands
| Command | Description |
|---|---|
npx create-scn-stack | Scaffold a new registry project |
npx create-scn-stack init | Add a registry to an existing project |
npx create-scn-stack add-component <name> | Add a component to an existing registry |
npx create-scn-stack add-hook <name> | Add a hook to an existing registry |
npx create-scn-stack add-block <name> | Add a block to an existing registry |
npx create-scn-stack add-theme <name> | Add a theme to an existing registry |
npx create-scn-stack add-file <name> | Add an arbitrary file item (conventions, CI, agent instructions) |
npx create-scn-stack remove <name> | Remove an item (source + registry + docs) |
npx create-scn-stack list | List everything in the registry |
npx create-scn-stack build | Build the registry output (public/r/) |
npx create-scn-stack eject | Inline shadcn/tailwind.css, drop the shadcn dependency |
Prompts
When you run npx create-scn-stack, you'll be guided through these options:
| Prompt | Description | Default |
|---|---|---|
| Registry name | Identifier for your registry (e.g., my-ui) | my-ui |
| Project location | Folder to create the registry in | ./<registry-name> |
| Distribution | Hosted (build + host) or GitHub source registry | Hosted |
| GitHub repo | owner/repo slug (GitHub target only, optional) | <owner>/<name> |
| Style | shadcn/ui style variant | New York |
| Homepage | URL where the registry will be hosted | https://<name>.com |
| Framework | Web framework for the project (hosted only) | Next.js |
| Documentation | Docs engine to include | Fumadocs |
| Starter components | Pre-built example components | Button, Card, Badge |
| Namespace | Registry namespace for @name/component installs | @<name> |
| Package manager | Package manager to use | Auto-detected |
| AI skills | Install shadcn skill + registry skill | Yes |
Flags
All prompts can be pre-filled via flags. Use --yes to skip prompts entirely.
npx create-scn-stack my-ui --yes
npx create-scn-stack my-ui --framework nextjs --docs fumadocs --pm pnpm
npx create-scn-stack my-ui --yes --no-skills| Flag | Values |
|---|---|
--name <name> | Registry name |
--directory <path> | Project location |
--style <style> | new-york | default |
--homepage <url> | Registry homepage URL |
--target <target> | hosted | github (default: hosted) |
--github [owner/repo] | Shorthand for --target github — see GitHub registries |
--github-slug <slug> | owner/repo for GitHub source registries |
--framework <fw> | nextjs | vite | react-router | tanstack-start |
--docs <engine> | fumadocs | mintlify | starlight | none |
--components <set> | essentials | minimal | none |
--namespace <ns> | Namespace (e.g., @my-ui) |
--pm <pm> | pnpm | npm | yarn | bun |
--skills | Include AI skills |
--no-skills | Skip AI skills |
-y, --yes | Skip all prompts, use defaults |
-h, --help | Show help |
add-component
Add a component to an existing registry project:
npx create-scn-stack add-component input
npx create-scn-stack add-component dialog -d "A modal dialog component."This creates:
- Component source in
registry/<style>/ui/<name>.tsx - Entry in
registry/<style>/ui/registry.json(detects include pattern) - Doc page in
content/docs/components/<name>.mdx - Updates
meta.jsonnavigation
| Flag | Description |
|---|---|
--description, -d | Component description |
add-hook
Add a hook to an existing registry project:
npx create-scn-stack add-hook use-toggle
npx create-scn-stack add-hook use-media-query -d "A media query hook."This creates:
- Hook source in
registry/<style>/hooks/<name>.ts - A
registry/<style>/hooks/registry.json(created if needed) - Updates root
registry.jsoninclude array to reference hooks registry - Doc page in
content/docs/hooks/<name>.mdx - Updates
meta.jsonnavigation
Hook names must start with use-.
| Flag | Description |
|---|---|
--description, -d | Hook description |
add-block
Add a block to an existing registry project:
npx create-scn-stack add-block login-form
npx create-scn-stack add-block dashboard-header -d "A dashboard header block."This creates:
- Block source in
registry/<style>/blocks/<name>.tsx - A
registry/<style>/blocks/registry.json(created if needed) - Updates root
registry.jsoninclude array to reference blocks registry - Doc page in
content/docs/blocks/<name>.mdx - Updates
meta.jsonnavigation
| Flag | Description |
|---|---|
--description, -d | Block description |
add-theme
Add a distributable theme to an existing registry project:
npx create-scn-stack add-theme midnight
npx create-scn-stack add-theme sunset -d "A warm, high-contrast theme."This creates:
- Theme CSS in
registry/<style>/themes/<name>.css(light + dark tokens) - A
registry/<style>/themes/registry.json(created if needed) - Updates root
registry.jsoninclude array to reference the themes registry - Doc page in
content/docs/themes/<name>.mdx - Updates
meta.jsonnavigation
Themes are registered as theme-<name> (matching shadcn convention), so a
theme named midnight installs with npx shadcn add @you/theme-midnight.
| Flag | Description |
|---|---|
--description, -d | Theme description |
remove
Remove an item from an existing registry project. This is the full reverse
of any add-* command:
npx create-scn-stack remove button
npx create-scn-stack remove use-toggle --yesIt finds the item across the root registry and any included per-directory
registries, then:
- Deletes the item's source file(s)
- Removes the entry from the relevant
registry.json - Deletes the matching doc page and prunes it from
meta.json
By default it prints exactly what will be deleted and asks for confirmation.
Pass --yes to skip the prompt (useful in scripts).
| Flag | Description |
|---|---|
-y, --yes | Skip the confirmation prompt |
list
List everything registered in the current project, grouped by kind:
npx create-scn-stack list
npx create-scn-stack list --type hook
npx create-scn-stack list --json--json prints a machine-readable array (name, type, title, description)
and suppresses all branding — ideal for piping into other tools.
| Flag | Values |
|---|---|
--type, -t <type> | ui | hook | block | theme |
--json | Output machine-readable JSON |
build
Build the registry output to public/r/:
npx create-scn-stack buildA convenience passthrough that runs your project's registry:build script
(or shadcn build directly if no script is defined). The package manager is
detected from the project's lockfile.
Framework Options
| Framework | Description |
|---|---|
| Next.js | App Router with Tailwind v4. Recommended for most registries. |
| Vite | React + Vite with Tailwind v4. Lightweight, fast builds. |
| React Router | React Router v7 with SSR support. |
| TanStack Start | TanStack Start with file-based routing. |
Docs Engine Options
| Engine | Description |
|---|---|
| Fumadocs | Standard for shadcn registries. Full docs with MDX, search, dark mode. Requires Next.js. |
| Mintlify | Hosted docs platform. Works with any framework. |
| Starlight | Astro-based docs. Separate docs/ directory. Works with any framework. |
| None | Registry only, no documentation site. |
Style Options
| Style | Description |
|---|---|
| New York | Default shadcn/ui style. Smaller, compact components. |
| Default | Original shadcn/ui style. Slightly larger components. |
Starter Components
| Set | Components | Includes |
|---|---|---|
| Essentials | Button, Card, Badge | Source files, registry entries, doc pages with live previews |
| Minimal | Button only | Source file, registry entry, doc page with preview |
| None | Empty registry | Just the scaffold, add your own |
AI Skills
| Skill | What it does |
|---|---|
| shadcn skill | Installs the official shadcn skill via skills add shadcn/ui. Gives AI assistants knowledge of shadcn components, CLI, theming, and registry authoring. |
| Registry skill | Generates .agents/skills/registry/SKILL.md — teaches AI how to add components, hooks, blocks, write docs, update registry.json, and follow conventions for your specific project. |