Copier

What Copier is
Copier is a free, open-source library and command-line tool for creating projects from templates. Choose a template from a local path or a Git URL, including GitHub and GitLab shortcuts. A questionnaire gathers project-specific answers, which Copier uses to render files and build the resulting directory structure. It uses Jinja2 for files ending in `.jinja`, or a different suffix configured for the template.
Copier can also update a generated project as its source template changes, provided that template supports updates. It avoids replacing existing files unless you tell it to do so. Developers can use the CLI or call Python functions such as `run_copy`. The project lists API, Linux, macOS and Windows platforms, and Python as a supported language. Its documentation lists Python 3.10 or newer and Git 2.27 or newer as installation prerequisites, with installation routes including pipx, uv, pip, conda-forge and Homebrew. The GitHub repository identifies the project’s license as MIT. Jinja extensions, migrations and tasks can execute arbitrary code, so Copier disables them by default until explicitly trusted. Updates may leave inline conflict markers or `.rej` files that need manual review.
Who it suits
Copier suits template creators who want to reduce repeated coding, and developers who want to start projects from a template. It can also suit teams that evolve generated projects alongside their templates, when the template supports updates.
What it does well
- Creates project files and directories from template answers.
- Accepts local templates and Git URLs.
- Offers both CLI and Python API use.
- Can update projects from evolving templates.
- Free and open source under the MIT license.
What to know first
- Project updates depend on template support.
- Updates may require manual review of conflicts.
- Jinja extensions, migrations and tasks require explicit trust.
Limits
Copier is free. Project updates require template support and can produce conflict markers or `.rej` files for manual review; code-executing Jinja extensions, migrations and tasks are disabled by default and require explicit trust.
Plans
| Plan | Billed and limits | Price |
|---|---|---|
| Copier | Open-source library and CLI for rendering project templates | Free |
As copier.readthedocs.io lists them, read 5 Oct 2026. The maker's own page has the final word.
Getting started
- Review the installation prerequisites: Python 3.10 or newer and Git 2.27 or newer.
- Choose an installation route such as pipx, uv, pip, conda-forge or Homebrew; Homebrew is listed for macOS and Linux.
- Select a template from a local path or Git URL.
- Answer the template questionnaire to generate project files and directories.
- Explicitly trust any Jinja extensions, migrations or tasks you intend to enable.
Verdict
Choose Copier if you want a free, open-source way to generate projects from local or Git-hosted templates, with CLI and Python API options. Consider the update workflow carefully if you need projects to track a template, since not all templates support updates and conflicts may require manual review.
Questions
Is Copier free?
Yes. Its listed plan is 0.00 USD, and it is open source.
Which platforms does Copier support?
The listed platforms are API, Linux, macOS and Windows.
Can I use Copier from Python?
Yes. Copier can be used programmatically through Python functions such as `run_copy`.
What are the installation prerequisites?
The documentation lists Python 3.10 or newer and Git 2.27 or newer.
What license does Copier use?
The project’s GitHub repository identifies its license as MIT.
Can Copier update an existing generated project?
It can update generated projects from evolving templates when the template supports updates. Conflicts may need manual review.
Facts from Copier's own pages
- File handling
- Copier avoids overwriting existing files unless instructed to do so. · copier.readthedocs.io, 5 Oct 2026
- Install methods
- The docs list pipx, uv, pip, conda-forge, and Homebrew installation methods; Homebrew is listed for macOS or Linux. · copier.readthedocs.io, 5 Oct 2026
- Intended users
- Copier describes template creators who want to reduce repeated coding and template consumers who want to start projects quickly or evolve them comfortably. · copier.readthedocs.io, 5 Oct 2026
- License
- The project’s GitHub repository identifies its license as MIT. · github.com, 5 Oct 2026
- Project creation
- Template questionnaires collect answers that Copier uses to generate project files and directory structures. · copier.readthedocs.io, 5 Oct 2026
- Project updates
- Copier can update generated projects from evolving templates, though not all templates support updates. · copier.readthedocs.io, 5 Oct 2026
- Purpose
- Copier is a library and command-line app for rendering project templates. · copier.readthedocs.io, 5 Oct 2026
- Python API
- Copier can be used programmatically through Python functions such as run_copy. · copier.readthedocs.io, 5 Oct 2026
- Rendering
- Copier uses Jinja2 to render files with the .jinja suffix or a configured alternative suffix. · copier.readthedocs.io, 5 Oct 2026
- Requirements
- The documentation lists Python 3.10 or newer and Git 2.27 or newer as installation prerequisites. · copier.readthedocs.io, 5 Oct 2026
- Security
- Jinja extensions, migrations, and tasks can execute arbitrary code, so these features are disabled by default and require explicit trust. · copier.readthedocs.io, 5 Oct 2026
- Template input
- It works with local paths and Git URLs, including GitHub and GitLab URL shortcuts. · copier.readthedocs.io, 5 Oct 2026
- Update conflicts
- Project updates can produce inline conflict markers or .rej files, which the docs say should be reviewed manually. · copier.readthedocs.io, 5 Oct 2026
Where Copier stands on Freedom251
- Code Generators#8 of 33