The nix-openclaw repo is the source of truth for Nix installation. This page is a quick overview.
What you get
- Gateway + macOS app + tools (whisper, spotify, cameras) — all pinned
- Launchd service that survives reboots
- Plugin system with declarative config
- Instant rollback:
home-manager switch --rollback
Quick start
Install Determinate Nix
If Nix is not already installed, follow the Determinate Nix installer instructions.
Configure secrets
Set up your messaging bot token and model provider API key. Plain files at
~/.secrets/ work fine.Nix-mode runtime behavior
WhenOPENCLAW_NIX_MODE=1 is set (automatic with nix-openclaw), OpenClaw enters a deterministic mode that disables auto-install flows.
You can also set it manually:
What changes in Nix mode
- Auto-install and self-mutation flows are disabled
- Missing dependencies surface Nix-specific remediation messages
- UI surfaces a read-only Nix mode banner
Config and state paths
OpenClaw reads JSON5 config fromOPENCLAW_CONFIG_PATH and stores mutable data in OPENCLAW_STATE_DIR. When running under Nix, set these explicitly to Nix-managed locations so runtime state and config stay out of the immutable store.
| Variable | Default |
|---|---|
OPENCLAW_HOME | HOME / USERPROFILE / os.homedir() |
OPENCLAW_STATE_DIR | ~/.openclaw |
OPENCLAW_CONFIG_PATH | $OPENCLAW_STATE_DIR/openclaw.json |
Service PATH discovery
The launchd/systemd gateway service auto-discovers Nix-profile binaries so plugins and tools that shell out tonix-installed executables work without
manual PATH setup:
- When
NIX_PROFILESis set, every entry is added to the service PATH in right-to-left precedence (matches Nix shell precedence — rightmost wins). - When
NIX_PROFILESis unset,~/.nix-profile/binis added as a fallback.
Related
- nix-openclaw — full setup guide
- Wizard — non-Nix CLI setup
- Docker — containerized setup