clawhub:, если требуется разрешение через ClawHub.
Требования
- Node 22.22.3+, Node 24.15+ или Node 25.9+, а также
npmилиpnpm. - Модули TypeScript ESM.
- Для работы со встроенным плагином внутри репозитория клонируйте репозиторий и выполните
pnpm install. Разработка плагинов из исходного кода поддерживает только pnpm, поскольку OpenClaw обнаруживает встроенные плагины среди пакетов рабочей областиextensions/*.
Выберите тип плагина
Плагин канала
Подключите OpenClaw к платформе обмена сообщениями.
Плагин провайдера
Добавьте провайдера моделей, мультимедиа, поиска, загрузки данных, речи или взаимодействия в реальном времени.
Плагин бэкенда CLI
Запускайте локальный CLI для ИИ через резервный механизм моделей OpenClaw.
Плагин инструментов
Регистрируйте инструменты агента.
Быстрый старт
Создайте минимальный плагин инструментов, зарегистрировав один обязательный инструмент агента. Это простейший полезный тип плагина, охватывающий пакет, манифест, точку входа и локальную проверку.1
Создайте метаданные пакета
contracts.tools, чтобы OpenClaw мог определять владельца без
упреждающей загрузки среды выполнения каждого плагина. Задавайте activation.onStartup
осознанно; в этом примере загрузка происходит при запуске Gateway.Доверенные хостом поверхности плагинов также контролируются манифестом и требуют явного
объявления для установленных плагинов: для api.registerAgentToolResultMiddleware(...)
каждая целевая среда выполнения должна быть указана в contracts.agentToolResultMiddleware,
а для api.registerTrustedToolPolicy(...) каждый идентификатор политики должен быть указан в
contracts.trustedToolPolicies. Эти объявления обеспечивают согласованность проверки
при установке и регистрации во время выполнения.Все поля манифеста описаны в разделе Манифест плагина.2
Зарегистрируйте инструмент
index.ts
definePluginEntry для плагинов, не являющихся плагинами каналов. Вместо этого плагины каналов используют
defineChannelPluginEntry из openclaw/plugin-sdk/core.3
Протестируйте среду выполнения
Для установленного или внешнего плагина проверьте загруженную среду выполнения:Если плагин регистрирует команду CLI, также выполните эту команду и проверьте
результат, например
openclaw demo-plugin ping.Для встроенного плагина в этом репозитории OpenClaw обнаруживает пакеты плагинов
из исходного кода в рабочей области extensions/*. Запустите ближайший целевой
тест:4
Протестируйте установку пакета
Перед публикацией готового пакета плагина протестируйте тот же способ установки, который получат
пользователи. Сначала добавьте этап сборки, укажите для исполняемых точек входа, таких как
openclaw.extensions, собранный JavaScript, например ./dist/index.js, и убедитесь,
что npm pack включает этот результат dist/. Точки входа из исходного кода TypeScript
предназначены только для работы с исходным кодом и локальной разработки.Затем упакуйте плагин и установите tar-архив с помощью npm-pack::npm-pack: использует управляемый OpenClaw отдельный npm-проект для каждого плагина, поэтому он выявляет
ошибки зависимостей среды выполнения, которые могут быть скрыты при тестировании из исходного кода. Он подтверждает
структуру пакета и зависимостей, но не официальный статус доверия, связанный с каталогом.
Импорты среды выполнения должны находиться в dependencies или optionalDependencies;
зависимости, оставленные только в devDependencies, не будут установлены для
управляемого проекта среды выполнения.Не используйте установку непосредственно из архива или по пути как окончательное подтверждение официального или
привилегированного поведения плагина. Исходный код полезен для локальной отладки, но
он не подтверждает тот же путь разрешения зависимостей, что и установка из npm или ClawHub. Если
ваш плагин зависит от доверенного статуса официального плагина, добавьте вторую проверку
посредством официальной установки из каталога или пути опубликованного пакета, который
фиксирует официальный статус доверия. Подробности о корне установки и владельце зависимостей
см. в разделе Разрешение зависимостей плагинов.5
Опубликуйте
Проверьте пакет перед публикацией:Канонические фрагменты пакетов ClawHub находятся в
docs/snippets/plugin-publish/.6
Установите
Установите опубликованный пакет через ClawHub:
Регистрация инструментов
Инструменты могут быть обязательными или необязательными. Обязательные инструменты всегда доступны, когда плагин включен. Необязательные инструменты требуют явного согласия пользователя, прежде чем OpenClaw загрузит среду выполнения плагина-владельца. Фабрики инструментов получают доверенный контекст среды выполнения, включаяdeliveryContext,
nativeChannelId для активного диалога на платформе, если он доступен, и
requesterSenderId.
api.registerTool(...), также должен быть объявлен в
манифесте плагина:
tools.allow:
name, значение execute, не являющееся функцией, или дескриптор инструмента без объекта parameters.
Фабрики инструментов получают объект контекста, предоставляемый средой выполнения. Используйте ctx.activeModel,
если инструменту требуется регистрировать в журнале, отображать или адаптировать активную модель для текущего
хода; он может включать provider, modelId и modelRef. Рассматривайте его как
информационные метаданные среды выполнения, а не как границу безопасности от локального
оператора, кода установленного плагина или измененной среды выполнения OpenClaw. Для конфиденциальных
локальных инструментов по-прежнему следует требовать явного включения плагином или оператором и
отказывать в выполнении, если метаданные активной модели отсутствуют или непригодны.
Манифест объявляет владельца и обеспечивает обнаружение; при выполнении по-прежнему вызывается актуальная
зарегистрированная реализация инструмента. Поддерживайте соответствие toolMetadata.<tool>.optional: true
и api.registerTool(..., { optional: true }), чтобы OpenClaw мог не
загружать среду выполнения этого плагина, пока инструмент явно не будет добавлен в список разрешенных.
Соглашения об импортах
Импортируйте из специализированных подпутей SDK:api.ts и
runtime-api.ts, для внутренних импортов. Не импортируйте собственный плагин через
путь SDK. Вспомогательные средства конкретного провайдера должны оставаться в пакете провайдера, если только
интерфейс не является действительно универсальным.
Пользовательские методы RPC Gateway — это расширенная точка входа. Используйте для них
префикс, относящийся к конкретному плагину; административные пространства имен ядра, такие как config.*,
exec.approvals.*, operator.admin.*, wizard.* и update.*, остаются зарезервированными
и разрешаются в operator.admin. Мост
openclaw/plugin-sdk/gateway-method-runtime зарезервирован для HTTP-маршрутов
плагинов, объявляющих contracts.gatewayMethodDispatch: ["authenticated-request"].
Полную карту импортов см. в разделе Обзор SDK плагинов.
Контрольный список перед отправкой
В package.json указаны правильные метаданные
openclawМанифест openclaw.plugin.json присутствует и корректен
Точка входа использует
defineChannelPluginEntry или definePluginEntryВсе импорты используют специализированные пути
plugin-sdk/<subpath>Внутренние импорты используют локальные модули, а не самоимпорты SDK
Тесты проходят (
pnpm test <bundled-plugin-root>/my-plugin/)Проверка
pnpm check проходит (для плагинов внутри репозитория)Тестирование с бета-версиями
- Следите за выпусками openclaw/openclaw (
Watch>Releases). Бета-теги выглядят какv2026.3.N-beta.1. Также можно подписаться на @openclaw в X, чтобы получать объявления о выпусках. - Протестируйте свой плагин с бета-тегом сразу после его появления. До стабильного выпуска обычно остаётся всего несколько часов.
- После тестирования напишите в ветке своего плагина в канале Discord
plugin-forum(discord.gg/clawd), указав либоall good, либо описание возникшей неполадки. Если ветки ещё нет, создайте её. - Если что-то не работает, создайте или обновите задачу с заголовком
Beta blocker: <plugin-name> - <summary>и назначьте меткуbeta-blocker. Добавьте ссылку на задачу в свою ветку. - Откройте PR в
mainс заголовкомfix(<plugin-id>): beta blocker - <summary>и добавьте ссылку на задачу как в PR, так и в свою ветку Discord. Участники не могут назначать метки PR, поэтому заголовок служит сигналом для сопровождающих и автоматизации со стороны PR. Блокирующие проблемы с PR будут исправлены до выпуска; без PR выпуск может состояться несмотря на них. - Отсутствие сообщений означает, что всё работает. Если пропустить это окно, исправление обычно попадёт в следующий цикл.
Дальнейшие действия
Плагины каналов
Создайте плагин канала обмена сообщениями
Плагины провайдеров
Создайте плагин провайдера моделей
Плагины бэкендов CLI
Зарегистрируйте локальный бэкенд CLI для ИИ
Обзор SDK
Справочник по карте импорта и API регистрации
Вспомогательные средства среды выполнения
TTS, поиск и субагент через api.runtime
Тестирование
Утилиты и шаблоны тестирования
Манифест плагина
Полный справочник по схеме манифеста