使用 Nix 安装和运行 OpenClaw:一套可复现的 macOS 自动化环境

在本地运行 AI 自动化工具时,很多人都会遇到几个常见问题:

  • 依赖版本混乱

  • 环境配置复杂

  • 系统更新后环境损坏

  • 服务重启后无法自动恢复

使用 Nix 可以很好地解决这些问题。
家兴网络介绍如何通过 nix-openclaw 在 macOS 上搭建一个 稳定、可复现、可回滚的 OpenClaw 环境

使用-Nix-安装和运行-OpenClaw:一套可复现的-macOS-自动化环境.png

这也是官方推荐的运行方式之一。


一、什么是 nix-openclaw

nix-openclaw 是一个为 OpenClaw 提供的 Home Manager 模块,可以通过 Nix 声明式配置来安装和管理 OpenClaw。

它的特点是:

  • 所有依赖版本固定

  • 环境可复现

  • 系统重启后自动运行

  • 支持一键回滚配置

项目仓库:

github.com/openclaw/nix-openclaw


二、使用 Nix 运行 OpenClaw能获得什么

通过 nix-openclaw 部署后,你会得到一整套稳定运行环境:

1)完整工具环境

包含:

  • OpenClaw Gateway 网关

  • macOS 客户端

  • whisper 语音工具

  • spotify 控制

  • cameras 摄像头工具

全部由 Nix 固定版本管理。


2)Launchd 服务自动运行

OpenClaw 会作为 macOS Launchd 服务运行。

即使电脑重启,服务仍然可以自动恢复。


3)声明式插件配置

所有插件和依赖都写在配置中,例如:

  • bot token

  • API key

  • 插件启用状态

配置文件就是系统状态。


4)即时回滚

如果配置出现问题,可以直接回滚:

home-manager switch --rollback

系统会恢复到上一个稳定版本。


三、快速开始部署

下面是一种比较推荐的初始化方式。

你可以将下面的步骤交给 AI 工具(例如 Claude、Cursor)自动执行。


第一步:准备安装任务

告诉 AI 执行以下操作:

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, Anthropic 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

AI 会自动完成整个环境初始化流程。


四、创建 Telegram Bot

OpenClaw 的很多功能依赖 Telegram Bot。

创建流程如下:

1 创建机器人

在 Telegram 中打开:

@BotFather

发送:

/start
/newbot

按照提示设置:

  • bot 名称

  • bot 用户名

创建完成后会获得 Bot Token


2 获取 Chat ID

打开:

@userinfobot

发送任意消息即可获取:

chat_id

这个 ID 将用于 OpenClaw 通信。


五、配置 Secrets

建议把敏感信息放到本地 secrets 目录。

例如:

~/.secrets/

示例结构:

~/.secrets/
 ├─ telegram-token
 ├─ anthropic-key

内容示例:

telegram-token
123456:AAxxxxxx

anthropic-key
sk-ant-xxxx

然后在 nix-openclaw 配置中引用这些文件。


六、启用 Nix 模式

nix-openclaw 会自动启用 Nix Mode

核心环境变量:

OPENCLAW_NIX_MODE=1

在该模式下:

  • 自动安装流程会被禁用

  • 所有依赖由 Nix 管理

  • 系统环境保持完全确定性


七、macOS GUI 环境变量问题

macOS GUI 应用默认不会继承 shell 的环境变量。

因此需要手动启用:

defaults write bot.molt.mac openclaw.nixMode -bool true

这样 OpenClaw GUI 就能正确识别 Nix Mode。


八、配置路径和状态目录

OpenClaw 使用两个关键路径:

变量说明
OPENCLAW_STATE_DIR运行时数据目录
OPENCLAW_CONFIG_PATH配置文件路径

默认值:

OPENCLAW_STATE_DIR=~/.openclaw
OPENCLAW_CONFIG_PATH=$OPENCLAW_STATE_DIR/openclaw.json

在 Nix 环境中通常会显式指定,以避免写入不可变存储。


九、Nix 模式下的运行行为

启用 Nix Mode 后,OpenClaw 的行为会有所变化:

1 自动安装被禁用

所有依赖必须通过 Nix 管理。


2 缺少依赖时会提示 Nix 修复信息

例如:

Dependency missing.
Install via nix-openclaw module.

3 UI 显示只读模式

客户端界面会显示 Nix Mode 标识,提示配置由系统管理。


十、macOS 打包注意事项

OpenClaw 的 macOS 打包依赖一个固定模板:

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

打包脚本:

scripts/package-mac-app.sh

这个脚本会:

  • 复制 Info.plist 模板

  • 写入动态字段

例如:

  • bundle ID

  • 版本号

  • Git SHA

  • Sparkle 更新密钥

这样可以确保:

  • SwiftPM 构建稳定

  • Nix 构建可复现

  • 不依赖完整 Xcode 环境


十一、总结

通过 nix-openclaw 运行 OpenClaw,可以获得一个更加稳定和可控的 AI 自动化环境:

  • 环境可复现

  • 依赖版本固定

  • 系统更新不会破坏配置

  • 服务自动运行

  • 出现问题可以立即回滚

对于长期运行自动化 Agent 或 AI Bot 的用户来说,Nix 模式是一种非常值得尝试的部署方式


如果你正在搭建自己的 AI 自动化工具链,可以考虑把 OpenClaw + Nix 作为基础架构的一部分。

它的最大优势不是“方便”,而是 长期稳定运行的确定性

作者王家兴头像

王家兴

资深网络营销顾问,8年数字营销经验,曾为多家知名企业提供网站建设、搜索引擎优化、短视频营销、GEO AI营销服务,擅长内容策略规划。