CLI Command Reference
Complete reference for all Goose CLI commands.
Global Flags
These flags work with any command:
| Flag | Description |
|---|---|
--help, -h |
Show help for command |
--version, -v |
Show CLI version |
Commands
goose app
Create a new Goose application.
Syntax:
goose app --name=<name> --template=<template> [options]
Required Flags:
| Flag | Description | Values |
|---|---|---|
--name |
Application name | Any valid Go package name |
--template |
Application template | api, web, cli, multi |
Optional Flags:
| Flag | Description | Default |
|---|---|---|
--path |
Output directory | Current directory |
Examples:
# Create an API application
goose app --name=myapi --template=api
# Create a web application
goose app --name=myweb --template=web
# Create a CLI application
goose app --name=mycli --template=cli
# Create a multi-platform application
goose app --name=mymulti --template=multi
# Create in specific directory
goose app --name=myapp --template=api --path=/projects
Output:
Creates a directory with the project structure.
goose generate module
Generate a new module in an existing project.
Syntax:
goose generate module --name=<name> --type=<type> [options]
goose g module --name=<name> --type=<type> [options]
Required Flags:
| Flag | Description | Values |
|---|---|---|
--name |
Module name | Any valid Go package name |
--type |
Module type | plain, resource |
Optional Flags:
| Flag | Description | Default |
|---|---|---|
--template |
Platform template | Auto-detected from project |
Examples:
# Generate a plain module
goose g module --name=auth --type=plain
# Generate a resource module
goose g module --name=products --type=resource
# Specify platform explicitly
goose g module --name=users --type=resource --template=api
goose g module --name=pages --type=plain --template=web
goose g module --name=commands --type=plain --template=cli
Output:
Creates module directory under app/ with generated files.
goose --version
Display CLI version information.
Syntax:
goose --version
goose -v
Output:
goose version 0.0.0
goose --help
Display help information.
Syntax:
goose --help
goose -h
goose <command> --help
Output:
Displays available commands and flags.
Template Reference
API Template Structure
app-name/
โโโ .env
โโโ go.mod
โโโ main.go
โโโ app/
โโโ app.module.go
โโโ app.controller.go
โโโ app.service.go
โโโ app.routes.go
โโโ app.dtos.go
โโโ jobs/
โ โโโ sample.job.go
โโโ queries/
โโโ sample.query.go
Web Template Structure
app-name/
โโโ .env
โโโ go.mod
โโโ main.go
โโโ app/
โโโ app.module.go
โโโ app.controller.go
โโโ app.service.go
โโโ app.routes.go
โโโ app.dtos.go
โโโ templates/
โโโ base/
โ โโโ layout.html
โโโ pages/
โ โโโ home.html
โโโ partials/
โโโ header.html
โโโ footer.html
CLI Template Structure
app-name/
โโโ .env
โโโ go.mod
โโโ main.go
โโโ app/
โโโ app.module.go
โโโ app.controller.go
โโโ app.service.go
โโโ app.routes.go
โโโ app.dtos.go
Multi Template Structure
app-name/
โโโ .env
โโโ go.mod
โโโ main.go
โโโ app/
โโโ api/
โ โโโ api.module.go
โ โโโ api.controller.go
โ โโโ api.routes.go
โ โโโ api.service.go
โโโ web/
โ โโโ web.module.go
โ โโโ web.controller.go
โ โโโ web.routes.go
โ โโโ web.service.go
โ โโโ templates/
โโโ cli/
โ โโโ cli.module.go
โ โโโ cli.controller.go
โ โโโ cli.routes.go
โ โโโ cli.service.go
โโโ shared/
โโโ shared.module.go
โโโ shared.service.go
โโโ entities/
Module Types Reference
Plain Module
Generated files:
module.go- Module definitioncontroller.go- Request handlersservice.go- Business logicroutes.go- Route definitionsdtos.go- Data transfer objects
Resource Module
Generated files (all from plain module, plus):
entity.go- Database entity definitiontemplates/(web only) - HTML templates
Exit Codes
| Code | Meaning |
|---|---|
| 0 | Success |
| 1 | General error |
| 2 | Invalid arguments |
Environment Variables
The CLI respects these environment variables:
| Variable | Description |
|---|---|
GOOSE_PATH |
Default output path for goose app |
Troubleshooting
Common Issues
Module detection fails:
# Specify template explicitly
goose g module --name=users --type=resource --template=api
Permission denied:
# Check directory permissions
chmod 755 ./app
Go mod errors after generation:
# Tidy dependencies
go mod tidy