Skip to content

Installation

git-tpl is a single binary with no runtime dependencies. libgit2 is compiled into it, so there is nothing to install alongside.

With Homebrew

brew install noirbizarre/tap/git-tpl

The formula lives in noirbizarre/homebrew-tap rather than homebrew-core, and installs the prebuilt release binary — no Rust toolchain involved.

macOS on Apple silicon and on Intel, and Linux on x86-64. Homebrew on Linux arm64 is not covered: there is no statically linked aarch64 build yet, and a glibc-linked one would fail to load on the distributions Homebrew is most used on.

On Arch Linux

Two packages on the AUR, differing only in whether your machine or GitHub's does the compiling:

paru -S git-tpl-bin

Repackages the release archive for your architecture — no Rust toolchain involved.

paru -S git-tpl

Builds from the tagged source against the Cargo.lock this project commits, and runs the test suite before packaging. For people who would rather not run someone else's binary.

Both cover x86-64 and aarch64. They deliberately conflict — both install /usr/bin/git-tpl — so pick one, and your AUR helper will offer to replace the other if it is already there.

From source

cargo install git-tpl
cargo binstall git-tpl

cargo-binstall downloads the release archive for your platform instead of compiling. Falls back to cargo install on a target with no published binary.

With mise

mise installs git-tpl globally or per project, and pins the version in mise.toml so everyone working on the project has the same one.

mise use -g cargo:git-tpl

Compiled from source, so it works on every platform mise supports — including the ones the release binaries do not cover.

mise use -g github:noirbizarre/git-tpl

No compiler needed, and mise verifies the artifact attestation and the SLSA provenance of the asset it downloads. Limited to the six published targets.

Either form puts an executable named git-tpl on your PATH through mise's shims, which is all Git needs to resolve git tpl.

The backend prefix is not optional

mise use git-tpl on its own fails: there is no entry for git-tpl in mise's registry yet, so the tool has to be named by its backend — cargo: or github:. Getting the short name is tracked in issue #25.

From a release

Download the archive for your platform from the releases page, extract it and put the binary somewhere on your PATH.

VERSION=0.4.0
curl -fsSLO \
  https://github.com/noirbizarre/git-tpl/releases/download/$VERSION/git-tpl_${VERSION}_linux-amd64.tar.gz
tar xzf git-tpl_${VERSION}_linux-amd64.tar.gz
mv git-tpl ~/.local/bin/

The archive contains a single executable named git-tpl, already marked executable — nothing to rename and no chmod to remember.

Assets are named git-tpl_<version>_<platform>.tar.gz, and git-tpl_<version>_windows-amd64.zip on Windows, so latest/download/ cannot be used without knowing the version — set VERSION to the release you want.

Each release also carries a SHA256SUMS file covering the archives:

curl -fsSLO https://github.com/noirbizarre/git-tpl/releases/download/$VERSION/SHA256SUMS
sha256sum --ignore-missing -c SHA256SUMS

Releases before 0.4.0

Up to 0.3.0 the assets were bare binaries named git-tpl_<version>_<platform>, with no archive and no extension. Anything pinned to those names needs updating.

Verify

The binary must be named git-tpl and be on your PATH. That is how Git resolves subcommands: git tpl looks for an executable called git-tpl.

git tpl --version

If that works, you are done. If git: 'tpl' is not a git command appears, the binary is either not on your PATH or not named git-tpl.

Both invocations work

git tpl update and git-tpl update are the same program. The Git form is the intended one; the direct form is handy in scripts where you would rather not depend on Git's subcommand resolution.

Development builds

git clone https://github.com/noirbizarre/git-tpl
cd git-tpl
mise run setup    # cargo install --path . --force

See Development setup.