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
pnpm dlx cronus-ui@latest init
Add components
Copy components into your app
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
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.
npx cronus-ui@latest compose saas --dry-runnpx 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.
npx cronus-ui@latest add-page --route /faq --blocks faq,cta --nav FAQnpx 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.
npx cronus-ui@latest theme set auroranpx cronus-ui@latest theme set midnight --mode lightnpx 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.
npx cronus-ui@latest upgrade --all --dry-runnpx cronus-ui@latest upgrade button cardnpx 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.
npx cronus-ui@latest listnpx 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).
npx cronus-ui@latest ainpx 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
Writes cronus-ui.json, the cn() helper, and base dependencies. Flags: --cwd, --registry, --yes, --skip-install.
add
Copies components or blocks, resolves registry + npm deps, rewrites imports. Flags: --overwrite, --skip-install, --cwd, --registry.
compose
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
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
Prints registry items (alias ls). Flags: --cwd, --registry.
diff
Shows which installed files drifted from the registry. Run upgrade to merge. Flags: --cwd, --registry.
upgrade
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
Switch the preset (aurora, neutral, midnight, sunset, emerald) and optionally --mode dark|light.
theme add
Apply a Create Studio permalink, a bare c= payload, or an exported theme JSON. Flags: --css, --dry-run.
mcp init
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
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.
{"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.