chore(i18n): refresh uk translations
This commit is contained in:
parent
bf66d50e49
commit
6e0d8193d8
@ -1,27 +1,27 @@
|
||||
---
|
||||
read_when:
|
||||
- Ви хочете встановити плагіни Gateway або керувати ними чи сумісними пакетами
|
||||
- Ви хочете налагодити збої завантаження Plugin
|
||||
- Ви хочете встановити Plugin Gateway або керувати ними чи сумісними пакетами
|
||||
- Ви хочете діагностувати збої завантаження Plugin
|
||||
sidebarTitle: Plugins
|
||||
summary: Довідник CLI для `openclaw plugins` (list, install, marketplace, uninstall, enable/disable, doctor)
|
||||
title: Плагіни
|
||||
title: Plugins
|
||||
x-i18n:
|
||||
generated_at: "2026-05-02T19:10:59Z"
|
||||
generated_at: "2026-05-02T19:23:34Z"
|
||||
model: gpt-5.5
|
||||
provider: openai
|
||||
source_hash: c708f1f9d06bd07ba87ec0d88c98dacccca28422ea1097f98e07b4ee03697508
|
||||
source_hash: 6fc046a04175c1b22f787920bf5ec28c24d0bb7d62eda4d9517da8f5dbac4c50
|
||||
source_path: cli/plugins.md
|
||||
workflow: 16
|
||||
---
|
||||
|
||||
Керуйте Plugin-и Gateway, пакетами хуків і сумісними бандлами.
|
||||
Керуйте Plugin для Gateway, пакетами хуків і сумісними бандлами.
|
||||
|
||||
<CardGroup cols={2}>
|
||||
<Card title="Система Plugin" href="/uk/tools/plugin">
|
||||
Посібник для кінцевих користувачів зі встановлення, увімкнення та усунення несправностей Plugin-и.
|
||||
Посібник для кінцевих користувачів з установлення, увімкнення та усунення проблем із plugins.
|
||||
</Card>
|
||||
<Card title="Керування Plugin-и" href="/uk/plugins/manage-plugins">
|
||||
Короткі приклади для встановлення, виведення списку, оновлення, видалення та публікації.
|
||||
<Card title="Керування plugins" href="/uk/plugins/manage-plugins">
|
||||
Швидкі приклади для встановлення, перегляду списку, оновлення, видалення та публікації.
|
||||
</Card>
|
||||
<Card title="Бандли Plugin" href="/uk/plugins/bundles">
|
||||
Модель сумісності бандлів.
|
||||
@ -30,7 +30,7 @@ x-i18n:
|
||||
Поля маніфесту та схема конфігурації.
|
||||
</Card>
|
||||
<Card title="Безпека" href="/uk/gateway/security">
|
||||
Посилення безпеки для встановлень Plugin.
|
||||
Посилення безпеки для встановлення plugins.
|
||||
</Card>
|
||||
</CardGroup>
|
||||
|
||||
@ -63,18 +63,18 @@ openclaw plugins marketplace list <marketplace> --json
|
||||
```
|
||||
|
||||
Для розслідування повільного встановлення, інспектування, видалення або оновлення реєстру запустіть
|
||||
команду з `OPENCLAW_PLUGIN_LIFECYCLE_TRACE=1`. Трасування записує часові показники фаз
|
||||
команду з `OPENCLAW_PLUGIN_LIFECYCLE_TRACE=1`. Трасування записує час виконання фаз
|
||||
у stderr і зберігає JSON-вивід придатним для парсингу. Див. [Налагодження](/uk/help/debugging#plugin-lifecycle-trace).
|
||||
|
||||
<Note>
|
||||
Вбудовані Plugin-и постачаються з OpenClaw. Деякі ввімкнені за замовчуванням (наприклад, вбудовані провайдери моделей, вбудовані провайдери мовлення та вбудований браузерний Plugin); інші потребують `plugins enable`.
|
||||
Вбудовані plugins постачаються з OpenClaw. Деякі ввімкнені за замовчуванням (наприклад вбудовані провайдери моделей, вбудовані провайдери мовлення та вбудований браузерний plugin); інші потребують `plugins enable`.
|
||||
|
||||
Нативні Plugin-и OpenClaw мають постачати `openclaw.plugin.json` із вбудованою JSON Schema (`configSchema`, навіть якщо вона порожня). Сумісні бандли натомість використовують власні маніфести бандлів.
|
||||
Нативні plugins OpenClaw мають постачати `openclaw.plugin.json` з вбудованою JSON Schema (`configSchema`, навіть якщо вона порожня). Сумісні бандли натомість використовують власні маніфести бандлів.
|
||||
|
||||
`plugins list` показує `Format: openclaw` або `Format: bundle`. Детальний вивід list/info також показує підтип бандла (`codex`, `claude` або `cursor`) разом із виявленими можливостями бандла.
|
||||
`plugins list` показує `Format: openclaw` або `Format: bundle`. Докладний вивід списку/інформації також показує підтип бандла (`codex`, `claude` або `cursor`) і виявлені можливості бандла.
|
||||
</Note>
|
||||
|
||||
### Встановлення
|
||||
### Установлення
|
||||
|
||||
```bash
|
||||
openclaw plugins search "calendar" # search ClawHub plugins
|
||||
@ -93,96 +93,97 @@ openclaw plugins install <plugin> --marketplace https://github.com/<owner>/<repo
|
||||
```
|
||||
|
||||
<Warning>
|
||||
Голі назви пакетів під час перехідного запуску встановлюються з npm за замовчуванням. Використовуйте `clawhub:<package>` для ClawHub. Ставтеся до встановлення Plugin-ів як до запуску коду. Віддавайте перевагу зафіксованим версіям.
|
||||
Голі назви пакетів під час перехідного запуску встановлюються з npm за замовчуванням. Використовуйте `clawhub:<package>` для ClawHub. Ставтеся до встановлення plugins як до запуску коду. Надавайте перевагу закріпленим версіям.
|
||||
</Warning>
|
||||
|
||||
`plugins search` запитує ClawHub щодо доступних для встановлення пакетів Plugin-ів і виводить
|
||||
`plugins search` запитує ClawHub щодо доступних для встановлення пакетів plugins і виводить
|
||||
готові до встановлення назви пакетів. Він шукає пакети code-plugin і bundle-plugin,
|
||||
а не Skills. Використовуйте `openclaw skills search` для Skills ClawHub.
|
||||
а не skills. Використовуйте `openclaw skills search` для Skills ClawHub.
|
||||
|
||||
<Note>
|
||||
ClawHub є основною поверхнею розповсюдження та виявлення для більшості Plugin-ів. Npm
|
||||
ClawHub є основною поверхнею розповсюдження та виявлення для більшості plugins. Npm
|
||||
залишається підтримуваним резервним варіантом і шляхом прямого встановлення. Під час міграції до
|
||||
ClawHub OpenClaw усе ще постачає деякі належні OpenClaw пакети Plugin-ів `@openclaw/*`
|
||||
на npm; версії цих пакетів можуть відставати від вбудованого вихідного коду між поїздами випусків Plugin-ів. Якщо npm повідомляє, що належний OpenClaw пакет Plugin застарілий, ця
|
||||
опублікована версія є старим зовнішнім артефактом; використовуйте Plugin, вбудований у
|
||||
ClawHub OpenClaw усе ще постачає деякі пакети plugins, що належать OpenClaw, `@openclaw/*`
|
||||
у npm; версії цих пакетів можуть відставати від вбудованого вихідного коду між
|
||||
циклами випуску plugins. Якщо npm повідомляє, що пакет plugin, який належить OpenClaw, застарів, ця
|
||||
опублікована версія є старим зовнішнім артефактом; використовуйте plugin, вбудований у
|
||||
поточний OpenClaw, або локальний checkout, доки не буде опубліковано новіший пакет npm.
|
||||
</Note>
|
||||
|
||||
<AccordionGroup>
|
||||
<Accordion title="Включення конфігурації та відновлення після некоректної конфігурації">
|
||||
Якщо ваш розділ `plugins` підтримується однофайловим `$include`, `plugins install/update/enable/disable/uninstall` записують зміни в цей включений файл і залишають `openclaw.json` без змін. Кореневі включення, масиви включень і включення з сусідніми перевизначеннями завершуються закрито замість сплющення. Див. [Включення конфігурації](/uk/gateway/configuration) щодо підтримуваних форм.
|
||||
<Accordion title="Включення конфігурації та відновлення після недійсної конфігурації">
|
||||
Якщо ваш розділ `plugins` підтримується однофайловим `$include`, `plugins install/update/enable/disable/uninstall` записує зміни в цей включений файл і лишає `openclaw.json` без змін. Кореневі включення, масиви включень і включення з одноранговими перевизначеннями завершуються закрито замість вирівнювання. Див. [Включення конфігурації](/uk/gateway/configuration) для підтримуваних форм.
|
||||
|
||||
Якщо під час встановлення конфігурація некоректна, `plugins install` зазвичай завершується закрито й повідомляє, що спершу потрібно запустити `openclaw doctor --fix`. Під час запуску Gateway некоректна конфігурація одного Plugin ізолюється до цього Plugin, щоб інші канали та Plugin-и могли продовжувати працювати; `openclaw doctor --fix` може помістити некоректний запис Plugin у карантин. Єдиний задокументований виняток під час встановлення — вузький шлях відновлення вбудованих Plugin-ів для Plugin-ів, які явно вмикають `openclaw.install.allowInvalidConfigRecovery`.
|
||||
Якщо під час установлення конфігурація недійсна, `plugins install` зазвичай завершується закрито й повідомляє, що спершу треба запустити `openclaw doctor --fix`. Під час запуску Gateway недійсна конфігурація одного plugin ізолюється до цього plugin, щоб інші канали та plugins могли продовжувати роботу; `openclaw doctor --fix` може помістити недійсний запис plugin у карантин. Єдиний задокументований виняток під час установлення — вузький шлях відновлення для вбудованих plugins, які явно погоджуються на `openclaw.install.allowInvalidConfigRecovery`.
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="--force і перевстановлення проти оновлення">
|
||||
`--force` повторно використовує наявну ціль встановлення та перезаписує вже встановлений Plugin або пакет хуків на місці. Використовуйте його, коли ви навмисно перевстановлюєте той самий id з нового локального шляху, архіву, пакета ClawHub або артефакта npm. Для звичайних оновлень уже відстежуваного npm Plugin віддавайте перевагу `openclaw plugins update <id-or-npm-spec>`.
|
||||
<Accordion title="--force і перевстановлення порівняно з оновленням">
|
||||
`--force` повторно використовує наявну ціль установлення та перезаписує вже встановлений plugin або пакет хуків на місці. Використовуйте його, коли навмисно перевстановлюєте той самий id з нового локального шляху, архіву, пакета ClawHub або артефакта npm. Для звичайних оновлень уже відстежуваного plugin npm надавайте перевагу `openclaw plugins update <id-or-npm-spec>`.
|
||||
|
||||
Якщо ви запускаєте `plugins install` для id Plugin, який уже встановлено, OpenClaw зупиняється й спрямовує вас до `plugins update <id-or-npm-spec>` для звичайного оновлення або до `plugins install <package> --force`, коли ви справді хочете перезаписати поточне встановлення з іншого джерела.
|
||||
Якщо ви запускаєте `plugins install` для id plugin, який уже встановлено, OpenClaw зупиняється й указує на `plugins update <id-or-npm-spec>` для звичайного оновлення або на `plugins install <package> --force`, коли ви справді хочете перезаписати поточну установку з іншого джерела.
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="Область дії --pin">
|
||||
`--pin` застосовується лише до встановлень npm. Він не підтримується з установленнями `git:`; використовуйте явний git ref, наприклад `git:github.com/acme/plugin@v1.2.3`, коли вам потрібне зафіксоване джерело. Він не підтримується з `--marketplace`, оскільки marketplace-встановлення зберігають метадані джерела marketplace замість npm spec.
|
||||
`--pin` застосовується лише до встановлень npm. Він не підтримується з установленнями `git:`; використовуйте явне посилання git, наприклад `git:github.com/acme/plugin@v1.2.3`, коли хочете закріпити джерело. Він не підтримується з `--marketplace`, оскільки встановлення з marketplace зберігають метадані джерела marketplace замість специфікації npm.
|
||||
</Accordion>
|
||||
<Accordion title="--dangerously-force-unsafe-install">
|
||||
`--dangerously-force-unsafe-install` — це аварійний параметр для хибних спрацювань у вбудованому сканері небезпечного коду. Він дозволяє встановленню продовжитися, навіть коли вбудований сканер повідомляє про знахідки `critical`, але він **не** обходить блокування політики хука Plugin `before_install` і **не** обходить збої сканування.
|
||||
`--dangerously-force-unsafe-install` — це аварійний параметр для хибних спрацьовувань у вбудованому сканері небезпечного коду. Він дозволяє продовжити встановлення, навіть коли вбудований сканер повідомляє про знахідки `critical`, але **не** обходить блокування політик хуків plugin `before_install` і **не** обходить збої сканування.
|
||||
|
||||
Цей CLI-прапорець застосовується до потоків встановлення/оновлення Plugin. Встановлення залежностей Skills через Gateway використовують відповідне перевизначення запиту `dangerouslyForceUnsafeInstall`, тоді як `openclaw skills install` залишається окремим потоком завантаження/встановлення Skills із ClawHub.
|
||||
Цей прапорець CLI застосовується до потоків установлення/оновлення plugin. Встановлення залежностей Skills через Gateway використовують відповідне перевизначення запиту `dangerouslyForceUnsafeInstall`, тоді як `openclaw skills install` залишається окремим потоком завантаження/встановлення Skills із ClawHub.
|
||||
|
||||
Якщо Plugin, який ви опублікували на ClawHub, блокується скануванням реєстру, скористайтеся кроками для видавця в [ClawHub](/uk/tools/clawhub).
|
||||
Якщо plugin, який ви опублікували в ClawHub, заблоковано скануванням реєстру, скористайтеся кроками для видавця в [ClawHub](/uk/tools/clawhub).
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="Пакети хуків і npm specs">
|
||||
`plugins install` також є поверхнею встановлення для пакетів хуків, які експонують `openclaw.hooks` у `package.json`. Використовуйте `openclaw hooks` для фільтрованої видимості хуків і ввімкнення окремих хуків, а не для встановлення пакетів.
|
||||
<Accordion title="Пакети хуків і специфікації npm">
|
||||
`plugins install` також є поверхнею встановлення для пакетів хуків, які надають `openclaw.hooks` у `package.json`. Використовуйте `openclaw hooks` для фільтрованої видимості хуків і ввімкнення окремих хуків, а не для встановлення пакетів.
|
||||
|
||||
Npm specs є **лише реєстровими** (назва пакета + необов’язкова **точна версія** або **dist-tag**). Git/URL/file specs і діапазони semver відхиляються. Встановлення залежностей виконується локально для проєкту з `--ignore-scripts` для безпеки, навіть якщо ваша оболонка має глобальні налаштування встановлення npm.
|
||||
Специфікації npm є **лише реєстровими** (назва пакета + необов’язкова **точна версія** або **dist-tag**). Специфікації Git/URL/file і діапазони semver відхиляються. Встановлення залежностей виконується локально для проєкту з `--ignore-scripts` задля безпеки, навіть якщо ваша оболонка має глобальні налаштування встановлення npm.
|
||||
|
||||
Використовуйте `npm:<package>`, коли хочете зробити розв’язання npm явним. Голі package specs також встановлюються безпосередньо з npm під час перехідного запуску.
|
||||
Використовуйте `npm:<package>`, коли хочете явно вказати розв’язання npm. Голі специфікації пакетів також установлюються напряму з npm під час перехідного запуску.
|
||||
|
||||
Голі specs і `@latest` залишаються на стабільному треку. Якщо npm розв’язує будь-який із них до prerelease, OpenClaw зупиняється й просить вас явно погодитися за допомогою prerelease-тега, такого як `@beta`/`@rc`, або точної prerelease-версії, такої як `@1.2.3-beta.4`.
|
||||
Голі специфікації та `@latest` залишаються на стабільній гілці. Якщо npm розв’язує будь-яку з них до prerelease, OpenClaw зупиняється й просить вас явно погодитися за допомогою prerelease-тегу, такого як `@beta`/`@rc`, або точної prerelease-версії, такої як `@1.2.3-beta.4`.
|
||||
|
||||
Якщо голий install spec збігається з офіційним id Plugin (наприклад, `diffs`), OpenClaw встановлює запис каталогу безпосередньо. Щоб встановити пакет npm з такою самою назвою, використовуйте явний scoped spec (наприклад, `@scope/diffs`).
|
||||
Якщо гола специфікація встановлення збігається з офіційним id plugin (наприклад `diffs`), OpenClaw встановлює запис каталогу напряму. Щоб установити пакет npm з такою самою назвою, використовуйте явну scoped-специфікацію (наприклад `@scope/diffs`).
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="Git-репозиторії">
|
||||
Використовуйте `git:<repo>`, щоб установити безпосередньо з git-репозиторію. Підтримувані форми включають `git:github.com/owner/repo`, `git:owner/repo`, повні URL клонування `https://`, `ssh://`, `git://`, `file://` і `git@host:owner/repo.git`. Додайте `@<ref>` або `#<ref>`, щоб перед встановленням перейти на гілку, тег або коміт.
|
||||
<Accordion title="Репозиторії Git">
|
||||
Використовуйте `git:<repo>` для встановлення напряму з репозиторію git. Підтримувані форми включають `git:github.com/owner/repo`, `git:owner/repo`, повні URL клонування `https://`, `ssh://`, `git://`, `file://` і `git@host:owner/repo.git`. Додайте `@<ref>` або `#<ref>`, щоб перед установленням перейти на гілку, тег або коміт.
|
||||
|
||||
Git-встановлення клонують у тимчасовий каталог, переходять на запитаний ref, якщо він присутній, а потім використовують звичайний інсталятор каталогу Plugin. Це означає, що валідація маніфесту, сканування небезпечного коду, робота встановлення менеджера пакетів і записи встановлення поводяться як npm-встановлення. Записані git-встановлення містять URL/ref джерела плюс розв’язаний коміт, щоб `openclaw plugins update` міг пізніше повторно розв’язати джерело.
|
||||
Установлення з Git клонують у тимчасовий каталог, переходять на запитаний ref, якщо він присутній, а потім використовують звичайний інсталятор каталогу plugin. Це означає, що перевірка маніфесту, сканування небезпечного коду, робота встановлення менеджера пакетів і записи встановлення поводяться як установлення npm. Записані встановлення git включають URL/ref джерела плюс розв’язаний коміт, щоб `openclaw plugins update` міг повторно розв’язати джерело пізніше.
|
||||
|
||||
Після встановлення з git використовуйте `openclaw plugins inspect <id> --runtime --json`, щоб перевірити runtime-реєстрації, як-от методи gateway і CLI-команди. Якщо Plugin зареєстрував CLI-корінь за допомогою `api.registerCli`, виконайте цю команду безпосередньо через кореневий CLI OpenClaw, наприклад `openclaw demo-plugin ping`.
|
||||
Після встановлення з git використовуйте `openclaw plugins inspect <id> --runtime --json`, щоб перевірити реєстрації часу виконання, як-от методи gateway та команди CLI. Якщо plugin зареєстрував корінь CLI через `api.registerCli`, виконайте цю команду напряму через кореневий CLI OpenClaw, наприклад `openclaw demo-plugin ping`.
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="Архіви">
|
||||
Підтримувані архіви: `.zip`, `.tgz`, `.tar.gz`, `.tar`. Архіви нативних Plugin-ів OpenClaw мають містити дійсний `openclaw.plugin.json` у корені видобутого Plugin; архіви, які містять лише `package.json`, відхиляються до того, як OpenClaw записує записи встановлення.
|
||||
Підтримувані архіви: `.zip`, `.tgz`, `.tar.gz`, `.tar`. Архіви нативних plugins OpenClaw мають містити дійсний `openclaw.plugin.json` у корені витягнутого plugin; архіви, що містять лише `package.json`, відхиляються до того, як OpenClaw запише записи встановлення.
|
||||
|
||||
Встановлення з Claude marketplace також підтримуються.
|
||||
Встановлення з marketplace Claude також підтримуються.
|
||||
|
||||
</Accordion>
|
||||
</AccordionGroup>
|
||||
|
||||
Встановлення ClawHub використовують явний локатор `clawhub:<package>`:
|
||||
Встановлення з ClawHub використовують явний локатор `clawhub:<package>`:
|
||||
|
||||
```bash
|
||||
openclaw plugins install clawhub:openclaw-codex-app-server
|
||||
openclaw plugins install clawhub:openclaw-codex-app-server@1.2.3
|
||||
```
|
||||
|
||||
Голі npm-безпечні specs Plugin-ів під час перехідного запуску встановлюються з npm за замовчуванням:
|
||||
Голі npm-сумісні специфікації plugins під час перехідного запуску встановлюються з npm за замовчуванням:
|
||||
|
||||
```bash
|
||||
openclaw plugins install openclaw-codex-app-server
|
||||
```
|
||||
|
||||
Використовуйте `npm:`, щоб зробити розв’язання лише через npm явним:
|
||||
Використовуйте `npm:`, щоб явно вказати розв’язання лише через npm:
|
||||
|
||||
```bash
|
||||
openclaw plugins install npm:openclaw-codex-app-server
|
||||
openclaw plugins install npm:@scope/plugin-name@1.0.1
|
||||
```
|
||||
|
||||
OpenClaw перевіряє заявлену сумісність plugin API / minimum gateway перед встановленням. Коли вибрана версія ClawHub публікує артефакт ClawPack, OpenClaw завантажує версіонований npm-pack `.tgz`, перевіряє digest-заголовок ClawHub і digest артефакта, а потім установлює його через звичайний архівний шлях. Старіші версії ClawHub без метаданих ClawPack усе ще встановлюються через застарілий шлях перевірки архіву пакета. Записані встановлення зберігають метадані джерела ClawHub, тип артефакта, npm integrity, npm shasum, назву tarball і факти digest ClawPack для подальших оновлень.
|
||||
Неверсіоновані встановлення ClawHub зберігають неверсіонований записаний spec, щоб `openclaw plugins update` міг відстежувати новіші випуски ClawHub; явні селектори версії або тегу, такі як `clawhub:pkg@1.2.3` і `clawhub:pkg@beta`, залишаються зафіксованими на цьому селекторі.
|
||||
OpenClaw перевіряє оголошену сумісність API plugin / мінімального gateway перед установленням. Коли вибрана версія ClawHub публікує артефакт ClawPack, OpenClaw завантажує версіонований npm-pack `.tgz`, перевіряє заголовок дайджесту ClawHub і дайджест артефакта, а потім установлює його через звичайний шлях архіву. Старіші версії ClawHub без метаданих ClawPack усе ще встановлюються через застарілий шлях перевірки архіву пакета. Записані встановлення зберігають свої метадані джерела ClawHub, тип артефакта, npm integrity, npm shasum, назву tarball і факти дайджесту ClawPack для подальших оновлень.
|
||||
Неверсіоновані встановлення ClawHub зберігають неверсіоновану записану специфікацію, щоб `openclaw plugins update` міг відстежувати новіші випуски ClawHub; явні селектори версії або тегу, такі як `clawhub:pkg@1.2.3` і `clawhub:pkg@beta`, залишаються закріпленими до цього селектора.
|
||||
|
||||
#### Скорочення marketplace
|
||||
|
||||
@ -203,28 +204,28 @@ openclaw plugins install <plugin-name> --marketplace ./my-marketplace
|
||||
```
|
||||
|
||||
<Tabs>
|
||||
<Tab title="Джерела маркетплейсу">
|
||||
- назва відомого маркетплейсу Claude з `~/.claude/plugins/known_marketplaces.json`
|
||||
- локальний корінь маркетплейсу або шлях `marketplace.json`
|
||||
- скорочення репозиторію GitHub, наприклад `owner/repo`
|
||||
- URL репозиторію GitHub, наприклад `https://github.com/owner/repo`
|
||||
- URL git
|
||||
<Tab title="Marketplace sources">
|
||||
- назва відомого marketplace Claude з `~/.claude/plugins/known_marketplaces.json`
|
||||
- локальний корінь marketplace або шлях `marketplace.json`
|
||||
- скорочення репозиторію GitHub, як-от `owner/repo`
|
||||
- URL репозиторію GitHub, як-от `https://github.com/owner/repo`
|
||||
- git URL
|
||||
|
||||
</Tab>
|
||||
<Tab title="Правила віддаленого маркетплейсу">
|
||||
Для віддалених маркетплейсів, завантажених із GitHub або git, записи плагінів мають залишатися всередині клонованого репозиторію маркетплейсу. OpenClaw приймає джерела з відносними шляхами з цього репозиторію та відхиляє HTTP(S), абсолютні шляхи, git, GitHub та інші джерела плагінів, що не є шляхами, з віддалених маніфестів.
|
||||
<Tab title="Remote marketplace rules">
|
||||
Для віддалених marketplace, завантажених із GitHub або git, записи плагінів мають залишатися всередині клонованого репозиторію marketplace. OpenClaw приймає джерела відносних шляхів із цього репозиторію та відхиляє HTTP(S), абсолютні шляхи, git, GitHub та інші не-шляхові джерела плагінів із віддалених маніфестів.
|
||||
</Tab>
|
||||
</Tabs>
|
||||
|
||||
Для локальних шляхів і архівів OpenClaw автоматично визначає:
|
||||
Для локальних шляхів і архівів OpenClaw автоматично виявляє:
|
||||
|
||||
- нативні плагіни OpenClaw (`openclaw.plugin.json`)
|
||||
- сумісні з Codex пакети (`.codex-plugin/plugin.json`)
|
||||
- сумісні з Claude пакети (`.claude-plugin/plugin.json` або стандартне компонування компонентів Claude)
|
||||
- сумісні з Cursor пакети (`.cursor-plugin/plugin.json`)
|
||||
- Codex-сумісні пакети (`.codex-plugin/plugin.json`)
|
||||
- Claude-сумісні пакети (`.claude-plugin/plugin.json` або стандартне компонування компонентів Claude)
|
||||
- Cursor-сумісні пакети (`.cursor-plugin/plugin.json`)
|
||||
|
||||
<Note>
|
||||
Сумісні пакети встановлюються у звичайний корінь плагінів і беруть участь у тому самому потоці list/info/enable/disable. Наразі підтримуються Skills пакетів, командні Skills Claude, типові значення Claude `settings.json`, типові значення Claude `.lsp.json` / оголошених у маніфесті `lspServers`, командні Skills Cursor і сумісні каталоги хуків Codex; інші виявлені можливості пакетів показуються в діагностиці/інформації, але ще не під’єднані до виконання під час роботи.
|
||||
Сумісні пакети встановлюються у звичайний корінь плагінів і беруть участь у тому самому потоці list/info/enable/disable. Наразі підтримуються Skills пакетів, command-skills Claude, стандартні значення Claude `settings.json`, стандартні значення Claude `.lsp.json` / оголошених у маніфесті `lspServers`, command-skills Cursor і сумісні каталоги хуків Codex; інші виявлені можливості пакетів показуються в diagnostics/info, але ще не підключені до виконання під час runtime.
|
||||
</Note>
|
||||
|
||||
### Список
|
||||
@ -240,59 +241,59 @@ openclaw plugins search <query> --json
|
||||
```
|
||||
|
||||
<ParamField path="--enabled" type="boolean">
|
||||
Показувати лише ввімкнені плагіни.
|
||||
Показувати лише увімкнені плагіни.
|
||||
</ParamField>
|
||||
<ParamField path="--verbose" type="boolean">
|
||||
Перемкнутися з табличного подання на рядки докладних відомостей для кожного плагіна з метаданими джерела/походження/версії/активації.
|
||||
Перемкнутися з табличного подання на рядки деталей для кожного плагіна з метаданими source/origin/version/activation.
|
||||
</ParamField>
|
||||
<ParamField path="--json" type="boolean">
|
||||
Машиночитний інвентар, а також діагностика реєстру і стан встановлення залежностей пакетів.
|
||||
Машиночитний інвентар, а також діагностика registry і стан встановлення залежностей пакета.
|
||||
</ParamField>
|
||||
|
||||
<Note>
|
||||
`plugins list` спочатку читає збережений локальний реєстр плагінів, із запасним варіантом, похідним лише від маніфесту, коли реєстр відсутній або недійсний. Це корисно для перевірки, чи плагін встановлений, увімкнений і видимий для планування холодного запуску, але це не активна перевірка під час виконання вже запущеного процесу Gateway. Після зміни коду плагіна, увімкнення, політики хуків або `plugins.load.paths` перезапустіть Gateway, що обслуговує канал, перш ніж очікувати запуску нового коду `register(api)` або хуків. Для віддалених/контейнерних розгортань перевірте, що ви перезапускаєте фактичний дочірній процес `openclaw gateway run`, а не лише процес-обгортку.
|
||||
`plugins list` спершу читає збережений локальний registry плагінів, із резервним варіантом, похідним лише з маніфесту, коли registry відсутній або недійсний. Це корисно для перевірки, чи плагін встановлено, увімкнено та видно для планування холодного запуску, але це не live runtime-перевірка вже запущеного процесу Gateway. Після зміни коду плагіна, стану ввімкнення, політики хуків або `plugins.load.paths` перезапустіть Gateway, який обслуговує канал, перш ніж очікувати запуску нового коду `register(api)` або хуків. Для віддалених/container розгортань перевірте, що ви перезапускаєте фактичний дочірній процес `openclaw gateway run`, а не лише процес-обгортку.
|
||||
|
||||
`plugins list --json` містить `dependencyStatus` кожного плагіна з `package.json`
|
||||
`dependencies` і `optionalDependencies`. OpenClaw перевіряє, чи ці назви пакетів
|
||||
присутні вздовж звичайного шляху пошуку Node `node_modules` для плагіна; він
|
||||
не імпортує код виконання плагіна, не запускає менеджер пакетів і не виправляє
|
||||
відсутні залежності.
|
||||
`plugins list --json` включає `dependencyStatus` кожного плагіна з `package.json`
|
||||
`dependencies` і `optionalDependencies`. OpenClaw перевіряє, чи присутні ці назви пакетів
|
||||
уздовж звичайного шляху пошуку Node `node_modules` для плагіна; він
|
||||
не імпортує runtime-код плагіна, не запускає менеджер пакетів і не відновлює відсутні
|
||||
залежності.
|
||||
</Note>
|
||||
|
||||
`plugins search` — це віддалений пошук у каталозі ClawHub. Він не перевіряє локальний
|
||||
стан, не змінює конфігурацію, не встановлює пакети й не завантажує код виконання плагіна. Результати пошуку
|
||||
містять назву пакета ClawHub, сімейство, канал, версію, підсумок і
|
||||
підказку для встановлення, наприклад `openclaw plugins install clawhub:<package>`.
|
||||
стан, не змінює config, не встановлює пакети й не завантажує runtime-код плагіна. Результати
|
||||
пошуку включають назву пакета ClawHub, family, channel, version, summary та
|
||||
підказку встановлення, як-от `openclaw plugins install clawhub:<package>`.
|
||||
|
||||
Для роботи з вбудованим плагіном усередині запакованого Docker-образу bind-монтуйте каталог
|
||||
джерел плагіна поверх відповідного запакованого шляху джерел, наприклад
|
||||
`/app/extensions/synology-chat`. OpenClaw виявить це змонтоване накладення джерел
|
||||
перед `/app/dist/extensions/synology-chat`; звичайно скопійований каталог джерел
|
||||
залишається неактивним, тож звичайні запаковані встановлення й далі використовують скомпільований dist.
|
||||
Для роботи з вбудованими плагінами всередині упакованого Docker-образу змонтуйте bind-mount вихідний
|
||||
каталог плагіна поверх відповідного упакованого вихідного шляху, наприклад
|
||||
`/app/extensions/synology-chat`. OpenClaw виявить це змонтоване накладання source
|
||||
перед `/app/dist/extensions/synology-chat`; звичайний скопійований вихідний
|
||||
каталог лишається неактивним, тож звичайні упаковані встановлення й далі використовують скомпільований dist.
|
||||
|
||||
Для налагодження хуків під час виконання:
|
||||
Для налагодження runtime-хуків:
|
||||
|
||||
- `openclaw plugins inspect <id> --runtime --json` показує зареєстровані хуки й діагностику з проходу інспектування із завантаженим модулем. Інспектування під час виконання ніколи не встановлює залежності; використовуйте `openclaw doctor --fix`, щоб очистити застарілий стан залежностей або встановити відсутні налаштовані завантажувані плагіни.
|
||||
- `openclaw gateway status --deep --require-rpc` підтверджує доступний Gateway, підказки сервісу/процесу, шлях конфігурації та справність RPC.
|
||||
- Невбудовані хуки розмови (`llm_input`, `llm_output`, `before_agent_finalize`, `agent_end`) потребують `plugins.entries.<id>.hooks.allowConversationAccess=true`.
|
||||
- `openclaw plugins inspect <id> --runtime --json` показує зареєстровані хуки та діагностику з проходу інспекції із завантаженням модуля. Runtime-інспекція ніколи не встановлює залежності; використовуйте `openclaw doctor --fix`, щоб очистити застарілий стан залежностей або встановити відсутні налаштовані завантажувані плагіни.
|
||||
- `openclaw gateway status --deep --require-rpc` підтверджує досяжний Gateway, підказки service/process, шлях config і справність RPC.
|
||||
- Невбудовані conversation-хуки (`llm_input`, `llm_output`, `before_agent_finalize`, `agent_end`) потребують `plugins.entries.<id>.hooks.allowConversationAccess=true`.
|
||||
|
||||
Використовуйте `--link`, щоб не копіювати локальний каталог (додає до `plugins.load.paths`):
|
||||
Використовуйте `--link`, щоб уникнути копіювання локального каталогу (додає до `plugins.load.paths`):
|
||||
|
||||
```bash
|
||||
openclaw plugins install -l ./my-plugin
|
||||
```
|
||||
|
||||
<Note>
|
||||
`--force` не підтримується з `--link`, бо пов’язані встановлення повторно використовують шлях джерела замість копіювання поверх керованої цілі встановлення.
|
||||
`--force` не підтримується з `--link`, оскільки linked-встановлення повторно використовують вихідний шлях замість копіювання поверх керованої цілі встановлення.
|
||||
|
||||
Використовуйте `--pin` для npm-встановлень, щоб зберегти розв’язану точну специфікацію (`name@version`) у керованому індексі плагінів, залишаючи типову поведінку незакріпленою.
|
||||
Використовуйте `--pin` для npm-встановлень, щоб зберегти resolved exact spec (`name@version`) у керованому індексі плагінів, зберігаючи стандартну поведінку unpinned.
|
||||
</Note>
|
||||
|
||||
### Індекс плагінів
|
||||
### Індекс Plugin
|
||||
|
||||
Метадані встановлення плагінів — це стан, керований машиною, а не користувацька конфігурація. Встановлення та оновлення записують його до `plugins/installs.json` в активному каталозі стану OpenClaw. Його верхньорівнева мапа `installRecords` є сталим джерелом метаданих встановлення, включно із записами для пошкоджених або відсутніх маніфестів плагінів. Масив `plugins` — це похідний від маніфестів кеш холодного реєстру. Файл містить попередження не редагувати його та використовується `openclaw plugins update`, видаленням, діагностикою і холодним реєстром плагінів.
|
||||
Метадані встановлення Plugin — це керований машиною стан, а не користувацький config. Встановлення та оновлення записують його в `plugins/installs.json` під активним каталогом стану OpenClaw. Його верхньорівнева мапа `installRecords` є довговічним джерелом метаданих встановлення, зокрема записів для пошкоджених або відсутніх маніфестів плагінів. Масив `plugins` — це похідний від маніфесту cache холодного registry. Файл містить попередження не редагувати його та використовується `openclaw plugins update`, uninstall, diagnostics і холодним registry плагінів.
|
||||
|
||||
Коли OpenClaw бачить у конфігурації постачені застарілі записи `plugins.installs`, він переносить їх в індекс плагінів і видаляє ключ конфігурації; якщо будь-який запис не вдається, записи конфігурації зберігаються, щоб метадані встановлення не втратилися.
|
||||
Коли OpenClaw бачить у config доставлені застарілі записи `plugins.installs`, він переносить їх в індекс плагінів і видаляє ключ config; якщо будь-який запис не вдається, записи config зберігаються, щоб метадані встановлення не було втрачено.
|
||||
|
||||
### Видалення
|
||||
|
||||
@ -302,7 +303,7 @@ openclaw plugins uninstall <id> --dry-run
|
||||
openclaw plugins uninstall <id> --keep-files
|
||||
```
|
||||
|
||||
`uninstall` видаляє записи плагінів із `plugins.entries`, збереженого індексу плагінів, записів списків дозволу/заборони плагінів і пов’язаних записів `plugins.load.paths`, коли це застосовно. Якщо не задано `--keep-files`, видалення також прибирає відстежуваний керований каталог встановлення, коли він розташований усередині кореня розширень плагінів OpenClaw. Для плагінів Active Memory слот пам’яті скидається до `memory-core`.
|
||||
`uninstall` видаляє записи плагінів із `plugins.entries`, збереженого індексу плагінів, записів allow/deny list плагінів і linked-записів `plugins.load.paths`, коли застосовно. Якщо `--keep-files` не задано, uninstall також видаляє відстежуваний керований каталог встановлення, коли він міститься всередині кореня plugin extensions OpenClaw. Для плагінів active memory слот memory скидається до `memory-core`.
|
||||
|
||||
<Note>
|
||||
`--keep-config` підтримується як застарілий псевдонім для `--keep-files`.
|
||||
@ -318,29 +319,33 @@ openclaw plugins update @openclaw/voice-call@beta
|
||||
openclaw plugins update openclaw-codex-app-server --dangerously-force-unsafe-install
|
||||
```
|
||||
|
||||
Оновлення застосовуються до відстежуваних встановлень плагінів у керованому індексі плагінів і відстежуваних встановлень пакетів хуків у `hooks.internal.installs`.
|
||||
Оновлення застосовуються до відстежуваних встановлень плагінів у керованому індексі плагінів і відстежуваних встановлень hook-pack у `hooks.internal.installs`.
|
||||
|
||||
<AccordionGroup>
|
||||
<Accordion title="Розв’язання id плагіна та npm-специфікації">
|
||||
Коли ви передаєте id плагіна, OpenClaw повторно використовує записану специфікацію встановлення для цього плагіна. Це означає, що раніше збережені dist-теги, як-от `@beta`, і точні закріплені версії продовжують використовуватися під час пізніших запусків `update <id>`.
|
||||
<Accordion title="Resolving plugin id vs npm spec">
|
||||
Коли ви передаєте plugin id, OpenClaw повторно використовує записаний install spec для цього плагіна. Це означає, що раніше збережені dist-tags, як-от `@beta`, і точні pinned-версії продовжують використовуватися під час подальших запусків `update <id>`.
|
||||
|
||||
Для npm-встановлень також можна передати явну специфікацію npm-пакета з dist-тегом або точною версією. OpenClaw зіставляє цю назву пакета з відстежуваним записом плагіна, оновлює цей встановлений плагін і записує нову npm-специфікацію для майбутніх оновлень за id.
|
||||
Для npm-встановлень ви також можете передати явний npm package spec із dist-tag або точною версією. OpenClaw зіставляє цю назву пакета назад із відстежуваним записом плагіна, оновлює цей встановлений плагін і записує новий npm spec для майбутніх id-based оновлень.
|
||||
|
||||
Передавання назви npm-пакета без версії або тегу також зіставляється з відстежуваним записом плагіна. Використовуйте це, коли плагін було закріплено до точної версії, а ви хочете повернути його до типової лінії випусків реєстру.
|
||||
Передавання назви npm-пакета без версії або тега також зіставляється назад із відстежуваним записом плагіна. Використовуйте це, коли плагін було pinned до точної версії і ви хочете повернути його до стандартної release line registry.
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="Перевірки версій і дрейф цілісності">
|
||||
Перед фактичним npm-оновленням OpenClaw перевіряє встановлену версію пакета за метаданими npm-реєстру. Якщо встановлена версія і записана ідентичність артефакту вже відповідають розв’язаній цілі, оновлення пропускається без завантаження, перевстановлення або перезапису `openclaw.json`.
|
||||
|
||||
Коли збережений хеш цілісності існує, а хеш отриманого артефакту змінюється, OpenClaw розглядає це як дрейф артефакту npm. Інтерактивна команда `openclaw plugins update` друкує очікуваний і фактичний хеші та просить підтвердження перед продовженням. Неінтерактивні помічники оновлення завершуються блокувальною помилкою, якщо викликач не надає явну політику продовження.
|
||||
<Accordion title="Beta channel updates">
|
||||
`openclaw plugins update` повторно використовує відстежуваний plugin spec, якщо ви не передасте новий spec. `openclaw update` додатково знає активний канал оновлення OpenClaw: на beta-каналі записи npm і ClawHub плагінів default-line спершу пробують `@beta`, а потім повертаються до записаного default/latest spec, якщо beta-релізу плагіна немає. Точні версії та явні теги залишаються pinned до цього selector.
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="`--dangerously-force-unsafe-install` під час оновлення">
|
||||
`--dangerously-force-unsafe-install` також доступний у `plugins update` як екстрене перевизначення для хибнопозитивних спрацювань вбудованого сканування небезпечного коду під час оновлень плагінів. Він усе одно не обходить блокування політикою плагіна `before_install` або блокування через збій сканування, і застосовується лише до оновлень плагінів, а не до оновлень пакетів хуків.
|
||||
<Accordion title="Version checks and integrity drift">
|
||||
Перед live npm update OpenClaw перевіряє встановлену версію пакета щодо метаданих npm registry. Якщо встановлена версія та записана ідентичність artifact уже відповідають resolved target, оновлення пропускається без завантаження, перевстановлення або переписування `openclaw.json`.
|
||||
|
||||
Коли збережений integrity hash існує, а hash отриманого artifact змінюється, OpenClaw трактує це як npm artifact drift. Інтерактивна команда `openclaw plugins update` друкує очікуваний і фактичний hashes та просить підтвердження перед продовженням. Неінтерактивні update helpers завершуються fail-closed, якщо caller не надасть явну continuation policy.
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="--dangerously-force-unsafe-install on update">
|
||||
`--dangerously-force-unsafe-install` також доступний у `plugins update` як break-glass override для хибнопозитивних спрацювань built-in dangerous-code scan під час оновлень плагінів. Він усе одно не обходить policy blocks plugin `before_install` або блокування scan-failure і застосовується лише до оновлень плагінів, а не оновлень hook-pack.
|
||||
</Accordion>
|
||||
</AccordionGroup>
|
||||
|
||||
### Інспектування
|
||||
### Інспекція
|
||||
|
||||
```bash
|
||||
openclaw plugins inspect <id>
|
||||
@ -348,34 +353,34 @@ openclaw plugins inspect <id> --runtime
|
||||
openclaw plugins inspect <id> --json
|
||||
```
|
||||
|
||||
Інспектування показує ідентичність, стан завантаження, джерело, можливості маніфесту, прапорці політики, діагностику, метадані встановлення, можливості пакета та будь-яку виявлену підтримку серверів MCP або LSP без імпорту коду виконання плагіна за замовчуванням. Додайте `--runtime`, щоб завантажити модуль плагіна й включити зареєстровані хуки, інструменти, команди, сервіси, методи Gateway і HTTP-маршрути. Інспектування під час виконання напряму повідомляє про відсутні залежності плагіна; встановлення й виправлення залишаються в `openclaw plugins install`, `openclaw plugins update` і `openclaw doctor --fix`.
|
||||
Inspect показує identity, load status, source, можливості маніфесту, policy flags, diagnostics, install metadata, можливості пакета та будь-яку виявлену підтримку MCP або LSP server без стандартного імпорту runtime плагіна. Додайте `--runtime`, щоб завантажити модуль плагіна й включити зареєстровані хуки, tools, commands, services, gateway methods і HTTP routes. Runtime-інспекція повідомляє про відсутні залежності плагіна напряму; встановлення та відновлення залишаються в `openclaw plugins install`, `openclaw plugins update` і `openclaw doctor --fix`.
|
||||
|
||||
CLI-команди, що належать плагіну, встановлюються як кореневі групи команд `openclaw`. Після того як `inspect --runtime` покаже команду в `cliCommands`, запускайте її як `openclaw <command> ...`; наприклад, плагін, що реєструє `demo-git`, можна перевірити через `openclaw demo-git ping`.
|
||||
CLI-команди, власником яких є плагін, встановлюються як кореневі групи команд `openclaw`. Після того як `inspect --runtime` показує команду в `cliCommands`, запускайте її як `openclaw <command> ...`; наприклад, плагін, який реєструє `demo-git`, можна перевірити через `openclaw demo-git ping`.
|
||||
|
||||
Кожен плагін класифікується за тим, що він фактично реєструє під час виконання:
|
||||
Кожен плагін класифікується за тим, що він фактично реєструє під час runtime:
|
||||
|
||||
- **plain-capability** — один тип можливості (наприклад, плагін лише для провайдера)
|
||||
- **hybrid-capability** — кілька типів можливостей (наприклад, текст + мовлення + зображення)
|
||||
- **hook-only** — лише хуки, без можливостей або поверхонь
|
||||
- **non-capability** — інструменти/команди/сервіси, але без можливостей
|
||||
- **plain-capability** — один тип capability (наприклад, provider-only плагін)
|
||||
- **hybrid-capability** — кілька типів capability (наприклад, text + speech + images)
|
||||
- **hook-only** — лише хуки, без capabilities або surfaces
|
||||
- **non-capability** — tools/commands/services, але без capabilities
|
||||
|
||||
Див. [Форми Plugin](/uk/plugins/architecture#plugin-shapes), щоб дізнатися більше про модель можливостей.
|
||||
Див. [Форми Plugin](/uk/plugins/architecture#plugin-shapes), щоб дізнатися більше про модель capability.
|
||||
|
||||
<Note>
|
||||
Прапорець `--json` виводить машиночитний звіт, придатний для сценаріїв і аудиту. `inspect --all` відображає загальну таблицю для всього набору зі стовпцями форми, видів можливостей, повідомлень про сумісність, можливостей пакетів і підсумку хуків. `info` є псевдонімом для `inspect`.
|
||||
Прапорець `--json` виводить машиночитний звіт, придатний для scripting і auditing. `inspect --all` відображає таблицю для всього fleet зі стовпцями shape, capability kinds, compatibility notices, bundle capabilities і hook summary. `info` — псевдонім для `inspect`.
|
||||
</Note>
|
||||
|
||||
### Діагностика
|
||||
### Doctor
|
||||
|
||||
```bash
|
||||
openclaw plugins doctor
|
||||
```
|
||||
|
||||
`doctor` повідомляє про помилки завантаження плагінів, діагностику маніфестів/виявлення та повідомлення про сумісність. Коли все чисто, він друкує `No plugin issues detected.`
|
||||
`doctor` повідомляє про помилки завантаження плагінів, діагностику manifest/discovery і compatibility notices. Коли все чисто, він друкує `No plugin issues detected.`
|
||||
|
||||
Для збоїв форми модуля, таких як відсутні експорти `register`/`activate`, запустіть повторно з `OPENCLAW_PLUGIN_LOAD_DEBUG=1`, щоб додати компактний підсумок форми експорту до діагностичного виводу.
|
||||
Для module-shape failures, як-от відсутні експорти `register`/`activate`, повторно запустіть із `OPENCLAW_PLUGIN_LOAD_DEBUG=1`, щоб включити стислий export-shape summary у diagnostic output.
|
||||
|
||||
### Реєстр
|
||||
### Registry
|
||||
|
||||
```bash
|
||||
openclaw plugins registry
|
||||
@ -383,12 +388,12 @@ openclaw plugins registry --refresh
|
||||
openclaw plugins registry --json
|
||||
```
|
||||
|
||||
Локальний реєстр плагінів — це збережена холодна модель читання OpenClaw для ідентичності встановлених плагінів, увімкнення, метаданих джерела та володіння внеском. Звичайний запуск, пошук власника провайдера, класифікація налаштування каналу та інвентар плагінів можуть читати його без імпорту runtime-модулів плагінів.
|
||||
Локальний registry плагінів — це збережена холодна read model OpenClaw для identity встановлених плагінів, enablement, source metadata і contribution ownership. Звичайний startup, provider owner lookup, channel setup classification та plugin inventory можуть читати його без імпорту runtime modules плагінів.
|
||||
|
||||
Використовуйте `plugins registry`, щоб перевірити, чи збережений реєстр присутній, актуальний або застарілий. Використовуйте `--refresh`, щоб перебудувати його зі збереженого індексу плагінів, політики конфігурації та метаданих маніфесту/пакета. Це шлях виправлення, а не шлях runtime-активації.
|
||||
Використовуйте `plugins registry`, щоб перевірити, чи збережений registry присутній, поточний або застарілий. Використовуйте `--refresh`, щоб перебудувати його зі збереженого індексу плагінів, config policy і manifest/package metadata. Це шлях repair, а не шлях runtime activation.
|
||||
|
||||
<Warning>
|
||||
`OPENCLAW_DISABLE_PERSISTED_PLUGIN_REGISTRY=1` — це застарілий екстрений перемикач сумісності для збоїв читання реєстру. Віддавайте перевагу `plugins registry --refresh` або `openclaw doctor --fix`; резервний env-механізм призначений лише для екстреного відновлення запуску, поки розгортається міграція.
|
||||
`OPENCLAW_DISABLE_PERSISTED_PLUGIN_REGISTRY=1` — це застарілий аварійний перемикач сумісності для збоїв читання реєстру. Надавайте перевагу `plugins registry --refresh` або `openclaw doctor --fix`; резервний варіант через змінну середовища призначений лише для аварійного відновлення запуску під час розгортання міграції.
|
||||
</Warning>
|
||||
|
||||
### Маркетплейс
|
||||
@ -398,10 +403,10 @@ openclaw plugins marketplace list <source>
|
||||
openclaw plugins marketplace list <source> --json
|
||||
```
|
||||
|
||||
Список маркетплейсу приймає локальний шлях маркетплейсу, шлях `marketplace.json`, скорочення GitHub на кшталт `owner/repo`, URL репозиторію GitHub або URL git. `--json` друкує розв’язану мітку джерела, а також розібраний маніфест маркетплейсу і записи плагінів.
|
||||
Команда списку маркетплейса приймає локальний шлях до маркетплейса, шлях до `marketplace.json`, скорочення GitHub на кшталт `owner/repo`, URL репозиторію GitHub або git URL. `--json` виводить визначену мітку джерела, а також розібраний маніфест маркетплейса й записи плагінів.
|
||||
|
||||
## Пов’язане
|
||||
|
||||
- [Створення плагінів](/uk/plugins/building-plugins)
|
||||
- [Довідник CLI](/uk/cli)
|
||||
- [Плагіни спільноти](/uk/plugins/community)
|
||||
- [Спільнотні плагіни](/uk/plugins/community)
|
||||
|
||||
@ -1,14 +1,14 @@
|
||||
---
|
||||
read_when:
|
||||
- Ви хочете безпечно оновити робочу копію вихідного коду
|
||||
- Вам потрібно розуміти поведінку скороченого запису `--update`
|
||||
summary: Довідник CLI для `openclaw update` (відносно безпечне оновлення джерела + автоматичний перезапуск Gateway)
|
||||
title: Оновити
|
||||
- Потрібно зрозуміти поведінку скорочення `--update`
|
||||
summary: Довідник CLI для `openclaw update` (умовно безпечне оновлення джерела + автоматичний перезапуск Gateway)
|
||||
title: Оновлення
|
||||
x-i18n:
|
||||
generated_at: "2026-05-01T20:37:26Z"
|
||||
generated_at: "2026-05-02T19:23:28Z"
|
||||
model: gpt-5.5
|
||||
provider: openai
|
||||
source_hash: cc88dc7963f1ae7d847a573924e9af7ede207f2f20028a18808116de4912d24e
|
||||
source_hash: 35df8c6d8b1adb9597377f6e2b4844352577992c12636a88b3f3c1854dc0666b
|
||||
source_path: cli/update.md
|
||||
workflow: 16
|
||||
---
|
||||
@ -17,8 +17,8 @@ x-i18n:
|
||||
|
||||
Безпечно оновлюйте OpenClaw і перемикайтеся між каналами stable/beta/dev.
|
||||
|
||||
Якщо ви встановили через **npm/pnpm/bun** (глобальне встановлення, без метаданих git),
|
||||
оновлення відбуваються через потік менеджера пакетів, описаний у [Оновлення](/uk/install/updating).
|
||||
Якщо ви встановили через **npm/pnpm/bun** (глобальне встановлення, без git-метаданих),
|
||||
оновлення виконуються через потік менеджера пакетів у [Оновлення](/uk/install/updating).
|
||||
|
||||
## Використання
|
||||
|
||||
@ -39,23 +39,23 @@ openclaw --update
|
||||
|
||||
## Параметри
|
||||
|
||||
- `--no-restart`: пропустити перезапуск сервісу Gateway після успішного оновлення. Оновлення через менеджер пакетів, які перезапускають Gateway, перевіряють, що перезапущений сервіс повідомляє очікувану оновлену версію, перш ніж команда завершиться успішно.
|
||||
- `--channel <stable|beta|dev>`: установити канал оновлень (git + npm; зберігається в конфігурації).
|
||||
- `--tag <dist-tag|version|spec>`: перевизначити цільовий пакет лише для цього оновлення. Для встановлень із пакетів `main` відповідає `github:openclaw/openclaw#main`.
|
||||
- `--dry-run`: попередньо переглянути заплановані дії оновлення (канал/тег/ціль/потік перезапуску) без запису конфігурації, встановлення, синхронізації plugins або перезапуску.
|
||||
- `--json`: вивести машинозчитуваний JSON `UpdateRunResult`, включно з
|
||||
`postUpdate.plugins.integrityDrifts`, коли під час синхронізації plugins після оновлення
|
||||
виявлено розбіжність артефактів npm plugin.
|
||||
- `--no-restart`: пропустити перезапуск служби Gateway після успішного оновлення. Оновлення через менеджер пакетів, які перезапускають Gateway, перевіряють, що перезапущена служба повідомляє очікувану оновлену версію, перш ніж команда завершиться успішно.
|
||||
- `--channel <stable|beta|dev>`: установити канал оновлення (git + npm; зберігається в конфігурації).
|
||||
- `--tag <dist-tag|version|spec>`: перевизначити ціль пакета лише для цього оновлення. Для пакетних встановлень `main` відповідає `github:openclaw/openclaw#main`.
|
||||
- `--dry-run`: попередньо переглянути заплановані дії оновлення (канал/тег/ціль/потік перезапуску) без запису конфігурації, встановлення, синхронізації плагінів або перезапуску.
|
||||
- `--json`: вивести машиночитний JSON `UpdateRunResult`, включно з
|
||||
`postUpdate.plugins.integrityDrifts`, коли під час післяоновлювальної синхронізації плагінів
|
||||
виявлено дрейф npm-артефактів плагінів.
|
||||
- `--timeout <seconds>`: тайм-аут для кожного кроку (типово 1800 с).
|
||||
- `--yes`: пропустити запити підтвердження (наприклад, підтвердження повернення до старішої версії).
|
||||
- `--yes`: пропустити запити підтвердження (наприклад, підтвердження пониження версії).
|
||||
|
||||
<Warning>
|
||||
Повернення до старішої версії потребує підтвердження, оскільки старіші версії можуть порушити конфігурацію.
|
||||
Пониження версії потребує підтвердження, оскільки старіші версії можуть порушити конфігурацію.
|
||||
</Warning>
|
||||
|
||||
## `update status`
|
||||
|
||||
Показати активний канал оновлень + тег/гілку/SHA git (для checkout-ів із вихідного коду), а також доступність оновлень.
|
||||
Показати активний канал оновлення + git-тег/гілку/SHA (для checkout-ів із вихідного коду), а також доступність оновлень.
|
||||
|
||||
```bash
|
||||
openclaw update status
|
||||
@ -65,69 +65,69 @@ openclaw update status --timeout 10
|
||||
|
||||
Параметри:
|
||||
|
||||
- `--json`: вивести машинозчитуваний JSON стану.
|
||||
- `--json`: вивести машиночитний JSON стану.
|
||||
- `--timeout <seconds>`: тайм-аут для перевірок (типово 3 с).
|
||||
|
||||
## `update wizard`
|
||||
|
||||
Інтерактивний потік для вибору каналу оновлень і підтвердження, чи перезапускати Gateway
|
||||
після оновлення (типово перезапускається). Якщо вибрати `dev` без git checkout, він
|
||||
Інтерактивний потік для вибору каналу оновлення та підтвердження, чи перезапускати Gateway
|
||||
після оновлення (типово перезапуск виконується). Якщо вибрати `dev` без git checkout, він
|
||||
запропонує створити його.
|
||||
|
||||
Параметри:
|
||||
|
||||
- `--timeout <seconds>`: тайм-аут для кожного кроку оновлення (типово `1800`)
|
||||
|
||||
## Що це робить
|
||||
## Що він робить
|
||||
|
||||
Коли ви явно перемикаєте канали (`--channel ...`), OpenClaw також узгоджує
|
||||
метод встановлення:
|
||||
Коли ви явно перемикаєте канали (`--channel ...`), OpenClaw також підтримує
|
||||
узгодженість методу встановлення:
|
||||
|
||||
- `dev` → забезпечує git checkout (типово: `~/openclaw`, перевизначається через `OPENCLAW_GIT_DIR`),
|
||||
оновлює його й установлює глобальний CLI із цього checkout.
|
||||
- `dev` → забезпечує git checkout (типово: `~/openclaw`, можна перевизначити через `OPENCLAW_GIT_DIR`),
|
||||
оновлює його та встановлює глобальний CLI із цього checkout.
|
||||
- `stable` → встановлює з npm за допомогою `latest`.
|
||||
- `beta` → надає перевагу npm dist-tag `beta`, але повертається до `latest`, коли beta
|
||||
відсутня або старіша за поточний стабільний реліз.
|
||||
відсутня або старіша за поточний stable-реліз.
|
||||
|
||||
Автооновлювач ядра Gateway (коли його ввімкнено через конфігурацію) запускає шлях оновлення CLI
|
||||
поза активним обробником запитів Gateway. Оновлення через менеджер пакетів у площині керування
|
||||
`update.run` примусово виконують невідкладний перезапуск після оновлення без cooldown після заміни пакета,
|
||||
поза активним обробником запитів Gateway. Оновлення через менеджер пакетів `update.run` у площині керування
|
||||
примусово виконують невідкладний перезапуск оновлення без cooldown після заміни пакета,
|
||||
оскільки старий процес Gateway усе ще може мати в пам’яті фрагменти, що вказують на
|
||||
файли, видалені новим пакетом.
|
||||
|
||||
Для встановлень через менеджер пакетів `openclaw update` визначає цільову версію
|
||||
пакета перед викликом менеджера пакетів. Глобальні встановлення npm використовують staged
|
||||
встановлення: OpenClaw встановлює новий пакет у тимчасовий префікс npm, перевіряє
|
||||
запакований інвентар `dist` там, а потім замінює цим чистим деревом пакета
|
||||
справжній глобальний префікс. Якщо перевірка не вдається, doctor після оновлення, синхронізація plugin і
|
||||
перезапуск не виконуються з підозрілого дерева. Навіть коли встановлена версія
|
||||
пакета перед викликом менеджера пакетів. Глобальні npm-встановлення використовують поетапне
|
||||
встановлення: OpenClaw встановлює новий пакет у тимчасовий npm-префікс, перевіряє
|
||||
упакований інвентар `dist` там, а потім замінює цим чистим деревом пакета
|
||||
реальний глобальний префікс. Якщо перевірка не вдається, післяоновлювальні doctor, синхронізація плагінів і
|
||||
робота з перезапуску не виконуються з підозрілого дерева. Навіть коли встановлена версія
|
||||
вже збігається з цільовою, команда оновлює глобальне встановлення пакета,
|
||||
потім запускає синхронізацію plugin, оновлення завершення core-command і перезапуск. Це
|
||||
підтримує запаковані sidecar-компоненти та записи plugin, що належать каналу, узгодженими з
|
||||
установленою збіркою OpenClaw, залишаючи повні перебудови завершення plugin-command для
|
||||
потім виконує синхронізацію плагінів, оновлення автодоповнення основних команд і перезапуск. Це
|
||||
підтримує упаковані sidecar-и та записи плагінів, що належать каналу, узгодженими з
|
||||
встановленою збіркою OpenClaw, залишаючи повні перебудови автодоповнення команд плагінів для
|
||||
явних запусків `openclaw completion --write-state`.
|
||||
|
||||
Коли встановлено локальний керований сервіс Gateway і перезапуск увімкнено,
|
||||
оновлення через менеджер пакетів зупиняють запущений сервіс перед заміною дерева пакета,
|
||||
потім оновлюють метадані сервісу з оновленого встановлення, перезапускають
|
||||
сервіс і перевіряють, що перезапущений Gateway повідомляє очікувану версію. З
|
||||
`--no-restart` заміна пакета все одно виконується, але керований сервіс не
|
||||
зупиняється й не перезапускається, тож запущений Gateway може зберігати старий код, доки ви не перезапустите
|
||||
Коли встановлено локальну керовану службу Gateway і перезапуск увімкнено,
|
||||
оновлення через менеджер пакетів зупиняють запущену службу перед заміною дерева пакета,
|
||||
потім оновлюють метадані служби з оновленого встановлення, перезапускають
|
||||
службу та перевіряють, що перезапущений Gateway повідомляє очікувану версію. З
|
||||
`--no-restart` заміна пакета все одно виконується, але керована служба не
|
||||
зупиняється і не перезапускається, тому запущений Gateway може зберігати старий код, доки ви не перезапустите
|
||||
його вручну.
|
||||
|
||||
## Потік git checkout
|
||||
|
||||
### Вибір каналу
|
||||
|
||||
- `stable`: checkout останнього небета-тега, потім збірка й doctor.
|
||||
- `beta`: надає перевагу останньому тегу `-beta`, але повертається до останнього стабільного тега, коли beta відсутня або старіша.
|
||||
- `stable`: checkout найновішого не-beta тегу, потім збірка та doctor.
|
||||
- `beta`: надати перевагу найновішому тегу `-beta`, але повернутися до найновішого stable-тегу, коли beta відсутня або старіша.
|
||||
- `dev`: checkout `main`, потім fetch і rebase.
|
||||
|
||||
### Кроки оновлення
|
||||
|
||||
<Steps>
|
||||
<Step title="Перевірити чистий worktree">
|
||||
Вимагає відсутності незакомічених змін.
|
||||
Потребує відсутності незакомічених змін.
|
||||
</Step>
|
||||
<Step title="Перемкнути канал">
|
||||
Перемикає на вибраний канал (тег або гілку).
|
||||
@ -135,14 +135,14 @@ openclaw update status --timeout 10
|
||||
<Step title="Отримати upstream">
|
||||
Лише для dev.
|
||||
</Step>
|
||||
<Step title="Передпольотна збірка (лише dev)">
|
||||
<Step title="Попередня збірка (лише dev)">
|
||||
Запускає lint і збірку TypeScript у тимчасовому worktree. Якщо tip не проходить, відступає назад до 10 комітів, щоб знайти найновішу чисту збірку.
|
||||
</Step>
|
||||
<Step title="Rebase">
|
||||
Виконує rebase на вибраний коміт (лише dev).
|
||||
</Step>
|
||||
<Step title="Установити залежності">
|
||||
Використовує менеджер пакетів репозиторію. Для pnpm checkout-ів оновлювач bootstrap-ить `pnpm` на вимогу (спершу через `corepack`, потім через тимчасовий fallback `npm install pnpm@10`) замість запуску `npm run build` усередині pnpm workspace.
|
||||
<Step title="Встановити залежності">
|
||||
Використовує менеджер пакетів репозиторію. Для pnpm checkout-ів оновлювач bootstrap-ить `pnpm` на вимогу (спочатку через `corepack`, потім тимчасовий fallback `npm install pnpm@10`) замість запуску `npm run build` усередині pnpm workspace.
|
||||
</Step>
|
||||
<Step title="Зібрати Control UI">
|
||||
Збирає gateway і Control UI.
|
||||
@ -150,30 +150,35 @@ openclaw update status --timeout 10
|
||||
<Step title="Запустити doctor">
|
||||
`openclaw doctor` запускається як фінальна перевірка безпечного оновлення.
|
||||
</Step>
|
||||
<Step title="Синхронізувати plugins">
|
||||
Синхронізує plugins з активним каналом. Dev використовує bundled plugins; stable і beta використовують npm. Оновлює plugins, установлені через npm.
|
||||
<Step title="Синхронізувати плагіни">
|
||||
Синхронізує плагіни з активним каналом. Dev використовує bundled plugins; stable і beta використовують npm. Оновлює відстежувані встановлення плагінів.
|
||||
</Step>
|
||||
</Steps>
|
||||
|
||||
На beta-каналі оновлення відстежувані встановлення npm і ClawHub-плагінів, що дотримуються
|
||||
типової/latest лінії, спочатку пробують реліз плагіна `@beta`. Якщо плагін не має
|
||||
beta-релізу, OpenClaw повертається до записаної default/latest spec. Точні
|
||||
версії та явні теги не переписуються.
|
||||
|
||||
<Warning>
|
||||
Якщо оновлення точно зафіксованого npm plugin визначає артефакт, цілісність якого відрізняється від збереженого запису встановлення, `openclaw update` перериває оновлення цього артефакта plugin замість його встановлення. Перевстановлюйте або оновлюйте plugin явно лише після перевірки, що ви довіряєте новому артефакту.
|
||||
Якщо оновлення точно закріпленого npm-плагіна розв’язується в артефакт, цілісність якого відрізняється від збереженого запису встановлення, `openclaw update` перериває оновлення цього артефакта плагіна замість його встановлення. Перевстановіть або оновіть плагін явно лише після перевірки, що ви довіряєте новому артефакту.
|
||||
</Warning>
|
||||
|
||||
<Note>
|
||||
Збої синхронізації plugin після оновлення провалюють результат оновлення й зупиняють подальший перезапуск. Виправте помилку встановлення або оновлення plugin, потім повторно запустіть `openclaw update`.
|
||||
Збої післяоновлювальної синхронізації плагінів позначають результат оновлення як невдалий і зупиняють подальшу роботу з перезапуску. Виправте помилку встановлення або оновлення плагіна, а потім повторно запустіть `openclaw update`.
|
||||
|
||||
Коли оновлений Gateway запускається, завантаження plugin працює лише в режимі перевірки: запуск не запускає менеджери пакетів і не змінює дерева залежностей. Перезапуски менеджера пакетів `update.run` обходять звичайне idle-відкладання й cooldown перезапуску після заміни дерева пакета, тож старий процес не може продовжувати ліниво завантажувати видалені фрагменти.
|
||||
Коли оновлений Gateway запускається, завантаження плагінів працює лише в режимі перевірки: запуск не запускає менеджери пакетів і не змінює дерева залежностей. Перезапуски `update.run` через менеджер пакетів обходять звичайне відкладення під час простою та cooldown перезапуску після заміни дерева пакета, тож старий процес не може продовжувати ліниво завантажувати видалені фрагменти.
|
||||
|
||||
Якщо bootstrap pnpm усе одно не вдається, оновлювач зупиняється рано з помилкою, специфічною для менеджера пакетів, замість спроби `npm run build` усередині checkout.
|
||||
Якщо bootstrap pnpm усе ще не вдається, оновлювач зупиняється рано з помилкою, специфічною для менеджера пакетів, замість спроби виконати `npm run build` усередині checkout.
|
||||
</Note>
|
||||
|
||||
## Скорочення `--update`
|
||||
|
||||
`openclaw --update` переписується як `openclaw update` (корисно для shell-ів і launcher-скриптів).
|
||||
`openclaw --update` переписується на `openclaw update` (корисно для shell-ів і скриптів запуску).
|
||||
|
||||
## Пов’язане
|
||||
|
||||
- `openclaw doctor` (пропонує спершу запустити update на git checkout-ах)
|
||||
- `openclaw doctor` (пропонує спочатку запустити оновлення для git checkout-ів)
|
||||
- [Канали розробки](/uk/install/development-channels)
|
||||
- [Оновлення](/uk/install/updating)
|
||||
- [Довідник CLI](/uk/cli)
|
||||
|
||||
@ -1,22 +1,21 @@
|
||||
---
|
||||
read_when:
|
||||
- Вам потрібні швидкі приклади встановлення, перегляду списку, оновлення або видалення Plugin
|
||||
- Ви хочете вибрати між дистрибуцією Plugin через ClawHub і npm
|
||||
- Ви хочете вибрати між ClawHub і розповсюдженням плагінів через npm
|
||||
- Ви публікуєте пакет Plugin
|
||||
sidebarTitle: Manage plugins
|
||||
summary: Короткі приклади встановлення, перегляду списку, видалення, оновлення та публікації плагінів OpenClaw
|
||||
title: Керування plugins
|
||||
title: Керування Plugin
|
||||
x-i18n:
|
||||
generated_at: "2026-05-02T19:11:08Z"
|
||||
generated_at: "2026-05-02T19:23:46Z"
|
||||
model: gpt-5.5
|
||||
provider: openai
|
||||
source_hash: bd40c0e9f57c38bf65d68855cdb36919bc926a9808ef09aad89ed32e0fc0f060
|
||||
source_hash: c5a1c58da41b243cebe1c163048918a94c492b77fdae1613bd008cb267670041
|
||||
source_path: plugins/manage-plugins.md
|
||||
workflow: 16
|
||||
---
|
||||
|
||||
Більшість робочих процесів із plugin зводяться до кількох команд: пошук, інсталяція, перезапуск Gateway,
|
||||
перевірка та видалення plugin, коли він більше не потрібен.
|
||||
Більшість робочих процесів із Plugin складаються з кількох команд: пошук, установлення, перезапуск Gateway, перевірка та видалення, коли Plugin більше не потрібен.
|
||||
|
||||
## Список plugins
|
||||
|
||||
@ -27,20 +26,16 @@ openclaw plugins list --verbose
|
||||
openclaw plugins list --json
|
||||
```
|
||||
|
||||
Використовуйте `--json` для скриптів. Він містить діагностику реєстру та статичний
|
||||
`dependencyStatus` кожного plugin, коли пакет plugin оголошує `dependencies` або
|
||||
`optionalDependencies`.
|
||||
Використовуйте `--json` для скриптів. Він містить діагностику реєстру та статичний `dependencyStatus` кожного Plugin, коли пакет Plugin оголошує `dependencies` або `optionalDependencies`.
|
||||
|
||||
```bash
|
||||
openclaw plugins list --json \
|
||||
| jq '.plugins[] | {id, enabled, format, source, dependencyStatus}'
|
||||
```
|
||||
|
||||
`plugins list` — це холодна перевірка інвентарю. Вона показує, що OpenClaw може виявити
|
||||
з конфігурації, маніфестів і реєстру plugin; вона не доводить, що
|
||||
вже запущений процес Gateway імпортував runtime plugin.
|
||||
`plugins list` — це холодна перевірка інвентарю. Вона показує, що OpenClaw може виявити з конфігурації, маніфестів і реєстру Plugin; вона не доводить, що вже запущений процес Gateway імпортував runtime Plugin.
|
||||
|
||||
## Інсталяція plugins
|
||||
## Установлення plugins
|
||||
|
||||
```bash
|
||||
# Search ClawHub for plugin packages.
|
||||
@ -65,16 +60,14 @@ openclaw plugins install ./my-plugin
|
||||
openclaw plugins install --link ./my-plugin
|
||||
```
|
||||
|
||||
Після інсталяції коду plugin перезапустіть Gateway, який обслуговує ваші канали:
|
||||
Після встановлення коду Plugin перезапустіть Gateway, який обслуговує ваші канали:
|
||||
|
||||
```bash
|
||||
openclaw gateway restart
|
||||
openclaw plugins inspect <plugin-id> --runtime --json
|
||||
```
|
||||
|
||||
Використовуйте `inspect --runtime`, коли потрібен доказ, що plugin зареєстрував runtime-поверхні,
|
||||
як-от інструменти, hooks, сервіси, методи Gateway або CLI-команди,
|
||||
що належать plugin.
|
||||
Використовуйте `inspect --runtime`, коли потрібен доказ, що Plugin зареєстрував runtime-поверхні, як-от інструменти, hooks, сервіси, методи Gateway або CLI-команди, що належать Plugin.
|
||||
|
||||
## Оновлення plugins
|
||||
|
||||
@ -84,17 +77,16 @@ openclaw plugins update <npm-package-or-spec>
|
||||
openclaw plugins update --all
|
||||
```
|
||||
|
||||
Якщо plugin було встановлено з npm dist-tag, наприклад `@beta`, наступні виклики
|
||||
`update <plugin-id>` повторно використовують цей записаний тег. Передавання явної npm-специфікації
|
||||
перемикає відстежувану інсталяцію на цю специфікацію для майбутніх оновлень.
|
||||
Якщо Plugin було встановлено з npm dist-tag, наприклад `@beta`, наступні виклики `update <plugin-id>` повторно використовують цей записаний тег. Передавання явної npm-специфікації перемикає відстежуване встановлення на цю специфікацію для майбутніх оновлень.
|
||||
|
||||
```bash
|
||||
openclaw plugins update @scope/openclaw-plugin@beta
|
||||
openclaw plugins update @scope/openclaw-plugin
|
||||
```
|
||||
|
||||
Друга команда повертає plugin до стандартної лінії випусків реєстру,
|
||||
якщо раніше він був зафіксований на точній версії або тезі.
|
||||
Друга команда повертає Plugin до стандартної лінії релізів реєстру, якщо раніше він був закріплений за точною версією або тегом.
|
||||
|
||||
Коли `openclaw update` виконується в beta-каналі, записи npm і ClawHub Plugin зі стандартної лінії спершу намагаються використати відповідний реліз Plugin `@beta`. Якщо такого beta-релізу не існує, OpenClaw повертається до записаної стандартної/останньої специфікації. Точні версії та явні теги, як-от `@rc` або `@beta`, зберігаються.
|
||||
|
||||
## Видалення plugins
|
||||
|
||||
@ -105,20 +97,15 @@ openclaw plugins uninstall <plugin-id> --keep-files
|
||||
openclaw gateway restart
|
||||
```
|
||||
|
||||
Видалення прибирає запис конфігурації plugin, запис індексу plugin, записи списків
|
||||
дозволу/заборони та пов’язані шляхи завантаження, коли це застосовно. Керовані директорії інсталяції
|
||||
видаляються, якщо ви не передасте `--keep-files`.
|
||||
Видалення прибирає запис конфігурації Plugin, запис індексу Plugin, записи списків дозволів/заборон і пов’язані шляхи завантаження, коли це застосовно. Керовані каталоги встановлення видаляються, якщо не передати `--keep-files`.
|
||||
|
||||
## Публікація plugins
|
||||
|
||||
Ви можете публікувати зовнішні plugins у [ClawHub](https://clawhub.ai), npmjs.com або
|
||||
в обох.
|
||||
Ви можете публікувати зовнішні plugins у [ClawHub](https://clawhub.ai), npmjs.com або в обох місцях.
|
||||
|
||||
### Публікація в ClawHub
|
||||
|
||||
ClawHub — це основна публічна поверхня пошуку для OpenClaw plugins. Він дає
|
||||
користувачам пошукові метадані, історію версій і результати сканування реєстру перед
|
||||
інсталяцією.
|
||||
ClawHub — це основна публічна поверхня виявлення для plugins OpenClaw. Вона надає користувачам доступні для пошуку метадані, історію версій і результати сканування реєстру до встановлення.
|
||||
|
||||
```bash
|
||||
npm i -g clawhub
|
||||
@ -128,19 +115,18 @@ clawhub package publish your-org/your-plugin
|
||||
clawhub package publish your-org/your-plugin@v1.0.0
|
||||
```
|
||||
|
||||
Користувачі інсталюють із ClawHub за допомогою:
|
||||
Користувачі встановлюють із ClawHub за допомогою:
|
||||
|
||||
```bash
|
||||
openclaw plugins install clawhub:<package>
|
||||
openclaw plugins install <package>
|
||||
```
|
||||
|
||||
Коротка форма все одно спочатку перевіряє ClawHub.
|
||||
Коротка форма все одно спершу перевіряє ClawHub.
|
||||
|
||||
### Публікація в npmjs.com
|
||||
|
||||
Нативні npm plugins мають містити маніфест plugin і метадані точки входу OpenClaw
|
||||
у `package.json`.
|
||||
Нативні npm plugins мають містити маніфест Plugin і метадані entrypoint OpenClaw у `package.json`.
|
||||
|
||||
```json package.json
|
||||
{
|
||||
@ -157,7 +143,7 @@ openclaw plugins install <package>
|
||||
npm publish --access public
|
||||
```
|
||||
|
||||
Користувачі інсталюють лише з npm за допомогою:
|
||||
Користувачі встановлюють лише з npm за допомогою:
|
||||
|
||||
```bash
|
||||
openclaw plugins install npm:@acme/openclaw-plugin
|
||||
@ -165,23 +151,19 @@ openclaw plugins install npm:@acme/openclaw-plugin@beta
|
||||
openclaw plugins install npm:@acme/openclaw-plugin@1.0.0
|
||||
```
|
||||
|
||||
Якщо той самий пакет також доступний у ClawHub, `npm:` пропускає пошук у ClawHub і
|
||||
примусово використовує npm-розв’язання.
|
||||
Якщо той самий пакет також доступний у ClawHub, `npm:` пропускає пошук у ClawHub і примусово використовує розв’язання через npm.
|
||||
|
||||
## Вибір джерела
|
||||
|
||||
- **ClawHub**: використовуйте, коли потрібні нативні для OpenClaw пошук, зведення сканування,
|
||||
версії та підказки щодо інсталяції.
|
||||
- **npmjs.com**: використовуйте, коли ви вже постачаєте JavaScript-пакети або потребуєте робочих процесів npm
|
||||
dist-tags/приватного реєстру.
|
||||
- **Git**: використовуйте, коли хочете інсталювати безпосередньо з гілки, тега або коміту.
|
||||
- **Локальний шлях**: використовуйте, коли розробляєте або тестуєте plugin на тій самій
|
||||
машині.
|
||||
- **ClawHub**: використовуйте, коли потрібні нативне для OpenClaw виявлення, підсумки сканування, версії та підказки щодо встановлення.
|
||||
- **npmjs.com**: використовуйте, коли ви вже постачаєте пакети JavaScript або потребуєте workflows npm dist-tags/приватного реєстру.
|
||||
- **Git**: використовуйте, коли хочете встановлювати безпосередньо з гілки, тегу або коміту.
|
||||
- **Локальний шлях**: використовуйте, коли розробляєте або тестуєте Plugin на тій самій машині.
|
||||
|
||||
## Пов’язане
|
||||
|
||||
- [Plugins](/uk/tools/plugin) - огляд і усунення несправностей
|
||||
- [`openclaw plugins`](/uk/cli/plugins) - повний довідник CLI
|
||||
- [ClawHub](/uk/tools/clawhub) - публікація й операції з реєстром
|
||||
- [Створення plugins](/uk/plugins/building-plugins) - створення пакета plugin
|
||||
- [`openclaw plugins`](/uk/cli/plugins) - повна довідка CLI
|
||||
- [ClawHub](/uk/tools/clawhub) - публікація та операції реєстру
|
||||
- [Створення plugins](/uk/plugins/building-plugins) - створення пакета Plugin
|
||||
- [Маніфест Plugin](/uk/plugins/manifest) - маніфест і метадані пакета
|
||||
|
||||
@ -1,41 +1,41 @@
|
||||
---
|
||||
read_when:
|
||||
- Встановлення або налаштування Plugin
|
||||
- Розуміння виявлення Plugin і правил завантаження
|
||||
- Встановлення або налаштування плагінів
|
||||
- Розуміння правил виявлення та завантаження Plugin
|
||||
- Робота з пакетами Plugin, сумісними з Codex/Claude
|
||||
sidebarTitle: Install and Configure
|
||||
summary: Встановлюйте, налаштовуйте та керуйте Plugin OpenClaw
|
||||
title: Плагіни
|
||||
title: Plugins
|
||||
x-i18n:
|
||||
generated_at: "2026-05-02T19:11:06Z"
|
||||
generated_at: "2026-05-02T19:23:38Z"
|
||||
model: gpt-5.5
|
||||
provider: openai
|
||||
source_hash: eb4c15f9d38dcd1d3f868a20dc2b703064fc874e8e92505dc039f44df2a42ef9
|
||||
source_hash: d553c917d9054f4cb5a244ffd0d749c37f6dde230a5887b6b71ba7cf39fcefe5
|
||||
source_path: tools/plugin.md
|
||||
workflow: 16
|
||||
---
|
||||
|
||||
Плагіни розширюють OpenClaw новими можливостями: каналами, постачальниками моделей,
|
||||
середовищами агентів, інструментами, Skills, мовленням, транскрипцією в реальному часі, голосом у реальному
|
||||
часі, розумінням медіа, генерацією зображень, генерацією відео, вебвибіркою, веб
|
||||
пошуком тощо. Деякі плагіни є **основними** (постачаються з OpenClaw), інші
|
||||
є **зовнішніми**. Більшість зовнішніх плагінів публікуються й виявляються через
|
||||
[ClawHub](/uk/tools/clawhub). Npm і далі підтримується для прямих установлень і для
|
||||
тимчасового набору пакетів плагінів, що належать OpenClaw, доки ця міграція завершується.
|
||||
Plugins розширюють OpenClaw новими можливостями: каналами, провайдерами моделей,
|
||||
агентними каркасами, інструментами, Skills, мовленням, транскрипцією в реальному часі,
|
||||
голосом у реальному часі, розумінням медіа, генерацією зображень, генерацією відео, веботриманням, вебпошуком
|
||||
тощо. Деякі Plugins є **core** (постачаються з OpenClaw), інші
|
||||
є **зовнішніми**. Більшість зовнішніх Plugins публікуються та знаходяться через
|
||||
[ClawHub](/uk/tools/clawhub). Npm і надалі підтримується для прямих установлень і для
|
||||
тимчасового набору пакетів Plugins, що належать OpenClaw, доки ця міграція завершується.
|
||||
|
||||
## Швидкий старт
|
||||
|
||||
Приклади встановлення, перегляду списку, видалення, оновлення та публікації для копіювання й вставляння див.
|
||||
[Керування плагінами](/uk/plugins/manage-plugins).
|
||||
Приклади встановлення, виведення списку, видалення, оновлення та публікації для копіювання дивіться в
|
||||
[Керування Plugins](/uk/plugins/manage-plugins).
|
||||
|
||||
<Steps>
|
||||
<Step title="Перегляньте, що завантажено">
|
||||
<Step title="Подивитися, що завантажено">
|
||||
```bash
|
||||
openclaw plugins list
|
||||
```
|
||||
</Step>
|
||||
|
||||
<Step title="Установіть плагін">
|
||||
<Step title="Встановити Plugin">
|
||||
```bash
|
||||
# Search ClawHub plugins
|
||||
openclaw plugins search "calendar"
|
||||
@ -56,26 +56,26 @@ x-i18n:
|
||||
|
||||
</Step>
|
||||
|
||||
<Step title="Перезапустіть Gateway">
|
||||
<Step title="Перезапустити Gateway">
|
||||
```bash
|
||||
openclaw gateway restart
|
||||
```
|
||||
|
||||
Потім налаштуйте в `plugins.entries.\<id\>.config` у вашому конфігураційному файлі.
|
||||
Потім налаштуйте в `plugins.entries.\<id\>.config` у вашому файлі конфігурації.
|
||||
|
||||
</Step>
|
||||
|
||||
<Step title="Керування з чату">
|
||||
<Step title="Керування через чат">
|
||||
У запущеному Gateway команди лише для власника `/plugins enable` і `/plugins disable`
|
||||
запускають перезавантажувач конфігурації Gateway. Gateway перезавантажує runtime-
|
||||
поверхні плагінів у процесі, а нові ходи агента перебудовують свій список інструментів з
|
||||
оновленого реєстру. `/plugins install` змінює вихідний код плагіна, тому
|
||||
Gateway запитує перезапуск замість того, щоб удавати, ніби поточний процес може
|
||||
запускають перезавантажувач конфігурації Gateway. Gateway перезавантажує runtime-поверхні Plugin
|
||||
у процесі, а нові ходи агента перебудовують свій список інструментів з
|
||||
оновленого реєстру. `/plugins install` змінює вихідний код Plugin, тому
|
||||
Gateway запитує перезапуск замість того, щоб вдавати, ніби поточний процес може
|
||||
безпечно перезавантажити вже імпортовані модулі.
|
||||
|
||||
</Step>
|
||||
|
||||
<Step title="Перевірте плагін">
|
||||
<Step title="Перевірити Plugin">
|
||||
```bash
|
||||
openclaw plugins inspect <plugin-id> --runtime --json
|
||||
|
||||
@ -83,14 +83,14 @@ x-i18n:
|
||||
openclaw <plugin-command> --help
|
||||
```
|
||||
|
||||
Використовуйте `--runtime`, коли потрібно довести наявність зареєстрованих інструментів, служб, методів Gateway,
|
||||
хуків або CLI-команд, що належать плагіну. Звичайний `inspect` є холодною
|
||||
перевіркою маніфесту/реєстру й навмисно уникає імпортування runtime плагіна.
|
||||
Використовуйте `--runtime`, коли потрібно довести зареєстровані інструменти, сервіси, gateway
|
||||
методи, hooks або CLI-команди, що належать Plugin. Звичайний `inspect` є холодною
|
||||
перевіркою маніфесту/реєстру й навмисно уникає імпорту runtime Plugin.
|
||||
|
||||
</Step>
|
||||
</Steps>
|
||||
|
||||
Якщо ви віддаєте перевагу керуванню з чату, увімкніть `commands.plugins: true` і використовуйте:
|
||||
Якщо ви віддаєте перевагу керуванню через чат, увімкніть `commands.plugins: true` і використовуйте:
|
||||
|
||||
```text
|
||||
/plugin install clawhub:<package>
|
||||
@ -98,76 +98,76 @@ x-i18n:
|
||||
/plugin enable <plugin-id>
|
||||
```
|
||||
|
||||
Шлях установлення використовує той самий резолвер, що й CLI: локальний шлях/архів, явний
|
||||
`clawhub:<pkg>`, явний `npm:<pkg>`, явний `git:<repo>` або проста специфікація пакета
|
||||
Шлях установлення використовує той самий resolver, що й CLI: локальний шлях/архів, явний
|
||||
`clawhub:<pkg>`, явний `npm:<pkg>`, явний `git:<repo>` або специфікацію пакета без префікса
|
||||
через npm.
|
||||
|
||||
Якщо конфігурація недійсна, установлення зазвичай завершується закритою відмовою та спрямовує вас до
|
||||
`openclaw doctor --fix`. Єдиний виняток для відновлення — вузький шлях перевстановлення
|
||||
вбудованого плагіна для плагінів, які явно вмикають
|
||||
Якщо конфігурація недійсна, встановлення зазвичай завершується закрито й спрямовує вас до
|
||||
`openclaw doctor --fix`. Єдиний виняток відновлення — вузький шлях перевстановлення bundled-plugin
|
||||
для Plugins, які погоджуються на
|
||||
`openclaw.install.allowInvalidConfigRecovery`.
|
||||
Під час запуску Gateway недійсна конфігурація одного плагіна ізолюється до цього плагіна:
|
||||
запуск записує в журнал проблему `plugins.entries.<id>.config`, пропускає цей плагін під час
|
||||
завантаження та залишає інші плагіни й канали онлайн. Запустіть `openclaw doctor --fix`,
|
||||
щоб помістити погану конфігурацію плагіна в карантин, вимкнувши цей запис плагіна та видаливши
|
||||
його недійсне конфігураційне навантаження; звичайна резервна копія конфігурації зберігає попередні значення.
|
||||
Коли конфігурація каналу посилається на плагін, який більше не виявляється, але той самий
|
||||
застарілий ідентифікатор плагіна лишається в конфігурації плагінів або записах установлення, запуск Gateway
|
||||
записує попередження й пропускає цей канал замість того, щоб блокувати всі інші канали.
|
||||
Запустіть `openclaw doctor --fix`, щоб видалити застарілі записи каналу/плагіна; невідомі
|
||||
ключі каналів без ознак застарілого плагіна й далі не проходять валідацію, щоб помилки набору
|
||||
лишалися видимими.
|
||||
Якщо задано `plugins.enabled: false`, застарілі посилання на плагіни вважаються інертними:
|
||||
запуск Gateway пропускає роботу з виявлення/завантаження плагінів, а `openclaw doctor` зберігає
|
||||
вимкнену конфігурацію плагінів замість автоматичного видалення. Увімкніть плагіни знову перед
|
||||
запуском очищення doctor, якщо хочете видалити застарілі ідентифікатори плагінів.
|
||||
Під час запуску Gateway недійсна конфігурація одного Plugin ізолюється до цього Plugin:
|
||||
запуск записує в журнал проблему `plugins.entries.<id>.config`, пропускає цей Plugin під час
|
||||
завантаження й залишає інші Plugins і канали онлайн. Запустіть `openclaw doctor --fix`,
|
||||
щоб помістити погану конфігурацію Plugin у карантин, вимкнувши цей запис Plugin і видаливши
|
||||
його недійсний payload конфігурації; звичайна резервна копія конфігурації зберігає попередні значення.
|
||||
Коли конфігурація каналу посилається на Plugin, який більше не виявляється, але той самий застарілий id Plugin
|
||||
залишається в конфігурації Plugin або записах установлення, запуск Gateway
|
||||
записує попередження в журнал і пропускає цей канал замість блокування всіх інших каналів.
|
||||
Запустіть `openclaw doctor --fix`, щоб видалити застарілі записи каналу/Plugin; невідомі
|
||||
ключі каналів без доказів застарілого Plugin і надалі не проходять перевірку, щоб помилки введення залишалися
|
||||
видимими.
|
||||
Якщо встановлено `plugins.enabled: false`, застарілі посилання на Plugin вважаються інертними:
|
||||
запуск Gateway пропускає роботу з виявлення/завантаження Plugin, а `openclaw doctor` зберігає
|
||||
вимкнену конфігурацію Plugin замість автоматичного видалення. Знову ввімкніть Plugins перед
|
||||
запуском очищення doctor, якщо хочете видалити застарілі id Plugin.
|
||||
|
||||
Установлення залежностей плагіна відбувається лише під час явних потоків установлення/оновлення або
|
||||
ремонту через doctor. Запуск Gateway, перезавантаження конфігурації та перевірка runtime не
|
||||
запускають менеджери пакетів і не ремонтують дерева залежностей. Локальні плагіни повинні вже
|
||||
мати встановлені залежності, тоді як плагіни npm, git і ClawHub
|
||||
установлюються в керовані корені плагінів OpenClaw. Залежності npm можуть бути hoisted
|
||||
у межах керованого npm-кореня OpenClaw; установлення/оновлення сканує цей керований корінь перед
|
||||
довірою, а видалення прибирає керовані npm пакети через npm. Зовнішні плагіни
|
||||
та користувацькі шляхи завантаження все одно потрібно встановлювати через `openclaw plugins install`.
|
||||
Встановлення залежностей Plugin відбувається лише під час явних потоків install/update або
|
||||
repair у doctor. Запуск Gateway, перезавантаження конфігурації та runtime-інспекція не
|
||||
запускають менеджери пакетів і не ремонтують дерева залежностей. Локальні Plugins уже повинні
|
||||
мати встановлені залежності, тоді як npm, git і ClawHub Plugins
|
||||
встановлюються в керовані корені Plugin OpenClaw. Залежності npm можуть hoist-итися
|
||||
в межах керованого npm-кореня OpenClaw; install/update сканує цей керований корінь перед
|
||||
довірою, а uninstall видаляє пакети, керовані npm, через npm. Зовнішні Plugins
|
||||
і користувацькі шляхи завантаження все одно потрібно встановлювати через `openclaw plugins install`.
|
||||
Використовуйте `openclaw plugins list --json`, щоб побачити статичний `dependencyStatus` для кожного
|
||||
видимого плагіна без імпортування runtime-коду або ремонту залежностей.
|
||||
Див. [Розв’язання залежностей плагінів](/uk/plugins/dependency-resolution) щодо життєвого циклу
|
||||
під час установлення.
|
||||
видимого Plugin без імпорту runtime-коду або ремонту залежностей.
|
||||
Дивіться [Розв’язання залежностей Plugin](/uk/plugins/dependency-resolution) щодо
|
||||
життєвого циклу під час установлення.
|
||||
|
||||
Вихідні checkout-и є pnpm workspaces. Якщо ви клонуєте OpenClaw, щоб працювати над вбудованими
|
||||
плагінами, запустіть `pnpm install`; після цього OpenClaw завантажує вбудовані плагіни з
|
||||
`extensions/<id>`, тож зміни й локальні для пакета залежності використовуються напряму.
|
||||
Звичайні кореневі встановлення npm призначені для пакетованого OpenClaw, а не для розробки
|
||||
з checkout вихідного коду.
|
||||
Вихідні checkout-и є pnpm workspaces. Якщо ви клонували OpenClaw, щоб працювати над bundled
|
||||
Plugins, запустіть `pnpm install`; тоді OpenClaw завантажує bundled Plugins з
|
||||
`extensions/<id>`, тож правки й локальні залежності пакета використовуються напряму.
|
||||
Звичайні npm-встановлення в корені призначені для упакованого OpenClaw, а не для розробки
|
||||
з source checkout.
|
||||
|
||||
## Типи плагінів
|
||||
## Типи Plugin
|
||||
|
||||
OpenClaw розпізнає два формати плагінів:
|
||||
OpenClaw розпізнає два формати Plugin:
|
||||
|
||||
| Формат | Як це працює | Приклади |
|
||||
| ---------- | ------------------------------------------------------------------ | ------------------------------------------------------ |
|
||||
| **Нативний** | `openclaw.plugin.json` + runtime-модуль; виконується в процесі | Офіційні плагіни, спільнотні npm-пакети |
|
||||
| **Bundle** | Макет, сумісний із Codex/Claude/Cursor; зіставляється з можливостями OpenClaw | `.codex-plugin/`, `.claude-plugin/`, `.cursor-plugin/` |
|
||||
| **Native** | `openclaw.plugin.json` + runtime-модуль; виконується в процесі | Офіційні Plugins, npm-пакети спільноти |
|
||||
| **Bundle** | Сумісна з Codex/Claude/Cursor структура; зіставляється з функціями OpenClaw | `.codex-plugin/`, `.claude-plugin/`, `.cursor-plugin/` |
|
||||
|
||||
Обидва з’являються в `openclaw plugins list`. Див. [Plugin Bundles](/uk/plugins/bundles) для деталей bundle.
|
||||
Обидва відображаються в `openclaw plugins list`. Дивіться [Plugin Bundles](/uk/plugins/bundles) для деталей bundle.
|
||||
|
||||
Якщо ви пишете нативний плагін, почніть з [Створення плагінів](/uk/plugins/building-plugins)
|
||||
і [Огляд Plugin SDK](/uk/plugins/sdk-overview).
|
||||
Якщо ви пишете native Plugin, почніть із [Створення Plugins](/uk/plugins/building-plugins)
|
||||
та [Огляду Plugin SDK](/uk/plugins/sdk-overview).
|
||||
|
||||
## Точки входу пакета
|
||||
|
||||
Нативні npm-пакети плагінів повинні оголошувати `openclaw.extensions` у `package.json`.
|
||||
Кожен запис має залишатися всередині каталогу пакета й розв’язуватися до читабельного
|
||||
runtime-файлу або до TypeScript-файлу вихідного коду з виведеним зібраним JavaScript
|
||||
аналогом, наприклад `src/index.ts` до `dist/index.js`.
|
||||
Native npm-пакети Plugin повинні оголошувати `openclaw.extensions` у `package.json`.
|
||||
Кожен запис має залишатися всередині каталогу пакета й резолвитися до читабельного
|
||||
runtime-файла або до вихідного TypeScript-файла з виведеним збудованим JavaScript
|
||||
peer, наприклад `src/index.ts` до `dist/index.js`.
|
||||
|
||||
Використовуйте `openclaw.runtimeExtensions`, коли опубліковані runtime-файли не розташовані за
|
||||
тими самими шляхами, що й вихідні записи. Коли `runtimeExtensions` присутній, він має містити
|
||||
рівно один запис для кожного запису `extensions`. Невідповідні списки спричиняють відмову встановлення та
|
||||
виявлення плагіна замість мовчазного fallback до шляхів вихідного коду. Якщо ви також
|
||||
публікуєте `openclaw.setupEntry`, використовуйте `openclaw.runtimeSetupEntry` для його зібраного
|
||||
JavaScript-аналога; цей файл є обов’язковим, коли його оголошено.
|
||||
тими самими шляхами, що й вихідні записи. За наявності `runtimeExtensions` має містити
|
||||
рівно один запис для кожного запису `extensions`. Невідповідні списки провалюють установлення й
|
||||
виявлення Plugin замість тихого fallback до вихідних шляхів. Якщо ви також
|
||||
публікуєте `openclaw.setupEntry`, використовуйте `openclaw.runtimeSetupEntry` для його збудованого
|
||||
JavaScript peer; цей файл обов’язковий, якщо оголошений.
|
||||
|
||||
```json
|
||||
{
|
||||
@ -179,21 +179,21 @@ JavaScript-аналога; цей файл є обов’язковим, кол
|
||||
}
|
||||
```
|
||||
|
||||
## Офіційні плагіни
|
||||
## Офіційні Plugins
|
||||
|
||||
### Npm-пакети, що належать OpenClaw, під час міграції
|
||||
|
||||
ClawHub є основним шляхом розповсюдження для більшості плагінів. Поточні пакетовані
|
||||
релізи OpenClaw уже містять багато офіційних плагінів, тому вони не потребують
|
||||
окремих npm-установлень у звичайних конфігураціях. Доки кожен плагін, що належить OpenClaw,
|
||||
не мігрує до ClawHub, OpenClaw і далі постачає деякі пакети плагінів `@openclaw/*`
|
||||
на npm для старіших/користувацьких установлень і прямих npm-процесів.
|
||||
ClawHub є основним шляхом дистрибуції для більшості Plugins. Поточні упаковані
|
||||
релізи OpenClaw уже містять багато офіційних Plugins, тому вони не потребують
|
||||
окремих npm-встановлень у звичайних налаштуваннях. Доки кожен Plugin, що належить OpenClaw,
|
||||
не мігрує до ClawHub, OpenClaw і надалі постачає деякі пакети Plugins `@openclaw/*` на
|
||||
npm для старіших/користувацьких установлень і прямих npm-процесів.
|
||||
|
||||
Якщо npm повідомляє, що пакет плагіна `@openclaw/*` застарілий, ця версія пакета
|
||||
походить зі старішої лінійки зовнішніх пакетів. Використовуйте вбудований плагін з
|
||||
Якщо npm повідомляє про пакет Plugin `@openclaw/*` як deprecated, ця версія пакета
|
||||
походить зі старішої зовнішньої лінійки пакетів. Використовуйте bundled Plugin з
|
||||
поточного OpenClaw або локальний checkout, доки не буде опубліковано новіший npm-пакет.
|
||||
|
||||
| Plugin | Пакет | Документація |
|
||||
| Plugin | Пакет | Документація |
|
||||
| --------------- | -------------------------- | ------------------------------------------ |
|
||||
| BlueBubbles | `@openclaw/bluebubbles` | [BlueBubbles](/uk/channels/bluebubbles) |
|
||||
| Discord | `@openclaw/discord` | [Discord](/uk/channels/discord) |
|
||||
@ -209,10 +209,10 @@ ClawHub є основним шляхом розповсюдження для б
|
||||
| Zalo | `@openclaw/zalo` | [Zalo](/uk/channels/zalo) |
|
||||
| Zalo Personal | `@openclaw/zalouser` | [Zalo Personal](/uk/plugins/zalouser) |
|
||||
|
||||
### Основні (постачаються з OpenClaw)
|
||||
### Core (постачається з OpenClaw)
|
||||
|
||||
<AccordionGroup>
|
||||
<Accordion title="Постачальники моделей (увімкнені за замовчуванням)">
|
||||
<Accordion title="Провайдери моделей (увімкнені за замовчуванням)">
|
||||
`anthropic`, `byteplus`, `cloudflare-ai-gateway`, `github-copilot`, `google`,
|
||||
`huggingface`, `kilocode`, `kimi-coding`, `minimax`, `mistral`, `qwen`,
|
||||
`moonshot`, `nvidia`, `openai`, `opencode`, `opencode-go`, `openrouter`,
|
||||
@ -220,27 +220,27 @@ ClawHub є основним шляхом розповсюдження для б
|
||||
`vercel-ai-gateway`, `volcengine`, `xiaomi`, `zai`
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Плагіни пам’яті">
|
||||
- `memory-core` — вбудований пошук пам’яті (типово через `plugins.slots.memory`)
|
||||
- `memory-lancedb` — довготривала пам’ять на базі LanceDB з автоматичним recall/capture (задайте `plugins.slots.memory = "memory-lancedb"`)
|
||||
<Accordion title="Memory Plugins">
|
||||
- `memory-core` — bundled пошук пам’яті (за замовчуванням через `plugins.slots.memory`)
|
||||
- `memory-lancedb` — довготривала пам’ять на базі LanceDB з auto-recall/capture (встановіть `plugins.slots.memory = "memory-lancedb"`)
|
||||
|
||||
Див. [Memory LanceDB](/uk/plugins/memory-lancedb) щодо налаштування embedding,
|
||||
сумісного з OpenAI, прикладів Ollama, лімітів recall і усунення несправностей.
|
||||
Дивіться [Memory LanceDB](/uk/plugins/memory-lancedb) щодо налаштування embeddings, сумісних з OpenAI,
|
||||
прикладів Ollama, обмежень recall і усунення несправностей.
|
||||
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Постачальники мовлення (увімкнені за замовчуванням)">
|
||||
<Accordion title="Провайдери мовлення (увімкнені за замовчуванням)">
|
||||
`elevenlabs`, `microsoft`
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Інше">
|
||||
- `browser` — вбудований browser-плагін для browser tool, CLI `openclaw browser`, методу Gateway `browser.request`, browser runtime і типової служби керування browser (увімкнено за замовчуванням; вимкніть перед заміною)
|
||||
- `copilot-proxy` — міст VS Code Copilot Proxy (вимкнено за замовчуванням)
|
||||
- `browser` — bundled browser Plugin для browser tool, CLI `openclaw browser`, gateway-методу `browser.request`, browser runtime і сервісу керування браузером за замовчуванням (увімкнений за замовчуванням; вимкніть перед заміною)
|
||||
- `copilot-proxy` — міст VS Code Copilot Proxy (вимкнений за замовчуванням)
|
||||
|
||||
</Accordion>
|
||||
</AccordionGroup>
|
||||
|
||||
Шукаєте сторонні плагіни? Див. [Плагіни спільноти](/uk/plugins/community).
|
||||
Шукаєте сторонні Plugins? Дивіться [Plugins спільноти](/uk/plugins/community).
|
||||
|
||||
## Конфігурація
|
||||
|
||||
@ -258,50 +258,50 @@ ClawHub є основним шляхом розповсюдження для б
|
||||
}
|
||||
```
|
||||
|
||||
| Поле | Опис |
|
||||
| Поле | Опис |
|
||||
| ---------------- | --------------------------------------------------------- |
|
||||
| `enabled` | Головний перемикач (за замовчуванням: `true`) |
|
||||
| `allow` | Allowlist плагінів (необов’язково) |
|
||||
| `deny` | Denylist плагінів (необов’язково; deny має перевагу) |
|
||||
| `load.paths` | Додаткові файли/каталоги плагінів |
|
||||
| `slots` | Ексклюзивні селектори слотів (наприклад, `memory`, `contextEngine`) |
|
||||
| `entries.\<id\>` | Перемикачі + конфігурація для окремого плагіна |
|
||||
| `enabled` | Головний перемикач (за замовчуванням: `true`) |
|
||||
| `allow` | Allowlist Plugin (необов’язково) |
|
||||
| `deny` | Denylist Plugin (необов’язково; deny має перевагу) |
|
||||
| `load.paths` | Додаткові файли/каталоги Plugin |
|
||||
| `slots` | Селектори ексклюзивних слотів (наприклад, `memory`, `contextEngine`) |
|
||||
| `entries.\<id\>` | Перемикачі + конфігурація для кожного Plugin |
|
||||
|
||||
`plugins.allow` є ексклюзивним. Коли він непорожній, завантажуватися
|
||||
або надавати інструменти можуть лише перелічені плагіни, навіть якщо `tools.allow` містить `"*"` або конкретну
|
||||
назву інструмента, що належить плагіну. Якщо allowlist інструментів посилається на інструменти плагіна, додайте ідентифікатори плагінів-власників
|
||||
до `plugins.allow` або видаліть `plugins.allow`; `openclaw doctor` попереджає про таку
|
||||
`plugins.allow` є ексклюзивним. Коли він непорожній, можуть завантажуватися
|
||||
або відкривати інструменти лише перелічені Plugins, навіть якщо `tools.allow` містить `"*"` або конкретну
|
||||
назву інструмента, що належить Plugin. Якщо allowlist інструментів посилається на інструменти Plugin, додайте id Plugins-власників
|
||||
до `plugins.allow` або видаліть `plugins.allow`; `openclaw doctor` попереджає про цю
|
||||
форму.
|
||||
|
||||
Зміни конфігурації, зроблені через `/plugins enable` або `/plugins disable`, запускають
|
||||
перезавантаження Plugin у Gateway в межах поточного процесу. Нові ходи агента перебудовують список інструментів із
|
||||
Зміни конфігурації, внесені через `/plugins enable` або `/plugins disable`, запускають
|
||||
перезавантаження Plugin Gateway у межах процесу. Нові ходи агента перебудовують свій список інструментів із
|
||||
оновленого реєстру Plugin. Операції, що змінюють джерело, як-от install,
|
||||
update і uninstall, усе ще перезапускають процес Gateway, оскільки вже імпортовані
|
||||
модулі Plugin не можна безпечно замінити на місці.
|
||||
|
||||
`openclaw plugins list` — це локальний знімок реєстру Plugin/конфігурації. Plugin зі станом
|
||||
`enabled` там означає, що збережений реєстр і поточна конфігурація дозволяють
|
||||
`openclaw plugins list` — це локальний знімок реєстру/конфігурації Plugin.
|
||||
Plugin зі станом `enabled` там означає, що збережений реєстр і поточна конфігурація дозволяють
|
||||
Plugin брати участь. Це не доводить, що вже запущений віддалений Gateway
|
||||
перезавантажився або перезапустився з тим самим кодом Plugin. У налаштуваннях VPS/контейнерів
|
||||
із процесами-обгортками надсилайте перезапуски або записи, що запускають перезавантаження, до фактичного
|
||||
процесу `openclaw gateway run`, або використовуйте `openclaw gateway restart` для
|
||||
запущеного Gateway, коли перезавантаження повідомляє про помилку.
|
||||
запущеного Gateway, коли перезавантаження повідомляє про збій.
|
||||
|
||||
<Accordion title="Стани Plugin: disabled vs missing vs invalid">
|
||||
- **Disabled**: Plugin існує, але правила ввімкнення вимкнули його. Конфігурація зберігається.
|
||||
- **Missing**: конфігурація посилається на ідентифікатор Plugin, який виявлення не знайшло.
|
||||
- **Invalid**: Plugin існує, але його конфігурація не відповідає оголошеній схемі. Запуск Gateway пропускає лише цей Plugin; `openclaw doctor --fix` може помістити недійсний запис у карантин, вимкнувши його й видаливши його конфігураційне навантаження.
|
||||
<Accordion title="Стани Plugin: вимкнений vs відсутній vs недійсний">
|
||||
- **Вимкнений**: Plugin існує, але правила ввімкнення вимкнули його. Конфігурація зберігається.
|
||||
- **Відсутній**: конфігурація посилається на id Plugin, який виявлення не знайшло.
|
||||
- **Недійсний**: Plugin існує, але його конфігурація не відповідає оголошеній схемі. Запуск Gateway пропускає лише цей Plugin; `openclaw doctor --fix` може ізолювати недійсний запис, вимкнувши його та видаливши його конфігураційне навантаження.
|
||||
|
||||
</Accordion>
|
||||
|
||||
## Виявлення та пріоритет
|
||||
|
||||
OpenClaw сканує Plugin у такому порядку (перше зіставлення перемагає):
|
||||
OpenClaw сканує Plugin у такому порядку (перший збіг перемагає):
|
||||
|
||||
<Steps>
|
||||
<Step title="Шляхи конфігурації">
|
||||
`plugins.load.paths` — явні шляхи до файлів або каталогів. Шляхи, що вказують
|
||||
назад на власні пакетовані каталоги вбудованих Plugin OpenClaw, ігноруються;
|
||||
`plugins.load.paths` — явні шляхи до файлів або директорій. Шляхи, що вказують
|
||||
назад на власні запаковані директорії вбудованих Plugin OpenClaw, ігноруються;
|
||||
запустіть `openclaw doctor --fix`, щоб видалити ці застарілі псевдоніми.
|
||||
</Step>
|
||||
|
||||
@ -314,63 +314,63 @@ OpenClaw сканує Plugin у такому порядку (перше зіст
|
||||
</Step>
|
||||
|
||||
<Step title="Вбудовані Plugin">
|
||||
Постачаються з OpenClaw. Багато з них увімкнені за замовчуванням (провайдери моделей, мовлення).
|
||||
Постачаються з OpenClaw. Багато з них увімкнено за замовчуванням (провайдери моделей, мовлення).
|
||||
Інші потребують явного ввімкнення.
|
||||
</Step>
|
||||
</Steps>
|
||||
|
||||
Пакетовані інсталяції та Docker-образи зазвичай розв’язують вбудовані Plugin з
|
||||
скомпільованого дерева `dist/extensions`. Якщо вихідний каталог вбудованого Plugin
|
||||
змонтовано поверх відповідного пакетованого вихідного шляху, наприклад
|
||||
`/app/extensions/synology-chat`, OpenClaw розглядає цей змонтований вихідний каталог
|
||||
як вихідне перекриття вбудованого Plugin і виявляє його перед пакетованим
|
||||
бандлом `/app/dist/extensions/synology-chat`. Це зберігає працездатність контейнерних
|
||||
циклів мейнтейнерів без перемикання кожного вбудованого Plugin назад на TypeScript-джерело.
|
||||
Установіть `OPENCLAW_DISABLE_BUNDLED_SOURCE_OVERLAYS=1`, щоб примусово використовувати пакетовані dist-бандли
|
||||
навіть за наявності змонтованих вихідних перекриттів.
|
||||
Запаковані встановлення та Docker-образи зазвичай розв’язують вбудовані Plugin з
|
||||
скомпільованого дерева `dist/extensions`. Якщо директорію джерела вбудованого Plugin
|
||||
змонтовано поверх відповідного запакованого шляху джерела, наприклад
|
||||
`/app/extensions/synology-chat`, OpenClaw розглядає цю змонтовану директорію джерела
|
||||
як накладення вбудованого джерела та виявляє її перед запакованим бандлом
|
||||
`/app/dist/extensions/synology-chat`. Це зберігає працездатність контейнерних
|
||||
циклів мейнтейнерів без перемикання кожного вбудованого Plugin назад на джерело TypeScript.
|
||||
Установіть `OPENCLAW_DISABLE_BUNDLED_SOURCE_OVERLAYS=1`, щоб примусово використовувати запаковані dist-бандли,
|
||||
навіть коли наявні монтування накладень джерела.
|
||||
|
||||
### Правила ввімкнення
|
||||
|
||||
- `plugins.enabled: false` вимикає всі Plugin і пропускає роботу з виявлення/завантаження Plugin
|
||||
- `plugins.deny` завжди має пріоритет над allow
|
||||
- `plugins.deny` завжди має перевагу над allow
|
||||
- `plugins.entries.\<id\>.enabled: false` вимикає цей Plugin
|
||||
- Plugin з робочої області **вимкнені за замовчуванням** (їх потрібно явно ввімкнути)
|
||||
- Вбудовані Plugin дотримуються вбудованого набору ввімкнених за замовчуванням, якщо це не перевизначено
|
||||
- Ексклюзивні слоти можуть примусово ввімкнути вибраний Plugin для цього слота
|
||||
- Деякі вбудовані opt-in Plugin вмикаються автоматично, коли конфігурація називає
|
||||
поверхню, що належить Plugin, як-от посилання на модель провайдера, конфігурацію каналу або
|
||||
середовище виконання harness
|
||||
- Застаріла конфігурація Plugin зберігається, поки активний `plugins.enabled: false`;
|
||||
повторно ввімкніть Plugin перед запуском очищення doctor, якщо хочете видалити застарілі ідентифікатори
|
||||
поверхню, що належить Plugin, як-от посилання на модель провайдера, конфігурація каналу або runtime
|
||||
harness
|
||||
- Застаріла конфігурація Plugin зберігається, доки активний `plugins.enabled: false`;
|
||||
повторно ввімкніть Plugin перед запуском очищення doctor, якщо хочете видалити застарілі id
|
||||
- Маршрути Codex сімейства OpenAI зберігають окремі межі Plugin:
|
||||
`openai-codex/*` належить OpenAI Plugin, тоді як вбудований Plugin app-server Codex
|
||||
вибирається через `agentRuntime.id: "codex"` або застарілі
|
||||
посилання на моделі `codex/*`
|
||||
вибирається через `agentRuntime.id: "codex"` або застарілі посилання на модель
|
||||
`codex/*`
|
||||
|
||||
## Усунення несправностей runtime-хуків
|
||||
## Усунення несправностей runtime hooks
|
||||
|
||||
Якщо Plugin з’являється в `plugins list`, але побічні ефекти `register(api)` або хуки
|
||||
не виконуються в живому чат-трафіку, спершу перевірте таке:
|
||||
Якщо Plugin з’являється в `plugins list`, але побічні ефекти `register(api)` або hooks
|
||||
не виконуються в живому чат-трафіку, спершу перевірте це:
|
||||
|
||||
- Запустіть `openclaw gateway status --deep --require-rpc` і підтвердьте, що активні
|
||||
URL Gateway, профіль, шлях конфігурації та процес є саме тими, які ви редагуєте.
|
||||
- Перезапустіть живий Gateway після змін інсталяції/конфігурації/коду Plugin. У контейнерах-обгортках
|
||||
PID 1 може бути лише супервізором; перезапустіть або надішліть сигнал дочірньому
|
||||
- Перезапустіть live Gateway після змін установлення/конфігурації/коду Plugin. У контейнерах-обгортках
|
||||
PID 1 може бути лише супервізором; перезапустіть або сигналізуйте дочірньому
|
||||
процесу `openclaw gateway run`.
|
||||
- Використовуйте `openclaw plugins inspect <id> --runtime --json`, щоб підтвердити реєстрації хуків і
|
||||
діагностику. Невбудовані хуки розмови, як-от `llm_input`,
|
||||
- Використовуйте `openclaw plugins inspect <id> --runtime --json`, щоб підтвердити реєстрації hook і
|
||||
діагностику. Невбудовані hooks розмови, як-от `llm_input`,
|
||||
`llm_output`, `before_agent_finalize` і `agent_end`, потребують
|
||||
`plugins.entries.<id>.hooks.allowConversationAccess=true`.
|
||||
- Для перемикання моделей віддавайте перевагу `before_model_resolve`. Він виконується до розв’язання моделі
|
||||
- Для перемикання моделей віддавайте перевагу `before_model_resolve`. Він виконується перед розв’язанням моделі
|
||||
для ходів агента; `llm_output` виконується лише після того, як спроба моделі
|
||||
створить вивід асистента.
|
||||
- Для підтвердження ефективної моделі сесії використовуйте `openclaw sessions` або
|
||||
поверхні сесії/статусу Gateway, а під час налагодження навантажень провайдера запускайте
|
||||
створює вивід асистента.
|
||||
- Для доказу ефективної моделі сесії використовуйте `openclaw sessions` або
|
||||
поверхні сесії/статусу Gateway і, під час налагодження payload провайдера, запускайте
|
||||
Gateway з `--raw-stream --raw-stream-path <path>`.
|
||||
|
||||
### Повільне налаштування інструментів Plugin
|
||||
|
||||
Якщо здається, що ходи агента зависають під час підготовки інструментів, увімкніть трасувальне журналювання та
|
||||
Якщо здається, що ходи агента зависають під час підготовки інструментів, увімкніть trace-логування і
|
||||
перевірте рядки часу фабрик інструментів Plugin:
|
||||
|
||||
```bash
|
||||
@ -384,25 +384,25 @@ openclaw logs --follow
|
||||
[trace:plugin-tools] factory timings ...
|
||||
```
|
||||
|
||||
Підсумок містить загальний час фабрик і найповільніші фабрики інструментів Plugin,
|
||||
зокрема ідентифікатор Plugin, оголошені назви інструментів, форму результату та чи є інструмент
|
||||
Зведення перелічує загальний час фабрик і найповільніші фабрики інструментів Plugin,
|
||||
зокрема id Plugin, оголошені назви інструментів, форму результату та чи є інструмент
|
||||
необов’язковим. Повільні рядки підвищуються до попереджень, коли одна фабрика займає
|
||||
щонайменше 1 с або загальна підготовка фабрик інструментів Plugin займає щонайменше 5 с.
|
||||
|
||||
OpenClaw кешує успішні результати фабрик інструментів Plugin для повторних розв’язань
|
||||
з тим самим ефективним контекстом запиту. Ключ кешу містить ефективну
|
||||
runtime-конфігурацію, робочу область, ідентифікатори агента/сесії, політику sandbox, налаштування браузера,
|
||||
контекст доставки, ідентичність запитувача та стан володіння, тому фабрики, які
|
||||
залежать від цих довірених полів, запускаються повторно, коли контекст змінюється.
|
||||
із тим самим ефективним контекстом запиту. Ключ кешу містить ефективну
|
||||
runtime-конфігурацію, робочу область, id агента/сесії, політику sandbox, налаштування браузера,
|
||||
контекст доставлення, ідентичність запитувача та стан власності, тому фабрики, що
|
||||
залежать від цих довірених полів, виконуються повторно, коли контекст змінюється.
|
||||
|
||||
Якщо один Plugin домінує в часі, перевірте його runtime-реєстрації:
|
||||
Якщо один Plugin домінує в таймінгах, перевірте його runtime-реєстрації:
|
||||
|
||||
```bash
|
||||
openclaw plugins inspect <plugin-id> --runtime --json
|
||||
```
|
||||
|
||||
Потім оновіть, перевстановіть або вимкніть цей Plugin. Автори Plugin мають перенести
|
||||
дороге завантаження залежностей за шлях виконання інструмента, а не виконувати його
|
||||
дороге завантаження залежностей за шлях виконання інструмента замість виконання його
|
||||
всередині фабрики інструмента.
|
||||
|
||||
### Дублювання володіння каналом або інструментом
|
||||
@ -413,9 +413,9 @@ openclaw plugins inspect <plugin-id> --runtime --json
|
||||
- `channel setup already registered: <channel-id> (<plugin-id>)`
|
||||
- `plugin tool name conflict (<plugin-id>): <tool-name>`
|
||||
|
||||
Це означає, що кілька ввімкнених Plugin намагаються володіти тим самим каналом,
|
||||
Це означає, що більш ніж один увімкнений Plugin намагається володіти тим самим каналом,
|
||||
потоком налаштування або назвою інструмента. Найпоширеніша причина — зовнішній Plugin каналу,
|
||||
інстальований поруч із вбудованим Plugin, який тепер надає той самий ідентифікатор каналу.
|
||||
установлений поруч із вбудованим Plugin, який тепер надає той самий id каналу.
|
||||
|
||||
Кроки налагодження:
|
||||
|
||||
@ -423,20 +423,21 @@ openclaw plugins inspect <plugin-id> --runtime --json
|
||||
і походження.
|
||||
- Запустіть `openclaw plugins inspect <id> --runtime --json` для кожного підозрюваного Plugin і
|
||||
порівняйте `channels`, `channelConfigs`, `tools` і діагностику.
|
||||
- Запустіть `openclaw plugins registry --refresh` після інсталяції або видалення
|
||||
пакетів Plugin, щоб збережені метадані відображали поточну інсталяцію.
|
||||
- Перезапустіть Gateway після змін інсталяції, реєстру або конфігурації.
|
||||
- Запустіть `openclaw plugins registry --refresh` після встановлення або видалення
|
||||
пакетів Plugin, щоб збережені метадані відображали поточне встановлення.
|
||||
- Перезапустіть Gateway після змін установлення, реєстру або конфігурації.
|
||||
|
||||
Варіанти виправлення:
|
||||
|
||||
- Якщо один Plugin навмисно замінює інший для того самого ідентифікатора каналу, бажаний
|
||||
- Якщо один Plugin навмисно замінює інший для того самого id каналу, бажаний
|
||||
Plugin має оголосити `channelConfigs.<channel-id>.preferOver` з
|
||||
ідентифікатором Plugin нижчого пріоритету. Див. [/plugins/manifest#replacing-another-channel-plugin](/uk/plugins/manifest#replacing-another-channel-plugin).
|
||||
id Plugin нижчого пріоритету. Див. [/plugins/manifest#replacing-another-channel-plugin](/uk/plugins/manifest#replacing-another-channel-plugin).
|
||||
- Якщо дублювання випадкове, вимкніть одну сторону через
|
||||
`plugins.entries.<plugin-id>.enabled: false` або видаліть застарілу інсталяцію Plugin.
|
||||
`plugins.entries.<plugin-id>.enabled: false` або видаліть застаріле встановлення
|
||||
Plugin.
|
||||
- Якщо ви явно ввімкнули обидва Plugin, OpenClaw зберігає цей запит і
|
||||
повідомляє про конфлікт. Виберіть одного власника каналу або перейменуйте інструменти, що належать Plugin,
|
||||
щоб runtime-поверхня була однозначною.
|
||||
повідомляє про конфлікт. Виберіть одного власника каналу або перейменуйте інструменти,
|
||||
що належать Plugin, щоб runtime-поверхня була однозначною.
|
||||
|
||||
## Слоти Plugin (ексклюзивні категорії)
|
||||
|
||||
@ -453,10 +454,10 @@ openclaw plugins inspect <plugin-id> --runtime --json
|
||||
}
|
||||
```
|
||||
|
||||
| Слот | Що він контролює | Типове значення |
|
||||
| Слот | Що він контролює | Типове значення |
|
||||
| --------------- | --------------------- | ------------------- |
|
||||
| `memory` | Plugin active memory | `memory-core` |
|
||||
| `contextEngine` | Активний контекстний рушій | `legacy` (вбудований) |
|
||||
| `memory` | Active memory plugin | `memory-core` |
|
||||
| `contextEngine` | Active context engine | `legacy` (built-in) |
|
||||
|
||||
## Довідник CLI
|
||||
|
||||
@ -506,79 +507,82 @@ openclaw plugins enable <id>
|
||||
openclaw plugins disable <id>
|
||||
```
|
||||
|
||||
Вбудовані Plugin постачаються з OpenClaw. Багато з них увімкнені за замовчуванням (наприклад
|
||||
Вбудовані Plugin постачаються з OpenClaw. Багато з них увімкнено за замовчуванням (наприклад,
|
||||
вбудовані провайдери моделей, вбудовані провайдери мовлення та вбудований браузерний
|
||||
Plugin). Інші вбудовані Plugin усе ще потребують `openclaw plugins enable <id>`.
|
||||
|
||||
`--force` перезаписує на місці вже інстальований Plugin або пакет хуків. Використовуйте
|
||||
`--force` перезаписує наявний установлений Plugin або hook pack на місці. Використовуйте
|
||||
`openclaw plugins update <id-or-npm-spec>` для звичайних оновлень відстежуваних npm
|
||||
Plugin. Він не підтримується з `--link`, який повторно використовує вихідний шлях замість
|
||||
копіювання до керованої цілі інсталяції.
|
||||
Plugin. Це не підтримується з `--link`, який повторно використовує шлях джерела замість
|
||||
копіювання поверх керованої цілі встановлення.
|
||||
|
||||
Коли `plugins.allow` уже задано, `openclaw plugins install` додає
|
||||
ідентифікатор інстальованого Plugin до цього allowlist перед його ввімкненням. Якщо той самий ідентифікатор Plugin
|
||||
присутній у `plugins.deny`, install видаляє цей застарілий deny-запис, щоб
|
||||
явна інсталяція була одразу доступна для завантаження після перезапуску.
|
||||
id встановленого Plugin до цього allowlist перед його ввімкненням. Якщо той самий id Plugin
|
||||
присутній у `plugins.deny`, install видаляє цей застарілий запис deny, щоб
|
||||
явно встановлений Plugin можна було одразу завантажити після перезапуску.
|
||||
|
||||
OpenClaw зберігає персистентний локальний реєстр плагінів як холодну модель читання для
|
||||
інвентарю плагінів, володіння внесками та планування запуску. Потоки встановлення, оновлення,
|
||||
видалення, увімкнення та вимкнення оновлюють цей реєстр після зміни стану плагіна.
|
||||
Той самий файл `plugins/installs.json` зберігає довговічні метадані встановлення у
|
||||
верхньорівневому `installRecords` і відновлювані метадані маніфестів у `plugins`. Якщо
|
||||
OpenClaw зберігає сталий локальний реєстр plugin як холодну модель читання для
|
||||
інвентаризації plugin, володіння внесками та планування запуску. Потоки install, update,
|
||||
uninstall, enable і disable оновлюють цей реєстр після зміни стану plugin.
|
||||
Той самий файл `plugins/installs.json` зберігає довговічні метадані встановлення в
|
||||
верхньорівневому `installRecords` і перебудовувані метадані маніфестів у `plugins`. Якщо
|
||||
реєстр відсутній, застарілий або недійсний, `openclaw plugins registry
|
||||
--refresh` перебудовує його подання маніфестів із записів встановлення, політики конфігурації та
|
||||
метаданих маніфеста/пакета без завантаження runtime-модулів плагіна.
|
||||
`openclaw plugins update <id-or-npm-spec>` застосовується до відстежуваних встановлень. Передавання
|
||||
метаданих маніфесту/пакета без завантаження runtime-модулів plugin.
|
||||
`openclaw plugins update <id-or-npm-spec>` застосовується до відстежуваних встановлень. Передання
|
||||
специфікації npm-пакета з dist-tag або точною версією зіставляє назву пакета
|
||||
назад із відстежуваним записом плагіна та записує нову специфікацію для майбутніх оновлень.
|
||||
Передавання назви пакета без версії повертає встановлення, закріплене на точній версії, назад до
|
||||
стандартної лінії випусків реєстру. Якщо встановлений npm-плагін уже відповідає
|
||||
визначеній версії та записаній ідентичності артефакта, OpenClaw пропускає оновлення
|
||||
назад із відстежуваним записом plugin і записує нову специфікацію для майбутніх оновлень.
|
||||
Передання назви пакета без версії повертає точно закріплене встановлення назад до
|
||||
стандартної лінії випусків реєстру. Якщо встановлений npm plugin уже відповідає
|
||||
розв’язаній версії та записаній ідентичності артефакту, OpenClaw пропускає оновлення
|
||||
без завантаження, перевстановлення або перезапису конфігурації.
|
||||
Коли `openclaw update` запускається на beta-каналі, записи npm і ClawHub
|
||||
plugin стандартної лінії спочатку пробують `@beta` і повертаються до default/latest, якщо beta-випуску
|
||||
plugin не існує. Точні версії та явні теги залишаються закріпленими.
|
||||
|
||||
`--pin` працює лише з npm. Він не підтримується з `--marketplace`, тому що
|
||||
marketplace-встановлення зберігають метадані джерела marketplace замість npm-специфікації.
|
||||
`--pin` підтримується лише для npm. Він не підтримується з `--marketplace`, бо
|
||||
встановлення з marketplace зберігають метадані джерела marketplace замість npm-специфікації.
|
||||
|
||||
`--dangerously-force-unsafe-install` — це аварійне перевизначення для хибних
|
||||
спрацювань вбудованого сканера небезпечного коду. Воно дозволяє встановлення
|
||||
та оновлення плагінів продовжуватися після вбудованих знахідок `critical`, але все одно
|
||||
не обходить блокування політики плагіна `before_install` або блокування через помилки сканування.
|
||||
Сканування встановлень ігнорують поширені тестові файли та каталоги, як-от `tests/`,
|
||||
plugin і оновлення plugin продовжуватися попри вбудовані знахідки рівня `critical`, але все одно
|
||||
не обходить блокування політикою plugin `before_install` або блокування через збій сканування.
|
||||
Сканування встановлення ігнорує типові тестові файли та каталоги, як-от `tests/`,
|
||||
`__tests__/`, `*.test.*` і `*.spec.*`, щоб не блокувати запаковані тестові моки;
|
||||
оголошені runtime-точки входу плагіна все одно скануються, навіть якщо використовують одну з
|
||||
оголошені runtime-точки входу plugin все одно скануються, навіть якщо вони використовують одну з
|
||||
цих назв.
|
||||
|
||||
Цей прапорець CLI застосовується лише до потоків встановлення/оновлення плагінів. Встановлення
|
||||
залежностей Skills через Gateway використовують натомість відповідне перевизначення запиту
|
||||
Цей прапорець CLI застосовується лише до потоків install/update для plugin. Встановлення
|
||||
залежностей Skills на базі Gateway натомість використовують відповідне перевизначення запиту
|
||||
`dangerouslyForceUnsafeInstall`, тоді як `openclaw skills install` залишається окремим
|
||||
потоком завантаження/встановлення Skills із ClawHub.
|
||||
|
||||
Якщо плагін, який ви опублікували на ClawHub, приховано або заблоковано скануванням, відкрийте
|
||||
панель керування ClawHub або виконайте `clawhub package rescan <name>`, щоб попросити ClawHub
|
||||
перевірити його знову. `--dangerously-force-unsafe-install` впливає лише на встановлення на вашій
|
||||
власній машині; він не просить ClawHub повторно просканувати плагін і не робить заблокований випуск
|
||||
Якщо plugin, який ви опублікували на ClawHub, приховано або заблоковано скануванням, відкрийте
|
||||
панель ClawHub або запустіть `clawhub package rescan <name>`, щоб попросити ClawHub перевірити
|
||||
його знову. `--dangerously-force-unsafe-install` впливає лише на встановлення на вашій власній
|
||||
машині; він не просить ClawHub повторно просканувати plugin або зробити заблокований випуск
|
||||
публічним.
|
||||
|
||||
Сумісні бандли беруть участь у тому самому потоці списку/перегляду/увімкнення/вимкнення
|
||||
плагінів. Поточна runtime-підтримка охоплює Skills у бандлах, command-skills Claude,
|
||||
стандартні значення Claude `settings.json`, стандартні значення Claude `.lsp.json` і оголошені
|
||||
в маніфесті `lspServers`, command-skills Cursor і сумісні каталоги хуків Codex.
|
||||
Сумісні bundles беруть участь у тому самому потоці списку/огляду/увімкнення/вимкнення
|
||||
plugin. Поточна runtime-підтримка включає bundle Skills, Claude command-skills,
|
||||
стандартні значення Claude `settings.json`, стандартні значення Claude `.lsp.json` та оголошені в маніфесті
|
||||
`lspServers`, Cursor command-skills і сумісні каталоги Codex hooks.
|
||||
|
||||
`openclaw plugins inspect <id>` також повідомляє виявлені можливості бандла, а також
|
||||
підтримувані або непідтримувані записи серверів MCP і LSP для плагінів на основі бандлів.
|
||||
`openclaw plugins inspect <id>` також повідомляє виявлені можливості bundle плюс
|
||||
підтримувані або непідтримувані записи MCP і LSP server для plugin на основі bundle.
|
||||
|
||||
Джерелами marketplace можуть бути відома Claude назва marketplace з
|
||||
`~/.claude/plugins/known_marketplaces.json`, локальний корінь marketplace або шлях
|
||||
`marketplace.json`, скорочення GitHub на кшталт `owner/repo`, URL репозиторію GitHub
|
||||
або git URL. Для віддалених marketplace записи плагінів мають залишатися всередині
|
||||
клонованого репозиторію marketplace і використовувати лише джерела з відносними шляхами.
|
||||
Джерела marketplace можуть бути відомою назвою Claude marketplace з
|
||||
`~/.claude/plugins/known_marketplaces.json`, локальним коренем marketplace або шляхом до
|
||||
`marketplace.json`, скороченням GitHub на кшталт `owner/repo`, URL репозиторію GitHub
|
||||
або git URL. Для віддалених marketplaces записи plugin мають залишатися всередині
|
||||
клонованого репозиторію marketplace і використовувати лише відносні джерела шляхів.
|
||||
|
||||
Див. [довідку CLI `openclaw plugins`](/uk/cli/plugins), щоб отримати повні подробиці.
|
||||
Див. [довідник CLI `openclaw plugins`](/uk/cli/plugins) для повної інформації.
|
||||
|
||||
## Огляд API Plugin
|
||||
## Огляд Plugin API
|
||||
|
||||
Нативні плагіни експортують об’єкт входу, який надає `register(api)`. Старіші
|
||||
плагіни все ще можуть використовувати `activate(api)` як застарілий псевдонім, але нові плагіни мають
|
||||
Native plugins експортують entry object, який надає `register(api)`. Старіші
|
||||
plugins усе ще можуть використовувати `activate(api)` як застарілий alias, але нові plugins повинні
|
||||
використовувати `register`.
|
||||
|
||||
```typescript
|
||||
@ -599,75 +603,75 @@ export default definePluginEntry({
|
||||
});
|
||||
```
|
||||
|
||||
OpenClaw завантажує об’єкт входу та викликає `register(api)` під час
|
||||
активації плагіна. Завантажувач усе ще відкочується до `activate(api)` для старіших плагінів,
|
||||
але вбудовані плагіни та нові зовнішні плагіни мають розглядати `register` як
|
||||
публічний контракт.
|
||||
OpenClaw завантажує entry object і викликає `register(api)` під час
|
||||
активації plugin. Loader усе ще відступає до `activate(api)` для старіших plugins,
|
||||
але bundled plugins і нові external plugins повинні вважати `register`
|
||||
публічним контрактом.
|
||||
|
||||
`api.registrationMode` повідомляє плагіну, чому його точку входу завантажують:
|
||||
`api.registrationMode` повідомляє plugin, чому його entry завантажується:
|
||||
|
||||
| Режим | Значення |
|
||||
| --------------- | ------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `full` | Runtime-активація. Реєструйте інструменти, хуки, сервіси, команди, маршрути та інші активні побічні ефекти. |
|
||||
| `discovery` | Виявлення можливостей лише для читання. Реєструйте провайдерів і метадані; довірений код входу плагіна може завантажуватися, але пропускайте активні побічні ефекти. |
|
||||
| `setup-only` | Завантаження метаданих налаштування каналу через легку точку входу налаштування. |
|
||||
| `setup-runtime` | Завантаження налаштування каналу, якому також потрібна runtime-точка входу. |
|
||||
| `cli-metadata` | Лише збирання метаданих команд CLI. |
|
||||
| Режим | Значення |
|
||||
| --------------- | -------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `full` | Runtime-активація. Реєструйте tools, hooks, services, commands, routes та інші активні побічні ефекти. |
|
||||
| `discovery` | Виявлення можливостей лише для читання. Реєструйте providers і metadata; довірений entry code plugin може завантажуватися, але пропускайте активні побічні ефекти. |
|
||||
| `setup-only` | Завантаження метаданих налаштування channel через легкий setup entry. |
|
||||
| `setup-runtime` | Завантаження налаштування channel, яке також потребує runtime entry. |
|
||||
| `cli-metadata` | Лише збирання метаданих команд CLI. |
|
||||
|
||||
Точки входу плагінів, які відкривають сокети, бази даних, фонові worker-процеси або довгоживучі
|
||||
клієнти, мають захищати ці побічні ефекти умовою `api.registrationMode === "full"`.
|
||||
Завантаження виявлення кешуються окремо від активаційних завантажень і не замінюють
|
||||
запущений реєстр Gateway. Виявлення не активує плагін, але не є вільним від імпортів:
|
||||
OpenClaw може виконати довірену точку входу плагіна або модуль плагіна каналу, щоб побудувати
|
||||
знімок. Тримайте верхні рівні модулів легкими та без побічних ефектів, а
|
||||
мережеві клієнти, підпроцеси, слухачі, читання облікових даних і запуск сервісів
|
||||
переносьте за шляхи повного runtime.
|
||||
Plugin entries, які відкривають sockets, databases, background workers або довгоживучі
|
||||
clients, повинні захищати ці побічні ефекти за допомогою `api.registrationMode === "full"`.
|
||||
Discovery-завантаження кешуються окремо від activation-завантажень і не замінюють
|
||||
запущений реєстр Gateway. Discovery не активує, але не є вільним від imports:
|
||||
OpenClaw може виконати довірений entry plugin або модуль channel plugin, щоб побудувати
|
||||
snapshot. Тримайте top-level модулів легкими та без побічних ефектів, а
|
||||
network clients, subprocesses, listeners, читання credentials і запуск services переносіть
|
||||
за full-runtime шляхи.
|
||||
|
||||
Поширені методи реєстрації:
|
||||
|
||||
| Метод | Що він реєструє |
|
||||
| --------------------------------------- | --------------------------------------- |
|
||||
| `registerProvider` | Провайдер моделі (LLM) |
|
||||
| `registerChannel` | Чат-канал |
|
||||
| `registerTool` | Інструмент агента |
|
||||
| `registerHook` / `on(...)` | Хуки життєвого циклу |
|
||||
| `registerSpeechProvider` | Перетворення тексту на мовлення / STT |
|
||||
| `registerRealtimeTranscriptionProvider` | Потокове STT |
|
||||
| `registerRealtimeVoiceProvider` | Дуплексний голос у реальному часі |
|
||||
| `registerMediaUnderstandingProvider` | Аналіз зображень/аудіо |
|
||||
| `registerImageGenerationProvider` | Генерація зображень |
|
||||
| `registerMusicGenerationProvider` | Генерація музики |
|
||||
| `registerVideoGenerationProvider` | Генерація відео |
|
||||
| `registerWebFetchProvider` | Провайдер отримання веб-вмісту / скрейпінгу |
|
||||
| `registerWebSearchProvider` | Вебпошук |
|
||||
| `registerHttpRoute` | HTTP endpoint |
|
||||
| `registerCommand` / `registerCli` | Команди CLI |
|
||||
| `registerContextEngine` | Рушій контексту |
|
||||
| `registerService` | Фоновий сервіс |
|
||||
| Метод | Що він реєструє |
|
||||
| --------------------------------------- | ---------------------------- |
|
||||
| `registerProvider` | Model provider (LLM) |
|
||||
| `registerChannel` | Chat channel |
|
||||
| `registerTool` | Agent tool |
|
||||
| `registerHook` / `on(...)` | Lifecycle hooks |
|
||||
| `registerSpeechProvider` | Text-to-speech / STT |
|
||||
| `registerRealtimeTranscriptionProvider` | Streaming STT |
|
||||
| `registerRealtimeVoiceProvider` | Duplex realtime voice |
|
||||
| `registerMediaUnderstandingProvider` | Аналіз image/audio |
|
||||
| `registerImageGenerationProvider` | Генерація images |
|
||||
| `registerMusicGenerationProvider` | Генерація music |
|
||||
| `registerVideoGenerationProvider` | Генерація video |
|
||||
| `registerWebFetchProvider` | Provider для web fetch / scrape |
|
||||
| `registerWebSearchProvider` | Web search |
|
||||
| `registerHttpRoute` | HTTP endpoint |
|
||||
| `registerCommand` / `registerCli` | Команди CLI |
|
||||
| `registerContextEngine` | Context engine |
|
||||
| `registerService` | Background service |
|
||||
|
||||
Поведінка захисту хуків для типізованих хуків життєвого циклу:
|
||||
Поведінка guard для типізованих lifecycle hooks:
|
||||
|
||||
- `before_tool_call`: `{ block: true }` є кінцевим; обробники з нижчим пріоритетом пропускаються.
|
||||
- `before_tool_call`: `{ block: false }` нічого не робить і не скасовує попереднє блокування.
|
||||
- `before_install`: `{ block: true }` є кінцевим; обробники з нижчим пріоритетом пропускаються.
|
||||
- `before_install`: `{ block: false }` нічого не робить і не скасовує попереднє блокування.
|
||||
- `message_sending`: `{ cancel: true }` є кінцевим; обробники з нижчим пріоритетом пропускаються.
|
||||
- `message_sending`: `{ cancel: false }` нічого не робить і не скасовує попереднє скасування.
|
||||
- `before_tool_call`: `{ block: true }` є кінцевим; handlers із нижчим priority пропускаються.
|
||||
- `before_tool_call`: `{ block: false }` є no-op і не очищає попередній block.
|
||||
- `before_install`: `{ block: true }` є кінцевим; handlers із нижчим priority пропускаються.
|
||||
- `before_install`: `{ block: false }` є no-op і не очищає попередній block.
|
||||
- `message_sending`: `{ cancel: true }` є кінцевим; handlers із нижчим priority пропускаються.
|
||||
- `message_sending`: `{ cancel: false }` є no-op і не очищає попередній cancel.
|
||||
|
||||
Нативний app-server Codex прокладає події нативних інструментів Codex назад у цю
|
||||
поверхню хуків. Плагіни можуть блокувати нативні інструменти Codex через `before_tool_call`,
|
||||
спостерігати результати через `after_tool_call` і брати участь у схваленнях Codex
|
||||
`PermissionRequest`. Міст поки що не переписує аргументи нативних інструментів Codex.
|
||||
Точна межа runtime-підтримки Codex описана в
|
||||
Native Codex app-server передає події Codex-native tools назад у цю
|
||||
поверхню hooks. Plugins можуть блокувати native Codex tools через `before_tool_call`,
|
||||
спостерігати результати через `after_tool_call` і брати участь у затвердженнях Codex
|
||||
`PermissionRequest`. Bridge поки що не переписує аргументи Codex-native tools.
|
||||
Точна межа підтримки Codex runtime описана в
|
||||
[контракті підтримки Codex harness v1](/uk/plugins/codex-harness#v1-support-contract).
|
||||
|
||||
Повну поведінку типізованих хуків див. в [огляді SDK](/uk/plugins/sdk-overview#hook-decision-semantics).
|
||||
Повну поведінку типізованих hooks див. в [огляді SDK](/uk/plugins/sdk-overview#hook-decision-semantics).
|
||||
|
||||
## Пов’язане
|
||||
|
||||
- [Створення плагінів](/uk/plugins/building-plugins) — створіть власний плагін
|
||||
- [Бандли плагінів](/uk/plugins/bundles) — сумісність бандлів Codex/Claude/Cursor
|
||||
- [Маніфест плагіна](/uk/plugins/manifest) — схема маніфеста
|
||||
- [Реєстрація інструментів](/uk/plugins/building-plugins#registering-agent-tools) — додайте інструменти агента в плагін
|
||||
- [Внутрішня архітектура плагінів](/uk/plugins/architecture) — модель можливостей і конвеєр завантаження
|
||||
- [Спільнотні плагіни](/uk/plugins/community) — списки сторонніх плагінів
|
||||
- [Створення plugins](/uk/plugins/building-plugins) — створіть власний plugin
|
||||
- [Plugin bundles](/uk/plugins/bundles) — сумісність bundles Codex/Claude/Cursor
|
||||
- [Маніфест plugin](/uk/plugins/manifest) — схема маніфесту
|
||||
- [Реєстрація tools](/uk/plugins/building-plugins#registering-agent-tools) — додайте agent tools у plugin
|
||||
- [Внутрішня архітектура plugin](/uk/plugins/architecture) — модель можливостей і pipeline завантаження
|
||||
- [Спільнотні plugins](/uk/plugins/community) — сторонні listings
|
||||
|
||||
Loading…
Reference in New Issue
Block a user