Options Reference
Complete reference for all CLI options and flags
General Options
--yes, -y
Use default configuration and skip interactive prompts.
create-better-t-stack --yes--template <type>
Use a predefined project template:
none: No template (default)mern: MongoDB, Express, React, Node.js stackpern: PostgreSQL, Express, React, Node.js stackt3: T3 stack configurationuniwind: UniWind React Native template
create-better-t-stack --template t3--manual-db
Skip automatic database setup prompts and use manual database configuration.
create-better-t-stack --manual-db--dry-run
Validate configuration, compatibility, and directory handling without writing files.
create-better-t-stack my-app --yes --dry-run--package-manager <pm>
Choose package manager: npm, pnpm, or bun.
create-better-t-stack --package-manager bun--install / --no-install
Control dependency installation after project creation.
create-better-t-stack --no-install--open <target>
Open the generated project in an installed editor, IDE, or coding agent. Interactive runs show an
installed-tools-only picker after scaffolding. Use none to skip it explicitly.
create-better-t-stack my-app --yes --open zed
create-better-t-stack my-app --yes --open codexSupported targets include Cursor, VS Code, VS Code Insiders, Zed, Windsurf, VSCodium, WebStorm, IntelliJ IDEA, Sublime Text, Neovim, the Codex app (macOS only), Codex CLI, Claude Code, OpenCode, Pi, Gemini CLI, GitHub Copilot CLI, Kiro CLI, Factory Droid, goose, Cline CLI, Continue CLI, Amp, Aider, Qwen Code, Crush, Cursor Agent, T3 Code, and Orca.
The picker is skipped for --yes, CI, and non-interactive terminals. An explicit --open value
still works in those modes. JSON and programmatic creation never launch external applications.
--git / --no-git
Control Git repository initialization.
create-better-t-stack --no-git--yolo
Bypass validations and compatibility checks. Not recommended for normal use.
create-better-t-stack --yolo--verbose
Show detailed result information in JSON format after project creation.
create-better-t-stack --verbose--render-title / --no-render-title
Control whether the ASCII art title is shown. Enabled by default.
# Hide the title (useful in CI)
create-better-t-stack --no-render-title--directory-conflict <strategy>
How to handle existing, non-empty target directories:
merge: Keep unrelated files and replace conflicting generated filesoverwrite: Permanently clear the directory before scaffoldingincrement: Create a suffixed directory (e.g.,my-app-1)error: Fail instead of prompting
The interactive prompt recommends the first available suffixed directory and requires an extra confirmation before overwriting. Project targets and generated paths that pass through symbolic links are rejected instead of being followed.
# Overwrite an existing directory without prompting
create-better-t-stack my-app --yes --directory-conflict overwrite
# Safely create a new directory name if it exists
create-better-t-stack my-app --yes --directory-conflict increment--disable-analytics / --no-disable-analytics
Control whether analytics and telemetry data is collected.
# Disable analytics collection
create-better-t-stack --disable-analytics
# Enable analytics collection (default)
create-better-t-stack --no-disable-analyticsAnalytics help improve Better-T-Stack by providing insights into usage patterns. When disabled, no data is collected or transmitted.
For JSON-first automation, runtime schemas, and nested structured options, see Agent Workflows.
Database Options
--database <type>
Database type to use:
none: No databasesqlite: SQLite databasepostgres: PostgreSQL databasemysql: MySQL databasemongodb: MongoDB database
create-better-t-stack --database postgres--orm <type>
ORM to use with your database:
none: No ORMdrizzle: Drizzle ORM (TypeScript-first)prisma: Prisma ORM (feature-rich)mongoose: Mongoose ODM (for MongoDB)
create-better-t-stack --database postgres --orm drizzle--db-setup <setup>
Database hosting/setup provider:
none: Manual setupturso: Turso (SQLite)d1: Cloudflare D1 (SQLite; requires either Cloudflare Workers server deployment orbackend selfwith Cloudflare web deployment)neon: Neon (PostgreSQL)supabase: Supabase (PostgreSQL)prisma-postgres: Prisma Postgresplanetscale: PlanetScale (MySQL/PostgreSQL)mongodb-atlas: MongoDB Atlasdocker: Local Docker containers
create-better-t-stack --database postgres --db-setup neonIf you need structured control over database provisioning behavior, use dbSetupOptions with create-json or the programmatic API. See Agent Workflows.
Backend Options
--backend <framework>
Backend framework to use:
none: No backendhono: Hono (fast, lightweight)express: Express.js (popular, mature)fastify: Fastify (fast, plugin-based)elysia: Elysia (Bun-native)convex: Convex backendself: Self-hosted/custom backend
create-better-t-stack --backend hono--runtime <runtime>
Runtime environment:
none: No specific runtime (only withconvex,none, orselfbackend)bun: Bun runtimenode: Node.js runtimeworkers: Cloudflare Workers
create-better-t-stack --backend hono --runtime bun--api <type>
API layer type:
none: No API layertrpc: tRPC (type-safe)orpc: oRPC (OpenAPI-compatible)
create-better-t-stack --api trpcFrontend Options
--frontend <types...>
Frontend frameworks (can specify multiple):
Web Frameworks:
tanstack-router: React with TanStack Routerreact-router: React with React Routertanstack-start: React with TanStack Start (SSR)next: Next.jsnuxt: Nuxt (Vue)svelte: SvelteKitsolid: Solid (SSR)astro: Astro
Native Frameworks:
native-bare: React Native (bare setup)native-uniwind: React Native with UniWind (NativeWind alternative)native-unistyles: React Native with Unistyles
No Frontend:
none: Backend-only project
# Single web frontend
create-better-t-stack --frontend tanstack-router
# Web + native frontend
create-better-t-stack --frontend next native-uniwind
# Backend-only
create-better-t-stack --frontend noneAuthentication
--auth <provider>
Choose authentication provider:
better-auth: Better-Auth authentication (default)clerk: Clerk authenticationnone: No authentication
create-better-t-stack --auth better-auth
create-better-t-stack --auth clerk
create-better-t-stack --auth noneNote:
better-authrequires a backend framework (cannot benone)- if you choose a database, you should also choose an ORM
- with
--backend convex,better-authsupportsreact-router,tanstack-router,tanstack-start,next, and native Expo frontends clerkrequires a compatible frontend- Supported Clerk backends:
convex,hono,express,fastify,elysia, andselfwith Next.js or TanStack Start - Authentication is automatically set to
nonewhen using--backend none
Payments
--payments <provider>
Payments provider:
none: No payments integrationpolar: Polar payments integration
create-better-t-stack --payments polar --auth better-authNote: Polar payments requires Better-Auth authentication.
Addons
--addons <types...>
Additional features to include:
none: No addonspwa: Progressive Web App supporttauri: Desktop app support for static web output (not compatible with--backend self)electrobun: Lightweight desktop shell for static web output (not compatible with--backend self)starlight: Starlight documentation sitefumadocs: Fumadocs documentation sitebiome: Biome linting and formattinglefthook: Git hooks with Lefthookhusky: Git hooks with Huskyturborepo: Turborepo monorepo setupnx: Nx monorepo setupvite-plus: Vite+ unified toolchain, workspace task runner, linting, formatting, and optional native Git hooksultracite: Ultracite configurationoxlint: Oxlint + Oxfmt (linting & formatting)mcp: Install MCP servers, including Better T Stack itself, with add-mcpopentui: OpenTUI componentswxt: WXT browser extension frameworkskills: Install AI agent skills for coding assistants (Cursor, Claude Code, GitHub Copilot, etc.)evlog: Structured request logging for Hono, Express, Fastify, Elysia, or fullstack web backends
create-better-t-stack --addons pwa biome huskyExamples
--examples <types...>
Example implementations to include:
none: No examplestodo: Todo app exampleai: AI chat interface example
create-better-t-stack --examples todo aiDeployment
--web-deploy <setup>
Web deployment configuration:
none: No deployment setupcloudflare: Cloudflare Workers deployment (via Alchemy infrastructure as code)prisma: Prisma deployment via Alchemy (all generated web frameworks)docker: Self-hosted deployment with a Dockerfile and a rootdocker-compose.ymlvercel: Vercel Services deployment with a rootvercel.json
create-better-t-stack --web-deploy dockerWhen the app that consumes Neon, PlanetScale, or Prisma Postgres is deployed with Alchemy, the CLI asks how the database should be provisioned and defaults to Alchemy. You can instead choose the provider's automatic setup when available or configure an existing database manually. With Alchemy selected, the generated stack provisions the database, injects runtime credentials, and applies checked-in migrations. Run alchemy login --configure from packages/infra; no separate provider setup step is required. See the Alchemy deployment guide for details.
Automation Surfaces
These are part of the CLI contract for agents and scripts even though they are commands or JSON fields instead of traditional flags:
create-jsonadd-jsonschema --name <schema>mcpaddonOptionsdbSetupOptions
See Agent Workflows for examples.
--server-deploy <setup>
Server deployment configuration:
none: No deployment setupcloudflare: Cloudflare Workers deployment (when runtime is workers, via Alchemy infrastructure as code)prisma: Prisma deployment via Alchemy (requires the Bun or Node runtime)docker: Self-hosted deployment with a Dockerfile and a rootdocker-compose.yml(requires the bun or node runtime)vercel: Vercel Services deployment (requires the bun or node runtime)
create-better-t-stack --server-deploy dockerNote: The CLI displays this target simply as Prisma. The generated infrastructure uses Alchemy's Prisma provider. See the Alchemy deployment guide for details.
History
history
View your project creation history. Projects are tracked locally using platform-specific directories:
- macOS:
~/Library/Application Support/better-t-stack/history.json - Linux:
~/.local/share/better-t-stack/history.json - Windows:
%LOCALAPPDATA%\better-t-stack\Data\history.json
# Show last 10 projects
create-better-t-stack history
# Show last 5 projects
create-better-t-stack history --limit 5
# Output as JSON
create-better-t-stack history --json
# Clear all history
create-better-t-stack history --clearOptions:
--limit <number>: Number of entries to show (default: 10)--clear: Clear all project history--json: Output history as JSON
Option Validation
The CLI validates option combinations and will show errors for incompatible selections. See the Compatibility page for detailed rules.
Examples
Full Configuration
create-better-t-stack \
--database postgres \
--orm drizzle \
--backend hono \
--runtime bun \
--frontend tanstack-router \
--api trpc \
--auth better-auth \
--addons pwa biome \
--examples todo \
--package-manager bun \
--web-deploy cloudflare \
--server-deploy cloudflare \
--installMinimal Setup
create-better-t-stack \
--backend none \
--frontend tanstack-router \
--addons none \
--examples none