Installation via Nix

La methode recommandee pour executer OpenClaw avec Nix est nix-openclaw — un module Home Manager tout compris.

Demarrage rapide

Collez ceci a votre agent IA (Claude, Cursor, etc.) :

I want to set up nix-openclaw on my Mac.
Repository: github:openclaw/nix-openclaw

What I need you to do:
1. Check if Determinate Nix is installed (if not, install it)
2. Create a local flake at ~/code/openclaw-local using templates/agent-first/flake.nix
3. Help me create a Telegram bot (@BotFather) and get my chat ID (@userinfobot)
4. Set up secrets (bot token, model provider API key) - plain files at ~/.secrets/ is fine
5. Fill in the template placeholders and run home-manager switch
6. Verify: launchd running, bot responds to messages

Reference the nix-openclaw README for module options.

📦 Guide complet : github.com/openclaw/nix-openclaw

Le depot nix-openclaw est la reference pour l’installation via Nix. Cette page n’est qu’un apercu rapide.

Ce que vous obtenez

  • Passerelle + app macOS + outils (whisper, spotify, cameras) — le tout epingle
  • Service launchd qui survit aux redemarrages
  • Systeme de plugins avec configuration declarative
  • Rollback instantane : home-manager switch --rollback

Comportement du runtime en mode Nix

Quand OPENCLAW_NIX_MODE=1 est defini (automatique avec nix-openclaw) :

OpenClaw supporte un mode Nix qui rend la configuration deterministe et desactive les flux d’auto-installation. Activez-le en exportant :

OPENCLAW_NIX_MODE=1

Sur macOS, l’app graphique n’herite pas automatiquement des variables d’environnement du shell. Vous pouvez aussi activer le mode Nix via defaults :

defaults write ai.openclaw.mac openclaw.nixMode -bool true

Chemins de configuration et d’etat

OpenClaw lit la configuration JSON5 depuis OPENCLAW_CONFIG_PATH et stocke les donnees mutables dans OPENCLAW_STATE_DIR. Au besoin, vous pouvez aussi definir OPENCLAW_HOME pour controler le repertoire de base utilise pour la resolution des chemins internes.

  • OPENCLAW_HOME (priorite par defaut : HOME / USERPROFILE / os.homedir())
  • OPENCLAW_STATE_DIR (par defaut : ~/.openclaw)
  • OPENCLAW_CONFIG_PATH (par defaut : $OPENCLAW_STATE_DIR/openclaw.json)

Sous Nix, definissez-les explicitement vers des emplacements geres par Nix pour que l’etat d’execution et la configuration restent en dehors du store immuable.

Comportement d’execution en mode Nix

  • Les flux d’auto-installation et d’auto-mutation sont desactives
  • Les dependances manquantes affichent des messages de remediation specifiques a Nix
  • L’interface affiche une banniere mode Nix en lecture seule quand present

Note sur le packaging (macOS)

Le flux de packaging macOS s’attend a un template Info.plist stable a :

apps/macos/Sources/OpenClaw/Resources/Info.plist

scripts/package-mac-app.sh copie ce template dans le bundle de l’app et patche les champs dynamiques (bundle ID, version/build, Git SHA, cles Sparkle). Cela garde le plist deterministe pour le packaging SwiftPM et les builds Nix (qui ne reposent pas sur une toolchain Xcode complete).

Voir aussi