跳到主要内容

Nix 安装

使用 Nix 运行 Clawdbot 的推荐方式是通过 nix-clawdbot —— 一个功能齐全的 Home Manager 模块。

快速开始

将此内容粘贴给你的 AI 代理(Claude, Cursor 等):

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

我需要你做以下事情:
1. 检查是否安装了 Determinate Nix(如果没有,请安装它)
2. 使用 templates/agent-first/flake.nix 在 ~/code/clawdbot-local 创建一个本地 flake
3. 帮我创建一个 Telegram 机器人 (@BotFather) 并获取我的聊天 ID (@userinfobot)
4. 设置机密信息(机器人令牌、Anthropic 密钥)- 使用 ~/.secrets/ 下的普通文件即可
5. 填充模板占位符并运行 home-manager switch
6. 验证:launchd 正在运行,机器人能够响应消息

参考 nix-clawdbot 的 README 以获取模块选项。

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

nix-clawdbot 仓库是 Nix 安装的权威来源。此页面仅作为快速概览。

你将获得什么

  • 网关 + macOS 应用 + 工具 (whisper, spotify, cameras) —— 全部版本固定
  • 能够在重启后自动启动的 Launchd 服务
  • 具有声明式配置的插件系统
  • 即时回滚:home-manager switch --rollback

Nix 模式运行时行为

当设置了 CLAWDBOT_NIX_MODE=1 时(nix-clawdbot 自动设置):

Clawdbot 支持 Nix 模式,该模式使配置具有确定性并禁用自动安装流程。 通过导出以下内容来启用它:

export CLAWDBOT_NIX_MODE=1

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

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

配置 + 状态路径

Clawdbot 从 CLAWDBOT_CONFIG_PATH 读取 JSON5 配置,并将可变数据存储在 CLAWDBOT_STATE_DIR 中。

  • CLAWDBOT_STATE_DIR (默认: ~/.clawdbot)
  • CLAWDBOT_CONFIG_PATH (默认: $CLAWDBOT_STATE_DIR/clawdbot.json)

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

Nix 模式下的运行时行为

  • 禁用自动安装和自我修改流程
  • 缺失的依赖项会显示 Nix 特有的修复提示消息
  • UI 在存在时会显示只读的 Nix 模式横幅

打包说明 (macOS)

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

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

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

相关链接