skillfed

copier

A library for rendering project templates.

copier v9.17.1 2.3M downloads/30d#3,120 on PyPI3,524
Permissive license MIT Active released

What it is and what it does

Copier is a library and command-line tool for rendering project templates into new projects. It reads a template directory (local or from a Git URL), asks users questions defined in a copier.yml configuration file, and uses those answers to dynamically generate files and directories with substituted names and content via Jinja2 templating. The tool is designed for both one-time scaffolding and ongoing project evolution—templates can be updated and applied to existing projects.

The package targets two main audiences: template creators who want to avoid repeating boilerplate code, and template consumers who want to quickly start new projects or keep them synchronized with an evolving template. It handles file preservation (not overwriting existing files unless instructed) and includes interactive prompts via questionary, colored output via colorama, and support for YAML-based configuration. With 14 runtime dependencies including Pydantic for validation and Jinja2 for templating, it provides a full-featured templating system suitable for code scaffolding and project lifecycle management.

Use it for:

  • Scaffold a new Python package with standardized structure, tests, and CI configuration by running a single copier command.
  • Create and maintain a company-wide project template that developers can use to start new microservices with consistent tooling.
  • Update an existing project generated from a template when the template itself evolves, preserving local customizations.
  • Generate multiple similar projects (e.g., Django apps, FastAPI services) from a single parameterized template.
  • Automate project initialization in CI/CD pipelines by calling copier's Python API with predefined answers.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Copier is a template engine and CLI tool that generates projects from templates stored in local paths or Git repositories, with support for dynamic file and directory name substitution via Jinja2.

Yes. Copier is actively maintained (release 10 days ago), has low install friction, carries a permissive MIT license, and no known vulnerabilities. It is well-suited for teams and individuals who need to generate projects from templates or manage template-based code scaffolding. Install it if you create or consume project templates; skip it if you only need simple file copying or one-off project setup.

Install

copier on PyPI

pip

pip install copier

uv

uv add copier

poetry

poetry add copier

Installing copier

Before you install

Low install friction with a pure-Python wheel distribution. Active maintenance with a release 10 days ago and last commit on 2026-08-14. Supports Python 3.10 through 3.14, with 14 runtime dependencies including Jinja2, Pydantic, and questionary for interactive prompts.

License in practice

MIT license (permissive) means you can use, modify, and distribute Copier and projects generated from it with minimal restrictions, provided you include the license notice.

Quickstart

pip install copier

from copier import run_copy

run_copy("path/to/template", "path/to/destination")
# or from Git:
run_copy("gh:copier-org/copier.git", "path/to/destination")

Requires Python 3.10 or newer and Git 2.27 or newer installed on your system.

Verify before relying

  • Whether the package handles merge conflicts or file updates when regenerating from an evolved template.
  • Performance characteristics when processing large templates with many files or complex Jinja2 logic.
  • Whether questionary integration supports non-interactive or scripted answer provision.

Package facts

License MIT (permissive)
Python support supports the current Python release (>=3.10)
Install friction low — pure-Python wheel
Runtime dependencies 14 — colorama, dunamai, funcy, jinja2-ansible-filters, jinja2, packaging, pathspec, platformdirs, plumbum, pydantic, pygments, pyyaml, questionary, typing-extensions
Maintenance actively maintained — 10 days since the last release
Last repo commit
First released
Downloads 2,343,936/month — #3,120 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: copier-9.17.1-py3-none-any.whl

Development Status :: 5 - Production/StableIntended Audience :: DevelopersLicense :: OSI Approved :: MIT LicenseProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14

Tags

project template generatorcode scaffolding tooljinja2 template renderingproject boilerplate generatortemplate-based code generationgit template copierdynamic project creation
scaffoldingtemplate-enginecli-tool

More Build Tools packages