Skip to content

CLI

Install, compose, theme, and upgrade from the terminal

The cronus-ui CLI is the shadcn-style path for apps that own their source. New product? Scaffold with create-cronus-app, then use these commands inside the repo.

Initialize a project

Select your package manager

bash
pnpm dlx cronus-ui@latest init

Add components

Copy components into your app

bash
pnpm dlx cronus-ui@latest add button card dialog

Compose an app

compose generates pages and chrome from a bundled template (saas, store, landing, landing-*) or --manifest. -y with no name composes saas. Each page is imports of installed blocks plus a main landmark that stacks them.

Compose a template

bash
pnpm dlx cronus-ui@latest compose saas

--dry-run prints the plan and per-file preview without writing. --variant login=split selects a block variant. --brand bakes a wordmark into chrome.

bash
npx cronus-ui@latest compose saas --dry-run
npx cronus-ui@latest compose store --variant login=split --brand Acme

Add a page

Grows an already-composed app. Required: --route and --blocks. Updates chrome nav when you pass --nav.

bash
npx cronus-ui@latest add-page --route /faq --blocks faq,cta --nav FAQ
npx cronus-ui@latest add-page --route /faq --blocks faq,cta --dry-run

Theme

theme set switches a shipped preset. theme add applies a Create Studio export.

bash
npx cronus-ui@latest theme set aurora
npx cronus-ui@latest theme set midnight --mode light
npx cronus-ui@latest theme add ./my-theme.json

Upgrade without losing edits

Each add records the release in cronus-ui.json installed. upgrade 3-way-merges that base, your file, and upstream with git merge-file --diff3. Composed pages and layouts use the same merge against .cronus-ui/base (snapshot vs local vs new render); add-page routes are kept and user files are never deleted. Custom compose apps take --manifest. Clean merges write; conflicts write markers only if you confirm (or --yes). Unresolved files get a ready-to-paste agent prompt in CRONUS-UPGRADE.md.

bash
npx cronus-ui@latest upgrade --all --dry-run
npx cronus-ui@latest upgrade button card
npx cronus-ui@latest upgrade --all --yes

Inspect the registry

List available items, or diff a copied component against the registry version to spot local drift.

bash
npx cronus-ui@latest list
npx cronus-ui@latest diff button

AI Kit

Writes AGENTS.md doctrine and per-assistant config. Presets: standard, fintech, saas, oss, agency, or none. Assistants: claude, cursor, copilot, windsurf, gemini (or all / none).

bash
npx cronus-ui@latest ai
npx cronus-ui@latest ai --assistants claude,cursor --preset saas --skills all

Command surface

The commands exported by cronus-ui. Flags match --help — nothing extra.

init

setup

Writes cronus-ui.json, the cn() helper, and base dependencies. Flags: --cwd, --registry, --yes, --skip-install.

add

daily

Copies components or blocks, resolves registry + npm deps, rewrites imports. Flags: --overwrite, --skip-install, --cwd, --registry.

compose

product

Generates a full app from a template (saas, store, landing, landing-*). -y without a name composes saas. Pages are block imports plus a main landmark. Flags: --manifest, --pages, --variant, --brand, --seed, --overwrite, --skip-install, --dry-run, --yes.

add-page

product

Adds one route to a composed app: installs new blocks, updates nav, refreshes the base snapshot. Required: --route, --blocks. Also: --chrome, --title, --nav, --app, --manifest, --overwrite, --dry-run.

list

inspect

Prints registry items (alias ls). Flags: --cwd, --registry.

diff

audit

Shows which installed files drifted from the registry. Run upgrade to merge. Flags: --cwd, --registry.

upgrade

maintain

3-way merge with git merge-file --diff3 of installed components and of generated pages/layouts from compose (.cronus-ui/base vs local vs new render). Clean merges write; conflicts write markers if you confirm. Unresolved files get a prompt in CRONUS-UPGRADE.md. Flags: --all, --dry-run, --yes, --overwrite, --manifest.

theme set

theme

Switch the preset (aurora, neutral, midnight, sunset, emerald) and optionally --mode dark|light.

theme add

theme

Apply a Create Studio permalink, a bare c= payload, or an exported theme JSON. Flags: --css, --dry-run.

mcp init

agents

Writes project MCP config for Claude Code, Cursor, VS Code, Codex, Grok, OpenCode, Gemini, and Zed. Flags: --cwd, --client, --force. create-cronus-app and cronus-ui ai emit the same files.

ai

agents

Writes the AI Kit: AGENTS.md doctrine plus Claude / Cursor / Copilot / Windsurf / Gemini config. Flags: --assistants, --preset, --skills.

Config

cronus-ui.json keeps aliases explicit and pins the registry to a release tag — never main/registry. add fills installed; compose fills composed.

json
{
"aliases": {
"ui": "@/components/ui",
"lib": "@/lib",
"blocks": "@/components/blocks"
},
"paths": {
"ui": "components/ui",
"lib": "lib",
"blocks": "components/blocks"
},
"registry": "https://raw.githubusercontent.com/pedrogbraz/cronus-ui/v0.5.0/registry",
"theme": {
"name": "aurora",
"mode": "dark"
},
"installed": {},
"composed": {}
}

installedrecords each item's version and files so upgrade has a merge base. composed records each generated app (plan version, choices, files) so add-page can extend it and upgrade can 3-way-merge pages against .cronus-ui/base. Use --registry ./registry for offline testing against a local registry build.