Version control with signed commits

A content-addressed version control system, written in Rust.

Every commit carries an Ed25519 signature that you can check against the signing key. kit names every object by its BLAKE3 hash and stores signed attestations about commits. The commands follow Git where that makes sense. The guide for Git users lists the differences.

kit is alpha software. APIs and CLI flags can change in any 0.x release.

Get started

Install the CLI

sh
$ curl kit.storage | sh

The script downloads the release archive for your platform and verifies its cosign signature. It then installs kit into ~/.local/bin.

Add the agent skill

SKILL.md teaches coding agents to use kit.

View source on GitHub(opens in a new tab)

What kit does

  • Every object ID is the BLAKE3 hash of the canonical bytes of the object.
  • Every commit carries an Ed25519 signature.
  • kit attest stores in-toto v1 Statements in DSSE envelopes. The commit hash is the subject.
  • Large files split into content-defined chunks. A small edit stores only the edit.

Explore