CLI commands
Плагины
Управляйте Plugin-компонентами Gateway, наборами хуков и совместимыми бандлами.
Руководство для конечных пользователей по установке, включению и устранению неполадок Plugin-компонентов.
Краткие примеры установки, просмотра списка, обновления, удаления и публикации.
Модель совместимости бандлов.
Поля манифеста и схема конфигурации.
Усиление безопасности для установок Plugin-компонентов.
Команды
openclaw plugins listopenclaw plugins list --enabledopenclaw plugins list --verboseopenclaw plugins list --jsonopenclaw plugins search <query>openclaw plugins search <query> --limit 20openclaw plugins search <query> --jsonopenclaw plugins install <path-or-spec>openclaw plugins inspect <id>openclaw plugins inspect <id> --runtimeopenclaw plugins inspect <id> --jsonopenclaw plugins inspect --allopenclaw plugins info <id>openclaw plugins enable <id>openclaw plugins disable <id>openclaw plugins registryopenclaw plugins registry --refreshopenclaw plugins uninstall <id>openclaw plugins doctoropenclaw plugins update <id-or-npm-spec>openclaw plugins update --allopenclaw plugins marketplace entriesopenclaw plugins marketplace entries --offlineopenclaw plugins marketplace entries --jsonopenclaw plugins marketplace list <marketplace>openclaw plugins marketplace list <marketplace> --jsonopenclaw plugins marketplace refreshopenclaw plugins marketplace refresh --feed-profile clawhub-public --jsonopenclaw plugins marketplace refresh --feed-url https://clawhub.ai/v1/feeds/plugins --expected-sha256 <sha256>openclaw plugins init my-tool --name "My Tool"openclaw plugins init my-provider --name "My Provider" --type provideropenclaw plugins init my-provider --name "My Provider" --type provider --directory ./my-provideropenclaw plugins build --entry ./dist/index.jsopenclaw plugins build --entry ./dist/index.js --checkopenclaw plugins validate --entry ./dist/index.jsДля расследования медленной установки, проверки, удаления или обновления реестра запустите
команду с OPENCLAW_PLUGIN_LIFECYCLE_TRACE=1. Трассировка записывает длительность фаз
в stderr и сохраняет JSON-вывод пригодным для разбора. См. Отладка.
Автор
openclaw plugins init stock-quotes --name "Stock Quotes"cd stock-quotesnpm run plugin:buildnpm run plugin:validateplugins init по умолчанию создает минимальный Plugin инструмента на TypeScript. Первый
аргумент — идентификатор Plugin; передайте --name для отображаемого имени. OpenClaw использует
идентификатор для каталога вывода по умолчанию и именования пакета. Каркасы инструментов используют
defineToolPlugin.
plugins build импортирует собранную точку входа, читает ее статические метаданные инструмента, записывает
openclaw.plugin.json и поддерживает package.json openclaw.extensions в актуальном состоянии.
plugins validate проверяет, что сгенерированный манифест, метаданные пакета и
текущий экспорт точки входа по-прежнему согласованы. Полный рабочий процесс создания инструментов см. в
Plugin-компоненты инструментов.
Каркас записывает исходный код TypeScript, но генерирует метаданные из собранной
точки входа ./dist/index.js, поэтому рабочий процесс также работает с опубликованным CLI. Используйте
--entry <path>, если точка входа не является точкой входа пакета по умолчанию. Используйте
plugins build --check в CI, чтобы завершать выполнение с ошибкой, когда сгенерированные метаданные устарели, без
перезаписи файлов.
Каркас поставщика
openclaw plugins init acme-models --name "Acme Models" --type providercd acme-modelsnpm installnpm run buildnpm testnpm run validateКаркасы поставщиков создают универсальный Plugin поставщика текста/моделей с OpenAI-совместимой
обвязкой API-ключа, встроенным скриптом npm run validate для clawhub package validate, метаданными пакета ClawHub и запускаемым вручную workflow GitHub
для будущей доверенной публикации через GitHub Actions OIDC. Каркасы поставщиков не
генерируют Skills и не используют openclaw plugins build или
openclaw plugins validate; эти команды предназначены для пути сгенерированных метаданных
каркаса инструмента.
Перед публикацией замените базовый URL API-заполнитель, каталог моделей, маршрут документации, текст учетных данных и текст README реальными сведениями о поставщике. Используйте сгенерированный README для первой публикации в ClawHub и настройки доверенного издателя.
Установка
openclaw plugins search "calendar" # search ClawHub pluginsopenclaw plugins install <package> # source auto-detectionopenclaw plugins install clawhub:<package> # ClawHub onlyopenclaw plugins install npm:<package> # npm onlyopenclaw plugins install npm-pack:<path.tgz> # local npm pack through npm install semanticsopenclaw plugins install git:github.com/<owner>/<repo> # git repoopenclaw plugins install git:github.com/<owner>/<repo>@<ref>openclaw plugins install <package> --force # overwrite existing installopenclaw plugins install <package> --pin # pin versionopenclaw plugins install clawhub:<package> --acknowledge-clawhub-riskopenclaw plugins install <package> --dangerously-force-unsafe-installopenclaw plugins install <path> # local pathopenclaw plugins install <plugin>@<marketplace> # marketplaceopenclaw plugins install <plugin> --marketplace <name> # marketplace (explicit)openclaw plugins install <plugin> --marketplace https://github.com/<owner>/<repo>Мейнтейнеры, тестирующие установки во время настройки, могут переопределять автоматические источники установки Plugin-компонентов с помощью защищенных переменных окружения. См. Переопределения установки Plugin-компонентов.
plugins search запрашивает ClawHub на наличие устанавливаемых пакетов Plugin-компонентов и выводит
готовые к установке имена пакетов. Он ищет пакеты code-plugin и bundle-plugin,
а не Skills. Используйте openclaw skills search для Skills в ClawHub.
Config includes and invalid-config repair
Если ваш раздел plugins поддерживается однофайловым $include, plugins install/update/enable/disable/uninstall записывают изменения в этот подключенный файл и оставляют openclaw.json нетронутым. Корневые include, массивы include и include с соседними переопределениями завершаются закрыто вместо выравнивания. Поддерживаемые формы см. в Config includes.
Если конфигурация недействительна во время установки, plugins install обычно завершается закрыто и предлагает сначала запустить openclaw doctor --fix. Во время запуска Gateway и горячей перезагрузки недействительная конфигурация Plugin-компонента завершается закрыто, как и любая другая недействительная конфигурация; openclaw doctor --fix может изолировать недействительную запись Plugin. Единственное документированное исключение во время установки — узкий путь восстановления встроенного Plugin для Plugin-компонентов, которые явно включают openclaw.install.allowInvalidConfigRecovery.
--force and reinstall vs update
--force повторно использует существующую цель установки и перезаписывает уже установленный Plugin или набор хуков на месте. Используйте его, когда намеренно переустанавливаете тот же идентификатор из нового локального пути, архива, пакета ClawHub или артефакта npm. Для обычных обновлений уже отслеживаемого npm Plugin предпочитайте openclaw plugins update <id-or-npm-spec>.
Если вы запускаете plugins install для идентификатора Plugin, который уже установлен, OpenClaw останавливается и указывает на plugins update <id-or-npm-spec> для обычного обновления или на plugins install <package> --force, когда вы действительно хотите перезаписать текущую установку из другого источника.
--pin scope
--pin применяется только к установкам npm. Он не поддерживается с установками git:; используйте явную ссылку git, например git:github.com/acme/plugin@v1.2.3, когда вам нужен закрепленный источник. Он не поддерживается с --marketplace, потому что установки из marketplace сохраняют метаданные источника marketplace вместо спецификации npm.
--dangerously-force-unsafe-install
--dangerously-force-unsafe-install устарел и теперь является no-op. OpenClaw больше не выполняет встроенную блокировку опасного кода во время установки для Plugin-компонентов.
Используйте общую поверхность security.installPolicy, принадлежащую оператору, когда требуется политика установки, специфичная для хоста. Хуки Plugin before_install являются хуками жизненного цикла среды выполнения Plugin и не являются основной границей политики для установок CLI.
Если Plugin, опубликованный вами в ClawHub, скрыт или заблокирован сканированием реестра, используйте шаги издателя в публикации ClawHub. --dangerously-force-unsafe-install не просит ClawHub повторно сканировать Plugin или делать заблокированный выпуск публичным.
--acknowledge-clawhub-risk
Установки из сообщества ClawHub проверяют запись доверия выбранного выпуска перед скачиванием пакета. Если ClawHub отключает скачивание для выпуска, сообщает о вредоносных результатах сканирования или помещает выпуск в блокирующее состояние модерации, например карантин, OpenClaw отклоняет выпуск. Для неблокирующих рискованных статусов сканирования, рискованных состояний модерации или причин реестра OpenClaw показывает сведения о доверии и просит подтверждение перед продолжением.
Используйте --acknowledge-clawhub-risk только после просмотра предупреждения ClawHub и принятия решения продолжить без интерактивного запроса. Ожидающие или устаревшие чистые записи доверия предупреждают, но не требуют подтверждения. Официальные пакеты ClawHub и встроенные источники Plugin-компонентов OpenClaw обходят этот запрос доверия к выпуску.
Hook packs and npm specs
plugins install также является поверхностью установки для наборов хуков, которые раскрывают openclaw.hooks в package.json. Используйте openclaw hooks для фильтрованной видимости хуков и включения отдельных хуков, а не для установки пакетов.
Спецификации npm поддерживаются только из реестра (имя пакета + необязательная точная версия или dist-tag). Спецификации Git/URL/file и диапазоны semver отклоняются. Установка зависимостей выполняется в одном управляемом npm-проекте на плагин с --ignore-scripts для безопасности, даже если в вашей оболочке настроены глобальные параметры установки npm. Управляемые npm-проекты плагинов наследуют npm overrides уровня пакета OpenClaw, поэтому защитные закрепления хоста применяются и к поднятым зависимостям плагинов.
Используйте npm:<package>, когда нужно явно указать разрешение через npm. Голые спецификации пакетов также устанавливаются напрямую из npm во время переходного периода запуска, если они не совпадают с официальным идентификатором плагина.
Необработанные спецификации пакетов @openclaw/*, совпадающие с включенными плагинами, разрешаются в принадлежащую образу включенную копию до отката к npm. Например, openclaw plugins install @openclaw/discord@2026.5.20 --pin использует включенный плагин Discord из текущей сборки OpenClaw вместо создания управляемого npm-переопределения. Чтобы принудительно использовать внешний npm-пакет, выполните openclaw plugins install npm:@openclaw/discord@2026.5.20 --pin.
Голые спецификации и @latest остаются на стабильной ветке. Версии исправлений OpenClaw с датой, такие как 2026.5.3-1, для этой проверки считаются стабильными выпусками. Если npm разрешает любой из этих вариантов в предварительный выпуск, OpenClaw останавливается и просит явно согласиться с помощью тега предварительного выпуска, например @beta/@rc, или точной версии предварительного выпуска, например @1.2.3-beta.4.
Для установок npm без точной версии (npm:<package> или npm:<package>@latest) OpenClaw проверяет разрешенные метаданные пакета перед установкой. Если последний стабильный пакет требует более новую версию API плагинов OpenClaw или минимальную версию хоста, OpenClaw просматривает более старые стабильные версии и устанавливает самый новый совместимый выпуск. Точные версии и явные dist-tags, такие как @beta, остаются строгими: если выбранный пакет несовместим, команда завершается ошибкой и просит обновить OpenClaw или выбрать совместимую версию.
Если голая спецификация установки совпадает с официальным идентификатором плагина (например, diffs), OpenClaw устанавливает запись каталога напрямую. Чтобы установить npm-пакет с тем же именем, используйте явную scoped-спецификацию (например, @scope/diffs).
Git repositories
Используйте 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, затем используют обычный установщик каталога плагина. Это означает, что проверка манифеста, политика установки оператора, работа установки менеджера пакетов и записи установки ведут себя как при установках npm. Записанные установки из git включают исходный URL/ref и разрешенный коммит, чтобы openclaw plugins update мог позже заново разрешить источник.
После установки из git используйте openclaw plugins inspect <id> --runtime --json, чтобы проверить регистрации времени выполнения, такие как методы Gateway и команды CLI. Если плагин зарегистрировал корень CLI с помощью api.registerCli, выполняйте эту команду напрямую через корневой CLI OpenClaw, например openclaw demo-plugin ping.
Archives
Поддерживаемые архивы: .zip, .tgz, .tar.gz, .tar. Собственные архивы плагинов OpenClaw должны содержать действительный openclaw.plugin.json в корне извлеченного плагина; архивы, содержащие только package.json, отклоняются до того, как OpenClaw запишет записи установки.
Используйте npm-pack:<path.tgz>, когда файл является tarball npm-pack и нужно
протестировать тот же путь управляемого npm-проекта на плагин, который используется установками
из реестра, включая проверку package-lock.json, сканирование поднятых зависимостей
и записи установки npm. Обычные пути архивов по-прежнему устанавливаются как локальные
архивы в корне расширений плагинов.
Установки из Claude marketplace также поддерживаются.
Установки ClawHub используют явный локатор clawhub:<package>:
openclaw plugins install clawhub:openclaw-codex-app-serveropenclaw plugins install clawhub:openclaw-codex-app-server@1.2.3Голые npm-безопасные спецификации плагинов по умолчанию устанавливаются из npm во время переходного периода запуска, если они не совпадают с официальным идентификатором плагина:
openclaw plugins install openclaw-codex-app-serverИспользуйте npm:, чтобы явно указать разрешение только через npm:
openclaw plugins install npm:openclaw-codex-app-serveropenclaw plugins install npm:@openclaw/discord@2026.5.20openclaw plugins install npm:@scope/plugin-name@1.0.1OpenClaw проверяет объявленную совместимость API плагина / минимального 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
Используйте сокращение plugin@marketplace, когда имя marketplace существует в локальном кэше реестра Claude по адресу ~/.claude/plugins/known_marketplaces.json:
openclaw plugins marketplace list <marketplace-name>openclaw plugins install <plugin-name>@<marketplace-name>Используйте --marketplace, когда хотите явно передать источник маркетплейса:
openclaw plugins install <plugin-name> --marketplace <marketplace-name>openclaw plugins install <plugin-name> --marketplace <owner/repo>openclaw plugins install <plugin-name> --marketplace https://github.com/<owner>/<repo>openclaw plugins install <plugin-name> --marketplace ./my-marketplaceИсточники маркетплейса
- имя известного маркетплейса Claude из
~/.claude/plugins/known_marketplaces.json - локальный корень маркетплейса или путь к
marketplace.json - сокращение репозитория GitHub, например
owner/repo - URL репозитория GitHub, например
https://github.com/owner/repo - URL git
Правила удаленного маркетплейса
Для удаленных маркетплейсов, загруженных из GitHub или git, записи плагинов должны оставаться внутри клонированного репозитория маркетплейса. OpenClaw принимает источники с относительными путями из этого репозитория и отклоняет HTTP(S), абсолютные пути, git, GitHub и другие источники плагинов не в виде путей из удаленных манифестов.
Для локальных путей и архивов OpenClaw автоматически обнаруживает:
- нативные плагины OpenClaw (
openclaw.plugin.json) - Codex-совместимые пакеты (
.codex-plugin/plugin.json) - Claude-совместимые пакеты (
.claude-plugin/plugin.jsonили стандартную структуру компонентов Claude) - Cursor-совместимые пакеты (
.cursor-plugin/plugin.json)
Управляемые локальные установки должны быть каталогами или архивами плагинов. Отдельные файлы плагинов .js,
.mjs, .cjs и .ts не копируются в управляемый корень плагинов
командой plugins install; вместо этого явно перечислите их в plugins.load.paths.
Список
openclaw plugins listopenclaw plugins list --enabledopenclaw plugins list --verboseopenclaw plugins list --jsonopenclaw plugins search <query>openclaw plugins search <query> --limit 20openclaw plugins search <query> --json--enabledbooleanПоказывать только включенные плагины.
--verbosebooleanПереключиться с табличного представления на строки сведений по каждому плагину с метаданными source/origin/version/activation.
--jsonbooleanМашиночитаемый инвентарь плюс диагностика реестра и состояние установки зависимостей пакетов.
Если в журналах запуска есть plugins.allow is empty; discovered non-bundled plugins may auto-load: ...,
выполните openclaw plugins list --enabled --verbose или
openclaw plugins inspect <id> с указанным идентификатором плагина, чтобы подтвердить
идентификаторы плагинов и скопировать доверенные идентификаторы в plugins.allow в openclaw.json. Когда
предупреждение может перечислить каждый обнаруженный плагин, оно выводит готовый для вставки
фрагмент plugins.allow, который уже включает эти идентификаторы. Если плагин загружается
без сведений о происхождении установки/load-path, проверьте этот идентификатор плагина, затем либо закрепите
доверенный идентификатор в plugins.allow, либо переустановите плагин из доверенного источника,
чтобы OpenClaw записал происхождение установки.
plugins search — это удаленный поиск по каталогу ClawHub. Он не проверяет локальное
состояние, не изменяет конфигурацию, не устанавливает пакеты и не загружает runtime-код плагина. Результаты поиска
включают имя пакета ClawHub, семейство, канал, версию, сводку и
подсказку установки, например openclaw plugins install clawhub:<package>.
Для работы с встроенным плагином внутри упакованного Docker-образа смонтируйте исходный каталог
плагина поверх соответствующего упакованного пути исходников, например
/app/extensions/synology-chat. OpenClaw обнаружит это смонтированное наложение исходников
раньше /app/dist/extensions/synology-chat; обычный скопированный каталог исходников
останется неактивным, поэтому обычные упакованные установки по-прежнему используют скомпилированный dist.
Для отладки runtime-хуков:
openclaw plugins inspect <id> --runtime --jsonпоказывает зарегистрированные хуки и диагностику из прохода инспекции с загруженным модулем. Runtime-инспекция никогда не устанавливает зависимости; используйтеopenclaw doctor --fix, чтобы очистить устаревшее состояние зависимостей или восстановить отсутствующие загружаемые плагины, на которые ссылается конфигурация.openclaw gateway status --deep --require-rpcподтверждает доступный URL/профиль Gateway, подсказки сервиса/процесса, путь конфигурации и состояние RPC.- Невстроенным хукам беседы (
llm_input,llm_output,before_model_resolve,before_agent_reply,before_agent_run,before_agent_finalize,agent_end) требуетсяplugins.entries.<id>.hooks.allowConversationAccess=true.
Используйте --link, чтобы не копировать локальный каталог плагина (добавляет его в plugins.load.paths):
openclaw plugins install -l ./my-pluginОтдельные файлы плагинов должны быть перечислены в plugins.load.paths, а не
установлены через plugins install или размещены напрямую в ~/.openclaw/extensions
или <workspace>/.openclaw/extensions. Эти автоматически обнаруживаемые корни загружают каталоги
пакетов или пакетов-совместимостей плагинов, а скриптовые файлы верхнего уровня считаются локальными
вспомогательными файлами и пропускаются.
Индекс Plugin
Метаданные установки Plugin — это состояние, управляемое машиной, а не пользовательская конфигурация. Установки и обновления записывают его в общую базу данных состояния SQLite в активном каталоге состояния OpenClaw. Строка installed_plugin_index хранит долговечные метаданные installRecords, включая записи для поврежденных или отсутствующих манифестов плагинов, а также производный от манифеста холодный кэш реестра, используемый openclaw plugins update, удалением, диагностикой и холодным реестром плагинов.
Когда OpenClaw видит поставляемые устаревшие записи plugins.installs в конфигурации, чтения во время выполнения рассматривают их как входные данные совместимости без перезаписи openclaw.json. Явные записи Plugin и openclaw doctor --fix переносят эти записи в индекс плагинов и удаляют ключ конфигурации, когда запись конфигурации разрешена; если какая-либо запись завершается ошибкой, записи конфигурации сохраняются, чтобы метаданные установки не были потеряны.
Удаление
openclaw plugins uninstall <id>openclaw plugins uninstall <id> --dry-runopenclaw plugins uninstall <id> --keep-filesuninstall удаляет записи Plugin из plugins.entries, сохраненного индекса плагинов, записей списков разрешения/запрета плагинов и связанных записей plugins.load.paths, когда это применимо. Если --keep-files не задан, удаление также удаляет отслеживаемый каталог управляемой установки, когда он находится внутри корня расширений Plugin OpenClaw. Для плагинов активной памяти слот памяти сбрасывается на memory-core.
Обновление
openclaw plugins update <id-or-npm-spec>openclaw plugins update --allopenclaw plugins update <id-or-npm-spec> --dry-runopenclaw plugins update @openclaw/voice-callopenclaw plugins update openclaw-codex-app-server --acknowledge-clawhub-riskopenclaw plugins update openclaw-codex-app-server --dangerously-force-unsafe-installОбновления применяются к отслеживаемым установкам Plugin в управляемом индексе плагинов и отслеживаемым установкам пакетов хуков в hooks.internal.installs.
Resolving plugin id vs npm spec
Когда вы передаете идентификатор Plugin, OpenClaw повторно использует записанную спецификацию установки для этого плагина. Это означает, что ранее сохраненные dist-tags, такие как @beta, и точные закрепленные версии продолжают использоваться при последующих запусках update <id>.
Во время update <id> --dry-run точные закрепленные установки npm остаются закрепленными. Если OpenClaw также может разрешить стандартную линию реестра пакета и эта стандартная линия новее установленной закрепленной версии, пробный запуск сообщает о закреплении и выводит явную команду обновления пакета @latest, чтобы перейти на стандартную линию реестра.
Это правило целевого обновления отличается от массового пути обслуживания openclaw plugins update --all. Массовые обновления по-прежнему учитывают обычные отслеживаемые спецификации установки, но доверенные официальные записи Plugin OpenClaw могут синхронизироваться с текущей целью официального каталога вместо сохранения устаревшего точного официального пакета. Используйте целевой update <id>, когда намеренно хотите оставить точную или помеченную официальную спецификацию без изменений.
Для установок npm вы также можете передать явную спецификацию пакета npm с dist-tag или точной версией. OpenClaw разрешает имя этого пакета обратно в отслеживаемую запись Plugin, обновляет этот установленный Plugin и записывает новую спецификацию npm для будущих обновлений по идентификатору.
Передача имени пакета npm без версии или тега также разрешается обратно в отслеживаемую запись Plugin. Используйте это, когда Plugin был закреплен на точной версии и вы хотите вернуть его к стандартной линии выпуска реестра.
Beta channel updates
Целевой openclaw plugins update <id-or-npm-spec> повторно использует отслеживаемую спецификацию Plugin, если вы не передаете новую спецификацию. Массовый openclaw plugins update --all использует настроенный update.channel, когда синхронизирует доверенные официальные записи Plugin с целью официального каталога, поэтому установки beta-канала могут оставаться на beta-линии выпуска вместо тихой нормализации до stable/latest.
openclaw update также знает активный канал обновлений OpenClaw: на beta-канале записи Plugin npm и ClawHub стандартной линии сначала пробуют @beta. Они откатываются к записанной спецификации default/latest, если beta-выпуск Plugin не существует; Plugins npm также откатываются, когда beta-пакет существует, но не проходит проверку установки. Такой откат сообщается как предупреждение и не приводит к сбою обновления ядра. Точные версии и явные теги остаются закрепленными за этим селектором для целевых обновлений.
Version checks and integrity drift
Перед живым обновлением npm OpenClaw сверяет установленную версию пакета с метаданными реестра npm. Если установленная версия и записанная идентичность артефакта уже совпадают с разрешенной целью, обновление пропускается без скачивания, переустановки или перезаписи openclaw.json.
Когда сохраненный хэш целостности существует, а хэш полученного артефакта меняется, OpenClaw рассматривает это как дрейф артефакта npm. Интерактивная команда openclaw plugins update выводит ожидаемый и фактический хэши и запрашивает подтверждение перед продолжением. Неинтерактивные помощники обновления завершаются по fail-closed, если вызывающая сторона не предоставляет явную политику продолжения.
--dangerously-force-unsafe-install on update
--dangerously-force-unsafe-install также принимается в plugins update для совместимости, но он устарел и больше не меняет поведение обновления Plugin. Операторский security.installPolicy все еще может блокировать обновления; хуки Plugin before_install применяются только в процессах, где загружены хуки Plugin.
--acknowledge-clawhub-risk on update
Обновления Plugin, поддерживаемые сообществом через ClawHub, выполняют ту же проверку доверия к точному выпуску, что и установки, перед скачиванием заменяющего пакета. Используйте --acknowledge-clawhub-risk для проверенной автоматизации, которая должна продолжаться, когда выбранный выпуск ClawHub имеет рискованное предупреждение доверия. Официальные пакеты ClawHub и встроенные источники Plugin OpenClaw обходят этот запрос доверия к выпуску.
Инспекция
openclaw plugins inspect <id>openclaw plugins inspect <id> --runtimeopenclaw plugins inspect <id> --jsonИнспекция показывает идентичность, статус загрузки, источник, возможности манифеста, флаги политики, диагностику, метаданные установки, возможности пакета и любую обнаруженную поддержку серверов MCP или LSP без импорта runtime Plugin по умолчанию. Вывод JSON включает контракты манифеста Plugin, такие как contracts.agentToolResultMiddleware и contracts.trustedToolPolicies, чтобы операторы могли аудитировать объявления доверенной поверхности перед включением или перезапуском Plugin. Добавьте --runtime, чтобы загрузить модуль Plugin и включить зарегистрированные хуки, инструменты, команды, сервисы, методы Gateway и маршруты HTTP. Runtime-инспекция напрямую сообщает об отсутствующих зависимостях Plugin; установки и исправления остаются в openclaw plugins install, openclaw plugins update и openclaw doctor --fix.
CLI-команды, принадлежащие Plugin, обычно устанавливаются как корневые группы команд openclaw, но Plugins также могут регистрировать вложенные команды под родительской командой ядра, например openclaw nodes. После того как inspect --runtime показывает команду в cliCommands, запустите ее по указанному пути; например, Plugin, который регистрирует demo-git, можно проверить с помощью openclaw demo-git ping.
Каждый Plugin классифицируется по тому, что он фактически регистрирует во время выполнения:
- plain-capability — один тип возможности (например, Plugin только для провайдера)
- hybrid-capability — несколько типов возможностей (например, текст + речь + изображения)
- hook-only — только хуки, без возможностей или поверхностей
- non-capability — инструменты/команды/сервисы, но без возможностей
См. Формы Plugin, чтобы узнать больше о модели возможностей.
Doctor
openclaw plugins doctordoctor сообщает об ошибках загрузки Plugin, диагностике манифеста/обнаружения, уведомлениях о совместимости и устаревших ссылках конфигурации Plugin, таких как отсутствующие слоты Plugin. Когда дерево установки и конфигурация Plugin чистые, он выводит No plugin issues detected. Если устаревшая конфигурация остается, но дерево установки в остальном исправно, сводка говорит об этом вместо того, чтобы подразумевать полное здоровье Plugin.
Если настроенный Plugin присутствует на диске, но заблокирован проверками безопасности путей загрузчика, проверка конфигурации сохраняет запись Plugin и сообщает о ней как present but blocked. Исправьте предшествующую диагностику заблокированного Plugin, например владение путем или права записи для всех, вместо удаления конфигурации plugins.entries.<id> или plugins.allow.
Для сбоев формы модуля, таких как отсутствующие экспорты register/activate, повторно запустите с OPENCLAW_PLUGIN_LOAD_DEBUG=1, чтобы включить компактную сводку формы экспорта в диагностический вывод.
Реестр
openclaw plugins registryopenclaw plugins registry --refreshopenclaw plugins registry --jsonЛокальный реестр Plugin — это сохраненная холодная модель чтения OpenClaw для идентичности установленных Plugin, включения, метаданных источника и владения вкладами. Обычный запуск, поиск владельца провайдера, классификация настройки канала и инвентаризация Plugin могут читать его без импорта runtime-модулей Plugin.
Используйте plugins registry, чтобы проверить, присутствует ли сохраненный реестр, актуален ли он или устарел. Используйте --refresh, чтобы пересобрать его из сохраненного индекса Plugin, политики конфигурации и метаданных манифеста/пакета. Это путь исправления, а не путь активации во время выполнения.
openclaw doctor --fix также исправляет смежный с реестром управляемый дрейф npm: если осиротевший или восстановленный пакет @openclaw/* в управляемом npm-проекте Plugin или устаревшем плоском управляемом корне npm затеняет встроенный Plugin, doctor удаляет этот устаревший пакет и пересобирает реестр, чтобы запуск проверялся по встроенному манифесту. Doctor также повторно связывает пакет хоста openclaw в управляемые npm Plugins, которые объявляют peerDependencies.openclaw, чтобы локальные для пакета импорты runtime, такие как openclaw/plugin-sdk/*, разрешались после обновлений или исправлений npm.
Маркетплейс
openclaw plugins marketplace entriesopenclaw plugins marketplace entries --offlineopenclaw plugins marketplace entries --jsonopenclaw plugins marketplace entries --feed-profile <name>openclaw plugins marketplace entries --feed-url <url>openclaw plugins marketplace list <source>openclaw plugins marketplace list <source> --jsonopenclaw plugins marketplace refreshopenclaw plugins marketplace refresh --feed-profile <name>openclaw plugins marketplace refresh --feed-url <url>openclaw plugins marketplace refresh --expected-sha256 <sha256> --jsonplugins marketplace entries выводит список записей из настроенного фида маркетплейса OpenClaw. По умолчанию команда пытается использовать размещенный фид и при необходимости откатывается к последнему принятому снимку или встроенным данным. Используйте --feed-profile <name>, чтобы прочитать конкретный настроенный профиль, --feed-url <url>, чтобы прочитать явный URL размещенного фида, и --offline, чтобы прочитать последний принятый снимок без получения фида.
plugins marketplace refresh обновляет настроенный снимок размещенного фида и сообщает, принял ли OpenClaw размещенные данные, размещенный снимок или встроенные резервные данные. Используйте --expected-sha256, когда вызывающей стороне нужно, чтобы команда завершилась ошибкой, если новая размещенная полезная нагрузка не совпадает с закрепленной контрольной суммой.
Marketplace list принимает локальный путь маркетплейса, путь к marketplace.json, сокращенную запись GitHub вида owner/repo, URL репозитория GitHub или git URL. --json выводит метку разрешенного источника, а также разобранный манифест маркетплейса и записи Plugin.
Обновление Marketplace загружает размещенную ленту маркетплейса OpenClaw и сохраняет
проверенный ответ как локальный снимок размещенной ленты. Без параметров оно использует
настроенный профиль ленты по умолчанию. Используйте --feed-profile <name>, чтобы обновить
конкретный настроенный профиль, --feed-url <url>, чтобы обновить явный URL размещенной
ленты, --expected-sha256 <sha256>, чтобы потребовать совпадающую контрольную сумму
полезной нагрузки (sha256:<hex> или простой 64-символьный hex-дайджест), и --json для
машиночитаемого вывода. Явные URL размещенных лент не должны содержать
учетные данные, строки запроса или фрагменты. Обновления без закрепления могут сообщить о
размещенном снимке или результате встроенного резервного варианта, не завершая команду ошибкой. Закрепленные
обновления завершаются ошибкой, если они не принимают свежую размещенную полезную нагрузку, а успешные размещенные
обновления завершаются ошибкой, если OpenClaw не может сохранить проверенный снимок.