Модель маркетплейса плагинов звучит соблазнительно: устанавливай что нужно, пропускай что не нужно, добавляй своё. Это сработало для браузеров, для VS Code, для WordPress. Казалось естественным применить ту же модель к AI-агентам. А потом случился ClawHub — 41,7% опубликованных скиллов содержали уязвимости, сотни были откровенно вредоносными, и вся модель доверия рухнула под тяжестью цепочки поставок, которую никто не мог проаудировать.
NanoClaw посмотрел на этот провал и задал другой вопрос: а что если расширяемость вообще не требует маркетплейса? Что если добавление новой возможности AI-ассистенту — это просто сказать Claude Code, что вы хотите, и позволить ему модифицировать исходный код напрямую?
Это и есть модель Claude Code Skills. И она оказалась одновременно проще и безопаснее любой системы плагинов.
Как скиллы на самом деле работают
Claude Code Skill — это слэш-команда, вроде /add-telegram или /add-discord, которую вы запускаете в сессии Claude Code. Когда вы вызываете скилл, Claude Code читает исходный код NanoClaw, понимает существующую архитектуру и пишет новую интеграцию прямо в кодовую базу. Он не устанавливает пакет из реестра. Он не скачивает код из интернета. Он генерирует код, подходящий именно вашему экземпляру NanoClaw, который вы проверяете перед запуском.
Скилл /add-telegram, например, не устанавливает npm-пакет для Telegram и не подключает его через интерфейс плагинов. Он добавляет слушатель Telegram-бота в цикл сообщений NanoClaw, используя библиотеку node-telegram-bot-api, с той же контейнерной изоляцией и моделью безопасности, что и WhatsApp. Сгенерированный код следует тем же паттернам, что и существующая кодовая база, потому что Claude Code видит существующую кодовую базу и может соответствовать её стилю.
Это фундаментально отличается от системы плагинов в трёх аспектах. Во-первых, код видим. Вы можете прочитать каждую добавленную строку, понять, что она делает, и изменить, если хотите. Нет скомпилированного бинарника, нет минифицированного бандла, нет непрозрачного пакета, которому вы слепо доверяете. Во-вторых, код локален. Он живёт в вашем репозитории, под вашим контролем версий, подчиняется вашему процессу ревью. Он не звонит домой, не обновляется автоматически, не меняет поведение без вашего ведома. В-третьих, код интегрирован. Он не работает в отдельной песочнице плагина с ограниченным API — он часть приложения, с полным доступом к паттернам и утилитам, которые использует остальная кодовая база.
Почему это безопаснее плагинов
Аргумент безопасности прост, но его стоит проговорить, потому что он противоположен тому, что ожидает большинство разработчиков.
В системе плагинов безопасность зависит от доверия. Вы доверяете автору плагина, доверяете процессу ревью маркетплейса, доверяете тому, что пакет не был скомпрометирован после ревью, и доверяете тому, что его зависимости тоже не были скомпрометированы. Каждое из этих допущений — потенциальная точка отказа, и ClawHub продемонстрировал, что все они могут отказать одновременно.
В модели скиллов безопасность зависит от видимости. Когда Claude Code генерирует интеграцию с Telegram, вы можете точно видеть, что она делает, прежде чем запустить. Вы можете проверить код, протестировать его, изменить или полностью отклонить. Граница доверия — не «доверяю ли я npm-пакету неизвестного разработчика?», а «делает ли этот код, который я могу прочитать, то, что мне нужно?»
Также нет цепочки поставок для атаки. Злоумышленник не может загрузить троянизированный скилл в маркетплейс, потому что маркетплейса нет. Не может использовать тайпсквоттинг популярного имени пакета, потому что пакетов нет. Поверхность атаки, которая позволила сотням вредоносных скиллов ClawHub существовать, просто не существует в этой модели.
Компромисс в том, что скиллы требуют Claude Code для генерации, а значит, вам нужен Anthropic API-ключ и сессия Claude Code. Нельзя просто открыть каталог и нажать «установить». Но для проекта, чьи пользователи — разработчики, комфортно работающие с CLI, этот компромисс едва заметен, а преимущества безопасности существенны.
Скиллы, которые существуют сегодня
NanoClaw поставляется с WhatsApp из коробки. Всё остальное добавляется через скиллы. Текущий набор скиллов покрывает самые запрашиваемые интеграции: /add-telegram для поддержки Telegram-ботов, /add-discord для интеграции с Discord gateway, /add-slack для Slack Events API и /add-signal для обмена сообщениями через Signal.
Каждый скилл генерирует примерно 100–300 строк кода, в зависимости от сложности API канала. Сгенерированный код включает слушатель канала, форматирование сообщений, маршрутизацию контейнеров и конфигурацию — всё необходимое для работы интеграции от начала до конца. Он также включает объявления переменных окружения и инструкции по настройке, чтобы вы точно знали, какие токены и учётные данные нужно предоставить.
Помимо интеграций с каналами, скиллы могут добавлять инструменты и возможности. Скилл /add-web-search мог бы добавить инструмент веб-поиска, который агенты могут использовать внутри контейнеров. Скилл /add-calendar мог бы интегрироваться с Google Calendar для планирования. Паттерн тот же: Claude Code читает кодовую базу, понимает архитектуру и генерирует подходящий код.
Философия дружелюбности к форкам
За моделью скиллов стоит более глубокая философия, которую стоит сформулировать. NanoClaw спроектирован для форков. Не в враждебном смысле «забрать код и конкурировать» — в коллаборативном смысле «забрать код и сделать его своим».
Когда вы запускаете /add-telegram, вы не устанавливаете зависимость, привязывающую вас к циклу релизов NanoClaw. Вы добавляете код в свой форк, который полностью принадлежит вам. Если апстрим NanoClaw изменится так, как вам не нравится, ваша интеграция с Telegram продолжит работать. Если вы хотите изменить форматирование сообщений Telegram, вы редактируете код напрямую — без ограничений API плагинов, без ожидания, пока апстрим добавит новый хук.
Это противоположность платформенной привязки, которую создают маркетплейсы плагинов. Плагины WordPress привязывают к WordPress. Расширения VS Code привязывают к VS Code. Скиллы ClawHub привязывали к OpenClaw. Скиллы NanoClaw генерируют обычный TypeScript, который работает с архитектурой NanoClaw, но не зависит от какого-либо рантайма плагинов или инфраструктуры маркетплейса.
Результат — проект, который становится функциональнее со временем — не потому что растёт маркетплейс, а потому что форк каждого пользователя накапливает именно те возможности, которые ему нужны, сгенерированные AI, который достаточно хорошо понимает кодовую базу, чтобы расширять её правильно. Это расширяемость через понимание, а не через абстракцию.