Skip to main content

Cookiecutter

https://badge.fury.io/py/cookiecutter.png https://travis-ci.org/audreyr/cookiecutter.png?branch=master https://pypip.in/d/cookiecutter/badge.png

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

Features

Did someone say features? Cookiecutter’s got more features than you can shake a stick at!

  • Works with Python 2.6, 2.7, 3.3, and PyPy.

  • Simple command line usage:

    # Create project from the cookiecutter-pypackage.git repo template
    # You'll be prompted to enter values.
    # Then it'll create your Python package based on those values.
    $ cookiecutter https://github.com/audreyr/cookiecutter-pypackage.git
  • Can also use it at the command line with a local template:

    # Create project from the local cookiecutter-pypackage/ template
    $ cookiecutter cookiecutter-pypackage/
  • Or use it from Python:

    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('https://github.com/audreyr/cookiecutter-pypackage.git')
  • Directory names and filenames can be templated. For example:

    {{cookiecutter.repo_name}}/{{cookiecutter.repo_name}}/{{cookiecutter.repo_name}}.py
  • Supports unlimited levels of directory nesting.

  • All templating is done with Jinja2.

  • 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.

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

    {
        "full_name": "Audrey Roy",
        "email": "audreyr@gmail.com",
        "project_name": "A Lot of Effort",
        "repo_name": "alotofeffort",
        "project_short_description": "Deploy static HTML sites to S3 with the simple 'alotofeffort' command.",
        "release_date": "2013-07-10",
        "year": "2013",
        "version": "0.1.1"
    }
  • If generating a project from a git repo template, 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 (thanks to those handy OrderedDicts!)

Available Templates

Here is a list of the working Cookiecutter project templates that exist:

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

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.

History

0.6.0 (2013-08-08)

  • Config is now in a single cookiecutter.json instead of in json/.

  • When you create a project from a git repo template, Cookiecutter prompts you to enter custom values for the fields defined in cookiecutter.json.

0.5 (2013-07-28)

  • Friendlier, more simplified command line usage:

    # Create project from the cookiecutter-pypackage/ template
    $ cookiecutter cookiecutter-pypackage/
    
    # Create project from the cookiecutter-pypackage.git repo template
    $ cookiecutter https://github.com/audreyr/cookiecutter-pypackage.git
  • Can now use Cookiecutter from Python as a package:

    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('https://github.com/audreyr/cookiecutter-pypackage.git')
  • Internal refactor to remove any code that changes the working directory.

0.4 (2013-07-22)

  • Only takes in one argument now: the input directory. The output directory is generated by rendering the name of the input directory.

  • Output directory cannot be the same as input directory.

0.3 (2013-07-17)

  • Takes in command line args for the input and output directories.

0.2.1 (2013-07-17)

  • Minor cleanup.

0.2 (2013-07-17)

Bumped to “Development Status :: 3 - Alpha”.

  • Works with any type of text file.

  • Directory names and filenames can be templated.

0.1.0 (2013-07-11)

  • First release on PyPI.

Metadata

Release files for cookiecutter 0.6.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for cookiecutter 0.6.0
File Size Uploaded
cookiecutter-0.6.0.tar.gz 10.5 kB Details

Release files / cookiecutter-0.6.0.tar.gz

Download URL cookiecutter-0.6.0.tar.gz
Size 10.5 kB
Tags Source
SHA-256 checksum
How to use checksums
e542074707ebd12310fbe4fec278d393dce6231f20fca80b72194b6855f7204b
BLAKE2b-256 checksum
How to use checksums
7e2f6cec23b9a1cc33bd7ff1b7db8a79da8c856d327eeb14eee438e6588fcd6b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

2.7.1

2 release files

2.7.0

2 release files

2.6.0

2 release files

2.5.0

2 release files

2.4.0

2 release files

2.3.1

2 release files

2.3.0

2 release files

2.2.3

2 release files

2.2.2

2 release files

2.2.0

2 release files

2.1.1

2 release files

2.1.0

2 release files

1.7.3

2 release files

1.7.2

2 release files

1.7.1

2 release files

1.7.0

2 release files

1.6.0

2 release files

1.5.1

2 release files

1.5.0

2 release files

1.4.0

2 release files

1.3.0

2 release files

1.2.1

2 release files

1.2.0

1.1.0

2 release files

1.0.0

2 release files

0.9.1

1 release file

0.9.0

1 release file

0.8.0

1 release file

0.7.2

1 release file

0.7.1

1 release file

0.7.0

1 release file

0.6.4

1 release file

0.6.3

1 release file

0.6.2

1 release file

0.6.1

1 release file

This release

0.6.0 This release

1 release file

0.5

1 release file

0.4

1 release file

0.3

1 release file

0.2.1

1 release file

0.2

1 release file

0.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page