CLI Overview
The andurel binary runs the development server, manages databases and tools, refreshes derived files, verifies the project, builds releases, and exposes machine-readable discovery. Learn the command surface from the CLI instead of memorising a list.
Command groups
| Group | Commands |
|---|---|
db |
create, drop, nuke, rebuild, seed, migrate, console |
generate |
migration |
inspect |
project, domains, handlers, routes, jobs, migrations |
sync |
queries, routes, payloads, email |
patterns |
list, show <kind> |
tool |
list, sync, set-version, mailpit, dblab |
packages |
list, update |
skill |
show, install |
Standalone commands: build, commands, console, doctor, fmt, run, upgrade, and verify.
Daily workflow
1andurel run
2andurel fmt
3andurel verify
4andurel doctor --json
run starts the development server through shadowfax. It reloads on Go, templ, CSS, and narsilc SQL changes, runs Vite for an Inertia project, and compiles email templates. Start sidecars with andurel run --tools mailpit.
fmt formats Go and templ files; use --check in CI, or --skip-go / --skip-templ to narrow it. verify is the gate: formatting, go fix, go vet, the typed layer rules, and generated-code drift. doctor is a read-only health check.
Build a release with:
1andurel build --version 1.2.3
Discover before you type
1andurel --help
2andurel commands --json
3andurel commands --markdown
4andurel commands --check
5andurel inspect project --json
6andurel inspect routes --json
7andurel patterns list
commands --json is the command catalog; commands --check validates its metadata. inspect reports project shape without changing anything. patterns show <kind> prints reference code, the rules for that layer, and a definition-of-done checklist for domain, service, handler, route, job, email, migration, composition, and the three test patterns.
Generate is deliberately small
andurel generate creates one kind of file:
1andurel generate migration create_products_table
Every other application file is written by hand from a pattern, then refreshed with andurel sync:
1andurel sync queries --json
2andurel sync routes --json
3andurel sync payloads --json
4andurel sync email
sync refreshes derived files from their source of truth; it is not a generator for new resources. See Code Generation.
Databases and tools
andurel db owns the database lifecycle and goose migrations; andurel db migrate up applies pending SQL, and andurel db seed runs the cmd/seeds entrypoint. andurel console opens usql, and andurel tool dblab opens the terminal database UI.
1andurel db migrate status
2andurel db seed --list
andurel tool list shows managed binaries, andurel tool sync restores them from the pinned versions and hashes in andurel.toml and andurel.lock, and andurel tool set-version <tool> <version> pins a new version. See Database Commands.
Upgrade and packages
1andurel upgrade --dry-run --json
2andurel packages list --json
3andurel packages update --dry-run --json
upgrade replaces framework-managed files and pins the pkg/* modules verified with the installed CLI; commit first. packages update only bumps package versions already in go.mod. Neither command rewrites application-owned code.
Output modes
Every command that supports structured output accepts --json (full envelope), --agent (structured without progress), --md (Markdown where available), --jq (simple field selection), and --quiet. Commands that stream an interactive process do not support those flags: build, run, fmt, console, generate migration, db create, db drop, db nuke, db rebuild, and every db migrate command. db seed is the exception in the db group and does support them, for example andurel db seed --list --json. See Agent Workflows for the envelope and exit codes.