⚡ quickforge
Modern Python project bootstrapper with 2025's best toolchain.
Zero Config • Modern Tools • One Command
✨ What quickforge Does
One command creates a complete Python project with modern tooling:
quickforge new myproject
That's it! Your project is ready with all the best practices built in.
⚡ Modern Toolchain
- uv - Blazing fast package manager (10-100x faster than pip)
- ruff - Linting & formatting (replaces black, isort, flake8)
- basedpyright - Strict type checking
- pytest - Testing with coverage
- pre-commit - Automated code quality
📦 Everything Configured
- ✅ Proper package structure (src layout)
- ✅
pyproject.tomlwith all tools configured - ✅ Pre-commit hooks ready to go
- ✅ GitHub Actions CI/CD
- ✅ VS Code settings optimized
- ✅ Type checking enabled from day one
- ✅ Test skeleton with pytest + coverage
🔄 Migration Tools
- Upgrade legacy projects to modern tooling
- Migrate from Poetry, pip, pipenv, or setuptools
- Convert black/isort/flake8/mypy to ruff/basedpyright
📦 Installation
# Using uv (recommended)
uv tool install quickforge
# Using pip
pip install quickforge
# Using pipx
pipx install quickforge
🚀 Quick Start
Interactive Mode (Default)
quickforge new myproject
Prompts you for project type, Python version, license, author info, and features.
Non-Interactive Mode
# Quick library with defaults
quickforge new mylib --type library --yes
# CLI with strict type checking
quickforge new mycli --type cli --strict
# FastAPI project
quickforge new myapi --type api --yes
# Specify everything
quickforge new myproject \
--type library \
--python 3.12 \
--license MIT \
--author "Jane Doe" \
--email "jane@example.com"
After Creating a Project
cd myproject
uv sync # Install dependencies
uv run pytest # Run tests
uv run ruff check . # Lint code
uv run ruff format . # Format code
uv run basedpyright # Type check
uv run pre-commit install # Setup git hooks
📁 Project Types
| Type | Description | Use Case |
|---|---|---|
| library | PyPI-publishable package | Reusable code, open source packages |
| cli | Command-line tool with Typer | Terminal applications, dev tools |
| api | FastAPI web service | REST APIs, microservices |
| app | Standalone application | Scripts that need structure |
| script | Single-file with inline deps | Quick automation, one-off tasks |
📂 Generated Structure
myproject/
├── src/
│ └── myproject/
│ ├── __init__.py
│ ├── py.typed # PEP 561 marker
│ └── main.py # or cli.py for CLI projects
├── tests/
│ ├── __init__.py
│ └── test_main.py
├── .github/
│ └── workflows/
│ └── ci.yml # GitHub Actions
├── .vscode/
│ ├── settings.json
│ └── extensions.json
├── pyproject.toml # All configuration
├── .pre-commit-config.yaml
├── .gitignore
├── README.md
└── LICENSE
🛠️ Commands
quickforge new
Create a new project:
quickforge new myproject [OPTIONS]
| Option | Short | Description |
|---|---|---|
--type |
-t |
Project type: library, app, cli, api, script |
--python |
-p |
Python version: 3.11, 3.12, 3.13 |
--license |
-l |
License: MIT, Apache-2.0, GPL-3.0-only, BSD-3-Clause |
--author |
-a |
Author name |
--email |
-e |
Author email |
--output |
-o |
Output directory |
--strict |
Enable strict type checking | |
--yes |
-y |
Skip prompts, use defaults |
--no-git |
Skip git initialization | |
--no-github-actions |
Skip GitHub Actions | |
--no-pre-commit |
Skip pre-commit config | |
--no-vscode |
Skip VS Code settings | |
--with-docker |
Include Docker configuration | |
--with-docs |
Include MkDocs documentation |
quickforge audit
Analyze existing projects for modernization opportunities:
quickforge audit ./my-project
Shows detected tooling, project health score, and recommendations.
quickforge upgrade
Migrate from legacy tooling to modern stack:
quickforge upgrade . # Auto-detect and upgrade
quickforge upgrade . --from poetry # Specify source tool
quickforge upgrade . --dry-run # Preview changes
| Migration | From | To |
|---|---|---|
| Package Manager | Poetry, pip, pipenv, setuptools | uv |
| Formatter | black | ruff format |
| Import Sorting | isort | ruff (I rules) |
| Linter | flake8 | ruff lint |
| Type Checker | mypy | basedpyright |
quickforge add
Add features to existing projects:
quickforge add github-actions # CI/CD workflow
quickforge add docker # Dockerfile + docker-compose.yml
quickforge add docs # MkDocs with Material theme
quickforge add pre-commit # Pre-commit hooks
quickforge add vscode # VS Code settings
quickforge add devcontainer # Dev container config
⚡ Why These Tools?
uv over pip/poetry/pipenv
| Metric | pip | poetry | uv |
|---|---|---|---|
| Install Speed | 1x | 2x | 10-100x |
| Written In | Python | Python | Rust |
| Lockfile | ❌ | ✅ | ✅ |
| Workspaces | ❌ | ❌ | ✅ |
ruff over black/isort/flake8
| Metric | black + isort + flake8 | ruff |
|---|---|---|
| Speed | 1x | 10-100x |
| Config Files | 3 | 1 |
| Rules | ~500 | 800+ |
| Auto-fix | Limited | Extensive |
basedpyright over mypy
| Metric | mypy | basedpyright |
|---|---|---|
| Speed | 1x | 3-5x |
| Error Messages | Basic | Detailed |
| VSCode Integration | Good | Excellent |
| Strictness | Configurable | Stricter defaults |
🧪 Development
# Clone and setup
git clone https://github.com/Technical-1/quickforge.git
cd quickforge
uv sync --extra dev
uv run pre-commit install
# Run tests
uv run pytest
# Run linters
uv run ruff check .
uv run ruff format .
uv run basedpyright
💡 Philosophy
- Convention over configuration - Sensible defaults for 90% of projects
- Modern by default - 2025's best tools, not legacy compatibility
- Type-safe - Full type annotations from day one
- Fast - Rust-based tools for instant feedback
- Single source of truth - All config in pyproject.toml
📄 License
MIT License - see LICENSE for details.
Made by Jacob Kanfer
Release files for quickforge 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| quickforge-0.1.2.tar.gz | 735.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| quickforge-0.1.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 821.0 kB
Release files / quickforge-0.1.2.tar.gz
| Download URL | quickforge-0.1.2.tar.gz |
|---|---|
| Size | 735.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5e6eb7550d1c594bc936b38089f9d8f5f9e3709e6aad9ec5e1d15302b349b9f4
|
|
BLAKE2b-256 checksum How to use checksums |
049201727750e61d64199026e0f04183117f1efd49347af5833ab17dd51a3cf3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on May 28, 2026.
Transparency logRelease files / quickforge-0.1.2-py3-none-any.whl
| Download URL | quickforge-0.1.2-py3-none-any.whl |
|---|---|
| Size | 85.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
aac65c7f5fd6c76830c2f14f812891e9bdc0e535639f19ffa2584a2f630e596f
|
|
BLAKE2b-256 checksum How to use checksums |
a90b8b0e0eedcf868782c0f8ebd8783b092bb875fb09920950b131c939972d9b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on May 28, 2026.
Transparency log