The open-source monorepo behind create-awesome-python-app: compose templates and addons into production-ready Python, FastAPI, Django, Celery, CLI, and uv workspace projects.
One command. Any stack.
Package README · Official Site · Templates · Extensions · Contributing · Troubleshooting
This repository contains the source code for create-awesome-python-app, the CLI that composes curated templates, addons, custom options, and AI-ready conventions into working projects.
Use this README if you want to understand the codebase, run it locally, contribute a fix, improve documentation, or work on the CLI packages. If you only want to generate an app, start with the package README.
uvx create-awesome-python-app@latest my-appRun headlessly for scripts, CI, or platform automation:
uvx create-awesome-python-app my-api \
--template fastapi-starter \
--addons github-setup \
--addons fastapi-sqlalchemy \
--no-interactiveMore examples live in the CLI package README.
| Repository | Role |
|---|---|
| create-python-app (this repo) | CLI (create-awesome-python-app) and scaffolding engine (create-python-app-core) |
| cpa-templates | Official templates and extensions (templates.json catalog) |
| website | Docs + catalog UI (create-awesome-python-app.vercel.app) |
| homebrew-tap | Homebrew formula |
| aur-package | AUR PKGBUILD mirror |
The CLI fetches the catalog from:
https://raw.githubusercontent.com/Create-Python-App/cpa-templates/main/templates.json
Override with CPA_CATALOG_URL for forks or local testing (file:// supported).
This is a virtual uv workspace: the root is not published; packages live under packages/* and share one uv.lock / .venv.
| Path | Purpose |
|---|---|
packages/create-awesome-python-app | Main CLI package (Typer), interactive wizard, catalog listing |
packages/create-python-app-core | Scaffolding engine: resolve sources, merge layers, install, git init |
docs/ | Brand, troubleshooting, migration, distribution, versioning |
.github/workflows | CI, release, Docker / Homebrew / AUR publish, distribution smoke |
Template and extension data is maintained in Create-Python-App/cpa-templates. This repo consumes that catalog remotely.
create-python-app/ # virtual workspace root (no [project] table)
├── pyproject.toml # [tool.uv.workspace] members = ["packages/*"]
├── uv.lock
├── .venv/
└── packages/
├── create-python-app-core/ # scaffolding engine
└── create-awesome-python-app/ # CLI (depends on core via workspace)
Requires Python 3.12+ (pinned in .python-version) and uv:
git clone https://github.com/Create-Python-App/create-python-app.git
cd create-python-app
uv sync --group dev
uv run create-awesome-python-app --helpNon-interactive local smoke test:
uv run create-awesome-python-app smoke-app \
--template fastapi-starter \
--addons github-setup \
--no-interactive \
--no-installInstall git hooks: uv run pre-commit install
| Task | Make | Equivalent |
|---|---|---|
| Install workspace | make sync | uv sync --group dev |
| Tests | make test | uv run pytest |
| Lint | make lint | uv run ruff check . |
| Type-check | make typecheck | uv run pyright |
| Build packages | make build | uv build --all |
# PyPI / uv
uvx create-awesome-python-app@latest my-app
# Homebrew
brew tap Create-Python-App/tap
brew install create-awesome-python-app
# AUR
yay -S create-awesome-python-app
# Docker
docker run --rm -it -v "${PWD}:/app" -w /app \
ulisesjeremias/create-awesome-python-app:latest my-app \
--template fastapi-starterPublished image: ulisesjeremias/create-awesome-python-app
Local image build (installs the given PyPI version into the image):
docker build --build-arg VERSION=0.2.5 -t create-awesome-python-app .
docker run --rm create-awesome-python-app --helpMIT — see LICENSE.
- Package README — user-facing CLI docs
- uv workspaces handbook
- cpa-templates — template and extension bank
- Node parity: Create-Node-App/create-node-app + cna-templates
Made with contributors-img.