Установка с Nix

Рекомендуемый способ запуска OpenClaw с Nix — через nix-openclaw — модуль Home Manager с полным набором возможностей.

Быстрый старт

Вставьте это вашему AI-агенту (Claude, Cursor и т.д.):

Я хочу настроить nix-openclaw на моём Mac.
Репозиторий: github:openclaw/nix-openclaw

Что мне нужно, чтобы ты сделал:
1. Проверь, установлен ли Determinate Nix (если нет, установи его)
2. Создай локальный flake по адресу ~/code/openclaw-local, используя templates/agent-first/flake.nix
3. Помоги мне создать Telegram-бота (@BotFather) и получить мой chat ID (@userinfobot)
4. Настрой секреты (токен бота, ключ Anthropic) - обычные файлы в ~/.secrets/ подходят
5. Заполни заполнители шаблона и запусти home-manager switch
6. Проверь: launchd запущен, бот отвечает на сообщения

Сошлись на README nix-openclaw для опций модуля.

📦 Полное руководство: github.com/openclaw/nix-openclaw

Репозиторий nix-openclaw — это источник истины для установки с Nix. Эта страница — просто краткий обзор.

Что вы получите

  • Gateway + приложение macOS + инструменты (whisper, spotify, cameras) — всё закреплено
  • Сервис Launchd, который переживает перезагрузки
  • Система плагинов с декларативной конфигурацией
  • Мгновенный откат: home-manager switch --rollback

Поведение во время выполнения в режиме Nix

Когда установлен OPENCLAW_NIX_MODE=1 (автоматически с nix-openclaw):

OpenClaw поддерживает режим Nix, который делает конфигурацию детерминированной и отключает потоки автоустановки. Включите его, экспортировав:

OPENCLAW_NIX_MODE=1

В macOS GUI-приложение не наследует автоматически переменные окружения оболочки. Вы также можете включить режим Nix через defaults:

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

Пути конфигурации + состояния

OpenClaw читает конфигурацию JSON5 из OPENCLAW_CONFIG_PATH и хранит изменяемые данные в OPENCLAW_STATE_DIR.

  • 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 копирует этот шаблон в пакет приложения и исправляет динамические поля (bundle ID, версия/сборка, Git SHA, ключи Sparkle). Это сохраняет plist детерминированным для упаковки SwiftPM и сборок Nix (которые не полагаются на полный набор инструментов Xcode).

Связанное

  • nix-openclaw — полное руководство по настройке
  • Wizard — настройка CLI без Nix
  • Docker — контейнеризованная настройка