Skip to main content

Forge

Cross-platform CLI for interactively designing and generating application project architectures.

Status: public development release 0.2.0 (forge-scaffolder on PyPI). Generates runnable Python FastAPI, Django, and Flask REST API projects with Simple, Modular Monolith, or Clean Architecture layouts. Persistence supports independent SQL (PostgreSQL, SQLite) and NoSQL (MongoDB, Redis) selections. Supports interactive / --preset / YAML --config generation and forge plan inspection.

Requires: Python 3.11+ (tested on 3.11, 3.12, 3.13)

Supported today

Simple Modular Monolith Clean
FastAPI yes yes yes
Django yes yes yes
Flask yes yes yes

Persistence: SQL (PostgreSQL, SQLite) and NoSQL (MongoDB, Redis) are independent — choose neither, either, or both.

Install

uv tool install forge-scaffolder
# or: pip install forge-scaffolder
forge --version
forge new my-api --preset fastapi-postgres

Naming:

Role Name
PyPI distribution forge-scaffolder
Console script forge
Python package forge
GitHub repository Lacky227/forge-cli

Build and install from this repository:

uv sync
uv build
uv pip install dist/forge_scaffolder-*.whl   # or: pip install dist/forge_scaffolder-*.whl
forge --version
forge new my-api --preset fastapi-postgres

Quick start (development checkout)

uv sync
uv run forge new my-api
uv run forge new my-api --preset fastapi-postgres
# non-interactive config (CI-safe — never prompts):
# uv run forge new --config forge.yaml
cd my-api
uv sync

Follow the generated project README for framework-specific run commands.

Configuration and presets

  • Interactive: forge new [NAME] — adaptive prompts only for choices that affect the project
  • YAML: forge new [NAME] --config forge.yaml — fully non-interactive
  • Preset: forge new NAME --preset fastapi-postgres — curated stack; no prompts
  • Plan: forge plan --preset fastapi-postgres — show resolved GenerationPlan without writing files

--preset and --config cannot be combined. Details: docs/cli.md.

Documentation

Document Contents
docs/product.md Product definition, principles, scope
docs/architecture.md Resolution, GenerationPlan, frameworks
docs/cli.md Commands, presets, YAML configuration
docs/generation.md Generated-project quality
docs/development.md Toolchain, packaging, versioning
CHANGELOG.md Release notes
CONTRIBUTING.md How to contribute

Development / contributing

See CONTRIBUTING.md for setup, tests, and architecture orientation.

uv sync
uv run pytest

Versioning

0.2.0 is the current public development release (PyPI distribution forge-scaffolder). See the versioning policy in docs/development.md.

License

GPL-3.0-only. See LICENSE.

Repository

Layout

src/forge/cli/
src/forge/core/          # ProjectDefinition, YAML config, presets
src/forge/generator/     # resolve → GenerationPlan → render
templates/               # Jinja templates (packaged as forge/templates in the wheel)
tests/
scripts/packaging_smoke.sh
docs/

Release files for forge-scaffolder 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for forge-scaffolder 0.2.0
File Size Uploaded
forge_scaffolder-0.2.0.tar.gz 126.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for forge-scaffolder 0.2.0
File Interpreter ABI Platform
forge_scaffolder-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 273.6 kB

Release files / forge_scaffolder-0.2.0.tar.gz

Download URL forge_scaffolder-0.2.0.tar.gz
Size 126.1 kB
Tags Source
SHA-256 checksum
How to use checksums
481488dc0ceeaacc8ec645f78d648849bb932914451be4449074d698c722a1a9
BLAKE2b-256 checksum
How to use checksums
68dbc29b37ee95239e0961397efe44e255229cf11509ad879d887a31a0fdce69
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.13 {"installer":{"name":"uv","version":"0.12.13","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"CachyOS Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / forge_scaffolder-0.2.0-py3-none-any.whl

Download URL forge_scaffolder-0.2.0-py3-none-any.whl
Size 147.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d6541b40319141192eb699cda5eefd5e8c7bbc6efb692ea8db91c3024e704c99
BLAKE2b-256 checksum
How to use checksums
e7dce735d24d63a353da441cb31b55a3349add0cb9ca12df1391860f5fe06d8e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.13 {"installer":{"name":"uv","version":"0.12.13","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"CachyOS Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

0.5.0

2 release files

0.4.0

2 release files

0.3.0

2 release files

This release

0.2.0 This release

2 release files

0.1.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page