CLI

Commands

Complete reference for all CLI commands

Overview

The Better-T-Stack CLI provides several commands to manage your TypeScript projects.

init (Default Command)

Creates a new Better-T-Stack project.

create-better-t-stack [project-directory] [options]

Parameters

  • project-directory (optional): Name or path for your project directory

Key Options

  • --yes, -y: Use default configuration (skips prompts)
  • --verbose: Show detailed result information as JSON
  • --yolo: Bypass validations and compatibility checks
  • --package-manager <pm>: npm, pnpm, bun
  • --install / --no-install: Install dependencies after creation
  • --git / --no-git: Initialize Git repository
  • --frontend <types...>: Web and/or native frameworks (see Options)
  • --backend <framework>: hono, express, fastify, elysia, convex, self, none
  • --runtime <runtime>: bun, node, workers (none only with --backend convex or --backend none)
  • --database <type>: none, sqlite, postgres, mysql, mongodb
  • --orm <type>: none, drizzle, prisma, mongoose
  • --api <type>: none, trpc, orpc
  • --auth <provider>: better-auth, clerk, none (see Options)
  • --payments <provider>: polar, none
  • --db-setup <setup>: none, turso, d1, neon, supabase, prisma-postgres, planetscale, mongodb-atlas, docker
  • --examples <types...>: none, todo, ai
  • --web-deploy <setup>: none, alchemy
  • --server-deploy <setup>: none, alchemy
  • --template <type>: none, mern, pern, t3, uniwind
  • --directory-conflict <strategy>: merge, overwrite, increment, error
  • --render-title / --no-render-title: Show/hide ASCII art title
  • --disable-analytics / --no-disable-analytics: Control analytics collection
  • --manual-db: Skip automatic database setup prompts

See the full reference in Options.

Examples

# Default setup with prompts
create-better-t-stack

# Quick setup with defaults
create-better-t-stack --yes

# Specific configuration
create-better-t-stack --database postgres --backend hono --frontend tanstack-router

add

Adds addons or deployment configurations to an existing Better-T-Stack project.

create-better-t-stack add [options]

Options

  • --addons <types...>: Addons to add (see Addons)
  • --web-deploy <setup>: Web deployment setup (none, alchemy)
  • --server-deploy <setup>: Server deployment setup (none, alchemy)
  • --project-dir <path>: Project directory (defaults to current directory)
  • --install: Install dependencies after adding
  • --package-manager <pm>: Package manager to use

Examples

# Add addons interactively
create-better-t-stack add

# Add specific addons
create-better-t-stack add --addons pwa tauri --install

# Add deployment setup
create-better-t-stack add --web-deploy alchemy

sponsors

Displays Better-T-Stack sponsors.

create-better-t-stack sponsors

Shows a list of project sponsors and supporters.

docs

Opens the Better-T-Stack documentation in your default browser.

create-better-t-stack docs

Opens https://better-t-stack.dev/docs in your browser.

builder

Opens the web-based stack builder in your default browser.

create-better-t-stack builder

Opens https://better-t-stack.dev/new where you can configure your stack visually.

Global Options

These options work with any command:

  • --help, -h: Display help information
  • --version, -V: Display CLI version

Command Examples

Create a Full-Stack App

create-better-t-stack \
  --database postgres \
  --orm drizzle \
  --backend hono \
  --frontend tanstack-router \
  --auth \
  --addons pwa biome

Create a Backend-Only Project

create-better-t-stack api-server \
  --frontend none \
  --backend hono \
  --database postgres \
  --orm drizzle \
  --api trpc

Add Features to Existing Project

cd my-existing-project
create-better-t-stack add --addons tauri starlight --install

Programmatic Usage

For advanced use cases, automation, or integration with other tools, you can use the Programmatic API to create projects from Node.js code:

import { create } from "create-better-t-stack";

const result = await create("my-app", {
  frontend: ["tanstack-router"],
  backend: "hono",
  database: "sqlite",
  orm: "drizzle",
});

if (result.success) {
  console.log(`Project created at: ${result.projectDirectory}`);
}

This is useful for:

  • Build tools and generators - Create projects from templates
  • CI/CD pipelines - Generate test projects automatically
  • Development workflows - Batch create related projects
  • Custom tooling - Integrate with your existing development setup

See the Programmatic API documentation for complete examples and API reference.

On this page