Skip to content

copier-everything

A Copier template that scaffolds any project with a strong, language-agnostic quality baseline and decoupled, opt-in modules. Generate once, then pull template improvements forever with copier update.

Quick start Template reference Why it's built this way

Quick start

You need uv (which provides uvx). No global install of Copier is required.

Generate a new project:

uvx copier copy --trust gh:nivintw/copier-everything path/to/new-project

Copier asks the template questions, renders the project, and — because --trust lets the post-copy tasks run (and unless you opt out) — initializes a git repo, runs uv sync, makes the first commit, and installs the prek hooks. Omit --trust and Copier just prints those steps for you to run by hand.

Later, pull template improvements into that project:

cd path/to/new-project
uvx copier update

Adopting an existing repo?

Answer no to "initialize a fresh git repo" and follow the adoption guide — copier-everything can layer its baseline onto a repo you already have.

The model in one minute

Two ideas do all the work. A language-agnostic baseline every project gets, and a set of decoupled levers you turn on only when you need them — so a shell-only dotfiles repo and a published Python package come off the same template without carrying each other's baggage.

  • The quality baseline


    Always on. prek hooks, REUSE licensing, Conventional Commits + release-please, hardened CI, Renovate, and secret/vulnerability scanning — regardless of language.

    Quality baseline

  • Template questions


    Reference. Every copier.yml question: what it asks, its type and default, and exactly what it drives in the generated project.

    Template questions

  • Modules & levers


    Opt-in. Python (source / package / publish), Ansible (collection / role / playbooks), Terraform, Docker, Helm, SQL (+ dbt), and a dev container — each gated behind one question.

    Modules & levers

  • Usage & adoption


    Guide. The copier copy / copier update flow, the canonical project shapes, and how to adopt the template into an existing repo.

    Usage & adoption

  • Design model


    Rationale. The levers model, the canonical shapes, and the decisions and trade-offs behind the template — surfaced from the project's design record.

    Design model

  • GitHub


    Source. Issues, releases, and the template source. Pin a release with copier copy --vcs-ref vX.Y.Z.

    nivintw/copier-everything

What every project gets

Area What you get
Quality gate A prek (pre-commit) hook set — formatting, linting, git hygiene, shell/YAML/TOML checks — that runs identically locally and in CI.
Licensing REUSE-compliant SPDX headers, enforced by hawkeye + reuse lint.
Releases Conventional Commits enforced by commitizen; automated versioning, changelog, and tags via release-please.
CI A reusable, hardened GitHub Actions gate; SHA-pinned and checksum-verified third-party binaries.
Dependencies Renovate keeps actions, hooks, and pinned binaries current.
Security gitleaks (secrets), zizmor (workflow audit), plus osv-scanner / trivy when the relevant modules are on.

See the quality baseline reference for the full picture.