Руководство, ИИ и автоматизация

Как запустить self-hosted NanoClaw 24/7 на выделенном Mac mini

NanoClaw, это ИИ-ассистент с открытым исходным кодом (MIT, 30 тыс.+ звёзд), который отвечает вам из WhatsApp, Telegram, Discord, Slack, iMessage и других мессенджеров и запускает каждую сессию агента в отдельном контейнере Docker, так что агенту, подвергшемуся prompt injection, нечего украсть и некуда уйти. Выделенный Mac mini даёт ему постоянно работающий дом на Apple Silicon с полным root, SSH и VNC от $85/мес.

30 минут чтения Обновлено 28 сентября 2026 г.

1. Зачем запускать NanoClaw на выделенном Mac mini?

NanoClaw отвечает только пока его хост включён и подключён к сети, об этом прямо сказано в quickstart, что исключает ноутбук, уходящий в сон. Ему нужна машина на Mac или Linux минимум с 4 ГБ ОЗУ и Docker (Docker Desktop на macOS), а описание на GitHub позиционирует его как лёгкую альтернативу OpenClaw, работающую в контейнерах ради безопасности. Общий Linux VPS может стоить дешевле Mac mini, поэтому чётко понимайте, за что вы платите: выделенный физический Mac на Apple Silicon 1:1, который никто с вами не делит, единственная платформа, где работает локальный бэкенд iMessage в NanoClaw, настоящая сессия рабочего стола для Docker Desktop и машина, которую можно заодно использовать для сборок Xcode или локальных моделей.

Параметр Облачный VPS (общий инстанс) Mac mini (MyRemoteMac)
Стоимость в месяц Зависит от размера; выделенные инстансы дороже $85/мес (M4) или $149/мес (M6), фиксированная, 1 Gbps включён
Оборудование Общие виртуализированные CPU и ОЗУ (NanoClaw указывает VM Google Compute Engine как неподдерживаемые) Выделенный физический Mac на Apple Silicon 1:1
Среда выполнения контейнеров Docker Engine на Linux Docker Desktop for Mac (те же Linux-контейнеры на каждую сессию)
iMessage (локальный бэкенд) Невозможно (только macOS) Поддерживается на Mac, вошедшем в iMessage
Доступ SSH Полный root, SSH, VNC, WireGuard VPN
Аптайм Зависит от провайдера SLA 99,9%

Что такое NanoClaw: один хост-процесс на Node.js направляет сообщения из ваших мессенджеров в контейнеры Docker, создаваемые на каждую сессию, где агенты работают на Claude Code через Claude Agent SDK от Anthropic. Никаких файлов конфигурации, кроме .env и базы данных SQLite: вы настраиваете его, прося Claude Code изменить код в вашем собственном checkout. Версия на момент написания: v2.4.0 (23 сентября 2026 г.), автор, Гавриэль Коэн (Gavriel Cohen), сопровождается NanoCo.

2. Требования

Перед началом убедитесь, что у вас есть следующее. Всё, что ниже, взято из официального README, quickstart и страниц установки NanoClaw, а также из условий Docker и Anthropic в части фактов о платформе:

  • Выделенный Mac mini от MyRemoteMac, M4 от $85/мес (16 ГБ / 256 ГБ) или Mac mini M6 от $149/мес. NanoClaw требует минимум 4 ГБ ОЗУ (установщик предупреждает при объёме ниже 3 700 МБ); любой тариф превышает этот порог с большим запасом.
  • Доступ по SSH и VNC (оба включены в подписку). VNC понадобится один раз: Docker Desktop, это приложение с графическим интерфейсом, и в первый раз его нужно запустить с рабочего стола.
  • Docker Desktop for Mac, работающий всякий раз, когда запускается NanoClaw. Условия Docker: бесплатно для личного использования, образования, некоммерческого open source и компаний менее чем с 250 сотрудниками и годовой выручкой менее US$10 млн; более крупным компаниям и государственным организациям нужна платная подписка.
  • Homebrew, git, Node.js 22+ и pnpm 10. git должен быть установлен; установщик предлагает установить Homebrew и сам устанавливает Node и pnpm, если их нет (Node 20 не поддерживается начиная с 2.3.0).
  • CLI Claude Code на Mac. Это не опционально: каждый навык /add-<channel>, /customize, /debug, /update-nanoclaw и восстановление после ошибок установщика выполняются внутри Claude Code из корня проекта.
  • Ключ API Anthropic (sk-ant-api…) из console.anthropic.com, оплата за токены. Мастер также предлагает войти через подписку Claude, но юридические условия Anthropic гласят, что OAuth предназначен для обычного использования Claude Code и нативных приложений Anthropic, а продукты на базе Agent SDK должны использовать аутентификацию по ключу API, поэтому для бизнеса или постоянно работающего развёртывания используйте ключ.
  • Аккаунт в Telegram, WhatsApp или Discord для подключения вашего агента (встроенному терминальному каналу ничего не нужно).

3. Шаг 1: Подключение по SSH, установка Docker Desktop и Claude Code

Сначала подключитесь к Mac mini по SSH с учётными данными из панели MyRemoteMac и проверьте два инструмента, которые установщик ожидает найти. Установщик NanoClaw сам установит Homebrew, Node и Docker, но предварительная установка Docker Desktop позволяет запустить его и проверить демон до того, как он понадобится мастеру.

Подключение по SSH

# Connect to your Mac mini
ssh admin@your-server-ip

# Verify you're on Apple Silicon
uname -m
# Expected output: arm64

# git is required (not auto-installed); Homebrew is offered by the installer if missing
git --version
brew --version

Установка и запуск Docker Desktop for Mac

Это в точности та команда, которую собственный скрипт NanoClaw setup/install-docker.sh выполняет на macOS, когда docker отсутствует. Docker Desktop, это настольное приложение: запустите его один раз с рабочего стола Mac через VNC, затем убедитесь по SSH, что демон отвечает. Если он не запущен в момент старта NanoClaw, хост завершается с ошибкой «FATAL: Container runtime failed to start».

# Install Docker Desktop for Mac (the same Homebrew cask NanoClaw's installer uses)
brew install --cask docker

# Start Docker Desktop, a GUI app: do the first launch from the desktop (VNC)
open -a Docker

# The daemon must answer before NanoClaw can start
docker info

Установка Claude Code на хосте

Скрипт NanoClaw setup/install-claude.sh выполняет ту же команду, когда claude отсутствует. С этого момента вы будете использовать Claude Code для каждого канала, провайдера и обновления:

# Official Claude Code installer (the command NanoClaw's setup/install-claude.sh runs)
curl -fsSL https://claude.ai/install.sh | /bin/bash
claude --version

4. Шаг 2: Установка NanoClaw и настройка ключа API Claude

NanoClaw, не npm-пакет, устанавливаемый глобально: вы клонируете репозиторий и запускаете установщик в один шаг, который превращает checkout в вашу собственную установку. После этого оставьте папку там, где она есть, метка launchd, имя образа и slug установки выводятся из её пути. Заложите 30–60 минут; мастер интерактивный.

Клонирование и запуск установщика

# Clone the canonical repo (nanocoai: the old qwibitai URL redirects here)
cd ~
git clone https://github.com/nanocoai/nanoclaw.git
cd nanoclaw

# One-shot installer: Node 22 + pnpm + Docker if missing, OneCLI gateway,
# credential registration, sandbox image, launchd service, optional channel
bash nanoclaw.sh

Мастер проводит вас через задокументированные варианты: Standard setup → Fresh agent → образ песочницы: загрузить готовый усиленный образ, собранный Echo (нужен бесплатный вход NanoClaw, около 800 МБ из единственного региона в США), или собрать его локально (3–10 минут, без аккаунта, ни к чему не обращается, из Европы или Азии может оказаться быстрее) → среда ИИ: Claude → вставьте ваш ключ API Anthropic (рекомендуется; также предлагается «Sign in with my Claude subscription», см. примечание в разделе «Требования») → Skip for now для канала мессенджера. Установщик сохраняет ваш ключ в OneCLI Agent Vault, шлюзе учётных данных, обязательном начиная с 2.4.0: контейнеры агентов никогда не хранят ключи API в открытом виде.

Скриптовая альтернатива и первое сообщение

Если вы предпочитаете неинтерактивный запуск, страница установки описывает переменные времени установки, которые заранее отвечают на вопросы мастера. В любом случае протестируйте работу через встроенный терминальный канал из папки проекта, первый ответ может занять немного времени, пока запускается контейнер:

# Scripted setup (documented alternative to the wizard)
pnpm install
pnpm run setup:auto
# Pre-answer prompts with NANOCLAW_AGENT_PROVIDER, NANOCLAW_CHANNELS,
# NANOCLAW_HARDENED_IMAGE, NANOCLAW_SKIP; NANOCLAW_NO_DIAGNOSTICS=1 disables setup diagnostics

# First message through the built-in CLI channel (no credentials needed)
pnpm run chat "hello, who are you?"

# Re-run individual steps later: rebuild the image, reinstall the service, health check
pnpm run setup -- --step container
pnpm run setup -- --step service
pnpm run setup -- --step verify

Выбор модели и базовые настройки в .env

Настройки всей установки хранятся в .env в корне проекта (создаётся установщиком с правами 0600); настройки отдельных групп агентов хранятся в базе данных и редактируются через административный CLI ncl. Начиная с 2.4.0 группы Claude без заданной модели используют Opus 5.5 (claude-opus-5-5, $4 за ввод / $20 за вывод на миллион токенов); Claude Sonnet 5 стоит $2 / $10, так что закрепите его для персонального ассистента, если важна стоимость. Другие провайдеры задаются для каждой группы агентов: /add-codex (OpenAI) и /add-opencode (OpenRouter, OpenAI, Google, DeepSeek). Локальные модели: README упоминает /add-ollama-provider, но страница провайдеров на docs.nanoclaw.dev указывает, что это не поддерживаемая замена «из коробки» в текущей ветке main, относитесь к нему как к эксперименту, а не как к способу заменить Claude.

# Install-wide model for every Claude group with no model set
# (aliases sonnet | opus | haiku, or a full id such as claude-sonnet-5)
echo 'NANOCLAW_DEFAULT_MODEL=sonnet' >> .env

# Timezone for scheduled tasks and timestamps (IANA name)
echo 'TZ=Europe/Paris' >> .env

# .env is read only by the host process: restart it after edits
launchctl kickstart -k gui/$(id -u)/com.nanoclaw-v2-<slug>

# Per-group overrides via the ncl admin CLI (symlinked at ~/.local/bin/ncl by setup)
ncl groups config update --id <group-id> --model opus
ncl groups config update --id <group-id> --timezone Europe/Lisbon
# Switch a group to another provider (takes effect on the next container spawn)
ncl groups config update --id <group-id> --provider opencode

5. Шаг 3: Подключение каналов мессенджеров

Каналы не входят в комплект: каждый устанавливается по требованию как навык Claude Code, запускаемый из корня проекта, который добавляет адаптер в ваш checkout. Telegram запускается быстрее всего, создайте бота через @BotFather, вставьте токен, когда навык его запросит (он сохраняется как TELEGRAM_BOT_TOKEN в .env), затем отправьте боту одноразовый 6-значный код привязки сообщением, содержащим только цифры. Режим polling означает: никакого публичного URL, вебхука или открытого порта:

# Step 1: Open Telegram and search for @BotFather
# Step 2: Send /newbot and follow the prompts
# Step 3: Copy the token

# Every channel is a Claude Code skill run from the project root
cd ~/nanoclaw && claude
/add-telegram
# Paste the token when asked (stored as TELEGRAM_BOT_TOKEN in .env).
# The wizard prints a one-time 6-digit pairing code: send exactly those digits to the bot.

# Groups: BotFather -> /mybots -> Bot Settings -> Group Privacy -> Turn off

Подключение WhatsApp

Нативный адаптер использует протокол WhatsApp Web (Baileys, а не официальный API Meta): отсканируйте QR-код, который обновляется примерно каждые 60 секунд, или введите 8-символьный код привязки в WhatsApp → Связанные устройства. В режиме общего номера ассистент отвечает в вашем собственном чате «Вы»; для выделенного номера используйте отдельную SIM-карту и задайте ASSISTANT_HAS_OWN_NUMBER=true. Если важно соответствие требованиям, используйте вместо этого /add-whatsapp-cloud (Meta Cloud API):

claude
/add-whatsapp
# Scan the QR (rotates ~60 s) or enter the 8-character code in WhatsApp -> Linked Devices
# Auth state persists in store/auth/: keep that folder private

# Dedicated number (separate SIM) instead of your own chat:
# ASSISTANT_HAS_OWN_NUMBER=true in .env

# Meta's official Cloud API instead of the Web-protocol adapter:
# /add-whatsapp-cloud

Подключение Discord, iMessage и остальных

Discord использует токен бота и слушатель Gateway (без публичного URL). Каталог также охватывает Slack, Mattermost (новое в 2.4.0), Signal, iMessage, Microsoft Teams, Google Chat, Matrix, Webex, WeChat, GitHub, Linear, Delta Chat, Emacs, электронную почту через Resend и настоящий телефонный номер через Dial. Локальный бэкенд iMessage, это функция только для macOS: Mac mini должен быть вошедшим в iMessage с Apple ID, а конкретному бинарному файлу node нужен полный доступ к диску (Full Disk Access) (размещённому бэкенду Photon не нужно ни то, ни другое). Повторный запуск навыка /add-<channel> позже обновляет адаптер; /manage-channels связывает каждую беседу с группой агентов:

claude
/add-discord
# others: /add-slack /add-imessage /add-signal /add-teams /add-mattermost /add-matrix ...

# Wire conversations to agent groups
/manage-channels

# Silent agent? Check why messages were dropped (no_agent_wired, no_agent_engaged, ...)
ncl dropped-messages list
ncl sessions list

6. Шаг 4: Работа 24/7 через launchd и безопасное обновление

Для работы 24/7 NanoClaw должен запускаться при загрузке и перезапускаться после сбоя. Установщик уже позаботился об этом: на шаге установки сервиса он записывает пользовательский LaunchAgent launchd с именем com.nanoclaw-v2-<slug> (slug = первые 8 шестнадцатеричных символов SHA-1 от пути проекта; в старых руководствах ещё встречается метка com.nanoclaw, использовавшаяся до 2.3.0) с RunAtLoad и KeepAlive, с логами в logs/nanoclaw.log и logs/nanoclaw.error.log. Plist задаёт только PATH и HOME и не читает .env, поэтому перезапускайте хост после каждого изменения .env.

Проверка и управление сервисом

# Is the LaunchAgent loaded? Find your label (com.nanoclaw-v2-<slug>)
launchctl list | grep nanoclaw
ls ~/Library/LaunchAgents/ | grep nanoclaw

# Health: host + connected adapters (ncl status is new in 2.4.0)
ncl status
pnpm run setup -- --step verify
docker ps --filter label=nanoclaw-install

# Live logs
tail -f logs/nanoclaw.log logs/nanoclaw.error.log

# Restart (also after every .env edit) / stop / start / reinstall the service
launchctl kickstart -k gui/$(id -u)/com.nanoclaw-v2-<slug>
launchctl unload ~/Library/LaunchAgents/com.nanoclaw-v2-<slug>.plist
launchctl load ~/Library/LaunchAgents/com.nanoclaw-v2-<slug>.plist
pnpm run setup -- --step service   # regenerates the plist (wipes manual edits)

Переживаем перезагрузку на headless Mac mini

Эта часть, наша эксплуатационная рекомендация, собранная из документации Apple и Docker: документация NanoClaw не охватывает headless Mac. LaunchAgent живёт в вашей пользовательской сессии, а Docker Desktop, приложение с графическим интерфейсом, поэтому после перезагрузки ничего не работает, пока кто-нибудь не войдёт в систему. Включите автоматический вход для той же учётной записи, из-под которой запускался bash nanoclaw.sh: и LaunchAgent, и настройка автозапуска Docker Desktop при входе привязаны к пользователю, так что автоматический вход в другую учётную запись оставит сервис незагруженным, а Docker, остановленным (Apple: автоматический вход недоступен при включённом FileVault). Помните, что любой, кто перезагрузит Mac, попадёт в эту сессию, это приемлемо только на выделенном Mac mini, доступном исключительно по SSH, VNC и WireGuard; если вы предпочитаете для этого учётную запись без прав администратора, установите NanoClaw под ней, помня, что установка Homebrew и запуск sudo pmset всё равно требуют администратора (сам Docker Desktop работает от непривилегированного пользователя и запрашивает привилегированный доступ только для отдельных функций). Затем включите в Docker Desktop настройку «Start Docker Desktop when you sign in to your computer» и отключите сон:

# 1. System Settings > Users & Groups > Automatic login = the user that ran bash nanoclaw.sh
#    (over VNC; not available with FileVault on; LaunchAgent + Docker Desktop are per-user)
# 2. Docker Desktop > Settings > General > "Start Docker Desktop when you sign in to your computer"

# 3. Keep the Mac awake (same as in our OpenClaw guide)
sudo pmset -a sleep 0 disksleep 0 standby 0 powernap 0

# 4. Reboot-test, then log back in over SSH and check
sudo reboot
docker info
launchctl list | grep nanoclaw

Обновление NanoClaw (никогда не git pull)

Страница об обновлении однозначна: «Do not update with a raw git pull». NanoClaw записывает каждое санкционированное обновление в data/upgrade-state.json, и стартовая «растяжка» отказывается запускаться при несоответствии. Единственный поддерживаемый путь, /update-nanoclaw в Claude Code: он создаёт резервную ветку и тег, подготавливает upstream в отдельном worktree, проверяет (установка, сборка, тесты), останавливает сервис и контейнеры, делает снимок .env, data, groups и store, переключается, перезапускается и проверяет работоспособность. Он блокируется при «грязном» рабочем дереве или когда NanoClaw не работает под launchd. Перед переходом на 2.4.0 закрепите модель, если не хотите, чтобы группы Claude без заданной модели переключились на Opus 5.5:

# Optional: pin the model BEFORE upgrading (2.4.0 default for unset Claude groups is Opus 5.5)
echo 'NANOCLAW_DEFAULT_MODEL=sonnet' >> .env

# The only supported update path: inside Claude Code, from the project root
cd ~/nanoclaw && claude
/update-nanoclaw
# Refresh installed channel/provider skills only:
/update-skills

# After resolving merge conflicts, or to roll back after cutover:
pnpm exec tsx scripts/update-nanoclaw.ts resume --id "$id"
pnpm exec tsx scripts/update-nanoclaw.ts rollback --id "$id"

# Remove this checkout only (service, containers, image, data; .env backed up to .env.bak)
bash nanoclaw.sh --uninstall --dry-run
bash nanoclaw.sh --uninstall

7. Усиление безопасности (минимальные привилегии)

Модель угроз NanoClaw: «предположите, что агент подвергся prompt injection, и убедитесь, что скомпрометированному агенту нечего украсть и некуда уйти». Из коробки каждая сессия работает в собственном контейнере от непривилегированного пользователя node с --cap-drop=ALL, --security-opt no-new-privileges, --init, лимитом pids и снятыми битами setuid; нет домашнего каталога хоста, нет .ssh, нет сокета Docker, а шлюз OneCLI переписывает заголовки авторизации на лету, так что контейнеры никогда не видят ваш ключ API. Карточки одобрения (пакеты, MCP-серверы, субагенты, регистрация новых чатов) требуют ответа администратора и автоматически отклоняются без ответа, оставьте их. Самая безопасная задокументированная конфигурация добавляет следующее и никогда не отключает одобрения или шлюз:

  • Неизвестные отправители: задайте --unknown-sender-policy strict (сообщения тихо отбрасываются) или request_approval для каждой группы мессенджера, до которой могут добраться посторонние.
  • Монтирование: оставьте список разрешений (~/.config/nanoclaw/mount-allowlist.json) отсутствующим или минимальным, без него все дополнительные точки монтирования блокируются, а .ssh.gnupg.aws.kube.docker, credentials.env и .netrc в любом случае входят в блокируемые шаблоны. Монтирование выполняется только для чтения, если явно не разрешено иное.
  • Изоляция: «если сомневаетесь, начинайте с большей изоляции». Семейный чат и канал клиента не должны быть одним агентом; агент с примонтированным репозиторием и учётными данными для деплоя не должен делить группу агентов с тем, кто общается с посторонними. Отдельные сессии внутри группы не являются границей конфиденциальности.
  • Лимиты и исходящий трафик: задайте CONTAINER_CPU_LIMIT и CONTAINER_MEMORY_LIMIT и включите NANOCLAW_EGRESS_LOCKDOWN=true (весь трафик через шлюз, контейнеры во внутренней сети), как только ваши инструменты заработают через прокси, по умолчанию это выключено, потому что ломает инструменты, не умеющие работать с прокси.
  • Секреты на диске: .env создаётся с правами 0600 и содержит только токены каналов; ключи API агентов хранятся в хранилище (vault). Держите store/auth/ (сессию WhatsApp) тоже в тайне, это наша рекомендация, а не утверждение NanoClaw. Установщик отправляет диагностику, если не задано NANOCLAW_NO_DIAGNOSTICS=1.
# Unknown senders: drop silently (or route to an approval card) on every reachable group
ncl messaging-groups list
ncl messaging-groups update --id <mg-id> --unknown-sender-policy strict
# or: --unknown-sender-policy request_approval

# Opt-in per-container caps (passed to docker create --cpus / --memory)
echo 'CONTAINER_CPU_LIMIT=2' >> .env
echo 'CONTAINER_MEMORY_LIMIT=8g' >> .env

# Once every tool works through the OneCLI proxy: no direct internet route for containers
echo 'NANOCLAW_EGRESS_LOCKDOWN=true' >> .env
launchctl kickstart -k gui/$(id -u)/com.nanoclaw-v2-<slug>

# Mounts are deny-by-default and read-only unless the allowlist root sets allowReadWrite
ncl groups config add-mount --id <group-id> --host /path/on/mac --container /path/in/container

# Secrets on disk: .env must stay 0600 (setup creates it that way)
ls -l .env

Остаточные риски, которые песочница не покрывает: скомпрометированный агент всё ещё может писать в любой пункт назначения, к которому он подключён, читать или уничтожать собственное рабочее пространство и память, тратить выданные ему учётные данные и отравлять память группы, поэтому ограничивайте область каждой группы агентов как можно уже.

8. Устранение распространённых проблем

«FATAL: Container runtime failed to start»

Docker Desktop не был запущен в момент старта хоста, классика после перезагрузки без вошедшей в систему сессии. Проверьте демон, запустите Docker Desktop, затем перезапустите NanoClaw:

# Is the Docker daemon up?
docker info

# Not running? Start Docker Desktop (first launch must be from the desktop over VNC)
open -a Docker

# Then restart NanoClaw and watch the logs
launchctl kickstart -k gui/$(id -u)/com.nanoclaw-v2-<slug>
tail -f logs/nanoclaw.error.log

«NanoClaw stopped: update did not go through the supported path»

Кто-то выполнил git pull (или иначе изменил checkout), и data/upgrade-state.json больше не совпадает. Пройдите обновление поддерживаемым способом заново или возобновите/откатите подготовленное:

# Never `git pull`. Run the supported update from the project root:
cd ~/nanoclaw && claude
/update-nanoclaw

# A staged update stuck in conflict, or a bad cutover?
pnpm exec tsx scripts/update-nanoclaw.ts resume --id "$id"
pnpm exec tsx scripts/update-nanoclaw.ts rollback --id "$id"

# The update is blocked on a dirty working tree, detached HEAD or a host not under launchd
git status

Агент никогда не отвечает в чате

Обычно это проблема связки или триггера, а не сбой: агент отвечает только когда совпадает его триггер (@Andy по умолчанию, из ASSISTANT_NAME; у мастера WhatsApp по умолчанию Nano), а чат должен быть связан с группой агентов. Выведите список отброшенных сообщений и сессий:

# Why were messages dropped? (no_agent_wired, no_agent_engaged, ...)
ncl dropped-messages list
ncl sessions list

# Wire the chat to an agent group
claude
/manage-channels

# Telegram: pending pairing codes live here; the message must contain only the 6 digits
cat data/telegram-pairings.json

Хост отказывается запускаться после обновления, слитого вручную (нет шлюза учётных данных)

Начиная с 2.4.0 хост отказывается запускаться без зарегистрированного шлюза учётных данных. Форки, слитые вручную, должны зарегистрировать OneCLI (или Iron Proxy) и проверить NANOCLAW_GATEWAY_PROVIDER в .env; установки с OpenCode также должны повторно выполнить /add-opencode, пересобрать образ и перезапустить свои группы (команды из заметки к релизу 2.4):

# Register the gateway (OneCLI is the default; Iron Proxy is the alternative)
claude
/add-onecli
# or: /add-iron-proxy

# Check the provider recorded in .env (onecli | iron-proxy)
grep NANOCLAW_GATEWAY_PROVIDER .env

# OpenCode installs: re-run /add-opencode, then rebuild the image, restart the host and the groups
./container/build.sh build
launchctl kickstart -k gui/$(id -u)/com.nanoclaw-v2-<slug>
ncl groups restart --id <group-id>

После перезагрузки Mac mini ничего не работает

И LaunchAgent, и Docker Desktop живут в пользовательской сессии. Проверьте, что сервис зарегистрирован, что автоматический вход включён для пользователя, запускавшего установщик, и что Docker Desktop стартует при входе в систему, затем проведите тест с перезагрузкой:

# Is the LaunchAgent registered?
launchctl list | grep nanoclaw

# Not listed? Reinstall it (regenerates the plist)
pnpm run setup -- --step service

# Docker not up after login? Enable "Start Docker Desktop when you sign in" (Settings > General)
docker info

# Then reboot-test again
sudo reboot

9. Сравнение стоимости с облачным VPS

Сам NanoClaw бесплатен (MIT). Вы платите за хост и за использование моделей по вашему ключу API Anthropic, одинаково на любом хосте, потому что NanoClaw не запускает локальные модели поддерживаемым способом. Mac mini, выделенная физическая машина, поэтому честное сравнение, с выделенным облачным инстансом или инстансом AI-уровня, а не с самым дешёвым общим VPS:

Сценарий использования Запросов к ИИ/мес Стоимость облачного VPS Стоимость MyRemoteMac Экономия в месяц
Персональный ассистент, один канал ~500 запросов $120/мес (выделенный инстанс AI-уровня) $85/мес (Mac mini M4) $35/мес
Небольшая команда, несколько каналов + запланированные задачи ~5 000 запросов $200/мес $85/мес (Mac mini M4) $115/мес
Несколько групп агентов с параллельными контейнерами 10 000+ запросов $350+/мес $149/мес (Mac mini M6) $201+/мес

Допущения: цены VPS, те же диапазоны, которые используются во всех наших руководствах для выделенных инстансов AI-уровня, а не котировки конкретного провайдера; общий Linux VPS с 4 ГБ был бы дешевле любого тарифа Mac mini. Цены MyRemoteMac, текущие месячные ставки в USD без налогов, 1 Gbps включён. Использование моделей оплачивается дополнительно в обоих случаях: Opus 5.5 стоит $4 / $20 за миллион входных / выходных токенов, Sonnet 5, $2 / $10 (platform.claude.com, сентябрь 2026 г.). NanoClaw не публикует данные о потреблении ОЗУ или CPU для хоста, VM Docker Desktop или контейнеров на сессию, поэтому рекомендации по тарифам остаются качественными.

Какой тариф: Mac mini M4 с 16 ГБ за $85/мес, комфортный хост для персонального ассистента или бота небольшой команды; собственный минимум NanoClaw, 4 ГБ. Выбирайте Mac mini M6, когда запускаете несколько групп агентов с параллельными контейнерами рядом с VM Docker Desktop или когда тот же Mac собирает iOS-приложения. Чтобы счёт за токены оставался предсказуемым, задайте NANOCLAW_DEFAULT_MODEL=sonnet и оставьте Opus для группы, которой он действительно нужен.

10. NanoClaw против OpenClaw

NanoClaw явно позиционирует себя против OpenClaw: его README утверждает, что у OpenClaw почти полмиллиона строк кода, 53 файла конфигурации и 70+ зависимостей, а безопасность обеспечивается на уровне приложения (списки разрешений, коды привязки), а не изоляцией на уровне ОС, цифры из README NanoClaw, независимо не проверялись. По нашему руководству по OpenClaw практические различия на Mac mini таковы. OpenClaw, это глобальная установка через npm (рекомендуется Node 26.1+), один процесс Gateway, файл конфигурации JSON5, каналы в комплекте, без Docker. NanoClaw, это git clone + bash nanoclaw.sh, Node 22+ и pnpm 10, требует Docker Desktop, Homebrew и Claude Code на хосте, не имеет файлов конфигурации (настройка, это код в вашем собственном checkout), запускает каждую сессию в Linux-контейнере с cap-drop и no-new-privileges, по умолчанию блокирует монтирование и держит ключи API вне песочницы через шлюз учётных данных; каналы устанавливаются по требованию как навыки, а обновления идут только через /update-nanoclaw. Коротко: NanoClaw безопаснее по построению, но тяжелее в эксплуатации (постоянно работающая VM Docker Desktop, сессия входа с графическим интерфейсом, лицензионное правило Docker для крупных компаний, интерактивная установка на 30–60 минут и форк, который вы поддерживаете); OpenClaw легче установить и настроить, но он полагается на проверки прав на уровне приложения. Оба по умолчанию используют Claude; NanoClaw добавляет Codex и OpenCode для каждой группы агентов. Стоимость Mac mini одинакова для обоих.

Уже используете OpenClaw? NanoClaw поставляется с /migrate-from-openclaw, управляемой беседой в Claude Code, которая сопоставляет агентов OpenClaw с группами агентов, чаты, со связанными группами мессенджеров, IDENTITY.md/SOUL.md, с instructions.prepend.md и memory/, навыки, с container/skills, токены каналов, с .env, ключи API, с хранилищем OneCLI, cron-задачи, с задачами ncl, MCP-серверы, с конфигурацией групп, а списки разрешений, с unknown_sender_policy и ролями. WhatsApp нужно аутентифицировать заново; человеческая задержка и TTS не имеют эквивалента в v2. Начинаете с нуля? Прочитайте наше руководство по OpenClaw на Mac mini и руководство по Hermes Agent, прежде чем выбирать.

11. FAQ

NanoClaw бесплатен?

Да. NanoClaw распространяется по лицензии MIT, имеет 30 тыс.+ звёзд на GitHub, создан Гавриэлем Коэном (Gavriel Cohen) и сопровождается NanoCo. Вы платите за Mac mini (от $85/мес за M4, $149/мес за M6 в MyRemoteMac) и за использование Claude по вашему ключу API Anthropic. Docker Desktop бесплатен для личного использования и для компаний менее чем с 250 сотрудниками и выручкой менее US$10 млн; более крупным компаниям и государственным организациям нужна платная подписка Docker.

Мне действительно нужен Docker Desktop на Mac mini?

Да. На macOS NanoClaw требует Docker Desktop, который его установщик добавляет командой brew install --cask docker; Docker, поставляемая среда выполнения (NANOCLAW_RUNTIME_DRIVER=docker, за выбираемым слоем драйвера начиная с 2.3.0). Собственный инструмент контейнеров Apple сегодня не является поддерживаемой средой выполнения, работа над /add-apple-container для v2 находится в открытом черновом pull request. Каждая сессия агента работает в собственном Linux-контейнере, и в этом весь смысл модели безопасности NanoClaw.

Можно ли использовать подписку Claude вместо ключа API?

Мастер NanoClaw предлагает «Sign in with my Claude subscription» и принимает токен OAuth. Однако юридические условия Anthropic гласят, что аутентификация OAuth предназначена исключительно для обычного использования подписчиками Claude Code и нативных приложений Anthropic, что разработчики на базе Agent SDK должны использовать аутентификацию по ключу API и что Anthropic может обеспечивать соблюдение этого без предупреждения. Для бизнеса или постоянно работающего развёртывания используйте ключ API из Console, и никогда не храните и не передавайте учётные данные Claude.ai.

Какой тариф Mac mini выбрать для NanoClaw?

NanoClaw требует минимум 4 ГБ ОЗУ и не публикует других данных о потреблении ресурсов, поэтому совет качественный: Mac mini M4 с 16 ГБ за $85/мес спокойно размещает персонального ассистента или бота небольшой команды с парой каналов. Выбирайте Mac mini M6 от $149/мес, когда несколько групп агентов одновременно запускают контейнеры рядом с VM Docker Desktop или когда тот же Mac выполняет сборки Xcode или другие рабочие нагрузки.

Переживёт ли NanoClaw перезагрузку Mac mini?

Да, при условии, что пользовательская сессия восстановится: установщик регистрирует пользовательский LaunchAgent (com.nanoclaw-v2-<slug>, KeepAlive), а Docker Desktop, приложение с графическим интерфейсом, поэтому на headless Mac mini включите автоматический вход для той же учётной записи, из-под которой запускался bash nanoclaw.sh (оба привязаны к пользователю; недоступно при включённом FileVault), включите автозапуск Docker Desktop при входе и отключите сон через pmset. Проверьте командами launchctl list | grep nanoclaw и docker info после тестовой перезагрузки. Этот рецепт для headless, наша рекомендация; документация NanoClaw говорит лишь, что компьютер должен быть включён и подключён к сети.

Можно ли перенести существующую установку OpenClaw в NanoClaw?

Да. Запустите /migrate-from-openclaw в Claude Code из корня проекта NanoClaw: он сопоставляет агентов OpenClaw с группами агентов, чаты, с группами мессенджеров, IDENTITY.md и SOUL.md, с instructions.prepend.md и memory/, навыки, с container/skills (тот же формат), токены каналов, с .env, ключи API, с хранилищем OneCLI, cron-задачи, с задачами ncl, а списки разрешений, с политиками отправителей. WhatsApp намеренно не переносится, вы сканируете QR-код заново, а человеческая задержка и TTS не имеют эквивалента в v2.

12. Источники и дополнительные материалы

Каждая команда, путь, переменная и требование в этом руководстве были сверены 28 сентября 2026 г. с официальным репозиторием NanoClaw (nanocoai/nanoclaw, v2.4.0 выпущена 23 сентября 2026 г., старый URL qwibitai перенаправляет туда) и docs.nanoclaw.dev, а также с документацией Docker, Anthropic и Apple в части фактов о платформе. Закреплённые версии, такие как сборка Claude Code внутри агентов, меняются с каждым релизом, поэтому актуальные значения смотрите на этих страницах:

Похожие руководства

Готовы запустить NanoClaw 24/7?

Разверните выделенный Mac mini как хост для ИИ-ассистента в песочнице. Mac mini M4 от $85/мес, Mac mini M6 от $149/мес.

Нужно больше деталей?

Полная документация: пошаговые инструкции по настройке, справочники по конфигурации и решение проблем.

Открыть документацию →