Command explorer
Every Grit CLI command, with the output it prints and the files it writes. Press run on any of them to watch it happen, then read what it touched before you point it at a project you care about.
The output and the file lists here are captured from real runs against a freshly scaffolded project, not written from memory. 25 of the 37 commands write to your repo; the rest read, run or report, and say so.
grit new
Scaffold a new project: Go API, Next.js or Vite frontends, admin panel.
Press run to see what this does.
What it touches
+8 created426 files across the monorepoapps/api/apps/web/apps/admin/packages/shared/docker-compose.yml.envgrit.json
Why it exists
The one command that turns an empty folder into a running full-stack project. It writes around 426 files: a Gin + GORM API with auth, roles, jobs, mail, storage and audit already wired, the frontends you asked for, a shared package of Zod schemas and TypeScript types, and the Docker compose file for Postgres, Redis, MinIO and Mailhog.
When you reach for it
- Starting anything new.
- Trying an architecture out: run it twice with --single and --triple and compare.
- Scaffolding into a directory you already made, with --here.
Flags
--arch stringArchitecture: single, double, triple, api, mobile--frontend stringFrontend framework: next, vite (TanStack)--single / --double / --triple / --api / --mobileShorthand for --arch--next / --viteShorthand for --frontend--fullEverything: API + web + admin + desktop + Expo + docs site--desktopInclude a Wails desktop app sharing the monorepo API--expoInclude an Expo mobile app--i18nAdd internationalisation (next-intl, translated API messages)--style stringAdmin style: default, modern, minimal, glass--theme stringFull theme: atlas, aurora, pulse--hereScaffold into the current directory--forceAllow scaffolding into a non-empty directoryWorth knowing first
- Interactive by default. Passing --triple --next (or any other pair) skips the prompts.
- `pnpm install` is not run for you. `grit start` fails on a missing module if you skip it.
- The database defaults to Postgres on port 5434. Set DATABASE_URL=sqlite:./app.db in .env to skip Docker entirely.
