progen
★ GitHub
Offline-first Single Go binary Apache 2.0

Scaffold production-ready
Spring Boot projects, instantly.

Progen is a CLI tool that generates complete Spring Boot applications — build files, Java source, tests, Docker Compose, CI, database migrations, security setup and more — via a quick interactive prompt or a single JSON config file.

$ go install github.com/sivaprasadreddy/progen@latest
$ progen
✔ App Type: REST API
✔ Build Tool: Maven
✔ Persistence: Spring Data JPA
✔ Database: PostgreSQL
Generated project "myapp" successfully 🎉

What is Progen?

A no-nonsense alternative to heavier scaffolding tools, built around three principles.

Minimal & focused

Generates apps with only the most commonly used features and configurations — no bloated boilerplate to strip out afterwards.

Works fully offline

No network calls at generation time. Create projects on a plane, in an air-gapped environment, or behind a strict firewall.

Zero extra SDKs

Ships as a single Go binary. Generating a Java project doesn't require installing Node.js, Python, or any other runtime.

Installation

Two ways to get the progen binary onto your machine.

go install github.com/sivaprasadreddy/progen@latest
progen --help
Requires Go to be installed on your machine. This is the fastest way to always get the latest release.

Download the prebuilt binary for your OS and architecture (arm64 or x86_64) from the GitHub Releases page, then move it onto your PATH.

macOS Gatekeeper note: if you see “progen cannot be opened because the developer cannot be verified”, locate the binary in Finder, hold control and click it, choose Open, then confirm. After that, progen runs normally from the terminal.

How to Use It?

Three workflows: fully interactive, config-file driven for repeatable / scripted generation, or through an AI coding agent.

1

Run interactively

Launch progen with no arguments to walk through an interactive prompt covering app type, build tool, persistence, database, and optional features.

progen
2

Generate a reusable config file

Create a .progen.json file pre-filled with default values, then edit it to your liking.

progen init
# → Generated .progen.json successfully
3

Generate a project from config

Feed the config file back in with -c / --config to generate the project non-interactively — ideal for CI, templates, or sharing team defaults.

progen -c .progen.json
4

Use it via an AI coding agent

Install the progen agent skill into your AI coding agent, then generate a project by describing it in plain English.

npx skills add https://github.com/sivaprasadreddy/sivalabs-agent-skills --skill progen

Then, inside your agent's chat, invoke the skill with a description of the project you want:

/progen a REST API for a bookstore using PostgreSQL and Flyway

Sample .progen.json

{
  "AppType": "REST API",
  "AppName": "myapp",
  "GroupID": "com.mycompany",
  "ArtifactID": "myapp",
  "AppVersion": "1.0.0",
  "BasePackage": "com.mycompany.myapp",
  "BuildTool": "Maven",
  "PersistenceType": "Spring Data JPA",
  "DbType": "PostgreSQL",
  "DbMigrationTool": "Flyway",
  "SpringCloudAWSSupport": false,
  "ThymeleafSupport": false,
  "HTMXSupport": false,
  "EmailSupport": false,
  "RabbitMQSupport": false,
  "RedisCachingSupport": false,
  "OpenTelemetrySupport": false,
  "K8sSupport": false
}

Options & Features

Every generated project is assembled from these configurable building blocks.

Core project options

OptionChoices
App TypeREST API · Web App · Spring Boot + Angular Full Stack
Build ToolMaven · Gradle
PersistenceSpring Data JPA · Spring JdbcClient · jOOQ
DatabasePostgreSQL · MySQL · MariaDB
DB Migration ToolFlyway · Liquibase

Optional feature toggles

FeatureWhat it adds
Thymeleaf + TailwindCSSServer-rendered views for Web Apps, styled with Tailwind
HTMXhtmx-spring-boot integration for dynamic server-driven UI
Spring Cloud AWSAWS integration configured via Floci
Spring RabbitMQMessaging configuration using Spring AMQP
Redis CachingSpring Boot caching backed by Redis
Email supportMailPit + Testcontainers Mailpit for local email testing
OpenTelemetryObservability instrumentation out of the box with Grafana LGTM stack
Kubernetes manifestsGenerated based on selected features

Always included

FeatureWhat it adds
Spring ModulithModular architecture enforcement
Spring SecurityHTTP Session based for Web Apps, JWT for REST APIs
Swagger UIAPI docs via springdoc-openapi
TestcontainersTesting & local development setup
Docker ComposeLocal development environment
BootUIDeveloper console for the running app
GitHub ActionsCI configuration
SpotlessCode formatting
SDKMANJDK/tooling version configuration
TaskfileTask runner for common commands
RenovateAutomated dependency updates