Skip to main content

A command-line utility that creates projects from project templates, e.g. creating a Python package project from a Python package project template.

Project description

cookiecutter Logo

pypi python PyPI Downloads GitHub Stars discord docs

Cookiecutter

Create projects swiftly from cookiecutters (project templates) with this command-line utility. Ideal for generating Python package projects and more.

Installation

Install Cookiecutter as a CLI tool with uv:

uv tool install cookiecutter

Features

  • Cross-Platform: Supports Windows, Mac, and Linux.
  • User-Friendly: No Python knowledge required.
  • Versatile: Compatible with Python 3.10 to 3.14.
  • Multi-Language Support: Use templates in any language or markup format.

For Users

Quickstart

The most common way to use Cookiecutter is as a command line utility with a GitHub-hosted Cookiecutter template such as https://github.com/audreyfeldroy/cookiecutter-pypackage

Use a GitHub-hosted Cookiecutter template

# You'll be prompted to enter values.
# Then it'll create your Python package in the current working directory,
# based on those values.
# For the sake of brevity, repos on GitHub can just use the 'gh' prefix
$ uvx cookiecutter gh:audreyfeldroy/cookiecutter-pypackage

Use a local template

$ uvx cookiecutter cookiecutter-pypackage/

Use it from Python

If you plan to use Cookiecutter programmatically, please run uv add cookiecutter to add it to your project. Then you can import and use it like this:

from cookiecutter.main import cookiecutter

# Create project from the cookiecutter-pypackage/ template
cookiecutter('cookiecutter-pypackage/')

# Create project from the cookiecutter-pypackage.git repo template
cookiecutter('gh:audreyfeldroy/cookiecutter-pypackage')

If Cookiecutter saves you time, star it on GitHub so other developers can find it too.

Detailed Usage

  • Generate projects from local or remote templates.
  • Customize projects with cookiecutter.json prompts.
  • Utilize pre-prompt, pre- and post-generate hooks.

Learn More

For Template Creators

  • Any language, any framework. A Cookiecutter template is just a directory with variables. It works for Python, Rust, Terraform, docs sites, whatever you build repeatedly.
  • Hooks for the rest of the setup. Pre- and post-generate scripts (shell or Python) handle git init, dependency installs, or anything else your boilerplate needs.
  • One file defines the interface. cookiecutter.json declares every variable and its default. Users answer prompts; the template does the rest.

Learn More

Available Templates

Discover a variety of ready-to-use templates on GitHub.

Special Templates

Community

Join the community, contribute, or seek assistance.

Feedback

We value your feedback. Share your criticisms or complaints constructively to help us improve.

Waiting for a Response?

  • Be patient and consider reaching out to the community for assistance.
  • For enterprise support, contact support@feldroy.com.

Code of Conduct

Adhere to the PyPA Code of Conduct during all interactions in the project's ecosystem.

Acknowledgements

Created and led by Audrey M. Roy Greenfeld, supported by a dedicated team of maintainers and contributors.

Project details


Download files

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

Source Distribution

cookiecutter-2.7.1.tar.gz (142.9 kB view details)

Uploaded Source

Built Distribution

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

cookiecutter-2.7.1-py3-none-any.whl (41.3 kB view details)

Uploaded Python 3

File details

Details for the file cookiecutter-2.7.1.tar.gz.

File metadata

  • Download URL: cookiecutter-2.7.1.tar.gz
  • Upload date:
  • Size: 142.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for cookiecutter-2.7.1.tar.gz
Algorithm Hash digest
SHA256 ca7bb7bc8c6ff441fbf53921b5537668000e38d56e28d763a1b73975c66c6138
MD5 7be81074aa18b6982a398740c3f27ed0
BLAKE2b-256 9203f4c96d8fd4f5e8af0210bf896eb63927f35d3014a8e8f3bf9d2c43ad3332

See more details on using hashes here.

Provenance

The following attestation bundles were made for cookiecutter-2.7.1.tar.gz:

Publisher: publish.yml on cookiecutter/cookiecutter

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

File details

Details for the file cookiecutter-2.7.1-py3-none-any.whl.

File metadata

  • Download URL: cookiecutter-2.7.1-py3-none-any.whl
  • Upload date:
  • Size: 41.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for cookiecutter-2.7.1-py3-none-any.whl
Algorithm Hash digest
SHA256 cee50defc1eaa7ad0071ee9b9893b746c1b3201b66bf4d3686d0f127c8ed6cf9
MD5 2974e24f220ba8ac1e8c6f84e5b7c206
BLAKE2b-256 14a98c855c14b401dc67d20739345295af5afce5e930a69600ab20f6cfa50b5c

See more details on using hashes here.

Provenance

The following attestation bundles were made for cookiecutter-2.7.1-py3-none-any.whl:

Publisher: publish.yml on cookiecutter/cookiecutter

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

Supported by

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