Skip to main content


Build status Supported Python versions Docs License

This is a modern Cookiecutter template that can be used to initiate a Python project with all the necessary tools for development, testing, and deployment. It supports the following features:


Documentation - Example


Quickstart

Discord Join Discord

Navigate to the directory where you want your new project and run:

uvx spinup-py my-project

Or install globally first:

uv tool install spinup-py
spinup-py my-project

Follow the guided prompts to configure your project. Once complete, a new directory my-project/ will be created with everything set up.

To retrofit an existing project with the latest tooling:

spinup-py --update /path/to/existing-project

spinup-py is the Python sibling of spinup-ts, the equivalent TypeScript project scaffolder.

Install from source

For local or development use (e.g. running it as a Claude Code plugin), install the checkout directly with an editable install:

uv tool install --editable .

Usage

# Scaffold a new project (bare form — positional name)
spinup-py my-project

# Same thing via the explicit subcommand
spinup-py new my-project

# Retrofit an existing project with the current tooling
spinup-py update /path/to/existing-project

# Or via the root flag (equivalent to `update`)
spinup-py --update /path/to/existing-project

# Print the installed version
spinup-py --version

Flags

Flag / command Description
spinup-py <name> Scaffold a new project with the given name (runs the guided prompts).
spinup-py new [<name>] Explicit subcommand for scaffolding a new project.
spinup-py update [<dir>] Retrofit an existing project at <dir> (defaults to the current directory).
--update, -u <dir> Root-level equivalent of update — retrofit an existing project at <dir>.
--non-interactive, -y Scaffold with sensible defaults and no prompts.
--version, -v Print the installed version and exit.

Offline / custom template

By default the published CLI fetches its Cookiecutter template from GitHub (gh:joeblackwaslike/spinup-py). To use a local or custom template instead — handy when working offline or from a fork — set the SPINUP_PY_TEMPLATE environment variable to any Cookiecutter reference (a local path, a different GitHub repo, etc.):

SPINUP_PY_TEMPLATE=/path/to/template spinup-py my-project

Acknowledgements & Lineage

Feedback and contributing

My mission with this is to build the best project starter for python projects that has everything you can want, the ability to customize and/or opt out of most everything, and save you the most time!

I am only one person with very specific preferences. If you have any feedback you can email me at me@joeblack.nyc. If you find any bugs, mistakes, missed opportunities, or would like to contribute new functionality in any way, I would love to hear about it in an issue, feel free to email me the issue to get my attention.

This project is under continuous iterative improvements as I find bugs, and better and more effective ways to do things. But I can only do so much on my own, so please open an issue if you want to help/contribute and we can iterate and discuss how we can make this happen. If you find an outright bug or mistake, just open a PR and describe all the details there.

Metadata

Release files for spinup-py 0.3.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 spinup-py 0.3.0
File Size Uploaded
spinup_py-0.3.0.tar.gz 78.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for spinup-py 0.3.0
File Interpreter ABI Platform
spinup_py-0.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 95.7 kB

Release files / spinup_py-0.3.0.tar.gz

Download URL spinup_py-0.3.0.tar.gz
Size 78.5 kB
Tags Source
SHA-256 checksum
How to use checksums
2d1d2110ecc83a3a868293559ceea3267ea8d2a65922a955b0be8fb8cced9f4b
BLAKE2b-256 checksum
How to use checksums
57527bb6cc3825692b62ef564735297d2922ff0a30bc28a01326800a3d195486
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

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 Jun 12, 2026.

Transparency log

Release files / spinup_py-0.3.0-py3-none-any.whl

Download URL spinup_py-0.3.0-py3-none-any.whl
Size 17.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7925a57073f1bcf24e8263e3d26e503c48c2e66b4805560811be9246535069d6
BLAKE2b-256 checksum
How to use checksums
c70390e4f2340a6aaaf083732457bd11c0045690a93709517d4060eda9203567
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

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 Jun 12, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.3.0 This release

2 release files

0.2.0

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