- Home
- Code Generators
- Copier
Copier
What it is
Copier is a free, open-source library and command-line app for rendering project templates into files and directory structures. It accepts local template paths and Git URLs, including GitHub and GitLab shortcuts. Questionnaires gather answers that guide project generation. Copier uses Jinja2 for files ending in .jinja, or another suffix configured by the template. Generated projects can be updated as templates change when the template supports updates, while existing files remain untouched unless overwriting is requested. You can run Copier from its CLI or through Python functions such as run_copy. Documented platforms are API, Linux, macOS, and Windows, with Python listed as the supported language. Installation documentation lists Python 3.10 or newer and Git 2.27 or newer, plus pipx, uv, pip, conda-forge, and Homebrew methods. Jinja extensions, migrations, and tasks are disabled until explicitly trusted because they can execute arbitrary code. Updates may leave conflict markers or .rej files for manual review. The project uses the MIT license.
For and against
For
- Free open-source library and CLI
- Local paths and Git URLs supported
- Questionnaires generate project structures
- Python API available
- Avoids overwriting existing files by default
Against
- Requires Python 3.10 or newer
- Requires Git 2.27 or newer
- Template updates may create conflicts
- Some templates do not support updates
The verdict
Copier combines template questionnaires, Jinja rendering, and project updating in one CLI and Python library. Its trust controls and manual conflict review are important considerations for template-driven workflows.
Who it suits
Copier suits template creators reducing repeated coding and developers starting or evolving projects from templates. It fits users working with Python and Git-based workflows.
Plans and prices
Copier
Open-source library and CLI for rendering project templates
Read 5 Oct 2026 · github.com
On the record
- File handling
- Copier avoids overwriting existing files unless instructed to do so.copier.readthedocs.io · read 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 · read 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 · read 5 Oct 2026
- License
- The project’s GitHub repository identifies its license as MIT.github.com · read 5 Oct 2026
- Project creation
- Template questionnaires collect answers that Copier uses to generate project files and directory structures.copier.readthedocs.io · read 5 Oct 2026
- Project updates
- Copier can update generated projects from evolving templates, though not all templates support updates.copier.readthedocs.io · read 5 Oct 2026
- Purpose
- Copier is a library and command-line app for rendering project templates.copier.readthedocs.io · read 5 Oct 2026
- Python API
- Copier can be used programmatically through Python functions such as run_copy.copier.readthedocs.io · read 5 Oct 2026
- Rendering
- Copier uses Jinja2 to render files with the .jinja suffix or a configured alternative suffix.copier.readthedocs.io · read 5 Oct 2026
- Requirements
- The documentation lists Python 3.10 or newer and Git 2.27 or newer as installation prerequisites.copier.readthedocs.io · read 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 · read 5 Oct 2026
- Template input
- It works with local paths and Git URLs, including GitHub and GitLab URL shortcuts.copier.readthedocs.io · read 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 · read 5 Oct 2026