Root Overview
Deterministic CLI tool installs with undo — without learning Nix.
Root is a curated, Nix-backed package manager for developer CLI tools. You declare intent in a Rootfile; Root pins exact Nix store paths in root.lock, snapshots before every mutation, and installs to an isolated profile.
Core loop: Declare → Pin → Apply → Undo
What it does
- Browse a curated catalog of 42 developer tools
- Preview changes with
root planbefore applying - Pin exact versions in
root.lockfor reproducibility - Verify installed binaries in an isolated profile
- Roll back any change with
root rollback --last
Key features
| Feature | Description |
|---|---|
| Deterministic lock | root.lock pins Nix store paths |
| Undo anything | Pre-mutation snapshots restore locked state |
| Verified installs | Binaries checked in Root profile, not global PATH |
| Agent bundles | Transfer Codex, OpenCode, or Claude config between machines |
| JSON output | Every command supports --json for agents |
| Sandboxes | Docker-based isolated task execution |
Comparison
| Capability | Root | brew | curl | sh | raw Nix |
|---|---|---|---|---|
| Deterministic lock | Yes | No | No | Manual |
| Undo | Yes | No | No | Manual |
| Post-install verify | Yes | No | No | No |
| No Nix to learn | Yes | Yes | Yes | No |
Tech stack
- Language: Rust
- Engine: Nix (Determinate installer offered if missing)
- Platforms: macOS-first; Linux best-effort
- Storage:
~/.root/(Rootfile, root.lock, snapshots, profiles, event ledger) - License: Apache-2.0