
Легковесная альтернатива OpenClaw, которая работает в контейнерах для безопасности. Подключается к WhatsApp, Telegram, Slack, Discord, Gmail и другим мессенджерам,, имеет память, запланированные задания и работает непосредственно на Anthropic's Agents SDK
ИИ-ассистент, который безопасно запускает агентов в собственных контейнерах. Легковесный, созданный для простоты понимания и полной настройки под ваши нужды.
nanoclaw.dev •
документация •
中文 •
日本語 •
한국어 •
•
OpenClaw — впечатляющий проект, но я бы не смог спать спокойно, если бы дал сложному ПО, которое не понимаю, полный доступ к своей жизни. У OpenClaw почти полмиллиона строк кода, 53 конфигурационных файла и более 70 зависимостей. Его безопасность реализована на уровне приложения (белые списки, коды привязки), а не на уровне настоящей изоляции ОС. Всё работает в одном процессе Node с общей памятью.
NanoClaw предоставляет ту же базовую функциональность, но в кодовой базе, достаточно маленькой для понимания: один процесс и горстка файлов. Агенты работают в собственных контейнерах Linux с изоляцией файловой системы, а не просто за проверками разрешений.
git clone https://github.com/nanocoai/nanoclaw.git nanoclaw-v2
cd nanoclaw-v2
bash nanoclaw.sh
nanoclaw.sh проведёт вас от чистой машины до именованного агента, которому можно отправлять сообщения. Он устанавливает Node, pnpm и Docker, если они отсутствуют, регистрирует ваши учётные данные Anthropic с помощью OneCLI, собирает контейнер агента и подключает ваш первый канал (Telegram, Discord, WhatsApp или локальный CLI). Если какой-то шаг завершается неудачей, автоматически вызывается Claude Code для диагностики и возобновления с места сбоя.
Запустите из свежего клона v2 рядом с вашей установкой v1:
git clone https://github.com/nanocoai/nanoclaw.git nanoclaw-v2
cd nanoclaw-v2
bash migrate-v2.sh
migrate-v2.sh находит вашу установку v1 (как директорию-соседа или через NANOCLAW_V1_PATH=/path/to/nanoclaw), переносит состояние в клон v2, затем передаёт управление Claude Code для завершения частей, требующих экспертной оценки (начальное заполнение владельца, очистка CLAUDE.local.md, воспроизведение изменений форка).
Запускайте скрипт напрямую, а не из сессии Claude — детерминированная часть требует интерактивных подсказок и реального ввода-вывода оболочки для загрузки Node/pnpm, Docker, OneCLI и сборки контейнера.
Что он делает: объединяет .env, наполняет БД v2 из registered_groups, копирует папки групп + данные сессий + запланированные задачи, устанавливает выбранные вами адаптеры каналов, копирует состояние авторизации каналов (включая хранилище ключей Baileys для WhatsApp — сопоставление LID теперь разрешается для каждого сообщения адаптером Baileys v7, а не переносится), собирает контейнер агента.
Что он не делает: не переключает системную службу. Выберите "переключиться на v2" при запросе или сделайте это вручную после тестирования — ваша установка v1 остаётся нетронутой.
Смотрите docs/v1-to-v2-changes.md о различиях и docs/migration-dev.md для заметок разработчика.
Достаточно маленький для понимания. Один процесс, несколько исходных файлов и никаких микросервисов. Если хотите разобраться во всей кодовой базе NanoClaw, просто попросите Claude Code провести вас по ней.
Безопасность через изоляцию. Агенты работают в контейнерах Linux и видят только то, что явно смонтировано. Доступ к bash безопасен, потому что команды выполняются внутри контейнера, а не на вашем хосте.
Создан для индивидуального пользователя. NanoClaw — не монолитная среда; это ПО, которое подстраивается под точные нужды каждого пользователя. Вместо того чтобы превращаться в «монстра», NanoClaw спроектирован как кастомное решение. Вы делаете свой форк и просите Claude Code изменить его под ваши задачи.
Настройка = изменение кода. Никакого разрастания конфигов. Хотите другое поведение? Изменяйте код. Кодовая база достаточно мала, чтобы вносить изменения было безопасно.
ИИ-нативный, гибридный по замыслу. Процесс установки и введения в строй — это оптимизированный скриптовый путь, быстрый и детерминированный. Когда шагу требуется оценка — будь то неудачная установка, принятие решения или кастомизация, — управление плавно передаётся Claude Code. Вне настройки нет панели мониторинга или отладочного интерфейса: опишите проблему в чате, и Claude Code решит её.
Навыки, а не функции. Основная ветка поставляет реестр и инфраструктуру, а не конкретные адаптеры каналов или альтернативные провайдеры агентов. Каналы (Discord, Slack, Telegram, WhatsApp, ...) живут на долгоживущей ветке channels; альтернативные провайдеры (OpenCode, Ollama) — на providers. Вы запускаете /add-telegram, /add-opencode и т.д., и навык копирует именно те модули, которые вам нужны, в ваш форк. Ни одной ненужной функции, о которой вы не просили.
Лучшая обвязка, лучшая модель. NanoClaw изначально использует Claude Code через официальный SDK агентов Claude от Anthropic, так что вы получаете последние модели Claude и полный набор инструментов Claude Code, включая возможность изменять и расширять собственный форк NanoClaw. Другие провайдеры доступны как опции: /add-codex для OpenAI Codex (подписка ChatGPT или API-ключ), /add-opencode для OpenRouter, Google, DeepSeek и других через OpenCode, и /add-ollama-provider для локальных open-weight моделей. Провайдер настраивается для каждой группы агентов.
/add-<канал>. Можно запускать один или несколько одновременно./manage-channels. См. docs/isolation-model.md.CLAUDE.md, своя память, свой контейнер и только те монтирования, которые вы разрешаете. Ничто не пересекает границу, если вы её не свяжете.ncl groups create --template <ref>. Шаблоны загружаются из локальной папки templates/; заполните её вручную или скопировав из . См. .Общайтесь со своим ассистентом с помощью слова-триггера (по умолчанию: @Andy):
@Andy каждое утро в 9 утра отправляй обзор воронки продаж (имеет доступ к моей папке Obsidian)
@Andy каждую пятницу просматривай историю git за неделю и обновляй README, если есть расхождения
@Andy каждый понедельник в 8 утра собирай новости о разработках ИИ из Hacker News и TechCrunch и присылай мне сводку
Из канала, которым вы владеете или управляете, вы можете управлять группами и задачами:
@Andy выведи список всех запланированных задач по всем группам
@Andy приостанови задачу по сводке по понедельникам
@Andy присоединись к группе Семейный чат
NanoClaw не использует конфигурационные файлы. Чтобы внести изменения, просто скажите Claude Code, что вы хотите:
Или выполните /customize для направленных изменений.
Кодовая база достаточно мала, чтобы Claude мог безопасно вносить изменения.
Не добавляйте функции. Добавляйте навыки.
Если вы хотите добавить новый канал или провайдера агента, не добавляйте его в основную ветку. Новые адаптеры каналов попадают в ветку channels; новые провайдеры агентов — в ветку providers. Пользователи устанавливают их в своём форке с помощью навыков /add-<имя>, которые копируют соответствующий модуль(и) в стандартные пути, подключают регистрацию и фиксируют зависимости.
Это сохраняет основную ветку как чистый реестр и инфраструктуру, а каждый форк остаётся лёгким — пользователи получают только те каналы и провайдеров, которые сами запросили, и ничего лишнего.
В настоящее время не запрашиваются навыки для каналов или провайдеров — предлагайте через issue.
/customize, /debug, восстановления после ошибок во время настройки и всех навыков /add-<канал>мессенджеры → хост-процесс (роутер) → inbound.db → контейнер (Bun, Claude Agent SDK) → outbound.db → хост-процесс (доставка) → мессенджеры
Один Node-хост управляет контейнерами агентов для каждой сессии. Когда приходит сообщение, хост направляет его через модель сущностей (пользователь → группа обмена сообщениями → группа агентов → сессия), записывает в inbound.db сессии и пробуждает контейнер. Исполнитель агента внутри контейнера опрашивает inbound.db, запускает агента и записывает ответы в outbound.db. Хост опрашивает outbound.db и доставляет ответ обратно через адаптер канала.
Два SQLite-файла на сессию, каждый с одним писателем — никакой конкуренции за монтирования, никакого IPC, никакой передачи через stdin. Каналы и альтернативные провайдеры самостоятельно регистрируются при запуске; основная ветка содержит реестр и мост для Chat SDK, а сами адаптеры устанавливаются навыками для каждого форка.
Полное описание архитектуры см. в docs/architecture.md; трёхуровневая модель изоляции — в docs/isolation-model.md.
Ключевые файлы:
src/index.ts — точка входа: инициализация БД, адаптеры каналов, опросы доставки, очисткаsrc/router.ts — входящая маршрутизация: группа обмена сообщениями → группа агентов → сессия → inbound.dbsrc/delivery.ts — опрашивает outbound.db, доставляет через адаптер, обрабатывает системные действияsrc/host-sweep.ts — 60-секундная очистка: обнаружение устаревших, пробуждение по отложенным сообщениям, повторенияsrc/session-manager.ts — разрешает сессии, открывает inbound.db / outbound.dbsrc/container-runner.ts — запускает контейнеры для групп агентов, внедрение учётных данных OneCLIsrc/db/ — центральная БД (пользователи, роли, группы агентов, группы обмена сообщениями, связи, миграции)src/channels/ — инфраструктура адаптеров каналов (адаптеры устанавливаются через навыки )Почему Docker?
Docker обеспечивает кроссплатформенную поддержку (macOS, Linux и Windows через WSL2) и зрелую экосистему.
Могу ли я запустить это на Linux или Windows?
Да. Docker — среда выполнения по умолчанию, работает на macOS, Linux и Windows (через WSL2). Просто выполните bash nanoclaw.sh.
Это безопасно?
Агенты работают в контейнерах, а не за проверками разрешений на уровне приложения. Они могут получить доступ только к явно смонтированным директориям. Учётные данные никогда не попадают в контейнер — исходящие API-запросы проходят через OneCLI Agent Vault, который внедряет аутентификацию на уровне прокси и поддерживает ограничения частоты и политики доступа. Вы всё равно должны проверять, что запускаете, но кодовая база достаточно мала, чтобы вы действительно могли это сделать. См. документацию по безопасности для полной модели безопасности.
Почему нет конфигурационных файлов?
Мы не хотим разрастания конфигов. Каждый пользователь должен кастомизировать NanoClaw так, чтобы код делал именно то, что ему нужно, а не настраивать общую систему. Если вы предпочитаете иметь конфигурационные файлы, вы можете попросить Claude добавить их.
Могу ли я использовать сторонние модели или модели с открытым исходным кодом?
Да. Поддерживаемый путь — /add-opencode (OpenRouter, OpenAI, Google, DeepSeek и другие через конфигурацию OpenCode) или /add-ollama-provider (локальные open-weight модели через Ollama). Оба настраиваются для каждой группы агентов, так что разные агенты могут работать на разных бэкендах в одной установке.
Для разовых экспериментов также подходит любая API-совместимая с Claude конечная точка через .env:
ANTHROPIC_BASE_URL=https://your-api-endpoint.com
ANTHROPIC_AUTH_TOKEN=your-token-here
Как отлаживать проблемы?
Спросите Claude Code. "Почему не запускается планировщик?" "Что в последних логах?" "Почему на это сообщение не пришёл ответ?" Это ИИ-нативный подход, лежащий в основе NanoClaw.
Почему установка у меня не работает?
Если шаг не удаётся, nanoclaw.sh передаёт управление Claude Code для диагностики и возобновления. Если это не решает проблему, запустите claude, затем /debug. Если Claude выявит проблему, которая может затрагивать других пользователей, откройте PR по соответствующему шагу установки или навыку.
Как удалить NanoClaw?
bash nanoclaw.sh --uninstall
Каждая установка помечается идентификатором, привязанным к конкретному клону, поэтому деинсталлятор удаляет только то, что принадлежит этой копии: фоновую службу, контейнеры и образ, данные приложения и логи, файлы ваших агентов и агентов OneCLI этой копии. Общие вещи — приложение OneCLI и ваши учётные данные, другие копии NanoClaw на машине — остаются нетронутыми. Он показывает, что именно найдено, и запрашивает подтверждение для каждой группы; ничего не удаляется, пока вы не скажете «да». Используйте --dry-run для просмотра без изменений или --yes, чтобы пропустить запросы. Ваш .env сохраняется в резервную копию перед удалением. Для завершения удалите саму папку клона.
Какие изменения будут приняты в кодовую базу?
В базовую конфигурацию будут приняты только исправления безопасности, исправления ошибок и явные улучшения. И всё.
Всё остальное (новые возможности, совместимость с ОС, поддержка оборудования, улучшения) должно вноситься как навыки: код каналов и провайдеров — в реестровые ветки channels/providers, всё остальное — как самодостаточный навык. См. docs/customizing.md и CONTRIBUTING.md.
Это сохраняет базовую систему минимальной и позволяет каждому пользователю настраивать свою установку, не наследуя функции, которые ему не нужны.
Вопросы? Идеи? Присоединяйтесь к Discord.
См. CHANGELOG.md для критических изменений или полную историю релизов на сайте документации.
MIT

/add-<канал>src/providers/ — конфигурация провайдера на стороне хоста (claude встроен; другие через навыки)container/agent-runner/ — Bun-исполнитель агента: цикл опроса, MCP-инструменты, абстракция провайдераgroups/<папка>/ — файловая система каждой группы агентов (CLAUDE.md, навыки, конфигурация контейнера)