CLI

@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-app

create — 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.

stareezy create <name> [--template next|vite|expo]

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 55

If 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 55
1
next — Next.js App Router template

Scaffolds a Next.js 14 App Router project pre-wired with:

  • stareezy.config.ts with media breakpoints and shorthands
  • @stareezy-ui/compiler Vite plugin in next.config.ts
  • Server primitives imported from "./server"
  • Interactive components wrapped in a "use client" boundary
  • ThemeProvider in a client Providers component
stareezy create my-next-app --template next cd my-next-app pnpm install pnpm dev
2
vite — Vite + React template

Scaffolds a Vite + React project pre-wired with:

  • stareezy.config.ts with media and shorthands
  • stareezyVitePlugin() in vite.config.ts
  • import 'virtual:stareezy-ui/styles' in the entry file
  • ThemeProvider wrapping the app in main.tsx
stareezy create my-vite-app --template vite cd my-vite-app npm install npm run dev
3
expo — Expo SDK 55 template

Scaffolds an Expo SDK 55 project pre-wired with:

  • stareezy.config.ts with media and shorthands
  • stareezyMetroTransformer in metro.config.js
  • ThemeProvider in App.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 start

init — 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.ts with createUi, media, and shorthands
  • Compiler/runtime wiring (Vite plugin, Metro transformer, or Next.js config)
  • ThemeProvider setup in your entry file
stareezy init

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 init if wiring is absent
stareezy add <component...>

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 drawer
add 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:

DetectionSignals
Next.jsnext.config.(js|ts|mjs), next in dependencies
Vitevite.config.(js|ts), vite in dependencies
Expoapp.json / app.config.js with expo key, expo in dependencies
pnpmpnpm-lock.yaml present
yarnyarn.lock present
npmpackage-lock.json present (fallback)

Command reference

stareezy create <name> [--template next|vite|expo]

Scaffold a new pre-wired project from a template

stareezy init

Add stareezy.config.ts, compiler wiring, and ThemeProvider to an existing project (idempotent)

stareezy add <component...>

Install one or more components (with transitive deps) into an existing project