Nix 安裝

使用 Nix 執行 OpenClaw 的推薦方式是透過 nix-openclaw — 一個功能齊全的 Home Manager 模組。

快速開始

將以下內容貼給你的 AI agent(Claude、Cursor 等):

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.

完整指南:github.com/openclaw/nix-openclaw

nix-openclaw 儲存庫是 Nix 安裝的權威來源。這頁只是簡要概覽。

你會得到什麼

  • Gateway + macOS 應用程式 + 工具(whisper、spotify、cameras)— 全部鎖定版本
  • 能在重開機後存活的 launchd 服務
  • 具有宣告式設定的外掛系統
  • 即時回滾:home-manager switch --rollback

Nix Mode Runtime 行為

當設定 OPENCLAW_NIX_MODE=1 時(nix-openclaw 自動設定):

OpenClaw 支援 Nix mode,讓設定具有確定性並停用自動安裝流程。 透過匯出啟用:

OPENCLAW_NIX_MODE=1

在 macOS 上,GUI 應用程式不會自動繼承 shell 環境變數。你也可以 透過 defaults 啟用 Nix mode:

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

設定與狀態路徑

OpenClaw 從 OPENCLAW_CONFIG_PATH 讀取 JSON5 設定,並在 OPENCLAW_STATE_DIR 儲存可變資料。 需要時也可以設定 OPENCLAW_HOME 來控制內部路徑解析用的基礎主目錄。

  • OPENCLAW_HOME(預設優先順序:HOME / USERPROFILE / os.homedir()
  • OPENCLAW_STATE_DIR(預設:~/.openclaw
  • OPENCLAW_CONFIG_PATH(預設:$OPENCLAW_STATE_DIR/openclaw.json

在 Nix 下執行時,明確設定這些到 Nix 管理的位置,使 runtime 狀態和設定 不會進入不可變的 store。

Nix mode 下的 runtime 行為

  • 自動安裝和自我修改流程已停用
  • 缺少相依套件時會顯示 Nix 特定的修復訊息
  • UI 在存在時顯示唯讀 Nix mode 橫幅

打包備註(macOS)

macOS 打包流程期望穩定的 Info.plist 範本位於:

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

scripts/package-mac-app.sh 複製此範本到 app bundle 並修補動態欄位 (bundle ID、version/build、Git SHA、Sparkle 金鑰)。這確保 plist 對 SwiftPM 打包和 Nix 建置(不依賴完整 Xcode toolchain)具有確定性。

相關資源