.. _nested-config-files: Nested configuration files -------------------------- *New in Cookiecutter 2.5.0* If you wish to create a hierarchy of templates and use cookiecutter to choose among them, you need just to specify the key ``templates`` in the main configuration file to reach the other ones. Let's imagine to have the following structure:: main-directory/ ├── project-1 │ ├── cookiecutter.json │ ├── {{cookiecutter.project_slug}} | │ ├── ... ├── package │ ├── cookiecutter.json │ ├── {{cookiecutter.project_slug}} | │ ├── ... └── cookiecutter.json It is possible to specify in the main ``cookiecutter.json`` how to reach the other config files as follows: .. code-block:: JSON { "templates": { "project-1": { "path": "./project-1", "title": "Project 1", "description": "A cookiecutter template for a project" }, "package": { "path": "./package", "title": "Package", "description": "A cookiecutter template for a package" } } } Then, when ``cookiecutter`` is launched in the main directory it will ask to choose among the possible templates: .. code-block:: Select template: 1 - Project 1 (A cookiecutter template for a project) 2 - Package (A cookiecutter template for a package) Choose from 1, 2 [1]: Once a template is chosen, for example ``1``, it will continue to ask the info required by ``cookiecutter.json`` in the ``project-1`` folder, such as ``project-slug`` Old Format ++++++++++ *New in Cookiecutter 2.2.0* In the main ``cookiecutter.json`` add a `template` key with the following format: .. code-block:: JSON { "template": [ "Project 1 (./project-1)", "Project 2 (./project-2)" ] } Then, when ``cookiecutter`` is launched in the main directory it will ask to choose among the possible templates: .. code-block:: Select template: 1 - Project 1 (./project-1) 2 - Project 2 (./project-2) Choose from 1, 2 [1]: Once a template is chosen, for example ``1``, it will continue to ask the info required by ``cookiecutter.json`` in the ``project-1`` folder, such as ``project-slug``