Install
soft-fig is in alpha and has no prebuilt binaries or distro packages, so you build
from source: clone, build, copy the binaries onto your PATH. Installing gives
you the program only, never anyone else’s garden content; each machine grows its
own. Your first garden turns the install into a garden.
Prerequisites
Section titled “Prerequisites”- Rust 1.88 or newer (the workspace is edition 2024), via rustup.
protoc, the protobuf compiler, at build time. Arch:sudo pacman -S protobuf; Debian/Ubuntu:protobuf-compiler.- FUSE 3, which serves the decrypted garden. Arch:
sudo pacman -S fuse3; Debian/Ubuntu:fuse3, pluslibfuse3-devto compile. ~/.local/binon yourPATH, where the binaries are installed.- Optional: Claude Code (
claude) for the MCP write path,wl-clipboardfor the TUI’s copy-a-reveal key on Wayland, andjqforsoftfig growlight start.
Only Linux with systemd is exercised today, and the install script assumes both.
1. Clone
Section titled “1. Clone”git clone https://github.com/ukVee/software-config-garden.gitcd software-config-gardenKeep this checkout separate from the garden you’ll scaffold.
2. Build and install
Section titled “2. Build and install”./scripts/onboard-device.shThe script checks for FUSE, runs cargo build --release, and installs the
binaries to ~/.local/bin. It then asks before two reversible steps, printing
the exact command if you decline:
- installing and enabling the
softfig-keeperdsystemd user unit; - registering
softfig-mcpwith Claude Code (claude mcp add).
The by-hand equivalent of the build and install:
cargo build --releaseinstall -m0755 \ target/release/{softfig,softfig-keeperd,softfig-mcp,softfig-tui,softfig-growlightd} \ ~/.local/bin/| Binary | What it is |
|---|---|
softfig |
the CLI |
softfig-keeperd |
the per-device daemon: owns writes, serves the FUSE mount |
softfig-mcp |
the MCP bridge that lets a Claude session write through the daemon’s typed verbs |
softfig-tui |
a terminal UI over the daemon |
softfig-growlightd |
the Growlight fleet daemon; only used if you run the loop |
growlight-gui, an experimental fleet console, is not in the default build. It
needs cargo build --release -p softfig-growlight-gui --features gui.
The systemd units
Section titled “The systemd units”The repo ships two user units in
packaging/systemd/:
softfig-keeperd.service, which the script installs. The daemon starts locked;softfig daemon unlockopens it.ExecStartassumes~/.local/bin/softfig-keeperd --garden ~/soft-fig_garden, so edit it if your garden lives elsewhere.softfig-growlightd.service, which the script does not install. It has no[Install]section on purpose: keeperd starts it on unlock, only when the garden’sconfig/growlight.tomlarms the fleet. Copy it next to the keeperd unit if you want it; see Running Growlight.
The units carry no sandboxing options on purpose; they would break the FUSE
mount. If softfig daemon unlock fails with Operation not permitted, see the
troubleshooting notes.
Verify the build (optional)
Section titled “Verify the build (optional)”cargo test --workspacecargo clippy --workspace --all-targets -- -D warningsNot available yet
Section titled “Not available yet”Prebuilt binaries, distro packages (AUR and others), a one-command installer and
softfig upgrade are planned; none exist today.
Next: Your first garden.