Skip to content

Repository files navigation

image

SpringForge ^-^

A fast, interactive command-line tool for scaffolding Spring Boot projects without leaving your terminal.

Latest release License Java 21+ Stars


Overview

SpringForge is a terminal-based project generator for Spring Boot applications. It wraps the Spring Initializr API in a guided, keyboard-driven wizard, so you can configure a new project, select dependencies, and download a ready-to-build codebase without opening a browser.

Instead of navigating start.spring.io manually, you run a single command and answer a short series of prompts directly in your terminal.

Features

  • Interactive terminal wizard with arrow-key navigation and live search
  • Searchable, multi-select dependency picker covering the full Spring Initializr catalog
  • Supports Maven and Gradle, multiple Java versions, and all current Spring Boot releases
  • Generates a complete, ready-to-import project by calling the official Spring Initializr service
  • Single self-contained CLI binary with no external configuration required
  • Cross-platform: Windows, macOS, and Linux

Working

springforgeworking.mp4

Installation

macOS / Linux

curl -fsSL https://raw.githubusercontent.com/rishabhrawat05/springforge/main/install.sh | bash

Windows (PowerShell)

irm https://raw.githubusercontent.com/rishabhrawat05/springforge/main/install.ps1 | iex

Both installers download the latest release, install it to a local directory, and add it to your PATH automatically. Restart your terminal afterward to pick up the change.

Requirements: Java 21 or later must be installed and available on your PATH.

You can verify your Java version with:

java -version

Manual installation

If you prefer not to run the install script, you can download a release archive directly:

  1. Go to the Releases page
  2. Download the latest springforge-<version>.zip
  3. Extract it anywhere on your machine
  4. Add the extracted bin/ folder to your PATH
  5. Run springforge from any terminal

Usage

Create a new project:

springforge create my-project

You will be guided through a short wizard covering:

  • Project name and Group ID
  • Build tool (Maven or Gradle)
  • Java version
  • Spring Boot version
  • Dependencies (searchable, multi-select)
  • A final confirmation before the project is generated

Once confirmed, SpringForge downloads and extracts your project to the current directory.

Wizard controls

Key Action
Up / Down Move between options
Space Toggle a dependency selection
Type Filter the dependency list
Enter Confirm the current step
Esc Cancel the wizard

Example

$ springforge create inventory
Project Name: inventory
Group ID: org.example
Build Tool: Gradle Project
Java Version: 21
Spring Boot Version: 4.1.0.RELEASE
Dependencies: Spring Web, Spring Data JPA, PostgreSQL Driver, Lombok
Create inventory with these settings? Yes

Project downloaded successfully.

Configuration

SpringForge fetches its list of available Java versions, Spring Boot versions, build tools, and dependencies directly from the Spring Initializr metadata endpoint, so the options presented always reflect what is currently supported upstream.

Building from source

git clone https://github.com/rishabhrawat05/springforge.git
cd springforge
./gradlew clean installDist

The built distribution will be available at build/install/springforge/bin/.

Contributing

Contributions are welcome. Please open an issue to discuss any significant change before submitting a pull request.

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/my-feature)
  3. Commit your changes
  4. Push to your fork and open a pull request

License

This project is licensed under the MIT License.

Acknowledgements

  • Spring Initializr for providing the project generation service this tool builds on
  • Lanterna for terminal UI rendering
  • Picocli for command-line argument parsing

About

SpringForge is a terminal-based project generator for Spring Boot applications. It wraps the Spring Initializr API in a guided, keyboard-driven wizard, so you can configure a new project, select dependencies, and download a ready-to-build codebase without opening a browser.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages