On this page
Overview
Cookiecutter is a cross-platform CLI that defines inputs in cookiecutter.json and renders directories and files from Jinja templates. It can consume local directories, Git-hosted repositories, and other template sources, with pre/post generation hooks for additional setup.
Features and best fit
Based on official documentation; not hands-on tested · Content checked:
Key features
Define project templates with cookiecutter.json and Jinja
Template authors declare variables and defaults in cookiecutter.json, then use Jinja expressions in directory names and file contents. Users answer prompts to generate a new project from the same structure.
Best fit
Fits teams that repeatedly create projects from a shared baseline
It works well for packages, services, infrastructure templates, and other workflows where directory layout, configuration, and boilerplate should start consistently.
Sources: [1]
Before adoption
Review remote templates and hooks before execution
Templates may contain pre/post generation scripts. Inspect the repository and hooks before running an untrusted remote template, or clone it locally first for review.
Sources: [1]
Official sources
- [1]Cookiecutter v2.7.1 README(2026-10-03)
- [2]Cookiecutter v2.7.1 usage guide(2026-10-03)
- [3]Cookiecutter v2.7.1 package metadata(2026-10-03)
- [4]Cookiecutter 2.7.1 release(2026-10-03)
Supplemental curator note
Cookiecutter helps teams standardize repeated project scaffolding without tying templates to one language. Review the source and hooks of remote templates before generating files because templates can run pre/post generation logic.
Try it in 3 steps
- 1
Verify the Cookiecutter 2.7.1 CLI
Run a pinned Cookiecutter version without changing a global installation.
uvx --from cookiecutter==2.7.1 cookiecutter --version - 2
Clone a sample template and inspect its hooks
Remote templates can execute pre/post generation hooks, so review the locally cloned source and hooks before generating files.
git clone --depth 1 https://github.com/audreyfeldroy/cookiecutter-pypackage.git && find cookiecutter-pypackage/hooks -maxdepth 1 -type f -print 2>/dev/null || true - 3
Generate a project from the reviewed local template
Answer the prompts to render the project skeleton. If the template contains hooks, they run during generation, so keep the review step in the workflow.
uvx --from cookiecutter==2.7.1 cookiecutter ./cookiecutter-pypackage
Growth
Growth trends · Last 30 days
25,127 Stars
Trend data is still being collected.
Development activity
Last 90 days · weekly
- Commits (last 30 days)
- 0
- Open PRs
- 89
Development activity is still being collected.
Built with
Categories and tags
Categories
GitHub data
GitHub dataView detailed GitHub data
GitHub Topics
- python
- cookiecutter
- Stars
- 25,127
- Forks
- 2,286
- Watchers
- 221
- Open issues
- 233
- Contributors
- 285
- Owner type
- Organization
- Primary language
- Python
- License
- BSD-3-Clause
- Repository last updated
- Apr 1, 2026
Related information
Write a related articleShare a guide or use case for this OSS in Markdown. Articles are published after administrator approval.
Explore next
- Apache Airflow47,037 Stars
2 shared tag(s) · 1 shared category(s) · Same language
orchestrate data, ML, and AI workflows with code-defined DAGs
Python - Keep12,374 Stars
2 shared tag(s) · 1 shared category(s) · Same language
centralize monitoring alerts and connect correlation, enrichment, and response workflows
Python - TestZeus Hercules1,174 Stars
2 shared tag(s) · 1 shared category(s) · Same language
turn Gherkin scenarios into LLM-agent browser actions for end-to-end testing
Python - hidemyemail-generator741 Stars
2 shared tag(s) · 1 shared category(s) · Same language
manage your own iCloud+ Hide My Email aliases from a local app and CLI
Python - Dify157,734 Stars
2 shared tag(s) · 1 shared category(s)
design and publish AI workflows, retrieval, and agents on one platform
TypeScript - Django91,240 Stars
2 shared tag(s) · Same language
an integrated Python web framework with ORM, admin, URL routing, views, and templates
Python
Report incorrect information
Tell us if any listing information is incorrect or outdated.