cookiecutter 0 travis-ci python

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

4 years after BSD-3-Clause

============= Cookiecutter

.. image:: :target:

.. image:: :target:

.. image:: :target:

.. image:: :target:

.. image:: :target:


This is not the official cookiecutter package, but a fork. It should remain compatible although with original cookiecutter as of 2015-01-30.

Here's how to install this fork::

pip install git+

What follows is the original README.


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::


Did someone say features?

  • Cross-platform: Windows, Mac, and Linux are officially supported.

  • Works with Python 2.6, 2.7, 3.3, 3.4, and PyPy. (But you don't have to know/write Python code to use Cookiecutter.)

  • Project templates can be in any programming language or markup format: Python, JavaScript, Ruby, CoffeeScript, RST, Markdown, CSS, HTML, you name it. You can use multiple languages in the same project template.

  • Simple command line usage:

    .. code-block:: bash

    # Create project from the cookiecutter-pypackage.git repo template
    # You'll be prompted to enter values.
    # Then it'll create your Python package in the current working directory,
    # based on those values.
    $ cookiecutter
    # For the sake of brevity, repos on GitHub can just use the 'gh' prefix
    $ cookiecutter gh:audreyr/cookiecutter-pypackage
  • Can also use it at the command line with a local template:

    .. code-block:: bash

    # Create project in the current working directory, from the local
    # cookiecutter-pypackage/ template
    $ cookiecutter cookiecutter-pypackage/
  • Or use it from Python:

    .. code-block:: python

    from cookiecutter.main import cookiecutter
    # Create project from the cookiecutter-pypackage/ template
    # Create project from the cookiecutter-pypackage.git repo template
  • Directory names and filenames can be templated. For example::


  • Supports unlimited levels of directory nesting.

  • 100% of templating is done with Jinja2. This includes file and directory names.

  • Simply define your template variables in a cookiecutter.json file. For example:

    .. code-block:: json

        "full_name": "Audrey Roy",
        "email": "[email protected]",
        "project_name": "Complexity",
        "repo_name": "complexity",
        "project_short_description": "Refreshingly simple static site generator.",
        "release_date": "2013-07-10",
        "year": "2013",
        "version": "0.1.1"
  • Unless you suppress it with --no-input, you are prompted for input:

    • Prompts are the keys in cookiecutter.json.
    • Default responses are the values in cookiecutter.json.
    • Prompts are shown in order.
  • Cross-platform support for ~/.cookiecutterrc files:

    .. code-block:: yaml

        full_name: "Audrey Roy"
        email: "[email protected]"
        github_username: "audreyr"
    cookiecutters_dir: "~/.cookiecutters/"
  • Cookiecutters (cloned Cookiecutter project templates) are put into ~/.cookiecutters/ by default, or cookiecutters_dir if specified.

  • You can use local cookiecutters, or remote cookiecutters directly from Git repos or from Mercurial repos on Bitbucket.

  • Default context: specify key/value pairs that you want used as defaults whenever you generate a project

  • Direct access to the Cookiecutter API allows for injection of extra context.

  • Pre- and post-generate hooks: Python or shell scripts to run before or after generating a project.

  • Paths to local projects can be specified as absolute or relative.

  • Projects are always generated to your current directory.

Available 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!


* `cookiecutter-pypackage`_: `@audreyr`_'s ultimate Python package project
* `cookiecutter-flask`_ : A Flask template with Bootstrap 3, starter templates, and working user registration.
* `cookiecutter-bottle`_ : A cookiecutter template for creating reusable Bottle projects quickly.
* `cookiecutter-simple-django`_: A cookiecutter template for creating reusable Django projects quickly.
* `cookiecutter-django`_: A bleeding edge Django project template with Bootstrap 3, customizable users app, starter templates, and working user registration.
* `cookiecutter-djangopackage`_: A template designed to create reusable third-party PyPI friendly Django apps. Documentation is written in tutorial format.
* `cookiecutter-django-cms`_: A template for Django CMS with simple Bootstrap 3 template. It has a quick start and deploy documentation.
* `cookiecutter-djangocms-plugin`_: A template to get started with custom plugins for django-cms
* `cookiecutter-openstack`_: A template for an OpenStack project.
* `cookiecutter-docopt`_: A template for a Python command-line script that uses `docopt`_ for arguments parsing.
* `cookiecutter-django-crud`_: A template to create a Django app with boilerplate CRUD around a model including a factory and tests.
* `cookiecutter-quokka-module`_: A template to create a blueprint module for Quokka Flask CMS.
* `cookiecutter-django-lborgav`_: Another cookiecutter template for Django project with Booststrap 3 and FontAwesome 4.
* `cookiecutter-django-paas`_: Django template ready to use in SAAS platforms like Heroku, OpenShift, etc..
* `cookiecutter-kivy`_: A template for NUI applications built upon the kivy python-framework.
* `cookiedozer`_: A template for Python Kivy apps ready to be deployed to android devices with Buildozer.
* `cookiecutter-pypackage-minimal`_: A mimimal Python package template.
* `cookiecutter-ansible-role`_: A template to create ansible roles. Forget about file creation and focus on actions.
* `cookiecutter-pylibrary`_: An intricate template designed to quickly get started with good testing and packaging (working configuration for Tox, Pytest, Travis-CI, Coveralls, AppVeyor, Sphinx docs, isort, bumpversion, packaging checks etc).
* `cookiecutter-pylibrary-minimal`_: Same as above but without Pytest and static configuration for Tox/Travis/AppVeyor (no generator).
* `cookiecutter-pyvanguard`_: A template for cutting edge Python development. `Invoke`_, pytest, bumpversion, and Python 2/3 compatability.
* `Python-iOS-template`_: A template to create a Python project that will run on iOS devices.
* `Python-Android-template`_: A template to create a Python project that will run on Android devices.
* `cookiecutter-django-rest-framework`_: A template for creating reusable Django REST Framework packages.


* `bootstrap.c`_: A template for simple projects written in C with autotools.
* `cookiecutter-avr`_: A template for avr development.

  • BoilerplatePP_: A simple cmake template with unit testing for projects written in C++.

Common Lisp

* `cookiecutter-cl-project`_: A template for Common Lisp project with bootstrap script and Slime integration.


* `cookiecutter-jquery`_: A jQuery plugin project template based on jQuery
* `cookiecutter-jswidget`_: A project template for creating a generic front-end,
  non-jQuery JS widget packaged for multiple JS packaging systems.
* `cookiecutter-component`_: A template for a Component JS package.

  • pandoc-talk_: A cookiecutter template for giving talks with pandoc and XeTeX.
  • cookiecutter-latex-article_: A LaTeX template geared towards academic use.


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

  • cookiecutter-complexity_: A cookiecutter for a Complexity static site with Bootstrap 3.
  • cookiecutter-tumblr-theme_: A cookiecutter for a Tumblr theme project with GruntJS as concatination tool.

.. cookiecutter-pypackage: .. cookiecutter-jquery: .. cookiecutter-flask: .. cookiecutter-bottle: .. cookiecutter-simple-django: .. cookiecutter-django: .. cookiecutter-djangopackage: .. cookiecutter-django-cms: .. cookiecutter-djangocms-plugin: .. cookiecutter-django-crud: .. cookiecutter-quokka-module: .. cookiecutter-django-lborgav: .. cookiecutter-django-paas: .. cookiecutter-kivy: .. cookiedozer: .. cookiecutter-pypackage-minimal: .. cookiecutter-ansible-role: .. bootstrap.c: .. BoilerplatePP: .. cookiecutter-openstack: .. cookiecutter-component: .. cookiecutter-docopt: .. docopt: .. cookiecutter-jswidget: .. pandoc-talk: .. cookiecutter-latex-article: .. cookiecutter-complexity: .. cookiecutter-cl-project: .. slim-berkshelf-vagrant: .. cookiecutter-avr: .. cookiecutter-tumblr-theme: .. cookiecutter-pylibrary: .. cookiecutter-pylibrary-minimal: .. cookiecutter-pyvanguard: .. Python-iOS-template: .. Python-Android-template: .. Invoke: .. cookiecutter-django-rest-framework:


* `cookiecutter-scala-spark`_: A cookiecutter template for Apache Spark applications written in Scala.

.. _`cookiecutter-scala-spark`:

6502 Assembly
  • cookiecutter-atari2600_: A cookiecutter template for Atari2600 projects.

.. _cookiecutter-atari2600:

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

.. Paste: .. Diecutter: .. Django: .. python-packager: .. Yeoman: .. Pyramid: .. mr.bob: .. grunt-init: .. scaffolt: .. init-skeleton: .. _Cog:


The core committer team is @audreyr, @pydanny, @michaeljoseph, and @pfmoore. 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 in #cookiecutter 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 in IRC:

  • cookiecutter on (note: due to work and commitments,

    a core committer might not always be available)

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

  • Thank a core committer for their efforts.
  • Star Cookiecutter on GitHub_.
  • Join the Cookiecutter Gittip community_.

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.

.. Cookiecutter on GitHub: .. Troubleshooting: .. contributors: .. contributing instructions: .. Stack Overflow: .. File an issue: .. Cookiecutter Gittip community: .. @audreyr: .. @pydanny: .. @michaeljoseph: .. _@pfmoore:

Related Repositories



Cookiecutter Django is a framework for jumpstarting production-ready Django proj ...



Cookiecutter template for a Python package. ...



Enhanced cookiecutter template for Python libraries. ...



A Cookiecutter template for Wagtail CMS using Zurb Foundation 6 ...



Bleeding edge Cookiecutter template for Python development ...

Top Contributors

audreyr hackebrot michaeljoseph pydanny pfmoore raphigaziano ramiroluz foobacca mark0978 benjixx bollwyvl vaab Natim s-m-i-t-a jacebrowning freakboy3742 krallin msabramo lborgav nedbat pokoli vincentbernat treyhunner sloria ionelmc thedrow ThomasChiroux dreftymac mineo saxix


-   0.9.1 zip tar
-   0.9.0 zip tar
-   0.8.0 zip tar
-   0.7.2 zip tar
-   0.7.1 zip tar
-   0.7.0 zip tar
-   0.6.4 zip tar
-   0.6.3 zip tar
-   0.6.2 zip tar
-   0.6.1 zip tar
-   0.6.0 zip tar
-   0.5 zip tar
-   0.4 zip tar
-   0.3 zip tar
-   0.2.1 zip tar