clawhub:, коли потрібне розв’язання через ClawHub.
Вимоги
- Node 22.22.3+, Node 24.15+ або Node 25.9+, а також
npmчиpnpm. - Модулі TypeScript ESM.
- Для роботи з вбудованими в репозиторій Plugin клонуйте репозиторій і виконайте
pnpm install. Розробка Plugin у вихідному коді підтримує лише pnpm, оскільки OpenClaw виявляє вбудовані Plugins у пакетах робочого просторуextensions/*.
Вибір структури Plugin
Plugin каналу
Підключення OpenClaw до платформи обміну повідомленнями.
Plugin постачальника
Додавання постачальника моделей, медіа, пошуку, отримання даних, мовлення або взаємодії в реальному часі.
Plugin серверного модуля CLI
Запуск локального CLI ШІ через резервний вибір моделі OpenClaw.
Plugin інструменту
Реєстрація інструментів агента.
Швидкий початок
Створіть мінімальний Plugin інструменту, зареєструвавши один обов’язковий інструмент агента. Це найкоротша корисна структура Plugin, що охоплює пакунок, маніфест, точку входу та локальну перевірку.1
Створіть метадані пакунка
contracts.tools, щоб OpenClaw міг визначати їхню належність без
завчасного завантаження середовища виконання кожного Plugin. Задавайте activation.onStartup
свідомо; у цьому прикладі завантаження відбувається під час запуску Gateway.Поверхні Plugin, яким довіряє хост, також обмежуються маніфестом і потребують явного
оголошення для встановлених Plugins: для api.registerAgentToolResultMiddleware(...)
кожне цільове середовище виконання має бути вказано в contracts.agentToolResultMiddleware,
а для api.registerTrustedToolPolicy(...) кожен ідентифікатор політики має бути вказано в
contracts.trustedToolPolicies. Ці оголошення узгоджують перевірку під час
встановлення з реєстрацією в середовищі виконання.Усі поля маніфесту описано в розділі Маніфест Plugin.2
Зареєструйте інструмент
index.ts
definePluginEntry для Plugins, що не є каналами. Натомість Plugins каналів використовують
defineChannelPluginEntry з openclaw/plugin-sdk/core.3
Перевірте середовище виконання
Для встановленого або зовнішнього Plugin перевірте завантажене середовище виконання:Якщо Plugin реєструє команду CLI, також виконайте цю команду й перевірте
вивід, наприклад
openclaw demo-plugin ping.Для вбудованого Plugin у цьому репозиторії OpenClaw виявляє пакунки Plugin
у вихідному коді з робочого простору extensions/*. Виконайте найближчий цільовий
тест:4
Перевірте встановлення пакунка
Перед публікацією готового до пакування Plugin перевірте ту саму структуру встановлення, яку
отримають користувачі. Спочатку додайте крок збирання, спрямуйте точки входу середовища виконання, як-от
openclaw.extensions, на зібраний JavaScript, наприклад ./dist/index.js, і
переконайтеся, що npm pack містить результат dist/. Точки входу у вихідному коді TypeScript
призначені лише для вихідних копій репозиторію та локальних шляхів розробки.Потім запакуйте Plugin і встановіть tarball за допомогою npm-pack::npm-pack: використовує керований OpenClaw окремий npm-проєкт для кожного Plugin, тому виявляє
помилки залежностей середовища виконання, які може приховати тестування вихідної копії. Це підтверджує
структуру пакунка й залежностей, але не офіційну довіру, пов’язану з каталогом.
Імпорти середовища виконання мають бути в dependencies або optionalDependencies;
залежності, залишені лише в devDependencies, не буде встановлено для
керованого проєкту середовища виконання.Не використовуйте встановлення безпосередньо з архіву чи шляху як остаточне підтвердження офіційної або
привілейованої поведінки Plugin. Вихідні файли корисні для локального налагодження, але
вони не підтверджують той самий шлях залежностей, що й встановлення з npm або ClawHub. Якщо
Plugin покладається на довірений статус офіційного Plugin, додайте другу перевірку
через офіційне встановлення з каталогу або шлях опублікованого пакунка, який
фіксує офіційну довіру. Докладніше про корінь встановлення та належність залежностей див. у розділі
Розв’язання залежностей Plugin.5
Опублікуйте
Перевірте пакунок перед публікацією:Канонічні фрагменти пакунків ClawHub містяться в
docs/snippets/plugin-publish/.6
Установіть
Установіть опублікований пакунок через ClawHub:
Реєстрація інструментів
Інструменти можуть бути обов’язковими або необов’язковими. Обов’язкові інструменти завжди доступні, коли Plugin увімкнено. Для необов’язкових інструментів потрібна явна згода користувача, перш ніж OpenClaw завантажить середовище виконання Plugin-власника. Фабрики інструментів отримують довірений контекст середовища виконання, зокремаdeliveryContext,
nativeChannelId для активної розмови на платформі, якщо вона доступна, і
requesterSenderId.
api.registerTool(...), також має бути оголошений у
маніфесті Plugin:
tools.allow:
name, execute, що не є функцією, або дескриптор інструмента без об’єкта parameters.
Фабрики інструментів отримують об’єкт контексту, наданий середовищем виконання. Використовуйте ctx.activeModel,
коли інструменту потрібно журналювати, показувати або адаптуватися до активної моделі для поточного
ходу; він може містити provider, modelId та modelRef. Сприймайте його як
інформаційні метадані середовища виконання, а не як межу безпеки від локального
оператора, коду встановленого Plugin або зміненого середовища виконання OpenClaw. Чутливі
локальні інструменти все одно мають вимагати явної згоди на рівні Plugin або оператора й
завершуватися відмовою, якщо метадані активної моделі відсутні або непридатні.
Маніфест оголошує належність і виявлення; під час виконання все одно викликається чинна
зареєстрована реалізація інструмента. Узгоджуйте toolMetadata.<tool>.optional: true
з api.registerTool(..., { optional: true }), щоб OpenClaw міг не
завантажувати середовище виконання цього Plugin, доки інструмент не буде явно додано до списку дозволених.
Правила імпорту
Імпортуйте зі спеціалізованих підшляхів SDK:api.ts та
runtime-api.ts, для внутрішніх імпортів. Не імпортуйте власний Plugin через
шлях SDK. Допоміжні засоби, специфічні для постачальника, мають залишатися в пакунку постачальника, якщо
інтерфейс не є справді універсальним.
Власні методи RPC Gateway — це розширена точка входу. Використовуйте для них
префікс, специфічний для Plugin; основні адміністративні простори назв, як-от config.*,
exec.approvals.*, operator.admin.*, wizard.* та update.*, залишаються зарезервованими
й повертають operator.admin. Міст
openclaw/plugin-sdk/gateway-method-runtime зарезервовано для HTTP-маршрутів Plugin,
які оголошують contracts.gatewayMethodDispatch: ["authenticated-request"].
Повну карту імпортів див. у розділі Огляд SDK Plugin.
Контрольний список перед поданням
package.json містить правильні метадані
openclawМаніфест openclaw.plugin.json наявний і дійсний
Точка входу використовує
defineChannelPluginEntry або definePluginEntryУсі імпорти використовують спеціалізовані шляхи
plugin-sdk/<subpath>Внутрішні імпорти використовують локальні модулі, а не самоімпорти SDK
Тести проходять (
pnpm test <bundled-plugin-root>/my-plugin/)pnpm check проходить (для Plugins у репозиторії)Тестування з бета-версіями
- Стежте за випусками 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 буде об’єднано; блокувальні проблеми без нього можуть потрапити у випуск без виправлення. - Відсутність повідомлень означає, що все гаразд. Якщо пропустити цей період, виправлення зазвичай потрапить у наступний цикл.
Наступні кроки
Плагіни каналів
Створення плагіна каналу обміну повідомленнями
Плагіни постачальників
Створення плагіна постачальника моделей
Плагіни серверної частини CLI
Реєстрація локальної серверної частини CLI для ШІ
Огляд SDK
Довідник із карти імпортів та API реєстрації
Допоміжні засоби середовища виконання
Синтез мовлення, пошук і підагент через api.runtime
Тестування
Утиліти та шаблони тестування
Маніфест плагіна
Повний довідник зі схеми маніфесту