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)具有確定性。
相關資源
- nix-openclaw — 完整設定指南
- 設定精靈 — 非 Nix 的 CLI 設定
- Docker — 容器化設定