Nix 安装

Nix 安装

适用范围

使用本页面当:

  • 您想要可重现、可回滚的安装
  • 您已经在使用 Nix/NixOS/Home Manager
  • 您希望所有内容都被固定并声明式管理

使用 Nix 运行 Moltbot 的推荐方式是通过 nix-moltbot — 一个开箱即用的 Home Manager 模块。

快速开始

将其粘贴到您的 AI agent(Claude、Cursor 等):

我想在我的 Mac 上设置 nix-moltbot。
仓库:github:moltbot/nix-moltbot

我需要你做的:
1. 检查是否安装了 Determinate Nix(如果没有,安装它)
2. 使用 templates/agent-first/flake.nix 在 ~/code/moltbot-local 创建一个本地 flake
3. 帮助我创建一个 Telegram bot (@BotFather) 并获取我的聊天 ID (@userinfobot)
4. 设置密钥(bot token、Anthropic key)- ~/.secrets/ 中的纯文件就可以了
5. 填写模板占位符并运行 home-manager switch
6. 验证:launchd 运行中,bot 响应消息

参考 nix-moltbot README 了解模块选项。

📦 完整指南:github.com/moltbot/nix-moltbot

nix-moltbot 仓库是 Nix 安装的真相来源。本页面只是一个快速概述。

您将获得

  • 网关 + macOS 应用 + 工具(whisper、spotify、cameras)— 全部固定
  • 在重启后存活的 launchd 服务
  • 带有声明式配置的插件系统
  • 即时回滚:home-manager switch --rollback

Nix 模式运行时行为

当设置 MOLTBOT_NIX_MODE=1 时(nix-moltbot 自动设置):

Moltbot 支持 Nix 模式,使配置确定性并禁用自动安装流程。 通过导出来启用它:

MOLTBOT_NIX_MODE=1

在 macOS 上,GUI 应用不会自动继承 shell 环境变量。您也可以通过 defaults 启用 Nix 模式:

defaults write com.moltbot.mac moltbot.nixMode -bool true

配置 + 状态路径

Moltbot 从 MOLTBOT_CONFIG_PATH 读取 JSON5 配置并将可变数据存储在 MOLTBOT_STATE_DIR 中。

  • MOLTBOT_STATE_DIR(默认:~/.moltbot
  • MOLTBOT_CONFIG_PATH(默认:$MOLTBOT_STATE_DIR/moltbot.json

在 Nix 下运行时,将这些显式设置为 Nix 管理的位置,以便运行时状态和配置保持在不可变存储之外。

Nix 模式下的运行时行为

  • 自动安装和自我变异流程被禁用
  • 缺少依赖项会显示特定于 Nix 的修复消息
  • UI 在存在时显示只读 Nix 模式横幅

打包说明(macOS)

macOS 打包流程期望在以下位置有一个稳定的 Info.plist 模板:

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

scripts/package-mac-app.sh 将此模板复制到应用包中并修补动态字段 (bundle ID、版本/构建、Git SHA、Sparkle 键)。这使 plist 对 SwiftPM 打包和 Nix 构建(不依赖完整的 Xcode 工具链)具有确定性。

相关