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.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

spinup_py-0.3.0.tar.gz (78.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

spinup_py-0.3.0-py3-none-any.whl (17.2 kB view details)

Uploaded Python 3

File details

Details for the file spinup_py-0.3.0.tar.gz.

File metadata

  • Download URL: spinup_py-0.3.0.tar.gz
  • Upload date:
  • Size: 78.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for spinup_py-0.3.0.tar.gz
Algorithm Hash digest
SHA256 2d1d2110ecc83a3a868293559ceea3267ea8d2a65922a955b0be8fb8cced9f4b
MD5 f8b97d4d92aa6fb701615dd78e78e62e
BLAKE2b-256 57527bb6cc3825692b62ef564735297d2922ff0a30bc28a01326800a3d195486

See more details on using hashes here.

Provenance

The following attestation bundles were made for spinup_py-0.3.0.tar.gz:

Publisher: release-please.yml on joeblackwaslike/spinup-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file spinup_py-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: spinup_py-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 17.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for spinup_py-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7925a57073f1bcf24e8263e3d26e503c48c2e66b4805560811be9246535069d6
MD5 d3b282946c31824c5797a4e8a4568519
BLAKE2b-256 c70390e4f2340a6aaaf083732457bd11c0045690a93709517d4060eda9203567

See more details on using hashes here.

Provenance

The following attestation bundles were made for spinup_py-0.3.0-py3-none-any.whl:

Publisher: release-please.yml on joeblackwaslike/spinup-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.3.0 This release

2 files

0.2.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page