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 for Nix-managed installs. Other Nix packages can set the same mode; nix-openclaw is the first-party reference.
You can also set it manually:
defaults instead:
What changes in Nix mode
- Auto-install and self-mutation flows are disabled.
openclaw.jsonis treated as immutable. Startup-derived defaults stay runtime-only, and config writers (setup, onboarding, mutatingopenclaw update, plugin install/update/uninstall/enable,doctor --fix,doctor --generate-gateway-token,openclaw config set) refuse to edit the file.- Edit the Nix source instead. For nix-openclaw, use the agent-first Quick Start and set config under
programs.openclaw.configorinstances.<name>.config. - Missing dependencies surface Nix-specific remediation messages.
- The UI shows 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. 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
Source-of-truth Home Manager module and full setup guide.
Setup wizard
Non-Nix CLI setup walkthrough.
Docker
Containerized setup as a non-Nix alternative.
Updating
Updating Home Manager-managed installs alongside the package.