Launchframe

CLI Options

Usage

npx create-launchframe <project-name> [options]

If no options are provided, the CLI runs in interactive mode with arrow-key selection (single-select) and checkbox selection (multi-select).

Options

OptionChoicesDefaultDescription
--templateblank, dashboardblankProject template
--package-managerpnpm, npm, bunpnpmPackage manager
--database-driverpg, postgres.jspgPostgreSQL client driver
--billingstripe, polar, both, nonestripeBilling provider
--authemail-password, email-password+githubemail-passwordAuth providers
--email-providerresend, noneresendEmail provider
--deploy-targetvercel, dockervercelDeploy target
--seed-demo-datayes, nonoSeed demo data after generation
--ai-toolsall, none, or comma-separated: cursor, claude, gemini, copilotallAI tool configuration files to include

Examples

Dashboard with all defaults

npx create-launchframe my-app --template dashboard

Minimal blank project

npx create-launchframe my-app --template blank --billing none --email-provider none

Only Claude Code AI config

npx create-launchframe my-app --ai-tools claude

CI / scripting (fully non-interactive)

npx create-launchframe my-app \
  --template dashboard \
  --package-manager pnpm \
  --database-driver pg \
  --billing stripe \
  --auth email-password+github \
  --email-provider resend \
  --deploy-target docker \
  --seed-demo-data yes \
  --ai-tools cursor,claude

What happens during generation

  1. The CLI loads the selected base template (templates/base-web/)
  2. Resolves the preset (presets/blank.json or presets/dashboard.json)
  3. Resolves modules based on your CLI options (e.g., db-pg, billing-stripe, ai-dx-cursor)
  4. Validates dependency graph and detects conflicts
  5. Applies file overlays and token replacements
  6. Writes a launchframe.json manifest describing what was installed
  7. Optionally runs pnpm install and seeds demo data