/cookiecutter

A command-line utility that creates projects from cookiecutters (project templates). E.g. Python package projects, jQuery plugin projects.

Primary LanguagePythonBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

Cookiecutter

image

image

image

image

image

Documentation Status

Code Health

Scrutinizer Code Quality

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

image

We are proud to be an open source sponsor of PyCon 2016.

Features

Did someone say features?

Available Cookiecutters

Making great cookies takes a lot of cookiecutters and contributors. We're so pleased that there are many Cookiecutter project templates to choose from. We hope you find a cookiecutter that is just right for your needs.

Cookiecutter Specials

These Cookiecutters are maintained by the cookiecutter team:

Categories of Cookiecutters

Python | Python-Django | Python-Pyramid | Cookiecutter (meta) | C | C++ | C# | Common Lisp | Golang | JS | Kotlin | LaTeX/XeTeX | PHP | Berkshelf-Vagrant | HTML | Scala | 6502 Assembly | Data Science

If you don't find a cookiecutter that suits your needs here, please consider writing or suggesting one. We wish for our users to find a solution for their use cases, and we provide a list of other projects that we do not maintain for your convenience (please see the Similar Projects section).

Community

The core committer team is @audreyr, @pydanny, @michaeljoseph, @pfmoore, and @hackebrot. We welcome you and invite you to participate.

Stuck? Try one of the following:

  • See the Troubleshooting page.
  • Ask for help on Stack Overflow.
  • You are strongly encouraged to file an issue about the problem, even if it's just "I can't get it to work on this cookiecutter" with a link to your cookiecutter. Don't worry about naming/pinpointing the issue properly.
  • Ask for help on Gitter if you must (but please try one of the other options first, so that others can benefit from the discussion)

Development on Cookiecutter is community-driven:

  • Huge thanks to all the contributors who have pitched in to help make Cookiecutter an even better tool.
  • Everyone is invited to contribute. Read the contributing instructions, then get started.

Connect with other Cookiecutter contributors and users on Gitter:

Encouragement is unbelievably motivating. If you want more work done on Cookiecutter, show support:

Got criticism or complaints?

  • File an issue so that Cookiecutter can be improved. Be friendly and constructive about what could be better. Make detailed suggestions.
  • Keep us in the loop so that we can help. For example, if you are discussing problems with Cookiecutter on a mailing list, file an issue where you link to the discussion thread and/or cc at least 1 core committer on the email.
  • Be encouraging. A comment like "This function ought to be rewritten like this" is much more likely to result in action than a comment like "Eww, look how bad this function is."

Waiting for a response to an issue/question?

  • Be patient and persistent. All issues are on the core committer team's radar and will be considered thoughtfully, but we have a lot of issues to work through. If urgent, it's fine to ping a core committer in the issue with a reminder.
  • Ask others to comment, discuss, review, etc.
  • Search the Cookiecutter repo for issues related to yours.
  • Need a fix/feature/release/help urgently, and can't wait? @audreyr is available for hire for consultation or custom development.

Support This Project

This project is maintained by volunteers. Support their efforts by spreading the word about:

Two Scoops Academy

Code of Conduct

Everyone interacting in the Cookiecutter project's codebases, issue trackers, chat rooms, and mailing lists is expected to follow the PyPA Code of Conduct.


A Pantry Full of Cookiecutters

Here is a list of cookiecutters (aka Cookiecutter project templates) for you to use or fork.

Make your own, then submit a pull request adding yours to this list!

Python

Python-Django

Python-Pyramid

  • pyramid-cookiecutter-alchemy: A cookiecutter (project template) for creating a Pyramid project using SQLite as persistent storage, SQLAlchemy as an ORM, URL dispatch for routing, and Jinja2 for templating.
  • pyramid-cookiecutter-starter: A cookiecutter (project template) for creating a Pyramid starter project using Chameleon for templating.
  • pyramid-cookiecutter-zodb: A cookiecutter (project template) for creating a Pyramid project using ZODB for persistent storage, traversal for routing, and Chameleon for templating.
  • substanced-cookiecutter: A cookiecutter (project template) for creating a Substance D starter project. Substance D is built on top of Pyramid.

Cookiecutter (meta)

Meta-templates for generating Cookiecutter project templates.

C

C++

  • BoilerplatePP: A simple cmake template with unit testing for projects written in C++.
  • cookiecutter-dpf-effect: An audio plugin project template for the DISTRHO Plugin Framework (DPF)
  • cookiecutter-dpf-audiotk: An audio plugin project template for the DISTRHO Plugin Framework (DPF) and the Audio Toolkit (ATK) DSP library

C#

Common Lisp

Golang

  • beat-generator: A template to create your own beat to ship data to Elasticsearch.

JS

Kotlin

LaTeX/XeTeX

PHP

Berkshelf-Vagrant

  • slim-berkshelf-vagrant: A simple cookiecutter template with sane cookbook defaults for common vagrant/berkshelf cookbooks.

HTML

Scala

6502 Assembly

Data Science

  • cookiecutter-data-science: A logical, reasonably standardized, but flexible project structure for doing and sharing data science work in Python. Full documentation available here.

Similar projects

  • Paste has a create option that creates a skeleton project.
  • Diecutter: an API service that will give you back a configuration file from a template and variables.
  • Django's startproject and startapp commands can take in a --template option.
  • python-packager: Creates Python packages from its own template, with configurable options.
  • Yeoman has a Rails-inspired generator system that provides scaffolding for apps.
  • Pyramid's pcreate command for creating Pyramid projects from scaffold templates.
  • mr.bob is a filesystem template renderer, meant to deprecate tools such as paster and templer.
  • grunt-init used to be built into Grunt and is now a standalone scaffolding tool to automate project creation.
  • scaffolt consumes JSON generators with Handlebars support.
  • init-skeleton clones or copies a repository, executes npm install and bower install and removes the .git directory.
  • Cog python-based code generation toolkit developed by Ned Batchelder
  • Skaffold python and json config based django/MVC generator, with some add-ons and integrations.