Source control, reimagined

Version control where the host cannot read your code.

loot makes visibility and permissions properties of content and changes, not of the repository. Commit your .env. Keep files private inside a shared repo. Embargo a security fix, cut the release, and reveal the source later.

curl -sSf https://loot.millerbyte.com/install.sh | sh

macOS · Linux · Windows — see all install options. Installs to ~/.loot/bin; verify with loot --version.

What works today

loot is a from-scratch, encrypted-DAG source-control system that hosts its own development. The full loop, from first init to relay-based collaboration, runs now.

local
init · status · describe · new · log · surface
docks
dock · docks · dock merge
file
bundle · apply
relay
serve · push · pull
grants
grant · grant --relay · grants · pull-grants
identity
keygen · whoami · peer add · id export/import

Three things git can't do

Each is one command. Full walkthroughs live in the docs.

Commit a private .env

Declare per-file privacy in .lootattributes. The secret is sealed in a shared repo; non-keyholders carry the ciphertext and can never read it.

.env restricted=alice
Walkthrough →

Embargo a security fix

Merge the patch and cut the release now; the source stays encrypted to everyone until the reveal timestamp, then unlocks for anyone who pulls.

security-fix.txt embargoed=1800000000
Walkthrough →

Grant a key to a teammate

Hand one content key to one identity over the relay — sealed to their public key, signed by you, recorded in the audit manifest. Permissioning is key management.

loot grant --relay origin .env bob
Walkthrough →

Built with loot

loot leads its own development; git main is a downstream projection. The relay that hosts it physically cannot read the private code it stores — that claim is backed by re-runnable, committed proofs.