Skip to content
Docs
Start hereUpdated 2026-08-20

CLI reference

Configure, resume, deploy, and optionally create a private GitHub repository from one resumable command.

Repository command

bash
pnpm tanstarter create my-saas --mail ses

The repository exposes scripts/tanstarter.mjs through the tanstarter package script.

Packaged command

The same implementation is packaged as an npx-compatible binary:

bash
pnpm pack
npx --yes --package=./tanstarter-cli-0.2.0.tgz \
  tanstarter-cli create my-saas --mail ses

After the owner publishes the package, the intended public entry is:

bash
npx tanstarter-cli@latest create my-saas --mail ses

Common options

  • --project <name> or the positional project name selects the destination.
  • --mail resend|cloudflare|ses selects the mail provider.
  • --domain app.example.com configures a custom domain.
  • --deploy or --no-deploy controls Cloudflare deployment.
  • --repo or --no-repo controls private GitHub repository creation.
  • --dry-run prints the plan without mutating resources.

Interactive terminals can prompt for missing project and mail values. Automation should pass explicit flags.

Resume behavior

bash
pnpm tanstarter resume --deploy

.tanstarter/state.json records the selected configuration and every completed step. Changing project name, mail provider, domain, deployment, or repository settings invalidates affected downstream steps so a stale build is not reused.

What the CLI owns

The CLI may perform:

  1. dependency installation;
  2. environment generation;
  3. Better Auth secret generation;
  4. locale compilation;
  5. Worker type generation;
  6. Drizzle migration generation and local application;
  7. production build validation;
  8. Cloudflare resource deployment and remote migrations;
  9. secret synchronization;
  10. custom-domain verification;
  11. optional private GitHub repository creation and push.
TanStarter SES documentationBuilt with TanStack Start and Content Collections.