latestReleases for Linux, macOS and Windows

Project templates that keep growing after you use them.

Create a project from a versioned git template. Update it to every new version with a real three-way merge. One Rust binary, no Python.

cargo install rootstock --locked

One binary, no runtime

Written in Rust. Linux, macOS and Windows. It needs only git on PATH.

Real updates

A three-way merge through git merge-file. Only edits that truly overlap become conflicts.

Nothing lost silently

Every case that needs a person is a conflict and exit code 2. CI only has to read the code.

How updates work

Your edits stay, the template's improvements arrive

The old and the new template versions are both rendered with the project's answers, and only the difference is merged into the project.

Basethe recorded version, your answers
Targetthe new tag, your answers
git merge-fileinto your project, path by path
Clean or conflictsexit code 0 or 2
The full rules

Compared

Copier's model, without Python

rootstockCopiercargo-generatekickstart
Runtimesingle binaryPythonsingle binarysingle binary
TemplatesJinja (minijinja)Jinja2LiquidTera
Updates generated projectsthree-waythree-way✗ creation only✗ creation only
Conflicts as an exit code2✗ markers only——

Checked in October 2026.

Coming from Copier

One command, old tags included

Converts a Copier template, a Copier-generated project, or both in one run. It writes nothing unless the whole conversion succeeds, and old template tags are read as they are.

rootstock import-copier
What it converts

Install

Get it

cargo install rootstock --locked

Every release lists the checksums in SHA256SUMS. rootstock needs git on PATH.