@stareezy-ui/cli
Scaffold new projects and add components with a single command — no manual wiring of createUi, the compiler, the runtime, or ThemeProvider.
Installation
# Use directly with npx (no install required)
npx stareezy create my-app
# Or install globally
npm install -g @stareezy-ui/cli
stareezy create my-appcreate — scaffold a new project
The create command scaffolds a new project from one of the three pre-wired templates. Each template ships with stareezy.config.ts, compiler wiring, a configured ThemeProvider, and a curated set of components — ready to run without any additional setup.
Scaffold a new pre-wired project from one of the starter templates.
stareezy create my-app --template next # Next.js 14 App Router
stareezy create my-app --template vite # Vite + React
stareezy create my-app --template expo # Expo SDK 55If you omit --template, the CLI prompts you to choose:
$ stareezy create my-app
? Select a template:
❯ next — Next.js 14 App Router
vite — Vite + React
expo — Expo SDK 55Scaffolds a Next.js 14 App Router project pre-wired with:
- ●
stareezy.config.tswithmediabreakpoints andshorthands - ●
@stareezy-ui/compilerVite plugin innext.config.ts - ●Server primitives imported from
"./server" - ●Interactive components wrapped in a
"use client"boundary - ●
ThemeProviderin a clientProviderscomponent
stareezy create my-next-app --template next
cd my-next-app
pnpm install
pnpm devScaffolds a Vite + React project pre-wired with:
- ●
stareezy.config.tswithmediaandshorthands - ●
stareezyVitePlugin()invite.config.ts - ●
import 'virtual:stareezy-ui/styles'in the entry file - ●
ThemeProviderwrapping the app inmain.tsx
stareezy create my-vite-app --template vite
cd my-vite-app
npm install
npm run devScaffolds an Expo SDK 55 project pre-wired with:
- ●
stareezy.config.tswithmediaandshorthands - ●
stareezyMetroTransformerinmetro.config.js - ●
ThemeProviderinApp.tsx - ●Compatible with Expo SDK 54 and 56 (see Compatibility guide)
stareezy create my-expo-app --template expo
cd my-expo-app
yarn install
expo startinit — wire an existing project
The init command adds Stareezy UI wiring to an existing project. It detects your framework and package manager automatically, then creates any of the following that are absent:
stareezy.config.tswithcreateUi,media, andshorthands- Compiler/runtime wiring (Vite plugin, Metro transformer, or Next.js config)
ThemeProvidersetup in your entry file
Add stareezy.config.ts, compiler wiring, and ThemeProvider to an existing project — idempotent and safe to re-run.
init is idempotent — it checks for existing configuration and skips anything already set up. Running it on an already-wired project is safe and makes no changes.add — install components
The add command installs one or more Stareezy UI components into an existing Next.js, Vite, or Expo project. It:
- Detects your framework and package manager
- Resolves the full dependency closure (component → its component deps → required
@stareezy-ui/*packages) - Installs missing
@stareezy-ui/*packages - Offers to run
initif wiring is absent
Install one or more components (with transitive dependencies) into an existing project.
# Install a single component
stareezy add button
# Install multiple components at once
stareezy add button input card
# Install new components (6 added in v0.4)
stareezy add breadcrumb pagination table tag tooltip draweradd also resolves transitive component dependencies. For example, adding pagination will automatically include button if your project doesn't already have it.Framework and package manager detection
The CLI detects your framework from config files and your package manager from lockfiles:
| Detection | Signals |
|---|---|
Next.js | next.config.(js|ts|mjs), next in dependencies |
Vite | vite.config.(js|ts), vite in dependencies |
Expo | app.json / app.config.js with expo key, expo in dependencies |
pnpm | pnpm-lock.yaml present |
yarn | yarn.lock present |
npm | package-lock.json present (fallback) |
Command reference
Scaffold a new pre-wired project from a template
Add stareezy.config.ts, compiler wiring, and ThemeProvider to an existing project (idempotent)
Install one or more components (with transitive deps) into an existing project