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 sesThe 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 sesAfter the owner publishes the package, the intended public entry is:
bash
npx tanstarter-cli@latest create my-saas --mail sesCommon options
--project <name>or the positional project name selects the destination.--mail resend|cloudflare|sesselects the mail provider.--domain app.example.comconfigures a custom domain.--deployor--no-deploycontrols Cloudflare deployment.--repoor--no-repocontrols private GitHub repository creation.--dry-runprints 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:
- dependency installation;
- environment generation;
- Better Auth secret generation;
- locale compilation;
- Worker type generation;
- Drizzle migration generation and local application;
- production build validation;
- Cloudflare resource deployment and remote migrations;
- secret synchronization;
- custom-domain verification;
- optional private GitHub repository creation and push.