Deterministic tools
without learning Nix.
root install pins exact store paths, verifies every binary, and lets you undo anything — locally, with a lockfile. The same machine holds agent work and local tools.
Requires Nix (installer can add it). Then root doctor.
The lock is the product.
Intent is a Rootfile. Truth is root.lock. Snapshots make undo a command, not a story you tell yourself.
VERIFIED·ripgrep pinned to the Nix store. Rollback is one command.
Snapshot first · Verify after · Click a step to inspect
One mutation. Five gates. Each one is inspectable. root install in action.
A local capability plane.
Still on your machine.
One rootd serves MCP. Connectors carry tools. Write tools wait on approval. Events hand work to a harness only through an explicit route. Checkpoint references move over a folder you choose.
Local MCP
root mcp serve shims to rootd on a mode 0600 Unix socket. Loopback HTTP is opt-in and needs a bearer token. Protocol stays 2024-11-05.
Connectors
root connector installs a content-addressed package. Credentials are names only. Write and destructive tools wait on root approval. Network and filesystem grants stay none.
Routes and references
root event pull returns a delivery already handed to a harness. It does not start an agent. root checkpoint-sync exchanges encrypted checkpoint references over a folder. root sync is still the Nix reconcile.
Mail, browser, messages, and finance are local fixtures. They do not attach to a live inbox, desktop, carrier, or bank. A payment intent is a record. It does not move money.
The environment loop.
Plan and install is the environment loop, not the whole product. Agents also get a local rootd. There is still no Root account and no hosted control plane.
// Nix required.
// Installer can add it.
curl -fsSL \
https://boringinfra.company/root/install.sh \
| sh// Preview. No writes.
root plan install ripgrep// Snapshot → install → verify
root install ripgrepYour lock stays local.
There is no Root cloud.
Rootfile, lock, snapshots, and profile live on your machine. Nix is the engine. Root is the interface. Nothing is uploaded. Nothing phones home.
// Intent, pin, undo. That's it.
const intent = "~/.root/Rootfile";
const truth = "~/.root/root.lock";Isolated profile. Append-only ledger. No Root account required.
// Nothing to send. Nowhere to send it.
if (cloud) return null;
if (telemetry) return "off";No silent upload of your lockfile. Root does not need a hosted backend.
A tool you cannot undo is a liability. Root snapshots first and shows you how to roll it back.
Plan. Apply.
Verify. Undo.
Root does not replace Nix. It hides it. You declare intent, Root pins store paths, and every mutation is reversible.
Plan
Browse the curated catalog. Preview the Nix attribute. Nothing writes until you apply.
Apply
Snapshot first. Install into an isolated profile. Verify the binary landed where Root said it would.
Undo
rollback --last restores locked state. root status shows drift.
What do you get?
A curated catalog and a lockfile you can read sit under a local capability plane, and an undo button remains for the parts of your machine that used to be irreversible.
Undo anything
Every mutation snapshots first. rollback --last restores locked state.
Verified installs
Binaries are checked in the Root profile. Never global PATH.
Deterministic lock
Curated Nix attributes become pinned store paths in root.lock.
Start pinning for real this time
Install the CLI. Plan before you mutate. The lock lives on your machine.
Then root doctor. Then root catalog. Then root mcp status.