Forge
Cross-platform CLI for interactively designing and generating application project architectures.
Status: public development release 0.1.1 (forge-scaffolder on PyPI). Generates runnable Python FastAPI, Django, and Flask REST API projects with Simple, Modular Monolith, or Clean Architecture layouts. 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 |
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 resolvedGenerationPlanwithout 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.1.1 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.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| forge_scaffolder-0.1.1.tar.gz | 109.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| forge_scaffolder-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 241.6 kB
Release files / forge_scaffolder-0.1.1.tar.gz
| Download URL | forge_scaffolder-0.1.1.tar.gz |
|---|---|
| Size | 109.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
806d08772b0ad762c11e1c7b93fadb1b24dd87d66d5fee583462ff1375fe789b
|
|
BLAKE2b-256 checksum How to use checksums |
7c04916e6fcedff772943bd15c64a5f2f45eabeaea35a5c8411e0e56f170159f
|
| 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.1.1-py3-none-any.whl
| Download URL | forge_scaffolder-0.1.1-py3-none-any.whl |
|---|---|
| Size | 132.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7e205839e69c68b73dfe574c83ad8574a637e9b5420713d3f5eef9804dc4da1a
|
|
BLAKE2b-256 checksum How to use checksums |
9603de48fed411939a097d59e33d5368eab2351cc103cef5de754bf655b5da00
|
| 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}
|