Install OpenClaw declaratively with nix-openclaw - the first-party, batteries-included Home Manager module.Documentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
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:
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 such as setup, onboarding, mutatingopenclaw update, plugin install/update/uninstall/enable,doctor --fix,doctor --generate-gateway-token, andopenclaw config setrefuse to edit the file.- Agents should 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
- 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
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.