Lalibela CLI NaodEthiop
winget install --id=NaodEthiop.Lalibela -e Lalibela CLI scaffolds Go backend APIs with framework templates and production-focused defaults.
winget install --id=NaodEthiop.Lalibela -e Lalibela CLI scaffolds Go backend APIs with framework templates and production-focused defaults.
Production-grade backend scaffolding for Go teams.
Lalibela gives you a fast, modern developer experience (inspired by Vite), but built as a lightweight Go CLI with zero runtime dependencies.
Lalibela was built to improve developer productivity by reducing repetitive setup work and helping teams ship faster with confidence.
It automates common backend workflows, simplifies complex project bootstrapping, and enforces secure defaults from the start so new services begin with a strong baseline.
The name "Lalibela" is inspired by architectural precision and craftsmanship. It reflects the belief that strong software, like great architecture, is shaped with structure, intention, and durability.
This philosophy guides the CLI design: practical foundations, clear structure, and reliable outcomes for real-world engineering.
gin, echo, fiber, net/http)templates/index.html welcome pagelalibela run--open)--yes)lalibela add )lalibela uninstall with optional --force)go install github.com/naodEthiop/lalibela-cli/cmd/lalibela@latest
Windows (auto-configure PATH after go install):
PowerShell:
Invoke-Expression ((Invoke-WebRequest -UseBasicParsing "https://raw.githubusercontent.com/naodEthiop/lalibela-cli/main/scripts/install-go.ps1").Content)
Command Prompt (cmd.exe):
powershell -NoProfile -ExecutionPolicy Bypass -Command "Invoke-Expression ((Invoke-WebRequest -UseBasicParsing 'https://raw.githubusercontent.com/naodEthiop/lalibela-cli/main/scripts/install-go.ps1').Content)"
https://github.com/naodEthiop/lalibela-cli/releaseslalibela to your PATHWindows (PowerShell):
Invoke-Expression ((Invoke-WebRequest -UseBasicParsing "https://raw.githubusercontent.com/naodEthiop/lalibela-cli/main/scripts/install.ps1").Content)
macOS/Linux:
curl -fsSL https://raw.githubusercontent.com/naodEthiop/lalibela-cli/main/scripts/install.sh | sh
Windows Winget (after package approval):
winget install NaodEthiop.Lalibela
Windows Scoop:
scoop install https://raw.githubusercontent.com/naodEthiop/lalibela-cli/main/packaging/scoop/lalibela.json
# 1) Scaffold a new project
lalibela
# 2) Move into the generated folder
cd myapp
# 3) Start development server
go run .
Non-interactive:
lalibela --yes -name myapi -framework gin
cd myapi
go run .
lalibela [flags]
lalibela help [command]
lalibela add
lalibela run [--open]
lalibela uninstall [--force]
-h, --help show help-v, --version print version-y, --yes auto-accept prompts / non-interactive mode-fast scaffold with defaults-name set project name-framework select framework-features "Clean,Logger,PostgreSQL,JWT,Docker" select legacy scaffold features-template-list print template catalog-config custom config file pathlalibela
lalibela --yes -name billing-api -framework echo
lalibela -name auth-api -framework gin -features "Logger,JWT,Docker"
lalibela add postgres
lalibela add redis
lalibela run
lalibela run --open
lalibela uninstall
lalibela uninstall --force
lalibela help add
lalibela help run
lalibela help uninstall
myapi/
|- .env
|- go.mod
|- main.go
|- startup.go
|- templates/
| |- index.html
| |- lalibela2.webp
|- internal/
| |- routes/
| | |- routes.go
| |- middleware/
| | |- jwt.go (if selected)
| |- config/
| | |- config.go (default production feature)
| |- logger/
| | |- logger.go (default production feature)
| |- server/
| |- health.go
| |- cors.go
| |- error_handler.go
| |- graceful_shutdown.go
|- .lalibela/
|- features.json
~/.lalibela.json){
"project_name": "starter-api",
"framework": "gin",
"features": ["Logger", "Docker"],
"fast": false
}
Use a custom config file:
lalibela -config ./lalibela.json
Contributions are welcome.
go test ./...Please keep changes backward compatible and UX-focused.
MIT License.