vormia-go-cli
Command-line tool for the Vormia Go application framework. Scaffold projects, run them locally, and verify your environment — the same developer workflow Laravel's artisan provides, built on Cobra and embedded Go templates.
Version: v1.0.0 — Slice 1 (new, serve, doctor). Generators (make:model, migrate, install, upgrade) ship alongside their matching framework slices.
Install
go install github.com/vormialabs/vormia-go-cli/cmd/vormia@v1.0.0
Or build from source:
git clone https://github.com/vormialabs/vormia-go-cli.git
cd vormia-go-cli
go build -o vormia ./cmd/vormia
Requires Go 1.26+.
Verify:
vormia --version
# vormia version 1.0.0
Quick start
vormia new blog --db sqlite
cd blog
go mod tidy
vormia serve
Open http://localhost:8080/health — you should see ok.
That path exercises the full stack: CLI scaffolds a project → generated app imports vormia-go and drivers → kernel wires chi + sqlite → serves a request.
Commands
| Command |
Description |
vormia new <name> |
Scaffold a new Vormia Go application |
vormia serve |
Run the application (go run .) from the project root |
vormia doctor |
Check Go toolchain and project metadata |
vormia new
Creates a working slice-1 application: chi router, chosen database driver, optional Redis cache, a /health route, and .vormia.json metadata for future upgrade tooling.
vormia new blog
vormia new blog --db postgres --cache redis
vormia new blog --module example.com/blog --db mysql
| Flag |
Default |
Choices |
Purpose |
--module |
project name |
any Go module path |
go.mod module line |
--db |
sqlite |
sqlite, postgres, mysql |
database driver |
--cache |
none |
redis, none |
cache driver |
Generated projects pin v1.0.0 of vormia-go and the selected drivers in go.mod.
vormia serve
Runs go run . in the current directory. Requires .vormia.json at the project root — run it from inside a scaffolded app, not the CLI repo itself.
The app's kernel already handles serving and graceful shutdown; the CLI does not reimplement the run loop.
vormia doctor
Checks that go is on PATH. When run inside a project, also confirms .vormia.json is present.
vormia doctor
Generated project
vormia new blog --db sqlite produces:
blog/
├── main.go # kernel + chi + driver wiring + /health route
├── go.mod # pinned framework and driver versions
├── .env.example # APP_PORT, DB_*, REDIS_* placeholders
├── .gitignore
└── .vormia.json # project metadata (name, module, drivers, framework version)
Templates ship inside the CLI binary via //go:embed — vormia new works anywhere with no external template files.
Local development
Scaffolded apps resolve dependencies from GitHub. For local end-to-end testing before tags are published, add replace directives to the generated go.mod:
replace github.com/vormialabs/vormia-go => ../vormia-go
replace github.com/vormialabs/vormia-go-driver-chi => ../vormia-go-driver-chi
replace github.com/vormialabs/vormia-go-driver-sqlite => ../vormia-go-driver-sqlite
Then go mod tidy and vormia serve work against your local checkouts.
Testing
go test -v ./...
go vet ./...
Scaffold tests render into a temp directory and verify file output without building the generated project (that requires published or replaced modules).
Roadmap
Commands are added alongside the framework slices they depend on — no stubs with broken output.
| Command |
Waits on |
make:model, make:controller, make:service |
Framework ORM slice |
migrate up / migrate down |
Framework migration system |
install |
Config/provider slice |
upgrade |
Release manifests |
License
MIT — see LICENSE.