Skip to content

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.

  • 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, plus libfuse3-dev to compile.
  • ~/.local/bin on your PATH, where the binaries are installed.
  • Optional: Claude Code (claude) for the MCP write path, wl-clipboard for the TUI’s copy-a-reveal key on Wayland, and jq for softfig growlight start.

Only Linux with systemd is exercised today, and the install script assumes both.

Terminal window
git clone https://github.com/ukVee/software-config-garden.git
cd software-config-garden

Keep this checkout separate from the garden you’ll scaffold.

Terminal window
./scripts/onboard-device.sh

The 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-keeperd systemd user unit;
  • registering softfig-mcp with Claude Code (claude mcp add).

The by-hand equivalent of the build and install:

Terminal window
cargo build --release
install -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 repo ships two user units in packaging/systemd/:

  • softfig-keeperd.service, which the script installs. The daemon starts locked; softfig daemon unlock opens it. ExecStart assumes ~/.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’s config/growlight.toml arms 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.

Terminal window
cargo test --workspace
cargo clippy --workspace --all-targets -- -D warnings

Prebuilt binaries, distro packages (AUR and others), a one-command installer and softfig upgrade are planned; none exist today.

Next: Your first garden.