cookiecutter
A command-line utility that creates projects from project templates, e.g. creating a Python package project from a Python package project template.
What it is and what it does
Cookiecutter automates the creation of new projects by applying Jinja2 templating to a directory structure, prompting users for variable values defined in a cookiecutter.json file, then generating a customized project in the current working directory. It works with any language or framework—Python packages, Django projects, Rust crates, Terraform configs, documentation sites—by treating templates as ordinary directories with templated filenames and content.
The tool runs as a CLI utility or as a Python library, supporting both local and remote templates (including GitHub-hosted ones via the 'gh:' prefix). Templates can include pre- and post-generation hooks (shell or Python scripts) to automate setup tasks like git initialization or dependency installation. It has been in active development since 2013, supports Python 3.10 through 3.14, and runs on Windows, Mac, and Linux.
Use it for:
- Generate a new Python package project from a standard template with prompts for package name, author, and license.
- Create a Django project with pre-configured settings, apps, and database migrations from a community template.
- Scaffold a new Rust or Terraform project with language-specific boilerplate and CI/CD configuration.
- Set up documentation site templates with pre-configured Sphinx or static site generator structure.
- Automate team onboarding by running post-generation hooks that initialize git, install dependencies, and configure local development environments.
- Create internal company project templates that enforce naming conventions, code structure, and license headers across teams.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Cookiecutter is a command-line tool that generates new projects from templated directory structures, supporting any language or framework through Jinja2-based variable substitution and optional pre/post-generation hooks.
Yes. Cookiecutter is a mature, actively maintained tool with low install friction, no known vulnerabilities, and broad real-world adoption (top 5000 PyPI packages). It solves a genuine problem—reducing boilerplate and setup time—and works well both as a CLI tool and as a library. The only caveat is that license metadata is unclear in the package record; verify the actual license on GitHub before committing to a production dependency.
Install
cookiecutter on PyPI
pip
pip install cookiecutteruv
uv add cookiecutterpoetry
poetry add cookiecutterInstalling cookiecutter
Before you install
Low install friction with a pure-wheel distribution and eight well-maintained runtime dependencies. The package is actively maintained with a recent release and no known vulnerabilities.
License in practice
License treatment is unclear in the metadata; the description references BSD licensing on GitHub, but this is not formally declared in the package metadata, so you may want to verify the actual license terms before use.
Quickstart
# Install as a CLI tool
uv tool install cookiecutter
# Or add to a project
uv add cookiecutter
# Use from command line
uvx cookiecutter gh:audreyfeldroy/cookiecutter-pypackage
# Use from Python
from cookiecutter.main import cookiecutter
cookiecutter('cookiecutter-pypackage/')
Requires Python 3.10 or later; templates are rendered with Jinja2, so template syntax must be valid.
Verify before relying
- Whether the BSD license mentioned in the description excerpt is the authoritative license for this package version
Package facts
| License | not declared (unclear) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 8 — binaryornot, Jinja2, click, pyyaml, python-slugify, requests, arrow, rich |
| Maintenance | actively maintained — 163 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 10,448,794/month — #1,452 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: cookiecutter-2.7.1-py3-none-any.whl
Keywords: cookiecutter, Python, projects, project templates, Jinja2, skeleton, scaffolding, project directory, package, packaging
Tags
More Software Development packages
Provides backported and experimental type hints…
permissive · top 100 on PyPI
numpyNumPy provides an N-dimensional array object…
permissive · top 100 on PyPI
fastapiFastAPI is a Python web framework for building…
permissive · top 100 on PyPI
annotated-docProvides a way to document function parameters,…
permissive · top 100 on PyPI
typerTyper builds command-line applications from…
permissive · top 1,000 on PyPI
distlibDistlib provides low-level packaging utilities…
permissive · top 1,000 on PyPI
cruftcruft creates new projects from Cookiecutter…
permissive · top 15,000 on PyPI
makeGenerates project directory structures and…
permissive · top 15,000 on PyPI
pytest-cookiesA pytest plugin that provides a `cookies`…
permissive · top 15,000 on PyPI
copierCopier is a template engine and CLI tool that…
permissive · top 5,000 on PyPI
jinja2-strcaseAdds string-case conversion filters to Jinja2…
permissive · top 15,000 on PyPI
pyrigpyrig scaffolds, initializes, and maintains…
permissive · top 15,000 on PyPI
ansible-creatorA CLI tool that scaffolds new Ansible projects…
permissive · top 15,000 on PyPI
Jinja2Jinja2 is a templating engine that renders…
permissive · top 100 on PyPI
git-changelogGenerates changelogs automatically from git…
permissive · top 15,000 on PyPI
pytest-loggingA pytest plugin that configures Python logging…
permissive · top 15,000 on PyPI