CLI Reference
The crudy command-line tool and its subcommands.
The crudy CLI scaffolds new apps and modules, and performs a small set of admin operations on a running deployment. It does not run servers or manage migrations; those live in the generated app's Docker compose files and the bundled Makefile.
Synopsis
crudy --version
crudy create <name> [--no-install]
crudy module create <name> [--kind module|connector] [--no-install]
crudy admin resetcrudy create
Scaffolds a new app in a sibling directory named <name>. The CLI exits if the directory already exists.
crudy create my-appIt produces the layout described in Quickstart: a backend/ workspace, a frontend/ workspace, root configuration files (app.config.json, .env.example), Docker compose files, a per-app Makefile, and empty migrations/ and seeds/ folders.
By default the CLI runs npm install in both the app root and the frontend/ folder. Pass --no-install to skip that step if you want to manage installs yourself.
crudy create my-app --no-installAfter the scaffold completes the CLI prints the next steps: request a license at /pricing, drop the files we send into the app root, then make dev-up and crudy admin reset.
crudy module create
Scaffolds a new module package. Use this when you want to add custom backend or frontend behavior that is not tied to a single app.
crudy module create tasksThe generated package matches the shape described in Module Anatomy:
tasks/
package.json # name: @crudy-modules/tasks, exports ./backend and ./frontend
tsconfig.json
src/
backend/index.ts # exports TasksBackend: BackendModule
frontend/index.ts # exports TasksFrontend: FrontendModuleThe exported symbols use the PascalCase form of the name. crudy module create my-tasks produces MyTasksBackend and MyTasksFrontend.
--kind module
Default. Produces a generic module with both a backend and a frontend entry point.
--kind connector
Produces a service-connector module that plugs into @crudy-modules/service-connectors. The generated backend includes a kind.ts definition and a Fastify plugin that calls registerConnectorKind. The instructions printed at the end of the scaffold tell you how to wire the connector into an app.
crudy module create connector-stripe --kind connector--no-install
Skips the npm install step in the module directory. Useful when adding the module to an existing monorepo workspace where you want to install from the root instead.
crudy admin reset
Resets the global admin user's password on a running deployment. Run it from the app directory (where app.config.json and docker-compose.yml live):
crudy admin resetIt uses the running backend container to set a fresh random password for the user identified by ADMIN_EMAIL (defaults to admin@localhost) and prints it to your terminal once. The password is never written to disk.
If the dev stack is not running, start it first with make dev-up.
Exit codes
The CLI returns a non-zero exit code if the target directory already exists, if --kind is given an unknown value, if npm install fails, or if a subprocess (docker compose exec) exits non-zero. Otherwise it exits 0 with a short follow-up message.