Aller au contenu

Nix

Installez OpenClaw de manière déclarative avec nix-openclaw — un module Home Manager tout-en-un.

  • Gateway + application macOS + outils (whisper, spotify, cameras) — tous épinglés
  • Service launchd qui survive aux redémarrages
  • Système de plugins avec configuration déclarative
  • Retour immédiat (rollback) : home-manager switch --rollback
  1. Install Determinate Nix

    If Nix is not already installed, follow the Determinate Nix installer instructions.

  2. Create a local flake

    Use the agent-first template from the nix-openclaw repo: bash mkdir -p ~/code/openclaw-local # Copy templates/agent-first/flake.nix from the nix-openclaw repo

  3. Configure secrets

    Set up your messaging bot token and model provider API key. Plain files at ~/.secrets/ work fine.

  4. Fill in template placeholders and switch

    bash home-manager switch

  5. Vérifier

    Confirmez que le service launchd est en cours d’exécution et que votre bot répond aux messages.

Voir le README nix-openclaw pour les options complètes du module et des exemples.

Lorsque OPENCLAW_NIX_MODE=1 est défini (automatique avec nix-openclaw), OpenClaw entre dans un mode déterministe qui désactive les flux d’installation automatique.

Vous pouvez également le définir manuellement :

Fenêtre de terminal
export OPENCLAW_NIX_MODE=1

Sur macOS, l’application graphique n’hérite pas automatiquement des variables d’environnement du shell. Activez plutôt le mode Nix via les valeurs par défaut :

Fenêtre de terminal
defaults write ai.openclaw.mac openclaw.nixMode -bool true
  • Les flux d’auto-installation et d’auto-mutation sont désactivés
  • Les dépendances manquantes affichent des messages de correction spécifiques à Nix
  • L’interface utilisateur affiche une bannière en lecture seule du mode Nix

OpenClaw lit la configuration JSON5 depuis OPENCLAW_CONFIG_PATH et stocke les données modifiables dans OPENCLAW_STATE_DIR. Lorsqu’il fonctionne sous OpenClaw, définissez-les explicitement sur des emplacements gérés par Nix afin que l’état d’exécution et la configuration restent en dehors du stockage immuable.

VariablePar défaut
OPENCLAW_HOMEHOME / USERPROFILE / os.homedir()
OPENCLAW_STATE_DIR~/.openclaw
OPENCLAW_CONFIG_PATH$OPENCLAW_STATE_DIR/openclaw.json