Using the Prompts
Walkthrough of the interactive CLI experience.
Running the CLI
npx create-scn-stackThe CLI guides you through every decision with interactive prompts. Here's what each one does:
Registry Name
◆ Registry name
│ my-uiThis becomes your registry's identifier — used in registry.json, the namespace (@my-ui), and throughout the generated code. Must be lowercase with hyphens only.
Project Location
◆ Project location
│ ./my-uiThe folder where your project will be created. Defaults to ./<registry-name>. Use . to scaffold in the current directory.
Style
◆ Style
│ ● New York (recommended)
│ ○ DefaultThe shadcn/ui style variant. Determines the component file paths (registry/new-york/ui/ vs registry/default/ui/) and the style field in components.json.
Homepage
◆ Homepage
│ https://my-ui.comThe URL where your registry will be deployed. Used in registry.json homepage field and in namespace URL templates. You can change this later.
Framework
◆ Framework
│ ● Next.js (recommended)
│ ○ Vite (React)
│ ○ React Router
│ ○ TanStack StartThe web framework for your project. Next.js is recommended — it's what the official registry template uses, and Fumadocs requires it.
Documentation
◆ Documentation
│ ● Fumadocs (recommended)
│ ○ Mintlify
│ ○ Starlight
│ ○ NoneWhether to include a documentation site. Fumadocs is the standard for shadcn registries (used by 8bitcn, and many others). Mintlify is a hosted platform that works with any framework. If you choose a non-Next.js framework with Fumadocs selected, Starlight will be used instead.
Starter Components
◆ Starter components
│ ● Button, Card, Badge (essentials)
│ ○ Button only (minimal)
│ ○ None (empty registry)Pre-built components to include as examples. Each comes with a source file, registry entry, and documentation page.
Namespace
◆ Add a namespace? Yes
◆ Namespace
│ @my-uiEnables @my-ui/button style installs. Sets up the registries field in components.json with your homepage URL template.
Package Manager
◆ Package manager
│ ● pnpm
│ ○ npm
│ ○ yarn
│ ○ bunAuto-detected from how you ran the CLI. All generated scripts use the selected package manager.
Init Prompts
When you run npx create-scn-stack init in an existing project, you'll see a shorter set of prompts:
◆ Detected framework: Next.js
◆ Registry name
│ my-app
◆ Style
│ ● New York (recommended)
│ ○ Default
◆ Homepage URL
│ https://my-app.com
◆ Add a namespace? Yes
◆ Namespace
│ @my-app
◆ Add documentation pages? YesThe init command auto-detects your framework from package.json and existing components.json, so it only asks what it needs.
Add Command Prompts
The add-component, add-hook, and add-block commands prompt for a name and description if not provided via arguments:
◆ Component name
│ input
◆ Description
│ A text input component.Skip the prompts by passing arguments directly:
npx create-scn-stack add-component input -d "A text input component."
npx create-scn-stack add-hook use-toggle -d "A toggle state hook."
npx create-scn-stack add-block login-form -d "A login form block."