Nix
Nix 安装
使用 Nix 运行 OpenClaw 的推荐方式是通过 nix-openclaw — 一个功能齐全的 Home Manager 模块。
快速开始
将此粘贴到你的 AI Agent(Claude、Cursor 等):
我想在我的 Mac 上设置 nix-openclaw。
仓库:github:openclaw/nix-openclaw
我需要你做什么:
1. 检查是否安装了 Determinate Nix(如果没有,安装它)
2. 在 ~/code/openclaw-local 使用 templates/agent-first/flake.nix 创建本地 flake
3. 帮助我创建 Telegram 机器人(@BotFather)并获取我的聊天 ID(@userinfobot)
4. 设置密钥(机器人令牌、模型提供商 API 密钥)— ~/.secrets/ 下的普通文件即可
5. 填写模板占位符并运行 home-manager switch
6. 验证:launchd 运行中、机器人响应消息
参考 nix-openclaw README 了解模块选项。
📦 完整指南:github.com/openclaw/nix-openclaw
nix-openclaw 仓库是 Nix 安装的真实来源。此页面只是快速概述。
你得到什么
- 网关 + macOS 应用 + 工具(whisper、spotify、cameras)— 全部固定
- 在重启后幸存的 Launchd 服务
- 带有声明式配置的插件系统
- 即时回滚:
home-manager switch --rollback
Nix 模式运行时行为
当设置 OPENCLAW_NIX_MODE=1 时(使用 nix-openclaw 时自动设置):
OpenClaw 支持Nix 模式,使配置确定性并禁用自动安装流程。 通过导出启用它:
OPENCLAW_NIX_MODE=1
在 macOS 上,GUI 应用不会自动继承 shell 环境变量。你也可以 通过 defaults 启用 Nix 模式:
defaults write ai.openclaw.mac openclaw.nixMode -bool true
配置 + 状态路径
OpenClaw 从 OPENCLAW_CONFIG_PATH 读取 JSON5 配置,并将可变数据存储在 OPENCLAW_STATE_DIR。
需要时,你还可以设置 OPENCLAW_HOME 以控制用于内部路径解析的基础 home 目录。
OPENCLAW_HOME(默认优先级:HOME/USERPROFILE/os.homedir())OPENCLAW_STATE_DIR(默认:~/.openclaw)OPENCLAW_CONFIG_PATH(默认:$OPENCLAW_STATE_DIR/openclaw.json)
在 Nix 下运行时,将这些显式设置为 Nix 管理的位置,以便运行时状态和配置 保持在不可变存储之外。
Nix 模式下的运行时行为
- 自动安装和自变异流程被禁用
- 缺少依赖时显示 Nix 特定的修复消息
- 存在时在 UI 上显示只读 Nix 模式横幅
打包说明(macOS)
macOS 打包流程期望在以下位置有稳定的 Info.plist 模板:
apps/macos/Sources/OpenClaw/Resources/Info.plist
scripts/package-mac-app.sh 将此模板复制到应用包中并修补动态字段
(包 ID、版本/构建、Git SHA、Sparkle 密钥)。这使 plist 对 SwiftPM
打包和 Nix 构建(不依赖完整 Xcode 工具链)保持确定性。
相关
- nix-openclaw — 完整设置指南
- 向导 — 非 Nix CLI 设置
- Docker — 容器化设置